aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore12
-rw-r--r--DPDK_VPP_VER2
-rw-r--r--GPL/tools/trex/trex_astf_assert.py6
-rw-r--r--GPL/tools/trex/trex_astf_profile.py306
-rw-r--r--GPL/tools/trex/trex_astf_stop.py73
-rw-r--r--GPL/tools/trex/trex_stl_assert.py11
-rw-r--r--GPL/tools/trex/trex_stl_profile.py187
-rw-r--r--GPL/tools/trex/trex_stl_stop.py69
-rw-r--r--GPL/traffic_profiles/trex/profile_trex_astf_base_class.py44
-rw-r--r--GPL/traffic_profiles/trex/profile_trex_stateless_scale_class.py196
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4tcp-1024h-pps.py69
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4tcp-1024h.py37
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4tcp-16384h-pps.py69
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4tcp-16384h.py37
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4tcp-262144h-pps.py69
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4tcp-262144h.py37
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4tcp-4096h-pps.py69
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4tcp-4096h.py37
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4tcp-65536h-pps.py69
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4tcp-65536h.py37
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4udp-1024h-pps.py82
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4udp-1024h.py58
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4udp-16384h-pps.py82
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4udp-16384h.py58
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4udp-262144h-pps.py82
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4udp-262144h.py58
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4udp-4096h-pps.py82
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4udp-4096h.py58
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4udp-65536h-pps.py82
-rw-r--r--GPL/traffic_profiles/trex/trex-astf-ethip4udp-65536h.py58
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-dot1qip4asym-ip4src254.py143
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-dot1qip6asym-ip6src253.py144
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-1024t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-16t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-1t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-256t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-4t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-64t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst10000.py135
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst100000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst1000000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4src253.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4src254.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc10kip4src10k.py171
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc500kdst500k.py225
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc50kdst50k.py224
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc5kdst5k.py225
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-1000u15p.py156
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-10u1000p-conc.py199
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-1u1p.py114
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-lb.py160
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip6-ip6src253.py139
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan100ip4src254ip4dst254.py201
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan10ip4src254ip4dst254.py201
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan1ip4src254ip4dst254.py176
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan1kip4src254ip4dst254.py201
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1.py95
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst100.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-1cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-4cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-8cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-1cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-2cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-4cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-8cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst100000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-1cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-2cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-4cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-8cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst253.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst253_l3fwd.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-1cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-2cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-4cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-1cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-2cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-4cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-8cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-1cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-2cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-4cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-8cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-1cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-2cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-4cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-8cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-1cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-2cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-4cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-8cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-1cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-2cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-4cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-8cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4src253.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4src254.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc100ip4src100.py171
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc100kip4src100k.py171
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc10kip4src10k.py171
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc500kdst500k.py225
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc50kdst50k.py225
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc5kdst5k.py225
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1000u15p.py158
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-100u1000p-conc.py199
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-100u15p.py158
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u1000p-conc.py199
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u10p-conc.py199
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u15p.py158
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1u15p.py151
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1u1p.py114
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-2000u15p.py158
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-4000u15p.py158
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip6-ip6src253.py139
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan100ip4src254ip4dst254.py201
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan10ip4src254ip4dst254.py201
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254-2.py176
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1kip4src254ip4dst254.py201
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4asym-ip4src254.py143
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src10udpsrcrnd.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src1udpsrcrnd.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src2udpsrcrnd.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src4udpsrcrnd.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src6udpsrcrnd.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src8udpsrcrnd.py5
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-dot1qip6asym-ip6src253.py144
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-1024t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-16t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-1t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-256t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-4t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-64t.py231
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000-2p.py113
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000-6p.py141
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000-2p.py113
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000-6p.py141
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000-2p.py113
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000-6p.py141
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1-udir.py84
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1.py95
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-1cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-2cnf.py165
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-8cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-1cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-2p.py110
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-6p.py134
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-8cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000.py135
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000-2p.py110
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000-6p.py134
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000-2p.py110
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000-6p.py134
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst2-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst2.py135
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-1cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-8cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst253.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst253_l3fwd.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-1cnf.py167
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-1cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-8cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-1cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-8cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-1cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-8cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-1cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-8cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst500000.py137
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-1cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-8cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst8-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst8.py135
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src1000ip4dst1000.py165
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src100ip4dst100.py165
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src1ip4dst1.py95
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src253.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src254.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src2ip4dst2.py165
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src4ip4dst4.py165
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src8ip4dst8.py165
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc100ip4src100.py171
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc100kip4src100k.py171
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc10kip4src10k.py171
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc500kdst500k.py225
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc50kdst50k.py224
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc5kdst5k.py225
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-1000u15p.py156
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-100u1000p-conc.py199
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-100u15p.py158
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-1024u63p-udir.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-1024u63p.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-1048576u63p.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u1000p-conc.py199
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u10p-conc.py199
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u15p.py158
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-16384u63p-udir.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-16384u63p.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-1u15p.py151
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-1u1p.py114
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-2000u15p.py158
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-262144u63p-udir.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-262144u63p.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-4000u15p.py158
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-4096u63p-udir.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-4096u63p.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-65536u63p-udir.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-65536u63p.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4udp-lb.py160
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip4vxlan-ip4src1udpsrcrnd.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000-2p.py115
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000-6p.py143
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000.py142
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-2p.py115
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-6p.py143
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000.py142
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-2p.py115
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-6p.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000.py142
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-2p.py112
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-6p.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-rnd.py142
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-2p.py112
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-6p.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-rnd.py142
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-2p.py112
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-6p.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-rnd.py142
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000.py2
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000.py140
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6src253.py139
-rw-r--r--GPL/traffic_scripts/PacketVerifier.py1
-rw-r--r--GPL/traffic_scripts/ValidIp.py58
-rw-r--r--GPL/traffic_scripts/geneve_tunnel.py29
-rw-r--r--GPL/traffic_scripts/ipsec_interface.py70
-rw-r--r--GPL/traffic_scripts/ipsec_policy.py69
-rw-r--r--GPL/traffic_scripts/lisp/lisp_check.py55
-rw-r--r--GPL/traffic_scripts/lisp/lispgpe_check.py51
-rw-r--r--GPL/traffic_scripts/nat.py47
-rw-r--r--GPL/traffic_scripts/policer.py17
-rw-r--r--GPL/traffic_scripts/send_flow_packet.py109
-rw-r--r--GPL/traffic_scripts/send_icmp_wait_for_reply.py57
-rw-r--r--GPL/traffic_scripts/send_ip_check_headers.py37
-rw-r--r--GPL/traffic_scripts/srv6_encap.py56
-rw-r--r--GPL/traffic_scripts/vxlan.py4
-rw-r--r--INFO.yaml5
-rw-r--r--PyPI/MLRsearch/MANIFEST.in6
l---------PyPI/MLRsearch/MLRsearch2
-rw-r--r--PyPI/MLRsearch/README.rst146
-rw-r--r--PyPI/MLRsearch/hints_and_todos.txt7
-rw-r--r--PyPI/MLRsearch/pyproject.toml31
-rw-r--r--PyPI/MLRsearch/setup.cfg7
-rw-r--r--PyPI/MLRsearch/setup.py50
-rw-r--r--PyPI/jumpavg/MANIFEST.in6
-rw-r--r--PyPI/jumpavg/README.rst61
-rw-r--r--PyPI/jumpavg/hints_and_todos.txt7
-rw-r--r--PyPI/jumpavg/pyproject.toml28
-rw-r--r--PyPI/jumpavg/setup.cfg7
-rw-r--r--PyPI/jumpavg/setup.py62
-rw-r--r--README.md124
-rw-r--r--VPP_DEVICE_IMAGE_CENTOS1
-rw-r--r--VPP_DEVICE_IMAGE_UBUNTU1
-rw-r--r--VPP_DEVICE_IMAGE_UBUNTU_ARM1
-rw-r--r--VPP_DEVICE_IMAGE_UBUNTU_JAMMY1
-rw-r--r--VPP_DEVICE_IMAGE_UBUNTU_JAMMY_ARM1
-rw-r--r--VPP_STABLE_VER_CENTOS1
-rw-r--r--VPP_STABLE_VER_UBUNTU_BIONIC1
-rw-r--r--VPP_STABLE_VER_UBUNTU_JAMMY1
-rw-r--r--csit.infra.dash/Dockerfile12
-rw-r--r--csit.infra.dash/app/.ebextensions/cron-linux.config14
-rw-r--r--csit.infra.dash/app/.ebextensions/env-flask.config4
-rw-r--r--csit.infra.dash/app/.ebextensions/packages.config3
-rw-r--r--csit.infra.dash/app/Procfile1
-rw-r--r--csit.infra.dash/app/app.ini30
-rw-r--r--csit.infra.dash/app/cdash/__init__.py144
-rw-r--r--csit.infra.dash/app/cdash/comparisons/__init__.py12
-rw-r--r--csit.infra.dash/app/cdash/comparisons/comparisons.py53
-rw-r--r--csit.infra.dash/app/cdash/comparisons/layout.py1339
-rw-r--r--csit.infra.dash/app/cdash/comparisons/tables.py348
-rw-r--r--csit.infra.dash/app/cdash/coverage/__init__.py12
-rw-r--r--csit.infra.dash/app/cdash/coverage/coverage.py51
-rw-r--r--csit.infra.dash/app/cdash/coverage/layout.py753
-rw-r--r--csit.infra.dash/app/cdash/coverage/tables.py315
-rw-r--r--csit.infra.dash/app/cdash/data/__init__.py12
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/coverage_rls2306_devicebin0 -> 5373 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/coverage_rls2306_ndrpdrbin0 -> 11868 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/coverage_rls2310_devicebin0 -> 5373 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/coverage_rls2310_ndrpdrbin0 -> 11868 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/coverage_rls2402_devicebin0 -> 5373 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/coverage_rls2402_ndrpdrbin0 -> 11868 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_hoststackbin0 -> 7882 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_mrrbin0 -> 7919 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_ndrpdrbin0 -> 13081 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_hoststackbin0 -> 7882 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_mrrbin0 -> 7919 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_ndrpdrbin0 -> 15173 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_hoststackbin0 -> 7882 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_mrrbin0 -> 10179 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_ndrpdrbin0 -> 15173 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/statisticsbin0 -> 4398 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/trending_hoststackbin0 -> 9628 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/trending_mrrbin0 -> 9832 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/_metadata/trending_ndrpdrbin0 -> 16091 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/data.py421
-rw-r--r--csit.infra.dash/app/cdash/data/data.yaml464
l---------csit.infra.dash/app/cdash/jumpavg1
-rw-r--r--csit.infra.dash/app/cdash/news/__init__.py12
-rw-r--r--csit.infra.dash/app/cdash/news/layout.py508
-rw-r--r--csit.infra.dash/app/cdash/news/news.py56
-rw-r--r--csit.infra.dash/app/cdash/news/tables.py176
-rw-r--r--csit.infra.dash/app/cdash/report/__init__.py12
-rw-r--r--csit.infra.dash/app/cdash/report/graphs.py305
-rw-r--r--csit.infra.dash/app/cdash/report/layout.py1332
-rw-r--r--csit.infra.dash/app/cdash/report/layout.yaml156
-rw-r--r--csit.infra.dash/app/cdash/report/report.py52
-rw-r--r--csit.infra.dash/app/cdash/routes.py38
-rw-r--r--csit.infra.dash/app/cdash/search/__init__.py12
-rw-r--r--csit.infra.dash/app/cdash/search/layout.py948
-rw-r--r--csit.infra.dash/app/cdash/search/layout.yaml276
-rw-r--r--csit.infra.dash/app/cdash/search/search.py52
-rw-r--r--csit.infra.dash/app/cdash/search/tables.py123
-rw-r--r--csit.infra.dash/app/cdash/static/dist/img/favicon.svg348
-rw-r--r--csit.infra.dash/app/cdash/static/img/logo.svg348
-rw-r--r--csit.infra.dash/app/cdash/static/sass/_bootswatch.scss178
-rw-r--r--csit.infra.dash/app/cdash/static/sass/_variables.scss103
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_accordion.scss149
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_alert.scss71
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_badge.scss38
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_breadcrumb.scss40
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_button-group.scss142
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_buttons.scss201
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_card.scss234
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_carousel.scss229
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_close.scss40
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_containers.scss41
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_dropdown.scss249
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_forms.scss9
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_functions.scss302
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_grid.scss33
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_helpers.scss10
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_images.scss42
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_list-group.scss192
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_maps.scss54
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_mixins.scss43
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_modal.scss237
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_nav.scss172
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_navbar.scss278
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_offcanvas.scss144
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_pagination.scss109
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_placeholders.scss51
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_popover.scss196
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_progress.scss59
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_reboot.scss610
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_root.scss73
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_spinners.scss85
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_tables.scss164
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_toasts.scss71
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_tooltip.scss120
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_transitions.scss27
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_type.scss106
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_utilities.scss647
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/_variables.scss1634
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-grid.scss64
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-reboot.scss9
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-utilities.scss15
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap.scss51
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_floating-labels.scss75
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-check.scss175
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-control.scss194
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-range.scss91
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-select.scss71
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-text.scss11
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_input-group.scss132
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_labels.scss36
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_validation.scss12
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_clearfix.scss3
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_color-bg.scss10
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_colored-links.scss12
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_position.scss36
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_ratio.scss26
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_stacks.scss15
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_stretched-link.scss15
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_text-truncation.scss7
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_visually-hidden.scss8
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_vr.scss8
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_alert.scss15
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_backdrop.scss14
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_banner.scss9
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_border-radius.scss78
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_box-shadow.scss18
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_breakpoints.scss127
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_buttons.scss70
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_caret.scss64
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_clearfix.scss9
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_color-scheme.scss7
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_container.scss11
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_deprecate.scss10
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_forms.scss152
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_gradients.scss47
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_grid.scss151
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_image.scss16
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_list-group.scss24
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_lists.scss7
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_pagination.scss10
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_reset-text.scss17
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_resize.scss6
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_table-variants.scss24
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_text-truncate.scss8
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_transition.scss26
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_utilities.scss97
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_visually-hidden.scss29
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/utilities/_api.scss47
-rw-r--r--csit.infra.dash/app/cdash/static/sass/bootstrap/vendor/_rfs.scss354
-rw-r--r--csit.infra.dash/app/cdash/static/sass/lux.scss9
-rw-r--r--csit.infra.dash/app/cdash/stats/__init__.py12
-rw-r--r--csit.infra.dash/app/cdash/stats/graphs.py129
-rw-r--r--csit.infra.dash/app/cdash/stats/layout.py853
-rw-r--r--csit.infra.dash/app/cdash/stats/layout.yaml79
-rw-r--r--csit.infra.dash/app/cdash/stats/stats.py58
-rw-r--r--csit.infra.dash/app/cdash/templates/base_layout.jinja271
-rw-r--r--csit.infra.dash/app/cdash/templates/dash_layout.jinja217
-rw-r--r--csit.infra.dash/app/cdash/templates/layout.jinja224
-rw-r--r--csit.infra.dash/app/cdash/trending/__init__.py12
-rw-r--r--csit.infra.dash/app/cdash/trending/graphs.py655
-rw-r--r--csit.infra.dash/app/cdash/trending/layout.py1721
-rw-r--r--csit.infra.dash/app/cdash/trending/layout.yaml201
-rw-r--r--csit.infra.dash/app/cdash/trending/trending.py52
-rw-r--r--csit.infra.dash/app/cdash/utils/__init__.py12
-rw-r--r--csit.infra.dash/app/cdash/utils/anomalies.py69
-rw-r--r--csit.infra.dash/app/cdash/utils/constants.py444
-rw-r--r--csit.infra.dash/app/cdash/utils/control_panel.py87
-rw-r--r--csit.infra.dash/app/cdash/utils/telemetry_data.py362
-rw-r--r--csit.infra.dash/app/cdash/utils/tooltips.yaml51
-rw-r--r--csit.infra.dash/app/cdash/utils/trigger.py65
-rw-r--r--csit.infra.dash/app/cdash/utils/url_processing.py99
-rw-r--r--csit.infra.dash/app/cdash/utils/utils.py895
-rw-r--r--csit.infra.dash/app/config.py32
-rw-r--r--csit.infra.dash/app/requirements.txt58
-rw-r--r--csit.infra.dash/app/wsgi.py20
-rwxr-xr-xcsit.infra.dash/do_run.sh10
-rw-r--r--csit.infra.dash/docker-compose.yaml16
-rw-r--r--csit.infra.etl/.gitignore1
-rw-r--r--csit.infra.etl/coverage_device.json89
-rw-r--r--csit.infra.etl/coverage_device_rls2402.py170
-rw-r--r--csit.infra.etl/coverage_hoststack.json223
-rw-r--r--csit.infra.etl/coverage_hoststack_rls2402.py171
-rw-r--r--csit.infra.etl/coverage_mrr.json201
-rw-r--r--csit.infra.etl/coverage_mrr_rls2402.py170
-rw-r--r--csit.infra.etl/coverage_ndrpdr.json691
-rw-r--r--csit.infra.etl/coverage_ndrpdr_rls2402.py170
-rw-r--r--csit.infra.etl/coverage_reconf.json223
-rw-r--r--csit.infra.etl/coverage_reconf_rls2402.py171
-rw-r--r--csit.infra.etl/coverage_soak.json233
-rw-r--r--csit.infra.etl/coverage_soak_rls2402.py170
-rw-r--r--csit.infra.etl/iterative_hoststack.json285
-rw-r--r--csit.infra.etl/iterative_hoststack_rls2402.py171
-rw-r--r--csit.infra.etl/iterative_mrr.json201
-rw-r--r--csit.infra.etl/iterative_mrr_rls2402.py170
-rw-r--r--csit.infra.etl/iterative_ndrpdr.json691
-rw-r--r--csit.infra.etl/iterative_ndrpdr_rls2402.py170
-rw-r--r--csit.infra.etl/iterative_reconf.json223
-rw-r--r--csit.infra.etl/iterative_reconf_rls2402.py171
-rw-r--r--csit.infra.etl/iterative_soak.json233
-rw-r--r--csit.infra.etl/iterative_soak_rls2402.py170
-rw-r--r--csit.infra.etl/local.py176
-rw-r--r--csit.infra.etl/stats.py133
-rw-r--r--csit.infra.etl/stats_sra.json41
-rw-r--r--csit.infra.etl/trending_hoststack.json285
-rw-r--r--csit.infra.etl/trending_hoststack.py171
-rw-r--r--csit.infra.etl/trending_mrr.json217
-rw-r--r--csit.infra.etl/trending_mrr.py171
-rw-r--r--csit.infra.etl/trending_ndrpdr.json707
-rw-r--r--csit.infra.etl/trending_ndrpdr.py171
-rw-r--r--csit.infra.etl/trending_reconf.json239
-rw-r--r--csit.infra.etl/trending_reconf.py171
-rw-r--r--csit.infra.etl/trending_soak.json249
-rw-r--r--csit.infra.etl/trending_soak.py171
-rw-r--r--csit.infra.hugo/docker-compose.yaml23
-rw-r--r--csit.infra.vagrant/Vagrantfile87
-rw-r--r--docs/archetypes/default.md4
-rw-r--r--docs/automating_vpp_api_flag_day.rst325
-rw-r--r--docs/bash_code_style.rst718
-rw-r--r--docs/config.toml58
-rw-r--r--docs/content/_index.md49
-rw-r--r--docs/content/infrastructure/_index.md6
-rw-r--r--docs/content/infrastructure/fdio_csit_logical_topologies.md138
-rw-r--r--docs/content/infrastructure/fdio_csit_testbed_versioning.md146
-rw-r--r--docs/content/infrastructure/fdio_dc_testbed_specifications.md2053
-rw-r--r--docs/content/infrastructure/fdio_dc_vexxhost_inventory.md126
-rw-r--r--docs/content/infrastructure/testbed_configuration/_index.md6
-rw-r--r--docs/content/infrastructure/testbed_configuration/ami_alt_hw_bios_cfg.md1264
-rw-r--r--docs/content/infrastructure/testbed_configuration/gigabyte_tx2_hw_bios_cfg.md406
-rw-r--r--docs/content/infrastructure/testbed_configuration/huawei_tsh_hw_bios_cfg.md534
-rw-r--r--docs/content/infrastructure/testbed_configuration/sm_clx_hw_bios_cfg.md1425
-rw-r--r--docs/content/infrastructure/testbed_configuration/sm_icx_hw_bios_cfg.md1121
-rw-r--r--docs/content/infrastructure/testbed_configuration/sm_spr_hw_bios_cfg.md851
-rw-r--r--docs/content/infrastructure/testbed_configuration/sm_zn2_hw_bios_cfg.md620
-rw-r--r--docs/content/infrastructure/vpp_startup_settings.md44
-rw-r--r--docs/content/methodology/_index.md6
-rw-r--r--docs/content/methodology/bisecting.md114
-rw-r--r--docs/content/methodology/measurements/_index.md12
-rw-r--r--docs/content/methodology/measurements/data_plane_throughput/_index.md13
-rw-r--r--docs/content/methodology/measurements/data_plane_throughput/data_plane_throughput.md129
-rw-r--r--docs/content/methodology/measurements/data_plane_throughput/mlr_search.md112
-rw-r--r--docs/content/methodology/measurements/data_plane_throughput/mrr.md56
-rw-r--r--docs/content/methodology/measurements/data_plane_throughput/plr_search.md383
-rw-r--r--docs/content/methodology/measurements/packet_latency.md52
-rw-r--r--docs/content/methodology/measurements/telemetry.md158
-rw-r--r--docs/content/methodology/overview/_index.md15
-rw-r--r--docs/content/methodology/overview/dut_state_considerations.md148
-rw-r--r--docs/content/methodology/overview/multi_core_speedup.md51
-rw-r--r--docs/content/methodology/overview/per_thread_resources.md101
-rw-r--r--docs/content/methodology/overview/terminology.md97
-rw-r--r--docs/content/methodology/overview/trex_traffic_generator.md195
-rw-r--r--docs/content/methodology/overview/vpp_forwarding_modes.md104
-rw-r--r--docs/content/methodology/per_patch_testing.md229
-rw-r--r--docs/content/methodology/test/_index.md19
-rw-r--r--docs/content/methodology/test/access_control_lists.md66
-rw-r--r--docs/content/methodology/test/generic_segmentation_offload.md117
-rw-r--r--docs/content/methodology/test/hoststack/_index.md13
-rw-r--r--docs/content/methodology/test/hoststack/quicudpip_with_vppecho.md48
-rw-r--r--docs/content/methodology/test/hoststack/tcpip_with_iperf3.md52
-rw-r--r--docs/content/methodology/test/hoststack/udpip_with_iperf3.md44
-rw-r--r--docs/content/methodology/test/hoststack/vsap_ab_with_nginx.md39
-rw-r--r--docs/content/methodology/test/internet_protocol_security.md73
-rw-r--r--docs/content/methodology/test/network_address_translation.md445
-rw-r--r--docs/content/methodology/test/packet_flow_ordering.md42
-rw-r--r--docs/content/methodology/test/reassembly.md48
-rw-r--r--docs/content/methodology/test/reconfiguration.md70
-rw-r--r--docs/content/methodology/test/tunnel_encapsulations.md87
-rw-r--r--docs/content/methodology/test/vpp_device.md15
-rw-r--r--docs/content/methodology/trending/_index.md16
-rw-r--r--docs/content/methodology/trending/analysis.md231
-rw-r--r--docs/content/methodology/trending/presentation.md36
-rw-r--r--docs/content/methodology/trending/previous.md11
-rw-r--r--docs/content/overview/_index.md6
-rw-r--r--docs/content/overview/c_dash/_index.md6
-rw-r--r--docs/content/overview/c_dash/design.md16
-rw-r--r--docs/content/overview/c_dash/structure.md111
-rw-r--r--docs/content/overview/csit/_index.md45
-rw-r--r--docs/content/overview/csit/branching_strategy.md109
-rw-r--r--docs/content/overview/csit/design.md148
-rw-r--r--docs/content/overview/csit/suite_generation.md123
-rw-r--r--docs/content/overview/csit/test_naming.md112
-rw-r--r--docs/content/overview/csit/test_scenarios.md66
-rw-r--r--docs/content/overview/csit/test_tags.md876
-rw-r--r--docs/content/release_notes/_index.md6
-rw-r--r--docs/content/release_notes/current/_index.md121
-rw-r--r--docs/content/release_notes/current/dpdk_performance.md38
-rw-r--r--docs/content/release_notes/current/trex_performance.md40
-rw-r--r--docs/content/release_notes/current/vpp_device.md27
-rw-r--r--docs/content/release_notes/current/vpp_performance.md108
-rw-r--r--docs/content/release_notes/previous/_index.md31
-rw-r--r--docs/content/release_notes/previous/csit_rls2302/_index.md13
-rw-r--r--docs/content/release_notes/previous/csit_rls2302/dpdk_performance.md31
-rw-r--r--docs/content/release_notes/previous/csit_rls2302/trex_performance.md26
-rw-r--r--docs/content/release_notes/previous/csit_rls2302/vpp_device.md26
-rw-r--r--docs/content/release_notes/previous/csit_rls2302/vpp_performance.md93
-rw-r--r--docs/content/release_notes/previous/csit_rls2306/_index.md111
-rw-r--r--docs/content/release_notes/previous/csit_rls2306/dpdk_performance.md38
-rw-r--r--docs/content/release_notes/previous/csit_rls2306/trex_performance.md40
-rw-r--r--docs/content/release_notes/previous/csit_rls2306/vpp_device.md26
-rw-r--r--docs/content/release_notes/previous/csit_rls2306/vpp_performance.md92
-rw-r--r--docs/content/release_notes/previous/csit_rls2310/_index.md109
-rw-r--r--docs/content/release_notes/previous/csit_rls2310/dpdk_performance.md38
-rw-r--r--docs/content/release_notes/previous/csit_rls2310/trex_performance.md40
-rw-r--r--docs/content/release_notes/previous/csit_rls2310/vpp_device.md27
-rw-r--r--docs/content/release_notes/previous/csit_rls2310/vpp_performance.md106
-rw-r--r--docs/cpta/data/index.rst79
-rw-r--r--docs/cpta/index.rst61
-rw-r--r--docs/cpta/introduction/dashboard.rst199
-rw-r--r--docs/cpta/introduction/failures.rst74
-rw-r--r--docs/cpta/introduction/introduction.rst24
-rw-r--r--docs/cpta/introduction/weekly.rst86
-rw-r--r--docs/cpta/methodology/index.rst14
-rw-r--r--docs/cpta/methodology/jenkins_jobs.rst62
-rw-r--r--docs/cpta/methodology/overview.rst14
-rw-r--r--docs/cpta/methodology/performance_tests.rst36
-rw-r--r--docs/cpta/methodology/perpatch_performance_tests.rst86
-rw-r--r--docs/cpta/methodology/testbed_hw_configuration.rst5
-rw-r--r--docs/cpta/methodology/trend_analysis.rst106
-rw-r--r--docs/cpta/methodology/trend_presentation.rst42
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif-2n-clx-cx556a.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif-2n-clx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif-2n-skx-x710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif-2n-skx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif-3n-skx-x710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif-3n-skx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif.rst11
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-2n-clx-cx556a.rst95
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-2n-clx-x710.rst35
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-2n-clx-xxv710.rst192
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-2n-skx-x710.rst39
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-2n-skx-xxv710.rst159
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-3n-hsw-xl710.rst35
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-3n-skx-x710.rst35
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-3n-skx-xxv710.rst68
-rw-r--r--docs/cpta/ndrpdr_trending/ip4.rst15
-rw-r--r--docs/cpta/ndrpdr_trending/ip4_tunnels-3n-hsw-xl710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/ip4_tunnels-3n-skx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/ip4_tunnels.rst7
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-clx-cx556a.rst35
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-clx-x710.rst39
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-clx-xxv710.rst68
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-skx-x710.rst39
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-skx-xxv710.rst68
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-3n-hsw-xl710.rst35
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-3n-skx-x710.rst35
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-3n-skx-xxv710.rst68
-rw-r--r--docs/cpta/ndrpdr_trending/ip6.rst14
-rw-r--r--docs/cpta/ndrpdr_trending/ipsec-3n-hsw-xl710.rst68
-rw-r--r--docs/cpta/ndrpdr_trending/ipsec-3n-skx-xxv710.rst134
-rw-r--r--docs/cpta/ndrpdr_trending/ipsec.rst7
-rw-r--r--docs/cpta/ndrpdr_trending/l2-2n-clx-cx556a.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/l2-2n-clx-x710.rst39
-rw-r--r--docs/cpta/ndrpdr_trending/l2-2n-clx-xxv710.rst97
-rw-r--r--docs/cpta/ndrpdr_trending/l2-2n-skx-x710.rst68
-rw-r--r--docs/cpta/ndrpdr_trending/l2-2n-skx-xxv710.rst126
-rw-r--r--docs/cpta/ndrpdr_trending/l2-3n-hsw-xl710.rst35
-rw-r--r--docs/cpta/ndrpdr_trending/l2-3n-skx-x710.rst68
-rw-r--r--docs/cpta/ndrpdr_trending/l2-3n-skx-xxv710.rst97
-rw-r--r--docs/cpta/ndrpdr_trending/l2.rst15
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-det-bidir-2n-clx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-det-bidir-2n-skx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-det-bidir.rst7
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps-2n-clx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps-2n-skx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps.rst7
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps-2n-clx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps-2n-skx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps.rst7
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-clx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-skx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-udp-cps.rst7
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-udp-pps-2n-clx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-udp-pps-2n-skx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-udp-pps.rst7
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-unidir-2n-clx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-unidir-2n-skx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-unidir.rst7
-rw-r--r--docs/cpta/ndrpdr_trending/nat44.rst7
-rw-r--r--docs/cpta/ndrpdr_trending/srv6-3n-hsw-xl710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/srv6-3n-skx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/srv6.rst7
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-2n-clx-cx556a.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-2n-clx-xxv710.rst68
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-2n-skx-x710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-2n-skx-xxv710.rst126
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-3n-hsw-xl710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-3n-skx-x710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-3n-skx-xxv710.rst157
-rw-r--r--docs/cpta/ndrpdr_trending/vhost.rst13
-rw-r--r--docs/cpta/ndrpdr_trending/vts-2n-clx-xxv710.rst34
-rw-r--r--docs/cpta/ndrpdr_trending/vts.rst6
-rw-r--r--docs/cpta/trending/container_memif-2n-clx-cx556a.rst47
-rw-r--r--docs/cpta/trending/container_memif-2n-clx-xxv710.rst92
-rw-r--r--docs/cpta/trending/container_memif-2n-skx-xxv710.rst92
-rw-r--r--docs/cpta/trending/container_memif-2n-zn2-cx556a.rst47
-rw-r--r--docs/cpta/trending/container_memif-2n-zn2-xxv710.rst92
-rw-r--r--docs/cpta/trending/container_memif-3n-skx-xxv710.rst92
-rw-r--r--docs/cpta/trending/container_memif-3n-tsh-x520.rst54
-rw-r--r--docs/cpta/trending/container_memif.rst14
-rw-r--r--docs/cpta/trending/dpdk-2n-clx-x710.rst54
-rw-r--r--docs/cpta/trending/dpdk-2n-clx-xxv710.rst53
-rw-r--r--docs/cpta/trending/dpdk-2n-skx-x710.rst54
-rw-r--r--docs/cpta/trending/dpdk-2n-skx-xxv710.rst53
-rw-r--r--docs/cpta/trending/dpdk-2n-zn2-x710.rst54
-rw-r--r--docs/cpta/trending/dpdk-2n-zn2-xxv710.rst53
-rw-r--r--docs/cpta/trending/dpdk-3n-hsw-x710.rst54
-rw-r--r--docs/cpta/trending/dpdk-3n-hsw-xl710.rst54
-rw-r--r--docs/cpta/trending/dpdk-3n-skx-x710.rst54
-rw-r--r--docs/cpta/trending/dpdk-3n-skx-xxv710.rst54
-rw-r--r--docs/cpta/trending/dpdk-3n-tsh-x520.rst50
-rw-r--r--docs/cpta/trending/dpdk.rst16
-rw-r--r--docs/cpta/trending/ip4-2n-clx-cx556a.rst146
-rw-r--r--docs/cpta/trending/ip4-2n-clx-x710.rst57
-rw-r--r--docs/cpta/trending/ip4-2n-clx-xxv710.rst185
-rw-r--r--docs/cpta/trending/ip4-2n-dnv-x553.rst47
-rw-r--r--docs/cpta/trending/ip4-2n-skx-x710.rst57
-rw-r--r--docs/cpta/trending/ip4-2n-skx-xxv710.rst293
-rw-r--r--docs/cpta/trending/ip4-2n-zn2-cx556a.rst146
-rw-r--r--docs/cpta/trending/ip4-2n-zn2-x710.rst57
-rw-r--r--docs/cpta/trending/ip4-2n-zn2-xxv710.rst185
-rw-r--r--docs/cpta/trending/ip4-3n-dnv-x553.rst50
-rw-r--r--docs/cpta/trending/ip4-3n-hsw-xl710.rst57
-rw-r--r--docs/cpta/trending/ip4-3n-skx-x710.rst51
-rw-r--r--docs/cpta/trending/ip4-3n-skx-xxv710.rst195
-rw-r--r--docs/cpta/trending/ip4-3n-tsh-x520.rst104
-rw-r--r--docs/cpta/trending/ip4.rst21
-rw-r--r--docs/cpta/trending/ip4_tunnels-3n-dnv-x553.rst56
-rw-r--r--docs/cpta/trending/ip4_tunnels-3n-hsw-xl710.rst51
-rw-r--r--docs/cpta/trending/ip4_tunnels-3n-skx-xxv710.rst56
-rw-r--r--docs/cpta/trending/ip4_tunnels-3n-tsh-x520.rst56
-rw-r--r--docs/cpta/trending/ip4_tunnels.rst9
-rw-r--r--docs/cpta/trending/ip6-2n-clx-cx556a.rst50
-rw-r--r--docs/cpta/trending/ip6-2n-clx-x710.rst56
-rw-r--r--docs/cpta/trending/ip6-2n-clx-xxv710.rst98
-rw-r--r--docs/cpta/trending/ip6-2n-dnv-x553.rst57
-rw-r--r--docs/cpta/trending/ip6-2n-skx-x710.rst56
-rw-r--r--docs/cpta/trending/ip6-2n-skx-xxv710.rst98
-rw-r--r--docs/cpta/trending/ip6-2n-zn2-cx556a.rst50
-rw-r--r--docs/cpta/trending/ip6-2n-zn2-x710.rst56
-rw-r--r--docs/cpta/trending/ip6-2n-zn2-xxv710.rst98
-rw-r--r--docs/cpta/trending/ip6-3n-dnv-x553.rst56
-rw-r--r--docs/cpta/trending/ip6-3n-hsw-xl710.rst55
-rw-r--r--docs/cpta/trending/ip6-3n-skx-x710.rst50
-rw-r--r--docs/cpta/trending/ip6-3n-skx-xxv710.rst98
-rw-r--r--docs/cpta/trending/ip6-3n-tsh-x520.rst57
-rw-r--r--docs/cpta/trending/ip6.rst21
-rw-r--r--docs/cpta/trending/ipsec-3n-dnv-x553.rst98
-rw-r--r--docs/cpta/trending/ipsec-3n-hsw-xl710.rst112
-rw-r--r--docs/cpta/trending/ipsec-3n-skx-xxv710.rst194
-rw-r--r--docs/cpta/trending/ipsec-3n-tsh-x520.rst98
-rw-r--r--docs/cpta/trending/ipsec.rst9
-rw-r--r--docs/cpta/trending/l2-2n-clx-cx556a.rst92
-rw-r--r--docs/cpta/trending/l2-2n-clx-x710.rst56
-rw-r--r--docs/cpta/trending/l2-2n-clx-xxv710.rst182
-rw-r--r--docs/cpta/trending/l2-2n-dnv-x553.rst50
-rw-r--r--docs/cpta/trending/l2-2n-skx-x710.rst98
-rw-r--r--docs/cpta/trending/l2-2n-skx-xxv710.rst137
-rw-r--r--docs/cpta/trending/l2-2n-zn2-cx556a.rst92
-rw-r--r--docs/cpta/trending/l2-2n-zn2-x710.rst56
-rw-r--r--docs/cpta/trending/l2-2n-zn2-xxv710.rst182
-rw-r--r--docs/cpta/trending/l2-3n-dnv-x553.rst50
-rw-r--r--docs/cpta/trending/l2-3n-hsw-xl710.rst58
-rw-r--r--docs/cpta/trending/l2-3n-skx-x710.rst50
-rw-r--r--docs/cpta/trending/l2-3n-skx-xxv710.rst140
-rw-r--r--docs/cpta/trending/l2-3n-tsh-x520.rst149
-rw-r--r--docs/cpta/trending/l2.rst21
-rw-r--r--docs/cpta/trending/nat44-det-bidir-2n-clx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-det-bidir-2n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-det-bidir.rst7
-rw-r--r--docs/cpta/trending/nat44-ed-tcp-cps-2n-clx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-tcp-cps-2n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-tcp-cps.rst7
-rw-r--r--docs/cpta/trending/nat44-ed-tcp-pps-2n-clx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-tcp-pps-2n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-tcp-pps.rst7
-rw-r--r--docs/cpta/trending/nat44-ed-udp-cps-2n-clx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-udp-cps-2n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-udp-cps.rst7
-rw-r--r--docs/cpta/trending/nat44-ed-udp-pps-2n-clx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-udp-pps-2n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-udp-pps.rst7
-rw-r--r--docs/cpta/trending/nat44-ed-unidir-2n-clx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-unidir-2n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-unidir.rst7
-rw-r--r--docs/cpta/trending/nat44.rst11
-rw-r--r--docs/cpta/trending/nf_service_density.rst9
-rw-r--r--docs/cpta/trending/nf_service_density_cnfc-2n-clx-xxv710.rst44
-rw-r--r--docs/cpta/trending/nf_service_density_cnfc-2n-skx-xxv710.rst44
-rw-r--r--docs/cpta/trending/nf_service_density_cnfc.rst7
-rw-r--r--docs/cpta/trending/nf_service_density_cnfp-2n-clx-xxv710.rst44
-rw-r--r--docs/cpta/trending/nf_service_density_cnfp-2n-skx-xxv710.rst44
-rw-r--r--docs/cpta/trending/nf_service_density_cnfp.rst7
-rw-r--r--docs/cpta/trending/nf_service_density_vnfc-2n-clx-xxv710.rst44
-rw-r--r--docs/cpta/trending/nf_service_density_vnfc-2n-skx-xxv710.rst44
-rw-r--r--docs/cpta/trending/nf_service_density_vnfc-vxlan-2n-clx-xxv710.rst44
-rw-r--r--docs/cpta/trending/nf_service_density_vnfc-vxlan-2n-skx-xxv710.rst44
-rw-r--r--docs/cpta/trending/nf_service_density_vnfc-vxlan.rst7
-rw-r--r--docs/cpta/trending/nf_service_density_vnfc.rst7
-rw-r--r--docs/cpta/trending/srv6-3n-dnv-x553.rst55
-rw-r--r--docs/cpta/trending/srv6-3n-hsw-xl710.rst55
-rw-r--r--docs/cpta/trending/srv6-3n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/srv6-3n-tsh-x520.rst55
-rw-r--r--docs/cpta/trending/srv6.rst11
-rw-r--r--docs/cpta/trending/vhost-2n-clx-cx556a.rst92
-rw-r--r--docs/cpta/trending/vhost-2n-clx-xxv710.rst182
-rw-r--r--docs/cpta/trending/vhost-2n-skx-xxv710.rst182
-rw-r--r--docs/cpta/trending/vhost-2n-zn2-cx556a.rst92
-rw-r--r--docs/cpta/trending/vhost-2n-zn2-xxv710.rst182
-rw-r--r--docs/cpta/trending/vhost-3n-hsw-xl710.rst92
-rw-r--r--docs/cpta/trending/vhost-3n-skx-x710.rst92
-rw-r--r--docs/cpta/trending/vhost-3n-skx-xxv710.rst229
-rw-r--r--docs/cpta/trending/vhost-3n-tsh-x520.rst92
-rw-r--r--docs/cpta/trending/vhost.rst17
-rw-r--r--docs/cpta/trending/vts-2n-clx-xxv710.rst50
-rw-r--r--docs/cpta/trending/vts-2n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/vts-2n-zn2-xxv710.rst50
-rw-r--r--docs/cpta/trending/vts.rst8
-rw-r--r--docs/data/variables.yaml2
-rw-r--r--docs/go.mod5
-rw-r--r--docs/ietf/draft-ietf-bmwg-mlrsearch-06.md1634
-rw-r--r--docs/ietf/draft-vpolak-mkonstan-bmwg-mlrsearch-03.md556
-rw-r--r--docs/ietf/process.txt30
l---------docs/job_specs/mlr_weekly/vpp-2n-clx.md1
l---------docs/job_specs/mlr_weekly/vpp-2n-dnv.md1
l---------docs/job_specs/mlr_weekly/vpp-2n-skx.md1
l---------docs/job_specs/mlr_weekly/vpp-2n-tx2.md1
-rw-r--r--docs/job_specs/mlr_weekly/vpp-2n-zn2.md544
l---------docs/job_specs/mlr_weekly/vpp-3n-dnv.md1
l---------docs/job_specs/mlr_weekly/vpp-3n-hsw.md1
l---------docs/job_specs/mlr_weekly/vpp-3n-skx.md1
l---------docs/job_specs/mlr_weekly/vpp-3n-tsh.md1
l---------docs/job_specs/mrr_daily/vpp-2n-dnv.md1
l---------docs/job_specs/mrr_daily/vpp-2n-skx.md1
-rw-r--r--docs/job_specs/mrr_daily/vpp-2n-zn2.md544
l---------docs/job_specs/mrr_daily/vpp-3n-dnv.md1
l---------docs/job_specs/mrr_daily/vpp-3n-hsw.md1
l---------docs/job_specs/mrr_daily/vpp-3n-skx.md1
-rw-r--r--docs/job_specs/mrr_weekly/dpdk-2n-clx.md26
-rw-r--r--docs/job_specs/mrr_weekly/dpdk-2n-skx.md26
-rw-r--r--docs/job_specs/mrr_weekly/dpdk-2n-zn2.md26
-rw-r--r--docs/job_specs/mrr_weekly/dpdk-3n-hsw.md36
-rw-r--r--docs/job_specs/mrr_weekly/dpdk-3n-skx.md26
l---------docs/job_specs/mrr_weekly/vpp-2n-skx.md1
-rw-r--r--docs/job_specs/mrr_weekly/vpp-3n-skx.md165
-rw-r--r--docs/job_specs/perf_tests_job_specs.md141
l---------docs/job_specs/report_coverage/2n-clx/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-00.md281
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-01.md86
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-02.md66
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-03.md66
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-04.md66
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-05.md225
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-06.md225
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-07.md136
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4tun-00.md85
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip6-00.md141
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip6-01.md121
-rw-r--r--docs/job_specs/report_coverage/2n-clx/l2-00.md221
-rw-r--r--docs/job_specs/report_coverage/2n-clx/l2-01.md121
-rw-r--r--docs/job_specs/report_coverage/2n-clx/lb-00.md86
-rw-r--r--docs/job_specs/report_coverage/2n-clx/memif-00.md106
-rw-r--r--docs/job_specs/report_coverage/2n-clx/vhost-00.md146
-rw-r--r--docs/job_specs/report_coverage/2n-clx/vhost-01.md106
-rw-r--r--docs/job_specs/report_coverage/2n-clx/vts-00.md86
l---------docs/job_specs/report_coverage/2n-dnv/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/ip4-00.md105
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/ip4-01.md65
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/ip6-00.md65
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/ip6-01.md55
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/l2-00.md75
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/l2-01.md55
l---------docs/job_specs/report_coverage/2n-skx/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-00.md249
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-01.md106
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-02.md66
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-03.md66
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-04.md66
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-05.md225
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-06.md225
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-07.md136
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4tun-00.md85
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip6-00.md129
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip6-01.md109
-rw-r--r--docs/job_specs/report_coverage/2n-skx/l2-00.md189
-rw-r--r--docs/job_specs/report_coverage/2n-skx/l2-01.md109
-rw-r--r--docs/job_specs/report_coverage/2n-skx/lb-00.md86
-rw-r--r--docs/job_specs/report_coverage/2n-skx/memif-00.md106
-rw-r--r--docs/job_specs/report_coverage/2n-skx/vhost-00.md146
-rw-r--r--docs/job_specs/report_coverage/2n-skx/vhost-01.md106
-rw-r--r--docs/job_specs/report_coverage/2n-skx/vts-00.md86
l---------docs/job_specs/report_coverage/2n-tx2/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-00.md128
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-01.md64
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-02.md51
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-03.md51
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-04.md51
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-05.md155
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-06.md155
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip6-00.md77
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip6-01.md64
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/l2-00.md90
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/l2-01.md64
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/l2-02.md51
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/l2-03.md51
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/l2-04.md38
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/dpdk-00.md50
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-00.md281
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-01.md86
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-02.md66
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-03.md66
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-04.md66
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-05.md146
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4tun-00.md85
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip6-00.md141
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip6-01.md121
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/l2-00.md221
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/l2-01.md121
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/lb-00.md86
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/memif-00.md106
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/vhost-00.md146
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/vhost-01.md106
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/vts-00.md86
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/crypto-00.md169
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/crypto-01.md169
l---------docs/job_specs/report_coverage/3n-dnv/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/ip4-00.md75
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/ip4-01.md55
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/ip4tun-00.md45
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/ip6-00.md65
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/ip6-01.md55
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/l2-00.md75
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/l2-01.md55
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/crypto-00.md193
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/crypto-01.md193
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/crypto-02.md81
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/crypto-03.md81
l---------docs/job_specs/report_coverage/3n-hsw/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4-00.md133
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4-01.md49
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4-02.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4-03.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4-04.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4-05.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4-06.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4-07.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4tun-00.md41
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4tun-01.md57
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip4tun-02.md41
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip6-00.md95
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip6-01.md87
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/ip6tun-00.md41
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-00.md167
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-01.md87
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-02.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-03.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-04.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-05.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-06.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-07.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-08.md49
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-09.md49
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/l2-10.md49
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/memif-00.md65
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/srv6-00.md49
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/srv6-01.md49
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/vhost-00.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/vhost-01.md73
-rw-r--r--docs/job_specs/report_coverage/3n-hsw/vhost-02.md57
-rw-r--r--docs/job_specs/report_coverage/3n-skx/crypto-00.md214
-rw-r--r--docs/job_specs/report_coverage/3n-skx/crypto-01.md214
-rw-r--r--docs/job_specs/report_coverage/3n-skx/crypto-02.md130
-rw-r--r--docs/job_specs/report_coverage/3n-skx/crypto-03.md130
l---------docs/job_specs/report_coverage/3n-skx/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-00.md169
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-01.md86
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-02.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-03.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-04.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-05.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-06.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-07.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4tun-00.md66
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4tun-01.md106
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4tun-02.md66
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip6-00.md129
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip6-01.md109
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip6tun-00.md66
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-00.md189
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-01.md109
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-02.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-03.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-04.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-05.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-06.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-07.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-08.md86
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-09.md86
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-10.md86
-rw-r--r--docs/job_specs/report_coverage/3n-skx/memif-00.md126
-rw-r--r--docs/job_specs/report_coverage/3n-skx/srv6-00.md86
-rw-r--r--docs/job_specs/report_coverage/3n-skx/srv6-01.md86
-rw-r--r--docs/job_specs/report_coverage/3n-skx/vhost-00.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/vhost-01.md146
-rw-r--r--docs/job_specs/report_coverage/3n-skx/vhost-02.md106
-rw-r--r--docs/job_specs/report_coverage/3n-skx/vhost-03.md106
l---------docs/job_specs/report_coverage/3n-tsh/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4-00.md90
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4-01.md64
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4-02.md103
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4-03.md103
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4tun-00.md51
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4tun-01.md77
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip6-00.md77
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip6-01.md64
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/l2-00.md90
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/l2-01.md64
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/l2-02.md103
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/l2-03.md103
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/l2-04.md64
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/memif-00.md90
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/srv6-00.md64
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/srv6-01.md64
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/vhost-00.md103
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/vhost-01.md103
-rw-r--r--docs/job_specs/report_iterative/2n-clx/dpdk-mlr-00.md50
-rw-r--r--docs/job_specs/report_iterative/2n-clx/dpdk-mrr-00.md26
-rw-r--r--docs/job_specs/report_iterative/2n-clx/nfv-density-mlr-00.md143
-rw-r--r--docs/job_specs/report_iterative/2n-clx/nfv-density-mrr-00.md143
-rw-r--r--docs/job_specs/report_iterative/2n-clx/reconf-00.md41
-rw-r--r--docs/job_specs/report_iterative/2n-clx/soak-00.md64
-rw-r--r--docs/job_specs/report_iterative/2n-clx/vpp-mlr-00.md733
-rw-r--r--docs/job_specs/report_iterative/2n-clx/vpp-mrr-00.md733
-rw-r--r--docs/job_specs/report_iterative/2n-dnv/dpdk-mlr-00.md28
-rw-r--r--docs/job_specs/report_iterative/2n-dnv/dpdk-mrr-00.md16
-rw-r--r--docs/job_specs/report_iterative/2n-dnv/vpp-mlr-00.md61
-rw-r--r--docs/job_specs/report_iterative/2n-dnv/vpp-mrr-00.md61
-rw-r--r--docs/job_specs/report_iterative/2n-skx/dpdk-mlr-00.md50
-rw-r--r--docs/job_specs/report_iterative/2n-skx/dpdk-mrr-00.md26
-rw-r--r--docs/job_specs/report_iterative/2n-skx/nfv-density-mlr-00.md143
-rw-r--r--docs/job_specs/report_iterative/2n-skx/nfv-density-mrr-00.md143
-rw-r--r--docs/job_specs/report_iterative/2n-skx/reconf-00.md49
-rw-r--r--docs/job_specs/report_iterative/2n-skx/soak-00.md63
-rw-r--r--docs/job_specs/report_iterative/2n-skx/vpp-mlr-00.md599
-rw-r--r--docs/job_specs/report_iterative/2n-skx/vpp-mrr-00.md599
-rw-r--r--docs/job_specs/report_iterative/2n-tx2/dpdk-mlr-00.md34
-rw-r--r--docs/job_specs/report_iterative/2n-tx2/dpdk-mrr-00.md16
-rw-r--r--docs/job_specs/report_iterative/2n-tx2/vpp-mlr-00.md145
-rw-r--r--docs/job_specs/report_iterative/2n-tx2/vpp-mrr-00.md145
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/dpdk-mlr-00.md50
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/dpdk-mrr-00.md26
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/nfv-density-mlr-00.md143
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/nfv-density-mrr-00.md143
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/reconf-00.md41
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/soak-00.md64
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/vpp-mlr-00.md558
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/vpp-mrr-00.md558
-rw-r--r--docs/job_specs/report_iterative/3n-dnv/dpdk-mlr-00.md28
-rw-r--r--docs/job_specs/report_iterative/3n-dnv/dpdk-mrr-00.md16
-rw-r--r--docs/job_specs/report_iterative/3n-dnv/vpp-mlr-00.md101
-rw-r--r--docs/job_specs/report_iterative/3n-dnv/vpp-mrr-00.md101
-rw-r--r--docs/job_specs/report_iterative/3n-hsw/dpdk-mlr-00.md42
-rw-r--r--docs/job_specs/report_iterative/3n-hsw/dpdk-mrr-00.md26
-rw-r--r--docs/job_specs/report_iterative/3n-hsw/hoststack-00.md41
-rw-r--r--docs/job_specs/report_iterative/3n-hsw/reconf-00.md76
-rw-r--r--docs/job_specs/report_iterative/3n-hsw/vpp-mlr-00.md231
-rw-r--r--docs/job_specs/report_iterative/3n-hsw/vpp-mrr-00.md231
-rw-r--r--docs/job_specs/report_iterative/3n-skx/dpdk-mlr-00.md50
-rw-r--r--docs/job_specs/report_iterative/3n-skx/dpdk-mrr-00.md26
-rw-r--r--docs/job_specs/report_iterative/3n-skx/nfv-density-00.md65
-rw-r--r--docs/job_specs/report_iterative/3n-skx/vpp-mlr-00.md434
-rw-r--r--docs/job_specs/report_iterative/3n-skx/vpp-mrr-00.md434
-rw-r--r--docs/job_specs/report_iterative/3n-tsh/dpdk-mlr-00.md34
-rw-r--r--docs/job_specs/report_iterative/3n-tsh/dpdk-mrr-00.md16
-rw-r--r--docs/job_specs/report_iterative/3n-tsh/vpp-mlr-00.md297
-rw-r--r--docs/job_specs/report_iterative/3n-tsh/vpp-mrr-00.md297
-rw-r--r--docs/lab/testbed_specifications.md2031
-rw-r--r--docs/lab/testbeds_sm_clx_hw_bios_cfg.md1453
-rw-r--r--docs/lab/testbeds_sm_dnv_hw_bios_cfg.md351
-rw-r--r--docs/lab/testbeds_sm_skx_hw_bios_cfg.md577
-rw-r--r--docs/lab/testbeds_sm_zn2_hw_bios_cfg.md634
-rw-r--r--docs/lab/testbeds_ucs_hsw_hw_bios_cfg.md740
-rw-r--r--docs/layouts/shortcodes/release_csit.html1
-rw-r--r--docs/layouts/shortcodes/release_vpp.html1
-rw-r--r--docs/perf-triggers-design.rst146
-rw-r--r--docs/report/csit_framework_documentation/csit_design.rst192
-rw-r--r--docs/report/csit_framework_documentation/csit_tag_description.rst11
-rw-r--r--docs/report/csit_framework_documentation/csit_test_naming.rst120
-rw-r--r--docs/report/csit_framework_documentation/index.rst9
-rw-r--r--docs/report/csit_framework_documentation/pal_func_diagram.svg1413
-rw-r--r--docs/report/csit_framework_documentation/pal_layers.svg441
-rw-r--r--docs/report/csit_framework_documentation/pal_lld.rst1
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results/index.rst16
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_clx/index.rst11
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_dnv/index.rst11
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_skx/index.rst11
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_tx2/index.rst11
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_zn2/index.rst11
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_3n_dnv/index.rst11
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_3n_hsw/index.rst11
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_3n_skx/index.rst11
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_3n_tsh/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_device_results_ubuntu/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results/index.rst20
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_clx/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_dnv/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_skx/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_tx2/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_zn2/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_3n_dnv/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_3n_hsw/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_3n_skx/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_3n_tsh/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results/index.rst20
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_clx/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_dnv/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_skx/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_tx2/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_zn2/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_3n_dnv/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_3n_hsw/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_3n_skx/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_3n_tsh/index.rst11
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst40
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst44
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst41
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/current_vs_previous_release.rst215
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/index.rst27
-rw-r--r--docs/report/dpdk_performance_tests/csit_release_notes.rst36
-rw-r--r--docs/report/dpdk_performance_tests/documentation.rst5
-rw-r--r--docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_clx.rst3
-rw-r--r--docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst3
-rw-r--r--docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_zn2.rst3
-rw-r--r--docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_hsw.rst3
-rw-r--r--docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_skx.rst3
-rw-r--r--docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_tsh.rst3
-rw-r--r--docs/report/dpdk_performance_tests/index.rst13
-rw-r--r--docs/report/dpdk_performance_tests/overview.rst120
-rw-r--r--docs/report/dpdk_performance_tests/packet_latency/2n-clx-xxv710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/packet_latency/2n-skx-xxv710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/packet_latency/2n-tx2-xl710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/packet_latency/2n-zn2-xxv710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/packet_latency/3n-hsw-xl710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/packet_latency/3n-skx-xxv710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/packet_latency/3n-tsh-x520.rst78
-rw-r--r--docs/report/dpdk_performance_tests/packet_latency/index.rst55
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-clx-x710.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-clx-xxv710.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-dnv-x553.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-skx-x710.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-skx-xxv710.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-tx2-xl710.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-x710.rst127
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-xxv710.rst127
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-dnv-x553.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-hsw-x710.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-hsw-xl710.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-skx-x710.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-skx-xxv710.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-tsh-x520.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/index.rst80
-rw-r--r--docs/report/dpdk_performance_tests/test_environment.rst64
-rw-r--r--docs/report/dpdk_performance_tests/throughput_trending.rst17
-rw-r--r--docs/report/index.html.template86
-rw-r--r--docs/report/index.pdf.template11
-rw-r--r--docs/report/introduction/index.rst10
-rw-r--r--docs/report/introduction/introduction.rst105
-rw-r--r--docs/report/introduction/methodology.rst26
-rw-r--r--docs/report/introduction/methodology_acls.rst68
-rw-r--r--docs/report/introduction/methodology_data_plane_throughput/index.rst9
-rw-r--r--docs/report/introduction/methodology_data_plane_throughput/methodology_data_plane_throughput.rst145
-rw-r--r--docs/report/introduction/methodology_data_plane_throughput/methodology_mlrsearch_tests.rst52
-rw-r--r--docs/report/introduction/methodology_data_plane_throughput/methodology_mrr_throughput.rst54
-rw-r--r--docs/report/introduction/methodology_data_plane_throughput/methodology_plrsearch.rst429
-rw-r--r--docs/report/introduction/methodology_dut_state.rst150
-rw-r--r--docs/report/introduction/methodology_hoststack_testing/index.rst7
-rw-r--r--docs/report/introduction/methodology_hoststack_testing/methodology_quic_with_vppecho.rst46
-rw-r--r--docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst50
-rw-r--r--docs/report/introduction/methodology_ipsec.rst52
-rw-r--r--docs/report/introduction/methodology_kvm_vms_vhost_user.rst81
-rw-r--r--docs/report/introduction/methodology_lxc_drc_container_memif.rst21
-rw-r--r--docs/report/introduction/methodology_mellanox_nic.rst129
-rw-r--r--docs/report/introduction/methodology_multi_core_speedup.rst66
-rw-r--r--docs/report/introduction/methodology_nat44.rst454
-rw-r--r--docs/report/introduction/methodology_nfv_service_density.rst109
-rw-r--r--docs/report/introduction/methodology_packet_latency.rst33
-rw-r--r--docs/report/introduction/methodology_reconf.rst75
-rw-r--r--docs/report/introduction/methodology_terminology.rst78
-rw-r--r--docs/report/introduction/methodology_trex_traffic_generator.rst203
-rw-r--r--docs/report/introduction/methodology_tunnel_encapsulations.rst38
-rw-r--r--docs/report/introduction/methodology_vpp_device_functional.rst11
-rw-r--r--docs/report/introduction/methodology_vpp_forwarding_modes.rst90
-rw-r--r--docs/report/introduction/methodology_vpp_startup_settings.rst45
-rw-r--r--docs/report/introduction/physical_testbeds.rst432
-rw-r--r--docs/report/introduction/report_history.rst15
-rw-r--r--docs/report/introduction/test_environment_intro.rst110
-rw-r--r--docs/report/introduction/test_environment_pre_test_server_calib.rst26
-rw-r--r--docs/report/introduction/test_environment_sut_calib_clx.rst224
-rw-r--r--docs/report/introduction/test_environment_sut_calib_dnv.rst203
-rw-r--r--docs/report/introduction/test_environment_sut_calib_hsw.rst223
-rw-r--r--docs/report/introduction/test_environment_sut_calib_skx.rst214
-rw-r--r--docs/report/introduction/test_environment_sut_calib_tsh.rst82
-rw-r--r--docs/report/introduction/test_environment_sut_calib_tx2.rst25
-rw-r--r--docs/report/introduction/test_environment_sut_calib_zn2.rst118
-rw-r--r--docs/report/introduction/test_environment_sut_conf_1.rst66
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_clx.rst335
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_dnv.rst149
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_hsw.rst170
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_skx.rst171
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_tsh.rst154
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_tx2.rst141
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_zn2.rst331
-rw-r--r--docs/report/introduction/test_environment_tg.rst72
-rw-r--r--docs/report/introduction/test_scenarios_overview.rst62
-rw-r--r--docs/report/introduction/testbed-2n-dnv.svg5513
-rw-r--r--docs/report/introduction/testbed-2n-skx.svg1858
-rw-r--r--docs/report/introduction/testbed-3n-dnv.svg1220
-rw-r--r--docs/report/introduction/testbed-3n-hsw.svg2396
-rw-r--r--docs/report/introduction/testbed-3n-skx.svg2771
-rw-r--r--docs/report/test_configuration/vpp_device_configuration_ubuntu/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration/index.rst20
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_clx/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_dnv/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_skx/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_tx2/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_zn2/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_3n_dnv/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_3n_hsw/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_3n_skx/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_3n_tsh/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration/index.rst20
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_clx/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_dnv/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_skx/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_tx2/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_zn2/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_3n_dnv/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_3n_hsw/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_3n_skx/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_3n_tsh/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data/index.rst25
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_clx/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_dnv/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_skx/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_tx2/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_zn2/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_3n_dnv/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_3n_hsw/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_3n_skx/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_3n_tsh/index.rst11
-rw-r--r--docs/report/vpp_device_tests/csit_release_notes.rst25
-rw-r--r--docs/report/vpp_device_tests/documentation.rst6
-rw-r--r--docs/report/vpp_device_tests/index.rst9
-rw-r--r--docs/report/vpp_device_tests/overview.rst162
-rw-r--r--docs/report/vpp_device_tests/test_environment.rst573
-rw-r--r--docs/report/vpp_device_tests/vf-2n-nic2memif.svg1102
-rw-r--r--docs/report/vpp_device_tests/vf-2n-nic2nic.svg1165
-rw-r--r--docs/report/vpp_device_tests/vf-2n-nic2vhost.svg1042
-rw-r--r--docs/report/vpp_performance_tests/comparisons/2n-clx_vs_3n-hsw_testbeds.rst55
-rw-r--r--docs/report/vpp_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst54
-rw-r--r--docs/report/vpp_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst58
-rw-r--r--docs/report/vpp_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst55
-rw-r--r--docs/report/vpp_performance_tests/comparisons/current_vs_previous_release.rst461
-rw-r--r--docs/report/vpp_performance_tests/comparisons/index.rst19
-rw-r--r--docs/report/vpp_performance_tests/comparisons/nic_comparison.rst113
-rw-r--r--docs/report/vpp_performance_tests/comparisons/soak_vs_ndr.rst30
-rw-r--r--docs/report/vpp_performance_tests/csit_release_notes.rst126
-rw-r--r--docs/report/vpp_performance_tests/documentation/containers.rst421
-rw-r--r--docs/report/vpp_performance_tests/documentation/documentation.rst5
-rw-r--r--docs/report/vpp_performance_tests/documentation/index.rst13
-rw-r--r--docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_clx.rst3
-rw-r--r--docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst3
-rw-r--r--docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_zn2.rst3
-rw-r--r--docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_hsw.rst3
-rw-r--r--docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_skx.rst3
-rw-r--r--docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_tsh.rst3
-rw-r--r--docs/report/vpp_performance_tests/hoststack_testing/index.rst7
-rw-r--r--docs/report/vpp_performance_tests/hoststack_testing/iperf3/index.rst75
-rw-r--r--docs/report/vpp_performance_tests/hoststack_testing/quic/index.rst55
-rw-r--r--docs/report/vpp_performance_tests/index.rst18
-rw-r--r--docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains.rst480
-rw-r--r--docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains_ipsec.rst1161
-rw-r--r--docs/report/vpp_performance_tests/nf_service_density/cnf_service_pipelines.rst480
-rw-r--r--docs/report/vpp_performance_tests/nf_service_density/index.rst35
-rw-r--r--docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains.rst479
-rw-r--r--docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains_vxlan.rst476
-rw-r--r--docs/report/vpp_performance_tests/overview.rst376
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-xxv710.rst194
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-2n-skx-xxv710.rst194
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-2n-zn2-xxv710.rst194
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-3n-skx-xxv710.rst132
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-3n-tsh-x520.rst139
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif.rst18
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/index.rst58
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-xxv710.rst501
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-skx-xxv710.rst501
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-tx2-xl710.rst237
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-zn2-xxv710.rst501
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-3n-hsw-xl710.rst96
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-3n-skx-xxv710.rst340
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-3n-tsh-x520.rst194
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4.rst20
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-hsw-xl710.rst75
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-skx-xxv710.rst155
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-tsh-x520.rst118
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4_tunnels.rst16
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-xxv710.rst235
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-skx-xxv710.rst236
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-tx2-xl710.rst151
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-zn2-xxv710.rst235
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-3n-hsw-xl710.rst96
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-3n-skx-xxv710.rst195
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-3n-tsh-x520.rst139
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6.rst20
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ipsec-3n-hsw-xl710.rst247
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ipsec-3n-skx-xxv710.rst235
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ipsec-3n-tsh-x520.rst96
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ipsec.rst16
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-xxv710.rst355
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-skx-xxv710.rst356
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-tx2-xl710.rst297
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-zn2-xxv710.rst355
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-3n-hsw-xl710.rst159
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-3n-skx-xxv710.rst419
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-3n-tsh-x520.rst310
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2.rst20
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/nat44-2n-clx-xxv710.rst298
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/nat44-2n-skx-xxv710.rst298
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/nat44.rst15
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/srv6-3n-hsw-xl710.rst160
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/srv6-3n-skx-xxv710.rst152
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/srv6-3n-tsh-x520.rst160
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/srv6.rst19
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-xxv710.rst362
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-skx-xxv710.rst362
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-zn2-xxv710.rst362
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-hsw-xl710.rst222
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-skx-xxv710.rst481
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-tsh-x520.rst160
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost.rst21
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-clx-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-clx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-zn2-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-zn2-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-3n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-3n-tsh-x520.rst86
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif.rst26
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/index.rst160
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-cx556a.rst157
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-xxv710.rst286
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-dnv-x553.rst144
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-skx-xxv710.rst280
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-tx2-xl710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-cx556a.rst157
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-xxv710.rst286
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-dnv-x553.rst144
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-hsw-xl710.rst82
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-skx-xxv710.rst201
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-tsh-x520.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4.rst34
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-dnv-x553.rst83
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-hsw-xl710.rst80
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-tsh-x520.rst83
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels.rst23
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-xxv710.rst115
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-dnv-x553.rst86
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-tx2-xl710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-xxv710.rst115
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-dnv-x553.rst86
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-hsw-xl710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-tsh-x520.rst86
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6.rst34
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-dnv-x553.rst88
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-hsw-xl710.rst142
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-skx-xxv710.rst157
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-tsh-x520.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec.rst26
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-cx556a.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-x710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-dnv-x553.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-skx-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-tx2-xl710.rst157
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-cx556a.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-x710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-dnv-x553.rst75
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-hsw-xl710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-skx-xxv710.rst284
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-tsh-x520.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst34
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir.rst12
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps.rst12
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps.rst12
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps.rst12
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps.rst12
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir.rst12
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44.rst25
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-dnv-x553.rst85
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-hsw-xl710.rst88
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-skx-xxv710.rst111
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-tsh-x520.rst88
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/srv6.rst23
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-cx556a.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-skx-xxv710.rst201
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-zn2-cx556a.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-zn2-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-hsw-xl710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-skx-x710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-skx-xxv710.rst374
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-tsh-x520.rst158
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst31
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-clx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-skx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-zn2-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vts.rst23
-rw-r--r--docs/report/vpp_performance_tests/reconf_tests/index.rst15
-rw-r--r--docs/report/vpp_performance_tests/reconf_tests/vnf_service_chains_reconf.rst216
-rw-r--r--docs/report/vpp_performance_tests/soak_tests/index.rst146
-rw-r--r--docs/report/vpp_performance_tests/test_environment.rst121
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-clx-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-clx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-zn2-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-zn2-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-3n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-3n-tsh-x520.rst86
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif.rst28
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/index.rst66
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-cx556a.rst157
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-xxv710.rst286
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-dnv-x553.rst143
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-skx-xxv710.rst280
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-tx2-xl710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-cx556a.rst157
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-xxv710.rst286
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-dnv-x553.rst143
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-hsw-xl710.rst78
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-skx-xxv710.rst201
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-tsh-x520.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4.rst36
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-dnv-x553.rst83
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-hsw-xl710.rst77
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-tsh-x520.rst83
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels.rst25
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-dnv-x553.rst86
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-tx2-xl710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-dnv-x553.rst86
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-hsw-xl710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-tsh-x520.rst86
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6.rst36
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-dnv-x553.rst88
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-hsw-xl710.rst130
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-tsh-x520.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec.rst27
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-cx556a.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-x710.rst115
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-dnv-x553.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-skx-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-tx2-xl710.rst157
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-cx556a.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-x710.rst115
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-dnv-x553.rst75
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-hsw-xl710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-skx-x710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-skx-xxv710.rst244
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-tsh-x520.rst200
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2.rst36
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir.rst12
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps.rst12
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps.rst12
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps.rst12
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps.rst12
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir.rst12
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44.rst27
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-dnv-x553.rst85
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-hsw-xl710.rst81
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-skx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-tsh-x520.rst88
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6.rst27
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-cx556a.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-skx-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-zn2-cx556a.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-zn2-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-hsw-xl710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-skx-x710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-skx-xxv710.rst243
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-tsh-x520.rst158
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost.rst30
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-clx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-skx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-zn2-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts.rst24
-rw-r--r--docs/report/vpp_performance_tests/throughput_trending.rst17
-rw-r--r--docs/static/PLR_patch.svg (renamed from docs/report/introduction/methodology_data_plane_throughput/PLR_patch.svg)0
-rw-r--r--docs/static/PLR_vhost.svg (renamed from docs/report/introduction/methodology_data_plane_throughput/PLR_vhost.svg)0
-rw-r--r--docs/static/csit_design_picture.svg (renamed from docs/report/csit_framework_documentation/csit_design_picture.svg)0
-rw-r--r--docs/static/csit_etl_for_uti_data_flow_simplified.svg4
-rw-r--r--docs/static/logical-2n-container-memif.svg (renamed from docs/report/vpp_performance_tests/logical-2n-container-memif.svg)0
-rw-r--r--docs/static/logical-2n-nic2nic.svg (renamed from docs/report/vpp_performance_tests/logical-2n-nic2nic.svg)0
-rw-r--r--docs/static/logical-2n-vm-vhost.svg (renamed from docs/report/vpp_performance_tests/logical-2n-vm-vhost.svg)0
-rw-r--r--docs/static/logical-3n-container-memif.svg (renamed from docs/report/vpp_performance_tests/logical-3n-container-memif.svg)0
-rw-r--r--docs/static/logical-3n-nic2nic.svg (renamed from docs/report/vpp_performance_tests/logical-3n-nic2nic.svg)0
-rw-r--r--docs/static/logical-3n-vm-vhost.svg (renamed from docs/report/vpp_performance_tests/logical-3n-vm-vhost.svg)0
-rw-r--r--docs/static/testbed-2n-clx.svg (renamed from docs/report/introduction/testbed-2n-clx.svg)0
-rw-r--r--docs/static/testbed-2n-icx.svg1919
-rw-r--r--docs/static/testbed-2n-tx2.svg1086
-rw-r--r--docs/static/testbed-2n-zn2.svg (renamed from docs/report/introduction/testbed-2n-zn2.svg)0
-rw-r--r--docs/static/testbed-3n-alt.svg1134
-rw-r--r--docs/static/testbed-3n-icx.svg2866
-rw-r--r--docs/static/testbed-3n-snr.svg1220
-rw-r--r--docs/static/testbed-3n-tsh.svg (renamed from docs/report/introduction/testbed-3n-tsh.svg)0
-rw-r--r--docs/static/vf-2n-nic2nic.svg (renamed from docs/vf-2n-nic2nic.svg)0
-rw-r--r--docs/static/vpp_device.svg (renamed from docs/report/vpp_device_tests/vpp_device.svg)0
-rw-r--r--docs/tag_documentation.rst972
-rw-r--r--docs/test_code_guidelines.rst319
-rw-r--r--docs/testing_in_vagrant.rst88
-rw-r--r--docs/toi/automating_vpp_api_flag_day.md303
-rw-r--r--docs/toi/bash_code_style.md651
-rw-r--r--docs/toi/branches.md13
-rw-r--r--docs/toi/test_code_guidelines.md294
-rw-r--r--docs/toi/vagrant.md326
-rw-r--r--docs/vpp_device.svg318
-rw-r--r--fdio.infra.ansible/.gitignore (renamed from resources/tools/testbed-setup/ansible/.gitignore)0
-rw-r--r--fdio.infra.ansible/cloud_topology.yaml (renamed from resources/tools/testbed-setup/ansible/cloud_topology.yaml)1
-rw-r--r--fdio.infra.ansible/dev.yaml18
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/group_vars/all.yaml2
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml88
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml88
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.23.yaml92
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml92
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml92
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml92
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.27.yaml86
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml86
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml97
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.31.yaml97
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml38
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml38
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml38
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml38
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml23
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml23
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.38.yaml20
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml33
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml96
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml96
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml74
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml65
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml67
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml63
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml36
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml36
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml36
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml41
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml42
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml98
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml98
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.72.yaml26
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.73.yaml26
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.74.yaml33
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.75.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.76.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.77.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.78.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.79.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.80.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.81.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.82.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.83.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.84.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.85.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.86.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.87.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.88.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.89.yaml33
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.90.yaml38
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.91.yaml88
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.92.yaml88
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.93.yaml33
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.94.yaml33
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml34
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml30
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml (renamed from resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml)6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/hosts74
-rw-r--r--fdio.infra.ansible/inventories/sample_inventory/group_vars/all.yaml2
-rw-r--r--fdio.infra.ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml17
-rw-r--r--fdio.infra.ansible/inventories/sample_inventory/hosts (renamed from resources/tools/testbed-setup/ansible/inventories/sample_inventory/hosts)0
-rw-r--r--fdio.infra.ansible/inventories/vagrant_inventory/group_vars/vagrant.yml2
-rw-r--r--fdio.infra.ansible/inventories/vagrant_inventory/hosts4
-rw-r--r--fdio.infra.ansible/nomad.yaml32
-rw-r--r--fdio.infra.ansible/nomad_vault.yml796
-rw-r--r--fdio.infra.ansible/roles/ab/defaults/main.yaml18
-rw-r--r--fdio.infra.ansible/roles/ab/tasks/main.yaml18
-rw-r--r--fdio.infra.ansible/roles/aws/defaults/main.yaml26
-rw-r--r--fdio.infra.ansible/roles/aws/files/get-vfio-with-wc.sh203
-rw-r--r--fdio.infra.ansible/roles/aws/handlers/main.yaml20
-rw-r--r--fdio.infra.ansible/roles/aws/tasks/main.yaml124
-rw-r--r--fdio.infra.ansible/roles/aws/tasks/ubuntu_jammy.yaml35
-rw-r--r--fdio.infra.ansible/roles/azure/defaults/main.yaml2
-rw-r--r--fdio.infra.ansible/roles/azure/files/10-dtap.link (renamed from resources/tools/testbed-setup/ansible/roles/azure/files/10-dtap.link)0
-rw-r--r--fdio.infra.ansible/roles/azure/handlers/main.yaml (renamed from resources/tools/testbed-setup/ansible/roles/azure/handlers/main.yaml)0
-rw-r--r--fdio.infra.ansible/roles/azure/tasks/main.yaml (renamed from resources/tools/testbed-setup/ansible/roles/azure/tasks/main.yaml)0
-rw-r--r--fdio.infra.ansible/roles/baremetal/handlers/cimc.yaml (renamed from resources/tools/testbed-setup/ansible/roles/baremetal/handlers/cimc.yaml)10
-rw-r--r--fdio.infra.ansible/roles/baremetal/handlers/ipmi.yaml (renamed from resources/tools/testbed-setup/ansible/roles/baremetal/handlers/ipmi.yaml)4
-rw-r--r--fdio.infra.ansible/roles/baremetal/handlers/main.yaml30
-rw-r--r--fdio.infra.ansible/roles/cadvisor/defaults/main.yaml24
-rw-r--r--fdio.infra.ansible/roles/cadvisor/tasks/main.yaml39
-rw-r--r--fdio.infra.ansible/roles/calibration/defaults/main.yaml37
-rw-r--r--fdio.infra.ansible/roles/calibration/tasks/aarch64.yaml (renamed from resources/tools/testbed-setup/ansible/roles/calibration/tasks/aarch64.yaml)0
-rw-r--r--fdio.infra.ansible/roles/calibration/tasks/main.yaml89
-rw-r--r--fdio.infra.ansible/roles/calibration/tasks/x86_64.yaml35
-rw-r--r--fdio.infra.ansible/roles/cleanup/files/reset_vppdevice.sh (renamed from resources/tools/testbed-setup/ansible/roles/cleanup/files/reset_vppdevice.sh)0
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml36
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml42
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml38
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/main.yaml26
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml18
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml21
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/sut.yaml97
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/tg.yaml13
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml32
-rw-r--r--fdio.infra.ansible/roles/common/defaults/main.yaml55
-rw-r--r--fdio.infra.ansible/roles/common/handlers/main.yaml8
-rw-r--r--fdio.infra.ansible/roles/common/tasks/main.yaml56
-rw-r--r--fdio.infra.ansible/roles/consul/defaults/main.yaml87
-rw-r--r--fdio.infra.ansible/roles/consul/handlers/main.yaml16
-rw-r--r--fdio.infra.ansible/roles/consul/meta/main.yaml21
-rw-r--r--fdio.infra.ansible/roles/consul/tasks/main.yaml145
-rw-r--r--fdio.infra.ansible/roles/consul/templates/base.hcl.j256
-rw-r--r--fdio.infra.ansible/roles/consul/templates/consul_systemd.service.j218
-rw-r--r--fdio.infra.ansible/roles/consul/templates/ports.hcl.j2 (renamed from resources/tools/testbed-setup/ansible/roles/consul/templates/ports.hcl.j2)2
-rw-r--r--fdio.infra.ansible/roles/consul/templates/telemetry.hcl.j23
-rw-r--r--fdio.infra.ansible/roles/consul/vars/main.yaml5
-rw-r--r--fdio.infra.ansible/roles/docker/defaults/main.yaml35
-rw-r--r--fdio.infra.ansible/roles/docker/handlers/main.yaml9
-rw-r--r--fdio.infra.ansible/roles/docker/meta/main.yaml18
-rw-r--r--fdio.infra.ansible/roles/docker/tasks/jammy.yaml30
-rw-r--r--fdio.infra.ansible/roles/docker/tasks/main.yaml85
-rw-r--r--fdio.infra.ansible/roles/docker/templates/daemon.json.j21
-rw-r--r--fdio.infra.ansible/roles/docker/templates/docker.service.proxy.http (renamed from resources/tools/testbed-setup/ansible/roles/docker/templates/docker.service.proxy.http)0
-rw-r--r--fdio.infra.ansible/roles/docker/templates/docker.service.proxy.https (renamed from resources/tools/testbed-setup/ansible/roles/docker/templates/docker.service.proxy.https)0
-rw-r--r--fdio.infra.ansible/roles/docker_images/files/base/Dockerfile140
-rw-r--r--fdio.infra.ansible/roles/docker_images/files/csit-initialize-docker-sut.service12
-rw-r--r--fdio.infra.ansible/roles/docker_images/files/csit-initialize-docker-tg.service12
-rw-r--r--fdio.infra.ansible/roles/docker_images/files/csit-sut/Dockerfile7
-rw-r--r--fdio.infra.ansible/roles/docker_images/files/csit-sut/supervisord.conf (renamed from resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/supervisord.conf)0
-rw-r--r--fdio.infra.ansible/roles/docker_images/handlers/main.yaml18
-rw-r--r--fdio.infra.ansible/roles/docker_images/tasks/base.yaml63
-rw-r--r--fdio.infra.ansible/roles/docker_images/tasks/main.yaml21
-rw-r--r--fdio.infra.ansible/roles/docker_images/tasks/sut.yaml28
-rw-r--r--fdio.infra.ansible/roles/docker_images/tasks/tg.yaml28
-rw-r--r--fdio.infra.ansible/roles/docker_images/templates/docker-compose-sut.yaml.j242
-rw-r--r--fdio.infra.ansible/roles/docker_images/templates/docker-compose-tg.yaml.j238
-rw-r--r--fdio.infra.ansible/roles/dpdk/defaults/main.yaml24
-rw-r--r--fdio.infra.ansible/roles/dpdk/files/dpdk-mlx5.patch (renamed from resources/tools/testbed-setup/ansible/roles/dpdk/files/dpdk-mlx5.patch)0
-rw-r--r--fdio.infra.ansible/roles/dpdk/meta/main.yaml18
-rw-r--r--fdio.infra.ansible/roles/dpdk/molecule/default/converge.yml9
-rw-r--r--fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml21
-rw-r--r--fdio.infra.ansible/roles/dpdk/tasks/deploy_block.yaml33
-rw-r--r--fdio.infra.ansible/roles/dpdk/tasks/main.yaml24
-rw-r--r--fdio.infra.ansible/roles/intel/defaults/main.yaml111
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/dsa.yaml39
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/i40e.yaml37
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/iavf.yaml37
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/ice.yaml91
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/main.yaml146
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/qat1.yaml54
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/qat2.yaml57
-rw-r--r--fdio.infra.ansible/roles/iperf/defaults/main.yaml23
-rw-r--r--fdio.infra.ansible/roles/iperf/tasks/main.yaml62
-rw-r--r--fdio.infra.ansible/roles/jenkins_job_health_exporter/defaults/main.yaml28
-rw-r--r--fdio.infra.ansible/roles/jenkins_job_health_exporter/handlers/main.yaml9
-rw-r--r--fdio.infra.ansible/roles/jenkins_job_health_exporter/tasks/main.yaml38
-rw-r--r--fdio.infra.ansible/roles/jenkins_job_health_exporter/templates/jenkins-job-health-exporter.j216
-rw-r--r--fdio.infra.ansible/roles/jenkins_job_health_exporter/templates/jenkins-job-health-exporter.service.j213
-rw-r--r--fdio.infra.ansible/roles/kernel/defaults/main.yaml31
-rw-r--r--fdio.infra.ansible/roles/kernel/filter_plugins/main.py (renamed from resources/tools/testbed-setup/ansible/roles/kernel/filter_plugins/main.py)0
-rw-r--r--fdio.infra.ansible/roles/kernel/handlers/main.yaml8
-rw-r--r--fdio.infra.ansible/roles/kernel/tasks/main.yaml9
-rw-r--r--fdio.infra.ansible/roles/kernel/tasks/ubuntu_jammy.yaml62
-rw-r--r--fdio.infra.ansible/roles/kernel_vm/files/initramfs_modules (renamed from resources/tools/testbed-setup/ansible/roles/kernel_vm/files/initramfs_modules)0
-rw-r--r--fdio.infra.ansible/roles/kernel_vm/files/initramfs_resume (renamed from resources/tools/testbed-setup/ansible/roles/kernel_vm/files/initramfs_resume)0
-rw-r--r--fdio.infra.ansible/roles/kernel_vm/tasks/main.yaml92
-rw-r--r--fdio.infra.ansible/roles/mellanox/defaults/main.yaml30
-rw-r--r--fdio.infra.ansible/roles/mellanox/tasks/main.yaml43
-rw-r--r--fdio.infra.ansible/roles/mellanox/tasks/ofed.yaml37
-rw-r--r--fdio.infra.ansible/roles/nomad/defaults/main.yaml193
-rw-r--r--fdio.infra.ansible/roles/nomad/handlers/main.yaml9
-rw-r--r--fdio.infra.ansible/roles/nomad/meta/main.yaml21
-rw-r--r--fdio.infra.ansible/roles/nomad/tasks/main.yaml151
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/base.hcl.j226
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/cfssl.json8
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/client.hcl.j260
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/consul.hcl.j263
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/nomad_systemd.service.j233
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/server.hcl.j258
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/telemetry.hcl.j226
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/tls.hcl.j236
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/vault.hcl.j269
-rw-r--r--fdio.infra.ansible/roles/nomad/vars/main.yaml5
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/defaults/main.yaml18
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/files/cpufrequtils (renamed from resources/tools/testbed-setup/ansible/roles/performance_tuning/files/cpufrequtils)0
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/files/disable-turbo-boost.service (renamed from resources/tools/testbed-setup/ansible/roles/performance_tuning/files/disable-turbo-boost.service)0
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/files/irqbalance (renamed from resources/tools/testbed-setup/ansible/roles/performance_tuning/files/irqbalance)0
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/filter_plugins/main.py (renamed from resources/tools/testbed-setup/ansible/roles/performance_tuning/filter_plugins/main.py)0
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/handlers/main.yaml13
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml210
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/tasks/turbo_boost.yaml44
-rw-r--r--fdio.infra.ansible/roles/prometheus_exporter/defaults/main.yaml31
-rw-r--r--fdio.infra.ansible/roles/prometheus_exporter/files/blackbox.yml25
-rw-r--r--fdio.infra.ansible/roles/prometheus_exporter/meta/main.yaml18
-rw-r--r--fdio.infra.ansible/roles/prometheus_exporter/tasks/main.yaml72
-rw-r--r--fdio.infra.ansible/roles/python_env/defaults/main.yaml25
-rw-r--r--fdio.infra.ansible/roles/python_env/tasks/main.yaml62
-rw-r--r--fdio.infra.ansible/roles/topology/tasks/main.yaml23
-rw-r--r--fdio.infra.ansible/roles/topology/templates/hosts.j29
-rw-r--r--fdio.infra.ansible/roles/topology/templates/topology-1n-aws-c5n.j230
-rw-r--r--fdio.infra.ansible/roles/topology/templates/topology-1n-c6gn.j230
-rw-r--r--fdio.infra.ansible/roles/topology/templates/topology-1n-c6in.j230
-rw-r--r--fdio.infra.ansible/roles/topology/templates/topology-2n-aws-c5n.j251
-rw-r--r--fdio.infra.ansible/roles/topology/templates/topology-2n-c6gn.j251
-rw-r--r--fdio.infra.ansible/roles/topology/templates/topology-2n-c6in.j251
-rw-r--r--fdio.infra.ansible/roles/topology/templates/topology-3n-aws-c5n.j273
-rw-r--r--fdio.infra.ansible/roles/topology/templates/topology-3n-azure-Fsv2.j2 (renamed from resources/tools/testbed-setup/ansible/templates/topology_3n_azure_Fsv2.j2)0
-rw-r--r--fdio.infra.ansible/roles/topology/templates/topology-3n-c6gn.j273
-rw-r--r--fdio.infra.ansible/roles/topology/templates/topology-3n-c6in.j273
-rw-r--r--fdio.infra.ansible/roles/trex/defaults/main.yaml33
-rw-r--r--fdio.infra.ansible/roles/trex/files/t-rex.patch (renamed from resources/tools/testbed-setup/ansible/roles/trex/files/t-rex.patch)0
-rw-r--r--fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml63
-rw-r--r--fdio.infra.ansible/roles/trex/tasks/main.yaml24
-rw-r--r--fdio.infra.ansible/roles/user_add/defaults/main.yaml14
-rw-r--r--fdio.infra.ansible/roles/user_add/handlers/main.yaml7
-rw-r--r--fdio.infra.ansible/roles/user_add/tasks/main.yaml39
-rw-r--r--fdio.infra.ansible/roles/vagrant/defaults/main.yml14
-rw-r--r--fdio.infra.ansible/roles/vagrant/files/99-vppdevice.yaml (renamed from resources/tools/vagrant/ansible/roles/csit/files/99-vppdevice.yaml)0
-rw-r--r--fdio.infra.ansible/roles/vagrant/tasks/main.yml43
-rw-r--r--fdio.infra.ansible/roles/vault/defaults/main.yaml159
-rw-r--r--fdio.infra.ansible/roles/vault/handlers/main.yaml9
-rw-r--r--fdio.infra.ansible/roles/vault/meta/main.yaml18
-rw-r--r--fdio.infra.ansible/roles/vault/tasks/main.yaml133
-rw-r--r--fdio.infra.ansible/roles/vault/templates/vault_backend_consul.j215
-rw-r--r--fdio.infra.ansible/roles/vault/templates/vault_main_configuration.hcl.j293
-rw-r--r--fdio.infra.ansible/roles/vault/templates/vault_service_registration_consul.hcl.j222
-rw-r--r--fdio.infra.ansible/roles/vault/templates/vault_systemd.service.j230
-rw-r--r--fdio.infra.ansible/roles/vault/vars/main.yaml5
-rw-r--r--fdio.infra.ansible/roles/vpp/defaults/main.yaml28
-rw-r--r--fdio.infra.ansible/roles/vpp/tasks/main.yaml27
-rw-r--r--fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-alt.sh39
-rw-r--r--fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-default.sh37
-rw-r--r--fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-spr.sh28
-rw-r--r--fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-tx2.sh (renamed from resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs-tx2.sh)12
-rw-r--r--fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs.service (renamed from resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs.service)0
-rw-r--r--fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs.sh (renamed from resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs.sh)12
-rw-r--r--fdio.infra.ansible/roles/vpp_device/handlers/main.yaml21
-rw-r--r--fdio.infra.ansible/roles/vpp_device/tasks/main.yaml139
-rw-r--r--fdio.infra.ansible/site.yaml32
-rw-r--r--fdio.infra.ansible/sut.yaml134
-rw-r--r--fdio.infra.ansible/tg.yaml136
-rw-r--r--fdio.infra.ansible/vagrant.yaml24
-rw-r--r--fdio.infra.ansible/vault.yml (renamed from resources/tools/testbed-setup/ansible/vault.yml)0
-rw-r--r--fdio.infra.ansible/vault_pass (renamed from resources/tools/testbed-setup/ansible/vault_pass)0
-rw-r--r--fdio.infra.ansible/vpp_device.yaml42
-rw-r--r--fdio.infra.terraform/.gitignore36
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-aws-c5n/hosts.tftpl5
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-aws-c5n/main.tf211
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-aws-c5n/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-aws-c5n/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-aws-c5n/topology-1n-aws-c5n.tftpl30
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf120
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-aws-c5n/versions.tf20
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-c6in/hosts.tftpl5
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-c6in/main.tf206
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-c6in/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-c6in/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-c6in/topology-1n-c6in.tftpl30
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-c6in/variables.tf120
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-c6in/versions.tf20
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c5n/hosts.tftpl8
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c5n/main.tf335
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c5n/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c5n/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c5n/topology-2n-aws-c5n.tftpl51
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf168
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c5n/versions.tf20
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6gn/hosts.tftpl8
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6gn/main.tf335
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6gn/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6gn/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6gn/topology-2n-c6gn.tftpl51
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6gn/variables.tf180
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6gn/versions.tf20
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6in/hosts.tftpl8
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6in/main.tf335
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6in/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6in/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6in/topology-2n-c6in.tftpl51
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6in/variables.tf180
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6in/versions.tf20
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c7gn/hosts.tftpl8
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c7gn/main.tf335
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c7gn/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c7gn/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c7gn/topology-2n-c7gn.tftpl51
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c7gn/variables.tf168
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c7gn/versions.tf20
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-aws-c5n/hosts.tftpl9
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-aws-c5n/main.tf457
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-aws-c5n/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-aws-c5n/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-aws-c5n/topology-3n-aws-c5n.tftpl72
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-aws-c5n/variables.tf216
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-aws-c5n/versions.tf20
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6gn/hosts.tftpl9
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6gn/main.tf457
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6gn/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6gn/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6gn/topology-3n-c6gn.tftpl73
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6gn/variables.tf216
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6gn/versions.tf20
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6in/hosts.tftpl9
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6in/main.tf457
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6in/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6in/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6in/topology-3n-c6in.tftpl73
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6in/variables.tf216
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c6in/versions.tf20
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c7gn/hosts.tftpl9
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c7gn/main.tf457
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c7gn/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c7gn/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c7gn/topology-3n-c7gn.tftpl72
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c7gn/variables.tf216
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-c7gn/versions.tf20
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/README.md38
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/main.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/providers.tf3
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/variables.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/main.tf28
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/output.tf3
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/variables.tf29
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/README.md41
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/main.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/output.tf9
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/providers.tf3
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/variables.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/main.tf21
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/output.tf7
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/variables.tf29
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/README.md106
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/main.tf12
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/output.tf9
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/providers.tf3
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/variables.tf23
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/main.tf690
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/output.tf7
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/variables.tf410
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/versions.tf12
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/main.tf21
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/output.tf3
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/variables.tf58
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/versions.tf12
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf124
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/output.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/providers.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf28
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf17
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/README.md44
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/example/main.tf17
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/example/output.tf0
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/example/providers.tf3
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/example/variables.tf5
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/example/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/main.tf26
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/outputs.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/variables.tf45
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/README.md58
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/example/main.tf7
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/example/output.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/example/providers.tf3
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/example/variables.tf5
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/example/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/main.tf93
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/outputs.tf24
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/variables.tf108
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-nomad-alertmanager/README.md57
-rw-r--r--fdio.infra.terraform/terraform-nomad-alertmanager/conf/nomad/alertmanager.hcl.tftpl377
-rw-r--r--fdio.infra.terraform/terraform-nomad-alertmanager/fdio/main.tf14
-rw-r--r--fdio.infra.terraform/terraform-nomad-alertmanager/fdio/providers.tf13
-rw-r--r--fdio.infra.terraform/terraform-nomad-alertmanager/fdio/variables.tf47
-rw-r--r--fdio.infra.terraform/terraform-nomad-alertmanager/fdio/versions.tf17
-rw-r--r--fdio.infra.terraform/terraform-nomad-alertmanager/main.tf48
-rw-r--r--fdio.infra.terraform/terraform-nomad-alertmanager/variables.tf157
-rw-r--r--fdio.infra.terraform/terraform-nomad-alertmanager/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/README.md52
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/conf/nomad/prometheus.hcl.tftpl676
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/fdio/main.tf10
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/fdio/providers.tf13
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/fdio/variables.tf47
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/fdio/versions.tf17
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/main.tf43
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/variables.tf139
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/README.md50
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-device-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-hoststack-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-mrr-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-ndrpdr-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-reconf-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-soak-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-hoststack-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-mrr-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-ndrpdr-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-reconf-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-soak-rls2402.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-stats.hcl.tftpl53
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-hoststack.hcl.tftpl53
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-mrr.hcl.tftpl53
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-ndrpdr.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/main.tf264
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/providers.tf13
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/variables.tf47
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/versions.tf17
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf33
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf115
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-nomad-vpp-device/conf/nomad/device-shim.hcl.tftpl78
-rw-r--r--fdio.infra.terraform/terraform-nomad-vpp-device/fdio/main.tf16
-rw-r--r--fdio.infra.terraform/terraform-nomad-vpp-device/fdio/providers.tf13
-rw-r--r--fdio.infra.terraform/terraform-nomad-vpp-device/fdio/variables.tf47
-rw-r--r--fdio.infra.terraform/terraform-nomad-vpp-device/fdio/versions.tf15
-rw-r--r--fdio.infra.terraform/terraform-nomad-vpp-device/main.tf20
-rw-r--r--fdio.infra.terraform/terraform-nomad-vpp-device/variables.tf43
-rw-r--r--fdio.infra.terraform/terraform-nomad-vpp-device/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-openstack-2n/README.md58
-rw-r--r--fdio.infra.terraform/terraform-openstack-2n/hosts.tftpl8
-rw-r--r--fdio.infra.terraform/terraform-openstack-2n/main.tf211
-rw-r--r--fdio.infra.terraform/terraform-openstack-2n/outputs.tf9
-rw-r--r--fdio.infra.terraform/terraform-openstack-2n/topology-2n.tftpl59
-rw-r--r--fdio.infra.terraform/terraform-openstack-2n/user-data-sut166
-rw-r--r--fdio.infra.terraform/terraform-openstack-2n/user-data-tg171
-rw-r--r--fdio.infra.terraform/terraform-openstack-2n/variables.tf14
-rw-r--r--fdio.infra.terraform/terraform-openstack-2n/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/README.md40
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf17
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/providers.tf5
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf17
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf13
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/main.tf37
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/variables.tf17
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/versions.tf8
-rw-r--r--fdio.infra/packer-aws-sut/ubuntu_jammy_arm.pkr.hcl88
-rw-r--r--fdio.infra/packer-aws-sut/ubuntu_jammy_x86.pkr.hcl128
-rwxr-xr-xfdio.infra/pxe/build.sh45
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/Dockerfile53
-rwxr-xr-xfdio.infra/pxe/docker-dnsmasq/etc/dnsmasq.conf103
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg10
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:43:a3:ba4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:46:34:e84
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:7f:124
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:804
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:924
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:ba4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:c64
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:ca4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:cc:444
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:cc:564
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:85:8a4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:264
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:b24
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:e44
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:e84
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a0:d44
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a0:ec4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a1:ac4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a1:ea4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:6b4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:774
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:eb4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:de:274
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-40:8d:5c:e7:b2:6e4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:2e4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:4a4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:4c4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:1c4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:364
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:424
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:444
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:5c4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:6c4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:744
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:784
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:7a4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:49:db:b44
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:55:be:324
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a0:a3:3b:c1:12:fa4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a0:a3:3b:c1:14:284
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a4:bf:01:55:ac:394
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a4:bf:01:55:af:5e4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6a:b44
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6a:d44
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6b:084
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8c:764
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:0a4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:604
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:964
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:d84
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:564
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:764
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:8c4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:ba4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:c04
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:d64
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d9:2e4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:02:b1:9f4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:02:b1:bb4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:e7:a9:6c4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:e7:aa:4c4
-rw-r--r--fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-e0:d5:5e:ae:70:264
-rw-r--r--fdio.infra/pxe/docker-nginx/Dockerfile31
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:77/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:77/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:eb/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:eb/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:de:27/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:de:27/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:2e/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:2e/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4a/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4a/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4c/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4c/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:1c/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:1c/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:36/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:36/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:42/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:42/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:44/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:44/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:5c/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:5c/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:6c/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:6c/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:74/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:74/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:78/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:78/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:7a/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:7a/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/user-data120
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:aa:4c/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:aa:4c/user-data83
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/meta-data0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/user-data83
-rw-r--r--pylint.cfg721
-rw-r--r--requirements.txt96
-rw-r--r--resources/api/vpp/supported_crcs.yaml828
l---------resources/job_specs/hoststack_daily/vpp-2n-icx.md1
l---------resources/job_specs/hoststack_daily/vpp-2n-spr.md1
l---------resources/job_specs/hoststack_daily/vpp-3n-icx.md1
l---------resources/job_specs/hoststack_daily/vpp-3na-spr.md1
l---------resources/job_specs/hoststack_daily/vpp-3nb-spr.md1
l---------resources/job_specs/mrr_daily/vpp-2n-aws.md1
l---------resources/job_specs/mrr_daily/vpp-2n-c6in.md1
l---------resources/job_specs/mrr_daily/vpp-2n-clx.md (renamed from docs/job_specs/mrr_daily/vpp-2n-clx.md)0
l---------resources/job_specs/mrr_daily/vpp-2n-icx.md1
l---------resources/job_specs/mrr_daily/vpp-2n-spr.md1
l---------resources/job_specs/mrr_daily/vpp-2n-tx2.md (renamed from docs/job_specs/mrr_daily/vpp-2n-tx2.md)0
l---------resources/job_specs/mrr_daily/vpp-2n-zn2.md1
l---------resources/job_specs/mrr_daily/vpp-3n-alt.md1
l---------resources/job_specs/mrr_daily/vpp-3n-aws.md1
l---------resources/job_specs/mrr_daily/vpp-3n-c6in.md1
l---------resources/job_specs/mrr_daily/vpp-3n-icx.md1
l---------resources/job_specs/mrr_daily/vpp-3n-icxd.md1
l---------resources/job_specs/mrr_daily/vpp-3n-snr.md1
l---------resources/job_specs/mrr_daily/vpp-3n-tsh.md (renamed from docs/job_specs/mrr_daily/vpp-3n-tsh.md)0
l---------resources/job_specs/mrr_daily/vpp-3na-spr.md1
l---------resources/job_specs/mrr_daily/vpp-3nb-spr.md1
l---------resources/job_specs/mrr_weekly/dpdk-2n-clx.md1
l---------resources/job_specs/mrr_weekly/dpdk-2n-icx.md1
l---------resources/job_specs/mrr_weekly/dpdk-2n-spr.md1
l---------resources/job_specs/mrr_weekly/dpdk-2n-tx2.md (renamed from docs/job_specs/mrr_weekly/dpdk-2n-tx2.md)0
l---------resources/job_specs/mrr_weekly/dpdk-2n-zn2.md1
l---------resources/job_specs/mrr_weekly/dpdk-3n-alt.md1
l---------resources/job_specs/mrr_weekly/dpdk-3n-icx.md1
l---------resources/job_specs/mrr_weekly/dpdk-3n-icxd.md1
l---------resources/job_specs/mrr_weekly/dpdk-3n-snr.md1
l---------resources/job_specs/mrr_weekly/dpdk-3n-tsh.md (renamed from docs/job_specs/mrr_weekly/dpdk-3n-tsh.md)0
l---------resources/job_specs/mrr_weekly/dpdk-3na-spr.md1
l---------resources/job_specs/mrr_weekly/dpdk-3nb-spr.md1
l---------resources/job_specs/mrr_weekly/vpp-2n-aws.md1
l---------resources/job_specs/mrr_weekly/vpp-2n-c6in.md1
l---------resources/job_specs/mrr_weekly/vpp-2n-c7gn.md1
l---------resources/job_specs/mrr_weekly/vpp-2n-clx.md (renamed from docs/job_specs/mrr_weekly/vpp-2n-clx.md)0
l---------resources/job_specs/mrr_weekly/vpp-2n-icx.md1
l---------resources/job_specs/mrr_weekly/vpp-3n-aws.md1
l---------resources/job_specs/mrr_weekly/vpp-3n-c6in.md1
l---------resources/job_specs/mrr_weekly/vpp-3n-c7gn.md1
l---------resources/job_specs/mrr_weekly/vpp-3n-icx.md1
l---------resources/job_specs/ndrpdr_weekly/trex-1n-aws.md1
l---------resources/job_specs/ndrpdr_weekly/trex-2n-icx.md1
l---------resources/job_specs/ndrpdr_weekly/trex-2n-spr.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-2n-aws.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-2n-c6in.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-2n-c7gn.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-2n-clx.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-2n-icx.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-2n-spr.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-2n-tx2.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-2n-zn2.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-3n-alt.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-3n-aws.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-3n-c6in.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-3n-c7gn.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-3n-icx.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-3n-icxd.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-3n-snr.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-3n-tsh.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-3na-spr.md1
l---------resources/job_specs/ndrpdr_weekly/vpp-3nb-spr.md1
-rw-r--r--resources/job_specs/report_coverage/1n-aws/trex-00.md23
-rw-r--r--resources/job_specs/report_coverage/2n-aws/vpp-00.md37
-rw-r--r--resources/job_specs/report_coverage/2n-c6in/vpp-00.md37
-rw-r--r--resources/job_specs/report_coverage/2n-c7gn/vpp-00.md37
-rw-r--r--resources/job_specs/report_coverage/2n-clx/dpdk-00.md23
-rw-r--r--resources/job_specs/report_coverage/2n-clx/gso-00.md23
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4-00.md145
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4-01.md65
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4-02.md45
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4-03.md45
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4-04.md45
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4-05.md68
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4-06.md92
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4-07.md36
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4-08.md128
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4tun-00.md64
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip4tun-01.md24
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip6-00.md65
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip6-01.md125
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip6-02.md48
-rw-r--r--resources/job_specs/report_coverage/2n-clx/ip6-03.md88
-rw-r--r--resources/job_specs/report_coverage/2n-clx/l2-00.md85
-rw-r--r--resources/job_specs/report_coverage/2n-clx/l2-01.md65
-rw-r--r--resources/job_specs/report_coverage/2n-clx/l2-02.md128
-rw-r--r--resources/job_specs/report_coverage/2n-clx/l2-03.md48
-rw-r--r--resources/job_specs/report_coverage/2n-clx/lb-00.md65
-rw-r--r--resources/job_specs/report_coverage/2n-clx/lb-01.md34
-rw-r--r--resources/job_specs/report_coverage/2n-clx/memif-00.md65
-rw-r--r--resources/job_specs/report_coverage/2n-clx/memif-01.md45
-rw-r--r--resources/job_specs/report_coverage/2n-clx/vhost-00.md125
-rw-r--r--resources/job_specs/report_coverage/2n-clx/vhost-01.md85
-rw-r--r--resources/job_specs/report_coverage/2n-icx/dpdk-00.md67
-rw-r--r--resources/job_specs/report_coverage/2n-icx/gso-00.md23
-rw-r--r--resources/job_specs/report_coverage/2n-icx/hoststack-00.md42
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-00.md145
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-01.md65
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-02.md45
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-03.md45
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-04.md45
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-05.md68
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-06.md92
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-07.md36
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-10.md145
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-11.md65
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-12.md45
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-13.md45
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-14.md45
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-15.md68
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-16.md92
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4-17.md36
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4tun-00.md64
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip4tun-10.md64
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip6-00.md65
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip6-01.md125
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip6-10.md65
-rw-r--r--resources/job_specs/report_coverage/2n-icx/ip6-11.md125
-rw-r--r--resources/job_specs/report_coverage/2n-icx/l2-00.md85
-rw-r--r--resources/job_specs/report_coverage/2n-icx/l2-01.md65
-rw-r--r--resources/job_specs/report_coverage/2n-icx/l2-10.md85
-rw-r--r--resources/job_specs/report_coverage/2n-icx/l2-11.md65
-rw-r--r--resources/job_specs/report_coverage/2n-icx/lb-00.md65
-rw-r--r--resources/job_specs/report_coverage/2n-icx/lb-10.md65
-rw-r--r--resources/job_specs/report_coverage/2n-icx/memif-00.md65
-rw-r--r--resources/job_specs/report_coverage/2n-icx/memif-10.md65
-rw-r--r--resources/job_specs/report_coverage/2n-icx/trex-00.md45
-rw-r--r--resources/job_specs/report_coverage/2n-icx/trex-10.md48
-rw-r--r--resources/job_specs/report_coverage/2n-icx/vhost-00.md125
-rw-r--r--resources/job_specs/report_coverage/2n-icx/vhost-10.md125
-rw-r--r--resources/job_specs/report_coverage/2n-spr/dpdk-00.md67
-rw-r--r--resources/job_specs/report_coverage/2n-spr/gso-00.md23
-rw-r--r--resources/job_specs/report_coverage/2n-spr/hoststack-00.md42
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-00.md145
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-01.md65
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-02.md45
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-03.md45
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-04.md45
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-05.md68
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-06.md92
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-07.md36
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-10.md74
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-11.md34
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-12.md24
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-13.md24
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4-14.md24
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip4tun-00.md64
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip6-00.md65
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip6-01.md125
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip6-10.md34
-rw-r--r--resources/job_specs/report_coverage/2n-spr/ip6-11.md64
-rw-r--r--resources/job_specs/report_coverage/2n-spr/l2-00.md85
-rw-r--r--resources/job_specs/report_coverage/2n-spr/l2-01.md65
-rw-r--r--resources/job_specs/report_coverage/2n-spr/l2-10.md44
-rw-r--r--resources/job_specs/report_coverage/2n-spr/l2-11.md34
-rw-r--r--resources/job_specs/report_coverage/2n-spr/lb-00.md65
-rw-r--r--resources/job_specs/report_coverage/2n-spr/lb-10.md34
-rw-r--r--resources/job_specs/report_coverage/2n-spr/memif-00.md93
-rw-r--r--resources/job_specs/report_coverage/2n-spr/memif-10.md48
-rw-r--r--resources/job_specs/report_coverage/2n-spr/trex-00.md48
-rw-r--r--resources/job_specs/report_coverage/2n-spr/trex-10.md48
-rw-r--r--resources/job_specs/report_coverage/2n-spr/vhost-00.md125
-rw-r--r--resources/job_specs/report_coverage/2n-spr/vhost-10.md64
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/dpdk-00.md29
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/ip4-00.md109
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/ip4-01.md57
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/ip4-02.md44
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/ip4-03.md44
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/ip4-04.md44
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/ip4-05.md50
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/ip4-06.md50
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/ip6-00.md57
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/ip6-01.md57
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/l2-00.md70
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/l2-01.md57
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/l2-02.md44
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/l2-03.md44
-rw-r--r--resources/job_specs/report_coverage/2n-tx2/l2-04.md31
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/dpdk-00.md23
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/gso-00.md23
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/ip4-00.md208
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/ip4-01.md65
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/ip4-02.md45
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/ip4-03.md45
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/ip4-04.md45
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/ip4-05.md105
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/ip4tun-00.md64
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/ip6-00.md87
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/ip6-01.md168
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/l2-00.md148
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/l2-01.md88
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/lb-00.md65
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/memif-00.md65
-rw-r--r--resources/job_specs/report_coverage/2n-zn2/vhost-00.md125
-rw-r--r--resources/job_specs/report_coverage/3n-alt/dpdk-00.md11
-rw-r--r--resources/job_specs/report_coverage/3n-alt/dpdk-10.md29
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip4-00.md21
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip4-01.md29
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip4-02.md37
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip4-10.md56
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip4-11.md43
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip4-12.md30
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip4-13.md30
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip4tun-00.md21
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip4tun-10.md30
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip6-00.md21
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip6-10.md43
-rw-r--r--resources/job_specs/report_coverage/3n-alt/ip6-11.md43
-rw-r--r--resources/job_specs/report_coverage/3n-alt/l2-00.md45
-rw-r--r--resources/job_specs/report_coverage/3n-alt/l2-01.md45
-rw-r--r--resources/job_specs/report_coverage/3n-alt/l2-10.md56
-rw-r--r--resources/job_specs/report_coverage/3n-alt/l2-11.md43
-rw-r--r--resources/job_specs/report_coverage/3n-alt/l2-12.md30
-rw-r--r--resources/job_specs/report_coverage/3n-alt/l2-13.md30
-rw-r--r--resources/job_specs/report_coverage/3n-alt/l2-14.md17
-rw-r--r--resources/job_specs/report_coverage/3n-alt/memif-10.md20
-rw-r--r--resources/job_specs/report_coverage/3n-alt/srv6-10.md43
-rw-r--r--resources/job_specs/report_coverage/3n-alt/srv6-11.md43
-rw-r--r--resources/job_specs/report_coverage/3n-alt/vhost-10.md82
-rw-r--r--resources/job_specs/report_coverage/3n-alt/vhost-11.md30
-rw-r--r--resources/job_specs/report_coverage/3n-aws/vpp-00.md27
-rw-r--r--resources/job_specs/report_coverage/3n-c6in/vpp-00.md27
-rw-r--r--resources/job_specs/report_coverage/3n-c7gn/vpp-00.md27
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-00.md145
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-01.md57
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-02.md49
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-03.md49
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-04.md221
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-05.md34
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-10.md145
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-11.md57
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-12.md49
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-13.md49
-rw-r--r--resources/job_specs/report_coverage/3n-icx/crypto-14.md221
-rw-r--r--resources/job_specs/report_coverage/3n-icx/dpdk-00.md67
-rw-r--r--resources/job_specs/report_coverage/3n-icx/hoststack-00.md38
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-00.md85
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-01.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-02.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-03.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-04.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-05.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-06.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-07.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-10.md85
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-11.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-12.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-13.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-14.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-15.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-16.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4-17.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4tun-00.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4tun-02.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4tun-03.md64
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4tun-04.md46
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4tun-10.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4tun-12.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip4tun-13.md64
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip6-00.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip6-01.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip6-10.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip6-11.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip6tun-00.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/ip6tun-10.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-00.md85
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-01.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-02.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-03.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-04.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-05.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-06.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-07.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-08.md25
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-09.md25
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-10.md25
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-20.md85
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-21.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-22.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-23.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-24.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-25.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-26.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-27.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-28.md25
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-29.md25
-rw-r--r--resources/job_specs/report_coverage/3n-icx/l2-30.md25
-rw-r--r--resources/job_specs/report_coverage/3n-icx/memif-00.md85
-rw-r--r--resources/job_specs/report_coverage/3n-icx/memif-10.md85
-rw-r--r--resources/job_specs/report_coverage/3n-icx/srv6-00.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/srv6-01.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/srv6-10.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/srv6-11.md65
-rw-r--r--resources/job_specs/report_coverage/3n-icx/vhost-00.md125
-rw-r--r--resources/job_specs/report_coverage/3n-icx/vhost-01.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icx/vhost-10.md125
-rw-r--r--resources/job_specs/report_coverage/3n-icx/vhost-11.md45
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/crypto-00.md94
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/crypto-01.md40
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/crypto-02.md112
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/dpdk-00.md23
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/ip4-00.md74
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/ip4-01.md34
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/ip4tun-00.md24
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/ip4tun-01.md124
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/ip6-00.md34
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/ip6-01.md64
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/l2-00.md44
-rw-r--r--resources/job_specs/report_coverage/3n-icxd/l2-01.md34
-rw-r--r--resources/job_specs/report_coverage/3n-snr/crypto-00.md94
-rw-r--r--resources/job_specs/report_coverage/3n-snr/crypto-01.md40
-rw-r--r--resources/job_specs/report_coverage/3n-snr/crypto-02.md112
-rw-r--r--resources/job_specs/report_coverage/3n-snr/dpdk-00.md23
-rw-r--r--resources/job_specs/report_coverage/3n-snr/ip4-00.md74
-rw-r--r--resources/job_specs/report_coverage/3n-snr/ip4-01.md34
-rw-r--r--resources/job_specs/report_coverage/3n-snr/ip4tun-00.md24
-rw-r--r--resources/job_specs/report_coverage/3n-snr/ip4tun-01.md124
-rw-r--r--resources/job_specs/report_coverage/3n-snr/ip6-00.md34
-rw-r--r--resources/job_specs/report_coverage/3n-snr/ip6-01.md64
-rw-r--r--resources/job_specs/report_coverage/3n-snr/l2-00.md44
-rw-r--r--resources/job_specs/report_coverage/3n-snr/l2-01.md34
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/dpdk-00.md29
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/ip4-00.md70
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/ip4-01.md57
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/ip4-02.md44
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/ip4-03.md44
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/ip4tun-00.md44
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/ip6-00.md57
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/ip6-01.md57
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/l2-00.md70
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/l2-01.md57
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/l2-02.md44
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/l2-03.md44
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/l2-04.md31
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/memif-00.md70
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/srv6-00.md57
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/srv6-01.md57
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/vhost-00.md96
-rw-r--r--resources/job_specs/report_coverage/3n-tsh/vhost-01.md44
-rw-r--r--resources/job_specs/report_coverage/3na-spr/crypto-00.md145
-rw-r--r--resources/job_specs/report_coverage/3na-spr/crypto-01.md57
-rw-r--r--resources/job_specs/report_coverage/3na-spr/crypto-02.md49
-rw-r--r--resources/job_specs/report_coverage/3na-spr/crypto-03.md49
-rw-r--r--resources/job_specs/report_coverage/3na-spr/crypto-04.md221
-rw-r--r--resources/job_specs/report_coverage/3na-spr/crypto-05.md34
-rw-r--r--resources/job_specs/report_coverage/3na-spr/crypto-06.md49
-rw-r--r--resources/job_specs/report_coverage/3na-spr/dpdk-00.md23
-rw-r--r--resources/job_specs/report_coverage/3na-spr/hoststack-00.md20
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4-00.md85
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4-01.md65
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4-02.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4-03.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4-04.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4-05.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4-06.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4-07.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4-08.md25
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4tun-00.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4tun-02.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4tun-03.md125
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4tun-04.md25
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip4tun-05.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip6-00.md65
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip6-01.md65
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip6-02.md25
-rw-r--r--resources/job_specs/report_coverage/3na-spr/ip6tun-00.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-00.md85
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-01.md65
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-02.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-03.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-04.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-05.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-06.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-07.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-08.md25
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-09.md25
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-10.md25
-rw-r--r--resources/job_specs/report_coverage/3na-spr/l2-11.md85
-rw-r--r--resources/job_specs/report_coverage/3na-spr/memif-00.md85
-rw-r--r--resources/job_specs/report_coverage/3na-spr/srv6-00.md65
-rw-r--r--resources/job_specs/report_coverage/3na-spr/srv6-01.md65
-rw-r--r--resources/job_specs/report_coverage/3na-spr/srv6-02.md65
-rw-r--r--resources/job_specs/report_coverage/3na-spr/srv6-03.md65
-rw-r--r--resources/job_specs/report_coverage/3na-spr/vhost-00.md125
-rw-r--r--resources/job_specs/report_coverage/3na-spr/vhost-01.md45
-rw-r--r--resources/job_specs/report_coverage/3na-spr/vhost-02.md125
-rw-r--r--resources/job_specs/report_coverage/3na-spr/vhost-03.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/crypto-00.md145
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/crypto-01.md57
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/crypto-02.md49
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/crypto-03.md49
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/crypto-04.md221
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/crypto-05.md34
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/crypto-06.md49
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/crypto-07.md84
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/dpdk-00.md23
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/hoststack-00.md20
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4-00.md85
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4-01.md65
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4-02.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4-03.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4-04.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4-05.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4-06.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4-07.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4-08.md25
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4tun-00.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4tun-02.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4tun-03.md125
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4tun-04.md46
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4tun-05.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip4tun-06.md64
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip6-00.md65
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip6-01.md65
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip6-02.md25
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/ip6tun-00.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-00.md85
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-01.md65
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-02.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-03.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-04.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-05.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-06.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-07.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-08.md25
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-09.md25
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-10.md25
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/l2-11.md85
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/memif-00.md85
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/srv6-00.md65
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/srv6-01.md65
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/srv6-02.md65
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/srv6-03.md65
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/vhost-00.md125
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/vhost-01.md45
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/vhost-02.md125
-rw-r--r--resources/job_specs/report_coverage/3nb-spr/vhost-03.md45
-rw-r--r--resources/job_specs/report_iterative/1n-aws/trex-mrr-00.md11
-rw-r--r--resources/job_specs/report_iterative/1n-aws/trex-ndrpdr-00.md11
-rw-r--r--resources/job_specs/report_iterative/2n-aws/vpp-mrr-00.md37
-rw-r--r--resources/job_specs/report_iterative/2n-aws/vpp-ndrpdr-00.md37
-rw-r--r--resources/job_specs/report_iterative/2n-c6in/vpp-mrr-00.md37
-rw-r--r--resources/job_specs/report_iterative/2n-c6in/vpp-ndrpdr-00.md37
-rw-r--r--resources/job_specs/report_iterative/2n-c7gn/vpp-mrr-00.md37
-rw-r--r--resources/job_specs/report_iterative/2n-c7gn/vpp-ndrpdr-00.md37
-rw-r--r--resources/job_specs/report_iterative/2n-clx/dpdk-mrr-00.md11
-rw-r--r--resources/job_specs/report_iterative/2n-clx/dpdk-ndrpdr-00.md23
-rw-r--r--resources/job_specs/report_iterative/2n-clx/nfv-density-mrr-00.md125
-rw-r--r--resources/job_specs/report_iterative/2n-clx/nfv-density-ndrpdr-00.md125
-rw-r--r--resources/job_specs/report_iterative/2n-clx/reconf-00.md20
-rw-r--r--resources/job_specs/report_iterative/2n-clx/vpp-gso-mrr-00.md23
-rw-r--r--resources/job_specs/report_iterative/2n-clx/vpp-mrr-00.md429
-rw-r--r--resources/job_specs/report_iterative/2n-clx/vpp-ndrpdr-00.md429
-rw-r--r--resources/job_specs/report_iterative/2n-clx/vpp-soak-00.md46
-rw-r--r--resources/job_specs/report_iterative/2n-icx/dpdk-mrr-00.md31
-rw-r--r--resources/job_specs/report_iterative/2n-icx/dpdk-ndrpdr-00.md67
-rw-r--r--resources/job_specs/report_iterative/2n-icx/nfv-density-mrr-00.md125
-rw-r--r--resources/job_specs/report_iterative/2n-icx/nfv-density-ndrpdr-00.md125
-rw-r--r--resources/job_specs/report_iterative/2n-icx/reconf-00.md20
-rw-r--r--resources/job_specs/report_iterative/2n-icx/trex-mrr-00.md33
-rw-r--r--resources/job_specs/report_iterative/2n-icx/trex-ndrpdr-00.md33
-rw-r--r--resources/job_specs/report_iterative/2n-icx/vpp-gso-mrr-00.md23
-rw-r--r--resources/job_specs/report_iterative/2n-icx/vpp-hoststack-00.md26
-rw-r--r--resources/job_specs/report_iterative/2n-icx/vpp-mrr-00.md516
-rw-r--r--resources/job_specs/report_iterative/2n-icx/vpp-ndrpdr-00.md516
-rw-r--r--resources/job_specs/report_iterative/2n-icx/vpp-soak-00.md46
-rw-r--r--resources/job_specs/report_iterative/2n-spr/dpdk-mrr-00.md31
-rw-r--r--resources/job_specs/report_iterative/2n-spr/dpdk-ndrpdr-00.md67
-rw-r--r--resources/job_specs/report_iterative/2n-spr/trex-mrr-00.md62
-rw-r--r--resources/job_specs/report_iterative/2n-spr/trex-ndrpdr-00.md65
-rw-r--r--resources/job_specs/report_iterative/2n-spr/vpp-hoststack-00.md18
-rw-r--r--resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md564
-rw-r--r--resources/job_specs/report_iterative/2n-spr/vpp-ndrpdr-00.md564
-rw-r--r--resources/job_specs/report_iterative/2n-spr/vpp-soak-00.md46
-rw-r--r--resources/job_specs/report_iterative/2n-tx2/dpdk-mrr-00.md11
-rw-r--r--resources/job_specs/report_iterative/2n-tx2/dpdk-ndrpdr-00.md29
-rw-r--r--resources/job_specs/report_iterative/2n-tx2/vpp-mrr-00.md266
-rw-r--r--resources/job_specs/report_iterative/2n-tx2/vpp-ndrpdr-00.md266
-rw-r--r--resources/job_specs/report_iterative/2n-zn2/dpdk-mrr-00.md11
-rw-r--r--resources/job_specs/report_iterative/2n-zn2/dpdk-ndrpdr-00.md23
-rw-r--r--resources/job_specs/report_iterative/2n-zn2/nfv-density-mrr-00.md138
-rw-r--r--resources/job_specs/report_iterative/2n-zn2/nfv-density-ndrpdr-00.md138
-rw-r--r--resources/job_specs/report_iterative/2n-zn2/reconf-00.md36
-rw-r--r--resources/job_specs/report_iterative/2n-zn2/soak-00.md58
-rw-r--r--resources/job_specs/report_iterative/2n-zn2/vpp-gso-mrr-00.md23
-rw-r--r--resources/job_specs/report_iterative/2n-zn2/vpp-mrr-00.md335
-rw-r--r--resources/job_specs/report_iterative/2n-zn2/vpp-ndrpdr-00.md334
-rw-r--r--resources/job_specs/report_iterative/3n-alt/dpdk-mrr-00.md21
-rw-r--r--resources/job_specs/report_iterative/3n-alt/dpdk-ndrpdr-00.md57
-rw-r--r--resources/job_specs/report_iterative/3n-alt/vpp-mrr-00.md346
-rw-r--r--resources/job_specs/report_iterative/3n-alt/vpp-ndrpdr-00.md346
-rw-r--r--resources/job_specs/report_iterative/3n-aws/vpp-mrr-00.md27
-rw-r--r--resources/job_specs/report_iterative/3n-aws/vpp-ndrpdr-00.md27
-rw-r--r--resources/job_specs/report_iterative/3n-c6in/vpp-mrr-00.md27
-rw-r--r--resources/job_specs/report_iterative/3n-c6in/vpp-ndrpdr-00.md27
-rw-r--r--resources/job_specs/report_iterative/3n-c7gn/vpp-mrr-00.md27
-rw-r--r--resources/job_specs/report_iterative/3n-c7gn/vpp-ndrpdr-00.md27
-rw-r--r--resources/job_specs/report_iterative/3n-icx/dpdk-mrr-00.md31
-rw-r--r--resources/job_specs/report_iterative/3n-icx/dpdk-ndrpdr-00.md67
-rw-r--r--resources/job_specs/report_iterative/3n-icx/nfv-density-00.md43
-rw-r--r--resources/job_specs/report_iterative/3n-icx/vpp-hoststack-00.md38
-rw-r--r--resources/job_specs/report_iterative/3n-icx/vpp-mrr-00.md474
-rw-r--r--resources/job_specs/report_iterative/3n-icx/vpp-mrr-01.md143
-rw-r--r--resources/job_specs/report_iterative/3n-icx/vpp-ndrpdr-00.md474
-rw-r--r--resources/job_specs/report_iterative/3n-icx/vpp-soak-00.md46
-rw-r--r--resources/job_specs/report_iterative/3n-icxd/dpdk-mrr-00.md11
-rw-r--r--resources/job_specs/report_iterative/3n-icxd/dpdk-ndrpdr-00.md23
-rw-r--r--resources/job_specs/report_iterative/3n-icxd/vpp-mrr-00.md210
-rw-r--r--resources/job_specs/report_iterative/3n-icxd/vpp-ndrpdr-00.md198
-rw-r--r--resources/job_specs/report_iterative/3n-icxd/vpp-soak-00.md46
-rw-r--r--resources/job_specs/report_iterative/3n-snr/dpdk-mrr-00.md11
-rw-r--r--resources/job_specs/report_iterative/3n-snr/dpdk-ndrpdr-00.md23
-rw-r--r--resources/job_specs/report_iterative/3n-snr/vpp-mrr-00.md210
-rw-r--r--resources/job_specs/report_iterative/3n-snr/vpp-ndrpdr-00.md198
-rw-r--r--resources/job_specs/report_iterative/3n-tsh/dpdk-mrr-00.md11
-rw-r--r--resources/job_specs/report_iterative/3n-tsh/dpdk-ndrpdr-00.md29
-rw-r--r--resources/job_specs/report_iterative/3n-tsh/vpp-mrr-00.md231
-rw-r--r--resources/job_specs/report_iterative/3n-tsh/vpp-ndrpdr-00.md229
-rw-r--r--resources/job_specs/report_iterative/3na-spr/dpdk-mrr-00.md11
-rw-r--r--resources/job_specs/report_iterative/3na-spr/dpdk-ndrpdr-00.md23
-rw-r--r--resources/job_specs/report_iterative/3na-spr/vpp-hoststack-00.md20
-rw-r--r--resources/job_specs/report_iterative/3na-spr/vpp-mrr-00.md221
-rw-r--r--resources/job_specs/report_iterative/3na-spr/vpp-ndrpdr-00.md221
-rw-r--r--resources/job_specs/report_iterative/3nb-spr/dpdk-mrr-00.md11
-rw-r--r--resources/job_specs/report_iterative/3nb-spr/dpdk-ndrpdr-00.md23
-rw-r--r--resources/job_specs/report_iterative/3nb-spr/vpp-hoststack-00.md20
-rw-r--r--resources/job_specs/report_iterative/3nb-spr/vpp-mrr-00.md466
-rw-r--r--resources/job_specs/report_iterative/3nb-spr/vpp-ndrpdr-00.md466
l---------resources/job_specs/soak_weekly/vpp-2n-clx.md1
l---------resources/job_specs/soak_weekly/vpp-2n-icx.md1
l---------resources/job_specs/soak_weekly/vpp-2n-spr.md1
l---------resources/job_specs/soak_weekly/vpp-3n-icx.md1
l---------resources/job_specs/soak_weekly/vpp-3n-icxd.md1
-rw-r--r--resources/job_specs/vpp_device/vpp-1n-alt.md205
-rw-r--r--resources/job_specs/vpp_device/vpp-1n-skx.md208
-rw-r--r--resources/job_specs/vpp_device/vpp-1n-spr.md208
-rw-r--r--resources/job_specs/vpp_device/vpp-1n-vbox.md158
-rw-r--r--resources/libraries/bash/config/defaults8
-rw-r--r--resources/libraries/bash/entry/README.txt2
-rw-r--r--resources/libraries/bash/entry/bisect.sh188
-rwxr-xr-xresources/libraries/bash/entry/bootstrap_aws_eb_version_deploy.sh32
-rwxr-xr-xresources/libraries/bash/entry/bootstrap_aws_eb_version_verify.sh32
-rwxr-xr-xresources/libraries/bash/entry/bootstrap_report.sh32
-rwxr-xr-x[-rw-r--r--]resources/libraries/bash/entry/bootstrap_verify_perf.sh14
-rwxr-xr-xresources/libraries/bash/entry/bootstrap_vpp_device.sh11
-rw-r--r--resources/libraries/bash/entry/check/README.txt27
-rw-r--r--resources/libraries/bash/entry/check/doc_verify.sh59
-rw-r--r--resources/libraries/bash/entry/check/tc_coverage.sh100
-rw-r--r--resources/libraries/bash/entry/check/tc_naming.sh140
-rw-r--r--resources/libraries/bash/entry/check_crc.sh2
-rwxr-xr-xresources/libraries/bash/entry/check_l3fwd.sh39
-rwxr-xr-xresources/libraries/bash/entry/check_testpmd.sh39
-rwxr-xr-xresources/libraries/bash/entry/cleanup_dpdk.sh2
-rwxr-xr-xresources/libraries/bash/entry/init_dpdk.sh2
-rwxr-xr-xresources/libraries/bash/entry/install_dpdk.sh2
-rwxr-xr-xresources/libraries/bash/entry/install_nginx.sh38
-rwxr-xr-xresources/libraries/bash/entry/patch_l3fwd.sh2
-rwxr-xr-xresources/libraries/bash/entry/patch_l3fwd_flip_routes4
-rw-r--r--resources/libraries/bash/entry/per_patch_device.sh20
-rw-r--r--resources/libraries/bash/entry/per_patch_perf.sh29
-rwxr-xr-xresources/libraries/bash/entry/run_l3fwd.sh2
-rwxr-xr-xresources/libraries/bash/entry/run_testpmd.sh2
-rwxr-xr-xresources/libraries/bash/entry/tox.sh12
-rw-r--r--resources/libraries/bash/entry/tox/README.txt41
-rw-r--r--resources/libraries/bash/entry/tox/autogen.sh (renamed from resources/libraries/bash/entry/check/autogen.sh)6
-rw-r--r--resources/libraries/bash/entry/tox/copyright_year.sh (renamed from resources/libraries/bash/entry/check/copyright_year.sh)9
-rw-r--r--resources/libraries/bash/entry/tox/fix_copyright_year.sh55
-rw-r--r--resources/libraries/bash/entry/tox/gpl_license.sh (renamed from resources/libraries/bash/entry/check/gpl_license.sh)2
-rw-r--r--resources/libraries/bash/entry/tox/line.sh (renamed from resources/libraries/bash/entry/check/line.sh)2
-rw-r--r--resources/libraries/bash/entry/tox/new_line.sh (renamed from resources/libraries/bash/entry/check/new_line.sh)2
-rw-r--r--resources/libraries/bash/entry/tox/pylint.sh (renamed from resources/libraries/bash/entry/check/pylint.sh)7
-rw-r--r--resources/libraries/bash/entry/with_oper_for_vpp.sh2
-rw-r--r--resources/libraries/bash/function/README.txt20
-rw-r--r--resources/libraries/bash/function/ansible.sh54
-rw-r--r--resources/libraries/bash/function/artifacts.sh83
-rw-r--r--resources/libraries/bash/function/branch.sh6
-rw-r--r--resources/libraries/bash/function/common.sh705
-rw-r--r--resources/libraries/bash/function/device.sh354
-rw-r--r--resources/libraries/bash/function/dpdk.sh101
-rw-r--r--resources/libraries/bash/function/eb_version.sh159
-rw-r--r--resources/libraries/bash/function/gather.sh32
-rw-r--r--resources/libraries/bash/function/hugo.sh113
-rwxr-xr-xresources/libraries/bash/function/nginx.sh136
-rw-r--r--resources/libraries/bash/function/per_patch.sh216
-rw-r--r--resources/libraries/bash/function/terraform.sh183
-rwxr-xr-xresources/libraries/bash/k8s_setup.sh65
-rw-r--r--resources/libraries/bash/shell/k8s_utils.sh125
-rw-r--r--resources/libraries/python/Classify.py30
-rw-r--r--resources/libraries/python/Constants.py493
-rw-r--r--resources/libraries/python/ContainerUtils.py89
-rw-r--r--resources/libraries/python/CoreDumpUtil.py12
-rw-r--r--resources/libraries/python/CpuUtils.py182
-rw-r--r--resources/libraries/python/DMAUtil.py213
-rw-r--r--resources/libraries/python/DPDK/DPDKTools.py30
-rw-r--r--resources/libraries/python/DPDK/L3fwdTest.py129
-rw-r--r--resources/libraries/python/DPDK/TestpmdTest.py111
-rw-r--r--resources/libraries/python/DUTSetup.py308
-rw-r--r--resources/libraries/python/Dhcp.py2
-rw-r--r--resources/libraries/python/DpdkUtil.py14
-rw-r--r--resources/libraries/python/DropRateSearch.py8
-rw-r--r--resources/libraries/python/FilteredLogger.py2
-rw-r--r--resources/libraries/python/FlowUtil.py580
-rw-r--r--resources/libraries/python/GeneveUtil.py72
-rw-r--r--resources/libraries/python/HoststackUtil.py184
-rw-r--r--resources/libraries/python/IPAddress.py2
-rw-r--r--resources/libraries/python/IPTopology.py177
-rw-r--r--resources/libraries/python/IPUtil.py176
-rw-r--r--resources/libraries/python/IPsecUtil.py2061
-rw-r--r--resources/libraries/python/IPv6Util.py2
-rw-r--r--resources/libraries/python/IncrementUtil.py74
-rw-r--r--resources/libraries/python/InterfaceUtil.py465
-rw-r--r--resources/libraries/python/Iperf3.py25
-rw-r--r--resources/libraries/python/IrqUtil.py99
-rw-r--r--resources/libraries/python/KubernetesUtils.py4
-rw-r--r--resources/libraries/python/L2Util.py20
-rw-r--r--resources/libraries/python/LimitUtil.py2
-rw-r--r--resources/libraries/python/LispSetup.py2
-rw-r--r--resources/libraries/python/LoadBalancerUtil.py14
-rw-r--r--resources/libraries/python/LocalExecution.py2
-rw-r--r--resources/libraries/python/MLRsearch/AbstractMeasurer.py32
-rw-r--r--resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py51
-rw-r--r--resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py645
-rw-r--r--resources/libraries/python/MLRsearch/NdrPdrResult.py65
-rw-r--r--resources/libraries/python/MLRsearch/ReceiveRateInterval.py88
-rw-r--r--resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py110
-rw-r--r--resources/libraries/python/MLRsearch/__init__.py16
-rw-r--r--resources/libraries/python/MLRsearch/candidate.py153
-rw-r--r--resources/libraries/python/MLRsearch/config.py179
-rw-r--r--resources/libraries/python/MLRsearch/dataclass/__init__.py19
-rw-r--r--resources/libraries/python/MLRsearch/dataclass/dc_property.py173
-rw-r--r--resources/libraries/python/MLRsearch/dataclass/field.py44
-rw-r--r--resources/libraries/python/MLRsearch/discrete_interval.py140
-rw-r--r--resources/libraries/python/MLRsearch/discrete_load.py316
-rw-r--r--resources/libraries/python/MLRsearch/discrete_result.py76
-rw-r--r--resources/libraries/python/MLRsearch/discrete_width.py197
-rw-r--r--resources/libraries/python/MLRsearch/expander.py102
-rw-r--r--resources/libraries/python/MLRsearch/global_width.py70
-rw-r--r--resources/libraries/python/MLRsearch/goal_result.py72
-rw-r--r--resources/libraries/python/MLRsearch/limit_handler.py198
-rw-r--r--resources/libraries/python/MLRsearch/load_rounding.py205
-rw-r--r--resources/libraries/python/MLRsearch/load_stats.py112
-rw-r--r--resources/libraries/python/MLRsearch/measurement_database.py126
-rw-r--r--resources/libraries/python/MLRsearch/multiple_loss_ratio_search.py325
-rw-r--r--resources/libraries/python/MLRsearch/pep3140/__init__.py24
-rw-r--r--resources/libraries/python/MLRsearch/pep3140/classes.py34
-rw-r--r--resources/libraries/python/MLRsearch/relevant_bounds.py56
-rw-r--r--resources/libraries/python/MLRsearch/search_goal.py119
-rw-r--r--resources/libraries/python/MLRsearch/search_goal_tuple.py60
-rw-r--r--resources/libraries/python/MLRsearch/selector.py183
-rw-r--r--resources/libraries/python/MLRsearch/strategy/__init__.py35
-rw-r--r--resources/libraries/python/MLRsearch/strategy/base.py132
-rw-r--r--resources/libraries/python/MLRsearch/strategy/bisect.py193
-rw-r--r--resources/libraries/python/MLRsearch/strategy/extend_hi.py76
-rw-r--r--resources/libraries/python/MLRsearch/strategy/extend_lo.py76
-rw-r--r--resources/libraries/python/MLRsearch/strategy/halve.py83
-rw-r--r--resources/libraries/python/MLRsearch/strategy/refine_hi.py55
-rw-r--r--resources/libraries/python/MLRsearch/strategy/refine_lo.py53
-rw-r--r--resources/libraries/python/MLRsearch/target_scaling.py103
-rw-r--r--resources/libraries/python/MLRsearch/target_spec.py95
-rw-r--r--resources/libraries/python/MLRsearch/target_stat.py153
-rw-r--r--resources/libraries/python/MLRsearch/trial_measurement/__init__.py19
-rw-r--r--resources/libraries/python/MLRsearch/trial_measurement/abstract_measurer.py55
-rw-r--r--resources/libraries/python/MLRsearch/trial_measurement/measurement_result.py161
-rw-r--r--resources/libraries/python/MLRsearch/trimmed_stat.py52
-rw-r--r--resources/libraries/python/Memif.py20
-rw-r--r--resources/libraries/python/NATUtil.py111
-rw-r--r--resources/libraries/python/NGINX/NGINXTools.py139
-rw-r--r--resources/libraries/python/NGINX/__init__.py16
-rw-r--r--resources/libraries/python/Namespaces.py2
-rw-r--r--resources/libraries/python/NginxConfigGenerator.py244
-rw-r--r--resources/libraries/python/NginxUtil.py124
-rw-r--r--resources/libraries/python/NodePath.py62
-rw-r--r--resources/libraries/python/NsimUtil.py13
-rw-r--r--resources/libraries/python/OptionString.py2
-rw-r--r--resources/libraries/python/PLRsearch/Integrator.py59
-rw-r--r--resources/libraries/python/PLRsearch/PLRsearch.py221
-rw-r--r--resources/libraries/python/PLRsearch/__init__.py2
-rw-r--r--resources/libraries/python/PLRsearch/log_plus.py8
-rw-r--r--resources/libraries/python/PLRsearch/stat_trackers.py58
-rw-r--r--resources/libraries/python/PapiExecutor.py757
-rw-r--r--resources/libraries/python/PapiHistory.py31
-rw-r--r--resources/libraries/python/PerfUtil.py82
-rw-r--r--resources/libraries/python/Policer.py16
-rw-r--r--resources/libraries/python/QATUtil.py92
-rw-r--r--resources/libraries/python/QemuManager.py3
-rw-r--r--resources/libraries/python/QemuUtils.py44
-rw-r--r--resources/libraries/python/SRv6.py11
-rw-r--r--resources/libraries/python/SchedUtils.py2
-rw-r--r--resources/libraries/python/SetupFramework.py82
-rw-r--r--resources/libraries/python/SysctlUtil.py2
-rw-r--r--resources/libraries/python/TGSetup.py2
-rw-r--r--resources/libraries/python/TRexConfigGenerator.py301
-rw-r--r--resources/libraries/python/Tap.py6
-rw-r--r--resources/libraries/python/TelemetryUtil.py99
-rw-r--r--resources/libraries/python/TestConfig.py144
-rw-r--r--resources/libraries/python/Trace.py17
-rw-r--r--resources/libraries/python/TrafficGenerator.py855
-rw-r--r--resources/libraries/python/TrafficScriptExecutor.py2
-rw-r--r--resources/libraries/python/VPPUtil.py115
-rw-r--r--resources/libraries/python/VatExecutor.py397
-rw-r--r--resources/libraries/python/VatJsonUtil.py218
-rw-r--r--resources/libraries/python/VhostUser.py4
-rw-r--r--resources/libraries/python/VppApiCrc.py99
-rw-r--r--resources/libraries/python/VppConfigGenerator.py398
-rw-r--r--resources/libraries/python/VppCounters.py2
-rw-r--r--resources/libraries/python/WireGuardUtil.py298
-rw-r--r--resources/libraries/python/autogen/Regenerator.py473
-rw-r--r--resources/libraries/python/autogen/Testcase.py36
-rw-r--r--resources/libraries/python/autogen/__init__.py2
-rwxr-xr-xresources/libraries/python/autogen/add_suite_tag.py2
-rw-r--r--resources/libraries/python/jumpavg/AvgStdevStats.py113
-rw-r--r--resources/libraries/python/jumpavg/BitCountingGroup.py173
-rw-r--r--resources/libraries/python/jumpavg/BitCountingGroupList.py185
-rw-r--r--resources/libraries/python/jumpavg/BitCountingStats.py169
-rw-r--r--resources/libraries/python/jumpavg/__init__.py10
-rw-r--r--resources/libraries/python/jumpavg/avg_stdev_stats.py91
-rw-r--r--resources/libraries/python/jumpavg/bit_counting_group.py163
-rw-r--r--resources/libraries/python/jumpavg/bit_counting_group_list.py203
-rw-r--r--resources/libraries/python/jumpavg/bit_counting_stats.py160
-rw-r--r--resources/libraries/python/jumpavg/classify.py78
-rw-r--r--resources/libraries/python/model/ExportJson.py395
-rw-r--r--resources/libraries/python/model/ExportResult.py316
-rw-r--r--resources/libraries/python/model/MemDump.py194
-rw-r--r--resources/libraries/python/model/__init__.py16
-rw-r--r--resources/libraries/python/model/parse.py112
-rw-r--r--resources/libraries/python/model/util.py69
-rw-r--r--resources/libraries/python/model/validate.py62
-rw-r--r--resources/libraries/python/parsers/JsonParser.py54
-rw-r--r--resources/libraries/python/parsers/__init__.py16
-rw-r--r--resources/libraries/python/ssh.py60
-rw-r--r--resources/libraries/python/topology.py79
-rw-r--r--resources/libraries/robot/crypto/ipsec.robot60
-rw-r--r--resources/libraries/robot/dpdk/default.robot103
-rw-r--r--resources/libraries/robot/features/acl.robot6
-rw-r--r--resources/libraries/robot/features/dma.robot28
-rw-r--r--resources/libraries/robot/features/policer.robot2
-rw-r--r--resources/libraries/robot/hoststack/hoststack.robot181
-rw-r--r--resources/libraries/robot/ip/geneve.robot41
-rw-r--r--resources/libraries/robot/ip/ip4.robot86
-rw-r--r--resources/libraries/robot/ip/ip6.robot10
-rw-r--r--resources/libraries/robot/ip/nat.robot15
-rw-r--r--resources/libraries/robot/l2/l2_bridge_domain.robot10
-rw-r--r--resources/libraries/robot/l2/l2_patch.robot2
-rw-r--r--resources/libraries/robot/l2/l2_traffic.robot2
-rw-r--r--resources/libraries/robot/l2/l2_xconnect.robot8
-rw-r--r--resources/libraries/robot/l2/tagging.robot16
-rw-r--r--resources/libraries/robot/lb/load_balancer.robot2
-rw-r--r--resources/libraries/robot/nginx/default.robot61
-rw-r--r--resources/libraries/robot/nsim/nsim.robot2
-rw-r--r--resources/libraries/robot/overlay/gtpu.robot75
-rw-r--r--resources/libraries/robot/overlay/lisp.robot6
-rw-r--r--resources/libraries/robot/overlay/lisp_api.robot2
-rw-r--r--resources/libraries/robot/overlay/lispgpe.robot2
-rw-r--r--resources/libraries/robot/overlay/srv6.robot12
-rw-r--r--resources/libraries/robot/overlay/vxlan.robot2
-rw-r--r--resources/libraries/robot/performance/performance_actions.robot196
-rw-r--r--resources/libraries/robot/performance/performance_display.robot130
-rw-r--r--resources/libraries/robot/performance/performance_utils.robot316
-rw-r--r--resources/libraries/robot/performance/performance_vars.robot300
-rw-r--r--resources/libraries/robot/shared/container.robot25
-rw-r--r--resources/libraries/robot/shared/default.robot146
-rw-r--r--resources/libraries/robot/shared/interfaces.robot138
-rw-r--r--resources/libraries/robot/shared/memif.robot2
-rw-r--r--resources/libraries/robot/shared/suite_setup.robot161
-rw-r--r--resources/libraries/robot/shared/suite_teardown.robot18
-rw-r--r--resources/libraries/robot/shared/test_setup.robot7
-rw-r--r--resources/libraries/robot/shared/test_teardown.robot37
-rw-r--r--resources/libraries/robot/shared/traffic.robot57
-rw-r--r--resources/libraries/robot/shared/vm.robot17
-rw-r--r--resources/libraries/robot/wireguard/wireguard.robot66
-rw-r--r--resources/model_schema/test_case.schema.yaml752
-rw-r--r--resources/templates/container/memif_create_chain_dma.exec10
-rw-r--r--resources/templates/telemetry/bpf_runtime.yaml752
-rw-r--r--resources/templates/telemetry/perf_stat_runtime.yaml134
-rw-r--r--resources/templates/telemetry/vpp_clear_stats.yaml272
-rw-r--r--resources/templates/telemetry/vpp_runtime.yaml209
-rw-r--r--resources/templates/telemetry/vpp_show_stats.yaml251
-rw-r--r--resources/templates/telemetry/vpp_test_teardown.yaml251
-rw-r--r--resources/templates/telemetry/vppctl_clear_stats.yaml272
-rw-r--r--resources/templates/telemetry/vppctl_runtime.yaml209
-rw-r--r--resources/templates/telemetry/vppctl_show_stats.yaml251
-rw-r--r--resources/templates/telemetry/vppctl_test_teardown.yaml251
-rw-r--r--resources/templates/vat/dhcp_proxy_dump.vat1
-rw-r--r--resources/templates/vat/dump_interfaces.vat3
-rw-r--r--resources/templates/vat/ipsec/ipsec_policy_add.vat1
-rw-r--r--resources/templates/vat/ipsec/ipsec_show.vat1
-rw-r--r--resources/templates/vat/lisp/add_lisp_adjacency.vat1
-rw-r--r--resources/templates/vat/lisp/add_lisp_local_eid.vat1
-rw-r--r--resources/templates/vat/lisp/add_lisp_local_eid_mac.vat1
-rw-r--r--resources/templates/vat/lisp/add_lisp_locator.vat1
-rw-r--r--resources/templates/vat/lisp/add_lisp_locator_set.vat1
-rw-r--r--resources/templates/vat/lisp/add_lisp_map_resolver.vat1
-rw-r--r--resources/templates/vat/lisp/add_lisp_remote_mapping.vat1
-rw-r--r--resources/templates/vat/lisp/del_lisp_adjacency.vat1
-rw-r--r--resources/templates/vat/lisp/del_lisp_local_eid.vat1
-rw-r--r--resources/templates/vat/lisp/del_lisp_local_eid_mac.vat1
-rw-r--r--resources/templates/vat/lisp/del_lisp_locator.vat1
-rw-r--r--resources/templates/vat/lisp/del_lisp_locator_set.vat1
-rw-r--r--resources/templates/vat/lisp/del_lisp_map_resolver.vat1
-rw-r--r--resources/templates/vat/lisp/del_lisp_remote_mapping.vat1
-rw-r--r--resources/templates/vat/lisp/lisp_eid_table_add_del_map.vat1
-rw-r--r--resources/templates/vat/lisp/lisp_gpe_iface.vat1
-rw-r--r--resources/templates/vat/lisp/lisp_gpe_status.vat1
-rw-r--r--resources/templates/vat/lisp/lisp_status.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_eid_table.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_gpe_tunnel.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_locator_set.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_map_register.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_map_request_mode.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_map_resolver.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_map_server.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_petr_config.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_pitr.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_rloc_config.vat1
-rw-r--r--resources/templates/vat/lisp/show_lisp_status.vat1
-rw-r--r--resources/templates/vat/show_hardware_detail.vat1
-rw-r--r--resources/templates/vat/vpp_route_add.vat1
-rw-r--r--resources/templates/vcl/vcl_iperf3.conf9
-rw-r--r--resources/templates/vcl/vcl_nginx.conf12
-rw-r--r--resources/templates/vm/init.sh1
-rw-r--r--resources/test_data/lisp/lisp.py2
-rw-r--r--resources/test_data/lisp/performance/lisp_static_adjacency.py2
-rw-r--r--resources/tools/__init__.py2
-rwxr-xr-xresources/tools/ab/ABFork.py248
-rw-r--r--resources/tools/ab/ABTools.py187
-rw-r--r--resources/tools/block_replacer/apache2gpl.sh2
-rw-r--r--resources/tools/block_replacer/replace.py2
-rw-r--r--resources/tools/disk-image-builder/nested/.gitignore1
-rw-r--r--resources/tools/disk-image-builder/nested/CHANGELOG66
-rw-r--r--resources/tools/disk-image-builder/nested/README.md71
-rwxr-xr-xresources/tools/disk-image-builder/nested/build.sh183
-rw-r--r--resources/tools/disk-image-builder/nested/buildroot-config3132
-rw-r--r--resources/tools/disk-image-builder/nested/buildroot-patches/dpdk.patch220
-rwxr-xr-xresources/tools/disk-image-builder/nested/clean.sh19
-rwxr-xr-xresources/tools/disk-image-builder/nested/deepclean.sh17
-rwxr-xr-xresources/tools/disk-image-builder/nested/image-patches/01-serial-console23
-rwxr-xr-xresources/tools/disk-image-builder/nested/image-patches/02-users37
-rwxr-xr-xresources/tools/disk-image-builder/nested/image-patches/03-network37
-rwxr-xr-xresources/tools/disk-image-builder/nested/image-patches/04-qemu-ga33
-rwxr-xr-xresources/tools/disk-image-builder/nested/image-patches/05-ssh-hostkeys11
-rwxr-xr-xresources/tools/disk-image-builder/nested/image-patches/06-dpdk-support98
-rwxr-xr-xresources/tools/disk-image-builder/nested/image-patches/07-isolate-cpu8
-rwxr-xr-xresources/tools/disk-image-builder/nested/image-patches/08-virtio-disk8
-rw-r--r--resources/tools/disk-image-builder/nested/kernel-defconfig325
-rw-r--r--resources/tools/disk-image-builder/nested/requirements.sh16
-rw-r--r--resources/tools/doc_gen/.gitignore3
-rw-r--r--resources/tools/doc_gen/README.rst116
-rwxr-xr-xresources/tools/doc_gen/gen_rst.py288
-rwxr-xr-xresources/tools/doc_gen/run_doc.sh52
-rw-r--r--resources/tools/doc_gen/src/Makefile225
-rw-r--r--resources/tools/doc_gen/src/conf.py344
-rw-r--r--resources/tools/doc_gen/src/fdio_logo.pngbin3708 -> 0 bytes
-rw-r--r--resources/tools/doc_gen/src/index.rst15
-rw-r--r--resources/tools/doc_gen/src/indices.rst6
-rw-r--r--resources/tools/doc_gen/src/overview.rst53
-rw-r--r--resources/tools/doc_gen/src/resources.libraries.python.rst3
-rw-r--r--resources/tools/doc_gen/src/resources.libraries.robot.rst3
-rw-r--r--resources/tools/doc_gen/src/tests.dpdk.perf.rst3
-rw-r--r--resources/tools/doc_gen/src/tests.vpp.device.rst3
-rw-r--r--resources/tools/doc_gen/src/tests.vpp.perf.ip4_tunnels.rst3
-rw-r--r--resources/tools/doc_gen/src/tests.vpp.perf.ip6_tunnels.rst3
-rw-r--r--resources/tools/doc_gen/src/tests.vpp.perf.rst3
-rw-r--r--resources/tools/doc_gen/src/tests.vpp.perf.vm_vhost.rst3
-rw-r--r--resources/tools/integrated/__init__.py2
-rw-r--r--resources/tools/integrated/check_crc.py7
-rw-r--r--resources/tools/integrated/compare_bisect.py134
-rw-r--r--resources/tools/integrated/compare_perpatch.py129
-rw-r--r--resources/tools/iperf/iperf_client.py7
-rwxr-xr-xresources/tools/papi/vpp_papi_provider.py15
-rw-r--r--resources/tools/presentation/README.md52
-rw-r--r--resources/tools/presentation/__init__.py34
-rw-r--r--resources/tools/presentation/conf.py275
-rw-r--r--resources/tools/presentation/conf_cpta/conf.py113
-rw-r--r--resources/tools/presentation/doc/graphs_improvements.css5
-rw-r--r--resources/tools/presentation/doc/graphs_improvements.rst590
-rw-r--r--resources/tools/presentation/doc/pal_func_diagram.svg1413
-rw-r--r--resources/tools/presentation/doc/pal_layers.svg441
-rw-r--r--resources/tools/presentation/doc/pal_lld.rst1712
-rw-r--r--resources/tools/presentation/doc/pic/graph-latency.svg1127
-rw-r--r--resources/tools/presentation/doc/pic/graph-speedup.svg1554
-rw-r--r--resources/tools/presentation/doc/pic/graph-throughput.svg645
-rw-r--r--resources/tools/presentation/doc/report_test_groups.txt467
-rw-r--r--resources/tools/presentation/doc/trending_test_groups.md921
-rw-r--r--resources/tools/presentation/environment.py129
-rw-r--r--resources/tools/presentation/fdio.svg25
-rw-r--r--resources/tools/presentation/generator_alerts.py447
-rw-r--r--resources/tools/presentation/generator_cpta.py687
-rw-r--r--resources/tools/presentation/generator_files.py439
-rw-r--r--resources/tools/presentation/generator_plots.py1471
-rw-r--r--resources/tools/presentation/generator_report.py267
-rw-r--r--resources/tools/presentation/generator_tables.py2078
-rw-r--r--resources/tools/presentation/ignored_tcs.yaml33
-rw-r--r--resources/tools/presentation/input_data_files.py295
-rw-r--r--resources/tools/presentation/input_data_parser.py2075
-rw-r--r--resources/tools/presentation/mapping_report.yaml208
-rw-r--r--resources/tools/presentation/mapping_tc_names.yaml1578
-rw-r--r--resources/tools/presentation/pal.py182
-rw-r--r--resources/tools/presentation/pal_errors.py81
-rw-r--r--resources/tools/presentation/pal_utils.py352
-rw-r--r--resources/tools/presentation/rca/rca-2n-clx-2t1c-pdr-rca1.yaml68
-rw-r--r--resources/tools/presentation/rca/rca-2n-clx-2t1c-pdr-rca2.yaml29
-rw-r--r--resources/tools/presentation/rca/rca-2n-skx-2t1c-ndr-rca1.yaml79
-rw-r--r--resources/tools/presentation/rca/rca-2n-skx-2t1c-ndr-rca2.yaml37
-rw-r--r--resources/tools/presentation/rca/rca-2n-skx-2t1c-pdr-rca1.yaml74
-rw-r--r--resources/tools/presentation/rca/rca-2n-skx-2t1c-pdr-rca2.yaml31
-rw-r--r--resources/tools/presentation/rca/rca-3n-skx-2t1c-pdr-rca1.yaml60
-rw-r--r--resources/tools/presentation/rca/rca-3n-skx-2t1c-pdr-rca2.yaml24
-rw-r--r--resources/tools/presentation/requirements.txt10
-rwxr-xr-xresources/tools/presentation/run_cpta.sh34
-rwxr-xr-xresources/tools/presentation/run_report.sh46
-rwxr-xr-xresources/tools/presentation/run_report_local.sh126
-rw-r--r--resources/tools/presentation/specification.yaml23349
-rw-r--r--resources/tools/presentation/specification_CPTA.yaml10226
-rw-r--r--resources/tools/presentation/specification_local.yaml3386
-rw-r--r--resources/tools/presentation/specification_parser.py911
-rw-r--r--resources/tools/presentation/static_content.py62
-rw-r--r--resources/tools/scripts/gdb-commands2
-rwxr-xr-xresources/tools/scripts/topo_reservation.py2
-rw-r--r--resources/tools/telemetry/__init__.py12
-rwxr-xr-xresources/tools/telemetry/__main__.py51
-rw-r--r--resources/tools/telemetry/bundle_bpf.py161
-rw-r--r--resources/tools/telemetry/bundle_perf_stat.py112
-rw-r--r--resources/tools/telemetry/bundle_vpp.py465
-rw-r--r--resources/tools/telemetry/bundle_vppctl.py425
-rw-r--r--resources/tools/telemetry/constants.py52
-rw-r--r--resources/tools/telemetry/executor.py108
-rw-r--r--resources/tools/telemetry/metrics.py625
-rw-r--r--resources/tools/telemetry/parser.py108
-rw-r--r--resources/tools/telemetry/serializer.py111
-rw-r--r--resources/tools/testbed-setup/README.rst152
-rw-r--r--resources/tools/testbed-setup/ansible/dev.yaml12
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/group_vars/all.yaml5
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml56
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml55
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml57
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml56
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml56
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml57
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml57
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.38.yaml24
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.39.yaml62
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml62
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml60
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml60
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.65.yaml59
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.66.yaml59
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.67.yaml59
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.68.yaml59
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml37
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml64
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml64
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml30
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml63
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml63
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.16.yaml59
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.17.yaml59
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml26
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts74
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/sample_inventory/group_vars/all.yaml5
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml17
-rw-r--r--resources/tools/testbed-setup/ansible/nomad.yaml18
-rw-r--r--resources/tools/testbed-setup/ansible/roles/ab/defaults/main.yaml17
-rw-r--r--resources/tools/testbed-setup/ansible/roles/ab/tasks/main.yaml9
-rw-r--r--resources/tools/testbed-setup/ansible/roles/aws/defaults/main.yaml3
-rw-r--r--resources/tools/testbed-setup/ansible/roles/aws/handlers/main.yaml15
-rw-r--r--resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml64
-rw-r--r--resources/tools/testbed-setup/ansible/roles/aws/tasks/ubuntu_bionic.yaml10
-rw-r--r--resources/tools/testbed-setup/ansible/roles/azure/defaults/main.yaml3
-rw-r--r--resources/tools/testbed-setup/ansible/roles/baremetal/handlers/main.yaml30
-rw-r--r--resources/tools/testbed-setup/ansible/roles/calibration/defaults/main.yaml35
-rw-r--r--resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml79
-rw-r--r--resources/tools/testbed-setup/ansible/roles/calibration/tasks/x86_64.yaml35
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_containers.yaml38
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_process.yaml33
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cleanup/tasks/main.yaml31
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cleanup/tasks/remove_package.yaml19
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cleanup/tasks/sut.yaml72
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cleanup/tasks/tg.yaml9
-rw-r--r--resources/tools/testbed-setup/ansible/roles/cleanup/tasks/vpp_device.yaml15
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/defaults/main.yaml59
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/files/grub_aarch6434
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/files/grub_x86_6434
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/handlers/main.yaml8
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml113
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/defaults/main.yaml110
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/handlers/main.yaml23
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/meta/main.yaml9
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/tasks/main.yaml164
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/templates/base.hcl.j243
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/templates/consul.hcl.j212
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/templates/consul_systemd.service.j221
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/templates/services.json.j213
-rw-r--r--resources/tools/testbed-setup/ansible/roles/consul/vars/main.yaml5
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/Dockerfile61
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/badkeypub1
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/sshconfig3
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/wrapdocker113
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_shim_image/tasks/main.yaml32
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/Dockerfile173
-rw-r--r--resources/tools/testbed-setup/ansible/roles/csit_sut_image/tasks/main.yaml27
-rw-r--r--resources/tools/testbed-setup/ansible/roles/docker/defaults/main.yaml38
-rw-r--r--resources/tools/testbed-setup/ansible/roles/docker/handlers/main.yaml7
-rw-r--r--resources/tools/testbed-setup/ansible/roles/docker/meta/main.yaml4
-rw-r--r--resources/tools/testbed-setup/ansible/roles/docker/tasks/main.yaml70
-rw-r--r--resources/tools/testbed-setup/ansible/roles/docker/tasks/ubuntu_bionic.yaml27
-rw-r--r--resources/tools/testbed-setup/ansible/roles/dpdk/defaults/main.yaml31
-rw-r--r--resources/tools/testbed-setup/ansible/roles/dpdk/tasks/main.yaml60
-rw-r--r--resources/tools/testbed-setup/ansible/roles/iperf/defaults/main.yaml22
-rw-r--r--resources/tools/testbed-setup/ansible/roles/iperf/tasks/main.yaml54
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel/defaults/main.yaml28
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel/handlers/main.yaml6
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel/tasks/main.yaml8
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_bionic.yaml46
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel_vm/tasks/main.yaml92
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kubernetes/defaults/main.yaml15
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kubernetes/tasks/main.yaml14
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kubernetes/tasks/ubuntu_bionic.yaml37
-rw-r--r--resources/tools/testbed-setup/ansible/roles/mellanox/defaults/main.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/roles/mellanox/tasks/main.yaml60
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/defaults/main.yaml105
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/handlers/main.yaml10
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/meta/main.yaml9
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/tasks/main.yaml184
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/templates/base.hcl.j211
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/templates/client.hcl.j231
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/templates/custom.hcl.j25
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/templates/nomad_systemd.service.j221
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/templates/server.hcl.j216
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/templates/telemetry.hcl.j220
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/templates/tls.hcl.j212
-rw-r--r--resources/tools/testbed-setup/ansible/roles/nomad/vars/main.yaml5
-rw-r--r--resources/tools/testbed-setup/ansible/roles/performance_tuning/defaults/main.yaml17
-rw-r--r--resources/tools/testbed-setup/ansible/roles/performance_tuning/handlers/main.yaml13
-rw-r--r--resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml186
-rw-r--r--resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/turbo_boost.yaml36
-rw-r--r--resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/ubuntu_bionic.yaml18
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg/files/csit-initialize-docker-tg.service12
-rwxr-xr-xresources/tools/testbed-setup/ansible/roles/tg/files/csit-initialize-docker-tg.sh58
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg/handlers/main.yaml10
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml28
-rw-r--r--resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml9
-rw-r--r--resources/tools/testbed-setup/ansible/roles/trex/defaults/main.yaml39
-rw-r--r--resources/tools/testbed-setup/ansible/roles/trex/tasks/deploy_block.yaml55
-rw-r--r--resources/tools/testbed-setup/ansible/roles/trex/tasks/main.yaml16
-rw-r--r--resources/tools/testbed-setup/ansible/roles/user_add/defaults/main.yaml11
-rw-r--r--resources/tools/testbed-setup/ansible/roles/user_add/handlers/main.yaml7
-rw-r--r--resources/tools/testbed-setup/ansible/roles/user_add/tasks/main.yaml48
-rw-r--r--resources/tools/testbed-setup/ansible/roles/vpp/defaults/main.yaml27
-rw-r--r--resources/tools/testbed-setup/ansible/roles/vpp/tasks/main.yaml27
-rw-r--r--resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs-default.sh22
-rw-r--r--resources/tools/testbed-setup/ansible/roles/vpp_device/handlers/main.yaml21
-rw-r--r--resources/tools/testbed-setup/ansible/roles/vpp_device/tasks/main.yaml92
-rw-r--r--resources/tools/testbed-setup/ansible/site.yaml17
-rw-r--r--resources/tools/testbed-setup/ansible/site_aws.yaml8
-rw-r--r--resources/tools/testbed-setup/ansible/site_azure.yaml8
-rw-r--r--resources/tools/testbed-setup/ansible/sut.yaml34
-rw-r--r--resources/tools/testbed-setup/ansible/sut_aws.yaml25
-rw-r--r--resources/tools/testbed-setup/ansible/sut_azure.yaml25
-rw-r--r--resources/tools/testbed-setup/ansible/templates/topology_2n_aws_c5n.j256
-rw-r--r--resources/tools/testbed-setup/ansible/templates/topology_3n_aws_c5n.j283
-rw-r--r--resources/tools/testbed-setup/ansible/tg.yaml32
-rw-r--r--resources/tools/testbed-setup/ansible/tg_aws.yaml29
-rw-r--r--resources/tools/testbed-setup/ansible/tg_azure.yaml27
-rw-r--r--resources/tools/testbed-setup/ansible/vpp_device.yaml30
-rw-r--r--resources/tools/vagrant/Vagrantfile107
-rw-r--r--resources/tools/vagrant/ansible/group_vars/vppdevice.yml14
-rw-r--r--resources/tools/vagrant/ansible/master.yml3
-rw-r--r--resources/tools/vagrant/ansible/roles/common/tasks/main.yml8
-rw-r--r--resources/tools/vagrant/ansible/roles/csit/defaults/main.yml38
-rw-r--r--resources/tools/vagrant/ansible/roles/csit/tasks/main.yml143
-rw-r--r--resources/tools/vagrant/ansible/vppdevice4
-rw-r--r--resources/tools/vagrant/ansible/vppdevice.yml6
-rw-r--r--resources/topology_schemas/2_node_topology.sch.yaml2
-rw-r--r--resources/topology_schemas/topology.sch.yaml2
-rw-r--r--terraform-ci-infra/1n_nmd/.gitignore1
-rwxr-xr-xterraform-ci-infra/1n_nmd/.terraform.lock.hcl58
-rw-r--r--terraform-ci-infra/1n_nmd/main.tf67
-rw-r--r--terraform-ci-infra/1n_nmd/minio/conf/nomad/mc.hcl73
-rw-r--r--terraform-ci-infra/1n_nmd/minio/conf/nomad/minio.hcl228
-rw-r--r--terraform-ci-infra/1n_nmd/minio/main.tf82
-rw-r--r--terraform-ci-infra/1n_nmd/minio/outputs.tf21
-rw-r--r--terraform-ci-infra/1n_nmd/minio/variables.tf170
-rw-r--r--terraform-ci-infra/1n_nmd/minio/versions.tf13
-rw-r--r--terraform-ci-infra/1n_nmd/nginx/conf/nomad/nginx.hcl273
-rw-r--r--terraform-ci-infra/1n_nmd/nginx/main.tf16
-rw-r--r--terraform-ci-infra/1n_nmd/nginx/variables.tf13
-rw-r--r--terraform-ci-infra/1n_nmd/nginx/versions.tf13
-rw-r--r--terraform-ci-infra/1n_nmd/providers.tf21
-rw-r--r--terraform-ci-infra/1n_nmd/terraform.tfstate292
-rw-r--r--terraform-ci-infra/1n_nmd/terraform.tfstate.backup233
-rwxr-xr-xterraform-ci-infra/1n_nmd/tools/artifacts.py138
-rw-r--r--terraform-ci-infra/1n_nmd/variables.tf11
-rw-r--r--terraform-ci-infra/1n_nmd/vpp_device/prod_csit_shim.nomad171
-rw-r--r--terraform-ci-infra/1n_nmd/vpp_device/resources.tf4
-rw-r--r--terraform-ci-infra/2n_aws_c5n/.gitignore4
-rw-r--r--terraform-ci-infra/2n_aws_c5n/main.tf304
-rw-r--r--terraform-ci-infra/2n_aws_c5n/nic.tf67
-rw-r--r--terraform-ci-infra/3n_aws_c5n/.gitignore4
-rw-r--r--terraform-ci-infra/3n_aws_c5n/main.tf361
-rw-r--r--terraform-ci-infra/3n_aws_c5n/nic.tf101
-rw-r--r--terraform-ci-infra/3n_azure_fsv2/.gitignore4
-rw-r--r--terraform-ci-infra/3n_azure_fsv2/main.tf593
-rw-r--r--terraform-ci-infra/3n_azure_fsv2/nic.tf133
-rw-r--r--tests/__init__.robot37
-rw-r--r--tests/dpdk/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot52
-rw-r--r--tests/dpdk/perf/10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot52
-rw-r--r--tests/dpdk/perf/2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot50
-rw-r--r--tests/dpdk/perf/2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot50
-rw-r--r--tests/dpdk/perf/__init__.robot32
-rwxr-xr-xtests/dpdk/perf/regenerate_testcases.py2
-rw-r--r--tests/trex/perf/__init__.robot45
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4base-tg-ndrpdr.robot92
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4scale20k-tg-ndrpdr.robot93
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr.robot87
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr.robot96
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr.robot87
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr.robot96
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr.robot85
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr.robot95
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr.robot85
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr.robot94
-rwxr-xr-xtests/trex/perf/ip4/regenerate_testcases.py18
-rw-r--r--tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6base-tg-ndrpdr.robot92
-rw-r--r--tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6scale20k-tg-ndrpdr.robot93
-rwxr-xr-xtests/trex/perf/ip6/regenerate_testcases.py18
-rw-r--r--tests/trex/perf/l2/1n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-tg-ndrpdr.robot96
-rwxr-xr-xtests/trex/perf/l2/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/__init__.robot41
-rw-r--r--tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-scapy.robot96
-rw-r--r--tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2memif-1dcr-scapy.robot94
-rw-r--r--tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2memif-1dcr-scapy.robot92
-rw-r--r--tests/vpp/device/container_memif/eth2p-ethipv4-ip4base-eth-2memif-1dcr-dev.robot89
-rw-r--r--tests/vpp/device/container_memif/eth2p-ethipv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot88
-rw-r--r--tests/vpp/device/container_memif/eth2p-ethipv4-l2xcbase-eth-2memif-1dcr-dev.robot86
-rw-r--r--tests/vpp/device/container_memif/eth2p-ethipv6-ip6base-eth-2memif-1dcr-dev.robot120
-rwxr-xr-xtests/vpp/device/container_memif/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/crypto/eth2p-ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha-dev.robot101
-rw-r--r--tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-dev.robot102
-rw-r--r--tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot103
-rw-r--r--tests/vpp/device/crypto/eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot101
-rw-r--r--tests/vpp/device/crypto/eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot104
-rw-r--r--tests/vpp/device/crypto/eth2p-ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot103
-rw-r--r--tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy.robot107
-rw-r--r--tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy.robot107
-rw-r--r--tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-scapy.robot109
-rw-r--r--tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha-scapy.robot107
-rwxr-xr-xtests/vpp/device/crypto/ethip4/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/crypto/ethip6/2n1l-10ge2p1x710-ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha-scapy.robot110
-rw-r--r--tests/vpp/device/crypto/ethip6/2n1l-10ge2p1x710-ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha-scapy.robot109
-rwxr-xr-xtests/vpp/device/crypto/ethip6/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-gtpu-scapy.robot127
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ipsec-ah-scapy.robot127
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ipsec-esp-scapy.robot127
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-l2tpv3oip-scapy.robot128
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ntuple-tcp-scapy.robot128
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ntuple-udp-scapy.robot128
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-tcp-scapy.robot123
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-udp-scapy.robot123
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-ntuple-tcp-scapy.robot128
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-ntuple-udp-scapy.robot128
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-tcp-scapy.robot123
-rw-r--r--tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-udp-scapy.robot123
-rwxr-xr-xtests/vpp/device/flow/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethicmp4-ip4base-eth-1tap-namespace-scapy.robot117
-rw-r--r--tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethicmp4-ip4base-eth-1tap-scapy.robot112
-rw-r--r--tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2tap-scapy.robot100
-rw-r--r--tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot104
-rw-r--r--tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-namespace-dev.robot110
-rw-r--r--tests/vpp/device/interfaces/eth2p-ethipv4-l2bdbasemaclrn-eth-2tap-dev.robot93
-rwxr-xr-xtests/vpp/device/interfaces/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-scapy.robot92
-rw-r--r--tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlblklistbase-scapy.robot92
-rw-r--r--tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-scapy.robot96
-rw-r--r--tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-scapy.robot92
-rw-r--r--tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-scapy.robot91
-rw-r--r--tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44det-scapy.robot117
-rw-r--r--tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-scapy.robot120
-rw-r--r--tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-scapy.robot117
-rw-r--r--tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-scapy.robot120
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4-ip4base-adlalwlistbase-dev.robot86
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4-ip4base-adlblklistbase-dev.robot86
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4-ip4base-iacldstbase-dev.robot90
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-dev.robot85
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4tcp-nat44det-dev.robot111
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4tcp-nat44ed-dev.robot114
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4udp-nat44det-dev.robot111
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4udp-nat44ed-dev.robot114
-rw-r--r--tests/vpp/device/ip4/eth2p-ethipv4-ip4base-dev.robot83
-rwxr-xr-xtests/vpp/device/ip4/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-scapy.robot112
-rw-r--r--tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-scapy.robot91
-rw-r--r--tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2xcbase-scapy.robot90
-rw-r--r--tests/vpp/device/ip4_tunnels/eth2p-ethip4--ethip4udpgeneve-1tun-ip4base-dev.robot107
-rw-r--r--tests/vpp/device/ip4_tunnels/eth2p-ethip4vxlan-l2bdbasemaclrn-dev.robot85
-rw-r--r--tests/vpp/device/ip4_tunnels/eth2p-ethip4vxlan-l2xcbase-dev.robot84
-rw-r--r--tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lisp-ip4base-scapy.robot97
-rw-r--r--tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lispgpe-ip4base-scapy.robot98
-rw-r--r--tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lispgpe-ip6base-scapy.robot100
-rw-r--r--tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lisp-ip4base-dev.robot91
-rw-r--r--tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lispgpe-ip4base-dev.robot92
-rw-r--r--tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lispgpe-ip6base-dev.robot94
-rwxr-xr-xtests/vpp/device/ip4_tunnels/lisp/regenerate_testcases.py18
-rwxr-xr-xtests/vpp/device/ip4_tunnels/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-scapy.robot92
-rw-r--r--tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlblklistbase-scapy.robot92
-rw-r--r--tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-scapy.robot96
-rw-r--r--tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ipolicemarkbase-scapy.robot93
-rw-r--r--tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-scapy.robot90
-rw-r--r--tests/vpp/device/ip6/eth2p-ethip6-ip6base-adlalwlistbase-dev.robot86
-rw-r--r--tests/vpp/device/ip6/eth2p-ethip6-ip6base-adlblklistbase-dev.robot86
-rw-r--r--tests/vpp/device/ip6/eth2p-ethip6-ip6base-iacldstbase-dev.robot90
-rw-r--r--tests/vpp/device/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-dev.robot86
-rw-r--r--tests/vpp/device/ip6/eth2p-ethipv6-ip6base-dev.robot83
-rwxr-xr-xtests/vpp/device/ip6/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/ip6_tunnels/lisp/2n1l-10ge2p1x710-ethip6lispgpe-ip4base-scapy.robot99
-rw-r--r--tests/vpp/device/ip6_tunnels/lisp/2n1l-10ge2p1x710-ethip6lispgpe-ip6base-scapy.robot98
-rw-r--r--tests/vpp/device/ip6_tunnels/lisp/eth2p-ethip6lispgpe-ip4base-dev.robot93
-rw-r--r--tests/vpp/device/ip6_tunnels/lisp/eth2p-ethip6lispgpe-ip6base-dev.robot92
-rwxr-xr-xtests/vpp/device/ip6_tunnels/lisp/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-iacl1sf-scapy.robot104
-rw-r--r--tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-iacl1sl-scapy.robot104
-rw-r--r--tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-macip-iacl1sl-scapy.robot105
-rw-r--r--tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-oacl1sf-scapy.robot104
-rw-r--r--tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-oacl1sl-scapy.robot104
-rw-r--r--tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-scapy.robot88
-rw-r--r--tests/vpp/device/l2bd/eth2p-avf-dot1qip4-l2bdbasemaclrn-dev.robot83
-rw-r--r--tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-dev.robot82
-rw-r--r--tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-iacl1sf-dev.robot98
-rw-r--r--tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-iacl1sl-dev.robot98
-rw-r--r--tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-macip-iacl1sl-dev.robot99
-rw-r--r--tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-oacl1sf-dev.robot98
-rw-r--r--tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-oacl1sl-dev.robot98
-rwxr-xr-xtests/vpp/device/l2bd/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/l2patch/2n1l-10ge2p1x710-ethip4-l2patch-scapy.robot88
-rw-r--r--tests/vpp/device/l2patch/eth2p-ethip4-l2patch-dev.robot81
-rwxr-xr-xtests/vpp/device/l2patch/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/l2xc/2n1l-10ge2p1x710-ethip4-l2xcbase-scapy.robot88
-rw-r--r--tests/vpp/device/l2xc/eth2p-ethipv4-l2xcbase-dev.robot82
-rwxr-xr-xtests/vpp/device/l2xc/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-scapy.robot108
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-scapy.robot112
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-scapy.robot112
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-scapy.robot127
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-scapy.robot127
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-scapy.robot128
-rw-r--r--tests/vpp/device/srv6/eth2p-ethip6ip6-ip6base-srv6enc1sid-dev.robot103
-rw-r--r--tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6enc2sids-dev.robot107
-rw-r--r--tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-dev.robot107
-rw-r--r--tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-dyn-dev.robot121
-rw-r--r--tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-masq-dev.robot121
-rw-r--r--tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-stat-dev.robot122
-rwxr-xr-xtests/vpp/device/srv6/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/stats/eth2p-ethipv4-l2xcbase-stats-dev.robot104
-rw-r--r--tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhost-1vm-scapy.robot103
-rw-r--r--tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2vhost-1vm-scapy.robot104
-rw-r--r--tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2vhost-1vm-scapy.robot102
-rwxr-xr-xtests/vpp/device/vm_vhost/ethip4/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/vm_vhost/ethip6/2n1l-10ge2p1x710-ethip6-ip6base-eth-2vhost-1vm-scapy.robot103
-rwxr-xr-xtests/vpp/device/vm_vhost/ethip6/regenerate_testcases.py18
-rw-r--r--tests/vpp/device/vm_vhost/ip4/eth2p-ethipv4-ip4base-eth-2vhost-1vm-dev.robot95
-rw-r--r--tests/vpp/device/vm_vhost/ip6/eth2p-ethipv6-ip6base-eth-2vhost-1vm-dev.robot96
-rw-r--r--tests/vpp/device/vm_vhost/l2bd/eth2p-ethipv4-l2bdbasemaclrn-eth-2vhost-1vm-dev.robot95
-rw-r--r--tests/vpp/device/vm_vhost/l2xc/eth2p-ethipv4-l2xcbase-eth-2vhost-1vm-dev.robot93
-rw-r--r--tests/vpp/perf/__init__.robot43
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot63
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-ndrpdr.robot50
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/container_memif/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot63
-rw-r--r--tests/vpp/perf/container_memif/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr.robot163
-rw-r--r--tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr.robot153
-rw-r--r--tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr.robot153
-rw-r--r--tests/vpp/perf/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr.robot153
-rwxr-xr-xtests/vpp/perf/container_memif/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot177
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot173
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot75
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot176
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr.robot176
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot154
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot151
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr.robot164
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr.robot164
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr.robot164
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot164
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot163
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot79
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot76
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot76
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot163
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot163
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr.robot163
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot78
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr.robot181
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr.robot179
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot75
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot164
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot164
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot74
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr.robot173
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot154
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot151
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot154
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot151
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot154
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot151
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr.robot164
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr.robot164
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot160
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot160
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr.robot164
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot164
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot163
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot79
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot76
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot77
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot162
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot162
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr.robot163
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot78
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot75
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-ndrpdr.robot74
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr.robot162
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot74
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot75
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot176
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr.robot162
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr.robot162
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot73
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot70
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot70
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot75
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot168
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot163
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot79
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot76
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot76
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot75
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr.robot72
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot168
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr.robot176
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot170
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot162
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot162
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot174
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.robot162
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot154
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot151
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot154
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot151
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot154
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot151
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot154
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot151
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf.robot172
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf.robot172
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf.robot172
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot171
-rwxr-xr-xtests/vpp/perf/crypto/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot117
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3.robot112
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot117
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3.robot112
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot126
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3.robot121
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr.robot126
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3.robot121
-rwxr-xr-xtests/vpp/perf/gso/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot21
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot21
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot21
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot21
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot73
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot23
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot21
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot21
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot21
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot74
-rw-r--r--tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps.robot128
-rw-r--r--tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps.robot128
-rwxr-xr-xtests/vpp/perf/hoststack/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-dot1q-ip4base-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale600k-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale600k-rnd-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale60k-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale60k-rnd-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale6m-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale6m-rnd-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100flows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-dot1q-ip4base-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot50
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot52
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot52
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot52
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot52
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.robot116
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr.robot147
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.robot116
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr.robot147
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.robot116
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr.robot147
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.robot116
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr.robot147
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.robot116
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr.robot147
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.robot135
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.robot135
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.robot137
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot173
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.robot135
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.robot137
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot173
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.robot116
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.robot116
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.robot116
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.robot116
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.robot116
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1-p1-s1-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.robot135
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.robot135
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.robot137
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot173
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.robot135
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.robot137
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.robot51
-rwxr-xr-xtests/vpp/perf/ip4/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr.robot60
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpuhw-ip4base-ndrpdr.robot146
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-ndrpdr.robot143
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-reassembly-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip4-ip4base-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip6-ip4base-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard100tnlsw-ip4base-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1tnlsw-ip4base-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard2tnlsw-ip4base-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard4tnlsw-ip4base-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr.robot170
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard8tnlsw-ip4base-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1024tun-ip4base-ndrpdr.robot57
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr.robot58
-rwxr-xr-xtests/vpp/perf/ip4_tunnels/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-dot1q-ip6base-ndrpdr.robot61
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot57
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot57
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot57
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot57
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot57
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot57
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot57
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale600k-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale600k-rnd-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale60k-ndrpdr.robot144
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale60k-rnd-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale6m-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale6m-rnd-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-dot1q-ip6base-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot144
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot56
-rwxr-xr-xtests/vpp/perf/ip6/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip4-ip6base-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip6-ip6base-ndrpdr.robot51
-rwxr-xr-xtests/vpp/perf/ip6_tunnels/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-dot1ad-l2xcbase-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr.robot60
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr.robot60
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr.robot60
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot52
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr.robot61
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot52
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot52
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot52
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot59
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot53
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-ndrpdr.robot47
-rwxr-xr-xtests/vpp/perf/l2/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-l3dsr-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-maglev-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-nat4-ndrpdr.robot49
-rwxr-xr-xtests/vpp/perf/lb/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-40mif-20dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr.robot70
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-40mif-20dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr.robot70
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr.robot70
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr.robot70
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr.robot70
-rwxr-xr-xtests/vpp/perf/nfv_density/dcr_memif/chain/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot54
-rwxr-xr-xtests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-20dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr.robot70
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-20dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr.robot70
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr.robot70
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr.robot70
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr2t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr.robot70
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr1t-vppip4-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr2t-vppip4-ndrpdr.robot54
-rwxr-xr-xtests/vpp/perf/nfv_density/dcr_memif/pipeline/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm1t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm2t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-40vh-20vm1t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm1t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm2t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm1t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr.robot64
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-40vh-20vm1t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm1t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr.robot64
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr.robot64
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm1t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm2t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr.robot64
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm1t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm2t-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm1t-vppip4-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr.robot64
-rwxr-xr-xtests/vpp/perf/nfv_density/vm_vhost/chain/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm2t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm1t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm2t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm2t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm2t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm2t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm2t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm2t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm2t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm2t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm2t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm1t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm2t-testpmd-ndrpdr.robot55
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf.robot53
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm2t-testpmd-reconf.robot53
-rwxr-xr-xtests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr.robot64
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr.robot66
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr.robot62
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr.robot64
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr.robot66
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr.robot64
-rwxr-xr-xtests/vpp/perf/srv6/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot54
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot160
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot161
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot157
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot158
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot51
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot49
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot52
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot52
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot58
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot56
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot45
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot45
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot47
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot45
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot45
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2virtiovr1024-1vm-vppip4-ndrpdr.robot45
-rwxr-xr-xtests/vpp/perf/vm_vhost/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr.robot48
-rw-r--r--tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr.robot48
-rwxr-xr-xtests/vpp/perf/vts/regenerate_testcases.py2
-rw-r--r--topologies/available/2n_hw_testbed1.yaml.example2
-rw-r--r--topologies/available/3n_aws.template5
-rw-r--r--topologies/available/3n_azure.template5
-rw-r--r--topologies/available/3n_c6gn.template78
-rw-r--r--topologies/available/3n_c6in.template78
-rw-r--r--topologies/available/3n_hw_testbed1.yaml.example2
-rw-r--r--topologies/available/lf_2n_clx_testbed27.yaml63
-rw-r--r--topologies/available/lf_2n_clx_testbed28.yaml63
-rw-r--r--topologies/available/lf_2n_clx_testbed29.yaml41
-rw-r--r--topologies/available/lf_2n_dnv_testbed26.yaml52
-rw-r--r--topologies/available/lf_2n_icx_testbed212.yaml203
-rw-r--r--topologies/available/lf_2n_icx_testbed213.yaml203
-rw-r--r--topologies/available/lf_2n_icx_testbed214.yaml203
-rw-r--r--topologies/available/lf_2n_icx_testbed215.yaml203
-rw-r--r--topologies/available/lf_2n_skx_testbed21.yaml160
-rw-r--r--topologies/available/lf_2n_skx_testbed22.yaml160
-rw-r--r--topologies/available/lf_2n_skx_testbed23.yaml160
-rw-r--r--topologies/available/lf_2n_skx_testbed24.yaml160
-rw-r--r--topologies/available/lf_2n_spr_testbed23.yaml231
-rw-r--r--topologies/available/lf_2n_spr_testbed24.yaml231
-rw-r--r--topologies/available/lf_2n_tx2_testbed34.yaml10
-rw-r--r--topologies/available/lf_3n_alt_testbed34.yaml132
-rw-r--r--topologies/available/lf_3n_dnv_testbed35.yaml74
-rw-r--r--topologies/available/lf_3n_hsw_testbed1.yaml304
-rw-r--r--topologies/available/lf_3n_hsw_testbed2.yaml304
-rw-r--r--topologies/available/lf_3n_hsw_testbed3.yaml304
-rw-r--r--topologies/available/lf_3n_icx_testbed37.yaml276
-rw-r--r--topologies/available/lf_3n_icx_testbed38.yaml276
-rw-r--r--topologies/available/lf_3n_icxd_testbed31.yaml98
-rw-r--r--topologies/available/lf_3n_icxd_testbed32.yaml98
-rw-r--r--topologies/available/lf_3n_skx_testbed31.yaml222
-rw-r--r--topologies/available/lf_3n_skx_testbed32.yaml222
-rw-r--r--topologies/available/lf_3n_snr_testbed39.yaml146
-rw-r--r--topologies/available/lf_3na_spr_testbed21.yaml262
-rw-r--r--topologies/available/lf_3nb_spr_testbed22.yaml198
-rw-r--r--topologies/available/vagrant.yaml14
-rw-r--r--topologies/available/vpp_device.template42
-rw-r--r--tox-requirements.txt25
-rw-r--r--tox.ini82
4351 files changed, 222848 insertions, 254671 deletions
diff --git a/.gitignore b/.gitignore
index bd08ccda77..c0a62a7a4c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -15,8 +15,11 @@
/archive_dir
/download_dir
/env
-# "generated" is a place for autogenerated data, not to pollute git.
/generated
+/docs/public
+/docs/resources
+/csit.infra.dash/app/cdocs
+.hugo_build.lock
outputs
output.xml
log.html
@@ -25,3 +28,8 @@ report.html
*.pyc
*~
.idea
+.vscode
+*.raw.json
+*.info.json
+.webassets-cache
+bootstrap.css \ No newline at end of file
diff --git a/DPDK_VPP_VER b/DPDK_VPP_VER
index 2315586c7e..ec06286257 100644
--- a/DPDK_VPP_VER
+++ b/DPDK_VPP_VER
@@ -1 +1 @@
-dpdk-20.11
+dpdk-23.11
diff --git a/GPL/tools/trex/trex_astf_assert.py b/GPL/tools/trex/trex_astf_assert.py
index 3824fa12df..107253f5f0 100644
--- a/GPL/tools/trex/trex_astf_assert.py
+++ b/GPL/tools/trex/trex_astf_assert.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -38,9 +38,9 @@ Functionality:
import sys
sys.path.insert(
- 0, u"/opt/trex-core-2.86/scripts/automation/trex_control_plane/interactive/"
+ 0, u"/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
-from trex.astf.api import *
+from trex.astf.api import ASTFClient, TRexError
def main():
diff --git a/GPL/tools/trex/trex_astf_profile.py b/GPL/tools/trex/trex_astf_profile.py
index 6faa2c008f..44d81e92f9 100644
--- a/GPL/tools/trex/trex_astf_profile.py
+++ b/GPL/tools/trex/trex_astf_profile.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -34,9 +34,9 @@ import sys
import time
sys.path.insert(
- 0, u"/opt/trex-core-2.86/scripts/automation/trex_control_plane/interactive/"
+ 0, u"/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
-from trex.astf.api import *
+from trex.astf.api import ASTFClient, ASTFProfile, TRexError
def fmt_latency(lat_min, lat_avg, lat_max, hdrh):
@@ -73,12 +73,14 @@ def simple_burst(
profile_file,
duration,
framesize,
+ n_data_frames,
multiplier,
port_0,
port_1,
latency,
async_start=False,
traffic_directions=2,
+ delay=0.0,
):
"""Send traffic and measure packet loss and latency.
@@ -98,8 +100,9 @@ def simple_burst(
Duration details:
Contrary to stateless mode, ASTF profiles typically limit the number
of flows/transactions that can happen.
- The caller is expected to set the duration parameter accordingly to
- this limit and multiplier, including any overheads.
+ The caller is expected to set the duration parameter to idealized value,
+ but set the delay arguments when TRex is expected
+ to finish processing replies later (including a window for latency).
See *_traffic_duration output fields for TRex's measurement
of the real traffic duration (should be without any inactivity overheads).
If traffic has not ended by the final time, the traffic
@@ -111,27 +114,27 @@ def simple_burst(
:param profile_file: A python module with T-rex traffic profile.
:param duration: Expected duration for all transactions to finish,
- assuming only tolerable duration stretching happens.
- This includes later start of later transactions
- (according to TPS multiplier) and expected duration of each transaction.
- Critically, this also includes any delay TRex shows when starting
- traffic (but not the similar delay during stopping).
+ without any TRex related delays, without even latency.
:param framesize: Frame size.
+ :param n_data_frames: Controls "size" of transaction for TPUT tests.
:param multiplier: Multiplier of profile CPS.
:param port_0: Port 0 on the traffic generator.
:param port_1: Port 1 on the traffic generator.
:param latency: With latency stats.
:param async_start: Start the traffic and exit.
:param traffic_directions: Bidirectional (2) or unidirectional (1) traffic.
+ :param delay: Time increase [s] for sleep duration.
:type profile_file: str
:type duration: float
:type framesize: int or str
+ :type n_data_frames: int
:type multiplier: int
:type port_0: int
:type port_1: int
:type latency: bool
:type async_start: bool
:type traffic_directions: int
+ :type delay: float
"""
client = None
total_received = 0
@@ -151,7 +154,11 @@ def simple_burst(
# TODO: key-values pairs to the profile file
# - ips ?
print(f"### Profile file:\n{profile_file}")
- profile = ASTFProfile.load(profile_file, framesize=framesize)
+ profile = ASTFProfile.load(
+ profile_file,
+ framesize=framesize,
+ n_data_frames=n_data_frames,
+ )
except TRexError:
print(f"Error while loading profile '{profile_file}'!")
raise
@@ -167,9 +174,7 @@ def simple_burst(
# Load the profile.
client.load_profile(profile)
- ports = [port_0]
- if traffic_directions > 1:
- ports.append(port_1)
+ ports = [port_0, port_1]
# Clear the stats before injecting.
lost_a = 0
@@ -179,25 +184,21 @@ def simple_burst(
# Choose CPS and start traffic.
client.start(
mult=multiplier,
- # Increase the input duration slightly,
- # to ensure it does not end before sleep&stop below happens.
- duration=duration + 0.1 if duration > 0 else duration,
+ duration=duration,
nc=True,
latency_pps=int(multiplier) if latency else 0,
client_mask=2**len(ports)-1,
)
- time_start = time.monotonic()
+ time_stop = time.monotonic() + duration + delay
if async_start:
# For async stop, we need to export the current snapshot.
xsnap0 = client.ports[port_0].get_xstats().reference_stats
print(f"Xstats snapshot 0: {xsnap0!r}")
- if traffic_directions > 1:
- xsnap1 = client.ports[port_1].get_xstats().reference_stats
- print(f"Xstats snapshot 1: {xsnap1!r}")
+ xsnap1 = client.ports[port_1].get_xstats().reference_stats
+ print(f"Xstats snapshot 1: {xsnap1!r}")
else:
- time.sleep(duration)
-
+ time.sleep(duration + delay)
# Do not block yet, the existing transactions may take long time
# to finish. We need an action that is almost reset(),
# but without clearing stats.
@@ -208,7 +209,7 @@ def simple_burst(
client.stop(block=True)
# Read the stats after the traffic stopped (or time up).
- stats[time.monotonic() - time_start] = client.get_stats(
+ stats[time.monotonic() - time_stop] = client.get_stats(
ports=ports
)
@@ -216,17 +217,15 @@ def simple_burst(
for warning in client.get_warnings():
print(warning)
- # Now finish the complete reset.
- client.reset()
+ # No profile cleanup here, reset will be done in the finally block.
print(u"##### Statistics #####")
print(json.dumps(stats, indent=4, separators=(u",", u": ")))
- approximated_duration = list(sorted(stats.keys()))[-1]
+ approximated_duration = duration + list(sorted(stats.keys()))[-1]
stats = stats[sorted(stats.keys())[-1]]
lost_a = stats[port_0][u"opackets"] - stats[port_1][u"ipackets"]
- if traffic_directions > 1:
- lost_b = stats[port_1][u"opackets"] - stats[port_0][u"ipackets"]
+ lost_b = stats[port_1][u"opackets"] - stats[port_0][u"ipackets"]
# TODO: Latency measurement not used at this phase. This part will
# be aligned in another commit.
@@ -246,131 +245,126 @@ def simple_burst(
str(lat_obj[u"max_usec"]), u"-")
lat_b_hist = str(lat_obj[u"histogram"])
- if traffic_directions > 1:
- total_sent = \
- stats[port_0][u"opackets"] + stats[port_1][u"opackets"]
- total_received = \
- stats[port_0][u"ipackets"] + stats[port_1][u"ipackets"]
- client_sent = stats[port_0][u"opackets"]
- client_received = stats[port_0][u"ipackets"]
- client_stats = stats[u"traffic"][u"client"]
- server_stats = stats[u"traffic"][u"server"]
- # Some zero counters are not sent
- # Active and established flows UDP/TCP
+ total_sent = \
+ stats[port_0][u"opackets"] + stats[port_1][u"opackets"]
+ total_received = \
+ stats[port_0][u"ipackets"] + stats[port_1][u"ipackets"]
+ client_sent = stats[port_0][u"opackets"]
+ client_received = stats[port_0][u"ipackets"]
+ client_stats = stats[u"traffic"][u"client"]
+ server_stats = stats[u"traffic"][u"server"]
+ # Some zero counters are not sent
+ # Active and established flows UDP/TCP
+ # Client
+ c_act_flows = client_stats[u"m_active_flows"]
+ c_est_flows = client_stats[u"m_est_flows"]
+ c_traffic_duration = client_stats.get(u"m_traffic_duration", 0)
+ l7_data = f"client_active_flows={c_act_flows}; "
+ l7_data += f"client_established_flows={c_est_flows}; "
+ l7_data += f"client_traffic_duration={c_traffic_duration}; "
+ # Possible errors
+ # Too many packets in NIC rx queue
+ c_err_rx_throttled = client_stats.get(u"err_rx_throttled", 0)
+ l7_data += f"client_err_rx_throttled={c_err_rx_throttled}; "
+ # Number of client side flows that were not opened
+ # due to flow-table overflow
+ c_err_nf_throttled = client_stats.get(u"err_c_nf_throttled", 0)
+ l7_data += f"client_err_nf_throttled={c_err_nf_throttled}; "
+ # Too many flows
+ c_err_flow_overflow = client_stats.get(u"err_flow_overflow", 0)
+ l7_data += f"client_err_flow_overflow={c_err_flow_overflow}; "
+ # Server
+ s_act_flows = server_stats[u"m_active_flows"]
+ s_est_flows = server_stats[u"m_est_flows"]
+ s_traffic_duration = server_stats.get(u"m_traffic_duration", 0)
+ l7_data += f"server_active_flows={s_act_flows}; "
+ l7_data += f"server_established_flows={s_est_flows}; "
+ l7_data += f"server_traffic_duration={s_traffic_duration}; "
+ # Possible errors
+ # Too many packets in NIC rx queue
+ s_err_rx_throttled = server_stats.get(u"err_rx_throttled", 0)
+ l7_data += f"client_err_rx_throttled={s_err_rx_throttled}; "
+ if u"udp" in profile_file:
# Client
- c_act_flows = client_stats[u"m_active_flows"]
- c_est_flows = client_stats[u"m_est_flows"]
- c_traffic_duration = client_stats.get(u"m_traffic_duration", 0)
- l7_data = f"client_active_flows={c_act_flows}; "
- l7_data += f"client_established_flows={c_est_flows}; "
- l7_data += f"client_traffic_duration={c_traffic_duration}; "
- # Possible errors
- # Too many packets in NIC rx queue
- c_err_rx_throttled = client_stats.get(u"err_rx_throttled", 0)
- l7_data += f"client_err_rx_throttled={c_err_rx_throttled}; "
- # Number of client side flows that were not opened
- # due to flow-table overflow
- c_err_nf_throttled = client_stats.get(u"err_c_nf_throttled", 0)
- l7_data += f"client_err_nf_throttled={c_err_nf_throttled}; "
- # Too many flows
- c_err_flow_overflow = client_stats.get(u"err_flow_overflow", 0)
- l7_data += f"client_err_flow_overflow={c_err_flow_overflow}; "
+ # Established connections
+ c_udp_connects = client_stats.get(u"udps_connects", 0)
+ l7_data += f"client_udp_connects={c_udp_connects}; "
+ # Closed connections
+ c_udp_closed = client_stats.get(u"udps_closed", 0)
+ l7_data += f"client_udp_closed={c_udp_closed}; "
+ # Sent bytes
+ c_udp_sndbyte = client_stats.get(u"udps_sndbyte", 0)
+ l7_data += f"client_udp_tx_bytes={c_udp_sndbyte}; "
+ # Sent packets
+ c_udp_sndpkt = client_stats.get(u"udps_sndpkt", 0)
+ l7_data += f"client_udp_tx_packets={c_udp_sndpkt}; "
+ # Received bytes
+ c_udp_rcvbyte = client_stats.get(u"udps_rcvbyte", 0)
+ l7_data += f"client_udp_rx_bytes={c_udp_rcvbyte}; "
+ # Received packets
+ c_udp_rcvpkt = client_stats.get(u"udps_rcvpkt", 0)
+ l7_data += f"client_udp_rx_packets={c_udp_rcvpkt}; "
+ # Keep alive drops
+ c_udp_keepdrops = client_stats.get(u"udps_keepdrops", 0)
+ l7_data += f"client_udp_keep_drops={c_udp_keepdrops}; "
+ # Client without flow
+ c_err_cwf = client_stats.get(u"err_cwf", 0)
+ l7_data += f"client_err_cwf={c_err_cwf}; "
# Server
- s_act_flows = server_stats[u"m_active_flows"]
- s_est_flows = server_stats[u"m_est_flows"]
- s_traffic_duration = server_stats.get(u"m_traffic_duration", 0)
- l7_data += f"server_active_flows={s_act_flows}; "
- l7_data += f"server_established_flows={s_est_flows}; "
- l7_data += f"server_traffic_duration={s_traffic_duration}; "
- # Possible errors
- # Too many packets in NIC rx queue
- s_err_rx_throttled = server_stats.get(u"err_rx_throttled", 0)
- l7_data += f"client_err_rx_throttled={s_err_rx_throttled}; "
- if u"udp" in profile_file:
- # Client
- # Established connections
- c_udp_connects = client_stats.get(u"udps_connects", 0)
- l7_data += f"client_udp_connects={c_udp_connects}; "
- # Closed connections
- c_udp_closed = client_stats.get(u"udps_closed", 0)
- l7_data += f"client_udp_closed={c_udp_closed}; "
- # Sent bytes
- c_udp_sndbyte = client_stats.get(u"udps_sndbyte", 0)
- l7_data += f"client_udp_tx_bytes={c_udp_sndbyte}; "
- # Sent packets
- c_udp_sndpkt = client_stats.get(u"udps_sndpkt", 0)
- l7_data += f"client_udp_tx_packets={c_udp_sndpkt}; "
- # Received bytes
- c_udp_rcvbyte = client_stats.get(u"udps_rcvbyte", 0)
- l7_data += f"client_udp_rx_bytes={c_udp_rcvbyte}; "
- # Received packets
- c_udp_rcvpkt = client_stats.get(u"udps_rcvpkt", 0)
- l7_data += f"client_udp_rx_packets={c_udp_rcvpkt}; "
- # Keep alive drops
- c_udp_keepdrops = client_stats.get(u"udps_keepdrops", 0)
- l7_data += f"client_udp_keep_drops={c_udp_keepdrops}; "
- # Client without flow
- c_err_cwf = client_stats.get(u"err_cwf", 0)
- l7_data += f"client_err_cwf={c_err_cwf}; "
- # Server
- # Accepted connections
- s_udp_accepts = server_stats.get(u"udps_accepts", 0)
- l7_data += f"server_udp_accepts={s_udp_accepts}; "
- # Closed connections
- s_udp_closed = server_stats.get(u"udps_closed", 0)
- l7_data += f"server_udp_closed={s_udp_closed}; "
- # Sent bytes
- s_udp_sndbyte = server_stats.get(u"udps_sndbyte", 0)
- l7_data += f"server_udp_tx_bytes={s_udp_sndbyte}; "
- # Sent packets
- s_udp_sndpkt = server_stats.get(u"udps_sndpkt", 0)
- l7_data += f"server_udp_tx_packets={s_udp_sndpkt}; "
- # Received bytes
- s_udp_rcvbyte = server_stats.get(u"udps_rcvbyte", 0)
- l7_data += f"server_udp_rx_bytes={s_udp_rcvbyte}; "
- # Received packets
- s_udp_rcvpkt = server_stats.get(u"udps_rcvpkt", 0)
- l7_data += f"server_udp_rx_packets={s_udp_rcvpkt}; "
- elif u"tcp" in profile_file:
- # Client
- # Connection attempts
- c_tcp_connattempt = client_stats.get(u"tcps_connattempt", 0)
- l7_data += f"client_tcp_connattempt={c_tcp_connattempt}; "
- # Established connections
- c_tcp_connects = client_stats.get(u"tcps_connects", 0)
- l7_data += f"client_tcp_connects={c_tcp_connects}; "
- # Closed connections
- c_tcp_closed = client_stats.get(u"tcps_closed", 0)
- l7_data += f"client_tcp_closed={c_tcp_closed}; "
- # Send bytes
- c_tcp_sndbyte = client_stats.get(u"tcps_sndbyte", 0)
- l7_data += f"client_tcp_tx_bytes={c_tcp_sndbyte}; "
- # Received bytes
- c_tcp_rcvbyte = client_stats.get(u"tcps_rcvbyte", 0)
- l7_data += f"client_tcp_rx_bytes={c_tcp_rcvbyte}; "
- # Server
- # Accepted connections
- s_tcp_accepts = server_stats.get(u"tcps_accepts", 0)
- l7_data += f"server_tcp_accepts={s_tcp_accepts}; "
- # Established connections
- s_tcp_connects = server_stats.get(u"tcps_connects", 0)
- l7_data += f"server_tcp_connects={s_tcp_connects}; "
- # Closed connections
- s_tcp_closed = server_stats.get(u"tcps_closed", 0)
- l7_data += f"server_tcp_closed={s_tcp_closed}; "
- # Sent bytes
- s_tcp_sndbyte = server_stats.get(u"tcps_sndbyte", 0)
- l7_data += f"server_tcp_tx_bytes={s_tcp_sndbyte}; "
- # Received bytes
- s_tcp_rcvbyte = server_stats.get(u"tcps_rcvbyte", 0)
- l7_data += f"server_tcp_rx_bytes={s_tcp_rcvbyte}; "
- else:
- total_sent = stats[port_0][u"opackets"]
- total_received = stats[port_1][u"ipackets"]
+ # Accepted connections
+ s_udp_accepts = server_stats.get(u"udps_accepts", 0)
+ l7_data += f"server_udp_accepts={s_udp_accepts}; "
+ # Closed connections
+ s_udp_closed = server_stats.get(u"udps_closed", 0)
+ l7_data += f"server_udp_closed={s_udp_closed}; "
+ # Sent bytes
+ s_udp_sndbyte = server_stats.get(u"udps_sndbyte", 0)
+ l7_data += f"server_udp_tx_bytes={s_udp_sndbyte}; "
+ # Sent packets
+ s_udp_sndpkt = server_stats.get(u"udps_sndpkt", 0)
+ l7_data += f"server_udp_tx_packets={s_udp_sndpkt}; "
+ # Received bytes
+ s_udp_rcvbyte = server_stats.get(u"udps_rcvbyte", 0)
+ l7_data += f"server_udp_rx_bytes={s_udp_rcvbyte}; "
+ # Received packets
+ s_udp_rcvpkt = server_stats.get(u"udps_rcvpkt", 0)
+ l7_data += f"server_udp_rx_packets={s_udp_rcvpkt}; "
+ elif u"tcp" in profile_file:
+ # Client
+ # Connection attempts
+ c_tcp_connattempt = client_stats.get(u"tcps_connattempt", 0)
+ l7_data += f"client_tcp_connattempt={c_tcp_connattempt}; "
+ # Established connections
+ c_tcp_connects = client_stats.get(u"tcps_connects", 0)
+ l7_data += f"client_tcp_connects={c_tcp_connects}; "
+ # Closed connections
+ c_tcp_closed = client_stats.get(u"tcps_closed", 0)
+ l7_data += f"client_tcp_closed={c_tcp_closed}; "
+ # Send bytes
+ c_tcp_sndbyte = client_stats.get(u"tcps_sndbyte", 0)
+ l7_data += f"client_tcp_tx_bytes={c_tcp_sndbyte}; "
+ # Received bytes
+ c_tcp_rcvbyte = client_stats.get(u"tcps_rcvbyte", 0)
+ l7_data += f"client_tcp_rx_bytes={c_tcp_rcvbyte}; "
+ # Server
+ # Accepted connections
+ s_tcp_accepts = server_stats.get(u"tcps_accepts", 0)
+ l7_data += f"server_tcp_accepts={s_tcp_accepts}; "
+ # Established connections
+ s_tcp_connects = server_stats.get(u"tcps_connects", 0)
+ l7_data += f"server_tcp_connects={s_tcp_connects}; "
+ # Closed connections
+ s_tcp_closed = server_stats.get(u"tcps_closed", 0)
+ l7_data += f"server_tcp_closed={s_tcp_closed}; "
+ # Sent bytes
+ s_tcp_sndbyte = server_stats.get(u"tcps_sndbyte", 0)
+ l7_data += f"server_tcp_tx_bytes={s_tcp_sndbyte}; "
+ # Received bytes
+ s_tcp_rcvbyte = server_stats.get(u"tcps_rcvbyte", 0)
+ l7_data += f"server_tcp_rx_bytes={s_tcp_rcvbyte}; "
print(f"packets lost from {port_0} --> {port_1}: {lost_a} pkts")
- if traffic_directions > 1:
- print(f"packets lost from {port_1} --> {port_0}: {lost_b} pkts")
+ print(f"packets lost from {port_1} --> {port_0}: {lost_b} pkts")
except TRexError:
print(u"T-Rex ASTF runtime error!", file=sys.stderr)
@@ -381,7 +375,7 @@ def simple_burst(
if async_start:
client.disconnect(stop_traffic=False, release_ports=True)
else:
- client.clear_profile()
+ client.reset()
client.disconnect()
print(
f"multiplier={multiplier!r}; "
@@ -419,6 +413,10 @@ def main():
help=u"Size of a Frame without padding and IPG."
)
parser.add_argument(
+ u"--n_data_frames", type=int, default=5,
+ help=u"Use this many data frames per transaction and direction (TPUT)."
+ )
+ parser.add_argument(
u"-m", u"--multiplier", required=True, type=float,
help=u"Multiplier of profile CPS."
)
@@ -442,6 +440,10 @@ def main():
u"--traffic_directions", type=int, default=2,
help=u"Send bi- (2) or uni- (1) directional traffic."
)
+ parser.add_argument(
+ u"--delay", required=True, type=float, default=0.0,
+ help=u"Allowed time overhead, sleep time is increased by this [s]."
+ )
args = parser.parse_args()
@@ -454,12 +456,14 @@ def main():
profile_file=args.profile,
duration=args.duration,
framesize=framesize,
+ n_data_frames=args.n_data_frames,
multiplier=args.multiplier,
port_0=args.port_0,
port_1=args.port_1,
latency=args.latency,
async_start=args.async_start,
traffic_directions=args.traffic_directions,
+ delay=args.delay,
)
diff --git a/GPL/tools/trex/trex_astf_stop.py b/GPL/tools/trex/trex_astf_stop.py
index 820905ec6c..73c058390c 100644
--- a/GPL/tools/trex/trex_astf_stop.py
+++ b/GPL/tools/trex/trex_astf_stop.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -30,11 +30,6 @@ Requirements:
- compiled and running T-REX process (eg. ./t-rex-64 -i)
- trex.astf.api library
- Script must be executed on a node with T-REX instance
-
-Functionality:
-1. Stop any running traffic
-2. Optionally restore reference counter values.
-3. Return conter differences.
"""
import argparse
@@ -44,75 +39,63 @@ import sys
from collections import OrderedDict # Needed to parse xstats representation.
sys.path.insert(
- 0, u"/opt/trex-core-2.86/scripts/automation/trex_control_plane/interactive/"
+ 0, "/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
-from trex.astf.api import *
+from trex.astf.api import ASTFClient
def main():
"""Stop traffic if any is running. Report xstats."""
parser = argparse.ArgumentParser()
parser.add_argument(
- u"--xstat0", type=str, default=u"",
- help=u"Reference xstat object if any."
- )
- parser.add_argument(
- u"--xstat1", type=str, default=u"",
- help=u"Reference xstat object if any."
+ "--xstat", type=str, nargs="*", help="Reference xstat object if any."
)
args = parser.parse_args()
client = ASTFClient()
try:
- # connect to server
client.connect()
-
client.acquire(force=True)
client.stop()
+ xstats = list()
# Read the stats after the test,
# we need to update values before the last trial started.
- if args.xstat0:
- snapshot = eval(args.xstat0)
- client.ports[0].get_xstats().reference_stats = snapshot
- if args.xstat1:
- snapshot = eval(args.xstat1)
- client.ports[1].get_xstats().reference_stats = snapshot
- # Now we can call the official method to get differences.
- xstats0 = client.get_xstats(0)
- xstats1 = client.get_xstats(1)
-
- # If TRexError happens, let the script fail with stack trace.
+ for i in range(len(client.ports)):
+ if args.xstat[i]:
+ snapshot = eval(args.xstat[i])
+ client.ports[i].get_xstats().reference_stats = snapshot
+ # Now we can call the official method to get differences.
+ xstats.append(client.get_xstats(i))
+ print(f"##### statistics port {i} #####")
+ print(json.dumps(xstats[i], indent=4, separators=(",", ": ")))
finally:
- client.clear_profile()
+ client.reset()
client.disconnect()
- # TODO: check xstats format
- print(u"##### statistics port 0 #####")
- print(json.dumps(xstats0, indent=4, separators=(u",", u": ")))
- print(u"##### statistics port 1 #####")
- print(json.dumps(xstats1, indent=4, separators=(u",", u": ")))
-
- tx_0, rx_0 = xstats0[u"tx_good_packets"], xstats0[u"rx_good_packets"]
- tx_1, rx_1 = xstats1[u"tx_good_packets"], xstats1[u"rx_good_packets"]
- lost_a, lost_b = tx_0 - rx_1, tx_1 - rx_0
+ for idx,stat in enumerate(zip(xstats[0::2], xstats[1::2])):
+ lost_r = stat[0]["tx_good_packets"] - stat[1]["rx_good_packets"]
+ lost_l = stat[1]["tx_good_packets"] - stat[0]["rx_good_packets"]
+ print(f"packets lost from {idx*2} --> {idx*2+1}: {lost_r} pkts")
+ print(f"packets lost from {idx*2+1} --> {idx*2}: {lost_l} pkts")
- print(f"packets lost from 0 --> 1: {lost_a} pkts")
- print(f"packets lost from 1 --> 0: {lost_b} pkts")
+ total_rcvd = 0
+ total_sent = 0
+ for stat in xstats:
+ total_rcvd += stat["rx_good_packets"]
+ total_sent += stat["tx_good_packets"]
- total_rcvd, total_sent = rx_0 + rx_1, tx_0 + tx_1
- total_lost = total_sent - total_rcvd
print(
f"cps='unknown'; "
f"total_received={total_rcvd}; "
f"total_sent={total_sent}; "
- f"frame_loss={total_lost}; "
+ f"frame_loss={total_sent - total_rcvd}; "
f"latency_stream_0(usec)=-1/-1/-1; "
f"latency_stream_1(usec)=-1/-1/-1; "
- f"latency_hist_stream_0={}; "
- f"latency_hist_stream_1={}; "
+ f"latency_hist_stream_0=; "
+ f"latency_hist_stream_1=; "
)
-if __name__ == u"__main__":
+if __name__ == "__main__":
main()
diff --git a/GPL/tools/trex/trex_stl_assert.py b/GPL/tools/trex/trex_stl_assert.py
index 1bd428dc12..d4a092b4b9 100644
--- a/GPL/tools/trex/trex_stl_assert.py
+++ b/GPL/tools/trex/trex_stl_assert.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -30,17 +30,14 @@ Requirements:
- compiled and running T-Rex process (eg. ./t-rex-64 -i)
- trex.stl.api library
- Script must be executed on a node with T-Rex instance.
-
-Functionality:
-1. Verify the API functionality and get server information.
"""
import sys
sys.path.insert(
- 0, u"/opt/trex-core-2.86/scripts/automation/trex_control_plane/interactive/"
+ 0, "/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
-from trex.stl.api import *
+from trex.stl.api import STLClient, STLError
def main():
@@ -59,5 +56,5 @@ def main():
client.disconnect()
-if __name__ == u"__main__":
+if __name__ == "__main__":
main()
diff --git a/GPL/tools/trex/trex_stl_profile.py b/GPL/tools/trex/trex_stl_profile.py
index ba2fc7c6db..ac53e90571 100644
--- a/GPL/tools/trex/trex_stl_profile.py
+++ b/GPL/tools/trex/trex_stl_profile.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -34,9 +34,9 @@ import sys
import time
sys.path.insert(
- 0, u"/opt/trex-core-2.86/scripts/automation/trex_control_plane/interactive/"
+ 0, "/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
-from trex.stl.api import *
+from trex.stl.api import STLClient, STLProfile, STLError
def fmt_latency(lat_min, lat_avg, lat_max, hdrh):
@@ -66,7 +66,7 @@ def fmt_latency(lat_min, lat_avg, lat_max, hdrh):
except ValueError:
t_max = int(-1)
- return u"/".join(str(tmp) for tmp in (t_min, t_avg, t_max, hdrh))
+ return "/".join(str(tmp) for tmp in (t_min, t_avg, t_max, hdrh))
def simple_burst(
@@ -74,12 +74,12 @@ def simple_burst(
duration,
framesize,
rate,
- port_0,
- port_1,
+ ports,
latency,
async_start=False,
traffic_directions=2,
force=False,
+ delay=0.0,
):
"""Send traffic and measure packet loss and latency.
@@ -102,31 +102,29 @@ def simple_burst(
:param framesize: Frame size.
:param duration: Duration of traffic run in seconds (-1=infinite).
:param rate: Traffic rate [percentage, pps, bps].
- :param port_0: Port 0 on the traffic generator.
- :param port_1: Port 1 on the traffic generator.
+ :param ports: Port list on the traffic generator.
:param latency: With latency stats.
:param async_start: Start the traffic and exit.
:param traffic_directions: Bidirectional (2) or unidirectional (1) traffic.
:param force: Force start regardless of ports state.
+ :param delay: Sleep overhead [s].
:type profile_file: str
:type framesize: int or str
:type duration: float
:type rate: str
- :type port_0: int
- :type port_1: int
+ :type ports: list
:type latency: bool
:type async_start: bool
:type traffic_directions: int
:type force: bool
+ :type delay: float
"""
client = None
total_rcvd = 0
total_sent = 0
approximated_duration = 0.0
- lost_a = 0
- lost_b = 0
- lat_a = u"-1/-1/-1/"
- lat_b = u"-1/-1/-1/"
+ lat_a = "-1/-1/-1/"
+ lat_b = "-1/-1/-1/"
# Read the profile:
try:
@@ -146,47 +144,53 @@ def simple_burst(
# Connect to server:
client.connect()
# Prepare our ports (the machine has 0 <--> 1 with static route):
- client.reset(ports=[port_0, port_1])
- client.remove_all_streams(ports=[port_0, port_1])
+ client.reset()
+ client.remove_all_streams()
- if u"macsrc" in profile_file:
- client.set_port_attr(ports=[port_0, port_1], promiscuous=True)
+ if "macsrc" in profile_file:
+ client.set_port_attr(promiscuous=True)
if isinstance(framesize, int):
- last_stream_a = int((len(streams) - 2 ) / 2)
- last_stream_b = (last_stream_a * 2)
- client.add_streams(streams[0:last_stream_a], ports=[port_0])
+ mark_a = len(streams) // 4
+ mark_b = len(streams) // 2
+ for i,j in zip(streams[:mark_a], ports[::2]):
+ client.add_streams(streams=[i], ports=[j])
if traffic_directions > 1:
- client.add_streams(
- streams[last_stream_a:last_stream_b], ports=[port_1])
+ for i,j in zip(streams[mark_a:mark_b], ports[1::2]):
+ print(i, j)
+ client.add_streams(streams=[i], ports=[j])
elif isinstance(framesize, str):
- client.add_streams(streams[0:3], ports=[port_0])
+ mark = 0
+ for i in ports[::2]:
+ client.add_streams(streams=streams[mark:mark+3], ports=[i])
+ mark = mark + 3
if traffic_directions > 1:
- client.add_streams(streams[3:6], ports=[port_1])
+ mark = len(streams) // 2
+ for i in ports[1::2]:
+ client.add_streams(streams=streams[mark:mark+3], ports=[i])
+ mark = mark + 3
if latency:
try:
if isinstance(framesize, int):
- client.add_streams(streams[last_stream_b], ports=[port_0])
+ mark_c = len(streams) // 2
+ mark_d = len(streams) // 2 + len(streams) // 4
+ for i,j in zip(streams[mark_c:mark_d], ports[::2]):
+ client.add_streams(streams=[i], ports=[j])
if traffic_directions > 1:
- client.add_streams(
- streams[last_stream_b + 1], ports=[port_1])
+ for i,j in zip(streams[mark_d:], ports[1::2]):
+ client.add_streams(streams=[i], ports=[j])
elif isinstance(framesize, str):
latency = False
except STLError:
# Disable latency if NIC does not support requested stream type
- print(u"##### FAILED to add latency streams #####")
+ print("##### FAILED to add latency streams #####")
latency = False
- ports = [port_0]
- if traffic_directions > 1:
- ports.append(port_1)
# Clear the stats before injecting:
client.clear_stats()
- lost_a = 0
- lost_b = 0
# Choose rate and start traffic:
client.start(
- ports=ports,
+ ports=ports[::] if traffic_directions == 2 else ports[::2],
mult=rate,
duration=duration,
force=force,
@@ -195,57 +199,54 @@ def simple_burst(
if async_start:
# For async stop, we need to export the current snapshot.
- xsnap0 = client.ports[0].get_xstats().reference_stats
- print(f"Xstats snapshot 0: {xsnap0!r}")
- if traffic_directions > 1:
- xsnap1 = client.ports[1].get_xstats().reference_stats
- print(f"Xstats snapshot 1: {xsnap1!r}")
+ for i in range(len(client.ports)):
+ xsnap = client.ports[i].get_xstats().reference_stats
+ print(f"Xstats snapshot {i}: {xsnap!r}")
else:
- # Block until done:
time_start = time.monotonic()
- client.wait_on_traffic(ports=ports, timeout=duration+30)
+ # wait_on_traffic fails if duration stretches by 30 seconds or more.
+ # TRex has some overhead, wait some more.
+ time.sleep(duration + delay)
+ client.stop()
time_stop = time.monotonic()
- approximated_duration = time_stop - time_start
-
+ approximated_duration = time_stop - time_start - delay
+ # Read the stats after the traffic stopped (or time up).
+ stats = client.get_stats()
if client.get_warnings():
for warning in client.get_warnings():
print(warning)
+ # Now finish the complete reset.
+ client.reset()
- # Read the stats after the test
- stats = client.get_stats()
+ print("##### Statistics #####")
+ print(json.dumps(stats, indent=4, separators=(",", ": ")))
- print(u"##### Statistics #####")
- print(json.dumps(stats, indent=4, separators=(u",", u": ")))
-
- lost_a = stats[port_0][u"opackets"] - stats[port_1][u"ipackets"]
- if traffic_directions > 1:
- lost_b = stats[port_1][u"opackets"] - stats[port_0][u"ipackets"]
+ nr_ports = len(client.ports)
+ for i,j in zip(range(nr_ports)[0::2], range(nr_ports)[1::2]):
+ lost_r = stats[i]["opackets"] - stats[j]["ipackets"]
+ lost_l = stats[j]["opackets"] - stats[i]["ipackets"]
+ print(f"packets lost from {i} --> {j}: {lost_r} pkts")
+ print(f"packets lost from {j} --> {i}: {lost_l} pkts")
# Stats index is not a port number, but "pgid".
+ # We will take latency read from only first link.
if latency:
- lat_obj = stats[u"latency"][0][u"latency"]
+ lat_obj = stats["latency"][0]["latency"]
lat_a = fmt_latency(
- str(lat_obj[u"total_min"]), str(lat_obj[u"average"]),
- str(lat_obj[u"total_max"]), str(lat_obj[u"hdrh"]))
+ str(lat_obj["total_min"]), str(lat_obj["average"]),
+ str(lat_obj["total_max"]), str(lat_obj["hdrh"]))
+ # Do not bother with the other dir latency if unidir.
if traffic_directions > 1:
- lat_obj = stats[u"latency"][1][u"latency"]
+ lat_obj = stats["latency"][1]["latency"]
lat_b = fmt_latency(
- str(lat_obj[u"total_min"]), str(lat_obj[u"average"]),
- str(lat_obj[u"total_max"]), str(lat_obj[u"hdrh"]))
-
- if traffic_directions > 1:
- total_sent = stats[0][u"opackets"] + stats[1][u"opackets"]
- total_rcvd = stats[0][u"ipackets"] + stats[1][u"ipackets"]
- else:
- total_sent = stats[port_0][u"opackets"]
- total_rcvd = stats[port_1][u"ipackets"]
+ str(lat_obj["total_min"]), str(lat_obj["average"]),
+ str(lat_obj["total_max"]), str(lat_obj["hdrh"]))
- print(f"\npackets lost from {port_0} --> {port_1}: {lost_a} pkts")
- if traffic_directions > 1:
- print(f"packets lost from {port_1} --> {port_0}: {lost_b} pkts")
+ total_rcvd = stats["total"]["ipackets"]
+ total_sent = stats["total"]["opackets"]
except STLError:
- print(u"T-Rex STL runtime error!", file=sys.stderr)
+ print("T-Rex STL runtime error!", file=sys.stderr)
raise
finally:
@@ -259,7 +260,7 @@ def simple_burst(
f"rate={rate!r}; "
f"total_received={total_rcvd}; "
f"total_sent={total_sent}; "
- f"frame_loss={lost_a + lost_b}; "
+ f"frame_loss={total_sent - total_rcvd}; "
f"target_duration={duration!r}; "
f"approximated_duration={approximated_duration!r}; "
f"latency_stream_0(usec)={lat_a}; "
@@ -275,44 +276,44 @@ def main():
"""
parser = argparse.ArgumentParser()
parser.add_argument(
- u"-p", u"--profile", required=True, type=str,
- help=u"Python traffic profile."
+ "-p", "--profile", required=True, type=str,
+ help="Python traffic profile."
)
parser.add_argument(
- u"-d", u"--duration", required=True, type=float,
- help=u"Duration of traffic run."
+ "-d", "--duration", required=True, type=float,
+ help="Duration of traffic run."
)
parser.add_argument(
- u"-s", u"--frame_size", required=True,
- help=u"Size of a Frame without padding and IPG."
+ "-s", "--frame_size", required=True,
+ help="Size of a Frame without padding and IPG."
)
parser.add_argument(
- u"-r", u"--rate", required=True,
- help=u"Traffic rate with included units (pps)."
+ "-r", "--rate", required=True,
+ help="Traffic rate with included units (pps)."
)
parser.add_argument(
- u"--port_0", required=True, type=int,
- help=u"Port 0 on the traffic generator."
+ "--ports", required=True, type=int, nargs="+",
+ help="Port list on the traffic generator."
)
parser.add_argument(
- u"--port_1", required=True, type=int,
- help=u"Port 1 on the traffic generator."
+ "--async_start", action="store_true", default=False,
+ help="Non-blocking call of the script."
)
parser.add_argument(
- u"--async_start", action=u"store_true", default=False,
- help=u"Non-blocking call of the script."
+ "--latency", action="store_true", default=False,
+ help="Add latency stream."
)
parser.add_argument(
- u"--latency", action=u"store_true", default=False,
- help=u"Add latency stream."
+ "--traffic_directions", type=int, default=2,
+ help="Send bi- (2) or uni- (1) directional traffic."
)
parser.add_argument(
- u"--traffic_directions", type=int, default=2,
- help=u"Send bi- (2) or uni- (1) directional traffic."
+ "--force", action="store_true", default=False,
+ help="Force start regardless of ports state."
)
parser.add_argument(
- u"--force", action=u"store_true", default=False,
- help=u"Force start regardless of ports state."
+ "--delay", required=True, type=float, default=0.0,
+ help="Delay assumed for traffic, sleep time is increased by this [s]."
)
args = parser.parse_args()
@@ -327,14 +328,14 @@ def main():
duration=args.duration,
framesize=framesize,
rate=args.rate,
- port_0=args.port_0,
- port_1=args.port_1,
+ ports=args.ports,
latency=args.latency,
async_start=args.async_start,
traffic_directions=args.traffic_directions,
force=args.force,
+ delay=args.delay,
)
-if __name__ == u"__main__":
+if __name__ == "__main__":
main()
diff --git a/GPL/tools/trex/trex_stl_stop.py b/GPL/tools/trex/trex_stl_stop.py
index 9d09f28601..c03624ba24 100644
--- a/GPL/tools/trex/trex_stl_stop.py
+++ b/GPL/tools/trex/trex_stl_stop.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -30,11 +30,6 @@ Requirements:
- compiled and running T-REX process (eg. ./t-rex-64 -i)
- trex.stl.api library
- Script must be executed on a node with T-REX instance
-
-Functionality:
-1. Stop any running traffic
-2. Optionally restore reference counter values.
-3. Return conter differences.
"""
import argparse
@@ -44,68 +39,56 @@ import sys
from collections import OrderedDict # Needed to parse xstats representation.
sys.path.insert(
- 0, u"/opt/trex-core-2.86/scripts/automation/trex_control_plane/interactive/"
+ 0, "/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
-from trex.stl.api import *
+from trex.stl.api import STLClient
def main():
"""Stop traffic if any is running. Report xstats."""
parser = argparse.ArgumentParser()
parser.add_argument(
- u"--xstat0", type=str, default=u"",
- help=u"Reference xstat object if any."
- )
- parser.add_argument(
- u"--xstat1", type=str, default=u"",
- help=u"Reference xstat object if any."
+ "--xstat", type=str, nargs="*", help="Reference xstat object if any."
)
args = parser.parse_args()
client = STLClient()
try:
- # connect to server
client.connect()
-
client.acquire(force=True)
- # TODO: Support unidirection.
- client.stop(ports=[0, 1])
+ client.stop()
+ xstats = list()
# Read the stats after the test,
# we need to update values before the last trial started.
- if args.xstat0:
- snapshot = eval(args.xstat0)
- client.ports[0].get_xstats().reference_stats = snapshot
- if args.xstat1:
- snapshot = eval(args.xstat1)
- client.ports[1].get_xstats().reference_stats = snapshot
- # Now we can call the official method to get differences.
- xstats0 = client.get_xstats(0)
- xstats1 = client.get_xstats(1)
-
- # If STLError happens, let the script fail with stack trace.
+ for i in range(len(client.ports)):
+ if args.xstat[i]:
+ snapshot = eval(args.xstat[i])
+ client.ports[i].get_xstats().reference_stats = snapshot
+ # Now we can call the official method to get differences.
+ xstats.append(client.get_xstats(i))
+ print(f"##### statistics port {i} #####")
+ print(json.dumps(xstats[i], indent=4, separators=(",", ": ")))
finally:
client.disconnect()
- print(u"##### statistics port 0 #####")
- print(json.dumps(xstats0, indent=4, separators=(u",", u": ")))
- print(u"##### statistics port 1 #####")
- print(json.dumps(xstats1, indent=4, separators=(u",", u": ")))
-
- tx_0, rx_0 = xstats0[u"tx_good_packets"], xstats0[u"rx_good_packets"]
- tx_1, rx_1 = xstats1[u"tx_good_packets"], xstats1[u"rx_good_packets"]
- lost_a, lost_b = tx_0 - rx_1, tx_1 - rx_0
+ for idx,stat in enumerate(zip(xstats[0::2], xstats[1::2])):
+ lost_r = stat[0]["tx_good_packets"] - stat[1]["rx_good_packets"]
+ lost_l = stat[1]["tx_good_packets"] - stat[0]["rx_good_packets"]
+ print(f"packets lost from {idx*2} --> {idx*2+1}: {lost_r} pkts")
+ print(f"packets lost from {idx*2+1} --> {idx*2}: {lost_l} pkts")
- print(f"\npackets lost from 0 --> 1: {lost_a} pkts")
- print(f"packets lost from 1 --> 0: {lost_b} pkts")
+ total_rcvd = 0
+ total_sent = 0
+ for stat in xstats:
+ total_rcvd += stat["rx_good_packets"]
+ total_sent += stat["tx_good_packets"]
- total_rcvd, total_sent = rx_0 + rx_1, tx_0 + tx_1
- total_lost = total_sent - total_rcvd
print(
f"rate='unknown'; "
f"total_received={total_rcvd}; "
f"total_sent={total_sent}; "
- f"frame_loss={total_lost}; "
+ f"frame_loss={total_sent - total_rcvd}; "
f"target_duration='manual'; "
f"approximated_duration='manual'; "
f"approximated_rate='unknown'; "
@@ -114,5 +97,5 @@ def main():
)
-if __name__ == u"__main__":
+if __name__ == "__main__":
main()
diff --git a/GPL/traffic_profiles/trex/profile_trex_astf_base_class.py b/GPL/traffic_profiles/trex/profile_trex_astf_base_class.py
index 427060ffee..55aedd0543 100644
--- a/GPL/traffic_profiles/trex/profile_trex_astf_base_class.py
+++ b/GPL/traffic_profiles/trex/profile_trex_astf_base_class.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -46,13 +46,9 @@ class TrafficProfileBaseClass:
]
}
- def __init__(self):
- # Default values of required parameters; can be overwritten in
- # "get_profile" method.
- self.framesize = 64
- self._pcap_dir = u""
-
- # If needed, add your own parameters.
+ # TODO: Declare and document fields in a contructor to make pylint happier.
+ # TODO: Consider passing the values to define_profile(),
+ # instead of keeping (and documenting) them as instance fields here.
@property
def pcap_dir(self):
@@ -72,7 +68,7 @@ class TrafficProfileBaseClass:
:param current_length: Current length of the packet.
:param required_length: Required length of the packet. If set to 0 then
- self.framesize value is used.
+ self.framesize value is used.
:type current_length: int
:type required_length: int
:returns: The generated padding.
@@ -82,20 +78,25 @@ class TrafficProfileBaseClass:
# use random.randrange(0, len(self.STREAM_TABLE[self.framesize])) ?
if not required_length:
required_length = self.framesize
-
- return str(choices(ascii_letters, k=required_length - current_length))
+ missing = required_length - current_length
+ if missing < 0:
+ msg = f"Cannot to pad from {current_length} to {required_length}."
+ raise RuntimeError(msg)
+ padding = u"".join(choices(ascii_letters, k=missing))
+ return padding
def define_profile(self):
"""Define profile to be used by T-Rex astf traffic generator.
This method MUST return:
- return ip_gen, templates, cap_list
+ return ip_gen, templates, kwargs
- templates or cap_list CAN be None.
+ templates or kwargs CAN be None.
+ Kwargs can be used to define PCAP file, set MSS, ...
:returns: IP generator and profile templates or list of pcap files for
- traffic generator.
+ traffic generator.
:rtype: tuple
"""
raise NotImplementedError
@@ -108,15 +109,14 @@ class TrafficProfileBaseClass:
:returns: Traffic profile.
:rtype: trex.astf.trex_astf_profile.ASTFProfile
"""
- ip_gen, templates, cap_list = self.define_profile()
-
- # In most cases you will not have to change the code below:
+ ip_gen, templates, kwargs = self.define_profile()
+ if kwargs is None:
+ kwargs = dict()
- # profile
profile = ASTFProfile(
default_ip_gen=ip_gen,
templates=templates,
- cap_list=cap_list
+ **kwargs
)
return profile
@@ -127,13 +127,15 @@ class TrafficProfileBaseClass:
If needed, add your own parameters.
:param kwargs: Key-value pairs used by "create_profile" method while
- creating the profile.
+ creating the profile.
+ :type kwargs: dict
:returns: Traffic profile.
:rtype: trex.astf.trex_astf_profile.ASTFProfile
"""
self.framesize = kwargs[u"framesize"]
+ self.n_data_frames = kwargs[u"n_data_frames"]
self._pcap_dir = kwargs.get(
- u"pcap_dir",u"/opt/trex-core-2.86/scripts/avl"
+ u"pcap_dir", u"/opt/trex-core-3.03/scripts/avl"
)
return self.create_profile()
diff --git a/GPL/traffic_profiles/trex/profile_trex_stateless_scale_class.py b/GPL/traffic_profiles/trex/profile_trex_stateless_scale_class.py
new file mode 100644
index 0000000000..33cf090da2
--- /dev/null
+++ b/GPL/traffic_profiles/trex/profile_trex_stateless_scale_class.py
@@ -0,0 +1,196 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Base class for stream profiles for T-rex traffic generator.
+"""
+
+import socket
+import struct
+
+from random import choice
+from string import ascii_letters
+
+from trex.stl.api import *
+
+
+class TrafficStreamsScaleClass:
+ """Base class for stream profiles for T-rex traffic generator."""
+
+ STREAM_TABLE = {
+ "IMIX_v4": [
+ {"size": 60, "pps": 28, "isg": 0},
+ {"size": 590, "pps": 20, "isg": 0.1},
+ {"size": 1514, "pps": 4, "isg": 0.2}
+ ],
+ "IMIX_v4_1": [
+ {"size": 64, "pps": 28, "isg": 0},
+ {"size": 570, "pps": 16, "isg": 0.1},
+ {"size": 1518, "pps": 4, "isg": 0.2}
+ ]
+ }
+
+ def __init__(self):
+ # Default value of frame size, it will be overwritten by the value of
+ # "framesize" parameter of "get_streams" method.
+ self.framesize = 64
+
+ # If needed, add your own parameters.
+
+ def _gen_payload(self, length):
+ """Generate payload.
+
+ If needed, implement your own algorithm.
+
+ :param length: Length of generated payload.
+ :type length: int
+ :returns: The generated payload.
+ :rtype: str
+ """
+ payload = ""
+ for _ in range(length):
+ payload += choice(ascii_letters)
+
+ return payload
+
+ def _get_start_end_ipv6(self, start_ip, end_ip):
+ """Get start host and number of hosts from IPv6 as integer.
+
+ :param start_ip: Start IPv6.
+ :param end_ip: End IPv6.
+ :type start_ip: string
+ :type end_ip: string
+ :return: Start host, number of hosts.
+ :rtype tuple of int
+ :raises: ValueError if start_ip is greater then end_ip.
+ :raises: socket.error if the IP addresses are not valid IPv6 addresses.
+ """
+ try:
+ ip1 = socket.inet_pton(socket.AF_INET6, start_ip)
+ ip2 = socket.inet_pton(socket.AF_INET6, end_ip)
+
+ hi1, lo1 = struct.unpack("!QQ", ip1)
+ hi2, lo2 = struct.unpack("!QQ", ip2)
+
+ if ((hi1 << 64) | lo1) > ((hi2 << 64) | lo2):
+ raise ValueError("IPv6: start_ip is greater then end_ip")
+
+ return lo1, abs(int(lo1) - int(lo2))
+
+ except socket.error as err:
+ print(err)
+ raise
+
+ def define_packets(self):
+ """Define the packets to be sent from the traffic generator.
+
+ This method MUST return:
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+ vm1 and vm2 CAN be None.
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ raise NotImplementedError
+
+ def create_streams(self):
+ """Create traffic streams.
+
+ Implement your own traffic streams.
+
+ :returns: Traffic streams.
+ :rtype: list
+ """
+ pkts, vms = self.define_packets()
+
+ # Frame size is defined as an integer, e.g. 64, 1518:
+ if isinstance(self.framesize, int):
+ pkt_streams = list()
+ lat_streams = list()
+ for i in range(len(pkts)):
+ payload_len = max(0, self.framesize - len(pkts[i]) - 4)
+
+ pkt = STLPktBuilder(
+ pkt=pkts[i] / self._gen_payload(payload_len),
+ vm=vms[i]
+ )
+ pkt_lat = STLPktBuilder(
+ pkt=pkts[i] / self._gen_payload(payload_len),
+ vm=vms[i]
+ )
+ pkt_streams.append(
+ STLStream(
+ packet=pkt,
+ isg=10.0 * (i // (len(pkts) // 2)),
+ mode=STLTXCont(pps=9000)
+ )
+ )
+ lat_streams.append(
+ STLStream(
+ packet=pkt_lat,
+ isg=10.0 * (i // (len(pkts) // 2)),
+ flow_stats=STLFlowLatencyStats(pg_id=i),
+ mode=STLTXCont(pps=9000)
+ )
+ )
+
+ streams = list()
+ streams.extend(pkt_streams)
+ streams.extend(lat_streams)
+ return streams
+
+ # Frame size is defined as a string, e.g.IMIX_v4_1:
+ elif isinstance(self.framesize, str):
+ pkt_streams = list()
+ for i in range(len(pkts)):
+ for stream in self.STREAM_TABLE[self.framesize]:
+ payload_len = max(0, stream["size"] - len(pkts[i]) - 4)
+
+ pkt = STLPktBuilder(
+ pkt=pkts[i] / self._gen_payload(payload_len),
+ vm=vms[i]
+ )
+ pkt_streams.append(
+ STLStream(
+ packet=pkt,
+ isg=stream["isg"],
+ mode=STLTXCont(pps=stream["pps"])
+ )
+ )
+ return pkt_streams
+
+ def get_streams(self, **kwargs):
+ """Get traffic streams created by "create_streams" method.
+
+ If needed, add your own parameters.
+
+ :param kwargs: Key-value pairs used by "create_streams" method while
+ creating streams.
+ :returns: Traffic streams.
+ :rtype: list
+ """
+ self.framesize = kwargs["framesize"]
+ self.rate = kwargs["rate"]
+
+ return self.create_streams()
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-1024h-pps.py b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-1024h-pps.py
index 70fcaa06bb..9c3ab873c1 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-1024h-pps.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-1024h-pps.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -47,22 +47,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.3.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.3.255"
-
- # Headers length; not used in this profile, just for the record of
- # header length for TCP packet with 0B payload
- self.headers_size = 58 # 14B l2 + 20B ipv4 + 24B tcp incl. 4B options
- self.data_size = 11111
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -73,31 +57,50 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.3.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.3.255"
+
+ # Headers length, not sure why TRex needs 32B for segment header.
+ real_headers_size = 70 # 18B L2 + 20B IPv4 + 32B TCP.
+ trex_headers_size = real_headers_size - 12 # As if TCP header is 20B.
+ trex_mss = self.framesize - trex_headers_size
+ real_mss = trex_mss - 12 # TRex honors segment header+data limit.
+ data_size = self.n_data_frames * real_mss
+
# client commands
prog_c = ASTFProgram()
prog_c.connect()
- prog_c.send(u"1" * self.data_size)
- prog_c.recv(self.data_size)
+ prog_c.set_var(u"var1", self.n_data_frames)
+ prog_c.set_label(u"a1:")
+ prog_c.send(u"1" * real_mss)
+ prog_c.recv(real_mss)
+ prog_c.jmp_nz(u"var1", u"a1:")
# server commands
prog_s = ASTFProgram()
prog_s.accept()
- prog_c.recv(self.data_size)
- prog_c.send(u"1" * self.data_size)
+ prog_s.set_var(u"var2", self.n_data_frames)
+ prog_s.set_label(u"a2:")
+ prog_s.recv(real_mss)
+ prog_s.send(u"1" * real_mss)
+ prog_s.jmp_nz(u"var2", u"a2:")
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -108,12 +111,22 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=64512, # TODO: set via input parameter
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
- return ip_gen, template, None
+ globinfo = ASTFGlobalInfo()
+ # Ensure correct data frame size.
+ globinfo.tcp.mss = trex_mss
+ globinfo.tcp.txbufsize = trex_mss
+ globinfo.tcp.rxbufsize = trex_mss
+ kwargs = dict(
+ default_c_glob_info=globinfo,
+ default_s_glob_info=globinfo,
+ )
+
+ return ip_gen, template, kwargs
def register():
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-1024h.py b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-1024h.py
index 2e4fca2af0..4c6a15ac7d 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-1024h.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-1024h.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -47,21 +47,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.3.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.3.255"
-
- # Headers length; not used in this profile, just for the record of
- # header length for TCP packet with 0B payload
- self.headers_size = 58 # 14B l2 + 20B ipv4 + 24B tcp incl. 4B options
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -72,6 +57,14 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
+ # No data, no way to manipulate frame sizes via MSS.
+
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.3.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.3.255"
+
# client commands
prog_c = ASTFProgram()
# send syn
@@ -88,17 +81,17 @@ class TrafficProfile(TrafficProfileBaseClass):
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -109,7 +102,7 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=64512, # TODO: set via input parameter
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-16384h-pps.py b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-16384h-pps.py
index 19402bab95..ae5879a98f 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-16384h-pps.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-16384h-pps.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -47,22 +47,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.63.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.63.255"
-
- # Headers length; not used in this profile, just for the record of
- # header length for TCP packet with 0B payload
- self.headers_size = 58 # 14B l2 + 20B ipv4 + 24B tcp incl. 4B options
- self.data_size = 11111
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -73,31 +57,50 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.63.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.63.255"
+
+ # Headers length, not sure why TRex needs 32B for segment header.
+ real_headers_size = 70 # 18B L2 + 20B IPv4 + 32B TCP.
+ trex_headers_size = real_headers_size - 12 # As if TCP header is 20B.
+ trex_mss = self.framesize - trex_headers_size
+ real_mss = trex_mss - 12 # TRex honors segment header+data limit.
+ data_size = self.n_data_frames * real_mss
+
# client commands
prog_c = ASTFProgram()
prog_c.connect()
- prog_c.send(u"1" * self.data_size)
- prog_c.recv(self.data_size)
+ prog_c.set_var(u"var1", self.n_data_frames)
+ prog_c.set_label(u"a1:")
+ prog_c.send(u"1" * real_mss)
+ prog_c.recv(real_mss)
+ prog_c.jmp_nz(u"var1", u"a1:")
# server commands
prog_s = ASTFProgram()
prog_s.accept()
- prog_c.recv(self.data_size)
- prog_c.send(u"1" * self.data_size)
+ prog_s.set_var(u"var2", self.n_data_frames)
+ prog_s.set_label(u"a2:")
+ prog_s.recv(real_mss)
+ prog_s.send(u"1" * real_mss)
+ prog_s.jmp_nz(u"var2", u"a2:")
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -108,12 +111,22 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=1032192, # TODO: set via input parameter
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
- return ip_gen, template, None
+ globinfo = ASTFGlobalInfo()
+ # Ensure correct data frame size.
+ globinfo.tcp.mss = trex_mss
+ globinfo.tcp.txbufsize = trex_mss
+ globinfo.tcp.rxbufsize = trex_mss
+ kwargs = dict(
+ default_c_glob_info=globinfo,
+ default_s_glob_info=globinfo,
+ )
+
+ return ip_gen, template, kwargs
def register():
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-16384h.py b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-16384h.py
index 8f4d12ee6a..728ad5b0d9 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-16384h.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-16384h.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -47,21 +47,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.63.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.63.255"
-
- # Headers length; not used in this profile, just for the record of
- # header length for TCP packet with 0B payload
- self.headers_size = 58 # 14B l2 + 20B ipv4 + 24B tcp incl. 4B options
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -72,6 +57,14 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
+ # No data, no way to manipulate frame sizes via MSS.
+
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.63.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.63.255"
+
# client commands
prog_c = ASTFProgram()
# send syn
@@ -88,17 +81,17 @@ class TrafficProfile(TrafficProfileBaseClass):
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -109,7 +102,7 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=1032192, # TODO: set via input parameter
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-262144h-pps.py b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-262144h-pps.py
index 2a174307ec..46468386b1 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-262144h-pps.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-262144h-pps.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -47,22 +47,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"172.16.0.0"
- self.p1_src_end_ip = u"172.19.255.255"
- self.p1_dst_start_ip = u"20.16.0.0"
- self.p1_dst_end_ip = u"20.19.255.255"
-
- # Headers length; not used in this profile, just for the record of
- # header length for TCP packet with 0B payload
- self.headers_size = 58 # 14B l2 + 20B ipv4 + 24B tcp incl. 4B options
- self.data_size = 11111
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -73,31 +57,50 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
+ # IPs used in packet headers.
+ p1_src_start_ip = u"172.16.0.0"
+ p1_src_end_ip = u"172.19.255.255"
+ p1_dst_start_ip = u"20.16.0.0"
+ p1_dst_end_ip = u"20.19.255.255"
+
+ # Headers length, not sure why TRex needs 32B for segment header.
+ real_headers_size = 70 # 18B L2 + 20B IPv4 + 32B TCP.
+ trex_headers_size = real_headers_size - 12 # As if TCP header is 20B.
+ trex_mss = self.framesize - trex_headers_size
+ real_mss = trex_mss - 12 # TRex honors segment header+data limit.
+ data_size = self.n_data_frames * real_mss
+
# client commands
prog_c = ASTFProgram()
prog_c.connect()
- prog_c.send(u"1" * self.data_size)
- prog_c.recv(self.data_size)
+ prog_c.set_var(u"var1", self.n_data_frames)
+ prog_c.set_label(u"a1:")
+ prog_c.send(u"1" * real_mss)
+ prog_c.recv(real_mss)
+ prog_c.jmp_nz(u"var1", u"a1:")
# server commands
prog_s = ASTFProgram()
prog_s.accept()
- prog_c.recv(self.data_size)
- prog_c.send(u"1" * self.data_size)
+ prog_s.set_var(u"var2", self.n_data_frames)
+ prog_s.set_label(u"a2:")
+ prog_s.recv(real_mss)
+ prog_s.send(u"1" * real_mss)
+ prog_s.jmp_nz(u"var2", u"a2:")
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -108,12 +111,22 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=16515072, # TODO: set via input parameter
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
- return ip_gen, template, None
+ globinfo = ASTFGlobalInfo()
+ # Ensure correct data frame size.
+ globinfo.tcp.mss = trex_mss
+ globinfo.tcp.txbufsize = trex_mss
+ globinfo.tcp.rxbufsize = trex_mss
+ kwargs = dict(
+ default_c_glob_info=globinfo,
+ default_s_glob_info=globinfo,
+ )
+
+ return ip_gen, template, kwargs
def register():
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-262144h.py b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-262144h.py
index 344bc7dcac..ec4870a95e 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-262144h.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-262144h.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -47,21 +47,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"172.16.0.0"
- self.p1_src_end_ip = u"172.19.255.255"
- self.p1_dst_start_ip = u"20.16.0.0"
- self.p1_dst_end_ip = u"20.19.255.255"
-
- # Headers length; not used in this profile, just for the record of
- # header length for TCP packet with 0B payload
- self.headers_size = 58 # 14B l2 + 20B ipv4 + 24B tcp incl. 4B options
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -72,6 +57,14 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
+ # No data, no way to manipulate frame sizes via MSS.
+
+ # IPs used in packet headers.
+ p1_src_start_ip = u"172.16.0.0"
+ p1_src_end_ip = u"172.19.255.255"
+ p1_dst_start_ip = u"20.16.0.0"
+ p1_dst_end_ip = u"20.19.255.255"
+
# client commands
prog_c = ASTFProgram()
# send syn
@@ -88,17 +81,17 @@ class TrafficProfile(TrafficProfileBaseClass):
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -109,7 +102,7 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=16515072, # TODO: set via input parameter
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-4096h-pps.py b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-4096h-pps.py
index 6999dee6f9..35e961495d 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-4096h-pps.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-4096h-pps.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -47,22 +47,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.15.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.15.255"
-
- # Headers length; not used in this profile, just for the record of
- # header length for TCP packet with 0B payload
- self.headers_size = 58 # 14B l2 + 20B ipv4 + 24B tcp incl. 4B options
- self.data_size = 11111
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -73,31 +57,50 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.15.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.15.255"
+
+ # Headers length, not sure why TRex needs 32B for segment header.
+ real_headers_size = 70 # 18B L2 + 20B IPv4 + 32B TCP.
+ trex_headers_size = real_headers_size - 12 # As if TCP header is 20B.
+ trex_mss = self.framesize - trex_headers_size
+ real_mss = trex_mss - 12 # TRex honors segment header+data limit.
+ data_size = self.n_data_frames * real_mss
+
# client commands
prog_c = ASTFProgram()
prog_c.connect()
- prog_c.send(u"1" * self.data_size)
- prog_c.recv(self.data_size)
+ prog_c.set_var(u"var1", self.n_data_frames)
+ prog_c.set_label(u"a1:")
+ prog_c.send(u"1" * real_mss)
+ prog_c.recv(real_mss)
+ prog_c.jmp_nz(u"var1", u"a1:")
# server commands
prog_s = ASTFProgram()
prog_s.accept()
- prog_c.recv(self.data_size)
- prog_c.send(u"1" * self.data_size)
+ prog_s.set_var(u"var2", self.n_data_frames)
+ prog_s.set_label(u"a2:")
+ prog_s.recv(real_mss)
+ prog_s.send(u"1" * real_mss)
+ prog_s.jmp_nz(u"var2", u"a2:")
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -108,12 +111,22 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=258048, # TODO: set via input parameter
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
- return ip_gen, template, None
+ globinfo = ASTFGlobalInfo()
+ # Ensure correct data frame size.
+ globinfo.tcp.mss = trex_mss
+ globinfo.tcp.txbufsize = trex_mss
+ globinfo.tcp.rxbufsize = trex_mss
+ kwargs = dict(
+ default_c_glob_info=globinfo,
+ default_s_glob_info=globinfo,
+ )
+
+ return ip_gen, template, kwargs
def register():
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-4096h.py b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-4096h.py
index 4278e3d099..6124baa6a1 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-4096h.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-4096h.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -47,21 +47,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self, **kwargs):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.15.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.15.255"
-
- # Headers length; not used in this profile, just for the record of
- # header length for TCP packet with 0B payload
- self.headers_size = 58 # 14B l2 + 20B ipv4 + 24B tcp incl. 4B options
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -72,6 +57,14 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
+ # No data, no way to manipulate frame sizes via MSS.
+
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.15.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.15.255"
+
# client commands
prog_c = ASTFProgram()
# send syn
@@ -88,17 +81,17 @@ class TrafficProfile(TrafficProfileBaseClass):
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -109,7 +102,7 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=258048, # TODO: set via input parameter
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-65536h-pps.py b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-65536h-pps.py
index 6b3bbd4c9f..5dcfb70cb7 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-65536h-pps.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-65536h-pps.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -47,22 +47,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.255.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.255.255"
-
- # Headers length; not used in this profile, just for the record of
- # header length for TCP packet with 0B payload
- self.headers_size = 58 # 14B l2 + 20B ipv4 + 24B tcp incl. 4B options
- self.data_size = 11111
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -73,31 +57,50 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.255.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.255.255"
+
+ # Headers length, not sure why TRex needs 32B for segment header.
+ real_headers_size = 70 # 18B L2 + 20B IPv4 + 32B TCP.
+ trex_headers_size = real_headers_size - 12 # As if TCP header is 20B.
+ trex_mss = self.framesize - trex_headers_size
+ real_mss = trex_mss - 12 # TRex honors segment header+data limit.
+ data_size = self.n_data_frames * real_mss
+
# client commands
prog_c = ASTFProgram()
prog_c.connect()
- prog_c.send(u"1" * self.data_size)
- prog_c.recv(self.data_size)
+ prog_c.set_var(u"var1", self.n_data_frames)
+ prog_c.set_label(u"a1:")
+ prog_c.send(u"1" * real_mss)
+ prog_c.recv(real_mss)
+ prog_c.jmp_nz(u"var1", u"a1:")
# server commands
prog_s = ASTFProgram()
prog_s.accept()
- prog_c.recv(self.data_size)
- prog_c.send(u"1" * self.data_size)
+ prog_s.set_var(u"var2", self.n_data_frames)
+ prog_s.set_label(u"a2:")
+ prog_s.recv(real_mss)
+ prog_s.send(u"1" * real_mss)
+ prog_s.jmp_nz(u"var2", u"a2:")
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -108,12 +111,22 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=4128768, # TODO: set via input parameter
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
- return ip_gen, template, None
+ globinfo = ASTFGlobalInfo()
+ # Ensure correct data frame size.
+ globinfo.tcp.mss = trex_mss
+ globinfo.tcp.txbufsize = trex_mss
+ globinfo.tcp.rxbufsize = trex_mss
+ kwargs = dict(
+ default_c_glob_info=globinfo,
+ default_s_glob_info=globinfo,
+ )
+
+ return ip_gen, template, kwargs
def register():
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-65536h.py b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-65536h.py
index 1be78d8c42..13c6ee8f38 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-65536h.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4tcp-65536h.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -47,21 +47,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.255.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.255.255"
-
- # Headers length; not used in this profile, just for the record of
- # header length for TCP packet with 0B payload
- self.headers_size = 58 # 14B l2 + 20B ipv4 + 24B tcp incl. 4B options
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -72,6 +57,14 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
+ # No data, no way to manipulate frame sizes via MSS.
+
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.255.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.255.255"
+
# client commands
prog_c = ASTFProgram()
# send syn
@@ -88,17 +81,17 @@ class TrafficProfile(TrafficProfileBaseClass):
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -109,7 +102,7 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=4128768, # TODO: set via input parameter
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-1024h-pps.py b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-1024h-pps.py
index 2dc7c81131..135e7fbdc7 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-1024h-pps.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-1024h-pps.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -46,84 +46,80 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self, **kwargs):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.3.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.3.255"
-
- self.headers_size = 42 # 14B l2 + 20B ipv4 + 8B UDP
-
- self.udp_data = u""
-
- self.n_data = 32 # TODO: set via input parameter
- self.m_delay = 1200000 # delay 1200s (1,200,000 ms)
- self.u_delay = 1000 * self.m_delay # delay 1200s (1,200,000,000 us)
- self.limit = 64512
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
This method MUST return:
- return ip_gen, templates
+ return ip_gen, templates, None
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
- if self.framesize == 64:
- self.udp_data += self._gen_padding(self.headers_size, 72)
- if self.framesize == 1518:
- self.udp_data += self._gen_padding(self.headers_size, 1514)
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.3.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.3.255"
+
+ # The difference between data size and frame size.
+ headers_size = 46 # 18B L2 + 20B IPv4 + 8B UDP.
+
+ # TODO: Use the "connection protocol" from CPS traffic profile?
+ # Currently, the first data packet is all DUT sees about the session.
+
+ # Avoid sending keepalives.
+ m_delay = 2000000 # delay 2000s (2,000,000 ms)
+
+ # Data, not padded yet.
+ udp_data = u""
+ # Pad the data to achieve the intended frame size.
+ udp_data += self._gen_padding(headers_size)
+
+ # Safety check, the current programs send at least 1 packet.
+ if self.n_data_frames < 1:
+ raise RuntimeError("n_data_frames < 1: {self.n_data_frames}")
# Client program.
prog_c = ASTFProgram(stream=False)
- prog_c.set_keepalive_msg(self.m_delay)
- prog_c.send_msg(self.udp_data)
- # No delay, PPS tests combine connect and data send (no data receive).
- prog_c.set_var(u"var1", self.n_data)
+ prog_c.set_keepalive_msg(m_delay)
+ prog_c.set_var(u"var1", self.n_data_frames)
prog_c.set_label(u"a:")
- prog_c.send_msg(self.udp_data)
+ prog_c.send_msg(udp_data)
prog_c.jmp_nz(u"var1", u"a:")
# We should read the server response,
# but no reason to overload client workers even more.
# Server program.
prog_s = ASTFProgram(stream=False)
- prog_s.set_keepalive_msg(self.m_delay)
+ prog_s.set_keepalive_msg(m_delay)
# If server closes too soon, new instances are started
# leading in too much replies. To prevent that, we need to recv all.
- prog_s.recv_msg(1 + self.n_data)
+ prog_s.recv_msg(self.n_data_frames)
# In packet loss scenarios, some instances never get here.
# This maybe increases server traffic duration,
# but no other way if we want to avoid
# TRex creating a second instance of the same server.
- prog_s.send_msg(self.udp_data)
- prog_s.set_var(u"var2", self.n_data)
+ prog_s.set_var(u"var2", self.n_data_frames)
prog_s.set_label(u"b:")
- prog_s.send_msg(self.udp_data)
+ prog_s.send_msg(udp_data)
prog_s.jmp_nz(u"var2", u"b:")
# VPP never duplicates packets,
# so it is safe to close the server instance now.
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -133,8 +129,8 @@ class TrafficProfile(TrafficProfileBaseClass):
temp_c = ASTFTCPClientTemplate(
program=prog_c,
ip_gen=ip_gen,
- limit=self.limit,
- port=8080
+ limit=64512, # TODO: Any benefit of making this configurable?
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-1024h.py b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-1024h.py
index 78ee8f31fc..a1282adf2f 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-1024h.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-1024h.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -49,26 +49,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.3.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.3.255"
-
- # UDP messages
- self.udp_req = u"GET"
- self.udp_res = u"ACK"
-
- # Headers length
- self.headers_size = 42 # 14B l2 + 20B ipv4 + 8B udp
-
- # No need to set keepalive, both programs end just after start&send.
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -78,13 +58,29 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates ASTFProfile().
:rtype: tuple
"""
- self.udp_req += self._gen_padding(self.headers_size + len(self.udp_req))
- self.udp_res += self._gen_padding(self.headers_size + len(self.udp_res))
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.3.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.3.255"
+
+ # Headers length
+ headers_size = 46 # 18B L2 + 20B IPv4 + 8B UDP.
+
+ # UDP messages, not padded yet.
+ udp_req = u"GET"
+ udp_res = u"ACK"
+
+ # Padd to the required frame size.
+ udp_req += self._gen_padding(headers_size + len(udp_req))
+ udp_res += self._gen_padding(headers_size + len(udp_res))
+
+ # No need to set keepalive, both programs end just after start&send.
# client commands
prog_c = ASTFProgram(stream=False)
# send REQ message
- prog_c.send_msg(self.udp_req)
+ prog_c.send_msg(udp_req)
# No need to process the response, seeing L2 counter is enough.
# Client program can end here.
@@ -93,22 +89,22 @@ class TrafficProfile(TrafficProfileBaseClass):
# When server instance is created means REQ is visible in L2 counter.
# No need to receive explicitly?
# send RES message
- prog_s.send_msg(self.udp_res)
+ prog_s.send_msg(udp_res)
# Server program can end here.
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -119,7 +115,7 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=64512, # TODO: set via input parameter ?
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-16384h-pps.py b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-16384h-pps.py
index 0061ae31d4..05976bc45c 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-16384h-pps.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-16384h-pps.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -46,84 +46,80 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self, **kwargs):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.63.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.63.255"
-
- self.headers_size = 42 # 14B l2 + 20B ipv4 + 8B UDP
-
- self.udp_data = u""
-
- self.n_data = 32 # TODO: set via input parameter
- self.m_delay = 1200000 # delay 1200s (1,200,000 ms)
- self.u_delay = 1000 * self.m_delay # delay 1200s (1,200,000,000 us)
- self.limit = 1032192
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
This method MUST return:
- return ip_gen, templates
+ return ip_gen, templates, None
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
- if self.framesize == 64:
- self.udp_data += self._gen_padding(self.headers_size, 72)
- if self.framesize == 1518:
- self.udp_data += self._gen_padding(self.headers_size, 1514)
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.63.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.63.255"
+
+ # The difference between data size and frame size.
+ headers_size = 46 # 18B L2 + 20B IPv4 + 8B UDP.
+
+ # TODO: Use the "connection protocol" from CPS traffic profile?
+ # Currently, the first data packet is all DUT sees about the session.
+
+ # Avoid sending keepalives.
+ m_delay = 2000000 # delay 2000s (2,000,000 ms)
+
+ # Data, not padded yet.
+ udp_data = u""
+ # Pad the data to achieve the intended frame size.
+ udp_data += self._gen_padding(headers_size)
+
+ # Safety check, the current programs send at least 1 packet.
+ if self.n_data_frames < 1:
+ raise RuntimeError("n_data_frames < 1: {self.n_data_frames}")
# Client program.
prog_c = ASTFProgram(stream=False)
- prog_c.set_keepalive_msg(self.m_delay)
- prog_c.send_msg(self.udp_data)
- # No delay, PPS tests combine connect and data send (no data receive).
- prog_c.set_var(u"var1", self.n_data)
+ prog_c.set_keepalive_msg(m_delay)
+ prog_c.set_var(u"var1", self.n_data_frames)
prog_c.set_label(u"a:")
- prog_c.send_msg(self.udp_data)
+ prog_c.send_msg(udp_data)
prog_c.jmp_nz(u"var1", u"a:")
# We should read the server response,
# but no reason to overload client workers even more.
# Server program.
prog_s = ASTFProgram(stream=False)
- prog_s.set_keepalive_msg(self.m_delay)
+ prog_s.set_keepalive_msg(m_delay)
# If server closes too soon, new instances are started
# leading in too much replies. To prevent that, we need to recv all.
- prog_s.recv_msg(1 + self.n_data)
+ prog_s.recv_msg(self.n_data_frames)
# In packet loss scenarios, some instances never get here.
# This maybe increases server traffic duration,
# but no other way if we want to avoid
# TRex creating a second instance of the same server.
- prog_s.send_msg(self.udp_data)
- prog_s.set_var(u"var2", self.n_data)
+ prog_s.set_var(u"var2", self.n_data_frames)
prog_s.set_label(u"b:")
- prog_s.send_msg(self.udp_data)
+ prog_s.send_msg(udp_data)
prog_s.jmp_nz(u"var2", u"b:")
# VPP never duplicates packets,
# so it is safe to close the server instance now.
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -133,8 +129,8 @@ class TrafficProfile(TrafficProfileBaseClass):
temp_c = ASTFTCPClientTemplate(
program=prog_c,
ip_gen=ip_gen,
- limit=self.limit,
- port=8080
+ limit=1032192, # TODO: Any benefit of making this configurable?
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-16384h.py b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-16384h.py
index 7d35a68db6..3a1793a617 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-16384h.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-16384h.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -49,26 +49,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.63.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.63.255"
-
- # UDP messages
- self.udp_req = u"GET"
- self.udp_res = u"ACK"
-
- # Headers length
- self.headers_size = 42 # 14B l2 + 20B ipv4 + 8B udp
-
- # No need to set keepalive, both programs end just after start&send.
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -78,13 +58,29 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates ASTFProfile().
:rtype: tuple
"""
- self.udp_req += self._gen_padding(self.headers_size + len(self.udp_req))
- self.udp_res += self._gen_padding(self.headers_size + len(self.udp_res))
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.63.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.63.255"
+
+ # Headers length
+ headers_size = 46 # 18B L2 + 20B IPv4 + 8B UDP.
+
+ # UDP messages, not padded yet.
+ udp_req = u"GET"
+ udp_res = u"ACK"
+
+ # Padd to the required frame size.
+ udp_req += self._gen_padding(headers_size + len(udp_req))
+ udp_res += self._gen_padding(headers_size + len(udp_res))
+
+ # No need to set keepalive, both programs end just after start&send.
# client commands
prog_c = ASTFProgram(stream=False)
# send REQ message
- prog_c.send_msg(self.udp_req)
+ prog_c.send_msg(udp_req)
# No need to process the response, seeing L2 counter is enough.
# Client program can end here.
@@ -93,22 +89,22 @@ class TrafficProfile(TrafficProfileBaseClass):
# When server instance is created means REQ is visible in L2 counter.
# No need to receive explicitly?
# send RES message
- prog_s.send_msg(self.udp_res)
+ prog_s.send_msg(udp_res)
# Server program can end here.
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -119,7 +115,7 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=1032192, # TODO: set via input parameter ?
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-262144h-pps.py b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-262144h-pps.py
index ebfdced27f..801db90095 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-262144h-pps.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-262144h-pps.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -46,84 +46,80 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self, **kwargs):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"172.16.0.0"
- self.p1_src_end_ip = u"172.19.255.255"
- self.p1_dst_start_ip = u"20.16.0.0"
- self.p1_dst_end_ip = u"20.19.255.255"
-
- self.headers_size = 42 # 14B l2 + 20B ipv4 + 8B UDP
-
- self.udp_data = u""
-
- self.n_data = 32 # TODO: set via input parameter
- self.m_delay = 1200000 # delay 1200s (1,200,000 ms)
- self.u_delay = 1000 * self.m_delay # delay 1200s (1,200,000,000 us)
- self.limit = 16515072
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
This method MUST return:
- return ip_gen, templates
+ return ip_gen, templates, None
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
- if self.framesize == 64:
- self.udp_data += self._gen_padding(self.headers_size, 72)
- if self.framesize == 1518:
- self.udp_data += self._gen_padding(self.headers_size, 1514)
+ # IPs used in packet headers.
+ p1_src_start_ip = u"172.16.0.0"
+ p1_src_end_ip = u"172.19.255.255"
+ p1_dst_start_ip = u"20.16.0.0"
+ p1_dst_end_ip = u"20.19.255.255"
+
+ # The difference between data size and frame size.
+ headers_size = 46 # 18B L2 + 20B IPv4 + 8B UDP.
+
+ # TODO: Use the "connection protocol" from CPS traffic profile?
+ # Currently, the first data packet is all DUT sees about the session.
+
+ # Avoid sending keepalives.
+ m_delay = 2000000 # delay 2000s (2,000,000 ms)
+
+ # Data, not padded yet.
+ udp_data = u""
+ # Pad the data to achieve the intended frame size.
+ udp_data += self._gen_padding(headers_size)
+
+ # Safety check, the current programs send at least 1 packet.
+ if self.n_data_frames < 1:
+ raise RuntimeError("n_data_frames < 1: {self.n_data_frames}")
# Client program.
prog_c = ASTFProgram(stream=False)
- prog_c.set_keepalive_msg(self.m_delay)
- prog_c.send_msg(self.udp_data)
- # No delay, PPS tests combine connect and data send (no data receive).
- prog_c.set_var(u"var1", self.n_data)
+ prog_c.set_keepalive_msg(m_delay)
+ prog_c.set_var(u"var1", self.n_data_frames)
prog_c.set_label(u"a:")
- prog_c.send_msg(self.udp_data)
+ prog_c.send_msg(udp_data)
prog_c.jmp_nz(u"var1", u"a:")
# We should read the server response,
# but no reason to overload client workers even more.
# Server program.
prog_s = ASTFProgram(stream=False)
- prog_s.set_keepalive_msg(self.m_delay)
+ prog_s.set_keepalive_msg(m_delay)
# If server closes too soon, new instances are started
# leading in too much replies. To prevent that, we need to recv all.
- prog_s.recv_msg(1 + self.n_data)
+ prog_s.recv_msg(self.n_data_frames)
# In packet loss scenarios, some instances never get here.
# This maybe increases server traffic duration,
# but no other way if we want to avoid
# TRex creating a second instance of the same server.
- prog_s.send_msg(self.udp_data)
- prog_s.set_var(u"var2", self.n_data)
+ prog_s.set_var(u"var2", self.n_data_frames)
prog_s.set_label(u"b:")
- prog_s.send_msg(self.udp_data)
+ prog_s.send_msg(udp_data)
prog_s.jmp_nz(u"var2", u"b:")
# VPP never duplicates packets,
# so it is safe to close the server instance now.
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -133,8 +129,8 @@ class TrafficProfile(TrafficProfileBaseClass):
temp_c = ASTFTCPClientTemplate(
program=prog_c,
ip_gen=ip_gen,
- limit=self.limit,
- port=8080
+ limit=16515072, # TODO: Any benefit of making this configurable?
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-262144h.py b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-262144h.py
index 8fe8f02a91..2203cf3d0b 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-262144h.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-262144h.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -49,26 +49,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"172.16.0.0"
- self.p1_src_end_ip = u"172.19.255.255"
- self.p1_dst_start_ip = u"20.16.0.0"
- self.p1_dst_end_ip = u"20.19.255.255"
-
- # UDP messages
- self.udp_req = u"GET"
- self.udp_res = u"ACK"
-
- # Headers length
- self.headers_size = 42 # 14B l2 + 20B ipv4 + 8B udp
-
- # No need to set keepalive, both programs end just after start&send.
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -78,13 +58,29 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates ASTFProfile().
:rtype: tuple
"""
- self.udp_req += self._gen_padding(self.headers_size + len(self.udp_req))
- self.udp_res += self._gen_padding(self.headers_size + len(self.udp_res))
+ # IPs used in packet headers.
+ p1_src_start_ip = u"172.16.0.0"
+ p1_src_end_ip = u"172.19.255.255"
+ p1_dst_start_ip = u"20.16.0.0"
+ p1_dst_end_ip = u"20.19.255.255"
+
+ # Headers length
+ headers_size = 46 # 18B L2 + 20B IPv4 + 8B UDP.
+
+ # UDP messages, not padded yet.
+ udp_req = u"GET"
+ udp_res = u"ACK"
+
+ # Padd to the required frame size.
+ udp_req += self._gen_padding(headers_size + len(udp_req))
+ udp_res += self._gen_padding(headers_size + len(udp_res))
+
+ # No need to set keepalive, both programs end just after start&send.
# client commands
prog_c = ASTFProgram(stream=False)
# send REQ message
- prog_c.send_msg(self.udp_req)
+ prog_c.send_msg(udp_req)
# No need to process the response, seeing L2 counter is enough.
# Client program can end here.
@@ -93,22 +89,22 @@ class TrafficProfile(TrafficProfileBaseClass):
# When server instance is created means REQ is visible in L2 counter.
# No need to receive explicitly?
# send RES message
- prog_s.send_msg(self.udp_res)
+ prog_s.send_msg(udp_res)
# Server program can end here.
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -119,7 +115,7 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=16515072, # TODO: set via input parameter ?
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-4096h-pps.py b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-4096h-pps.py
index 018bb7fa2a..5de25273ef 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-4096h-pps.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-4096h-pps.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -46,84 +46,80 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self, **kwargs):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.15.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.15.255"
-
- self.headers_size = 42 # 14B l2 + 20B ipv4 + 8B UDP
-
- self.udp_data = u""
-
- self.n_data = 32 # TODO: set via input parameter
- self.m_delay = 1200000 # delay 1200s (1,200,000 ms)
- self.u_delay = 1000 * self.m_delay # delay 1200s (1,200,000,000 us)
- self.limit = 258048
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
This method MUST return:
- return ip_gen, templates
+ return ip_gen, templates, None
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
- if self.framesize == 64:
- self.udp_data += self._gen_padding(self.headers_size, 72)
- if self.framesize == 1518:
- self.udp_data += self._gen_padding(self.headers_size, 1514)
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.15.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.15.255"
+
+ # The difference between data size and frame size.
+ headers_size = 46 # 18B L2 + 20B IPv4 + 8B UDP.
+
+ # TODO: Use the "connection protocol" from CPS traffic profile?
+ # Currently, the first data packet is all DUT sees about the session.
+
+ # Avoid sending keepalives.
+ m_delay = 2000000 # delay 2000s (2,000,000 ms)
+
+ # Data, not padded yet.
+ udp_data = u""
+ # Pad the data to achieve the intended frame size.
+ udp_data += self._gen_padding(headers_size)
+
+ # Safety check, the current programs send at least 1 packet.
+ if self.n_data_frames < 1:
+ raise RuntimeError("n_data_frames < 1: {self.n_data_frames}")
# Client program.
prog_c = ASTFProgram(stream=False)
- prog_c.set_keepalive_msg(self.m_delay)
- prog_c.send_msg(self.udp_data)
- # No delay, PPS tests combine connect and data send (no data receive).
- prog_c.set_var(u"var1", self.n_data)
+ prog_c.set_keepalive_msg(m_delay)
+ prog_c.set_var(u"var1", self.n_data_frames)
prog_c.set_label(u"a:")
- prog_c.send_msg(self.udp_data)
+ prog_c.send_msg(udp_data)
prog_c.jmp_nz(u"var1", u"a:")
# We should read the server response,
# but no reason to overload client workers even more.
# Server program.
prog_s = ASTFProgram(stream=False)
- prog_s.set_keepalive_msg(self.m_delay)
+ prog_s.set_keepalive_msg(m_delay)
# If server closes too soon, new instances are started
# leading in too much replies. To prevent that, we need to recv all.
- prog_s.recv_msg(1 + self.n_data)
+ prog_s.recv_msg(self.n_data_frames)
# In packet loss scenarios, some instances never get here.
# This maybe increases server traffic duration,
# but no other way if we want to avoid
# TRex creating a second instance of the same server.
- prog_s.send_msg(self.udp_data)
- prog_s.set_var(u"var2", self.n_data)
+ prog_s.set_var(u"var2", self.n_data_frames)
prog_s.set_label(u"b:")
- prog_s.send_msg(self.udp_data)
+ prog_s.send_msg(udp_data)
prog_s.jmp_nz(u"var2", u"b:")
# VPP never duplicates packets,
# so it is safe to close the server instance now.
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -133,8 +129,8 @@ class TrafficProfile(TrafficProfileBaseClass):
temp_c = ASTFTCPClientTemplate(
program=prog_c,
ip_gen=ip_gen,
- limit=self.limit,
- port=8080
+ limit=258048, # TODO: Any benefit of making this configurable?
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-4096h.py b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-4096h.py
index 2285a633b0..81c074e5e3 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-4096h.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-4096h.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -49,26 +49,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.15.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.15.255"
-
- # UDP messages
- self.udp_req = u"GET"
- self.udp_res = u"ACK"
-
- # Headers length
- self.headers_size = 42 # 14B l2 + 20B ipv4 + 8B udp
-
- # No need to set keepalive, both programs end just after start&send.
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -78,13 +58,29 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates ASTFProfile().
:rtype: tuple
"""
- self.udp_req += self._gen_padding(self.headers_size + len(self.udp_req))
- self.udp_res += self._gen_padding(self.headers_size + len(self.udp_res))
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.15.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.15.255"
+
+ # Headers length
+ headers_size = 46 # 18B L2 + 20B IPv4 + 8B UDP.
+
+ # UDP messages, not padded yet.
+ udp_req = u"GET"
+ udp_res = u"ACK"
+
+ # Padd to the required frame size.
+ udp_req += self._gen_padding(headers_size + len(udp_req))
+ udp_res += self._gen_padding(headers_size + len(udp_res))
+
+ # No need to set keepalive, both programs end just after start&send.
# client commands
prog_c = ASTFProgram(stream=False)
# send REQ message
- prog_c.send_msg(self.udp_req)
+ prog_c.send_msg(udp_req)
# No need to process the response, seeing L2 counter is enough.
# Client program can end here.
@@ -93,22 +89,22 @@ class TrafficProfile(TrafficProfileBaseClass):
# When server instance is created means REQ is visible in L2 counter.
# No need to receive explicitly?
# send RES message
- prog_s.send_msg(self.udp_res)
+ prog_s.send_msg(udp_res)
# Server program can end here.
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -119,7 +115,7 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=258048, # TODO: set via input parameter ?
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-65536h-pps.py b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-65536h-pps.py
index f65c60b6a5..73270607c1 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-65536h-pps.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-65536h-pps.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -46,84 +46,80 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self, **kwargs):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.255.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.255.255"
-
- self.headers_size = 42 # 14B l2 + 20B ipv4 + 8B UDP
-
- self.udp_data = u""
-
- self.n_data = 32 # TODO: set via input parameter
- self.m_delay = 1200000 # delay 1200s (1,200,000 ms)
- self.u_delay = 1000 * self.m_delay # delay 1200s (1,200,000,000 us)
- self.limit = 4128768
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
This method MUST return:
- return ip_gen, templates
+ return ip_gen, templates, None
:returns: IP generator and profile templates for ASTFProfile().
:rtype: tuple
"""
- if self.framesize == 64:
- self.udp_data += self._gen_padding(self.headers_size, 72)
- if self.framesize == 1518:
- self.udp_data += self._gen_padding(self.headers_size, 1514)
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.255.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.255.255"
+
+ # The difference between data size and frame size.
+ headers_size = 46 # 18B L2 + 20B IPv4 + 8B UDP.
+
+ # TODO: Use the "connection protocol" from CPS traffic profile?
+ # Currently, the first data packet is all DUT sees about the session.
+
+ # Avoid sending keepalives.
+ m_delay = 2000000 # delay 2000s (2,000,000 ms)
+
+ # Data, not padded yet.
+ udp_data = u""
+ # Pad the data to achieve the intended frame size.
+ udp_data += self._gen_padding(headers_size)
+
+ # Safety check, the current programs send at least 1 packet.
+ if self.n_data_frames < 1:
+ raise RuntimeError("n_data_frames < 1: {self.n_data_frames}")
# Client program.
prog_c = ASTFProgram(stream=False)
- prog_c.set_keepalive_msg(self.m_delay)
- prog_c.send_msg(self.udp_data)
- # No delay, PPS tests combine connect and data send (no data receive).
- prog_c.set_var(u"var1", self.n_data)
+ prog_c.set_keepalive_msg(m_delay)
+ prog_c.set_var(u"var1", self.n_data_frames)
prog_c.set_label(u"a:")
- prog_c.send_msg(self.udp_data)
+ prog_c.send_msg(udp_data)
prog_c.jmp_nz(u"var1", u"a:")
# We should read the server response,
# but no reason to overload client workers even more.
# Server program.
prog_s = ASTFProgram(stream=False)
- prog_s.set_keepalive_msg(self.m_delay)
+ prog_s.set_keepalive_msg(m_delay)
# If server closes too soon, new instances are started
# leading in too much replies. To prevent that, we need to recv all.
- prog_s.recv_msg(1 + self.n_data)
+ prog_s.recv_msg(self.n_data_frames)
# In packet loss scenarios, some instances never get here.
# This maybe increases server traffic duration,
# but no other way if we want to avoid
# TRex creating a second instance of the same server.
- prog_s.send_msg(self.udp_data)
- prog_s.set_var(u"var2", self.n_data)
+ prog_s.set_var(u"var2", self.n_data_frames)
prog_s.set_label(u"b:")
- prog_s.send_msg(self.udp_data)
+ prog_s.send_msg(udp_data)
prog_s.jmp_nz(u"var2", u"b:")
# VPP never duplicates packets,
# so it is safe to close the server instance now.
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -133,8 +129,8 @@ class TrafficProfile(TrafficProfileBaseClass):
temp_c = ASTFTCPClientTemplate(
program=prog_c,
ip_gen=ip_gen,
- limit=self.limit,
- port=8080
+ limit=4128768, # TODO: Any benefit of making this configurable?
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-65536h.py b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-65536h.py
index 327cc36e01..f1ee9125f2 100644
--- a/GPL/traffic_profiles/trex/trex-astf-ethip4udp-65536h.py
+++ b/GPL/traffic_profiles/trex/trex-astf-ethip4udp-65536h.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -49,26 +49,6 @@ from profile_trex_astf_base_class import TrafficProfileBaseClass
class TrafficProfile(TrafficProfileBaseClass):
"""Traffic profile."""
- def __init__(self):
- """Initialization and setting of profile parameters."""
-
- super(TrafficProfileBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.0.0"
- self.p1_src_end_ip = u"192.168.255.255"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.255.255"
-
- # UDP messages
- self.udp_req = u"GET"
- self.udp_res = u"ACK"
-
- # Headers length
- self.headers_size = 42 # 14B l2 + 20B ipv4 + 8B udp
-
- # No need to set keepalive, both programs end just after start&send.
-
def define_profile(self):
"""Define profile to be used by advanced stateful traffic generator.
@@ -78,13 +58,29 @@ class TrafficProfile(TrafficProfileBaseClass):
:returns: IP generator and profile templates ASTFProfile().
:rtype: tuple
"""
- self.udp_req += self._gen_padding(self.headers_size + len(self.udp_req))
- self.udp_res += self._gen_padding(self.headers_size + len(self.udp_res))
+ # IPs used in packet headers.
+ p1_src_start_ip = u"192.168.0.0"
+ p1_src_end_ip = u"192.168.255.255"
+ p1_dst_start_ip = u"20.0.0.0"
+ p1_dst_end_ip = u"20.0.255.255"
+
+ # Headers length
+ headers_size = 46 # 18B L2 + 20B IPv4 + 8B UDP.
+
+ # UDP messages, not padded yet.
+ udp_req = u"GET"
+ udp_res = u"ACK"
+
+ # Padd to the required frame size.
+ udp_req += self._gen_padding(headers_size + len(udp_req))
+ udp_res += self._gen_padding(headers_size + len(udp_res))
+
+ # No need to set keepalive, both programs end just after start&send.
# client commands
prog_c = ASTFProgram(stream=False)
# send REQ message
- prog_c.send_msg(self.udp_req)
+ prog_c.send_msg(udp_req)
# No need to process the response, seeing L2 counter is enough.
# Client program can end here.
@@ -93,22 +89,22 @@ class TrafficProfile(TrafficProfileBaseClass):
# When server instance is created means REQ is visible in L2 counter.
# No need to receive explicitly?
# send RES message
- prog_s.send_msg(self.udp_res)
+ prog_s.send_msg(udp_res)
# Server program can end here.
# ip generators
ip_gen_c = ASTFIPGenDist(
- ip_range=[self.p1_src_start_ip, self.p1_src_end_ip],
- distribution=u"seq"
+ ip_range=[p1_src_start_ip, p1_src_end_ip],
+ distribution=u"seq",
)
ip_gen_s = ASTFIPGenDist(
- ip_range=[self.p1_dst_start_ip, self.p1_dst_end_ip],
- distribution=u"seq"
+ ip_range=[p1_dst_start_ip, p1_dst_end_ip],
+ distribution=u"seq",
)
ip_gen = ASTFIPGen(
glob=ASTFIPGenGlobal(ip_offset=u"0.0.0.1"),
dist_client=ip_gen_c,
- dist_server=ip_gen_s
+ dist_server=ip_gen_s,
)
# server association
@@ -119,7 +115,7 @@ class TrafficProfile(TrafficProfileBaseClass):
program=prog_c,
ip_gen=ip_gen,
limit=4128768, # TODO: set via input parameter ?
- port=8080
+ port=8080,
)
temp_s = ASTFTCPServerTemplate(program=prog_s, assoc=s_assoc)
template = ASTFTemplate(client_template=temp_c, server_template=temp_s)
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-dot1qip4asym-ip4src254.py b/GPL/traffic_profiles/trex/trex-stl-2n-dot1qip4asym-ip4src254.py
deleted file mode 100644
index f5da9d95b7..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-dot1qip4asym-ip4src254.py
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Direction 0 --> 1:
- - Packet: ETH / IP /
- - Source IP address range: 10.10.10.1 - 10.10.10.254
- - Destination IP address range: 20.20.20.1
- - Direction 1 --> 0:
- - Packet: ETH / DOT1Q / IP /
- - Source IP address range: 20.20.20.1 - 20.20.20.254
- - Destination IP address range: 10.10.10.1
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # VLAN ID
- self.vlan_id = 10
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.10.10.1"
- self.p1_src_end_ip = u"10.10.10.254"
- self.p1_dst_start_ip = u"20.20.20.1"
-
- self.p2_src_start_ip = u"20.20.20.1"
- self.p2_src_end_ip = u"20.20.20.254"
- self.p2_dst_start_ip = u"10.10.10.1"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- Dot1Q(
- vlan=self.vlan_id
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-dot1qip6asym-ip6src253.py b/GPL/traffic_profiles/trex/trex-stl-2n-dot1qip6asym-ip6src253.py
deleted file mode 100644
index a126e7a678..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-dot1qip6asym-ip6src253.py
+++ /dev/null
@@ -1,144 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Direction 0 --> 1:
- - Packet: ETH / IPv6 /
- - Source IP address range: 2001:1::2 - 2001:1::FE
- - Destination IP address range: 2001:2::2
- - Direction 1 --> 0:
- - Packet: ETH / DOT1Q / IPv6 /
- - Source IP address range: 2001:2::2 - 2001:2::FE
- - Destination IP address range: 2001:1::2
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # VLAN ID
- self.vlan_id = 10
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"2001:1::2"
- self.p1_src_end_ip = u"2001:1::FE"
- self.p1_dst_start_ip = u"2001:2::2"
-
- self.p2_src_start_ip = u"2001:2::2"
- self.p2_src_end_ip = u"2001:2::FE"
- self.p2_dst_start_ip = u"2001:1::2"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IPv6 |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- base_p1, count_p1 = self._get_start_end_ipv6(
- self.p1_src_start_ip,
- self.p1_src_end_ip
- )
- base_p2, count_p2 = self._get_start_end_ipv6(
- self.p2_src_start_ip,
- self.p2_src_end_ip
- )
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IPv6(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- Dot1Q(
- vlan=self.vlan_id
- ) /
- IPv6(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ipv6_src",
- min_value=base_p1,
- max_value=base_p1 + count_p1,
- size=8, op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_src",
- pkt_offset=u"IPv6.src",
- offset_fixup=8
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ipv6_src",
- min_value=base_p2,
- max_value=base_p2 + count_p2,
- size=8, op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_src",
- pkt_offset=u"IPv6.src",
- offset_fixup=8
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :returns: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-1024t.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-1024t.py
deleted file mode 100644
index 42c015272d..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-1024t.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Direction 0 --> 1:
- - Packet: ETH / IP
- - Source IP address range: 10.128.1.0 - 10.132.0.255
- - Destination IP address range: 10.0.1.0 - 10.4.0.255
- - Direction 1 --> 0:
- - Packet: ETH / IP / UDP / GENEVE / ETH / IP
- - Outer Source IP address range: 1.1.1.1
- - Outer Destination IP address range: 1.1.1.2
- - Inner Source IP address range: 10.0.1.0 - 10.4.0.255
- - Inner Destination IP address range: 10.128.1.0 - 10.132.0.255
- - Source UDP port range: 1024 - 65535
- - Destination UDP port range: 6081
-"""
-
-from ctypes import c_int
-from ipaddress import IPv4Address
-
-from trex.stl.api import *
-from scapy.contrib.geneve import GENEVE
-
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # Nr. of GENEVE tunnels
- self.n_tunnels = 1024
- # VNIs used in GENEVE headers of Direction 1 --> 0.
- self.p2_geneve_start_vni = 1
-
- # IPs used in packet headers of Direction 0 --> 1.
- self.p1_src_start_ip = u"10.128.1.0"
- self.p1_dst_start_ip = u"10.0.1.0"
-
- # IPs used in packet headers of Direction 1 --> 0.
- self.p2_outer_src_ip = u"1.1.1.1"
- self.p2_outer_dst_ip = u"1.1.1.2"
-
- self.p2_inner_src_start_ip = u"10.0.1.0"
- self.p2_inner_dst_start_ip = u"10.128.1.0"
-
- # MACs used in inner ethernet header of Direction 1 --> 0.
- self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
-
- # UDP ports used in packet headers of Direction 1 --> 0.
- self.p2_udp_sport_start = 1024
- self.p2_udp_dport = 6081
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
- p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
- p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
- p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
- p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_outer_src_ip,
- dst=self.p2_outer_dst_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_udp_sport_start,
- dport=self.p2_udp_dport
- ) /
- GENEVE(vni=self.p2_geneve_start_vni) /
- Ether(dst=self.p2_inner_dst_mac) /
- IP(
- src=self.p2_inner_src_start_ip,
- dst=self.p2_inner_dst_start_ip,
- proto=61
- )
- )
- base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip_src",
- min_value=p1_src_start_ip_int,
- max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=p1_dst_start_ip_int,
- max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip",
- min_value=0,
- max_value=self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_src_start_ip_int,
- pkt_offset=u"IP:1.src"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_dst_start_ip_int,
- pkt_offset=u"IP:1.dst"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=2,
- mask=0xffff,
- add_value=self.p2_udp_sport_start,
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff00,
- add_value=(self.p2_geneve_start_vni << 8),
- pkt_offset=u"GENEVE.vni"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff,
- shift=-8,
- offset_fixup=2,
- add_value=c_int(
- int(
- self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
- ) << 8
- ).value,
- pkt_offset=u"Ether:1.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP:1"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmFixChecksumHw(
- l3_offset=u"IP",
- l4_offset=u"UDP",
- l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-16t.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-16t.py
deleted file mode 100644
index 151ae505c8..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-16t.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Direction 0 --> 1:
- - Packet: ETH / IP
- - Source IP address range: 10.128.1.0 - 10.128.17.255
- - Destination IP address range: 10.0.1.0 - 10.0.17.255
- - Direction 1 --> 0:
- - Packet: ETH / IP / UDP / GENEVE / ETH / IP
- - Outer Source IP address range: 1.1.1.1
- - Outer Destination IP address range: 1.1.1.2
- - Inner Source IP address range: 10.0.1.0 - 10.0.17.255
- - Inner Destination IP address range: 10.128.1.0 - 10.128.17.255
- - Source UDP port range: 1024 - 5119
- - Destination UDP port range: 6081
-"""
-
-from ctypes import c_int
-from ipaddress import IPv4Address
-
-from scapy.contrib.geneve import GENEVE
-from trex.stl.api import *
-
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # Nr. of GENEVE tunnels
- self.n_tunnels = 16
- # VNIs used in GENEVE headers of Direction 1 --> 0.
- self.p2_geneve_start_vni = 1
-
- # IPs used in packet headers of Direction 0 --> 1.
- self.p1_src_start_ip = u"10.128.1.0"
- self.p1_dst_start_ip = u"10.0.1.0"
-
- # IPs used in packet headers of Direction 1 --> 0.
- self.p2_outer_src_ip = u"1.1.1.1"
- self.p2_outer_dst_ip = u"1.1.1.2"
-
- self.p2_inner_src_start_ip = u"10.0.1.0"
- self.p2_inner_dst_start_ip = u"10.128.1.0"
-
- # MACs used in inner ethernet header of Direction 1 --> 0.
- self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
-
- # UDP ports used in packet headers of Direction 1 --> 0.
- self.p2_udp_sport_start = 1024
- self.p2_udp_dport = 6081
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
- p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
- p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
- p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
- p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_outer_src_ip,
- dst=self.p2_outer_dst_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_udp_sport_start,
- dport=self.p2_udp_dport
- ) /
- GENEVE(vni=self.p2_geneve_start_vni) /
- Ether(dst=self.p2_inner_dst_mac) /
- IP(
- src=self.p2_inner_src_start_ip,
- dst=self.p2_inner_dst_start_ip,
- proto=61
- )
- )
- base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip_src",
- min_value=p1_src_start_ip_int,
- max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=p1_dst_start_ip_int,
- max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip",
- min_value=0,
- max_value=self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_src_start_ip_int,
- pkt_offset=u"IP:1.src"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_dst_start_ip_int,
- pkt_offset=u"IP:1.dst"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=2,
- mask=0xffff,
- add_value=self.p2_udp_sport_start,
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff00,
- add_value=(self.p2_geneve_start_vni << 8),
- pkt_offset=u"GENEVE.vni"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff,
- shift=-8,
- offset_fixup=2,
- add_value=c_int(
- int(
- self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
- ) << 8
- ).value,
- pkt_offset=u"Ether:1.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP:1"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmFixChecksumHw(
- l3_offset=u"IP",
- l4_offset=u"UDP",
- l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-1t.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-1t.py
deleted file mode 100644
index a62577e292..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-1t.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Direction 0 --> 1:
- - Packet: ETH / IP
- - Source IP address range: 10.128.1.0 - 10.128.1.255
- - Destination IP address range: 10.0.1.0 - 10.0.1.255
- - Direction 1 --> 0:
- - Packet: ETH / IP / UDP / GENEVE / ETH / IP
- - Outer Source IP address range: 1.1.1.1
- - Outer Destination IP address range: 1.1.1.2
- - Inner Source IP address range: 10.0.1.0 - 10.0.1.255
- - Inner Destination IP address range: 10.128.1.0 - 10.128.1.255
- - Source UDP port range: 1024 - 1279
- - Destination UDP port range: 6081
-"""
-
-from ctypes import c_int
-from ipaddress import IPv4Address
-
-from scapy.contrib.geneve import GENEVE
-from trex.stl.api import *
-
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # Nr. of GENEVE tunnels
- self.n_tunnels = 1
- # VNIs used in GENEVE headers of Direction 1 --> 0.
- self.p2_geneve_start_vni = 1
-
- # IPs used in packet headers of Direction 0 --> 1.
- self.p1_src_start_ip = u"10.128.1.0"
- self.p1_dst_start_ip = u"10.0.1.0"
-
- # IPs used in packet headers of Direction 1 --> 0.
- self.p2_outer_src_ip = u"1.1.1.1"
- self.p2_outer_dst_ip = u"1.1.1.2"
-
- self.p2_inner_src_start_ip = u"10.0.1.0"
- self.p2_inner_dst_start_ip = u"10.128.1.0"
-
- # MACs used in inner ethernet header of Direction 1 --> 0.
- self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
-
- # UDP ports used in packet headers of Direction 1 --> 0.
- self.p2_udp_sport_start = 1024
- self.p2_udp_dport = 6081
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
- p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
- p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
- p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
- p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_outer_src_ip,
- dst=self.p2_outer_dst_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_udp_sport_start,
- dport=self.p2_udp_dport
- ) /
- GENEVE(vni=self.p2_geneve_start_vni) /
- Ether(dst=self.p2_inner_dst_mac) /
- IP(
- src=self.p2_inner_src_start_ip,
- dst=self.p2_inner_dst_start_ip,
- proto=61
- )
- )
- base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip_src",
- min_value=p1_src_start_ip_int,
- max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=p1_dst_start_ip_int,
- max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip",
- min_value=0,
- max_value=self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_src_start_ip_int,
- pkt_offset=u"IP:1.src"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_dst_start_ip_int,
- pkt_offset=u"IP:1.dst"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=2,
- mask=0xffff,
- add_value=self.p2_udp_sport_start,
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff00,
- add_value=(self.p2_geneve_start_vni << 8),
- pkt_offset=u"GENEVE.vni"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff,
- shift=-8,
- offset_fixup=2,
- add_value=c_int(
- int(
- self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
- ) << 8
- ).value,
- pkt_offset=u"Ether:1.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP:1"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmFixChecksumHw(
- l3_offset=u"IP",
- l4_offset=u"UDP",
- l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-256t.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-256t.py
deleted file mode 100644
index 8098f919d5..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-256t.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Direction 0 --> 1:
- - Packet: ETH / IP
- - Source IP address range: 10.128.1.0 - 10.129.0.255
- - Destination IP address range: 10.0.1.0 - 10.1.0.255
- - Direction 1 --> 0:
- - Packet: ETH / IP / UDP / GENEVE / ETH / IP
- - Outer Source IP address range: 1.1.1.1
- - Outer Destination IP address range: 1.1.1.2
- - Inner Source IP address range: 10.0.1.0 - 10.1.0.255
- - Inner Destination IP address range: 10.128.1.0 - 10.129.0.255
- - Source UDP port range: 1024 - 65535
- - Destination UDP port range: 6081
-"""
-
-from ctypes import c_int
-from ipaddress import IPv4Address
-
-from scapy.contrib.geneve import GENEVE
-from trex.stl.api import *
-
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # Nr. of GENEVE tunnels
- self.n_tunnels = 256
- # VNIs used in GENEVE headers of Direction 1 --> 0.
- self.p2_geneve_start_vni = 1
-
- # IPs used in packet headers of Direction 0 --> 1.
- self.p1_src_start_ip = u"10.128.1.0"
- self.p1_dst_start_ip = u"10.0.1.0"
-
- # IPs used in packet headers of Direction 1 --> 0.
- self.p2_outer_src_ip = u"1.1.1.1"
- self.p2_outer_dst_ip = u"1.1.1.2"
-
- self.p2_inner_src_start_ip = u"10.0.1.0"
- self.p2_inner_dst_start_ip = u"10.128.1.0"
-
- # MACs used in inner ethernet header of Direction 1 --> 0.
- self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
-
- # UDP ports used in packet headers of Direction 1 --> 0.
- self.p2_udp_sport_start = 1024
- self.p2_udp_dport = 6081
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
- p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
- p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
- p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
- p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_outer_src_ip,
- dst=self.p2_outer_dst_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_udp_sport_start,
- dport=self.p2_udp_dport
- ) /
- GENEVE(vni=self.p2_geneve_start_vni) /
- Ether(dst=self.p2_inner_dst_mac) /
- IP(
- src=self.p2_inner_src_start_ip,
- dst=self.p2_inner_dst_start_ip,
- proto=61
- )
- )
- base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip_src",
- min_value=p1_src_start_ip_int,
- max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=p1_dst_start_ip_int,
- max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip",
- min_value=0,
- max_value=self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_src_start_ip_int,
- pkt_offset=u"IP:1.src"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_dst_start_ip_int,
- pkt_offset=u"IP:1.dst"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=2,
- mask=0xffff,
- add_value=self.p2_udp_sport_start,
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff00,
- add_value=(self.p2_geneve_start_vni << 8),
- pkt_offset=u"GENEVE.vni"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff,
- shift=-8,
- offset_fixup=2,
- add_value=c_int(
- int(
- self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
- ) << 8
- ).value,
- pkt_offset=u"Ether:1.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP:1"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmFixChecksumHw(
- l3_offset=u"IP",
- l4_offset=u"UDP",
- l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-4t.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-4t.py
deleted file mode 100644
index 975d204d7d..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-4t.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Direction 0 --> 1:
- - Packet: ETH / IP
- - Source IP address range: 10.128.1.0 - 10.128.4.255
- - Destination IP address range: 10.0.1.0 - 10.0.4.255
- - Direction 1 --> 0:
- - Packet: ETH / IP / UDP / GENEVE / ETH / IP
- - Outer Source IP address range: 1.1.1.1
- - Outer Destination IP address range: 1.1.1.2
- - Inner Source IP address range: 10.0.1.0 - 10.0.4.255
- - Inner Destination IP address range: 10.128.1.0 - 10.128.4.255
- - Source UDP port range: 1024 - 2047
- - Destination UDP port range: 6081
-"""
-
-from ctypes import c_int
-from ipaddress import IPv4Address
-
-from scapy.contrib.geneve import GENEVE
-from trex.stl.api import *
-
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # Nr. of GENEVE tunnels
- self.n_tunnels = 4
- # VNIs used in GENEVE headers of Direction 1 --> 0.
- self.p2_geneve_start_vni = 1
-
- # IPs used in packet headers of Direction 0 --> 1.
- self.p1_src_start_ip = u"10.128.1.0"
- self.p1_dst_start_ip = u"10.0.1.0"
-
- # IPs used in packet headers of Direction 1 --> 0.
- self.p2_outer_src_ip = u"1.1.1.1"
- self.p2_outer_dst_ip = u"1.1.1.2"
-
- self.p2_inner_src_start_ip = u"10.0.1.0"
- self.p2_inner_dst_start_ip = u"10.128.1.0"
-
- # MACs used in inner ethernet header of Direction 1 --> 0.
- self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
-
- # UDP ports used in packet headers of Direction 1 --> 0.
- self.p2_udp_sport_start = 1024
- self.p2_udp_dport = 6081
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
- p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
- p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
- p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
- p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_outer_src_ip,
- dst=self.p2_outer_dst_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_udp_sport_start,
- dport=self.p2_udp_dport
- ) /
- GENEVE(vni=self.p2_geneve_start_vni) /
- Ether(dst=self.p2_inner_dst_mac) /
- IP(
- src=self.p2_inner_src_start_ip,
- dst=self.p2_inner_dst_start_ip,
- proto=61
- )
- )
- base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip_src",
- min_value=p1_src_start_ip_int,
- max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=p1_dst_start_ip_int,
- max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip",
- min_value=0,
- max_value=self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_src_start_ip_int,
- pkt_offset=u"IP:1.src"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_dst_start_ip_int,
- pkt_offset=u"IP:1.dst"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=2,
- mask=0xffff,
- add_value=self.p2_udp_sport_start,
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff00,
- add_value=(self.p2_geneve_start_vni << 8),
- pkt_offset=u"GENEVE.vni"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff,
- shift=-8,
- offset_fixup=2,
- add_value=c_int(
- int(
- self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
- ) << 8
- ).value,
- pkt_offset=u"Ether:1.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP:1"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmFixChecksumHw(
- l3_offset=u"IP",
- l4_offset=u"UDP",
- l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-64t.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-64t.py
deleted file mode 100644
index fd1fa88a52..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-geneve-64t.py
+++ /dev/null
@@ -1,231 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Direction 0 --> 1:
- - Packet: ETH / IP
- - Source IP address range: 10.128.1.0 - 10.128.65.255
- - Destination IP address range: 10.0.1.0 - 10.0.65.255
- - Direction 1 --> 0:
- - Packet: ETH / IP / UDP / GENEVE / ETH / IP
- - Outer Source IP address range: 1.1.1.1
- - Outer Destination IP address range: 1.1.1.2
- - Inner Source IP address range: 10.0.1.0 - 10.0.65.255
- - Inner Destination IP address range: 10.128.1.0 - 10.128.65.255
- - Source UDP port range: 1024 - 17407
- - Destination UDP port range: 6081
-"""
-
-from ctypes import c_int
-from ipaddress import IPv4Address
-
-from scapy.contrib.geneve import GENEVE
-from trex.stl.api import *
-
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # Nr. of GENEVE tunnels
- self.n_tunnels = 64
- # VNIs used in GENEVE headers of Direction 1 --> 0.
- self.p2_geneve_start_vni = 1
-
- # IPs used in packet headers of Direction 0 --> 1.
- self.p1_src_start_ip = u"10.128.1.0"
- self.p1_dst_start_ip = u"10.0.1.0"
-
- # IPs used in packet headers of Direction 1 --> 0.
- self.p2_outer_src_ip = u"1.1.1.1"
- self.p2_outer_dst_ip = u"1.1.1.2"
-
- self.p2_inner_src_start_ip = u"10.0.1.0"
- self.p2_inner_dst_start_ip = u"10.128.1.0"
-
- # MACs used in inner ethernet header of Direction 1 --> 0.
- self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
-
- # UDP ports used in packet headers of Direction 1 --> 0.
- self.p2_udp_sport_start = 1024
- self.p2_udp_dport = 6081
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
- p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
- p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
- p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
- p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_outer_src_ip,
- dst=self.p2_outer_dst_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_udp_sport_start,
- dport=self.p2_udp_dport
- ) /
- GENEVE(vni=self.p2_geneve_start_vni) /
- Ether(dst=self.p2_inner_dst_mac) /
- IP(
- src=self.p2_inner_src_start_ip,
- dst=self.p2_inner_dst_start_ip,
- proto=61
- )
- )
- base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip_src",
- min_value=p1_src_start_ip_int,
- max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=p1_dst_start_ip_int,
- max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip",
- min_value=0,
- max_value=self.n_tunnels * 256 - 1,
- size=4,
- op=u"inc"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_src_start_ip_int,
- pkt_offset=u"IP:1.src"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffffff,
- add_value=p2_inner_dst_start_ip_int,
- pkt_offset=u"IP:1.dst"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=2,
- mask=0xffff,
- add_value=self.p2_udp_sport_start,
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff00,
- add_value=(self.p2_geneve_start_vni << 8),
- pkt_offset=u"GENEVE.vni"
- ),
- STLVmWrMaskFlowVar(
- fv_name=u"ip",
- pkt_cast_size=4,
- mask=0xffffff,
- shift=-8,
- offset_fixup=2,
- add_value=c_int(
- int(
- self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
- ) << 8
- ).value,
- pkt_offset=u"Ether:1.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP:1"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmFixChecksumHw(
- l3_offset=u"IP",
- l4_offset=u"UDP",
- l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst10000.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst10000.py
deleted file mode 100644
index fc6ac6ef57..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst10000.py
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.39.15
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.39.15
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.39.15"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.39.15"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4, op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst100000.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst100000.py
deleted file mode 100644
index a16e26c335..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst100000.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.1.134.159
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.1.134.159
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.1.134.159"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.1.134.159"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst1000000.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst1000000.py
deleted file mode 100644
index 37bc69d366..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst1000000.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.15.66.63
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.15.66.63
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.15.66.63"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.15.66.63"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name="dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op="inc"
- ),
- STLVmWrFlowVar(
- fv_name="dst",
- pkt_offset="IP.dst"
- ),
- STLVmFixIpv4(
- offset="IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name="dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op="inc"
- ),
- STLVmWrFlowVar(
- fv_name="dst",
- pkt_offset="IP.dst"
- ),
- STLVmFixIpv4(
- offset="IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4src253.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4src253.py
deleted file mode 100644
index e1741f98e9..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4src253.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.10.10.2 - 10.10.10.254
- - Destination IP address range: 20.20.20.2
- - Direction 1 --> 0:
- - Source IP address range: 20.20.20.2 - 20.20.20.254
- - Destination IP address range: 10.10.10.2
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.10.10.2"
- self.p1_src_end_ip = u"10.10.10.254"
- self.p1_dst_start_ip = u"20.20.20.2"
-
- self.p2_src_start_ip = u"20.20.20.2"
- self.p2_src_end_ip = u"20.20.20.254"
- self.p2_dst_start_ip = u"10.10.10.2"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4src254.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4src254.py
deleted file mode 100644
index 8afc3b6fd5..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4src254.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.10.10.1 - 10.10.10.254
- - Destination IP address range: 20.20.20.1
- - Direction 1 --> 0:
- - Source IP address range: 20.20.20.1 - 20.20.20.254
- - Destination IP address range: 10.10.10.1
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.10.10.1"
- self.p1_src_end_ip = u"10.10.10.254"
- self.p1_dst_start_ip = u"20.20.20.1"
-
- self.p2_src_start_ip = u"20.20.20.1"
- self.p2_src_end_ip = u"20.20.20.254"
- self.p2_dst_start_ip = u"10.10.10.1"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc10kip4src10k.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc10kip4src10k.py
deleted file mode 100644
index 2882027f4c..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc10kip4src10k.py
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: | ETH | IP |
- - Direction 0 --> 1:
- - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:27:0f
- - Source IP address range: 10.0.0.2 - 10.0.39.17
- - Destination IP address range: 20.0.0.1
- - Direction 1 --> 0:
- - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:27:0f
- - Source IP address range: 20.0.0.2 - 20.0.39.17
- - Destination IP address range: 10.0.0.1
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.clients = 10000
-
- # MACs used in packet headers.
- self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.2"
- self.p1_src_end_ip = u"10.0.39.17"
- self.p1_dst_start_ip = u"20.0.0.1"
-
- self.p2_src_start_ip = u"20.0.0.2"
- self.p2_src_end_ip = u"20.0.39.17"
- self.p2_dst_start_ip = u"10.0.0.1"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- src=self.p1_src_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- src=self.p2_src_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset=8
- ),
- STLVmFlowVar(
- name=u"src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset=8
- ),
- STLVmFlowVar(
- name=u"src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :returns: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc500kdst500k.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc500kdst500k.py
deleted file mode 100644
index 7792236269..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc500kdst500k.py
+++ /dev/null
@@ -1,225 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:07:a1:1f
- - Destination MAC address range: fa:ce:00:00:00:00 - fa:ce:00:07:a1:1f
- - Source IP address range: 10.0.0.0 - 10.7.161.31
- - Destination IP address range: 20.0.0.0 - 20.7.161.31
- - Direction 1 --> 0:
- - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:07:a1:1f
- - Destination MAC address range: ca:fe:00:00:00:00 - ca:fe:00:07:a1:1f
- - Source IP address range: 20.0.0.0 - 20.7.161.31
- - Destination IP address range: 10.0.0.0 - 10.7.161.31
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.clients = 500000
-
- # MACs used in packet headers.
- self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p1_dst_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p2_dst_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.0"
- self.p1_src_end_ip = u"10.7.161.31"
-
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.7.161.31"
-
- self.p2_src_start_ip = u"20.0.0.0"
- self.p2_src_end_ip = u"20.7.161.31"
-
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.7.161.31"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- src=self.p1_src_start_mac,
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- src=self.p2_src_start_mac,
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc50kdst50k.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc50kdst50k.py
deleted file mode 100644
index 49d1032abb..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc50kdst50k.py
+++ /dev/null
@@ -1,224 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:c3:4f
- - Destination MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:c3:4f
- - Source IP address range: 10.0.0.0 - 10.0.195.79
- - Destination IP address range: 20.0.0.0 - 20.0.195.79
- - Direction 1 --> 0:
- - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:c3:4f
- - Destination MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:c3:4f
- - Source IP address range: 20.0.0.0 - 20.0.195.79
- - Destination IP address range: 10.0.0.0 - 10.0.195.79
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.clients = 50000
-
- # MACs used in packet headers.
- self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p1_dst_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p2_dst_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.0"
- self.p1_src_end_ip = u"10.0.195.79"
-
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.195.79"
-
- self.p2_src_start_ip = u"20.0.0.0"
- self.p2_src_end_ip = u"20.0.195.79"
-
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.195.79"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- src=self.p1_src_start_mac,
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- src=self.p2_src_start_mac,
- dst=self.p2_dst_start_mac) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc5kdst5k.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc5kdst5k.py
deleted file mode 100644
index d71c2d6eab..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-macsrc5kdst5k.py
+++ /dev/null
@@ -1,225 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:13:87
- - Destination MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:13:87
- - Source IP address range: 10.0.0.0 - 10.0.19.135
- - Destination IP address range: 20.0.0.0 - 20.0.19.135
- - Direction 1 --> 0:
- - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:13:87
- - Destination MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:13:87
- - Source IP address range: 20.0.0.0 - 20.0.19.135
- - Destination IP address range: 10.0.0.0 - 10.0.19.135
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.clients = 5000
-
- # MACs used in packet headers.
- self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p1_dst_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p2_dst_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.0"
- self.p1_src_end_ip = u"10.0.19.135"
-
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.19.135"
-
- self.p2_src_start_ip = u"20.0.0.0"
- self.p2_src_end_ip = u"20.0.19.135"
-
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.19.135"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- src=self.p1_src_start_mac,
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- src=self.p2_src_start_mac,
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-1000u15p.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-1000u15p.py
deleted file mode 100644
index b8abc8a069..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-1000u15p.py
+++ /dev/null
@@ -1,156 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 20.0.0.0 - 20.0.3.231
- - Destination IP address range: 12.0.0.2
- - Source UDP port range: 1024 - 1038
- - Destination UDP port range: 1024
- - Direction 1 --> 0:
- - Source IP address range: 12.0.0.2
- - Destination IP address range: 200.0.0.0
- - Source UDP port range: 1024
- - Destination UDP port range: 1024 - 16023
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"20.0.0.0"
- self.p1_src_end_ip = u"20.0.3.231"
- self.p1_dst_start_ip = u"12.0.0.2"
-
- self.p2_src_start_ip = u"12.0.0.2"
- self.p2_src_end_ip = u"12.0.0.2"
- self.p2_dst_start_ip = u"200.0.0.0"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1024
- self.p1_src_end_udp_port = 1038
- self.p1_dst_start_udp_port = 1024
-
- self.p2_src_start_udp_port = 1024
- self.p2_dst_start_udp_port = 1024
- self.p2_dst_end_udp_port = 16023
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p1_src_start_ip,
- ip_max=self.p1_src_end_ip,
- port_min=self.p1_src_start_udp_port,
- port_max=self.p1_src_end_udp_port,
- name=u"tuple"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(offset=u"IP"),
- STLVmWrFlowVar(
- fv_name=u"tuple.port",
- pkt_offset=u"UDP.sport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dport",
- min_value=self.p2_dst_start_udp_port,
- max_value=self.p2_dst_end_udp_port,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dport",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-10u1000p-conc.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-10u1000p-conc.py
deleted file mode 100644
index 6ba4c34340..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-10u1000p-conc.py
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 10.10.10.2 - 10.10.10.11
- - Destination IP address range: 20.20.20.2 - 20.20.20.11
- - Source UDP port range: 1001 - 2000
- - Destination UDP port range: 2001 - 3000
- - Direction 1 --> 0:
- - Source IP address range: 20.20.20.2 - 20.20.20.11
- - Destination IP address range: 10.10.10.2 - 10.10.10.11
- - Source UDP port range: 2001 - 3000
- - Destination UDP port range: 1001 - 2000
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.10.10.2"
- self.p1_src_end_ip = u"10.10.10.11"
- self.p1_dst_start_ip = u"20.20.20.2"
- self.p1_dst_end_ip = u"20.20.20.11"
-
- self.p2_src_start_ip = u"20.20.20.2"
- self.p2_src_end_ip = u"20.20.20.11"
- self.p2_dst_start_ip = u"10.10.10.2"
- self.p2_dst_end_ip = u"10.10.10.11"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1001
- self.p1_src_end_udp_port = 2000
- self.p1_dst_start_udp_port = 2001
- self.p1_dst_end_udp_port = 3000
-
- self.p2_src_start_udp_port = 2001
- self.p2_src_end_udp_port = 3000
- self.p2_dst_start_udp_port = 1001
- self.p2_dst_end_udp_port = 2000
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p1_src_start_ip,
- ip_max=self.p1_src_end_ip,
- port_min=self.p1_src_start_udp_port,
- port_max=self.p1_src_end_udp_port,
- name=u"tuple1_src"
- ),
- STLVmTupleGen(
- ip_min=self.p1_dst_start_ip,
- ip_max=self.p1_dst_end_ip,
- port_min=self.p1_dst_start_udp_port,
- port_max=self.p1_dst_end_udp_port,
- name=u"tuple1_dst"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_src.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_dst.ip",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_src.port",
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_dst.port",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p2_src_start_ip,
- ip_max=self.p2_src_end_ip,
- port_min=self.p2_src_start_udp_port,
- port_max=self.p2_src_end_udp_port,
- name=u"tuple2_src"
- ),
- STLVmTupleGen(
- ip_min=self.p2_dst_start_ip,
- ip_max=self.p2_dst_end_ip,
- port_min=self.p2_dst_start_udp_port,
- port_max=self.p2_dst_end_udp_port,
- name=u"tuple2_dst"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_src.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_dst.ip",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_src.port",
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_dst.port",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-1u1p.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-1u1p.py
deleted file mode 100644
index 9a88d7fcea..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-1u1p.py
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 20.0.0.0
- - Destination IP address range: 30.0.0.0
- - Source UDP port range: 1024
- - Destination UDP port range: 1024
- - Direction 1 --> 0:
- - Source IP address range: 30.0.0.0
- - Destination IP address range: 200.0.0.0
- - Source UDP port range: 1024
- - Destination UDP port range: 1028
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_ip = u"20.0.0.0"
- self.p1_dst_ip = u"30.0.0.0"
-
- self.p2_src_ip = u"30.0.0.0"
- self.p2_dst_ip = u"200.0.0.0"
-
- # UDP ports used in packet headers.
- self.p1_src_udp_port = 1024
- self.p1_dst_udp_port = 1024
-
- self.p2_src_udp_port = 1024
- self.p2_dst_udp_port = 2048
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_ip,
- dst=self.p1_dst_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_udp_port,
- dport=self.p1_dst_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_ip,
- dst=self.p2_dst_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_udp_port,
- dport=self.p2_dst_udp_port
- )
- )
-
- return base_pkt_a, base_pkt_b, None, None
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-lb.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-lb.py
deleted file mode 100644
index f11b476aa6..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4udp-lb.py
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 192.168.50.74 - 192.168.50.79
- - Destination IP address range: 90.1.2.1
- - Direction 1 --> 0:
- - Source IP address range: 192.168.60.74 - 192.168.60.79
- - Destination IP address range: 192.168.50.74 - 192.168.50.79
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"192.168.50.74"
- self.p1_src_end_ip = u"192.168.50.79"
- self.p1_dst_start_ip = u"90.1.2.1"
-
- self.p2_src_start_ip = u"192.168.60.74"
- self.p2_src_end_ip = u"192.168.60.79"
- self.p2_dst_start_ip = u"192.168.50.74"
- self.p2_dst_end_ip = u"192.168.50.79"
-
- # UDP ports used in packet headers.
- self.p1_src_udp_port = 63
- self.p1_dst_udp_port = 20000
-
- self.p2_src_udp_port = 3307
- self.p2_dst_udp_port = 63
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17) /
- UDP(
- sport=self.p1_src_udp_port,
- dport=self.p1_dst_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_udp_port,
- dport=self.p2_dst_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-2n-ethip6-ip6src253.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip6-ip6src253.py
deleted file mode 100644
index d67a4ab18c..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip6-ip6src253.py
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
- - Source IP address range: 2001:1::2 - 2001:1::FE
- - Destination IP address range: 2001:2::2
- - Direction 1 --> 0:
- - Source IP address range: 2001:2::2 - 2001:2::FE
- - Destination IP address range: 2001:1::2
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"2001:1::2"
- self.p1_src_end_ip = u"2001:1::FE"
- self.p1_dst_start_ip = u"2001:2::2"
-
- self.p2_src_start_ip = u"2001:2::2"
- self.p2_src_end_ip = u"2001:2::FE"
- self.p2_dst_start_ip = u"2001:1::2"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IPv6 |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- base_p1, count_p1 = self._get_start_end_ipv6(
- self.p1_src_start_ip,
- self.p1_src_end_ip
- )
- base_p2, count_p2 = self._get_start_end_ipv6(
- self.p2_src_start_ip,
- self.p2_src_end_ip
- )
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IPv6(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IPv6(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ipv6_src",
- min_value=base_p1,
- max_value=base_p1 + count_p1,
- size=8,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_src",
- pkt_offset=u"IPv6.src",
- offset_fixup=8
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ipv6_src",
- min_value=base_p2,
- max_value=base_p2 + count_p2,
- size=8,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_src",
- pkt_offset=u"IPv6.src",
- offset_fixup=8
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan100ip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan100ip4src254ip4dst254.py
deleted file mode 100644
index ae8d9ea112..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan100ip4src254ip4dst254.py
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / DOT1Q / IP /
- - Direction 0 --> 1:
- - VLAN range: 1 - 100
- - Source IP address range: 10.0.0.1 - 10.0.0.254
- - Destination IP address range: 20.0.0.1 - 20.0.0.254
- - Direction 1 --> 0:
- - VLAN range: 1 - 100
- - Source IP address range: 20.0.0.1 - 20.0.0.254
- - Destination IP address range: 10.0.0.1 - 10.0.0.254
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # VLAN IDs
- self.vlans = 100
-
- self.p1_vlan_start = 1
- self.p1_vlan_end = self.p1_vlan_start + self.vlans - 1
-
- self.p2_vlan_start = 1
- self.p2_vlan_end = self.p2_vlan_start + self.vlans - 1
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_src_end_ip = u"10.0.0.254"
-
- self.p1_dst_start_ip = u"20.0.0.1"
- self.p1_dst_end_ip = u"20.0.0.254"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_src_end_ip = u"20.0.0.254"
-
- self.p2_dst_start_ip = u"10.0.0.1"
- self.p2_dst_end_ip = u"10.0.0.254"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | DOT1Q | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- Dot1Q(
- vlan=self.p1_vlan_start
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- Dot1Q(
- vlan=self.p2_vlan_start
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"vlan",
- min_value=self.p1_vlan_start,
- max_value=self.p1_vlan_end,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"vlan",
- pkt_offset=u"Dot1Q.vlan"
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"vlan",
- min_value=self.p2_vlan_start,
- max_value=self.p2_vlan_end,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"vlan",
- pkt_offset=u"Dot1Q.vlan"
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :returns: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan10ip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan10ip4src254ip4dst254.py
deleted file mode 100644
index 9ed8f69817..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan10ip4src254ip4dst254.py
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / DOT1Q / IP /
- - Direction 0 --> 1:
- - VLAN range: 1 - 10
- - Source IP address range: 10.0.0.1 - 10.0.0.254
- - Destination IP address range: 20.0.0.1 - 20.0.0.254
- - Direction 1 --> 0:
- - VLAN range: 1 - 10
- - Source IP address range: 20.0.0.1 - 20.0.0.254
- - Destination IP address range: 10.0.0.1 - 10.0.0.254
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # VLAN IDs
- self.vlans = 10
-
- self.p1_vlan_start = 1
- self.p1_vlan_end = self.p1_vlan_start + self.vlans - 1
-
- self.p2_vlan_start = 1
- self.p2_vlan_end = self.p2_vlan_start + self.vlans - 1
-
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_src_end_ip = u"10.0.0.254"
-
- self.p1_dst_start_ip = u"20.0.0.1"
- self.p1_dst_end_ip = u"20.0.0.254"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_src_end_ip = u"20.0.0.254"
-
- self.p2_dst_start_ip = u"10.0.0.1"
- self.p2_dst_end_ip = u"10.0.0.254"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | DOT1Q | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- Dot1Q(
- vlan=self.p1_vlan_start
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- Dot1Q(
- vlan=self.p2_vlan_start
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"vlan",
- min_value=self.p1_vlan_start,
- max_value=self.p1_vlan_end,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"vlan",
- pkt_offset=u"Dot1Q.vlan"
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"vlan",
- min_value=self.p2_vlan_start,
- max_value=self.p2_vlan_end,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"vlan",
- pkt_offset=u"Dot1Q.vlan"
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(name=u"ip_dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :returns: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan1ip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan1ip4src254ip4dst254.py
deleted file mode 100644
index 4e28f32c4c..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan1ip4src254ip4dst254.py
+++ /dev/null
@@ -1,176 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / DOT1Q / IP /
- - Direction 0 --> 1:
- - VLAN range: 1
- - Source IP address range: 10.0.0.1 - 10.0.0.254
- - Destination IP address range: 20.0.0.1 - 20.0.0.254
- - Direction 1 --> 0:
- - VLAN range: 1
- - Source IP address range: 20.0.0.1 - 20.0.0.254
- - Destination IP address range: 10.0.0.1 - 10.0.0.254
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # VLAN IDs
- self.p1_vlan_start = 1
-
- self.p2_vlan_start = 1
-
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_src_end_ip = u"10.0.0.254"
-
- self.p1_dst_start_ip = u"20.0.0.1"
- self.p1_dst_end_ip = u"20.0.0.254"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_src_end_ip = u"20.0.0.254"
-
- self.p2_dst_start_ip = u"10.0.0.1"
- self.p2_dst_end_ip = u"10.0.0.254"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | DOT1Q | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- Dot1Q(
- vlan=self.p1_vlan_start
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- Dot1Q(
- vlan=self.p2_vlan_start
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :returns: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan1kip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan1kip4src254ip4dst254.py
deleted file mode 100644
index 3ba51899a4..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-dot1qip4-vlan1kip4src254ip4dst254.py
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / DOT1Q / IP /
- - Direction 0 --> 1:
- - VLAN range: 1 - 1000
- - Source IP address range: 10.0.0.1 - 10.0.0.254
- - Destination IP address range: 20.0.0.1 - 20.0.0.254
- - Direction 1 --> 0:
- - VLAN range: 1 - 1000
- - Source IP address range: 20.0.0.1 - 20.0.0.254
- - Destination IP address range: 10.0.0.1 - 10.0.0.254
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # VLAN IDs
- self.vlans = 1000
-
- self.p1_vlan_start = 1
- self.p1_vlan_end = self.p1_vlan_start + self.vlans - 1
-
- self.p2_vlan_start = 1
- self.p2_vlan_end = self.p2_vlan_start + self.vlans - 1
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_src_end_ip = u"10.0.0.254"
-
- self.p1_dst_start_ip = u"20.0.0.1"
- self.p1_dst_end_ip = u"20.0.0.254"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_src_end_ip = u"20.0.0.254"
-
- self.p2_dst_start_ip = u"10.0.0.1"
- self.p2_dst_end_ip = u"10.0.0.254"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | DOT1Q | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- Dot1Q(
- vlan=self.p1_vlan_start
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- Dot1Q(
- vlan=self.p2_vlan_start
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"vlan",
- min_value=self.p1_vlan_start,
- max_value=self.p1_vlan_end,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"vlan",
- pkt_offset=u"Dot1Q.vlan"
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"vlan",
- min_value=self.p2_vlan_start,
- max_value=self.p2_vlan_end,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"vlan",
- pkt_offset=u"Dot1Q.vlan"
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"random"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :returns: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1.py
deleted file mode 100644
index 371323ea4e..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1.py
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_ip = u"10.0.0.1"
- self.p1_dst_ip = u"20.0.0.0"
-
- self.p2_src_ip = u"20.0.0.1"
- self.p2_dst_ip = u"10.0.0.0"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_ip,
- dst=self.p1_dst_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_ip,
- dst=self.p2_dst_ip,
- proto=61
- )
- )
-
- return base_pkt_a, base_pkt_b, None, None
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst100.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst100.py
deleted file mode 100644
index 3b0594e293..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst100.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.0.99
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.0.99
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.0.99"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.0.99"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-1cnf.py
deleted file mode 100644
index 9d15e9ea28..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-1cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.3.231
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.3.231
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.3.231"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.3.231"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-2cnf.py
deleted file mode 100644
index 7fefc279db..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-2cnf.py
+++ /dev/null
@@ -1,166 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.3.231
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.3.231
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.3.231"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.3.231"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) / IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-4cnf.py
deleted file mode 100644
index e8fc20f488..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-4cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.3.231
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.3.231
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.3.231"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.3.231"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-8cnf.py
deleted file mode 100644
index ab2aaae36a..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-8cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.3.231
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.3.231
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.3.231"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.3.231"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000.py
deleted file mode 100644
index ffc53930dd..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.3.231
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.3.231
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.3.231"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.3.231"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-1cnf.py
deleted file mode 100644
index 90c741d7dc..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-1cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.39.15
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.39.15
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.39.15"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.39.15"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-2cnf.py
deleted file mode 100644
index 34a089abf1..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-2cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.39.15
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.39.15
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.39.15"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.39.15"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-4cnf.py
deleted file mode 100644
index 24611f1ec6..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-4cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.39.15
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.39.15
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.39.15"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.39.15"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-8cnf.py
deleted file mode 100644
index 8217450185..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-8cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.39.15
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.39.15
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.39.15"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.39.15"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000.py
deleted file mode 100644
index e8041098f7..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.39.15
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.39.15
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.39.15"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.39.15"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst100000.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst100000.py
deleted file mode 100644
index e1ef224a6b..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst100000.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.1.134.159
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.1.134.159
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.1.134.159"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.1.134.159"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000000.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000000.py
deleted file mode 100644
index 139cccd561..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000000.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.15.66.63
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.15.66.63
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.15.66.63"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.15.66.63"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-1cnf.py
deleted file mode 100644
index 76a8299904..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-1cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.78.31
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.78.31
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.78.31"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.78.31"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-2cnf.py
deleted file mode 100644
index dff6e0209e..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-2cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.78.31
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.78.31
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.78.31"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.78.31"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-4cnf.py
deleted file mode 100644
index c28e214995..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-4cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.78.31
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.78.31
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.78.31"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.78.31"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-8cnf.py
deleted file mode 100644
index 664e341b07..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-8cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.78.31
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.78.31
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.78.31"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.78.31"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000.py
deleted file mode 100644
index 713a826366..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.78.31
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.78.31
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.78.31"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.78.31"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst253.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst253.py
deleted file mode 100644
index 1a129cc82b..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst253.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 20.20.20.2
- - Destination IP address range: 2.1.1.2 - 2.1.1.254
- - Direction 1 --> 0:
- - Source IP address range: 10.10.10.2
- - Destination IP address range: 1.1.1.2 - 1.1.1.254
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"20.20.20.2"
- self.p1_dst_start_ip = u"2.1.1.2"
- self.p1_dst_end_ip = u"2.1.1.254"
-
- self.p2_src_start_ip = u"10.10.10.2"
- self.p2_dst_start_ip = u"1.1.1.2"
- self.p2_dst_end_ip = u"1.1.1.254"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst253_l3fwd.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst253_l3fwd.py
deleted file mode 100644
index 736e739da4..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst253_l3fwd.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 20.20.20.2
- - Destination IP address range: 198.18.0.2 - 198.18.0.254
- - Direction 1 --> 0:
- - Source IP address range: 10.10.10.2
- - Destination IP address range: 198.18.1.2 - 198.18.1.254
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"20.20.20.2"
- self.p1_dst_start_ip = u"198.18.0.2"
- self.p1_dst_end_ip = u"198.18.0.254"
-
- self.p2_src_start_ip = u"10.10.10.2"
- self.p2_dst_start_ip = u"198.18.1.2"
- self.p2_dst_end_ip = u"198.18.1.254"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-1cnf.py
deleted file mode 100644
index 66e0980e58..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-1cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.0.3
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.0.3
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.0.3"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.0.3"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-2cnf.py
deleted file mode 100644
index 858ff84652..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-2cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.0.3
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.0.3
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.0.3"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.0.3"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-4cnf.py
deleted file mode 100644
index 42698bf7dc..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-4cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.0.3
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.0.3
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.0.3"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.0.3"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4.py
deleted file mode 100644
index 2a763b8fa7..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.0.3
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.0.3
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.0.3"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.0.3"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-1cnf.py
deleted file mode 100644
index a52c3d91e8..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-1cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.0.39
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.0.39
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.0.39"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.0.39"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-2cnf.py
deleted file mode 100644
index 78be186d91..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-2cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.0.39
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.0.39
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.0.39"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.0.39"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-4cnf.py
deleted file mode 100644
index e49ffeeacd..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-4cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.0.39
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.0.39
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.0.39"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.0.39"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-8cnf.py
deleted file mode 100644
index b09b024a16..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-8cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.0.39
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.0.39
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.0.39"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.0.39"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40.py
deleted file mode 100644
index 7ba4012694..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.0.39
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.0.39
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.0.39"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.0.39"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-1cnf.py
deleted file mode 100644
index 1af2c4c841..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-1cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.1.143
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.1.143
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.1.143"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.1.143"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-2cnf.py
deleted file mode 100644
index 4acd1faf40..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-2cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.1.143
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.1.143
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.1.143"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.1.143"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-4cnf.py
deleted file mode 100644
index 302bd20f3c..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-4cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.1.143
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.1.143
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.1.143"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.1.143"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-8cnf.py
deleted file mode 100644
index e92efb927e..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-8cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.1.143
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.1.143
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.1.143"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.1.143"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400.py
deleted file mode 100644
index 72ed46e7f5..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.1.143
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.1.143
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.1.143"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.1.143"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-1cnf.py
deleted file mode 100644
index 14e258552b..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-1cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.156.63
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.156.63
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.156.63"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.156.63"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-2cnf.py
deleted file mode 100644
index ac0c503f67..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-2cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.156.63
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.156.63
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.156.63"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.156.63"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-4cnf.py
deleted file mode 100644
index 2c301efed2..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-4cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.156.63
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.156.63
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.156.63"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.156.63"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-8cnf.py
deleted file mode 100644
index 96bc3fbb26..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-8cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.156.63
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.156.63
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.156.63"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.156.63"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000.py
deleted file mode 100644
index ac9fc74bb2..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.156.63
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.156.63
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.156.63"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.156.63"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams() \ No newline at end of file
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-1cnf.py
deleted file mode 100644
index 02620e00e9..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-1cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.19.135
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.19.135
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.19.135"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.19.135"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-2cnf.py
deleted file mode 100644
index 03662d514e..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-2cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.19.135
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.19.135
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.19.135"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.19.135"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-4cnf.py
deleted file mode 100644
index d8f8e69a6d..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-4cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.19.135
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.19.135
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.19.135"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.19.135"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-8cnf.py
deleted file mode 100644
index 1c793b98a1..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-8cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.19.135
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.19.135
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.19.135"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.19.135"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000.py
deleted file mode 100644
index 5677878102..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.19.135
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.19.135
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.19.135"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.19.135"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams() \ No newline at end of file
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-1cnf.py
deleted file mode 100644
index 43ef04ffbe..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-1cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.234.95
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.234.95
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.234.95"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.234.95"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=0,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-2cnf.py
deleted file mode 100644
index 5a8c9f7f3d..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-2cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.234.95
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.234.95
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.234.95"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.234.95"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=1,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-4cnf.py
deleted file mode 100644
index 5fc755b2d1..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-4cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.234.95
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.234.95
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.234.95"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.234.95"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=3,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-8cnf.py
deleted file mode 100644
index f655046bea..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-8cnf.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.234.95
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.234.95
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.p1_dst_start_mac = u"02:02:00:00:12:00"
-
- self.p2_dst_start_mac = u"02:02:00:00:02:00"
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.234.95"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.234.95"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=7,
- size=1,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset=5
- ),
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000.py
deleted file mode 100644
index d00fb76e78..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.0.0.1
- - Destination IP address range: 20.0.0.0 - 20.0.234.95
- - Direction 1 --> 0:
- - Source IP address range: 20.0.0.1
- - Destination IP address range: 10.0.0.0 - 10.0.234.95
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.1"
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.234.95"
-
- self.p2_src_start_ip = u"20.0.0.1"
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.234.95"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4src253.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4src253.py
deleted file mode 100644
index e1741f98e9..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4src253.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.10.10.2 - 10.10.10.254
- - Destination IP address range: 20.20.20.2
- - Direction 1 --> 0:
- - Source IP address range: 20.20.20.2 - 20.20.20.254
- - Destination IP address range: 10.10.10.2
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.10.10.2"
- self.p1_src_end_ip = u"10.10.10.254"
- self.p1_dst_start_ip = u"20.20.20.2"
-
- self.p2_src_start_ip = u"20.20.20.2"
- self.p2_src_end_ip = u"20.20.20.254"
- self.p2_dst_start_ip = u"10.10.10.2"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4src254.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4src254.py
deleted file mode 100644
index 8afc3b6fd5..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4src254.py
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source IP address range: 10.10.10.1 - 10.10.10.254
- - Destination IP address range: 20.20.20.1
- - Direction 1 --> 0:
- - Source IP address range: 20.20.20.1 - 20.20.20.254
- - Destination IP address range: 10.10.10.1
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.10.10.1"
- self.p1_src_end_ip = u"10.10.10.254"
- self.p1_dst_start_ip = u"20.20.20.1"
-
- self.p2_src_start_ip = u"20.20.20.1"
- self.p2_src_end_ip = u"20.20.20.254"
- self.p2_dst_start_ip = u"10.10.10.1"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc100ip4src100.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc100ip4src100.py
deleted file mode 100644
index f668e2ad19..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc100ip4src100.py
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: | ETH | IP |
- - Direction 0 --> 1:
- - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:00:63
- - Source IP address range: 10.0.0.2 - 10.0.0.101
- - Destination IP address range: 20.0.0.1
- - Direction 1 --> 0:
- - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:00:63
- - Source IP address range: 20.0.0.2 - 20.0.0.101
- - Destination IP address range: 10.0.0.1
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.clients = 100
-
- # MACs used in packet headers.
- self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.2"
- self.p1_src_end_ip = u"10.0.0.101"
- self.p1_dst_start_ip = u"20.0.0.1"
-
- self.p2_src_start_ip = u"20.0.0.2"
- self.p2_src_end_ip = u"20.0.0.101"
- self.p2_dst_start_ip = u"10.0.0.1"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- src=self.p1_src_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- src=self.p2_src_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset=8
- ),
- STLVmFlowVar(
- name=u"src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset=8
- ),
- STLVmFlowVar(
- name=u"src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :returns: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc100kip4src100k.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc100kip4src100k.py
deleted file mode 100644
index d3f10fc8ff..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc100kip4src100k.py
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: | ETH | IP |
- - Direction 0 --> 1:
- - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:01:86:9f
- - Source IP address range: 10.0.0.2 - 10.1.134.161
- - Destination IP address range: 20.0.0.1
- - Direction 1 --> 0:
- - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:01:86:9f
- - Source IP address range: 20.0.0.2 - 20.1.134.161
- - Destination IP address range: 10.0.0.1
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.clients = 100000
-
- # MACs used in packet headers.
- self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.2"
- self.p1_src_end_ip = u"10.1.134.161"
- self.p1_dst_start_ip = u"20.0.0.1"
-
- self.p2_src_start_ip = u"20.0.0.2"
- self.p2_src_end_ip = u"20.1.134.161"
- self.p2_dst_start_ip = u"10.0.0.1"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- src=self.p1_src_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- src=self.p2_src_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset=8
- ),
- STLVmFlowVar(
- name=u"src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset=8
- ),
- STLVmFlowVar(
- name=u"src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :returns: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc10kip4src10k.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc10kip4src10k.py
deleted file mode 100644
index 2882027f4c..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc10kip4src10k.py
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: | ETH | IP |
- - Direction 0 --> 1:
- - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:27:0f
- - Source IP address range: 10.0.0.2 - 10.0.39.17
- - Destination IP address range: 20.0.0.1
- - Direction 1 --> 0:
- - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:27:0f
- - Source IP address range: 20.0.0.2 - 20.0.39.17
- - Destination IP address range: 10.0.0.1
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.clients = 10000
-
- # MACs used in packet headers.
- self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.2"
- self.p1_src_end_ip = u"10.0.39.17"
- self.p1_dst_start_ip = u"20.0.0.1"
-
- self.p2_src_start_ip = u"20.0.0.2"
- self.p2_src_end_ip = u"20.0.39.17"
- self.p2_dst_start_ip = u"10.0.0.1"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- src=self.p1_src_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- src=self.p2_src_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset=8
- ),
- STLVmFlowVar(
- name=u"src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset=8
- ),
- STLVmFlowVar(
- name=u"src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"src",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :returns: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc500kdst500k.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc500kdst500k.py
deleted file mode 100644
index c2e37fd3cd..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc500kdst500k.py
+++ /dev/null
@@ -1,225 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:07:a1:1f
- - Destination MAC address range: fa:ce:00:00:00:00 - fa:ce:00:07:a1:1f
- - Source IP address range: 10.0.0.0 - 10.7.161.31
- - Destination IP address range: 20.0.0.0 - 20.7.161.31
- - Direction 1 --> 0:
- - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:07:a1:1f
- - Destination MAC address range: ca:fe:00:00:00:00 - ca:fe:00:07:a1:1f
- - Source IP address range: 20.0.0.0 - 20.7.161.31
- - Destination IP address range: 10.0.0.0 - 10.7.161.31
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.clients = 500000
-
- # MACs used in packet headers.
- self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p1_dst_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p2_dst_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.0"
- self.p1_src_end_ip = u"10.7.161.31"
-
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.7.161.31"
-
- self.p2_src_start_ip = u"20.0.0.0"
- self.p2_src_end_ip = u"20.7.161.31"
-
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.7.161.31"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- src=self.p1_src_start_mac,
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- src=self.p2_src_start_mac,
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc50kdst50k.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc50kdst50k.py
deleted file mode 100644
index e56576ae11..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc50kdst50k.py
+++ /dev/null
@@ -1,225 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:c3:4f
- - Destination MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:c3:4f
- - Source IP address range: 10.0.0.0 - 10.0.195.79
- - Destination IP address range: 20.0.0.0 - 20.0.195.79
- - Direction 1 --> 0:
- - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:c3:4f
- - Destination MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:c3:4f
- - Source IP address range: 20.0.0.0 - 20.0.195.79
- - Destination IP address range: 10.0.0.0 - 10.0.195.79
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.clients = 50000
-
- # MACs used in packet headers.
- self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p1_dst_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p2_dst_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.0"
- self.p1_src_end_ip = u"10.0.195.79"
-
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.195.79"
-
- self.p2_src_start_ip = u"20.0.0.0"
- self.p2_src_end_ip = u"20.0.195.79"
-
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.195.79"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- src=self.p1_src_start_mac,
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- src=self.p2_src_start_mac,
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc5kdst5k.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc5kdst5k.py
deleted file mode 100644
index d71c2d6eab..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-macsrc5kdst5k.py
+++ /dev/null
@@ -1,225 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP /
- - Direction 0 --> 1:
- - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:13:87
- - Destination MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:13:87
- - Source IP address range: 10.0.0.0 - 10.0.19.135
- - Destination IP address range: 20.0.0.0 - 20.0.19.135
- - Direction 1 --> 0:
- - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:13:87
- - Destination MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:13:87
- - Source IP address range: 20.0.0.0 - 20.0.19.135
- - Destination IP address range: 10.0.0.0 - 10.0.19.135
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- self.clients = 5000
-
- # MACs used in packet headers.
- self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p1_dst_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
- self.p2_dst_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.0.0.0"
- self.p1_src_end_ip = u"10.0.19.135"
-
- self.p1_dst_start_ip = u"20.0.0.0"
- self.p1_dst_end_ip = u"20.0.19.135"
-
- self.p2_src_start_ip = u"20.0.0.0"
- self.p2_src_end_ip = u"20.0.19.135"
-
- self.p2_dst_start_ip = u"10.0.0.0"
- self.p2_dst_end_ip = u"10.0.19.135"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether(
- src=self.p1_src_start_mac,
- dst=self.p1_dst_start_mac
- ) /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=61
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether(
- src=self.p2_src_start_mac,
- dst=self.p2_dst_start_mac
- ) /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=61
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p1_src_start_ip,
- max_value=self.p1_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p1_dst_start_ip,
- max_value=self.p1_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"mac_src",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmFlowVar(
- name=u"mac_dst",
- min_value=0,
- max_value=self.clients-1,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_src",
- pkt_offset= 8
- ),
- STLVmWrFlowVar(
- fv_name=u"mac_dst",
- pkt_offset= 2
- ),
- STLVmFlowVar(
- name=u"ip_src",
- min_value=self.p2_src_start_ip,
- max_value=self.p2_src_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_src",
- pkt_offset=u"IP.src"
- ),
- STLVmFlowVar(
- name=u"ip_dst",
- min_value=self.p2_dst_start_ip,
- max_value=self.p2_dst_end_ip,
- size=4,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ip_dst",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1000u15p.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1000u15p.py
deleted file mode 100644
index 32ed9c08f7..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1000u15p.py
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 20.0.0.0 - 20.0.3.231
- - Destination IP address range: 12.0.0.2
- - Source UDP port range: 1024 - 1038
- - Destination UDP port range: 1024
- - Direction 1 --> 0:
- - Source IP address range: 12.0.0.2
- - Destination IP address range: 200.0.0.0
- - Source UDP port range: 1024
- - Destination UDP port range: 1024 - 16023
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"20.0.0.0"
- self.p1_src_end_ip = u"20.0.3.231"
- self.p1_dst_start_ip = u"12.0.0.2"
-
- self.p2_src_start_ip = u"12.0.0.2"
- self.p2_src_end_ip = u"12.0.0.2"
- self.p2_dst_start_ip = u"200.0.0.0"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1024
- self.p1_src_end_udp_port = 1038
- self.p1_dst_start_udp_port = 1024
-
- self.p2_src_start_udp_port = 1024
- self.p2_dst_start_udp_port = 1024
- self.p2_dst_end_udp_port = 16023
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p1_src_start_ip,
- ip_max=self.p1_src_end_ip,
- port_min=self.p1_src_start_udp_port,
- port_max=self.p1_src_end_udp_port,
- name=u"tuple"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.port",
- pkt_offset=u"UDP.sport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dport",
- min_value=self.p2_dst_start_udp_port,
- max_value=self.p2_dst_end_udp_port,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dport",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-100u1000p-conc.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-100u1000p-conc.py
deleted file mode 100644
index 081531bd91..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-100u1000p-conc.py
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 10.10.10.2 - 10.10.10.101
- - Destination IP address range: 20.20.20.2 - 20.20.20.101
- - Source UDP port range: 1001 - 2000
- - Destination UDP port range: 2001 - 3000
- - Direction 1 --> 0:
- - Source IP address range: 20.20.20.2 - 20.20.20.101
- - Destination IP address range: 10.10.10.2 - 10.10.10.101
- - Source UDP port range: 2001 - 3000
- - Destination UDP port range: 1001 - 2000
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.10.10.2"
- self.p1_src_end_ip = u"10.10.10.101"
- self.p1_dst_start_ip = u"20.20.20.2"
- self.p1_dst_end_ip = u"20.20.20.101"
-
- self.p2_src_start_ip = u"20.20.20.2"
- self.p2_src_end_ip = u"20.20.20.101"
- self.p2_dst_start_ip = u"10.10.10.2"
- self.p2_dst_end_ip = u"10.10.10.101"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1001
- self.p1_src_end_udp_port = 2000
- self.p1_dst_start_udp_port = 2001
- self.p1_dst_end_udp_port = 3000
-
- self.p2_src_start_udp_port = 2001
- self.p2_src_end_udp_port = 3000
- self.p2_dst_start_udp_port = 1001
- self.p2_dst_end_udp_port = 2000
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p1_src_start_ip,
- ip_max=self.p1_src_end_ip,
- port_min=self.p1_src_start_udp_port,
- port_max=self.p1_src_end_udp_port,
- name=u"tuple1_src"
- ),
- STLVmTupleGen(
- ip_min=self.p1_dst_start_ip,
- ip_max=self.p1_dst_end_ip,
- port_min=self.p1_dst_start_udp_port,
- port_max=self.p1_dst_end_udp_port,
- name=u"tuple1_dst"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_src.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_dst.ip",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_src.port",
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_dst.port",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p2_src_start_ip,
- ip_max=self.p2_src_end_ip,
- port_min=self.p2_src_start_udp_port,
- port_max=self.p2_src_end_udp_port,
- name=u"tuple2_src"
- ),
- STLVmTupleGen(
- ip_min=self.p2_dst_start_ip,
- ip_max=self.p2_dst_end_ip,
- port_min=self.p2_dst_start_udp_port,
- port_max=self.p2_dst_end_udp_port,
- name=u"tuple2_dst"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_src.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_dst.ip",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_src.port",
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_dst.port",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-100u15p.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-100u15p.py
deleted file mode 100644
index b870ce11d0..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-100u15p.py
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 20.0.0.0 - 20.0.0.99
- - Destination IP address range: 12.0.0.2
- - Source UDP port range: 1024 - 1038
- - Destination UDP port range: 1024
- - Direction 1 --> 0:
- - Source IP address range: 12.0.0.2
- - Destination IP address range: 200.0.0.0
- - Source UDP port range: 1024
- - Destination UDP port range: 1024 - 2523
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"20.0.0.0"
- self.p1_src_end_ip = u"20.0.0.99"
- self.p1_dst_start_ip = u"12.0.0.2"
-
- self.p2_src_start_ip = u"12.0.0.2"
- self.p2_src_end_ip = u"12.0.0.2"
- self.p2_dst_start_ip = u"200.0.0.0"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1024
- self.p1_src_end_udp_port = 1038
- self.p1_dst_start_udp_port = 1024
-
- self.p2_src_start_udp_port = 1024
- self.p2_dst_start_udp_port = 1024
- self.p2_dst_end_udp_port = 2523
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p1_src_start_ip,
- ip_max=self.p1_src_end_ip,
- port_min=self.p1_src_start_udp_port,
- port_max=self.p1_src_end_udp_port,
- name=u"tuple"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.port",
- pkt_offset=u"UDP.sport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dport",
- min_value=self.p2_dst_start_udp_port,
- max_value=self.p2_dst_end_udp_port,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dport",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u1000p-conc.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u1000p-conc.py
deleted file mode 100644
index 25dddb7de2..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u1000p-conc.py
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 10.10.10.2 - 10.10.10.11
- - Destination IP address range: 20.20.20.2 - 20.20.20.11
- - Source UDP port range: 1001 - 2000
- - Destination UDP port range: 2001 - 3000
- - Direction 1 --> 0:
- - Source IP address range: 20.20.20.2 - 20.20.20.11
- - Destination IP address range: 10.10.10.2 - 10.10.10.11
- - Source UDP port range: 2001 - 3000
- - Destination UDP port range: 1001 - 2000
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.10.10.2"
- self.p1_src_end_ip = u"10.10.10.11"
- self.p1_dst_start_ip = u"20.20.20.2"
- self.p1_dst_end_ip = u"20.20.20.11"
-
- self.p2_src_start_ip = u"20.20.20.2"
- self.p2_src_end_ip = u"20.20.20.11"
- self.p2_dst_start_ip = u"10.10.10.2"
- self.p2_dst_end_ip = u"10.10.10.11"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1001
- self.p1_src_end_udp_port = 2000
- self.p1_dst_start_udp_port = 2001
- self.p1_dst_end_udp_port = 3000
-
- self.p2_src_start_udp_port = 2001
- self.p2_src_end_udp_port = 3000
- self.p2_dst_start_udp_port = 1001
- self.p2_dst_end_udp_port = 2000
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p1_src_start_ip,
- ip_max=self.p1_src_end_ip,
- port_min=self.p1_src_start_udp_port,
- port_max=self.p1_src_end_udp_port,
- name=u"tuple1_src"
- ),
- STLVmTupleGen(
- ip_min=self.p1_dst_start_ip,
- ip_max=self.p1_dst_end_ip,
- port_min=self.p1_dst_start_udp_port,
- port_max=self.p1_dst_end_udp_port,
- name=u"tuple1_dst"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_src.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_dst.ip",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_src.port",
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_dst.port",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p2_src_start_ip,
- ip_max=self.p2_src_end_ip,
- port_min=self.p2_src_start_udp_port,
- port_max=self.p2_src_end_udp_port,
- name=u"tuple2_src"
- ),
- STLVmTupleGen(
- ip_min=self.p2_dst_start_ip,
- ip_max=self.p2_dst_end_ip,
- port_min=self.p2_dst_start_udp_port,
- port_max=self.p2_dst_end_udp_port,
- name=u"tuple2_dst"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_src.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_dst.ip",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_src.port",
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_dst.port",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u10p-conc.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u10p-conc.py
deleted file mode 100644
index ba7fbc874d..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u10p-conc.py
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 10.10.10.2 - 10.10.10.11
- - Destination IP address range: 20.20.20.2 - 20.20.2011
- - Source UDP port range: 1001 - 1010
- - Destination UDP port range: 2001 - 2010
- - Direction 1 --> 0:
- - Source IP address range: 20.20.20.2 - 20.20.20.11
- - Destination IP address range: 10.10.10.2 - 10.10.10.11
- - Source UDP port range: 2001 - 2010
- - Destination UDP port range: 1001 - 1010
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"10.10.10.2"
- self.p1_src_end_ip = u"10.10.10.11"
- self.p1_dst_start_ip = u"20.20.20.2"
- self.p1_dst_end_ip = u"20.20.20.11"
-
- self.p2_src_start_ip = u"20.20.20.2"
- self.p2_src_end_ip = u"20.20.20.11"
- self.p2_dst_start_ip = u"10.10.10.2"
- self.p2_dst_end_ip = u"10.10.10.11"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1001
- self.p1_src_end_udp_port = 1010
- self.p1_dst_start_udp_port = 2001
- self.p1_dst_end_udp_port = 2010
-
- self.p2_src_start_udp_port = 2001
- self.p2_src_end_udp_port = 2010
- self.p2_dst_start_udp_port = 1001
- self.p2_dst_end_udp_port = 1010
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p1_src_start_ip,
- ip_max=self.p1_src_end_ip,
- port_min=self.p1_src_start_udp_port,
- port_max=self.p1_src_end_udp_port,
- name=u"tuple1_src"
- ),
- STLVmTupleGen(
- ip_min=self.p1_dst_start_ip,
- ip_max=self.p1_dst_end_ip,
- port_min=self.p1_dst_start_udp_port,
- port_max=self.p1_dst_end_udp_port,
- name=u"tuple1_dst"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_src.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_dst.ip",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_src.port",
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple1_dst.port",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p2_src_start_ip,
- ip_max=self.p2_src_end_ip,
- port_min=self.p2_src_start_udp_port,
- port_max=self.p2_src_end_udp_port,
- name=u"tuple2_src"
- ),
- STLVmTupleGen(
- ip_min=self.p2_dst_start_ip,
- ip_max=self.p2_dst_end_ip,
- port_min=self.p2_dst_start_udp_port,
- port_max=self.p2_dst_end_udp_port,
- name=u"tuple2_dst"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_src.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_dst.ip",
- pkt_offset=u"IP.dst"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_src.port",
- pkt_offset=u"UDP.sport"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple2_dst.port",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u15p.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u15p.py
deleted file mode 100644
index 9b85dd529d..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-10u15p.py
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 20.0.0.0 - 20.0.0.9
- - Destination IP address range: 12.0.0.2
- - Source UDP port range: 1024 - 1038
- - Destination UDP port range: 1024
- - Direction 1 --> 0:
- - Source IP address range: 12.0.0.2
- - Destination IP address range: 200.0.0.0
- - Source UDP port range: 1024
- - Destination UDP port range: 1024 - 1173
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"20.0.0.0"
- self.p1_src_end_ip = u"20.0.0.9"
- self.p1_dst_start_ip = u"12.0.0.2"
-
- self.p2_src_start_ip = u"12.0.0.2"
- #self.p2_src_end_ip = u"12.0.0.2"
- self.p2_dst_start_ip = u"200.0.0.0"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1024
- self.p1_src_end_udp_port = 1038
- self.p1_dst_start_udp_port = 1024
-
- self.p2_src_start_udp_port = 1024
- self.p2_dst_start_udp_port = 1024
- self.p2_dst_end_udp_port = 1173
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p1_src_start_ip,
- ip_max=self.p1_src_end_ip,
- port_min=self.p1_src_start_udp_port,
- port_max=self.p1_src_end_udp_port,
- name=u"tuple"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.port",
- pkt_offset=u"UDP.sport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dport",
- min_value=self.p2_dst_start_udp_port,
- max_value=self.p2_dst_end_udp_port,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dport",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1u15p.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1u15p.py
deleted file mode 100644
index a58842b022..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1u15p.py
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 20.0.0.0
- - Destination IP address range: 12.0.0.2
- - Source UDP port range: 1024 - 1038
- - Destination UDP port range: 1024
- - Direction 1 --> 0:
- - Source IP address range: 12.0.0.2
- - Destination IP address range: 200.0.0.0
- - Source UDP port range: 1024
- - Destination UDP port range: 1024 - 1038
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"20.0.0.0"
- self.p1_src_end_ip = u"20.0.0.0"
- self.p1_dst_start_ip = u"12.0.0.2"
-
- self.p2_src_start_ip = u"12.0.0.2"
- self.p2_src_end_ip = u"12.0.0.2"
- self.p2_dst_start_ip = u"200.0.0.0"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1024
- self.p1_src_end_udp_port = 1038
- self.p1_dst_start_udp_port = 1024
-
- self.p2_src_start_udp_port = 1024
- self.p2_dst_start_udp_port = 1024
- self.p2_dst_end_udp_port = 1038
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"sport",
- min_value=self.p1_src_start_udp_port,
- max_value=self.p1_src_end_udp_port,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"sport",
- pkt_offset=u"UDP.sport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dport",
- min_value=self.p2_dst_start_udp_port,
- max_value=self.p2_dst_end_udp_port,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dport",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1u1p.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1u1p.py
deleted file mode 100644
index 3c2ae8f023..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-1u1p.py
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 20.0.0.0
- - Destination IP address range: 12.0.0.2
- - Source UDP port range: 1024
- - Destination UDP port range: 1024
- - Direction 1 --> 0:
- - Source IP address range: 12.0.0.2
- - Destination IP address range: 200.0.0.0
- - Source UDP port range: 1024
- - Destination UDP port range: 1028
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_ip = u"20.0.0.0"
- self.p1_dst_ip = u"12.0.0.2"
-
- self.p2_src_ip = u"12.0.0.2"
- self.p2_dst_ip = u"200.0.0.0"
-
- # UDP ports used in packet headers.
- self.p1_src_udp_port = 1024
- self.p1_dst_udp_port = 1024
-
- self.p2_src_udp_port = 1024
- self.p2_dst_udp_port = 1028
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_ip,
- dst=self.p1_dst_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_udp_port,
- dport=self.p1_dst_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_ip,
- dst=self.p2_dst_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_udp_port,
- dport=self.p2_dst_udp_port
- )
- )
-
- return base_pkt_a, base_pkt_b, None, None
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-2000u15p.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-2000u15p.py
deleted file mode 100644
index 60b43b5e0b..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-2000u15p.py
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 20.0.0.0 - 20.0.7.207
- - Destination IP address range: 12.0.0.2
- - Source UDP port range: 1024 - 1038
- - Destination UDP port range: 1024
- - Direction 1 --> 0:
- - Source IP address range: 12.0.0.2
- - Destination IP address range: 200.0.0.0
- - Source UDP port range: 1024
- - Destination UDP port range: 1024 - 31022
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"20.0.0.0"
- self.p1_src_end_ip = u"20.0.7.207"
- self.p1_dst_start_ip = u"12.0.0.2"
-
- self.p2_src_start_ip = u"12.0.0.2"
- self.p2_src_end_ip = u"12.0.0.2"
- self.p2_dst_start_ip = u"200.0.0.0"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1024
- self.p1_src_end_udp_port = 1038
- self.p1_dst_start_udp_port = 1024
-
- self.p2_src_start_udp_port = 1024
- self.p2_dst_start_udp_port = 1024
- self.p2_dst_end_udp_port = 31022
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p1_src_start_ip,
- ip_max=self.p1_src_end_ip,
- port_min=self.p1_src_start_udp_port,
- port_max=self.p1_src_end_udp_port,
- name=u"tuple"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.port",
- pkt_offset=u"UDP.sport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dport",
- min_value=self.p2_dst_start_udp_port,
- max_value=self.p2_dst_end_udp_port,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dport",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-4000u15p.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-4000u15p.py
deleted file mode 100644
index 0e259992b6..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4udp-4000u15p.py
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IP / UDP
- - Direction 0 --> 1:
- - Source IP address range: 20.0.0.0 - 20.0.15.159
- - Destination IP address range: 12.0.0.2
- - Source UDP port range: 1024 - 1038
- - Destination UDP port range: 1024
- - Direction 1 --> 0:
- - Source IP address range: 12.0.0.2
- - Destination IP address range: 200.0.0.0
- - Source UDP port range: 1024
- - Destination UDP port range: 1024 - 61022
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"20.0.0.0"
- self.p1_src_end_ip = u"20.0.15.159"
- self.p1_dst_start_ip = u"12.0.0.2"
-
- self.p2_src_start_ip = u"12.0.0.2"
- self.p2_src_end_ip = u"12.0.0.2"
- self.p2_dst_start_ip = u"200.0.0.0"
-
- # UDP ports used in packet headers.
- self.p1_src_start_udp_port = 1024
- self.p1_src_end_udp_port = 1038
- self.p1_dst_start_udp_port = 1024
-
- self.p2_src_start_udp_port = 1024
- self.p2_dst_start_udp_port = 1024
- self.p2_dst_end_udp_port = 61022
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IP | UDP |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IP(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p1_src_start_udp_port,
- dport=self.p1_dst_start_udp_port
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IP(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip,
- proto=17
- ) /
- UDP(
- sport=self.p2_src_start_udp_port,
- dport=self.p2_dst_start_udp_port
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmTupleGen(
- ip_min=self.p1_src_start_ip,
- ip_max=self.p1_src_end_ip,
- port_min=self.p1_src_start_udp_port,
- port_max=self.p1_src_end_udp_port,
- name=u"tuple"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.ip",
- pkt_offset=u"IP.src"
- ),
- STLVmFixIpv4(
- offset=u"IP"
- ),
- STLVmWrFlowVar(
- fv_name=u"tuple.port",
- pkt_offset=u"UDP.sport"
- )
- ]
- )
- # Direction 0 --> 1
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"dport",
- min_value=self.p2_dst_start_udp_port,
- max_value=self.p2_dst_end_udp_port,
- size=2,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"dport",
- pkt_offset=u"UDP.dport"
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-3n-ethip6-ip6src253.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip6-ip6src253.py
deleted file mode 100644
index 124f57e2be..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip6-ip6src253.py
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
- - Source IP address range: 2001:1::2 - 2001:1::FE
- - Destination IP address range: 2001:2::2
- - Direction 1 --> 0:
- - Source IP address range: 2001:2::2 - 2001:2::FE
- - Destination IP address range: 2001:1::2
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"2001:1::2"
- self.p1_src_end_ip = u"2001:1::FE"
- self.p1_dst_start_ip = u"2001:2::2"
-
- self.p2_src_start_ip = u"2001:2::2"
- self.p2_src_end_ip = u"2001:2::FE"
- self.p2_dst_start_ip = u"2001:1::2"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IPv6 |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- base_p1, count_p1 = self._get_start_end_ipv6(
- self.p1_src_start_ip,
- self.p1_src_end_ip
- )
- base_p2, count_p2 = self._get_start_end_ipv6(
- self.p2_src_start_ip,
- self.p2_src_end_ip
- )
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IPv6(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IPv6(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ipv6_src",
- min_value=base_p1,
- max_value=base_p1 + count_p1,
- size=8,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_src",
- pkt_offset=u"IPv6.src",
- offset_fixup=8
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVar(
- name=u"ipv6_src",
- min_value=base_p2,
- max_value=base_p2 + count_p2,
- size=8,
- op=u"inc"
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_src",
- pkt_offset=u"IPv6.src",
- offset_fixup=8
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan100ip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan100ip4src254ip4dst254.py
new file mode 100644
index 0000000000..45f2f6c9e9
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan100ip4src254ip4dst254.py
@@ -0,0 +1,201 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / DOT1Q / IP /
+ - Direction 0 --> 1:
+ - VLAN range: 1 - 100
+ - Source IP address range: 10.0.0.1 - 10.0.0.254
+ - Destination IP address range: 20.0.0.1 - 20.0.0.254
+ - Direction 1 --> 0:
+ - VLAN range: 1 - 100
+ - Source IP address range: 20.0.0.1 - 20.0.0.254
+ - Destination IP address range: 10.0.0.1 - 10.0.0.254
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # VLAN IDs
+ self.vlans = 100
+
+ self.p1_vlan_start = 1
+ self.p1_vlan_end = self.p1_vlan_start + self.vlans - 1
+
+ self.p2_vlan_start = 1
+ self.p2_vlan_end = self.p2_vlan_start + self.vlans - 1
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_src_end_ip = u"10.0.0.254"
+
+ self.p1_dst_start_ip = u"20.0.0.1"
+ self.p1_dst_end_ip = u"20.0.0.254"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_src_end_ip = u"20.0.0.254"
+
+ self.p2_dst_start_ip = u"10.0.0.1"
+ self.p2_dst_end_ip = u"10.0.0.254"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | DOT1Q | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ Dot1Q(
+ vlan=self.p1_vlan_start
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ Dot1Q(
+ vlan=self.p2_vlan_start
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"vlan",
+ min_value=self.p1_vlan_start,
+ max_value=self.p1_vlan_end,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"vlan",
+ pkt_offset=u"Dot1Q.vlan"
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"vlan",
+ min_value=self.p2_vlan_start,
+ max_value=self.p2_vlan_end,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"vlan",
+ pkt_offset=u"Dot1Q.vlan"
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan10ip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan10ip4src254ip4dst254.py
new file mode 100644
index 0000000000..5b8afc3336
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan10ip4src254ip4dst254.py
@@ -0,0 +1,201 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / DOT1Q / IP /
+ - Direction 0 --> 1:
+ - VLAN range: 1 - 10
+ - Source IP address range: 10.0.0.1 - 10.0.0.254
+ - Destination IP address range: 20.0.0.1 - 20.0.0.254
+ - Direction 1 --> 0:
+ - VLAN range: 1 - 10
+ - Source IP address range: 20.0.0.1 - 20.0.0.254
+ - Destination IP address range: 10.0.0.1 - 10.0.0.254
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # VLAN IDs
+ self.vlans = 10
+
+ self.p1_vlan_start = 1
+ self.p1_vlan_end = self.p1_vlan_start + self.vlans - 1
+
+ self.p2_vlan_start = 1
+ self.p2_vlan_end = self.p2_vlan_start + self.vlans - 1
+
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_src_end_ip = u"10.0.0.254"
+
+ self.p1_dst_start_ip = u"20.0.0.1"
+ self.p1_dst_end_ip = u"20.0.0.254"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_src_end_ip = u"20.0.0.254"
+
+ self.p2_dst_start_ip = u"10.0.0.1"
+ self.p2_dst_end_ip = u"10.0.0.254"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | DOT1Q | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ Dot1Q(
+ vlan=self.p1_vlan_start
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ Dot1Q(
+ vlan=self.p2_vlan_start
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"vlan",
+ min_value=self.p1_vlan_start,
+ max_value=self.p1_vlan_end,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"vlan",
+ pkt_offset=u"Dot1Q.vlan"
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"vlan",
+ min_value=self.p2_vlan_start,
+ max_value=self.p2_vlan_end,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"vlan",
+ pkt_offset=u"Dot1Q.vlan"
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254-2.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254-2.py
new file mode 100644
index 0000000000..f5a8050ae2
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254-2.py
@@ -0,0 +1,176 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / DOT1Q / IP /
+ - Direction 0 --> 1:
+ - VLAN range: 1
+ - Source IP address range: 10.0.0.1 - 10.0.0.254
+ - Destination IP address range: 20.0.0.1 - 20.0.0.254
+ - Direction 1 --> 0:
+ - VLAN range: 1
+ - Source IP address range: 20.0.0.1 - 20.0.0.254
+ - Destination IP address range: 10.0.0.1 - 10.0.0.254
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # VLAN IDs
+ self.p1_vlan_start = 1
+
+ self.p2_vlan_start = 1
+
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_src_end_ip = u"10.0.0.254"
+
+ self.p1_dst_start_ip = u"20.0.0.1"
+ self.p1_dst_end_ip = u"20.0.0.254"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_src_end_ip = u"20.0.0.254"
+
+ self.p2_dst_start_ip = u"10.0.0.1"
+ self.p2_dst_end_ip = u"10.0.0.254"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | DOT1Q | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ Dot1Q(
+ vlan=self.p1_vlan_start
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ Dot1Q(
+ vlan=self.p2_vlan_start
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py
index fcd4067be6..54e4c6470e 100644
--- a/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254-bvi.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254.py
index a4ffecf3d4..3561850068 100644
--- a/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254.py
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1ip4src254ip4dst254.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1kip4src254ip4dst254.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1kip4src254ip4dst254.py
new file mode 100644
index 0000000000..58aab36e26
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4-vlan1kip4src254ip4dst254.py
@@ -0,0 +1,201 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / DOT1Q / IP /
+ - Direction 0 --> 1:
+ - VLAN range: 1 - 1000
+ - Source IP address range: 10.0.0.1 - 10.0.0.254
+ - Destination IP address range: 20.0.0.1 - 20.0.0.254
+ - Direction 1 --> 0:
+ - VLAN range: 1 - 1000
+ - Source IP address range: 20.0.0.1 - 20.0.0.254
+ - Destination IP address range: 10.0.0.1 - 10.0.0.254
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # VLAN IDs
+ self.vlans = 1000
+
+ self.p1_vlan_start = 1
+ self.p1_vlan_end = self.p1_vlan_start + self.vlans - 1
+
+ self.p2_vlan_start = 1
+ self.p2_vlan_end = self.p2_vlan_start + self.vlans - 1
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_src_end_ip = u"10.0.0.254"
+
+ self.p1_dst_start_ip = u"20.0.0.1"
+ self.p1_dst_end_ip = u"20.0.0.254"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_src_end_ip = u"20.0.0.254"
+
+ self.p2_dst_start_ip = u"10.0.0.1"
+ self.p2_dst_end_ip = u"10.0.0.254"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | DOT1Q | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ Dot1Q(
+ vlan=self.p1_vlan_start
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ Dot1Q(
+ vlan=self.p2_vlan_start
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"vlan",
+ min_value=self.p1_vlan_start,
+ max_value=self.p1_vlan_end,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"vlan",
+ pkt_offset=u"Dot1Q.vlan"
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"vlan",
+ min_value=self.p2_vlan_start,
+ max_value=self.p2_vlan_end,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"vlan",
+ pkt_offset=u"Dot1Q.vlan"
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"random"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4asym-ip4src254.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4asym-ip4src254.py
new file mode 100644
index 0000000000..f95ebc371b
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4asym-ip4src254.py
@@ -0,0 +1,143 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Direction 0 --> 1:
+ - Packet: ETH / IP /
+ - Source IP address range: 10.10.10.1 - 10.10.10.254
+ - Destination IP address range: 20.20.20.1
+ - Direction 1 --> 0:
+ - Packet: ETH / DOT1Q / IP /
+ - Source IP address range: 20.20.20.1 - 20.20.20.254
+ - Destination IP address range: 10.10.10.1
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # VLAN ID
+ self.vlan_id = 10
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.10.10.1"
+ self.p1_src_end_ip = u"10.10.10.254"
+ self.p1_dst_start_ip = u"20.20.20.1"
+
+ self.p2_src_start_ip = u"20.20.20.1"
+ self.p2_src_end_ip = u"20.20.20.254"
+ self.p2_dst_start_ip = u"10.10.10.1"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ Dot1Q(
+ vlan=self.vlan_id
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src10udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src10udpsrcrnd.py
index 03328fcfaa..ed2181ef3e 100644
--- a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src10udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src10udpsrcrnd.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src1udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src1udpsrcrnd.py
index e4e6f75e34..077b866b2b 100644
--- a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src1udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src1udpsrcrnd.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src2udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src2udpsrcrnd.py
index 121c0a82c0..2aff7fa867 100644
--- a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src2udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src2udpsrcrnd.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src4udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src4udpsrcrnd.py
index 10739c335a..763c56bd0a 100644
--- a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src4udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src4udpsrcrnd.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src6udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src6udpsrcrnd.py
index 9723941150..54af270c63 100644
--- a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src6udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src6udpsrcrnd.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src8udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src8udpsrcrnd.py
index a1cf195bfa..0874a5efd6 100644
--- a/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src8udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip4vxlan-ip4src8udpsrcrnd.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -60,7 +60,7 @@ _VXLAN_FLAGS = list(u"R"*24 + u"RRRIRRRRR")
class VXLAN(Packet):
- name=u"VXLAN"
+ name = u"VXLAN"
fields_desc = [
FlagsField(u"flags", 0x08000000, 32, _VXLAN_FLAGS),
ThreeBytesField(u"vni", 0),
@@ -295,4 +295,3 @@ def register():
:rtype: Object
"""
return TrafficStreams()
-
diff --git a/GPL/traffic_profiles/trex/trex-stl-dot1qip6asym-ip6src253.py b/GPL/traffic_profiles/trex/trex-stl-dot1qip6asym-ip6src253.py
new file mode 100644
index 0000000000..d8c0aa3fdd
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-dot1qip6asym-ip6src253.py
@@ -0,0 +1,144 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Direction 0 --> 1:
+ - Packet: ETH / IPv6 /
+ - Source IP address range: 2001:1::2 - 2001:1::FE
+ - Destination IP address range: 2001:2::2
+ - Direction 1 --> 0:
+ - Packet: ETH / DOT1Q / IPv6 /
+ - Source IP address range: 2001:2::2 - 2001:2::FE
+ - Destination IP address range: 2001:1::2
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # VLAN ID
+ self.vlan_id = 10
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"2001:1::2"
+ self.p1_src_end_ip = u"2001:1::FE"
+ self.p1_dst_start_ip = u"2001:2::2"
+
+ self.p2_src_start_ip = u"2001:2::2"
+ self.p2_src_end_ip = u"2001:2::FE"
+ self.p2_dst_start_ip = u"2001:1::2"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ base_p1, count_p1 = self._get_start_end_ipv6(
+ self.p1_src_start_ip,
+ self.p1_src_end_ip
+ )
+ base_p2, count_p2 = self._get_start_end_ipv6(
+ self.p2_src_start_ip,
+ self.p2_src_end_ip
+ )
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IPv6(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ Dot1Q(
+ vlan=self.vlan_id
+ ) /
+ IPv6(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ipv6_src",
+ min_value=base_p1,
+ max_value=base_p1 + count_p1,
+ size=8, op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_src",
+ pkt_offset=u"IPv6.src",
+ offset_fixup=8
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ipv6_src",
+ min_value=base_p2,
+ max_value=base_p2 + count_p2,
+ size=8, op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_src",
+ pkt_offset=u"IPv6.src",
+ offset_fixup=8
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-1024t.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-1024t.py
new file mode 100644
index 0000000000..4613283605
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-1024t.py
@@ -0,0 +1,231 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Direction 0 --> 1:
+ - Packet: ETH / IP
+ - Source IP address range: 10.128.1.0 - 10.132.0.255
+ - Destination IP address range: 10.0.1.0 - 10.4.0.255
+ - Direction 1 --> 0:
+ - Packet: ETH / IP / UDP / GENEVE / ETH / IP
+ - Outer Source IP address range: 1.1.1.1
+ - Outer Destination IP address range: 1.1.1.2
+ - Inner Source IP address range: 10.0.1.0 - 10.4.0.255
+ - Inner Destination IP address range: 10.128.1.0 - 10.132.0.255
+ - Source UDP port range: 1024 - 65535
+ - Destination UDP port range: 6081
+"""
+
+from ctypes import c_int
+from ipaddress import IPv4Address
+
+from trex.stl.api import *
+from scapy.contrib.geneve import GENEVE
+
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # Nr. of GENEVE tunnels
+ self.n_tunnels = 1024
+ # VNIs used in GENEVE headers of Direction 1 --> 0.
+ self.p2_geneve_start_vni = 1
+
+ # IPs used in packet headers of Direction 0 --> 1.
+ self.p1_src_start_ip = u"10.128.1.0"
+ self.p1_dst_start_ip = u"10.0.1.0"
+
+ # IPs used in packet headers of Direction 1 --> 0.
+ self.p2_outer_src_ip = u"1.1.1.1"
+ self.p2_outer_dst_ip = u"1.1.1.2"
+
+ self.p2_inner_src_start_ip = u"10.0.1.0"
+ self.p2_inner_dst_start_ip = u"10.128.1.0"
+
+ # MACs used in inner ethernet header of Direction 1 --> 0.
+ self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
+
+ # UDP ports used in packet headers of Direction 1 --> 0.
+ self.p2_udp_sport_start = 1024
+ self.p2_udp_dport = 6081
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
+ p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
+ p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
+ p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_outer_src_ip,
+ dst=self.p2_outer_dst_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_udp_sport_start,
+ dport=self.p2_udp_dport
+ ) /
+ GENEVE(vni=self.p2_geneve_start_vni) /
+ Ether(dst=self.p2_inner_dst_mac) /
+ IP(
+ src=self.p2_inner_src_start_ip,
+ dst=self.p2_inner_dst_start_ip,
+ proto=61
+ )
+ )
+ base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=p1_src_start_ip_int,
+ max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=p1_dst_start_ip_int,
+ max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip",
+ min_value=0,
+ max_value=self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_src_start_ip_int,
+ pkt_offset=u"IP:1.src"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_dst_start_ip_int,
+ pkt_offset=u"IP:1.dst"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=2,
+ mask=0xffff,
+ add_value=self.p2_udp_sport_start,
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff00,
+ add_value=(self.p2_geneve_start_vni << 8),
+ pkt_offset=u"GENEVE.vni"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff,
+ shift=-8,
+ offset_fixup=2,
+ add_value=c_int(
+ int(
+ self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
+ ) << 8
+ ).value,
+ pkt_offset=u"Ether:1.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP:1"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmFixChecksumHw(
+ l3_offset=u"IP",
+ l4_offset=u"UDP",
+ l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-16t.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-16t.py
new file mode 100644
index 0000000000..48c4e75401
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-16t.py
@@ -0,0 +1,231 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Direction 0 --> 1:
+ - Packet: ETH / IP
+ - Source IP address range: 10.128.1.0 - 10.128.17.255
+ - Destination IP address range: 10.0.1.0 - 10.0.17.255
+ - Direction 1 --> 0:
+ - Packet: ETH / IP / UDP / GENEVE / ETH / IP
+ - Outer Source IP address range: 1.1.1.1
+ - Outer Destination IP address range: 1.1.1.2
+ - Inner Source IP address range: 10.0.1.0 - 10.0.17.255
+ - Inner Destination IP address range: 10.128.1.0 - 10.128.17.255
+ - Source UDP port range: 1024 - 5119
+ - Destination UDP port range: 6081
+"""
+
+from ctypes import c_int
+from ipaddress import IPv4Address
+
+from scapy.contrib.geneve import GENEVE
+from trex.stl.api import *
+
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # Nr. of GENEVE tunnels
+ self.n_tunnels = 16
+ # VNIs used in GENEVE headers of Direction 1 --> 0.
+ self.p2_geneve_start_vni = 1
+
+ # IPs used in packet headers of Direction 0 --> 1.
+ self.p1_src_start_ip = u"10.128.1.0"
+ self.p1_dst_start_ip = u"10.0.1.0"
+
+ # IPs used in packet headers of Direction 1 --> 0.
+ self.p2_outer_src_ip = u"1.1.1.1"
+ self.p2_outer_dst_ip = u"1.1.1.2"
+
+ self.p2_inner_src_start_ip = u"10.0.1.0"
+ self.p2_inner_dst_start_ip = u"10.128.1.0"
+
+ # MACs used in inner ethernet header of Direction 1 --> 0.
+ self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
+
+ # UDP ports used in packet headers of Direction 1 --> 0.
+ self.p2_udp_sport_start = 1024
+ self.p2_udp_dport = 6081
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
+ p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
+ p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
+ p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_outer_src_ip,
+ dst=self.p2_outer_dst_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_udp_sport_start,
+ dport=self.p2_udp_dport
+ ) /
+ GENEVE(vni=self.p2_geneve_start_vni) /
+ Ether(dst=self.p2_inner_dst_mac) /
+ IP(
+ src=self.p2_inner_src_start_ip,
+ dst=self.p2_inner_dst_start_ip,
+ proto=61
+ )
+ )
+ base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=p1_src_start_ip_int,
+ max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=p1_dst_start_ip_int,
+ max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip",
+ min_value=0,
+ max_value=self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_src_start_ip_int,
+ pkt_offset=u"IP:1.src"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_dst_start_ip_int,
+ pkt_offset=u"IP:1.dst"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=2,
+ mask=0xffff,
+ add_value=self.p2_udp_sport_start,
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff00,
+ add_value=(self.p2_geneve_start_vni << 8),
+ pkt_offset=u"GENEVE.vni"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff,
+ shift=-8,
+ offset_fixup=2,
+ add_value=c_int(
+ int(
+ self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
+ ) << 8
+ ).value,
+ pkt_offset=u"Ether:1.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP:1"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmFixChecksumHw(
+ l3_offset=u"IP",
+ l4_offset=u"UDP",
+ l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-1t.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-1t.py
new file mode 100644
index 0000000000..23a32f5177
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-1t.py
@@ -0,0 +1,231 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Direction 0 --> 1:
+ - Packet: ETH / IP
+ - Source IP address range: 10.128.1.0 - 10.128.1.255
+ - Destination IP address range: 10.0.1.0 - 10.0.1.255
+ - Direction 1 --> 0:
+ - Packet: ETH / IP / UDP / GENEVE / ETH / IP
+ - Outer Source IP address range: 1.1.1.1
+ - Outer Destination IP address range: 1.1.1.2
+ - Inner Source IP address range: 10.0.1.0 - 10.0.1.255
+ - Inner Destination IP address range: 10.128.1.0 - 10.128.1.255
+ - Source UDP port range: 1024 - 1279
+ - Destination UDP port range: 6081
+"""
+
+from ctypes import c_int
+from ipaddress import IPv4Address
+
+from scapy.contrib.geneve import GENEVE
+from trex.stl.api import *
+
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # Nr. of GENEVE tunnels
+ self.n_tunnels = 1
+ # VNIs used in GENEVE headers of Direction 1 --> 0.
+ self.p2_geneve_start_vni = 1
+
+ # IPs used in packet headers of Direction 0 --> 1.
+ self.p1_src_start_ip = u"10.128.1.0"
+ self.p1_dst_start_ip = u"10.0.1.0"
+
+ # IPs used in packet headers of Direction 1 --> 0.
+ self.p2_outer_src_ip = u"1.1.1.1"
+ self.p2_outer_dst_ip = u"1.1.1.2"
+
+ self.p2_inner_src_start_ip = u"10.0.1.0"
+ self.p2_inner_dst_start_ip = u"10.128.1.0"
+
+ # MACs used in inner ethernet header of Direction 1 --> 0.
+ self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
+
+ # UDP ports used in packet headers of Direction 1 --> 0.
+ self.p2_udp_sport_start = 1024
+ self.p2_udp_dport = 6081
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
+ p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
+ p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
+ p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_outer_src_ip,
+ dst=self.p2_outer_dst_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_udp_sport_start,
+ dport=self.p2_udp_dport
+ ) /
+ GENEVE(vni=self.p2_geneve_start_vni) /
+ Ether(dst=self.p2_inner_dst_mac) /
+ IP(
+ src=self.p2_inner_src_start_ip,
+ dst=self.p2_inner_dst_start_ip,
+ proto=61
+ )
+ )
+ base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=p1_src_start_ip_int,
+ max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=p1_dst_start_ip_int,
+ max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip",
+ min_value=0,
+ max_value=self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_src_start_ip_int,
+ pkt_offset=u"IP:1.src"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_dst_start_ip_int,
+ pkt_offset=u"IP:1.dst"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=2,
+ mask=0xffff,
+ add_value=self.p2_udp_sport_start,
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff00,
+ add_value=(self.p2_geneve_start_vni << 8),
+ pkt_offset=u"GENEVE.vni"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff,
+ shift=-8,
+ offset_fixup=2,
+ add_value=c_int(
+ int(
+ self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
+ ) << 8
+ ).value,
+ pkt_offset=u"Ether:1.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP:1"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmFixChecksumHw(
+ l3_offset=u"IP",
+ l4_offset=u"UDP",
+ l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-256t.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-256t.py
new file mode 100644
index 0000000000..4d53ea5140
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-256t.py
@@ -0,0 +1,231 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Direction 0 --> 1:
+ - Packet: ETH / IP
+ - Source IP address range: 10.128.1.0 - 10.129.0.255
+ - Destination IP address range: 10.0.1.0 - 10.1.0.255
+ - Direction 1 --> 0:
+ - Packet: ETH / IP / UDP / GENEVE / ETH / IP
+ - Outer Source IP address range: 1.1.1.1
+ - Outer Destination IP address range: 1.1.1.2
+ - Inner Source IP address range: 10.0.1.0 - 10.1.0.255
+ - Inner Destination IP address range: 10.128.1.0 - 10.129.0.255
+ - Source UDP port range: 1024 - 65535
+ - Destination UDP port range: 6081
+"""
+
+from ctypes import c_int
+from ipaddress import IPv4Address
+
+from scapy.contrib.geneve import GENEVE
+from trex.stl.api import *
+
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # Nr. of GENEVE tunnels
+ self.n_tunnels = 256
+ # VNIs used in GENEVE headers of Direction 1 --> 0.
+ self.p2_geneve_start_vni = 1
+
+ # IPs used in packet headers of Direction 0 --> 1.
+ self.p1_src_start_ip = u"10.128.1.0"
+ self.p1_dst_start_ip = u"10.0.1.0"
+
+ # IPs used in packet headers of Direction 1 --> 0.
+ self.p2_outer_src_ip = u"1.1.1.1"
+ self.p2_outer_dst_ip = u"1.1.1.2"
+
+ self.p2_inner_src_start_ip = u"10.0.1.0"
+ self.p2_inner_dst_start_ip = u"10.128.1.0"
+
+ # MACs used in inner ethernet header of Direction 1 --> 0.
+ self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
+
+ # UDP ports used in packet headers of Direction 1 --> 0.
+ self.p2_udp_sport_start = 1024
+ self.p2_udp_dport = 6081
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
+ p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
+ p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
+ p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_outer_src_ip,
+ dst=self.p2_outer_dst_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_udp_sport_start,
+ dport=self.p2_udp_dport
+ ) /
+ GENEVE(vni=self.p2_geneve_start_vni) /
+ Ether(dst=self.p2_inner_dst_mac) /
+ IP(
+ src=self.p2_inner_src_start_ip,
+ dst=self.p2_inner_dst_start_ip,
+ proto=61
+ )
+ )
+ base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=p1_src_start_ip_int,
+ max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=p1_dst_start_ip_int,
+ max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip",
+ min_value=0,
+ max_value=self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_src_start_ip_int,
+ pkt_offset=u"IP:1.src"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_dst_start_ip_int,
+ pkt_offset=u"IP:1.dst"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=2,
+ mask=0xffff,
+ add_value=self.p2_udp_sport_start,
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff00,
+ add_value=(self.p2_geneve_start_vni << 8),
+ pkt_offset=u"GENEVE.vni"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff,
+ shift=-8,
+ offset_fixup=2,
+ add_value=c_int(
+ int(
+ self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
+ ) << 8
+ ).value,
+ pkt_offset=u"Ether:1.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP:1"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmFixChecksumHw(
+ l3_offset=u"IP",
+ l4_offset=u"UDP",
+ l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-4t.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-4t.py
new file mode 100644
index 0000000000..06616e18ec
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-4t.py
@@ -0,0 +1,231 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Direction 0 --> 1:
+ - Packet: ETH / IP
+ - Source IP address range: 10.128.1.0 - 10.128.4.255
+ - Destination IP address range: 10.0.1.0 - 10.0.4.255
+ - Direction 1 --> 0:
+ - Packet: ETH / IP / UDP / GENEVE / ETH / IP
+ - Outer Source IP address range: 1.1.1.1
+ - Outer Destination IP address range: 1.1.1.2
+ - Inner Source IP address range: 10.0.1.0 - 10.0.4.255
+ - Inner Destination IP address range: 10.128.1.0 - 10.128.4.255
+ - Source UDP port range: 1024 - 2047
+ - Destination UDP port range: 6081
+"""
+
+from ctypes import c_int
+from ipaddress import IPv4Address
+
+from scapy.contrib.geneve import GENEVE
+from trex.stl.api import *
+
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # Nr. of GENEVE tunnels
+ self.n_tunnels = 4
+ # VNIs used in GENEVE headers of Direction 1 --> 0.
+ self.p2_geneve_start_vni = 1
+
+ # IPs used in packet headers of Direction 0 --> 1.
+ self.p1_src_start_ip = u"10.128.1.0"
+ self.p1_dst_start_ip = u"10.0.1.0"
+
+ # IPs used in packet headers of Direction 1 --> 0.
+ self.p2_outer_src_ip = u"1.1.1.1"
+ self.p2_outer_dst_ip = u"1.1.1.2"
+
+ self.p2_inner_src_start_ip = u"10.0.1.0"
+ self.p2_inner_dst_start_ip = u"10.128.1.0"
+
+ # MACs used in inner ethernet header of Direction 1 --> 0.
+ self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
+
+ # UDP ports used in packet headers of Direction 1 --> 0.
+ self.p2_udp_sport_start = 1024
+ self.p2_udp_dport = 6081
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
+ p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
+ p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
+ p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_outer_src_ip,
+ dst=self.p2_outer_dst_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_udp_sport_start,
+ dport=self.p2_udp_dport
+ ) /
+ GENEVE(vni=self.p2_geneve_start_vni) /
+ Ether(dst=self.p2_inner_dst_mac) /
+ IP(
+ src=self.p2_inner_src_start_ip,
+ dst=self.p2_inner_dst_start_ip,
+ proto=61
+ )
+ )
+ base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=p1_src_start_ip_int,
+ max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=p1_dst_start_ip_int,
+ max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip",
+ min_value=0,
+ max_value=self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_src_start_ip_int,
+ pkt_offset=u"IP:1.src"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_dst_start_ip_int,
+ pkt_offset=u"IP:1.dst"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=2,
+ mask=0xffff,
+ add_value=self.p2_udp_sport_start,
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff00,
+ add_value=(self.p2_geneve_start_vni << 8),
+ pkt_offset=u"GENEVE.vni"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff,
+ shift=-8,
+ offset_fixup=2,
+ add_value=c_int(
+ int(
+ self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
+ ) << 8
+ ).value,
+ pkt_offset=u"Ether:1.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP:1"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmFixChecksumHw(
+ l3_offset=u"IP",
+ l4_offset=u"UDP",
+ l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-64t.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-64t.py
new file mode 100644
index 0000000000..704ceb84b5
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-geneve-64t.py
@@ -0,0 +1,231 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Direction 0 --> 1:
+ - Packet: ETH / IP
+ - Source IP address range: 10.128.1.0 - 10.128.65.255
+ - Destination IP address range: 10.0.1.0 - 10.0.65.255
+ - Direction 1 --> 0:
+ - Packet: ETH / IP / UDP / GENEVE / ETH / IP
+ - Outer Source IP address range: 1.1.1.1
+ - Outer Destination IP address range: 1.1.1.2
+ - Inner Source IP address range: 10.0.1.0 - 10.0.65.255
+ - Inner Destination IP address range: 10.128.1.0 - 10.128.65.255
+ - Source UDP port range: 1024 - 17407
+ - Destination UDP port range: 6081
+"""
+
+from ctypes import c_int
+from ipaddress import IPv4Address
+
+from scapy.contrib.geneve import GENEVE
+from trex.stl.api import *
+
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # Nr. of GENEVE tunnels
+ self.n_tunnels = 64
+ # VNIs used in GENEVE headers of Direction 1 --> 0.
+ self.p2_geneve_start_vni = 1
+
+ # IPs used in packet headers of Direction 0 --> 1.
+ self.p1_src_start_ip = u"10.128.1.0"
+ self.p1_dst_start_ip = u"10.0.1.0"
+
+ # IPs used in packet headers of Direction 1 --> 0.
+ self.p2_outer_src_ip = u"1.1.1.1"
+ self.p2_outer_dst_ip = u"1.1.1.2"
+
+ self.p2_inner_src_start_ip = u"10.0.1.0"
+ self.p2_inner_dst_start_ip = u"10.128.1.0"
+
+ # MACs used in inner ethernet header of Direction 1 --> 0.
+ self.p2_inner_dst_mac = u"d0:0b:ee:d0:00:00"
+
+ # UDP ports used in packet headers of Direction 1 --> 0.
+ self.p2_udp_sport_start = 1024
+ self.p2_udp_dport = 6081
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ p1_src_start_ip_int = int(IPv4Address(self.p1_src_start_ip))
+ p1_dst_start_ip_int = int(IPv4Address(self.p1_dst_start_ip))
+ p2_inner_src_start_ip_int = int(IPv4Address(self.p2_inner_src_start_ip))
+ p2_inner_dst_start_ip_int = int(IPv4Address(self.p2_inner_dst_start_ip))
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_outer_src_ip,
+ dst=self.p2_outer_dst_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_udp_sport_start,
+ dport=self.p2_udp_dport
+ ) /
+ GENEVE(vni=self.p2_geneve_start_vni) /
+ Ether(dst=self.p2_inner_dst_mac) /
+ IP(
+ src=self.p2_inner_src_start_ip,
+ dst=self.p2_inner_dst_start_ip,
+ proto=61
+ )
+ )
+ base_pkt_b /= Raw(load=self._gen_payload(110 - len(base_pkt_b)))
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=p1_src_start_ip_int,
+ max_value=p1_src_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=p1_dst_start_ip_int,
+ max_value=p1_dst_start_ip_int + self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip",
+ min_value=0,
+ max_value=self.n_tunnels * 256 - 1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_src_start_ip_int,
+ pkt_offset=u"IP:1.src"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffffff,
+ add_value=p2_inner_dst_start_ip_int,
+ pkt_offset=u"IP:1.dst"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=2,
+ mask=0xffff,
+ add_value=self.p2_udp_sport_start,
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff00,
+ add_value=(self.p2_geneve_start_vni << 8),
+ pkt_offset=u"GENEVE.vni"
+ ),
+ STLVmWrMaskFlowVar(
+ fv_name=u"ip",
+ pkt_cast_size=4,
+ mask=0xffffff,
+ shift=-8,
+ offset_fixup=2,
+ add_value=c_int(
+ int(
+ self.p2_inner_dst_mac.replace(u":", u"")[6:12], 16
+ ) << 8
+ ).value,
+ pkt_offset=u"Ether:1.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP:1"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmFixChecksumHw(
+ l3_offset=u"IP",
+ l4_offset=u"UDP",
+ l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000-2p.py
new file mode 100644
index 0000000000..1149a0403b
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000-2p.py
@@ -0,0 +1,113 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.0.39.15",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.0.39.15",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000-6p.py
new file mode 100644
index 0000000000..34ca59fe84
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000-6p.py
@@ -0,0 +1,141 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.0.39.15",
+ "seed": 1
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "30.0.0.1",
+ "dst_start_ip": "40.0.0.0",
+ "dst_end_ip": "40.0.39.15",
+ "seed": 2
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "50.0.0.1",
+ "dst_start_ip": "60.0.0.0",
+ "dst_end_ip": "60.0.39.15",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.0.39.15",
+ "seed": 2
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "40.0.0.1",
+ "dst_start_ip": "30.0.0.0",
+ "dst_end_ip": "30.0.39.15",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "60.0.0.1",
+ "dst_start_ip": "50.0.0.0",
+ "dst_end_ip": "50.0.39.15",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000.py
index ef2dcde696..b9a8eb22f8 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd10000.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000-2p.py
new file mode 100644
index 0000000000..955e394c56
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000-2p.py
@@ -0,0 +1,113 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.1.134.159",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.1.134.159",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000-6p.py
new file mode 100644
index 0000000000..23de4e48a3
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000-6p.py
@@ -0,0 +1,141 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.1.134.159",
+ "seed": 1
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "30.0.0.1",
+ "dst_start_ip": "40.0.0.0",
+ "dst_end_ip": "40.1.134.159",
+ "seed": 2
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "50.0.0.1",
+ "dst_start_ip": "60.0.0.0",
+ "dst_end_ip": "60.1.134.159",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.1.134.159",
+ "seed": 2
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "40.0.0.1",
+ "dst_start_ip": "30.0.0.0",
+ "dst_end_ip": "30.1.134.159",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "60.0.0.1",
+ "dst_start_ip": "50.0.0.0",
+ "dst_end_ip": "50.1.134.159",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000.py
index ff9077192f..927f4cd07c 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd100000.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000-2p.py
new file mode 100644
index 0000000000..3a03303e60
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000-2p.py
@@ -0,0 +1,113 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.15.66.63",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.15.66.63",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000-6p.py
new file mode 100644
index 0000000000..141a5f2123
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000-6p.py
@@ -0,0 +1,141 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.15.66.63",
+ "seed": 1
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "30.0.0.1",
+ "dst_start_ip": "40.0.0.0",
+ "dst_end_ip": "40.15.66.63",
+ "seed": 2
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "50.0.0.1",
+ "dst_start_ip": "60.0.0.0",
+ "dst_end_ip": "60.15.66.63",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.15.66.63",
+ "seed": 2
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "40.0.0.1",
+ "dst_start_ip": "30.0.0.0",
+ "dst_end_ip": "30.15.66.63",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "60.0.0.1",
+ "dst_start_ip": "50.0.0.0",
+ "dst_end_ip": "50.15.66.63",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000.py
index 4a315c72ed..a60ec87d8d 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst-rnd1000000.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1-udir.py
new file mode 100644
index 0000000000..1a52b30510
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1-udir.py
@@ -0,0 +1,84 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address: 10.0.0.1
+ - Destination IP address: 20.0.0.0
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_ip = u"10.0.0.1"
+ self.p1_dst_ip = u"20.0.0.0"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_ip,
+ dst=self.p1_dst_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ return base_pkt_a, base_pkt_b, None, None
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1.py
new file mode 100644
index 0000000000..d73c8519ea
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1.py
@@ -0,0 +1,95 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_ip = u"10.0.0.1"
+ self.p1_dst_ip = u"20.0.0.0"
+
+ self.p2_src_ip = u"20.0.0.1"
+ self.p2_dst_ip = u"10.0.0.0"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_ip,
+ dst=self.p1_dst_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_ip,
+ dst=self.p2_dst_ip,
+ proto=61
+ )
+ )
+
+ return base_pkt_a, base_pkt_b, None, None
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100.py
new file mode 100644
index 0000000000..fb45774007
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.99
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.99
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.99"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.99"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-1cnf.py
new file mode 100644
index 0000000000..d11f5d5d9b
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-1cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.3.231
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.3.231
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.3.231"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.3.231"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-2cnf.py
new file mode 100644
index 0000000000..28756f3a16
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-2cnf.py
@@ -0,0 +1,165 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.3.231
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.3.231
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.3.231"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.3.231"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) / IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-4cnf.py
new file mode 100644
index 0000000000..6249612fc4
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-4cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.3.231
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.3.231
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.3.231"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.3.231"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-8cnf.py
new file mode 100644
index 0000000000..2e7d4d6f44
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-8cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.3.231
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.3.231
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.3.231"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.3.231"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-udir.py
new file mode 100644
index 0000000000..fbba5d4c3b
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.3.231
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.3.231"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000.py
new file mode 100644
index 0000000000..554eb0bca4
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.3.231
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.3.231
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.3.231"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.3.231"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-1cnf.py
new file mode 100644
index 0000000000..97ea55a72b
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-1cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.39.15
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.39.15
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.39.15"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.39.15"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-2cnf.py
new file mode 100644
index 0000000000..8fc52f134e
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-2cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.39.15
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.39.15
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.39.15"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.39.15"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-2p.py
new file mode 100644
index 0000000000..2dda26ddaf
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-2p.py
@@ -0,0 +1,110 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.0.39.15"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.0.39.15"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-4cnf.py
new file mode 100644
index 0000000000..c2a537a638
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-4cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.39.15
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.39.15
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.39.15"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.39.15"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-6p.py
new file mode 100644
index 0000000000..94a47a8bb6
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-6p.py
@@ -0,0 +1,134 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.0.39.15"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "30.0.0.1",
+ "dst_start_ip": "40.0.0.0",
+ "dst_end_ip": "40.0.39.15"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "50.0.0.1",
+ "dst_start_ip": "60.0.0.0",
+ "dst_end_ip": "60.0.39.15"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.0.39.15"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "40.0.0.1",
+ "dst_start_ip": "30.0.0.0",
+ "dst_end_ip": "30.0.39.15"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "60.0.0.1",
+ "dst_start_ip": "50.0.0.0",
+ "dst_end_ip": "50.0.39.15"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-8cnf.py
new file mode 100644
index 0000000000..9b3d280f4a
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-8cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.39.15
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.39.15
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.39.15"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.39.15"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-udir.py
new file mode 100644
index 0000000000..f643f3e3cc
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.39.15
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.39.15"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000.py
new file mode 100644
index 0000000000..29ebf97b80
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst10000.py
@@ -0,0 +1,135 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.39.15
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.39.15
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.39.15"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.39.15"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4, op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000-2p.py
new file mode 100644
index 0000000000..a8d223b854
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000-2p.py
@@ -0,0 +1,110 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.1.134.159"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.1.134.159"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000-6p.py
new file mode 100644
index 0000000000..76042447ca
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000-6p.py
@@ -0,0 +1,134 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.1.134.159"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "30.0.0.1",
+ "dst_start_ip": "40.0.0.0",
+ "dst_end_ip": "40.1.134.159"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "50.0.0.1",
+ "dst_start_ip": "60.0.0.0",
+ "dst_end_ip": "60.1.134.159"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.1.134.159"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "40.0.0.1",
+ "dst_start_ip": "30.0.0.0",
+ "dst_end_ip": "30.1.134.159"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "60.0.0.1",
+ "dst_start_ip": "50.0.0.0",
+ "dst_end_ip": "50.1.134.159"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000.py
new file mode 100644
index 0000000000..312deccbc8
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst100000.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.1.134.159
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.1.134.159
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.1.134.159"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.1.134.159"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000-2p.py
new file mode 100644
index 0000000000..f2e7938ff2
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000-2p.py
@@ -0,0 +1,110 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.15.66.63"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.15.66.63"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000-6p.py
new file mode 100644
index 0000000000..6474b43470
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000-6p.py
@@ -0,0 +1,134 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IP /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "10.0.0.1",
+ "dst_start_ip": "20.0.0.0",
+ "dst_end_ip": "20.15.66.63"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "30.0.0.1",
+ "dst_start_ip": "40.0.0.0",
+ "dst_end_ip": "40.15.66.63"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "50.0.0.1",
+ "dst_start_ip": "60.0.0.0",
+ "dst_end_ip": "60.15.66.63"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "20.0.0.1",
+ "dst_start_ip": "10.0.0.0",
+ "dst_end_ip": "10.15.66.63"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "40.0.0.1",
+ "dst_start_ip": "30.0.0.0",
+ "dst_end_ip": "30.15.66.63"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "60.0.0.1",
+ "dst_start_ip": "50.0.0.0",
+ "dst_end_ip": "50.15.66.63"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Base packets to be sent and transformation function.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ self.pkt_base.append(
+ Ether() /
+ IP(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"],
+ proto=61
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="dst",
+ min_value=self.pkt_data[i]["dst_start_ip"],
+ max_value=self.pkt_data[i]["dst_end_ip"],
+ size=4,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-Rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000.py
new file mode 100644
index 0000000000..909da92426
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst1000000.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.15.66.63
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.15.66.63
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.15.66.63"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.15.66.63"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="dst",
+ pkt_offset="IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset="IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst2-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst2-udir.py
new file mode 100644
index 0000000000..f86306295b
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst2-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.1
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.1"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst2.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst2.py
new file mode 100644
index 0000000000..864ad19f4e
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst2.py
@@ -0,0 +1,135 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.1
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.1
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.1"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.1"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-1cnf.py
new file mode 100644
index 0000000000..f8caca1181
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-1cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.78.31
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.78.31
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.78.31"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.78.31"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-2cnf.py
new file mode 100644
index 0000000000..dc7c0ebc9e
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-2cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.78.31
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.78.31
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.78.31"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.78.31"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-4cnf.py
new file mode 100644
index 0000000000..84a920463a
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-4cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.78.31
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.78.31
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.78.31"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.78.31"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-8cnf.py
new file mode 100644
index 0000000000..f4e9820091
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-8cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.78.31
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.78.31
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.78.31"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.78.31"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-udir.py
new file mode 100644
index 0000000000..a076477d5f
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.78.31
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.78.31"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000.py
new file mode 100644
index 0000000000..7bedccf9a5
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst20000.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.78.31
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.78.31
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.78.31"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.78.31"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst253.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst253.py
new file mode 100644
index 0000000000..b32433f817
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst253.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 20.20.20.2
+ - Destination IP address range: 2.1.1.2 - 2.1.1.254
+ - Direction 1 --> 0:
+ - Source IP address range: 10.10.10.2
+ - Destination IP address range: 1.1.1.2 - 1.1.1.254
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"20.20.20.2"
+ self.p1_dst_start_ip = u"2.1.1.2"
+ self.p1_dst_end_ip = u"2.1.1.254"
+
+ self.p2_src_start_ip = u"10.10.10.2"
+ self.p2_dst_start_ip = u"1.1.1.2"
+ self.p2_dst_end_ip = u"1.1.1.254"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst253_l3fwd.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst253_l3fwd.py
new file mode 100644
index 0000000000..54ff7aba29
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst253_l3fwd.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 20.20.20.2
+ - Destination IP address range: 198.18.0.2 - 198.18.0.254
+ - Direction 1 --> 0:
+ - Source IP address range: 10.10.10.2
+ - Destination IP address range: 198.18.1.2 - 198.18.1.254
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"20.20.20.2"
+ self.p1_dst_start_ip = u"198.18.0.2"
+ self.p1_dst_end_ip = u"198.18.0.254"
+
+ self.p2_src_start_ip = u"10.10.10.2"
+ self.p2_dst_start_ip = u"198.18.1.2"
+ self.p2_dst_end_ip = u"198.18.1.254"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-1cnf.py
new file mode 100644
index 0000000000..e03627113c
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-1cnf.py
@@ -0,0 +1,167 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.3
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.3
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.3"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.3"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
+
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-2cnf.py
new file mode 100644
index 0000000000..1f8a8398ae
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-2cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.3
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.3
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.3"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.3"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-4cnf.py
new file mode 100644
index 0000000000..ced715c16b
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-4cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.3
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.3
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.3"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.3"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-udir.py
new file mode 100644
index 0000000000..5f293a32ec
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.3
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.3"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4.py
new file mode 100644
index 0000000000..ecec1bf353
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst4.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.3
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.3
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.3"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.3"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-1cnf.py
new file mode 100644
index 0000000000..7c3f6698af
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-1cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.39
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.39
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.39"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.39"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-2cnf.py
new file mode 100644
index 0000000000..8b76f33152
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-2cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.39
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.39
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.39"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.39"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-4cnf.py
new file mode 100644
index 0000000000..21768e9ef0
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-4cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.39
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.39
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.39"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.39"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-8cnf.py
new file mode 100644
index 0000000000..47f087e11b
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-8cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.39
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.39
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.39"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.39"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-udir.py
new file mode 100644
index 0000000000..b76c9e1698
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.39
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.39"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40.py
new file mode 100644
index 0000000000..d30d357bc9
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.39
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.39
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.39"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.39"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-1cnf.py
new file mode 100644
index 0000000000..6ac54334f8
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-1cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.1.143
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.1.143
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.1.143"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.1.143"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-2cnf.py
new file mode 100644
index 0000000000..882675afae
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-2cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.1.143
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.1.143
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.1.143"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.1.143"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-4cnf.py
new file mode 100644
index 0000000000..35ea970656
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-4cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.1.143
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.1.143
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.1.143"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.1.143"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-8cnf.py
new file mode 100644
index 0000000000..1ece5c3e2a
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-8cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.1.143
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.1.143
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.1.143"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.1.143"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-udir.py
new file mode 100644
index 0000000000..68543c8f7e
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.1.143
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.1.143"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400.py
new file mode 100644
index 0000000000..9bd7737be6
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst400.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.1.143
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.1.143
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.1.143"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.1.143"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-1cnf.py
new file mode 100644
index 0000000000..5e0fe7d9b0
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-1cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.156.63
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.156.63
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.156.63"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.156.63"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-2cnf.py
new file mode 100644
index 0000000000..784539c830
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-2cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.156.63
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.156.63
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.156.63"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.156.63"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-4cnf.py
new file mode 100644
index 0000000000..f478e7001d
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-4cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.156.63
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.156.63
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.156.63"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.156.63"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-8cnf.py
new file mode 100644
index 0000000000..e31ad2bc74
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-8cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.156.63
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.156.63
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.156.63"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.156.63"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-udir.py
new file mode 100644
index 0000000000..4e6f271ed4
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.156.63
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.156.63"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000.py
new file mode 100644
index 0000000000..5a51902642
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst40000.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.156.63
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.156.63
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.156.63"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.156.63"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams() \ No newline at end of file
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-1cnf.py
new file mode 100644
index 0000000000..a895626c82
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-1cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.19.135
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.19.135
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.19.135"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.19.135"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-2cnf.py
new file mode 100644
index 0000000000..e73426590e
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-2cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.19.135
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.19.135
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.19.135"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.19.135"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-4cnf.py
new file mode 100644
index 0000000000..4461963314
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-4cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.19.135
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.19.135
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.19.135"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.19.135"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-8cnf.py
new file mode 100644
index 0000000000..d7d2e2d1ec
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-8cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.19.135
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.19.135
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.19.135"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.19.135"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-udir.py
new file mode 100644
index 0000000000..1d0d52a0a7
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.19.135
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.19.135"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000.py
new file mode 100644
index 0000000000..1fe61837d4
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst5000.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.19.135
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.19.135
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.19.135"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.19.135"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams() \ No newline at end of file
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst500000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst500000.py
new file mode 100644
index 0000000000..051d566b20
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst500000.py
@@ -0,0 +1,137 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.7.161.31
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.7.161.31
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.7.161.31"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.7.161.31"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-1cnf.py
new file mode 100644
index 0000000000..49d35f1da0
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-1cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.234.95
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.234.95
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.234.95"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.234.95"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=0,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-2cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-2cnf.py
new file mode 100644
index 0000000000..a673b0bd98
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-2cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.234.95
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.234.95
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.234.95"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.234.95"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=1,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-4cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-4cnf.py
new file mode 100644
index 0000000000..d9fc1a4718
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-4cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.234.95
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.234.95
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.234.95"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.234.95"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=3,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-8cnf.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-8cnf.py
new file mode 100644
index 0000000000..3674818810
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-8cnf.py
@@ -0,0 +1,166 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.234.95
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.234.95
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.p1_dst_start_mac = u"02:02:00:00:12:00"
+
+ self.p2_dst_start_mac = u"02:02:00:00:02:00"
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.234.95"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.234.95"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=7,
+ size=1,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=5
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-udir.py
new file mode 100644
index 0000000000..e037734f15
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.234.95
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.234.95"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000.py
new file mode 100644
index 0000000000..e6e13343bb
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst60000.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.234.95
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.234.95
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.234.95"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.234.95"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst8-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst8-udir.py
new file mode 100644
index 0000000000..c6d383cfd8
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst8-udir.py
@@ -0,0 +1,107 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.7
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.7"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether()
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw()
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst8.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst8.py
new file mode 100644
index 0000000000..7cbe1f9573
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4dst8.py
@@ -0,0 +1,135 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.1
+ - Destination IP address range: 20.0.0.0 - 20.0.0.7
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.1
+ - Destination IP address range: 10.0.0.0 - 10.0.0.7
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.1"
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.0.7"
+
+ self.p2_src_start_ip = u"20.0.0.1"
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.0.7"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src1000ip4dst1000.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src1000ip4dst1000.py
new file mode 100644
index 0000000000..8a79cdd7f5
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src1000ip4dst1000.py
@@ -0,0 +1,165 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.0 - 10.3.231.0
+ - Destination IP address range: 20.0.0.0 - 20.3.231.0
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.0 - 20.3.231.0
+ - Destination IP address range: 10.0.0.0 - 10.3.231.0
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.0"
+ self.p1_src_end_ip = u"10.3.231.0"
+
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.3.231.0"
+
+ self.p2_src_start_ip = u"20.0.0.0"
+ self.p2_src_end_ip = u"20.3.231.0"
+
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.3.231.0"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src100ip4dst100.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src100ip4dst100.py
new file mode 100644
index 0000000000..681e594136
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src100ip4dst100.py
@@ -0,0 +1,165 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.0 - 10.0.99.0
+ - Destination IP address range: 20.0.0.0 - 20.0.99.0
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.0 - 20.0.99.0
+ - Destination IP address range: 10.0.0.0 - 10.0.99.0
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.0"
+ self.p1_src_end_ip = u"10.0.99.0"
+
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.99.0"
+
+ self.p2_src_start_ip = u"20.0.0.0"
+ self.p2_src_end_ip = u"20.0.99.0"
+
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.99.0"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src1ip4dst1.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src1ip4dst1.py
new file mode 100644
index 0000000000..9a33b33522
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src1ip4dst1.py
@@ -0,0 +1,95 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.0
+ - Destination IP address range: 20.0.0.0
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.0
+ - Destination IP address range: 10.0.0.0
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_ip = u"10.0.0.0"
+ self.p1_dst_ip = u"20.0.0.0"
+
+ self.p2_src_ip = u"20.0.0.0"
+ self.p2_dst_ip = u"10.0.0.0"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_ip,
+ dst=self.p1_dst_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_ip,
+ dst=self.p2_dst_ip,
+ proto=61
+ )
+ )
+
+ return base_pkt_a, base_pkt_b, None, None
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src253.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src253.py
new file mode 100644
index 0000000000..bb287474f7
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src253.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.10.10.2 - 10.10.10.254
+ - Destination IP address range: 20.20.20.2
+ - Direction 1 --> 0:
+ - Source IP address range: 20.20.20.2 - 20.20.20.254
+ - Destination IP address range: 10.10.10.2
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.10.10.2"
+ self.p1_src_end_ip = u"10.10.10.254"
+ self.p1_dst_start_ip = u"20.20.20.2"
+
+ self.p2_src_start_ip = u"20.20.20.2"
+ self.p2_src_end_ip = u"20.20.20.254"
+ self.p2_dst_start_ip = u"10.10.10.2"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src254.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src254.py
new file mode 100644
index 0000000000..ce0c04f2e7
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src254.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.10.10.1 - 10.10.10.254
+ - Destination IP address range: 20.20.20.1
+ - Direction 1 --> 0:
+ - Source IP address range: 20.20.20.1 - 20.20.20.254
+ - Destination IP address range: 10.10.10.1
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.10.10.1"
+ self.p1_src_end_ip = u"10.10.10.254"
+ self.p1_dst_start_ip = u"20.20.20.1"
+
+ self.p2_src_start_ip = u"20.20.20.1"
+ self.p2_src_end_ip = u"20.20.20.254"
+ self.p2_dst_start_ip = u"10.10.10.1"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src2ip4dst2.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src2ip4dst2.py
new file mode 100644
index 0000000000..58d2c0a499
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src2ip4dst2.py
@@ -0,0 +1,165 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.0 - 10.0.1.0
+ - Destination IP address range: 20.0.0.0 - 20.0.1.0
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.0 - 20.0.1.0
+ - Destination IP address range: 10.0.0.0 - 10.0.1.0
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.0"
+ self.p1_src_end_ip = u"10.0.1.0"
+
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.1.0"
+
+ self.p2_src_start_ip = u"20.0.0.0"
+ self.p2_src_end_ip = u"20.0.1.0"
+
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.1.0"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src4ip4dst4.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src4ip4dst4.py
new file mode 100644
index 0000000000..4f517a77ce
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src4ip4dst4.py
@@ -0,0 +1,165 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.0 - 10.0.3.0
+ - Destination IP address range: 20.0.0.0 - 20.0.3.0
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.0 - 20.0.3.0
+ - Destination IP address range: 10.0.0.0 - 10.0.3.0
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.0"
+ self.p1_src_end_ip = u"10.0.3.0"
+
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.3.0"
+
+ self.p2_src_start_ip = u"20.0.0.0"
+ self.p2_src_end_ip = u"20.0.3.0"
+
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.3.0"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src8ip4dst8.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src8ip4dst8.py
new file mode 100644
index 0000000000..d11a7b50b5
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-ip4src8ip4dst8.py
@@ -0,0 +1,165 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source IP address range: 10.0.0.0 - 10.0.7.0
+ - Destination IP address range: 20.0.0.0 - 20.0.7.0
+ - Direction 1 --> 0:
+ - Source IP address range: 20.0.0.0 - 20.0.7.0
+ - Destination IP address range: 10.0.0.0 - 10.0.7.0
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.0"
+ self.p1_src_end_ip = u"10.0.7.0"
+
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.7.0"
+
+ self.p2_src_start_ip = u"20.0.0.0"
+ self.p2_src_end_ip = u"20.0.7.0"
+
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.7.0"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ step=256,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc100ip4src100.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc100ip4src100.py
new file mode 100644
index 0000000000..8ec4a4b35d
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc100ip4src100.py
@@ -0,0 +1,171 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: | ETH | IP |
+ - Direction 0 --> 1:
+ - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:00:63
+ - Source IP address range: 10.0.0.2 - 10.0.0.101
+ - Destination IP address range: 20.0.0.1
+ - Direction 1 --> 0:
+ - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:00:63
+ - Source IP address range: 20.0.0.2 - 20.0.0.101
+ - Destination IP address range: 10.0.0.1
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.clients = 100
+
+ # MACs used in packet headers.
+ self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.2"
+ self.p1_src_end_ip = u"10.0.0.101"
+ self.p1_dst_start_ip = u"20.0.0.1"
+
+ self.p2_src_start_ip = u"20.0.0.2"
+ self.p2_src_end_ip = u"20.0.0.101"
+ self.p2_dst_start_ip = u"10.0.0.1"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ src=self.p1_src_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ src=self.p2_src_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset=8
+ ),
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset=8
+ ),
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc100kip4src100k.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc100kip4src100k.py
new file mode 100644
index 0000000000..9a3c15de6d
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc100kip4src100k.py
@@ -0,0 +1,171 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: | ETH | IP |
+ - Direction 0 --> 1:
+ - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:01:86:9f
+ - Source IP address range: 10.0.0.2 - 10.1.134.161
+ - Destination IP address range: 20.0.0.1
+ - Direction 1 --> 0:
+ - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:01:86:9f
+ - Source IP address range: 20.0.0.2 - 20.1.134.161
+ - Destination IP address range: 10.0.0.1
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.clients = 100000
+
+ # MACs used in packet headers.
+ self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.2"
+ self.p1_src_end_ip = u"10.1.134.161"
+ self.p1_dst_start_ip = u"20.0.0.1"
+
+ self.p2_src_start_ip = u"20.0.0.2"
+ self.p2_src_end_ip = u"20.1.134.161"
+ self.p2_dst_start_ip = u"10.0.0.1"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ src=self.p1_src_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ src=self.p2_src_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset=8
+ ),
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset=8
+ ),
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc10kip4src10k.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc10kip4src10k.py
new file mode 100644
index 0000000000..4968fc718b
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc10kip4src10k.py
@@ -0,0 +1,171 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: | ETH | IP |
+ - Direction 0 --> 1:
+ - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:27:0f
+ - Source IP address range: 10.0.0.2 - 10.0.39.17
+ - Destination IP address range: 20.0.0.1
+ - Direction 1 --> 0:
+ - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:27:0f
+ - Source IP address range: 20.0.0.2 - 20.0.39.17
+ - Destination IP address range: 10.0.0.1
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.clients = 10000
+
+ # MACs used in packet headers.
+ self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.2"
+ self.p1_src_end_ip = u"10.0.39.17"
+ self.p1_dst_start_ip = u"20.0.0.1"
+
+ self.p2_src_start_ip = u"20.0.0.2"
+ self.p2_src_end_ip = u"20.0.39.17"
+ self.p2_dst_start_ip = u"10.0.0.1"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ src=self.p1_src_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ src=self.p2_src_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset=8
+ ),
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset=8
+ ),
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :returns: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc500kdst500k.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc500kdst500k.py
new file mode 100644
index 0000000000..36d1a08e1e
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc500kdst500k.py
@@ -0,0 +1,225 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:07:a1:1f
+ - Destination MAC address range: fa:ce:00:00:00:00 - fa:ce:00:07:a1:1f
+ - Source IP address range: 10.0.0.0 - 10.7.161.31
+ - Destination IP address range: 20.0.0.0 - 20.7.161.31
+ - Direction 1 --> 0:
+ - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:07:a1:1f
+ - Destination MAC address range: ca:fe:00:00:00:00 - ca:fe:00:07:a1:1f
+ - Source IP address range: 20.0.0.0 - 20.7.161.31
+ - Destination IP address range: 10.0.0.0 - 10.7.161.31
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.clients = 500000
+
+ # MACs used in packet headers.
+ self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+ self.p1_dst_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+ self.p2_dst_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.0"
+ self.p1_src_end_ip = u"10.7.161.31"
+
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.7.161.31"
+
+ self.p2_src_start_ip = u"20.0.0.0"
+ self.p2_src_end_ip = u"20.7.161.31"
+
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.7.161.31"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ src=self.p1_src_start_mac,
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ src=self.p2_src_start_mac,
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset= 8
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset= 2
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset= 8
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset= 2
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc50kdst50k.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc50kdst50k.py
new file mode 100644
index 0000000000..6d41e67b0d
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc50kdst50k.py
@@ -0,0 +1,224 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:c3:4f
+ - Destination MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:c3:4f
+ - Source IP address range: 10.0.0.0 - 10.0.195.79
+ - Destination IP address range: 20.0.0.0 - 20.0.195.79
+ - Direction 1 --> 0:
+ - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:c3:4f
+ - Destination MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:c3:4f
+ - Source IP address range: 20.0.0.0 - 20.0.195.79
+ - Destination IP address range: 10.0.0.0 - 10.0.195.79
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.clients = 50000
+
+ # MACs used in packet headers.
+ self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+ self.p1_dst_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+ self.p2_dst_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.0"
+ self.p1_src_end_ip = u"10.0.195.79"
+
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.195.79"
+
+ self.p2_src_start_ip = u"20.0.0.0"
+ self.p2_src_end_ip = u"20.0.195.79"
+
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.195.79"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ src=self.p1_src_start_mac,
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ src=self.p2_src_start_mac,
+ dst=self.p2_dst_start_mac) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset=8
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=2
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset=8
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=2
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc5kdst5k.py b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc5kdst5k.py
new file mode 100644
index 0000000000..0b053795d9
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4-macsrc5kdst5k.py
@@ -0,0 +1,225 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP /
+ - Direction 0 --> 1:
+ - Source MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:13:87
+ - Destination MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:13:87
+ - Source IP address range: 10.0.0.0 - 10.0.19.135
+ - Destination IP address range: 20.0.0.0 - 20.0.19.135
+ - Direction 1 --> 0:
+ - Source MAC address range: fa:ce:00:00:00:00 - fa:ce:00:00:13:87
+ - Destination MAC address range: ca:fe:00:00:00:00 - ca:fe:00:00:13:87
+ - Source IP address range: 20.0.0.0 - 20.0.19.135
+ - Destination IP address range: 10.0.0.0 - 10.0.19.135
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ self.clients = 5000
+
+ # MACs used in packet headers.
+ self.p1_src_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+ self.p1_dst_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ self.p2_src_start_mac = u"fa:ce:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+ self.p2_dst_start_mac = u"ca:fe:00:00:00:00" # mask: 00:00:FF:FF:FF:FF
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.0.0.0"
+ self.p1_src_end_ip = u"10.0.19.135"
+
+ self.p1_dst_start_ip = u"20.0.0.0"
+ self.p1_dst_end_ip = u"20.0.19.135"
+
+ self.p2_src_start_ip = u"20.0.0.0"
+ self.p2_src_end_ip = u"20.0.19.135"
+
+ self.p2_dst_start_ip = u"10.0.0.0"
+ self.p2_dst_end_ip = u"10.0.19.135"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether(
+ src=self.p1_src_start_mac,
+ dst=self.p1_dst_start_mac
+ ) /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=61
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether(
+ src=self.p2_src_start_mac,
+ dst=self.p2_dst_start_mac
+ ) /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=61
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset=8
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=2
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p1_dst_start_ip,
+ max_value=self.p1_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"mac_src",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmFlowVar(
+ name=u"mac_dst",
+ min_value=0,
+ max_value=self.clients-1,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_src",
+ pkt_offset=8
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"mac_dst",
+ pkt_offset=2
+ ),
+ STLVmFlowVar(
+ name=u"ip_src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"ip_dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ip_dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1000u15p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1000u15p.py
new file mode 100644
index 0000000000..6e07b5175d
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1000u15p.py
@@ -0,0 +1,156 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 20.0.0.0 - 20.0.3.231
+ - Destination IP address range: 12.0.0.2
+ - Source UDP port range: 1024 - 1038
+ - Destination UDP port range: 1024
+ - Direction 1 --> 0:
+ - Source IP address range: 12.0.0.2
+ - Destination IP address range: 200.0.0.0
+ - Source UDP port range: 1024
+ - Destination UDP port range: 1024 - 16023
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"20.0.0.0"
+ self.p1_src_end_ip = u"20.0.3.231"
+ self.p1_dst_start_ip = u"12.0.0.2"
+
+ self.p2_src_start_ip = u"12.0.0.2"
+ self.p2_src_end_ip = u"12.0.0.2"
+ self.p2_dst_start_ip = u"200.0.0.0"
+
+ # UDP ports used in packet headers.
+ self.p1_src_start_udp_port = 1024
+ self.p1_src_end_udp_port = 1038
+ self.p1_dst_start_udp_port = 1024
+
+ self.p2_src_start_udp_port = 1024
+ self.p2_dst_start_udp_port = 1024
+ self.p2_dst_end_udp_port = 16023
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p1_src_start_udp_port,
+ dport=self.p1_dst_start_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_start_udp_port,
+ dport=self.p2_dst_start_udp_port
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p1_src_start_ip,
+ ip_max=self.p1_src_end_ip,
+ port_min=self.p1_src_start_udp_port,
+ port_max=self.p1_src_end_udp_port,
+ name=u"tuple"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(offset=u"IP"),
+ STLVmWrFlowVar(
+ fv_name=u"tuple.port",
+ pkt_offset=u"UDP.sport"
+ )
+ ]
+ )
+ # Direction 0 --> 1
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dport",
+ min_value=self.p2_dst_start_udp_port,
+ max_value=self.p2_dst_end_udp_port,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dport",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-100u1000p-conc.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-100u1000p-conc.py
new file mode 100644
index 0000000000..4e860edf46
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-100u1000p-conc.py
@@ -0,0 +1,199 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 10.10.10.2 - 10.10.10.101
+ - Destination IP address range: 20.20.20.2 - 20.20.20.101
+ - Source UDP port range: 1001 - 2000
+ - Destination UDP port range: 2001 - 3000
+ - Direction 1 --> 0:
+ - Source IP address range: 20.20.20.2 - 20.20.20.101
+ - Destination IP address range: 10.10.10.2 - 10.10.10.101
+ - Source UDP port range: 2001 - 3000
+ - Destination UDP port range: 1001 - 2000
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.10.10.2"
+ self.p1_src_end_ip = u"10.10.10.101"
+ self.p1_dst_start_ip = u"20.20.20.2"
+ self.p1_dst_end_ip = u"20.20.20.101"
+
+ self.p2_src_start_ip = u"20.20.20.2"
+ self.p2_src_end_ip = u"20.20.20.101"
+ self.p2_dst_start_ip = u"10.10.10.2"
+ self.p2_dst_end_ip = u"10.10.10.101"
+
+ # UDP ports used in packet headers.
+ self.p1_src_start_udp_port = 1001
+ self.p1_src_end_udp_port = 2000
+ self.p1_dst_start_udp_port = 2001
+ self.p1_dst_end_udp_port = 3000
+
+ self.p2_src_start_udp_port = 2001
+ self.p2_src_end_udp_port = 3000
+ self.p2_dst_start_udp_port = 1001
+ self.p2_dst_end_udp_port = 2000
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p1_src_start_udp_port,
+ dport=self.p1_dst_start_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_start_udp_port,
+ dport=self.p2_dst_start_udp_port
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p1_src_start_ip,
+ ip_max=self.p1_src_end_ip,
+ port_min=self.p1_src_start_udp_port,
+ port_max=self.p1_src_end_udp_port,
+ name=u"tuple1_src"
+ ),
+ STLVmTupleGen(
+ ip_min=self.p1_dst_start_ip,
+ ip_max=self.p1_dst_end_ip,
+ port_min=self.p1_dst_start_udp_port,
+ port_max=self.p1_dst_end_udp_port,
+ name=u"tuple1_dst"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_src.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_dst.ip",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_src.port",
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_dst.port",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+ # Direction 0 --> 1
+ vm2 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p2_src_start_ip,
+ ip_max=self.p2_src_end_ip,
+ port_min=self.p2_src_start_udp_port,
+ port_max=self.p2_src_end_udp_port,
+ name=u"tuple2_src"
+ ),
+ STLVmTupleGen(
+ ip_min=self.p2_dst_start_ip,
+ ip_max=self.p2_dst_end_ip,
+ port_min=self.p2_dst_start_udp_port,
+ port_max=self.p2_dst_end_udp_port,
+ name=u"tuple2_dst"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_src.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_dst.ip",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_src.port",
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_dst.port",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-100u15p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-100u15p.py
new file mode 100644
index 0000000000..8f31e90d99
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-100u15p.py
@@ -0,0 +1,158 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 20.0.0.0 - 20.0.0.99
+ - Destination IP address range: 12.0.0.2
+ - Source UDP port range: 1024 - 1038
+ - Destination UDP port range: 1024
+ - Direction 1 --> 0:
+ - Source IP address range: 12.0.0.2
+ - Destination IP address range: 200.0.0.0
+ - Source UDP port range: 1024
+ - Destination UDP port range: 1024 - 2523
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"20.0.0.0"
+ self.p1_src_end_ip = u"20.0.0.99"
+ self.p1_dst_start_ip = u"12.0.0.2"
+
+ self.p2_src_start_ip = u"12.0.0.2"
+ self.p2_src_end_ip = u"12.0.0.2"
+ self.p2_dst_start_ip = u"200.0.0.0"
+
+ # UDP ports used in packet headers.
+ self.p1_src_start_udp_port = 1024
+ self.p1_src_end_udp_port = 1038
+ self.p1_dst_start_udp_port = 1024
+
+ self.p2_src_start_udp_port = 1024
+ self.p2_dst_start_udp_port = 1024
+ self.p2_dst_end_udp_port = 2523
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p1_src_start_udp_port,
+ dport=self.p1_dst_start_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_start_udp_port,
+ dport=self.p2_dst_start_udp_port
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p1_src_start_ip,
+ ip_max=self.p1_src_end_ip,
+ port_min=self.p1_src_start_udp_port,
+ port_max=self.p1_src_end_udp_port,
+ name=u"tuple"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple.port",
+ pkt_offset=u"UDP.sport"
+ )
+ ]
+ )
+ # Direction 0 --> 1
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dport",
+ min_value=self.p2_dst_start_udp_port,
+ max_value=self.p2_dst_end_udp_port,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dport",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1024u63p-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1024u63p-udir.py
index 210313f66a..30c6440dd8 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1024u63p-udir.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1024u63p-udir.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1024u63p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1024u63p.py
index c104605d50..3b920cd3c8 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1024u63p.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1024u63p.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1048576u63p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1048576u63p.py
index db9e317faf..a99d78e78d 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1048576u63p.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1048576u63p.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u1000p-conc.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u1000p-conc.py
new file mode 100644
index 0000000000..aecef71d4c
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u1000p-conc.py
@@ -0,0 +1,199 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 10.10.10.2 - 10.10.10.11
+ - Destination IP address range: 20.20.20.2 - 20.20.20.11
+ - Source UDP port range: 1001 - 2000
+ - Destination UDP port range: 2001 - 3000
+ - Direction 1 --> 0:
+ - Source IP address range: 20.20.20.2 - 20.20.20.11
+ - Destination IP address range: 10.10.10.2 - 10.10.10.11
+ - Source UDP port range: 2001 - 3000
+ - Destination UDP port range: 1001 - 2000
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.10.10.2"
+ self.p1_src_end_ip = u"10.10.10.11"
+ self.p1_dst_start_ip = u"20.20.20.2"
+ self.p1_dst_end_ip = u"20.20.20.11"
+
+ self.p2_src_start_ip = u"20.20.20.2"
+ self.p2_src_end_ip = u"20.20.20.11"
+ self.p2_dst_start_ip = u"10.10.10.2"
+ self.p2_dst_end_ip = u"10.10.10.11"
+
+ # UDP ports used in packet headers.
+ self.p1_src_start_udp_port = 1001
+ self.p1_src_end_udp_port = 2000
+ self.p1_dst_start_udp_port = 2001
+ self.p1_dst_end_udp_port = 3000
+
+ self.p2_src_start_udp_port = 2001
+ self.p2_src_end_udp_port = 3000
+ self.p2_dst_start_udp_port = 1001
+ self.p2_dst_end_udp_port = 2000
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p1_src_start_udp_port,
+ dport=self.p1_dst_start_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_start_udp_port,
+ dport=self.p2_dst_start_udp_port
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p1_src_start_ip,
+ ip_max=self.p1_src_end_ip,
+ port_min=self.p1_src_start_udp_port,
+ port_max=self.p1_src_end_udp_port,
+ name=u"tuple1_src"
+ ),
+ STLVmTupleGen(
+ ip_min=self.p1_dst_start_ip,
+ ip_max=self.p1_dst_end_ip,
+ port_min=self.p1_dst_start_udp_port,
+ port_max=self.p1_dst_end_udp_port,
+ name=u"tuple1_dst"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_src.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_dst.ip",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_src.port",
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_dst.port",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+ # Direction 0 --> 1
+ vm2 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p2_src_start_ip,
+ ip_max=self.p2_src_end_ip,
+ port_min=self.p2_src_start_udp_port,
+ port_max=self.p2_src_end_udp_port,
+ name=u"tuple2_src"
+ ),
+ STLVmTupleGen(
+ ip_min=self.p2_dst_start_ip,
+ ip_max=self.p2_dst_end_ip,
+ port_min=self.p2_dst_start_udp_port,
+ port_max=self.p2_dst_end_udp_port,
+ name=u"tuple2_dst"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_src.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_dst.ip",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_src.port",
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_dst.port",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u10p-conc.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u10p-conc.py
new file mode 100644
index 0000000000..406bce919f
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u10p-conc.py
@@ -0,0 +1,199 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 10.10.10.2 - 10.10.10.11
+ - Destination IP address range: 20.20.20.2 - 20.20.2011
+ - Source UDP port range: 1001 - 1010
+ - Destination UDP port range: 2001 - 2010
+ - Direction 1 --> 0:
+ - Source IP address range: 20.20.20.2 - 20.20.20.11
+ - Destination IP address range: 10.10.10.2 - 10.10.10.11
+ - Source UDP port range: 2001 - 2010
+ - Destination UDP port range: 1001 - 1010
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"10.10.10.2"
+ self.p1_src_end_ip = u"10.10.10.11"
+ self.p1_dst_start_ip = u"20.20.20.2"
+ self.p1_dst_end_ip = u"20.20.20.11"
+
+ self.p2_src_start_ip = u"20.20.20.2"
+ self.p2_src_end_ip = u"20.20.20.11"
+ self.p2_dst_start_ip = u"10.10.10.2"
+ self.p2_dst_end_ip = u"10.10.10.11"
+
+ # UDP ports used in packet headers.
+ self.p1_src_start_udp_port = 1001
+ self.p1_src_end_udp_port = 1010
+ self.p1_dst_start_udp_port = 2001
+ self.p1_dst_end_udp_port = 2010
+
+ self.p2_src_start_udp_port = 2001
+ self.p2_src_end_udp_port = 2010
+ self.p2_dst_start_udp_port = 1001
+ self.p2_dst_end_udp_port = 1010
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p1_src_start_udp_port,
+ dport=self.p1_dst_start_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_start_udp_port,
+ dport=self.p2_dst_start_udp_port
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p1_src_start_ip,
+ ip_max=self.p1_src_end_ip,
+ port_min=self.p1_src_start_udp_port,
+ port_max=self.p1_src_end_udp_port,
+ name=u"tuple1_src"
+ ),
+ STLVmTupleGen(
+ ip_min=self.p1_dst_start_ip,
+ ip_max=self.p1_dst_end_ip,
+ port_min=self.p1_dst_start_udp_port,
+ port_max=self.p1_dst_end_udp_port,
+ name=u"tuple1_dst"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_src.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_dst.ip",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_src.port",
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple1_dst.port",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+ # Direction 0 --> 1
+ vm2 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p2_src_start_ip,
+ ip_max=self.p2_src_end_ip,
+ port_min=self.p2_src_start_udp_port,
+ port_max=self.p2_src_end_udp_port,
+ name=u"tuple2_src"
+ ),
+ STLVmTupleGen(
+ ip_min=self.p2_dst_start_ip,
+ ip_max=self.p2_dst_end_ip,
+ port_min=self.p2_dst_start_udp_port,
+ port_max=self.p2_dst_end_udp_port,
+ name=u"tuple2_dst"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_src.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_dst.ip",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_src.port",
+ pkt_offset=u"UDP.sport"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple2_dst.port",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u15p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u15p.py
new file mode 100644
index 0000000000..7506012069
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-10u15p.py
@@ -0,0 +1,158 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 20.0.0.0 - 20.0.0.9
+ - Destination IP address range: 12.0.0.2
+ - Source UDP port range: 1024 - 1038
+ - Destination UDP port range: 1024
+ - Direction 1 --> 0:
+ - Source IP address range: 12.0.0.2
+ - Destination IP address range: 200.0.0.0
+ - Source UDP port range: 1024
+ - Destination UDP port range: 1024 - 1173
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"20.0.0.0"
+ self.p1_src_end_ip = u"20.0.0.9"
+ self.p1_dst_start_ip = u"12.0.0.2"
+
+ self.p2_src_start_ip = u"12.0.0.2"
+ #self.p2_src_end_ip = u"12.0.0.2"
+ self.p2_dst_start_ip = u"200.0.0.0"
+
+ # UDP ports used in packet headers.
+ self.p1_src_start_udp_port = 1024
+ self.p1_src_end_udp_port = 1038
+ self.p1_dst_start_udp_port = 1024
+
+ self.p2_src_start_udp_port = 1024
+ self.p2_dst_start_udp_port = 1024
+ self.p2_dst_end_udp_port = 1173
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p1_src_start_udp_port,
+ dport=self.p1_dst_start_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_start_udp_port,
+ dport=self.p2_dst_start_udp_port
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p1_src_start_ip,
+ ip_max=self.p1_src_end_ip,
+ port_min=self.p1_src_start_udp_port,
+ port_max=self.p1_src_end_udp_port,
+ name=u"tuple"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple.port",
+ pkt_offset=u"UDP.sport"
+ )
+ ]
+ )
+ # Direction 0 --> 1
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dport",
+ min_value=self.p2_dst_start_udp_port,
+ max_value=self.p2_dst_end_udp_port,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dport",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-16384u63p-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-16384u63p-udir.py
index 7d9d4c6f4c..da826809f8 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-16384u63p-udir.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-16384u63p-udir.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-16384u63p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-16384u63p.py
index 54d115e104..1c5d69fcda 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-16384u63p.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-16384u63p.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1u15p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1u15p.py
new file mode 100644
index 0000000000..7fba7c4b85
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1u15p.py
@@ -0,0 +1,151 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 20.0.0.0
+ - Destination IP address range: 12.0.0.2
+ - Source UDP port range: 1024 - 1038
+ - Destination UDP port range: 1024
+ - Direction 1 --> 0:
+ - Source IP address range: 12.0.0.2
+ - Destination IP address range: 200.0.0.0
+ - Source UDP port range: 1024
+ - Destination UDP port range: 1024 - 1038
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"20.0.0.0"
+ self.p1_src_end_ip = u"20.0.0.0"
+ self.p1_dst_start_ip = u"12.0.0.2"
+
+ self.p2_src_start_ip = u"12.0.0.2"
+ self.p2_src_end_ip = u"12.0.0.2"
+ self.p2_dst_start_ip = u"200.0.0.0"
+
+ # UDP ports used in packet headers.
+ self.p1_src_start_udp_port = 1024
+ self.p1_src_end_udp_port = 1038
+ self.p1_dst_start_udp_port = 1024
+
+ self.p2_src_start_udp_port = 1024
+ self.p2_dst_start_udp_port = 1024
+ self.p2_dst_end_udp_port = 1038
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p1_src_start_udp_port,
+ dport=self.p1_dst_start_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_start_udp_port,
+ dport=self.p2_dst_start_udp_port
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"sport",
+ min_value=self.p1_src_start_udp_port,
+ max_value=self.p1_src_end_udp_port,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"sport",
+ pkt_offset=u"UDP.sport"
+ )
+ ]
+ )
+ # Direction 0 --> 1
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dport",
+ min_value=self.p2_dst_start_udp_port,
+ max_value=self.p2_dst_end_udp_port,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dport",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1u1p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1u1p.py
new file mode 100644
index 0000000000..229ea2218c
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-1u1p.py
@@ -0,0 +1,114 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 20.0.0.0
+ - Destination IP address range: 30.0.0.0
+ - Source UDP port range: 1024
+ - Destination UDP port range: 1024
+ - Direction 1 --> 0:
+ - Source IP address range: 30.0.0.0
+ - Destination IP address range: 200.0.0.0
+ - Source UDP port range: 1024
+ - Destination UDP port range: 1028
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_ip = u"20.0.0.0"
+ self.p1_dst_ip = u"30.0.0.0"
+
+ self.p2_src_ip = u"30.0.0.0"
+ self.p2_dst_ip = u"200.0.0.0"
+
+ # UDP ports used in packet headers.
+ self.p1_src_udp_port = 1024
+ self.p1_dst_udp_port = 1024
+
+ self.p2_src_udp_port = 1024
+ self.p2_dst_udp_port = 2048
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_ip,
+ dst=self.p1_dst_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p1_src_udp_port,
+ dport=self.p1_dst_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_ip,
+ dst=self.p2_dst_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_udp_port,
+ dport=self.p2_dst_udp_port
+ )
+ )
+
+ return base_pkt_a, base_pkt_b, None, None
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-2000u15p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-2000u15p.py
new file mode 100644
index 0000000000..1100bdd3ed
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-2000u15p.py
@@ -0,0 +1,158 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 20.0.0.0 - 20.0.7.207
+ - Destination IP address range: 12.0.0.2
+ - Source UDP port range: 1024 - 1038
+ - Destination UDP port range: 1024
+ - Direction 1 --> 0:
+ - Source IP address range: 12.0.0.2
+ - Destination IP address range: 200.0.0.0
+ - Source UDP port range: 1024
+ - Destination UDP port range: 1024 - 31022
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"20.0.0.0"
+ self.p1_src_end_ip = u"20.0.7.207"
+ self.p1_dst_start_ip = u"12.0.0.2"
+
+ self.p2_src_start_ip = u"12.0.0.2"
+ self.p2_src_end_ip = u"12.0.0.2"
+ self.p2_dst_start_ip = u"200.0.0.0"
+
+ # UDP ports used in packet headers.
+ self.p1_src_start_udp_port = 1024
+ self.p1_src_end_udp_port = 1038
+ self.p1_dst_start_udp_port = 1024
+
+ self.p2_src_start_udp_port = 1024
+ self.p2_dst_start_udp_port = 1024
+ self.p2_dst_end_udp_port = 31022
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p1_src_start_udp_port,
+ dport=self.p1_dst_start_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_start_udp_port,
+ dport=self.p2_dst_start_udp_port
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p1_src_start_ip,
+ ip_max=self.p1_src_end_ip,
+ port_min=self.p1_src_start_udp_port,
+ port_max=self.p1_src_end_udp_port,
+ name=u"tuple"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple.port",
+ pkt_offset=u"UDP.sport"
+ )
+ ]
+ )
+ # Direction 0 --> 1
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dport",
+ min_value=self.p2_dst_start_udp_port,
+ max_value=self.p2_dst_end_udp_port,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dport",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-262144u63p-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-262144u63p-udir.py
index b499842dca..09f8e88f13 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-262144u63p-udir.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-262144u63p-udir.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-262144u63p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-262144u63p.py
index 5277189148..406321b7cf 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-262144u63p.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-262144u63p.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4000u15p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4000u15p.py
new file mode 100644
index 0000000000..7257dcc62d
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4000u15p.py
@@ -0,0 +1,158 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 20.0.0.0 - 20.0.15.159
+ - Destination IP address range: 12.0.0.2
+ - Source UDP port range: 1024 - 1038
+ - Destination UDP port range: 1024
+ - Direction 1 --> 0:
+ - Source IP address range: 12.0.0.2
+ - Destination IP address range: 200.0.0.0
+ - Source UDP port range: 1024
+ - Destination UDP port range: 1024 - 61022
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"20.0.0.0"
+ self.p1_src_end_ip = u"20.0.15.159"
+ self.p1_dst_start_ip = u"12.0.0.2"
+
+ self.p2_src_start_ip = u"12.0.0.2"
+ self.p2_src_end_ip = u"12.0.0.2"
+ self.p2_dst_start_ip = u"200.0.0.0"
+
+ # UDP ports used in packet headers.
+ self.p1_src_start_udp_port = 1024
+ self.p1_src_end_udp_port = 1038
+ self.p1_dst_start_udp_port = 1024
+
+ self.p2_src_start_udp_port = 1024
+ self.p2_dst_start_udp_port = 1024
+ self.p2_dst_end_udp_port = 61022
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p1_src_start_udp_port,
+ dport=self.p1_dst_start_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_start_udp_port,
+ dport=self.p2_dst_start_udp_port
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmTupleGen(
+ ip_min=self.p1_src_start_ip,
+ ip_max=self.p1_src_end_ip,
+ port_min=self.p1_src_start_udp_port,
+ port_max=self.p1_src_end_udp_port,
+ name=u"tuple"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple.ip",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"tuple.port",
+ pkt_offset=u"UDP.sport"
+ )
+ ]
+ )
+ # Direction 0 --> 1
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"dport",
+ min_value=self.p2_dst_start_udp_port,
+ max_value=self.p2_dst_end_udp_port,
+ size=2,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dport",
+ pkt_offset=u"UDP.dport"
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4096u63p-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4096u63p-udir.py
index 202c123abb..7d441bf1e2 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4096u63p-udir.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4096u63p-udir.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4096u63p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4096u63p.py
index 7c90dbe7ae..0c4613b93f 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4096u63p.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-4096u63p.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-65536u63p-udir.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-65536u63p-udir.py
index d678517f78..9f3a1172d4 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-65536u63p-udir.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-65536u63p-udir.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-65536u63p.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-65536u63p.py
index e2ef21e047..be5e990c4e 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-65536u63p.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-65536u63p.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4udp-lb.py b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-lb.py
new file mode 100644
index 0000000000..850149fc61
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4udp-lb.py
@@ -0,0 +1,160 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Packet: ETH / IP / UDP
+ - Direction 0 --> 1:
+ - Source IP address range: 192.168.50.74 - 192.168.50.79
+ - Destination IP address range: 90.1.2.1
+ - Direction 1 --> 0:
+ - Source IP address range: 192.168.60.74 - 192.168.60.79
+ - Destination IP address range: 192.168.50.74 - 192.168.50.79
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"192.168.50.74"
+ self.p1_src_end_ip = u"192.168.50.79"
+ self.p1_dst_start_ip = u"90.1.2.1"
+
+ self.p2_src_start_ip = u"192.168.60.74"
+ self.p2_src_end_ip = u"192.168.60.79"
+ self.p2_dst_start_ip = u"192.168.50.74"
+ self.p2_dst_end_ip = u"192.168.50.79"
+
+ # UDP ports used in packet headers.
+ self.p1_src_udp_port = 63
+ self.p1_dst_udp_port = 20000
+
+ self.p2_src_udp_port = 3307
+ self.p2_dst_udp_port = 63
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IP | UDP
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IP(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip,
+ proto=17) /
+ UDP(
+ sport=self.p1_src_udp_port,
+ dport=self.p1_dst_udp_port
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IP(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip,
+ proto=17
+ ) /
+ UDP(
+ sport=self.p2_src_udp_port,
+ dport=self.p2_dst_udp_port
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p1_src_start_ip,
+ max_value=self.p1_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"src",
+ min_value=self.p2_src_start_ip,
+ max_value=self.p2_src_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"src",
+ pkt_offset=u"IP.src"
+ ),
+ STLVmFlowVar(
+ name=u"dst",
+ min_value=self.p2_dst_start_ip,
+ max_value=self.p2_dst_end_ip,
+ size=4,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"dst",
+ pkt_offset=u"IP.dst"
+ ),
+ STLVmFixIpv4(
+ offset=u"IP"
+ )
+ ]
+ )
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip4vxlan-ip4src1udpsrcrnd.py b/GPL/traffic_profiles/trex/trex-stl-ethip4vxlan-ip4src1udpsrcrnd.py
index 6c277c18bf..56a1ee3321 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip4vxlan-ip4src1udpsrcrnd.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip4vxlan-ip4src1udpsrcrnd.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000-2p.py
new file mode 100644
index 0000000000..e3d39cc31e
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000-2p.py
@@ -0,0 +1,115 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Single parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::270F",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::270F",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000-6p.py
new file mode 100644
index 0000000000..564ffbb83d
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000-6p.py
@@ -0,0 +1,143 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::270F",
+ "seed": 1
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2300::1",
+ "dst_start_ip": "2400::0",
+ "dst_end_ip": "2400::270F",
+ "seed": 2
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2500::1",
+ "dst_start_ip": "2600::0",
+ "dst_end_ip": "2600::270F",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::270F",
+ "seed": 2
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2400::1",
+ "dst_start_ip": "2300::0",
+ "dst_end_ip": "2300::270F",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2600::1",
+ "dst_start_ip": "2500::0",
+ "dst_end_ip": "2500::270F",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000.py
new file mode 100644
index 0000000000..65291fcd59
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000.py
@@ -0,0 +1,142 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IPv6 /
+ - Direction 0 --> 1:
+ - Source IP address range: 2001:1::1
+ - Destination IP address range: 2001:2::0 - 2001:2::270F
+ - Direction 1 --> 0:
+ - Source IP address range: 2001:2::1
+ - Destination IP address range: 2001:1::0 - 2001:1::270F
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"2001:1::1"
+ self.p1_dst_start_ip = u"2001:2::0"
+ self.p1_dst_end_ip = u"2001:2::270F"
+
+ self.p2_src_start_ip = u"2001:2::1"
+ self.p2_dst_start_ip = u"2001:1::0"
+ self.p2_dst_end_ip = u"2001:1::270F"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ base_p1, count_p1 = self._get_start_end_ipv6(
+ self.p1_dst_start_ip,
+ self.p1_dst_end_ip
+ )
+ base_p2, count_p2 = self._get_start_end_ipv6(
+ self.p2_dst_start_ip,
+ self.p2_dst_end_ip
+ )
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IPv6(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IPv6(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name=u"ipv6_dst",
+ min_value=base_p1,
+ max_value=base_p1 + count_p1,
+ size=8,
+ seed=1,
+ # Cycle length. TRex does not allow any higher value.
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_dst",
+ pkt_offset=u"IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name=u"ipv6_dst",
+ min_value=base_p2,
+ max_value=base_p2 + count_p2,
+ size=8,
+ seed=2,
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_dst",
+ pkt_offset=u"IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-2p.py
new file mode 100644
index 0000000000..4658e764c2
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-2p.py
@@ -0,0 +1,115 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Single parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::1:869F",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::1:869F",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-6p.py
new file mode 100644
index 0000000000..5d1b265a77
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-6p.py
@@ -0,0 +1,143 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::1:869F",
+ "seed": 1
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2300::1",
+ "dst_start_ip": "2400::0",
+ "dst_end_ip": "2400::1:869F",
+ "seed": 2
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2500::1",
+ "dst_start_ip": "2600::0",
+ "dst_end_ip": "2600::1:869F",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::1:869F",
+ "seed": 2
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2400::1",
+ "dst_start_ip": "2300::0",
+ "dst_end_ip": "2300::1:869F",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2600::1",
+ "dst_start_ip": "2500::0",
+ "dst_end_ip": "2500::1:869F",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000.py
new file mode 100644
index 0000000000..d30fc2d22a
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000.py
@@ -0,0 +1,142 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IPv6 /
+ - Direction 0 --> 1:
+ - Source IP address range: 2001:1::1
+ - Destination IP address range: 2001:2::0 - 2001:2::1:869F
+ - Direction 1 --> 0:
+ - Source IP address range: 2001:2::1
+ - Destination IP address range: 2001:1::0 - 2001:1::1:869F
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"2001:1::1"
+ self.p1_dst_start_ip = u"2001:2::0"
+ self.p1_dst_end_ip = u"2001:2::1:869F"
+
+ self.p2_src_start_ip = u"2001:2::1"
+ self.p2_dst_start_ip = u"2001:1::0"
+ self.p2_dst_end_ip = u"2001:1::1:869F"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ base_p1, count_p1 = self._get_start_end_ipv6(
+ self.p1_dst_start_ip,
+ self.p1_dst_end_ip
+ )
+ base_p2, count_p2 = self._get_start_end_ipv6(
+ self.p2_dst_start_ip,
+ self.p2_dst_end_ip
+ )
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IPv6(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IPv6(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name=u"ipv6_dst",
+ min_value=base_p1,
+ max_value=base_p1 + count_p1,
+ size=8,
+ seed=1,
+ # Cycle length. TRex does not allow any higher value.
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_dst",
+ pkt_offset=u"IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name=u"ipv6_dst",
+ min_value=base_p2,
+ max_value=base_p2 + count_p2,
+ size=8,
+ seed=2,
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_dst",
+ pkt_offset=u"IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-2p.py
new file mode 100644
index 0000000000..8db6a6447b
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-2p.py
@@ -0,0 +1,115 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Single parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::F:423F",
+ "seed": 1
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::F:423F",
+ "seed": 2
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ seed=self.pkt_data[i]["seed"],
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-6p.py
new file mode 100644
index 0000000000..4a1307c510
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-6p.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::F:423F"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2300::1",
+ "dst_start_ip": "2400::0",
+ "dst_end_ip": "2400::F:423F"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2500::1",
+ "dst_start_ip": "2600::0",
+ "dst_end_ip": "2600::F:423F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::F:423F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2400::1",
+ "dst_start_ip": "2300::0",
+ "dst_end_ip": "2300::F:423F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2600::1",
+ "dst_start_ip": "2500::0",
+ "dst_end_ip": "2500::F:423F"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000.py
new file mode 100644
index 0000000000..8c704bd6ea
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000.py
@@ -0,0 +1,142 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IPv6 /
+ - Direction 0 --> 1:
+ - Source IP address range: 2001:1::1
+ - Destination IP address range: 2001:2::0 - 2001:2::F:423F
+ - Direction 1 --> 0:
+ - Source IP address range: 2001:2::1
+ - Destination IP address range: 2001:1::0 - 2001:1::F:423F
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"2001:1::1"
+ self.p1_dst_start_ip = u"2001:2::0"
+ self.p1_dst_end_ip = u"2001:2::F:423F"
+
+ self.p2_src_start_ip = u"2001:2::1"
+ self.p2_dst_start_ip = u"2001:1::0"
+ self.p2_dst_end_ip = u"2001:1::F:423F"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ base_p1, count_p1 = self._get_start_end_ipv6(
+ self.p1_dst_start_ip,
+ self.p1_dst_end_ip
+ )
+ base_p2, count_p2 = self._get_start_end_ipv6(
+ self.p2_dst_start_ip,
+ self.p2_dst_end_ip
+ )
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IPv6(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IPv6(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name=u"ipv6_dst",
+ min_value=base_p1,
+ max_value=base_p1 + count_p1,
+ size=8,
+ seed=1,
+ # Cycle length. TRex does not allow any higher value.
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_dst",
+ pkt_offset=u"IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVarRepeatableRandom(
+ name=u"ipv6_dst",
+ min_value=base_p2,
+ max_value=base_p2 + count_p2,
+ size=8,
+ seed=2,
+ limit=(2**24 - 1)
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_dst",
+ pkt_offset=u"IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-2p.py
new file mode 100644
index 0000000000..7a02aac9f8
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-2p.py
@@ -0,0 +1,112 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Single parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::270F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::270F"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-6p.py
new file mode 100644
index 0000000000..f72bc2365e
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-6p.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::270F"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2300::1",
+ "dst_start_ip": "2400::0",
+ "dst_end_ip": "2400::270F"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2500::1",
+ "dst_start_ip": "2600::0",
+ "dst_end_ip": "2600::270F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::270F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2400::1",
+ "dst_start_ip": "2300::0",
+ "dst_end_ip": "2300::270F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2600::1",
+ "dst_start_ip": "2500::0",
+ "dst_end_ip": "2500::270F"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-rnd.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-rnd.py
deleted file mode 100644
index 0e335909f4..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000-rnd.py
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
- - Source IP address range: 2001:1::1
- - Destination IP address range: 2001:2::0 - 2001:2::270F
- - Direction 1 --> 0:
- - Source IP address range: 2001:2::1
- - Destination IP address range: 2001:1::0 - 2001:1::270F
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"2001:1::1"
- self.p1_dst_start_ip = u"2001:2::0"
- self.p1_dst_end_ip = u"2001:2::270F"
-
- self.p2_src_start_ip = u"2001:2::1"
- self.p2_dst_start_ip = u"2001:1::0"
- self.p2_dst_end_ip = u"2001:1::270F"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IPv6 |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- base_p1, count_p1 = self._get_start_end_ipv6(
- self.p1_dst_start_ip,
- self.p1_dst_end_ip
- )
- base_p2, count_p2 = self._get_start_end_ipv6(
- self.p2_dst_start_ip,
- self.p2_dst_end_ip
- )
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IPv6(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IPv6(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVarRepeatableRandom(
- name=u"ipv6_dst",
- min_value=base_p1,
- max_value=base_p1 + count_p1,
- size=8,
- seed=1,
- # Cycle length. TRex does not allow any higher value.
- limit=(2**24 - 1)
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_dst",
- pkt_offset=u"IPv6.dst",
- offset_fixup=8
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVarRepeatableRandom(
- name=u"ipv6_dst",
- min_value=base_p2,
- max_value=base_p2 + count_p2,
- size=8,
- seed=2,
- limit=(2**24 - 1)
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_dst",
- pkt_offset=u"IPv6.dst",
- offset_fixup=8
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000.py
index 9aa4fd5ee4..534f914121 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-2p.py
new file mode 100644
index 0000000000..11279216a0
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-2p.py
@@ -0,0 +1,112 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Single parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::1:869F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::1:869F"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-6p.py
new file mode 100644
index 0000000000..f1e0e4c9c7
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-6p.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::1:869F"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2300::1",
+ "dst_start_ip": "2400::0",
+ "dst_end_ip": "2400::1:869F"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2500::1",
+ "dst_start_ip": "2600::0",
+ "dst_end_ip": "2600::1:869F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::1:869F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2400::1",
+ "dst_start_ip": "2300::0",
+ "dst_end_ip": "2300::1:869F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2600::1",
+ "dst_start_ip": "2500::0",
+ "dst_end_ip": "2500::1:869F"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-rnd.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-rnd.py
deleted file mode 100644
index daa160d53a..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000-rnd.py
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
- - Source IP address range: 2001:1::1
- - Destination IP address range: 2001:2::0 - 2001:2::1:869F
- - Direction 1 --> 0:
- - Source IP address range: 2001:2::1
- - Destination IP address range: 2001:1::0 - 2001:1::1:869F
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"2001:1::1"
- self.p1_dst_start_ip = u"2001:2::0"
- self.p1_dst_end_ip = u"2001:2::1:869F"
-
- self.p2_src_start_ip = u"2001:2::1"
- self.p2_dst_start_ip = u"2001:1::0"
- self.p2_dst_end_ip = u"2001:1::1:869F"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IPv6 |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- base_p1, count_p1 = self._get_start_end_ipv6(
- self.p1_dst_start_ip,
- self.p1_dst_end_ip
- )
- base_p2, count_p2 = self._get_start_end_ipv6(
- self.p2_dst_start_ip,
- self.p2_dst_end_ip
- )
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IPv6(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IPv6(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVarRepeatableRandom(
- name=u"ipv6_dst",
- min_value=base_p1,
- max_value=base_p1 + count_p1,
- size=8,
- seed=1,
- # Cycle length. TRex does not allow any higher value.
- limit=(2**24 - 1)
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_dst",
- pkt_offset=u"IPv6.dst",
- offset_fixup=8
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVarRepeatableRandom(
- name=u"ipv6_dst",
- min_value=base_p2,
- max_value=base_p2 + count_p2,
- size=8,
- seed=2,
- limit=(2**24 - 1)
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_dst",
- pkt_offset=u"IPv6.dst",
- offset_fixup=8
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000.py
index f78d98c64f..1bc64d9c0e 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-2p.py
new file mode 100644
index 0000000000..0057c8b4b9
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-2p.py
@@ -0,0 +1,112 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Single parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::F:423F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::F:423F"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-6p.py
new file mode 100644
index 0000000000..4a1307c510
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-6p.py
@@ -0,0 +1,136 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Three parallel bi-directional streams sent as W --> E and E --> W
+ at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsScaleClass, self).__init__()
+
+ self.pkt_data = [
+ # Direction W --> E:
+ {
+ "src_start_ip": "2100::1",
+ "dst_start_ip": "2200::0",
+ "dst_end_ip": "2200::F:423F"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2300::1",
+ "dst_start_ip": "2400::0",
+ "dst_end_ip": "2400::F:423F"
+ },
+ # Direction W --> E:
+ {
+ "src_start_ip": "2500::1",
+ "dst_start_ip": "2600::0",
+ "dst_end_ip": "2600::F:423F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::F:423F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2400::1",
+ "dst_start_ip": "2300::0",
+ "dst_end_ip": "2300::F:423F"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2600::1",
+ "dst_start_ip": "2500::0",
+ "dst_end_ip": "2500::F:423F"
+ }
+ ]
+ self.pkt_base = []
+ self.pkt_vm = []
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+ for i in range(len(self.pkt_data)):
+ base, count = self._get_start_end_ipv6(
+ self.pkt_data[i]["dst_start_ip"],
+ self.pkt_data[i]["dst_end_ip"]
+ )
+
+ self.pkt_base.append(
+ Ether() /
+ IPv6(
+ src=self.pkt_data[i]["src_start_ip"],
+ dst=self.pkt_data[i]["dst_start_ip"]
+ )
+ )
+ self.pkt_vm.append(
+ STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name="ipv6_dst",
+ min_value=base,
+ max_value=base + count,
+ size=8,
+ op="inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name="ipv6_dst",
+ pkt_offset="IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ )
+
+ return self.pkt_base, self.pkt_vm
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-rnd.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-rnd.py
deleted file mode 100644
index a372e1ae3b..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000-rnd.py
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later; you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+. If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# 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.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
- - Source IP address range: 2001:1::1
- - Destination IP address range: 2001:2::0 - 2001:2::F:423F
- - Direction 1 --> 0:
- - Source IP address range: 2001:2::1
- - Destination IP address range: 2001:1::0 - 2001:1::F:423F
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
- """Stream profile."""
-
- def __init__(self):
- """Initialization and setting of streams' parameters."""
-
- super(TrafficStreamsBaseClass, self).__init__()
-
- # IPs used in packet headers.
- self.p1_src_start_ip = u"2001:1::1"
- self.p1_dst_start_ip = u"2001:2::0"
- self.p1_dst_end_ip = u"2001:2::F:423F"
-
- self.p2_src_start_ip = u"2001:2::1"
- self.p2_dst_start_ip = u"2001:1::0"
- self.p2_dst_end_ip = u"2001:1::F:423F"
-
- def define_packets(self):
- """Defines the packets to be sent from the traffic generator.
-
- Packet definition: | ETH | IPv6 |
-
- :returns: Packets to be sent from the traffic generator.
- :rtype: tuple
- """
-
- base_p1, count_p1 = self._get_start_end_ipv6(
- self.p1_dst_start_ip,
- self.p1_dst_end_ip
- )
- base_p2, count_p2 = self._get_start_end_ipv6(
- self.p2_dst_start_ip,
- self.p2_dst_end_ip
- )
-
- # Direction 0 --> 1
- base_pkt_a = (
- Ether() /
- IPv6(
- src=self.p1_src_start_ip,
- dst=self.p1_dst_start_ip
- )
- )
- # Direction 1 --> 0
- base_pkt_b = (
- Ether() /
- IPv6(
- src=self.p2_src_start_ip,
- dst=self.p2_dst_start_ip
- )
- )
-
- # Direction 0 --> 1
- vm1 = STLScVmRaw(
- [
- STLVmFlowVarRepeatableRandom(
- name=u"ipv6_dst",
- min_value=base_p1,
- max_value=base_p1 + count_p1,
- size=8,
- seed=1,
- # Cycle length. TRex does not allow any higher value.
- limit=(2**24 - 1)
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_dst",
- pkt_offset=u"IPv6.dst",
- offset_fixup=8
- )
- ]
- )
- # Direction 1 --> 0
- vm2 = STLScVmRaw(
- [
- STLVmFlowVarRepeatableRandom(
- name=u"ipv6_dst",
- min_value=base_p2,
- max_value=base_p2 + count_p2,
- size=8,
- seed=2,
- limit=(2**24 - 1)
- ),
- STLVmWrFlowVar(
- fv_name=u"ipv6_dst",
- pkt_offset=u"IPv6.dst",
- offset_fixup=8
- )
- ]
- )
-
- return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
- """Register this traffic profile to T-rex.
-
- Do not change this function.
-
- :return: Traffic streams.
- :rtype: Object
- """
- return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000.py
index 572eed4256..8c22b5eabe 100644
--- a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000.py
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000.py
new file mode 100644
index 0000000000..c3e6a2da96
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000.py
@@ -0,0 +1,140 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IPv6 /
+ - Direction 0 --> 1:
+ - Source IP address range: 2001:1::1
+ - Destination IP address range: 2001:2::0 - 2001:2::7:a11f
+ - Direction 1 --> 0:
+ - Source IP address range: 2001:2::1
+ - Destination IP address range: 2001:1::0 - 2001:1::7:a11f
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"2001:1::1"
+ self.p1_dst_start_ip = u"2001:2::0"
+ self.p1_dst_end_ip = u"2001:2::7:a11f"
+
+ self.p2_src_start_ip = u"2001:2::1"
+ self.p2_dst_start_ip = u"2001:1::0"
+ self.p2_dst_end_ip = u"2001:1::7:a11f"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ base_p1, count_p1 = self._get_start_end_ipv6(
+ self.p1_dst_start_ip,
+ self.p1_dst_end_ip
+ )
+ base_p2, count_p2 = self._get_start_end_ipv6(
+ self.p2_dst_start_ip,
+ self.p2_dst_end_ip
+ )
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IPv6(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IPv6(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ipv6_dst",
+ min_value=base_p1,
+ max_value=base_p1 + count_p1,
+ size=8,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_dst",
+ pkt_offset=u"IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ipv6_dst",
+ min_value=base_p2,
+ max_value=base_p2 + count_p2,
+ size=8,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_dst",
+ pkt_offset=u"IPv6.dst",
+ offset_fixup=8
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6src253.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6src253.py
new file mode 100644
index 0000000000..3763a0977a
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6src253.py
@@ -0,0 +1,139 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
+ - Packet: ETH / IPv6 /
+ - Direction 0 --> 1:
+ - Source IP address range: 2001:1::2 - 2001:1::FE
+ - Destination IP address range: 2001:2::2
+ - Direction 1 --> 0:
+ - Source IP address range: 2001:2::2 - 2001:2::FE
+ - Destination IP address range: 2001:1::2
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_base_class import TrafficStreamsBaseClass
+
+
+class TrafficStreams(TrafficStreamsBaseClass):
+ """Stream profile."""
+
+ def __init__(self):
+ """Initialization and setting of streams' parameters."""
+
+ super(TrafficStreamsBaseClass, self).__init__()
+
+ # IPs used in packet headers.
+ self.p1_src_start_ip = u"2001:1::2"
+ self.p1_src_end_ip = u"2001:1::FE"
+ self.p1_dst_start_ip = u"2001:2::2"
+
+ self.p2_src_start_ip = u"2001:2::2"
+ self.p2_src_end_ip = u"2001:2::FE"
+ self.p2_dst_start_ip = u"2001:1::2"
+
+ def define_packets(self):
+ """Defines the packets to be sent from the traffic generator.
+
+ Packet definition: | ETH | IPv6 |
+
+ :returns: Packets to be sent from the traffic generator.
+ :rtype: tuple
+ """
+
+ base_p1, count_p1 = self._get_start_end_ipv6(
+ self.p1_src_start_ip,
+ self.p1_src_end_ip
+ )
+ base_p2, count_p2 = self._get_start_end_ipv6(
+ self.p2_src_start_ip,
+ self.p2_src_end_ip
+ )
+
+ # Direction 0 --> 1
+ base_pkt_a = (
+ Ether() /
+ IPv6(
+ src=self.p1_src_start_ip,
+ dst=self.p1_dst_start_ip
+ )
+ )
+ # Direction 1 --> 0
+ base_pkt_b = (
+ Ether() /
+ IPv6(
+ src=self.p2_src_start_ip,
+ dst=self.p2_dst_start_ip
+ )
+ )
+
+ # Direction 0 --> 1
+ vm1 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ipv6_src",
+ min_value=base_p1,
+ max_value=base_p1 + count_p1,
+ size=8,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_src",
+ pkt_offset=u"IPv6.src",
+ offset_fixup=8
+ )
+ ]
+ )
+ # Direction 1 --> 0
+ vm2 = STLScVmRaw(
+ [
+ STLVmFlowVar(
+ name=u"ipv6_src",
+ min_value=base_p2,
+ max_value=base_p2 + count_p2,
+ size=8,
+ op=u"inc"
+ ),
+ STLVmWrFlowVar(
+ fv_name=u"ipv6_src",
+ pkt_offset=u"IPv6.src",
+ offset_fixup=8
+ )
+ ]
+ )
+
+ return base_pkt_a, base_pkt_b, vm1, vm2
+
+
+def register():
+ """Register this traffic profile to T-rex.
+
+ Do not change this function.
+
+ :return: Traffic streams.
+ :rtype: Object
+ """
+ return TrafficStreams()
diff --git a/GPL/traffic_scripts/PacketVerifier.py b/GPL/traffic_scripts/PacketVerifier.py
index 89b8c3c206..974906e439 100644
--- a/GPL/traffic_scripts/PacketVerifier.py
+++ b/GPL/traffic_scripts/PacketVerifier.py
@@ -76,6 +76,7 @@
import os
import select
+import time
from scapy.all import ETH_P_IP, ETH_P_IPV6, ETH_P_ALL, ETH_P_ARP
from scapy.config import conf
diff --git a/GPL/traffic_scripts/ValidIp.py b/GPL/traffic_scripts/ValidIp.py
new file mode 100644
index 0000000000..57244119c7
--- /dev/null
+++ b/GPL/traffic_scripts/ValidIp.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2021 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Functions simplifying address validation."""
+
+import ipaddress
+
+
+def valid_ipv4(ip_address):
+ """Check IPv4 address.
+
+ :param ip_address: IPv4 address to check.
+ :type ip_address: str
+ :returns: True if IP address is correct.
+ :rtype: bool
+ """
+ try:
+ ipaddress.IPv4Address(ip_address)
+ return True
+ except (AttributeError, ipaddress.AddressValueError):
+ return False
+
+
+def valid_ipv6(ip_address):
+ """Check IPv6 address.
+
+ :param ip_address: IPv6 address to check.
+ :type ip_address: str
+ :returns: True if IP address is correct.
+ :rtype: bool
+ """
+ try:
+ ipaddress.IPv6Address(ip_address)
+ return True
+ except (AttributeError, ipaddress.AddressValueError):
+ return False
diff --git a/GPL/traffic_scripts/geneve_tunnel.py b/GPL/traffic_scripts/geneve_tunnel.py
index 3dd40b6a3a..be9502c2d4 100644
--- a/GPL/traffic_scripts/geneve_tunnel.py
+++ b/GPL/traffic_scripts/geneve_tunnel.py
@@ -30,7 +30,7 @@ import sys
from ipaddress import ip_address
from scapy.contrib.geneve import GENEVE
from scapy.layers.inet import IP, UDP
-from scapy.layers.inet6 import IPv6, ICMPv6ND_NS
+from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
from scapy.layers.l2 import Ether
from scapy.packet import Raw
@@ -280,9 +280,17 @@ def main():
if rx_pkt_recv.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ elif rx_pkt_recv.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ elif rx_pkt_recv.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ # otherwise process the current packet
+ break
check_geneve(
rx_pkt_recv, ip_layer, rx_src_mac, rx_dst_mac, geneve_tunnel_mac,
@@ -333,9 +341,16 @@ def main():
if tx_pkt_recv.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ elif tx_pkt_recv.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ elif tx_pkt_recv.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ break
check_ip(
tx_pkt_recv, ip_layer, tx_dst_mac, tx_src_mac, str(dst_ip), str(src_ip)
diff --git a/GPL/traffic_scripts/ipsec_interface.py b/GPL/traffic_scripts/ipsec_interface.py
index 9c28f4c06d..e6e90a2598 100644
--- a/GPL/traffic_scripts/ipsec_interface.py
+++ b/GPL/traffic_scripts/ipsec_interface.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -29,7 +29,7 @@ import sys
from ipaddress import ip_address
from scapy.layers.inet import IP
-from scapy.layers.inet6 import IPv6, ICMPv6ND_NS
+from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
from scapy.layers.ipsec import SecurityAssociation, ESP
from scapy.layers.l2 import Ether
from scapy.packet import Raw
@@ -77,7 +77,7 @@ def check_ipsec(
if not pkt_recv.haslayer(ip_layer):
raise RuntimeError(
- f"Not an {ip_layer.__name__} packet received: {pkt_recv!r}"
+ f"Not an {ip_layer.name} packet received: {pkt_recv!r}"
)
if pkt_recv[ip_layer].src != src_tun:
@@ -97,9 +97,6 @@ def check_ipsec(
ip_pkt = pkt_recv[ip_layer]
d_pkt = sa_in.decrypt(ip_pkt)
- print(u"Decrypted packet:")
- d_pkt.show2()
- print()
if d_pkt[ip_layer].dst != dst_ip:
raise RuntimeError(
@@ -151,19 +148,19 @@ def check_ip(pkt_recv, ip_layer, src_mac, dst_mac, src_ip, dst_ip):
if not pkt_recv.haslayer(ip_layer):
raise RuntimeError(
- f"Not an {ip_layer.__name__} packet received: {pkt_recv!r}"
+ f"Not an {ip_layer.name} packet received: {pkt_recv!r}"
)
if pkt_recv[ip_layer].dst != dst_ip:
raise RuntimeError(
f"Received packet has invalid destination address: "
- f"{pkt_recv[ip_layer.__name__].dst} should be: {dst_ip}"
+ f"{pkt_recv[ip_layer.name].dst} should be: {dst_ip}"
)
if pkt_recv[ip_layer].src != src_ip:
raise RuntimeError(
f"Received packet has invalid destination address: "
- f"{pkt_recv[ip_layer.__name__].dst} should be: {src_ip}"
+ f"{pkt_recv[ip_layer.name].dst} should be: {src_ip}"
)
if ip_layer == IP and pkt_recv[ip_layer].proto != 61:
@@ -214,19 +211,18 @@ def main():
sa_in = SecurityAssociation(
ESP, spi=l_spi, crypt_algo=crypto_alg,
crypt_key=crypto_key.encode(encoding=u"utf-8"), auth_algo=integ_alg,
- auth_key=integ_key.encode(encoding=u"utf-8"),
- tunnel_header=tunnel_in
+ auth_key=integ_key.encode(encoding=u"utf-8"), tunnel_header=tunnel_in
)
sa_out = SecurityAssociation(
ESP, spi=r_spi, crypt_algo=crypto_alg,
crypt_key=crypto_key.encode(encoding=u"utf-8"), auth_algo=integ_alg,
- auth_key=integ_key.encode(encoding=u"utf-8"),
- tunnel_header=tunnel_out
+ auth_key=integ_key.encode(encoding=u"utf-8"), tunnel_header=tunnel_out
)
sent_packets = list()
- tx_pkt_send = (Ether(src=tx_src_mac, dst=tx_dst_mac) / ip_pkt)
+ tx_pkt_send = (
+ Ether(src=tx_src_mac, dst=tx_dst_mac) / ip_pkt)
tx_pkt_send /= Raw()
size_limit = 78 if ip_layer == IPv6 else 64
if len(tx_pkt_send) < size_limit:
@@ -238,46 +234,58 @@ def main():
rx_pkt_recv = rx_rxq.recv(2)
if rx_pkt_recv is None:
- raise RuntimeError(f"{ip_layer.__name__} packet Rx timeout")
+ raise RuntimeError(f"{ip_layer.name} packet Rx timeout")
if rx_pkt_recv.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ if rx_pkt_recv.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ if rx_pkt_recv.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ # otherwise process the current packet
+ break
check_ipsec(
rx_pkt_recv, ip_layer, rx_src_mac, rx_dst_mac, src_tun, dst_tun, src_ip,
dst_ip, sa_in
)
- ip_pkt = ip_layer(src=dst_ip, dst=src_ip, proto=61) if ip_layer == IP \
+ rx_ip_pkt = ip_layer(src=dst_ip, dst=src_ip, proto=61) if ip_layer == IP \
else ip_layer(src=dst_ip, dst=src_ip)
- ip_pkt /= Raw()
- if len(ip_pkt) < (size_limit - 14):
- ip_pkt[Raw].load += (b"\0" * (size_limit - 14 - len(ip_pkt)))
- e_pkt = sa_out.encrypt(ip_pkt)
- rx_pkt_send = (Ether(src=rx_dst_mac, dst=rx_src_mac) /
- e_pkt)
+ rx_ip_pkt /= Raw()
+ if len(rx_ip_pkt) < (size_limit - 14):
+ rx_ip_pkt[Raw].load += (b"\0" * (size_limit - 14 - len(rx_ip_pkt)))
+ rx_pkt_send = (
+ Ether(src=rx_dst_mac, dst=rx_src_mac) / sa_out.encrypt(rx_ip_pkt))
rx_txq.send(rx_pkt_send)
while True:
tx_pkt_recv = tx_rxq.recv(2, ignore=sent_packets)
if tx_pkt_recv is None:
- raise RuntimeError(f"{ip_layer.__name__} packet Rx timeout")
+ raise RuntimeError(f"{ip_layer.name} packet Rx timeout")
if tx_pkt_recv.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ if tx_pkt_recv.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ if tx_pkt_recv.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
- check_ip(tx_pkt_recv, ip_layer, tx_dst_mac, tx_src_mac, dst_ip, src_ip)
+ break
- sys.exit(0)
+ check_ip(tx_pkt_recv, ip_layer, tx_dst_mac, tx_src_mac, dst_ip, src_ip)
if __name__ == u"__main__":
diff --git a/GPL/traffic_scripts/ipsec_policy.py b/GPL/traffic_scripts/ipsec_policy.py
index 0d5dcf5481..8ba7eb488d 100644
--- a/GPL/traffic_scripts/ipsec_policy.py
+++ b/GPL/traffic_scripts/ipsec_policy.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
#
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
#
@@ -29,7 +29,7 @@ import sys
from ipaddress import ip_address
from scapy.layers.inet import IP
-from scapy.layers.inet6 import IPv6, ICMPv6ND_NS
+from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
from scapy.layers.ipsec import SecurityAssociation, ESP
from scapy.layers.l2 import Ether
from scapy.packet import Raw
@@ -128,7 +128,6 @@ def check_ip(pkt_recv, ip_layer, src_ip, dst_ip):
)
-# TODO: Pylint says too-many-locals and too-many-statements. Refactor!
def main():
"""Send and receive IPsec packet."""
@@ -152,16 +151,18 @@ def main():
rx_dst_mac = args.get_arg(u"rx_dst_mac")
src_ip = args.get_arg(u"src_ip")
dst_ip = args.get_arg(u"dst_ip")
+ src_tun = args.get_arg(u"src_tun")
+ dst_tun = args.get_arg(u"dst_tun")
crypto_alg = args.get_arg(u"crypto_alg")
crypto_key = args.get_arg(u"crypto_key")
integ_alg = args.get_arg(u"integ_alg")
integ_key = args.get_arg(u"integ_key")
l_spi = int(args.get_arg(u"l_spi"))
r_spi = int(args.get_arg(u"r_spi"))
- src_tun = args.get_arg(u"src_tun")
- dst_tun = args.get_arg(u"dst_tun")
ip_layer = IP if ip_address(src_ip).version == 4 else IPv6
+ ip_pkt = ip_layer(src=src_ip, dst=dst_ip, proto=61) if ip_layer == IP \
+ else ip_layer(src=src_ip, dst=dst_ip)
tunnel_out = ip_layer(src=src_tun, dst=dst_tun) if src_tun and dst_tun \
else None
@@ -183,16 +184,14 @@ def main():
auth_key=integ_key.encode(encoding=u"utf-8"), tunnel_header=tunnel_out
)
- ip_pkt = ip_layer(src=src_ip, dst=dst_ip, proto=61) if ip_layer == IP \
- else ip_layer(src=src_ip, dst=dst_ip)
- ip_pkt = ip_layer(ip_pkt)
-
- e_pkt = sa_out.encrypt(ip_pkt)
- tx_pkt_send = (Ether(src=tx_src_mac, dst=tx_dst_mac) /
- e_pkt)
-
sent_packets = list()
+ tx_pkt_send = (
+ Ether(src=tx_src_mac, dst=tx_dst_mac) / sa_out.encrypt(ip_pkt))
+
tx_pkt_send /= Raw()
+ size_limit = 78 if ip_layer == IPv6 else 64
+ if len(tx_pkt_send) < (size_limit - 14):
+ tx_pkt_send[Raw].load += (b"\0" * (size_limit - 14 - len(tx_pkt_send)))
sent_packets.append(tx_pkt_send)
tx_txq.send(tx_pkt_send)
@@ -205,36 +204,52 @@ def main():
if rx_pkt_recv.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ if rx_pkt_recv.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ if rx_pkt_recv.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
- check_ip(rx_pkt_recv, ip_layer, src_ip, dst_ip)
+ # otherwise process the current packet
+ break
+
+ check_ip(
+ rx_pkt_recv, ip_layer, src_ip, dst_ip
+ )
rx_ip_pkt = ip_layer(src=dst_ip, dst=src_ip, proto=61) if ip_layer == IP \
else ip_layer(src=dst_ip, dst=src_ip)
- rx_pkt_send = (Ether(src=rx_dst_mac, dst=rx_src_mac) /
- rx_ip_pkt)
-
+ rx_pkt_send = (
+ Ether(src=rx_dst_mac, dst=rx_src_mac) / rx_ip_pkt)
rx_pkt_send /= Raw()
+ if len(rx_pkt_send) < size_limit:
+ rx_pkt_send[Raw].load += (b"\0" * (size_limit - len(rx_pkt_send)))
rx_txq.send(rx_pkt_send)
while True:
- tx_pkt_recv = tx_rxq.recv(2, sent_packets)
+ tx_pkt_recv = tx_rxq.recv(2, ignore=sent_packets)
if tx_pkt_recv is None:
- raise RuntimeError(u"ESP packet Rx timeout")
+ raise RuntimeError(f"{ip_layer.name} packet Rx timeout")
if tx_pkt_recv.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ if tx_pkt_recv.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ if tx_pkt_recv.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
- check_ipsec(tx_pkt_recv, ip_layer, src_tun, dst_ip, src_ip, sa_in)
+ break
- sys.exit(0)
+ check_ipsec(tx_pkt_recv, ip_layer, src_tun, dst_ip, src_ip, sa_in)
if __name__ == u"__main__":
diff --git a/GPL/traffic_scripts/lisp/lisp_check.py b/GPL/traffic_scripts/lisp/lisp_check.py
index 6612485893..6a5e85c869 100644
--- a/GPL/traffic_scripts/lisp/lisp_check.py
+++ b/GPL/traffic_scripts/lisp/lisp_check.py
@@ -28,18 +28,18 @@ a LISP-encapsulated packet on the other interface and verifies received packet.
"""
import sys
-import ipaddress
from scapy.all import bind_layers, Packet
from scapy.fields import FlagsField, BitField, IntField
from scapy.layers.inet import ICMP, IP, UDP
from scapy.layers.inet6 import ICMPv6EchoRequest
-from scapy.layers.inet6 import IPv6
+from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
from scapy.layers.l2 import Ether
from scapy.packet import Raw
from ..PacketVerifier import RxQueue, TxQueue
from ..TrafficScriptArg import TrafficScriptArg
+from ..ValidIp import valid_ipv4, valid_ipv6
class LispHeader(Packet):
@@ -66,26 +66,11 @@ class LispInnerIPv6(IPv6):
name = u"Lisp Inner Layer - IPv6"
-def valid_ipv4(ip):
- try:
- ipaddress.IPv4Address(ip)
- return True
- except (AttributeError, ipaddress.AddressValueError):
- return False
-
-
-def valid_ipv6(ip):
- try:
- ipaddress.IPv6Address(ip)
- return True
- except (AttributeError, ipaddress.AddressValueError):
- return False
-
-
def main():
"""Send IP ICMP packet from one traffic generator interface to the other.
- :raises RuntimeError: If the received packet is not correct."""
+ :raises RuntimeError: If the received packet is not correct.
+ """
args = TrafficScriptArg(
[
@@ -133,13 +118,29 @@ def main():
sent_packets.append(pkt_raw)
txq.send(pkt_raw)
- if tx_if == rx_if:
- ether = rxq.recv(2, ignore=sent_packets)
- else:
- ether = rxq.recv(2)
-
- if ether is None:
- raise RuntimeError(u"ICMP echo Rx timeout")
+ while True:
+ if tx_if == rx_if:
+ ether = rxq.recv(2, ignore=sent_packets)
+ else:
+ ether = rxq.recv(2)
+
+ if ether is None:
+ raise RuntimeError(u"ICMP echo Rx timeout")
+
+ if ether.haslayer(ICMPv6ND_NS):
+ # read another packet in the queue if the current one is ICMPv6ND_NS
+ continue
+ elif ether.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ elif ether.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ # otherwise process the current packet
+ break
if rx_dst_mac == ether[Ether].dst and rx_src_mac == ether[Ether].src:
print(u"MAC addresses match.")
@@ -155,7 +156,7 @@ def main():
if not isinstance(ip, IPv6):
raise RuntimeError(f"Not an IP packet received {ip!r}")
elif not isinstance(ip, ip_format):
- raise RuntimeError(f"Not an IP packet received {ip!r}")
+ raise RuntimeError(f"Not an IP packet received {ip!r}")
lisp = ether.getlayer(lisp_layer)
if not lisp:
diff --git a/GPL/traffic_scripts/lisp/lispgpe_check.py b/GPL/traffic_scripts/lisp/lispgpe_check.py
index 41bc0964e6..cffb486cdf 100644
--- a/GPL/traffic_scripts/lisp/lispgpe_check.py
+++ b/GPL/traffic_scripts/lisp/lispgpe_check.py
@@ -29,18 +29,18 @@ packet.
"""
import sys
-import ipaddress
from scapy.all import bind_layers, Packet
from scapy.fields import FlagsField, BitField, XBitField, IntField
from scapy.layers.inet import ICMP, IP, UDP
from scapy.layers.inet6 import ICMPv6EchoRequest
-from scapy.layers.inet6 import IPv6
+from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
from scapy.layers.l2 import Ether
from scapy.packet import Raw
from ..PacketVerifier import RxQueue, TxQueue
from ..TrafficScriptArg import TrafficScriptArg
+from ..ValidIp import valid_ipv4, valid_ipv6
class LispGPEHeader(Packet):
@@ -92,22 +92,6 @@ class LispGPEInnerNSH(Packet):
"""
-def valid_ipv4(ip):
- try:
- ipaddress.IPv4Address(ip)
- return True
- except (AttributeError, ipaddress.AddressValueError):
- return False
-
-
-def valid_ipv6(ip):
- try:
- ipaddress.IPv6Address(ip)
- return True
- except (AttributeError, ipaddress.AddressValueError):
- return False
-
-
def main():
"""Send IP ICMP packet from one traffic generator interface to the other.
@@ -156,13 +140,28 @@ def main():
sent_packets.append(pkt_raw)
txq.send(pkt_raw)
- if tx_if == rx_if:
- ether = rxq.recv(2, ignore=sent_packets)
- else:
- ether = rxq.recv(2)
-
- if ether is None:
- raise RuntimeError(u"ICMP echo Rx timeout")
+ while True:
+ if tx_if == rx_if:
+ ether = rxq.recv(2, ignore=sent_packets)
+ else:
+ ether = rxq.recv(2)
+
+ if ether is None:
+ raise RuntimeError(u"ICMP echo Rx timeout")
+
+ if ether.haslayer(ICMPv6ND_NS):
+ # read another packet in the queue if the current one is ICMPv6ND_NS
+ continue
+ if ether.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is ICMPv6ND_RA
+ continue
+ elif ether.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+
+ # otherwise process the current packet
+ break
if rx_dst_mac == ether[Ether].dst and rx_src_mac == ether[Ether].src:
print(u"MAC addresses match.")
@@ -178,7 +177,7 @@ def main():
if not isinstance(ip, IPv6):
raise RuntimeError(f"Not an IP packet received {ip!r}")
elif not isinstance(ip, ip_format):
- raise RuntimeError(f"Not an IP packet received {ip!r}")
+ raise RuntimeError(f"Not an IP packet received {ip!r}")
lisp = ether.getlayer(LispGPEHeader).underlayer
if not lisp:
diff --git a/GPL/traffic_scripts/nat.py b/GPL/traffic_scripts/nat.py
index d9f0330641..3722d6b8db 100644
--- a/GPL/traffic_scripts/nat.py
+++ b/GPL/traffic_scripts/nat.py
@@ -27,31 +27,14 @@
import sys
-import ipaddress
-
from scapy.layers.inet import IP, TCP, UDP
-from scapy.layers.inet6 import IPv6, ICMPv6ND_NS
+from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
from scapy.layers.l2 import Ether
from scapy.packet import Raw
from .PacketVerifier import RxQueue, TxQueue
from .TrafficScriptArg import TrafficScriptArg
-
-
-def valid_ipv4(ip):
- try:
- ipaddress.IPv4Address(ip)
- return True
- except (AttributeError, ipaddress.AddressValueError):
- return False
-
-
-def valid_ipv6(ip):
- try:
- ipaddress.IPv6Address(ip)
- return True
- except (AttributeError, ipaddress.AddressValueError):
- return False
+from .ValidIp import valid_ipv4, valid_ipv6
def main():
@@ -120,9 +103,16 @@ def main():
if ether.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ elif ether.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ elif ether.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ break
if rx_dst_mac != ether[Ether].dst or rx_src_mac != ether[Ether].src:
raise RuntimeError(f"Matching packet unsuccessful: {ether!r}")
@@ -182,9 +172,16 @@ def main():
if ether.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ elif ether.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ elif ether.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ break
if ether[Ether].dst != tx_src_mac or ether[Ether].src != tx_dst_mac:
raise RuntimeError(f"Matching packet unsuccessful: {ether!r}")
diff --git a/GPL/traffic_scripts/policer.py b/GPL/traffic_scripts/policer.py
index 262d7878b6..76b7812687 100644
--- a/GPL/traffic_scripts/policer.py
+++ b/GPL/traffic_scripts/policer.py
@@ -26,12 +26,11 @@
"""Traffic script for IPsec verification."""
import sys
-import logging
from ipaddress import ip_address
from scapy.layers.l2 import Ether
from scapy.layers.inet import IP, TCP
-from scapy.layers.inet6 import IPv6, ICMPv6ND_NS
+from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
from scapy.packet import Raw
from .TrafficScriptArg import TrafficScriptArg
@@ -113,9 +112,17 @@ def main():
if pkt_recv.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ elif pkt_recv.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ elif pkt_recv.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ # otherwise process the current packet
+ break
if pkt_recv is None:
raise RuntimeError(u"Rx timeout")
diff --git a/GPL/traffic_scripts/send_flow_packet.py b/GPL/traffic_scripts/send_flow_packet.py
new file mode 100644
index 0000000000..dba3788bfb
--- /dev/null
+++ b/GPL/traffic_scripts/send_flow_packet.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2021 Intel and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later; you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+. If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# 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.
+
+"""Traffic script that send flow packet from one interface
+to the other.
+"""
+
+import sys
+import binascii
+
+from scapy.layers.inet import IP, UDP, TCP
+from scapy.layers.inet6 import IPv6
+from scapy.layers.l2 import Ether, ARP
+from scapy.packet import Raw
+from scapy.contrib.gtp import GTP_U_Header
+from scapy.layers.ipsec import ESP, AH
+from scapy.layers.vxlan import VXLAN
+
+from .PacketVerifier import TxQueue
+from .TrafficScriptArg import TrafficScriptArg
+
+
+def main():
+ """Send packet from one traffic generator interface to the other."""
+
+ args = TrafficScriptArg(
+ [
+ u"tg_if1_mac", u"dut_if1_mac", u"flow_type", u"proto",
+ ],
+ [
+ u"src_ip", u"dst_ip", u"src_port", u"dst_port", u"value"
+ ]
+ )
+ tx_if = args.get_arg(u"tx_if")
+ tx_src_mac = args.get_arg(u"tg_if1_mac")
+ tx_dst_mac = args.get_arg(u"dut_if1_mac")
+ flow_type = args.get_arg(u"flow_type")
+ proto = args.get_arg(u"proto")
+
+ src = args.get_arg(u"src_ip")
+ dst = args.get_arg(u"dst_ip")
+ sport = eval(args.get_arg(u"src_port"))
+ dport = eval(args.get_arg(u"dst_port"))
+ value = eval(args.get_arg(u"value"))
+
+ txq = TxQueue(tx_if)
+
+ if flow_type == u"IP4":
+ pkt_raw = (Ether(src=tx_src_mac, dst=tx_dst_mac) /
+ IP(src=src, dst=dst))
+ elif flow_type == u"IP6":
+ pkt_raw = (Ether(src=tx_src_mac, dst=tx_dst_mac) /
+ IPv6(src=src, dst=dst))
+ elif flow_type == u"ETHER":
+ pkt_raw = Ether(src=tx_src_mac, dst=tx_dst_mac)
+ else:
+ raise ValueError(f"Flow type error: {flow_type}")
+
+ if proto == u"TCP":
+ pkt_raw /= TCP(sport=sport, dport=dport)
+ elif proto == u"UDP":
+ pkt_raw /= UDP(sport=sport, dport=dport)
+ elif proto == u"AH":
+ pkt_raw /= AH(spi=value)
+ elif proto == u"ESP":
+ pkt_raw /= ESP(spi=value)
+ elif proto == u"GTPU":
+ pkt_raw /= (UDP()/GTP_U_Header(teid=value)/IP(src=u"192.168.10.20"))
+ elif proto == u"L2TPV3":
+ value_hex = hex(value).replace('0x', (8-len(hex(value))+2)*'0')
+ session_id = binascii.a2b_hex(value_hex)
+ pkt_raw.proto = 115
+ pkt_raw /= Raw(session_id)
+ elif proto == u"VXLAN":
+ pkt_raw /= (UDP()/VXLAN(vni=value))
+ elif proto == u"ARP":
+ pkt_raw.type = value
+ pkt_raw /= ARP()
+ else:
+ raise ValueError(f"Flow proto error: {proto}")
+
+ pkt_raw /= Raw()
+ txq.send(pkt_raw)
+ sys.exit(0)
+
+if __name__ == u"__main__":
+ main()
diff --git a/GPL/traffic_scripts/send_icmp_wait_for_reply.py b/GPL/traffic_scripts/send_icmp_wait_for_reply.py
index 70d9a99ec2..f09287f24e 100644
--- a/GPL/traffic_scripts/send_icmp_wait_for_reply.py
+++ b/GPL/traffic_scripts/send_icmp_wait_for_reply.py
@@ -26,48 +26,16 @@
"""Traffic script that sends an IP ICMPv4 or ICMPv6."""
import sys
-import ipaddress
from scapy.layers.inet import ICMP, IP
-from scapy.layers.inet6 import IPv6, ICMPv6EchoRequest, ICMPv6EchoReply,\
- ICMPv6ND_NS
+from scapy.layers.inet6 import ICMPv6EchoRequest, ICMPv6EchoReply,\
+ ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
from scapy.layers.l2 import Ether
from scapy.packet import Raw
from .PacketVerifier import RxQueue, TxQueue
from .TrafficScriptArg import TrafficScriptArg
-
-
-def valid_ipv4(ip):
- """Check if IP address has the correct IPv4 address format.
-
- :param ip: IP address.
- :type ip: str
- :return: True in case of correct IPv4 address format,
- otherwise return False.
- :rtype: bool
- """
- try:
- ipaddress.IPv4Address(ip)
- return True
- except (AttributeError, ipaddress.AddressValueError):
- return False
-
-
-def valid_ipv6(ip):
- """Check if IP address has the correct IPv6 address format.
-
- :param ip: IP address.
- :type ip: str
- :return: True in case of correct IPv6 address format,
- otherwise return False.
- :rtype: bool
- """
- try:
- ipaddress.IPv6Address(ip)
- return True
- except (AttributeError, ipaddress.AddressValueError):
- return False
+from .ValidIp import valid_ipv4, valid_ipv6
def main():
@@ -105,9 +73,9 @@ def main():
raise ValueError(u"IP not in correct format")
icmp_request = (
- Ether(src=src_mac, dst=dst_mac) /
- ip_layer(src=src_ip, dst=dst_ip) /
- icmp_req()
+ Ether(src=src_mac, dst=dst_mac) /
+ ip_layer(src=src_ip, dst=dst_ip) /
+ icmp_req()
)
# Send created packet on the interface
@@ -126,9 +94,16 @@ def main():
elif icmp_reply.haslayer(ICMPv6ND_NS):
# read another packet in the queue in case of ICMPv6ND_NS packet
continue
- else:
- # otherwise process the current packet
- break
+ elif icmp_reply.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ elif icmp_reply.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ break
if icmp_reply[ip_layer][icmp_resp].type == icmp_type:
if icmp_reply[ip_layer].src == dst_ip and \
diff --git a/GPL/traffic_scripts/send_ip_check_headers.py b/GPL/traffic_scripts/send_ip_check_headers.py
index a384b683e9..a13b1b73b8 100644
--- a/GPL/traffic_scripts/send_ip_check_headers.py
+++ b/GPL/traffic_scripts/send_ip_check_headers.py
@@ -30,33 +30,15 @@ MAC addresses are checked in received packet.
import sys
-import ipaddress
-
from robot.api import logger
from scapy.layers.inet import IP
-from scapy.layers.inet6 import IPv6, ICMPv6ND_NS
+from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, ICMPv6MLReport2, ICMPv6ND_RA
from scapy.layers.l2 import Ether, Dot1Q
from scapy.packet import Raw
from .PacketVerifier import RxQueue, TxQueue
from .TrafficScriptArg import TrafficScriptArg
-
-
-def valid_ipv4(ip):
- try:
- ipaddress.IPv4Address(ip)
- return True
- except (AttributeError, ipaddress.AddressValueError):
- return False
-
-
-def valid_ipv6(ip):
- try:
- ipaddress.IPv6Address(ip)
- return True
- except (AttributeError, ipaddress.AddressValueError):
- return False
-
+from .ValidIp import valid_ipv4, valid_ipv6
def main():
"""Send IP/IPv6 packet from one traffic generator interface to the other."""
@@ -90,7 +72,7 @@ def main():
rxq = RxQueue(rx_if)
txq = TxQueue(tx_if)
- sent_packets =list()
+ sent_packets = list()
pkt_raw = Ether(src=tx_src_mac, dst=tx_dst_mac)
if encaps_tx == u"Dot1q":
@@ -125,9 +107,16 @@ def main():
if ether.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ elif ether.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ elif ether.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ break
if rx_dst_mac == ether[Ether].dst and rx_src_mac == ether[Ether].src:
logger.trace(u"MAC matched")
diff --git a/GPL/traffic_scripts/srv6_encap.py b/GPL/traffic_scripts/srv6_encap.py
index 725db9fc33..9c4ea257a0 100644
--- a/GPL/traffic_scripts/srv6_encap.py
+++ b/GPL/traffic_scripts/srv6_encap.py
@@ -28,7 +28,7 @@
import sys
from scapy.layers.inet6 import IPv6, ICMPv6ND_NS, IPv6ExtHdrSegmentRouting,\
- ipv6nh
+ ipv6nh, ICMPv6MLReport2, ICMPv6ND_RA
from scapy.layers.l2 import Ether
from scapy.packet import Raw
@@ -255,9 +255,17 @@ def main():
if rx_pkt_recv.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ elif rx_pkt_recv.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ elif rx_pkt_recv.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ # otherwise process the current packet
+ break
check_srv6(
rx_pkt_recv, rx_src_mac, rx_dst_mac, src_ip, dst_ip, dir0_srcsid,
@@ -270,20 +278,20 @@ def main():
ip_pkt[Raw].load += (b"\0" * (size_limit - 14 - len(ip_pkt)))
rx_pkt_send = (
- Ether(src=rx_dst_mac, dst=rx_src_mac) /
- IPv6(src=dir1_srcsid, dst=dir1_dstsid1) /
- IPv6ExtHdrSegmentRouting(
- segleft=1 if dir1_dstsid3 == u"None" else 2,
- lastentry=1 if dir1_dstsid3 == u"None" else 2,
- addresses=[dir1_dstsid2, dir1_dstsid1]
- if dir1_dstsid3 == u"None"
- else [dir1_dstsid3, dir1_dstsid2, dir1_dstsid1]
- ) /
- ip_pkt
+ Ether(src=rx_dst_mac, dst=rx_src_mac) /
+ IPv6(src=dir1_srcsid, dst=dir1_dstsid1) /
+ IPv6ExtHdrSegmentRouting(
+ segleft=1 if dir1_dstsid3 == u"None" else 2,
+ lastentry=1 if dir1_dstsid3 == u"None" else 2,
+ addresses=[dir1_dstsid2, dir1_dstsid1]
+ if dir1_dstsid3 == u"None"
+ else [dir1_dstsid3, dir1_dstsid2, dir1_dstsid1]
+ ) /
+ ip_pkt
) if dir1_dstsid2 != u"None" else (
- Ether(src=rx_dst_mac, dst=rx_src_mac) /
- IPv6(src=dir1_srcsid, dst=dir1_dstsid1) /
- ip_pkt
+ Ether(src=rx_dst_mac, dst=rx_src_mac) /
+ IPv6(src=dir1_srcsid, dst=dir1_dstsid1) /
+ ip_pkt
)
rx_txq.send(rx_pkt_send)
@@ -296,9 +304,17 @@ def main():
if tx_pkt_recv.haslayer(ICMPv6ND_NS):
# read another packet in the queue if the current one is ICMPv6ND_NS
continue
- else:
- # otherwise process the current packet
- break
+ elif tx_pkt_recv.haslayer(ICMPv6MLReport2):
+ # read another packet in the queue if the current one is
+ # ICMPv6MLReport2
+ continue
+ elif tx_pkt_recv.haslayer(ICMPv6ND_RA):
+ # read another packet in the queue if the current one is
+ # ICMPv6ND_RA
+ continue
+
+ # otherwise process the current packet
+ break
if decap == u"True":
check_ip(tx_pkt_recv, tx_dst_mac, tx_src_mac, dst_ip, src_ip)
diff --git a/GPL/traffic_scripts/vxlan.py b/GPL/traffic_scripts/vxlan.py
index 2acd2a2c93..25d2d60ed8 100644
--- a/GPL/traffic_scripts/vxlan.py
+++ b/GPL/traffic_scripts/vxlan.py
@@ -21,6 +21,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+"""Traffic script for vxlan verification."""
+
from scapy.fields import BitField, XByteField, X3BytesField
from scapy.layers.inet import UDP
from scapy.layers.l2 import Ether
@@ -28,6 +30,8 @@ from scapy.packet import Packet, bind_layers
class VXLAN(Packet):
+ """Custom scapy layer override for VXLAN."""
+
name = u"VXLAN"
fields_desc = [
BitField(u"flags", 0x08000000, 32),
diff --git a/INFO.yaml b/INFO.yaml
index 62bec692ba..3933eacc7a 100644
--- a/INFO.yaml
+++ b/INFO.yaml
@@ -39,11 +39,6 @@ committers:
email: 'dwallacelf@gmail.com'
id: 'dwallacelf'
timezone: 'Unknown/Unknown'
- - name: 'Jan Gelety'
- company: 'cisco'
- email: 'jgelety@cisco.com'
- id: 'jgelety'
- timezone: 'Europe/Bratislava'
- name: 'Juraj Linkeš'
company: 'PANTHEON.tech'
email: 'juraj.linkes@pantheon.tech'
diff --git a/PyPI/MLRsearch/MANIFEST.in b/PyPI/MLRsearch/MANIFEST.in
deleted file mode 100644
index 58073271d1..0000000000
--- a/PyPI/MLRsearch/MANIFEST.in
+++ /dev/null
@@ -1,6 +0,0 @@
-
-# Include the README
-include README.rst
-
-# Include the license file
-include LICENSE.txt
diff --git a/PyPI/MLRsearch/MLRsearch b/PyPI/MLRsearch/MLRsearch
index 4f23bb392a..a4338e6428 120000
--- a/PyPI/MLRsearch/MLRsearch
+++ b/PyPI/MLRsearch/MLRsearch
@@ -1 +1 @@
-/home/vrpolak/fdio/csit/resources/libraries/python/MLRsearch \ No newline at end of file
+../../resources/libraries/python/MLRsearch \ No newline at end of file
diff --git a/PyPI/MLRsearch/README.rst b/PyPI/MLRsearch/README.rst
index 2b13d904e7..bec1b7749e 100644
--- a/PyPI/MLRsearch/README.rst
+++ b/PyPI/MLRsearch/README.rst
@@ -9,32 +9,148 @@ in CSIT_ (Continuous System and Integration Testing) project of fd.io_
(Fast Data), one of LFN_ (Linux Foundation Networking) projects.
In order to make this code available in PyPI_ (Python Package Index),
-the setuputils stuff has been added,
-but after some discussion, the export directory_
-is only a symlink to the original place of tightly coupled CSIT code.
+the setuputils stuff (later converted to pyproject.toml) has been added,
+but after some discussion, that directory_ ended up having
+only a symlink to the original place of tightly coupled CSIT code.
+
+IETF documents
+--------------
+
+The currently published `IETF draft`_ describes the logic of version 1.2.0,
+earlier library and draft versions do not match each other that well.
+
+Usage
+-----
+
+High level description
+______________________
+
+A complete application capable of testing performance using MLRsearch
+consists of three layers: Manager, Controller and Measurer.
+This library provides an implementation for the Controller only,
+including all the classes needed to define API between Controller
+and other two components.
+
+Users are supposed to implement the whole Manager layer,
+and also implement the Measurer layer.
+The Measurer instance is injected as a parameter
+when the manager calls the controller instance.
+
+The purpose of Measurer instance is to perform one trial measurement.
+Upon invocation of measure() method, the controller only specifies
+the intended duration and the intended load for the trial.
+The call is done using keyword arguments, so the signature has to be:
+
+.. code-block:: python3
+
+ def measure(self, intended_duration, intended_load):
+
+Usually, the trial measurement process also needs other values,
+collectively caller a traffic profile. User (the manager instance)
+is responsible for initiating the measurer instance accordingly.
+Also, the manager is supposed to set up SUT, traffic generator,
+and any other component that can affect the result.
+
+For specific input and output objects see the example below.
+
+Example
+_______
+
+This is a minimal example showing every configuration attribute.
+The measurer does not interact with any real SUT,
+it simulates a SUT that is able to forward exactly one million packets
+per second (unidirectional traffic only),
+not one packet more (fully deterministic).
+In these conditions, the conditional throughput for PDR
+happens to be accurate within one packet per second.
+
+This is the screen capture of interactive python interpreter
+(wrapped so long lines are readable):
+
+.. code-block:: python3
+
+ >>> import dataclasses
+ >>> from MLRsearch import (
+ ... AbstractMeasurer, Config, MeasurementResult,
+ ... MultipleLossRatioSearch, SearchGoal,
+ ... )
+ >>>
+ >>> class Hard1MppsMeasurer(AbstractMeasurer):
+ ... def measure(self, intended_duration, intended_load):
+ ... sent = int(intended_duration * intended_load)
+ ... received = min(sent, int(intended_duration * 1e6))
+ ... return MeasurementResult(
+ ... intended_duration=intended_duration,
+ ... intended_load=intended_load,
+ ... offered_count=sent,
+ ... forwarding_count=received,
+ ... )
+ ...
+ >>> def print_dot(_):
+ ... print(".", end="")
+ ...
+ >>> ndr_goal = SearchGoal(
+ ... loss_ratio=0.0,
+ ... exceed_ratio=0.005,
+ ... relative_width=0.005,
+ ... initial_trial_duration=1.0,
+ ... final_trial_duration=1.0,
+ ... duration_sum=21.0,
+ ... preceding_targets=2,
+ ... expansion_coefficient=2,
+ ... )
+ >>> pdr_goal = dataclasses.replace(ndr_goal, loss_ratio=0.005)
+ >>> config = Config(
+ ... goals=[ndr_goal, pdr_goal],
+ ... min_load=1e3,
+ ... max_load=1e9,
+ ... search_duration_max=1.0,
+ ... warmup_duration=None,
+ ... )
+ >>> controller = MultipleLossRatioSearch(config=config)
+ >>> result = controller.search(measurer=Hard1MppsMeasurer(), debug=print_dot)
+ ....................................................................................
+ ....................................................................................
+ ...................>>> print(result)
+ {SearchGoal(loss_ratio=0.0, exceed_ratio=0.005, relative_width=0.005, initial_trial_
+ duration=1.0, final_trial_duration=1.0, duration_sum=21.0, preceding_targets=2, expa
+ nsion_coefficient=2, fail_fast=True): fl=997497.6029392382,s=(gl=21.0,bl=0.0,gs=0.0,
+ bs=0.0), SearchGoal(loss_ratio=0.005, exceed_ratio=0.005, relative_width=0.005, init
+ ial_trial_duration=1.0, final_trial_duration=1.0, duration_sum=21.0, preceding_targe
+ ts=2, expansion_coefficient=2, fail_fast=True): fl=1002508.6747611101,s=(gl=21.0,bl=
+ 0.0,gs=0.0,bs=0.0)}
+ >>> print(f"NDR conditional throughput: {float(result[ndr_goal].conditional_throughp
+ ut)}")
+ NDR conditional throughput: 997497.6029392382
+ >>> print(f"PDR conditional throughput: {float(result[pdr_goal].conditional_throughp
+ ut)}")
+ PDR conditional throughput: 1000000.6730730429
+ >>>
Change log
----------
-0.3.0: Migrated to Python 3.6, small code quality improvements.
+1.2.1: Updated the readme document.
-0.2.0: Optional parameter "doublings" has been added.
+1.2.0: Changed the output structure to use Goal Result as described in draft-05.
-0.1.1: First officially released version.
+1.1.0: Logic improvements, independent selectors, exceed ratio support,
+better width rounding, conditional throughput as output.
+Implementation relies more on dataclasses, code split into smaller files.
+API changed considerably, mainly to avoid long argument lists.
-Usage
------
+0.4.0: Considarable logic improvements, more than two target ratios supported.
+API is not backward compatible with previous versions.
-TODO.
+0.3.0: Migrated to Python 3.6, small code quality improvements.
-Operation logic
----------------
+0.2.0: Optional parameter "doublings" has been added.
-See `IETF draft`_.
+0.1.1: First officially released version.
.. _CSIT: https://wiki.fd.io/view/CSIT
.. _fd.io: https://fd.io/
.. _LFN: https://www.linuxfoundation.org/projects/networking/
-.. _PyPI: https://pypi.org/
-.. _directory: https://gerrit.fd.io/r/gitweb?p=csit.git;a=tree;f=PyPI/MLRsearch;hb=refs/heads/master
-.. _IETF draft: https://tools.ietf.org/html/draft-vpolak-mkonstan-bmwg-mlrsearch
+.. _PyPI: https://pypi.org/project/MLRsearch/
+.. _directory: https://gerrit.fd.io/r/gitweb?p=csit.git;a=tree;f=PyPI/MLRsearch
+.. _IETF draft: https://tools.ietf.org/html/draft-ietf-bmwg-mlrsearch-05
diff --git a/PyPI/MLRsearch/hints_and_todos.txt b/PyPI/MLRsearch/hints_and_todos.txt
new file mode 100644
index 0000000000..ea1f087303
--- /dev/null
+++ b/PyPI/MLRsearch/hints_and_todos.txt
@@ -0,0 +1,7 @@
+toml hint: https://flit.pypa.io/en/stable/pyproject_toml.html
+rst hint: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html
+build hint: https://packaging.python.org/en/latest/tutorials/packaging-projects/
+
+TODO: Include simulator and tests.
+TODO: Test which Python versions is the code actually compatible with.
+TODO: Create a separate webpage for MLRsearch library.
diff --git a/PyPI/MLRsearch/pyproject.toml b/PyPI/MLRsearch/pyproject.toml
new file mode 100644
index 0000000000..c9f705aa74
--- /dev/null
+++ b/PyPI/MLRsearch/pyproject.toml
@@ -0,0 +1,31 @@
+[project]
+name = "MLRsearch"
+version = "1.2.1"
+description = "Library for extending and speeding up througput search."
+license = { file = "LICENSE.txt" }
+readme = { file = "README.rst", content-type = "text/x-rst" }
+requires-python = "~=3.8"
+classifiers = [
+ "Development Status :: 3 - Alpha",
+ "Intended Audience :: Telecommunications Industry",
+ "License :: OSI Approved :: Apache Software License",
+ "Natural Language :: English",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python :: 3.8",
+ "Topic :: System :: Networking",
+]
+keywords = [
+ "binary search", "throughput", "networking", "RFC 2544",
+ "conditional throughput",
+]
+authors = [
+ { name = "Cisco Systems Inc. and/or its affiliates", email = "csit-dev@lists.fd.io" },
+]
+maintainers = [
+ { name = "Vratko Polak", email = "vrpolak@cisco.com" },
+ { name = "Tibor Frank", email = "tifrank@cisco.com" },
+]
+
+[project.urls]
+"Bug Tracker" = "https://jira.fd.io/projects/CSIT/issues"
+"Source" = "https://gerrit.fd.io/r/gitweb?p=csit.git;a=tree;f=PyPI/MLRsearch"
diff --git a/PyPI/MLRsearch/setup.cfg b/PyPI/MLRsearch/setup.cfg
deleted file mode 100644
index b4abd1bd30..0000000000
--- a/PyPI/MLRsearch/setup.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-[metadata]
-# This includes the license file in the wheel.
-license_file = LICENSE.txt
-
-[bdist_wheel]
-# TODO: Make the code work both on Python 2 and 3.
-universal=0
diff --git a/PyPI/MLRsearch/setup.py b/PyPI/MLRsearch/setup.py
deleted file mode 100644
index e64754fc6d..0000000000
--- a/PyPI/MLRsearch/setup.py
+++ /dev/null
@@ -1,50 +0,0 @@
-"""A setup module for setuptools.
-
-See:
-https://packaging.python.org/en/latest/distributing.html
-"""
-
-from setuptools import setup, find_packages
-from os import path
-from io import open
-
-here = path.abspath(path.dirname(__file__))
-with open(path.join(here, u"README.rst"), encoding=u"utf-8") as f:
- long_description = f.read()
-
-setup(
- name=u"MLRsearch",
- version=u"0.3.0", # This is currently the only place listing the version.
- description=u"Library for speeding up binary search using shorter measurements.",
- long_description=long_description,
- long_description_content_type=u"text/x-rst",
- # TODO: Create a separate webpage for MLRsearch library.
- url=u"https://gerrit.fd.io/r/gitweb?p=csit.git;a=tree;f=PyPI/MLRsearch;hb=refs/heads/master",
- author=u"Cisco Systems Inc. and/or its affiliates",
- author_email=u"csit-dev@lists.fd.io",
- classifiers=[
- u"Development Status :: 3 - Alpha",
- u"Intended Audience :: Science/Research",
- u"Intended Audience :: Telecommunications Industry",
- u"License :: OSI Approved :: Apache Software License",
- u"Programming Language :: Python :: 3.6",
- u"Topic :: System :: Networking"
- ],
- keywords=u"binary search throughput networking",
- packages=find_packages(exclude=[]),
- python_requires=u"~=3.6",
- install_requires=[],
- # TODO: Include simulator and tests.
- extras_require={
- },
- package_data={
- },
- entry_points={
- u"console_scripts": [
- ],
- },
- project_urls={
- u"Bug Reports": u"https://jira.fd.io/projects/CSIT/issues",
- u"Source": u"https://gerrit.fd.io/r/gitweb?p=csit.git;a=tree;f=PyPI/MLRsearch;hb=refs/heads/master",
- },
-)
diff --git a/PyPI/jumpavg/MANIFEST.in b/PyPI/jumpavg/MANIFEST.in
deleted file mode 100644
index 58073271d1..0000000000
--- a/PyPI/jumpavg/MANIFEST.in
+++ /dev/null
@@ -1,6 +0,0 @@
-
-# Include the README
-include README.rst
-
-# Include the license file
-include LICENSE.txt
diff --git a/PyPI/jumpavg/README.rst b/PyPI/jumpavg/README.rst
index 3161988f69..b6b502c62b 100644
--- a/PyPI/jumpavg/README.rst
+++ b/PyPI/jumpavg/README.rst
@@ -4,34 +4,71 @@ Jumpavg library
Origins
-------
-This library was developed as anomaly detection logic
-for PAL_ (Presentation and Analysis Layer)
-of CSIT_ (Continuous System and Integration Testing)
-project of fd.io_ (Fast Data), one of LFN_
-(Linux Foundation Networking) projects.
+This library was developed as anomaly detection logic for "PAL" component
+of CSIT_ (Continuous System and Integration Testing) project
+of fd.io_ ("Fast Data"), one of LFN_ (Linux Foundation Networking) projects.
+Currently still being primarily used in PAL's successor: CSIT-DASH_.
In order to make this code available in PyPI_ (Python Package Index),
-the setuputils stuff has been added,
-and the code has been moved into a separate directory_,
-in order to not intervere of otherwise tightly coupled CSIT code.
+the setuputils stuff (later converted to pyproject.toml) has been added,
+but after some discussion, that directory_ ended up having
+only a symlink to the original place of tightly coupled CSIT code.
Usage
-----
-TODO.
+High level description
+______________________
+
+The main method is "classify", which partitions the input sequence of values
+into consecutive "groups", so that standard deviation of samples within a group
+is small.
+
+The design decisions that went into the final algorithm are heavily influenced
+by typical results seen in CSIT testing, so it is better to read about
+the inner workings of the classification procedure in CSIT documentation,
+especially the Minimum Description Length sub-chapter of `trend analysis`_.
+
+Example
+_______
+
+A very basic example, showing some inputs and the structure of output.
+The output is a single line, here shown wrapped for readability.
+
+.. code-block:: python3
+
+ >>> from jumpavg import classify
+ >>> classify(values=[2.1, 3.1, 3.2], unit=0.1)
+ BitCountingGroupList(max_value=3.2, unit=0.1, group_list=[BitCountingGroup(run_list=
+ [2.1], max_value=3.2, unit=0.1, comment='normal', prev_avg=None, stats=AvgStdevStats
+ (size=1, avg=2.1, stdev=0.0), cached_bits=6.044394119358453), BitCountingGroup(run_l
+ ist=[3.1, 3.2], max_value=3.2, unit=0.1, comment='progression', prev_avg=2.1, stats=
+ AvgStdevStats(size=2, avg=3.1500000000000004, stdev=0.050000000000000044), cached_bi
+ ts=10.215241265313393)], bits_except_last=6.044394119358453)
Change log
----------
-TODO: Move into separate file?
+0.4.2: Should no longer divide by zero on empty inputs.
+
+0.4.1: Fixed bug of not penalizing large stdev enough (at all for size 2 stats).
+
+0.4.0: Added "unit" and "sbps" parameters so information content
+is reasonable even if sample values are below one.
+
+0.3.0: Considerable speedup by avoiding unneeded copy. Dataclasses used.
+Mostly API compatible, but repr looks different.
+
+0.2.0: API incompatible changes. Targeted to Python 3 now.
0.1.3: Changed stdev computation to avoid negative variance due to rounding errors.
0.1.2: First version published in PyPI.
-.. _PAL: https://wiki.fd.io/view/CSIT/Design_Optimizations#Presentation_and_Analytics_Layer
.. _CSIT: https://wiki.fd.io/view/CSIT
+.. _CSIT-DASH: https://csit.fd.io
+.. _directory: https://gerrit.fd.io/r/gitweb?p=csit.git;a=tree;f=PyPI/jumpavg
.. _fd.io: https://fd.io/
.. _LFN: https://www.linuxfoundation.org/projects/networking/
.. _PyPI: https://pypi.org/
-.. _directory: https://gerrit.fd.io/r/gitweb?p=csit.git;a=tree;f=PyPI/jumpavg;hb=refs/heads/master
+.. _trend analysis: https://csit.fd.io/cdocs/methodology/trending/analysis/#trend-analysis
diff --git a/PyPI/jumpavg/hints_and_todos.txt b/PyPI/jumpavg/hints_and_todos.txt
new file mode 100644
index 0000000000..e829efa921
--- /dev/null
+++ b/PyPI/jumpavg/hints_and_todos.txt
@@ -0,0 +1,7 @@
+toml hint: https://flit.pypa.io/en/stable/pyproject_toml.html
+rst hint: https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html
+build hint: https://packaging.python.org/en/latest/tutorials/packaging-projects/
+
+TODO: Include simulator and tests.
+TODO: Test which Python versions is the code actually compatible with.
+TODO: Create a separate webpage for jumpavg library.
diff --git a/PyPI/jumpavg/pyproject.toml b/PyPI/jumpavg/pyproject.toml
new file mode 100644
index 0000000000..8aa906c4c3
--- /dev/null
+++ b/PyPI/jumpavg/pyproject.toml
@@ -0,0 +1,28 @@
+[project]
+name = "jumpavg"
+version = "0.4.2"
+description = "Library for locating changes in time series by grouping results."
+license = { file = "LICENSE.txt" }
+readme = { file = "README.rst", content-type = "text/x-rst" }
+requires-python = ">=3.8"
+classifiers = [
+ "Development Status :: 3 - Alpha",
+ "Intended Audience :: Science/Research",
+ "License :: OSI Approved :: Apache Software License",
+ "Natural Language :: English",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python :: 3.8",
+ "Topic :: Scientific/Engineering :: Information Analysis",
+]
+keywords = ["progression", "regression", "anomaly detection", "statistics", "bits" ]
+authors = [
+ { name = "Cisco Systems Inc. and/or its affiliates", email = "csit-dev@lists.fd.io" },
+]
+maintainers = [
+ { name = "Vratko Polak", email = "vrpolak@cisco.com" },
+ { name = "Tibor Frank", email = "tifrank@cisco.com" },
+]
+
+[project.urls]
+"Bug Tracker" = "https://jira.fd.io/projects/CSIT/issues"
+"Source" = "https://gerrit.fd.io/r/gitweb?p=csit.git;a=tree;f=PyPI/jumpavg"
diff --git a/PyPI/jumpavg/setup.cfg b/PyPI/jumpavg/setup.cfg
deleted file mode 100644
index b4abd1bd30..0000000000
--- a/PyPI/jumpavg/setup.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-[metadata]
-# This includes the license file in the wheel.
-license_file = LICENSE.txt
-
-[bdist_wheel]
-# TODO: Make the code work both on Python 2 and 3.
-universal=0
diff --git a/PyPI/jumpavg/setup.py b/PyPI/jumpavg/setup.py
deleted file mode 100644
index 28ddfcf0b1..0000000000
--- a/PyPI/jumpavg/setup.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python3
-
-"""A setup module for setuptools.
-
-See:
-https://packaging.python.org/en/latest/distributing.html
-"""
-
-from setuptools import (setup, find_packages)
-from os import path
-from io import open
-
-here = path.abspath(path.dirname(__file__))
-with open(path.join(here, u"README.rst"), encoding=u"utf-8") as f:
- long_description = f.read()
-
-setup(
- name=u"jumpavg",
- version=u"0.2.0", # This is currently the only place listing the version.
- description=(
- u"Library for locating changes in time series by grouping results."
- ),
- long_description=long_description,
- long_description_content_type=u"text/x-rst",
- # TODO: Create a separate webpage for jumpavg library.
- url=(
- u"https://gerrit.fd.io/r/gitweb?p=csit.git;a=tree;f=PyPI/jumpavg"
- u";hb=refs/heads/master"
- ),
- author=u"Cisco Systems Inc. and/or its affiliates",
- author_email=u"csit-dev@lists.fd.io",
- classifiers=[
- u"Development Status :: 3 - Alpha",
- u"Intended Audience :: Science/Research",
- # Pick your license as you wish
- u"License :: OSI Approved :: Apache Software License",
- u"Natural Language :: English",
- # TODO: Test which Python versions is the code compatible with.
- u"Programming Language :: Python :: 2.7",
- u"Topic :: Scientific/Engineering :: Information Analysis"
- ],
- keywords=u"progression regression anomaly detection statistics bits",
- packages=find_packages(exclude=[]),
- python_requires="~=3.6",
- install_requires=[],
- # TODO: Include simulator and tests.
- extras_require={
- },
- package_data={
- },
- entry_points={
- u"console_scripts": [
- ],
- },
- project_urls={
- u"Bug Reports": u"https://jira.fd.io/projects/CSIT/issues",
- u"Source": (
- u"https://gerrit.fd.io/r/gitweb?p=csit.git;a=tree;f=PyPI/jumpavg"
- u";hb=refs/heads/master"
- ),
- },
-)
diff --git a/README.md b/README.md
index 5b7d2353ef..9ce14baf66 100644
--- a/README.md
+++ b/README.md
@@ -5,13 +5,8 @@
1. [Tests](#tests)
1. [Keywords](#keywords)
1. [Other Resources](#other-resources)
-1. [Quickstart](#quick-start)
- 1. [Vagrant](#vagrant)
- 1. [Physical Testbed](#physical-testbed)
-1. [Report](#report)
-1. [Trending](#trending)
-1. [Code Documentation](#code-documentation)
-1. [Coding Guidelines](#coding-guidelines)
+1. [CSIT Interactive Dashboard](#csit-interactive-dashboard)
+1. [CSIT Documentation](#csit-documentation)
## Architecture
@@ -28,59 +23,6 @@ of the hierarchy, presentation level at the top level and a number of functional
layers in-between. The current CSIT system design including CSIT framework is
depicted in the figure below.
-![csit design](docs/report/csit_framework_documentation/csit_design_picture.svg "CSIT architecture")
-
-A brief bottom-up description is provided here:
-
-1. SUTs, DUTs, TGs
- - SUTs - Systems Under Test;
- - DUTs - Devices Under Test;
- - TGs - Traffic Generators;
-1. Level-1 libraries - Robot and Python
- - Lowest level CSIT libraries abstracting underlying test environment, SUT,
- DUT and TG specifics;
- - Used commonly across multiple L2 KWs;
- - Performance and functional tests:
- - L1 KWs (KeyWords) are implemented as RF libraries and Python
- libraries;
- - Performance TG L1 KWs:
- - All L1 KWs are implemented as Python libraries:
- - Support for TRex only today;
- - Performance data plane traffic profiles:
- - TG-specific stream profiles provide full control of:
- - Packet definition – layers, MACs, IPs, ports, combinations thereof
- e.g. IPs and UDP ports;
- - Stream definitions - different streams can run together, delayed,
- one after each other;
- - Stream profiles are independent of CSIT framework and can be used
- in any T-rex setup, can be sent anywhere to repeat tests with
- exactly the same setup;
- - Easily extensible – one can create a new stream profile that meets
- tests requirements;
- - Same stream profile can be used for different tests with the same
- traffic needs;
- - Functional data plane traffic scripts:
- - Scapy specific traffic scripts;
-1. Level-2 libraries - Robot resource files
- - Higher level CSIT libraries abstracting required functions for executing
- tests;
- - L2 KWs are classified into the following functional categories:
- - Configuration, test, verification, state report;
- - Suite setup, suite teardown;
- - Test setup, test teardown;
-1. Tests - Robot
- - Device tests using containerized environment with SR-IOV access to a NIC;
- - VPP;
- - Performance tests using physical testbed environment:
- - VPP;
- - DPDK-Testpmd;
- - DPDK-L3Fwd;
- - Tools:
- - Documentation generator;
- - Report generator;
- - Testbed environment setup ansible playbooks;
- - Operational debugging scripts;
-
## Directory Structure
### Tests
@@ -89,8 +31,9 @@ A brief bottom-up description is provided here:
.
└── tests
   ├── dpdk
-    │   ├── dpdk_scripts # DPDK helper scripts
   │   └── perf # DPDK performance tests
+    ├── trex
+    │   └── perf # TRex performance tests
   └── vpp
   ├── device # VPP device tests
   └── perf # VPP performance tests
@@ -115,60 +58,39 @@ resources
```
.
+│── csit.infra.dash # CDash code
+│── csit.infra.etl # ETL pipeline code
+│── csit.infra.hugo # CDocs local provisioning
+│── csit.infra.vagrant # VPP device vagrant environment
├── docs # Main documentaion
+|── fdio.infra.ansible # Infrastructure provisioning
+|── fdio.infra.packer # Infrastructure provisioning
+|── fdio.infra.pxe # Preboot eXecution Environment
+|── fdio.infra.terraform # Virtual infrastructure provisioning
+|── GPL # Files licensed under GPL
+│   ├── traffic_profiles # Performance tests traffic profiles
+│   └── traffic_scripts # Functional tests traffic profiles
├── PyPI # PyPI packages provided by CSIT
│   ├── jumpavg
│   └── MLRsearch
├── resources
+│   ├── api # API coverage
+│   ├── job_specs # Test selection for jenkins job execution
+│   ├── model_schema # Test results model schema
│   ├── templates # Templates (vpp_api_test, kubernetes, ...)
│   ├── test_data # Robot Test configuration
│   ├── tools
-│   │   ├── disk-image-builder # Utilities for building (DCR, VM) images
-│   │   ├── doc_gen # Code documentation generator
-│   │   ├── papi # PAPI driver
-│   │   ├── presentation # Report generator
-│   │   ├── scripts # Various tools
-│   │   ├── testbed-setup # Physical testbed setup scripts
-│   │   ├── topology # Helper scripts for topology manipulation
-│   │   ├── trex # TRex driver
-│   │   └── vagrant # VPP device vagrant environment
+│   │   └── papi # PAPI driver
│   ├── topology_schemas
-│   ├── traffic_profiles # Performance tests traffic profiles
-│   │   └── trex
-│   └── traffic_scripts # Functional tests traffic profiles
-│   ├── dhcp
-│   └── lisp
└── topologies # Linux Foundation topology files
├── available
└── enabled
```
-## Quickstart
-
-### Vagrant
-
-[Vagrant environment preparation](docs/testing_in_vagrant.rst) documentaion is
-describing local VPP Device functional testing.
-
-### Physical Testbed
-
-[Physical testbed preparation](resources/tools/testbed-setup/README.rst)
-documentation is describing PXE and Ansible setup process. All the software
-requirements for running Performance Teste are part of Ansible playbooks.
-
-## Report
-
-[CSIT Report](https://docs.fd.io/csit/master/report/).
-
-## Trending
-
-[CSIT Trending](https://docs.fd.io/csit/master/trending/).
-
-## Code Documentation
+### CSIT Interactive Dashboard
-[CSIT Code Documentation](https://docs.fd.io/csit/master/doc/).
+[CDash](https://csit.fd.io).
-## Coding Guidelines
+### CSIT Documentation
-If you are interested in contributing, please see the
-[coding guidelines](docs/test_code_guidelines.rst).
+[CDocs](https://csit.fd.io/cdocs/).
diff --git a/VPP_DEVICE_IMAGE_CENTOS b/VPP_DEVICE_IMAGE_CENTOS
deleted file mode 100644
index 4b3e92939d..0000000000
--- a/VPP_DEVICE_IMAGE_CENTOS
+++ /dev/null
@@ -1 +0,0 @@
-snergster/vpp-centos:latest
diff --git a/VPP_DEVICE_IMAGE_UBUNTU b/VPP_DEVICE_IMAGE_UBUNTU
deleted file mode 100644
index 0ffa7ee810..0000000000
--- a/VPP_DEVICE_IMAGE_UBUNTU
+++ /dev/null
@@ -1 +0,0 @@
-csit_sut-ubuntu1804:local
diff --git a/VPP_DEVICE_IMAGE_UBUNTU_ARM b/VPP_DEVICE_IMAGE_UBUNTU_ARM
deleted file mode 100644
index e0a799272f..0000000000
--- a/VPP_DEVICE_IMAGE_UBUNTU_ARM
+++ /dev/null
@@ -1 +0,0 @@
-csit_dut-ubuntu1804:local
diff --git a/VPP_DEVICE_IMAGE_UBUNTU_JAMMY b/VPP_DEVICE_IMAGE_UBUNTU_JAMMY
new file mode 100644
index 0000000000..0531111878
--- /dev/null
+++ b/VPP_DEVICE_IMAGE_UBUNTU_JAMMY
@@ -0,0 +1 @@
+csit_sut-ubuntu2204:local \ No newline at end of file
diff --git a/VPP_DEVICE_IMAGE_UBUNTU_JAMMY_ARM b/VPP_DEVICE_IMAGE_UBUNTU_JAMMY_ARM
new file mode 100644
index 0000000000..5ef36ca057
--- /dev/null
+++ b/VPP_DEVICE_IMAGE_UBUNTU_JAMMY_ARM
@@ -0,0 +1 @@
+csit_sut-ubuntu2204:local
diff --git a/VPP_STABLE_VER_CENTOS b/VPP_STABLE_VER_CENTOS
deleted file mode 100644
index 1d197541b7..0000000000
--- a/VPP_STABLE_VER_CENTOS
+++ /dev/null
@@ -1 +0,0 @@
-21.06-rc0~77_g35ef86567~b542
diff --git a/VPP_STABLE_VER_UBUNTU_BIONIC b/VPP_STABLE_VER_UBUNTU_BIONIC
deleted file mode 100644
index ec30f870a9..0000000000
--- a/VPP_STABLE_VER_UBUNTU_BIONIC
+++ /dev/null
@@ -1 +0,0 @@
-21.06-rc0~77-g35ef86567
diff --git a/VPP_STABLE_VER_UBUNTU_JAMMY b/VPP_STABLE_VER_UBUNTU_JAMMY
new file mode 100644
index 0000000000..77e9178745
--- /dev/null
+++ b/VPP_STABLE_VER_UBUNTU_JAMMY
@@ -0,0 +1 @@
+24.06-rc0~189-ga1d20405b \ No newline at end of file
diff --git a/csit.infra.dash/Dockerfile b/csit.infra.dash/Dockerfile
new file mode 100644
index 0000000000..8ed03a6d97
--- /dev/null
+++ b/csit.infra.dash/Dockerfile
@@ -0,0 +1,12 @@
+ARG PYTHON_VERSION=3.11
+FROM python:${PYTHON_VERSION}-buster
+
+WORKDIR /var/app/current
+
+COPY ./app/requirements.txt .
+
+RUN pip3 install -r requirements.txt
+
+EXPOSE 5000
+
+CMD [ "uwsgi", "app.ini" ] \ No newline at end of file
diff --git a/csit.infra.dash/app/.ebextensions/cron-linux.config b/csit.infra.dash/app/.ebextensions/cron-linux.config
new file mode 100644
index 0000000000..eb114d072d
--- /dev/null
+++ b/csit.infra.dash/app/.ebextensions/cron-linux.config
@@ -0,0 +1,14 @@
+files:
+ "/etc/cron.d/mycron":
+ mode: "000644"
+ owner: root
+ group: root
+ content: |
+ SHELL=/bin/bash
+ PATH=/sbin:/bin:/usr/sbin:/usr/bin
+ MAILTO=root
+ 30 2 * * * root /bin/echo 'c' > /tmp/masterfifo
+
+commands:
+ remove_old_cron:
+ command: "rm -f /etc/cron.d/mycron.bak" \ No newline at end of file
diff --git a/csit.infra.dash/app/.ebextensions/env-flask.config b/csit.infra.dash/app/.ebextensions/env-flask.config
new file mode 100644
index 0000000000..f7ae7c500c
--- /dev/null
+++ b/csit.infra.dash/app/.ebextensions/env-flask.config
@@ -0,0 +1,4 @@
+option_settings:
+ aws:elasticbeanstalk:application:environment:
+ FLASK_DEBUG: 0
+ FLASK_ENV: production \ No newline at end of file
diff --git a/csit.infra.dash/app/.ebextensions/packages.config b/csit.infra.dash/app/.ebextensions/packages.config
new file mode 100644
index 0000000000..fc77f158b6
--- /dev/null
+++ b/csit.infra.dash/app/.ebextensions/packages.config
@@ -0,0 +1,3 @@
+packages:
+ yum:
+ gcc-c++: [] \ No newline at end of file
diff --git a/csit.infra.dash/app/Procfile b/csit.infra.dash/app/Procfile
new file mode 100644
index 0000000000..c79d502390
--- /dev/null
+++ b/csit.infra.dash/app/Procfile
@@ -0,0 +1 @@
+uwsgi: uwsgi app.ini
diff --git a/csit.infra.dash/app/app.ini b/csit.infra.dash/app/app.ini
new file mode 100644
index 0000000000..8f41a1db7b
--- /dev/null
+++ b/csit.infra.dash/app/app.ini
@@ -0,0 +1,30 @@
+[uwsgi]
+ini = :cdash
+py-autoreload = 0
+static-index = index.html
+static-map = /cdocs/=/var/app/current/cdocs/
+
+[cdash]
+strict = true
+master = true
+enable-threads = true
+single-interpreter = true
+
+module = wsgi:app
+master-fifo = /tmp/masterfifo
+lazy = True
+lazy-apps = true
+touch-chain-reload
+listen = 128
+http-socket = :5000
+socket = /tmp/app.sock
+chmod-socket = 666
+stats = :5001
+
+disable-logging = true
+log-4xx = true
+log-5xx = true
+
+workers = 1
+threads = 8
+plugin = python3
diff --git a/csit.infra.dash/app/cdash/__init__.py b/csit.infra.dash/app/cdash/__init__.py
new file mode 100644
index 0000000000..3d3f2001a3
--- /dev/null
+++ b/csit.infra.dash/app/cdash/__init__.py
@@ -0,0 +1,144 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Initialize Flask app.
+"""
+
+import logging
+import pandas as pd
+
+from flask import Flask
+from flask_assets import Environment, Bundle
+
+from .utils.constants import Constants as C
+from .data.data import Data
+
+
+def init_app():
+ """Construct core Flask application with embedded Dash app.
+ """
+ logging.basicConfig(
+ format=C.LOG_FORMAT,
+ datefmt=C.LOG_DATE_FORMAT,
+ level=C.LOG_LEVEL
+ )
+
+ app = Flask(__name__, instance_relative_config=False)
+ app.logger.info("Application started.")
+ app.config.from_object("config.Config")
+
+ with app.app_context():
+ # Import parts of our core Flask app.
+ from . import routes
+
+ assets = Environment()
+ assets.init_app(app)
+
+ # Compile static assets.
+ sass_bundle = Bundle(
+ "sass/lux.scss",
+ filters="libsass",
+ output="dist/css/bootstrap.css",
+ depends="**/*.scss",
+ extra={
+ "rel": "stylesheet"
+ }
+ )
+ assets.register("sass_all", sass_bundle)
+ sass_bundle.build()
+
+ if C.TIME_PERIOD is None or C.TIME_PERIOD > C.MAX_TIME_PERIOD:
+ time_period = C.MAX_TIME_PERIOD
+ else:
+ time_period = C.TIME_PERIOD
+
+ data = Data(
+ data_spec_file=C.DATA_SPEC_FILE,
+ ).read_all_data(days=time_period)
+
+ # Import Dash applications.
+ logging.info("\n\nStarting the applications:\n" + "-" * 26 + "\n")
+ if data["statistics"].empty or data["trending"].empty:
+ logging.error(
+ f'"{C.NEWS_TITLE}" application not loaded, no data available.'
+ )
+ logging.error(
+ f'"{C.STATS_TITLE}" application not loaded, no data available.'
+ )
+ else:
+ logging.info(C.NEWS_TITLE)
+ from .news.news import init_news
+ app = init_news(
+ app,
+ data_stats=data["statistics"],
+ data_trending=data["trending"]
+ )
+
+ logging.info(C.STATS_TITLE)
+ from .stats.stats import init_stats
+ app = init_stats(
+ app,
+ data_stats=data["statistics"],
+ data_trending=data["trending"]
+ )
+
+ if data["trending"].empty:
+ logging.error(
+ f'"{C.TREND_TITLE}" application not loaded, no data available.'
+ )
+ else:
+ logging.info(C.TREND_TITLE)
+ from .trending.trending import init_trending
+ app = init_trending(app, data_trending=data["trending"])
+
+ if data["iterative"].empty:
+ logging.error(
+ f'"{C.REPORT_TITLE}" application not loaded, no data available.'
+ )
+ logging.error(
+ f'"{C.COMP_TITLE}" application not loaded, no data available.'
+ )
+ else:
+ logging.info(C.REPORT_TITLE)
+ from .report.report import init_report
+ app = init_report(app, data_iterative=data["iterative"])
+
+ logging.info(C.COMP_TITLE)
+ from .comparisons.comparisons import init_comparisons
+ app = init_comparisons(app, data_iterative=data["iterative"])
+
+ if data["coverage"].empty:
+ logging.error((
+ f'"{C.COVERAGE_TITLE}" application not loaded, '
+ 'no data available.'
+ ))
+ else:
+ logging.info(C.COVERAGE_TITLE)
+ from .coverage.coverage import init_coverage
+ app = init_coverage(app, data_coverage=data["coverage"])
+
+ if all((data["trending"].empty, data["iterative"].empty,
+ data["coverage"].empty)):
+ logging.error((
+ f'"{C.SEARCH_TITLE}" application not loaded, '
+ 'no data available.'
+ ))
+ else:
+ logging.info(C.SEARCH_TITLE)
+ from .search.search import init_search
+ app = init_search(app, data)
+
+ return app
+
+
+app = init_app()
diff --git a/csit.infra.dash/app/cdash/comparisons/__init__.py b/csit.infra.dash/app/cdash/comparisons/__init__.py
new file mode 100644
index 0000000000..c6a5f639fe
--- /dev/null
+++ b/csit.infra.dash/app/cdash/comparisons/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
diff --git a/csit.infra.dash/app/cdash/comparisons/comparisons.py b/csit.infra.dash/app/cdash/comparisons/comparisons.py
new file mode 100644
index 0000000000..f2cda8138b
--- /dev/null
+++ b/csit.infra.dash/app/cdash/comparisons/comparisons.py
@@ -0,0 +1,53 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Instantiate the Report Dash application.
+"""
+
+import dash
+import pandas as pd
+
+from ..utils.constants import Constants as C
+from .layout import Layout
+
+
+def init_comparisons(
+ server,
+ data_iterative: pd.DataFrame
+ ) -> dash.Dash:
+ """Create a Plotly Dash dashboard.
+
+ :param server: Flask server.
+ :type server: Flask
+ :returns: Dash app server.
+ :rtype: Dash
+ """
+
+ dash_app = dash.Dash(
+ server=server,
+ routes_pathname_prefix=C.COMP_ROUTES_PATHNAME_PREFIX,
+ external_stylesheets=C.EXTERNAL_STYLESHEETS,
+ title=C.COMP_TITLE
+ )
+
+ layout = Layout(
+ app=dash_app,
+ data_iterative=data_iterative,
+ html_layout_file=C.HTML_LAYOUT_FILE,
+ graph_layout_file=C.REPORT_GRAPH_LAYOUT_FILE,
+ tooltip_file=C.TOOLTIP_FILE
+ )
+ dash_app.index_string = layout.html_layout
+ dash_app.layout = layout.add_content()
+
+ return dash_app.server
diff --git a/csit.infra.dash/app/cdash/comparisons/layout.py b/csit.infra.dash/app/cdash/comparisons/layout.py
new file mode 100644
index 0000000000..3aa32399cf
--- /dev/null
+++ b/csit.infra.dash/app/cdash/comparisons/layout.py
@@ -0,0 +1,1339 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Plotly Dash HTML layout override.
+"""
+
+
+import logging
+import pandas as pd
+import dash_bootstrap_components as dbc
+
+from flask import Flask
+from dash import dcc, html, dash_table, callback_context, no_update, ALL
+from dash import Input, Output, State
+from dash.exceptions import PreventUpdate
+from dash.dash_table.Format import Format, Scheme
+from ast import literal_eval
+from yaml import load, FullLoader, YAMLError
+from copy import deepcopy
+
+from ..utils.constants import Constants as C
+from ..utils.control_panel import ControlPanel
+from ..utils.trigger import Trigger
+from ..utils.url_processing import url_decode
+from ..utils.utils import generate_options, gen_new_url, navbar_report, \
+ filter_table_data, sort_table_data, show_iterative_graph_data, show_tooltip
+from .tables import comparison_table
+from ..report.graphs import graph_iterative
+
+
+# Control panel partameters and their default values.
+CP_PARAMS = {
+ "dut-val": str(),
+ "dutver-opt": list(),
+ "dutver-dis": True,
+ "dutver-val": str(),
+ "infra-opt": list(),
+ "infra-dis": True,
+ "infra-val": str(),
+ "core-opt": list(),
+ "core-val": list(),
+ "frmsize-opt": list(),
+ "frmsize-val": list(),
+ "ttype-opt": list(),
+ "ttype-val": list(),
+ "cmp-par-opt": list(),
+ "cmp-par-dis": True,
+ "cmp-par-val": str(),
+ "cmp-val-opt": list(),
+ "cmp-val-dis": True,
+ "cmp-val-val": str(),
+ "normalize-val": list(),
+ "outliers-val": list()
+}
+
+# List of comparable parameters.
+CMP_PARAMS = {
+ "dutver": "Release and Version",
+ "infra": "Infrastructure",
+ "frmsize": "Frame Size",
+ "core": "Number of Cores",
+ "ttype": "Measurement"
+}
+
+
+class Layout:
+ """The layout of the dash app and the callbacks.
+ """
+
+ def __init__(
+ self,
+ app: Flask,
+ data_iterative: pd.DataFrame,
+ html_layout_file: str,
+ graph_layout_file: str,
+ tooltip_file: str
+ ) -> None:
+ """Initialization:
+ - save the input parameters,
+ - prepare data for the control panel,
+ - read HTML layout file,
+ - read graph layout file,
+ - read tooltips from the tooltip file.
+
+ :param app: Flask application running the dash application.
+ :param data_iterative: Iterative data to be used in comparison tables.
+ :param html_layout_file: Path and name of the file specifying the HTML
+ layout of the dash application.
+ :param tooltip_file: Path and name of the yaml file specifying the
+ tooltips.
+ :param graph_layout_file: Path and name of the file with layout of
+ plot.ly graphs.
+ :type app: Flask
+ :type data_iterative: pandas.DataFrame
+ :type html_layout_file: str
+ :type graph_layout_file: str
+ :type tooltip_file: str
+ """
+
+ # Inputs
+ self._app = app
+ self._data = data_iterative
+ self._html_layout_file = html_layout_file
+ self._graph_layout_file = graph_layout_file
+ self._tooltip_file = tooltip_file
+
+ # Get structure of tests:
+ tbs = dict()
+ cols = [
+ "job", "test_id", "test_type", "dut_type", "dut_version", "tg_type",
+ "release", "passed"
+ ]
+ for _, row in self._data[cols].drop_duplicates().iterrows():
+ lst_job = row["job"].split("-")
+ dut = lst_job[1]
+ dver = f"{row['release']}-{row['dut_version']}"
+ tbed = "-".join(lst_job[-2:])
+ lst_test_id = row["test_id"].split(".")
+
+ suite = lst_test_id[-2].replace("2n1l-", "").replace("1n1l-", "").\
+ replace("2n-", "")
+ test = lst_test_id[-1]
+ nic = suite.split("-")[0]
+ for driver in C.DRIVERS:
+ if driver in test:
+ drv = driver.replace("-", "_")
+ test = test.replace(f"{driver}-", "")
+ break
+ else:
+ drv = "dpdk"
+ infra = "-".join((tbed, nic, drv))
+ lst_test = test.split("-")
+ fsize = lst_test[0]
+ core = lst_test[1] if lst_test[1] else "8C"
+
+ if tbs.get(dut, None) is None:
+ tbs[dut] = dict()
+ if tbs[dut].get(dver, None) is None:
+ tbs[dut][dver] = dict()
+ if tbs[dut][dver].get(infra, None) is None:
+ tbs[dut][dver][infra] = dict()
+ tbs[dut][dver][infra]["core"] = list()
+ tbs[dut][dver][infra]["fsize"] = list()
+ tbs[dut][dver][infra]["ttype"] = list()
+ if core.upper() not in tbs[dut][dver][infra]["core"]:
+ tbs[dut][dver][infra]["core"].append(core.upper())
+ if fsize.upper() not in tbs[dut][dver][infra]["fsize"]:
+ tbs[dut][dver][infra]["fsize"].append(fsize.upper())
+ if row["test_type"] == "mrr":
+ if "MRR" not in tbs[dut][dver][infra]["ttype"]:
+ tbs[dut][dver][infra]["ttype"].append("MRR")
+ elif row["test_type"] == "ndrpdr":
+ if "NDR" not in tbs[dut][dver][infra]["ttype"]:
+ tbs[dut][dver][infra]["ttype"].extend(
+ ("NDR", "PDR", "Latency")
+ )
+ elif row["test_type"] == "hoststack" and \
+ row["tg_type"] in ("iperf", "vpp"):
+ if "BPS" not in tbs[dut][dver][infra]["ttype"]:
+ tbs[dut][dver][infra]["ttype"].append("BPS")
+ elif row["test_type"] == "hoststack" and row["tg_type"] == "ab":
+ if "CPS" not in tbs[dut][dver][infra]["ttype"]:
+ tbs[dut][dver][infra]["ttype"].extend(("CPS", "RPS", ))
+ self._tbs = tbs
+
+ # Read from files:
+ self._html_layout = str()
+ try:
+ with open(self._html_layout_file, "r") as file_read:
+ self._html_layout = file_read.read()
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._html_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._graph_layout_file, "r") as file_read:
+ self._graph_layout = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._graph_layout_file}\n"
+ f"{err}"
+ )
+ except YAMLError as err:
+ raise RuntimeError(
+ f"An error occurred while parsing the specification file "
+ f"{self._graph_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._tooltip_file, "r") as file_read:
+ self._tooltips = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ logging.warning(
+ f"Not possible to open the file {self._tooltip_file}\n{err}"
+ )
+ except YAMLError as err:
+ logging.warning(
+ f"An error occurred while parsing the specification file "
+ f"{self._tooltip_file}\n{err}"
+ )
+
+ # Callbacks:
+ if self._app is not None and hasattr(self, "callbacks"):
+ self.callbacks(self._app)
+
+ @property
+ def html_layout(self):
+ return self._html_layout
+
+ def add_content(self):
+ """Top level method which generated the web page.
+
+ It generates:
+ - Store for user input data,
+ - Navigation bar,
+ - Main area with control panel and ploting area.
+
+ If no HTML layout is provided, an error message is displayed instead.
+
+ :returns: The HTML div with the whole page.
+ :rtype: html.Div
+ """
+
+ if self.html_layout and self._tbs:
+ return html.Div(
+ id="div-main",
+ className="small",
+ children=[
+ dbc.Row(
+ id="row-navbar",
+ class_name="g-0",
+ children=[navbar_report((False, True, False, False)), ]
+ ),
+ dbc.Row(
+ id="row-main",
+ class_name="g-0",
+ children=[
+ dcc.Store(id="store-control-panel"),
+ dcc.Store(id="store-selected"),
+ dcc.Store(id="store-table-data"),
+ dcc.Store(id="store-filtered-table-data"),
+ dcc.Location(id="url", refresh=False),
+ self._add_ctrl_col(),
+ self._add_plotting_col()
+ ]
+ ),
+ dbc.Spinner(
+ dbc.Offcanvas(
+ class_name="w-75",
+ id="offcanvas-details",
+ title="Test Details",
+ placement="end",
+ is_open=False,
+ children=[]
+ ),
+ delay_show=C.SPINNER_DELAY
+ ),
+ dbc.Spinner(
+ dbc.Offcanvas(
+ class_name="w-50",
+ id="offcanvas-metadata",
+ title="Detailed Information",
+ placement="end",
+ is_open=False,
+ children=[
+ dbc.Row(id="metadata-tput-lat"),
+ dbc.Row(id="metadata-hdrh-graph")
+ ]
+ ),
+ delay_show=C.SPINNER_DELAY
+ ),
+ dbc.Offcanvas(
+ class_name="w-75",
+ id="offcanvas-documentation",
+ title="Documentation",
+ placement="end",
+ is_open=False,
+ children=html.Iframe(
+ src=C.URL_DOC_REL_NOTES,
+ width="100%",
+ height="100%"
+ )
+ )
+ ]
+ )
+ else:
+ return html.Div(
+ id="div-main-error",
+ children=[
+ dbc.Alert(
+ [
+ "An Error Occured"
+ ],
+ color="danger"
+ )
+ ]
+ )
+
+ def _add_ctrl_col(self) -> dbc.Col:
+ """Add column with controls. It is placed on the left side.
+
+ :returns: Column with the control panel.
+ :rtype: dbc.Col
+ """
+ return dbc.Col([
+ html.Div(
+ children=self._add_ctrl_panel(),
+ className="sticky-top"
+ )
+ ])
+
+ def _add_plotting_col(self) -> dbc.Col:
+ """Add column with plots. It is placed on the right side.
+
+ :returns: Column with plots.
+ :rtype: dbc.Col
+ """
+ return dbc.Col(
+ id="col-plotting-area",
+ children=[
+ dbc.Spinner(
+ children=[
+ dbc.Row(
+ id="plotting-area",
+ class_name="g-0 p-0",
+ children=[
+ C.PLACEHOLDER
+ ]
+ )
+ ]
+ )
+ ],
+ width=9
+ )
+
+ def _add_ctrl_panel(self) -> list:
+ """Add control panel.
+
+ :returns: Control panel.
+ :rtype: list
+ """
+
+ reference = [
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(
+ show_tooltip(self._tooltips, "help-dut", "DUT")
+ ),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "dut"},
+ placeholder="Select a Device under Test...",
+ options=sorted(
+ [
+ {"label": k, "value": k} \
+ for k in self._tbs.keys()
+ ],
+ key=lambda d: d["label"]
+ )
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-csit-dut",
+ "CSIT and DUT Version"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "dutver"},
+ placeholder="Select a CSIT and DUT Version...")
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-infra",
+ "Infra"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "infra"},
+ placeholder=\
+ "Select a Physical Test Bed Topology..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-framesize",
+ "Frame Size"
+ )),
+ dbc.Checklist(
+ id={"type": "ctrl-cl", "index": "frmsize"},
+ inline=True,
+ class_name="ms-2"
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-cores",
+ "Number of Cores"
+ )),
+ dbc.Checklist(
+ id={"type": "ctrl-cl", "index": "core"},
+ inline=True,
+ class_name="ms-2"
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-measurement",
+ "Measurement"
+ )),
+ dbc.Checklist(
+ id={"type": "ctrl-cl", "index": "ttype"},
+ inline=True,
+ class_name="ms-2"
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ )
+ ]
+ )
+ ]
+
+ compare = [
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-cmp-parameter",
+ "Parameter"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "cmpprm"},
+ placeholder="Select a Parameter..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-cmp-value",
+ "Value"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "cmpval"},
+ placeholder="Select a Value..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ )
+ ]
+
+ processing = [
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ children = [
+ dbc.Checklist(
+ id="normalize",
+ options=[{
+ "value": "normalize",
+ "label": "Normalize to 2GHz CPU frequency"
+ }],
+ value=[],
+ inline=True,
+ class_name="ms-2"
+ ),
+ dbc.Checklist(
+ id="outliers",
+ options=[{
+ "value": "outliers",
+ "label": "Remove Extreme Outliers"
+ }],
+ value=[],
+ inline=True,
+ class_name="ms-2"
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ )
+ ]
+ )
+ ]
+
+ return [
+ dbc.Row(
+ dbc.Card(
+ [
+ dbc.CardHeader(
+ html.H5("Reference Value")
+ ),
+ dbc.CardBody(
+ children=reference,
+ class_name="g-0 p-0"
+ )
+ ],
+ color="secondary",
+ outline=True
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.Card(
+ [
+ dbc.CardHeader(
+ html.H5("Compared Value")
+ ),
+ dbc.CardBody(
+ children=compare,
+ class_name="g-0 p-0"
+ )
+ ],
+ color="secondary",
+ outline=True
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.Card(
+ [
+ dbc.CardHeader(
+ html.H5("Data Manipulations")
+ ),
+ dbc.CardBody(
+ children=processing,
+ class_name="g-0 p-0"
+ )
+ ],
+ color="secondary",
+ outline=True
+ ),
+ class_name="g-0 p-1"
+ )
+ ]
+
+ @staticmethod
+ def _get_plotting_area(
+ title: str,
+ table: pd.DataFrame,
+ url: str
+ ) -> list:
+ """Generate the plotting area with all its content.
+
+ :param title: The title of the comparison table.
+ :param table: Comparison table to be displayed.
+ :param url: URL to be displayed in the modal window.
+ :type title: str
+ :type table: pandas.DataFrame
+ :type url: str
+ :returns: List of rows with elements to be displayed in the plotting
+ area.
+ :rtype: list
+ """
+
+ if table.empty:
+ return dbc.Row(
+ dbc.Col(
+ children=dbc.Alert(
+ "No data for comparison.",
+ color="danger"
+ ),
+ class_name="g-0 p-1",
+ ),
+ class_name="g-0 p-0"
+ )
+
+ cols = list()
+ for idx, col in enumerate(table.columns):
+ if idx == 0:
+ cols.append({
+ "name": ["", col],
+ "id": col,
+ "deletable": False,
+ "selectable": False,
+ "type": "text"
+ })
+ else:
+ l_col = col.rsplit(" ", 2)
+ cols.append({
+ "name": [l_col[0], " ".join(l_col[-2:])],
+ "id": col,
+ "deletable": False,
+ "selectable": False,
+ "type": "numeric",
+ "format": Format(precision=2, scheme=Scheme.fixed)
+ })
+
+ return [
+ dbc.Row(
+ children=html.H5(title),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ children=[
+ dbc.Col(
+ children=dash_table.DataTable(
+ id={"type": "table", "index": "comparison"},
+ columns=cols,
+ data=table.to_dict("records"),
+ merge_duplicate_headers=True,
+ editable=False,
+ filter_action="custom",
+ filter_query="",
+ sort_action="custom",
+ sort_mode="multi",
+ selected_columns=[],
+ selected_rows=[],
+ page_action="none",
+ style_cell={"textAlign": "right"},
+ style_cell_conditional=[{
+ "if": {"column_id": "Test Name"},
+ "textAlign": "left"
+ }]
+ ),
+ class_name="g-0 p-1"
+ )
+ ],
+ class_name="g-0 p-0"
+ ),
+ dbc.Row(
+ [
+ dbc.Col([html.Div(
+ [
+ dbc.Button(
+ id="plot-btn-url",
+ children="Show URL",
+ class_name="me-1",
+ color="info",
+ style={
+ "text-transform": "none",
+ "padding": "0rem 1rem"
+ }
+ ),
+ dbc.Modal(
+ [
+ dbc.ModalHeader(dbc.ModalTitle("URL")),
+ dbc.ModalBody(url)
+ ],
+ id="plot-mod-url",
+ size="xl",
+ is_open=False,
+ scrollable=True
+ ),
+ dbc.Button(
+ id="plot-btn-download",
+ children="Download Table",
+ class_name="me-1",
+ color="info",
+ style={
+ "text-transform": "none",
+ "padding": "0rem 1rem"
+ }
+ ),
+ dcc.Download(id="download-iterative-data"),
+ dbc.Button(
+ id="plot-btn-download-raw",
+ children="Download Raw Data",
+ class_name="me-1",
+ color="info",
+ style={
+ "text-transform": "none",
+ "padding": "0rem 1rem"
+ }
+ ),
+ dcc.Download(id="download-raw-data")
+ ],
+ className=\
+ "d-grid gap-0 d-md-flex justify-content-md-end"
+ )])
+ ],
+ class_name="g-0 p-0"
+ ),
+ dbc.Row(
+ children=C.PLACEHOLDER,
+ class_name="g-0 p-1"
+ )
+ ]
+
+ def callbacks(self, app):
+ """Callbacks for the whole application.
+
+ :param app: The application.
+ :type app: Flask
+ """
+
+ @app.callback(
+ [
+ Output("store-control-panel", "data"),
+ Output("store-selected", "data"),
+ Output("store-table-data", "data"),
+ Output("store-filtered-table-data", "data"),
+ Output("plotting-area", "children"),
+ Output({"type": "table", "index": ALL}, "data"),
+ Output({"type": "ctrl-dd", "index": "dut"}, "value"),
+ Output({"type": "ctrl-dd", "index": "dutver"}, "options"),
+ Output({"type": "ctrl-dd", "index": "dutver"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "dutver"}, "value"),
+ Output({"type": "ctrl-dd", "index": "infra"}, "options"),
+ Output({"type": "ctrl-dd", "index": "infra"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "infra"}, "value"),
+ Output({"type": "ctrl-cl", "index": "core"}, "options"),
+ Output({"type": "ctrl-cl", "index": "core"}, "value"),
+ Output({"type": "ctrl-cl", "index": "frmsize"}, "options"),
+ Output({"type": "ctrl-cl", "index": "frmsize"}, "value"),
+ Output({"type": "ctrl-cl", "index": "ttype"}, "options"),
+ Output({"type": "ctrl-cl", "index": "ttype"}, "value"),
+ Output({"type": "ctrl-dd", "index": "cmpprm"}, "options"),
+ Output({"type": "ctrl-dd", "index": "cmpprm"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "cmpprm"}, "value"),
+ Output({"type": "ctrl-dd", "index": "cmpval"}, "options"),
+ Output({"type": "ctrl-dd", "index": "cmpval"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "cmpval"}, "value"),
+ Output("normalize", "value"),
+ Output("outliers", "value")
+ ],
+ [
+ State("store-control-panel", "data"),
+ State("store-selected", "data"),
+ State("store-table-data", "data"),
+ State("store-filtered-table-data", "data"),
+ State({"type": "table", "index": ALL}, "data")
+ ],
+ [
+ Input("url", "href"),
+ Input("normalize", "value"),
+ Input("outliers", "value"),
+ Input({"type": "table", "index": ALL}, "filter_query"),
+ Input({"type": "table", "index": ALL}, "sort_by"),
+ Input({"type": "ctrl-dd", "index": ALL}, "value"),
+ Input({"type": "ctrl-cl", "index": ALL}, "value"),
+ Input({"type": "ctrl-btn", "index": ALL}, "n_clicks")
+ ]
+ )
+ def _update_application(
+ control_panel: dict,
+ selected: dict,
+ store_table_data: list,
+ filtered_data: list,
+ table_data: list,
+ href: str,
+ normalize: list,
+ outliers: bool,
+ *_
+ ) -> tuple:
+ """Update the application when the event is detected.
+ """
+
+ ctrl_panel = ControlPanel(CP_PARAMS, control_panel)
+
+ if selected is None:
+ selected = {
+ "reference": {
+ "set": False,
+ },
+ "compare": {
+ "set": False,
+ }
+ }
+
+ # Parse the url:
+ parsed_url = url_decode(href)
+ if parsed_url:
+ url_params = parsed_url["params"]
+ else:
+ url_params = None
+
+ on_draw = False
+ plotting_area = no_update
+
+ trigger = Trigger(callback_context.triggered)
+ if trigger.type == "url" and url_params:
+ process_url = False
+ try:
+ selected = literal_eval(url_params["selected"][0])
+ r_sel = selected["reference"]["selection"]
+ c_sel = selected["compare"]
+ normalize = literal_eval(url_params["norm"][0])
+ try: # Necessary for backward compatibility
+ outliers = literal_eval(url_params["outliers"][0])
+ except (KeyError, IndexError, AttributeError):
+ outliers = list()
+ process_url = bool(
+ (selected["reference"]["set"] == True) and
+ (c_sel["set"] == True)
+ )
+ except (KeyError, IndexError, AttributeError):
+ pass
+ if process_url:
+ ctrl_panel.set({
+ "dut-val": r_sel["dut"],
+ "dutver-opt": generate_options(
+ self._tbs[r_sel["dut"]].keys()
+ ),
+ "dutver-dis": False,
+ "dutver-val": r_sel["dutver"],
+ "infra-opt": generate_options(
+ self._tbs[r_sel["dut"]][r_sel["dutver"]].keys()
+ ),
+ "infra-dis": False,
+ "infra-val": r_sel["infra"],
+ "core-opt": generate_options(
+ self._tbs[r_sel["dut"]][r_sel["dutver"]]\
+ [r_sel["infra"]]["core"]
+ ),
+ "core-val": r_sel["core"],
+ "frmsize-opt": generate_options(
+ self._tbs[r_sel["dut"]][r_sel["dutver"]]\
+ [r_sel["infra"]]["fsize"]
+ ),
+ "frmsize-val": r_sel["frmsize"],
+ "ttype-opt": generate_options(
+ self._tbs[r_sel["dut"]][r_sel["dutver"]]\
+ [r_sel["infra"]]["ttype"]
+ ),
+ "ttype-val": r_sel["ttype"],
+ "normalize-val": normalize,
+ "outliers-val": outliers
+ })
+ opts = list()
+ for itm, label in CMP_PARAMS.items():
+ if len(ctrl_panel.get(f"{itm}-opt")) > 1:
+ opts.append({"label": label, "value": itm})
+ ctrl_panel.set({
+ "cmp-par-opt": opts,
+ "cmp-par-dis": False,
+ "cmp-par-val": c_sel["parameter"]
+ })
+ opts = list()
+ for itm in ctrl_panel.get(f"{c_sel['parameter']}-opt"):
+ set_val = ctrl_panel.get(f"{c_sel['parameter']}-val")
+ if isinstance(set_val, list):
+ if itm["value"] not in set_val:
+ opts.append(itm)
+ else:
+ if itm["value"] != set_val:
+ opts.append(itm)
+ ctrl_panel.set({
+ "cmp-val-opt": opts,
+ "cmp-val-dis": False,
+ "cmp-val-val": c_sel["value"]
+ })
+ on_draw = True
+ elif trigger.type == "normalize":
+ ctrl_panel.set({"normalize-val": normalize})
+ on_draw = True
+ elif trigger.type == "outliers":
+ ctrl_panel.set({"outliers-val": outliers})
+ on_draw = True
+ elif trigger.type == "ctrl-dd":
+ if trigger.idx == "dut":
+ try:
+ opts = generate_options(self._tbs[trigger.value].keys())
+ disabled = False
+ except KeyError:
+ opts = list()
+ disabled = True
+ ctrl_panel.set({
+ "dut-val": trigger.value,
+ "dutver-opt": opts,
+ "dutver-dis": disabled,
+ "dutver-val": str(),
+ "infra-opt": list(),
+ "infra-dis": True,
+ "infra-val": str(),
+ "core-opt": list(),
+ "core-val": list(),
+ "frmsize-opt": list(),
+ "frmsize-val": list(),
+ "ttype-opt": list(),
+ "ttype-val": list(),
+ "cmp-par-opt": list(),
+ "cmp-par-dis": True,
+ "cmp-par-val": str(),
+ "cmp-val-opt": list(),
+ "cmp-val-dis": True,
+ "cmp-val-val": str()
+ })
+ elif trigger.idx == "dutver":
+ try:
+ dut = ctrl_panel.get("dut-val")
+ dver = self._tbs[dut][trigger.value]
+ opts = generate_options(dver.keys())
+ disabled = False
+ except KeyError:
+ opts = list()
+ disabled = True
+ ctrl_panel.set({
+ "dutver-val": trigger.value,
+ "infra-opt": opts,
+ "infra-dis": disabled,
+ "infra-val": str(),
+ "core-opt": list(),
+ "core-val": list(),
+ "frmsize-opt": list(),
+ "frmsize-val": list(),
+ "ttype-opt": list(),
+ "ttype-val": list(),
+ "cmp-par-opt": list(),
+ "cmp-par-dis": True,
+ "cmp-par-val": str(),
+ "cmp-val-opt": list(),
+ "cmp-val-dis": True,
+ "cmp-val-val": str()
+ })
+ elif trigger.idx == "infra":
+ dut = ctrl_panel.get("dut-val")
+ dver = ctrl_panel.get("dutver-val")
+ if all((dut, dver, trigger.value, )):
+ driver = self._tbs[dut][dver][trigger.value]
+ ctrl_panel.set({
+ "infra-val": trigger.value,
+ "core-opt": generate_options(driver["core"]),
+ "core-val": list(),
+ "frmsize-opt": generate_options(driver["fsize"]),
+ "frmsize-val": list(),
+ "ttype-opt": generate_options(driver["ttype"]),
+ "ttype-val": list(),
+ "cmp-par-opt": list(),
+ "cmp-par-dis": True,
+ "cmp-par-val": str(),
+ "cmp-val-opt": list(),
+ "cmp-val-dis": True,
+ "cmp-val-val": str()
+ })
+ elif trigger.idx == "cmpprm":
+ value = trigger.value
+ opts = list()
+ for itm in ctrl_panel.get(f"{value}-opt"):
+ set_val = ctrl_panel.get(f"{value}-val")
+ if isinstance(set_val, list):
+ if itm["value"] == "Latency":
+ continue
+ if itm["value"] not in set_val:
+ opts.append(itm)
+ else:
+ if itm["value"] != set_val:
+ opts.append(itm)
+ ctrl_panel.set({
+ "cmp-par-val": value,
+ "cmp-val-opt": opts,
+ "cmp-val-dis": False,
+ "cmp-val-val": str()
+ })
+ elif trigger.idx == "cmpval":
+ ctrl_panel.set({"cmp-val-val": trigger.value})
+ selected["reference"] = {
+ "set": True,
+ "selection": {
+ "dut": ctrl_panel.get("dut-val"),
+ "dutver": ctrl_panel.get("dutver-val"),
+ "infra": ctrl_panel.get("infra-val"),
+ "core": ctrl_panel.get("core-val"),
+ "frmsize": ctrl_panel.get("frmsize-val"),
+ "ttype": ctrl_panel.get("ttype-val")
+ }
+ }
+ selected["compare"] = {
+ "set": True,
+ "parameter": ctrl_panel.get("cmp-par-val"),
+ "value": trigger.value
+ }
+ on_draw = True
+ elif trigger.type == "ctrl-cl":
+ ctrl_panel.set({f"{trigger.idx}-val": trigger.value})
+ if all((ctrl_panel.get("core-val"),
+ ctrl_panel.get("frmsize-val"),
+ ctrl_panel.get("ttype-val"), )):
+ if "Latency" in ctrl_panel.get("ttype-val"):
+ ctrl_panel.set({"ttype-val": ["Latency", ]})
+ opts = list()
+ for itm, label in CMP_PARAMS.items():
+ if "Latency" in ctrl_panel.get("ttype-val") and \
+ itm == "ttype":
+ continue
+ if len(ctrl_panel.get(f"{itm}-opt")) > 1:
+ if isinstance(ctrl_panel.get(f"{itm}-val"), list):
+ if len(ctrl_panel.get(f"{itm}-opt")) == \
+ len(ctrl_panel.get(f"{itm}-val")):
+ continue
+ opts.append({"label": label, "value": itm})
+ ctrl_panel.set({
+ "cmp-par-opt": opts,
+ "cmp-par-dis": False,
+ "cmp-par-val": str(),
+ "cmp-val-opt": list(),
+ "cmp-val-dis": True,
+ "cmp-val-val": str()
+ })
+ else:
+ ctrl_panel.set({
+ "cmp-par-opt": list(),
+ "cmp-par-dis": True,
+ "cmp-par-val": str(),
+ "cmp-val-opt": list(),
+ "cmp-val-dis": True,
+ "cmp-val-val": str()
+ })
+ elif trigger.type == "table" and trigger.idx == "comparison":
+ if trigger.parameter == "filter_query":
+ filtered_data = filter_table_data(
+ store_table_data,
+ trigger.value
+ )
+ elif trigger.parameter == "sort_by":
+ filtered_data = sort_table_data(
+ store_table_data,
+ trigger.value
+ )
+ table_data = [filtered_data, ]
+
+ if all((on_draw, selected["reference"]["set"],
+ selected["compare"]["set"], )):
+ title, table = comparison_table(
+ data=self._data,
+ selected=selected,
+ normalize=normalize,
+ format="html",
+ remove_outliers=outliers
+ )
+ plotting_area = self._get_plotting_area(
+ title=title,
+ table=table,
+ url=gen_new_url(
+ parsed_url,
+ params={
+ "selected": selected,
+ "norm": normalize,
+ "outliers": outliers
+ }
+ )
+ )
+ store_table_data = table.to_dict("records")
+ filtered_data = store_table_data
+ if table_data:
+ table_data = [store_table_data, ]
+
+ ret_val = [
+ ctrl_panel.panel,
+ selected,
+ store_table_data,
+ filtered_data,
+ plotting_area,
+ table_data
+ ]
+ ret_val.extend(ctrl_panel.values)
+ return ret_val
+
+ @app.callback(
+ Output("plot-mod-url", "is_open"),
+ Input("plot-btn-url", "n_clicks"),
+ State("plot-mod-url", "is_open")
+ )
+ def toggle_plot_mod_url(n, is_open):
+ """Toggle the modal window with url.
+ """
+ if n:
+ return not is_open
+ return is_open
+
+ @app.callback(
+ Output("download-iterative-data", "data"),
+ State("store-table-data", "data"),
+ State("store-filtered-table-data", "data"),
+ Input("plot-btn-download", "n_clicks"),
+ prevent_initial_call=True
+ )
+ def _download_comparison_data(
+ table_data: list,
+ filtered_table_data: list,
+ _: int
+ ) -> dict:
+ """Download the data.
+
+ :param table_data: Original unfiltered table data.
+ :param filtered_table_data: Filtered table data.
+ :type table_data: list
+ :type filtered_table_data: list
+ :returns: dict of data frame content (base64 encoded) and meta data
+ used by the Download component.
+ :rtype: dict
+ """
+
+ if not table_data:
+ raise PreventUpdate
+
+ if filtered_table_data:
+ table = pd.DataFrame.from_records(filtered_table_data)
+ else:
+ table = pd.DataFrame.from_records(table_data)
+
+ return dcc.send_data_frame(table.to_csv, C.COMP_DOWNLOAD_FILE_NAME)
+
+ @app.callback(
+ Output("download-raw-data", "data"),
+ State("store-selected", "data"),
+ Input("plot-btn-download-raw", "n_clicks"),
+ prevent_initial_call=True
+ )
+ def _download_raw_comparison_data(selected: dict, _: int) -> dict:
+ """Download the data.
+
+ :param selected: Selected tests.
+ :type selected: dict
+ :returns: dict of data frame content (base64 encoded) and meta data
+ used by the Download component.
+ :rtype: dict
+ """
+
+ if not selected:
+ raise PreventUpdate
+
+ _, table = comparison_table(
+ data=self._data,
+ selected=selected,
+ normalize=False,
+ remove_outliers=False,
+ raw_data=True
+ )
+
+ return dcc.send_data_frame(
+ table.dropna(how="all", axis=1).to_csv,
+ f"raw_{C.COMP_DOWNLOAD_FILE_NAME}"
+ )
+
+ @app.callback(
+ Output("offcanvas-documentation", "is_open"),
+ Input("btn-documentation", "n_clicks"),
+ State("offcanvas-documentation", "is_open")
+ )
+ def toggle_offcanvas_documentation(n_clicks, is_open):
+ if n_clicks:
+ return not is_open
+ return is_open
+
+ @app.callback(
+ Output("offcanvas-details", "is_open"),
+ Output("offcanvas-details", "children"),
+ State("store-selected", "data"),
+ State("store-filtered-table-data", "data"),
+ State("normalize", "value"),
+ State("outliers", "value"),
+ Input({"type": "table", "index": ALL}, "active_cell"),
+ prevent_initial_call=True
+ )
+ def show_test_data(cp_sel, table, normalize, outliers, *_):
+ """Show offcanvas with graphs and tables based on selected test(s).
+ """
+
+ trigger = Trigger(callback_context.triggered)
+ if not all((trigger.value, cp_sel["reference"]["set"], \
+ cp_sel["compare"]["set"])):
+ raise PreventUpdate
+
+ try:
+ test_name = pd.DataFrame.from_records(table).\
+ iloc[[trigger.value["row"]]]["Test Name"].iloc[0]
+ dut = cp_sel["reference"]["selection"]["dut"]
+ rls, dutver = cp_sel["reference"]["selection"]["dutver"].\
+ split("-", 1)
+ phy = cp_sel["reference"]["selection"]["infra"]
+ framesize, core, test_id = test_name.split("-", 2)
+ test, ttype = test_id.rsplit("-", 1)
+ ttype = "pdr" if ttype == "latency" else ttype
+ l_phy = phy.split("-")
+ tb = "-".join(l_phy[:2])
+ nic = l_phy[2]
+ stype = "ndrpdr" if ttype in ("ndr", "pdr") else ttype
+ except(KeyError, IndexError, AttributeError, ValueError):
+ raise PreventUpdate
+
+ df = pd.DataFrame(self._data.loc[(
+ (self._data["dut_type"] == dut) &
+ (self._data["dut_version"] == dutver) &
+ (self._data["release"] == rls)
+ )])
+ df = df[df.job.str.endswith(tb)]
+ df = df[df.test_id.str.contains(
+ f"{nic}.*{test}-{stype}", regex=True
+ )]
+ if df.empty:
+ raise PreventUpdate
+
+ l_test_id = df["test_id"].iloc[0].split(".")
+ area = ".".join(l_test_id[3:-2])
+
+ r_sel = {
+ "id": f"{test}-{ttype}",
+ "rls": rls,
+ "dut": dut,
+ "dutver": dutver,
+ "phy": phy,
+ "area": area,
+ "test": test,
+ "framesize": framesize,
+ "core": core,
+ "testtype": ttype
+ }
+
+ c_sel = deepcopy(r_sel)
+ param = cp_sel["compare"]["parameter"]
+ val = cp_sel["compare"]["value"].lower()
+ if param == "dutver":
+ c_sel["rls"], c_sel["dutver"] = val.split("-", 1)
+ elif param == "ttype":
+ c_sel["id"] = f"{test}-{val}"
+ c_sel["testtype"] = val
+ elif param == "infra":
+ c_sel["phy"] = val
+ else:
+ c_sel[param] = val
+
+ r_sel["id"] = "-".join(
+ (r_sel["phy"], r_sel["framesize"], r_sel["core"], r_sel["id"])
+ )
+ c_sel["id"] = "-".join(
+ (c_sel["phy"], c_sel["framesize"], c_sel["core"], c_sel["id"])
+ )
+ selected = [r_sel, c_sel]
+
+ indexes = ("tput", "bandwidth", "lat")
+ graphs = graph_iterative(
+ self._data,
+ selected,
+ self._graph_layout,
+ bool(normalize),
+ bool(outliers)
+ )
+ cols = list()
+ for graph, idx in zip(graphs, indexes):
+ if graph:
+ cols.append(dbc.Col(dcc.Graph(
+ figure=graph,
+ id={"type": "graph-iter", "index": idx},
+ )))
+ if not cols:
+ cols="No data."
+ ret_val = [
+ dbc.Row(
+ class_name="g-0 p-0",
+ children=dbc.Alert(test, color="info"),
+ ),
+ dbc.Row(class_name="g-0 p-0", children=cols)
+ ]
+
+ return True, ret_val
+
+ @app.callback(
+ Output("metadata-tput-lat", "children"),
+ Output("metadata-hdrh-graph", "children"),
+ Output("offcanvas-metadata", "is_open"),
+ Input({"type": "graph-iter", "index": ALL}, "clickData"),
+ prevent_initial_call=True
+ )
+ def _show_metadata_from_graph(iter_data: dict) -> tuple:
+ """Generates the data for the offcanvas displayed when a particular
+ point in a graph is clicked on.
+ """
+
+ trigger = Trigger(callback_context.triggered)
+ if not trigger.value:
+ raise PreventUpdate
+
+ if trigger.type == "graph-iter":
+ return show_iterative_graph_data(
+ trigger, iter_data, self._graph_layout)
+ else:
+ raise PreventUpdate
diff --git a/csit.infra.dash/app/cdash/comparisons/tables.py b/csit.infra.dash/app/cdash/comparisons/tables.py
new file mode 100644
index 0000000000..0e32f38b6c
--- /dev/null
+++ b/csit.infra.dash/app/cdash/comparisons/tables.py
@@ -0,0 +1,348 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""The comparison tables.
+"""
+
+import pandas as pd
+
+from numpy import mean, std, percentile
+from copy import deepcopy
+
+from ..utils.constants import Constants as C
+from ..utils.utils import relative_change_stdev
+
+
+def select_comp_data(
+ data: pd.DataFrame,
+ selected: dict,
+ normalize: bool=False,
+ remove_outliers: bool=False,
+ raw_data: bool=False
+ ) -> pd.DataFrame:
+ """Select data for a comparison table.
+
+ :param data: Data to be filtered for the comparison table.
+ :param selected: A dictionary with parameters and their values selected by
+ the user.
+ :param normalize: If True, the data is normalized to CPU frequency
+ Constants.NORM_FREQUENCY.
+ :param remove_outliers: If True the outliers are removed before
+ generating the table.
+ :param raw_data: If True, returns data as it is in parquets without any
+ processing. It is used for "download raw data" feature.
+ :type data: pandas.DataFrame
+ :type selected: dict
+ :type normalize: bool
+ :type remove_outliers: bool
+ :type raw_data: bool
+ :returns: A data frame with selected data.
+ :rtype: pandas.DataFrame
+ """
+
+ def _calculate_statistics(
+ data_in: pd.DataFrame,
+ ttype: str,
+ drv: str,
+ norm_factor: float,
+ remove_outliers: bool=False
+ ) -> pd.DataFrame:
+ """Calculates mean value and standard deviation for provided data.
+
+ :param data_in: Input data for calculations.
+ :param ttype: The test type.
+ :param drv: The driver.
+ :param norm_factor: The data normalization factor.
+ :param remove_outliers: If True the outliers are removed before
+ generating the table.
+ :type data_in: pandas.DataFrame
+ :type ttype: str
+ :type drv: str
+ :type norm_factor: float
+ :type remove_outliers: bool
+ :returns: A pandas dataframe with: test name, mean value, standard
+ deviation and unit.
+ :rtype: pandas.DataFrame
+ """
+ d_data = {
+ "name": list(),
+ "mean": list(),
+ "stdev": list(),
+ "unit": list()
+ }
+ for itm in data_in["test_id"].unique().tolist():
+ itm_lst = itm.split(".")
+ test = itm_lst[-1].rsplit("-", 1)[0]
+ if "hoststack" in itm:
+ test_type = f"hoststack-{ttype}"
+ else:
+ test_type = ttype
+ df = data_in.loc[(data_in["test_id"] == itm)]
+ l_df = df[C.VALUE_ITER[test_type]].to_list()
+ if len(l_df) and isinstance(l_df[0], list):
+ tmp_df = list()
+ for l_itm in l_df:
+ tmp_df.extend(l_itm)
+ l_df = tmp_df
+
+ try:
+ if remove_outliers:
+ q1 = percentile(l_df, 25, method=C.COMP_PERCENTILE_METHOD)
+ q3 = percentile(l_df, 75, method=C.COMP_PERCENTILE_METHOD)
+ irq = q3 - q1
+ lif = q1 - C.COMP_OUTLIER_TYPE * irq
+ uif = q3 + C.COMP_OUTLIER_TYPE * irq
+ l_df = [i for i in l_df if i >= lif and i <= uif]
+ mean_val = mean(l_df)
+ std_val = std(l_df)
+ except (TypeError, ValueError):
+ continue
+ d_data["name"].append(f"{test.replace(f'{drv}-', '')}-{ttype}")
+ d_data["mean"].append(int(mean_val * norm_factor))
+ d_data["stdev"].append(int(std_val * norm_factor))
+ d_data["unit"].append(df[C.UNIT[test_type]].to_list()[0])
+ return pd.DataFrame(d_data)
+
+ lst_df = list()
+ for itm in selected:
+ if itm["ttype"] in ("NDR", "PDR", "Latency"):
+ test_type = "ndrpdr"
+ elif itm["ttype"] in ("CPS", "RPS", "BPS"):
+ test_type = "hoststack"
+ else:
+ test_type = itm["ttype"].lower()
+
+ dutver = itm["dutver"].split("-", 1) # 0 -> release, 1 -> dut version
+ tmp_df = pd.DataFrame(data.loc[(
+ (data["passed"] == True) &
+ (data["dut_type"] == itm["dut"]) &
+ (data["dut_version"] == dutver[1]) &
+ (data["test_type"] == test_type) &
+ (data["release"] == dutver[0])
+ )])
+
+ drv = "" if itm["driver"] == "dpdk" else itm["driver"].replace("_", "-")
+ core = str() if itm["dut"] == "trex" else itm["core"].lower()
+ ttype = "ndrpdr" if itm["ttype"] in ("NDR", "PDR", "Latency") \
+ else itm["ttype"].lower()
+ tmp_df = tmp_df[
+ (tmp_df.job.str.endswith(itm["tbed"])) &
+ (tmp_df.test_id.str.contains(
+ (
+ f"^.*[.|-]{itm['nic']}.*{itm['frmsize'].lower()}-"
+ f"{core}-{drv}.*-{ttype}$"
+ ),
+ regex=True
+ ))
+ ]
+ if itm["driver"] == "dpdk":
+ for drv in C.DRIVERS:
+ tmp_df.drop(
+ tmp_df[tmp_df.test_id.str.contains(f"-{drv}-")].index,
+ inplace=True
+ )
+
+ # Change the data type from ndrpdr to one of ("NDR", "PDR", "Latency")
+ if test_type == "ndrpdr":
+ tmp_df = tmp_df.assign(test_type=itm["ttype"].lower())
+
+ if not tmp_df.empty:
+ if normalize:
+ if itm["ttype"] == "Latency":
+ norm_factor = C.FREQUENCY[itm["tbed"]] / C.NORM_FREQUENCY
+ else:
+ norm_factor = C.NORM_FREQUENCY / C.FREQUENCY[itm["tbed"]]
+ else:
+ norm_factor = 1.0
+ if not raw_data:
+ tmp_df = _calculate_statistics(
+ tmp_df,
+ itm["ttype"].lower(),
+ itm["driver"],
+ norm_factor,
+ remove_outliers=remove_outliers
+ )
+
+ lst_df.append(tmp_df)
+
+ if len(lst_df) == 1:
+ df = lst_df[0]
+ elif len(lst_df) > 1:
+ df = pd.concat(
+ lst_df,
+ ignore_index=True,
+ copy=False
+ )
+ else:
+ df = pd.DataFrame()
+
+ return df
+
+
+def comparison_table(
+ data: pd.DataFrame,
+ selected: dict,
+ normalize: bool,
+ format: str="html",
+ remove_outliers: bool=False,
+ raw_data: bool=False
+ ) -> tuple:
+ """Generate a comparison table.
+
+ :param data: Iterative data for the comparison table.
+ :param selected: A dictionary with parameters and their values selected by
+ the user.
+ :param normalize: If True, the data is normalized to CPU frequency
+ Constants.NORM_FREQUENCY.
+ :param format: The output format of the table:
+ - html: To be displayed on html page, the values are shown in millions
+ of the unit.
+ - csv: To be downloaded as a CSV file the values are stored in base
+ units.
+ :param remove_outliers: If True the outliers are removed before
+ generating the table.
+ :param raw_data: If True, returns data as it is in parquets without any
+ processing. It is used for "download raw data" feature.
+ :type data: pandas.DataFrame
+ :type selected: dict
+ :type normalize: bool
+ :type format: str
+ :type remove_outliers: bool
+ :type raw_data: bool
+ :returns: A tuple with the tabe title and the comparison table.
+ :rtype: tuple[str, pandas.DataFrame]
+ """
+
+ def _create_selection(sel: dict) -> list:
+ """Transform the complex dictionary with user selection to list
+ of simple items.
+
+ :param sel: A complex dictionary with user selection.
+ :type sel: dict
+ :returns: A list of simple items.
+ :rtype: list
+ """
+ l_infra = sel["infra"].split("-")
+ selection = list()
+ for core in sel["core"]:
+ for fsize in sel["frmsize"]:
+ for ttype in sel["ttype"]:
+ selection.append({
+ "dut": sel["dut"],
+ "dutver": sel["dutver"],
+ "tbed": f"{l_infra[0]}-{l_infra[1]}",
+ "nic": l_infra[2],
+ "driver": l_infra[-1].replace("_", "-"),
+ "core": core,
+ "frmsize": fsize,
+ "ttype": ttype
+ })
+ return selection
+
+ # Select reference data
+ r_sel = deepcopy(selected["reference"]["selection"])
+ r_selection = _create_selection(r_sel)
+ r_data = select_comp_data(
+ data, r_selection, normalize, remove_outliers, raw_data
+ )
+
+ # Select compare data
+ c_sel = deepcopy(selected["reference"]["selection"])
+ c_params = selected["compare"]
+ if c_params["parameter"] in ("core", "frmsize", "ttype"):
+ c_sel[c_params["parameter"]] = [c_params["value"], ]
+ else:
+ c_sel[c_params["parameter"]] = c_params["value"]
+ c_selection = _create_selection(c_sel)
+ c_data = select_comp_data(
+ data, c_selection, normalize, remove_outliers, raw_data
+ )
+
+ if raw_data:
+ r_data["ref/cmp"] = "reference"
+ c_data["ref/cmp"] = "compare"
+ return str(), pd.concat([r_data, c_data], ignore_index=True, copy=False)
+
+ if r_data.empty or c_data.empty:
+ return str(), pd.DataFrame()
+
+ if format == "html" and "Latency" not in r_sel["ttype"]:
+ unit_factor, s_unit_factor = (1e6, "M")
+ else:
+ unit_factor, s_unit_factor = (1, str())
+
+ # Create Table title and titles of columns with data
+ params = list(r_sel)
+ params.remove(c_params["parameter"])
+ lst_title = list()
+ for param in params:
+ value = r_sel[param]
+ if isinstance(value, list):
+ lst_title.append("|".join(value))
+ else:
+ lst_title.append(value)
+ title = "Comparison for: " + "-".join(lst_title)
+ r_name = r_sel[c_params["parameter"]]
+ if isinstance(r_name, list):
+ r_name = "|".join(r_name)
+ c_name = c_params["value"]
+
+ l_name, l_r_mean, l_r_std, l_c_mean, l_c_std, l_rc_mean, l_rc_std, unit = \
+ list(), list(), list(), list(), list(), list(), list(), set()
+ for _, row in r_data.iterrows():
+ if c_params["parameter"] in ("core", "frmsize", "ttype"):
+ l_cmp = row["name"].split("-")
+ if c_params["parameter"] == "core":
+ c_row = c_data[
+ (c_data.name.str.contains(l_cmp[0])) &
+ (c_data.name.str.contains("-".join(l_cmp[2:])))
+ ]
+ elif c_params["parameter"] == "frmsize":
+ c_row = c_data[c_data.name.str.contains("-".join(l_cmp[1:]))]
+ elif c_params["parameter"] == "ttype":
+ regex = r"^" + f"{'-'.join(l_cmp[:-1])}" + r"-.{3}$"
+ c_row = c_data[c_data.name.str.contains(regex, regex=True)]
+ else:
+ c_row = c_data[c_data["name"] == row["name"]]
+ if not c_row.empty:
+ unit.add(f"{s_unit_factor}{row['unit']}")
+ r_mean = row["mean"]
+ r_std = row["stdev"]
+ c_mean = c_row["mean"].values[0]
+ c_std = c_row["stdev"].values[0]
+ l_name.append(row["name"])
+ l_r_mean.append(r_mean / unit_factor)
+ l_r_std.append(r_std / unit_factor)
+ l_c_mean.append(c_mean / unit_factor)
+ l_c_std.append(c_std / unit_factor)
+ delta, d_stdev = relative_change_stdev(r_mean, c_mean, r_std, c_std)
+ l_rc_mean.append(delta)
+ l_rc_std.append(d_stdev)
+
+ s_unit = "|".join(unit)
+ df_cmp = pd.DataFrame.from_dict({
+ "Test Name": l_name,
+ f"{r_name} Mean [{s_unit}]": l_r_mean,
+ f"{r_name} Stdev [{s_unit}]": l_r_std,
+ f"{c_name} Mean [{s_unit}]": l_c_mean,
+ f"{c_name} Stdev [{s_unit}]": l_c_std,
+ "Relative Change Mean [%]": l_rc_mean,
+ "Relative Change Stdev [%]": l_rc_std
+ })
+ df_cmp.sort_values(
+ by="Relative Change Mean [%]",
+ ascending=False,
+ inplace=True
+ )
+
+ return (title, df_cmp)
diff --git a/csit.infra.dash/app/cdash/coverage/__init__.py b/csit.infra.dash/app/cdash/coverage/__init__.py
new file mode 100644
index 0000000000..c6a5f639fe
--- /dev/null
+++ b/csit.infra.dash/app/cdash/coverage/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
diff --git a/csit.infra.dash/app/cdash/coverage/coverage.py b/csit.infra.dash/app/cdash/coverage/coverage.py
new file mode 100644
index 0000000000..f62057d59b
--- /dev/null
+++ b/csit.infra.dash/app/cdash/coverage/coverage.py
@@ -0,0 +1,51 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Instantiate the Coverage Dash application.
+"""
+import dash
+import pandas as pd
+
+from ..utils.constants import Constants as C
+from .layout import Layout
+
+
+def init_coverage(
+ server,
+ data_coverage: pd.DataFrame
+ ) -> dash.Dash:
+ """Create a Plotly Dash dashboard.
+
+ :param server: Flask server.
+ :type server: Flask
+ :returns: Dash app server.
+ :rtype: Dash
+ """
+
+ dash_app = dash.Dash(
+ server=server,
+ routes_pathname_prefix=C.COVERAGE_ROUTES_PATHNAME_PREFIX,
+ external_stylesheets=C.EXTERNAL_STYLESHEETS,
+ title=C.COVERAGE_TITLE
+ )
+
+ layout = Layout(
+ app=dash_app,
+ data_coverage=data_coverage,
+ html_layout_file=C.HTML_LAYOUT_FILE,
+ tooltip_file=C.TOOLTIP_FILE
+ )
+ dash_app.index_string = layout.html_layout
+ dash_app.layout = layout.add_content()
+
+ return dash_app.server
diff --git a/csit.infra.dash/app/cdash/coverage/layout.py b/csit.infra.dash/app/cdash/coverage/layout.py
new file mode 100644
index 0000000000..b8fa0236a5
--- /dev/null
+++ b/csit.infra.dash/app/cdash/coverage/layout.py
@@ -0,0 +1,753 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Plotly Dash HTML layout override.
+"""
+
+
+import logging
+import pandas as pd
+import dash_bootstrap_components as dbc
+
+from flask import Flask
+from dash import dcc
+from dash import html
+from dash import callback_context, no_update, ALL
+from dash import Input, Output, State
+from dash.exceptions import PreventUpdate
+from ast import literal_eval
+from yaml import load, FullLoader, YAMLError
+
+from ..utils.constants import Constants as C
+from ..utils.control_panel import ControlPanel
+from ..utils.trigger import Trigger
+from ..utils.utils import label, gen_new_url, generate_options, navbar_report, \
+ show_tooltip
+from ..utils.url_processing import url_decode
+from .tables import coverage_tables, select_coverage_data
+
+
+# Control panel partameters and their default values.
+CP_PARAMS = {
+ "rls-val": str(),
+ "dut-opt": list(),
+ "dut-dis": True,
+ "dut-val": str(),
+ "dutver-opt": list(),
+ "dutver-dis": True,
+ "dutver-val": str(),
+ "phy-opt": list(),
+ "phy-dis": True,
+ "phy-val": str(),
+ "area-opt": list(),
+ "area-dis": True,
+ "area-val": str(),
+ "show-latency": ["show_latency", ]
+}
+
+
+class Layout:
+ """The layout of the dash app and the callbacks.
+ """
+
+ def __init__(
+ self,
+ app: Flask,
+ data_coverage: pd.DataFrame,
+ html_layout_file: str,
+ tooltip_file: str
+ ) -> None:
+ """Initialization:
+ - save the input parameters,
+ - prepare data for the control panel,
+ - read HTML layout file,
+
+ :param app: Flask application running the dash application.
+ :param html_layout_file: Path and name of the file specifying the HTML
+ layout of the dash application.
+ :param tooltip_file: Path and name of the yaml file specifying the
+ tooltips.
+ :type app: Flask
+ :type html_layout_file: str
+ :type tooltip_file: str
+ """
+
+ # Inputs
+ self._app = app
+ self._data = data_coverage
+ self._html_layout_file = html_layout_file
+ self._tooltip_file = tooltip_file
+
+ # Get structure of tests:
+ tbs = dict()
+ cols = ["job", "test_id", "dut_version", "release", ]
+ for _, row in self._data[cols].drop_duplicates().iterrows():
+ rls = row["release"]
+ lst_job = row["job"].split("-")
+ dut = lst_job[1]
+ d_ver = row["dut_version"]
+ tbed = "-".join(lst_job[-2:])
+ lst_test_id = row["test_id"].split(".")
+ if dut == "dpdk":
+ area = "dpdk"
+ else:
+ area = ".".join(lst_test_id[3:-2])
+ suite = lst_test_id[-2].replace("2n1l-", "").replace("1n1l-", "").\
+ replace("2n-", "")
+ test = lst_test_id[-1]
+ nic = suite.split("-")[0]
+ for drv in C.DRIVERS:
+ if drv in test:
+ driver = drv.replace("-", "_")
+ test = test.replace(f"{drv}-", "")
+ break
+ else:
+ driver = "dpdk"
+ infra = "-".join((tbed, nic, driver))
+
+ if tbs.get(rls, None) is None:
+ tbs[rls] = dict()
+ if tbs[rls].get(dut, None) is None:
+ tbs[rls][dut] = dict()
+ if tbs[rls][dut].get(d_ver, None) is None:
+ tbs[rls][dut][d_ver] = dict()
+ if tbs[rls][dut][d_ver].get(area, None) is None:
+ tbs[rls][dut][d_ver][area] = list()
+ if infra not in tbs[rls][dut][d_ver][area]:
+ tbs[rls][dut][d_ver][area].append(infra)
+
+ self._spec_tbs = tbs
+
+ # Read from files:
+ self._html_layout = str()
+
+ try:
+ with open(self._html_layout_file, "r") as file_read:
+ self._html_layout = file_read.read()
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._html_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._tooltip_file, "r") as file_read:
+ self._tooltips = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ logging.warning(
+ f"Not possible to open the file {self._tooltip_file}\n{err}"
+ )
+ except YAMLError as err:
+ logging.warning(
+ f"An error occurred while parsing the specification file "
+ f"{self._tooltip_file}\n{err}"
+ )
+
+ # Callbacks:
+ if self._app is not None and hasattr(self, "callbacks"):
+ self.callbacks(self._app)
+
+ @property
+ def html_layout(self):
+ return self._html_layout
+
+ def add_content(self):
+ """Top level method which generated the web page.
+
+ It generates:
+ - Store for user input data,
+ - Navigation bar,
+ - Main area with control panel and ploting area.
+
+ If no HTML layout is provided, an error message is displayed instead.
+
+ :returns: The HTML div with the whole page.
+ :rtype: html.Div
+ """
+
+ if self.html_layout and self._spec_tbs:
+ return html.Div(
+ id="div-main",
+ className="small",
+ children=[
+ dbc.Row(
+ id="row-navbar",
+ class_name="g-0",
+ children=[navbar_report((False, False, True, False)), ]
+ ),
+ dbc.Row(
+ id="row-main",
+ class_name="g-0",
+ children=[
+ dcc.Store(id="store-selected-tests"),
+ dcc.Store(id="store-control-panel"),
+ dcc.Location(id="url", refresh=False),
+ self._add_ctrl_col(),
+ self._add_plotting_col()
+ ]
+ ),
+ dbc.Offcanvas(
+ class_name="w-75",
+ id="offcanvas-documentation",
+ title="Documentation",
+ placement="end",
+ is_open=False,
+ children=html.Iframe(
+ src=C.URL_DOC_REL_NOTES,
+ width="100%",
+ height="100%"
+ )
+ )
+ ]
+ )
+ else:
+ return html.Div(
+ id="div-main-error",
+ children=[
+ dbc.Alert(
+ [
+ "An Error Occured"
+ ],
+ color="danger"
+ )
+ ]
+ )
+
+ def _add_ctrl_col(self) -> dbc.Col:
+ """Add column with controls. It is placed on the left side.
+
+ :returns: Column with the control panel.
+ :rtype: dbc.Col
+ """
+ return dbc.Col([
+ html.Div(
+ children=self._add_ctrl_panel(),
+ className="sticky-top"
+ )
+ ])
+
+ def _add_plotting_col(self) -> dbc.Col:
+ """Add column with plots. It is placed on the right side.
+
+ :returns: Column with plots.
+ :rtype: dbc.Col
+ """
+ return dbc.Col(
+ id="col-plotting-area",
+ children=[
+ dbc.Spinner(
+ children=[
+ dbc.Row(
+ id="plotting-area",
+ class_name="g-0 p-0",
+ children=[
+ C.PLACEHOLDER
+ ]
+ )
+ ]
+ )
+ ],
+ width=9
+ )
+
+ def _add_ctrl_panel(self) -> list:
+ """Add control panel.
+
+ :returns: Control panel.
+ :rtype: list
+ """
+ return [
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-release",
+ "CSIT Release"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "rls"},
+ placeholder="Select a Release...",
+ options=sorted(
+ [
+ {"label": k, "value": k} \
+ for k in self._spec_tbs.keys()
+ ],
+ key=lambda d: d["label"]
+ )
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-dut",
+ "DUT"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "dut"},
+ placeholder="Select a Device under Test..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-dut-ver",
+ "DUT Version"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "dutver"},
+ placeholder=\
+ "Select a Version of Device under Test..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-area",
+ "Area"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "area"},
+ placeholder="Select an Area..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-infra",
+ "Infra"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "phy"},
+ placeholder=\
+ "Select a Physical Test Bed Topology..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-show-latency",
+ "Latency"
+ )),
+ dbc.Checklist(
+ id="show-latency",
+ options=[{
+ "value": "show_latency",
+ "label": "Show Latency"
+ }],
+ value=["show_latency"],
+ inline=True,
+ class_name="ms-2"
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ )
+ ]
+ )
+ ]
+
+ def _get_plotting_area(
+ self,
+ selected: dict,
+ url: str,
+ show_latency: bool
+ ) -> list:
+ """Generate the plotting area with all its content.
+
+ :param selected: Selected parameters of tests.
+ :param url: URL to be displayed in the modal window.
+ :param show_latency: If True, latency is displayed in the tables.
+ :type selected: dict
+ :type url: str
+ :type show_latency: bool
+ :returns: List of rows with elements to be displayed in the plotting
+ area.
+ :rtype: list
+ """
+ if not selected:
+ return C.PLACEHOLDER
+
+ return [
+ dbc.Row(
+ children=coverage_tables(self._data, selected, show_latency),
+ class_name="g-0 p-0",
+ ),
+ dbc.Row(
+ children=C.PLACEHOLDER,
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ [
+ dbc.Col([html.Div(
+ [
+ dbc.Button(
+ id="plot-btn-url",
+ children="Show URL",
+ class_name="me-1",
+ color="info",
+ style={
+ "text-transform": "none",
+ "padding": "0rem 1rem"
+ }
+ ),
+ dbc.Modal(
+ [
+ dbc.ModalHeader(dbc.ModalTitle("URL")),
+ dbc.ModalBody(url)
+ ],
+ id="plot-mod-url",
+ size="xl",
+ is_open=False,
+ scrollable=True
+ ),
+ dbc.Button(
+ id="plot-btn-download",
+ children="Download Data",
+ class_name="me-1",
+ color="info",
+ style={
+ "text-transform": "none",
+ "padding": "0rem 1rem"
+ }
+ ),
+ dcc.Download(id="download-iterative-data")
+ ],
+ className=\
+ "d-grid gap-0 d-md-flex justify-content-md-end"
+ )])
+ ],
+ class_name="g-0 p-0"
+ ),
+ dbc.Row(
+ children=C.PLACEHOLDER,
+ class_name="g-0 p-1"
+ )
+ ]
+
+ def callbacks(self, app):
+ """Callbacks for the whole application.
+
+ :param app: The application.
+ :type app: Flask
+ """
+
+ @app.callback(
+ [
+ Output("store-control-panel", "data"),
+ Output("store-selected-tests", "data"),
+ Output("plotting-area", "children"),
+ Output({"type": "ctrl-dd", "index": "rls"}, "value"),
+ Output({"type": "ctrl-dd", "index": "dut"}, "options"),
+ Output({"type": "ctrl-dd", "index": "dut"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "dut"}, "value"),
+ Output({"type": "ctrl-dd", "index": "dutver"}, "options"),
+ Output({"type": "ctrl-dd", "index": "dutver"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "dutver"}, "value"),
+ Output({"type": "ctrl-dd", "index": "phy"}, "options"),
+ Output({"type": "ctrl-dd", "index": "phy"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "phy"}, "value"),
+ Output({"type": "ctrl-dd", "index": "area"}, "options"),
+ Output({"type": "ctrl-dd", "index": "area"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "area"}, "value"),
+ Output("show-latency", "value"),
+ ],
+ [
+ State("store-control-panel", "data"),
+ State("store-selected-tests", "data")
+ ],
+ [
+ Input("url", "href"),
+ Input("show-latency", "value"),
+ Input({"type": "ctrl-dd", "index": ALL}, "value")
+ ]
+ )
+ def _update_application(
+ control_panel: dict,
+ selected: dict,
+ href: str,
+ show_latency: list,
+ *_
+ ) -> tuple:
+ """Update the application when the event is detected.
+ """
+
+ ctrl_panel = ControlPanel(CP_PARAMS, control_panel)
+ plotting_area = no_update
+ on_draw = False
+ if selected is None:
+ selected = dict()
+
+ # Parse the url:
+ parsed_url = url_decode(href)
+ if parsed_url:
+ url_params = parsed_url["params"]
+ else:
+ url_params = None
+
+ trigger = Trigger(callback_context.triggered)
+
+ if trigger.type == "url" and url_params:
+ try:
+ show_latency = literal_eval(url_params["show_latency"][0])
+ selected = literal_eval(url_params["selection"][0])
+ except (KeyError, IndexError, AttributeError):
+ pass
+ if selected:
+ ctrl_panel.set({
+ "rls-val": selected["rls"],
+ "dut-val": selected["dut"],
+ "dut-opt": generate_options(
+ self._spec_tbs[selected["rls"]].keys()
+ ),
+ "dut-dis": False,
+ "dutver-val": selected["dutver"],
+ "dutver-opt": generate_options(
+ self._spec_tbs[selected["rls"]]\
+ [selected["dut"]].keys()
+ ),
+ "dutver-dis": False,
+ "area-val": selected["area"],
+ "area-opt": [
+ {"label": label(v), "value": v} \
+ for v in sorted(self._spec_tbs[selected["rls"]]\
+ [selected["dut"]]\
+ [selected["dutver"]].keys())
+ ],
+ "area-dis": False,
+ "phy-val": selected["phy"],
+ "phy-opt": generate_options(
+ self._spec_tbs[selected["rls"]][selected["dut"]]\
+ [selected["dutver"]][selected["area"]]
+ ),
+ "phy-dis": False,
+ "show-latency": show_latency
+ })
+ on_draw = True
+ elif trigger.type == "show-latency":
+ ctrl_panel.set({"show-latency": show_latency})
+ on_draw = True
+ elif trigger.type == "ctrl-dd":
+ if trigger.idx == "rls":
+ try:
+ options = generate_options(
+ self._spec_tbs[trigger.value].keys()
+ )
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "rls-val": trigger.value,
+ "dut-val": str(),
+ "dut-opt": options,
+ "dut-dis": disabled,
+ "dutver-val": str(),
+ "dutver-opt": list(),
+ "dutver-dis": True,
+ "phy-val": str(),
+ "phy-opt": list(),
+ "phy-dis": True,
+ "area-val": str(),
+ "area-opt": list(),
+ "area-dis": True
+ })
+ elif trigger.idx == "dut":
+ try:
+ rls = ctrl_panel.get("rls-val")
+ dut = self._spec_tbs[rls][trigger.value]
+ options = generate_options(dut.keys())
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "dut-val": trigger.value,
+ "dutver-val": str(),
+ "dutver-opt": options,
+ "dutver-dis": disabled,
+ "phy-val": str(),
+ "phy-opt": list(),
+ "phy-dis": True,
+ "area-val": str(),
+ "area-opt": list(),
+ "area-dis": True
+ })
+ elif trigger.idx == "dutver":
+ try:
+ rls = ctrl_panel.get("rls-val")
+ dut = ctrl_panel.get("dut-val")
+ ver = self._spec_tbs[rls][dut][trigger.value]
+ options = [
+ {"label": label(v), "value": v} for v in sorted(ver)
+ ]
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "dutver-val": trigger.value,
+ "area-val": str(),
+ "area-opt": options,
+ "area-dis": disabled,
+ "phy-val": str(),
+ "phy-opt": list(),
+ "phy-dis": True
+ })
+ elif trigger.idx == "area":
+ try:
+ rls = ctrl_panel.get("rls-val")
+ dut = ctrl_panel.get("dut-val")
+ ver = ctrl_panel.get("dutver-val")
+ options = generate_options(
+ self._spec_tbs[rls][dut][ver][trigger.value])
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "area-val": trigger.value,
+ "phy-val": str(),
+ "phy-opt": options,
+ "phy-dis": disabled
+ })
+ elif trigger.idx == "phy":
+ ctrl_panel.set({"phy-val": trigger.value})
+ selected = {
+ "rls": ctrl_panel.get("rls-val"),
+ "dut": ctrl_panel.get("dut-val"),
+ "dutver": ctrl_panel.get("dutver-val"),
+ "phy": ctrl_panel.get("phy-val"),
+ "area": ctrl_panel.get("area-val"),
+ }
+ on_draw = True
+
+ if on_draw:
+ if selected:
+ plotting_area = self._get_plotting_area(
+ selected,
+ gen_new_url(
+ parsed_url,
+ {
+ "selection": selected,
+ "show_latency": show_latency
+ }
+ ),
+ show_latency=bool(show_latency)
+ )
+ else:
+ plotting_area = C.PLACEHOLDER
+ selected = dict()
+
+ ret_val = [
+ ctrl_panel.panel,
+ selected,
+ plotting_area,
+ ]
+ ret_val.extend(ctrl_panel.values)
+ return ret_val
+
+ @app.callback(
+ Output("plot-mod-url", "is_open"),
+ [Input("plot-btn-url", "n_clicks")],
+ [State("plot-mod-url", "is_open")],
+ )
+ def toggle_plot_mod_url(n, is_open):
+ """Toggle the modal window with url.
+ """
+ if n:
+ return not is_open
+ return is_open
+
+ @app.callback(
+ Output("download-iterative-data", "data"),
+ State("store-selected-tests", "data"),
+ State("show-latency", "value"),
+ Input("plot-btn-download", "n_clicks"),
+ prevent_initial_call=True
+ )
+ def _download_coverage_data(selection, show_latency, _):
+ """Download the data
+
+ :param selection: List of tests selected by user stored in the
+ browser.
+ :param show_latency: If True, latency is displayed in the tables.
+ :type selection: dict
+ :type show_latency: bool
+ :returns: dict of data frame content (base64 encoded) and meta data
+ used by the Download component.
+ :rtype: dict
+ """
+
+ if not selection:
+ raise PreventUpdate
+
+ df = select_coverage_data(
+ self._data,
+ selection,
+ csv=True,
+ show_latency=bool(show_latency)
+ )
+
+ return dcc.send_data_frame(df.to_csv, C.COVERAGE_DOWNLOAD_FILE_NAME)
+
+ @app.callback(
+ Output("offcanvas-documentation", "is_open"),
+ Input("btn-documentation", "n_clicks"),
+ State("offcanvas-documentation", "is_open")
+ )
+ def toggle_offcanvas_documentation(n_clicks, is_open):
+ if n_clicks:
+ return not is_open
+ return is_open
diff --git a/csit.infra.dash/app/cdash/coverage/tables.py b/csit.infra.dash/app/cdash/coverage/tables.py
new file mode 100644
index 0000000000..84adb091a1
--- /dev/null
+++ b/csit.infra.dash/app/cdash/coverage/tables.py
@@ -0,0 +1,315 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""The coverage data tables.
+"""
+
+
+import hdrh.histogram
+import hdrh.codec
+import pandas as pd
+import dash_bootstrap_components as dbc
+
+from dash import dash_table
+from dash.dash_table.Format import Format, Scheme
+
+from ..utils.constants import Constants as C
+
+
+def select_coverage_data(
+ data: pd.DataFrame,
+ selected: dict,
+ csv: bool=False,
+ show_latency: bool=True
+ ) -> list:
+ """Select coverage data for the tables and generate tables as pandas data
+ frames.
+
+ :param data: Coverage data.
+ :param selected: Dictionary with user selection.
+ :param csv: If True, pandas data frame with selected coverage data is
+ returned for "Download Data" feature.
+ :param show_latency: If True, latency is displayed in the tables.
+ :type data: pandas.DataFrame
+ :type selected: dict
+ :type csv: bool
+ :type show_latency: bool
+ :returns: List of tuples with suite name (str) and data (pandas dataframe)
+ or pandas dataframe if csv is True.
+ :rtype: list[tuple[str, pandas.DataFrame], ] or pandas.DataFrame
+ """
+
+ l_data = list()
+
+ # Filter data selected by the user.
+ phy = selected["phy"].split("-")
+ if len(phy) == 4:
+ topo, arch, nic, drv = phy
+ drv_str = "" if drv == "dpdk" else drv.replace("_", "-")
+ else:
+ return l_data, None
+
+ df = pd.DataFrame(data.loc[(
+ (data["passed"] == True) &
+ (data["dut_type"] == selected["dut"]) &
+ (data["dut_version"] == selected["dutver"]) &
+ (data["release"] == selected["rls"])
+ )])
+ df = df[
+ (df.job.str.endswith(f"{topo}-{arch}")) &
+ (df.test_id.str.contains(
+ f"^.*\.{selected['area']}\..*{nic}.*{drv_str}.*$",
+ regex=True
+ ))
+ ]
+ if drv == "dpdk":
+ for driver in C.DRIVERS:
+ df.drop(
+ df[df.test_id.str.contains(f"-{driver}-")].index,
+ inplace=True
+ )
+ try:
+ ttype = df["test_type"].to_list()[0]
+ except IndexError:
+ return l_data, None
+
+ # Prepare the coverage data
+ def _latency(hdrh_string: str, percentile: float) -> int:
+ """Get latency from HDRH string for given percentile.
+
+ :param hdrh_string: Encoded HDRH string.
+ :param percentile: Given percentile.
+ :type hdrh_string: str
+ :type percentile: float
+ :returns: The latency value for the given percentile from the encoded
+ HDRH string.
+ :rtype: int
+ """
+ try:
+ hdr_lat = hdrh.histogram.HdrHistogram.decode(hdrh_string)
+ return hdr_lat.get_value_at_percentile(percentile)
+ except (hdrh.codec.HdrLengthException, TypeError):
+ return None
+
+ def _get_suite(test_id: str) -> str:
+ """Get the suite name from the test ID.
+ """
+ return test_id.split(".")[-2].replace("2n1l-", "").\
+ replace("1n1l-", "").replace("2n-", "").replace("-ndrpdr", "")
+
+ def _get_test(test_id: str) -> str:
+ """Get the test name from the test ID.
+ """
+ return test_id.split(".")[-1].replace("-ndrpdr", "")
+
+ cov = pd.DataFrame()
+ cov["Suite"] = df.apply(lambda row: _get_suite(row["test_id"]), axis=1)
+ cov["Test Name"] = df.apply(lambda row: _get_test(row["test_id"]), axis=1)
+
+ if ttype == "device":
+ cov = cov.assign(Result="PASS")
+ elif ttype == "mrr":
+ cov["Throughput_Unit"] = df["result_receive_rate_rate_unit"]
+ cov["Throughput_AVG"] = df.apply(
+ lambda row: row["result_receive_rate_rate_avg"] / 1e9, axis=1
+ )
+ cov["Throughput_STDEV"] = df.apply(
+ lambda row: row["result_receive_rate_rate_stdev"] / 1e9, axis=1
+ )
+ else: # NDRPDR
+ cov["Throughput_Unit"] = df["result_pdr_lower_rate_unit"]
+ cov["Throughput_NDR"] = df.apply(
+ lambda row: row["result_ndr_lower_rate_value"] / 1e6, axis=1
+ )
+ cov["Throughput_NDR_Gbps"] = df.apply(
+ lambda row: row["result_ndr_lower_bandwidth_value"] / 1e9, axis=1
+ )
+ cov["Throughput_PDR"] = df.apply(
+ lambda row: row["result_pdr_lower_rate_value"] / 1e6, axis=1
+ )
+ cov["Throughput_PDR_Gbps"] = df.apply(
+ lambda row: row["result_pdr_lower_bandwidth_value"] / 1e9, axis=1
+ )
+ if show_latency:
+ for way in ("Forward", "Reverse"):
+ for pdr in (10, 50, 90):
+ for perc in (50, 90, 99):
+ latency = f"result_latency_{way.lower()}_pdr_{pdr}_hdrh"
+ cov[f"Latency {way} [us]_{pdr}% PDR_P{perc}"] = \
+ df.apply(
+ lambda row: _latency(row[latency], perc),
+ axis=1
+ )
+
+ if csv:
+ return cov
+
+ # Split data into tables depending on the test suite.
+ for suite in cov["Suite"].unique().tolist():
+ df_suite = pd.DataFrame(cov.loc[(cov["Suite"] == suite)])
+
+ if ttype !="device":
+ unit = df_suite["Throughput_Unit"].tolist()[0]
+ df_suite.rename(
+ columns={
+ "Throughput_NDR": f"Throughput_NDR_M{unit}",
+ "Throughput_PDR": f"Throughput_PDR_M{unit}",
+ "Throughput_AVG": f"Throughput_G{unit}_AVG",
+ "Throughput_STDEV": f"Throughput_G{unit}_STDEV"
+ },
+ inplace=True
+ )
+ df_suite.drop(["Suite", "Throughput_Unit"], axis=1, inplace=True)
+
+ l_data.append((suite, df_suite, ))
+
+ return l_data, ttype
+
+
+def coverage_tables(
+ data: pd.DataFrame,
+ selected: dict,
+ show_latency: bool=True,
+ start_collapsed: bool=True
+ ) -> dbc.Accordion:
+ """Generate an accordion with coverage tables.
+
+ :param data: Coverage data.
+ :param selected: Dictionary with user selection.
+ :param show_latency: If True, latency is displayed in the tables.
+ :param start_collapsed: If True, the accordion with tables is collapsed when
+ displayed.
+ :type data: pandas.DataFrame
+ :type selected: dict
+ :type show_latency: bool
+ :type start_collapsed: bool
+ :returns: Accordion with suite names (titles) and tables.
+ :rtype: dash_bootstrap_components.Accordion
+ """
+
+ accordion_items = list()
+ sel_data, ttype = \
+ select_coverage_data(data, selected, show_latency=show_latency)
+ for suite, cov_data in sel_data:
+ if ttype == "device": # VPP Device
+ cols = [
+ {
+ "name": col,
+ "id": col,
+ "deletable": False,
+ "selectable": False,
+ "type": "text"
+ } for col in cov_data.columns
+ ]
+ style_cell={"textAlign": "left"}
+ style_cell_conditional=[
+ {
+ "if": {"column_id": "Result"},
+ "textAlign": "right"
+ }
+ ]
+ elif ttype == "mrr": # MRR
+ cols = list()
+ for idx, col in enumerate(cov_data.columns):
+ if idx == 0:
+ cols.append({
+ "name": ["", "", col],
+ "id": col,
+ "deletable": False,
+ "selectable": False,
+ "type": "text"
+ })
+ else:
+ cols.append({
+ "name": col.split("_"),
+ "id": col,
+ "deletable": False,
+ "selectable": False,
+ "type": "numeric",
+ "format": Format(precision=2, scheme=Scheme.fixed)
+ })
+ style_cell={"textAlign": "right"}
+ style_cell_conditional=[
+ {
+ "if": {"column_id": "Test Name"},
+ "textAlign": "left"
+ }
+ ]
+ else: # Performance NDRPDR
+ cols = list()
+ for idx, col in enumerate(cov_data.columns):
+ if idx == 0:
+ cols.append({
+ "name": ["", "", col],
+ "id": col,
+ "deletable": False,
+ "selectable": False,
+ "type": "text"
+ })
+ elif idx < 5:
+ cols.append({
+ "name": col.split("_"),
+ "id": col,
+ "deletable": False,
+ "selectable": False,
+ "type": "numeric",
+ "format": Format(precision=2, scheme=Scheme.fixed)
+ })
+ else:
+ cols.append({
+ "name": col.split("_"),
+ "id": col,
+ "deletable": False,
+ "selectable": False,
+ "type": "numeric",
+ "format": Format(precision=0, scheme=Scheme.fixed)
+ })
+ style_cell={"textAlign": "right"}
+ style_cell_conditional=[
+ {
+ "if": {"column_id": "Test Name"},
+ "textAlign": "left"
+ }
+ ]
+
+ accordion_items.append(
+ dbc.AccordionItem(
+ title=suite,
+ children=dash_table.DataTable(
+ columns=cols,
+ data=cov_data.to_dict("records"),
+ merge_duplicate_headers=True,
+ editable=False,
+ filter_action="none",
+ sort_action="native",
+ sort_mode="multi",
+ selected_columns=[],
+ selected_rows=[],
+ page_action="none",
+ style_cell=style_cell,
+ style_cell_conditional=style_cell_conditional
+ )
+ )
+ )
+ if not accordion_items:
+ accordion_items.append(dbc.AccordionItem(
+ title="No data.",
+ children="No data."
+ ))
+ start_collapsed = True
+ return dbc.Accordion(
+ children=accordion_items,
+ class_name="gy-1 p-0",
+ start_collapsed=start_collapsed,
+ always_open=True
+ )
diff --git a/csit.infra.dash/app/cdash/data/__init__.py b/csit.infra.dash/app/cdash/data/__init__.py
new file mode 100644
index 0000000000..c6a5f639fe
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
diff --git a/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2306_device b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2306_device
new file mode 100644
index 0000000000..f619ce8a8e
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2306_device
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2306_ndrpdr b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2306_ndrpdr
new file mode 100644
index 0000000000..06bc618bea
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2306_ndrpdr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2310_device b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2310_device
new file mode 100644
index 0000000000..f619ce8a8e
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2310_device
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2310_ndrpdr b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2310_ndrpdr
new file mode 100644
index 0000000000..06bc618bea
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2310_ndrpdr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2402_device b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2402_device
new file mode 100644
index 0000000000..f619ce8a8e
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2402_device
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2402_ndrpdr b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2402_ndrpdr
new file mode 100644
index 0000000000..06bc618bea
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/coverage_rls2402_ndrpdr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_hoststack b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_hoststack
new file mode 100644
index 0000000000..993d16c18c
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_hoststack
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_mrr b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_mrr
new file mode 100644
index 0000000000..96832850b1
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_mrr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_ndrpdr b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_ndrpdr
new file mode 100644
index 0000000000..2291bb8349
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2306_ndrpdr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_hoststack b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_hoststack
new file mode 100644
index 0000000000..993d16c18c
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_hoststack
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_mrr b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_mrr
new file mode 100644
index 0000000000..96832850b1
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_mrr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_ndrpdr b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_ndrpdr
new file mode 100644
index 0000000000..e76e6ab8e5
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2310_ndrpdr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_hoststack b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_hoststack
new file mode 100644
index 0000000000..993d16c18c
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_hoststack
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_mrr b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_mrr
new file mode 100644
index 0000000000..416679acdb
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_mrr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_ndrpdr b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_ndrpdr
new file mode 100644
index 0000000000..e76e6ab8e5
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/iterative_rls2402_ndrpdr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/statistics b/csit.infra.dash/app/cdash/data/_metadata/statistics
new file mode 100644
index 0000000000..208e119735
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/statistics
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/trending_hoststack b/csit.infra.dash/app/cdash/data/_metadata/trending_hoststack
new file mode 100644
index 0000000000..f6ab72be9a
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/trending_hoststack
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/trending_mrr b/csit.infra.dash/app/cdash/data/_metadata/trending_mrr
new file mode 100644
index 0000000000..9d4e126e59
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/trending_mrr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/_metadata/trending_ndrpdr b/csit.infra.dash/app/cdash/data/_metadata/trending_ndrpdr
new file mode 100644
index 0000000000..3f8b85c66e
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/trending_ndrpdr
Binary files differ
diff --git a/csit.infra.dash/app/cdash/data/data.py b/csit.infra.dash/app/cdash/data/data.py
new file mode 100644
index 0000000000..2c49992bf8
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/data.py
@@ -0,0 +1,421 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Prepare data for Plotly Dash applications.
+"""
+
+import logging
+import resource
+import awswrangler as wr
+import pandas as pd
+import pyarrow as pa
+
+from yaml import load, FullLoader, YAMLError
+from datetime import datetime, timedelta
+from time import time
+from pytz import UTC
+from awswrangler.exceptions import EmptyDataFrame, NoFilesFound
+from pyarrow.lib import ArrowInvalid, ArrowNotImplementedError
+
+from ..utils.constants import Constants as C
+
+
+# If True, pyarrow.Schema is generated. See also condition in the method
+# _write_parquet_schema.
+# To generate schema, select only one data set in data.yaml file.
+GENERATE_SCHEMA = False
+
+
+class Data:
+ """Gets the data from parquets and stores it for further use by dash
+ applications.
+ """
+
+ def __init__(self, data_spec_file: str) -> None:
+ """Initialize the Data object.
+
+ :param data_spec_file: Path to file specifying the data to be read from
+ parquets.
+ :type data_spec_file: str
+ :raises RuntimeError: if it is not possible to open data_spec_file or it
+ is not a valid yaml file.
+ """
+
+ # Inputs:
+ self._data_spec_file = data_spec_file
+
+ # Specification of data to be read from parquets:
+ self._data_spec = list()
+
+ # Data frame to keep the data:
+ self._data = {
+ "statistics": pd.DataFrame(),
+ "trending": pd.DataFrame(),
+ "iterative": pd.DataFrame(),
+ "coverage": pd.DataFrame()
+ }
+
+ # Read from files:
+ try:
+ with open(self._data_spec_file, "r") as file_read:
+ self._data_spec = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._data_spec_file,}\n{err}"
+ )
+ except YAMLError as err:
+ raise RuntimeError(
+ f"An error occurred while parsing the specification file "
+ f"{self._data_spec_file,}\n"
+ f"{err}"
+ )
+
+ @property
+ def data(self):
+ return self._data
+
+ @staticmethod
+ def _get_list_of_files(
+ path,
+ last_modified_begin=None,
+ last_modified_end=None,
+ days=None
+ ) -> list:
+ """Get list of interested files stored in S3 compatible storage and
+ returns it.
+
+ :param path: S3 prefix (accepts Unix shell-style wildcards)
+ (e.g. s3://bucket/prefix) or list of S3 objects paths
+ (e.g. [s3://bucket/key0, s3://bucket/key1]).
+ :param last_modified_begin: Filter the s3 files by the Last modified
+ date of the object. The filter is applied only after list all s3
+ files.
+ :param last_modified_end: Filter the s3 files by the Last modified date
+ of the object. The filter is applied only after list all s3 files.
+ :param days: Number of days to filter.
+ :type path: Union[str, List[str]]
+ :type last_modified_begin: datetime, optional
+ :type last_modified_end: datetime, optional
+ :type days: integer, optional
+ :returns: List of file names.
+ :rtype: list
+ """
+ file_list = list()
+ if days:
+ last_modified_begin = datetime.now(tz=UTC) - timedelta(days=days)
+ try:
+ file_list = wr.s3.list_objects(
+ path=path,
+ suffix="parquet",
+ last_modified_begin=last_modified_begin,
+ last_modified_end=last_modified_end
+ )
+ logging.debug("\n".join(file_list))
+ except NoFilesFound as err:
+ logging.error(f"No parquets found.\n{err}")
+ except EmptyDataFrame as err:
+ logging.error(f"No data.\n{err}")
+
+ return file_list
+
+ def _validate_columns(self, data_type: str) -> str:
+ """Check if all columns are present in the dataframe.
+
+ :param data_type: The data type defined in data.yaml
+ :type data_type: str
+ :returns: Error message if validation fails, otherwise empty string.
+ :rtype: str
+ """
+ defined_columns = set()
+ for data_set in self._data_spec:
+ if data_set.get("data_type", str()) == data_type:
+ defined_columns.update(data_set.get("columns", set()))
+
+ if not defined_columns:
+ return "No columns defined in the data set(s)."
+
+ if self.data[data_type].empty:
+ return "No data."
+
+ ret_msg = str()
+ for col in defined_columns:
+ if col not in self.data[data_type].columns:
+ if not ret_msg:
+ ret_msg = "Missing columns: "
+ else:
+ ret_msg += ", "
+ ret_msg += f"{col}"
+ return ret_msg
+
+ @staticmethod
+ def _write_parquet_schema(
+ path,
+ partition_filter=None,
+ columns=None,
+ validate_schema=False,
+ last_modified_begin=None,
+ last_modified_end=None,
+ days=None
+ ) -> None:
+ """Auxiliary function to write parquet schemas. Use it instead of
+ "_create_dataframe_from_parquet" in "read_all_data".
+
+ :param path: S3 prefix (accepts Unix shell-style wildcards)
+ (e.g. s3://bucket/prefix) or list of S3 objects paths
+ (e.g. [s3://bucket/key0, s3://bucket/key1]).
+ :param partition_filter: Callback Function filters to apply on PARTITION
+ columns (PUSH-DOWN filter). This function MUST receive a single
+ argument (Dict[str, str]) where keys are partitions names and values
+ are partitions values. Partitions values will be always strings
+ extracted from S3. This function MUST return a bool, True to read
+ the partition or False to ignore it. Ignored if dataset=False.
+ :param columns: Names of columns to read from the file(s).
+ :param validate_schema: Check that individual file schemas are all the
+ same / compatible. Schemas within a folder prefix should all be the
+ same. Disable if you have schemas that are different and want to
+ disable this check.
+ :param last_modified_begin: Filter the s3 files by the Last modified
+ date of the object. The filter is applied only after list all s3
+ files.
+ :param last_modified_end: Filter the s3 files by the Last modified date
+ of the object. The filter is applied only after list all s3 files.
+ :param days: Number of days to filter.
+ :type path: Union[str, List[str]]
+ :type partition_filter: Callable[[Dict[str, str]], bool], optional
+ :type columns: List[str], optional
+ :type validate_schema: bool, optional
+ :type last_modified_begin: datetime, optional
+ :type last_modified_end: datetime, optional
+ :type days: integer, optional
+ """
+ if days:
+ last_modified_begin = datetime.now(tz=UTC) - timedelta(days=days)
+
+ df = wr.s3.read_parquet(
+ path=path,
+ path_suffix="parquet",
+ ignore_empty=True,
+ validate_schema=validate_schema,
+ use_threads=True,
+ dataset=True,
+ columns=columns,
+ partition_filter=partition_filter,
+ last_modified_begin=last_modified_begin,
+ last_modified_end=last_modified_end,
+ chunked=1
+ )
+
+ for itm in df:
+ try:
+ # Specify the condition or remove it:
+ if all((
+ pd.api.types.is_string_dtype(itm["column_name"]),
+ pd.api.types.is_string_dtype(itm["telemetry"][0])
+ )):
+ schema = pa.Schema.from_pandas(itm)
+ pa.parquet.write_metadata(
+ schema, f"{C.PATH_TO_SCHEMAS}_tmp_schema"
+ )
+ logging.info(schema.to_string(
+ truncate_metadata=False,
+ show_field_metadata=True,
+ show_schema_metadata=True
+ ))
+ break
+ except KeyError:
+ pass
+
+ @staticmethod
+ def _create_dataframe_from_parquet(
+ path,
+ partition_filter=None,
+ columns=None,
+ validate_schema=False,
+ last_modified_begin=None,
+ last_modified_end=None,
+ days=None,
+ schema=None
+ ) -> pd.DataFrame:
+ """Read parquet stored in S3 compatible storage and returns Pandas
+ Dataframe.
+
+ :param path: S3 prefix (accepts Unix shell-style wildcards)
+ (e.g. s3://bucket/prefix) or list of S3 objects paths
+ (e.g. [s3://bucket/key0, s3://bucket/key1]).
+ :param partition_filter: Callback Function filters to apply on PARTITION
+ columns (PUSH-DOWN filter). This function MUST receive a single
+ argument (Dict[str, str]) where keys are partitions names and values
+ are partitions values. Partitions values will be always strings
+ extracted from S3. This function MUST return a bool, True to read
+ the partition or False to ignore it. Ignored if dataset=False.
+ :param columns: Names of columns to read from the file(s).
+ :param validate_schema: Check that individual file schemas are all the
+ same / compatible. Schemas within a folder prefix should all be the
+ same. Disable if you have schemas that are different and want to
+ disable this check.
+ :param last_modified_begin: Filter the s3 files by the Last modified
+ date of the object. The filter is applied only after list all s3
+ files.
+ :param last_modified_end: Filter the s3 files by the Last modified date
+ of the object. The filter is applied only after list all s3 files.
+ :param days: Number of days to filter.
+ :param schema: Path to schema to use when reading data from the parquet.
+ :type path: Union[str, List[str]]
+ :type partition_filter: Callable[[Dict[str, str]], bool], optional
+ :type columns: List[str], optional
+ :type validate_schema: bool, optional
+ :type last_modified_begin: datetime, optional
+ :type last_modified_end: datetime, optional
+ :type days: integer, optional
+ :type schema: string
+ :returns: Pandas DataFrame or None if DataFrame cannot be fetched.
+ :rtype: DataFrame
+ """
+ df = pd.DataFrame()
+ start = time()
+ if days:
+ last_modified_begin = datetime.now(tz=UTC) - timedelta(days=days)
+ try:
+ df = wr.s3.read_parquet(
+ path=path,
+ path_suffix="parquet",
+ ignore_empty=True,
+ schema=schema,
+ validate_schema=validate_schema,
+ use_threads=True,
+ dataset=True,
+ columns=columns,
+ partition_filter=partition_filter,
+ last_modified_begin=last_modified_begin,
+ last_modified_end=last_modified_end,
+ dtype_backend="pyarrow"
+ )
+
+ df.info(verbose=True, memory_usage="deep")
+ logging.debug(
+ f"\nCreation of dataframe {path} took: {time() - start}\n"
+ )
+ except (ArrowInvalid, ArrowNotImplementedError) as err:
+ logging.error(f"Reading of data from parquets FAILED.\n{repr(err)}")
+ except NoFilesFound as err:
+ logging.error(
+ f"Reading of data from parquets FAILED.\n"
+ f"No parquets found in specified time period.\n"
+ f"Nr of days: {days}\n"
+ f"last_modified_begin: {last_modified_begin}\n"
+ f"{repr(err)}"
+ )
+ except EmptyDataFrame as err:
+ logging.error(
+ f"Reading of data from parquets FAILED.\n"
+ f"No data in parquets in specified time period.\n"
+ f"Nr of days: {days}\n"
+ f"last_modified_begin: {last_modified_begin}\n"
+ f"{repr(err)}"
+ )
+
+ return df
+
+ def read_all_data(self, days: int=None) -> dict:
+ """Read all data necessary for all applications.
+
+ :param days: Number of days to filter. If None, all data will be
+ downloaded.
+ :type days: int
+ :returns: A dictionary where keys are names of parquets and values are
+ the pandas dataframes with fetched data.
+ :rtype: dict(str: pandas.DataFrame)
+ """
+
+ data_lists = {
+ "statistics": list(),
+ "trending": list(),
+ "iterative": list(),
+ "coverage": list()
+ }
+
+ logging.info("\n\nReading data:\n" + "-" * 13 + "\n")
+ for data_set in self._data_spec:
+ logging.info(
+ f"\n\nReading data for {data_set['data_type']} "
+ f"{data_set['partition_name']} {data_set.get('release', '')}\n"
+ )
+ schema_file = data_set.get("schema", None)
+ if schema_file:
+ try:
+ schema = pa.parquet.read_schema(
+ f"{C.PATH_TO_SCHEMAS}{schema_file}"
+ )
+ except FileNotFoundError as err:
+ logging.error(repr(err))
+ logging.error("Proceeding without schema.")
+ schema = None
+ else:
+ schema = None
+ partition_filter = lambda part: True \
+ if part[data_set["partition"]] == data_set["partition_name"] \
+ else False
+ if data_set["data_type"] in ("trending", "statistics"):
+ time_period = days
+ else:
+ time_period = None
+
+ if GENERATE_SCHEMA:
+ # Generate schema:
+ Data._write_parquet_schema(
+ path=data_set["path"],
+ partition_filter=partition_filter,
+ columns=data_set.get("columns", None),
+ days=time_period
+ )
+ return
+
+ # Read data:
+ data = Data._create_dataframe_from_parquet(
+ path=data_set["path"],
+ partition_filter=partition_filter,
+ columns=data_set.get("columns", None),
+ days=time_period,
+ schema=schema
+ )
+ if data_set["data_type"] in ("iterative", "coverage"):
+ data["release"] = data_set["release"]
+ data["release"] = data["release"].astype("category")
+
+ data_lists[data_set["data_type"]].append(data)
+
+ logging.info(
+ "\n\nData post-processing, validation and summary:\n" +
+ "-" * 45 + "\n"
+ )
+ for key in self._data.keys():
+ logging.info(f"\n\nDataframe {key}:\n")
+ self._data[key] = pd.concat(
+ data_lists[key],
+ ignore_index=True,
+ copy=False
+ )
+ self._data[key].info(verbose=True, memory_usage="deep")
+ err_msg = self._validate_columns(key)
+ if err_msg:
+ self._data[key] = pd.DataFrame()
+ logging.error(
+ f"Data validation FAILED.\n"
+ f"{err_msg}\n"
+ "Generated dataframe replaced by an empty dataframe."
+ )
+
+ mem_alloc = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / 1000
+ logging.info(f"\n\nMemory allocation: {mem_alloc:.0f}MB\n")
+
+ return self._data
diff --git a/csit.infra.dash/app/cdash/data/data.yaml b/csit.infra.dash/app/cdash/data/data.yaml
new file mode 100644
index 0000000000..16f8dda694
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/data.yaml
@@ -0,0 +1,464 @@
+- data_type: statistics
+ partition: stats_type
+ partition_name: sra
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/stats
+ schema: statistics
+ columns:
+ - job
+ - build
+ - start_time
+ - duration
+- data_type: trending
+ partition: test_type
+ partition_name: mrr
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
+ schema: trending_mrr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - hosts
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_receive_rate_rate_avg
+ - result_receive_rate_rate_stdev
+ - result_receive_rate_rate_unit
+ - result_receive_rate_bandwidth_avg
+ - result_receive_rate_bandwidth_stdev
+ - result_receive_rate_bandwidth_unit
+ - telemetry
+- data_type: trending
+ partition: test_type
+ partition_name: ndrpdr
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
+ schema: trending_ndrpdr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - hosts
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_pdr_lower_rate_unit
+ - result_pdr_lower_rate_value
+ - result_ndr_lower_rate_unit
+ - result_ndr_lower_rate_value
+ - result_pdr_lower_bandwidth_unit
+ - result_pdr_lower_bandwidth_value
+ - result_ndr_lower_bandwidth_unit
+ - result_ndr_lower_bandwidth_value
+ - result_latency_reverse_pdr_90_hdrh
+ - result_latency_reverse_pdr_50_hdrh
+ - result_latency_reverse_pdr_10_hdrh
+ - result_latency_reverse_pdr_0_hdrh
+ - result_latency_forward_pdr_90_hdrh
+ - result_latency_forward_pdr_50_avg
+ - result_latency_forward_pdr_50_hdrh
+ - result_latency_forward_pdr_50_unit
+ - result_latency_forward_pdr_10_hdrh
+ - result_latency_forward_pdr_0_hdrh
+ - telemetry
+- data_type: trending
+ partition: test_type
+ partition_name: hoststack
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
+ schema: trending_hoststack
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - hosts
+ - tg_type
+ - result_bandwidth_unit
+ - result_bandwidth_value
+ - result_rate_unit
+ - result_rate_value
+ - result_latency_unit
+ - result_latency_value
+ - start_time
+ - passed
+ - telemetry
+ - test_id
+ - version
+- data_type: iterative
+ partition: test_type
+ partition_name: mrr
+ release: rls2306
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2306
+ schema: iterative_rls2306_mrr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_receive_rate_rate_avg
+ - result_receive_rate_rate_stdev
+ - result_receive_rate_rate_unit
+ - result_receive_rate_rate_values
+- data_type: iterative
+ partition: test_type
+ partition_name: ndrpdr
+ release: rls2306
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2306
+ schema: iterative_rls2306_ndrpdr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_pdr_lower_rate_unit
+ - result_pdr_lower_rate_value
+ - result_ndr_lower_rate_unit
+ - result_ndr_lower_rate_value
+ - result_latency_reverse_pdr_90_hdrh
+ - result_latency_reverse_pdr_50_hdrh
+ - result_latency_reverse_pdr_10_hdrh
+ - result_latency_reverse_pdr_0_hdrh
+ - result_latency_forward_pdr_90_hdrh
+ - result_latency_forward_pdr_50_avg
+ - result_latency_forward_pdr_50_hdrh
+ - result_latency_forward_pdr_50_unit
+ - result_latency_forward_pdr_10_hdrh
+ - result_latency_forward_pdr_0_hdrh
+- data_type: iterative
+ partition: test_type
+ partition_name: hoststack
+ release: rls2306
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2306
+ schema: iterative_rls2306_hoststack
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - tg_type
+ - result_bandwidth_unit
+ - result_bandwidth_value
+ - result_rate_unit
+ - result_rate_value
+ - start_time
+ - passed
+ - test_id
+ - version
+- data_type: coverage
+ partition: test_type
+ partition_name: ndrpdr
+ release: rls2306
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2306
+ schema: coverage_rls2306_ndrpdr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - tg_type
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_pdr_lower_rate_unit
+ - result_pdr_lower_rate_value
+ - result_ndr_lower_rate_value
+ - result_pdr_lower_bandwidth_value
+ - result_ndr_lower_bandwidth_value
+ - result_latency_reverse_pdr_90_hdrh
+ - result_latency_reverse_pdr_50_hdrh
+ - result_latency_reverse_pdr_10_hdrh
+ - result_latency_forward_pdr_90_hdrh
+ - result_latency_forward_pdr_50_hdrh
+ - result_latency_forward_pdr_10_hdrh
+- data_type: coverage
+ partition: test_type
+ partition_name: device
+ release: rls2306
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2306
+ schema: coverage_rls2306_device
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - passed
+ - test_id
+ - version
+- data_type: iterative
+ partition: test_type
+ partition_name: mrr
+ release: rls2310
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2310
+ schema: iterative_rls2310_mrr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_receive_rate_rate_avg
+ - result_receive_rate_rate_stdev
+ - result_receive_rate_rate_unit
+ - result_receive_rate_rate_values
+- data_type: iterative
+ partition: test_type
+ partition_name: ndrpdr
+ release: rls2310
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2310
+ schema: iterative_rls2310_ndrpdr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_pdr_lower_rate_unit
+ - result_pdr_lower_rate_value
+ - result_ndr_lower_rate_unit
+ - result_ndr_lower_rate_value
+ - result_pdr_lower_bandwidth_unit
+ - result_pdr_lower_bandwidth_value
+ - result_ndr_lower_bandwidth_unit
+ - result_ndr_lower_bandwidth_value
+ - result_latency_reverse_pdr_90_hdrh
+ - result_latency_reverse_pdr_50_hdrh
+ - result_latency_reverse_pdr_10_hdrh
+ - result_latency_reverse_pdr_0_hdrh
+ - result_latency_forward_pdr_90_hdrh
+ - result_latency_forward_pdr_50_avg
+ - result_latency_forward_pdr_50_hdrh
+ - result_latency_forward_pdr_50_unit
+ - result_latency_forward_pdr_10_hdrh
+ - result_latency_forward_pdr_0_hdrh
+- data_type: iterative
+ partition: test_type
+ partition_name: hoststack
+ release: rls2310
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2310
+ schema: iterative_rls2310_hoststack
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - tg_type
+ - result_bandwidth_unit
+ - result_bandwidth_value
+ - result_rate_unit
+ - result_rate_value
+ - start_time
+ - passed
+ - test_id
+ - version
+- data_type: coverage
+ partition: test_type
+ partition_name: ndrpdr
+ release: rls2310
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2310
+ schema: coverage_rls2310_ndrpdr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - tg_type
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_pdr_lower_rate_unit
+ - result_pdr_lower_rate_value
+ - result_ndr_lower_rate_value
+ - result_pdr_lower_bandwidth_value
+ - result_ndr_lower_bandwidth_value
+ - result_latency_reverse_pdr_90_hdrh
+ - result_latency_reverse_pdr_50_hdrh
+ - result_latency_reverse_pdr_10_hdrh
+ - result_latency_forward_pdr_90_hdrh
+ - result_latency_forward_pdr_50_hdrh
+ - result_latency_forward_pdr_10_hdrh
+- data_type: coverage
+ partition: test_type
+ partition_name: mrr
+ release: rls2310
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2310
+ schema: iterative_rls2310_mrr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_receive_rate_rate_avg
+ - result_receive_rate_rate_stdev
+ - result_receive_rate_rate_unit
+- data_type: coverage
+ partition: test_type
+ partition_name: device
+ release: rls2310
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2310
+ schema: coverage_rls2310_device
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - passed
+ - test_id
+ - version
+- data_type: iterative
+ partition: test_type
+ partition_name: mrr
+ release: rls2402
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2402
+ schema: iterative_rls2402_mrr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_receive_rate_rate_avg
+ - result_receive_rate_rate_stdev
+ - result_receive_rate_rate_unit
+ - result_receive_rate_rate_values
+ - result_receive_rate_bandwidth_avg
+ - result_receive_rate_bandwidth_stdev
+ - result_receive_rate_bandwidth_unit
+ - result_receive_rate_bandwidth_values
+- data_type: iterative
+ partition: test_type
+ partition_name: ndrpdr
+ release: rls2402
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2402
+ schema: iterative_rls2402_ndrpdr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_pdr_lower_rate_unit
+ - result_pdr_lower_rate_value
+ - result_ndr_lower_rate_unit
+ - result_ndr_lower_rate_value
+ - result_pdr_lower_bandwidth_unit
+ - result_pdr_lower_bandwidth_value
+ - result_ndr_lower_bandwidth_unit
+ - result_ndr_lower_bandwidth_value
+ - result_latency_reverse_pdr_90_hdrh
+ - result_latency_reverse_pdr_50_hdrh
+ - result_latency_reverse_pdr_10_hdrh
+ - result_latency_reverse_pdr_0_hdrh
+ - result_latency_forward_pdr_90_hdrh
+ - result_latency_forward_pdr_50_avg
+ - result_latency_forward_pdr_50_hdrh
+ - result_latency_forward_pdr_50_unit
+ - result_latency_forward_pdr_10_hdrh
+ - result_latency_forward_pdr_0_hdrh
+- data_type: iterative
+ partition: test_type
+ partition_name: hoststack
+ release: rls2402
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2402
+ schema: iterative_rls2402_hoststack
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - tg_type
+ - result_bandwidth_unit
+ - result_bandwidth_value
+ - result_rate_unit
+ - result_rate_value
+ - start_time
+ - passed
+ - test_id
+ - version
+- data_type: coverage
+ partition: test_type
+ partition_name: ndrpdr
+ release: rls2402
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2402
+ schema: coverage_rls2402_ndrpdr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - tg_type
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_pdr_lower_rate_unit
+ - result_pdr_lower_rate_value
+ - result_ndr_lower_rate_value
+ - result_pdr_lower_bandwidth_value
+ - result_ndr_lower_bandwidth_value
+ - result_latency_reverse_pdr_90_hdrh
+ - result_latency_reverse_pdr_50_hdrh
+ - result_latency_reverse_pdr_10_hdrh
+ - result_latency_forward_pdr_90_hdrh
+ - result_latency_forward_pdr_50_hdrh
+ - result_latency_forward_pdr_10_hdrh
+- data_type: coverage
+ partition: test_type
+ partition_name: mrr
+ release: rls2402
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2402
+ schema: iterative_rls2402_mrr
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - start_time
+ - passed
+ - test_id
+ - version
+ - result_receive_rate_rate_avg
+ - result_receive_rate_rate_stdev
+ - result_receive_rate_rate_unit
+- data_type: coverage
+ partition: test_type
+ partition_name: device
+ release: rls2402
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2402
+ schema: coverage_rls2402_device
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - passed
+ - test_id
+ - version
diff --git a/csit.infra.dash/app/cdash/jumpavg b/csit.infra.dash/app/cdash/jumpavg
new file mode 120000
index 0000000000..5c858f1ba2
--- /dev/null
+++ b/csit.infra.dash/app/cdash/jumpavg
@@ -0,0 +1 @@
+../../../resources/libraries/python/jumpavg/ \ No newline at end of file
diff --git a/csit.infra.dash/app/cdash/news/__init__.py b/csit.infra.dash/app/cdash/news/__init__.py
new file mode 100644
index 0000000000..c6a5f639fe
--- /dev/null
+++ b/csit.infra.dash/app/cdash/news/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
diff --git a/csit.infra.dash/app/cdash/news/layout.py b/csit.infra.dash/app/cdash/news/layout.py
new file mode 100644
index 0000000000..b40db48605
--- /dev/null
+++ b/csit.infra.dash/app/cdash/news/layout.py
@@ -0,0 +1,508 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Plotly Dash HTML layout override.
+"""
+
+import pandas as pd
+import dash_bootstrap_components as dbc
+
+from flask import Flask
+from dash import dcc
+from dash import html
+from dash import callback_context
+from dash import Input, Output, State
+
+from ..utils.constants import Constants as C
+from ..utils.utils import gen_new_url, navbar_trending
+from ..utils.anomalies import classify_anomalies
+from ..utils.url_processing import url_decode
+from .tables import table_summary
+
+
+class Layout:
+ """The layout of the dash app and the callbacks.
+ """
+
+ def __init__(
+ self,
+ app: Flask,
+ data_stats: pd.DataFrame,
+ data_trending: pd.DataFrame,
+ html_layout_file: str
+ ) -> None:
+ """Initialization:
+ - save the input parameters,
+ - read and pre-process the data,
+ - prepare data for the control panel,
+ - read HTML layout file,
+ - read tooltips from the tooltip file.
+
+ :param app: Flask application running the dash application.
+ :param data_stats: Pandas dataframe with staistical data.
+ :param data_trending: Pandas dataframe with trending data.
+ :param html_layout_file: Path and name of the file specifying the HTML
+ layout of the dash application.
+ :type app: Flask
+ :type data_stats: pandas.DataFrame
+ :type data_trending: pandas.DataFrame
+ :type html_layout_file: str
+ """
+
+ # Inputs
+ self._app = app
+ self._html_layout_file = html_layout_file
+
+ # Prepare information for the control panel:
+ self._jobs = sorted(list(data_trending["job"].unique()))
+ d_job_info = {
+ "job": list(),
+ "dut": list(),
+ "ttype": list(),
+ "cadence": list(),
+ "tbed": list()
+ }
+ for job in self._jobs:
+ lst_job = job.split("-")
+ d_job_info["job"].append(job)
+ d_job_info["dut"].append(lst_job[1])
+ d_job_info["ttype"].append(lst_job[3])
+ d_job_info["cadence"].append(lst_job[4])
+ d_job_info["tbed"].append("-".join(lst_job[-2:]))
+ self.job_info = pd.DataFrame.from_dict(d_job_info)
+
+ # Pre-process the data:
+
+ def _create_test_name(test: str) -> str:
+ lst_tst = test.split(".")
+ suite = lst_tst[-2].replace("2n1l-", "").replace("1n1l-", "").\
+ replace("2n-", "")
+ return f"{suite.split('-')[0]}-{lst_tst[-1]}"
+
+ def _get_rindex(array: list, itm: any) -> int:
+ return len(array) - 1 - array[::-1].index(itm)
+
+ tst_info = {
+ "job": list(),
+ "build": list(),
+ "start": list(),
+ "dut_type": list(),
+ "dut_version": list(),
+ "hosts": list(),
+ "failed": list(),
+ "regressions": list(),
+ "progressions": list()
+ }
+ for job in self._jobs:
+ # Create lists of failed tests:
+ df_job = data_trending.loc[(data_trending["job"] == job)]
+ last_build = str(max(pd.to_numeric(df_job["build"].unique())))
+ df_build = df_job.loc[(df_job["build"] == last_build)]
+ tst_info["job"].append(job)
+ tst_info["build"].append(last_build)
+ tst_info["start"].append(data_stats.loc[
+ (data_stats["job"] == job) &
+ (data_stats["build"] == last_build)
+ ]["start_time"].iloc[-1].strftime('%Y-%m-%d %H:%M'))
+ tst_info["dut_type"].append(df_build["dut_type"].iloc[-1])
+ tst_info["dut_version"].append(df_build["dut_version"].iloc[-1])
+ tst_info["hosts"].append(df_build["hosts"].iloc[-1])
+ failed_tests = df_build.loc[(df_build["passed"] == False)]\
+ ["test_id"].to_list()
+ l_failed = list()
+ try:
+ for tst in failed_tests:
+ l_failed.append(_create_test_name(tst))
+ except KeyError:
+ l_failed = list()
+ tst_info["failed"].append(sorted(l_failed))
+
+ # Create lists of regressions and progressions:
+ l_reg = list()
+ l_prog = list()
+
+ tests = df_job["test_id"].unique()
+ for test in tests:
+ tst_data = df_job.loc[(
+ (df_job["test_id"] == test) &
+ (df_job["passed"] == True)
+ )].sort_values(by="start_time", ignore_index=True)
+ if "-ndrpdr" in test:
+ tst_data = tst_data.dropna(
+ subset=["result_pdr_lower_rate_value", ]
+ )
+ if tst_data.empty:
+ continue
+ x_axis = tst_data["start_time"].tolist()
+ try:
+ anomalies, _, _ = classify_anomalies({
+ k: v for k, v in zip(
+ x_axis,
+ tst_data["result_ndr_lower_rate_value"].tolist()
+ )
+ })
+ except ValueError:
+ continue
+ if "progression" in anomalies:
+ l_prog.append((
+ _create_test_name(test).replace("-ndrpdr", "-ndr"),
+ x_axis[_get_rindex(anomalies, "progression")]
+ ))
+ if "regression" in anomalies:
+ l_reg.append((
+ _create_test_name(test).replace("-ndrpdr", "-ndr"),
+ x_axis[_get_rindex(anomalies, "regression")]
+ ))
+ try:
+ anomalies, _, _ = classify_anomalies({
+ k: v for k, v in zip(
+ x_axis,
+ tst_data["result_pdr_lower_rate_value"].tolist()
+ )
+ })
+ except ValueError:
+ continue
+ if "progression" in anomalies:
+ l_prog.append((
+ _create_test_name(test).replace("-ndrpdr", "-pdr"),
+ x_axis[_get_rindex(anomalies, "progression")]
+ ))
+ if "regression" in anomalies:
+ l_reg.append((
+ _create_test_name(test).replace("-ndrpdr", "-pdr"),
+ x_axis[_get_rindex(anomalies, "regression")]
+ ))
+ else: # mrr
+ tst_data = tst_data.dropna(
+ subset=["result_receive_rate_rate_avg", ]
+ )
+ if tst_data.empty:
+ continue
+ x_axis = tst_data["start_time"].tolist()
+ try:
+ anomalies, _, _ = classify_anomalies({
+ k: v for k, v in zip(
+ x_axis,
+ tst_data["result_receive_rate_rate_avg"].\
+ tolist()
+ )
+ })
+ except ValueError:
+ continue
+ if "progression" in anomalies:
+ l_prog.append((
+ _create_test_name(test),
+ x_axis[_get_rindex(anomalies, "progression")]
+ ))
+ if "regression" in anomalies:
+ l_reg.append((
+ _create_test_name(test),
+ x_axis[_get_rindex(anomalies, "regression")]
+ ))
+
+ tst_info["regressions"].append(
+ sorted(l_reg, key=lambda k: k[1], reverse=True))
+ tst_info["progressions"].append(
+ sorted(l_prog, key=lambda k: k[1], reverse=True))
+
+ self._data = pd.DataFrame.from_dict(tst_info)
+
+ # Read from files:
+ self._html_layout = str()
+
+ try:
+ with open(self._html_layout_file, "r") as file_read:
+ self._html_layout = file_read.read()
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._html_layout_file}\n{err}"
+ )
+
+ self._default_period = C.NEWS_SHORT
+ self._default_active = (False, True, False)
+
+ # Callbacks:
+ if self._app is not None and hasattr(self, 'callbacks'):
+ self.callbacks(self._app)
+
+ @property
+ def html_layout(self) -> dict:
+ return self._html_layout
+
+ def add_content(self):
+ """Top level method which generated the web page.
+
+ It generates:
+ - Store for user input data,
+ - Navigation bar,
+ - Main area with control panel and ploting area.
+
+ If no HTML layout is provided, an error message is displayed instead.
+
+ :returns: The HTML div with the whole page.
+ :rtype: html.Div
+ """
+
+ if self.html_layout:
+ return html.Div(
+ id="div-main",
+ className="small",
+ children=[
+ dcc.Location(id="url", refresh=False),
+ dbc.Row(
+ id="row-navbar",
+ class_name="g-0",
+ children=[navbar_trending((False, True, False, False))]
+ ),
+ dbc.Row(
+ id="row-main",
+ class_name="g-0",
+ children=[
+ self._add_ctrl_col(),
+ self._add_plotting_col()
+ ]
+ ),
+ dbc.Offcanvas(
+ class_name="w-75",
+ id="offcanvas-documentation",
+ title="Documentation",
+ placement="end",
+ is_open=False,
+ children=html.Iframe(
+ src=C.URL_DOC_TRENDING,
+ width="100%",
+ height="100%"
+ )
+ )
+ ]
+ )
+ else:
+ return html.Div(
+ id="div-main-error",
+ children=[
+ dbc.Alert(
+ [
+ "An Error Occured"
+ ],
+ color="danger"
+ )
+ ]
+ )
+
+ def _add_ctrl_col(self) -> dbc.Col:
+ """Add column with control panel. It is placed on the left side.
+
+ :returns: Column with the control panel.
+ :rtype: dbc.Col
+ """
+ return dbc.Col([
+ html.Div(
+ children=self._add_ctrl_panel(),
+ className="sticky-top"
+ )
+ ])
+
+ def _add_plotting_col(self) -> dbc.Col:
+ """Add column with tables. It is placed on the right side.
+
+ :returns: Column with tables.
+ :rtype: dbc.Col
+ """
+ return dbc.Col(
+ id="col-plotting-area",
+ children=[
+ dbc.Spinner(
+ children=[
+ dbc.Row(
+ id="plotting-area",
+ class_name="g-0 p-0",
+ children=[
+ C.PLACEHOLDER
+ ]
+ )
+ ]
+ )
+ ],
+ width=9
+ )
+
+ def _add_ctrl_panel(self) -> list:
+ """Add control panel.
+
+ :returns: Control panel.
+ :rtype: list
+ """
+ return [
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.ButtonGroup(
+ id="bg-time-period",
+ children=[
+ dbc.Button(
+ id="period-last",
+ children="Last Run",
+ className="me-1",
+ outline=True,
+ color="info"
+ ),
+ dbc.Button(
+ id="period-short",
+ children=f"Last {C.NEWS_SHORT} Runs",
+ className="me-1",
+ outline=True,
+ active=True,
+ color="info"
+ ),
+ dbc.Button(
+ id="period-long",
+ children="All Runs",
+ className="me-1",
+ outline=True,
+ color="info"
+ )
+ ]
+ )
+ ]
+ )
+ ]
+
+ def _get_plotting_area(
+ self,
+ period: int,
+ url: str
+ ) -> list:
+ """Generate the plotting area with all its content.
+
+ :param period: The time period for summary tables.
+ :param url: URL to be displayed in the modal window.
+ :type period: int
+ :type url: str
+ :returns: The content of the plotting area.
+ :rtype: list
+ """
+ return [
+ dbc.Row(
+ id="row-table",
+ class_name="g-0 p-1",
+ children=table_summary(self._data, self._jobs, period)
+ ),
+ dbc.Row(
+ [
+ dbc.Col([html.Div(
+ [
+ dbc.Button(
+ id="plot-btn-url",
+ children="Show URL",
+ class_name="me-1",
+ color="info",
+ style={
+ "text-transform": "none",
+ "padding": "0rem 1rem"
+ }
+ ),
+ dbc.Modal(
+ [
+ dbc.ModalHeader(dbc.ModalTitle("URL")),
+ dbc.ModalBody(url)
+ ],
+ id="plot-mod-url",
+ size="xl",
+ is_open=False,
+ scrollable=True
+ )
+ ],
+ className=\
+ "d-grid gap-0 d-md-flex justify-content-md-end"
+ )])
+ ],
+ class_name="g-0 p-0"
+ )
+ ]
+
+ def callbacks(self, app):
+ """Callbacks for the whole application.
+
+ :param app: The application.
+ :type app: Flask
+ """
+
+ @app.callback(
+ Output("plotting-area", "children"),
+ Output("period-last", "active"),
+ Output("period-short", "active"),
+ Output("period-long", "active"),
+ Input("url", "href"),
+ Input("period-last", "n_clicks"),
+ Input("period-short", "n_clicks"),
+ Input("period-long", "n_clicks")
+ )
+ def _update_application(href: str, *_) -> tuple:
+ """Update the application when the event is detected.
+
+ :returns: New values for web page elements.
+ :rtype: tuple
+ """
+
+ periods = {
+ "period-last": C.NEWS_LAST,
+ "period-short": C.NEWS_SHORT,
+ "period-long": C.NEWS_LONG
+ }
+ actives = {
+ "period-last": (True, False, False),
+ "period-short": (False, True, False),
+ "period-long": (False, False, True)
+ }
+
+ # Parse the url:
+ parsed_url = url_decode(href)
+ if parsed_url:
+ url_params = parsed_url["params"]
+ else:
+ url_params = None
+
+ trigger_id = callback_context.triggered[0]["prop_id"].split(".")[0]
+ if trigger_id == "url" and url_params:
+ trigger_id = url_params.get("period", list())[0]
+
+ ret_val = [
+ self._get_plotting_area(
+ periods.get(trigger_id, self._default_period),
+ gen_new_url(parsed_url, {"period": trigger_id})
+ )
+ ]
+ ret_val.extend(actives.get(trigger_id, self._default_active))
+ return ret_val
+
+ @app.callback(
+ Output("plot-mod-url", "is_open"),
+ Input("plot-btn-url", "n_clicks"),
+ State("plot-mod-url", "is_open")
+ )
+ def toggle_plot_mod_url(n, is_open):
+ """Toggle the modal window with url.
+ """
+ if n:
+ return not is_open
+ return is_open
+
+ @app.callback(
+ Output("offcanvas-documentation", "is_open"),
+ Input("btn-documentation", "n_clicks"),
+ State("offcanvas-documentation", "is_open")
+ )
+ def toggle_offcanvas_documentation(n_clicks, is_open):
+ if n_clicks:
+ return not is_open
+ return is_open
diff --git a/csit.infra.dash/app/cdash/news/news.py b/csit.infra.dash/app/cdash/news/news.py
new file mode 100644
index 0000000000..747facc1bb
--- /dev/null
+++ b/csit.infra.dash/app/cdash/news/news.py
@@ -0,0 +1,56 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Instantiate the News Dash application.
+"""
+import dash
+import pandas as pd
+
+from ..utils.constants import Constants as C
+from .layout import Layout
+
+
+def init_news(
+ server,
+ data_stats: pd.DataFrame,
+ data_trending: pd.DataFrame
+ ) -> dash.Dash:
+ """Create a Plotly Dash dashboard.
+
+ :param server: Flask server.
+ :type server: Flask
+ :param data_stats: Pandas dataframe with staistical data.
+ :param data_trending: Pandas dataframe with trending data.
+ :type data_stats: pandas.DataFrame
+ :type data_trending: pandas.DataFrame
+ :returns: Dash app server.
+ :rtype: Dash
+ """
+
+ dash_app = dash.Dash(
+ server=server,
+ routes_pathname_prefix=C.NEWS_ROUTES_PATHNAME_PREFIX,
+ external_stylesheets=C.EXTERNAL_STYLESHEETS,
+ title=C.NEWS_TITLE
+ )
+
+ layout = Layout(
+ app=dash_app,
+ data_stats=data_stats,
+ data_trending=data_trending,
+ html_layout_file=C.HTML_LAYOUT_FILE
+ )
+ dash_app.index_string = layout.html_layout
+ dash_app.layout = layout.add_content()
+
+ return dash_app.server
diff --git a/csit.infra.dash/app/cdash/news/tables.py b/csit.infra.dash/app/cdash/news/tables.py
new file mode 100644
index 0000000000..1e9aefaf04
--- /dev/null
+++ b/csit.infra.dash/app/cdash/news/tables.py
@@ -0,0 +1,176 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""The tables with news.
+"""
+
+import pandas as pd
+import dash_bootstrap_components as dbc
+
+from datetime import datetime, timedelta
+
+
+def _table_info(job_data: pd.DataFrame) -> dbc.Table:
+ """Generates table with info about the job.
+
+ :param job_data: Dataframe with information about the job.
+ :type job_data: pandas.DataFrame
+ :returns: Table with job info.
+ :rtype: dbc.Table
+ """
+ return dbc.Table.from_dataframe(
+ pd.DataFrame.from_dict(
+ {
+ "Job": job_data["job"],
+ "Last Build": job_data["build"],
+ "Date": job_data["start"],
+ "DUT": job_data["dut_type"],
+ "DUT Version": job_data["dut_version"],
+ "Hosts": ", ".join(job_data["hosts"].to_list()[0])
+ }
+ ),
+ bordered=True,
+ striped=True,
+ hover=True,
+ size="sm",
+ color="info"
+ )
+
+
+def _table_failed(job_data: pd.DataFrame, failed: list) -> dbc.Table:
+ """Generates table with failed tests from the last run of the job.
+
+ :param job_data: Dataframe with information about the job.
+ :param failed: List of failed tests.
+ :type job_data: pandas.DataFrame
+ :type failed: list
+ :returns: Table with fialed tests.
+ :rtype: dbc.Table
+ """
+ return dbc.Table.from_dataframe(
+ pd.DataFrame.from_dict(
+ {
+ (
+ f"Last Failed Tests on "
+ f"{job_data['start'].values[0]} ({len(failed)})"
+ ): failed
+ }
+ ),
+ bordered=True,
+ striped=True,
+ hover=True,
+ size="sm",
+ color="danger"
+ )
+
+
+def _table_gressions(itms: dict, color: str) -> dbc.Table:
+ """Generates table with regressions.
+
+ :param itms: Dictionary with items (regressions or progressions) and their
+ last occurence.
+ :param color: Color of the table.
+ :type regressions: dict
+ :type color: str
+ :returns: The table with regressions.
+ :rtype: dbc.Table
+ """
+ return dbc.Table.from_dataframe(
+ pd.DataFrame.from_dict(itms),
+ bordered=True,
+ striped=True,
+ hover=True,
+ size="sm",
+ color=color
+ )
+
+
+def table_news(data: pd.DataFrame, job: str, period: int) -> list:
+ """Generates the tables with news:
+ 1. Falied tests from the last run
+ 2. Regressions and progressions calculated from the last C.NEWS_TIME_PERIOD
+ days.
+
+ :param data: Trending data with calculated annomalies to be displayed in the
+ tables.
+ :param job: The job name.
+ :param period: The time period (nr of days from now) taken into account.
+ :type data: pandas.DataFrame
+ :type job: str
+ :type period: int
+ :returns: List of tables.
+ :rtype: list
+ """
+
+ last_day = datetime.utcnow() - timedelta(days=period)
+ r_list = list()
+ job_data = data.loc[(data["job"] == job)]
+ r_list.append(_table_info(job_data))
+
+ failed = job_data["failed"].to_list()[0]
+ if failed:
+ r_list.append(_table_failed(job_data, failed))
+
+ title = f"Regressions in the last {period} days"
+ regressions = {title: list(), "Last Regression": list()}
+ for itm in job_data["regressions"].to_list()[0]:
+ if itm[1] < last_day:
+ break
+ regressions[title].append(itm[0])
+ regressions["Last Regression"].append(
+ itm[1].strftime('%Y-%m-%d %H:%M'))
+ if regressions["Last Regression"]:
+ r_list.append(_table_gressions(regressions, "warning"))
+
+ title = f"Progressions in the last {period} days"
+ progressions = {title: list(), "Last Progression": list()}
+ for itm in job_data["progressions"].to_list()[0]:
+ if itm[1] < last_day:
+ break
+ progressions[title].append(itm[0])
+ progressions["Last Progression"].append(
+ itm[1].strftime('%Y-%m-%d %H:%M'))
+ if progressions["Last Progression"]:
+ r_list.append(_table_gressions(progressions, "success"))
+
+ return r_list
+
+
+def table_summary(data: pd.DataFrame, jobs: list, period: int) -> list:
+ """Generates summary (failed tests, regressions and progressions) from the
+ last week.
+
+ :param data: Trending data with calculated annomalies to be displayed in the
+ tables.
+ :param jobs: List of jobs.
+ :params period: The time period for the summary table.
+ :type data: pandas.DataFrame
+ :type job: str
+ :type period: int
+ :returns: List of tables.
+ :rtype: list
+ """
+
+ return [
+ dbc.Accordion(
+ children=[
+ dbc.AccordionItem(
+ title=job,
+ children=table_news(data, job, period)
+ ) for job in jobs
+ ],
+ class_name="gy-2 p-0",
+ start_collapsed=True,
+ always_open=True
+ )
+ ]
diff --git a/csit.infra.dash/app/cdash/report/__init__.py b/csit.infra.dash/app/cdash/report/__init__.py
new file mode 100644
index 0000000000..c6a5f639fe
--- /dev/null
+++ b/csit.infra.dash/app/cdash/report/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
diff --git a/csit.infra.dash/app/cdash/report/graphs.py b/csit.infra.dash/app/cdash/report/graphs.py
new file mode 100644
index 0000000000..0627411d0f
--- /dev/null
+++ b/csit.infra.dash/app/cdash/report/graphs.py
@@ -0,0 +1,305 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Implementation of graphs for iterative data.
+"""
+
+import plotly.graph_objects as go
+import pandas as pd
+
+from copy import deepcopy
+from numpy import percentile
+
+from ..utils.constants import Constants as C
+from ..utils.utils import get_color, get_hdrh_latencies
+
+
+def select_iterative_data(data: pd.DataFrame, itm:dict) -> pd.DataFrame:
+ """Select the data for graphs and tables from the provided data frame.
+
+ :param data: Data frame with data for graphs and tables.
+ :param itm: Item (in this case job name) which data will be selected from
+ the input data frame.
+ :type data: pandas.DataFrame
+ :type itm: str
+ :returns: A data frame with selected data.
+ :rtype: pandas.DataFrame
+ """
+
+ phy = itm["phy"].split("-")
+ if len(phy) == 4:
+ topo, arch, nic, drv = phy
+ if drv == "dpdk":
+ drv = ""
+ else:
+ drv += "-"
+ drv = drv.replace("_", "-")
+ else:
+ return None
+
+ if itm["testtype"] in ("ndr", "pdr"):
+ test_type = "ndrpdr"
+ elif itm["testtype"] == "mrr":
+ test_type = "mrr"
+ elif itm["area"] == "hoststack":
+ test_type = "hoststack"
+ df = data.loc[(
+ (data["release"] == itm["rls"]) &
+ (data["test_type"] == test_type) &
+ (data["passed"] == True)
+ )]
+
+ core = str() if itm["dut"] == "trex" else f"{itm['core']}"
+ ttype = "ndrpdr" if itm["testtype"] in ("ndr", "pdr") else itm["testtype"]
+ regex_test = \
+ f"^.*[.|-]{nic}.*{itm['framesize']}-{core}-{drv}{itm['test']}-{ttype}$"
+ df = df[
+ (df.job.str.endswith(f"{topo}-{arch}")) &
+ (df.dut_version.str.contains(itm["dutver"].replace(".r", "-r").\
+ replace("rls", "release"))) &
+ (df.test_id.str.contains(regex_test, regex=True))
+ ]
+
+ return df
+
+
+def graph_iterative(data: pd.DataFrame, sel: list, layout: dict,
+ normalize: bool=False, remove_outliers: bool=False) -> tuple:
+ """Generate the statistical box graph with iterative data (MRR, NDR and PDR,
+ for PDR also Latencies).
+
+ :param data: Data frame with iterative data.
+ :param sel: Selected tests.
+ :param layout: Layout of plot.ly graph.
+ :param normalize: If True, the data is normalized to CPU frequency
+ Constants.NORM_FREQUENCY.
+ :param remove_outliers: If True the outliers are removed before
+ generating the table.
+ :type data: pandas.DataFrame
+ :type sel: list
+ :type layout: dict
+ :type normalize: bool
+ :type remove_outliers: bool
+ :returns: Tuple of graphs - throughput and latency.
+ :rtype: tuple(plotly.graph_objects.Figure, plotly.graph_objects.Figure)
+ """
+
+ def get_y_values(data, y_data_max, param, norm_factor, release=str(),
+ remove_outliers=False):
+ if param == "result_receive_rate_rate_values":
+ if release == "rls2402":
+ y_vals_raw = data["result_receive_rate_rate_avg"].to_list()
+ else:
+ y_vals_raw = data[param].to_list()[0]
+ else:
+ y_vals_raw = data[param].to_list()
+ y_data = [(y * norm_factor) for y in y_vals_raw]
+
+ if remove_outliers:
+ try:
+ q1 = percentile(y_data, 25, method=C.COMP_PERCENTILE_METHOD)
+ q3 = percentile(y_data, 75, method=C.COMP_PERCENTILE_METHOD)
+ irq = q3 - q1
+ lif = q1 - C.COMP_OUTLIER_TYPE * irq
+ uif = q3 + C.COMP_OUTLIER_TYPE * irq
+ y_data = [i for i in y_data if i >= lif and i <= uif]
+ except TypeError:
+ pass
+ try:
+ y_data_max = max(max(y_data), y_data_max)
+ except TypeError:
+ y_data_max = 0
+ return y_data, y_data_max
+
+ fig_tput = None
+ fig_band = None
+ fig_lat = None
+
+ tput_traces = list()
+ y_tput_max = 0
+ y_units = set()
+
+ lat_traces = list()
+ y_lat_max = 0
+ x_lat = list()
+
+ band_traces = list()
+ y_band_max = 0
+ y_band_units = set()
+ x_band = list()
+
+ for idx, itm in enumerate(sel):
+
+ itm_data = select_iterative_data(data, itm)
+ if itm_data.empty:
+ continue
+
+ phy = itm["phy"].split("-")
+ topo_arch = f"{phy[0]}-{phy[1]}" if len(phy) == 4 else str()
+ norm_factor = (C.NORM_FREQUENCY / C.FREQUENCY[topo_arch]) \
+ if normalize else 1.0
+
+ if itm["area"] == "hoststack":
+ ttype = f"hoststack-{itm['testtype']}"
+ else:
+ ttype = itm["testtype"]
+
+ y_units.update(itm_data[C.UNIT[ttype]].unique().tolist())
+
+ y_data, y_tput_max = get_y_values(
+ itm_data,
+ y_tput_max,
+ C.VALUE_ITER[ttype],
+ norm_factor,
+ itm["rls"],
+ remove_outliers
+ )
+
+ nr_of_samples = len(y_data)
+
+ customdata = list()
+ metadata = {
+ "csit release": itm["rls"],
+ "dut": itm["dut"],
+ "dut version": itm["dutver"],
+ "infra": itm["phy"],
+ "test": (
+ f"{itm['area']}-{itm['framesize']}-{itm['core']}-"
+ f"{itm['test']}-{itm['testtype']}"
+ )
+ }
+
+ if itm["testtype"] == "mrr" and itm["rls"] in ("rls2306", "rls2310"):
+ trial_run = "trial"
+ metadata["csit-ref"] = (
+ f"{itm_data['job'].to_list()[0]}/",
+ f"{itm_data['build'].to_list()[0]}"
+ )
+ customdata = [{"metadata": metadata}, ] * nr_of_samples
+ else:
+ trial_run = "run"
+ for _, row in itm_data.iterrows():
+ metadata["csit-ref"] = f"{row['job']}/{row['build']}"
+ customdata.append({"metadata": deepcopy(metadata)})
+ tput_kwargs = dict(
+ y=y_data,
+ name=(
+ f"{idx + 1}. "
+ f"({nr_of_samples:02d} "
+ f"{trial_run}{'s' if nr_of_samples > 1 else ''}) "
+ f"{itm['id']}"
+ ),
+ hoverinfo=u"y+name",
+ boxpoints="all",
+ jitter=0.3,
+ marker=dict(color=get_color(idx)),
+ customdata=customdata
+ )
+ tput_traces.append(go.Box(**tput_kwargs))
+
+ if ttype in ("ndr", "pdr", "mrr"):
+ y_band, y_band_max = get_y_values(
+ itm_data,
+ y_band_max,
+ C.VALUE_ITER[f"{ttype}-bandwidth"],
+ norm_factor,
+ remove_outliers=remove_outliers
+ )
+ if not all(pd.isna(y_band)):
+ y_band_units.update(
+ itm_data[C.UNIT[f"{ttype}-bandwidth"]].unique().\
+ dropna().tolist()
+ )
+ band_kwargs = dict(
+ y=y_band,
+ name=(
+ f"{idx + 1}. "
+ f"({nr_of_samples:02d} "
+ f"run{'s' if nr_of_samples > 1 else ''}) "
+ f"{itm['id']}"
+ ),
+ hoverinfo=u"y+name",
+ boxpoints="all",
+ jitter=0.3,
+ marker=dict(color=get_color(idx)),
+ customdata=customdata
+ )
+ x_band.append(idx + 1)
+ band_traces.append(go.Box(**band_kwargs))
+
+ if ttype == "pdr":
+ y_lat, y_lat_max = get_y_values(
+ itm_data,
+ y_lat_max,
+ C.VALUE_ITER["latency"],
+ 1 / norm_factor,
+ remove_outliers=remove_outliers
+ )
+ if not all(pd.isna(y_lat)):
+ customdata = list()
+ for _, row in itm_data.iterrows():
+ hdrh = get_hdrh_latencies(
+ row,
+ f"{metadata['infra']}-{metadata['test']}"
+ )
+ metadata["csit-ref"] = f"{row['job']}/{row['build']}"
+ customdata.append({
+ "metadata": deepcopy(metadata),
+ "hdrh": hdrh
+ })
+ nr_of_samples = len(y_lat)
+ lat_kwargs = dict(
+ y=y_lat,
+ name=(
+ f"{idx + 1}. "
+ f"({nr_of_samples:02d} "
+ f"run{u's' if nr_of_samples > 1 else u''}) "
+ f"{itm['id']}"
+ ),
+ hoverinfo="all",
+ boxpoints="all",
+ jitter=0.3,
+ marker=dict(color=get_color(idx)),
+ customdata=customdata
+ )
+ x_lat.append(idx + 1)
+ lat_traces.append(go.Box(**lat_kwargs))
+
+ if tput_traces:
+ pl_tput = deepcopy(layout["plot-throughput"])
+ pl_tput["xaxis"]["tickvals"] = [i for i in range(len(sel))]
+ pl_tput["xaxis"]["ticktext"] = [str(i + 1) for i in range(len(sel))]
+ pl_tput["yaxis"]["title"] = f"Throughput [{'|'.join(sorted(y_units))}]"
+ if y_tput_max:
+ pl_tput["yaxis"]["range"] = [0, int(y_tput_max) + 2e6]
+ fig_tput = go.Figure(data=tput_traces, layout=pl_tput)
+
+ if band_traces:
+ pl_band = deepcopy(layout["plot-bandwidth"])
+ pl_band["xaxis"]["tickvals"] = [i for i in range(len(x_band))]
+ pl_band["xaxis"]["ticktext"] = x_band
+ pl_band["yaxis"]["title"] = \
+ f"Bandwidth [{'|'.join(sorted(y_band_units))}]"
+ if y_band_max:
+ pl_band["yaxis"]["range"] = [0, int(y_band_max) + 2e9]
+ fig_band = go.Figure(data=band_traces, layout=pl_band)
+
+ if lat_traces:
+ pl_lat = deepcopy(layout["plot-latency"])
+ pl_lat["xaxis"]["tickvals"] = [i for i in range(len(x_lat))]
+ pl_lat["xaxis"]["ticktext"] = x_lat
+ if y_lat_max:
+ pl_lat["yaxis"]["range"] = [0, int(y_lat_max) + 5]
+ fig_lat = go.Figure(data=lat_traces, layout=pl_lat)
+
+ return fig_tput, fig_band, fig_lat
diff --git a/csit.infra.dash/app/cdash/report/layout.py b/csit.infra.dash/app/cdash/report/layout.py
new file mode 100644
index 0000000000..1978e7abae
--- /dev/null
+++ b/csit.infra.dash/app/cdash/report/layout.py
@@ -0,0 +1,1332 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Plotly Dash HTML layout override.
+"""
+
+
+import logging
+import pandas as pd
+import dash_bootstrap_components as dbc
+
+from flask import Flask
+from dash import dcc
+from dash import html
+from dash import callback_context, no_update, ALL
+from dash import Input, Output, State
+from dash.exceptions import PreventUpdate
+from yaml import load, FullLoader, YAMLError
+from ast import literal_eval
+
+from ..utils.constants import Constants as C
+from ..utils.control_panel import ControlPanel
+from ..utils.trigger import Trigger
+from ..utils.utils import show_tooltip, label, sync_checklists, gen_new_url, \
+ generate_options, get_list_group_items, navbar_report, \
+ show_iterative_graph_data
+from ..utils.url_processing import url_decode
+from .graphs import graph_iterative, select_iterative_data
+
+
+# Control panel partameters and their default values.
+CP_PARAMS = {
+ "dd-rls-val": str(),
+ "dd-dut-opt": list(),
+ "dd-dut-dis": True,
+ "dd-dut-val": str(),
+ "dd-dutver-opt": list(),
+ "dd-dutver-dis": True,
+ "dd-dutver-val": str(),
+ "dd-phy-opt": list(),
+ "dd-phy-dis": True,
+ "dd-phy-val": str(),
+ "dd-area-opt": list(),
+ "dd-area-dis": True,
+ "dd-area-val": str(),
+ "dd-test-opt": list(),
+ "dd-test-dis": True,
+ "dd-test-val": str(),
+ "cl-core-opt": list(),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_DISABLED,
+ "cl-frmsize-opt": list(),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_DISABLED,
+ "cl-tsttype-opt": list(),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_DISABLED,
+ "btn-add-dis": True,
+ "cl-normalize-val": list()
+}
+
+
+class Layout:
+ """The layout of the dash app and the callbacks.
+ """
+
+ def __init__(
+ self,
+ app: Flask,
+ data_iterative: pd.DataFrame,
+ html_layout_file: str,
+ graph_layout_file: str,
+ tooltip_file: str
+ ) -> None:
+ """Initialization:
+ - save the input parameters,
+ - read and pre-process the data,
+ - prepare data for the control panel,
+ - read HTML layout file,
+ - read tooltips from the tooltip file.
+
+ :param app: Flask application running the dash application.
+ :param html_layout_file: Path and name of the file specifying the HTML
+ layout of the dash application.
+ :param graph_layout_file: Path and name of the file with layout of
+ plot.ly graphs.
+ :param tooltip_file: Path and name of the yaml file specifying the
+ tooltips.
+ :type app: Flask
+ :type html_layout_file: str
+ :type graph_layout_file: str
+ :type tooltip_file: str
+ """
+
+ # Inputs
+ self._app = app
+ self._html_layout_file = html_layout_file
+ self._graph_layout_file = graph_layout_file
+ self._tooltip_file = tooltip_file
+ self._data = data_iterative
+
+ # Get structure of tests:
+ tbs = dict()
+ cols = [
+ "job", "test_id", "test_type", "dut_version", "tg_type", "release"
+ ]
+ for _, row in self._data[cols].drop_duplicates().iterrows():
+ rls = row["release"]
+ lst_job = row["job"].split("-")
+ dut = lst_job[1]
+ d_ver = row["dut_version"]
+ tbed = "-".join(lst_job[-2:])
+ lst_test_id = row["test_id"].split(".")
+ if dut == "dpdk":
+ area = "dpdk"
+ else:
+ area = ".".join(lst_test_id[3:-2])
+ suite = lst_test_id[-2].replace("2n1l-", "").replace("1n1l-", "").\
+ replace("2n-", "")
+ test = lst_test_id[-1]
+ nic = suite.split("-")[0]
+ for drv in C.DRIVERS:
+ if drv in test:
+ driver = drv.replace("-", "_")
+ test = test.replace(f"{drv}-", "")
+ break
+ else:
+ driver = "dpdk"
+ infra = "-".join((tbed, nic, driver))
+ lst_test = test.split("-")
+ framesize = lst_test[0]
+ core = lst_test[1] if lst_test[1] else "8C"
+ test = "-".join(lst_test[2: -1])
+
+ if tbs.get(rls, None) is None:
+ tbs[rls] = dict()
+ if tbs[rls].get(dut, None) is None:
+ tbs[rls][dut] = dict()
+ if tbs[rls][dut].get(d_ver, None) is None:
+ tbs[rls][dut][d_ver] = dict()
+ if tbs[rls][dut][d_ver].get(area, None) is None:
+ tbs[rls][dut][d_ver][area] = dict()
+ if tbs[rls][dut][d_ver][area].get(test, None) is None:
+ tbs[rls][dut][d_ver][area][test] = dict()
+ if tbs[rls][dut][d_ver][area][test].get(infra, None) is None:
+ tbs[rls][dut][d_ver][area][test][infra] = {
+ "core": list(),
+ "frame-size": list(),
+ "test-type": list()
+ }
+ tst_params = tbs[rls][dut][d_ver][area][test][infra]
+ if core.upper() not in tst_params["core"]:
+ tst_params["core"].append(core.upper())
+ if framesize.upper() not in tst_params["frame-size"]:
+ tst_params["frame-size"].append(framesize.upper())
+ if row["test_type"] == "mrr":
+ if "MRR" not in tst_params["test-type"]:
+ tst_params["test-type"].append("MRR")
+ elif row["test_type"] == "ndrpdr":
+ if "NDR" not in tst_params["test-type"]:
+ tst_params["test-type"].extend(("NDR", "PDR", ))
+ elif row["test_type"] == "hoststack" and \
+ row["tg_type"] in ("iperf", "vpp"):
+ if "BPS" not in tst_params["test-type"]:
+ tst_params["test-type"].append("BPS")
+ elif row["test_type"] == "hoststack" and row["tg_type"] == "ab":
+ if "CPS" not in tst_params["test-type"]:
+ tst_params["test-type"].extend(("CPS", "RPS"))
+ self._spec_tbs = tbs
+
+ # Read from files:
+ self._html_layout = str()
+ self._graph_layout = None
+ self._tooltips = dict()
+
+ try:
+ with open(self._html_layout_file, "r") as file_read:
+ self._html_layout = file_read.read()
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._html_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._graph_layout_file, "r") as file_read:
+ self._graph_layout = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._graph_layout_file}\n"
+ f"{err}"
+ )
+ except YAMLError as err:
+ raise RuntimeError(
+ f"An error occurred while parsing the specification file "
+ f"{self._graph_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._tooltip_file, "r") as file_read:
+ self._tooltips = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ logging.warning(
+ f"Not possible to open the file {self._tooltip_file}\n{err}"
+ )
+ except YAMLError as err:
+ logging.warning(
+ f"An error occurred while parsing the specification file "
+ f"{self._tooltip_file}\n{err}"
+ )
+
+ # Callbacks:
+ if self._app is not None and hasattr(self, "callbacks"):
+ self.callbacks(self._app)
+
+ @property
+ def html_layout(self):
+ return self._html_layout
+
+ def add_content(self):
+ """Top level method which generated the web page.
+
+ It generates:
+ - Store for user input data,
+ - Navigation bar,
+ - Main area with control panel and ploting area.
+
+ If no HTML layout is provided, an error message is displayed instead.
+
+ :returns: The HTML div with the whole page.
+ :rtype: html.Div
+ """
+
+ if self.html_layout and self._spec_tbs:
+ return html.Div(
+ id="div-main",
+ className="small",
+ children=[
+ dbc.Row(
+ id="row-navbar",
+ class_name="g-0",
+ children=[navbar_report((True, False, False, False)), ]
+ ),
+ dbc.Row(
+ id="row-main",
+ class_name="g-0",
+ children=[
+ dcc.Store(id="store-selected-tests"),
+ dcc.Store(id="store-control-panel"),
+ dcc.Location(id="url", refresh=False),
+ self._add_ctrl_col(),
+ self._add_plotting_col()
+ ]
+ ),
+ dbc.Spinner(
+ dbc.Offcanvas(
+ class_name="w-50",
+ id="offcanvas-metadata",
+ title="Throughput And Latency",
+ placement="end",
+ is_open=False,
+ children=[
+ dbc.Row(id="metadata-tput-lat"),
+ dbc.Row(id="metadata-hdrh-graph")
+ ]
+ ),
+ delay_show=C.SPINNER_DELAY
+ ),
+ dbc.Offcanvas(
+ class_name="w-75",
+ id="offcanvas-documentation",
+ title="Documentation",
+ placement="end",
+ is_open=False,
+ children=html.Iframe(
+ src=C.URL_DOC_REL_NOTES,
+ width="100%",
+ height="100%"
+ )
+ )
+ ]
+ )
+ else:
+ return html.Div(
+ id="div-main-error",
+ children=[
+ dbc.Alert(
+ [
+ "An Error Occured"
+ ],
+ color="danger"
+ )
+ ]
+ )
+
+ def _add_ctrl_col(self) -> dbc.Col:
+ """Add column with controls. It is placed on the left side.
+
+ :returns: Column with the control panel.
+ :rtype: dbc.Col
+ """
+ return dbc.Col([
+ html.Div(
+ children=self._add_ctrl_panel(),
+ className="sticky-top"
+ )
+ ])
+
+ def _add_plotting_col(self) -> dbc.Col:
+ """Add column with plots. It is placed on the right side.
+
+ :returns: Column with plots.
+ :rtype: dbc.Col
+ """
+ return dbc.Col(
+ id="col-plotting-area",
+ children=[
+ dbc.Spinner(
+ children=[
+ dbc.Row(
+ id="plotting-area",
+ class_name="g-0 p-0",
+ children=[
+ C.PLACEHOLDER
+ ]
+ )
+ ]
+ )
+ ],
+ width=9
+ )
+
+ def _add_ctrl_panel(self) -> list:
+ """Add control panel.
+
+ :returns: Control panel.
+ :rtype: list
+ """
+ return [
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-release",
+ "CSIT Release"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "rls"},
+ placeholder="Select a Release...",
+ options=sorted(
+ [
+ {"label": k, "value": k} \
+ for k in self._spec_tbs.keys()
+ ],
+ key=lambda d: d["label"]
+ )
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-dut",
+ "DUT"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "dut"},
+ placeholder="Select a Device under Test..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-dut-ver",
+ "DUT Version"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "dutver"},
+ placeholder=\
+ "Select a Version of Device under Test..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-area",
+ "Area"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "area"},
+ placeholder="Select an Area..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-test",
+ "Test"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "test"},
+ placeholder="Select a Test..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-infra",
+ "Infra"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "phy"},
+ placeholder=\
+ "Select a Physical Test Bed Topology..."
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(
+ children=show_tooltip(
+ self._tooltips,
+ "help-framesize",
+ "Frame Size"
+ )
+ ),
+ dbc.Col(
+ children=[
+ dbc.Checklist(
+ id={
+ "type": "ctrl-cl",
+ "index": "frmsize-all"
+ },
+ options=C.CL_ALL_DISABLED,
+ inline=True,
+ class_name="ms-2"
+ )
+ ],
+ width=2
+ ),
+ dbc.Col(
+ children=[
+ dbc.Checklist(
+ id={
+ "type": "ctrl-cl",
+ "index": "frmsize"
+ },
+ inline=True
+ )
+ ]
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(
+ children=show_tooltip(
+ self._tooltips,
+ "help-cores",
+ "Number of Cores"
+ )
+ ),
+ dbc.Col(
+ children=[
+ dbc.Checklist(
+ id={
+ "type": "ctrl-cl",
+ "index": "core-all"
+ },
+ options=C.CL_ALL_DISABLED,
+ inline=True,
+ class_name="ms-2"
+ )
+ ],
+ width=2
+ ),
+ dbc.Col(
+ children=[
+ dbc.Checklist(
+ id={
+ "type": "ctrl-cl",
+ "index": "core"
+ },
+ inline=True
+ )
+ ]
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(
+ children=show_tooltip(
+ self._tooltips,
+ "help-ttype",
+ "Test Type"
+ )
+ ),
+ dbc.Col(
+ children=[
+ dbc.Checklist(
+ id={
+ "type": "ctrl-cl",
+ "index": "tsttype-all"
+ },
+ options=C.CL_ALL_DISABLED,
+ inline=True,
+ class_name="ms-2"
+ )
+ ],
+ width=2
+ ),
+ dbc.Col(
+ children=[
+ dbc.Checklist(
+ id={
+ "type": "ctrl-cl",
+ "index": "tsttype"
+ },
+ inline=True
+ )
+ ]
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(
+ children=show_tooltip(
+ self._tooltips,
+ "help-normalize",
+ "Normalization"
+ )
+ ),
+ dbc.Col(
+ children=[
+ dbc.Checklist(
+ id="normalize",
+ options=[{
+ "value": "normalize",
+ "label": (
+ "Normalize to CPU frequency "
+ "2GHz"
+ )
+ }],
+ value=[],
+ inline=True,
+ class_name="ms-2"
+ )
+ ]
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.Button(
+ id={"type": "ctrl-btn", "index": "add-test"},
+ children="Add Selected",
+ color="info"
+ )
+ ]
+ ),
+ dbc.Row(
+ id="row-card-sel-tests",
+ class_name="g-0 p-1",
+ style=C.STYLE_DISABLED,
+ children=[
+ dbc.ListGroup(
+ class_name="overflow-auto p-0",
+ id="lg-selected",
+ children=[],
+ style={"max-height": "20em"},
+ flush=True
+ )
+ ]
+ ),
+ dbc.Stack(
+ id="row-btns-sel-tests",
+ class_name="g-0 p-1",
+ style=C.STYLE_DISABLED,
+ gap=2,
+ children=[
+ dbc.ButtonGroup(children=[
+ dbc.Button(
+ id={"type": "ctrl-btn", "index": "rm-test"},
+ children="Remove Selected",
+ class_name="w-100",
+ color="info",
+ disabled=False
+ ),
+ dbc.Button(
+ id={"type": "ctrl-btn", "index": "rm-test-all"},
+ children="Remove All",
+ class_name="w-100",
+ color="info",
+ disabled=False
+ )
+ ]),
+ dbc.ButtonGroup(children=[
+ dbc.Button(
+ id="plot-btn-url",
+ children="Show URL",
+ class_name="w-100",
+ color="info",
+ disabled=False
+ ),
+ dbc.Button(
+ id="plot-btn-download",
+ children="Download Data",
+ class_name="w-100",
+ color="info",
+ disabled=False
+ )
+ ])
+ ]
+ )
+ ]
+
+ def _get_plotting_area(
+ self,
+ tests: list,
+ normalize: bool,
+ url: str
+ ) -> list:
+ """Generate the plotting area with all its content.
+
+ :param tests: List of tests to be displayed in the graphs.
+ :param normalize: If true, the values in graphs are normalized.
+ :param url: URL to be displayed in the modal window.
+ :type tests: list
+ :type normalize: bool
+ :type url: str
+ :returns: List of rows with elements to be displayed in the plotting
+ area.
+ :rtype: list
+ """
+ if not tests:
+ return C.PLACEHOLDER
+
+ graphs = \
+ graph_iterative(self._data, tests, self._graph_layout, normalize)
+
+ if not graphs[0]:
+ return C.PLACEHOLDER
+
+ tab_items = [
+ dbc.Tab(
+ children=dcc.Graph(
+ id={"type": "graph", "index": "tput"},
+ figure=graphs[0]
+ ),
+ label="Throughput",
+ tab_id="tab-tput"
+ )
+ ]
+
+ if graphs[1]:
+ tab_items.append(
+ dbc.Tab(
+ children=dcc.Graph(
+ id={"type": "graph", "index": "bandwidth"},
+ figure=graphs[1]
+ ),
+ label="Bandwidth",
+ tab_id="tab-bandwidth"
+ )
+ )
+
+ if graphs[2]:
+ tab_items.append(
+ dbc.Tab(
+ children=dcc.Graph(
+ id={"type": "graph", "index": "lat"},
+ figure=graphs[2]
+ ),
+ label="Latency",
+ tab_id="tab-lat"
+ )
+ )
+
+ return [
+ dbc.Row(
+ dbc.Tabs(
+ children=tab_items,
+ id="tabs",
+ active_tab="tab-tput",
+ ),
+ class_name="g-0 p-0"
+ ),
+ dbc.Modal(
+ [
+ dbc.ModalHeader(dbc.ModalTitle("URL")),
+ dbc.ModalBody(url)
+ ],
+ id="plot-mod-url",
+ size="xl",
+ is_open=False,
+ scrollable=True
+ ),
+ dcc.Download(id="download-iterative-data")
+ ]
+
+ def callbacks(self, app):
+ """Callbacks for the whole application.
+
+ :param app: The application.
+ :type app: Flask
+ """
+
+ @app.callback(
+ [
+ Output("store-control-panel", "data"),
+ Output("store-selected-tests", "data"),
+ Output("plotting-area", "children"),
+ Output("row-card-sel-tests", "style"),
+ Output("row-btns-sel-tests", "style"),
+ Output("lg-selected", "children"),
+
+ Output({"type": "ctrl-dd", "index": "rls"}, "value"),
+ Output({"type": "ctrl-dd", "index": "dut"}, "options"),
+ Output({"type": "ctrl-dd", "index": "dut"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "dut"}, "value"),
+ Output({"type": "ctrl-dd", "index": "dutver"}, "options"),
+ Output({"type": "ctrl-dd", "index": "dutver"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "dutver"}, "value"),
+ Output({"type": "ctrl-dd", "index": "phy"}, "options"),
+ Output({"type": "ctrl-dd", "index": "phy"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "phy"}, "value"),
+ Output({"type": "ctrl-dd", "index": "area"}, "options"),
+ Output({"type": "ctrl-dd", "index": "area"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "area"}, "value"),
+ Output({"type": "ctrl-dd", "index": "test"}, "options"),
+ Output({"type": "ctrl-dd", "index": "test"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "test"}, "value"),
+ Output({"type": "ctrl-cl", "index": "core"}, "options"),
+ Output({"type": "ctrl-cl", "index": "core"}, "value"),
+ Output({"type": "ctrl-cl", "index": "core-all"}, "value"),
+ Output({"type": "ctrl-cl", "index": "core-all"}, "options"),
+ Output({"type": "ctrl-cl", "index": "frmsize"}, "options"),
+ Output({"type": "ctrl-cl", "index": "frmsize"}, "value"),
+ Output({"type": "ctrl-cl", "index": "frmsize-all"}, "value"),
+ Output({"type": "ctrl-cl", "index": "frmsize-all"}, "options"),
+ Output({"type": "ctrl-cl", "index": "tsttype"}, "options"),
+ Output({"type": "ctrl-cl", "index": "tsttype"}, "value"),
+ Output({"type": "ctrl-cl", "index": "tsttype-all"}, "value"),
+ Output({"type": "ctrl-cl", "index": "tsttype-all"}, "options"),
+ Output({"type": "ctrl-btn", "index": "add-test"}, "disabled"),
+ Output("normalize", "value")
+ ],
+ [
+ State("store-control-panel", "data"),
+ State("store-selected-tests", "data"),
+ State({"type": "sel-cl", "index": ALL}, "value")
+ ],
+ [
+ Input("url", "href"),
+ Input("normalize", "value"),
+
+ Input({"type": "ctrl-dd", "index": ALL}, "value"),
+ Input({"type": "ctrl-cl", "index": ALL}, "value"),
+ Input({"type": "ctrl-btn", "index": ALL}, "n_clicks")
+ ]
+ )
+ def _update_application(
+ control_panel: dict,
+ store_sel: list,
+ lst_sel: list,
+ href: str,
+ normalize: list,
+ *_
+ ) -> tuple:
+ """Update the application when the event is detected.
+ """
+
+ ctrl_panel = ControlPanel(CP_PARAMS, control_panel)
+ on_draw = False
+
+ # Parse the url:
+ parsed_url = url_decode(href)
+ if parsed_url:
+ url_params = parsed_url["params"]
+ else:
+ url_params = None
+
+ plotting_area = no_update
+ row_card_sel_tests = no_update
+ row_btns_sel_tests = no_update
+ lg_selected = no_update
+
+ trigger = Trigger(callback_context.triggered)
+
+ if trigger.type == "url" and url_params:
+ try:
+ store_sel = literal_eval(url_params["store_sel"][0])
+ normalize = literal_eval(url_params["norm"][0])
+ except (KeyError, IndexError, AttributeError):
+ pass
+ if store_sel:
+ row_card_sel_tests = C.STYLE_ENABLED
+ row_btns_sel_tests = C.STYLE_ENABLED
+ last_test = store_sel[-1]
+ test = self._spec_tbs[last_test["rls"]][last_test["dut"]]\
+ [last_test["dutver"]][last_test["area"]]\
+ [last_test["test"]][last_test["phy"]]
+ ctrl_panel.set({
+ "dd-rls-val": last_test["rls"],
+ "dd-dut-val": last_test["dut"],
+ "dd-dut-opt": generate_options(
+ self._spec_tbs[last_test["rls"]].keys()
+ ),
+ "dd-dut-dis": False,
+ "dd-dutver-val": last_test["dutver"],
+ "dd-dutver-opt": generate_options(
+ self._spec_tbs[last_test["rls"]]\
+ [last_test["dut"]].keys()
+ ),
+ "dd-dutver-dis": False,
+ "dd-area-val": last_test["area"],
+ "dd-area-opt": [
+ {"label": label(v), "value": v} for v in \
+ sorted(self._spec_tbs[last_test["rls"]]\
+ [last_test["dut"]]\
+ [last_test["dutver"]].keys())
+ ],
+ "dd-area-dis": False,
+ "dd-test-val": last_test["test"],
+ "dd-test-opt": generate_options(
+ self._spec_tbs[last_test["rls"]][last_test["dut"]]\
+ [last_test["dutver"]][last_test["area"]].keys()
+ ),
+ "dd-test-dis": False,
+ "dd-phy-val": last_test["phy"],
+ "dd-phy-opt": generate_options(
+ self._spec_tbs[last_test["rls"]][last_test["dut"]]\
+ [last_test["dutver"]][last_test["area"]]\
+ [last_test["test"]].keys()
+ ),
+ "dd-phy-dis": False,
+ "cl-core-opt": generate_options(test["core"]),
+ "cl-core-val": [last_test["core"].upper(), ],
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_ENABLED,
+ "cl-frmsize-opt": generate_options(test["frame-size"]),
+ "cl-frmsize-val": [last_test["framesize"].upper(), ],
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_ENABLED,
+ "cl-tsttype-opt": generate_options(test["test-type"]),
+ "cl-tsttype-val": [last_test["testtype"].upper(), ],
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_ENABLED,
+ "cl-normalize-val": normalize,
+ "btn-add-dis": False
+ })
+ on_draw = True
+ elif trigger.type == "normalize":
+ ctrl_panel.set({"cl-normalize-val": normalize})
+ on_draw = True
+ elif trigger.type == "ctrl-dd":
+ if trigger.idx == "rls":
+ try:
+ options = generate_options(
+ self._spec_tbs[trigger.value].keys()
+ )
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "dd-rls-val": trigger.value,
+ "dd-dut-val": str(),
+ "dd-dut-opt": options,
+ "dd-dut-dis": disabled,
+ "dd-dutver-val": str(),
+ "dd-dutver-opt": list(),
+ "dd-dutver-dis": True,
+ "dd-phy-val": str(),
+ "dd-phy-opt": list(),
+ "dd-phy-dis": True,
+ "dd-area-val": str(),
+ "dd-area-opt": list(),
+ "dd-area-dis": True,
+ "dd-test-val": str(),
+ "dd-test-opt": list(),
+ "dd-test-dis": True,
+ "cl-core-opt": list(),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_DISABLED,
+ "cl-frmsize-opt": list(),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_DISABLED,
+ "cl-tsttype-opt": list(),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_DISABLED,
+ "btn-add-dis": True
+ })
+ elif trigger.idx == "dut":
+ try:
+ rls = ctrl_panel.get("dd-rls-val")
+ dut = self._spec_tbs[rls][trigger.value]
+ options = generate_options(dut.keys())
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "dd-dut-val": trigger.value,
+ "dd-dutver-val": str(),
+ "dd-dutver-opt": options,
+ "dd-dutver-dis": disabled,
+ "dd-phy-val": str(),
+ "dd-phy-opt": list(),
+ "dd-phy-dis": True,
+ "dd-area-val": str(),
+ "dd-area-opt": list(),
+ "dd-area-dis": True,
+ "dd-test-val": str(),
+ "dd-test-opt": list(),
+ "dd-test-dis": True,
+ "cl-core-opt": list(),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_DISABLED,
+ "cl-frmsize-opt": list(),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_DISABLED,
+ "cl-tsttype-opt": list(),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_DISABLED,
+ "btn-add-dis": True
+ })
+ elif trigger.idx == "dutver":
+ try:
+ rls = ctrl_panel.get("dd-rls-val")
+ dut = ctrl_panel.get("dd-dut-val")
+ dutver = self._spec_tbs[rls][dut][trigger.value]
+ options = [{"label": label(v), "value": v} \
+ for v in sorted(dutver.keys())]
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "dd-dutver-val": trigger.value,
+ "dd-area-val": str(),
+ "dd-area-opt": options,
+ "dd-area-dis": disabled,
+ "dd-test-val": str(),
+ "dd-test-opt": list(),
+ "dd-test-dis": True,
+ "dd-phy-val": str(),
+ "dd-phy-opt": list(),
+ "dd-phy-dis": True,
+ "cl-core-opt": list(),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_DISABLED,
+ "cl-frmsize-opt": list(),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_DISABLED,
+ "cl-tsttype-opt": list(),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_DISABLED,
+ "btn-add-dis": True
+ })
+ elif trigger.idx == "area":
+ try:
+ rls = ctrl_panel.get("dd-rls-val")
+ dut = ctrl_panel.get("dd-dut-val")
+ dutver = ctrl_panel.get("dd-dutver-val")
+ area = self._spec_tbs[rls][dut][dutver][trigger.value]
+ options = generate_options(area.keys())
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "dd-area-val": trigger.value,
+ "dd-test-val": str(),
+ "dd-test-opt": options,
+ "dd-test-dis": disabled,
+ "dd-phy-val": str(),
+ "dd-phy-opt": list(),
+ "dd-phy-dis": True,
+ "cl-core-opt": list(),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_DISABLED,
+ "cl-frmsize-opt": list(),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_DISABLED,
+ "cl-tsttype-opt": list(),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_DISABLED,
+ "btn-add-dis": True
+ })
+ elif trigger.idx == "test":
+ try:
+ rls = ctrl_panel.get("dd-rls-val")
+ dut = ctrl_panel.get("dd-dut-val")
+ dutver = ctrl_panel.get("dd-dutver-val")
+ area = ctrl_panel.get("dd-area-val")
+ test = self._spec_tbs[rls][dut][dutver][area]\
+ [trigger.value]
+ options = generate_options(test.keys())
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "dd-test-val": trigger.value,
+ "dd-phy-val": str(),
+ "dd-phy-opt": options,
+ "dd-phy-dis": disabled,
+ "cl-core-opt": list(),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_DISABLED,
+ "cl-frmsize-opt": list(),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_DISABLED,
+ "cl-tsttype-opt": list(),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_DISABLED,
+ "btn-add-dis": True
+ })
+ elif trigger.idx == "phy":
+ rls = ctrl_panel.get("dd-rls-val")
+ dut = ctrl_panel.get("dd-dut-val")
+ dutver = ctrl_panel.get("dd-dutver-val")
+ area = ctrl_panel.get("dd-area-val")
+ test = ctrl_panel.get("dd-test-val")
+ if all((rls, dut, dutver, area, test, trigger.value, )):
+ phy = self._spec_tbs[rls][dut][dutver][area][test]\
+ [trigger.value]
+ ctrl_panel.set({
+ "dd-phy-val": trigger.value,
+ "cl-core-opt": generate_options(phy["core"]),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_ENABLED,
+ "cl-frmsize-opt": \
+ generate_options(phy["frame-size"]),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_ENABLED,
+ "cl-tsttype-opt": \
+ generate_options(phy["test-type"]),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_ENABLED,
+ "btn-add-dis": True
+ })
+ elif trigger.type == "ctrl-cl":
+ param = trigger.idx.split("-")[0]
+ if "-all" in trigger.idx:
+ c_sel, c_all, c_id = list(), trigger.value, "all"
+ else:
+ c_sel, c_all, c_id = trigger.value, list(), str()
+ val_sel, val_all = sync_checklists(
+ options=ctrl_panel.get(f"cl-{param}-opt"),
+ sel=c_sel,
+ all=c_all,
+ id=c_id
+ )
+ ctrl_panel.set({
+ f"cl-{param}-val": val_sel,
+ f"cl-{param}-all-val": val_all,
+ })
+ if all((ctrl_panel.get("cl-core-val"),
+ ctrl_panel.get("cl-frmsize-val"),
+ ctrl_panel.get("cl-tsttype-val"), )):
+ ctrl_panel.set({"btn-add-dis": False})
+ else:
+ ctrl_panel.set({"btn-add-dis": True})
+ elif trigger.type == "ctrl-btn":
+ on_draw = True
+ if trigger.idx == "add-test":
+ rls = ctrl_panel.get("dd-rls-val")
+ dut = ctrl_panel.get("dd-dut-val")
+ dutver = ctrl_panel.get("dd-dutver-val")
+ phy = ctrl_panel.get("dd-phy-val")
+ area = ctrl_panel.get("dd-area-val")
+ test = ctrl_panel.get("dd-test-val")
+ # Add selected test to the list of tests in store:
+ if store_sel is None:
+ store_sel = list()
+ for core in ctrl_panel.get("cl-core-val"):
+ for framesize in ctrl_panel.get("cl-frmsize-val"):
+ for ttype in ctrl_panel.get("cl-tsttype-val"):
+ if dut == "trex":
+ core = str()
+ tid = "-".join((
+ rls,
+ dut,
+ dutver,
+ phy.replace("af_xdp", "af-xdp"),
+ area,
+ framesize.lower(),
+ core.lower(),
+ test,
+ ttype.lower()
+ ))
+ if tid not in [i["id"] for i in store_sel]:
+ store_sel.append({
+ "id": tid,
+ "rls": rls,
+ "dut": dut,
+ "dutver": dutver,
+ "phy": phy,
+ "area": area,
+ "test": test,
+ "framesize": framesize.lower(),
+ "core": core.lower(),
+ "testtype": ttype.lower()
+ })
+ store_sel = sorted(store_sel, key=lambda d: d["id"])
+ if C.CLEAR_ALL_INPUTS:
+ ctrl_panel.set(ctrl_panel.defaults)
+ elif trigger.idx == "rm-test" and lst_sel:
+ new_store_sel = list()
+ for idx, item in enumerate(store_sel):
+ if not lst_sel[idx]:
+ new_store_sel.append(item)
+ store_sel = new_store_sel
+ elif trigger.idx == "rm-test-all":
+ store_sel = list()
+
+ if on_draw:
+ if store_sel:
+ lg_selected = get_list_group_items(
+ store_sel, "sel-cl", add_index=True
+ )
+ plotting_area = self._get_plotting_area(
+ store_sel,
+ bool(normalize),
+ gen_new_url(
+ parsed_url,
+ {"store_sel": store_sel, "norm": normalize}
+ )
+ )
+ row_card_sel_tests = C.STYLE_ENABLED
+ row_btns_sel_tests = C.STYLE_ENABLED
+ else:
+ plotting_area = C.PLACEHOLDER
+ row_card_sel_tests = C.STYLE_DISABLED
+ row_btns_sel_tests = C.STYLE_DISABLED
+ store_sel = list()
+
+ ret_val = [
+ ctrl_panel.panel,
+ store_sel,
+ plotting_area,
+ row_card_sel_tests,
+ row_btns_sel_tests,
+ lg_selected
+ ]
+ ret_val.extend(ctrl_panel.values)
+ return ret_val
+
+ @app.callback(
+ Output("plot-mod-url", "is_open"),
+ Output("plot-btn-url", "n_clicks"),
+ Input("plot-btn-url", "n_clicks"),
+ State("plot-mod-url", "is_open")
+ )
+ def toggle_plot_mod_url(n, is_open):
+ """Toggle the modal window with url.
+ """
+ if n:
+ return not is_open, 0
+ return is_open, 0
+
+ @app.callback(
+ Output("download-iterative-data", "data"),
+ State("store-selected-tests", "data"),
+ Input("plot-btn-download", "n_clicks"),
+ prevent_initial_call=True
+ )
+ def _download_iterative_data(store_sel, _):
+ """Download the data
+
+ :param store_sel: List of tests selected by user stored in the
+ browser.
+ :type store_sel: list
+ :returns: dict of data frame content (base64 encoded) and meta data
+ used by the Download component.
+ :rtype: dict
+ """
+
+ if not store_sel:
+ raise PreventUpdate
+
+ df = pd.DataFrame()
+ for itm in store_sel:
+ sel_data = select_iterative_data(self._data, itm)
+ if sel_data is None:
+ continue
+ df = pd.concat([df, sel_data], ignore_index=True)
+
+ return dcc.send_data_frame(df.to_csv, C.REPORT_DOWNLOAD_FILE_NAME)
+
+ @app.callback(
+ Output("metadata-tput-lat", "children"),
+ Output("metadata-hdrh-graph", "children"),
+ Output("offcanvas-metadata", "is_open"),
+ Input({"type": "graph", "index": ALL}, "clickData"),
+ prevent_initial_call=True
+ )
+ def _show_metadata_from_graphs(graph_data: dict) -> tuple:
+ """Generates the data for the offcanvas displayed when a particular
+ point in a graph is clicked on.
+
+ :param graph_data: The data from the clicked point in the graph.
+ :type graph_data: dict
+ :returns: The data to be displayed on the offcanvas and the
+ information to show the offcanvas.
+ :rtype: tuple(list, list, bool)
+ """
+
+ trigger = Trigger(callback_context.triggered)
+ if not trigger.value:
+ raise PreventUpdate
+
+ return show_iterative_graph_data(
+ trigger, graph_data, self._graph_layout)
+
+ @app.callback(
+ Output("offcanvas-documentation", "is_open"),
+ Input("btn-documentation", "n_clicks"),
+ State("offcanvas-documentation", "is_open")
+ )
+ def toggle_offcanvas_documentation(n_clicks, is_open):
+ if n_clicks:
+ return not is_open
+ return is_open
diff --git a/csit.infra.dash/app/cdash/report/layout.yaml b/csit.infra.dash/app/cdash/report/layout.yaml
new file mode 100644
index 0000000000..dea50144c2
--- /dev/null
+++ b/csit.infra.dash/app/cdash/report/layout.yaml
@@ -0,0 +1,156 @@
+plot-throughput:
+ xaxis:
+ title: "Test Cases [Index]"
+ autorange: True
+ fixedrange: False
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickmode: "array"
+ zeroline: True
+ yaxis:
+ title: "Throughput [pps|cps|rps|bps]"
+ gridcolor: "rgb(230, 230, 230)"
+ hoverformat: ".3s"
+ tickformat: ".3s"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ zeroline: True
+ range: [0, 100]
+ autosize: True
+ margin:
+ t: 50
+ b: 0
+ l: 80
+ r: 20
+ showlegend: False
+ height: 850
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-bandwidth:
+ xaxis:
+ title: "Test Cases [Index]"
+ autorange: True
+ fixedrange: False
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickmode: "array"
+ zeroline: True
+ yaxis:
+ title: "Bandwidth [bps]"
+ gridcolor: "rgb(230, 230, 230)"
+ hoverformat: ".3s"
+ tickformat: ".3s"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ zeroline: True
+ range: [0, 200]
+ autosize: True
+ margin:
+ t: 50
+ b: 0
+ l: 80
+ r: 20
+ showlegend: False
+ height: 850
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-latency:
+ xaxis:
+ title: "Test Cases [Index]"
+ autorange: True
+ fixedrange: False
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickmode: "array"
+ zeroline: True
+ yaxis:
+ title: "Average Latency at 50% PDR [us]"
+ gridcolor: "rgb(230, 230, 230)"
+ hoverformat: ".3s"
+ tickformat: ".3s"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ zeroline: True
+ range: [0, 200]
+ autosize: True
+ margin:
+ t: 50
+ b: 0
+ l: 80
+ r: 20
+ showlegend: False
+ height: 850
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-hdrh-latency:
+ showlegend: True
+ legend:
+ traceorder: "normal"
+ orientation: "h"
+ xanchor: "left"
+ yanchor: "top"
+ x: 0
+ y: -0.25
+ bgcolor: "rgba(255, 255, 255, 0)"
+ bordercolor: "rgba(255, 255, 255, 0)"
+ xaxis:
+ type: "log"
+ title: "Percentile [%]"
+ autorange: True
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickvals: [1, 2, 1e1, 20, 1e2, 1e3, 1e4, 1e5, 1e6]
+ ticktext: [0, 50, 90, 95, 99, 99.9, 99.99, 99.999, 99.9999]
+ yaxis:
+ title: "One-Way Latency per Direction [us]"
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ autosize: True
+ paper_bgcolor: "white"
+ plot_bgcolor: "white"
diff --git a/csit.infra.dash/app/cdash/report/report.py b/csit.infra.dash/app/cdash/report/report.py
new file mode 100644
index 0000000000..ce5e977f4c
--- /dev/null
+++ b/csit.infra.dash/app/cdash/report/report.py
@@ -0,0 +1,52 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Instantiate the Report Dash application.
+"""
+import dash
+import pandas as pd
+
+from ..utils.constants import Constants as C
+from .layout import Layout
+
+
+def init_report(
+ server,
+ data_iterative: pd.DataFrame
+ ) -> dash.Dash:
+ """Create a Plotly Dash dashboard.
+
+ :param server: Flask server.
+ :type server: Flask
+ :returns: Dash app server.
+ :rtype: Dash
+ """
+
+ dash_app = dash.Dash(
+ server=server,
+ routes_pathname_prefix=C.REPORT_ROUTES_PATHNAME_PREFIX,
+ external_stylesheets=C.EXTERNAL_STYLESHEETS,
+ title=C.REPORT_TITLE
+ )
+
+ layout = Layout(
+ app=dash_app,
+ data_iterative=data_iterative,
+ html_layout_file=C.HTML_LAYOUT_FILE,
+ graph_layout_file=C.REPORT_GRAPH_LAYOUT_FILE,
+ tooltip_file=C.TOOLTIP_FILE
+ )
+ dash_app.index_string = layout.html_layout
+ dash_app.layout = layout.add_content()
+
+ return dash_app.server
diff --git a/csit.infra.dash/app/cdash/routes.py b/csit.infra.dash/app/cdash/routes.py
new file mode 100644
index 0000000000..ed29fffa12
--- /dev/null
+++ b/csit.infra.dash/app/cdash/routes.py
@@ -0,0 +1,38 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Routes for parent Flask app.
+"""
+
+from flask import current_app as app
+from flask import render_template
+
+from .utils.constants import Constants as C
+
+
+@app.route(C.APPLICATIN_ROOT)
+def home():
+ """Landing page.
+ """
+ return render_template(
+ C.MAIN_HTML_LAYOUT_FILE,
+ title=C.TITLE,
+ description=C.DESCRIPTION,
+ trending_title=C.TREND_TITLE,
+ report_title=C.REPORT_TITLE,
+ comp_title=C.COMP_TITLE,
+ stats_title=C.STATS_TITLE,
+ news_title=C.NEWS_TITLE,
+ cov_title=C.COVERAGE_TITLE,
+ search_title=C.SEARCH_TITLE
+ )
diff --git a/csit.infra.dash/app/cdash/search/__init__.py b/csit.infra.dash/app/cdash/search/__init__.py
new file mode 100644
index 0000000000..c6a5f639fe
--- /dev/null
+++ b/csit.infra.dash/app/cdash/search/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
diff --git a/csit.infra.dash/app/cdash/search/layout.py b/csit.infra.dash/app/cdash/search/layout.py
new file mode 100644
index 0000000000..aa4dd53d5b
--- /dev/null
+++ b/csit.infra.dash/app/cdash/search/layout.py
@@ -0,0 +1,948 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+
+"""Plotly Dash HTML layout override.
+"""
+
+import logging
+import pandas as pd
+import dash_bootstrap_components as dbc
+
+from flask import Flask
+from dash import dcc
+from dash import html, dash_table
+from dash import callback_context, no_update, ALL
+from dash import Input, Output, State
+from dash.exceptions import PreventUpdate
+from yaml import load, FullLoader, YAMLError
+from ast import literal_eval
+
+from ..utils.constants import Constants as C
+from ..utils.control_panel import ControlPanel
+from ..utils.trigger import Trigger
+from ..utils.utils import gen_new_url, generate_options, navbar_trending, \
+ filter_table_data, sort_table_data, show_trending_graph_data, \
+ show_iterative_graph_data, show_tooltip
+from ..utils.url_processing import url_decode
+from .tables import search_table
+from ..coverage.tables import coverage_tables
+from ..report.graphs import graph_iterative
+from ..trending.graphs import graph_trending
+
+
+# Control panel partameters and their default values.
+CP_PARAMS = {
+ "datatype-val": str(),
+ "dut-opt": list(),
+ "dut-dis": C.STYLE_DONT_DISPLAY,
+ "dut-val": str(),
+ "release-opt": list(),
+ "release-dis": C.STYLE_DONT_DISPLAY,
+ "release-val": str(),
+ "help-dis": C.STYLE_DONT_DISPLAY,
+ "help-val": str(),
+ "search-dis": C.STYLE_DONT_DISPLAY,
+ "search-val": str()
+}
+
+
+class Layout:
+ """The layout of the dash app and the callbacks.
+ """
+
+ def __init__(self,
+ app: Flask,
+ data: dict,
+ html_layout_file: str,
+ graph_layout_file: str,
+ tooltip_file: str
+ ) -> None:
+ """Initialization:
+ - save the input parameters,
+ - read and pre-process the data,
+ - prepare data for the control panel,
+ - read HTML layout file,
+ - read graph layout file,
+ - read tooltips from the tooltip file.
+
+ :param app: Flask application running the dash application.
+ :param data_trending: Pandas dataframe with trending data.
+ :param html_layout_file: Path and name of the file specifying the HTML
+ layout of the dash application.
+ :param graph_layout_file: Path and name of the file with layout of
+ plot.ly graphs.
+ :param tooltip_file: Path and name of the yaml file specifying the
+ tooltips.
+ :type app: Flask
+ :type data_trending: pandas.DataFrame
+ :type html_layout_file: str
+ :type graph_layout_file: str
+ :type tooltip_file: str
+ """
+
+ # Inputs
+ self._app = app
+ self._html_layout_file = html_layout_file
+ self._graph_layout_file = graph_layout_file
+ self._tooltip_file = tooltip_file
+ # Inputs - Data
+ self._data = {
+ k: v for k, v in data.items() if not v.empty and k != "statistics"
+ }
+
+ for data_type, pd in self._data.items():
+ if pd.empty:
+ continue
+ full_id = list()
+
+ for _, row in pd.iterrows():
+ l_id = row["test_id"].split(".")
+ suite = l_id[-2].replace("2n1l-", "").replace("1n1l-", "").\
+ replace("2n-", "")
+ tb = "-".join(row["job"].split("-")[-2:])
+ nic = suite.split("-")[0]
+ for driver in C.DRIVERS:
+ if driver in suite:
+ drv = driver
+ break
+ else:
+ drv = "dpdk"
+ test = l_id[-1]
+
+ if data_type in ("iterative", "coverage", ):
+ full_id.append(
+ "_".join((row["release"], row["dut_type"],
+ row["dut_version"], tb, nic, drv, test))
+ )
+ else: # Trending
+ full_id.append(
+ "_".join((row["dut_type"], tb, nic, drv, test))
+ )
+ pd["full_id"] = full_id
+
+ # Get structure of tests:
+ self._duts = dict()
+ for data_type, pd in self._data.items():
+ if pd.empty:
+ continue
+ self._duts[data_type] = dict()
+ if data_type in ("iterative", "coverage", ):
+ cols = ["job", "dut_type", "dut_version", "release", "test_id"]
+ for _, row in pd[cols].drop_duplicates().iterrows():
+ dut = row["dut_type"]
+ if self._duts[data_type].get(dut, None) is None:
+ self._duts[data_type][dut] = list()
+ if row["release"] not in self._duts[data_type][dut]:
+ self._duts[data_type][dut].append(row["release"])
+ else:
+ for dut in pd["dut_type"].unique():
+ if self._duts[data_type].get(dut, None) is None:
+ self._duts[data_type][dut] = list()
+
+ # Read from files:
+ self._html_layout = str()
+ self._graph_layout = None
+ self._tooltips = dict()
+
+ try:
+ with open(self._html_layout_file, "r") as file_read:
+ self._html_layout = file_read.read()
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._html_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._graph_layout_file, "r") as file_read:
+ self._graph_layout = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._graph_layout_file}\n"
+ f"{err}"
+ )
+ except YAMLError as err:
+ raise RuntimeError(
+ f"An error occurred while parsing the specification file "
+ f"{self._graph_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._tooltip_file, "r") as file_read:
+ self._tooltips = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ logging.warning(
+ f"Not possible to open the file {self._tooltip_file}\n{err}"
+ )
+ except YAMLError as err:
+ logging.warning(
+ f"An error occurred while parsing the specification file "
+ f"{self._tooltip_file}\n{err}"
+ )
+
+ # Callbacks:
+ if self._app is not None and hasattr(self, "callbacks"):
+ self.callbacks(self._app)
+
+ @property
+ def html_layout(self):
+ return self._html_layout
+
+ def add_content(self):
+ """Top level method which generated the web page.
+
+ It generates:
+ - Store for user input data,
+ - Navigation bar,
+ - Main area with control panel and ploting area.
+
+ If no HTML layout is provided, an error message is displayed instead.
+
+ :returns: The HTML div with the whole page.
+ :rtype: html.Div
+ """
+ if self.html_layout and self._duts:
+ return html.Div(
+ id="div-main",
+ className="small",
+ children=[
+ dcc.Store(id="store"),
+ dcc.Store(id="store-table-data"),
+ dcc.Store(id="store-filtered-table-data"),
+ dcc.Location(id="url", refresh=False),
+ dbc.Row(
+ id="row-navbar",
+ class_name="g-0",
+ children=[navbar_trending((False, False, False, True))]
+ ),
+ dbc.Row(
+ id="row-main",
+ class_name="g-0",
+ children=[
+ self._add_ctrl_col(),
+ self._add_plotting_col()
+ ]
+ ),
+ dbc.Spinner(
+ dbc.Offcanvas(
+ class_name="w-75",
+ id="offcanvas-details",
+ title="Test Details",
+ placement="end",
+ is_open=False,
+ children=[]
+ ),
+ delay_show=C.SPINNER_DELAY
+ ),
+ dbc.Spinner(
+ dbc.Offcanvas(
+ class_name="w-50",
+ id="offcanvas-metadata",
+ title="Detailed Information",
+ placement="end",
+ is_open=False,
+ children=[
+ dbc.Row(id="metadata-tput-lat"),
+ dbc.Row(id="metadata-hdrh-graph")
+ ]
+ ),
+ delay_show=C.SPINNER_DELAY
+ ),
+ dbc.Offcanvas(
+ class_name="w-75",
+ id="offcanvas-documentation",
+ title="Documentation",
+ placement="end",
+ is_open=False,
+ children=html.Iframe(
+ src=C.URL_DOC_TRENDING,
+ width="100%",
+ height="100%"
+ )
+ )
+ ]
+ )
+ else:
+ return html.Div(
+ dbc.Alert("An Error Occured", color="danger"),
+ id="div-main-error"
+ )
+
+ def _add_ctrl_col(self) -> dbc.Col:
+ """Add column with controls. It is placed on the left side.
+
+ :returns: Column with the control panel.
+ :rtype: dbc.Col
+ """
+ return dbc.Col(html.Div(self._add_ctrl_panel(), className="sticky-top"))
+
+ def _add_ctrl_panel(self) -> list:
+ """Add control panel.
+
+ :returns: Control panel.
+ :rtype: list
+ """
+ return [
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-data-type",
+ "Data Type"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "datatype"},
+ placeholder="Select a Data Type...",
+ options=sorted(
+ [
+ {"label": k, "value": k} \
+ for k in self._data.keys()
+ ],
+ key=lambda d: d["label"]
+ )
+ )
+ ],
+ size="sm"
+ )
+ ],
+ style=C.STYLE_DISPLAY
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ id={"type": "ctrl-row", "index": "dut"},
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-dut",
+ "DUT"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "dut"},
+ placeholder="Select a Device under Test..."
+ )
+ ],
+ size="sm"
+ )
+ ],
+ style=C.STYLE_DONT_DISPLAY
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ id={"type": "ctrl-row", "index": "release"},
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-release",
+ "CSIT Release"
+ )),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "release"},
+ placeholder="Select a Release..."
+ )
+ ],
+ size="sm"
+ )
+ ],
+ style=C.STYLE_DONT_DISPLAY
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ id={"type": "ctrl-row", "index": "help"},
+ children=[
+ dbc.Input(
+ id={"type": "ctrl-dd", "index": "help"},
+ readonly=True,
+ debounce=True,
+ size="sm"
+ )
+ ],
+ style=C.STYLE_DONT_DISPLAY
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ id={"type": "ctrl-row", "index": "search"},
+ children=[
+ dbc.Input(
+ id={"type": "ctrl-dd", "index": "search"},
+ placeholder="Type a Regular Expression...",
+ debounce=True,
+ size="sm"
+ )
+ ],
+ style=C.STYLE_DONT_DISPLAY
+ )
+ ]
+
+ def _add_plotting_col(self) -> dbc.Col:
+ """Add column with tables. It is placed on the right side.
+
+ :returns: Column with tables.
+ :rtype: dbc.Col
+ """
+ return dbc.Col(
+ id="col-plotting-area",
+ children=[
+ dbc.Spinner(
+ children=[
+ dbc.Row(
+ id="plotting-area",
+ class_name="g-0 p-0",
+ children=[C.PLACEHOLDER, ]
+ )
+ ]
+ )
+ ],
+ width=9
+ )
+
+ @staticmethod
+ def _get_plotting_area(table: pd.DataFrame, url: str) -> list:
+ """Generate the plotting area with all its content.
+
+ :param table: Search table to be displayed.
+ :param url: URL to be displayed in a modal window.
+ :type table: pandas.DataFrame
+ :type url: str
+ :returns: List of rows with elements to be displayed in the plotting
+ area.
+ :rtype: list
+ """
+
+ if table.empty:
+ return dbc.Row(
+ dbc.Col(
+ children=dbc.Alert(
+ "No data found.",
+ color="danger"
+ ),
+ class_name="g-0 p-1",
+ ),
+ class_name="g-0 p-0"
+ )
+
+ columns = [{"name": col, "id": col} for col in table.columns]
+
+ return [
+ dbc.Row(
+ children=[
+ dbc.Col(
+ children=dash_table.DataTable(
+ id={"type": "table", "index": "search"},
+ columns=columns,
+ data=table.to_dict("records"),
+ filter_action="custom",
+ sort_action="custom",
+ sort_mode="multi",
+ selected_columns=[],
+ selected_rows=[],
+ page_action="none",
+ style_cell={"textAlign": "left"}
+ ),
+ class_name="g-0 p-1"
+ )
+ ],
+ class_name="g-0 p-0"
+ ),
+ dbc.Row(
+ [
+ dbc.Col([html.Div(
+ [
+ dbc.Button(
+ id="plot-btn-url",
+ children="Show URL",
+ class_name="me-1",
+ color="info",
+ style={
+ "text-transform": "none",
+ "padding": "0rem 1rem"
+ }
+ ),
+ dbc.Modal(
+ [
+ dbc.ModalHeader(dbc.ModalTitle("URL")),
+ dbc.ModalBody(url)
+ ],
+ id="plot-mod-url",
+ size="xl",
+ is_open=False,
+ scrollable=True
+ ),
+ dbc.Button(
+ id="plot-btn-download",
+ children="Download Data",
+ class_name="me-1",
+ color="info",
+ style={
+ "text-transform": "none",
+ "padding": "0rem 1rem"
+ }
+ ),
+ dcc.Download(id="download-data")
+ ],
+ className=\
+ "d-grid gap-0 d-md-flex justify-content-md-end"
+ )])
+ ],
+ class_name="g-0 p-0"
+ ),
+ dbc.Row(
+ children=C.PLACEHOLDER,
+ class_name="g-0 p-1"
+ )
+ ]
+
+ def callbacks(self, app):
+ """Callbacks for the whole application.
+
+ :param app: The application.
+ :type app: Flask
+ """
+
+ @app.callback(
+ Output("store", "data"),
+ Output("store-table-data", "data"),
+ Output("store-filtered-table-data", "data"),
+ Output("plotting-area", "children"),
+ Output({"type": "table", "index": ALL}, "data"),
+ Output({"type": "ctrl-dd", "index": "datatype"}, "value"),
+ Output({"type": "ctrl-dd", "index": "dut"}, "options"),
+ Output({"type": "ctrl-row", "index": "dut"}, "style"),
+ Output({"type": "ctrl-dd", "index": "dut"}, "value"),
+ Output({"type": "ctrl-dd", "index": "release"}, "options"),
+ Output({"type": "ctrl-row", "index": "release"}, "style"),
+ Output({"type": "ctrl-dd", "index": "release"}, "value"),
+ Output({"type": "ctrl-row", "index": "help"}, "style"),
+ Output({"type": "ctrl-dd", "index": "help"}, "value"),
+ Output({"type": "ctrl-row", "index": "search"}, "style"),
+ Output({"type": "ctrl-dd", "index": "search"}, "value"),
+ State("store", "data"),
+ State("store-table-data", "data"),
+ State("store-filtered-table-data", "data"),
+ State({"type": "table", "index": ALL}, "data"),
+ Input("url", "href"),
+ Input({"type": "table", "index": ALL}, "filter_query"),
+ Input({"type": "table", "index": ALL}, "sort_by"),
+ Input({"type": "ctrl-dd", "index": ALL}, "value"),
+ prevent_initial_call=True
+ )
+ def _update_application(
+ store: dict,
+ store_table_data: list,
+ filtered_data: list,
+ table_data: list,
+ href: str,
+ *_
+ ) -> tuple:
+ """Update the application when the event is detected.
+ """
+
+ if store is None:
+ store = {
+ "control-panel": dict(),
+ "selection": dict()
+ }
+
+ ctrl_panel = ControlPanel(
+ CP_PARAMS,
+ store.get("control-panel", dict())
+ )
+ selection = store["selection"]
+
+ plotting_area = no_update
+ on_draw = False
+
+ # Parse the url:
+ parsed_url = url_decode(href)
+ if parsed_url:
+ url_params = parsed_url["params"]
+ else:
+ url_params = None
+
+ trigger = Trigger(callback_context.triggered)
+ if trigger.type == "url" and url_params:
+ try:
+ selection = literal_eval(url_params["selection"][0])
+ if selection:
+ dtype = selection["datatype"]
+ dut = selection["dut"]
+ if dtype == "trending":
+ rls_opts = list()
+ rls_dis = C.STYLE_DONT_DISPLAY
+ else:
+ rls_opts = generate_options(self._duts[dtype][dut])
+ rls_dis = C.STYLE_DISPLAY
+ ctrl_panel.set({
+ "datatype-val": dtype,
+ "dut-opt": \
+ generate_options(self._duts[dtype].keys()),
+ "dut-dis": C.STYLE_DISPLAY,
+ "dut-val": dut,
+ "release-opt": rls_opts,
+ "release-dis": rls_dis,
+ "release-val": selection["release"],
+ "help-dis": C.STYLE_DISPLAY,
+ "help-val": selection["help"],
+ "search-dis": C.STYLE_DISPLAY,
+ "search-val": selection["regexp"]
+ })
+ on_draw = True
+ except (KeyError, IndexError, AttributeError, ValueError):
+ pass
+ elif trigger.type == "ctrl-dd":
+ if trigger.idx == "datatype":
+ try:
+ data_type = self._duts[trigger.value]
+ options = generate_options(data_type.keys())
+ disabled = C.STYLE_DISPLAY
+ except KeyError:
+ options = list()
+ disabled = C.STYLE_DONT_DISPLAY
+ ctrl_panel.set({
+ "datatype-val": trigger.value,
+ "dut-opt": options,
+ "dut-dis": disabled,
+ "dut-val": str(),
+ "release-opt": list(),
+ "release-dis": C.STYLE_DONT_DISPLAY,
+ "release-val": str(),
+ "help-dis": C.STYLE_DONT_DISPLAY,
+ "help-val": str(),
+ "search-dis": C.STYLE_DONT_DISPLAY,
+ "search-val": str()
+ })
+ elif trigger.idx == "dut":
+ try:
+ data_type = ctrl_panel.get("datatype-val")
+ dut = self._duts[data_type][trigger.value]
+ if data_type != "trending":
+ options = generate_options(dut)
+ disabled = C.STYLE_DISPLAY
+ except KeyError:
+ options = list()
+ disabled = C.STYLE_DONT_DISPLAY
+ if data_type == "trending":
+ ctrl_panel.set({
+ "dut-val": trigger.value,
+ "release-opt": list(),
+ "release-dis": C.STYLE_DONT_DISPLAY,
+ "release-val": str(),
+ "help-dis": disabled,
+ "help-val": "<testbed> <nic> <driver> " + \
+ "<framesize> <cores> <test>",
+ "search-dis": disabled,
+ "search-val": str()
+ })
+ else:
+ ctrl_panel.set({
+ "dut-val": trigger.value,
+ "release-opt": options,
+ "release-dis": disabled,
+ "release-val": str(),
+ "help-dis": C.STYLE_DONT_DISPLAY,
+ "help-val": str(),
+ "search-dis": C.STYLE_DONT_DISPLAY,
+ "search-val": str()
+ })
+ elif trigger.idx == "release":
+ ctrl_panel.set({
+ "release-val": trigger.value,
+ "help-dis": C.STYLE_DISPLAY,
+ "help-val": "<DUT version> <testbed> <nic> " + \
+ "<driver> <framesize> <core> <test>",
+ "search-dis": C.STYLE_DISPLAY,
+ "search-val": str()
+ })
+ elif trigger.idx == "search":
+ ctrl_panel.set({"search-val": trigger.value})
+ selection = {
+ "datatype": ctrl_panel.get("datatype-val"),
+ "dut": ctrl_panel.get("dut-val"),
+ "release": ctrl_panel.get("release-val"),
+ "help": ctrl_panel.get("help-val"),
+ "regexp": ctrl_panel.get("search-val"),
+ }
+ on_draw = True
+ elif trigger.type == "table" and trigger.idx == "search":
+ if trigger.parameter == "filter_query":
+ filtered_data = filter_table_data(
+ store_table_data,
+ trigger.value
+ )
+ elif trigger.parameter == "sort_by":
+ filtered_data = sort_table_data(
+ store_table_data,
+ trigger.value
+ )
+ table_data = [filtered_data, ]
+
+ if on_draw:
+ table = search_table(data=self._data, selection=selection)
+ plotting_area = Layout._get_plotting_area(
+ table,
+ gen_new_url(parsed_url, {"selection": selection})
+ )
+ store_table_data = table.to_dict("records")
+ filtered_data = store_table_data
+ if table_data:
+ table_data = [store_table_data, ]
+ else:
+ plotting_area = no_update
+
+ store["control-panel"] = ctrl_panel.panel
+ store["selection"] = selection
+ ret_val = [
+ store,
+ store_table_data,
+ filtered_data,
+ plotting_area,
+ table_data
+ ]
+ ret_val.extend(ctrl_panel.values)
+
+ return ret_val
+
+ @app.callback(
+ Output("offcanvas-details", "is_open"),
+ Output("offcanvas-details", "children"),
+ State("store", "data"),
+ State("store-filtered-table-data", "data"),
+ Input({"type": "table", "index": ALL}, "active_cell"),
+ prevent_initial_call=True
+ )
+ def show_test_data(store, table, *_):
+ """Show offcanvas with graphs and tables based on selected test(s).
+ """
+
+ trigger = Trigger(callback_context.triggered)
+ if not trigger.value:
+ raise PreventUpdate
+
+ try:
+ row = pd.DataFrame.from_records(table).\
+ iloc[[trigger.value["row"]]]
+ datatype = store["selection"]["datatype"]
+ dut = store["selection"]["dut"]
+ rls = store["selection"]["release"]
+ tb = row["Test Bed"].iloc[0]
+ nic = row["NIC"].iloc[0]
+ driver = row["Driver"].iloc[0]
+ test_name = row["Test"].iloc[0]
+ dutver = str()
+ except(KeyError, IndexError, AttributeError, ValueError):
+ raise PreventUpdate
+
+ data = self._data[datatype]
+ if datatype == "trending":
+ df = pd.DataFrame(data.loc[data["dut_type"] == dut])
+ else:
+ dutver = row["DUT Version"].iloc[0]
+ df = pd.DataFrame(data.loc[(
+ (data["dut_type"] == dut) &
+ (data["dut_version"] == dutver) &
+ (data["release"] == rls)
+ )])
+
+ df = df[df.full_id.str.contains(
+ f".*{tb}.*{nic}.*{test_name}",
+ regex=True
+ )]
+
+ if datatype in ("trending", "iterative"):
+ l_test_id = df["test_id"].iloc[0].split(".")
+ if dut == "dpdk":
+ area = "dpdk"
+ else:
+ area = ".".join(l_test_id[3:-2])
+ for drv in C.DRIVERS:
+ if drv in test_name:
+ test = test_name.replace(f"{drv}-", "")
+ break
+ else:
+ test = test_name
+ l_test = test.split("-")
+ testtype = l_test[-1]
+ if testtype == "ndrpdr":
+ testtype = ["ndr", "pdr"]
+ else:
+ testtype = [testtype, ]
+ core = l_test[1] if l_test[1] else "8c"
+ test = "-".join(l_test[2: -1])
+ test_id = f"{tb}-{nic}-{driver}-{l_test[0]}-{core}-{test}"
+ title = dbc.Row(
+ class_name="g-0 p-0",
+ children=dbc.Alert(test_id, color="info"),
+ )
+ selected = list()
+ indexes = ("tput", "bandwidth", "lat")
+ if datatype == "trending":
+ for ttype in testtype:
+ selected.append({
+ "id": f"{dut}-{test_id}-{ttype}",
+ "dut": dut,
+ "phy": f"{tb}-{nic}-{driver}",
+ "area": area,
+ "test": test,
+ "framesize": l_test[0],
+ "core": core,
+ "testtype": ttype
+ })
+ graphs = graph_trending(df, selected, self._graph_layout)
+ labels = ("Throughput", "Bandwidth", "Latency")
+ tabs = list()
+ for graph, label, idx in zip(graphs, labels, indexes):
+ if graph:
+ tabs.append(dbc.Tab(
+ children=dcc.Graph(
+ figure=graph,
+ id={"type": "graph-trend", "index": idx},
+ ),
+ label=label
+ ))
+ if tabs:
+ ret_val = [
+ title,
+ dbc.Row(dbc.Tabs(tabs), class_name="g-0 p-0")
+ ]
+ else:
+ ret_val = [
+ title,
+ dbc.Row("No data.", class_name="g-0 p-0")
+ ]
+
+ else: # Iterative
+ for ttype in testtype:
+ selected.append({
+ "id": f"{test_id}-{ttype}",
+ "rls": rls,
+ "dut": dut,
+ "dutver": dutver,
+ "phy": f"{tb}-{nic}-{driver}",
+ "area": area,
+ "test": test,
+ "framesize": l_test[0],
+ "core": core,
+ "testtype": ttype
+ })
+ graphs = graph_iterative(df, selected, self._graph_layout)
+ cols = list()
+ for graph, idx in zip(graphs, indexes):
+ if graph:
+ cols.append(dbc.Col(dcc.Graph(
+ figure=graph,
+ id={"type": "graph-iter", "index": idx},
+ )))
+ if not cols:
+ cols="No data."
+ ret_val = [
+ title,
+ dbc.Row(class_name="g-0 p-0", children=cols)
+ ]
+
+ elif datatype == "coverage":
+ ret_val = coverage_tables(
+ data=df,
+ selected={
+ "rls": rls,
+ "dut": dut,
+ "dutver": dutver,
+ "phy": f"{tb}-{nic}-{driver}",
+ "area": ".*",
+ },
+ start_collapsed=False
+ )
+ else:
+ raise PreventUpdate
+
+ return True, ret_val
+
+ @app.callback(
+ Output("metadata-tput-lat", "children"),
+ Output("metadata-hdrh-graph", "children"),
+ Output("offcanvas-metadata", "is_open"),
+ Input({"type": "graph-trend", "index": ALL}, "clickData"),
+ Input({"type": "graph-iter", "index": ALL}, "clickData"),
+ prevent_initial_call=True
+ )
+ def _show_metadata_from_graph(
+ trend_data: dict,
+ iter_data: dict
+ ) -> tuple:
+ """Generates the data for the offcanvas displayed when a particular
+ point in a graph is clicked on.
+ """
+
+ trigger = Trigger(callback_context.triggered)
+ if not trigger.value:
+ raise PreventUpdate
+
+ if trigger.type == "graph-trend":
+ return show_trending_graph_data(
+ trigger, trend_data, self._graph_layout)
+ elif trigger.type == "graph-iter":
+ return show_iterative_graph_data(
+ trigger, iter_data, self._graph_layout)
+ else:
+ raise PreventUpdate
+
+ @app.callback(
+ Output("plot-mod-url", "is_open"),
+ Input("plot-btn-url", "n_clicks"),
+ State("plot-mod-url", "is_open")
+ )
+ def toggle_plot_mod_url(n, is_open):
+ """Toggle the modal window with url.
+ """
+ if n:
+ return not is_open
+ return is_open
+
+ @app.callback(
+ Output("download-data", "data"),
+ State("store-filtered-table-data", "data"),
+ Input("plot-btn-download", "n_clicks"),
+ prevent_initial_call=True
+ )
+ def _download_search_data(selection, _):
+ """Download the data.
+
+ :param selection: Selected data in table format (records).
+ :type selection: dict
+ :returns: dict of data frame content (base64 encoded) and meta data
+ used by the Download component.
+ :rtype: dict
+ """
+
+ if not selection:
+ raise PreventUpdate
+
+ return dcc.send_data_frame(
+ pd.DataFrame.from_records(selection).to_csv,
+ C.SEARCH_DOWNLOAD_FILE_NAME
+ )
+
+ @app.callback(
+ Output("offcanvas-documentation", "is_open"),
+ Input("btn-documentation", "n_clicks"),
+ State("offcanvas-documentation", "is_open")
+ )
+ def toggle_offcanvas_documentation(n_clicks, is_open):
+ if n_clicks:
+ return not is_open
+ return is_open
diff --git a/csit.infra.dash/app/cdash/search/layout.yaml b/csit.infra.dash/app/cdash/search/layout.yaml
new file mode 100644
index 0000000000..7d86e53f67
--- /dev/null
+++ b/csit.infra.dash/app/cdash/search/layout.yaml
@@ -0,0 +1,276 @@
+plot-throughput:
+ xaxis:
+ title: "Test Cases [Index]"
+ autorange: True
+ fixedrange: False
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickmode: "array"
+ zeroline: True
+ yaxis:
+ title: "Throughput [pps|cps|rps|bps]"
+ gridcolor: "rgb(230, 230, 230)"
+ hoverformat: ".3s"
+ tickformat: ".3s"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ zeroline: True
+ range: [0, 100]
+ autosize: True
+ margin:
+ t: 50
+ b: 0
+ l: 80
+ r: 20
+ showlegend: False
+ height: 850
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-bandwidth:
+ xaxis:
+ title: "Test Cases [Index]"
+ autorange: True
+ fixedrange: False
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickmode: "array"
+ zeroline: True
+ yaxis:
+ title: "Bandwidth [bps]"
+ gridcolor: "rgb(230, 230, 230)"
+ hoverformat: ".3s"
+ tickformat: ".3s"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ zeroline: True
+ range: [0, 200]
+ autosize: True
+ margin:
+ t: 50
+ b: 0
+ l: 80
+ r: 20
+ showlegend: False
+ height: 850
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-latency:
+ xaxis:
+ title: "Test Cases [Index]"
+ autorange: True
+ fixedrange: False
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickmode: "array"
+ zeroline: True
+ yaxis:
+ title: "Average Latency at 50% PDR [us]"
+ gridcolor: "rgb(230, 230, 230)"
+ hoverformat: ".3s"
+ tickformat: ".3s"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ zeroline: True
+ range: [0, 200]
+ autosize: True
+ margin:
+ t: 50
+ b: 0
+ l: 80
+ r: 20
+ showlegend: False
+ height: 850
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-trending-tput:
+ autosize: True
+ showlegend: False
+ yaxis:
+ showticklabels: True
+ tickformat: ".3s"
+ title: "Throughput [pps|cps|rps|bps]"
+ hoverformat: ".5s"
+ gridcolor: "rgb(238, 238, 238)"
+ linecolor: "rgb(238, 238, 238)"
+ showline: True
+ zeroline: False
+ tickcolor: "rgb(238, 238, 238)"
+ linewidth: 1
+ showgrid: True
+ xaxis:
+ title: 'Date [MMDD]'
+ type: "date"
+ autorange: True
+ fixedrange: False
+ showgrid: True
+ gridcolor: "rgb(238, 238, 238)"
+ showline: True
+ linecolor: "rgb(238, 238, 238)"
+ zeroline: False
+ linewidth: 1
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "auto"
+ tickformat: "%m%d"
+ margin:
+ r: 20
+ b: 0
+ t: 5
+ l: 70
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-trending-bandwidth:
+ autosize: True
+ showlegend: False
+ yaxis:
+ showticklabels: True
+ tickformat: ".3s"
+ title: "Bandwidth [bps]"
+ hoverformat: ".5s"
+ gridcolor: "rgb(238, 238, 238)"
+ linecolor: "rgb(238, 238, 238)"
+ showline: True
+ zeroline: False
+ tickcolor: "rgb(238, 238, 238)"
+ linewidth: 1
+ showgrid: True
+ xaxis:
+ title: 'Date [MMDD]'
+ type: "date"
+ autorange: True
+ fixedrange: False
+ showgrid: True
+ gridcolor: "rgb(238, 238, 238)"
+ showline: True
+ linecolor: "rgb(238, 238, 238)"
+ zeroline: False
+ linewidth: 1
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "auto"
+ tickformat: "%m%d"
+ margin:
+ r: 20
+ b: 0
+ t: 5
+ l: 70
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-trending-lat:
+ autosize: True
+ showlegend: False
+ yaxis:
+ showticklabels: True
+ tickformat: ".3s"
+ title: "Average Latency at 50% PDR [us]"
+ hoverformat: ".5s"
+ gridcolor: "rgb(238, 238, 238)"
+ linecolor: "rgb(238, 238, 238)"
+ showline: True
+ zeroline: False
+ tickcolor: "rgb(238, 238, 238)"
+ linewidth: 1
+ showgrid: True
+ xaxis:
+ title: 'Date [MMDD]'
+ type: "date"
+ autorange: True
+ fixedrange: False
+ showgrid: True
+ gridcolor: "rgb(238, 238, 238)"
+ showline: True
+ linecolor: "rgb(238, 238, 238)"
+ zeroline: False
+ linewidth: 1
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "auto"
+ tickformat: "%m%d"
+ margin:
+ r: 20
+ b: 0
+ t: 5
+ l: 70
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-hdrh-latency:
+ showlegend: True
+ legend:
+ traceorder: "normal"
+ orientation: "h"
+ xanchor: "left"
+ yanchor: "top"
+ x: 0
+ y: -0.25
+ bgcolor: "rgba(255, 255, 255, 0)"
+ bordercolor: "rgba(255, 255, 255, 0)"
+ xaxis:
+ type: "log"
+ title: "Percentile [%]"
+ autorange: True
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickvals: [1, 2, 1e1, 20, 1e2, 1e3, 1e4, 1e5, 1e6]
+ ticktext: [0, 50, 90, 95, 99, 99.9, 99.99, 99.999, 99.9999]
+ yaxis:
+ title: "One-Way Latency per Direction [us]"
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ autosize: True
+ paper_bgcolor: "white"
+ plot_bgcolor: "white"
diff --git a/csit.infra.dash/app/cdash/search/search.py b/csit.infra.dash/app/cdash/search/search.py
new file mode 100644
index 0000000000..0ecdcb7f82
--- /dev/null
+++ b/csit.infra.dash/app/cdash/search/search.py
@@ -0,0 +1,52 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Instantiate the Search Dash application.
+"""
+
+import dash
+
+from ..utils.constants import Constants as C
+from .layout import Layout
+
+
+def init_search(
+ server,
+ data: tuple
+ ) -> dash.Dash:
+ """Create a Plotly Dash dashboard.
+
+ :param server: Flask server.
+ :type server: Flask
+ :returns: Dash app server.
+ :rtype: Dash
+ """
+
+ dash_app = dash.Dash(
+ server=server,
+ routes_pathname_prefix=C.SEARCH_ROUTES_PATHNAME_PREFIX,
+ external_stylesheets=C.EXTERNAL_STYLESHEETS,
+ title=C.SEARCH_TITLE
+ )
+
+ layout = Layout(
+ app=dash_app,
+ data=data,
+ html_layout_file=C.HTML_LAYOUT_FILE,
+ graph_layout_file=C.SEARCH_GRAPH_LAYOUT_FILE,
+ tooltip_file=C.TOOLTIP_FILE
+ )
+ dash_app.index_string = layout.html_layout
+ dash_app.layout = layout.add_content()
+
+ return dash_app.server
diff --git a/csit.infra.dash/app/cdash/search/tables.py b/csit.infra.dash/app/cdash/search/tables.py
new file mode 100644
index 0000000000..a5ffd76d3d
--- /dev/null
+++ b/csit.infra.dash/app/cdash/search/tables.py
@@ -0,0 +1,123 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""The search data tables.
+"""
+
+
+import pandas as pd
+
+from ..utils.constants import Constants as C
+
+
+def select_search_data(data: pd.DataFrame, selection: list) -> pd.DataFrame:
+ """Return the searched data based on the user's "selection".
+
+ :param data: Input data to be searched through.
+ :param selection: User selection.
+ :type data: pandas.DataFrame
+ :type selection: list[dict]
+ :returns: A dataframe with selected tests.
+ :trype: pandas.DataFrame
+ """
+
+ sel_data = data[selection["datatype"]]
+
+ if selection["datatype"] == "trending":
+ df = pd.DataFrame(sel_data.loc[
+ sel_data["dut_type"] == selection["dut"]
+ ])
+ else:
+ df = pd.DataFrame(sel_data.loc[(
+ (sel_data["dut_type"] == selection["dut"]) &
+ (sel_data["release"] == selection["release"])
+ )])
+ try:
+ df = df[
+ df.full_id.str.contains(
+ selection["regexp"].replace(" ", ".*"),
+ regex=True
+ )
+ ]
+ except Exception:
+ return pd.DataFrame()
+
+ return df
+
+
+def search_table(data: pd.DataFrame, selection: list) -> pd.DataFrame:
+ """Generate a table listing tests based on user's selection.
+
+ :param data: Input data (all tests).
+ :param selection: User selection.
+ :type data: pandas.DataFrame
+ :type selection: list[dict]
+ :returns: A dataframe with selected tests/
+ :rtype: pandas.DataFrame
+ """
+
+ sel = select_search_data(data, selection)
+ if sel.empty:
+ return pd.DataFrame()
+
+ l_tb, l_nic, l_drv, l_test, = list(), list(), list(), list()
+ if selection["datatype"] == "trending":
+ cols = ["job", "test_id"]
+ else:
+ l_dutver = list()
+ cols = ["job", "test_id", "dut_version"]
+ for _, row in sel[cols].drop_duplicates().iterrows():
+ l_id = row["test_id"].split(".")
+ suite = l_id[-2].replace("2n1l-", "").replace("1n1l-", "").\
+ replace("2n-", "")
+ l_tb.append("-".join(row["job"].split("-")[-2:]))
+ l_nic.append(suite.split("-")[0])
+ if selection["datatype"] != "trending":
+ l_dutver.append(row["dut_version"])
+ for driver in C.DRIVERS:
+ if driver in suite:
+ l_drv.append(driver)
+ break
+ else:
+ l_drv.append("dpdk")
+ l_test.append(l_id[-1])
+
+ if selection["datatype"] == "trending":
+ selected = pd.DataFrame.from_dict({
+ "Test Bed": l_tb,
+ "NIC": l_nic,
+ "Driver": l_drv,
+ "Test": l_test
+ })
+
+ selected.sort_values(
+ by=["Test Bed", "NIC", "Driver", "Test"],
+ ascending=True,
+ inplace=True
+ )
+ else:
+ selected = pd.DataFrame.from_dict({
+ "DUT Version": l_dutver,
+ "Test Bed": l_tb,
+ "NIC": l_nic,
+ "Driver": l_drv,
+ "Test": l_test
+ })
+
+ selected.sort_values(
+ by=["DUT Version", "Test Bed", "NIC", "Driver", "Test"],
+ ascending=True,
+ inplace=True
+ )
+
+ return selected
diff --git a/csit.infra.dash/app/cdash/static/dist/img/favicon.svg b/csit.infra.dash/app/cdash/static/dist/img/favicon.svg
new file mode 100644
index 0000000000..689757e3fd
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/dist/img/favicon.svg
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 1000 568.31" style="enable-background:new 0 0 1000 568.31;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:#1DCAD3;}
+ .st1{fill:#36B0C9;}
+ .st2{fill:#231F20;}
+ .st3{fill:#FFFFFF;}
+ .st4{fill:#9164CC;}
+ .st5{clip-path:url(#SVGID_2_);fill:url(#SVGID_3_);}
+ .st6{fill:#201747;}
+ .st7{fill-rule:evenodd;clip-rule:evenodd;fill:#10CFC9;}
+ .st8{clip-path:url(#SVGID_5_);fill:#231F20;}
+ .st9{fill-rule:evenodd;clip-rule:evenodd;fill:#231F20;}
+ .st10{clip-path:url(#SVGID_7_);fill:#FFFFFF;}
+ .st11{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
+ .st12{fill:#8CCEAF;}
+ .st13{fill:#008476;}
+ .st14{fill:#25BCBD;}
+ .st15{fill:#004D70;}
+ .st16{fill:#20BBBB;}
+ .st17{fill:#024D70;}
+ .st18{fill-rule:evenodd;clip-rule:evenodd;fill:#F58B1F;}
+ .st19{fill-rule:evenodd;clip-rule:evenodd;fill:#18335B;}
+ .st20{clip-path:url(#SVGID_9_);}
+ .st21{clip-path:url(#SVGID_11_);}
+ .st22{fill:#18335B;}
+ .st23{fill:#F58B1F;}
+ .st24{clip-path:url(#SVGID_15_);}
+ .st25{clip-path:url(#SVGID_17_);}
+ .st26{clip-path:url(#SVGID_21_);}
+ .st27{clip-path:url(#SVGID_23_);}
+ .st28{clip-path:url(#SVGID_27_);}
+ .st29{clip-path:url(#SVGID_29_);}
+ .st30{clip-path:url(#SVGID_33_);}
+ .st31{clip-path:url(#SVGID_35_);}
+ .st32{clip-path:url(#SVGID_39_);}
+ .st33{clip-path:url(#SVGID_41_);}
+ .st34{fill:#416BA9;}
+ .st35{fill:#73C3D5;}
+ .st36{opacity:0.8;}
+ .st37{fill:#3A3A3A;}
+ .st38{fill:url(#SVGID_44_);}
+ .st39{fill:none;stroke:#000000;stroke-width:6.3384;}
+ .st40{fill:none;stroke:#000000;stroke-width:3.1692;}
+ .st41{fill:#48494B;}
+ .st42{fill:#C1986C;}
+ .st43{fill:url(#SVGID_63_);}
+ .st44{fill:url(#SVGID_64_);}
+ .st45{fill:url(#SVGID_65_);}
+ .st46{fill:url(#SVGID_66_);}
+ .st47{fill:url(#SVGID_67_);}
+ .st48{fill:#4D4E4E;}
+ .st49{fill:#27B373;}
+ .st50{fill:#5DC4CD;}
+ .st51{fill:#1E8756;}
+ .st52{fill:#3D1152;}
+ .st53{fill:#922C48;}
+ .st54{fill-rule:evenodd;clip-rule:evenodd;fill:#922C48;}
+ .st55{fill:#404041;}
+ .st56{fill:#EC1C24;}
+ .st57{fill:#373A36;}
+ .st58{fill:#808184;}
+ .st59{fill:#262261;}
+ .st60{fill:#6FCBDC;}
+ .st61{fill:#2F3436;}
+ .st62{fill:#5F97D0;}
+ .st63{fill:#132428;}
+ .st64{fill:#85C041;}
+ .st65{fill:#677784;}
+ .st66{fill:url(#SVGID_68_);}
+ .st67{opacity:0.2;clip-path:url(#SVGID_70_);}
+ .st68{fill:#FFFEFA;}
+ .st69{opacity:0.1;}
+ .st70{fill:url(#SVGID_71_);}
+ .st71{opacity:0.3;}
+ .st72{opacity:0.08;}
+ .st73{opacity:0.1;fill:url(#Wordmark_1_);}
+ .st74{fill:url(#SVGID_104_);}
+ .st75{opacity:0.6;fill:url(#SVGID_107_);}
+ .st76{opacity:0.4;}
+ .st77{fill:url(#SVGID_110_);}
+ .st78{opacity:0.6;fill:url(#SVGID_113_);}
+ .st79{fill:url(#SVGID_116_);}
+ .st80{opacity:0.6;fill:url(#SVGID_119_);}
+ .st81{fill:url(#SVGID_122_);}
+ .st82{opacity:0.6;fill:url(#SVGID_125_);}
+ .st83{fill:url(#SVGID_128_);}
+ .st84{opacity:0.6;fill:url(#SVGID_131_);}
+ .st85{fill:#221F1F;}
+ .st86{fill:none;}
+ .st87{fill:#00416B;}
+ .st88{opacity:0.8;fill:url(#XMLID_323_);}
+ .st89{fill:#4197CB;}
+ .st90{fill:#003E52;}
+ .st91{fill:#3F96B4;}
+ .st92{fill:#B9DBE5;}
+ .st93{opacity:0.3;fill:#231F20;}
+ .st94{opacity:0.3;fill:#FFFFFF;}
+ .st95{fill:#050013;}
+ .st96{fill:#E87200;}
+ .st97{fill:#FCB813;}
+ .st98{fill:#3D3935;}
+ .st99{fill:#FFB600;}
+ .st100{fill:#FCB814;}
+ .st101{fill:#F48120;}
+ .st102{fill:#EF4E25;}
+ .st103{fill:#ED3024;}
+ .st104{fill:#E0592A;}
+ .st105{fill:#00ADBB;}
+ .st106{fill:#00829B;}
+ .st107{fill:#93D500;}
+ .st108{fill:#4D5A31;}
+ .st109{fill:#6BA43A;}
+ .st110{fill:#424143;}
+ .st111{fill-rule:evenodd;clip-rule:evenodd;fill:#C7E6B4;}
+ .st112{fill-rule:evenodd;clip-rule:evenodd;fill:#5A9891;}
+ .st113{fill-rule:evenodd;clip-rule:evenodd;fill:#127870;}
+ .st114{fill-rule:evenodd;clip-rule:evenodd;fill:#5CCFD5;}
+ .st115{fill-rule:evenodd;clip-rule:evenodd;fill:#ACD5CD;}
+ .st116{fill-rule:evenodd;clip-rule:evenodd;fill:#B5ECC9;}
+ .st117{fill-rule:evenodd;clip-rule:evenodd;fill:#A1D683;}
+ .st118{fill-rule:evenodd;clip-rule:evenodd;fill:#DEF0D3;}
+ .st119{fill-rule:evenodd;clip-rule:evenodd;fill:#91B9B4;}
+ .st120{fill-rule:evenodd;clip-rule:evenodd;fill:#006860;}
+ .st121{fill-rule:evenodd;clip-rule:evenodd;fill:#00ADBB;}
+ .st122{fill-rule:evenodd;clip-rule:evenodd;fill:#B4E7E9;}
+ .st123{fill-rule:evenodd;clip-rule:evenodd;fill:#007565;}
+ .st124{fill-rule:evenodd;clip-rule:evenodd;fill:#00CE7C;}
+ .st125{fill-rule:evenodd;clip-rule:evenodd;fill:#5FD896;}
+ .st126{fill:#007DA5;}
+ .st127{fill:#313032;}
+ .st128{fill:#24272A;}
+ .st129{fill:#00AFAA;}
+ .st130{fill:#66C9BA;}
+ .st131{fill:#0069A7;}
+ .st132{fill:#002F87;}
+ .st133{fill:#8BC53F;}
+ .st134{fill:#1A1A1A;}
+ .st135{fill:#0095D6;}
+ .st136{fill:#003F5F;}
+ .st137{fill:#2D317C;}
+ .st138{fill:#41BFBF;}
+ .st139{fill:#293C97;}
+ .st140{fill:#52C2BD;}
+ .st141{fill:url(#SVGID_134_);}
+ .st142{fill:url(#SVGID_135_);}
+ .st143{fill:url(#SVGID_136_);}
+ .st144{fill:#0DBEEA;}
+ .st145{fill:#097EC2;}
+ .st146{fill:#133C63;}
+ .st147{fill:#3B91CF;}
+ .st148{fill:#C8DEE8;}
+ .st149{fill:#629BBA;}
+ .st150{fill:#F8BE19;}
+ .st151{fill:url(#SVGID_137_);}
+ .st152{fill:url(#SVGID_138_);}
+ .st153{fill:url(#SVGID_139_);}
+ .st154{fill:#00233B;}
+ .st155{fill:url(#SVGID_140_);}
+ .st156{fill:url(#SVGID_141_);}
+ .st157{fill:url(#SVGID_142_);}
+ .st158{fill:url(#SVGID_143_);}
+ .st159{fill:url(#SVGID_144_);}
+ .st160{fill:url(#SVGID_145_);}
+ .st161{fill:url(#SVGID_146_);}
+ .st162{fill:url(#SVGID_147_);}
+ .st163{fill:url(#SVGID_148_);}
+ .st164{fill:url(#SVGID_149_);}
+ .st165{fill:url(#SVGID_150_);}
+ .st166{fill:url(#SVGID_151_);}
+ .st167{fill:url(#SVGID_152_);}
+ .st168{fill:url(#SVGID_153_);}
+ .st169{fill:url(#SVGID_154_);}
+ .st170{fill:url(#SVGID_155_);}
+ .st171{fill:url(#SVGID_156_);}
+ .st172{fill:url(#SVGID_157_);}
+ .st173{fill:url(#SVGID_158_);}
+ .st174{fill:url(#SVGID_159_);}
+ .st175{fill:url(#SVGID_160_);}
+ .st176{fill:url(#SVGID_161_);}
+ .st177{fill:url(#SVGID_162_);}
+ .st178{fill:url(#SVGID_163_);}
+ .st179{fill:url(#SVGID_164_);}
+ .st180{fill:url(#SVGID_165_);}
+ .st181{fill:url(#SVGID_166_);}
+ .st182{fill:url(#SVGID_167_);}
+ .st183{fill:url(#SVGID_168_);}
+ .st184{fill:url(#SVGID_169_);}
+ .st185{fill:url(#SVGID_170_);}
+ .st186{fill:url(#SVGID_171_);}
+ .st187{fill:url(#SVGID_172_);}
+ .st188{fill:url(#SVGID_173_);}
+ .st189{fill:url(#SVGID_174_);}
+ .st190{fill:url(#SVGID_175_);}
+ .st191{fill:url(#SVGID_176_);}
+ .st192{fill:url(#SVGID_177_);}
+ .st193{fill:url(#SVGID_178_);}
+ .st194{fill:#C31230;}
+ .st195{fill:#807F82;}
+ .st196{fill-rule:evenodd;clip-rule:evenodd;fill:#C31230;}
+ .st197{fill-rule:evenodd;clip-rule:evenodd;fill:#807F82;}
+ .st198{fill:#2D2D2D;}
+ .st199{display:none;fill:#2D2D2D;}
+ .st200{fill:#D11F3C;}
+ .st201{fill:#E42C4C;stroke:#E42C4C;stroke-width:1.0503;stroke-miterlimit:10;}
+ .st202{display:none;fill:#231F20;}
+ .st203{display:none;fill:#FFFFFF;}
+ .st204{fill:#FF7F30;}
+ .st205{opacity:0.3;fill:#FF7F30;}
+ .st206{opacity:0.6;fill:#FF7F30;}
+ .st207{opacity:0.7;fill:#FF7F30;}
+ .st208{fill:#221C35;}
+ .st209{fill:#1B98D5;}
+ .st210{fill:#173963;}
+ .st211{fill:#009ADE;}
+ .st212{fill:#003764;}
+ .st213{fill:#2A7DE1;}
+ .st214{opacity:0.4;clip-path:url(#XMLID_324_);fill:#221F1F;}
+ .st215{fill:#002A3A;}
+ .st216{fill:#0033A1;}
+ .st217{fill:url(#SVGID_179_);}
+ .st218{fill:url(#SVGID_180_);}
+ .st219{fill:url(#SVGID_181_);}
+ .st220{fill:url(#SVGID_182_);}
+ .st221{fill:#007EC4;}
+ .st222{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_183_);}
+ .st223{fill-rule:evenodd;clip-rule:evenodd;fill:#E6E7E8;}
+ .st224{fill:#009345;}
+ .st225{fill:#BBBCB8;}
+ .st226{fill:#72C0EB;}
+ .st227{fill:#939598;}
+ .st228{fill-rule:evenodd;clip-rule:evenodd;fill:#2CB8EB;}
+ .st229{fill:#2CB8EB;}
+ .st230{fill:#81B83A;}
+ .st231{fill-rule:evenodd;clip-rule:evenodd;fill:#81B83A;}
+ .st232{enable-background:new ;}
+ .st233{fill:#FF6F3E;}
+ .st234{fill:#12143D;}
+ .st235{fill:url(#SVGID_184_);}
+ .st236{fill:url(#SVGID_185_);}
+ .st237{fill:url(#SVGID_186_);}
+ .st238{fill:url(#SVGID_187_);}
+ .st239{fill:url(#SVGID_188_);}
+ .st240{fill:url(#SVGID_189_);}
+ .st241{fill:url(#SVGID_190_);}
+ .st242{fill:url(#SVGID_191_);}
+ .st243{fill:url(#SVGID_192_);}
+ .st244{fill:#7C51A0;}
+ .st245{fill:#9F66A9;}
+ .st246{fill:#9F80B9;}
+ .st247{fill:url(#SVGID_193_);}
+ .st248{fill:url(#SVGID_194_);}
+ .st249{fill:url(#SVGID_195_);}
+ .st250{fill:url(#SVGID_196_);}
+ .st251{fill:#2D3136;}
+ .st252{fill:#76777A;}
+ .st253{fill:#A7A8A9;}
+ .st254{fill:#0082CA;}
+ .st255{fill:#FFB259;}
+ .st256{fill:#385CAD;}
+ .st257{fill:#7BA0C4;}
+ .st258{fill:#EBA900;}
+ .st259{fill:#929497;}
+ .st260{opacity:0.7;fill:#FFFFFF;}
+ .st261{fill:#016BAF;}
+ .st262{fill:#343432;}
+ .st263{fill:#6D6E70;}
+ .st264{fill:#F4B01B;}
+ .st265{fill:#293271;}
+ .st266{fill:#A1D33C;}
+ .st267{fill:#212322;}
+ .st268{fill:#0047BA;}
+ .st269{fill:#969CDE;}
+ .st270{fill:#047BC1;}
+ .st271{fill:url(#SVGID_197_);}
+ .st272{fill:url(#SVGID_198_);}
+ .st273{fill:url(#SVGID_199_);}
+ .st274{fill:url(#SVGID_200_);}
+ .st275{fill:url(#SVGID_201_);}
+ .st276{fill:url(#SVGID_202_);}
+ .st277{fill:url(#SVGID_203_);}
+ .st278{fill:#13517C;}
+ .st279{fill:#0077A6;}
+ .st280{fill:none;stroke:#231F20;stroke-width:5.9036;stroke-miterlimit:10;}
+ .st281{fill:#00A94F;}
+ .st282{fill:none;stroke:#231F20;stroke-width:3.2172;stroke-miterlimit:10;}
+ .st283{fill:#59595C;}
+ .st284{opacity:0.349;fill:#F9AE19;}
+ .st285{opacity:0.349;fill:#E99F22;}
+ .st286{opacity:0.349;fill:#E47D25;}
+ .st287{fill:#F9AE19;}
+ .st288{fill:#E99F22;}
+ .st289{fill:#F09B20;}
+ .st290{fill:#E47D25;}
+ .st291{fill:#E89223;}
+ .st292{opacity:0.651;fill:#F9AE19;}
+ .st293{fill:#E68825;}
+ .st294{opacity:0.651;fill:#E99F22;}
+ .st295{fill:#EB8D23;}
+ .st296{opacity:0.7725;fill:#EF9B21;}
+ .st297{opacity:0.651;fill:#E47D25;}
+ .st298{opacity:0.7725;fill:#EA9622;}
+ .st299{fill:url(#SVGID_204_);}
+ .st300{fill:#55575B;}
+ .st301{fill:#EE424E;}
+ .st302{fill:#34424B;}
+</style>
+<g>
+ <g>
+ <path class="st55" d="M772.88,526c9.95,0,15.7,5.53,15.7,15.48c0,10.17-5.75,15.48-15.7,15.48c-9.95,0-15.48-5.31-15.48-15.48
+ C757.4,531.53,762.93,526,772.88,526z"/>
+ <path class="st55" d="M832.94,393.35c8.18,0,13.71,3.32,13.71,12.38c0,9.29-5.53,12.6-13.71,12.6c-8.4,0-14.15-3.32-14.15-12.6
+ C818.79,396.67,824.54,393.35,832.94,393.35z M821.22,438.67h22.99V554.3h-22.99V438.67z"/>
+ <path class="st55" d="M934.56,435.58c36.25,0,61.9,26.09,61.9,61.24c0,34.71-25.65,60.58-61.9,60.58
+ c-35.82,0-61.69-25.87-61.69-60.58C872.88,461.67,898.75,435.58,934.56,435.58z M934.56,536.18c23.66,0,39.79-17.03,39.79-39.36
+ c0-22.77-16.14-40.02-39.79-40.02c-23.44,0-39.36,17.25-39.36,40.02C895.21,519.15,911.13,536.18,934.56,536.18z"/>
+ </g>
+ <g>
+ <path class="st56" d="M724.15,245.36c-0.97-8.4-17.24-16.23-17.24-16.23c-6.81-4.71-8.03-16.23-7.16-20.6
+ c0.87-4.36,15.01-36.66,15.01-36.66c11.52-11.35,31.6-35.44,33.87-48.88c1.07-6.31-3.14-38.93,5.41-49.75
+ c5.63-7.12,22.35-15.36,25.84-18.16c3.49-2.79,6.28-11,4.71-14.84c-1.57-3.84-27.41-4.02-27.41-4.02s-2.16-10.79-17.62-11.8
+ c-6.05-0.2-10.18,1.3-10.18,1.3c1.78-0.89,4.69-2.18,6.78-3.1c-0.54-3.56-1.89-11.45-3.24-11.72c-1.43-0.29-4.73,5.28-6.27,7.21
+ l0.28,3.42l-1.11-2.85l-1.63-4.2l-0.02-0.06h0c-0.64-1.74-1.36-3.37-2.08-3.53c-1.57-0.34-38.06,50.81-42.6,57.44
+ c-4.54,6.63-9.25,17.81-33.87,25.49c-17.37,5.42-53.43,6.32-81.13,15.16l0,0c-14.25,1.43-53.29,33.79-83.15,32.62
+ c-20.05-0.78-35.61-6.28-39.57-15.25c0,0,4.19,41.32,25.6,43.64c0,0,13.5,2.33,26.53-9.31c0,0-3.72,7.36-8.38,9.5
+ c0,0,18.07-4.62,29.06-12.94c3.37-7.06,9.22-17.4,17.46-25.17c0.53-0.52,0.86-0.8,0.86-0.8c-0.29,0.26-0.57,0.53-0.86,0.8
+ c-2.65,2.6-10.68,11.48-11.86,24.73c-0.24,2.64-0.21,5.44,0.2,8.41c0,8.9,9.66,20.78,9.66,26.19c0,7.16-16.76,20.25-17.81,23.74
+ c-0.58,1.95-2.35,16.91,0.69,29.77h-59.09c-56.8,0-78.68,56.8-78.68,56.8l-24.4,68h-10.52c-8.25,0-14.94,6.69-14.94,14.94
+ c0,8.19,6.59,14.81,14.75,14.92l-0.01,0.02h0.2h5.92c8.25,0,14.94,6.69,14.94,14.94c0,8.25-6.69,14.94-14.94,14.94H197.01
+ c-8.25,0-14.94,6.69-14.94,14.94c0,8.25,6.69,14.94,14.94,14.94h154.15c8.25,0,14.94,6.69,14.94,14.94
+ c0,8.25-6.69,14.94-14.94,14.94h-32.39H146.48h-32.39c-8.25,0-14.94,6.69-14.94,14.94c0,8.25,6.69,14.94,14.94,14.94h183.08
+ l-13.71,38.21h113.6l35.67-99.4h1.72c79.83,0,109.91-85.2,109.91-85.2h-81.05l15.29-42.6l88.87,0c56.8,0,83.71-85.2,83.71-85.2
+ H539.99c-2.48-4.72-5.03-9.43-5.03-13.01c0-18.5,49.93-30.55,48.36-60.4c-4.08-16.85,2.51-25.92,2.51-25.92
+ c-4.2,9.35,0.01,19.79,2.11,24c0.03,0,0.06,0,0.1,0c13.97,0,41.9,15.36,59.18,15.36c11.43,0,20.41-2.37,25.19-3.97
+ c0.69-3.96,0.82-14.29-14.36-20.96c0,0,18.37,0.16,18.15,19.52c0,0-2.09,31.42,0.7,54.29c0.55,4.48,1.7,8.11,3.22,11.09h-0.52
+ c-13.7,55.08-55.31,85.2-55.31,85.2h60.7l-51.92,142.02l-0.04-0.01H510.67c-56.8,0-85.2,85.2-85.2,85.2H601.9
+ c56.8,0,111.69,5.33,144.18-85.2l40.77-113.6C810.25,293.33,776.46,249.98,724.15,245.36z"/>
+ <path class="st56" d="M56.25,489.25H18.47c-8.25,0-14.94,6.69-14.94,14.94c0,8.25,6.69,14.94,14.94,14.94h37.78
+ c8.25,0,14.94-6.69,14.94-14.94C71.19,495.94,64.5,489.25,56.25,489.25z"/>
+ <path class="st56" d="M171.38,399.61h120.5c8.25,0,14.94-6.69,14.94-14.94c0-8.25-6.69-14.94-14.94-14.94H102.14
+ c-8.25,0-14.94,6.69-14.94,14.94c0,8.25,6.69,14.94,14.94,14.94H171.38z"/>
+ <path class="st56" d="M180.84,339.85h162.85c8.25,0,14.94-6.69,14.94-14.94c0-8.25-6.69-14.94-14.94-14.94H180.84
+ c-8.25,0-14.94,6.69-14.94,14.94C165.9,333.17,172.59,339.85,180.84,339.85z"/>
+ </g>
+</g>
+</svg>
diff --git a/csit.infra.dash/app/cdash/static/img/logo.svg b/csit.infra.dash/app/cdash/static/img/logo.svg
new file mode 100644
index 0000000000..689757e3fd
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/img/logo.svg
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 1000 568.31" style="enable-background:new 0 0 1000 568.31;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:#1DCAD3;}
+ .st1{fill:#36B0C9;}
+ .st2{fill:#231F20;}
+ .st3{fill:#FFFFFF;}
+ .st4{fill:#9164CC;}
+ .st5{clip-path:url(#SVGID_2_);fill:url(#SVGID_3_);}
+ .st6{fill:#201747;}
+ .st7{fill-rule:evenodd;clip-rule:evenodd;fill:#10CFC9;}
+ .st8{clip-path:url(#SVGID_5_);fill:#231F20;}
+ .st9{fill-rule:evenodd;clip-rule:evenodd;fill:#231F20;}
+ .st10{clip-path:url(#SVGID_7_);fill:#FFFFFF;}
+ .st11{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
+ .st12{fill:#8CCEAF;}
+ .st13{fill:#008476;}
+ .st14{fill:#25BCBD;}
+ .st15{fill:#004D70;}
+ .st16{fill:#20BBBB;}
+ .st17{fill:#024D70;}
+ .st18{fill-rule:evenodd;clip-rule:evenodd;fill:#F58B1F;}
+ .st19{fill-rule:evenodd;clip-rule:evenodd;fill:#18335B;}
+ .st20{clip-path:url(#SVGID_9_);}
+ .st21{clip-path:url(#SVGID_11_);}
+ .st22{fill:#18335B;}
+ .st23{fill:#F58B1F;}
+ .st24{clip-path:url(#SVGID_15_);}
+ .st25{clip-path:url(#SVGID_17_);}
+ .st26{clip-path:url(#SVGID_21_);}
+ .st27{clip-path:url(#SVGID_23_);}
+ .st28{clip-path:url(#SVGID_27_);}
+ .st29{clip-path:url(#SVGID_29_);}
+ .st30{clip-path:url(#SVGID_33_);}
+ .st31{clip-path:url(#SVGID_35_);}
+ .st32{clip-path:url(#SVGID_39_);}
+ .st33{clip-path:url(#SVGID_41_);}
+ .st34{fill:#416BA9;}
+ .st35{fill:#73C3D5;}
+ .st36{opacity:0.8;}
+ .st37{fill:#3A3A3A;}
+ .st38{fill:url(#SVGID_44_);}
+ .st39{fill:none;stroke:#000000;stroke-width:6.3384;}
+ .st40{fill:none;stroke:#000000;stroke-width:3.1692;}
+ .st41{fill:#48494B;}
+ .st42{fill:#C1986C;}
+ .st43{fill:url(#SVGID_63_);}
+ .st44{fill:url(#SVGID_64_);}
+ .st45{fill:url(#SVGID_65_);}
+ .st46{fill:url(#SVGID_66_);}
+ .st47{fill:url(#SVGID_67_);}
+ .st48{fill:#4D4E4E;}
+ .st49{fill:#27B373;}
+ .st50{fill:#5DC4CD;}
+ .st51{fill:#1E8756;}
+ .st52{fill:#3D1152;}
+ .st53{fill:#922C48;}
+ .st54{fill-rule:evenodd;clip-rule:evenodd;fill:#922C48;}
+ .st55{fill:#404041;}
+ .st56{fill:#EC1C24;}
+ .st57{fill:#373A36;}
+ .st58{fill:#808184;}
+ .st59{fill:#262261;}
+ .st60{fill:#6FCBDC;}
+ .st61{fill:#2F3436;}
+ .st62{fill:#5F97D0;}
+ .st63{fill:#132428;}
+ .st64{fill:#85C041;}
+ .st65{fill:#677784;}
+ .st66{fill:url(#SVGID_68_);}
+ .st67{opacity:0.2;clip-path:url(#SVGID_70_);}
+ .st68{fill:#FFFEFA;}
+ .st69{opacity:0.1;}
+ .st70{fill:url(#SVGID_71_);}
+ .st71{opacity:0.3;}
+ .st72{opacity:0.08;}
+ .st73{opacity:0.1;fill:url(#Wordmark_1_);}
+ .st74{fill:url(#SVGID_104_);}
+ .st75{opacity:0.6;fill:url(#SVGID_107_);}
+ .st76{opacity:0.4;}
+ .st77{fill:url(#SVGID_110_);}
+ .st78{opacity:0.6;fill:url(#SVGID_113_);}
+ .st79{fill:url(#SVGID_116_);}
+ .st80{opacity:0.6;fill:url(#SVGID_119_);}
+ .st81{fill:url(#SVGID_122_);}
+ .st82{opacity:0.6;fill:url(#SVGID_125_);}
+ .st83{fill:url(#SVGID_128_);}
+ .st84{opacity:0.6;fill:url(#SVGID_131_);}
+ .st85{fill:#221F1F;}
+ .st86{fill:none;}
+ .st87{fill:#00416B;}
+ .st88{opacity:0.8;fill:url(#XMLID_323_);}
+ .st89{fill:#4197CB;}
+ .st90{fill:#003E52;}
+ .st91{fill:#3F96B4;}
+ .st92{fill:#B9DBE5;}
+ .st93{opacity:0.3;fill:#231F20;}
+ .st94{opacity:0.3;fill:#FFFFFF;}
+ .st95{fill:#050013;}
+ .st96{fill:#E87200;}
+ .st97{fill:#FCB813;}
+ .st98{fill:#3D3935;}
+ .st99{fill:#FFB600;}
+ .st100{fill:#FCB814;}
+ .st101{fill:#F48120;}
+ .st102{fill:#EF4E25;}
+ .st103{fill:#ED3024;}
+ .st104{fill:#E0592A;}
+ .st105{fill:#00ADBB;}
+ .st106{fill:#00829B;}
+ .st107{fill:#93D500;}
+ .st108{fill:#4D5A31;}
+ .st109{fill:#6BA43A;}
+ .st110{fill:#424143;}
+ .st111{fill-rule:evenodd;clip-rule:evenodd;fill:#C7E6B4;}
+ .st112{fill-rule:evenodd;clip-rule:evenodd;fill:#5A9891;}
+ .st113{fill-rule:evenodd;clip-rule:evenodd;fill:#127870;}
+ .st114{fill-rule:evenodd;clip-rule:evenodd;fill:#5CCFD5;}
+ .st115{fill-rule:evenodd;clip-rule:evenodd;fill:#ACD5CD;}
+ .st116{fill-rule:evenodd;clip-rule:evenodd;fill:#B5ECC9;}
+ .st117{fill-rule:evenodd;clip-rule:evenodd;fill:#A1D683;}
+ .st118{fill-rule:evenodd;clip-rule:evenodd;fill:#DEF0D3;}
+ .st119{fill-rule:evenodd;clip-rule:evenodd;fill:#91B9B4;}
+ .st120{fill-rule:evenodd;clip-rule:evenodd;fill:#006860;}
+ .st121{fill-rule:evenodd;clip-rule:evenodd;fill:#00ADBB;}
+ .st122{fill-rule:evenodd;clip-rule:evenodd;fill:#B4E7E9;}
+ .st123{fill-rule:evenodd;clip-rule:evenodd;fill:#007565;}
+ .st124{fill-rule:evenodd;clip-rule:evenodd;fill:#00CE7C;}
+ .st125{fill-rule:evenodd;clip-rule:evenodd;fill:#5FD896;}
+ .st126{fill:#007DA5;}
+ .st127{fill:#313032;}
+ .st128{fill:#24272A;}
+ .st129{fill:#00AFAA;}
+ .st130{fill:#66C9BA;}
+ .st131{fill:#0069A7;}
+ .st132{fill:#002F87;}
+ .st133{fill:#8BC53F;}
+ .st134{fill:#1A1A1A;}
+ .st135{fill:#0095D6;}
+ .st136{fill:#003F5F;}
+ .st137{fill:#2D317C;}
+ .st138{fill:#41BFBF;}
+ .st139{fill:#293C97;}
+ .st140{fill:#52C2BD;}
+ .st141{fill:url(#SVGID_134_);}
+ .st142{fill:url(#SVGID_135_);}
+ .st143{fill:url(#SVGID_136_);}
+ .st144{fill:#0DBEEA;}
+ .st145{fill:#097EC2;}
+ .st146{fill:#133C63;}
+ .st147{fill:#3B91CF;}
+ .st148{fill:#C8DEE8;}
+ .st149{fill:#629BBA;}
+ .st150{fill:#F8BE19;}
+ .st151{fill:url(#SVGID_137_);}
+ .st152{fill:url(#SVGID_138_);}
+ .st153{fill:url(#SVGID_139_);}
+ .st154{fill:#00233B;}
+ .st155{fill:url(#SVGID_140_);}
+ .st156{fill:url(#SVGID_141_);}
+ .st157{fill:url(#SVGID_142_);}
+ .st158{fill:url(#SVGID_143_);}
+ .st159{fill:url(#SVGID_144_);}
+ .st160{fill:url(#SVGID_145_);}
+ .st161{fill:url(#SVGID_146_);}
+ .st162{fill:url(#SVGID_147_);}
+ .st163{fill:url(#SVGID_148_);}
+ .st164{fill:url(#SVGID_149_);}
+ .st165{fill:url(#SVGID_150_);}
+ .st166{fill:url(#SVGID_151_);}
+ .st167{fill:url(#SVGID_152_);}
+ .st168{fill:url(#SVGID_153_);}
+ .st169{fill:url(#SVGID_154_);}
+ .st170{fill:url(#SVGID_155_);}
+ .st171{fill:url(#SVGID_156_);}
+ .st172{fill:url(#SVGID_157_);}
+ .st173{fill:url(#SVGID_158_);}
+ .st174{fill:url(#SVGID_159_);}
+ .st175{fill:url(#SVGID_160_);}
+ .st176{fill:url(#SVGID_161_);}
+ .st177{fill:url(#SVGID_162_);}
+ .st178{fill:url(#SVGID_163_);}
+ .st179{fill:url(#SVGID_164_);}
+ .st180{fill:url(#SVGID_165_);}
+ .st181{fill:url(#SVGID_166_);}
+ .st182{fill:url(#SVGID_167_);}
+ .st183{fill:url(#SVGID_168_);}
+ .st184{fill:url(#SVGID_169_);}
+ .st185{fill:url(#SVGID_170_);}
+ .st186{fill:url(#SVGID_171_);}
+ .st187{fill:url(#SVGID_172_);}
+ .st188{fill:url(#SVGID_173_);}
+ .st189{fill:url(#SVGID_174_);}
+ .st190{fill:url(#SVGID_175_);}
+ .st191{fill:url(#SVGID_176_);}
+ .st192{fill:url(#SVGID_177_);}
+ .st193{fill:url(#SVGID_178_);}
+ .st194{fill:#C31230;}
+ .st195{fill:#807F82;}
+ .st196{fill-rule:evenodd;clip-rule:evenodd;fill:#C31230;}
+ .st197{fill-rule:evenodd;clip-rule:evenodd;fill:#807F82;}
+ .st198{fill:#2D2D2D;}
+ .st199{display:none;fill:#2D2D2D;}
+ .st200{fill:#D11F3C;}
+ .st201{fill:#E42C4C;stroke:#E42C4C;stroke-width:1.0503;stroke-miterlimit:10;}
+ .st202{display:none;fill:#231F20;}
+ .st203{display:none;fill:#FFFFFF;}
+ .st204{fill:#FF7F30;}
+ .st205{opacity:0.3;fill:#FF7F30;}
+ .st206{opacity:0.6;fill:#FF7F30;}
+ .st207{opacity:0.7;fill:#FF7F30;}
+ .st208{fill:#221C35;}
+ .st209{fill:#1B98D5;}
+ .st210{fill:#173963;}
+ .st211{fill:#009ADE;}
+ .st212{fill:#003764;}
+ .st213{fill:#2A7DE1;}
+ .st214{opacity:0.4;clip-path:url(#XMLID_324_);fill:#221F1F;}
+ .st215{fill:#002A3A;}
+ .st216{fill:#0033A1;}
+ .st217{fill:url(#SVGID_179_);}
+ .st218{fill:url(#SVGID_180_);}
+ .st219{fill:url(#SVGID_181_);}
+ .st220{fill:url(#SVGID_182_);}
+ .st221{fill:#007EC4;}
+ .st222{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_183_);}
+ .st223{fill-rule:evenodd;clip-rule:evenodd;fill:#E6E7E8;}
+ .st224{fill:#009345;}
+ .st225{fill:#BBBCB8;}
+ .st226{fill:#72C0EB;}
+ .st227{fill:#939598;}
+ .st228{fill-rule:evenodd;clip-rule:evenodd;fill:#2CB8EB;}
+ .st229{fill:#2CB8EB;}
+ .st230{fill:#81B83A;}
+ .st231{fill-rule:evenodd;clip-rule:evenodd;fill:#81B83A;}
+ .st232{enable-background:new ;}
+ .st233{fill:#FF6F3E;}
+ .st234{fill:#12143D;}
+ .st235{fill:url(#SVGID_184_);}
+ .st236{fill:url(#SVGID_185_);}
+ .st237{fill:url(#SVGID_186_);}
+ .st238{fill:url(#SVGID_187_);}
+ .st239{fill:url(#SVGID_188_);}
+ .st240{fill:url(#SVGID_189_);}
+ .st241{fill:url(#SVGID_190_);}
+ .st242{fill:url(#SVGID_191_);}
+ .st243{fill:url(#SVGID_192_);}
+ .st244{fill:#7C51A0;}
+ .st245{fill:#9F66A9;}
+ .st246{fill:#9F80B9;}
+ .st247{fill:url(#SVGID_193_);}
+ .st248{fill:url(#SVGID_194_);}
+ .st249{fill:url(#SVGID_195_);}
+ .st250{fill:url(#SVGID_196_);}
+ .st251{fill:#2D3136;}
+ .st252{fill:#76777A;}
+ .st253{fill:#A7A8A9;}
+ .st254{fill:#0082CA;}
+ .st255{fill:#FFB259;}
+ .st256{fill:#385CAD;}
+ .st257{fill:#7BA0C4;}
+ .st258{fill:#EBA900;}
+ .st259{fill:#929497;}
+ .st260{opacity:0.7;fill:#FFFFFF;}
+ .st261{fill:#016BAF;}
+ .st262{fill:#343432;}
+ .st263{fill:#6D6E70;}
+ .st264{fill:#F4B01B;}
+ .st265{fill:#293271;}
+ .st266{fill:#A1D33C;}
+ .st267{fill:#212322;}
+ .st268{fill:#0047BA;}
+ .st269{fill:#969CDE;}
+ .st270{fill:#047BC1;}
+ .st271{fill:url(#SVGID_197_);}
+ .st272{fill:url(#SVGID_198_);}
+ .st273{fill:url(#SVGID_199_);}
+ .st274{fill:url(#SVGID_200_);}
+ .st275{fill:url(#SVGID_201_);}
+ .st276{fill:url(#SVGID_202_);}
+ .st277{fill:url(#SVGID_203_);}
+ .st278{fill:#13517C;}
+ .st279{fill:#0077A6;}
+ .st280{fill:none;stroke:#231F20;stroke-width:5.9036;stroke-miterlimit:10;}
+ .st281{fill:#00A94F;}
+ .st282{fill:none;stroke:#231F20;stroke-width:3.2172;stroke-miterlimit:10;}
+ .st283{fill:#59595C;}
+ .st284{opacity:0.349;fill:#F9AE19;}
+ .st285{opacity:0.349;fill:#E99F22;}
+ .st286{opacity:0.349;fill:#E47D25;}
+ .st287{fill:#F9AE19;}
+ .st288{fill:#E99F22;}
+ .st289{fill:#F09B20;}
+ .st290{fill:#E47D25;}
+ .st291{fill:#E89223;}
+ .st292{opacity:0.651;fill:#F9AE19;}
+ .st293{fill:#E68825;}
+ .st294{opacity:0.651;fill:#E99F22;}
+ .st295{fill:#EB8D23;}
+ .st296{opacity:0.7725;fill:#EF9B21;}
+ .st297{opacity:0.651;fill:#E47D25;}
+ .st298{opacity:0.7725;fill:#EA9622;}
+ .st299{fill:url(#SVGID_204_);}
+ .st300{fill:#55575B;}
+ .st301{fill:#EE424E;}
+ .st302{fill:#34424B;}
+</style>
+<g>
+ <g>
+ <path class="st55" d="M772.88,526c9.95,0,15.7,5.53,15.7,15.48c0,10.17-5.75,15.48-15.7,15.48c-9.95,0-15.48-5.31-15.48-15.48
+ C757.4,531.53,762.93,526,772.88,526z"/>
+ <path class="st55" d="M832.94,393.35c8.18,0,13.71,3.32,13.71,12.38c0,9.29-5.53,12.6-13.71,12.6c-8.4,0-14.15-3.32-14.15-12.6
+ C818.79,396.67,824.54,393.35,832.94,393.35z M821.22,438.67h22.99V554.3h-22.99V438.67z"/>
+ <path class="st55" d="M934.56,435.58c36.25,0,61.9,26.09,61.9,61.24c0,34.71-25.65,60.58-61.9,60.58
+ c-35.82,0-61.69-25.87-61.69-60.58C872.88,461.67,898.75,435.58,934.56,435.58z M934.56,536.18c23.66,0,39.79-17.03,39.79-39.36
+ c0-22.77-16.14-40.02-39.79-40.02c-23.44,0-39.36,17.25-39.36,40.02C895.21,519.15,911.13,536.18,934.56,536.18z"/>
+ </g>
+ <g>
+ <path class="st56" d="M724.15,245.36c-0.97-8.4-17.24-16.23-17.24-16.23c-6.81-4.71-8.03-16.23-7.16-20.6
+ c0.87-4.36,15.01-36.66,15.01-36.66c11.52-11.35,31.6-35.44,33.87-48.88c1.07-6.31-3.14-38.93,5.41-49.75
+ c5.63-7.12,22.35-15.36,25.84-18.16c3.49-2.79,6.28-11,4.71-14.84c-1.57-3.84-27.41-4.02-27.41-4.02s-2.16-10.79-17.62-11.8
+ c-6.05-0.2-10.18,1.3-10.18,1.3c1.78-0.89,4.69-2.18,6.78-3.1c-0.54-3.56-1.89-11.45-3.24-11.72c-1.43-0.29-4.73,5.28-6.27,7.21
+ l0.28,3.42l-1.11-2.85l-1.63-4.2l-0.02-0.06h0c-0.64-1.74-1.36-3.37-2.08-3.53c-1.57-0.34-38.06,50.81-42.6,57.44
+ c-4.54,6.63-9.25,17.81-33.87,25.49c-17.37,5.42-53.43,6.32-81.13,15.16l0,0c-14.25,1.43-53.29,33.79-83.15,32.62
+ c-20.05-0.78-35.61-6.28-39.57-15.25c0,0,4.19,41.32,25.6,43.64c0,0,13.5,2.33,26.53-9.31c0,0-3.72,7.36-8.38,9.5
+ c0,0,18.07-4.62,29.06-12.94c3.37-7.06,9.22-17.4,17.46-25.17c0.53-0.52,0.86-0.8,0.86-0.8c-0.29,0.26-0.57,0.53-0.86,0.8
+ c-2.65,2.6-10.68,11.48-11.86,24.73c-0.24,2.64-0.21,5.44,0.2,8.41c0,8.9,9.66,20.78,9.66,26.19c0,7.16-16.76,20.25-17.81,23.74
+ c-0.58,1.95-2.35,16.91,0.69,29.77h-59.09c-56.8,0-78.68,56.8-78.68,56.8l-24.4,68h-10.52c-8.25,0-14.94,6.69-14.94,14.94
+ c0,8.19,6.59,14.81,14.75,14.92l-0.01,0.02h0.2h5.92c8.25,0,14.94,6.69,14.94,14.94c0,8.25-6.69,14.94-14.94,14.94H197.01
+ c-8.25,0-14.94,6.69-14.94,14.94c0,8.25,6.69,14.94,14.94,14.94h154.15c8.25,0,14.94,6.69,14.94,14.94
+ c0,8.25-6.69,14.94-14.94,14.94h-32.39H146.48h-32.39c-8.25,0-14.94,6.69-14.94,14.94c0,8.25,6.69,14.94,14.94,14.94h183.08
+ l-13.71,38.21h113.6l35.67-99.4h1.72c79.83,0,109.91-85.2,109.91-85.2h-81.05l15.29-42.6l88.87,0c56.8,0,83.71-85.2,83.71-85.2
+ H539.99c-2.48-4.72-5.03-9.43-5.03-13.01c0-18.5,49.93-30.55,48.36-60.4c-4.08-16.85,2.51-25.92,2.51-25.92
+ c-4.2,9.35,0.01,19.79,2.11,24c0.03,0,0.06,0,0.1,0c13.97,0,41.9,15.36,59.18,15.36c11.43,0,20.41-2.37,25.19-3.97
+ c0.69-3.96,0.82-14.29-14.36-20.96c0,0,18.37,0.16,18.15,19.52c0,0-2.09,31.42,0.7,54.29c0.55,4.48,1.7,8.11,3.22,11.09h-0.52
+ c-13.7,55.08-55.31,85.2-55.31,85.2h60.7l-51.92,142.02l-0.04-0.01H510.67c-56.8,0-85.2,85.2-85.2,85.2H601.9
+ c56.8,0,111.69,5.33,144.18-85.2l40.77-113.6C810.25,293.33,776.46,249.98,724.15,245.36z"/>
+ <path class="st56" d="M56.25,489.25H18.47c-8.25,0-14.94,6.69-14.94,14.94c0,8.25,6.69,14.94,14.94,14.94h37.78
+ c8.25,0,14.94-6.69,14.94-14.94C71.19,495.94,64.5,489.25,56.25,489.25z"/>
+ <path class="st56" d="M171.38,399.61h120.5c8.25,0,14.94-6.69,14.94-14.94c0-8.25-6.69-14.94-14.94-14.94H102.14
+ c-8.25,0-14.94,6.69-14.94,14.94c0,8.25,6.69,14.94,14.94,14.94H171.38z"/>
+ <path class="st56" d="M180.84,339.85h162.85c8.25,0,14.94-6.69,14.94-14.94c0-8.25-6.69-14.94-14.94-14.94H180.84
+ c-8.25,0-14.94,6.69-14.94,14.94C165.9,333.17,172.59,339.85,180.84,339.85z"/>
+ </g>
+</g>
+</svg>
diff --git a/csit.infra.dash/app/cdash/static/sass/_bootswatch.scss b/csit.infra.dash/app/cdash/static/sass/_bootswatch.scss
new file mode 100644
index 0000000000..900ccfb3c1
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/_bootswatch.scss
@@ -0,0 +1,178 @@
+// Lux 5.2.1
+// Bootswatch
+
+
+// Variables
+
+$web-font-path: "https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600&display=swap" !default;
+@if $web-font-path {
+ @import url($web-font-path);
+}
+
+:root {
+ color-scheme: light;
+}
+
+// Navbar
+
+.navbar {
+ font-size: $font-size-sm;
+ font-weight: 600;
+ text-transform: uppercase;
+
+ &-nav {
+ .nav-link {
+ padding-top: .715rem;
+ padding-bottom: .715rem;
+ }
+ }
+
+ &-brand {
+ margin-right: 2rem;
+ }
+}
+
+.bg-light {
+ border: 1px solid rgba(0, 0, 0, .1);
+
+ &.navbar-fixed-top {
+ border-width: 0 0 1px;
+ }
+
+ &.navbar-bottom-top {
+ border-width: 1px 0 0;
+ }
+}
+
+.nav-item {
+ margin-right: 2rem;
+}
+
+// Buttons
+
+.btn {
+ font-size: $font-size-sm;
+ text-transform: uppercase;
+
+ &-sm {
+ font-size: 10px;
+ }
+
+ &-warning {
+ &,
+ &:hover,
+ &:not([disabled]):not(.disabled):active,
+ &:focus {
+ color: $white;
+ }
+ }
+}
+
+.btn-outline-secondary {
+ color: $gray-600;
+ border-color: $gray-600;
+
+ &:not([disabled]):not(.disabled):hover,
+ &:not([disabled]):not(.disabled):focus,
+ &:not([disabled]):not(.disabled):active {
+ color: $white;
+ background-color: $gray-400;
+ border-color: $gray-400;
+ }
+
+ &:not([disabled]):not(.disabled):focus {
+ box-shadow: 0 0 0 .2rem rgba($gray-400, .5);
+ }
+}
+
+[class*="btn-outline-"] {
+ border-width: 2px;
+}
+
+.border-secondary {
+ border: 1px solid $gray-400 !important;
+}
+
+// Typography
+
+body {
+ font-weight: 200;
+ letter-spacing: 1px;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ text-transform: uppercase;
+ letter-spacing: 3px;
+}
+
+.text-secondary {
+ color: $body-color !important;
+}
+
+// Tables
+
+th {
+ font-size: $font-size-sm;
+ text-transform: uppercase;
+}
+
+.table {
+ th,
+ td {
+ padding: 1.5rem;
+ }
+
+ &-sm {
+ th,
+ td {
+ padding: .75rem;
+ }
+ }
+}
+
+// Navs
+
+.dropdown-menu {
+ font-size: $font-size-sm;
+ text-transform: none;
+}
+
+// Indicators
+
+.badge {
+ padding-top: .28rem;
+
+ &-pill {
+ border-radius: 10rem;
+ }
+
+ &.bg-secondary,
+ &.bg-light {
+ color: $dark;
+ }
+}
+
+// Containers
+
+.list-group-item,
+.card {
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ .h1,
+ .h2,
+ .h3,
+ .h4,
+ .h5,
+ .h6 {
+ color: inherit;
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/_variables.scss b/csit.infra.dash/app/cdash/static/sass/_variables.scss
new file mode 100644
index 0000000000..6bfd6408b7
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/_variables.scss
@@ -0,0 +1,103 @@
+// Lux 5.2.1
+// Bootswatch
+
+$theme: "lux" !default;
+
+//
+// Color system
+//
+
+$white: #fff !default;
+$gray-100: #f8f9fa !default;
+$gray-200: #f7f7f9 !default;
+$gray-300: #eceeef !default;
+$gray-400: #ced4da !default;
+$gray-500: #adb5bd !default;
+$gray-600: #919aa1 !default;
+$gray-700: #55595c !default;
+$gray-800: #343a40 !default;
+$gray-900: #1a1a1a !default;
+$black: #000 !default;
+
+$blue: #007bff !default;
+$indigo: #6610f2 !default;
+$purple: #6f42c1 !default;
+$pink: #e83e8c !default;
+$red: #d9534f !default;
+$orange: #fd7e14 !default;
+$yellow: #f0ad4e !default;
+$green: #4bbf73 !default;
+$teal: #20c997 !default;
+$cyan: #1f9bcf !default;
+
+$primary: $gray-900 !default;
+$secondary: $white !default;
+$success: $green !default;
+$info: $cyan !default;
+$warning: $yellow !default;
+$danger: $red !default;
+$light: $white !default;
+$dark: $gray-800 !default;
+
+$min-contrast-ratio: 2.3 !default;
+
+// Options
+
+$enable-rounded: false !default;
+
+// Body
+
+$body-color: $gray-700 !default;
+
+// Fonts
+
+// stylelint-disable-next-line value-keyword-case
+$font-family-sans-serif: "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
+$h1-font-size: 2rem !default;
+$h2-font-size: 1.75rem !default;
+$h3-font-size: 1.5rem !default;
+$h4-font-size: 1.25rem !default;
+$h5-font-size: 1rem !default;
+$h6-font-size: .75rem !default;
+$headings-font-weight: 600 !default;
+$headings-color: $gray-900 !default;
+
+// Tables
+
+$table-border-color: rgba(0, 0, 0, .05) !default;
+
+// Buttons + Forms
+
+$input-btn-border-width: 0 !default;
+
+// Buttons
+
+$btn-line-height: 1.5rem !default;
+$input-btn-padding-y: .75rem !default;
+$input-btn-padding-x: 1.5rem !default;
+$input-btn-padding-y-sm: .5rem !default;
+$input-btn-padding-x-sm: 1rem !default;
+$input-btn-padding-y-lg: 2rem !default;
+$input-btn-padding-x-lg: 2rem !default;
+$btn-font-weight: 600 !default;
+
+// Forms
+
+$input-line-height: 1.5 !default;
+$input-bg: $gray-200 !default;
+$input-disabled-bg: $gray-300 !default;
+$input-group-addon-bg: $gray-300 !default;
+
+// Navbar
+
+$navbar-padding-y: 1.5rem !default;
+$navbar-dark-hover-color: $white !default;
+$navbar-light-color: rgba($black, .3) !default;
+$navbar-light-hover-color: $gray-900 !default;
+$navbar-light-active-color: $gray-900 !default;
+
+// Pagination
+
+$pagination-border-color: transparent !default;
+$pagination-hover-border-color: $pagination-border-color !default;
+$pagination-disabled-border-color: $pagination-border-color !default;
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_accordion.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_accordion.scss
new file mode 100644
index 0000000000..f09601bab6
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_accordion.scss
@@ -0,0 +1,149 @@
+//
+// Base styles
+//
+
+.accordion {
+ // scss-docs-start accordion-css-vars
+ --#{$prefix}accordion-color: #{$accordion-color};
+ --#{$prefix}accordion-bg: #{$accordion-bg};
+ --#{$prefix}accordion-transition: #{$accordion-transition};
+ --#{$prefix}accordion-border-color: #{$accordion-border-color};
+ --#{$prefix}accordion-border-width: #{$accordion-border-width};
+ --#{$prefix}accordion-border-radius: #{$accordion-border-radius};
+ --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};
+ --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};
+ --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};
+ --#{$prefix}accordion-btn-color: #{$accordion-button-color};
+ --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};
+ --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};
+ --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};
+ --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};
+ --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};
+ --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};
+ --#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};
+ --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
+ --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};
+ --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
+ --#{$prefix}accordion-active-color: #{$accordion-button-active-color};
+ --#{$prefix}accordion-active-bg: #{$accordion-button-active-bg};
+ // scss-docs-end accordion-css-vars
+}
+
+.accordion-button {
+ position: relative;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);
+ @include font-size($font-size-base);
+ color: var(--#{$prefix}accordion-btn-color);
+ text-align: left; // Reset button style
+ background-color: var(--#{$prefix}accordion-btn-bg);
+ border: 0;
+ @include border-radius(0);
+ overflow-anchor: none;
+ @include transition(var(--#{$prefix}accordion-transition));
+
+ &:not(.collapsed) {
+ color: var(--#{$prefix}accordion-active-color);
+ background-color: var(--#{$prefix}accordion-active-bg);
+ box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list
+
+ &::after {
+ background-image: var(--#{$prefix}accordion-btn-active-icon);
+ transform: var(--#{$prefix}accordion-btn-icon-transform);
+ }
+ }
+
+ // Accordion icon
+ &::after {
+ flex-shrink: 0;
+ width: var(--#{$prefix}accordion-btn-icon-width);
+ height: var(--#{$prefix}accordion-btn-icon-width);
+ margin-left: auto;
+ content: "";
+ background-image: var(--#{$prefix}accordion-btn-icon);
+ background-repeat: no-repeat;
+ background-size: var(--#{$prefix}accordion-btn-icon-width);
+ @include transition(var(--#{$prefix}accordion-btn-icon-transition));
+ }
+
+ &:hover {
+ z-index: 2;
+ }
+
+ &:focus {
+ z-index: 3;
+ border-color: var(--#{$prefix}accordion-btn-focus-border-color);
+ outline: 0;
+ box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
+ }
+}
+
+.accordion-header {
+ margin-bottom: 0;
+}
+
+.accordion-item {
+ color: var(--#{$prefix}accordion-color);
+ background-color: var(--#{$prefix}accordion-bg);
+ border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color);
+
+ &:first-of-type {
+ @include border-top-radius(var(--#{$prefix}accordion-border-radius));
+
+ .accordion-button {
+ @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));
+ }
+ }
+
+ &:not(:first-of-type) {
+ border-top: 0;
+ }
+
+ // Only set a border-radius on the last item if the accordion is collapsed
+ &:last-of-type {
+ @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
+
+ .accordion-button {
+ &.collapsed {
+ @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));
+ }
+ }
+
+ .accordion-collapse {
+ @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
+ }
+ }
+}
+
+.accordion-body {
+ padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x);
+}
+
+
+// Flush accordion items
+//
+// Remove borders and border-radius to keep accordion items edge-to-edge.
+
+.accordion-flush {
+ .accordion-collapse {
+ border-width: 0;
+ }
+
+ .accordion-item {
+ border-right: 0;
+ border-left: 0;
+ @include border-radius(0);
+
+ &:first-child { border-top: 0; }
+ &:last-child { border-bottom: 0; }
+
+ .accordion-button {
+ &,
+ &.collapsed {
+ @include border-radius(0);
+ }
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_alert.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_alert.scss
new file mode 100644
index 0000000000..c8bc91b420
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_alert.scss
@@ -0,0 +1,71 @@
+//
+// Base styles
+//
+
+.alert {
+ // scss-docs-start alert-css-vars
+ --#{$prefix}alert-bg: transparent;
+ --#{$prefix}alert-padding-x: #{$alert-padding-x};
+ --#{$prefix}alert-padding-y: #{$alert-padding-y};
+ --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
+ --#{$prefix}alert-color: inherit;
+ --#{$prefix}alert-border-color: transparent;
+ --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
+ --#{$prefix}alert-border-radius: #{$alert-border-radius};
+ // scss-docs-end alert-css-vars
+
+ position: relative;
+ padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
+ margin-bottom: var(--#{$prefix}alert-margin-bottom);
+ color: var(--#{$prefix}alert-color);
+ background-color: var(--#{$prefix}alert-bg);
+ border: var(--#{$prefix}alert-border);
+ @include border-radius(var(--#{$prefix}alert-border-radius));
+}
+
+// Headings for larger alerts
+.alert-heading {
+ // Specified to prevent conflicts of changing $headings-color
+ color: inherit;
+}
+
+// Provide class for links that match alerts
+.alert-link {
+ font-weight: $alert-link-font-weight;
+}
+
+
+// Dismissible alerts
+//
+// Expand the right padding and account for the close button's positioning.
+
+.alert-dismissible {
+ padding-right: $alert-dismissible-padding-r;
+
+ // Adjust close link position
+ .btn-close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: $stretched-link-z-index + 1;
+ padding: $alert-padding-y * 1.25 $alert-padding-x;
+ }
+}
+
+
+// scss-docs-start alert-modifiers
+// Generate contextual modifier classes for colorizing the alert.
+
+@each $state, $value in $theme-colors {
+ $alert-background: shift-color($value, $alert-bg-scale);
+ $alert-border: shift-color($value, $alert-border-scale);
+ $alert-color: shift-color($value, $alert-color-scale);
+
+ @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
+ $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
+ }
+ .alert-#{$state} {
+ @include alert-variant($alert-background, $alert-border, $alert-color);
+ }
+}
+// scss-docs-end alert-modifiers
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_badge.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_badge.scss
new file mode 100644
index 0000000000..cc3d269556
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_badge.scss
@@ -0,0 +1,38 @@
+// Base class
+//
+// Requires one of the contextual, color modifier classes for `color` and
+// `background-color`.
+
+.badge {
+ // scss-docs-start badge-css-vars
+ --#{$prefix}badge-padding-x: #{$badge-padding-x};
+ --#{$prefix}badge-padding-y: #{$badge-padding-y};
+ @include rfs($badge-font-size, --#{$prefix}badge-font-size);
+ --#{$prefix}badge-font-weight: #{$badge-font-weight};
+ --#{$prefix}badge-color: #{$badge-color};
+ --#{$prefix}badge-border-radius: #{$badge-border-radius};
+ // scss-docs-end badge-css-vars
+
+ display: inline-block;
+ padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
+ @include font-size(var(--#{$prefix}badge-font-size));
+ font-weight: var(--#{$prefix}badge-font-weight);
+ line-height: 1;
+ color: var(--#{$prefix}badge-color);
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ @include border-radius(var(--#{$prefix}badge-border-radius));
+ @include gradient-bg();
+
+ // Empty badges collapse automatically
+ &:empty {
+ display: none;
+ }
+}
+
+// Quick fix for badges in buttons
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_breadcrumb.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_breadcrumb.scss
new file mode 100644
index 0000000000..b8252ff215
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_breadcrumb.scss
@@ -0,0 +1,40 @@
+.breadcrumb {
+ // scss-docs-start breadcrumb-css-vars
+ --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
+ --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
+ --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
+ @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);
+ --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
+ --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
+ --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
+ --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
+ --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
+ // scss-docs-end breadcrumb-css-vars
+
+ display: flex;
+ flex-wrap: wrap;
+ padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);
+ margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);
+ @include font-size(var(--#{$prefix}breadcrumb-font-size));
+ list-style: none;
+ background-color: var(--#{$prefix}breadcrumb-bg);
+ @include border-radius(var(--#{$prefix}breadcrumb-border-radius));
+}
+
+.breadcrumb-item {
+ // The separator between breadcrumbs (by default, a forward-slash: "/")
+ + .breadcrumb-item {
+ padding-left: var(--#{$prefix}breadcrumb-item-padding-x);
+
+ &::before {
+ float: left; // Suppress inline spacings and underlining of the separator
+ padding-right: var(--#{$prefix}breadcrumb-item-padding-x);
+ color: var(--#{$prefix}breadcrumb-divider-color);
+ content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
+ }
+ }
+
+ &.active {
+ color: var(--#{$prefix}breadcrumb-item-active-color);
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_button-group.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_button-group.scss
new file mode 100644
index 0000000000..79b100cbfb
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_button-group.scss
@@ -0,0 +1,142 @@
+// Make the div behave like a button
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-flex;
+ vertical-align: middle; // match .btn alignment given font-size hack above
+
+ > .btn {
+ position: relative;
+ flex: 1 1 auto;
+ }
+
+ // Bring the hover, focused, and "active" buttons to the front to overlay
+ // the borders properly
+ > .btn-check:checked + .btn,
+ > .btn-check:focus + .btn,
+ > .btn:hover,
+ > .btn:focus,
+ > .btn:active,
+ > .btn.active {
+ z-index: 1;
+ }
+}
+
+// Optional: Group multiple button groups together for a toolbar
+.btn-toolbar {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+
+ .input-group {
+ width: auto;
+ }
+}
+
+.btn-group {
+ @include border-radius($btn-border-radius);
+
+ // Prevent double borders when buttons are next to each other
+ > :not(.btn-check:first-child) + .btn,
+ > .btn-group:not(:first-child) {
+ margin-left: -$btn-border-width;
+ }
+
+ // Reset rounded corners
+ > .btn:not(:last-child):not(.dropdown-toggle),
+ > .btn.dropdown-toggle-split:first-child,
+ > .btn-group:not(:last-child) > .btn {
+ @include border-end-radius(0);
+ }
+
+ // The left radius should be 0 if the button is:
+ // - the "third or more" child
+ // - the second child and the previous element isn't `.btn-check` (making it the first child visually)
+ // - part of a btn-group which isn't the first child
+ > .btn:nth-child(n + 3),
+ > :not(.btn-check) + .btn,
+ > .btn-group:not(:first-child) > .btn {
+ @include border-start-radius(0);
+ }
+}
+
+// Sizing
+//
+// Remix the default button sizing classes into new ones for easier manipulation.
+
+.btn-group-sm > .btn { @extend .btn-sm; }
+.btn-group-lg > .btn { @extend .btn-lg; }
+
+
+//
+// Split button dropdowns
+//
+
+.dropdown-toggle-split {
+ padding-right: $btn-padding-x * .75;
+ padding-left: $btn-padding-x * .75;
+
+ &::after,
+ .dropup &::after,
+ .dropend &::after {
+ margin-left: 0;
+ }
+
+ .dropstart &::before {
+ margin-right: 0;
+ }
+}
+
+.btn-sm + .dropdown-toggle-split {
+ padding-right: $btn-padding-x-sm * .75;
+ padding-left: $btn-padding-x-sm * .75;
+}
+
+.btn-lg + .dropdown-toggle-split {
+ padding-right: $btn-padding-x-lg * .75;
+ padding-left: $btn-padding-x-lg * .75;
+}
+
+
+// The clickable button for toggling the menu
+// Set the same inset shadow as the :active state
+.btn-group.show .dropdown-toggle {
+ @include box-shadow($btn-active-box-shadow);
+
+ // Show no shadow for `.btn-link` since it has no other button styles.
+ &.btn-link {
+ @include box-shadow(none);
+ }
+}
+
+
+//
+// Vertical button groups
+//
+
+.btn-group-vertical {
+ flex-direction: column;
+ align-items: flex-start;
+ justify-content: center;
+
+ > .btn,
+ > .btn-group {
+ width: 100%;
+ }
+
+ > .btn:not(:first-child),
+ > .btn-group:not(:first-child) {
+ margin-top: -$btn-border-width;
+ }
+
+ // Reset rounded corners
+ > .btn:not(:last-child):not(.dropdown-toggle),
+ > .btn-group:not(:last-child) > .btn {
+ @include border-bottom-radius(0);
+ }
+
+ > .btn ~ .btn,
+ > .btn-group:not(:first-child) > .btn {
+ @include border-top-radius(0);
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_buttons.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_buttons.scss
new file mode 100644
index 0000000000..c2d0773516
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_buttons.scss
@@ -0,0 +1,201 @@
+//
+// Base styles
+//
+
+.btn {
+ // scss-docs-start btn-css-vars
+ --#{$prefix}btn-padding-x: #{$btn-padding-x};
+ --#{$prefix}btn-padding-y: #{$btn-padding-y};
+ --#{$prefix}btn-font-family: #{$btn-font-family};
+ @include rfs($btn-font-size, --#{$prefix}btn-font-size);
+ --#{$prefix}btn-font-weight: #{$btn-font-weight};
+ --#{$prefix}btn-line-height: #{$btn-line-height};
+ --#{$prefix}btn-color: #{$body-color};
+ --#{$prefix}btn-bg: transparent;
+ --#{$prefix}btn-border-width: #{$btn-border-width};
+ --#{$prefix}btn-border-color: transparent;
+ --#{$prefix}btn-border-radius: #{$btn-border-radius};
+ --#{$prefix}btn-hover-border-color: transparent;
+ --#{$prefix}btn-box-shadow: #{$btn-box-shadow};
+ --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};
+ --#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5);
+ // scss-docs-end btn-css-vars
+
+ display: inline-block;
+ padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);
+ font-family: var(--#{$prefix}btn-font-family);
+ @include font-size(var(--#{$prefix}btn-font-size));
+ font-weight: var(--#{$prefix}btn-font-weight);
+ line-height: var(--#{$prefix}btn-line-height);
+ color: var(--#{$prefix}btn-color);
+ text-align: center;
+ text-decoration: if($link-decoration == none, null, none);
+ white-space: $btn-white-space;
+ vertical-align: middle;
+ cursor: if($enable-button-pointers, pointer, null);
+ user-select: none;
+ border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);
+ @include border-radius(var(--#{$prefix}btn-border-radius));
+ @include gradient-bg(var(--#{$prefix}btn-bg));
+ @include box-shadow(var(--#{$prefix}btn-box-shadow));
+ @include transition($btn-transition);
+
+ :not(.btn-check) + &:hover,
+ &:first-child:hover {
+ color: var(--#{$prefix}btn-hover-color);
+ text-decoration: if($link-hover-decoration == underline, none, null);
+ background-color: var(--#{$prefix}btn-hover-bg);
+ border-color: var(--#{$prefix}btn-hover-border-color);
+ }
+
+ &:focus-visible {
+ color: var(--#{$prefix}btn-hover-color);
+ @include gradient-bg(var(--#{$prefix}btn-hover-bg));
+ border-color: var(--#{$prefix}btn-hover-border-color);
+ outline: 0;
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
+ } @else {
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
+ }
+ }
+
+ .btn-check:focus-visible + & {
+ border-color: var(--#{$prefix}btn-hover-border-color);
+ outline: 0;
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
+ } @else {
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
+ }
+ }
+
+ .btn-check:checked + &,
+ :not(.btn-check) + &:active,
+ &:first-child:active,
+ &.active,
+ &.show {
+ color: var(--#{$prefix}btn-active-color);
+ background-color: var(--#{$prefix}btn-active-bg);
+ // Remove CSS gradients if they're enabled
+ background-image: if($enable-gradients, none, null);
+ border-color: var(--#{$prefix}btn-active-border-color);
+ @include box-shadow(var(--#{$prefix}btn-active-shadow));
+
+ &:focus-visible {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
+ } @else {
+ box-shadow: var(--#{$prefix}btn-focus-box-shadow);
+ }
+ }
+ }
+
+ &:disabled,
+ &.disabled,
+ fieldset:disabled & {
+ color: var(--#{$prefix}btn-disabled-color);
+ pointer-events: none;
+ background-color: var(--#{$prefix}btn-disabled-bg);
+ background-image: if($enable-gradients, none, null);
+ border-color: var(--#{$prefix}btn-disabled-border-color);
+ opacity: var(--#{$prefix}btn-disabled-opacity);
+ @include box-shadow(none);
+ }
+}
+
+
+//
+// Alternate buttons
+//
+
+// scss-docs-start btn-variant-loops
+@each $color, $value in $theme-colors {
+ .btn-#{$color} {
+ @if $color == "light" {
+ @include button-variant(
+ $value,
+ $value,
+ $hover-background: shade-color($value, $btn-hover-bg-shade-amount),
+ $hover-border: shade-color($value, $btn-hover-border-shade-amount),
+ $active-background: shade-color($value, $btn-active-bg-shade-amount),
+ $active-border: shade-color($value, $btn-active-border-shade-amount)
+ );
+ } @else if $color == "dark" {
+ @include button-variant(
+ $value,
+ $value,
+ $hover-background: tint-color($value, $btn-hover-bg-tint-amount),
+ $hover-border: tint-color($value, $btn-hover-border-tint-amount),
+ $active-background: tint-color($value, $btn-active-bg-tint-amount),
+ $active-border: tint-color($value, $btn-active-border-tint-amount)
+ );
+ } @else {
+ @include button-variant($value, $value);
+ }
+ }
+}
+
+@each $color, $value in $theme-colors {
+ .btn-outline-#{$color} {
+ @include button-outline-variant($value);
+ }
+}
+// scss-docs-end btn-variant-loops
+
+
+//
+// Link buttons
+//
+
+// Make a button look and behave like a link
+.btn-link {
+ --#{$prefix}btn-font-weight: #{$font-weight-normal};
+ --#{$prefix}btn-color: #{$btn-link-color};
+ --#{$prefix}btn-bg: transparent;
+ --#{$prefix}btn-border-color: transparent;
+ --#{$prefix}btn-hover-color: #{$btn-link-hover-color};
+ --#{$prefix}btn-hover-border-color: transparent;
+ --#{$prefix}btn-active-color: #{$btn-link-hover-color};
+ --#{$prefix}btn-active-border-color: transparent;
+ --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color};
+ --#{$prefix}btn-disabled-border-color: transparent;
+ --#{$prefix}btn-box-shadow: none;
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))};
+
+ text-decoration: $link-decoration;
+ @if $enable-gradients {
+ background-image: none;
+ }
+
+ &:hover,
+ &:focus-visible {
+ text-decoration: $link-hover-decoration;
+ }
+
+ &:focus-visible {
+ color: var(--#{$prefix}btn-color);
+ }
+
+ &:hover {
+ color: var(--#{$prefix}btn-hover-color);
+ }
+
+ // No need for an active state here
+}
+
+
+//
+// Button Sizes
+//
+
+.btn-lg {
+ @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);
+}
+
+.btn-sm {
+ @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_card.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_card.scss
new file mode 100644
index 0000000000..ce8c02f1f2
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_card.scss
@@ -0,0 +1,234 @@
+//
+// Base styles
+//
+
+.card {
+ // scss-docs-start card-css-vars
+ --#{$prefix}card-spacer-y: #{$card-spacer-y};
+ --#{$prefix}card-spacer-x: #{$card-spacer-x};
+ --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y};
+ --#{$prefix}card-border-width: #{$card-border-width};
+ --#{$prefix}card-border-color: #{$card-border-color};
+ --#{$prefix}card-border-radius: #{$card-border-radius};
+ --#{$prefix}card-box-shadow: #{$card-box-shadow};
+ --#{$prefix}card-inner-border-radius: #{$card-inner-border-radius};
+ --#{$prefix}card-cap-padding-y: #{$card-cap-padding-y};
+ --#{$prefix}card-cap-padding-x: #{$card-cap-padding-x};
+ --#{$prefix}card-cap-bg: #{$card-cap-bg};
+ --#{$prefix}card-cap-color: #{$card-cap-color};
+ --#{$prefix}card-height: #{$card-height};
+ --#{$prefix}card-color: #{$card-color};
+ --#{$prefix}card-bg: #{$card-bg};
+ --#{$prefix}card-img-overlay-padding: #{$card-img-overlay-padding};
+ --#{$prefix}card-group-margin: #{$card-group-margin};
+ // scss-docs-end card-css-vars
+
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
+ height: var(--#{$prefix}card-height);
+ word-wrap: break-word;
+ background-color: var(--#{$prefix}card-bg);
+ background-clip: border-box;
+ border: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
+ @include border-radius(var(--#{$prefix}card-border-radius));
+ @include box-shadow(var(--#{$prefix}card-box-shadow));
+
+ > hr {
+ margin-right: 0;
+ margin-left: 0;
+ }
+
+ > .list-group {
+ border-top: inherit;
+ border-bottom: inherit;
+
+ &:first-child {
+ border-top-width: 0;
+ @include border-top-radius(var(--#{$prefix}card-inner-border-radius));
+ }
+
+ &:last-child {
+ border-bottom-width: 0;
+ @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));
+ }
+ }
+
+ // Due to specificity of the above selector (`.card > .list-group`), we must
+ // use a child selector here to prevent double borders.
+ > .card-header + .list-group,
+ > .list-group + .card-footer {
+ border-top: 0;
+ }
+}
+
+.card-body {
+ // Enable `flex-grow: 1` for decks and groups so that card blocks take up
+ // as much space as possible, ensuring footers are aligned to the bottom.
+ flex: 1 1 auto;
+ padding: var(--#{$prefix}card-spacer-y) var(--#{$prefix}card-spacer-x);
+ color: var(--#{$prefix}card-color);
+}
+
+.card-title {
+ margin-bottom: var(--#{$prefix}card-title-spacer-y);
+}
+
+.card-subtitle {
+ margin-top: calc(-.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list
+ margin-bottom: 0;
+}
+
+.card-text:last-child {
+ margin-bottom: 0;
+}
+
+.card-link {
+ &:hover {
+ text-decoration: if($link-hover-decoration == underline, none, null);
+ }
+
+ + .card-link {
+ margin-left: var(--#{$prefix}card-spacer-x);
+ }
+}
+
+//
+// Optional textual caps
+//
+
+.card-header {
+ padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);
+ margin-bottom: 0; // Removes the default margin-bottom of <hN>
+ color: var(--#{$prefix}card-cap-color);
+ background-color: var(--#{$prefix}card-cap-bg);
+ border-bottom: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
+
+ &:first-child {
+ @include border-radius(var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius) 0 0);
+ }
+}
+
+.card-footer {
+ padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);
+ color: var(--#{$prefix}card-cap-color);
+ background-color: var(--#{$prefix}card-cap-bg);
+ border-top: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
+
+ &:last-child {
+ @include border-radius(0 0 var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius));
+ }
+}
+
+
+//
+// Header navs
+//
+
+.card-header-tabs {
+ margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
+ margin-bottom: calc(-1 * var(--#{$prefix}card-cap-padding-y)); // stylelint-disable-line function-disallowed-list
+ margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
+ border-bottom: 0;
+
+ .nav-link.active {
+ background-color: var(--#{$prefix}card-bg);
+ border-bottom-color: var(--#{$prefix}card-bg);
+ }
+}
+
+.card-header-pills {
+ margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
+ margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
+}
+
+// Card image
+.card-img-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ padding: var(--#{$prefix}card-img-overlay-padding);
+ @include border-radius(var(--#{$prefix}card-inner-border-radius));
+}
+
+.card-img,
+.card-img-top,
+.card-img-bottom {
+ width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
+}
+
+.card-img,
+.card-img-top {
+ @include border-top-radius(var(--#{$prefix}card-inner-border-radius));
+}
+
+.card-img,
+.card-img-bottom {
+ @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));
+}
+
+
+//
+// Card groups
+//
+
+.card-group {
+ // The child selector allows nested `.card` within `.card-group`
+ // to display properly.
+ > .card {
+ margin-bottom: var(--#{$prefix}card-group-margin);
+ }
+
+ @include media-breakpoint-up(sm) {
+ display: flex;
+ flex-flow: row wrap;
+ // The child selector allows nested `.card` within `.card-group`
+ // to display properly.
+ > .card {
+ // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
+ flex: 1 0 0%;
+ margin-bottom: 0;
+
+ + .card {
+ margin-left: 0;
+ border-left: 0;
+ }
+
+ // Handle rounded corners
+ @if $enable-rounded {
+ &:not(:last-child) {
+ @include border-end-radius(0);
+
+ .card-img-top,
+ .card-header {
+ // stylelint-disable-next-line property-disallowed-list
+ border-top-right-radius: 0;
+ }
+ .card-img-bottom,
+ .card-footer {
+ // stylelint-disable-next-line property-disallowed-list
+ border-bottom-right-radius: 0;
+ }
+ }
+
+ &:not(:first-child) {
+ @include border-start-radius(0);
+
+ .card-img-top,
+ .card-header {
+ // stylelint-disable-next-line property-disallowed-list
+ border-top-left-radius: 0;
+ }
+ .card-img-bottom,
+ .card-footer {
+ // stylelint-disable-next-line property-disallowed-list
+ border-bottom-left-radius: 0;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_carousel.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_carousel.scss
new file mode 100644
index 0000000000..3d8fb15a06
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_carousel.scss
@@ -0,0 +1,229 @@
+// Notes on the classes:
+//
+// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)
+// even when their scroll action started on a carousel, but for compatibility (with Firefox)
+// we're preventing all actions instead
+// 2. The .carousel-item-start and .carousel-item-end is used to indicate where
+// the active slide is heading.
+// 3. .active.carousel-item is the current slide.
+// 4. .active.carousel-item-start and .active.carousel-item-end is the current
+// slide in its in-transition state. Only one of these occurs at a time.
+// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end
+// is the upcoming slide in transition.
+
+.carousel {
+ position: relative;
+}
+
+.carousel.pointer-event {
+ touch-action: pan-y;
+}
+
+.carousel-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+ @include clearfix();
+}
+
+.carousel-item {
+ position: relative;
+ display: none;
+ float: left;
+ width: 100%;
+ margin-right: -100%;
+ backface-visibility: hidden;
+ @include transition($carousel-transition);
+}
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+ display: block;
+}
+
+/* rtl:begin:ignore */
+.carousel-item-next:not(.carousel-item-start),
+.active.carousel-item-end {
+ transform: translateX(100%);
+}
+
+.carousel-item-prev:not(.carousel-item-end),
+.active.carousel-item-start {
+ transform: translateX(-100%);
+}
+
+/* rtl:end:ignore */
+
+
+//
+// Alternate transitions
+//
+
+.carousel-fade {
+ .carousel-item {
+ opacity: 0;
+ transition-property: opacity;
+ transform: none;
+ }
+
+ .carousel-item.active,
+ .carousel-item-next.carousel-item-start,
+ .carousel-item-prev.carousel-item-end {
+ z-index: 1;
+ opacity: 1;
+ }
+
+ .active.carousel-item-start,
+ .active.carousel-item-end {
+ z-index: 0;
+ opacity: 0;
+ @include transition(opacity 0s $carousel-transition-duration);
+ }
+}
+
+
+//
+// Left/right controls for nav
+//
+
+.carousel-control-prev,
+.carousel-control-next {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ z-index: 1;
+ // Use flex for alignment (1-3)
+ display: flex; // 1. allow flex styles
+ align-items: center; // 2. vertically center contents
+ justify-content: center; // 3. horizontally center contents
+ width: $carousel-control-width;
+ padding: 0;
+ color: $carousel-control-color;
+ text-align: center;
+ background: none;
+ border: 0;
+ opacity: $carousel-control-opacity;
+ @include transition($carousel-control-transition);
+
+ // Hover/focus state
+ &:hover,
+ &:focus {
+ color: $carousel-control-color;
+ text-decoration: none;
+ outline: 0;
+ opacity: $carousel-control-hover-opacity;
+ }
+}
+.carousel-control-prev {
+ left: 0;
+ background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null);
+}
+.carousel-control-next {
+ right: 0;
+ background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null);
+}
+
+// Icons for within
+.carousel-control-prev-icon,
+.carousel-control-next-icon {
+ display: inline-block;
+ width: $carousel-control-icon-width;
+ height: $carousel-control-icon-width;
+ background-repeat: no-repeat;
+ background-position: 50%;
+ background-size: 100% 100%;
+}
+
+/* rtl:options: {
+ "autoRename": true,
+ "stringMap":[ {
+ "name" : "prev-next",
+ "search" : "prev",
+ "replace" : "next"
+ } ]
+} */
+.carousel-control-prev-icon {
+ background-image: escape-svg($carousel-control-prev-icon-bg);
+}
+.carousel-control-next-icon {
+ background-image: escape-svg($carousel-control-next-icon-bg);
+}
+
+// Optional indicator pips/controls
+//
+// Add a container (such as a list) with the following class and add an item (ideally a focusable control,
+// like a button) with data-bs-target for each slide your carousel holds.
+
+.carousel-indicators {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 2;
+ display: flex;
+ justify-content: center;
+ padding: 0;
+ // Use the .carousel-control's width as margin so we don't overlay those
+ margin-right: $carousel-control-width;
+ margin-bottom: 1rem;
+ margin-left: $carousel-control-width;
+ list-style: none;
+
+ [data-bs-target] {
+ box-sizing: content-box;
+ flex: 0 1 auto;
+ width: $carousel-indicator-width;
+ height: $carousel-indicator-height;
+ padding: 0;
+ margin-right: $carousel-indicator-spacer;
+ margin-left: $carousel-indicator-spacer;
+ text-indent: -999px;
+ cursor: pointer;
+ background-color: $carousel-indicator-active-bg;
+ background-clip: padding-box;
+ border: 0;
+ // Use transparent borders to increase the hit area by 10px on top and bottom.
+ border-top: $carousel-indicator-hit-area-height solid transparent;
+ border-bottom: $carousel-indicator-hit-area-height solid transparent;
+ opacity: $carousel-indicator-opacity;
+ @include transition($carousel-indicator-transition);
+ }
+
+ .active {
+ opacity: $carousel-indicator-active-opacity;
+ }
+}
+
+
+// Optional captions
+//
+//
+
+.carousel-caption {
+ position: absolute;
+ right: (100% - $carousel-caption-width) * .5;
+ bottom: $carousel-caption-spacer;
+ left: (100% - $carousel-caption-width) * .5;
+ padding-top: $carousel-caption-padding-y;
+ padding-bottom: $carousel-caption-padding-y;
+ color: $carousel-caption-color;
+ text-align: center;
+}
+
+// Dark mode carousel
+
+.carousel-dark {
+ .carousel-control-prev-icon,
+ .carousel-control-next-icon {
+ filter: $carousel-dark-control-icon-filter;
+ }
+
+ .carousel-indicators [data-bs-target] {
+ background-color: $carousel-dark-indicator-active-bg;
+ }
+
+ .carousel-caption {
+ color: $carousel-dark-caption-color;
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_close.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_close.scss
new file mode 100644
index 0000000000..a0813de8d3
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_close.scss
@@ -0,0 +1,40 @@
+// Transparent background and border properties included for button version.
+// iOS requires the button element instead of an anchor tag.
+// If you want the anchor version, it requires `href="#"`.
+// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
+
+.btn-close {
+ box-sizing: content-box;
+ width: $btn-close-width;
+ height: $btn-close-height;
+ padding: $btn-close-padding-y $btn-close-padding-x;
+ color: $btn-close-color;
+ background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
+ border: 0; // for button elements
+ @include border-radius();
+ opacity: $btn-close-opacity;
+
+ // Override <a>'s hover style
+ &:hover {
+ color: $btn-close-color;
+ text-decoration: none;
+ opacity: $btn-close-hover-opacity;
+ }
+
+ &:focus {
+ outline: 0;
+ box-shadow: $btn-close-focus-shadow;
+ opacity: $btn-close-focus-opacity;
+ }
+
+ &:disabled,
+ &.disabled {
+ pointer-events: none;
+ user-select: none;
+ opacity: $btn-close-disabled-opacity;
+ }
+}
+
+.btn-close-white {
+ filter: $btn-close-white-filter;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_containers.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_containers.scss
new file mode 100644
index 0000000000..83b31381bf
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_containers.scss
@@ -0,0 +1,41 @@
+// Container widths
+//
+// Set the container width, and override it for fixed navbars in media queries.
+
+@if $enable-container-classes {
+ // Single container class with breakpoint max-widths
+ .container,
+ // 100% wide container at all breakpoints
+ .container-fluid {
+ @include make-container();
+ }
+
+ // Responsive containers that are 100% wide until a breakpoint
+ @each $breakpoint, $container-max-width in $container-max-widths {
+ .container-#{$breakpoint} {
+ @extend .container-fluid;
+ }
+
+ @include media-breakpoint-up($breakpoint, $grid-breakpoints) {
+ %responsive-container-#{$breakpoint} {
+ max-width: $container-max-width;
+ }
+
+ // Extend each breakpoint which is smaller or equal to the current breakpoint
+ $extend-breakpoint: true;
+
+ @each $name, $width in $grid-breakpoints {
+ @if ($extend-breakpoint) {
+ .container#{breakpoint-infix($name, $grid-breakpoints)} {
+ @extend %responsive-container-#{$breakpoint};
+ }
+
+ // Once the current breakpoint is reached, stop extending
+ @if ($breakpoint == $name) {
+ $extend-breakpoint: false;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_dropdown.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_dropdown.scss
new file mode 100644
index 0000000000..8899d25a0d
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_dropdown.scss
@@ -0,0 +1,249 @@
+// The dropdown wrapper (`<div>`)
+.dropup,
+.dropend,
+.dropdown,
+.dropstart,
+.dropup-center,
+.dropdown-center {
+ position: relative;
+}
+
+.dropdown-toggle {
+ white-space: nowrap;
+
+ // Generate the caret automatically
+ @include caret();
+}
+
+// The dropdown menu
+.dropdown-menu {
+ // scss-docs-start dropdown-css-vars
+ --#{$prefix}dropdown-zindex: #{$zindex-dropdown};
+ --#{$prefix}dropdown-min-width: #{$dropdown-min-width};
+ --#{$prefix}dropdown-padding-x: #{$dropdown-padding-x};
+ --#{$prefix}dropdown-padding-y: #{$dropdown-padding-y};
+ --#{$prefix}dropdown-spacer: #{$dropdown-spacer};
+ @include rfs($dropdown-font-size, --#{$prefix}dropdown-font-size);
+ --#{$prefix}dropdown-color: #{$dropdown-color};
+ --#{$prefix}dropdown-bg: #{$dropdown-bg};
+ --#{$prefix}dropdown-border-color: #{$dropdown-border-color};
+ --#{$prefix}dropdown-border-radius: #{$dropdown-border-radius};
+ --#{$prefix}dropdown-border-width: #{$dropdown-border-width};
+ --#{$prefix}dropdown-inner-border-radius: #{$dropdown-inner-border-radius};
+ --#{$prefix}dropdown-divider-bg: #{$dropdown-divider-bg};
+ --#{$prefix}dropdown-divider-margin-y: #{$dropdown-divider-margin-y};
+ --#{$prefix}dropdown-box-shadow: #{$dropdown-box-shadow};
+ --#{$prefix}dropdown-link-color: #{$dropdown-link-color};
+ --#{$prefix}dropdown-link-hover-color: #{$dropdown-link-hover-color};
+ --#{$prefix}dropdown-link-hover-bg: #{$dropdown-link-hover-bg};
+ --#{$prefix}dropdown-link-active-color: #{$dropdown-link-active-color};
+ --#{$prefix}dropdown-link-active-bg: #{$dropdown-link-active-bg};
+ --#{$prefix}dropdown-link-disabled-color: #{$dropdown-link-disabled-color};
+ --#{$prefix}dropdown-item-padding-x: #{$dropdown-item-padding-x};
+ --#{$prefix}dropdown-item-padding-y: #{$dropdown-item-padding-y};
+ --#{$prefix}dropdown-header-color: #{$dropdown-header-color};
+ --#{$prefix}dropdown-header-padding-x: #{$dropdown-header-padding-x};
+ --#{$prefix}dropdown-header-padding-y: #{$dropdown-header-padding-y};
+ // scss-docs-end dropdown-css-vars
+
+ position: absolute;
+ z-index: var(--#{$prefix}dropdown-zindex);
+ display: none; // none by default, but block on "open" of the menu
+ min-width: var(--#{$prefix}dropdown-min-width);
+ padding: var(--#{$prefix}dropdown-padding-y) var(--#{$prefix}dropdown-padding-x);
+ margin: 0; // Override default margin of ul
+ @include font-size(var(--#{$prefix}dropdown-font-size));
+ color: var(--#{$prefix}dropdown-color);
+ text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
+ list-style: none;
+ background-color: var(--#{$prefix}dropdown-bg);
+ background-clip: padding-box;
+ border: var(--#{$prefix}dropdown-border-width) solid var(--#{$prefix}dropdown-border-color);
+ @include border-radius(var(--#{$prefix}dropdown-border-radius));
+ @include box-shadow(var(--#{$prefix}dropdown-box-shadow));
+
+ &[data-bs-popper] {
+ top: 100%;
+ left: 0;
+ margin-top: var(--#{$prefix}dropdown-spacer);
+ }
+
+ @if $dropdown-padding-y == 0 {
+ > .dropdown-item:first-child,
+ > li:first-child .dropdown-item {
+ @include border-top-radius(var(--#{$prefix}dropdown-inner-border-radius));
+ }
+ > .dropdown-item:last-child,
+ > li:last-child .dropdown-item {
+ @include border-bottom-radius(var(--#{$prefix}dropdown-inner-border-radius));
+ }
+
+ }
+}
+
+// scss-docs-start responsive-breakpoints
+// We deliberately hardcode the `bs-` prefix because we check
+// this custom property in JS to determine Popper's positioning
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .dropdown-menu#{$infix}-start {
+ --bs-position: start;
+
+ &[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ }
+
+ .dropdown-menu#{$infix}-end {
+ --bs-position: end;
+
+ &[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+ }
+ }
+}
+// scss-docs-end responsive-breakpoints
+
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
+// Just add .dropup after the standard .dropdown class and you're set.
+.dropup {
+ .dropdown-menu[data-bs-popper] {
+ top: auto;
+ bottom: 100%;
+ margin-top: 0;
+ margin-bottom: var(--#{$prefix}dropdown-spacer);
+ }
+
+ .dropdown-toggle {
+ @include caret(up);
+ }
+}
+
+.dropend {
+ .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: auto;
+ left: 100%;
+ margin-top: 0;
+ margin-left: var(--#{$prefix}dropdown-spacer);
+ }
+
+ .dropdown-toggle {
+ @include caret(end);
+ &::after {
+ vertical-align: 0;
+ }
+ }
+}
+
+.dropstart {
+ .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: 100%;
+ left: auto;
+ margin-top: 0;
+ margin-right: var(--#{$prefix}dropdown-spacer);
+ }
+
+ .dropdown-toggle {
+ @include caret(start);
+ &::before {
+ vertical-align: 0;
+ }
+ }
+}
+
+
+// Dividers (basically an `<hr>`) within the dropdown
+.dropdown-divider {
+ height: 0;
+ margin: var(--#{$prefix}dropdown-divider-margin-y) 0;
+ overflow: hidden;
+ border-top: 1px solid var(--#{$prefix}dropdown-divider-bg);
+ opacity: 1; // Revisit in v6 to de-dupe styles that conflict with <hr> element
+}
+
+// Links, buttons, and more within the dropdown menu
+//
+// `<button>`-specific styles are denoted with `// For <button>s`
+.dropdown-item {
+ display: block;
+ width: 100%; // For `<button>`s
+ padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
+ clear: both;
+ font-weight: $font-weight-normal;
+ color: var(--#{$prefix}dropdown-link-color);
+ text-align: inherit; // For `<button>`s
+ text-decoration: if($link-decoration == none, null, none);
+ white-space: nowrap; // prevent links from randomly breaking onto new lines
+ background-color: transparent; // For `<button>`s
+ border: 0; // For `<button>`s
+
+ &:hover,
+ &:focus {
+ color: var(--#{$prefix}dropdown-link-hover-color);
+ text-decoration: if($link-hover-decoration == underline, none, null);
+ @include gradient-bg(var(--#{$prefix}dropdown-link-hover-bg));
+ }
+
+ &.active,
+ &:active {
+ color: var(--#{$prefix}dropdown-link-active-color);
+ text-decoration: none;
+ @include gradient-bg(var(--#{$prefix}dropdown-link-active-bg));
+ }
+
+ &.disabled,
+ &:disabled {
+ color: var(--#{$prefix}dropdown-link-disabled-color);
+ pointer-events: none;
+ background-color: transparent;
+ // Remove CSS gradients if they're enabled
+ background-image: if($enable-gradients, none, null);
+ }
+}
+
+.dropdown-menu.show {
+ display: block;
+}
+
+// Dropdown section headers
+.dropdown-header {
+ display: block;
+ padding: var(--#{$prefix}dropdown-header-padding-y) var(--#{$prefix}dropdown-header-padding-x);
+ margin-bottom: 0; // for use with heading elements
+ @include font-size($font-size-sm);
+ color: var(--#{$prefix}dropdown-header-color);
+ white-space: nowrap; // as with > li > a
+}
+
+// Dropdown text
+.dropdown-item-text {
+ display: block;
+ padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
+ color: var(--#{$prefix}dropdown-link-color);
+}
+
+// Dark dropdowns
+.dropdown-menu-dark {
+ // scss-docs-start dropdown-dark-css-vars
+ --#{$prefix}dropdown-color: #{$dropdown-dark-color};
+ --#{$prefix}dropdown-bg: #{$dropdown-dark-bg};
+ --#{$prefix}dropdown-border-color: #{$dropdown-dark-border-color};
+ --#{$prefix}dropdown-box-shadow: #{$dropdown-dark-box-shadow};
+ --#{$prefix}dropdown-link-color: #{$dropdown-dark-link-color};
+ --#{$prefix}dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};
+ --#{$prefix}dropdown-divider-bg: #{$dropdown-dark-divider-bg};
+ --#{$prefix}dropdown-link-hover-bg: #{$dropdown-dark-link-hover-bg};
+ --#{$prefix}dropdown-link-active-color: #{$dropdown-dark-link-active-color};
+ --#{$prefix}dropdown-link-active-bg: #{$dropdown-dark-link-active-bg};
+ --#{$prefix}dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};
+ --#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};
+ // scss-docs-end dropdown-dark-css-vars
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_forms.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_forms.scss
new file mode 100644
index 0000000000..7b17d849ac
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_forms.scss
@@ -0,0 +1,9 @@
+@import "forms/labels";
+@import "forms/form-text";
+@import "forms/form-control";
+@import "forms/form-select";
+@import "forms/form-check";
+@import "forms/form-range";
+@import "forms/floating-labels";
+@import "forms/input-group";
+@import "forms/validation";
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_functions.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_functions.scss
new file mode 100644
index 0000000000..969a4b08bf
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_functions.scss
@@ -0,0 +1,302 @@
+// Bootstrap functions
+//
+// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
+
+// Ascending
+// Used to evaluate Sass maps like our grid breakpoints.
+@mixin _assert-ascending($map, $map-name) {
+ $prev-key: null;
+ $prev-num: null;
+ @each $key, $num in $map {
+ @if $prev-num == null or unit($num) == "%" or unit($prev-num) == "%" {
+ // Do nothing
+ } @else if not comparable($prev-num, $num) {
+ @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
+ } @else if $prev-num >= $num {
+ @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
+ }
+ $prev-key: $key;
+ $prev-num: $num;
+ }
+}
+
+// Starts at zero
+// Used to ensure the min-width of the lowest breakpoint starts at 0.
+@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
+ @if length($map) > 0 {
+ $values: map-values($map);
+ $first-value: nth($values, 1);
+ @if $first-value != 0 {
+ @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
+ }
+ }
+}
+
+// Colors
+@function to-rgb($value) {
+ @return red($value), green($value), blue($value);
+}
+
+// stylelint-disable scss/dollar-variable-pattern
+@function rgba-css-var($identifier, $target) {
+ @if $identifier == "body" and $target == "bg" {
+ @return rgba(var(--#{$prefix}#{$identifier}-bg-rgb), var(--#{$prefix}#{$target}-opacity));
+ } @if $identifier == "body" and $target == "text" {
+ @return rgba(var(--#{$prefix}#{$identifier}-color-rgb), var(--#{$prefix}#{$target}-opacity));
+ } @else {
+ @return rgba(var(--#{$prefix}#{$identifier}-rgb), var(--#{$prefix}#{$target}-opacity));
+ }
+}
+
+@function map-loop($map, $func, $args...) {
+ $_map: ();
+
+ @each $key, $value in $map {
+ // allow to pass the $key and $value of the map as an function argument
+ $_args: ();
+ @each $arg in $args {
+ $_args: append($_args, if($arg == "$key", $key, if($arg == "$value", $value, $arg)));
+ }
+
+ $_map: map-merge($_map, ($key: call(get-function($func), $_args...)));
+ }
+
+ @return $_map;
+}
+// stylelint-enable scss/dollar-variable-pattern
+
+@function varify($list) {
+ $result: null;
+ @each $entry in $list {
+ $result: append($result, var(--#{$prefix}#{$entry}), space);
+ }
+ @return $result;
+}
+
+// Internal Bootstrap function to turn maps into its negative variant.
+// It prefixes the keys with `n` and makes the value negative.
+@function negativify-map($map) {
+ $result: ();
+ @each $key, $value in $map {
+ @if $key != 0 {
+ $result: map-merge($result, ("n" + $key: (-$value)));
+ }
+ }
+ @return $result;
+}
+
+// Get multiple keys from a sass map
+@function map-get-multiple($map, $values) {
+ $result: ();
+ @each $key, $value in $map {
+ @if (index($values, $key) != null) {
+ $result: map-merge($result, ($key: $value));
+ }
+ }
+ @return $result;
+}
+
+// Merge multiple maps
+@function map-merge-multiple($maps...) {
+ $merged-maps: ();
+
+ @each $map in $maps {
+ $merged-maps: map-merge($merged-maps, $map);
+ }
+ @return $merged-maps;
+}
+
+// Replace `$search` with `$replace` in `$string`
+// Used on our SVG icon backgrounds for custom forms.
+//
+// @author Kitty Giraudel
+// @param {String} $string - Initial string
+// @param {String} $search - Substring to replace
+// @param {String} $replace ('') - New value
+// @return {String} - Updated string
+@function str-replace($string, $search, $replace: "") {
+ $index: str-index($string, $search);
+
+ @if $index {
+ @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
+ }
+
+ @return $string;
+}
+
+// See https://codepen.io/kevinweber/pen/dXWoRw
+//
+// Requires the use of quotes around data URIs.
+
+@function escape-svg($string) {
+ @if str-index($string, "data:image/svg+xml") {
+ @each $char, $encoded in $escaped-characters {
+ // Do not escape the url brackets
+ @if str-index($string, "url(") == 1 {
+ $string: url("#{str-replace(str-slice($string, 6, -3), $char, $encoded)}");
+ } @else {
+ $string: str-replace($string, $char, $encoded);
+ }
+ }
+ }
+
+ @return $string;
+}
+
+// Color contrast
+// See https://github.com/twbs/bootstrap/pull/30168
+
+// A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)
+// stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern
+$_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1;
+
+@function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) {
+ $foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black;
+ $max-ratio: 0;
+ $max-ratio-color: null;
+
+ @each $color in $foregrounds {
+ $contrast-ratio: contrast-ratio($background, $color);
+ @if $contrast-ratio > $min-contrast-ratio {
+ @return $color;
+ } @else if $contrast-ratio > $max-ratio {
+ $max-ratio: $contrast-ratio;
+ $max-ratio-color: $color;
+ }
+ }
+
+ @warn "Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}...";
+
+ @return $max-ratio-color;
+}
+
+@function contrast-ratio($background, $foreground: $color-contrast-light) {
+ $l1: luminance($background);
+ $l2: luminance(opaque($background, $foreground));
+
+ @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
+}
+
+// Return WCAG2.1 relative luminance
+// See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
+// See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
+@function luminance($color) {
+ $rgb: (
+ "r": red($color),
+ "g": green($color),
+ "b": blue($color)
+ );
+
+ @each $name, $value in $rgb {
+ $value: if(divide($value, 255) < .03928, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));
+ $rgb: map-merge($rgb, ($name: $value));
+ }
+
+ @return (map-get($rgb, "r") * .2126) + (map-get($rgb, "g") * .7152) + (map-get($rgb, "b") * .0722);
+}
+
+// Return opaque color
+// opaque(#fff, rgba(0, 0, 0, .5)) => #808080
+@function opaque($background, $foreground) {
+ @return mix(rgba($foreground, 1), $background, opacity($foreground) * 100);
+}
+
+// scss-docs-start color-functions
+// Tint a color: mix a color with white
+@function tint-color($color, $weight) {
+ @return mix(white, $color, $weight);
+}
+
+// Shade a color: mix a color with black
+@function shade-color($color, $weight) {
+ @return mix(black, $color, $weight);
+}
+
+// Shade the color if the weight is positive, else tint it
+@function shift-color($color, $weight) {
+ @return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));
+}
+// scss-docs-end color-functions
+
+// Return valid calc
+@function add($value1, $value2, $return-calc: true) {
+ @if $value1 == null {
+ @return $value2;
+ }
+
+ @if $value2 == null {
+ @return $value1;
+ }
+
+ @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
+ @return $value1 + $value2;
+ }
+
+ @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2);
+}
+
+@function subtract($value1, $value2, $return-calc: true) {
+ @if $value1 == null and $value2 == null {
+ @return null;
+ }
+
+ @if $value1 == null {
+ @return -$value2;
+ }
+
+ @if $value2 == null {
+ @return $value1;
+ }
+
+ @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
+ @return $value1 - $value2;
+ }
+
+ @if type-of($value2) != number {
+ $value2: unquote("(") + $value2 + unquote(")");
+ }
+
+ @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
+}
+
+@function divide($dividend, $divisor, $precision: 10) {
+ $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
+ $dividend: abs($dividend);
+ $divisor: abs($divisor);
+ @if $dividend == 0 {
+ @return 0;
+ }
+ @if $divisor == 0 {
+ @error "Cannot divide by 0";
+ }
+ $remainder: $dividend;
+ $result: 0;
+ $factor: 10;
+ @while ($remainder > 0 and $precision >= 0) {
+ $quotient: 0;
+ @while ($remainder >= $divisor) {
+ $remainder: $remainder - $divisor;
+ $quotient: $quotient + 1;
+ }
+ $result: $result * 10 + $quotient;
+ $factor: $factor * .1;
+ $remainder: $remainder * 10;
+ $precision: $precision - 1;
+ @if ($precision < 0 and $remainder >= $divisor * 5) {
+ $result: $result + 1;
+ }
+ }
+ $result: $result * $factor * $sign;
+ $dividend-unit: unit($dividend);
+ $divisor-unit: unit($divisor);
+ $unit-map: (
+ "px": 1px,
+ "rem": 1rem,
+ "em": 1em,
+ "%": 1%
+ );
+ @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
+ $result: $result * map-get($unit-map, $dividend-unit);
+ }
+ @return $result;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_grid.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_grid.scss
new file mode 100644
index 0000000000..0e0ba210ab
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_grid.scss
@@ -0,0 +1,33 @@
+// Row
+//
+// Rows contain your columns.
+
+@if $enable-grid-classes {
+ .row {
+ @include make-row();
+
+ > * {
+ @include make-col-ready();
+ }
+ }
+}
+
+@if $enable-cssgrid {
+ .grid {
+ display: grid;
+ grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);
+ grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);
+ gap: var(--#{$prefix}gap, #{$grid-gutter-width});
+
+ @include make-cssgrid();
+ }
+}
+
+
+// Columns
+//
+// Common styles for small and large grid columns
+
+@if $enable-grid-classes {
+ @include make-grid-columns();
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_helpers.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_helpers.scss
new file mode 100644
index 0000000000..644b693fbc
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_helpers.scss
@@ -0,0 +1,10 @@
+@import "helpers/clearfix";
+@import "helpers/color-bg";
+@import "helpers/colored-links";
+@import "helpers/ratio";
+@import "helpers/position";
+@import "helpers/stacks";
+@import "helpers/visually-hidden";
+@import "helpers/stretched-link";
+@import "helpers/text-truncation";
+@import "helpers/vr";
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_images.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_images.scss
new file mode 100644
index 0000000000..3d6a1014c4
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_images.scss
@@ -0,0 +1,42 @@
+// Responsive images (ensure images don't scale beyond their parents)
+//
+// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.
+// We previously tried the "images are responsive by default" approach in Bootstrap v2,
+// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
+// which weren't expecting the images within themselves to be involuntarily resized.
+// See also https://github.com/twbs/bootstrap/issues/18178
+.img-fluid {
+ @include img-fluid();
+}
+
+
+// Image thumbnails
+.img-thumbnail {
+ padding: $thumbnail-padding;
+ background-color: $thumbnail-bg;
+ border: $thumbnail-border-width solid $thumbnail-border-color;
+ @include border-radius($thumbnail-border-radius);
+ @include box-shadow($thumbnail-box-shadow);
+
+ // Keep them at most 100% wide
+ @include img-fluid();
+}
+
+//
+// Figures
+//
+
+.figure {
+ // Ensures the caption's text aligns with the image.
+ display: inline-block;
+}
+
+.figure-img {
+ margin-bottom: $spacer * .5;
+ line-height: 1;
+}
+
+.figure-caption {
+ @include font-size($figure-caption-font-size);
+ color: $figure-caption-color;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_list-group.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_list-group.scss
new file mode 100644
index 0000000000..c0ec16468d
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_list-group.scss
@@ -0,0 +1,192 @@
+// Base class
+//
+// Easily usable on <ul>, <ol>, or <div>.
+
+.list-group {
+ // scss-docs-start list-group-css-vars
+ --#{$prefix}list-group-color: #{$list-group-color};
+ --#{$prefix}list-group-bg: #{$list-group-bg};
+ --#{$prefix}list-group-border-color: #{$list-group-border-color};
+ --#{$prefix}list-group-border-width: #{$list-group-border-width};
+ --#{$prefix}list-group-border-radius: #{$list-group-border-radius};
+ --#{$prefix}list-group-item-padding-x: #{$list-group-item-padding-x};
+ --#{$prefix}list-group-item-padding-y: #{$list-group-item-padding-y};
+ --#{$prefix}list-group-action-color: #{$list-group-action-color};
+ --#{$prefix}list-group-action-hover-color: #{$list-group-action-hover-color};
+ --#{$prefix}list-group-action-hover-bg: #{$list-group-hover-bg};
+ --#{$prefix}list-group-action-active-color: #{$list-group-action-active-color};
+ --#{$prefix}list-group-action-active-bg: #{$list-group-action-active-bg};
+ --#{$prefix}list-group-disabled-color: #{$list-group-disabled-color};
+ --#{$prefix}list-group-disabled-bg: #{$list-group-disabled-bg};
+ --#{$prefix}list-group-active-color: #{$list-group-active-color};
+ --#{$prefix}list-group-active-bg: #{$list-group-active-bg};
+ --#{$prefix}list-group-active-border-color: #{$list-group-active-border-color};
+ // scss-docs-end list-group-css-vars
+
+ display: flex;
+ flex-direction: column;
+
+ // No need to set list-style: none; since .list-group-item is block level
+ padding-left: 0; // reset padding because ul and ol
+ margin-bottom: 0;
+ @include border-radius(var(--#{$prefix}list-group-border-radius));
+}
+
+.list-group-numbered {
+ list-style-type: none;
+ counter-reset: section;
+
+ > .list-group-item::before {
+ // Increments only this instance of the section counter
+ content: counters(section, ".") ". ";
+ counter-increment: section;
+ }
+}
+
+// Interactive list items
+//
+// Use anchor or button elements instead of `li`s or `div`s to create interactive
+// list items. Includes an extra `.active` modifier class for selected items.
+
+.list-group-item-action {
+ width: 100%; // For `<button>`s (anchors become 100% by default though)
+ color: var(--#{$prefix}list-group-action-color);
+ text-align: inherit; // For `<button>`s (anchors inherit)
+
+ // Hover state
+ &:hover,
+ &:focus {
+ z-index: 1; // Place hover/focus items above their siblings for proper border styling
+ color: var(--#{$prefix}list-group-action-hover-color);
+ text-decoration: none;
+ background-color: var(--#{$prefix}list-group-action-hover-bg);
+ }
+
+ &:active {
+ color: var(--#{$prefix}list-group-action-active-color);
+ background-color: var(--#{$prefix}list-group-action-active-bg);
+ }
+}
+
+// Individual list items
+//
+// Use on `li`s or `div`s within the `.list-group` parent.
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: var(--#{$prefix}list-group-item-padding-y) var(--#{$prefix}list-group-item-padding-x);
+ color: var(--#{$prefix}list-group-color);
+ text-decoration: if($link-decoration == none, null, none);
+ background-color: var(--#{$prefix}list-group-bg);
+ border: var(--#{$prefix}list-group-border-width) solid var(--#{$prefix}list-group-border-color);
+
+ &:first-child {
+ @include border-top-radius(inherit);
+ }
+
+ &:last-child {
+ @include border-bottom-radius(inherit);
+ }
+
+ &.disabled,
+ &:disabled {
+ color: var(--#{$prefix}list-group-disabled-color);
+ pointer-events: none;
+ background-color: var(--#{$prefix}list-group-disabled-bg);
+ }
+
+ // Include both here for `<a>`s and `<button>`s
+ &.active {
+ z-index: 2; // Place active items above their siblings for proper border styling
+ color: var(--#{$prefix}list-group-active-color);
+ background-color: var(--#{$prefix}list-group-active-bg);
+ border-color: var(--#{$prefix}list-group-active-border-color);
+ }
+
+ // stylelint-disable-next-line scss/selector-no-redundant-nesting-selector
+ & + .list-group-item {
+ border-top-width: 0;
+
+ &.active {
+ margin-top: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list
+ border-top-width: var(--#{$prefix}list-group-border-width);
+ }
+ }
+}
+
+// Horizontal
+//
+// Change the layout of list group items from vertical (default) to horizontal.
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .list-group-horizontal#{$infix} {
+ flex-direction: row;
+
+ > .list-group-item {
+ &:first-child:not(:last-child) {
+ @include border-bottom-start-radius(var(--#{$prefix}list-group-border-radius));
+ @include border-top-end-radius(0);
+ }
+
+ &:last-child:not(:first-child) {
+ @include border-top-end-radius(var(--#{$prefix}list-group-border-radius));
+ @include border-bottom-start-radius(0);
+ }
+
+ &.active {
+ margin-top: 0;
+ }
+
+ + .list-group-item {
+ border-top-width: var(--#{$prefix}list-group-border-width);
+ border-left-width: 0;
+
+ &.active {
+ margin-left: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list
+ border-left-width: var(--#{$prefix}list-group-border-width);
+ }
+ }
+ }
+ }
+ }
+}
+
+
+// Flush list items
+//
+// Remove borders and border-radius to keep list group items edge-to-edge. Most
+// useful within other components (e.g., cards).
+
+.list-group-flush {
+ @include border-radius(0);
+
+ > .list-group-item {
+ border-width: 0 0 var(--#{$prefix}list-group-border-width);
+
+ &:last-child {
+ border-bottom-width: 0;
+ }
+ }
+}
+
+
+// scss-docs-start list-group-modifiers
+// List group contextual variants
+//
+// Add modifier classes to change text and background color on individual items.
+// Organizationally, this must come after the `:hover` states.
+
+@each $state, $value in $theme-colors {
+ $list-group-variant-bg: shift-color($value, $list-group-item-bg-scale);
+ $list-group-variant-color: shift-color($value, $list-group-item-color-scale);
+ @if (contrast-ratio($list-group-variant-bg, $list-group-variant-color) < $min-contrast-ratio) {
+ $list-group-variant-color: mix($value, color-contrast($list-group-variant-bg), abs($list-group-item-color-scale));
+ }
+
+ @include list-group-item-variant($state, $list-group-variant-bg, $list-group-variant-color);
+}
+// scss-docs-end list-group-modifiers
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_maps.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_maps.scss
new file mode 100644
index 0000000000..2770a67615
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_maps.scss
@@ -0,0 +1,54 @@
+// Re-assigned maps
+//
+// Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.
+
+// scss-docs-start theme-colors-rgb
+$theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default;
+// scss-docs-end theme-colors-rgb
+
+// Utilities maps
+//
+// Extends the default `$theme-colors` maps to help create our utilities.
+
+// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.
+// scss-docs-start utilities-colors
+$utilities-colors: $theme-colors-rgb !default;
+// scss-docs-end utilities-colors
+
+// scss-docs-start utilities-text-colors
+$utilities-text: map-merge(
+ $utilities-colors,
+ (
+ "black": to-rgb($black),
+ "white": to-rgb($white),
+ "body": to-rgb($body-color)
+ )
+) !default;
+$utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default;
+// scss-docs-end utilities-text-colors
+
+// scss-docs-start utilities-bg-colors
+$utilities-bg: map-merge(
+ $utilities-colors,
+ (
+ "black": to-rgb($black),
+ "white": to-rgb($white),
+ "body": to-rgb($body-bg)
+ )
+) !default;
+$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg") !default;
+// scss-docs-end utilities-bg-colors
+
+// scss-docs-start utilities-border-colors
+$utilities-border: map-merge(
+ $utilities-colors,
+ (
+ "white": to-rgb($white)
+ )
+) !default;
+$utilities-border-colors: map-loop($utilities-border, rgba-css-var, "$key", "border") !default;
+// scss-docs-end utilities-border-colors
+
+$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
+
+$gutters: $spacers !default;
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_mixins.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_mixins.scss
new file mode 100644
index 0000000000..af1f74f72e
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_mixins.scss
@@ -0,0 +1,43 @@
+// Toggles
+//
+// Used in conjunction with global variables to enable certain theme features.
+
+// Vendor
+@import "vendor/rfs";
+
+// Deprecate
+@import "mixins/deprecate";
+
+// Helpers
+@import "mixins/breakpoints";
+@import "mixins/color-scheme";
+@import "mixins/image";
+@import "mixins/resize";
+@import "mixins/visually-hidden";
+@import "mixins/reset-text";
+@import "mixins/text-truncate";
+
+// Utilities
+@import "mixins/utilities";
+
+// Components
+@import "mixins/alert";
+@import "mixins/backdrop";
+@import "mixins/buttons";
+@import "mixins/caret";
+@import "mixins/pagination";
+@import "mixins/lists";
+@import "mixins/list-group";
+@import "mixins/forms";
+@import "mixins/table-variants";
+
+// Skins
+@import "mixins/border-radius";
+@import "mixins/box-shadow";
+@import "mixins/gradients";
+@import "mixins/transition";
+
+// Layout
+@import "mixins/clearfix";
+@import "mixins/container";
+@import "mixins/grid";
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_modal.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_modal.scss
new file mode 100644
index 0000000000..5f1429fe4b
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_modal.scss
@@ -0,0 +1,237 @@
+// stylelint-disable function-disallowed-list
+
+// .modal-open - body class for killing the scroll
+// .modal - container to scroll within
+// .modal-dialog - positioning shell for the actual modal
+// .modal-content - actual modal w/ bg and corners and stuff
+
+
+// Container that the modal scrolls within
+.modal {
+ // scss-docs-start modal-css-vars
+ --#{$prefix}modal-zindex: #{$zindex-modal};
+ --#{$prefix}modal-width: #{$modal-md};
+ --#{$prefix}modal-padding: #{$modal-inner-padding};
+ --#{$prefix}modal-margin: #{$modal-dialog-margin};
+ --#{$prefix}modal-color: #{$modal-content-color};
+ --#{$prefix}modal-bg: #{$modal-content-bg};
+ --#{$prefix}modal-border-color: #{$modal-content-border-color};
+ --#{$prefix}modal-border-width: #{$modal-content-border-width};
+ --#{$prefix}modal-border-radius: #{$modal-content-border-radius};
+ --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-xs};
+ --#{$prefix}modal-inner-border-radius: #{$modal-content-inner-border-radius};
+ --#{$prefix}modal-header-padding-x: #{$modal-header-padding-x};
+ --#{$prefix}modal-header-padding-y: #{$modal-header-padding-y};
+ --#{$prefix}modal-header-padding: #{$modal-header-padding}; // Todo in v6: Split this padding into x and y
+ --#{$prefix}modal-header-border-color: #{$modal-header-border-color};
+ --#{$prefix}modal-header-border-width: #{$modal-header-border-width};
+ --#{$prefix}modal-title-line-height: #{$modal-title-line-height};
+ --#{$prefix}modal-footer-gap: #{$modal-footer-margin-between};
+ --#{$prefix}modal-footer-bg: #{$modal-footer-bg};
+ --#{$prefix}modal-footer-border-color: #{$modal-footer-border-color};
+ --#{$prefix}modal-footer-border-width: #{$modal-footer-border-width};
+ // scss-docs-end modal-css-vars
+
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: var(--#{$prefix}modal-zindex);
+ display: none;
+ width: 100%;
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ // Prevent Chrome on Windows from adding a focus outline. For details, see
+ // https://github.com/twbs/bootstrap/pull/10951.
+ outline: 0;
+ // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a
+ // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342
+ // See also https://github.com/twbs/bootstrap/issues/17695
+}
+
+// Shell div to position the modal with bottom padding
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: var(--#{$prefix}modal-margin);
+ // allow clicks to pass through for custom click handling to close modal
+ pointer-events: none;
+
+ // When fading in the modal, animate it to slide down
+ .modal.fade & {
+ @include transition($modal-transition);
+ transform: $modal-fade-transform;
+ }
+ .modal.show & {
+ transform: $modal-show-transform;
+ }
+
+ // When trying to close, animate focus to scale
+ .modal.modal-static & {
+ transform: $modal-scale-transform;
+ }
+}
+
+.modal-dialog-scrollable {
+ height: calc(100% - var(--#{$prefix}modal-margin) * 2);
+
+ .modal-content {
+ max-height: 100%;
+ overflow: hidden;
+ }
+
+ .modal-body {
+ overflow-y: auto;
+ }
+}
+
+.modal-dialog-centered {
+ display: flex;
+ align-items: center;
+ min-height: calc(100% - var(--#{$prefix}modal-margin) * 2);
+}
+
+// Actual modal
+.modal-content {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
+ // counteract the pointer-events: none; in the .modal-dialog
+ color: var(--#{$prefix}modal-color);
+ pointer-events: auto;
+ background-color: var(--#{$prefix}modal-bg);
+ background-clip: padding-box;
+ border: var(--#{$prefix}modal-border-width) solid var(--#{$prefix}modal-border-color);
+ @include border-radius(var(--#{$prefix}modal-border-radius));
+ @include box-shadow(var(--#{$prefix}modal-box-shadow));
+ // Remove focus outline from opened modal
+ outline: 0;
+}
+
+// Modal background
+.modal-backdrop {
+ // scss-docs-start modal-backdrop-css-vars
+ --#{$prefix}backdrop-zindex: #{$zindex-modal-backdrop};
+ --#{$prefix}backdrop-bg: #{$modal-backdrop-bg};
+ --#{$prefix}backdrop-opacity: #{$modal-backdrop-opacity};
+ // scss-docs-end modal-backdrop-css-vars
+
+ @include overlay-backdrop(var(--#{$prefix}backdrop-zindex), var(--#{$prefix}backdrop-bg), var(--#{$prefix}backdrop-opacity));
+}
+
+// Modal header
+// Top section of the modal w/ title and dismiss
+.modal-header {
+ display: flex;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
+ padding: var(--#{$prefix}modal-header-padding);
+ border-bottom: var(--#{$prefix}modal-header-border-width) solid var(--#{$prefix}modal-header-border-color);
+ @include border-top-radius(var(--#{$prefix}modal-inner-border-radius));
+
+ .btn-close {
+ padding: calc(var(--#{$prefix}modal-header-padding-y) * .5) calc(var(--#{$prefix}modal-header-padding-x) * .5);
+ margin: calc(-.5 * var(--#{$prefix}modal-header-padding-y)) calc(-.5 * var(--#{$prefix}modal-header-padding-x)) calc(-.5 * var(--#{$prefix}modal-header-padding-y)) auto;
+ }
+}
+
+// Title text within header
+.modal-title {
+ margin-bottom: 0;
+ line-height: var(--#{$prefix}modal-title-line-height);
+}
+
+// Modal body
+// Where all modal content resides (sibling of .modal-header and .modal-footer)
+.modal-body {
+ position: relative;
+ // Enable `flex-grow: 1` so that the body take up as much space as possible
+ // when there should be a fixed height on `.modal-dialog`.
+ flex: 1 1 auto;
+ padding: var(--#{$prefix}modal-padding);
+}
+
+// Footer (for actions)
+.modal-footer {
+ display: flex;
+ flex-shrink: 0;
+ flex-wrap: wrap;
+ align-items: center; // vertically center
+ justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
+ padding: calc(var(--#{$prefix}modal-padding) - var(--#{$prefix}modal-footer-gap) * .5);
+ background-color: var(--#{$prefix}modal-footer-bg);
+ border-top: var(--#{$prefix}modal-footer-border-width) solid var(--#{$prefix}modal-footer-border-color);
+ @include border-bottom-radius(var(--#{$prefix}modal-inner-border-radius));
+
+ // Place margin between footer elements
+ // This solution is far from ideal because of the universal selector usage,
+ // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
+ > * {
+ margin: calc(var(--#{$prefix}modal-footer-gap) * .5); // Todo in v6: replace with gap on parent class
+ }
+}
+
+// Scale up the modal
+@include media-breakpoint-up(sm) {
+ .modal {
+ --#{$prefix}modal-margin: #{$modal-dialog-margin-y-sm-up};
+ --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-sm-up};
+ }
+
+ // Automatically set modal's width for larger viewports
+ .modal-dialog {
+ max-width: var(--#{$prefix}modal-width);
+ margin-right: auto;
+ margin-left: auto;
+ }
+
+ .modal-sm {
+ --#{$prefix}modal-width: #{$modal-sm};
+ }
+}
+
+@include media-breakpoint-up(lg) {
+ .modal-lg,
+ .modal-xl {
+ --#{$prefix}modal-width: #{$modal-lg};
+ }
+}
+
+@include media-breakpoint-up(xl) {
+ .modal-xl {
+ --#{$prefix}modal-width: #{$modal-xl};
+ }
+}
+
+// scss-docs-start modal-fullscreen-loop
+@each $breakpoint in map-keys($grid-breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+ $postfix: if($infix != "", $infix + "-down", "");
+
+ @include media-breakpoint-down($breakpoint) {
+ .modal-fullscreen#{$postfix} {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+
+ .modal-content {
+ height: 100%;
+ border: 0;
+ @include border-radius(0);
+ }
+
+ .modal-header,
+ .modal-footer {
+ @include border-radius(0);
+ }
+
+ .modal-body {
+ overflow-y: auto;
+ }
+ }
+ }
+}
+// scss-docs-end modal-fullscreen-loop
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_nav.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_nav.scss
new file mode 100644
index 0000000000..9efc03bc8f
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_nav.scss
@@ -0,0 +1,172 @@
+// Base class
+//
+// Kickstart any navigation component with a set of style resets. Works with
+// `<nav>`s, `<ul>`s or `<ol>`s.
+
+.nav {
+ // scss-docs-start nav-css-vars
+ --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x};
+ --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
+ @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
+ --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
+ --#{$prefix}nav-link-color: #{$nav-link-color};
+ --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
+ --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
+ // scss-docs-end nav-css-vars
+
+ display: flex;
+ flex-wrap: wrap;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+
+.nav-link {
+ display: block;
+ padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
+ @include font-size(var(--#{$prefix}nav-link-font-size));
+ font-weight: var(--#{$prefix}nav-link-font-weight);
+ color: var(--#{$prefix}nav-link-color);
+ text-decoration: if($link-decoration == none, null, none);
+ @include transition($nav-link-transition);
+
+ &:hover,
+ &:focus {
+ color: var(--#{$prefix}nav-link-hover-color);
+ text-decoration: if($link-hover-decoration == underline, none, null);
+ }
+
+ // Disabled state lightens text
+ &.disabled {
+ color: var(--#{$prefix}nav-link-disabled-color);
+ pointer-events: none;
+ cursor: default;
+ }
+}
+
+//
+// Tabs
+//
+
+.nav-tabs {
+ // scss-docs-start nav-tabs-css-vars
+ --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
+ --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
+ --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
+ --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
+ --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
+ --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
+ --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
+ // scss-docs-end nav-tabs-css-vars
+
+ border-bottom: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);
+
+ .nav-link {
+ margin-bottom: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
+ background: none;
+ border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
+ @include border-top-radius(var(--#{$prefix}nav-tabs-border-radius));
+
+ &:hover,
+ &:focus {
+ // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
+ isolation: isolate;
+ border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
+ }
+
+ &.disabled,
+ &:disabled {
+ color: var(--#{$prefix}nav-link-disabled-color);
+ background-color: transparent;
+ border-color: transparent;
+ }
+ }
+
+ .nav-link.active,
+ .nav-item.show .nav-link {
+ color: var(--#{$prefix}nav-tabs-link-active-color);
+ background-color: var(--#{$prefix}nav-tabs-link-active-bg);
+ border-color: var(--#{$prefix}nav-tabs-link-active-border-color);
+ }
+
+ .dropdown-menu {
+ // Make dropdown border overlap tab border
+ margin-top: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
+ // Remove the top rounded corners here since there is a hard edge above the menu
+ @include border-top-radius(0);
+ }
+}
+
+
+//
+// Pills
+//
+
+.nav-pills {
+ // scss-docs-start nav-pills-css-vars
+ --#{$prefix}nav-pills-border-radius: #{$nav-pills-border-radius};
+ --#{$prefix}nav-pills-link-active-color: #{$nav-pills-link-active-color};
+ --#{$prefix}nav-pills-link-active-bg: #{$nav-pills-link-active-bg};
+ // scss-docs-end nav-pills-css-vars
+
+ .nav-link {
+ background: none;
+ border: 0;
+ @include border-radius(var(--#{$prefix}nav-pills-border-radius));
+
+ &:disabled {
+ color: var(--#{$prefix}nav-link-disabled-color);
+ background-color: transparent;
+ border-color: transparent;
+ }
+ }
+
+ .nav-link.active,
+ .show > .nav-link {
+ color: var(--#{$prefix}nav-pills-link-active-color);
+ @include gradient-bg(var(--#{$prefix}nav-pills-link-active-bg));
+ }
+}
+
+
+//
+// Justified variants
+//
+
+.nav-fill {
+ > .nav-link,
+ .nav-item {
+ flex: 1 1 auto;
+ text-align: center;
+ }
+}
+
+.nav-justified {
+ > .nav-link,
+ .nav-item {
+ flex-basis: 0;
+ flex-grow: 1;
+ text-align: center;
+ }
+}
+
+.nav-fill,
+.nav-justified {
+ .nav-item .nav-link {
+ width: 100%; // Make sure button will grow
+ }
+}
+
+
+// Tabbable tabs
+//
+// Hide tabbable panes to start, show them when `.active`
+
+.tab-content {
+ > .tab-pane {
+ display: none;
+ }
+ > .active {
+ display: block;
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_navbar.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_navbar.scss
new file mode 100644
index 0000000000..599b055ebc
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_navbar.scss
@@ -0,0 +1,278 @@
+// Navbar
+//
+// Provide a static navbar from which we expand to create full-width, fixed, and
+// other navbar variations.
+
+.navbar {
+ // scss-docs-start navbar-css-vars
+ --#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)};
+ --#{$prefix}navbar-padding-y: #{$navbar-padding-y};
+ --#{$prefix}navbar-color: #{$navbar-light-color};
+ --#{$prefix}navbar-hover-color: #{$navbar-light-hover-color};
+ --#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color};
+ --#{$prefix}navbar-active-color: #{$navbar-light-active-color};
+ --#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y};
+ --#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end};
+ --#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size};
+ --#{$prefix}navbar-brand-color: #{$navbar-light-brand-color};
+ --#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};
+ --#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};
+ --#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y};
+ --#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x};
+ --#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size};
+ --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};
+ --#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};
+ --#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius};
+ --#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width};
+ --#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition};
+ // scss-docs-end navbar-css-vars
+
+ position: relative;
+ display: flex;
+ flex-wrap: wrap; // allow us to do the line break for collapsing content
+ align-items: center;
+ justify-content: space-between; // space out brand from logo
+ padding: var(--#{$prefix}navbar-padding-y) var(--#{$prefix}navbar-padding-x);
+ @include gradient-bg();
+
+ // Because flex properties aren't inherited, we need to redeclare these first
+ // few properties so that content nested within behave properly.
+ // The `flex-wrap` property is inherited to simplify the expanded navbars
+ %container-flex-properties {
+ display: flex;
+ flex-wrap: inherit;
+ align-items: center;
+ justify-content: space-between;
+ }
+
+ > .container,
+ > .container-fluid {
+ @extend %container-flex-properties;
+ }
+
+ @each $breakpoint, $container-max-width in $container-max-widths {
+ > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {
+ @extend %container-flex-properties;
+ }
+ }
+}
+
+
+// Navbar brand
+//
+// Used for brand, project, or site names.
+
+.navbar-brand {
+ padding-top: var(--#{$prefix}navbar-brand-padding-y);
+ padding-bottom: var(--#{$prefix}navbar-brand-padding-y);
+ margin-right: var(--#{$prefix}navbar-brand-margin-end);
+ @include font-size(var(--#{$prefix}navbar-brand-font-size));
+ color: var(--#{$prefix}navbar-brand-color);
+ text-decoration: if($link-decoration == none, null, none);
+ white-space: nowrap;
+
+ &:hover,
+ &:focus {
+ color: var(--#{$prefix}navbar-brand-hover-color);
+ text-decoration: if($link-hover-decoration == underline, none, null);
+ }
+}
+
+
+// Navbar nav
+//
+// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
+
+.navbar-nav {
+ // scss-docs-start navbar-nav-css-vars
+ --#{$prefix}nav-link-padding-x: 0;
+ --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
+ @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
+ --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
+ --#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);
+ --#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);
+ --#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);
+ // scss-docs-end navbar-nav-css-vars
+
+ display: flex;
+ flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+
+ .show > .nav-link,
+ .nav-link.active {
+ color: var(--#{$prefix}navbar-active-color);
+ }
+
+ .dropdown-menu {
+ position: static;
+ }
+}
+
+
+// Navbar text
+//
+//
+
+.navbar-text {
+ padding-top: $nav-link-padding-y;
+ padding-bottom: $nav-link-padding-y;
+ color: var(--#{$prefix}navbar-color);
+
+ a,
+ a:hover,
+ a:focus {
+ color: var(--#{$prefix}navbar-active-color);
+ }
+}
+
+
+// Responsive navbar
+//
+// Custom styles for responsive collapsing and toggling of navbar contents.
+// Powered by the collapse Bootstrap JavaScript plugin.
+
+// When collapsed, prevent the toggleable navbar contents from appearing in
+// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
+// on the `.navbar` parent.
+.navbar-collapse {
+ flex-basis: 100%;
+ flex-grow: 1;
+ // For always expanded or extra full navbars, ensure content aligns itself
+ // properly vertically. Can be easily overridden with flex utilities.
+ align-items: center;
+}
+
+// Button for toggling the navbar when in its collapsed state
+.navbar-toggler {
+ padding: var(--#{$prefix}navbar-toggler-padding-y) var(--#{$prefix}navbar-toggler-padding-x);
+ @include font-size(var(--#{$prefix}navbar-toggler-font-size));
+ line-height: 1;
+ color: var(--#{$prefix}navbar-color);
+ background-color: transparent; // remove default button style
+ border: var(--#{$prefix}border-width) solid var(--#{$prefix}navbar-toggler-border-color); // remove default button style
+ @include border-radius(var(--#{$prefix}navbar-toggler-border-radius));
+ @include transition(var(--#{$prefix}navbar-toggler-transition));
+
+ &:hover {
+ text-decoration: none;
+ }
+
+ &:focus {
+ text-decoration: none;
+ outline: 0;
+ box-shadow: 0 0 0 var(--#{$prefix}navbar-toggler-focus-width);
+ }
+}
+
+// Keep as a separate element so folks can easily override it with another icon
+// or image file as needed.
+.navbar-toggler-icon {
+ display: inline-block;
+ width: 1.5em;
+ height: 1.5em;
+ vertical-align: middle;
+ background-image: var(--#{$prefix}navbar-toggler-icon-bg);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+}
+
+.navbar-nav-scroll {
+ max-height: var(--#{$prefix}scroll-height, 75vh);
+ overflow-y: auto;
+}
+
+// scss-docs-start navbar-expand-loop
+// Generate series of `.navbar-expand-*` responsive classes for configuring
+// where your navbar collapses.
+.navbar-expand {
+ @each $breakpoint in map-keys($grid-breakpoints) {
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
+ $infix: breakpoint-infix($next, $grid-breakpoints);
+
+ // stylelint-disable-next-line scss/selector-no-union-class-name
+ &#{$infix} {
+ @include media-breakpoint-up($next) {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+
+ .navbar-nav {
+ flex-direction: row;
+
+ .dropdown-menu {
+ position: absolute;
+ }
+
+ .nav-link {
+ padding-right: var(--#{$prefix}navbar-nav-link-padding-x);
+ padding-left: var(--#{$prefix}navbar-nav-link-padding-x);
+ }
+ }
+
+ .navbar-nav-scroll {
+ overflow: visible;
+ }
+
+ .navbar-collapse {
+ display: flex !important; // stylelint-disable-line declaration-no-important
+ flex-basis: auto;
+ }
+
+ .navbar-toggler {
+ display: none;
+ }
+
+ .offcanvas {
+ // stylelint-disable declaration-no-important
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ @include box-shadow(none);
+ @include transition(none);
+ // stylelint-enable declaration-no-important
+
+ .offcanvas-header {
+ display: none;
+ }
+
+ .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+ }
+ }
+ }
+ }
+}
+// scss-docs-end navbar-expand-loop
+
+// Navbar themes
+//
+// Styles for switching between navbars with light or dark background.
+
+.navbar-light {
+ @include deprecate("`.navbar-light`", "v5.2.0", "v6.0.0", true);
+}
+
+.navbar-dark {
+ // scss-docs-start navbar-dark-css-vars
+ --#{$prefix}navbar-color: #{$navbar-dark-color};
+ --#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};
+ --#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};
+ --#{$prefix}navbar-active-color: #{$navbar-dark-active-color};
+ --#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color};
+ --#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};
+ --#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};
+ --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
+ // scss-docs-end navbar-dark-css-vars
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_offcanvas.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_offcanvas.scss
new file mode 100644
index 0000000000..23fc357f2b
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_offcanvas.scss
@@ -0,0 +1,144 @@
+// stylelint-disable function-disallowed-list
+
+%offcanvas-css-vars {
+ // scss-docs-start offcanvas-css-vars
+ --#{$prefix}offcanvas-zindex: #{$zindex-offcanvas};
+ --#{$prefix}offcanvas-width: #{$offcanvas-horizontal-width};
+ --#{$prefix}offcanvas-height: #{$offcanvas-vertical-height};
+ --#{$prefix}offcanvas-padding-x: #{$offcanvas-padding-x};
+ --#{$prefix}offcanvas-padding-y: #{$offcanvas-padding-y};
+ --#{$prefix}offcanvas-color: #{$offcanvas-color};
+ --#{$prefix}offcanvas-bg: #{$offcanvas-bg-color};
+ --#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};
+ --#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};
+ --#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};
+ // scss-docs-end offcanvas-css-vars
+}
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
+ $infix: breakpoint-infix($next, $grid-breakpoints);
+
+ .offcanvas#{$infix} {
+ @extend %offcanvas-css-vars;
+ }
+}
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
+ $infix: breakpoint-infix($next, $grid-breakpoints);
+
+ .offcanvas#{$infix} {
+ @include media-breakpoint-down($next) {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--#{$prefix}offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--#{$prefix}offcanvas-color);
+ visibility: hidden;
+ background-color: var(--#{$prefix}offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ @include box-shadow(var(--#{$prefix}offcanvas-box-shadow));
+ @include transition(transform $offcanvas-transition-duration ease-in-out);
+
+ &.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--#{$prefix}offcanvas-width);
+ border-right: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+
+ &.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--#{$prefix}offcanvas-width);
+ border-left: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+ transform: translateX(100%);
+ }
+
+ &.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--#{$prefix}offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+
+ &.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--#{$prefix}offcanvas-height);
+ max-height: 100%;
+ border-top: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+ transform: translateY(100%);
+ }
+
+ &.showing,
+ &.show:not(.hiding) {
+ transform: none;
+ }
+
+ &.showing,
+ &.hiding,
+ &.show {
+ visibility: visible;
+ }
+ }
+
+ @if not ($infix == "") {
+ @include media-breakpoint-up($next) {
+ --#{$prefix}offcanvas-height: auto;
+ --#{$prefix}offcanvas-border-width: 0;
+ background-color: transparent !important; // stylelint-disable-line declaration-no-important
+
+ .offcanvas-header {
+ display: none;
+ }
+
+ .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ // Reset `background-color` in case `.bg-*` classes are used in offcanvas
+ background-color: transparent !important; // stylelint-disable-line declaration-no-important
+ }
+ }
+ }
+ }
+}
+
+.offcanvas-backdrop {
+ @include overlay-backdrop($zindex-offcanvas-backdrop, $offcanvas-backdrop-bg, $offcanvas-backdrop-opacity);
+}
+
+.offcanvas-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
+
+ .btn-close {
+ padding: calc(var(--#{$prefix}offcanvas-padding-y) * .5) calc(var(--#{$prefix}offcanvas-padding-x) * .5);
+ margin-top: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
+ margin-right: calc(-.5 * var(--#{$prefix}offcanvas-padding-x));
+ margin-bottom: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
+ }
+}
+
+.offcanvas-title {
+ margin-bottom: 0;
+ line-height: $offcanvas-title-line-height;
+}
+
+.offcanvas-body {
+ flex-grow: 1;
+ padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
+ overflow-y: auto;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_pagination.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_pagination.scss
new file mode 100644
index 0000000000..cf4db3c361
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_pagination.scss
@@ -0,0 +1,109 @@
+.pagination {
+ // scss-docs-start pagination-css-vars
+ --#{$prefix}pagination-padding-x: #{$pagination-padding-x};
+ --#{$prefix}pagination-padding-y: #{$pagination-padding-y};
+ @include rfs($pagination-font-size, --#{$prefix}pagination-font-size);
+ --#{$prefix}pagination-color: #{$pagination-color};
+ --#{$prefix}pagination-bg: #{$pagination-bg};
+ --#{$prefix}pagination-border-width: #{$pagination-border-width};
+ --#{$prefix}pagination-border-color: #{$pagination-border-color};
+ --#{$prefix}pagination-border-radius: #{$pagination-border-radius};
+ --#{$prefix}pagination-hover-color: #{$pagination-hover-color};
+ --#{$prefix}pagination-hover-bg: #{$pagination-hover-bg};
+ --#{$prefix}pagination-hover-border-color: #{$pagination-hover-border-color};
+ --#{$prefix}pagination-focus-color: #{$pagination-focus-color};
+ --#{$prefix}pagination-focus-bg: #{$pagination-focus-bg};
+ --#{$prefix}pagination-focus-box-shadow: #{$pagination-focus-box-shadow};
+ --#{$prefix}pagination-active-color: #{$pagination-active-color};
+ --#{$prefix}pagination-active-bg: #{$pagination-active-bg};
+ --#{$prefix}pagination-active-border-color: #{$pagination-active-border-color};
+ --#{$prefix}pagination-disabled-color: #{$pagination-disabled-color};
+ --#{$prefix}pagination-disabled-bg: #{$pagination-disabled-bg};
+ --#{$prefix}pagination-disabled-border-color: #{$pagination-disabled-border-color};
+ // scss-docs-end pagination-css-vars
+
+ display: flex;
+ @include list-unstyled();
+}
+
+.page-link {
+ position: relative;
+ display: block;
+ padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);
+ @include font-size(var(--#{$prefix}pagination-font-size));
+ color: var(--#{$prefix}pagination-color);
+ text-decoration: if($link-decoration == none, null, none);
+ background-color: var(--#{$prefix}pagination-bg);
+ border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);
+ @include transition($pagination-transition);
+
+ &:hover {
+ z-index: 2;
+ color: var(--#{$prefix}pagination-hover-color);
+ text-decoration: if($link-hover-decoration == underline, none, null);
+ background-color: var(--#{$prefix}pagination-hover-bg);
+ border-color: var(--#{$prefix}pagination-hover-border-color);
+ }
+
+ &:focus {
+ z-index: 3;
+ color: var(--#{$prefix}pagination-focus-color);
+ background-color: var(--#{$prefix}pagination-focus-bg);
+ outline: $pagination-focus-outline;
+ box-shadow: var(--#{$prefix}pagination-focus-box-shadow);
+ }
+
+ &.active,
+ .active > & {
+ z-index: 3;
+ color: var(--#{$prefix}pagination-active-color);
+ @include gradient-bg(var(--#{$prefix}pagination-active-bg));
+ border-color: var(--#{$prefix}pagination-active-border-color);
+ }
+
+ &.disabled,
+ .disabled > & {
+ color: var(--#{$prefix}pagination-disabled-color);
+ pointer-events: none;
+ background-color: var(--#{$prefix}pagination-disabled-bg);
+ border-color: var(--#{$prefix}pagination-disabled-border-color);
+ }
+}
+
+.page-item {
+ &:not(:first-child) .page-link {
+ margin-left: $pagination-margin-start;
+ }
+
+ @if $pagination-margin-start == ($pagination-border-width * -1) {
+ &:first-child {
+ .page-link {
+ @include border-start-radius(var(--#{$prefix}pagination-border-radius));
+ }
+ }
+
+ &:last-child {
+ .page-link {
+ @include border-end-radius(var(--#{$prefix}pagination-border-radius));
+ }
+ }
+ } @else {
+ // Add border-radius to all pageLinks in case they have left margin
+ .page-link {
+ @include border-radius(var(--#{$prefix}pagination-border-radius));
+ }
+ }
+}
+
+
+//
+// Sizing
+//
+
+.pagination-lg {
+ @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $pagination-border-radius-lg);
+}
+
+.pagination-sm {
+ @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $pagination-border-radius-sm);
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_placeholders.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_placeholders.scss
new file mode 100644
index 0000000000..6e32e1cdb9
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_placeholders.scss
@@ -0,0 +1,51 @@
+.placeholder {
+ display: inline-block;
+ min-height: 1em;
+ vertical-align: middle;
+ cursor: wait;
+ background-color: currentcolor;
+ opacity: $placeholder-opacity-max;
+
+ &.btn::before {
+ display: inline-block;
+ content: "";
+ }
+}
+
+// Sizing
+.placeholder-xs {
+ min-height: .6em;
+}
+
+.placeholder-sm {
+ min-height: .8em;
+}
+
+.placeholder-lg {
+ min-height: 1.2em;
+}
+
+// Animation
+.placeholder-glow {
+ .placeholder {
+ animation: placeholder-glow 2s ease-in-out infinite;
+ }
+}
+
+@keyframes placeholder-glow {
+ 50% {
+ opacity: $placeholder-opacity-min;
+ }
+}
+
+.placeholder-wave {
+ mask-image: linear-gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min)) 75%, $black 95%);
+ mask-size: 200% 100%;
+ animation: placeholder-wave 2s linear infinite;
+}
+
+@keyframes placeholder-wave {
+ 100% {
+ mask-position: -200% 0%;
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_popover.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_popover.scss
new file mode 100644
index 0000000000..7b69f62328
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_popover.scss
@@ -0,0 +1,196 @@
+.popover {
+ // scss-docs-start popover-css-vars
+ --#{$prefix}popover-zindex: #{$zindex-popover};
+ --#{$prefix}popover-max-width: #{$popover-max-width};
+ @include rfs($popover-font-size, --#{$prefix}popover-font-size);
+ --#{$prefix}popover-bg: #{$popover-bg};
+ --#{$prefix}popover-border-width: #{$popover-border-width};
+ --#{$prefix}popover-border-color: #{$popover-border-color};
+ --#{$prefix}popover-border-radius: #{$popover-border-radius};
+ --#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};
+ --#{$prefix}popover-box-shadow: #{$popover-box-shadow};
+ --#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};
+ --#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};
+ @include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);
+ --#{$prefix}popover-header-color: #{$popover-header-color};
+ --#{$prefix}popover-header-bg: #{$popover-header-bg};
+ --#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};
+ --#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};
+ --#{$prefix}popover-body-color: #{$popover-body-color};
+ --#{$prefix}popover-arrow-width: #{$popover-arrow-width};
+ --#{$prefix}popover-arrow-height: #{$popover-arrow-height};
+ --#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);
+ // scss-docs-end popover-css-vars
+
+ z-index: var(--#{$prefix}popover-zindex);
+ display: block;
+ max-width: var(--#{$prefix}popover-max-width);
+ // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
+ // So reset our font and text properties to avoid inheriting weird values.
+ @include reset-text();
+ @include font-size(var(--#{$prefix}popover-font-size));
+ // Allow breaking very long words so they don't overflow the popover's bounds
+ word-wrap: break-word;
+ background-color: var(--#{$prefix}popover-bg);
+ background-clip: padding-box;
+ border: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);
+ @include border-radius(var(--#{$prefix}popover-border-radius));
+ @include box-shadow(var(--#{$prefix}popover-box-shadow));
+
+ .popover-arrow {
+ display: block;
+ width: var(--#{$prefix}popover-arrow-width);
+ height: var(--#{$prefix}popover-arrow-height);
+
+ &::before,
+ &::after {
+ position: absolute;
+ display: block;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+ border-width: 0;
+ }
+ }
+}
+
+.bs-popover-top {
+ > .popover-arrow {
+ bottom: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
+
+ &::before,
+ &::after {
+ border-width: var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+ }
+
+ &::before {
+ bottom: 0;
+ border-top-color: var(--#{$prefix}popover-arrow-border);
+ }
+
+ &::after {
+ bottom: var(--#{$prefix}popover-border-width);
+ border-top-color: var(--#{$prefix}popover-bg);
+ }
+ }
+}
+
+/* rtl:begin:ignore */
+.bs-popover-end {
+ > .popover-arrow {
+ left: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
+ width: var(--#{$prefix}popover-arrow-height);
+ height: var(--#{$prefix}popover-arrow-width);
+
+ &::before,
+ &::after {
+ border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+ }
+
+ &::before {
+ left: 0;
+ border-right-color: var(--#{$prefix}popover-arrow-border);
+ }
+
+ &::after {
+ left: var(--#{$prefix}popover-border-width);
+ border-right-color: var(--#{$prefix}popover-bg);
+ }
+ }
+}
+
+/* rtl:end:ignore */
+
+.bs-popover-bottom {
+ > .popover-arrow {
+ top: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
+
+ &::before,
+ &::after {
+ border-width: 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list
+ }
+
+ &::before {
+ top: 0;
+ border-bottom-color: var(--#{$prefix}popover-arrow-border);
+ }
+
+ &::after {
+ top: var(--#{$prefix}popover-border-width);
+ border-bottom-color: var(--#{$prefix}popover-bg);
+ }
+ }
+
+ // This will remove the popover-header's border just below the arrow
+ .popover-header::before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ display: block;
+ width: var(--#{$prefix}popover-arrow-width);
+ margin-left: calc(-.5 * var(--#{$prefix}popover-arrow-width)); // stylelint-disable-line function-disallowed-list
+ content: "";
+ border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-header-bg);
+ }
+}
+
+/* rtl:begin:ignore */
+.bs-popover-start {
+ > .popover-arrow {
+ right: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
+ width: var(--#{$prefix}popover-arrow-height);
+ height: var(--#{$prefix}popover-arrow-width);
+
+ &::before,
+ &::after {
+ border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list
+ }
+
+ &::before {
+ right: 0;
+ border-left-color: var(--#{$prefix}popover-arrow-border);
+ }
+
+ &::after {
+ right: var(--#{$prefix}popover-border-width);
+ border-left-color: var(--#{$prefix}popover-bg);
+ }
+ }
+}
+
+/* rtl:end:ignore */
+
+.bs-popover-auto {
+ &[data-popper-placement^="top"] {
+ @extend .bs-popover-top;
+ }
+ &[data-popper-placement^="right"] {
+ @extend .bs-popover-end;
+ }
+ &[data-popper-placement^="bottom"] {
+ @extend .bs-popover-bottom;
+ }
+ &[data-popper-placement^="left"] {
+ @extend .bs-popover-start;
+ }
+}
+
+// Offset the popover to account for the popover arrow
+.popover-header {
+ padding: var(--#{$prefix}popover-header-padding-y) var(--#{$prefix}popover-header-padding-x);
+ margin-bottom: 0; // Reset the default from Reboot
+ @include font-size(var(--#{$prefix}popover-header-font-size));
+ color: var(--#{$prefix}popover-header-color);
+ background-color: var(--#{$prefix}popover-header-bg);
+ border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);
+ @include border-top-radius(var(--#{$prefix}popover-inner-border-radius));
+
+ &:empty {
+ display: none;
+ }
+}
+
+.popover-body {
+ padding: var(--#{$prefix}popover-body-padding-y) var(--#{$prefix}popover-body-padding-x);
+ color: var(--#{$prefix}popover-body-color);
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_progress.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_progress.scss
new file mode 100644
index 0000000000..1bfafb58fa
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_progress.scss
@@ -0,0 +1,59 @@
+// Disable animation if transitions are disabled
+
+// scss-docs-start progress-keyframes
+@if $enable-transitions {
+ @keyframes progress-bar-stripes {
+ 0% { background-position-x: $progress-height; }
+ }
+}
+// scss-docs-end progress-keyframes
+
+.progress {
+ // scss-docs-start progress-css-vars
+ --#{$prefix}progress-height: #{$progress-height};
+ @include rfs($progress-font-size, --#{$prefix}progress-font-size);
+ --#{$prefix}progress-bg: #{$progress-bg};
+ --#{$prefix}progress-border-radius: #{$progress-border-radius};
+ --#{$prefix}progress-box-shadow: #{$progress-box-shadow};
+ --#{$prefix}progress-bar-color: #{$progress-bar-color};
+ --#{$prefix}progress-bar-bg: #{$progress-bar-bg};
+ --#{$prefix}progress-bar-transition: #{$progress-bar-transition};
+ // scss-docs-end progress-css-vars
+
+ display: flex;
+ height: var(--#{$prefix}progress-height);
+ overflow: hidden; // force rounded corners by cropping it
+ @include font-size(var(--#{$prefix}progress-font-size));
+ background-color: var(--#{$prefix}progress-bg);
+ @include border-radius(var(--#{$prefix}progress-border-radius));
+ @include box-shadow(var(--#{$prefix}progress-box-shadow));
+}
+
+.progress-bar {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ color: var(--#{$prefix}progress-bar-color);
+ text-align: center;
+ white-space: nowrap;
+ background-color: var(--#{$prefix}progress-bar-bg);
+ @include transition(var(--#{$prefix}progress-bar-transition));
+}
+
+.progress-bar-striped {
+ @include gradient-striped();
+ background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);
+}
+
+@if $enable-transitions {
+ .progress-bar-animated {
+ animation: $progress-bar-animation-timing progress-bar-stripes;
+
+ @if $enable-reduced-motion {
+ @media (prefers-reduced-motion: reduce) {
+ animation: none;
+ }
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_reboot.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_reboot.scss
new file mode 100644
index 0000000000..8ac790399f
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_reboot.scss
@@ -0,0 +1,610 @@
+// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
+
+
+// Reboot
+//
+// Normalization of HTML elements, manually forked from Normalize.css to remove
+// styles targeting irrelevant browsers while applying new styles.
+//
+// Normalize is licensed MIT. https://github.com/necolas/normalize.css
+
+
+// Document
+//
+// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+
+// Root
+//
+// Ability to the value of the root font sizes, affecting the value of `rem`.
+// null by default, thus nothing is generated.
+
+:root {
+ @if $font-size-root != null {
+ @include font-size(var(--#{$prefix}root-font-size));
+ }
+
+ @if $enable-smooth-scroll {
+ @media (prefers-reduced-motion: no-preference) {
+ scroll-behavior: smooth;
+ }
+ }
+}
+
+
+// Body
+//
+// 1. Remove the margin in all browsers.
+// 2. As a best practice, apply a default `background-color`.
+// 3. Prevent adjustments of font size after orientation changes in iOS.
+// 4. Change the default tap highlight to be completely transparent in iOS.
+
+// scss-docs-start reboot-body-rules
+body {
+ margin: 0; // 1
+ font-family: var(--#{$prefix}body-font-family);
+ @include font-size(var(--#{$prefix}body-font-size));
+ font-weight: var(--#{$prefix}body-font-weight);
+ line-height: var(--#{$prefix}body-line-height);
+ color: var(--#{$prefix}body-color);
+ text-align: var(--#{$prefix}body-text-align);
+ background-color: var(--#{$prefix}body-bg); // 2
+ -webkit-text-size-adjust: 100%; // 3
+ -webkit-tap-highlight-color: rgba($black, 0); // 4
+}
+// scss-docs-end reboot-body-rules
+
+
+// Content grouping
+//
+// 1. Reset Firefox's gray color
+
+hr {
+ margin: $hr-margin-y 0;
+ color: $hr-color; // 1
+ border: 0;
+ border-top: $hr-border-width solid $hr-border-color;
+ opacity: $hr-opacity;
+}
+
+
+// Typography
+//
+// 1. Remove top margins from headings
+// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top
+// margin for easier control within type scales as it avoids margin collapsing.
+
+%heading {
+ margin-top: 0; // 1
+ margin-bottom: $headings-margin-bottom;
+ font-family: $headings-font-family;
+ font-style: $headings-font-style;
+ font-weight: $headings-font-weight;
+ line-height: $headings-line-height;
+ color: $headings-color;
+}
+
+h1 {
+ @extend %heading;
+ @include font-size($h1-font-size);
+}
+
+h2 {
+ @extend %heading;
+ @include font-size($h2-font-size);
+}
+
+h3 {
+ @extend %heading;
+ @include font-size($h3-font-size);
+}
+
+h4 {
+ @extend %heading;
+ @include font-size($h4-font-size);
+}
+
+h5 {
+ @extend %heading;
+ @include font-size($h5-font-size);
+}
+
+h6 {
+ @extend %heading;
+ @include font-size($h6-font-size);
+}
+
+
+// Reset margins on paragraphs
+//
+// Similarly, the top margin on `<p>`s get reset. However, we also reset the
+// bottom margin to use `rem` units instead of `em`.
+
+p {
+ margin-top: 0;
+ margin-bottom: $paragraph-margin-bottom;
+}
+
+
+// Abbreviations
+//
+// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
+// 2. Add explicit cursor to indicate changed behavior.
+// 3. Prevent the text-decoration to be skipped.
+
+abbr[title] {
+ text-decoration: underline dotted; // 1
+ cursor: help; // 2
+ text-decoration-skip-ink: none; // 3
+}
+
+
+// Address
+
+address {
+ margin-bottom: 1rem;
+ font-style: normal;
+ line-height: inherit;
+}
+
+
+// Lists
+
+ol,
+ul {
+ padding-left: 2rem;
+}
+
+ol,
+ul,
+dl {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+ margin-bottom: 0;
+}
+
+dt {
+ font-weight: $dt-font-weight;
+}
+
+// 1. Undo browser default
+
+dd {
+ margin-bottom: .5rem;
+ margin-left: 0; // 1
+}
+
+
+// Blockquote
+
+blockquote {
+ margin: 0 0 1rem;
+}
+
+
+// Strong
+//
+// Add the correct font weight in Chrome, Edge, and Safari
+
+b,
+strong {
+ font-weight: $font-weight-bolder;
+}
+
+
+// Small
+//
+// Add the correct font size in all browsers
+
+small {
+ @include font-size($small-font-size);
+}
+
+
+// Mark
+
+mark {
+ padding: $mark-padding;
+ background-color: var(--#{$prefix}highlight-bg);
+}
+
+
+// Sub and Sup
+//
+// Prevent `sub` and `sup` elements from affecting the line height in
+// all browsers.
+
+sub,
+sup {
+ position: relative;
+ @include font-size($sub-sup-font-size);
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sub { bottom: -.25em; }
+sup { top: -.5em; }
+
+
+// Links
+
+a {
+ color: var(--#{$prefix}link-color);
+ text-decoration: $link-decoration;
+
+ &:hover {
+ color: var(--#{$prefix}link-hover-color);
+ text-decoration: $link-hover-decoration;
+ }
+}
+
+// And undo these styles for placeholder links/named anchors (without href).
+// It would be more straightforward to just use a[href] in previous block, but that
+// causes specificity issues in many other styles that are too complex to fix.
+// See https://github.com/twbs/bootstrap/issues/19402
+
+a:not([href]):not([class]) {
+ &,
+ &:hover {
+ color: inherit;
+ text-decoration: none;
+ }
+}
+
+
+// Code
+
+pre,
+code,
+kbd,
+samp {
+ font-family: $font-family-code;
+ @include font-size(1em); // Correct the odd `em` font sizing in all browsers.
+}
+
+// 1. Remove browser default top margin
+// 2. Reset browser default of `1em` to use `rem`s
+// 3. Don't allow content to break outside
+
+pre {
+ display: block;
+ margin-top: 0; // 1
+ margin-bottom: 1rem; // 2
+ overflow: auto; // 3
+ @include font-size($code-font-size);
+ color: $pre-color;
+
+ // Account for some code outputs that place code tags in pre tags
+ code {
+ @include font-size(inherit);
+ color: inherit;
+ word-break: normal;
+ }
+}
+
+code {
+ @include font-size($code-font-size);
+ color: var(--#{$prefix}code-color);
+ word-wrap: break-word;
+
+ // Streamline the style when inside anchors to avoid broken underline and more
+ a > & {
+ color: inherit;
+ }
+}
+
+kbd {
+ padding: $kbd-padding-y $kbd-padding-x;
+ @include font-size($kbd-font-size);
+ color: $kbd-color;
+ background-color: $kbd-bg;
+ @include border-radius($border-radius-sm);
+
+ kbd {
+ padding: 0;
+ @include font-size(1em);
+ font-weight: $nested-kbd-font-weight;
+ }
+}
+
+
+// Figures
+//
+// Apply a consistent margin strategy (matches our type styles).
+
+figure {
+ margin: 0 0 1rem;
+}
+
+
+// Images and content
+
+img,
+svg {
+ vertical-align: middle;
+}
+
+
+// Tables
+//
+// Prevent double borders
+
+table {
+ caption-side: bottom;
+ border-collapse: collapse;
+}
+
+caption {
+ padding-top: $table-cell-padding-y;
+ padding-bottom: $table-cell-padding-y;
+ color: $table-caption-color;
+ text-align: left;
+}
+
+// 1. Removes font-weight bold by inheriting
+// 2. Matches default `<td>` alignment by inheriting `text-align`.
+// 3. Fix alignment for Safari
+
+th {
+ font-weight: $table-th-font-weight; // 1
+ text-align: inherit; // 2
+ text-align: -webkit-match-parent; // 3
+}
+
+thead,
+tbody,
+tfoot,
+tr,
+td,
+th {
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+}
+
+
+// Forms
+//
+// 1. Allow labels to use `margin` for spacing.
+
+label {
+ display: inline-block; // 1
+}
+
+// Remove the default `border-radius` that macOS Chrome adds.
+// See https://github.com/twbs/bootstrap/issues/24093
+
+button {
+ // stylelint-disable-next-line property-disallowed-list
+ border-radius: 0;
+}
+
+// Explicitly remove focus outline in Chromium when it shouldn't be
+// visible (e.g. as result of mouse click or touch tap). It already
+// should be doing this automatically, but seems to currently be
+// confused and applies its very visible two-tone outline anyway.
+
+button:focus:not(:focus-visible) {
+ outline: 0;
+}
+
+// 1. Remove the margin in Firefox and Safari
+
+input,
+button,
+select,
+optgroup,
+textarea {
+ margin: 0; // 1
+ font-family: inherit;
+ @include font-size(inherit);
+ line-height: inherit;
+}
+
+// Remove the inheritance of text transform in Firefox
+button,
+select {
+ text-transform: none;
+}
+// Set the cursor for non-`<button>` buttons
+//
+// Details at https://github.com/twbs/bootstrap/pull/30562
+[role="button"] {
+ cursor: pointer;
+}
+
+select {
+ // Remove the inheritance of word-wrap in Safari.
+ // See https://github.com/twbs/bootstrap/issues/24990
+ word-wrap: normal;
+
+ // Undo the opacity change from Chrome
+ &:disabled {
+ opacity: 1;
+ }
+}
+
+// Remove the dropdown arrow only from text type inputs built with datalists in Chrome.
+// See https://stackoverflow.com/a/54997118
+
+[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator {
+ display: none !important;
+}
+
+// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
+// controls in Android 4.
+// 2. Correct the inability to style clickable types in iOS and Safari.
+// 3. Opinionated: add "hand" cursor to non-disabled button elements.
+
+button,
+[type="button"], // 1
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button; // 2
+
+ @if $enable-button-pointers {
+ &:not(:disabled) {
+ cursor: pointer; // 3
+ }
+ }
+}
+
+// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
+
+::-moz-focus-inner {
+ padding: 0;
+ border-style: none;
+}
+
+// 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.
+
+textarea {
+ resize: vertical; // 1
+}
+
+// 1. Browsers set a default `min-width: min-content;` on fieldsets,
+// unlike e.g. `<div>`s, which have `min-width: 0;` by default.
+// So we reset that to ensure fieldsets behave more like a standard block element.
+// See https://github.com/twbs/bootstrap/issues/12359
+// and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements
+// 2. Reset the default outline behavior of fieldsets so they don't affect page layout.
+
+fieldset {
+ min-width: 0; // 1
+ padding: 0; // 2
+ margin: 0; // 2
+ border: 0; // 2
+}
+
+// 1. By using `float: left`, the legend will behave like a block element.
+// This way the border of a fieldset wraps around the legend if present.
+// 2. Fix wrapping bug.
+// See https://github.com/twbs/bootstrap/issues/29712
+
+legend {
+ float: left; // 1
+ width: 100%;
+ padding: 0;
+ margin-bottom: $legend-margin-bottom;
+ @include font-size($legend-font-size);
+ font-weight: $legend-font-weight;
+ line-height: inherit;
+
+ + * {
+ clear: left; // 2
+ }
+}
+
+// Fix height of inputs with a type of datetime-local, date, month, week, or time
+// See https://github.com/twbs/bootstrap/issues/18842
+
+::-webkit-datetime-edit-fields-wrapper,
+::-webkit-datetime-edit-text,
+::-webkit-datetime-edit-minute,
+::-webkit-datetime-edit-hour-field,
+::-webkit-datetime-edit-day-field,
+::-webkit-datetime-edit-month-field,
+::-webkit-datetime-edit-year-field {
+ padding: 0;
+}
+
+::-webkit-inner-spin-button {
+ height: auto;
+}
+
+// 1. Correct the outline style in Safari.
+// 2. This overrides the extra rounded corners on search inputs in iOS so that our
+// `.form-control` class can properly style them. Note that this cannot simply
+// be added to `.form-control` as it's not specific enough. For details, see
+// https://github.com/twbs/bootstrap/issues/11586.
+
+[type="search"] {
+ outline-offset: -2px; // 1
+ -webkit-appearance: textfield; // 2
+}
+
+// 1. A few input types should stay LTR
+// See https://rtlstyling.com/posts/rtl-styling#form-inputs
+// 2. RTL only output
+// See https://rtlcss.com/learn/usage-guide/control-directives/#raw
+
+/* rtl:raw:
+[type="tel"],
+[type="url"],
+[type="email"],
+[type="number"] {
+ direction: ltr;
+}
+*/
+
+// Remove the inner padding in Chrome and Safari on macOS.
+
+::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+// Remove padding around color pickers in webkit browsers
+
+::-webkit-color-swatch-wrapper {
+ padding: 0;
+}
+
+
+// 1. Inherit font family and line height for file input buttons
+// 2. Correct the inability to style clickable types in iOS and Safari.
+
+::file-selector-button {
+ font: inherit; // 1
+ -webkit-appearance: button; // 2
+}
+
+// Correct element displays
+
+output {
+ display: inline-block;
+}
+
+// Remove border from iframe
+
+iframe {
+ border: 0;
+}
+
+// Summary
+//
+// 1. Add the correct display in all browsers
+
+summary {
+ display: list-item; // 1
+ cursor: pointer;
+}
+
+
+// Progress
+//
+// Add the correct vertical alignment in Chrome, Firefox, and Opera.
+
+progress {
+ vertical-align: baseline;
+}
+
+
+// Hidden attribute
+//
+// Always hide an element with the `hidden` HTML attribute.
+
+[hidden] {
+ display: none !important;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_root.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_root.scss
new file mode 100644
index 0000000000..e64ae04e57
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_root.scss
@@ -0,0 +1,73 @@
+:root {
+ // Note: Custom variable values only support SassScript inside `#{}`.
+
+ // Colors
+ //
+ // Generate palettes for full colors, grays, and theme colors.
+
+ @each $color, $value in $colors {
+ --#{$prefix}#{$color}: #{$value};
+ }
+
+ @each $color, $value in $grays {
+ --#{$prefix}gray-#{$color}: #{$value};
+ }
+
+ @each $color, $value in $theme-colors {
+ --#{$prefix}#{$color}: #{$value};
+ }
+
+ @each $color, $value in $theme-colors-rgb {
+ --#{$prefix}#{$color}-rgb: #{$value};
+ }
+
+ --#{$prefix}white-rgb: #{to-rgb($white)};
+ --#{$prefix}black-rgb: #{to-rgb($black)};
+ --#{$prefix}body-color-rgb: #{to-rgb($body-color)};
+ --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
+
+ // Fonts
+
+ // Note: Use `inspect` for lists so that quoted items keep the quotes.
+ // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
+ --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
+ --#{$prefix}font-monospace: #{inspect($font-family-monospace)};
+ --#{$prefix}gradient: #{$gradient};
+
+ // Root and body
+ // scss-docs-start root-body-variables
+ @if $font-size-root != null {
+ --#{$prefix}root-font-size: #{$font-size-root};
+ }
+ --#{$prefix}body-font-family: #{$font-family-base};
+ @include rfs($font-size-base, --#{$prefix}body-font-size);
+ --#{$prefix}body-font-weight: #{$font-weight-base};
+ --#{$prefix}body-line-height: #{$line-height-base};
+ --#{$prefix}body-color: #{$body-color};
+ @if $body-text-align != null {
+ --#{$prefix}body-text-align: #{$body-text-align};
+ }
+ --#{$prefix}body-bg: #{$body-bg};
+ // scss-docs-end root-body-variables
+
+ // scss-docs-start root-border-var
+ --#{$prefix}border-width: #{$border-width};
+ --#{$prefix}border-style: #{$border-style};
+ --#{$prefix}border-color: #{$border-color};
+ --#{$prefix}border-color-translucent: #{$border-color-translucent};
+
+ --#{$prefix}border-radius: #{$border-radius};
+ --#{$prefix}border-radius-sm: #{$border-radius-sm};
+ --#{$prefix}border-radius-lg: #{$border-radius-lg};
+ --#{$prefix}border-radius-xl: #{$border-radius-xl};
+ --#{$prefix}border-radius-2xl: #{$border-radius-2xl};
+ --#{$prefix}border-radius-pill: #{$border-radius-pill};
+ // scss-docs-end root-border-var
+
+ --#{$prefix}link-color: #{$link-color};
+ --#{$prefix}link-hover-color: #{$link-hover-color};
+
+ --#{$prefix}code-color: #{$code-color};
+
+ --#{$prefix}highlight-bg: #{$mark-bg};
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_spinners.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_spinners.scss
new file mode 100644
index 0000000000..ec8473207e
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_spinners.scss
@@ -0,0 +1,85 @@
+//
+// Rotating border
+//
+
+.spinner-grow,
+.spinner-border {
+ display: inline-block;
+ width: var(--#{$prefix}spinner-width);
+ height: var(--#{$prefix}spinner-height);
+ vertical-align: var(--#{$prefix}spinner-vertical-align);
+ // stylelint-disable-next-line property-disallowed-list
+ border-radius: 50%;
+ animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);
+}
+
+// scss-docs-start spinner-border-keyframes
+@keyframes spinner-border {
+ to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
+}
+// scss-docs-end spinner-border-keyframes
+
+.spinner-border {
+ // scss-docs-start spinner-border-css-vars
+ --#{$prefix}spinner-width: #{$spinner-width};
+ --#{$prefix}spinner-height: #{$spinner-height};
+ --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
+ --#{$prefix}spinner-border-width: #{$spinner-border-width};
+ --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
+ --#{$prefix}spinner-animation-name: spinner-border;
+ // scss-docs-end spinner-border-css-vars
+
+ border: var(--#{$prefix}spinner-border-width) solid currentcolor;
+ border-right-color: transparent;
+}
+
+.spinner-border-sm {
+ // scss-docs-start spinner-border-sm-css-vars
+ --#{$prefix}spinner-width: #{$spinner-width-sm};
+ --#{$prefix}spinner-height: #{$spinner-height-sm};
+ --#{$prefix}spinner-border-width: #{$spinner-border-width-sm};
+ // scss-docs-end spinner-border-sm-css-vars
+}
+
+//
+// Growing circle
+//
+
+// scss-docs-start spinner-grow-keyframes
+@keyframes spinner-grow {
+ 0% {
+ transform: scale(0);
+ }
+ 50% {
+ opacity: 1;
+ transform: none;
+ }
+}
+// scss-docs-end spinner-grow-keyframes
+
+.spinner-grow {
+ // scss-docs-start spinner-grow-css-vars
+ --#{$prefix}spinner-width: #{$spinner-width};
+ --#{$prefix}spinner-height: #{$spinner-height};
+ --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
+ --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
+ --#{$prefix}spinner-animation-name: spinner-grow;
+ // scss-docs-end spinner-grow-css-vars
+
+ background-color: currentcolor;
+ opacity: 0;
+}
+
+.spinner-grow-sm {
+ --#{$prefix}spinner-width: #{$spinner-width-sm};
+ --#{$prefix}spinner-height: #{$spinner-height-sm};
+}
+
+@if $enable-reduced-motion {
+ @media (prefers-reduced-motion: reduce) {
+ .spinner-border,
+ .spinner-grow {
+ --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed * 2};
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_tables.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_tables.scss
new file mode 100644
index 0000000000..1fdd43c6bb
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_tables.scss
@@ -0,0 +1,164 @@
+//
+// Basic Bootstrap table
+//
+
+.table {
+ --#{$prefix}table-color: #{$table-color};
+ --#{$prefix}table-bg: #{$table-bg};
+ --#{$prefix}table-border-color: #{$table-border-color};
+ --#{$prefix}table-accent-bg: #{$table-accent-bg};
+ --#{$prefix}table-striped-color: #{$table-striped-color};
+ --#{$prefix}table-striped-bg: #{$table-striped-bg};
+ --#{$prefix}table-active-color: #{$table-active-color};
+ --#{$prefix}table-active-bg: #{$table-active-bg};
+ --#{$prefix}table-hover-color: #{$table-hover-color};
+ --#{$prefix}table-hover-bg: #{$table-hover-bg};
+
+ width: 100%;
+ margin-bottom: $spacer;
+ color: var(--#{$prefix}table-color);
+ vertical-align: $table-cell-vertical-align;
+ border-color: var(--#{$prefix}table-border-color);
+
+ // Target th & td
+ // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.
+ // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).
+ // Another advantage is that this generates less code and makes the selector less specific making it easier to override.
+ // stylelint-disable-next-line selector-max-universal
+ > :not(caption) > * > * {
+ padding: $table-cell-padding-y $table-cell-padding-x;
+ background-color: var(--#{$prefix}table-bg);
+ border-bottom-width: $table-border-width;
+ box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-accent-bg);
+ }
+
+ > tbody {
+ vertical-align: inherit;
+ }
+
+ > thead {
+ vertical-align: bottom;
+ }
+}
+
+.table-group-divider {
+ border-top: ($table-border-width * 2) solid $table-group-separator-color;
+}
+
+//
+// Change placement of captions with a class
+//
+
+.caption-top {
+ caption-side: top;
+}
+
+
+//
+// Condensed table w/ half padding
+//
+
+.table-sm {
+ // stylelint-disable-next-line selector-max-universal
+ > :not(caption) > * > * {
+ padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;
+ }
+}
+
+
+// Border versions
+//
+// Add or remove borders all around the table and between all the columns.
+//
+// When borders are added on all sides of the cells, the corners can render odd when
+// these borders do not have the same color or if they are semi-transparent.
+// Therefor we add top and border bottoms to the `tr`s and left and right borders
+// to the `td`s or `th`s
+
+.table-bordered {
+ > :not(caption) > * {
+ border-width: $table-border-width 0;
+
+ // stylelint-disable-next-line selector-max-universal
+ > * {
+ border-width: 0 $table-border-width;
+ }
+ }
+}
+
+.table-borderless {
+ // stylelint-disable-next-line selector-max-universal
+ > :not(caption) > * > * {
+ border-bottom-width: 0;
+ }
+
+ > :not(:first-child) {
+ border-top-width: 0;
+ }
+}
+
+// Zebra-striping
+//
+// Default zebra-stripe styles (alternating gray and transparent backgrounds)
+
+// For rows
+.table-striped {
+ > tbody > tr:nth-of-type(#{$table-striped-order}) > * {
+ --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);
+ color: var(--#{$prefix}table-striped-color);
+ }
+}
+
+// For columns
+.table-striped-columns {
+ > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {
+ --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);
+ color: var(--#{$prefix}table-striped-color);
+ }
+}
+
+// Active table
+//
+// The `.table-active` class can be added to highlight rows or cells
+
+.table-active {
+ --#{$prefix}table-accent-bg: var(--#{$prefix}table-active-bg);
+ color: var(--#{$prefix}table-active-color);
+}
+
+// Hover effect
+//
+// Placed here since it has to come after the potential zebra striping
+
+.table-hover {
+ > tbody > tr:hover > * {
+ --#{$prefix}table-accent-bg: var(--#{$prefix}table-hover-bg);
+ color: var(--#{$prefix}table-hover-color);
+ }
+}
+
+
+// Table variants
+//
+// Table variants set the table cell backgrounds, border colors
+// and the colors of the striped, hovered & active tables
+
+@each $color, $value in $table-variants {
+ @include table-variant($color, $value);
+}
+
+// Responsive tables
+//
+// Generate series of `.table-responsive-*` classes for configuring the screen
+// size of where your table will overflow.
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ @include media-breakpoint-down($breakpoint) {
+ .table-responsive#{$infix} {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_toasts.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_toasts.scss
new file mode 100644
index 0000000000..c34e49b241
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_toasts.scss
@@ -0,0 +1,71 @@
+.toast {
+ // scss-docs-start toast-css-vars
+ --#{$prefix}toast-zindex: #{$zindex-toast};
+ --#{$prefix}toast-padding-x: #{$toast-padding-x};
+ --#{$prefix}toast-padding-y: #{$toast-padding-y};
+ --#{$prefix}toast-spacing: #{$toast-spacing};
+ --#{$prefix}toast-max-width: #{$toast-max-width};
+ @include rfs($toast-font-size, --#{$prefix}toast-font-size);
+ --#{$prefix}toast-color: #{$toast-color};
+ --#{$prefix}toast-bg: #{$toast-background-color};
+ --#{$prefix}toast-border-width: #{$toast-border-width};
+ --#{$prefix}toast-border-color: #{$toast-border-color};
+ --#{$prefix}toast-border-radius: #{$toast-border-radius};
+ --#{$prefix}toast-box-shadow: #{$toast-box-shadow};
+ --#{$prefix}toast-header-color: #{$toast-header-color};
+ --#{$prefix}toast-header-bg: #{$toast-header-background-color};
+ --#{$prefix}toast-header-border-color: #{$toast-header-border-color};
+ // scss-docs-end toast-css-vars
+
+ width: var(--#{$prefix}toast-max-width);
+ max-width: 100%;
+ @include font-size(var(--#{$prefix}toast-font-size));
+ color: var(--#{$prefix}toast-color);
+ pointer-events: auto;
+ background-color: var(--#{$prefix}toast-bg);
+ background-clip: padding-box;
+ border: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-border-color);
+ box-shadow: var(--#{$prefix}toast-box-shadow);
+ @include border-radius(var(--#{$prefix}toast-border-radius));
+
+ &.showing {
+ opacity: 0;
+ }
+
+ &:not(.show) {
+ display: none;
+ }
+}
+
+.toast-container {
+ position: absolute;
+ z-index: var(--#{$prefix}toast-zindex);
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none;
+
+ > :not(:last-child) {
+ margin-bottom: var(--#{$prefix}toast-spacing);
+ }
+}
+
+.toast-header {
+ display: flex;
+ align-items: center;
+ padding: var(--#{$prefix}toast-padding-y) var(--#{$prefix}toast-padding-x);
+ color: var(--#{$prefix}toast-header-color);
+ background-color: var(--#{$prefix}toast-header-bg);
+ background-clip: padding-box;
+ border-bottom: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-header-border-color);
+ @include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width)));
+
+ .btn-close {
+ margin-right: calc(-.5 * var(--#{$prefix}toast-padding-x)); // stylelint-disable-line function-disallowed-list
+ margin-left: var(--#{$prefix}toast-padding-x);
+ }
+}
+
+.toast-body {
+ padding: var(--#{$prefix}toast-padding-x);
+ word-wrap: break-word;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_tooltip.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_tooltip.scss
new file mode 100644
index 0000000000..7da3df3e00
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_tooltip.scss
@@ -0,0 +1,120 @@
+// Base class
+.tooltip {
+ // scss-docs-start tooltip-css-vars
+ --#{$prefix}tooltip-zindex: #{$zindex-tooltip};
+ --#{$prefix}tooltip-max-width: #{$tooltip-max-width};
+ --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
+ --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
+ --#{$prefix}tooltip-margin: #{$tooltip-margin};
+ @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
+ --#{$prefix}tooltip-color: #{$tooltip-color};
+ --#{$prefix}tooltip-bg: #{$tooltip-bg};
+ --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
+ --#{$prefix}tooltip-opacity: #{$tooltip-opacity};
+ --#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};
+ --#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};
+ // scss-docs-end tooltip-css-vars
+
+ z-index: var(--#{$prefix}tooltip-zindex);
+ display: block;
+ padding: var(--#{$prefix}tooltip-arrow-height);
+ margin: var(--#{$prefix}tooltip-margin);
+ @include deprecate("`$tooltip-margin`", "v5", "v5.x", true);
+ // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
+ // So reset our font and text properties to avoid inheriting weird values.
+ @include reset-text();
+ @include font-size(var(--#{$prefix}tooltip-font-size));
+ // Allow breaking very long words so they don't overflow the tooltip's bounds
+ word-wrap: break-word;
+ opacity: 0;
+
+ &.show { opacity: var(--#{$prefix}tooltip-opacity); }
+
+ .tooltip-arrow {
+ display: block;
+ width: var(--#{$prefix}tooltip-arrow-width);
+ height: var(--#{$prefix}tooltip-arrow-height);
+
+ &::before {
+ position: absolute;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+ }
+ }
+}
+
+.bs-tooltip-top .tooltip-arrow {
+ bottom: 0;
+
+ &::before {
+ top: -1px;
+ border-width: var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+ border-top-color: var(--#{$prefix}tooltip-bg);
+ }
+}
+
+/* rtl:begin:ignore */
+.bs-tooltip-end .tooltip-arrow {
+ left: 0;
+ width: var(--#{$prefix}tooltip-arrow-height);
+ height: var(--#{$prefix}tooltip-arrow-width);
+
+ &::before {
+ right: -1px;
+ border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+ border-right-color: var(--#{$prefix}tooltip-bg);
+ }
+}
+
+/* rtl:end:ignore */
+
+.bs-tooltip-bottom .tooltip-arrow {
+ top: 0;
+
+ &::before {
+ bottom: -1px;
+ border-width: 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
+ border-bottom-color: var(--#{$prefix}tooltip-bg);
+ }
+}
+
+/* rtl:begin:ignore */
+.bs-tooltip-start .tooltip-arrow {
+ right: 0;
+ width: var(--#{$prefix}tooltip-arrow-height);
+ height: var(--#{$prefix}tooltip-arrow-width);
+
+ &::before {
+ left: -1px;
+ border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
+ border-left-color: var(--#{$prefix}tooltip-bg);
+ }
+}
+
+/* rtl:end:ignore */
+
+.bs-tooltip-auto {
+ &[data-popper-placement^="top"] {
+ @extend .bs-tooltip-top;
+ }
+ &[data-popper-placement^="right"] {
+ @extend .bs-tooltip-end;
+ }
+ &[data-popper-placement^="bottom"] {
+ @extend .bs-tooltip-bottom;
+ }
+ &[data-popper-placement^="left"] {
+ @extend .bs-tooltip-start;
+ }
+}
+
+// Wrapper for the tooltip content
+.tooltip-inner {
+ max-width: var(--#{$prefix}tooltip-max-width);
+ padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);
+ color: var(--#{$prefix}tooltip-color);
+ text-align: center;
+ background-color: var(--#{$prefix}tooltip-bg);
+ @include border-radius(var(--#{$prefix}tooltip-border-radius));
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_transitions.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_transitions.scss
new file mode 100644
index 0000000000..bfb26aa8ac
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_transitions.scss
@@ -0,0 +1,27 @@
+.fade {
+ @include transition($transition-fade);
+
+ &:not(.show) {
+ opacity: 0;
+ }
+}
+
+// scss-docs-start collapse-classes
+.collapse {
+ &:not(.show) {
+ display: none;
+ }
+}
+
+.collapsing {
+ height: 0;
+ overflow: hidden;
+ @include transition($transition-collapse);
+
+ &.collapse-horizontal {
+ width: 0;
+ height: auto;
+ @include transition($transition-collapse-width);
+ }
+}
+// scss-docs-end collapse-classes
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_type.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_type.scss
new file mode 100644
index 0000000000..37d64bf89c
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_type.scss
@@ -0,0 +1,106 @@
+//
+// Headings
+//
+.h1 {
+ @extend h1;
+}
+
+.h2 {
+ @extend h2;
+}
+
+.h3 {
+ @extend h3;
+}
+
+.h4 {
+ @extend h4;
+}
+
+.h5 {
+ @extend h5;
+}
+
+.h6 {
+ @extend h6;
+}
+
+
+.lead {
+ @include font-size($lead-font-size);
+ font-weight: $lead-font-weight;
+}
+
+// Type display classes
+@each $display, $font-size in $display-font-sizes {
+ .display-#{$display} {
+ @include font-size($font-size);
+ font-family: $display-font-family;
+ font-style: $display-font-style;
+ font-weight: $display-font-weight;
+ line-height: $display-line-height;
+ }
+}
+
+//
+// Emphasis
+//
+.small {
+ @extend small;
+}
+
+.mark {
+ @extend mark;
+}
+
+//
+// Lists
+//
+
+.list-unstyled {
+ @include list-unstyled();
+}
+
+// Inline turns list items into inline-block
+.list-inline {
+ @include list-unstyled();
+}
+.list-inline-item {
+ display: inline-block;
+
+ &:not(:last-child) {
+ margin-right: $list-inline-padding;
+ }
+}
+
+
+//
+// Misc
+//
+
+// Builds on `abbr`
+.initialism {
+ @include font-size($initialism-font-size);
+ text-transform: uppercase;
+}
+
+// Blockquotes
+.blockquote {
+ margin-bottom: $blockquote-margin-y;
+ @include font-size($blockquote-font-size);
+
+ > :last-child {
+ margin-bottom: 0;
+ }
+}
+
+.blockquote-footer {
+ margin-top: -$blockquote-margin-y;
+ margin-bottom: $blockquote-margin-y;
+ @include font-size($blockquote-footer-font-size);
+ color: $blockquote-footer-color;
+
+ &::before {
+ content: "\2014\00A0"; // em dash, nbsp
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_utilities.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_utilities.scss
new file mode 100644
index 0000000000..1e0d141acc
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_utilities.scss
@@ -0,0 +1,647 @@
+// Utilities
+
+$utilities: () !default;
+// stylelint-disable-next-line scss/dollar-variable-default
+$utilities: map-merge(
+ (
+ // scss-docs-start utils-vertical-align
+ "align": (
+ property: vertical-align,
+ class: align,
+ values: baseline top middle bottom text-bottom text-top
+ ),
+ // scss-docs-end utils-vertical-align
+ // scss-docs-start utils-float
+ "float": (
+ responsive: true,
+ property: float,
+ values: (
+ start: left,
+ end: right,
+ none: none,
+ )
+ ),
+ // scss-docs-end utils-float
+ // Opacity utilities
+ // scss-docs-start utils-opacity
+ "opacity": (
+ property: opacity,
+ values: (
+ 0: 0,
+ 25: .25,
+ 50: .5,
+ 75: .75,
+ 100: 1,
+ )
+ ),
+ // scss-docs-end utils-opacity
+ // scss-docs-start utils-overflow
+ "overflow": (
+ property: overflow,
+ values: auto hidden visible scroll,
+ ),
+ // scss-docs-end utils-overflow
+ // scss-docs-start utils-display
+ "display": (
+ responsive: true,
+ print: true,
+ property: display,
+ class: d,
+ values: inline inline-block block grid table table-row table-cell flex inline-flex none
+ ),
+ // scss-docs-end utils-display
+ // scss-docs-start utils-shadow
+ "shadow": (
+ property: box-shadow,
+ class: shadow,
+ values: (
+ null: $box-shadow,
+ sm: $box-shadow-sm,
+ lg: $box-shadow-lg,
+ none: none,
+ )
+ ),
+ // scss-docs-end utils-shadow
+ // scss-docs-start utils-position
+ "position": (
+ property: position,
+ values: static relative absolute fixed sticky
+ ),
+ "top": (
+ property: top,
+ values: $position-values
+ ),
+ "bottom": (
+ property: bottom,
+ values: $position-values
+ ),
+ "start": (
+ property: left,
+ class: start,
+ values: $position-values
+ ),
+ "end": (
+ property: right,
+ class: end,
+ values: $position-values
+ ),
+ "translate-middle": (
+ property: transform,
+ class: translate-middle,
+ values: (
+ null: translate(-50%, -50%),
+ x: translateX(-50%),
+ y: translateY(-50%),
+ )
+ ),
+ // scss-docs-end utils-position
+ // scss-docs-start utils-borders
+ "border": (
+ property: border,
+ values: (
+ null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+ 0: 0,
+ )
+ ),
+ "border-top": (
+ property: border-top,
+ values: (
+ null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+ 0: 0,
+ )
+ ),
+ "border-end": (
+ property: border-right,
+ class: border-end,
+ values: (
+ null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+ 0: 0,
+ )
+ ),
+ "border-bottom": (
+ property: border-bottom,
+ values: (
+ null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+ 0: 0,
+ )
+ ),
+ "border-start": (
+ property: border-left,
+ class: border-start,
+ values: (
+ null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+ 0: 0,
+ )
+ ),
+ "border-color": (
+ property: border-color,
+ class: border,
+ local-vars: (
+ "border-opacity": 1
+ ),
+ values: $utilities-border-colors
+ ),
+ "border-width": (
+ css-var: true,
+ css-variable-name: border-width,
+ class: border,
+ values: $border-widths
+ ),
+ "border-opacity": (
+ css-var: true,
+ class: border-opacity,
+ values: (
+ 10: .1,
+ 25: .25,
+ 50: .5,
+ 75: .75,
+ 100: 1
+ )
+ ),
+ // scss-docs-end utils-borders
+ // Sizing utilities
+ // scss-docs-start utils-sizing
+ "width": (
+ property: width,
+ class: w,
+ values: (
+ 25: 25%,
+ 50: 50%,
+ 75: 75%,
+ 100: 100%,
+ auto: auto
+ )
+ ),
+ "max-width": (
+ property: max-width,
+ class: mw,
+ values: (100: 100%)
+ ),
+ "viewport-width": (
+ property: width,
+ class: vw,
+ values: (100: 100vw)
+ ),
+ "min-viewport-width": (
+ property: min-width,
+ class: min-vw,
+ values: (100: 100vw)
+ ),
+ "height": (
+ property: height,
+ class: h,
+ values: (
+ 25: 25%,
+ 50: 50%,
+ 75: 75%,
+ 100: 100%,
+ auto: auto
+ )
+ ),
+ "max-height": (
+ property: max-height,
+ class: mh,
+ values: (100: 100%)
+ ),
+ "viewport-height": (
+ property: height,
+ class: vh,
+ values: (100: 100vh)
+ ),
+ "min-viewport-height": (
+ property: min-height,
+ class: min-vh,
+ values: (100: 100vh)
+ ),
+ // scss-docs-end utils-sizing
+ // Flex utilities
+ // scss-docs-start utils-flex
+ "flex": (
+ responsive: true,
+ property: flex,
+ values: (fill: 1 1 auto)
+ ),
+ "flex-direction": (
+ responsive: true,
+ property: flex-direction,
+ class: flex,
+ values: row column row-reverse column-reverse
+ ),
+ "flex-grow": (
+ responsive: true,
+ property: flex-grow,
+ class: flex,
+ values: (
+ grow-0: 0,
+ grow-1: 1,
+ )
+ ),
+ "flex-shrink": (
+ responsive: true,
+ property: flex-shrink,
+ class: flex,
+ values: (
+ shrink-0: 0,
+ shrink-1: 1,
+ )
+ ),
+ "flex-wrap": (
+ responsive: true,
+ property: flex-wrap,
+ class: flex,
+ values: wrap nowrap wrap-reverse
+ ),
+ "justify-content": (
+ responsive: true,
+ property: justify-content,
+ values: (
+ start: flex-start,
+ end: flex-end,
+ center: center,
+ between: space-between,
+ around: space-around,
+ evenly: space-evenly,
+ )
+ ),
+ "align-items": (
+ responsive: true,
+ property: align-items,
+ values: (
+ start: flex-start,
+ end: flex-end,
+ center: center,
+ baseline: baseline,
+ stretch: stretch,
+ )
+ ),
+ "align-content": (
+ responsive: true,
+ property: align-content,
+ values: (
+ start: flex-start,
+ end: flex-end,
+ center: center,
+ between: space-between,
+ around: space-around,
+ stretch: stretch,
+ )
+ ),
+ "align-self": (
+ responsive: true,
+ property: align-self,
+ values: (
+ auto: auto,
+ start: flex-start,
+ end: flex-end,
+ center: center,
+ baseline: baseline,
+ stretch: stretch,
+ )
+ ),
+ "order": (
+ responsive: true,
+ property: order,
+ values: (
+ first: -1,
+ 0: 0,
+ 1: 1,
+ 2: 2,
+ 3: 3,
+ 4: 4,
+ 5: 5,
+ last: 6,
+ ),
+ ),
+ // scss-docs-end utils-flex
+ // Margin utilities
+ // scss-docs-start utils-spacing
+ "margin": (
+ responsive: true,
+ property: margin,
+ class: m,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-x": (
+ responsive: true,
+ property: margin-right margin-left,
+ class: mx,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-y": (
+ responsive: true,
+ property: margin-top margin-bottom,
+ class: my,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-top": (
+ responsive: true,
+ property: margin-top,
+ class: mt,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-end": (
+ responsive: true,
+ property: margin-right,
+ class: me,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-bottom": (
+ responsive: true,
+ property: margin-bottom,
+ class: mb,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ "margin-start": (
+ responsive: true,
+ property: margin-left,
+ class: ms,
+ values: map-merge($spacers, (auto: auto))
+ ),
+ // Negative margin utilities
+ "negative-margin": (
+ responsive: true,
+ property: margin,
+ class: m,
+ values: $negative-spacers
+ ),
+ "negative-margin-x": (
+ responsive: true,
+ property: margin-right margin-left,
+ class: mx,
+ values: $negative-spacers
+ ),
+ "negative-margin-y": (
+ responsive: true,
+ property: margin-top margin-bottom,
+ class: my,
+ values: $negative-spacers
+ ),
+ "negative-margin-top": (
+ responsive: true,
+ property: margin-top,
+ class: mt,
+ values: $negative-spacers
+ ),
+ "negative-margin-end": (
+ responsive: true,
+ property: margin-right,
+ class: me,
+ values: $negative-spacers
+ ),
+ "negative-margin-bottom": (
+ responsive: true,
+ property: margin-bottom,
+ class: mb,
+ values: $negative-spacers
+ ),
+ "negative-margin-start": (
+ responsive: true,
+ property: margin-left,
+ class: ms,
+ values: $negative-spacers
+ ),
+ // Padding utilities
+ "padding": (
+ responsive: true,
+ property: padding,
+ class: p,
+ values: $spacers
+ ),
+ "padding-x": (
+ responsive: true,
+ property: padding-right padding-left,
+ class: px,
+ values: $spacers
+ ),
+ "padding-y": (
+ responsive: true,
+ property: padding-top padding-bottom,
+ class: py,
+ values: $spacers
+ ),
+ "padding-top": (
+ responsive: true,
+ property: padding-top,
+ class: pt,
+ values: $spacers
+ ),
+ "padding-end": (
+ responsive: true,
+ property: padding-right,
+ class: pe,
+ values: $spacers
+ ),
+ "padding-bottom": (
+ responsive: true,
+ property: padding-bottom,
+ class: pb,
+ values: $spacers
+ ),
+ "padding-start": (
+ responsive: true,
+ property: padding-left,
+ class: ps,
+ values: $spacers
+ ),
+ // Gap utility
+ "gap": (
+ responsive: true,
+ property: gap,
+ class: gap,
+ values: $spacers
+ ),
+ // scss-docs-end utils-spacing
+ // Text
+ // scss-docs-start utils-text
+ "font-family": (
+ property: font-family,
+ class: font,
+ values: (monospace: var(--#{$prefix}font-monospace))
+ ),
+ "font-size": (
+ rfs: true,
+ property: font-size,
+ class: fs,
+ values: $font-sizes
+ ),
+ "font-style": (
+ property: font-style,
+ class: fst,
+ values: italic normal
+ ),
+ "font-weight": (
+ property: font-weight,
+ class: fw,
+ values: (
+ light: $font-weight-light,
+ lighter: $font-weight-lighter,
+ normal: $font-weight-normal,
+ bold: $font-weight-bold,
+ semibold: $font-weight-semibold,
+ bolder: $font-weight-bolder
+ )
+ ),
+ "line-height": (
+ property: line-height,
+ class: lh,
+ values: (
+ 1: 1,
+ sm: $line-height-sm,
+ base: $line-height-base,
+ lg: $line-height-lg,
+ )
+ ),
+ "text-align": (
+ responsive: true,
+ property: text-align,
+ class: text,
+ values: (
+ start: left,
+ end: right,
+ center: center,
+ )
+ ),
+ "text-decoration": (
+ property: text-decoration,
+ values: none underline line-through
+ ),
+ "text-transform": (
+ property: text-transform,
+ class: text,
+ values: lowercase uppercase capitalize
+ ),
+ "white-space": (
+ property: white-space,
+ class: text,
+ values: (
+ wrap: normal,
+ nowrap: nowrap,
+ )
+ ),
+ "word-wrap": (
+ property: word-wrap word-break,
+ class: text,
+ values: (break: break-word),
+ rtl: false
+ ),
+ // scss-docs-end utils-text
+ // scss-docs-start utils-color
+ "color": (
+ property: color,
+ class: text,
+ local-vars: (
+ "text-opacity": 1
+ ),
+ values: map-merge(
+ $utilities-text-colors,
+ (
+ "muted": $text-muted,
+ "black-50": rgba($black, .5), // deprecated
+ "white-50": rgba($white, .5), // deprecated
+ "reset": inherit,
+ )
+ )
+ ),
+ "text-opacity": (
+ css-var: true,
+ class: text-opacity,
+ values: (
+ 25: .25,
+ 50: .5,
+ 75: .75,
+ 100: 1
+ )
+ ),
+ // scss-docs-end utils-color
+ // scss-docs-start utils-bg-color
+ "background-color": (
+ property: background-color,
+ class: bg,
+ local-vars: (
+ "bg-opacity": 1
+ ),
+ values: map-merge(
+ $utilities-bg-colors,
+ (
+ "transparent": transparent
+ )
+ )
+ ),
+ "bg-opacity": (
+ css-var: true,
+ class: bg-opacity,
+ values: (
+ 10: .1,
+ 25: .25,
+ 50: .5,
+ 75: .75,
+ 100: 1
+ )
+ ),
+ // scss-docs-end utils-bg-color
+ "gradient": (
+ property: background-image,
+ class: bg,
+ values: (gradient: var(--#{$prefix}gradient))
+ ),
+ // scss-docs-start utils-interaction
+ "user-select": (
+ property: user-select,
+ values: all auto none
+ ),
+ "pointer-events": (
+ property: pointer-events,
+ class: pe,
+ values: none auto,
+ ),
+ // scss-docs-end utils-interaction
+ // scss-docs-start utils-border-radius
+ "rounded": (
+ property: border-radius,
+ class: rounded,
+ values: (
+ null: var(--#{$prefix}border-radius),
+ 0: 0,
+ 1: var(--#{$prefix}border-radius-sm),
+ 2: var(--#{$prefix}border-radius),
+ 3: var(--#{$prefix}border-radius-lg),
+ 4: var(--#{$prefix}border-radius-xl),
+ 5: var(--#{$prefix}border-radius-2xl),
+ circle: 50%,
+ pill: var(--#{$prefix}border-radius-pill)
+ )
+ ),
+ "rounded-top": (
+ property: border-top-left-radius border-top-right-radius,
+ class: rounded-top,
+ values: (null: var(--#{$prefix}border-radius))
+ ),
+ "rounded-end": (
+ property: border-top-right-radius border-bottom-right-radius,
+ class: rounded-end,
+ values: (null: var(--#{$prefix}border-radius))
+ ),
+ "rounded-bottom": (
+ property: border-bottom-right-radius border-bottom-left-radius,
+ class: rounded-bottom,
+ values: (null: var(--#{$prefix}border-radius))
+ ),
+ "rounded-start": (
+ property: border-bottom-left-radius border-top-left-radius,
+ class: rounded-start,
+ values: (null: var(--#{$prefix}border-radius))
+ ),
+ // scss-docs-end utils-border-radius
+ // scss-docs-start utils-visibility
+ "visibility": (
+ property: visibility,
+ class: null,
+ values: (
+ visible: visible,
+ invisible: hidden,
+ )
+ )
+ // scss-docs-end utils-visibility
+ ),
+ $utilities
+);
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/_variables.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/_variables.scss
new file mode 100644
index 0000000000..07ce922f33
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/_variables.scss
@@ -0,0 +1,1634 @@
+// Variables
+//
+// Variables should follow the `$component-state-property-size` formula for
+// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.
+
+// Color system
+
+// scss-docs-start gray-color-variables
+$white: #fff !default;
+$gray-100: #f8f9fa !default;
+$gray-200: #e9ecef !default;
+$gray-300: #dee2e6 !default;
+$gray-400: #ced4da !default;
+$gray-500: #adb5bd !default;
+$gray-600: #6c757d !default;
+$gray-700: #495057 !default;
+$gray-800: #343a40 !default;
+$gray-900: #212529 !default;
+$black: #000 !default;
+// scss-docs-end gray-color-variables
+
+// fusv-disable
+// scss-docs-start gray-colors-map
+$grays: (
+ "100": $gray-100,
+ "200": $gray-200,
+ "300": $gray-300,
+ "400": $gray-400,
+ "500": $gray-500,
+ "600": $gray-600,
+ "700": $gray-700,
+ "800": $gray-800,
+ "900": $gray-900
+) !default;
+// scss-docs-end gray-colors-map
+// fusv-enable
+
+// scss-docs-start color-variables
+$blue: #0d6efd !default;
+$indigo: #6610f2 !default;
+$purple: #6f42c1 !default;
+$pink: #d63384 !default;
+$red: #dc3545 !default;
+$orange: #fd7e14 !default;
+$yellow: #ffc107 !default;
+$green: #198754 !default;
+$teal: #20c997 !default;
+$cyan: #0dcaf0 !default;
+// scss-docs-end color-variables
+
+// scss-docs-start colors-map
+$colors: (
+ "blue": $blue,
+ "indigo": $indigo,
+ "purple": $purple,
+ "pink": $pink,
+ "red": $red,
+ "orange": $orange,
+ "yellow": $yellow,
+ "green": $green,
+ "teal": $teal,
+ "cyan": $cyan,
+ "black": $black,
+ "white": $white,
+ "gray": $gray-600,
+ "gray-dark": $gray-800
+) !default;
+// scss-docs-end colors-map
+
+// The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.
+// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast
+$min-contrast-ratio: 4.5 !default;
+
+// Customize the light and dark text colors for use in our color contrast function.
+$color-contrast-dark: $black !default;
+$color-contrast-light: $white !default;
+
+// fusv-disable
+$blue-100: tint-color($blue, 80%) !default;
+$blue-200: tint-color($blue, 60%) !default;
+$blue-300: tint-color($blue, 40%) !default;
+$blue-400: tint-color($blue, 20%) !default;
+$blue-500: $blue !default;
+$blue-600: shade-color($blue, 20%) !default;
+$blue-700: shade-color($blue, 40%) !default;
+$blue-800: shade-color($blue, 60%) !default;
+$blue-900: shade-color($blue, 80%) !default;
+
+$indigo-100: tint-color($indigo, 80%) !default;
+$indigo-200: tint-color($indigo, 60%) !default;
+$indigo-300: tint-color($indigo, 40%) !default;
+$indigo-400: tint-color($indigo, 20%) !default;
+$indigo-500: $indigo !default;
+$indigo-600: shade-color($indigo, 20%) !default;
+$indigo-700: shade-color($indigo, 40%) !default;
+$indigo-800: shade-color($indigo, 60%) !default;
+$indigo-900: shade-color($indigo, 80%) !default;
+
+$purple-100: tint-color($purple, 80%) !default;
+$purple-200: tint-color($purple, 60%) !default;
+$purple-300: tint-color($purple, 40%) !default;
+$purple-400: tint-color($purple, 20%) !default;
+$purple-500: $purple !default;
+$purple-600: shade-color($purple, 20%) !default;
+$purple-700: shade-color($purple, 40%) !default;
+$purple-800: shade-color($purple, 60%) !default;
+$purple-900: shade-color($purple, 80%) !default;
+
+$pink-100: tint-color($pink, 80%) !default;
+$pink-200: tint-color($pink, 60%) !default;
+$pink-300: tint-color($pink, 40%) !default;
+$pink-400: tint-color($pink, 20%) !default;
+$pink-500: $pink !default;
+$pink-600: shade-color($pink, 20%) !default;
+$pink-700: shade-color($pink, 40%) !default;
+$pink-800: shade-color($pink, 60%) !default;
+$pink-900: shade-color($pink, 80%) !default;
+
+$red-100: tint-color($red, 80%) !default;
+$red-200: tint-color($red, 60%) !default;
+$red-300: tint-color($red, 40%) !default;
+$red-400: tint-color($red, 20%) !default;
+$red-500: $red !default;
+$red-600: shade-color($red, 20%) !default;
+$red-700: shade-color($red, 40%) !default;
+$red-800: shade-color($red, 60%) !default;
+$red-900: shade-color($red, 80%) !default;
+
+$orange-100: tint-color($orange, 80%) !default;
+$orange-200: tint-color($orange, 60%) !default;
+$orange-300: tint-color($orange, 40%) !default;
+$orange-400: tint-color($orange, 20%) !default;
+$orange-500: $orange !default;
+$orange-600: shade-color($orange, 20%) !default;
+$orange-700: shade-color($orange, 40%) !default;
+$orange-800: shade-color($orange, 60%) !default;
+$orange-900: shade-color($orange, 80%) !default;
+
+$yellow-100: tint-color($yellow, 80%) !default;
+$yellow-200: tint-color($yellow, 60%) !default;
+$yellow-300: tint-color($yellow, 40%) !default;
+$yellow-400: tint-color($yellow, 20%) !default;
+$yellow-500: $yellow !default;
+$yellow-600: shade-color($yellow, 20%) !default;
+$yellow-700: shade-color($yellow, 40%) !default;
+$yellow-800: shade-color($yellow, 60%) !default;
+$yellow-900: shade-color($yellow, 80%) !default;
+
+$green-100: tint-color($green, 80%) !default;
+$green-200: tint-color($green, 60%) !default;
+$green-300: tint-color($green, 40%) !default;
+$green-400: tint-color($green, 20%) !default;
+$green-500: $green !default;
+$green-600: shade-color($green, 20%) !default;
+$green-700: shade-color($green, 40%) !default;
+$green-800: shade-color($green, 60%) !default;
+$green-900: shade-color($green, 80%) !default;
+
+$teal-100: tint-color($teal, 80%) !default;
+$teal-200: tint-color($teal, 60%) !default;
+$teal-300: tint-color($teal, 40%) !default;
+$teal-400: tint-color($teal, 20%) !default;
+$teal-500: $teal !default;
+$teal-600: shade-color($teal, 20%) !default;
+$teal-700: shade-color($teal, 40%) !default;
+$teal-800: shade-color($teal, 60%) !default;
+$teal-900: shade-color($teal, 80%) !default;
+
+$cyan-100: tint-color($cyan, 80%) !default;
+$cyan-200: tint-color($cyan, 60%) !default;
+$cyan-300: tint-color($cyan, 40%) !default;
+$cyan-400: tint-color($cyan, 20%) !default;
+$cyan-500: $cyan !default;
+$cyan-600: shade-color($cyan, 20%) !default;
+$cyan-700: shade-color($cyan, 40%) !default;
+$cyan-800: shade-color($cyan, 60%) !default;
+$cyan-900: shade-color($cyan, 80%) !default;
+
+$blues: (
+ "blue-100": $blue-100,
+ "blue-200": $blue-200,
+ "blue-300": $blue-300,
+ "blue-400": $blue-400,
+ "blue-500": $blue-500,
+ "blue-600": $blue-600,
+ "blue-700": $blue-700,
+ "blue-800": $blue-800,
+ "blue-900": $blue-900
+) !default;
+
+$indigos: (
+ "indigo-100": $indigo-100,
+ "indigo-200": $indigo-200,
+ "indigo-300": $indigo-300,
+ "indigo-400": $indigo-400,
+ "indigo-500": $indigo-500,
+ "indigo-600": $indigo-600,
+ "indigo-700": $indigo-700,
+ "indigo-800": $indigo-800,
+ "indigo-900": $indigo-900
+) !default;
+
+$purples: (
+ "purple-100": $purple-100,
+ "purple-200": $purple-200,
+ "purple-300": $purple-300,
+ "purple-400": $purple-400,
+ "purple-500": $purple-500,
+ "purple-600": $purple-600,
+ "purple-700": $purple-700,
+ "purple-800": $purple-800,
+ "purple-900": $purple-900
+) !default;
+
+$pinks: (
+ "pink-100": $pink-100,
+ "pink-200": $pink-200,
+ "pink-300": $pink-300,
+ "pink-400": $pink-400,
+ "pink-500": $pink-500,
+ "pink-600": $pink-600,
+ "pink-700": $pink-700,
+ "pink-800": $pink-800,
+ "pink-900": $pink-900
+) !default;
+
+$reds: (
+ "red-100": $red-100,
+ "red-200": $red-200,
+ "red-300": $red-300,
+ "red-400": $red-400,
+ "red-500": $red-500,
+ "red-600": $red-600,
+ "red-700": $red-700,
+ "red-800": $red-800,
+ "red-900": $red-900
+) !default;
+
+$oranges: (
+ "orange-100": $orange-100,
+ "orange-200": $orange-200,
+ "orange-300": $orange-300,
+ "orange-400": $orange-400,
+ "orange-500": $orange-500,
+ "orange-600": $orange-600,
+ "orange-700": $orange-700,
+ "orange-800": $orange-800,
+ "orange-900": $orange-900
+) !default;
+
+$yellows: (
+ "yellow-100": $yellow-100,
+ "yellow-200": $yellow-200,
+ "yellow-300": $yellow-300,
+ "yellow-400": $yellow-400,
+ "yellow-500": $yellow-500,
+ "yellow-600": $yellow-600,
+ "yellow-700": $yellow-700,
+ "yellow-800": $yellow-800,
+ "yellow-900": $yellow-900
+) !default;
+
+$greens: (
+ "green-100": $green-100,
+ "green-200": $green-200,
+ "green-300": $green-300,
+ "green-400": $green-400,
+ "green-500": $green-500,
+ "green-600": $green-600,
+ "green-700": $green-700,
+ "green-800": $green-800,
+ "green-900": $green-900
+) !default;
+
+$teals: (
+ "teal-100": $teal-100,
+ "teal-200": $teal-200,
+ "teal-300": $teal-300,
+ "teal-400": $teal-400,
+ "teal-500": $teal-500,
+ "teal-600": $teal-600,
+ "teal-700": $teal-700,
+ "teal-800": $teal-800,
+ "teal-900": $teal-900
+) !default;
+
+$cyans: (
+ "cyan-100": $cyan-100,
+ "cyan-200": $cyan-200,
+ "cyan-300": $cyan-300,
+ "cyan-400": $cyan-400,
+ "cyan-500": $cyan-500,
+ "cyan-600": $cyan-600,
+ "cyan-700": $cyan-700,
+ "cyan-800": $cyan-800,
+ "cyan-900": $cyan-900
+) !default;
+// fusv-enable
+
+// scss-docs-start theme-color-variables
+$primary: $blue !default;
+$secondary: $gray-600 !default;
+$success: $green !default;
+$info: $cyan !default;
+$warning: $yellow !default;
+$danger: $red !default;
+$light: $gray-100 !default;
+$dark: $gray-900 !default;
+// scss-docs-end theme-color-variables
+
+// scss-docs-start theme-colors-map
+$theme-colors: (
+ "primary": $primary,
+ "secondary": $secondary,
+ "success": $success,
+ "info": $info,
+ "warning": $warning,
+ "danger": $danger,
+ "light": $light,
+ "dark": $dark
+) !default;
+// scss-docs-end theme-colors-map
+
+// Characters which are escaped by the escape-svg function
+$escaped-characters: (
+ ("<", "%3c"),
+ (">", "%3e"),
+ ("#", "%23"),
+ ("(", "%28"),
+ (")", "%29"),
+) !default;
+
+// Options
+//
+// Quickly modify global styling by enabling or disabling optional features.
+
+$enable-caret: true !default;
+$enable-rounded: true !default;
+$enable-shadows: false !default;
+$enable-gradients: false !default;
+$enable-transitions: true !default;
+$enable-reduced-motion: true !default;
+$enable-smooth-scroll: true !default;
+$enable-grid-classes: true !default;
+$enable-container-classes: true !default;
+$enable-cssgrid: false !default;
+$enable-button-pointers: true !default;
+$enable-rfs: true !default;
+$enable-validation-icons: true !default;
+$enable-negative-margins: false !default;
+$enable-deprecation-messages: true !default;
+$enable-important-utilities: true !default;
+
+// Prefix for :root CSS variables
+
+$variable-prefix: bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`
+$prefix: $variable-prefix !default;
+
+// Gradient
+//
+// The gradient which is added to components if `$enable-gradients` is `true`
+// This gradient is also added to elements with `.bg-gradient`
+// scss-docs-start variable-gradient
+$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;
+// scss-docs-end variable-gradient
+
+// Spacing
+//
+// Control the default styling of most Bootstrap elements by modifying these
+// variables. Mostly focused on spacing.
+// You can add more entries to the $spacers map, should you need more variation.
+
+// scss-docs-start spacer-variables-maps
+$spacer: 1rem !default;
+$spacers: (
+ 0: 0,
+ 1: $spacer * .25,
+ 2: $spacer * .5,
+ 3: $spacer,
+ 4: $spacer * 1.5,
+ 5: $spacer * 3,
+) !default;
+// scss-docs-end spacer-variables-maps
+
+// Position
+//
+// Define the edge positioning anchors of the position utilities.
+
+// scss-docs-start position-map
+$position-values: (
+ 0: 0,
+ 50: 50%,
+ 100: 100%
+) !default;
+// scss-docs-end position-map
+
+// Body
+//
+// Settings for the `<body>` element.
+
+$body-bg: $white !default;
+$body-color: $gray-900 !default;
+$body-text-align: null !default;
+
+// Links
+//
+// Style anchor elements.
+
+$link-color: $primary !default;
+$link-decoration: underline !default;
+$link-shade-percentage: 20% !default;
+$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;
+$link-hover-decoration: null !default;
+
+$stretched-link-pseudo-element: after !default;
+$stretched-link-z-index: 1 !default;
+
+// Paragraphs
+//
+// Style p element.
+
+$paragraph-margin-bottom: 1rem !default;
+
+
+// Grid breakpoints
+//
+// Define the minimum dimensions at which your layout will change,
+// adapting to different screen sizes, for use in media queries.
+
+// scss-docs-start grid-breakpoints
+$grid-breakpoints: (
+ xs: 0,
+ sm: 576px,
+ md: 768px,
+ lg: 992px,
+ xl: 1200px,
+ xxl: 1400px
+) !default;
+// scss-docs-end grid-breakpoints
+
+@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
+@include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");
+
+
+// Grid containers
+//
+// Define the maximum width of `.container` for different screen sizes.
+
+// scss-docs-start container-max-widths
+$container-max-widths: (
+ sm: 540px,
+ md: 720px,
+ lg: 960px,
+ xl: 1140px,
+ xxl: 1320px
+) !default;
+// scss-docs-end container-max-widths
+
+@include _assert-ascending($container-max-widths, "$container-max-widths");
+
+
+// Grid columns
+//
+// Set the number of columns and specify the width of the gutters.
+
+$grid-columns: 12 !default;
+$grid-gutter-width: 1.5rem !default;
+$grid-row-columns: 6 !default;
+
+// Container padding
+
+$container-padding-x: $grid-gutter-width !default;
+
+
+// Components
+//
+// Define common padding and border radius sizes and more.
+
+// scss-docs-start border-variables
+$border-width: 1px !default;
+$border-widths: (
+ 1: 1px,
+ 2: 2px,
+ 3: 3px,
+ 4: 4px,
+ 5: 5px
+) !default;
+
+$border-style: solid !default;
+$border-color: $gray-300 !default;
+$border-color-translucent: rgba($black, .175) !default;
+// scss-docs-end border-variables
+
+// scss-docs-start border-radius-variables
+$border-radius: .375rem !default;
+$border-radius-sm: .25rem !default;
+$border-radius-lg: .5rem !default;
+$border-radius-xl: 1rem !default;
+$border-radius-2xl: 2rem !default;
+$border-radius-pill: 50rem !default;
+// scss-docs-end border-radius-variables
+
+// scss-docs-start box-shadow-variables
+$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;
+$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;
+$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;
+$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;
+// scss-docs-end box-shadow-variables
+
+$component-active-color: $white !default;
+$component-active-bg: $primary !default;
+
+// scss-docs-start caret-variables
+$caret-width: .3em !default;
+$caret-vertical-align: $caret-width * .85 !default;
+$caret-spacing: $caret-width * .85 !default;
+// scss-docs-end caret-variables
+
+$transition-base: all .2s ease-in-out !default;
+$transition-fade: opacity .15s linear !default;
+// scss-docs-start collapse-transition
+$transition-collapse: height .35s ease !default;
+$transition-collapse-width: width .35s ease !default;
+// scss-docs-end collapse-transition
+
+// stylelint-disable function-disallowed-list
+// scss-docs-start aspect-ratios
+$aspect-ratios: (
+ "1x1": 100%,
+ "4x3": calc(3 / 4 * 100%),
+ "16x9": calc(9 / 16 * 100%),
+ "21x9": calc(9 / 21 * 100%)
+) !default;
+// scss-docs-end aspect-ratios
+// stylelint-enable function-disallowed-list
+
+// Typography
+//
+// Font, line-height, and color for body text, headings, and more.
+
+// scss-docs-start font-variables
+// stylelint-disable value-keyword-case
+$font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
+$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
+// stylelint-enable value-keyword-case
+$font-family-base: var(--#{$prefix}font-sans-serif) !default;
+$font-family-code: var(--#{$prefix}font-monospace) !default;
+
+// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins
+// $font-size-base affects the font size of the body text
+$font-size-root: null !default;
+$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
+$font-size-sm: $font-size-base * .875 !default;
+$font-size-lg: $font-size-base * 1.25 !default;
+
+$font-weight-lighter: lighter !default;
+$font-weight-light: 300 !default;
+$font-weight-normal: 400 !default;
+$font-weight-semibold: 600 !default;
+$font-weight-bold: 700 !default;
+$font-weight-bolder: bolder !default;
+
+$font-weight-base: $font-weight-normal !default;
+
+$line-height-base: 1.5 !default;
+$line-height-sm: 1.25 !default;
+$line-height-lg: 2 !default;
+
+$h1-font-size: $font-size-base * 2.5 !default;
+$h2-font-size: $font-size-base * 2 !default;
+$h3-font-size: $font-size-base * 1.75 !default;
+$h4-font-size: $font-size-base * 1.5 !default;
+$h5-font-size: $font-size-base * 1.25 !default;
+$h6-font-size: $font-size-base !default;
+// scss-docs-end font-variables
+
+// scss-docs-start font-sizes
+$font-sizes: (
+ 1: $h1-font-size,
+ 2: $h2-font-size,
+ 3: $h3-font-size,
+ 4: $h4-font-size,
+ 5: $h5-font-size,
+ 6: $h6-font-size
+) !default;
+// scss-docs-end font-sizes
+
+// scss-docs-start headings-variables
+$headings-margin-bottom: $spacer * .5 !default;
+$headings-font-family: null !default;
+$headings-font-style: null !default;
+$headings-font-weight: 500 !default;
+$headings-line-height: 1.2 !default;
+$headings-color: null !default;
+// scss-docs-end headings-variables
+
+// scss-docs-start display-headings
+$display-font-sizes: (
+ 1: 5rem,
+ 2: 4.5rem,
+ 3: 4rem,
+ 4: 3.5rem,
+ 5: 3rem,
+ 6: 2.5rem
+) !default;
+
+$display-font-family: null !default;
+$display-font-style: null !default;
+$display-font-weight: 300 !default;
+$display-line-height: $headings-line-height !default;
+// scss-docs-end display-headings
+
+// scss-docs-start type-variables
+$lead-font-size: $font-size-base * 1.25 !default;
+$lead-font-weight: 300 !default;
+
+$small-font-size: .875em !default;
+
+$sub-sup-font-size: .75em !default;
+
+$text-muted: $gray-600 !default;
+
+$initialism-font-size: $small-font-size !default;
+
+$blockquote-margin-y: $spacer !default;
+$blockquote-font-size: $font-size-base * 1.25 !default;
+$blockquote-footer-color: $gray-600 !default;
+$blockquote-footer-font-size: $small-font-size !default;
+
+$hr-margin-y: $spacer !default;
+$hr-color: inherit !default;
+
+// fusv-disable
+$hr-bg-color: null !default; // Deprecated in v5.2.0
+$hr-height: null !default; // Deprecated in v5.2.0
+// fusv-enable
+
+$hr-border-color: null !default; // Allows for inherited colors
+$hr-border-width: $border-width !default;
+$hr-opacity: .25 !default;
+
+$legend-margin-bottom: .5rem !default;
+$legend-font-size: 1.5rem !default;
+$legend-font-weight: null !default;
+
+$dt-font-weight: $font-weight-bold !default;
+
+$list-inline-padding: .5rem !default;
+
+$mark-padding: .1875em !default;
+$mark-bg: $yellow-100 !default;
+// scss-docs-end type-variables
+
+
+// Tables
+//
+// Customizes the `.table` component with basic values, each used across all table variations.
+
+// scss-docs-start table-variables
+$table-cell-padding-y: .5rem !default;
+$table-cell-padding-x: .5rem !default;
+$table-cell-padding-y-sm: .25rem !default;
+$table-cell-padding-x-sm: .25rem !default;
+
+$table-cell-vertical-align: top !default;
+
+$table-color: var(--#{$prefix}body-color) !default;
+$table-bg: transparent !default;
+$table-accent-bg: transparent !default;
+
+$table-th-font-weight: null !default;
+
+$table-striped-color: $table-color !default;
+$table-striped-bg-factor: .05 !default;
+$table-striped-bg: rgba($black, $table-striped-bg-factor) !default;
+
+$table-active-color: $table-color !default;
+$table-active-bg-factor: .1 !default;
+$table-active-bg: rgba($black, $table-active-bg-factor) !default;
+
+$table-hover-color: $table-color !default;
+$table-hover-bg-factor: .075 !default;
+$table-hover-bg: rgba($black, $table-hover-bg-factor) !default;
+
+$table-border-factor: .1 !default;
+$table-border-width: $border-width !default;
+$table-border-color: var(--#{$prefix}border-color) !default;
+
+$table-striped-order: odd !default;
+$table-striped-columns-order: even !default;
+
+$table-group-separator-color: currentcolor !default;
+
+$table-caption-color: $text-muted !default;
+
+$table-bg-scale: -80% !default;
+// scss-docs-end table-variables
+
+// scss-docs-start table-loop
+$table-variants: (
+ "primary": shift-color($primary, $table-bg-scale),
+ "secondary": shift-color($secondary, $table-bg-scale),
+ "success": shift-color($success, $table-bg-scale),
+ "info": shift-color($info, $table-bg-scale),
+ "warning": shift-color($warning, $table-bg-scale),
+ "danger": shift-color($danger, $table-bg-scale),
+ "light": $light,
+ "dark": $dark,
+) !default;
+// scss-docs-end table-loop
+
+
+// Buttons + Forms
+//
+// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.
+
+// scss-docs-start input-btn-variables
+$input-btn-padding-y: .375rem !default;
+$input-btn-padding-x: .75rem !default;
+$input-btn-font-family: null !default;
+$input-btn-font-size: $font-size-base !default;
+$input-btn-line-height: $line-height-base !default;
+
+$input-btn-focus-width: .25rem !default;
+$input-btn-focus-color-opacity: .25 !default;
+$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default;
+$input-btn-focus-blur: 0 !default;
+$input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default;
+
+$input-btn-padding-y-sm: .25rem !default;
+$input-btn-padding-x-sm: .5rem !default;
+$input-btn-font-size-sm: $font-size-sm !default;
+
+$input-btn-padding-y-lg: .5rem !default;
+$input-btn-padding-x-lg: 1rem !default;
+$input-btn-font-size-lg: $font-size-lg !default;
+
+$input-btn-border-width: $border-width !default;
+// scss-docs-end input-btn-variables
+
+
+// Buttons
+//
+// For each of Bootstrap's buttons, define text, background, and border color.
+
+// scss-docs-start btn-variables
+$btn-padding-y: $input-btn-padding-y !default;
+$btn-padding-x: $input-btn-padding-x !default;
+$btn-font-family: $input-btn-font-family !default;
+$btn-font-size: $input-btn-font-size !default;
+$btn-line-height: $input-btn-line-height !default;
+$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping
+
+$btn-padding-y-sm: $input-btn-padding-y-sm !default;
+$btn-padding-x-sm: $input-btn-padding-x-sm !default;
+$btn-font-size-sm: $input-btn-font-size-sm !default;
+
+$btn-padding-y-lg: $input-btn-padding-y-lg !default;
+$btn-padding-x-lg: $input-btn-padding-x-lg !default;
+$btn-font-size-lg: $input-btn-font-size-lg !default;
+
+$btn-border-width: $input-btn-border-width !default;
+
+$btn-font-weight: $font-weight-normal !default;
+$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;
+$btn-focus-width: $input-btn-focus-width !default;
+$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;
+$btn-disabled-opacity: .65 !default;
+$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;
+
+$btn-link-color: var(--#{$prefix}link-color) !default;
+$btn-link-hover-color: var(--#{$prefix}link-hover-color) !default;
+$btn-link-disabled-color: $gray-600 !default;
+
+// Allows for customizing button radius independently from global border radius
+$btn-border-radius: $border-radius !default;
+$btn-border-radius-sm: $border-radius-sm !default;
+$btn-border-radius-lg: $border-radius-lg !default;
+
+$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+$btn-hover-bg-shade-amount: 15% !default;
+$btn-hover-bg-tint-amount: 15% !default;
+$btn-hover-border-shade-amount: 20% !default;
+$btn-hover-border-tint-amount: 10% !default;
+$btn-active-bg-shade-amount: 20% !default;
+$btn-active-bg-tint-amount: 20% !default;
+$btn-active-border-shade-amount: 25% !default;
+$btn-active-border-tint-amount: 10% !default;
+// scss-docs-end btn-variables
+
+
+// Forms
+
+// scss-docs-start form-text-variables
+$form-text-margin-top: .25rem !default;
+$form-text-font-size: $small-font-size !default;
+$form-text-font-style: null !default;
+$form-text-font-weight: null !default;
+$form-text-color: $text-muted !default;
+// scss-docs-end form-text-variables
+
+// scss-docs-start form-label-variables
+$form-label-margin-bottom: .5rem !default;
+$form-label-font-size: null !default;
+$form-label-font-style: null !default;
+$form-label-font-weight: null !default;
+$form-label-color: null !default;
+// scss-docs-end form-label-variables
+
+// scss-docs-start form-input-variables
+$input-padding-y: $input-btn-padding-y !default;
+$input-padding-x: $input-btn-padding-x !default;
+$input-font-family: $input-btn-font-family !default;
+$input-font-size: $input-btn-font-size !default;
+$input-font-weight: $font-weight-base !default;
+$input-line-height: $input-btn-line-height !default;
+
+$input-padding-y-sm: $input-btn-padding-y-sm !default;
+$input-padding-x-sm: $input-btn-padding-x-sm !default;
+$input-font-size-sm: $input-btn-font-size-sm !default;
+
+$input-padding-y-lg: $input-btn-padding-y-lg !default;
+$input-padding-x-lg: $input-btn-padding-x-lg !default;
+$input-font-size-lg: $input-btn-font-size-lg !default;
+
+$input-bg: $body-bg !default;
+$input-disabled-color: null !default;
+$input-disabled-bg: $gray-200 !default;
+$input-disabled-border-color: null !default;
+
+$input-color: $body-color !default;
+$input-border-color: $gray-400 !default;
+$input-border-width: $input-btn-border-width !default;
+$input-box-shadow: $box-shadow-inset !default;
+
+$input-border-radius: $border-radius !default;
+$input-border-radius-sm: $border-radius-sm !default;
+$input-border-radius-lg: $border-radius-lg !default;
+
+$input-focus-bg: $input-bg !default;
+$input-focus-border-color: tint-color($component-active-bg, 50%) !default;
+$input-focus-color: $input-color !default;
+$input-focus-width: $input-btn-focus-width !default;
+$input-focus-box-shadow: $input-btn-focus-box-shadow !default;
+
+$input-placeholder-color: $gray-600 !default;
+$input-plaintext-color: $body-color !default;
+
+$input-height-border: $input-border-width * 2 !default;
+
+$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;
+$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;
+$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;
+
+$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;
+$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;
+$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;
+
+$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+$form-color-width: 3rem !default;
+// scss-docs-end form-input-variables
+
+// scss-docs-start form-check-variables
+$form-check-input-width: 1em !default;
+$form-check-min-height: $font-size-base * $line-height-base !default;
+$form-check-padding-start: $form-check-input-width + .5em !default;
+$form-check-margin-bottom: .125rem !default;
+$form-check-label-color: null !default;
+$form-check-label-cursor: null !default;
+$form-check-transition: null !default;
+
+$form-check-input-active-filter: brightness(90%) !default;
+
+$form-check-input-bg: $input-bg !default;
+$form-check-input-border: 1px solid rgba($black, .25) !default;
+$form-check-input-border-radius: .25em !default;
+$form-check-radio-border-radius: 50% !default;
+$form-check-input-focus-border: $input-focus-border-color !default;
+$form-check-input-focus-box-shadow: $input-btn-focus-box-shadow !default;
+
+$form-check-input-checked-color: $component-active-color !default;
+$form-check-input-checked-bg-color: $component-active-bg !default;
+$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;
+$form-check-input-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-checked-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/></svg>") !default;
+$form-check-radio-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$form-check-input-checked-color}'/></svg>") !default;
+
+$form-check-input-indeterminate-color: $component-active-color !default;
+$form-check-input-indeterminate-bg-color: $component-active-bg !default;
+$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;
+$form-check-input-indeterminate-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/></svg>") !default;
+
+$form-check-input-disabled-opacity: .5 !default;
+$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;
+$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;
+
+$form-check-inline-margin-end: 1rem !default;
+// scss-docs-end form-check-variables
+
+// scss-docs-start form-switch-variables
+$form-switch-color: rgba($black, .25) !default;
+$form-switch-width: 2em !default;
+$form-switch-padding-start: $form-switch-width + .5em !default;
+$form-switch-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color}'/></svg>") !default;
+$form-switch-border-radius: $form-switch-width !default;
+$form-switch-transition: background-position .15s ease-in-out !default;
+
+$form-switch-focus-color: $input-focus-border-color !default;
+$form-switch-focus-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-focus-color}'/></svg>") !default;
+
+$form-switch-checked-color: $component-active-color !default;
+$form-switch-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-checked-color}'/></svg>") !default;
+$form-switch-checked-bg-position: right center !default;
+// scss-docs-end form-switch-variables
+
+// scss-docs-start input-group-variables
+$input-group-addon-padding-y: $input-padding-y !default;
+$input-group-addon-padding-x: $input-padding-x !default;
+$input-group-addon-font-weight: $input-font-weight !default;
+$input-group-addon-color: $input-color !default;
+$input-group-addon-bg: $gray-200 !default;
+$input-group-addon-border-color: $input-border-color !default;
+// scss-docs-end input-group-variables
+
+// scss-docs-start form-select-variables
+$form-select-padding-y: $input-padding-y !default;
+$form-select-padding-x: $input-padding-x !default;
+$form-select-font-family: $input-font-family !default;
+$form-select-font-size: $input-font-size !default;
+$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image
+$form-select-font-weight: $input-font-weight !default;
+$form-select-line-height: $input-line-height !default;
+$form-select-color: $input-color !default;
+$form-select-bg: $input-bg !default;
+$form-select-disabled-color: null !default;
+$form-select-disabled-bg: $gray-200 !default;
+$form-select-disabled-border-color: $input-disabled-border-color !default;
+$form-select-bg-position: right $form-select-padding-x center !default;
+$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions
+$form-select-indicator-color: $gray-800 !default;
+$form-select-indicator: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>") !default;
+
+$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;
+$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;
+$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
+
+$form-select-border-width: $input-border-width !default;
+$form-select-border-color: $input-border-color !default;
+$form-select-border-radius: $input-border-radius !default;
+$form-select-box-shadow: $box-shadow-inset !default;
+
+$form-select-focus-border-color: $input-focus-border-color !default;
+$form-select-focus-width: $input-focus-width !default;
+$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;
+
+$form-select-padding-y-sm: $input-padding-y-sm !default;
+$form-select-padding-x-sm: $input-padding-x-sm !default;
+$form-select-font-size-sm: $input-font-size-sm !default;
+$form-select-border-radius-sm: $input-border-radius-sm !default;
+
+$form-select-padding-y-lg: $input-padding-y-lg !default;
+$form-select-padding-x-lg: $input-padding-x-lg !default;
+$form-select-font-size-lg: $input-font-size-lg !default;
+$form-select-border-radius-lg: $input-border-radius-lg !default;
+
+$form-select-transition: $input-transition !default;
+// scss-docs-end form-select-variables
+
+// scss-docs-start form-range-variables
+$form-range-track-width: 100% !default;
+$form-range-track-height: .5rem !default;
+$form-range-track-cursor: pointer !default;
+$form-range-track-bg: $gray-300 !default;
+$form-range-track-border-radius: 1rem !default;
+$form-range-track-box-shadow: $box-shadow-inset !default;
+
+$form-range-thumb-width: 1rem !default;
+$form-range-thumb-height: $form-range-thumb-width !default;
+$form-range-thumb-bg: $component-active-bg !default;
+$form-range-thumb-border: 0 !default;
+$form-range-thumb-border-radius: 1rem !default;
+$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;
+$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;
+$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge
+$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;
+$form-range-thumb-disabled-bg: $gray-500 !default;
+$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+// scss-docs-end form-range-variables
+
+// scss-docs-start form-file-variables
+$form-file-button-color: $input-color !default;
+$form-file-button-bg: $input-group-addon-bg !default;
+$form-file-button-hover-bg: shade-color($form-file-button-bg, 5%) !default;
+// scss-docs-end form-file-variables
+
+// scss-docs-start form-floating-variables
+$form-floating-height: add(3.5rem, $input-height-border) !default;
+$form-floating-line-height: 1.25 !default;
+$form-floating-padding-x: $input-padding-x !default;
+$form-floating-padding-y: 1rem !default;
+$form-floating-input-padding-t: 1.625rem !default;
+$form-floating-input-padding-b: .625rem !default;
+$form-floating-label-opacity: .65 !default;
+$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;
+$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;
+// scss-docs-end form-floating-variables
+
+// Form validation
+
+// scss-docs-start form-feedback-variables
+$form-feedback-margin-top: $form-text-margin-top !default;
+$form-feedback-font-size: $form-text-font-size !default;
+$form-feedback-font-style: $form-text-font-style !default;
+$form-feedback-valid-color: $success !default;
+$form-feedback-invalid-color: $danger !default;
+
+$form-feedback-icon-valid-color: $form-feedback-valid-color !default;
+$form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>") !default;
+$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
+$form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default;
+// scss-docs-end form-feedback-variables
+
+// scss-docs-start form-validation-states
+$form-validation-states: (
+ "valid": (
+ "color": $form-feedback-valid-color,
+ "icon": $form-feedback-icon-valid
+ ),
+ "invalid": (
+ "color": $form-feedback-invalid-color,
+ "icon": $form-feedback-icon-invalid
+ )
+) !default;
+// scss-docs-end form-validation-states
+
+// Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+
+// scss-docs-start zindex-stack
+$zindex-dropdown: 1000 !default;
+$zindex-sticky: 1020 !default;
+$zindex-fixed: 1030 !default;
+$zindex-offcanvas-backdrop: 1040 !default;
+$zindex-offcanvas: 1045 !default;
+$zindex-modal-backdrop: 1050 !default;
+$zindex-modal: 1055 !default;
+$zindex-popover: 1070 !default;
+$zindex-tooltip: 1080 !default;
+$zindex-toast: 1090 !default;
+// scss-docs-end zindex-stack
+
+
+// Navs
+
+// scss-docs-start nav-variables
+$nav-link-padding-y: .5rem !default;
+$nav-link-padding-x: 1rem !default;
+$nav-link-font-size: null !default;
+$nav-link-font-weight: null !default;
+$nav-link-color: var(--#{$prefix}link-color) !default;
+$nav-link-hover-color: var(--#{$prefix}link-hover-color) !default;
+$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;
+$nav-link-disabled-color: $gray-600 !default;
+
+$nav-tabs-border-color: $gray-300 !default;
+$nav-tabs-border-width: $border-width !default;
+$nav-tabs-border-radius: $border-radius !default;
+$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;
+$nav-tabs-link-active-color: $gray-700 !default;
+$nav-tabs-link-active-bg: $body-bg !default;
+$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;
+
+$nav-pills-border-radius: $border-radius !default;
+$nav-pills-link-active-color: $component-active-color !default;
+$nav-pills-link-active-bg: $component-active-bg !default;
+// scss-docs-end nav-variables
+
+
+// Navbar
+
+// scss-docs-start navbar-variables
+$navbar-padding-y: $spacer * .5 !default;
+$navbar-padding-x: null !default;
+
+$navbar-nav-link-padding-x: .5rem !default;
+
+$navbar-brand-font-size: $font-size-lg !default;
+// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
+$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
+$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
+$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;
+$navbar-brand-margin-end: 1rem !default;
+
+$navbar-toggler-padding-y: .25rem !default;
+$navbar-toggler-padding-x: .75rem !default;
+$navbar-toggler-font-size: $font-size-lg !default;
+$navbar-toggler-border-radius: $btn-border-radius !default;
+$navbar-toggler-focus-width: $btn-focus-width !default;
+$navbar-toggler-transition: box-shadow .15s ease-in-out !default;
+
+$navbar-light-color: rgba($black, .55) !default;
+$navbar-light-hover-color: rgba($black, .7) !default;
+$navbar-light-active-color: rgba($black, .9) !default;
+$navbar-light-disabled-color: rgba($black, .3) !default;
+$navbar-light-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>") !default;
+$navbar-light-toggler-border-color: rgba($black, .1) !default;
+$navbar-light-brand-color: $navbar-light-active-color !default;
+$navbar-light-brand-hover-color: $navbar-light-active-color !default;
+// scss-docs-end navbar-variables
+
+// scss-docs-start navbar-dark-variables
+$navbar-dark-color: rgba($white, .55) !default;
+$navbar-dark-hover-color: rgba($white, .75) !default;
+$navbar-dark-active-color: $white !default;
+$navbar-dark-disabled-color: rgba($white, .25) !default;
+$navbar-dark-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>") !default;
+$navbar-dark-toggler-border-color: rgba($white, .1) !default;
+$navbar-dark-brand-color: $navbar-dark-active-color !default;
+$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
+// scss-docs-end navbar-dark-variables
+
+
+// Dropdowns
+//
+// Dropdown menu container and contents.
+
+// scss-docs-start dropdown-variables
+$dropdown-min-width: 10rem !default;
+$dropdown-padding-x: 0 !default;
+$dropdown-padding-y: .5rem !default;
+$dropdown-spacer: .125rem !default;
+$dropdown-font-size: $font-size-base !default;
+$dropdown-color: $body-color !default;
+$dropdown-bg: $white !default;
+$dropdown-border-color: var(--#{$prefix}border-color-translucent) !default;
+$dropdown-border-radius: $border-radius !default;
+$dropdown-border-width: $border-width !default;
+$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;
+$dropdown-divider-bg: $dropdown-border-color !default;
+$dropdown-divider-margin-y: $spacer * .5 !default;
+$dropdown-box-shadow: $box-shadow !default;
+
+$dropdown-link-color: $gray-900 !default;
+$dropdown-link-hover-color: shade-color($dropdown-link-color, 10%) !default;
+$dropdown-link-hover-bg: $gray-200 !default;
+
+$dropdown-link-active-color: $component-active-color !default;
+$dropdown-link-active-bg: $component-active-bg !default;
+
+$dropdown-link-disabled-color: $gray-500 !default;
+
+$dropdown-item-padding-y: $spacer * .25 !default;
+$dropdown-item-padding-x: $spacer !default;
+
+$dropdown-header-color: $gray-600 !default;
+$dropdown-header-padding-x: $dropdown-item-padding-x !default;
+$dropdown-header-padding-y: $dropdown-padding-y !default;
+// fusv-disable
+$dropdown-header-padding: $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0
+// fusv-enable
+// scss-docs-end dropdown-variables
+
+// scss-docs-start dropdown-dark-variables
+$dropdown-dark-color: $gray-300 !default;
+$dropdown-dark-bg: $gray-800 !default;
+$dropdown-dark-border-color: $dropdown-border-color !default;
+$dropdown-dark-divider-bg: $dropdown-divider-bg !default;
+$dropdown-dark-box-shadow: null !default;
+$dropdown-dark-link-color: $dropdown-dark-color !default;
+$dropdown-dark-link-hover-color: $white !default;
+$dropdown-dark-link-hover-bg: rgba($white, .15) !default;
+$dropdown-dark-link-active-color: $dropdown-link-active-color !default;
+$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;
+$dropdown-dark-link-disabled-color: $gray-500 !default;
+$dropdown-dark-header-color: $gray-500 !default;
+// scss-docs-end dropdown-dark-variables
+
+
+// Pagination
+
+// scss-docs-start pagination-variables
+$pagination-padding-y: .375rem !default;
+$pagination-padding-x: .75rem !default;
+$pagination-padding-y-sm: .25rem !default;
+$pagination-padding-x-sm: .5rem !default;
+$pagination-padding-y-lg: .75rem !default;
+$pagination-padding-x-lg: 1.5rem !default;
+
+$pagination-font-size: $font-size-base !default;
+
+$pagination-color: var(--#{$prefix}link-color) !default;
+$pagination-bg: $white !default;
+$pagination-border-radius: $border-radius !default;
+$pagination-border-width: $border-width !default;
+$pagination-margin-start: ($pagination-border-width * -1) !default;
+$pagination-border-color: $gray-300 !default;
+
+$pagination-focus-color: var(--#{$prefix}link-hover-color) !default;
+$pagination-focus-bg: $gray-200 !default;
+$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
+$pagination-focus-outline: 0 !default;
+
+$pagination-hover-color: var(--#{$prefix}link-hover-color) !default;
+$pagination-hover-bg: $gray-200 !default;
+$pagination-hover-border-color: $gray-300 !default;
+
+$pagination-active-color: $component-active-color !default;
+$pagination-active-bg: $component-active-bg !default;
+$pagination-active-border-color: $pagination-active-bg !default;
+
+$pagination-disabled-color: $gray-600 !default;
+$pagination-disabled-bg: $white !default;
+$pagination-disabled-border-color: $gray-300 !default;
+
+$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+$pagination-border-radius-sm: $border-radius-sm !default;
+$pagination-border-radius-lg: $border-radius-lg !default;
+// scss-docs-end pagination-variables
+
+
+// Placeholders
+
+// scss-docs-start placeholders
+$placeholder-opacity-max: .5 !default;
+$placeholder-opacity-min: .2 !default;
+// scss-docs-end placeholders
+
+// Cards
+
+// scss-docs-start card-variables
+$card-spacer-y: $spacer !default;
+$card-spacer-x: $spacer !default;
+$card-title-spacer-y: $spacer * .5 !default;
+$card-border-width: $border-width !default;
+$card-border-color: var(--#{$prefix}border-color-translucent) !default;
+$card-border-radius: $border-radius !default;
+$card-box-shadow: null !default;
+$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;
+$card-cap-padding-y: $card-spacer-y * .5 !default;
+$card-cap-padding-x: $card-spacer-x !default;
+$card-cap-bg: rgba($black, .03) !default;
+$card-cap-color: null !default;
+$card-height: null !default;
+$card-color: null !default;
+$card-bg: $white !default;
+$card-img-overlay-padding: $spacer !default;
+$card-group-margin: $grid-gutter-width * .5 !default;
+// scss-docs-end card-variables
+
+// Accordion
+
+// scss-docs-start accordion-variables
+$accordion-padding-y: 1rem !default;
+$accordion-padding-x: 1.25rem !default;
+$accordion-color: var(--#{$prefix}body-color) !default;
+$accordion-bg: $body-bg !default;
+$accordion-border-width: $border-width !default;
+$accordion-border-color: var(--#{$prefix}border-color) !default;
+$accordion-border-radius: $border-radius !default;
+$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;
+
+$accordion-body-padding-y: $accordion-padding-y !default;
+$accordion-body-padding-x: $accordion-padding-x !default;
+
+$accordion-button-padding-y: $accordion-padding-y !default;
+$accordion-button-padding-x: $accordion-padding-x !default;
+$accordion-button-color: $accordion-color !default;
+$accordion-button-bg: var(--#{$prefix}accordion-bg) !default;
+$accordion-transition: $btn-transition, border-radius .15s ease !default;
+$accordion-button-active-bg: tint-color($component-active-bg, 90%) !default;
+$accordion-button-active-color: shade-color($primary, 10%) !default;
+
+$accordion-button-focus-border-color: $input-focus-border-color !default;
+$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;
+
+$accordion-icon-width: 1.25rem !default;
+$accordion-icon-color: $accordion-button-color !default;
+$accordion-icon-active-color: $accordion-button-active-color !default;
+$accordion-icon-transition: transform .2s ease-in-out !default;
+$accordion-icon-transform: rotate(-180deg) !default;
+
+$accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
+$accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
+// scss-docs-end accordion-variables
+
+// Tooltips
+
+// scss-docs-start tooltip-variables
+$tooltip-font-size: $font-size-sm !default;
+$tooltip-max-width: 200px !default;
+$tooltip-color: $white !default;
+$tooltip-bg: $black !default;
+$tooltip-border-radius: $border-radius !default;
+$tooltip-opacity: .9 !default;
+$tooltip-padding-y: $spacer * .25 !default;
+$tooltip-padding-x: $spacer * .5 !default;
+$tooltip-margin: null !default; // TODO: remove this in v6
+
+$tooltip-arrow-width: .8rem !default;
+$tooltip-arrow-height: .4rem !default;
+// fusv-disable
+$tooltip-arrow-color: null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables
+// fusv-enable
+// scss-docs-end tooltip-variables
+
+// Form tooltips must come after regular tooltips
+// scss-docs-start tooltip-feedback-variables
+$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;
+$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;
+$form-feedback-tooltip-font-size: $tooltip-font-size !default;
+$form-feedback-tooltip-line-height: null !default;
+$form-feedback-tooltip-opacity: $tooltip-opacity !default;
+$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;
+// scss-docs-end tooltip-feedback-variables
+
+
+// Popovers
+
+// scss-docs-start popover-variables
+$popover-font-size: $font-size-sm !default;
+$popover-bg: $white !default;
+$popover-max-width: 276px !default;
+$popover-border-width: $border-width !default;
+$popover-border-color: var(--#{$prefix}border-color-translucent) !default;
+$popover-border-radius: $border-radius-lg !default;
+$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;
+$popover-box-shadow: $box-shadow !default;
+
+$popover-header-font-size: $font-size-base !default;
+$popover-header-bg: shade-color($popover-bg, 6%) !default;
+$popover-header-color: $headings-color !default;
+$popover-header-padding-y: .5rem !default;
+$popover-header-padding-x: $spacer !default;
+
+$popover-body-color: $body-color !default;
+$popover-body-padding-y: $spacer !default;
+$popover-body-padding-x: $spacer !default;
+
+$popover-arrow-width: 1rem !default;
+$popover-arrow-height: .5rem !default;
+// scss-docs-end popover-variables
+
+// fusv-disable
+// Deprecated in Bootstrap 5.2.0 for CSS variables
+$popover-arrow-color: $popover-bg !default;
+$popover-arrow-outer-color: var(--#{$prefix}border-color-translucent) !default;
+// fusv-enable
+
+
+// Toasts
+
+// scss-docs-start toast-variables
+$toast-max-width: 350px !default;
+$toast-padding-x: .75rem !default;
+$toast-padding-y: .5rem !default;
+$toast-font-size: .875rem !default;
+$toast-color: null !default;
+$toast-background-color: rgba($white, .85) !default;
+$toast-border-width: $border-width !default;
+$toast-border-color: var(--#{$prefix}border-color-translucent) !default;
+$toast-border-radius: $border-radius !default;
+$toast-box-shadow: $box-shadow !default;
+$toast-spacing: $container-padding-x !default;
+
+$toast-header-color: $gray-600 !default;
+$toast-header-background-color: rgba($white, .85) !default;
+$toast-header-border-color: rgba($black, .05) !default;
+// scss-docs-end toast-variables
+
+
+// Badges
+
+// scss-docs-start badge-variables
+$badge-font-size: .75em !default;
+$badge-font-weight: $font-weight-bold !default;
+$badge-color: $white !default;
+$badge-padding-y: .35em !default;
+$badge-padding-x: .65em !default;
+$badge-border-radius: $border-radius !default;
+// scss-docs-end badge-variables
+
+
+// Modals
+
+// scss-docs-start modal-variables
+$modal-inner-padding: $spacer !default;
+
+$modal-footer-margin-between: .5rem !default;
+
+$modal-dialog-margin: .5rem !default;
+$modal-dialog-margin-y-sm-up: 1.75rem !default;
+
+$modal-title-line-height: $line-height-base !default;
+
+$modal-content-color: null !default;
+$modal-content-bg: $white !default;
+$modal-content-border-color: var(--#{$prefix}border-color-translucent) !default;
+$modal-content-border-width: $border-width !default;
+$modal-content-border-radius: $border-radius-lg !default;
+$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;
+$modal-content-box-shadow-xs: $box-shadow-sm !default;
+$modal-content-box-shadow-sm-up: $box-shadow !default;
+
+$modal-backdrop-bg: $black !default;
+$modal-backdrop-opacity: .5 !default;
+
+$modal-header-border-color: var(--#{$prefix}border-color) !default;
+$modal-header-border-width: $modal-content-border-width !default;
+$modal-header-padding-y: $modal-inner-padding !default;
+$modal-header-padding-x: $modal-inner-padding !default;
+$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility
+
+$modal-footer-bg: null !default;
+$modal-footer-border-color: $modal-header-border-color !default;
+$modal-footer-border-width: $modal-header-border-width !default;
+
+$modal-sm: 300px !default;
+$modal-md: 500px !default;
+$modal-lg: 800px !default;
+$modal-xl: 1140px !default;
+
+$modal-fade-transform: translate(0, -50px) !default;
+$modal-show-transform: none !default;
+$modal-transition: transform .3s ease-out !default;
+$modal-scale-transform: scale(1.02) !default;
+// scss-docs-end modal-variables
+
+
+// Alerts
+//
+// Define alert colors, border radius, and padding.
+
+// scss-docs-start alert-variables
+$alert-padding-y: $spacer !default;
+$alert-padding-x: $spacer !default;
+$alert-margin-bottom: 1rem !default;
+$alert-border-radius: $border-radius !default;
+$alert-link-font-weight: $font-weight-bold !default;
+$alert-border-width: $border-width !default;
+$alert-bg-scale: -80% !default;
+$alert-border-scale: -70% !default;
+$alert-color-scale: 40% !default;
+$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side
+// scss-docs-end alert-variables
+
+
+// Progress bars
+
+// scss-docs-start progress-variables
+$progress-height: 1rem !default;
+$progress-font-size: $font-size-base * .75 !default;
+$progress-bg: $gray-200 !default;
+$progress-border-radius: $border-radius !default;
+$progress-box-shadow: $box-shadow-inset !default;
+$progress-bar-color: $white !default;
+$progress-bar-bg: $primary !default;
+$progress-bar-animation-timing: 1s linear infinite !default;
+$progress-bar-transition: width .6s ease !default;
+// scss-docs-end progress-variables
+
+
+// List group
+
+// scss-docs-start list-group-variables
+$list-group-color: $gray-900 !default;
+$list-group-bg: $white !default;
+$list-group-border-color: rgba($black, .125) !default;
+$list-group-border-width: $border-width !default;
+$list-group-border-radius: $border-radius !default;
+
+$list-group-item-padding-y: $spacer * .5 !default;
+$list-group-item-padding-x: $spacer !default;
+$list-group-item-bg-scale: -80% !default;
+$list-group-item-color-scale: 40% !default;
+
+$list-group-hover-bg: $gray-100 !default;
+$list-group-active-color: $component-active-color !default;
+$list-group-active-bg: $component-active-bg !default;
+$list-group-active-border-color: $list-group-active-bg !default;
+
+$list-group-disabled-color: $gray-600 !default;
+$list-group-disabled-bg: $list-group-bg !default;
+
+$list-group-action-color: $gray-700 !default;
+$list-group-action-hover-color: $list-group-action-color !default;
+
+$list-group-action-active-color: $body-color !default;
+$list-group-action-active-bg: $gray-200 !default;
+// scss-docs-end list-group-variables
+
+
+// Image thumbnails
+
+// scss-docs-start thumbnail-variables
+$thumbnail-padding: .25rem !default;
+$thumbnail-bg: $body-bg !default;
+$thumbnail-border-width: $border-width !default;
+$thumbnail-border-color: var(--#{$prefix}border-color) !default;
+$thumbnail-border-radius: $border-radius !default;
+$thumbnail-box-shadow: $box-shadow-sm !default;
+// scss-docs-end thumbnail-variables
+
+
+// Figures
+
+// scss-docs-start figure-variables
+$figure-caption-font-size: $small-font-size !default;
+$figure-caption-color: $gray-600 !default;
+// scss-docs-end figure-variables
+
+
+// Breadcrumbs
+
+// scss-docs-start breadcrumb-variables
+$breadcrumb-font-size: null !default;
+$breadcrumb-padding-y: 0 !default;
+$breadcrumb-padding-x: 0 !default;
+$breadcrumb-item-padding-x: .5rem !default;
+$breadcrumb-margin-bottom: 1rem !default;
+$breadcrumb-bg: null !default;
+$breadcrumb-divider-color: $gray-600 !default;
+$breadcrumb-active-color: $gray-600 !default;
+$breadcrumb-divider: quote("/") !default;
+$breadcrumb-divider-flipped: $breadcrumb-divider !default;
+$breadcrumb-border-radius: null !default;
+// scss-docs-end breadcrumb-variables
+
+// Carousel
+
+// scss-docs-start carousel-variables
+$carousel-control-color: $white !default;
+$carousel-control-width: 15% !default;
+$carousel-control-opacity: .5 !default;
+$carousel-control-hover-opacity: .9 !default;
+$carousel-control-transition: opacity .15s ease !default;
+
+$carousel-indicator-width: 30px !default;
+$carousel-indicator-height: 3px !default;
+$carousel-indicator-hit-area-height: 10px !default;
+$carousel-indicator-spacer: 3px !default;
+$carousel-indicator-opacity: .5 !default;
+$carousel-indicator-active-bg: $white !default;
+$carousel-indicator-active-opacity: 1 !default;
+$carousel-indicator-transition: opacity .6s ease !default;
+
+$carousel-caption-width: 70% !default;
+$carousel-caption-color: $white !default;
+$carousel-caption-padding-y: 1.25rem !default;
+$carousel-caption-spacer: 1.25rem !default;
+
+$carousel-control-icon-width: 2rem !default;
+
+$carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>") !default;
+$carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>") !default;
+
+$carousel-transition-duration: .6s !default;
+$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
+// scss-docs-end carousel-variables
+
+// scss-docs-start carousel-dark-variables
+$carousel-dark-indicator-active-bg: $black !default;
+$carousel-dark-caption-color: $black !default;
+$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;
+// scss-docs-end carousel-dark-variables
+
+
+// Spinners
+
+// scss-docs-start spinner-variables
+$spinner-width: 2rem !default;
+$spinner-height: $spinner-width !default;
+$spinner-vertical-align: -.125em !default;
+$spinner-border-width: .25em !default;
+$spinner-animation-speed: .75s !default;
+
+$spinner-width-sm: 1rem !default;
+$spinner-height-sm: $spinner-width-sm !default;
+$spinner-border-width-sm: .2em !default;
+// scss-docs-end spinner-variables
+
+
+// Close
+
+// scss-docs-start close-variables
+$btn-close-width: 1em !default;
+$btn-close-height: $btn-close-width !default;
+$btn-close-padding-x: .25em !default;
+$btn-close-padding-y: $btn-close-padding-x !default;
+$btn-close-color: $black !default;
+$btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
+$btn-close-focus-shadow: $input-btn-focus-box-shadow !default;
+$btn-close-opacity: .5 !default;
+$btn-close-hover-opacity: .75 !default;
+$btn-close-focus-opacity: 1 !default;
+$btn-close-disabled-opacity: .25 !default;
+$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;
+// scss-docs-end close-variables
+
+
+// Offcanvas
+
+// scss-docs-start offcanvas-variables
+$offcanvas-padding-y: $modal-inner-padding !default;
+$offcanvas-padding-x: $modal-inner-padding !default;
+$offcanvas-horizontal-width: 400px !default;
+$offcanvas-vertical-height: 30vh !default;
+$offcanvas-transition-duration: .3s !default;
+$offcanvas-border-color: $modal-content-border-color !default;
+$offcanvas-border-width: $modal-content-border-width !default;
+$offcanvas-title-line-height: $modal-title-line-height !default;
+$offcanvas-bg-color: $modal-content-bg !default;
+$offcanvas-color: $modal-content-color !default;
+$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;
+$offcanvas-backdrop-bg: $modal-backdrop-bg !default;
+$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;
+// scss-docs-end offcanvas-variables
+
+// Code
+
+$code-font-size: $small-font-size !default;
+$code-color: $pink !default;
+
+$kbd-padding-y: .1875rem !default;
+$kbd-padding-x: .375rem !default;
+$kbd-font-size: $code-font-size !default;
+$kbd-color: var(--#{$prefix}body-bg) !default;
+$kbd-bg: var(--#{$prefix}body-color) !default;
+$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6
+
+$pre-color: null !default;
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-grid.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-grid.scss
new file mode 100644
index 0000000000..1c4cdd1a0f
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-grid.scss
@@ -0,0 +1,64 @@
+@import "mixins/banner";
+@include bsBanner(Grid);
+
+$include-column-box-sizing: true !default;
+
+@import "functions";
+@import "variables";
+@import "maps";
+
+@import "mixins/lists";
+@import "mixins/breakpoints";
+@import "mixins/container";
+@import "mixins/grid";
+@import "mixins/utilities";
+
+@import "vendor/rfs";
+
+@import "root";
+
+@import "containers";
+@import "grid";
+
+@import "utilities";
+// Only use the utilities we need
+// stylelint-disable-next-line scss/dollar-variable-default
+$utilities: map-get-multiple(
+ $utilities,
+ (
+ "display",
+ "order",
+ "flex",
+ "flex-direction",
+ "flex-grow",
+ "flex-shrink",
+ "flex-wrap",
+ "justify-content",
+ "align-items",
+ "align-content",
+ "align-self",
+ "margin",
+ "margin-x",
+ "margin-y",
+ "margin-top",
+ "margin-end",
+ "margin-bottom",
+ "margin-start",
+ "negative-margin",
+ "negative-margin-x",
+ "negative-margin-y",
+ "negative-margin-top",
+ "negative-margin-end",
+ "negative-margin-bottom",
+ "negative-margin-start",
+ "padding",
+ "padding-x",
+ "padding-y",
+ "padding-top",
+ "padding-end",
+ "padding-bottom",
+ "padding-start",
+ )
+);
+
+@import "utilities/api";
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-reboot.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-reboot.scss
new file mode 100644
index 0000000000..af52745943
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-reboot.scss
@@ -0,0 +1,9 @@
+@import "mixins/banner";
+@include bsBanner(Reboot);
+
+@import "functions";
+@import "variables";
+@import "maps";
+@import "mixins";
+@import "root";
+@import "reboot";
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-utilities.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-utilities.scss
new file mode 100644
index 0000000000..c940676ac1
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap-utilities.scss
@@ -0,0 +1,15 @@
+@import "mixins/banner";
+@include bsBanner(Utilities);
+
+// Configuration
+@import "functions";
+@import "variables";
+@import "maps";
+@import "mixins";
+@import "utilities";
+
+// Helpers
+@import "helpers";
+
+// Utilities
+@import "utilities/api";
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap.scss
new file mode 100644
index 0000000000..8f8296deff
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/bootstrap.scss
@@ -0,0 +1,51 @@
+@import "mixins/banner";
+@include bsBanner("");
+
+
+// scss-docs-start import-stack
+// Configuration
+@import "functions";
+@import "variables";
+@import "maps";
+@import "mixins";
+@import "utilities";
+
+// Layout & components
+@import "root";
+@import "reboot";
+@import "type";
+@import "images";
+@import "containers";
+@import "grid";
+@import "tables";
+@import "forms";
+@import "buttons";
+@import "transitions";
+@import "dropdown";
+@import "button-group";
+@import "nav";
+@import "navbar";
+@import "card";
+@import "accordion";
+@import "breadcrumb";
+@import "pagination";
+@import "badge";
+@import "alert";
+@import "progress";
+@import "list-group";
+@import "close";
+@import "toasts";
+@import "modal";
+@import "tooltip";
+@import "popover";
+@import "carousel";
+@import "spinners";
+@import "offcanvas";
+@import "placeholders";
+
+// Helpers
+@import "helpers";
+
+// Utilities
+@import "utilities/api";
+// scss-docs-end import-stack
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_floating-labels.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_floating-labels.scss
new file mode 100644
index 0000000000..6e5c9a75f5
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_floating-labels.scss
@@ -0,0 +1,75 @@
+.form-floating {
+ position: relative;
+
+ > .form-control,
+ > .form-control-plaintext,
+ > .form-select {
+ height: $form-floating-height;
+ line-height: $form-floating-line-height;
+ }
+
+ > label {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%; // allow textareas
+ padding: $form-floating-padding-y $form-floating-padding-x;
+ overflow: hidden;
+ text-align: start;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ pointer-events: none;
+ border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model
+ transform-origin: 0 0;
+ @include transition($form-floating-transition);
+ }
+
+ > .form-control,
+ > .form-control-plaintext {
+ padding: $form-floating-padding-y $form-floating-padding-x;
+
+ &::placeholder {
+ color: transparent;
+ }
+
+ &:focus,
+ &:not(:placeholder-shown) {
+ padding-top: $form-floating-input-padding-t;
+ padding-bottom: $form-floating-input-padding-b;
+ }
+ // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
+ &:-webkit-autofill {
+ padding-top: $form-floating-input-padding-t;
+ padding-bottom: $form-floating-input-padding-b;
+ }
+ }
+
+ > .form-select {
+ padding-top: $form-floating-input-padding-t;
+ padding-bottom: $form-floating-input-padding-b;
+ }
+
+ > .form-control:focus,
+ > .form-control:not(:placeholder-shown),
+ > .form-control-plaintext,
+ > .form-select {
+ ~ label {
+ opacity: $form-floating-label-opacity;
+ transform: $form-floating-label-transform;
+ }
+ }
+ // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
+ > .form-control:-webkit-autofill {
+ ~ label {
+ opacity: $form-floating-label-opacity;
+ transform: $form-floating-label-transform;
+ }
+ }
+
+ > .form-control-plaintext {
+ ~ label {
+ border-width: $input-border-width 0; // Required to properly position label text - as explained above
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-check.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-check.scss
new file mode 100644
index 0000000000..42a2a96073
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-check.scss
@@ -0,0 +1,175 @@
+//
+// Check/radio
+//
+
+.form-check {
+ display: block;
+ min-height: $form-check-min-height;
+ padding-left: $form-check-padding-start;
+ margin-bottom: $form-check-margin-bottom;
+
+ .form-check-input {
+ float: left;
+ margin-left: $form-check-padding-start * -1;
+ }
+}
+
+.form-check-reverse {
+ padding-right: $form-check-padding-start;
+ padding-left: 0;
+ text-align: right;
+
+ .form-check-input {
+ float: right;
+ margin-right: $form-check-padding-start * -1;
+ margin-left: 0;
+ }
+}
+
+.form-check-input {
+ width: $form-check-input-width;
+ height: $form-check-input-width;
+ margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height
+ vertical-align: top;
+ background-color: $form-check-input-bg;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ border: $form-check-input-border;
+ appearance: none;
+ print-color-adjust: exact; // Keep themed appearance for print
+ @include transition($form-check-transition);
+
+ &[type="checkbox"] {
+ @include border-radius($form-check-input-border-radius);
+ }
+
+ &[type="radio"] {
+ // stylelint-disable-next-line property-disallowed-list
+ border-radius: $form-check-radio-border-radius;
+ }
+
+ &:active {
+ filter: $form-check-input-active-filter;
+ }
+
+ &:focus {
+ border-color: $form-check-input-focus-border;
+ outline: 0;
+ box-shadow: $form-check-input-focus-box-shadow;
+ }
+
+ &:checked {
+ background-color: $form-check-input-checked-bg-color;
+ border-color: $form-check-input-checked-border-color;
+
+ &[type="checkbox"] {
+ @if $enable-gradients {
+ background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$prefix}gradient);
+ } @else {
+ background-image: escape-svg($form-check-input-checked-bg-image);
+ }
+ }
+
+ &[type="radio"] {
+ @if $enable-gradients {
+ background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$prefix}gradient);
+ } @else {
+ background-image: escape-svg($form-check-radio-checked-bg-image);
+ }
+ }
+ }
+
+ &[type="checkbox"]:indeterminate {
+ background-color: $form-check-input-indeterminate-bg-color;
+ border-color: $form-check-input-indeterminate-border-color;
+
+ @if $enable-gradients {
+ background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$prefix}gradient);
+ } @else {
+ background-image: escape-svg($form-check-input-indeterminate-bg-image);
+ }
+ }
+
+ &:disabled {
+ pointer-events: none;
+ filter: none;
+ opacity: $form-check-input-disabled-opacity;
+ }
+
+ // Use disabled attribute in addition of :disabled pseudo-class
+ // See: https://github.com/twbs/bootstrap/issues/28247
+ &[disabled],
+ &:disabled {
+ ~ .form-check-label {
+ cursor: default;
+ opacity: $form-check-label-disabled-opacity;
+ }
+ }
+}
+
+.form-check-label {
+ color: $form-check-label-color;
+ cursor: $form-check-label-cursor;
+}
+
+//
+// Switch
+//
+
+.form-switch {
+ padding-left: $form-switch-padding-start;
+
+ .form-check-input {
+ width: $form-switch-width;
+ margin-left: $form-switch-padding-start * -1;
+ background-image: escape-svg($form-switch-bg-image);
+ background-position: left center;
+ @include border-radius($form-switch-border-radius);
+ @include transition($form-switch-transition);
+
+ &:focus {
+ background-image: escape-svg($form-switch-focus-bg-image);
+ }
+
+ &:checked {
+ background-position: $form-switch-checked-bg-position;
+
+ @if $enable-gradients {
+ background-image: escape-svg($form-switch-checked-bg-image), var(--#{$prefix}gradient);
+ } @else {
+ background-image: escape-svg($form-switch-checked-bg-image);
+ }
+ }
+ }
+
+ &.form-check-reverse {
+ padding-right: $form-switch-padding-start;
+ padding-left: 0;
+
+ .form-check-input {
+ margin-right: $form-switch-padding-start * -1;
+ margin-left: 0;
+ }
+ }
+}
+
+.form-check-inline {
+ display: inline-block;
+ margin-right: $form-check-inline-margin-end;
+}
+
+.btn-check {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
+
+ &[disabled],
+ &:disabled {
+ + .btn {
+ pointer-events: none;
+ filter: none;
+ opacity: $form-check-btn-check-disabled-opacity;
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-control.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-control.scss
new file mode 100644
index 0000000000..e707c57ea2
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-control.scss
@@ -0,0 +1,194 @@
+//
+// General form controls (plus a few specific high-level interventions)
+//
+
+.form-control {
+ display: block;
+ width: 100%;
+ padding: $input-padding-y $input-padding-x;
+ font-family: $input-font-family;
+ @include font-size($input-font-size);
+ font-weight: $input-font-weight;
+ line-height: $input-line-height;
+ color: $input-color;
+ background-color: $input-bg;
+ background-clip: padding-box;
+ border: $input-border-width solid $input-border-color;
+ appearance: none; // Fix appearance for date inputs in Safari
+
+ // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
+ @include border-radius($input-border-radius, 0);
+
+ @include box-shadow($input-box-shadow);
+ @include transition($input-transition);
+
+ &[type="file"] {
+ overflow: hidden; // prevent pseudo element button overlap
+
+ &:not(:disabled):not([readonly]) {
+ cursor: pointer;
+ }
+ }
+
+ // Customize the `:focus` state to imitate native WebKit styles.
+ &:focus {
+ color: $input-focus-color;
+ background-color: $input-focus-bg;
+ border-color: $input-focus-border-color;
+ outline: 0;
+ @if $enable-shadows {
+ @include box-shadow($input-box-shadow, $input-focus-box-shadow);
+ } @else {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ box-shadow: $input-focus-box-shadow;
+ }
+ }
+
+ // Add some height to date inputs on iOS
+ // https://github.com/twbs/bootstrap/issues/23307
+ // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
+ &::-webkit-date-and-time-value {
+ // Multiply line-height by 1em if it has no unit
+ height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
+ }
+
+ // Placeholder
+ &::placeholder {
+ color: $input-placeholder-color;
+ // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
+ opacity: 1;
+ }
+
+ // Disabled inputs
+ //
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
+ // don't honor that edge case; we style them as disabled anyway.
+ &:disabled {
+ color: $input-disabled-color;
+ background-color: $input-disabled-bg;
+ border-color: $input-disabled-border-color;
+ // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
+ opacity: 1;
+ }
+
+ // File input buttons theming
+ &::file-selector-button {
+ padding: $input-padding-y $input-padding-x;
+ margin: (-$input-padding-y) (-$input-padding-x);
+ margin-inline-end: $input-padding-x;
+ color: $form-file-button-color;
+ @include gradient-bg($form-file-button-bg);
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: $input-border-width;
+ border-radius: 0; // stylelint-disable-line property-disallowed-list
+ @include transition($btn-transition);
+ }
+
+ &:hover:not(:disabled):not([readonly])::file-selector-button {
+ background-color: $form-file-button-hover-bg;
+ }
+}
+
+// Readonly controls as plain text
+//
+// Apply class to a readonly input to make it appear like regular plain
+// text (without any border, background color, focus indicator)
+
+.form-control-plaintext {
+ display: block;
+ width: 100%;
+ padding: $input-padding-y 0;
+ margin-bottom: 0; // match inputs if this class comes on inputs with default margins
+ line-height: $input-line-height;
+ color: $input-plaintext-color;
+ background-color: transparent;
+ border: solid transparent;
+ border-width: $input-border-width 0;
+
+ &:focus {
+ outline: 0;
+ }
+
+ &.form-control-sm,
+ &.form-control-lg {
+ padding-right: 0;
+ padding-left: 0;
+ }
+}
+
+// Form control sizing
+//
+// Build on `.form-control` with modifier classes to decrease or increase the
+// height and font-size of form controls.
+//
+// Repeated in `_input_group.scss` to avoid Sass extend issues.
+
+.form-control-sm {
+ min-height: $input-height-sm;
+ padding: $input-padding-y-sm $input-padding-x-sm;
+ @include font-size($input-font-size-sm);
+ @include border-radius($input-border-radius-sm);
+
+ &::file-selector-button {
+ padding: $input-padding-y-sm $input-padding-x-sm;
+ margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
+ margin-inline-end: $input-padding-x-sm;
+ }
+}
+
+.form-control-lg {
+ min-height: $input-height-lg;
+ padding: $input-padding-y-lg $input-padding-x-lg;
+ @include font-size($input-font-size-lg);
+ @include border-radius($input-border-radius-lg);
+
+ &::file-selector-button {
+ padding: $input-padding-y-lg $input-padding-x-lg;
+ margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
+ margin-inline-end: $input-padding-x-lg;
+ }
+}
+
+// Make sure textareas don't shrink too much when resized
+// https://github.com/twbs/bootstrap/pull/29124
+// stylelint-disable selector-no-qualifying-type
+textarea {
+ &.form-control {
+ min-height: $input-height;
+ }
+
+ &.form-control-sm {
+ min-height: $input-height-sm;
+ }
+
+ &.form-control-lg {
+ min-height: $input-height-lg;
+ }
+}
+// stylelint-enable selector-no-qualifying-type
+
+.form-control-color {
+ width: $form-color-width;
+ height: $input-height;
+ padding: $input-padding-y;
+
+ &:not(:disabled):not([readonly]) {
+ cursor: pointer;
+ }
+
+ &::-moz-color-swatch {
+ border: 0 !important; // stylelint-disable-line declaration-no-important
+ @include border-radius($input-border-radius);
+ }
+
+ &::-webkit-color-swatch {
+ @include border-radius($input-border-radius);
+ }
+
+ &.form-control-sm { height: $input-height-sm; }
+ &.form-control-lg { height: $input-height-lg; }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-range.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-range.scss
new file mode 100644
index 0000000000..6de42132ea
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-range.scss
@@ -0,0 +1,91 @@
+// Range
+//
+// Style range inputs the same across browsers. Vendor-specific rules for pseudo
+// elements cannot be mixed. As such, there are no shared styles for focus or
+// active states on prefixed selectors.
+
+.form-range {
+ width: 100%;
+ height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);
+ padding: 0; // Need to reset padding
+ background-color: transparent;
+ appearance: none;
+
+ &:focus {
+ outline: 0;
+
+ // Pseudo-elements must be split across multiple rulesets to have an effect.
+ // No box-shadow() mixin for focus accessibility.
+ &::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
+ &::-moz-range-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
+ }
+
+ &::-moz-focus-outer {
+ border: 0;
+ }
+
+ &::-webkit-slider-thumb {
+ width: $form-range-thumb-width;
+ height: $form-range-thumb-height;
+ margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific
+ @include gradient-bg($form-range-thumb-bg);
+ border: $form-range-thumb-border;
+ @include border-radius($form-range-thumb-border-radius);
+ @include box-shadow($form-range-thumb-box-shadow);
+ @include transition($form-range-thumb-transition);
+ appearance: none;
+
+ &:active {
+ @include gradient-bg($form-range-thumb-active-bg);
+ }
+ }
+
+ &::-webkit-slider-runnable-track {
+ width: $form-range-track-width;
+ height: $form-range-track-height;
+ color: transparent; // Why?
+ cursor: $form-range-track-cursor;
+ background-color: $form-range-track-bg;
+ border-color: transparent;
+ @include border-radius($form-range-track-border-radius);
+ @include box-shadow($form-range-track-box-shadow);
+ }
+
+ &::-moz-range-thumb {
+ width: $form-range-thumb-width;
+ height: $form-range-thumb-height;
+ @include gradient-bg($form-range-thumb-bg);
+ border: $form-range-thumb-border;
+ @include border-radius($form-range-thumb-border-radius);
+ @include box-shadow($form-range-thumb-box-shadow);
+ @include transition($form-range-thumb-transition);
+ appearance: none;
+
+ &:active {
+ @include gradient-bg($form-range-thumb-active-bg);
+ }
+ }
+
+ &::-moz-range-track {
+ width: $form-range-track-width;
+ height: $form-range-track-height;
+ color: transparent;
+ cursor: $form-range-track-cursor;
+ background-color: $form-range-track-bg;
+ border-color: transparent; // Firefox specific?
+ @include border-radius($form-range-track-border-radius);
+ @include box-shadow($form-range-track-box-shadow);
+ }
+
+ &:disabled {
+ pointer-events: none;
+
+ &::-webkit-slider-thumb {
+ background-color: $form-range-thumb-disabled-bg;
+ }
+
+ &::-moz-range-thumb {
+ background-color: $form-range-thumb-disabled-bg;
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-select.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-select.scss
new file mode 100644
index 0000000000..78c34b8fd6
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-select.scss
@@ -0,0 +1,71 @@
+// Select
+//
+// Replaces the browser default select with a custom one, mostly pulled from
+// https://primer.github.io/.
+
+.form-select {
+ display: block;
+ width: 100%;
+ padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;
+ -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636
+ font-family: $form-select-font-family;
+ @include font-size($form-select-font-size);
+ font-weight: $form-select-font-weight;
+ line-height: $form-select-line-height;
+ color: $form-select-color;
+ background-color: $form-select-bg;
+ background-image: escape-svg($form-select-indicator);
+ background-repeat: no-repeat;
+ background-position: $form-select-bg-position;
+ background-size: $form-select-bg-size;
+ border: $form-select-border-width solid $form-select-border-color;
+ @include border-radius($form-select-border-radius, 0);
+ @include box-shadow($form-select-box-shadow);
+ @include transition($form-select-transition);
+ appearance: none;
+
+ &:focus {
+ border-color: $form-select-focus-border-color;
+ outline: 0;
+ @if $enable-shadows {
+ @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);
+ } @else {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ box-shadow: $form-select-focus-box-shadow;
+ }
+ }
+
+ &[multiple],
+ &[size]:not([size="1"]) {
+ padding-right: $form-select-padding-x;
+ background-image: none;
+ }
+
+ &:disabled {
+ color: $form-select-disabled-color;
+ background-color: $form-select-disabled-bg;
+ border-color: $form-select-disabled-border-color;
+ }
+
+ // Remove outline from select box in FF
+ &:-moz-focusring {
+ color: transparent;
+ text-shadow: 0 0 0 $form-select-color;
+ }
+}
+
+.form-select-sm {
+ padding-top: $form-select-padding-y-sm;
+ padding-bottom: $form-select-padding-y-sm;
+ padding-left: $form-select-padding-x-sm;
+ @include font-size($form-select-font-size-sm);
+ @include border-radius($form-select-border-radius-sm);
+}
+
+.form-select-lg {
+ padding-top: $form-select-padding-y-lg;
+ padding-bottom: $form-select-padding-y-lg;
+ padding-left: $form-select-padding-x-lg;
+ @include font-size($form-select-font-size-lg);
+ @include border-radius($form-select-border-radius-lg);
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-text.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-text.scss
new file mode 100644
index 0000000000..f080d1a234
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_form-text.scss
@@ -0,0 +1,11 @@
+//
+// Form text
+//
+
+.form-text {
+ margin-top: $form-text-margin-top;
+ @include font-size($form-text-font-size);
+ font-style: $form-text-font-style;
+ font-weight: $form-text-font-weight;
+ color: $form-text-color;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_input-group.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_input-group.scss
new file mode 100644
index 0000000000..247f74a7ac
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_input-group.scss
@@ -0,0 +1,132 @@
+//
+// Base styles
+//
+
+.input-group {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap; // For form validation feedback
+ align-items: stretch;
+ width: 100%;
+
+ > .form-control,
+ > .form-select,
+ > .form-floating {
+ position: relative; // For focus state's z-index
+ flex: 1 1 auto;
+ width: 1%;
+ min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size
+ }
+
+ // Bring the "active" form control to the top of surrounding elements
+ > .form-control:focus,
+ > .form-select:focus,
+ > .form-floating:focus-within {
+ z-index: 5;
+ }
+
+ // Ensure buttons are always above inputs for more visually pleasing borders.
+ // This isn't needed for `.input-group-text` since it shares the same border-color
+ // as our inputs.
+ .btn {
+ position: relative;
+ z-index: 2;
+
+ &:focus {
+ z-index: 5;
+ }
+ }
+}
+
+
+// Textual addons
+//
+// Serves as a catch-all element for any text or radio/checkbox input you wish
+// to prepend or append to an input.
+
+.input-group-text {
+ display: flex;
+ align-items: center;
+ padding: $input-group-addon-padding-y $input-group-addon-padding-x;
+ @include font-size($input-font-size); // Match inputs
+ font-weight: $input-group-addon-font-weight;
+ line-height: $input-line-height;
+ color: $input-group-addon-color;
+ text-align: center;
+ white-space: nowrap;
+ background-color: $input-group-addon-bg;
+ border: $input-border-width solid $input-group-addon-border-color;
+ @include border-radius($input-border-radius);
+}
+
+
+// Sizing
+//
+// Remix the default form control sizing classes into new ones for easier
+// manipulation.
+
+.input-group-lg > .form-control,
+.input-group-lg > .form-select,
+.input-group-lg > .input-group-text,
+.input-group-lg > .btn {
+ padding: $input-padding-y-lg $input-padding-x-lg;
+ @include font-size($input-font-size-lg);
+ @include border-radius($input-border-radius-lg);
+}
+
+.input-group-sm > .form-control,
+.input-group-sm > .form-select,
+.input-group-sm > .input-group-text,
+.input-group-sm > .btn {
+ padding: $input-padding-y-sm $input-padding-x-sm;
+ @include font-size($input-font-size-sm);
+ @include border-radius($input-border-radius-sm);
+}
+
+.input-group-lg > .form-select,
+.input-group-sm > .form-select {
+ padding-right: $form-select-padding-x + $form-select-indicator-padding;
+}
+
+
+// Rounded corners
+//
+// These rulesets must come after the sizing ones to properly override sm and lg
+// border-radius values when extending. They're more specific than we'd like
+// with the `.input-group >` part, but without it, we cannot override the sizing.
+
+// stylelint-disable-next-line no-duplicate-selectors
+.input-group {
+ &:not(.has-validation) {
+ > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+ > .dropdown-toggle:nth-last-child(n + 3),
+ > .form-floating:not(:last-child) > .form-control,
+ > .form-floating:not(:last-child) > .form-select {
+ @include border-end-radius(0);
+ }
+ }
+
+ &.has-validation {
+ > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+ > .dropdown-toggle:nth-last-child(n + 4),
+ > .form-floating:nth-last-child(n + 3) > .form-control,
+ > .form-floating:nth-last-child(n + 3) > .form-select {
+ @include border-end-radius(0);
+ }
+ }
+
+ $validation-messages: "";
+ @each $state in map-keys($form-validation-states) {
+ $validation-messages: $validation-messages + ":not(." + unquote($state) + "-tooltip)" + ":not(." + unquote($state) + "-feedback)";
+ }
+
+ > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
+ margin-left: -$input-border-width;
+ @include border-start-radius(0);
+ }
+
+ > .form-floating:not(:first-child) > .form-control,
+ > .form-floating:not(:first-child) > .form-select {
+ @include border-start-radius(0);
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_labels.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_labels.scss
new file mode 100644
index 0000000000..39ecafcd2f
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_labels.scss
@@ -0,0 +1,36 @@
+//
+// Labels
+//
+
+.form-label {
+ margin-bottom: $form-label-margin-bottom;
+ @include font-size($form-label-font-size);
+ font-style: $form-label-font-style;
+ font-weight: $form-label-font-weight;
+ color: $form-label-color;
+}
+
+// For use with horizontal and inline forms, when you need the label (or legend)
+// text to align with the form controls.
+.col-form-label {
+ padding-top: add($input-padding-y, $input-border-width);
+ padding-bottom: add($input-padding-y, $input-border-width);
+ margin-bottom: 0; // Override the `<legend>` default
+ @include font-size(inherit); // Override the `<legend>` default
+ font-style: $form-label-font-style;
+ font-weight: $form-label-font-weight;
+ line-height: $input-line-height;
+ color: $form-label-color;
+}
+
+.col-form-label-lg {
+ padding-top: add($input-padding-y-lg, $input-border-width);
+ padding-bottom: add($input-padding-y-lg, $input-border-width);
+ @include font-size($input-font-size-lg);
+}
+
+.col-form-label-sm {
+ padding-top: add($input-padding-y-sm, $input-border-width);
+ padding-bottom: add($input-padding-y-sm, $input-border-width);
+ @include font-size($input-font-size-sm);
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_validation.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_validation.scss
new file mode 100644
index 0000000000..c48123a716
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/forms/_validation.scss
@@ -0,0 +1,12 @@
+// Form validation
+//
+// Provide feedback to users when form field values are valid or invalid. Works
+// primarily for client-side validation via scoped `:invalid` and `:valid`
+// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
+// server-side validation.
+
+// scss-docs-start form-validation-states-loop
+@each $state, $data in $form-validation-states {
+ @include form-validation-state($state, $data...);
+}
+// scss-docs-end form-validation-states-loop
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_clearfix.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_clearfix.scss
new file mode 100644
index 0000000000..e92522a94d
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_clearfix.scss
@@ -0,0 +1,3 @@
+.clearfix {
+ @include clearfix();
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_color-bg.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_color-bg.scss
new file mode 100644
index 0000000000..b5ce7709c1
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_color-bg.scss
@@ -0,0 +1,10 @@
+// stylelint-disable function-name-case
+
+// All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251
+@each $color, $value in $theme-colors {
+ $color-rgb: to-rgb($value);
+ .text-bg-#{$color} {
+ color: color-contrast($value) if($enable-important-utilities, !important, null);
+ background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_colored-links.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_colored-links.scss
new file mode 100644
index 0000000000..1cb4182801
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_colored-links.scss
@@ -0,0 +1,12 @@
+@each $color, $value in $theme-colors {
+ .link-#{$color} {
+ color: $value !important; // stylelint-disable-line declaration-no-important
+
+ @if $link-shade-percentage != 0 {
+ &:hover,
+ &:focus {
+ color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)) !important; // stylelint-disable-line declaration-no-important
+ }
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_position.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_position.scss
new file mode 100644
index 0000000000..59103d9436
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_position.scss
@@ -0,0 +1,36 @@
+// Shorthand
+
+.fixed-top {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: $zindex-fixed;
+}
+
+.fixed-bottom {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: $zindex-fixed;
+}
+
+// Responsive sticky top and bottom
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .sticky#{$infix}-top {
+ position: sticky;
+ top: 0;
+ z-index: $zindex-sticky;
+ }
+
+ .sticky#{$infix}-bottom {
+ position: sticky;
+ bottom: 0;
+ z-index: $zindex-sticky;
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_ratio.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_ratio.scss
new file mode 100644
index 0000000000..b6a7654c52
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_ratio.scss
@@ -0,0 +1,26 @@
+// Credit: Nicolas Gallagher and SUIT CSS.
+
+.ratio {
+ position: relative;
+ width: 100%;
+
+ &::before {
+ display: block;
+ padding-top: var(--#{$prefix}aspect-ratio);
+ content: "";
+ }
+
+ > * {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+}
+
+@each $key, $ratio in $aspect-ratios {
+ .ratio-#{$key} {
+ --#{$prefix}aspect-ratio: #{$ratio};
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_stacks.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_stacks.scss
new file mode 100644
index 0000000000..6cd237ae6d
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_stacks.scss
@@ -0,0 +1,15 @@
+// scss-docs-start stacks
+.hstack {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ align-self: stretch;
+}
+
+.vstack {
+ display: flex;
+ flex: 1 1 auto;
+ flex-direction: column;
+ align-self: stretch;
+}
+// scss-docs-end stacks
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_stretched-link.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_stretched-link.scss
new file mode 100644
index 0000000000..71a1c755af
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_stretched-link.scss
@@ -0,0 +1,15 @@
+//
+// Stretched link
+//
+
+.stretched-link {
+ &::#{$stretched-link-pseudo-element} {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: $stretched-link-z-index;
+ content: "";
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_text-truncation.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_text-truncation.scss
new file mode 100644
index 0000000000..6421dac9a8
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_text-truncation.scss
@@ -0,0 +1,7 @@
+//
+// Text truncation
+//
+
+.text-truncate {
+ @include text-truncate();
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_visually-hidden.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_visually-hidden.scss
new file mode 100644
index 0000000000..4760ff03d1
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_visually-hidden.scss
@@ -0,0 +1,8 @@
+//
+// Visually hidden
+//
+
+.visually-hidden,
+.visually-hidden-focusable:not(:focus):not(:focus-within) {
+ @include visually-hidden();
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_vr.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_vr.scss
new file mode 100644
index 0000000000..9bca099536
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/helpers/_vr.scss
@@ -0,0 +1,8 @@
+.vr {
+ display: inline-block;
+ align-self: stretch;
+ width: 1px;
+ min-height: 1em;
+ background-color: currentcolor;
+ opacity: $hr-opacity;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_alert.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_alert.scss
new file mode 100644
index 0000000000..231f068ec4
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_alert.scss
@@ -0,0 +1,15 @@
+// scss-docs-start alert-variant-mixin
+@mixin alert-variant($background, $border, $color) {
+ --#{$prefix}alert-color: #{$color};
+ --#{$prefix}alert-bg: #{$background};
+ --#{$prefix}alert-border-color: #{$border};
+
+ @if $enable-gradients {
+ background-image: var(--#{$prefix}gradient);
+ }
+
+ .alert-link {
+ color: shade-color($color, 20%);
+ }
+}
+// scss-docs-end alert-variant-mixin
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_backdrop.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_backdrop.scss
new file mode 100644
index 0000000000..9705ae9eea
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_backdrop.scss
@@ -0,0 +1,14 @@
+// Shared between modals and offcanvases
+@mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: $zindex;
+ width: 100vw;
+ height: 100vh;
+ background-color: $backdrop-bg;
+
+ // Fade for backdrop
+ &.fade { opacity: 0; }
+ &.show { opacity: $backdrop-opacity; }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_banner.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_banner.scss
new file mode 100644
index 0000000000..8b859abb80
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_banner.scss
@@ -0,0 +1,9 @@
+@mixin bsBanner($file) {
+ /*!
+ * Bootstrap #{$file} v5.2.1 (https://getbootstrap.com/)
+ * Copyright 2011-2022 The Bootstrap Authors
+ * Copyright 2011-2022 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+}
+
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_border-radius.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_border-radius.scss
new file mode 100644
index 0000000000..616decbce3
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_border-radius.scss
@@ -0,0 +1,78 @@
+// stylelint-disable property-disallowed-list
+// Single side border-radius
+
+// Helper function to replace negative values with 0
+@function valid-radius($radius) {
+ $return: ();
+ @each $value in $radius {
+ @if type-of($value) == number {
+ $return: append($return, max($value, 0));
+ } @else {
+ $return: append($return, $value);
+ }
+ }
+ @return $return;
+}
+
+// scss-docs-start border-radius-mixins
+@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
+ @if $enable-rounded {
+ border-radius: valid-radius($radius);
+ }
+ @else if $fallback-border-radius != false {
+ border-radius: $fallback-border-radius;
+ }
+}
+
+@mixin border-top-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-top-left-radius: valid-radius($radius);
+ border-top-right-radius: valid-radius($radius);
+ }
+}
+
+@mixin border-end-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-top-right-radius: valid-radius($radius);
+ border-bottom-right-radius: valid-radius($radius);
+ }
+}
+
+@mixin border-bottom-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-bottom-right-radius: valid-radius($radius);
+ border-bottom-left-radius: valid-radius($radius);
+ }
+}
+
+@mixin border-start-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-top-left-radius: valid-radius($radius);
+ border-bottom-left-radius: valid-radius($radius);
+ }
+}
+
+@mixin border-top-start-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-top-left-radius: valid-radius($radius);
+ }
+}
+
+@mixin border-top-end-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-top-right-radius: valid-radius($radius);
+ }
+}
+
+@mixin border-bottom-end-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-bottom-right-radius: valid-radius($radius);
+ }
+}
+
+@mixin border-bottom-start-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-bottom-left-radius: valid-radius($radius);
+ }
+}
+// scss-docs-end border-radius-mixins
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_box-shadow.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_box-shadow.scss
new file mode 100644
index 0000000000..4172541f3f
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_box-shadow.scss
@@ -0,0 +1,18 @@
+@mixin box-shadow($shadow...) {
+ @if $enable-shadows {
+ $result: ();
+
+ @each $value in $shadow {
+ @if $value != null {
+ $result: append($result, $value, "comma");
+ }
+ @if $value == none and length($shadow) > 1 {
+ @warn "The keyword 'none' must be used as a single argument.";
+ }
+ }
+
+ @if (length($result) > 0) {
+ box-shadow: $result;
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_breakpoints.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_breakpoints.scss
new file mode 100644
index 0000000000..286be893d7
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_breakpoints.scss
@@ -0,0 +1,127 @@
+// Breakpoint viewport sizes and media queries.
+//
+// Breakpoints are defined as a map of (name: minimum width), order from small to large:
+//
+// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)
+//
+// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
+
+// Name of the next breakpoint, or null for the last breakpoint.
+//
+// >> breakpoint-next(sm)
+// md
+// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
+// md
+// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))
+// md
+@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
+ $n: index($breakpoint-names, $name);
+ @if not $n {
+ @error "breakpoint `#{$name}` not found in `#{$breakpoints}`";
+ }
+ @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
+}
+
+// Minimum breakpoint width. Null for the smallest (first) breakpoint.
+//
+// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
+// 576px
+@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
+ $min: map-get($breakpoints, $name);
+ @return if($min != 0, $min, null);
+}
+
+// Maximum breakpoint width.
+// The maximum value is reduced by 0.02px to work around the limitations of
+// `min-` and `max-` prefixes and viewports with fractional widths.
+// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max
+// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.
+// See https://bugs.webkit.org/show_bug.cgi?id=178261
+//
+// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
+// 767.98px
+@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
+ $max: map-get($breakpoints, $name);
+ @return if($max and $max > 0, $max - .02, null);
+}
+
+// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.
+// Useful for making responsive utilities.
+//
+// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
+// "" (Returns a blank string)
+// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
+// "-sm"
+@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
+ @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");
+}
+
+// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
+// Makes the @content apply to the given breakpoint and wider.
+@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
+ $min: breakpoint-min($name, $breakpoints);
+ @if $min {
+ @media (min-width: $min) {
+ @content;
+ }
+ } @else {
+ @content;
+ }
+}
+
+// Media of at most the maximum breakpoint width. No query for the largest breakpoint.
+// Makes the @content apply to the given breakpoint and narrower.
+@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
+ $max: breakpoint-max($name, $breakpoints);
+ @if $max {
+ @media (max-width: $max) {
+ @content;
+ }
+ } @else {
+ @content;
+ }
+}
+
+// Media that spans multiple breakpoint widths.
+// Makes the @content apply between the min and max breakpoints
+@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
+ $min: breakpoint-min($lower, $breakpoints);
+ $max: breakpoint-max($upper, $breakpoints);
+
+ @if $min != null and $max != null {
+ @media (min-width: $min) and (max-width: $max) {
+ @content;
+ }
+ } @else if $max == null {
+ @include media-breakpoint-up($lower, $breakpoints) {
+ @content;
+ }
+ } @else if $min == null {
+ @include media-breakpoint-down($upper, $breakpoints) {
+ @content;
+ }
+ }
+}
+
+// Media between the breakpoint's minimum and maximum widths.
+// No minimum for the smallest breakpoint, and no maximum for the largest one.
+// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
+@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
+ $min: breakpoint-min($name, $breakpoints);
+ $next: breakpoint-next($name, $breakpoints);
+ $max: breakpoint-max($next, $breakpoints);
+
+ @if $min != null and $max != null {
+ @media (min-width: $min) and (max-width: $max) {
+ @content;
+ }
+ } @else if $max == null {
+ @include media-breakpoint-up($name, $breakpoints) {
+ @content;
+ }
+ } @else if $min == null {
+ @include media-breakpoint-down($next, $breakpoints) {
+ @content;
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_buttons.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_buttons.scss
new file mode 100644
index 0000000000..cf087fda78
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_buttons.scss
@@ -0,0 +1,70 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+// scss-docs-start btn-variant-mixin
+@mixin button-variant(
+ $background,
+ $border,
+ $color: color-contrast($background),
+ $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),
+ $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),
+ $hover-color: color-contrast($hover-background),
+ $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),
+ $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),
+ $active-color: color-contrast($active-background),
+ $disabled-background: $background,
+ $disabled-border: $border,
+ $disabled-color: color-contrast($disabled-background)
+) {
+ --#{$prefix}btn-color: #{$color};
+ --#{$prefix}btn-bg: #{$background};
+ --#{$prefix}btn-border-color: #{$border};
+ --#{$prefix}btn-hover-color: #{$hover-color};
+ --#{$prefix}btn-hover-bg: #{$hover-background};
+ --#{$prefix}btn-hover-border-color: #{$hover-border};
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))};
+ --#{$prefix}btn-active-color: #{$active-color};
+ --#{$prefix}btn-active-bg: #{$active-background};
+ --#{$prefix}btn-active-border-color: #{$active-border};
+ --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
+ --#{$prefix}btn-disabled-color: #{$disabled-color};
+ --#{$prefix}btn-disabled-bg: #{$disabled-background};
+ --#{$prefix}btn-disabled-border-color: #{$disabled-border};
+}
+// scss-docs-end btn-variant-mixin
+
+// scss-docs-start btn-outline-variant-mixin
+@mixin button-outline-variant(
+ $color,
+ $color-hover: color-contrast($color),
+ $active-background: $color,
+ $active-border: $color,
+ $active-color: color-contrast($active-background)
+) {
+ --#{$prefix}btn-color: #{$color};
+ --#{$prefix}btn-border-color: #{$color};
+ --#{$prefix}btn-hover-color: #{$color-hover};
+ --#{$prefix}btn-hover-bg: #{$active-background};
+ --#{$prefix}btn-hover-border-color: #{$active-border};
+ --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};
+ --#{$prefix}btn-active-color: #{$active-color};
+ --#{$prefix}btn-active-bg: #{$active-background};
+ --#{$prefix}btn-active-border-color: #{$active-border};
+ --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
+ --#{$prefix}btn-disabled-color: #{$color};
+ --#{$prefix}btn-disabled-bg: transparent;
+ --#{$prefix}btn-disabled-border-color: #{$color};
+ --#{$prefix}gradient: none;
+}
+// scss-docs-end btn-outline-variant-mixin
+
+// scss-docs-start btn-size-mixin
+@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
+ --#{$prefix}btn-padding-y: #{$padding-y};
+ --#{$prefix}btn-padding-x: #{$padding-x};
+ @include rfs($font-size, --#{$prefix}btn-font-size);
+ --#{$prefix}btn-border-radius: #{$border-radius};
+}
+// scss-docs-end btn-size-mixin
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_caret.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_caret.scss
new file mode 100644
index 0000000000..4b0f0360ba
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_caret.scss
@@ -0,0 +1,64 @@
+// scss-docs-start caret-mixins
+@mixin caret-down {
+ border-top: $caret-width solid;
+ border-right: $caret-width solid transparent;
+ border-bottom: 0;
+ border-left: $caret-width solid transparent;
+}
+
+@mixin caret-up {
+ border-top: 0;
+ border-right: $caret-width solid transparent;
+ border-bottom: $caret-width solid;
+ border-left: $caret-width solid transparent;
+}
+
+@mixin caret-end {
+ border-top: $caret-width solid transparent;
+ border-right: 0;
+ border-bottom: $caret-width solid transparent;
+ border-left: $caret-width solid;
+}
+
+@mixin caret-start {
+ border-top: $caret-width solid transparent;
+ border-right: $caret-width solid;
+ border-bottom: $caret-width solid transparent;
+}
+
+@mixin caret($direction: down) {
+ @if $enable-caret {
+ &::after {
+ display: inline-block;
+ margin-left: $caret-spacing;
+ vertical-align: $caret-vertical-align;
+ content: "";
+ @if $direction == down {
+ @include caret-down();
+ } @else if $direction == up {
+ @include caret-up();
+ } @else if $direction == end {
+ @include caret-end();
+ }
+ }
+
+ @if $direction == start {
+ &::after {
+ display: none;
+ }
+
+ &::before {
+ display: inline-block;
+ margin-right: $caret-spacing;
+ vertical-align: $caret-vertical-align;
+ content: "";
+ @include caret-start();
+ }
+ }
+
+ &:empty::after {
+ margin-left: 0;
+ }
+ }
+}
+// scss-docs-end caret-mixins
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_clearfix.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_clearfix.scss
new file mode 100644
index 0000000000..ffc62bb285
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_clearfix.scss
@@ -0,0 +1,9 @@
+// scss-docs-start clearfix
+@mixin clearfix() {
+ &::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+}
+// scss-docs-end clearfix
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_color-scheme.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_color-scheme.scss
new file mode 100644
index 0000000000..90497aa0a9
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_color-scheme.scss
@@ -0,0 +1,7 @@
+// scss-docs-start mixin-color-scheme
+@mixin color-scheme($name) {
+ @media (prefers-color-scheme: #{$name}) {
+ @content;
+ }
+}
+// scss-docs-end mixin-color-scheme
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_container.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_container.scss
new file mode 100644
index 0000000000..b9f33519e2
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_container.scss
@@ -0,0 +1,11 @@
+// Container mixins
+
+@mixin make-container($gutter: $container-padding-x) {
+ --#{$prefix}gutter-x: #{$gutter};
+ --#{$prefix}gutter-y: 0;
+ width: 100%;
+ padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+ padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+ margin-right: auto;
+ margin-left: auto;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_deprecate.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_deprecate.scss
new file mode 100644
index 0000000000..df070bc596
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_deprecate.scss
@@ -0,0 +1,10 @@
+// Deprecate mixin
+//
+// This mixin can be used to deprecate mixins or functions.
+// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to
+// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)
+@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {
+ @if ($enable-deprecation-messages != false and $ignore-warning != true) {
+ @warn "#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.";
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_forms.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_forms.scss
new file mode 100644
index 0000000000..2a853a7894
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_forms.scss
@@ -0,0 +1,152 @@
+// This mixin uses an `if()` technique to be compatible with Dart Sass
+// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details
+
+// scss-docs-start form-validation-mixins
+@mixin form-validation-state-selector($state) {
+ @if ($state == "valid" or $state == "invalid") {
+ .was-validated #{if(&, "&", "")}:#{$state},
+ #{if(&, "&", "")}.is-#{$state} {
+ @content;
+ }
+ } @else {
+ #{if(&, "&", "")}.is-#{$state} {
+ @content;
+ }
+ }
+}
+
+@mixin form-validation-state(
+ $state,
+ $color,
+ $icon,
+ $tooltip-color: color-contrast($color),
+ $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),
+ $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)
+) {
+ .#{$state}-feedback {
+ display: none;
+ width: 100%;
+ margin-top: $form-feedback-margin-top;
+ @include font-size($form-feedback-font-size);
+ font-style: $form-feedback-font-style;
+ color: $color;
+ }
+
+ .#{$state}-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%; // Contain to parent when possible
+ padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
+ margin-top: .1rem;
+ @include font-size($form-feedback-tooltip-font-size);
+ line-height: $form-feedback-tooltip-line-height;
+ color: $tooltip-color;
+ background-color: $tooltip-bg-color;
+ @include border-radius($form-feedback-tooltip-border-radius);
+ }
+
+ @include form-validation-state-selector($state) {
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+ }
+
+ .form-control {
+ @include form-validation-state-selector($state) {
+ border-color: $color;
+
+ @if $enable-validation-icons {
+ padding-right: $input-height-inner;
+ background-image: escape-svg($icon);
+ background-repeat: no-repeat;
+ background-position: right $input-height-inner-quarter center;
+ background-size: $input-height-inner-half $input-height-inner-half;
+ }
+
+ &:focus {
+ border-color: $color;
+ box-shadow: $focus-box-shadow;
+ }
+ }
+ }
+
+ // stylelint-disable-next-line selector-no-qualifying-type
+ textarea.form-control {
+ @include form-validation-state-selector($state) {
+ @if $enable-validation-icons {
+ padding-right: $input-height-inner;
+ background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
+ }
+ }
+ }
+
+ .form-select {
+ @include form-validation-state-selector($state) {
+ border-color: $color;
+
+ @if $enable-validation-icons {
+ &:not([multiple]):not([size]),
+ &:not([multiple])[size="1"] {
+ padding-right: $form-select-feedback-icon-padding-end;
+ background-image: escape-svg($form-select-indicator), escape-svg($icon);
+ background-position: $form-select-bg-position, $form-select-feedback-icon-position;
+ background-size: $form-select-bg-size, $form-select-feedback-icon-size;
+ }
+ }
+
+ &:focus {
+ border-color: $color;
+ box-shadow: $focus-box-shadow;
+ }
+ }
+ }
+
+ .form-control-color {
+ @include form-validation-state-selector($state) {
+ @if $enable-validation-icons {
+ width: add($form-color-width, $input-height-inner);
+ }
+ }
+ }
+
+ .form-check-input {
+ @include form-validation-state-selector($state) {
+ border-color: $color;
+
+ &:checked {
+ background-color: $color;
+ }
+
+ &:focus {
+ box-shadow: $focus-box-shadow;
+ }
+
+ ~ .form-check-label {
+ color: $color;
+ }
+ }
+ }
+ .form-check-inline .form-check-input {
+ ~ .#{$state}-feedback {
+ margin-left: .5em;
+ }
+ }
+
+ .input-group {
+ > .form-control:not(:focus),
+ > .form-select:not(:focus),
+ > .form-floating:not(:focus-within) {
+ @include form-validation-state-selector($state) {
+ @if $state == "valid" {
+ z-index: 3;
+ } @else if $state == "invalid" {
+ z-index: 4;
+ }
+ }
+ }
+ }
+}
+// scss-docs-end form-validation-mixins
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_gradients.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_gradients.scss
new file mode 100644
index 0000000000..608e18df2e
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_gradients.scss
@@ -0,0 +1,47 @@
+// Gradients
+
+// scss-docs-start gradient-bg-mixin
+@mixin gradient-bg($color: null) {
+ background-color: $color;
+
+ @if $enable-gradients {
+ background-image: var(--#{$prefix}gradient);
+ }
+}
+// scss-docs-end gradient-bg-mixin
+
+// scss-docs-start gradient-mixins
+// Horizontal gradient, from left to right
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
+ background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
+}
+
+// Vertical gradient, from top to bottom
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: null, $end-percent: null) {
+ background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
+}
+
+@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {
+ background-image: linear-gradient($deg, $start-color, $end-color);
+}
+
+@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
+ background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
+}
+
+@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
+ background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
+}
+
+@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {
+ background-image: radial-gradient(circle, $inner-color, $outer-color);
+}
+
+@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {
+ background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+}
+// scss-docs-end gradient-mixins
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_grid.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_grid.scss
new file mode 100644
index 0000000000..38e2239fdb
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_grid.scss
@@ -0,0 +1,151 @@
+// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+@mixin make-row($gutter: $grid-gutter-width) {
+ --#{$prefix}gutter-x: #{$gutter};
+ --#{$prefix}gutter-y: 0;
+ display: flex;
+ flex-wrap: wrap;
+ // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed
+ margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list
+ margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
+ margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
+}
+
+@mixin make-col-ready() {
+ // Add box sizing if only the grid is loaded
+ box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);
+ // Prevent columns from becoming too narrow when at smaller grid tiers by
+ // always setting `width: 100%;`. This works because we set the width
+ // later on to override this initial width.
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid
+ padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+ padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+ margin-top: var(--#{$prefix}gutter-y);
+}
+
+@mixin make-col($size: false, $columns: $grid-columns) {
+ @if $size {
+ flex: 0 0 auto;
+ width: percentage(divide($size, $columns));
+
+ } @else {
+ flex: 1 1 0;
+ max-width: 100%;
+ }
+}
+
+@mixin make-col-auto() {
+ flex: 0 0 auto;
+ width: auto;
+}
+
+@mixin make-col-offset($size, $columns: $grid-columns) {
+ $num: divide($size, $columns);
+ margin-left: if($num == 0, 0, percentage($num));
+}
+
+// Row columns
+//
+// Specify on a parent element(e.g., .row) to force immediate children into NN
+// number of columns. Supports wrapping to new lines, but does not do a Masonry
+// style grid.
+@mixin row-cols($count) {
+ > * {
+ flex: 0 0 auto;
+ width: divide(100%, $count);
+ }
+}
+
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `$grid-columns`.
+
+@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
+ @each $breakpoint in map-keys($breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
+
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
+ // Provide basic `.col-{bp}` classes for equal-width flexbox columns
+ .col#{$infix} {
+ flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
+ }
+
+ .row-cols#{$infix}-auto > * {
+ @include make-col-auto();
+ }
+
+ @if $grid-row-columns > 0 {
+ @for $i from 1 through $grid-row-columns {
+ .row-cols#{$infix}-#{$i} {
+ @include row-cols($i);
+ }
+ }
+ }
+
+ .col#{$infix}-auto {
+ @include make-col-auto();
+ }
+
+ @if $columns > 0 {
+ @for $i from 1 through $columns {
+ .col#{$infix}-#{$i} {
+ @include make-col($i, $columns);
+ }
+ }
+
+ // `$columns - 1` because offsetting by the width of an entire row isn't possible
+ @for $i from 0 through ($columns - 1) {
+ @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
+ .offset#{$infix}-#{$i} {
+ @include make-col-offset($i, $columns);
+ }
+ }
+ }
+ }
+
+ // Gutters
+ //
+ // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.
+ @each $key, $value in $gutters {
+ .g#{$infix}-#{$key},
+ .gx#{$infix}-#{$key} {
+ --#{$prefix}gutter-x: #{$value};
+ }
+
+ .g#{$infix}-#{$key},
+ .gy#{$infix}-#{$key} {
+ --#{$prefix}gutter-y: #{$value};
+ }
+ }
+ }
+ }
+}
+
+@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {
+ @each $breakpoint in map-keys($breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
+
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
+ @if $columns > 0 {
+ @for $i from 1 through $columns {
+ .g-col#{$infix}-#{$i} {
+ grid-column: auto / span $i;
+ }
+ }
+
+ // Start with `1` because `0` is and invalid value.
+ // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.
+ @for $i from 1 through ($columns - 1) {
+ .g-start#{$infix}-#{$i} {
+ grid-column-start: $i;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_image.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_image.scss
new file mode 100644
index 0000000000..e1df779f84
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_image.scss
@@ -0,0 +1,16 @@
+// Image Mixins
+// - Responsive image
+// - Retina image
+
+
+// Responsive image
+//
+// Keep images from scaling beyond the width of their parents.
+
+@mixin img-fluid {
+ // Part 1: Set a maximum relative to the parent
+ max-width: 100%;
+ // Part 2: Override the height to auto, otherwise images will be stretched
+ // when setting a width and height attribute on the img element.
+ height: auto;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_list-group.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_list-group.scss
new file mode 100644
index 0000000000..e55415f2b8
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_list-group.scss
@@ -0,0 +1,24 @@
+// List Groups
+
+// scss-docs-start list-group-mixin
+@mixin list-group-item-variant($state, $background, $color) {
+ .list-group-item-#{$state} {
+ color: $color;
+ background-color: $background;
+
+ &.list-group-item-action {
+ &:hover,
+ &:focus {
+ color: $color;
+ background-color: shade-color($background, 10%);
+ }
+
+ &.active {
+ color: $white;
+ background-color: $color;
+ border-color: $color;
+ }
+ }
+ }
+}
+// scss-docs-end list-group-mixin
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_lists.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_lists.scss
new file mode 100644
index 0000000000..2518562669
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_lists.scss
@@ -0,0 +1,7 @@
+// Lists
+
+// Unstyled keeps list items block level, just removes default browser padding and list-style
+@mixin list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_pagination.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_pagination.scss
new file mode 100644
index 0000000000..0d657964fb
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_pagination.scss
@@ -0,0 +1,10 @@
+// Pagination
+
+// scss-docs-start pagination-mixin
+@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {
+ --#{$prefix}pagination-padding-x: #{$padding-x};
+ --#{$prefix}pagination-padding-y: #{$padding-y};
+ @include rfs($font-size, --#{$prefix}pagination-font-size);
+ --#{$prefix}pagination-border-radius: #{$border-radius};
+}
+// scss-docs-end pagination-mixin
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_reset-text.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_reset-text.scss
new file mode 100644
index 0000000000..f5bd1afec2
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_reset-text.scss
@@ -0,0 +1,17 @@
+@mixin reset-text {
+ font-family: $font-family-base;
+ // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.
+ font-style: normal;
+ font-weight: $font-weight-normal;
+ line-height: $line-height-base;
+ text-align: left; // Fallback for where `start` is not supported
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ white-space: normal;
+ word-spacing: normal;
+ line-break: auto;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_resize.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_resize.scss
new file mode 100644
index 0000000000..66f233a63c
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_resize.scss
@@ -0,0 +1,6 @@
+// Resize anything
+
+@mixin resizable($direction) {
+ overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
+ resize: $direction; // Options: horizontal, vertical, both
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_table-variants.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_table-variants.scss
new file mode 100644
index 0000000000..ae43ec63d9
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_table-variants.scss
@@ -0,0 +1,24 @@
+// scss-docs-start table-variant
+@mixin table-variant($state, $background) {
+ .table-#{$state} {
+ $color: color-contrast(opaque($body-bg, $background));
+ $hover-bg: mix($color, $background, percentage($table-hover-bg-factor));
+ $striped-bg: mix($color, $background, percentage($table-striped-bg-factor));
+ $active-bg: mix($color, $background, percentage($table-active-bg-factor));
+ $border-color: mix($color, $background, percentage($table-border-factor));
+
+ --#{$prefix}table-color: #{$color};
+ --#{$prefix}table-bg: #{$background};
+ --#{$prefix}table-border-color: #{$border-color};
+ --#{$prefix}table-striped-bg: #{$striped-bg};
+ --#{$prefix}table-striped-color: #{color-contrast($striped-bg)};
+ --#{$prefix}table-active-bg: #{$active-bg};
+ --#{$prefix}table-active-color: #{color-contrast($active-bg)};
+ --#{$prefix}table-hover-bg: #{$hover-bg};
+ --#{$prefix}table-hover-color: #{color-contrast($hover-bg)};
+
+ color: var(--#{$prefix}table-color);
+ border-color: var(--#{$prefix}table-border-color);
+ }
+}
+// scss-docs-end table-variant
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_text-truncate.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_text-truncate.scss
new file mode 100644
index 0000000000..3504bb1aa5
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_text-truncate.scss
@@ -0,0 +1,8 @@
+// Text truncate
+// Requires inline-block or block for proper styling
+
+@mixin text-truncate() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_transition.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_transition.scss
new file mode 100644
index 0000000000..d437f6d8f4
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_transition.scss
@@ -0,0 +1,26 @@
+// stylelint-disable property-disallowed-list
+@mixin transition($transition...) {
+ @if length($transition) == 0 {
+ $transition: $transition-base;
+ }
+
+ @if length($transition) > 1 {
+ @each $value in $transition {
+ @if $value == null or $value == none {
+ @warn "The keyword 'none' or 'null' must be used as a single argument.";
+ }
+ }
+ }
+
+ @if $enable-transitions {
+ @if nth($transition, 1) != null {
+ transition: $transition;
+ }
+
+ @if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {
+ @media (prefers-reduced-motion: reduce) {
+ transition: none;
+ }
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_utilities.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_utilities.scss
new file mode 100644
index 0000000000..59a2374617
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_utilities.scss
@@ -0,0 +1,97 @@
+// Utility generator
+// Used to generate utilities & print utilities
+@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {
+ $values: map-get($utility, values);
+
+ // If the values are a list or string, convert it into a map
+ @if type-of($values) == "string" or type-of(nth($values, 1)) != "list" {
+ $values: zip($values, $values);
+ }
+
+ @each $key, $value in $values {
+ $properties: map-get($utility, property);
+
+ // Multiple properties are possible, for example with vertical or horizontal margins or paddings
+ @if type-of($properties) == "string" {
+ $properties: append((), $properties);
+ }
+
+ // Use custom class if present
+ $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));
+ $property-class: if($property-class == null, "", $property-class);
+
+ // Use custom CSS variable name if present, otherwise default to `class`
+ $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));
+
+ // State params to generate pseudo-classes
+ $state: if(map-has-key($utility, state), map-get($utility, state), ());
+
+ $infix: if($property-class == "" and str-slice($infix, 1, 1) == "-", str-slice($infix, 2), $infix);
+
+ // Don't prefix if value key is null (e.g. with shadow class)
+ $property-class-modifier: if($key, if($property-class == "" and $infix == "", "", "-") + $key, "");
+
+ @if map-get($utility, rfs) {
+ // Inside the media query
+ @if $is-rfs-media-query {
+ $val: rfs-value($value);
+
+ // Do not render anything if fluid and non fluid values are the same
+ $value: if($val == rfs-fluid-value($value), null, $val);
+ }
+ @else {
+ $value: rfs-fluid-value($value);
+ }
+ }
+
+ $is-css-var: map-get($utility, css-var);
+ $is-local-vars: map-get($utility, local-vars);
+ $is-rtl: map-get($utility, rtl);
+
+ @if $value != null {
+ @if $is-rtl == false {
+ /* rtl:begin:remove */
+ }
+
+ @if $is-css-var {
+ .#{$property-class + $infix + $property-class-modifier} {
+ --#{$prefix}#{$css-variable-name}: #{$value};
+ }
+
+ @each $pseudo in $state {
+ .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
+ --#{$prefix}#{$css-variable-name}: #{$value};
+ }
+ }
+ } @else {
+ .#{$property-class + $infix + $property-class-modifier} {
+ @each $property in $properties {
+ @if $is-local-vars {
+ @each $local-var, $variable in $is-local-vars {
+ --#{$prefix}#{$local-var}: #{$variable};
+ }
+ }
+ #{$property}: $value if($enable-important-utilities, !important, null);
+ }
+ }
+
+ @each $pseudo in $state {
+ .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
+ @each $property in $properties {
+ @if $is-local-vars {
+ @each $local-var, $variable in $is-local-vars {
+ --#{$prefix}#{$local-var}: #{$variable};
+ }
+ }
+ #{$property}: $value if($enable-important-utilities, !important, null);
+ }
+ }
+ }
+ }
+
+ @if $is-rtl == false {
+ /* rtl:end:remove */
+ }
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_visually-hidden.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_visually-hidden.scss
new file mode 100644
index 0000000000..4fc7f49d69
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/mixins/_visually-hidden.scss
@@ -0,0 +1,29 @@
+// stylelint-disable declaration-no-important
+
+// Hide content visually while keeping it accessible to assistive technologies
+//
+// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
+// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/
+
+@mixin visually-hidden() {
+ position: absolute !important;
+ width: 1px !important;
+ height: 1px !important;
+ padding: 0 !important;
+ margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686
+ overflow: hidden !important;
+ clip: rect(0, 0, 0, 0) !important;
+ white-space: nowrap !important;
+ border: 0 !important;
+}
+
+// Use to only display content when it's focused, or one of its child elements is focused
+// (i.e. when focus is within the element/container that the class was applied to)
+//
+// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+
+@mixin visually-hidden-focusable() {
+ &:not(:focus):not(:focus-within) {
+ @include visually-hidden();
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/utilities/_api.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/utilities/_api.scss
new file mode 100644
index 0000000000..62e1d398e3
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/utilities/_api.scss
@@ -0,0 +1,47 @@
+// Loop over each breakpoint
+@each $breakpoint in map-keys($grid-breakpoints) {
+
+ // Generate media query if needed
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ // Loop over each utility property
+ @each $key, $utility in $utilities {
+ // The utility can be disabled with `false`, thus check if the utility is a map first
+ // Only proceed if responsive media queries are enabled or if it's the base media query
+ @if type-of($utility) == "map" and (map-get($utility, responsive) or $infix == "") {
+ @include generate-utility($utility, $infix);
+ }
+ }
+ }
+}
+
+// RFS rescaling
+@media (min-width: $rfs-mq-value) {
+ @each $breakpoint in map-keys($grid-breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {
+ // Loop over each utility property
+ @each $key, $utility in $utilities {
+ // The utility can be disabled with `false`, thus check if the utility is a map first
+ // Only proceed if responsive media queries are enabled or if it's the base media query
+ @if type-of($utility) == "map" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == "") {
+ @include generate-utility($utility, $infix, true);
+ }
+ }
+ }
+ }
+}
+
+
+// Print utilities
+@media print {
+ @each $key, $utility in $utilities {
+ // The utility can be disabled with `false`, thus check if the utility is a map first
+ // Then check if the utility needs print styles
+ @if type-of($utility) == "map" and map-get($utility, print) == true {
+ @include generate-utility($utility, "-print");
+ }
+ }
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/bootstrap/vendor/_rfs.scss b/csit.infra.dash/app/cdash/static/sass/bootstrap/vendor/_rfs.scss
new file mode 100644
index 0000000000..7e9a6c7a8a
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/bootstrap/vendor/_rfs.scss
@@ -0,0 +1,354 @@
+// stylelint-disable property-blacklist, scss/dollar-variable-default
+
+// SCSS RFS mixin
+//
+// Automated responsive values for font sizes, paddings, margins and much more
+//
+// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)
+
+// Configuration
+
+// Base value
+$rfs-base-value: 1.25rem !default;
+$rfs-unit: rem !default;
+
+@if $rfs-unit != rem and $rfs-unit != px {
+ @error "`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.";
+}
+
+// Breakpoint at where values start decreasing if screen width is smaller
+$rfs-breakpoint: 1200px !default;
+$rfs-breakpoint-unit: px !default;
+
+@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {
+ @error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
+}
+
+// Resize values based on screen height and width
+$rfs-two-dimensional: false !default;
+
+// Factor of decrease
+$rfs-factor: 10 !default;
+
+@if type-of($rfs-factor) != number or $rfs-factor <= 1 {
+ @error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";
+}
+
+// Mode. Possibilities: "min-media-query", "max-media-query"
+$rfs-mode: min-media-query !default;
+
+// Generate enable or disable classes. Possibilities: false, "enable" or "disable"
+$rfs-class: false !default;
+
+// 1 rem = $rfs-rem-value px
+$rfs-rem-value: 16 !default;
+
+// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
+$rfs-safari-iframe-resize-bug-fix: false !default;
+
+// Disable RFS by setting $enable-rfs to false
+$enable-rfs: true !default;
+
+// Cache $rfs-base-value unit
+$rfs-base-value-unit: unit($rfs-base-value);
+
+@function divide($dividend, $divisor, $precision: 10) {
+ $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
+ $dividend: abs($dividend);
+ $divisor: abs($divisor);
+ @if $dividend == 0 {
+ @return 0;
+ }
+ @if $divisor == 0 {
+ @error "Cannot divide by 0";
+ }
+ $remainder: $dividend;
+ $result: 0;
+ $factor: 10;
+ @while ($remainder > 0 and $precision >= 0) {
+ $quotient: 0;
+ @while ($remainder >= $divisor) {
+ $remainder: $remainder - $divisor;
+ $quotient: $quotient + 1;
+ }
+ $result: $result * 10 + $quotient;
+ $factor: $factor * .1;
+ $remainder: $remainder * 10;
+ $precision: $precision - 1;
+ @if ($precision < 0 and $remainder >= $divisor * 5) {
+ $result: $result + 1;
+ }
+ }
+ $result: $result * $factor * $sign;
+ $dividend-unit: unit($dividend);
+ $divisor-unit: unit($divisor);
+ $unit-map: (
+ "px": 1px,
+ "rem": 1rem,
+ "em": 1em,
+ "%": 1%
+ );
+ @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
+ $result: $result * map-get($unit-map, $dividend-unit);
+ }
+ @return $result;
+}
+
+// Remove px-unit from $rfs-base-value for calculations
+@if $rfs-base-value-unit == px {
+ $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);
+}
+@else if $rfs-base-value-unit == rem {
+ $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));
+}
+
+// Cache $rfs-breakpoint unit to prevent multiple calls
+$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
+
+// Remove unit from $rfs-breakpoint for calculations
+@if $rfs-breakpoint-unit-cache == px {
+ $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
+}
+@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == "em" {
+ $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
+}
+
+// Calculate the media query value
+$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
+$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);
+$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);
+
+// Internal mixin used to determine which media query needs to be used
+@mixin _rfs-media-query {
+ @if $rfs-two-dimensional {
+ @if $rfs-mode == max-media-query {
+ @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
+ @content;
+ }
+ }
+ @else {
+ @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
+ @content;
+ }
+ }
+ }
+ @else {
+ @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {
+ @content;
+ }
+ }
+}
+
+// Internal mixin that adds disable classes to the selector if needed.
+@mixin _rfs-rule {
+ @if $rfs-class == disable and $rfs-mode == max-media-query {
+ // Adding an extra class increases specificity, which prevents the media query to override the property
+ &,
+ .disable-rfs &,
+ &.disable-rfs {
+ @content;
+ }
+ }
+ @else if $rfs-class == enable and $rfs-mode == min-media-query {
+ .enable-rfs &,
+ &.enable-rfs {
+ @content;
+ }
+ }
+ @else {
+ @content;
+ }
+}
+
+// Internal mixin that adds enable classes to the selector if needed.
+@mixin _rfs-media-query-rule {
+
+ @if $rfs-class == enable {
+ @if $rfs-mode == min-media-query {
+ @content;
+ }
+
+ @include _rfs-media-query {
+ .enable-rfs &,
+ &.enable-rfs {
+ @content;
+ }
+ }
+ }
+ @else {
+ @if $rfs-class == disable and $rfs-mode == min-media-query {
+ .disable-rfs &,
+ &.disable-rfs {
+ @content;
+ }
+ }
+ @include _rfs-media-query {
+ @content;
+ }
+ }
+}
+
+// Helper function to get the formatted non-responsive value
+@function rfs-value($values) {
+ // Convert to list
+ $values: if(type-of($values) != list, ($values,), $values);
+
+ $val: '';
+
+ // Loop over each value and calculate value
+ @each $value in $values {
+ @if $value == 0 {
+ $val: $val + ' 0';
+ }
+ @else {
+ // Cache $value unit
+ $unit: if(type-of($value) == "number", unit($value), false);
+
+ @if $unit == px {
+ // Convert to rem if needed
+ $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);
+ }
+ @else if $unit == rem {
+ // Convert to px if needed
+ $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);
+ }
+ @else {
+ // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
+ $val: $val + ' ' + $value;
+ }
+ }
+ }
+
+ // Remove first space
+ @return unquote(str-slice($val, 2));
+}
+
+// Helper function to get the responsive value calculated by RFS
+@function rfs-fluid-value($values) {
+ // Convert to list
+ $values: if(type-of($values) != list, ($values,), $values);
+
+ $val: '';
+
+ // Loop over each value and calculate value
+ @each $value in $values {
+ @if $value == 0 {
+ $val: $val + ' 0';
+ }
+
+ @else {
+ // Cache $value unit
+ $unit: if(type-of($value) == "number", unit($value), false);
+
+ // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
+ @if not $unit or $unit != px and $unit != rem {
+ $val: $val + ' ' + $value;
+ }
+
+ @else {
+ // Remove unit from $value for calculations
+ $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));
+
+ // Only add the media query if the value is greater than the minimum value
+ @if abs($value) <= $rfs-base-value or not $enable-rfs {
+ $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);
+ }
+ @else {
+ // Calculate the minimum value
+ $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);
+
+ // Calculate difference between $value and the minimum value
+ $value-diff: abs($value) - $value-min;
+
+ // Base value formatting
+ $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);
+
+ // Use negative value if needed
+ $min-width: if($value < 0, -$min-width, $min-width);
+
+ // Use `vmin` if two-dimensional is enabled
+ $variable-unit: if($rfs-two-dimensional, vmin, vw);
+
+ // Calculate the variable width between 0 and $rfs-breakpoint
+ $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};
+
+ // Return the calculated value
+ $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';
+ }
+ }
+ }
+ }
+
+ // Remove first space
+ @return unquote(str-slice($val, 2));
+}
+
+// RFS mixin
+@mixin rfs($values, $property: font-size) {
+ @if $values != null {
+ $val: rfs-value($values);
+ $fluidVal: rfs-fluid-value($values);
+
+ // Do not print the media query if responsive & non-responsive values are the same
+ @if $val == $fluidVal {
+ #{$property}: $val;
+ }
+ @else {
+ @include _rfs-rule {
+ #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);
+
+ // Include safari iframe resize fix if needed
+ min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);
+ }
+
+ @include _rfs-media-query-rule {
+ #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);
+ }
+ }
+ }
+}
+
+// Shorthand helper mixins
+@mixin font-size($value) {
+ @include rfs($value);
+}
+
+@mixin padding($value) {
+ @include rfs($value, padding);
+}
+
+@mixin padding-top($value) {
+ @include rfs($value, padding-top);
+}
+
+@mixin padding-right($value) {
+ @include rfs($value, padding-right);
+}
+
+@mixin padding-bottom($value) {
+ @include rfs($value, padding-bottom);
+}
+
+@mixin padding-left($value) {
+ @include rfs($value, padding-left);
+}
+
+@mixin margin($value) {
+ @include rfs($value, margin);
+}
+
+@mixin margin-top($value) {
+ @include rfs($value, margin-top);
+}
+
+@mixin margin-right($value) {
+ @include rfs($value, margin-right);
+}
+
+@mixin margin-bottom($value) {
+ @include rfs($value, margin-bottom);
+}
+
+@mixin margin-left($value) {
+ @include rfs($value, margin-left);
+}
diff --git a/csit.infra.dash/app/cdash/static/sass/lux.scss b/csit.infra.dash/app/cdash/static/sass/lux.scss
new file mode 100644
index 0000000000..f32f93c5d4
--- /dev/null
+++ b/csit.infra.dash/app/cdash/static/sass/lux.scss
@@ -0,0 +1,9 @@
+// Your variable overrides go here, e.g.:
+// $h1-font-size: 3rem;
+
+$accordion-padding-y: 0.5rem;
+$accordion-padding-x: 0.65rem;
+
+@import "variables";
+@import "bootstrap/bootstrap";
+@import "bootswatch"; \ No newline at end of file
diff --git a/csit.infra.dash/app/cdash/stats/__init__.py b/csit.infra.dash/app/cdash/stats/__init__.py
new file mode 100644
index 0000000000..c6a5f639fe
--- /dev/null
+++ b/csit.infra.dash/app/cdash/stats/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
diff --git a/csit.infra.dash/app/cdash/stats/graphs.py b/csit.infra.dash/app/cdash/stats/graphs.py
new file mode 100644
index 0000000000..4b25396680
--- /dev/null
+++ b/csit.infra.dash/app/cdash/stats/graphs.py
@@ -0,0 +1,129 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""
+"""
+
+import plotly.graph_objects as go
+import pandas as pd
+
+from ..utils.constants import Constants as C
+
+
+def select_data(data: pd.DataFrame, itm: str) -> pd.DataFrame:
+ """Select the data for graphs from the provided data frame.
+
+ :param data: Data frame with data for graphs.
+ :param itm: Item (in this case job name) which data will be selected from
+ the input data frame.
+ :type data: pandas.DataFrame
+ :type itm: str
+ :returns: A data frame with selected data.
+ :rtype: pandas.DataFrame
+ """
+
+ df = data.loc[(data["job"] == itm)].sort_values(
+ by="start_time", ignore_index=True)
+ df = df.dropna(subset=["duration", ])
+
+ return df
+
+
+def graph_statistics(df: pd.DataFrame, job: str, layout: dict) -> tuple:
+ """Generate graphs:
+ 1. Passed / failed tests,
+ 2. Job durations
+ with additional information shown in hover.
+
+ :param df: Data frame with input data.
+ :param job: The name of job which data will be presented in the graphs.
+ :param layout: Layout of plot.ly graph.
+ :type df: pandas.DataFrame
+ :type job: str
+ :type layout: dict
+ :returns: Tuple with two generated graphs (pased/failed tests and job
+ duration).
+ :rtype: tuple(plotly.graph_objects.Figure, plotly.graph_objects.Figure)
+ """
+
+ data = select_data(df, job)
+ if data.empty:
+ return None, None
+
+ hover = list()
+ for _, row in data.iterrows():
+ hover_itm = (
+ f"date: {row['start_time'].strftime('%Y-%m-%d %H:%M:%S')}<br>"
+ f"duration: "
+ f"{(int(row['duration']) // 3600):02d}:"
+ f"{((int(row['duration']) % 3600) // 60):02d}<br>"
+ f"passed: {row['passed']}<br>"
+ f"failed: {row['failed']}<br>"
+ f"{row['dut_type']}-ref: {row['dut_version']}<br>"
+ f"csit-ref: {row['job']}/{row['build']}<br>"
+ f"hosts: {', '.join(row['hosts'])}"
+ )
+ hover.append(hover_itm)
+
+ # Job durations:
+ fig_duration = go.Figure(
+ data=go.Scatter(
+ x=data["start_time"],
+ y=data["duration"],
+ name="Duration",
+ text=hover,
+ hoverinfo="text"
+ )
+ )
+
+ tickvals = [0, ]
+ step = max(data["duration"]) / 5
+ for i in range(5):
+ tickvals.append(int(step * (i + 1)))
+ layout_duration = layout.get("plot-stats-duration", dict())
+ if layout_duration:
+ layout_duration["yaxis"]["tickvals"] = tickvals
+ layout_duration["yaxis"]["ticktext"] = [
+ f"{(val // 3600):02d}:{((val % 3600) // 60):02d}" \
+ for val in tickvals
+ ]
+ fig_duration.update_layout(layout_duration)
+
+ # Passed / failed:
+ bar_width = C.STATS_BAR_WIDTH_WEEKLY \
+ if "weekly" in job else C.STATS_BAR_WIDTH_DAILY
+ fig_passed = go.Figure(
+ data=[
+ go.Bar(
+ x=data["start_time"],
+ y=data["passed"],
+ name="Passed",
+ hovertext=hover,
+ hoverinfo="text",
+ width=bar_width
+ ),
+ go.Bar(
+ x=data["start_time"],
+ y=data["failed"],
+ name="Failed",
+ hovertext=hover,
+ hoverinfo="text",
+ width=bar_width
+ )
+ ]
+ )
+ layout_pf = layout.get("plot-stats-passed", dict())
+ if layout_pf:
+ fig_passed.update_layout(layout_pf)
+
+ return fig_passed, fig_duration
diff --git a/csit.infra.dash/app/cdash/stats/layout.py b/csit.infra.dash/app/cdash/stats/layout.py
new file mode 100644
index 0000000000..4e7b72e06f
--- /dev/null
+++ b/csit.infra.dash/app/cdash/stats/layout.py
@@ -0,0 +1,853 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Plotly Dash HTML layout override.
+"""
+
+import logging
+import pandas as pd
+import dash_bootstrap_components as dbc
+
+from flask import Flask
+from dash import dcc
+from dash import html
+from dash import callback_context, no_update
+from dash import Input, Output, State
+from dash.exceptions import PreventUpdate
+from yaml import load, FullLoader, YAMLError
+
+from ..utils.constants import Constants as C
+from ..utils.control_panel import ControlPanel
+from ..utils.utils import show_tooltip, gen_new_url, get_ttypes, get_cadences, \
+ get_test_beds, get_job, generate_options, set_job_params, navbar_trending
+from ..utils.url_processing import url_decode
+from .graphs import graph_statistics, select_data
+
+
+class Layout:
+ """The layout of the dash app and the callbacks.
+ """
+
+ def __init__(
+ self,
+ app: Flask,
+ data_stats: pd.DataFrame,
+ data_trending: pd.DataFrame,
+ html_layout_file: str,
+ graph_layout_file: str,
+ tooltip_file: str
+ ) -> None:
+ """Initialization:
+ - save the input parameters,
+ - read and pre-process the data,
+ - prepare data for the control panel,
+ - read HTML layout file,
+ - read tooltips from the tooltip file.
+
+ :param app: Flask application running the dash application.
+ :param data_stats: Pandas dataframe with staistical data.
+ :param data_trending: Pandas dataframe with trending data.
+ :param html_layout_file: Path and name of the file specifying the HTML
+ layout of the dash application.
+ :param graph_layout_file: Path and name of the file with layout of
+ plot.ly graphs.
+ :param tooltip_file: Path and name of the yaml file specifying the
+ tooltips.
+ :type app: Flask
+ :type data_stats: pandas.DataFrame
+ :type data_trending: pandas.DataFrame
+ :type html_layout_file: str
+ :type graph_layout_file: str
+ :type tooltip_file: str
+ """
+
+ # Inputs
+ self._app = app
+ self._html_layout_file = html_layout_file
+ self._graph_layout_file = graph_layout_file
+ self._tooltip_file = tooltip_file
+
+ # Pre-process the data:
+ data_stats = data_stats[~data_stats.job.str.contains("-verify-")]
+ data_stats = data_stats[~data_stats.job.str.contains("-coverage-")]
+ data_stats = data_stats[~data_stats.job.str.contains("-iterative-")]
+ data_stats = data_stats[["job", "build", "start_time", "duration"]]
+
+ jobs = sorted(list(data_stats["job"].unique()))
+ d_job_info = {
+ "job": list(),
+ "dut": list(),
+ "ttype": list(),
+ "cadence": list(),
+ "tbed": list()
+ }
+ for job in jobs:
+ lst_job = job.split("-")
+ d_job_info["job"].append(job)
+ d_job_info["dut"].append(lst_job[1])
+ d_job_info["ttype"].append(lst_job[3])
+ d_job_info["cadence"].append(lst_job[4])
+ d_job_info["tbed"].append("-".join(lst_job[-2:]))
+ self._job_info = pd.DataFrame.from_dict(d_job_info)
+
+ self._default = set_job_params(self._job_info, C.STATS_DEFAULT_JOB)
+
+ tst_info = {
+ "job": list(),
+ "build": list(),
+ "dut_type": list(),
+ "dut_version": list(),
+ "hosts": list(),
+ "passed": list(),
+ "failed": list(),
+ "lst_failed": list()
+ }
+ for job in jobs:
+ df_job = data_trending.loc[(data_trending["job"] == job)]
+ builds = df_job["build"].unique()
+ for build in builds:
+ df_build = df_job.loc[(df_job["build"] == build)]
+ tst_info["job"].append(job)
+ tst_info["build"].append(build)
+ tst_info["dut_type"].append(df_build["dut_type"].iloc[-1])
+ tst_info["dut_version"].append(df_build["dut_version"].iloc[-1])
+ tst_info["hosts"].append(df_build["hosts"].iloc[-1])
+ try:
+ passed = df_build.value_counts(subset="passed")[True]
+ except KeyError:
+ passed = 0
+ try:
+ failed = df_build.value_counts(subset="passed")[False]
+ failed_tests = df_build.loc[(df_build["passed"] == False)]\
+ ["test_id"].to_list()
+ l_failed = list()
+ for tst in failed_tests:
+ lst_tst = tst.split(".")
+ suite = lst_tst[-2].replace("2n1l-", "").\
+ replace("1n1l-", "").replace("2n-", "")
+ l_failed.append(f"{suite.split('-')[0]}-{lst_tst[-1]}")
+ except KeyError:
+ failed = 0
+ l_failed = list()
+ tst_info["passed"].append(passed)
+ tst_info["failed"].append(failed)
+ tst_info["lst_failed"].append(sorted(l_failed))
+
+ self._data = data_stats.merge(pd.DataFrame.from_dict(tst_info))
+
+ # Read from files:
+ self._html_layout = str()
+ self._graph_layout = None
+ self._tooltips = dict()
+
+ try:
+ with open(self._html_layout_file, "r") as file_read:
+ self._html_layout = file_read.read()
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._html_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._graph_layout_file, "r") as file_read:
+ self._graph_layout = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._graph_layout_file}\n"
+ f"{err}"
+ )
+ except YAMLError as err:
+ raise RuntimeError(
+ f"An error occurred while parsing the specification file "
+ f"{self._graph_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._tooltip_file, "r") as file_read:
+ self._tooltips = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ logging.warning(
+ f"Not possible to open the file {self._tooltip_file}\n{err}"
+ )
+ except YAMLError as err:
+ logging.warning(
+ f"An error occurred while parsing the specification file "
+ f"{self._tooltip_file}\n{err}"
+ )
+
+ # Control panel partameters and their default values.
+ self._cp_default = {
+ "ri-ttypes-options": self._default["ttypes"],
+ "ri-cadences-options": self._default["cadences"],
+ "dd-tbeds-options": self._default["tbeds"],
+ "ri-duts-value": self._default["dut"],
+ "ri-ttypes-value": self._default["ttype"],
+ "ri-cadences-value": self._default["cadence"],
+ "dd-tbeds-value": self._default["tbed"],
+ "al-job-children": html.A(
+ self._default["job"],
+ href=f"{C.URL_JENKINS}{self._default['job']}",
+ target="_blank"
+ )
+ }
+
+ # Callbacks:
+ if self._app is not None and hasattr(self, "callbacks"):
+ self.callbacks(self._app)
+
+ @property
+ def html_layout(self) -> dict:
+ return self._html_layout
+
+ def add_content(self):
+ """Top level method which generated the web page.
+
+ It generates:
+ - Store for user input data,
+ - Navigation bar,
+ - Main area with control panel and ploting area.
+
+ If no HTML layout is provided, an error message is displayed instead.
+
+ :returns: The HTML div with the whole page.
+ :rtype: html.Div
+ """
+
+ if self.html_layout:
+ return html.Div(
+ id="div-main",
+ className="small",
+ children=[
+ dcc.Store(id="control-panel"),
+ dcc.Location(id="url", refresh=False),
+ dbc.Row(
+ id="row-navbar",
+ class_name="g-0",
+ children=[navbar_trending((False, False, True, False))]
+ ),
+ dbc.Spinner(
+ dbc.Offcanvas(
+ class_name="w-50",
+ id="offcanvas-metadata",
+ title="Detailed Information",
+ placement="end",
+ is_open=False,
+ children=[
+ dbc.Row(id="row-metadata")
+ ]
+ )
+ ),
+ dbc.Row(
+ id="row-main",
+ class_name="g-0",
+ children=[
+ self._add_ctrl_col(),
+ self._add_plotting_col()
+ ]
+ ),
+ dbc.Offcanvas(
+ class_name="w-75",
+ id="offcanvas-documentation",
+ title="Documentation",
+ placement="end",
+ is_open=False,
+ children=html.Iframe(
+ src=C.URL_DOC_TRENDING,
+ width="100%",
+ height="100%"
+ )
+ )
+ ]
+ )
+ else:
+ return html.Div(
+ id="div-main-error",
+ children=[
+ dbc.Alert(
+ [
+ "An Error Occured",
+ ],
+ color="danger"
+ )
+ ]
+ )
+
+ def _add_ctrl_col(self) -> dbc.Col:
+ """Add column with controls. It is placed on the left side.
+
+ :returns: Column with the control panel.
+ :rtype: dbc.Col
+ """
+ return dbc.Col([
+ html.Div(
+ children=self._add_ctrl_panel(),
+ className="sticky-top"
+ )
+ ])
+
+ def _add_plotting_col(self) -> dbc.Col:
+ """Add column with plots and tables. It is placed on the right side.
+
+ :returns: Column with tables.
+ :rtype: dbc.Col
+ """
+ return dbc.Col(
+ id="col-plotting-area",
+ children=[
+ dbc.Spinner(
+ children=[
+ dbc.Row(
+ id="plotting-area",
+ class_name="g-0 p-0",
+ children=[
+ C.PLACEHOLDER
+ ]
+ )
+ ]
+ )
+ ],
+ width=9
+ )
+
+ def _add_ctrl_panel(self) -> dbc.Row:
+ """Add control panel.
+
+ :returns: Control panel.
+ :rtype: dbc.Row
+ """
+ return [
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-dut",
+ "DUT"
+ )),
+ dbc.RadioItems(
+ id="ri-duts",
+ inline=True,
+ value=self._default["dut"],
+ options=self._default["duts"],
+ class_name="form-control"
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-ttype",
+ "Test Type"
+ )),
+ dbc.RadioItems(
+ id="ri-ttypes",
+ inline=True,
+ value=self._default["ttype"],
+ options=self._default["ttypes"],
+ class_name="form-control"
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-cadence",
+ "Cadence"
+ )),
+ dbc.RadioItems(
+ id="ri-cadences",
+ inline=True,
+ value=self._default["cadence"],
+ options=self._default["cadences"],
+ class_name="form-control"
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-tbed",
+ "Test Bed"
+ )),
+ dbc.Select(
+ id="dd-tbeds",
+ placeholder="Select a test bed...",
+ value=self._default["tbed"],
+ options=self._default["tbeds"]
+ )
+ ],
+ size="sm"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.Alert(
+ id="al-job",
+ color="info",
+ children=self._default["job"]
+ )
+ ]
+ )
+ ]
+
+ def _get_plotting_area(
+ self,
+ job: str,
+ url: str
+ ) -> list:
+ """Generate the plotting area with all its content.
+
+ :param job: The job which data will be displayed.
+ :param url: URL to be displayed in the modal window.
+ :type job: str
+ :type url: str
+ :returns: List of rows with elements to be displayed in the plotting
+ area.
+ :rtype: list
+ """
+
+ figs = graph_statistics(self._data, job, self._graph_layout)
+
+ if not figs[0]:
+ return C.PLACEHOLDER
+
+ return [
+ dbc.Row(
+ id="row-graph-passed",
+ class_name="g-0 p-1",
+ children=[
+ dcc.Graph(
+ id="graph-passed",
+ figure=figs[0]
+ )
+ ]
+ ),
+ dbc.Row(
+ id="row-graph-duration",
+ class_name="g-0 p-1",
+ children=[
+ dcc.Graph(
+ id="graph-duration",
+ figure=figs[1]
+ )
+ ]
+ ),
+ dbc.Row(
+ [
+ dbc.Col([html.Div(
+ [
+ dbc.Button(
+ id="plot-btn-url",
+ children="Show URL",
+ class_name="me-1",
+ color="info",
+ style={
+ "text-transform": "none",
+ "padding": "0rem 1rem"
+ }
+ ),
+ dbc.Modal(
+ [
+ dbc.ModalHeader(dbc.ModalTitle("URL")),
+ dbc.ModalBody(url)
+ ],
+ id="plot-mod-url",
+ size="xl",
+ is_open=False,
+ scrollable=True
+ ),
+ dbc.Button(
+ id="plot-btn-download",
+ children="Download Data",
+ class_name="me-1",
+ color="info",
+ style={
+ "text-transform": "none",
+ "padding": "0rem 1rem"
+ }
+ ),
+ dcc.Download(id="download-stats-data")
+ ],
+ className=\
+ "d-grid gap-0 d-md-flex justify-content-md-end"
+ )])
+ ],
+ class_name="g-0 p-0"
+ )
+ ]
+
+ def callbacks(self, app):
+ """Callbacks for the whole application.
+
+ :param app: The application.
+ :type app: Flask
+ """
+
+ @app.callback(
+ Output("control-panel", "data"), # Store
+ Output("plotting-area", "children"),
+ Output("ri-ttypes", "options"),
+ Output("ri-cadences", "options"),
+ Output("dd-tbeds", "options"),
+ Output("ri-duts", "value"),
+ Output("ri-ttypes", "value"),
+ Output("ri-cadences", "value"),
+ Output("dd-tbeds", "value"),
+ Output("al-job", "children"),
+ State("control-panel", "data"), # Store
+ Input("ri-duts", "value"),
+ Input("ri-ttypes", "value"),
+ Input("ri-cadences", "value"),
+ Input("dd-tbeds", "value"),
+ Input("url", "href")
+ )
+ def _update_ctrl_panel(cp_data: dict, dut: str, ttype: str,
+ cadence: str, tbed: str, href: str) -> tuple:
+ """Update the application when the event is detected.
+
+ :param cp_data: Current status of the control panel stored in
+ browser.
+ :param dut: Input - DUT name.
+ :param ttype: Input - Test type.
+ :param cadence: Input - The cadence of the job.
+ :param tbed: Input - The test bed.
+ :param href: Input - The URL provided by the browser.
+ :type cp_data: dict
+ :type dut: str
+ :type ttype: str
+ :type cadence: str
+ :type tbed: str
+ :type href: str
+ :returns: New values for web page elements.
+ :rtype: tuple
+ """
+
+ ctrl_panel = ControlPanel(self._cp_default, cp_data)
+
+ # Parse the url:
+ parsed_url = url_decode(href)
+ if parsed_url:
+ url_params = parsed_url["params"]
+ else:
+ url_params = None
+
+ trigger_id = callback_context.triggered[0]["prop_id"].split(".")[0]
+ if trigger_id == "ri-duts":
+ ttype_opts = generate_options(get_ttypes(self._job_info, dut))
+ ttype_val = ttype_opts[0]["value"]
+ cad_opts = generate_options(get_cadences(
+ self._job_info, dut, ttype_val))
+ cad_val = cad_opts[0]["value"]
+ tbed_opts = generate_options(get_test_beds(
+ self._job_info, dut, ttype_val, cad_val))
+ tbed_val = tbed_opts[0]["value"]
+ ctrl_panel.set({
+ "ri-duts-value": dut,
+ "ri-ttypes-options": ttype_opts,
+ "ri-ttypes-value": ttype_val,
+ "ri-cadences-options": cad_opts,
+ "ri-cadences-value": cad_val,
+ "dd-tbeds-options": tbed_opts,
+ "dd-tbeds-value": tbed_val
+ })
+ elif trigger_id == "ri-ttypes":
+ cad_opts = generate_options(get_cadences(
+ self._job_info, ctrl_panel.get("ri-duts-value"), ttype))
+ cad_val = cad_opts[0]["value"]
+ tbed_opts = generate_options(get_test_beds(
+ self._job_info, ctrl_panel.get("ri-duts-value"), ttype,
+ cad_val))
+ tbed_val = tbed_opts[0]["value"]
+ ctrl_panel.set({
+ "ri-ttypes-value": ttype,
+ "ri-cadences-options": cad_opts,
+ "ri-cadences-value": cad_val,
+ "dd-tbeds-options": tbed_opts,
+ "dd-tbeds-value": tbed_val
+ })
+ elif trigger_id == "ri-cadences":
+ tbed_opts = generate_options(get_test_beds(
+ self._job_info, ctrl_panel.get("ri-duts-value"),
+ ctrl_panel.get("ri-ttypes-value"), cadence))
+ tbed_val = tbed_opts[0]["value"]
+ ctrl_panel.set({
+ "ri-cadences-value": cadence,
+ "dd-tbeds-options": tbed_opts,
+ "dd-tbeds-value": tbed_val
+ })
+ elif trigger_id == "dd-tbeds":
+ ctrl_panel.set({
+ "dd-tbeds-value": tbed
+ })
+ elif trigger_id == "url":
+ if url_params:
+ new_job = url_params.get("job", list())[0]
+ if new_job:
+ job_params = set_job_params(self._job_info, new_job)
+ ctrl_panel = ControlPanel(
+ {
+ "ri-ttypes-options": job_params["ttypes"],
+ "ri-cadences-options": job_params["cadences"],
+ "dd-tbeds-options": job_params["tbeds"],
+ "ri-duts-value": job_params["dut"],
+ "ri-ttypes-value": job_params["ttype"],
+ "ri-cadences-value": job_params["cadence"],
+ "dd-tbeds-value": job_params["tbed"],
+ "al-job-children": html.A(
+ self._default["job"],
+ href=(
+ f"{C.URL_JENKINS}"
+ f"{self._default['job']}"
+ ),
+ target="_blank"
+ )
+ },
+ None
+ )
+ else:
+ ctrl_panel = ControlPanel(self._cp_default, cp_data)
+
+ job = get_job(
+ self._job_info,
+ ctrl_panel.get("ri-duts-value"),
+ ctrl_panel.get("ri-ttypes-value"),
+ ctrl_panel.get("ri-cadences-value"),
+ ctrl_panel.get("dd-tbeds-value")
+ )
+
+ ctrl_panel.set(
+ {
+ "al-job-children": html.A(
+ job,
+ href=f"{C.URL_JENKINS}{job}",
+ target="_blank"
+ )
+ }
+ )
+ plotting_area = self._get_plotting_area(
+ job,
+ gen_new_url(parsed_url, {"job": job})
+ )
+
+ ret_val = [
+ ctrl_panel.panel,
+ plotting_area
+ ]
+ ret_val.extend(ctrl_panel.values)
+ return ret_val
+
+ @app.callback(
+ Output("plot-mod-url", "is_open"),
+ [Input("plot-btn-url", "n_clicks")],
+ [State("plot-mod-url", "is_open")],
+ )
+ def toggle_plot_mod_url(n, is_open):
+ """Toggle the modal window with url.
+ """
+ if n:
+ return not is_open
+ return is_open
+
+ @app.callback(
+ Output("download-stats-data", "data"),
+ State("control-panel", "data"), # Store
+ Input("plot-btn-download", "n_clicks"),
+ prevent_initial_call=True
+ )
+ def _download_data(cp_data: dict, n_clicks: int):
+ """Download the data
+
+ :param cp_data: Current status of the control panel stored in
+ browser.
+ :param n_clicks: Number of clicks on the button "Download".
+ :type cp_data: dict
+ :type n_clicks: int
+ :returns: dict of data frame content (base64 encoded) and meta data
+ used by the Download component.
+ :rtype: dict
+ """
+ if not n_clicks:
+ raise PreventUpdate
+
+ ctrl_panel = ControlPanel(self._cp_default, cp_data)
+
+ job = get_job(
+ self._job_info,
+ ctrl_panel.get("ri-duts-value"),
+ ctrl_panel.get("ri-ttypes-value"),
+ ctrl_panel.get("ri-cadences-value"),
+ ctrl_panel.get("dd-tbeds-value")
+ )
+
+ data = select_data(self._data, job)
+ data = data.drop(columns=["job", ])
+
+ return dcc.send_data_frame(
+ data.T.to_csv, f"{job}-{C.STATS_DOWNLOAD_FILE_NAME}")
+
+ @app.callback(
+ Output("row-metadata", "children"),
+ Output("offcanvas-metadata", "is_open"),
+ Input("graph-passed", "clickData"),
+ Input("graph-duration", "clickData"),
+ prevent_initial_call=True
+ )
+ def _show_metadata_from_graphs(
+ passed_data: dict, duration_data: dict) -> tuple:
+ """Generates the data for the offcanvas displayed when a particular
+ point in a graph is clicked on.
+
+ :param passed_data: The data from the clicked point in the graph
+ displaying the pass/fail data.
+ :param duration_data: The data from the clicked point in the graph
+ displaying the duration data.
+ :type passed_data: dict
+ :type duration data: dict
+ :returns: The data to be displayed on the offcanvas (job statistics
+ and the list of failed tests) and the information to show the
+ offcanvas.
+ :rtype: tuple(list, bool)
+ """
+
+ if not (passed_data or duration_data):
+ raise PreventUpdate
+
+ metadata = no_update
+ open_canvas = False
+ title = "Job Statistics"
+ trigger_id = callback_context.triggered[0]["prop_id"].split(".")[0]
+ if trigger_id == "graph-passed":
+ graph_data = passed_data["points"][0].get("hovertext", "")
+ elif trigger_id == "graph-duration":
+ graph_data = duration_data["points"][0].get("text", "")
+ if graph_data:
+ lst_graph_data = graph_data.split("<br>")
+
+ # Prepare list of failed tests:
+ job = str()
+ build = str()
+ for itm in lst_graph_data:
+ if "csit-ref:" in itm:
+ job, build = itm.split(" ")[-1].split("/")
+ break
+ if job and build:
+ fail_tests = self._data.loc[
+ (self._data["job"] == job) &
+ (self._data["build"] == build)
+ ]["lst_failed"].values[0]
+ if not fail_tests:
+ fail_tests = None
+ else:
+ fail_tests = None
+
+ # Create the content of the offcanvas:
+ list_group_items = list()
+ for itm in lst_graph_data:
+ lst_itm = itm.split(": ")
+ if lst_itm[0] == "csit-ref":
+ list_group_item = dbc.ListGroupItem([
+ dbc.Badge(lst_itm[0]),
+ html.A(
+ lst_itm[1],
+ href=f"{C.URL_JENKINS}{lst_itm[1]}",
+ target="_blank"
+ )
+ ])
+ else:
+ list_group_item = dbc.ListGroupItem([
+ dbc.Badge(lst_itm[0]),
+ lst_itm[1]
+ ])
+ list_group_items.append(list_group_item)
+ metadata = [
+ dbc.Card(
+ class_name="gy-2 p-0",
+ children=[
+ dbc.CardHeader([
+ dcc.Clipboard(
+ target_id="metadata",
+ title="Copy",
+ style={"display": "inline-block"}
+ ),
+ title
+ ]),
+ dbc.CardBody(
+ dbc.ListGroup(list_group_items, flush=True),
+ id="metadata",
+ class_name="p-0"
+ )
+ ]
+ )
+ ]
+
+ if fail_tests is not None:
+ metadata.append(
+ dbc.Card(
+ class_name="gy-2 p-0",
+ children=[
+ dbc.CardHeader(
+ f"List of Failed Tests ({len(fail_tests)})"
+ ),
+ dbc.CardBody(
+ id="failed-tests",
+ class_name="p-0",
+ children=[dbc.ListGroup(
+ children=[
+ dbc.ListGroupItem(x) \
+ for x in fail_tests
+ ],
+ flush=True),
+ ]
+ )
+ ]
+ )
+ )
+
+ open_canvas = True
+
+ return metadata, open_canvas
+
+ @app.callback(
+ Output("offcanvas-documentation", "is_open"),
+ Input("btn-documentation", "n_clicks"),
+ State("offcanvas-documentation", "is_open")
+ )
+ def toggle_offcanvas_documentation(n_clicks, is_open):
+ if n_clicks:
+ return not is_open
+ return is_open
diff --git a/csit.infra.dash/app/cdash/stats/layout.yaml b/csit.infra.dash/app/cdash/stats/layout.yaml
new file mode 100644
index 0000000000..488654640f
--- /dev/null
+++ b/csit.infra.dash/app/cdash/stats/layout.yaml
@@ -0,0 +1,79 @@
+plot-stats-passed:
+ autosize: True
+ showlegend: False
+ yaxis:
+ showticklabels: True
+ title: "Number of Passed / Failed Tests"
+ gridcolor: "rgb(238, 238, 238)"
+ linecolor: "rgb(238, 238, 238)"
+ showline: True
+ zeroline: False
+ tickcolor: "rgb(238, 238, 238)"
+ linewidth: 1
+ showgrid: True
+ rangemode: "tozero"
+ xaxis:
+ title: 'Date [MMDD]'
+ type: "date"
+ autorange: True
+ fixedrange: False
+ showgrid: True
+ gridcolor: "rgb(238, 238, 238)"
+ showline: True
+ linecolor: "rgb(238, 238, 238)"
+ zeroline: False
+ linewidth: 1
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "auto"
+ tickformat: "%m%d"
+ margin:
+ r: 20
+ b: 5
+ t: 5
+ l: 70
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ barmode: "stack"
+ hoverlabel:
+ namelength: -1
+
+plot-stats-duration:
+ autosize: True
+ showlegend: False
+ yaxis:
+ showticklabels: True
+ title: "Duration [hh:mm]"
+ gridcolor: "rgb(238, 238, 238)"
+ linecolor: "rgb(238, 238, 238)"
+ showline: True
+ zeroline: False
+ tickmode: "array"
+ tickcolor: "rgb(238, 238, 238)"
+ linewidth: 1
+ showgrid: True
+ rangemode: "tozero"
+ xaxis:
+ title: 'Date [MMDD]'
+ type: "date"
+ autorange: True
+ fixedrange: False
+ showgrid: True
+ gridcolor: "rgb(238, 238, 238)"
+ showline: True
+ linecolor: "rgb(238, 238, 238)"
+ zeroline: False
+ linewidth: 1
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "auto"
+ tickformat: "%m%d"
+ margin:
+ r: 20
+ b: 5
+ t: 5
+ l: 70
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
diff --git a/csit.infra.dash/app/cdash/stats/stats.py b/csit.infra.dash/app/cdash/stats/stats.py
new file mode 100644
index 0000000000..0217a6edb6
--- /dev/null
+++ b/csit.infra.dash/app/cdash/stats/stats.py
@@ -0,0 +1,58 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Instantiate the Statistics Dash application.
+"""
+import dash
+import pandas as pd
+
+from ..utils.constants import Constants as C
+from .layout import Layout
+
+
+def init_stats(
+ server,
+ data_stats: pd.DataFrame,
+ data_trending: pd.DataFrame
+ ) -> dash.Dash:
+ """Create a Plotly Dash dashboard.
+
+ :param server: Flask server.
+ :param data_stats: Pandas dataframe with staistical data.
+ :param data_trending: Pandas dataframe with trending data.
+ :type server: Flask
+ :type data_stats: pandas.DataFrame
+ :type data_trending: pandas.DataFrame
+ :returns: Dash app server.
+ :rtype: Dash
+ """
+
+ dash_app = dash.Dash(
+ server=server,
+ routes_pathname_prefix=C.STATS_ROUTES_PATHNAME_PREFIX,
+ external_stylesheets=C.EXTERNAL_STYLESHEETS,
+ title=C.STATS_TITLE
+ )
+
+ layout = Layout(
+ app=dash_app,
+ data_stats=data_stats,
+ data_trending=data_trending,
+ html_layout_file=C.HTML_LAYOUT_FILE,
+ graph_layout_file=C.STATS_GRAPH_LAYOUT_FILE,
+ tooltip_file=C.TOOLTIP_FILE
+ )
+ dash_app.index_string = layout.html_layout
+ dash_app.layout = layout.add_content()
+
+ return dash_app.server
diff --git a/csit.infra.dash/app/cdash/templates/base_layout.jinja2 b/csit.infra.dash/app/cdash/templates/base_layout.jinja2
new file mode 100644
index 0000000000..7b0dadc5a0
--- /dev/null
+++ b/csit.infra.dash/app/cdash/templates/base_layout.jinja2
@@ -0,0 +1,71 @@
+{% extends "layout.jinja2" %}
+
+{% block content %}
+<div class="cover-container d-flex w-100 h-100 p-3 mx-auto flex-column">
+
+ <header class="mb-auto">
+ <div>
+ <h3 class="float-md-start mb-0 text-white">
+ CSIT-Dash
+ </h3>
+ </div>
+ </header>
+
+ <main class="px-3">
+ <img class="d-block mx-auto mb-4" src="{{ url_for('static', filename='img/logo.svg') }}" alt="" width="72" height="57">
+ <h1 class="text-white">
+ {{ title }}
+ </h1>
+ <p class="lead">
+ {{ description }}
+ </p>
+ <p class="lead">
+ <p>
+ <a href="/trending/" class="btn btn-primary fw-bold w-25">
+ {{ trending_title }}
+ </a>
+ </p>
+ <p>
+ <a href="/report/" class="btn btn-primary fw-bold w-25">
+ {{ report_title }}
+ </a>
+ </p>
+ <p>
+ <a href="/comparisons/" class="btn btn-primary fw-bold w-25">
+ {{ comp_title }}
+ </a>
+ </p>
+ <p>
+ <p>
+ <a href="/coverage/" class="btn btn-primary fw-bold w-25">
+ {{ cov_title }}
+ </a>
+ </p>
+ <p>
+ <a href="/stats/" class="btn btn-primary fw-bold w-25">
+ {{ stats_title }}
+ </a>
+ </p>
+ <p>
+ <a href="/news/" class="btn btn-primary fw-bold w-25">
+ {{ news_title }}
+ </a>
+ </p>
+ <p>
+ <a href="/search/" class="btn btn-primary fw-bold w-25">
+ {{ search_title }}
+ </a>
+ </p>
+ <p>
+ <a href="/cdocs/" class="btn btn-primary fw-bold w-25">
+ Documentation
+ </a>
+ </p>
+ </p>
+ </main>
+
+ <footer class="mt-auto text-white-50">
+ <p>Copyright © 2016-2023 <a href="https://fd.io" class="text-white">The Fast Data Project</a>, a series of LF Projects, LLC.</p>
+ </footer>
+</div>
+{% endblock %}
diff --git a/csit.infra.dash/app/cdash/templates/dash_layout.jinja2 b/csit.infra.dash/app/cdash/templates/dash_layout.jinja2
new file mode 100644
index 0000000000..1275a99676
--- /dev/null
+++ b/csit.infra.dash/app/cdash/templates/dash_layout.jinja2
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>{%title%}</title>
+ {%metas%}
+ {%favicon%}
+ {%css%}
+</head>
+<body>
+ {%app_entry%}
+ <footer>
+ {%config%}
+ {%scripts%}
+ {%renderer%}
+ </footer>
+</body>
+</html> \ No newline at end of file
diff --git a/csit.infra.dash/app/cdash/templates/layout.jinja2 b/csit.infra.dash/app/cdash/templates/layout.jinja2
new file mode 100644
index 0000000000..e681f77af3
--- /dev/null
+++ b/csit.infra.dash/app/cdash/templates/layout.jinja2
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="en" class="h-100">
+<head>
+ <meta charset="utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <title>{{ title }}</title>
+ <meta property="og:site_name" content="{{ title }}"/>
+ <meta property="og:type" content="website"/>
+ <meta property="og:title" content="{{ title }}"/>
+ <meta property="og:description" content="{{ description }}"/>
+ <meta property="og:url" content="https://csit.fd.io/"/>
+ <meta name="HandheldFriendly" content="True" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
+ <!-- Bootstrap core CSS -->
+{% assets "sass_all" %}
+ <link rel="stylesheet" href="{{ ASSET_URL }}" /></script>
+{% endassets %}
+ <!-- Favicons -->
+ <link rel="shortcut icon" href="{{ url_for('static', filename='dist/img/favicon.svg') }}" type="image/x-icon" />
+</head>
+<body class="d-flex h-100 text-center text-white bg-dark">
+ {% block content %}{% endblock %}
+</body>
+</html>
diff --git a/csit.infra.dash/app/cdash/trending/__init__.py b/csit.infra.dash/app/cdash/trending/__init__.py
new file mode 100644
index 0000000000..c6a5f639fe
--- /dev/null
+++ b/csit.infra.dash/app/cdash/trending/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
diff --git a/csit.infra.dash/app/cdash/trending/graphs.py b/csit.infra.dash/app/cdash/trending/graphs.py
new file mode 100644
index 0000000000..ede3a06fd4
--- /dev/null
+++ b/csit.infra.dash/app/cdash/trending/graphs.py
@@ -0,0 +1,655 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Implementation of graphs for trending data.
+"""
+
+import logging
+import plotly.graph_objects as go
+import pandas as pd
+
+from ..utils.constants import Constants as C
+from ..utils.utils import get_color, get_hdrh_latencies
+from ..utils.anomalies import classify_anomalies
+
+
+def select_trending_data(data: pd.DataFrame, itm: dict) -> pd.DataFrame:
+ """Select the data for graphs from the provided data frame.
+
+ :param data: Data frame with data for graphs.
+ :param itm: Item (in this case job name) which data will be selected from
+ the input data frame.
+ :type data: pandas.DataFrame
+ :type itm: dict
+ :returns: A data frame with selected data.
+ :rtype: pandas.DataFrame
+ """
+
+ phy = itm["phy"].split("-")
+ if len(phy) == 4:
+ topo, arch, nic, drv = phy
+ if drv == "dpdk":
+ drv = ""
+ else:
+ drv += "-"
+ drv = drv.replace("_", "-")
+ else:
+ return None
+
+ if itm["testtype"] in ("ndr", "pdr"):
+ test_type = "ndrpdr"
+ elif itm["testtype"] == "mrr":
+ test_type = "mrr"
+ elif itm["area"] == "hoststack":
+ test_type = "hoststack"
+ df = data.loc[(
+ (data["test_type"] == test_type) &
+ (data["passed"] == True)
+ )]
+ df = df[df.job.str.endswith(f"{topo}-{arch}")]
+ core = str() if itm["dut"] == "trex" else f"{itm['core']}"
+ ttype = "ndrpdr" if itm["testtype"] in ("ndr", "pdr") else itm["testtype"]
+ df = df[df.test_id.str.contains(
+ f"^.*[.|-]{nic}.*{itm['framesize']}-{core}-{drv}{itm['test']}-{ttype}$",
+ regex=True
+ )].sort_values(by="start_time", ignore_index=True)
+
+ return df
+
+
+def graph_trending(
+ data: pd.DataFrame,
+ sel: dict,
+ layout: dict,
+ normalize: bool=False
+ ) -> tuple:
+ """Generate the trending graph(s) - MRR, NDR, PDR and for PDR also Latences
+ (result_latency_forward_pdr_50_avg).
+
+ :param data: Data frame with test results.
+ :param sel: Selected tests.
+ :param layout: Layout of plot.ly graph.
+ :param normalize: If True, the data is normalized to CPU frquency
+ Constants.NORM_FREQUENCY.
+ :type data: pandas.DataFrame
+ :type sel: dict
+ :type layout: dict
+ :type normalize: bool
+ :returns: Trending graph(s)
+ :rtype: tuple(plotly.graph_objects.Figure, plotly.graph_objects.Figure)
+ """
+
+ if not sel:
+ return None, None
+
+
+ def _generate_trending_traces(
+ ttype: str,
+ name: str,
+ df: pd.DataFrame,
+ color: str,
+ nf: float
+ ) -> list:
+ """Generate the trending traces for the trending graph.
+
+ :param ttype: Test type (MRR, NDR, PDR).
+ :param name: The test name to be displayed as the graph title.
+ :param df: Data frame with test data.
+ :param color: The color of the trace (samples and trend line).
+ :param nf: The factor used for normalization of the results to
+ CPU frequency set to Constants.NORM_FREQUENCY.
+ :type ttype: str
+ :type name: str
+ :type df: pandas.DataFrame
+ :type color: str
+ :type nf: float
+ :returns: Traces (samples, trending line, anomalies)
+ :rtype: list
+ """
+
+ df = df.dropna(subset=[C.VALUE[ttype], ])
+ if df.empty:
+ return list(), list()
+
+ hover = list()
+ customdata = list()
+ customdata_samples = list()
+ name_lst = name.split("-")
+ for _, row in df.iterrows():
+ h_tput, h_band, h_lat = str(), str(), str()
+ if ttype in ("mrr", "mrr-bandwidth"):
+ h_tput = (
+ f"tput avg [{row['result_receive_rate_rate_unit']}]: "
+ f"{row['result_receive_rate_rate_avg'] * nf:,.0f}<br>"
+ f"tput stdev [{row['result_receive_rate_rate_unit']}]: "
+ f"{row['result_receive_rate_rate_stdev'] * nf:,.0f}<br>"
+ )
+ if pd.notna(row["result_receive_rate_bandwidth_avg"]):
+ h_band = (
+ f"bandwidth avg "
+ f"[{row['result_receive_rate_bandwidth_unit']}]: "
+ f"{row['result_receive_rate_bandwidth_avg'] * nf:,.0f}"
+ "<br>"
+ f"bandwidth stdev "
+ f"[{row['result_receive_rate_bandwidth_unit']}]: "
+ f"{row['result_receive_rate_bandwidth_stdev']* nf:,.0f}"
+ "<br>"
+ )
+ elif ttype in ("ndr", "ndr-bandwidth"):
+ h_tput = (
+ f"tput [{row['result_ndr_lower_rate_unit']}]: "
+ f"{row['result_ndr_lower_rate_value'] * nf:,.0f}<br>"
+ )
+ if pd.notna(row["result_ndr_lower_bandwidth_value"]):
+ h_band = (
+ f"bandwidth [{row['result_ndr_lower_bandwidth_unit']}]:"
+ f" {row['result_ndr_lower_bandwidth_value'] * nf:,.0f}"
+ "<br>"
+ )
+ elif ttype in ("pdr", "pdr-bandwidth", "latency"):
+ h_tput = (
+ f"tput [{row['result_pdr_lower_rate_unit']}]: "
+ f"{row['result_pdr_lower_rate_value'] * nf:,.0f}<br>"
+ )
+ if pd.notna(row["result_pdr_lower_bandwidth_value"]):
+ h_band = (
+ f"bandwidth [{row['result_pdr_lower_bandwidth_unit']}]:"
+ f" {row['result_pdr_lower_bandwidth_value'] * nf:,.0f}"
+ "<br>"
+ )
+ if pd.notna(row["result_latency_forward_pdr_50_avg"]):
+ h_lat = (
+ f"latency "
+ f"[{row['result_latency_forward_pdr_50_unit']}]: "
+ f"{row['result_latency_forward_pdr_50_avg'] / nf:,.0f}"
+ "<br>"
+ )
+ elif ttype in ("hoststack-cps", "hoststack-rps",
+ "hoststack-cps-bandwidth",
+ "hoststack-rps-bandwidth", "hoststack-latency"):
+ h_tput = (
+ f"tput [{row['result_rate_unit']}]: "
+ f"{row['result_rate_value'] * nf:,.0f}<br>"
+ )
+ h_band = (
+ f"bandwidth [{row['result_bandwidth_unit']}]: "
+ f"{row['result_bandwidth_value'] * nf:,.0f}<br>"
+ )
+ h_lat = (
+ f"latency [{row['result_latency_unit']}]: "
+ f"{row['result_latency_value'] / nf:,.0f}<br>"
+ )
+ elif ttype in ("hoststack-bps", ):
+ h_band = (
+ f"bandwidth [{row['result_bandwidth_unit']}]: "
+ f"{row['result_bandwidth_value'] * nf:,.0f}<br>"
+ )
+ hover_itm = (
+ f"dut: {name_lst[0]}<br>"
+ f"infra: {'-'.join(name_lst[1:5])}<br>"
+ f"test: {'-'.join(name_lst[5:])}<br>"
+ f"date: {row['start_time'].strftime('%Y-%m-%d %H:%M:%S')}<br>"
+ f"{h_tput}{h_band}{h_lat}"
+ f"{row['dut_type']}-ref: {row['dut_version']}<br>"
+ f"csit-ref: {row['job']}/{row['build']}<br>"
+ f"hosts: {', '.join(row['hosts'])}"
+ )
+ hover.append(hover_itm)
+ if ttype == "latency":
+ customdata_samples.append(get_hdrh_latencies(row, name))
+ customdata.append({"name": name})
+ else:
+ customdata_samples.append(
+ {"name": name, "show_telemetry": True}
+ )
+ customdata.append({"name": name})
+
+ x_axis = df["start_time"].tolist()
+ if "latency" in ttype:
+ y_data = [(v / nf) for v in df[C.VALUE[ttype]].tolist()]
+ else:
+ y_data = [(v * nf) for v in df[C.VALUE[ttype]].tolist()]
+ units = df[C.UNIT[ttype]].unique().tolist()
+
+ try:
+ anomalies, trend_avg, trend_stdev = classify_anomalies(
+ {k: v for k, v in zip(x_axis, y_data)}
+ )
+ except ValueError as err:
+ logging.error(err)
+ return list(), list()
+
+ hover_trend = list()
+ for avg, stdev, (_, row) in zip(trend_avg, trend_stdev, df.iterrows()):
+ hover_itm = (
+ f"dut: {name_lst[0]}<br>"
+ f"infra: {'-'.join(name_lst[1:5])}<br>"
+ f"test: {'-'.join(name_lst[5:])}<br>"
+ f"date: {row['start_time'].strftime('%Y-%m-%d %H:%M:%S')}<br>"
+ f"trend [{row[C.UNIT[ttype]]}]: {avg:,.0f}<br>"
+ f"stdev [{row[C.UNIT[ttype]]}]: {stdev:,.0f}<br>"
+ f"{row['dut_type']}-ref: {row['dut_version']}<br>"
+ f"csit-ref: {row['job']}/{row['build']}<br>"
+ f"hosts: {', '.join(row['hosts'])}"
+ )
+ if ttype == "latency":
+ hover_itm = hover_itm.replace("[pps]", "[us]")
+ hover_trend.append(hover_itm)
+
+ traces = [
+ go.Scatter( # Samples
+ x=x_axis,
+ y=y_data,
+ name=name,
+ mode="markers",
+ marker={
+ "size": 5,
+ "color": color,
+ "symbol": "circle",
+ },
+ text=hover,
+ hoverinfo="text",
+ showlegend=True,
+ legendgroup=name,
+ customdata=customdata_samples
+ ),
+ go.Scatter( # Trend line
+ x=x_axis,
+ y=trend_avg,
+ name=name,
+ mode="lines",
+ line={
+ "shape": "linear",
+ "width": 1,
+ "color": color,
+ },
+ text=hover_trend,
+ hoverinfo="text",
+ showlegend=False,
+ legendgroup=name,
+ customdata=customdata
+ )
+ ]
+
+ if anomalies:
+ anomaly_x = list()
+ anomaly_y = list()
+ anomaly_color = list()
+ hover = list()
+ for idx, anomaly in enumerate(anomalies):
+ if anomaly in ("regression", "progression"):
+ anomaly_x.append(x_axis[idx])
+ anomaly_y.append(trend_avg[idx])
+ anomaly_color.append(C.ANOMALY_COLOR[anomaly])
+ hover_itm = (
+ f"dut: {name_lst[0]}<br>"
+ f"infra: {'-'.join(name_lst[1:5])}<br>"
+ f"test: {'-'.join(name_lst[5:])}<br>"
+ f"date: {x_axis[idx].strftime('%Y-%m-%d %H:%M:%S')}<br>"
+ f"trend [pps]: {trend_avg[idx]:,.0f}<br>"
+ f"classification: {anomaly}"
+ )
+ if ttype == "latency":
+ hover_itm = hover_itm.replace("[pps]", "[us]")
+ hover.append(hover_itm)
+ anomaly_color.extend([0.0, 0.5, 1.0])
+ traces.append(
+ go.Scatter(
+ x=anomaly_x,
+ y=anomaly_y,
+ mode="markers",
+ text=hover,
+ hoverinfo="text",
+ showlegend=False,
+ legendgroup=name,
+ name=name,
+ customdata=customdata,
+ marker={
+ "size": 15,
+ "symbol": "circle-open",
+ "color": anomaly_color,
+ "colorscale": C.COLORSCALE_LAT \
+ if ttype == "latency" else C.COLORSCALE_TPUT,
+ "showscale": True,
+ "line": {
+ "width": 2
+ },
+ "colorbar": {
+ "y": 0.5,
+ "len": 0.8,
+ "title": "Circles Marking Data Classification",
+ "titleside": "right",
+ "tickmode": "array",
+ "tickvals": [0.167, 0.500, 0.833],
+ "ticktext": C.TICK_TEXT_LAT \
+ if ttype == "latency" else C.TICK_TEXT_TPUT,
+ "ticks": "",
+ "ticklen": 0,
+ "tickangle": -90,
+ "thickness": 10
+ }
+ }
+ )
+ )
+
+ return traces, units
+
+
+ fig_tput = None
+ fig_lat = None
+ fig_band = None
+ y_units = set()
+ for idx, itm in enumerate(sel):
+ df = select_trending_data(data, itm)
+ if df is None or df.empty:
+ continue
+
+ if normalize:
+ phy = itm["phy"].split("-")
+ topo_arch = f"{phy[0]}-{phy[1]}" if len(phy) == 4 else str()
+ norm_factor = (C.NORM_FREQUENCY / C.FREQUENCY.get(topo_arch, 1.0)) \
+ if topo_arch else 1.0
+ else:
+ norm_factor = 1.0
+
+ if itm["area"] == "hoststack":
+ ttype = f"hoststack-{itm['testtype']}"
+ else:
+ ttype = itm["testtype"]
+
+ traces, units = _generate_trending_traces(
+ ttype,
+ itm["id"],
+ df,
+ get_color(idx),
+ norm_factor
+ )
+ if traces:
+ if not fig_tput:
+ fig_tput = go.Figure()
+ fig_tput.add_traces(traces)
+
+ if ttype in ("ndr", "pdr", "mrr", "hoststack-cps", "hoststack-rps"):
+ traces, _ = _generate_trending_traces(
+ f"{ttype}-bandwidth",
+ itm["id"],
+ df,
+ get_color(idx),
+ norm_factor
+ )
+ if traces:
+ if not fig_band:
+ fig_band = go.Figure()
+ fig_band.add_traces(traces)
+
+ if ttype in ("pdr", "hoststack-cps", "hoststack-rps"):
+ traces, _ = _generate_trending_traces(
+ "latency" if ttype == "pdr" else "hoststack-latency",
+ itm["id"],
+ df,
+ get_color(idx),
+ norm_factor
+ )
+ if traces:
+ if not fig_lat:
+ fig_lat = go.Figure()
+ fig_lat.add_traces(traces)
+
+ y_units.update(units)
+
+ if fig_tput:
+ fig_layout = layout.get("plot-trending-tput", dict())
+ fig_layout["yaxis"]["title"] = \
+ f"Throughput [{'|'.join(sorted(y_units))}]"
+ fig_tput.update_layout(fig_layout)
+ if fig_band:
+ fig_band.update_layout(layout.get("plot-trending-bandwidth", dict()))
+ if fig_lat:
+ fig_lat.update_layout(layout.get("plot-trending-lat", dict()))
+
+ return fig_tput, fig_band, fig_lat
+
+
+def graph_tm_trending(
+ data: pd.DataFrame,
+ layout: dict,
+ all_in_one: bool=False
+ ) -> list:
+ """Generates one trending graph per test, each graph includes all selected
+ metrics.
+
+ :param data: Data frame with telemetry data.
+ :param layout: Layout of plot.ly graph.
+ :param all_in_one: If True, all telemetry traces are placed in one graph,
+ otherwise they are split to separate graphs grouped by test ID.
+ :type data: pandas.DataFrame
+ :type layout: dict
+ :type all_in_one: bool
+ :returns: List of generated graphs together with test names.
+ list(tuple(plotly.graph_objects.Figure(), str()), tuple(...), ...)
+ :rtype: list
+ """
+
+ if data.empty:
+ return list()
+
+ def _generate_traces(
+ data: pd.DataFrame,
+ test: str,
+ all_in_one: bool,
+ color_index: int
+ ) -> list:
+ """Generates a trending graph for given test with all metrics.
+
+ :param data: Data frame with telemetry data for the given test.
+ :param test: The name of the test.
+ :param all_in_one: If True, all telemetry traces are placed in one
+ graph, otherwise they are split to separate graphs grouped by
+ test ID.
+ :param color_index: The index of the test used if all_in_one is True.
+ :type data: pandas.DataFrame
+ :type test: str
+ :type all_in_one: bool
+ :type color_index: int
+ :returns: List of traces.
+ :rtype: list
+ """
+ traces = list()
+ metrics = data.tm_metric.unique().tolist()
+ for idx, metric in enumerate(metrics):
+ if "-pdr" in test and "='pdr'" not in metric:
+ continue
+ if "-ndr" in test and "='ndr'" not in metric:
+ continue
+
+ df = data.loc[(data["tm_metric"] == metric)]
+ x_axis = df["start_time"].tolist()
+ y_data = [float(itm) for itm in df["tm_value"].tolist()]
+ hover = list()
+ for i, (_, row) in enumerate(df.iterrows()):
+ if row["test_type"] == "mrr":
+ rate = (
+ f"mrr avg [{row[C.UNIT['mrr']]}]: "
+ f"{row[C.VALUE['mrr']]:,.0f}<br>"
+ f"mrr stdev [{row[C.UNIT['mrr']]}]: "
+ f"{row['result_receive_rate_rate_stdev']:,.0f}<br>"
+ )
+ elif row["test_type"] == "ndrpdr":
+ if "-pdr" in test:
+ rate = (
+ f"pdr [{row[C.UNIT['pdr']]}]: "
+ f"{row[C.VALUE['pdr']]:,.0f}<br>"
+ )
+ elif "-ndr" in test:
+ rate = (
+ f"ndr [{row[C.UNIT['ndr']]}]: "
+ f"{row[C.VALUE['ndr']]:,.0f}<br>"
+ )
+ else:
+ rate = str()
+ else:
+ rate = str()
+ hover.append(
+ f"date: "
+ f"{row['start_time'].strftime('%Y-%m-%d %H:%M:%S')}<br>"
+ f"value: {y_data[i]:,.2f}<br>"
+ f"{rate}"
+ f"{row['dut_type']}-ref: {row['dut_version']}<br>"
+ f"csit-ref: {row['job']}/{row['build']}<br>"
+ )
+ if any(y_data):
+ anomalies, trend_avg, trend_stdev = classify_anomalies(
+ {k: v for k, v in zip(x_axis, y_data)}
+ )
+ hover_trend = list()
+ for avg, stdev, (_, row) in \
+ zip(trend_avg, trend_stdev, df.iterrows()):
+ hover_trend.append(
+ f"date: "
+ f"{row['start_time'].strftime('%Y-%m-%d %H:%M:%S')}<br>"
+ f"trend: {avg:,.2f}<br>"
+ f"stdev: {stdev:,.2f}<br>"
+ f"{row['dut_type']}-ref: {row['dut_version']}<br>"
+ f"csit-ref: {row['job']}/{row['build']}"
+ )
+ else:
+ anomalies = None
+ if all_in_one:
+ color = get_color(color_index * len(metrics) + idx)
+ metric_name = f"{test}<br>{metric}"
+ else:
+ color = get_color(idx)
+ metric_name = metric
+
+ traces.append(
+ go.Scatter( # Samples
+ x=x_axis,
+ y=y_data,
+ name=metric_name,
+ mode="markers",
+ marker={
+ "size": 5,
+ "color": color,
+ "symbol": "circle",
+ },
+ text=hover,
+ hoverinfo="text+name",
+ showlegend=True,
+ legendgroup=metric_name
+ )
+ )
+ if anomalies:
+ traces.append(
+ go.Scatter( # Trend line
+ x=x_axis,
+ y=trend_avg,
+ name=metric_name,
+ mode="lines",
+ line={
+ "shape": "linear",
+ "width": 1,
+ "color": color,
+ },
+ text=hover_trend,
+ hoverinfo="text+name",
+ showlegend=False,
+ legendgroup=metric_name
+ )
+ )
+
+ anomaly_x = list()
+ anomaly_y = list()
+ anomaly_color = list()
+ hover = list()
+ for idx, anomaly in enumerate(anomalies):
+ if anomaly in ("regression", "progression"):
+ anomaly_x.append(x_axis[idx])
+ anomaly_y.append(trend_avg[idx])
+ anomaly_color.append(C.ANOMALY_COLOR[anomaly])
+ hover_itm = (
+ f"date: {x_axis[idx].strftime('%Y-%m-%d %H:%M:%S')}"
+ f"<br>trend: {trend_avg[idx]:,.2f}"
+ f"<br>classification: {anomaly}"
+ )
+ hover.append(hover_itm)
+ anomaly_color.extend([0.0, 0.5, 1.0])
+ traces.append(
+ go.Scatter(
+ x=anomaly_x,
+ y=anomaly_y,
+ mode="markers",
+ text=hover,
+ hoverinfo="text+name",
+ showlegend=False,
+ legendgroup=metric_name,
+ name=metric_name,
+ marker={
+ "size": 15,
+ "symbol": "circle-open",
+ "color": anomaly_color,
+ "colorscale": C.COLORSCALE_TPUT,
+ "showscale": True,
+ "line": {
+ "width": 2
+ },
+ "colorbar": {
+ "y": 0.5,
+ "len": 0.8,
+ "title": "Circles Marking Data Classification",
+ "titleside": "right",
+ "tickmode": "array",
+ "tickvals": [0.167, 0.500, 0.833],
+ "ticktext": C.TICK_TEXT_TPUT,
+ "ticks": "",
+ "ticklen": 0,
+ "tickangle": -90,
+ "thickness": 10
+ }
+ }
+ )
+ )
+
+ unique_metrics = set()
+ for itm in metrics:
+ unique_metrics.add(itm.split("{", 1)[0])
+ return traces, unique_metrics
+
+ tm_trending_graphs = list()
+ graph_layout = layout.get("plot-trending-telemetry", dict())
+
+ if all_in_one:
+ all_traces = list()
+
+ all_metrics = set()
+ all_tests = list()
+ for idx, test in enumerate(data.test_name.unique()):
+ df = data.loc[(data["test_name"] == test)]
+ traces, metrics = _generate_traces(df, test, all_in_one, idx)
+ if traces:
+ all_metrics.update(metrics)
+ if all_in_one:
+ all_traces.extend(traces)
+ all_tests.append(test)
+ else:
+ graph = go.Figure()
+ graph.add_traces(traces)
+ graph.update_layout(graph_layout)
+ tm_trending_graphs.append((graph, [test, ], ))
+
+ if all_in_one:
+ graph = go.Figure()
+ graph.add_traces(all_traces)
+ graph.update_layout(graph_layout)
+ tm_trending_graphs.append((graph, all_tests, ))
+
+ return tm_trending_graphs, list(all_metrics)
diff --git a/csit.infra.dash/app/cdash/trending/layout.py b/csit.infra.dash/app/cdash/trending/layout.py
new file mode 100644
index 0000000000..f6f96d713e
--- /dev/null
+++ b/csit.infra.dash/app/cdash/trending/layout.py
@@ -0,0 +1,1721 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+
+"""Plotly Dash HTML layout override.
+"""
+
+import logging
+import pandas as pd
+import dash_bootstrap_components as dbc
+
+from flask import Flask
+from dash import dcc
+from dash import html
+from dash import callback_context, no_update, ALL
+from dash import Input, Output, State
+from dash.exceptions import PreventUpdate
+from yaml import load, FullLoader, YAMLError
+from ast import literal_eval
+from copy import deepcopy
+
+from ..utils.constants import Constants as C
+from ..utils.control_panel import ControlPanel
+from ..utils.trigger import Trigger
+from ..utils.telemetry_data import TelemetryData
+from ..utils.utils import show_tooltip, label, sync_checklists, gen_new_url, \
+ generate_options, get_list_group_items, navbar_trending, \
+ show_trending_graph_data
+from ..utils.url_processing import url_decode
+from .graphs import graph_trending, select_trending_data, graph_tm_trending
+
+
+# Control panel partameters and their default values.
+CP_PARAMS = {
+ "dd-dut-val": str(),
+ "dd-phy-opt": list(),
+ "dd-phy-dis": True,
+ "dd-phy-val": str(),
+ "dd-area-opt": list(),
+ "dd-area-dis": True,
+ "dd-area-val": str(),
+ "dd-test-opt": list(),
+ "dd-test-dis": True,
+ "dd-test-val": str(),
+ "cl-core-opt": list(),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_DISABLED,
+ "cl-frmsize-opt": list(),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_DISABLED,
+ "cl-tsttype-opt": list(),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_DISABLED,
+ "btn-add-dis": True,
+ "cl-normalize-val": list()
+}
+
+
+class Layout:
+ """The layout of the dash app and the callbacks.
+ """
+
+ def __init__(self,
+ app: Flask,
+ data_trending: pd.DataFrame,
+ html_layout_file: str,
+ graph_layout_file: str,
+ tooltip_file: str
+ ) -> None:
+ """Initialization:
+ - save the input parameters,
+ - read and pre-process the data,
+ - prepare data for the control panel,
+ - read HTML layout file,
+ - read tooltips from the tooltip file.
+
+ :param app: Flask application running the dash application.
+ :param data_trending: Pandas dataframe with trending data.
+ :param html_layout_file: Path and name of the file specifying the HTML
+ layout of the dash application.
+ :param graph_layout_file: Path and name of the file with layout of
+ plot.ly graphs.
+ :param tooltip_file: Path and name of the yaml file specifying the
+ tooltips.
+ :type app: Flask
+ :type data_trending: pandas.DataFrame
+ :type html_layout_file: str
+ :type graph_layout_file: str
+ :type tooltip_file: str
+ """
+
+ # Inputs
+ self._app = app
+ self._data = data_trending
+ self._html_layout_file = html_layout_file
+ self._graph_layout_file = graph_layout_file
+ self._tooltip_file = tooltip_file
+
+ # Get structure of tests:
+ tbs = dict()
+ cols = ["job", "test_id", "test_type", "tg_type"]
+ for _, row in self._data[cols].drop_duplicates().iterrows():
+ lst_job = row["job"].split("-")
+ dut = lst_job[1]
+ tbed = "-".join(lst_job[-2:])
+ lst_test = row["test_id"].split(".")
+ if dut == "dpdk":
+ area = "dpdk"
+ else:
+ area = ".".join(lst_test[3:-2])
+ suite = lst_test[-2].replace("2n1l-", "").replace("1n1l-", "").\
+ replace("2n-", "")
+ test = lst_test[-1]
+ nic = suite.split("-")[0]
+ for drv in C.DRIVERS:
+ if drv in test:
+ if drv == "af-xdp":
+ driver = "af_xdp"
+ else:
+ driver = drv
+ test = test.replace(f"{drv}-", "")
+ break
+ else:
+ driver = "dpdk"
+ infra = "-".join((tbed, nic, driver))
+ lst_test = test.split("-")
+ framesize = lst_test[0]
+ core = lst_test[1] if lst_test[1] else "8C"
+ test = "-".join(lst_test[2: -1])
+
+ if tbs.get(dut, None) is None:
+ tbs[dut] = dict()
+ if tbs[dut].get(area, None) is None:
+ tbs[dut][area] = dict()
+ if tbs[dut][area].get(test, None) is None:
+ tbs[dut][area][test] = dict()
+ if tbs[dut][area][test].get(infra, None) is None:
+ tbs[dut][area][test][infra] = {
+ "core": list(),
+ "frame-size": list(),
+ "test-type": list()
+ }
+ tst_params = tbs[dut][area][test][infra]
+ if core.upper() not in tst_params["core"]:
+ tst_params["core"].append(core.upper())
+ if framesize.upper() not in tst_params["frame-size"]:
+ tst_params["frame-size"].append(framesize.upper())
+ if row["test_type"] == "mrr":
+ if "MRR" not in tst_params["test-type"]:
+ tst_params["test-type"].append("MRR")
+ elif row["test_type"] == "ndrpdr":
+ if "NDR" not in tst_params["test-type"]:
+ tst_params["test-type"].extend(("NDR", "PDR"))
+ elif row["test_type"] == "hoststack":
+ if row["tg_type"] in ("iperf", "vpp"):
+ if "BPS" not in tst_params["test-type"]:
+ tst_params["test-type"].append("BPS")
+ elif row["tg_type"] == "ab":
+ if "CPS" not in tst_params["test-type"]:
+ tst_params["test-type"].extend(("CPS", "RPS"))
+ self._spec_tbs = tbs
+
+ # Read from files:
+ self._html_layout = str()
+ self._graph_layout = None
+ self._tooltips = dict()
+
+ try:
+ with open(self._html_layout_file, "r") as file_read:
+ self._html_layout = file_read.read()
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._html_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._graph_layout_file, "r") as file_read:
+ self._graph_layout = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ raise RuntimeError(
+ f"Not possible to open the file {self._graph_layout_file}\n"
+ f"{err}"
+ )
+ except YAMLError as err:
+ raise RuntimeError(
+ f"An error occurred while parsing the specification file "
+ f"{self._graph_layout_file}\n{err}"
+ )
+
+ try:
+ with open(self._tooltip_file, "r") as file_read:
+ self._tooltips = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ logging.warning(
+ f"Not possible to open the file {self._tooltip_file}\n{err}"
+ )
+ except YAMLError as err:
+ logging.warning(
+ f"An error occurred while parsing the specification file "
+ f"{self._tooltip_file}\n{err}"
+ )
+
+ # Callbacks:
+ if self._app is not None and hasattr(self, "callbacks"):
+ self.callbacks(self._app)
+
+ @property
+ def html_layout(self):
+ return self._html_layout
+
+ def add_content(self):
+ """Top level method which generated the web page.
+
+ It generates:
+ - Store for user input data,
+ - Navigation bar,
+ - Main area with control panel and ploting area.
+
+ If no HTML layout is provided, an error message is displayed instead.
+
+ :returns: The HTML div with the whole page.
+ :rtype: html.Div
+ """
+
+ if self.html_layout and self._spec_tbs:
+ return html.Div(
+ id="div-main",
+ className="small",
+ children=[
+ dcc.Store(id="store"),
+ dcc.Location(id="url", refresh=False),
+ dbc.Row(
+ id="row-navbar",
+ class_name="g-0",
+ children=[navbar_trending((True, False, False, False))]
+ ),
+ dbc.Row(
+ id="row-main",
+ class_name="g-0",
+ children=[
+ self._add_ctrl_col(),
+ self._add_plotting_col()
+ ]
+ ),
+ dbc.Spinner(
+ dbc.Offcanvas(
+ class_name="w-50",
+ id="offcanvas-metadata",
+ title="Detailed Information",
+ placement="end",
+ is_open=False,
+ children=[
+ dbc.Row(id="metadata-tput-lat"),
+ dbc.Row(id="metadata-hdrh-graph")
+ ]
+ ),
+ delay_show=C.SPINNER_DELAY
+ ),
+ dbc.Offcanvas(
+ class_name="w-75",
+ id="offcanvas-documentation",
+ title="Documentation",
+ placement="end",
+ is_open=False,
+ children=html.Iframe(
+ src=C.URL_DOC_TRENDING,
+ width="100%",
+ height="100%"
+ )
+ )
+ ]
+ )
+ else:
+ return html.Div(
+ dbc.Alert("An Error Occured", color="danger"),
+ id="div-main-error"
+ )
+
+ def _add_ctrl_col(self) -> dbc.Col:
+ """Add column with controls. It is placed on the left side.
+
+ :returns: Column with the control panel.
+ :rtype: dbc.Col
+ """
+ return dbc.Col(html.Div(self._add_ctrl_panel(), className="sticky-top"))
+
+ def _add_ctrl_panel(self) -> list:
+ """Add control panel.
+
+ :returns: Control panel.
+ :rtype: list
+ """
+ return [
+ dbc.Row(
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(
+ show_tooltip(self._tooltips, "help-dut", "DUT")
+ ),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "dut"},
+ placeholder="Select a Device under Test...",
+ options=sorted(
+ [
+ {"label": k, "value": k} \
+ for k in self._spec_tbs.keys()
+ ],
+ key=lambda d: d["label"]
+ )
+ )
+ ],
+ size="sm"
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(
+ show_tooltip(self._tooltips, "help-area", "Area")
+ ),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "area"},
+ placeholder="Select an Area..."
+ )
+ ],
+ size="sm"
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(
+ show_tooltip(self._tooltips, "help-test", "Test")
+ ),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "test"},
+ placeholder="Select a Test..."
+ )
+ ],
+ size="sm"
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(
+ show_tooltip(self._tooltips, "help-infra", "Infra")
+ ),
+ dbc.Select(
+ id={"type": "ctrl-dd", "index": "phy"},
+ placeholder="Select a Physical Test Bed Topology..."
+ )
+ ],
+ size="sm"
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-framesize",
+ "Frame Size"
+ )),
+ dbc.Col(
+ dbc.Checklist(
+ id={"type": "ctrl-cl", "index": "frmsize-all"},
+ options=C.CL_ALL_DISABLED,
+ inline=True,
+ class_name="ms-2"
+ ),
+ width=2
+ ),
+ dbc.Col(
+ dbc.Checklist(
+ id={"type": "ctrl-cl", "index": "frmsize"},
+ inline=True
+ )
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-cores",
+ "Number of Cores"
+ )),
+ dbc.Col(
+ dbc.Checklist(
+ id={"type": "ctrl-cl", "index": "core-all"},
+ options=C.CL_ALL_DISABLED,
+ inline=True,
+ class_name="ms-2"
+ ),
+ width=2
+ ),
+ dbc.Col(
+ dbc.Checklist(
+ id={"type": "ctrl-cl", "index": "core"},
+ inline=True
+ )
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-ttype",
+ "Test Type"
+ )),
+ dbc.Col(
+ dbc.Checklist(
+ id={"type": "ctrl-cl", "index": "tsttype-all"},
+ options=C.CL_ALL_DISABLED,
+ inline=True,
+ class_name="ms-2"
+ ),
+ width=2
+ ),
+ dbc.Col(
+ dbc.Checklist(
+ id={"type": "ctrl-cl", "index": "tsttype"},
+ inline=True
+ )
+ )
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.InputGroup(
+ [
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-normalize",
+ "Normalization"
+ )),
+ dbc.Col(dbc.Checklist(
+ id="normalize",
+ options=[{
+ "value": "normalize",
+ "label": "Normalize to CPU frequency 2GHz"
+ }],
+ value=[],
+ inline=True,
+ class_name="ms-2"
+ ))
+ ],
+ style={"align-items": "center"},
+ size="sm"
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.Button(
+ id={"type": "ctrl-btn", "index": "add-test"},
+ children="Add Selected",
+ color="info"
+ ),
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ dbc.ListGroup(
+ class_name="overflow-auto p-0",
+ id="lg-selected",
+ children=[],
+ style={"max-height": "20em"},
+ flush=True
+ ),
+ id="row-card-sel-tests",
+ class_name="g-0 p-1",
+ style=C.STYLE_DISABLED,
+ ),
+ dbc.Row(
+ dbc.ButtonGroup([
+ dbc.Button(
+ "Remove Selected",
+ id={"type": "ctrl-btn", "index": "rm-test"},
+ class_name="w-100",
+ color="info",
+ disabled=False
+ ),
+ dbc.Button(
+ "Remove All",
+ id={"type": "ctrl-btn", "index": "rm-test-all"},
+ class_name="w-100",
+ color="info",
+ disabled=False
+ )
+ ]),
+ id="row-btns-sel-tests",
+ class_name="g-0 p-1",
+ style=C.STYLE_DISABLED,
+ ),
+ dbc.Stack(
+ [
+ dbc.Button(
+ "Add Telemetry Panel",
+ id={"type": "telemetry-btn", "index": "open"},
+ color="info"
+ ),
+ dbc.Button("Show URL", id="plot-btn-url", color="info"),
+ dbc.Modal(
+ [
+ dbc.ModalHeader(dbc.ModalTitle("URL")),
+ dbc.ModalBody(id="mod-url")
+ ],
+ id="plot-mod-url",
+ size="xl",
+ is_open=False,
+ scrollable=True
+ )
+ ],
+ id="row-btns-add-tm",
+ class_name="g-0 p-1",
+ style=C.STYLE_DISABLED,
+ gap=2
+ )
+ ]
+
+ def _add_plotting_col(self) -> dbc.Col:
+ """Add column with plots. It is placed on the right side.
+
+ :returns: Column with plots.
+ :rtype: dbc.Col
+ """
+ return dbc.Col(
+ id="col-plotting-area",
+ children=[
+ dbc.Row(
+ id="plotting-area-trending",
+ class_name="g-0 p-0",
+ children=C.PLACEHOLDER
+ ),
+ dbc.Row(
+ id="plotting-area-telemetry",
+ class_name="g-0 p-0",
+ children=C.PLACEHOLDER
+ )
+ ],
+ width=9,
+ style=C.STYLE_DISABLED,
+ )
+
+ @staticmethod
+ def _plotting_area_trending(graphs: list) -> dbc.Col:
+ """Generate the plotting area with all its content.
+
+ :param graphs: A list of graphs to be displayed in the trending page.
+ :type graphs: list
+ :returns: A collumn with trending graphs (tput and latency) in tabs.
+ :rtype: dbc.Col
+ """
+ if not graphs:
+ return C.PLACEHOLDER
+
+ if not graphs[0]:
+ return C.PLACEHOLDER
+
+ tab_items = [
+ dbc.Tab(
+ children=dcc.Graph(
+ id={"type": "graph", "index": "tput"},
+ figure=graphs[0]
+ ),
+ label="Throughput",
+ tab_id="tab-tput"
+ )
+ ]
+
+ if graphs[1]:
+ tab_items.append(
+ dbc.Tab(
+ children=dcc.Graph(
+ id={"type": "graph", "index": "bandwidth"},
+ figure=graphs[1]
+ ),
+ label="Bandwidth",
+ tab_id="tab-bandwidth"
+ )
+ )
+
+ if graphs[2]:
+ tab_items.append(
+ dbc.Tab(
+ children=dcc.Graph(
+ id={"type": "graph", "index": "lat"},
+ figure=graphs[2]
+ ),
+ label="Latency",
+ tab_id="tab-lat"
+ )
+ )
+
+ trending = [
+ dbc.Row(
+ dbc.Tabs(
+ children=tab_items,
+ id="tabs",
+ active_tab="tab-tput",
+ ),
+ class_name="g-0 p-0"
+ ),
+ dbc.Row(
+ html.Div(
+ [
+ dbc.Button(
+ "Download Data",
+ id="plot-btn-download",
+ class_name="me-1",
+ color="info",
+ style={"padding": "0rem 1rem"}
+ ),
+ dcc.Download(id="download-trending-data")
+ ],
+ className="d-grid gap-0 d-md-flex justify-content-md-end"
+ ),
+ class_name="g-0 p-0"
+ )
+ ]
+
+ return dbc.Col(
+ children=[
+ dbc.Accordion(
+ dbc.AccordionItem(trending, title="Trending"),
+ class_name="g-0 p-1",
+ start_collapsed=False,
+ always_open=True,
+ active_item=["item-0", ]
+ ),
+ dbc.Modal(
+ [
+ dbc.ModalHeader(
+ dbc.ModalTitle("Select a Metric"),
+ close_button=False
+ ),
+ dbc.Spinner(
+ dbc.ModalBody(Layout._get_telemetry_step_1()),
+ delay_show=2 * C.SPINNER_DELAY
+ ),
+ dbc.ModalFooter([
+ dbc.Button(
+ "Select",
+ id={"type": "telemetry-btn", "index": "select"},
+ color="success",
+ disabled=True
+ ),
+ dbc.Button(
+ "Cancel",
+ id={"type": "telemetry-btn", "index": "cancel"},
+ color="info",
+ disabled=False
+ ),
+ dbc.Button(
+ "Remove All",
+ id={"type": "telemetry-btn", "index": "rm-all"},
+ color="danger",
+ disabled=False
+ )
+ ])
+ ],
+ id={"type": "plot-mod-telemetry", "index": 0},
+ size="lg",
+ is_open=False,
+ scrollable=False,
+ backdrop="static",
+ keyboard=False
+ ),
+ dbc.Modal(
+ [
+ dbc.ModalHeader(
+ dbc.ModalTitle("Select Labels"),
+ close_button=False
+ ),
+ dbc.Spinner(
+ dbc.ModalBody(Layout._get_telemetry_step_2()),
+ delay_show=2 * C.SPINNER_DELAY
+ ),
+ dbc.ModalFooter([
+ dbc.Button(
+ "Back",
+ id={"type": "telemetry-btn", "index": "back"},
+ color="info",
+ disabled=False
+ ),
+ dbc.Button(
+ "Add Telemetry Panel",
+ id={"type": "telemetry-btn", "index": "add"},
+ color="success",
+ disabled=True
+ ),
+ dbc.Button(
+ "Cancel",
+ id={"type": "telemetry-btn", "index": "cancel"},
+ color="info",
+ disabled=False
+ )
+ ])
+ ],
+ id={"type": "plot-mod-telemetry", "index": 1},
+ size="xl",
+ is_open=False,
+ scrollable=False,
+ backdrop="static",
+ keyboard=False
+ )
+ ]
+ )
+
+ @staticmethod
+ def _plotting_area_telemetry(graphs: list) -> dbc.Col:
+ """Generate the plotting area with telemetry.
+
+ :param graphs: A list of graphs to be displayed in the telemetry page.
+ :type graphs: list
+ :returns: A collumn with telemetry trending graphs.
+ :rtype: dbc.Col
+ """
+ if not graphs:
+ return C.PLACEHOLDER
+
+ def _plural(iterative):
+ return "s" if len(iterative) > 1 else str()
+
+ panels = list()
+ for idx, graph_set in enumerate(graphs):
+ acc_items = list()
+ for graph in graph_set[0]:
+ graph_name = ", ".join(graph[1])
+ acc_items.append(
+ dbc.AccordionItem(
+ dcc.Graph(
+ id={"type": "graph-telemetry", "index": graph_name},
+ figure=graph[0]
+ ),
+ title=(f"Test{_plural(graph[1])}: {graph_name}"),
+ class_name="g-0 p-0"
+ )
+ )
+ panels.append(
+ dbc.AccordionItem(
+ [
+ dbc.Row(
+ dbc.Accordion(
+ children=acc_items,
+ class_name="g-0 p-0",
+ start_collapsed=True,
+ always_open=True,
+ flush=True
+ ),
+ class_name="g-0 p-0"
+ ),
+ dbc.Row(
+ html.Div(
+ [
+ dbc.Button(
+ "Remove",
+ id={
+ "type": "tm-btn-remove",
+ "index": idx
+ },
+ class_name="me-1",
+ color="danger",
+ style={"padding": "0rem 1rem"}
+ ),
+ dbc.Button(
+ "Download Data",
+ id={
+ "type": "tm-btn-download",
+ "index": idx
+ },
+ class_name="me-1",
+ color="info",
+ style={"padding": "0rem 1rem"}
+ )
+ ],
+ className=\
+ "d-grid gap-0 d-md-flex justify-content-md-end"
+ ),
+ class_name="g-0 p-0"
+ )
+ ],
+ class_name="g-0 p-0",
+ title=(
+ f"Metric{_plural(graph_set[1])}: ",
+ ", ".join(graph_set[1])
+ )
+ )
+ )
+
+ return dbc.Col(
+ dbc.Accordion(
+ panels,
+ class_name="g-0 p-1",
+ start_collapsed=True,
+ always_open=True
+ )
+ )
+
+ @staticmethod
+ def _get_telemetry_step_1() -> list:
+ """Return the content of the modal window used in the step 1 of metrics
+ selection.
+
+ :returns: A list of dbc rows with 'input' and 'search output'.
+ :rtype: list
+ """
+ return [
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.Input(
+ id={"type": "telemetry-search-in", "index": 0},
+ placeholder="Start typing a metric name...",
+ type="text"
+ )
+ ]
+ ),
+ dbc.Row(
+ class_name="g-0 p-1",
+ children=[
+ dbc.ListGroup(
+ class_name="overflow-auto p-0",
+ id={"type": "telemetry-search-out", "index": 0},
+ children=[],
+ style={"max-height": "14em"},
+ flush=True
+ )
+ ]
+ )
+ ]
+
+ @staticmethod
+ def _get_telemetry_step_2() -> list:
+ """Return the content of the modal window used in the step 2 of metrics
+ selection.
+
+ :returns: A list of dbc rows with 'container with dynamic dropdowns' and
+ 'search output'.
+ :rtype: list
+ """
+ return [
+ dbc.Row(
+ "Add content here.",
+ id={"type": "tm-container", "index": 0},
+ class_name="g-0 p-1"
+ ),
+ dbc.Row(
+ [
+ dbc.Col(
+ dbc.Checkbox(
+ id={"type": "cb-all-in-one", "index": 0},
+ label="All Metrics in one Graph"
+ ),
+ width=6
+ ),
+ dbc.Col(
+ dbc.Checkbox(
+ id={"type": "cb-ignore-host", "index": 0},
+ label="Ignore Host"
+ ),
+ width=6
+ )
+ ],
+ class_name="g-0 p-2"
+ ),
+ dbc.Row(
+ dbc.Textarea(
+ id={"type": "tm-list-metrics", "index": 0},
+ rows=20,
+ size="sm",
+ wrap="off",
+ readonly=True
+ ),
+ class_name="g-0 p-1"
+ )
+ ]
+
+ def callbacks(self, app):
+ """Callbacks for the whole application.
+
+ :param app: The application.
+ :type app: Flask
+ """
+
+ @app.callback(
+ Output("store", "data"),
+ Output("plotting-area-trending", "children"),
+ Output("plotting-area-telemetry", "children"),
+ Output("col-plotting-area", "style"),
+ Output("row-card-sel-tests", "style"),
+ Output("row-btns-sel-tests", "style"),
+ Output("row-btns-add-tm", "style"),
+ Output("lg-selected", "children"),
+ Output({"type": "telemetry-search-out", "index": ALL}, "children"),
+ Output({"type": "plot-mod-telemetry", "index": ALL}, "is_open"),
+ Output({"type": "telemetry-btn", "index": ALL}, "disabled"),
+ Output({"type": "tm-container", "index": ALL}, "children"),
+ Output({"type": "tm-list-metrics", "index": ALL}, "value"),
+ Output({"type": "ctrl-dd", "index": "dut"}, "value"),
+ Output({"type": "ctrl-dd", "index": "phy"}, "options"),
+ Output({"type": "ctrl-dd", "index": "phy"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "phy"}, "value"),
+ Output({"type": "ctrl-dd", "index": "area"}, "options"),
+ Output({"type": "ctrl-dd", "index": "area"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "area"}, "value"),
+ Output({"type": "ctrl-dd", "index": "test"}, "options"),
+ Output({"type": "ctrl-dd", "index": "test"}, "disabled"),
+ Output({"type": "ctrl-dd", "index": "test"}, "value"),
+ Output({"type": "ctrl-cl", "index": "core"}, "options"),
+ Output({"type": "ctrl-cl", "index": "core"}, "value"),
+ Output({"type": "ctrl-cl", "index": "core-all"}, "value"),
+ Output({"type": "ctrl-cl", "index": "core-all"}, "options"),
+ Output({"type": "ctrl-cl", "index": "frmsize"}, "options"),
+ Output({"type": "ctrl-cl", "index": "frmsize"}, "value"),
+ Output({"type": "ctrl-cl", "index": "frmsize-all"}, "value"),
+ Output({"type": "ctrl-cl", "index": "frmsize-all"}, "options"),
+ Output({"type": "ctrl-cl", "index": "tsttype"}, "options"),
+ Output({"type": "ctrl-cl", "index": "tsttype"}, "value"),
+ Output({"type": "ctrl-cl", "index": "tsttype-all"}, "value"),
+ Output({"type": "ctrl-cl", "index": "tsttype-all"}, "options"),
+ Output({"type": "ctrl-btn", "index": "add-test"}, "disabled"),
+ Output("normalize", "value"),
+
+ State("store", "data"),
+ State({"type": "sel-cl", "index": ALL}, "value"),
+ State({"type": "cb-all-in-one", "index": ALL}, "value"),
+ State({"type": "cb-ignore-host", "index": ALL}, "value"),
+ State({"type": "telemetry-search-out", "index": ALL}, "children"),
+ State({"type": "plot-mod-telemetry", "index": ALL}, "is_open"),
+ State({"type": "telemetry-btn", "index": ALL}, "disabled"),
+ State({"type": "tm-container", "index": ALL}, "children"),
+ State({"type": "tm-list-metrics", "index": ALL}, "value"),
+ State({"type": "tele-cl", "index": ALL}, "value"),
+
+ Input("url", "href"),
+ Input({"type": "tm-dd", "index": ALL}, "value"),
+
+ Input("normalize", "value"),
+ Input({"type": "telemetry-search-in", "index": ALL}, "value"),
+ Input({"type": "telemetry-btn", "index": ALL}, "n_clicks"),
+ Input({"type": "tm-btn-remove", "index": ALL}, "n_clicks"),
+ Input({"type": "ctrl-dd", "index": ALL}, "value"),
+ Input({"type": "ctrl-cl", "index": ALL}, "value"),
+ Input({"type": "ctrl-btn", "index": ALL}, "n_clicks"),
+
+ prevent_initial_call=True
+ )
+ def _update_application(
+ store: dict,
+ lst_sel: list,
+ all_in_one: list,
+ ignore_host: list,
+ search_out: list,
+ is_open: list,
+ tm_btns_disabled: list,
+ tm_dd: list,
+ list_metrics: list,
+ cl_metrics: list,
+ href: str,
+ tm_dd_in: list,
+ *_
+ ) -> tuple:
+ """Update the application when the event is detected.
+ """
+
+ if store is None:
+ store = {
+ "control-panel": dict(),
+ "selected-tests": list(),
+ "trending-graphs": None,
+ "telemetry-data": dict(),
+ "selected-metrics": dict(),
+ "telemetry-panels": list(),
+ "telemetry-all-in-one": list(),
+ "telemetry-ignore-host": list(),
+ "telemetry-graphs": list(),
+ "url": str()
+ }
+
+ ctrl_panel = ControlPanel(
+ CP_PARAMS,
+ store.get("control-panel", dict())
+ )
+ store_sel = store["selected-tests"]
+ tm_data = store["telemetry-data"]
+ tm_user = store["selected-metrics"]
+ tm_panels = store["telemetry-panels"]
+ tm_all_in_one = store["telemetry-all-in-one"]
+ tm_ignore_host = store["telemetry-ignore-host"]
+
+ plotting_area_telemetry = no_update
+ on_draw = [False, False] # 0 --> trending, 1 --> telemetry
+
+ # Parse the url:
+ parsed_url = url_decode(href)
+ if parsed_url:
+ url_params = parsed_url["params"]
+ else:
+ url_params = None
+
+ if tm_user is None:
+ # Telemetry user data
+ # The data provided by user or result of user action
+ tm_user = {
+ # List of unique metrics:
+ "unique_metrics": list(),
+ # List of metrics selected by user:
+ "selected_metrics": list(),
+ # Labels from metrics selected by user (key: label name,
+ # value: list of all possible values):
+ "unique_labels": dict(),
+ # Labels selected by the user (subset of 'unique_labels'):
+ "selected_labels": dict(),
+ # All unique metrics with labels (output from the step 1)
+ # converted from pandas dataframe to dictionary.
+ "unique_metrics_with_labels": dict(),
+ # Metrics with labels selected by the user using dropdowns.
+ "selected_metrics_with_labels": dict()
+ }
+ tm = TelemetryData(store_sel) if store_sel else TelemetryData()
+
+ trigger = Trigger(callback_context.triggered)
+ if trigger.type == "url" and url_params:
+ telemetry = None
+ try:
+ store_sel = literal_eval(url_params["store_sel"][0])
+ normalize = literal_eval(url_params["norm"][0])
+ telemetry = literal_eval(url_params["telemetry"][0])
+ url_p = url_params.get("all-in-one", ["[[None]]"])
+ tm_all_in_one = literal_eval(url_p[0])
+ url_p = url_params.get("ignore-host", ["[[None]]"])
+ tm_ignore_host = literal_eval(url_p[0])
+ if not isinstance(telemetry, list):
+ telemetry = [telemetry, ]
+ except (KeyError, IndexError, AttributeError, ValueError):
+ pass
+ if store_sel:
+ last_test = store_sel[-1]
+ test = self._spec_tbs[last_test["dut"]]\
+ [last_test["area"]][last_test["test"]][last_test["phy"]]
+ ctrl_panel.set({
+ "dd-dut-val": last_test["dut"],
+ "dd-area-val": last_test["area"],
+ "dd-area-opt": [
+ {"label": label(v), "value": v} for v in sorted(
+ self._spec_tbs[last_test["dut"]].keys())
+ ],
+ "dd-area-dis": False,
+ "dd-test-val": last_test["test"],
+ "dd-test-opt": generate_options(
+ self._spec_tbs[last_test["dut"]]\
+ [last_test["area"]].keys()
+ ),
+ "dd-test-dis": False,
+ "dd-phy-val": last_test["phy"],
+ "dd-phy-opt": generate_options(
+ self._spec_tbs[last_test["dut"]][last_test["area"]]\
+ [last_test["test"]].keys()
+ ),
+ "dd-phy-dis": False,
+ "cl-core-opt": generate_options(test["core"]),
+ "cl-core-val": [last_test["core"].upper(), ],
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_ENABLED,
+ "cl-frmsize-opt": generate_options(test["frame-size"]),
+ "cl-frmsize-val": [last_test["framesize"].upper(), ],
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_ENABLED,
+ "cl-tsttype-opt": generate_options(test["test-type"]),
+ "cl-tsttype-val": [last_test["testtype"].upper(), ],
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_ENABLED,
+ "cl-normalize-val": normalize,
+ "btn-add-dis": False
+ })
+ store["trending-graphs"] = None
+ store["telemetry-graphs"] = list()
+ on_draw[0] = True
+ if telemetry:
+ tm = TelemetryData(store_sel)
+ tm.from_dataframe(self._data)
+ tm_data = tm.to_json()
+ tm.from_json(tm_data)
+ tm_panels = telemetry
+ on_draw[1] = True
+ elif trigger.type == "normalize":
+ ctrl_panel.set({"cl-normalize-val": trigger.value})
+ store["trending-graphs"] = None
+ on_draw[0] = True
+ elif trigger.type == "ctrl-dd":
+ if trigger.idx == "dut":
+ try:
+ dut = self._spec_tbs[trigger.value]
+ options = [{"label": label(v), "value": v} \
+ for v in sorted(dut.keys())]
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "dd-dut-val": trigger.value,
+ "dd-area-val": str(),
+ "dd-area-opt": options,
+ "dd-area-dis": disabled,
+ "dd-test-val": str(),
+ "dd-test-opt": list(),
+ "dd-test-dis": True,
+ "dd-phy-val": str(),
+ "dd-phy-opt": list(),
+ "dd-phy-dis": True,
+ "cl-core-opt": list(),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_DISABLED,
+ "cl-frmsize-opt": list(),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_DISABLED,
+ "cl-tsttype-opt": list(),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_DISABLED,
+ "btn-add-dis": True
+ })
+ if trigger.idx == "area":
+ try:
+ dut = ctrl_panel.get("dd-dut-val")
+ area = self._spec_tbs[dut][trigger.value]
+ options = generate_options(area.keys())
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "dd-area-val": trigger.value,
+ "dd-test-val": str(),
+ "dd-test-opt": options,
+ "dd-test-dis": disabled,
+ "dd-phy-val": str(),
+ "dd-phy-opt": list(),
+ "dd-phy-dis": True,
+ "cl-core-opt": list(),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_DISABLED,
+ "cl-frmsize-opt": list(),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_DISABLED,
+ "cl-tsttype-opt": list(),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_DISABLED,
+ "btn-add-dis": True
+ })
+ if trigger.idx == "test":
+ try:
+ dut = ctrl_panel.get("dd-dut-val")
+ area = ctrl_panel.get("dd-area-val")
+ test = self._spec_tbs[dut][area][trigger.value]
+ options = generate_options(test.keys())
+ disabled = False
+ except KeyError:
+ options = list()
+ disabled = True
+ ctrl_panel.set({
+ "dd-test-val": trigger.value,
+ "dd-phy-val": str(),
+ "dd-phy-opt": options,
+ "dd-phy-dis": disabled,
+ "cl-core-opt": list(),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_DISABLED,
+ "cl-frmsize-opt": list(),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_DISABLED,
+ "cl-tsttype-opt": list(),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_DISABLED,
+ "btn-add-dis": True
+ })
+ if trigger.idx == "phy":
+ dut = ctrl_panel.get("dd-dut-val")
+ area = ctrl_panel.get("dd-area-val")
+ test = ctrl_panel.get("dd-test-val")
+ if all((dut, area, test, trigger.value, )):
+ phy = self._spec_tbs[dut][area][test][trigger.value]
+ ctrl_panel.set({
+ "dd-phy-val": trigger.value,
+ "cl-core-opt": generate_options(phy["core"]),
+ "cl-core-val": list(),
+ "cl-core-all-val": list(),
+ "cl-core-all-opt": C.CL_ALL_ENABLED,
+ "cl-frmsize-opt": \
+ generate_options(phy["frame-size"]),
+ "cl-frmsize-val": list(),
+ "cl-frmsize-all-val": list(),
+ "cl-frmsize-all-opt": C.CL_ALL_ENABLED,
+ "cl-tsttype-opt": \
+ generate_options(phy["test-type"]),
+ "cl-tsttype-val": list(),
+ "cl-tsttype-all-val": list(),
+ "cl-tsttype-all-opt": C.CL_ALL_ENABLED,
+ "btn-add-dis": True
+ })
+ elif trigger.type == "ctrl-cl":
+ param = trigger.idx.split("-")[0]
+ if "-all" in trigger.idx:
+ c_sel, c_all, c_id = list(), trigger.value, "all"
+ else:
+ c_sel, c_all, c_id = trigger.value, list(), str()
+ val_sel, val_all = sync_checklists(
+ options=ctrl_panel.get(f"cl-{param}-opt"),
+ sel=c_sel,
+ all=c_all,
+ id=c_id
+ )
+ ctrl_panel.set({
+ f"cl-{param}-val": val_sel,
+ f"cl-{param}-all-val": val_all,
+ })
+ if all((ctrl_panel.get("cl-core-val"),
+ ctrl_panel.get("cl-frmsize-val"),
+ ctrl_panel.get("cl-tsttype-val"), )):
+ ctrl_panel.set({"btn-add-dis": False})
+ else:
+ ctrl_panel.set({"btn-add-dis": True})
+ elif trigger.type == "ctrl-btn":
+ tm_panels = list()
+ tm_all_in_one = list()
+ tm_ignore_host = list()
+ store["trending-graphs"] = None
+ store["telemetry-graphs"] = list()
+ on_draw = [True, True]
+ if trigger.idx == "add-test":
+ dut = ctrl_panel.get("dd-dut-val")
+ phy = ctrl_panel.get("dd-phy-val")
+ area = ctrl_panel.get("dd-area-val")
+ test = ctrl_panel.get("dd-test-val")
+ # Add selected test(s) to the list of tests in store:
+ if store_sel is None:
+ store_sel = list()
+ for core in ctrl_panel.get("cl-core-val"):
+ for framesize in ctrl_panel.get("cl-frmsize-val"):
+ for ttype in ctrl_panel.get("cl-tsttype-val"):
+ if dut == "trex":
+ core = str()
+ tid = "-".join((
+ dut,
+ phy.replace('af_xdp', 'af-xdp'),
+ area,
+ framesize.lower(),
+ core.lower(),
+ test,
+ ttype.lower()
+ ))
+ if tid not in [i["id"] for i in store_sel]:
+ store_sel.append({
+ "id": tid,
+ "dut": dut,
+ "phy": phy,
+ "area": area,
+ "test": test,
+ "framesize": framesize.lower(),
+ "core": core.lower(),
+ "testtype": ttype.lower()
+ })
+ store_sel = sorted(store_sel, key=lambda d: d["id"])
+ if C.CLEAR_ALL_INPUTS:
+ ctrl_panel.set(ctrl_panel.defaults)
+ elif trigger.idx == "rm-test" and lst_sel:
+ new_store_sel = list()
+ for idx, item in enumerate(store_sel):
+ if not lst_sel[idx]:
+ new_store_sel.append(item)
+ store_sel = new_store_sel
+ elif trigger.idx == "rm-test-all":
+ store_sel = list()
+ elif trigger.type == "telemetry-btn":
+ if trigger.idx in ("open", "back"):
+ tm.from_dataframe(self._data)
+ tm_data = tm.to_json()
+ tm_user["unique_metrics"] = tm.unique_metrics
+ tm_user["selected_metrics"] = list()
+ tm_user["unique_labels"] = dict()
+ tm_user["selected_labels"] = dict()
+ search_out = (
+ get_list_group_items(tm_user["unique_metrics"],
+ "tele-cl", False),
+ )
+ is_open = (True, False)
+ tm_btns_disabled[1], tm_btns_disabled[5] = False, True
+ elif trigger.idx == "select":
+ if any(cl_metrics):
+ tm.from_json(tm_data)
+ if not tm_user["selected_metrics"]:
+ tm_user["selected_metrics"] = \
+ tm_user["unique_metrics"]
+ metrics = [a for a, b in \
+ zip(tm_user["selected_metrics"], cl_metrics) if b]
+ tm_user["selected_metrics"] = metrics
+ tm_user["unique_labels"] = \
+ tm.get_selected_labels(metrics)
+ tm_user["unique_metrics_with_labels"] = \
+ tm.unique_metrics_with_labels
+ list_metrics[0] = tm.str_metrics
+ tm_dd[0] = _get_dd_container(tm_user["unique_labels"])
+ if list_metrics[0]:
+ tm_btns_disabled[1] = True
+ tm_btns_disabled[4] = False
+ is_open = (False, True)
+ else:
+ is_open = (True, False)
+ elif trigger.idx == "add":
+ tm.from_json(tm_data)
+ tm_panels.append(tm_user["selected_metrics_with_labels"])
+ tm_all_in_one.append(all_in_one)
+ tm_ignore_host.append(ignore_host)
+ is_open = (False, False)
+ tm_btns_disabled[1], tm_btns_disabled[5] = True, True
+ on_draw = [True, True]
+ elif trigger.idx == "cancel":
+ is_open = (False, False)
+ tm_btns_disabled[1], tm_btns_disabled[5] = True, True
+ elif trigger.idx == "rm-all":
+ tm_panels = list()
+ tm_all_in_one = list()
+ tm_ignore_host = list()
+ tm_user = None
+ is_open = (False, False)
+ tm_btns_disabled[1], tm_btns_disabled[5] = True, True
+ plotting_area_telemetry = C.PLACEHOLDER
+ elif trigger.type == "telemetry-search-in":
+ tm.from_metrics(tm_user["unique_metrics"])
+ tm_user["selected_metrics"] = \
+ tm.search_unique_metrics(trigger.value)
+ search_out = (get_list_group_items(
+ tm_user["selected_metrics"],
+ type="tele-cl",
+ colorize=False
+ ), )
+ is_open = (True, False)
+ elif trigger.type == "tm-dd":
+ tm.from_metrics_with_labels(
+ tm_user["unique_metrics_with_labels"]
+ )
+ selected = dict()
+ previous_itm = None
+ for itm in tm_dd_in:
+ if itm is None:
+ show_new = True
+ elif isinstance(itm, str):
+ show_new = False
+ selected[itm] = list()
+ elif isinstance(itm, list):
+ if previous_itm is not None:
+ selected[previous_itm] = itm
+ show_new = True
+ previous_itm = itm
+ tm_dd[0] = _get_dd_container(
+ tm_user["unique_labels"],
+ selected,
+ show_new
+ )
+ sel_metrics = tm.filter_selected_metrics_by_labels(selected)
+ tm_user["selected_metrics_with_labels"] = sel_metrics.to_dict()
+ if not sel_metrics.empty:
+ list_metrics[0] = tm.metrics_to_str(sel_metrics)
+ tm_btns_disabled[5] = False
+ else:
+ list_metrics[0] = str()
+ elif trigger.type == "tm-btn-remove":
+ del tm_panels[trigger.idx]
+ del tm_all_in_one[trigger.idx]
+ del tm_ignore_host[trigger.idx]
+ del store["telemetry-graphs"][trigger.idx]
+ tm.from_json(tm_data)
+ on_draw = [True, True]
+
+ new_url_params = {
+ "store_sel": store_sel,
+ "norm": ctrl_panel.get("cl-normalize-val")
+ }
+ if tm_panels:
+ new_url_params["telemetry"] = tm_panels
+ new_url_params["all-in-one"] = tm_all_in_one
+ new_url_params["ignore-host"] = tm_ignore_host
+
+ if on_draw[0]: # Trending
+ if store_sel:
+ lg_selected = get_list_group_items(store_sel, "sel-cl")
+ if store["trending-graphs"]:
+ graphs = store["trending-graphs"]
+ else:
+ graphs = graph_trending(
+ self._data,
+ store_sel,
+ self._graph_layout,
+ bool(ctrl_panel.get("cl-normalize-val"))
+ )
+ if graphs and graphs[0]:
+ store["trending-graphs"] = graphs
+ plotting_area_trending = \
+ Layout._plotting_area_trending(graphs)
+
+ # Telemetry
+ start_idx = len(store["telemetry-graphs"])
+ end_idx = len(tm_panels)
+ if not end_idx:
+ plotting_area_telemetry = C.PLACEHOLDER
+ elif on_draw[1] and (end_idx >= start_idx):
+ if len(tm_all_in_one) != end_idx:
+ tm_all_in_one = [[None], ] * end_idx
+ if len(tm_ignore_host) != end_idx:
+ tm_ignore_host = [[None], ] * end_idx
+ for idx in range(start_idx, end_idx):
+ store["telemetry-graphs"].append(graph_tm_trending(
+ tm.select_tm_trending_data(
+ tm_panels[idx],
+ ignore_host=bool(tm_ignore_host[idx][0])
+ ),
+ self._graph_layout,
+ bool(tm_all_in_one[idx][0])
+ ))
+ plotting_area_telemetry = \
+ Layout._plotting_area_telemetry(
+ store["telemetry-graphs"]
+ )
+ col_plotting_area = C.STYLE_ENABLED
+ row_card_sel_tests = C.STYLE_ENABLED
+ row_btns_sel_tests = C.STYLE_ENABLED
+ row_btns_add_tm = C.STYLE_ENABLED
+ else:
+ plotting_area_trending = no_update
+ plotting_area_telemetry = C.PLACEHOLDER
+ col_plotting_area = C.STYLE_DISABLED
+ row_card_sel_tests = C.STYLE_DISABLED
+ row_btns_sel_tests = C.STYLE_DISABLED
+ row_btns_add_tm = C.STYLE_DISABLED
+ lg_selected = no_update
+ store_sel = list()
+ tm_panels = list()
+ tm_all_in_one = list()
+ tm_ignore_host = list()
+ tm_user = None
+ else:
+ plotting_area_trending = no_update
+ col_plotting_area = no_update
+ row_card_sel_tests = no_update
+ row_btns_sel_tests = no_update
+ row_btns_add_tm = no_update
+ lg_selected = no_update
+
+ store["url"] = gen_new_url(parsed_url, new_url_params)
+ store["control-panel"] = ctrl_panel.panel
+ store["selected-tests"] = store_sel
+ store["telemetry-data"] = tm_data
+ store["selected-metrics"] = tm_user
+ store["telemetry-panels"] = tm_panels
+ store["telemetry-all-in-one"] = tm_all_in_one
+ store["telemetry-ignore-host"] = tm_ignore_host
+ ret_val = [
+ store,
+ plotting_area_trending,
+ plotting_area_telemetry,
+ col_plotting_area,
+ row_card_sel_tests,
+ row_btns_sel_tests,
+ row_btns_add_tm,
+ lg_selected,
+ search_out,
+ is_open,
+ tm_btns_disabled,
+ tm_dd,
+ list_metrics
+ ]
+ ret_val.extend(ctrl_panel.values)
+ return ret_val
+
+ @app.callback(
+ Output("plot-mod-url", "is_open"),
+ Output("mod-url", "children"),
+ State("store", "data"),
+ State("plot-mod-url", "is_open"),
+ Input("plot-btn-url", "n_clicks")
+ )
+ def toggle_plot_mod_url(store, is_open, n_clicks):
+ """Toggle the modal window with url.
+ """
+ if not store:
+ raise PreventUpdate
+
+ if n_clicks:
+ return not is_open, store.get("url", str())
+ return is_open, store["url"]
+
+ def _get_dd_container(
+ all_labels: dict,
+ selected_labels: dict=dict(),
+ show_new=True
+ ) -> list:
+ """Generate a container with dropdown selection boxes depenting on
+ the input data.
+
+ :param all_labels: A dictionary with unique labels and their
+ possible values.
+ :param selected_labels: A dictionalry with user selected lables and
+ their values.
+ :param show_new: If True, a dropdown selection box to add a new
+ label is displayed.
+ :type all_labels: dict
+ :type selected_labels: dict
+ :type show_new: bool
+ :returns: A list of dbc rows with dropdown selection boxes.
+ :rtype: list
+ """
+
+ def _row(
+ id: str,
+ lopts: list=list(),
+ lval: str=str(),
+ vopts: list=list(),
+ vvals: list=list()
+ ) -> dbc.Row:
+ """Generates a dbc row with dropdown boxes.
+
+ :param id: A string added to the dropdown ID.
+ :param lopts: A list of options for 'label' dropdown.
+ :param lval: Value of 'label' dropdown.
+ :param vopts: A list of options for 'value' dropdown.
+ :param vvals: A list of values for 'value' dropdown.
+ :type id: str
+ :type lopts: list
+ :type lval: str
+ :type vopts: list
+ :type vvals: list
+ :returns: dbc row with dropdown boxes.
+ :rtype: dbc.Row
+ """
+ children = list()
+ if lopts:
+ children.append(
+ dbc.Col(
+ width=6,
+ children=[
+ dcc.Dropdown(
+ id={
+ "type": "tm-dd",
+ "index": f"label-{id}"
+ },
+ placeholder="Select a label...",
+ optionHeight=20,
+ multi=False,
+ options=lopts,
+ value=lval if lval else None
+ )
+ ]
+ )
+ )
+ if vopts:
+ children.append(
+ dbc.Col(
+ width=6,
+ children=[
+ dcc.Dropdown(
+ id={
+ "type": "tm-dd",
+ "index": f"value-{id}"
+ },
+ placeholder="Select a value...",
+ optionHeight=20,
+ multi=True,
+ options=vopts,
+ value=vvals if vvals else None
+ )
+ ]
+ )
+ )
+
+ return dbc.Row(class_name="g-0 p-1", children=children)
+
+ container = list()
+
+ # Display rows with items in 'selected_labels'; label on the left,
+ # values on the right:
+ keys_left = list(all_labels.keys())
+ for idx, label in enumerate(selected_labels.keys()):
+ container.append(_row(
+ id=idx,
+ lopts=deepcopy(keys_left),
+ lval=label,
+ vopts=all_labels[label],
+ vvals=selected_labels[label]
+ ))
+ keys_left.remove(label)
+
+ # Display row with dd with labels on the left, right side is empty:
+ if show_new and keys_left:
+ container.append(_row(id="new", lopts=keys_left))
+
+ return container
+
+ @app.callback(
+ Output("metadata-tput-lat", "children"),
+ Output("metadata-hdrh-graph", "children"),
+ Output("offcanvas-metadata", "is_open"),
+ Input({"type": "graph", "index": ALL}, "clickData"),
+ prevent_initial_call=True
+ )
+ def _show_metadata_from_graphs(graph_data: dict) -> tuple:
+ """Generates the data for the offcanvas displayed when a particular
+ point in a graph is clicked on.
+
+ :param graph_data: The data from the clicked point in the graph.
+ :type graph_data: dict
+ :returns: The data to be displayed on the offcanvas and the
+ information to show the offcanvas.
+ :rtype: tuple(list, list, bool)
+ """
+
+ trigger = Trigger(callback_context.triggered)
+ if not trigger.value:
+ raise PreventUpdate
+
+ return show_trending_graph_data(
+ trigger, graph_data, self._graph_layout)
+
+ @app.callback(
+ Output("download-trending-data", "data"),
+ State("store", "data"),
+ Input("plot-btn-download", "n_clicks"),
+ Input({"type": "tm-btn-download", "index": ALL}, "n_clicks"),
+ prevent_initial_call=True
+ )
+ def _download_data(store: list, *_) -> dict:
+ """Download the data
+
+ :param store_sel: List of tests selected by user stored in the
+ browser.
+ :type store_sel: list
+ :returns: dict of data frame content (base64 encoded) and meta data
+ used by the Download component.
+ :rtype: dict
+ """
+
+ if not store:
+ raise PreventUpdate
+ if not store["selected-tests"]:
+ raise PreventUpdate
+
+ df = pd.DataFrame()
+
+ trigger = Trigger(callback_context.triggered)
+ if not trigger.value:
+ raise PreventUpdate
+
+ if trigger.type == "plot-btn-download":
+ data = list()
+ for itm in store["selected-tests"]:
+ sel_data = select_trending_data(self._data, itm)
+ if sel_data is None:
+ continue
+ data.append(sel_data)
+ df = pd.concat(data, ignore_index=True, copy=False)
+ file_name = C.TREND_DOWNLOAD_FILE_NAME
+ elif trigger.type == "tm-btn-download":
+ tm = TelemetryData(store["selected-tests"])
+ tm.from_json(store["telemetry-data"])
+ df = tm.select_tm_trending_data(
+ store["telemetry-panels"][trigger.idx]
+ )
+ file_name = C.TELEMETRY_DOWNLOAD_FILE_NAME
+ else:
+ raise PreventUpdate
+
+ return dcc.send_data_frame(df.to_csv, file_name)
+
+ @app.callback(
+ Output("offcanvas-documentation", "is_open"),
+ Input("btn-documentation", "n_clicks"),
+ State("offcanvas-documentation", "is_open")
+ )
+ def toggle_offcanvas_documentation(n_clicks, is_open):
+ if n_clicks:
+ return not is_open
+ return is_open
diff --git a/csit.infra.dash/app/cdash/trending/layout.yaml b/csit.infra.dash/app/cdash/trending/layout.yaml
new file mode 100644
index 0000000000..e4fcd29260
--- /dev/null
+++ b/csit.infra.dash/app/cdash/trending/layout.yaml
@@ -0,0 +1,201 @@
+plot-trending-tput:
+ autosize: True
+ showlegend: False
+ yaxis:
+ showticklabels: True
+ tickformat: ".3s"
+ title: "Throughput [pps|cps|rps|bps]"
+ hoverformat: ".5s"
+ gridcolor: "rgb(238, 238, 238)"
+ linecolor: "rgb(238, 238, 238)"
+ showline: True
+ zeroline: False
+ tickcolor: "rgb(238, 238, 238)"
+ linewidth: 1
+ showgrid: True
+ xaxis:
+ title: 'Date [MMDD]'
+ type: "date"
+ autorange: True
+ fixedrange: False
+ showgrid: True
+ gridcolor: "rgb(238, 238, 238)"
+ showline: True
+ linecolor: "rgb(238, 238, 238)"
+ zeroline: False
+ linewidth: 1
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "auto"
+ tickformat: "%m%d"
+ margin:
+ r: 20
+ b: 0
+ t: 5
+ l: 70
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-trending-bandwidth:
+ autosize: True
+ showlegend: False
+ yaxis:
+ showticklabels: True
+ tickformat: ".3s"
+ title: "Bandwidth [bps]"
+ hoverformat: ".5s"
+ gridcolor: "rgb(238, 238, 238)"
+ linecolor: "rgb(238, 238, 238)"
+ showline: True
+ zeroline: False
+ tickcolor: "rgb(238, 238, 238)"
+ linewidth: 1
+ showgrid: True
+ xaxis:
+ title: 'Date [MMDD]'
+ type: "date"
+ autorange: True
+ fixedrange: False
+ showgrid: True
+ gridcolor: "rgb(238, 238, 238)"
+ showline: True
+ linecolor: "rgb(238, 238, 238)"
+ zeroline: False
+ linewidth: 1
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "auto"
+ tickformat: "%m%d"
+ margin:
+ r: 20
+ b: 0
+ t: 5
+ l: 70
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-trending-lat:
+ autosize: True
+ showlegend: False
+ yaxis:
+ showticklabels: True
+ tickformat: ".3s"
+ title: "Average Latency at 50% PDR [us]"
+ hoverformat: ".5s"
+ gridcolor: "rgb(238, 238, 238)"
+ linecolor: "rgb(238, 238, 238)"
+ showline: True
+ zeroline: False
+ tickcolor: "rgb(238, 238, 238)"
+ linewidth: 1
+ showgrid: True
+ xaxis:
+ title: 'Date [MMDD]'
+ type: "date"
+ autorange: True
+ fixedrange: False
+ showgrid: True
+ gridcolor: "rgb(238, 238, 238)"
+ showline: True
+ linecolor: "rgb(238, 238, 238)"
+ zeroline: False
+ linewidth: 1
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "auto"
+ tickformat: "%m%d"
+ margin:
+ r: 20
+ b: 0
+ t: 5
+ l: 70
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: -1
+
+plot-hdrh-latency:
+ showlegend: True
+ legend:
+ traceorder: "normal"
+ orientation: "h"
+ xanchor: "left"
+ yanchor: "top"
+ x: 0
+ y: -0.25
+ bgcolor: "rgba(255, 255, 255, 0)"
+ bordercolor: "rgba(255, 255, 255, 0)"
+ xaxis:
+ type: "log"
+ title: "Percentile [%]"
+ autorange: True
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ tickvals: [1, 2, 1e1, 20, 1e2, 1e3, 1e4, 1e5, 1e6]
+ ticktext: [0, 50, 90, 95, 99, 99.9, 99.99, 99.999, 99.9999]
+ yaxis:
+ title: "One-Way Latency per Direction [us]"
+ gridcolor: "rgb(230, 230, 230)"
+ linecolor: "rgb(220, 220, 220)"
+ linewidth: 1
+ showgrid: True
+ showline: True
+ showticklabels: True
+ tickcolor: "rgb(220, 220, 220)"
+ autosize: True
+ paper_bgcolor: "white"
+ plot_bgcolor: "white"
+
+plot-trending-telemetry:
+ autosize: True
+ showlegend: True
+ yaxis:
+ showticklabels: True
+ tickformat: ".3s"
+ title: "Metric"
+ hoverformat: ".5s"
+ gridcolor: "rgb(238, 238, 238)"
+ linecolor: "rgb(238, 238, 238)"
+ showline: True
+ zeroline: False
+ tickcolor: "rgb(238, 238, 238)"
+ linewidth: 1
+ showgrid: True
+ xaxis:
+ title: 'Date [MMDD]'
+ type: "date"
+ autorange: True
+ fixedrange: False
+ showgrid: True
+ gridcolor: "rgb(238, 238, 238)"
+ showline: True
+ linecolor: "rgb(238, 238, 238)"
+ zeroline: False
+ linewidth: 1
+ showticklabels: True
+ tickcolor: "rgb(238, 238, 238)"
+ tickmode: "auto"
+ tickformat: "%m%d"
+ margin:
+ r: 20
+ b: 0
+ t: 5
+ l: 70
+ paper_bgcolor: "#fff"
+ plot_bgcolor: "#fff"
+ hoverlabel:
+ namelength: 50
+ legend:
+ orientation: "h"
+ y: -0.2
+ font:
+ size: 12
diff --git a/csit.infra.dash/app/cdash/trending/trending.py b/csit.infra.dash/app/cdash/trending/trending.py
new file mode 100644
index 0000000000..257e3de625
--- /dev/null
+++ b/csit.infra.dash/app/cdash/trending/trending.py
@@ -0,0 +1,52 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Instantiate the Trending Dash application.
+"""
+import dash
+import pandas as pd
+
+from ..utils.constants import Constants as C
+from .layout import Layout
+
+
+def init_trending(
+ server,
+ data_trending: pd.DataFrame
+ ) -> dash.Dash:
+ """Create a Plotly Dash dashboard.
+
+ :param server: Flask server.
+ :type server: Flask
+ :returns: Dash app server.
+ :rtype: Dash
+ """
+
+ dash_app = dash.Dash(
+ server=server,
+ routes_pathname_prefix=C.TREND_ROUTES_PATHNAME_PREFIX,
+ external_stylesheets=C.EXTERNAL_STYLESHEETS,
+ title=C.TREND_TITLE
+ )
+
+ layout = Layout(
+ app=dash_app,
+ data_trending=data_trending,
+ html_layout_file=C.HTML_LAYOUT_FILE,
+ graph_layout_file=C.TREND_GRAPH_LAYOUT_FILE,
+ tooltip_file=C.TOOLTIP_FILE
+ )
+ dash_app.index_string = layout.html_layout
+ dash_app.layout = layout.add_content()
+
+ return dash_app.server
diff --git a/csit.infra.dash/app/cdash/utils/__init__.py b/csit.infra.dash/app/cdash/utils/__init__.py
new file mode 100644
index 0000000000..c6a5f639fe
--- /dev/null
+++ b/csit.infra.dash/app/cdash/utils/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
diff --git a/csit.infra.dash/app/cdash/utils/anomalies.py b/csit.infra.dash/app/cdash/utils/anomalies.py
new file mode 100644
index 0000000000..3deece2e04
--- /dev/null
+++ b/csit.infra.dash/app/cdash/utils/anomalies.py
@@ -0,0 +1,69 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Functions used by Dash applications to detect anomalies.
+"""
+
+from numpy import isnan
+
+from ..jumpavg import classify
+
+
+def classify_anomalies(data):
+ """Process the data and return anomalies and trending values.
+
+ Gather data into groups with average as trend value.
+ Decorate values within groups to be normal,
+ the first value of changed average as a regression, or a progression.
+
+ :param data: Full data set with unavailable samples replaced by nan.
+ :type data: OrderedDict
+ :returns: Classification and trend values
+ :rtype: 3-tuple, list of strings, list of floats and list of floats
+ """
+ # NaN means something went wrong.
+ # Use 0.0 to cause that being reported as a severe regression.
+ bare_data = [0.0 if isnan(sample) else sample for sample in data.values()]
+ # TODO: Make BitCountingGroupList a subclass of list again?
+ group_list = classify(bare_data).group_list
+ group_list.reverse() # Just to use .pop() for FIFO.
+ classification = list()
+ avgs = list()
+ stdevs = list()
+ active_group = None
+ values_left = 0
+ avg = 0.0
+ stdv = 0.0
+ for sample in data.values():
+ if isnan(sample):
+ classification.append("outlier")
+ avgs.append(sample)
+ stdevs.append(sample)
+ continue
+ if values_left < 1 or active_group is None:
+ values_left = 0
+ while values_left < 1: # Ignore empty groups (should not happen).
+ active_group = group_list.pop()
+ values_left = len(active_group.run_list)
+ avg = active_group.stats.avg
+ stdv = active_group.stats.stdev
+ classification.append(active_group.comment)
+ avgs.append(avg)
+ stdevs.append(stdv)
+ values_left -= 1
+ continue
+ classification.append("normal")
+ avgs.append(avg)
+ stdevs.append(stdv)
+ values_left -= 1
+ return classification, avgs, stdevs
diff --git a/csit.infra.dash/app/cdash/utils/constants.py b/csit.infra.dash/app/cdash/utils/constants.py
new file mode 100644
index 0000000000..5ed5a8cbd7
--- /dev/null
+++ b/csit.infra.dash/app/cdash/utils/constants.py
@@ -0,0 +1,444 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Constants used in CDash.
+
+"Constant" means a value that keeps its value since initialization. The value
+does not need to be hard coded here, but can be read from environment variables.
+"""
+
+import logging
+
+from dash import html
+
+
+class Constants:
+ """Constants used in CDash.
+ """
+
+ ############################################################################
+ # General, application wide constants.
+
+ # Logging settings.
+ LOG_LEVEL = logging.INFO
+ LOG_FORMAT = "%(asctime)s: %(levelname)s: %(message)s"
+ LOG_DATE_FORMAT = "%Y/%m/%d %H:%M:%S"
+
+ # The application title.
+ TITLE = "FD.io CSIT"
+ BRAND = "CSIT-Dash"
+
+ # The application description.
+ DESCRIPTION = "Performance Dashboard"
+
+ # External stylesheets.
+ EXTERNAL_STYLESHEETS = ["/static/dist/css/bootstrap.css", ]
+
+ # URL to Jenkins
+ URL_JENKINS = "https://jenkins.fd.io/job/"
+
+ # URL to the documentation
+ URL_DOC_TRENDING = "https://csit.fd.io/cdocs/methodology/trending/analysis/"
+ URL_DOC_REL_NOTES = "https://csit.fd.io/cdocs/release_notes/current/"
+
+ # Path and name of the file specifying the HTML layout of the dash
+ # application.
+ MAIN_HTML_LAYOUT_FILE = "base_layout.jinja2"
+
+ # Path and name of the file specifying the HTML layout of the dash
+ # application.
+ HTML_LAYOUT_FILE = "cdash/templates/dash_layout.jinja2"
+
+ # Application root.
+ APPLICATIN_ROOT = "/"
+
+ # Data to be downloaded from the parquets specification file.
+ DATA_SPEC_FILE = "cdash/data/data.yaml"
+
+ # Path to schemas to use when reading data from the parquet.
+ PATH_TO_SCHEMAS = "cdash/data/_metadata/"
+
+ # The file with tooltips.
+ TOOLTIP_FILE = "cdash/utils/tooltips.yaml"
+
+ # Maximal value of TIME_PERIOD for data read from the parquets in days.
+ # Do not change without a good reason.
+ MAX_TIME_PERIOD = 250
+
+ # It defines the time period for data read from the parquets in days from
+ # now back to the past.
+ # TIME_PERIOD = None - means all data (max MAX_TIME_PERIOD days) is read.
+ # TIME_PERIOD = MAX_TIME_PERIOD - is the default value
+ TIME_PERIOD = MAX_TIME_PERIOD # [days]
+
+ ############################################################################
+ # General, application wide, layout affecting constants.
+
+ # Add a time delay (in ms) to the spinner being shown
+ SPINNER_DELAY = 500
+
+ # If True, clear all inputs in control panel when button "ADD SELECTED" is
+ # pressed.
+ CLEAR_ALL_INPUTS = False
+
+ # The element is disabled.
+ STYLE_DISABLED = {"visibility": "hidden"}
+
+ # The element is enabled and visible.
+ STYLE_ENABLED = {"visibility": "visible"}
+
+ # The element is not displayed.
+ STYLE_DONT_DISPLAY = {"display": "none"}
+
+ # The element is displaed.
+ STYLE_DISPLAY = {"display": "flex"}
+
+ # Checklist "All" is disabled.
+ CL_ALL_DISABLED = [
+ {
+ "label": "All",
+ "value": "all",
+ "disabled": True
+ }
+ ]
+
+ # Checklist "All" is enabled, visible and unchecked.
+ CL_ALL_ENABLED = [
+ {
+ "label": "All",
+ "value": "all",
+ "disabled": False
+ }
+ ]
+
+ # Placeholder for any element in the layout.
+ PLACEHOLDER = html.Nobr("")
+
+ # List of drivers used in CSIT.
+ DRIVERS = ("avf", "af-xdp", "rdma", "dpdk", "mlx5")
+
+ # Labels for input elements (dropdowns, ...).
+ LABELS = {
+ "dpdk": "DPDK",
+ "container_memif": "LXC/DRC Container Memif",
+ "crypto": "IPSec IPv4 Routing",
+ "gso": "GSO",
+ "ip4": "IPv4 Routing",
+ "ip4_tunnels": "IPv4 Tunnels",
+ "ip6": "IPv6 Routing",
+ "ip6_tunnels": "IPv6 Tunnels",
+ "l2": "L2 Ethernet Switching",
+ "lb": "Load Balancer",
+ "srv6": "SRv6 Routing",
+ "vm_vhost": "VMs vhost-user",
+ "nfv_density.dcr_memif.chain_ipsec": "CNF Service Chains Routing IPSec",
+ "nfv_density.vm_vhost.chain_dot1qip4vxlan":"VNF Service Chains Tunnels",
+ "nfv_density.vm_vhost.chain": "VNF Service Chains Routing",
+ "nfv_density.dcr_memif.pipeline": "CNF Service Pipelines Routing",
+ "nfv_density.dcr_memif.chain": "CNF Service Chains Routing",
+ "hoststack": "Hoststack",
+ "flow": "Flow",
+ "l2bd": "L2 Bridge Domain",
+ "crypto.ethip4": "IPSec IPv4 Routing",
+ "crypto.ethip6": "IPSec IPv6 Routing",
+ "interfaces": "Interfaces",
+ "ip4_tunnels.lisp": "IPv4 Tunnels LISP",
+ "ip6_tunnels.lisp": "IPv6 Tunnels LISP",
+ "l2patch": "L2 Patch",
+ "l2xc": "L2 Cross Connect",
+ "vm_vhost.ethip4": "VMs vhost-user IPv4 Routing",
+ "vm_vhost.ethip6": "VMs vhost-user IPv6 Routing"
+ }
+
+ # URL style.
+ URL_STYLE = {
+ "background-color": "#d2ebf5",
+ "border-color": "#bce1f1",
+ "color": "#135d7c"
+ }
+
+ ############################################################################
+ # General, normalization constants.
+
+ NORM_FREQUENCY = 2.0 # [GHz]
+ FREQUENCY = { # [GHz]
+ "1n-aws": 3.400,
+ "2n-aws": 3.400,
+ "2n-c6in": 3.500,
+ "2n-clx": 2.300,
+ "2n-icx": 2.600,
+ "2n-spr": 2.800,
+ "2n-tx2": 2.500,
+ "2n-zn2": 2.900,
+ "3n-alt": 3.000,
+ "3n-icx": 2.600,
+ "3n-icxd": 2.000,
+ "3n-snr": 2.200,
+ "3n-tsh": 2.200,
+ "3na-spr": 2.800,
+ "3nb-spr": 2.800
+ }
+
+ ############################################################################
+ # General, plots and tables constants.
+
+ PLOT_COLORS = (
+ "#1A1110", "#DA2647", "#214FC6", "#01786F", "#BD8260", "#FFD12A",
+ "#A6E7FF", "#738276", "#C95A49", "#FC5A8D", "#CEC8EF", "#391285",
+ "#6F2DA8", "#FF878D", "#45A27D", "#FFD0B9", "#FD5240", "#DB91EF",
+ "#44D7A8", "#4F86F7", "#84DE02", "#FFCFF1", "#614051"
+ )
+
+ # Trending, anomalies.
+ ANOMALY_COLOR = {
+ "regression": 0.0,
+ "normal": 0.5,
+ "progression": 1.0
+ }
+
+ COLORSCALE_TPUT = [
+ [0.00, "red"],
+ [0.33, "red"],
+ [0.33, "white"],
+ [0.66, "white"],
+ [0.66, "green"],
+ [1.00, "green"]
+ ]
+
+ TICK_TEXT_TPUT = ["Regression", "Normal", "Progression"]
+
+ COLORSCALE_LAT = [
+ [0.00, "green"],
+ [0.33, "green"],
+ [0.33, "white"],
+ [0.66, "white"],
+ [0.66, "red"],
+ [1.00, "red"]
+ ]
+
+ TICK_TEXT_LAT = ["Progression", "Normal", "Regression"]
+
+ # Access to the results.
+ VALUE = {
+ "mrr": "result_receive_rate_rate_avg",
+ "ndr": "result_ndr_lower_rate_value",
+ "pdr": "result_pdr_lower_rate_value",
+ "mrr-bandwidth": "result_receive_rate_bandwidth_avg",
+ "ndr-bandwidth": "result_ndr_lower_bandwidth_value",
+ "pdr-bandwidth": "result_pdr_lower_bandwidth_value",
+ "latency": "result_latency_forward_pdr_50_avg",
+ "hoststack-cps": "result_rate_value",
+ "hoststack-rps": "result_rate_value",
+ "hoststack-cps-bandwidth": "result_bandwidth_value",
+ "hoststack-rps-bandwidth": "result_bandwidth_value",
+ "hoststack-bps": "result_bandwidth_value",
+ "hoststack-latency": "result_latency_value"
+ }
+
+ VALUE_ITER = {
+ "mrr": "result_receive_rate_rate_values",
+ "ndr": "result_ndr_lower_rate_value",
+ "pdr": "result_pdr_lower_rate_value",
+ "mrr-bandwidth": "result_receive_rate_bandwidth_avg",
+ "ndr-bandwidth": "result_ndr_lower_bandwidth_value",
+ "pdr-bandwidth": "result_pdr_lower_bandwidth_value",
+ "latency": "result_latency_forward_pdr_50_avg",
+ "hoststack-cps": "result_rate_value",
+ "hoststack-rps": "result_rate_value",
+ "hoststack-bps": "result_bandwidth_value",
+ "hoststack-latency": "result_latency_value"
+ }
+
+ UNIT = {
+ "mrr": "result_receive_rate_rate_unit",
+ "ndr": "result_ndr_lower_rate_unit",
+ "pdr": "result_pdr_lower_rate_unit",
+ "mrr-bandwidth": "result_receive_rate_bandwidth_unit",
+ "ndr-bandwidth": "result_ndr_lower_bandwidth_unit",
+ "pdr-bandwidth": "result_pdr_lower_bandwidth_unit",
+ "latency": "result_latency_forward_pdr_50_unit",
+ "hoststack-cps": "result_rate_unit",
+ "hoststack-rps": "result_rate_unit",
+ "hoststack-cps-bandwidth": "result_bandwidth_unit",
+ "hoststack-rps-bandwidth": "result_bandwidth_unit",
+ "hoststack-bps": "result_bandwidth_unit",
+ "hoststack-latency": "result_latency_unit"
+ }
+
+ # Latencies.
+ LAT_HDRH = ( # Do not change the order
+ "result_latency_forward_pdr_0_hdrh",
+ "result_latency_reverse_pdr_0_hdrh",
+ "result_latency_forward_pdr_10_hdrh",
+ "result_latency_reverse_pdr_10_hdrh",
+ "result_latency_forward_pdr_50_hdrh",
+ "result_latency_reverse_pdr_50_hdrh",
+ "result_latency_forward_pdr_90_hdrh",
+ "result_latency_reverse_pdr_90_hdrh",
+ )
+
+ # This value depends on latency stream rate (9001 pps) and duration (5s).
+ # Keep it slightly higher to ensure rounding errors to not remove tick mark.
+ PERCENTILE_MAX = 99.999501
+
+ GRAPH_LAT_HDRH_DESC = {
+ "result_latency_forward_pdr_0_hdrh": "No-load.",
+ "result_latency_reverse_pdr_0_hdrh": "No-load.",
+ "result_latency_forward_pdr_10_hdrh": "Low-load, 10% PDR.",
+ "result_latency_reverse_pdr_10_hdrh": "Low-load, 10% PDR.",
+ "result_latency_forward_pdr_50_hdrh": "Mid-load, 50% PDR.",
+ "result_latency_reverse_pdr_50_hdrh": "Mid-load, 50% PDR.",
+ "result_latency_forward_pdr_90_hdrh": "High-load, 90% PDR.",
+ "result_latency_reverse_pdr_90_hdrh": "High-load, 90% PDR."
+ }
+
+ # Operators used to filter data in comparison tables.
+ OPERATORS = (
+ ("contains ", ),
+ ("lt ", "<"),
+ ("gt ", ">"),
+ ("eq ", "="),
+ ("ge ", ">="),
+ ("le ", "<="),
+ ("ne ", "!="),
+ ("datestartswith ", )
+ )
+
+ ############################################################################
+ # News.
+
+ # The title.
+ NEWS_TITLE = "Failures and Anomalies"
+
+ # The pathname prefix for the application.
+ NEWS_ROUTES_PATHNAME_PREFIX = "/news/"
+
+ # Time period for regressions and progressions.
+ NEWS_TIME_PERIOD = TIME_PERIOD # [days]
+
+ # Time periods for summary tables.
+ NEWS_LAST = 1 # [days]
+ NEWS_SHORT = 7 # [days]
+ NEWS_LONG = NEWS_TIME_PERIOD # [days]
+
+ ############################################################################
+ # Report.
+
+ # The title.
+ REPORT_TITLE = "Per Release Performance"
+
+ # The pathname prefix for the application.
+ REPORT_ROUTES_PATHNAME_PREFIX = "/report/"
+
+ # Layout of plot.ly graphs.
+ REPORT_GRAPH_LAYOUT_FILE = "cdash/report/layout.yaml"
+
+ # Default name of downloaded file with selected data.
+ REPORT_DOWNLOAD_FILE_NAME = "iterative_data.csv"
+
+ ############################################################################
+ # Comparisons.
+
+ # The title.
+ COMP_TITLE = "Per Release Performance Comparisons"
+
+ # The pathname prefix for the application.
+ COMP_ROUTES_PATHNAME_PREFIX = "/comparisons/"
+
+ # Default name of downloaded file with selected data.
+ COMP_DOWNLOAD_FILE_NAME = "comparison_data.csv"
+
+ # This parameter specifies the method to use for estimating the percentile.
+ # Possible values:
+ # - inverted_cdf
+ # - averaged_inverted_cdf
+ # - closest_observation
+ # - interpolated_inverted_cdf
+ # - hazen
+ # - weibull
+ # - linear (default)
+ # - median_unbiased
+ # - normal_unbiased
+ COMP_PERCENTILE_METHOD = "linear"
+
+ # Extreme or mild outlier?
+ OUTLIER_EXTREME = 3
+ OUTLIER_MILD = 1.5
+ COMP_OUTLIER_TYPE = OUTLIER_EXTREME
+
+ ############################################################################
+ # Statistics.
+
+ # The title.
+ STATS_TITLE = "Test Job Statistics"
+
+ # The pathname prefix for the application.
+ STATS_ROUTES_PATHNAME_PREFIX = "/stats/"
+
+ # Layout of plot.ly graphs.
+ STATS_GRAPH_LAYOUT_FILE = "cdash/stats/layout.yaml"
+
+ # The default job displayed when the page is loaded first time.
+ STATS_DEFAULT_JOB = "csit-vpp-perf-mrr-daily-master-2n-icx"
+
+ # Default name of downloaded file with selected data.
+ STATS_DOWNLOAD_FILE_NAME = "stats.csv"
+
+ # The width of the bar in the graph in miliseconds.
+ STATS_BAR_WIDTH_DAILY = 1000 * 3600 * 15
+ STATS_BAR_WIDTH_WEEKLY = 1000 * 3600 * 24
+
+ ############################################################################
+ # Trending.
+
+ # The title.
+ TREND_TITLE = "Performance Trending"
+
+ # The pathname prefix for the application.
+ TREND_ROUTES_PATHNAME_PREFIX = "/trending/"
+
+ # Layout of plot.ly graphs.
+ TREND_GRAPH_LAYOUT_FILE = "cdash/trending/layout.yaml"
+
+ # Default name of downloaded file with selected data.
+ TREND_DOWNLOAD_FILE_NAME = "trending_data.csv"
+ TELEMETRY_DOWNLOAD_FILE_NAME = "telemetry_data.csv"
+
+ ############################################################################
+ # Coverage data.
+
+ # The title.
+ COVERAGE_TITLE = "Per Release Coverage Data"
+
+ # The pathname prefix for the application.
+ COVERAGE_ROUTES_PATHNAME_PREFIX = "/coverage/"
+
+ # Default name of downloaded file with selected data.
+ COVERAGE_DOWNLOAD_FILE_NAME = "coverage_data.csv"
+
+ ############################################################################
+ # Search tests.
+
+ # The title.
+ SEARCH_TITLE = "Search Tests"
+
+ # The pathname prefix for the application.
+ SEARCH_ROUTES_PATHNAME_PREFIX = "/search/"
+
+ # Layout of plot.ly graphs.
+ SEARCH_GRAPH_LAYOUT_FILE = "cdash/search/layout.yaml"
+
+ # Default name of downloaded file with selected data.
+ SEARCH_DOWNLOAD_FILE_NAME = "search_data.csv"
+
+ ############################################################################
diff --git a/csit.infra.dash/app/cdash/utils/control_panel.py b/csit.infra.dash/app/cdash/utils/control_panel.py
new file mode 100644
index 0000000000..3da44e3901
--- /dev/null
+++ b/csit.infra.dash/app/cdash/utils/control_panel.py
@@ -0,0 +1,87 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""A module implementing the control panel data structure.
+"""
+
+from copy import deepcopy
+from typing import Any
+
+class ControlPanel:
+ """A class representing the control panel.
+ """
+
+ def __init__(self, params: dict, panel: dict) -> None:
+ """Initialisation of the control pannel by default values. If
+ particular values are provided (parameter "panel") they are set
+ afterwards.
+
+ :param params: Default values to be set to the control panel. This
+ dictionary also defines the full set of the control panel's
+ parameters and their order.
+ :param panel: Custom values to be set to the control panel.
+ :type params: dict
+ :type panel: dict
+ """
+
+ if not params:
+ raise ValueError("The params must be defined.")
+ self._panel = deepcopy(params)
+ if panel:
+ for key in panel:
+ if key in self._panel:
+ self._panel[key] = panel[key]
+ else:
+ raise AttributeError(
+ f"The parameter {key} is not defined in the list of "
+ f"parameters."
+ )
+
+ @property
+ def panel(self) -> dict:
+ return self._panel
+
+ @property
+ def values(self) -> tuple:
+ """Returns the values from the Control panel as a tuple.
+
+ :returns: The values from the Control panel.
+ :rtype: tuple
+ """
+ return tuple(self._panel.values())
+
+ def set(self, kwargs: dict=dict()) -> None:
+ """Set the values of the Control panel.
+
+ :param kwargs: key - value pairs to be set.
+ :type kwargs: dict
+ :raises KeyError: If the key in kwargs is not present in the Control
+ panel.
+ """
+ for key, val in kwargs.items():
+ if key in self._panel:
+ self._panel[key] = val
+ else:
+ raise KeyError(f"The key {key} is not defined.")
+
+ def get(self, key: str) -> Any:
+ """Returns the value of a key from the Control panel.
+
+ :param key: The key which value should be returned.
+ :type key: str
+ :returns: The value of the key.
+ :rtype: any
+ :raises KeyError: If the key in kwargs is not present in the Control
+ panel.
+ """
+ return self._panel[key]
diff --git a/csit.infra.dash/app/cdash/utils/telemetry_data.py b/csit.infra.dash/app/cdash/utils/telemetry_data.py
new file mode 100644
index 0000000000..9975874d96
--- /dev/null
+++ b/csit.infra.dash/app/cdash/utils/telemetry_data.py
@@ -0,0 +1,362 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""A module implementing the parsing of OpenMetrics data and elementary
+operations with it.
+"""
+
+
+import binascii
+import zlib
+import pandas as pd
+
+from ..trending.graphs import select_trending_data
+
+
+class TelemetryData:
+ """A class to store and manipulate the telemetry data.
+ """
+
+ def __init__(self, tests: list=list()) -> None:
+ """Initialize the object.
+
+ :param in_data: Input data.
+ :param tests: List of selected tests.
+ :type in_data: pandas.DataFrame
+ :type tests: list
+ """
+
+ self._tests = tests
+ self._data = None
+ self._unique_metrics = list()
+ self._unique_metrics_labels = pd.DataFrame()
+ self._selected_metrics_labels = pd.DataFrame()
+
+ def from_dataframe(self, in_data: pd.DataFrame=pd.DataFrame()) -> None:
+ """Read the input from pandas DataFrame.
+
+ This method must be called at the beginning to create all data
+ structures.
+ """
+
+ if in_data.empty:
+ return
+
+ metrics = set() # A set of unique metrics
+
+ # Create a dataframe with metrics for selected tests:
+ lst_items = list()
+ for itm in self._tests:
+ sel_data = select_trending_data(in_data, itm)
+ if sel_data is not None:
+ sel_data["test_name"] = itm["id"]
+ lst_items.append(sel_data)
+ df = pd.concat(lst_items, ignore_index=True, copy=False)
+
+ # Use only neccessary data:
+ df = df[[
+ "job",
+ "build",
+ "dut_type",
+ "dut_version",
+ "start_time",
+ "passed",
+ "test_name",
+ "test_type",
+ "result_receive_rate_rate_avg",
+ "result_receive_rate_rate_stdev",
+ "result_receive_rate_rate_unit",
+ "result_pdr_lower_rate_value",
+ "result_pdr_lower_rate_unit",
+ "result_ndr_lower_rate_value",
+ "result_ndr_lower_rate_unit",
+ "telemetry"
+ ]]
+ # Transform metrics from strings to dataframes:
+ lst_telemetry = list()
+ for _, row in df.iterrows():
+ d_telemetry = {
+ "metric": list(),
+ "labels": list(), # list of tuple(label, value)
+ "value": list(),
+ "timestamp": list()
+ }
+
+ # If there is no telemetry data, use empty dictionary
+ if row["telemetry"] is None or isinstance(row["telemetry"], float):
+ lst_telemetry.append(pd.DataFrame(data=d_telemetry))
+ continue
+
+ # Read telemetry data
+ # - list of uncompressed strings List[str, ...], or
+ # - list with only one compressed string List[str]
+ try:
+ tm_data = zlib.decompress(
+ binascii.a2b_base64(row["telemetry"][0].encode())
+ ).decode().split("\n")
+ except (binascii.Error, zlib.error, AttributeError, IndexError):
+ tm_data = row["telemetry"]
+
+ # Pre-process telemetry data
+ for itm in tm_data:
+ itm_lst = itm.replace("'", "").rsplit(" ", maxsplit=2)
+ metric, labels = itm_lst[0].split("{")
+ d_telemetry["metric"].append(metric)
+ d_telemetry["labels"].append(
+ [tuple(x.split("=")) for x in labels[:-1].split(",")]
+ )
+ d_telemetry["value"].append(itm_lst[1])
+ d_telemetry["timestamp"].append(itm_lst[2])
+
+ metrics.update(d_telemetry["metric"])
+ lst_telemetry.append(pd.DataFrame(data=d_telemetry))
+ df["telemetry"] = lst_telemetry
+
+ self._data = df
+ self._unique_metrics = sorted(metrics)
+
+ def from_json(self, in_data: dict) -> None:
+ """Read the input data from json.
+ """
+
+ df = pd.read_json(in_data)
+ lst_telemetry = list()
+ metrics = set() # A set of unique metrics
+ for _, row in df.iterrows():
+ telemetry = pd.DataFrame(row["telemetry"])
+ lst_telemetry.append(telemetry)
+ metrics.update(telemetry["metric"].to_list())
+ df["telemetry"] = lst_telemetry
+
+ self._data = df
+ self._unique_metrics = sorted(metrics)
+
+ def from_metrics(self, in_data: set) -> None:
+ """Read only the metrics.
+ """
+ self._unique_metrics = in_data
+
+ def from_metrics_with_labels(self, in_data: dict) -> None:
+ """Read only metrics with labels.
+ """
+ self._unique_metrics_labels = pd.DataFrame.from_dict(in_data)
+
+ def to_json(self) -> str:
+ """Return the data transformed from dataframe to json.
+
+ :returns: Telemetry data transformed to a json structure.
+ :rtype: dict
+ """
+ return self._data.to_json()
+
+ @property
+ def unique_metrics(self) -> list:
+ """Return a set of unique metrics.
+
+ :returns: A set of unique metrics.
+ :rtype: set
+ """
+ return self._unique_metrics
+
+ @property
+ def unique_metrics_with_labels(self) -> dict:
+ """
+ """
+ return self._unique_metrics_labels.to_dict()
+
+ def get_selected_labels(self, metrics: list) -> dict:
+ """Return a dictionary with labels (keys) and all their possible values
+ (values) for all selected 'metrics'.
+
+ :param metrics: List of metrics we are interested in.
+ :type metrics: list
+ :returns: A dictionary with labels and all their possible values.
+ :rtype: dict
+ """
+
+ lst_labels = list()
+ tmp_labels = dict()
+ for _, row in self._data.iterrows():
+ telemetry = row["telemetry"]
+ for itm in metrics:
+ df = telemetry.loc[(telemetry["metric"] == itm)]
+ lst_labels.append(df)
+ for _, tm in df.iterrows():
+ for label in tm["labels"]:
+ if label[0] not in tmp_labels:
+ tmp_labels[label[0]] = set()
+ tmp_labels[label[0]].add(label[1])
+
+ df_labels = pd.concat(lst_labels, ignore_index=True, copy=False)
+ selected_labels = dict()
+ for key in sorted(tmp_labels):
+ selected_labels[key] = sorted(tmp_labels[key])
+
+ self._unique_metrics_labels = df_labels[["metric", "labels"]].\
+ loc[df_labels[["metric", "labels"]].astype(str).\
+ drop_duplicates().index]
+
+ return selected_labels
+
+ @property
+ def str_metrics(self) -> str:
+ """Returns all unique metrics as a string.
+ """
+ return TelemetryData.metrics_to_str(self._unique_metrics_labels)
+
+ @staticmethod
+ def metrics_to_str(in_data: pd.DataFrame) -> str:
+ """Convert metrics from pandas dataframe to string. Metrics in string
+ are separated by '\n'.
+
+ :param in_data: Metrics to be converted to a string.
+ :type in_data: pandas.DataFrame
+ :returns: Metrics as a string.
+ :rtype: str
+ """
+ metrics = str()
+ for _, row in in_data.iterrows():
+ labels = ','.join([f"{itm[0]}='{itm[1]}'" for itm in row["labels"]])
+ metrics += f"{row['metric']}{{{labels}}}\n"
+ return metrics[:-1]
+
+ def search_unique_metrics(self, string: str) -> list:
+ """Return a list of metrics which name includes the given string.
+
+ :param string: A string which must be in the name of metric.
+ :type string: str
+ :returns: A list of metrics which name includes the given string.
+ :rtype: list
+ """
+ return [itm for itm in self._unique_metrics if string in itm]
+
+ def filter_selected_metrics_by_labels(
+ self,
+ selection: dict
+ ) -> pd.DataFrame:
+ """Filter selected unique metrics by labels and their values.
+
+ :param selection: Labels and their values specified by the user.
+ :type selection: dict
+ :returns: Pandas dataframe with filtered metrics.
+ :rtype: pandas.DataFrame
+ """
+
+ def _is_selected(labels: list, sel: dict) -> bool:
+ """Check if the provided 'labels' are selected by the user.
+
+ :param labels: List of labels and their values from a metric. The
+ items in this lists are two-item-lists whre the first item is
+ the label and the second one is its value.
+ :param sel: User selection. The keys are the selected lables and the
+ values are lists with label values.
+ :type labels: list
+ :type sel: dict
+ :returns: True if the 'labels' are selected by the user.
+ :rtype: bool
+ """
+ passed = list()
+ labels = dict(labels)
+ for key in sel.keys():
+ if key in list(labels.keys()):
+ if sel[key]:
+ passed.append(labels[key] in sel[key])
+ else:
+ passed.append(True)
+ else:
+ passed.append(False)
+ return bool(passed and all(passed))
+
+ self._selected_metrics_labels = pd.DataFrame()
+ lst_items = list()
+ for _, row in self._unique_metrics_labels.iterrows():
+ if _is_selected(row["labels"], selection):
+ lst_items.append(row.to_frame().T)
+ self._selected_metrics_labels = \
+ pd.concat(lst_items, ignore_index=True, axis=0, copy=False)
+ return self._selected_metrics_labels
+
+ def select_tm_trending_data(
+ self,
+ selection: dict,
+ ignore_host: bool = False
+ ) -> pd.DataFrame:
+ """Select telemetry data for trending based on user's 'selection'.
+
+ The output dataframe includes these columns:
+ - "job",
+ - "build",
+ - "dut_type",
+ - "dut_version",
+ - "start_time",
+ - "passed",
+ - "test_name",
+ - "test_id",
+ - "test_type",
+ - "result_receive_rate_rate_avg",
+ - "result_receive_rate_rate_stdev",
+ - "result_receive_rate_rate_unit",
+ - "result_pdr_lower_rate_value",
+ - "result_pdr_lower_rate_unit",
+ - "result_ndr_lower_rate_value",
+ - "result_ndr_lower_rate_unit",
+ - "tm_metric",
+ - "tm_value".
+
+ :param selection: User's selection (metrics and labels).
+ :param ignore_host: Ignore 'hostname' and 'hook' labels in metrics.
+ :type selection: dict
+ :type ignore_host: bool
+ :returns: Dataframe with selected data.
+ :rtype: pandas.DataFrame
+ """
+
+ if self._data is None:
+ return pd.DataFrame()
+ if self._data.empty:
+ return pd.DataFrame()
+ if not selection:
+ return pd.DataFrame()
+
+ df_sel = pd.DataFrame.from_dict(selection)
+ lst_rows = list()
+ for _, row in self._data.iterrows():
+ tm_row = row["telemetry"]
+ for _, tm_sel in df_sel.iterrows():
+ df_tmp = tm_row.loc[tm_row["metric"] == tm_sel["metric"]]
+ for _, tm in df_tmp.iterrows():
+ do_it = False
+ if ignore_host:
+ if tm["labels"][2:] == tm_sel["labels"][2:]:
+ labels = ','.join(
+ [f"{i[0]}='{i[1]}'" for i in tm["labels"][2:]]
+ )
+ do_it = True
+ else:
+ if tm["labels"] == tm_sel["labels"]:
+ labels = ','.join(
+ [f"{i[0]}='{i[1]}'" for i in tm["labels"]]
+ )
+ do_it = True
+ if do_it:
+ row["tm_metric"] = f"{tm['metric']}{{{labels}}}"
+ row["tm_value"] = tm["value"]
+ lst_rows.append(
+ row.drop(labels=["telemetry", ]).to_frame().T
+ )
+ if lst_rows:
+ return pd.concat(
+ lst_rows, ignore_index=True, axis=0, copy=False
+ ).drop_duplicates()
+ else:
+ return pd.DataFrame()
diff --git a/csit.infra.dash/app/cdash/utils/tooltips.yaml b/csit.infra.dash/app/cdash/utils/tooltips.yaml
new file mode 100644
index 0000000000..a51e9ffae4
--- /dev/null
+++ b/csit.infra.dash/app/cdash/utils/tooltips.yaml
@@ -0,0 +1,51 @@
+help-area:
+ The area defines a DUT packet path and lookup type.
+help-cadence:
+ The cadence of the Jenkins job which runs the tests.
+help-cmp-parameter:
+ The parameter to be used for comparison.
+help-cmp-value:
+ The value of parameter to be used for comparison.
+help-cores:
+ Number of cores the DUT uses during the test.
+help-csit-dut:
+ The version of CSIT (the part in front of the first hyphen) and the version of
+ Device under Test (the rest).
+help-data-type:
+ The type of collected data.
+help-download:
+ Download the selected data as a csv file.
+help-dut:
+ Device Under Test (DUT) - In software networking, “device” denotes a specific
+ piece of software tasked with packet processing. Such device is surrounded
+ with other software components (such as operating system kernel).
+help-dut-ver:
+ The version of the Device under Test.
+help-framesize:
+ Frame size - size of an Ethernet Layer-2 frame on the wire, including any VLAN
+ tags (dot1q, dot1ad) and Ethernet FCS, but excluding Ethernet preamble and
+ inter-frame gap. Measured in Bytes.
+help-infra:
+ Infrastructure is defined by the toplology (number of nodes), processor
+ architecture, NIC and driver.
+help-measurement:
+ The measured quantity in interest.
+help-normalize:
+ Normalize the results to CPU frequency 2GHz. The results from AWS environment
+ are not normalized as we do not know the exact value of CPU frequency.
+help-release:
+ The CSIT release.
+help-show-latency:
+ If selected, the latency is included in tables.
+help-tbed:
+ The test bed is defined by toplology (number of nodes) and processor
+ architecture.
+help-test:
+ The test specification consists of packet encapsulation, VPP packet processing
+ (packet forwarding mode and packet processing function(s)) and packet
+ forwarding path.
+help-ttype:
+ Main measured variable.
+help-url:
+ URL with current configuration. If there is no "Copy URL" button, use triple
+ click.
diff --git a/csit.infra.dash/app/cdash/utils/trigger.py b/csit.infra.dash/app/cdash/utils/trigger.py
new file mode 100644
index 0000000000..da0768b070
--- /dev/null
+++ b/csit.infra.dash/app/cdash/utils/trigger.py
@@ -0,0 +1,65 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""A module implementing the processing of a trigger.
+"""
+
+from typing import Any
+
+from json import loads, JSONDecodeError
+
+
+class Trigger:
+ """
+ """
+ def __init__(self, trigger) -> None:
+ """
+ """
+ self._id = trigger[0]["prop_id"].split(".")
+ self._param = self._id[1]
+ try:
+ self._id = loads(self._id[0])
+ except (JSONDecodeError, TypeError):
+ # It is a string
+ self._id = {"type": self._id[0], "index": None}
+ self._val = trigger[0]["value"]
+
+ def __str__(self) -> str:
+ return (
+ f"\nTrigger:\n"
+ f" ID: {self._id}\n"
+ f" Type: {self._id['type']}\n"
+ f" Index: {self._id['index']}\n"
+ f" Parameter: {self._param}\n"
+ f" Value: {self._val}\n"
+ )
+
+ @property
+ def id(self) -> dict:
+ return self._id
+
+ @property
+ def type(self) -> str:
+ return self._id["type"]
+
+ @property
+ def idx(self) -> Any:
+ return self._id["index"]
+
+ @property
+ def parameter(self) -> str:
+ return self._param
+
+ @property
+ def value(self) -> Any:
+ return self._val
diff --git a/csit.infra.dash/app/cdash/utils/url_processing.py b/csit.infra.dash/app/cdash/utils/url_processing.py
new file mode 100644
index 0000000000..c436ebc830
--- /dev/null
+++ b/csit.infra.dash/app/cdash/utils/url_processing.py
@@ -0,0 +1,99 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""URL decoding and parsing and URL encoding.
+"""
+
+import logging
+
+from base64 import urlsafe_b64encode, urlsafe_b64decode
+from urllib.parse import urlencode, urlunparse, urlparse, parse_qs
+from zlib import compress, decompress
+from zlib import error as ZlibErr
+from binascii import Error as BinasciiErr
+
+
+def url_encode(params: dict) -> str:
+ """Encode the URL parameters and zip them and create the whole URL using
+ given data.
+
+ :param params: All data necessary to create the URL:
+ - scheme,
+ - network location,
+ - path,
+ - query,
+ - parameters.
+ :type params: dict
+ :returns: Encoded URL.
+ :rtype: str
+ """
+
+ url_params = params.get("params", None)
+ if url_params:
+ encoded_params = urlsafe_b64encode(
+ compress(urlencode(url_params).encode("utf-8"), level=9)
+ ).rstrip(b"=").decode("utf-8")
+ else:
+ encoded_params = str()
+
+ return urlunparse((
+ params.get("scheme", "http"),
+ params.get("netloc", str()),
+ params.get("path", str()),
+ str(), # params
+ params.get("query", str()),
+ encoded_params
+ ))
+
+
+def url_decode(url: str) -> dict:
+ """Parse the given URL and decode the parameters.
+
+ :param url: URL to be parsed and decoded.
+ :type url: str
+ :returns: Paresed URL.
+ :rtype: dict
+ """
+
+ try:
+ parsed_url = urlparse(url)
+ except ValueError as err:
+ logging.warning(f"\nThe url {url} is not valid, ignoring.\n{repr(err)}")
+ return dict()
+
+ if parsed_url.fragment:
+ try:
+ padding = b"=" * (4 - (len(parsed_url.fragment) % 4))
+ params = parse_qs(decompress(
+ urlsafe_b64decode(
+ (parsed_url.fragment.encode("utf-8") + padding)
+ )).decode("utf-8")
+ )
+ except (BinasciiErr, UnicodeDecodeError, ZlibErr) as err:
+ logging.warning(
+ f"\nNot possible to decode the parameters from url: {url}"
+ f"\nEncoded parameters: '{parsed_url.fragment}'"
+ f"\n{repr(err)}"
+ )
+ return dict()
+ else:
+ params = None
+
+ return {
+ "scheme": parsed_url.scheme,
+ "netloc": parsed_url.netloc,
+ "path": parsed_url.path,
+ "query": parsed_url.query,
+ "fragment": parsed_url.fragment,
+ "params": params
+ }
diff --git a/csit.infra.dash/app/cdash/utils/utils.py b/csit.infra.dash/app/cdash/utils/utils.py
new file mode 100644
index 0000000000..692e45efb2
--- /dev/null
+++ b/csit.infra.dash/app/cdash/utils/utils.py
@@ -0,0 +1,895 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Functions used by Dash applications.
+"""
+
+import pandas as pd
+import plotly.graph_objects as go
+import dash_bootstrap_components as dbc
+
+import hdrh.histogram
+import hdrh.codec
+
+from math import sqrt
+from dash import dcc, no_update, html
+from datetime import datetime
+
+from ..utils.constants import Constants as C
+from ..utils.url_processing import url_encode
+from ..utils.trigger import Trigger
+
+
+def get_color(idx: int) -> str:
+ """Returns a color from the list defined in Constants.PLOT_COLORS defined by
+ its index.
+
+ :param idx: Index of the color.
+ :type idx: int
+ :returns: Color defined by hex code.
+ :trype: str
+ """
+ return C.PLOT_COLORS[idx % len(C.PLOT_COLORS)]
+
+
+def show_tooltip(tooltips:dict, id: str, title: str,
+ clipboard_id: str=None) -> list:
+ """Generate list of elements to display a text (e.g. a title) with a
+ tooltip and optionaly with Copy&Paste icon and the clipboard
+ functionality enabled.
+
+ :param tooltips: Dictionary with tooltips.
+ :param id: Tooltip ID.
+ :param title: A text for which the tooltip will be displayed.
+ :param clipboard_id: If defined, a Copy&Paste icon is displayed and the
+ clipboard functionality is enabled.
+ :type tooltips: dict
+ :type id: str
+ :type title: str
+ :type clipboard_id: str
+ :returns: List of elements to display a text with a tooltip and
+ optionaly with Copy&Paste icon.
+ :rtype: list
+ """
+
+ return [
+ dcc.Clipboard(target_id=clipboard_id, title="Copy URL") \
+ if clipboard_id else str(),
+ f"{title} ",
+ dbc.Badge(
+ id=id,
+ children="?",
+ pill=True,
+ color="white",
+ text_color="info",
+ class_name="border ms-1",
+ ),
+ dbc.Tooltip(
+ children=tooltips.get(id, str()),
+ target=id,
+ placement="auto"
+ )
+ ]
+
+
+def label(key: str) -> str:
+ """Returns a label for input elements (dropdowns, ...).
+
+ If the label is not defined, the function returns the provided key.
+
+ :param key: The key to the label defined in Constants.LABELS.
+ :type key: str
+ :returns: Label.
+ :rtype: str
+ """
+ return C.LABELS.get(key, key)
+
+
+def sync_checklists(options: list, sel: list, all: list, id: str) -> tuple:
+ """Synchronize a checklist with defined "options" with its "All" checklist.
+
+ :param options: List of options for the cheklist.
+ :param sel: List of selected options.
+ :param all: List of selected option from "All" checklist.
+ :param id: ID of a checklist to be used for synchronization.
+ :returns: Tuple of lists with otions for both checklists.
+ :rtype: tuple of lists
+ """
+ opts = {v["value"] for v in options}
+ if id =="all":
+ sel = list(opts) if all else list()
+ else:
+ all = ["all", ] if set(sel) == opts else list()
+ return sel, all
+
+
+def list_tests(selection: dict) -> list:
+ """Transform list of tests to a list of dictionaries usable by checkboxes.
+
+ :param selection: List of tests to be displayed in "Selected tests" window.
+ :type selection: list
+ :returns: List of dictionaries with "label", "value" pairs for a checkbox.
+ :rtype: list
+ """
+ if selection:
+ return [{"label": v["id"], "value": v["id"]} for v in selection]
+ else:
+ return list()
+
+
+def get_date(s_date: str) -> datetime:
+ """Transform string reprezentation of date to datetime.datetime data type.
+
+ :param s_date: String reprezentation of date.
+ :type s_date: str
+ :returns: Date as datetime.datetime.
+ :rtype: datetime.datetime
+ """
+ return datetime(int(s_date[0:4]), int(s_date[5:7]), int(s_date[8:10]))
+
+
+def gen_new_url(url_components: dict, params: dict) -> str:
+ """Generate a new URL with encoded parameters.
+
+ :param url_components: Dictionary with URL elements. It should contain
+ "scheme", "netloc" and "path".
+ :param url_components: URL parameters to be encoded to the URL.
+ :type parsed_url: dict
+ :type params: dict
+ :returns Encoded URL with parameters.
+ :rtype: str
+ """
+
+ if url_components:
+ return url_encode(
+ {
+ "scheme": url_components.get("scheme", ""),
+ "netloc": url_components.get("netloc", ""),
+ "path": url_components.get("path", ""),
+ "params": params
+ }
+ )
+ else:
+ return str()
+
+
+def get_duts(df: pd.DataFrame) -> list:
+ """Get the list of DUTs from the pre-processed information about jobs.
+
+ :param df: DataFrame with information about jobs.
+ :type df: pandas.DataFrame
+ :returns: Alphabeticaly sorted list of DUTs.
+ :rtype: list
+ """
+ return sorted(list(df["dut"].unique()))
+
+
+def get_ttypes(df: pd.DataFrame, dut: str) -> list:
+ """Get the list of test types from the pre-processed information about
+ jobs.
+
+ :param df: DataFrame with information about jobs.
+ :param dut: The DUT for which the list of test types will be populated.
+ :type df: pandas.DataFrame
+ :type dut: str
+ :returns: Alphabeticaly sorted list of test types.
+ :rtype: list
+ """
+ return sorted(list(df.loc[(df["dut"] == dut)]["ttype"].unique()))
+
+
+def get_cadences(df: pd.DataFrame, dut: str, ttype: str) -> list:
+ """Get the list of cadences from the pre-processed information about
+ jobs.
+
+ :param df: DataFrame with information about jobs.
+ :param dut: The DUT for which the list of cadences will be populated.
+ :param ttype: The test type for which the list of cadences will be
+ populated.
+ :type df: pandas.DataFrame
+ :type dut: str
+ :type ttype: str
+ :returns: Alphabeticaly sorted list of cadences.
+ :rtype: list
+ """
+ return sorted(list(df.loc[(
+ (df["dut"] == dut) &
+ (df["ttype"] == ttype)
+ )]["cadence"].unique()))
+
+
+def get_test_beds(df: pd.DataFrame, dut: str, ttype: str, cadence: str) -> list:
+ """Get the list of test beds from the pre-processed information about
+ jobs.
+
+ :param df: DataFrame with information about jobs.
+ :param dut: The DUT for which the list of test beds will be populated.
+ :param ttype: The test type for which the list of test beds will be
+ populated.
+ :param cadence: The cadence for which the list of test beds will be
+ populated.
+ :type df: pandas.DataFrame
+ :type dut: str
+ :type ttype: str
+ :type cadence: str
+ :returns: Alphabeticaly sorted list of test beds.
+ :rtype: list
+ """
+ return sorted(list(df.loc[(
+ (df["dut"] == dut) &
+ (df["ttype"] == ttype) &
+ (df["cadence"] == cadence)
+ )]["tbed"].unique()))
+
+
+def get_job(df: pd.DataFrame, dut, ttype, cadence, testbed):
+ """Get the name of a job defined by dut, ttype, cadence, test bed.
+ Input information comes from the control panel.
+
+ :param df: DataFrame with information about jobs.
+ :param dut: The DUT for which the job name will be created.
+ :param ttype: The test type for which the job name will be created.
+ :param cadence: The cadence for which the job name will be created.
+ :param testbed: The test bed for which the job name will be created.
+ :type df: pandas.DataFrame
+ :type dut: str
+ :type ttype: str
+ :type cadence: str
+ :type testbed: str
+ :returns: Job name.
+ :rtype: str
+ """
+ return df.loc[(
+ (df["dut"] == dut) &
+ (df["ttype"] == ttype) &
+ (df["cadence"] == cadence) &
+ (df["tbed"] == testbed)
+ )]["job"].item()
+
+
+def generate_options(opts: list, sort: bool=True) -> list:
+ """Return list of options for radio items in control panel. The items in
+ the list are dictionaries with keys "label" and "value".
+
+ :params opts: List of options (str) to be used for the generated list.
+ :type opts: list
+ :returns: List of options (dict).
+ :rtype: list
+ """
+ if sort:
+ opts = sorted(opts)
+ return [{"label": i, "value": i} for i in opts]
+
+
+def set_job_params(df: pd.DataFrame, job: str) -> dict:
+ """Create a dictionary with all options and values for (and from) the
+ given job.
+
+ :param df: DataFrame with information about jobs.
+ :params job: The name of job for and from which the dictionary will be
+ created.
+ :type df: pandas.DataFrame
+ :type job: str
+ :returns: Dictionary with all options and values for (and from) the
+ given job.
+ :rtype: dict
+ """
+
+ l_job = job.split("-")
+ return {
+ "job": job,
+ "dut": l_job[1],
+ "ttype": l_job[3],
+ "cadence": l_job[4],
+ "tbed": "-".join(l_job[-2:]),
+ "duts": generate_options(get_duts(df)),
+ "ttypes": generate_options(get_ttypes(df, l_job[1])),
+ "cadences": generate_options(get_cadences(df, l_job[1], l_job[3])),
+ "tbeds": generate_options(
+ get_test_beds(df, l_job[1], l_job[3], l_job[4]))
+ }
+
+
+def get_list_group_items(
+ items: list,
+ type: str,
+ colorize: bool=True,
+ add_index: bool=False
+ ) -> list:
+ """Generate list of ListGroupItems with checkboxes with selected items.
+
+ :param items: List of items to be displayed in the ListGroup.
+ :param type: The type part of an element ID.
+ :param colorize: If True, the color of labels is set, otherwise the default
+ color is used.
+ :param add_index: Add index to the list items.
+ :type items: list
+ :type type: str
+ :type colorize: bool
+ :type add_index: bool
+ :returns: List of ListGroupItems with checkboxes with selected items.
+ :rtype: list
+ """
+
+ children = list()
+ for i, l in enumerate(items):
+ idx = f"{i + 1}. " if add_index else str()
+ label = f"{idx}{l['id']}" if isinstance(l, dict) else f"{idx}{l}"
+ children.append(
+ dbc.ListGroupItem(
+ children=[
+ dbc.Checkbox(
+ id={"type": type, "index": i},
+ label=label,
+ value=False,
+ label_class_name="m-0 p-0",
+ label_style={
+ "font-size": ".875em",
+ "color": get_color(i) if colorize else "#55595c"
+ },
+ class_name="info"
+ )
+ ],
+ class_name="p-0"
+ )
+ )
+
+ return children
+
+
+def relative_change_stdev(mean1, mean2, std1, std2):
+ """Compute relative standard deviation of change of two values.
+
+ The "1" values are the base for comparison.
+ Results are returned as percentage (and percentual points for stdev).
+ Linearized theory is used, so results are wrong for relatively large stdev.
+
+ :param mean1: Mean of the first number.
+ :param mean2: Mean of the second number.
+ :param std1: Standard deviation estimate of the first number.
+ :param std2: Standard deviation estimate of the second number.
+ :type mean1: float
+ :type mean2: float
+ :type std1: float
+ :type std2: float
+ :returns: Relative change and its stdev.
+ :rtype: float
+ """
+ mean1, mean2 = float(mean1), float(mean2)
+ quotient = mean2 / mean1
+ first = std1 / mean1
+ second = std2 / mean2
+ std = quotient * sqrt(first * first + second * second)
+ return (quotient - 1) * 100, std * 100
+
+
+def get_hdrh_latencies(row: pd.Series, name: str) -> dict:
+ """Get the HDRH latencies from the test data.
+
+ :param row: A row fron the data frame with test data.
+ :param name: The test name to be displayed as the graph title.
+ :type row: pandas.Series
+ :type name: str
+ :returns: Dictionary with HDRH latencies.
+ :rtype: dict
+ """
+
+ latencies = {"name": name}
+ for key in C.LAT_HDRH:
+ try:
+ latencies[key] = row[key]
+ except KeyError:
+ return None
+
+ return latencies
+
+
+def graph_hdrh_latency(data: dict, layout: dict) -> go.Figure:
+ """Generate HDR Latency histogram graphs.
+
+ :param data: HDRH data.
+ :param layout: Layout of plot.ly graph.
+ :type data: dict
+ :type layout: dict
+ :returns: HDR latency Histogram.
+ :rtype: plotly.graph_objects.Figure
+ """
+
+ fig = None
+
+ traces = list()
+ for idx, (lat_name, lat_hdrh) in enumerate(data.items()):
+ try:
+ decoded = hdrh.histogram.HdrHistogram.decode(lat_hdrh)
+ except (hdrh.codec.HdrLengthException, TypeError):
+ continue
+ previous_x = 0.0
+ prev_perc = 0.0
+ xaxis = list()
+ yaxis = list()
+ hovertext = list()
+ for item in decoded.get_recorded_iterator():
+ # The real value is "percentile".
+ # For 100%, we cut that down to "x_perc" to avoid
+ # infinity.
+ percentile = item.percentile_level_iterated_to
+ x_perc = min(percentile, C.PERCENTILE_MAX)
+ xaxis.append(previous_x)
+ yaxis.append(item.value_iterated_to)
+ hovertext.append(
+ f"<b>{C.GRAPH_LAT_HDRH_DESC[lat_name]}</b><br>"
+ f"Direction: {('W-E', 'E-W')[idx % 2]}<br>"
+ f"Percentile: {prev_perc:.5f}-{percentile:.5f}%<br>"
+ f"Latency: {item.value_iterated_to}uSec"
+ )
+ next_x = 100.0 / (100.0 - x_perc)
+ xaxis.append(next_x)
+ yaxis.append(item.value_iterated_to)
+ hovertext.append(
+ f"<b>{C.GRAPH_LAT_HDRH_DESC[lat_name]}</b><br>"
+ f"Direction: {('W-E', 'E-W')[idx % 2]}<br>"
+ f"Percentile: {prev_perc:.5f}-{percentile:.5f}%<br>"
+ f"Latency: {item.value_iterated_to}uSec"
+ )
+ previous_x = next_x
+ prev_perc = percentile
+
+ traces.append(
+ go.Scatter(
+ x=xaxis,
+ y=yaxis,
+ name=C.GRAPH_LAT_HDRH_DESC[lat_name],
+ mode="lines",
+ legendgroup=C.GRAPH_LAT_HDRH_DESC[lat_name],
+ showlegend=bool(idx % 2),
+ line=dict(
+ color=get_color(int(idx/2)),
+ dash="solid",
+ width=1 if idx % 2 else 2
+ ),
+ hovertext=hovertext,
+ hoverinfo="text"
+ )
+ )
+ if traces:
+ fig = go.Figure()
+ fig.add_traces(traces)
+ layout_hdrh = layout.get("plot-hdrh-latency", None)
+ if lat_hdrh:
+ fig.update_layout(layout_hdrh)
+
+ return fig
+
+
+def navbar_trending(active: tuple):
+ """Add nav element with navigation panel. It is placed on the top.
+
+ :param active: Tuple of boolean values defining the active items in the
+ navbar. True == active
+ :type active: tuple
+ :returns: Navigation bar.
+ :rtype: dbc.NavbarSimple
+ """
+ return dbc.NavbarSimple(
+ children=[
+ dbc.NavItem(dbc.NavLink(
+ C.TREND_TITLE,
+ active=active[0],
+ external_link=True,
+ href="/trending"
+ )),
+ dbc.NavItem(dbc.NavLink(
+ C.NEWS_TITLE,
+ active=active[1],
+ external_link=True,
+ href="/news"
+ )),
+ dbc.NavItem(dbc.NavLink(
+ C.STATS_TITLE,
+ active=active[2],
+ external_link=True,
+ href="/stats"
+ )),
+ dbc.NavItem(dbc.NavLink(
+ C.SEARCH_TITLE,
+ active=active[3],
+ external_link=True,
+ href="/search"
+ )),
+ dbc.NavItem(dbc.NavLink(
+ "Documentation",
+ id="btn-documentation",
+ ))
+ ],
+ id="navbarsimple-main",
+ brand=C.BRAND,
+ brand_href="/",
+ brand_external_link=True,
+ class_name="p-2",
+ fluid=True
+ )
+
+
+def navbar_report(active: tuple):
+ """Add nav element with navigation panel. It is placed on the top.
+
+ :param active: Tuple of boolean values defining the active items in the
+ navbar. True == active
+ :type active: tuple
+ :returns: Navigation bar.
+ :rtype: dbc.NavbarSimple
+ """
+ return dbc.NavbarSimple(
+ id="navbarsimple-main",
+ children=[
+ dbc.NavItem(dbc.NavLink(
+ C.REPORT_TITLE,
+ active=active[0],
+ external_link=True,
+ href="/report"
+ )),
+ dbc.NavItem(dbc.NavLink(
+ "Comparisons",
+ active=active[1],
+ external_link=True,
+ href="/comparisons"
+ )),
+ dbc.NavItem(dbc.NavLink(
+ "Coverage Data",
+ active=active[2],
+ external_link=True,
+ href="/coverage"
+ )),
+ dbc.NavItem(dbc.NavLink(
+ C.SEARCH_TITLE,
+ active=active[3],
+ external_link=True,
+ href="/search"
+ )),
+ dbc.NavItem(dbc.NavLink(
+ "Documentation",
+ id="btn-documentation",
+ ))
+ ],
+ brand=C.BRAND,
+ brand_href="/",
+ brand_external_link=True,
+ class_name="p-2",
+ fluid=True
+ )
+
+
+def filter_table_data(
+ store_table_data: list,
+ table_filter: str
+ ) -> list:
+ """Filter table data using user specified filter.
+
+ :param store_table_data: Table data represented as a list of records.
+ :param table_filter: User specified filter.
+ :type store_table_data: list
+ :type table_filter: str
+ :returns: A new table created by filtering of table data represented as
+ a list of records.
+ :rtype: list
+ """
+
+ # Checks:
+ if not any((table_filter, store_table_data, )):
+ return store_table_data
+
+ def _split_filter_part(filter_part: str) -> tuple:
+ """Split a part of filter into column name, operator and value.
+ A "part of filter" is a sting berween "&&" operator.
+
+ :param filter_part: A part of filter.
+ :type filter_part: str
+ :returns: Column name, operator, value
+ :rtype: tuple[str, str, str|float]
+ """
+ for operator_type in C.OPERATORS:
+ for operator in operator_type:
+ if operator in filter_part:
+ name_p, val_p = filter_part.split(operator, 1)
+ name = name_p[name_p.find("{") + 1 : name_p.rfind("}")]
+ val_p = val_p.strip()
+ if (val_p[0] == val_p[-1] and val_p[0] in ("'", '"', '`')):
+ value = val_p[1:-1].replace("\\" + val_p[0], val_p[0])
+ else:
+ try:
+ value = float(val_p)
+ except ValueError:
+ value = val_p
+
+ return name, operator_type[0].strip(), value
+ return (None, None, None)
+
+ df = pd.DataFrame.from_records(store_table_data)
+ for filter_part in table_filter.split(" && "):
+ col_name, operator, filter_value = _split_filter_part(filter_part)
+ if operator == "contains":
+ df = df.loc[df[col_name].str.contains(filter_value, regex=True)]
+ elif operator in ("eq", "ne", "lt", "le", "gt", "ge"):
+ # These operators match pandas series operator method names.
+ df = df.loc[getattr(df[col_name], operator)(filter_value)]
+ elif operator == "datestartswith":
+ # This is a simplification of the front-end filtering logic,
+ # only works with complete fields in standard format.
+ # Currently not used in comparison tables.
+ df = df.loc[df[col_name].str.startswith(filter_value)]
+
+ return df.to_dict("records")
+
+
+def sort_table_data(
+ store_table_data: list,
+ sort_by: list
+ ) -> list:
+ """Sort table data using user specified order.
+
+ :param store_table_data: Table data represented as a list of records.
+ :param sort_by: User specified sorting order (multicolumn).
+ :type store_table_data: list
+ :type sort_by: list
+ :returns: A new table created by sorting the table data represented as
+ a list of records.
+ :rtype: list
+ """
+
+ # Checks:
+ if not any((sort_by, store_table_data, )):
+ return store_table_data
+
+ df = pd.DataFrame.from_records(store_table_data)
+ if len(sort_by):
+ dff = df.sort_values(
+ [col["column_id"] for col in sort_by],
+ ascending=[col["direction"] == "asc" for col in sort_by],
+ inplace=False
+ )
+ else:
+ # No sort is applied
+ dff = df
+
+ return dff.to_dict("records")
+
+
+def show_trending_graph_data(
+ trigger: Trigger,
+ data: dict,
+ graph_layout: dict
+ ) -> tuple:
+ """Generates the data for the offcanvas displayed when a particular point in
+ a trending graph (daily data) is clicked on.
+
+ :param trigger: The information from trigger when the data point is clicked
+ on.
+ :param graph: The data from the clicked point in the graph.
+ :param graph_layout: The layout of the HDRH latency graph.
+ :type trigger: Trigger
+ :type graph: dict
+ :type graph_layout: dict
+ :returns: The data to be displayed on the offcanvas and the information to
+ show the offcanvas.
+ :rtype: tuple(list, list, bool)
+ """
+
+ if trigger.idx == "tput":
+ idx = 0
+ elif trigger.idx == "bandwidth":
+ idx = 1
+ elif trigger.idx == "lat":
+ idx = len(data) - 1
+ else:
+ return list(), list(), False
+ try:
+ data = data[idx]["points"][0]
+ except (IndexError, KeyError, ValueError, TypeError):
+ return list(), list(), False
+
+ metadata = no_update
+ graph = list()
+
+ list_group_items = list()
+ for itm in data.get("text", None).split("<br>"):
+ if not itm:
+ continue
+ lst_itm = itm.split(": ")
+ if lst_itm[0] == "csit-ref":
+ list_group_item = dbc.ListGroupItem([
+ dbc.Badge(lst_itm[0]),
+ html.A(
+ lst_itm[1],
+ href=f"{C.URL_JENKINS}{lst_itm[1]}",
+ target="_blank"
+ )
+ ])
+ else:
+ list_group_item = dbc.ListGroupItem([
+ dbc.Badge(lst_itm[0]),
+ lst_itm[1]
+ ])
+ list_group_items.append(list_group_item)
+
+ if trigger.idx == "tput":
+ title = "Throughput"
+ elif trigger.idx == "bandwidth":
+ title = "Bandwidth"
+ elif trigger.idx == "lat":
+ title = "Latency"
+ hdrh_data = data.get("customdata", None)
+ if hdrh_data:
+ graph = [dbc.Card(
+ class_name="gy-2 p-0",
+ children=[
+ dbc.CardHeader(hdrh_data.pop("name")),
+ dbc.CardBody(
+ dcc.Graph(
+ id="hdrh-latency-graph",
+ figure=graph_hdrh_latency(hdrh_data, graph_layout)
+ )
+ )
+ ])
+ ]
+
+ metadata = [
+ dbc.Card(
+ class_name="gy-2 p-0",
+ children=[
+ dbc.CardHeader(children=[
+ dcc.Clipboard(
+ target_id="tput-lat-metadata",
+ title="Copy",
+ style={"display": "inline-block"}
+ ),
+ title
+ ]),
+ dbc.CardBody(
+ dbc.ListGroup(list_group_items, flush=True),
+ id="tput-lat-metadata",
+ class_name="p-0",
+ )
+ ]
+ )
+ ]
+
+ return metadata, graph, True
+
+
+def show_iterative_graph_data(
+ trigger: Trigger,
+ data: dict,
+ graph_layout: dict
+ ) -> tuple:
+ """Generates the data for the offcanvas displayed when a particular point in
+ a box graph (iterative data) is clicked on.
+
+ :param trigger: The information from trigger when the data point is clicked
+ on.
+ :param graph: The data from the clicked point in the graph.
+ :param graph_layout: The layout of the HDRH latency graph.
+ :type trigger: Trigger
+ :type graph: dict
+ :type graph_layout: dict
+ :returns: The data to be displayed on the offcanvas and the information to
+ show the offcanvas.
+ :rtype: tuple(list, list, bool)
+ """
+
+ if trigger.idx == "tput":
+ idx = 0
+ elif trigger.idx == "bandwidth":
+ idx = 1
+ elif trigger.idx == "lat":
+ idx = len(data) - 1
+ else:
+ return list(), list(), False
+
+ try:
+ data = data[idx]["points"]
+ except (IndexError, KeyError, ValueError, TypeError):
+ return list(), list(), False
+
+ def _process_stats(data: list, param: str) -> list:
+ """Process statistical data provided by plot.ly box graph.
+
+ :param data: Statistical data provided by plot.ly box graph.
+ :param param: Parameter saying if the data come from "tput" or
+ "lat" graph.
+ :type data: list
+ :type param: str
+ :returns: Listo of tuples where the first value is the
+ statistic's name and the secont one it's value.
+ :rtype: list
+ """
+ if len(data) == 7:
+ stats = ("max", "upper fence", "q3", "median", "q1",
+ "lower fence", "min")
+ elif len(data) == 9:
+ stats = ("outlier", "max", "upper fence", "q3", "median",
+ "q1", "lower fence", "min", "outlier")
+ elif len(data) == 1:
+ if param == "lat":
+ stats = ("average latency at 50% PDR", )
+ elif param == "bandwidth":
+ stats = ("bandwidth", )
+ else:
+ stats = ("throughput", )
+ else:
+ return list()
+ unit = " [us]" if param == "lat" else str()
+ return [(f"{stat}{unit}", f"{value['y']:,.0f}")
+ for stat, value in zip(stats, data)]
+
+ customdata = data[0].get("customdata", dict())
+ datapoint = customdata.get("metadata", dict())
+ hdrh_data = customdata.get("hdrh", dict())
+
+ list_group_items = list()
+ for k, v in datapoint.items():
+ if k == "csit-ref":
+ if len(data) > 1:
+ continue
+ list_group_item = dbc.ListGroupItem([
+ dbc.Badge(k),
+ html.A(v, href=f"{C.URL_JENKINS}{v}", target="_blank")
+ ])
+ else:
+ list_group_item = dbc.ListGroupItem([dbc.Badge(k), v])
+ list_group_items.append(list_group_item)
+
+ graph = list()
+ if trigger.idx == "tput":
+ title = "Throughput"
+ elif trigger.idx == "bandwidth":
+ title = "Bandwidth"
+ elif trigger.idx == "lat":
+ title = "Latency"
+ if len(data) == 1:
+ if hdrh_data:
+ graph = [dbc.Card(
+ class_name="gy-2 p-0",
+ children=[
+ dbc.CardHeader(hdrh_data.pop("name")),
+ dbc.CardBody(dcc.Graph(
+ id="hdrh-latency-graph",
+ figure=graph_hdrh_latency(hdrh_data, graph_layout)
+ ))
+ ])
+ ]
+
+ for k, v in _process_stats(data, trigger.idx):
+ list_group_items.append(dbc.ListGroupItem([dbc.Badge(k), v]))
+
+ metadata = [
+ dbc.Card(
+ class_name="gy-2 p-0",
+ children=[
+ dbc.CardHeader(children=[
+ dcc.Clipboard(
+ target_id="tput-lat-metadata",
+ title="Copy",
+ style={"display": "inline-block"}
+ ),
+ title
+ ]),
+ dbc.CardBody(
+ dbc.ListGroup(list_group_items, flush=True),
+ id="tput-lat-metadata",
+ class_name="p-0"
+ )
+ ]
+ )
+ ]
+
+ return metadata, graph, True
diff --git a/csit.infra.dash/app/config.py b/csit.infra.dash/app/config.py
new file mode 100644
index 0000000000..a05379bce2
--- /dev/null
+++ b/csit.infra.dash/app/config.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+from os import environ
+
+class Config:
+ """Flask configuration variables.
+ """
+ # General Config
+ FLASK_APP = "wsgi.py"
+ FLASK_ENV = environ.get("FLASK_ENV", "production")
+
+ # Assets
+ ASSETS_DEBUG = environ.get("ASSETS_DEBUG", False)
+ ASSETS_AUTO_BUILD = environ.get("ASSETS_AUTO_BUILD", True)
+
+ # Static Assets
+ STATIC_FOLDER = "static"
+ TEMPLATES_FOLDER = "templates"
+ COMPRESSOR_DEBUG = environ.get("COMPRESSOR_DEBUG", False)
diff --git a/csit.infra.dash/app/requirements.txt b/csit.infra.dash/app/requirements.txt
new file mode 100644
index 0000000000..edea01075d
--- /dev/null
+++ b/csit.infra.dash/app/requirements.txt
@@ -0,0 +1,58 @@
+# AWS integration
+awswrangler==3.2.1
+pip==23.2.1
+
+# Dash integration
+dash==2.11.1
+dash-bootstrap-components==1.4.2
+dash-core-components==2.0.0
+dash-html-components==2.0.0
+dash-renderer==1.9.1
+dash-table==5.0.0
+numpy==1.25.2
+pandas==2.0.3
+plotly==5.15.0
+numexpr==2.8.4
+Bottleneck==1.3.7
+
+# Web Application Integration
+Flask==2.2.5
+Flask-Assets==2.0
+Flask-Compress==1.13
+Jinja2==3.1.2
+libsass==0.22.0
+uWSGI==2.0.22
+uwsgitop==0.11
+webassets==2.0
+
+# Web Application Dependencies
+hdrhistogram==0.10.2
+python-dateutil==2.8.2
+PyYAML==6.0.1
+
+# PIP freeze
+ansi2html==1.8.0
+boto3==1.28.17
+botocore==1.31.17
+Brotli==1.0.9
+certifi==2023.7.22
+charset-normalizer==3.2.0
+click==8.1.6
+idna==3.4
+itsdangerous==2.1.2
+jmespath==1.0.1
+MarkupSafe==2.1.3
+nest-asyncio==1.5.7
+packaging==23.1
+pbr==5.11.1
+pyarrow==12.0.1
+pytz==2023.3
+requests==2.31.0
+retrying==1.3.4
+s3transfer==0.6.1
+six==1.16.0
+tenacity==8.2.2
+typing_extensions==4.7.1
+tzdata==2023.3
+urllib3==1.26.16
+Werkzeug==2.2.3 \ No newline at end of file
diff --git a/csit.infra.dash/app/wsgi.py b/csit.infra.dash/app/wsgi.py
new file mode 100644
index 0000000000..16e094b6a4
--- /dev/null
+++ b/csit.infra.dash/app/wsgi.py
@@ -0,0 +1,20 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+
+from cdash import app
+
+
+if __name__ == "__main__":
+ # Main entry point.
+ app.run(host="0.0.0.0")
diff --git a/csit.infra.dash/do_run.sh b/csit.infra.dash/do_run.sh
new file mode 100755
index 0000000000..c87e434416
--- /dev/null
+++ b/csit.infra.dash/do_run.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+set -xuo pipefail
+
+command -v docker || exit 1
+
+export UID=$(id -u)
+export GID=$(id -g)
+
+docker compose up --remove-orphans
diff --git a/csit.infra.dash/docker-compose.yaml b/csit.infra.dash/docker-compose.yaml
new file mode 100644
index 0000000000..5ed71345fb
--- /dev/null
+++ b/csit.infra.dash/docker-compose.yaml
@@ -0,0 +1,16 @@
+version: "3"
+services:
+ cdash:
+ build: "."
+ command: "uwsgi --ini app.ini"
+ environment:
+ FLASK_DEBUG: 1
+ FLASK_ENV: "development"
+ mem_limit: "16g"
+ ports:
+ - "5000:5000"
+ user: "${UID}:${GID}"
+ volumes:
+ - "${PWD}/app/:/var/app/current"
+ - "${PWD}/../resources/libraries/python/jumpavg/:/var/app/current/cdash/jumpavg"
+ - "${HOME}/.aws:/.aws"
diff --git a/csit.infra.etl/.gitignore b/csit.infra.etl/.gitignore
new file mode 100644
index 0000000000..bccc1450f2
--- /dev/null
+++ b/csit.infra.etl/.gitignore
@@ -0,0 +1 @@
+*.parquet \ No newline at end of file
diff --git a/csit.infra.etl/coverage_device.json b/csit.infra.etl/coverage_device.json
new file mode 100644
index 0000000000..2a4327c05f
--- /dev/null
+++ b/csit.infra.etl/coverage_device.json
@@ -0,0 +1,89 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/coverage_device_rls2402.py b/csit.infra.etl/coverage_device_rls2402.py
new file mode 100644
index 0000000000..2db808164f
--- /dev/null
+++ b/csit.infra.etl/coverage_device_rls2402.py
@@ -0,0 +1,170 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-vpp-device-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"coverage_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-coverage-2402" in path]
+
+out_sdf = process_json_to_dataframe("device", filtered_paths)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/coverage_hoststack.json b/csit.infra.etl/coverage_hoststack.json
new file mode 100644
index 0000000000..fdd6eab6c0
--- /dev/null
+++ b/csit.infra.etl/coverage_hoststack.json
@@ -0,0 +1,223 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "aggregate_rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "loss",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "packets",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "integer"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "time",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tags",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/coverage_hoststack_rls2402.py b/csit.infra.etl/coverage_hoststack_rls2402.py
new file mode 100644
index 0000000000..27eb9e8cc6
--- /dev/null
+++ b/csit.infra.etl/coverage_hoststack_rls2402.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"coverage_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-coverage-2402" in path]
+
+out_sdf = process_json_to_dataframe("hoststack", filtered_paths)
+out_sdf.show(truncate=False)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/coverage_mrr.json b/csit.infra.etl/coverage_mrr.json
new file mode 100644
index 0000000000..4b6b6415d3
--- /dev/null
+++ b/csit.infra.etl/coverage_mrr.json
@@ -0,0 +1,201 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "receive_rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "stdev",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "values",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "double",
+ "type": "array"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "stdev",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "values",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "double",
+ "type": "array"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tags",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+}
diff --git a/csit.infra.etl/coverage_mrr_rls2402.py b/csit.infra.etl/coverage_mrr_rls2402.py
new file mode 100644
index 0000000000..e68e4f0366
--- /dev/null
+++ b/csit.infra.etl/coverage_mrr_rls2402.py
@@ -0,0 +1,170 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"coverage_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-coverage-2402" in path]
+
+out_sdf = process_json_to_dataframe("mrr", filtered_paths)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/coverage_ndrpdr.json b/csit.infra.etl/coverage_ndrpdr.json
new file mode 100644
index 0000000000..37c45820ea
--- /dev/null
+++ b/csit.infra.etl/coverage_ndrpdr.json
@@ -0,0 +1,691 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "latency_forward",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "pdr_0",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_10",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_50",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_90",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "latency_reverse",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "pdr_0",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_10",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_50",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_90",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "ndr",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "lower",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "upper",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "lower",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "upper",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tags",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/coverage_ndrpdr_rls2402.py b/csit.infra.etl/coverage_ndrpdr_rls2402.py
new file mode 100644
index 0000000000..730e3ea748
--- /dev/null
+++ b/csit.infra.etl/coverage_ndrpdr_rls2402.py
@@ -0,0 +1,170 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"coverage_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-coverage-2402" in path]
+
+out_sdf = process_json_to_dataframe("ndrpdr", filtered_paths)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/coverage_reconf.json b/csit.infra.etl/coverage_reconf.json
new file mode 100644
index 0000000000..fdd6eab6c0
--- /dev/null
+++ b/csit.infra.etl/coverage_reconf.json
@@ -0,0 +1,223 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "aggregate_rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "loss",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "packets",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "integer"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "time",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tags",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/coverage_reconf_rls2402.py b/csit.infra.etl/coverage_reconf_rls2402.py
new file mode 100644
index 0000000000..dc1f647ff1
--- /dev/null
+++ b/csit.infra.etl/coverage_reconf_rls2402.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"coverage_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-coverage-2402" in path]
+
+out_sdf = process_json_to_dataframe("reconf", filtered_paths)
+out_sdf.show(truncate=False)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/coverage_soak.json b/csit.infra.etl/coverage_soak.json
new file mode 100644
index 0000000000..5691e8bf5b
--- /dev/null
+++ b/csit.infra.etl/coverage_soak.json
@@ -0,0 +1,233 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "critical_rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "lower",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "upper",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tags",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/coverage_soak_rls2402.py b/csit.infra.etl/coverage_soak_rls2402.py
new file mode 100644
index 0000000000..7d87afd952
--- /dev/null
+++ b/csit.infra.etl/coverage_soak_rls2402.py
@@ -0,0 +1,170 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"coverage_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-coverage-2402" in path]
+
+out_sdf = process_json_to_dataframe("soak", filtered_paths)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/coverage_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/iterative_hoststack.json b/csit.infra.etl/iterative_hoststack.json
new file mode 100644
index 0000000000..a3365cdba0
--- /dev/null
+++ b/csit.infra.etl/iterative_hoststack.json
@@ -0,0 +1,285 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "hosts",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "latency",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "failed_requests",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "completed_requests",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "retransmits",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "telemetry",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "message",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/iterative_hoststack_rls2402.py b/csit.infra.etl/iterative_hoststack_rls2402.py
new file mode 100644
index 0000000000..1c74126c47
--- /dev/null
+++ b/csit.infra.etl/iterative_hoststack_rls2402.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"iterative_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-iterative-2402" in path]
+
+out_sdf = process_json_to_dataframe("hoststack", filtered_paths)
+out_sdf.show(truncate=False)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/iterative_mrr.json b/csit.infra.etl/iterative_mrr.json
new file mode 100644
index 0000000000..4b6b6415d3
--- /dev/null
+++ b/csit.infra.etl/iterative_mrr.json
@@ -0,0 +1,201 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "receive_rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "stdev",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "values",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "double",
+ "type": "array"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "stdev",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "values",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "double",
+ "type": "array"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tags",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+}
diff --git a/csit.infra.etl/iterative_mrr_rls2402.py b/csit.infra.etl/iterative_mrr_rls2402.py
new file mode 100644
index 0000000000..e779dbdc36
--- /dev/null
+++ b/csit.infra.etl/iterative_mrr_rls2402.py
@@ -0,0 +1,170 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"iterative_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-iterative-2402" in path]
+
+out_sdf = process_json_to_dataframe("mrr", filtered_paths)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/iterative_ndrpdr.json b/csit.infra.etl/iterative_ndrpdr.json
new file mode 100644
index 0000000000..37c45820ea
--- /dev/null
+++ b/csit.infra.etl/iterative_ndrpdr.json
@@ -0,0 +1,691 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "latency_forward",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "pdr_0",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_10",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_50",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_90",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "latency_reverse",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "pdr_0",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_10",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_50",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_90",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "ndr",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "lower",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "upper",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "lower",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "upper",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tags",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/iterative_ndrpdr_rls2402.py b/csit.infra.etl/iterative_ndrpdr_rls2402.py
new file mode 100644
index 0000000000..9231176e10
--- /dev/null
+++ b/csit.infra.etl/iterative_ndrpdr_rls2402.py
@@ -0,0 +1,170 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"iterative_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-iterative-2402" in path]
+
+out_sdf = process_json_to_dataframe("ndrpdr", filtered_paths)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/iterative_reconf.json b/csit.infra.etl/iterative_reconf.json
new file mode 100644
index 0000000000..fdd6eab6c0
--- /dev/null
+++ b/csit.infra.etl/iterative_reconf.json
@@ -0,0 +1,223 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "aggregate_rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "loss",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "packets",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "integer"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "time",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tags",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/iterative_reconf_rls2402.py b/csit.infra.etl/iterative_reconf_rls2402.py
new file mode 100644
index 0000000000..1beeb16d2c
--- /dev/null
+++ b/csit.infra.etl/iterative_reconf_rls2402.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"iterative_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-iterative-2402" in path]
+
+out_sdf = process_json_to_dataframe("reconf", filtered_paths)
+out_sdf.show(truncate=False)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/iterative_soak.json b/csit.infra.etl/iterative_soak.json
new file mode 100644
index 0000000000..5691e8bf5b
--- /dev/null
+++ b/csit.infra.etl/iterative_soak.json
@@ -0,0 +1,233 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "critical_rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "lower",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "upper",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tags",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/iterative_soak_rls2402.py b/csit.infra.etl/iterative_soak_rls2402.py
new file mode 100644
index 0000000000..55c6eb494d
--- /dev/null
+++ b/csit.infra.etl/iterative_soak_rls2402.py
@@ -0,0 +1,170 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"iterative_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "report-iterative-2402" in path]
+
+out_sdf = process_json_to_dataframe("soak", filtered_paths)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/iterative_rls2402",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/local.py b/csit.infra.etl/local.py
new file mode 100644
index 0000000000..e942cebbba
--- /dev/null
+++ b/csit.infra.etl/local.py
@@ -0,0 +1,176 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the localhost"""
+
+from datetime import datetime
+from json import dump, load
+from pathlib import Path
+
+from awsglue.context import GlueContext
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+PATH="/app/tests"
+SUFFIX="info.json"
+IGNORE_SUFFIX=[
+ "suite.info.json",
+ "setup.info.json",
+ "teardown.info.json",
+ "suite.output.info.json",
+ "setup.output.info.json",
+ "teardown.output.info.json"
+]
+
+
+def schema_dump(schema, option):
+ """Dumps Spark DataFrame schema into JSON file.
+
+ :param schema: DataFrame schema.
+ :type schema: StructType
+ :param option: File name suffix for the DataFrame schema.
+ :type option: string
+ """
+ with open(f"trending_{option}.json", "w", encoding="UTF-8") as f_schema:
+ dump(schema.jsonValue(), f_schema, indent=4, sort_keys=True)
+
+
+def schema_load(option):
+ """Loads Spark DataFrame schema from JSON file.
+
+ :param option: File name suffix for the DataFrame schema.
+ :type option: string
+ :returns: DataFrame schema.
+ :rtype: StructType
+ """
+ with open(f"trending_{option}.json", "r", encoding="UTF-8") as f_schema:
+ return StructType.fromJson(load(f_schema))
+
+
+def schema_dump_from_json(option):
+ """Loads JSON with data and dumps Spark DataFrame schema into JSON file.
+
+ :param option: File name suffix for the JSON data.
+ :type option: string
+ """
+ schema_dump(spark \
+ .read \
+ .option("multiline", "true") \
+ .json(f"data_{option}.json") \
+ .schema, option
+ )
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ schema = schema_load(schema_name)
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit("local")) \
+ .withColumn("build", lit("unknown"))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = []
+for file in Path(PATH).glob(f"**/*{SUFFIX}"):
+ if file.name not in IGNORE_SUFFIX:
+ paths.append(str(file))
+
+for schema_name in ["mrr", "ndrpdr", "soak"]:
+ out_sdf = process_json_to_dataframe(schema_name, paths)
+ out_sdf.show()
+ out_sdf.printSchema()
+ out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1) \
+ .write \
+ .partitionBy("test_type", "year", "month", "day") \
+ .mode("append") \
+ .parquet("local.parquet")
diff --git a/csit.infra.etl/stats.py b/csit.infra.etl/stats.py
new file mode 100644
index 0000000000..5d44caa25d
--- /dev/null
+++ b/csit.infra.etl/stats.py
@@ -0,0 +1,133 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import lit
+from pyspark.sql.types import StructType
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="suite.info.json.gz"
+IGNORE_SUFFIX=[]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "duration",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"stats_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if "tests/suite.info.json.gz" in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5])) \
+ .withColumn("stats_type", lit(schema_name))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+for schema_name in ["sra"]:
+ out_sdf = process_json_to_dataframe(schema_name, paths)
+ out_sdf.show(truncate=False)
+ out_sdf.printSchema()
+ out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+ try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/stats",
+ dataset=True,
+ partition_cols=["stats_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+ except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/stats_sra.json b/csit.infra.etl/stats_sra.json
new file mode 100644
index 0000000000..5f792e9bfe
--- /dev/null
+++ b/csit.infra.etl/stats_sra.json
@@ -0,0 +1,41 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "stats_type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/trending_hoststack.json b/csit.infra.etl/trending_hoststack.json
new file mode 100644
index 0000000000..a3365cdba0
--- /dev/null
+++ b/csit.infra.etl/trending_hoststack.json
@@ -0,0 +1,285 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "hosts",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "latency",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "failed_requests",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "completed_requests",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "retransmits",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "telemetry",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "message",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/trending_hoststack.py b/csit.infra.etl/trending_hoststack.py
new file mode 100644
index 0000000000..85cab5a179
--- /dev/null
+++ b/csit.infra.etl/trending_hoststack.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"trending_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "daily" in path or "weekly" in path]
+
+out_sdf = process_json_to_dataframe("hoststack", filtered_paths)
+out_sdf.show(truncate=False)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/trending",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/trending_mrr.json b/csit.infra.etl/trending_mrr.json
new file mode 100644
index 0000000000..6115e558bd
--- /dev/null
+++ b/csit.infra.etl/trending_mrr.json
@@ -0,0 +1,217 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "hosts",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "receive_rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "stdev",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "values",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "double",
+ "type": "array"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "stdev",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "values",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "double",
+ "type": "array"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "telemetry",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "message",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+}
diff --git a/csit.infra.etl/trending_mrr.py b/csit.infra.etl/trending_mrr.py
new file mode 100644
index 0000000000..a00c5fb4e1
--- /dev/null
+++ b/csit.infra.etl/trending_mrr.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"trending_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "daily" in path or "weekly" in path]
+
+out_sdf = process_json_to_dataframe("mrr", filtered_paths)
+out_sdf.show(truncate=False)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/trending",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/trending_ndrpdr.json b/csit.infra.etl/trending_ndrpdr.json
new file mode 100644
index 0000000000..22cd505671
--- /dev/null
+++ b/csit.infra.etl/trending_ndrpdr.json
@@ -0,0 +1,707 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "hosts",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "latency_forward",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "pdr_0",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_10",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_50",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_90",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "latency_reverse",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "pdr_0",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_10",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_50",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr_90",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "avg",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "hdrh",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "max",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "min",
+ "nullable": true,
+ "type": "long"
+ },
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "ndr",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "lower",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "upper",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "pdr",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "lower",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "upper",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "telemetry",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "message",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/trending_ndrpdr.py b/csit.infra.etl/trending_ndrpdr.py
new file mode 100644
index 0000000000..e35d27b0bf
--- /dev/null
+++ b/csit.infra.etl/trending_ndrpdr.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"trending_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "daily" in path or "weekly" in path]
+
+out_sdf = process_json_to_dataframe("ndrpdr", filtered_paths)
+out_sdf.show(truncate=False)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/trending",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/trending_reconf.json b/csit.infra.etl/trending_reconf.json
new file mode 100644
index 0000000000..bb4c0eea15
--- /dev/null
+++ b/csit.infra.etl/trending_reconf.json
@@ -0,0 +1,239 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "hosts",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "aggregate_rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "loss",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "packets",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "integer"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "time",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "telemetry",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "message",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/trending_reconf.py b/csit.infra.etl/trending_reconf.py
new file mode 100644
index 0000000000..94e6199e89
--- /dev/null
+++ b/csit.infra.etl/trending_reconf.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"trending_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "daily" in path or "weekly" in path]
+
+out_sdf = process_json_to_dataframe("reconf", filtered_paths)
+out_sdf.show(truncate=False)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/trending",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.etl/trending_soak.json b/csit.infra.etl/trending_soak.json
new file mode 100644
index 0000000000..1aba81483e
--- /dev/null
+++ b/csit.infra.etl/trending_soak.json
@@ -0,0 +1,249 @@
+{
+ "fields": [
+ {
+ "metadata": {},
+ "name": "job",
+ "nullable": false,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "build",
+ "nullable": false,
+ "type": "integer"
+ },
+ {
+ "metadata": {},
+ "name": "duration",
+ "nullable": true,
+ "type": "double"
+ },
+ {
+ "metadata": {},
+ "name": "dut_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "dut_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "hosts",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "tg_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "tg_version",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "result",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "critical_rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "lower",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "upper",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "bandwidth",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "rate",
+ "nullable": true,
+ "type": {
+ "fields": [
+ {
+ "metadata": {},
+ "name": "unit",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "value",
+ "nullable": true,
+ "type": "double"
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "type",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "start_time",
+ "nullable": true,
+ "type": "timestamp"
+ },
+ {
+ "metadata": {},
+ "name": "passed",
+ "nullable": true,
+ "type": "boolean"
+ },
+ {
+ "metadata": {},
+ "name": "telemetry",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
+ "name": "test_id",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_long",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_name_short",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "test_type",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "message",
+ "nullable": true,
+ "type": "string"
+ },
+ {
+ "metadata": {},
+ "name": "version",
+ "nullable": true,
+ "type": "string"
+ }
+ ],
+ "type": "struct"
+} \ No newline at end of file
diff --git a/csit.infra.etl/trending_soak.py b/csit.infra.etl/trending_soak.py
new file mode 100644
index 0000000000..40da521884
--- /dev/null
+++ b/csit.infra.etl/trending_soak.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""ETL script running on top of the s3://"""
+
+from datetime import datetime, timedelta
+from json import load
+from os import environ
+from pytz import utc
+
+import awswrangler as wr
+from awswrangler.exceptions import EmptyDataFrame
+from awsglue.context import GlueContext
+from boto3 import session
+from pyspark.context import SparkContext
+from pyspark.sql.functions import col, lit, regexp_replace
+from pyspark.sql.types import StructType
+
+
+S3_LOGS_BUCKET="fdio-logs-s3-cloudfront-index"
+S3_DOCS_BUCKET="fdio-docs-s3-cloudfront-index"
+PATH=f"s3://{S3_LOGS_BUCKET}/vex-yul-rot-jenkins-1/csit-*-perf-*"
+SUFFIX="info.json.gz"
+IGNORE_SUFFIX=[
+ "suite.info.json.gz",
+ "setup.info.json.gz",
+ "teardown.info.json.gz",
+ "suite.output.info.json.gz",
+ "setup.output.info.json.gz",
+ "teardown.output.info.json.gz"
+]
+LAST_MODIFIED_END=utc.localize(
+ datetime.strptime(
+ f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}",
+ "%Y-%m-%d"
+ )
+)
+LAST_MODIFIED_BEGIN=LAST_MODIFIED_END - timedelta(1)
+
+
+def flatten_frame(nested_sdf):
+ """Unnest Spark DataFrame in case there nested structered columns.
+
+ :param nested_sdf: Spark DataFrame.
+ :type nested_sdf: DataFrame
+ :returns: Unnest DataFrame.
+ :rtype: DataFrame
+ """
+ stack = [((), nested_sdf)]
+ columns = []
+ while len(stack) > 0:
+ parents, sdf = stack.pop()
+ for column_name, column_type in sdf.dtypes:
+ if column_type[:6] == "struct":
+ projected_sdf = sdf.select(column_name + ".*")
+ stack.append((parents + (column_name,), projected_sdf))
+ else:
+ columns.append(
+ col(".".join(parents + (column_name,))) \
+ .alias("_".join(parents + (column_name,)))
+ )
+ return nested_sdf.select(columns)
+
+
+def process_json_to_dataframe(schema_name, paths):
+ """Processes JSON to Spark DataFrame.
+
+ :param schema_name: Schema name.
+ :type schema_name: string
+ :param paths: S3 paths to process.
+ :type paths: list
+ :returns: Spark DataFrame.
+ :rtype: DataFrame
+ """
+ drop_subset = [
+ "dut_type", "dut_version",
+ "passed",
+ "test_name_long", "test_name_short",
+ "test_type",
+ "version"
+ ]
+
+ # load schemas
+ with open(f"trending_{schema_name}.json", "r", encoding="UTF-8") as f_schema:
+ schema = StructType.fromJson(load(f_schema))
+
+ # create empty DF out of schemas
+ sdf = spark.createDataFrame([], schema)
+
+ # filter list
+ filtered = [path for path in paths if schema_name in path]
+
+ # select
+ for path in filtered:
+ print(path)
+
+ sdf_loaded = spark \
+ .read \
+ .option("multiline", "true") \
+ .schema(schema) \
+ .json(path) \
+ .withColumn("job", lit(path.split("/")[4])) \
+ .withColumn("build", lit(path.split("/")[5]))
+ sdf = sdf.unionByName(sdf_loaded, allowMissingColumns=True)
+
+ # drop rows with all nulls and drop rows with null in critical frames
+ sdf = sdf.na.drop(how="all")
+ sdf = sdf.na.drop(how="any", thresh=None, subset=drop_subset)
+
+ # flatten frame
+ sdf = flatten_frame(sdf)
+
+ return sdf
+
+
+# create SparkContext and GlueContext
+spark_context = SparkContext.getOrCreate()
+spark_context.setLogLevel("WARN")
+glue_context = GlueContext(spark_context)
+spark = glue_context.spark_session
+
+# files of interest
+paths = wr.s3.list_objects(
+ path=PATH,
+ suffix=SUFFIX,
+ last_modified_begin=LAST_MODIFIED_BEGIN,
+ last_modified_end=LAST_MODIFIED_END,
+ ignore_suffix=IGNORE_SUFFIX,
+ ignore_empty=True
+)
+
+filtered_paths = [path for path in paths if "daily" in path or "weekly" in path]
+
+out_sdf = process_json_to_dataframe("soak", filtered_paths)
+out_sdf.show(truncate=False)
+out_sdf.printSchema()
+out_sdf = out_sdf \
+ .withColumn("year", lit(datetime.now().year)) \
+ .withColumn("month", lit(datetime.now().month)) \
+ .withColumn("day", lit(datetime.now().day)) \
+ .repartition(1)
+
+try:
+ wr.s3.to_parquet(
+ df=out_sdf.toPandas(),
+ path=f"s3://{S3_DOCS_BUCKET}/csit/parquet/trending",
+ dataset=True,
+ partition_cols=["test_type", "year", "month", "day"],
+ compression="snappy",
+ use_threads=True,
+ mode="overwrite_partitions",
+ boto3_session=session.Session(
+ aws_access_key_id=environ["OUT_AWS_ACCESS_KEY_ID"],
+ aws_secret_access_key=environ["OUT_AWS_SECRET_ACCESS_KEY"],
+ region_name=environ["OUT_AWS_DEFAULT_REGION"]
+ )
+ )
+except EmptyDataFrame:
+ pass
diff --git a/csit.infra.hugo/docker-compose.yaml b/csit.infra.hugo/docker-compose.yaml
new file mode 100644
index 0000000000..f25add2134
--- /dev/null
+++ b/csit.infra.hugo/docker-compose.yaml
@@ -0,0 +1,23 @@
+version: "3"
+services:
+ cdocs-init:
+ image: "klakegg/hugo:ext-alpine"
+ command: "mod get github.com/alex-shpak/hugo-book@v0.0.0-20230808113920-3f1bcccbfb24"
+ volumes:
+ - "../docs:/src"
+ cdocs-build:
+ image: "klakegg/hugo:ext-alpine"
+ depends_on:
+ - "cdocs-init"
+ volumes:
+ - "../docs:/src"
+ - "../csit.infra.dash:/csit.infra.dash"
+ cdocs-run:
+ image: "klakegg/hugo:ext-alpine"
+ command: "server --minify"
+ depends_on:
+ - "cdocs-init"
+ volumes:
+ - "../docs:/src"
+ ports:
+ - "1313:1313"
diff --git a/csit.infra.vagrant/Vagrantfile b/csit.infra.vagrant/Vagrantfile
new file mode 100644
index 0000000000..cbcde197db
--- /dev/null
+++ b/csit.infra.vagrant/Vagrantfile
@@ -0,0 +1,87 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+Vagrant.configure("2") do |config|
+
+ # Configure cached packages to be shared between instances of the
+ # same base box.
+ if Vagrant.has_plugin?("vagrant-cachier")
+ config.cache.scope = :box
+ end
+
+ # Configure proxy if needed.
+ if Vagrant.has_plugin?("vagrant-proxyconf")
+ config.proxy.http = "http://192.168.0.2:3128/"
+ config.proxy.https = "http://192.168.0.2:3128/"
+ config.proxy.ftp = "http://192.168.0.2:3128/"
+ config.proxy.no_proxy = "localhost,127.0.0.1"
+ end
+
+ # Configure testing network interfaces (tg).
+ config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link1", nic_type: "82545em", mac: "0800270fe04d"
+ config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link2", nic_type: "82545em", mac: "08002761f7ad"
+ config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link3", nic_type: "82545em", mac: "080027dc5da4"
+
+ # Configure testing network interfaces (sut).
+ config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link1", nic_type: "82545em", mac: "080027385e58"
+ config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link2", nic_type: "82545em", mac: "080027e3f542"
+ config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link3", nic_type: "82545em", mac: "0800274f7c63"
+
+ config.vm.synced_folder "../", "/home/vagrant/csit"
+
+ # Provision the box using ansible local (no Ansible installation needed
+ # on host).
+ config.vm.provision "ansible_local" do |ansible|
+ ansible.version = "latest"
+ ansible.become = true
+ ansible.verbose = false
+ ansible.limit = "vagrant"
+ ansible.inventory_path = "/home/vagrant/csit/fdio.infra.ansible/inventories/vagrant_inventory/hosts"
+ ansible.playbook = "/home/vagrant/csit/fdio.infra.ansible/site.yaml"
+ end
+
+ config.vm.post_up_message = <<-MESSAGE
+ Your virtual machine is configured!
+
+ Login to the box using command:
+ vagrant ssh
+
+ To run some tests use the VPP Device bootstrap script, eg:
+ cd /home/vagrant/csit/resources/libraries/bash/entry
+ ./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu2004-1n-vbox
+
+ To run only selected tests based on TAGS, export environment variables
+ before running the test suite:
+ export GERRIT_EVENT_TYPE="comment-added"
+ export GERRIT_EVENT_COMMENT_TEXT="devicetest memif"
+ ./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu2004-1n-vbox
+
+ For more information please visit:
+ https://docs.fd.io/csit/master/report/
+ https://docs.fd.io/csit/master/trending/
+
+ MESSAGE
+
+ config.vm.define "jammy", primary: true do |jammy|
+ # Base box definition, currently using
+ # Official Ubuntu 22.04 LTS (Jammy) Daily Build
+ jammy.vm.box = "ubuntu/jammy64"
+ jammy.vm.box_version = "20221229.0.0"
+ jammy.vm.box_check_update = false
+
+ # Virtualbox machine configuration
+ jammy.vm.provider "virtualbox" do |vb|
+ vb.name = "vppdevice-jammy"
+ vb.gui = false
+ vb.memory = "8192"
+ vb.cpus = "4"
+ vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
+ vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"]
+ vb.customize ["modifyvm", :id, "--nicpromisc3", "allow-all"]
+ vb.customize ["modifyvm", :id, "--nicpromisc4", "allow-all"]
+ vb.customize ["modifyvm", :id, "--nicpromisc5", "allow-all"]
+ vb.customize ["modifyvm", :id, "--nicpromisc6", "allow-all"]
+ vb.customize ["modifyvm", :id, "--nicpromisc7", "allow-all"]
+ end
+ end
+end
diff --git a/docs/archetypes/default.md b/docs/archetypes/default.md
new file mode 100644
index 0000000000..d5065ab999
--- /dev/null
+++ b/docs/archetypes/default.md
@@ -0,0 +1,4 @@
+---
+bookFlatSection: true
+title: "{{ replace .Name "-" " " | title }}"
+--- \ No newline at end of file
diff --git a/docs/automating_vpp_api_flag_day.rst b/docs/automating_vpp_api_flag_day.rst
deleted file mode 100644
index 2268cf496f..0000000000
--- a/docs/automating_vpp_api_flag_day.rst
+++ /dev/null
@@ -1,325 +0,0 @@
-..
- Copyright (c) 2020 Cisco and/or its affiliates.
- 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.
-
-
-VPP API Flag Day Algorithm
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Abstract
-~~~~~~~~
-
-This document describes the current solution to the problem of
-automating the detection of VPP API changes which are not backwards
-compatible with existing CSIT tests, by defining the "Flag Day"
-process of deploying a new set of CSIT tests which are compatible
-with the new version of the VPP API without causing a halt to the
-normal VPP/CSIT operational CI process. This is initially
-limited to changes in \*.api files contained in the vpp repo.
-Eventually the detection algorithm could be extended to include
-other integration points such as "directory" structure of stats
-segment or PAPI python library dependencies.
-
-Motivation
-~~~~~~~~~~
-
-Aside of per-release activities (release report), CSIT also provides testing
-that requires somewhat tight coupling to the latest (merged but not released)
-VPP code. Currently, HEAD of one project is run against somewhat older codebase
-of the other project. Definition of what is the older codebase to use
-is maintained by CSIT project. For older CSIT codebase, there are so-called
-"oper" branches. For older VPP codebase, CSIT master HEAD contains identifiers
-for "stable" VPP builds. Such older codebases are also used for verify jobs,
-where HEAD of the other project is replaced by the commit under review.
-
-One particular type of jobs useful for VPP development is trending jobs.
-They test latests VPP build with latest oper branch of CSIT,
-and analytics is applied to detect regressions in preformance.
-For this to work properly, VPP project needs a warning against breaking
-the assumptions the current oper branch makes about VPP behavior.
-In the past, the most frequent type of such breakage was API change.
-
-Earlier attempts to create a process to minimize breakage have focused
-on creating a new verify job for VPP (called api-crc job) that
-votes -1 on a change that affects CRC values for API messages CSIT uses.
-The list of messages and CRC values (multiple "collections" are allowed)
-is maintained in CSIT repository (in oper branch).
-The process was less explicit on how should CSIT project maintain such list.
-As CSIT was not willing to support two incpompatible API messages
-by the same codebase (commit), there were unavoidable windows
-where either trenging jobs, or CSIT verify jobs were failing.
-
-Practice showed that human (or infra) errors can create two kinds of breakages.
-Either the unavoidable short window gets long, affecting a trending job run
-or two, or the api-crc job starts giving -1 to innocent changes
-because oper branch went out of sync with VPP HEAD codebase.
-This second type of failure prevents any merges to VPP for a long time
-(12 hours is the typical time, give time zone differences).
-
-The current version of this document introduces two new requirements.
-Firstly, the api-crc job should not give false -1, under any
-(reasonable) circumstances. That means, if a VPP change
-(nor any of its unmerged ancestor commits) does not affect any CRC values
-for messages used by CSIT, -1 should only mean "rebase is needed",
-and rebasing to HEAD should result in +1 from the api-crc job.
-Secondly, no more than one VPP change is allowed to be processed
-(at the same time).
-
-Naming
-~~~~~~
-
-It is easier to define the process after chosing shorter names
-for notions that need long definition.
-
-Note: Everytime a single job is mentioned,
-in practice it can be a set of jobs covering parts of functionality.
-A "run" of the set of jobs passes only if each job within the set
-has been run (again) and passed.
-
-Jobs
-----
-
-+ A *vpp verify* job: Any job run automatically, and voting on open VPP changes.
- Some verify jobs compile and package VPP for target operating system
- and processor architecture, the packages are NOT archived (currently).
- They should be cached somewhere in future to speed up in downstream jobs,
- but currently each such downstream job can clone and build.
-
-+ The *api-crc* job: Quick verify job for VPP changes, that accesses
- CSIT repository (checkout latest oper branch HEAD) to figure out
- whether merging the change is safe from CSIT point of view.
- Here, -1 means CSIT is not ready. +1 means CSIT looks to be ready
- for the new CRC values, but there still may be failures on real tests.
-
-+ A *trending* job: Any job that is started by timer and performs testing.
- It checkouts CSIT latest oper branch HEAD, downloads the most recent
- completely uploaded VPP package, and unconditionally runs the tests.
- CRC checks are optional, ideally only written to console log
- without otherwise affecting the test cases.
-
-+ A *vpp-csit* job: A slower verify job for VPP changes, that accesses CSIT
- repository and runs tests from the correct CSIT commit (chosen as in trending)
- against the VPP (built from the VPP patch under review).
- Vote -1 means there were test failures. +1 means no test failures, meaning
- there either was no API change, or it was backward compatible.
-
-+ A *csit-vpp* job: Verify job for open CSIT changes. Downloads the
- (completely uploaded) VPP package marked as "stable", and runs a selection
- of tests (from the CSIT patch under review).
- Vote +1 means all tests have passed, so it is safe to merge
- the patch under review.
-
-+ A *patch-on-patch* job: Manually triggered non-voting job
- for open CSIT changes. Compiles and packages from VPP source
- (usually of an unmerged change). Then runs the same tests as csit-vpp job.
- This job is used to prove the CSIT patch under review is supporting
- the specified VPP code.
- In practice, this can be a vpp-csit job started with CSIT_REF set.
-
-+ A *manual verification* is done by a CSIT committer, locally executing steps
- equivalent to the patch-on-patch job. This can to save time and resources.
-
-CRC Collections
----------------
-
-Any commit in/for the CSIT repository contains a file (supported_crcs.yaml),
-which contains either one or two collections. A collection is a mapping
-that maps API message name to its CRC value.
-
-A collection name specifies which VPP build is this collection for.
-An API message name is present in a collection if and only if
-it is used by a test implementation (can be in different CSIT commit)
-targeted at the VPP build (pointed out by the collection name).
-
-+ The *stable collection*: Usually required, listed first, has comments and name
- pointing to the VPP build this CSIT commit marks as stable.
- The stable collection is only missing in deactivating changes (see below)
- when not mergeable yet.
-
-+ The *active collection*: Optional, listed second, has comments and name
- pointing to the VPP Gerrit (including patch set number)
- the currently active API process is processing.
- The patch set number part can be behind the actual Gerrit state.
- This is safe, because api-crc job on the active API change will fail
- if the older patch is no longer API-equivalent to the newer patch.
-
-Changes
--------
-
-+ An *API change*: The name for any Gerrit Change for VPP repository
- that does not pass api-crc job right away, and needs this whole process.
- This usually means .api files are edited, but a patch that affects
- the way CRC values are computed is also an API change.
-
- Full name could be VPP API Change, but as no CSIT change is named "API change"
- (and this document does not talk about other FD.io or external projects),
- "API change" is shorter.
-
- TODO: Is there a magic incantation for Gerrit WebUI to search for API changes?
- Open, -1 from api-crc job, +1 from other (non-csit) jobs.
-
-+ A *blocked change*: The name for open Gerrit Change for VPP repository
- that got -1 from some of voting verify jobs.
-
-+ A *VPP-blocked change": A blocked change which got -1 from some "pure VPP"
- verify job, meaning no CSIT code has been involved in the vote.
- Example: "make test" fails.
-
- VPP contributor is expected to fix the change, or VPP developers
- are expected to found a cause in an earlier VPP change, and fix it.
- No interaction with CSIT developers is necessary.
-
-+ A *CSIT-blocked change*: A blocked change which is not VPP-blocked,
- but does not pass some vpp-csit job.
- To fix a CSIT-blocked change, an interaction with a CSIT committer
- is usually necessary. Even if a VPP developer is experienced enough
- to identify the cause of the failure, a merge to CSIT is usually needed
- for a full fix.
-
- This process does not specify what to do with CSIT-blocked changes
- that are not also API changes.
-
-+ A *candidate API change*: An API change that meets all requirements
- to become active (see below). Currently, the requirements are:
-
- + No -1 nor -2 from from any human reviewer.
-
- + All verify jobs (except vpp-csit ones) pass.
-
- + +1 from a VPP committer.
-
- The reason is to avoid situations where an API change becomes active,
- but the VPP committers are unwilling to merge it for some reason.
-
-+ The *active API change*: The candidate API change currently being processed
- by the API Flag Day Algorithm.
- While many API changes can be candidates at the same time,
- only one is allowed be active at a time.
-
-+ The *activating change*: The name for a Gerrit Change for CSIT repository
- that does not change the test code, but adds the active CRC collection.
- Merge of the opening change (to latest CSIT oper branch) defines
- which API change has become active.
-
-+ The *deactivating change*: The name for Gerrit Change for CSIT repository
- that only supports tests and CRC values for VPP with the active API change.
- That implies the previously stable CRC collection is deleted,
- and any edits to the test implementation are done here.
-
-+ The *mergeable deactivating change*: The deactivating change with additional
- requirements. Details on the requirements are listed in the next section.
- Merging this change finishes the process for the active API change.
-
-It is possible for a single CSIT change to act both as a mergeable
-deactivating change for one API change, and as an activating change
-for another API change. As English lacks a good adjective for such a thing,
-this document does not name this change.
-When this documents says a change is activating or deactivating,
-it allows the possibility for the change to fullfill also other purposes
-(e.g. acting as deactivating / activating change for another API change).
-
-Algorithm Steps
-~~~~~~~~~~~~~~~
-
-The following steps describe the application of the API "Flag Day" algorithm:
-
-#. A VPP patch for an API change is submitted to
- gerrit for review.
-#. The api-crc job detects the API CRC values have changed
- for some messages used by CSIT.
-#. The api-crc job runs in parallel with any other vpp-csit verify job,
- so those other jobs can hint at the impact on CSIT.
- Currently, any such vpp-csit job is non-voting,
- as the current process does not guarantee such jobs passes
- when the API change is merged.
-#. If the api-crc job fails, an email with the appropriate reason
- is sent to the VPP patch submitter and vpp-api-dev@lists.fd.io
- including the VPP patch information and .api files that are edited.
-#. The VPP patch developer works with a VPP committer
- to ensure the patch meets requirements to become a candidate (see above).
-#. The VPP patch developer and CSIT team create a CSIT JIRA ticket
- to identify the work required to support the new VPP API version.
-#. CSIT developer creates a patch of the deactivating change
- (upload to Gerrit not required yet).
-#. CSIT developer runs patch-on-patch job (or manual verification).
- Both developers iterate until the verification passes.
- Note that in this phase csit-vpp job is expected to vote -1,
- as the deactivating change is not mergeable yet.
-#. CSIT developer creates the activating change, uploads to Gerrit,
- waits for vote (usual review cycle applies).
-#. When CSIT committer is satisfied, the activating change is merged
- to CSIT master branch and cherry-picked to the latest oper branch.
- This enters a "critical section" of the process.
- Merges of other activating changes are not allowed from now on.
- The targeted API change becomes the active API change.
- This does not break any jobs.
-#. VPP developer (or CSIT committer) issues a recheck on the VPP patch.
-#. On failure, VPP and CSIT committers analyze what went wrong.
- Typically, the active CRC collection is matching only an older patch set,
- but a newer patch set needs different CRC values.
- Either due to improvements on the VPP change in question,
- or due to a rebase over previously merged (unrelated) API change.
- VPP perhaps needs to rebase, and CSIT definitely needs
- to merge edits to the active collection. Then issue a recheck again,
- and iterate until success.
-#. On success, VPP Committer merges the active API change patch.
- (This is also a delayed verification of the current active CRC collection.)
-#. VPP committer sends an e-mail to vpp-api-dev stating the support for
- the previous CRC values will soon be removed, implying other changes
- (whether API or not) should be rebased soon.
-#. VPP merge jobs create and upload new VPP packages.
- This breaks trending jobs, but both VPP and CSIT verify jobs still work.
-#. CSIT developer makes the deactivating change mergeable:
- The stable VPP build indicator is bumped to the build
- that contains the active API change. The active CRC collection
- (added by the activating change) is renamed to the new stable collection.
- (The previous stable collection has already been deleted.)
- At this time, the deactivating change should be uploaded to Gerrit and
- csit verify jobs should be triggered.
-#. CSIT committer reviews the code, perhaps triggering any additional jobs
- needed to verify the tests using the edited APIs are still working.
-#. When satisfied, CSIT committer merges the mergeable deactivating change
- (to both master and oper).
- The merge fixes trending jobs. VPP and CSIT verify jobs continue to work.
- The merge also breaks some verify jobs for old changes in VPP,
- as announced when the active API change was merged.
- The merge is the point where the process leaves the "critical section",
- thus allowing merges of activating changes for other API changes.
-#. CSIT committer sends an e-mail to vpp-api-dev stating the support for
- the previous CRC values has been removed, and rebase is needed
- for all affected VPP changes.
-#. Recheck of existing VPP patches in gerrit may cause the "VPP
- API Incompatible Change Test" to send an email to the patch
- submitter to rebase the patch to pick up the compatible VPP API
- version files.
-
-Real life examples
-~~~~~~~~~~~~~~~~~~
-
-Simple API change: https://gerrit.fd.io/r/c/vpp/+/23829
-
-Activating change: https://gerrit.fd.io/r/c/csit/+/23956
-
-Mergeable deactivating change: https://gerrit.fd.io/r/c/csit/+/24280
-
-Less straightforward mergeable deactivating change:
-https://gerrit.fd.io/r/c/csit/+/22526
-It shows:
-
-+ Crc edits: supported_crcs.yaml
-+ Version bump: VPP_STABLE_VER_UBUNTU_BIONIC
-+ And even a way to work around failing tests:
- eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot
-
-Simple change that is both deactivating and activating:
-https://gerrit.fd.io/r/c/csit/+/23969
diff --git a/docs/bash_code_style.rst b/docs/bash_code_style.rst
deleted file mode 100644
index e955f72ab4..0000000000
--- a/docs/bash_code_style.rst
+++ /dev/null
@@ -1,718 +0,0 @@
-..
- Copyright (c) 2019 Cisco and/or its affiliates.
- 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.
-
-
-The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
-"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
-"MAY", and "OPTIONAL" in this document are to be interpreted as
-described in `BCP 14 <https://tools.ietf.org/html/bcp14>`_
-`[RFC2119] <https://tools.ietf.org/html/rfc2119>`_
-`[RFC8174] <https://tools.ietf.org/html/rfc8174>`_
-when, and only when, they appear in all capitals, as shown here.
-
-This document SHALL describe guidelines for writing reliable, maintainable,
-reusable and readable code for CSIT.
-
-Motivation
-^^^^^^^^^^
-
-TODO: List reasons why we need code style document for Bash.
-
-Proposed style
-^^^^^^^^^^^^^^
-
-File types
-~~~~~~~~~~
-
-Bash files SHOULD NOT be monolithic. Generally, this document
-considers two types of bash files:
-
-+ Entry script: Assumed to be called by user,
- or a script "external" in some way.
-
- + Sources bash libraries and calls functions defined there.
-
-+ Library file: To be sourced by entry scipts, possibly also by other libraries.
-
- + Sources other libraries for functions it needs.
-
- + Or relies on a related file already having sourced that.
-
- + Documentation SHALL imply which case it is.
-
- + Defines multiple functions other scripts can call.
-
-Safety
-~~~~~~
-
-+ Variable expansions MUST be quoted, to prevent word splitting.
-
- + This includes special "variables" such as "${1}".
-
- + RECOMMENDED even if the value is safe, as in "$?" and "$#".
-
- + It is RECOMMENDED to quote strings in general,
- so text editors can syntax-highlight them.
-
- + Even if the string is a numeric value.
-
- + Commands and known options can get their own highlight, no need to quote.
-
- + Example: You do not need to quote every word of
- "pip install --upgrade virtualenv".
-
- + Code SHALL NOT quote glob characters you need to expand (obviously).
-
- + OPTIONALLY do not quote adjacent characters (such as dot or fore-slash),
- so that syntax highlighting makes them stand out compared to surrounding
- ordinary strings.
-
- + Example: cp "logs"/*."log" "."/
-
- + TODO: Consider giving examples both for good and bad usage.
-
- + Command substitution on right hand side of assignment are safe
- without quotes.
-
- + Note that command substitution limits the scope for quotes,
- so it is NOT REQUIRED to escape the quotes in deeper levels.
-
- + Both backtics and "dollar round-bracket" provide command substitution.
- The folowing rules are RECOMMENDED:
-
- + For simple constructs, use "dollar round-bracket".
-
- + If there are round brackets in the surrounding text, use backticks,
- as some editor highlighting logic can get confused.
-
- + Avoid nested command substitution.
-
- + Put intermediate results into local variables,
- use "|| die" on each step of command substitution.
-
- + Code SHOULD NOT be structured in a way where
- word splitting is intended.
-
- + Example: Variable holding string of multiple command lines arguments.
-
- + Solution: Array variable should be used in this case.
-
- + Expansion MUST use quotes then: "${name[@]}".
-
- + Word splitting MAY be used when creating arrays from command substitution.
-
-+ Code MUST always check the exit code of commands.
-
- + Traditionally, error code checking is done either by "set -e"
- or by appending "|| die" after each command.
- The first is unreliable, due to many rules affecting "set -e" behavior
- (see <https://mywiki.wooledge.org/BashFAQ/105>), but "|| die"
- relies on humans identifying each command, which is also unreliable.
- When was the last time you checked error code of "echo" command,
- for example?
-
- + Another example: "set -e" in your function has no effect
- if any ancestor call is done with logical or,
- for example in "func || code=$?" construct.
-
- + As there is no reliable method of error detection, and there are two
- largely independent unreliable methods, the best what we can do
- is to apply both. So, code SHOULD explicitly
- check each command (with "|| die" and similar) AND have "set -e" applied.
-
- + Code MUST explicitly check each command, unless the command is well known,
- and considered safe (such as the aforementioned "echo").
-
- + The well known commands MUST still be checked implicitly via "set -e".
-
- + See below for specific "set -e" recommendations.
-
-+ Code SHOULD use "readlink -e" (or "-f" if target does not exist yet)
- to normalize any path value to absolute path without symlinks.
- It helps with debugging and identifies malformed paths.
-
-+ Code SHOULD use such normalized paths for sourcing.
-
-+ When exiting on a known error, code MUST print a longer, helpful message,
- in order for the user to fix their situation if possible.
-
-+ When error happens at an unexpected place, it is RECOMMENDED for the message
- to be short and generic, instead of speculative.
-
-Bash options
-~~~~~~~~~~~~
-
-+ Code MUST apply "-x" to make debugging easier.
-
- + Code MAY temporarily supress such output in order to avoid spam
- (e.g. in long busy loops), but it is still NOT RECOMMENDED to do so.
-
-+ Code MUST apply "-e" for early error detection.
-
- + But code still SHOULD use "|| die" for most commands,
- as "-e" has numerous rules and exceptions.
-
- + Code MAY apply "+e" temporarily for commands which (possibly nonzero)
- exit code it interested in.
-
- + Code MUST to store "$?" and call "set -e" immediatelly afterwards.
-
- + Code MUST NOT use this approach when calling functions.
-
- + That is because functions are instructed to apply "set -e" on their own
- which (when triggered) will exit the whole entry script.
-
- + Unless overriden by ERR trap.
- But code SHOULD NOT set any ERR trap.
-
- + If code needs exit code of a function, it is RECOMMENDED to use
- pattern 'code="0"; called_function || code="${?}"'.
-
- + In this case, contributor MUST make sure nothing in the
- called_function sub-graph relies on "set -e" behavior,
- because the call being part of "or construct" disables it.
-
- + Code MAY append "|| true" for benign commands,
- when it is clear non-zero exit codes make no difference.
-
- + Also in this case, the contributor MUST make sure nothing within
- the called sub-graph depends on "set -e", as it is disabled.
-
-+ Code MUST apply "-u" as unset variable is generally a typo, thus an error.
-
- + Code MAY temporarily apply "+u" if a command needs that to pass.
-
- + Virtualenv activation is the only known example so far.
-
-+ Code MUST apply "-o pipefail" to make sure "-e" picks errors
- inside piped construct.
-
- + Code MAY use "|| true" inside a pipe construct, in the (inprobable) case
- when non-zero exit code still results in a meaningful pipe output.
-
-+ All together: "set -exuo pipefail".
-
- + Code MUST put that line near start of every file, so we are sure
- the options are applied no matter what.
-
- + "Near start" means "before any nontrivial code".
-
- + Basically only copyright is RECOMMENDED to appear before.
-
- + Also code MUST put the line near start of function bodies
- and subshell invocations.
-
-Functions
-~~~~~~~~~
-
-There are (at least) two possibilities how a code from an external file
-can be executed. Either the file contains a code block to execute
-on each "source" invocation, or the file just defines functions
-which have to be called separately.
-
-This document considers the "function way" to be better,
-here are some pros and cons:
-
-+ Cons:
-
- + The function way takes more space. Files have more lines,
- and the code in function body is one indent deeper.
-
- + It is not easy to create functions for low-level argument manipulation,
- as "shift" command in the function code does not affect the caller context.
-
- + Call sites frequently refer to code two times,
- when sourcing the definition and when executing the function.
-
- + It is not clear when a library can rely on its relative
- to have performed the sourcing already.
-
- + Ideally, each library should detect if it has been sourced already
- and return early, which takes even more space.
-
-+ Pros:
-
- + Some code blocks are more useful when used as function,
- to make call site shorter.
-
- + Examples: Trap functions, "die" function.
-
- + The "import" part and "function" part usually have different side effects,
- making the documentation more focused (even if longer overall).
-
- + There is zero risk of argument-less invocation picking arguments
- from parent context.
-
- + This safety feature is the main reason for chosing the "function way".
-
- + This allows code blocks to support optional arguments.
-
-+ Rules:
-
- + Library files MUST be only "source"d. For example if "tox" calls a script,
- it is an entry script.
-
- + Library files (upon sourcing) MUST minimize size effect.
-
- + The only permitted side effects MUST by directly related to:
-
- + Defining functions (without executing them).
-
- + Sourcing sub-library files.
-
- + If a bash script indirectly call another bash script,
- it is not a "source" operation, variables are not shared,
- so the called script MUST be considered an entry script,
- even if it implements logic fitting into a single function.
-
- + Entry scripts SHOULD avoid duplicating any logic.
-
- + Clear duplicated blocks MUST be moved into libraries as functions.
-
- + Blocks with low amount of duplication MAY remain in entry scripts.
-
- + Usual motives for not creating functions are:
-
- + The extracted function would have too much logic for processing
- arguments (instead of hardcoding values as in entry script).
-
- + The arguments needed would be too verbose.
-
- + And using "set +x" would take too much vertical space
- (when compared to entry script implementation).
-
-Variables
-~~~~~~~~~
-
-This document describes two kinds of variables: called "local" and "global".
-
-TODO: Find better adjectives for the two kinds defined here,
-if the usual bash meaning makes reader forget other specifics.
-For example, variable with lowercase name and not marked by "local" builtin,
-is cosidered "global" from bash point of view, but "local" from this document
-point of view.
-
-+ Local variables:
-
- + Variable name MUST contain only lower case letters, digits and underscores.
-
- + Code MUST NOT export local variables.
-
- + Code MUST NOT rely on local variables set in different contexts.
-
- + Documentation is NOT REQUIRED.
-
- + Variable name SHOULD be descriptive enough.
-
- + Local variable MUST be initialized before first use.
-
- + Code SHOULD have a comment if a reader might have missed
- the initialization.
-
- + TODO: Agree on level of defensiveness (against local values
- being influenced by other functions) needed.
- Possible alternatives / additions to the "always initialize" rule:
-
- + Unset local variables when leaving the function.
-
- + Explicitly typeset by "local" builtin command.
-
- + Require strict naming convention, e.g. function_name__variable_name.
-
-+ Global variables:
-
- + Variable name MUST contain only upper case letters, digits and underscores.
-
- + They SHOULD NOT be exported, unless external commands need them
- (e.g. PYTHONPATH).
-
- + TODO: Propose a strict naming convention, or a central document
- of all used global variables, to prevent contributors
- from causing variable name conflicts.
-
- + Code MUST document if a function (or its inner call)
- reads a global variable.
-
- + Code MUST document if a function (or its inner call)
- sets or rewrites a global variable.
-
- + If a function "wants to return a value", it SHOULD be implemented
- as the function setting (or rewriting) a global variable,
- and the call sites reading that variable.
-
- + If a function "wants to accept an argument", it IS RECOMMENDED
- to be implemented as the call sites setting or rewriting global variables,
- and the function reading that variables.
- But see below for direct arguments.
-
-+ Code MUST use curly brackets when referencing variables,
- e.g. "${my_variable}".
-
- + It makes related constructs (such as ${name:-default}) less surprising.
-
- + It looks more similar to Robot Framework variables (which is good).
-
-Arguments
-~~~~~~~~~
-
-Bash scripts and functions MAY accept arguments, named "${1}", "${2}" and so on.
-As a whole available via "$@".
-You MAY use "shift" command to consume an argument.
-
-Contexts
-````````
-
-Functions never have access to parent arguments, but they can read and write
-variables set or read by parent contexts.
-
-Arguments or variables
-``````````````````````
-
-+ Both arguments and global variables MAY act as an input.
-
-+ In general, if the caller is likely to supply the value already placed
- in a global variable of known name, it is RECOMMENDED
- to use that global variable.
-
-+ Construct "${NAME:-value}" can be used equally well for arguments,
- so default values are possible for both input methods.
-
-+ Arguments are positional, so there are restrictions on which input
- is optional.
-
-+ Functions SHOULD either look at arguments (possibly also
- reading global variables to use as defaults), or look at variables only.
-
-+ Code MUST NOT rely on "${0}", it SHOULD use "${BASH_SOURCE[0]}" instead
- (and apply "readlink -e") to get the current block location.
-
-+ For entry scripts, it is RECOMMENDED to use standard parsing capabilities.
-
- + For most Linux distros, "getopt" is RECOMMENDED.
-
-Working directory handling
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-+ Functions SHOULD act correctly without neither assuming
- what the currect working directory is, nor changing it.
-
- + That is why global variables and arguments SHOULD contain
- (normalized) full paths.
-
- + Motivation: Different call sites MAY rely on different working directories.
-
-+ A function MAY return (also with nonzero exit code) when working directory
- is changed.
-
- + In this case the function documentation MUST clearly state where (and when)
- is the working directory changed.
-
- + Exception: Functions with undocumented exit code.
-
- + Those functions MUST return nonzero code only on "set -e" or "die".
-
- + Note that both "set -e" and "die" by default result in exit of the whole
- entry script, but the caller MAY have altered that behavior
- (by registering ERR trap, or redefining die function).
-
- + Any callers which use "set +e" or "|| true" MUST make sure
- their (and their caller ancestors') assumption on working directory
- are not affected.
-
- + Such callers SHOULD do that by restoring the original working directory
- either in their code,
-
- + or contributors SHOULD do such restoration in the function code,
- (see below) if that is more convenient.
-
- + Motivation: Callers MAY rely on this side effect to simplify their logic.
-
-+ A function MAY assume a particular directory is already set
- as the working directory (to save space).
-
- + In this case function documentation MUST clearly state what the assumed
- working directory is.
-
- + Motivation: Callers MAY call several functions with common
- directory of interest.
-
- + Example: Several dowload actions to execute in sequence,
- implemented as functions assuming ${DOWNLOAD_DIR}
- is the working directory.
-
-+ A function MAY change the working directory transiently,
- before restoring it back before return.
-
- + Such functions SHOULD use command "pushd" to change the working directory.
-
- + Such functions SHOULD use "trap 'trap - RETURN; popd' RETURN"
- imediately after the pushd.
-
- + In that case, the "trap - RETURN" part MUST be included,
- to restore any trap set by ancestor.
-
- + Functions MAY call "trap - RETURN; popd" exlicitly.
-
- + Such functions MUST NOT call another pushd (before an explicit popd),
- as traps do not stack within a function.
-
-+ If entry scripts also use traps to restore working directory (or other state),
- they SHOULD use EXIT traps instead.
-
- + That is because "exit" command, as well as the default behavior
- of "die" or "set -e" cause direct exit (without skipping function returns).
-
-Function size
-~~~~~~~~~~~~~
-
-+ In general, code SHOULD follow reasoning similar to how pylint
- limits code complexity.
-
-+ It is RECOMMENDED to have functions somewhat simpler than Python functions,
- as Bash is generally more verbose and less readable.
-
-+ If code contains comments in order to partition a block
- into sub-blocks, the sub-blocks SHOULD be moved into separate functions.
-
- + Unless the sub-blocks are essentially one-liners,
- not readable just because external commands do not have
- obvious enough parameters. Use common sense.
-
-Documentation
-~~~~~~~~~~~~~
-
-+ The library path and filename is visible from source sites. It SHOULD be
- descriptive enough, so reader do not need to look inside to determine
- how and why is the sourced file used.
-
- + If code would use several functions with similar names,
- it is RECOMMENDED to create a (well-named) sub-library for them.
-
- + Code MAY create deep library trees if needed, it SHOULD store
- common path prefixes into global variables to make sourcing easier.
-
- + Contributors, look at other files in the subdirectory. You SHOULD
- improve their filenames when adding-removing other filenames.
-
- + Library files SHOULD NOT have executable flag set.
-
- + Library files SHOULD have an extension .sh (or perhaps .bash).
-
- + It is RECOMMENDED for entry scripts to also have executable flag unset
- and have .sh extension.
-
-+ Each entry script MUST start with a shebang.
-
- + "#!/bin/usr/env bash" is RECOMMENDED.
-
- + Code SHOULD put an empty line after shebang.
-
- + Library files SHOULD NOT contain a shebang, as "source" is the primary
- method to include them.
-
-+ Following that, there SHOULD be a block of comment lines with copyright.
-
- + It is a boilerplate, but human eyes are good at ignoring it.
-
- + Overhead for git is also negligible.
-
-+ Following that, there MUST be "set -exuo pipefail".
-
- + It acts as an anchor for humans to start paying attention.
-
-Then it depends on script type.
-
-Library documentation
-`````````````````````
-
-+ Following "set -exuo pipefail" SHALL come the "import part" documentation.
-
-+ Then SHALL be the import code
- ("source" commands and a bare minimum they need).
-
-+ Then SHALL be the function definitions, and inside:
-
- + The body SHALL sart with the function documentation explaining API contract.
- Similar to Robot [Documentation] or Python function-level docstring.
-
- + See below.
-
- + Following that SHALL be various top-level TODOs and FIXMEs.
-
- + TODO: Document (in an appropriate place) how TODOs differ from FIXMEs.
-
- + "set -exuo pipefail" SHALL be the first executable line
- in the function body, except functions which legitimely need
- different flags. Those SHALL also start with appropriate "set" command(s).
-
- + Lines containing code itself SHALL follow.
-
- + "Code itself" SHALL include comment lines
- explaining any non-obvious logic.
-
- + There SHALL be two empty lines between function definitions.
-
-More details on function documentation:
-
-Generally, code SHOULD use comments to explain anything
-not obvious from the funtion name.
-
-+ Function documentation SHOULD start with short description of function
- operation or motivation, but only if not obvious from function name.
-
-+ Documentation SHOULD continue with listing any non-obvious side effect:
-
- + Documentation MUST list all read global variables.
-
- + Documentation SHOULD include descriptions of semantics
- of global variable values.
- It is RECOMMENDED to mention which function is supposed to set them.
-
- + The "include descriptions" part SHOULD apply to other items as well.
-
- + Documentation MUST list all global variables set, unset, reset,
- or otherwise updated.
-
- + It is RECOMMENDED to list all hardcoded values used in code.
-
- + Not critical, but can hint at future improvements.
-
- + Documentation MUST list all files or directories read
- (so caller can make sure their content is ready).
-
- + Documentation MUST list all files or directories updated
- (created, deleted, emptied, otherwise edited).
-
- + Documentation SHOULD list all functions called (so reader can look them up).
-
- + Documentation SHOULD mention where are the functions defined,
- if not in the current file.
-
- + Documentation SHOULD list all external commands executed.
-
- + Because their behavior can change "out of bounds", meaning
- the contributor changing the implementation of the extrenal command
- can be unaware of this particular function interested in its side effects.
-
- + Documentation SHOULD explain exit code (coming from
- the last executed command).
-
- + Usually, most functions SHOULD be "pass or die",
- but some callers MAY be interested in nonzero exit codes
- without using global variables to store them.
-
- + Remember, "exit 1" ends not only the function, but all scripts
- in the source chain, so code MUST NOT use it for other purposes.
-
- + Code SHOULD call "die" function instead. This way the caller can
- redefine that function, if there is a good reason for not exiting
- on function failure.
-
- + TODO: Programs installed, services started, URLs downloaded from, ...
-
- + TODO: Add more items when you spot them.
-
- + TODO: Is the current order recommended?
-
-Entry script documentation
-``````````````````````````
-
-+ After "set -exuo pipefail", high-level description SHALL come.
-
- + Then TODOs and FIXMEs SHALL be placed (if any).
-
- + Entry scripts are rarely reused, so detailed side effects
- are OPTIONAL to document.
-
- + But code SHOULD document the primary side effects.
-
-+ Then SHALL come few commented lines to import the library with "die" function.
-
-+ Then block of "source" commands for sourcing other libraries needed SHALL be.
-
- + In alphabetical order, any "special" library SHOULD be
- in the previous block (for "die").
-
-+ Then block os commands processing arguments SHOULD be (if needed).
-
-+ Then SHALL come block of function calls (with parameters as needed).
-
-Other general recommendations
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-+ Code SHOULD NOT not repeat itself, even in documentation:
-
- + For hardcoded values, a general description SHOULD be written
- (instead of copying the value), so when someone edits the value
- in the code, the description still applies.
-
- + If affected directory name is taken from a global variable,
- documentation MAY distribute the directory description
- over the two items.
-
- + If most of side effects come from an inner call,
- documentation MAY point the reader to the documentation
- of the called function (instead of listing all the side effects).
-
- + TODO: Composite functions can have large effects. Should we require
- intermediate functions to actively hide them whenever possible?
-
-+ But documentation SHOULD repeat it if the information crosses functions.
-
- + Item description MUST NOT be skipped just because the reader
- should have read parent/child documentation already.
-
- + Frequently it is RECOMMENDED to copy&paste item descriptions
- between functions.
-
- + But sometimes it is RECOMMENDED to vary the descriptions. For example:
-
- + A global variable setter MAY document how does it figure out the value
- (without caring about what it will be used for by other functions).
-
- + A global variable reader MAY document how does it use the value
- (without caring about how has it been figured out by the setter).
-
-+ When possible, Bash code SHOULD be made to look like Python
- (or Robot Framework). Those are three primary languages CSIT code relies on,
- so it is nicer for the readers to see similar expressions when possible.
- Examples:
-
- + Code MUST use indentation, 1 level is 4 spaces.
-
- + Code SHOULD use "if" instead of "&&" constructs.
-
- + For comparisons, code SHOULD use operators such as "!=" (needs "[[").
-
-+ Code MUST NOT use more than 80 characters per line.
-
- + If long external command invocations are needed,
- code SHOULD use array variables to shorten them.
-
- + If long strings (or arrays) are needed, code SHOULD use "+=" operator
- to grow the value over multiple lines.
-
- + If "|| die" does not fit with the command, code SHOULD use curly braces:
-
- + Current line has "|| {",
-
- + Next line has the die commands (indented one level deeper),
-
- + Final line closes with "}" at original intent level.
-
- + TODO: Recommend what to do with other constructs.
-
- + For example multiple piped commands.
-
- + No, "eval" is too unsafe to use.
diff --git a/docs/config.toml b/docs/config.toml
new file mode 100644
index 0000000000..d8455609d2
--- /dev/null
+++ b/docs/config.toml
@@ -0,0 +1,58 @@
+baseURL = 'https://csit.fd.io/cdocs'
+languageCode = 'en-us'
+title = 'CSIT-DOCS'
+
+publishDir = '../csit.infra.dash/app/cdocs'
+
+# (Optional) Set this to true if you use capital letters in file names
+disablePathToLower = true
+
+# (Optional) Set this to true to enable 'Last Modified by' date and git author
+# information on 'doc' type pages.
+enableGitInfo = false
+
+# (Optional) Theme is intended for documentation use, therefore it doesn't render taxonomy.
+# You can remove related files with config below
+disableKinds = ['taxonomy', 'taxonomyTerm']
+
+[module]
+[[module.imports]]
+path = 'github.com/alex-shpak/hugo-book'
+
+# Needed for mermaid/katex shortcodes
+[markup]
+[markup.goldmark.renderer]
+ unsafe = true
+
+[markup.tableOfContents]
+ startLevel = 1
+
+[params]
+ # (Optional, default light) Sets color theme: light, dark or auto.
+ # Theme 'auto' switches between dark and light modes based on browser/os preferences
+ BookTheme = 'auto'
+
+ # (Optional, default true) Controls table of contents visibility on right side of pages.
+ # Start and end levels can be controlled with markup.tableOfContents setting.
+ # You can also specify this parameter per page in front matter.
+ BookToC = true
+
+ # (Optional, default docs) Specify section of content to render as menu
+ # You can also set value to "*" to render all sections to menu
+ BookSection = '*'
+
+ # (Optional, default January 2, 2006) Configure the date format used on the pages
+ # - In git information
+ # - In blog posts
+ BookDateFormat = 'Jan 2, 2006'
+
+ # (Optional, default true) Enables search function with flexsearch,
+ # Index is built on fly, therefore it might slowdown your website.
+ # Configuration for indexing can be adjusted in i18n folder per language.
+ BookSearch = true
+
+ # (Optional, default true) Enables comments template on pages
+ # By default partials/docs/comments.html includes Disqus template
+ # See https://gohugo.io/content-management/comments/#configure-disqus
+ # Can be overwritten by same param in page frontmatter
+ BookComments = false
diff --git a/docs/content/_index.md b/docs/content/_index.md
new file mode 100644
index 0000000000..f2736d5a57
--- /dev/null
+++ b/docs/content/_index.md
@@ -0,0 +1,49 @@
+---
+title: "FD.io CSIT"
+type: "docs"
+---
+
+# Documentation Structure
+
+1. OVERVIEW: General introduction to CSIT Performance Dashboard and CSIT itself.
+ - **[CSIT-Dash]({{< relref "/overview/c_dash/design" >}})**: The design and
+ the structure of CSIT-Dash dashboard.
+ - **[CSIT]({{< relref "/overview/csit/" >}})**: The design of the
+ [FD.io](https://fd.io/) CSIT system, and the description of the test
+ scenarios, test naming and test tags.
+2. METHODOLOGY
+ - **[Overview]({{< relref "/methodology/overview/" >}})**: Terminology,
+ per-thread resources, multi-core speedup, VPP forwarding modes and DUT
+ state considerations.
+ - **[Measurement]({{< relref "/methodology/measurements/" >}})**: Data plane
+ throughput, packet latency and the telemetry.
+ - **[Test]({{< relref "/methodology/test/" >}})**: Methodology of all tests
+ used in CSIT.
+ - **[Trending]({{< relref "/methodology/trending/" >}})**: A high-level
+ design of a system for continuous performance measuring, trending and
+ change detection for FD.io VPP SW data plane (and other performance tests
+ run within CSIT sub-project).
+ - **[Per-patch Testing]({{< relref "/methodology/per_patch_testing" >}})**:
+ A methodology similar to trending analysis is used for comparing
+ performance before a DUT code change is merged.
+3. RELEASE NOTES: Performance tests executed in physical FD.io testbeds.
+ - **[{{< release_csit >}}]({{< relref "/release_notes/current/" >}})**: The
+ release notes of the current CSIT release.
+ - **[Previous]({{< relref "/release_notes/previous/" >}})**: Archived release
+ notes for the past releases.
+4. INFRASTRUCTURE
+ - **[FD.io DC Vexxhost Inventory]({{< relref "/infrastructure/fdio_dc_vexxhost_inventory" >}})**:
+ Physical testbeds location.
+ - **[FD.io DC Testbed Specifications]({{< relref "/infrastructure/fdio_dc_testbed_specifications" >}})**:
+ Specification of the physical testbed infrastructure.
+ - **[FD.io DC Testbed Configuration]({{< relref "/infrastructure/testbed_configuration/" >}})**:
+ Configuration of the physical testbed infrastructure.
+ - **[FD.io CSIT Testbed Versioning]({{< relref "/infrastructure/fdio_csit_testbed_versioning" >}})**:
+ CSIT test environment versioning to track modifications of the test
+ environment.
+ - **[FD.io CSIT Logical Topologies]({{< relref "/infrastructure/fdio_csit_logical_topologies" >}})**:
+ CSIT performance tests are executed on physical testbeds. Based on the
+ packet path thru server SUTs, three distinct logical topology types are
+ used for VPP DUT data plane testing.
+ - **[VPP Startup Settings]({{< relref "/infrastructure/vpp_startup_settings" >}})**:
+ List of common settings applied to all tests and test dependent settings. \ No newline at end of file
diff --git a/docs/content/infrastructure/_index.md b/docs/content/infrastructure/_index.md
new file mode 100644
index 0000000000..2402726c95
--- /dev/null
+++ b/docs/content/infrastructure/_index.md
@@ -0,0 +1,6 @@
+---
+bookCollapseSection: false
+bookFlatSection: true
+title: "Infrastructure"
+weight: 4
+--- \ No newline at end of file
diff --git a/docs/content/infrastructure/fdio_csit_logical_topologies.md b/docs/content/infrastructure/fdio_csit_logical_topologies.md
new file mode 100644
index 0000000000..4e9c22b357
--- /dev/null
+++ b/docs/content/infrastructure/fdio_csit_logical_topologies.md
@@ -0,0 +1,138 @@
+---
+title: "FD.io CSIT Logical Topologies"
+weight: 5
+---
+
+# FD.io CSIT Logical Topologies
+
+CSIT VPP performance tests are executed on physical testbeds. Based on the
+packet path thru server SUTs, three distinct logical topology types are used
+for VPP DUT data plane testing:
+
+1. NIC-to-NIC switching topologies.
+2. VM service switching topologies.
+3. Container service switching topologies.
+
+## NIC-to-NIC Switching
+
+The simplest logical topology for software data plane application like
+VPP is NIC-to-NIC switching. Tested topologies for 2-Node and 3-Node
+testbeds are shown in figures below.
+
+{{< figure src="/cdocs/logical-2n-nic2nic.svg" >}}
+
+{{< figure src="/cdocs/logical-3n-nic2nic.svg" >}}
+
+Server Systems Under Test (SUT) run VPP application in Linux user-mode
+as a Device Under Test (DUT). Server Traffic Generator (TG) runs T-Rex
+application. Physical connectivity between SUTs and TG is provided using
+different drivers and NIC models that need to be tested for performance
+(packet/bandwidth throughput and latency).
+
+From SUT and DUT perspectives, all performance tests involve forwarding
+packets between two (or more) physical Ethernet ports (10GE, 25GE, 40GE,
+100GE). In most cases both physical ports on SUT are located on the same
+NIC. The only exceptions are link bonding and 100GE tests. In the latter
+case only one port per NIC can be driven at linerate due to PCIe Gen3
+x16 slot bandwidth limiations. 100GE NICs are not supported in PCIe Gen3
+x8 slots.
+
+Note that reported VPP DUT performance results are specific to the SUTs
+tested. SUTs with other processors than the ones used in FD.io lab are
+likely to yield different results. A good rule of thumb, that can be
+applied to estimate VPP packet thoughput for NIC-to-NIC switching
+topology, is to expect the forwarding performance to be proportional to
+processor core frequency for the same processor architecture, assuming
+processor is the only limiting factor and all other SUT parameters are
+equivalent to FD.io CSIT environment.
+
+## VM Service Switching
+
+VM service switching topology test cases require VPP DUT to communicate
+with Virtual Machines (VMs) over vhost-user virtual interfaces.
+
+Two types of VM service topologies are tested:
+
+1. "Parallel" topology with packets flowing within SUT from NIC(s) via
+ VPP DUT to VM, back to VPP DUT, then out thru NIC(s).
+2. "Chained" topology (a.k.a. "Snake") with packets flowing within SUT
+ from NIC(s) via VPP DUT to VM, back to VPP DUT, then to the next VM,
+ back to VPP DUT and so on and so forth until the last VM in a chain,
+ then back to VPP DUT and out thru NIC(s).
+
+For each of the above topologies, VPP DUT is tested in a range of L2
+or IPv4/IPv6 configurations depending on the test suite. Sample VPP DUT
+"Chained" VM service topologies for 2-Node and 3-Node testbeds with each
+SUT running N of VM instances is shown in the figures below.
+
+{{< figure src="/cdocs/logical-2n-vm-vhost.svg" >}}
+
+{{< figure src="/cdocs/logical-3n-vm-vhost.svg" >}}
+
+In "Chained" VM topologies, packets are switched by VPP DUT multiple
+times: twice for a single VM, three times for two VMs, N+1 times for N
+VMs. Hence the external throughput rates measured by TG and listed in
+this report must be multiplied by N+1 to represent the actual VPP DUT
+aggregate packet forwarding rate.
+
+For "Parallel" service topology packets are always switched twice by VPP
+DUT per service chain.
+
+Note that reported VPP DUT performance results are specific to the SUTs
+tested. SUTs with other processor than the ones used in FD.io lab are
+likely to yield different results. Similarly to NIC-to-NIC switching
+topology, here one can also expect the forwarding performance to be
+proportional to processor core frequency for the same processor
+architecture, assuming processor is the only limiting factor. However
+due to much higher dependency on intensive memory operations in VM
+service chained topologies and sensitivity to Linux scheduler settings
+and behaviour, this estimation may not always yield good enough
+accuracy.
+
+## Container Service Switching
+
+Container service switching topology test cases require VPP DUT to
+communicate with Containers (Ctrs) over memif virtual interfaces.
+
+Three types of VM service topologies are tested in |csit-release|:
+
+1. "Parallel" topology with packets flowing within SUT from NIC(s) via
+ VPP DUT to Container, back to VPP DUT, then out thru NIC(s).
+2. "Chained" topology (a.k.a. "Snake") with packets flowing within SUT
+ from NIC(s) via VPP DUT to Container, back to VPP DUT, then to the
+ next Container, back to VPP DUT and so on and so forth until the
+ last Container in a chain, then back to VPP DUT and out thru NIC(s).
+3. "Horizontal" topology with packets flowing within SUT from NIC(s) via
+ VPP DUT to Container, then via "horizontal" memif to the next
+ Container, and so on and so forth until the last Container, then
+ back to VPP DUT and out thru NIC(s).
+
+For each of the above topologies, VPP DUT is tested in a range of L2
+or IPv4/IPv6 configurations depending on the test suite. Sample VPP DUT
+"Chained" Container service topologies for 2-Node and 3-Node testbeds
+with each SUT running N of Container instances is shown in the figures
+below.
+
+{{< figure src="/cdocs/logical-2n-container-memif.svg" >}}
+
+{{< figure src="/cdocs/logical-3n-container-memif.svg" >}}
+
+In "Chained" Container topologies, packets are switched by VPP DUT
+multiple times: twice for a single Container, three times for two
+Containers, N+1 times for N Containers. Hence the external throughput
+rates measured by TG and listed in this report must be multiplied by N+1
+to represent the actual VPP DUT aggregate packet forwarding rate.
+
+For a "Parallel" and "Horizontal" service topologies packets are always
+switched by VPP DUT twice per service chain.
+
+Note that reported VPP DUT performance results are specific to the SUTs
+tested. SUTs with other processor than the ones used in FD.io lab are
+likely to yield different results. Similarly to NIC-to-NIC switching
+topology, here one can also expect the forwarding performance to be
+proportional to processor core frequency for the same processor
+architecture, assuming processor is the only limiting factor. However
+due to much higher dependency on intensive memory operations in
+Container service chained topologies and sensitivity to Linux scheduler
+settings and behaviour, this estimation may not always yield good enough
+accuracy.
diff --git a/docs/content/infrastructure/fdio_csit_testbed_versioning.md b/docs/content/infrastructure/fdio_csit_testbed_versioning.md
new file mode 100644
index 0000000000..7f6cdfc51c
--- /dev/null
+++ b/docs/content/infrastructure/fdio_csit_testbed_versioning.md
@@ -0,0 +1,146 @@
+---
+bookToc: true
+title: "FD.io CSIT Testbed Versioning"
+weight: 4
+---
+
+# FD.io CSIT Testbed Versioning
+
+CSIT test environment versioning has been introduced to track modifications of
+the test environment.
+
+Any benchmark anomalies (progressions, regressions) between releases of a DUT
+application (e.g. VPP, DPDK), are determined by testing it in the same test
+environment, to avoid test environment changes clouding the picture.
+To beter distinguish impact of test environment changes, we also execute tests
+without any SUT (just with TRex TG sending packets over a link looping back to
+TG).
+
+A mirror approach is introduced to determine benchmarking anomalies due to the
+test environment change. This is achieved by testing the same DUT application
+version between releases of CSIT test system. This works under the assumption
+that the behaviour of the DUT is deterministic under the test conditions.
+
+CSIT test environment versioning scheme ensures integrity of all the test system
+components, including their HW revisions, compiled SW code versions and SW
+source code, within a specific CSIT version. Components included in the CSIT
+environment versioning include:
+
+- **HW** Server hardware firmware and BIOS (motherboard, processsor,
+ NIC(s), accelerator card(s)), tracked in CSIT branch.
+- **Linux** Server Linux OS version and configuration, tracked in CSIT
+ Reports.
+- **TRex** TRex Traffic Generator version, drivers and configuration
+ tracked in TG Settings.
+- **CSIT** CSIT framework code tracked in CSIT release branches.
+
+Following is the list of CSIT versions to date:
+
+- Ver. 14 associated with CSIT rls2402 branch (
+ [HW](https://git.fd.io/csit/tree/docs/content/infrastructure/testbed_configuration?h=rls2402),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2402)
+ ).
+ - Intel NIC 700/800 series firmware upgrade based on DPDK compatibility
+ matrix.
+ - Mellanox 556A/CX6-DX/MCX713106AS-VEAT series firmware upgrade based on DPDK
+ compatibility matrix.
+- Ver. 13 associated with CSIT rls2310 branch (
+ [HW](https://git.fd.io/csit/tree/docs/content/infrastructure/testbed_configuration?h=rls2310),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2310)
+ ).
+ - Intel NIC 700/800 series firmware upgrade based on DPDK compatibility
+ matrix.
+ - Mellanox 556A/CX6-DX/MCX713106AS-VEAT series firmware upgrade based on DPDK
+ compatibility matrix.
+- Ver. 12 associated with CSIT rls2306 branch (
+ [HW](https://git.fd.io/csit/tree/docs/content/infrastructure/testbed_configuration?h=rls2306),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2306)
+ ).
+ - Intel NIC 700/800 series firmware upgrade based on DPDK compatibility
+ matrix.
+ - Mellanox 556A/CX6-DX/MCX713106AS-VEAT series firmware upgrade based on DPDK
+ compatibility matrix.
+ - TRex version upgrade: increase from 3.00 to 3.03.
+- Ver. 11 associated with CSIT rls2210 branch (
+ [HW](https://git.fd.io/csit/tree/docs/lab?h=rls2210),
+ [Linux](https://s3-docs.fd.io/csit/rls2210/report/vpp_performance_tests/test_environment.html#sut-settings-linux),
+ [TRex](https://s3-docs.fd.io/csit/rls2210/report/vpp_performance_tests/test_environment.html#tg-settings-trex),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2210)
+ ).
+ - Intel NIC 700/800 series firmware upgrade based on DPDK compatibility
+ matrix.
+ - Mellanox 556A series firmware upgrade based on DPDK compatibility
+ matrix.
+ - Ubuntu upgrade from 20.04.2 LTS to 22.04.1 LTS.
+ - TRex version upgrade: increase from 2.97 to 3.00.
+- Ver. 10 associated with CSIT rls2206 branch (
+ [HW](https://git.fd.io/csit/tree/docs/lab?h=rls2206),
+ [Linux](https://s3-docs.fd.io/csit/rls2206/report/vpp_performance_tests/test_environment.html#sut-settings-linux),
+ [TRex](https://s3-docs.fd.io/csit/rls2206/report/vpp_performance_tests/test_environment.html#tg-settings-trex),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2206)
+ ).
+ - Intel NIC 700/800 series firmware upgrade based on DPDK compatibility
+ matrix.
+ - Mellanox 556A series firmware upgrade based on DPDK compatibility
+ matrix.
+ - Intel IceLake all core turbo frequency turned off. Current base frequency
+ is 2.6GHz.
+ - TRex version upgrade: increase from 2.88 to 2.97.
+- Ver. 9 associated with CSIT rls2202 branch (
+ [HW](https://git.fd.io/csit/tree/docs/lab?h=rls2202),
+ [Linux](https://s3-docs.fd.io/csit/rls2202/report/vpp_performance_tests/test_environment.html#sut-settings-linux),
+ [TRex](https://s3-docs.fd.io/csit/rls2202/report/vpp_performance_tests/test_environment.html#tg-settings-trex),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2202)
+ ).
+ - Intel NIC 700/800 series firmware upgrade based on DPDK compatibility
+ matrix.
+- Ver. 8 associated with CSIT rls2110 branch (
+ [HW](https://git.fd.io/csit/tree/docs/lab?h=rls2110),
+ [Linux](https://s3-docs.fd.io/csit/rls2110/report/vpp_performance_tests/test_environment.html#sut-settings-linux),
+ [TRex](https://s3-docs.fd.io/csit/rls2110/report/vpp_performance_tests/test_environment.html#tg-settings-trex),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2110)
+ ).
+ - Intel NIC 700/800 series firmware upgrade based on DPDK compatibility
+ matrix.
+- Ver. 7 associated with CSIT rls2106 branch (
+ [HW](https://git.fd.io/csit/tree/docs/lab?h=rls2106),
+ [Linux](https://s3-docs.fd.io/csit/rls2106/report/vpp_performance_tests/test_environment.html#sut-settings-linux),
+ [TRex](https://s3-docs.fd.io/csit/rls2106/report/vpp_performance_tests/test_environment.html#tg-settings-trex),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2106)
+ ).
+ - TRex version upgrade: increase from 2.86 to 2.88.
+ - Ubuntu upgrade from 18.04 LTS to 20.04.2 LTS.
+- Ver. 6 associated with CSIT rls2101 branch (
+ [HW](https://git.fd.io/csit/tree/docs/lab?h=rls2101),
+ [Linux](https://docs.fd.io/csit/rls2101/report/vpp_performance_tests/test_environment.html#sut-settings-linux),
+ [TRex](https://docs.fd.io/csit/rls2101/report/vpp_performance_tests/test_environment.html#tg-settings-trex),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2101)
+ ).
+ - The main change is TRex version upgrade: increase from 2.82 to 2.86.
+- Ver. 5 associated with CSIT rls2009 branch (
+ [HW](https://git.fd.io/csit/tree/docs/lab?h=rls2009),
+ [Linux](https://docs.fd.io/csit/rls2009/report/vpp_performance_tests/test_environment.html#sut-settings-linux),
+ [TRex](https://docs.fd.io/csit/rls2009/report/vpp_performance_tests/test_environment.html#tg-settings-trex),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2009)
+ ).
+ - The main change is TRex data-plane core resource adjustments:
+ [increase from 7 to 8 cores and pinning cores to interfaces](https://gerrit.fd.io/r/c/csit/+/28184)
+ for better TRex performance with symmetric traffic profiles.
+- Ver. 4 associated with CSIT rls2005 branch (
+ [HW](https://git.fd.io/csit/tree/docs/lab?h=rls2005),
+ [Linux](https://docs.fd.io/csit/rls2005/report/vpp_performance_tests/test_environment.html#sut-settings-linux),
+ [TRex](https://docs.fd.io/csit/rls2005/report/vpp_performance_tests/test_environment.html#tg-settings-trex),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2005)
+ ).
+- Ver. 2 associated with CSIT rls2001 branch (
+ [HW](https://git.fd.io/csit/tree/docs/lab?h=rls2001),
+ [Linux](https://docs.fd.io/csit/rls2001/report/vpp_performance_tests/test_environment.html#sut-settings-linux),
+ [TRex](https://docs.fd.io/csit/rls2001/report/vpp_performance_tests/test_environment.html#tg-settings-trex),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls2001)
+ ).
+- Ver. 1 associated with CSIT rls1908 branch (
+ [HW](https://git.fd.io/csit/tree/docs/lab?h=rls1908),
+ [Linux](https://docs.fd.io/csit/rls1908/report/vpp_performance_tests/test_environment.html#sut-settings-linux),
+ [TRex](https://docs.fd.io/csit/rls1908/report/vpp_performance_tests/test_environment.html#tg-settings-trex),
+ [CSIT](https://git.fd.io/csit/tree/?h=rls1908)
+ ).
diff --git a/docs/content/infrastructure/fdio_dc_testbed_specifications.md b/docs/content/infrastructure/fdio_dc_testbed_specifications.md
new file mode 100644
index 0000000000..da71124078
--- /dev/null
+++ b/docs/content/infrastructure/fdio_dc_testbed_specifications.md
@@ -0,0 +1,2053 @@
+---
+bookToc: true
+title: "FD.io DC Testbed Specifications"
+weight: 2
+---
+
+# FD.io DC Testbed Specifications
+
+## Purpose
+
+This note includes specification of the physical testbed infrastructure
+hosted by LFN FD.io CSIT project.
+
+## Server Management
+
+### Addressing
+
+Each server has a LOM (Lights-Out-Management e.g. SM IPMI) and a
+Management port, which are connected to two different VLANs.
+
+#### LOM (IPMI) VLAN
+ - Subnet: 10.30.50.0/24
+ - Gateway: 10.30.50.1
+ - Broadcast: 10.30.50.255
+ - DNS1: 199.204.44.24
+ - DNS2: 199.204.47.54
+
+#### Management VLAN
+ - Subnet: 10.30.51.0/24
+ - Gateway: 10.30.51.1
+ - Broadcast: 10.30.51.255
+ - DNS1: 199.204.44.24
+ - DNS2: 199.204.47.54
+
+To access these hosts, VPN connection is required.
+
+## Testbeds Overview
+
+### Summary List
+
+```
+ #. Type Purpose SUT TG #TB #SUT #TG #skx #ps1 #rng #tx2 #tsh #alt #clx #zn2 #icx #snr #spr #icxd
+ 1. 1-Node-Skylake nomad skx na 5 5 0 5 0 0 0 0 0 0 0 0 0 0 0
+ 2. 1-Node-Cascadelake nomad clx na 4 4 0 0 0 0 0 0 0 4 0 0 0 0 0
+ 3. 1-Node-AmpereAltra nomad alt na 4 4 0 0 0 0 0 0 4 0 0 0 0 0 0
+ 4. 2-Node-IxiaPS1L47 tcp skx ps1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+ 5. 2-Node-Cascadelake perf clx clx 3 3 3 0 0 0 0 0 0 6 0 0 0 0 0
+ 6. 2-Node-ThunderX2 perf tx2 skx 1 1 .5 .5 0 0 1 0 0 0 0 0 0 0 0
+ 7. 2-Node-Icelake perf icx icx 4 4 4 0 0 0 0 0 0 0 0 8 0 0 0
+ 8. 3-Node-Rangeley perf rng skx 1 3 1 0 0 2 0 0 0 0 0 0 0 0 0
+ 9. 3-Node-Taishan perf tsh skx 1 2 .5 .5 0 0 0 2 0 0 0 0 0 0 0
+10. 3-Node-Altra perf alt icx 1 2 1 0 0 0 0 0 2 0 0 1 0 0 0
+11. 2-Node-Zen2 perf zn2 zn2 1 1 1 0 0 0 0 0 0 0 2 0 0 0 0
+12. 3-Node-Icelake perf icx icx 2 4 2 0 0 0 0 0 0 0 0 6 0 0 0
+13. 3-Node-SnowRidge perf snr icx 1 2 .5 0 0 0 0 0 0 0 0 .5 2 0 0
+14. 2-Node-SapphireRapids perf spr spr 4 4 4 0 0 0 0 0 0 0 0 0 0 8 0
+15. 1-Node-SapphireRapids nomad spr na 4 4 0 0 0 0 0 0 0 0 0 0 0 4 0
+16. 3-Node-IcelakeD perf icxd icx 4 6 1 0 0 0 0 0 0 0 0 1 0 0 4
+ Totals: 39 48 19.5 7 1 2 1 2 6 10 2 16.5 2 12 4
+```
+
+### 1-Node-Skylake Xeon Intel (1n-skx)
+
+Each 1-Node-Skylake testbed includes one SUT (Server-Type-B2) with NIC
+ports connected back-to-back ([Server Types](#server-types)).
+Used for FD.io VPP_Device functional driver tests.
+
+### 1-Node-Altra Arm Ampere (1n-alt)
+
+Each 1-Node-Altra testbed includes one SUT (Server-Type-E25) with NIC
+ports connected back-to-back ([Server Types](#server-types)).
+Used for FD.io VPP_Device functional driver tests.
+
+### 1-Node-Skylake Xeon Intel (1n-spr)
+
+Each 1-Node-SapphireRapids testbed includes one SUT (Server-Type-H7) with NIC
+ports connected back-to-back ([Server Types](#server-types)).
+Used for FD.io VPP_Device functional driver tests.
+
+### 2-Node-IxiaPS1L47 Ixia PSOne L47 (2n-ps1)
+
+Each 2-Node-IxiaPS1L47 testbed includes one SUT (Server-Type-B1) and one
+TG (Ixia PSOne appliance) with 10GE interfaces connected in a 2-node
+circular topology ([Server Types](#server-types)).
+Used for FD.io TCP/IP and HTTP performance tests.
+
+### 2-Node-Cascadelake Xeon Intel (2n-clx)
+
+Each 2-Node-Cascadelake testbed includes one SUT (Server-Type-C2) and
+one TG (Server-Type-C3) connected in a 2-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+### 2-Node-Zen2 EPYC AMD (2n-zn2)
+
+Each 2-Node-Zen2 testbed includes one SUT (Server-Type-D1) and
+one TG (Server-Type-D2) connected in a 2-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+### 2-Node-ThunderX2 Arm Marvell (2x-tx2)
+
+Each 2-Node-ThunderX2 testbed includes one SUT (Server-Type-E22) and
+one TG (Server-Type-E31) connected in a 2-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+### 2-Node-Icelake Xeon Intel (2n-icx)
+
+Each 2-Node-Icelake testbed includes one SUT (Server-Type-F1) and
+one TG (Server-Type-F2) connected in a 2-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+### 3-Node-Rangeley Atom Testbeds
+
+Each 3-Node-Rangeley testbed includes two SUTs (Server-Type-B5) and one
+TG (Server-Type-2) connected in a 3-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+### 3-Node-TaiShan Arm Huawei (3n-tsh)
+
+Each 3-Node-TaiShan testbed includes two SUTs (Server-Type-E21) and one
+TG (Server-Type-E31) connected in a 3-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+### 3-Node-Altra Arm Ampere (3n-alt)
+
+Each 3-Node-Altra testbed includes two SUTs (Server-Type-E23) and one
+TG (Server-Type-E32) connected in a 3-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+### 3-Node-Icelake Xeon Intel (3n-icx)
+
+Each 3-Node-Icelake testbed includes two SUTs (Server-Type-F3) and one
+TG (Server-Type-F3) connected in a 3-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+### 3-Node-IcelakeD Xeon Intel (3n-icxd)
+
+Each 3-Node-IcelakeD testbed includes two SUTs (Server-Type-I1) and one numa of
+TG (Server-Type-F5) connected in a 3-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+### 3-Node-SnowRidge Atom Intel (3n-snr)
+
+Each 3-Node-SnowRidge testbed includes two SUTs (Server-Type-G1) and one
+TG (Server-Type-F5) connected in a 3-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+### 2-Node-SapphireRapids Xeon Intel (2n-spr)
+
+Each 2-Node-SapphireRapids testbed includes one SUT (Server-Type-H5) and
+one TG (Server-Type-H6) connected in a 2-node or 3-node circular topology
+([Server Types](#server-types)).
+Used for FD.io performance tests.
+
+
+## Testbed Naming Convention
+
+Following naming convention is used within this page to specify physical
+connectivity and wiring across defined CSIT testbeds:
+
+- **testbedname**: testbedN.
+- **hostname**:
+ - traffic-generator: tN-tgW.
+ - system-under-testX: tN-sutX.
+- **portnames**:
+ - tN-tgW-cY/pZ.
+ - tN-sutX-cY/pZ.
+- **where**:
+ - N - testbed number.
+ - tgW - server acts as traffic-generator with W index.
+ - sutX - server acts as system-under-test with X index.
+ - Y - PCIe slot number denoting a NIC card number within the host.
+ - Z - port number on the NIC card.
+
+## Server Types
+
+FD.io CSIT lab contains following server types:
+
+1. **Server-Type-B1**: Purpose - Skylake Xeon hosts for FD.io builds and data processing.
+ - Quantity: 2
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-7049GP-TRT.
+ - Motherboard: SuperMicro X11DPG-QT.
+ - Processors: 2* Intel Platinum 8180 2.5 GHz.
+ - RAM Memory: 16* 16GB DDR4-2666MHz.
+ - Disks: 2* 1.6TB 6G SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot2 18:00.xx: empty.
+ - PCIe Slot4 3b:00.xx: empty.
+ - PCIe Slot9 5e:00.xx: empty.
+ - Numa1: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot6 86:00.xx: empty.
+ - PCIe Slot8 af:00.xx: empty.
+ - PCIe Slot10 d8:00.xx: empty.
+
+2. **Server-Type-B2**: Purpose - Skylake Xeon SUT for FD.io VPP_Device functional tests.
+ - Quantity: 2.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 1-node topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-7049GP-TRT.
+ - Motherboard: SuperMicro X11DPG-QT.
+ - Processors: 2* Intel Platinum 8180 2.5 GHz.
+ - RAM Memory: 16* 16GB DDR4-2666MHz.
+ - Disks: 2* 1.6TB 6G SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
+ - PCIe Slot4 3b:00.xx: x710-4p10GE Intel.
+ - PCIe Slot9 5e:00.xx: empty.
+ - Numa1: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot6 86:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot8 af:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot10 d8:00.xx: empty.
+
+3. **Server-Type-B7**: Purpose - Ixia PerfectStorm One Appliance TG for FD.io TCP/IP performance tests.
+ - Quantity: 1.
+ - Physical connectivity:
+ - Host management interface: 10/100/1000-BaseT.
+ - 8-port 10GE SFP+ integrated NIC.
+ - Main HW configuration:
+ - Chassis: PS10GE4NG.
+ - Motherboard: SuperMicro X11DPG-QT.
+ - Processors: Quad-Core, Intel Processor.
+ - HW accelerators: FPGA offload.
+ - RAM Memory: 64GB.
+ - Disks: 1 * 1 TB, Enterprise Class, High MTBF.
+ - Physical Interfaces: 4 * 10GE SFP+.
+ - Operating System: Native IxOS.
+ - Interface configuration:
+ - Port-1: 10GE SFP+.
+ - Port-2: 10GE SFP+.
+ - Port-3: 10GE SFP+.
+ - Port-4: 10GE SFP+.
+
+4. **Server-Type-B8**: Purpose - Skylake Xeon SUT for TCP/IP host stack tests.
+ - Quantity: 1.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-7049GP-TRT.
+ - Motherboard: SuperMicro X11DPG-QT.
+ - Processors: 2* Intel Platinum 8180 2.5 GHz.
+ - RAM Memory: 16* 16GB DDR4-2666MHz.
+ - Disks: 2* 1.6TB 6G SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
+ - PCIe Slot4 3b:00.xx: empty.
+ - PCIe Slot9 5e:00.xx: empty.
+ - Numa1: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot6 86:00.xx: empty.
+ - PCIe Slot8 af:00.xx: empty.
+ - PCIe Slot10 d8:00.xx: empty.
+
+5. **Server-Type-C2**: Purpose - Cascadelake Xeon SUT for FD.io performance testing.
+ - Quantity: 3
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-7049GP-TRT.
+ - Motherboard: SuperMicro X11DPG-QT.
+ - Processors: 2* Intel Gold 6252N 2.3 GHz.
+ - RAM Memory: 12* 16GB DDR4-2933.
+ - Disks: 2* 1.92TB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
+ - PCIe Slot4 3b:00.xx: xxv710-DA2-2p25GE Intel.
+ - PCIe Slot9 5e:00.xx: ConnectX5-2p100GE Mellanox.
+ - Numa1: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot6 86:00.xx: e810-2p100GE Intel.
+ - PCIe Slot8 af:00.xx: empty.
+ - PCIe Slot10 d8:00.xx: empty.
+
+6. **Server-Type-C3**: Purpose - Cascadelake Xeon TG for FD.io performance testing.
+ - Quantity: 3.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-7049GP-TRT.
+ - Motherboard: SuperMicro X11DPG-QT.
+ - Processors: 2* Intel Platinum 8280 2.7 GHz.
+ - RAM Memory: 12* 16GB DDR4-2933.
+ - Disks: 2* 1.92TB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
+ - PCIe Slot4 3b:00.xx: xxv710-DA2 2p25GE Intel.
+ - PCIe Slot9 5e:00.xx: ConnectX5-2p100GE Mellanox.
+ - Numa1: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot6 86:00.xx: ConnectX5-2p100GE Mellanox.
+ - PCIe Slot8 af:00.xx: ConnectX5-2p100GE Mellanox.
+ - PCIe Slot10 d8:00.xx: empty.
+
+7. **Server-Type-C4**: Purpose - Cascadelake Xeon Backend hosts for FD.io builds and data processing.
+ - Quantity: 4.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - no NIC ports, standalone setup.
+ - Main HW configuration:
+ - Chassis: SuperMicro 1029P-WTRT.
+ - Motherboard: SuperMicro X11DDW-NT.
+ - Processors: 2* Intel Platinum 8280 2.7 GHz.
+ - RAM Memory: 12* 16GB DDR4-2933.
+ - Disks: 4* 1.92TB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot2 18:00.xx: empty.
+ - PCIe Slot4 3b:00.xx: empty.
+ - PCIe Slot9 5e:00.xx: empty.
+ - Numa1: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot6 86:00.xx: empty.
+ - PCIe Slot8 af:00.xx: empty.
+ - PCIe Slot10 d8:00.xx: empty.
+
+8. **Server-Type-D1**: Purpose - Zen2 EPYC SUT for FD.io performance testing.
+ - Quantity: 1.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro AS-1114S-WTRT
+ - Processors: 1* AMD EPYC 7532 2.4 GHz.
+ - RAM Memory: 8* 32GB DDR4-2933.
+ - Disks: 1* 1TB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot1 01:00.xx: x710-4p10GE Intel.
+ - PCIe Slot2 41:00.xx: xxv710-da2-2p25GE Intel.
+ - PCIe Slot3 81:00.xx: mcx556a-edat ConnectX5-2p100GE Mellanox.
+
+9. **Server-Type-D2**: Purpose - Zen2 EPYC TG for FD.io performance testing.
+ - Quantity: 1.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro AS-1114S-WTRT
+ - Processors: 1* AMD EPYC 7532 2.4 GHz.
+ - RAM Memory: 8* 32GB DDR4-2933.
+ - Disks: 1* 1TB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot1 01:00.xx: mcx556a-edat ConnectX5-2p100GE Mellanox.
+ - PCIe Slot2 41:00.xx: x710-4p10GE Intel.
+ - PCIe Slot3 81:00.xx: xxv710-da2 2p25GE Intel.
+
+10. **Server-Type-E21**: Purpose - TaiShan Arm Huawei SUT for FD.io performance testing.
+ - Quantity: 2.
+ - Physical connectivity:
+ - IPMI(?) and host management ports.
+ - NIC ports connected into 3-node topology.
+ - Main HW configuration:
+ - Chassis: Huawei TaiShan 2280.
+ - Processors: 2* hip07-d05 ~ 32* Arm Cortex-A72
+ - RAM Memory: 8* 16GB DDR4-2400MT/s
+ - Disks: 1* 4TB SATA HDD
+ - NICs configuration:
+ - PCIe Slot4 e9:00.xx: connectx4-2p25GE Mellanox.
+ - PCIe Slot6 11:00.xx: x520-2p10GE Intel.
+
+11. **Server-Type-E22**: Purpose - ThunderX2 Arm Marvell SUT for FD.io performance testing.
+ - Quantity: 1.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node topologies.
+ - Main HW configuration:
+ - Chassis: Gigabyte R181-T90 1U
+ - Motherboard: MT91-FS1
+ - Processors: 2* ThunderX2 ARMv8 CN9975 2.0 GHz
+ - RAM Memory: 4* 32GB RDIMM
+ - Disks: 1* 480GB SSD Micron, 1* 1000GB HDD Seagate_25
+ - NICs configuration:
+ - Numa0:
+ - no cards
+ - Numa1:
+ - PCIe Slot18 91:00.xx: XL710-QDA2-2p40GE Intel.
+
+12. **Server-Type-E23**: Purpose - Altra Arm Ampere SUT for FD.io performance testing.
+ - Quantity: 2.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 3-node topologies.
+ - Main HW configuration:
+ - Chassis: WIWYNN Mt.Jade Server System B81.030Z1.0007 2U
+ - Motherboard: Mt.Jade Motherboard
+ - Processors: 2* Ampere(R) Altra(R) Q80-30 Processor (Neoverse N1)
+ - Processor Signature: Implementor 0x41, Variant 0x3, Architecture 15, Part 0xd0c, Revision 1
+ - RAM Memory: 16* 8GB DDR4-3200MT/s
+ - Disks: 2* 960GB SSD Samsung M.2 NVMe PM983
+ - NICs configuration:
+ - Numa0: (x16, x16 PCIe4.0 lanes)
+ - PCIe Slot1 0004:04:00.x: xl710-QDA2-2p40GE Intel.
+ - PCIe Slot8 0001:00:00.x: ConnectX6-2p100GE Mellanox.
+ - Numa1:
+ - no cards.
+
+13. **Server-Type-E24**: Purpose - Altra Arm Ampere for FD.io build.
+ - Quantity: 2.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - Main HW configuration:
+ - Chassis: Gigabyte R152-P30-00 1U
+ - Motherboard: MP32-AR1-00
+ - Processors: 1* Ampere(R) Altra(R) Q80-30 Processor (Neoverse N1)
+ - Processor Signature: Implementor 0x0a, Variant 0x1, Architecture 6, Part 0x000, Revision 1
+ - RAM Memory: 12* 16GB DDR4-3200MT/s
+ - Disks: 1* 960GB SSD Samsung M.2 NVMe PM983
+
+14. **Server-Type-E25**: Purpose - Altra Arm Ampere SUT for FD.io VPP_Device functional tests.
+ - Quantity: 2.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 1-node topologies.
+ - Main HW configuration:
+ - Chassis: Gigabyte E252-P30-00 2U
+ - Motherboard: MP32-AR1-00
+ - Processors: 1* Ampere(R) Altra(R) M128-30 Processor (Neoverse N1)
+ - Processor Signature: Implementor 0x41 (Arm), Variant 0x3, Architecture 0xf, Part 0xd0c (neoverse-n1), Revision 0x1
+ - RAM Memory: 32* 32GB DDR4-3200MT/s
+ - Disks: 2* 960GB SSD Samsung M.2 NVMe PM9A3
+ - NICs configuration:
+ - Numa0:
+ - PCIe Slot0 0000:01:00.xx: XL710-QDA2-2p40GE Intel.
+ - PCIe Slot1 0001:01:00.xx: ConnectX6-2p100GE Mellanox.
+ - PCIe Slot2 0002:03:00.xx: ConnectX5-2p10/25GE Mellanox.
+ - Numa1:
+ - PCIe Slot3 0003:02:00.xx: XL710-QDA2-2p40GE Intel.
+ - PCIe Slot5 0005:02:00.xx: ConnectX5-2p10/25GE Mellanox.
+
+15. **Server-Type-E31**: Purpose - Skylake Xeon Shared TG for FD.io performance testing.
+ - Quantity: 1.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node and 3-node topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-7049GP-TRT.
+ - Motherboard: SuperMicro X11DPG-QT.
+ - Processors: 2* Intel Platinum 8180 2.5 GHz.
+ - RAM Memory: 16* 16GB DDR4-2666MHz.
+ - Disks: 2* 1.6TB 6G SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
+ - PCIe Slot4 3b:00.xx: xxv710-DA2 2p25GE Intel.
+ - PCIe Slot9 5e:00.xx: empty.
+ - Numa1: (x16, x16, x16 PCIe3.0 lanes)
+ - PCIe Slot6 86:00.xx: empty.
+ - PCIe Slot8 af:00.xx: xl710-QDA2-2p40GE Intel.
+ - PCIe Slot10 d8:00.xx: x710-4p10GE Intel.
+
+16. **Server-Type-E32**: Purpose - Icelake Xeon Shared TG for FD.io performance testing.
+ - Quantity: 1.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node and/or 3-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-740GP-TNRT.
+ - Motherboard: Super X12DPG-QT6.
+ - Processors: 2* Intel Platinum 8358 2.6 GHz.
+ - RAM Memory: 16* 16GB DDR4-3200.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot2 4b:00.xx: xxv710-DA2-2p25GE Intel.
+ - PCIe Slot4 31:00.xx: xl710-QDA2-2p40GE Intel.
+ - PCIe Slot9 ff:00.xx: empty.
+ - Numa1: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot6 ca:00.xx: empty.
+ - PCIe Slot8 b1:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot10 ff:00.xx: empty.
+
+17. **Server-Type-F1**: Purpose - Icelake Xeon SUT for FD.io performance testing.
+ - Quantity: 4.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node topology.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-740GP-TNRT.
+ - Motherboard: Super X12DPG-QT6.
+ - Processors: 2* Intel Platinum 8358 2.6 GHz.
+ - RAM Memory: 16* 16GB DDR4-3200.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot2 18:00.xx: xxv710-DA2-2p25GE Intel.
+ - PCIe Slot4 3b:00.xx: e810-XXVDA4-4p25GE Intel.
+ - PCIe Slot9 5e:00.xx: e810-2CQDA2-2p100GE Intel.
+ - Numa1: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot6 86:00.xx: empty.
+ - PCIe Slot8 af:00.xx: ConnectX7-2p200GE Mellanox.
+ - PCIe Slot10 d8:00.xx: empty.
+
+18. **Server-Type-F2**: Purpose - Icelake Xeon TG for FD.io performance testing.
+ - Quantity: 4.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-740GP-TNRT.
+ - Motherboard: Super X12DPG-QT6.
+ - Processors: 2* Intel Platinum 8358 2.6 GHz.
+ - RAM Memory: 16* 16GB DDR4-3200.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot2 18:00.xx: xxv710-DA2-2p25GE Intel.
+ - PCIe Slot4 3b:00.xx: e810-XXVDA4-4p25GE Intel.
+ - PCIe Slot9 5e:00.xx: e810-2CQDA2-2p100GE Intel.
+ - Numa1: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot6 86:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot8 af:00.xx: ConnectX7-2p200GE Mellanox.
+ - PCIe Slot10 d8:00.xx: empty.
+
+19. **Server-Type-F3**: Purpose - Icelake Xeon TG or SUT for FD.io performance testing.
+ - Quantity: 6.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 3-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-740GP-TNRT.
+ - Motherboard: Super X12DPG-QT6.
+ - Processors: 2* Intel Platinum 8358 2.6 GHz.
+ - RAM Memory: 16* 16GB DDR4-3200.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot2 18:00.xx: xxv710-DA2-2p25GE Intel.
+ - PCIe Slot4 3b:00.xx: e810-XXVDA4-4p25GE Intel.
+ - PCIe Slot9 5e:00.xx: e810-2CQDA2-2p100GE Intel.
+ - Numa1: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot6 86:00.xx: ConnectX6-2p100GE Mellanox.
+ - PCIe Slot8 af:00.xx: empty.
+ - PCIe Slot10 d8:00.xx: empty.
+
+20. **Server-Type-F4**: Purpose - Icelake Xeon TG for FD.io performance testing.
+ - Quantity: 3.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 3-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-740GP-TNRT.
+ - Motherboard: Super X12DPG-QT6.
+ - Processors: 2* Intel Platinum 8358 2.6 GHz.
+ - RAM Memory: 16* 16GB DDR4-3200.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot2 18:00.xx: xxv710-DA2-2p25GE Intel.
+ - PCIe Slot4 3b:00.xx: e810-XXVDA4-4p25GE Intel.
+ - PCIe Slot9 5e:00.xx: e810-2CQDA2-2p100GE Intel.
+ - Numa1: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot6 86:00.xx: ConnectX6-2p100GE Mellanox.
+ - PCIe Slot8 af:00.xx: empty.
+ - PCIe Slot10 d8:00.xx: empty.
+
+21. **Server-Type-F5**: Purpose - Icelake Xeon Shared TG for FD.io performance testing.
+ - Quantity: 2.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node and/or 3-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-740GP-TNRT.
+ - Motherboard: Super X12DPG-QT6.
+ - Processors: 2* Intel Platinum 8358 2.6 GHz.
+ - RAM Memory: 16* 16GB DDR4-3200.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot2 4b:00.xx: xxv710-DA2-2p25GE Intel.
+ - PCIe Slot4 31:00.xx: empty.
+ - PCIe Slot9 ff:00.xx: empty.
+ - Numa1: (x16, x16, x16 PCIe4.0 lanes)
+ - PCIe Slot6 ca:00.xx: e810-XXVDA4-4p25GE Intel.
+ - PCIe Slot8 b1:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot10 ff:00.xx: empty.
+
+22. **Server-Type-G1**: Purpose - SnowRidge Atom SUT for FD.io performance testing.
+ - Quantity: 2
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 3-node testbed topology.
+ - Main HW configuration:
+ - Chassis: Intel JACOBSVILLE SDP.
+ - Motherboard: Intel JACOBSVILLE E63448-400.
+ - Processors: 1* Intel Atom P5362B 2.2 GHz.
+ - RAM Memory: 2* 16GB DDR4-2933.
+ - Disks: ?* ? SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, PCIe3.0 lane)
+ - PCIe BuiltIn ec:00.xx: e810-XXVDA4-4p25GE Intel.
+
+23. **Server-Type-H1**: Purpose - SapphireRapids Xeon SUT for FD.io full system performance testing.
+ - Quantity: 1.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 3-numa-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-741GE-TNRT.
+ - Motherboard: Super X13DEG-QT-P.
+ - Processors: 2* Intel Platinum 8462Y+ 32 core 2.8 GHz 300W TDP.
+ - RAM Memory: 16* 32GB DDR5-4800.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot2 18:00.xx: ConnectX7-2p200GE Nvidia.
+ - PCIe Slot4 3b:00.xx: ConnectX7-2p200GE Nvidia.
+ - PCIe Slot10 5e:00.xx: ConnectX7-2p200GE Nvidia.
+ - Numa1: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot7 86:00.xx: ConnectX7-2p200GE Nvidia.
+ - PCIe Slot9 af:00.xx: ConnectX7-2p200GE Nvidia.
+ - PCIe Slot11 d8:00.xx: ConnectX7-2p200GE Nvidia.
+
+24. **Server-Type-H2**: Purpose - SapphireRapids Xeon TG for FD.io full system performance testing.
+ - Quantity: 1.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 3-numa-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-741GE-TNRT.
+ - Motherboard: Super X13DEG-QT-P.
+ - Processors: 2* Intel Platinum 8462Y+ 32 core 2.8 GHz 300W TDP.
+ - RAM Memory: 16* 32GB DDR5-4800.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot2 18:00.xx: ConnectX7-2p200GE Nvidia.
+ - PCIe Slot4 3b:00.xx: ConnectX7-2p200GE Nvidia.
+ - PCIe Slot10 5e:00.xx: ConnectX7-2p200GE Nvidia.
+ - Numa1: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot7 86:00.xx: ConnectX7-2p200GE Nvidia.
+ - PCIe Slot9 af:00.xx: ConnectX7-2p200GE Nvidia.
+ - PCIe Slot11 d8:00.xx: empty.
+
+25. **Server-Type-H3**: Purpose - SapphireRapids Xeon SUT for FD.io performance testing.
+ - Quantity: 1.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 3-numa-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-741GE-TNRT.
+ - Motherboard: Super X13DEG-QT-P.
+ - Processors: 2* Intel Platinum 8462Y+ 32 core 2.8 GHz 300W TDP.
+ - RAM Memory: 16* 32GB DDR5-4800.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot2 18:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot4 3b:00.xx: e810-XXVDA4-4p25GE Intel.
+ - PCIe Slot10 5e:00.xx: empty.
+ - Numa1: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot7 86:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot9 af:00.xx: e810-XXVDA4-4p25GE Intel.
+ - PCIe Slot11 d8:00.xx: empty.
+
+26. **Server-Type-H4**: Purpose - SapphireRapids Xeon TG for FD.io performance testing.
+ - Quantity: 1.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 3-numa-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-741GE-TNRT.
+ - Motherboard: Super X13DEG-QT-P.
+ - Processors: 2* Intel Platinum 8462Y+ 32 core 2.8 GHz 300W TDP.
+ - RAM Memory: 16* 32GB DDR5-4800.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot2 18:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot4 3b:00.xx: e810-XXVDA4-4p25GE Intel.
+ - PCIe Slot10 5e:00.xx: empty.
+ - Numa1: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot7 86:00.xx: empty.
+ - PCIe Slot9 af:00.xx: empty.
+ - PCIe Slot11 d8:00.xx: empty.
+
+27. **Server-Type-H5**: Purpose - SapphireRapids Xeon SUT for FD.io performance testing.
+ - Quantity: 2.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node testbed topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-741GE-TNRT.
+ - Motherboard: Super X13DEG-QT-P.
+ - Processors: 2* Intel Platinum 8462Y+ 32 core 2.8 GHz 300W TDP.
+ - RAM Memory: 16* 32GB DDR5-4800.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot2 3d:00.xx: MCX713106AS-VEAT ConnectX7-2p200GE Nvidia.
+ - PCIe Slot4 2c:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot10 17:00.xx: e810-XXVDA4-4p25GE Intel.
+ - Numa1: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot7 86:00.xx: empty.
+ - PCIe Slot9 af:00.xx: empty.
+ - PCIe Slot11 d8:00.xx: empty.
+
+28. **Server-Type-H6**: Purpose - SapphireRapids Xeon TG for FD.io performance testing.
+ - Quantity: 2.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 2-node testbed topologies plus loopbacks in Numa1 for TG self-test.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-741GE-TNRT.
+ - Motherboard: Super X13DEG-QT-P.
+ - Processors: 2* Intel Platinum 8462Y+ 32 core 2.8 GHz 300W TDP.
+ - RAM Memory: 16* 32GB DDR5-4800.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot2 18:00.xx: MCX713106AS-VEAT ConnectX7-2p200GE Nvidia.
+ - PCIe Slot4 3b:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot10 5e:00.xx: e810-XXVDA4-4p25GE Intel.
+ - Numa1: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot7 86:00.xx: MCX713106AS-VEAT ConnectX7-2p200GE Nvidia.
+ - PCIe Slot9 af:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot11 d8:00.xx: empty.
+
+29. **Server-Type-H7**: Purpose - SapphireRapids SUT for FD.io VPP_Device functional tests.
+ - Quantity: 2.
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 1-node topologies.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-741GE-TNRT.
+ - Motherboard: Super X13DEG-QT-P.
+ - Processors: 2* Intel Platinum 8462Y+ 32 core 2.8 GHz 300W TDP.
+ - RAM Memory: 16* 32GB DDR5-4800.
+ - Disks: 2* 960GB SATA SSD.
+ - NICs configuration:
+ - Numa0: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot2 18:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot4 3b:00.xx: e810-2CQDA2-2p100GE Intel.
+ - PCIe Slot10 5e:00.xx: empty.
+ - Numa1: (x16, x16, x16 PCIe5.0 lanes)
+ - PCIe Slot7 86:00.xx: empty.
+ - PCIe Slot9 af:00.xx: empty.
+ - PCIe Slot11 d8:00.xx: empty.
+
+30. **Server-Type-I1**: Purpose - IcelakeD Xeon SUT for FD.io performance testing.
+ - Quantity: 4
+ - Physical connectivity:
+ - IPMI and host management ports.
+ - NIC ports connected into 3-node testbed topology.
+ - Main HW configuration:
+ - Chassis: SuperMicro SYS-110D-20C-FRDN8TP.
+ - Motherboard: Super X12SDV-20C-SPT8F.
+ - Processors: 1* Intel Xeon D-2796NT.
+ - RAM Memory: 4* 32GB DDR4-3200 MEM-DR432MD-ER32.
+ - Disks: 1* 960GB SATA SSD HDS-25T0.
+ - NICs configuration:
+ - Numa0: (x16, PCIe4.0 lane)
+ - PCIe BuiltIn ??:00.xx: e810-XXVDA2-2p25GE Intel.
+
+## Testbeds Configuration
+
+### 1-Node-Skylake (1n-skx)
+
+```
+- SUT [Server-Type-B2]:
+ - testbedname: testbed11.
+ - hostname: s1-t11-sut1.
+ - IPMI IP: 10.30.50.47
+ - Host IP: 10.30.51.50
+ - portnames:
+ - s1-t11-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s1-t11-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s1-t11-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s1-t11-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s1-t11-sut1-c4/p1 - 10GE-port1 x710-4p10GE.
+ - s1-t11-sut1-c4/p2 - 10GE-port2 x710-4p10GE.
+ - s1-t11-sut1-c4/p3 - 10GE-port3 x710-4p10GE.
+ - s1-t11-sut1-c4/p4 - 10GE-port4 x710-4p10GE.
+ - s1-t11-sut1-c6/p1 - 100GE-port1 e810-2p100GE.
+ - s1-t11-sut1-c6/p2 - 100GE-port2 e810-2p100GE.
+ - s1-t11-sut1-c8/p1 - 100GE-port1 e810-2p100GE.
+ - s1-t11-sut1-c8/p2 - 100GE-port2 e810-2p100GE.
+- SUT [Server-Type-B2]:
+ - testbedname: testbed12.
+ - hostname: s2-t12-sut1.
+ - IPMI IP: 10.30.50.48
+ - Host IP: 10.30.51.51
+ - portnames:
+ - s2-t12-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s2-t12-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s2-t12-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s2-t12-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s2-t12-sut1-c4/p1 - 10GE-port1 x710-4p10GE.
+ - s2-t12-sut1-c4/p2 - 10GE-port2 x710-4p10GE.
+ - s2-t12-sut1-c4/p3 - 10GE-port3 x710-4p10GE.
+ - s2-t12-sut1-c4/p4 - 10GE-port4 x710-4p10GE.
+ - s2-t12-sut1-c6/p1 - 100GE-port1 e810-2p100GE.
+ - s2-t12-sut1-c6/p2 - 100GE-port2 e810-2p100GE.
+ - s2-t12-sut1-c8/p1 - 100GE-port1 e810-2p100GE.
+ - s2-t12-sut1-c8/p2 - 100GE-port2 e810-2p100GE.
+```
+
+### 1-Node-Altra (1n-alt)
+
+```
+- SUT [Server-Type-E25]:
+ - testbedname: testbed13
+ - hostname: s70-t13-sut1
+ - IPMI IP: 10.30.50.70
+ - Host IP: 10.30.51.70
+ - portnames:
+ - s70-t13-sut1-c0/p1 - 40GE-port1 XL710-QDA2-2p40GE.
+ - s70-t13-sut1-c0/p2 - 40GE-port2 XL710-QDA2-2p40GE.
+ - s70-t13-sut1-c1/p1 - 100GE-port1 ConnectX6-2p100GE Mellanox.
+ - s70-t13-sut1-c1/p2 - 100GE-port2 ConnectX6-2p100GE Mellanox.
+ - s70-t13-sut1-c2/p1 - 25GE-port1 ConnectX5-2p10/25GE Mellanox.
+ - s70-t13-sut1-c2/p2 - 25GE-port2 ConnectX5-2p10/25GE Mellanox.
+ - s70-t13-sut1-c3/p1 - 40GE-port1 XL710-QDA2-2p40GE.
+ - s70-t13-sut1-c3/p2 - 40GE-port2 XL710-QDA2-2p40GE.
+ - s70-t13-sut1-c5/p1 - 25GE-port1 ConnectX5-2p10/25GE Mellanox.
+ - s70-t13-sut1-c5/p2 - 25GE-port2 ConnectX5-2p10/25GE Mellanox.
+- SUT [Server-Type-E25]:
+ - testbedname: testbed14
+ - hostname: s71-t14-sut1
+ - IPMI IP: 10.30.50.71
+ - Host IP: 10.30.51.71
+ - portnames:
+ - s71-t14-sut1-c0/p1 - 40GE-port1 XL710-QDA2-2p40GE.
+ - s71-t14-sut1-c0/p2 - 40GE-port2 XL710-QDA2-2p40GE.
+ - s71-t14-sut1-c1/p1 - 100GE-port1 ConnectX6-2p100GE Mellanox.
+ - s71-t14-sut1-c1/p2 - 100GE-port2 ConnectX6-2p100GE Mellanox.
+ - s71-t14-sut1-c2/p1 - 25GE-port1 ConnectX5-2p10/25GE Mellanox.
+ - s71-t14-sut1-c2/p2 - 25GE-port2 ConnectX5-2p10/25GE Mellanox.
+ - s71-t14-sut1-c3/p1 - 40GE-port1 XL710-QDA2-2p40GE.
+ - s71-t14-sut1-c3/p2 - 40GE-port2 XL710-QDA2-2p40GE.
+ - s71-t14-sut1-c5/p1 - 25GE-port1 ConnectX5-2p10/25GE Mellanox.
+ - s71-t14-sut1-c5/p2 - 25GE-port2 ConnectX5-2p10/25GE Mellanox.
+```
+
+### 1-Node-SapphireRapids (1n-spr)
+
+```
+- SUT [Server-Type-H7]:
+ - testbedname: testbed15.
+ - hostname: s30-t15-sut1.
+ - IPMI IP: 10.30.50.30
+ - Host IP: 10.30.51.31
+ - portnames:
+ - s30-t15-sut1-c1/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s30-t15-sut1-c1/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s30-t15-sut1-c2/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s30-t15-sut1-c2/p2 - 100GE-port1 e810-2CQDA2-2p100GE.
+- SUT [Server-Type-H7]:
+ - testbedname: testbed16.
+ - hostname: s31-t16-sut1.
+ - IPMI IP: 10.30.50.31
+ - Host IP: 10.30.51.31
+ - portnames:
+ - s31-t16-sut1-c1/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s31-t16-sut1-c1/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s31-t16-sut1-c2/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s31-t16-sut1-c2/p2 - 100GE-port1 e810-2CQDA2-2p100GE.
+```
+
+### 2-Node-IxiaPS1L47 (2n-ps1)
+
+```
+- SUT [Server-Type-B8]:
+ - testbedname: testbed25.
+ - hostname: s25-t25-sut1.
+ - IPMI IP: 10.30.50.58
+ - Host IP: 10.30.51.61
+ - portnames:
+ - s25-t25-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s25-t25-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s25-t25-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s25-t25-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
+- TG [Server-Type-B7]:
+ - testbedname: testbed25.
+ - hostname: s26-t25-tg1.
+ - IPMI IP: 10.30.50.59
+ - Host IP: 10.30.51.62
+ - portnames:
+ - s26-t25-tg1-p1 - 10GE-port1.
+ - s26-t25-tg1-p2 - 10GE-port2.
+ - s26-t25-tg1-p3 - 10GE-port3.
+ - s26-t25-tg1-p4 - 10GE-port4.
+```
+
+### 2-Node-Cascadelake (2n-clx)
+
+{{< figure src="/cdocs/testbed-2n-clx.svg" >}}
+
+```
+- SUT [Server-Type-C2]:
+ - testbedname: testbed27.
+ - hostname: s33-t27-sut1.
+ - IPMI IP: 10.30.55.18
+ - Host IP: 10.32.8.18
+ - portnames:
+ - s33-t27-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s33-t27-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s33-t27-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s33-t27-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s33-t27-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s33-t27-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s33-t27-sut1-c6/p1 - 100GE-port1 e810-2p100GE.
+ - s33-t27-sut1-c6/p2 - 100GE-port2 e810-2p100GE.
+ - s33-t27-sut1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s33-t27-sut1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
+- TG [Server-Type-C3]:
+ - testbedname: testbed27.
+ - hostname: s34-t27-tg1.
+ - IPMI IP: 10.30.55.19
+ - Host IP: 10.32.8.19
+ - portnames:
+ - s34-t27-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s34-t27-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s34-t27-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s34-t27-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s34-t27-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s34-t27-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s34-t27-tg1-c6/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s34-t27-tg1-c6/p2 - 100GE-port2 ConnectX5-2p100GE.
+ - s38-t27-tg1-c8/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s38-t27-tg1-c8/p2 - 100GE-port2 ConnectX5-2p100GE.
+ - s34-t27-tg1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s34-t27-tg1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
+- SUT [Server-Type-C2]:
+ - testbedname: testbed28.
+ - hostname: s35-t28-sut1.
+ - IPMI IP: 10.30.55.20
+ - Host IP: 10.32.8.20
+ - portnames:
+ - s35-t28-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s35-t28-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s35-t28-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s35-t28-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s35-t28-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s35-t28-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s35-t28-sut1-c6/p1 - 100GE-port1 e810-2p100GE.
+ - s35-t28-sut1-c6/p2 - 100GE-port2 e810-2p100GE.
+ - s35-t28-sut1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s35-t28-sut1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
+- TG [Server-Type-C3]:
+ - testbedname: testbed28.
+ - hostname: s36-t28-tg1.
+ - IPMI IP: 10.30.55.21
+ - Host IP: 10.32.8.21
+ - portnames:
+ - s36-t28-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s36-t28-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s36-t28-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s36-t28-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s36-t28-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s36-t28-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s36-t28-tg1-c6/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s36-t28-tg1-c6/p2 - 100GE-port2 ConnectX5-2p100GE.
+ - s38-t28-tg1-c8/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s38-t28-tg1-c8/p2 - 100GE-port2 ConnectX5-2p100GE.
+ - s36-t28-tg1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s36-t28-tg1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
+- SUT [Server-Type-C2]:
+ - testbedname: testbed29.
+ - hostname: s37-t29-sut1.
+ - IPMI IP: 10.30.55.22
+ - Host IP: 10.32.8.22
+ - portnames:
+ - s37-t29-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s37-t29-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s37-t29-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s37-t29-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s37-t29-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s37-t29-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s37-t29-sut1-c6/p1 - 100GE-port1 e810-2p100GE.
+ - s37-t29-sut1-c6/p2 - 100GE-port2 e810-2p100GE.
+ - s37-t29-sut1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s37-t29-sut1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
+- TG [Server-Type-C3]:
+ - testbedname: testbed29.
+ - hostname: s38-t29-tg1.
+ - IPMI IP: 10.30.55.23
+ - Host IP: 10.32.8.23
+ - portnames:
+ - s38-t29-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s38-t29-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s38-t29-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s38-t29-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s38-t29-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s38-t29-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s38-t29-tg1-c6/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s38-t29-tg1-c6/p2 - 100GE-port2 ConnectX5-2p100GE.
+ - s38-t29-tg1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s38-t29-tg1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
+```
+
+### 2-Node-Zen2 (2n-zn2)
+
+{{< figure src="/cdocs/testbed-2n-zn2.svg" >}}
+
+```
+- SUT [Server-Type-D1]:
+ - testbedname: testbed210.
+ - hostname: s60-t210-sut1.
+ - IPMI IP: 10.30.55.24
+ - Host IP: 10.32.8.24
+ - portnames:
+ - s60-t210-sut1-c1/p1 - 10GE-port1 x710-4p10GE.
+ - s60-t210-sut1-c1/p2 - 10GE-port2 x710-4p10GE.
+ - s60-t210-sut1-c1/p3 - 10GE-port3 x710-4p10GE.
+ - s60-t210-sut1-c1/p4 - 10GE-port4 x710-4p10GE.
+ - s60-t210-sut1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s60-t210-sut1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s60-t210-sut1-c3/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s60-t210-sut1-c3/p2 - 100GE-port2 ConnectX5-2p100GE.
+- TG [Server-Type-D2]:
+ - testbedname: testbed210.
+ - hostname: s61-t210-tg1.
+ - IPMI IP: 10.30.55.25
+ - Host IP: 10.32.8.25
+ - portnames:
+ - s61-t210-tg1-c1/p1 - 100GE-port1 ConnectX5-2p100GE.
+ - s61-t210-tg1-c1/p2 - 100GE-port2 ConnectX5-2p100GE.
+ - s61-t210-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s61-t210-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s61-t210-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s61-t210-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s61-t210-tg1-c3/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s61-t210-tg1-c3/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+```
+
+### 2-Node-ThunderX2 (2x-tx2)
+
+{{< figure src="/cdocs/testbed-2n-tx2.svg" >}}
+
+```
+- SUT [Server-Type-E22]:
+ - testbedname: testbed211.
+ - hostname: s27-t211-sut1.
+ - IPMI IP: 10.30.50.69
+ - Host IP: 10.30.51.69
+ - portnames:
+ - s27-t211-sut1-c18/p1 - 40GE-port1 xl710-QDA2-2p40GE.
+ - s27-t211-sut1-c18/p2 - 40GE-port2 xl710-QDA2-2p40GE.
+- TG [Server-Type-E31]:
+ - testbedname: testbed33 and testbed211.
+ - hostname: s19-t33t211-tg1.
+ - IPMI IP: 10.30.50.46
+ - Host IP: 10.30.51.49
+ - portnames:
+ - s19-t33t211-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s19-t33t211-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s19-t33t211-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s19-t33t211-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s19-t33t211-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s19-t33t211-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s19-t33t211-tg1-c8/p1 - 40GE-port1 xl710-QDA2-2p40GE.
+ - s19-t33t211-tg1-c8/p2 - 40GE-port2 xl710-QDA2-2p40GE.
+ - s19-t33t211-tg1-c10/p1 - 10GE-port1 x710-4p10GE.
+ - s19-t33t211-tg1-c10/p2 - 10GE-port2 x710-4p10GE.
+ - s19-t33t211-tg1-c10/p3 - 10GE-port3 x710-4p10GE.
+ - s19-t33t211-tg1-c10/p4 - 10GE-port4 x710-4p10GE.
+```
+
+### 2-Node-Icelake (2n-icx)
+
+{{< figure src="/cdocs/testbed-2n-icx.svg" >}}
+
+```
+- SUT [Server-Type-F1]:
+ - testbedname: testbed212.
+ - hostname: s71-t212-sut1.
+ - IPMI IP: 10.30.50.81
+ - Host IP: 10.30.51.81
+ - portnames:
+ - s71-t212-sut1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s71-t212-sut1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s71-t212-sut1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s71-t212-sut1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s71-t212-sut1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s71-t212-sut1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s71-t212-sut1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s71-t212-sut1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s71-t212-sut1-c8/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s71-t212-sut1-c8/p2 - 200GE-port2 ConnectX7-2p200GE.
+- TG [Server-Type-F2]:
+ - testbedname: testbed212.
+ - hostname: s72-t212-tg1.
+ - IPMI IP: 10.30.50.82
+ - Host IP: 10.30.51.82
+ - portnames:
+ - s72-t212-tg1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s72-t212-tg1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s72-t212-tg1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s72-t212-tg1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s72-t212-tg1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s72-t212-tg1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s72-t212-tg1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s72-t212-tg1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s72-t212-tg1-c6/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s72-t212-tg1-c6/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s72-t212-tg1-c8/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s72-t212-tg1-c8/p2 - 200GE-port2 ConnectX7-2p200GE.
+- SUT [Server-Type-F1]:
+ - testbedname: testbed213.
+ - hostname: s83-t213-sut1.
+ - IPMI IP: 10.30.50.83
+ - Host IP: 10.30.51.83
+ - portnames:
+ - s83-t213-sut1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s83-t213-sut1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s83-t213-sut1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s83-t213-sut1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s83-t213-sut1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s83-t213-sut1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s83-t213-sut1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s83-t213-sut1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s83-t213-sut1-c8/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s83-t213-sut1-c8/p2 - 200GE-port2 ConnectX7-2p200GE.
+- TG [Server-Type-F2]:
+ - testbedname: testbed213.
+ - hostname: s84-t213-tg1.
+ - IPMI IP: 10.30.50.84
+ - Host IP: 10.30.51.84
+ - portnames:
+ - s84-t213-tg1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s84-t213-tg1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s84-t213-tg1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s84-t213-tg1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s84-t213-tg1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s84-t213-tg1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s84-t213-tg1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s84-t213-tg1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s84-t213-tg1-c6/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s84-t213-tg1-c6/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s84-t213-tg1-c8/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s84-t213-tg1-c8/p2 - 200GE-port2 ConnectX7-2p200GE.
+- SUT [Server-Type-F1]:
+ - testbedname: testbed214.
+ - hostname: s85-t214-sut1.
+ - IPMI IP: 10.30.50.85
+ - Host IP: 10.30.51.85
+ - portnames:
+ - s85-t214-sut1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s85-t214-sut1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s85-t214-sut1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s85-t214-sut1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s85-t214-sut1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s85-t214-sut1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s85-t214-sut1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s85-t214-sut1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s85-t214-sut1-c8/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s85-t214-sut1-c8/p2 - 200GE-port2 ConnectX7-2p200GE.
+- TG [Server-Type-F2]:
+ - testbedname: testbed214.
+ - hostname: s86-t214-tg1.
+ - IPMI IP: 10.30.50.86
+ - Host IP: 10.30.51.86
+ - portnames:
+ - s86-t214-tg1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s86-t214-tg1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s86-t214-tg1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s86-t214-tg1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s86-t214-tg1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s86-t214-tg1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s86-t214-tg1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s86-t214-tg1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s86-t214-tg1-c6/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s86-t214-tg1-c6/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s86-t214-tg1-c8/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s86-t214-tg1-c8/p2 - 200GE-port2 ConnectX7-2p200GE.
+- SUT [Server-Type-F1]:
+ - testbedname: testbed215.
+ - hostname: s87-t215-sut1.
+ - IPMI IP: 10.30.50.87
+ - Host IP: 10.30.51.87
+ - portnames:
+ - s87-t215-sut1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s87-t215-sut1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s87-t215-sut1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s87-t215-sut1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s87-t215-sut1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s87-t215-sut1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s87-t215-sut1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s87-t215-sut1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s87-t215-sut1-c8/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s87-t215-sut1-c8/p2 - 200GE-port2 ConnectX7-2p200GE.
+- TG [Server-Type-F2]:
+ - testbedname: testbed215.
+ - hostname: s88-t215-tg1.
+ - IPMI IP: 10.30.50.88
+ - Host IP: 10.30.51.88
+ - portnames:
+ - s88-t215-tg1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s88-t215-tg1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s88-t215-tg1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s88-t215-tg1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s88-t215-tg1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s88-t215-tg1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s88-t215-tg1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s88-t215-tg1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s88-t215-tg1-c6/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s88-t215-tg1-c6/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s88-t215-tg1-c8/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s88-t215-tg1-c8/p2 - 200GE-port2 ConnectX7-2p200GE.
+```
+
+### 3-Node-Taishan (3n-tsh)
+
+{{< figure src="/cdocs/testbed-3n-tsh.svg" >}}
+
+```
+- SUT [Server-Type-E21]:
+ - testbedname: testbed33.
+ - hostname: s17-t33-sut1.
+ - IPMI IP: 10.30.50.36
+ - Host IP: 10.30.51.36
+ - portnames:
+ - s17-t33-sut1-c6/p1 - 10GE-port1 x520-2p10GE.
+ - s17-t33-sut1-c6/p2 - 10GE-port2 x520-2p10GE.
+ - s17-t33-sut1-c4/p1 - 25GE-port1 cx4-2p25GE.
+ - s17-t33-sut1-c4/p2 - 25GE-port2 cx4-2p25GE.
+- SUT [Server-Type-E21]:
+ - testbedname: testbed33.
+ - hostname: s18-t33-sut2.
+ - IPMI IP: 10.30.50.37
+ - Host IP: 10.30.51.37
+ - portnames:
+ - s18-t33-sut2-c6/p1 - 10GE-port1 x520-2p10GE.
+ - s18-t33-sut2-c6/p2 - 10GE-port2 x520-2p10GE.
+ - s18-t33-sut2-c4/p1 - 25GE-port1 cx4-2p25GE.
+ - s18-t33-sut2-c4/p2 - 25GE-port2 cx4-2p25GE.
+- TG [Server-Type-E31]:
+ - testbedname: testbed33 and testbed211.
+ - hostname: s19-t33t211-tg1.
+ - IPMI IP: 10.30.50.46
+ - Host IP: 10.30.51.49
+ - portnames:
+ - s19-t33t211-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
+ - s19-t33t211-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
+ - s19-t33t211-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
+ - s19-t33t211-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
+ - s19-t33t211-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s19-t33t211-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s19-t33t211-tg1-c8/p1 - 40GE-port1 xl710-QDA2-2p40GE.
+ - s19-t33t211-tg1-c8/p2 - 40GE-port2 xl710-QDA2-2p40GE.
+ - s19-t33t211-tg1-c10/p1 - 10GE-port1 x710-4p10GE.
+ - s19-t33t211-tg1-c10/p2 - 10GE-port2 x710-4p10GE.
+ - s19-t33t211-tg1-c10/p3 - 10GE-port3 x710-4p10GE.
+ - s19-t33t211-tg1-c10/p4 - 10GE-port4 x710-4p10GE.
+```
+
+### 3-Node-Altra (3n-alt)
+
+{{< figure src="/cdocs/testbed-3n-alt.svg" >}}
+
+```
+- SUT [Server-Type-E23]:
+ - testbedname: testbed34.
+ - hostname: s62-t34-sut1.
+ - IPMI IP: 10.30.50.72
+ - Host IP: 10.30.51.72
+ - portnames:
+ - s62-t34-sut1-c1/p1 - 40GE-port1 xl710-QDA2-2p40GE.
+ - s62-t34-sut1-c1/p2 - 40GE-port2 xl710-QDA2-2p40GE.
+ - s62-t34-sut1-c8/p1 - 100GE-port1 ConnectX6-2p100GE.
+ - s62-t34-sut1-c8/p2 - 100GE-port2 ConnectX6-2p100GE.
+- SUT [Server-Type-E23]:
+ - testbedname: testbed34.
+ - hostname: s63-t34-sut2.
+ - IPMI IP: 10.30.50.73
+ - Host IP: 10.30.51.73
+ - portnames:
+ - s63-t34-sut2-c1/p1 - 40GE-port1 xl710-QDA2-2p40GE.
+ - s63-t34-sut2-c1/p2 - 40GE-port2 xl710-QDA2-2p40GE.
+ - s63-t34-sut2-c8/p1 - 100GE-port1 ConnectX6-2p100GE.
+ - s63-t34-sut2-c8/p2 - 100GE-port2 ConnectX6-2p100GE.
+- TG [Server-Type-E32]:
+ - testbedname: testbed34.
+ - hostname: s64-t34-tg1.
+ - IPMI IP: 10.30.50.74
+ - Host IP: 10.30.51.74
+ - portnames:
+ - s64-t34-tg1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s64-t34-tg1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s64-t34-tg1-c4/p1 - 40GE-port1 xl710-QDA2-2p40GE.
+ - s64-t34-tg1-c4/p2 - 40GE-port2 xl710-QDA2-2p40GE.
+ - s64-t34-tg1-c8/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s64-t34-tg1-c8/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+```
+
+### 3-Node-Icelake (3n-icx)
+
+{{< figure src="/cdocs/testbed-3n-icx.svg" >}}
+
+```
+- SUT1 [Server-Type-F3]:
+ - testbedname: testbed37.
+ - hostname: s65-t37-sut1.
+ - IPMI IP: 10.30.50.75
+ - Host IP: 10.30.51.75
+ - portnames:
+ - s65-t37-sut1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s65-t37-sut1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s65-t37-sut1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s65-t37-sut1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s65-t37-sut1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s65-t37-sut1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s65-t37-sut1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s65-t37-sut1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s65-t37-sut1-c10/p1 - 100GE-port1 ConnectX6-2p100GE.
+ - s65-t37-sut1-c10/p2 - 100GE-port2 ConnectX6-2p100GE.
+- SUT2 [Server-Type-F3]:
+ - testbedname: testbed37.
+ - hostname: s66-t37-sut2.
+ - IPMI IP: 10.30.50.76
+ - Host IP: 10.30.51.76
+ - portnames:
+ - s66-t37-sut2-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s66-t37-sut2-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s66-t37-sut2-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s66-t37-sut2-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s66-t37-sut2-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s66-t37-sut2-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s66-t37-sut2-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s66-t37-sut2-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s65-t37-sut1-c10/p1 - 100GE-port1 ConnectX6-2p100GE.
+ - s65-t37-sut1-c10/p2 - 100GE-port2 ConnectX6-2p100GE.
+- TG [Server-Type-F3]:
+ - testbedname: testbed37.
+ - hostname: s67-t37-tg1.
+ - IPMI IP: 10.30.50.77
+ - Host IP: 10.30.51.77
+ - portnames:
+ - s67-t37-tg1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s67-t37-tg1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s67-t37-tg1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s67-t37-tg1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s67-t37-tg1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s67-t37-tg1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s67-t37-tg1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s67-t37-tg1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s67-t37-tg1-c10/p1 - 100GE-port1 ConnectX6-2p100GE.
+ - s67-t37-tg1-c10/p2 - 100GE-port2 ConnectX6-2p100GE.
+- SUT1 [Server-Type-F3]:
+ - testbedname: testbed38.
+ - hostname: s78-t38-sut1.
+ - IPMI IP: 10.30.50.78
+ - Host IP: 10.30.51.78
+ - portnames:
+ - s78-t38-sut1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s78-t38-sut1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s78-t38-sut1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s78-t38-sut1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s78-t38-sut1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s78-t38-sut1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s78-t38-sut1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s78-t38-sut1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s78-t38-sut1-c10/p1 - 100GE-port1 ConnectX6-2p100GE.
+ - s78-t38-sut1-c10/p2 - 100GE-port2 ConnectX6-2p100GE.
+- SUT2 [Server-Type-F3]:
+ - testbedname: testbed38.
+ - hostname: s79-t38-sut2.
+ - IPMI IP: 10.30.50.79
+ - Host IP: 10.30.51.79
+ - portnames:
+ - s79-t38-sut2-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s79-t38-sut2-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s79-t38-sut2-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s79-t38-sut2-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s79-t38-sut2-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s79-t38-sut2-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s79-t38-sut2-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s79-t38-sut2-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s79-t38-sut2-c10/p1 - 100GE-port1 ConnectX6-2p100GE.
+ - s79-t38-sut2-c10/p2 - 100GE-port2 ConnectX6-2p100GE.
+- TG [Server-Type-F3]:
+ - testbedname: testbed38.
+ - hostname: s80-t38-tg1.
+ - IPMI IP: 10.30.50.80
+ - Host IP: 10.30.51.80
+ - portnames:
+ - s80-t38-tg1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
+ - s80-t38-tg1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
+ - s80-t38-tg1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s80-t38-tg1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s80-t38-tg1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s80-t38-tg1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s80-t38-tg1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s80-t38-tg1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s80-t38-tg1-c10/p1 - 100GE-port1 ConnectX6-2p100GE.
+ - s80-t38-tg1-c10/p2 - 100GE-port2 ConnectX6-2p100GE.
+```
+
+### 3-Node-SnowRidge (3n-snr)
+
+{{< figure src="/cdocs/testbed-3n-snr.svg" >}}
+
+```
+- ServerG1 [Server-Type-G1]:
+ - testbedname: testbed39.
+ - hostname: s93-t39-sut1.
+ - IPMI IP: 10.30.50.93
+ - Host IP: 10.30.51.93
+ - portnames:
+ - s93-t39-sut1-c1/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s93-t39-sut1-c1/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s93-t39-sut1-c1/p2 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s93-t39-sut1-c1/p2 - 25GE-port4 e810-XXVDA4-4p25GE.
+- ServerG1 [Server-Type-G1]:
+ - testbedname: testbed39.
+ - hostname: s94-t39-sut2.
+ - IPMI IP: 10.30.50.94
+ - Host IP: 10.30.51.94
+ - portnames:
+ - s94-t39-sut2-c1/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s94-t39-sut2-c1/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s94-t39-sut2-c1/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s94-t39-sut2-c1/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+- ServerF4 [Server-Type-F5]:
+ - testbedname: testbed39.
+ - hostname: s89-t39t310-tg1.
+ - IPMI IP: 10.30.50.89
+ - Host IP: 10.30.51.89
+ - portnames:
+ - s89-t39t310-tg1-c6/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s89-t39t310-tg1-c6/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s89-t39t310-tg1-c6/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s89-t39t310-tg1-c6/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+```
+
+### 2-Node-SapphireRapids (2n-spr)
+
+{{< figure src="/cdocs/testbed-2n-spr.svg" >}}
+
+```
+- SUT [Server-Type-H1]:
+ - testbedname: testbed21.
+ - hostname: s52-t21-sut1.
+ - IPMI IP: 10.30.50.52
+ - Host IP: 10.30.51.52
+ - portnames:
+ - s52-t21-sut1-c10/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s52-t21-sut1-c10/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s52-t21-sut1-c4/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s52-t21-sut1-c4/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s52-t21-sut1-c2/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s52-t21-sut1-c2/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s52-t21-sut1-c9/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s52-t21-sut1-c9/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s52-t21-sut1-c7/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s52-t21-sut1-c7/p2 - 200GE-port2 ConnectX7-2p200GE.
+- TG [Server-Type-H2]:
+ - testbedname: testbed21.
+ - hostname: s53-t21-tg1.
+ - IPMI IP: 10.30.50.53
+ - Host IP: 10.30.51.53
+ - portnames:
+ - s53-t21-tg1-c10/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s53-t21-tg1-c10/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s53-t21-tg1-c4/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s53-t21-tg1-c4/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s53-t21-tg1-c2/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s53-t21-tg1-c2/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s53-t21-tg1-c9/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s53-t21-tg1-c9/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s53-t21-tg1-c7/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s53-t21-tg1-c7/p2 - 200GE-port2 ConnectX7-2p200GE.
+- SUT [Server-Type-H3]:
+ - testbedname: testbed22.
+ - hostname: s54-t22-sut1.
+ - IPMI IP: 10.30.50.54
+ - Host IP: 10.30.51.54
+ - portnames:
+ - s54-t22-sut1-c2/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s54-t22-sut1-c2/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s54-t22-sut1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s54-t22-sut1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s54-t22-sut1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s54-t22-sut1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s54-t22-sut1-c7/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s54-t22-sut1-c7/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s54-t22-sut1-c9/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s54-t22-sut1-c9/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s54-t22-sut1-c9/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s54-t22-sut1-c9/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+- TG [Server-Type-H4]:
+ - testbedname: testbed22.
+ - hostname: s55-t22-tg1.
+ - IPMI IP: 10.30.50.55
+ - Host IP: 10.30.51.55
+ - portnames:
+ - s55-t22-tg1-c2/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s55-t22-tg1-c2/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s55-t22-tg1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s55-t22-tg1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s55-t22-tg1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s55-t22-tg1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+- SUT [Server-Type-H5]:
+ - testbedname: testbed23.
+ - hostname: s56-t23-sut1.
+ - IPMI IP: 10.30.50.56
+ - Host IP: 10.30.51.56
+ - portnames:
+ - s56-t23-sut1-c2/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s56-t23-sut1-c2/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s56-t23-sut1-c4/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s56-t23-sut1-c4/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s56-t23-sut1-c10/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s56-t23-sut1-c10/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s56-t23-sut1-c10/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s56-t23-sut1-c10/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+- TG [Server-Type-H6]:
+ - testbedname: testbed23.
+ - hostname: s57-t23-tg1.
+ - IPMI IP: 10.30.50.57
+ - Host IP: 10.30.51.57
+ - portnames:
+ - s57-t23-tg1-c2/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s57-t23-tg1-c2/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s57-t23-tg1-c4/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s57-t23-tg1-c4/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s57-t23-tg1-c10/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s57-t23-tg1-c10/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s57-t23-tg1-c10/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s57-t23-tg1-c10/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s57-t23-tg1-c7/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s57-t23-tg1-c7/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s57-t23-tg1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s57-t23-tg1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+- SUT [Server-Type-H5]:
+ - testbedname: testbed24.
+ - hostname: s58-t24-sut1.
+ - IPMI IP: 10.30.50.58
+ - Host IP: 10.30.51.58
+ - portnames:
+ - s58-t24-sut1-c2/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s58-t24-sut1-c2/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s58-t24-sut1-c4/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s58-t24-sut1-c4/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s58-t24-sut1-c10/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s58-t24-sut1-c10/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s58-t24-sut1-c10/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s58-t24-sut1-c10/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+- TG [Server-Type-H6]:
+ - testbedname: testbed24.
+ - hostname: s59-t24-tg1.
+ - IPMI IP: 10.30.50.59
+ - Host IP: 10.30.51.59
+ - portnames:
+ - s59-t24-tg1-c2/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s59-t24-tg1-c2/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s59-t24-tg1-c4/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s59-t24-tg1-c4/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+ - s59-t24-tg1-c10/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s59-t24-tg1-c10/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s59-t24-tg1-c10/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s59-t24-tg1-c10/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+ - s59-t24-tg1-c7/p1 - 200GE-port1 ConnectX7-2p200GE.
+ - s59-t24-tg1-c7/p2 - 200GE-port2 ConnectX7-2p200GE.
+ - s59-t24-tg1-c9/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
+ - s59-t24-tg1-c9/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
+```
+
+### 3-Node-IcelakeD (3n-icxd)
+
+{{< figure src="/cdocs/testbed-3n-icxd.svg" >}}
+
+```
+- ServerI1 [Server-Type-I1]:
+ - testbedname: testbed31.
+ - hostname: s32-t31-sut1.
+ - IPMI IP: 10.30.50.32
+ - Host IP: 10.30.51.32
+ - portnames:
+ - s32-t31-sut1-c1/p1 - 25GE-port1 e822cq-2p25GE.
+ - s32-t31-sut1-c1/p2 - 25GE-port2 e822cq-2p25GE.
+- ServerI1 [Server-Type-I1]:
+ - testbedname: testbed31.
+ - hostname: s33-t31-sut2.
+ - IPMI IP: 10.30.50.33
+ - Host IP: 10.30.51.33
+ - portnames:
+ - s33-t31-sut2-c1/p1 - 25GE-port1 e822cq-2p25GE.
+ - s33-t31-sut2-c1/p2 - 25GE-port2 e822cq-2p25GE.
+- ServerF3 [Server-Type-F5]:
+ - testbedname: testbed31.
+ - hostname: s90-t31t32-tg1.
+ - IPMI IP: 10.30.50.90
+ - Host IP: 10.30.51.90
+ - portnames:
+ - s90-t31t32-tg1-c4/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s90-t31t32-tg1-c4/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s90-t31t32-tg1-c4/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s90-t31t32-tg1-c4/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+- ServerI1 [Server-Type-I1]:
+ - testbedname: testbed32.
+ - hostname: s34-t32-sut1.
+ - IPMI IP: 10.30.50.34
+ - Host IP: 10.30.51.34
+ - portnames:
+ - s34-t32-sut1-c1/p1 - 25GE-port1 e822cq-2p25GE.
+ - s34-t32-sut1-c1/p2 - 25GE-port2 e822cq-2p25GE.
+- ServerI1 [Server-Type-I1]:
+ - testbedname: testbed32.
+ - hostname: s35-t32-sut2.
+ - IPMI IP: 10.30.50.35
+ - Host IP: 10.30.51.35
+ - portnames:
+ - s35-t32-sut2-c1/p1 - 25GE-port1 e822cq-2p25GE.
+ - s35-t32-sut2-c1/p2 - 25GE-port2 e822cq-2p25GE.
+- ServerF3 [Server-Type-F5]:
+ - testbedname: testbed32.
+ - hostname: s90-t31t32-tg1.
+ - IPMI IP: 10.30.50.90
+ - Host IP: 10.30.51.90
+ - portnames:
+ - s90-t31t32-tg1-c6/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
+ - s90-t31t32-tg1-c6/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
+ - s90-t31t32-tg1-c6/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
+ - s90-t31t32-tg1-c6/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
+```
+
+## Testbed Wiring
+
+### 1-Node-Skylake (1n-skx)
+
+```
+- testbed11:
+ - ring1 10GE-ports x710-4p10GE:
+ - s1-t11-sut1-c2/p1 to s1-t11-sut1-c4/p1.
+ - ring2 10GE-ports x710-4p10GE:
+ - s1-t11-sut1-c2/p2 to s1-t11-sut1-c4/p2.
+ - ring3 10GE-ports x710-4p10GE:
+ - s1-t11-sut1-c2/p3 to s1-t11-sut1-c4/p3.
+ - ring4 10GE-ports x710-4p10GE:
+ - s1-t11-sut1-c2/p4 to s1-t11-sut1-c4/p4.
+ - ring5 100GE-ports e810-2p100GE:
+ - s1-t11-sut1-c5/p1 to s1-t11-sut1-c6/p1.
+ - ring6 100GE-ports e810-2p100GE:
+ - s1-t11-sut1-c5/p2 to s1-t11-sut1-c6/p2.
+- testbed12:
+ - ring1 10GE-ports x710-4p10GE:
+ - s2-t12-sut1-c2/p1 to s2-t12-sut1-c4/p1.
+ - ring2 10GE-ports x710-4p10GE:
+ - s2-t12-sut1-c2/p2 to s2-t12-sut1-c4/p2.
+ - ring3 10GE-ports x710-4p10GE:
+ - s2-t12-sut1-c2/p3 to s2-t12-sut1-c4/p3.
+ - ring4 10GE-ports x710-4p10GE:
+ - s2-t12-sut1-c2/p4 to s2-t12-sut1-c4/p4.
+ - ring5 100GE-ports e810-2p100GE:
+ - s2-t12-sut1-c5/p1 to s2-t12-sut1-c6/p1.
+ - ring6 100GE-ports e810-2p100GE:
+ - s2-t12-sut1-c5/p2 to s2-t12-sut1-c6/p2.
+```
+
+### 1-Node-Altra (1n-alt)
+
+```
+- testbed13:
+ - ring1 40GE-ports XL710-QDA2-2p40GE on SUTs:
+ - s70-t13-sut1-c0/p1 - s70-t13-sut1-c3/p1.
+ - ring2 40GE-ports XL710-QDA2-2p40GE on SUTs:
+ - s70-t13-sut1-c0/p2 - s70-t13-sut1-c3/p2.
+ - ring3 100GE-ports ConnectX6-2p100GE on SUTs:
+ - s70-t13-sut1-c1/p1 - s70-t13-sut1-c1/p2.
+ - ring4 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
+ - s70-t13-sut1-c2/p1 - s70-t13-sut1-c5/p1.
+ - ring5 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
+ - s70-t13-sut1-c2/p2 - s70-t13-sut1-c5/p2.
+
+- testbed14:
+ - ring1 40GE-ports XL710-QDA2-2p40GE on SUTs:
+ - s71-t14-sut1-c0/p1 - s71-t14-sut1-c3/p1.
+ - ring2 40GE-ports XL710-QDA2-2p40GE on SUTs:
+ - s71-t14-sut1-c0/p2 - s71-t14-sut1-c3/p2.
+ - ring3 100GE-ports ConnectX6-2p100GE on SUTs:
+ - s71-t14-sut1-c1/p1 - s71-t14-sut1-c1/p2.
+ - ring4 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
+ - s71-t14-sut1-c2/p1 - s71-t14-sut1-c5/p1.
+ - ring5 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
+ - s71-t14-sut1-c2/p2 - s71-t14-sut1-c5/p2.
+```
+
+### 1-Node-SapphireRapids (1n-spr)
+
+```
+- testbed15:
+ - ring1 100GE-ports e810-2p100GE:
+ - s30-t15-sut1-c1/p1 to s30-t15-sut1-c2/p1.
+ - ring2 100GE-ports e810-2p100GE:
+ - s30-t15-sut1-c1/p2 to s30-t15-sut1-c2/p2.
+- testbed16:
+ - ring1 100GE-ports e810-2p100GE:
+ - s31-t16-sut1-c1/p1 to s31-t16-sut1-c2/p1.
+ - ring2 100GE-ports e810-2p100GE:
+ - s31-t16-sut1-c1/p2 to s31-t16-sut1-c2/p2.
+```
+
+### 2-Node-IxiaPS1L47 (2n-ps1)
+
+```
+- testbed25:
+ - link1 10GE-port x710-4p10GE on SUT:
+ - t25-tg1-p1 to t25-sut1-c2/p1.
+ - link2 10GE-port x710-4p10GE on SUT:
+ - t25-tg1-p2 to t25-sut1-c2/p2.
+ - link3 10GE-port x710-4p10GE on SUT:
+ - t25-tg1-p3 to t25-sut1-c2/p3.
+ - link4 10GE-port x710-4p10GE on SUT:
+ - t25-tg1-p4 to t25-sut1-c2/p4.
+```
+
+### 2-Node-Cascadelake (2n-clx)
+
+```
+- testbed27:
+ - ring1 10GE-ports x710-4p10GE on SUT:
+ - s34-t27-tg1-c2/p1 to s33-t27-sut1-c2/p1.
+ - s33-t27-sut1-c2/p2 to s34-t27-tg1-c2/p2.
+ - ring2 10GE-ports x710-4p10GE on SUT:
+ - s34-t27-tg1-c2/p3 to s33-t27-sut1-c2/p3.
+ - s33-t27-sut1-c2/p4 to s34-t27-tg1-c2/p4.
+ - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
+ - s34-t27-tg1-c4/p1 to s33-t27-sut1-c4/p1.
+ - s33-t27-sut1-c4/p2 to s34-t27-tg1-c4/p2.
+ - ring4 100GE-ports ConnectX5-2p100GE on SUT:
+ - s34-t27-tg1-c9/p1 to s33-t27-sut1-c9/p1.
+ - s33-t27-sut1-c9/p2 to s34-t27-tg1-c9/p2.
+ - ring5 100GE-ports e810-2p100GE on SUT 100GE-ports ConnectX5-2p100GE on TG:
+ - s34-t27-tg1-c6/p1 to s33-t27-sut1-c6/p1.
+ - s33-t27-sut1-c6/p2 to s34-t27-tg1-c6/p2.
+ - ring6 100GE-ports e810-2p100GE on TG:
+ - s34-t27-tg1-c8/p1 to s34-t27-tg1-c8/p2.
+ - s34-t27-tg1-c8/p2 to s34-t27-tg1-c8/p1.
+- testbed28:
+ - ring1 10GE-ports x710-4p10GE on SUT:
+ - s36-t28-tg1-c2/p1 to s35-t28-sut1-c2/p1.
+ - s35-t28-sut1-c2/p2 to s36-t28-tg1-c2/p2.
+ - ring2 10GE-ports x710-4p10GE on SUT:
+ - s36-t28-tg1-c2/p3 to s35-t28-sut1-c2/p3.
+ - s35-t28-sut1-c2/p4 to s36-t28-tg1-c2/p4.
+ - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
+ - s36-t28-tg1-c4/p1 to s35-t28-sut1-c4/p1.
+ - s35-t28-sut1-c4/p2 to s36-t28-tg1-c4/p2.
+ - ring4 100GE-ports ConnectX5-2p100GE on SUT:
+ - s36-t28-tg1-c9/p1 to s35-t28-sut1-c9/p1.
+ - s35-t28-sut1-c9/p2 to s36-t28-tg1-c9/p2.
+ - ring5 100GE-ports e810-2p100GE on SUT 100GE-ports ConnectX5-2p100GE on TG:
+ - s36-t28-tg1-c6/p1 to s35-t28-sut1-c6/p1.
+ - s35-t28-sut1-c6/p2 to s36-t28-tg1-c6/p2.
+ - ring6 100GE-ports e810-2p100GE on TG:
+ - s36-t28-tg1-c8/p1 to s36-t28-tg1-c8/p2.
+ - s36-t28-tg1-c8/p2 to s36-t28-tg1-c8/p1.
+- testbed29:
+ - ring1 10GE-ports x710-4p10GE on SUT:
+ - s38-t29-tg1-c2/p1 to s37-t29-sut1-c2/p1.
+ - s37-t29-sut1-c2/p2 to s38-t29-tg1-c2/p2.
+ - ring2 10GE-ports x710-4p10GE on SUT:
+ - s38-t29-tg1-c2/p3 to s37-t29-sut1-c2/p3.
+ - s37-t29-sut1-c2/p4 to s38-t29-tg1-c2/p4.
+ - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
+ - s38-t29-tg1-c4/p1 to s37-t29-sut1-c4/p1.
+ - s37-t29-sut1-c4/p2 to s38-t29-tg1-c4/p2.
+ - ring4 100GE-ports ConnectX5-2p100GE on SUT:
+ - s38-t29-tg1-c9/p1 to s37-t29-sut1-c9/p1.
+ - s37-t29-sut1-c9/p2 to s38-t29-tg1-c9/p2.
+ - ring5 100GE-ports e810-2p100GE on SUT 100GE-ports ConnectX5-2p100GE on TG:
+ - s38-t29-tg1-c6/p1 to s37-t29-sut1-c6/p1.
+ - s37-t29-sut1-c6/p2 to s38-t29-tg1-c6/p2.
+```
+
+### 2-Node-Zen2 (2n-zn2)
+
+```
+- testbed210:
+ - ring1 10GE-ports x710-4p10GE on SUT:
+ - s61-t210-tg1-c2/p1 to s60-t210-sut1-c1/p1.
+ - s60-t210-sut1-c1/p2 to s61-t210-tg1-c2/p2.
+ - ring2 10GE-ports x710-4p10GE on SUT:
+ - s61-t210-tg1-c2/p3 to s60-t210-sut1-c1/p3.
+ - s60-t210-sut1-c1/p4 to s61-t210-tg1-c2/p4.
+ - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
+ - s61-t210-tg1-c3/p1 to s60-t210-sut1-c2/p1.
+ - s60-t210-sut1-c2/p2 to s61-t210-tg1-c3/p2.
+ - ring4 100GE-ports ConnectX5-2p100GE on SUT:
+ - s61-t210-tg1-c1/p1 to s60-t210-sut1-c3/p1.
+ - s60-t210-sut1-c3/p2 to s61-t210-tg1-c1/p2.
+```
+
+### 2-Node-ThunderX2 (2n-tx2)
+
+```
+- testbed211:
+ - ring1 10GE-ports x520-2p10GE on SUTs:
+ - s27-t211-sut1-c18/p1 - s19-t33t211-tg1-c8/p1.
+ - s27-t211-sut1-c18/p2 - s19-t33t211-tg1-c8/p2.
+```
+
+### 2-Node-Icelake (2n-icx)
+
+```
+- testbed212:
+ - ring1 25GE-ports xxv710-DA2-2p25GE:
+ - s72-t212-tg1-c2/p1 to s71-t212-sut1-c2/p1.
+ - s71-t212-sut1-c2/p2 to s72-t212-tg1-c2/p2.
+ - ring2 25GE-ports e810-XXVDA4-2p25GE:
+ - s72-t212-tg1-c4/p1 to s71-t212-sut1-c4/p1.
+ - s71-t212-sut1-c4/p2 to s72-t212-tg1-c4/p2.
+ - s72-t212-tg1-c4/p3 to s71-t212-sut1-c4/p3.
+ - s71-t212-sut1-c4/p4 to s72-t212-tg1-c4/p4.
+ - ring3 100GE-ports e810-2CQDA2-2p100GE:
+ - s72-t212-tg1-c9/p1 to s71-t212-sut1-c9/p1.
+ - s71-t212-sut1-c9/p2 to s72-t212-tg1-c9/p2.
+ - ring4 100GE-ports e810-2CQDA2-2p100GE:
+ - s72-t212-tg1-c6/p1 to s72-t212-tg1-c6/p2.
+ - s72-t212-tg1-c6/p2 to s72-t212-tg1-c6/p1.
+ - ring5 200GE-ports ConnectX7-2p200GE:
+ - s72-t212-tg1-c8/p1 to s71-t212-sut1-c8/p1.
+ - s71-t212-sut1-c8/p2 to s72-t212-tg1-c8/p2.
+- testbed213:
+ - ring1 25GE-ports xxv710-DA2-2p25GE:
+ - s84-t213-tg1-c2/p1 to s83-t213-sut1-c2/p1.
+ - s83-t213-sut1-c2/p2 to s84-t213-tg1-c2/p2.
+ - ring2 25GE-ports e810-XXVDA4-2p25GE:
+ - s84-t213-tg1-c4/p1 to s83-t213-sut1-c4/p1.
+ - s83-t213-sut1-c4/p2 to s84-t213-tg1-c4/p2.
+ - s84-t213-tg1-c4/p3 to s83-t213-sut1-c4/p3.
+ - s83-t213-sut1-c4/p4 to s84-t213-tg1-c4/p4.
+ - ring3 100GE-ports e810-2CQDA2-2p100GE:
+ - s84-t213-tg1-c9/p1 to s83-t213-sut1-c9/p1.
+ - s83-t213-sut1-c9/p2 to s84-t213-tg1-c9/p2.
+ - ring4 100GE-ports e810-2CQDA2-2p100GE:
+ - s84-t213-tg1-c6/p1 to s84-t213-tg1-c6/p2.
+ - s84-t213-tg1-c6/p2 to s84-t213-tg1-c6/p1.
+ - ring5 200GE-ports ConnectX7-2p200GE:
+ - s84-t213-tg1-c8/p1 to s83-t213-sut1-c8/p1.
+ - s83-t213-sut1-c8/p2 to s84-t213-tg1-c8/p2.
+- testbed214:
+ - ring1 25GE-ports xxv710-DA2-2p25GE:
+ - s86-t214-tg1-c2/p1 to s85-t214-sut1-c2/p1.
+ - s85-t214-sut1-c2/p2 to s86-t214-tg1-c2/p2.
+ - ring2 25GE-ports e810-XXVDA4-2p25GE:
+ - s86-t214-tg1-c4/p1 to s85-t214-sut1-c4/p1.
+ - s85-t214-sut1-c4/p2 to s86-t214-tg1-c4/p2.
+ - s86-t214-tg1-c4/p3 to s85-t214-sut1-c4/p3.
+ - s85-t214-sut1-c4/p4 to s86-t214-tg1-c4/p4.
+ - ring3 100GE-ports e810-2CQDA2-2p100GE:
+ - s86-t214-tg1-c9/p1 to s85-t214-sut1-c9/p1.
+ - s85-t214-sut1-c9/p2 to s86-t214-tg1-c9/p2.
+ - ring4 100GE-ports e810-2CQDA2-2p100GE:
+ - s86-t214-tg1-c6/p1 to s86-t214-tg1-c6/p2.
+ - s86-t214-tg1-c6/p2 to s86-t214-tg1-c6/p1.
+ - ring5 200GE-ports ConnectX7-2p200GE:
+ - s86-t214-tg1-c8/p1 to s85-t214-sut1-c8/p1.
+ - s85-t214-sut1-c8/p2 to s86-t214-tg1-c8/p2.
+- testbed215:
+ - ring1 25GE-ports xxv710-DA2-2p25GE:
+ - s88-t215-tg1-c2/p1 to s87-t215-sut1-c2/p1.
+ - s87-t215-sut1-c2/p2 to s88-t215-tg1-c2/p2.
+ - ring2 25GE-ports e810-XXVDA4-2p25GE:
+ - s88-t215-tg1-c4/p1 to s87-t215-sut1-c4/p1.
+ - s87-t215-sut1-c4/p2 to s88-t215-tg1-c4/p2.
+ - s88-t215-tg1-c4/p3 to s87-t215-sut1-c4/p3.
+ - s87-t215-sut1-c4/p4 to s88-t215-tg1-c4/p4.
+ - ring3 100GE-ports e810-2CQDA2-2p100GE:
+ - s88-t215-tg1-c9/p1 to s87-t215-sut1-c9/p1.
+ - s87-t215-sut1-c9/p2 to s88-t215-tg1-c9/p2.
+ - ring4 100GE-ports e810-2CQDA2-2p100GE:
+ - s88-t215-tg1-c6/p1 to s88-t215-tg1-c6/p2.
+ - s88-t215-tg1-c6/p2 to s88-t215-tg1-c6/p1.
+ - ring5 200GE-ports ConnectX7-2p200GE:
+ - s88-t215-tg1-c8/p1 to s87-t215-sut1-c8/p1.
+ - s87-t215-sut1-c8/p2 to s88-t215-tg1-c8/p2.
+```
+
+### 3-Node-Rangeley (3n-rng)
+
+```
+To be completed.
+```
+
+### 3-Node-Taishan (3n-tsh)
+
+```
+- testbed33:
+ - ring1 10GE-ports x520-2p10GE on SUTs:
+ - s19-t33t211-tg1-c2/p2 - s17-t33-sut1-c6/p2.
+ - s17-t33-sut1-c6/p1 - s18-t33-sut2-c6/p2.
+ - s18-t33-sut2-c6/p1 - s19-t33t211-tg1-c2/p1.
+ - ring2 25GE-ports cx4-2p25GE on SUTs:
+ - s19-t33t211-tg1-c4/p2 - s17-t33-sut1-c4/p2.
+ - s17-t33-sut1-c4/p1 - s18-t33-sut2-c4/p2.
+ - s18-t33-sut2-c4/p1 - s19-t33t211-tg1-c4/p1.
+```
+
+### 3-Node-Altra (3n-alt)
+
+```
+- testbed34:
+ - ring1 40GE-ports xl710-QDA2-2p40GE on SUTs:
+ - s64-t34-tg1-c4/p1 - s62-t34-sut1-c1/p2.
+ - s62-t34-sut1-c1/p1 - s63-t34-sut2-c1/p2.
+ - s63-t34-sut2-c1/p1 - s64-t34-tg1-c4/p2.
+ - ring2 100GE-ports ConnectX6-2p100GE Mellanox on SUTs:
+ - s64-t34-tg1-c8/p1 - s62-t34-sut2-c8/p1.
+ - s62-t34-sut1-c8/p1 - s63-t34-sut2-c8/p2.
+ - s63-t34-sut1-c8/p2 - s64-t34-tg1-c8/p2.
+```
+
+### 3-Node-Icelake (3n-icx)
+
+```
+- testbed37:
+ - ring1 25GE-ports xxv710-DA2-2p25GE:
+ - s67-t37-tg1-c2/p1 to s65-t37-sut1-c2/p1.
+ - s65-t37-sut1-c2/p2 to s66-t37-sut2-c2/p2.
+ - s66-t37-sut2-c2/p1 to s67-t37-tg1-c2/p2.
+ - ring2 25GE-ports e810-XXVDA4-4p25GE:
+ - s67-t37-tg1-c4/p1 to s65-t37-sut1-c4/p1.
+ - s65-t37-sut1-c4/p2 to s66-t37-sut2-c4/p2.
+ - s66-t37-sut2-c4/p1 to s67-t37-tg1-c4/p2.
+ - s67-t37-tg1-c4/p3 to s65-t37-sut1-c4/p3.
+ - s65-t37-sut1-c4/p4 to s66-t37-sut2-c4/p4.
+ - s66-t37-sut2-c4/p3 to s67-t37-tg1-c4/p4.
+ - ring3 100GE-ports e810-2CQDA2-2p100GE:
+ - s67-t37-tg1-c9/p1 to s65-t37-sut1-c9/p1.
+ - s65-t37-sut1-c9/p2 to s66-t37-sut2-c9/p2.
+ - s66-t37-sut2-c9/p1 to s67-t37-tg1-c9/p2.
+ - ring4 200GE-ports ConnectX6-2p200GE:
+ - s67-t37-tg1-c10/p1 - s65-t37-sut1-c10/p2.
+ - s65-t37-sut1-c10/p1 - s66-t37-sut2-c10/p2.
+ - s66-t37-sut2-c10/p1 - s67-t37-tg1-c10/p2.
+- testbed38:
+ - ring1 25GE-ports xxv710-DA2-2p25GE:
+ - s80-t38-tg1-c2/p1 to s78-t38-sut1-c2/p1.
+ - s78-t38-sut1-c2/p2 to s79-t38-sut2-c2/p2.
+ - s79-t38-sut2-c2/p1 to s80-t38-tg1-c2/p2.
+ - ring2 25GE-ports e810-XXVDA4-4p25GE:
+ - s80-t38-tg1-c4/p1 to s78-t38-sut1-c4/p1.
+ - s78-t38-sut1-c4/p2 to s79-t38-sut2-c4/p2.
+ - s79-t38-sut2-c4/p1 to s80-t38-tg1-c4/p2.
+ - s80-t38-tg1-c4/p3 to s78-t38-sut1-c4/p3.
+ - s78-t38-sut1-c4/p4 to s79-t38-sut2-c4/p4.
+ - s79-t38-sut2-c4/p3 to s80-t38-tg1-c4/p4.
+ - ring3 100GE-ports e810-2CQDA2-2p100GE:
+ - s80-t38-tg1-c9/p1 to s78-t38-sut1-c9/p1.
+ - s78-t38-sut1-c9/p2 to s79-t38-sut2-c9/p2.
+ - s79-t38-sut2-c9/p1 to s80-t38-tg1-c9/p2.
+ - ring4 200GE-ports ConnectX6-2p200GE:
+ - s80-t38-tg1-c10/p1 to s78-t38-sut1-c10/p1.
+ - s78-t38-sut1-c10/p2 to s79-t38-sut2-c10/p2.
+ - s79-t38-sut2-c10/p1 to s80-t38-tg1-c10/p2.
+```
+
+### 3-Node-SnowRidge (3n-snr)
+
+```
+- testbed39:
+ - ring1 25GE-ports e810-XXVDA4-4p25GE:
+ - s89-t39t310-tg1-c6/p1 to s93-t39-sut1-c1/p1.
+ - s93-t39-sut1-c1/p2 to s94-t39-sut2-c1/p2.
+ - s94-t39-sut2-c1/p1 to s89-t39t310-tg1-c6/p2.
+ - s89-t39t310-tg1-c6/p3 to s93-t39-sut1-c1/p3.
+ - s93-t39-sut1-c1/p4 to s94-t39-sut2-c1/p4.
+ - s94-t39-sut2-c1/p3 to s89-t39t310-tg1-c6/p4.
+```
+
+### 2-Node-SapphireRapids (2n-spr)
+
+```
+- testbed21:
+ - ring1 200GE-ports ConnectX7-2p200GE:
+ - s53-t21-tg1-c2/p1 to s52-t21-sut1-c2/p1
+ - s53-t21-tg1-c7/p1 to s52-t21-sut1-c7/p1
+ - s52-t21-sut1-c4/p2 to s52-t21-sut1-c9/p2
+ - ring2 200GE-ports ConnectX7-2p200GE:
+ - s53-t21-tg1-c2/p2 to s52-t21-sut1-c2/p2
+ - s53-t21-tg1-c7/p2 to s52-t21-sut1-c7/p2
+ - s52-t21-sut1-c10/p1 to s52-t21-sut1-c11/p1
+ - ring3 200GE-ports ConnectX7-2p200GE:
+ - s53-t21-tg1-c4/p1 to s52-t21-sut1-c4/p1
+ - s53-t21-tg1-c9/p1 to s52-t21-sut1-c9/p1
+ - s52-t21-sut1-c10/p2 to s52-t21-sut1-c11/p2
+- testbed22:
+ - ring1 100GE-ports e810-2CQDA2-2p100GE:
+ - s55-t22-tg1-c4/p1 to s54-t22-sut1-c9/p2
+ - s55-t22-tg1-c4/p2 to s54-t22-sut1-c4/p2
+ - s54-t22-sut1-c9/p1 to s54-t22-sut1-c4/p1
+ - ring2 25GE-ports e810-XXVDA4-4p25GE:
+ - s55-t22-tg1-c2/p1 to s54-t22-sut1-c2/p1
+ - s55-t22-tg1-c2/p2 to s54-t22-sut1-c7/p1
+ - s54-t22-sut1-c2/p2 to s54-t22-sut1-c7/p2
+- testbed23:
+ - ring1 200GE-ports ConnectX7-2p200GE:
+ - s56-t23-sut1-c2/p1 to s57-t23-tg1-c2/p1.
+ - s57-t23-tg1-c2/p2 to s56-t23-sut1-c2/p2.
+ - ring2 100GE-ports e810-2CQDA2-2p100GE:
+ - s56-t23-sut1-c4/p1 to s57-t23-tg1-c4/p1.
+ - s57-t23-tg1-c4/p2 to s56-t23-sut1-c4/p2.
+ - ring3 25GE-ports e810-XXVDA4-4p25GE:
+ - s56-t23-sut1-c10/p1 to s57-t23-tg1-c10/p1.
+ - s56-t23-sut1-c10/p2 to s57-t23-tg1-c10/p2.
+ - s56-t23-sut1-c10/p3 to s57-t23-tg1-c10/p3.
+ - s56-t23-sut1-c10/p4 to s57-t23-tg1-c10/p4.
+ - ring4 200GE-ports ConnectX7-2p200GE:
+ - s57-t23-tg1-c7/p1 to s57-t23-tg1-c7/p2.
+ - ring5 100GE-ports e810-2CQDA2-2p100GE:
+ - s57-t23-tg1-c9/p1 to s57-t23-tg1-c9/p2.
+- testbed24:
+ - ring1 200GE-ports ConnectX7-2p200GE:
+ - s58-t24-sut1-c2/p1 to s59-t24-tg1-c2/p1.
+ - s59-t24-tg1-c2/p2 to s58-t24-sut1-c2/p2.
+ - ring2 100GE-ports e810-2CQDA2-2p100GE:
+ - s58-t24-sut1-c4/p1 to s59-t24-tg1-c4/p1.
+ - s59-t24-tg1-c4/p2 to s58-t24-sut1-c4/p2.
+ - ring3 25GE-ports e810-XXVDA4-4p25GE:
+ - s58-t24-sut1-c10/p1 to s59-t24-tg1-c10/p1.
+ - s58-t24-sut1-c10/p2 to s59-t24-tg1-c10/p2.
+ - s58-t24-sut1-c10/p3 to s59-t24-tg1-c10/p3.
+ - s58-t24-sut1-c10/p4 to s59-t24-tg1-c10/p4.
+ - ring4 200GE-ports ConnectX7-2p200GE:
+ - s59-t24-tg1-c7/p1 to s59-t24-tg1-c7/p2.
+ - ring5 100GE-ports e810-2CQDA2-2p100GE:
+ - s59-t24-tg1-c9/p1 to s59-t24-tg1-c9/p2.
+```
+
+### 3-Node-IcelakeD (3n-icxd)
+
+```
+- testbed31:
+ - ring1 25GE-ports e822cq-2p25GE:
+ - s90-t31t32-tg1-c4/p1 to s32-t31-sut1-c1/p1.
+ - s32-t31-sut1-c1/p2 to s33-t31-sut2-c1/p2.
+ - s33-t31-sut2-c1/p1 to s90-t31t32-tg1-c4/p2.
+- testbed32:
+ - ring1 25GE-ports e822cq-2p25GE:
+ - s90-t31t32-tg1-c6/p1 to s34-t32-sut1-c1/p1.
+ - s34-t32-sut1-c1/p2 to s35-t32-sut2-c1/p2.
+ - s35-t32-sut2-c1/p1 to s90-t31t32-tg1-c6/p2.
+``` \ No newline at end of file
diff --git a/docs/content/infrastructure/fdio_dc_vexxhost_inventory.md b/docs/content/infrastructure/fdio_dc_vexxhost_inventory.md
new file mode 100644
index 0000000000..b4741cf5d2
--- /dev/null
+++ b/docs/content/infrastructure/fdio_dc_vexxhost_inventory.md
@@ -0,0 +1,126 @@
+---
+title: "FD.io DC Vexxhost Inventory"
+weight: 1
+---
+
+# FD.io DC Vexxhost Inventory
+
+Captured inventory data:
+ - **name**: CSIT functional server name as tracked in
+ [CSIT testbed specification]({{< ref "fdio_dc_testbed_specifications#FD.io CSIT Testbed Specifications" >}}),
+ followed by "/" and the actual configured hostname, unless it is the same
+ as CSIT name.
+ - **role**: 2n/3n-xxx performance testbed, nomad-client, nomad-server.
+ - role exceptions: decommission, repurpose, spare.
+ - **model**: server model.
+ - **s/n**: serial number.
+ - **mgmt-ip4**: current management IPv4 address on management VLAN.
+ - **ipmi-ip4**: current IPMI IPv4 address on LOM VLAN.
+ - **rackid**: new location rack id.
+ - **rackunit**: new location rack unit id.
+
+## Missing Equipment Inventory
+
+1. Ixia PerfectStorm One Appliance
+ - [**Specification**]({{< ref "fdio_dc_testbed_specifications#2-node-ixiaps1l47-ixia-psone-l47-2n-ps1" >}})
+ - [**Wiring**]({{< ref "fdio_dc_testbed_specifications#2-node-ixiaps1l47-2n-ps1" >}})
+ - **mgmt-ip4**: 10.30.51.62 s26-t25-tg1
+ - **ipmi-ip4**: 10.30.50.59 s26-t25-tg1
+
+## YUL1 Inventory
+
+### Rack YUL1-8 (3016.8)
+
+ **name** | **role** | **model** | **s/n** | **mgmt-ip4** | **ipmi-ip4** | **rackid** | **rackunit**
+-----------------|---------------|---------------------|-----------------|--------------|--------------|------------|--------------
+ mtl1-8-lb4m | uplink | ? | ? | ? | ? | 3016.8 | u47
+ s65-t37-sut1 | 3n-icx | SYS-740GP-TNRT | C7470KK25P50098 | 10.30.51.75 | 10.30.50.75 | 3016.8 | u42-u45
+ s66-t37-sut2 | 3n-icx | SYS-740GP-TNRT | C7470KK33P50247 | 10.30.51.76 | 10.30.50.76 | 3016.8 | u38-u41
+ s67-t37-tg1 | 3n-icx | SYS-740GP-TNRT | C7470KK25P50076 | 10.30.51.77 | 10.30.50.77 | 3016.8 | u34-u37
+ s71-t212-sut1 | 2n-icx | SYS-740GP-TNRT | C7470KK25P50173 | 10.30.51.81 | 10.30.50.81 | 3016.8 | u30-u33
+ s72-t212-tg1 | 2n-icx | SYS-740GP-TNRT | C7470KK33P50220 | 10.30.51.82 | 10.30.50.82 | 3016.8 | u26-u29
+ s83-t213-sut1 | 2n-icx | SYS-740GP-TNRT | C7470KL07P50300 | 10.30.51.83 | 10.30.50.83 | 3016.8 | u22-u25
+ s84-t213-tg1 | 2n-icx | SYS-740GP-TNRT | C7470KL03P50187 | 10.30.51.84 | 10.30.50.84 | 3016.8 | u18-u21
+ s85-t214-sut1 | 2n-icx | SYS-740GP-TNRT | C7470KK33P50219 | 10.30.51.85 | 10.30.50.85 | 3016.8 | u14-u17
+ s86-t214-tg1 | 2n-icx | SYS-740GP-TNRT | C7470KL07P50312 | 10.30.51.86 | 10.30.50.86 | 3016.8 | u10-u13
+ s87-t215-sut1 | 2n-icx | SYS-740GP-TNRT | C7470KL03P50171 | 10.30.51.87 | 10.30.50.87 | 3016.8 | u6-u9
+ s88-t215-tg1 | 2n-icx | SYS-740GP-TNRT | C7470KL07P50301 | 10.30.51.88 | 10.30.50.88 | 3016.8 | u2-u5
+
+### Rack YUL1-9 (3016.9)
+
+ **name** | **role** | **model** | **s/n** | **mgmt-ip4** | **ipmi-ip4** | **rackid** | **rackunit**
+-----------------|---------------|---------------------|-----------------|--------------|--------------|------------|--------------
+ mtl1-5-lb4m | uplink | ? | ? | ? | ? | 3016.9 | u47
+ s52-t21-sut1 | 2n-spr | SYS-741GE-TNRT | C7490FL36A40118 | 10.30.51.52 | 10.30.50.52 | 3016.9 | u42-u45
+ s53-t21-tg1 | 2n-spr | SYS-741GE-TNRT | ??? | 10.30.51.53 | 10.30.50.53 | 3016.9 | u38-u41
+ s54-t22-sut1 | 2n-spr | SYS-741GE-TNRT | ??? | 10.30.51.54 | 10.30.50.54 | 3016.9 | u34-u37
+ s55-t22-tg1 | 2n-spr | SYS-741GE-TNRT | ??? | 10.30.51.55 | 10.30.50.55 | 3016.9 | u30-u33
+ s56-t23-sut1 | 2n-spr | SYS-741GE-TNRT | ??? | 10.30.51.56 | 10.30.50.56 | 3016.9 | u26-u29
+ s57-t23-tg1 | 2n-spr | SYS-741GE-TNRT | ??? | 10.30.51.57 | 10.30.50.57 | 3016.9 | u22-u25
+ s25-t25-sut1 | 2n-p1 | SYS-7049GP-TRT | C7470KH06A20022 | 10.30.51.61 | 10.30.50.58 | 3016.9 | u18-u21
+ s19-t33t211-tg1 | 3n-tsh/2n-tx2 | SYS-7049GP-TRT | C7470KH06A20056 | 10.30.51.49 | 10.30.50.46 | 3016.9 | u14-u17
+ s27-t211-sut1 | 2n-tx2 | ThunderX2-9975 | K61186073100003 | 10.30.51.69 | 10.30.50.69 | 3016.9 | u13
+ s18-t33-sut2 | 3n-tsh | HUAWEI-TAISHAN-2280 | N/A | 10.30.51.37 | 10.30.50.37 | 3016.9 | u11-u12
+ s17-t33-sut1 | 3n-tsh | HUAWEI-TAISHAN-2280 | N/A | 10.30.51.36 | 10.30.50.36 | 3016.9 | u9-u10
+
+### Rack YUL1-10 (3016.10)
+
+ **name** | **role** | **model** | **s/n** | **mgmt-ip4** | **ipmi-ip4** | **rackid** | **rackunit**
+-----------------|---------------|---------------------|-----------------|--------------|--------------|------------|--------------
+ yul1-10-lb4m | uplink | ? | ? | ? | ? | 3016.10 | u47
+ s2-t12-sut1 | 1n-skx | SYS-7049GP-TRT | C7470KH06A20119 | 10.30.51.51 | 10.30.50.48 | 3016.10 | u42-u45
+ s1-t11-sut1 | 1n-skx | SYS-7049GP-TRT | C7470KH06A20154 | 10.30.51.50 | 10.30.50.47 | 3016.10 | u38-u41
+ s58-t24-sut1 | 2n-spr | SYS-741GE-TNRT | ??? | 10.30.51.58 | 10.30.50.58 | 3016.10 | u34-u37
+ s59-t24-tg1 | 2n-spr | SYS-741GE-TNRT | ??? | 10.30.51.59 | 10.30.50.59 | 3016.10 | u30-u33
+ s32-t31-sut1 | 3n-icxd | SYS-110D-20C-FRDN8TP| C515MKK41A30950 | 10.30.51.32 | 10.30.50.32 | 3016.10 | u21
+ s33-t31-sut2 | 3n-icxd | SYS-110D-20C-FRDN8TP| C515MKK41A30967 | 10.30.51.33 | 10.30.50.33 | 3016.10 | u20
+ s34-t32-sut1 | 3n-icxd | SYS-110D-20C-FRDN8TP| C515MKK41A30959 | 10.30.51.34 | 10.30.50.34 | 3016.10 | u19
+ s35-t32-sut2 | 3n-icxd | SYS-110D-20C-FRDN8TP| C515MKK41A30886 | 10.30.51.35 | 10.30.50.35 | 3016.10 | u18
+ s90-t31t32-tg1 | 3n-icxd | SYS-740GP-TNRT | C7470KL03P50184 | 10.30.51.90 | 10.30.50.90 | 3016.10 | u14-u17
+ s93-t39-sut1 | 3n-snr | ? | ? | 10.30.51.93 | 10.30.50.93 | 3016.10 | u10-u13
+ s94-t39-sut2 | 3n-snr | ? | ? | 10.30.51.94 | 10.30.50.94 | 3016.10 | u6-u9
+ s89-t39t310-tg1 | 3n-snr | ? | ? | 10.30.51.89 | 10.30.50.89 | 3016.10 | u2-u5
+
+
+### Rack YUL1-11 (3016.11)
+
+ **name** | **role** | **model** | **s/n** | **mgmt-ip4** | **ipmi-ip4** | **rackid** | **rackunit**
+-----------------------|--------------|----------------|-----------------|--------------|--------------|------------|--------------
+ yul1-11-lb6m | arm-uplink | ? | ? | ? | ? | 3016.11 | u48
+ yul1-11-lf-tor-switch | uplink | ? | ? | ? | ? | 3016.11 | u47
+ mtl1-6-7050QX-32 | uplink | ? | ? | ? | ? | 3016.11 | u46
+ fdio-marvell-dev | dev | ThunderX-88XX | N/A | 10.30.51.38 | 10.30.50.38 | 3016.11 | u45
+ s21-nomad | nomad-client | SYS-741GE-TNRT | C7490FL47A50150 | 10.30.51.21 | 10.30.50.21 | 3016.11 | u39-u42
+ s22-nomad | nomad-client | SYS-741GE-TNRT | C7490FL47A50155 | 10.30.51.22 | 10.30.50.22 | 3016.11 | u35-u38
+ s78-t38-sut1 | 3n-icx | SYS-740GP-TNRT | C7470KL03P50450 | 10.30.51.78 | 10.30.50.78 | 3016.11 | u31-u34
+ s79-t38-sut2 | 3n-icx | SYS-740GP-TNRT | C7470KL07P50297 | 10.30.51.79 | 10.30.50.79 | 3016.11 | u27-u30
+ s80-t38-tg1 | 3n-icx | SYS-740GP-TNRT | C7470KL03P50454 | 10.30.51.80 | 10.30.50.80 | 3016.11 | u23-u26
+ s30-t15-sut1 | nomad-client | SYS-741GE-TNRT | C7490FL47A50154 | 10.30.51.30 | 10.30.50.30 | 3016.11 | u19-u22
+ s31-t16-sut1 | nomad-client | SYS-741GE-TNRT | C7490FL47A50149 | 10.30.51.31 | 10.30.50.31 | 3016.11 | u15-u18
+ s70-t13-sut1 | 1n-alt | E252-P30-00 | GMG252012A0098 | 10.30.51.70 | 10.30.50.70 | 3016.11 | u13-u14
+ s71-t14-sut1 | 1n-alt | E252-P30-00 | GMG252012A0089 | 10.30.51.71 | 10.30.50.71 | 3016.11 | u11-u12
+ s62-t34-sut1 | 3n-alt | WIWYNN | 04000059N0SC | 10.30.51.72 | 10.30.50.72 | 3016.11 | u9-u10
+ s63-t34-sut2 | 3n-alt | WIWYNN | 0390003EN0SC | 10.30.51.73 | 10.30.50.73 | 3016.11 | u7-u8
+ s64-t34-tg1 | 3n-alt | SYS-740GP-TNRT | C7470KK40P50249 | 10.30.51.74 | 10.30.50.74 | 3016.11 | u3-u6
+
+### Rack YUL1-12 (3016.12)
+
+ **name** | **role** | **model** | **s/n** | **mgmt-ip4** | **ipmi-ip4** | **rackid** | **rackunit**
+-----------------|---------------|---------------------|-----------------|--------------|--------------|------------|--------------
+ yul1-12-lb4m | uplink | ? | ? | ? | ? | 3016.12 | u47
+ s28-nomad | nomad-client | SYS-7049GP-TRT | C7470KH06A20196 | 10.30.51.28 | 10.30.50.28 | 3016.12 | u41-u44
+ s27-nomad | nomad-client | SYS-7049GP-TRT | C7470KH06A20055 | 10.30.51.27 | 10.30.50.27 | 3016.12 | u37-u40
+ s91-nomad | nomad-client | R152-P30-00 | GLG4P9912A0016 | 10.30.51.91 | 10.30.50.91 | 3016.12 | u36
+ s92-nomad | nomad-client | R152-P30-00 | GLG4P9912A0004 | 10.30.51.92 | 10.30.50.92 | 3016.12 | u35
+ s23-nomad | nomad-server | SYS-1029P-WTRT | C1160LI12NM0256 | 10.30.51.23 | 10.30.51.23 | 3016.12 | u34
+ s24-nomad | nomad-server | SYS-1029P-WTRT | C1160LI12NM0241 | 10.30.51.24 | 10.30.51.24 | 3016.12 | u33
+ s25-nomad | nomad-server | SYS-1029P-WTRT | C1160LI12NM0540 | 10.30.51.25 | 10.30.51.25 | 3016.12 | u32
+ s61-t210-tg1 | 2n-zn2 | AS-1014S-WTRT | C8150LI50NS2689 | 10.32.8.25 | 10.30.55.25 | 3016.12 | u31
+ s60-t210-sut1 | 2n-zn2 | AS-1114S-WTRT | N/A | 10.32.8.24 | 10.30.55.24 | 3016.12 | u30
+ s26-nomad | nomad-server | SYS-7049GP-TRT | C7470KH37A30505 | 10.30.51.26 | 10.30.51.26 | 3016.12 | u26-u29
+ s33-t27-sut1 | 2n-clx | SYS-7049GP-TRT | C7470KH37A30567 | 10.32.8.18 | 10.30.55.18 | 3016.12 | u22-u25
+ s34-t27-tg1 | 2n-clx | SYS-7049GP-TRT | C7470KH37A30565 | 10.32.8.19 | 10.30.55.19 | 3016.12 | u18-u21
+ s35-t28-sut1 | 2n-clx | SYS-7049GP-TRT | C7470KH37A30509 | 10.32.8.20 | 10.30.55.20 | 3016.12 | u14-u17
+ s36-t28-tg1 | 2n-clx | SYS-7049GP-TRT | C7470KH37A30511 | 10.32.8.21 | 10.30.55.21 | 3016.12 | u10-u13
+ s37-t29-sut1 | 2n-clx | SYS-7049GP-TRT | C7470KH37A30566 | 10.32.8.22 | 10.30.55.22 | 3016.12 | u6-u9
+ s38-t29-tg1 | 2n-clx | SYS-7049GP-TRT | C7470KH37A30506 | 10.32.8.23 | 10.30.55.23 | 3016.12 | u2-u5 \ No newline at end of file
diff --git a/docs/content/infrastructure/testbed_configuration/_index.md b/docs/content/infrastructure/testbed_configuration/_index.md
new file mode 100644
index 0000000000..79d0250474
--- /dev/null
+++ b/docs/content/infrastructure/testbed_configuration/_index.md
@@ -0,0 +1,6 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "FD.io DC Testbed Configuration"
+weight: 3
+--- \ No newline at end of file
diff --git a/docs/content/infrastructure/testbed_configuration/ami_alt_hw_bios_cfg.md b/docs/content/infrastructure/testbed_configuration/ami_alt_hw_bios_cfg.md
new file mode 100644
index 0000000000..d36d075e12
--- /dev/null
+++ b/docs/content/infrastructure/testbed_configuration/ami_alt_hw_bios_cfg.md
@@ -0,0 +1,1264 @@
+---
+bookToc: true
+title: "MegaRac Altra"
+---
+
+# MegaRac Altra
+
+## Linux lscpu
+
+```
+Architecture: aarch64
+ CPU op-mode(s): 32-bit, 64-bit
+ Byte Order: Little Endian
+CPU(s): 160
+ On-line CPU(s) list: 0-159
+Vendor ID: ARM
+ Model name: Neoverse-N1
+ Model: 1
+ Thread(s) per core: 1
+ Core(s) per socket: 80
+ Socket(s): 2
+ Stepping: r3p1
+ Frequency boost: disabled
+ CPU max MHz: 3000.0000
+ CPU min MHz: 1000.0000
+ BogoMIPS: 50.00
+ Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
+Caches (sum of all):
+ L1d: 10 MiB (160 instances)
+ L1i: 10 MiB (160 instances)
+ L2: 160 MiB (160 instances)
+NUMA:
+ NUMA node(s): 2
+ NUMA node0 CPU(s): 0-79
+ NUMA node1 CPU(s): 80-159
+Vulnerabilities:
+ Itlb multihit: Not affected
+ L1tf: Not affected
+ Mds: Not affected
+ Meltdown: Not affected
+ Mmio stale data: Not affected
+ Retbleed: Not affected
+ Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
+ Spectre v1: Mitigation; __user pointer sanitization
+ Spectre v2: Mitigation; CSV2, BHB
+ Srbds: Not affected
+ Tsx async abort: Not affected
+```
+
+## Linux dmidecode
+
+```
+# dmidecode 3.3
+Getting SMBIOS data from sysfs.
+SMBIOS 3.3.0 present.
+Table at 0xB1E10000.
+
+Handle 0x0000, DMI type 0, 26 bytes
+BIOS Information
+ Vendor: Ampere(R)
+ Version: 1.07.20210713 (SCP: 1.07.20210713)
+ Release Date: 2021/07/13
+ ROM Size: 7680 kB
+ Characteristics:
+ PCI is supported
+ BIOS is upgradeable
+ Boot from CD is supported
+ Selectable boot is supported
+ ACPI is supported
+ UEFI is supported
+ BIOS Revision: 5.15
+ Firmware Revision: 1.7
+
+Handle 0x0001, DMI type 1, 27 bytes
+System Information
+ Manufacturer: WIWYNN
+ Product Name: Mt.Jade Server System B81.030Z1.0007
+ Version: DVT
+ Serial Number: B81030Z1000704000059N0SC
+ UUID: 57c97bbe-008e-368f-19d0-595df92c6de0
+ Wake-up Type: Power Switch
+ SKU Number: NULL
+ Family: Altra
+
+Handle 0x0002, DMI type 2, 15 bytes
+Base Board Information
+ Manufacturer: WIWYNN
+ Product Name: Mt.Jade Motherboard
+ Version: B81.03010.0033
+ Serial Number: B8103010003303800033J0SA
+ Asset Tag: NULL
+ Features:
+ Board is a hosting board
+ Location In Chassis: Part Component
+ Chassis Handle: 0x0003
+ Type: Motherboard
+ Contained Object Handles: 0
+
+Handle 0x0003, DMI type 3, 22 bytes
+Chassis Information
+ Manufacturer: WIWYNN
+ Type: Rack Mount Chassis
+ Lock: Present
+ Version: B60.03008.0001
+ Serial Number: 04000059N0SC
+ Asset Tag: NULL
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: None
+ OEM Information: 0x00000000
+ Height: Unspecified
+ Number Of Power Cords: 1
+ Contained Elements: 0
+ SKU Number: Unknown
+```
+
+## Linux dmidecode memory
+
+```
+Handle 0x0020, DMI type 16, 23 bytes
+Physical Memory Array
+ Location: System Board Or Motherboard
+ Use: System Memory
+ Error Correction Type: Multi-bit ECC
+ Maximum Capacity: 4 TB
+ Error Information Handle: No Error
+ Number Of Devices: 16
+
+Handle 0x0026, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 1
+ Bank Locator: Bank 1
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 0197198A
+ Asset Tag: Array 1 Asset Tag 1
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0028, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: 0x0029
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 2
+ Bank Locator: Bank 2
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 2
+ Serial Number: Array 1 Serial Number 2
+ Asset Tag: Array 1 Asset Tag 2
+ Part Number: Array 1 Part Number 2
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0030, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 3
+ Bank Locator: Bank 3
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971992
+ Asset Tag: Array 1 Asset Tag 3
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0032, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: 0x0033
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 4
+ Bank Locator: Bank 4
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 4
+ Serial Number: Array 1 Serial Number 4
+ Asset Tag: Array 1 Asset Tag 4
+ Part Number: Array 1 Part Number 4
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0034, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 5
+ Bank Locator: Bank 5
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971989
+ Asset Tag: Array 1 Asset Tag 5
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0036, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: 0x0037
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 6
+ Bank Locator: Bank 6
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 6
+ Serial Number: Array 1 Serial Number 6
+ Asset Tag: Array 1 Asset Tag 6
+ Part Number: Array 1 Part Number 6
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0038, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 7
+ Bank Locator: Bank 7
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971BA1
+ Asset Tag: Array 1 Asset Tag 7
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0040, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: 0x0041
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 8
+ Bank Locator: Bank 8
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 8
+ Serial Number: Array 1 Serial Number 8
+ Asset Tag: Array 1 Asset Tag 8
+ Part Number: Array 1 Part Number 8
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0042, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 9
+ Bank Locator: Bank 9
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971930
+ Asset Tag: Array 1 Asset Tag 9
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0044, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: 0x0045
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 10
+ Bank Locator: Bank 10
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 10
+ Serial Number: Array 1 Serial Number 10
+ Asset Tag: Array 1 Asset Tag 10
+ Part Number: Array 1 Part Number 10
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0046, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 11
+ Bank Locator: Bank 11
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971BA2
+ Asset Tag: Array 1 Asset Tag 11
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0048, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: 0x0049
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 12
+ Bank Locator: Bank 12
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 12
+ Serial Number: Array 1 Serial Number 12
+ Asset Tag: Array 1 Asset Tag 12
+ Part Number: Array 1 Part Number 12
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0050, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 13
+ Bank Locator: Bank 13
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971957
+ Asset Tag: Array 1 Asset Tag 13
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0052, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: 0x0053
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 14
+ Bank Locator: Bank 14
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 14
+ Serial Number: Array 1 Serial Number 14
+ Asset Tag: Array 1 Asset Tag 14
+ Part Number: Array 1 Part Number 14
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0054, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 15
+ Bank Locator: Bank 15
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971B9E
+ Asset Tag: Array 1 Asset Tag 15
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0056, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0020
+ Error Information Handle: 0x0057
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 16
+ Bank Locator: Bank 16
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 16
+ Serial Number: Array 1 Serial Number 16
+ Asset Tag: Array 1 Asset Tag 16
+ Part Number: Array 1 Part Number 16
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0071, DMI type 16, 23 bytes
+Physical Memory Array
+ Location: System Board Or Motherboard
+ Use: System Memory
+ Error Correction Type: Multi-bit ECC
+ Maximum Capacity: 4 TB
+ Error Information Handle: No Error
+ Number Of Devices: 16
+
+Handle 0x0077, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 1
+ Bank Locator: Bank 1
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971918
+ Asset Tag: Array 1 Asset Tag 1
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x007A, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: 0x007C
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 2
+ Bank Locator: Bank 2
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 2
+ Serial Number: Array 1 Serial Number 2
+ Asset Tag: Array 1 Asset Tag 2
+ Part Number: Array 1 Part Number 2
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x007D, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 3
+ Bank Locator: Bank 3
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971970
+ Asset Tag: Array 1 Asset Tag 3
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0080, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: 0x0082
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 4
+ Bank Locator: Bank 4
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 4
+ Serial Number: Array 1 Serial Number 4
+ Asset Tag: Array 1 Asset Tag 4
+ Part Number: Array 1 Part Number 4
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0083, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 5
+ Bank Locator: Bank 5
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971993
+ Asset Tag: Array 1 Asset Tag 5
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0086, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: 0x0088
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 6
+ Bank Locator: Bank 6
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 6
+ Serial Number: Array 1 Serial Number 6
+ Asset Tag: Array 1 Asset Tag 6
+ Part Number: Array 1 Part Number 6
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0089, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 7
+ Bank Locator: Bank 7
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971985
+ Asset Tag: Array 1 Asset Tag 7
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x008C, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: 0x008E
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 8
+ Bank Locator: Bank 8
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 8
+ Serial Number: Array 1 Serial Number 8
+ Asset Tag: Array 1 Asset Tag 8
+ Part Number: Array 1 Part Number 8
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x008F, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 9
+ Bank Locator: Bank 9
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971917
+ Asset Tag: Array 1 Asset Tag 9
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0092, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: 0x0094
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 10
+ Bank Locator: Bank 10
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 10
+ Serial Number: Array 1 Serial Number 10
+ Asset Tag: Array 1 Asset Tag 10
+ Part Number: Array 1 Part Number 10
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0095, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 11
+ Bank Locator: Bank 11
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971984
+ Asset Tag: Array 1 Asset Tag 11
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0098, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: 0x009A
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 12
+ Bank Locator: Bank 12
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 12
+ Serial Number: Array 1 Serial Number 12
+ Asset Tag: Array 1 Asset Tag 12
+ Part Number: Array 1 Part Number 12
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x009B, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 13
+ Bank Locator: Bank 13
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971B37
+ Asset Tag: Array 1 Asset Tag 13
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x009E, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: 0x00A0
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 14
+ Bank Locator: Bank 14
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 14
+ Serial Number: Array 1 Serial Number 14
+ Asset Tag: Array 1 Asset Tag 14
+ Part Number: Array 1 Part Number 14
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x00A1, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: No Error
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 8 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 15
+ Bank Locator: Bank 15
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: 01971C99
+ Asset Tag: Array 1 Asset Tag 15
+ Part Number: M393A1K43DB2-CWE
+ Rank: 1
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.14 V
+ Maximum Voltage: 1.26 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: None
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 8 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x00A4, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0071
+ Error Information Handle: 0x00A6
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: Socket 1 DIMM 16
+ Bank Locator: Bank 16
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: Array 1 Manufacturer 16
+ Serial Number: Array 1 Serial Number 16
+ Asset Tag: Array 1 Asset Tag 16
+ Part Number: Array 1 Part Number 16
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+ Memory Technology: Unknown
+ Memory Operating Mode Capability: Unknown
+ Firmware Version: Not Specified
+ Module Manufacturer ID: Unknown
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: None
+ Cache Size: None
+ Logical Size: None
+```
+
+## Linux cmdline
+
+```
+BOOT_IMAGE=/boot/vmlinuz-5.15.0-46-generic root=UUID=7d1d0e77-4df0-43df-9619-a99db29ffb83 ro audit=0 default_hugepagesz=2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768 iommu.passthrough=1 isolcpus=1-10,29-38 nmi_watchdog=0 nohz_full=1-10,29-38 nosoftlockup processor.max_cstate=1 rcu_nocbs=1-10,29-38 console=ttyAMA0,115200n8 quiet
+```
diff --git a/docs/content/infrastructure/testbed_configuration/gigabyte_tx2_hw_bios_cfg.md b/docs/content/infrastructure/testbed_configuration/gigabyte_tx2_hw_bios_cfg.md
new file mode 100644
index 0000000000..5020cb70f9
--- /dev/null
+++ b/docs/content/infrastructure/testbed_configuration/gigabyte_tx2_hw_bios_cfg.md
@@ -0,0 +1,406 @@
+---
+bookToc: true
+title: "GigaByte ThunderX2"
+---
+
+# GigaByte ThunderX2
+
+## Linux lscpu
+
+```
+Architecture: aarch64
+ CPU op-mode(s): 64-bit
+ Byte Order: Little Endian
+CPU(s): 56
+ On-line CPU(s) list: 0-55
+Vendor ID: Cavium
+ Model name: ThunderX2 99xx
+ Model: 1
+ Thread(s) per core: 1
+ Core(s) per socket: 28
+ Socket(s): 2
+ Stepping: 0x1
+ Frequency boost: disabled
+ CPU max MHz: 2000.0000
+ CPU min MHz: 1000.0000
+ BogoMIPS: 400.00
+ Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm
+Caches (sum of all):
+ L1d: 1.8 MiB (56 instances)
+ L1i: 1.8 MiB (56 instances)
+ L2: 14 MiB (56 instances)
+ L3: 64 MiB (2 instances)
+NUMA:
+ NUMA node(s): 2
+ NUMA node0 CPU(s): 0-27
+ NUMA node1 CPU(s): 28-55
+Vulnerabilities:
+ Itlb multihit: Not affected
+ L1tf: Not affected
+ Mds: Not affected
+ Meltdown: Not affected
+ Mmio stale data: Not affected
+ Retbleed: Not affected
+ Spec store bypass: Vulnerable
+ Spectre v1: Mitigation; __user pointer sanitization
+ Spectre v2: Vulnerable
+ Srbds: Not affected
+ Tsx async abort: Not affected
+```
+
+## Linux dmidecode
+
+```
+# dmidecode 3.3
+Getting SMBIOS data from sysfs.
+SMBIOS 3.1.1 present.
+Table at 0xFE340000.
+
+Handle 0x0000, DMI type 0, 26 bytes
+BIOS Information
+ Vendor: GIGABYTE
+ Version: F28
+ Release Date: 12/27/2019
+ Address: 0xF0000
+ Runtime Size: 64 kB
+ ROM Size: 32 MB
+ Characteristics:
+ PCI is supported
+ BIOS is upgradeable
+ BIOS shadowing is allowed
+ Boot from CD is supported
+ Selectable boot is supported
+ BIOS ROM is socketed
+ ACPI is supported
+ BIOS boot specification is supported
+ Targeted content distribution is supported
+ UEFI is supported
+ BIOS Revision: 7.3
+
+Handle 0x0001, DMI type 1, 27 bytes
+System Information
+ Manufacturer: GIGABYTE
+ Product Name: R181-T90-00
+ Version: 0100
+ Serial Number: GIG7P9512A0022
+ UUID: 00000000-0000-0040-8000-e0d55eae7026
+ Wake-up Type: Power Switch
+ SKU Number: SABER SKU
+ Family: Server
+
+Handle 0x0002, DMI type 2, 15 bytes
+Base Board Information
+ Manufacturer: GIGABYTE
+ Product Name: MT91-FS1-00
+ Version: 01000100
+ Serial Number: IH6P8800035
+ Asset Tag: 01234567890123456789AB
+ Features:
+ Board is a hosting board
+ Board is replaceable
+ Location In Chassis: Default string
+ Chassis Handle: 0x0003
+ Type: Motherboard
+ Contained Object Handles: 0
+
+Handle 0x0003, DMI type 3, 22 bytes
+Chassis Information
+ Manufacturer: GIGABYTE
+ Type: Rack Mount Chassis
+ Lock: Not Present
+ Version: 1.0
+ Serial Number: K61186073100003
+ Asset Tag: 01234567890123456789AB
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: None
+ OEM Information: 0x00000000
+ Height: Unspecified
+ Number Of Power Cords: 1
+ Contained Elements: 0
+ SKU Number: Default string
+
+Handle 0x0004, DMI type 10, 6 bytes
+On Board Device Information
+ Type: Unknown
+ Status: Enabled
+ Description: Device 1
+
+Handle 0x0005, DMI type 12, 5 bytes
+System Configuration Options
+ Option 1: Default string
+
+Handle 0x0006, DMI type 13, 22 bytes
+BIOS Language Information
+ Language Description Format: Long
+ Installable Languages: 1
+ en|US|iso8859-1
+ Currently Installed Language: en|US|iso8859-1
+
+Handle 0x0007, DMI type 31, 28 bytes
+Boot Integrity Services Entry Point
+ Checksum: Invalid
+ 16-bit Entry Point Address: FFFF:FFFF
+ 32-bit Entry Point Address: 0xFFFFFFFF
+
+Handle 0x0008, DMI type 32, 11 bytes
+System Boot Information
+ Status: No errors detected
+
+Handle 0x0009, DMI type 39, 22 bytes
+System Power Supply
+ Power Unit Group: 1
+ Location: CHINA
+ Name: FSP1200-20ERM
+ Manufacturer: FSP GROUP
+ Serial Number: WS8011100823
+ Asset Tag: Default string
+ Model Part Number: FSP1200-20ERM
+ Revision: 10
+ Max Power Capacity: 2648 W
+ Status: Present, OK
+ Type: Switching
+ Input Voltage Range Switching: Auto-switch
+ Plugged: Yes
+ Hot Replaceable: No
+
+Handle 0x0010, DMI type 39, 22 bytes
+System Power Supply
+ Power Unit Group: 1
+ Location: CHINA
+ Name: FSP1200-20ERM
+ Manufacturer: FSP GROUP
+ Serial Number: WS8011100830
+ Asset Tag: Default string
+ Model Part Number: FSP1200-20ERM
+ Revision: 10
+ Max Power Capacity: 2648 W
+ Status: Present, OK
+ Type: Switching
+ Input Voltage Range Switching: Auto-switch
+ Plugged: Yes
+ Hot Replaceable: No
+
+Handle 0x0011, DMI type 41, 11 bytes
+Onboard Device
+ Reference Designation: Device 1
+ Type: Unknown
+ Status: Enabled
+ Type Instance: 1
+ Bus Address: 0000:00:00.0
+
+Handle 0x0012, DMI type 41, 11 bytes
+Onboard Device
+ Reference Designation: Device 2
+ Type: Unknown
+ Status: Enabled
+ Type Instance: 1
+ Bus Address: 0000:00:00.0
+
+Handle 0x0013, DMI type 41, 11 bytes
+Onboard Device
+ Reference Designation: Device 3
+ Type: Unknown
+ Status: Enabled
+ Type Instance: 1
+ Bus Address: 0000:00:00.0
+
+Handle 0x0014, DMI type 41, 11 bytes
+Onboard Device
+ Reference Designation: Device 4
+ Type: Unknown
+ Status: Enabled
+ Type Instance: 1
+ Bus Address: 0000:00:00.0
+
+Handle 0x0015, DMI type 41, 11 bytes
+Onboard Device
+ Reference Designation: Device 5
+ Type: Unknown
+ Status: Enabled
+ Type Instance: 1
+ Bus Address: 0000:00:00.0
+
+Handle 0x0016, DMI type 38, 18 bytes
+IPMI Device Information
+ Interface Type: SSIF (SMBus System Interface)
+ Specification Version: 2.0
+ I2C Slave Address: 0x10
+ NV Storage Device: Not Present
+ Base Address: 0x10 (SMBus)
+
+Handle 0x0017, DMI type 42, 12 bytes
+Management Controller Host Interface
+ Interface Type: OEM
+ Vendor ID: 0xFF0102FF
+
+Handle 0x0029, DMI type 11, 5 bytes
+OEM Strings
+ String 1: HWID=E38C
+ String 2: cavium.com
+ String 3: Saber
+
+Handle 0x002A, DMI type 13, 22 bytes
+BIOS Language Information
+ Language Description Format: Abbreviated
+ Installable Languages: 1
+ enUS
+ Currently Installed Language: enUS
+
+Handle 0x002B, DMI type 4, 48 bytes
+Processor Information
+ Socket Designation: Socket 0
+ Type: Central Processor
+ Family: ARM
+ Manufacturer: Cavium Inc.
+ ID: F1 0A 1F 43 00 00 00 00
+ Signature: Implementor 0x43, Variant 0x1, Architecture 15, Part 0x0af, Revision 1
+ Version: Cavium ThunderX2(R) CPU CN9975 v2.1 @ 2.0GHz
+ Voltage: 0.8 V
+ External Clock: 33 MHz
+ Max Speed: 2500 MHz
+ Current Speed: 2000 MHz
+ Status: Populated, Enabled
+ Upgrade: Other
+ L1 Cache Handle: 0x002C
+ L2 Cache Handle: 0x002E
+ L3 Cache Handle: 0x002F
+ Serial Number: 000081D4-4003326A
+ Asset Tag: Not Specified
+ Part Number: CN9975-2000BG4077-Y21-G
+ Core Count: 28
+ Core Enabled: 28
+ Thread Count: 28
+ Characteristics:
+ 64-bit capable
+ Multi-Core
+ Hardware Thread
+ Execute Protection
+ Enhanced Virtualization
+ Power/Performance Control
+```
+
+## Linux dmidecode memory
+
+```
+Handle 0x003E, DMI type 16, 23 bytes
+Physical Memory Array
+ Location: System Board Or Motherboard
+ Use: System Memory
+ Error Correction Type: Multi-bit ECC
+ Maximum Capacity: 2 TB
+ Error Information Handle: Not Provided
+ Number Of Devices: 12
+
+Handle 0x003F, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x003E
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM_P0_A0
+ Bank Locator: N0
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Micron Technology
+ Serial Number: 469570327
+ Asset Tag: Not Specified
+ Part Number: 36ASF4G72PZ-2G3B1
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+Handle 0x0040, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x003E
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM_P0_B0
+ Bank Locator: N0
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Micron Technology
+ Serial Number: 469570172
+ Asset Tag: Not Specified
+ Part Number: 36ASF4G72PZ-2G3B1
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+Handle 0x0050, DMI type 16, 23 bytes
+Physical Memory Array
+ Location: System Board Or Motherboard
+ Use: System Memory
+ Error Correction Type: Multi-bit ECC
+ Maximum Capacity: 2 TB
+ Error Information Handle: Not Provided
+ Number Of Devices: 12
+
+Handle 0x0051, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0050
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM_P1_I0
+ Bank Locator: N1
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Micron Technology
+ Serial Number: 469567519
+ Asset Tag: Not Specified
+ Part Number: 36ASF4G72PZ-2G3B1
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+Handle 0x0052, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0050
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM_P1_J0
+ Bank Locator: N1
+ Type: DDR4
+ Type Detail: Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Micron Technology
+ Serial Number: 469567696
+ Asset Tag: Not Specified
+ Part Number: 36ASF4G72PZ-2G3B1
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+```
+
+## Linux cmdline
+
+```
+BOOT_IMAGE=/boot/vmlinuz-5.4.0-65-generic root=UUID=7d1d0e77-4df0-43df-9619-a99db29ffb83 ro audit=0 intel_iommu=on isolcpus=1-27,29-55 nmi_watchdog=0 nohz_full=1-27,29-55 nosoftlockup processor.max_cstate=1 rcu_nocbs=1-27,29-55 console=ttyAMA0,115200n8 quiet
+```
diff --git a/docs/content/infrastructure/testbed_configuration/huawei_tsh_hw_bios_cfg.md b/docs/content/infrastructure/testbed_configuration/huawei_tsh_hw_bios_cfg.md
new file mode 100644
index 0000000000..6803fd615b
--- /dev/null
+++ b/docs/content/infrastructure/testbed_configuration/huawei_tsh_hw_bios_cfg.md
@@ -0,0 +1,534 @@
+---
+bookToc: true
+title: "Huawei Taishan"
+---
+
+# Huawei Taishan
+
+## Linux lscpu
+
+```
+Architecture: aarch64
+ CPU op-mode(s): 32-bit, 64-bit
+ Byte Order: Little Endian
+CPU(s): 64
+ On-line CPU(s) list: 0-63
+Vendor ID: ARM
+ Model name: Cortex-A72
+ Model: 2
+ Thread(s) per core: 1
+ Core(s) per socket: 32
+ Socket(s): 2
+ Stepping: r0p2
+ BogoMIPS: 100.00
+ Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
+Caches (sum of all):
+ L1d: 2 MiB (64 instances)
+ L1i: 3 MiB (64 instances)
+ L2: 16 MiB (16 instances)
+ L3: 64 MiB (4 instances)
+NUMA:
+ NUMA node(s): 4
+ NUMA node0 CPU(s): 0-15
+ NUMA node1 CPU(s): 16-31
+ NUMA node2 CPU(s): 32-47
+ NUMA node3 CPU(s): 48-63
+Vulnerabilities:
+ Itlb multihit: Not affected
+ L1tf: Not affected
+ Mds: Not affected
+ Meltdown: Not affected
+ Mmio stale data: Not affected
+ Retbleed: Not affected
+ Spec store bypass: Vulnerable
+ Spectre v1: Mitigation; __user pointer sanitization
+ Spectre v2: Vulnerable
+ Srbds: Not affected
+ Tsx async abort: Not affected
+```
+
+## Linux dmidecode
+
+```
+# dmidecode 3.3
+Getting SMBIOS data from sysfs.
+SMBIOS 3.0.0 present.
+Table at 0x39150000.
+
+Handle 0x0000, DMI type 0, 24 bytes
+BIOS Information
+ Vendor: Huawei Corp.
+ Version: Estuary-5.1 D05 LTS
+ Release Date: 05/25/2018
+ Address: 0xA4800
+ Runtime Size: 366 kB
+ ROM Size: 3 MB
+ Characteristics:
+ PCI is supported
+ BIOS is upgradeable
+ BIOS shadowing is allowed
+ Boot from CD is supported
+ Selectable boot is supported
+ EDD is supported
+ Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
+ Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
+ 5.25"/360 kB floppy services are supported (int 13h)
+ 5.25"/1.2 MB floppy services are supported (int 13h)
+ 3.5"/720 kB floppy services are supported (int 13h)
+ 3.5"/2.88 MB floppy services are supported (int 13h)
+ 8042 keyboard services are supported (int 9h)
+ CGA/mono video services are supported (int 10h)
+ ACPI is supported
+ USB legacy is supported
+ BIOS boot specification is supported
+ Targeted content distribution is supported
+ UEFI is supported
+ BIOS Revision: 0.0
+
+Handle 0x0001, DMI type 1, 27 bytes
+System Information
+ Manufacturer: Huawei
+ Product Name: D05
+ Version: VER.A
+ Serial Number: 2102311TBJ10J1000089
+ UUID: e11a0a38-f920-11e7-8c7d-a0a33bc11426
+ Wake-up Type: Power Switch
+ SKU Number: To be filled by O.E.M.
+ Family: To be filled by O.E.M.
+
+Handle 0x0002, DMI type 3, 25 bytes
+Chassis Information
+ Manufacturer: Huawei
+ Type: Main Server Chassis
+ Lock: Not Present
+ Version: To be filled by O.E.M.
+ Serial Number: To be filled by O.E.M.
+ Asset Tag: To be filled by O.E.M.
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: None
+ OEM Information: 0x00000000
+ Height: 2 U
+ Number Of Power Cords: 1
+ Contained Elements: 0
+ SKU Number: Not Specified
+
+Handle 0x0003, DMI type 2, 17 bytes
+Base Board Information
+ Manufacturer: Huawei
+ Product Name: D05
+ Version: Estuary
+ Serial Number: 024APL10H8000089
+ Asset Tag: To be filled by O.E.M.
+ Features:
+ Board is a hosting board
+ Board is replaceable
+ Location In Chassis: To Be Filled By O.E.M.
+ Chassis Handle: 0x0002
+ Type: Motherboard
+ Contained Object Handles: 0
+```
+
+## Linux dmidecode memory
+
+```
+Handle 0x0007, DMI type 16, 23 bytes
+Physical Memory Array
+ Location: System Board Or Motherboard
+ Use: System Memory
+ Error Correction Type: None
+ Maximum Capacity: 512 GB
+ Error Information Handle: Not Provided
+ Number Of Devices: 16
+
+Handle 0x0009, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM000 J5
+ Bank Locator: SOCKET 0 CHANNEL 0 DIMM 0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Samsung
+ Serial Number: 0x37663087
+ Asset Tag: Unknown
+ Part Number: M393A2K43BB1-CRC
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 2.0 V
+ Configured Voltage: 1.2 V
+
+Handle 0x000A, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM001 J6
+ Bank Locator: SOCKET 0 CHANNEL 0 DIMM 1
+ Type: Unknown
+ Type Detail: Unknown Synchronous
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+
+Handle 0x000B, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM010 J8
+ Bank Locator: SOCKET 0 CHANNEL 1 DIMM 0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Samsung
+ Serial Number: 0x37663064
+ Asset Tag: Unknown
+ Part Number: M393A2K43BB1-CRC
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 2.0 V
+ Configured Voltage: 1.2 V
+
+Handle 0x000C, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM011 J9
+ Bank Locator: SOCKET 0 CHANNEL 1 DIMM 1
+ Type: Unknown
+ Type Detail: Unknown Synchronous
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+
+Handle 0x000D, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM020 J11
+ Bank Locator: SOCKET 0 CHANNEL 2 DIMM 0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Samsung
+ Serial Number: 0x3766308B
+ Asset Tag: Unknown
+ Part Number: M393A2K43BB1-CRC
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 2.0 V
+ Configured Voltage: 1.2 V
+
+Handle 0x000E, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM021 J12
+ Bank Locator: SOCKET 0 CHANNEL 2 DIMM 1
+ Type: Unknown
+ Type Detail: Unknown Synchronous
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+
+Handle 0x000F, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM030 J14
+ Bank Locator: SOCKET 0 CHANNEL 3 DIMM 0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Samsung
+ Serial Number: 0x376630DA
+ Asset Tag: Unknown
+ Part Number: M393A2K43BB1-CRC
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 2.0 V
+ Configured Voltage: 1.2 V
+
+Handle 0x0010, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM031 J15
+ Bank Locator: SOCKET 0 CHANNEL 3 DIMM 1
+ Type: Unknown
+ Type Detail: Unknown Synchronous
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+
+Handle 0x0011, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM100 J17
+ Bank Locator: SOCKET 1 CHANNEL 0 DIMM 0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Samsung
+ Serial Number: 0x379A2774
+ Asset Tag: Unknown
+ Part Number: M393A2K43BB1-CRC
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 2.0 V
+ Configured Voltage: 1.2 V
+
+Handle 0x0012, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM101 J18
+ Bank Locator: SOCKET 1 CHANNEL 0 DIMM 1
+ Type: Unknown
+ Type Detail: Unknown Synchronous
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+
+Handle 0x0013, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM110 J20
+ Bank Locator: SOCKET 1 CHANNEL 1 DIMM 0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Samsung
+ Serial Number: 0x3766308A
+ Asset Tag: Unknown
+ Part Number: M393A2K43BB1-CRC
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 2.0 V
+ Configured Voltage: 1.2 V
+
+Handle 0x0014, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM111 J21
+ Bank Locator: SOCKET 1 CHANNEL 1 DIMM 1
+ Type: Unknown
+ Type Detail: Unknown Synchronous
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+
+Handle 0x0015, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM120 J23
+ Bank Locator: SOCKET 1 CHANNEL 2 DIMM 0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Samsung
+ Serial Number: 0x376630B0
+ Asset Tag: Unknown
+ Part Number: M393A2K43BB1-CRC
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 2.0 V
+ Configured Voltage: 1.2 V
+
+Handle 0x0016, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM121 J24
+ Bank Locator: SOCKET 1 CHANNEL 2 DIMM 1
+ Type: Unknown
+ Type Detail: Unknown Synchronous
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+
+Handle 0x0017, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM130 J26
+ Bank Locator: SOCKET 1 CHANNEL 3 DIMM 0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 2400 MT/s
+ Manufacturer: Samsung
+ Serial Number: 0x376630A0
+ Asset Tag: Unknown
+ Part Number: M393A2K43BB1-CRC
+ Rank: 2
+ Configured Memory Speed: 2400 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 2.0 V
+ Configured Voltage: 1.2 V
+
+Handle 0x0018, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x0007
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM131 J27
+ Bank Locator: SOCKET 1 CHANNEL 3 DIMM 1
+ Type: Unknown
+ Type Detail: Unknown Synchronous
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+```
+
+## Linux cmdline
+
+```
+BOOT_IMAGE=/boot/vmlinuz-5.4.0-65-generic root=UUID=7d1d0e77-4df0-43df-9619-a99db29ffb83 ro audit=0 intel_iommu=on isolcpus=1-27,29-55 nmi_watchdog=0 nohz_full=1-27,29-55 nosoftlockup processor.max_cstate=1 rcu_nocbs=1-27,29-55 console=ttyAMA0,115200n8 quiet
+```
diff --git a/docs/content/infrastructure/testbed_configuration/sm_clx_hw_bios_cfg.md b/docs/content/infrastructure/testbed_configuration/sm_clx_hw_bios_cfg.md
new file mode 100644
index 0000000000..c955b424fe
--- /dev/null
+++ b/docs/content/infrastructure/testbed_configuration/sm_clx_hw_bios_cfg.md
@@ -0,0 +1,1425 @@
+---
+bookToc: true
+title: "SuperMicro Cascadelake"
+---
+
+# SuperMicro Cascadelake
+
+## Linux lscpu
+
+```
+Architecture: x86_64
+CPU op-mode(s): 32-bit, 64-bit
+Byte Order: Little Endian
+CPU(s): 112
+On-line CPU(s) list: 0-111
+Thread(s) per core: 2
+Core(s) per socket: 28
+Socket(s): 2
+NUMA node(s): 2
+Vendor ID: GenuineIntel
+CPU family: 6
+Model: 85
+Model name: Intel(R) Xeon(R) Platinum 8280 CPU @ 2.70GHz
+Stepping: 7
+CPU MHz: 3299.609
+BogoMIPS: 5400.00
+Virtualization: VT-x
+L1d cache: 32K
+L1i cache: 32K
+L2 cache: 1024K
+L3 cache: 39424K
+NUMA node0 CPU(s): 0-27,56-83
+NUMA node1 CPU(s): 28-55,84-111
+Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
+cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
+pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology
+nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est
+tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt
+tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch
+cpuid_fault epb cat_l3 cdp_l3 invpcid_single ssbd mba ibrs ibpb stibp
+ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1
+hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx
+smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1
+xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts
+pku ospke avx512_vnni md_clear flush_l1d arch_capabilities
+```
+
+```
+Architecture: x86_64
+CPU op-mode(s): 32-bit, 64-bit
+Byte Order: Little Endian
+CPU(s): 96
+On-line CPU(s) list: 0-95
+Thread(s) per core: 2
+Core(s) per socket: 24
+Socket(s): 2
+NUMA node(s): 2
+Vendor ID: GenuineIntel
+CPU family: 6
+Model: 85
+Model name: Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz
+Stepping: 7
+CPU MHz: 3000.989
+BogoMIPS: 4600.00
+Virtualization: VT-x
+L1d cache: 32K
+L1i cache: 32K
+L2 cache: 1024K
+L3 cache: 36608K
+NUMA node0 CPU(s): 0-23,48-71
+NUMA node1 CPU(s): 24-47,72-95
+Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
+cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
+pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology
+nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2
+ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt
+tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch
+cpuid_fault epb cat_l3 cdp_l3 invpcid_single ssbd mba ibrs ibpb stibp
+ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle
+avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap
+clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1
+xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts
+pku ospke avx512_vnni md_clear flush_l1d arch_capabilities
+```
+
+## Linux dmidecode
+
+```
+ # dmidecode 3.1
+ Getting SMBIOS data from sysfs.
+ SMBIOS 3.1.2 present.
+ Table at 0x6EB92000.
+
+ Handle 0x0000, DMI type 0, 26 bytes
+ BIOS Information
+ Vendor: American Megatrends Inc.
+ Version: 3.0c
+ Release Date: 03/27/2019
+ Address: 0xF0000
+ Runtime Size: 64 kB
+ ROM Size: 32 MB
+ Characteristics:
+ PCI is supported
+ BIOS is upgradeable
+ BIOS shadowing is allowed
+ Boot from CD is supported
+ Selectable boot is supported
+ BIOS ROM is socketed
+ EDD is supported
+ 5.25"/1.2 MB floppy services are supported (int 13h)
+ 3.5"/720 kB floppy services are supported (int 13h)
+ 3.5"/2.88 MB floppy services are supported (int 13h)
+ Print screen service is supported (int 5h)
+ Serial services are supported (int 14h)
+ Printer services are supported (int 17h)
+ ACPI is supported
+ USB legacy is supported
+ BIOS boot specification is supported
+ Targeted content distribution is supported
+ UEFI is supported
+ BIOS Revision: 5.14
+
+ Handle 0x0001, DMI type 1, 27 bytes
+ System Information
+ Manufacturer: Supermicro
+ Product Name: SYS-7049GP-TRT
+ Version: 0123456789
+ Serial Number: S291427X9525476
+ UUID: 00000000-0000-0000-0000-AC1F6BACD7BA
+ Wake-up Type: Power Switch
+ SKU Number: To be filled by O.E.M.
+ Family: To be filled by O.E.M.
+
+ Handle 0x0002, DMI type 2, 15 bytes
+ Base Board Information
+ Manufacturer: Supermicro
+ Product Name: X11DPG-QT
+ Version: 1.10A
+ Serial Number: VM189S007860
+ Asset Tag: To be filled by O.E.M.
+ Features:
+ Board is a hosting board
+ Board is replaceable
+ Location In Chassis: To be filled by O.E.M.
+ Chassis Handle: 0x0003
+ Type: Motherboard
+ Contained Object Handles: 0
+
+ Handle 0x0003, DMI type 3, 22 bytes
+ Chassis Information
+ Manufacturer: Supermicro
+ Type: Other
+ Lock: Not Present
+ Version: 0123456789
+ Serial Number: C7470KH37A30566
+ Asset Tag: To be filled by O.E.M.
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: None
+ OEM Information: 0x00000000
+ Height: Unspecified
+ Number Of Power Cords: 1
+ Contained Elements: 0
+ SKU Number: To be filled by O.E.M.
+
+ Handle 0x0055, DMI type 4, 48 bytes
+ Processor Information
+ Socket Designation: CPU1
+ Type: Central Processor
+ Family: Xeon
+ Manufacturer: Intel(R) Corporation
+ ID: 57 06 05 00 FF FB EB BF
+ Signature: Type 0, Family 6, Model 85, Stepping 7
+ Flags:
+ FPU (Floating-point unit on-chip)
+ VME (Virtual mode extension)
+ DE (Debugging extension)
+ PSE (Page size extension)
+ TSC (Time stamp counter)
+ MSR (Model specific registers)
+ PAE (Physical address extension)
+ MCE (Machine check exception)
+ CX8 (CMPXCHG8 instruction supported)
+ APIC (On-chip APIC hardware supported)
+ SEP (Fast system call)
+ MTRR (Memory type range registers)
+ PGE (Page global enable)
+ MCA (Machine check architecture)
+ CMOV (Conditional move instruction supported)
+ PAT (Page attribute table)
+ PSE-36 (36-bit page size extension)
+ CLFSH (CLFLUSH instruction supported)
+ DS (Debug store)
+ ACPI (ACPI supported)
+ MMX (MMX technology supported)
+ FXSR (FXSAVE and FXSTOR instructions supported)
+ SSE (Streaming SIMD extensions)
+ SSE2 (Streaming SIMD extensions 2)
+ SS (Self-snoop)
+ HTT (Multi-threading)
+ TM (Thermal monitor supported)
+ PBE (Pending break enabled)
+ Version: Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz
+ Voltage: 1.6 V
+ External Clock: 100 MHz
+ Max Speed: 4500 MHz
+ Current Speed: 2300 MHz
+ Status: Populated, Enabled
+ Upgrade: Socket LGA3647-1
+ L1 Cache Handle: 0x0052
+ L2 Cache Handle: 0x0053
+ L3 Cache Handle: 0x0054
+ Serial Number: Not Specified
+ Asset Tag: UNKNOWN
+ Part Number: Not Specified
+ Core Count: 24
+ Core Enabled: 24
+ Thread Count: 48
+ Characteristics:
+ 64-bit capable
+ Multi-Core
+ Hardware Thread
+ Execute Protection
+ Enhanced Virtualization
+ Power/Performance Control
+
+ Handle 0x0059, DMI type 4, 48 bytes
+ Processor Information
+ Socket Designation: CPU2
+ Type: Central Processor
+ Family: Xeon
+ Manufacturer: Intel(R) Corporation
+ ID: 57 06 05 00 FF FB EB BF
+ Signature: Type 0, Family 6, Model 85, Stepping 7
+ Flags:
+ FPU (Floating-point unit on-chip)
+ VME (Virtual mode extension)
+ DE (Debugging extension)
+ PSE (Page size extension)
+ TSC (Time stamp counter)
+ MSR (Model specific registers)
+ PAE (Physical address extension)
+ MCE (Machine check exception)
+ CX8 (CMPXCHG8 instruction supported)
+ APIC (On-chip APIC hardware supported)
+ SEP (Fast system call)
+ MTRR (Memory type range registers)
+ PGE (Page global enable)
+ MCA (Machine check architecture)
+ CMOV (Conditional move instruction supported)
+ PAT (Page attribute table)
+ PSE-36 (36-bit page size extension)
+ CLFSH (CLFLUSH instruction supported)
+ DS (Debug store)
+ ACPI (ACPI supported)
+ MMX (MMX technology supported)
+ FXSR (FXSAVE and FXSTOR instructions supported)
+ SSE (Streaming SIMD extensions)
+ SSE2 (Streaming SIMD extensions 2)
+ SS (Self-snoop)
+ HTT (Multi-threading)
+ TM (Thermal monitor supported)
+ PBE (Pending break enabled)
+ Version: Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz
+ Voltage: 1.6 V
+ External Clock: 100 MHz
+ Max Speed: 4500 MHz
+ Current Speed: 2300 MHz
+ Status: Populated, Enabled
+ Upgrade: Socket LGA3647-1
+ L1 Cache Handle: 0x0056
+ L2 Cache Handle: 0x0057
+ L3 Cache Handle: 0x0058
+ Serial Number: Not Specified
+ Asset Tag: UNKNOWN
+ Part Number: Not Specified
+ Core Count: 24
+ Core Enabled: 24
+ Thread Count: 48
+ Characteristics:
+ 64-bit capable
+ Multi-Core
+ Hardware Thread
+ Execute Protection
+ Enhanced Virtualization
+ Power/Performance Control
+```
+
+## Linux dmidecode pci
+
+```
+ Handle 0x000B, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: CPU1 SLOT2 PCI-E 3.0 X16
+ Type: x16 PCI Express 3 x16
+ Current Usage: In Use
+ Length: Long
+ ID: 2
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:18:00.0
+
+ Handle 0x000C, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: CPU1 SLOT4 PCI-E 3.0 X16
+ Type: x16 PCI Express 3 x16
+ Current Usage: In Use
+ Length: Short
+ ID: 4
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:3b:00.0
+
+ Handle 0x000D, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: CPU2 SLOT6 PCI-E 3.0 X16
+ Type: x16 PCI Express 3 x16
+ Current Usage: Available
+ Length: Short
+ ID: 6
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:ff:00.0
+
+ Handle 0x000E, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: CPU2 SLOT8 PCI-E 3.0 X16
+ Type: x16 PCI Express 3 x16
+ Current Usage: Available
+ Length: Short
+ ID: 8
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:ff:00.0
+
+ Handle 0x000F, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: CPU1 SLOT9 PCI-E 3.0 X16
+ Type: x16 PCI Express 3 x16
+ Current Usage: Available
+ Length: Short
+ ID: 9
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:ff:00.0
+
+ Handle 0x0010, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: CPU2 SLOT10 PCI-E 3.0 X16
+ Type: x16 PCI Express 3 x16
+ Current Usage: Available
+ Length: Short
+ ID: 10
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:ff:00.0
+
+ Handle 0x0011, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: CPU2 SLOT11 PCI-E 3.0 X4(IN X8)
+ Type: x4 PCI Express 3 x8
+ Current Usage: Available
+ Length: Short
+ ID: 11
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:ff:00.0
+
+ Handle 0x0012, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: M.2 CONNECTOR
+ Type: x4 M.2 Socket 2
+ Current Usage: Available
+ Length: Short
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:ff:00.0
+```
+
+## Linux dmidecode memory
+
+```
+ Handle 0x0023, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0021
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMA1
+ Bank Locator: P0_Node0_Channel0_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93275F0E
+ Asset Tag: P1-DIMMA1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0024, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0021
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMA2
+ Bank Locator: P0_Node0_Channel0_Dimm1
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Clock Speed: Unknown
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0025, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0021
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMB1
+ Bank Locator: P0_Node0_Channel1_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93275F1F
+ Asset Tag: P1-DIMMB1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0027, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0021
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMC1
+ Bank Locator: P0_Node0_Channel2_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93275F07
+ Asset Tag: P1-DIMMC1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x002B, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0029
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMD1
+ Bank Locator: P0_Node1_Channel0_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93275F02
+ Asset Tag: P1-DIMMD1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x002C, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0029
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMD2
+ Bank Locator: P0_Node1_Channel0_Dimm1
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Clock Speed: Unknown
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x002D, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0029
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMME1
+ Bank Locator: P0_Node1_Channel1_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93275F19
+ Asset Tag: P1-DIMME1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x002F, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0029
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMF1
+ Bank Locator: P0_Node1_Channel2_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93275FD3
+ Asset Tag: P1-DIMMF1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0031, DMI type 16, 23 bytes
+ Physical Memory Array
+ Location: System Board Or Motherboard
+ Use: System Memory
+ Error Correction Type: Single-bit ECC
+ Maximum Capacity: 2304 GB
+ Error Information Handle: Not Provided
+ Number Of Devices: 4
+
+ Handle 0x0033, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0031
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMA1
+ Bank Locator: P1_Node0_Channel0_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93275FE2
+ Asset Tag: P2-DIMMA1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0034, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0031
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMA2
+ Bank Locator: P1_Node0_Channel0_Dimm1
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Clock Speed: Unknown
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0035, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0031
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMB1
+ Bank Locator: P1_Node0_Channel1_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93276001
+ Asset Tag: P2-DIMMB1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0037, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0031
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMC1
+ Bank Locator: P1_Node0_Channel2_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93276005
+ Asset Tag: P2-DIMMC1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0039, DMI type 16, 23 bytes
+ Physical Memory Array
+ Location: System Board Or Motherboard
+ Use: System Memory
+ Error Correction Type: Single-bit ECC
+ Maximum Capacity: 2304 GB
+ Error Information Handle: Not Provided
+ Number Of Devices: 4
+
+ Handle 0x003B, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0039
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMD1
+ Bank Locator: P1_Node1_Channel0_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93275F44
+ Asset Tag: P2-DIMMD1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x003C, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0039
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: No Module Installed
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMD2
+ Bank Locator: P1_Node1_Channel0_Dimm1
+ Type: Unknown
+ Type Detail: Unknown
+ Speed: Unknown
+ Manufacturer: NO DIMM
+ Serial Number: NO DIMM
+ Asset Tag: NO DIMM
+ Part Number: NO DIMM
+ Rank: Unknown
+ Configured Clock Speed: Unknown
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x003D, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0039
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMME1
+ Bank Locator: P1_Node1_Channel1_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93275FDF
+ Asset Tag: P2-DIMME1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x003F, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0039
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMF1
+ Bank Locator: P1_Node1_Channel2_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous
+ Speed: 2933 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 93275FDD
+ Asset Tag: P2-DIMMF1_AssetTag (date:19/22)
+ Part Number: HMA82GR7CJR8N-WM
+ Rank: 2
+ Configured Clock Speed: 2934 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+```
+
+## Xeon CLX Server BIOS Configuration - TG
+
+### Boot Feature
+
+```
+ | Quiet Boot [Enabled] |Boot option |
+ | | |
+ | Option ROM Messages [Force BIOS] | |
+ | Bootup NumLock State [On] | |
+ | Wait For "F1" If Error [Enabled] | |
+ | INT19 Trap Response [Immediate] | |
+ | Re-try Boot [Disabled] | |
+ | Install Windows 7 USB support [Disabled] | |
+ | Port 61h Bit-4 Emulation [Disabled] | |
+ | | |
+ | Power Configuration | |
+ | Watch Dog Function [Disabled] | |
+ | Restore on AC Power Loss [Last State] | |
+ | Power Button Function [Instant Off] | |
+```
+
+### CPU Configuration
+
+```
+ | Processor Configuration ^|Enables Hyper Threading |
+ | -------------------------------------------------- *|(Software Method to |
+ | Processor BSP Revision 50657 - CLX B1 *|Enable/Disable Logical |
+ | Processor Socket CPU1 | CPU2 *|Processor threads. |
+ | Processor ID 00050657* | 00050657 *| |
+ | Processor Frequency 2.700GHz | 2.700GHz *| |
+ | Processor Max Ratio 1BH | 1BH *| |
+ | Processor Min Ratio 0AH | 0AH *| |
+ | Microcode Revision 0500002C | 0500002C *| |
+ | L1 Cache RAM 64KB | 64KB *| |
+ | L2 Cache RAM 1024KB | 1024KB *| |
+ | L3 Cache RAM 39424KB | 39424KB *| |
+ | Processor 0 Version *| |
+ | Intel(R) Xeon(R) Platinum 8280 CPU @ 2.70GHz *| |
+ | Processor 1 Version *| |
+ | Intel(R) Xeon(R) Platinum 8280 CPU @ 2.70GHz *| |
+ | *|-----------------------------|
+ | Hyper-Threading [ALL] [Enable] *|><: Select Screen |
+ | Cores Enabled 0 *|^v: Select Item |
+ | Monitor/Mwait [Auto] *|Enter: Select |
+ | Execute Disable Bit [Enable] +|+/-: Change Opt. |
+ | Intel Virtualization Technology [Enable] +|F1: General Help |
+ | PPIN Control [Unlock/Enable] +|F2: Previous Values |
+ | Hardware Prefetcher [Enable] +|F3: Optimized Defaults |
+ | Adjacent Cache Prefetch [Enable] v|F4: Save & Exit |
+ | DCU Streamer Prefetcher [Enable] | |
+ | DCU IP Prefetcher [Enable] | |
+ | LLC Prefetch [Disable] | |
+ | Extended APIC [Disable] | |
+ | AES-NI [Enable] | |
+ |> Advanced Power Management Configuration | |
+```
+
+#### Advanced Power Management Configuration
+
+```
+ | Advanced Power Management Configuration |Switch CPU Power Management |
+ | -------------------------------------------------- |profile |
+ | Power Technology [Custom] | |
+ | Power Performance Tuning [BIOS Controls EPB] | |
+ | ENERGY_PERF_BIAS_CFG mode [Maximum Performance] | |
+ |> CPU P State Control | |
+ |> Hardware PM State Control | |
+ |> CPU C State Control | |
+ |> Package C State Control | |
+ |> CPU T State Control | |
+```
+
+##### CPU P State Control
+
+```
+ | CPU P State Control |EIST allows the processor |
+ | |to dynamically adjust |
+ | SpeedStep (P-States) [Disable] |frequency and voltage based |
+ | EIST PSD Function [HW_ALL] |on power versus performance |
+ | |needs. |
+ | | |
+```
+
+##### Hardware PM State Control
+
+```
+ | Hardware PM State Control |If set to Disable, hardware ^|
+ | |will choose a P-state *|
+ | Hardware P-States [Disable] |setting for the system *|
+ | |based on an OS request. *|
+ | |If set to Native Mode, *|
+ | |hardware will choose a *|
+ | |P-state setting based on OS *|
+ | |guidance. *|
+ | |If set to Native Mode with *|
+ | |No Legacy Support, hardware *|
+ | |will choose a P-state *|
+ | |setting independently *|
+ | |without OS guidance. +|
+ | |If set to Out of Band Mode, +|
+ | |hardware autonomously v|
+```
+
+##### CPU C State Control
+
+```
+ | CPU C State Control |Select Enable to support |
+ | |Autonomous Core C-State |
+ | Autonomous Core C-State [Disable] |control which will allow |
+ | CPU C6 report [Disable] |the processor core to |
+ | Enhanced Halt State (C1E) [Disable] |control its C-State setting |
+ | |automatically and |
+ | |independently. |
+```
+
+##### Package C State Control
+
+```
+ | Package C State Control |Limit the lowest package |
+ | |level C-State to |
+ | Package C State [C0/C1 state] |processors. Lower package |
+ | |C-State lower processor |
+ | |power consumption upon idle. |
+```
+
+##### CPU T State Control
+
+```
+ | CPU T State Control |Enable/Disable CPU |
+ | |throttling by OS. |
+ | Software Controlled T-States [Disable] |Throttling reduces power |
+ | |consumption |
+```
+
+#### Chipset Configuration
+
+```
+ | WARNING: Setting wrong values in below sections may cause |North Bridge Parameters |
+ | system to malfunction. | |
+ |> North Bridge | |
+ |> South Bridge | |
+```
+
+##### North Bridge
+
+```
+ |> UPI Configuration |Displays and provides |
+ |> Memory Configuration |option to change the UPI |
+ |> IIO Configuration |Settings |
+```
+
+##### UPI Configuration
+
+```
+ | UPI Configuration |Use this feature to select |
+ | -------------------------------------------------- |the degrading precedence |
+ | Number of CPU 2 |option for Ultra Path |
+ | Number of Active UPI Link 3 |Interconnect connections. |
+ | Current UPI Link Speed Fast |Select Topology Precedent |
+ | Current UPI Link Frequency 10.4 GT/s |to degrade UPI features if |
+ | UPI Global MMIO Low Base / Limit 90000000 / FBFFFFFF |system options are in |
+ | UPI Global MMIO High Base / Limit 0000000000000000 / |conflict. Select Feature |
+ | 00000000FFFFFFFF |Precedent to degrade UPI |
+ | UPI Pci-e Configuration Base / Size 80000000 / 10000000 |topology if system options |
+ | Degrade Precedence [Topology Precedence] |are in conflict. |
+ | Link L0p Enable [Disable] | |
+ | Link L1 Enable [Disable] | |
+ | IO Directory Cache (IODC) [Auto] | |
+ | SNC [Disable] | |
+ | XPT Prefetch [Disable] | |
+ | KTI Prefetch [Enable] |-----------------------------|
+ | Local/Remote Threshold [Auto] |><: Select Screen |
+ | Stale AtoS [Auto] |^v: Select Item |
+ | LLC Dead Line Alloc [Enable] |Enter: Select |
+ | Isoc Mode [Auto] |+/-: Change Opt. |
+```
+
+##### Memory Configuration
+
+```
+ | |Select POR to enforce POR |
+ | -------------------------------------------------- |restrictions for DDR4 |
+ | Integrated Memory Controller (iMC) |frequency and voltage |
+ | -------------------------------------------------- |programming |
+ | | |
+ | Enforce POR [POR] | |
+ | PPR Type [Hard PPR] | |
+ | Enhanced PPR [Disable] | |
+ | Operation Mode [Test and Repair] | |
+ | Memory Frequency [2933] | |
+ | Data Scrambling for DDR4 [Auto] | |
+ | tCCD_L Relaxation [Auto] | |
+ | tRWSR Relaxation [Disable] | |
+ | tRFC Optimization for 16Gb Based DIMM [Force 550ns] | |
+ | 2x Refresh [Auto] | |
+ | Page Policy [Auto] | |
+ | IMC Interleaving [2-way Interleave] |-----------------------------|
+ |> Memory Topology |><: Select Screen |
+ |> Memory RAS Configuration |^v: Select Item |
+```
+
+##### IIO Configuration
+
+```
+ | IIO Configuration |Expose IIO DFX devices and |
+ | -------------------------------------------------- |other CPU devices like PMON |
+ | | |
+ | EV DFX Features [Disable] | |
+ |> CPU1 Configuration | |
+ |> CPU2 Configuration | |
+ |> IOAT Configuration | |
+ |> Intel. VT for Directed I/O (VT-d) | |
+ |> Intel. VMD technology | |
+ | | |
+ | IIO-PCIE Express Global Options | |
+ | ======================================== | |
+ | PCI-E Completion Timeout Disable [No] | |
+```
+
+##### CPU1 Configuration
+
+```
+ | IOU0 (IIO PCIe Br1) [Auto] |Selects PCIe port |
+ | IOU1 (IIO PCIe Br2) [Auto] |Bifurcation for selected |
+ | IOU2 (IIO PCIe Br3) [Auto] |slot(s) |
+ |> CPU1 SLOT2 PCI-E 3.0 X16 | |
+ |> CPU1 SLOT4 PCI-E 3.0 X16 | |
+ |> CPU1 SLOT9 PCI-E 3.0 X16 | |
+```
+
+##### CPU2 Configuration
+
+```
+ | IOU0 (IIO PCIe Br1) [Auto] |Selects PCIe port |
+ | IOU1 (IIO PCIe Br2) [Auto] |Bifurcation for selected |
+ | IOU2 (IIO PCIe Br3) [Auto] |slot(s) |
+ |> CPU2 SLOT6 PCI-E 3.0 X16 | |
+ |> CPU2 SLOT8 PCI-E 3.0 X16 | |
+ |> CPU2 SLOT10 PCI-E 3.0 X16 | |
+```
+
+#### South Bridge
+
+```
+ | |Enables Legacy USB support. |
+ | USB Module Version 21 |AUTO option disables legacy |
+ | |support if no USB devices |
+ | USB Devices: |are connected. DISABLE |
+ | 1 Keyboard, 1 Mouse, 1 Hub |option will keep USB |
+ | |devices available only for |
+ | Legacy USB Support [Enabled] |EFI applications. |
+ | XHCI Hand-off [Enabled] | |
+ | Port 60/64 Emulation [Enabled] | |
+ | PCIe PLL SSC [Disable] | |
+ | Real USB Wake Up [Enabled] | |
+ | Front USB Wake Up [Enabled] | |
+ | | |
+ | Azalia [Auto] | |
+ | Azalia PME Enable [Disabled] | |
+```
+
+### PCIe/PCI/PnP Configuration
+
+```
+ | PCI Bus Driver Version A5.01.18 ^|Enables or Disables 64bit |
+ | *|capable Devices to be |
+ | PCI Devices Common Settings: *|Decoded in Above 4G Address |
+ | Above 4G Decoding [Enabled] *|Space (Only if System |
+ | SR-IOV Support [Enabled] *|Supports 64 bit PCI |
+ | ARI Support [Enabled] *|Decoding). |
+ | MMIO High Base [56T] *| |
+ | MMIO High Granularity Size [256G] *| |
+ | Maximum Read Request [Auto] *| |
+ | MMCFG Base [2G] *| |
+ | NVMe Firmware Source [Vendor Defined *| |
+ | Firmware] *| |
+ | VGA Priority [Onboard] *| |
+ | CPU1 SLOT2 PCI-E 3.0 X16 OPROM [Legacy] *| |
+ | CPU1 SLOT4 PCI-E 3.0 X16 OPROM [Legacy] *| |
+ | CPU2 SLOT6 PCI-E 3.0 X16 OPROM [Legacy] *| |
+ | CPU2 SLOT8 PCI-E 3.0 X16 OPROM [Legacy] *|-----------------------------|
+ | CPU1 SLOT9 PCI-E 3.0 X16 OPROM [Legacy] *|><: Select Screen |
+ | CPU2 SLOT10 PCI-E 3.0 X16 OPROM [Legacy] *|^v: Select Item |
+ | CPU2 SLOT11 PCI-E 3.0 X4(IN X8) OPROM [Legacy] *|Enter: Select |
+ | M.2 CONNECTOR OPROM [Legacy] *|+/-: Change Opt. |
+ | Bus Master Enable [Enabled] +|F1: General Help |
+ | Onboard LAN1 Option ROM [Legacy] +|F2: Previous Values |
+ | Onboard LAN2 Option ROM [Disabled] +|F3: Optimized Defaults |
+ | Onboard Video Option ROM [Legacy] v|F4: Save & Exit |
+ |> Network Stack Configuration | |
+```
+
+### ACPI Settings
+
+```
+ | ACPI Settings |Enable or Disable Non |
+ | |uniform Memory Access |
+ | NUMA [Enabled] |(NUMA). |
+ | WHEA Support [Enabled] | |
+ | High Precision Event Timer [Enabled] | |
+```
+
+## Xeon CLX Server BIOS Configuration - DUT
+
+### Boot Feature
+
+```
+ | Quiet Boot [Enabled] |Boot option |
+ | | |
+ | Option ROM Messages [Force BIOS] | |
+ | Bootup NumLock State [On] | |
+ | Wait For "F1" If Error [Enabled] | |
+ | INT19 Trap Response [Immediate] | |
+ | Re-try Boot [Disabled] | |
+ | Install Windows 7 USB support [Disabled] | |
+ | Port 61h Bit-4 Emulation [Disabled] | |
+ | | |
+ | Power Configuration | |
+ | Watch Dog Function [Disabled] | |
+ | Restore on AC Power Loss [Last State] | |
+ | Power Button Function [Instant Off] | |
+```
+
+### CPU Configuration
+
+```
+ |--------------------------------------------------------------------+-----------------------------\
+ | Processor Configuration ^|Enables Hyper Threading |
+ | -------------------------------------------------- *|(Software Method to |
+ | Processor BSP Revision 50657 - CLX B1 *|Enable/Disable Logical |
+ | Processor Socket CPU1 | CPU2 *|Processor threads. |
+ | Processor ID 00050657* | 00050657 *| |
+ | Processor Frequency 2.300GHz | 2.300GHz *| |
+ | Processor Max Ratio 17H | 17H *| |
+ | Processor Min Ratio 0AH | 0AH *| |
+ | Microcode Revision 0500002C | 0500002C *| |
+ | L1 Cache RAM 64KB | 64KB *| |
+ | L2 Cache RAM 1024KB | 1024KB *| |
+ | L3 Cache RAM 36608KB | 36608KB *| |
+ | Processor 0 Version *| |
+ | Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz *| |
+ | Processor 1 Version *| |
+ | Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz *| |
+ | *|-----------------------------|
+ | Hyper-Threading [ALL] [Enable] *|><: Select Screen |
+ | Cores Enabled 0 *|^v: Select Item |
+ | Monitor/Mwait [Auto] *|Enter: Select |
+ | Execute Disable Bit [Enable] +|+/-: Change Opt. |
+ | Intel Virtualization Technology [Enable] +|F1: General Help |
+ | PPIN Control [Unlock/Enable] +|F2: Previous Values |
+ | Hardware Prefetcher [Enable] +|F3: Optimized Defaults |
+ | Adjacent Cache Prefetch [Enable] v|F4: Save & Exit |
+ | DCU Streamer Prefetcher [Enable] | |
+ | DCU IP Prefetcher [Enable] | |
+ | LLC Prefetch [Disable] | |
+ | Extended APIC [Disable] | |
+ | AES-NI [Enable] | |
+ |> Advanced Power Management Configuration | |
+```
+
+#### Advanced Power Management Configuration
+
+```
+ | Advanced Power Management Configuration |Switch CPU Power Management |
+ | -------------------------------------------------- |profile |
+ | Power Technology [Custom] | |
+ | Power Performance Tuning [BIOS Controls EPB] | |
+ | ENERGY_PERF_BIAS_CFG mode [Maximum Performance] | |
+ |> CPU P State Control | |
+ |> Hardware PM State Control | |
+ |> CPU C State Control | |
+ |> Package C State Control | |
+ |> CPU T State Control | |
+```
+
+##### CPU P State Control
+
+```
+ | CPU P State Control |EIST allows the processor |
+ | |to dynamically adjust |
+ | SpeedStep (P-States) [Disable] |frequency and voltage based |
+ | Activate PBF [Disable] |on power versus performance |
+ | Configure PBF [Enable] |needs. |
+ | EIST PSD Function [HW_ALL] | |
+```
+
+##### Hardware PM State Control
+
+```
+ | Hardware PM State Control |If set to Disable, hardware ^|
+ | |will choose a P-state *|
+ | Hardware P-States [Disable] |setting for the system *|
+ | |based on an OS request. *|
+ | |If set to Native Mode, *|
+ | |hardware will choose a *|
+ | |P-state setting based on OS *|
+ | |guidance. *|
+ | |If set to Native Mode with *|
+ | |No Legacy Support, hardware *|
+ | |will choose a P-state *|
+ | |setting independently *|
+ | |without OS guidance. +|
+ | |If set to Out of Band Mode, +|
+ | |hardware autonomously v|
+```
+
+##### CPU C State Control
+
+```
+ | CPU C State Control |Select Enable to support |
+ | |Autonomous Core C-State |
+ | Autonomous Core C-State [Disable] |control which will allow |
+ | CPU C6 report [Disable] |the processor core to |
+ | Enhanced Halt State (C1E) [Disable] |control its C-State setting |
+ | |automatically and |
+ | |independently. |
+```
+
+##### Package C State Control
+
+```
+ | Package C State Control |Limit the lowest package |
+ | |level C-State to |
+ | Package C State [C0/C1 state] |processors. Lower package |
+ | |C-State lower processor |
+ | |power consumption upon idle. |
+```
+
+##### CPU T State Control
+
+```
+ | CPU T State Control |Enable/Disable CPU |
+ | |throttling by OS. |
+ | Software Controlled T-States [Disable] |Throttling reduces power |
+ | |consumption |
+```
+
+#### Chipset Configuration
+
+```
+ | WARNING: Setting wrong values in below sections may cause |North Bridge Parameters |
+ | system to malfunction. | |
+ |> North Bridge | |
+ |> South Bridge | |
+```
+
+##### North Bridge
+
+```
+ |> UPI Configuration |Displays and provides |
+ |> Memory Configuration |option to change the UPI |
+ |> IIO Configuration |Settings |
+```
+
+##### UPI Configuration
+
+```
+ | UPI Configuration |Use this feature to select |
+ | -------------------------------------------------- |the degrading precedence |
+ | Number of CPU 2 |option for Ultra Path |
+ | Number of Active UPI Link 3 |Interconnect connections. |
+ | Current UPI Link Speed Fast |Select Topology Precedent |
+ | Current UPI Link Frequency 10.4 GT/s |to degrade UPI features if |
+ | UPI Global MMIO Low Base / Limit 90000000 / FBFFFFFF |system options are in |
+ | UPI Global MMIO High Base / Limit 0000000000000000 / |conflict. Select Feature |
+ | 00000000FFFFFFFF |Precedent to degrade UPI |
+ | UPI Pci-e Configuration Base / Size 80000000 / 10000000 |topology if system options |
+ | Degrade Precedence [Topology Precedence] |are in conflict. |
+ | Link L0p Enable [Disable] | |
+ | Link L1 Enable [Disable] | |
+ | IO Directory Cache (IODC) [Auto] | |
+ | SNC [Disable] | |
+ | XPT Prefetch [Disable] | |
+ | KTI Prefetch [Enable] |-----------------------------|
+ | Local/Remote Threshold [Auto] |><: Select Screen |
+ | Stale AtoS [Auto] |^v: Select Item |
+ | LLC Dead Line Alloc [Enable] |Enter: Select |
+ | Isoc Mode [Auto] |+/-: Change Opt. |
+```
+
+##### Memory Configuration
+
+```
+ | |Select POR to enforce POR |
+ | -------------------------------------------------- |restrictions for DDR4 |
+ | Integrated Memory Controller (iMC) |frequency and voltage |
+ | -------------------------------------------------- |programming |
+ | | |
+ | Enforce POR [POR] | |
+ | PPR Type [Hard PPR] | |
+ | Enhanced PPR [Disable] | |
+ | Operation Mode [Test and Repair] | |
+ | Memory Frequency [2933] | |
+ | Data Scrambling for DDR4 [Auto] | |
+ | tCCD_L Relaxation [Auto] | |
+ | tRWSR Relaxation [Disable] | |
+ | tRFC Optimization for 16Gb Based DIMM [Force 550ns] | |
+ | 2x Refresh [Auto] | |
+ | Page Policy [Auto] | |
+ | IMC Interleaving [2-way Interleave] |-----------------------------|
+ |> Memory Topology |><: Select Screen |
+ |> Memory RAS Configuration |^v: Select Item |
+```
+
+##### IIO Configuration
+
+```
+ | IIO Configuration |Expose IIO DFX devices and |
+ | -------------------------------------------------- |other CPU devices like PMON |
+ | | |
+ | EV DFX Features [Disable] | |
+ |> CPU1 Configuration | |
+ |> CPU2 Configuration | |
+ |> IOAT Configuration | |
+ |> Intel. VT for Directed I/O (VT-d) | |
+ |> Intel. VMD technology | |
+ | | |
+ | IIO-PCIE Express Global Options | |
+ | ======================================== | |
+ | PCI-E Completion Timeout Disable [No] | |
+```
+
+##### CPU1 Configuration
+
+```
+ | IOU0 (IIO PCIe Br1) [Auto] |Selects PCIe port |
+ | IOU1 (IIO PCIe Br2) [Auto] |Bifurcation for selected |
+ | IOU2 (IIO PCIe Br3) [Auto] |slot(s) |
+ |> CPU1 SLOT2 PCI-E 3.0 X16 | |
+ |> CPU1 SLOT4 PCI-E 3.0 X16 | |
+ |> CPU1 SLOT9 PCI-E 3.0 X16 | |
+```
+
+##### CPU2 Configuration
+
+```
+ | IOU0 (IIO PCIe Br1) [Auto] |Selects PCIe port |
+ | IOU1 (IIO PCIe Br2) [Auto] |Bifurcation for selected |
+ | IOU2 (IIO PCIe Br3) [Auto] |slot(s) |
+ |> CPU2 SLOT6 PCI-E 3.0 X16 | |
+ |> CPU2 SLOT8 PCI-E 3.0 X16 | |
+ |> CPU2 SLOT10 PCI-E 3.0 X16 | |
+```
+
+#### South Bridge
+
+```
+ | |Enables Legacy USB support. |
+ | USB Module Version 21 |AUTO option disables legacy |
+ | |support if no USB devices |
+ | USB Devices: |are connected. DISABLE |
+ | 1 Keyboard, 1 Mouse, 1 Hub |option will keep USB |
+ | |devices available only for |
+ | Legacy USB Support [Enabled] |EFI applications. |
+ | XHCI Hand-off [Enabled] | |
+ | Port 60/64 Emulation [Enabled] | |
+ | PCIe PLL SSC [Disable] | |
+ | Real USB Wake Up [Enabled] | |
+ | Front USB Wake Up [Enabled] | |
+ | | |
+ | Azalia [Auto] | |
+ | Azalia PME Enable [Disabled] | |
+```
+
+### PCIe/PCI/PnP Configuration
+
+```
+ | PCI Bus Driver Version A5.01.18 ^|Enables or Disables 64bit |
+ | *|capable Devices to be |
+ | PCI Devices Common Settings: *|Decoded in Above 4G Address |
+ | Above 4G Decoding [Enabled] *|Space (Only if System |
+ | SR-IOV Support [Enabled] *|Supports 64 bit PCI |
+ | ARI Support [Enabled] *|Decoding). |
+ | MMIO High Base [56T] *| |
+ | MMIO High Granularity Size [256G] *| |
+ | Maximum Read Request [Auto] *| |
+ | MMCFG Base [2G] *| |
+ | NVMe Firmware Source [Vendor Defined *| |
+ | Firmware] *| |
+ | VGA Priority [Onboard] *| |
+ | CPU1 SLOT2 PCI-E 3.0 X16 OPROM [Legacy] *| |
+ | CPU1 SLOT4 PCI-E 3.0 X16 OPROM [Legacy] *| |
+ | CPU2 SLOT6 PCI-E 3.0 X16 OPROM [Legacy] *| |
+ | CPU2 SLOT8 PCI-E 3.0 X16 OPROM [Legacy] *|-----------------------------|
+ | CPU1 SLOT9 PCI-E 3.0 X16 OPROM [Legacy] *|><: Select Screen |
+ | CPU2 SLOT10 PCI-E 3.0 X16 OPROM [Legacy] *|^v: Select Item |
+ | CPU2 SLOT11 PCI-E 3.0 X4(IN X8) OPROM [Legacy] *|Enter: Select |
+ | M.2 CONNECTOR OPROM [Legacy] *|+/-: Change Opt. |
+ | Bus Master Enable [Enabled] +|F1: General Help |
+ | Onboard LAN1 Option ROM [Legacy] +|F2: Previous Values |
+ | Onboard LAN2 Option ROM [Disabled] +|F3: Optimized Defaults |
+ | Onboard Video Option ROM [Legacy] v|F4: Save & Exit |
+ |> Network Stack Configuration | |
+```
+
+### ACPI Settings
+
+```
+ | ACPI Settings |Enable or Disable Non |
+ | |uniform Memory Access |
+ | NUMA [Enabled] |(NUMA). |
+ | WHEA Support [Enabled] | |
+ | High Precision Event Timer [Enabled] | |
+```
+
+## Linux cmdline
+
+```
+$ cat /proc/cmdline
+BOOT_IMAGE=/boot/vmlinuz-5.15.0-46-generic root=UUID=2d6f4d44-76b1-4343-bc73-c066a3e95b32 ro audit=0 default_hugepagesz=2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768 hpet=disable intel_idle.max_cstate=1 intel_iommu=on intel_pstate=disable iommu=pt isolcpus=1-23,25-47,49-71,73-95 mce=off nmi_watchdog=0 nohz_full=1-23,25-47,49-71,73-95 nosoftlockup numa_balancing=disable processor.max_cstate=1 rcu_nocbs=1-23,25-47,49-71,73-95 tsc=reliable console=ttyS0,115200n8 quiet
+```
+
+## Xeon Clx Server Firmware Inventory
+
+```
+Host. IPMI IP. BMC. BIOS. CPLD. CPU Microcode. PCI Bus. X710 Firmware. XXV710 Firmware. i40e. CX-5 Firmware. mlx5_core E810 Firmware. ice.
+s33-t27-sut1. 10.30.55.18. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 9.20. 9.20. 2.22.20. 16.35.2000. 23.07-0.5.0. 4.30. 1.12.6.
+s34-t27-tg1. 10.30.55.19. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 8.30. 8.30. 2.19.3. 16.32.1010. 5.9-0.5.5. N/A. N/A.
+s35-t28-sut1. 10.30.55.20. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 9.20. 9.20. 2.22.20. 16.35.2000. 23.07-0.5.0. 4.30. 1.12.6.
+s36-t28-tg1. 10.30.55.21. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 8.30. 8.30. 2.19.3. 16.32.1010. 5.9-0.5.5. N/A. N/A.
+s37-t29-sut1. 10.30.55.22. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 9.20. 9.20. 2.22.20. 16.35.2000. 23.07-0.5.0. 4.30. 1.12.6.
+s38-t29-tg1. 10.30.55.23. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 8.30. 8.30. 2.19.3. 16.32.1010. 5.9-0.5.5. N/A. N/A.
+```
diff --git a/docs/content/infrastructure/testbed_configuration/sm_icx_hw_bios_cfg.md b/docs/content/infrastructure/testbed_configuration/sm_icx_hw_bios_cfg.md
new file mode 100644
index 0000000000..9a5fe51b3c
--- /dev/null
+++ b/docs/content/infrastructure/testbed_configuration/sm_icx_hw_bios_cfg.md
@@ -0,0 +1,1121 @@
+---
+bookToc: true
+title: "SuperMicro Icelake"
+---
+
+# SuperMicro Icelake
+
+## Linux lscpu
+
+```
+$ lscpu
+Architecture: x86_64
+CPU op-mode(s): 32-bit, 64-bit
+Byte Order: Little Endian
+Address sizes: 46 bits physical, 57 bits virtual
+CPU(s): 128
+On-line CPU(s) list: 0-127
+Thread(s) per core: 2
+Core(s) per socket: 32
+Socket(s): 2
+NUMA node(s): 2
+Vendor ID: GenuineIntel
+CPU family: 6
+Model: 106
+Model name: Intel(R) Xeon(R) Platinum 8358 CPU @ 2.60GHz
+Stepping: 6
+CPU MHz: 3283.980
+BogoMIPS: 5200.00
+Virtualization: VT-x
+L1d cache: 3 MiB
+L1i cache: 2 MiB
+L2 cache: 80 MiB
+L3 cache: 96 MiB
+NUMA node0 CPU(s): 0-31,64-95
+NUMA node1 CPU(s): 32-63,96-127
+Vulnerability Itlb multihit: Not affected
+Vulnerability L1tf: Not affected
+Vulnerability Mds: Not affected
+Vulnerability Meltdown: Not affected
+Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
+Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
+Vulnerability Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling
+Vulnerability Srbds: Not affected
+Vulnerability Tsx async abort: Not affected
+Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe sysca
+ ll nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmu
+ lqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadl
+ ine_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 invpcid_single ssbd mba ibrs ibpb stibp
+ ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx
+ 512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 x
+ saves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local wbnoinvd dtherm ida arat pln pts avx512vbmi umip pku ospke avx512_vbm
+ i2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq rdpid md_clear pconfig flush_l1d arch_capabilities
+```
+
+## Linux dmidecode
+
+```
+# dmidecode 3.2
+Getting SMBIOS data from sysfs.
+SMBIOS 3.3.0 present.
+# SMBIOS implementations newer than version 3.2.0 are not
+# fully supported by this version of dmidecode.
+Table at 0x6BAEE000.
+
+Handle 0x0000, DMI type 0, 26 bytes
+BIOS Information
+ Vendor: American Megatrends International, LLC.
+ Version: 1.1
+ Release Date: 04/09/2021
+ Address: 0xF0000
+ Runtime Size: 64 kB
+ ROM Size: 32 MB
+ Characteristics:
+ PCI is supported
+ BIOS is upgradeable
+ BIOS shadowing is allowed
+ Boot from CD is supported
+ Selectable boot is supported
+ BIOS ROM is socketed
+ EDD is supported
+ Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
+ Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
+ 5.25"/360 kB floppy services are supported (int 13h)
+ 5.25"/1.2 MB floppy services are supported (int 13h)
+ 3.5"/720 kB floppy services are supported (int 13h)
+ 3.5"/2.88 MB floppy services are supported (int 13h)
+ Print screen service is supported (int 5h)
+ Serial services are supported (int 14h)
+ Printer services are supported (int 17h)
+ CGA/mono video services are supported (int 10h)
+ USB legacy is supported
+ BIOS boot specification is supported
+ Targeted content distribution is supported
+ UEFI is supported
+ BIOS Revision: 5.22
+
+Handle 0x0001, DMI type 1, 27 bytes
+System Information
+ Manufacturer: Supermicro
+ Product Name: SYS-740GP-TNRT
+ Version: 0123456789
+ Serial Number: S424016X1B00510
+ UUID: 0698ae00-2383-11ec-8000-3cecefb9a6ba
+ Wake-up Type: Power Switch
+ SKU Number: To be filled by O.E.M.
+ Family: Family
+
+Handle 0x0002, DMI type 2, 15 bytes
+Base Board Information
+ Manufacturer: Supermicro
+ Product Name: X12DPG-QT6
+ Version: 1.00
+ Serial Number: UM219S003392
+ Asset Tag: Base Board Asset Tag
+ Features:
+ Board is a hosting board
+ Board is replaceable
+ Location In Chassis: Part Component
+ Chassis Handle: 0x0003
+ Type: Motherboard
+ Contained Object Handles: 0
+
+Handle 0x0003, DMI type 3, 22 bytes
+Chassis Information
+ Manufacturer: Supermicro
+ Type: Other
+ Lock: Not Present
+ Version: 0123456789
+ Serial Number: C7470KK25P50098
+ Asset Tag: Chassis Asset Tag
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: None
+ OEM Information: 0x00000000
+ Height: Unspecified
+ Number Of Power Cords: 1
+ Contained Elements: 0
+ SKU Number: To be filled by O.E.M.
+
+Handle 0x001B, DMI type 38, 18 bytes
+IPMI Device Information
+ Interface Type: KCS (Keyboard Control Style)
+ Specification Version: 2.0
+ I2C Slave Address: 0x10
+ NV Storage Device: Not Present
+ Base Address: 0x0000000000000CA2 (I/O)
+ Register Spacing: Successive Byte Boundaries
+
+Handle 0x002A, DMI type 4, 48 bytes
+Processor Information
+ Socket Designation: CPU1
+ Type: Central Processor
+ Family: Xeon
+ Manufacturer: Intel(R) Corporation
+ ID: A6 06 06 00 FF FB EB BF
+ Signature: Type 0, Family 6, Model 106, Stepping 6
+ Flags:
+ FPU (Floating-point unit on-chip)
+ VME (Virtual mode extension)
+ DE (Debugging extension)
+ PSE (Page size extension)
+ TSC (Time stamp counter)
+ MSR (Model specific registers)
+ PAE (Physical address extension)
+ MCE (Machine check exception)
+ CX8 (CMPXCHG8 instruction supported)
+ APIC (On-chip APIC hardware supported)
+ SEP (Fast system call)
+ MTRR (Memory type range registers)
+ PGE (Page global enable)
+ MCA (Machine check architecture)
+ CMOV (Conditional move instruction supported)
+ PAT (Page attribute table)
+ PSE-36 (36-bit page size extension)
+ CLFSH (CLFLUSH instruction supported)
+ DS (Debug store)
+ ACPI (ACPI supported)
+ MMX (MMX technology supported)
+ FXSR (FXSAVE and FXSTOR instructions supported)
+ SSE (Streaming SIMD extensions)
+ SSE2 (Streaming SIMD extensions 2)
+ SS (Self-snoop)
+ HTT (Multi-threading)
+ TM (Thermal monitor supported)
+ PBE (Pending break enabled)
+ Version: Intel(R) Xeon(R) Platinum 8358 CPU @ 2.60GHz
+ Voltage: 1.6 V
+ External Clock: 100 MHz
+ Max Speed: 4500 MHz
+ Current Speed: 2600 MHz
+ Status: Populated, Enabled
+ Upgrade: <OUT OF SPEC>
+ L1 Cache Handle: 0x0027
+ L2 Cache Handle: 0x0028
+ L3 Cache Handle: 0x0029
+ Serial Number: Not Specified
+ Asset Tag: UNKNOWN
+ Part Number: Not Specified
+ Core Count: 32
+ Core Enabled: 32
+ Thread Count: 64
+ Characteristics:
+ 64-bit capable
+ Multi-Core
+ Hardware Thread
+ Execute Protection
+ Enhanced Virtualization
+ Power/Performance Control
+
+Handle 0x002E, DMI type 4, 48 bytes
+Processor Information
+ Socket Designation: CPU2
+ Type: Central Processor
+ Family: Xeon
+ Manufacturer: Intel(R) Corporation
+ ID: A6 06 06 00 FF FB EB BF
+ Signature: Type 0, Family 6, Model 106, Stepping 6
+ Flags:
+ FPU (Floating-point unit on-chip)
+ VME (Virtual mode extension)
+ DE (Debugging extension)
+ PSE (Page size extension)
+ TSC (Time stamp counter)
+ MSR (Model specific registers)
+ PAE (Physical address extension)
+ MCE (Machine check exception)
+ CX8 (CMPXCHG8 instruction supported)
+ APIC (On-chip APIC hardware supported)
+ SEP (Fast system call)
+ MTRR (Memory type range registers)
+ PGE (Page global enable)
+ MCA (Machine check architecture)
+ CMOV (Conditional move instruction supported)
+ PAT (Page attribute table)
+ PSE-36 (36-bit page size extension)
+ CLFSH (CLFLUSH instruction supported)
+ DS (Debug store)
+ ACPI (ACPI supported)
+ MMX (MMX technology supported)
+ FXSR (FXSAVE and FXSTOR instructions supported)
+ SSE (Streaming SIMD extensions)
+ SSE2 (Streaming SIMD extensions 2)
+ SS (Self-snoop)
+ HTT (Multi-threading)
+ TM (Thermal monitor supported)
+ PBE (Pending break enabled)
+ Version: Intel(R) Xeon(R) Platinum 8358 CPU @ 2.60GHz
+ Voltage: 1.6 V
+ External Clock: 100 MHz
+ Max Speed: 4500 MHz
+ Current Speed: 2600 MHz
+ Status: Populated, Enabled
+ Upgrade: <OUT OF SPEC>
+ L1 Cache Handle: 0x002B
+ L2 Cache Handle: 0x002C
+ L3 Cache Handle: 0x002D
+ Serial Number: Not Specified
+ Asset Tag: UNKNOWN
+ Part Number: Not Specified
+ Core Count: 32
+ Core Enabled: 32
+ Thread Count: 64
+ Characteristics:
+ 64-bit capable
+ Multi-Core
+ Hardware Thread
+ Execute Protection
+ Enhanced Virtualization
+ Power/Performance Control
+```
+
+## Linux dmidecode memory
+
+```
+Handle 0x0034, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMA1
+ Bank Locator: P0_Node0_Channel0_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705C2E3
+ Asset Tag: P1-DIMMA1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0036, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMB1
+ Bank Locator: P0_Node0_Channel1_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705CE60
+ Asset Tag: P1-DIMMB1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0038, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMC1
+ Bank Locator: P0_Node0_Channel2_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705C59E
+ Asset Tag: P1-DIMMC1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x003A, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMD1
+ Bank Locator: P0_Node0_Channel3_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705D12D
+ Asset Tag: P1-DIMMD1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x003C, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMME1
+ Bank Locator: P0_Node1_Channel0_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705C69C
+ Asset Tag: P1-DIMME1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x003E, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMF1
+ Bank Locator: P0_Node1_Channel1_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705C33A
+ Asset Tag: P1-DIMMF1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0040, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMG1
+ Bank Locator: P0_Node1_Channel2_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705C59F
+ Asset Tag: P1-DIMMG1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0042, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMH1
+ Bank Locator: P0_Node1_Channel3_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705CA16
+ Asset Tag: P1-DIMMH1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0044, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMA1
+ Bank Locator: P1_Node0_Channel0_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705CBFE
+ Asset Tag: P2-DIMMA1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0046, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMB1
+ Bank Locator: P1_Node0_Channel1_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705CFC8
+ Asset Tag: P2-DIMMB1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0048, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMC1
+ Bank Locator: P1_Node0_Channel2_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705CC02
+ Asset Tag: P2-DIMMC1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x004A, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMD1
+ Bank Locator: P1_Node0_Channel3_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705CB5A
+ Asset Tag: P2-DIMMD1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x004C, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMME1
+ Bank Locator: P1_Node1_Channel0_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705CB30
+ Asset Tag: P2-DIMME1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x004E, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMF1
+ Bank Locator: P1_Node1_Channel1_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705CB87
+ Asset Tag: P2-DIMMF1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0050, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMG1
+ Bank Locator: P1_Node1_Channel2_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705CB08
+ Asset Tag: P2-DIMMG1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0052, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x0033
+ Error Information Handle: Not Provided
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 16384 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMH1
+ Bank Locator: P1_Node1_Channel3_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: Samsung
+ Serial Number: H0MK0001304705CC01
+ Asset Tag: P2-DIMMH1_AssetTag (date:21/30)
+ Part Number: M393A2K43DB3-CWE
+ Rank: 2
+ Configured Memory Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xCE
+ Module Product ID: Unknown
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 16 GB
+ Cache Size: None
+ Logical Size: None
+```
+
+## Xeon ICX Server BIOS Configuration
+
+### Boot Feature
+
+```
+ | |Enables or disables Quiet |
+ | Quiet Boot [Enabled] |Boot option |
+ | | |
+ | Option ROM Messages [Force BIOS] | |
+ | Bootup NumLock State [On] | |
+ | Wait For "F1" If Error [Disabled] | |
+ | INT19 Trap Response [Immediate] | |
+ | Re-try Boot [Disabled] | |
+ | | |
+ | Power Configuration | |
+ | | |
+ | Watch Dog Function [Disabled] | |
+ | Restore on AC Power Loss [Last State] | |
+ | Power Button Function [Instant Off] | |
+ | Deep Sleep Mode [Disabled] | |
+```
+
+### CPU Configuration
+
+```
+ | Processor Configuration ^|Enables Hyper Threading |
+ | -------------------------------------------------- *|(Software Method to |
+ | Processor BSP Revision 606A6 - ICX D2 *|Enable/Disable Logical |
+ | Processor Socket CPU1 CPU2 *|Processor threads. |
+ | Processor ID 000606A6* | 000606A6 *| |
+ | Processor Frequency 2.600GHz | 2.600GHz *| |
+ | Processor Max Ratio 1AH | 1AH *| |
+ | Processor Min Ratio 08H | 08H *| |
+ | Microcode Revision 0D000280 | 0D000280 *| |
+ | L1 Cache RAM(Per Core) 80KB | 80KB *| |
+ | L2 Cache RAM(Per Core) 1280KB | 1280KB *| |
+ | L3 Cache RAM(Per Package) 49152KB | 49152KB *| |
+ | Processor 0 Version Intel(R) Xeon(R) *| |
+ | Platinum 8358 CPU @ *| |
+ | 2.60GHz *| |
+ | Processor 1 Version Intel(R) Xeon(R) *| |
+ | Platinum 8358 CPU @ *| |
+ | 2.60GHz *| |
+ | +| |
+ |> CPU1 Core Disable Bitmap +| |
+ |> CPU2 Core Disable Bitmap +|-----------------------------|
+ | Hyper-Threading [ALL] [Enable] +|><: Select Screen |
+ | Hardware Prefetcher [Enable] +|^v: Select Item |
+ | Adjacent Cache Prefetch [Enable] +|Enter: Select |
+ | DCU Streamer Prefetcher [Enable] +|+/-: Change Opt. |
+ | DCU IP Prefetcher [Enable] +|F1: General Help |
+ | LLC Prefetch [Enable] +|F2: Previous Values |
+ | Extended APIC [Disable] +|F3: Optimized Defaults |
+ | VMX [Enable] v|F4: Save & Exit |
+ | Enable SMX [Disable] +| |
+ | PPIN Control [Unlock/Enable] *| |
+ | AES-NI [Enable] *| |
+ | -------------------------------------------------- *| |
+ | TME, TME-MT, TDX *| |
+ | -------------------------------------------------- *| |
+ | Total Memory Encryption (TME) [Disabled] *| |
+ | -------------------------------------------------- *|-----------------------------|
+ | Software Guard Extension (SGX) *|><: Select Screen |
+ | -------------------------------------------------- *|^v: Select Item |
+ | SGX Factory Reset [Disabled] *|Enter: Select |
+ | SW Guard Extensions (SGX) [Disabled] *|+/-: Change Opt. |
+ | SGX Package Info In-Band Access [Disabled] *|F1: General Help |
+ | -------------------------------------------------- *|F2: Previous Values |
+ | Limit CPU PA to 46 Bits [Enable] *|F3: Optimized Defaults |
+ |> Advanced Power Management Configuration v|F4: Save & Exit |
+```
+
+#### Advanced Power Management Configuration
+
+```
+ | Advanced Power Management Configuration |Enable processor power |
+ | -------------------------------------------------- |management features. |
+ | Power Technology [Custom] | |
+ | Power Performance Tuning [BIOS Controls EPB] | |
+ | ENERGY_PERF_BIAS_CFG Mode [Maximum Performance] | |
+```
+
+##### CPU P State Control
+
+```
+ | CPU P State Control |EIST allows the processor |
+ | |to dynamically adjust |
+ | SpeedStep (P-States) [Disable] |frequency and voltage based |
+ | Activate SST-BF [Disable] |on power versus performance |
+ | Configure SST-BF [Enable] |needs. |
+ | EIST PSD Function [HW_ALL] | |
+```
+
+##### Hardware PM State Control
+
+```
+ | Hardware PM State Control |If set to Disable, hardware ^|
+ | |will choose a P-state *|
+ | Hardware P-States [Disable] |setting for the system *|
+ | |based on an OS request. *|
+
+ | Frequency Prioritization |This knob controls whether |
+ | |RAPL balancer is enabled. |
+ | RAPL Prioritization [Disable] |When enabled it activates |
+```
+
+##### CPU C State Control
+
+```
+ | CPU C State Control |Allows Monitor and MWAIT |
+ | |instructions. |
+ | Enable Monitor MWAIT [Enable] | |
+ | CPU C6 Report [Disable] | |
+ | Enhanced Halt State (C1E) [Disable] | |
+```
+
+##### Package C State Control
+
+```
+ | Package C State Control |Limit the lowest package |
+ | |level C-State to |
+ | Package C State [C0/C1 state] |processors. Lower package |
+```
+
+##### CPU T State Control
+
+```
+ | CPU T State Control |Enable/Disable CPU |
+ | |throttling by OS. |
+ | Software Controlled T-States [Disable] |Throttling reduces power |
+```
+
+##### UPI Configuration
+
+```
+ | Uncore Configuration |Choose Topology Precedence |
+ | -------------------------------------------------- |to degrade features if |
+ | Number of CPU 2 |system options are in |
+ | Number of IIO 2 |conflict or choose Feature |
+ | Current UPI Link Speed Fast |Precedence to degrade |
+ | Current UPI Link Frequency 11.2 GT/s |topology if system options |
+ | Global MMIO Low Base / Limit 90000000 / FBFFFFFF |are in conflict. |
+ | Global MMIO High Base / Limit 0000200000000000 / | |
+ | 0000204FFFFFFFFF | |
+ | Pci-e Configuration Base / Size 80000000 / 10000000 | |
+ | Degrade Precedence [Topology Precedence] | |
+ | Link L0p Enable [Disable] | |
+ | Link L1 Enable [Disable] | |
+ | XPT Remote Prefetch [Auto] | |
+ | KTI Prefetch [Auto] |-----------------------------|
+ | Local/Remote Threshold [Auto] |><: Select Screen |
+ | IO Directory Cache (IODC) [Auto] |^v: Select Item |
+ | SNC (Sub NUMA) [Disable] |Enter: Select |
+ | XPT Prefetch [Auto] |+/-: Change Opt. |
+ | Snoop Throttle Configuration [Auto] |F1: General Help |
+ | PCIe Remote P2P Relaxed Ordering [Disable] |F2: Previous Values |
+ | Stale AtoS [Auto] |F3: Optimized Defaults |
+ | LLC Dead Line Alloc [Enable] |F4: Save & Exit |
+```
+
+##### Memory Configuration
+
+```
+ | |Set Enable or Disable |
+ | -------------------------------------------------- |STEP(Samsung TestBIOS & |
+ | Integrated Memory Controller (iMC) |Enhanced PPR)function |
+ | -------------------------------------------------- | |
+ | | |
+ | STEP DRAM Test [Disable] | |
+ | Operation Mode [Test and Repair] | |
+ | Enforce POR [POR] | |
+ | PPR Type [Hard PPR] | |
+ | Memory Frequency [Auto] | |
+ | Data Scrambling for DDR4 [Enable] | |
+ | 2x Refresh Enable [Auto] | |
+```
+
+##### IIO Configuration
+
+```
+ | IIO Configuration |Press <Enter> to bring up |
+ | -------------------------------------------------- |the Intel. Virtualization |
+ | |for Directed I/O (VT-d) |
+ |> CPU1 Configuration |Configuration menu. |
+ |> CPU2 Configuration | |
+ |> IOAT Configuration | |
+ |> Intel. VT for Directed I/O (VT-d) | |
+ |> Intel. VMD Technology | |
+ | PCI-E ASPM Support (Global) [Disable] | |
+ | IIO eDPC Support [Disable] | |
+```
+
+##### CPU1 Configuration
+
+```
+ | IOU0 (IIO PCIe Port 1) [Auto] |Selects PCIe port |
+ | IOU1 (IIO PCIe Port 2) [Auto] |Bifurcation for selected |
+ | IOU3 (IIO PCIe Port 4) [Auto] |slot(s) |
+ | IOU4 (IIO PCIe Port 5) [Auto] | |
+```
+
+##### CPU2 Configuration
+
+```
+ | IOU0 (IIO PCIe Port 1) [Auto] |Selects PCIe port |
+ | IOU1 (IIO PCIe Port 2) [Auto] |Bifurcation for selected |
+ | IOU3 (IIO PCIe Port 4) [Auto] |slot(s) |
+ | IOU4 (IIO PCIe Port 5) [Auto] | |
+```
+
+#### South Bridge
+
+```
+ | USB Module Version 26 |AUTO option disables legacy |
+ | |support if no USB devices |
+ | USB Devices: |are connected. DISABLE |
+ | 1 Drive, 2 Keyboards, 2 Mice, 1 Hub |option will keep USB |
+ | |devices available only for |
+ | Legacy USB Support [Enabled] |EFI applications. |
+ | XHCI Hand-off [Enabled] | |
+ | Port 60/64 Emulation [Disabled] | |
+ | PCIe PLL SSC [Disabled] | |
+ | Port 61h Bit-4 Emulation [Disabled] | |
+```
+
+### PCIe/PCI/PnP Configuration
+
+```
+ | PCI Bus Driver Version A5.01.24 ^|Enables or Disables 64bit |
+ | *|capable Devices to be |
+ | PCI Devices Common Settings: *|Decoded in Above 4G Address |
+ | Above 4G Decoding [Enabled] *|Space (Only if System |
+ | SR-IOV Support [Enabled] *|Supports 64 bit PCI |
+ | ARI Support [Enabled] *|Decoding). |
+ | Bus Master Enable [Enabled] *| |
+ | Consistent Device Name Support [Disabled] *| |
+ | MMIO High Base [32T] *| |
+ | MMIO High Granularity Size [64G] *| |
+ | Maximum Read Request [Auto] *| |
+ | MMCFG Base [Auto] *| |
+ | NVMe Firmware Source [Vendor Defined *| |
+ | Firmware] *| |
+ | VGA Priority [Onboard] *| |
+ | CPU1 SLOT2 PCI-E 3.0 X16 OPROM [EFI] *| |
+ | CPU1 SLOT4 PCI-E 3.0 X16 OPROM [EFI] *| |
+ | CPU2 SLOT6 PCI-E 3.0 X16 OPROM [EFI] *| |
+ | CPU2 SLOT8 PCI-E 3.0 X16 OPROM [EFI] *|-----------------------------|
+ | CPU1 SLOT9 PCI-E 3.0 X16 OPROM [EFI] *|><: Select Screen |
+ | CPU2 SLOT10 PCI-E 3.0 X16 OPROM [EFI] *|^v: Select Item |
+ | CPU2 SLOT11 PCI-E 3.0 X4(IN X8) OPROM [EFI] *|Enter: Select |
+ | M.2 CONNECTOR OPROM [EFI] *|+/-: Change Opt. |
+ | Bus Master Enable [Enabled] +|F1: General Help |
+ | Onboard LAN1 Option ROM [EFI] +|F2: Previous Values |
+ | Onboard LAN2 Option ROM [Disabled] +|F3: Optimized Defaults |
+ | Onboard Video Option ROM [EFI] v|F4: Save & Exit |
+ |> Network Stack Configuration | |
+```
+
+## Linux cmdline
+
+```
+$ cat /proc/cmdline
+BOOT_IMAGE=/boot/vmlinuz-5.15.0-46-generic root=UUID=6ff26c8a-8c65-4025-a6e7-d97dee6025d0 ro audit=0 default_hugepagesz=2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768 hpet=disable intel_idle.max_cstate=1 intel_iommu=on intel_pstate=disable iommu=pt isolcpus=1-31,33-63,65-95,97-127 mce=off nmi_watchdog=0 nohz_full=1-31,33-63,65-95,97-127 nosoftlockup numa_balancing=disable processor.max_cstate=1 rcu_nocbs=1-31,33-63,65-95,97-127 tsc=reliable console=ttyS0,115200n8 quiet
+```
+
+## Xeon ICX Server Firmware Inventory
+
+```
+Host. IPMI IP. BMC. BIOS. CPLD. CPU Microcode. PCI Bus. X710 Firmware. i40e. E810 Firmware. ice. CX-6 Firmware. mlx5_core
+s65-t37-sut1. 10.30.50.75. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 9.20. 2.22.20. 4.30. 1.12.6. 22.36.1010. 23.07-0.5.0.
+s66-t37-sut2. 10.30.50.76. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 9.20. 2.22.20. 4.30. 1.12.6. 22.36.1010. 23.07-0.5.0.
+s67-t37-tg1. 10.30.50.77. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30. 2.19.3. 3.20. 1.9.7. 22.36.1010. 23.07-0.5.0.
+s78-t38-sut1. 10.30.50.78. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 9.20. 2.22.20. 4.30. 1.12.6. 22.36.1010. 23.07-0.5.0.
+s79-t38-sut2. 10.30.50.79. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 9.20. 2.22.20. 4.30. 1.12.6. 22.36.1010. 23.07-0.5.0.
+s80-t38-tg1. 10.30.50.80. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30. 2.19.3. 3.20. 1.9.7. 22.36.1010. 23.07-0.5.0.
+s71-t212-sut1. 10.30.50.81. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 9.20. 2.22.20. 4.30. 1.12.6. 22.36.1010. 23.07-0.5.0.
+s72-t212-tg1. 10.30.50.82. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30. 2.19.3. 3.20. 1.9.7. 22.36.1010. 23.07-0.5.0.
+s83-t213-sut1. 10.30.50.83. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 9.20. 2.22.20. 4.30. 1.12.6. 22.36.1010. 23.07-0.5.0.
+s84-t213-tg1. 10.30.50.84. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30. 2.19.3. 3.20. 1.9.7. 22.36.1010. 23.07-0.5.0.
+s85-t214-sut1. 10.30.50.85. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 9.20. 2.22.20. 4.30. 1.12.6. 22.36.1010. 23.07-0.5.0.
+s86-t214-tg1. 10.30.50.86. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30. 2.19.3. 3.20. 1.9.7. 22.36.1010. 23.07-0.5.0.
+s87-t215-sut1. 10.30.50.87. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 9.20. 2.22.20. 4.30. 1.12.6. 22.36.1010. 23.07-0.5.0.
+s88-t215-tg1. 10.30.50.88. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30. 2.19.3. 3.20. 1.9.7. 22.36.1010. 23.07-0.5.0.
+s90-t31t32-tg1.10.30.50.90. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. -. -. 4.30. 1.12.6. -. -.
+```
diff --git a/docs/content/infrastructure/testbed_configuration/sm_spr_hw_bios_cfg.md b/docs/content/infrastructure/testbed_configuration/sm_spr_hw_bios_cfg.md
new file mode 100644
index 0000000000..a55835c07d
--- /dev/null
+++ b/docs/content/infrastructure/testbed_configuration/sm_spr_hw_bios_cfg.md
@@ -0,0 +1,851 @@
+---
+bookToc: true
+title: "SuperMicro SapphireRapids"
+---
+
+# SuperMicro SapphireRapids
+
+## Linux lscpu
+
+```
+Architecture: x86_64
+ CPU op-mode(s): 32-bit, 64-bit
+ Address sizes: 46 bits physical, 57 bits virtual
+ Byte Order: Little Endian
+CPU(s): 128
+ On-line CPU(s) list: 0-127
+Vendor ID: GenuineIntel
+ Model name: Intel(R) Xeon(R) Platinum 8462Y+
+ CPU family: 6
+ Model: 143
+ Thread(s) per core: 2
+ Core(s) per socket: 32
+ Socket(s): 2
+ Stepping: 8
+ BogoMIPS: 5600.00
+ Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1
+ gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dt
+ es64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsav
+ e avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cat_l2 cdp_l3 invpcid_single cdp_l2 ssbd mba ibrs ibpb stibp ibrs_enh
+ anced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdsee
+ d adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cq
+ m_mbm_total cqm_mbm_local split_lock_detect avx_vnni avx512_bf16 wbnoinvd dtherm arat pln pts hwp hwp_act_window hwp_epp hwp_pkg_req avx
+ 512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq la57 rdpid bus_lock_dete
+ ct cldemote movdiri movdir64b enqcmd fsrm md_clear serialize tsxldtrk pconfig arch_lbr amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d
+ arch_capabilities
+Virtualization features:
+ Virtualization: VT-x
+Caches (sum of all):
+ L1d: 3 MiB (64 instances)
+ L1i: 2 MiB (64 instances)
+ L2: 128 MiB (64 instances)
+ L3: 120 MiB (2 instances)
+NUMA:
+ NUMA node(s): 2
+ NUMA node0 CPU(s): 0-31,64-95
+ NUMA node1 CPU(s): 32-63,96-127
+Vulnerabilities:
+ Itlb multihit: Not affected
+ L1tf: Not affected
+ Mds: Not affected
+ Meltdown: Not affected
+ Mmio stale data: Not affected
+ Retbleed: Not affected
+ Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
+ Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
+ Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling
+ Srbds: Not affected
+ Tsx async abort: Not affected
+```
+
+## Linux dmidecode
+
+```
+# dmidecode 3.3
+Getting SMBIOS data from sysfs.
+SMBIOS 3.5.0 present.
+Table at 0x000E6E00.
+
+Handle 0x0000, DMI type 0, 26 bytes
+BIOS Information
+ Vendor: American Megatrends International, LLC.
+ Version: 1.0
+ Release Date: 11/16/2022
+ Address: 0xF0000
+ Runtime Size: 64 kB
+ ROM Size: 32 MB
+ Characteristics:
+ PCI is supported
+ BIOS is upgradeable
+ BIOS shadowing is allowed
+ Boot from CD is supported
+ Selectable boot is supported
+ BIOS ROM is socketed
+ EDD is supported
+ Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
+ Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
+ 5.25"/360 kB floppy services are supported (int 13h)
+ 5.25"/1.2 MB floppy services are supported (int 13h)
+ 3.5"/720 kB floppy services are supported (int 13h)
+ 3.5"/2.88 MB floppy services are supported (int 13h)
+ Print screen service is supported (int 5h)
+ Serial services are supported (int 14h)
+ Printer services are supported (int 17h)
+ CGA/mono video services are supported (int 10h)
+ ACPI is supported
+ USB legacy is supported
+ BIOS boot specification is supported
+ Targeted content distribution is supported
+ UEFI is supported
+ BIOS Revision: 5.29
+
+Handle 0x0001, DMI type 1, 27 bytes
+System Information
+ Manufacturer: Supermicro
+ Product Name: SYS-741GE-TNRT
+ Version: 0123456789
+ Serial Number: S512539X3109946
+ UUID: 00000000-0000-0000-0000-7cc255275836
+ Wake-up Type: Power Switch
+ SKU Number: To be filled by O.E.M.
+ Family: Family
+
+Handle 0x0002, DMI type 2, 15 bytes
+Base Board Information
+ Manufacturer: Supermicro
+ Product Name: X13DEG-QT
+ Version: 1.10
+ Serial Number: OM22CS039806
+ Asset Tag: Base Board Asset Tag
+ Features:
+ Board is a hosting board
+ Board is replaceable
+ Location In Chassis: Part Component
+ Chassis Handle: 0x0003
+ Type: Motherboard
+ Contained Object Handles: 0
+
+Handle 0x0003, DMI type 3, 22 bytes
+Chassis Information
+ Manufacturer: Supermicro
+ Type: Other
+ Lock: Not Present
+ Version: 0123456789
+ Serial Number: C7490FL36A40118
+ Asset Tag: Chassis Asset Tag
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: None
+ OEM Information: 0x00000000
+ Height: Unspecified
+ Number Of Power Cords: 1
+ Contained Elements: 0
+ SKU Number: 0123456789
+
+Handle 0x0032, DMI type 4, 50 bytes
+Processor Information
+ Socket Designation: CPU1
+ Type: Central Processor
+ Family: Xeon
+ Manufacturer: Intel(R) Corporation
+ ID: F8 06 08 00 FF FB EB BF
+ Signature: Type 0, Family 6, Model 143, Stepping 8
+ Flags:
+ FPU (Floating-point unit on-chip)
+ VME (Virtual mode extension)
+ DE (Debugging extension)
+ PSE (Page size extension)
+ TSC (Time stamp counter)
+ MSR (Model specific registers)
+ PAE (Physical address extension)
+ MCE (Machine check exception)
+ CX8 (CMPXCHG8 instruction supported)
+ APIC (On-chip APIC hardware supported)
+ SEP (Fast system call)
+ MTRR (Memory type range registers)
+ PGE (Page global enable)
+ MCA (Machine check architecture)
+ CMOV (Conditional move instruction supported)
+ PAT (Page attribute table)
+ PSE-36 (36-bit page size extension)
+ CLFSH (CLFLUSH instruction supported)
+ DS (Debug store)
+ ACPI (ACPI supported)
+ MMX (MMX technology supported)
+ FXSR (FXSAVE and FXSTOR instructions supported)
+ SSE (Streaming SIMD extensions)
+ SSE2 (Streaming SIMD extensions 2)
+ SS (Self-snoop)
+ HTT (Multi-threading)
+ TM (Thermal monitor supported)
+ PBE (Pending break enabled)
+ Version: Intel(R) Xeon(R) Platinum 8462Y+
+ Voltage: 1.6 V
+ External Clock: 100 MHz
+ Max Speed: 4000 MHz
+ Current Speed: 2800 MHz
+ Status: Populated, Enabled
+ Upgrade: Socket LGA4677
+ L1 Cache Handle: 0x002F
+ L2 Cache Handle: 0x0030
+ L3 Cache Handle: 0x0031
+ Serial Number: Not Specified
+ Asset Tag: UNKNOWN
+ Part Number: Not Specified
+ Core Count: 32
+ Core Enabled: 32
+ Thread Count: 64
+ Characteristics:
+ 64-bit capable
+ Multi-Core
+ Hardware Thread
+ Execute Protection
+ Enhanced Virtualization
+ Power/Performance Control
+
+Handle 0x0036, DMI type 4, 50 bytes
+Processor Information
+ Socket Designation: CPU2
+ Type: Central Processor
+ Family: Xeon
+ Manufacturer: Intel(R) Corporation
+ ID: F8 06 08 00 FF FB EB BF
+ Signature: Type 0, Family 6, Model 143, Stepping 8
+ Flags:
+ FPU (Floating-point unit on-chip)
+ VME (Virtual mode extension)
+ DE (Debugging extension)
+ PSE (Page size extension)
+ TSC (Time stamp counter)
+ MSR (Model specific registers)
+ PAE (Physical address extension)
+ MCE (Machine check exception)
+ CX8 (CMPXCHG8 instruction supported)
+ APIC (On-chip APIC hardware supported)
+ SEP (Fast system call)
+ MTRR (Memory type range registers)
+ PGE (Page global enable)
+ MCA (Machine check architecture)
+ CMOV (Conditional move instruction supported)
+ PAT (Page attribute table)
+ PSE-36 (36-bit page size extension)
+ CLFSH (CLFLUSH instruction supported)
+ DS (Debug store)
+ ACPI (ACPI supported)
+ MMX (MMX technology supported)
+ FXSR (FXSAVE and FXSTOR instructions supported)
+ SSE (Streaming SIMD extensions)
+ SSE2 (Streaming SIMD extensions 2)
+ SS (Self-snoop)
+ HTT (Multi-threading)
+ TM (Thermal monitor supported)
+ PBE (Pending break enabled)
+ Version: Intel(R) Xeon(R) Platinum 8462Y+
+ Voltage: 1.6 V
+ External Clock: 100 MHz
+ Max Speed: 4000 MHz
+ Current Speed: 2800 MHz
+ Status: Populated, Enabled
+ Upgrade: Socket LGA4677
+ L1 Cache Handle: 0x0033
+ L2 Cache Handle: 0x0034
+ L3 Cache Handle: 0x0035
+ Serial Number: Not Specified
+ Asset Tag: UNKNOWN
+ Part Number: Not Specified
+ Core Count: 32
+ Core Enabled: 32
+ Thread Count: 64
+ Characteristics:
+ 64-bit capable
+ Multi-Core
+ Hardware Thread
+ Execute Protection
+ Enhanced Virtualization
+ Power/Performance Control
+```
+
+## Linux dmidecode memory
+
+```
+Handle 0x003D, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMA1
+ Bank Locator: P0_Node0_Channel0_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612A27F
+ Asset Tag: P1-DIMMA1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x003E, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMB1
+ Bank Locator: P0_Node0_Channel1_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612A1CC
+ Asset Tag: P1-DIMMB1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x003F, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMC1
+ Bank Locator: P0_Node0_Channel2_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612A1B7
+ Asset Tag: P1-DIMMC1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0040, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMD1
+ Bank Locator: P0_Node0_Channel3_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612927A
+ Asset Tag: P1-DIMMD1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0041, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMME1
+ Bank Locator: P0_Node1_Channel0_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612A2B2
+ Asset Tag: P1-DIMME1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0042, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMF1
+ Bank Locator: P0_Node1_Channel1_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612A7F0
+ Asset Tag: P1-DIMMF1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0043, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMG1
+ Bank Locator: P0_Node1_Channel2_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612A1B0
+ Asset Tag: P1-DIMMG1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0044, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P1-DIMMH1
+ Bank Locator: P0_Node1_Channel3_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD012214961292F4
+ Asset Tag: P1-DIMMH1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0045, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMA1
+ Bank Locator: P1_Node0_Channel0_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD01221496129322
+ Asset Tag: P2-DIMMA1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0046, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMB1
+ Bank Locator: P1_Node0_Channel1_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612A282
+ Asset Tag: P2-DIMMB1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0047, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMC1
+ Bank Locator: P1_Node0_Channel2_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612936B
+ Asset Tag: P2-DIMMC1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0048, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMD1
+ Bank Locator: P1_Node0_Channel3_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD012214961292FA
+ Asset Tag: P2-DIMMD1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x0049, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMME1
+ Bank Locator: P1_Node1_Channel0_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD012214961292ED
+ Asset Tag: P2-DIMME1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x004A, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMF1
+ Bank Locator: P1_Node1_Channel1_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612A888
+ Asset Tag: P2-DIMMF1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x004B, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMG1
+ Bank Locator: P1_Node1_Channel2_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612A299
+ Asset Tag: P2-DIMMG1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+
+Handle 0x004C, DMI type 17, 92 bytes
+Memory Device
+ Array Handle: 0x003C
+ Error Information Handle: Not Provided
+ Total Width: 80 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: P2-DIMMH1
+ Bank Locator: P1_Node1_Channel3_Dimm0
+ Type: DDR5
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 4800 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 80AD0122149612A195
+ Asset Tag: P2-DIMMH1_AssetTag (date:22/14)
+ Part Number: HMCG88MEBRA107N
+ Rank: 2
+ Configured Memory Speed: 4800 MT/s
+ Minimum Voltage: 1.1 V
+ Maximum Voltage: 1.1 V
+ Configured Voltage: 1.1 V
+ Memory Technology: DRAM
+ Memory Operating Mode Capability: Volatile memory
+ Firmware Version: 0000
+ Module Manufacturer ID: Bank 1, Hex 0xAD
+ Module Product ID: 0xAD00
+ Memory Subsystem Controller Manufacturer ID: Unknown
+ Memory Subsystem Controller Product ID: Unknown
+ Non-Volatile Size: None
+ Volatile Size: 32 GB
+ Cache Size: None
+ Logical Size: None
+```
+
+## Linux cmdline
+
+```
+BOOT_IMAGE=/boot/vmlinuz-5.15.0-46-generic root=UUID=b99a7749-d0ee-4afe-88a0-0be6c5873645 ro audit=0 default_hugepagesz=2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768 hpet=disable intel_idle.max_cstate=1 intel_iommu=on intel_pstate=disable iommu=pt isolcpus=1-31,33-63,65-95,97-127 mce=off nmi_watchdog=0 nohz_full=1-31,33-63,65-95,97-127 nosoftlockup numa_balancing=disable processor.max_cstate=1 rcu_nocbs=1-31,33-63,65-95,97-127 tsc=reliable
+```
+
+## Xeon ICX Server Firmware Inventory
+
+```
+Host. IPMI IP. BMC. BIOS. CPLD. CPU Microcode. Cx-7 Firmware. mlx5. E810 Firmware. ice.
+s52-t21-sut1. 10.30.50.52. 1.00.2. 1.4. F2.43.09. 0x2b0000c0. 28.38.1002. 23.07-0.5.0. -. -.
+s53-t21-tg1. 10.30.50.53. 1.00.2. 1.4. F2.43.09. 0x2b0000c0. 28.38.1002. 23.07-0.5.0. -. -.
+s54-t22-sut1. 10.30.50.54. 1.00.2. 1.4. F2.43.09. 0x2b0000c0. -. -. 4.30. 1.12.6.
+s55-t22-tg1. 10.30.50.55. 1.00.2. 1.4. F2.43.09. 0x2b0000c0. -. -. 3.20. 1.9.7.
+s56-t23-sut1. 10.30.50.56. 1.00.2. 1.4. F2.43.09. 0x2b0000c0. 28.38.1002. 23.07-0.5.0. 4.30. 1.12.6.
+s57-t23-tg1. 10.30.50.57. 1.00.2. 1.4. F2.43.09. 0x2b0000c0. 28.38.1002. 23.07-0.5.0. 3.20. 1.9.7.
+s58-t24-sut1. 10.30.50.58. 1.00.2. 1.4. F2.43.09. 0x2b0000c0. 28.38.1002. 23.07-0.5.0. 4.30. 1.12.6.
+s59-t24-tg1. 10.30.50.59. 1.00.2. 1.4. F2.43.09. 0x2b0000c0. 28.38.1002. 23.07-0.5.0. 3.20. 1.9.7.
+```
diff --git a/docs/content/infrastructure/testbed_configuration/sm_zn2_hw_bios_cfg.md b/docs/content/infrastructure/testbed_configuration/sm_zn2_hw_bios_cfg.md
new file mode 100644
index 0000000000..89898f8f1d
--- /dev/null
+++ b/docs/content/infrastructure/testbed_configuration/sm_zn2_hw_bios_cfg.md
@@ -0,0 +1,620 @@
+---
+bookToc: true
+title: "SuperMicro EPYC Zen2"
+---
+
+# SuperMicro EPYC Zen2
+
+## Linux lscpu
+
+```
+$ lscpu
+Architecture: x86_64
+CPU op-mode(s): 32-bit, 64-bit
+Byte Order: Little Endian
+CPU(s): 64
+On-line CPU(s) list: 0-63
+Thread(s) per core: 2
+Core(s) per socket: 32
+Socket(s): 1
+NUMA node(s): 2
+Vendor ID: AuthenticAMD
+CPU family: 23
+Model: 49
+Model name: AMD EPYC 7532 32-Core Processor
+Stepping: 0
+CPU MHz: 1981.470
+CPU max MHz: 2400.0000
+CPU min MHz: 1500.0000
+BogoMIPS: 4800.05
+Virtualization: AMD-V
+L1d cache: 32K
+L1i cache: 32K
+L2 cache: 512K
+L3 cache: 16384K
+NUMA node0 CPU(s): 0-15,32-47
+NUMA node1 CPU(s): 16-31,48-63
+Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca
+```
+
+```
+$ lscpu
+Architecture: x86_64
+CPU op-mode(s): 32-bit, 64-bit
+Byte Order: Little Endian
+CPU(s): 64
+On-line CPU(s) list: 0-63
+Thread(s) per core: 2
+Core(s) per socket: 32
+Socket(s): 1
+NUMA node(s): 2
+Vendor ID: AuthenticAMD
+CPU family: 23
+Model: 49
+Model name: AMD EPYC 7532 32-Core Processor
+Stepping: 0
+CPU MHz: 1981.470
+CPU max MHz: 2400.0000
+CPU min MHz: 1500.0000
+BogoMIPS: 4800.05
+Virtualization: AMD-V
+L1d cache: 32K
+L1i cache: 32K
+L2 cache: 512K
+L3 cache: 16384K
+NUMA node0 CPU(s): 0-15,32-47
+NUMA node1 CPU(s): 16-31,48-63
+Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca
+```
+
+## Linux dmidecode
+
+```
+ $ dmidecode -t slot
+ Handle 0x0026, DMI type 7, 27 bytes
+ Cache Information
+ Socket Designation: L1 Cache
+ Configuration: Enabled, Not Socketed, Level 1
+ Operational Mode: Write Back
+ Location: Internal
+ Installed Size: 2048 kB
+ Maximum Size: 2048 kB
+ Supported SRAM Types:
+ Pipeline Burst
+ Installed SRAM Type: Pipeline Burst
+ Speed: 1 ns
+ Error Correction Type: Multi-bit ECC
+ System Type: Unified
+ Associativity: 8-way Set-associative
+
+ Handle 0x0027, DMI type 7, 27 bytes
+ Cache Information
+ Socket Designation: L2 Cache
+ Configuration: Enabled, Not Socketed, Level 2
+ Operational Mode: Write Back
+ Location: Internal
+ Installed Size: 16384 kB
+ Maximum Size: 16384 kB
+ Supported SRAM Types:
+ Pipeline Burst
+ Installed SRAM Type: Pipeline Burst
+ Speed: 1 ns
+ Error Correction Type: Multi-bit ECC
+ System Type: Unified
+ Associativity: 8-way Set-associative
+
+ Handle 0x0028, DMI type 7, 27 bytes
+ Cache Information
+ Socket Designation: L3 Cache
+ Configuration: Enabled, Not Socketed, Level 3
+ Operational Mode: Write Back
+ Location: Internal
+ Installed Size: 262144 kB
+ Maximum Size: 262144 kB
+ Supported SRAM Types:
+ Pipeline Burst
+ Installed SRAM Type: Pipeline Burst
+ Speed: 1 ns
+ Error Correction Type: Multi-bit ECC
+ System Type: Unified
+ Associativity: 16-way Set-associative
+
+ Handle 0x0029, DMI type 4, 48 bytes
+ Processor Information
+ Socket Designation: CPU
+ Type: Central Processor
+ Family: Zen
+ Manufacturer: Advanced Micro Devices, Inc.
+ ID: 10 0F 83 00 FF FB 8B 17
+ Signature: Family 23, Model 49, Stepping 0
+ Flags:
+ FPU (Floating-point unit on-chip)
+ VME (Virtual mode extension)
+ DE (Debugging extension)
+ PSE (Page size extension)
+ TSC (Time stamp counter)
+ MSR (Model specific registers)
+ PAE (Physical address extension)
+ MCE (Machine check exception)
+ CX8 (CMPXCHG8 instruction supported)
+ APIC (On-chip APIC hardware supported)
+ SEP (Fast system call)
+ MTRR (Memory type range registers)
+ PGE (Page global enable)
+ MCA (Machine check architecture)
+ CMOV (Conditional move instruction supported)
+ PAT (Page attribute table)
+ PSE-36 (36-bit page size extension)
+ CLFSH (CLFLUSH instruction supported)
+ MMX (MMX technology supported)
+ FXSR (FXSAVE and FXSTOR instructions supported)
+ SSE (Streaming SIMD extensions)
+ SSE2 (Streaming SIMD extensions 2)
+ HTT (Multi-threading)
+ Version: AMD EPYC 7532 32-Core Processor
+ Voltage: 1.1 V
+ External Clock: 100 MHz
+ Max Speed: 3300 MHz
+ Current Speed: 2400 MHz
+ Status: Populated, Enabled
+ Upgrade: Socket SP3
+ L1 Cache Handle: 0x0026
+ L2 Cache Handle: 0x0027
+ L3 Cache Handle: 0x0028
+ Serial Number: Unknown
+ Asset Tag: Unknown
+ Part Number: Unknown
+ Core Count: 32
+ Core Enabled: 32
+ Thread Count: 64
+ Characteristics:
+ 64-bit capable
+ Multi-Core
+ Hardware Thread
+ Execute Protection
+ Enhanced Virtualization
+ Power/Performance Control
+```
+
+## Linux dmidecode pci
+
+```
+ $ dmidecode -t slot
+ Getting SMBIOS data from sysfs.
+ SMBIOS 3.2.0 present.
+ # SMBIOS implementations newer than version 3.1.1 are not
+ # fully supported by this version of dmidecode.
+
+ Handle 0x000A, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: M.2-HC1 CPU PCI-E 4.0 X4/X2
+ Type: x4 PCI Express 3 x4
+ Current Usage: Available
+ Length: Short
+ ID: 1
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:ff:00.0
+
+ Handle 0x000B, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: M.2-HC2 CPU PCI-E 4.0 X2
+ Type: x2 PCI Express 3 x2
+ Current Usage: Available
+ Length: Short
+ ID: 2
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:ff:00.0
+
+ Handle 0x0042, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: RSC-W-66G4 SLOT1 PCI-E 4.0 X16
+ Type: x16 PCI Express 3 x16
+ Current Usage: In Use
+ Length: Long
+ ID: 1
+ Characteristics:
+ 3.3 V is provided
+ PME signal is supported
+ Bus Address: 0000:41:00.0
+
+ Handle 0x0043, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: RSC-W-66G4 SLOT2 PCI-E 4.0 X16
+ Type: x16 PCI Express 3 x16
+ Current Usage: In Use
+ Length: Long
+ ID: 2
+ Characteristics:
+ 3.3 V is provided
+ PME signal is supported
+ Bus Address: 0000:81:00.0
+
+ Handle 0x0045, DMI type 9, 17 bytes
+ System Slot Information
+ Designation: RSC-WR-6 SLOT1 PCI-E 4.0 X16
+ Type: x16 PCI Express 3 x16
+ Current Usage: In Use
+ Length: Long
+ ID: 1
+ Characteristics:
+ 3.3 V is provided
+ PME signal is supported
+ Bus Address: 0000:01:00.0
+
+```
+
+## Linux dmidecode memory
+
+```
+ $ dmidecode -t memory
+ # dmidecode 3.1
+ Getting SMBIOS data from sysfs.
+ SMBIOS 3.2.0 present.
+ # SMBIOS implementations newer than version 3.1.1 are not
+ # fully supported by this version of dmidecode.
+
+ Handle 0x0023, DMI type 16, 23 bytes
+ Physical Memory Array
+ Location: System Board Or Motherboard
+ Use: System Memory
+ Error Correction Type: Multi-bit ECC
+ Maximum Capacity: 2 TB
+ Error Information Handle: 0x0022
+ Number Of Devices: 8
+
+ Handle 0x002B, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0023
+ Error Information Handle: 0x002A
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMMA1
+ Bank Locator: P0_Node0_Channel0_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 431E9216
+ Asset Tag: P1-DIMMA1_AssetTag (date:19/00)
+ Part Number: HMA84GR7CJR4N-XN
+ Rank: 2
+ Configured Clock Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x002E, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0023
+ Error Information Handle: 0x002D
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMMB1
+ Bank Locator: P0_Node0_Channel1_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 431E91D2
+ Asset Tag: P1-DIMMB1_AssetTag (date:19/00)
+ Part Number: HMA84GR7CJR4N-XN
+ Rank: 2
+ Configured Clock Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0031, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0023
+ Error Information Handle: 0x0030
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMMC1
+ Bank Locator: P0_Node0_Channel2_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 431E918A
+ Asset Tag: P1-DIMMC1_AssetTag (date:19/00)
+ Part Number: HMA84GR7CJR4N-XN
+ Rank: 2
+ Configured Clock Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0034, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0023
+ Error Information Handle: 0x0033
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMMD1
+ Bank Locator: P0_Node0_Channel3_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 431E9187
+ Asset Tag: P1-DIMMD1_AssetTag (date:19/00)
+ Part Number: HMA84GR7CJR4N-XN
+ Rank: 2
+ Configured Clock Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0037, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0023
+ Error Information Handle: 0x0036
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMME1
+ Bank Locator: P0_Node0_Channel4_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 431E9178
+ Asset Tag: P1-DIMME1_AssetTag (date:19/00)
+ Part Number: HMA84GR7CJR4N-XN
+ Rank: 2
+ Configured Clock Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x003A, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0023
+ Error Information Handle: 0x0039
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMMF1
+ Bank Locator: P0_Node0_Channel5_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 431E9206
+ Asset Tag: P1-DIMMF1_AssetTag (date:19/00)
+ Part Number: HMA84GR7CJR4N-XN
+ Rank: 2
+ Configured Clock Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x003D, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0023
+ Error Information Handle: 0x003C
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMMG1
+ Bank Locator: P0_Node0_Channel6_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 431E9207
+ Asset Tag: P1-DIMMG1_AssetTag (date:19/00)
+ Part Number: HMA84GR7CJR4N-XN
+ Rank: 2
+ Configured Clock Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+
+ Handle 0x0040, DMI type 17, 84 bytes
+ Memory Device
+ Array Handle: 0x0023
+ Error Information Handle: 0x003F
+ Total Width: 72 bits
+ Data Width: 64 bits
+ Size: 32 GB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMMH1
+ Bank Locator: P0_Node0_Channel7_Dimm0
+ Type: DDR4
+ Type Detail: Synchronous Registered (Buffered)
+ Speed: 3200 MT/s
+ Manufacturer: SK Hynix
+ Serial Number: 431E9209
+ Asset Tag: P1-DIMMH1_AssetTag (date:19/00)
+ Part Number: HMA84GR7CJR4N-XN
+ Rank: 2
+ Configured Clock Speed: 3200 MT/s
+ Minimum Voltage: 1.2 V
+ Maximum Voltage: 1.2 V
+ Configured Voltage: 1.2 V
+```
+
+## EPYC zn2 Server BIOS Configuration - TG
+
+### Boot Feature
+
+```
+ | Quiet Boot [Enabled] |Boot option |
+ | | |
+ | Option ROM Messages [Force BIOS] | |
+ | Bootup NumLock State [On] | |
+ | Wait For "F1" If Error [Enabled] | |
+ | INT19 Trap Response [Immediate] | |
+ | Re-try Boot [Disabled] | |
+ | | |
+ | Power Configuration | |
+ | Watch Dog Function [Disabled] | |
+ | Restore on AC Power Loss [Last State] | |
+ | Power Button Function [Instant Off] | |
+```
+
+### CPU Configuration
+
+```
+ | ACPI Settings ^| |
+ | -------------------------------------------------- *| |
+ | PCI AER Support [Disabled] *| |
+ | High Precision Event Timer [Disabled] *| |
+ | NUMA Nodes Per Socket [NPS2] *| |
+ | ACPI SRAT L3 Cache As NUMA Domain [Auto] *| |
+ | *| |
+ | CPU Configuration ^| |
+ | -------------------------------------------------- *| |
+ | SMT Control [Auto] *| |
+ | Core Performance Boost [Auto] *| |
+ | Global C-state control [Disabled] *| |
+ | Local APIC Mode [Auto] *| |
+ | CCD Control [Auto] *| |
+ | Core Control [Auto] *| |
+ | Core Control [Auto] *| |
+ | L1 Stream HW Prefetcher [Enabled] *| |
+ | L2 Stream HW Prefetcher [Enabled] *| |
+ | SVM Mode [Enabled] *| |
+ | SMEE [Disabled] *| |
+ | *| |
+ |> CPU1 Information *| |
+ | *| |
+ | NB Configuration ^| |
+ | -------------------------------------------------- *| |
+ | Determinism Control [Manual] *| |
+ | Determinism Slider [Performance] *| |
+ | cTDP Control [Disabled] *| |
+ | IOMMU [Disabled] *| |
+ | ACS Enable [Auto] *| |
+ | Package Power Limit Control [Auto] *| |
+ | APBDIS [1] *| |
+ | Fixed SOC Pstate [P0] *| |
+ | DF Cstates [Enabled] *| |
+ | Preferred IO [Manual] *| |
+ | Preferred IO Bus [##] *| |
+ | *| |
+ | *|-----------------------------|
+ | *|><: Select Screen |
+ | *|^v: Select Item |
+ | *|Enter: Select |
+ | +|+/-: Change Opt. |
+ | +|F1: General Help |
+ | +|F2: Previous Values |
+ | +|F3: Optimized Defaults |
+ | v|F4: Save & Exit |
+ | | |
+```
+
+
+## EPYC zn2 Server BIOS Configuration - DUT
+
+### Boot Feature
+
+```
+ | Quiet Boot [Enabled] |Boot option |
+ | | |
+ | Option ROM Messages [Force BIOS] | |
+ | Bootup NumLock State [On] | |
+ | Wait For "F1" If Error [Enabled] | |
+ | INT19 Trap Response [Immediate] | |
+ | Re-try Boot [Disabled] | |
+ | | |
+ | Power Configuration | |
+ | Watch Dog Function [Disabled] | |
+ | Restore on AC Power Loss [Last State] | |
+ | Power Button Function [Instant Off] | |
+```
+
+### CPU Configuration
+
+```
+ | ACPI Settings ^| |
+ | -------------------------------------------------- *| |
+ | PCI AER Support [Disabled] *| |
+ | High Precision Event Timer [Disabled] *| |
+ | NUMA Nodes Per Socket [NPS2] *| |
+ | ACPI SRAT L3 Cache As NUMA Domain [Auto] *| |
+ | *| |
+ | CPU Configuration ^| |
+ | -------------------------------------------------- *| |
+ | SMT Control [Auto] *| |
+ | Core Performance Boost [Auto] *| |
+ | Global C-state control [Disabled] *| |
+ | Local APIC Mode [Auto] *| |
+ | CCD Control [Auto] *| |
+ | Core Control [Auto] *| |
+ | Core Control [Auto] *| |
+ | L1 Stream HW Prefetcher [Enabled] *| |
+ | L2 Stream HW Prefetcher [Enabled] *| |
+ | SVM Mode [Enabled] *| |
+ | SMEE [Disabled] *| |
+ | *| |
+ |> CPU1 Information *| |
+ | *| |
+ | NB Configuration ^| |
+ | -------------------------------------------------- *| |
+ | Determinism Control [Manual] *| |
+ | Determinism Slider [Performance] *| |
+ | cTDP Control [Disabled] *| |
+ | IOMMU [Disabled] *| |
+ | ACS Enable [Auto] *| |
+ | Package Power Limit Control [Auto] *| |
+ | APBDIS [1] *| |
+ | Fixed SOC Pstate [P0] *| |
+ | DF Cstates [Enabled] *| |
+ | Preferred IO [Manual] *| |
+ | Preferred IO Bus [##] *| |
+ | *| |
+ | *|-----------------------------|
+ | *|><: Select Screen |
+ | *|^v: Select Item |
+ | *|Enter: Select |
+ | +|+/-: Change Opt. |
+ | +|F1: General Help |
+ | +|F2: Previous Values |
+ | +|F3: Optimized Defaults |
+ | v|F4: Save & Exit |
+ | | |
+```
+
+## Linux cmdline
+
+```
+$ cat /proc/cmdline
+BOOT_IMAGE=/boot/vmlinuz-5.15.0-46-generic root=UUID=cac1254f-9426-4ea6-a8db-2554f075db99 ro amd_iommu=on audit=0 default_hugepagesz=2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768 hpet=disable iommu=pt isolcpus=1-15,17-31,33-47,49-63 nmi_watchdog=0 nohz_full=off nosoftlockup numa_balancing=disable processor.max_cstate=0 rcu_nocbs=1-15,17-31,33-47,49-63 tsc=reliable console=ttyS0,115200n8 quiet
+```
+
+## EPYC zn2 Server Firmware Inventory
+
+```
+Host. IPMI IP. BMC. BIOS. CPLD. CPU Microcode. PCI Bus. X710 Firmware. XXV710 Firmware. i40e. CX-5 Firmware. mlx5_core
+s60-t210-sut1. 10.30.55.24. 03.10.04. 1.1a. 02.c2.00. 0x8301038. ?. 9.20. 9.20. 2.22.20. 16.35.2000. 23.07-0.5.0.
+s61-t210-tg1. 10.30.55.25. 03.10.04. 1.1a. 02.c2.00. 0x8301038. ?. 8.30. 8.30. 2.19.3. 16.32.1010. 5.9-0.5.5.
+```
diff --git a/docs/content/infrastructure/vpp_startup_settings.md b/docs/content/infrastructure/vpp_startup_settings.md
new file mode 100644
index 0000000000..7361d4b21f
--- /dev/null
+++ b/docs/content/infrastructure/vpp_startup_settings.md
@@ -0,0 +1,44 @@
+---
+title: "VPP Startup Settings"
+weight: 6
+---
+
+# VPP Startup Settings
+
+CSIT code manipulates a number of VPP settings in startup.conf for
+optimized performance. List of common settings applied to all tests and
+test dependent settings follows.
+
+## Common Settings
+
+List of VPP startup.conf settings applied to all tests:
+
+1. heap-size <value> - set separately for ip4, ip6, stats, main
+ depending on scale tested.
+2. no-tx-checksum-offload - disables UDP / TCP TX checksum offload in
+ DPDK. Typically needed for use faster vector PMDs (together with
+ no-multi-seg).
+3. buffers-per-numa <value> - sets a number of memory buffers allocated
+ to VPP per CPU socket. VPP default is 16384. Needs to be increased for
+ scenarios with large number of interfaces and worker threads. To
+ accommodate for scale tests, CSIT is setting it to the maximum possible
+ value corresponding to the limit of DPDK memory mappings (currently
+ 256). For Xeon Skylake platforms configured with 2MB hugepages and VPP
+ data-size and buffer-size defaults (2048B and 2496B respectively), this
+ results in value of 215040 (256 * 840 = 215040, 840 * 2496B buffers fit
+ in 2MB hugepage).
+
+## Per Test Settings
+
+List of vpp startup.conf settings applied dynamically per test:
+
+1. corelist-workers <list_of_cores> - list of logical cores to run VPP
+ worker data plane threads. Depends on HyperThreading and core per
+ test configuration.
+2. num-rx-queues <value> - depends on a number of VPP threads and NIC
+ interfaces.
+3. no-multi-seg - disables multi-segment buffers in DPDK, improves
+ packet throughput, but disables Jumbo MTU support. Disabled for all
+ tests apart from the ones that require Jumbo 9000B frame support.
+4. UIO driver - depends on topology file definition.
+5. QAT VFs - depends on NRThreads, each thread = 1QAT VFs.
diff --git a/docs/content/methodology/_index.md b/docs/content/methodology/_index.md
new file mode 100644
index 0000000000..dbef64db94
--- /dev/null
+++ b/docs/content/methodology/_index.md
@@ -0,0 +1,6 @@
+---
+bookCollapseSection: false
+bookFlatSection: true
+title: "Methodology"
+weight: 2
+---
diff --git a/docs/content/methodology/bisecting.md b/docs/content/methodology/bisecting.md
new file mode 100644
index 0000000000..25be7f94af
--- /dev/null
+++ b/docs/content/methodology/bisecting.md
@@ -0,0 +1,114 @@
+---
+title: "Bisecting"
+weight: 5
+---
+
+# Bisecting
+
+Updated for CSIT git commit hash: 153c9e1215f27ad166df0ce4bd2541d9f37a7afa.
+
+When trending (or report release comparison) detects a performance anomaly,
+it is possible to narrow down its cause in VPP repository.
+This document explains how.
+
+## Naming
+
+Bisect is a binary search, it relies on "git bisect" command.
+At the start, two commits need to be marked. One as "old", the other as "new".
+Upon second mark, "git bisect" checks out a commit in the middle,
+and waits for the user to mark it either old or new.
+This effectively replaces the previous mark of the same type,
+so "new middle" is checked out, halving the search interval.
+
+But, "old" and "new" frequently refers to the time order bisect chooses commits,
+so in this document we use different adjectives:
+Early, mid, late. Early commit and late commit are the current
+boundaries of the search interval, mid commit is the next one
+to test and classify.
+The initial boundaries, as input parameters to the whole search process
+are called the earliest commit and the latest commit.
+
+## Bisect jobs
+
+VPP is the only project currently using such jobs.
+They are not started automatically, they must be triggered on demand.
+They allow full tag expressions, but only some result types are supported.
+Currently it is all perf types in UTI model:
+"mrr", "ndrpdr", "soak", "reconf" and "hoststack".
+Device tests (pass/fail) are not supported yet.
+If a test fails, a low fake value is used instead of results,
+so the bisect procedure can also find breakages (and fixes).
+
+The trigger word contains the intended testbed type,
+e.g. "bisecttest-2n-spr".
+
+The next word needs to be a commit hash of the intended earliest VPP build.
+The latest VPP build is the change the comment is added to.
+
+If additional arguments are added to the Gerrit trigger, they are treated
+as Robot tag expressions to select tests to run.
+
+## Basic operation
+
+The job builds VPP .deb packages for both the earliest and latest VPP commit,
+then runs the selected tests on both (using CSIT code at HEAD
+of the newest CSIT oper branch, or CSIT_REF if started manually on Jenkins).
+In archived logs, the results of earliest VPP build are in "earliest" directory,
+and results of latest VPP build are in "latest" directory.
+
+Then the job follows VPP mid commits selected by "git bisect".
+They are built and tested, results appear in "middle" directory,
+numbered in order "git bisect" has chosen them.
+
+When classifying the newly measured performance of the current mid commit,
+the three sets of current results (early, mid, late) are grouped
+in three ways. The mid is either added to early group, or to late group,
+or kept as a separate group.
+The same Minimal Description Length algorithm as in trend analysis
+is used to select the grouping with smallest information content.
+If the grouping with the mid results added to the early group
+is the smallest, the mid commit becomes the new early.
+If the grouping with the mid results added to the late group
+is the smallest, the mid commit becomes the new late.
+If the grouping with the mid results separate is the smallest,
+the mid commit becomes that boundary which keeps larger difference
+of average performances (relative to the larger value, pairwise).
+
+## Temporary specifics
+
+The Minimal Description Length analysis is performed by
+jumpavg-0.4.1 (available on PyPI).
+
+In contrast to trending, MRR trial duration is kept at 1 second,
+but trial multiplicity is set to 60 samples.
+Both parameters are set in ci-management,
+overridable when triggerring manually on Jenkins.
+
+The 60x1s setting increases probability of false anomalies,
+but bisect always converges to a commit;
+it is up to humans to decide if that is a real anomaly.
+On upside, stdev is estimated better, making the bisection less sensitive
+to randomness. Systematic errors are still possible,
+but overall this choice leads to more human-like search decisions.
+
+As test failures are tolerated, the bisect job usually succeeds
+(unless there is a fatal infrastructure issue).
+Human investigation is needed to confirm the identified commit is the real cause.
+For example, if the cause is in CSIT and all builds lead to failed tests,
+the bisect will converge to the earliest commit, which is probably innocent.
+
+## Console output
+
+After each mid build is tested, the tree sets of relevant results
+are visible in the console output, the prefixes are (without quotes)
+"Read csit_early: "
+"Read csit_late: "
+"Read csit_mid: ".
+Each prefix is followed by a list of float values extracted from the tests,
+the meaning and units depend on tests chosen
+(but do not matter as the same set of tests is executed for each build).
+There are also lines starting with "Stats: AvgStdevStats"
+which give and overview for average and standard deviation.
+Then, the information content in bits for the three possible groupings is listed,
+followed by the decision, bits saving and new performance difference.
+After the last iteration, the commit message of the offending commit is listed.
diff --git a/docs/content/methodology/measurements/_index.md b/docs/content/methodology/measurements/_index.md
new file mode 100644
index 0000000000..21176fef80
--- /dev/null
+++ b/docs/content/methodology/measurements/_index.md
@@ -0,0 +1,12 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "Measurements"
+weight: 2
+---
+
+# Measurement
+
+- [Data Plane Throughput]({{< relref "/methodology/measurements/data_plane_throughput" >}})
+- [Packet Latency]({{< relref "/methodology/measurements/packet_latency" >}})
+- [Telemetry]({{< relref "/methodology/measurements/telemetry" >}})
diff --git a/docs/content/methodology/measurements/data_plane_throughput/_index.md b/docs/content/methodology/measurements/data_plane_throughput/_index.md
new file mode 100644
index 0000000000..30b55f149d
--- /dev/null
+++ b/docs/content/methodology/measurements/data_plane_throughput/_index.md
@@ -0,0 +1,13 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "Data Plane Throughput"
+weight: 1
+---
+
+# Data Plane Throughput
+
+- [Overview]({{< relref "/methodology/measurements/data_plane_throughput/data_plane_throughput" >}})
+- [MLR Search]({{< relref "/methodology/measurements/data_plane_throughput/mlr_search" >}})
+- [PLR Search]({{< relref "/methodology/measurements/data_plane_throughput/plr_search" >}})
+- [MRR]({{< relref "/methodology/measurements/data_plane_throughput/mrr" >}}) \ No newline at end of file
diff --git a/docs/content/methodology/measurements/data_plane_throughput/data_plane_throughput.md b/docs/content/methodology/measurements/data_plane_throughput/data_plane_throughput.md
new file mode 100644
index 0000000000..865405ba2f
--- /dev/null
+++ b/docs/content/methodology/measurements/data_plane_throughput/data_plane_throughput.md
@@ -0,0 +1,129 @@
+---
+title: "Overview"
+weight: 1
+---
+
+# Data Plane Throughput
+
+Network data plane throughput is measured using multiple test methods in
+order to obtain representative and repeatable results across the large
+set of performance test cases implemented and executed within CSIT.
+
+Following throughput test methods are used:
+
+- MLRsearch - Multiple Loss Ratio search
+- PLRsearch - Probabilistic Loss Ratio search
+- MRR - Maximum Receive Rate
+
+Description of each test method is followed by generic test properties
+shared by all methods.
+
+## MLRsearch Tests
+
+### Description
+
+Multiple Loss Ratio search (MLRsearch) tests discover multiple packet
+throughput rates in a single search, reducing the overall test execution
+time compared to a binary search. Each rate is associated with a
+distinct Packet Loss Ratio (PLR) criteria. In FD.io CSIT two throughput
+rates are discovered: Non-Drop Rate (NDR, with zero packet loss, PLR=0)
+and Partial Drop Rate (PDR, with PLR<0.5%). MLRsearch is compliant with
+RFC2544.
+
+### Usage
+
+MLRsearch tests are run to discover NDR and PDR rates for each VPP and
+DPDK release covered by CSIT report. Results for small frame sizes
+(64B/78B, IMIX) are presented in packet throughput graphs
+(Box-and-Whisker Plots) with NDR and PDR rates plotted against the test
+cases covering popular VPP packet paths.
+
+Each test is executed at least 10 times to verify measurements
+repeatability and results are compared between releases and test
+environments. NDR and PDR packet and bandwidth throughput results for
+all frame sizes and for all tests are presented in detailed results
+tables.
+
+### Details
+
+See [MLRSearch]({{< ref "mlr_search/#MLRsearch" >}}) section for more detail.
+MLRsearch is being standardized in IETF in
+[draft-ietf-bmwg-mlrsearch](https://datatracker.ietf.org/doc/html/draft-ietf-bmwg-mlrsearch-01).
+
+## PLRsearch Tests
+
+### Description
+
+Probabilistic Loss Ratio search (PLRsearch) tests discovers a packet
+throughput rate associated with configured Packet Loss Ratio (PLR)
+criteria for tests run over an extended period of time a.k.a. soak
+testing. PLRsearch assumes that system under test is probabilistic in
+nature, and not deterministic.
+
+### Usage
+
+PLRsearch are run to discover a sustained throughput for PLR=10^-7^
+(close to NDR) for VPP release covered by CSIT report. Results for small
+frame sizes (64B/78B) are presented in packet throughput graphs (Box
+Plots) for a small subset of baseline tests.
+
+Each soak test lasts 30 minutes and is executed at least twice. Results are
+compared against NDR and PDR rates discovered with MLRsearch.
+
+### Details
+
+See [PLRSearch]({{< ref "plr_search/#PLRsearch" >}}) methodology section for
+more detail. PLRsearch is being standardized in IETF in
+[draft-vpolak-bmwg-plrsearch](https://tools.ietf.org/html/draft-vpolak-bmwg-plrsearch).
+
+## MRR Tests
+
+### Description
+
+Maximum Receive Rate (MRR) tests are complementary to MLRsearch tests,
+as they provide a maximum “raw” throughput benchmark for development and
+testing community.
+
+MRR tests measure the packet forwarding rate under the maximum load
+offered by traffic generator (dependent on link type and NIC model) over
+a set trial duration, regardless of packet loss. Maximum load for
+specified Ethernet frame size is set to the bi-directional link rate.
+
+### Usage
+
+MRR tests are much faster than MLRsearch as they rely on a single trial
+or a small set of trials with very short duration. It is this property
+that makes them suitable for continuous execution in daily performance
+trending jobs enabling detection of performance anomalies (regressions,
+progressions) resulting from data plane code changes.
+
+MRR tests are also used for VPP per patch performance jobs verifying
+patch performance vs parent. CSIT reports include MRR throughput
+comparisons between releases and test environments. Small frame sizes
+only (64B/78B, IMIX).
+
+### Details
+
+See [MRR Throughput]({{< ref "mrr/#MRR" >}})
+section for more detail about MRR tests configuration.
+
+FD.io CSIT performance dashboard includes complete description of
+[daily performance trending tests]({{< ref "../../trending/analysis" >}})
+and [VPP per patch tests]({{< ref "../../per_patch_testing.md" >}}).
+
+## Generic Test Properties
+
+All data plane throughput test methodologies share following generic
+properties:
+
+- Tested L2 frame sizes (untagged Ethernet):
+
+ - IPv4 payload: 64B, IMIX (28x64B, 16x570B, 4x1518B), 1518B, 9000B.
+ - IPv6 payload: 78B, IMIX (28x78B, 16x570B, 4x1518B), 1518B, 9000B.
+ - All quoted sizes include frame CRC, but exclude per frame
+ transmission overhead of 20B (preamble, inter frame gap).
+
+- Offered packet load is always bi-directional and symmetric.
+- All measured and reported packet and bandwidth rates are aggregate
+ bi-directional rates reported from external Traffic Generator
+ perspective.
diff --git a/docs/content/methodology/measurements/data_plane_throughput/mlr_search.md b/docs/content/methodology/measurements/data_plane_throughput/mlr_search.md
new file mode 100644
index 0000000000..71e4471905
--- /dev/null
+++ b/docs/content/methodology/measurements/data_plane_throughput/mlr_search.md
@@ -0,0 +1,112 @@
+---
+title: "MLR Search"
+weight: 2
+---
+
+# MLR Search
+
+## Overview
+
+Multiple Loss Ratio search (MLRsearch) tests use an optimized search algorithm
+implemented in FD.io CSIT project. MLRsearch discovers conditional throughput
+corresponding to any number of loss ratio goals, within a single search.
+
+Two loss ratio goals are of interest in FD.io CSIT, leading to Non-Drop Rate
+(NDR, loss ratio goal is exact zero) and Partial Drop Rate
+(PDR, 0.5% loss ratio goal).
+Instead of a single long trial, a sequence of short (1s) trials is done.
+Thus, instead of final trial duration, a duration sum (21s) is prescribed.
+This allows the algorithm to make a decision sooner,
+when the results are quite one-sided.
+Also, only one half of the trial results is required to meet
+the loss ratio requirement, making the conditional throughput more stable.
+The conditional throughput in this case is in principle the median forwarding rate
+among all trials at the relevant lower bound intended load.
+In practice, the search stops when missing trial results cannot
+disprove the load as a lower bound, so conditional throughput
+is the worst forwarding rate among the measured good trials.
+
+MLRsearch discovers all the loads in single search, reducing required time
+duration compared to separate `binary search`es[^1] for each rate. Overall
+search time is reduced even further by relying on shorter trial
+duration sums for intermediate targets, with only measurements for
+final targets require the full duration sum. This results in the
+shorter overall execution time when compared to standard NDR/PDR binary
+search, while guaranteeing similar results.
+
+ Note: The conditional throughput is *always* reported by Robot code
+ as a bi-directional aggregate of two (usually symmetric)
+ uni-directional packet rates received and reported by an
+ external traffic generator (TRex), unless the test specifically requires
+ unidirectional traffic. The underlying Python library uses
+ unidirectional values instead, as min and max load are given for those.
+
+## Search Implementation
+
+Detailed description of the MLRsearch algorithm is included in the IETF
+draft
+[draft-ietf-bmwg-mlrsearch](https://datatracker.ietf.org/doc/html/draft-ietf-bmwg-mlrsearch)
+that is in the process of being standardized in the IETF Benchmarking
+Methodology Working Group (BMWG).
+
+MLRsearch is also available as a
+[PyPI (Python Package Index) library](https://pypi.org/project/MLRsearch/).
+
+## Algorithm highlights
+
+MRR and receive rate at MRR load are used as initial guesses for the search.
+
+All previously measured trials (except the very first one which acts
+as a warm-up) are taken into consideration.
+
+For every loss ratio goal, the relevant upper and lower bound
+(intended loads, among loads of large enough duration sum) form an interval.
+Exit condition is given by that interval reaching low enough relative width.
+Small enough width is achieved by bisecting the current interval.
+The bisection can be uneven, to save measurements based on information theory.
+The width value is 0.5%, the same as PDR goal loss ratio,
+as smaller values may report PDR conditional throughput smaller than NDR.
+
+Switching to higher trial duration sum generally requires additional trials
+at a load from previous duration sum target.
+When this refinement does not confirm previous bound classification
+(e.g. a lower bound for preceding target
+becomes an upper bound of the new target due to new trail results),
+external search is used to find close enough bound of the lost type.
+External search is a generalization of the first stage of
+`exponential search`[^2].
+
+A preceding target uses double of the next width goal,
+because one bisection is always safe before risking external search.
+
+As different search targets are interested at different loads,
+lower intended load are measured first,
+as that approach saves more time when trial results are not very consistent.
+Other heuristics are there, aimed to prevent unneccessarily narrow intervals,
+and to handle corner cases around min and max load.
+
+## Deviations from RFC 2544
+
+RFC 2544 implies long final trial duration (just one long trial is needed
+for classification to lower or uper bound, so exceed ratio does not matter).
+With 1s trials and 0.5 exceed ratio, NDR values reported by CSIT
+are likely higher than RFC 2544 throughput (especially for less stable tests).
+
+CSIT does not have any explicit wait times before and after trial traffic.
+(But the TRex-based measurer takes almost half a second between targets.)
+
+Small difference between intended load and offered load is tolerated,
+mainly due to various time overheads preventing precise measurement
+of the traffic duration (and TRex can sometimes suffer from duration
+stretching). Large difference is reported as unsent packets
+(measurement is forcibly stopped after given time), counted as
+a packet loss, so search focuses on loads actually achievable by TRex.
+
+In some tests, negative loss count is observed (TRex sees more packets
+coming back to it than TRex sent this trial). CSIT code treats that
+as a packet loss (as if VPP duplicated the packets),
+but TRex does not check other packets for duplication
+(as many traffic profiles generate non-unique packets).
+
+[^1]: [binary search](https://en.wikipedia.org/wiki/Binary_search)
+[^2]: [exponential search](https://en.wikipedia.org/wiki/Exponential_search)
diff --git a/docs/content/methodology/measurements/data_plane_throughput/mrr.md b/docs/content/methodology/measurements/data_plane_throughput/mrr.md
new file mode 100644
index 0000000000..e8c3e62eb6
--- /dev/null
+++ b/docs/content/methodology/measurements/data_plane_throughput/mrr.md
@@ -0,0 +1,56 @@
+---
+title: "MRR"
+weight: 4
+---
+
+# MRR
+
+Maximum Receive Rate (MRR) tests are complementary to MLRsearch tests,
+as they provide a maximum "raw" throughput benchmark for development and
+testing community. MRR tests measure the packet forwarding rate under
+the maximum load offered by traffic generator over a set trial duration,
+regardless of packet loss.
+
+MRR tests are currently used for following test jobs:
+
+- Report performance comparison: 64B, IMIX for vhost, memif.
+- Daily performance trending: 64B, IMIX for vhost, memif.
+- Per-patch performance verification: 64B.
+- Initial iterations of MLRsearch and PLRsearch: 64B.
+
+Maximum offered load for specific L2 Ethernet frame size is set to
+either the maximum bi-directional link rate or tested NIC model
+capacity, as follows:
+
+- For 10GE NICs the maximum packet rate load is 2x14.88 Mpps for 64B, a
+ 10GE bi-directional link rate.
+- For 25GE NICs the maximum packet rate load is 2x18.75 Mpps for 64B, a
+ 25GE bi-directional link sub-rate limited by 25GE NIC used on TRex TG,
+ XXV710.
+- For 40GE NICs the maximum packet rate load is 2x18.75 Mpps for 64B, a
+ 40GE bi-directional link sub-rate limited by 40GE NIC used on TRex
+ TG, XL710. Packet rate for other tested frame sizes is limited by
+ PCIeGen3 x8 bandwidth limitation of ~50Gbps.
+
+MRR test code implements multiple bursts of offered packet load and has
+two configurable burst parameters: individual trial duration and number
+of trials in a single burst. This enables more precise performance
+trending by providing more results data for analysis.
+
+Burst parameter settings vary between different tests using MRR:
+
+- MRR individual trial duration:
+
+ - Report performance comparison: 1 sec.
+ - Daily performance trending: 1 sec.
+ - Per-patch performance verification: 10 sec.
+ - Initial iteration for MLRsearch: 1 sec.
+ - Initial iteration for PLRsearch: 5.2 sec.
+
+- Number of MRR trials per burst:
+
+ - Report performance comparison: 10.
+ - Daily performance trending: 10.
+ - Per-patch performance verification: 5.
+ - Initial iteration for MLRsearch: 1.
+ - Initial iteration for PLRsearch: 1.
diff --git a/docs/content/methodology/measurements/data_plane_throughput/plr_search.md b/docs/content/methodology/measurements/data_plane_throughput/plr_search.md
new file mode 100644
index 0000000000..529bac1f7f
--- /dev/null
+++ b/docs/content/methodology/measurements/data_plane_throughput/plr_search.md
@@ -0,0 +1,383 @@
+---
+title: "PLR Search"
+weight: 3
+---
+
+# PLR Search
+
+## Motivation for PLRsearch
+
+Network providers are interested in throughput a system can sustain.
+
+`RFC 2544`[^1] assumes loss ratio is given by a deterministic function of
+offered load. But NFV software systems are not deterministic enough.
+This makes deterministic algorithms (such as `binary search`[^2] per RFC 2544
+and MLRsearch with single trial) to return results,
+which when repeated show relatively high standard deviation,
+thus making it harder to tell what "the throughput" actually is.
+
+We need another algorithm, which takes this indeterminism into account.
+
+## Generic Algorithm
+
+Detailed description of the PLRsearch algorithm is included in the IETF
+draft `Probabilistic Loss Ratio Search for Packet Throughput`[^3] that is in the
+process of being standardized in the IETF Benchmarking Methodology Working Group
+(BMWG).
+
+### Terms
+
+The rest of this page assumes the reader is familiar with the following terms
+defined in the IETF draft:
+
++ Trial Order Independent System
++ Duration Independent System
++ Target Loss Ratio
++ Critical Load
++ Offered Load regions
+
+ + Zero Loss Region
+ + Non-Deterministic Region
+ + Guaranteed Loss Region
+
++ Fitting Function
+
+ + Stretch Function
+ + Erf Function
+
++ Bayesian Inference
+
+ + Prior distribution
+ + Posterior Distribution
+
++ Numeric Integration
+
+ + Monte Carlo
+ + Importance Sampling
+
+## FD.io CSIT Implementation Specifics
+
+The search receives min_rate and max_rate values, to avoid measurements
+at offered loads not supporeted by the traffic generator.
+
+The implemented tests cases use bidirectional traffic.
+The algorithm stores each rate as bidirectional rate (internally,
+the algorithm is agnostic to flows and directions,
+it only cares about aggregate counts of packets sent and packets lost),
+but debug output from traffic generator lists unidirectional values.
+
+### Measurement Delay
+
+In a sample implemenation in FD.io CSIT project, there is roughly 0.5
+second delay between trials due to restrictons imposed by packet traffic
+generator in use (T-Rex).
+
+As measurements results come in, posterior distribution computation takes
+more time (per sample), although there is a considerable constant part
+(mostly for inverting the fitting functions).
+
+Also, the integrator needs a fair amount of samples to reach the region
+the posterior distribution is concentrated at.
+
+And of course, the speed of the integrator depends on computing power
+of the CPU the algorithm is able to use.
+
+All those timing related effects are addressed by arithmetically increasing
+trial durations with configurable coefficients
+(currently 5.1 seconds for the first trial,
+each subsequent trial being 0.1 second longer).
+
+### Rounding Errors and Underflows
+
+In order to avoid them, the current implementation tracks natural logarithm
+(instead of the original quantity) for any quantity which is never negative.
+Logarithm of zero is minus infinity (not supported by Python),
+so special value "None" is used instead.
+Specific functions for frequent operations (such as "logarithm
+of sum of exponentials") are defined to handle None correctly.
+
+### Fitting Functions
+
+Current implementation uses two fitting functions, called "stretch" and "erf".
+In general, their estimates for critical rate differ,
+which adds a simple source of systematic error,
+on top of randomness error reported by integrator.
+Otherwise the reported stdev of critical rate estimate
+is unrealistically low.
+
+Both functions are not only increasing, but also convex
+(meaning the rate of increase is also increasing).
+
+Both fitting functions have several mathematically equivalent formulas,
+each can lead to an arithmetic overflow or underflow in different sub-terms.
+Overflows can be eliminated by using different exact formulas
+for different argument ranges.
+Underflows can be avoided by using approximate formulas
+in affected argument ranges, such ranges have their own formulas to compute.
+At the end, both fitting function implementations
+contain multiple "if" branches, discontinuities are a possibility
+at range boundaries.
+
+### Prior Distributions
+
+The numeric integrator expects all the parameters to be distributed
+(independently and) uniformly on an interval (-1, 1).
+
+As both "mrr" and "spread" parameters are positive and not dimensionless,
+a transformation is needed. Dimentionality is inherited from max_rate value.
+
+The "mrr" parameter follows a `Lomax distribution`[^4]
+with alpha equal to one, but shifted so that mrr is always greater than 1
+packet per second.
+
+The "stretch" parameter is generated simply as the "mrr" value
+raised to a random power between zero and one;
+thus it follows a `reciprocal distribution`[^5].
+
+### Integrator
+
+After few measurements, the posterior distribution of fitting function
+arguments gets quite concentrated into a small area.
+The integrator is using `Monte Carlo`[^6] with `importance sampling`[^7]
+where the biased distribution is `bivariate Gaussian`[^8] distribution,
+with deliberately larger variance.
+If the generated sample falls outside (-1, 1) interval,
+another sample is generated.
+
+The center and the covariance matrix for the biased distribution
+is based on the first and second moments of samples seen so far
+(within the computation). The center is used directly,
+covariance matrix is scaled up by a heurictic constant (8.0 by default).
+The following additional features are applied
+designed to avoid hyper-focused distributions.
+
+Each computation starts with the biased distribution inherited
+from the previous computation (zero point and unit covariance matrix
+is used in the first computation), but the overal weight of the data
+is set to the weight of the first sample of the computation.
+Also, the center is set to the first sample point.
+When additional samples come, their weight (including the importance correction)
+is compared to sum of the weights of data seen so far (within the iteration).
+If the new sample is more than one e-fold more impactful, both weight values
+(for data so far and for the new sample) are set to (geometric) average
+of the two weights.
+
+This combination showed the best behavior, as the integrator usually follows
+two phases. First phase (where inherited biased distribution
+or single big sample are dominating) is mainly important
+for locating the new area the posterior distribution is concentrated at.
+The second phase (dominated by whole sample population)
+is actually relevant for the critical rate estimation.
+
+### Offered Load Selection
+
+First two measurements are hardcoded to happen at the middle of rate interval
+and at max_rate. Next two measurements follow MRR-like logic,
+offered load is decreased so that it would reach target loss ratio
+if offered load decrease lead to equal decrease of loss rate.
+
+The rest of measurements start directly in between
+erf and stretch estimate average.
+There is one workaround implemented, aimed at reducing the number of consequent
+zero loss measurements (per fitting function). The workaround first stores
+every measurement result which loss ratio was the targed loss ratio or higher.
+Sorted list (called lossy loads) of such results is maintained.
+
+When a sequence of one or more zero loss measurement results is encountered,
+a smallest of lossy loads is drained from the list.
+If the estimate average is smaller than the drained value,
+a weighted average of this estimate and the drained value is used
+as the next offered load. The weight of the estimate decreases exponentially
+with the length of consecutive zero loss results.
+
+This behavior helps the algorithm with convergence speed,
+as it does not need so many zero loss result to get near critical region.
+Using the smallest (not drained yet) of lossy loads makes it sure
+the new offered load is unlikely to result in big loss region.
+Draining even if the estimate is large enough helps to discard
+early measurements when loss hapened at too low offered load.
+Current implementation adds 4 copies of lossy loads and drains 3 of them,
+which leads to fairly stable behavior even for somewhat inconsistent SUTs.
+
+### Caveats
+
+As high loss count measurements add many bits of information,
+they need a large amount of small loss count measurements to balance them,
+making the algorithm converge quite slowly. Typically, this happens
+when few initial measurements suggest spread way bigger then later measurements.
+The workaround in offered load selection helps,
+but more intelligent workarounds could get faster convergence still.
+
+Some systems evidently do not follow the assumption of repeated measurements
+having the same average loss rate (when the offered load is the same).
+The idea of estimating the trend is not implemented at all,
+as the observed trends have varied characteristics.
+
+Probably, using a more realistic fitting functions
+will give better estimates than trend analysis.
+
+## Bottom Line
+
+The notion of Throughput is easy to grasp, but it is harder to measure
+with any accuracy for non-deterministic systems.
+
+Even though the notion of critical rate is harder to grasp than the notion
+of throughput, it is easier to measure using probabilistic methods.
+
+In testing, the difference between througput measurements and critical
+rate measurements is usually small.
+
+In pactice, rules of thumb such as "send at max 95% of purported throughput"
+are common. The correct benchmarking analysis should ask "Which notion is
+95% of throughput an approximation to?" before attempting to answer
+"Is 95% of critical rate safe enough?".
+
+## Algorithmic Analysis
+
+### Motivation
+
+While the estimation computation is based on hard probability science;
+the offered load selection part of PLRsearch logic is pure heuristics,
+motivated by what would a human do based on measurement and computation results.
+
+The quality of any heuristic is not affected by soundness of its motivation,
+just by its ability to achieve the intended goals.
+In case of offered load selection, the goal is to help the search to converge
+to the long duration estimates sooner.
+
+But even those long duration estimates could still be of poor quality.
+Even though the estimate computation is Bayesian (so it is the best it could be
+within the applied assumptions), it can still of poor quality when compared
+to what a human would estimate.
+
+One possible source of poor quality is the randomnes inherently present
+in Monte Carlo numeric integration, but that can be supressed
+by tweaking the time related input parameters.
+
+The most likely source of poor quality then are the assumptions.
+Most importantly, the number and the shape of fitting functions;
+but also others, such as trial order independence and duration independence.
+
+The result can have poor quality in basically two ways.
+One way is related to location. Both upper and lower bounds
+can be overestimates or underestimates, meaning the entire estimated interval
+between lower bound and upper bound lays above or below (respectively)
+of human-estimated interval.
+The other way is related to the estimation interval width.
+The interval can be too wide or too narrow, compared to human estimation.
+
+An estimate from a particular fitting function can be classified
+as an overestimate (or underestimate) just by looking at time evolution
+(without human examining measurement results). Overestimates
+decrease by time, underestimates increase by time (assuming
+the system performance stays constant).
+
+Quality of the width of the estimation interval needs human evaluation,
+and is unrelated to both rate of narrowing (both good and bad estimate intervals
+get narrower at approximately the same relative rate) and relatative width
+(depends heavily on the system being tested).
+
+### Graphical Examples
+
+The following pictures show the upper (red) and lower (blue) bound,
+as well as average of Stretch (pink) and Erf (light green) estimate,
+and offered load chosen (grey), as computed by PLRsearch,
+after each trial measurement within the 30 minute duration of a test run.
+
+Both graphs are focusing on later estimates. Estimates computed from
+few initial measurements are wildly off the y-axis range shown.
+
+The following analysis will rely on frequency of zero loss measurements
+and magnitude of loss ratio if nonzero.
+
+The offered load selection strategy used implies zero loss measurements
+can be gleaned from the graph by looking at offered load points.
+When the points move up farther from lower estimate, it means
+the previous measurement had zero loss. After non-zero loss,
+the offered load starts again right between (the previous values of)
+the estimate curves.
+
+The very big loss ratio results are visible as noticeable jumps
+of both estimates downwards. Medium and small loss ratios are much harder
+to distinguish just by looking at the estimate curves,
+the analysis is based on raw loss ratio measurement results.
+
+The following descriptions should explain why the graphs seem to signal
+low quality estimate at first sight, but a more detailed look
+reveals the quality is good (considering the measurement results).
+
+#### L2 patch
+
+Both fitting functions give similar estimates, the graph shows
+"stochasticity" of measurements (estimates increase and decrease
+within small time regions), and an overall trend of decreasing estimates.
+
+On the first look, the final interval looks fairly narrow,
+especially compared to the region the estimates have travelled
+during the search. But the look at the frequency of zero loss results shows
+this is not a case of overestimation. Measurements at around the same
+offered load have higher probability of zero loss earlier
+(when performed farther from upper bound), but smaller probability later
+(when performed closer to upper bound). That means it is the performance
+of the system under test that decreases (slightly) over time.
+
+With that in mind, the apparent narrowness of the interval
+is not a sign of low quality, just a consequence of PLRsearch assuming
+the performance stays constant.
+
+{{< figure src="/cdocs/PLR_patch.svg" >}}
+
+#### Vhost
+
+This test case shows what looks like a quite broad estimation interval,
+compared to other test cases with similarly looking zero loss frequencies.
+Notable features are infrequent high-loss measurement results
+causing big drops of estimates, and lack of long-term convergence.
+
+Any convergence in medium-sized intervals (during zero loss results)
+is reverted by the big loss results, as they happen quite far
+from the critical load estimates, and the two fitting functions
+extrapolate differently.
+
+In other words, human only seeing estimates from one fitting function
+would expect narrower end interval, but human seeing the measured loss ratios
+agrees that the interval should be wider than that.
+
+{{< figure src="/cdocs/PLR_vhost.svg" >}}
+
+#### Summary
+
+The two graphs show the behavior of PLRsearch algorithm applied to soaking test
+when some of PLRsearch assumptions do not hold:
+
++ L2 patch measurement results violate the assumption
+ of performance not changing over time.
++ Vhost measurement results violate the assumption
+ of Poisson distribution matching the loss counts.
+
+The reported upper and lower bounds can have distance larger or smaller
+than a first look by a human would expect, but a more closer look reveals
+the quality is good, considering the circumstances.
+
+The usefullness of the critical load estimate is of questionable value
+when the assumptions are violated.
+
+Some improvements can be made via more specific workarounds,
+for example long term limit of L2 patch performance could be estmated
+by some heuristic.
+
+Other improvements can be achieved only by asking users
+whether loss patterns matter. Is it better to have single digit losses
+distributed fairly evenly over time (as Poisson distribution would suggest),
+or is it better to have short periods of medium losses
+mixed with long periods of zero losses (as happens in Vhost test)
+with the same overall loss ratio?
+
+[^1]: [RFC 2544: Benchmarking Methodology for Network Interconnect Devices](https://tools.ietf.org/html/rfc2544)
+[^2]: [Binary search](https://en.wikipedia.org/wiki/Binary_search_algorithm)
+[^3]: [Probabilistic Loss Ratio Search for Packet Throughput](https://tools.ietf.org/html/draft-vpolak-bmwg-plrsearch-02)
+[^4]: [Lomax distribution](https://en.wikipedia.org/wiki/Lomax_distribution)
+[^5]: [Reciprocal distribution](https://en.wikipedia.org/wiki/Reciprocal_distribution)
+[^6]: [Monte Carlo](https://en.wikipedia.org/wiki/Monte_Carlo_integration)
+[^7]: [Importance sampling](https://en.wikipedia.org/wiki/Importance_sampling)
+[^8]: [Bivariate Gaussian](https://en.wikipedia.org/wiki/Multivariate_normal_distribution)
diff --git a/docs/content/methodology/measurements/packet_latency.md b/docs/content/methodology/measurements/packet_latency.md
new file mode 100644
index 0000000000..f3606b5ffb
--- /dev/null
+++ b/docs/content/methodology/measurements/packet_latency.md
@@ -0,0 +1,52 @@
+---
+title: "Packet Latency"
+weight: 2
+---
+
+# Packet Latency
+
+TRex Traffic Generator (TG) is used for measuring one-way latency in
+2-Node and 3-Node physical testbed topologies. TRex integrates
+[High Dynamic Range Histogram (HDRH)](http://hdrhistogram.org/)
+functionality and reports per packet latency distribution for latency
+streams sent in parallel to the main load packet streams.
+
+Following methodology is used:
+
+- Only NDRPDR test type measures latency and only after NDR and PDR
+ values are determined. Other test types do not involve latency
+ streams.
+
+- Latency is measured at different background load packet rates:
+
+ - No-Load: latency streams only.
+ - Low-Load: at 10% PDR.
+ - Mid-Load: at 50% PDR.
+ - High-Load: at 90% PDR.
+
+- Latency is measured for all tested packet sizes except IMIX due to
+ TRex TG restriction.
+
+- TG sends dedicated latency streams, one per direction, each at the
+ rate of 9 kpps at the prescribed packet size; these are sent in
+ addition to the main load streams.
+
+- TG reports Min/Avg/Max and HDRH latency values distribution per stream
+ direction, hence two sets of latency values are reported per test case
+ (marked as E-W and W-E).
+
+- +/- 1 usec is the measurement accuracy of TRex TG and the data in HDRH
+ latency values distribution is rounded to microseconds.
+
+- TRex TG introduces a (background) always-on Tx + Rx latency bias of 4
+ usec on average per direction resulting from TRex software writing and
+ reading packet timestamps on CPU cores. Quoted values are based on TG
+ back-to-back latency measurements.
+
+- Latency graphs are not smoothed, each latency value has its own
+ horizontal line across corresponding packet percentiles.
+
+- Percentiles are shown on X-axis using a logarithmic scale, so the
+ maximal latency value (ending at 100% percentile) would be in
+ infinity. The graphs are cut at 99.9999% (hover information still
+ lists 100%).
diff --git a/docs/content/methodology/measurements/telemetry.md b/docs/content/methodology/measurements/telemetry.md
new file mode 100644
index 0000000000..aed32d9e17
--- /dev/null
+++ b/docs/content/methodology/measurements/telemetry.md
@@ -0,0 +1,158 @@
+---
+title: "Telemetry"
+weight: 3
+---
+
+# Telemetry
+
+OpenMetrics specifies the de-facto standard for transmitting cloud-native
+metrics at scale, with support for both text representation and Protocol
+Buffers.
+
+## RFC
+
+- RFC2119
+- RFC5234
+- RFC8174
+- draft-richih-opsawg-openmetrics-00
+
+## Reference
+
+[OpenMetrics](https://github.com/OpenObservability/OpenMetrics/blob/master/specification/OpenMetrics.md)
+
+## Metric Types
+
+- Gauge
+- Counter
+- StateSet
+- Info
+- Histogram
+- GaugeHistogram
+- Summary
+- Unknown
+
+Telemetry module in CSIT currently support only Gauge, Counter and Info.
+
+## Anatomy of CSIT telemetry implementation
+
+Existing implementation consists of several measurment building blocks:
+the main measuring block running search algorithms (MLR, PLR, SOAK, MRR, ...),
+the latency measuring block and the several telemetry blocks with or without
+traffic running on a background.
+
+The main measuring block must not be interrupted by any read operation that can
+impact data plane traffic processing during throughput search algorithm. Thus
+operational reads are done before (pre-stat) and after (post-stat) that block.
+
+Some operational reads must be done while traffic is running and usually
+consists of two reads (pre-run-stat, post-run-stat) with defined delay between
+them.
+
+## MRR measurement
+
+ traffic_start(r=mrr) traffic_stop |< measure >|
+ | | | (r=mrr) |
+ | pre_run_stat post_run_stat | pre_stat | | post_stat
+ | | | | | | | |
+ o--------o---------------o-------o------o------+---------------+------o------>
+ t
+ Legend:
+ - pre_run_stat
+ - vpp-clear-runtime
+ - post_run_stat
+ - vpp-show-runtime
+ - bash-perf-stat // if extended_debug == True
+ - pre_stat
+ - vpp-clear-stats
+ - vpp-enable-packettrace // if extended_debug == True
+ - vpp-enable-elog
+ - post_stat
+ - vpp-show-stats
+ - vpp-show-packettrace // if extended_debug == True
+ - vpp-show-elog
+
+ |< measure >|
+ | (r=mrr) |
+ | |
+ |< traffic_trial0 >|< traffic_trial1 >|< traffic_trialN >|
+ | (i=0,t=duration) | (i=1,t=duration) | (i=N,t=duration) |
+ | | | |
+ o-----------------------o------------------------o------------------------o--->
+ t
+
+
+## MLR measurement
+
+ |< measure >| traffic_start(r=pdr) traffic_stop traffic_start(r=ndr) traffic_stop |< [ latency ] >|
+ | (r=mlr) | | | | | | .9/.5/.1/.0 |
+ | | | pre_run_stat post_run_stat | | pre_run_stat post_run_stat | | |
+ | | | | | | | | | | | |
+ +-------------+---o-------o---------------o--------o-------------o-------o---------------o--------o------------[-------------------]--->
+ t
+ Legend:
+ - pre_run_stat
+ - vpp-clear-runtime
+ - post_run_stat
+ - vpp-show-runtime
+ - bash-perf-stat // if extended_debug == True
+ - pre_stat
+ - vpp-clear-stats
+ - vpp-enable-packettrace // if extended_debug == True
+ - vpp-enable-elog
+ - post_stat
+ - vpp-show-stats
+ - vpp-show-packettrace // if extended_debug == True
+ - vpp-show-elog
+
+## MRR measurement
+
+ traffic_start(r=mrr) traffic_stop |< measure >|
+ | | | (r=mrr) |
+ | |< stat_runtime >| | stat_pre_trial | | stat_post_trial
+ | | | | | | | |
+ o---+------------------+---o------o------------+-------------+----o------------>
+ t
+ Legend:
+ - stat_runtime
+ - vpp-runtime
+ - stat_pre_trial
+ - vpp-clear-stats
+ - vpp-enable-packettrace // if extended_debug == True
+ - stat_post_trial
+ - vpp-show-stats
+ - vpp-show-packettrace // if extended_debug == True
+
+ |< measure >|
+ | (r=mrr) |
+ | |
+ |< traffic_trial0 >|< traffic_trial1 >|< traffic_trialN >|
+ | (i=0,t=duration) | (i=1,t=duration) | (i=N,t=duration) |
+ | | | |
+ o------------------------o------------------------o------------------------o--->
+ t
+
+ |< stat_runtime >|
+ | |
+ |< program0 >|< program1 >|< programN >|
+ | (@=params) | (@=params) | (@=params) |
+ | | | |
+ o------------------------o------------------------o------------------------o--->
+ t
+
+## MLR measurement
+
+ |< measure >| traffic_start(r=pdr) traffic_stop traffic_start(r=ndr) traffic_stop |< [ latency ] >|
+ | (r=mlr) | | | | | | .9/.5/.1/.0 |
+ | | | |< stat_runtime >| | | |< stat_runtime >| | | |
+ | | | | | | | | | | | |
+ +-------------+---o---+------------------+---o--------------o---+------------------+---o-----------[-----------------]--->
+ t
+ Legend:
+ - stat_runtime
+ - vpp-runtime
+ - stat_pre_trial
+ - vpp-clear-stats
+ - vpp-enable-packettrace // if extended_debug == True
+ - stat_post_trial
+ - vpp-show-stats
+ - vpp-show-packettrace // if extended_debug == True
diff --git a/docs/content/methodology/overview/_index.md b/docs/content/methodology/overview/_index.md
new file mode 100644
index 0000000000..d7efd15d02
--- /dev/null
+++ b/docs/content/methodology/overview/_index.md
@@ -0,0 +1,15 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "Overview"
+weight: 1
+---
+
+# Methodology
+
+- [Terminology]({{< relref "/methodology/overview/terminology" >}})
+- [Per Thread Resources]({{< relref "/methodology/overview/per_thread_resources" >}})
+- [Multi-Core Speedup]({{< relref "/methodology/overview/multi_core_speedup" >}})
+- [VPP Forwarding Modes]({{< relref "/methodology/overview/vpp_forwarding_modes" >}})
+- [DUT State Considerations]({{< relref "/methodology/overview/dut_state_considerations" >}})
+- [TRex Traffic Generator]({{< relref "/methodology/overview/trex_traffic_generator" >}})
diff --git a/docs/content/methodology/overview/dut_state_considerations.md b/docs/content/methodology/overview/dut_state_considerations.md
new file mode 100644
index 0000000000..eca10a22cd
--- /dev/null
+++ b/docs/content/methodology/overview/dut_state_considerations.md
@@ -0,0 +1,148 @@
+---
+title: "DUT State Considerations"
+weight: 5
+---
+
+# DUT State Considerations
+
+This page discusses considerations for Device Under Test (DUT) state.
+DUTs such as VPP require configuration, to be provided before the aplication
+starts (via config files) or just after it starts (via API or CLI access).
+
+During operation DUTs gather various telemetry data, depending on configuration.
+This internal state handling is part of normal operation,
+so any performance impact is included in the test results.
+Accessing telemetry data is additional load on DUT,
+so we are not doing that in main trial measurements that affect results,
+but we include separate trials specifically for gathering runtime telemetry.
+
+But there is one kind of state that needs specific handling.
+This kind of DUT state is dynamically created based on incoming traffic,
+it affects how DUT handles the traffic, and (unlike telemetry counters)
+it has uneven impact on CPU load.
+Typical example is NAT, where detecting new sessions takes more CPU than
+forwarding packet on existing (open or recently closed) sessions.
+We call DUT configurations with this kind of state "stateful",
+and configurations without them "stateless".
+(Even though stateless configurations contain state described in previous
+paragraphs, and some configuration items may have "stateful" in their name,
+such as stateful ACLs.)
+
+# Stateful DUT configurations
+
+Typically, the level of CPU impact of traffic depends on DUT state.
+The first packets causing DUT state to change have higher impact,
+subsequent packets matching that state have lower impact.
+
+From performance point of view, this is similar to traffic phases
+for stateful protocols, see
+[NGFW draft](https://tools.ietf.org/html/draft-ietf-bmwg-ngfw-performance-05#section-4.3.4).
+In CSIT we borrow the terminology (even if it does not fit perfectly,
+see discussion below). Ramp-up traffic causes the state change,
+sustain traffic does not change the state.
+
+As the performance is different, each test has to choose which traffic
+it wants to test, and manipulate the DUT state to achieve the intended impact.
+
+## Ramp-up trial
+
+Tests aiming at sustain performance need to make sure DUT state is created.
+We achieve this via a ramp-up trial, specific purpose of which
+is to create the state.
+
+Subsequent trials need no specific handling, as long as the state
+remains the same. But some state can time-out, so additional ramp-up
+trials are inserted whenever the code detects the state can time-out.
+Note that a trial with zero loss refreshes the state,
+so only the time since the last non-zero loss trial is tracked.
+
+For the state to be set completely, it is important both DUT and TG
+do not lose any packets. We achieve this by setting the profile multiplier
+(TPS from now on) to low enough value.
+
+It is also important each state-affecting packet is sent.
+For size-limited traffic profile it is guaranteed by the size limit.
+For continuous traffic, we set a long enough duration (based on TPS).
+
+At the end of the ramp-up trial, we check DUT state to confirm
+it has been created as expected.
+Test fails if the state is not (completely) created.
+
+## State Reset
+
+Tests aiming at ramp-up performance do not use ramp-up trial,
+and they need to reset the DUT state before each trial measurement.
+The way of resetting the state depends on test,
+usually an API call is used to partially de-configure
+the part that holds the state, and then re-configure it back.
+
+In CSIT we control the DUT state behavior via a test variable "resetter".
+If it is not set, DUT state is not reset.
+If it is set, each search algorithm (including MRR) will invoke it
+before all trial measurements (both main and telemetry ones).
+Any configuration keyword enabling a feature with DUT state
+will check whether a test variable for ramp-up rate is present.
+If it is present, resetter is not set.
+If it is not present, the keyword sets the apropriate resetter value.
+This logic makes sure either ramp-up or state reset are used.
+
+Notes: If both ramp-up and state reset were used, the DUT behavior
+would be identical to just reset, while test would take longer to execute.
+If neither were used, DUT will show different performance in subsequent trials,
+violating assumptions of search algorithms.
+
+## DUT versus protocol ramp-up
+
+There are at least three different causes for bandwidth possibly increasing
+within a single measurement trial.
+
+The first is DUT switching from state modification phase to constant phase,
+it is the primary focus of this document.
+Using ramp-up traffic before main trials eliminates this cause
+for tests wishing to measure the performance of the next phase.
+Using size-limited profiles eliminates the next phase
+for tests wishing to measure performance of this phase.
+
+The second is protocol such as TCP ramping up their throughput to utilize
+the bandwidth available. This is the original meaning of "ramp up"
+in the NGFW draft (see above).
+In existing tests we are not using this meaning of TCP ramp-up.
+Instead we use only small transactions, and large enough initial window
+so TCP acts as ramped-up already.
+
+The third is TCP increasing offered load due to retransmissions triggered by
+packet loss. In CSIT we again try to avoid this behavior
+by using small enough data to transfer, so overlap of multiple transactions
+(primary cause of packet loss) is unlikely.
+But in MRR tests, packet loss and non-constant offered load are still expected.
+
+# Stateless DUT configuratons
+
+These are simple configurations, which do not set any resetter value
+(even if ramp-up duration is not configured).
+Majority of existing tests are of this type, using continuous traffic profiles.
+
+In order to identify limits of Trex performance,
+we have added suites with stateless DUT configuration (VPP ip4base)
+subjected to size-limited ASTF traffic.
+The discovered rates serve as a basis of comparison
+for evaluating the results for stateful DUT configurations (VPP NAT44ed)
+subjected to the same traffic profiles.
+
+# DUT versus TG state
+
+Traffic Generator profiles can be stateful (ASTF) or stateless (STL).
+DUT configuration can be stateful or stateless (with respect to packet traffic).
+
+In CSIT we currently use all four possible configurations:
+
+- Regular stateless VPP tests use stateless traffic profiles.
+
+- Stateless VPP configuration with stateful profile is used as a base for
+ comparison.
+
+- Some stateful DUT configurations (NAT44DET, NAT44ED unidirectional)
+ are tested using stateless traffic profiles and continuous traffic.
+
+- The rest of stateful DUT configurations (NAT44ED bidirectional)
+ are tested using stateful traffic profiles and size limited traffic.
diff --git a/docs/content/methodology/overview/multi_core_speedup.md b/docs/content/methodology/overview/multi_core_speedup.md
new file mode 100644
index 0000000000..f438e8e996
--- /dev/null
+++ b/docs/content/methodology/overview/multi_core_speedup.md
@@ -0,0 +1,51 @@
+---
+title: "Multi-Core Speedup"
+weight: 3
+---
+
+# Multi-Core Speedup
+
+All performance tests are executed with single physical core and with
+multiple cores scenarios.
+
+## Intel Hyper-Threading (HT)
+
+Intel Xeon processors used in FD.io CSIT can operate either in HT
+Disabled mode (single logical core per each physical core) or in HT
+Enabled mode (two logical cores per each physical core). HT setting is
+applied in BIOS and requires server SUT reload for it to take effect,
+making it impractical for continuous changes of HT mode of operation.
+
+Performance tests are executed with server SUTs' Intel XEON processors
+configured with Intel Hyper-Threading Enabled for all Xeon
+Cascadelake and Xeon Icelake testbeds.
+
+## Multi-core Tests
+
+Multi-core tests are executed in the following VPP worker thread and physical
+core configurations:
+
+1. Intel Xeon Icelake and Cascadelake testbeds (2n-icx, 3n-icx, 2n-clx)
+ with Intel HT enabled (2 logical CPU cores per each physical core):
+
+ 1. 2t1c - 2 VPP worker threads on 1 physical core.
+ 2. 4t2c - 4 VPP worker threads on 2 physical cores.
+ 3. 8t4c - 8 VPP worker threads on 4 physical cores.
+
+VPP worker threads are the data plane threads running on isolated
+logical cores. With Intel HT enabled VPP workers are placed as sibling
+threads on each used physical core. VPP control threads (main, stats)
+are running on a separate non-isolated core together with other Linux
+processes.
+
+In all CSIT tests care is taken to ensure that each VPP worker handles
+the same amount of received packet load and does the same amount of
+packet processing work. This is achieved by evenly distributing per
+interface type (e.g. physical, virtual) receive queues over VPP workers
+using default VPP round-robin mapping and by loading these queues with
+the same amount of packet flows.
+
+If number of VPP workers is higher than number of physical or virtual
+interfaces, multiple receive queues are configured on each interface.
+NIC Receive Side Scaling (RSS) for physical interfaces and multi-queue
+for virtual interfaces are used for this purpose.
diff --git a/docs/content/methodology/overview/per_thread_resources.md b/docs/content/methodology/overview/per_thread_resources.md
new file mode 100644
index 0000000000..c23efb50bd
--- /dev/null
+++ b/docs/content/methodology/overview/per_thread_resources.md
@@ -0,0 +1,101 @@
+---
+title: "Per Thread Resources"
+weight: 2
+---
+
+# Per Thread Resources
+
+CSIT test framework is managing mapping of the following resources per thread:
+
+1. Cores, physical cores (pcores) allocated as pairs of sibling logical cores
+ (lcores) if server in HyperThreading/SMT mode, or as single lcores
+ if server not in HyperThreading/SMT mode. Note that if server's
+ processors are running in HyperThreading/SMT mode sibling lcores are
+ always used.
+2. Receive Queues (RxQ), packet receive queues allocated on each
+ physical and logical interface tested.
+3. Transmit Queues(TxQ), packet transmit queues allocated on each
+ physical and logical interface tested.
+
+Approach to mapping per thread resources depends on the application/DUT
+tested (VPP or DPDK apps) and associated thread types, as follows:
+
+1. Data-plane workers, used for data-plane packet processing, when no
+ feature workers present.
+
+ - Cores: data-plane workers are typically tested in 1, 2 and 4 pcore
+ configurations, running on single lcore per pcore or on sibling
+ lcores per pcore. Result is a set of {T}t{C}c thread-core
+ configurations, where{T} stands for a total number of threads
+ (lcores), and {C} for a total number of pcores. Tested
+ configurations are encoded in CSIT test case names,
+ e.g. "1c", "2c", "4c", and test tags "2T1C" (or "1T1C"), "4T2C"
+ (or "2T2C"), "8T4C" (or "4T4C").
+ - Interface Receive Queues (RxQ): as of CSIT-2106 release, number of
+ RxQs used on each physical or virtual interface is equal to the
+ number of data-plane workers. In other words each worker has a
+ dedicated RxQ on each interface tested. This ensures packet
+ processing load to be equal for each worker, subject to RSS flow
+ load balancing efficacy. Note: Before CSIT-2106 total number of
+ RxQs across all interfaces of specific type was equal to the
+ number of data-plane workers.
+ - Interface Transmit Queues (TxQ): number of TxQs used on each
+ physical or virtual interface is equal to the number of data-plane
+ workers. In other words each worker has a dedicated TxQ on each
+ interface tested.
+ - Applies to VPP and DPDK Testpmd and L3Fwd.
+
+2. Data-plane and feature workers (e.g. IPsec async crypto workers), the
+ latter dedicated to specific feature processing.
+
+ - Cores: data-plane and feature workers are tested in 2, 3 and 4
+ pcore configurations, running on single lcore per pcore or on
+ sibling lcores per pcore. This results in a two sets of
+ thread-core combinations separated by "-", {T}t{C}c-{T}t{C}c, with
+ the leading set denoting total number of threads (lcores) and
+ pcores used for data-plane workers, and the trailing set denoting
+ total number of lcores and pcores used for feature workers.
+ Accordingly, tested configurations are encoded in CSIT test case
+ names, e.g. "1c-1c", "1c-2c", "1c-3c", and test tags "2T1C_2T1C"
+ (or "1T1C_1T1C"), "2T1C_4T2C" (or "1T1C_2T2C"), "2T1C_6T3C"
+ (or "1T1C_3T3C").
+ - RxQ and TxQ: no RxQs and no TxQs are used by feature workers.
+ - Applies to VPP only.
+
+3. Management/main worker, control plane and management.
+
+ - Cores: single lcore.
+ - RxQ: not used (VPP default behaviour).
+ - TxQ: single TxQ per interface, allocated but not used (VPP default
+ behaviour).
+ - Applies to VPP only.
+
+## VPP Thread Configuration
+
+Mapping of cores and RxQs to VPP data-plane worker threads is done in
+the VPP startup.conf during test suite setup:
+
+1. `corelist-workers <list_of_cores>`: List of logical cores to run VPP
+ data-plane workers and feature workers. The actual lcores'
+ allocations depends on HyperThreading/SMT server configuration and
+ per test core configuration.
+
+ - For tests without feature workers, by default, all CPU cores
+ configured in startup.conf are used for data-plane workers.
+ - For tests with feature workers, CSIT code distributes lcores across
+ data-plane and feature workers.
+
+2. `num-rx-queues <value>`: Number of Rx queues used per interface.
+
+Mapping of TxQs to VPP data-plane worker threads uses the default VPP
+setting of one TxQ per interface per data-plane worker.
+
+## DPDK Thread Configuration
+
+Mapping of cores and RxQs to DPDK Testpmd/L3Fwd data-plane worker
+threads is done in the startup CLI:
+
+1. `-l <list_of_cores>` - List of logical cores to run DPDK
+ application.
+2. `nb-cores=<N>` - Number of forwarding cores.
+3. `rxq=<N>` - Number of Rx queues used per interface.
diff --git a/docs/content/methodology/overview/terminology.md b/docs/content/methodology/overview/terminology.md
new file mode 100644
index 0000000000..c9115e9291
--- /dev/null
+++ b/docs/content/methodology/overview/terminology.md
@@ -0,0 +1,97 @@
+---
+title: "Terminology"
+weight: 1
+---
+
+# Terminology
+
+- **Frame size**: size of an Ethernet Layer-2 frame on the wire, including
+ any VLAN tags (dot1q, dot1ad) and Ethernet FCS, but excluding Ethernet
+ preamble and inter-frame gap. Measured in Bytes.
+
+- **Packet size**: same as frame size, both terms used interchangeably.
+
+- **Inner L2 size**: for tunneled L2 frames only, size of an encapsulated
+ Ethernet Layer-2 frame, preceded with tunnel header, and followed by
+ tunnel trailer. Measured in Bytes.
+
+- **Inner IP size**: for tunneled IP packets only, size of an encapsulated
+ IPv4 or IPv6 packet, preceded with tunnel header, and followed by
+ tunnel trailer. Measured in Bytes.
+
+- **Device Under Test (DUT)**: In software networking, "device" denotes a
+ specific piece of software tasked with packet processing. Such device
+ is surrounded with other software components (such as operating system
+ kernel). It is not possible to run devices without also running the
+ other components, and hardware resources are shared between both. For
+ purposes of testing, the whole set of hardware and software components
+ is called "System Under Test" (SUT). As SUT is the part of the whole
+ test setup performance of which can be measured with RFC2544, using
+ SUT instead of RFC2544 DUT. Device under test
+ (DUT) can be re-introduced when analyzing test results using whitebox
+ techniques, but this document sticks to blackbox testing.
+
+- **System Under Test (SUT)**: System under test (SUT) is a part of the
+ whole test setup whose performance is to be benchmarked. The complete
+ methodology contains other parts, whose performance is either already
+ established, or not affecting the benchmarking result.
+
+- **Bi-directional throughput tests**: involve packets/frames flowing in
+ both east-west and west-east directions over every tested interface of
+ SUT/DUT. Packet flow metrics are measured per direction, and can be
+ reported as aggregate for both directions (i.e. throughput) and/or
+ separately for each measured direction (i.e. latency). In most cases
+ bi-directional tests use the same (symmetric) load in both directions.
+
+- **Uni-directional throughput tests**: involve packets/frames flowing in
+ only one direction, i.e. either east-west or west-east direction, over
+ every tested interface of SUT/DUT. Packet flow metrics are measured
+ and are reported for measured direction.
+
+- **Packet Loss Ratio (PLR)**: ratio of packets received relative to packets
+ transmitted over the test trial duration, calculated using formula:
+ PLR = ( pkts_transmitted - pkts_received ) / pkts_transmitted.
+ For bi-directional throughput tests aggregate PLR is calculated based
+ on the aggregate number of packets transmitted and received.
+
+- **Packet Throughput Rate**: maximum packet offered load DUT/SUT forwards
+ within the specified Packet Loss Ratio (PLR). In many cases the rate
+ depends on the frame size processed by DUT/SUT. Hence packet
+ throughput rate MUST be quoted with specific frame size as received by
+ DUT/SUT during the measurement. For bi-directional tests, packet
+ throughput rate should be reported as aggregate for both directions.
+ Measured in packets-per-second (pps) or frames-per-second (fps),
+ equivalent metrics.
+
+- **Bandwidth Throughput Rate**: a secondary metric calculated from packet
+ throughput rate using formula: bw_rate = pkt_rate * (frame_size +
+ L1_overhead) * 8, where L1_overhead for Ethernet includes preamble (8
+ Bytes) and inter-frame gap (12 Bytes). For bi-directional tests,
+ bandwidth throughput rate should be reported as aggregate for both
+ directions. Expressed in bits-per-second (bps).
+
+- **Non Drop Rate (NDR)**: maximum packet/bandwith throughput rate sustained
+ by DUT/SUT at PLR equal zero (zero packet loss) specific to tested
+ frame size(s). MUST be quoted with specific packet size as received by
+ DUT/SUT during the measurement. Packet NDR measured in
+ packets-per-second (or fps), bandwidth NDR expressed in
+ bits-per-second (bps).
+
+- **Partial Drop Rate (PDR)**: maximum packet/bandwith throughput rate
+ sustained by DUT/SUT at PLR greater than zero (non-zero packet loss)
+ specific to tested frame size(s). MUST be quoted with specific packet
+ size as received by DUT/SUT during the measurement. Packet PDR
+ measured in packets-per-second (or fps), bandwidth PDR expressed in
+ bits-per-second (bps).
+
+- **Maximum Receive Rate (MRR)**: packet/bandwidth rate regardless of PLR
+ sustained by DUT/SUT under specified Maximum Transmit Rate (MTR)
+ packet load offered by traffic generator. MUST be quoted with both
+ specific packet size and MTR as received by DUT/SUT during the
+ measurement. Packet MRR measured in packets-per-second (or fps),
+ bandwidth MRR expressed in bits-per-second (bps).
+
+- **Trial**: a single measurement step.
+
+- **Trial duration**: amount of time over which packets are transmitted and
+ received in a single measurement step.
diff --git a/docs/content/methodology/overview/trex_traffic_generator.md b/docs/content/methodology/overview/trex_traffic_generator.md
new file mode 100644
index 0000000000..8771bf9780
--- /dev/null
+++ b/docs/content/methodology/overview/trex_traffic_generator.md
@@ -0,0 +1,195 @@
+---
+title: "TRex Traffic Generator"
+weight: 6
+---
+
+# TRex Traffic Generator
+
+## Usage
+
+[TRex traffic generator](https://trex-tgn.cisco.com) is used for majority of
+CSIT performance tests. TRex is used in multiple types of performance tests,
+see [Data Plane Throughtput]({{< ref "../measurements/data_plane_throughput/data_plane_throughput/#Data Plane Throughtput" >}})
+for more details.
+
+## Traffic modes
+
+TRex is primarily used in two (mutually incompatible) modes.
+
+### Stateless mode
+
+Sometimes abbreviated as STL.
+A mode with high performance, which is unable to react to incoming traffic.
+We use this mode whenever it is possible.
+Typical test where this mode is not applicable is NAT44ED,
+as DUT does not assign deterministic outside address+port combinations,
+so we are unable to create traffic that does not lose packets
+in out2in direction.
+
+Measurement results are based on simple L2 counters
+(opackets, ipackets) for each traffic direction.
+
+### Stateful mode
+
+A mode capable of reacting to incoming traffic.
+Contrary to the stateless mode, only UDP and TCP is supported
+(carried over IPv4 or IPv6 packets).
+Performance is limited, as TRex needs to do more CPU processing.
+TRex suports two subtypes of stateful traffic,
+CSIT uses ASTF (Advanced STateFul mode).
+
+This mode is suitable for NAT44ED tests, as clients send packets from inside,
+and servers react to it, so they see the outside address and port to respond to.
+Also, they do not send traffic before NAT44ED has created the corresponding
+translation entry.
+
+When possible, L2 counters (opackets, ipackets) are used.
+Some tests need L7 counters, which track protocol state (e.g. TCP),
+but those values are less than reliable on high loads.
+
+## Traffic Continuity
+
+Generated traffic is either continuous, or limited (by number of transactions).
+Both modes support both continuities in principle.
+
+### Continuous traffic
+
+Traffic is started without any data size goal.
+Traffic is ended based on time duration, as hinted by search algorithm.
+This is useful when DUT behavior does not depend on the traffic duration.
+The default for stateless mode.
+
+### Limited traffic
+
+Traffic has defined data size goal (given as number of transactions),
+duration is computed based on this goal.
+Traffic is ended when the size goal is reached,
+or when the computed duration is reached.
+This is useful when DUT behavior depends on traffic size,
+e.g. target number of NAT translation entries, each to be hit exactly once
+per direction.
+This is used mainly for stateful mode.
+
+## Traffic synchronicity
+
+Traffic can be generated synchronously (test waits for duration)
+or asynchronously (test operates during traffic and stops traffic explicitly).
+
+### Synchronous traffic
+
+Trial measurement is driven by given (or precomputed) duration,
+no activity from test driver during the traffic.
+Used for most trials.
+
+### Asynchronous traffic
+
+Traffic is started, but then the test driver is free to perform
+other actions, before stopping the traffic explicitly.
+This is used mainly by reconf tests, but also by some trials
+used for runtime telemetry.
+
+## Trafic profiles
+
+TRex supports several ways to define the traffic.
+CSIT uses small Python modules based on Scapy as definitions.
+Details of traffic profiles depend on modes (STL or ASTF),
+but some are common for both modes.
+
+Search algorithms are intentionally unaware of the traffic mode used,
+so CSIT defines some terms to use instead of mode-specific TRex terms.
+
+### Transactions
+
+TRex traffic profile defines a small number of behaviors,
+in CSIT called transaction templates. Traffic profiles also instruct
+TRex how to create a large number of transactions based on the templates.
+
+Continuous traffic loops over the generated transactions.
+Limited traffic usually executes each transaction once
+(typically as constant number of loops over source addresses,
+each loop with different source ports).
+
+Currently, ASTF profiles define one transaction template each.
+Number of packets expected per one transaction varies based on profile details,
+as does the criterion for when a transaction is considered successful.
+
+Stateless transactions are just one packet (sent from one TG port,
+successful if received on the other TG port).
+Thus unidirectional stateless profiles define one transaction template,
+bidirectional stateless profiles define two transaction templates.
+
+### TPS multiplier
+
+TRex aims to open transaction specified by the profile at a steady rate.
+While TRex allows the transaction template to define its intended "cps" value,
+CSIT does not specify it, so the default value of 1 is applied,
+meaning TRex will open one transaction per second (and transaction template)
+by default. But CSIT invocation uses "multiplier" (mult) argument
+when starting the traffic, that multiplies the cps value,
+meaning it acts as TPS (transactions per second) input.
+
+With a slight abuse of nomenclature, bidirectional stateless tests
+set "packets per transaction" value to 2, just to keep the TPS semantics
+as a unidirectional input value.
+
+### Duration stretching
+
+TRex can be IO-bound, CPU-bound, or have any other reason
+why it is not able to generate the traffic at the requested TPS.
+Some conditions are detected, leading to TRex failure,
+for example when the bandwidth does not fit into the line capacity.
+But many reasons are not detected.
+
+Unfortunately, TRex frequently reacts by not honoring the duration
+in synchronous mode, taking longer to send the traffic,
+leading to lower then requested load offered to DUT.
+This usualy breaks assumptions used in search algorithms,
+so it has to be avoided.
+
+For stateless traffic, the behavior is quite deterministic,
+so the workaround is to apply a fictional TPS limit (max_rate)
+to search algorithms, usually depending only on the NIC used.
+
+For stateful traffic the behavior is not deterministic enough,
+for example the limit for TCP traffic depends on DUT packet loss.
+In CSIT we decided to use logic similar to asynchronous traffic.
+The traffic driver sleeps for a time, then stops the traffic explicitly.
+The library that parses counters into measurement results
+than usually treats unsent packets/transactions as lost/failed.
+
+We have added a IP4base tests for every NAT44ED test,
+so that users can compare results.
+If the results are very similar, it is probable TRex was the bottleneck.
+
+### Startup delay
+
+By investigating TRex behavior, it was found that TRex does not start
+the traffic in ASTF mode immediately. There is a delay of zero traffic,
+after which the traffic rate ramps up to the defined TPS value.
+
+It is possible to poll for counters during the traffic
+(fist nonzero means traffic has started),
+but that was found to influence the NDR results.
+
+Thus "sleep and stop" stategy is used, which needs a correction
+to the computed duration so traffic is stopped after the intended
+duration of real traffic. Luckily, it turns out this correction
+is not dependend on traffic profile nor CPU used by TRex,
+so a fixed constant (0.112 seconds) works well.
+Unfortunately, the constant may depend on TRex version,
+or execution environment (e.g. TRex in AWS).
+
+The result computations need a precise enough duration of the real traffic,
+luckily server side of TRex has precise enough counter for that.
+
+It is unknown whether stateless traffic profiles also exhibit a startup delay.
+Unfortunately, stateless mode does not have similarly precise duration counter,
+so some results (mostly MRR) are affected by less precise duration measurement
+in Python part of CSIT code.
+
+## Measuring Latency
+
+If measurement of latency is requested, two more packet streams are
+created (one for each direction) with TRex flow_stats parameter set to
+STLFlowLatencyStats. In that case, returned statistics will also include
+min/avg/max latency values and encoded HDRHistogram data.
diff --git a/docs/content/methodology/overview/vpp_forwarding_modes.md b/docs/content/methodology/overview/vpp_forwarding_modes.md
new file mode 100644
index 0000000000..b3c3bba984
--- /dev/null
+++ b/docs/content/methodology/overview/vpp_forwarding_modes.md
@@ -0,0 +1,104 @@
+---
+title: "VPP Forwarding Modes"
+weight: 4
+---
+
+# VPP Forwarding Modes
+
+VPP is tested in a number of L2, IPv4 and IPv6 packet lookup and forwarding
+modes. Within each mode baseline and scale tests are executed, the latter with
+varying number of FIB entries.
+
+## L2 Ethernet Switching
+
+VPP is tested in three L2 forwarding modes:
+
+- *l2patch*: L2 patch, the fastest point-to-point L2 path that loops
+ packets between two interfaces without any Ethernet frame checks or
+ lookups.
+- *l2xc*: L2 cross-connect, point-to-point L2 path with all Ethernet
+ frame checks, but no MAC learning and no MAC lookup.
+- *l2bd*: L2 bridge-domain, multipoint-to-multipoint L2 path with all
+ Ethernet frame checks, with MAC learning (unless static MACs are used)
+ and MAC lookup.
+
+l2bd tests are executed in baseline and scale configurations:
+
+- *l2bdbase*: Two MAC FIB entries are learned by VPP to enable packet
+ switching between two interfaces in two directions. VPP L2 switching
+ is tested with 254 IPv4 unique flows per direction, varying IPv4
+ source address per flow in order to invoke RSS based packet
+ distribution across VPP workers. The same source and destination MAC
+ address is used for all flows per direction. IPv4 source address is
+ incremented for every packet.
+
+- *l2bdscale*: A high number of MAC FIB entries are learned by VPP to
+ enable packet switching between two interfaces in two directions.
+ Tested MAC FIB sizes include: i) 10k with 5k unique flows per
+ direction, ii) 100k with 2 x 50k flows and iii) 1M with 2 x 500k
+ flows. Unique flows are created by using distinct source and
+ destination MAC addresses that are changed for every packet using
+ incremental ordering, making VPP learn (or refresh) distinct src MAC
+ entries and look up distinct dst MAC entries for every packet. For
+ details, see
+ [Packet Flow Ordering]({{< ref "packet_flow_ordering#Packet Flow Ordering" >}}).
+
+Ethernet wire encapsulations tested include: untagged, dot1q, dot1ad.
+
+## IPv4 Routing
+
+IPv4 routing tests are executed in baseline and scale configurations:
+
+- *ip4base*: Two /32 IPv4 FIB entries are configured in VPP to enable
+ packet routing between two interfaces in two directions. VPP routing
+ is tested with 253 IPv4 unique flows per direction, varying IPv4
+ source address per flow in order to invoke RSS based packet
+ distribution across VPP workers. IPv4 source address is incremented
+ for every packet.
+
+- *ip4scale*: A high number of /32 IPv4 FIB entries are configured in
+ VPP. Tested IPv4 FIB sizes include: i) 20k with 10k unique flows per
+ direction, ii) 200k with 2 * 100k flows and iii) 2M with 2 * 1M
+ flows. Unique flows are created by using distinct IPv4 destination
+ addresses that are changed for every packet, using incremental or
+ random ordering. For details, see
+ [Packet Flow Ordering]({{< ref "packet_flow_ordering#Packet Flow Ordering" >}}).
+
+## IPv6 Routing
+
+Similarly to IPv4, IPv6 routing tests are executed in baseline and scale
+configurations:
+
+- *ip6base*: Two /128 IPv4 FIB entries are configured in VPP to enable
+ packet routing between two interfaces in two directions. VPP routing
+ is tested with 253 IPv6 unique flows per direction, varying IPv6
+ source address per flow in order to invoke RSS based packet
+ distribution across VPP workers. IPv6 source address is incremented
+ for every packet.
+
+- *ip4scale*: A high number of /128 IPv6 FIB entries are configured in
+ VPP. Tested IPv6 FIB sizes include: i) 20k with 10k unique flows per
+ direction, ii) 200k with 2 * 100k flows and iii) 2M with 2 * 1M
+ flows. Unique flows are created by using distinct IPv6 destination
+ addresses that are changed for every packet, using incremental or
+ random ordering. For details, see
+ [Packet Flow Ordering]({{< ref "packet_flow_ordering#Packet Flow Ordering" >}}).
+
+## SRv6 Routing
+
+SRv6 routing tests are executed in a number of baseline configurations,
+in each case SR policy and steering policy are configured for one
+direction and one (or two) SR behaviours (functions) in the other
+directions:
+
+- *srv6enc1sid*: One SID (no SRH present), one SR function - End.
+- *srv6enc2sids*: Two SIDs (SRH present), two SR functions - End and
+ End.DX6.
+- *srv6enc2sids-nodecaps*: Two SIDs (SRH present) without decapsulation,
+ one SR function - End.
+- *srv6proxy-dyn*: Dynamic SRv6 proxy, one SR function - End.AD.
+- *srv6proxy-masq*: Masquerading SRv6 proxy, one SR function - End.AM.
+- *srv6proxy-stat*: Static SRv6 proxy, one SR function - End.AS.
+
+In all listed cases low number of IPv6 flows (253 per direction) is
+routed by VPP.
diff --git a/docs/content/methodology/per_patch_testing.md b/docs/content/methodology/per_patch_testing.md
new file mode 100644
index 0000000000..6ae40a13dc
--- /dev/null
+++ b/docs/content/methodology/per_patch_testing.md
@@ -0,0 +1,229 @@
+---
+title: "Per-patch Testing"
+weight: 5
+---
+
+# Per-patch Testing
+
+Updated for CSIT git commit id: d8ec3f8673346c0dc93e567159771f24c1bf74fc.
+
+A methodology similar to trending analysis is used for comparing performance
+before a DUT code change is merged. This can act as a verify job to disallow
+changes which would decrease performance without a good reason.
+
+## Existing jobs
+
+They are not started automatically, must be triggered on demand.
+They allow full tag expressions, all types of perf tests are supported.
+
+There are jobs available for multiple types of testbeds,
+based on various processors.
+Their Gerrit triggers words are of the form "perftest-{node_arch}"
+where the node_arch combinations currently supported are:
+2n-icx, 2n-clx, 2n-spr, 2n-zn2, 3n-icx, 3n-tsh, 3n-alt, 2n-tx2, 3n-snr,
+3na-spr, 3nb-spr.
+
+## Test selection
+
+Gerrit trigger line without any additional arguments selects
+a small set of test cases to run.
+If additional arguments are added to the Gerrit trigger, they are treated
+as Robot tag expressions to select tests to run.
+While very flexible, this method of test selection also allows the user
+to accidentally select too high number of tests, blocking the testbed for days.
+
+What follows is a list of explanations and recommendations
+to help users to select the minimal set of tests cases.
+
+### Verify cycles
+
+When Gerrit schedules multiple jobs to run for the same patch set,
+it waits until all runs are complete.
+While it is waiting, it is possible to trigger more jobs
+(adding runs to the set Gerrit is waiting for), but it is not possible
+to trigger more runs for the same job, until Gerrit is done waiting.
+After Gerrit is done waiting, it becames possible to trigger
+the same job again.
+
+Example. User triggers one set of tests on 2n-icx and immediately
+also triggers other set of tests on 3n-icx. Then the user notices
+2n-icx run ended early because of a typo in tag expression.
+When the user tries to re-trigger 2n-icx (with a fixed tag expression),
+that comment is ignored by Jenkins.
+Only when 3n-icx job finishes, the user can trigger 2n-icx again.
+
+### One comment many jobs
+
+In the past, the CSIT code which parses for perftest trigger comments
+was buggy, which lead to bad behavior (as in selection all performance test,
+because "perftest" is also a robot tag) when user included multiple
+perftest trigger words in the same comment.
+
+The worst bugs were fixed since then, but it is still recommended
+to use just one trigger word per Gerrit comment, just to be safe.
+
+### Multiple test cases in run
+
+While Robot supports OR operator, it does not support parentheses,
+so the OR operator is not very useful.
+It is recommended to use space instead of OR operator.
+
+Example template:
+perftest-2n-icx {tag_expression_1} {tag_expression_2}
+
+See below for more concrete examples.
+
+### Suite tags
+
+Traditionally, CSIT maintains broad Robot tags that can be used to select tests.
+
+But it is not recommended to use them for test selection,
+as it is not that easy to determine how many test cases are selected.
+
+The recommended way is to look into CSIT repository first,
+and locate a specific suite the user is interested in,
+and use its suite tag. For example, "ethip4-ip4base" is a suite tag
+selecting just one suite in CSIT git repository,
+avoiding all scale, container, and other simialr variants.
+
+Note that CSIT uses "autogen" code generator,
+so the robot running in Jenkins has access to more suites
+than visible just by looking into CSIT git repository.
+Thus, suite tag is not enough to select precisely the intended suite,
+and user is encouraged to narrow down to a single test case within a suite.
+
+### Fully specified tag expressions
+
+Here is one template to select a single test case:
+{test_type}AND{nic_model}AND{nic_driver}AND{cores}AND{frame_size}AND{suite_tag}
+where the variables are all lower case (so AND operator stands out).
+
+The fastest and the most widely used type of performance test is "mrr".
+As an alternative, "ndrpdr" focuses on small losses (ax opposed to max load),
+but takes longer to finish.
+The nic_driver options depend on nic_model. For Intel cards "drv_avf"
+(AVF plugin) and "drv_vfio_pci" (DPDK plugin) are popular, for Mellanox
+"drv_mlx5_core". Currently, the performance using "drv_af_xdp" is not reliable
+enough, so do not use it unless you are specifically testing for AF_XDP.
+
+The most popular nic_model is "nic_intel-e810cq", but that is not available
+on all testbed types.
+It is safe to use "1c" for cores (unless you are suspecting multi-core
+performance is affected differently) and "64b" for frame size ("78b" for ip6
+and more for dot1q and other encapsulated traffic;
+"1518b" is popular for ipsec and other CPU-bound tests).
+
+As there are more test cases than CSIT can periodically test,
+it is possible to encounter an old test case that currently fails.
+To avoid that, you can look at "job spec" files we use for periodic testing,
+for example
+[this one](https://raw.githubusercontent.com/FDio/csit/master/resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md).
+
+### Shortening triggers
+
+Advanced users may use the following tricks to avoid writing long trigger
+comments.
+
+Robot supports glob matching, which can be used to select multiple suite tags at
+once.
+
+Not specifying one of 6 parts of the recommended expression pattern
+will select all available options. For example not specifying nic_driver
+for nic_intel-e810cq will select all 3 applicable drivers.
+You can use NOT operator to reject some options (e.g. NOTdrv_af_xdp).
+Beware, with NOT the order matters:
+tag1ANDtag2NOTtag3 is not the same as tag1NOTtag3ANDtag2,
+the latter is evaluated as tag1AND(NOT(tag3ANDtag2)).
+
+Beware when not specifying nic_model. As a precaution,
+CSIT code will insert the defailt NIC model for the tetsbed used.
+Example: Specifying drv_rdma_core without specifying nic_model
+will fail, as the default nic_model is nic_intel-e810cq
+which does not support RDMA core driver.
+
+### Complete example
+
+A user wants to test a VPP change which may affect load balance whith bonding.
+Searching tag documentation for "bonding" finds LBOND tag and its variants.
+Searching CSIT git repository (directory tests/) finds 8 suite files,
+all suited only for 3-node testbeds.
+All suites are using vhost, but differ by the forwarding app inside VM
+(DPDK or VPP), by the forwarding mode of VPP acting as host level vswitch
+(MAC learning or cross connect), and by the number of DUT1-DUT2 links
+available (1 or 2).
+
+As not all NICs and testbeds offer enogh ports for 2 parallel DUT-DUT links,
+the user looks at
+[testbed specifications](https://github.com/FDio/csit/tree/master/topologies/available)
+and finds that only e810xxv NIC on 3n-icx testbed matches the requirements.
+Quick look into the suites confirm the smallest frame size is 64 bytes
+(despite DOT1Q robot tag, as the encapsulation does not happen on TG-DUT links).
+It is ok to use just 1 physical core, as 3n-icx has hyperthreading enabled,
+so VPP vswitch will use 2 worker threads.
+
+The user decides the vswitch forwarding mode is not important
+(so choses cross connect as that has less CPU overhead),
+but wants to test both NIC drivers (not AF_XDP), both apps in VM,
+and both 1 and 2 parallel links.
+
+After shortening, this is the trigger comment fianlly used:
+perftest-3n-icx mrrANDnic_intel-e810cqAND1cAND64bAND?lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm\*NOTdrv_af_xdp
+
+## Basic operation
+
+The job builds VPP .deb packages for both the patch under test
+(called "current") and its parent patch (called "parent").
+
+For each test (from the set defined by tag expressions),
+both builds are subjected to several trial measurements (in case of MRR).
+Measured samples are grouped to "parent" sequence,
+followed by "current" sequence. The same Minimal Description Length
+algorithm as in trending is used to decide whether it is one big group,
+or two smaller gropus. If it is one group, a "normal" result
+is declared for the test. If it is two groups, and current average
+is less then parent average, the test is declared a regression.
+If it is two groups and current average is larger or equal,
+the test is declared a progression.
+
+The whole job fails (giving -1) if any test was declared a regression.
+If a test fails, a fake result values are used,
+so it is possible to use the job fo verify current fixes a test failing in parent
+(if a test is not fixed, it is treated as a regression).
+
+## Temporary specifics
+
+The Minimal Description Length analysis is performed by
+CSIT code equivalent to jumpavg-0.4.1 library available on PyPI.
+
+In hopes of strengthening of signal (code performance) compared to noise
+(all other factors influencing the measured values), several workarounds
+are applied.
+
+In contrast to trending, MRR trial duration is set to 10 seconds,
+and only 5 samples are measured for each build.
+Both parameters are set in ci-management.
+
+This decreases sensitivity to regressions, but also decreases
+probability of false positives.
+
+## Console output
+
+The following information as visible towards the end of Jenkins console output,
+repeated for each analyzed test.
+
+The original 5 values (or 1 for non-mrr) are visible in order they were measured.
+The values after processing are also visible in output,
+this time sorted by value (so people can see minimum and maximum).
+
+The next output is difference of averages. It is the current average
+minus the parent average, expressed as percentage of the parent average.
+
+The next three outputs contain the jumpavg representation
+of the two groups and a combined group.
+Here, "bits" is the description length; for "current" sequence
+it includes effect from "parent" average value
+(jumpavg-0.4.1 penalizes sequences with too close averages).
+
+Next, a sentence describing which grouping description is shorter,
+and by how much bits.
+Finally, the test result classification is visible.
diff --git a/docs/content/methodology/test/_index.md b/docs/content/methodology/test/_index.md
new file mode 100644
index 0000000000..e9864ac28d
--- /dev/null
+++ b/docs/content/methodology/test/_index.md
@@ -0,0 +1,19 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "Tests"
+weight: 3
+---
+
+# Tests
+
+- [Network Address Translation]({{< relref "/methodology/test/network_address_translation" >}})
+- [Packet Flow Ordering]({{< relref "/methodology/test/packet_flow_ordering" >}})
+- [Tunnel Encapsulations]({{< relref "/methodology/test/tunnel_encapsulations" >}})
+- [Internet Protocol Security]({{< relref "/methodology/test/internet_protocol_security" >}})
+- [Access Control Lists]({{< relref "/methodology/test/access_control_lists" >}})
+- [Hoststack]({{< relref "/methodology/test/hoststack/" >}})
+- [Generic Segmentation Offload]({{< relref "/methodology/test/generic_segmentation_offload" >}})
+- [Reconfiguration]({{< relref "/methodology/test/reconfiguration" >}})
+- [VPP Device]({{< relref "/methodology/test/vpp_device" >}})
+- [Reassembly]({{< relref "/methodology/test/reassembly" >}})
diff --git a/docs/content/methodology/test/access_control_lists.md b/docs/content/methodology/test/access_control_lists.md
new file mode 100644
index 0000000000..354e6b72bb
--- /dev/null
+++ b/docs/content/methodology/test/access_control_lists.md
@@ -0,0 +1,66 @@
+---
+title: "Access Control Lists"
+weight: 5
+---
+
+# Access Control Lists
+
+VPP is tested in a number of data plane feature configurations across
+different forwarding modes. Following sections list features tested.
+
+## ACL Security-Groups
+
+Both stateless and stateful access control lists (ACL), also known as
+security-groups, are supported by VPP.
+
+Following ACL configurations are tested for MAC switching with L2
+bridge-domains:
+
+- *l2bdbasemaclrn-iacl{E}sl-{F}flows*: Input stateless ACL, with {E}
+ entries and {F} flows.
+- *l2bdbasemaclrn-oacl{E}sl-{F}flows*: Output stateless ACL, with {E}
+ entries and {F} flows.
+- *l2bdbasemaclrn-iacl{E}sf-{F}flows*: Input stateful ACL, with {E}
+ entries and {F} flows.
+- *l2bdbasemaclrn-oacl{E}sf-{F}flows*: Output stateful ACL, with {E}
+ entries and {F} flows.
+
+Following ACL configurations are tested with IPv4 routing:
+
+- *ip4base-iacl{E}sl-{F}flows*: Input stateless ACL, with {E} entries
+ and {F} flows.
+- *ip4base-oacl{E}sl-{F}flows*: Output stateless ACL, with {E} entries
+ and {F} flows.
+- *ip4base-iacl{E}sf-{F}flows*: Input stateful ACL, with {E} entries and
+ {F} flows.
+- *ip4base-oacl{E}sf-{F}flows*: Output stateful ACL, with {E} entries
+ and {F} flows.
+
+ACL tests are executed with the following combinations of ACL entries
+and number of flows:
+
+- ACL entry definitions
+ - flow non-matching deny entry: (src-ip4, dst-ip4, src-port, dst-port).
+ - flow matching permit ACL entry: (src-ip4, dst-ip4).
+- {E} - number of non-matching deny ACL entries, {E} = [1, 10, 50].
+- {F} - number of UDP flows with different tuple (src-ip4, dst-ip4,
+ src-port, dst-port), {F} = [100, 10k, 100k].
+- All {E}x{F} combinations are tested per ACL type, total of 9.
+
+## ACL MAC-IP
+
+MAC-IP binding ACLs are tested for MAC switching with L2 bridge-domains:
+
+- *l2bdbasemaclrn-macip-iacl{E}sl-{F}flows*: Input stateless ACL, with
+ {E} entries and {F} flows.
+
+MAC-IP ACL tests are executed with the following combinations of ACL
+entries and number of flows:
+
+- ACL entry definitions
+ - flow non-matching deny entry: (dst-ip4, dst-mac, bit-mask)
+ - flow matching permit ACL entry: (dst-ip4, dst-mac, bit-mask)
+- {E} - number of non-matching deny ACL entries, {E} = [1, 10, 50]
+- {F} - number of UDP flows with different tuple (dst-ip4, dst-mac),
+ {F} = [100, 10k, 100k]
+- All {E}x{F} combinations are tested per ACL type, total of 9.
diff --git a/docs/content/methodology/test/generic_segmentation_offload.md b/docs/content/methodology/test/generic_segmentation_offload.md
new file mode 100644
index 0000000000..0032d203de
--- /dev/null
+++ b/docs/content/methodology/test/generic_segmentation_offload.md
@@ -0,0 +1,117 @@
+---
+title: "Generic Segmentation Offload"
+weight: 7
+---
+
+# Generic Segmentation Offload
+
+## Overview
+
+Generic Segmentation Offload (GSO) reduces per-packet processing
+overhead by enabling applications to pass a multi-packet buffer to
+(v)NIC and process a smaller number of large packets (e.g. frame size of
+64 KB), instead of processing higher numbers of small packets (e.g.
+frame size of 1500 B), thus reducing per-packet overhead.
+
+GSO tests for VPP vhostuser and tapv2 interfaces. All tests cases use iPerf3
+client and server applications running TCP/IP as a traffic generator. For
+performance comparison the same tests are run without GSO enabled.
+
+## GSO Test Topologies
+
+Two VPP GSO test topologies are implemented:
+
+1. iPerfC_GSOvirtio_LinuxVM --- GSOvhost_VPP_GSOvhost --- iPerfS_GSOvirtio_LinuxVM
+ - Tests VPP GSO on vhostuser interfaces and interaction with Linux
+ virtio with GSO enabled.
+2. iPerfC_GSOtap_LinuxNspace --- GSOtapv2_VPP_GSOtapv2 --- iPerfS_GSOtap_LinuxNspace
+ - Tests VPP GSO on tapv2 interfaces and interaction with Linux tap
+ with GSO enabled.
+
+Common configuration:
+
+- iPerfC (client) and iPerfS (server) run in TCP/IP mode without upper
+ bandwidth limit.
+- Trial duration is set to 30 sec.
+- iPerfC, iPerfS and VPP run in the single SUT node.
+
+
+## VPP GSOtap Topology
+
+### VPP Configuration
+
+VPP GSOtap tests are executed without using hyperthreading. VPP worker runs on
+a single core. Multi-core tests are not executed. Each interface belongs to
+separate namespace. Following core pinning scheme is used:
+
+- 1t1c (rxq=1, rx_qsz=4096, tx_qsz=4096)
+ - system isolated: 0,28,56,84
+ - vpp mt: 1
+ - vpp wt: 2
+ - vhost: 3-5
+ - iperf-s: 6
+ - iperf-c: 7
+
+### iPerf3 Server Configuration
+
+iPerf3 version used 3.7
+
+ $ sudo -E -S ip netns exec tap1_namespace iperf3 \
+ --server --daemon --pidfile /tmp/iperf3_server.pid \
+ --logfile /tmp/iperf3.log --port 5201 --affinity <X>
+
+For the full iPerf3 reference please see
+[iPerf3 docs](https://github.com/esnet/iperf/blob/master/docs/invoking.rst).
+
+
+### iPerf3 Client Configuration
+
+iPerf3 version used 3.7
+
+ $ sudo -E -S ip netns exec tap1_namespace iperf3 \
+ --client 2.2.2.2 --bind 1.1.1.1 --port 5201 --parallel <Y> \
+ --time 30.0 --affinity <X> --zerocopy
+
+For the full iPerf3 reference please see
+[iPerf3 docs](https://github.com/esnet/iperf/blob/master/docs/invoking.rst).
+
+
+## VPP GSOvhost Topology
+
+### VPP Configuration
+
+VPP GSOvhost tests are executed without using hyperthreading. VPP worker runs
+on a single core. Multi-core tests are not executed. Following core pinning
+scheme is used:
+
+- 1t1c (rxq=1, rx_qsz=1024, tx_qsz=1024)
+ - system isolated: 0,28,56,84
+ - vpp mt: 1
+ - vpp wt: 2
+ - vm-iperf-s: 3,4,5,6,7
+ - vm-iperf-c: 8,9,10,11,12
+ - iperf-s: 1
+ - iperf-c: 1
+
+### iPerf3 Server Configuration
+
+iPerf3 version used 3.7
+
+ $ sudo iperf3 \
+ --server --daemon --pidfile /tmp/iperf3_server.pid \
+ --logfile /tmp/iperf3.log --port 5201 --affinity X
+
+For the full iPerf3 reference please see
+[iPerf3 docs](https://github.com/esnet/iperf/blob/master/docs/invoking.rst).
+
+
+### iPerf3 Client Configuration
+
+iPerf3 version used 3.7
+
+ $ sudo iperf3 \
+ --client 2.2.2.2 --bind 1.1.1.1 --port 5201 --parallel <Y> \
+ --time 30.0 --affinity X --zerocopy
+
+For the full iPerf3 reference please see
+[iPerf3 docs](https://github.com/esnet/iperf/blob/master/docs/invoking.rst).
diff --git a/docs/content/methodology/test/hoststack/_index.md b/docs/content/methodology/test/hoststack/_index.md
new file mode 100644
index 0000000000..6c0cb292fb
--- /dev/null
+++ b/docs/content/methodology/test/hoststack/_index.md
@@ -0,0 +1,13 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "Hoststack"
+weight: 6
+---
+
+# Hoststack
+
+- [QUIC/UDP/IP with vpp_echo]({{< relref "/methodology/test/hoststack/quicudpip_with_vppecho" >}})
+- [TCP/IP with iperf3]({{< relref "/methodology/test/hoststack/tcpip_with_iperf3" >}})
+- [UDP/IP with iperf3]({{< relref "/methodology/test/hoststack/udpip_with_iperf3" >}})
+- [VSAP ab with nginx]({{< relref "/methodology/test/hoststack/vsap_ab_with_nginx" >}})
diff --git a/docs/content/methodology/test/hoststack/quicudpip_with_vppecho.md b/docs/content/methodology/test/hoststack/quicudpip_with_vppecho.md
new file mode 100644
index 0000000000..c7d57a51b3
--- /dev/null
+++ b/docs/content/methodology/test/hoststack/quicudpip_with_vppecho.md
@@ -0,0 +1,48 @@
+---
+title: "QUIC/UDP/IP with vpp_echo"
+weight: 1
+---
+
+# QUIC/UDP/IP with vpp_echo
+
+[vpp_echo performance testing tool](https://wiki.fd.io/view/VPP/HostStack#External_Echo_Server.2FClient_.28vpp_echo.29)
+is a bespoke performance test application which utilizes the 'native
+HostStack APIs' to verify performance and correct handling of
+connection/stream events with uni-directional and bi-directional
+streams of data.
+
+Because iperf3 does not support the QUIC transport protocol, vpp_echo
+is used for measuring the maximum attainable goodput of the VPP Host
+Stack connection utilizing the QUIC transport protocol across two
+instances of VPP running on separate DUT nodes. The QUIC transport
+protocol supports multiple streams per connection and test cases
+utilize different combinations of QUIC connections and number of
+streams per connection.
+
+The test configuration is as follows:
+
+ DUT1 Network DUT2
+ [ vpp_echo-client -> VPP1 ]=======[ VPP2 -> vpp_echo-server]
+ N-streams/connection
+
+where,
+
+1. vpp_echo server attaches to VPP2 and LISTENs on VPP2:TCP port 1234.
+2. vpp_echo client creates one or more connections to VPP1 and opens
+ one or more stream per connection to VPP2:TCP port 1234.
+3. vpp_echo client transmits a uni-directional stream as fast as the
+ VPP Host Stack allows to the vpp_echo server for the test duration.
+4. At the end of the test the vpp_echo client emits the goodput
+ measurements for all streams and the sum of all streams.
+
+Test cases include
+
+1. 1 QUIC Connection with 1 Stream
+2. 1 QUIC connection with 10 Streams
+3. 10 QUIC connetions with 1 Stream
+4. 10 QUIC connections with 10 Streams
+
+with stream sizes to provide reasonable test durations. The VPP Host
+Stack QUIC transport is configured to utilize the picotls encryption
+library. In the future, tests utilizing addtional encryption
+algorithms will be added.
diff --git a/docs/content/methodology/test/hoststack/tcpip_with_iperf3.md b/docs/content/methodology/test/hoststack/tcpip_with_iperf3.md
new file mode 100644
index 0000000000..7baa88ab50
--- /dev/null
+++ b/docs/content/methodology/test/hoststack/tcpip_with_iperf3.md
@@ -0,0 +1,52 @@
+---
+title: "TCP/IP with iperf3"
+weight: 2
+---
+
+# TCP/IP with iperf3
+
+[iperf3 goodput measurement tool](https://github.com/esnet/iperf)
+is used for measuring the maximum attainable goodput of the VPP Host
+Stack connection across two instances of VPP running on separate DUT
+nodes. iperf3 is a popular open source tool for active measurements
+of the maximum achievable goodput on IP networks.
+
+Because iperf3 utilizes the POSIX socket interface APIs, the current
+test configuration utilizes the LD_PRELOAD mechanism in the linux
+kernel to connect iperf3 to the VPP Host Stack using the VPP
+Communications Library (VCL) LD_PRELOAD library (libvcl_ldpreload.so).
+
+In the future, a forked version of iperf3 which has been modified to
+directly use the VCL application APIs may be added to determine the
+difference in performance of 'VCL Native' applications versus utilizing
+LD_PRELOAD which inherently has more overhead and other limitations.
+
+The test configuration is as follows:
+
+ DUT1 Network DUT2
+ [ iperf3-client -> VPP1 ]=======[ VPP2 -> iperf3-server]
+
+where,
+
+1. iperf3 server attaches to VPP2 and LISTENs on VPP2:TCP port 5201.
+2. iperf3 client attaches to VPP1 and opens one or more stream
+ connections to VPP2:TCP port 5201.
+3. iperf3 client transmits a uni-directional stream as fast as the
+ VPP Host Stack allows to the iperf3 server for the test duration.
+4. At the end of the test the iperf3 client emits the goodput
+ measurements for all streams and the sum of all streams.
+
+Test cases include 1 and 10 Streams with a 20 second test duration
+with the VPP Host Stack configured to utilize the Cubic TCP
+congestion algorithm.
+
+Note: iperf3 is single threaded, so it is expected that the 10 stream
+test shows little or no performance improvement due to
+multi-thread/multi-core execution.
+
+There are also variations of these test cases which use the VPP Network
+Simulator (NSIM) plugin to test the VPP Hoststack goodput with 1 percent
+of the traffic being dropped at the output interface of VPP1 thereby
+simulating a lossy network. The NSIM tests are experimental and the
+test results are not currently representative of typical results in a
+lossy network.
diff --git a/docs/content/methodology/test/hoststack/udpip_with_iperf3.md b/docs/content/methodology/test/hoststack/udpip_with_iperf3.md
new file mode 100644
index 0000000000..01ddf61269
--- /dev/null
+++ b/docs/content/methodology/test/hoststack/udpip_with_iperf3.md
@@ -0,0 +1,44 @@
+---
+title: "UDP/IP with iperf3"
+weight: 3
+---
+
+# UDP/IP with iperf3
+
+[iperf3 goodput measurement tool](https://github.com/esnet/iperf)
+is used for measuring the maximum attainable goodput of the VPP Host
+Stack connection across two instances of VPP running on separate DUT
+nodes. iperf3 is a popular open source tool for active measurements
+of the maximum achievable goodput on IP networks.
+
+Because iperf3 utilizes the POSIX socket interface APIs, the current
+test configuration utilizes the LD_PRELOAD mechanism in the linux
+kernel to connect iperf3 to the VPP Host Stack using the VPP
+Communications Library (VCL) LD_PRELOAD library (libvcl_ldpreload.so).
+
+In the future, a forked version of iperf3 which has been modified to
+directly use the VCL application APIs may be added to determine the
+difference in performance of 'VCL Native' applications versus utilizing
+LD_PRELOAD which inherently has more overhead and other limitations.
+
+The test configuration is as follows:
+
+ DUT1 Network DUT2
+ [ iperf3-client -> VPP1 ]=======[ VPP2 -> iperf3-server]
+
+where,
+
+1. iperf3 server attaches to VPP2 and LISTENs on VPP2:UDP port 5201.
+2. iperf3 client attaches to VPP1 and transmits one or more streams
+ of packets to VPP2:UDP port 5201.
+3. iperf3 client transmits a uni-directional stream as fast as the
+ VPP Host Stack allows to the iperf3 server for the test duration.
+4. At the end of the test the iperf3 client emits the goodput
+ measurements for all streams and the sum of all streams.
+
+Test cases include 1 and 10 Streams with a 20 second test duration
+with the VPP Host Stack using the UDP transport layer..
+
+Note: iperf3 is single threaded, so it is expected that the 10 stream
+test shows little or no performance improvement due to
+multi-thread/multi-core execution.
diff --git a/docs/content/methodology/test/hoststack/vsap_ab_with_nginx.md b/docs/content/methodology/test/hoststack/vsap_ab_with_nginx.md
new file mode 100644
index 0000000000..2dc4d2b7f9
--- /dev/null
+++ b/docs/content/methodology/test/hoststack/vsap_ab_with_nginx.md
@@ -0,0 +1,39 @@
+---
+title: "VSAP ab with nginx"
+weight: 4
+---
+
+# VSAP ab with nginx
+
+[VSAP (VPP Stack Acceleration Project)](https://wiki.fd.io/view/VSAP)
+aims to establish an industry user space application ecosystem based on
+the VPP hoststack. As a pre-requisite to adapting open source applications
+using VPP Communications Library to accelerate performance, the VSAP team
+has introduced baseline tests utilizing the LD_PRELOAD mechanism to capture
+baseline performance data.
+
+[AB (Apache HTTP server benchmarking tool)](https://httpd.apache.org/docs/2.4/programs/ab.html)
+is used for measuring the maximum connections-per-second and requests-per-second.
+
+[NGINX](https://www.nginx.com) is a popular open source HTTP server
+application. Because NGINX utilizes the POSIX socket interface APIs, the test
+configuration uses the LD_PRELOAD mechanism to connect NGINX to the VPP
+Hoststack using the VPP Communications Library (VCL) LD_PRELOAD library
+(libvcl_ldpreload.so).
+
+In the future, a version of NGINX which has been modified to
+directly use the VCL application APIs will be added to determine the
+difference in performance of 'VCL Native' applications versus utilizing
+LD_PRELOAD which inherently has more overhead and other limitations.
+
+The test configuration is as follows:
+
+ TG Network DUT
+ [ AB ]=============[ VPP -> nginx ]
+
+where,
+
+1. nginx attaches to VPP and listens on TCP port 80
+2. ab runs CPS and RPS tests with packets flowing from the Test Generator node,
+ across 100G NICs, through VPP hoststack to NGINX.
+3. At the end of the tests, the results are reported by AB.
diff --git a/docs/content/methodology/test/internet_protocol_security.md b/docs/content/methodology/test/internet_protocol_security.md
new file mode 100644
index 0000000000..1a02c43a0a
--- /dev/null
+++ b/docs/content/methodology/test/internet_protocol_security.md
@@ -0,0 +1,73 @@
+---
+title: "Internet Protocol Security"
+weight: 4
+---
+
+# Internet Protocol Security
+
+VPP Internet Protocol Security (IPsec) performance tests are executed for the
+following crypto plugins:
+
+- `crypto_native`, used for software based crypto leveraging CPU
+ platform optimizations e.g. Intel's AES-NI instruction set.
+- `crypto_ipsecmb`, used for hardware based crypto with Intel QAT PCIe cards.
+
+## IPsec with VPP Native SW Crypto
+
+CSIT implements following IPsec test cases relying on VPP native crypto
+(`crypto_native` plugin):
+
+ **VPP Crypto Engine** | **ESP Encryption** | **ESP Integrity** | **Scale Tested**
+----------------------:|-------------------:|------------------:|-----------------:
+ crypto_native | AES[128\|256]-GCM | GCM | 1 to 60k tunnels
+ crypto_native | AES128-CBC | SHA[256\|512] | 1 to 60k tunnels
+
+VPP IPsec with SW crypto are executed in both tunnel and policy modes,
+with tests running on 3-node testbeds: 3n-icx, 3n-tsh.
+
+## IPsec with Intel QAT HW
+
+CSIT implements following IPsec test cases relying on ipsecmb library
+(`crypto_ipsecmb` plugin) and Intel QAT 8950 (50G HW crypto card):
+
+dpdk_cryptodev
+
+ **VPP Crypto Engine** | **VPP Crypto Workers** | **ESP Encryption** | **ESP Integrity** | **Scale Tested**
+----------------------:|-----------------------:|-------------------:|------------------:|-----------------:
+ crypto_ipsecmb | sync/all workers | AES[128\|256]-GCM | GCM | 1, 1k tunnels
+ crypto_ipsecmb | sync/all workers | AES[128]-CBC | SHA[256\|512] | 1, 1k tunnels
+ crypto_ipsecmb | async/crypto worker | AES[128\|256]-GCM | GCM | 1, 4, 1k tunnels
+ crypto_ipsecmb | async/crypto worker | AES[128]-CBC | SHA[256\|512] | 1, 4, 1k tunnels
+
+## IPsec with Async Crypto Feature Workers
+
+*TODO Description to be added*
+
+## IPsec Uni-Directional Tests with VPP Native SW Crypto
+
+CSIT implements following IPsec uni-directional test cases relying on VPP native
+crypto (`crypto_native` plugin) in tunnel mode:
+
+ **VPP Crypto Engine** | **ESP Encryption** | **ESP Integrity** | **Scale Tested**
+----------------------:|-------------------:|------------------:|-------------------:
+ crypto_native | AES[128\|256]-GCM | GCM | 4, 1k, 10k tunnels
+ crypto_native | AES128-CBC | SHA[512] | 4, 1k, 10k tunnels
+
+In policy mode:
+
+ **VPP Crypto Engine** | **ESP Encryption** | **ESP Integrity** | **Scale Tested**
+----------------------:|-------------------:|------------------:|------------------:
+ crypto_native | AES[256]-GCM | GCM | 1, 40, 1k tunnels
+
+The tests are running on 2-node testbeds: 2n-tx2. The uni-directional tests
+are partially addressing a weakness in 2-node testbed setups with T-Rex as
+the traffic generator. With just one DUT node, we can either encrypt or decrypt
+traffic in each direction.
+
+The testcases are only doing encryption - packets are encrypted on the DUT and
+then arrive at TG where no additional packet processing is needed (just
+counting packets).
+
+Decryption would require that the traffic generator generated encrypted packets
+which the DUT then would decrypt. However, T-Rex does not have the capability
+to encrypt packets.
diff --git a/docs/content/methodology/test/network_address_translation.md b/docs/content/methodology/test/network_address_translation.md
new file mode 100644
index 0000000000..f443eabc5f
--- /dev/null
+++ b/docs/content/methodology/test/network_address_translation.md
@@ -0,0 +1,445 @@
+---
+title: "Network Address Translation"
+weight: 1
+---
+
+# Network Address Translation
+
+## NAT44 Prefix Bindings
+
+NAT44 prefix bindings should be representative to target applications,
+where a number of private IPv4 addresses from the range defined by
+RFC1918 is mapped to a smaller set of public IPv4 addresses from the
+public range.
+
+Following quantities are used to describe inside to outside IP address
+and port bindings scenarios:
+
+- Inside-addresses, number of inside source addresses
+ (representing inside hosts).
+- Ports-per-inside-address, number of TCP/UDP source
+ ports per inside source address.
+- Outside-addresses, number of outside (public) source addresses
+ allocated to NAT44.
+- Ports-per-outside-address, number of TCP/UDP source
+ ports per outside source address. The maximal number of
+ ports-per-outside-address usable for NAT is 64 512
+ (in non-reserved port range 1024-65535, RFC4787).
+- Sharing-ratio, equal to inside-addresses divided by outside-addresses.
+
+CSIT NAT44 tests are designed to take into account the maximum number of
+ports (sessions) required per inside host (inside-address) and at the
+same time to maximize the use of outside-address range by using all
+available outside ports. With this in mind, the following scheme of
+NAT44 sharing ratios has been devised for use in CSIT:
+
+ **ports-per-inside-address** | **sharing-ratio**
+-----------------------------:|------------------:
+ 63 | 1024
+ 126 | 512
+ 252 | 256
+ 504 | 128
+
+Initial CSIT NAT44 tests, including associated TG/TRex traffic profiles,
+are based on ports-per-inside-address set to 63 and the sharing ratio of
+1024. This approach is currently used for all NAT44 tests including
+NAT44det (NAT44 deterministic used for Carrier Grade NAT applications)
+and NAT44ed (Endpoint Dependent).
+
+Private address ranges to be used in tests:
+
+- 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
+
+ - Total of 2^16 (65 536) of usable IPv4 addresses.
+ - Used in tests for up to 65 536 inside addresses (inside hosts).
+
+- 172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
+
+ - Total of 2^20 (1 048 576) of usable IPv4 addresses.
+ - Used in tests for up to 1 048 576 inside addresses (inside hosts).
+
+### NAT44 Session Scale
+
+NAT44 session scale tested is govern by the following logic:
+
+- Number of inside-addresses(hosts) H[i] = (H[i-1] x 2^2) with H(0)=1 024,
+ i = 1,2,3, ...
+
+ - H[i] = 1 024, 4 096, 16 384, 65 536, 262 144, ...
+
+- Number of sessions S[i] = H[i] * ports-per-inside-address
+
+ - ports-per-inside-address = 63
+
+ **i** | **hosts** | **sessions**
+------:|----------:|-------------:
+ 0 | 1 024 | 64 512
+ 1 | 4 096 | 258 048
+ 2 | 16 384 | 1 032 192
+ 3 | 65 536 | 4 128 768
+ 4 | 262 144 | 16 515 072
+
+### NAT44 Deterministic
+
+NAT44det performance tests are using TRex STL (Stateless) API and traffic
+profiles, similar to all other stateless packet forwarding tests like
+ip4, ip6 and l2, sending UDP packets in both directions
+inside-to-outside and outside-to-inside.
+
+The inside-to-outside traffic uses single destination address (20.0.0.0)
+and port (1024).
+The inside-to-outside traffic covers whole inside address and port range,
+the outside-to-inside traffic covers whole outside address and port range.
+
+NAT44det translation entries are created during the ramp-up phase,
+followed by verification that all entries are present,
+before proceeding to the main measurements of the test.
+This ensures session setup does not impact the forwarding performance test.
+
+Associated CSIT test cases use the following naming scheme to indicate
+NAT44det scenario tested:
+
+- ethip4udp-nat44det-h{H}-p{P}-s{S}-[mrr|ndrpdr|soak]
+
+ - {H}, number of inside hosts, H = 1024, 4096, 16384, 65536, 262144.
+ - {P}, number of ports per inside host, P = 63.
+ - {S}, number of sessions, S = 64512, 258048, 1032192, 4128768,
+ 16515072.
+ - [mrr|ndrpdr|soak], MRR, NDRPDR or SOAK test.
+
+### NAT44 Endpoint-Dependent
+
+In order to excercise NAT44ed ability to translate based on both
+source and destination address and port, the inside-to-outside traffic
+varies also destination address and port. Destination port is the same
+as source port, destination address has the same offset as the source address,
+but applied to different subnet (starting with 20.0.0.0).
+
+As the mapping is not deterministic (for security reasons),
+we cannot easily use stateless bidirectional traffic profiles.
+Inside address and port range is fully covered,
+but we do not know which outside-to-inside source address and port to use
+to hit an open session.
+
+Therefore, NAT44ed is benchmarked using following methodologies:
+
+- Unidirectional throughput using *stateless* traffic profile.
+- Connections-per-second (CPS) using *stateful* traffic profile.
+- Bidirectional throughput (TPUT, see below) using *stateful* traffic profile.
+
+Unidirectional NAT44ed throughput tests are using TRex STL (Stateless)
+APIs and traffic profiles, but with packets sent only in
+inside-to-outside direction.
+Similarly to NAT44det, NAT44ed unidirectional throughput tests include
+a ramp-up phase to establish and verify the presence of required NAT44ed
+binding entries. As the sessions have finite duration, the test code
+keeps inserting ramp-up trials during the search, if it detects a risk
+of sessions timing out. Any zero loss trial visits all sessions,
+so it acts also as a ramp-up.
+
+Stateful NAT44ed tests are using TRex ASTF (Advanced Stateful) APIs and
+traffic profiles, with packets sent in both directions. Tests are run
+with both UDP and TCP sessions.
+As NAT44ed CPS (connections-per-second) stateful tests
+measure (also) session opening performance,
+they use state reset instead of ramp-up trial.
+NAT44ed TPUT (bidirectional throughput) tests prepend ramp-up trials
+as in the unidirectional tests,
+so the test results describe performance without translation entry
+creation overhead.
+
+Associated CSIT test cases use the following naming scheme to indicate
+NAT44det case tested:
+
+- Stateless: ethip4udp-nat44ed-h{H}-p{P}-s{S}-udir-[mrr|ndrpdr|soak]
+
+ - {H}, number of inside hosts, H = 1024, 4096, 16384, 65536, 262144.
+ - {P}, number of ports per inside host, P = 63.
+ - {S}, number of sessions, S = 64512, 258048, 1032192, 4128768,
+ 16515072.
+ - udir-[mrr|ndrpdr|soak], unidirectional stateless tests MRR, NDRPDR
+ or SOAK.
+
+- Stateful: ethip4[udp|tcp]-nat44ed-h{H}-p{P}-s{S}-[cps|tput]-[mrr|ndrpdr|soak]
+
+ - [udp|tcp], UDP or TCP sessions
+ - {H}, number of inside hosts, H = 1024, 4096, 16384, 65536, 262144.
+ - {P}, number of ports per inside host, P = 63.
+ - {S}, number of sessions, S = 64512, 258048, 1032192, 4128768,
+ 16515072.
+ - [cps|tput], connections-per-second session establishment rate or
+ packets-per-second average rate, or packets-per-second rate
+ without session establishment.
+ - [mrr|ndrpdr|soak], bidirectional stateful tests MRR, NDRPDR, or SOAK.
+
+## Stateful traffic profiles
+
+There are several important details which distinguish ASTF profiles
+from stateless profiles.
+
+### General considerations
+
+#### Protocols
+
+ASTF profiles are limited to either UDP or TCP protocol.
+
+#### Programs
+
+Each template in the profile defines two "programs", one for the client side
+and one for the server side.
+
+Each program specifies when that side has to wait until enough data is received
+(counted in packets for UDP and in bytes for TCP)
+and when to send additional data. Together, the two programs
+define a single transaction. Due to packet loss, transaction may take longer,
+use more packets (retransmission) or never finish in its entirety.
+
+#### Instances
+
+A client instance is created according to TPS parameter for the trial,
+and sends the first packet of the transaction (in some cases more packets).
+Each client instance uses a different source address (see sequencing below)
+and some source port. The destination address also comes from a range,
+but destination port has to be constant for a given program.
+
+TRex uses an opaque way to chose source ports, but as session counting shows,
+next client with the same source address uses a different source port.
+
+Server instance is created when the first packet arrives to the server side.
+Source address and port of the first packet are used as destination address
+and port for the server responses. This is the ability we need
+when outside surface is not predictable.
+
+When a program reaches its end, the instance is deleted.
+This creates possible issues with server instances. If the server instance
+does not read all the data client has sent, late data packets
+can cause a second copy of server instance to be created,
+which breaks assumptions on how many packet a transaction should have.
+
+The need for server instances to read all the data reduces the overall
+bandwidth TRex is able to create in ASTF mode.
+
+Note that client instances are not created on packets,
+so it is safe to end client program without reading all server data
+(unless the definition of transaction success requires that).
+
+#### Sequencing
+
+ASTF profiles offer two modes for choosing source and destination IP addresses
+for client programs: seqential and pseudorandom.
+In current tests we are using sequential addressing only (if destination
+address varies at all).
+
+For client destination UDP/TCP port, we use a single constant value.
+(TRex can support multiple program pairs in the same traffic profile,
+distinguished by the port number.)
+
+#### Transaction overlap
+
+If a transaction takes longer to finish, compared to period implied by TPS,
+TRex will have multiple client or server instances active at a time.
+
+During calibration testing we have found this increases CPU utilization,
+and for high TPS it can lead to TRex's Rx or Tx buffers becoming full.
+This generally leads to duration stretching, and/or packet loss on TRex.
+
+Currently used transactions were chosen to be short, so risk of bad behavior
+is decreased. But in MRR tests, where load is computed based on NIC ability,
+not TRex ability, anomalous behavior is still possible
+(e.g. MRR values being way lower than NDR).
+
+#### Delays
+
+TRex supports adding constant delays to ASTF programs.
+This can be useful, for example if we want to separate connection establishment
+from data transfer.
+
+But as TRex tracks delayed instances as active, this still results
+in higher CPU utilization and reduced performance issues
+(as other overlaping transactions). So the current tests do not use any delays.
+
+#### Keepalives
+
+Both UDP and TCP protocol implementations in TRex programs support keepalive
+duration. That means there is a configurable period of keepalive time,
+and TRex sends keepalive packets automatically (outside the program)
+for the time the program is active (started, not ended yet)
+but not sending any packets.
+
+For TCP this is generally not a big deal, as the other side usually
+retransmits faster. But for UDP it means a packet loss may leave
+the receiving program running.
+
+In order to avoid keepalive packets, keepalive value is set to a high number.
+Here, "high number" means that even at maximum scale and minimum TPS,
+there are still no keepalive packets sent within the corresponding
+(computed) trial duration. This number is kept the same also for
+smaller scale traffic profiles, to simplify maintenance.
+
+#### Transaction success
+
+The transaction is considered successful at Layer-7 (L7) level
+when both program instances close. At this point, various L7 counters
+(unofficial name) are updated on TRex.
+
+We found that proper close and L7 counter update can be CPU intensive,
+whereas lower-level counters (ipackets, opackets) called L2 counters
+can keep up with higher loads.
+
+For some tests, we do not need to confirm the whole transaction was successful.
+CPS (connections per second) tests are a typical example.
+We care only for NAT44ed creating a session (needs one packet
+in inside-to-outside direction per session) and being able to use it
+(needs one packet in outside-to-inside direction).
+
+Similarly in TPUT tests (packet throuput, counting both control
+and data packets), we care about NAT44ed ability to forward packets,
+we do not care whether aplications (TRex) can fully process them at that rate.
+
+Therefore each type of tests has its own formula (usually just one counter
+already provided by TRex) to count "successful enough" transactions
+and attempted transactions. Currently, all tests relying on L7 counters
+use size-limited profiles, so they know what the count of attempted
+transactions should be, but due to duration stretching
+TRex might have been unable to send that many packets.
+For search purposes, unattempted transactions are treated the same
+as attempted but failed transactions.
+
+Sometimes even the number of transactions as tracked by search algorithm
+does not match the transactions as defined by ASTF programs.
+See TCP TPUT profile below.
+
+### UDP CPS
+
+This profile uses a minimalistic transaction to verify NAT44ed session has been
+created and it allows outside-to-inside traffic.
+
+Client instance sends one packet and ends.
+Server instance sends one packet upon creation and ends.
+
+In principle, packet size is configurable,
+but currently used tests apply only one value (100 bytes frame).
+
+Transaction counts as attempted when opackets counter increases on client side.
+Transaction counts as successful when ipackets counter increases on client side.
+
+### TCP CPS
+
+This profile uses a minimalistic transaction to verify NAT44ed session has been
+created and it allows outside-to-inside traffic.
+
+Client initiates TCP connection. Client waits until connection is confirmed
+(by reading zero data bytes). Client ends.
+Server accepts the connection. Server waits for indirect confirmation
+from client (by waiting for client to initiate close). Server ends.
+
+Without packet loss, the whole transaction takes 7 packets to finish
+(4 and 3 per direction).
+From NAT44ed point of view, only the first two are needed to verify
+the session got created.
+
+Packet size is not configurable, but currently used tests report
+frame size as 64 bytes.
+
+Transaction counts as attempted when tcps_connattempt counter increases
+on client side.
+Transaction counts as successful when tcps_connects counter increases
+on client side.
+
+### UDP TPUT
+
+This profile uses a small transaction of "request-response" type,
+with several packets simulating data payload.
+
+Client sends 5 packets and closes immediately.
+Server reads all 5 packets (needed to avoid late packets creating new
+server instances), then sends 5 packets and closes.
+The value 5 was chosen to mirror what TCP TPUT (see below) choses.
+
+Packet size is configurable, currently we have tests for 100,
+1518 and 9000 bytes frame (to match size of TCP TPUT data frames, see below).
+
+As this is a packet oriented test, we do not track the whole
+10 packet transaction. Similarly to stateless tests, we treat each packet
+as a "transaction" for search algorthm packet loss ratio purposes.
+Therefore a "transaction" is attempted when opacket counter on client
+or server side is increased. Transaction is successful if ipacket counter
+on client or server side is increased.
+
+If one of 5 client packets is lost, server instance will get stuck
+in the reading phase. This probably decreases TRex performance,
+but it leads to more stable results then alternatives.
+
+### TCP TPUT
+
+This profile uses a small transaction of "request-response" type,
+with some data amount to be transferred both ways.
+
+In CSIT release 22.06, TRex behavior changed, so we needed to edit
+the traffic profile. Let us describe the pre-22.06 profile first.
+
+Client connects, sends 5 data packets worth of data,
+receives 5 data packets worth of data and closes its side of the connection.
+Server accepts connection, reads 5 data packets worth of data,
+sends 5 data packets worth of data and closes its side of the connection.
+As usual in TCP, sending side waits for ACK from the receiving side
+before proceeding with next step of its program.
+
+Server read is needed to avoid premature close and second server instance.
+Client read is not stricly needed, but ACKs allow TRex to close
+the server instance quickly, thus saving CPU and improving performance.
+
+The number 5 of data packets was chosen so TRex is able to send them
+in a single burst, even with 9000 byte frame size (TRex has a hard limit
+on initial window size).
+That leads to 16 packets (9 of them in c2s direction) to be exchanged
+if no loss occurs.
+The size of data packets is controlled by the traffic profile setting
+the appropriate maximum segment size. Due to TRex restrictions,
+the minimal size for IPv4 data frame achievable by this method is 70 bytes,
+which is more than our usual minimum of 64 bytes.
+For that reason, the data frame sizes available for testing are 100 bytes
+(that allows room for eventually adding IPv6 ASTF tests),
+1518 bytes and 9000 bytes. There is no control over control packet sizes.
+
+Exactly as in UDP TPUT, ipackets and opackets counters are used for counting
+"transactions" (in fact packets).
+
+If packet loss occurs, there can be large transaction overlap, even if most
+ASTF programs finish eventually. This can lead to big duration stretching
+and somehow uneven rate of packets sent. This makes it hard to interpret
+MRR results (frequently MRR is below NDR for this reason),
+but NDR and PDR results tend to be stable enough.
+
+In 22.06, the "ACK from the receiving side" behavior changed,
+the receiving side started sending ACK sometimes
+also before receiving the full set of 5 data packets.
+If the previous profile is understood as a "single challenge, single response"
+where challenge (and also response) is sent as a burst of 5 data packets,
+the new profile uses "bursts" of 1 packet instead, but issues
+the challenge-response part 5 times sequentially
+(waiting for receiving the response before sending next challenge).
+This new profile happens to have the same overall packet count
+(when no re-transmissions are needed).
+Although it is possibly more taxing for TRex CPU,
+the results are comparable to the old traffic profile.
+
+## Ip4base tests
+
+Contrary to stateless traffic profiles, we do not have a simple limit
+that would guarantee TRex is able to send traffic at specified load.
+For that reason, we have added tests where "nat44ed" is replaced by "ip4base".
+Instead of NAT44ed processing, the tests set minimalistic IPv4 routes,
+so that packets are forwarded in both inside-to-outside and outside-to-inside
+directions.
+
+The packets arrive to server end of TRex with different source address&port
+than in NAT44ed tests (no translation to outside values is done with ip4base),
+but those are not specified in the stateful traffic profiles.
+The server end (as always) uses the received address&port as destination
+for outside-to-inside traffic. Therefore the same stateful traffic profile
+works for both NAT44ed and ip4base test (of the same scale).
+
+The NAT44ed results are displayed together with corresponding ip4base results.
+If they are similar, TRex is probably the bottleneck.
+If NAT44ed result is visibly smaller, it describes the real VPP performance.
diff --git a/docs/content/methodology/test/packet_flow_ordering.md b/docs/content/methodology/test/packet_flow_ordering.md
new file mode 100644
index 0000000000..c2c87038d4
--- /dev/null
+++ b/docs/content/methodology/test/packet_flow_ordering.md
@@ -0,0 +1,42 @@
+---
+title: "Packet Flow Ordering"
+weight: 2
+---
+
+# Packet Flow Ordering
+
+TRex Traffic Generator (TG) supports two main ways how to cover
+address space (on allowed ranges) in scale tests.
+
+In most cases only one field value (e.g. IPv4 destination address) is
+altered, in some cases two fields (e.g. IPv4 destination address and UDP
+destination port) are altered.
+
+## Incremental Ordering
+
+This case is simpler to implement and offers greater control.
+
+When changing two fields, they can be incremented synchronously, or one
+after another. In the latter case we can specify which one is
+incremented each iteration and which is incremented by "carrying over"
+only when the other "wraps around". This way also visits all
+combinations once before the "carry" field also wraps around.
+
+It is possible to use increments other than 1.
+
+## Randomized Ordering
+
+This case chooses each field value at random (from the allowed range).
+In case of two fields, they are treated independently.
+TRex allows to set random seed to get deterministic numbers.
+We use a different seed for each field and traffic direction.
+The seed has to be a non-zero number, we use 1, 2, 3, and so on.
+
+The seeded random mode in TRex requires a "limit" value,
+which acts as a cycle length limit (after this many iterations,
+the seed resets to its initial value).
+We use the maximal allowed limit value (computed as 2^24 - 1).
+
+Randomized profiles do not avoid duplicated values,
+and do not guarantee each possible value is visited,
+so it is not very useful for stateful tests.
diff --git a/docs/content/methodology/test/reassembly.md b/docs/content/methodology/test/reassembly.md
new file mode 100644
index 0000000000..61064d1bbc
--- /dev/null
+++ b/docs/content/methodology/test/reassembly.md
@@ -0,0 +1,48 @@
+---
+title: "Reassembly"
+weight: 10
+---
+
+# Packet reassembly performance
+
+IP protocols (mainly IPv4) specify conditions for packet fragmentation
+and packet reassembly. For VPP, the reassembly operation is more CPU intensive.
+By default, VPP avoids unnecessary work, so there are only few scenarios
+where VPP fragments IP packets, and even less scenarios where it reassemblies
+the fragmented packets.
+
+The typical situation when fragmentation is performed occurs with
+tunnel encapsulation protocols, when the packet after encapsulation
+would not fit into interface MTU (maximum transmission unit).
+Some, but not all, encapsulation protocols also require
+packet reassembly for decapsulation.
+
+As the search algorithms used in CSIT work best when the number of packets
+coming from TG (traffic generator) is the same
+as the number of packets expected to come back to TG,
+the easiest way to test reassembly performance of VPP is using
+a 3-node testbed and a tunneling test suite adapted to cause fragmentation.
+
+## MTU
+
+By default, testbeds in CSIT are configured with MTU high enough
+for encapsulated packets to fit in.
+Not all devices and drivers used by VPP do support lowering MTU value.
+For reassembly tests, only the physical interfaces on the DUT1-DUT2 link
+have lowered MTU, and that currently works only with dpdk plugin.
+
+## Impacts
+
+Reassembly suites with small number of flows and tunnels
+usually place encapsulation+fragmentation and reassembly+decapsulation
+on different workers, so the bottleneck seen in performance results
+is not affected by fragmentation performance.
+
+Reassembly suites with high number of flows and tunnels
+achieve balanced load on all workers, so their overall performance
+is affected by both fragmentation and reassembly performance.
+
+Some protocols (e.g. IPsec) are CPU intensive not only
+on fragmentation and reassembly, but also on encapsulation and decapsulation.
+Reassembly (and depending on scale also fragmentation) impact
+on those tests can still be visible, at least for big regressions.
diff --git a/docs/content/methodology/test/reconfiguration.md b/docs/content/methodology/test/reconfiguration.md
new file mode 100644
index 0000000000..a0678103d9
--- /dev/null
+++ b/docs/content/methodology/test/reconfiguration.md
@@ -0,0 +1,70 @@
+---
+title: "Reconfiguration"
+weight: 8
+---
+
+# Reconfiguration
+
+## Overview
+
+Reconf tests are designed to measure the impact of VPP re-configuration
+on data plane traffic.
+While VPP takes some measures against the traffic being
+entirely stopped for a prolonged time,
+the immediate forwarding rate varies during the re-configuration,
+as some configurations steps need the active dataplane worker threads
+to be stopped temporarily.
+
+As the usual methods of measuring throughput need multiple trial measurements
+with somewhat long durations, and the re-configuration process can also be long,
+finding an offered load which would result in zero loss
+during the re-configuration process would be time-consuming.
+
+Instead, reconf tests first find a througput value (lower bound for NDR)
+without re-configuration, and then maintain that ofered load
+during re-configuration. The measured loss count is then assumed to be caused
+by the re-configuration process. The result published by reconf tests
+is the effective blocked time, that is
+the loss count divided by the offered load.
+
+## Current Implementation
+
+Each reconf suite is based on a similar MLRsearch performance suite.
+
+MLRsearch parameters are changed to speed up the throughput discovery.
+For example, PDR is not searched for, and the goal duration sum is shorter.
+Contrary to usual NDR, exceed ratio is set to zero in reconf tests
+as load stability is less important than attribution of losses.
+
+The MLRsearch suite has to contain a configuration parameter
+that can be scaled up, e.g. number of tunnels or number of service chains.
+Currently, only increasing the scale is supported
+as the re-configuration operation. In future, scale decrease
+or other operations can be implemented.
+
+The traffic profile is not changed, so the traffic present is processed
+only by the smaller scale configuration. The added tunnels / chains
+are not targetted by the traffic.
+
+For the re-configuration, the same Robot Framework and Python libraries
+are used, as were used in the initial configuration, with the exception
+of the final calls that do not interact with VPP (e.g. starting
+virtual machines) being skipped to reduce the test overall duration.
+
+## Discussion
+
+Robot Framework introduces a certain overhead, which may affect timing
+of individual VPP API calls, which in turn may affect
+the number of packets lost.
+
+The exact calls executed may contain unnecessary info dumps, repeated commands,
+or commands which change a value that do not need to be changed (e.g. MTU).
+Thus, implementation details are affecting the results, even if their effect
+on the corresponding MLRsearch suite is negligible.
+
+The lower bound for NDR is the only value safe to be used when zero packets lost
+are expected without re-configuration. But different suites show different
+"jitter" in that value. For some suites, the lower bound is not tight,
+allowing full NIC buffers to drain quickly between worker pauses.
+For other suites, lower bound for NDR still has quite a large probability
+of non-zero packet loss even without re-configuration.
diff --git a/docs/content/methodology/test/tunnel_encapsulations.md b/docs/content/methodology/test/tunnel_encapsulations.md
new file mode 100644
index 0000000000..c047c43dfa
--- /dev/null
+++ b/docs/content/methodology/test/tunnel_encapsulations.md
@@ -0,0 +1,87 @@
+---
+title: "Tunnel Encapsulations"
+weight: 3
+---
+
+# Tunnel Encapsulations
+
+Tunnel encapsulations testing is grouped based on the type of outer
+header: IPv4 or IPv6.
+
+## IPv4 Tunnels
+
+VPP is tested in the following IPv4 tunnel baseline configurations:
+
+- *ip4vxlan-l2bdbase*: VXLAN over IPv4 tunnels with L2 bridge-domain MAC
+ switching.
+- *ip4vxlan-l2xcbase*: VXLAN over IPv4 tunnels with L2 cross-connect.
+- *ip4lispip4-ip4base*: LISP over IPv4 tunnels with IPv4 routing.
+- *ip4lispip6-ip6base*: LISP over IPv4 tunnels with IPv6 routing.
+- *ip4gtpusw-ip4base*: GTPU over IPv4 tunnels with IPv4 routing.
+
+In all cases listed above low number of MAC, IPv4, IPv6 flows (253 or 254 per
+direction) is switched or routed by VPP.
+
+In addition selected IPv4 tunnels are tested at scale:
+
+- *dot1q--ip4vxlanscale-l2bd*: VXLAN over IPv4 tunnels with L2 bridge-
+ domain MAC switching, with scaled up dot1q VLANs (10, 100, 1k),
+ mapped to scaled up L2 bridge-domains (10, 100, 1k), that are in turn
+ mapped to (10, 100, 1k) VXLAN tunnels. 64.5k flows are transmitted per
+ direction.
+
+## IPv6 Tunnels
+
+VPP is tested in the following IPv6 tunnel baseline configurations:
+
+- *ip6lispip4-ip4base*: LISP over IPv4 tunnels with IPv4 routing.
+- *ip6lispip6-ip6base*: LISP over IPv4 tunnels with IPv6 routing.
+
+In all cases listed above low number of IPv4, IPv6 flows (253 or 254 per
+direction) is routed by VPP.
+
+## GENEVE
+
+### GENEVE Prefix Bindings
+
+GENEVE prefix bindings should be representative to target applications, where
+a packet flows of particular set of IPv4 addresses (L3 underlay network) is
+routed via dedicated GENEVE interface by building an L2 overlay.
+
+Private address ranges to be used in tests:
+
+- East hosts ip address range: 10.0.1.0 - 10.127.255.255 (10.0/9 prefix)
+ - Total of 2^23 - 256 (8 388 352) of usable IPv4 addresses
+ - Usable in tests for up to 32 767 GENEVE tunnels (IPv4 underlay networks)
+- West hosts ip address range: 10.128.1.0 - 10.255.255.255 (10.128/9 prefix)
+ - Total of 2^23 - 256 (8 388 352) of usable IPv4 addresses
+ - Usable in tests for up to 32 767 GENEVE tunnels (IPv4 underlay networks)
+
+### GENEVE Tunnel Scale
+
+If N is a number of GENEVE tunnels (and IPv4 underlay networks) then TG sends
+256 packet flows in every of N different sets:
+
+- i = 1,2,3, ... N - GENEVE tunnel index
+- East-West direction: GENEVE encapsulated packets
+ - Outer IP header:
+ - src ip: 1.1.1.1
+ - dst ip: 1.1.1.2
+ - GENEVE header:
+ - vni: i
+ - Inner IP header:
+ - src_ip_range(i) = 10.(0 + rounddown(i/255)).(modulo(i/255)).(0-to-255)
+ - dst_ip_range(i) = 10.(128 + rounddown(i/255)).(modulo(i/255)).(0-to-255)
+- West-East direction: non-encapsulated packets
+ - IP header:
+ - src_ip_range(i) = 10.(128 + rounddown(i/255)).(modulo(i/255)).(0-to-255)
+ - dst_ip_range(i) = 10.(0 + rounddown(i/255)).(modulo(i/255)).(0-to-255)
+
+ **geneve-tunnels** | **total-flows**
+-------------------:|----------------:
+ 1 | 256
+ 4 | 1 024
+ 16 | 4 096
+ 64 | 16 384
+ 256 | 65 536
+ 1 024 | 262 144
diff --git a/docs/content/methodology/test/vpp_device.md b/docs/content/methodology/test/vpp_device.md
new file mode 100644
index 0000000000..0a5ee90308
--- /dev/null
+++ b/docs/content/methodology/test/vpp_device.md
@@ -0,0 +1,15 @@
+---
+title: "VPP Device"
+weight: 9
+---
+
+# VPP Device
+
+Includes VPP_Device test environment for functional VPP
+device tests integrated into LFN CI/CD infrastructure. VPP_Device tests
+run on 1-Node testbeds (1n-skx, 1n-arm) and rely on Linux SRIOV Virtual
+Function (VF), dot1q VLAN tagging and external loopback cables to
+facilitate packet passing over external physical links. Initial focus is
+on few baseline tests. New device tests can be added by small edits
+to existing CSIT Performance (2-node) test. RF test definition code
+stays unchanged with the exception of traffic generator related L2 KWs.
diff --git a/docs/content/methodology/trending/_index.md b/docs/content/methodology/trending/_index.md
new file mode 100644
index 0000000000..94fe7c8288
--- /dev/null
+++ b/docs/content/methodology/trending/_index.md
@@ -0,0 +1,16 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "Trending"
+weight: 4
+---
+
+# Trending
+
+This document describes a high-level design of a system for continuous
+performance measuring, trending and change detection for FD.io VPP SW
+data plane (and other performance tests run within CSIT sub-project).
+
+- [Analysis]({{< relref "/methodology/trending/analysis" >}})
+- [Presentation]({{< relref "/methodology/trending/presentation" >}})
+- [Previous]({{< relref "/methodology/trending/previous" >}})
diff --git a/docs/content/methodology/trending/analysis.md b/docs/content/methodology/trending/analysis.md
new file mode 100644
index 0000000000..eb1c8a741b
--- /dev/null
+++ b/docs/content/methodology/trending/analysis.md
@@ -0,0 +1,231 @@
+---
+title: "Analysis"
+weight: 1
+---
+
+# Trend Analysis
+
+All measured performance trend data is treated as time-series data
+that is modeled as a concatenation of groups,
+within each group the samples come (independently) from
+the same normal distribution (with some center and standard deviation).
+
+Center of the normal distribution for the group (equal to population average)
+is called a trend for the group.
+All the analysis is based on finding the right partition into groups
+and comparing their trends.
+
+## Anomalies in graphs
+
+In graphs, the start of the following group is marked as a regression (red
+circle) or progression (green circle), if the new trend is lower (or higher
+respectively) then the previous group's.
+
+## Implementation details
+
+### Partitioning into groups
+
+While sometimes the samples within a group are far from being distributed
+normally, currently we do not have a better tractable model.
+
+Here, "sample" should be the result of single trial measurement, with group
+boundaries set only at test run granularity. But in order to avoid detecting
+causes unrelated to VPP performance, the current presentation takes average of
+all trials within the MRR run as the sample. Effectively, this acts as a single
+trial with aggregate duration.
+(Trending of NDR or PDR results take just one sample, the conditional throughput).
+
+Performance graphs show the run average as a dot (not all individual trial
+results).
+
+The group boundaries are selected based on `Minimum Description Length`[^1].
+
+### Minimum Description Length
+
+`Minimum Description Length`[^1] (MDL) is a particular formalization
+of `Occam's razor`[^2] principle.
+
+The general formulation mandates to evaluate a large set of models,
+but for anomaly detection purposes, it is useful to consider
+a smaller set of models, so that scoring and comparing them is easier.
+
+For each candidate model, the data should be compressed losslessly,
+which includes model definitions, encoded model parameters,
+and the raw data encoded based on probabilities computed by the model.
+The model resulting in shortest compressed message is the "the" correct model.
+
+For our model set (groups of normally distributed samples),
+we need to encode group length (which penalizes too many groups),
+group average (more on that later), group stdev and then all the samples.
+
+Luckily, the "all the samples" part turns out to be quite easy to compute.
+If sample values are considered as coordinates in (multi-dimensional)
+Euclidean space, fixing average restrict possible values to a (hyper-)plane.
+Then, fixing stdev means the point with allowed coordinates
+lays on a sphere (centered the "all samples equal to average" point)
+within that hyper-plane.
+And the Gaussian probability density on the resulting sphere is constant.
+So the only contribution is the "area" of the sphere, which only depends
+on the number of samples and stdev.
+
+Still, to get the information content in bits, we need to know what "size"
+one "pixel" of that area is.
+Our implementation assumes that measurement precision is such that
+the max sample value is 4096 (2^12) pixels (inspired by 0.5% precision
+of NDRPDR tests, roughly two pixels around max value).
+
+A somehow ambiguous part is in choosing which encoding
+is used for group size, average and stdev.
+Different encodings cause different biases to large or small values.
+In our implementation we have chosen probability density
+corresponding to uniform distribution (from zero to maximal sample value)
+for stdev and average of the first group,
+but for averages of subsequent groups we have chosen a distribution
+which discourages delimiting groups with averages close together.
+
+The group selection algorithm currently has no parameters,
+all the aforementioned encodings and handling of precision is hard-coded.
+(Although the underlying library "jumpavg" allows users to change the precision,
+either in absolute units or in bits per max sample.)
+
+In principle, every group selection is examined, and the one encodable
+with least amount of bits is selected.
+As the bit amount for a selection is just sum of bits for every group,
+finding the best selection takes number of comparisons
+quadratically increasing with the size of data,
+the overall time complexity being probably cubic.
+
+The resulting group distribution looks good
+if samples are distributed normally enough within a group.
+But for obviously different distributions (for example
+`bimodal distribution`[^3]) the groups tend to focus on less relevant factors
+(such as "outlier" density).
+
+## Common Patterns
+
+When an anomaly is detected, it frequently falls into few known patterns,
+each having its typical behavior over time.
+
+We are going to describe the behaviors,
+as they motivate our choice of trend compliance metrics.
+
+### Sample time and analysis time
+
+But first we need to distinguish two roles time plays in analysis,
+so it is more clear which role we are referring to.
+
+Sample time is the more obvious one.
+It is the time the sample is generated.
+It is the start time or the end time of the Jenkins job run,
+does not really matter which (parallel runs are disabled,
+and length of gap between samples does not affect metrics).
+
+Analysis time is the time the current analysis is computed.
+Again, the exact time does not usually matter,
+what matters is how many later (and how fewer earlier) samples
+were considered in the computation.
+
+For some patterns, it is usual for a previously reported
+anomaly to "vanish", or previously unseen anomaly to "appear late",
+as later samples change which partition into groups is more probable.
+
+Dashboard and graphs are always showing the latest analysis time,
+the compliance metrics are using earlier sample time
+with the same latest analysis time.
+
+Alerting e-mails use the latest analysis time at the time of sending,
+so the values reported there are likely to be different
+from the later analysis time results shown in dashboard and graphs.
+
+### Ordinary regression
+
+The real performance changes from previously stable value
+into a new stable value.
+
+For medium to high magnitude of the change, one run
+is enough for anomaly detection to mark this regression.
+
+Ordinary progressions are detected in the same way.
+
+### Small regression
+
+The real performance changes from previously stable value
+into a new stable value, but the difference is small.
+
+For the anomaly detection algorithm, this change is harder to detect,
+depending on the standard deviation of the previous group.
+
+If the new performance value stays stable, eventually
+the detection algorithm is able to detect this anomaly
+when there are enough samples around the new value.
+
+If the difference is too small, it may remain undetected
+(as new performance change happens, or full history of samples
+is still not enough for the detection).
+
+Small progressions have the same behavior.
+
+### Reverted regression
+
+This pattern can have two different causes.
+We would like to distinguish them, but that is usually
+not possible to do just by looking at the measured values (and not telemetry).
+
+In one cause, the real DUT performance has changed,
+but got restored immediately.
+In the other cause, no real performance change happened,
+just some temporary infrastructure issue
+has caused a wrong low value to be measured.
+
+For small measured changes, this pattern may remain undetected.
+For medium and big measured changes, this is detected when the regression
+happens on just the last sample.
+
+For big changes, the revert is also immediately detected
+as a subsequent progression. The trend is usually different
+from the previously stable trend (as the two population averages
+are not likely to be exactly equal), but the difference
+between the two trends is relatively small.
+
+For medium changes, the detection algorithm may need several new samples
+to detect a progression (as it dislikes single sample groups),
+in the meantime reporting regressions (difference decreasing
+with analysis time), until it stabilizes the same way as for big changes
+(regression followed by progression, small difference
+between the old stable trend and last trend).
+
+As it is very hard for a fault code or an infrastructure issue
+to increase performance, the opposite (temporary progression)
+almost never happens.
+
+### Summary
+
+There is a trade-off between detecting small regressions
+and not reporting the same old regressions for a long time.
+
+For people reading e-mails, a sudden regression with a big number of samples
+in the last group means this regression was hard for the algorithm to detect.
+
+If there is a big regression with just one run in the last group,
+we are not sure if it is real, or just a temporary issue.
+It is useful to wait some time before starting an investigation.
+
+With decreasing (absolute value of) difference, the number of expected runs
+increases. If there is not enough runs, we still cannot distinguish
+real regression from temporary regression just from the current metrics
+(although humans frequently can tell by looking at the graph).
+
+When there is a regression or progression with just a small difference,
+it is probably an artifact of a temporary regression.
+Not worth examining, unless temporary regressions happen somewhat frequently.
+
+It is not easy for the metrics to locate the previous stable value,
+especially if multiple anomalies happened in the last few weeks.
+It is good to compare last trend with long term trend maximum,
+as it highlights the difference between "now" and "what could be".
+It is good to exclude last week from the trend maximum,
+as including the last week would hide all real progressions.
+
+[^1]: [Minimum Description Length](https://en.wikipedia.org/wiki/Minimum_description_length)
+[^2]: [Occam's Razor](https://en.wikipedia.org/wiki/Occam%27s_razor)
+[^3]: [Bimodal Distribution](https://en.wikipedia.org/wiki/Bimodal_distribution)
diff --git a/docs/content/methodology/trending/presentation.md b/docs/content/methodology/trending/presentation.md
new file mode 100644
index 0000000000..91bbef8db9
--- /dev/null
+++ b/docs/content/methodology/trending/presentation.md
@@ -0,0 +1,36 @@
+---
+title: "Presentation"
+weight: 2
+---
+
+# Trend Presentation
+
+## Failed tests
+
+The [Failed tests tables](https://csit.fd.io/news/) list the tests which failed
+during the last test run. Separate tables are generated for each testbed.
+
+## Regressions and progressions
+
+[These tables](https://csit.fd.io/news/) list tests which encountered
+a regression or progression during the specified time period, which is currently
+set to the last 1, 7, and 130 days.
+
+## Trendline Graphs
+
+[Trendline graphs](https://csit.fd.io/trending/) show measured per run averages
+of MRR values, NDR or PDR values, user-selected telemetry metrics, group average
+values, and detected anomalies. The graphs are constructed as follows:
+
+- X-axis represents the date in the format MMDD.
+- Y-axis represents run-average MRR value, NDR or PDR values in Mpps or selected
+ metrics. For PDR tests also a graph with average latency at 50% PDR [us] is
+ generated.
+- Markers to indicate anomaly classification:
+ - Regression - red circle.
+ - Progression - green circle.
+- The line shows average value of each group.
+
+In addition the graphs show dynamic labels while hovering over graph data
+points, presenting the CSIT build date, measured value, VPP reference, trend job
+build ID and the LF testbed ID.
diff --git a/docs/content/methodology/trending/previous.md b/docs/content/methodology/trending/previous.md
new file mode 100644
index 0000000000..5f402c42c4
--- /dev/null
+++ b/docs/content/methodology/trending/previous.md
@@ -0,0 +1,11 @@
+---
+title: "Previous"
+weight: 3
+---
+
+# Previous
+
+The previous version of
+[Continuous Performance Trending](https://s3-docs.fd.io/csit/master/trending/)
+is no more maintained nor updated. It displays valid but old data until the 18th
+of August 2022 when it was replaced by [CSIT-Dash](https://csit.fd.io/).
diff --git a/docs/content/overview/_index.md b/docs/content/overview/_index.md
new file mode 100644
index 0000000000..6c4d4210fd
--- /dev/null
+++ b/docs/content/overview/_index.md
@@ -0,0 +1,6 @@
+---
+bookCollapseSection: false
+bookFlatSection: true
+title: "Overview"
+weight: 1
+--- \ No newline at end of file
diff --git a/docs/content/overview/c_dash/_index.md b/docs/content/overview/c_dash/_index.md
new file mode 100644
index 0000000000..fdf583f377
--- /dev/null
+++ b/docs/content/overview/c_dash/_index.md
@@ -0,0 +1,6 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "CSIT-Dash"
+weight: 1
+--- \ No newline at end of file
diff --git a/docs/content/overview/c_dash/design.md b/docs/content/overview/c_dash/design.md
new file mode 100644
index 0000000000..ca985f993e
--- /dev/null
+++ b/docs/content/overview/c_dash/design.md
@@ -0,0 +1,16 @@
+---
+title: "Design"
+weight: 1
+---
+
+# Design
+
+From a test to the graph or table.
+
+## Tests
+
+## ETL Pipeline
+
+{{< figure src="/cdocs/csit_etl_for_uti_data_flow_simplified.svg" title="CSIT ETL pipeline for UTI data" >}}
+
+## Presentation
diff --git a/docs/content/overview/c_dash/structure.md b/docs/content/overview/c_dash/structure.md
new file mode 100644
index 0000000000..982655e984
--- /dev/null
+++ b/docs/content/overview/c_dash/structure.md
@@ -0,0 +1,111 @@
+---
+title: "Structure"
+weight: 2
+---
+
+# Structure
+
+CSIT-Dash provides customizable views on performance data. We can split it into
+two groups. The first one is performance trending, which displays data collected
+on daily (MRR) or weekly (NDRPDR) basis.
+The other one presents data coming from release testing. In addition, we publish
+also information and statistics about our test jobs, failures and anomalies and
+the CSIT documentation.
+The screen of CSIT-Dash is divided in two parts. On the left side, there is the
+control panel which makes possible to select required information. The right
+side then displays the user-selected data in graphs or tables.
+
+The structure of CSIT-Dash consist of:
+
+- Performance Trending
+- Per Release Performance
+- Per Release Performance Comparisons
+- Per Release Coverage Data
+- Test Job Statistics
+- Failures and Anomalies
+- Documentation
+
+## Performance Trending
+
+Performance trending shows measured per run averages of MRR values, NDR or PDR
+values, user-selected telemetry metrics, group average values, and detected
+anomalies.
+
+In addition, the graphs show dynamic labels while hovering over graph data
+points. By clicking on data samples, the user gets detailed information and for
+latency graphs also high dynamic range histogram of measured latency.
+Latency by percentile distribution plots are used to show packet latency
+percentiles at different packet rate load levels:
+- No-Load, latency streams only,
+- Low-Load at 10% PDR,
+- Mid-Load at 50% PDR and
+- High-Load at 90% PDR.
+
+## Per Release Performance
+
+Per release performance section presents the graphs based on the results data
+obtained from the release test jobs. In order to verify benchmark results
+repeatability, CSIT performance tests are executed multiple times (target: 10
+times) on each physical testbed type. Box-and-Whisker plots are used to display
+variations in measured throughput and latency (PDR tests only) values.
+
+In addition, the graphs show dynamic labels while hovering over graph data
+points. By clicking on data samples or the box, the user gets detailed
+information and for latency graphs also high dynamic range histogram of measured
+latency.
+Latency by percentile distribution plots are used to show packet latency
+percentiles at different packet rate load levels:
+- No-Load, latency streams only,
+- Low-Load at 10% PDR,
+- Mid-Load at 50% PDR and
+- High-Load at 90% PDR.
+
+## Per Release Performance Comparisons
+
+Relative comparison of packet throughput (NDR, PDR and MRR) and latency (PDR)
+between user-selected releases, test beds, NICs, ... is calculated from results
+of tests running on physical test beds, in 1-core, 2-core and 4-core
+configurations.
+
+Listed mean and standard deviation values are computed based on a series of the
+same tests executed against respective VPP releases to verify test results
+repeatability, with percentage change calculated for mean values. Note that the
+standard deviation is quite high for a small number of packet throughput tests,
+what indicates poor test results repeatability and makes the relative change of
+mean throughput value not fully representative for these tests. The root causes
+behind poor results repeatability vary between the test cases.
+
+## Per Release Coverage Data
+
+Detailed result tables generated from CSIT test job executions. The coverage
+tests include also tests which are not run in iterative performance builds.
+The tables present NDR and PDR packet throughput (packets per second and bits
+per second) and latency percentiles (microseconds) at different packet rate load
+levels:
+- No-Load, latency streams only,
+- Low-Load at 10% PDR,
+- Mid-Load at 50% PDR and
+- High-Load at 90% PDR.
+
+## Test Job Statistics
+
+The elementary statistical data (number of passed and failed tests and the
+duration) of all daily and weekly trending performance jobs.
+In addition, the graphs show dynamic labels while hovering over graph data
+points with detailed information. By clicking on the graph, user gets the job
+summary with the list of failed tests.
+
+## Failures and Anomalies
+
+The presented tables list:
+- last build summary,
+- failed tests,
+- progressions and
+- regressions
+
+for all daily and weekly trending performance jobs.
+
+## Documentation
+
+This documentation describing the methodology, infrastructure and release notes
+for each CSIT release.
diff --git a/docs/content/overview/csit/_index.md b/docs/content/overview/csit/_index.md
new file mode 100644
index 0000000000..167c872c0b
--- /dev/null
+++ b/docs/content/overview/csit/_index.md
@@ -0,0 +1,45 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "CSIT"
+weight: 2
+---
+
+# Continuous System Integration and Testing
+
+## CSIT Description
+
+1. Development of software code for fully automated VPP code testing,
+ functionality, performance, regression and new functions.
+2. Execution of CSIT test suites on VPP code running on LF FD.io virtual and
+ physical compute environments.
+3. Integration with FD.io continuous integration systems (Gerrit, Jenkins and
+ such).
+4. Identified existing FD.io project dependencies and interactions:
+ - vpp - Vector Packet Processing.
+ - ci-management - Management repo for Jenkins Job Builder, script and
+ management related to the Jenkins CI configuration.
+
+## Project Scope
+
+1. Automated regression testing of VPP code changes
+ - Functionality of VPP data plane, network control plane, management plane
+ against functional specifications.
+ - Performance of VPP data plane including non-drop-rate packet throughput
+ and delay, against established reference benchmarks.
+ - Performance of network control plane against established reference
+ benchmarks.
+ - Performance of management plane against established reference benchmarks.
+2. Test case definitions driven by supported and planned VPP functionality,
+ interfaces and performance:
+ - Uni-dimensional tests: Data plane, (Network) Control plane, Management
+ plane.
+ - Multi-dimensional tests: Use case driven.
+3. Integration with FD.io Continuous Integration system including FD.io Gerrit
+ and Jenkins
+ - Automated test execution triggered by VPP-VERIFY jobs other VPP and CSIT
+ project jobs.
+4. Integration with LF VPP test execution environment
+ - Functional tests execution on LF hosted VM environment.
+ - Performance and functional tests execution on LF hosted physical compute
+ environment.
diff --git a/docs/content/overview/csit/branching_strategy.md b/docs/content/overview/csit/branching_strategy.md
new file mode 100644
index 0000000000..16d8e0f471
--- /dev/null
+++ b/docs/content/overview/csit/branching_strategy.md
@@ -0,0 +1,109 @@
+---
+title: "Branching Strategy"
+weight: 6
+---
+
+# Branching Strategy
+
+## Definitions
+
+**CSIT development branch:** A CSIT branch used for test development which has a
+1:1 association with a VPP branch of the same name. CSIT development branches
+are never used for operational testing of VPP patches or images.
+
+**CSIT operational branch:** A CSIT branch pulled from a CSIT development or
+release branch which is used for operational testing of the VPP branch
+associated from its' parent branch. CSIT operational branches are named
+`oper-<YYMMDD>` for master and `oper-<release>-<YYMMDD>` for release branches.
+CSIT operational branches are the only branches which should be used to run
+verify jobs against VPP patches or images.
+
+**CSIT release branch:** A CSIT branch which is pulled from a development branch
+and is associated with a VPP release branch. CSIT release branches are never
+merged back into their parent branch and are never used for operational testing
+of VPP patches or images.
+
+## VPP Selection of CSIT Operational Branches
+
+Each VPP and release branch will have a script which specifies which CSIT
+operational branch is used when executing the per patch verify jobs. This is
+maintained in the VPP branch in the file
+`.../vpp/build-root/scripts/csit-test-branch`.
+
+## Branches
+
+### Main development branch: 'master'
+
+The CSIT development branch 'master' will be the main development for new VPP
+feature tests that have not been included in a release. Weekly CSIT operational
+branches will be pulled from 'master'. After validation of all CSIT verify jobs,
+the VPP script 'csit-test-branch' will be updated with the latest CSIT
+operational branch name. Older CSIT operational branches will be available for
+manual triggered vpp-csit-verify-* jobs.
+
+### Release branch: 'rls1606', 'rls1609', ...
+
+CSIT release branches shall be pulled from 'master' with the the convention
+`rls<release>` (e.g. rls1606, rls1609). New tests that are developed for
+existing VPP features will be committed into the 'master' branch, then
+cherry-picked|double committed into the latest CSIT release branch.
+Periodically CSIT operational branches will be pulled from the CSIT release
+branch when necessary and the VPP release branch updated to use the new CSIT
+operational branch.
+
+**VPP branch diagram:**
+
+ -- master --------------------------------------------------------------->
+ \ \
+ \--- stable/1606 ---[end] \--- stable/1609---[end]
+
+
+**CSIT branch diagram:**
+
+ /--- oper-rls1606-160623
+ / /--- oper-rls1606-$(DATE)
+ / / . . .
+ / / /--- oper-rls1609-$(DATE)
+ / / / . . .
+ /--- rls1606 ---[end] /--- rls1609 ---[end]
+ / / / /
+ / (cherry-picking) / (cherry-picking)
+ / / / /
+ -- master --------------------------------------------------------------->
+ \ \ . . .
+ \ \--- oper-$(DATE)
+ \--- oper-160710
+
+## Creating a CSIT Operational Branch
+
+### Run verify weekly job
+
+`csit-vpp-device-master-<OS>-<arch>-<testbed>-weekly` is run on the CSIT
+development or release branch (e.g. 'master' or 'stable/1606') using the latest
+VPP package set on nexus.fd.io for the associated VPP branch. Any anomalies will
+have the root cause identified and be resolved in the CSIT development branch
+prior to pulling the CSIT operational branch.
+
+### Pull CSIT operational branch from parent
+
+The CSIT operational branch is pulled from the parent CSIT development or
+release branch.
+
+### Run verify semiweekly job
+
+`csit-vpp-device-master-<OS>-<arch>-<testbed>-semiweekly` is run on the CSIT
+operational branch with the latest image of the associated VPP development or
+release branch. This job is run to validate the next reference VPP build for
+validating the results of all of the csit-vpp-verify* jobs.
+
+### Update VPP branch to use the new CSIT operational branch
+
+Push a patch updating the VPP branch to use the new CSIT operational branch. The
+VPP verify jobs will then be run and any anomalies will have the root cause
+identified and fixed in the CSIT operational branch prior to 'csit-test-branch'
+being merged.
+
+### Periodically lock/deprecate old CSIT Operational Branches
+
+Periodically old CSIT operational branches will be locked and/or deprecated to
+prevent changes being made to the operational branch.
diff --git a/docs/content/overview/csit/design.md b/docs/content/overview/csit/design.md
new file mode 100644
index 0000000000..f43d91a28e
--- /dev/null
+++ b/docs/content/overview/csit/design.md
@@ -0,0 +1,148 @@
+---
+title: "Design"
+weight: 1
+---
+
+# Design
+
+FD.io CSIT system design needs to meet continuously expanding requirements of
+FD.io projects including VPP, related sub-systems (e.g. plugin applications,
+DPDK drivers) and FD.io applications (e.g. DPDK applications), as well as
+growing number of compute platforms running those applications. With CSIT
+project scope and charter including both FD.io continuous testing AND
+performance trending/comparisons, those evolving requirements further amplify
+the need for CSIT framework modularity, flexibility and usability.
+
+## Design Hierarchy
+
+CSIT follows a hierarchical system design with SUTs and DUTs at the bottom level
+of the hierarchy, presentation level at the top level and a number of functional
+layers in-between. The current CSIT system design including CSIT framework is
+depicted in the figure below.
+
+{{< figure src="/cdocs/csit_design_picture.svg" title="CSIT Design" >}}
+
+A brief bottom-up description is provided here:
+
+1. SUTs, DUTs, TGs
+ - SUTs - Systems Under Test;
+ - DUTs - Devices Under Test;
+ - TGs - Traffic Generators;
+2. Level-1 libraries - Robot and Python
+ - Lowest level CSIT libraries abstracting underlying test environment, SUT,
+ DUT and TG specifics;
+ - Used commonly across multiple L2 KWs;
+ - Performance and functional tests:
+ - L1 KWs (KeyWords) are implemented as RF libraries and Python
+ libraries;
+ - Performance TG L1 KWs:
+ - All L1 KWs are implemented as Python libraries:
+ - Support for TRex only today;
+ - CSIT IXIA drivers in progress;
+ - Performance data plane traffic profiles:
+ - TG-specific stream profiles provide full control of:
+ - Packet definition - layers, MACs, IPs, ports, combinations thereof
+ e.g. IPs and UDP ports;
+ - Stream definitions - different streams can run together, delayed,
+ one after each other;
+ - Stream profiles are independent of CSIT framework and can be used
+ in any T-rex setup, can be sent anywhere to repeat tests with
+ exactly the same setup;
+ - Easily extensible - one can create a new stream profile that meets
+ tests requirements;
+ - Same stream profile can be used for different tests with the same
+ traffic needs;
+ - Functional data plane traffic scripts:
+ - Scapy specific traffic scripts;
+3. Level-2 libraries - Robot resource files:
+ - Higher level CSIT libraries abstracting required functions for executing
+ tests;
+ - L2 KWs are classified into the following functional categories:
+ - Configuration, test, verification, state report;
+ - Suite setup, suite teardown;
+ - Test setup, test teardown;
+4. Tests - Robot:
+ - Test suites with test cases;
+ - Performance tests using physical testbed environment:
+ - VPP;
+ - DPDK-Testpmd;
+ - DPDK-L3Fwd;
+ - TRex
+ - Tools:
+ - CSIT-Dash
+ - Testbed environment setup ansible playbooks;
+ - Operational debugging scripts;
+
+5. Test Lifecycle Abstraction
+
+A well coded test must follow a disciplined abstraction of the test
+lifecycles that includes setup, configuration, test and verification. In
+addition to improve test execution efficiency, the commmon aspects of
+test setup and configuration shared across multiple test cases should be
+done only once. Translating these high-level guidelines into the Robot
+Framework one arrives to definition of a well coded RF tests for FD.io
+CSIT. Anatomy of Good Tests for CSIT:
+
+1. Suite Setup - Suite startup Configuration common to all Test Cases in suite:
+ uses Configuration KWs, Verification KWs, StateReport KWs;
+2. Test Setup - Test startup Configuration common to multiple Test Cases: uses
+ Configuration KWs, StateReport KWs;
+3. Test Case - uses L2 KWs with RF Gherkin style:
+ - prefixed with {Given} - Verification of Test setup, reading state: uses
+ Configuration KWs, Verification KWs, StateReport KWs;
+ - prefixed with {When} - Test execution: Configuration KWs, Test KWs;
+ - prefixed with {Then} - Verification of Test execution, reading state: uses
+ Verification KWs, StateReport KWs;
+4. Test Teardown - post Test teardown with Configuration cleanup and
+ Verification common to multiple Test Cases - uses: Configuration KWs,
+ Verification KWs, StateReport KWs;
+5. Suite Teardown - Suite post-test Configuration cleanup: uses Configuration
+ KWs, Verification KWs, StateReport KWs;
+
+## RF Keywords Functional Classification
+
+CSIT RF KWs are classified into the functional categories matching the test
+lifecycle events described earlier. All CSIT RF L2 and L1 KWs have been grouped
+into the following functional categories:
+
+1. Configuration;
+2. Test;
+3. Verification;
+4. StateReport;
+5. SuiteSetup;
+6. TestSetup;
+7. SuiteTeardown;
+8. TestTeardown;
+
+## RF Keywords Naming Guidelines
+
+Readability counts: "..code is read much more often than it is written."
+Hence following a good and consistent grammar practice is important when
+writing Robot Framework KeyWords and Tests. All CSIT test cases
+are coded using Gherkin style and include only L2 KWs references. L2 KWs are
+coded using simple style and include L2 KWs, L1 KWs, and L1 python references.
+To improve readability, the proposal is to use the same grammar for both
+Robot Framework KW styles, and to formalize the grammar of English
+sentences used for naming the Robot Framework KWs. Robot
+Framework KWs names are short sentences expressing functional description of
+the command. They must follow English sentence grammar in one of the following
+forms:
+
+1. **Imperative** - verb-object(s): *"Do something"*, verb in base form.
+2. **Declarative** - subject-verb-object(s): *"Subject does something"*, verb in
+ a third-person singular present tense form.
+3. **Affirmative** - modal_verb-verb-object(s): *"Subject should be something"*,
+ *"Object should exist"*, verb in base form.
+4. **Negative** - modal_verb-Not-verb-object(s): *"Subject should not be
+ something"*, *"Object should not exist"*, verb in base form.
+
+Passive form MUST NOT be used. However a usage of past participle as an
+adjective is okay. See usage examples provided in the Coding guidelines
+section below. Following sections list applicability of the above
+grammar forms to different Robot Framework KW categories. Usage
+examples are provided, both good and bad.
+
+## Coding Guidelines
+
+Coding guidelines can be found on
+[Design optimizations wiki page](https://wiki.fd.io/view/CSIT/Design_Optimizations).
diff --git a/docs/content/overview/csit/suite_generation.md b/docs/content/overview/csit/suite_generation.md
new file mode 100644
index 0000000000..84a19b8ab9
--- /dev/null
+++ b/docs/content/overview/csit/suite_generation.md
@@ -0,0 +1,123 @@
+---
+title: "Suite Generation"
+weight: 5
+---
+
+# Suite Generation
+
+CSIT uses robot suite files to define tests. However, not all suite files
+available for Jenkins jobs (or manually started bootstrap scripts) are present
+in CSIT git repository. They are generated only when needed.
+
+## Autogen Library
+
+There is a code generation layer implemented as Python library called "autogen",
+called by various bash scripts.
+
+It generates the full extent of CSIT suites, using the ones in git as templates.
+
+## Sources
+
+The generated suites (and their contents) are affected by multiple information
+sources, listed below.
+
+### Git Suites
+
+The suites present in git repository act as templates for generating suites.
+One of autogen design principles is that any template suite should also act
+as a full suite (no placeholders).
+
+In practice, autogen always re-creates the template suite with exactly
+the same content, it is one of checks that autogen works correctly.
+
+### Regenerate Script
+
+Not all suites present in CSIT git repository act as template for autogen.
+The distinction is on per-directory level. Directories with
+`regenerate_testcases.py` script usually consider all suites as templates
+(unless possibly not included by the glob patten in the script).
+
+The script also specifies minimal frame size, indirectly, by specifying protocol
+(protocol "ip4" is the default, leading to 64B frame size).
+
+### Constants
+
+Values in `Constants.py` are taken into consideration when generating suites.
+The values are mostly related to different NIC models and NIC drivers.
+
+### Python Code
+
+Python code in `resources/libraries/python/autogen` contains several other
+information sources.
+
+#### Testcase Templates
+
+The test case part of template suite is ignored, test case lines
+are created according to text templates in `Testcase.py` file.
+
+#### Testcase Argument Lists
+
+Each testcase template has different number of "arguments", e.g. values
+to put into various placeholders. Different test types need different
+lists of the argument values, the lists are in `regenerate_glob` method
+in `Regenerator.py` file.
+
+#### Iteration Over Values
+
+Python code detects the test type (usually by substrings of suite file name),
+then iterates over different quantities based on type.
+For example, only ndrpdr suite templates generate other types (mrr and soak).
+
+#### Hardcoded Exclusions
+
+Some combinations of values are known not to work, so they are excluded.
+Examples: Density tests for too much CPUs; IMIX for ASTF.
+
+## Non-Sources
+
+Some information sources are available in CSIT repository,
+but do not affect the suites generated by autogen.
+
+### Testbeds
+
+Overall, no information visible in topology yaml files is taken into account
+by autogen.
+
+#### Testbed Architecture
+
+Historically, suite files are agnostic to testbed architecture, e.g. ICX or ALT.
+
+#### Testbed Size
+
+Historically, 2-node and 3-node suites have diferent names, and while
+most of the code is common, the differences are not always simple enough.
+Autogen treat 2-node and 3-node suites as independent templates.
+
+TRex suites are intended for a 1-node circuit of otherwise 2-node or 3-node
+testbeds, so they support all 3 robot tags.
+They are also detected and treated differently by autogen,
+mainly because they need different testcase arguments (no CPU count).
+Autogen does nothing specifically related to the fact they should run
+only in testbeds/NICs with TG-TG line available.
+
+#### Other Topology Info
+
+Some bonding tests need two (parallel) links between DUTs. Autogen does not
+care, as suites are agnostic. Robot tag marks the difference, but the link
+presence is not explicitly checked.
+
+### Job specs
+
+Information in job spec files depend on generated suites (not the other way).
+Autogen should generate more suites, as job spec is limited by time budget.
+More suites should be available for manually triggered verify jobs,
+so autogen covers that.
+
+### Bootstrap Scripts
+
+Historically, bootstrap scripts perform some logic,
+perhaps adding exclusion options to Robot invocation
+(e.g. skipping testbed+NIC combinations for tests that need parallel links).
+
+Once again, the logic here relies on what autogen generates,
+autogen does not look into bootstrap scripts.
diff --git a/docs/content/overview/csit/test_naming.md b/docs/content/overview/csit/test_naming.md
new file mode 100644
index 0000000000..d7a32518e5
--- /dev/null
+++ b/docs/content/overview/csit/test_naming.md
@@ -0,0 +1,112 @@
+---
+title: "Test Naming"
+weight: 3
+---
+
+# Test Naming
+
+## Background
+
+{{< release_csit >}} follows a common structured naming convention for all
+performance and system functional tests, introduced in CSIT 17.01.
+
+The naming should be intuitive for majority of the tests. Complete
+description of CSIT test naming convention is provided on
+[CSIT test naming wiki page](https://wiki.fd.io/view/CSIT/csit-test-naming).
+Below few illustrative examples of the naming usage for test suites across CSIT
+performance, functional and Honeycomb management test areas.
+
+## Naming Convention
+
+The CSIT approach is to use tree naming convention and to encode following
+testing information into test suite and test case names:
+
+1. packet network port configuration
+ * port type, physical or virtual;
+ * number of ports;
+ * NIC model, if applicable;
+ * port-NIC locality, if applicable;
+2. packet encapsulations;
+3. VPP packet processing
+ * packet forwarding mode;
+ * packet processing function(s);
+4. packet forwarding path
+ * if present, network functions (processes, containers, VMs) and their
+ topology within the computer;
+5. main measured variable, type of test.
+
+Proposed convention is to encode ports and NICs on the left (underlay),
+followed by outer-most frame header, then other stacked headers up to the
+header processed by vSwitch-VPP, then VPP forwarding function, then encap on
+vhost interface, number of vhost interfaces, number of VMs. If chained VMs
+present, they get added on the right. Test topology is expected to be
+symmetric, in other words packets enter and leave SUT through ports specified
+on the left of the test name. Here some examples to illustrate the convention
+followed by the complete legend, and tables mapping the new test filenames to
+old ones.
+
+## Naming Examples
+
+CSIT test suite naming examples (filename.robot) for common tested VPP
+topologies:
+
+1. **Physical port to physical port - a.k.a. NIC-to-NIC, Phy-to-Phy, P2P**
+ * *PortNICConfig-WireEncapsulation-PacketForwardingFunction-
+ PacketProcessingFunction1-...-PacketProcessingFunctionN-TestType*
+ * *10ge2p1x520-dot1q-l2bdbasemaclrn-ndrdisc.robot* => 2 ports of 10GE on
+ Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain baseline switching
+ with MAC learning, NDR throughput discovery.
+ * *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrchk.robot* => 2 ports of 10GE on
+ Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain baseline switching
+ with MAC learning, NDR throughput discovery.
+ * *10ge2p1x520-ethip4-ip4base-ndrdisc.robot* => 2 ports of 10GE on Intel x520
+ NIC, IPv4 baseline routed forwarding, NDR throughput discovery.
+ * *10ge2p1x520-ethip6-ip6scale200k-ndrdisc.robot* => 2 ports of 10GE on Intel
+ x520 NIC, IPv6 scaled up routed forwarding, NDR throughput discovery.
+ * *10ge2p1x520-ethip4-ip4base-iacldstbase-ndrdisc.robot* => 2 ports of 10GE
+ on Intel x520 NIC, IPv4 baseline routed forwarding, ingress Access Control
+ Lists baseline matching on destination, NDR throughput discovery.
+ * *40ge2p1vic1385-ethip4-ip4base-ndrdisc.robot* => 2 ports of 40GE on Cisco
+ vic1385 NIC, IPv4 baseline routed forwarding, NDR throughput discovery.
+ * *eth2p-ethip4-ip4base-func.robot* => 2 ports of Ethernet, IPv4 baseline
+ routed forwarding, functional tests.
+
+2. **Physical port to VM (or VM chain) to physical port - a.k.a. NIC2VM2NIC,
+ P2V2P, NIC2VMchain2NIC, P2V2V2P**
+ * *PortNICConfig-WireEncapsulation-PacketForwardingFunction-
+ PacketProcessingFunction1-...-PacketProcessingFunctionN-VirtEncapsulation-
+ VirtPortConfig-VMconfig-TestType*
+ * *10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2 ports
+ of 10GE on Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain
+ switching to/from two vhost interfaces and one VM, NDR throughput
+ discovery.
+ * *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2
+ ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain
+ switching to/from two vhost interfaces and one VM, NDR throughput
+ discovery.
+ * *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-4vhost-2vm-ndrdisc.robot* => 2
+ ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain
+ switching to/from four vhost interfaces and two VMs, NDR throughput
+ discovery.
+ * *eth2p-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-func.robot* => 2 ports of
+ Ethernet, IPv4 VXLAN Ethernet, L2 bridge-domain switching to/from two vhost
+ interfaces and one VM, functional tests.
+
+3. **API CRUD tests - Create (Write), Read (Retrieve), Update (Modify), Delete
+ (Destroy) operations for configuration and operational data**
+ * *ManagementTestKeyword-ManagementOperation-ManagedFunction1-...-
+ ManagedFunctionN-ManagementAPI1-ManagementAPIN-TestType*
+ * *mgmt-cfg-lisp-apivat-func* => configuration of LISP with VAT API calls,
+ functional tests.
+ * *mgmt-cfg-l2bd-apihc-apivat-func* => configuration of L2 Bridge-Domain with
+ Honeycomb API and VAT API calls, functional tests.
+ * *mgmt-oper-int-apihcnc-func* => reading status and operational data of
+ interface with Honeycomb NetConf API calls, functional tests.
+ * *mgmt-cfg-int-tap-apihcnc-func* => configuration of tap interfaces with
+ Honeycomb NetConf API calls, functional tests.
+ * *mgmt-notif-int-subint-apihcnc-func* => notifications of interface and
+ sub-interface events with Honeycomb NetConf Notifications, functional
+ tests.
+
+For complete description of CSIT test naming convention please refer to
+[CSIT test naming wiki page](https://wiki.fd.io/view/CSIT/csit-test-naming).
diff --git a/docs/content/overview/csit/test_scenarios.md b/docs/content/overview/csit/test_scenarios.md
new file mode 100644
index 0000000000..1f06765eae
--- /dev/null
+++ b/docs/content/overview/csit/test_scenarios.md
@@ -0,0 +1,66 @@
+---
+title: "Test Scenarios"
+weight: 2
+---
+
+# Test Scenarios
+
+FD.io CSIT Dashboard includes multiple test scenarios of VPP
+centric applications, topologies and use cases. In addition it also
+covers baseline tests of DPDK sample applications. Tests are executed in
+physical (performance tests) and virtual environments (functional
+tests).
+
+Brief overview of test scenarios covered in this documentation:
+
+1. **VPP Performance**: VPP performance tests are executed in physical
+ FD.io testbeds, focusing on VPP network data plane performance in
+ NIC-to-NIC switching topologies. VPP application runs in
+ bare-metal host user-mode handling NICs. TRex is used as a traffic generator.
+
+2. **VPP Vhostuser Performance with KVM VMs**: VPP VM service switching
+ performance tests using vhostuser virtual interface for
+ interconnecting multiple NF-in-VM instances. VPP vswitch
+ instance runs in bare-metal user-mode handling NICs and connecting
+ over vhost-user interfaces to VM instances each running VPP with virtio
+ virtual interfaces. Similarly to VPP Performance, tests are run across a
+ range of configurations. TRex is used as a traffic generator.
+
+3. **VPP Memif Performance with LXC and Docker Containers**: VPP
+ Container service switching performance tests using memif virtual
+ interface for interconnecting multiple VPP-in-container instances.
+ VPP vswitch instance runs in bare-metal user-mode handling NICs and
+ connecting over memif (Slave side) interfaces to more instances of
+ VPP running in LXC or in Docker Containers, both with memif
+ interfaces (Master side). Similarly to VPP Performance, tests are
+ run across a range of configurations. TRex is used as a traffic
+ generator.
+
+4. **DPDK Performance**: VPP uses DPDK to drive the NICs and physical
+ interfaces. DPDK performance tests are used as a baseline to
+ profile performance of the DPDK sub-system. Two DPDK applications
+ are tested: Testpmd and L3fwd. DPDK tests are executed in the same
+ testing environment as VPP tests. DPDK Testpmd and L3fwd
+ applications run in host user-mode. TRex is used as a traffic
+ generator.
+
+5. **T-Rex Performance**: T-Rex perfomance tests are executed in physical
+ FD.io testbeds, focusing on T-Rex data plane performance in NIC-to-NIC
+ loopback topologies.
+
+6. **VPP Functional**: VPP functional tests are executed in virtual
+ FD.io testbeds, focusing on VPP packet processing functionality,
+ including both network data plane and in-line control plane. Tests
+ cover vNIC-to-vNIC vNIC-to-nestedVM-to-vNIC forwarding topologies.
+ Scapy is used as a traffic generator.
+
+All CSIT test data included in this report is auto-generated from Robot
+Framework json output files produced by Linux Foundation FD.io Jenkins jobs
+executed against {{< release_vpp >}} artifacts.
+
+FD.io CSIT system is developed using two main coding platforms: Robot
+Framework and Python. {{< release_csit >}} source code for the executed test
+suites is available in corresponding CSIT branch in the directory
+`./tests/<name_of_the_test_suite>`. A local copy of CSIT source code
+can be obtained by cloning CSIT git repository - `git clone
+https://gerrit.fd.io/r/csit`.
diff --git a/docs/content/overview/csit/test_tags.md b/docs/content/overview/csit/test_tags.md
new file mode 100644
index 0000000000..de38945c17
--- /dev/null
+++ b/docs/content/overview/csit/test_tags.md
@@ -0,0 +1,876 @@
+---
+title: "Test Tags"
+weight: 4
+---
+
+# Test Tags
+
+All CSIT test cases are labelled with Robot Framework tags used to allow for
+easy test case type identification, test case grouping and selection for
+execution. Following sections list currently used CSIT tags and their
+descriptions.
+
+## Testbed Topology Tags
+
+**2_NODE_DOUBLE_LINK_TOPO**
+
+ 2 nodes connected in a circular topology with two links interconnecting
+ the devices.
+
+**2_NODE_SINGLE_LINK_TOPO**
+
+ 2 nodes connected in a circular topology with at least one link
+ interconnecting devices.
+
+**3_NODE_DOUBLE_LINK_TOPO**
+
+ 3 nodes connected in a circular topology with two links interconnecting
+ the devices.
+
+**3_NODE_SINGLE_LINK_TOPO**
+
+ 3 nodes connected in a circular topology with at least one link
+ interconnecting devices.
+
+## Objective Tags
+
+**SKIP_PATCH**
+
+ Test case(s) marked to not run in case of vpp-csit-verify (i.e. VPP
+ patch) and csit-vpp-verify jobs (i.e. CSIT patch).
+
+**SKIP_VPP_PATCH**
+
+ Test case(s) marked to not run in case of vpp-csit-verify (i.e. VPP
+ patch).
+
+## Environment Tags
+
+**HW_ENV**
+
+ DUTs and TGs are running on bare metal.
+
+**VM_ENV**
+
+ DUTs and TGs are running in virtual environment.
+
+**VPP_VM_ENV**
+
+ DUTs with VPP and capable of running Virtual Machine.
+
+## NIC Model Tags
+
+**NIC_Intel-X520-DA2**
+
+ Intel X520-DA2 NIC.
+
+**NIC_Intel-XL710**
+
+ Intel XL710 NIC.
+
+**NIC_Intel-X710**
+
+ Intel X710 NIC.
+
+**NIC_Intel-XXV710**
+
+ Intel XXV710 NIC.
+
+**NIC_Cisco-VIC-1227**
+
+ VIC-1227 by Cisco.
+
+**NIC_Cisco-VIC-1385**
+
+ VIC-1385 by Cisco.
+
+**NIC_Amazon-Nitro-50G**
+
+ Amazon EC2 ENA NIC.
+
+## Scaling Tags
+
+**FIB_20K**
+
+ 2x10,000 entries in single fib table
+
+**FIB_200K**
+
+ 2x100,000 entries in single fib table
+
+**FIB_1M**
+
+ 2x500,000 entries in single fib table
+
+**FIB_2M**
+
+ 2x1,000,000 entries in single fib table
+
+**L2BD_1**
+
+ Test with 1 L2 bridge domain.
+
+**L2BD_10**
+
+ Test with 10 L2 bridge domains.
+
+**L2BD_100**
+
+ Test with 100 L2 bridge domains.
+
+**L2BD_1K**
+
+ Test with 1000 L2 bridge domains.
+
+**VLAN_1**
+
+ Test with 1 VLAN sub-interface.
+
+**VLAN_10**
+
+ Test with 10 VLAN sub-interfaces.
+
+**VLAN_100**
+
+ Test with 100 VLAN sub-interfaces.
+
+**VLAN_1K**
+
+ Test with 1000 VLAN sub-interfaces.
+
+**VXLAN_1**
+
+ Test with 1 VXLAN tunnel.
+
+**VXLAN_10**
+
+ Test with 10 VXLAN tunnels.
+
+**VXLAN_100**
+
+ Test with 100 VXLAN tunnels.
+
+**VXLAN_1K**
+
+ Test with 1000 VXLAN tunnels.
+
+**TNL_{t}**
+
+ IPSec in tunnel mode - {t} tunnels.
+
+**SRC_USER_{u}**
+
+ Traffic flow with {u} unique IPs (users) in one direction.
+ {u}=(1,10,100,1000,2000,4000).
+
+**100_FLOWS**
+
+ Traffic stream with 100 unique flows (10 IPs/users x 10 UDP ports) in
+ one direction.
+
+**10k_FLOWS**
+
+ Traffic stream with 10 000 unique flows (10 IPs/users x 1000 UDP ports)
+ in one direction.
+
+**100k_FLOWS**
+
+ Traffic stream with 100 000 unique flows (100 IPs/users x 1000 UDP
+ ports) in one direction.
+
+**HOSTS_{h}**
+
+ Stateless or stateful traffic stream with {h} client source IP4
+ addresses, usually with 63 flow differing in source port number.
+ Could be UDP or TCP. If NAT is used, the clients are inside.
+ Outside IP range can differ.
+ {h}=(1024,4096,16384,65536,262144).
+
+**GENEVE4_{t}TUN**
+
+ Test with {t} GENEVE IPv4 tunnel.
+ {t}=(1,4,16,64,256,1024)
+
+## Test Category Tags
+
+**DEVICETEST**
+
+ All vpp_device functional test cases.
+
+**PERFTEST**
+
+ All performance test cases.
+
+## VPP Device Type Tags
+
+**SCAPY**
+
+ All test cases that uses Scapy for packet generation and validation.
+
+## Performance Type Tags
+
+**NDRPDR**
+
+ Single test finding both No Drop Rate and Partial Drop Rate
+ simultaneously. The search is done by optimized algorithm which
+ performs multiple trial runs at different durations and transmit
+ rates. The results come from the final trials, which have duration
+ of 30 seconds.
+
+**MRR**
+
+ Performance tests where TG sends the traffic at maximum rate (line rate)
+ and reports total sent/received packets over trial duration.
+ The result is an average of 10 trials of 1 second duration.
+
+**SOAK**
+
+ Performance tests using PLRsearch to find the critical load.
+
+**RECONF**
+
+ Performance tests aimed to measure lost packets (time) when performing
+ reconfiguration while full throughput offered load is applied.
+
+## Ethernet Frame Size Tags
+
+These are describing the traffic offered by Traffic Generator,
+"primary" traffic in case of asymmetric load.
+For traffic between DUTs, or for "secondary" traffic, see ${overhead} value.
+
+**{b}B**
+
+ {b} Bytes frames used for test.
+
+**IMIX**
+
+ IMIX frame sequence (28x 64B, 16x 570B, 4x 1518B) used for test.
+
+## Test Type Tags
+
+**BASE**
+
+ Baseline test cases, no encapsulation, no feature(s) configured in tests.
+ No scaling whatsoever, beyond minimum needed for RSS.
+
+**IP4BASE**
+
+ IPv4 baseline test cases, no encapsulation, no feature(s) configured in
+ tests. Minimal number of routes. Other quantities may be scaled.
+
+**IP6BASE**
+
+ IPv6 baseline test cases, no encapsulation, no feature(s) configured in
+ tests.
+
+**L2XCBASE**
+
+ L2XC baseline test cases, no encapsulation, no feature(s) configured in
+ tests.
+
+**L2BDBASE**
+
+ L2BD baseline test cases, no encapsulation, no feature(s) configured in
+ tests.
+
+**L2PATCH**
+
+ L2PATCH baseline test cases, no encapsulation, no feature(s) configured
+ in tests.
+
+**SCALE**
+
+ Scale test cases. Other tags specify which quantities are scaled.
+ Also applies if scaling is set on TG only (e.g. DUT works as IP4BASE).
+
+**ENCAP**
+
+ Test cases where encapsulation is used. Use also encapsulation tag(s).
+
+**FEATURE**
+
+ At least one feature is configured in test cases. Use also feature
+ tag(s).
+
+**UDP**
+
+ Tests which use any kind of UDP traffic (STL or ASTF profile).
+
+**TCP**
+
+ Tests which use any kind of TCP traffic (STL or ASTF profile).
+
+**TREX**
+
+ Tests which test trex traffic without any software DUTs in the
+ traffic path.
+
+**UDP_UDIR**
+
+ Tests which use unidirectional UDP traffic (STL profile only).
+
+**UDP_BIDIR**
+
+ Tests which use bidirectional UDP traffic (STL profile only).
+
+**UDP_CPS**
+
+ Tests which measure connections per second on minimal UDP
+ pseudoconnections. This implies ASTF traffic profile is used.
+
+**TCP_CPS**
+
+ Tests which measure connections per second on empty TCP connections.
+ This implies ASTF traffic profile is used.
+
+**TCP_RPS**
+
+ Tests which measure requests per second on empty TCP connections.
+ This implies ASTF traffic profile is used.
+
+**UDP_PPS**
+
+ Tests which measure packets per second on lightweight UDP transactions.
+ This implies ASTF traffic profile is used.
+
+**TCP_PPS**
+
+ Tests which measure packets per second on lightweight TCP transactions.
+ This implies ASTF traffic profile is used.
+
+**HTTP**
+
+ Tests which use traffic formed of valid HTTP requests (and responses).
+
+**LDP_NGINX**
+
+ LDP NGINX is un-modified NGINX with VPP via LD_PRELOAD.
+
+**NF_DENSITY**
+
+ Performance tests that measure throughput of multiple VNF and CNF
+ service topologies at different service densities.
+
+## NF Service Density Tags
+
+**CHAIN**
+
+ NF service density tests with VNF or CNF service chain topology(ies).
+
+**PIPE**
+
+ NF service density tests with CNF service pipeline topology(ies).
+
+**NF_L3FWDIP4**
+
+ NF service density tests with DPDK l3fwd IPv4 routing as NF workload.
+
+**NF_VPPIP4**
+
+ NF service density tests with VPP IPv4 routing as NF workload.
+
+**{r}R{c}C**
+
+ Service density matrix locator {r}R{c}C, {r}Row denoting number of
+ service instances, {c}Column denoting number of NFs per service
+ instance.
+ {r}=(1,2,4,6,8,10), {c}=(1,2,4,6,8,10).
+
+**{n}VM{t}T**
+
+ Service density {n}VM{t}T, {n}Number of NF Qemu VMs, {t}Number of
+ threads per NF.
+
+**{n}DCR{t}T**
+
+ Service density {n}DCR{t}T, {n}Number of NF Docker containers,
+ {t}Number of threads per NF.
+
+**{n}_ADDED_CHAINS**
+
+ {n}Number of chains (or pipelines) added (and/or removed)
+ during RECONF test.
+
+## Forwarding Mode Tags
+
+**L2BDMACSTAT**
+
+ VPP L2 bridge-domain, L2 MAC static.
+
+**L2BDMACLRN**
+
+ VPP L2 bridge-domain, L2 MAC learning.
+
+**L2XCFWD**
+
+ VPP L2 point-to-point cross-connect.
+
+**IP4FWD**
+
+ VPP IPv4 routed forwarding.
+
+**IP6FWD**
+
+ VPP IPv6 routed forwarding.
+
+**LOADBALANCER_MAGLEV**
+
+ VPP Load balancer maglev mode.
+
+**LOADBALANCER_L3DSR**
+
+ VPP Load balancer l3dsr mode.
+
+**LOADBALANCER_NAT4**
+
+ VPP Load balancer nat4 mode.
+
+**N2N**
+
+ Mode, where NICs from the same physical server are directly
+ connected with a cable.
+
+## Underlay Tags
+
+**IP4UNRLAY**
+
+ IPv4 underlay.
+
+**IP6UNRLAY**
+
+ IPv6 underlay.
+
+**MPLSUNRLAY**
+
+ MPLS underlay.
+
+## Overlay Tags
+
+**L2OVRLAY**
+
+ L2 overlay.
+
+**IP4OVRLAY**
+
+ IPv4 overlay (IPv4 payload).
+
+**IP6OVRLAY**
+
+ IPv6 overlay (IPv6 payload).
+
+## Tagging Tags
+
+**DOT1Q**
+
+ All test cases with dot1q.
+
+**DOT1AD**
+
+ All test cases with dot1ad.
+
+## Encapsulation Tags
+
+**ETH**
+
+ All test cases with base Ethernet (no encapsulation).
+
+**LISP**
+
+ All test cases with LISP.
+
+**LISPGPE**
+
+ All test cases with LISP-GPE.
+
+**LISP_IP4o4**
+
+ All test cases with LISP_IP4o4.
+
+**LISPGPE_IP4o4**
+
+ All test cases with LISPGPE_IP4o4.
+
+**LISPGPE_IP6o4**
+
+ All test cases with LISPGPE_IP6o4.
+
+**LISPGPE_IP4o6**
+
+ All test cases with LISPGPE_IP4o6.
+
+**LISPGPE_IP6o6**
+
+ All test cases with LISPGPE_IP6o6.
+
+**VXLAN**
+
+ All test cases with Vxlan.
+
+**VXLANGPE**
+
+ All test cases with VXLAN-GPE.
+
+**GRE**
+
+ All test cases with GRE.
+
+**GTPU**
+
+ All test cases with GTPU.
+
+**GTPU_HWACCEL**
+
+ All test cases with GTPU_HWACCEL.
+
+**IPSEC**
+
+ All test cases with IPSEC.
+
+**WIREGUARD**
+
+ All test cases with WIREGUARD.
+
+**SRv6**
+
+ All test cases with Segment routing over IPv6 dataplane.
+
+**SRv6_1SID**
+
+ All SRv6 test cases with single SID.
+
+**SRv6_2SID_DECAP**
+
+ All SRv6 test cases with two SIDs and with decapsulation.
+
+**SRv6_2SID_NODECAP**
+
+ All SRv6 test cases with two SIDs and without decapsulation.
+
+**GENEVE**
+
+ All test cases with GENEVE.
+
+**GENEVE_L3MODE**
+
+ All test cases with GENEVE tunnel in L3 mode.
+
+**FLOW**
+
+ All test cases with FLOW.
+
+**FLOW_DIR**
+
+ All test cases with FLOW_DIR.
+
+**FLOW_RSS**
+
+ All test cases with FLOW_RSS.
+
+**NTUPLE**
+
+ All test cases with NTUPLE.
+
+**L2TPV3**
+
+ All test cases with L2TPV3.
+
+**REASSEMBLY**
+
+ All encap/decap tests where MTU induces IP fragmentation and reassembly.
+
+## Interface Tags
+
+**PHY**
+
+ All test cases which use physical interface(s).
+
+**GSO**
+
+ All test cases which uses Generic Segmentation Offload.
+
+**VHOST**
+
+ All test cases which uses VHOST.
+
+**VHOST_1024**
+
+ All test cases which uses VHOST DPDK driver with qemu queue size set
+ to 1024.
+
+**VIRTIO**
+
+ All test cases which uses VIRTIO native VPP driver.
+
+**VIRTIO_1024**
+
+ All test cases which uses VIRTIO native VPP driver with qemu queue
+ size set to 1024.
+
+**CFS_OPT**
+
+ All test cases which uses VM with optimised scheduler policy.
+
+**TUNTAP**
+
+ All test cases which uses TUN and TAP.
+
+**AFPKT**
+
+ All test cases which uses AFPKT.
+
+**NETMAP**
+
+ All test cases which uses Netmap.
+
+**MEMIF**
+
+ All test cases which uses Memif.
+
+**SINGLE_MEMIF**
+
+ All test cases which uses only single Memif connection per DUT. One DUT
+ instance is running in container having one physical interface exposed
+ to container.
+
+**LBOND**
+
+ All test cases which uses link bonding (BondEthernet interface).
+
+**LBOND_DPDK**
+
+ All test cases which uses DPDK link bonding.
+
+**LBOND_VPP**
+
+ All test cases which uses VPP link bonding.
+
+**LBOND_MODE_XOR**
+
+ All test cases which uses link bonding with mode XOR.
+
+**LBOND_MODE_LACP**
+
+ All test cases which uses link bonding with mode LACP.
+
+**LBOND_LB_L34**
+
+ All test cases which uses link bonding with load-balance mode l34.
+
+**LBOND_{n}L**
+
+ All test cases which use {n} link(s) for link bonding.
+
+**DRV_{d}**
+
+ All test cases which NIC Driver for DUT is set to {d}.
+ Default is VFIO_PCI.
+ {d}=(AVF, RDMA_CORE, VFIO_PCI, AF_XDP).
+
+**TG_DRV_{d}**
+
+ All test cases which NIC Driver for TG is set to {d}.
+ Default is IGB_UIO.
+ {d}=(RDMA_CORE, IGB_UIO).
+
+**RXQ_SIZE_{n}**
+
+ All test cases which RXQ size (RX descriptors) are set to {n}.
+ Default is 0, which means VPP (API) default.
+
+**TXQ_SIZE_{n}**
+
+ All test cases which TXQ size (TX descriptors) are set to {n}.
+ Default is 0, which means VPP (API) default.
+
+## Feature Tags
+
+**IACLDST**
+
+ iACL destination.
+
+**ADLALWLIST**
+
+ ADL allowlist.
+
+**NAT44**
+
+ NAT44 configured and tested.
+
+**NAT64**
+
+ NAT44 configured and tested.
+
+**ACL**
+
+ ACL plugin configured and tested.
+
+**IACL**
+
+ ACL plugin configured and tested on input path.
+
+**OACL**
+
+ ACL plugin configured and tested on output path.
+
+**ACL_STATELESS**
+
+ ACL plugin configured and tested in stateless mode
+ (permit action).
+
+**ACL_STATEFUL**
+
+ ACL plugin configured and tested in stateful mode
+ (permit+reflect action).
+
+**ACL1**
+
+ ACL plugin configured and tested with 1 not-hitting ACE.
+
+**ACL10**
+
+ ACL plugin configured and tested with 10 not-hitting ACEs.
+
+**ACL50**
+
+ ACL plugin configured and tested with 50 not-hitting ACEs.
+
+**SRv6_PROXY**
+
+ SRv6 endpoint to SR-unaware appliance via proxy.
+
+**SRv6_PROXY_STAT**
+
+ SRv6 endpoint to SR-unaware appliance via static proxy.
+
+**SRv6_PROXY_DYN**
+
+ SRv6 endpoint to SR-unaware appliance via dynamic proxy.
+
+**SRv6_PROXY_MASQ**
+
+ SRv6 endpoint to SR-unaware appliance via masquerading proxy.
+
+## Encryption Tags
+
+**IPSECSW**
+
+ Crypto in software.
+
+**IPSECHW**
+
+ Crypto in hardware.
+
+**IPSECTRAN**
+
+ IPSec in transport mode.
+
+**IPSECTUN**
+
+ IPSec in tunnel mode.
+
+**IPSECINT**
+
+ IPSec in interface mode.
+
+**AES**
+
+ IPSec using AES algorithms.
+
+**AES_128_CBC**
+
+ IPSec using AES 128 CBC algorithms.
+
+**AES_128_GCM**
+
+ IPSec using AES 128 GCM algorithms.
+
+**AES_256_GCM**
+
+ IPSec using AES 256 GCM algorithms.
+
+**HMAC**
+
+ IPSec using HMAC integrity algorithms.
+
+**HMAC_SHA_256**
+
+ IPSec using HMAC SHA 256 integrity algorithms.
+
+**HMAC_SHA_512**
+
+ IPSec using HMAC SHA 512 integrity algorithms.
+
+**SCHEDULER**
+
+ IPSec using crypto sw scheduler engine.
+
+**FASTPATH**
+
+ IPSec policy mode with spd fast path enabled.
+
+## Client-Workload Tags
+
+**VM**
+
+ All test cases which use at least one virtual machine.
+
+**LXC**
+
+ All test cases which use Linux container and LXC utils.
+
+**DRC**
+
+ All test cases which use at least one Docker container.
+
+**DOCKER**
+
+ All test cases which use Docker as container manager.
+
+**APP**
+
+ All test cases with specific APP use.
+
+## Container Orchestration Tags
+
+**{n}VSWITCH**
+
+ {n} VPP running in {n} Docker container(s) acting as a VSWITCH.
+ {n}=(1).
+
+**{n}VNF**
+
+ {n} VPP running in {n} Docker container(s) acting as a VNF work load.
+ {n}=(1).
+
+## Multi-Threading Tags
+
+**STHREAD**
+
+ Dynamic tag.
+ All test cases using single poll mode thread.
+
+**MTHREAD**
+
+ Dynamic tag.
+ All test cases using more then one poll mode driver thread.
+
+**{n}NUMA**
+
+ All test cases with packet processing on {n} socket(s). {n}=(1,2).
+
+**{c}C**
+
+ {c} worker thread pinned to {c} dedicated physical core; or if
+ HyperThreading is enabled, {c}*2 worker threads each pinned to
+ a separate logical core within 1 dedicated physical core. Main
+ thread pinned to core 1.
+ {t}=(1,2,4).
+
+**{t}T{c}C**
+
+ *Dynamic tag*.
+ {t} worker threads pinned to {c} dedicated physical cores. Main thread
+ pinned to core 1. By default CSIT is configuring same amount of receive
+ queues per interface as worker threads.
+ {t}=(1,2,4,8),
+ {c}=(1,2,4).
diff --git a/docs/content/release_notes/_index.md b/docs/content/release_notes/_index.md
new file mode 100644
index 0000000000..3a8318d09f
--- /dev/null
+++ b/docs/content/release_notes/_index.md
@@ -0,0 +1,6 @@
+---
+bookCollapseSection: false
+bookFlatSection: true
+title: "Release Notes"
+weight: 3
+---
diff --git a/docs/content/release_notes/current/_index.md b/docs/content/release_notes/current/_index.md
new file mode 100644
index 0000000000..6e1512d0ee
--- /dev/null
+++ b/docs/content/release_notes/current/_index.md
@@ -0,0 +1,121 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "CSIT rls2402"
+weight: 1
+---
+
+# CSIT-2402 Release Report
+
+This section will include release notes for FD.io CSIT-2402. The CSIT report
+will be published on **Mar-13 2024**. The release plan is published on
+[CSIT wiki](https://wiki.fd.io/view/CSIT/csit2402_plan) pages.
+
+The release notes of the previous CSIT release can be found
+[here]({{< relref "../previous/csit_rls2310" >}}).
+
+## CSIT-2402 Release Notes
+
+- [VPP Performance]({{< relref "vpp_performance" >}})
+- [DPDK Performance]({{< relref "dpdk_performance" >}})
+- [TRex Performance]({{< relref "trex_performance" >}})
+- [VPP Device]({{< relref "vpp_device" >}})
+
+## CSIT-2402 Release Data
+
+To access CSIT-2402 Release data please use following web resources:
+
+- [CSIT Per Release Performance](https://csit.fd.io/report/)
+ - `CSIT Release` > `rls2402`
+ - `DUT` > `vpp`
+ - `DUT Version` > `24.02-release`
+ - `Infra` > `testbed-nic-driver of choice`
+ - `Area` > `IPv4 Routing` `IPv4 Tunnels` `IPv6 Routing` `Hoststack` ...
+ - `Test` > `test of chioce`
+ - `Frame Size` > `64B` `78B`
+ - `Number of Cores` > `1C` `2C` `4C`
+ - `Test Type` > `MRR` `NDR` `PDR`
+- [CSIT Per Release Comparisons](https://csit.fd.io/comparisons/) for VPP
+ v24.02 vs v23.10
+ - `REFERENCE VALUE`
+ - `DUT` > `vpp`
+ - `CSIT and DUT version` > `rls2402-23.10-release`
+ - `Infra` > `testbed-nic-driver of choice`
+ - `Frame Size` > `64B` `78B`
+ - `Number of Cores` > `1C` `2C` `4C`
+ - `Measurement` > `Latency` `MRR` `NDR` `PDR`
+ - `COMPARED VALUE`
+ - `Parameter` > `Release and Version`
+ - `Value` > `rls2402-24.02-release`
+- [CSIT Per Release Coverage Data](https://csit.fd.io/coverage/)
+ - `CSIT Release` > `rls2402`
+- [CSIT Search Tests](https://csit.fd.io/search/)
+ - `Data Type` > `iterative`
+ - `DUT` > `vpp`
+ - `Release` > `rls2402`
+ - `Type a Regular Expression` > `2n-zn2 -1c ethip4-ip4base-[mrr|ndrpdr]`
+ ".*" can be replaced by " " (white space).
+ - `Choose a cell in the table` > A corresponding graph(s) is displayed.
+ - `Click a datapoint in the graph` > Detailed information is displayed.
+
+## CSIT-2402 Selected Performance Tests
+
+CSIT-2310 VPP v24.02 Performance Tests:
+
+- ip4
+ - [2n-icx 100ge e810cq avf ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstOwzAQ_JpwQYvsrUO4cGjJfyDjbGlEmpq1G1G-HreqtIkAqUgtvfjgl2asHe9oJIe4YXoO1D0W5aKoFgVWbZOmYja_TQt3AY1CGLwHNHdpx9SRDQTYQ-s-QCv1Sug1PWjl3sEOS2i9gXvzAtoBxdX-lEZwtiNUb8B9A33D-xL4dCzxrZ6gzTYKmlRMkIFYwIk8ofnVbsT5TbTwLZOVC0m5QJHCSMzPbxP2ku2aQvtJciV1RXCXGi-QdtM6cedH6LFhVX1g_JNLPrv0N5f85VzCnKXTXcJrZQlzls7l0gWzZHKWTnfJXCtLJmfpXC5Jlsr6pt_w-vDXK-sv2WmuRg)
+ - [2n-spr 100ge e810cq avf ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_BrnUrZIWznupYem_o-iypvG1HHUlWpIv75KCKxNUkghaS466MWM2NEOAwpxw_QaqHsqykVRLQqs2iZNxcPzXVq4C2gUwuA9oLlPO6aObCDAHoJn0Eq9E3pNj1q5T7DDElpvYG7eQDuguNqd0gjOdoTqA7hvoG94VwJfDiWO6gnafEVBk4oJMhALOJEnNL_ajji_iRa-ZbJyISkXKFIYiTn9NmEv2a4ptN8kV1JXBHep8QJpN60Tt36EHhpW1XvGP7nks0t_c8lfzyXMWTrfJbxVljBn6VIuXTFLJmfpfJfMrbJkcpYu5ZJkqaxn_YbX-79eWf8ADdavEg)
+ - [2n-spr 100ge e810cq dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEX24hAuHFryD2TshUZN08U2lcrrcatKmwg4RGrpxYc4tmZXM97RSI5pG-glUv9U1cuqWVbYdD4v1f3iNv9CH9EohB0zoLnLu0A92UiAA0QOoJV6J2RNj1q5D_Ds19CxgQfzCtoBpdXhlL_obE-o1hAGD4MPBw58PnH8IBTUfyZBs4wJsqMg4ESflPFqP6r5U7U02EBWOrJ0gRLFkZrfLyfVb8FuKHZfJC15LIK7PHqBtJvypD2P0NPEmvZY8V8-cfFppk98QZ-w5GmGT3i1PGHJ09l8umSeTMnTDJ_M1fJkSp7O5pPkqW5vhm3YHN99dfsNi3az2g)
+ - [2n-spr 200ge cx7 mlx5 ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_Br3UjbYG7k-9dDU_xEUeZuYyo5YqSbp11cJgbVpezDkcdHBssTsMqMdBuTDnmntyb5m5SqrVhlWbROXbPn2HH9sPaocYXAOUC3ijsmS9gTYg3cMmOdbQleYQzWQDtDZQwmtU_CiNlAYoLA7neLnjbaE-Sdw30Df8IkE3y8kvxgFbb6CoFHHBBmIBZwIlDK3O45q_pctHZpJS0vULlAgP5Lz9-2k-oN1R779JmmJcxHcxOELVJgpTzi6EXoZWVWfK-7mlEtOzXXK3dIpTJma4xQ-LlOYMnU9p26aKZUyNccp9bhMqZSp6zklmSrrp37P3fkNWNY_glq9yg)
+ - [2n-c6in 200ge c6in.4xl ena dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtl91qwzAMhZ8muxkasZo0u9nFurzH8GxtDU1dYaeF7unnhIISuo0V2rUXvsgf5wQp-jiIhG7j6TVQ-5SVi6xaZFg1Np6y2fN9vPg2YJEj7JgBi4d456klHQjQgZk3DjDPP0ixIqfBsl1BwwWoUj2-gTJA3bJ_jkcwuiXMV-CdBWd9XwNfDjWOCopqt52osY2JsiMv4qQ_sfFyP_L80LXYtSct_ti4SB2FUS_ff5q4371eU2g-SV4ZxiIOE0c_Es20UrfnkXqYWFUPjv_ixInTiZz4gpww5ekETni1PGHK09k4XSZP8yJtpyNKcSi3tJt-Z8SJ0Q3spZ5R2kp_Z4RXylHaSOdiJDkq6zu38evhv6msvwDzBpLJ)
+ - [2n-c7gn 100ge c7gn ena dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtl91qwzAMhZ8muxkasZosu9nFurzH8GytDU1dYaeF7unnhIISuo0V2rUXvsgf5wQp-jiIhG7j6S1Q-5yV86yaZ1g1Np6y2ct9vPg2YJEj7JgBi4d456klHQjQgakWDlSeL0ixIqfBsl1BwwWoUj29gzJA3bJ_jkcwuiXMV-CdBWd9XwNfDzWOCopqt52osY2JsiMv4qQ_sfFyP_L80LXYtSct_ti4SB2FUS_ff5q4P7xeU2g-SV4ZxiIOE0c_Es20UrfnkXqYWFUPjv_ixInTiZz4gpww5ekETni1PGHK09k4XSZPj0XaTkeU4lBuaTf9zogToxvYSz2jtJX-zgivlKO0kc7FSHJU1ndu49fDf1NZfwEWdpKp)
+- ip6
+ - [2n-icx 100ge e810cq avf ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVstOwzAQ_JpwQYvsrUN64UCb_0DG2dKINDVrE1G-HreqtIkAqUgtvfjgl2asHe9oJIe4ZXoK1D0U5aKoFgVWbZOmYvZ4mxbuAhqFMHgPaO7SjqkjGwiwh9Z9gFbqhdBrmmvl3sAOK2j9PVTzZ9AOKK73pzSCsx2hegXuG-gb3pfA5bHEt3qCNu9R0KRiggzEAk7kCc2vdyPOb6KFb5msXEjKBYoURmJ-fpuwV2w3FNpPkiupK4K71HiBtJvWiTs_Qo8Nq-oD459c8tmlv7nkL-cS5iyd7hJeK0uYs3Quly6YJZOzdLpL5lpZMjlL53JJslTWN_2WN4e_Xll_AXFKrso)
+ - [2n-spr 100ge e810cq avf ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_Br3UrZIG7nOpYek_o-iypvG1HHUlWJIv75KCKxNW0ghaS466MWM2NEOAwpxy_QSqHsqymVRLQus2iZNxWxxnxbuAhqFMHgPaB7SjqkjGwiwh-AZtFJvhF7TXCv3AXZYQesfoZq_gnZAcX04pRGc7QjVO3DfQN_woQQ-n0p8qydos4uCJhUTZCAWcCJPaH69H3F-Ey18y2TlQlIuUKQwEvPz24S9Yruh0H6SXEldEdylxguk3bRO3PsRempYVR8Z_-SSzy79zSV_PZcwZ-l8l_BWWcKcpUu5dMUsmZyl810yt8qSyVm6lEuSpbK-67e8Of71yvoLpaivlg)
+ - [2n-spr 100ge e810cq dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEX24pBeOFDyD2TshUZN08U2lcrrcatKmwg4RGrpxYc4tmZXM97RSI5pG-glUv9Y1cuqWVbYdD4v1f3Tbf6FPqJRCDtmQHOXd4F6spEAB4gcQCv1TsiaFlq5D_Ds19DxAzSLV9AOKK0Op_xFZ3tCtYYweBh8OHDg84njB6Gg_jMJmmVMkB0FASf6pIxX-1HNn6qlwQay0pGlC5QojtT8fjmpfgt2Q7H7ImnJYxHc5dELpN2UJ-15hJ4m1rTHiv_yiYtPM33iC_qEJU8zfMKr5QlLns7m0yXzZEqeZvhkrpYnU_J0Np8kT3V7M2zD5vjuq9tvJi20Xg)
+ - [2n-spr 200ge cx7 mlx5 ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEXJ4mAuHFryD2SchUY4qbU2UcvrcatKmwg4RGrpxYc4tmZXM97RSA5xy_QSyD0V9brQ6wJ116aluF_dph-7gKpEGL0HVHdpx-TIBAIcIHgGLMt3Ql_ZnR7JROjdrobOP4B-fIXKAsXN4ZS-YI0jLD-AhxaGlg8k-Hwi-cEoaPsZBU06ZshILOBMoJT5zX5S87ds6TBMRlqSdoEihYmc328n1W9segrdF0lLmovgNg1foMrOeeLeT9DTyHRzrPg3p3x2aqlT_pJOYc7UEqfwepnCnKnzOXXRTKmcqSVOqetlSuVMnc8pyVTd3Axb7o9vwLr5Bh_nvk4)
+ - [2n-c6in 200ge c6in.4xl ena dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtV8tqwzAQ_Br3UrZY2zjqpYem_o-iSNvGxFGEpAbSr49iAmuTBBqwmx508IsZs-MdhsEhbj19BGpfi2pRyEWBsjHpVDy_PaaLbwPOSoSdc4Czp3TnqSUVCNCCnjcWsCy_SDhBVoFxZg2Nm4OoxMsShAaKq-NzOoJWLWG5Bm8NWOOPM_D9NONsIKPmOzKaZAyQHXkGB_qY5lb7HueKaqYrT4r5SThDkUJPy-VPY_anVxsKzQ_xK91amKHT6nugHk6Ke9dDTxuTdcf4K59c9ulGn9yEPmHO0w0-4d3yhDlPo_k0TZ5kbqdzl-T_6iaZm2lEj6bLUW6l33uEd8pRbqSxPOIcVfWD3fpN999U1Qf7j5NR)
+ - [2n-c7gn 200ge c7gn ena dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtV8tqwzAQ_BrnUjZY27jqpYem_o-gStvExFGEpAaSr69iAmuTFhqwmx508IsZs-MdhsEh7j2tArUvRbUs5LJA2Zh0Kh5fH9LFtwEXJcLBOcDFPN15akkFArSg5dqCKMs1CSfIKjDObKFxTyAq8fwOQgPFzfk5HUGrlrDcgrcGrPHnGfh2mXE1kFHzGRlNMgbIgTyDA31Mc5tjj_ODaqYrT4r5SThDkUJPy_efxuwPr3YUmhPxK91amKHT6nugHk6KR9dDLxuTdcf4K59c9ulGn9yEPmHO0w0-4d3yhDlPo_k0TZ5kbqdrl-T_6iaZm2lEj6bLUW6l33uEd8pRbqSxPOIcVfXM7v2u-2-q6i8e_5Mx)
+- ipsec
+ - [3n-icx 100ge e810cq avf 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYwlK7Fw-ufQ_D0tldkv4gYN369NK6CW2MiZql9cClP5kBBr58yQRjW43PBquHJNsl-S6huSzdI9k83rqXrgxlKYVOKaDszn1prJAbhE0DUpyBpOkRqSK4Jal4Ad4dQOhe2RZIRrZ7IALQnqRiUhkULLVNZd7A_e-HSWRjgaOh2f1R1NCUeliZPl1W_lKGj5av1kddcbNIh9oHZ1X7NHXqfc63e_H5XCP3Az636KMWzaSen27Yjz9oXqOR7-gnGY_PZwiHaRIU87VtrybRyznmxZixLlMVmV6FqQrMlEZPAzClq3pKo6eLMw3tKYueBmDKVvWURU8XZxrOU1nLc2x7_4p0OL3_1vX-mmiU9CpEAzsaW94AROmajsaGd3GigR2N7W4AomxNR2OzuzhR72hW3DStrse73qz4ALThK64)
+ - [3n-icx 100ge cx6 dpdk 40tnlsw](https://csit.fd.io/report/#eNrtmEtOwzAQQE8TNmhQ7DqkGxaU3AOlztBa5GNsUxpOjxMqTSqEBKhOWHiTj2Zsj_30pJGt6ww-WqzvkmyT5JuE56ryj2R1f-1fprZcpBwOWgMXN_7LYI2lRVi1oOQRWJrukGuGa5bKF6h09QzS9Np1wDK23gKTgG6vtFDaohSpa2v7Bv5_O8yiWgclWp7d7mQDbWWGpfnDaekvdVC0enUU9dWdRQ5oKHhWNqXpfU8532-GBpQGSxrxuUeKOrSTgn66Yxr_ZMoGrXpHmmQ8P8qQHtQkKM_Xdr2eRE8HmRdjxsJUdaR6Gao6NFUeXQ1BlS_rKo-uzk81uKsiuhqCqljWVRFdnZ9qQFdVo46xBf4z1OH4_l0H_GumUdTLMA3taWx_QzDli3oam9_5mYb2NLa-IZiKRT2Nje_8TMnTrLhqO9OMd8BZ8QHg7TU-)
+ - [3n-spr 100ge e810cq avf 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYwlK7Fw-79j0MpbO7JP1BwGp9emndhG2MiZql9cClP5kBBr58yQRjO41PBuuHJNsn-T6huazcI9nsbt1L14aylEKvFFB257401sgNwqYtwSgNJE2PSBXBLUnFM_D-AEIPynZAMrItgQhAe5KKSWVQsNS2tXkF91-Os8jWAkdDs_ujaKCt9Lg0fTwv_aUOH61erI-66maRHrUPzsr2aeo0-JzvN-MHcI3cj_jco49aNBcF_XTHfvxB8waNfEc_yXR-PkM4UBdBMV_bDuoiej7IvJgyVqaqItXrUFWhqdLoagiqdF1XaXR1earBXWXR1RBU2bqusujq8lQDuiob-RZb4D9DHY_v33XAv2YaRb0O09CexvY3BFO6qqex-V2eaWhPY-sbgilb1dPY-C7P1HuaFTdtp5vpDjgrPgDqXTZ2)
+ - [3n-spr 200ge cx7 mlx5 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYlgXrxYNr38OwdNwl6Q8BrK1PL62b0MbEaFzEA5f-ZAYY-PIlE4ztNT4ZbO4zts_KfUZKWbtHtnu4di_dGEJzAoNSQOiN-9LYIDcIu46DURpInh-RqEKM5YDcQtuMDISelO2hYMXdAQoBaE9SUakMCprbrjGv4P4P8zyys8DREHZ7FC10tZ4XJ4_nxT9V4qP1i_VRV98mMqD2wU3hPk2dJp_z1Xb8EK6R-zEfu_RRi2ZV0nf37Mc_a96ikW_oJ1lO0GcIB2sVFNu17aRW0fNRltWSEZ2sSmQvRVaFJ0uSs2HIktjOkuRsDLJ_4CxNzoYhS2M7S5OzMcgGdVa2ckyt8S_Azgf4DzvjH3NNwl6Ka3hfU1schiuJ7GtqimNwDe9raonDcKWRfU0NcQyu3ldWXXW9bpc7Y1a9A6ljU84)
+- hoststack quic
+ - [3n-icx 100ge e810cq dpdk ip4udpquic](https://csit.fd.io/report/#eNrlVctuwyAQ_Br3Um0FxJZz6aGJ_6PCsK1RSExYHDX9-hIr6tpqc80hvgDSzOxrtIJSH_Gd0L8W1aaoN4Wqnc1HsXp7zlf0pEqh4BQCqPIlvyJ61ISwOoAzXyCF-EQVJK6lMEewwe6g6ylR0mYHUq1FC9IApg5cKAcbjoMz7SVADomm66ENdMmnttd8f5IzaofEaNbPkBNGBme1Mi10Z-bc7oAFOqJmxW9jTEhIk5put8mKj6j3SO4bWTaOiRkmWzIBzTxbOocJep1e3YyMO_lHRnvMfC8FLcDH_9p9UD-XZecju7ms5bzzblbN06GP-_HPrJof9LcJqA)
+ - [3n-icx 100ge cx6 mlx5 ip4udpquic](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCYte99NDU_6gw3taoOKYsjpy8PsSKurbaXHNwLoA0M8zujhAU-4AfhO41K7ZZuc1UaZu0ZJu3x7QFRyoXCvbeg8qf0imgQ00Imx1YM4IU4guVl2Z8bkbo3FhA21OkqM03SPUiapAGMLZgfT40_mewpj7r041o2h5qT2c79X6x--PNaDNERpN-gewxMLgolWm-PTDnagPM1wE1C377YkJEmpV0vUtWfAbdIdkjsmyaEjNMCmQGmqVbPPgZehleWU2M26RHRjuUwjgpaP0p_tftOtO8qzBXnOVdPcwbv8uietj1oZv-yqI6ATY_CZg)
+ - [3n-spr 200ge cx7 mlx5 ip4udpquic](https://csit.fd.io/report/#eNrlVctugzAQ_Bp6qbayHRC99NCE_4iM2RRUExyvQUm-Pg6KsqA-jjmEi21pZvY1WplC53FLaD-SbJ3k60TlTRWPZPX5Gi9vSaVCweAcqPQtvjxa1ISw2msg50EJ8YXKSXPMB9QBWnvMoO4oUNDmG6R6FyVIAxhqaFzaV-7QN6a8hohB0dQdlI6uGdXmlvFHekarPjAa9TNkQM_grFqmufrEnP96YIn2qFlzb40JAWlS1d-NsmLndYvUnJFl46CYYaItE9DMs4WTm6C3-eXFyHiYh2S0RSmMlYIW4eVvDT-tp0uz9LkdXdqSPnhHs-Jl3_l2_EOz4gJZsRPY)
+- hoststack tcp udp
+ - [3n-icx 100ge e810cq dpdk ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCbNe99JDU_4gwbGorJKYsiZK-vsSKuraqNKf2EF8AMTPsDiMExT7gitC9ZuUyq5aZqjqbhixfPKYpOFKFUHDwHlTxlFYBHWpCyHfQmSNIId5ReYkvUpgPsN5uoO0pUtRmA7J4Fg1IAxhb6HwRjW_OYmd9OqfXNm1iWOfQeDoXVW-Xoj86YNTuI6OprwlywMDgpGGm-fbEnOs2WKADalZ8u2NCRBr1dMMry9ZBb5G6T2TtcGHMMCmcEWimJePJj9DLFVb1wPiHJMloh9I4KWgugf5m-T5y3dv5vNBrXu8mybm90BuW_z7Xsn7Y9WE7_KVl_QUYjRDu)
+ - [3n-icx 100ge cx6 mlx5 ip4tcp ipudp](https://csit.fd.io/report/#eNrlVcFuwyAM_ZrsMnkCkjSnHdblPyYC7hKNNAjTKt3Xj0bVnGjqeuqluQDiPWM_P1lQHAJ-ELrXrNxm1TZTVWfTkuVvz2kLjlQhFBy9B1W8pFNAh5oQ8j10ZgQpxCcqL824sSP0biyhHShS1OYLZLERDUgDGFvofBGNb86xzvr0zKBtusSwy6HxdM6p3i85_xTAqD1ERlNZC-SIgcFFvUzz7Yk5V1UwXwfUHPArjgkRaVbSDakctgu6R-q-kWOnfjHDJGtmoFmmjCc_Qy8drOqJcX8fyWiH0jgpaCV2_qf4IVw92NVM5zWpj-LjyqbzhuL7u1rWT_sh9NMfWtY_O78Q3g)
+ - [3n-spr 100ge e810cq dpdk ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFOwzAQfE24oEW2kxAuHCj5B3LsLYmaNovXrVRejxtVbCJEe4JDc7Etz4x3xyPLHIeAb4z9c1ausmqVmarzacjyl_s0hZ5NoQwciMAUD2kVsEfLCPmuAaYAWql3NKTxSSv3AZ78BtqBI0frNqCLR9WAdoCxhY6K6Kg5qXtP6aDB-rSJYZ1DQ3yqal7PVX-0IKjfR0FTYzPkgEHAWcdCo_YonAs-RGEDWpF82xNCRJ40dcWsyNbBbpG7TxTteGPCcCmeCejmJeORJuj5Dqt6ZPxHluxsj9r1WvFiIr3k-UaS3fsFvdLfzN5Olot7pVc8_32yZX23G8J2_FPL-gse3xSG)
+ - [3n-spr 200ge cx7 mlx5 ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCbNenHpr4HxWGTW0Vx4glVtLXl1hR11bV5NQe4gsgZobdYYSgOAR8I3QvWbnJqk2mqs6mIctfH9MUHKlCKBi9B1U8pVVAh5oQ8r0G8gGUEO-ovDTHakQdoXfHEtqBIkVtPkAWz6IBaQBjC50vovHNWe6sTycN2qZNDLscGk_nsmp7KfujB0btITKaOlsgIwYGFy0zzbcn5lwzwhIdULPm2x8TItKsqxtuWbYLukfqPpG105Uxw6SAZqBZlownP0Mvl1jVE-Nf0iSjHUrjpKD1hHrN9L1ke7Breqm_ub2jNNf3Um-Y_vtsy_phP4R--lvL-gsy1Rse)
+- nat44
+ - [2n-icx 100ge e810cq avf ethip4tcp tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3UrZIsiT70kNS_0dQ5E1tcJytpJikX185DcimGAotLYRc9JpZ7Y6GRT4cHG48ds-ZWmfFOhNFW8chy1ePcXKdF5IJGIhAyKe4ctih8Qiih9aegDP2ioI4lpzZNzDDDlqS4_EWuAUMTdwGS-PpdoxrOBMSSOfgtVRcQKBjgL52Y1Lxck36pYKE1seQ0FjXDBnQJXBWcKJRc55wlmQkvnFoUkDUkaCAflLMN8Wm8J0ze_TtO6Y7xodLBBvNmWB2njmcaYJen7CoLox_c5LuTv7USfpzJ7VSuf5UJ7koC13edlsu6L2Zzlzyk-5-_mp_quqhP7j95e9U1QekIvTr)
+ - [2n-spr 100ge e810cq avf ethip4tcp-nat44ed tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3UrZYa0n2pYek_o-iypva4DhbSTGkX185DcimGAotLYRc9JqRdmeHRT4cHD176h8ztc3KbYZl18QhKzb3cXK9R5kjjMyA8iGuHPVkPAEO4NmByPNXQhZUidy-gRl30LGcjl9AWKDQxm2wDIMJUlIDrchRAusCvJZKIAQ-BhgaNwXFp0vQLxkktDmGhMa8FshILoGLhBON29OMsyYj8Y0jky5EOQkK5GfJfFNsur5zZk--e6f0xlS4RLDRnBlml5HDiWfopYRlfWb8m5N8c_KnTvKfO6mVKvSnOimwKnV13W25ovdqOnPNT775-av9qeq74eD2579T1R-52PPT)
+ - [2n-spr 100ge e810cq avf ethip4tcp-nat44ed cps](https://csit.fd.io/report/#eNrtVdtqwzAM_ZrsZWjYju3kZQ_r8h_Fc9QlkKaa7QXar5_XFZSwFQYbG5S--MKRfHR0EI5pF3AdcbgvzKqoVoWq-jYvRflwm7cwRKWFgokIlL7Lp4ADuoigRogUQArxjIok1lL4F3DTBnrSYPUTSA-YunxLnmB0SWtsoZNCaSBbQrTaSAWeIoxteKdUjyfKT_yMtq-J0VzVApkwMLgol8Oo289izongeBfQcUJWw1DCOCvme1o5exPcFmN_QH4id41xn41hSPolb9rTDD01sGqOEf_kIl1d_JmL9NcuWmNK-yFNS1VXtr7ocfxa7oVM5Bkv6erlL86laW7GXdge_0rTvAFXze5j)
+ - [2n-spr 200ge cx7 mlx5 ethip4tcp-nat44ed tput](https://csit.fd.io/report/#eNrtVdtqwzAM_ZrsZWjYip30ZQ_t8h_Dc7QlkKTCdkPbr6_bFZwwAoMNCqUvvnAk6xwdhH3YOnr31L1mepOVmwzLto5Llq-f4-Y6j0ogjMyA6iWeHHVkPAEO4NkBCvFFyNLuy5FMgL7ba2hZgRTiA6QFCk28BsswmKAU1dBIgQq4yMEXSkuEwLsAQ-3OZfHtWvYHh4TWu5DQyGyGjOQSOKOcwrg5TGKWhaQM48iklCgoQYH8hM4v5ab0T2d68u2R0hvn1qUAGw2aYHZeORx4gl6bWFaXiBu6yQ83_-4m38DNQuu8-NanJK7KYnXv47mg-I4mdMlTfnj6z3Oqq6dh6_rLX6qrEyEm_aM)
+- tunnels (gnv, vxlan, gtpu)
+ - [2n-icx 100ge e810cq avf ethip4udpgeneve](https://csit.fd.io/report/#eNrtVsGKwjAQ_ZruZZmlia3dyx7U_ofEdNRCjWOSFvXrN5XCtCvCHgSh9ZKEvDeZmTweifNHi2uH1U-ULqNsGcmsLMIQzRafYbKVk0ksoSECmXyFlcUKlUOQBkp9BhHHO5Qk8FvE-gSq2UJJydrXxmDlYJ5sQGhAvw-70M11QTs02CCIeSC2AZv2SFPYNrNcdZnvymC0qD2jobgB0qBlcFA102h_6XEe9cJ8ZVFxQK9Fpnh0vaL-1TIHb606oCuvyCeEu2NcB5kYEnqY1l-oh3b3mOU3xms1pbemT9GUXqvp9Gw6dpdOz6Qj96hMp_eYDnseo0__qEpvVZ_t1TT_MEd7uP1_0_wX2pkbKQ)
+ - [3n-icx 100ge cx6 mlx5 gtpu sw](https://csit.fd.io/report/#eNrtlkFuwjAQRU-TbqqpksEhqy4KuQcKzhQiOcayHQicvg5CmkQtCxCFjTdx5P_tGfvpS3Z-Z2nlSH0m-SIpFgkWTR0-yezrPQxWORQpwt4YQPER_iwpqhzBTEMje8jSdENoMtnP6x5a1efQGLHyndakHMzFGjIJ5LdhduNN5w6Dvh520LUdCuHyUuhXVVbrzrMaepkoe7IsTppkm9ke2XO1dfZXlipeMDoRWzy5UVN_nZC937ZqyTUn4gXhZliXAQJLmZxW8UczUi_XVpRnx1OJmUjsHmLm_4lhzNhtxPDVGcOYsUcSe0LGRMzYbcTEqzMmYsYeSYwzlpdvemfb85sxL38A-znb1g)
+ - [3n-spr 200ge cx7 mlx5 vxlan](https://csit.fd.io/report/#eNrtVcFuwjAM_ZpymTy1oV1PHAb9D5SmHlRKg-WEquzrF1glt0Jw4YCEuCRRnl_s5ycrPhwYtx7tKinWSblOVNk2cUmW3x9xY-tVniroiUDln_HEaFF7hKXT4IlBpekOFWVmKHvUATo7FNBSvg1H59B6-MpryAxg2MfbfrDagVV1U8dHOm0sO3ANnzOqzZjxKr2gzTEIGouaIT2ygLNqJYz2J4m5p0EomlELZyJNQgL6SV23pQrjh3WHvv1FocVGCW6iLQJlZp4rnGiCjv0rq0vEczykt4cPeUjP8XAwZ2EvPoH_Il9q9kbf6O3bw_NWVAt34O7y_xXVH06v_as)
+ - [3n-spr 200ge cx7 mlx5 gtpu sw](https://csit.fd.io/report/#eNrtlsFugzAMhp-GXSZP4IZx2mEt71Gl4LVIgVpJYO2efqGqZNCmSZ0q1EMuBPH_xk4-_VKcP1raOjJvSb5OinWCRVOHR7J6fw6LNQ5VijAwA6qX8GbJkHYEq06DYwuYpntCzqpTMZD20JpTDg2rre-7joyDV7WDrALyh_B177l3n6O-G3_S1XbshZtrrx-NRa17L2oYZ6YMZEWczSk2PpzF89f0UqItaamZbEosntxkrt82Kd4Pq1tyzRdJQTgc0auAQqSsmnfxZ56o15MryotjaW4cuf2TGy_CDWPebuaGD5A3jHm7M7dl8qZi3m7mph4gbyrm7c7cJG95-dQdbXu5V-blN__K6zY)
+ - [3n-spr 200ge cx7 mlx5 wireguard](https://csit.fd.io/report/#eNrtVl1rwyAU_TXZy3CoTUhe-rA2_6PYeNcGjJWrSdv9-plQuAmD7WWsUPui4jnX-3E4oA8nhJ0Hs86KTVZuMlm2Oi7Z6v01bmi8zLlkg3NM5m_xhGBAeWArq5h3yCTnB5BONJdyABVYZy4Fa12-C721YDwThaj2TDQMwjHe99qdW4RDr1ALzoM1_jzy9-OjVuOYW25vub8VQqjuA6GxvAUyABK4qJto7nglzk_dUIhCUBQza5IoAfysrt9bpsgPVB349hMofBodMZoo1QxsllnD1c3Q2yTLemLcW1f31PWPdHV31TU5tybg1eSc-vg-rVLzafX4Pq1S82n1zz4t6hd7wm76Bxf1F_3qK2U)
+- reassembly
+ - [3n-icx 100ge e810cq dpdk reassembly](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEWx65BeOFDyD5Q4S2uROMZrCuH1uKHSJkJckNLmkIttecar2R2NZAqdx2fC5iHJdkm-S2Ru6rgkm8fbuPmGpEolHJ0Dqe7iyWODJSFsLBj9CSJN9yidwK1I9RvUrn4F7XsXOhCZ2FYgNGA4GKeMI9SRngbb0AfEm-pUx9gAJZLM7ve6jdVLImyrpgdb-5MO-XTW8UsUo_V7YDRKnSBH9AxOemCaO_TM-bszflBGofzip2FGA9JI0L_a52IvvmyRzBdyxWGyzNDRwhGop0JC70boeap5MTCW5Ldb_Z7Bbze333LN92X9ltfNt1zzvSS_Z8-3WvN9Wb_VdfOt1nwvyW_Od1bc2M63wz89K74B21hUdQ)
+
+## CSIT-2402 Selected Performance Comparisons
+
+Comparisons 24.02 vs 23.10
+- [2n-icx 100ge e810cq avf 1c 64B PDR](https://csit.fd.io/comparisons/#eNqNkE0OwiAQhU9TN4YGsLVuXFh7AGO8AMGpadJSHGijnl7oj9jEhQkBZt43zPAM1CAtXPdRlkc8QygBQUlw92hzWI9ZA3aKL9g56bgekr6yatUCvXYz6o5eax-MvFN6wCBibXhCOeGbmFGC7jVhIOCVKlEEmitSyQdhlN6AawY7RuWdiL4MFbLFz9ipn4UdfZgWk15iY6rXEtkm-YKx9qmXxKk4T0Q2rLlXowX-4ZKjRAP2--PBiBHpRd3BD1-S2O1fvgz9V6rFZu9HS4s34Cl0zQ)
+
+## CSIT-2402 Selected Performance Coverage Data
+
+CSIT-2402 VPP v24.02 coverage data
+- [2n-icx 200ge cx7 mlx5 ip4](https://csit.fd.io/coverage/#eNpVjsEOwiAQRL8GLwaDK4RTD9r-h9ngxpIgJYBI_94SD9TLJjNvZjOJHJlsFz8wfWOgo0vbZZfr8SdACmgGjM14vHOnJYQ_Uih2CPIkgMftOybqsTCvu4zn1lQOQjwJwtlUXQgzf7mqegMjYa_YIJvQ0yHNy-fuMJM368BU2763WkpNXye-PaE)
+
+## Further Information
+
+For further information including instructions how to access the needed
+information with user selectable options, please refer to
+[csit.fd.io documentation]({{< relref "/" >}}).
diff --git a/docs/content/release_notes/current/dpdk_performance.md b/docs/content/release_notes/current/dpdk_performance.md
new file mode 100644
index 0000000000..97e757fe50
--- /dev/null
+++ b/docs/content/release_notes/current/dpdk_performance.md
@@ -0,0 +1,38 @@
+---
+title: "DPDK Performance"
+weight: 2
+---
+
+# CSIT 24.02 - DPDK Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 14, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+2. DPDK PERFORMANCE TESTS
+ - No updates
+3. DPDK RELEASE VERSION CHANGE
+ - Version 23.11 is now tested.
+
+# Known Issues
+
+List of known issues in CSIT 24.02 for DPDK performance tests:
+
+## New
+
+List of new issues in CSIT 24.02 for DPDK performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## Previous
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## Fixed
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
diff --git a/docs/content/release_notes/current/trex_performance.md b/docs/content/release_notes/current/trex_performance.md
new file mode 100644
index 0000000000..d0f82fd2e7
--- /dev/null
+++ b/docs/content/release_notes/current/trex_performance.md
@@ -0,0 +1,40 @@
+---
+title: "TRex Performance"
+weight: 3
+---
+
+# CSIT 24.02 - TRex Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 14, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+2. TREX TESTS
+ - No updates
+3. TREX VERSION
+ - Currently using v3.03 of TRex.
+
+# Known Issues
+
+## New
+
+List of new issues in CSIT 24.02 for TRex performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## Previous
+
+List of known issues in CSIT 24.02 for TRex performance tests
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## Fixed
+
+List of known issues in CSIT 24.02 for TRex performance tests
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
diff --git a/docs/content/release_notes/current/vpp_device.md b/docs/content/release_notes/current/vpp_device.md
new file mode 100644
index 0000000000..3ade1c6b68
--- /dev/null
+++ b/docs/content/release_notes/current/vpp_device.md
@@ -0,0 +1,27 @@
+---
+title: "VPP Device"
+weight: 4
+---
+
+# CSIT 24.02 - VPP Device
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 14, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+
+# Known Issues
+
+List of known issues in CSIT 24.02 for VPP functional tests in VPP Device:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1931](https://jira.fd.io/browse/CSIT-1931) | Vhost test not running in device jobs
+ 2 | [CSIT-1932](https://jira.fd.io/browse/CSIT-1932) | 1n-spr: Occasional packet loss in L2 tests
+
+## New
+
+List of new issues in CSIT 24.02 for VPP functional tests in VPP Device:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
diff --git a/docs/content/release_notes/current/vpp_performance.md b/docs/content/release_notes/current/vpp_performance.md
new file mode 100644
index 0000000000..3b3711039e
--- /dev/null
+++ b/docs/content/release_notes/current/vpp_performance.md
@@ -0,0 +1,108 @@
+---
+title: "VPP Performance"
+weight: 1
+---
+
+# CSIT 24.02 - VPP Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 14, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+ - **General Code Housekeeping**: Ongoing code optimizations and bug fixes.
+ - **Trending and release testing**: Ndrpdr tests use newer code
+ (MLRsearch 1.2.1) and configuration, gaining more stability and speed.
+1. VPP PERFORMANCE TESTS
+ - Added 2n-c7gn and 3n-icxd testbeds.
+2. PRESENTATION AND ANALYTICS LAYER
+ - [Performance dashboard](https://csit.fd.io/) got updated with the
+ possibility to [search in tests](https://csit.fd.io/search/).
+ - [Per Release Performance Comparisons](https://csit.fd.io/comparisons/) got
+ updated with the function removing extreme outliers from data presented in
+ the comparison table.
+
+# Known Issues
+
+These are issues that cause test failures or otherwise limit usefulness of CSIT
+testing.
+
+## New
+
+Any issue listed here may have been present also in a previous release,
+but was not detected/recognized/reported enough back then.
+Also, issues previously thought fixed but now reopened are listed here.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1845](https://jira.fd.io/browse/CSIT-1845) | AVF 9000B any ndrpdr test may start failing due to packets not arriving in one or both directions.
+ 2 | [CSIT-1946](https://jira.fd.io/browse/CSIT-1946) | Ipsec hwasync fails with large scale and multiple queues.
+ 3 | [CSIT-1947](https://jira.fd.io/browse/CSIT-1947) | VPP crash in udp nat avf 4c tests.
+ 4 | [CSIT-1948](https://jira.fd.io/browse/CSIT-1948) | NICs do not consistently distribute tunnels over RXQs depending on model or plugin.
+ 5 | [CSIT-1950](https://jira.fd.io/browse/CSIT-1950) | 9000B tests with high encap overhead see fragmented packets.
+ 6 | [CSIT-1951](https://jira.fd.io/browse/CSIT-1951) | Combination of AVF and vhost drops all 9000B packets.
+ 7 | [CSIT-1954](https://jira.fd.io/browse/CSIT-1954) | 3n-icx: 9000B AVF ip6 tests show zero traffic in one direction due to no free tx slots.
+
+## Previous
+
+Issues reported in previous releases which still affect the current results.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1782](https://jira.fd.io/browse/CSIT-1782) | Multicore AVF tests are failing when trying to create interface. Frequency is reduced by CSIT workaround, but occasional failures do still happen.
+ 2 | [CSIT-1785](https://jira.fd.io/browse/CSIT-1785) | NAT44ED tests failing to establish all TCP sessions. At least for max scale, in allotted time (limited by session 500s timeout) due to worse slow path performance than previously measured and calibrated for. CSIT removed the max scale NAT tests to avoid this issue.
+ 3 | [CSIT-1795](https://jira.fd.io/browse/CSIT-1795) | Ocassionally not all DET44 sessions have been established: 4128767 != 4128768
+ 4 | [CSIT-1802](https://jira.fd.io/browse/CSIT-1802) | All testbeds: AF-XDP - NDR tests failing from time to time on small loss.
+ 5 | [CSIT-1804](https://jira.fd.io/browse/CSIT-1804) | 3n-tsh: NDR fails on ierrors.
+ 6 | [CSIT-1849](https://jira.fd.io/browse/CSIT-1849) | 2n-clx, 2n-icx: UDP 16m TPUT tests fail to create all sessions.
+ 7 | [CSIT-1881](https://jira.fd.io/browse/CSIT-1881) | 2n-icx: NFV density tests ocassionally breaks VPP which fails to start.
+ 8 | [CSIT-1886](https://jira.fd.io/browse/CSIT-1886) | 3n-icx: Wireguard tests with 100 and more tunnels are failing PDR criteria.
+ 9 | [CSIT-1892](https://jira.fd.io/browse/CSIT-1892) | 3n-alt: Unexpected two-band structure of ipsec and vxlan.
+ 10 | [CSIT-1896](https://jira.fd.io/browse/CSIT-1896) | Depending on topology, l3fwd avoids dut-dut link.
+ 11 | [CSIT-1901](https://jira.fd.io/browse/CSIT-1901) | 3n-icx: Negative ipackets on TB38 AVF 4c l2patch.
+ 12 | [CSIT-1904](https://jira.fd.io/browse/CSIT-1904) | DPDK 23.03 testpmd startup fails on some testbeds.
+ 13 | [CSIT-1906](https://jira.fd.io/browse/CSIT-1906) | Zero traffic with cx7 rdma. Testing migrated to mlx5-core on all Mellanox NICs.
+ 14 | [VPP-2077](https://jira.fd.io/browse/VPP-2077) | IP fragmentation: running_fragment_id is not thread safe. Causes reduced performance and failures in gtpu reassembly tests.
+ 15 | [CSIT-1914](https://jira.fd.io/browse/CSIT-1914) | TRex does not produce latency data on ICE NICs.
+ 16 | [CSIT-1915](https://jira.fd.io/browse/CSIT-1915) | The 2n-icx testbeds to not have the same performance.
+ 17 | [CSIT-1916](https://jira.fd.io/browse/CSIT-1916) | Poor CPU scaling on 2n-zn2 RDMA.
+ 18 | [CSIT-1917](https://jira.fd.io/browse/CSIT-1917) | TRex STL performance is unstable at high pps due to unsent packets.
+ 19 | [CSIT-1921](https://jira.fd.io/browse/CSIT-1921) | Two-band structure in SRv6, causes PDR failure in rare cases.
+ 20 | [CSIT-1922](https://jira.fd.io/browse/CSIT-1922) | 2n-tx2: AF_XDP MRR failures. On other testbeds MRR regressions and PDR failures.
+ 21 | [CSIT-1924](https://jira.fd.io/browse/CSIT-1924) | An l3fwd error in 200Ge2P1Cx7Veat-Mlx5 test with 9000B.
+ 22 | [CSIT-1935](https://jira.fd.io/browse/CSIT-1935) | Zero traffic reported in udpquic tests due to session close errors.
+ 23 | [CSIT-1936](https://jira.fd.io/browse/CSIT-1936) | TRex occasionally sees link down in L2 perf tests.
+ 24 | [CSIT-1937](https://jira.fd.io/browse/CSIT-1937) | Small but frequent loss in ASTF UDP on cx7 mlx5.
+ 25 | [CSIT-1938](https://jira.fd.io/browse/CSIT-1938) | 3n-alt: High scale ipsec policy tests may crash VPP.
+ 26 | [CSIT-1939](https://jira.fd.io/browse/CSIT-1939) | 3na-spr, 2n-zn2: VPP fails to start in first test cases.
+ 27 | [CSIT-1941](https://jira.fd.io/browse/CSIT-1941) | TRex may wrongly detect link bandwidth.
+ 28 | [CSIT-1942](https://jira.fd.io/browse/CSIT-1942) | 3nb-spr hoststack: Interface not up after first test.
+ 29 | [CSIT-1943](https://jira.fd.io/browse/CSIT-1943) | IMIX 4c tests may fail PDR due to ~10% loss.
+ 30 | [CSIT-1944](https://jira.fd.io/browse/CSIT-1944) | Memif LXC: unrecognized option '--no-validate'.
+ 31 | [VPP-2090](https://jira.fd.io/browse/VPP-2090) | MRR < PDR: DPDK plugin with MLX5 driver does not read full queue.
+ 32 | [VPP-2091](https://jira.fd.io/browse/VPP-2091) | Memif crashes with jumbo frames.
+
+## Fixed
+
+Issues reported in previous releases which were fixed in this release:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1883](https://jira.fd.io/browse/CSIT-1883) | 3n-snr: All hwasync wireguard tests failing when trying to verify device.
+ 2 | [CSIT-1940](https://jira.fd.io/browse/CSIT-1940) | Hardware acceleration does not work yet.
+ 3 | [VPP-2087](https://jira.fd.io/browse/VPP-2087) | VPP crash and other symptoms in tests with AVF, jumbo packets.
+ 4 | [VPP-2088](https://jira.fd.io/browse/VPP-2088) | virtio: Bad CLI argument parsing introduced with tx-queue-size.
+
+# Root Cause Analysis for Regressions
+
+List of RCAs in CSIT 24.02 for VPP performance regressions.
+Not listing differences caused by known issues (uneven worker load
+due to randomized RSS or other per-worker issues).
+Also not listing tests which historically show large performance variance.
+
+Contrary to issues, these genuine regressions do not limit usefulness
+of CSIT testing. So even if they are not fixed
+(e.g. when the regression is an expected consequence of added functionality),
+they will not be re-listed in the next release report.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [VPP-2099](https://jira.fd.io/browse/VPP-2099) | Bump of rdma-core to 49.0 decreased performance.
diff --git a/docs/content/release_notes/previous/_index.md b/docs/content/release_notes/previous/_index.md
new file mode 100644
index 0000000000..a1b468f16c
--- /dev/null
+++ b/docs/content/release_notes/previous/_index.md
@@ -0,0 +1,31 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "Previous"
+weight: 2
+---
+
+# Previous Releases
+
+- [CSIT rls2306]({{< relref "csit_rls2306" >}})
+- [CSIT rls2302]({{< relref "csit_rls2302" >}})
+- [CSIT rls2210](https://s3-docs.fd.io/csit/rls2210/report/)
+- [CSIT rls2206](https://s3-docs.fd.io/csit/rls2206/report/)
+- [CSIT rls2202](https://s3-docs.fd.io/csit/rls2202/report/)
+- [CSIT rls2110](https://s3-docs.fd.io/csit/rls2110/report/)
+- [CSIT rls2106](https://s3-docs.fd.io/csit/rls2106/report/)
+- [CSIT rls2101](https://s3-docs.fd.io/csit/rls2101/report/)
+- [CSIT rls2009](https://s3-docs.fd.io/csit/rls2009/report/)
+- [CSIT rls2005](https://s3-docs.fd.io/csit/rls2005/report/)
+- [CSIT rls2001](https://s3-docs.fd.io/csit/rls2001/report/)
+- [CSIT rls1908](https://s3-docs.fd.io/csit/rls1908/report/)
+- [CSIT rls1904](https://s3-docs.fd.io/csit/rls1904/report/)
+- [CSIT rls1901](https://s3-docs.fd.io/csit/rls1901/report/)
+- [CSIT rls1810](https://s3-docs.fd.io/csit/rls1810/report/)
+- [CSIT rls1804](https://s3-docs.fd.io/csit/rls1804/report/)
+- [CSIT rls1801](https://s3-docs.fd.io/csit/rls1801/report/)
+- [CSIT rls1710](https://s3-docs.fd.io/csit/rls1710/report/)
+- [CSIT rls1704](https://s3-docs.fd.io/csit/rls1704/report/)
+- [CSIT rls1701](https://s3-docs.fd.io/csit/rls1701/report/)
+- [CSIT rls1609](https://wiki.fd.io/view/CSIT/VPP-16.09_Test_Report)
+- [CSIT rls1606](https://wiki.fd.io/view/CSIT/VPP-16.06_Test_Report)
diff --git a/docs/content/release_notes/previous/csit_rls2302/_index.md b/docs/content/release_notes/previous/csit_rls2302/_index.md
new file mode 100644
index 0000000000..34425fbc69
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2302/_index.md
@@ -0,0 +1,13 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "CSIT rls2302"
+weight: 3
+---
+
+# CSIT rls2302
+
+- [VPP Performance]({{< relref "vpp_performance" >}})
+- [DPDK Performance]({{< relref "dpdk_performance" >}})
+- [TRex Performance]({{< relref "trex_performance" >}})
+- [VPP Device]({{< relref "vpp_device" >}})
diff --git a/docs/content/release_notes/previous/csit_rls2302/dpdk_performance.md b/docs/content/release_notes/previous/csit_rls2302/dpdk_performance.md
new file mode 100644
index 0000000000..320dccf746
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2302/dpdk_performance.md
@@ -0,0 +1,31 @@
+---
+title: "DPDK Performance"
+weight: 2
+---
+
+# CSIT 23.02 - DPDK Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 11, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+2. DPDK PERFORMANCE TESTS
+ - No updates
+3. DPDK RELEASE VERSION CHANGE
+ - CSIT 23.02 tested DPDK 22.07, as used by VPP 23.02.
+
+# Known Issues
+
+List of known issues in CSIT 23.02 for DPDK performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1848](https://jira.fd.io/browse/CSIT-1848) | 2n-clx, 3n-alt: sporadic testpmd/l3fwd tests fail with no or low traffic.
+
+
+## New
+
+List of new issues in {{< release_csit >}} for DPDK performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
diff --git a/docs/content/release_notes/previous/csit_rls2302/trex_performance.md b/docs/content/release_notes/previous/csit_rls2302/trex_performance.md
new file mode 100644
index 0000000000..67f2947891
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2302/trex_performance.md
@@ -0,0 +1,26 @@
+---
+title: "TRex Performance"
+weight: 3
+---
+
+# CSIT 23.02 - TRex Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 11, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+
+# Known Issues
+
+List of known issues in CSIT 23.02 for TRex performance tests
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1876](https://jira.fd.io/browse/CSIT-1876) | 1n-aws: TRex NDR PDR ALL IP4 scale and L2 scale tests failing with 50% packet loss. CSIT removed ip4scale and l2scale except ip4scale2m where it's still failing.
+
+## New
+
+List of new issues in CSIT 23.02 for TRex performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
diff --git a/docs/content/release_notes/previous/csit_rls2302/vpp_device.md b/docs/content/release_notes/previous/csit_rls2302/vpp_device.md
new file mode 100644
index 0000000000..44ba9f5ce5
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2302/vpp_device.md
@@ -0,0 +1,26 @@
+---
+title: "VPP Device"
+weight: 4
+---
+
+# CSIT 23.02 - VPP Device
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 11, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+
+# Known Issues
+
+List of known issues in CSIT 23.02 for VPP functional tests in VPP Device:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## New
+
+List of new issues in CSIT 23.02 for VPP functional tests in VPP Device:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
diff --git a/docs/content/release_notes/previous/csit_rls2302/vpp_performance.md b/docs/content/release_notes/previous/csit_rls2302/vpp_performance.md
new file mode 100644
index 0000000000..072c55f14e
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2302/vpp_performance.md
@@ -0,0 +1,93 @@
+---
+title: "VPP Performance"
+weight: 1
+---
+
+# CSIT 23.02 - VPP Performance
+
+1. VPP PERFORMANCE TESTS
+ - **Enhanced and added VPP hoststack tests** to daily and weekly
+ trending including: Quic VPP Echo, UDP+TCP LD_PRELOAD iPerf3,
+ LD_PRELOAD NGINX.
+ - **Added Nvidia/Mellanox DPDK tests** to daily and weekly trending
+ and report, in addition to RDMA_CORE ones that were already
+ there.
+ - **Jumbo frames tests** got fixed and re-added number of to report
+ coverage tests.
+ - **Intel Xeon SKX performance testbeds** got decommissioned and
+ removed from FD.io performance lab.
+2. TEST FRAMEWORK
+ - **CSIT test environment** version has not changed from ver. 11 used
+ in previous release, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+ - **CSIT PAPI optimizations for scale** got applied improving PAPI
+ programming speed especially for large scale tests. VAT has been
+ now completely deprecated from CSIT.
+ - **General Code Housekeeping**: Ongoing code optimizations and bug
+ fixes.
+3. PRESENTATION AND ANALYTICS LAYER
+ - [Performance dashboard](https://csit.fd.io/) got updated with
+ addition of VPP telemetry trending across all VPP tests. A number
+ of code and AWS resource usage optimizations got applied to the
+ data processing pipeline and UI frontend and backend.
+ - Examples of release iterative data visualisation:
+ - [Packet throughput 2n-icx-e810cq-ip4-base-scale-pdr](https://csit.fd.io/report/#eNrdVcluwjAQ_Zr0ggbZDml64QDkP5BxhhJlwYxNVPr1OAhpYiGO7cEHb3pv1qeRnT8T7h1266zYZuU2U2VThy3LN4twUOdULhSM1oLKl-FG2KF2CGqAxvyAFOIblZX4JYW5gB6P0NgVfK4OIA2gP02vsA6Tja1pcq12T9cvcRitr57RED1CRiQGo7SYZk-3GeddsszXhJoNQsYMeXSzZOKamHUk3aNrfpGpoQuMm9BohqSJ_fubnaHPRpXVg_F3qjijO1RCtEBDnZo8UXFJ6NQmKlGbgjp9ujPU_8cEFdXHcKb-8Q8V1R2PI8PX)
+ - [Speedup Multi-Core throughput graph for 2n-icx-e810cq-ip4-base-pdr](https://csit.fd.io/report/#eNrtlM8OgjAMxp8GL6aGFRAvHlTew8xRhAR1bpOoT-8wJIUYEg8mXjjsX35fu65fMusuhvaW6nWQbIN0G2Ba5X4Kos3cL6a2GIUIjdaA0cLvDNUkLQGeoVJ3EGF4JNSCViJUV5BNAZWOYRkfQCggV7YnPw5tjM5Nmxp3XeqPe5jmN8fU3z4gDRmGg7JYpstHTzNWLOulIckBvmJGjmyvmOGbWFUYeSJbPYmlvgvMlW80I6GG-d1D92jXqDR7K37qCk6ujLuC_3IlnlwZdyX-0pUkm50v5vT-yZLsBXP6Swk>)
+ - [MRR, NDR and PDR comparison for 2n-icx-e810cq-ip4-base](https://csit.fd.io/report/#eNrtVMsOgjAQ_Bq8mDW0gHjxoPIfppZVSQDrthLx6y2GuBBj4kVPHvrKzG6nM0mtOxFuLZbLIFkH6TqQaZH7KYhWU79QaWUUSmiMARnN_I6wRGURZA2FvoIIwwNKI3AhQn0G1eyhMDHM4x0IDeiO3cmPXVdTEXWt5aZv_XIPo_nFMepvHyENEoMjWUwzx3bAeSeW-YpQcYFXzJBDOxAzfhOz9qQqtMUNmepdYFx7oxkSetzftWaA9kal2YPx5VTq_J_KR6n0Rv0mFfNP5bNUzDOVJJvUJ6oeP1mS3QG2H0sT>)
+ - [Normalized throughput architecture comparison for 2n-[icx|clx]-e810cq-ip4-base-pdr](https://csit.fd.io/report/#eNrVk00OgjAQhU-DGzOGFhA3LlTuYUoZhKRibSsRT28hJANRF-500b98rzOvM6l1F4NHi2obJPsg3Qc8rQs_BdFu6RejLI9CDq3WwKOV3xlUKCwCb0CqO7AwPCHXDDcslFcQbQm1jmEd58AkoKv6kx95f0cXpg_ND2PolzxEi5sj6rPPSIuG4MwWyXTVTTSfzJJeGBR0wTsm5NBOzMzfRKrSiDPa-oEk9VUgLn2hCTE5j-86PaFjodJsUHzXlVr-UVfem_35riTZormY8_BneNpvhRpzJNkT6FzkMw>)
+ - [NICs comparison for 2n-icx-ip4-base-pdr](https://csit.fd.io/report/#eNrll99ugyAUh5_G3SxnESx1N7to53s0FI6rmbYMnKF7-qFrcmRmV7vReuG__A74wSckuvZi8eCwfknEPsn3Cc8rHU5JtnsMF1s7nqUcOmOAZ0_hzmKN0iHwM6jaA0vTN-SGKS_EVkJTewGV2cB2cwSmANtT_xSOY9_IaNv3zV9vfU9eRKn-bCkNr4-SDi2FEReVmdN1VPMnLTWQFiW1CMgUtehGNPGgqKq0skFXfSGVhmmgXIWppoipuP_2akbpbabyYqj4txerG7kcLz3tnXvBZ5aqD5BduQAtBLsOK9ro9-Vo6Wnv1sswUJ-zdPZLJSJdgY_ZL5IY9U6NcPEzTN8NX14JXpsZW_mNewi46zAz691rwroKJzPfwaaws7ciiofzxTbDv6QovgETwNPp>)
+
+# Known Issues
+
+Editing Note: below listed known issues need to be updated to reflect the
+current state as tracked on
+[CSIT TestFailuresTracking wiki](https://wiki.fd.io/view/CSIT/TestFailuresTracking).
+
+## New
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1890](https://jira.fd.io/browse/CSIT-1890) | 3n-alt: Tests failing until 40Ge Interface comes up.
+
+## Previous
+
+Issues reported in previous releases which still affect the current results.
+
+**#** | **JiraID** | **Issue Description**
+------|-------------------------------------------------------------------------------------------------|---------------
+ 1 | [CSIT-1782](https://jira.fd.io/browse/CSIT-1782) | Multicore AVF tests are failing when trying to create interface. Frequency is reduced by CSIT workaround, but occasional failures do still happen.
+ 2 | [CSIT-1785](https://jira.fd.io/browse/CSIT-1785) [VPP-1972](https://jira.fd.io/browse/VPP-1972) | NAT44ED tests failing to establish all TCP sessions. At least for max scale, in allotted time (limited by session 500s timeout) due to worse slow path performance than previously measured and calibrated for. CSIT removed the max scale NAT tests to avoid this issue.
+ 3 | [CSIT-1799](https://jira.fd.io/browse/CSIT-1799) | All NAT44-ED 16M sessions CPS scale tests fail while setting NAT44 address range.
+ 4 | [CSIT-1800](https://jira.fd.io/browse/CSIT-1800) | All Geneve L3 mode scale tests (1024 tunnels) are failing.
+ 5 | [CSIT-1801](https://jira.fd.io/browse/CSIT-1801) | 9000B payload frames not forwarded over tunnels due to violating supported Max Frame Size (VxLAN, LISP,
+ 6 | [CSIT-1802](https://jira.fd.io/browse/CSIT-1802) | all testbeds: AF-XDP - NDR tests failing from time to time.
+ 7 | [CSIT-1804](https://jira.fd.io/browse/CSIT-1804) | All testbeds: NDR tests failing from time to time.
+ 8 | [CSIT-1808](https://jira.fd.io/browse/CSIT-1808) | All tests with 9000B payload frames not forwarded over memif interfaces.
+ 9 | [CSIT-1827](https://jira.fd.io/browse/CSIT-1827) | 3n-icx, 3n-skx: all AVF crypto tests sporadically fail. 1518B with no traffic, IMIX with excessive
+ 10 | [CSIT-1835](https://jira.fd.io/browse/CSIT-1835) | 3n-icx: QUIC vppecho BPS tests failing on timeout when checking hoststack finished.
+ 11 | [CSIT-1849](https://jira.fd.io/browse/CSIT-1849) | 2n-skx, 2n-clx, 2n-icx: UDP 16m TPUT tests fail to create all sessions.
+ 12 | [CSIT-1864](https://jira.fd.io/browse/CSIT-1864) | 2n-clx: half of the packets lost on PDR tests.
+ 13 | [CSIT-1877](https://jira.fd.io/browse/CSIT-1877) | 3n-tsh: all VM tests failing to boot VM.
+ 14 | [CSIT-1883](https://jira.fd.io/browse/CSIT-1883) | 3n-snr: All hwasync wireguard tests failing when trying to verify device.
+ 15 | [CSIT-1884](https://jira.fd.io/browse/CSIT-1884) | 2n-clx, 2n-icx: All NAT44DET NDR PDR IMIX over 1M sessions BIDIR tests failing to create enough sessions.
+ 16 | [CSIT-1885](https://jira.fd.io/browse/CSIT-1885) | 3n-icx: 9000b ip4 ip6 l2 NDRPDR AVF tests are failing to forward traffic.
+ 17 | [CSIT-1886](https://jira.fd.io/browse/CSIT-1886) | 3n-icx: Wireguard tests with 100 and more tunnels are failing PDR criteria.
+
+## Fixed
+
+Issues reported in previous releases which were fixed in this release:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1868](https://jira.fd.io/browse/CSIT-1868) | 2n-clx: ALL ldpreload-nginx tests fails when trying to start nginx.
+ 2 | [CSIT-1871](https://jira.fd.io/browse/CSIT-1871) | 3n-snr: 25GE interface between SUT and TG/TRex goes down randomly.
+
+# Root Cause Analysis for Performance Changes
+
+List of RCAs in CSIT 23.02 for VPP performance changes:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1887](https://jira.fd.io/browse/CSIT-1887) | rls2210 RCA: ASTF tests TRex upgrade decreased TRex performance. NAT results not affected, except on Denverton due to interference from VPP-2010.
+ 2 | [CSIT-1888](https://jira.fd.io/browse/CSIT-1888) | rls2210 RCA: testbed differences, especially for ipsec. Not caused by VPP code nor CSIT code. Most probable cause is clang-14 behavior.
+ 3 | [CSIT-1889](https://jira.fd.io/browse/CSIT-1889) | rls2210 RCA: policy-outbound-nocrypto. When VPP added spd fast path matching (Gerrit 36097), it decreased MRR of the corresponding tests, at least on 3-alt.
diff --git a/docs/content/release_notes/previous/csit_rls2306/_index.md b/docs/content/release_notes/previous/csit_rls2306/_index.md
new file mode 100644
index 0000000000..6578ef91f7
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2306/_index.md
@@ -0,0 +1,111 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "CSIT rls2306"
+weight: 2
+---
+
+# CSIT-2306 Release Report
+
+The format of FD.io CSIT reports has now changed. It is no longer available
+in the static html format.
+
+Instead current CSIT release information can be found in csit.fd.io.
+Previous CSIT releases are also linked from there.
+
+## CSIT-2306 Release Notes
+
+- [VPP Performance]({{< relref "vpp_performance" >}})
+- [DPDK Performance]({{< relref "dpdk_performance" >}})
+- [TRex Performance]({{< relref "trex_performance" >}})
+- [VPP Device]({{< relref "vpp_device" >}})
+
+## CSIT-2306 Release Data
+
+To access CSIT-2306 Release data please use following web resources:
+
+- [CSIT Per Release Performance](https://csit.fd.io/report/)
+ - `CSIT Release` > `rls2306`
+ - `DUT` > `vpp`
+ - `DUT Version` > `23.06-release`
+ - `Infra` > `testbed-nic-driver of choice`
+ - `Area` > `IPv4 Routing` `IPv4 Tunnels` `IPv6 Routing` `Hoststack` ...
+ - `Test` > `test of chioce`
+ - `Frame Size` > `64B` `78B`
+ - `Number of Cores` > `1C` `2C` `4C`
+ - `Test Type` > `MRR` `NDR` `PDR`
+- [CSIT Per Release Comparisons](https://csit.fd.io/comparisons/) for VPP
+ v23.06 vs v23.02
+ - `REFERENCE VALUE`
+ - `DUT` > `vpp`
+ - `CSIT and DUT version` > `rls2306-23.02-release`
+ - `Infra` > `testbed-nic-driver of choice`
+ - `Frame Size` > `64B` `78B`
+ - `Number of Cores` > `1C` `2C` `4C`
+ - `Measurement` > `Latency` `MRR` `NDR` `PDR`
+ - `COMPARED VALUE`
+ - `Parameter` > `Release and Version`
+ - `Value` > `rls2306-23.06-release`
+- [CSIT Per Release Coverage Data](https://csit.fd.io/coverage/)
+ - `CSIT Release` > `rls2306`
+
+## CSIT-2306 Selected Performance Tests
+
+CSIT-2306 VPP v23.06 Performance Tests:
+
+- ip4
+ - [2n-icx 100ge e810cq avf ip4scale20k](https://csit.fd.io/report/#eNrtVstuwjAQ_JpwqRbZG4f00gM0_4FcZylRQ3BtEwFfX4OQNlFbiUpQLj74pRlrxzsayT5sHS09tS9ZscjKRYZlU8cpy-dPcXGtx1zMoLcWMJ_GnaOWtCfADhqzBynEO6GV9CyF-QTdr6CxCmbqDaQBCuvTKQ5vdEsoPsB1NXS1O5XA10uJb_UYrXeB0ahihPTkGBzJY5pdHwac30QzXzvSfCEqZyiQH4j5-W3MXjm9Id8cia_ErjBuYuMZkmZcJxzsAL00rKzOjH9yySaX_uaSvZ9LmLJ0vUv4qCxhytKtXLpjllTK0vUuqUdlSaUs3colzlJRTbqt25z_ekX1BWCVro4)
+ - [2n-spr 100ge e810cq avf ip4scale20k](https://csit.fd.io/report/#eNrtVstOwzAQ_JpwQYvsjdNw4UDJfyDjbGlEmpq1iVS-HreqtIkAqUgtvfjgl2asHe9oJIe4ZXoO1D8U1bKolwXWXZumony8TQv3AUu1gNF7wPIu7Zh6soEABwieQSv1Sug13Wvl3sGOK-i8gYV5Ae2A4np_SiM42xOqN-ChhaHlfQl8Opb4Vk_Q9iMKmlTMkJFYwJk8ofn1bsL5TbTwLZOVC0m5QJHCRMzPbxP2iu2GQvdJciV1RXCXGi-QdvM6cecn6LFhdXNg_JNLPrv0N5f85VzCnKXTXcJrZQlzls7l0gWzZHKWTnfJXCtLJmfpXC5JlqrmZtjy5vDXq5ovlPOvWg)
+ - [2n-spr 100ge e810cq dpdk ip4scale20k](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEXOxmm4cGjJP5CxFxo1Tc3aVCqvx60qbSLgEKmlFx_i2JpdzXhHIznEHdNLoP6pqFdFsyqw6Vxaimp5n37cB6zUAvbeA1YPacfUkwkEOEDwDKVS74S-pMdS2Q9w3m2g8xoW-hVKCxTXx1P6gjU9odoADw4Gx0cOfD5z_CAU1H1GQZOMCbInFnCiT8r8-jCq-VO1NBgmIx1JukCRwkjN75eT6jc2WwrdF0lLGovgNo1eoNJOeeLBj9DzxJr2VPFfPvns00yf_BV9wpynGT7hzfKEOU8X8-maedI5TzN80jfLk855uphPkqe6vRt2vD29--r2GxR2tCI)
+ - [2n-spr 200ge cx7 mlx5 ip4scale20k](https://csit.fd.io/report/#eNrtVkFqwzAQfI17KVvstRyfemjqfwRV3jamsiNWqkny-iohsDZtD4akuehgWWJ2mdEOA_Jhx7TxZJ-zap3V6wzrro1LVr48xh9bj2W-gtE5wPIp7pgsaU-AA3jHgHn-QegKs69H0gF6u6-gcwpW6g0KAxS2p1P8vNGWMP8EHloYWj6R4OuF5AejoO1XEDTqmCEjsYAzgVLmtodJzd-ypUMzaWmJ2gUK5Cdyfr-dVL-z7sl3R5KWOBfBTRy-QIWZ84SDm6CXkdXNueLfnHLJqaVOuVs6hSlTS5zC-2UKU6au59RNM6VSppY4pe6XKZUydT2nJFNV8zDsuD-_AavmGw0uvhI)
+ - [2n-aws 50ge c5n.4xl ena dpdk ip4scale20k](https://csit.fd.io/report/#eNrtl01OwzAQhU8TNmhQ7NQNGxYtuUdl4oFGTd2RbVqV0-NElSaBChWpJSy8yJ_ei2Yyn55G8WHncOWxfcrUMiuXmSwbE09ZsbiPF9d6WeRz2BOBLB7incMWtUeQFvTBg8rfUJBAq8GQ2UBDMxBKPL6AqAHDunuOh691izLfgLMGrHFdBfl8qvCtHKvmPbAamxgpe3QsjrpjG62PA8_ZntmsHWp2x7ZZCugHnZz_MHa_Or1F33wgv9IPhR11HPtArMeVwpEG6mleZdU7_oYRJUa_YkQ3YyRTji5mJCfKkUw5uhKjW-RoPkvb6AuhOJL_s4t-5kOJz8R7qOOTttClfOQk-Ukb6Dp8OD-qurM7t-3_i1T1CXgFjgk)
+- ip6
+ - [2n-icx 100ge e810cq avf ip6scale20k](https://csit.fd.io/report/#eNrtVstqwzAQ_Br3UrZIazvOpYcm_o-iypvG1HHUlWKafn2VEFibtpBC0lx00IsZsaMdBuTDlunZU_eYlYusWmRYtU2csvzpPi7ceczVDAbnAPOHuGPqyHgC7KG1H6CVeiV0muZa2XcwwwpaN4Nq_gLaAoX14RSHt6YjVG_AfQN9w4cSuDyV-FZP0GYXBI0qJshALOBEntDcej_i_CZa-IbJyIWoXKBAfiTm57cJe8VmQ779JLkSuyK4jY0XSNtpnbB3I_TUsKo-Mv7JJZdc-ptL7nouYcrS-S7hrbKEKUuXcumKWSpSls53qbhVloqUpUu5JFkq67t-y5vjX6-svwD4Z68S)
+ - [2n-spr 100ge e810cq avf ip6scale20k](https://csit.fd.io/report/#eNrtVstqwzAQ_Br3UrZIazvOpYek_o-gypvG1HHUlWJIv75KCKxNW0ghaS466MWM2NEOA_Jhx7Ty1D1n5TKrlhlWbROnLF88xoU7j7maweAcYP4Ud0wdGU-APXjHoJV6I3Sa5lrZDzDDGlo3g2r-CtoChc3xFIe3piNU78B9A33DxxL4ci7xrZ6gzT4IGlVMkIFYwIk8obnNYcT5TbTwDZORC1G5QIH8SMzPbxP2ms2WfPtJciV2RXAbGy-QttM64eBG6LlhVX1i_JNLLrn0N5fc7VzClKXLXcJ7ZQlTlq7l0g2zVKQsXe5Sca8sFSlL13JJslTWD_2Ot6e_Xll_ASzUr94)
+ - [2n-spr 100ge e810cq dpdk ip6scale20k](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEX2Jml64UDJP5CxFxo1TRfbVCqvx60qbSLgEKmlFx_i2JpdzXhHIznEnaeXQP1jUa-KZlVg07m0FOXTffr5PmCpFrBnBiwf0s5TTyYQ4ACBPWil3glZ01Ir-wGO3QY6XkCzfAVtgeL6eEpfsKYnVBvwg4PB-SMHPp85fhAK6j6joEnGBNmTF3CiT8p4fRjV_KlaGownIx1JukCRwkjN75eT6jdvthS6L5KWNBbBbRq9QNpOeeKBR-h5Yk17qvgvnzj7NNMnvqJPmPM0wye8WZ4w5-liPl0zT1XO0wyfqpvlqcp5uphPkqe6vRt2fnt699XtN68etKY)
+ - [2n-spr 200ge cx7 mlx5 ip6scale20k](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEXJJqm5cGjJP5BxFhrhpNbaRC2vx60qbSLgEKmlFx_i2JpdzXhHI9mHHdOLJ_uU1ZtMbTJUXRuXrFzfxx9bj2W-gtE5wPIh7pgsaU-AA3jHgHn-TugKs1cj6QC93dfQuRWox1coDFDYHk_x80ZbwvwDeGhhaPlIgs9nkh-MgrafQdCoY4aMxALOBEqZ2x4mNX_Llg7NpKUlahcokJ_I-f12Uv3GuifffZG0xLkIbuLwBSrMnCcc3AQ9j0w1p4p_c8olp5Y65a7pFKZMLXEKb5cpTJm6nFNXzVSVMrXEqep2mapSpi7nlGSqbu6GHfenN2DdfAOqrL6W)
+ - [2n-aws 50ge c5n.4xl ena dpdk ip6scale20k](https://csit.fd.io/report/#eNrtV8tOwzAQ_JpwQYvijVxz4UDJfyATLzRq6lq2KWq_vm5UaRPooUgJ5eBDXpqJdrKj0Sghbj29BuqeCrks1LJA1Zp0Kqrn-3TxXcCqXMDOOcDqId156kgHArSgvwLI8oOEE2Q1GGfW0LoFCCke30A0QHF1ek5HaHRHWK7BWwPW-NMEfDlP-DGOUfMZGU0iRsiOPIMjdUxzq_2Ac1Ezk7Unzewkm6FIYaDk8ocx-93rDYX2QPxKvxRmNGntA7AZT4p7N0DP-1J1z_gbj1z26Fceudk8wpyjqz3CG-UIc44m8miOHKncRt8dUv-pi1Ruosn8mSs_uYWu9Qdvkp_cQNP4w_mR9Z3d-k3_XyTrI3nWjpE``)
+- ipsec
+ - [3n-icx 100ge e810cq avf 40tnlsw](https://csit.fd.io/report/#eNrtmEtuwyAQQE_jbqqpbIzjbLpI6ntUBE8SJH8oUDfu6YvdSNiqKrVVsLtg449mgIGnJ43QplX4rLF6jLJ9lO8jkovSPqJ0d29fqtIkjTfQSQkkfbBfCitkGiFtQPALJHF8QiIT3CYxfwHWHYGrXpoWkizZHiDhgOYsJBVSI6exaSr9Bvb_MEwiGgMMNck2J15DU6phZfJ0XflLGS5avhoXtcXNIh0qF5xV7dLkuXc53-7F5TOFzA343KKLGtSTen66YTf-qFiNWryjm2Q8PpfBLaZJkM_XNr2cRK_nmBdjxrpMZWB6E6bSM1MSPPXAlKzqKQmeLs7Ut6c0eOqBKV3VUxo8XZypP09FLS6h7f0r0uH0_lvX-2uiQdKbEPXsaGh5PRAlazoaGt7FiXp2NLS7HojSNR0Nze7iRJ2jWXHXtKoe73qz4gMoCiw-)
+ - [3n-icx 100ge cx6 mlx5 40tnlsw](https://csit.fd.io/report/#eNrtmM1OhDAQgJ8GL2YMlMJ68eDKexi2jLtN-GnauoJPb8FNBmJM1GzBQy_8ZKbttF--ZFJjO43PBuuHKNtHu33EdrJyjyh9vHUvXRuWxjmclQKW3rkvjTWWBiFtQYoekjg-IlOJ6POqh6buMxB6ULaDJEvuD5AIQHuSiktlUPDYtrV5A_d_GCeRrYUSDcvyo2igrfS4Mnu6rPylDIpWr5airrhF5IyagouqKU2dBsr5di-UX2osacDnFilq0czq-emGafyLLhs08h1pkun4KEM4TLOgWK5tBzWLXs5xV0wZ2zJVgelVmCrPTFnw1ANTtqmnLHi6OlPfnvLgqQemfFNPefB0dab-PJWN7EPb-1ek4-n9t67310SDpFch6tnR0PJ6IMq2dDQ0vKsT9exoaHc9EOVbOhqa3dWJkqNZcdN2upnuerPiA78JNZ4)
+ - [3n-spr 100ge e810cq avf 40tnlsw](https://csit.fd.io/report/#eNrtmM1OhDAQgJ8GL2YMLWXZiwdX3sOUMrvbhJ_aVhSfXsBNCjEmarbgoRd-MtN22i9fMqmxrcYng9V9lB6i7BDRTJbDI0oeboeXrgxN4h10SgFN7oYvjRVyg5A0BRilgcTxCakiuCexeAbeHUHoXtkWSEr2BRABaM9SMakMChbbpjKvMPwX4yyyscDR0HR3EjU0pR6Xpo-Xpb_U4aLli3XRobpFpEPtgouyXZo69y7n-824AVwjdyM-9-iiFs2soJ_u2I0_al6jke_oJpnOz2WIAdQsKJZr217NopeDzPIpY2OqKlC9DlXlmyoNrvqgSrd1lQZX16fq3VUWXPVBlW3rKguurk_Vo6uylm-hBf4z1PH4_l0H_GumQdTrMPXtaWh_fTClm3oamt_1mfr2NLS-PpiyTT0Nje_6TJ2naX7TtLqe7oDT_ANkjjcG)
+ - [3n-spr 200ge cx7 mlx5 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYlsLWi4dd-x6GpeMuSX8IYG19etu6CW1MjMZFPHDpT2aAgS9fMsHYTuOTwfohYYekOCSkkNX0SPL97fTStSF5uoNeKSD53fSlsUZuEPKWg1EaSJqekKhMDEWP3EJTDwyEHpXtIGPZ_REyAWjPUlGpDAqa2rY2rzD9H-d5ZGuBoyFsdxINtJWeFyePl8U_VeKi1Yt10am-TaRH7YKbwl2aOo8u56vtuCFcI3djPnbpohbNqqTv7tmNf9a8QSPf0E2ynKDLEBOsVVBs17ajWkUvR1mUS0ZwsiqSvRZZ5Z8sic76IUtCO0uisyHI_oGzNDrrhywN7SyNzoYg69VZ2cghtsa_ADsf4D_sjH_MNQp7La7-fY1tsR-uJLCvsSkOwdW_r7El9sOVBvY1NsQhuDpfWXnTdrpZ7oxZ-Q4xpFRe)
+- hoststack quic
+ - [3n-icx 100ge e810cq dpdk ip4udpquic](https://csit.fd.io/report/#eNrlVctOwzAQ_JpwQYtsh5BeOLTkP5BjL8Sq27hep6J8PW5UsYmg1x6ai21pZvY1WplSH_Gd0L8W1aaoN4Wqnc1HUa4f8xU9qVK8wDEEUOVTfkX0qAmh3IMzXyCF-EQVJK6kMAewwW6h6ylR0mYLUq1EC9IApg5ceB5sOAzOtOcAOSSaroc20Dmfervk-5OcUTskRrN-hhwxMjirlWmhOzHnegcs0BE1K34bY0JCmtR0vU1WfES9Q3LfyLJxTMww2ZIJaObZ0ilM0Mv06mZk3Mg_Mtpj5nspaAE-_tfunfq5LDvv2c1lLeeNd7NqHvZ93I1_ZtX8ALrmCdg)
+ - [3n-icx 100ge cx6 mlx5 ip4udpquic](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCXMe99NDE_4gw3taoOKYsjpy-vsSKurbaXHNwLoA0M8zujhAU-4B7QveaFdus3GaqtE1asvztMW3BkcrFBo7eg8qf0imgQ00I-QGsGUEK8YHKSzNumhE6NxbQ9hQpavMJUr2IGqQBjC1Y_zw0_muwpj7r041o2h5qT2c7tbvY_fFmtBkio0m_QI4YGFyUyjTfnphztQHm64CaBb99MSEizUq63iUr3oPukOw3smyaEjNMCmQGmqVbPPkZehleWU2M26RHRjuUwjgpaP0p_tftOtO8qzBXnOVdPcwbv8uiejj0oZv-yqL6AfuHCcg)
+ - [3n-spr 100ge e810cq dpdk ip4udpquic](https://csit.fd.io/report/#eNrlVctugzAQ_Bp6qbayTSm59NCU_4iMvS0oJGy8JlLy9XVQ1AX1ccwhXGxLM7Ov0coc-4Abxu41K9ZZuc5M2fp0ZPnbY7pCxyZXL3AkApM_pVfADi0j5PsamAJopT7RkMaVVu4AnvwWmp4jR-u2oM1K1aAdYGygpefB02FoXX2JkGKia3qoiS8Jzfs14Y_sgvohCpr0M-SIQcBZsUKj5iScf1oQhQ1oRfLdmRAi8qSov_sUxUewO-T2jCIb5yQMl0yZgG6eLZ5ogl7HV1Yj41YOsrMdJn6nFS_Byd_6vVdHF2boXfu5sAW98X4W1cO-D7vx7yyqL3lpDXA)
+ - [3n-spr 200ge cx7 mlx5 ip4udpquic](https://csit.fd.io/report/#eNrlVctugzAQ_Bp6qbayTQi99JCU_4iM2RZUE1yvQUm-Pg6KsqA-jjmEi21pZvY1WplC53FHaN-SbJvk20TlTRWPJN08x8tbUqlYw-AcqPQlvjxa1ISQ7jWQ86CE-ETlpDnkA-oArT1kUHcUKGjzBVK9ihKkAQw1NG7VV-67b0x5CRGDoqk7KB1dMqr3a8Yf6Rmt-sBo1M-QAT2Ds2qZ5uojc_7rgSXao2bNrTUmBKRJVX83yooPr1uk5oQsGwfFDBNtmYBmni0c3QS9zi8vRsbdPCSjLUphrBS0CC9_a_hhPV2apY_t6NKW9M47mhVP-8634x-aFWchkBQI)
+- hoststack tcp udp
+ - [3n-icx 100ge e810cq dpdk ip4tcp ipudp](https://csit.fd.io/report/#eNrlVctOwzAQ_JpwQYv8aBouHCj5D-TYWxLVbYzXrShfjxtVbCJUeoJDc7Etz4x3xyPLlPqIr4T-qShXRbUqVNW5PBT6-T5P0ZPSYgmHEEDph7yK6NEQgt5BZz9ACvGGKkh8lMK-gwtuA21PiZKxG5CLpWhAWsDUQhcWyYbmJPYu5HN64_ImxrWGJtCpqHo5F_3RAaNunxjNfU2QA0YGJw0zLbRH5ly2wQIT0bDi2x0TEtKopyteWbaOZovUfSJrhwtjhs3hjEA7LZmOYYSer7CqB8Y_JEnWeJTWS0FzCfQ3y7eR697N54Ve8nozSc7thV6x_Pe5lvXdro_b4S8t6y_g7REe)
+ - [3n-icx 100ge cx6 mlx5 ip4tcp ipudp](https://csit.fd.io/report/#eNrlVcFuwyAM_ZrsMnkC0iSnHdblPyYC7hKNNAjTKt3Xj0bVnGjqeuqluQDiPWM_P1lQHAJ-ELrXrNhm1TZTVWfTkuVvz2kLjlQuSjh6Dyp_SaeADjUh5HvozAhSiE9UXpqxtCP0biygHShS1OYL5KYUDUgDGFvo_CYa35xjnfXpmUHbdIlhl0Pj6ZxTvV9y_imAUXuIjKayFsgRA4OLepnm2xNzrqpgvg6oOeBXHBMi0qykG1I5bBd0j9R9I8dO_WKGSdbMQLNMGU9-hl46WNUT4_4-ktEOpXFS0Ers_E_xQ7h6sKuZzmtSH8XHlU3nDcX3d7Won_ZD6Kc_tKh_AANWEQ4)
+ - [3n-spr 100ge e810cq dpdk ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCO4576SGp_1Fh2NRWSLxlSaT09SVW1LVVNTm1h_gCiJlhdxghOPYB3xj9S1aus2qd5VXn0pAVq8c0Bc95oZZwJIK8eEqrgB4NIxT7BpgCaKXeMSeNz1rZD3DkttD2HDkauwW9WKoGtAWMLXS0iJaas9o7Sgf1xqVNDJsCGuJz1fz1UvVHC4K6QxQ0NTZBjhgEnHQsNGpPwrniQxQmoBHJtz0hRORRUzfMimwTzA65-0TRDjcmDJviGYF2WjKeaIRe7rCqB8Z_ZMnWeNTWa8WzifSa5ztJ9uBm9Ep_M3s_Wc7uld7w_PfJlvXDvg-74U8t6y_oFxS2)
+ - [3n-spr 200ge cx7 mlx5 ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbbCEMenHpr6HxWGTW0Vx4glVpLXh1hR11bV5NQe4gsgZobdYYSg2Af8IHSvWbHJyk0my9amIVNvz2kKjqQSaxi8B6le0iqgQ00IaqeBfAApxCdKn5tDOaCO0LlDAU1PkaI2X5Cv1qKG3ADGBlq_isbXF7mzPp3Ua5s2MWwV1J4uZeX7teyPHhi1-8ho6myGDBgYnLXMNN8cmXPLCEt0QM2ab39MiEiTru64Zdk26A6pPSFrxytjhkkBTUAzLxmPfoJeL7GsRsa_pElGO8yNywUtJ9Rbph8l271d0kv9ze0Dpbm8l3rH9N9nW1RPuz50499aVGf85RtO)
+- nat44
+ - [2n-icx 100ge e810cq avf ethip4tcp tput](https://csit.fd.io/report/#eNrtVl1PhDAQ_DX4Ytb0gxZ88MGT_2G4sickd9za9ojnr7ecJIUoiYlGI-GllM4su9PJJDh_tPjocH-XqE2SbRKRNVVYEnl_HR5274RkGjoiEPIm7CzusXQIooXGvABn7AkFccw5M89QdjtoKO2Pt8ANoK_DqzfUn277upozkQJpCU6nigvwdPLQVrZvKh6Gph8miGh18hENc02QDm0EJwNHGtXnEWdORuSXFstYEHREyKMbDfNFsbF8Z8sDuuYV4zf6i4sEE8wZYWba2Z9phA5XmBUXxp85SauT33WSft9JLfNBHWdS8Nulx_JzvctJ5oyftPr5L_OplZL6XV_KRZ7pfNn5nNG7mHzO-Umrnz-aT1VctUd7uPzbquINdw_s1g)
+ - [2n-spr 100ge e810cq avf ethip4tcp-nat44ed tput](https://csit.fd.io/report/#eNrtVl1PhDAQ_DX4Ytb0gxZ88MGT_2Eq7AkJx61tj-T89ZaTpBAlMdFoJLwAZabdnZ1MUuePFh8dtneJ2iXZLhFZU4VHIu-vw8u2TkimoScCIW_Cl8UWjUMQHTiywBl7RkEcc87KFzD9HhpKh99PwEtAX4elLwk649MUK6g5EymQluB0qrgATycPXWWHouJhLPqhg4hWJx_R0NcM6dFGcNZwpFF9nnCWZES-sWjihiAnQh7dpJkvio3b99Yc0DWvGM8YBhcJZTBngpXzyv5ME3QcYVZcGH_mJG1OftdJ-n0ntcxHdZxJwW_XHsvP9a4nmQt-0ubnv8ynVkrqd30pF3mm83Xnc0HvavK55Cdtfv5oPlVx1R3t4XK3VcUbnCbrMg)
+ - [2n-spr 100ge e810cq avf ethip4tcp-nat44ed cps](https://csit.fd.io/report/#eNrtlt1KxDAQhZ-m3shI_lsv9sK17yGxnbWFbndMYmF9euNaSItdEBTFsjdNy5l05uTjQHw4OHzw2G0yvc3ybSbyto6PTN5dx8V1XkhmYCACIW_im8MOrUcQPXhywBl7QkEcC86qZ7DDDlpSYNQj8AowNPErVAS9DUphDQ1nQgEZCd4ozQVU5KGv3XtLcT-2_NQ_qfVLSGqcaqYM6JI4GzeVUXOc1JwzkeqtQ5s2RDdJCugnw3zNa9q9c3aPvn3F9It4akmvIpgk8WreNxxpoo4HmJenij-iSBeK36NIv07RyGK0xpkU_HblcVy0u5ZELrOkC8v_l0ujtTQf5hQXRW6KVedy2e5KcnmGJV1Y_mAudXnVH9z-dIfV5RtGI-MK)
+ - [2n-spr 200ge cx7 mlx5 ethip4tcp-nat44ed tput](https://csit.fd.io/report/#eNrtlt1qhDAQhZ_G3pQp-THRXvSiW9-jpDqtgrpDkpXdPn2zWyFKKxRaWCre-MOZcebk44DO7y0-O2wfErVLsl0isqYKl0Q-3oabbZ2QTMNABELehSeLLRqHIHpwZEEw9oaCeHnMBjQeuvaooKEUOGMvwEtAX4dXXxL0xqcpVlBzJlIgLcHpVHEBng4e-sqex4qnceyXHaJaHXxUw2YzZUAbxdnKsYzq06Rm2UjsMBZNbAmGouTRTdb5od3Y_mpNh655x_iN89HFgjIAmmjlfLI_0UQdDzErLhVXpEkbzd_TpGvQ1DIf_XEmBb9ffzy_d7ymhC4wpY3pv82pVkrqT4cpF3mm87XndMHxinK6xJQ2pn-cU1Xc9HvbXf55VfEBRW_56g)
+- tunnels (gnv, vxlan, gtpu)
+ - [2n-icx 100ge e810cq avf ethip4udpgeneve](https://csit.fd.io/report/#eNrtmFFrgzAQxz-Nexk3TIxxL3to5_coVq-tYNMsidL20y8W4XRjsIexQtIXI_7vcnf580OIdSeDG4vdW5Kvk2Kd8KJt_CPJVs9-MZ3lWSph0Bp49uLfDHZYWQSuoK3PwNJ0j1wzfGVp_QHVsINWi43rlcLOghRbYDWgO_ivMK19o_eocEBg0geOCdtxS9WYsTJ_nyp_a4PUpnek-uYWyoCGxEXXFKYPl1nMT7NQfGWwooTZiBTi0M6a-tXIlLwz1RFte0XawZ8d6bW3iSRWL8u6i56p0zkW5S3ivp7qh6d_4qm-r6fxYRo6pfFBGjijPI_vZ7qcOUROv7iqH66GwKqIjlQROKciOkpF4IzK-CCVoVMq48NU_ienefmkTuZ4u0vKy0_aCie_)
+ - [3n-icx 100ge cx6 mlx5 gtpu sw](https://csit.fd.io/report/#eNrtlkFugzAQRU9DN9VUYAysumjCPSJipgmScUa2SUlPXxNFGlDbRao02XiDkf-3Z-ynL9n5g8WNQ_2aFKukWiWi6trwSfK35zBY7USelnAkApG_hD-LGhuHkBvo1AhZmu5QUKbGsh2h12MBHcmNH4xB7aCUW8gUoN-H2Z2nwX1M-nbawbR2KiTWl0LfqrLaDp7V0MtCOaJlcdEk22h_Ys-vrbO_sdjwgtmJ2OLRzZr66YTsfbdNj677RF4QboZ1FSCwlKllFX-imXq5tqo-O-5KjCKxvxCj_ycmYsauIyYenTERM3ZLYnfImIwZu46YfHTGZMzYLYlxxor6yRxsf34zFvUXjV3cHg)
+ - [3n-spr 200ge cx7 mlx5 vxlan](https://csit.fd.io/report/#eNrtVcFuwjAM_Zrugjy1KaUnDrD-B0pTDyqlwXJCVfb1BKjkVtN24YCEuCRRnl_s5ycrPhwZdx7tOim2SblNVNk2cUnyzSJubL3K0xX0RKDyz3hitKg9Qu40eGJQabpHRZkZyh51gM4OBbS03IWTc2g9rJY1ZAYwHOJtP1jtwKq6qeMjnTaWHbiGrxnV15jxV3pBm1MQNBY1Q3pkAWfVShgdzhLznwahaEYtnIk0CQnoJ3X9LVUY36w79O0PCi02SnATbREoM_Nc4UwTdOxfWd0inuMhvT18yEN6joeDuQp78Qm8i3yp2Rt9o7dvD89bUX24I3e3_6-oLg1S_ds)
+ - [3n-spr 200ge cx7 mlx5 gtpu sw](https://csit.fd.io/report/#eNrtlsGKgzAQhp_GvSyzaIz1tIft-h4l1dlWiOmQRLft0zeWwii7LHQp0kMuRvz_cSb5-CHOHyxuHOr3pFgn5ToRZduER5J_vIbFaifydAUDEYj8LbxZ1KgcQm4UOLIg0nSHgrL6WA6oPHT6WEBLcuN7Y1A7WMktZDWg34evO0-9-x717fgT09ixl_i89frRmNWm96yGcWbKgJbF2Zxso_2JPX9NzyXKouKayabY4tFN5vptk-z9sqpD156RC8LhsF4HFCxl9byLP9FEvZ1cWV0dS3OjyO2f3GgRbiLm7W5u4gnyJmLeHsxtmbzJmLe7ucknyJuMeXswN85bUb2Yg-2u98qiugCXaut-)
+ - [3n-spr 200ge cx7 mlx5 wireguard](https://csit.fd.io/report/#eNrtl0FugzAQRU9DN5Ur24TCpouk3CNy8DRBMo41NiTp6WNQpAFVqrqoGinuBhD_DzPjr7fAhyPC1oN5y4pNVm4yWbY6XrJ8_RxvaLzM-SsbnGMyf4lPCAaUB5ZbxbxDJjnfg3SiOZcDqMA6cy5Y61bb0FsLxjNRiGrHRMMgHOL7XrtTi7DvFWrBOQ_W-NNYsBu_ajWOzeX7rfmXSUjVfSA1zrdQBkASF4OTzR0u5PluHSpRCIpqZluSJYCfzfWDnan0A1UHvv0Eqp8OjxxNDGsmNsu24eJm6u0oy3py3D1Z95_sbyXr7pxsgsgmQWyCwCbAa3K0JsBqcqQ-PqdVapxWj89plRqn1R9zWtRP9ojd9O9a1FdcSTlU)
+- reassembly
+ - [3n-icx 100ge e810cq dpdk reassembly](https://csit.fd.io/report/#eNrtVkFugzAQfA29VFthAyGXHpLyjwrMNrEKxvW6aenr69BIC6p6qUTCgYttecar2R2NZPKdw2fC5jHK9lG-j2Su67BEye4-bK4hmcQbOFkLMnkIJ4cNloSQGNDqE0QcH1BagVsRqzeobf0KyvXWdyAysa1AKEB_1DbVllAFeuxNQx8QbqpzHW08lEgy2xxUG6qXRNhWTQ-mdmcd8umi45coRut3z2iQOkFO6Bic9MA0e-yZ83dn_KAMQvnFT8OMeqSRoH-1z8VeXNki6S_kisNkmaGChSNQTYX43o7Qy1TzYmAsyW-7-j2D33Zuv-Wa7-v6LW-bb7nme0l-z57vdM33df1Ob5vvdM33kvzmfGfFnelcO_zTs-IbpihUvQ)
+
+## CSIT-2306 Selected Performance Comparisons
+
+Comparisons 23.06 vs 23.02
+- [2n-icx 100ge e810cq avf 1c 64B PDR](https://csit.fd.io/comparisons/#eNqNkEsOgjAQhk-DG1JTioAbFyoHMMYLNGUwJFDqtBD19LY8LCQuTJq0M_83j_4aahAGikOQnQKWIZSAIAXYdxAfwzGrwUzxDTsrncMh6SqrVq7QoptRe_VKuWDkrdIDehFrzWKaEhZvKSNou3ENHq9kidzTTJJKPElE6R2YimAfUfEgvC99hWjxu3bidonOLkzySS-x0dV7jaS704ox5qXWxCW_TkQ2nHlWozj-4ZKleANm-XFvxIj0vO7gty_p0pdh_ka22Bzcakn-AeXRdNc)
+
+## CSIT-2306 Selected Performance Coverage Data
+
+CSIT-2306 VPP v23.06 coverage data
+- [2n-icx 200ge cx7 mlx5 ip4](https://csit.fd.io/coverage/#eNpVjsEOwiAQRL8GLwaDi5RTD9b-hyG4sSRICSDSv29JD9TLJjNvZjMRLepkZtcTORCQwcbtEn4_7wI466oBj2q8vqnR7P0fyRgaBH5hHQ3bdxWxxfy0HDKOGl0oMPZG8FddZEaV6McW0RoqoGoV429VyPEUp_n3tCqh00tPRN1-tGpKjCsrcD2n)
+
+## Further Information
+
+For further information including instructions how to access the needed
+information with user selectable options, please refer to
+[csit.fd.io documentation]({{< relref "/" >}}).
diff --git a/docs/content/release_notes/previous/csit_rls2306/dpdk_performance.md b/docs/content/release_notes/previous/csit_rls2306/dpdk_performance.md
new file mode 100644
index 0000000000..7d15a50dd8
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2306/dpdk_performance.md
@@ -0,0 +1,38 @@
+---
+title: "DPDK Performance"
+weight: 2
+---
+
+# CSIT 23.06 - DPDK Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 12, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+2. DPDK PERFORMANCE TESTS
+ - Added support for new NICs.
+3. DPDK RELEASE VERSION CHANGE
+ - Version 23.03 is now tested.
+
+# Known Issues
+
+List of known issues in CSIT 23.06 for DPDK performance tests:
+
+## New
+
+List of new issues in CSIT 23.06 for DPDK performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1904](https://jira.fd.io/browse/CSIT-1904) | DPDK 23.03 testpmd starup fails on some testbeds. Different cause but the same consequences as CSIT-1848.
+
+## Previous
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## Fixed
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1848](https://jira.fd.io/browse/CSIT-1848) | 3n-alt: testpmd tests fail due DUT-DUT link taking long to come up. Fixed for 3n-alt on infra level, but reapeared after DPDK bump as CSIT-1904 on multiple more platforms.
diff --git a/docs/content/release_notes/previous/csit_rls2306/trex_performance.md b/docs/content/release_notes/previous/csit_rls2306/trex_performance.md
new file mode 100644
index 0000000000..05f8a5615f
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2306/trex_performance.md
@@ -0,0 +1,40 @@
+---
+title: "TRex Performance"
+weight: 3
+---
+
+# CSIT 23.06 - TRex Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 12, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+2. TREX TESTS
+ - No longer testing scale2m, testing scale20k instead (for AWS reasons).
+3. TREX VERSION
+ - Currently using v3.03 of TRex.
+
+# Known Issues
+
+## New
+
+List of new issues in CSIT 23.06 for TRex performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## Previous
+
+List of known issues in CSIT 23.06 for TRex performance tests
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## Fixed
+
+List of known issues in CSIT 23.02 for TRex performance tests
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1876](https://jira.fd.io/browse/CSIT-1876) | 1n-aws: TRex NDR PDR ALL IP4 scale and L2 scale tests failing with 50% packet loss. Fixed for most scales. Only ip4scale2m still fails, but we removed that from jobspecs.
diff --git a/docs/content/release_notes/previous/csit_rls2306/vpp_device.md b/docs/content/release_notes/previous/csit_rls2306/vpp_device.md
new file mode 100644
index 0000000000..76d47c5c4b
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2306/vpp_device.md
@@ -0,0 +1,26 @@
+---
+title: "VPP Device"
+weight: 4
+---
+
+# CSIT 23.06 - VPP Device
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 12, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+
+# Known Issues
+
+List of known issues in CSIT 23.06 for VPP functional tests in VPP Device:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## New
+
+List of new issues in CSIT 23.06 for VPP functional tests in VPP Device:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
diff --git a/docs/content/release_notes/previous/csit_rls2306/vpp_performance.md b/docs/content/release_notes/previous/csit_rls2306/vpp_performance.md
new file mode 100644
index 0000000000..88bd316e1f
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2306/vpp_performance.md
@@ -0,0 +1,92 @@
+---
+title: "VPP Performance"
+weight: 1
+---
+
+# CSIT 23.06 - VPP Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 12, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+2. VPP PERFORMANCE TESTS
+ - Added tests for IP packet reassembly (using IPsec or GTPU).
+ - Existing IPsec fastpath tests converted to apply optimizations also
+ on inbound (previously only on outbound).
+
+# Known Issues
+
+These are issues that cause test failures
+or otherwise limit usefulness of CSIT testing.
+
+## New
+
+Any issue listed here may have been present also in a previous release,
+but was not detected/recognized/reported enough back then.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1892](https://jira.fd.io/browse/CSIT-1892) | 3n-alt: two-band structure of ipsec and vxlan.
+ 2 | [CSIT-1896](https://jira.fd.io/browse/CSIT-1896) | Depending on topology, l3fwd avoids dut-dut link.
+ 3 | [CSIT-1901](https://jira.fd.io/browse/CSIT-1901) | 3n-icx: negative ipackets on TB38 AVF 4c l2patch.
+ 4 | [CSIT-1904](https://jira.fd.io/browse/CSIT-1904) | DPDK 23.03 testpmd startup fails on some testbeds.
+ 5 | [CSIT-1906](https://jira.fd.io/browse/CSIT-1906) | Zero traffic with cx7 rdma. Cause not know yet, trending uses mlx5-core for cx7 and cx6.
+ 6 | [VPP-2077](https://jira.fd.io/browse/VPP-2077) | IP fragmentation: running_fragment_id is not thread safe. Causes reduced performance and failures in gtpu reassembly tests.
+ 7 | [CSIT-1914](https://jira.fd.io/browse/CSIT-1914) | TRex does not produce latency data on ICE NICs.
+ 8 | [CSIT-1915](https://jira.fd.io/browse/CSIT-1915) | 2n-icx testbeds to not have the same performance
+ 9 | [CSIT-1916](https://jira.fd.io/browse/CSIT-1916) | Poor CPU scaling on 2n-zn2 RDMA.
+ 10 | [CSIT-1917](https://jira.fd.io/browse/CSIT-1917) | TRex STL performance is unstable at high pps due to unsent packets.
+ 11 | [CSIT-1922](https://jira.fd.io/browse/CSIT-1922) | 2n-tx2: af_xdp mrr failures.
+ 12 | [CSIT-1923](https://jira.fd.io/browse/CSIT-1923) | 3n-icx, 3n-snr: first few swasync scheduler tests timing out in runtime stat.
+ 13 | [CSIT-1924](https://jira.fd.io/browse/CSIT-1924) | l3fwd error in 200Ge2P1Cx7Veat-Mlx5 test with 9000B.
+
+## Previous
+
+Issues reported in previous releases which still affect the current results.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1782](https://jira.fd.io/browse/CSIT-1782) | Multicore AVF tests are failing when trying to create interface. Frequency is reduced by CSIT workaround, but occasional failures do still happen.
+ 2 | [CSIT-1785](https://jira.fd.io/browse/CSIT-1785) | NAT44ED tests failing to establish all TCP sessions. At least for max scale, in allotted time (limited by session 500s timeout) due to worse slow path performance than previously measured and calibrated for. CSIT removed the max scale NAT tests to avoid this issue.
+ 3 | [CSIT-1795](https://jira.fd.io/browse/CSIT-1795) | Ocassionally not all DET44 sessions have been established: 4128767 != 4128768
+ 4 | [CSIT-1800](https://jira.fd.io/browse/CSIT-1800) | All Geneve L3 mode scale tests (1024 tunnels) are failing.
+ 5 | [CSIT-1801](https://jira.fd.io/browse/CSIT-1801) | 9000B payload frames not forwarded over tunnels due to violating supported Max Frame Size (VxLAN, LISP, SRv6)
+ 6 | [CSIT-1802](https://jira.fd.io/browse/CSIT-1802) | all testbeds: AF-XDP - NDR tests failing from time to time.
+ 7 | [CSIT-1804](https://jira.fd.io/browse/CSIT-1804) | All testbeds: NDR tests failing from time to time.
+ 8 | [CSIT-1808](https://jira.fd.io/browse/CSIT-1808) | All tests with 9000B payload frames not forwarded over memif interfaces.
+ 9 | [CSIT-1809](https://jira.fd.io/browse/CSIT-1809) | All tests with 9000B payload frames not forwarded over vhost-user interfaces.
+ 10 | [CSIT-1827](https://jira.fd.io/browse/CSIT-1827) | 3n-icx, 3n-skx: all AVF crypto tests sporadically fail. 1518B with no traffic, IMIX with excessive packet loss
+ 11 | [CSIT-1849](https://jira.fd.io/browse/CSIT-1849) | 2n-skx, 2n-clx, 2n-icx: UDP 16m TPUT tests fail to create all sessions.
+ 12 | [CSIT-1864](https://jira.fd.io/browse/CSIT-1864) | 2n-clx: half of the packets lost on PDR tests.
+ 13 | [CSIT-1881](https://jira.fd.io/browse/CSIT-1881) | 2n-icx: NFV density tests ocassionally breaks VPP which fails to start.
+ 14 | [CSIT-1883](https://jira.fd.io/browse/CSIT-1883) | 3n-snr: All hwasync wireguard tests failing when trying to verify device.
+ 15 | [CSIT-1884](https://jira.fd.io/browse/CSIT-1884) | 2n-clx, 2n-icx: All NAT44DET NDR PDR IMIX over 1M sessions BIDIR tests failing to create enough sessions.
+ 16 | [CSIT-1885](https://jira.fd.io/browse/CSIT-1885) | 3n-icx: 9000b ip4 ip6 l2 NDRPDR AVF tests are failing to forward traffic.
+ 17 | [CSIT-1886](https://jira.fd.io/browse/CSIT-1886) | 3n-icx: Wireguard tests with 100 and more tunnels are failing PDR criteria.
+
+## Fixed
+
+Issues reported in previous releases which were fixed in this release:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1799](https://jira.fd.io/browse/CSIT-1799) | All NAT44-ED 16M sessions CPS scale tests fail while setting NAT44 address range.
+ 2 | [CSIT-1890](https://jira.fd.io/browse/CSIT-1890) | 3n-alt: Tests failing until 40Ge Interface comes up. The fix for CSIT-1848 was enough to prevent this from happening.
+ 3 | [CSIT-1835](https://jira.fd.io/browse/CSIT-1835) | 3n-icx: QUIC vppecho BPS tests failing on timeout when checking hoststack finished.
+ 4 | [CSIT-1877](https://jira.fd.io/browse/CSIT-1877) | 3n-tsh: all VM tests failing to boot VM. Fixed by increasing the timeout.
+
+# Root Cause Analysis for Regressions
+
+List of RCAs in CSIT 23.06 for VPP performance regressions.
+
+Contrary to issues, these regressions do not limit usefulness of CSIT testing.
+So even if they are not fixed (e.g. when the regression is an expected
+consequence of added functionality), they will not be re-listed in the next
+release report.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1912](https://jira.fd.io/browse/CSIT-1912) | trending regression: l2scale around 2023-03-18.
+ 2 | [CSIT-1918](https://jira.fd.io/browse/CSIT-1918) | summarize performance consequences of ipsec changes.
+ 3 | [CSIT-1919](https://jira.fd.io/browse/CSIT-1919) | rls2306: find cause of wireguard regression.
+ 4 | [CSIT-1920](https://jira.fd.io/browse/CSIT-1920) | find cause of zn2 mlx5 memif regression near 2023-04-11.
+ 5 | [CSIT-1921](https://jira.fd.io/browse/CSIT-1921) | investigate two-band structure in SRv6.
diff --git a/docs/content/release_notes/previous/csit_rls2310/_index.md b/docs/content/release_notes/previous/csit_rls2310/_index.md
new file mode 100644
index 0000000000..6be4f8811e
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2310/_index.md
@@ -0,0 +1,109 @@
+---
+bookCollapseSection: true
+bookFlatSection: false
+title: "CSIT rls2310"
+weight: 1
+---
+
+# CSIT-2310 Release Report
+
+This section includes release notes for FD.io CSIT-2310. The CSIT report
+was published on **Nov-08 2023**. The release plan is published on
+[CSIT wiki](https://wiki.fd.io/view/CSIT/csit2310_plan) pages.
+
+## CSIT-2310 Release Notes
+
+- [VPP Performance]({{< relref "vpp_performance" >}})
+- [DPDK Performance]({{< relref "dpdk_performance" >}})
+- [TRex Performance]({{< relref "trex_performance" >}})
+- [VPP Device]({{< relref "vpp_device" >}})
+
+## CSIT-2310 Release Data
+
+To access CSIT-2310 Release data please use following web resources:
+
+- [CSIT Per Release Performance](https://csit.fd.io/report/)
+ - `CSIT Release` > `rls2310`
+ - `DUT` > `vpp`
+ - `DUT Version` > `23.10-release`
+ - `Infra` > `testbed-nic-driver of choice`
+ - `Area` > `IPv4 Routing` `IPv4 Tunnels` `IPv6 Routing` `Hoststack` ...
+ - `Test` > `test of chioce`
+ - `Frame Size` > `64B` `78B`
+ - `Number of Cores` > `1C` `2C` `4C`
+ - `Test Type` > `MRR` `NDR` `PDR`
+- [CSIT Per Release Comparisons](https://csit.fd.io/comparisons/) for VPP
+ v23.10 vs v23.06
+ - `REFERENCE VALUE`
+ - `DUT` > `vpp`
+ - `CSIT and DUT version` > `rls2310-23.06-release`
+ - `Infra` > `testbed-nic-driver of choice`
+ - `Frame Size` > `64B` `78B`
+ - `Number of Cores` > `1C` `2C` `4C`
+ - `Measurement` > `Latency` `MRR` `NDR` `PDR`
+ - `COMPARED VALUE`
+ - `Parameter` > `Release and Version`
+ - `Value` > `rls2310-23.10-release`
+- [CSIT Per Release Coverage Data](https://csit.fd.io/coverage/)
+ - `CSIT Release` > `rls2310`
+
+## CSIT-2310 Selected Performance Tests
+
+CSIT-2310 VPP v23.10 Performance Tests:
+
+- ip4
+ - [2n-icx 100ge e810cq avf ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstOwzAQ_JpwQYvsjUO4cKDkP5BxtjQiTc3aRJSvx60qbSJAKlJLLz74pRlrxzsaySFumJ4C9fdFtSjqRYF116apKB-u08J9wFIrGL0HLG_SjqknGwhwgM59gFbqhdBrutPKvYEdl9B5A7fmGbQDiqvdKY3gbE-oXoGHFoaWdyXw8VDiWz1B2_coaFIxQ0ZiAWfyhOZX2wnnN9HCt0xWLiTlAkUKEzE_v03YS7ZrCt0nyZXUFcFdarxA2s3rxK2foIeG1c2e8U8u-ezS31zy53MJc5aOdwkvlSXMWTqVS2fMkslZOt4lc6ksmZylU7kkWaqaq2HD6_1fr2q-ANRarhY)
+ - [2n-spr 100ge e810cq avf ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVstOwzAQ_JpwQYvsjUO4cGjJfyDjbGlEmpq1iVS-HreqtIkAqUgtvfjgl2asHe9oJIe4ZXoO1D8W1bKolwXWXZumolzcpoX7gKVWMHoPWN6lHVNPNhDgAMEzaKVeCb2mB63cO9hxBZ03cG9eQDuguN6f0gjO9oTqDXhoYWh5XwKfjiW-1RO0_YiCJhUzZCQWcCZPaH69m3B-Ey18y2TlQlIuUKQwEfPz24S9Yruh0H2SXEldEdylxguk3bxO3PkJemxY3RwY_-SSzy79zSV_OZcwZ-l0l_BaWcKcpXO5dMEsmZyl010y18qSyVk6l0uSpaq5Gba8Ofz1quYLCMeu4g)
+ - [2n-spr 100ge e810cq dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEX2xiFcONDmH8jYC42apmbtViqvx60qbSLgEKmllxzi2JpdzXhHIzmmLdNrpO65qBZFvSiwbn1eivLlPv-4i1hqBfsQAMuHvGPqyEYC7CEGBq3UB2HQ9KSV-wQf_BraYODRvIF2QGl1POUvOtsRqjVw76H3fOTA5ZnjB6GgfpcEzTJGyJ5YwJE-KQurw6DmT9XSYJmsdGTpAiWKAzW_X06q39luKLZfJC15LIK7PHqBtBvzpEMYoOeJ1c2p4r98CrNPE30KV_QJ5zxN8Alvliec83Qxn66ZJzPnaYJP5mZ5MnOeLuaT5Klq7votb07vvqr5BoUvs6o)
+ - [2n-spr 200ge cx7 mlx5 ip4scale20k-rnd](https://csit.fd.io/report/#eNrtVkFqwzAQfI17KVvstVyfemjifxRV3jamsiNWqkny-ighsDZtD4akuehgWWJ2mdEOA_Jhy_Tmyb5k1SqrVxnWXRuXrHx9jD-2Hssih9E5wPIp7pgsaU-AA3jHgHn-SegKs6tH0gF6u6ugcwqe1TsUBihsTqf4eaMtYf4FPLQwtHwiwfWF5AejoO13EDTqmCEjsYAzgVLmNvtJzd-ypUMzaWmJ2gUK5Cdyfr-dVH-w7sl3B5KWOBfBTRy-QIWZ84S9m6CXkdXNueLfnHLJqaVOuVs6hSlTS5zC-2UKU6au59RNM6VSppY4pe6XKZUydT2nJFNV8zBsuT-_AavmCHrbvZo)
+ - [2n-c6in 200ge c6in.4xl ena dpdk ip4scale20k-rnd](https://csit.fd.io/report/#eNrtl91qwzAMhZ8muxkasdI0u9lFu7zH8GxtDU1dYWeF7unnhIISuo0V2rUXvsgf5wQp-jiIhG7r6SVQ-5SVy6xaZlg1Np6yYnEfL74NWKgcdsyAxUO889SSDgTowMwbB5jn76RYkdNg2a6h4RmoUj2-gjJA3ap_jkcwuiXM1-CdBWd9XwOfDzWOCopqPzpRYxsTZUdexEl_YuPVfuT5oWuxa09a_LFxkToKo16-_zRxv3m9odB8krwyjEUcJo5-JJpppW7PI_UwsaoeHP_FiROnEznxBTlhytMJnPBqecKUp7Nxukye5rO0nY4oxaHc0m76nREnRjewl3pGaSv9nRFeKUdpI52LkeSorO_c1m-G_6ay_gIud5KJ)
+- ip6
+ - [2n-icx 100ge e810cq avf ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_Br3UrZIa7vOpYek_o-gypvG1HHUlWKafn2VEFibtpBC0lx00IsZsaMdBuTDlmnpqXvKykVWLTKs2iZOWT6_jwt3HnOtYHAOMH-IO6aOjCfAHlr7AVqpV0KnaaaVfQczrKB1j1DNXkBboLA-nOLw1nSE6g24b6Bv-FACn08lvtUTtNkFQaOKCTIQCziRJzS33o84v4kWvmEyciEqFyiQH4n5-W3CXrHZkG8_Sa7ErghuY-MF0nZaJ-zdCD01rKqPjH9yySWX_uaSu55LmLJ0vkt4qyxhytKlXLpiloqUpfNdKm6VpSJl6VIuSZbK-q7f8ub41yvrL2w7rpo)
+ - [2n-spr 100ge e810cq avf ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVstqwzAQ_Br3ErZIa7vOJYem_o-iypvG1HHUlWpIv75KCKxNE0ghaS466MWM2NEOA_Jhy_TqqVtk5TKrlhlWbROnLH-exYU7j7lWMDgHmD_GHVNHxhNgD94xaKXeCZ2muVb2E8ywgtY9QTV_A22Bwnp_isNb0xGqD-C-gb7hfQl8OZb4VU_Q5isIGlVMkIFYwIk8obn1bsQ5J1r4hsnIhahcoEB-JOb024S9YrMh336TXIldEdzGxguk7bRO2LkRemxYVR8Y_-SSSy79zSV3O5cwZelyl_BeWcKUpWu5dMMsFSlLl7tU3CtLRcrStVySLJX1Q7_lzeGvV9Y_oJmvZg)
+ - [2n-spr 100ge e810cq dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEX2JiG9cGjJP5CxFxo1Tc3aVCqvx60qbSLgEKmlFx_i2JpdzXhHIznEHdNLoP6pqFdFsyqw6VxainJ5n37cByy1gr33gOVD2jH1ZAIBDhA8g1bqndBrWmhlP8B5t4HOP0KzeAVtgeL6eEpfsKYnVBvgwcHg-MiBz2eOH4SCus8oaJIxQfbEAk70SZlfH0Y1f6qWBsNkpCNJFyhSGKn5_XJS_cZmS6H7ImlJYxHcptELpO2UJx78CD1PrGlPFf_lk88-zfTJX9EnzHma4RPeLE-Y83Qxn66ZpyrnaYZP1c3yVOU8XcwnyVPd3g073p7efXX7DR_mtC4)
+ - [2n-spr 200ge cx7 mlx5 ip6scale20k-rnd](https://csit.fd.io/report/#eNrtVkFOwzAQfE24oEXJJsFcOFDyj8o4C41wUmvtRi2vx60qbSLgEKmlFx_i2JpdzXhHI9mHLdPak33O6lWmVhmqro1LVr7cxx9bj2WRw-gcYPkQd0yWtCfAAbxjwDz_IHSF2auRdIDe7mvo3COopzcoDFDYHE_x80ZbwvwTeGhhaPlIgq9nkh-Mgra7IGjUMUNGYgFnAqXMbQ6Tmr9lS4dm0tIStQsUyE_k_H47qX5n3ZPvvkha4lwEN3H4AhVmzhMOboKeR6aaU8W_OeWSU0udctd0ClOmljiFt8sUpkxdzqmrZqpKmVriVHW7TFUpU5dzSjJVN3fDlvvTG7BuvgEYaL4e)
+ - [2n-c6in 200ge c6in.4xl ena dpdk ip6scale20k-rnd](https://csit.fd.io/report/#eNrtV8tqwzAQ_Br3UrZYaxz10kMT_0dRpW1j4ihCUgPJ10cxgbVJCw3YTQ86-MWM2fEOw-AQd57eAnUvRb0s5LJA2Zp0KqrXx3TxXcBKlLB3DrB6SneeOlKBAC3oRWsBy_KThBNkFRhnNtC6BYhaPL-D0EBxfX5OR9CqIyw34K0Ba_x5Bq4uM64GMmq-IqNJxgjZk2dwpI9pbn0YcH5QzXTlSTE_CWcoUhho-f7TmP3h1ZZCeyR-pV8LM3Ra_QDU40nx4AboZWOy6Rl_5ZPLPt3ok5vRJ8x5usEnvFueMOdpMp_myZPM7XTtkvxf3SRzM03o0Xw5yq30e4_wTjnKjTSVR5yjunmwO7_t_5vq5gQ3AJMR)
+- ipsec
+ - [3n-icx 100ge e810cq avf 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYQqndiwfXvodh6ewuSX8QsG59emndhG2MiZql9cClP5kBBr58yQRjO43PBuuHJN8mxTahhazcI8keb91L14ZmJIVeKaDZnfvSWCM3CFkLUpyApOkBqSK4Ial4Ad7vQehB2Q5ITjY7IALQHqViUhkULLVtbd7A_e_GSWRrgaOh-f1BNNBWelyZPp1X_lKGj1av1kddcbNIj9oHZ1X7NHUcfM63e_H5XCP3Az636KMWzUU9P92wH7_XvEEj39FPMh2fzxAO00VQzNe2g7qIns-xKKeMdZmqyPQqTFVgpjR6GoApXdVTGj1dnGloT1n0NABTtqqnLHq6ONNwnspGnmLb-1ek4-n9t67310SjpFchGtjR2PIGIErXdDQ2vIsTDexobHcDEGVrOhqb3cWJekfz8qbtdDPd9eblB2eNK04)
+ - [3n-icx 100ge cx6 dpdk 40tnlsw](https://csit.fd.io/report/#eNrtmM1OhDAQgJ8GL2YMLSB78eDKexi2jLuN_NS2rotPb8FNBmJM1GzBQy_8ZKbttF--ZFJjO42PBuu7KNtG-TbiuazcI0rur91L14YnLIajUsCTG_elscbSICQtSHECFsd75IrhhsXiBSpVPYPQvbIdsIxtdsAEoD1IlUplUKSxbWvzBu5_N8wiWwslGp7d7kUDbaWHpfnDeekvdVC0erUUddXNIkfUFJyVTWnq0FPO95uhAaXGkkZ87pGiFs2koJ_umMY_6bJBI9-RJhnPjzKEAzUJivnatleT6Pkg82LMWJmqClQvQ1X5psqDqz6o8nVd5cHV5al6dzUNrvqgmq7rahpcXZ6qR1dlI0-hBf4z1OH4_l0H_GumQdTLMPXtaWh_fTDlq3oamt_lmfr2NLS-Ppimq3oaGt_lmZKnWXHVdroZ74Cz4gOO6TTe)
+ - [3n-spr 100ge e810cq avf 40tnlsw](https://csit.fd.io/report/#eNrtmM1OhDAQgJ8GL2YMLUX24mFX3sOUMrvbhJ_aVhSfXsBNCjEmarbgoRd-MtN22i9fMqmxrcYng9VDlB6i7BDRTJbDI0r2t8NLV4YmJIZOKaDJ3fClsUJuEJKmAKM0kDg-IVUEdyQWz8C7IwjdK9sCScmuACIA7VkqJpVBwWLbVOYVhv9inEU2Fjgamt6fRA1Nqcel6eNl6S91uGj5Yl10qG4R6VC74KJsl6bOvcv5fjNuANfI3YjPPbqoRTMr6Kc7duOPmtdo5Du6SabzcxliADULiuXatlez6OUgs3zK2JiqClSvQ1X5pkqDqz6o0m1dpcHV9al6d5UFV31QZdu6yoKr61P16Kqs5Vtogf8MdTy-f9cB_5ppEPU6TH17GtpfH0zppp6G5nd9pr49Da2vD6ZsU09D47s-U-dpmt80ra6nO-A0_wCYWTYW)
+ - [3n-spr 200ge cx7 mlx5 40tnlsw](https://csit.fd.io/report/#eNrtmM1OxCAQgJ-mXsyYloL14sG172FYdtwl6Q8BrK1PL62b0MbEaFzEA5f-ZAYY-PIlE4ztNT4ZbO4ztsuqXUYqeXCPrHy4di_dGFIWOQxKASlv3JfGBrlBKDsORmkgeX5EogoxVgNyC20zMhB6UraHghV3eygEoD1JRaUyKGhuu8a8gvvfz_PIzgJHQ9jtUbTQHfS8OHk8L_6pEh89vFgfdfVtIgNqH9wU7tPUafI5X23HD-EauR_zsUsftWhWJX13z378s-YtGvmGfpLlBH2GcLBWQbFd205qFT0fZVUvGdHJqkT2UmRVeLIkORuGLIntLEnOxiD7B87S5GwYsjS2szQ5G4NsUGdlK8fUGv8C7HyA_7Az_jHXJOyluIb3NbXFYbiSyL6mpjgG1_C-ppY4DFca2dfUEMfg6n1l9VXX63a5M2b1O03_U24)
+- hoststack quic
+ - [3n-icx 100ge e810cq dpdk ip4udpquic](https://csit.fd.io/report/#eNrlVctuwyAQ_Br3Um0FuJZz6aGp_6PCsK1RSExYHCX5-hIr6tpqc80hvgDSzOxrtIJSH_GT0L8V1bqo14Wqnc1HUb4_5yt6UqUUcAgBVPmSXxE9akIod-DMEaQQ36iCxJUUZg822A10PSVK2mxAqpVoQRrA1IELr4MN-8GZ9hIgh0TT9dAGuuRTH9d8f5IzaofEaNbPkANGBme1Mi10J-bc7oAFOqJmxW9jTEhIk5put8mKr6i3SO6MLBvHxAyTLZmAZp4tncIEvU6vbkbGnfwjoz1mvpeCFuDjf-0-qJ_LsvOR3VzWct55N6vmadfH7fhnVs0PcG8JiA)
+ - [3n-icx 100ge cx6 mlx5 ip4udpquic](https://csit.fd.io/report/#eNrlVdFKxDAQ_Jr6IitJaq0vPtzZ_5A0XW0xvcZsWnp-vbly3LZoQUFE7l6SwMxkd3YIodB5fCK0D0m2TfJtovKmikuSbq7j5i2pVAoYnAOV3sSTR4uaENIdNGYEKcQLKifNeFeN0Noxg7qjQEGbV5DqXpQgDWCooXG3feXe-saUB328EU3dQenoUE49Hst9qs1o1QdGo36BDOgZXLTKNFfvmbNqgPnao2bByRcTAtKspXWXrHj2ukVq3pFl05SYYWIgM9Asq4W9m6HH4eXFxPhRehrIeVAn9_mAOnwzQDLaohTGSkH_Ich1L7-U5VeGzzbTS4v0vBO9tEf6x280K652nW-n3zMrPgCceREo)
+ - [3n-spr 100ge e810cq dpdk ip4udpquic](https://csit.fd.io/report/#eNrlVdFOwyAU_Zr6Yq4BatO9-ODW_zAUrrYZWxmXLs6vlzaLt40uRmOWZb4AyTmHew-HAMUu4BOhe8iKZVYuM1W2Ng1Z_nibpuBI5VLA3ntQ-V1aBXSoCSHfQmteQQrxgspLXEhhdmC9XUPTUaSozRqkWogapAGMDbT-vrd-17eGjHaY-E4KGrZG03RQexrqqtWx7qcmGLV9ZDTpZ8geA4OznpnmmwNzTjthgQ6oWfFhkAkRadLT93ZZ-Rz0Bql9Q5aPx8YMkyKagGZeNR78BD2eYlmNjB_lWQP58LtA62GHCwjypIU_SnLq87oS5DtK_yHIL-xeY54X88KeJ88zv7BFdbPtwmb8OYvqHYwFDDo)
+ - [3n-spr 200ge cx7 mlx5 ip4udpquic](https://csit.fd.io/report/#eNrlVctugzAQ_Bp6qbayTRG99NCU_6jMsi2oJrheg5J-fR0UdUF9HHMIF9vSzOxrtDLHIdALk3vMil1W7jJTdk06svzpNl3Bscm1gsl7MPldegVyZJkg31tgH8Ao9UbGazyUE9kIvTsU0A4cOVp8B20eVA0agWILnb8fG_8xdlifQqSghO0AtedTRvN8zvgjvaDNGAVN-hUyURBwVa3QfHsUzn89iMQGsqL5bk0IkXhR1d-NiuI12J64-ySRzYMSBiZbFiCus8WjX6Dn-ZXVzLiYh4zWkVbotOJNePlbw1fr6dYsvW5Ht7akF97RorrZD6Gf_9Ci-gLUOhO4)
+- hoststack tcp udp
+ - [3n-icx 100ge e810cq dpdk ip4tcp ipudp](https://csit.fd.io/report/#eNrlVctOwzAQ_JpwQYv8aAgXDi35D-TYWxLVbYzXrShfjxtVbCJUeoJDc7Etz4x3xyPLlPqIr4T-uShXRbUqVNW5PBR6eZ-n6ElpKeAQAij9kFcRPRpC0Dvo7AdIId5QBYlPUth3cMFtoO0pUTJ2A3LxKBqQFjC10IVFsqE5ib0L-ZzeuLyJca2hCXQqql7ORX90wKjbJ0ZzXxPkgJHBScNMC-2ROZdtsMBENKz4dseEhDTq6YpXlq2j2SJ1n8ja4cKYYXM4I9BOS6ZjGKHnK6zqgfEPSZI1HqX1UtBcAv3N8m3kunfzeaGXvN5MknN7oVcs_32uZX236-N2-EvL-guSthDO)
+ - [3n-icx 100ge cx6 mlx5 ip4tcp ipudp](https://csit.fd.io/report/#eNrlVcFuwyAM_ZrsMnkK0DSnHdblPyYC7hKNNAjTKu3Xl0bVnGjqeuqluQDiPWM_P1lQ7AN-Ebr3rNhk5SaTZWvTkqmP17QFR1KJHA7eg1Rv6RTQoSYEtYPWDCDy_BulF2ZY2wE6NxTQ9BQpavMDYrXOaxAGMDbQ-lU0vr7EOuvTM7226RLDVkHt6ZJTfl5z_imAUbuPjKayZsgBA4OzepnmmyNzbqpgvg6oOeBXHBMi0qSkO1I5bBt0h9SekGPHfjHDJGsmoJmnjEc_Qa8dLKuR8XgfyWiHwjiR00Ls_E_xU7i6t4uZzltSn8XHhU3nHcWPd7WoXnZ96MY_tKjOtngQvg)
+ - [3n-spr 100ge e810cq dpdk ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qbYCO6576aGJ_xFh2NRWSLxlSaT09SVW1LVVNTm1h_gCiJlhdxghOPYB14z-NSuXWbXM8qpzaciKt8c0Bc95oRUciSAvntIqoEfDCMW-AaYAWql3zEnji1b2Axy5LbQ9R47GbkEvnlUD2gLGFjpaREvNWe0dpYN649Imhk0BDfG5ar66VP3RgqDuEAVNjU2QIwYBJx0LjdqTcK74EIUJaETybU8IEXnU1A2zItsEs0PuPlG0w40Jw6Z4RqCdlownGqGXO6zqgfEfWbI1HrX1WvFsIr3m-U6SPbgZvdLfzN5PlrN7pTc8_32yZf2w78Nu-FPL-guYeBRm)
+ - [3n-spr 200ge cx7 mlx5 ip4tcp ipudp](https://csit.fd.io/report/#eNrlVUFuwyAQfI17qTYCHNenHpr4HxWGTW0Vx4glVtLXh1hR11bV5NQe4gsgZobdYYSg2Ad8J3SvWbHJyk2mytamIcvfntMUHKlcChi8B5Wv0iqgQ00I-V4D-QBKiA9UXppjOaCO0LljAU1PkaI2nyDXL6IGaQBjA61fR-Pri9xZn07qtU2bGHY51J4uZdX2WvZHD4zaQ2Q0dTZDBgwMzlpmmm9OzLllhCU6oGbNtz8mRKRJV3fcsmwXdIfUfiFrxytjhkkBTUAzLxlPfoJeL7GsRsa_pElGO5TGSUHLCfWW6UfJ9mCX9FJ_c_tAaS7vpd4x_ffZFtXTvg_d-LcW1Rmr3hr-)
+- nat44
+ - [2n-icx 100ge e810cq avf ethip4tcp tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3UrboYcm-9JDU_xEUeVMbHGcrKSbp11dOA7IphkJLCyEXvWZWu6NhkQ8HhxuP3XOm1lmxzkTR1nHI5OoxTq7zQnIGAxEI-RRXDjs0HkH00NoTcMZeURDHkjP7BmbYQUv5eLwFbgFDE7fB0ni6HeMazkQOpCV4nSsuINAxQF-7Mal4uSb9UkFC62NIaKxrhgzoEjgrONGoOU84SzIS3zg0KSDqSFBAPynmm2JT-M6ZPfr2HdMd48Mlgo3mTDA7zxzONEGvT1hUF8a_OUl3J3_qJP25k1opqT_V5VyUhS5vuy0X9N5MZy75SXc_f7U_VfXQH9z-8neq6gMfivTL)
+ - [2n-spr 100ge e810cq avf ethip4tcp-nat44ed tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3UrbobV96SOr_KKq8qQ2Os5UUQ_r1ldOAbIqh0NJCyEWvGWl3dlgU4sHjc8D-sdDbotwWouyaNBRyc58m3wchOYORCIR8SCuPPdqAIAYI5IEz9oqCOFacuTew4w46UtPxC3AHGNu0jY5gsFEpbKDlTCggIyEYpbmASMcIQ-OnoOLpEvRLBhltjjGjKa8FMqLP4CLhTKP2NOOsych869HmC0lOhiKGWTLfFJuv77zdY-jeMb8xFS4TXDJnhrll5HiiGXopYVmfGf_mJN2c_KmT9OdOGq2l-VSnuKhKU113W67ovZrOXPOTbn7-an_q-m44-P3579T1BzVA87M)
+ - [2n-spr 100ge e810cq avf ethip4tcp-nat44ed cps](https://csit.fd.io/report/#eNrtVdtKw0AQ_Zr4IiPZa_LigzX_UdbN1ATSdNxdA-3Xu9bCJGhBUBRKX_bCmdkzZw7DxrQLuI443BdmVVSrQlZ9m5dCPdzmLQxRKlHCRARS3eVTwAFdRJAjRAogyvIZJQmsRelfwE0b6EmD1U8gPGDq8i15gtElrbGFTpRSA1kF0WojJHiKMLbhnVI-nig_8TPaviZGc1ULZMLA4KJcDqNuP4s5J4LjXUDHCVkNQwnjrJjvaeXsTXBbjP0B-YncNcZ9NoYh4Ze8aU8z9NTAqjlG_JOLdHXxZy7SX7tojVH2Q5oWsq5sfdHj-LXcC5nIM17S1ctfnEvT3Iy7sD3-laZ5A9RG7kM)
+ - [2n-spr 200ge cx7 mlx5 ethip4tcp-nat44ed tput](https://csit.fd.io/report/#eNrtVctqwzAQ_Br3Urbo7Vx6SOr_KKq8rQ22s0iKSfL1UdKAbIqh0EIg5KIHs6ud2WFRiFuP7wG710JvinJTiLKt01LI9XPafBeE5AxGIhDyJZ08dmgDghggkAfB2BcK4m5fjmgj9N1eQ0sKOGMfwB1gbNI1OoLBRqWwhoYzoYCMhGCU5gIi7SIMtT-XFW_Xsj84ZLTexYwmZjNkRJ_BGeUcRs1hErMsJGdYjzanJEEZihgmdH4pN6d_ettjaI-Y3zi3Lge4ZNAEc_PK8UAT9NrEsrpE3NBNerj5dzfpBm4araX51qe4WJVmde_juaD4jiZ0yVN6ePrPc6qrp2Hr-8tfqqsTm1_9gw)
+- tunnels (gnv, vxlan, gtpu)
+ - [2n-icx 100ge e810cq avf ethip4udpgeneve](https://csit.fd.io/report/#eNrtVsGKwjAQ_Zp6WUaa1Nq97EG3_yExHbVQ42ySFvXrTaUwrcvCHgSh9ZKEvDeZmTweifMnixuH1VeUrqNsHcmsLMIQJauPMNnKyUTE0BCBTOZhZbFC5RCkgVKfQcTxHiUJ_BSx_gHV7KCkxcbXxmDlYLnYgtCA_hB2oZvrgvZosEEQy0BsA7btkaawbWb53WX-VQajRe0ZDcUNkAYtg4OqmUaHS4_zVy_MVxYVB_RaZIpH1yvqXy1z8M6qI7ryinxCuDvGdZCJIaGHaf2Femh3j1l-Z7xWU3pr-hRN6bWaTs-mY3fp9Ew6co_KdHqP6bDnMfr0QVV6q_psr6b5zJzs8f7_TfMbuUIa-Q)
+ - [3n-icx 100ge cx6 mlx5 gtpu sw](https://csit.fd.io/report/#eNrtls2OwiAUhZ-ms5lcUyi1KxejfQ9T6R1tQpEAdeo8vdSY3DYzLjT-bNiUhnPgXvhyEpzfW1w7VIskXybFMuFFU4dPkn19hsEqxzOWwsEY4Nks_FlUWDmETEMje2BpukVumOzndQ-t6nNojFj7TmtUDuZiA0wC-l2Y3XrTuZ9B3ww76NoOhfjqUuhPVVLrzpMaepkoB7QkTpokm9kdyXO1dfJXFitaMDoRWTy6UVP_nZC837Zq0TW_SAvCzZAuAwSSmJxW8UczUi_XVpRnx0uJmUjsHmLm-cR4zNhtxPi7M8Zjxh5J7AUZEzFjtxET786YiBl7JDHKWF5-6L1tz2_GvDwB7trbpg)
+ - [3n-spr 200ge cx7 mlx5 vxlan](https://csit.fd.io/report/#eNrtVcFuwjAM_ZpymTy1KV1PHAb9D5SmHlRKg-WEquzrF1glt0Jw4YCEuCRRnl_s5ycrPhwYtx7tKinWSblOVNk2cUny74-4sfUqz1LoiUDln_HEaFF7hNxp8MSg0nSHijIzlD3qAJ0dCmhpuQ1H59B6-FrWkBnAsI-3_WC1A6vqpo6PdNpYduAaPmdUmzHjVXpBm2MQNBY1Q3pkAWfVShjtTxJzT4NQNKMWzkSahAT0k7puSxXGD-sOffuLQouNEtxEWwTKzDxXONEEHftXVpeI53hIbw8f8pCe4-FgzsJefAL_Rb7U7I2-0du3h-etqBbuwN3l_yuqP89g_Ys)
+ - [3n-spr 200ge cx7 mlx5 gtpu sw](https://csit.fd.io/report/#eNrtlsGKgzAQhp_GvSxTNMb1tIdtfY-S6mwrxHRIotvu0zeWwii7LHQp0kMuRvz_cSb5-CHOHy1uHer3pFgn5ToRZduER5J_vIbFaifyLIWBCES-Cm8WNSqHkBsFjiyINN2joKw-lQMqD50-FdCS3PreGNQO3uQOshrQH8LXvafefY36bvyJaezYS2xuvX40ZrXpPathnJkyoGVxNifb6HBmz1_Tc4myqLhmsim2eHSTuX7bJHs_rerQtd_IBeFwWK8DCpayet7Fn2mi3k6urK6OpblR5PZPbrQINxHzdjc38QR5EzFvD-a2TN5kzNvd3OQT5E3GvD2YG-etqF7M0XbXe2VRXQDvw-sG)
+ - [3n-spr 200ge cx7 mlx5 wireguard](https://csit.fd.io/report/#eNrtVl1rwyAU_TXZy3BEM4kve1iX_1FsvGsDxsrVpO1-_Uwo3ITB9jJWqHtR8Zzr_TgcMMQjwjaAfSnkpqg3hag7k5aien1MG9ogKl6y0Xsmqqd0QrCgA7DKaRY8MlGWexCet-d6BB1Zb8-Sdf55GwfnwAbGJVc7xlsG8ZDuB-NPHcJ-0Gh4WUZnw2ni76ZHncEpt3i75v5SCKFmiISm8lbICEjgqm6i-cOFON91QyEaQVPMokmiRAiLun5umSLfUfcQug-g8Hl0xGiTVAuwXWeNF79Ar5Osm5lxa139v66_pKu_qa7ZuTUDr2bn1Pv3qcrNp-r-fapy86n6Y5_K5sEdsZ__wbL5BNyDKzU)
+- reassembly
+ - [3n-icx 100ge e810cq dpdk reassembly](https://csit.fd.io/report/#eNrtVstOwzAQ_JpwQYtiJyG9cKDkP1DiLK1FHovXFMLX44ZKmwhxQUrbQy625RmvZnc0ktn3Dp8Zm4co20b5NtK5rcMSJY-3YXMN60TFcCACndyFk8MGS0ZIOrDmE1Qc71CTwo2KzRvUVL-CcQP5HlSmNhUoA-j3llJLjCbQY981_AHhpjrWsZ2HElln9zvThuolM7ZVM0BXu6MO_XTS8UuUoPW7FzRInSEHdALOehAa7Qfh_N2ZPCiDUHnx07CgHnki6F_tS7EXV7bI9gul4jhZYZhg4QQ0cyF-oAl6mmpejIxr8ptWvxfwm5b2W6_5Pq_f-rL51mu-r8nvxfOdrvk-r9_pZfOdrvm-Jr8l31lx0_WuHf_pWfENqTFURQ)
+
+## CSIT-2310 Selected Performance Comparisons
+
+Comparisons 23.10 vs 23.06
+- [2n-icx 100ge e810cq avf 1c 64B PDR](https://csit.fd.io/comparisons/#eNqNkNEOgiAUhp_GbhoNMLWbLjIfoLVegOGxuSnSAV319IFa5NZFGwPO-b_DOfwGGpAWyn2U5RHPECpAUBLcPYoP6ylrwM7xBXsnHddj0lfWnVqgZf9G3TFo7YOJd8oAGERsDI8ZJTze0JSge00YCHitKhSB5orU8k4YpVfgmsGOUXkjYqhChezwM3biZ2FHHybFrFfYmvq5RNJtvmCsfeglcSrOM5GN692r1QL_cMlRogX7_fFgxIQMounhpy9u__Jl7L9SHbZ7P1pSvADjNnTM)
+
+## CSIT-2310 Selected Performance Coverage Data
+
+CSIT-2310 VPP v23.10 coverage data
+- [2n-icx 200ge cx7 mlx5 ip4](https://csit.fd.io/coverage/#eNpVjsEOwiAQRL8GLwYDi4RTD2r_wxDcWBKkBBDp37ekB-plk5k3s5mEDk22sx-IuhNQ0aXtEnE77wIEZ82ARzNe39xpCeGPFIwdgrhwRuP2XSfssTAth4yn1lQKjL0RAjdVFdSZflyVvaEj6l6x4dqEGk9pmn9PpzN6swxEtu1Hq6XkuAIlQT2d)
+
+## Further Information
+
+For further information including instructions how to access the needed
+information with user selectable options, please refer to
+[csit.fd.io documentation]({{< relref "/" >}}).
diff --git a/docs/content/release_notes/previous/csit_rls2310/dpdk_performance.md b/docs/content/release_notes/previous/csit_rls2310/dpdk_performance.md
new file mode 100644
index 0000000000..cc18385376
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2310/dpdk_performance.md
@@ -0,0 +1,38 @@
+---
+title: "DPDK Performance"
+weight: 2
+---
+
+# CSIT 23.10 - DPDK Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 13, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+2. DPDK PERFORMANCE TESTS
+ - No updates
+3. DPDK RELEASE VERSION CHANGE
+ - Version 23.07 is now tested.
+
+# Known Issues
+
+List of known issues in CSIT 23.10 for DPDK performance tests:
+
+## New
+
+List of new issues in CSIT 23.10 for DPDK performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## Previous
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1904](https://jira.fd.io/browse/CSIT-1904) | DPDK 23.03 testpmd starup fails on some testbeds. Different cause but the same consequences as CSIT-1848.
+
+## Fixed
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
diff --git a/docs/content/release_notes/previous/csit_rls2310/trex_performance.md b/docs/content/release_notes/previous/csit_rls2310/trex_performance.md
new file mode 100644
index 0000000000..3d91f8e164
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2310/trex_performance.md
@@ -0,0 +1,40 @@
+---
+title: "TRex Performance"
+weight: 3
+---
+
+# CSIT 23.10 - TRex Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 13, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+2. TREX TESTS
+ - No updates
+3. TREX VERSION
+ - Currently using v3.03 of TRex.
+
+# Known Issues
+
+## New
+
+List of new issues in CSIT 23.10 for TRex performance tests:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## Previous
+
+List of known issues in CSIT 23.10 for TRex performance tests
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## Fixed
+
+List of known issues in CSIT 23.10 for TRex performance tests
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
diff --git a/docs/content/release_notes/previous/csit_rls2310/vpp_device.md b/docs/content/release_notes/previous/csit_rls2310/vpp_device.md
new file mode 100644
index 0000000000..6e00090798
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2310/vpp_device.md
@@ -0,0 +1,27 @@
+---
+title: "VPP Device"
+weight: 4
+---
+
+# CSIT 23.10 - VPP Device
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 13, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+
+# Known Issues
+
+List of known issues in CSIT 23.10 for VPP functional tests in VPP Device:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | |
+
+## New
+
+List of new issues in CSIT 23.10 for VPP functional tests in VPP Device:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1931](https://jira.fd.io/browse/CSIT-1931) | Vhost test not running in device jobs
+ 2 | [CSIT-1932](https://jira.fd.io/browse/CSIT-1932) | 1n-spr: Occasional packet loss in L2 tests
diff --git a/docs/content/release_notes/previous/csit_rls2310/vpp_performance.md b/docs/content/release_notes/previous/csit_rls2310/vpp_performance.md
new file mode 100644
index 0000000000..34cf277b3d
--- /dev/null
+++ b/docs/content/release_notes/previous/csit_rls2310/vpp_performance.md
@@ -0,0 +1,106 @@
+---
+title: "VPP Performance"
+weight: 1
+---
+
+# CSIT 23.10 - VPP Performance
+
+1. TEST FRAMEWORK
+ - **CSIT test environment** version has been updated to ver. 13, see
+ [Environment Versioning]({{< ref "../../../infrastructure/fdio_csit_testbed_versioning" >}}).
+ - **General Code Housekeeping**: Ongoing code optimizations and bug fixes.
+ - **Trending**: Ndrpdr tests use newer code (MLRsearch 1.2.1) and configuration,
+ gaining more stability and speed. Release results still use the old code
+ to keep comparability with RC1 and RC2 results.
+2. VPP PERFORMANCE TESTS
+ - Added 2n-c6in testbed.
+3. PRESENTATION AND ANALYTICS LAYER
+ - [Performance dashboard](https://csit.fd.io/) got updated with graphs
+ presenting bandwidth in bits per second for MRR and NDRPDR tests.
+
+# Known Issues
+
+These are issues that cause test failures or otherwise limit usefulness of CSIT
+testing.
+
+## New
+
+Any issue listed here may have been present also in a previous release,
+but was not detected/recognized/reported enough back then.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1935](https://jira.fd.io/browse/CSIT-1935) | Zero traffic reported in udpquic tests due to session close errors.
+ 2 | [CSIT-1936](https://jira.fd.io/browse/CSIT-1936) | TRex occasionally sees link down in L2 perf tests.
+ 3 | [CSIT-1937](https://jira.fd.io/browse/CSIT-1937) | Small but frequent loss in ASTF UDP on cx7 mlx5.
+ 4 | [CSIT-1938](https://jira.fd.io/browse/CSIT-1938) | 3n-alt: High scale ipsec policy tests may crash VPP.
+ 5 | [CSIT-1939](https://jira.fd.io/browse/CSIT-1939) | 3na-spr, 2n-zn2: VPP fails to start in first test cases.
+ 6 | [CSIT-1940](https://jira.fd.io/browse/CSIT-1940) | Hardware acceleration does not work yet.
+ 7 | [CSIT-1941](https://jira.fd.io/browse/CSIT-1941) | TRex may wrongly detect link bandwidth.
+ 8 | [CSIT-1942](https://jira.fd.io/browse/CSIT-1942) | 3nb-spr hoststack: Interface not up after first test.
+ 9 | [CSIT-1943](https://jira.fd.io/browse/CSIT-1943) | IMIX 4c tests may fail PDR due to ~10% loss.
+ 10 | [VPP-2087](https://jira.fd.io/browse/VPP-2087) | VPP crash and other symptoms in tests with AVF, jumbo packets.
+ 11 | [VPP-2088](https://jira.fd.io/browse/VPP-2088) | virtio: Bad CLI argument parsing introduced with tx-queue-size.
+ 12 | [CSIT-1944](https://jira.fd.io/browse/CSIT-1944) | Memif LXC: unrecognized option '--no-validate'.
+ 13 | [CSIT-1945](https://jira.fd.io/browse/CSIT-1945) | Some srv6 9000B tests crash VPP.
+ 14 | [VPP-2090](https://jira.fd.io/browse/VPP-2090) | MRR < PDR: DPDK plugin with MLX5 driver does not read full queue.
+ 15 | [VPP-2091](https://jira.fd.io/browse/VPP-2091) | Memif crashes with jumbo frames.
+
+## Previous
+
+Issues reported in previous releases which still affect the current results.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1782](https://jira.fd.io/browse/CSIT-1782) | Multicore AVF tests are failing when trying to create interface. Frequency is reduced by CSIT workaround, but occasional failures do still happen.
+ 2 | [CSIT-1785](https://jira.fd.io/browse/CSIT-1785) | NAT44ED tests failing to establish all TCP sessions. At least for max scale, in allotted time (limited by session 500s timeout) due to worse slow path performance than previously measured and calibrated for. CSIT removed the max scale NAT tests to avoid this issue.
+ 3 | [CSIT-1795](https://jira.fd.io/browse/CSIT-1795) | Ocassionally not all DET44 sessions have been established: 4128767 != 4128768
+ 4 | [CSIT-1802](https://jira.fd.io/browse/CSIT-1802) | All testbeds: AF-XDP - NDR tests failing from time to time on small loss.
+ 5 | [CSIT-1804](https://jira.fd.io/browse/CSIT-1804) | 3n-tsh: NDR fails on ierrors.
+ 6 | [CSIT-1849](https://jira.fd.io/browse/CSIT-1849) | 2n-clx, 2n-icx: UDP 16m TPUT tests fail to create all sessions.
+ 7 | [CSIT-1881](https://jira.fd.io/browse/CSIT-1881) | 2n-icx: NFV density tests ocassionally breaks VPP which fails to start.
+ 8 | [CSIT-1883](https://jira.fd.io/browse/CSIT-1883) | 3n-snr: All hwasync wireguard tests failing when trying to verify device.
+ 9 | [CSIT-1886](https://jira.fd.io/browse/CSIT-1886) | 3n-icx: Wireguard tests with 100 and more tunnels are failing PDR criteria.
+ 10 | [CSIT-1892](https://jira.fd.io/browse/CSIT-1892) | 3n-alt: Unexpected two-band structure of ipsec and vxlan.
+ 11 | [CSIT-1896](https://jira.fd.io/browse/CSIT-1896) | Depending on topology, l3fwd avoids dut-dut link.
+ 12 | [CSIT-1901](https://jira.fd.io/browse/CSIT-1901) | 3n-icx: Negative ipackets on TB38 AVF 4c l2patch.
+ 13 | [CSIT-1904](https://jira.fd.io/browse/CSIT-1904) | DPDK 23.03 testpmd startup fails on some testbeds.
+ 14 | [CSIT-1906](https://jira.fd.io/browse/CSIT-1906) | Zero traffic with cx7 rdma. Testing migrated to mlx5-core on all Mellanox NICs.
+ 15 | [VPP-2077](https://jira.fd.io/browse/VPP-2077) | IP fragmentation: running_fragment_id is not thread safe. Causes reduced performance and failures in gtpu reassembly tests.
+ 16 | [CSIT-1914](https://jira.fd.io/browse/CSIT-1914) | TRex does not produce latency data on ICE NICs.
+ 17 | [CSIT-1915](https://jira.fd.io/browse/CSIT-1915) | The 2n-icx testbeds to not have the same performance.
+ 18 | [CSIT-1916](https://jira.fd.io/browse/CSIT-1916) | Poor CPU scaling on 2n-zn2 RDMA.
+ 19 | [CSIT-1917](https://jira.fd.io/browse/CSIT-1917) | TRex STL performance is unstable at high pps due to unsent packets.
+ 20 | [CSIT-1921](https://jira.fd.io/browse/CSIT-1921) | Two-band structure in SRv6, causes PDR failure in rare cases.
+ 21 | [CSIT-1922](https://jira.fd.io/browse/CSIT-1922) | 2n-tx2: AF_XDP MRR failures. On other testbeds MRR regressions and PDR failures.
+ 22 | [CSIT-1924](https://jira.fd.io/browse/CSIT-1924) | An l3fwd error in 200Ge2P1Cx7Veat-Mlx5 test with 9000B.
+
+## Fixed
+
+Issues reported in previous releases which were fixed in this release:
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1800](https://jira.fd.io/browse/CSIT-1800) | All Geneve L3 mode scale tests (1024 tunnels) are failing.
+ 2 | [CSIT-1801](https://jira.fd.io/browse/CSIT-1801) | 9000B payload frames not forwarded over tunnels due to violating supported Max Frame Size (VxLAN, LISP, SRv6).
+ 3 | [CSIT-1809](https://jira.fd.io/browse/CSIT-1809) | All tests with 9000B payload frames not forwarded over vhost-user interfaces.
+ 4 | [CSIT-1864](https://jira.fd.io/browse/CSIT-1864) | 2n-clx: Half of the packets lost on PDR tests.
+ 5 | [CSIT-1884](https://jira.fd.io/browse/CSIT-1884) | 2n-clx, 2n-icx: All NAT44DET NDR PDR IMIX over 1M sessions BIDIR tests failing to create enough sessions.
+ 6 | [CSIT-1923](https://jira.fd.io/browse/CSIT-1923) | 3n-icx, 3n-snr: First few swasync scheduler tests timing out in runtime stat.
+
+# Root Cause Analysis for Regressions
+
+List of RCAs in CSIT 23.10 for VPP performance regressions.
+Not listing differences caused by known issues (uneven worker load
+due to randomized RSS or other per-worker issues).
+Also not listing tests which historically show large performance variance.
+
+Contrary to issues, these genuine regressions do not limit usefulness
+of CSIT testing. So even if they are not fixed
+(e.g. when the regression is an expected consequence of added functionality),
+they will not be re-listed in the next release report.
+
+**#** | **JiraID** | **Issue Description**
+------|--------------------------------------------------|--------------------------------------------------------------
+ 1 | [CSIT-1933](https://jira.fd.io/browse/CSIT-1933) | Regression in nat44ed tests around 2023-09-07.
+ 2 | [CSIT-1934](https://jira.fd.io/browse/CSIT-1934) | Regression in nginx rps around 2023-10-09.
diff --git a/docs/cpta/data/index.rst b/docs/cpta/data/index.rst
deleted file mode 100644
index 432851f011..0000000000
--- a/docs/cpta/data/index.rst
+++ /dev/null
@@ -1,79 +0,0 @@
-Performance Data
-================
-
-Performance test data used to generate the trending graphs is available
-in the CSV formats:
-
-**VPP MRR**
-
- - 3n-hsw
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-trending.csv>`_
-
- - 3n-skx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-3n-skx-trending.csv>`_
-
- - 2n-skx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-2n-skx-trending.csv>`_
-
- - 2n-clx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-2n-clx-trending.csv>`_
-
- - 2n-zn2
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-2n-zn2-trending.csv>`_
-
- - 3n-tsh
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-3n-tsh-trending.csv>`_
-
- - 3n-dnv
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-3n-dnv-trending.csv>`_
-
- - 2n-dnv
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-2n-dnv-trending.csv>`_
-
-**VPP NDRPDR**
-
- - 3n-hsw
-
- - `CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw-trending.csv>`_
-
- - 3n-skx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-3n-skx-trending.csv>`_
-
- - 2n-skx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-skx-trending.csv>`_
-
- - 2n-clx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-clx-trending.csv>`_
-
-**DPDK MRR**
-
- - 3n-hsw
-
- - `CSV format <../_static/vpp/csit-dpdk-perf-mrr-weekly-master-trending.csv>`_
-
- - 3n-skx
-
- - `CSV format <../_static/vpp/csit-dpdk-perf-mrr-weekly-master-3n-skx-trending.csv>`_
-
- - 2n-skx
-
- - `CSV format <../_static/vpp/csit-dpdk-perf-mrr-weekly-master-2n-skx-trending.csv>`_
-
- - 2n-clx
-
- - `CSV format <../_static/vpp/csit-dpdk-perf-mrr-weekly-master-2n-clx-trending.csv>`_
-
- - 2n-zn2
-
- - `CSV format <../_static/vpp/csit-dpdk-perf-mrr-weekly-master-2n-zn2-trending.csv>`_
diff --git a/docs/cpta/index.rst b/docs/cpta/index.rst
deleted file mode 100644
index 6dc3a3cfc6..0000000000
--- a/docs/cpta/index.rst
+++ /dev/null
@@ -1,61 +0,0 @@
-Continuous Performance Trending
-===============================
-
-This document contains VPP performance dashboard, trending graphs and
-performance test data. It is generated using FD.io CSIT continuous
-performance trending and analysis jobs and is updated daily. See
-:ref:`trending_methodology` section for more details including trend
-analysis and anomaly detection methodology.
-
-.. toctree::
- :maxdepth: 2
- :caption: FD.io Performance Dashboard
-
- Description <introduction/introduction>
- Dashboard <introduction/dashboard>
- Failed Tests <introduction/failures>
- Weekly Comparison <introduction/weekly>
-
-.. toctree::
- :maxdepth: 2
- :caption: Trending Methodology
-
- Methodology <methodology/index>
-
-.. toctree::
- :maxdepth: 2
- :caption: MRR Trending Graphs
-
- trending/l2
- trending/ip4
- trending/ip6
- trending/srv6
- trending/ip4_tunnels
- trending/nat44
- trending/vhost
- trending/container_memif
- trending/ipsec
- trending/vts
- trending/nf_service_density
- trending/dpdk
-
-.. toctree::
- :maxdepth: 2
- :caption: NDRPDR Trending Graphs
-
- ndrpdr_trending/l2
- ndrpdr_trending/ip4
- ndrpdr_trending/ip6
- ndrpdr_trending/srv6
- ndrpdr_trending/ip4_tunnels
- ndrpdr_trending/nat44
- ndrpdr_trending/vhost
- ndrpdr_trending/container_memif
- ndrpdr_trending/ipsec
- ndrpdr_trending/vts
-
-.. toctree::
- :maxdepth: 2
- :caption: Performance Data
-
- Download <data/index>
diff --git a/docs/cpta/introduction/dashboard.rst b/docs/cpta/introduction/dashboard.rst
deleted file mode 100644
index b41ec542dd..0000000000
--- a/docs/cpta/introduction/dashboard.rst
+++ /dev/null
@@ -1,199 +0,0 @@
-Data Plane Performance
-======================
-
-Legend to the tables:
-
- - **Test Case**: name of FD.io CSIT test case, naming convention
- `here <https://wiki.fd.io/view/CSIT/csit-test-naming>`_.
- - **Trend [Mpps]**: last value of performance trend.
- - **Short-Term Change [%]**: Relative change of last trend value
- vs. last week trend value.
- - **Long-Term Change [%]**: Relative change of last trend value vs.
- maximum of trend values over the last quarter except last week.
- - **Regressions [#]**: Number of regressions detected.
- - **Progressions [#]**: Number of progressions detected.
-
-2n-skx
-------
-
-VPP worker on 2t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-skx.rst
-
-VPP worker on 4t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t2c-2n-skx.rst
-
-VPP worker on 8t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-8t4c-2n-skx.rst
-
-NDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-skx-ndr.rst
-
-PDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-skx-pdr.rst
-
-3n-skx
-------
-
-VPP worker on 2t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-3n-skx.rst
-
-VPP worker on 4t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t2c-3n-skx.rst
-
-VPP worker on 8t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-8t4c-3n-skx.rst
-
-NDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-3n-skx-ndr.rst
-
-PDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-3n-skx-pdr.rst
-
-3n-hsw
-------
-
-VPP worker on 1t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-1t1c-3n-hsw.rst
-
-VPP worker on 2t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t2c-3n-hsw.rst
-
-VPP worker on 4t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t4c-3n-hsw.rst
-
-
-NDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-1t1c-3n-hsw-ndr.rst
-
-PDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-1t1c-3n-hsw-pdr.rst
-
-3n-tsh
-------
-
-VPP worker on 1t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-1t1c-3n-tsh.rst
-
-VPP worker on 2t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t2c-3n-tsh.rst
-
-VPP worker on 4t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t4c-3n-tsh.rst
-
-2n-dnv
-------
-
-VPP worker on 1t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-1t1c-2n-dnv.rst
-
-VPP worker on 2t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t2c-2n-dnv.rst
-
-VPP worker on 4t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t4c-2n-dnv.rst
-
-3n-dnv
-------
-
-VPP worker on 1t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-1t1c-3n-dnv.rst
-
-VPP worker on 2t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t2c-3n-dnv.rst
-
-VPP worker on 4t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t4c-3n-dnv.rst
-
-2n-clx
-------
-
-VPP worker on 2t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-clx.rst
-
-VPP worker on 4t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t2c-2n-clx.rst
-
-VPP worker on 8t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-8t4c-2n-clx.rst
-
-NDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-clx-ndr.rst
-
-PDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-clx-pdr.rst
-
-2n-zn2
-------
-
-VPP worker on 2t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-zn2.rst
-
-VPP worker on 4t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t2c-2n-zn2.rst
-
-VPP worker on 8t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-8t4c-2n-zn2.rst
diff --git a/docs/cpta/introduction/failures.rst b/docs/cpta/introduction/failures.rst
deleted file mode 100644
index 7f9394fea4..0000000000
--- a/docs/cpta/introduction/failures.rst
+++ /dev/null
@@ -1,74 +0,0 @@
-Failed Tests
-============
-
-The table lists the tests which failed over the <N=14> runs of the trending
-jobs.
-
-Legend to the tables:
-
- - **Test Case**: name of FD.io CSIT test case, naming convention
- `here <https://wiki.fd.io/view/CSIT/csit-test-naming>`_.
- - **Failures [#]**: number of test failures over the trending period.
- - **Last Failure [Time]**: timestamp of last failure.
- - **Last Failure [VPP-Build-Id]**: VPP build as of last failure.
- - **Last Failure [CSIT-Job-Build-Id]**: CSIT build as of last failure.
-
-2n-skx-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-2n-skx.rst
-
-2n-skx-ndrpdr
--------------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-2n-skx-ndrpdr.rst
-
-3n-skx-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-skx.rst
-
-3n-skx-ndrpdr
--------------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-skx-ndrpdr.rst
-
-3n-hsw-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-hsw.rst
-
-3n-hsw-ndrpdr
--------------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-hsw-ndrpdr.rst
-
-3n-tsh-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-tsh.rst
-
-2n-dnv-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-2n-dnv.rst
-
-3n-dnv-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-dnv.rst
-
-2n-clx-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-2n-clx.rst
-
-2n-clx-ndrpdr
--------------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-2n-clx-ndrpdr.rst
-
-2n-zn2-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-2n-zn2.rst
diff --git a/docs/cpta/introduction/introduction.rst b/docs/cpta/introduction/introduction.rst
deleted file mode 100644
index e095d8f18b..0000000000
--- a/docs/cpta/introduction/introduction.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-Description
-===========
-
-Performance dashboard tables provide the latest VPP throughput trend,
-trend compliance and detected anomalies, all on a per VPP test case
-basis. Linked trendline graphs enable further drill-down into the
-trendline compliance, sequence and nature of anomalies, as well as
-pointers to performance test builds/logs and VPP (or DPDK) builds.
-Performance trending is currently based on the Maximum Receive Rate (MRR) tests.
-MRR tests measure the packet forwarding rate under the maximum load offered
-by traffic generator over a set trial duration, regardless of packet
-loss. See :ref:`trending_methodology` section for more detail including
-trend and anomaly calculations.
-
-Data samples are generated by the CSIT VPP (and DPDK) performance trending jobs
-executed twice a day (target start: every 12 hrs, 02:00, 14:00 UTC). All
-trend and anomaly evaluation is based on an algorithm which divides test runs
-into groups according to minimum description length principle.
-The trend value is the population average of the results within a group.
-
-Tested VPP worker-thread-core combinations (1t1c, 2t1c, 2t2c, 4t2c, 4t4c, 8t4c)
-are listed in separate tables in section 1.x. Followed by trending methodology
-in section 2. and trending graphs in sections 3.x. Performance test data
-used for trending graphs is provided in sections 4.x.
diff --git a/docs/cpta/introduction/weekly.rst b/docs/cpta/introduction/weekly.rst
deleted file mode 100644
index bf73a585ce..0000000000
--- a/docs/cpta/introduction/weekly.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-NDRPDR Weekly Comparison
-========================
-
-2n-skx
-------
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-skx-2t1c-ndr_in.html>`_
- - `ASCII 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-skx-2t1c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-skx-2t1c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-skx-2t1c-pdr_in.html>`_
- - `ASCII 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-skx-2t1c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-skx-2t1c-pdr.csv>`_
-
-3n-skx
-------
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-skx-2t1c-ndr_in.html>`_
- - `ASCII 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-skx-2t1c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-skx-2t1c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-skx-2t1c-pdr_in.html>`_
- - `ASCII 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-skx-2t1c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-skx-2t1c-pdr.csv>`_
-
-2n-clx
-------
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-clx-2t1c-ndr_in.html>`_
- - `ASCII 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-clx-2t1c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-clx-2t1c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-clx-2t1c-pdr_in.html>`_
- - `ASCII 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-clx-2t1c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-clx-2t1c-pdr.csv>`_
-
-3n-hsw
-------
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-hsw-1t1c-ndr_in.html>`_
- - `ASCII 1t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-hsw-1t1c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-hsw-1t1c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-hsw-1t1c-pdr_in.html>`_
- - `ASCII 1t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-hsw-1t1c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-hsw-1t1c-pdr.csv>`_
diff --git a/docs/cpta/methodology/index.rst b/docs/cpta/methodology/index.rst
deleted file mode 100644
index cbcfcb50cb..0000000000
--- a/docs/cpta/methodology/index.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-.. _trending_methodology:
-
-Trending Methodology
-====================
-
-.. toctree::
-
- overview
- performance_tests
- trend_analysis
- trend_presentation
- jenkins_jobs
- testbed_hw_configuration
- perpatch_performance_tests
diff --git a/docs/cpta/methodology/jenkins_jobs.rst b/docs/cpta/methodology/jenkins_jobs.rst
deleted file mode 100644
index 677e0bc748..0000000000
--- a/docs/cpta/methodology/jenkins_jobs.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-Jenkins Jobs
-------------
-
-Performance Trending (PT)
-`````````````````````````
-
-CSIT PT runs regular performance test jobs measuring and collecting MRR
-data per test case. PT is designed as follows:
-
-1. PT job triggers:
-
- a) Periodic e.g. twice a day.
- b) On-demand gerrit triggered.
-
-2. Measurements and data calculations per test case:
-
- a) Max Received Rate (MRR) - for each trial measurement,
- send packets at link rate for trial duration,
- count total received packets, divide by trial duration.
-
-3. Archive MRR values per test case.
-4. Archive all counters collected at MRR.
-
-Performance Analysis (PA)
-`````````````````````````
-
-CSIT PA runs performance analysis
-including anomaly detection as described above.
-PA is defined as follows:
-
-1. PA job triggers:
-
- a) By PT jobs at their completion.
- b) On-demand gerrit triggered.
-
-2. Download and parse archived historical data and the new data:
-
- a) Download RF output.xml files from latest PT job and compressed
- archived data from nexus.
- b) Parse out the data filtering test cases listed in PA specification
- (part of CSIT PAL specification file).
-
-3. Re-calculate new groups and their averages.
-
-4. Evaluate new test data:
-
- a) If the existing group is prolonged => Result = Pass,
- Reason = Normal.
- b) If a new group is detected with lower average =>
- Result = Fail, Reason = Regression.
- c) If a new group is detected with higher average =>
- Result = Pass, Reason = Progression.
-
-5. Generate and publish results
-
- a) Relay evaluation result to job result.
- b) Generate a new set of trend summary dashboard, list of failed
- tests and graphs.
- c) Publish trend dashboard and graphs in html format on
- https://docs.fd.io/.
- d) Generate an alerting email. This email is sent by Jenkins to
- csit-report@lists.fd.io
diff --git a/docs/cpta/methodology/overview.rst b/docs/cpta/methodology/overview.rst
deleted file mode 100644
index ecea051116..0000000000
--- a/docs/cpta/methodology/overview.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-Overview
---------
-
-This document describes a high-level design of a system for continuous
-performance measuring, trending and change detection for FD.io VPP SW
-data plane (and other performance tests run within CSIT sub-project).
-
-There is a Performance Trending (PT) CSIT module, and a separate
-Performance Analysis (PA) module ingesting results from PT and
-analysing, detecting and reporting any performance anomalies using
-historical data and statistical metrics. PA does also produce
-trending dashboard, list of failed tests and graphs with summary and
-drill-down views across all specified tests that can be reviewed and
-inspected regularly by FD.io developers and users community.
diff --git a/docs/cpta/methodology/performance_tests.rst b/docs/cpta/methodology/performance_tests.rst
deleted file mode 100644
index 82e64f870a..0000000000
--- a/docs/cpta/methodology/performance_tests.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-Performance Tests
------------------
-
-Performance trending relies on Maximum Receive Rate (MRR) tests.
-MRR tests measure the packet forwarding rate, in multiple trials of set
-duration, under the maximum load offered by traffic generator
-regardless of packet loss. Maximum load for specified Ethernet frame
-size is set to the bi-directional link rate.
-
-Current parameters for performance trending MRR tests:
-
-- **Ethernet frame sizes**: 64B (78B for IPv6 tests) for all tests, IMIX for
- selected tests (vhost, memif); all quoted sizes include frame CRC, but
- exclude per frame transmission overhead of 20B (preamble, inter frame
- gap).
-- **Maximum load offered**: 10GE and 40GE link (sub-)rates depending on NIC
- tested, with the actual packet rate depending on frame size,
- transmission overhead and traffic generator NIC forwarding capacity.
-
- - For 10GE NICs the maximum packet rate load is 2* 14.88 Mpps for 64B,
- a 10GE bi-directional link rate.
- - For 40GE NICs the maximum packet rate load is 2* 18.75 Mpps for 64B,
- a 40GE bi-directional link sub-rate limited by the packet forwarding
- capacity of 2-port 40GE NIC model (XL710) used on T-Rex Traffic
- Generator.
-
-- **Trial duration**: 1 sec.
-- **Number of trials per test**: 10.
-- **Test execution frequency**: twice a day, every 12 hrs (02:00,
- 14:00 UTC).
-
-Note: MRR tests should be reporting bi-directional link rate (or NIC
-rate, if lower) if tested VPP configuration can handle the packet rate
-higher than bi-directional link rate, e.g. large packet tests and/or
-multi-core tests. In other words MRR = min(VPP rate, bi-dir link rate,
-NIC rate).
diff --git a/docs/cpta/methodology/perpatch_performance_tests.rst b/docs/cpta/methodology/perpatch_performance_tests.rst
deleted file mode 100644
index c1d3d669b1..0000000000
--- a/docs/cpta/methodology/perpatch_performance_tests.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-Per-patch performance tests
----------------------------
-
-Updated for CSIT git commit id: 661035ac4ce6e51649f302fe2b7a8218257c0587.
-
-A methodology similar to trending analysis is used for comparing performance
-before a DUT code change is merged. This can act as a verify job to disallow
-changes which would decrease performance without a good reason.
-
-Existing jobs
-`````````````
-
-VPP is the only project currently using such jobs.
-They are not started automatically, must be triggered on demand.
-They allow full tag expressions, but some tags are enforced (such as MRR).
-
-Only the three types of tesbed based on Xeon processors have jobs created.
-Their Gerrit triggers words are "perftest-3n-hsw", "perftest-3n-skx"
-and "perftest-2n-skx".
-
-If additional arguments are added to the Gerrit trigger, they are treated
-as Robot tag expressions to select tests to run. For more details
-on existing tags, see `tag documentation rst file`_.
-
-Basic operation
-```````````````
-
-The job builds VPP .deb packages for both the patch under test
-(called "current") and its parent patch (called "parent").
-
-For each test (from a set defined by tag expression),
-both builds are subjected to several trial measurements (BMRR).
-Measured samples are grouped to "parent" sequence,
-followed by "current" sequence. The same Minimal Description Length
-algorithm as in trending is used to decide whether it is one big group,
-or two smaller gropus. If it is one group, a "normal" result
-is declared for the test. If it is two groups, and current average
-is less then parent average, the test is declared a regression.
-If it is two groups and current average is larger or equal,
-the test is declared a progression.
-
-The whole job fails (giving -1) if some trial measurement failed,
-or if any test was declared a regression.
-
-Temporary specifics
-```````````````````
-
-The Minimal Description Length analysis is performed by
-jumpavg-0.1.3 available on PyPI.
-
-In hopes of strengthening of signal (code performance) compared to noise
-(all other factors influencing the measured values), several workarounds
-are applied.
-
-In contrast to trending, trial duration is set to 10 seconds,
-and only 5 samples are measured for each build.
-Both parameters are set in ci-management.
-
-This decreases sensitivity to regressions, but also decreases
-probability of false positives.
-
-Console output
-``````````````
-
-The following information as visible towards the end of Jenkins console output,
-repeated for each analyzed test.
-
-The original 5 values are visible in order they were measured.
-The 5 values after processing are also visible in output,
-this time sorted by value (so people can see minimum and maximum).
-
-The next output is difference of averages. It is the current average
-minus the parent average, expressed as percentage of the parent average.
-
-The next three outputs contain the jumpavg representation
-of the two groups and a combined group.
-Here, "bits" is the description length; for "current" sequence
-it includes effect from "parent" average value
-(jumpavg-0.1.3 penalizes sequences with too close averages).
-
-Next, a sentence describing which grouping description is shorter,
-by how much bits.
-Finally, the test result classification is visible.
-
-The algorithm does not track test case names,
-so test cases are indexed (from 0).
diff --git a/docs/cpta/methodology/testbed_hw_configuration.rst b/docs/cpta/methodology/testbed_hw_configuration.rst
deleted file mode 100644
index 7914de5674..0000000000
--- a/docs/cpta/methodology/testbed_hw_configuration.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-Testbed HW configuration
-------------------------
-
-The testbed HW configuration is described on
-`this FD.IO wiki page <https://wiki.fd.io/view/CSIT/CSIT_LF_testbed#FD.IO_CSIT_testbed_-_Server_HW_Configuration>`_.
diff --git a/docs/cpta/methodology/trend_analysis.rst b/docs/cpta/methodology/trend_analysis.rst
deleted file mode 100644
index 9916f20350..0000000000
--- a/docs/cpta/methodology/trend_analysis.rst
+++ /dev/null
@@ -1,106 +0,0 @@
-Trend Analysis
---------------
-
-All measured performance trend data is treated as time-series data that
-can be modelled as concatenation of groups, each group modelled
-using normal distribution. While sometimes the samples within a group
-are far from being distributed normally, currently we do not have a
-better tractable model.
-
-Here, "sample" should be the result of single trial measurement,
-with group boundaries set only at test run granularity.
-But in order to avoid detecting causes unrelated to VPP performance,
-the default presentation (without /new/ in URL)
-takes average of all trials within the run as the sample.
-Effectively, this acts as a single trial with aggregate duration.
-
-Performance graphs always show the run average (not all trial results).
-
-The group boundaries are selected based on `Minimum Description Length`_.
-
-Minimum Description Length
-``````````````````````````
-
-`Minimum Description Length`_ (MDL) is a particular formalization
-of `Occam's razor`_ principle.
-
-The general formulation mandates to evaluate a large set of models,
-but for anomaly detection purposes, it is useful to consider
-a smaller set of models, so that scoring and comparing them is easier.
-
-For each candidate model, the data should be compressed losslessly,
-which includes model definitions, encoded model parameters,
-and the raw data encoded based on probabilities computed by the model.
-The model resulting in shortest compressed message is the "the" correct model.
-
-For our model set (groups of normally distributed samples),
-we need to encode group length (which penalizes too many groups),
-group average (more on that later), group stdev and then all the samples.
-
-Luckily, the "all the samples" part turns out to be quite easy to compute.
-If sample values are considered as coordinates in (multi-dimensional)
-Euclidean space, fixing stdev means the point with allowed coordinates
-lays on a sphere. Fixing average intersects the sphere with a (hyper)-plane,
-and Gaussian probability density on the resulting sphere is constant.
-So the only contribution is the "area" of the sphere, which only depends
-on the number of samples and stdev.
-
-A somehow ambiguous part is in choosing which encoding
-is used for group size, average and stdev.
-Different encodings cause different biases to large or small values.
-In our implementation we have chosen probability density
-corresponding to uniform distribution (from zero to maximal sample value)
-for stdev and average of the first group,
-but for averages of subsequent groups we have chosen a distribution
-which disourages delimiting groups with averages close together.
-
-Our implementation assumes that measurement precision is 1.0 pps.
-Thus it is slightly wrong for trial durations other than 1.0 seconds.
-Also, all the calculations assume 1.0 pps is totally negligible,
-compared to stdev value.
-
-The group selection algorithm currently has no parameters,
-all the aforementioned encodings and handling of precision is hardcoded.
-In principle, every group selection is examined, and the one encodable
-with least amount of bits is selected.
-As the bit amount for a selection is just sum of bits for every group,
-finding the best selection takes number of comparisons
-quadratically increasing with the size of data,
-the overall time complexity being probably cubic.
-
-The resulting group distribution looks good
-if samples are distributed normally enough within a group.
-But for obviously different distributions (for example `bimodal distribution`_)
-the groups tend to focus on less relevant factors (such as "outlier" density).
-
-Anomaly Detection
-`````````````````
-
-Once the trend data is divided into groups, each group has its population average.
-The start of the following group is marked as a regression (or progression)
-if the new group's average is lower (higher) then the previous group's.
-
-In the text below, "average at time <t>", shorthand "AVG[t]"
-means "the group average of the group the sample at time <t> belongs to".
-
-Trend Compliance
-````````````````
-
-Trend compliance metrics are targeted to provide an indication of trend
-changes over a short-term (i.e. weekly) and a long-term (i.e.
-quarterly), comparing the last group average AVG[last], to the one from week
-ago, AVG[last - 1week] and to the maximum of trend values over last
-quarter except last week, max(AVG[last - 3mths]..ANV[last - 1week]),
-respectively. This results in following trend compliance calculations:
-
-+-------------------------+---------------------------------+-----------+-------------------------------------------+
-| Trend Compliance Metric | Trend Change Formula | Value | Reference |
-+=========================+=================================+===========+===========================================+
-| Short-Term Change | (Value - Reference) / Reference | AVG[last] | AVG[last - 1week] |
-+-------------------------+---------------------------------+-----------+-------------------------------------------+
-| Long-Term Change | (Value - Reference) / Reference | AVG[last] | max(AVG[last - 3mths]..AVG[last - 1week]) |
-+-------------------------+---------------------------------+-----------+-------------------------------------------+
-
-.. _Minimum Description Length: https://en.wikipedia.org/wiki/Minimum_description_length
-.. _Occam's razor: https://en.wikipedia.org/wiki/Occam%27s_razor
-.. _bimodal distribution: https://en.wikipedia.org/wiki/Bimodal_distribution
diff --git a/docs/cpta/methodology/trend_presentation.rst b/docs/cpta/methodology/trend_presentation.rst
deleted file mode 100644
index e9918020c5..0000000000
--- a/docs/cpta/methodology/trend_presentation.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-Trend Presentation
-------------------
-
-Performance Dashboard
-`````````````````````
-
-Dashboard tables list a summary of per test-case VPP MRR performance
-trend and trend compliance metrics and detected number of anomalies.
-
-Separate tables are generated for each testbed and each tested number of
-physical cores for VPP workers (1c, 2c, 4c). Test case names are linked to
-respective trending graphs for ease of navigation through the test data.
-
-Failed tests
-````````````
-
-The Failed tests tables list the tests which failed over the specified seven-
-day period together with the number of fails over the period and last failure
-details - Time, VPP-Build-Id and CSIT-Job-Build-Id.
-
-Separate tables are generated for each testbed. Test case names are linked to
-respective trending graphs for ease of navigation through the test data.
-
-Trendline Graphs
-````````````````
-
-Trendline graphs show measured per run averages of MRR values,
-group average values, and detected anomalies.
-The graphs are constructed as follows:
-
-- X-axis represents the date in the format MMDD.
-- Y-axis represents run-average MRR value in Mpps.
-- Markers to indicate anomaly classification:
-
- - Regression - red circle.
- - Progression - green circle.
-
-- The line shows average MRR value of each group.
-
-In addition the graphs show dynamic labels while hovering over graph
-data points, presenting the CSIT build date, measured MRR value, VPP
-reference, trend job build ID and the LF testbed ID.
diff --git a/docs/cpta/ndrpdr_trending/container_memif-2n-clx-cx556a.rst b/docs/cpta/ndrpdr_trending/container_memif-2n-clx-cx556a.rst
deleted file mode 100644
index 43353c1729..0000000000
--- a/docs/cpta/ndrpdr_trending/container_memif-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-memif-base-rdma
-```````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/container_memif-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/container_memif-2n-clx-xxv710.rst
deleted file mode 100644
index 88513774be..0000000000
--- a/docs/cpta/ndrpdr_trending/container_memif-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-memif-base-avf
-``````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-memif-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-memif-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/container_memif-2n-skx-x710.rst b/docs/cpta/ndrpdr_trending/container_memif-2n-skx-x710.rst
deleted file mode 100644
index 1db808bde3..0000000000
--- a/docs/cpta/ndrpdr_trending/container_memif-2n-skx-x710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-skx-x710
------------
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-memif-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-memif-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/container_memif-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/container_memif-2n-skx-xxv710.rst
deleted file mode 100644
index 0aeb221564..0000000000
--- a/docs/cpta/ndrpdr_trending/container_memif-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-memif-base-avf
-``````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/container_memif-3n-skx-x710.rst b/docs/cpta/ndrpdr_trending/container_memif-3n-skx-x710.rst
deleted file mode 100644
index ccbde5bf66..0000000000
--- a/docs/cpta/ndrpdr_trending/container_memif-3n-skx-x710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-3n-skx-x710
------------
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-memif-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-memif-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/container_memif-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/container_memif-3n-skx-xxv710.rst
deleted file mode 100644
index 82b7922332..0000000000
--- a/docs/cpta/ndrpdr_trending/container_memif-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-memif-base-avf
-``````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/container_memif.rst b/docs/cpta/ndrpdr_trending/container_memif.rst
deleted file mode 100644
index 80ee9749a5..0000000000
--- a/docs/cpta/ndrpdr_trending/container_memif.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-LXC/DRC Container Memif
-=======================
-
-.. toctree::
-
- container_memif-2n-clx-xxv710
- container_memif-2n-skx-xxv710
- container_memif-3n-skx-xxv710
-
-..
- container_memif-2n-clx-cx556a
diff --git a/docs/cpta/ndrpdr_trending/ip4-2n-clx-cx556a.rst b/docs/cpta/ndrpdr_trending/ip4-2n-clx-cx556a.rst
deleted file mode 100644
index 1a0e372b11..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,95 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-ip4routing-base-rdma
-````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-ip4-base-rdma-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-ip4-base-rdma-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-rdma
-`````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-ip4-scale-rdma-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-ip4-scale-rdma-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-rdma
-````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-ip4-features-rdma-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-ip4-features-rdma-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4-2n-clx-x710.rst b/docs/cpta/ndrpdr_trending/ip4-2n-clx-x710.rst
deleted file mode 100644
index bfb1d8a980..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-clx-x710.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-2n-clx-x710
------------
-
-64b-ip4routing-base-avf-dpdk
-````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-2t1c-ip4-base-avf-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-2t1c-ip4-base-avf-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip4-2n-clx-xxv710.rst
deleted file mode 100644
index 48de927bb9..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,192 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-ip4routing-base-scale-avf
-`````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-avf-rnd
-````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf-rnd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-scale-avf-rnd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf-rnd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-scale-avf-rnd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-avf
-```````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-features-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-features-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-dpdk-rnd
-`````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk-rnd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-scale-dpdk-rnd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk-rnd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-scale-dpdk-rnd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-dpdk
-````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-base-features-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-base-features-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4-2n-skx-x710.rst b/docs/cpta/ndrpdr_trending/ip4-2n-skx-x710.rst
deleted file mode 100644
index 64060fed8b..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-skx-x710.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-2n-skx-x710
------------
-
-64b-ip4routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-ip4-base-scale-avf-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-ip4-base-scale-avf-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip4-2n-skx-xxv710.rst
deleted file mode 100644
index dc212bf542..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,159 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-ip4routing-base-avf
-```````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-avf
-````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-avf
-```````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-features-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-features-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-features-dpdk
-`````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-features-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-base-features-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <a name="64b-2t1c-features-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-base-features-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-dpdk
-`````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4-3n-hsw-xl710.rst b/docs/cpta/ndrpdr_trending/ip4-3n-hsw-xl710.rst
deleted file mode 100644
index b4f42040de..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-3n-hsw-xl710
-------------
-
-64b-ip4routing-base-scale-dpdk
-``````````````````````````````
-
-1t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk-ndr"></a>
- <a name="64b-1t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-ip4-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-1t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk-pdr"></a>
- <a name="64b-1t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-ip4-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4-3n-skx-x710.rst b/docs/cpta/ndrpdr_trending/ip4-3n-skx-x710.rst
deleted file mode 100644
index a60c38bc6d..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-3n-skx-x710.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-3n-skx-x710
------------
-
-64b-ip4routing-base-avf
-```````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-ip4-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-ip4-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip4-3n-skx-xxv710.rst
deleted file mode 100644
index b0d961174b..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-ip4routing-base-avf
-```````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-dpdk
-````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <a name="64b-2t1c-dpdk-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4.rst b/docs/cpta/ndrpdr_trending/ip4.rst
deleted file mode 100644
index d9f75e3406..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-IPv4 Routing
-============
-
-.. toctree::
-
- ip4-2n-clx-xxv710
- ip4-2n-clx-x710
- ip4-2n-skx-xxv710
- ip4-2n-skx-x710
- ip4-3n-skx-xxv710
- ip4-3n-skx-x710
- ip4-3n-hsw-xl710
-
-..
- ip4-2n-clx-cx556a
diff --git a/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-hsw-xl710.rst b/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-hsw-xl710.rst
deleted file mode 100644
index b5a5b6399f..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-3n-hsw-xl710
-------------
-
-64b-ip4tunnel-eth-base-dpdk
-```````````````````````````
-
-1t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-1t1c-eth-base-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-1t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-1t1c-eth-base-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-skx-xxv710.rst
deleted file mode 100644
index f4022e021f..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-ip4tunnel-base-avf
-``````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4tunnel-base-dpdk
-```````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4_tunnels.rst b/docs/cpta/ndrpdr_trending/ip4_tunnels.rst
deleted file mode 100644
index 0a644b04ab..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4_tunnels.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-IPv4 Tunnels
-============
-
-.. toctree::
-
- ip4_tunnels-3n-skx-xxv710
- ip4_tunnels-3n-hsw-xl710
diff --git a/docs/cpta/ndrpdr_trending/ip6-2n-clx-cx556a.rst b/docs/cpta/ndrpdr_trending/ip6-2n-clx-cx556a.rst
deleted file mode 100644
index 849c9f2d9d..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-2n-clx-cx556a
--------------
-
-78b-ip6routing-base-scale-rdma
-``````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-rdma-ndr"></a>
- <a name="78b-2t1c-scale-rdma-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-78b-2t1c-ip6-base-scale-rdma-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-rdma-pdr"></a>
- <a name="78b-2t1c-scale-rdma-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-78b-2t1c-ip6-base-scale-rdma-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip6-2n-clx-x710.rst b/docs/cpta/ndrpdr_trending/ip6-2n-clx-x710.rst
deleted file mode 100644
index 16d96b556d..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-clx-x710.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-2n-clx-x710
------------
-
-78b-ip6routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-ndr"></a>
- <a name="78b-2t1c-scale-avf-ndr"></a>
- <a name="78b-2t1c-base-dpdk-ndr"></a>
- <a name="78b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-78b-2t1c-ip6-base-scale-avf-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-pdr"></a>
- <a name="78b-2t1c-scale-avf-pdr"></a>
- <a name="78b-2t1c-base-dpdk-pdr"></a>
- <a name="78b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-78b-2t1c-ip6-base-scale-avf-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip6-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip6-2n-clx-xxv710.rst
deleted file mode 100644
index b11d85921b..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-2n-clx-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-ndr"></a>
- <a name="78b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-pdr"></a>
- <a name="78b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk-ndr"></a>
- <a name="78b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk-pdr"></a>
- <a name="78b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip6-2n-skx-x710.rst b/docs/cpta/ndrpdr_trending/ip6-2n-skx-x710.rst
deleted file mode 100644
index 074109f737..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-skx-x710.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-2n-skx-x710
------------
-
-78b-ip6routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-ndr"></a>
- <a name="78b-2t1c-scale-avf-ndr"></a>
- <a name="78b-2t1c-base-dpdk-ndr"></a>
- <a name="78b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-78b-2t1c-ip6-base-features-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-pdr"></a>
- <a name="78b-2t1c-scale-avf-pdr"></a>
- <a name="78b-2t1c-base-dpdk-pdr"></a>
- <a name="78b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-78b-2t1c-ip6-base-features-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip6-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip6-2n-skx-xxv710.rst
deleted file mode 100644
index 68a6a20efb..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-2n-skx-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-ndr"></a>
- <a name="78b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-pdr"></a>
- <a name="78b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk-ndr"></a>
- <a name="78b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk-pdr"></a>
- <a name="78b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip6-3n-hsw-xl710.rst b/docs/cpta/ndrpdr_trending/ip6-3n-hsw-xl710.rst
deleted file mode 100644
index f4dc91ba95..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-3n-hsw-xl710
-------------
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-1t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-dpdk-ndr"></a>
- <a name="78b-1t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-1t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-dpdk-pdr"></a>
- <a name="78b-1t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip6-3n-skx-x710.rst b/docs/cpta/ndrpdr_trending/ip6-3n-skx-x710.rst
deleted file mode 100644
index 6ef374cb30..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-3n-skx-x710.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-3n-skx-x710
------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-ndr"></a>
- <a name="78b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-78b-2t1c-ip6-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-pdr"></a>
- <a name="78b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-78b-2t1c-ip6-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip6-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip6-3n-skx-xxv710.rst
deleted file mode 100644
index 0e2499cb12..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-3n-skx-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-ndr"></a>
- <a name="78b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf-pdr"></a>
- <a name="78b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk-ndr"></a>
- <a name="78b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk-pdr"></a>
- <a name="78b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip6.rst b/docs/cpta/ndrpdr_trending/ip6.rst
deleted file mode 100644
index 2cf8995aa6..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-IPv6 Routing
-============
-
-.. toctree::
-
- ip6-2n-clx-xxv710
- ip6-2n-clx-x710
- ip6-2n-skx-xxv710
- ip6-2n-skx-x710
- ip6-3n-skx-xxv710
- ip6-3n-hsw-xl710
-
-..
- ip6-2n-clx-cx556a
diff --git a/docs/cpta/ndrpdr_trending/ipsec-3n-hsw-xl710.rst b/docs/cpta/ndrpdr_trending/ipsec-3n-hsw-xl710.rst
deleted file mode 100644
index 9114e16c8d..0000000000
--- a/docs/cpta/ndrpdr_trending/ipsec-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-3n-hsw-xl710
-------------
-
-imix-ipsec-ip4routing-base-scale-sw-dpdk
-````````````````````````````````````````
-
-1t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="imix-1t1c-base-sw-dpdk-ndr"></a>
- <a name="imix-1t1c-scale-sw-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-1t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="imix-1t1c-base-sw-dpdk-pdr"></a>
- <a name="imix-1t1c-scale-sw-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-ip4routing-base-scale-hw-dpdk
-````````````````````````````````````````
-
-1t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="imix-1t1c-base-hw-dpdk-ndr"></a>
- <a name="imix-1t1c-scale-hw-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-1t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="imix-1t1c-base-hw-dpdk-pdr"></a>
- <a name="imix-1t1c-scale-hw-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ipsec-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/ipsec-3n-skx-xxv710.rst
deleted file mode 100644
index 1505cca627..0000000000
--- a/docs/cpta/ndrpdr_trending/ipsec-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,134 +0,0 @@
-3n-skx-xxv710
--------------
-
-imix-ipsec-ip4routing-base-scale-sw-avf
-```````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-sw-avf-ndr"></a>
- <a name="imix-2t1c-scale-sw-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-sw-avf-pdr"></a>
- <a name="imix-2t1c-scale-sw-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-ip4routing-base-scale-sw-dpdk
-````````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-sw-dpdk-ndr"></a>
- <a name="imix-2t1c-scale-sw-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-sw-dpdk-pdr"></a>
- <a name="imix-2t1c-scale-sw-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-ip4routing-base-scale-sw-avf
-````````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-sw-avf-ndr"></a>
- <a name="1518b-2t1c-scale-sw-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-sw-avf-pdr"></a>
- <a name="1518b-2t1c-scale-sw-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-ip4routing-base-scale-sw-dpdk
-`````````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-sw-dpdk-ndr"></a>
- <a name="1518b-2t1c-scale-sw-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-sw-dpdk-pdr"></a>
- <a name="1518b-2t1c-scale-sw-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ipsec.rst b/docs/cpta/ndrpdr_trending/ipsec.rst
deleted file mode 100644
index 31328aff60..0000000000
--- a/docs/cpta/ndrpdr_trending/ipsec.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-IPSec IPv4 Routing
-==================
-
-.. toctree::
-
- ipsec-3n-skx-xxv710
- ipsec-3n-hsw-xl710
diff --git a/docs/cpta/ndrpdr_trending/l2-2n-clx-cx556a.rst b/docs/cpta/ndrpdr_trending/l2-2n-clx-cx556a.rst
deleted file mode 100644
index d5242e6d8d..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-l2switching-base-rdma
-`````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-l2-base-rdma-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-l2-base-rdma-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-rdma
-```````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-rdma-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-l2-base-scale-rdma-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-rdma-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-l2-base-scale-rdma-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/l2-2n-clx-x710.rst b/docs/cpta/ndrpdr_trending/l2-2n-clx-x710.rst
deleted file mode 100644
index a6a6fe4594..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-clx-x710.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-2n-clx-x710
------------
-
-64b-l2switching-base-scale-avf-dpdk
-```````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-2t1c-l2-base-scale-avf-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-2t1c-l2-base-scale-avf-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/l2-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/l2-2n-clx-xxv710.rst
deleted file mode 100644
index cce010da34..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,97 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-l2switching-base-avf
-````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-l2-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-l2-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-avf
-```````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-l2-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-l2-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-l2-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-l2-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/l2-2n-skx-x710.rst b/docs/cpta/ndrpdr_trending/l2-2n-skx-x710.rst
deleted file mode 100644
index a126ba8f0a..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-skx-x710.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-2n-skx-x710
------------
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-l2-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-l2-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-l2-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-l2-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/l2-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/l2-2n-skx-xxv710.rst
deleted file mode 100644
index 9ffa7d63a3..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,126 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-l2switching-base-avf
-````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-dpdk
-`````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/l2-3n-hsw-xl710.rst b/docs/cpta/ndrpdr_trending/l2-3n-hsw-xl710.rst
deleted file mode 100644
index e412903c42..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-3n-hsw-xl710
-------------
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-1t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk-ndr"></a>
- <a name="64b-1t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-l2-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-1t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk-pdr"></a>
- <a name="64b-1t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-l2-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/l2-3n-skx-x710.rst b/docs/cpta/ndrpdr_trending/l2-3n-skx-x710.rst
deleted file mode 100644
index e352701925..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-3n-skx-x710.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-3n-skx-x710
------------
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-l2-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-l2-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-l2-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-l2-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/l2-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/l2-3n-skx-xxv710.rst
deleted file mode 100644
index 9e917676eb..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,97 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-l2switching-base-avf
-````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-l2-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-l2-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-scale-avf
-`````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-l2-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-l2-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-pdr"></a>
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/l2.rst b/docs/cpta/ndrpdr_trending/l2.rst
deleted file mode 100644
index 5fde50827b..0000000000
--- a/docs/cpta/ndrpdr_trending/l2.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-L2 Ethernet Switching
-=====================
-
-.. toctree::
-
- l2-2n-clx-xxv710
- l2-2n-clx-x710
- l2-2n-skx-xxv710
- l2-2n-skx-x710
- l2-3n-skx-xxv710
- l2-3n-skx-x710
- l2-3n-hsw-xl710
-
-..
- l2-2n-clx-cx556a
diff --git a/docs/cpta/ndrpdr_trending/nat44-det-bidir-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-det-bidir-2n-clx-xxv710.rst
deleted file mode 100644
index 0f76967a07..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-det-bidir-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
-`````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44det-bidir-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44det-bidir-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-det-bidir-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-det-bidir-2n-skx-xxv710.rst
deleted file mode 100644
index adc5347af3..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-det-bidir-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
-`````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44det-bidir-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44det-bidir-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-det-bidir.rst b/docs/cpta/ndrpdr_trending/nat44-det-bidir.rst
deleted file mode 100644
index b917a1b0de..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-det-bidir.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Det BiDir
----------
-
-.. toctree::
-
- nat44-det-bidir-2n-clx-xxv710
- nat44-det-bidir-2n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps-2n-clx-xxv710.rst
deleted file mode 100644
index 713ba5908f..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-cps-avf
-``````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-cps-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-cps-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps-2n-skx-xxv710.rst
deleted file mode 100644
index 07f85cb1b4..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-cps-avf
-``````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-cps-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-cps-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps.rst
deleted file mode 100644
index 0a884f4f9f..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ED TCP CPS
-----------
-
-.. toctree::
-
- nat44-ed-tcp-cps-2n-clx-xxv710
- nat44-ed-tcp-cps-2n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps-2n-clx-xxv710.rst
deleted file mode 100644
index 6cc511264e..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-pps-avf
-``````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-pps-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-pps-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps-2n-skx-xxv710.rst
deleted file mode 100644
index 755fe21e7a..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-pps-avf
-``````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-pps-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-pps-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps.rst
deleted file mode 100644
index fb7342ef9c..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-pps.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ED TCP PPS
-----------
-
-.. toctree::
-
- nat44-ed-tcp-pps-2n-clx-xxv710
- nat44-ed-tcp-pps-2n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-clx-xxv710.rst
deleted file mode 100644
index 390e6767d0..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-cps-avf
-``````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-cps-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-cps-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-skx-xxv710.rst
deleted file mode 100644
index 4edee4b846..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-cps-avf
-``````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-cps-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-cps-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps.rst
deleted file mode 100644
index 904290d4b9..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ED UDP CPS
-----------
-
-.. toctree::
-
- nat44-ed-udp-cps-2n-clx-xxv710
- nat44-ed-udp-cps-2n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-udp-pps-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-pps-2n-clx-xxv710.rst
deleted file mode 100644
index cda7c6d624..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-pps-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-pps-avf
-``````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-pps-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-pps-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-udp-pps-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-pps-2n-skx-xxv710.rst
deleted file mode 100644
index e87e750039..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-pps-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-pps-avf
-``````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-pps-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-pps-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-udp-pps.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-pps.rst
deleted file mode 100644
index 5b7744a7af..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-pps.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ED UDP PPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-pps-2n-clx-xxv710
- nat44-ed-udp-pps-2n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-unidir-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-unidir-2n-clx-xxv710.rst
deleted file mode 100644
index caf8774db5..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-unidir-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
-`````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44ed-udir-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44ed-udir-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-unidir-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-unidir-2n-skx-xxv710.rst
deleted file mode 100644
index e9cf5f145f..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-unidir-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
-`````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44ed-udir-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44ed-udir-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-unidir.rst b/docs/cpta/ndrpdr_trending/nat44-ed-unidir.rst
deleted file mode 100644
index 86b7dae710..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-unidir.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ED UniDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-unidir-2n-clx-xxv710
- nat44-ed-unidir-2n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_trending/nat44.rst b/docs/cpta/ndrpdr_trending/nat44.rst
deleted file mode 100644
index 06044988e7..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-NAT44 IPv4 Routing
-==================
-
-.. toctree::
-
- nat44-2n-clx-xxv710
- nat44-2n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_trending/srv6-3n-hsw-xl710.rst b/docs/cpta/ndrpdr_trending/srv6-3n-hsw-xl710.rst
deleted file mode 100644
index e3c8528c42..0000000000
--- a/docs/cpta/ndrpdr_trending/srv6-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-3n-hsw-xl710
-------------
-
-78b-srv6-ip6routing-base-dpdk
-`````````````````````````````
-
-1t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-dpdk-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-78b-1t1c-srv6-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-1t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-dpdk-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-78b-1t1c-srv6-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/srv6-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/srv6-3n-skx-xxv710.rst
deleted file mode 100644
index 53ad259423..0000000000
--- a/docs/cpta/ndrpdr_trending/srv6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-3n-skx-xxv710
--------------
-
-78b-srv6-ip6routing-base-avf
-````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-2t1c-srv6-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-2t1c-srv6-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/srv6.rst b/docs/cpta/ndrpdr_trending/srv6.rst
deleted file mode 100644
index 3bfb4b53df..0000000000
--- a/docs/cpta/ndrpdr_trending/srv6.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-SRv6 Routing
-============
-
-.. toctree::
-
- srv6-3n-skx-xxv710
- srv6-3n-hsw-xl710
diff --git a/docs/cpta/ndrpdr_trending/vhost-2n-clx-cx556a.rst b/docs/cpta/ndrpdr_trending/vhost-2n-clx-cx556a.rst
deleted file mode 100644
index 8127d69272..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-vhost-base-rdma-testpmd
-```````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-testpmd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-vhost-base-rdma-testpmd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-testpmd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-vhost-base-rdma-testpmd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-rdma-vpp
-```````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-vpp-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-vhost-base-rdma-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-vpp-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-vhost-base-rdma-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/vhost-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/vhost-2n-clx-xxv710.rst
deleted file mode 100644
index bdaa7147dc..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-vhost-base-avf-dpdk-testpmd
-```````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-testpmd-ndr"></a>
- <a name="64b-2t1c-base-dpdk-testpmd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-testpmd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-testpmd-pdr"></a>
- <a name="64b-2t1c-base-dpdk-testpmd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-testpmd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-dpdk-vpp
-```````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-vpp-ndr"></a>
- <a name="64b-2t1c-base-dpdk-vpp-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-vpp-pdr"></a>
- <a name="64b-2t1c-base-dpdk-vpp-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/vhost-2n-skx-x710.rst b/docs/cpta/ndrpdr_trending/vhost-2n-skx-x710.rst
deleted file mode 100644
index fe16760644..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost-2n-skx-x710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-skx-x710
------------
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-testpmd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-vhost-base-dpdk-testpmd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-testpmd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-vhost-base-dpdk-testpmd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-vpp
-```````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-vpp-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-vhost-base-dpdk-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-vpp-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-vhost-base-dpdk-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/vhost-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/vhost-2n-skx-xxv710.rst
deleted file mode 100644
index a109c4e9f3..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,126 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-vhost-base-avf-testpmd
-``````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-testpmd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-testpmd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-vpp
-``````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-vpp-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-vpp-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-testpmd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-testpmd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-vpp
-```````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-vpp-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-vpp-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/vhost-3n-hsw-xl710.rst b/docs/cpta/ndrpdr_trending/vhost-3n-hsw-xl710.rst
deleted file mode 100644
index 5ccbd078c2..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-3n-hsw-xl710
-------------
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-1t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk-testpmd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-testpmd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-1t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk-testpmd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-testpmd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-vpp
-```````````````````````
-
-1t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk-vpp-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-1t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk-vpp-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/vhost-3n-skx-x710.rst b/docs/cpta/ndrpdr_trending/vhost-3n-skx-x710.rst
deleted file mode 100644
index 456ae66628..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost-3n-skx-x710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-3n-skx-x710
------------
-
-64b-link-bonding-vhost-base-avf-testpmd
-```````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-testpmd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-testpmd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-link-bonding-vhost-base-avf-vpp
-````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-vpp-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-vpp-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/vhost-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/vhost-3n-skx-xxv710.rst
deleted file mode 100644
index 9c12dda9f1..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-link-bonding-vhost-base-avf-testpmd
-```````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-testpmd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-testpmd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-link-bonding-vhost-base-avf-vpp
-````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-vpp-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-vpp-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-testpmd
-``````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-testpmd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-testpmd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-vpp
-``````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-vpp-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-vpp-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-testpmd-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-testpmd-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/vhost.rst b/docs/cpta/ndrpdr_trending/vhost.rst
deleted file mode 100644
index 364e21314f..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-VMs vhost-user
-==============
-
-.. toctree::
-
- vhost-2n-clx-xxv710
- vhost-2n-skx-xxv710
- vhost-3n-skx-xxv710
- vhost-3n-skx-x710
- vhost-3n-hsw-xl710
-
-..
- vhost-2n-clx-cx556a
diff --git a/docs/cpta/ndrpdr_trending/vts-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/vts-2n-clx-xxv710.rst
deleted file mode 100644
index 1978958668..0000000000
--- a/docs/cpta/ndrpdr_trending/vts-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-2n-clx-xxv710
--------------
-
-114b-vts-l2switching-base-avf
-`````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="114b-2t1c-base-avf-ndr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-114b-2t1c-vts-l2switching-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="114b-2t1c-base-avf-pdr"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-114b-2t1c-vts-l2switching-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/vts.rst b/docs/cpta/ndrpdr_trending/vts.rst
deleted file mode 100644
index 5b7cd10514..0000000000
--- a/docs/cpta/ndrpdr_trending/vts.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Virtual Topology System
-=======================
-
-.. toctree::
-
- vts-2n-clx-xxv710
diff --git a/docs/cpta/trending/container_memif-2n-clx-cx556a.rst b/docs/cpta/trending/container_memif-2n-clx-cx556a.rst
deleted file mode 100644
index 6d9fe0c3f7..0000000000
--- a/docs/cpta/trending/container_memif-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-memif-base-rdma
-```````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-4t2c-rdma-l2-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-8t4c-rdma-l2-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/container_memif-2n-clx-xxv710.rst b/docs/cpta/trending/container_memif-2n-clx-xxv710.rst
deleted file mode 100644
index 8db3ab05e5..0000000000
--- a/docs/cpta/trending/container_memif-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-memif-base-avf
-```````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/container_memif-2n-skx-xxv710.rst b/docs/cpta/trending/container_memif-2n-skx-xxv710.rst
deleted file mode 100644
index 179295da21..0000000000
--- a/docs/cpta/trending/container_memif-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-memif-base-avf
-```````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/container_memif-2n-zn2-cx556a.rst b/docs/cpta/trending/container_memif-2n-zn2-cx556a.rst
deleted file mode 100644
index 0bb43b41db..0000000000
--- a/docs/cpta/trending/container_memif-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-zn2-cx556a
--------------
-
-64b-memif-base-rdma
-```````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-4t2c-rdma-l2-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-8t4c-rdma-l2-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/container_memif-2n-zn2-xxv710.rst b/docs/cpta/trending/container_memif-2n-zn2-xxv710.rst
deleted file mode 100644
index c9fe00067e..0000000000
--- a/docs/cpta/trending/container_memif-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-zn2-xxv710
--------------
-
-64b-memif-base-avf
-```````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/container_memif-3n-skx-xxv710.rst b/docs/cpta/trending/container_memif-3n-skx-xxv710.rst
deleted file mode 100644
index ed15b59c54..0000000000
--- a/docs/cpta/trending/container_memif-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-memif-base-avf
-``````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-memif-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/container_memif-3n-tsh-x520.rst b/docs/cpta/trending/container_memif-3n-tsh-x520.rst
deleted file mode 100644
index a7bf604724..0000000000
--- a/docs/cpta/trending/container_memif-3n-tsh-x520.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-3n-tsh-xxv710
--------------
-
-64b-memif-base-ixgbe
-````````````````````
-
-..
- 10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-mrr
- 10ge2p1x520-eth-l2xcbase-eth-2memif-1dcr-mrr
- 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
- 10ge2p1x520-ethip4-ip4base-eth-2memif-1dcr-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-xxv710-64b-1t1c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-xxv710-64b-2t2c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-xxv710-64b-4t4c-memif-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/container_memif.rst b/docs/cpta/trending/container_memif.rst
deleted file mode 100644
index 602f112f5a..0000000000
--- a/docs/cpta/trending/container_memif.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-LXC/DRC Container Memif
-=======================
-
-.. toctree::
-
- container_memif-2n-clx-xxv710
- container_memif-2n-skx-xxv710
- container_memif-3n-skx-xxv710
- container_memif-3n-tsh-x520
- container_memif-2n-zn2-xxv710
- container_memif-2n-zn2-cx556a
-
-..
- container_memif-2n-clx-cx556a
diff --git a/docs/cpta/trending/dpdk-2n-clx-x710.rst b/docs/cpta/trending/dpdk-2n-clx-x710.rst
deleted file mode 100644
index 83606c43bb..0000000000
--- a/docs/cpta/trending/dpdk-2n-clx-x710.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-2n-clx-x710
------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-..
- 2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr
- 2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-testpmd"></a>
- <a name="64b-2t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-2t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-testpmd"></a>
- <a name="64b-4t2c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-4t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-testpmd"></a>
- <a name="64b-8t4c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-8t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk-2n-clx-xxv710.rst b/docs/cpta/trending/dpdk-2n-clx-xxv710.rst
deleted file mode 100644
index bb43418130..0000000000
--- a/docs/cpta/trending/dpdk-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-2n-clx-xxv710
--------------
-64b-testpmd-l3fwd
-`````````````````
-
-..
- 2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-testpmd"></a>
- <a name="64b-2t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-testpmd"></a>
- <a name="64b-4t2c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-testpmd"></a>
- <a name="64b-8t4c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk-2n-skx-x710.rst b/docs/cpta/trending/dpdk-2n-skx-x710.rst
deleted file mode 100644
index 0b885cf426..0000000000
--- a/docs/cpta/trending/dpdk-2n-skx-x710.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-2n-skx-x710
------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-..
- 2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr
- 2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-testpmd"></a>
- <a name="64b-2t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-testpmd"></a>
- <a name="64b-4t2c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-4t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-testpmd"></a>
- <a name="64b-8t4c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-8t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk-2n-skx-xxv710.rst b/docs/cpta/trending/dpdk-2n-skx-xxv710.rst
deleted file mode 100644
index 01a169b016..0000000000
--- a/docs/cpta/trending/dpdk-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-2n-skx-xxv710
--------------
-64b-testpmd-l3fwd
-`````````````````
-
-..
- 2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-testpmd"></a>
- <a name="64b-2t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-testpmd"></a>
- <a name="64b-4t2c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-testpmd"></a>
- <a name="64b-8t4c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk-2n-zn2-x710.rst b/docs/cpta/trending/dpdk-2n-zn2-x710.rst
deleted file mode 100644
index 5912b1e809..0000000000
--- a/docs/cpta/trending/dpdk-2n-zn2-x710.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-2n-zn2-x710
------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-..
- 2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr
- 2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-testpmd"></a>
- <a name="64b-2t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-64b-2t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-testpmd"></a>
- <a name="64b-4t2c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-64b-4t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-testpmd"></a>
- <a name="64b-8t4c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-64b-8t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk-2n-zn2-xxv710.rst b/docs/cpta/trending/dpdk-2n-zn2-xxv710.rst
deleted file mode 100644
index 5ea78622da..0000000000
--- a/docs/cpta/trending/dpdk-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-2n-zn2-xxv710
--------------
-64b-testpmd-l3fwd
-`````````````````
-
-..
- 2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-testpmd"></a>
- <a name="64b-2t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-testpmd"></a>
- <a name="64b-4t2c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-testpmd"></a>
- <a name="64b-8t4c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk-3n-hsw-x710.rst b/docs/cpta/trending/dpdk-3n-hsw-x710.rst
deleted file mode 100644
index 7252eede8c..0000000000
--- a/docs/cpta/trending/dpdk-3n-hsw-x710.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-3n-hsw-x710
------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-..
- 10ge2p1x710-eth-l2xcbase-testpmd-mrr
- 10ge2p1x710-ethip4-ip4base-l3fwd-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-testpmd"></a>
- <a name="64b-1t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-x710-64b-1t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-testpmd"></a>
- <a name="64b-1t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-x710-64b-2t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-testpmd"></a>
- <a name="64b-1t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-x710-64b-4t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk-3n-hsw-xl710.rst b/docs/cpta/trending/dpdk-3n-hsw-xl710.rst
deleted file mode 100644
index f312a809ef..0000000000
--- a/docs/cpta/trending/dpdk-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-3n-hsw-xl710
-------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-..
- 40ge2p1xl710-eth-l2xcbase-testpmd-mrr
- 40ge2p1xl710-ethip4-ip4base-l3fwd-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-testpmd"></a>
- <a name="64b-1t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-testpmd"></a>
- <a name="64b-2t2c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-2t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-testpmd"></a>
- <a name="64b-4t4c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-4t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk-3n-skx-x710.rst b/docs/cpta/trending/dpdk-3n-skx-x710.rst
deleted file mode 100644
index 49decfb378..0000000000
--- a/docs/cpta/trending/dpdk-3n-skx-x710.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-3n-skx-x710
------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-..
- 10ge2p1x710-eth-l2xcbase-testpmd-mrr
- 10ge2p1x710-ethip4-ip4base-l3fwd-mrr
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-testpmd"></a>
- <a name="64b-2t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-testpmd"></a>
- <a name="64b-4t2c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-4t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-testpmd"></a>
- <a name="64b-8t4c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-8t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk-3n-skx-xxv710.rst b/docs/cpta/trending/dpdk-3n-skx-xxv710.rst
deleted file mode 100644
index 9576fc3d82..0000000000
--- a/docs/cpta/trending/dpdk-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-..
- 25ge2p1xxv710-eth-l2xcbase-testpmd-mrr
- 25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-testpmd"></a>
- <a name="64b-2t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-testpmd"></a>
- <a name="64b-4t2c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-testpmd"></a>
- <a name="64b-8t4c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk-3n-tsh-x520.rst b/docs/cpta/trending/dpdk-3n-tsh-x520.rst
deleted file mode 100644
index 831f49ac80..0000000000
--- a/docs/cpta/trending/dpdk-3n-tsh-x520.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-3n-tsh-x520
------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-testpmd"></a>
- <a name="64b-1t1c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-1t1c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-testpmd"></a>
- <a name="64b-2t2c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-2t2c-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-testpmd"></a>
- <a name="64b-4t4c-base-l3fwd"></a>
- <center>
- Links to builds:
- <a href="http://fast.dpdk.org/rel/" target="_blank">dpdk-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-4t4c-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/dpdk.rst b/docs/cpta/trending/dpdk.rst
deleted file mode 100644
index a7ea75d4d7..0000000000
--- a/docs/cpta/trending/dpdk.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-DPDK
-====
-
-.. toctree::
-
- dpdk-2n-skx-xxv710
- dpdk-2n-skx-x710
- dpdk-3n-skx-xxv710
- dpdk-3n-skx-x710
- dpdk-2n-clx-xxv710
- dpdk-2n-clx-x710
- dpdk-2n-zn2-xxv710
- dpdk-2n-zn2-x710
- dpdk-3n-hsw-xl710
- dpdk-3n-hsw-x710
- dpdk-3n-tsh-x520
diff --git a/docs/cpta/trending/ip4-2n-clx-cx556a.rst b/docs/cpta/trending/ip4-2n-clx-cx556a.rst
deleted file mode 100644
index 6bff3ef2c2..0000000000
--- a/docs/cpta/trending/ip4-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,146 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-ip4routing-base-rdma
-````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-4t2c-rdma-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-8t4c-rdma-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-rdma
-`````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-4t2c-rdma-ethip4-ip4scale.html"></iframe>
- <p><br></p>
- </center>
-
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-8t4c-rdma-ethip4-ip4scale.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-rdma
-````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-rdma"></a>
- <a name="64b-2t1c-features-iacl50-rdma"></a>
- <a name="64b-2t1c-features-udp-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-ethip4-features.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-features-rdma"></a>
- <a name="64b-4t2c-features-iacl50-rdma"></a>
- <a name="64b-4t2c-features-udp-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-4t2c-rdma-ethip4-features.html"></iframe>
- <p><br></p>
- </center>
-
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-features-rdma"></a>
- <a name="64b-8t4c-features-iacl50-rdma"></a>
- <a name="64b-8t4c-features-udp-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-8t4c-rdma-ethip4-features.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-2n-clx-x710.rst b/docs/cpta/trending/ip4-2n-clx-x710.rst
deleted file mode 100644
index db347f4c29..0000000000
--- a/docs/cpta/trending/ip4-2n-clx-x710.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-2n-clx-x710
------------
-
-64b-ip4routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-2t1c-ip4-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-4t2c-ip4-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-8t4c-ip4-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-2n-clx-xxv710.rst b/docs/cpta/trending/ip4-2n-clx-xxv710.rst
deleted file mode 100644
index 8a08debeb4..0000000000
--- a/docs/cpta/trending/ip4-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,185 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-ip4routing-base-avf-dpdk
-````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-ip4-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-ip4-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-avf
-````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-ip4-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-ip4-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-dpdk
-`````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-ip4-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-ip4-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-avf
-```````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-features-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-features-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-2n-dnv-x553.rst b/docs/cpta/trending/ip4-2n-dnv-x553.rst
deleted file mode 100644
index ee57e711e8..0000000000
--- a/docs/cpta/trending/ip4-2n-dnv-x553.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-dnv-x553
------------
-
-64b-ip4routing-base-scale-ixgbe
-```````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-dnv-x553-64b-1t1c-ip4-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-dnv-x553-64b-2t2c-ip4-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-dnv-x553-64b-4t4c-ip4-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-2n-skx-x710.rst b/docs/cpta/trending/ip4-2n-skx-x710.rst
deleted file mode 100644
index ee4b3567f3..0000000000
--- a/docs/cpta/trending/ip4-2n-skx-x710.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-2n-skx-x710
------------
-
-64b-ip4routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-ip4-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-4t2c-ip4-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-8t4c-ip4-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-2n-skx-xxv710.rst b/docs/cpta/trending/ip4-2n-skx-xxv710.rst
deleted file mode 100644
index 787efdc543..0000000000
--- a/docs/cpta/trending/ip4-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,293 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-ip4routing-base-scale-avf
-`````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-ip4-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-ip4-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-avf-rnd
-`````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-base-scale-avf-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-ip4-base-scale-avf-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-ip4-base-scale-avf-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-ip4-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-ip4-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-dpdk-rnd
-``````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-ip4-base-scale-dpdk-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-ip4-base-scale-dpdk-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-features-ip4routing-base-avf
-````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-avf"></a>
- <a name="64b-2t1c-features-iacl50-avf"></a>
- <a name="64b-2t1c-features-oacl50-avf"></a>
- <a name="64b-2t1c-features-udp-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-features-avf"></a>
- <a name="64b-4t2c-features-iacl50-avf"></a>
- <a name="64b-4t2c-features-oacl50-avf"></a>
- <a name="64b-4t2c-features-udp-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-features-avf"></a>
- <a name="64b-8t4c-features-iacl50-avf"></a>
- <a name="64b-8t4c-features-oacl50-avf"></a>
- <a name="64b-8t4c-features-udp-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-features-ip4routing-base-dpdk
-`````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4-features-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-features-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-ip4-features-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-features-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-ip4-features-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-2n-zn2-cx556a.rst b/docs/cpta/trending/ip4-2n-zn2-cx556a.rst
deleted file mode 100644
index a2bbee9703..0000000000
--- a/docs/cpta/trending/ip4-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,146 +0,0 @@
-2n-zn2-cx556a
--------------
-
-64b-ip4routing-base-rdma
-````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-4t2c-rdma-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-8t4c-rdma-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-rdma
-`````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-4t2c-rdma-ethip4-ip4scale.html"></iframe>
- <p><br></p>
- </center>
-
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-8t4c-rdma-ethip4-ip4scale.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-rdma
-````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-rdma"></a>
- <a name="64b-2t1c-features-iacl50-rdma"></a>
- <a name="64b-2t1c-features-udp-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-features-rdma"></a>
- <a name="64b-4t2c-features-iacl50-rdma"></a>
- <a name="64b-4t2c-features-udp-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-4t2c-rdma-ethip4-features.html"></iframe>
- <p><br></p>
- </center>
-
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-features-rdma"></a>
- <a name="64b-8t4c-features-iacl50-rdma"></a>
- <a name="64b-8t4c-features-udp-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-8t4c-rdma-ethip4-features.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-2n-zn2-x710.rst b/docs/cpta/trending/ip4-2n-zn2-x710.rst
deleted file mode 100644
index 45304a1170..0000000000
--- a/docs/cpta/trending/ip4-2n-zn2-x710.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-2n-zn2-x710
------------
-
-64b-ip4routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-64b-2t1c-ip4-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-64b-4t2c-ip4-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-64b-8t4c-ip4-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-2n-zn2-xxv710.rst b/docs/cpta/trending/ip4-2n-zn2-xxv710.rst
deleted file mode 100644
index c42a380c1a..0000000000
--- a/docs/cpta/trending/ip4-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,185 +0,0 @@
-2n-zn2-xxv710
--------------
-
-64b-ip4routing-base-avf-dpdk
-````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-ip4-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-ip4-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-avf
-````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-ip4-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-ip4-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-dpdk
-`````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-ip4-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-ip4-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-avf
-```````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-features-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-features-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-features-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-3n-dnv-x553.rst b/docs/cpta/trending/ip4-3n-dnv-x553.rst
deleted file mode 100644
index 52ff5af0fe..0000000000
--- a/docs/cpta/trending/ip4-3n-dnv-x553.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-3n-dnv-x553
------------
-
-64b-ip4routing-base-scale-ixgbe
-```````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-ixgbe"></a>
- <a name="64b-1t1c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-64b-1t1c-ip4-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-ixgbe"></a>
- <a name="64b-2t2c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-64b-2t2c-ip4-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-ixgbe"></a>
- <a name="64b-4t4c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-64b-4t4c-ip4-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-3n-hsw-xl710.rst b/docs/cpta/trending/ip4-3n-hsw-xl710.rst
deleted file mode 100644
index bc404211c7..0000000000
--- a/docs/cpta/trending/ip4-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-3n-hsw-xl710
-------------
-
-64b-ip4routing-base-scale-dpdk
-``````````````````````````````
-
-..
- 40ge2p1xl710-dot1q-ip4base-mrr
- 40ge2p1xl710-ethip4-ip4base-mrr
- 40ge2p1xl710-ethip4-ip4scale20k-mrr
- 40ge2p1xl710-ethip4-ip4scale200k-mrr
- 40ge2p1xl710-ethip4-ip4scale2m-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk"></a>
- <a name="64b-1t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-ip4-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-dpdk"></a>
- <a name="64b-2t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-2t2c-ip4-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-dpdk"></a>
- <a name="64b-4t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-4t4c-ip4-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-3n-skx-x710.rst b/docs/cpta/trending/ip4-3n-skx-x710.rst
deleted file mode 100644
index e419683aed..0000000000
--- a/docs/cpta/trending/ip4-3n-skx-x710.rst
+++ /dev/null
@@ -1,51 +0,0 @@
-3n-skx-x710
------------
-
-64b-ip4routing-base-scale-avf
-`````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-ip4-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-4t2c-ip4-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-8t4c-ip4-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-3n-skx-xxv710.rst b/docs/cpta/trending/ip4-3n-skx-xxv710.rst
deleted file mode 100644
index 85cf460e40..0000000000
--- a/docs/cpta/trending/ip4-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,195 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-ip4routing-base-scale-avf
-`````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-ip4-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-ip4-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-ip4-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-ip4-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-..
- 64b-features-ip4routing-base-avf
- ````````````````````````````````
-
- 2t1c
- ::::
-
- .. raw:: html
-
- <a name="64b-2t1c-features-avf"></a>
- <a name="64b-2t1c-features-iacl50-avf"></a>
- <a name="64b-2t1c-features-oacl50-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
- 4t2c
- ::::
-
- .. raw:: html
-
- <a name="64b-4t2c-features-avf"></a>
- <a name="64b-4t2c-features-iacl50-avf"></a>
- <a name="64b-4t2c-features-oacl50-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
- 8t4c
- ::::
-
- .. raw:: html
-
- <a name="64b-8t4c-features-avf"></a>
- <a name="64b-8t4c-features-iacl50-avf"></a>
- <a name="64b-8t4c-features-oacl50-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
- 64b-features-ip4routing-base-dpdk
- `````````````````````````````````
-
- 2t1c
- ::::
-
- .. raw:: html
-
- <a name="64b-2t1c-features-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-features-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
- 4t2c
- ::::
-
- .. raw:: html
-
- <a name="64b-4t2c-features-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-ip4-features-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
- 8t4c
- ::::
-
- .. raw:: html
-
- <a name="64b-8t4c-features-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-ip4-features-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-3n-tsh-x520.rst b/docs/cpta/trending/ip4-3n-tsh-x520.rst
deleted file mode 100644
index da2ee44032..0000000000
--- a/docs/cpta/trending/ip4-3n-tsh-x520.rst
+++ /dev/null
@@ -1,104 +0,0 @@
-3n-tsh-x520
------------
-
-64b-ip4routing-base-scale-ixgbe
-```````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-ixgbe"></a>
- <a name="64b-1t1c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-1t1c-ip4-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-ixgbe"></a>
- <a name="64b-2t2c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-2t2c-ip4-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-ixgbe"></a>
- <a name="64b-4t4c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-4t4c-ip4-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-64b-features-ip4routing-base-ixgbe
-``````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-features-ixgbe"></a>
- <a name="64b-1t1c-features-iacl50-ixgbe"></a>
- <a name="64b-1t1c-features-oacl50-ixgbe"></a>
- <a name="64b-1t1c-features-udp-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-1t1c-ip4-features-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-features-ixgbe"></a>
- <a name="64b-2t2c-features-iacl50-ixgbe"></a>
- <a name="64b-2t2c-features-oacl50-ixgbe"></a>
- <a name="64b-2t2c-features-udp-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-2t2c-ip4-features-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-features-ixgbe"></a>
- <a name="64b-4t4c-features-iacl50-ixgbe"></a>
- <a name="64b-4t4c-features-oacl50-ixgbe"></a>
- <a name="64b-4t4c-features-udp-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-4t4c-ip4-features-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4.rst b/docs/cpta/trending/ip4.rst
deleted file mode 100644
index 1871db5e75..0000000000
--- a/docs/cpta/trending/ip4.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-IPv4 Routing
-============
-
-.. toctree::
-
- ip4-2n-clx-xxv710
- ip4-2n-clx-x710
- ip4-2n-skx-xxv710
- ip4-2n-skx-x710
- ip4-3n-skx-xxv710
- ip4-3n-skx-x710
- ip4-3n-hsw-xl710
- ip4-3n-tsh-x520
- ip4-2n-dnv-x553
- ip4-3n-dnv-x553
- ip4-2n-zn2-xxv710
- ip4-2n-zn2-x710
- ip4-2n-zn2-cx556a
-
-..
- ip4-2n-clx-cx556a
diff --git a/docs/cpta/trending/ip4_tunnels-3n-dnv-x553.rst b/docs/cpta/trending/ip4_tunnels-3n-dnv-x553.rst
deleted file mode 100644
index e9a09bba2b..0000000000
--- a/docs/cpta/trending/ip4_tunnels-3n-dnv-x553.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-3n-dnv-x553
------------
-
-64b-ip4tunnel-base-scale-ixgbe
-``````````````````````````````
-
-..
- 10ge2p1x553-ethip4vxlan-l2xcbase-mrr
- 10ge2p1x553-ethip4vxlan-l2bdbasemaclrn-mrr
- 10ge2p1x553-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr
- 10ge2p1x553-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-ixgbe"></a>
- <a name="64b-1t1c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-64b-1t1c-ip4-tunnels-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-ixgbe"></a>
- <a name="64b-2t2c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-64b-2t2c-ip4-tunnels-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-ixgbe"></a>
- <a name="64b-4t4c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-64b-4t4c-ip4-tunnels-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4_tunnels-3n-hsw-xl710.rst b/docs/cpta/trending/ip4_tunnels-3n-hsw-xl710.rst
deleted file mode 100644
index f19ed80f96..0000000000
--- a/docs/cpta/trending/ip4_tunnels-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,51 +0,0 @@
-3n-hsw-xl710
-------------
-
-64b-ip4tunnel-base-dpdk
-```````````````````````
-
-..
- 40ge2p1xl710-ethip4vxlan-l2xcbase-mrr
- 40ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-ip4-tunnels-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-2t2c-ip4-tunnels-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-4t4c-ip4-tunnels-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4_tunnels-3n-skx-xxv710.rst b/docs/cpta/trending/ip4_tunnels-3n-skx-xxv710.rst
deleted file mode 100644
index c68fbed195..0000000000
--- a/docs/cpta/trending/ip4_tunnels-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-ip4tunnel-base-scale-avf-dpdk
-`````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-ip4-tunnels-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-ip4-tunnels-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4_tunnels-3n-tsh-x520.rst b/docs/cpta/trending/ip4_tunnels-3n-tsh-x520.rst
deleted file mode 100644
index 8c720080ac..0000000000
--- a/docs/cpta/trending/ip4_tunnels-3n-tsh-x520.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-3n-tsh-x520
------------
-
-64b-ip4tunnel-base-scale-ixgbe
-``````````````````````````````
-
-..
- 10ge2p1x520-ethip4vxlan-l2xcbase-mrr
- 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-mrr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-ixgbe"></a>
- <a name="64b-1t1c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-1t1c-ip4-tunnels-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-ixgbe"></a>
- <a name="64b-2t2c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-2t2c-ip4-tunnels-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-ixgbe"></a>
- <a name="64b-4t4c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-4t4c-ip4-tunnels-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4_tunnels.rst b/docs/cpta/trending/ip4_tunnels.rst
deleted file mode 100644
index a6488cd1fa..0000000000
--- a/docs/cpta/trending/ip4_tunnels.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-IPv4 Tunnels
-============
-
-.. toctree::
-
- ip4_tunnels-3n-skx-xxv710
- ip4_tunnels-3n-hsw-xl710
- ip4_tunnels-3n-tsh-x520
- ip4_tunnels-3n-dnv-x553
diff --git a/docs/cpta/trending/ip6-2n-clx-cx556a.rst b/docs/cpta/trending/ip6-2n-clx-cx556a.rst
deleted file mode 100644
index 90168c1a36..0000000000
--- a/docs/cpta/trending/ip6-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-clx-cx556a
--------------
-
-78b-ip6routing-base-scale-rdma
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-rdma"></a>
- <a name="78b-2t1c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-rdma"></a>
- <a name="78b-4t2c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-78b-4t2c-rdma-ip6routing-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-rdma"></a>
- <a name="78b-8t4c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-78b-8t4c-rdma-ip6routing-base-scale.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-2n-clx-x710.rst b/docs/cpta/trending/ip6-2n-clx-x710.rst
deleted file mode 100644
index 02c717c253..0000000000
--- a/docs/cpta/trending/ip6-2n-clx-x710.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-2n-clx-x710
------------
-
-78b-ip6routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk"></a>
- <a name="78b-2t1c-scale-dpdk"></a>
- <a name="78b-2t1c-base-avf"></a>
- <a name="78b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-78b-2t1c-ip6-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-dpdk"></a>
- <a name="78b-4t2c-scale-dpdk"></a>
- <a name="78b-4t2c-base-avf"></a>
- <a name="78b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-78b-4t2c-ip6-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-dpdk"></a>
- <a name="78b-8t4c-scale-dpdk"></a>
- <a name="78b-8t4c-base-avf"></a>
- <a name="78b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-78b-8t4c-ip6-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-2n-clx-xxv710.rst b/docs/cpta/trending/ip6-2n-clx-xxv710.rst
deleted file mode 100644
index 41619cc08c..0000000000
--- a/docs/cpta/trending/ip6-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-2n-clx-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf"></a>
- <a name="78b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-avf"></a>
- <a name="78b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-78b-4t2c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-avf"></a>
- <a name="78b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-78b-8t4c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk"></a>
- <a name="78b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-dpdk"></a>
- <a name="78b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-78b-4t2c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-dpdk"></a>
- <a name="78b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-78b-8t4c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-2n-dnv-x553.rst b/docs/cpta/trending/ip6-2n-dnv-x553.rst
deleted file mode 100644
index 374bf98ad5..0000000000
--- a/docs/cpta/trending/ip6-2n-dnv-x553.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-2n-dnv-x553
------------
-
-78b-ip6routing-base-scale-ixgbe
-```````````````````````````````
-
-..
- 10ge2p1x553-dot1q-ip6base-mrr
- 10ge2p1x553-ethip6-ip6base-mrr
- 10ge2p1x553-ethip6-ip6scale20k-mrr
- 10ge2p1x553-ethip6-ip6scale200k-mrr
- 10ge2p1x553-ethip6-ip6scale2m-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-ixgbe"></a>
- <a name="78b-1t1c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-dnv-x553-78b-1t1c-ip6-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="78b-2t2c-base-ixgbe"></a>
- <a name="78b-2t2c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-dnv-x553-78b-2t2c-ip6-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="78b-4t4c-base-ixgbe"></a>
- <a name="78b-4t4c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-dnv-x553-78b-4t4c-ip6-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-2n-skx-x710.rst b/docs/cpta/trending/ip6-2n-skx-x710.rst
deleted file mode 100644
index de3fcc06ef..0000000000
--- a/docs/cpta/trending/ip6-2n-skx-x710.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-2n-skx-x710
------------
-
-78b-ip6routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk"></a>
- <a name="78b-2t1c-scale-dpdk"></a>
- <a name="78b-2t1c-base-avf"></a>
- <a name="78b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-78b-2t1c-ip6-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-dpdk"></a>
- <a name="78b-4t2c-scale-dpdk"></a>
- <a name="78b-4t2c-base-avf"></a>
- <a name="78b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-78b-4t2c-ip6-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-dpdk"></a>
- <a name="78b-8t4c-scale-dpdk"></a>
- <a name="78b-8t4c-base-avf"></a>
- <a name="78b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-78b-8t4c-ip6-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-2n-skx-xxv710.rst b/docs/cpta/trending/ip6-2n-skx-xxv710.rst
deleted file mode 100644
index 7d9ff28755..0000000000
--- a/docs/cpta/trending/ip6-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-2n-skx-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf"></a>
- <a name="78b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-avf"></a>
- <a name="78b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-78b-4t2c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-avf"></a>
- <a name="78b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-78b-8t4c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk"></a>
- <a name="78b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-dpdk"></a>
- <a name="78b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-78b-4t2c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-dpdk"></a>
- <a name="78b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-78b-8t4c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-2n-zn2-cx556a.rst b/docs/cpta/trending/ip6-2n-zn2-cx556a.rst
deleted file mode 100644
index c170bf7386..0000000000
--- a/docs/cpta/trending/ip6-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-zn2-cx556a
--------------
-
-78b-ip6routing-base-scale-rdma
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-rdma"></a>
- <a name="78b-2t1c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-rdma"></a>
- <a name="78b-4t2c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-78b-4t2c-rdma-ip6routing-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-rdma"></a>
- <a name="78b-8t4c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-78b-8t4c-rdma-ip6routing-base-scale.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-2n-zn2-x710.rst b/docs/cpta/trending/ip6-2n-zn2-x710.rst
deleted file mode 100644
index f3a0818c68..0000000000
--- a/docs/cpta/trending/ip6-2n-zn2-x710.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-2n-zn2-x710
------------
-
-78b-ip6routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk"></a>
- <a name="78b-2t1c-scale-dpdk"></a>
- <a name="78b-2t1c-base-avf"></a>
- <a name="78b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-78b-2t1c-ip6-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-dpdk"></a>
- <a name="78b-4t2c-scale-dpdk"></a>
- <a name="78b-4t2c-base-avf"></a>
- <a name="78b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-78b-4t2c-ip6-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-dpdk"></a>
- <a name="78b-8t4c-scale-dpdk"></a>
- <a name="78b-8t4c-base-avf"></a>
- <a name="78b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-78b-8t4c-ip6-base-scale-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-2n-zn2-xxv710.rst b/docs/cpta/trending/ip6-2n-zn2-xxv710.rst
deleted file mode 100644
index cec9eec0b2..0000000000
--- a/docs/cpta/trending/ip6-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-2n-zn2-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf"></a>
- <a name="78b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-78b-2t1c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-avf"></a>
- <a name="78b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-78b-4t2c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-avf"></a>
- <a name="78b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-78b-8t4c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk"></a>
- <a name="78b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-78b-2t1c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-dpdk"></a>
- <a name="78b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-78b-4t2c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-dpdk"></a>
- <a name="78b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-78b-8t4c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-3n-dnv-x553.rst b/docs/cpta/trending/ip6-3n-dnv-x553.rst
deleted file mode 100644
index 1228eb3e6e..0000000000
--- a/docs/cpta/trending/ip6-3n-dnv-x553.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-3n-dnv-x553
------------
-78b-ip6routing-base-scale-ixgbe
-```````````````````````````````
-
-..
- 10ge2p1x553-dot1q-ip6base-mrr
- 10ge2p1x553-ethip6-ip6base-mrr
- 10ge2p1x553-ethip6-ip6scale20k-mrr
- 10ge2p1x553-ethip6-ip6scale200k-mrr
- 10ge2p1x553-ethip6-ip6scale2m-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-ixgbe"></a>
- <a name="78b-1t1c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-78b-1t1c-ip6-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="78b-2t2c-base-ixgbe"></a>
- <a name="78b-2t2c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-78b-2t2c-ip6-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="78b-4t4c-base-ixgbe"></a>
- <a name="78b-4t4c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-78b-4t4c-ip6-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-3n-hsw-xl710.rst b/docs/cpta/trending/ip6-3n-hsw-xl710.rst
deleted file mode 100644
index 44c6ff0349..0000000000
--- a/docs/cpta/trending/ip6-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-3n-hsw-xl710
-------------
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-..
- 40ge2p1xl710-dot1q-ip6base-mrr
- 40ge2p1xl710-ethip6-ip6base-mrr
- 40ge2p1xl710-ethip6-ip6scale2m-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-dpdk"></a>
- <a name="78b-1t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-78b-1t1c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="78b-2t2c-base-dpdk"></a>
- <a name="78b-2t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-78b-2t2c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="78b-4t4c-base-dpdk"></a>
- <a name="78b-4t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-78b-4t4c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-3n-skx-x710.rst b/docs/cpta/trending/ip6-3n-skx-x710.rst
deleted file mode 100644
index 4bf6e82121..0000000000
--- a/docs/cpta/trending/ip6-3n-skx-x710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-3n-skx-x710
------------
-
-78b-ip6routing-base-scale-avf
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf"></a>
- <a name="78b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-78b-2t1c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-avf"></a>
- <a name="78b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-78b-4t2c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-avf"></a>
- <a name="78b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-78b-8t4c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-3n-skx-xxv710.rst b/docs/cpta/trending/ip6-3n-skx-xxv710.rst
deleted file mode 100644
index 27e4ad32aa..0000000000
--- a/docs/cpta/trending/ip6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-3n-skx-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf"></a>
- <a name="78b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-2t1c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-avf"></a>
- <a name="78b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-4t2c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-avf"></a>
- <a name="78b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-8t4c-ip6-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-dpdk"></a>
- <a name="78b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-dpdk"></a>
- <a name="78b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-4t2c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-dpdk"></a>
- <a name="78b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-8t4c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-3n-tsh-x520.rst b/docs/cpta/trending/ip6-3n-tsh-x520.rst
deleted file mode 100644
index 3e65c04f74..0000000000
--- a/docs/cpta/trending/ip6-3n-tsh-x520.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-3n-tsh-x520
------------
-
-78b-ip6routing-base-scale-ixgbe
-```````````````````````````````
-
-..
- 10ge2p1x520-dot1q-ip6base-mrr
- 10ge2p1x520-ethip6-ip6base-mrr
- 10ge2p1x520-ethip6-ip6scale20k-mrr
- 10ge2p1x520-ethip6-ip6scale200k-mrr
- 10ge2p1x520-ethip6-ip6scale2m-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-ixgbe"></a>
- <a name="78b-1t1c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-78b-1t1c-ip6-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="78b-2t2c-base-ixgbe"></a>
- <a name="78b-2t2c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-78b-2t2c-ip6-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="78b-4t4c-base-ixgbe"></a>
- <a name="78b-4t4c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-78b-4t4c-ip6-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6.rst b/docs/cpta/trending/ip6.rst
deleted file mode 100644
index 21a5c55cbc..0000000000
--- a/docs/cpta/trending/ip6.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-IPv6 Routing
-============
-
-.. toctree::
-
- ip6-2n-clx-xxv710
- ip6-2n-clx-x710
- ip6-2n-skx-xxv710
- ip6-2n-skx-x710
- ip6-3n-skx-xxv710
- ip6-3n-skx-x710
- ip6-3n-hsw-xl710
- ip6-3n-tsh-x520
- ip6-2n-dnv-x553
- ip6-3n-dnv-x553
- ip6-2n-zn2-xxv710
- ip6-2n-zn2-x710
- ip6-2n-zn2-cx556a
-
-..
- ip6-2n-clx-cx556a
diff --git a/docs/cpta/trending/ipsec-3n-dnv-x553.rst b/docs/cpta/trending/ipsec-3n-dnv-x553.rst
deleted file mode 100644
index f8697445c8..0000000000
--- a/docs/cpta/trending/ipsec-3n-dnv-x553.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-3n-dnv-x553
------------
-
-imix-ipsec-ip4routing-base-scale-sw-ixgbe
-`````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="imix-1t1c-base-sw-ixgbe"></a>
- <a name="imix-1t1c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-imix-1t1c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="imix-2t2c-base-sw-ixgbe"></a>
- <a name="imix-2t2c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-imix-2t2c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="imix-4t4c-base-sw-ixgbe"></a>
- <a name="imix-4t4c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-imix-4t4c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-ip4routing-base-scale-sw-ixgbe
-``````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-1t1c-base-sw-ixgbe"></a>
- <a name="1518b-1t1c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-1518b-1t1c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t2c-base-sw-ixgbe"></a>
- <a name="1518b-2t2c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-1518b-2t2c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t4c-base-sw-ixgbe"></a>
- <a name="1518b-4t4c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-1518b-4t4c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ipsec-3n-hsw-xl710.rst b/docs/cpta/trending/ipsec-3n-hsw-xl710.rst
deleted file mode 100644
index 01757be380..0000000000
--- a/docs/cpta/trending/ipsec-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,112 +0,0 @@
-3n-hsw-xl710
-------------
-
-imix-ipsec-ip4routing-base-scale-sw-dpdk
-````````````````````````````````````````
-
-..
- 40ge2p1xl710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr
- 40ge2p1xl710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
- 40ge2p1xl710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr
- 40ge2p1xl710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
- 40ge2p1xl710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr
- 40ge2p1xl710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="imix-1t1c-base-sw-dpdk"></a>
- <a name="imix-1t1c-scale-sw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-imix-1t1c-ipsec-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="imix-2t2c-base-sw-dpdk"></a>
- <a name="imix-2t2c-scale-sw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-imix-2t2c-ipsec-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="imix-4t4c-base-sw-dpdk"></a>
- <a name="imix-4t4c-scale-sw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-imix-4t4c-ipsec-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-ip4routing-base-scale-hw-dpdk
-````````````````````````````````````````
-
-..
- 40ge2p1xl710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-mrr
- 40ge2p1xl710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-mrr
- 40ge2p1xl710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-mrr
- 40ge2p1xl710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="imix-1t1c-base-hw-dpdk"></a>
- <a name="imix-1t1c-scale-hw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-imix-1t1c-ipsec-base-scale-hw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="imix-2t2c-base-hw-dpdk"></a>
- <a name="imix-2t2c-scale-hw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-imix-2t2c-ipsec-base-scale-hw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="imix-4t4c-base-hw-dpdk"></a>
- <a name="imix-4t4c-scale-hw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-imix-4t4c-ipsec-base-scale-hw-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ipsec-3n-skx-xxv710.rst b/docs/cpta/trending/ipsec-3n-skx-xxv710.rst
deleted file mode 100644
index e855293464..0000000000
--- a/docs/cpta/trending/ipsec-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,194 +0,0 @@
-3n-skx-xxv710
--------------
-
-imix-ipsec-ip4routing-base-scale-sw-avf
-```````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-sw-avf"></a>
- <a name="imix-2t1c-scale-sw-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base-sw-avf"></a>
- <a name="imix-4t2c-scale-sw-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-imix-4t2c-ipsec-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base-sw-avf"></a>
- <a name="imix-8t4c-scale-sw-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-imix-8t4c-ipsec-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-ip4routing-base-scale-sw-dpdk
-````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-sw-dpdk"></a>
- <a name="imix-2t1c-scale-sw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base-sw-dpdk"></a>
- <a name="imix-4t2c-scale-sw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-imix-4t2c-ipsec-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base-sw-dpdk"></a>
- <a name="imix-8t4c-scale-sw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-imix-8t4c-ipsec-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-ip4routing-base-scale-sw-avf
-````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-sw-avf"></a>
- <a name="1518b-2t1c-scale-sw-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t2c-base-sw-avf"></a>
- <a name="1518b-4t2c-scale-sw-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-1518b-4t2c-ipsec-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-8t4c-base-sw-avf"></a>
- <a name="1518b-8t4c-scale-sw-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-1518b-8t4c-ipsec-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-ip4routing-base-scale-sw-dpdk
-`````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-sw-dpdk"></a>
- <a name="1518b-2t1c-scale-sw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t2c-base-sw-dpdk"></a>
- <a name="1518b-4t2c-scale-sw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-1518b-4t2c-ipsec-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-8t4c-base-sw-dpdk"></a>
- <a name="1518b-8t4c-scale-sw-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-1518b-8t4c-ipsec-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ipsec-3n-tsh-x520.rst b/docs/cpta/trending/ipsec-3n-tsh-x520.rst
deleted file mode 100644
index a437766b56..0000000000
--- a/docs/cpta/trending/ipsec-3n-tsh-x520.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-3n-tsh-x520
------------
-
-imix-ipsec-ip4routing-base-scale-sw-ixgbe
-`````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="imix-1t1c-base-sw-ixgbe"></a>
- <a name="imix-1t1c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-imix-1t1c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="imix-2t2c-base-sw-ixgbe"></a>
- <a name="imix-2t2c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-imix-2t2c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="imix-4t4c-base-sw-ixgbe"></a>
- <a name="imix-4t4c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-imix-4t4c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-ip4routing-base-scale-sw-ixgbe
-``````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-1t1c-base-sw-ixgbe"></a>
- <a name="1518b-1t1c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-1518b-1t1c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t2c-base-sw-ixgbe"></a>
- <a name="1518b-2t2c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-1518b-2t2c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t4c-base-sw-ixgbe"></a>
- <a name="1518b-4t4c-scale-sw-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-1518b-4t4c-ipsec-base-scale-sw-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ipsec.rst b/docs/cpta/trending/ipsec.rst
deleted file mode 100644
index 602199b7bd..0000000000
--- a/docs/cpta/trending/ipsec.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-IPSec IPv4 Routing
-==================
-
-.. toctree::
-
- ipsec-3n-skx-xxv710
- ipsec-3n-hsw-xl710
- ipsec-3n-tsh-x520
- ipsec-3n-dnv-x553
diff --git a/docs/cpta/trending/l2-2n-clx-cx556a.rst b/docs/cpta/trending/l2-2n-clx-cx556a.rst
deleted file mode 100644
index 4e45c988be..0000000000
--- a/docs/cpta/trending/l2-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-l2switching-base-rdma
-`````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2switching-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-4t2c-rdma-l2switching-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-8t4c-rdma-l2switching-base.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-scale-rdma
-``````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-4t2c-rdma-l2switching-scale.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-8t4c-rdma-l2switching-scale.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-2n-clx-x710.rst b/docs/cpta/trending/l2-2n-clx-x710.rst
deleted file mode 100644
index 9343c3a815..0000000000
--- a/docs/cpta/trending/l2-2n-clx-x710.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-2n-clx-x710
------------
-
-64b-l2switching-base-scale-avf-dpdk
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-2t1c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-4t2c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-x710-64b-8t4c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-2n-clx-xxv710.rst b/docs/cpta/trending/l2-2n-clx-xxv710.rst
deleted file mode 100644
index 0b6875c52b..0000000000
--- a/docs/cpta/trending/l2-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,182 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-l2switching-base-avf
-````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-dpdk
-`````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-l2-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-l2-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-l2-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-2n-dnv-x553.rst b/docs/cpta/trending/l2-2n-dnv-x553.rst
deleted file mode 100644
index ff9c65eb55..0000000000
--- a/docs/cpta/trending/l2-2n-dnv-x553.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-dnv-x553
------------
-
-64b-l2switching-base-scale-ixgbe
-````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-ixgbe"></a>
- <a name="64b-1t1c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-dnv-x553-64b-1t1c-l2-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-ixgbe"></a>
- <a name="64b-2t2c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-dnv-x553-64b-2t2c-l2-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-ixgbe"></a>
- <a name="64b-4t4c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-dnv-x553-64b-4t4c-l2-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-2n-skx-x710.rst b/docs/cpta/trending/l2-2n-skx-x710.rst
deleted file mode 100644
index 720c4af41a..0000000000
--- a/docs/cpta/trending/l2-2n-skx-x710.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-2n-skx-x710
------------
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-4t2c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-8t4c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-2t1c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-4t2c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-x710-64b-8t4c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-2n-skx-xxv710.rst b/docs/cpta/trending/l2-2n-skx-xxv710.rst
deleted file mode 100644
index f99d1306ca..0000000000
--- a/docs/cpta/trending/l2-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,137 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-l2switching-base-avf
-````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-dpdk
-`````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-l2-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-l2-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-2n-zn2-cx556a.rst b/docs/cpta/trending/l2-2n-zn2-cx556a.rst
deleted file mode 100644
index dd3301804b..0000000000
--- a/docs/cpta/trending/l2-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-zn2-cx556a
--------------
-
-64b-l2switching-base-rdma
-`````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-4t2c-rdma-l2switching-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-8t4c-rdma-l2switching-base.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-scale-rdma
-``````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-4t2c-rdma-l2switching-scale.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-rdma"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-8t4c-rdma-l2switching-scale.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-2n-zn2-x710.rst b/docs/cpta/trending/l2-2n-zn2-x710.rst
deleted file mode 100644
index 611c74393c..0000000000
--- a/docs/cpta/trending/l2-2n-zn2-x710.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-2n-zn2-x710
------------
-
-64b-l2switching-base-scale-avf-dpdk
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-64b-2t1c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-64b-4t2c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-x710-64b-8t4c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-2n-zn2-xxv710.rst b/docs/cpta/trending/l2-2n-zn2-xxv710.rst
deleted file mode 100644
index a643c1a624..0000000000
--- a/docs/cpta/trending/l2-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,182 +0,0 @@
-2n-zn2-xxv710
--------------
-
-64b-l2switching-base-avf
-````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-dpdk
-`````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-l2-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-l2-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-3n-dnv-x553.rst b/docs/cpta/trending/l2-3n-dnv-x553.rst
deleted file mode 100644
index 0995a3e6b1..0000000000
--- a/docs/cpta/trending/l2-3n-dnv-x553.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-3n-dnv-x553
------------
-
-64b-l2switching-base-scale-ixgbe
-````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-ixgbe"></a>
- <a name="64b-1t1c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-64b-1t1c-l2-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-ixgbe"></a>
- <a name="64b-2t2c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-64b-2t2c-l2-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-ixgbe"></a>
- <a name="64b-4t4c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-64b-4t4c-l2-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-3n-hsw-xl710.rst b/docs/cpta/trending/l2-3n-hsw-xl710.rst
deleted file mode 100644
index fed0a8a4b7..0000000000
--- a/docs/cpta/trending/l2-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,58 +0,0 @@
-3n-hsw-xl710
-------------
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-..
- 40ge2p1xl710-eth-l2patch-mrr
- 40ge2p1xl710-dot1q-l2xcbase-mrr
- 40ge2p1xl710-eth-l2xcbase-mrr
- 40ge2p1xl710-dot1q-l2bdbasemaclrn-mrr
- 40ge2p1xl710-eth-l2bdbasemaclrn-mrr
- 40ge2p1xl710-eth-l2bdscale1mmaclrn-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk"></a>
- <a name="64b-1t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-dpdk"></a>
- <a name="64b-2t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-2t2c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-dpdk"></a>
- <a name="64b-4t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-4t4c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-3n-skx-x710.rst b/docs/cpta/trending/l2-3n-skx-x710.rst
deleted file mode 100644
index 40083b21f6..0000000000
--- a/docs/cpta/trending/l2-3n-skx-x710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-3n-skx-x710
------------
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-4t2c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-8t4c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-3n-skx-xxv710.rst b/docs/cpta/trending/l2-3n-skx-xxv710.rst
deleted file mode 100644
index 236f4e9660..0000000000
--- a/docs/cpta/trending/l2-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,140 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-l2switching-base-avf
-````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-l2-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-scale-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-l2-base-scale-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-avf-dpdk
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-l2-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-3n-tsh-x520.rst b/docs/cpta/trending/l2-3n-tsh-x520.rst
deleted file mode 100644
index 12cb7fe373..0000000000
--- a/docs/cpta/trending/l2-3n-tsh-x520.rst
+++ /dev/null
@@ -1,149 +0,0 @@
-3n-tsh-x520
------------
-
-64b-l2switching-base-ixgbe
-``````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-1t1c-l2-base-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-2t2c-l2-base-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-4t4c-l2-base-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-ixgbe
-````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-ixgbe"></a>
- <a name="64b-1t1c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-1t1c-l2-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-ixgbe"></a>
- <a name="64b-2t2c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-2t2c-l2-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-ixgbe"></a>
- <a name="64b-4t4c-scale-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-4t4c-l2-base-scale-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-64b-features-l2switching-base-ixgbe
-```````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-features-ixgbe"></a>
- <a name="64b-1t1c-features-iacl50-ixgbe"></a>
- <a name="64b-1t1c-features-oacl50-ixgbe"></a>
- <a name="64b-1t1c-features-macip-iacl50-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-1t1c-l2-features-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-features-ixgbe"></a>
- <a name="64b-2t2c-features-iacl50-ixgbe"></a>
- <a name="64b-2t2c-features-oacl50-ixgbe"></a>
- <a name="64b-2t2c-features-macip-iacl50-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-2t2c-l2-features-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-features-ixgbe"></a>
- <a name="64b-4t4c-features-iacl50-ixgbe"></a>
- <a name="64b-4t4c-features-oacl50-ixgbe"></a>
- <a name="64b-4t4c-features-macip-iacl50-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-4t4c-l2-features-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2.rst b/docs/cpta/trending/l2.rst
deleted file mode 100644
index aeb1cefa32..0000000000
--- a/docs/cpta/trending/l2.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-L2 Ethernet Switching
-=====================
-
-.. toctree::
-
- l2-2n-clx-xxv710
- l2-2n-clx-x710
- l2-2n-skx-xxv710
- l2-2n-skx-x710
- l2-3n-skx-xxv710
- l2-3n-skx-x710
- l2-3n-hsw-xl710
- l2-3n-tsh-x520
- l2-2n-dnv-x553
- l2-3n-dnv-x553
- l2-2n-zn2-xxv710
- l2-2n-zn2-x710
- l2-2n-zn2-cx556a
-
-..
- l2-2n-clx-cx556a
diff --git a/docs/cpta/trending/nat44-det-bidir-2n-clx-xxv710.rst b/docs/cpta/trending/nat44-det-bidir-2n-clx-xxv710.rst
deleted file mode 100644
index 0542bf970b..0000000000
--- a/docs/cpta/trending/nat44-det-bidir-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
-`````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44det-bidir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-nat44det-bidir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-nat44det-bidir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-det-bidir-2n-skx-xxv710.rst b/docs/cpta/trending/nat44-det-bidir-2n-skx-xxv710.rst
deleted file mode 100644
index 0555f27d11..0000000000
--- a/docs/cpta/trending/nat44-det-bidir-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
-`````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44det-bidir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-nat44det-bidir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-nat44det-bidir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-det-bidir.rst b/docs/cpta/trending/nat44-det-bidir.rst
deleted file mode 100644
index b917a1b0de..0000000000
--- a/docs/cpta/trending/nat44-det-bidir.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Det BiDir
----------
-
-.. toctree::
-
- nat44-det-bidir-2n-clx-xxv710
- nat44-det-bidir-2n-skx-xxv710
diff --git a/docs/cpta/trending/nat44-ed-tcp-cps-2n-clx-xxv710.rst b/docs/cpta/trending/nat44-ed-tcp-cps-2n-clx-xxv710.rst
deleted file mode 100644
index 6a962639bd..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-cps-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-cps-avf
-``````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-tcp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-tcp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-tcp-cps-2n-skx-xxv710.rst b/docs/cpta/trending/nat44-ed-tcp-cps-2n-skx-xxv710.rst
deleted file mode 100644
index f5bc9b03c3..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-cps-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-cps-avf
-``````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-tcp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-tcp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-tcp-cps.rst b/docs/cpta/trending/nat44-ed-tcp-cps.rst
deleted file mode 100644
index 0a884f4f9f..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-cps.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ED TCP CPS
-----------
-
-.. toctree::
-
- nat44-ed-tcp-cps-2n-clx-xxv710
- nat44-ed-tcp-cps-2n-skx-xxv710
diff --git a/docs/cpta/trending/nat44-ed-tcp-pps-2n-clx-xxv710.rst b/docs/cpta/trending/nat44-ed-tcp-pps-2n-clx-xxv710.rst
deleted file mode 100644
index f7603efc7b..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-pps-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-pps-avf
-``````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-tcp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-tcp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-tcp-pps-2n-skx-xxv710.rst b/docs/cpta/trending/nat44-ed-tcp-pps-2n-skx-xxv710.rst
deleted file mode 100644
index d2c68a38eb..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-pps-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-pps-avf
-``````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-tcp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-tcp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-tcp-pps.rst b/docs/cpta/trending/nat44-ed-tcp-pps.rst
deleted file mode 100644
index fb7342ef9c..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-pps.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ED TCP PPS
-----------
-
-.. toctree::
-
- nat44-ed-tcp-pps-2n-clx-xxv710
- nat44-ed-tcp-pps-2n-skx-xxv710
diff --git a/docs/cpta/trending/nat44-ed-udp-cps-2n-clx-xxv710.rst b/docs/cpta/trending/nat44-ed-udp-cps-2n-clx-xxv710.rst
deleted file mode 100644
index 512a5df5b7..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-cps-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-cps-avf
-``````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-udp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-udp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-udp-cps-2n-skx-xxv710.rst b/docs/cpta/trending/nat44-ed-udp-cps-2n-skx-xxv710.rst
deleted file mode 100644
index d7d6af45e3..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-cps-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-cps-avf
-``````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-udp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-udp-cps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-udp-cps.rst b/docs/cpta/trending/nat44-ed-udp-cps.rst
deleted file mode 100644
index 904290d4b9..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-cps.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ED UDP CPS
-----------
-
-.. toctree::
-
- nat44-ed-udp-cps-2n-clx-xxv710
- nat44-ed-udp-cps-2n-skx-xxv710
diff --git a/docs/cpta/trending/nat44-ed-udp-pps-2n-clx-xxv710.rst b/docs/cpta/trending/nat44-ed-udp-pps-2n-clx-xxv710.rst
deleted file mode 100644
index 7057b0c7f6..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-pps-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-pps-avf
-``````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-udp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-udp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-udp-pps-2n-skx-xxv710.rst b/docs/cpta/trending/nat44-ed-udp-pps-2n-skx-xxv710.rst
deleted file mode 100644
index 9003a65bdb..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-pps-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-pps-avf
-``````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-udp-ps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-udp-pps-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-udp-pps.rst b/docs/cpta/trending/nat44-ed-udp-pps.rst
deleted file mode 100644
index 5b7744a7af..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-pps.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ED UDP PPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-pps-2n-clx-xxv710
- nat44-ed-udp-pps-2n-skx-xxv710
diff --git a/docs/cpta/trending/nat44-ed-unidir-2n-clx-xxv710.rst b/docs/cpta/trending/nat44-ed-unidir-2n-clx-xxv710.rst
deleted file mode 100644
index 22d0ce1c06..0000000000
--- a/docs/cpta/trending/nat44-ed-unidir-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
-`````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44ed-udir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-nat44ed-udir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-nat44ed-udir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-unidir-2n-skx-xxv710.rst b/docs/cpta/trending/nat44-ed-unidir-2n-skx-xxv710.rst
deleted file mode 100644
index 28eeacaca5..0000000000
--- a/docs/cpta/trending/nat44-ed-unidir-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
-`````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-nat44ed-udir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-nat44ed-udir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-nat44ed-udir-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-unidir.rst b/docs/cpta/trending/nat44-ed-unidir.rst
deleted file mode 100644
index 86b7dae710..0000000000
--- a/docs/cpta/trending/nat44-ed-unidir.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ED UniDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-unidir-2n-clx-xxv710
- nat44-ed-unidir-2n-skx-xxv710
diff --git a/docs/cpta/trending/nat44.rst b/docs/cpta/trending/nat44.rst
deleted file mode 100644
index 97115fddc3..0000000000
--- a/docs/cpta/trending/nat44.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-NAT44 IPv4 Routing
-==================
-
-.. toctree::
-
- nat44-det-bidir
- nat44-ed-unidir
- nat44-ed-udp-cps
- nat44-ed-tcp-cps
- nat44-ed-udp-pps
- nat44-ed-tcp-pps
diff --git a/docs/cpta/trending/nf_service_density.rst b/docs/cpta/trending/nf_service_density.rst
deleted file mode 100644
index dc77275436..0000000000
--- a/docs/cpta/trending/nf_service_density.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-NF Service Density
-==================
-
-.. toctree::
-
- nf_service_density_vnfc
- nf_service_density_cnfc
- nf_service_density_cnfp
- nf_service_density_vnfc-vxlan
diff --git a/docs/cpta/trending/nf_service_density_cnfc-2n-clx-xxv710.rst b/docs/cpta/trending/nf_service_density_cnfc-2n-clx-xxv710.rst
deleted file mode 100644
index 400fa54998..0000000000
--- a/docs/cpta/trending/nf_service_density_cnfc-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-clx-xxv710-imix-memif-chains-avf
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-2t1c-memif-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-4t2c-memif-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-8t4c-memif-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
diff --git a/docs/cpta/trending/nf_service_density_cnfc-2n-skx-xxv710.rst b/docs/cpta/trending/nf_service_density_cnfc-2n-skx-xxv710.rst
deleted file mode 100644
index 4b5592119f..0000000000
--- a/docs/cpta/trending/nf_service_density_cnfc-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-skx-xxv710-imix-memif-chains-avf
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-2t1c-memif-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-4t2c-memif-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-8t4c-memif-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
diff --git a/docs/cpta/trending/nf_service_density_cnfc.rst b/docs/cpta/trending/nf_service_density_cnfc.rst
deleted file mode 100644
index a2299b1760..0000000000
--- a/docs/cpta/trending/nf_service_density_cnfc.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-CNF Service Chains Routing
---------------------------
-
-.. toctree::
-
- nf_service_density_cnfc-2n-skx-xxv710
- nf_service_density_cnfc-2n-clx-xxv710
diff --git a/docs/cpta/trending/nf_service_density_cnfp-2n-clx-xxv710.rst b/docs/cpta/trending/nf_service_density_cnfp-2n-clx-xxv710.rst
deleted file mode 100644
index 4bd5e93840..0000000000
--- a/docs/cpta/trending/nf_service_density_cnfp-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-clx-xxv710-imix-memif-pipelines-avf
-``````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-2t1c-memif-pipelines-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-4t2c-memif-pipelines-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-8t4c-memif-pipelines-avf.html"></iframe>
- <p><br><br></p>
- </center>
diff --git a/docs/cpta/trending/nf_service_density_cnfp-2n-skx-xxv710.rst b/docs/cpta/trending/nf_service_density_cnfp-2n-skx-xxv710.rst
deleted file mode 100644
index 00fe6e7433..0000000000
--- a/docs/cpta/trending/nf_service_density_cnfp-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-skx-xxv710-imix-memif-pipelines-avf
-``````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-2t1c-memif-pipelines-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-4t2c-memif-pipelines-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-8t4c-memif-pipelines-avf.html"></iframe>
- <p><br><br></p>
- </center>
diff --git a/docs/cpta/trending/nf_service_density_cnfp.rst b/docs/cpta/trending/nf_service_density_cnfp.rst
deleted file mode 100644
index b1eefee697..0000000000
--- a/docs/cpta/trending/nf_service_density_cnfp.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-CNF Service Pipelines Routing
------------------------------
-
-.. toctree::
-
- nf_service_density_cnfp-2n-skx-xxv710
- nf_service_density_cnfp-2n-clx-xxv710
diff --git a/docs/cpta/trending/nf_service_density_vnfc-2n-clx-xxv710.rst b/docs/cpta/trending/nf_service_density_vnfc-2n-clx-xxv710.rst
deleted file mode 100644
index a394e5c972..0000000000
--- a/docs/cpta/trending/nf_service_density_vnfc-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-clx-xxv710-imix-vhost-chains-avf
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-2t1c-vhost-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-4t2c-vhost-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-8t4c-vhost-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
diff --git a/docs/cpta/trending/nf_service_density_vnfc-2n-skx-xxv710.rst b/docs/cpta/trending/nf_service_density_vnfc-2n-skx-xxv710.rst
deleted file mode 100644
index f357f8c234..0000000000
--- a/docs/cpta/trending/nf_service_density_vnfc-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-skx-xxv710-imix-vhost-chains-avf
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-2t1c-vhost-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-4t2c-vhost-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-8t4c-vhost-chains-avf.html"></iframe>
- <p><br><br></p>
- </center>
diff --git a/docs/cpta/trending/nf_service_density_vnfc-vxlan-2n-clx-xxv710.rst b/docs/cpta/trending/nf_service_density_vnfc-vxlan-2n-clx-xxv710.rst
deleted file mode 100644
index da443c77e5..0000000000
--- a/docs/cpta/trending/nf_service_density_vnfc-vxlan-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-clx-xxv710-imix-vhost-chains-vxlan-avf
-`````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-2t1c-vhost-chains-vxlan-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-4t2c-vhost-chains-vxlan-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-imix-8t4c-vhost-chains-vxlan-avf.html"></iframe>
- <p><br><br></p>
- </center>
diff --git a/docs/cpta/trending/nf_service_density_vnfc-vxlan-2n-skx-xxv710.rst b/docs/cpta/trending/nf_service_density_vnfc-vxlan-2n-skx-xxv710.rst
deleted file mode 100644
index 45477de405..0000000000
--- a/docs/cpta/trending/nf_service_density_vnfc-vxlan-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-skx-xxv710-imix-vhost-chains-vxlan-avf
-`````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-2t1c-vhost-chains-vxlan-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-4t2c-vhost-chains-vxlan-avf.html"></iframe>
- <p><br><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-imix-8t4c-vhost-chains-vxlan-avf.html"></iframe>
- <p><br><br></p>
- </center>
diff --git a/docs/cpta/trending/nf_service_density_vnfc-vxlan.rst b/docs/cpta/trending/nf_service_density_vnfc-vxlan.rst
deleted file mode 100644
index 2211d1c188..0000000000
--- a/docs/cpta/trending/nf_service_density_vnfc-vxlan.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-VNF Service Chains Tunnels
---------------------------
-
-.. toctree::
-
- nf_service_density_vnfc-vxlan-2n-skx-xxv710
- nf_service_density_vnfc-vxlan-2n-clx-xxv710
diff --git a/docs/cpta/trending/nf_service_density_vnfc.rst b/docs/cpta/trending/nf_service_density_vnfc.rst
deleted file mode 100644
index 0d1f29690b..0000000000
--- a/docs/cpta/trending/nf_service_density_vnfc.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-VNF Service Chains Routing
---------------------------
-
-.. toctree::
-
- nf_service_density_vnfc-2n-skx-xxv710
- nf_service_density_vnfc-2n-clx-xxv710
diff --git a/docs/cpta/trending/srv6-3n-dnv-x553.rst b/docs/cpta/trending/srv6-3n-dnv-x553.rst
deleted file mode 100644
index 9ce12410ed..0000000000
--- a/docs/cpta/trending/srv6-3n-dnv-x553.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-3n-dnv-x553
------------
-
-78b-srv6-ip6routing-base-ixgbe
-``````````````````````````````
-
-..
- 10ge2p1x553-ethip6ip6-ip6base-srv6enc1sid-mrr
- 10ge2p1x553-ethip6srhip6-ip6base-srv6enc2sids-mrr
- 10ge2p1x553-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
- 10ge2p1x553-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
- 10ge2p1x553-ethip6srhip6-ip6base-srv6proxy-masq-mrr
- 10ge2p1x553-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-78b-1t1c-srv6-base-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="78b-2t2c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-78b-2t2c-srv6-base-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="78b-4t4c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-dnv-x553-78b-4t4c-srv6-base-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/srv6-3n-hsw-xl710.rst b/docs/cpta/trending/srv6-3n-hsw-xl710.rst
deleted file mode 100644
index 67ca9a7264..0000000000
--- a/docs/cpta/trending/srv6-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-3n-hsw-xl710
-------------
-
-78b-srv6-ip6routing-base-dpdk
-`````````````````````````````
-
-..
- 40ge2p1xl710-ethip6ip6-ip6base-srv6enc1sid-mrr
- 40ge2p1xl710-ethip6srhip6-ip6base-srv6enc2sids-mrr
- 40ge2p1xl710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
- 40ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
- 40ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-masq-mrr
- 40ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-78b-1t1c-srv6-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="78b-2t2c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-78b-2t2c-srv6-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="78b-4t4c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-78b-4t4c-srv6-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/srv6-3n-skx-xxv710.rst b/docs/cpta/trending/srv6-3n-skx-xxv710.rst
deleted file mode 100644
index 2589d00822..0000000000
--- a/docs/cpta/trending/srv6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-3n-skx-xxv710
--------------
-
-78b-srv6-ip6routing-base-avf
-````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-2t1c-srv6-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-4t2c-srv6-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-78b-8t4c-srv6-base-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/srv6-3n-tsh-x520.rst b/docs/cpta/trending/srv6-3n-tsh-x520.rst
deleted file mode 100644
index aff2a6be36..0000000000
--- a/docs/cpta/trending/srv6-3n-tsh-x520.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-3n-tsh-x520
------------
-
-78b-srv6-ip6routing-base-ixgbe
-``````````````````````````````
-
-..
- 10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-mrr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-mrr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-mrr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-78b-1t1c-srv6-base-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="78b-2t2c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-78b-2t2c-srv6-base-ixgbe.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="78b-4t4c-base-ixgbe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-78b-4t4c-srv6-base-ixgbe.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/srv6.rst b/docs/cpta/trending/srv6.rst
deleted file mode 100644
index 6c177ac510..0000000000
--- a/docs/cpta/trending/srv6.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-SRv6 Routing
-============
-
-.. toctree::
-
- srv6-3n-hsw-xl710
- srv6-3n-tsh-x520
-
-..
- srv6-3n-skx-xxv710
- srv6-3n-dnv-x553
diff --git a/docs/cpta/trending/vhost-2n-clx-cx556a.rst b/docs/cpta/trending/vhost-2n-clx-cx556a.rst
deleted file mode 100644
index cf8d3d1353..0000000000
--- a/docs/cpta/trending/vhost-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-vhost-base-rdma-testpmd
-```````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-rdma-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-4t2c-rdma-l2-vhost-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-rdma-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-8t4c-rdma-l2-vhost-base.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-rdma-vpp
-```````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-rdma-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-4t2c-rdma-l2-vhost-vppl2xc-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-rdma-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-cx556a-64b-8t4c-rdma-l2-vhost-vppl2xc-base.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vhost-2n-clx-xxv710.rst b/docs/cpta/trending/vhost-2n-clx-xxv710.rst
deleted file mode 100644
index 06f1709469..0000000000
--- a/docs/cpta/trending/vhost-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,182 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-vhost-base-avf-testpmd
-``````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-vpp
-``````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-vpp
-```````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-4t2c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-64b-8t4c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vhost-2n-skx-xxv710.rst b/docs/cpta/trending/vhost-2n-skx-xxv710.rst
deleted file mode 100644
index 4c9b8fdb11..0000000000
--- a/docs/cpta/trending/vhost-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,182 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-vhost-base-avf-testpmd
-``````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-vpp
-``````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-vpp
-```````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-4t2c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-64b-8t4c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vhost-2n-zn2-cx556a.rst b/docs/cpta/trending/vhost-2n-zn2-cx556a.rst
deleted file mode 100644
index 341a71493e..0000000000
--- a/docs/cpta/trending/vhost-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-zn2-cx556a
--------------
-
-64b-vhost-base-rdma-testpmd
-```````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-rdma-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-4t2c-rdma-l2-vhost-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-rdma-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-8t4c-rdma-l2-vhost-base.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-rdma-vpp
-```````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-rdma-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-rdma-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-4t2c-rdma-l2-vhost-vppl2xc-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-rdma-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-cx556a-64b-8t4c-rdma-l2-vhost-vppl2xc-base.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vhost-2n-zn2-xxv710.rst b/docs/cpta/trending/vhost-2n-zn2-xxv710.rst
deleted file mode 100644
index d5d52045ed..0000000000
--- a/docs/cpta/trending/vhost-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,182 +0,0 @@
-2n-zn2-xxv710
--------------
-
-64b-vhost-base-avf-testpmd
-``````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-vpp
-``````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-vpp
-```````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vhost-3n-hsw-xl710.rst b/docs/cpta/trending/vhost-3n-hsw-xl710.rst
deleted file mode 100644
index 2cabbd3b95..0000000000
--- a/docs/cpta/trending/vhost-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-3n-hsw-xl710
-------------
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-2t2c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-4t4c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-vpp
-```````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="-64b-2t2c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-2t2c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-dpdk-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-hsw-xl710-64b-4t4c-vhost-base-dpdk-vpp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vhost-3n-skx-x710.rst b/docs/cpta/trending/vhost-3n-skx-x710.rst
deleted file mode 100644
index a22833c50a..0000000000
--- a/docs/cpta/trending/vhost-3n-skx-x710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-3n-skx-x710
------------
-
-64b-link-bonding-vhost-base-avf-testpmd
-```````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-link-bonding-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-4t2c-link-bonding-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-link-bonding-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-8t4c-link-bonding-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-link-bonding-vhost-base-avf-vpp
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-link-bonding-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-4t2c-link-bonding-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-link-bonding-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-x710-64b-8t4c-link-bonding-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vhost-3n-skx-xxv710.rst b/docs/cpta/trending/vhost-3n-skx-xxv710.rst
deleted file mode 100644
index 4520a0260c..0000000000
--- a/docs/cpta/trending/vhost-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,229 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-dpdk-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-vhost-base-dpdk-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-testpmd
-``````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-vpp
-``````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-..
- Keeps failing
- 64b-link-bonding-vhost-base-avf-testpmd
- ```````````````````````````````````````
-
- 2t1c
- ::::
-
- .. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
- 4t2c
- ::::
-
- .. raw:: html
-
- <a name="64b-4t2c-base-link-bonding-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-link-bonding-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
- 8t4c
- ::::
-
- .. raw:: html
-
- <a name="64b-8t4c-base-link-bonding-avf-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-link-bonding-vhost-base-avf-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
- 64b-link-bonding-vhost-base-avf-vpp
- ```````````````````````````````````
-
- 2t1c
- ::::
-
- .. raw:: html
-
- <a name="64b-2t1c-base-link-bonding-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
- 4t2c
- ::::
-
- .. raw:: html
-
- <a name="64b-4t2c-base-link-bonding-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-4t2c-link-bonding-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
-
- 8t4c
- ::::
-
- .. raw:: html
-
- <a name="64b-8t4c-base-link-bonding-avf-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-skx-xxv710-64b-8t4c-link-bonding-vhost-base-avf-vpp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vhost-3n-tsh-x520.rst b/docs/cpta/trending/vhost-3n-tsh-x520.rst
deleted file mode 100644
index 900120dcd1..0000000000
--- a/docs/cpta/trending/vhost-3n-tsh-x520.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-3n-tsh-x520
------------
-
-64b-vhost-base-ixgbe-testpmd
-````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-ixgbe-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-ixgbe-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-2t2c-vhost-base-ixgbe-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-ixgbe-testpmd"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-4t4c-vhost-base-ixgbe-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-ixgbe-vpp
-````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-ixgbe-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-ixgbe-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-2t2c-vhost-base-ixgbe-vpp.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-ixgbe-vpp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-tsh-x520-64b-4t4c-vhost-base-ixgbe-vpp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vhost.rst b/docs/cpta/trending/vhost.rst
deleted file mode 100644
index 1cfd047b4d..0000000000
--- a/docs/cpta/trending/vhost.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-VMs vhost-user
-==============
-
-.. toctree::
-
- vhost-2n-clx-xxv710
- vhost-2n-skx-xxv710
- vhost-3n-skx-xxv710
- vhost-3n-skx-x710
- vhost-3n-hsw-xl710
- vhost-3n-tsh-x520
- vhost-2n-zn2-xxv710
- vhost-2n-zn2-cx556a
-
-..
- vhost-2n-clx-cx556a
- vhost-3n-skx-x710 - keeps failing
diff --git a/docs/cpta/trending/vts-2n-clx-xxv710.rst b/docs/cpta/trending/vts-2n-clx-xxv710.rst
deleted file mode 100644
index 5ea1f1e76d..0000000000
--- a/docs/cpta/trending/vts-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-clx-xxv710
--------------
-
-114b-vts-l2switching-base-avf-dpdk
-``````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="114b-2t1c-base-dpdk"></a>
- <a name="114b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-114b-2t1c-vts-l2switching-base-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="114b-4t2c-base-dpdk"></a>
- <a name="114b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-114b-4t2c-vts-l2switching-base-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="114b-8t4c-base-dpdk"></a>
- <a name="114b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-xxv710-114b-8t4c-vts-l2switching-base-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vts-2n-skx-xxv710.rst b/docs/cpta/trending/vts-2n-skx-xxv710.rst
deleted file mode 100644
index 697f6ec5ca..0000000000
--- a/docs/cpta/trending/vts-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-skx-xxv710
--------------
-
-114b-vts-l2switching-base-avf
-`````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="114b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-114b-2t1c-vts-l2switching-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="114b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-114b-4t2c-vts-l2switching-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="114b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-skx-xxv710-114b-8t4c-vts-l2switching-base-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vts-2n-zn2-xxv710.rst b/docs/cpta/trending/vts-2n-zn2-xxv710.rst
deleted file mode 100644
index 2af9fdaf77..0000000000
--- a/docs/cpta/trending/vts-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-zn2-xxv710
--------------
-
-114b-vts-l2switching-base-avf-dpdk
-``````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="114b-2t1c-base-dpdk"></a>
- <a name="114b-2t1c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="114b-4t2c-base-dpdk"></a>
- <a name="114b-4t2c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-114b-4t2c-vts-l2switching-base-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="114b-8t4c-base-dpdk"></a>
- <a name="114b-8t4c-base-avf"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-114b-8t4c-vts-l2switching-base-avf-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/vts.rst b/docs/cpta/trending/vts.rst
deleted file mode 100644
index da65b95850..0000000000
--- a/docs/cpta/trending/vts.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Virtual Topology System
-=======================
-
-.. toctree::
-
- vts-2n-clx-xxv710
- vts-2n-skx-xxv710
- vts-2n-zn2-xxv710
diff --git a/docs/data/variables.yaml b/docs/data/variables.yaml
new file mode 100644
index 0000000000..0f69d8cdd7
--- /dev/null
+++ b/docs/data/variables.yaml
@@ -0,0 +1,2 @@
+release_csit: "CSIT 24.02"
+release_vpp: "VPP 24.02" \ No newline at end of file
diff --git a/docs/go.mod b/docs/go.mod
new file mode 100644
index 0000000000..ea6efd44e2
--- /dev/null
+++ b/docs/go.mod
@@ -0,0 +1,5 @@
+module csit.hugo
+
+go 1.21
+
+require github.com/alex-shpak/hugo-book v0.0.0-20230424134111-d86d5e70c7c0 // indirect
diff --git a/docs/ietf/draft-ietf-bmwg-mlrsearch-06.md b/docs/ietf/draft-ietf-bmwg-mlrsearch-06.md
new file mode 100644
index 0000000000..27d65e2690
--- /dev/null
+++ b/docs/ietf/draft-ietf-bmwg-mlrsearch-06.md
@@ -0,0 +1,1634 @@
+---
+
+title: Multiple Loss Ratio Search
+abbrev: MLRsearch
+docname: draft-ietf-bmwg-mlrsearch-06
+date: 2024-03-04
+
+ipr: trust200902
+area: ops
+wg: Benchmarking Working Group
+kw: Internet-Draft
+cat: info
+
+coding: us-ascii
+pi: # can use array (if all yes) or hash here
+ toc: yes
+ sortrefs: # defaults to yes
+ symrefs: yes
+
+author:
+ -
+ ins: M. Konstantynowicz
+ name: Maciek Konstantynowicz
+ org: Cisco Systems
+ email: mkonstan@cisco.com
+ -
+ ins: V. Polak
+ name: Vratko Polak
+ org: Cisco Systems
+ email: vrpolak@cisco.com
+
+normative:
+ RFC1242:
+ RFC2285:
+ RFC2544:
+ RFC9004:
+
+informative:
+ TST009:
+ target: https://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/009/03.04.01_60/gs_NFV-TST009v030401p.pdf
+ title: "TST 009"
+ FDio-CSIT-MLRsearch:
+ target: https://csit.fd.io/cdocs/methodology/measurements/data_plane_throughput/mlr_search/
+ title: "FD.io CSIT Test Methodology - MLRsearch"
+ date: 2023-10
+ PyPI-MLRsearch:
+ target: https://pypi.org/project/MLRsearch/1.2.1/
+ title: "MLRsearch 1.2.1, Python Package Index"
+ date: 2023-10
+
+--- abstract
+
+This document proposes extensions to [RFC2544] throughput search by
+defining a new methodology called Multiple Loss Ratio search
+(MLRsearch). MLRsearch aims to minimize search duration,
+support multiple loss ratio searches,
+and enhance result repeatability and comparability.
+
+The primary reason for extending [RFC2544] is to address the challenges
+and requirements presented by the evaluation and testing
+of software-based networking systems' data planes.
+
+To give users more freedom, MLRsearch provides additional configuration options
+such as allowing multiple shorter trials per load instead of one large trial,
+tolerating a certain percentage of trial results with higher loss,
+and supporting the search for multiple goals with varying loss ratios.
+
+--- middle
+
+{::comment}
+ As we use Kramdown to convert from Markdown,
+ we use this way of marking comments not to be visible in the rendered draft.
+ https://stackoverflow.com/a/42323390
+ If another engine is used, convert to this way:
+ https://stackoverflow.com/a/20885980
+{:/comment}
+
+# Purpose and Scope
+
+The purpose of this document is to describe Multiple Loss Ratio search
+(MLRsearch), a data plane throughput search methodology optimized for software
+networking DUTs.
+
+Applying vanilla [RFC2544] throughput bisection to software DUTs
+results in several problems:
+
+- Binary search takes too long as most trials are done far from the
+ eventually found throughput.
+- The required final trial duration and pauses between trials
+ prolong the overall search duration.
+- Software DUTs show noisy trial results,
+ leading to a big spread of possible discovered throughput values.
+- Throughput requires a loss of exactly zero frames, but the industry
+ frequently allows for small but non-zero losses.
+- The definition of throughput is not clear when trial results are inconsistent.
+
+
+To address the problems mentioned above,
+the MLRsearch library employs the following enhancements:
+
+- Allow multiple shorter trials instead of one big trial per load.
+ - Optionally, tolerate a percentage of trial results with higher loss.
+- Allow searching for multiple search goals, with differing loss ratios.
+ - Any trial result can affect each search goal in principle.
+- Insert multiple coarse targets for each search goal, earlier ones need
+ to spend less time on trials.
+ - Earlier targets also aim for lesser precision.
+ - Use Forwarding Rate (FR) at maximum offered load
+ [RFC2285] (section 3.6.2) to initialize the initial targets.
+- Take care when dealing with inconsistent trial results.
+ - Reported throughput is smaller than the smallest load with high loss.
+ - Smaller load candidates are measured first.
+- Apply several load selection heuristics to save even more time
+ by trying hard to avoid unnecessarily narrow bounds.
+
+Some of these enhancements are formalized as MLRsearch specification,
+the remaining enhancements are treated as implementation details,
+thus achieving high comparability without limiting future improvements.
+
+MLRsearch configuration options are flexible enough to
+support both conservative settings and aggressive settings.
+Where the conservative settings lead to results
+unconditionally compliant with [RFC2544],
+but longer search duration and worse repeatability.
+Conversely, aggressive settings lead to shorter search duration
+and better repeatability, but the results are not compliant with [RFC2544].
+
+No part of [RFC2544] is intended to be obsoleted by this document.
+
+# Identified Problems
+
+This chapter describes the problems affecting usability
+of various performance testing methodologies,
+mainly a binary search for [RFC2544] unconditionally compliant throughput.
+
+## Long Search Duration
+
+The emergence of software DUTs, with frequent software updates and a
+number of different frame processing modes and configurations,
+has increased both the number of performance tests
+required to verify the DUT update and the frequency of running those tests.
+This makes the overall test execution time even more important than before.
+
+The current [RFC2544] throughput definition restricts the potential
+for time-efficiency improvements.
+A more generalized throughput concept could enable further enhancements
+while maintaining the precision of simpler methods.
+
+The bisection method, when unconditionally compliant with [RFC2544],
+is excessively slow.
+This is because a significant amount of time is spent on trials
+with loads that, in retrospect, are far from the final determined throughput.
+
+[RFC2544] does not specify any stopping condition for throughput search,
+so users already have an access to a limited trade-off
+between search duration and achieved precision.
+However, each full 60-second trials doubles the precision,
+so not many trials can be removed without a substantial loss of precision.
+
+## DUT in SUT
+
+[RFC2285] defines:
+- DUT as
+ - The network forwarding device to which stimulus is offered and
+ response measured [RFC2285] (section 3.1.1).
+- SUT as
+ - The collective set of network devices to which stimulus is offered
+ as a single entity and response measured [RFC2285] (section 3.1.2).
+
+[RFC2544] specifies a test setup with an external tester stimulating the
+networking system, treating it either as a single DUT, or as a system
+of devices, an SUT.
+
+In the case of software networking, the SUT consists of not only the DUT
+as a software program processing frames, but also of
+a server hardware and operating system functions,
+with server hardware resources shared across all programs
+and the operating system running on the same server.
+
+Given that the SUT is a shared multi-tenant environment
+encompassing the DUT and other components, the DUT might inadvertently
+experience interference from the operating system
+or other software operating on the same server.
+
+Some of this interference can be mitigated.
+For instance,
+pinning DUT program threads to specific CPU cores
+and isolating those cores can prevent context switching.
+
+Despite taking all feasible precautions, some adverse effects may still impact
+the DUT's network performance.
+In this document, these effects are collectively
+referred to as SUT noise, even if the effects are not as unpredictable
+as what other engineering disciplines call noise.
+
+DUT can also exhibit fluctuating performance itself, for reasons
+not related to the rest of SUT; for example due to pauses in execution
+as needed for internal stateful processing.
+In many cases this
+may be an expected per-design behavior, as it would be observable even
+in a hypothetical scenario where all sources of SUT noise are eliminated.
+Such behavior affects trial results in a way similar to SUT noise.
+As the two phenomenons are hard to distinguish,
+in this document the term 'noise' is used to encompass
+both the internal performance fluctuations of the DUT
+and the genuine noise of the SUT.
+
+A simple model of SUT performance consists of an idealized noiseless performance,
+and additional noise effects.
+For a specific SUT, the noiseless performance is assumed to be constant,
+with all observed performance variations being attributed to noise.
+The impact of the noise can vary in time, sometimes wildly,
+even within a single trial.
+The noise can sometimes be negligible, but frequently
+it lowers the observed SUT performance as observed in trial results.
+
+In this model, SUT does not have a single performance value, it has a spectrum.
+One end of the spectrum is the idealized noiseless performance value,
+the other end can be called a noiseful performance.
+In practice, trial result
+close to the noiseful end of the spectrum happens only rarely.
+The worse the performance value is, the more rarely it is seen in a trial.
+Therefore, the extreme noiseful end of the SUT spectrum is not observable
+among trial results.
+Also, the extreme noiseless end of the SUT spectrum
+is unlikely to be observable, this time because some small noise effects
+are likely to occur multiple times during a trial.
+
+Unless specified otherwise, this document's focus is
+on the potentially observable ends of the SUT performance spectrum,
+as opposed to the extreme ones.
+
+When focusing on the DUT, the benchmarking effort should ideally aim
+to eliminate only the SUT noise from SUT measurements.
+However,
+this is currently not feasible in practice, as there are no realistic enough
+models available to distinguish SUT noise from DUT fluctuations,
+based on the author's experience and available literature.
+
+Assuming a well-constructed SUT, the DUT is likely its
+primary performance bottleneck.
+In this case, we can define the DUT's
+ideal noiseless performance as the noiseless end of the SUT performance spectrum,
+especially for throughput.
+However, other performance metrics, such as latency,
+may require additional considerations.
+
+Note that by this definition, DUT noiseless performance
+also minimizes the impact of DUT fluctuations, as much as realistically possible
+for a given trial duration.
+
+This document aims to solve the DUT in SUT problem
+by estimating the noiseless end of the SUT performance spectrum
+using a limited number of trial results.
+
+Any improvements to the throughput search algorithm, aimed at better
+dealing with software networking SUT and DUT setup, should employ
+strategies recognizing the presence of SUT noise, allowing the discovery of
+(proxies for) DUT noiseless performance
+at different levels of sensitivity to SUT noise.
+
+## Repeatability and Comparability
+
+[RFC2544] does not suggest to repeat throughput search.
+And from just one
+discovered throughput value, it cannot be determined how repeatable that value is.
+Poor repeatability then leads to poor comparability,
+as different benchmarking teams may obtain varying throughput values
+for the same SUT, exceeding the expected differences from search precision.
+
+[RFC2544] throughput requirements (60 seconds trial and
+no tolerance of a single frame loss) affect the throughput results
+in the following way.
+The SUT behavior close to the noiseful end of its performance spectrum
+consists of rare occasions of significantly low performance,
+but the long trial duration makes those occasions not so rare on the trial level.
+Therefore, the binary search results tend to wander away from the noiseless end
+of SUT performance spectrum, more frequently and more widely than shorter
+trials would, thus causing poor throughput repeatability.
+
+The repeatability problem can be addressed by defining a search procedure
+that identifies a consistent level of performance,
+even if it does not meet the strict definition of throughput in [RFC2544].
+
+According to the SUT performance spectrum model, better repeatability
+will be at the noiseless end of the spectrum.
+Therefore, solutions to the DUT in SUT problem
+will help also with the repeatability problem.
+
+Conversely, any alteration to [RFC2544] throughput search
+that improves repeatability should be considered
+as less dependent on the SUT noise.
+
+An alternative option is to simply run a search multiple times, and report some
+statistics (e.g. average and standard deviation).
+This can be used
+for a subset of tests deemed more important,
+but it makes the search duration problem even more pronounced.
+
+## Throughput with Non-Zero Loss
+
+[RFC1242] (section 3.17) defines throughput as:
+ The maximum rate at which none of the offered frames
+ are dropped by the device.
+
+Then, it says:
+ Since even the loss of one frame in a
+ data stream can cause significant delays while
+ waiting for the higher level protocols to time out,
+ it is useful to know the actual maximum data
+ rate that the device can support.
+
+However, many benchmarking teams accept a small,
+non-zero loss ratio as the goal for their load search.
+
+Motivations are many:
+
+- Modern protocols tolerate frame loss better,
+ compared to the time when [RFC1242] and [RFC2544] were specified.
+
+- Trials nowadays send way more frames within the same duration,
+ increasing the chance of a small SUT performance fluctuation
+ being enough to cause frame loss.
+
+- Small bursts of frame loss caused by noise have otherwise smaller impact
+ on the average frame loss ratio observed in the trial,
+ as during other parts of the same trial the SUT may work more closely
+ to its noiseless performance, thus perhaps lowering the trial loss ratio
+ below the goal loss ratio value.
+
+- If an approximation of the SUT noise impact on the trial loss ratio is known,
+ it can be set as the goal loss ratio.
+
+Regardless of the validity of all similar motivations,
+support for non-zero loss goals makes any search algorithm more user-friendly.
+[RFC2544] throughput is not user-friendly in this regard.
+
+Furthermore, allowing users to specify multiple loss ratio values,
+and enabling a single search to find all relevant bounds,
+significantly enhances the usefulness of the search algorithm.
+
+Searching for multiple search goals also helps to describe the SUT performance
+spectrum better than the result of a single search goal.
+For example, the repeated wide gap between zero and non-zero loss loads
+indicates the noise has a large impact on the observed performance,
+which is not evident from a single goal load search procedure result.
+
+It is easy to modify the vanilla bisection to find a lower bound
+for the intended load that satisfies a non-zero goal loss ratio.
+But it is not that obvious how to search for multiple goals at once,
+hence the support for multiple search goals remains a problem.
+
+## Inconsistent Trial Results
+
+While performing throughput search by executing a sequence of
+measurement trials, there is a risk of encountering inconsistencies
+between trial results.
+
+The plain bisection never encounters inconsistent trials.
+But [RFC2544] hints about the possibility of inconsistent trial results,
+in two places in its text.
+The first place is section 24, where full trial durations are required,
+presumably because they can be inconsistent with the results
+from shorter trial durations.
+The second place is section 26.3, where two successive zero-loss trials
+are recommended, presumably because after one zero-loss trial
+there can be a subsequent inconsistent non-zero-loss trial.
+
+Examples include:
+
+- A trial at the same load (same or different trial duration) results
+ in a different trial loss ratio.
+- A trial at a higher load (same or different trial duration) results
+ in a smaller trial loss ratio.
+
+Any robust throughput search algorithm needs to decide how to continue
+the search in the presence of such inconsistencies.
+Definitions of throughput in [RFC1242] and [RFC2544] are not specific enough
+to imply a unique way of handling such inconsistencies.
+
+Ideally, there will be a definition of a new quantity which both generalizes
+throughput for non-zero-loss (and other possible repeatability enhancements),
+while being precise enough to force a specific way to resolve trial result
+inconsistencies.
+But until such a definition is agreed upon, the correct way to handle
+inconsistent trial results remains an open problem.
+
+# MLRsearch Specification
+
+This chapter focuses on technical definitions needed for evaluating
+whether a particular test procedure adheres to MLRsearch specification.
+
+For motivations, explanations, and other comments see other chapters.
+
+## MLRsearch Architecture
+
+MLRsearch architecture consists of three main components:
+the manager, the controller, and the measurer.
+For definitions of the components, see the following sections.
+
+The architecture also implies the presence of other components, such as the SUT.
+
+These components can be seen as abstractions present in any testing procedure.
+
+### Measurer
+
+The measurer is the component that performs one trial
+as described in [RFC2544] section 23.
+
+Specifically, one call to the measurer accepts a trial load value
+and trial duration value, performs the trial, and returns
+the measured trial loss ratio, and optionally a different duration value.
+
+It is the responsibility of the measurer to uphold any requirements
+and assumptions present in MLRsearch specification
+(e.g. trial forwarding ratio not being larger than one).
+Implementers have some freedom, for example in the way they deal with
+duplicated frames, or what to return if the tester sent zero frames towards SUT.
+Implementations are RECOMMENDED to document their behavior
+related to such freedoms in as detailed a way as possible.
+
+Implementations MUST document any deviations from RFC documents,
+for example if the wait time around traffic
+is shorter than what [RFC2544] section 23 specifies.
+
+### Controller
+
+The controller selects trial load and duration values
+to achieve the search goals in the shortest expected time.
+
+The controller calls the measurer multiple times,
+receiving the trial result from each call.
+After exit condition is met, the controller returns
+the overall search results.
+
+The controller's role in optimizing trial load and duration selection
+distinguishes MLRsearch algorithms from simpler search procedures.
+
+For controller inputs, see later section Controller Inputs.
+For controller outputs, see later section Controller Outputs.
+
+### Manager
+
+The controller gets initiated by the manager once, and subsequently calls
+
+The manager is the component that initializes SUT, the traffic generator
+(tester in [RFC2544] terminology), the measurer and the controller
+with intended configurations.
+It then calls the controller once, and receives its outputs.
+
+The manager is also responsible for creating reports in the appropriate format,
+based on information in controller outputs.
+
+## Units
+
+The specification deals with physical quantities, so it is assumed
+each numeric value is accompanied by an appropriate physical unit.
+
+The specification does not state which unit is appropriate,
+but implementations MUST make it explicit which unit is used
+for each value provided or received by the user.
+
+For example, load quantities (including the conditional throughput)
+returned by the controller are defined to be based on a single-interface
+(unidirectional) loads.
+For bidirectional traffic, users are likely
+to expect bidirectional throughput quantities, so the manager is responsible
+for making its report clear.
+
+## SUT
+
+As defined in [RFC2285]:
+The collective set of network devices to which stimulus is offered
+as a single entity and response measured.
+
+## Trial
+
+A trial is the part of the test described in [RFC2544] section 23.
+
+### Trial Load
+
+The trial load is the intended constant load for a trial.
+
+Load is the quantity implied by Constant Load of [RFC1242],
+Data Rate of [RFC2544] and Intended Load of [RFC2285].
+All three specify this value applies to one (input or output) interface.
+
+### Trial Duration
+
+Trial duration is the intended duration of the traffic for a trial.
+
+In general, this quantity does not include any preparation nor waiting
+described in section 23 of [RFC2544].
+
+However, the measurer MAY return a duration value that deviates
+from the intended duration.
+This feature can be beneficial for users
+who wish to manage the overall search duration,
+rather than solely the traffic portion of it.
+The manager MUST report
+how the measurer computes the returned duration values in that case.
+
+### Trial Forwarding Ratio
+
+The trial forwarding ratio is a dimensionless floating point value
+that ranges from 0.0 to 1.0, inclusive.
+It is calculated by dividing the number of frames
+successfully forwarded by the SUT
+by the total number of frames expected to be forwarded during the trial.
+
+Note that, contrary to loads, frame counts used to compute
+trial forwarding ratio are aggregates over all SUT output ports.
+
+Questions around what is the correct number of frames
+that should have been forwarded is outside of the scope of this document.
+E.g. what should the measurer return when it detects
+that the offered load differs significantly from the intended load.
+
+### Trial Loss Ratio
+
+The trial loss ratio is equal to one minus the trial forwarding ratio.
+
+### Trial Forwarding Rate
+
+The trial forwarding rate is a derived quantity, calculated by
+multiplying the trial load by the trial forwarding ratio.
+
+It is important to note that while similar, this quantity is not identical
+to the Forwarding Rate as defined in [RFC2285] section 3.6.1,
+as the latter is specific to one output interface,
+whereas the trial forwarding ratio is based
+on frame counts aggregated over all SUT output interfaces.
+
+## Traffic profile
+
+Any other specifics (besides trial load and trial duration)
+the measurer needs in order to perform the trial
+are understood as a composite called the traffic profile.
+All its attributes are assumed to be constant during the search,
+and the composite is configured on the measurer by the manager
+before the search starts.
+
+The traffic profile is REQUIRED by [RFC2544]
+to contain some specific quantities, for example frame size.
+Several more specific quantities may be RECOMMENDED.
+
+Depending on SUT configuration, e.g. when testing specific protocols,
+additional values need to be included in the traffic profile
+and in the test report.
+See other IETF documents.
+
+## Search Goal
+
+The search goal is a composite consisting of several attributes,
+some of them are required.
+Implementations are free to add their own attributes.
+
+A particular set of attribute values is called a search goal instance.
+
+Subsections list all required attributes and one recommended attribute.
+Each subsection contains a short informal description,
+but see other chapters for more in-depth explanations.
+
+The meaning of the attributes is formally given only by their effect
+on the controller output attributes (defined in later in section Search Result).
+
+Informally, later chapters give additional intuitions and examples
+to the search goal attribute values.
+Later chapters also give motivation to formulas of computation of the outputs.
+
+### Goal Final Trial Duration
+
+A threshold value for trial durations.
+This attribute is REQUIRED, and the value MUST be positive.
+
+Informally, while MLRsearch is allowed to perform trials shorter than this,
+but results from such short trials have only limited impact on search results.
+
+The full relation needs definitions is later subsections.
+But for example, the conditional throughput
+(definition in subsection Conditional Throughput)
+for this goal will be computed only from trial results
+from trials at least as long as this.
+
+### Goal Duration Sum
+
+A threshold value for a particular sum of trial durations.
+This attribute is REQUIRED, and the value MUST be positive.
+
+This uses the duration values returned by the measurer.
+
+Informally, even when looking only at trials done at this goal's
+final trial duration, MLRsearch may spend up to this time measuring
+the same load value.
+If the goal duration sum is larger than
+the goal final trial duration, it means multiple trials need to be measured
+at the same load.
+
+### Goal Loss Ratio
+
+A threshold value for trial loss ratios.
+REQUIRED attribute, MUST be non-negative and smaller than one.
+
+Informally, if a load causes too many trials with trial loss ratios
+larger than this, the conditional throughput for this goal
+will be smaller than that load.
+
+### Goal Exceed Ratio
+
+A threshold value for a particular ratio of duration sums.
+REQUIRED attribute, MUST be non-negative and smaller than one.
+
+The duration sum values come from the duration values returned by the measurer.
+
+Informally, the impact of lossy trials is controlled by this value.
+The full relation needs definitions is later subsections.
+
+But for example, the definition of the conditional throughput
+(given later in subsection Conditional Throughput)
+refers to a q-value for a quantile when selecting
+which trial result gives the conditional throughput.
+The goal exceed ratio acts as the q-value to use there.
+
+Specifically, when the goal exceed ratio is 0.5 and MLRsearch happened
+to use the whole goal duration sum (using full-length trials),
+it means the conditional throughput is the median of trial forwarding rates.
+
+### Goal Width
+
+A value used as a threshold for telling when two trial load values
+are close enough.
+
+RECOMMENDED attribute, positive.
+Implementations without this attribute
+MUST give the manager other ways to control the search exit condition.
+
+Absolute load difference and relative load difference are two popular choices,
+but implementations may choose a different way to specify width.
+
+Informally, this acts as a stopping condition, controlling the precision
+of the search.
+The search stops if every goal has reached its precision.
+
+## Controller Inputs
+
+The only REQUIRED input for controller is a set of search goal instances.
+MLRsearch implementations MAY use additional input parameters for the controller.
+
+The order of instances SHOULD NOT have a big impact on controller outputs,
+but MLRsearch implementations MAY base their behavior on the order
+of search goal instances.
+
+The search goal instances SHOULD NOT be identical.
+MLRsearch implementation MAY allow identical instances.
+
+## Goal Result
+
+Before defining the output of the controller,
+it is useful to define what the goal result is.
+
+The goal result is a composite object consisting of several attributes.
+A particular set of attribute values is called a goal result instance.
+
+Any goal result instance can be either regular or irregular.
+MLRsearch specification puts requirements on regular goal result instances.
+Any instance that does not meet the requirements is deemed irregular.
+
+Implementations are free to define their own irregular goal results,
+but the manager MUST report them clearly as not regular according to this section.
+
+All attribute values in one goal result instance
+are related to a single search goal instance,
+referred to as the given search goal.
+
+Some of the attributes of a regular goal result instance are required,
+some are recommended, implementations are free to add their own.
+
+The subsections define two required and one optional attribute
+for a regular goal result.
+
+A typical irregular result is when all trials at the maximal offered load
+have zero loss, as the relevant upper bound does not exist in that case.
+
+### Relevant Upper Bound
+
+The relevant upper bound is the smallest intended load value that is classified
+at the end of the search as an upper bound (see Appendix A)
+for the given search goal.
+This is a REQUIRED attribute.
+
+Informally, this is the smallest intended load that failed to uphold
+all the requirements of the given search goal, mainly the goal loss ratio
+in combination with the goal exceed ratio.
+
+### Relevant Lower Bound
+
+The relevant lower bound is the largest intended load value
+among those smaller than the relevant upper bound
+that got classified at the end of the search
+as a lower bound (see Appendix A) for the given search goal.
+This is a REQUIRED attribute.
+
+For a regular goal result, the distance between the relevant lower bound
+and the relevant upper bound MUST NOT be larger than the goal width,
+if the implementation offers width as a goal attribute.
+
+Informally, this is the largest intended load that managed to uphold
+all the requirements of the given search goal, mainly the goal loss ratio
+in combination with the goal exceed ratio, while not being larger
+than the relevant upper bound.
+
+### Conditional Throughput
+
+The conditional throughput (see Appendix B)
+as evaluated at the relevant lower bound of the given search goal
+at the end of the search.
+This is a RECOMMENDED attribute.
+
+Informally, this is a typical forwarding rate expected to be seen
+at the relevant lower bound of the given search goal.
+But frequently just a conservative estimate thereof,
+as MLRsearch implementations tend to stop gathering more data
+as soon as they confirm the result cannot get worse than this estimate
+within the goal duration sum.
+
+## Search Result
+
+The search result is a single composite object
+that maps each search goal to a corresponding goal result.
+
+In other words, search result is an unordered list of key-value pairs,
+where no two pairs contain equal keys.
+The key is a search goal instance, acting as the given search goal
+for the goal result instance in the value portion of the key-value pair.
+
+The search result (as a mapping)
+MUST map from all the search goals present in the controller input.
+
+## Controller Outputs
+
+The search result is the only REQUIRED output
+returned from the controller to the manager.
+
+MLRsearch implementation MAY return additional data in the controller output.
+
+# Further Explanations
+
+This chapter focuses on intuitions and motivations
+and skips over some important details.
+
+Familiarity with the MLRsearch specification is not required here,
+so this chapter can act as an introduction.
+For example, this chapter starts talking about the tightest lower bounds
+before it is ready to talk about the relevant lower bound from the specification.
+
+## MLRsearch Versions
+
+The MLRsearch algorithm has been developed in a code-first approach,
+a Python library has been created, debugged, and used in production
+before the first descriptions (even informal) were published.
+In fact, multiple versions of the library were used in the production
+over the past few years, and later code was usually not compatible
+with earlier descriptions.
+
+The code in (any version of) MLRsearch library fully determines
+the search process (for given configuration parameters),
+leaving no space for deviations.
+MLRsearch, as a name for a broad class of possible algorithms,
+leaves plenty of space for future improvements, at the cost
+of poor comparability of results of different MLRsearch implementations.
+
+There are two competing needs.
+There is the need for standardization in areas critical to comparability.
+There is also the need to allow flexibility for implementations
+to innovate and improve in other areas.
+This document defines the MLRsearch specification
+in a manner that aims to fairly balances both needs.
+
+## Exit Condition
+
+[RFC2544] prescribes that after performing one trial at a specific offered load,
+the next offered load should be larger or smaller, based on frame loss.
+
+The usual implementation uses binary search.
+Here a lossy trial becomes
+a new upper bound, a lossless trial becomes a new lower bound.
+The span of values between (including both) the tightest lower bound
+and the tightest upper bound forms an interval of possible results,
+and after each trial the width of that interval halves.
+
+Usually the binary search implementation tracks only the two tightest bounds,
+simply calling them bounds.
+But the old values still B remain valid bounds,
+just not as tight as the new ones.
+
+After some number of trials, the tightest lower bound becomes the throughput.
+[RFC2544] does not specify when (if ever) should the search stop.
+
+MLRsearch library introduces a concept of goal width.
+The search stops
+when the distance between the tightest upper bound and the tightest lower bound
+is smaller than a user-configured value, called goal width from now on.
+In other words, the interval width at the end of the search
+has to be no larger than the goal width.
+
+This goal width value therefore determines the precision of the result.
+As MLRsearch specification requires a particular structure of the result,
+the result itself does contain enough information to determine its precision,
+thus it is not required to report the goal width value.
+
+This allows MLRsearch implementations to use exit conditions
+different from goal width.
+
+## Load Classification
+
+MLRsearch keeps the basic logic of binary search (tracking tightest bounds,
+measuring at the middle), perhaps with minor technical clarifications.
+The algorithm chooses an intended load (as opposed to the offered load),
+the interval between bounds does not need to be split
+exactly into two equal halves,
+and the final reported structure specifies both bounds.
+
+The biggest difference is that to classify a load
+as an upper or lower bound, MLRsearch may need more than one trial
+(depending on configuration options) to be performed at the same intended load.
+
+As a consequence, even if a load already does have few trial results,
+it still may be classified as undecided, neither a lower bound nor an upper bound.
+
+An explanation of the classification logic is given in the next chapter,
+as it relies heavily on other sections of this chapter.
+
+For repeatability and comparability reasons, it is important that
+given a set of trial results, all implementations of MLRsearch
+classify the load equivalently.
+
+## Loss Ratios
+
+The next difference is in the goals of the search.
+[RFC2544] has a single goal,
+based on classifying full-length trials as either lossless or lossy.
+
+As the name suggests, MLRsearch can search for multiple goals,
+differing in their loss ratios.
+The precise definition of the goal loss ratio will be given later.
+The [RFC2544] throughput goal then simply becomes a zero goal loss ratio.
+Different goals also may have different goal widths.
+
+A set of trial results for one specific intended load value
+can classify the load as an upper bound for some goals, but a lower bound
+for some other goals, and undecided for the rest of the goals.
+
+Therefore, the load classification depends not only on trial results,
+but also on the goal.
+The overall search procedure becomes more complicated
+(compared to binary search with a single goal),
+but most of the complications do not affect the final result,
+except for one phenomenon, loss inversion.
+
+## Loss Inversion
+
+In [RFC2544] throughput search using bisection, any load with a lossy trial
+becomes a hard upper bound, meaning every subsequent trial has a smaller
+intended load.
+
+But in MLRsearch, a load that is classified as an upper bound for one goal
+may still be a lower bound for another goal, and due to the other goal
+MLRsearch will probably perform trials at even higher loads.
+What to do when all such higher load trials happen to have zero loss?
+Does it mean the earlier upper bound was not real?
+Does it mean the later lossless trials are not considered a lower bound?
+Surely we do not want to have an upper bound at a load smaller than a lower bound.
+
+MLRsearch is conservative in these situations.
+The upper bound is considered real, and the lossless trials at higher loads
+are considered to be a coincidence, at least when computing the final result.
+
+This is formalized using new notions, the relevant upper bound and
+the relevant lower bound.
+Load classification is still based just on the set of trial results
+at a given intended load (trials at other loads are ignored),
+making it possible to have a lower load classified as an upper bound,
+and a higher load classified as a lower bound (for the same goal).
+The relevant upper bound (for a goal) is the smallest load classified
+as an upper bound.
+But the relevant lower bound is not simply
+the largest among lower bounds.
+It is the largest load among loads
+that are lower bounds while also being smaller than the relevant upper bound.
+
+With these definitions, the relevant lower bound is always smaller
+than the relevant upper bound (if both exist), and the two relevant bounds
+are used analogously as the two tightest bounds in the binary search.
+When they are less than the goal width apart,
+the relevant bounds are used in the output.
+
+One consequence is that every trial result can have an impact on the search result.
+That means if your SUT (or your traffic generator) needs a warmup,
+be sure to warm it up before starting the search.
+
+## Exceed Ratio
+
+The idea of performing multiple trials at the same load comes from
+a model where some trial results (those with high loss) are affected
+by infrequent effects, causing poor repeatability of [RFC2544] throughput results.
+See the discussion about noiseful and noiseless ends
+of the SUT performance spectrum.
+Stable results are closer to the noiseless end of the SUT performance spectrum,
+so MLRsearch may need to allow some frequency of high-loss trials
+to ignore the rare but big effects near the noiseful end.
+
+MLRsearch can do such trial result filtering, but it needs
+a configuration option to tell it how frequent can the infrequent big loss be.
+This option is called the exceed ratio.
+It tells MLRsearch what ratio of trials
+(more exactly what ratio of trial seconds) can have a trial loss ratio
+larger than the goal loss ratio and still be classified as a lower bound.
+Zero exceed ratio means all trials have to have a trial loss ratio
+equal to or smaller than the goal loss ratio.
+
+For explainability reasons, the RECOMMENDED value for exceed ratio is 0.5,
+as it simplifies some later concepts by relating them to the concept of median.
+
+## Duration Sum
+
+When more than one trial is needed to classify a load,
+MLRsearch also needs something that controls the number of trials needed.
+Therefore, each goal also has an attribute called duration sum.
+
+The meaning of a goal duration sum is that when a load has trials
+(at full trial duration, details later)
+whose trial durations when summed up give a value at least this long,
+the load is guaranteed to be classified as an upper bound or a lower bound
+for the goal.
+
+As the duration sum has a big impact on the overall search duration,
+and [RFC2544] prescribes wait intervals around trial traffic,
+the MLRsearch algorithm is allowed to sum durations that are different
+from the actual trial traffic durations.
+
+## Short Trials
+
+MLRsearch requires each goal to specify its final trial duration.
+Full-length trial is a shorter name for a trial whose intended trial duration
+is equal to (or longer than) the goal final trial duration.
+
+Section 24 of [RFC2544] already anticipates possible time savings
+when short trials (shorter than full-length trials) are used.
+Full-length trials are the opposite of short trials,
+so they may also be called long trials.
+
+Any MLRsearch implementation may include its own configuration options
+which control when and how MLRsearch chooses to use shorter trial durations.
+
+For explainability reasons, when exceed ratio of 0.5 is used,
+it is recommended for the goal duration sum to be an odd multiple
+of the full trial durations, so conditional throughput becomes identical to
+a median of a particular set of forwarding rates.
+
+The presence of shorter trial results complicates the load classification logic.
+Full details are given later.
+In short, results from short trials
+may cause a load to be classified as an upper bound.
+This may cause loss inversion, and thus lower the relevant lower bound
+(below what would classification say when considering full-length trials only).
+
+For explainability reasons, it is RECOMMENDED users use such configurations
+that guarantee all trials have the same length.
+Alas, such configurations are usually not compliant with [RFC2544] requirements,
+or not time-saving enough.
+
+## Conditional Throughput
+
+As testing equipment takes the intended load as an input parameter
+for a trial measurement, any load search algorithm needs to deal
+with intended load values internally.
+
+But in the presence of goals with a non-zero loss ratio, the intended load
+usually does not match the user's intuition of what a throughput is.
+The forwarding rate (as defined in [RFC2285] section 3.6.1) is better,
+but it is not obvious how to generalize it
+for loads with multiple trial results and a non-zero goal loss ratio.
+
+MLRsearch defines one such generalization, called the conditional throughput.
+It is the forwarding rate from one of the trials performed at the load
+in question.
+Specification of which trial exactly is quite technical,
+see the specification and Appendix B.
+
+Conditional throughput is partially related to load classification.
+If a load is classified as a lower bound for a goal,
+the conditional throughput can be calculated,
+and guaranteed to show an effective loss ratio
+no larger than the goal loss ratio.
+
+While the conditional throughput gives more intuitive-looking values
+than the relevant lower bound, especially for non-zero goal loss ratio values,
+the actual definition is more complicated than the definition of the relevant
+lower bound.
+In the future, other intuitive values may become popular,
+but they are unlikely to supersede the definition of the relevant lower bound
+as the most fitting value for comparability purposes,
+therefore the relevant lower bound remains a required attribute
+of the goal result structure, while the conditional throughput is only optional.
+
+Note that comparing the best and worst case, the same relevant lower bound value
+may result in the conditional throughput differing up to the goal loss ratio.
+Therefore it is rarely needed to set the goal width (if expressed
+as the relative difference of loads) below the goal loss ratio.
+In other words, setting the goal width below the goal loss ratio
+may cause the conditional throughput for a larger loss ratio to become smaller
+than a conditional throughput for a goal with a smaller goal loss ratio,
+which is counter-intuitive, considering they come from the same search.
+Therefore it is RECOMMENDED to set the goal width to a value no smaller
+than the goal loss ratio.
+
+## Search Time
+
+MLRsearch was primarily developed to reduce the time
+required to determine a throughput, either the [RFC2544] compliant one,
+or some generalization thereof.
+The art of achieving short search times
+is mainly in the smart selection of intended loads (and intended durations)
+for the next trial to perform.
+
+While there is an indirect impact of the load selection on the reported values,
+in practice such impact tends to be small,
+even for SUTs with quite a broad performance spectrum.
+
+A typical example of two approaches to load selection leading to different
+relevant lower bounds is when the interval is split in a very uneven way.
+Any implementation choosing loads very close to the current relevant lower bound
+is quite likely to eventually stumble upon a trial result
+with poor performance (due to SUT noise).
+For an implementation choosing loads very close
+to the current relevant upper bound, this is unlikely,
+as it examines more loads that can see a performance
+close to the noiseless end of the SUT performance spectrum.
+
+However, as even splits optimize search duration at give precision,
+MLRsearch implementations that prioritize minimizing search time
+are unlikely to suffer from any such bias.
+
+Therefore, this document remains quite vague on load selection
+and other optimization details, and configuration attributes related to them.
+Assuming users prefer libraries that achieve short overall search time,
+the definition of the relevant lower bound
+should be strict enough to ensure result repeatability
+and comparability between different implementations,
+while not restricting future implementations much.
+
+Sadly, different implementations may exhibit their sweet spot of
+the best repeatability for a given search duration
+at different goals attribute values, especially concerning
+any optional goal attributes such as the initial trial duration.
+Thus, this document does not comment much on which configurations
+are good for comparability between different implementations.
+For comparability between different SUTs using the same implementation,
+refer to configurations recommended by that particular implementation.
+
+## [RFC2544] compliance
+
+The following search goal ensures unconditional compliance with
+[RFC2544] throughput search procedure:
+
+- Goal loss ratio: zero.
+
+- Goal final trial duration: 60 seconds.
+
+- Goal duration sum: 60 seconds.
+
+- Goal exceed ratio: zero.
+
+The presence of other search goals does not affect the compliance
+of this goal result.
+The relevant lower bound and the conditional throughput are in this case
+equal to each other, and the value is the [RFC2544] throughput.
+
+If the 60 second quantity is replaced by a smaller quantity in both attributes,
+the conditional throughput is still conditionally compliant with
+[RFC2544] throughput.
+
+# Logic of Load Classification
+
+This chapter continues with explanations,
+but this time more precise definitions are needed
+for readers to follow the explanations.
+The definitions here are wordy, implementers should read the specification
+chapter and appendices for more concise definitions.
+
+The two related areas of focus in this chapter are load classification
+and the conditional throughput, starting with the latter.
+
+The section Performance Spectrum contains definitions
+needed to gain insight into what conditional throughput means.
+The rest of the subsections discuss load classification,
+they do not refer to Performance Spectrum, only to a few duration sums.
+
+For load classification, it is useful to define good and bad trials.
+A trial is called bad (according to a goal) if its trial loss ratio
+is larger than the goal loss ratio.
+The trial that is not bad is called good.
+
+## Performance Spectrum
+
+There are several equivalent ways to explain
+the conditional throughput computation.
+One of the ways relies on an object called the performance spectrum.
+First, two heavy definitions are needed.
+
+Take an intended load value, a trial duration value, and a finite set
+of trial results, all trials measured at that load value and duration value.
+The performance spectrum is the function that maps
+any non-negative real number into a sum of trial durations among all trials
+in the set that has that number as their forwarding rate,
+e.g. map to zero if no trial has that particular forwarding rate.
+
+A related function, defined if there is at least one trial in the set,
+is the performance spectrum divided by the sum of the durations
+of all trials in the set.
+That function is called the performance probability function, as it satisfies
+all the requirements for probability mass function function
+of a discrete probability distribution,
+the one-dimensional random variable being the trial forwarding rate.
+
+These functions are related to the SUT performance spectrum,
+as sampled by the trials in the set.
+
+As for any other probability function, we can talk about percentiles
+of the performance probability function, including the median.
+The conditional throughput will be one such quantile value
+for a specifically chosen set of trials.
+
+Take a set of all full-length trials performed at the relevant lower bound,
+sorted by decreasing forwarding rate.
+The sum of the durations of those trials
+may be less than the goal duration sum, or not.
+If it is less, add an imaginary trial result with zero forwarding rate,
+such that the new sum of durations is equal to the goal duration sum.
+This is the set of trials to use.
+The q-value for the quantile
+is the goal exceed ratio.
+If the quantile touches two trials,
+the larger forwarding rate (from the trial result sorted earlier) is used.
+The resulting quantity is the conditional throughput of the goal in question.
+
+First example.
+For zero exceed ratio, when goal duration sum has been reached.
+The conditional throughput is the smallest forwarding rate among the trials.
+
+Second example.
+For zero exceed ratio, when goal duration sum has not been reached yet.
+Due to the missing duration sum, the worst case may still happen,
+so the conditional throughput is zero.
+This is not reported to the user,
+as this load cannot become the relevant lower bound yet.
+
+Third example.
+Exceed ratio 50%, goal duration sum two seconds,
+one trial present with the duration of one second and zero loss.
+The imaginary trial is added with the duration
+of one second and zero forwarding rate.
+The median would touch both trials, so the conditional throughput
+is the forwarding rate of the one non-imaginary trial.
+As that had zero loss, the value is equal to the offered load.
+
+Note that Appendix B does not take into account short trial results.
+
+### Summary
+
+While the conditional throughput is a generalization of the forwarding rate,
+its definition is not an obvious one.
+
+Other than the forwarding rate, the other source of intuition
+is the quantile in general, and the median the the recommended case.
+
+In future, different quantities may prove more useful,
+especially when applying to specific problems,
+but currently the conditional throughput is the recommended compromise,
+especially for repeatability and comparability reasons.
+
+## Single Trial Duration
+
+When goal attributes are chosen in such a way that every trial has the same
+intended duration, the load classification is simpler.
+
+The following description looks technical, but it follows the motivation
+of goal loss ratio, goal exceed ratio, and goal duration sum.
+If the sum of the durations of all trials (at the given load)
+is less than the goal duration sum, imagine best case scenario
+(all subsequent trials having zero loss) and worst case scenario
+(all subsequent trials having 100% loss).
+Here we assume there are as many subsequent trials as needed
+to make the sum of all trials equal to the goal duration sum.
+As the exceed ratio is defined just using sums of durations
+(number of trials does not matter), it does not matter whether
+the "subsequent trials" can consist of an integer number of full-length trials.
+
+In any of the two scenarios, we can compute the load exceed ratio,
+As the duration sum of good trials divided by the duration sum of all trials,
+in both cases including the assumed trials.
+
+If even in the best case scenario the load exceed ratio would be larger
+than the goal exceed ratio, the load is an upper bound.
+If even in the worst case scenario the load exceed ratio would not be larger
+than the goal exceed ratio, the load is a lower bound.
+
+Even more specifically.
+Take all trials measured at a given load.
+The sum of the durations of all bad full-length trials is called the bad sum.
+The sum of the durations of all good full-length trials is called the good sum.
+The result of adding the bad sum plus the good sum is called the measured sum.
+The larger of the measured sum and the goal duration sum is called the whole sum.
+The whole sum minus the measured sum is called the missing sum.
+The optimistic exceed ratio is the bad sum divided by the whole sum.
+The pessimistic exceed ratio is the bad sum plus the missing sum,
+that divided by the whole sum.
+If the optimistic exceed ratio is larger than the goal exceed ratio,
+the load is classified as an upper bound.
+If the pessimistic exceed ratio is not larger than the goal exceed ratio,
+the load is classified as a lower bound.
+Else, the load is classified as undecided.
+
+The definition of pessimistic exceed ratio is compatible with the logic in
+the conditional throughput computation, so in this single trial duration case,
+a load is a lower bound if and only if the conditional throughput
+effective loss ratio is not larger than the goal loss ratio.
+If it is larger, the load is either an upper bound or undecided.
+
+## Short Trial Scenarios
+
+Trials with intended duration smaller than the goal final trial duration
+are called short trials.
+The motivation for load classification logic in the presence of short trials
+is based around a counter-factual case: What would the trial result be
+if a short trial has been measured as a full-length trial instead?
+
+There are three main scenarios where human intuition guides
+the intended behavior of load classification.
+
+False good scenario.
+The user had their reason for not configuring a shorter goal
+final trial duration.
+Perhaps SUT has buffers that may get full at longer
+trial durations.
+Perhaps SUT shows periodic decreases in performance
+the user does not want to be treated as noise.
+In any case, many good short trials may become bad full-length trials
+in the counter-factual case.
+In extreme cases, there are plenty of good short trials and no bad short trials.
+In this scenario, we want the load classification NOT to classify the load
+as a lower bound, despite the abundance of good short trials.
+Effectively, we want the good short trials to be ignored, so they
+do not contribute to comparisons with the goal duration sum.
+
+True bad scenario.
+When there is a frame loss in a short trial,
+the counter-factual full-length trial is expected to lose at least as many
+frames.
+And in practice, bad short trials are rarely turning into
+good full-length trials.
+In extreme cases, there are no good short trials.
+In this scenario, we want the load classification
+to classify the load as an upper bound just based on the abundance
+of short bad trials.
+Effectively, we want the bad short trials
+to contribute to comparisons with the goal duration sum,
+so the load can be classified sooner.
+
+Balanced scenario.
+Some SUTs are quite indifferent to trial duration.
+Performance probability function constructed from short trial results
+is likely to be similar to the performance probability function constructed
+from full-length trial results (perhaps with larger dispersion,
+but without a big impact on the median quantiles overall).
+For a moderate goal exceed ratio value, this may mean there are both
+good short trials and bad short trials.
+This scenario is there just to invalidate a simple heuristic
+of always ignoring good short trials and never ignoring bad short trials.
+That simple heuristic would be too biased.
+Yes, the short bad trials
+are likely to turn into full-length bad trials in the counter-factual case,
+but there is no information on what would the good short trials turn into.
+The only way to decide safely is to do more trials at full length,
+the same as in scenario one.
+
+## Short Trial Logic
+
+MLRsearch picks a particular logic for load classification
+in the presence of short trials, but it is still RECOMMENDED
+to use configurations that imply no short trials,
+so the possible inefficiencies in that logic
+do not affect the result, and the result has better explainability.
+
+With that said, the logic differs from the single trial duration case
+only in different definition of the bad sum.
+The good sum is still the sum across all good full-length trials.
+
+Few more notions are needed for defining the new bad sum.
+The sum of durations of all bad full-length trials is called the bad long sum.
+The sum of durations of all bad short trials is called the bad short sum.
+The sum of durations of all good short trials is called the good short sum.
+One minus the goal exceed ratio is called the inceed ratio.
+The goal exceed ratio divided by the inceed ratio is called the exceed coefficient.
+The good short sum multiplied by the exceed coefficient is called the balancing sum.
+The bad short sum minus the balancing sum is called the excess sum.
+If the excess sum is negative, the bad sum is equal to the bad long sum.
+Otherwise, the bad sum is equal to the bad long sum plus the excess sum.
+
+Here is how the new definition of the bad sum fares in the three scenarios,
+where the load is close to what would the relevant bounds be
+if only full-length trials were used for the search.
+
+False good scenario.
+If the duration is too short, we expect to see a higher frequency
+of good short trials.
+This could lead to a negative excess sum,
+which has no impact, hence the load classification is given just by
+full-length trials.
+Thus, MLRsearch using too short trials has no detrimental effect
+on result comparability in this scenario.
+But also using short trials does not help with overall search duration,
+probably making it worse.
+
+True bad cenario.
+Settings with a small exceed ratio
+have a small exceed coefficient, so the impact of the good short sum is small,
+and the bad short sum is almost wholly converted into excess sum,
+thus bad short trials have almost as big an impact as full-length bad trials.
+The same conclusion applies to moderate exceed ratio values
+when the good short sum is small.
+Thus, short trials can cause a load to get classified as an upper bound earlier,
+bringing time savings (while not affecting comparability).
+
+Balanced scenario.
+Here excess sum is small in absolute value, as the balancing sum
+is expected to be similar to the bad short sum.
+Once again, full-length trials are needed for final load classification;
+but usage of short trials probably means MLRsearch needed
+a shorter overall search time before selecting this load for measurement,
+thus bringing time savings (while not affecting comparability).
+
+Note that in presence of short trial results,
+the comparibility between the load classification
+and the conditional throughput is only partial.
+The conditional throughput still comes from a good long trial,
+but a load higher than the relevant lower bound may also compute to a good value.
+
+## Longer Trial Durations
+
+If there are trial results with an intended duration larger
+than the goal trial duration, the precise definitions
+in Appendix A and Appendix B treat them in exactly the same way
+as trials with duration equal to the goal trial duration.
+
+But in configurations with moderate (including 0.5) or small
+goal exceed ratio and small goal loss ratio (especially zero),
+bad trials with longer than goal durations may bias the search
+towards the lower load values, as the noiseful end of the spectrum
+gets a larger probability of causing the loss within the longer trials.
+
+For some users, this is an acceptable price
+for increased configuration flexibility
+(perhaps saving time for the related goals),
+so implementations SHOULD allow such configurations.
+Still, users are encouraged to avoid such configurations
+by making all goals use the same final trial duration,
+so their results remain comparable across implementations.
+
+# Addressed Problems
+
+Now when MLRsearch is clearly specified and explained,
+it is possible to summarize how does MLRsearch specification help with problems.
+
+Here, "multiple trials" is a shorthand for having the goal final trial duration
+significantly smaller than the goal duration sum.
+This results in MLRsearch performing multiple trials at the same load,
+which may not be the case with other configurations.
+
+## Long Test Duration
+
+As shortening the overall search duration is the main motivation
+of MLRsearch library development, the library implements
+multiple improvements on this front, both big and small.
+
+Most of implementation details are not constrained by the MLRsearch specification,
+so that future implementations may keep shortening the search duration even more.
+
+One exception is the impact of short trial results on the relevant lower bound.
+While motivated by human intuition, the logic is not straightforward.
+In practice, configurations with only one common trial duration value
+are capable of achieving good overal search time and result repeatability
+without the need to consider short trials.
+
+### Impact of goal attribute values
+
+From the required goal attributes, the goal duration sum
+remains the best way to get even shorter searches.
+
+Usage of multiple trials can also save time,
+depending on wait times around trial traffic.
+
+The farther the goal exceed ratio is from 0.5 (towards zero or one),
+the less predictable the overal search duration becomes in practice.
+
+Width parameter does not change search duration much in practice
+(compared to other, mainly optional goal attributes).
+
+## DUT in SUT
+
+In practice, using multiple trials and moderate exceed ratios
+often improves result repeatability without increasing the overall search time,
+depending on the specific SUT and DUT characteristics.
+Benefits for separating SUT noise are less clear though,
+as it is not easy to distinguish SUT noise from DUT instability in general.
+
+Conditional throughput has an intuitive meaning when described
+using the performance spectrum, so this is an improvement
+over existing simple (less configurable) search procedures.
+
+Multiple trials can save time also when the noisy end of
+the preformance spectrum needs to be examined, e.g. for [RFC9004].
+
+Under some circumstances, testing the same DUT and SUT setup with different
+DUT configurations can give some hints on what part of noise is SUT noise
+and what part is DUT performance fluctuations.
+In practice, both types of noise tend to be too complicated for that analysis.
+
+MLRsearch enables users to search for multiple goals,
+potentially providing more insight at the cost of a longer overall search time.
+However, for a thorough and reliable examination of DUT-SUT interactions,
+it is necessary to employ additional methods beyond black-box benchmarking,
+such as collecting and analyzing DUT and SUT telemetry.
+
+## Repeatability and Comparability
+
+Multiple trials improve repeatability, depending on exceed ratio.
+
+In practice, one-second goal final trial duration with exceed ratio 0.5
+is good enough for modern SUTs.
+However, unless smaller wait times around the traffic part of the trial
+are allowed, too much of overal search time would be wasted on waiting.
+
+It is not clear whether exceed ratios higher than 0.5 are better
+for repeatability.
+The 0.5 value is still preferred due to explainability using median.
+
+It is possible that the conditional throughput values (with non-zero goal
+loss ratio) are better for repeatability than the relevant lower bound values.
+This is especially for implementations
+which pick load from a small set of discrete values,
+as that hides small variances in relevant lower bound values
+other implementations may find.
+
+Implementations focusing on shortening the overall search time
+are automatically forced to avoid comparability issues due to load selection,
+as they must prefer even splits wherever possible.
+But this conclusion only holds when the same goals are used.
+Larger adoption is needed before any further claims on comparability
+between MLRsearch implementations can be made.
+
+## Throughput with Non-Zero Loss
+
+Trivially suported by the goal loss ratio attribute.
+
+In practice, usage of non-zero loss ratio values
+improves the result repeatability
+(exactly as expected based on results from simpler search methods).
+
+## Inconsistent Trial Results
+
+MLRsearch is conservative wherever possible.
+This is built into the definition of conditional throughput,
+and into the treatment of short trial results for load classification.
+
+This is consistent with [RFC2544] zero loss tolerance motivation.
+
+If the noiseless part of the SUT performance spectrum is of interest,
+it should be enough to set small value for the goal final trial duration,
+and perhaps also a large value for the goal exceed ratio.
+
+Implementations may offer other (optional) configuration attributes
+to become less conservative, but currently it is not clear
+what impact would that have on repeatability.
+
+# IANA Considerations
+
+No requests of IANA.
+
+# Security Considerations
+
+Benchmarking activities as described in this memo are limited to
+technology characterization of a DUT/SUT using controlled stimuli in a
+laboratory environment, with dedicated address space and the constraints
+specified in the sections above.
+
+The benchmarking network topology will be an independent test setup and
+MUST NOT be connected to devices that may forward the test traffic into
+a production network or misroute traffic to the test management network.
+
+Further, benchmarking is performed on a "black-box" basis, relying
+solely on measurements observable external to the DUT/SUT.
+
+Special capabilities SHOULD NOT exist in the DUT/SUT specifically for
+benchmarking purposes. Any implications for network security arising
+from the DUT/SUT SHOULD be identical in the lab and in production
+networks.
+
+# Acknowledgements
+
+Some phrases and statements in this document were created
+with help of Mistral AI (mistral.ai).
+
+Many thanks to Alec Hothan of the OPNFV NFVbench project for thorough
+review and numerous useful comments and suggestions.
+
+Special wholehearted gratitude and thanks to the late Al Morton for his
+thorough reviews filled with very specific feedback and constructive
+guidelines. Thank you Al for the close collaboration over the years,
+for your continuous unwavering encouragement full of empathy and
+positive attitude.
+Al, you are dearly missed.
+
+# Appendix A: Load Classification
+
+This is the specification of how to perform the load classification.
+
+Any intended load value can be classified, according to the given search goal.
+
+The algorithm uses (some subsets of) the set of all available trial results
+from trials measured at a given intended load at the end of the search.
+All durations are those returned by the measurer.
+
+The block at the end of this appendix holds pseudocode
+which computes two values, stored in variables named optimistic and pessimistic.
+The pseudocode happens to be a valid Python code.
+
+If both values are computed to be true, the load in question
+is classified as a lower bound according to the given search goal.
+If both values are false, the load is classified as an upper bound.
+Otherwise, the load is classified as undecided.
+
+The pseudocode expects the following variables to hold values as follows:
+
+- goal_duration_sum: The duration sum value of the given search goal.
+
+- goal_exceed_ratio: The exceed ratio value of the given search goal.
+
+- good_long_sum: Sum of durations across trials with trial duration
+ at least equal to the goal final trial duration and with a trial loss ratio
+ not higher than the goal loss ratio.
+
+- bad_long_sum: Sum of durations across trials with trial duration
+ at least equal to the goal final trial duration and with a trial loss ratio
+ higher than the goal loss ratio.
+
+- good_short_sum: Sum of durations across trials with trial duration
+ shorter than the goal final trial duration and with a trial loss ratio
+ not higher than the goal loss ratio.
+
+- bad_short_sum: Sum of durations across trials with trial duration
+ shorter than the goal final trial duration and with a trial loss ratio
+ higher than the goal loss ratio.
+
+The code works correctly also when there are no trial results at the given load.
+
+~~~ python
+balancing_sum = good_short_sum * goal_exceed_ratio / (1.0 - goal_exceed_ratio)
+effective_bad_sum = bad_long_sum + max(0.0, bad_short_sum - balancing_sum)
+effective_whole_sum = max(good_long_sum + effective_bad_sum, goal_duration_sum)
+quantile_duration_sum = effective_whole_sum * goal_exceed_ratio
+optimistic = effective_bad_sum <= quantile_duration_sum
+pessimistic = (effective_whole_sum - good_long_sum) <= quantile_duration_sum
+~~~
+
+# Appendix B: Conditional Throughput
+
+This is the specification of how to compute conditional throughput.
+
+Any intended load value can be used as the basis for the following computation,
+but only the relevant lower bound (at the end of the search)
+leads to the value called the conditional throughput for a given search goal.
+
+The algorithm uses (some subsets of) the set of all available trial results
+from trials measured at a given intended load at the end of the search.
+All durations are those returned by the measurer.
+
+The block at the end of this appendix holds pseudocode
+which computes a value stored as variable conditional_throughput.
+The pseudocode happens to be a valid Python code.
+
+The pseudocode expects the following variables to hold values as follows:
+
+- goal_duration_sum: The duration sum value of the given search goal.
+
+- goal_exceed_ratio: The exceed ratio value of the given search goal.
+
+- good_long_sum: Sum of durations across trials with trial duration
+ at least equal to the goal final trial duration and with a trial loss ratio
+ not higher than the goal loss ratio.
+
+- bad_long_sum: Sum of durations across trials with trial duration
+ at least equal to the goal final trial duration and with a trial loss ratio
+ higher than the goal loss ratio.
+
+- long_trials: An iterable of all trial results from trials with trial duration
+ at least equal to the goal final trial duration,
+ sorted by increasing the trial loss ratio.
+ A trial result is a composite with the following two attributes available:
+
+ - trial.loss_ratio: The trial loss ratio as measured for this trial.
+
+ - trial.duration: The trial duration of this trial.
+
+The code works correctly only when there if there is at least one
+trial result measured at a given load.
+
+~~~ python
+all_long_sum = max(goal_duration_sum, good_long_sum + bad_long_sum)
+remaining = all_long_sum * (1.0 - goal_exceed_ratio)
+quantile_loss_ratio = None
+for trial in long_trials:
+ if quantile_loss_ratio is None or remaining > 0.0:
+ quantile_loss_ratio = trial.loss_ratio
+ remaining -= trial.duration
+ else:
+ break
+else:
+ if remaining > 0.0:
+ quantile_loss_ratio = 1.0
+conditional_throughput = intended_load * (1.0 - quantile_loss_ratio)
+~~~
+
+--- back
diff --git a/docs/ietf/draft-vpolak-mkonstan-bmwg-mlrsearch-03.md b/docs/ietf/draft-vpolak-mkonstan-bmwg-mlrsearch-03.md
deleted file mode 100644
index 5643afccb9..0000000000
--- a/docs/ietf/draft-vpolak-mkonstan-bmwg-mlrsearch-03.md
+++ /dev/null
@@ -1,556 +0,0 @@
----
-title: Multiple Loss Ratio Search for Packet Throughput (MLRsearch)
-# abbrev: MLRsearch
-docname: draft-vpolak-mkonstan-bmwg-mlrsearch-03
-date: 2020-03-06
-
-ipr: trust200902
-area: ops
-wg: Benchmarking Working Group
-kw: Internet-Draft
-cat: info
-
-coding: us-ascii
-pi: # can use array (if all yes) or hash here
-# - toc
-# - sortrefs
-# - symrefs
- toc: yes
- sortrefs: # defaults to yes
- symrefs: yes
-
-author:
- -
- ins: M. Konstantynowicz
- name: Maciek Konstantynowicz
- org: Cisco Systems
- role: editor
- email: mkonstan@cisco.com
- -
- ins: V. Polak
- name: Vratko Polak
- org: Cisco Systems
- role: editor
- email: vrpolak@cisco.com
-
-normative:
- RFC2544:
- RFC8174:
-
-informative:
- FDio-CSIT-MLRsearch:
- target: https://docs.fd.io/csit/rls2001/report/introduction/methodology_data_plane_throughput/methodology_mlrsearch_tests.html
- title: "FD.io CSIT Test Methodology - MLRsearch"
- date: 2020-02
- PyPI-MLRsearch:
- target: https://pypi.org/project/MLRsearch/0.3.0/
- title: "MLRsearch 0.3.0, Python Package Index"
- date: 2020-02
-
---- abstract
-
-This document proposes changes to [RFC2544], specifically to packet
-throughput search methodology, by defining a new search algorithm
-referred to as Multiple Loss Ratio search (MLRsearch for short). Instead
-of relying on binary search with pre-set starting offered load, it
-proposes a novel approach discovering the starting point in the initial
-phase, and then searching for packet throughput based on defined packet
-loss ratio (PLR) input criteria and defined final trial duration time.
-One of the key design principles behind MLRsearch is minimizing the
-total test duration and searching for multiple packet throughput rates
-(each with a corresponding PLR) concurrently, instead of doing it
-sequentially.
-
-The main motivation behind MLRsearch is the new set of challenges and
-requirements posed by NFV (Network Function Virtualization),
-specifically software based implementations of NFV data planes. Using
-[RFC2544] in the experience of the authors yields often not repetitive
-and not replicable end results due to a large number of factors that are
-out of scope for this draft. MLRsearch aims to address this challenge
-in a simple way of getting the same result sooner, so more repetitions
-can be done to describe the replicability.
-
---- middle
-
-# Terminology
-
-* Frame size: size of an Ethernet Layer-2 frame on the wire, including
- any VLAN tags (dot1q, dot1ad) and Ethernet FCS, but excluding Ethernet
- preamble and inter-frame gap. Measured in bytes.
-* Packet size: same as frame size, both terms used interchangeably.
-* Device Under Test (DUT): In software networking, "device" denotes a
- specific piece of software tasked with packet processing. Such device
- is surrounded with other software components (such as operating system
- kernel). It is not possible to run devices without also running the
- other components, and hardware resources are shared between both. For
- purposes of testing, the whole set of hardware and software components
- is called "system under test" (SUT). As SUT is the part of the whole
- test setup performance of which can be measured by [RFC2544] methods,
- this document uses SUT instead of [RFC2544] DUT. Device under test
- (DUT) can be re-introduced when analysing test results using whitebox
- techniques, but this document sticks to blackbox testing.
-* System Under Test (SUT): System under test (SUT) is a part of the
- whole test setup whose performance is to be benchmarked. The complete
- test setup contains other parts, whose performance is either already
- established, or not affecting the benchmarking result.
-* Bi-directional throughput tests: involve packets/frames flowing in
- both transmit and receive directions over every tested interface of
- SUT/DUT. Packet flow metrics are measured per direction, and can be
- reported as aggregate for both directions and/or separately
- for each measured direction. In most cases bi-directional tests
- use the same (symmetric) load in both directions.
-* Uni-directional throughput tests: involve packets/frames flowing in
- only one direction, i.e. either transmit or receive direction, over
- every tested interface of SUT/DUT. Packet flow metrics are measured
- and are reported for measured direction.
-* Packet Loss Ratio (PLR): ratio of packets received relative to packets
- transmitted over the test trial duration, calculated using formula:
- PLR = ( pkts_transmitted - pkts_received ) / pkts_transmitted.
- For bi-directional throughput tests aggregate PLR is calculated based
- on the aggregate number of packets transmitted and received.
-* Packet Throughput Rate: maximum packet offered load DUT/SUT forwards
- within the specified Packet Loss Ratio (PLR). In many cases the rate
- depends on the frame size processed by DUT/SUT. Hence packet
- throughput rate MUST be quoted with specific frame size as received by
- DUT/SUT during the measurement. For bi-directional tests, packet
- throughput rate should be reported as aggregate for both directions.
- Measured in packets-per-second (pps) or frames-per-second (fps),
- equivalent metrics.
-* Bandwidth Throughput Rate: a secondary metric calculated from packet
- throughput rate using formula: bw_rate = pkt_rate * (frame_size +
- L1_overhead) * 8, where L1_overhead for Ethernet includes preamble (8
- Bytes) and inter-frame gap (12 Bytes). For bi-directional tests,
- bandwidth throughput rate should be reported as aggregate for both
- directions. Expressed in bits-per-second (bps).
-* Non Drop Rate (NDR): maximum packet/bandwith throughput rate sustained
- by DUT/SUT at PLR equal zero (zero packet loss) specific to tested
- frame size(s). MUST be quoted with specific packet size as received by
- DUT/SUT during the measurement. Packet NDR measured in
- packets-per-second (or fps), bandwidth NDR expressed in
- bits-per-second (bps).
-* Partial Drop Rate (PDR): maximum packet/bandwith throughput rate
- sustained by DUT/SUT at PLR greater than zero (non-zero packet loss)
- specific to tested frame size(s). MUST be quoted with specific packet
- size as received by DUT/SUT during the measurement. Packet PDR
- measured in packets-per-second (or fps), bandwidth PDR expressed in
- bits-per-second (bps).
-* Maximum Receive Rate (MRR): packet/bandwidth rate regardless of PLR
- sustained by DUT/SUT under specified Maximum Transmit Rate (MTR)
- packet load offered by traffic generator. MUST be quoted with both
- specific packet size and MTR as received by DUT/SUT during the
- measurement. Packet MRR measured in packets-per-second (or fps),
- bandwidth MRR expressed in bits-per-second (bps).
-* Trial: a single measurement step. See [RFC2544] section 23.
-* Trial duration: amount of time over which packets are transmitted
- in a single measurement step.
-
-# MLRsearch Background
-
-Multiple Loss Ratio search (MLRsearch) is a packet throughput search
-algorithm suitable for deterministic systems (as opposed to
-probabilistic systems). MLRsearch discovers multiple packet throughput
-rates in a single search, with each rate associated with a distinct
-Packet Loss Ratio (PLR) criteria.
-
-For cases when multiple rates need to be found, this property makes
-MLRsearch more efficient in terms of time execution, compared to
-traditional throughput search algorithms that discover a single packet
-rate per defined search criteria (e.g. a binary search specified by
-[RFC2544]). MLRsearch reduces execution time even further by relying on
-shorter trial durations of intermediate steps, with only the final
-measurements conducted at the specified final trial duration. This
-results in the shorter overall search execution time when compared to a
-traditional binary search, while guaranteeing the same results for
-deterministic systems.
-
-In practice two rates with distinct PLRs are commonly used for packet
-throughput measurements of NFV systems: Non Drop Rate (NDR) with PLR=0
-and Partial Drop Rate (PDR) with PLR>0. The rest of this document
-describes MLRsearch for NDR and PDR. If needed, MLRsearch can be
-adapted to discover more throughput rates with different pre-defined
-PLRs.
-
-Similarly to other throughput search approaches like binary search,
-MLRsearch is effective for SUTs/DUTs with PLR curve that is continuously
-flat or increasing with growing offered load. It may not be as
-effective for SUTs/DUTs with abnormal PLR curves.
-
-MLRsearch relies on traffic generator to qualify the received packet
-stream as error-free, and invalidate the results if any disqualifying
-errors are present e.g. out-of-sequence frames.
-
-MLRsearch can be applied to both uni-directional and bi-directional
-throughput tests.
-
-For bi-directional tests, MLRsearch rates and ratios are aggregates of
-both directions, based on the following assumptions:
-
-* Traffic transmitted by traffic generator and received by SUT/DUT
- has the same packet rate in each direction,
- in other words the offered load is symmetric.
-* SUT/DUT packet processing capacity is the same in both directions,
- resulting in the same packet loss under load.
-
-# MLRsearch Overview
-
-The main properties of MLRsearch:
-
-* MLRsearch is a duration aware multi-phase multi-rate search algorithm:
- * Initial Phase determines promising starting interval for the search.
- * Intermediate Phases progress towards defined final search criteria.
- * Final Phase executes measurements according to the final search
- criteria.
- * Final search criteria are defined by following inputs:
- * PLRs associated with NDR and PDR.
- * Final trial duration.
- * Measurement resolution.
-* Initial Phase:
- * Measure MRR over initial trial duration.
- * Measured MRR is used as an input to the first intermediate phase.
-* Multiple Intermediate Phases:
- * Trial duration:
- * Start with initial trial duration in the first intermediate phase.
- * Converge geometrically towards the final trial duration.
- * Track two values for NDR and two for PDR:
- * The values are called lower_bound and upper_bound.
- * Each value comes from a specific trial measurement:
- * Most recent for that transmit rate.
- * As such the value is associated with that measurement's duration
- and loss.
- * A bound can be valid or invalid:
- * Valid lower_bound must conform with PLR search criteria.
- * Valid upper_bound must not conform with PLR search criteria.
- * Example of invalid NDR lower_bound is if it has been measured
- with non-zero loss.
- * Invalid bounds are not real boundaries for the searched value:
- * They are needed to track interval widths.
- * Valid bounds are real boundaries for the searched value.
- * Each non-initial phase ends with all bounds valid.
- * Bound can become invalid if it re-measured at a longer trial
- duration in a sub-sequent phase.
- * Search:
- * Start with a large (lower_bound, upper_bound) interval width, that
- determines measurement resolution.
- * Geometrically converge towards the width goal of the phase.
- * Each phase halves the previous width goal.
- * First measurement of the next phase will be internal search
- which always gives a valid bound and brings the width to the new goal.
- * Only one bound then needs to be re-measured with new duration.
- * Use of internal and external searches:
- * External search:
- * Measures at transmit rates outside the (lower_bound,
- upper_bound) interval.
- * Activated when a bound is invalid, to search for a new valid
- bound by multiplying (for example doubling) the interval width.
- * It is a variant of "exponential search".
- * Internal search:
- * A "binary search" that measures at transmit rates within the
- (lower_bound, upper_bound) valid interval, halving the interval
- width.
-* Final Phase:
- * Executed with the final test trial duration, and the final width
- goal that determines resolution of the overall search.
-* Intermediate Phases together with the Final Phase are called
- Non-Initial Phases.
-
-The main benefits of MLRsearch vs. binary search include:
-
-* In general MLRsearch is likely to execute more trials overall, but
- likely less trials at a set final trial duration.
-* In well behaving cases, e.g. when results do not depend on trial
- duration, it greatly reduces (>50%) the overall duration compared to a
- single PDR (or NDR) binary search over duration, while finding
- multiple drop rates.
-* In all cases MLRsearch yields the same or similar results to binary
- search.
-* Note: both binary search and MLRsearch are susceptible to reporting
- non-repeatable results across multiple runs for very bad behaving
- cases.
-
-Caveats:
-
-* Worst case MLRsearch can take longer than a binary search e.g. in case of
- drastic changes in behaviour for trials at varying durations.
-
-# Sample Implementation
-
-Following is a brief description of a sample MLRsearch implementation,
-which is a simlified version of the existing implementation.
-
-## Input Parameters
-
-1. **maximum_transmit_rate** - Maximum Transmit Rate (MTR) of packets to
- be used by external traffic generator implementing MLRsearch,
- limited by the actual Ethernet link(s) rate, NIC model or traffic
- generator capabilities.
-2. **minimum_transmit_rate** - minimum packet transmit rate to be used for
- measurements. MLRsearch fails if lower transmit rate needs to be
- used to meet search criteria.
-3. **final_trial_duration** - required trial duration for final rate
- measurements.
-4. **initial_trial_duration** - trial duration for initial MLRsearch phase.
-5. **final_relative_width** - required measurement resolution expressed as
- (lower_bound, upper_bound) interval width relative to upper_bound.
-6. **packet_loss_ratio** - maximum acceptable PLR search criterion for
- PDR measurements.
-7. **number_of_intermediate_phases** - number of phases between the initial
- phase and the final phase. Impacts the overall MLRsearch duration.
- Less phases are required for well behaving cases, more phases
- may be needed to reduce the overall search duration for worse behaving cases.
-
-## Initial Phase
-
-1. First trial measures at configured maximum transmit rate (MTR) and
- discovers maximum receive rate (MRR).
- * IN: trial_duration = initial_trial_duration.
- * IN: offered_transmit_rate = maximum_transmit_rate.
- * DO: single trial.
- * OUT: measured loss ratio.
- * OUT: MRR = measured receive rate.
- If loss ratio is zero, MRR is set below MTR so that interval width is equal
- to the width goal of the first intermediate phase.
-2. Second trial measures at MRR and discovers MRR2.
- * IN: trial_duration = initial_trial_duration.
- * IN: offered_transmit_rate = MRR.
- * DO: single trial.
- * OUT: measured loss ratio.
- * OUT: MRR2 = measured receive rate.
- If loss ratio is zero, MRR2 is set above MRR so that interval width is equal
- to the width goal of the first intermediate phase.
- MRR2 could end up being equal to MTR (for example if both measurements so far
- had zero loss), which was already measured, step 3 is skipped in that case.
-3. Third trial measures at MRR2.
- * IN: trial_duration = initial_trial_duration.
- * IN: offered_transmit_rate = MRR2.
- * DO: single trial.
- * OUT: measured loss ratio.
-
-## Non-Initial Phases
-
-1. Main loop:
- 1. IN: trial_duration for the current phase. Set to
- initial_trial_duration for the first intermediate phase; to
- final_trial_duration for the final phase; or to the element of
- interpolating geometric sequence for other intermediate phases.
- For example with two intermediate phases, trial_duration of the
- second intermediate phase is the geometric average of
- initial_trial_duration and final_trial_duration.
- 2. IN: relative_width_goal for the current phase. Set to
- final_relative_width for the final phase; doubled for each
- preceding phase. For example with two intermediate phases, the
- first intermediate phase uses quadruple of final_relative_width
- and the second intermediate phase uses double of
- final_relative_width.
- 3. IN: ndr_interval, pdr_interval from the previous main loop
- iteration or the previous phase. If the previous phase is the
- initial phase, both intervals are formed by a (correctly ordered)
- pair of MRR2 and MRR. Note that the initial phase is likely
- to create intervals with invalid bounds.
- 4. DO: According to the procedure described in point 2., either exit
- the phase (by jumping to 1.7.), or calculate new transmit rate to
- measure with.
- 5. DO: Perform the trial measurement at the new transmit rate and
- trial_duration, compute its loss ratio.
- 6. DO: Update the bounds of both intervals, based on the new
- measurement. The actual update rules are numerous, as NDR external
- search can affect PDR interval and vice versa, but the result
- agrees with rules of both internal and external search. For
- example, any new measurement below an invalid lower_bound becomes
- the new lower_bound, while the old measurement (previously acting
- as the invalid lower_bound) becomes a new and valid upper_bound.
- Go to next iteration (1.3.), taking the updated intervals as new
- input.
- 7. OUT: current ndr_interval and pdr_interval. In the final phase
- this is also considered to be the result of the whole search. For
- other phases, the next phase loop is started with the current
- results as an input.
-2. New transmit rate (or exit) calculation (for point 1.4.):
- 1. If there is an invalid bound then prepare for external search:
- * IF the most recent measurement at NDR lower_bound transmit
- rate had the loss higher than zero, then the new transmit rate
- is NDR lower_bound decreased by two NDR interval widths.
- * Else, IF the most recent measurement at PDR lower_bound
- transmit rate had the loss higher than PLR, then the new
- transmit rate is PDR lower_bound decreased by two PDR interval
- widths.
- * Else, IF the most recent measurement at NDR upper_bound
- transmit rate had no loss, then the new transmit rate is NDR
- upper_bound increased by two NDR interval widths.
- * Else, IF the most recent measurement at PDR upper_bound
- transmit rate had the loss lower or equal to PLR, then the new
- transmit rate is PDR upper_bound increased by two PDR interval
- widths.
- 2. Else, if interval width is higher than the current phase goal:
- * IF NDR interval does not meet the current phase width
- goal, prepare for internal search. The new transmit rate is a
- in the middle of NDR lower_bound and NDR upper_bound.
- * IF PDR interval does not meet the current phase width
- goal, prepare for internal search. The new transmit rate is a
- in the middle of PDR lower_bound and PDR upper_bound.
- 3. Else, if some bound has still only been measured at a lower
- duration, prepare to re-measure at the current duration (and the
- same transmit rate). The order of priorities is:
- * NDR lower_bound,
- * PDR lower_bound,
- * NDR upper_bound,
- * PDR upper_bound.
- 4. Else, do not prepare any new rate, to exit the phase.
- This ensures that at the end of each non-initial phase
- all intervals are valid, narrow enough, and measured
- at current phase trial duration.
-
-# FD.io CSIT Implementation
-
-The only known working implementation of MLRsearch is in
-the open-source code running in Linux Foundation
-FD.io CSIT project [FDio-CSIT-MLRsearch] as part of
-a Continuous Integration / Continuous Development (CI/CD) framework.
-
-MLRsearch is also available as a Python package in [PyPI-MLRsearch].
-
-## Additional details
-
-This document so far has been describing a simplified version of
-MLRsearch algorithm. The full algorithm as implemented in CSIT contains
-additional logic, which makes some of the details (but not general
-ideas) above incorrect. Here is a short description of the additional
-logic as a list of principles, explaining their main differences from
-(or additions to) the simplified description, but without detailing
-their mutual interaction.
-
-1. Logarithmic transmit rate.
- * In order to better fit the relative width goal, the interval
- doubling and halving is done differently.
- * For example, the middle of 2 and 8 is 4, not 5.
-2. Optimistic maximum rate.
- * The increased rate is never higher than the maximum rate.
- * Upper bound at that rate is always considered valid.
-3. Pessimistic minimum rate.
- * The decreased rate is never lower than the minimum rate.
- * If a lower bound at that rate is invalid, a phase stops refining
- the interval further (until it gets re-measured).
-4. Conservative interval updates.
- * Measurements above the current upper bound never update a valid upper
- bound, even if drop ratio is low.
- * Measurements below the current lower bound always update any lower
- bound if drop ratio is high.
-5. Ensure sufficient interval width.
- * Narrow intervals make external search take more time to find a
- valid bound.
- * If the new transmit increased or decreased rate would result in
- width less than the current goal, increase/decrease more.
- * This can happen if the measurement for the other interval
- makes the current interval too narrow.
- * Similarly, take care the measurements in the initial phase create
- wide enough interval.
-6. Timeout for bad cases.
- * The worst case for MLRsearch is when each phase converges to
- intervals way different than the results of the previous phase.
- * Rather than suffer total search time several times larger than pure
- binary search, the implemented tests fail themselves when the
- search takes too long (given by argument *timeout*).
-7. Pessimistic external search.
- * Valid bound becoming invalid on re-measurement with higher duration
- is frequently a sign of SUT behaving in non-deterministic way
- (from blackbox point of view). If the final width interval goal
- is too narrow compared to width of rate region where SUT
- is non-deterministic, it is quite likely that there will be multiple
- invalid bounds before the external search finds a valid one.
- * In this case, external search can be sped up by increasing interval width
- more rapidly. As only powers of two ensure the subsequent internal search
- will not result in needlessly narrow interval, a parameter *doublings*
- is introduced to control the pessimism of external search.
- For example three doublings result in interval width being multiplied
- by eight in each external search iteration.
-
-### FD.io CSIT Input Parameters
-
-1. **maximum_transmit_rate** - Typical values: 2 * 14.88 Mpps for 64B
- 10GE link rate, 2 * 18.75 Mpps for 64B 40GE NIC (specific model).
-2. **minimum_transmit_rate** - Value: 2 * 10 kpps (traffic generator
- limitation).
-3. **final_trial_duration** - Value: 30 seconds.
-4. **initial_trial_duration** - Value: 1 second.
-5. **final_relative_width** - Value: 0.005 (0.5%).
-6. **packet_loss_ratio** - Value: 0.005 (0.5%).
-7. **number_of_intermediate_phases** - Value: 2.
- The value has been chosen based on limited experimentation to date.
- More experimentation needed to arrive to clearer guidelines.
-8. **timeout** - Limit for the overall search duration (for one search).
- If MLRsearch oversteps this limit, it immediatelly declares the test failed,
- to avoid wasting even more time on a misbehaving SUT.
- Value: 600 (seconds).
-9. **doublings** - Number of dublings when computing new interval width
- in external search.
- Value: 2 (interval width is quadroupled).
- Value of 1 is best for well-behaved SUTs, but value of 2 has been found
- to decrease overall search time for worse-behaved SUT configurations,
- contributing more to the overall set of different SUT configurations tested.
-
-## Example MLRsearch Run
-
-The following table shows data from a real test run in CSIT
-(using the default input values as above).
-The first column is the phase, the second is the trial measurement performed
-(aggregate bidirectional offered load in megapackets per second,
-and trial duration in seconds).
-Each of last four columns show one bound as updated after the measurement
-(duration truncated to save space).
-Loss ratio is not shown, but invalid bounds are marked with a plus sign.
-
-| Phase | Trial | NDR lower | NDR upper | PDR lower | PDR upper |
-| ----: | ---------: | --------: | --------: | --------: | --------: |
-| init. | 37.50 1.00 | N/A | 37.50 1. | N/A | 37.50 1. |
-| init. | 10.55 1.00 | +10.55 1. | 37.50 1. | +10.55 1. | 37.50 1. |
-| init. | 9.437 1.00 | +9.437 1. | 10.55 1. | +9.437 1. | 10.55 1. |
-| int 1 | 6.053 1.00 | 6.053 1. | 9.437 1. | 6.053 1. | 9.437 1. |
-| int 1 | 7.558 1.00 | 7.558 1. | 9.437 1. | 7.558 1. | 9.437 1. |
-| int 1 | 8.446 1.00 | 8.446 1. | 9.437 1. | 8.446 1. | 9.437 1. |
-| int 1 | 8.928 1.00 | 8.928 1. | 9.437 1. | 8.928 1. | 9.437 1. |
-| int 1 | 9.179 1.00 | 8.928 1. | 9.179 1. | 9.179 1. | 9.437 1. |
-| int 1 | 9.052 1.00 | 9.052 1. | 9.179 1. | 9.179 1. | 9.437 1. |
-| int 1 | 9.307 1.00 | 9.052 1. | 9.179 1. | 9.179 1. | 9.307 1. |
-| int 2 | 9.115 5.48 | 9.115 5. | 9.179 1. | 9.179 1. | 9.307 1. |
-| int 2 | 9.243 5.48 | 9.115 5. | 9.179 1. | 9.243 5. | 9.307 1. |
-| int 2 | 9.179 5.48 | 9.115 5. | 9.179 5. | 9.243 5. | 9.307 1. |
-| int 2 | 9.307 5.48 | 9.115 5. | 9.179 5. | 9.243 5. | +9.307 5. |
-| int 2 | 9.687 5.48 | 9.115 5. | 9.179 5. | 9.307 5. | 9.687 5. |
-| int 2 | 9.495 5.48 | 9.115 5. | 9.179 5. | 9.307 5. | 9.495 5. |
-| int 2 | 9.401 5.48 | 9.115 5. | 9.179 5. | 9.307 5. | 9.401 5. |
-| final | 9.147 30.0 | 9.115 5. | 9.147 30 | 9.307 5. | 9.401 5. |
-| final | 9.354 30.0 | 9.115 5. | 9.147 30 | 9.307 5. | 9.354 30 |
-| final | 9.115 30.0 | +9.115 30 | 9.147 30 | 9.307 5. | 9.354 30 |
-| final | 8.935 30.0 | 8.935 30 | 9.115 30 | 9.307 5. | 9.354 30 |
-| final | 9.025 30.0 | 9.025 30 | 9.115 30 | 9.307 5. | 9.354 30 |
-| final | 9.070 30.0 | 9.070 30 | 9.115 30 | 9.307 5. | 9.354 30 |
-| final | 9.307 30.0 | 9.070 30 | 9.115 30 | 9.307 30 | 9.354 30 |
-
-# IANA Considerations
-
-No requests of IANA.
-
-# Security Considerations
-
-Benchmarking activities as described in this memo are limited to
-technology characterization of a DUT/SUT using controlled stimuli in a
-laboratory environment, with dedicated address space and the constraints
-specified in the sections above.
-
-The benchmarking network topology will be an independent test setup and
-MUST NOT be connected to devices that may forward the test traffic into
-a production network or misroute traffic to the test management network.
-
-Further, benchmarking is performed on a "black-box" basis, relying
-solely on measurements observable external to the DUT/SUT.
-
-Special capabilities SHOULD NOT exist in the DUT/SUT specifically for
-benchmarking purposes. Any implications for network security arising
-from the DUT/SUT SHOULD be identical in the lab and in production
-networks.
-
-# Acknowledgements
-
-Many thanks to Alec Hothan of OPNFV NFVbench project for thorough
-review and numerous useful comments and suggestions.
-
---- back
diff --git a/docs/ietf/process.txt b/docs/ietf/process.txt
new file mode 100644
index 0000000000..128c31bff1
--- /dev/null
+++ b/docs/ietf/process.txt
@@ -0,0 +1,30 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+
+Commands to convert RFC text from .md (so I do not need to search next time).
+
+Hints: https://www.rubydoc.info/gems/kramdown-rfc2629/
+
+Initial:
+$ sudo aptitude install ruby-rubygems
+$ sudo gem install kramdown-rfc2629
+$ kdrfc --version
+
+Main:
+$ kdrfc draft-ietf-bmwg-mlrsearch-06.md
+
+If that complains, do it manually at https://author-tools.ietf.org/
+
+Finally:
+https://author-tools.ietf.org/idnits
diff --git a/docs/job_specs/mlr_weekly/vpp-2n-clx.md b/docs/job_specs/mlr_weekly/vpp-2n-clx.md
deleted file mode 120000
index 7762cc57e3..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-2n-clx.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-clx/vpp-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mlr_weekly/vpp-2n-dnv.md b/docs/job_specs/mlr_weekly/vpp-2n-dnv.md
deleted file mode 120000
index ae5305426a..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-2n-dnv.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-dnv/vpp-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mlr_weekly/vpp-2n-skx.md b/docs/job_specs/mlr_weekly/vpp-2n-skx.md
deleted file mode 120000
index d86b16d04c..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-2n-skx.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-skx/vpp-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mlr_weekly/vpp-2n-tx2.md b/docs/job_specs/mlr_weekly/vpp-2n-tx2.md
deleted file mode 120000
index 2ef670ad5d..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-2n-tx2.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-tx2/vpp-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mlr_weekly/vpp-2n-zn2.md b/docs/job_specs/mlr_weekly/vpp-2n-zn2.md
deleted file mode 100644
index 5a0c331ece..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-2n-zn2.md
+++ /dev/null
@@ -1,544 +0,0 @@
-# 2n-zn2
-### tests 363
-### job hrs est. 35
-### job hrs real 35
-### test mins est. 5.78
-### test mins real 5.78
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1-p63-s63
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-### mellanox-cx556a
-#### rdma-core
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-## ./ip4_tunnels
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### mellanox-cx556a
-#### rdma-core
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-##### dot1q-l2bdbasemaclrn-gbp
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-gbp
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-gbp
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-gbp
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-##### dot1q-l2bdbasemaclrn-gbp
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-gbp
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-gbp
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-gbp
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-
diff --git a/docs/job_specs/mlr_weekly/vpp-3n-dnv.md b/docs/job_specs/mlr_weekly/vpp-3n-dnv.md
deleted file mode 120000
index 6b3afa0076..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-3n-dnv.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-dnv/vpp-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mlr_weekly/vpp-3n-hsw.md b/docs/job_specs/mlr_weekly/vpp-3n-hsw.md
deleted file mode 120000
index 30473cbad7..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-3n-hsw.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-hsw/vpp-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mlr_weekly/vpp-3n-skx.md b/docs/job_specs/mlr_weekly/vpp-3n-skx.md
deleted file mode 120000
index e00b42dea5..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-3n-skx.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-skx/vpp-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mlr_weekly/vpp-3n-tsh.md b/docs/job_specs/mlr_weekly/vpp-3n-tsh.md
deleted file mode 120000
index 16c34b44b2..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-3n-tsh.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-tsh/vpp-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_daily/vpp-2n-dnv.md b/docs/job_specs/mrr_daily/vpp-2n-dnv.md
deleted file mode 120000
index 1680eff81c..0000000000
--- a/docs/job_specs/mrr_daily/vpp-2n-dnv.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-dnv/vpp-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_daily/vpp-2n-skx.md b/docs/job_specs/mrr_daily/vpp-2n-skx.md
deleted file mode 120000
index e3a1d57ff7..0000000000
--- a/docs/job_specs/mrr_daily/vpp-2n-skx.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-skx/vpp-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_daily/vpp-2n-zn2.md b/docs/job_specs/mrr_daily/vpp-2n-zn2.md
deleted file mode 100644
index 93417cf5a4..0000000000
--- a/docs/job_specs/mrr_daily/vpp-2n-zn2.md
+++ /dev/null
@@ -1,544 +0,0 @@
-# 2n-zn2
-### tests 363
-### job hrs est. 10
-### job hrs real 10
-### test mins est. 1.65
-### test mins real 1.65
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1-p63-s63
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-### mellanox-cx556a
-#### rdma-core
-##### ethip4-ip4base
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-## ./ip4_tunnels
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### mellanox-cx556a
-#### rdma-core
-##### ethip6-ip6base
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-##### dot1q-l2bdbasemaclrn-gbp
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-gbp
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-gbp
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-gbp
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-##### dot1q-l2bdbasemaclrn-gbp
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-gbp
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-gbp
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-gbp
-##### eth-l2xcbase
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-
diff --git a/docs/job_specs/mrr_daily/vpp-3n-dnv.md b/docs/job_specs/mrr_daily/vpp-3n-dnv.md
deleted file mode 120000
index a589efc5b8..0000000000
--- a/docs/job_specs/mrr_daily/vpp-3n-dnv.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-dnv/vpp-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_daily/vpp-3n-hsw.md b/docs/job_specs/mrr_daily/vpp-3n-hsw.md
deleted file mode 120000
index 3c50c98f55..0000000000
--- a/docs/job_specs/mrr_daily/vpp-3n-hsw.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-hsw/vpp-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_daily/vpp-3n-skx.md b/docs/job_specs/mrr_daily/vpp-3n-skx.md
deleted file mode 120000
index 12c959cac3..0000000000
--- a/docs/job_specs/mrr_daily/vpp-3n-skx.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-skx/vpp-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_weekly/dpdk-2n-clx.md b/docs/job_specs/mrr_weekly/dpdk-2n-clx.md
deleted file mode 100644
index 2078a1385d..0000000000
--- a/docs/job_specs/mrr_weekly/dpdk-2n-clx.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 2n-clx
-### tests 12
-### job hrs est. 0.1
-### job hrs real 0.1
-### test mins est. 0.7
-### test mins real 0.7
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/mrr_weekly/dpdk-2n-skx.md b/docs/job_specs/mrr_weekly/dpdk-2n-skx.md
deleted file mode 100644
index 192387a4f2..0000000000
--- a/docs/job_specs/mrr_weekly/dpdk-2n-skx.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 2n-skx
-### tests 12
-### job hrs est. 0.1
-### job hrs real 0.1
-### test mins est. 0.7
-### test mins real 0.7
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/mrr_weekly/dpdk-2n-zn2.md b/docs/job_specs/mrr_weekly/dpdk-2n-zn2.md
deleted file mode 100644
index 5e17e168a1..0000000000
--- a/docs/job_specs/mrr_weekly/dpdk-2n-zn2.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 2n-zn2
-### tests 12
-### job hrs est. 0.1
-### job hrs real 0.1
-### test mins est. 0.7
-### test mins real 0.7
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/mrr_weekly/dpdk-3n-hsw.md b/docs/job_specs/mrr_weekly/dpdk-3n-hsw.md
deleted file mode 100644
index d756174649..0000000000
--- a/docs/job_specs/mrr_weekly/dpdk-3n-hsw.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# 3n-hsw
-### tests 18
-### job hrs est. 0.25
-### job hrs real 0.25
-### test mins est. 0.83
-### test mins real 0.83
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/mrr_weekly/dpdk-3n-skx.md b/docs/job_specs/mrr_weekly/dpdk-3n-skx.md
deleted file mode 100644
index d3a2c590da..0000000000
--- a/docs/job_specs/mrr_weekly/dpdk-3n-skx.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 3n-skx
-### tests 12
-### job hrs est. 0.15
-### job hrs real 0.15
-### test mins est. 0.75
-### test mins real 0.75
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/mrr_weekly/vpp-2n-skx.md b/docs/job_specs/mrr_weekly/vpp-2n-skx.md
deleted file mode 120000
index c9871508df..0000000000
--- a/docs/job_specs/mrr_weekly/vpp-2n-skx.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-skx/nfv-density-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_weekly/vpp-3n-skx.md b/docs/job_specs/mrr_weekly/vpp-3n-skx.md
deleted file mode 100644
index 1517b5f2f2..0000000000
--- a/docs/job_specs/mrr_weekly/vpp-3n-skx.md
+++ /dev/null
@@ -1,165 +0,0 @@
-# 3n-skx
-### tests 105
-### job hrs est. 4.9
-### job hrs real xx.x
-### test mins est. 2.8
-### test mins real x.x
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec - currently work only with DPDK
-### intel-xxv710
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-##### ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-##### ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-##### ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-##### ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-##### ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-##### ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-##### ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/perf_tests_job_specs.md b/docs/job_specs/perf_tests_job_specs.md
deleted file mode 100644
index f151ae8afd..0000000000
--- a/docs/job_specs/perf_tests_job_specs.md
+++ /dev/null
@@ -1,141 +0,0 @@
-## Performance Tests Job Specifications
-
-## Scope
-
-Following FD.io CSIT test job specifications are provided in this note:
-
-- Select list of performance tests for daily trending and extensive per
- release test coverage (behaviour repeatibility verification, graphs,
- analytics and comparisons).
-- Full list of performance tests for per release results reporting.
-
-Next sections list test selection criteria for each group, with testbed
-environments listed in round brackets (...).
-
-## Select List Test Jobs
-
-### NICs
-
-- Primary: xxv710 (2n-skx, 3n-skx), xl710 (3n-hsw), x553 (3n-tsh).
-- Secondary: x710 (2n-skx, 3n-skx).
-
-### Test Suites
-
-- Primary: all forwarding baseline, all forwarding scale, some feature
- spot checks.
-- Secondary: some forwarding base, forwarding maximum scale.
-
-### Frame Sizes
-
-- 64B: ip4, ip4_tunnels, l2, vts, container_memif, vm_vhost.
-- 78B: ip6, ip6_tunnels, srv6.
-- imix: crypto, nfv_density.
-
-### Processor Cores
-
-- Cores: 1c, 2c, 4c.
-
-## Full List Test Jobs
-### NICs
-
-- Primary: xxv710 (2n-skx, 3n-skx), xl710 (3n-hsw), x553 (3n-tsh).
-- Secondary: x520 (3n-hsw), x710 (skx, hsw), vic1227 (3n-hsw), vic1385
- (3n-hsw).
-
-### Test Suites
-
-- Primary: all tests.
-- Secondary: some forwarding base, forwarding maximum scale.
-
-### Frame Sizes
-
-- 64B: ip4, ip4_tunnels, l2, vts, container_memif, vm_vhost, crypto.
-- 78B: ip6, ip6_tunnels, srv6.
-- imix: all including crypto and nfv_density.
-- 1518B: ip4, ip4_tunnels, ip6, ip6_tunnels, srv6, l2, vts,
- container_memif, vm_vhost, crypto.
-- 9000B: ip4, ip4_tunnels, ip6, ip6_tunnels, srv6, l2, vts,
- container_memif, vm_vhost, crypto.
- - no vic1227, no vic1385 due to lack of support for 9000B.
-
-### Processor Cores
-
- - Cores: 1c, 2c, 4c.
-
-## Test Job Definitions
-### Test Suite Allocation per Job
-
-In order to avoid multi-day jobs executing the tests, following is a
-simple approach to split tests across exclusive job executions:
-
-- Separate jobs per (testbed environment, nic model, test-directory)
-- Each job executes tests for:
- - All specified frame sizes.
- - All specified cores.
-
-### Report Jobs
-
-Patches defining RF Tag Selectors for each group are:
-
-- select-list: https://gerrit.fd.io/r/c/csit/+/21146
- - Execution frequency: 10 times for report.
-- full-list: https://gerrit.fd.io/r/c/csit/+/21438
- - Incomplete definition.
- - Execution frequency: Once for report.
-- nfv_density: https://gerrit.fd.io/r/c/csit/+/21361
- - Execution frequency: 5..10 times for report.
-- tcp: https://gerrit.fd.io/r/c/csit/+/21456
- - Execution frequency: 10 times for report.
-
-### Daily Trending Jobs
-
-Frequency of executing daily trending jobs differs between the
-development cycle and report generation cycle. In the latter case the
-frequency gets reduced in order to allocated more of a (limited)
-physical testbed resource to tests required for report and reduce the
-time required to complete data collection for report.
-
-- Daily tests
- - Development cycle:
- - Frequency: vpp select-list MRR tests twice a day.
- - Times (UTC): every day starting at 02:00 and 14:00.
- - Duration: jobs are monitored to last no longer than 12 hrs.
- - Report cycle:
- - Frequency: vpp select-list MRR tests once a day.
- - Times (UTC): every Monday and Thursday starting at 02:00.
- - Duration: jobs are monitored to last no longer than 12 hrs.
-- Weekly tests
- - Development cycle:
- - Frequency: dpdk tests and vpp select-list NDR/PDR (MLRsearch) tests once a week.
- - Times (UTC): every Sunday at 02:00.
- - Duration: jobs are monitored to last no longer than 24 hrs.
- - Report cycle:
- - Same as in development cycle.
-
-## Exceptions
-### Tests Failing Due to Known Issues
-
-- KernelVM: 9000B frames are failing
- - https://jira.fd.io/browse/CSIT-1532
-
-## TODOs
-
-- Add test types
- - mlrsearch
- - mrr
- - plrsearch
- - http/tcp
- - nfvdensity
- - vpp-ip4
- - vpp-ipsec
-
-- Analyse trending testbed load - PM, MK
- - 3x 3n-hsw
- - 2x 3n-skx
- - tunnel tests only
- - 4x 2n-skx
-
-- Future
- - Add weekly ndrpdr jobs and report-like comparisons to previous release
-
-## END OF DOCUMENT \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/2n-clx/dpdk-00.md b/docs/job_specs/report_coverage/2n-clx/dpdk-00.md
deleted file mode 120000
index fabcc46d63..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/dpdk-00.md
+++ /dev/null
@@ -1 +0,0 @@
-../../report_iterative/2n-clx/dpdk-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/2n-clx/ip4-00.md b/docs/job_specs/report_coverage/2n-clx/ip4-00.md
deleted file mode 100644
index a7407a96a6..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-00.md
+++ /dev/null
@@ -1,281 +0,0 @@
-# 2n-clx
-### tests 225
-### job hrs est. 12.2
-### job hrs real 12.2
-### test mins est. 3.25
-### test mins real 3.25
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-### mellanox-cx556a
-#### rdma-core
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/ip4-01.md b/docs/job_specs/report_coverage/2n-clx/ip4-01.md
deleted file mode 100644
index 2269e631a8..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-01.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 2n-clx
-### tests 54
-### job hrs est. 4.2
-### job hrs real 4.2
-### test mins est. 4.67
-### test mins real 4.67
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-#### dpdk-vfio-pci
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/ip4-02.md b/docs/job_specs/report_coverage/2n-clx/ip4-02.md
deleted file mode 100644
index d503299fea..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-02.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 2n-clx
-### tests 36
-### job hrs est. 2.8
-### job hrs real 2.8
-### test mins est. 4.69
-### test mins real 4.69
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/ip4-03.md b/docs/job_specs/report_coverage/2n-clx/ip4-03.md
deleted file mode 100644
index 6bfb3e052e..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-03.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 2n-clx
-### tests 36
-### job hrs est. 2.8
-### job hrs real 2.8
-### test mins est. 4.69
-### test mins real 4.69
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/ip4-04.md b/docs/job_specs/report_coverage/2n-clx/ip4-04.md
deleted file mode 100644
index 6094c32f10..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-04.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 2n-clx
-### tests 36
-### job hrs est. 2.8
-### job hrs real 2.8
-### test mins est. 4.69
-### test mins real 4.69
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/ip4-05.md b/docs/job_specs/report_coverage/2n-clx/ip4-05.md
deleted file mode 100644
index 99b86a959c..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-05.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# 2n-clx
-### tests 60
-### job hrs est. 4.1
-### job hrs real 4.1
-### test mins est. 4.1
-### test mins real 4.1
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4tcp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-##### ethip4tcp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-##### ethip4tcp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/ip4-06.md b/docs/job_specs/report_coverage/2n-clx/ip4-06.md
deleted file mode 100644
index 8412b1615a..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-06.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# 2n-clx
-### tests 60
-### job hrs est. 7.05
-### job hrs real 7.05
-### test mins est. 7.05
-### test mins real 7.05
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-##### ethip4udp-nat44ed-h1024-p63-s64512-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-##### ethip4udp-nat44ed-h4096-p63-s258048-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-##### ethip4udp-nat44ed-h16384-p63-s1032192-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-##### ethip4udp-nat44ed-h262144-p63-s16515072-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-##### ethip4udp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-##### ethip4udp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4udp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-##### ethip4udp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/ip4-07.md b/docs/job_specs/report_coverage/2n-clx/ip4-07.md
deleted file mode 100644
index 6782b20732..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-07.md
+++ /dev/null
@@ -1,136 +0,0 @@
-# 2n-clx
-### tests 33
-### job hrs est. 4.15
-### job hrs real 4.15
-### test mins est. 7.55
-### test mins real 7.55
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-##### ethip4udp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-##### ethip4udp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-##### ethip4udp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-##### ethip4udp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-##### ethip4udp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-##### ethip4udp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-##### ethip4udp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#### dpdk-vfio-pci
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/ip4tun-00.md b/docs/job_specs/report_coverage/2n-clx/ip4tun-00.md
deleted file mode 100644
index 9e3adec1e7..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4tun-00.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# 2n-clx
-### tests 54
-### job hrs est. 5,2
-### job hrs real x
-### test mins est. 5.78
-### test mins real x
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-##### ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-##### ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-##### ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-##### ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-##### ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/ip6-00.md b/docs/job_specs/report_coverage/2n-clx/ip6-00.md
deleted file mode 100644
index 69f8d2d0a3..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip6-00.md
+++ /dev/null
@@ -1,141 +0,0 @@
-# 2n-clx
-### tests 99
-### job hrs est. 6
-### job hrs real 6
-### test mins est. 3.64
-### test mins real 3.64
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-### mellanox-cx556a
-#### rdma-core
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/ip6-01.md b/docs/job_specs/report_coverage/2n-clx/ip6-01.md
deleted file mode 100644
index eddb6f8136..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip6-01.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# 2n-clx
-### tests 81
-### job hrs est. 4.87
-### job hrs real 4.87
-### test mins est. 3.61
-### test mins real 3.61
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### intel-xxv710
-#### avf
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### mellanox-cx556a
-#### rdma-core
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/l2-00.md b/docs/job_specs/report_coverage/2n-clx/l2-00.md
deleted file mode 100644
index de4173d181..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/l2-00.md
+++ /dev/null
@@ -1,221 +0,0 @@
-# 2n-clx
-### tests 171
-### job hrs est. 9.77
-### job hrs real 9.77
-### test mins est. 3.1
-### test mins real 3.1
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xxv710
-#### avf
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/l2-01.md b/docs/job_specs/report_coverage/2n-clx/l2-01.md
deleted file mode 100644
index c0eb1c6b57..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/l2-01.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# 2n-clx
-### tests 81
-### job hrs est. 4.5
-### job hrs real 4.5
-### test mins est. 3.33
-### test mins real 3.33
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-### intel-xxv710
-#### avf
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/lb-00.md b/docs/job_specs/report_coverage/2n-clx/lb-00.md
deleted file mode 100644
index c388d1e8a0..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/lb-00.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 2n-clx
-### tests 54
-### job hrs est. 3.4
-### job hrs real 3.4
-### test mins est. 3.75
-### test mins real 3.75
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-### intel-xxv710
-#### avf
-##### ethip4-loadbalancer-l3dsr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-##### ethip4-loadbalancer-maglev
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-##### ethip4-loadbalancer-nat4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-#### dpdk-vfio-pci
-##### ethip4-loadbalancer-l3dsr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-##### ethip4-loadbalancer-maglev
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-##### ethip4-loadbalancer-nat4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/memif-00.md b/docs/job_specs/report_coverage/2n-clx/memif-00.md
deleted file mode 100644
index 50adf084af..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/memif-00.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 2n-clx
-### tests 72
-### job hrs est. 6
-### job hrs real 6
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/vhost-00.md b/docs/job_specs/report_coverage/2n-clx/vhost-00.md
deleted file mode 100644
index 34f8195354..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/vhost-00.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 2n-clx
-### tests 108
-### job hrs est. 10.5
-### job hrs real 10.5
-### test mins est. 5.83
-### test mins real 5.83
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-#### dpdk-vfio-pci
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/vhost-01.md b/docs/job_specs/report_coverage/2n-clx/vhost-01.md
deleted file mode 100644
index f5438cbed0..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/vhost-01.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 2n-clx
-### tests 72
-### job hrs est. 6.9
-### job hrs real 6.9
-### test mins est. 5.73
-### test mins real 5.73
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-clx/vts-00.md b/docs/job_specs/report_coverage/2n-clx/vts-00.md
deleted file mode 100644
index 238e380980..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/vts-00.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 2n-clx
-### tests 54
-### job hrs est. 6
-### job hrs real 6
-### test mins est. 6.67
-### test mins real 6.67
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
diff --git a/docs/job_specs/report_coverage/2n-dnv/dpdk-00.md b/docs/job_specs/report_coverage/2n-dnv/dpdk-00.md
deleted file mode 120000
index 7ba1378d6f..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/dpdk-00.md
+++ /dev/null
@@ -1 +0,0 @@
-../../report_iterative/2n-dnv/dpdk-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/2n-dnv/ip4-00.md b/docs/job_specs/report_coverage/2n-dnv/ip4-00.md
deleted file mode 100644
index 857055b8f6..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/ip4-00.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# 2n-dnv
-### tests 72
-### job hrs est. 5.26
-### job hrs real 5.26
-### test mins est. 4.38
-### test mins real 4.38
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-dnv/ip4-01.md b/docs/job_specs/report_coverage/2n-dnv/ip4-01.md
deleted file mode 100644
index 549ee86591..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/ip4-01.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# 2n-dnv
-### tests 36
-### job hrs est. 2.63
-### job hrs real 2.63
-### test mins est. 4.38
-### test mins real 4.38
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-dnv/ip6-00.md b/docs/job_specs/report_coverage/2n-dnv/ip6-00.md
deleted file mode 100644
index 0113435d92..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/ip6-00.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# 2n-dnv
-### tests 36
-### job hrs est. 2.44
-### job hrs real 2.44
-### test mins est. 4.06
-### test mins real 4.06
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-dnv/ip6-01.md b/docs/job_specs/report_coverage/2n-dnv/ip6-01.md
deleted file mode 100644
index 145406d37d..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/ip6-01.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# 2n-dnv
-### tests 27
-### job hrs est. 2.25
-### job hrs real 2.25
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-dnv/l2-00.md b/docs/job_specs/report_coverage/2n-dnv/l2-00.md
deleted file mode 100644
index f98f53d77e..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/l2-00.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 2n-dnv
-### tests 45
-### job hrs est. 3.38
-### job hrs real 3.38
-### test mins est. 3.75
-### test mins real 3.75
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-dnv/l2-01.md b/docs/job_specs/report_coverage/2n-dnv/l2-01.md
deleted file mode 100644
index 88038aed4d..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/l2-01.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# 2n-dnv
-### tests 27
-### job hrs est. 2.25
-### job hrs real 2.25
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/dpdk-00.md b/docs/job_specs/report_coverage/2n-skx/dpdk-00.md
deleted file mode 120000
index b68462f51a..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/dpdk-00.md
+++ /dev/null
@@ -1 +0,0 @@
-../../report_iterative/2n-skx/dpdk-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/2n-skx/ip4-00.md b/docs/job_specs/report_coverage/2n-skx/ip4-00.md
deleted file mode 100644
index 3b004f9c9f..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-00.md
+++ /dev/null
@@ -1,249 +0,0 @@
-# 2n-skx
-### tests 198
-### job hrs est. 14
-### job hrs real 14
-### test mins est. 4.24
-### test mins real 4.24
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/ip4-01.md b/docs/job_specs/report_coverage/2n-skx/ip4-01.md
deleted file mode 100644
index dd8d2f50a5..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-01.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 2n-skx
-### tests 72
-### job hrs est. 5.25
-### job hrs real 5.25
-### test mins est. 4.38
-### test mins real 4.38
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-##### ethip4udp-snat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-snat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-snat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-snat44det-h1-p1-s1
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-snat44det-h1-p1-s1
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-snat44det-h1-p1-s1
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-snat44det-h1-p1-s1
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-snat44det-h1-p1-s1
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-snat44det-h1-p1-s1
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-snat44det-h1-p1-s1
-#### dpdk-vfio-pci
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-##### ethip4udp-snat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-snat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-snat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-snat44det-h1-p1-s1
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-snat44det-h1-p1-s1
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-snat44det-h1-p1-s1
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-snat44det-h1-p1-s1
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-snat44det-h1-p1-s1
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-snat44det-h1-p1-s1
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-snat44det-h1-p1-s1
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/ip4-02.md b/docs/job_specs/report_coverage/2n-skx/ip4-02.md
deleted file mode 100644
index 8e3c7c9145..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-02.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 2n-skx
-### tests 36
-### job hrs est. 3
-### job hrs real 3
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/ip4-03.md b/docs/job_specs/report_coverage/2n-skx/ip4-03.md
deleted file mode 100644
index 839a2c8e6e..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-03.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 2n-skx
-### tests 36
-### job hrs est. 2.5
-### job hrs real 2.5
-### test mins est. 4.17
-### test mins real 4.17
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/ip4-04.md b/docs/job_specs/report_coverage/2n-skx/ip4-04.md
deleted file mode 100644
index 1c874672a3..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-04.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 2n-skx
-### tests 36
-### job hrs est. 3
-### job hrs real 3
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/ip4-05.md b/docs/job_specs/report_coverage/2n-skx/ip4-05.md
deleted file mode 100644
index 9c39f85549..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-05.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# 2n-skx
-### tests 60
-### job hrs est. 3.85
-### job hrs real 3.85
-### test mins est. 3.85
-### test mins real 3.85
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4tcp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-##### ethip4tcp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-##### ethip4tcp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/ip4-06.md b/docs/job_specs/report_coverage/2n-skx/ip4-06.md
deleted file mode 100644
index b9c58c7149..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-06.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# 2n-skx
-### tests 60
-### job hrs est. 8.4
-### job hrs real 8.4
-### test mins est. 8.4
-### test mins real 8.4
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-##### ethip4udp-nat44ed-h1024-p63-s64512-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-##### ethip4udp-nat44ed-h4096-p63-s258048-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-##### ethip4udp-nat44ed-h16384-p63-s1032192-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-##### ethip4udp-nat44ed-h262144-p63-s16515072-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-##### ethip4udp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-##### ethip4udp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4udp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-##### ethip4udp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/ip4-07.md b/docs/job_specs/report_coverage/2n-skx/ip4-07.md
deleted file mode 100644
index fa78c40fec..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-07.md
+++ /dev/null
@@ -1,136 +0,0 @@
-# 2n-skx
-### tests 33
-### job hrs est. 3.55
-### job hrs real 3.55
-### test mins est. 6.45
-### test mins real 6.45
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-##### ethip4udp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-##### ethip4udp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-##### ethip4udp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-##### ethip4udp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-##### ethip4udp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-##### ethip4udp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-##### ethip4udp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#### dpdk-vfio-pci
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-#4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/ip4tun-00.md b/docs/job_specs/report_coverage/2n-skx/ip4tun-00.md
deleted file mode 100644
index 78f24a9cd0..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4tun-00.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# 2n-skx
-### tests 54
-### job hrs est. 5,2
-### job hrs real x
-### test mins est. 5.18
-### test mins real x
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-##### ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-##### ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-##### ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-##### ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-##### ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/ip6-00.md b/docs/job_specs/report_coverage/2n-skx/ip6-00.md
deleted file mode 100644
index cdc3a952cd..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip6-00.md
+++ /dev/null
@@ -1,129 +0,0 @@
-# 2n-skx
-### tests 90
-### job hrs est. 6.5
-### job hrs real 6.5
-### test mins est. 4.33
-### test mins real 4.33
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/ip6-01.md b/docs/job_specs/report_coverage/2n-skx/ip6-01.md
deleted file mode 100644
index 3b7d58f8f7..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip6-01.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# 2n-skx
-### tests 72
-### job hrs est. 4.75
-### job hrs real 4.75
-### test mins est. 3.96
-### test mins real 3.96
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### intel-xxv710
-#### avf
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/l2-00.md b/docs/job_specs/report_coverage/2n-skx/l2-00.md
deleted file mode 100644
index 94a76ecf66..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/l2-00.md
+++ /dev/null
@@ -1,189 +0,0 @@
-# 2n-skx
-### tests 144
-### job hrs est. 10
-### job hrs real 10
-### test mins est. 3.7
-### test mins real 3.7
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xxv710
-#### avf
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/l2-01.md b/docs/job_specs/report_coverage/2n-skx/l2-01.md
deleted file mode 100644
index a55fc19e99..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/l2-01.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# 2n-skx
-### tests 72
-### job hrs est. 4.75
-### job hrs real 4.75
-### test mins est. 3.96
-### test mins real 3.96
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-### intel-xxv710
-#### avf
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/lb-00.md b/docs/job_specs/report_coverage/2n-skx/lb-00.md
deleted file mode 100644
index ee39179e24..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/lb-00.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 2n-skx
-### tests 54
-### job hrs est. 3.75
-### job hrs real 3.75
-### test mins est. 4.17
-### test mins real 4.17
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-### intel-xxv710
-#### avf
-##### ethip4-loadbalancer-l3dsr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-##### ethip4-loadbalancer-maglev
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-##### ethip4-loadbalancer-nat4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-#### dpdk-vfio-pci
-##### ethip4-loadbalancer-l3dsr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-##### ethip4-loadbalancer-maglev
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-##### ethip4-loadbalancer-nat4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/memif-00.md b/docs/job_specs/report_coverage/2n-skx/memif-00.md
deleted file mode 100644
index 22f7909ad8..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/memif-00.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 2n-skx
-### tests 72
-### job hrs est. 7
-### job hrs real 7
-### test mins est. 5.83
-### test mins real 5.83
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/vhost-00.md b/docs/job_specs/report_coverage/2n-skx/vhost-00.md
deleted file mode 100644
index bb5bb8adf9..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/vhost-00.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 2n-skx
-### tests 108
-### job hrs est. 12.75
-### job hrs real 12.75
-### test mins est. 7.08
-### test mins real 7.08
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-#### dpdk-vfio-pci
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/vhost-01.md b/docs/job_specs/report_coverage/2n-skx/vhost-01.md
deleted file mode 100644
index e7b23e1e6a..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/vhost-01.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 2n-skx
-### tests 72
-### job hrs est. 7.5
-### job hrs real 7.5
-### test mins est. 6.25
-### test mins real 6.25
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-skx/vts-00.md b/docs/job_specs/report_coverage/2n-skx/vts-00.md
deleted file mode 100644
index 25fc457db9..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/vts-00.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 2n-skx
-### tests 54
-### job hrs est. 7.16
-### job hrs real 7.16
-### test mins est. 7.92
-### test mins real 7.92
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
diff --git a/docs/job_specs/report_coverage/2n-tx2/dpdk-00.md b/docs/job_specs/report_coverage/2n-tx2/dpdk-00.md
deleted file mode 120000
index f8d067bac8..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/dpdk-00.md
+++ /dev/null
@@ -1 +0,0 @@
-../../report_iterative/2n-tx2/dpdk-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/2n-tx2/ip4-00.md b/docs/job_specs/report_coverage/2n-tx2/ip4-00.md
deleted file mode 100644
index 3d862bfc6f..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-00.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# 2n-tx2
-### tests 96
-### job hrs est. 6.72
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/ip4-01.md b/docs/job_specs/report_coverage/2n-tx2/ip4-01.md
deleted file mode 100644
index 9518b4f10a..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-01.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 2n-tx2
-### tests 36
-### job hrs est. 2.52
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/ip4-02.md b/docs/job_specs/report_coverage/2n-tx2/ip4-02.md
deleted file mode 100644
index dc7a8480e9..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-02.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# 2n-tx2
-### tests 24
-### job hrs est. 1.68
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/ip4-03.md b/docs/job_specs/report_coverage/2n-tx2/ip4-03.md
deleted file mode 100644
index 4c7c60f54f..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-03.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# 2n-tx2
-### tests 24
-### job hrs est. 1.68
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/ip4-04.md b/docs/job_specs/report_coverage/2n-tx2/ip4-04.md
deleted file mode 100644
index 9b92f4be0c..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-04.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# 2n-tx2
-### tests 24
-### job hrs est. 1.68
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/ip4-05.md b/docs/job_specs/report_coverage/2n-tx2/ip4-05.md
deleted file mode 100644
index 771c94b9d9..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-05.md
+++ /dev/null
@@ -1,155 +0,0 @@
-# 2n-tx2
-### tests 30
-### job hrs est. 2.10
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-##### ethip4tcp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-##### ethip4tcp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/ip4-06.md b/docs/job_specs/report_coverage/2n-tx2/ip4-06.md
deleted file mode 100644
index 7646ec0c7e..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-06.md
+++ /dev/null
@@ -1,155 +0,0 @@
-# 2n-tx2
-### tests 30
-### job hrs est. 2.10
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-##### ethip4udp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-##### ethip4udp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-##### ethip4udp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-pps
-##### ethip4udp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h4096-p63-s258048-pps
-##### ethip4udp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-##### ethip4udp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-##### ethip4udp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-#4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/ip6-00.md b/docs/job_specs/report_coverage/2n-tx2/ip6-00.md
deleted file mode 100644
index 7c2a6547b3..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip6-00.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# 2n-tx2
-### tests 48
-### job hrs est. 3.36
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/ip6-01.md b/docs/job_specs/report_coverage/2n-tx2/ip6-01.md
deleted file mode 100644
index fe685277ee..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip6-01.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 2n-tx2
-### tests 36
-### job hrs est. 2.52
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/l2-00.md b/docs/job_specs/report_coverage/2n-tx2/l2-00.md
deleted file mode 100644
index 09ca3ec4dc..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/l2-00.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# 2n-tx2
-### tests 60
-### job hrs est. 4.20
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/l2-01.md b/docs/job_specs/report_coverage/2n-tx2/l2-01.md
deleted file mode 100644
index bb0e7feac8..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/l2-01.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 2n-tx2
-### tests 36
-### job hrs est. 2.52
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/l2-02.md b/docs/job_specs/report_coverage/2n-tx2/l2-02.md
deleted file mode 100644
index ed3e951b1d..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/l2-02.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# 2n-tx2
-### tests 24
-### job hrs est. 1.68
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-##### eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/l2-03.md b/docs/job_specs/report_coverage/2n-tx2/l2-03.md
deleted file mode 100644
index 5065810812..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/l2-03.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# 2n-tx2
-### tests 24
-### job hrs est. 1.68
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-##### eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-tx2/l2-04.md b/docs/job_specs/report_coverage/2n-tx2/l2-04.md
deleted file mode 100644
index f00e5f7f78..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/l2-04.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# 2n-tx2
-### tests 12
-### job hrs est. 0.84
-### job hrs real [No data available]
-### test mins est. 4.20
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/dpdk-00.md b/docs/job_specs/report_coverage/2n-zn2/dpdk-00.md
deleted file mode 100644
index f66aee1022..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/dpdk-00.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# 2n-zn2
-### tests 36
-### job hrs est. 2.5
-### job hrs real 2.5
-### test mins est. 3.13
-### test mins real 3.13
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_coverage/2n-zn2/ip4-00.md b/docs/job_specs/report_coverage/2n-zn2/ip4-00.md
deleted file mode 100644
index c7f24af54c..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-00.md
+++ /dev/null
@@ -1,281 +0,0 @@
-# 2n-zn2
-### tests 225
-### job hrs est. 12.2
-### job hrs real 12.2
-### test mins est. 3.25
-### test mins real 3.25
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-### mellanox-cx556a
-#### rdma-core
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/ip4-01.md b/docs/job_specs/report_coverage/2n-zn2/ip4-01.md
deleted file mode 100644
index 2b078b5c38..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-01.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 2n-zn2
-### tests 54
-### job hrs est. 5.26
-### job hrs real 5.26
-### test mins est. 3.94
-### test mins real 3.94
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-#### dpdk-vfio-pci
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/ip4-02.md b/docs/job_specs/report_coverage/2n-zn2/ip4-02.md
deleted file mode 100644
index 184217a802..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-02.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 2n-zn2
-### tests 36
-### job hrs est. 2.8
-### job hrs real 2.8
-### test mins est. 4.69
-### test mins real 4.69
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/ip4-03.md b/docs/job_specs/report_coverage/2n-zn2/ip4-03.md
deleted file mode 100644
index 84f18baa08..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-03.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 2n-zn2
-### tests 36
-### job hrs est. 2.8
-### job hrs real 2.8
-### test mins est. 4.69
-### test mins real 4.69
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/ip4-04.md b/docs/job_specs/report_coverage/2n-zn2/ip4-04.md
deleted file mode 100644
index 9e1b84d087..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-04.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 2n-zn2
-### tests 36
-### job hrs est. 2.8
-### job hrs real 2.8
-### test mins est. 4.69
-### test mins real 4.69
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/ip4-05.md b/docs/job_specs/report_coverage/2n-zn2/ip4-05.md
deleted file mode 100644
index c828817248..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-05.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 2n-zn2
-### tests 108
-### job hrs est. 9
-### job hrs real 9
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1-p63-s63
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#### dpdk-vfio-pci
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1-p63-s63
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/ip4tun-00.md b/docs/job_specs/report_coverage/2n-zn2/ip4tun-00.md
deleted file mode 100644
index 3f224fcfa2..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4tun-00.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# 2n-zn2
-### tests 54
-### job hrs est. 5,2
-### job hrs real x
-### test mins est. 5.78
-### test mins real x
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-##### ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-##### ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-##### ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-##### ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-##### ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/ip6-00.md b/docs/job_specs/report_coverage/2n-zn2/ip6-00.md
deleted file mode 100644
index 3ff88ac21a..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip6-00.md
+++ /dev/null
@@ -1,141 +0,0 @@
-# 2n-zn2
-### tests 99
-### job hrs est. 6
-### job hrs real 6
-### test mins est. 3.64
-### test mins real 3.64
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-### mellanox-cx556a
-#### rdma-core
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/ip6-01.md b/docs/job_specs/report_coverage/2n-zn2/ip6-01.md
deleted file mode 100644
index b009e8f8a8..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip6-01.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# 2n-zn2
-### tests 81
-### job hrs est. 4.87
-### job hrs real 4.87
-### test mins est. 3.61
-### test mins real 3.61
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### intel-xxv710
-#### avf
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### mellanox-cx556a
-#### rdma-core
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/l2-00.md b/docs/job_specs/report_coverage/2n-zn2/l2-00.md
deleted file mode 100644
index 565fadd36d..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/l2-00.md
+++ /dev/null
@@ -1,221 +0,0 @@
-# 2n-zn2
-### tests 171
-### job hrs est. 9.77
-### job hrs real 9.77
-### test mins est. 3.1
-### test mins real 3.1
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xxv710
-#### avf
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/l2-01.md b/docs/job_specs/report_coverage/2n-zn2/l2-01.md
deleted file mode 100644
index ae698b9792..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/l2-01.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# 2n-zn2
-### tests 81
-### job hrs est. 4.5
-### job hrs real 4.5
-### test mins est. 3.33
-### test mins real 3.33
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-### intel-xxv710
-#### avf
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/lb-00.md b/docs/job_specs/report_coverage/2n-zn2/lb-00.md
deleted file mode 100644
index 82793b4f12..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/lb-00.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 2n-zn2
-### tests 54
-### job hrs est. 3.4
-### job hrs real 3.4
-### test mins est. 3.75
-### test mins real 3.75
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-### intel-xxv710
-#### avf
-##### ethip4-loadbalancer-l3dsr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
-##### ethip4-loadbalancer-maglev
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
-##### ethip4-loadbalancer-nat4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
-#### dpdk-vfio-pci
-##### ethip4-loadbalancer-l3dsr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
-##### ethip4-loadbalancer-maglev
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
-##### ethip4-loadbalancer-nat4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/memif-00.md b/docs/job_specs/report_coverage/2n-zn2/memif-00.md
deleted file mode 100644
index 6a72fed9dc..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/memif-00.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 2n-zn2
-### tests 72
-### job hrs est. 6
-### job hrs real 6
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/vhost-00.md b/docs/job_specs/report_coverage/2n-zn2/vhost-00.md
deleted file mode 100644
index 853458405a..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/vhost-00.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 2n-zn2
-### tests 108
-### job hrs est. 10.5
-### job hrs real 10.5
-### test mins est. 5.83
-### test mins real 5.83
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-#### dpdk-vfio-pci
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/vhost-01.md b/docs/job_specs/report_coverage/2n-zn2/vhost-01.md
deleted file mode 100644
index 48d2adfc2f..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/vhost-01.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 2n-zn2
-### tests 72
-### job hrs est. 6.9
-### job hrs real 6.9
-### test mins est. 5.73
-### test mins real 5.73
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_coverage/2n-zn2/vts-00.md b/docs/job_specs/report_coverage/2n-zn2/vts-00.md
deleted file mode 100644
index dce1ffe526..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/vts-00.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 2n-zn2
-### tests 54
-### job hrs est. 6
-### job hrs real 6
-### test mins est. 6.67
-### test mins real 6.67
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
diff --git a/docs/job_specs/report_coverage/3n-dnv/crypto-00.md b/docs/job_specs/report_coverage/3n-dnv/crypto-00.md
deleted file mode 100644
index 3db2f73fa1..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/crypto-00.md
+++ /dev/null
@@ -1,169 +0,0 @@
-# 3n-dnv
-### tests 108
-### job hrs est. 11.07
-### job hrs real 11.07
-### test mins est. 6.15
-### test mins real 6.15
-## ./container_memif
-## ./crypto
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-dnv/crypto-01.md b/docs/job_specs/report_coverage/3n-dnv/crypto-01.md
deleted file mode 100644
index 51dceae133..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/crypto-01.md
+++ /dev/null
@@ -1,169 +0,0 @@
-# 3n-dnv
-### tests 108
-### job hrs est. 8.82
-### job hrs real 8.82
-### test mins est. 4.9
-### test mins real 4.9
-## ./container_memif
-## ./crypto
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-dnv/dpdk-00.md b/docs/job_specs/report_coverage/3n-dnv/dpdk-00.md
deleted file mode 120000
index 36caf76c0a..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/dpdk-00.md
+++ /dev/null
@@ -1 +0,0 @@
-../../report_iterative/3n-dnv/dpdk-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/3n-dnv/ip4-00.md b/docs/job_specs/report_coverage/3n-dnv/ip4-00.md
deleted file mode 100644
index 1ac3b7b9fe..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/ip4-00.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 3n-dnv
-### tests 45
-### job hrs est. 4.5
-### job hrs real 4.5
-### test mins est. 6
-### test mins real 6
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip4base
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-dnv/ip4-01.md b/docs/job_specs/report_coverage/3n-dnv/ip4-01.md
deleted file mode 100644
index b57d0f44d9..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/ip4-01.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# 3n-dnv
-### tests 36
-### job hrs est. 3.38
-### job hrs real 3.38
-### test mins est. 5.63
-### test mins real 5.63
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-dnv/ip4tun-00.md b/docs/job_specs/report_coverage/3n-dnv/ip4tun-00.md
deleted file mode 100644
index 72ed846c41..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/ip4tun-00.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 3n-dnv
-### tests 18
-### job hrs est. 1.7
-### job hrs real 1.7
-### test mins est. 5.63
-### test mins real 5.63
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-dnv/ip6-00.md b/docs/job_specs/report_coverage/3n-dnv/ip6-00.md
deleted file mode 100644
index 1e6893bfe6..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/ip6-00.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# 3n-dnv
-### tests 36
-### job hrs est. 3.38
-### job hrs real 3.38
-### test mins est. 5.63
-### test mins real 5.63
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-dnv/ip6-01.md b/docs/job_specs/report_coverage/3n-dnv/ip6-01.md
deleted file mode 100644
index 411ee804b4..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/ip6-01.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# 3n-dnv
-### tests 27
-### job hrs est. 3
-### job hrs real 3
-### test mins est. 6.67
-### test mins real 6.67
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-dnv/l2-00.md b/docs/job_specs/report_coverage/3n-dnv/l2-00.md
deleted file mode 100644
index 8a81a2808a..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/l2-00.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 3n-dnv
-### tests 45
-### job hrs est. 3.56
-### job hrs real 3.56
-### test mins est. 4.75
-### test mins real 4.75
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-dnv/l2-01.md b/docs/job_specs/report_coverage/3n-dnv/l2-01.md
deleted file mode 100644
index 338ccc4485..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/l2-01.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# 3n-dnv
-### tests 27
-### job hrs est. 2.25
-### job hrs real 2.25
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/crypto-00.md b/docs/job_specs/report_coverage/3n-hsw/crypto-00.md
deleted file mode 100644
index b6d1fcfad3..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/crypto-00.md
+++ /dev/null
@@ -1,193 +0,0 @@
-# 3n-hsw
-### tests 144
-### job hrs est. 10.5
-### job hrs real 10.5
-### test mins est. 4.38
-### test mins real 4.38
-## ./container_memif
-## ./crypto
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlhw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-##### ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha
-##### ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlhw-ip4base-policy-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes128gcm
-##### ethip4ipsec1tnlhw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-policy-aes256gcm
-##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/crypto-01.md b/docs/job_specs/report_coverage/3n-hsw/crypto-01.md
deleted file mode 100644
index 60c6b17004..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/crypto-01.md
+++ /dev/null
@@ -1,193 +0,0 @@
-# 3n-hsw
-### tests 144
-### job hrs est. 12.15
-### job hrs real 12.15
-### test mins est. 5.06
-### test mins real 5.06
-## ./container_memif
-## ./crypto
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlhw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128gcm
-##### ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha
-##### ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm
-##### ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/crypto-02.md b/docs/job_specs/report_coverage/3n-hsw/crypto-02.md
deleted file mode 100644
index 39845678f1..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/crypto-02.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# 3n-hsw
-### tests 48
-### job hrs est. 4.75
-### job hrs real 4.75
-### test mins est. 5.94
-### test mins real 5.94
-## ./container_memif
-## ./crypto
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/crypto-03.md b/docs/job_specs/report_coverage/3n-hsw/crypto-03.md
deleted file mode 100644
index d5e4fdc7c0..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/crypto-03.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# 3n-hsw
-### tests 48
-### job hrs est. 6.75
-### job hrs real 6.75
-### test mins est. 8.44
-### test mins real 8.44
-## ./container_memif
-## ./crypto
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/dpdk-00.md b/docs/job_specs/report_coverage/3n-hsw/dpdk-00.md
deleted file mode 120000
index 755659357f..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/dpdk-00.md
+++ /dev/null
@@ -1 +0,0 @@
-../../report_iterative/3n-hsw/dpdk-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4-00.md b/docs/job_specs/report_coverage/3n-hsw/ip4-00.md
deleted file mode 100644
index a30cf63d0f..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4-00.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# 3n-hsw
-### tests 87
-### job hrs est. 8
-### job hrs real 8
-### test mins est. 5.52
-### test mins real 5.52
-## ./container_memif
-## ./crypto
-## ./ip4
-### cisco-vic1227
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip4-ip4scale2m
-### cisco-vic1385
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip4-ip4scale2m
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-### intel-x710
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4-01.md b/docs/job_specs/report_coverage/3n-hsw/ip4-01.md
deleted file mode 100644
index f5c0ab2511..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4-01.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-hsw
-### tests 28
-### job hrs est. 2.5
-### job hrs real 2.5
-### test mins est. 5.36
-### test mins real 5.36
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4-02.md b/docs/job_specs/report_coverage/3n-hsw/ip4-02.md
deleted file mode 100644
index c16f17975d..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4-02.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 4
-### job hrs real 4
-### test mins est. 5.71
-### test mins real 5.71
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl1sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-##### ethip4udp-ip4base-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-##### ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4-03.md b/docs/job_specs/report_coverage/3n-hsw/ip4-03.md
deleted file mode 100644
index 8b34358b74..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4-03.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 4
-### job hrs real 4
-### test mins est. 5.72
-### test mins real 5.72
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl10sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-##### ethip4udp-ip4base-iacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-##### ethip4udp-ip4base-iacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-##### ethip4udp-ip4base-iacl10sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-##### ethip4udp-ip4base-iacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-##### ethip4udp-ip4base-iacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4-04.md b/docs/job_specs/report_coverage/3n-hsw/ip4-04.md
deleted file mode 100644
index 72964ef421..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4-04.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 4.5
-### job hrs real 4.5
-### test mins est. 6.43
-### test mins real 6.43
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl50sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-##### ethip4udp-ip4base-iacl50sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-iacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4-05.md b/docs/job_specs/report_coverage/3n-hsw/ip4-05.md
deleted file mode 100644
index f385140b8a..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4-05.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 4.1
-### job hrs real 4.1
-### test mins est. 5.83
-### test mins real 5.83
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl1sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-##### ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-##### ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-##### ethip4udp-ip4base-oacl1sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-##### ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-##### ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4-06.md b/docs/job_specs/report_coverage/3n-hsw/ip4-06.md
deleted file mode 100644
index 914742f150..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4-06.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 4.25
-### job hrs real 4.25
-### test mins est. 6.07
-### test mins real 6.07
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl10sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-##### ethip4udp-ip4base-oacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-##### ethip4udp-ip4base-oacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-##### ethip4udp-ip4base-oacl10sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-##### ethip4udp-ip4base-oacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-##### ethip4udp-ip4base-oacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4-07.md b/docs/job_specs/report_coverage/3n-hsw/ip4-07.md
deleted file mode 100644
index 690a145a05..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4-07.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 4.25
-### job hrs real 4.25
-### test mins est. 6.07
-### test mins real 6.07
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl50sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-##### ethip4udp-ip4base-oacl50sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4tun-00.md b/docs/job_specs/report_coverage/3n-hsw/ip4tun-00.md
deleted file mode 100644
index 94cc937579..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4tun-00.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# 3n-hsw
-### tests 14
-### job hrs est. 1.17
-### job hrs real 1.17
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4tun-01.md b/docs/job_specs/report_coverage/3n-hsw/ip4tun-01.md
deleted file mode 100644
index 8318c69e79..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4tun-01.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# 3n-hsw
-### tests 28
-### job hrs est. 2.5
-### job hrs real 2.5
-### test mins est. 5.31
-### test mins real 5.31
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-xl710
-#### dpdk-vfio-pci
-##### dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-##### dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-##### dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-##### dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip4tun-02.md b/docs/job_specs/report_coverage/3n-hsw/ip4tun-02.md
deleted file mode 100644
index 64239c111b..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip4tun-02.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# 3n-hsw
-### tests 14
-### job hrs est. 1.17
-### job hrs real 1.17
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4lispip4-ip4base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-##### ethip4lispip6-ip4base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip6-00.md b/docs/job_specs/report_coverage/3n-hsw/ip6-00.md
deleted file mode 100644
index 56a8691666..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip6-00.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# 3n-hsw
-### tests 54
-### job hrs est. 4.5
-### job hrs real 4.5
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### cisco-vic1227
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6base
-### cisco-vic1385
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6base
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-### intel-x710
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip6-01.md b/docs/job_specs/report_coverage/3n-hsw/ip6-01.md
deleted file mode 100644
index 2fc4f39048..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip6-01.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# 3n-hsw
-### tests 47
-### job hrs est. 4.4
-### job hrs real 4.4
-### test mins est. 5.62
-### test mins real 5.62
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### cisco-vic1227
-#### dpdk-vfio-pci
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND ethip6-ip6scale2m
-### cisco-vic1385
-#### dpdk-vfio-pci
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND ethip6-ip6scale2m
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
- 1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-### intel-x710
-#### dpdk-vfio-pci
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
- 1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
- 1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
- 1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
- 1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/ip6tun-00.md b/docs/job_specs/report_coverage/3n-hsw/ip6tun-00.md
deleted file mode 100644
index c9dca88f1e..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/ip6tun-00.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# 3n-hsw
-### tests 14
-### job hrs est. 0.78
-### job hrs real 0.78
-### test mins est. 3.33
-### test mins real 3.33
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6lispip4-ip6base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-##### ethip6lispip6-ip6base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-00.md b/docs/job_specs/report_coverage/3n-hsw/l2-00.md
deleted file mode 100644
index d13687f1bc..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-00.md
+++ /dev/null
@@ -1,167 +0,0 @@
-# 3n-hsw
-### tests 117
-### job hrs est. 9.9
-### job hrs real 9.9
-### test mins est. 5.08
-### test mins real 5.08
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### cisco-vic1227
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### cisco-vic1385
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-01.md b/docs/job_specs/report_coverage/3n-hsw/l2-01.md
deleted file mode 100644
index 2cc8987c41..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-01.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# 3n-hsw
-### tests 47
-### job hrs est. 3.77
-### job hrs real 3.77
-### test mins est. 4.81
-### test mins real 4.81
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### cisco-vic1227
-#### dpdk-vfio-pci
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND vic1227 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-### cisco-vic1385
-#### dpdk-vfio-pci
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND vic1385 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-02.md b/docs/job_specs/report_coverage/3n-hsw/l2-02.md
deleted file mode 100644
index 9daebcb285..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-02.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 3.75
-### job hrs real 3.75
-### test mins est. 5.36
-### test mins real 5.36
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-##### eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-##### eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-##### eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-##### eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-##### eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-03.md b/docs/job_specs/report_coverage/3n-hsw/l2-03.md
deleted file mode 100644
index e94cedd9dd..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-03.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 3.4
-### job hrs real 3.4
-### test mins est. 4.86
-### test mins real 4.86
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-##### eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-##### eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-##### eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-##### eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-##### eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-04.md b/docs/job_specs/report_coverage/3n-hsw/l2-04.md
deleted file mode 100644
index 890021b4ed..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-04.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 3.75
-### job hrs real 3.75
-### test mins est. 5.36
-### test mins real 5.36
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-##### eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-##### eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-##### eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-##### eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-05.md b/docs/job_specs/report_coverage/3n-hsw/l2-05.md
deleted file mode 100644
index 6bdb30e590..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-05.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 3.6
-### job hrs real 3.6
-### test mins est. 5.14
-### test mins real 5.14
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-##### eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-##### eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-##### eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-##### eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-##### eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-06.md b/docs/job_specs/report_coverage/3n-hsw/l2-06.md
deleted file mode 100644
index c16e675644..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-06.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 3.25
-### job hrs real 3.25
-### test mins est. 4.64
-### test mins real 4.64
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-##### eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-##### eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-##### eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-##### eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-##### eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-07.md b/docs/job_specs/report_coverage/3n-hsw/l2-07.md
deleted file mode 100644
index 55dbd5b63f..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-07.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 4.1
-### job hrs real 4.1
-### test mins est. 5.86
-### test mins real 5.86
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-##### eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-##### eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-##### eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-##### eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-##### eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-08.md b/docs/job_specs/report_coverage/3n-hsw/l2-08.md
deleted file mode 100644
index 150642a3ae..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-08.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-hsw
-### tests 21
-### job hrs est. 2
-### job hrs real 2
-### test mins est. 5.71
-### test mins real 5.71
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-09.md b/docs/job_specs/report_coverage/3n-hsw/l2-09.md
deleted file mode 100644
index b3f844117a..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-09.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-hsw
-### tests 21
-### job hrs est. 2.1
-### job hrs real 2.1
-### test mins est. 6
-### test mins real 6
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/l2-10.md b/docs/job_specs/report_coverage/3n-hsw/l2-10.md
deleted file mode 100644
index c8cc028fb9..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/l2-10.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-hsw
-### tests 21
-### job hrs est. 2.15
-### job hrs real 2.15
-### test mins est. 6.14
-### test mins real 6.14
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/memif-00.md b/docs/job_specs/report_coverage/3n-hsw/memif-00.md
deleted file mode 100644
index 7db8db1e11..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/memif-00.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# 3n-hsw
-### tests 35
-### job hrs est. 3.65
-### job hrs real 3.65
-### test mins est. 6.25
-### test mins real 6.25
-## ./container_memif
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/srv6-00.md b/docs/job_specs/report_coverage/3n-hsw/srv6-00.md
deleted file mode 100644
index 743bdc1477..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/srv6-00.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-hsw
-### tests 21
-### job hrs est. 1.6
-### job hrs real 1.6
-### test mins est. 4.58
-### test mins real 4.58
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/srv6-01.md b/docs/job_specs/report_coverage/3n-hsw/srv6-01.md
deleted file mode 100644
index 9c25e30c58..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/srv6-01.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-hsw
-### tests 21
-### job hrs est. 2.19
-### job hrs real 2.19
-### test mins est. 6.25
-### test mins real 6.25
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6srhip6-srv6proxy-dyn
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/vhost-00.md b/docs/job_specs/report_coverage/3n-hsw/vhost-00.md
deleted file mode 100644
index 06af6b4db0..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/vhost-00.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 5
-### job hrs real 5
-### test mins est. 7.14
-### test mins real 7.14
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/vhost-01.md b/docs/job_specs/report_coverage/3n-hsw/vhost-01.md
deleted file mode 100644
index 384687bda4..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/vhost-01.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# 3n-hsw
-### tests 42
-### job hrs est. 5.4
-### job hrs real 5.4
-### test mins est. 7.71
-### test mins real 7.71
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xl710
-#### dpdk-vfio-pci
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-hsw/vhost-02.md b/docs/job_specs/report_coverage/3n-hsw/vhost-02.md
deleted file mode 100644
index f342b4e131..0000000000
--- a/docs/job_specs/report_coverage/3n-hsw/vhost-02.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# 3n-hsw
-### tests 28
-### job hrs est. 4
-### job hrs real 4
-### test mins est. 8.57
-### test mins real 8.57
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xl710
-#### dpdk-vfio-pci
-##### 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/crypto-00.md b/docs/job_specs/report_coverage/3n-skx/crypto-00.md
deleted file mode 100644
index babf84b450..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/crypto-00.md
+++ /dev/null
@@ -1,214 +0,0 @@
-# 3n-skx
-### tests 156
-### job hrs est. 13
-### job hrs real 13
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-#### dpdk-vfio-pci
-##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/crypto-01.md b/docs/job_specs/report_coverage/3n-skx/crypto-01.md
deleted file mode 100644
index 87434698f3..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/crypto-01.md
+++ /dev/null
@@ -1,214 +0,0 @@
-# 3n-skx
-### tests 156
-### job hrs est. 17
-### job hrs real 17
-### test mins est. 6.54
-### test mins real 6.54
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-#### dpdk-vfio-pci
-##### ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/crypto-02.md b/docs/job_specs/report_coverage/3n-skx/crypto-02.md
deleted file mode 100644
index b4da6fca54..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/crypto-02.md
+++ /dev/null
@@ -1,130 +0,0 @@
-# 3n-skx
-### tests 88
-### job hrs est. 11
-### job hrs real 11
-### test mins est. 7.5
-### test mins real 7.5
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-#### dpdk-vfio-pci
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/crypto-03.md b/docs/job_specs/report_coverage/3n-skx/crypto-03.md
deleted file mode 100644
index aabd0bf5dc..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/crypto-03.md
+++ /dev/null
@@ -1,130 +0,0 @@
-# 3n-skx
-### tests 88
-### job hrs est. 15.4
-### job hrs real 15.4
-### test mins est. 10.5
-### test mins real 10.5
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-#### dpdk-vfio-pci
-##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-##### ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/dpdk-00.md b/docs/job_specs/report_coverage/3n-skx/dpdk-00.md
deleted file mode 120000
index df134c656b..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/dpdk-00.md
+++ /dev/null
@@ -1 +0,0 @@
-../../report_iterative/3n-skx/dpdk-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4-00.md b/docs/job_specs/report_coverage/3n-skx/ip4-00.md
deleted file mode 100644
index 3160bb14ca..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-00.md
+++ /dev/null
@@ -1,169 +0,0 @@
-# 3n-skx
-### tests 126
-### job hrs est. 9.7
-### job hrs real 9.7
-### test mins est. 4.62
-### test mins real 4.62
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4scale2m
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip4base
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4-01.md b/docs/job_specs/report_coverage/3n-skx/ip4-01.md
deleted file mode 100644
index 0a85a09416..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-01.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 3n-skx
-### tests 72
-### job hrs est. 6.75
-### job hrs real 6.75
-### test mins est. 5.63
-### test mins real 5.63
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
-#### dpdk-vfio-pci
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4-02.md b/docs/job_specs/report_coverage/3n-skx/ip4-02.md
deleted file mode 100644
index d80ad97e9f..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-02.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 12
-### job hrs real 12
-### test mins est. 6.67
-### test mins real 6.67
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-iacl1sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100flows
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-100kflows
-##### ethip4udp-ip4base-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100flows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
-##### ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-100kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl1sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-##### ethip4udp-ip4base-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-##### ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4-03.md b/docs/job_specs/report_coverage/3n-skx/ip4-03.md
deleted file mode 100644
index 2f6654a825..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-03.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 9.5
-### job hrs real 9.5
-### test mins est. 5.28
-### test mins real 5.28
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-iacl10sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100flows
-##### ethip4udp-ip4base-iacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
-##### ethip4udp-ip4base-iacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sf-100kflows
-##### ethip4udp-ip4base-iacl10sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100flows
-##### ethip4udp-ip4base-iacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
-##### ethip4udp-ip4base-iacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl10sl-100kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl10sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100flows
-##### ethip4udp-ip4base-iacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
-##### ethip4udp-ip4base-iacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-100kflows
-##### ethip4udp-ip4base-iacl10sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100flows
-##### ethip4udp-ip4base-iacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
-##### ethip4udp-ip4base-iacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4-04.md b/docs/job_specs/report_coverage/3n-skx/ip4-04.md
deleted file mode 100644
index aa9dac23ac..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-04.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 11.8
-### job hrs real 11.8
-### test mins est. 6.56
-### test mins real 6.56
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-iacl50sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100flows
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-100kflows
-##### ethip4udp-ip4base-iacl50sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100flows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-iacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-100kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl50sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100flows
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-100kflows
-##### ethip4udp-ip4base-iacl50sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100flows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-iacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4-05.md b/docs/job_specs/report_coverage/3n-skx/ip4-05.md
deleted file mode 100644
index 0f73d1abab..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-05.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 12
-### job hrs real 12
-### test mins est. 6.67
-### test mins real 6.67
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-oacl1sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100flows
-##### ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
-##### ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-100kflows
-##### ethip4udp-ip4base-oacl1sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100flows
-##### ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
-##### ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-100kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl1sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-##### ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-##### ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-##### ethip4udp-ip4base-oacl1sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-##### ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-##### ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4-06.md b/docs/job_specs/report_coverage/3n-skx/ip4-06.md
deleted file mode 100644
index feeeda4a5e..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-06.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 11.7
-### job hrs real 11.7
-### test mins est. 6.5
-### test mins real 6.5
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-oacl10sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100flows
-##### ethip4udp-ip4base-oacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
-##### ethip4udp-ip4base-oacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sf-100kflows
-##### ethip4udp-ip4base-oacl10sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100flows
-##### ethip4udp-ip4base-oacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
-##### ethip4udp-ip4base-oacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl10sl-100kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl10sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100flows
-##### ethip4udp-ip4base-oacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
-##### ethip4udp-ip4base-oacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-100kflows
-##### ethip4udp-ip4base-oacl10sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100flows
-##### ethip4udp-ip4base-oacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
-##### ethip4udp-ip4base-oacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4-07.md b/docs/job_specs/report_coverage/3n-skx/ip4-07.md
deleted file mode 100644
index c26f3ca99d..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-07.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 12
-### job hrs real 12
-### test mins est. 6.67
-### test mins real 6.67
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4udp-ip4base-oacl50sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100flows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-100kflows
-##### ethip4udp-ip4base-oacl50sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100flows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-100kflows
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl50sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100flows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-100kflows
-##### ethip4udp-ip4base-oacl50sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100flows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4tun-00.md b/docs/job_specs/report_coverage/3n-skx/ip4tun-00.md
deleted file mode 100644
index e9e667c6c6..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4tun-00.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 3
-### job hrs real 3
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4tun-01.md b/docs/job_specs/report_coverage/3n-skx/ip4tun-01.md
deleted file mode 100644
index 9eebc690bb..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4tun-01.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 3n-skx
-### tests 72
-### job hrs est. 6
-### job hrs real 6
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-##### dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-##### dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-##### dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-#### dpdk-vfio-pci
-##### dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-##### dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-##### dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-##### dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip4tun-02.md b/docs/job_specs/report_coverage/3n-skx/ip4tun-02.md
deleted file mode 100644
index 4ef87292b4..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4tun-02.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 4
-### job hrs real 4
-### test mins est. 6.67
-### test mins real 6.67
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4lispip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip4-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip4-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip4-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip4-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip4-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip4-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip4-ip4base
-##### ethip4lispip6-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip6-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip6-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip6-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip6-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip6-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip6-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip6-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip6-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4lispip6-ip4base
-#### dpdk-vfio-pci
-##### ethip4lispip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip4-ip4base
-##### ethip4lispip6-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4lispip6-ip4base
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip6-00.md b/docs/job_specs/report_coverage/3n-skx/ip6-00.md
deleted file mode 100644
index e17b15b88c..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip6-00.md
+++ /dev/null
@@ -1,129 +0,0 @@
-# 3n-skx
-### tests 90
-### job hrs est. 7
-### job hrs real 7
-### test mins est. 4.67
-### test mins real 4.67
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip6-01.md b/docs/job_specs/report_coverage/3n-skx/ip6-01.md
deleted file mode 100644
index efe06bd18f..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip6-01.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# 3n-skx
-### tests 72
-### job hrs est. 7
-### job hrs real 7
-### test mins est. 5.83
-### test mins real 5.83
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### intel-xxv710
-#### avf
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/ip6tun-00.md b/docs/job_specs/report_coverage/3n-skx/ip6tun-00.md
deleted file mode 100644
index a52cdfbe93..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip6tun-00.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 1.75
-### job hrs real 1.75
-### test mins est. 4.38
-### test mins real 4.38
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-### intel-xxv710
-#### avf
-##### ethip6lispip4-ip6base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip4-ip6base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip4-ip6base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip4-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip4-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip4-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip4-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip4-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip4-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip4-ip6base
-##### ethip6lispip6-ip6base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip6-ip6base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip6-ip6base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip6-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip6-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip6-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip6-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip6-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip6-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6lispip6-ip6base
-#### dpdk-vfio-pci
-##### ethip6lispip4-ip6base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip4-ip6base
-##### ethip6lispip6-ip6base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6lispip6-ip6base
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-00.md b/docs/job_specs/report_coverage/3n-skx/l2-00.md
deleted file mode 100644
index 14d6a57d7f..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-00.md
+++ /dev/null
@@ -1,189 +0,0 @@
-# 3n-skx
-### tests 144
-### job hrs est. 9
-### job hrs real 9
-### test mins est. 3.75
-### test mins real 3.75
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xxv710
-#### avf
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-01.md b/docs/job_specs/report_coverage/3n-skx/l2-01.md
deleted file mode 100644
index 727167388d..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-01.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# 3n-skx
-### tests 72
-### job hrs est. 5.1
-### job hrs real 5.1
-### test mins est. 4.25
-### test mins real 4.25
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-### intel-xxv710
-#### avf
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-02.md b/docs/job_specs/report_coverage/3n-skx/l2-02.md
deleted file mode 100644
index 38ab223ec9..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-02.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 10
-### job hrs real 10
-### test mins est. 5.56
-### test mins real 5.56
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100flows
-##### eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-##### eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-##### eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100flows
-##### eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-##### eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-##### eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-##### eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-##### eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-##### eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-##### eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-03.md b/docs/job_specs/report_coverage/3n-skx/l2-03.md
deleted file mode 100644
index 196e79b98d..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-03.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 10.5
-### job hrs real 10.5
-### test mins est. 5.83
-### test mins real 5.83
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100flows
-##### eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-##### eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-##### eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100flows
-##### eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-##### eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100flows
-##### eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
-##### eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-100kflows
-##### eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100flows
-##### eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
-##### eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-04.md b/docs/job_specs/report_coverage/3n-skx/l2-04.md
deleted file mode 100644
index ad26cf6f67..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-04.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 10.9
-### job hrs real 10.9
-### test mins est. 6.06
-### test mins real 6.06
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100flows
-##### eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-##### eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-##### eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100flows
-##### eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100flows
-##### eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-##### eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-100kflows
-##### eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100flows
-##### eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-05.md b/docs/job_specs/report_coverage/3n-skx/l2-05.md
deleted file mode 100644
index bd97737d4e..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-05.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 10.3
-### job hrs real 10.3
-### test mins est. 5.72
-### test mins real 5.72
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100flows
-##### eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-##### eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-##### eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100flows
-##### eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-##### eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-##### eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-##### eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-##### eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-##### eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-##### eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-06.md b/docs/job_specs/report_coverage/3n-skx/l2-06.md
deleted file mode 100644
index 0a7c065660..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-06.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 9.75
-### job hrs real 9.75
-### test mins est. 5.42
-### test mins real 5.42
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100flows
-##### eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-##### eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-##### eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100flows
-##### eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-##### eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100flows
-##### eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
-##### eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-100kflows
-##### eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100flows
-##### eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
-##### eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-07.md b/docs/job_specs/report_coverage/3n-skx/l2-07.md
deleted file mode 100644
index 7a2b8ea2d8..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-07.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 10.9
-### job hrs real 10.9
-### test mins est. 6.06
-### test mins real 6.06
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100flows
-##### eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-##### eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-##### eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100flows
-##### eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-##### eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100flows
-##### eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-##### eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-100kflows
-##### eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100flows
-##### eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-##### eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-08.md b/docs/job_specs/report_coverage/3n-skx/l2-08.md
deleted file mode 100644
index b17abf30c7..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-08.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 3n-skx
-### tests 54
-### job hrs est. 5.7
-### job hrs real 5.7
-### test mins est. 6.33
-### test mins real 6.33
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-09.md b/docs/job_specs/report_coverage/3n-skx/l2-09.md
deleted file mode 100644
index 0431986d4b..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-09.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 3n-skx
-### tests 54
-### job hrs est. 5.75
-### job hrs real 5.75
-### test mins est. 6.39
-### test mins real 6.39
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100flows
-##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/l2-10.md b/docs/job_specs/report_coverage/3n-skx/l2-10.md
deleted file mode 100644
index c3d1bdef5f..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-10.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 3n-skx
-### tests 54
-### job hrs est. 5.7
-### job hrs real 5.7
-### test mins est. 6.33
-### test mins real 6.33
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100flows
-##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/memif-00.md b/docs/job_specs/report_coverage/3n-skx/memif-00.md
deleted file mode 100644
index 817e0bf85e..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/memif-00.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# 3n-skx
-### tests 90
-### job hrs est. 11.67
-### job hrs real 11.67
-### test mins est. 7.78
-### test mins real 7.78
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/srv6-00.md b/docs/job_specs/report_coverage/3n-skx/srv6-00.md
deleted file mode 100644
index 804d8fff50..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/srv6-00.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 3n-skx
-### tests 54
-### job hrs est. 4.75
-### job hrs real 4.75
-### test mins est. 5.28
-### test mins real 5.28
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-xxv710
-#### avf
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-#### dpdk-vfio-pci
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/srv6-01.md b/docs/job_specs/report_coverage/3n-skx/srv6-01.md
deleted file mode 100644
index cc169aa4f6..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/srv6-01.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# 3n-skx
-### tests 54
-### job hrs est. 4.73
-### job hrs real [No data available]
-### test mins est. 5.25
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-xxv710
-#### avf
-##### ethip6srhip6-srv6proxy-dyn
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-srv6proxy-dyn
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-srv6proxy-dyn
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-srv6proxy-dyn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-srv6proxy-dyn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-srv6proxy-dyn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-srv6proxy-dyn
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-srv6proxy-dyn
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-srv6proxy-dyn
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-#### dpdk-vfio-pci
-##### ethip6srhip6-srv6proxy-dyn
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/vhost-00.md b/docs/job_specs/report_coverage/3n-skx/vhost-00.md
deleted file mode 100644
index 0a82deabb0..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/vhost-00.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 15
-### job hrs real [No data available]
-### test mins est. 8.33
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-#### dpdk-vfio-pci
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/vhost-01.md b/docs/job_specs/report_coverage/3n-skx/vhost-01.md
deleted file mode 100644
index 358948e23a..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/vhost-01.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 13.75
-### job hrs real 13.75
-### test mins est. 7.64
-### test mins real 7.64
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/vhost-02.md b/docs/job_specs/report_coverage/3n-skx/vhost-02.md
deleted file mode 100644
index beadf0ed3a..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/vhost-02.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 3n-skx
-### tests 72
-### job hrs est. 9.4
-### job hrs real 9.4
-### test mins est. 7.83
-### test mins real 7.83
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-skx/vhost-03.md b/docs/job_specs/report_coverage/3n-skx/vhost-03.md
deleted file mode 100644
index a266fdc5c9..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/vhost-03.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 3n-skx
-### tests 72
-### job hrs est. 8.5
-### job hrs real 8.5
-### test mins est. 7.08
-### test mins real 7.08
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-x710
-#### avf
-##### 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/dpdk-00.md b/docs/job_specs/report_coverage/3n-tsh/dpdk-00.md
deleted file mode 120000
index 538dd43d87..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/dpdk-00.md
+++ /dev/null
@@ -1 +0,0 @@
-../../report_iterative/3n-tsh/dpdk-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/3n-tsh/ip4-00.md b/docs/job_specs/report_coverage/3n-tsh/ip4-00.md
deleted file mode 100644
index 285175b347..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4-00.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# 3n-tsh
-### tests 60
-### job hrs est. 7.6
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/ip4-01.md b/docs/job_specs/report_coverage/3n-tsh/ip4-01.md
deleted file mode 100644
index 249e7f41a1..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4-01.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-tsh
-### tests 48
-### job hrs est. 6.1
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/ip4-02.md b/docs/job_specs/report_coverage/3n-tsh/ip4-02.md
deleted file mode 100644
index 46818969c6..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4-02.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# 3n-tsh
-### tests 72
-### job hrs est. 9.2
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-iacl1sf-100flows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100flows
-##### ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
-##### ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-100kflows
-##### ethip4udp-ip4base-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100flows
-##### ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
-##### ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/ip4-03.md b/docs/job_specs/report_coverage/3n-tsh/ip4-03.md
deleted file mode 100644
index a2bea27ffa..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4-03.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# 3n-tsh
-### tests 72
-### job hrs est. 9.2
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip4udp-ip4base-oacl1sf-100flows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100flows
-##### ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-##### ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-100kflows
-##### ethip4udp-ip4base-oacl1sl-100flows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100flows
-##### ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-##### ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-100kflows
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/ip4tun-00.md b/docs/job_specs/report_coverage/3n-tsh/ip4tun-00.md
deleted file mode 100644
index aec7f2d0c4..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4tun-00.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# 3n-tsh
-### tests 24
-### job hrs est. 3.1
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/ip4tun-01.md b/docs/job_specs/report_coverage/3n-tsh/ip4tun-01.md
deleted file mode 100644
index 848502d6a1..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4tun-01.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# 3n-tsh
-### tests 48
-### job hrs est. 6.1
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-##### dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan
-##### dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-##### dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/ip6-00.md b/docs/job_specs/report_coverage/3n-tsh/ip6-00.md
deleted file mode 100644
index ca26d9f6ab..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip6-00.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# 3n-tsh
-### tests 48
-### job hrs est. 6.1
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/ip6-01.md b/docs/job_specs/report_coverage/3n-tsh/ip6-01.md
deleted file mode 100644
index 8a213426f6..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip6-01.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-tsh
-### tests 36
-### job hrs est. 4.6
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/l2-00.md b/docs/job_specs/report_coverage/3n-tsh/l2-00.md
deleted file mode 100644
index 6cc8c26d23..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/l2-00.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# 3n-tsh
-### tests 60
-### job hrs est. 7.6
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/l2-01.md b/docs/job_specs/report_coverage/3n-tsh/l2-01.md
deleted file mode 100644
index cb3da03ca1..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/l2-01.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-tsh
-### tests 36
-### job hrs est. 4.6
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/l2-02.md b/docs/job_specs/report_coverage/3n-tsh/l2-02.md
deleted file mode 100644
index dfbbf2ad8e..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/l2-02.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# 3n-tsh
-### tests 72
-### job hrs est. 9.2
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100flows
-##### eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-##### eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-100kflows
-##### eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100flows
-##### eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-##### eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/l2-03.md b/docs/job_specs/report_coverage/3n-tsh/l2-03.md
deleted file mode 100644
index 34b0dbd234..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/l2-03.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# 3n-tsh
-### tests 72
-### job hrs est. 9.2
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100flows
-##### eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-##### eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-100kflows
-##### eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100flows
-##### eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-##### eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/l2-04.md b/docs/job_specs/report_coverage/3n-tsh/l2-04.md
deleted file mode 100644
index 9f9fc3566f..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/l2-04.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-hsw
-### tests 36
-### job hrs est. 4.6
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100flows
-##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-100kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/memif-00.md b/docs/job_specs/report_coverage/3n-tsh/memif-00.md
deleted file mode 100644
index 83c5cd468f..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/memif-00.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# 3n-hsw
-### tests 60
-### job hrs est. 7.6
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/srv6-00.md b/docs/job_specs/report_coverage/3n-tsh/srv6-00.md
deleted file mode 100644
index c57463bfc9..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/srv6-00.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-tsh
-### tests 36
-### job hrs est. 4.6
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/srv6-01.md b/docs/job_specs/report_coverage/3n-tsh/srv6-01.md
deleted file mode 100644
index 0ee6a86261..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/srv6-01.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-tsh
-### tests 36
-### job hrs est. 4.6
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip6srhip6-srv6proxy-dyn
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/vhost-00.md b/docs/job_specs/report_coverage/3n-tsh/vhost-00.md
deleted file mode 100644
index 71b9e7208d..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/vhost-00.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# 3n-tsh
-### tests 72
-### job hrs est. 9.2
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-## ./vts
diff --git a/docs/job_specs/report_coverage/3n-tsh/vhost-01.md b/docs/job_specs/report_coverage/3n-tsh/vhost-01.md
deleted file mode 100644
index 858cb63a57..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/vhost-01.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# 3n-tsh
-### tests 72
-### job hrs est. 9.2
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-clx/dpdk-mlr-00.md b/docs/job_specs/report_iterative/2n-clx/dpdk-mlr-00.md
deleted file mode 100644
index 0f3e947d2a..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/dpdk-mlr-00.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# 2n-clx
-### tests 36
-### job hrs est. 2.5
-### job hrs real 2.5
-### test mins est. 3.13
-### test mins real 3.13
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/2n-clx/dpdk-mrr-00.md b/docs/job_specs/report_iterative/2n-clx/dpdk-mrr-00.md
deleted file mode 100644
index 38509bcc12..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/dpdk-mrr-00.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 2n-clx
-### tests 12
-### job hrs est. 0.3
-### job hrs real [No data available]
-### test mins est. 1.6
-### test mins real [No data available]
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/2n-clx/nfv-density-mlr-00.md b/docs/job_specs/report_iterative/2n-clx/nfv-density-mlr-00.md
deleted file mode 100644
index 2975097125..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/nfv-density-mlr-00.md
+++ /dev/null
@@ -1,143 +0,0 @@
-# 2n-clx
-### tests 84
-### job hrs est. 10.1
-### job hrs real 10.1
-### test mins est. 7.21
-### test mins real 7.21
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-### intel-xxv710
-#### avf
-##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-## ./nfv_density/vm_vhost/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2vh-1vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-##### eth-l2bd-1ch-4vh-2vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-##### eth-l2bd-1ch-8vh-4vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-##### eth-l2bd-1ch-12vh-6vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-##### eth-l2bd-2ch-4vh-2vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-##### eth-l2bd-2ch-8vh-4vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-##### eth-l2bd-4ch-8vh-4vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-##### eth-l2bd-6ch-12vh-6vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-### intel-xxv710
-#### avf
-##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-clx/nfv-density-mrr-00.md b/docs/job_specs/report_iterative/2n-clx/nfv-density-mrr-00.md
deleted file mode 100644
index 6fb3b46a92..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/nfv-density-mrr-00.md
+++ /dev/null
@@ -1,143 +0,0 @@
-# 2n-clx
-### tests 84
-### job hrs est. 5
-### job hrs real 5
-### test mins est. 3.57
-### test mins real 3.57
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-### intel-xxv710
-#### avf
-##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-## ./nfv_density/vm_vhost/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2vh-1vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-##### eth-l2bd-1ch-4vh-2vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-##### eth-l2bd-1ch-8vh-4vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-##### eth-l2bd-1ch-12vh-6vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-##### eth-l2bd-2ch-4vh-2vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-##### eth-l2bd-2ch-8vh-4vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-##### eth-l2bd-4ch-8vh-4vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-##### eth-l2bd-6ch-12vh-6vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-### intel-xxv710
-#### avf
-##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-clx/reconf-00.md b/docs/job_specs/report_iterative/2n-clx/reconf-00.md
deleted file mode 100644
index 449c8d9deb..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/reconf-00.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# 2n-clx
-### tests 12
-### job hrs est. 1.07
-### job hrs real 1.07
-### test mins est. 5.36
-### test mins real 5.36
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-### intel-xxv710
-#### avf
-##### dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-##### dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-##### dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-##### dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-clx/soak-00.md b/docs/job_specs/report_iterative/2n-clx/soak-00.md
deleted file mode 100644
index 6dd9788300..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/soak-00.md
+++ /dev/null
@@ -1,64 +0,0 @@
-
-# 2n-clx
-### tests 12
-### job hrs est. 6.25
-### job hrs real 6.25
-### test mins est. 31.25
-### test mins real 31.25
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND soak AND xxv710 AND drv_avf AND ethip4-ip4base
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-## ./ip4_tunnels
-## ./ip6
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND soak AND xxv710 AND drv_avf AND ethip6-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND soak AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-## ./ip6_tunnels
-## ./l2
-#### avf
-##### eth-l2xcbase
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2xcbase
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-# #### dpdk-vfio-pci
-# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-# 1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-# 1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-clx/vpp-mlr-00.md b/docs/job_specs/report_iterative/2n-clx/vpp-mlr-00.md
deleted file mode 100644
index c8ce568af1..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/vpp-mlr-00.md
+++ /dev/null
@@ -1,733 +0,0 @@
-# 2n-clx
-### tests 504
-### job hrs est. 48.55
-### job hrs real x
-### test mins est. 5.78
-### test mins real x
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-##### ethip4udp-nat44ed-h1024-p63-s64512-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-##### ethip4udp-nat44ed-h4096-p63-s258048-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-##### ethip4udp-nat44ed-h16384-p63-s1032192-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-##### ethip4udp-nat44ed-h262144-p63-s16515072-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-##### ethip4udp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-##### ethip4udp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4udp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-##### ethip4udp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-##### ethip4udp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-##### ethip4udp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-##### ethip4udp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-##### ethip4udp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-##### ethip4udp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-##### ethip4udp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-##### ethip4udp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4tcp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-##### ethip4tcp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-##### ethip4tcp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-### mellanox-cx556a
-#### rdma-core
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-##### ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-##### ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-##### ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-##### ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### mellanox-cx556a
-#### rdma-core
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
diff --git a/docs/job_specs/report_iterative/2n-clx/vpp-mrr-00.md b/docs/job_specs/report_iterative/2n-clx/vpp-mrr-00.md
deleted file mode 100644
index 5f6a29a747..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/vpp-mrr-00.md
+++ /dev/null
@@ -1,733 +0,0 @@
-# 2n-clx
-### tests 504
-### job hrs est. 11.84
-### job hrs real x
-### test mins est. 1.41
-### test mins real x
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-##### ethip4udp-nat44ed-h1024-p63-s64512-udir
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-##### ethip4udp-nat44ed-h4096-p63-s258048-udir
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-##### ethip4udp-nat44ed-h16384-p63-s1032192-udir
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-##### ethip4udp-nat44ed-h262144-p63-s16515072-udir
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-##### ethip4udp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-##### ethip4udp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4udp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-##### ethip4udp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-##### ethip4udp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-##### ethip4udp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-##### ethip4udp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-##### ethip4udp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-##### ethip4udp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-##### ethip4udp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-##### ethip4udp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4tcp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-##### ethip4tcp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-##### ethip4tcp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-### mellanox-cx556a
-#### rdma-core
-##### ethip4-ip4base
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-##### ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-##### ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-##### ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-##### ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### mellanox-cx556a
-#### rdma-core
-##### ethip6-ip6base
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
diff --git a/docs/job_specs/report_iterative/2n-dnv/dpdk-mlr-00.md b/docs/job_specs/report_iterative/2n-dnv/dpdk-mlr-00.md
deleted file mode 100644
index 86bd3e2bd8..0000000000
--- a/docs/job_specs/report_iterative/2n-dnv/dpdk-mlr-00.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# 2n-dnv
-### tests 18
-### job hrs est. 1.25
-### job hrs real 1.25
-### test mins est. 3.13
-### test mins real 3.13
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/2n-dnv/dpdk-mrr-00.md b/docs/job_specs/report_iterative/2n-dnv/dpdk-mrr-00.md
deleted file mode 100644
index 06be4fce50..0000000000
--- a/docs/job_specs/report_iterative/2n-dnv/dpdk-mrr-00.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# 2n-dnv
-### tests 6
-### job hrs est. 0.2
-### job hrs real xx.x
-### test mins est. 1.6
-### test mins real xx.x
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/2n-dnv/vpp-mlr-00.md b/docs/job_specs/report_iterative/2n-dnv/vpp-mlr-00.md
deleted file mode 100644
index 5c42d2e9ef..0000000000
--- a/docs/job_specs/report_iterative/2n-dnv/vpp-mlr-00.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# 2n-dnv
-### tests 24
-### job hrs est. 1
-### job hrs real 1
-### test mins est. 2.5
-### test mins real 2.5
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-## ./ip4_tunnels
-## ./ip6
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-## ./ip6_tunnels
-## ./l2
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./hoststack
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-dnv/vpp-mrr-00.md b/docs/job_specs/report_iterative/2n-dnv/vpp-mrr-00.md
deleted file mode 100644
index acbd770554..0000000000
--- a/docs/job_specs/report_iterative/2n-dnv/vpp-mrr-00.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# 2n-dnv
-### tests 24
-### job hrs est. 0.8
-### job hrs real 0.8
-### test mins est. 2.0
-### test mins real 2.0
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-## ./ip4_tunnels
-## ./ip6
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-## ./ip6_tunnels
-## ./l2
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./hoststack
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-skx/dpdk-mlr-00.md b/docs/job_specs/report_iterative/2n-skx/dpdk-mlr-00.md
deleted file mode 100644
index 957dcac07d..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/dpdk-mlr-00.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# 2n-skx
-### tests 36
-### job hrs est. 2.48
-### job hrs real 2.48
-### test mins est. 3.09
-### test mins real 3.09
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/2n-skx/dpdk-mrr-00.md b/docs/job_specs/report_iterative/2n-skx/dpdk-mrr-00.md
deleted file mode 100644
index b549d134b8..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/dpdk-mrr-00.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 2n-skx
-### tests 12
-### job hrs est. 0.3
-### job hrs real [No data available]
-### test mins est.1.6
-### test mins real [No data available]
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/2n-skx/nfv-density-mlr-00.md b/docs/job_specs/report_iterative/2n-skx/nfv-density-mlr-00.md
deleted file mode 100644
index de80ada75e..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/nfv-density-mlr-00.md
+++ /dev/null
@@ -1,143 +0,0 @@
-# 2n-skx
-### tests 84
-### job hrs est. 10.2
-### job hrs real 10.2
-### test mins est. 7.3
-### test mins real 7.3
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-### intel-xxv710
-#### avf
-##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-## ./nfv_density/vm_vhost/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2vh-1vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-##### eth-l2bd-1ch-4vh-2vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-##### eth-l2bd-1ch-8vh-4vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-##### eth-l2bd-1ch-12vh-6vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-##### eth-l2bd-2ch-4vh-2vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-##### eth-l2bd-2ch-8vh-4vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-##### eth-l2bd-4ch-8vh-4vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-##### eth-l2bd-6ch-12vh-6vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-### intel-xxv710
-#### avf
-##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-skx/nfv-density-mrr-00.md b/docs/job_specs/report_iterative/2n-skx/nfv-density-mrr-00.md
deleted file mode 100644
index 16ec824d3a..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/nfv-density-mrr-00.md
+++ /dev/null
@@ -1,143 +0,0 @@
-# 2n-skx
-### tests 84
-### job hrs est. 4.7
-### job hrs real 4.7
-### test mins est. 3.36
-### test mins real 3.36
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-### intel-xxv710
-#### avf
-##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-## ./nfv_density/vm_vhost/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2vh-1vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-##### eth-l2bd-1ch-4vh-2vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-##### eth-l2bd-1ch-8vh-4vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-##### eth-l2bd-1ch-12vh-6vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-##### eth-l2bd-2ch-4vh-2vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-##### eth-l2bd-2ch-8vh-4vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-##### eth-l2bd-4ch-8vh-4vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-##### eth-l2bd-6ch-12vh-6vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-### intel-xxv710
-#### avf
-##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-skx/reconf-00.md b/docs/job_specs/report_iterative/2n-skx/reconf-00.md
deleted file mode 100644
index 21fc105a2e..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/reconf-00.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 2n-skx
-### tests 18
-### job hrs est. 2
-### job hrs real 2
-### test mins est. 6.67
-### test mins real 6.67
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-### intel-xxv710
-#### avf
-##### dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-##### dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-##### dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-##### dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-##### dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd
-##### dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-skx/soak-00.md b/docs/job_specs/report_iterative/2n-skx/soak-00.md
deleted file mode 100644
index 1c99bc281d..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/soak-00.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# 2n-clx
-### tests 12
-### job hrs est. 6.5
-### job hrs real 6.5
-### test mins est. 32.5
-### test mins real 32.5
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND soak AND xxv710 AND drv_avf AND ethip4-ip4base
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-## ./ip4_tunnels
-## ./ip6
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND soak AND xxv710 AND drv_avf AND ethip6-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND soak AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-## ./ip6_tunnels
-## ./l2
-#### avf
-##### eth-l2xcbase
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2xcbase
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-# #### dpdk-vfio-pci
-# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-# 1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-# 1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-skx/vpp-mlr-00.md b/docs/job_specs/report_iterative/2n-skx/vpp-mlr-00.md
deleted file mode 100644
index 5055c57b11..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/vpp-mlr-00.md
+++ /dev/null
@@ -1,599 +0,0 @@
-# 2n-skx
-### tests 411
-### job hrs est. 39,46
-### job hrs real x
-### test mins est. 5.76
-### test mins real x
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-##### ethip4udp-nat44ed-h1024-p63-s64512-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-##### ethip4udp-nat44ed-h4096-p63-s258048-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-##### ethip4udp-nat44ed-h16384-p63-s1032192-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-##### ethip4udp-nat44ed-h262144-p63-s16515072-udir
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-##### ethip4udp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-##### ethip4udp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4udp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-##### ethip4udp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-##### ethip4udp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-##### ethip4udp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-##### ethip4udp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-##### ethip4udp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-##### ethip4udp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-##### ethip4udp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-##### ethip4udp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4tcp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-##### ethip4tcp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-##### ethip4tcp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-##### ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-##### ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-##### ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-##### ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2patch
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
diff --git a/docs/job_specs/report_iterative/2n-skx/vpp-mrr-00.md b/docs/job_specs/report_iterative/2n-skx/vpp-mrr-00.md
deleted file mode 100644
index f99df5af25..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/vpp-mrr-00.md
+++ /dev/null
@@ -1,599 +0,0 @@
-# 2n-skx
-### tests 411
-### job hrs est. 9.52
-### job hrs real x
-### test mins est. 1.39
-### test mins real x
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-##### ethip4udp-nat44ed-h1024-p63-s64512-udir
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
-##### ethip4udp-nat44ed-h4096-p63-s258048-udir
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-udir
-##### ethip4udp-nat44ed-h16384-p63-s1032192-udir
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
-##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
-##### ethip4udp-nat44ed-h262144-p63-s16515072-udir
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
-##### ethip4udp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
-##### ethip4udp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-cps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4udp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-pps
-##### ethip4udp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h4096-p63-s258048-pps
-##### ethip4udp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4udp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4udp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-pps
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
-##### ethip4udp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
-##### ethip4udp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
-##### ethip4udp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-pps
-##### ethip4udp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h4096-p63-s258048-pps
-##### ethip4udp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-pps
-##### ethip4udp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-pps
-##### ethip4udp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-pps
-##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-cps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
-##### ethip4tcp-nat44ed-h1024-p63-s64512-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-pps
-##### ethip4tcp-nat44ed-h4096-p63-s258048-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h4096-p63-s258048-pps
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h4096-p63-s258048-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
-##### ethip4tcp-ip4base-h1024-p63-s64512-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-pps
-##### ethip4tcp-ip4base-h4096-p63-s258048-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h4096-p63-s258048-pps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-pps
-##### ethip4tcp-ip4base-h65536-p63-s4128768-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-pps
-##### ethip4tcp-ip4base-h262144-p63-s16515072-pps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-pps
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-##### ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-##### ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-##### ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-##### ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2patch
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2patch
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2patch
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
diff --git a/docs/job_specs/report_iterative/2n-tx2/dpdk-mlr-00.md b/docs/job_specs/report_iterative/2n-tx2/dpdk-mlr-00.md
deleted file mode 100644
index 7df25967d7..0000000000
--- a/docs/job_specs/report_iterative/2n-tx2/dpdk-mlr-00.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# 2n-tx2
-### tests 24
-### job hrs est. 2.75
-### job hrs real 2.75
-### test mins est. 6.88
-### test mins real 6.88
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/2n-tx2/dpdk-mrr-00.md b/docs/job_specs/report_iterative/2n-tx2/dpdk-mrr-00.md
deleted file mode 100644
index a9d121eebf..0000000000
--- a/docs/job_specs/report_iterative/2n-tx2/dpdk-mrr-00.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# 2n-tx2
-### tests 6
-### job hrs est. 0.2
-### job hrs real [No data available]
-### test mins est. 1.6
-### test mins real [No data available]
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/2n-tx2/vpp-mlr-00.md b/docs/job_specs/report_iterative/2n-tx2/vpp-mlr-00.md
deleted file mode 100644
index d63b03e6b1..0000000000
--- a/docs/job_specs/report_iterative/2n-tx2/vpp-mlr-00.md
+++ /dev/null
@@ -1,145 +0,0 @@
-# 2n-tx2
-### tests 87
-### job hrs est. 6.09
-### job hrs real N/A
-### test mins est. 4.20
-### test mins real N/A
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-##### eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-##### eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-tx2/vpp-mrr-00.md b/docs/job_specs/report_iterative/2n-tx2/vpp-mrr-00.md
deleted file mode 100644
index 449eee7794..0000000000
--- a/docs/job_specs/report_iterative/2n-tx2/vpp-mrr-00.md
+++ /dev/null
@@ -1,145 +0,0 @@
-# 2n-tx2
-### tests 87
-### job hrs est. 1.10
-### job hrs real N/A
-### test mins est. 0.76
-### test mins real N/A
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-## ./ip4_tunnels
-## ./ip6
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-##### eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-##### eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-zn2/dpdk-mlr-00.md b/docs/job_specs/report_iterative/2n-zn2/dpdk-mlr-00.md
deleted file mode 100644
index f66aee1022..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/dpdk-mlr-00.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# 2n-zn2
-### tests 36
-### job hrs est. 2.5
-### job hrs real 2.5
-### test mins est. 3.13
-### test mins real 3.13
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/2n-zn2/dpdk-mrr-00.md b/docs/job_specs/report_iterative/2n-zn2/dpdk-mrr-00.md
deleted file mode 100644
index 71e900dda2..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/dpdk-mrr-00.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 2n-zn2
-### tests 12
-### job hrs est. 0.3
-### job hrs real [No data available]
-### test mins est. 1.6
-### test mins real [No data available]
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/2n-zn2/nfv-density-mlr-00.md b/docs/job_specs/report_iterative/2n-zn2/nfv-density-mlr-00.md
deleted file mode 100644
index 75c80247a9..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/nfv-density-mlr-00.md
+++ /dev/null
@@ -1,143 +0,0 @@
-# 2n-zn2
-### tests 84
-### job hrs est. 10.1
-### job hrs real 10.1
-### test mins est. 7.21
-### test mins real 7.21
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-### intel-xxv710
-#### avf
-##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-## ./nfv_density/vm_vhost/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2vh-1vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-##### eth-l2bd-1ch-4vh-2vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-##### eth-l2bd-1ch-8vh-4vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-##### eth-l2bd-1ch-12vh-6vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-##### eth-l2bd-2ch-4vh-2vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-##### eth-l2bd-2ch-8vh-4vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-##### eth-l2bd-4ch-8vh-4vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-##### eth-l2bd-6ch-12vh-6vm1t-vppip4
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-### intel-xxv710
-#### avf
-##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-zn2/nfv-density-mrr-00.md b/docs/job_specs/report_iterative/2n-zn2/nfv-density-mrr-00.md
deleted file mode 100644
index e20c13eb12..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/nfv-density-mrr-00.md
+++ /dev/null
@@ -1,143 +0,0 @@
-# 2n-zn2
-### tests 84
-### job hrs est. 4.4
-### job hrs real 4.4
-### test mins est. 3.14
-### test mins real 3.14
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
-##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
-##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
-##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
-##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-### intel-xxv710
-#### avf
-##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
-##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
-##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
-##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
-##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
-## ./nfv_density/vm_vhost/chain
-### intel-xxv710
-#### avf
-##### eth-l2bd-1ch-2vh-1vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
-##### eth-l2bd-1ch-4vh-2vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
-##### eth-l2bd-1ch-8vh-4vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
-##### eth-l2bd-1ch-12vh-6vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
-##### eth-l2bd-2ch-4vh-2vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
-##### eth-l2bd-2ch-8vh-4vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
-##### eth-l2bd-4ch-8vh-4vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
-##### eth-l2bd-6ch-12vh-6vm1t-vppip4
-1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-### intel-xxv710
-#### avf
-##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
-##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
-##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
-##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-zn2/reconf-00.md b/docs/job_specs/report_iterative/2n-zn2/reconf-00.md
deleted file mode 100644
index bb291cbdbb..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/reconf-00.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# 2n-zn2
-### tests 12
-### job hrs est. 1.07
-### job hrs real 1.07
-### test mins est. 5.36
-### test mins real 5.36
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-### intel-xxv710
-#### avf
-##### dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
-##### dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
-##### dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
-##### dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-zn2/soak-00.md b/docs/job_specs/report_iterative/2n-zn2/soak-00.md
deleted file mode 100644
index a8cafff05e..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/soak-00.md
+++ /dev/null
@@ -1,64 +0,0 @@
-
-# 2n-zn2
-### tests 12
-### job hrs est. 6.25
-### job hrs real 6.25
-### test mins est. 31.25
-### test mins real 31.25
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND soak AND xxv710 AND drv_avf AND ethip4-ip4base
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-## ./ip4_tunnels
-## ./ip6
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND soak AND xxv710 AND drv_avf AND ethip6-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND soak AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-## ./ip6_tunnels
-## ./l2
-#### avf
-##### eth-l2xcbase
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-#### dpdk-vfio-pci
-##### eth-l2xcbase
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2bdbasemaclrn
-1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-# #### dpdk-vfio-pci
-# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-# 1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-# 1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-zn2/vpp-mlr-00.md b/docs/job_specs/report_iterative/2n-zn2/vpp-mlr-00.md
deleted file mode 100644
index 4143d37967..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/vpp-mlr-00.md
+++ /dev/null
@@ -1,558 +0,0 @@
-# 2n-zn2
-### tests 372
-### job hrs est. 35,84
-### job hrs real x
-### test mins est. 5.78
-### test mins real x
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1-p63-s63
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-### mellanox-cx556a
-#### rdma-core
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-##### ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-##### ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-##### ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-##### ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### mellanox-cx556a
-#### rdma-core
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 114b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-
diff --git a/docs/job_specs/report_iterative/2n-zn2/vpp-mrr-00.md b/docs/job_specs/report_iterative/2n-zn2/vpp-mrr-00.md
deleted file mode 100644
index 297dfbc22a..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/vpp-mrr-00.md
+++ /dev/null
@@ -1,558 +0,0 @@
-# 2n-zn2
-### tests 372
-### job hrs est. 10.23
-### job hrs real x
-### test mins est. 1.65
-### test mins real x
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m-rnd
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1-p63-s63
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
-##### ethip4udp-nat44det-h16384-p63-s1032192
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
-##### ethip4udp-nat44det-h65536-p63-s4128758
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
-##### ethip4udp-nat44det-h262144-p63-s16515072
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p1-s1
-### mellanox-cx556a
-#### rdma-core
-##### ethip4-ip4base
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
-##### dot1q-ip4base
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
-##### ethip4udp-nat44det-h1-p1-s1
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1-p1-s1
-##### ethip4udp-nat44det-h1024-p63-s64512
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### ethip4--ethip4udpgeneve-1tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
-##### ethip4--ethip4udpgeneve-4tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
-##### ethip4--ethip4udpgeneve-16tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
-##### ethip4--ethip4udpgeneve-64tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
-##### ethip4--ethip4udpgeneve-256tun-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND x710 AND drv_vfio_pci AND ethip6-ip6base
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-### mellanox-cx556a
-#### rdma-core
-##### ethip6-ip6base
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND dot1q-ip6base
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-### mellanox-cx556a
-#### rdma-core
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
-### intel-xxv710
-#### avf
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-1c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-2c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-4c AND 114b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm
-
diff --git a/docs/job_specs/report_iterative/3n-dnv/dpdk-mlr-00.md b/docs/job_specs/report_iterative/3n-dnv/dpdk-mlr-00.md
deleted file mode 100644
index 3f2e7ee5e9..0000000000
--- a/docs/job_specs/report_iterative/3n-dnv/dpdk-mlr-00.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# 3n-dnv
-### tests 18
-### job hrs est. 1.72
-### job hrs real 1.72
-### test mins est. 4.31
-### test mins real 4.31
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/3n-dnv/dpdk-mrr-00.md b/docs/job_specs/report_iterative/3n-dnv/dpdk-mrr-00.md
deleted file mode 100644
index fa78396603..0000000000
--- a/docs/job_specs/report_iterative/3n-dnv/dpdk-mrr-00.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# 3n-dnv
-### tests 6
-### job hrs est. 0.2
-### job hrs real xx.x
-### test mins est. 1.6
-### test mins real xx.x
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/3n-dnv/vpp-mlr-00.md b/docs/job_specs/report_iterative/3n-dnv/vpp-mlr-00.md
deleted file mode 100644
index a6de87aec2..0000000000
--- a/docs/job_specs/report_iterative/3n-dnv/vpp-mlr-00.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# 3n-dnv
-### tests 54
-### job hrs est. 5.4
-### job hrs real 5.4
-### test mins est. 6
-### test mins real 6
-## ./container_memif
-## ./crypto
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-## ./ip4_tunnels
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-## ./ip6_tunnels
-## ./l2
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./hoststack
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-dnv/vpp-mrr-00.md b/docs/job_specs/report_iterative/3n-dnv/vpp-mrr-00.md
deleted file mode 100644
index 613a648f62..0000000000
--- a/docs/job_specs/report_iterative/3n-dnv/vpp-mrr-00.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# 3n-dnv
-### tests 54
-### job hrs est. 2.5
-### job hrs real 2.5
-### test mins est. 2.5
-### test mins real 2.5
-## ./container_memif
-## ./crypto
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k
-## ./ip4_tunnels
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k
-## ./ip6_tunnels
-## ./l2
-### intel-x553
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./hoststack
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-hsw/dpdk-mlr-00.md b/docs/job_specs/report_iterative/3n-hsw/dpdk-mlr-00.md
deleted file mode 100644
index 22be425e67..0000000000
--- a/docs/job_specs/report_iterative/3n-hsw/dpdk-mlr-00.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# 3n-hsw
-### tests 28
-### job hrs est. 1.75
-### job hrs real 1.75
-### test mins est. 3.75
-### test mins real 3.75
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/3n-hsw/dpdk-mrr-00.md b/docs/job_specs/report_iterative/3n-hsw/dpdk-mrr-00.md
deleted file mode 100644
index 89883427b4..0000000000
--- a/docs/job_specs/report_iterative/3n-hsw/dpdk-mrr-00.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 3n-hsw
-### tests 12
-### job hrs est. 0.3
-### job hrs real [No data available]
-### test mins est. 1.6
-### test mins real [No data available]
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/3n-hsw/hoststack-00.md b/docs/job_specs/report_iterative/3n-hsw/hoststack-00.md
deleted file mode 100644
index 870698f27d..0000000000
--- a/docs/job_specs/report_iterative/3n-hsw/hoststack-00.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# 3n-hsw
-### tests 8
-### job hrs est. 0.25
-### job hrs real 0.25
-### test mins est. 1.88
-### test mins real 1.88
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./hoststack
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-ip4tcpbase-ldpreload-iperf3
-1c AND 1460b AND bps AND xl710 AND drv_vfio_pci AND eth-ip4tcpbase-ldpreload-iperf3
-##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
-1c AND 1460b AND bps AND xl710 AND drv_vfio_pci AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
-##### eth-ip4tcpbase-nsim-ldpreload-iperf3
-1c AND 1460b AND bps AND xl710 AND drv_vfio_pci AND eth-ip4tcpbase-nsim-ldpreload-iperf3
-##### eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3
-1c AND 1460b AND bps AND xl710 AND drv_vfio_pci AND eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3
-##### eth-ip4udpquicbase-vppecho
-1c AND 1280b AND bps AND xl710 AND drv_vfio_pci AND eth-ip4udpquicbase-vppecho
-##### eth-ip4udpquicscale1cl10s-vppecho
-1c AND 1280b AND bps AND xl710 AND drv_vfio_pci AND eth-ip4udpquicscale1cl10s-vppecho
-##### eth-ip4udpquicscale10cl1s-vppecho
-1c AND 1280b AND bps AND xl710 AND drv_vfio_pci AND eth-ip4udpquicscale10cl1s-vppecho
-##### eth-ip4udpquicscale10cl10s-vppecho
-1c AND 1280b AND bps AND xl710 AND drv_vfio_pci AND eth-ip4udpquicscale10cl10s-vppecho
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-hsw/reconf-00.md b/docs/job_specs/report_iterative/3n-hsw/reconf-00.md
deleted file mode 100644
index ffc7fff780..0000000000
--- a/docs/job_specs/report_iterative/3n-hsw/reconf-00.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# 3n-hsw
-### tests 36
-### job hrs est. 4?
-### job hrs real ?
-### test mins est. 6.67
-### test mins real ?
-## ./container_memif
-## ./crypto
-### intel-xl710
-#### dpdk-vfio-pci
-##### 1tnl
-###### ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-###### ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-###### ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm
-###### ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm
-##### 1000tnl
-###### ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-###### ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-###### ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm
-###### ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm
-##### 60000tnl
-###### ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-###### ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-###### ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm
-###### ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm
-1c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm
-2c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm
-4c AND 64b AND reconf AND xl710 AND drv_vfio_pci AND ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-hsw/vpp-mlr-00.md b/docs/job_specs/report_iterative/3n-hsw/vpp-mlr-00.md
deleted file mode 100644
index 9aca11133a..0000000000
--- a/docs/job_specs/report_iterative/3n-hsw/vpp-mlr-00.md
+++ /dev/null
@@ -1,231 +0,0 @@
-# 3n-hsw
-### tests 150
-### job hrs est. 14.83
-### job hrs real 14.83
-### test mins est. 5.93
-### test mins real 5.93
-#
-# Tests with avf driver are not executed on 3n-hsw systems as it requires
-# enabling of SoftIOMMU thats quite difficult there.
-#
-## ./container_memif
-## ./crypto
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-## ./ip4_tunnels
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-##### ethip6srhip6-ip6base-srv6proxy-dyn
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-## ./tcp
-## ./vm_vhost
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-hsw/vpp-mrr-00.md b/docs/job_specs/report_iterative/3n-hsw/vpp-mrr-00.md
deleted file mode 100644
index f43abcf3f1..0000000000
--- a/docs/job_specs/report_iterative/3n-hsw/vpp-mrr-00.md
+++ /dev/null
@@ -1,231 +0,0 @@
-# 3n-hsw
-### tests 150
-### job hrs est. 5.6
-### job hrs real 5.6
-### test mins est. 2.24
-### test mins real 2.24
-#
-# Tests with avf driver are not executed on 3n-hsw systems as it requires
-# enabling of SoftIOMMU thats quite difficult there.
-#
-## ./container_memif
-## ./crypto
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip4base
-## ./ip4_tunnels
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-ip6base
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-xl710
-#### dpdk-vfio-pci
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-##### ethip6srhip6-ip6base-srv6proxy-dyn
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-## ./tcp
-## ./vm_vhost
-### intel-xl710
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-skx/dpdk-mlr-00.md b/docs/job_specs/report_iterative/3n-skx/dpdk-mlr-00.md
deleted file mode 100644
index 161ade0912..0000000000
--- a/docs/job_specs/report_iterative/3n-skx/dpdk-mlr-00.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 3
-### job hrs real 3
-### test mins est. 3.75
-### test mins real 3.75
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/3n-skx/dpdk-mrr-00.md b/docs/job_specs/report_iterative/3n-skx/dpdk-mrr-00.md
deleted file mode 100644
index 033facb975..0000000000
--- a/docs/job_specs/report_iterative/3n-skx/dpdk-mrr-00.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 3n-skx
-### tests 12
-### job hrs est. 0.3
-### job hrs real [No data available]
-### test mins est. 1.6
-### test mins real [No data available]
-### intel-x710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-### intel-xxv710
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/3n-skx/nfv-density-00.md b/docs/job_specs/report_iterative/3n-skx/nfv-density-00.md
deleted file mode 100644
index 218c28ac3b..0000000000
--- a/docs/job_specs/report_iterative/3n-skx/nfv-density-00.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# 3n-skx
-### tests 30
-### job hrs est. 3.8
-### job hrs real [No data available]
-### test mins est. 7.6
-### test mins real [No data available]
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec - currently work only with DPDK
-### intel-xxv710
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-##### ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
-##### ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
-##### ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
-##### ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-## ./tcp
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-skx/vpp-mlr-00.md b/docs/job_specs/report_iterative/3n-skx/vpp-mlr-00.md
deleted file mode 100644
index 6d82003bf9..0000000000
--- a/docs/job_specs/report_iterative/3n-skx/vpp-mlr-00.md
+++ /dev/null
@@ -1,434 +0,0 @@
-# 3n-skx
-### tests 288
-### job hrs est. 30.62
-### job hrs real 30.62
-### test mins est. 6.38
-### test mins real 6.38
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-### intel-xxv710
-#### avf
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND ethip4-ip4scale2m
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip4base
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-##### dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec - currently work only with DPDK
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-xxv710
-#### avf
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-##### ethip6srhip6-ip6base-srv6proxy-dyn
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-#### dpdk-vfio-pci
-## ./tcp
-## ./vm_vhost
-### intel-x710
-#### avf
-##### 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-### intel-xxv710
-#### avf
-##### 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-skx/vpp-mrr-00.md b/docs/job_specs/report_iterative/3n-skx/vpp-mrr-00.md
deleted file mode 100644
index 5c727c8a75..0000000000
--- a/docs/job_specs/report_iterative/3n-skx/vpp-mrr-00.md
+++ /dev/null
@@ -1,434 +0,0 @@
-# 3n-skx
-### tests 288
-### job hrs est. 13.8
-### job hrs real 13.8
-### test mins est. 2.88
-### test mins real 2.88
-## ./container_memif
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1lxc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1lxc
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-### intel-xxv710
-#### avf
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-### intel-x710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND x710 AND drv_avf AND ethip4-ip4scale2m
-### intel-xxv710
-#### avf
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-ip4base
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-##### dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2xcbase
-#### dpdk-vfio-pci
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-### intel-x710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND x710 AND drv_avf AND ethip6-ip6scale2m
-#### dpdk-vfio-pci
-### intel-xxv710
-#### avf
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND dot1q-ip6base
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
-## ./ip6_tunnels
-## ./l2
-### intel-x710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2patch
-2c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2patch
-4c AND 64b AND mrr AND x710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-### intel-xxv710
-#### avf
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec - currently work only with DPDK
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-xxv710
-#### avf
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-##### ethip6srhip6-ip6base-srv6proxy-dyn
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
-#### dpdk-vfio-pci
-## ./tcp
-## ./vm_vhost
-### intel-x710
-#### avf
-##### 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND x710 AND drv_avf AND 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-### intel-xxv710
-#### avf
-##### 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND 1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-tsh/dpdk-mlr-00.md b/docs/job_specs/report_iterative/3n-tsh/dpdk-mlr-00.md
deleted file mode 100644
index 132c2c1373..0000000000
--- a/docs/job_specs/report_iterative/3n-tsh/dpdk-mlr-00.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# 3n-tsh
-### tests 24
-### job hrs est. 2.75
-### job hrs real 2.75
-### test mins est. 6.88
-### test mins real 6.88
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/3n-tsh/dpdk-mrr-00.md b/docs/job_specs/report_iterative/3n-tsh/dpdk-mrr-00.md
deleted file mode 100644
index b544f35807..0000000000
--- a/docs/job_specs/report_iterative/3n-tsh/dpdk-mrr-00.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# 3n-tsh
-### tests 6
-### job hrs est. 0.2
-### job hrs real [No data available]
-### test mins est. 1.6
-### test mins real [No data available]
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2xcbase-testpmd
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
-##### ethip4-ip4base-l3fwd
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/docs/job_specs/report_iterative/3n-tsh/vpp-mlr-00.md b/docs/job_specs/report_iterative/3n-tsh/vpp-mlr-00.md
deleted file mode 100644
index ce570f27bc..0000000000
--- a/docs/job_specs/report_iterative/3n-tsh/vpp-mlr-00.md
+++ /dev/null
@@ -1,297 +0,0 @@
-# 3n-tsh
-### tests 201
-### job hrs est. 37.62
-### job hrs real 37.62
-### test mins est. 11.23
-### test mins real 11.23
-## ./container_memif
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1lxc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-## ./ip4_tunnels
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-##### dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-## ./ip6_tunnels
-## ./l2
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-##### eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-##### eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-##### ethip6srhip6-ip6base-srv6proxy-dyn
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-## ./tcp
-## ./vm_vhost
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-tsh/vpp-mrr-00.md b/docs/job_specs/report_iterative/3n-tsh/vpp-mrr-00.md
deleted file mode 100644
index 980cfcdb48..0000000000
--- a/docs/job_specs/report_iterative/3n-tsh/vpp-mrr-00.md
+++ /dev/null
@@ -1,297 +0,0 @@
-# 3n-tsh
-### tests 198
-### job hrs est. 22.3
-### job hrs real 22.3
-### test mins est. 6.76
-### test mins real 6.76
-## ./container_memif
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2memif-1lxc
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
-##### dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1dcr
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
-##### eth-l2xcbase-eth-2memif-1lxc
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
-##### ethip4-ip4base-eth-2memif-1dcr
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
-## ./crypto
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-## ./ip4
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip4-ip4base
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
-##### dot1q-ip4base
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-ip4base
-##### ethip4udp-ip4base-iacl50sf-10kflows
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
-##### ethip4udp-ip4base-iacl50sl-10kflows
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
-##### ethip4udp-ip4base-oacl50sf-10kflows
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
-##### ethip4udp-ip4base-oacl50sl-10kflows
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
-## ./ip4_tunnels
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
-##### dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-##### ethip4vxlan-l2bdbasemaclrn
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip6-ip6base
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
-##### dot1q-ip6base
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-ip6base
-## ./ip6_tunnels
-## ./l2
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-##### dot1q-l2bdbasemaclrn
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
-##### dot1q-l2xcbase
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
-##### eth-l2bdbasemaclrn-iacl50sf-10kflows
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
-##### eth-l2bdbasemaclrn-iacl50sl-10kflows
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-##### eth-l2bdbasemaclrn-oacl50sf-10kflows
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
-##### eth-l2bdbasemaclrn-oacl50sl-10kflows
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
-## ./lb
-## ./nfv_density/dcr_memif/chain
-## ./nfv_density/dcr_memif/chain_ipsec
-## ./nfv_density/dcr_memif/pipeline
-## ./nfv_density/vm_vhost/chain
-## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
-## ./srv6
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### ethip6ip6-ip6base-srv6enc1sid
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-##### ethip6srhip6-ip6base-srv6enc2sids
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-##### ethip6srhip6-ip6base-srv6proxy-dyn
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
-##### ethip6srhip6-ip6base-srv6proxy-masq
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-##### ethip6srhip6-ip6base-srv6proxy-stat
-1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-## ./tcp
-## ./vm_vhost
-### intel-x520-da2
-#### dpdk-vfio-pci
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-##### eth-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm
-##### dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-##### ethip4-ip4base-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-## ./vts
diff --git a/docs/lab/testbed_specifications.md b/docs/lab/testbed_specifications.md
deleted file mode 100644
index 7d4f0e001a..0000000000
--- a/docs/lab/testbed_specifications.md
+++ /dev/null
@@ -1,2031 +0,0 @@
-# FD.io CSIT Testbed Specifications
-
-1. [Purpose](#purpose)
-1. [Testbeds Overview](#testbeds-overview)
- 1. [Summary List](#summary-list)
- 1. [1-Node-Skylake Xeon Intel (1n-skx)](#1-node-skylake-xeon-intel-1n-skx)
- 1. [1-Node-ThunderX2 Arm Marvell (1n-tx2)](#1-node-thunderx2-arm-marvell-1n-tx2)
- 1. [1-Node-Cascadelake Xeon Intel (1n-clx)](#1-node-cascadelake-xeon-intel-1n-clx)
- 1. [2-Node-Skylake Xeon Intel (2n-skx)](#2-node-skylake-xeon-intel-2n-skx)
- 1. [2-Node-Denverton Atom Intel (2n-dnv)](#2-node-denverton-atom-intel-2n-dnv)
- 1. [2-Node-IxiaPS1L47 Ixia PSOne L47 (2n-ps1)](#2-node-ixiaps1l47-ixia-psone-l47-2n-ps1)
- 1. [2-Node-Cascadelake Xeon Intel (2n-clx)](#2-node-cascadelake-xeon-intel-2n-clx)
- 1. [2-Node-Zen2 EPYC AMD (2n-zn2)](#2-node-zen2-epyc-amd-2n-zn)
- 1. [2-Node-ThunderX2 Arm Marvell (2x-tx2)](#2-node-thunderx2-arm-marvell-2n-tx2)
- 1. [3-Node-Haswell Xeon Intel (3n-skx)](#3-node-haswell-xeon-intel-3n-skx)
- 1. [3-Node-Skylake Xeon Intel (3n-skx)](#3-node-skylake-xeon-intel-3n-skx)
- 1. [3-Node-TaiShan Arm Huawei (3n-tsh)](#3-node-taishan-arm-huawei-3n-tsh)
- 1. [3-Node-Rangeley Atom Testbeds](#3-node-rangeley-atom-testbeds)
-1. [Server Management](#server-management)
- 1. [Requirements](#requirements)
- 1. [Addressing](#addressing)
- 1. [LOM (IPMI) VLAN IP Addresses](#lom-ipmi-vlan-ip-addresses)
- 1. [Management VLAN IP Addresses](#management-vlan-ip-addresses)
-1. [Server Specifications](#server-specifications)
- 1. [Server Types](#server-types)
- 1. [Naming Convention](#naming-convention)
-1. [Testbeds Configuration](#testbeds-configuration)
- 1. [Per Testbed Server Allocation and Naming](#per-testbed-server-allocation-and-naming)
- 1. [1-Node-Skylake Servers (1n-skx) PROD](#1-node-skylake-servers-1n-skx-prod)
- 1. [1-Node-ThunderX2 Servers (1n-tx2) PROD](#1-node-thunderx2-servers-1n-tx2-prod)
- 1. [1-Node-Cascadelake Servers (1n-clx) PROD](#1-node-cascadelake-servers-1n-clx-prod)
- 1. [2-Node-Skylake Servers (2n-skx) PROD](#2-node-skylake-servers-2n-skx-prod)
- 1. [2-Node-Denverton Servers (2n-dnv) TODO](#2-node-denverton-servers-2n-dnv-todo)
- 1. [2-Node-IxiaPS1L47 Servers (2n-ps1) VERIFY](#2-node-ixiaps1l47-servers-2n-ps1-verify)
- 1. [2-Node-Cascadelake Servers (2n-clx) PROD](#2-node-cascadelake-servers-2n-clx-prod)
- 1. [2-Node-Zen2 Servers (2n-zn2) PROD](#2-node-zen2-servers-2n-zn2-prod])
- 1. [2-Node-ThunderX2 Servers (2n-tx2) WIP](#2-node-thunderx2-servers-2n-tx2-wip)
- 1. [3-Node-Haswell Servers (3n-hsw) PROD](#3-node-haswell-servers-3n-hsw-prod)
- 1. [3-Node-Skylake Servers (3n-skx) PROD](#3-node-skylake-servers-3n-skx-prod)
- 1. [3-Node-Rangeley Servers (3n-rng) VERIFY](#3-node-rangeley-servers-3n-rng-verify)
- 1. [3-Node-Taishan Servers (3n-tsh) PROD](#3-node-taishan-servers-3n-tsh-prod)
- 1. [Per Testbed Wiring](#per-testbed-wiring)
- 1. [1-Node-Skylake Wiring (1n-skx) PROD](#1-node-skylake-wiring-1n-skx-prod)
- 1. [1-Node-ThunderX2 Wiring (1n-tx2) PROD](#1-node-thunderx2-wiring-1n-tx2-prod)
- 1. [1-Node-Cascadelake Wiring (1n-clx) PROD](#1-node-cascadelake-wiring-1n-clx-prod)
- 1. [2-Node-Skylake Wiring (2n-skx) PROD](#2-node-skylake-wiring-2n-skx-prod)
- 1. [2-Node-Denverton Wiring (2n-dnv) TODO](#2-node-denverton-wiring-2n-dnv-todo)
- 1. [2-Node-IxiaPS1L47 Wiring (2n-ps1) VERIFY](#2-node-ixiaps1l47-wiring-2n-ps1-verify)
- 1. [2-Node-Cascadelake Wiring (2n-clx) PROD](#2-node-cascadelake-wiring-2n-clx-prod)
- 1. [2-Node-Zen2 Wiring (2n-zn2) PROD](#2-node-zen2-wiring-2n-zn2-prod])
- 1. [2-Node-ThunderX2 Wiring (2n-tx2) WIP](#2-node-thunderx2-wiring-2n-tx2-wip)
- 1. [3-Node-Haswell Wiring (3n-hsw) PROD](#3-node-haswell-wiring-3n-hsw-prod)
- 1. [3-Node-Skylake Wiring (3n-skx) PROD](#3-node-skylake-wiring-3n-skx-prod)
- 1. [3-Node-Rangeley Wiring (3n-rng) TODO](#3-node-rangeley-wiring-3n-rng-todo)
- 1. [3-Node-Taishan Wiring (3n-tsh) PROD](#3-node-taishan-wiring-3n-tsh-prod)
-1. [Inventory](#inventory)
- 1. [Appliances](#appliances)
- 1. [Arm Servers](#arm-servers)
- 1. [Xeon and Atom Servers](#xeon-and-atom-servers)
- 1. [Network Interface Cards](#network-interface-cards)
- 1. [Pluggables and Cables](#pluggables-and-cables)
- 1. [Other Parts](#other-parts)
-
-## Purpose
-
-This note includes specification of the physical testbed infrastructure
-hosted by LFN FD.io CSIT project.
-
-## Testbeds Overview
-
-### Summary List
-
-```
- #. CSIT_tb Purpose SUT TG #TB #SUT #TG #hsw #skx #ps1 #rng #dnv #tx2 #tsh #clx #zn2
- 1. 1-Node-VIRL dev hsw --- 3 3 0 3 0 0 0 0 0 0 0 0
- 2. 1-Node-Skylake dev skx na 2 2 0 0 2 0 0 0 0 0 0 0
- 3. 1-Node-ThunderX2 perf tx2 na 1 1 .5 0 .5 0 0 0 1 0 0 0
- 4. 1-Node-ThunderX2 dev tx2 na 2 2 0 0 0 0 0 0 2 0 0 0
- 5. 1-Node-Cascadelake dev clx lcx 1 1 0 0 0 0 0 0 0 0 1 0
- 6. 2-Node-Skylake perf skx skx 4 4 4 0 8 0 0 0 0 0 0 0
- 7. 2-Node-Denverton perf dnv skx 1 1 1 0 .5 0 0 1 0 0 0 0
- 8. 2-Node-IxiaPS1L47 tcp skx ps1 1 1 1 0 1 1 0 0 0 0 0 0
- 9. 2-Node-Cascadelake perf clx clx 3 3 3 0 0 0 0 0 0 0 6 0
-10. 3-Node-Haswell perf hsw hsw 3 6 3 9 0 0 0 0 0 0 0 0
-11. 3-Node-Skylake perf skx skx 2 4 2 0 6 0 0 0 0 0 0 0
-12. 3-Node-Rangeley perf rng skx 1 3 1 0 0 0 2 0 0 0 0 0
-13. 3-Node-Taishan perf tsh skx 1 2 .5 0 .5 0 0 0 0 2 0 0
-14. 3-Node-Denverton perf dnv skx 1 2 1 0 .5 0 0 2 0 0 0 0
-15. 2-Node-Zen2 perf zn2 zn2 1 1 1 0 0 0 0 0 0 0 0 2
- Totals: 27 36 18 12 19 1 2 3 3 2 7 2
-```
-
-### 1-Node-Skylake Xeon Intel (1n-skx)
-
-Each 1-Node-Skylake testbed includes one SUT (Server-Type-B6) with NIC
-ports connected back-to-back ([Server Types](#server-types)).
-Used for FD.io VPP_Device functional driver tests.
-
-### 1-Node-ThunderX2 Arm Marvell (1n-tx2)
-
-Each 1-Node-ThunderX2 testbed includes one SUT (Server-Type-B11) with NIC
-ports connected back-to-back ([Server Types](#server-types)).
-Used for FD.io VPP_Device functional driver tests.
-
-### 1-Node-Cascadelake Xeon Intel (1n-clx)
-
-Each 1-Node-Cascadelake testbed includes one SUT (Server-Type-C1) with
-NIC ports connected back-to-back ([Server Types](#server-types)).
-
-Used for FD.io VPP_Device functional driver tests.
-
-### 2-Node-Skylake Xeon Intel (2n-skx)
-
-Each 2-Node-Skylake testbed includes one SUT (Server-Type-B1) and one TG
-(Server-Type-B2) connected in a 2-node circular topology
-([Server Types](#server-types)).
-Used for FD.io performance tests.
-
-### 2-Node-Denverton Atom Intel (2n-dnv)
-
-Each 2-Node-Skylake testbed includes one SUT (Server-Type-B10) and one
-TG (Server-Type-B2) connected in a 2-node circular topology
-([Server Types](#server-types)).
-Used for FD.io performance tests.
-
-### 2-Node-IxiaPS1L47 Ixia PSOne L47 (2n-ps1)
-
-Each 2-Node-IxiaPS1L47 testbed includes one SUT (Server-Type-B1) and one
-TG (Ixia PSOne appliance) with 10GE interfaces connected in a 2-node
-circular topology ([Server Types](#server-types)).
-Used for FD.io TCP/IP and HTTP performance tests.
-
-### 2-Node-Cascadelake Xeon Intel (2n-clx)
-
-Each 2-Node-Cascadelake testbed includes one SUT (Server-Type-C2) and
-one TG (Server-Type-C3) connected in a 2-node circular topology
-([Server Types](#server-types)).
-Used for FD.io performance tests.
-
-### 2-Node-Zen2 EPYC AMD (2n-zn2)
-
-Each 2-Node-Zen2 testbed includes one SUT (Server-Type-D1) and
-one TG (Server-Type-D2) connected in a 2-node circular topology
-([Server Types](#server-types)).
-Used for FD.io performance tests.
-
-### 2-Node-ThunderX2 Arm Marvell (2x-tx2)
-
-Each 2-Node-ThunderX2 testbed includes one SUT (Server-Type-B9) and
-one TG (Server-Type-B12) connected in a 2-node circular topology
-([Server Types](#server-types)).
-Used for FD.io performance tests.
-
-### 3-Node-Haswell Xeon Intel (3n-hsw)
-
-Each 3-Node-Haswell testbed includes two SUTs (Server-Type-A1) and one
-TG (Server-Type-A2) connected in a 3-node circular topology
-([Server Types](#server-types)).
-Used for FD.io performance tests.
-
-### 3-Node-Skylake Xeon Intel (3n-skx)
-
-Each 3-Node-Skylake testbed includes two SUTs (Server-Type-B1) and one
-TG (Server-Type-B2) connected in a 3-node circular topology.
-Used for FD.io performance tests.
-
-### 3-Node-TaiShan Arm Huawei (3n-tsh)
-
-Each 3-Node-TaiShan testbed includes two SUTs (Server-Type-B3) and one
-TG (Server-Type-B12) connected in a 3-node circular topology
-([Server Types](#server-types)).
-Used for FD.io performance tests.
-
-### 3-Node-Rangeley Atom Testbeds
-
-Each 3-Node-Rangeley testbed includes two SUTs (Server-Type-B5) and one
-TG (Server-Type-2) connected in a 3-node circular topology
-([Server Types](#server-types)).
-Used for FD.io performance tests.
-
-## Server Management
-
-### Requirements
-
-For management purposes, each server must have following two ports
-connected to the management network:
-
-```
-- 1GE IPMI port
- - IPMI - Intelligent Platform Management Interface.
- - Required for access to embedded server management with WebUI, CLI,
- SNMPv3, IPMIv2.0, for firmware (BIOS) and OS updates.
-- 1GE/10GE/40GE management port
- - hostOS management port for general system management.
-```
-
-### Addressing
-
-Each server has a LOM (Lights-Out-Management e.g. SM IPMI) and a
-Management port, which are connected to two different VLANs.
-
-```
-1. LOM (IPMI) VLAN:
- - Subnet: 10.30.50.0/24
- - Gateway: 10.30.50.1
- - Broadcast: 10.30.50.255
- - DNS1: 199.204.44.24
- - DNS2: 199.204.47.54
-2. Management Vlan:
- - Subnet: 10.30.51.0/24
- - Gateway: 10.30.51.1
- - Broadcast: 10.30.51.255
- - DNS1: 199.204.44.24
- - DNS2: 199.204.47.54
-```
-
-To access these hosts, VPN connection is required.
-
-### LOM (IPMI) VLAN IP Addresses
-
-Name | Comment
------------- | -------
-10.30.50.0 | network
-10.30.51.1 | Router
-10.30.50.2 | LF Reserved
-10.30.50.3 | LF Reserved
-10.30.50.4 | LF Reserved
-10.30.50.5 | LF Reserved
-10.30.50.6 | LF Reserved
-10.30.50.7 | LF Reserved
-10.30.50.8 | LF Reserved
-10.30.50.9 | LF Reserved
-10.30.50.10 | LF Reserved
-10.30.50.11 | LF Reserved
-10.30.50.12 | LF Reserved
-10.30.50.13 | LF Reserved
-10.30.50.14 | LF Reserved
-10.30.50.15 | LF Reserved
-10.30.50.16 | t1-tg1
-10.30.50.17 | t1-sut1
-10.30.50.18 | t1-sut2
-10.30.50.20 | t2-tg1
-10.30.50.21 | t2-sut1
-10.30.50.22 | t2-sut2
-10.30.50.24 | t3-tg1
-10.30.50.25 | t3-sut1
-10.30.50.26 | t3-sut-2
-10.30.50.28 | s41-nomad
-10.30.50.29 | s39-nomad
-10.30.51.29 | s22-t35-sut1 screen -r /dev/ttyusb0
-10.30.50.30 | s40-nomad
-10.30.51.30 | s23-t35-sut2 screen -r /dev/ttyusb1
-10.30.51.30 | s24-t35-sut3 screen -r /dev/ttyusb2
-10.30.50.32 | s42-nomad
-10.30.50.33 | s43-nomad
-10.30.50.34 | s44-nomad
-10.30.50.35 | s45-nomad
-10.30.50.36 | s17-t33-sut1
-10.30.50.37 | s18-t33-sut2
-10.30.50.38 | fdio-marvell-dev
-10.30.50.39 | s53-nomad
-10.30.50.40 | s54-nomad
-10.30.50.41 | s3-t21-sut1
-10.30.50.42 | s4-t21-tg1
-10.30.50.43 | s11-t31-sut1
-10.30.50.44 | s12-t31-sut2
-10.30.50.45 | s13-t31-tg1
-10.30.50.46 | s19-t33t34-tg1
-10.30.50.47 | s1-t11-sut1
-10.30.50.48 | s2-t12-sut1
-10.30.50.49 | s5-t22-sut1
-10.30.50.50 | s6-t22-tg1
-10.30.50.51 | s7-t23-sut1
-10.30.50.52 | s8-t23-tg1
-10.30.50.53 | s9-t24-sut1
-10.30.50.54 | s10-t24-tg1
-10.30.50.55 | s14-t32-sut1
-10.30.50.56 | s15-t32-sut2
-10.30.50.57 | s16-t32-tg1
-10.30.50.58 | s25-t25-sut1
-10.30.50.59 | s26-t25-tg1
-10.30.50.65 | s52-nomad
-10.30.50.66 | s51-nomad
-10.30.50.67 | s49-nomad
-10.30.50.68 | s50-nomad
-10.30.50.69 | s27-t34-sut1
-10.30.50.70 | s55-t36-sut1
-10.30.50.71 | s56-t37-sut1
-10.30.50.255 | Broadcast
-n/a | s20-t34-sut1
-n/a | s21-t34-sut2
-10.30.55.0 | network
-10.30.55.1 | Router
-10.30.55.10 | s28-t26t35-tg1
-10.30.55.11 | s29-t26-sut1
-10.30.55.12 | s30-t35-sut1
-10.30.55.13 | s31-t35-sut2
-10.30.55.14 | s46-nomad
-10.30.55.15 | s47-nomad
-10.30.55.16 | s48-nomad
-10.30.55.17 | s57-nomad
-10.30.55.18 | s33-t27-sut1
-10.30.55.19 | s34-t27-tg1
-10.30.55.20 | s35-t28-sut1
-10.30.55.21 | s36-t28-tg1
-10.30.55.22 | s37-t29-sut1
-10.30.55.23 | s38-t29-tg1
-10.30.55.24 | s60-t210-sut1
-10.30.55.25 | s61-t210-tg1
-10.30.55.255 | Broadcast
-
-### Management VLAN IP Addresses
-
-Name | Comment
-------------------------- | -------
-10.30.51.0 | network
-10.30.51.1 | Router
-10.30.51.2 | LF Reserved
-10.30.51.3 | LF Reserved
-10.30.51.4 | LF Reserved
-10.30.51.5 | LF Reserved
-10.30.51.6 | LF Reserved
-10.30.51.7 | LF Reserved
-10.30.51.8 | LF Reserved
-10.30.51.9 | s22-t35-sut1 (netgate-1)
-10.30.51.10 | s23-t35-sut2 (netgate-2)
-10.30.51.11 | s24-t35-sut3 (netgate-3)
-10.30.51.12 | softiron-1 (decommissioned)
-10.30.51.13 | softiron-2 (decommissioned)
-10.30.51.14 | softiron-3 (decommissioned)
-10.30.51.15 | LF Reserved
-10.30.51.16 | t1-tg1
-10.30.51.17 | t1-sut1
-10.30.51.18 | t1-sut2
-10.30.51.20 | t2-tg1
-10.30.51.21 | t2-sut1
-10.30.51.22 | t2-sut2
-10.30.51.24 | t3-tg1
-10.30.51.25 | t3-sut1
-10.30.51.26 | t3-sut-2
-10.30.51.28 | s41-nomad
-10.30.51.29 | s39-nomad
-10.30.51.30 | s40-nomad
-10.30.51.32 | s42-nomad
-10.30.51.33 | s43-nomad
-10.30.51.34 | s44-nomad
-10.30.51.35 | s45-nomad
-10.30.51.36 | s17-t33-sut1
-10.30.51.37 | s18-t33-sut2
-10.30.51.38 | fdio-marvell-dev
-10.30.51.39 | s53-nomad
-10.30.51.40 | s54-nomad
-10.30.51.41 | s20-t34-sut1 (decommissioned)
-10.30.51.42 | s21-t34-sut2 (decommissioned)
-10.30.51.43 | fdio-mcbin3 (decommissioned)
-10.30.51.44 | s3-t21-sut1
-10.30.51.45 | s4-t21-tg1
-10.30.51.46 | s11-t31-sut1
-10.30.51.47 | s12-t31-sut2
-10.30.51.48 | s13-t31-tg1
-10.30.51.49 | s19-t33t34-tg1
-10.30.51.50 | s1-t11-sut1
-10.30.51.51 | s2-t12-sut1
-10.30.51.52 | s5-t22-sut1
-10.30.51.53 | s6-t22-tg1
-10.30.51.54 | s7-t23-sut1
-10.30.51.55 | s8-t23-tg1
-10.30.51.56 | s9-t24-sut1
-10.30.51.57 | s10-t24-tg1
-10.30.51.58 | s14-t32-sut1
-10.30.51.59 | s15-t32-sut2
-10.30.51.60 | s16-t32-tg1
-10.30.51.61 | s25-t25-sut1
-10.30.51.62 | s26-t25-tg1
-10.30.51.65 | s52-nomad
-10.30.51.66 | s51-nomad
-10.30.51.67 | s49-nomad
-10.30.51.68 | s50-nomad
-10.30.51.69 | s27-t34-sut1
-10.30.51.70 | s55-t36-sut1
-10.30.51.71 | s56-t37-sut1
-10.30.51.72-10.30.51.105 | FREE
-10.30.51.106-10.30.51.180 | FREE
-10.30.51.181-10.30.51.254 | FREE
-10.30.51.255 | Broadcast
-10.32.8.0 | network
-10.32.8.1 | Router
-10.32.8.10 | s28-t26t35-tg1
-10.32.8.11 | s29-t26-sut1
-10.32.8.12 | s30-t35-sut1
-10.32.8.13 | s31-t35-sut2
-10.32.8.14 | s46-nomad
-10.32.8.15 | s47-nomad
-10.32.8.16 | s48-nomad
-10.32.8.17 | s57-nomad
-10.32.8.18 | s33-t27-sut1
-10.32.8.19 | s34-t27-tg1
-10.32.8.20 | s35-t28-sut1
-10.32.8.21 | s36-t28-tg1
-10.32.8.22 | s37-t29-sut1
-10.32.8.23 | s38-t29-tg1
-10.32.8.24 | s60-t210-sut1
-10.32.8.25 | s61-t210-tg1
-10.32.8.255 | Broadcast
-
-## Server Specifications
-
-### Server Types
-
-FD.io CSIT lab contains following server types:
-```
-1. Server-Type-A1: Purpose - Haswell Xeon SUT (Systems Under Test) for FD.io performance testing.
- - Quantity: 6 servers.
- - Physical connectivity:
- - CIMC and host management ports.
- - NIC ports connected in 3-node topologies.
- - Main HW configuration:
- - Chassis: UCSC-C240-M4SX with 6 PCIe3.0 slots.
- - Processors: 2* E5-2699v3 2.3 GHz.
- - RAM Memory: 16* 32GB DDR4-2133MHz.
- - Disks: 2* 2TB 12G SAS 7.2K RPM SFF HDD.
- - NICs configuration:
- - Numa0: Right PCIe Riser Board (Riser 1) (x8, x8, x8 PCIe3.0 lanes)
- - PCIe Slot1: Cisco VIC 1385 2p40GE.
- - PCIe Slot2: Intel NIC x520 2p10GE.
- - PCIe Slot3: empty.
- - Numa1: Left PCIe Riser Board (Riser 2) (x8, x16, x8 PCIe3.0 lanes)
- - PCIe Slot4: Intel NIC xl710 2p40GE.
- - PCIe Slot5: Intel NIC x710 2p10GE.
- - PCIe Slot6: Intel QAT 8950 50G (Walnut Hill)
- - MLOM slot: Cisco VIC 1227 2p10GE (x8 PCIe2.0 lanes).
-2. Server-Type-A2: Purpose - Haswell Xeon TG (Traffic Generators) for FD.io performance testing.
- - Quantity: 3 servers.
- - Physical connectivity:
- - CIMC and host management ports.
- - NIC ports connected in 3-node topologies.
- - Main HW configuration:
- - Chassis: UCSC-C240-M4SX with 6 PCIe3.0 slots.
- - Processors: 2* E5-2699v3 2.3 GHz.
- - RAM Memory: 16* 32GB DDR4-2133MHz.
- - Disks: 2* 2TB 12G SAS 7.2K RPM SFF HDD.
- - NICs configuration:
- - Numa0: Right PCIe Riser Board (Riser 1) (x8, x8, x8 lanes)
- - PCIe Slot1: Intel NIC xl710 2p40GE.
- - PCIe Slot2: Intel NIC x710 2p10GE.
- - PCIe Slot3: Intel NIC x710 2p10GE.
- - Numa1: Left PCIe Riser Board (Riser 2) (x8, x16, x8 lanes)
- - PCIe Slot4: Intel NIC xl710 2p40GE.
- - PCIe Slot5: Intel NIC x710 2p10GE.
- - PCIe Slot6: Intel NIC x710 2p10GE.
- - MLOM slot: empty.
-3. Server-Type-A3: Purpose - Haswell Xeon VIRL hosts for FD.io functional testing.
- - Quantity: 3 servers.
- - Physical connectivity:
- - CIMC and host management ports.
- - no NIC ports, standalone setup.
- - Main HW configuration:
- - Chassis: UCSC-C240-M4SX with 6 PCIe3.0 slots.
- - Processors: 2* E5-2699v3 2.3 GHz.
- - RAM Memory: 16* 32GB DDR4-2133MHz.
- - Disks: 2* 480 GB 2.5inch 6G SATA SSD.
- - NICs configuration:
- - Numa0: Right PCIe Riser Board (Riser 1) (x8, x8, x8 lanes)
- - no cards.
- - Numa1: Left PCIe Riser Board (Riser 2) (x8, x16, x8 lanes)
- - no cards.
- - MLOM slot: empty.
-4. Server-Type-B1: Purpose - Skylake Xeon SUT for FD.io performance testing.
- - Quantity: ---
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 2-node and 3-node topologies.
- - Main HW configuration:
- - Chassis: SuperMicro SYS-7049GP-TRT.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: 2* Intel Platinum 8180 2.5 GHz.
- - RAM Memory: 16* 16GB DDR4-2666MHz.
- - Disks: 2* 1.6TB 6G SATA SSD.
- - NICs configuration:
- - Numa0: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
- - PCIe Slot4 3b:00.xx: xxv710-DA2-2p25GE Intel.
- - PCIe Slot9 5e:00.xx: empty.
- - Numa1: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: empty.
- - PCIe Slot8 af:00.xx: empty.
- - PCIe Slot10 d8:00.xx: empty.
-5. Server-Type-B2: Purpose - Skylake Xeon TG for FD.io performance testing.
- - Quantity: ---
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 2-node and 3-node topologies.
- - Main HW configuration:
- - Chassis: SuperMicro SYS-7049GP-TRT.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: 2* Intel Platinum 8180 2.5 GHz.
- - RAM Memory: 16* 16GB DDR4-2666MHz.
- - Disks: 2* 1.6TB 6G SATA SSD.
- - NICs configuration:
- - Numa0: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
- - PCIe Slot4 3b:00.xx: xxv710-DA2 2p25GE Intel.
- - PCIe Slot9 5e:00.xx: empty.
- - Numa1: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: empty.
- - PCIe Slot8 af:00.xx: empty.
- - PCIe Slot10 d8:00.xx: x710-4p10GE Intel.
-6. Server-Type-B3: Purpose - TaiShan Arm Huawei SUT for FD.io performance testing.
- - Quantity: 2
- - Physical connectivity:
- - IPMI(?) and host management ports.
- - NIC ports connected into 3-node topology.
- - Main HW configuration:
- - Chassis: Huawei TaiShan 2280.
- - Processors: 2* hip07-d05 ~ 32* Arm Cortex-A72
- - RAM Memory: 8* 16GB DDR4-2400MT/s
- - Disks: 1* 4TB SATA HDD
- - NICs configuration:
- - PCIe Slot4 e9:00.xx: connectx4-2p25GE Mellanox.
- - PCIe Slot6 11:00.xx: x520-2p10GE Intel.
-7. Server-Type-B5: Purpose - Rangeley Atom SUT for FD.io performance testing.
- - Quantity: TBD based on testbed allocation.
- - Physical connectivity:
- - Management: serial Port (usb) for console
- - NIC ports connected into 2-node.
- - Main HW configuration:
- - Chassis: Netgate XG-2758-1u
- - Processors: 1* Rangeley (Atom) C2758 2.4 GHz
- - RAM Memory: 16GB ECC
- - Disks: 150 GB
- - NICs configuration:
- - 2x 10Gb Intel 82599ES
- - 4x 1GB Intel I354
-8. Server-Type-B6: Purpose - Skylake Xeon SUT for FD.io VPP_Device functional tests.
- - Quantity: 2.
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 1-node topologies.
- - Main HW configuration:
- - Chassis: SuperMicro SYS-7049GP-TRT.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: 2* Intel Platinum 8180 2.5 GHz.
- - RAM Memory: 16* 16GB DDR4-2666MHz.
- - Disks: 2* 1.6TB 6G SATA SSD.
- - NICs configuration:
- - Numa0: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
- - PCIe Slot4 3b:00.xx: x710-4p10GE Intel.
- - PCIe Slot9 5e:00.xx: empty.
- - Numa1: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: empty.
- - PCIe Slot8 af:00.xx: empty.
- - PCIe Slot10 d8:00.xx: empty.
-9. Server-Type-B7: Purpose - Ixia PerfectStorm One Appliance TG for FD.io TCP/IP performance tests.
- - Quantity: 1.
- - Physical connectivity:
- - Host management interface: 10/100/1000-BaseT.
- - 8-port 10GE SFP+ integrated NIC.
- - Main HW configuration:
- - Chassis: PS10GE4NG.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: Quad-Core, Intel Processor.
- - HW accelerators: FPGA offload.
- - RAM Memory: 64GB.
- - Disks: 1 * 1 TB, Enterprise Class, High MTBF.
- - Physical Interfaces: 4 * 10GE SFP+.
- - Operating System: Native IxOS.
- - Interface configuration:
- - Port-1: 10GE SFP+.
- - Port-2: 10GE SFP+.
- - Port-3: 10GE SFP+.
- - Port-4: 10GE SFP+.
-10. Server-Type-B8: Purpose - Skylake Xeon SUT for TCP/IP host stack tests.
- - Quantity: 1.
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports.
- - Main HW configuration:
- - Chassis: SuperMicro SYS-7049GP-TRT.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: 2* Intel Platinum 8180 2.5 GHz.
- - RAM Memory: 16* 16GB DDR4-2666MHz.
- - Disks: 2* 1.6TB 6G SATA SSD.
- - NICs configuration:
- - Numa0: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
- - PCIe Slot4 3b:00.xx: empty.
- - PCIe Slot9 5e:00.xx: empty.
- - Numa1: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: empty.
- - PCIe Slot8 af:00.xx: empty.
- - PCIe Slot10 d8:00.xx: empty.
-11. Server-Type-B9: Purpose - ThunderX2 Arm Marvell SUT for FD.io performance testing.
- - Quantity: 1
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 1-node topologies.
- - Main HW configuration:
- - Chassis: Gigabyte R181-T90 1U
- - Motherboard: MT91-FS1
- - Processors: 2* ThunderX2 ARMv8 CN9975 2.0 GHz
- - RAM Memory: 4* 32GB RDIMM
- - Disks: 1* 480GB SSD Micron, 1* 1000GB HDD Seagate_25
- - NICs configuration:
- - Numa0:
- - PCIe Slot6 08:00.xx: XL710-QDA2-2p40GE Intel.
- - Numa1:
- - PCIe Slot18 91:00.xx: XL710-QDA2-2p40GE Intel.
-12. Server-Type-B10: Purpose - Denverton Atom SUT for FD.io performance testing.
- - Quantity: 4
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports.
- - Main HW configuration:
- - Chassis: SuperMicro SYS-E300-9A
- - Processors: 1* Intel(R) Atom(TM) CPU C3858 @ 2.00GHz
- - RAM Memory: 32GB ECC
- - Disks: 480 GB
- - NICs configuration:
- - 2x 10Gb Intel x553 fiber ports
- - 2x 10Gb Intel x553 copper ports
- - 4x 1GB Intel I350 ports
-13. Server-Type-B11: Purpose - ThunderX2 Arm Marvell SUT for FD.io VPP_Device functional tests.
- - Quantity: 2
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 1-node topologies.
- - Main HW configuration:
- - Chassis: GIGABYTE Rack Mount
- - Motherboard: MT91-FS4-00
- - Processors: 2 * ThunderX2 ARMv8 CN9980 2.20 GHz
- - RAM Memory: 16 * 16GB DIMM
- - Disks: 2 * 480GB 6G SATA SSD SAMSUNG MZ7LH480
- - NICs configuration:
- - Numa0:
- - PCIe Slot4 05:00.xx: XL710-QDA2-2p40GE Intel.
- - PCIe Slot8 0b:00.xx: ConnectX5-2p10/25GE Mellanox.
- - Numa1:
- - PCIe Slot14 91:00.xx: XL710-QDA2-2p40GE Intel.
- - PCIe Slot26 9a:00.xx: ConnectX5-2p10/25GE Mellanox.
-14. Server-Type-B12: Purpose - Skylake Xeon TG for FD.io performance testing.
- - Quantity: ---
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 2-node and 3-node topologies.
- - Main HW configuration:
- - Chassis: SuperMicro SYS-7049GP-TRT.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: 2* Intel Platinum 8180 2.5 GHz.
- - RAM Memory: 16* 16GB DDR4-2666MHz.
- - Disks: 2* 1.6TB 6G SATA SSD.
- - NICs configuration:
- - Numa0: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
- - PCIe Slot4 3b:00.xx: xxv710-DA2 2p25GE Intel.
- - PCIe Slot9 5e:00.xx: empty.
- - Numa1: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: empty.
- - PCIe Slot8 af:00.xx: XL710-QDA2-2p40GE Intel.
- - PCIe Slot10 d8:00.xx: x710-4p10GE Intel.
-
-15. Server-Type-C1: Purpose - Cascadelake Xeon SUT for FD.io VPP_Device functional tests.
- - Quantity: 1.
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 1-node testbed topologies.
- - Main HW configuration:
- - Chassis: SuperMicro SYS-7049GP-TRT.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: 2* Intel Platinum 8280 2.7 GHz.
- - RAM Memory: 12* 16GB DDR4-2933.
- - Disks: 2* 1.92TB SATA SSD.
- - NICs configuration:
- - Numa0: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
- - PCIe Slot4 3b:00.xx: x710-4p10GE Intel.
- - PCIe Slot9 5e:00.xx: empty.
- - Numa1: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: empty.
- - PCIe Slot8 af:00.xx: empty.
- - PCIe Slot10 d8:00.xx: empty.
-16. Server-Type-C2: Purpose - Cascadelake Xeon SUT for FD.io performance testing.
- - Quantity: 3
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 2-node testbed topologies.
- - Main HW configuration:
- - Chassis: SuperMicro SYS-7049GP-TRT.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: 2* Intel Gold 6252N 2.3 GHz.
- - RAM Memory: 12* 16GB DDR4-2933.
- - Disks: 2* 1.92TB SATA SSD.
- - NICs configuration:
- - Numa0: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
- - PCIe Slot4 3b:00.xx: xxv710-DA2-2p25GE Intel.
- - PCIe Slot9 5e:00.xx: ConnectX5-2p100GE Mellanox.
- - Numa1: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: empty.
- - PCIe Slot8 af:00.xx: empty.
- - PCIe Slot10 d8:00.xx: empty.
-17. Server-Type-C3: Purpose - Cascadelake Xeon TG for FD.io performance testing.
- - Quantity: 3.
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 2-node testbed topologies.
- - Main HW configuration:
- - Chassis: SuperMicro SYS-7049GP-TRT.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: 2* Intel Platinum 8280 2.7 GHz.
- - RAM Memory: 12* 16GB DDR4-2933.
- - Disks: 2* 1.92TB SATA SSD.
- - NICs configuration:
- - Numa0: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot2 18:00.xx: x710-4p10GE Intel.
- - PCIe Slot4 3b:00.xx: xxv710-DA2 2p25GE Intel.
- - PCIe Slot9 5e:00.xx: ConnectX5-2p100GE Mellanox.
- - Numa1: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: empty.
- - PCIe Slot8 af:00.xx: empty.
- - PCIe Slot10 d8:00.xx: empty.
-18. Server-Type-C4: Purpose - Cascadelake Xeon Backend hosts for FD.io builds and data processing.
- - Quantity: 3.
- - Physical connectivity:
- - CIMC and host management ports.
- - no NIC ports, standalone setup.
- - Main HW configuration:
- - Chassis: SuperMicro 1029P-WTRT.
- - Motherboard: SuperMicro X11DDW-NT.
- - Processors: 2* Intel Platinum 8280 2.7 GHz.
- - RAM Memory: 12* 16GB DDR4-2933.
- - Disks: 4* 1.92TB SATA SSD.
- - NICs configuration:
- - Numa0:
- - no cards.
- - Numa1:
- - no cards.
-
-19. Server-Type-D1: Purpose - Zen2 EPYC SUT for FD.io performance testing.
- - Quantity: 1.
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 2-node testbed topologies.
- - Main HW configuration:
- - Chassis: SuperMicro AS-1114S-WTRT
- - Processors: 1* AMD EPYC 7532 2.4 GHz.
- - RAM Memory: 8* 32GB DDR4-2933.
- - Disks: 1* 1TB SATA SSD.
- - NICs configuration:
- - Numa0: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot1 01:00.xx: x710-4p10GE Intel.
- - PCIe Slot2 41:00.xx: xxv710-DA2-2p25GE Intel.
- - PCIe Slot3 81:00.xx: mcx556a-edat ConnectX5-2p100GE Mellanox.
-20. Server-Type-D2: Purpose - Zen2 EPYC TG for FD.io performance testing.
- - Quantity: 1.
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 2-node testbed topologies.
- - Main HW configuration:
- - Chassis: SuperMicro AS-1114S-WTRT
- - Processors: 1* AMD EPYC 7532 2.4 GHz.
- - RAM Memory: 8* 32GB DDR4-2933.
- - Disks: 1* 1TB SATA SSD.
- - NICs configuration:
- - Numa0: (x16, x16, x16 PCIe3.0 lanes)
- - PCIe Slot1 01:00.xx: mcx556a-edat ConnectX5-2p100GE Mellanox.
- - PCIe Slot2 41:00.xx: x710-4p10GE Intel.
- - PCIe Slot3 81:00.xx: xxv710-DA2 2p25GE Intel.
-```
-
-### Naming Convention
-
-Following naming convention is used within this page to specify physical
-connectivity and wiring across defined CSIT testbeds:
-
-```
-- testbedname: testbedN.
-- hostname:
- - traffic-generator: tN-tgW.
- - system-under-testX: tN-sutX.
-- portnames:
- - tN-tgW-cY/pZ.
- - tN-sutX-cY/pZ.
-- where:
- - N - testbed number.
- - tgW - server acts as traffic-generator with W index.
- - sutX - server acts as system-under-test with X index.
- - Y - PCIe slot number denoting a NIC card number within the host.
- - Z - port number on the NIC card.
-```
-
-## Testbeds Configuration
-
-### Per Testbed Server Allocation and Naming
-
-#### 1-Node-Skylake Servers (1n-skx) PROD
-
-```
-- SUT [Server-Type-B6]:
- - testbedname: testbed11.
- - hostname: s1-t11-sut1.
- - IPMI IP: 10.30.50.47
- - Host IP: 10.30.51.50
- - portnames:
- - s1-t11-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s1-t11-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s1-t11-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s1-t11-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s1-t11-sut1-c4/p1 - 10GE-port1 x710-4p10GE.
- - s1-t11-sut1-c4/p2 - 10GE-port2 x710-4p10GE.
- - s1-t11-sut1-c4/p3 - 10GE-port3 x710-4p10GE.
- - s1-t11-sut1-c4/p4 - 10GE-port4 x710-4p10GE.
-- SUT [Server-Type-B6]:
- - testbedname: testbed12.
- - hostname: s2-t12-sut1.
- - IPMI IP: 10.30.50.48
- - Host IP: 10.30.51.51
- - portnames:
- - s2-t12-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s2-t12-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s2-t12-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s2-t12-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s2-t12-sut1-c4/p1 - 10GE-port1 x710-4p10GE.
- - s2-t12-sut1-c4/p2 - 10GE-port2 x710-4p10GE.
- - s2-t12-sut1-c4/p3 - 10GE-port3 x710-4p10GE.
- - s2-t12-sut1-c4/p4 - 10GE-port4 x710-4p10GE.
-```
-
-#### 1-Node-ThunderX2 Servers (1n-tx2) PROD
-
-```
-- SUT [Server-Type-B11]:
- - testbedname: testbed36
- - hostname: s55-t36-sut1
- - IPMI IP: 10.30.50.70
- - Host IP: 10.30.51.70
- - portnames:
- - s55-t36-sut1-c4/p1 - 40GE-port1 XL710-QDA2-2p40GE.
- - s55-t36-sut1-c4/p2 - 40GE-port2 XL710-QDA2-2p40GE.
- - s55-t36-sut1-c8/p1 - 40GE-port1 ConnectX5-2p10/25GE Mellanox.
- - s55-t36-sut1-c8/p2 - 40GE-port2 ConnectX5-2p10/25GE Mellanox.
- - s55-t36-sut1-c14/p1 - 40GE-port1 XL710-QDA2-2p40GE.
- - s55-t36-sut1-c14/p2 - 40GE-port2 XL710-QDA2-2p40GE.
- - s55-t36-sut1-c26/p1 - 40GE-port1 ConnectX5-2p10/25GE Mellanox.
- - s55-t36-sut1-c26/p2 - 40GE-port2 ConnectX5-2p10/25GE Mellanox.
-- SUT [Server-Type-B11]:
- - testbedname: testbed37
- - hostname: s56-t37-sut1
- - IPMI IP: 10.30.50.71
- - Host IP: 10.30.51.71
- - portnames:
- - s56-t37-sut1-c4/p1 - 40GE-port1 XL710-QDA2-2p40GE.
- - s56-t37-sut1-c4/p2 - 40GE-port2 XL710-QDA2-2p40GE.
- - s56-t37-sut1-c8/p1 - 40GE-port1 ConnectX5-2p10/25GE Mellanox.
- - s56-t37-sut1-c8/p2 - 40GE-port2 ConnectX5-2p10/25GE Mellanox.
- - s56-t37-sut1-c14/p1 - 40GE-port1 XL710-QDA2-2p40GE.
- - s56-t37-sut1-c14/p2 - 40GE-port2 XL710-QDA2-2p40GE.
- - s56-t37-sut1-c26/p1 - 40GE-port1 ConnectX5-2p10/25GE Mellanox.
- - s56-t37-sut1-c26/p2 - 40GE-port2 ConnectX5-2p10/25GE Mellanox.
-```
-
-#### 1-Node-Cascadelake Servers (1n-clx) PROD
-
-```
-- SUT [Server-Type-C1]:
- - testbedname: testbed11.
- - hostname: s32-t14-sut1.
- - IPMI IP: 10.30.55.17
- - Host IP: 10.32.8.17
- - portnames:
- - s32-t14-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s32-t14-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s32-t14-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s32-t14-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s32-t14-sut1-c4/p1 - 10GE-port1 x710-4p10GE.
- - s32-t14-sut1-c4/p2 - 10GE-port2 x710-4p10GE.
- - s32-t14-sut1-c4/p3 - 10GE-port3 x710-4p10GE.
- - s32-t14-sut1-c4/p4 - 10GE-port4 x710-4p10GE.
-```
-
-#### 2-Node-Skylake Servers (2n-skx) PROD
-
-```
-- SUT [Server-Type-B1]:
- - testbedname: testbed21.
- - hostname: s3-t21-sut1.
- - IPMI IP: 10.30.50.41
- - Host IP: 10.30.51.44
- - portnames:
- - s3-t21-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s3-t21-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s3-t21-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s3-t21-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s3-t21-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s3-t21-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
-- TG [Server-Type-B2]:
- - testbedname: testbed21.
- - hostname: s4-t21-tg1.
- - IPMI IP: 10.30.50.42
- - Host IP: 10.30.51.45
- - portnames:
- - s4-t21-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s4-t21-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s4-t21-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s4-t21-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s4-t21-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s4-t21-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
-- SUT [Server-Type-B1]:
- - testbedname: testbed22.
- - hostname: s5-t22-sut1.
- - IPMI IP: 10.30.50.49
- - Host IP: 10.30.51.52
- - portnames:
- - s5-t22-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s5-t22-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s5-t22-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s5-t22-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s5-t22-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s5-t22-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
-- TG [Server-Type-B2]:
- - testbedname: testbed22.
- - hostname: s6-t22-tg1.
- - IPMI IP: 10.30.50.50
- - Host IP: 10.30.51.53
- - portnames:
- - s6-t22-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s6-t22-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s6-t22-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s6-t22-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s6-t22-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s6-t22-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
-- SUT [Server-Type-B1]:
- - testbedname: testbed23.
- - hostname: s7-t23-sut1.
- - IPMI IP: 10.30.50.51
- - Host IP: 10.30.51.54
- - portnames:
- - s7-t23-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s7-t23-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s7-t23-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s7-t23-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s7-t23-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s7-t23-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
-- TG [Server-Type-B2]:
- - testbedname: testbed23.
- - hostname: s8-t23-tg1.
- - IPMI IP: 10.30.50.52
- - Host IP: 10.30.51.55
- - portnames:
- - s8-t23-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s8-t23-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s8-t23-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s8-t23-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s8-t23-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s8-t23-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
-- SUT [Server-Type-B1]:
- - testbedname: testbed24.
- - hostname: s9-t24-sut1.
- - IPMI IP: 10.30.50.53
- - Host IP: 10.30.51.56
- - portnames:
- - s9-t24-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s9-t24-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s9-t24-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s9-t24-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s9-t24-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s9-t24-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
-- TG [Server-Type-B2]:
- - testbedname: testbed24.
- - hostname: s10-t24-tg1.
- - IPMI IP: 10.30.50.54
- - Host IP: 10.30.51.57
- - portnames:
- - s10-t24-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s10-t24-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s10-t24-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s10-t24-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s10-t24-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s10-t24-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
-```
-
-#### 2-Node-Denverton Servers (2n-dnv) WIP
-
-Note: ServerB28 (TG) is shared between testbed26 & testbed35
-
-```
-- TG [Server-Type-B2]:
- - testbednames: testbed26 and testbed35.
- - hostname: s28-t26t35-tg1.
- - IPMI IP: 10.30.55.10
- - Host IP: 10.32.8.10
- - portnames:
- - s28-t26t35-tg1-c2/p1 - 10GE-port1 x710da2-2p10GE.
- - s28-t26t35-tg1-c2/p2 - 10GE-port2 x710da2-2p10GE.
- - s28-t26t35-tg1-c4/p1 - 10GE-port1 x550t2-2p10GE.
- - s28-t26t35-tg1-c4/p2 - 10GE-port2 x550t2-2p10GE.
- - s28-t26t35-tg1-c9/p1 - 10GE-port1 x550t2-2p10GE.
- - s28-t26t35-tg1-c9/p2 - 10GE-port2 x550t2-2p10GE.
- - s28-t26t35-tg1-c6/p1 - 10GE-port1 x710da2-2p10GE.
- - s28-t26t35-tg1-c6/p2 - 10GE-port2 x710da2-2p10GE.
- - s28-t26t35-tg1-c8/p1 - 10GE-port1 x550t2-2p10GE.
- - s28-t26t35-tg1-c8/p2 - 10GE-port2 x550t2-2p10GE.
- - s28-t26t35-tg1-c10/p1 - 10GE-port1 x550t2-2p10GE.
- - s28-t26t35-tg1-c10/p2 - 10GE-port2 x550t2-2p10GE.
-- SUT [Server-Type-B10]:
- - testbednames: testbed26.
- - hostname: s29-t26-sut1.
- - IPMI IP: 10.30.55.11
- - Host IP: 10.32.8.11
- - portnames:
- - s29-t26-sut1-p1 - 10GE-port1 x553 copper port.
- - s29-t26-sut1-p2 - 10GE-port2 x553 copper port.
- - s29-t26-sut1-p3 - 10GE-port3 x553 fiber port.
- - s29-t26-sut1-p4 - 10GE-port4 x553 fiber port.
-```
-
-#### 2-Node-IxiaPS1L47 Servers (2n-ps1) VERIFY
-
-```
-- SUT [Server-Type-B8]:
- - testbedname: testbed25.
- - hostname: s25-t25-sut1.
- - IPMI IP: 10.30.50.58
- - Host IP: 10.30.51.61
- - portnames:
- - s25-t25-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s25-t25-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s25-t25-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s25-t25-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
-- TG [Server-Type-B7]:
- - testbedname: testbed25.
- - hostname: s26-t25-tg1.
- - IPMI IP: 10.30.50.59
- - Host IP: 10.30.51.62
- - portnames:
- - s26-t25-tg1-p1 - 10GE-port1.
- - s26-t25-tg1-p2 - 10GE-port2.
- - s26-t25-tg1-p3 - 10GE-port3.
- - s26-t25-tg1-p4 - 10GE-port4.
-```
-
-#### 2-Node-Cascadelake Servers (2n-clx) PROD
-
-```
-- SUT [Server-Type-C2]:
- - testbedname: testbed27.
- - hostname: s33-t27-sut1.
- - IPMI IP: 10.30.55.18
- - Host IP: 10.32.8.18
- - portnames:
- - s33-t27-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s33-t27-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s33-t27-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s33-t27-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s33-t27-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s33-t27-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s33-t27-sut1-c6/p1 - 100GE-port1 e810-2p100GE.
- - s33-t27-sut1-c6/p2 - 100GE-port2 e810-2p100GE.
- - s33-t27-sut1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
- - s33-t27-sut1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
-- TG [Server-Type-C3]:
- - testbedname: testbed27.
- - hostname: s34-t27-tg1.
- - IPMI IP: 10.30.55.19
- - Host IP: 10.32.8.19
- - portnames:
- - s34-t27-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s34-t27-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s34-t27-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s34-t27-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s34-t27-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s34-t27-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s34-t27-tg1-c6/p1 - 100GE-port1 e810-2p100GE.
- - s34-t27-tg1-c6/p2 - 100GE-port2 e810-2p100GE.
- - s34-t27-tg1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
- - s34-t27-tg1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
-- SUT [Server-Type-C2]:
- - testbedname: testbed28.
- - hostname: s35-t28-sut1.
- - IPMI IP: 10.30.55.20
- - Host IP: 10.32.8.20
- - portnames:
- - s35-t28-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s35-t28-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s35-t28-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s35-t28-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s35-t28-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s35-t28-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s35-t28-sut1-c6/p1 - 100GE-port1 e810-2p100GE.
- - s35-t28-sut1-c6/p2 - 100GE-port2 e810-2p100GE.
- - s35-t28-sut1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
- - s35-t28-sut1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
-- TG [Server-Type-C3]:
- - testbedname: testbed28.
- - hostname: s36-t28-tg1.
- - IPMI IP: 10.30.55.21
- - Host IP: 10.32.8.21
- - portnames:
- - s36-t28-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s36-t28-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s36-t28-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s36-t28-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s36-t28-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s36-t28-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s36-t28-tg1-c6/p1 - 100GE-port1 e810-2p100GE.
- - s36-t28-tg1-c6/p2 - 100GE-port2 e810-2p100GE.
- - s36-t28-tg1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
- - s36-t28-tg1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
-- SUT [Server-Type-C2]:
- - testbedname: testbed29.
- - hostname: s37-t29-sut1.
- - IPMI IP: 10.30.55.22
- - Host IP: 10.32.8.22
- - portnames:
- - s37-t29-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s37-t29-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s37-t29-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s37-t29-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s37-t29-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s37-t29-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s37-t29-sut1-c6/p1 - 100GE-port1 e810-2p100GE.
- - s37-t29-sut1-c6/p2 - 100GE-port2 e810-2p100GE.
- - s37-t29-sut1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
- - s37-t29-sut1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
-- TG [Server-Type-C3]:
- - testbedname: testbed29.
- - hostname: s38-t29-tg1.
- - IPMI IP: 10.30.55.23
- - Host IP: 10.32.8.23
- - portnames:
- - s38-t29-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s38-t29-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s38-t29-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s38-t29-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s38-t29-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s38-t29-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s38-t29-tg1-c6/p1 - 100GE-port1 e810-2p100GE.
- - s38-t29-tg1-c6/p2 - 100GE-port2 e810-2p100GE.
- - s38-t29-tg1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
- - s38-t29-tg1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
-```
-
-#### 2-Node-Zen2 Servers (2n-zn2) PROD
-
-```
-- SUT [Server-Type-D1]:
- - testbedname: testbed210.
- - hostname: s60-t210-sut1.
- - IPMI IP: 10.30.55.24
- - Host IP: 10.32.8.24
- - portnames:
- - s60-t210-sut1-c1/p1 - 10GE-port1 x710-4p10GE.
- - s60-t210-sut1-c1/p2 - 10GE-port2 x710-4p10GE.
- - s60-t210-sut1-c1/p3 - 10GE-port3 x710-4p10GE.
- - s60-t210-sut1-c1/p4 - 10GE-port4 x710-4p10GE.
- - s60-t210-sut1-c2/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s60-t210-sut1-c2/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s60-t210-sut1-c3/p1 - 100GE-port1 ConnectX5-2p100GE.
- - s60-t210-sut1-c3/p2 - 100GE-port2 ConnectX5-2p100GE.
-- TG [Server-Type-D2]:
- - testbedname: testbed210.
- - hostname: s61-t210-tg1.
- - IPMI IP: 10.30.55.25
- - Host IP: 10.32.8.25
- - portnames:
- - s61-t210-tg1-c1/p1 - 100GE-port1 ConnectX5-2p100GE.
- - s61-t210-tg1-c1/p2 - 100GE-port2 ConnectX5-2p100GE.
- - s61-t210-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s61-t210-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s61-t210-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s61-t210-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s61-t210-tg1-c3/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s61-t210-tg1-c3/p2 - 25GE-port2 xxv710-DA2-2p25GE.
-```
-
-#### 2-Node-ThunderX2 Servers (2x-tx2) WIP
-
-Note: Server19 (TG) is shared between testbed33 & testbed34
-
-```
-- SUT [Server-Type-B9]:
- - testbedname: testbed34.
- - hostname: s27-t34-sut1.
- - IPMI IP: 10.30.50.69
- - Host IP: 10.30.51.69
- - portnames:
- - s27-t34-sut1-c6/p1 - 40GE-port1 XL710-QDA2-2p40GE.
- - s27-t34-sut1-c6/p2 - 40GE-port1 XL710-QDA2-2p40GE.
- - s27-t34-sut1-c18/p1 - 40GE-port1 XL710-QDA2-2p40GE.
- - s27-t34-sut1-c18/p2 - 40GE-port1 XL710-QDA2-2p40GE.
-- TG [Server-Type-B12]:
- - testbedname: testbed33 and testbed34.
- - hostname: s19-t33t34-tg1.
- - IPMI IP: 10.30.50.46
- - Host IP: 10.30.51.49
- - portnames:
- - s19-t33t34-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s19-t33t34-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s19-t33t34-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s19-t33t34-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s19-t33t34-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s19-t33t34-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s19-t33t34-tg1-c8/p1 - 40GE-port1 xl710-QDA2-2p40GE.
- - s19-t33t34-tg1-c8/p2 - 40GE-port1 xl710-QDA2-2p40GE.
- - s19-t33t34-tg1-c10/p1 - 10GE-port1 x710-4p10GE.
- - s19-t33t34-tg1-c10/p2 - 10GE-port2 x710-4p10GE.
- - s19-t33t34-tg1-c10/p3 - 10GE-port3 x710-4p10GE.
- - s19-t33t34-tg1-c10/p4 - 10GE-port4 x710-4p10GE.
-```
-
-#### 3-Node-Haswell Servers (3n-hsw) PROD
-
-```
- 1. SUT [Server-Type-A1]:
- - testbedname: testbed1.
- - hostname: t1-sut1.
- - CIMC IP: 10.30.50.17
- - Host IP: 10.30.51.17
- - portnames:
- - t1-sut1-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- - t1-sut1-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- - t1-sut1-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- - t1-sut1-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- - t1-sut1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t1-sut1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t1-sut1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t1-sut1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t1-sut1-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- - t1-sut1-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- 2. SUT [Server-Type-A1]:
- - testbedname: testbed1.
- - hostname: t1-sut2.
- - CIMC IP: 10.30.50.18
- - Host IP: 10.30.51.18
- - portnames:
- - t1-sut2-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- - t1-sut2-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- - t1-sut2-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- - t1-sut2-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- - t1-sut2-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t1-sut2-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t1-sut2-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t1-sut2-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t1-sut2-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- - t1-sut2-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- 3. TG [Server-Type-A2]:
- - testbedname: testbed1.
- - hostname: t1-tg1.
- - CIMC IP: 10.30.50.16
- - Host IP: 10.30.51.16
- - portnames:
- - t1-tg1-c1/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t1-tg1-c1/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t1-tg1-c2/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t1-tg1-c2/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t1-tg1-c3/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t1-tg1-c3/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t1-tg1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t1-tg1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t1-tg1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t1-tg1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t1-tg1-c6/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t1-tg1-c6/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- 4. SUT [Server-Type-A1]:
- - testbedname: testbed2.
- - hostname: t2-sut1.
- - CIMC IP: 10.30.50.21
- - Host IP: 10.30.51.21
- - portnames:
- - t2-sut1-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- - t2-sut1-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- - t2-sut1-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- - t2-sut1-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- - t2-sut1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t2-sut1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t2-sut1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t2-sut1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t2-sut1-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- - t2-sut1-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- 5. SUT [Server-Type-A1]:
- - testbedname: testbed2.
- - hostname: t2-sut2.
- - CIMC IP: 10.30.50.22
- - Host IP: 10.30.51.22
- - portnames:
- - t2-sut2-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- - t2-sut2-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- - t2-sut2-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- - t2-sut2-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- - t2-sut2-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t2-sut2-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t2-sut2-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t2-sut2-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t2-sut2-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- - t2-sut2-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- 6. TG [Server-Type-A2]:
- - testbedname: testbed2.
- - hostname: t2-tg1.
- - CIMC IP: 10.30.50.20
- - Host IP: 10.30.51.20
- - portnames:
- - t2-tg1-c1/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t2-tg1-c1/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t2-tg1-c2/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t2-tg1-c2/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t2-tg1-c3/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t2-tg1-c3/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t2-tg1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t2-tg1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t2-tg1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t2-tg1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t2-tg1-c6/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t2-tg1-c6/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- 7. SUT [Server-Type-A1]:
- - testbedname: testbed3.
- - hostname: t3-sut1.
- - CIMC IP: 10.30.50.25
- - Host IP: 10.30.51.25
- - portnames:
- - t3-sut1-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- - t3-sut1-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- - t3-sut1-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- - t3-sut1-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- - t3-sut1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t3-sut1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t3-sut1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t3-sut1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t3-sut1-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- - t3-sut1-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- 8. SUT [Server-Type-A1]:
- - testbedname: testbed3.
- - hostname: t3-sut2.
- - CIMC IP: 10.30.50.26
- - Host IP: 10.30.51.26
- - portnames:
- - t3-sut2-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- - t3-sut2-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- - t3-sut2-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- - t3-sut2-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- - t3-sut2-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t3-sut2-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t3-sut2-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t3-sut2-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t3-sut2-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- - t3-sut2-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- 9. TG [Server-Type-A2]:
- - testbedname: testbed3.
- - hostname: t3-tg1.
- - CIMC IP: 10.30.50.24
- - Host IP: 10.30.51.24
- - portnames:
- - t3-tg1-c1/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t3-tg1-c1/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t3-tg1-c2/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t3-tg1-c2/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t3-tg1-c3/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t3-tg1-c3/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t3-tg1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- - t3-tg1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- - t3-tg1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t3-tg1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- - t3-tg1-c6/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- - t3-tg1-c6/p2 - 10GE port2 on Intel NIC x710 2p10GE.
-```
-
-#### 3-Node-Skylake Servers (3n-skx) PROD
-
-```
-- ServerB11 [Server-Type-B1]:
- - testbedname: testbed31.
- - hostname: s11-t31-sut1.
- - IPMI IP: 10.30.50.43
- - Host IP: 10.30.51.46
- - portnames:
- - s11-t31-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s11-t31-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s11-t31-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s11-t31-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s11-t31-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s11-t31-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s11-t31-sut1-c9/p1 - FUTURE 100GE-port1 ConnectX5-2p100GE.
- - s11-t31-sut1-c9/p2 - FUTURE 100GE-port2 ConnectX5-2p100GE.
-- ServerB12 [Server-Type-B1]:
- - testbedname: testbed31.
- - hostname: s12-t31-sut2.
- - IPMI IP: 10.30.50.44
- - Host IP: 10.30.51.47
- - portnames:
- - s12-t31-sut2-c2/p1 - 10GE-port1 x710-4p10GE.
- - s12-t31-sut2-c2/p2 - 10GE-port2 x710-4p10GE.
- - s12-t31-sut2-c2/p3 - 10GE-port3 x710-4p10GE.
- - s12-t31-sut2-c2/p4 - 10GE-port4 x710-4p10GE.
- - s12-t31-sut2-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s12-t31-sut2-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s12-t31-sut2-c9/p1 - FUTURE 100GE-port1 ConnectX5-2p100GE.
- - s12-t31-sut2-c9/p2 - FUTURE 100GE-port2 ConnectX5-2p100GE.
-- ServerB13 [Server-Type-B2]:
- - testbedname: testbed31.
- - hostname: s13-t31-tg1.
- - IPMI IP: 10.30.50.45
- - Host IP: 10.30.51.48
- - portnames:
- - s13-t31-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s13-t31-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s13-t31-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s13-t31-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s13-t31-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s13-t31-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s13-t31-tg1-c9/p1 - FUTURE 100GE-port1 ConnectX5-2p100GE.
- - s13-t31-tg1-c9/p2 - FUTURE 100GE-port2 ConnectX5-2p100GE.
-- ServerB14 [Server-Type-B1]:
- - testbedname: testbed32.
- - hostname: s14-t32-sut1.
- - IPMI IP: 10.30.50.55
- - Host IP: 10.30.51.58
- - portnames:
- - s14-t32-sut1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s14-t32-sut1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s14-t32-sut1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s14-t32-sut1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s14-t32-sut1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s14-t32-sut1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s14-t32-sut1-c9/p1 - FUTURE 100GE-port1 ConnectX5-2p100GE.
- - s14-t32-sut1-c9/p2 - FUTURE 100GE-port2 ConnectX5-2p100GE.
-- ServerB15 [Server-Type-B1]:
- - testbedname: testbed32.
- - hostname: s15-t32-sut2.
- - IPMI IP: 10.30.50.56
- - Host IP: 10.30.51.59
- - portnames:
- - s15-t32-sut2-c2/p1 - 10GE-port1 x710-4p10GE.
- - s15-t32-sut2-c2/p2 - 10GE-port2 x710-4p10GE.
- - s15-t32-sut2-c2/p3 - 10GE-port3 x710-4p10GE.
- - s15-t32-sut2-c2/p4 - 10GE-port4 x710-4p10GE.
- - s15-t32-sut2-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s15-t32-sut2-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s15-t32-sut2-c9/p1 - FUTURE 100GE-port1 ConnectX5-2p100GE.
- - s15-t32-sut2-c9/p2 - FUTURE 100GE-port2 ConnectX5-2p100GE.
-- ServerB16 [Server-Type-B2]:
- - testbedname: testbed32.
- - hostname: s16-t32-tg1.
- - IPMI IP: 10.30.50.57
- - Host IP: 10.30.51.60
- - portnames:
- - s16-t32-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s16-t32-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s16-t32-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s16-t32-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s16-t32-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s16-t32-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s16-t32-tg1-c9/p1 - FUTURE 100GE-port1 ConnectX5-2p100GE.
- - s16-t32-tg1-c9/p2 - FUTURE 100GE-port2 ConnectX5-2p100GE.
-```
-
-#### 3-Node-Rangeley Servers (3n-rng) VERIFY
-
-Note: There is no IPMI. Serial console is accessible via VIRL2 and VIRL3 USB.
-
-```
-- ServerB22 [Server-Type-B5]:
- - testbedname: testbed35.
- - hostname: s22-t35-sut1 (vex-yul-rot-netgate-1).
- - IPMI IP: 10.30.51.29 - screen -r /dev/ttyUSB0
- - Host IP: 10.30.51.9
- - portnames:
- - s22-t35-sut1-p1 - 10GE-port1 ix0 82599.
- - s22-t35-sut1-p2 - 10GE-port2 ix1 82599.
- - 1GB ports (tbd)
-- ServerB23 [Server-Type-B5]:
- - testbedname: testbed35.
- - hostname: s23-t35-sut2 (vex-yul-rot-netgate-2).
- - IPMI IP: 10.30.51.30 - screen -r /dev/ttyUSB1
- - Host IP: 10.30.51.10
- - portnames:
- - s23-t35-sut1-p1 - 10GE-port1 ix0 82599.
- - s23-t35-sut1-p2 - 10GE-port2 ix1 82599.
- - 1GB ports (tbd)
-- ServerB24 [Server-Type-B5]:
- - testbedname: testbed35.
- - hostname: s24-t35-sut3 (vex-yul-rot-netgate-3).
- - IPMI IP: 10.30.51.30 - screen -r /dev/ttyUSB2
- - Host IP: 10.30.51.11
- - portnames:
- - s24-t35-sut1-p1 - 10GE-port1 ix0 82599.
- - s24-t35-sut1-p2 - 10GE-port2 ix1 82599.
- - 1GB ports (tbd)
-```
-
-#### 3-Node-Taishan Servers (3n-tsh) PROD
-
-Note: Server19 (TG) is shared between testbed33 & testbed34
-
-```
-- SUT [Server-Type-B3]:
- - testbedname: testbed33.
- - hostname: s17-t33-sut1.
- - IPMI IP: 10.30.50.36
- - Host IP: 10.30.51.36
- - portnames:
- - s17-t33-sut1-c6/p1 - 10GE-port1 x520-2p10GE.
- - s17-t33-sut1-c6/p2 - 10GE-port2 x520-2p10GE.
- - s17-t33-sut1-c4/p1 - 25GE-port1 cx4-2p25GE.
- - s17-t33-sut1-c4/p2 - 25GE-port2 cx4-2p25GE.
-- SUT [Server-Type-B3]:
- - testbedname: testbed33.
- - hostname: s18-t33-sut2.
- - IPMI IP: 10.30.50.37
- - Host IP: 10.30.51.37
- - portnames:
- - s18-t33-sut2-c6/p1 - 10GE-port1 x520-2p10GE.
- - s18-t33-sut2-c6/p2 - 10GE-port2 x520-2p10GE.
- - s18-t33-sut2-c4/p1 - 25GE-port1 cx4-2p25GE.
- - s18-t33-sut2-c4/p2 - 25GE-port2 cx4-2p25GE.
-- TG [Server-Type-B12]:
- - testbedname: testbed33 and testbed34.
- - hostname: s19-t33t34-tg1.
- - IPMI IP: 10.30.50.46
- - Host IP: 10.30.51.49
- - portnames:
- - s19-t33t34-tg1-c2/p1 - 10GE-port1 x710-4p10GE.
- - s19-t33t34-tg1-c2/p2 - 10GE-port2 x710-4p10GE.
- - s19-t33t34-tg1-c2/p3 - 10GE-port3 x710-4p10GE.
- - s19-t33t34-tg1-c2/p4 - 10GE-port4 x710-4p10GE.
- - s19-t33t34-tg1-c4/p1 - 25GE-port1 xxv710-DA2-2p25GE.
- - s19-t33t34-tg1-c4/p2 - 25GE-port2 xxv710-DA2-2p25GE.
- - s19-t33t34-tg1-c8/p1 - 40GE-port1 xl710-QDA2-2p40GE.
- - s19-t33t34-tg1-c8/p2 - 40GE-port1 xl710-QDA2-2p40GE.
- - s19-t33t34-tg1-c10/p1 - 10GE-port1 x710-4p10GE.
- - s19-t33t34-tg1-c10/p2 - 10GE-port2 x710-4p10GE.
- - s19-t33t34-tg1-c10/p3 - 10GE-port3 x710-4p10GE.
- - s19-t33t34-tg1-c10/p4 - 10GE-port4 x710-4p10GE.
-```
-
-#### 3-Node-Denverton Servers (3n-dnv) WIP
-
-```
-- ServerB30 [Server-Type-B10]:
- - testbednames: testbed35.
- - hostname: s30-t35-sut1.
- - IPMI IP: 10.30.55.12
- - Host IP: 10.32.8.12
- - portnames:
- - s30-t35-sut1-p1 - 10GE-port1 x553 copper port.
- - s30-t35-sut1-p2 - 10GE-port2 x553 copper port.
- - s30-t35-sut1-p3 - 10GE-port3 x553 fiber port.
- - s30-t35-sut1-p4 - 10GE-port4 x553 fiber port.
-- ServerB31 [Server-Type-B10]:
- - testbednames: testbed35.
- - hostname: s31-t35-sut2.
- - IPMI IP: 10.30.55.13
- - Host IP: 10.32.8.13
- - portnames:
- - s31-t35-sut2-p1 - 10GE-port1 x553 copper port.
- - s31-t35-sut2-p2 - 10GE-port2 x553 copper port.
- - s31-t35-sut2-p3 - 10GE-port3 x553 fiber port.
- - s31-t35-sut2-p4 - 10GE-port4 x553 fiber port.
-```
-
-### Per Testbed Wiring
-
-#### 1-Node-Skylake Wiring (1n-skx) PROD
-
-```
-- testbed11:
- - ring1 10GE-ports x710-4p10GE:
- - s1-t11-sut1-c2/p1 to s1-t11-sut1-c4/p1.
- - ring2 10GE-ports x710-4p10GE:
- - s1-t11-sut1-c2/p2 to s1-t11-sut1-c4/p2.
- - ring3 10GE-ports x710-4p10GE:
- - s1-t11-sut1-c2/p3 to s1-t11-sut1-c4/p3.
- - ring4 10GE-ports x710-4p10GE:
- - s1-t11-sut1-c2/p3 to s1-t11-sut1-c4/p3.
-- testbed12:
- - ring1 10GE-ports x710-4p10GE:
- - s2-t12-sut1-c2/p1 to s2-t12-sut1-c4/p1.
- - ring2 10GE-ports x710-4p10GE:
- - s2-t12-sut1-c2/p2 to s2-t12-sut1-c4/p2.
- - ring3 10GE-ports x710-4p10GE:
- - s2-t12-sut1-c2/p3 to s2-t12-sut1-c4/p3.
- - ring4 10GE-ports x710-4p10GE:
- - s2-t12-sut1-c2/p3 to s2-t12-sut1-c4/p3.
-```
-
-#### 1-Node-ThunderX2 Wiring (1n-tx2) PROD
-
-```
-- testbed36:
- - ring1 40GE-ports XL710-QDA2-2p40GE on SUTs:
- - s55-t36-sut1-c4/p1 - s55-t36-sut1-c14/p1.
- - ring2 40GE-ports XL710-QDA2-2p40GE on SUTs:
- - s55-t36-sut1-c4/p2 - s55-t36-sut1-c14/p2.
- - ring3 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
- - s55-t36-sut1-c8/p1 - s55-t36-sut1-c26/p1.
- - ring4 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
- - s55-t36-sut1-c8/p2 - s55-t36-sut1-c26/p2.
-
-- testbed37:
- - ring1 40GE-ports XL710-QDA2-2p40GE on SUTs:
- - s56-t37-sut1-c4/p1 - s56-t37-sut1-c14/p1.
- - ring2 40GE-ports XL710-QDA2-2p40GE on SUTs:
- - s56-t37-sut1-c4/p2 - s56-t37-sut1-c14/p2.
- - ring3 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
- - s55-t37-sut1-c8/p1 - s55-t37-sut1-c26/p1.
- - ring4 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
- - s55-t37-sut1-c8/p2 - s55-t37-sut1-c26/p2.
-```
-
-#### 1-Node-Cascadelake Wiring (1n-clx) PROD
-
-```
-- testbed14:
- - ring1 10GE-ports x710-4p10GE:
- - s32-t14-sut1-c2/p1 to s32-t14-sut1-c4/p1.
- - ring2 10GE-ports x710-4p10GE:
- - s32-t14-sut1-c2/p2 to s32-t14-sut1-c4/p2.
- - ring3 10GE-ports x710-4p10GE:
- - s32-t14-sut1-c2/p3 to s32-t14-sut1-c4/p3.
- - ring4 10GE-ports x710-4p10GE:
- - s32-t14-sut1-c2/p3 to s32-t14-sut1-c4/p3.
-```
-
-#### 2-Node-Skylake Wiring (2n-skx) PROD
-
-```
-- testbed21:
- - ring1 10GE-ports x710-4p10GE on SUT:
- - s4-t21-tg1-c2/p1 to s3-t21-sut1-c2/p1.
- - s3-t21-sut1-c2/p2 to s4-t21-tg1-c2/p2.
- - ring2 10GE-ports x710-4p10GE on SUT:
- - s4-t21-tg1-c2/p3 to s3-t21-sut1-c2/p3.
- - s3-t21-sut1-c2/p4 to s4-t21-tg1-c2/p4.
- - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
- - s4-t21-tg1-c4/p1 to s3-t21-sut1-c4/p1.
- - s3-t21-sut1-c4/p2 to s4-t21-tg1-c4/p2.
-- testbed22:
- - ring1 10GE-ports x710-4p10GE on SUT:
- - s6-t22-tg1-c2/p1 to s5-t22-sut1-c2/p1.
- - s5-t22-sut1-c2/p2 to s6-t22-tg1-c2/p2.
- - ring2 10GE-ports x710-4p10GE on SUT:
- - s6-t22-tg1-c2/p3 to s5-t22-sut1-c2/p3.
- - s5-t22-sut1-c2/p4 to s6-t22-tg1-c2/p4.
- - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
- - s6-t22-tg1-c4/p1 to s5-t22-sut1-c4/p1.
- - s5-t22-sut1-c4/p2 to s6-t22-tg1-c4/p2.
-- testbed23:
- - ring1 10GE-ports x710-4p10GE on SUT:
- - s8-t23-tg1-c2/p1 to s7-t23-sut1-c2/p1.
- - s7-t23-sut1-c2/p2 to s8-t23-tg1-c2/p2.
- - ring2 10GE-ports x710-4p10GE on SUT:
- - s8-t23-tg1-c2/p3 to s7-t23-sut1-c2/p3.
- - s7-t23-sut1-c2/p4 to s8-t23-tg1-c2/p4.
- - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
- - s8-t23-tg1-c4/p1 to s7-t23-sut1-c4/p1.
- - s7-t23-sut1-c4/p2 to s8-t23-tg1-c4/p2.
-- testbed24:
- - ring1 10GE-ports x710-4p10GE on SUT:
- - s10-t24-tg1-c2/p1 to s9-t24-sut1-c2/p1.
- - s9-t24-sut1-c2/p2 to s10-t24-tg1-c2/p2.
- - ring2 10GE-ports x710-4p10GE on SUT:
- - s10-t24-tg1-c2/p3 to s9-t24-sut1-c2/p3.
- - s9-t24-sut1-c2/p4 to s10-t24-tg1-c2/p4.
- - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
- - s10-t24-tg1-c4/p1 to s9-t24-sut1-c4/p1.
- - s9-t24-sut1-c4/p2 to s10-t24-tg1-c4/p2.
-```
-
-#### 2-Node-Denverton Wiring (2n-dnv) WIP
-
-```
-- testbed26:
- - ring1 10GE-ports x553 copper port on SUT:
- - s28-t26t35-tg1-c4/p1 to s29-t26-sut1-p1.
- - s28-t26t35-tg1-c9/p1 to s29-t26-sut1-p2.
- - ring2 10GE-ports x553 fiber port on SUT:
- - s28-t26t35-tg1-c2/p1 to s29-t26-sut1-p3.
- - s28-t26t35-tg1-c2/p2 to s29-t26-sut1-p4.
-```
-
-#### 2-Node-IxiaPS1L47 Wiring (2n-ps1) VERIFY
-
-```
-- testbed25:
- - link1 10GE-port x710-4p10GE on SUT:
- - t25-tg1-p1 to t25-sut1-c2/p1.
- - link2 10GE-port x710-4p10GE on SUT:
- - t25-tg1-p2 to t25-sut1-c2/p2.
- - link3 10GE-port x710-4p10GE on SUT:
- - t25-tg1-p3 to t25-sut1-c2/p3.
- - link4 10GE-port x710-4p10GE on SUT:
- - t25-tg1-p4 to t25-sut1-c2/p4.
-```
-
-#### 2-Node-Cascadelake Wiring (2n-clx) PROD
-
-```
-- testbed27:
- - ring1 10GE-ports x710-4p10GE on SUT:
- - s34-t27-tg1-c2/p1 to s33-t27-sut1-c2/p1.
- - s33-t27-sut1-c2/p2 to s34-t27-tg1-c2/p2.
- - ring2 10GE-ports x710-4p10GE on SUT:
- - s34-t27-tg1-c2/p3 to s33-t27-sut1-c2/p3.
- - s33-t27-sut1-c2/p4 to s34-t27-tg1-c2/p4.
- - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
- - s34-t27-tg1-c4/p1 to s33-t27-sut1-c4/p1.
- - s33-t27-sut1-c4/p2 to s34-t27-tg1-c4/p2.
- - ring4 100GE-ports ConnectX5-2p100GE on SUT:
- - s34-t27-tg1-c9/p1 to s33-t27-sut1-c9/p1.
- - s33-t27-sut1-c9/p2 to s34-t27-tg1-c9/p2.
- - ring5 100GE-ports e810-2p100GE on SUT:
- - s34-t27-tg1-c6/p1 to s33-t27-sut1-c6/p1.
- - s33-t27-sut1-c6/p2 to s34-t27-tg1-c6/p2.
-- testbed28:
- - ring1 10GE-ports x710-4p10GE on SUT:
- - s36-t28-tg1-c2/p1 to s35-t28-sut1-c2/p1.
- - s35-t28-sut1-c2/p2 to s36-t28-tg1-c2/p2.
- - ring2 10GE-ports x710-4p10GE on SUT:
- - s36-t28-tg1-c2/p3 to s35-t28-sut1-c2/p3.
- - s35-t28-sut1-c2/p4 to s36-t28-tg1-c2/p4.
- - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
- - s36-t28-tg1-c4/p1 to s35-t28-sut1-c4/p1.
- - s35-t28-sut1-c4/p2 to s36-t28-tg1-c4/p2.
- - ring4 100GE-ports ConnectX5-2p100GE on SUT:
- - s36-t28-tg1-c9/p1 to s35-t28-sut1-c9/p1.
- - s35-t28-sut1-c9/p2 to s36-t28-tg1-c9/p2.
- - ring5 100GE-ports e810-2p100GE on SUT:
- - s36-t28-tg1-c6/p1 to s35-t28-sut1-c6/p1.
- - s35-t28-sut1-c6/p2 to s36-t28-tg1-c6/p2.
-- testbed29:
- - ring1 10GE-ports x710-4p10GE on SUT:
- - s38-t29-tg1-c2/p1 to s37-t29-sut1-c2/p1.
- - s37-t29-sut1-c2/p2 to s38-t29-tg1-c2/p2.
- - ring2 10GE-ports x710-4p10GE on SUT:
- - s38-t29-tg1-c2/p3 to s37-t29-sut1-c2/p3.
- - s37-t29-sut1-c2/p4 to s38-t29-tg1-c2/p4.
- - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
- - s38-t29-tg1-c4/p1 to s37-t29-sut1-c4/p1.
- - s37-t29-sut1-c4/p2 to s38-t29-tg1-c4/p2.
- - ring4 100GE-ports ConnectX5-2p100GE on SUT:
- - s38-t29-tg1-c9/p1 to s37-t29-sut1-c9/p1.
- - s37-t29-sut1-c9/p2 to s38-t29-tg1-c9/p2.
- - ring6 100GE-ports e810-2p100GE on SUT:
- - s38-t29-tg1-c6/p1 to s37-t29-sut1-c6/p1.
- - s37-t29-sut1-c6/p2 to s38-t29-tg1-c6/p2.
-```
-
-#### 2-Node-Zen2 Wiring (2n-zn2) PROD
-
-```
-- testbed210:
- - ring1 10GE-ports x710-4p10GE on SUT:
- - s61-t210-tg1-c2/p1 to s60-t210-sut1-c1/p1.
- - s60-t210-sut1-c1/p2 to s61-t210-tg1-c2/p2.
- - ring2 10GE-ports x710-4p10GE on SUT:
- - s61-t210-tg1-c2/p3 to s60-t210-sut1-c1/p3.
- - s60-t210-sut1-c1/p4 to s61-t210-tg1-c2/p4.
- - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
- - s61-t210-tg1-c3/p1 to s60-t210-sut1-c2/p1.
- - s60-t210-sut1-c2/p2 to s61-t210-tg1-c3/p2.
- - ring4 100GE-ports ConnectX5-2p100GE on SUT:
- - s61-t210-tg1-c1/p1 to s60-t210-sut1-c3/p1.
- - s60-t210-sut1-c3/p2 to s61-t210-tg1-c1/p2.
-```
-
-#### 2-Node-ThunderX2 Wiring (2n-tx2) WIP
-
-```
-- testbed34:
- - ring1 10GE-ports x520-2p10GE on SUTs:
- - s27-t34-sut1-c18/p1 - s19-t33t34-tg1-c8/p1.
- - s27-t34-sut1-c18/p2 - s19-t33t34-tg1-c8/p2.
-```
-
-
-#### 3-Node-Haswell Wiring (3n-hsw) PROD
-
-```
- 1. testbed1:
- - ring of 40GE ports on Cisco VIC 1385 2p40GE on SUTs
- - t1-tg1-c1/p1 to t1-sut1-c1/p2.
- - t1-sut1-c1/p1 to t1-sut2-c1/p2.
- - t1-sut2-c1/p1 to t1-tg1-c1/p2.
- - ring of 10GE ports on Intel NIC x520 2p10GE on SUTs
- - t1-tg1-c2/p1 to t1-sut1-c2/p2.
- - t1-sut1-c2/p1 to t1-sut2-c2/p2.
- - t1-sut2-c2/p1 to t1-tg1-c2/p2.
- - ring of 40GE ports on Intel NIC xl710 2p40GE on SUTs
- - t1-tg1-c4/p1 to t1-sut1-c4/p2.
- - t1-sut1-c4/p1 to t1-sut2-c4/p2.
- - t1-sut2-c4/p1 to t1-tg1-c4/p2.
- - ring of 10GE ports on Intel NIC x710 2p10GE on SUTs
- - t1-tg1-c5/p1 to t1-sut1-c5/p2.
- - t1-sut1-c5/p1 to t1-sut2-c5/p2.
- - t1-sut2-c5/p1 to t1-tg1-c5/p2.
- - ring of 10GE ports on Cisco VIC 1227 2p10GE on SUTs
- - t1-tg1-c2/p1 to t1-sut1-cm/p2.
- - t1-sut1-cm/p1 to t1-sut2-cm/p2.
- - t1-sut2-cm/p1 to t1-tg1-c2/p2.
- - TG loopback ports Intel NIC x710 2p10GE
- - t1-tg1-c6/p1 to t1-tg1-c6/p2.
-
- 2. testbed2:
- - ring of 40GE ports on Cisco VIC 1385 2p40GE on SUTs
- - t2-tg1-c1/p1 to t2-sut1-c1/p2.
- - t2-sut1-c1/p1 to t2-sut2-c1/p2.
- - t2-sut2-c1/p1 to t2-tg1-c1/p2.
- - ring of 10GE ports on Intel NIC x520 2p10GE on SUTs
- - t2-tg1-c2/p1 to t2-sut1-c2/p2.
- - t2-sut1-c2/p1 to t2-sut2-c2/p2.
- - t2-sut2-c2/p1 to t2-tg1-c2/p2.
- - ring of 40GE ports on Intel NIC xl710 2p40GE on SUTs
- - t2-tg1-c4/p1 to t2-sut1-c4/p2.
- - t2-sut1-c4/p1 to t2-sut2-c4/p2.
- - t2-sut2-c4/p1 to t2-tg1-c4/p2.
- - ring of 10GE ports on Intel NIC x710 2p10GE on SUTs
- - t2-tg1-c5/p1 to t2-sut1-c5/p2.
- - t2-sut1-c5/p1 to t2-sut2-c5/p2.
- - t2-sut2-c5/p1 to t2-tg1-c5/p2.
- - ring of 10GE ports on Cisco VIC 1227 2p10GE on SUTs
- - t2-tg1-c2/p1 to t2-sut1-cm/p2.
- - t2-sut1-cm/p1 to t2-sut2-cm/p2.
- - t2-sut2-cm/p1 to t2-tg1-c2/p2.
- - TG loopback ports Intel NIC x710 2p10GE
- - t2-tg1-c6/p1 to t2-tg1-c6/p2.
-
- 3. testbed3:
- - ring of 40GE ports on Cisco VIC 1385 2p40GE on SUTs
- - t3-tg1-c1/p1 to t3-sut1-c1/p2.
- - t3-sut1-c1/p1 to t3-sut2-c1/p2.
- - t3-sut2-c1/p1 to t3-tg1-c1/p2.
- - ring of 10GE ports on Intel NIC x520 2p10GE on SUTs
- - t3-tg1-c2/p1 to t3-sut1-c2/p2.
- - t3-sut1-c2/p1 to t3-sut2-c2/p2.
- - t3-sut2-c2/p1 to t3-tg1-c2/p2.
- - ring of 40GE ports on Intel NIC xl710 2p40GE on SUTs
- - t3-tg1-c4/p1 to t3-sut1-c4/p2.
- - t3-sut1-c4/p1 to t3-sut2-c4/p2.
- - t3-sut2-c4/p1 to t3-tg1-c4/p2.
- - ring of 10GE ports on Intel NIC x710 2p10GE on SUTs
- - t3-tg1-c5/p1 to t3-sut1-c5/p2.
- - t3-sut1-c5/p1 to t3-sut2-c5/p2.
- - t3-sut2-c5/p1 to t3-tg1-c5/p2.
- - ring of 10GE ports on Cisco VIC 1227 2p10GE on SUTs
- - t3-tg1-c2/p1 to t3-sut1-cm/p2.
- - t3-sut1-cm/p1 to t3-sut2-cm/p2.
- - t3-sut2-cm/p1 to t3-tg1-c2/p2.
- - TG loopback ports Intel NIC x710 2p10GE
- - t3-tg1-c6/p1 to t3-tg1-c6/p2.
-```
-
-#### 3-Node-Skylake Wiring (3n-skx) PROD
-
-```
-- testbed31:
- - ring1 10GE-ports x710-4p10GE on SUTs:
- - s13-t31-tg1-c2/p1 to s11-t31-sut1-c2/p1.
- - s11-t31-sut1-c2/p2 to s12-t31-sut2-c2/p2.
- - s12-t31-sut2-c2/p1 to s13-t31-tg1-c2/p2.
- - ring2 10GE-ports x710-4p10GE on SUT:
- - s13-t31-tg1-c2/p3 to s11-t31-sut1-c2/p3.
- - s11-t31-sut1-c2/p4 to s12-t31-sut2-c2/p4.
- - s12-t31-sut2-c2/p3 to s13-t31-tg1-c2/p4.
- - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
- - s13-t31-tg1-c4/p1 to s11-t31-sut1-c4/p1.
- - s11-t31-sut1-c4/p2 to s12-t31-sut2-c4/p2.
- - s12-t31-sut2-c4/p1 to s13-t31-tg1-c4/p2.
- - FUTURE ring4 100GE-ports ConnectX5-2p100GE on SUT:
- - s13-t31-tg1-c9/p1 to s11-t31-sut1-c9/p1.
- - s11-t31-sut1-c9/p2 to s12-t31-sut2-c9/p2.
- - s12-t31-sut2-c9/p1 to s13-t31-tg1-c9/p2.
- - ring5 10GE-ports x710-4p10GE loopbacks on TG for self-tests:
- - s13-t31-tg1-c10/p1 to s13-t31-tg1-c10/p2.
- - s13-t31-tg1-c10/p3 to s13-t31-tg1-c10/p4.
-- testbed32:
- - ring1 10GE-ports x710-4p10GE on SUTs:
- - s16-t32-tg1-c2/p1 to s14-t32-sut1-c2/p1.
- - s14-t32-sut1-c2/p2 to s15-t32-sut2-c2/p2.
- - s15-t32-sut2-c2/p1 to s16-t32-tg1-c2/p2.
- - ring2 10GE-ports x710-4p10GE on SUT:
- - s16-t32-tg1-c2/p3 to s14-t32-sut1-c2/p3.
- - s14-t32-sut1-c2/p4 to s15-t32-sut2-c2/p4.
- - s15-t32-sut2-c2/p3 to s16-t32-tg1-c2/p4.
- - ring3 25GE-ports xxv710-DA2-2p25GE on SUT
- - s16-t32-tg1-c4/p1 to s14-t32-sut1-c4/p1.
- - s14-t32-sut1-c4/p2 to s15-t32-sut2-c4/p2.
- - s15-t32-sut2-c4/p1 to s16-t32-tg1-c4/p2.
- - FUTURE ring4 100GE-ports ConnectX5-2p100GE on SUT:
- - s16-t32-tg1-c9/p1 to s14-t32-sut1-c9/p1.
- - s14-t32-sut1-c9/p2 to s15-t32-sut2-c9/p2.
- - s15-t32-sut2-c9/p1 to s16-t32-tg1-c9/p2.
- - ring5 10GE-ports x710-4p10GE loopbacks on TG for self-tests:
- - s16-t32-tg1-c10/p1 to s16-t32-tg1-c10/p2.
- - s16-t32-tg1-c10/p3 to s16-t32-tg1-c10/p4.
-```
-
-#### 3-Node-Rangeley Wiring (3n-rng) TODO
-
-```
-To be completed.
-```
-
-#### 3-Node-Taishan Wiring (3n-tsh) PROD
-
-```
-- testbed33:
- - ring1 10GE-ports x520-2p10GE on SUTs:
- - s19-t33t34-tg1-c2/p2 - s17-t33-sut1-c6/p2.
- - s17-t33-sut1-c6/p1 - s18-t33-sut2-c6/p2.
- - s18-t33-sut2-c6/p1 - s19-t33t34-tg1-c2/p1.
- - ring2 25GE-ports cx4-2p25GE on SUTs:
- - s19-t33t34-tg1-c4/p2 - s17-t33-sut1-c4/p2.
- - s17-t33-sut1-c4/p1 - s18-t33-sut2-c4/p2.
- - s18-t33-sut2-c4/p1 - s19-t33t34-tg1-c4/p1.
-```
-
-#### 3-Node-Denverton Wiring (3n-dnv) WIP
-
-```
-- testbed35:
- - ring1 10GE-ports x553 copper port on SUTs:
- - s28-t26t35-tg1-c8/p1 to s30-t35-sut1-p2.
- - s30-t35-sut1-p1 to s31-t35-sut2-p1.
- - s28-t26t35-tg1-c10/p1 to s31-t35-sut2-p2.
- - ring2 10GE-ports x553 fiber port on SUTs:
- - s28-t26t35-tg1-c6/p1 to s30-t35-sut1-p4.
- - s30-t35-sut1-p3 to s31-t35-sut2-p3.
- - s28-t26t35-tg1-c6/p2 to s31-t35-sut2-p4.
-```
-
-## Inventory
-
-### Appliances
-
-```
-1. Ixia PerfectStorm One Appliance
- - 1 * PS10GE4NG
- - Chassis: PS10GE4NG.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: Quad-Core, Intel Processor.
- - HW accelerators: FPGA offload.
- - RAM Memory: 64GB.
- - Disks: 1 * 1 TB, Enterprise Class, High MTBF.
- - Physical Interfaces: 4 * 10GE SFP+.
- - Operating System: Native IxOS.
-```
-
-### Arm Servers
-
-```
-1. Arm Cortex A-72 servers
- - 2 * ThunderX2 (VPP Device)
- - Chassis: GIGABYTE Rack Mount
- - Processors: 2* ThunderX2 CN9980 ~ 32* ThunderX2
- - RAM Memory: 16* 16GB DIMM
- - Disks: 2* 480GB 6G SATA SSD SAMSUNG MZ7LH480
- - 1 * ThunderX2 (Performance)
- - Chassis: GIGABYTE Rack Mount
- - Processors: 2* ThunderX2 CN9975 ~ 28* ThunderX2.
- - RAM Memory: 4* 32GB RDIMM
- - Disks: 1* 480GB SSD Micron, 1* 1000GB HDD Seagate_25
- - 2 * Huawei TaiShan 2280.
- - Chassis: Huawei TaiShan 2280.
- - Processors: 2* hip07-d05 ~ 32* Arm Cortex-A72.
- - RAM Memory: 8* 16GB DDR4-2400MT/s.
- - Disks: 1* 4TB SATA HDD.
-```
-
-### Xeon and Atom Servers
-
-```
-1. Intel Xeon servers:
- - 20 * SuperMicro SYS-7049GP-TRT with Xeon Skylake processors.
- - Chassis: SuperMicro SYS-7049GP-TRT.
- - Motherboard: SuperMicro X11DPG-QT.
- - Processors: 2* Intel Platinum 8180 2.5 GHz.
- - RAM Memory: 16* 16GB DDR4-2666MHz.
- - Disks: 2* 1.6TB 6G SATA SSD.
-2. Intel Atom servers with Rangely processors.
- - 3 * Netgate XG-2758-1u
- - Chassis: Netgate XG-2758-1u
- - Processors: 1* Rangely (Atom) C2758 2.4 GHz
- - RAM Memory: 16GB ECC
- - Disks: 150 GB
-```
-
-### Network Interface Cards
-
-```
-1. 10GE NICs
- - 14 * Intel® Ethernet Converged Network Adapter X710-DA4
- - 6 * Intel® Ethernet Converged Network Adapter X710-DA2
- - 6 * Intel® Ethernet Converged Network Adapter X520-DA2
-2. 25GE NICs
- - 12 * Intel® Ethernet Network Adapter XXV710-DA2
-3. 40GE NICs
- - 2 * Intel® Ethernet Converged Network Adapter XL710-QDA2
-4. 100GE NICs
- - 4 * mcx556a-edat NICs (not on site yet, in transit)
-```
-
-### Pluggables and Cables
-
-Pluggables:
-
-```
-1. 10GE SFP+
- - 16 * Intel E10GSFPSR Ethernet SFP+ SR Optics
- - 80 * 10G SR optic (generic, "Intel" compatible branded)
-2. 25GE SFP28
- - None
-3. 40GE QSFP+
- - None
-4. 100GE
- - 8 * mcp1600-c002 qsfp28 pluggables and cables (not on site yet, in transit)
-```
-
-Standalone cables:
-
-```
-1. 10GE
- - None
-2. 25GE
- - None
-3. 40GE QSFP+
- - 20 * Intel XLDACBL5 40G QSFP+ Passive DAC Cable
-4. 100GE
- - None
-```
-
-### Other Parts
-
-None.
diff --git a/docs/lab/testbeds_sm_clx_hw_bios_cfg.md b/docs/lab/testbeds_sm_clx_hw_bios_cfg.md
deleted file mode 100644
index f29ec4272a..0000000000
--- a/docs/lab/testbeds_sm_clx_hw_bios_cfg.md
+++ /dev/null
@@ -1,1453 +0,0 @@
-# SuperMicro Cascadelake Servers - HW and BIOS Configuration
-
-1. [Linux lscpu](#linux-lscpu)
-1. [Linux dmidecode](#dmidecode)
-1. [Linux dmidecode pci](#linux-dmidecode-pci)
-1. [Linux dmidecode memory](#linux-dmidecode-memory)
-1. [Xeon Clx Server BIOS Configuration](#xeon-clx-server-bios-configuration)
- 1. [Boot Feature](#boot-feature)
- 1. [CPU Configuration](#cpu-configuration)
- 1. [Advanced Power Management Configuration](#advanced-power-management-configuration)
- 1. [CPU P State Control](#cpu-p-state-control)
- 1. [Hardware PM State Control](#hardware-pm-state-control)
- 1. [CPU C State Control](#cpu-c-state-control)
- 1. [Package C State Control](#package-c-state-control)
- 1. [CPU T State Control](#cpu-t-state-control)
- 1. [Chipset Configuration](#chipset-configuration)
- 1. [North Bridge](#north-bridge)
- 1. [UPI Configuration](#upi-configuration)
- 1. [Memory Configuration](#memory-configuration)
- 1. [IIO Configuration](#iio-configuration)
- 1. [CPU1 Configuration](#cpu1-configuration)
- 1. [CPU2 Configuration](#cpu2-configuration)
- 1. [South Bridge](#south-bridge)
- 1. [PCIe/PCI/PnP Configuration](#pciepcipnp-configuration)
- 1. [ACPI Settings](#acpi-settings)
-1. [Xeon Clx Server Firmware Inventory](#xeon-clx-server-firmware-inventory)
-
-## Linux lscpu
-
-```
-$ lscpu
-Architecture: x86_64
-CPU op-mode(s): 32-bit, 64-bit
-Byte Order: Little Endian
-CPU(s): 112
-On-line CPU(s) list: 0-111
-Thread(s) per core: 2
-Core(s) per socket: 28
-Socket(s): 2
-NUMA node(s): 2
-Vendor ID: GenuineIntel
-CPU family: 6
-Model: 85
-Model name: Intel(R) Xeon(R) Platinum 8280 CPU @ 2.70GHz
-Stepping: 7
-CPU MHz: 3299.609
-BogoMIPS: 5400.00
-Virtualization: VT-x
-L1d cache: 32K
-L1i cache: 32K
-L2 cache: 1024K
-L3 cache: 39424K
-NUMA node0 CPU(s): 0-27,56-83
-NUMA node1 CPU(s): 28-55,84-111
-Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
-cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
-pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology
-nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est
-tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt
-tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch
-cpuid_fault epb cat_l3 cdp_l3 invpcid_single ssbd mba ibrs ibpb stibp
-ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1
-hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx
-smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1
-xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts
-pku ospke avx512_vnni md_clear flush_l1d arch_capabilities
-```
-
-```
-$ lscpu
-Architecture: x86_64
-CPU op-mode(s): 32-bit, 64-bit
-Byte Order: Little Endian
-CPU(s): 96
-On-line CPU(s) list: 0-95
-Thread(s) per core: 2
-Core(s) per socket: 24
-Socket(s): 2
-NUMA node(s): 2
-Vendor ID: GenuineIntel
-CPU family: 6
-Model: 85
-Model name: Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz
-Stepping: 7
-CPU MHz: 3000.989
-BogoMIPS: 4600.00
-Virtualization: VT-x
-L1d cache: 32K
-L1i cache: 32K
-L2 cache: 1024K
-L3 cache: 36608K
-NUMA node0 CPU(s): 0-23,48-71
-NUMA node1 CPU(s): 24-47,72-95
-Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
-cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
-pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology
-nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2
-ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt
-tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch
-cpuid_fault epb cat_l3 cdp_l3 invpcid_single ssbd mba ibrs ibpb stibp
-ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle
-avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap
-clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1
-xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts
-pku ospke avx512_vnni md_clear flush_l1d arch_capabilities
-```
-
-## Linux dmidecode
-
-```
- # dmidecode 3.1
- Getting SMBIOS data from sysfs.
- SMBIOS 3.1.2 present.
- Table at 0x6EB92000.
-
- Handle 0x0000, DMI type 0, 26 bytes
- BIOS Information
- Vendor: American Megatrends Inc.
- Version: 3.0c
- Release Date: 03/27/2019
- Address: 0xF0000
- Runtime Size: 64 kB
- ROM Size: 32 MB
- Characteristics:
- PCI is supported
- BIOS is upgradeable
- BIOS shadowing is allowed
- Boot from CD is supported
- Selectable boot is supported
- BIOS ROM is socketed
- EDD is supported
- 5.25"/1.2 MB floppy services are supported (int 13h)
- 3.5"/720 kB floppy services are supported (int 13h)
- 3.5"/2.88 MB floppy services are supported (int 13h)
- Print screen service is supported (int 5h)
- Serial services are supported (int 14h)
- Printer services are supported (int 17h)
- ACPI is supported
- USB legacy is supported
- BIOS boot specification is supported
- Targeted content distribution is supported
- UEFI is supported
- BIOS Revision: 5.14
-
- Handle 0x0001, DMI type 1, 27 bytes
- System Information
- Manufacturer: Supermicro
- Product Name: SYS-7049GP-TRT
- Version: 0123456789
- Serial Number: S291427X9525476
- UUID: 00000000-0000-0000-0000-AC1F6BACD7BA
- Wake-up Type: Power Switch
- SKU Number: To be filled by O.E.M.
- Family: To be filled by O.E.M.
-
- Handle 0x0002, DMI type 2, 15 bytes
- Base Board Information
- Manufacturer: Supermicro
- Product Name: X11DPG-QT
- Version: 1.10A
- Serial Number: VM189S007860
- Asset Tag: To be filled by O.E.M.
- Features:
- Board is a hosting board
- Board is replaceable
- Location In Chassis: To be filled by O.E.M.
- Chassis Handle: 0x0003
- Type: Motherboard
- Contained Object Handles: 0
-
- Handle 0x0003, DMI type 3, 22 bytes
- Chassis Information
- Manufacturer: Supermicro
- Type: Other
- Lock: Not Present
- Version: 0123456789
- Serial Number: C7470KH37A30566
- Asset Tag: To be filled by O.E.M.
- Boot-up State: Safe
- Power Supply State: Safe
- Thermal State: Safe
- Security Status: None
- OEM Information: 0x00000000
- Height: Unspecified
- Number Of Power Cords: 1
- Contained Elements: 0
- SKU Number: To be filled by O.E.M.
-
- Handle 0x0055, DMI type 4, 48 bytes
- Processor Information
- Socket Designation: CPU1
- Type: Central Processor
- Family: Xeon
- Manufacturer: Intel(R) Corporation
- ID: 57 06 05 00 FF FB EB BF
- Signature: Type 0, Family 6, Model 85, Stepping 7
- Flags:
- FPU (Floating-point unit on-chip)
- VME (Virtual mode extension)
- DE (Debugging extension)
- PSE (Page size extension)
- TSC (Time stamp counter)
- MSR (Model specific registers)
- PAE (Physical address extension)
- MCE (Machine check exception)
- CX8 (CMPXCHG8 instruction supported)
- APIC (On-chip APIC hardware supported)
- SEP (Fast system call)
- MTRR (Memory type range registers)
- PGE (Page global enable)
- MCA (Machine check architecture)
- CMOV (Conditional move instruction supported)
- PAT (Page attribute table)
- PSE-36 (36-bit page size extension)
- CLFSH (CLFLUSH instruction supported)
- DS (Debug store)
- ACPI (ACPI supported)
- MMX (MMX technology supported)
- FXSR (FXSAVE and FXSTOR instructions supported)
- SSE (Streaming SIMD extensions)
- SSE2 (Streaming SIMD extensions 2)
- SS (Self-snoop)
- HTT (Multi-threading)
- TM (Thermal monitor supported)
- PBE (Pending break enabled)
- Version: Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz
- Voltage: 1.6 V
- External Clock: 100 MHz
- Max Speed: 4500 MHz
- Current Speed: 2300 MHz
- Status: Populated, Enabled
- Upgrade: Socket LGA3647-1
- L1 Cache Handle: 0x0052
- L2 Cache Handle: 0x0053
- L3 Cache Handle: 0x0054
- Serial Number: Not Specified
- Asset Tag: UNKNOWN
- Part Number: Not Specified
- Core Count: 24
- Core Enabled: 24
- Thread Count: 48
- Characteristics:
- 64-bit capable
- Multi-Core
- Hardware Thread
- Execute Protection
- Enhanced Virtualization
- Power/Performance Control
-
- Handle 0x0059, DMI type 4, 48 bytes
- Processor Information
- Socket Designation: CPU2
- Type: Central Processor
- Family: Xeon
- Manufacturer: Intel(R) Corporation
- ID: 57 06 05 00 FF FB EB BF
- Signature: Type 0, Family 6, Model 85, Stepping 7
- Flags:
- FPU (Floating-point unit on-chip)
- VME (Virtual mode extension)
- DE (Debugging extension)
- PSE (Page size extension)
- TSC (Time stamp counter)
- MSR (Model specific registers)
- PAE (Physical address extension)
- MCE (Machine check exception)
- CX8 (CMPXCHG8 instruction supported)
- APIC (On-chip APIC hardware supported)
- SEP (Fast system call)
- MTRR (Memory type range registers)
- PGE (Page global enable)
- MCA (Machine check architecture)
- CMOV (Conditional move instruction supported)
- PAT (Page attribute table)
- PSE-36 (36-bit page size extension)
- CLFSH (CLFLUSH instruction supported)
- DS (Debug store)
- ACPI (ACPI supported)
- MMX (MMX technology supported)
- FXSR (FXSAVE and FXSTOR instructions supported)
- SSE (Streaming SIMD extensions)
- SSE2 (Streaming SIMD extensions 2)
- SS (Self-snoop)
- HTT (Multi-threading)
- TM (Thermal monitor supported)
- PBE (Pending break enabled)
- Version: Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz
- Voltage: 1.6 V
- External Clock: 100 MHz
- Max Speed: 4500 MHz
- Current Speed: 2300 MHz
- Status: Populated, Enabled
- Upgrade: Socket LGA3647-1
- L1 Cache Handle: 0x0056
- L2 Cache Handle: 0x0057
- L3 Cache Handle: 0x0058
- Serial Number: Not Specified
- Asset Tag: UNKNOWN
- Part Number: Not Specified
- Core Count: 24
- Core Enabled: 24
- Thread Count: 48
- Characteristics:
- 64-bit capable
- Multi-Core
- Hardware Thread
- Execute Protection
- Enhanced Virtualization
- Power/Performance Control
-```
-
-## Linux dmidecode pci
-
-```
- $ dmidecode -t slot
- Handle 0x000B, DMI type 9, 17 bytes
- System Slot Information
- Designation: CPU1 SLOT2 PCI-E 3.0 X16
- Type: x16 PCI Express 3 x16
- Current Usage: In Use
- Length: Long
- ID: 2
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:18:00.0
-
- Handle 0x000C, DMI type 9, 17 bytes
- System Slot Information
- Designation: CPU1 SLOT4 PCI-E 3.0 X16
- Type: x16 PCI Express 3 x16
- Current Usage: In Use
- Length: Short
- ID: 4
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:3b:00.0
-
- Handle 0x000D, DMI type 9, 17 bytes
- System Slot Information
- Designation: CPU2 SLOT6 PCI-E 3.0 X16
- Type: x16 PCI Express 3 x16
- Current Usage: Available
- Length: Short
- ID: 6
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:ff:00.0
-
- Handle 0x000E, DMI type 9, 17 bytes
- System Slot Information
- Designation: CPU2 SLOT8 PCI-E 3.0 X16
- Type: x16 PCI Express 3 x16
- Current Usage: Available
- Length: Short
- ID: 8
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:ff:00.0
-
- Handle 0x000F, DMI type 9, 17 bytes
- System Slot Information
- Designation: CPU1 SLOT9 PCI-E 3.0 X16
- Type: x16 PCI Express 3 x16
- Current Usage: Available
- Length: Short
- ID: 9
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:ff:00.0
-
- Handle 0x0010, DMI type 9, 17 bytes
- System Slot Information
- Designation: CPU2 SLOT10 PCI-E 3.0 X16
- Type: x16 PCI Express 3 x16
- Current Usage: Available
- Length: Short
- ID: 10
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:ff:00.0
-
- Handle 0x0011, DMI type 9, 17 bytes
- System Slot Information
- Designation: CPU2 SLOT11 PCI-E 3.0 X4(IN X8)
- Type: x4 PCI Express 3 x8
- Current Usage: Available
- Length: Short
- ID: 11
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:ff:00.0
-
- Handle 0x0012, DMI type 9, 17 bytes
- System Slot Information
- Designation: M.2 CONNECTOR
- Type: x4 M.2 Socket 2
- Current Usage: Available
- Length: Short
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:ff:00.0
-```
-
-## Linux dmidecode memory
-
-```
- $ dmidecode -t memory
- Handle 0x0021, DMI type 16, 23 bytes
- Physical Memory Array
- Location: System Board Or Motherboard
- Use: System Memory
- Error Correction Type: Single-bit ECC
- Maximum Capacity: 2304 GB
- Error Information Handle: Not Provided
- Number Of Devices: 4
-
- Handle 0x0023, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0021
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P1-DIMMA1
- Bank Locator: P0_Node0_Channel0_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93275F0E
- Asset Tag: P1-DIMMA1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0024, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0021
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: P1-DIMMA2
- Bank Locator: P0_Node0_Channel0_Dimm1
- Type: Unknown
- Type Detail: Unknown
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0025, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0021
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P1-DIMMB1
- Bank Locator: P0_Node0_Channel1_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93275F1F
- Asset Tag: P1-DIMMB1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0027, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0021
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P1-DIMMC1
- Bank Locator: P0_Node0_Channel2_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93275F07
- Asset Tag: P1-DIMMC1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x002B, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0029
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P1-DIMMD1
- Bank Locator: P0_Node1_Channel0_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93275F02
- Asset Tag: P1-DIMMD1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x002C, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0029
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: P1-DIMMD2
- Bank Locator: P0_Node1_Channel0_Dimm1
- Type: Unknown
- Type Detail: Unknown
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x002D, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0029
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P1-DIMME1
- Bank Locator: P0_Node1_Channel1_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93275F19
- Asset Tag: P1-DIMME1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x002F, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0029
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P1-DIMMF1
- Bank Locator: P0_Node1_Channel2_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93275FD3
- Asset Tag: P1-DIMMF1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0031, DMI type 16, 23 bytes
- Physical Memory Array
- Location: System Board Or Motherboard
- Use: System Memory
- Error Correction Type: Single-bit ECC
- Maximum Capacity: 2304 GB
- Error Information Handle: Not Provided
- Number Of Devices: 4
-
- Handle 0x0033, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0031
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P2-DIMMA1
- Bank Locator: P1_Node0_Channel0_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93275FE2
- Asset Tag: P2-DIMMA1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0034, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0031
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: P2-DIMMA2
- Bank Locator: P1_Node0_Channel0_Dimm1
- Type: Unknown
- Type Detail: Unknown
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0035, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0031
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P2-DIMMB1
- Bank Locator: P1_Node0_Channel1_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93276001
- Asset Tag: P2-DIMMB1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0037, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0031
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P2-DIMMC1
- Bank Locator: P1_Node0_Channel2_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93276005
- Asset Tag: P2-DIMMC1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0039, DMI type 16, 23 bytes
- Physical Memory Array
- Location: System Board Or Motherboard
- Use: System Memory
- Error Correction Type: Single-bit ECC
- Maximum Capacity: 2304 GB
- Error Information Handle: Not Provided
- Number Of Devices: 4
-
- Handle 0x003B, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0039
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P2-DIMMD1
- Bank Locator: P1_Node1_Channel0_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93275F44
- Asset Tag: P2-DIMMD1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x003C, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0039
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: P2-DIMMD2
- Bank Locator: P1_Node1_Channel0_Dimm1
- Type: Unknown
- Type Detail: Unknown
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x003D, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0039
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P2-DIMME1
- Bank Locator: P1_Node1_Channel1_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93275FDF
- Asset Tag: P2-DIMME1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x003F, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0039
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 16384 MB
- Form Factor: DIMM
- Set: None
- Locator: P2-DIMMF1
- Bank Locator: P1_Node1_Channel2_Dimm0
- Type: DDR4
- Type Detail: Synchronous
- Speed: 2933 MT/s
- Manufacturer: SK Hynix
- Serial Number: 93275FDD
- Asset Tag: P2-DIMMF1_AssetTag (date:19/22)
- Part Number: HMA82GR7CJR8N-WM
- Rank: 2
- Configured Clock Speed: 2934 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-```
-
-## Xeon CLX Server BIOS Configuration - TG
-
-### Boot Feature
-
-```
- | Quiet Boot [Enabled] |Boot option |
- | | |
- | Option ROM Messages [Force BIOS] | |
- | Bootup NumLock State [On] | |
- | Wait For "F1" If Error [Enabled] | |
- | INT19 Trap Response [Immediate] | |
- | Re-try Boot [Disabled] | |
- | Install Windows 7 USB support [Disabled] | |
- | Port 61h Bit-4 Emulation [Disabled] | |
- | | |
- | Power Configuration | |
- | Watch Dog Function [Disabled] | |
- | Restore on AC Power Loss [Last State] | |
- | Power Button Function [Instant Off] | |
-```
-
-### CPU Configuration
-
-```
- | Processor Configuration ^|Enables Hyper Threading |
- | -------------------------------------------------- *|(Software Method to |
- | Processor BSP Revision 50657 - CLX B1 *|Enable/Disable Logical |
- | Processor Socket CPU1 | CPU2 *|Processor threads. |
- | Processor ID 00050657* | 00050657 *| |
- | Processor Frequency 2.700GHz | 2.700GHz *| |
- | Processor Max Ratio 1BH | 1BH *| |
- | Processor Min Ratio 0AH | 0AH *| |
- | Microcode Revision 0500002C | 0500002C *| |
- | L1 Cache RAM 64KB | 64KB *| |
- | L2 Cache RAM 1024KB | 1024KB *| |
- | L3 Cache RAM 39424KB | 39424KB *| |
- | Processor 0 Version *| |
- | Intel(R) Xeon(R) Platinum 8280 CPU @ 2.70GHz *| |
- | Processor 1 Version *| |
- | Intel(R) Xeon(R) Platinum 8280 CPU @ 2.70GHz *| |
- | *|-----------------------------|
- | Hyper-Threading [ALL] [Enable] *|><: Select Screen |
- | Cores Enabled 0 *|^v: Select Item |
- | Monitor/Mwait [Auto] *|Enter: Select |
- | Execute Disable Bit [Enable] +|+/-: Change Opt. |
- | Intel Virtualization Technology [Enable] +|F1: General Help |
- | PPIN Control [Unlock/Enable] +|F2: Previous Values |
- | Hardware Prefetcher [Enable] +|F3: Optimized Defaults |
- | Adjacent Cache Prefetch [Enable] v|F4: Save & Exit |
- | DCU Streamer Prefetcher [Enable] | |
- | DCU IP Prefetcher [Enable] | |
- | LLC Prefetch [Disable] | |
- | Extended APIC [Disable] | |
- | AES-NI [Enable] | |
- |> Advanced Power Management Configuration | |
-```
-
-#### Advanced Power Management Configuration
-
-```
- | Advanced Power Management Configuration |Switch CPU Power Management |
- | -------------------------------------------------- |profile |
- | Power Technology [Custom] | |
- | Power Performance Tuning [BIOS Controls EPB] | |
- | ENERGY_PERF_BIAS_CFG mode [Maximum Performance] | |
- |> CPU P State Control | |
- |> Hardware PM State Control | |
- |> CPU C State Control | |
- |> Package C State Control | |
- |> CPU T State Control | |
-```
-
-##### CPU P State Control
-
-```
- | CPU P State Control |EIST allows the processor |
- | |to dynamically adjust |
- | SpeedStep (P-States) [Disable] |frequency and voltage based |
- | EIST PSD Function [HW_ALL] |on power versus performance |
- | |needs. |
- | | |
-```
-
-##### Hardware PM State Control
-
-```
- | Hardware PM State Control |If set to Disable, hardware ^|
- | |will choose a P-state *|
- | Hardware P-States [Disable] |setting for the system *|
- | |based on an OS request. *|
- | |If set to Native Mode, *|
- | |hardware will choose a *|
- | |P-state setting based on OS *|
- | |guidance. *|
- | |If set to Native Mode with *|
- | |No Legacy Support, hardware *|
- | |will choose a P-state *|
- | |setting independently *|
- | |without OS guidance. +|
- | |If set to Out of Band Mode, +|
- | |hardware autonomously v|
-```
-
-##### CPU C State Control
-
-```
- | CPU C State Control |Select Enable to support |
- | |Autonomous Core C-State |
- | Autonomous Core C-State [Disable] |control which will allow |
- | CPU C6 report [Disable] |the processor core to |
- | Enhanced Halt State (C1E) [Disable] |control its C-State setting |
- | |automatically and |
- | |independently. |
-```
-
-##### Package C State Control
-
-```
- | Package C State Control |Limit the lowest package |
- | |level C-State to |
- | Package C State [C0/C1 state] |processors. Lower package |
- | |C-State lower processor |
- | |power consumption upon idle. |
-```
-
-##### CPU T State Control
-
-```
- | CPU T State Control |Enable/Disable CPU |
- | |throttling by OS. |
- | Software Controlled T-States [Disable] |Throttling reduces power |
- | |consumption |
-```
-
-#### Chipset Configuration
-
-```
- | WARNING: Setting wrong values in below sections may cause |North Bridge Parameters |
- | system to malfunction. | |
- |> North Bridge | |
- |> South Bridge | |
-```
-
-##### North Bridge
-
-```
- |> UPI Configuration |Displays and provides |
- |> Memory Configuration |option to change the UPI |
- |> IIO Configuration |Settings |
-```
-
-##### UPI Configuration
-
-```
- | UPI Configuration |Use this feature to select |
- | -------------------------------------------------- |the degrading precedence |
- | Number of CPU 2 |option for Ultra Path |
- | Number of Active UPI Link 3 |Interconnect connections. |
- | Current UPI Link Speed Fast |Select Topology Precedent |
- | Current UPI Link Frequency 10.4 GT/s |to degrade UPI features if |
- | UPI Global MMIO Low Base / Limit 90000000 / FBFFFFFF |system options are in |
- | UPI Global MMIO High Base / Limit 0000000000000000 / |conflict. Select Feature |
- | 00000000FFFFFFFF |Precedent to degrade UPI |
- | UPI Pci-e Configuration Base / Size 80000000 / 10000000 |topology if system options |
- | Degrade Precedence [Topology Precedence] |are in conflict. |
- | Link L0p Enable [Disable] | |
- | Link L1 Enable [Disable] | |
- | IO Directory Cache (IODC) [Auto] | |
- | SNC [Disable] | |
- | XPT Prefetch [Disable] | |
- | KTI Prefetch [Enable] |-----------------------------|
- | Local/Remote Threshold [Auto] |><: Select Screen |
- | Stale AtoS [Auto] |^v: Select Item |
- | LLC Dead Line Alloc [Enable] |Enter: Select |
- | Isoc Mode [Auto] |+/-: Change Opt. |
-```
-
-##### Memory Configuration
-
-```
- | |Select POR to enforce POR |
- | -------------------------------------------------- |restrictions for DDR4 |
- | Integrated Memory Controller (iMC) |frequency and voltage |
- | -------------------------------------------------- |programming |
- | | |
- | Enforce POR [POR] | |
- | PPR Type [Hard PPR] | |
- | Enhanced PPR [Disable] | |
- | Operation Mode [Test and Repair] | |
- | Memory Frequency [2933] | |
- | Data Scrambling for DDR4 [Auto] | |
- | tCCD_L Relaxation [Auto] | |
- | tRWSR Relaxation [Disable] | |
- | tRFC Optimization for 16Gb Based DIMM [Force 550ns] | |
- | 2x Refresh [Auto] | |
- | Page Policy [Auto] | |
- | IMC Interleaving [2-way Interleave] |-----------------------------|
- |> Memory Topology |><: Select Screen |
- |> Memory RAS Configuration |^v: Select Item |
-```
-
-##### IIO Configuration
-
-```
- | IIO Configuration |Expose IIO DFX devices and |
- | -------------------------------------------------- |other CPU devices like PMON |
- | | |
- | EV DFX Features [Disable] | |
- |> CPU1 Configuration | |
- |> CPU2 Configuration | |
- |> IOAT Configuration | |
- |> Intel. VT for Directed I/O (VT-d) | |
- |> Intel. VMD technology | |
- | | |
- | IIO-PCIE Express Global Options | |
- | ======================================== | |
- | PCI-E Completion Timeout Disable [No] | |
-```
-
-##### CPU1 Configuration
-
-```
- | IOU0 (IIO PCIe Br1) [Auto] |Selects PCIe port |
- | IOU1 (IIO PCIe Br2) [Auto] |Bifurcation for selected |
- | IOU2 (IIO PCIe Br3) [Auto] |slot(s) |
- |> CPU1 SLOT2 PCI-E 3.0 X16 | |
- |> CPU1 SLOT4 PCI-E 3.0 X16 | |
- |> CPU1 SLOT9 PCI-E 3.0 X16 | |
-```
-
-##### CPU2 Configuration
-
-```
- | IOU0 (IIO PCIe Br1) [Auto] |Selects PCIe port |
- | IOU1 (IIO PCIe Br2) [Auto] |Bifurcation for selected |
- | IOU2 (IIO PCIe Br3) [Auto] |slot(s) |
- |> CPU2 SLOT6 PCI-E 3.0 X16 | |
- |> CPU2 SLOT8 PCI-E 3.0 X16 | |
- |> CPU2 SLOT10 PCI-E 3.0 X16 | |
-```
-
-#### South Bridge
-
-```
- | |Enables Legacy USB support. |
- | USB Module Version 21 |AUTO option disables legacy |
- | |support if no USB devices |
- | USB Devices: |are connected. DISABLE |
- | 1 Keyboard, 1 Mouse, 1 Hub |option will keep USB |
- | |devices available only for |
- | Legacy USB Support [Enabled] |EFI applications. |
- | XHCI Hand-off [Enabled] | |
- | Port 60/64 Emulation [Enabled] | |
- | PCIe PLL SSC [Disable] | |
- | Real USB Wake Up [Enabled] | |
- | Front USB Wake Up [Enabled] | |
- | | |
- | Azalia [Auto] | |
- | Azalia PME Enable [Disabled] | |
-```
-
-### PCIe/PCI/PnP Configuration
-
-```
- | PCI Bus Driver Version A5.01.18 ^|Enables or Disables 64bit |
- | *|capable Devices to be |
- | PCI Devices Common Settings: *|Decoded in Above 4G Address |
- | Above 4G Decoding [Enabled] *|Space (Only if System |
- | SR-IOV Support [Enabled] *|Supports 64 bit PCI |
- | ARI Support [Enabled] *|Decoding). |
- | MMIO High Base [56T] *| |
- | MMIO High Granularity Size [256G] *| |
- | Maximum Read Request [Auto] *| |
- | MMCFG Base [2G] *| |
- | NVMe Firmware Source [Vendor Defined *| |
- | Firmware] *| |
- | VGA Priority [Onboard] *| |
- | CPU1 SLOT2 PCI-E 3.0 X16 OPROM [Legacy] *| |
- | CPU1 SLOT4 PCI-E 3.0 X16 OPROM [Legacy] *| |
- | CPU2 SLOT6 PCI-E 3.0 X16 OPROM [Legacy] *| |
- | CPU2 SLOT8 PCI-E 3.0 X16 OPROM [Legacy] *|-----------------------------|
- | CPU1 SLOT9 PCI-E 3.0 X16 OPROM [Legacy] *|><: Select Screen |
- | CPU2 SLOT10 PCI-E 3.0 X16 OPROM [Legacy] *|^v: Select Item |
- | CPU2 SLOT11 PCI-E 3.0 X4(IN X8) OPROM [Legacy] *|Enter: Select |
- | M.2 CONNECTOR OPROM [Legacy] *|+/-: Change Opt. |
- | Bus Master Enable [Enabled] +|F1: General Help |
- | Onboard LAN1 Option ROM [Legacy] +|F2: Previous Values |
- | Onboard LAN2 Option ROM [Disabled] +|F3: Optimized Defaults |
- | Onboard Video Option ROM [Legacy] v|F4: Save & Exit |
- |> Network Stack Configuration | |
-```
-
-### ACPI Settings
-
-```
- | ACPI Settings |Enable or Disable Non |
- | |uniform Memory Access |
- | NUMA [Enabled] |(NUMA). |
- | WHEA Support [Enabled] | |
- | High Precision Event Timer [Enabled] | |
-```
-
-## Xeon CLX Server BIOS Configuration - DUT
-
-### Boot Feature
-
-```
- | Quiet Boot [Enabled] |Boot option |
- | | |
- | Option ROM Messages [Force BIOS] | |
- | Bootup NumLock State [On] | |
- | Wait For "F1" If Error [Enabled] | |
- | INT19 Trap Response [Immediate] | |
- | Re-try Boot [Disabled] | |
- | Install Windows 7 USB support [Disabled] | |
- | Port 61h Bit-4 Emulation [Disabled] | |
- | | |
- | Power Configuration | |
- | Watch Dog Function [Disabled] | |
- | Restore on AC Power Loss [Last State] | |
- | Power Button Function [Instant Off] | |
-```
-
-### CPU Configuration
-
-```
- |--------------------------------------------------------------------+-----------------------------\
- | Processor Configuration ^|Enables Hyper Threading |
- | -------------------------------------------------- *|(Software Method to |
- | Processor BSP Revision 50657 - CLX B1 *|Enable/Disable Logical |
- | Processor Socket CPU1 | CPU2 *|Processor threads. |
- | Processor ID 00050657* | 00050657 *| |
- | Processor Frequency 2.300GHz | 2.300GHz *| |
- | Processor Max Ratio 17H | 17H *| |
- | Processor Min Ratio 0AH | 0AH *| |
- | Microcode Revision 0500002C | 0500002C *| |
- | L1 Cache RAM 64KB | 64KB *| |
- | L2 Cache RAM 1024KB | 1024KB *| |
- | L3 Cache RAM 36608KB | 36608KB *| |
- | Processor 0 Version *| |
- | Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz *| |
- | Processor 1 Version *| |
- | Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz *| |
- | *|-----------------------------|
- | Hyper-Threading [ALL] [Enable] *|><: Select Screen |
- | Cores Enabled 0 *|^v: Select Item |
- | Monitor/Mwait [Auto] *|Enter: Select |
- | Execute Disable Bit [Enable] +|+/-: Change Opt. |
- | Intel Virtualization Technology [Enable] +|F1: General Help |
- | PPIN Control [Unlock/Enable] +|F2: Previous Values |
- | Hardware Prefetcher [Enable] +|F3: Optimized Defaults |
- | Adjacent Cache Prefetch [Enable] v|F4: Save & Exit |
- | DCU Streamer Prefetcher [Enable] | |
- | DCU IP Prefetcher [Enable] | |
- | LLC Prefetch [Disable] | |
- | Extended APIC [Disable] | |
- | AES-NI [Enable] | |
- |> Advanced Power Management Configuration | |
-```
-
-#### Advanced Power Management Configuration
-
-```
- | Advanced Power Management Configuration |Switch CPU Power Management |
- | -------------------------------------------------- |profile |
- | Power Technology [Custom] | |
- | Power Performance Tuning [BIOS Controls EPB] | |
- | ENERGY_PERF_BIAS_CFG mode [Maximum Performance] | |
- |> CPU P State Control | |
- |> Hardware PM State Control | |
- |> CPU C State Control | |
- |> Package C State Control | |
- |> CPU T State Control | |
-```
-
-##### CPU P State Control
-
-```
- | CPU P State Control |EIST allows the processor |
- | |to dynamically adjust |
- | SpeedStep (P-States) [Disable] |frequency and voltage based |
- | Activate PBF [Disable] |on power versus performance |
- | Configure PBF [Enable] |needs. |
- | EIST PSD Function [HW_ALL] | |
-```
-
-##### Hardware PM State Control
-
-```
- | Hardware PM State Control |If set to Disable, hardware ^|
- | |will choose a P-state *|
- | Hardware P-States [Disable] |setting for the system *|
- | |based on an OS request. *|
- | |If set to Native Mode, *|
- | |hardware will choose a *|
- | |P-state setting based on OS *|
- | |guidance. *|
- | |If set to Native Mode with *|
- | |No Legacy Support, hardware *|
- | |will choose a P-state *|
- | |setting independently *|
- | |without OS guidance. +|
- | |If set to Out of Band Mode, +|
- | |hardware autonomously v|
-```
-
-##### CPU C State Control
-
-```
- | CPU C State Control |Select Enable to support |
- | |Autonomous Core C-State |
- | Autonomous Core C-State [Disable] |control which will allow |
- | CPU C6 report [Disable] |the processor core to |
- | Enhanced Halt State (C1E) [Disable] |control its C-State setting |
- | |automatically and |
- | |independently. |
-```
-
-##### Package C State Control
-
-```
- | Package C State Control |Limit the lowest package |
- | |level C-State to |
- | Package C State [C0/C1 state] |processors. Lower package |
- | |C-State lower processor |
- | |power consumption upon idle. |
-```
-
-##### CPU T State Control
-
-```
- | CPU T State Control |Enable/Disable CPU |
- | |throttling by OS. |
- | Software Controlled T-States [Disable] |Throttling reduces power |
- | |consumption |
-```
-
-#### Chipset Configuration
-
-```
- | WARNING: Setting wrong values in below sections may cause |North Bridge Parameters |
- | system to malfunction. | |
- |> North Bridge | |
- |> South Bridge | |
-```
-
-##### North Bridge
-
-```
- |> UPI Configuration |Displays and provides |
- |> Memory Configuration |option to change the UPI |
- |> IIO Configuration |Settings |
-```
-
-##### UPI Configuration
-
-```
- | UPI Configuration |Use this feature to select |
- | -------------------------------------------------- |the degrading precedence |
- | Number of CPU 2 |option for Ultra Path |
- | Number of Active UPI Link 3 |Interconnect connections. |
- | Current UPI Link Speed Fast |Select Topology Precedent |
- | Current UPI Link Frequency 10.4 GT/s |to degrade UPI features if |
- | UPI Global MMIO Low Base / Limit 90000000 / FBFFFFFF |system options are in |
- | UPI Global MMIO High Base / Limit 0000000000000000 / |conflict. Select Feature |
- | 00000000FFFFFFFF |Precedent to degrade UPI |
- | UPI Pci-e Configuration Base / Size 80000000 / 10000000 |topology if system options |
- | Degrade Precedence [Topology Precedence] |are in conflict. |
- | Link L0p Enable [Disable] | |
- | Link L1 Enable [Disable] | |
- | IO Directory Cache (IODC) [Auto] | |
- | SNC [Disable] | |
- | XPT Prefetch [Disable] | |
- | KTI Prefetch [Enable] |-----------------------------|
- | Local/Remote Threshold [Auto] |><: Select Screen |
- | Stale AtoS [Auto] |^v: Select Item |
- | LLC Dead Line Alloc [Enable] |Enter: Select |
- | Isoc Mode [Auto] |+/-: Change Opt. |
-```
-
-##### Memory Configuration
-
-```
- | |Select POR to enforce POR |
- | -------------------------------------------------- |restrictions for DDR4 |
- | Integrated Memory Controller (iMC) |frequency and voltage |
- | -------------------------------------------------- |programming |
- | | |
- | Enforce POR [POR] | |
- | PPR Type [Hard PPR] | |
- | Enhanced PPR [Disable] | |
- | Operation Mode [Test and Repair] | |
- | Memory Frequency [2933] | |
- | Data Scrambling for DDR4 [Auto] | |
- | tCCD_L Relaxation [Auto] | |
- | tRWSR Relaxation [Disable] | |
- | tRFC Optimization for 16Gb Based DIMM [Force 550ns] | |
- | 2x Refresh [Auto] | |
- | Page Policy [Auto] | |
- | IMC Interleaving [2-way Interleave] |-----------------------------|
- |> Memory Topology |><: Select Screen |
- |> Memory RAS Configuration |^v: Select Item |
-```
-
-##### IIO Configuration
-
-```
- | IIO Configuration |Expose IIO DFX devices and |
- | -------------------------------------------------- |other CPU devices like PMON |
- | | |
- | EV DFX Features [Disable] | |
- |> CPU1 Configuration | |
- |> CPU2 Configuration | |
- |> IOAT Configuration | |
- |> Intel. VT for Directed I/O (VT-d) | |
- |> Intel. VMD technology | |
- | | |
- | IIO-PCIE Express Global Options | |
- | ======================================== | |
- | PCI-E Completion Timeout Disable [No] | |
-```
-
-##### CPU1 Configuration
-
-```
- | IOU0 (IIO PCIe Br1) [Auto] |Selects PCIe port |
- | IOU1 (IIO PCIe Br2) [Auto] |Bifurcation for selected |
- | IOU2 (IIO PCIe Br3) [Auto] |slot(s) |
- |> CPU1 SLOT2 PCI-E 3.0 X16 | |
- |> CPU1 SLOT4 PCI-E 3.0 X16 | |
- |> CPU1 SLOT9 PCI-E 3.0 X16 | |
-```
-
-##### CPU2 Configuration
-
-```
- | IOU0 (IIO PCIe Br1) [Auto] |Selects PCIe port |
- | IOU1 (IIO PCIe Br2) [Auto] |Bifurcation for selected |
- | IOU2 (IIO PCIe Br3) [Auto] |slot(s) |
- |> CPU2 SLOT6 PCI-E 3.0 X16 | |
- |> CPU2 SLOT8 PCI-E 3.0 X16 | |
- |> CPU2 SLOT10 PCI-E 3.0 X16 | |
-```
-
-#### South Bridge
-
-```
- | |Enables Legacy USB support. |
- | USB Module Version 21 |AUTO option disables legacy |
- | |support if no USB devices |
- | USB Devices: |are connected. DISABLE |
- | 1 Keyboard, 1 Mouse, 1 Hub |option will keep USB |
- | |devices available only for |
- | Legacy USB Support [Enabled] |EFI applications. |
- | XHCI Hand-off [Enabled] | |
- | Port 60/64 Emulation [Enabled] | |
- | PCIe PLL SSC [Disable] | |
- | Real USB Wake Up [Enabled] | |
- | Front USB Wake Up [Enabled] | |
- | | |
- | Azalia [Auto] | |
- | Azalia PME Enable [Disabled] | |
-```
-
-### PCIe/PCI/PnP Configuration
-
-```
- | PCI Bus Driver Version A5.01.18 ^|Enables or Disables 64bit |
- | *|capable Devices to be |
- | PCI Devices Common Settings: *|Decoded in Above 4G Address |
- | Above 4G Decoding [Enabled] *|Space (Only if System |
- | SR-IOV Support [Enabled] *|Supports 64 bit PCI |
- | ARI Support [Enabled] *|Decoding). |
- | MMIO High Base [56T] *| |
- | MMIO High Granularity Size [256G] *| |
- | Maximum Read Request [Auto] *| |
- | MMCFG Base [2G] *| |
- | NVMe Firmware Source [Vendor Defined *| |
- | Firmware] *| |
- | VGA Priority [Onboard] *| |
- | CPU1 SLOT2 PCI-E 3.0 X16 OPROM [Legacy] *| |
- | CPU1 SLOT4 PCI-E 3.0 X16 OPROM [Legacy] *| |
- | CPU2 SLOT6 PCI-E 3.0 X16 OPROM [Legacy] *| |
- | CPU2 SLOT8 PCI-E 3.0 X16 OPROM [Legacy] *|-----------------------------|
- | CPU1 SLOT9 PCI-E 3.0 X16 OPROM [Legacy] *|><: Select Screen |
- | CPU2 SLOT10 PCI-E 3.0 X16 OPROM [Legacy] *|^v: Select Item |
- | CPU2 SLOT11 PCI-E 3.0 X4(IN X8) OPROM [Legacy] *|Enter: Select |
- | M.2 CONNECTOR OPROM [Legacy] *|+/-: Change Opt. |
- | Bus Master Enable [Enabled] +|F1: General Help |
- | Onboard LAN1 Option ROM [Legacy] +|F2: Previous Values |
- | Onboard LAN2 Option ROM [Disabled] +|F3: Optimized Defaults |
- | Onboard Video Option ROM [Legacy] v|F4: Save & Exit |
- |> Network Stack Configuration | |
-```
-
-### ACPI Settings
-
-```
- | ACPI Settings |Enable or Disable Non |
- | |uniform Memory Access |
- | NUMA [Enabled] |(NUMA). |
- | WHEA Support [Enabled] | |
- | High Precision Event Timer [Enabled] | |
-```
-
-
-## Xeon Clx Server Firmware Inventory
-
-```
-Host. IPMI IP. BMC. BIOS. CPLD. CPU Microcode. PCI Bus. X710 Firmware. XXV710 Firmware. i40e. MLX5 Firmware. mlx5_core
-s32-t14-sut1. 10.30.55.17. 1.67. 3.0c. 03.B1.05. 0500002C. A5.01.18. 6.01 0x800034af 1.1747.0. 6.01 0x80003554 1.1747.0. 2.1.14-k. N/A. N/A.
-s33-t27-sut1. 10.30.55.18. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 6.01 0x800034af 1.1747.0. 6.01 0x80003554 1.1747.0. 2.1.14-k. 16.25.1020. 4.6.-1.0.1.
-s34-t27-tg1. 10.30.55.19. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 6.01 0x800034af 1.1747.0. 6.01 0x80003554 1.1747.0. 2.1.14-k. 16.25.1020. 4.6.-1.0.1.
-s35-t28-sut1. 10.30.55.20. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 6.01 0x800034af 1.1747.0. 6.01 0x80003554 1.1747.0. 2.1.14-k. 16.25.1020. 4.6.-1.0.1.
-s36-t28-tg1. 10.30.55.21. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 6.01 0x800034af 1.1747.0. 6.01 0x80003554 1.1747.0. 2.1.14-k. 16.25.1020. 4.6.-1.0.1.
-s37-t29-sut1. 10.30.55.22. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 6.01 0x800034af 1.1747.0. 6.01 0x80003554 1.1747.0. 2.1.14-k. 16.25.1020. 4.6.-1.0.1.
-s38-t29-tg1. 10.30.55.23. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 6.01 0x800034af 1.1747.0. 6.01 0x80003554 1.1747.0. 2.1.14-k. 16.25.1020. 4.6.-1.0.1.
-```
diff --git a/docs/lab/testbeds_sm_dnv_hw_bios_cfg.md b/docs/lab/testbeds_sm_dnv_hw_bios_cfg.md
deleted file mode 100644
index bdddd2f037..0000000000
--- a/docs/lab/testbeds_sm_dnv_hw_bios_cfg.md
+++ /dev/null
@@ -1,351 +0,0 @@
-# SuperMicro Denverton Servers - HW and BIOS Configuration
-
-1. [Linux lscpu](#linux-lscpu)
-1. [Linux dmidecode](#dmidecode)
-1. [Atom Dnv Server BIOS Configuration](#atom-dnv-server-bios-configuration)
- 1. [Boot Feature](#boot-feature)
- 1. [CPU Configuration](#cpu-configuration)
- 1. [Chipset Configuration](#chipset-configuration)
- 1. [North Bridge Configuration](#north-bridge-configuration)
- 1. [South Bridge Configuration](#south-bridge-configuration)
- 1. [PCIe/PCI/PnP Configuration](#pciepcipnp-configuration)
- 1. [ACPI Settings](#acpi-settings)
-1. [Atom Dnv Server Firmware Inventory](#atom-dnv-server-firmware-inventory)
-
-## Linux lscpu
-
-```
-$ lscpu
-Architecture: x86_64
-CPU op-mode(s): 32-bit, 64-bit
-Byte Order: Little Endian
-CPU(s): 12
-On-line CPU(s) list: 0-11
-Thread(s) per core: 1
-Core(s) per socket: 12
-Socket(s): 1
-NUMA node(s): 1
-Vendor ID: GenuineIntel
-CPU family: 6
-Model: 95
-Model name: Intel(R) Atom(TM) CPU C3858 @ 2.00GHz
-Stepping: 1
-CPU MHz: 2000.000
-CPU max MHz: 2000.0000
-CPU min MHz: 800.0000
-BogoMIPS: 4000.00
-Virtualization: VT-x
-L1d cache: 24K
-L1i cache: 32K
-L2 cache: 2048K
-NUMA node0 CPU(s): 0-11
-Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
-cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
-pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology
-nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl
-vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt
-tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault epb cat_l2
-ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase
-tsc_adjust smep erms mpx rdt_a rdseed smap clflushopt intel_pt sha_ni xsaveopt
-xsavec xgetbv1 xsaves dtherm arat pln pts md_clear arch_capabilities
-
-```
-
-### Linux dmidecode
-
-```
- # dmidecode 3.1
- Getting SMBIOS data from sysfs.
- SMBIOS 3.0.0 present.
- Table at 0x7F0C8000.
-
- Handle 0x0000, DMI type 0, 24 bytes
- BIOS Information
- Vendor: American Megatrends Inc.
- Version: 1.0b
- Release Date: 12/12/2017
- Address: 0xF0000
- Runtime Size: 64 kB
- ROM Size: 16 MB
- Characteristics:
- PCI is supported
- BIOS is upgradeable
- BIOS shadowing is allowed
- Boot from CD is supported
- Selectable boot is supported
- BIOS ROM is socketed
- EDD is supported
- 5.25"/1.2 MB floppy services are supported (int 13h)
- 3.5"/720 kB floppy services are supported (int 13h)
- 3.5"/2.88 MB floppy services are supported (int 13h)
- Print screen service is supported (int 5h)
- Serial services are supported (int 14h)
- Printer services are supported (int 17h)
- ACPI is supported
- USB legacy is supported
- BIOS boot specification is supported
- Targeted content distribution is supported
- UEFI is supported
- BIOS Revision: 5.13
-
- Handle 0x0001, DMI type 1, 27 bytes
- System Information
- Manufacturer: Supermicro
- Product Name: SYS-E300-9A
- Version: 0123456789
- Serial Number: S292431X8616427
- UUID: 03000200-0400-0500-0006-0CC47AFCCA92
- Wake-up Type: Power Switch
- SKU Number: To be filled by O.E.M.
- Family: To be filled by O.E.M.
-
- Handle 0x0002, DMI type 2, 15 bytes
- Base Board Information
- Manufacturer: Supermicro
- Product Name: A2SDi-TP8F
- Version: 1.10
- Serial Number: OM184S023953
- Asset Tag: To be filled by O.E.M.
- Features:
- Board is a hosting board
- Board is replaceable
- Location In Chassis: To be filled by O.E.M.
- Chassis Handle: 0x0003
- Type: Motherboard
- Contained Object Handles: 0
-
- Handle 0x0003, DMI type 3, 22 bytes
- Chassis Information
- Manufacturer: Supermicro
- Type: Other
- Lock: Not Present
- Version: 0123456789
- Serial Number: CE300AG39040925
- Asset Tag: To be filled by O.E.M.
- Boot-up State: Safe
- Power Supply State: Safe
- Thermal State: Safe
- Security Status: None
- OEM Information: 0x00000000
- Height: Unspecified
- Number Of Power Cords: 1
- Contained Elements: 0
- SKU Number: To be filled by O.E.M.
-
- Handle 0x0028, DMI type 4, 48 bytes
- Processor Information
- Socket Designation: CPU
- Type: Central Processor
- Family: Atom
- Manufacturer: Intel(R) Corporation
- ID: F1 06 05 00 FF FB EB BF
- Signature: Type 0, Family 6, Model 95, Stepping 1
- Flags:
- FPU (Floating-point unit on-chip)
- VME (Virtual mode extension)
- DE (Debugging extension)
- PSE (Page size extension)
- TSC (Time stamp counter)
- MSR (Model specific registers)
- PAE (Physical address extension)
- MCE (Machine check exception)
- CX8 (CMPXCHG8 instruction supported)
- APIC (On-chip APIC hardware supported)
- SEP (Fast system call)
- MTRR (Memory type range registers)
- PGE (Page global enable)
- MCA (Machine check architecture)
- CMOV (Conditional move instruction supported)
- PAT (Page attribute table)
- PSE-36 (36-bit page size extension)
- CLFSH (CLFLUSH instruction supported)
- DS (Debug store)
- ACPI (ACPI supported)
- MMX (MMX technology supported)
- FXSR (FXSAVE and FXSTOR instructions supported)
- SSE (Streaming SIMD extensions)
- SSE2 (Streaming SIMD extensions 2)
- SS (Self-snoop)
- HTT (Multi-threading)
- TM (Thermal monitor supported)
- PBE (Pending break enabled)
- Version: Intel(R) Atom(TM) CPU C3858 @ 2.00GHz
- Voltage: 1.6 V
- External Clock: 100 MHz
- Max Speed: 3800 MHz
- Current Speed: 2000 MHz
- Status: Populated, Enabled
- Upgrade: Other
- L1 Cache Handle: 0x0026
- L2 Cache Handle: 0x0027
- L3 Cache Handle: Not Provided
- Serial Number: Not Specified
- Asset Tag: UNKNOWN
- Part Number: Not Specified
- Core Count: 12
- Core Enabled: 12
- Thread Count: 12
- Characteristics:
- 64-bit capable
- Multi-Core
- Hardware Thread
- Execute Protection
- Enhanced Virtualization
- Power/Performance Control
-```
-
-## Atom Dnv Server BIOS Configuration
-
-### Boot Feature
-
-```
- | Quiet Boot [Enabled] |Enable or disable to |
- | |display graphic logo during |
- | Bootup NumLock State [On] |POST |
- | Wait For "F1" If Error [Enabled] | |
- | | |
- | Power Configuration | |
- | Watch Dog Function [Disabled] | |
- | Power Button Function [Instant Off] | |
- | Restore on AC Power Loss [Power On] | |
-```
-
-### CPU Configuration
-
-```
- | CPU Configuration |Enable/Disable EIST. GV3 |
- | |and TM1 must be enabled for |
- | Intel(R) Atom(TM) CPU C3858 @ 2.00GHz |TM2 to be available. GV3 |
- | Processor ID 000506F1 |must be enabled for Turbo. |
- | Microcode Revision 00000020 |Auto - Enable for B0 CPU |
- | Processor Frequency 2.000GHz |stepping, all others |
- | CPU BCLK Frequency 100MHZ |disabled, change setting to |
- | L1 Cache RAM 56KB |override. |
- | L2 Cache RAM 12288KB | |
- | | |
- | EIST (GV3) [Enable] | |
- | BIOS Request Frequency [Enable] | |
- | TM1 [Enable] | |
- | TM2 Mode [Adaptive Throttling] | |
- | Dynamic Self Refresh [Disable] | |
- | CPU C State [Disable] | |
- | Package C State Limit [No Limit] | |
- | Max Core C-State [C6] | |
- | Enhanced Hait State (C1E) [Enable] | |
- | Monitor/Mwait [Enable] | |
- | L1 Prefetcher [Enable] | |
- | L1 Prefetcher [Enable] | |
- | ACPI 3.0 T-States [Disable] | |
- | Max CPUID Value Limit [Disable] | |
- | Execute Disable Bit [Enable] | |
- | Virtualization Technology [Enable] | |
- | Extended APIC [Enable] | |
- | AES-NI [Enable] | |
- | Lock PACKAGE_RAPL_LIMIT [Disable] | |
- | PL1 Time Window 45 | |
- | PL1 Power Level 25 | |
- | PL2 Power Level 29 | |
- | Active Processor Cores 0 | |
-```
-
-### Chipset Configuration
-
-```
- | WARNING: Setting wrong values in below sections may cause |North Bridge Parameters |
- | system to malfunction. | |
- |> North Bridge Configuration | |
- |> South Bridge Configuration | |
-```
-
-#### North Bridge Configuration
-
-```
- | North Bridge Configuration |COption to Ebable / Disable |
- | |VT-d |
- | Memory Information | |
- | MRC Version 0.149.4.43 | |
- | Total Memory 32768 MB | |
- | Memory Frequency DDR4 - 2400 MHZ | |
- | | |
- | VT-d [Enabled] | |
- | VT-d Interrupt remapping [Enabled] | |
- | | |
- | Fast Boot [Enabled] | |
- | Command Address Parity [Disabled] | |
- | Memory Frequency [DDR-2400] | |
- | MMIO Size / BMBOUND Base [Auto] | |
- | TCL performance [Enabled] | |
- | Memory Preservation [Disabled] | |
- | Patrol scrub Enable [Enabled] | |
- | Patrol scrub Period [24 hours] | |
- | Demand Scrub Enable [Enabled] | |
- | Write Data Early Enble [Disabled] | |
- | Select Refresh Rate [1x/2x] | |
- | CKE Power Down [Disabled] | |
- | Memory Thermal Throttling [Disabled] | |
- | Scrambler [Enabled] | |
- | Slow Power Down Exit [Enabled] | |
-```
-
-#### South Bridge Configuration
-
-```
- | South Bridge Configuration |Enables Legacy USB support. |
- | |AUTO option disables legacy |
- | USB Module Version 19 |support if no USB devices |
- | USB Controllers: |are connected. DISABLE |
- | 1 XHCI |option will keep USB |
- | USB Devices: |devices available only for |
- | 2 Keyboards, 1 Mouse, 3 Hubs |EFI applications. |
- | | |
- | Legacy USB Support [Enabled] | |
- | XHCI Hand-off [Enabled] | |
- | Port 60/64 Emulation [Enabled] | |
-
-```
-
-### PCIe/PCI/PnP Configuration
-
-```
- | PCI Bus Driver Version A5.01.12 |Enables or Disables 64bit |
- | |capable Devices to be |
- | PCI Devices Common Settings: |Decoded in Above 4G Address |
- | Above 4G Decoding [Enabled] |Space (Only if System |
- | SR-IOV Support [Enabled] |Supports 64 bit PCI |
- | Maximum Payload [Auto] |Decoding). |
- | Maximum Read Request [Auto] | |
- | ASPM Support [Disabled] | |
- | ARI Forwarding [Disabled] | |
- | | |
- | RSC-RR1U-E8 OPROM [EFI] | |
- | M.2 PCI-E 3.0 X4 OPROM [EFI] | |
- | Mini PCI-E OPROM [EFI] | |
- | | |
- | Onboard LAN OPROM Type [EFI] | |
- | | |
- | Onboard Video OPROM [EFI] | |
- | VGA Priority [Onboard] | |
- | | |
- | Network Stack [Enabled] | |
- | IPv4 PXE Support [Enabled] | |
- | IPv6 PXE Support [Disabled] | |
- | PXE boot wait time 0 | |
- | Media detect count 1 | |
-```
-
-### ACPI Settings
-
-```
- | ACPI Settings |Enable/Disable WHEA ACPI |
- | |support |
- | WHEA Support [Enabled] | |
-```
-
-## Atom Dnv Server Firmware Inventory
-
-```
-Host. IPMI IP. BMC. BIOS. CPU Microcode. PCI Bus. ME Operation FW. X553 Firmware. ixgbe.
-s29-t26-sut1. 10.30.55.11. 3.60. 1.0b. 0x2e. A5.01.12. 4.0.4.139. 0x8000083f 5.1.0-k
-s30-t35-sut1. 10.30.55.12. 3.60. 1.0b. 0x2e. A5.01.12. 4.0.4.139. 0x8000083f 5.1.0-k
-s31-t35-sut2. 10.30.55.13. 3.60. 1.0b. 0x2e. A5.01.12. 4.0.4.139. 0x8000083f 5.1.0-k
-```
diff --git a/docs/lab/testbeds_sm_skx_hw_bios_cfg.md b/docs/lab/testbeds_sm_skx_hw_bios_cfg.md
deleted file mode 100644
index 83167d5d2b..0000000000
--- a/docs/lab/testbeds_sm_skx_hw_bios_cfg.md
+++ /dev/null
@@ -1,577 +0,0 @@
-# SuperMicro Skylake Servers - HW and BIOS Configuration
-
-1. [Linux lscpu](#linux-lscpu)
-1. [Linux dmidecode](#dmidecode)
-1. [Xeon Skx Server BIOS Configuration](#xeon-skx-server-bios-configuration)
- 1. [Boot Feature](#boot-feature)
- 1. [CPU Configuration](#cpu-configuration)
- 1. [Advanced Power Management Configuration](#advanced-power-management-configuration)
- 1. [CPU P State Control](#cpu-p-state-control)
- 1. [Hardware PM State Control](#hardware-pm-state-control)
- 1. [CPU C State Control](#cpu-c-state-control)
- 1. [Package C State Control](#package-c-state-control)
- 1. [CPU T State Control](#cpu-t-state-control)
- 1. [Chipset Configuration](#chipset-configuration)
- 1. [North Bridge](#north-bridge)
- 1. [UPI Configuration](#upi-configuration)
- 1. [Memory Configuration](#memory-configuration)
- 1. [IIO Configuration](#iio-configuration)
- 1. [CPU1 Configuration](#cpu1-configuration)
- 1. [CPU2 Configuration](#cpu2-configuration)
- 1. [South Bridge](#south-bridge)
- 1. [PCIe/PCI/PnP Configuration](#pciepcipnp-configuration)
- 1. [ACPI Settings](#acpi-settings)
-1. [Xeon Skx Server Firmware Inventory](#xeon-skx-server-firmware-inventory)
-
-## Linux lscpu
-
-```
-$ lscpu
-Architecture: x86_64
-CPU op-mode(s): 32-bit, 64-bit
-Byte Order: Little Endian
-CPU(s): 112
-On-line CPU(s) list: 0-111
-Thread(s) per core: 2
-Core(s) per socket: 28
-Socket(s): 2
-NUMA node(s): 2
-Vendor ID: GenuineIntel
-CPU family: 6
-Model: 85
-Model name: Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz
-Stepping: 4
-CPU MHz: 2500.550
-BogoMIPS: 5000.00
-Virtualization: VT-x
-L1d cache: 32K
-L1i cache: 32K
-L2 cache: 1024K
-L3 cache: 39424K
-NUMA node0 CPU(s): 0-27,56-83
-NUMA node1 CPU(s): 28-55,84-111
-Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
-cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
-pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology
-nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2
-ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt
-tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch
-cpuid_fault epb cat_l3 cdp_l3 invpcid_single pti ssbd mba ibrs ibpb stibp
-tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjustbmi1 hle avx2 smep bmi2
-erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb
-intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc
-cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts pku ospke
-md_clear flush_l1d
-```
-
-### Linux dmidecode
-
-```
- $ dmidecode
- # dmidecode 3.1
- Getting SMBIOS data from sysfs.
- SMBIOS 3.2.1 present.
- Table at 0x6F388000.
-
- Handle 0x0000, DMI type 0, 26 bytes
- BIOS Information
- Vendor: American Megatrends Inc.
- Version: 3.2
- Release Date: 10/18/2019
- Address: 0xF0000
- Runtime Size: 64 kB
- ROM Size: 64 MB
- Characteristics:
- PCI is supported
- BIOS is upgradeable
- BIOS shadowing is allowed
- Boot from CD is supported
- Selectable boot is supported
- BIOS ROM is socketed
- EDD is supported
- 5.25"/1.2 MB floppy services are supported (int 13h)
- 3.5"/720 kB floppy services are supported (int 13h)
- 3.5"/2.88 MB floppy services are supported (int 13h)
- Print screen service is supported (int 5h)
- Serial services are supported (int 14h)
- Printer services are supported (int 17h)
- ACPI is supported
- USB legacy is supported
- BIOS boot specification is supported
- Targeted content distribution is supported
- UEFI is supported
- BIOS Revision: 5.14
-
- Handle 0x0001, DMI type 1, 27 bytes
- System Information
- Manufacturer: Supermicro
- Product Name: SYS-7049GP-TRT
- Version: 0123456789
- Serial Number: S291427X8332242
- UUID: 00000000-0000-0000-0000-AC1F6B8A8DB6
- Wake-up Type: Power Switch
- SKU Number: To be filled by O.E.M.
- Family: To be filled by O.E.M.
-
- Handle 0x0002, DMI type 2, 15 bytes
- Base Board Information
- Manufacturer: Supermicro
- Product Name: X11DPG-QT
- Version: 1.02
- Serial Number: VM183S014930
- Asset Tag: To be filled by O.E.M.
- Features:
- Board is a hosting board
- Board is replaceable
- Location In Chassis: To be filled by O.E.M.
- Chassis Handle: 0x0003
- Type: Motherboard
- Contained Object Handles: 0
-
- Handle 0x0003, DMI type 3, 22 bytes
- Chassis Information
- Manufacturer: Supermicro
- Type: Other
- Lock: Not Present
- Version: 0123456789
- Serial Number: C7470KH06A20167
- Asset Tag: To be filled by O.E.M.
- Boot-up State: Safe
- Power Supply State: Safe
- Thermal State: Safe
- Security Status: None
- OEM Information: 0x00000000
-
- Handle 0x0050, DMI type 4, 48 bytes
- Processor Information
- Socket Designation: CPU1
- Type: Central Processor
- Family: Xeon
- Manufacturer: Intel(R) Corporation
- ID: 54 06 05 00 FF FB EB BF
- Signature: Type 0, Family 6, Model 85, Stepping 4
- Flags:
- FPU (Floating-point unit on-chip)
- VME (Virtual mode extension)
- DE (Debugging extension)
- PSE (Page size extension)
- TSC (Time stamp counter)
- MSR (Model specific registers)
- PAE (Physical address extension)
- MCE (Machine check exception)
- CX8 (CMPXCHG8 instruction supported)
- APIC (On-chip APIC hardware supported)
- SEP (Fast system call)
- MTRR (Memory type range registers)
- PGE (Page global enable)
- MCA (Machine check architecture)
- CMOV (Conditional move instruction supported)
- PAT (Page attribute table)
- PSE-36 (36-bit page size extension)
- CLFSH (CLFLUSH instruction supported)
- DS (Debug store)
- ACPI (ACPI supported)
- MMX (MMX technology supported)
- FXSR (FXSAVE and FXSTOR instructions supported)
- SSE (Streaming SIMD extensions)
- SSE2 (Streaming SIMD extensions 2)
- SS (Self-snoop)
- HTT (Multi-threading)
- TM (Thermal monitor supported)
- PBE (Pending break enabled)
- Version: Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz
- Voltage: 1.6 V
- External Clock: 100 MHz
- Max Speed: 4000 MHz
- Current Speed: 2500 MHz
- Status: Populated, Enabled
- Upgrade: Other
- L1 Cache Handle: 0x004D
- L2 Cache Handle: 0x004E
- L3 Cache Handle: 0x004F
- Serial Number: Not Specified
- Asset Tag: UNKNOWN
- Part Number: Not Specified
- Core Count: 28
- Core Enabled: 28
- Thread Count: 56
- Characteristics:
- 64-bit capable
- Multi-Core
- Hardware Thread
- Execute Protection
- Enhanced Virtualization
- Power/Performance Control
-
-
- Handle 0x0054, DMI type 4, 48 bytes
- Processor Information
- Socket Designation: CPU2
- Type: Central Processor
- Family: Xeon
- Manufacturer: Intel(R) Corporation
- ID: 54 06 05 00 FF FB EB BF
- Signature: Type 0, Family 6, Model 85, Stepping 4
- Flags:
- FPU (Floating-point unit on-chip)
- VME (Virtual mode extension)
- DE (Debugging extension)
- PSE (Page size extension)
- TSC (Time stamp counter)
- MSR (Model specific registers)
- PAE (Physical address extension)
- MCE (Machine check exception)
- CX8 (CMPXCHG8 instruction supported)
- APIC (On-chip APIC hardware supported)
- SEP (Fast system call)
- MTRR (Memory type range registers)
- PGE (Page global enable)
- MCA (Machine check architecture)
- CMOV (Conditional move instruction supported)
- PAT (Page attribute table)
- PSE-36 (36-bit page size extension)
- CLFSH (CLFLUSH instruction supported)
- DS (Debug store)
- ACPI (ACPI supported)
- MMX (MMX technology supported)
- FXSR (FXSAVE and FXSTOR instructions supported)
- SSE (Streaming SIMD extensions)
- SSE2 (Streaming SIMD extensions 2)
- SS (Self-snoop)
- HTT (Multi-threading)
- TM (Thermal monitor supported)
- PBE (Pending break enabled)
- Version: Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz
- Voltage: 1.6 V
- External Clock: 100 MHz
- Max Speed: 4000 MHz
- Current Speed: 2500 MHz
- Status: Populated, Enabled
- Upgrade: Other
- L1 Cache Handle: 0x0051
- L2 Cache Handle: 0x0052
- L3 Cache Handle: 0x0053
- Serial Number: Not Specified
- Asset Tag: UNKNOWN
- Part Number: Not Specified
- Core Count: 28
- Core Enabled: 28
- Thread Count: 56
- Characteristics:
- 64-bit capable
- Multi-Core
- Hardware Thread
- Execute Protection
- Enhanced Virtualization
- Power/Performance Control
-```
-
-## Xeon Skx Server BIOS Configuration
-
-### Boot Feature
-
-```
- | Quiet Boot [Enabled] |Boot option |
- | | |
- | Option ROM Messages [Force BIOS] | |
- | Bootup NumLock State [On] | |
- | Wait For "F1" If Error [Enabled] | |
- | INT19 Trap Response [Immediate] | |
- | Re-try Boot [Disabled] | |
- | Install Windows 7 USB support [Disabled] | |
- | Port 61h Bit-4 Emulation [Disabled] | |
- | | |
- | Power Configuration | |
- | Watch Dog Function [Disabled] | |
- | Restore on AC Power Loss [Last State] | |
- | Power Button Function [Instant Off] | |
- | Throttle on Power Fail [Disabled] | |
-```
-
-### CPU Configuration
-
-```
- | Processor Configuration |Enables Hyper Threading |
- | -------------------------------------------------- |(Software Method to |
- | Processor BSP Revision 50654 - SKX H0 |Enable/Disable Logical |
- | Processor Socket CPU1 | CPU2 |Processor threads. |
- | Processor ID 00050654* | 000506... | |
- | Processor Frequency 2.500GHz | 2.500GHz | |
- | Processor Max Ratio 19H | 19H | |
- | Processor Min Ratio 0AH | 0AH | |
- | Microcode Revision 02000054 | 02000054 | |
- | L1 Cache RAM 64KB | 64KB | |
- | L2 Cache RAM 1024KB | 1024KB | |
- | L3 Cache RAM 39424KB | 39424KB | |
- | Processor 0 Version | |
- | Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz | |
- | Processor 1 Version | |
- | Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz | |
- | | |
- | Hyper-Threading [ALL] [Enable] | |
- | Core Enabled 0 | |
- | Monitor/Mwait [Auto] | |
- | Execute Disable Bit [Enable] | |
- | Intel Virtualization Technology [Enable] | |
- | PPIN Control [Unlock/Enable] | |
- | Hardware Prefetcher [Enable] | |
- | Adjacent Cache Prefetch [Enable] | |
- | DCU Streamer Prefetcher [Enable] | |
- | DCU IP Prefetcher [Enable] | |
- | LLC Prefetch [Disable] | |
- | Extended APIC [Disable] | |
- | AES-NI [Enable] | |
- |> Advanced Power Management Configuration | |
-```
-
-#### Advanced Power Management Configuration
-
-```
- | Advanced Power Management Configuration |Switch CPU Power Management |
- | -------------------------------------------------- |profile |
- | Power Technology [Custom] | |
- | Power Performance Tuning [BIOS Controls EPB] | |
- | ENERGY_PERF_BIAS_CFG mode [Maximum Performance] | |
- |> CPU P State Control | |
- |> Hardware PM State Control | |
- |> CPU C State Control | |
- |> Package C State Control | |
- |> CPU T State Control | |
-```
-
-##### CPU P State Control
-
-```
- | CPU P State Control |Enable/Disable EIST |
- | |(P-States) |
- | SpeedStep (Pstates) [Disable] | |
- | EIST PSD Function [HW_ALL] | |
-```
-
-##### Hardware PM State Control
-
-```
- | Hardware PM State Control |Disable: Hardware chooses a |
- | |P-state based on OS Request |
- | Hardware P-States [Disable] |(Legacy P-States) |
- | |Native Mode:Hardware |
- | |chooses a P-state based on |
- | |OS guidance |
- | |Out of Band Mode:Hardware |
- | |autonomously chooses a |
- | |P-state (no OS guidance) |
-```
-
-##### CPU C State Control
-
-```
- | CPU C State Control |Autonomous Core C-State |
- | |Control |
- | Autonomous Core C-State [Disable] | |
- | CPU C6 report [Disable] | |
- | Enhanced Halt State (C1E) [Disable] | |
-```
-
-##### Package C State Control
-
-```
- | Package C State Control |Package C State limit |
- | | |
- | Package C State [C0/C1 state] | |
-```
-
-##### CPU T State Control
-
-```
- | CPU T State Control |Enable/Disable Software |
- | |Controlled T-States |
- | Software Controlled T-States [Disable] | |
-```
-
-#### Chipset Configuration
-
-```
- | WARNING: Setting wrong values in below sections may cause |North Bridge Parameters |
- | system to malfunction. | |
- |> North Bridge | |
- |> South Bridge | |
-```
-
-##### North Bridge
-
-```
- |> UPI Configuration |Displays and provides |
- |> Memory Configuration |option to change the UPI |
- |> IIO Configuration |Settings |
-```
-
-##### UPI Configuration
-
-```
- | UPI Configuration |Choose Topology Precedence |
- | -------------------------------------------------- |to degrade features if |
- | Number of CPU 2 |system options are in |
- | Number of Active UPI Link 3 |conflict or choose Feature |
- | Current UPI Link Speed Fast |Precedence to degrade |
- | Current UPI Link Frequency 10.4 GT/s |topology if system options |
- | UPI Global MMIO Low Base / Limit 90000000 / FBFFFFFF |are in conflict. |
- | UPI Global MMIO High Base / Limit 0000000000000000 / ... | |
- | UPI Pci-e Configuration Base / Size 80000000 / 10000000 | |
- | Degrade Precedence [Topology Precedence] | |
- | Link L0p Enable [Disable] | |
- | Link L1 Enable [Disable] | |
- | IO Directory Cache (IODC) [Auto] | |
- | SNC [Disable] | |
- | XPT Prefetch [Disable] | |
- | KTI Prefetch [Enable] | |
- | Local/Remote Threshold [Auto] | |
- | Stale AtoS [Disable] | |
- | LLC dead line alloc [Enable] | |
- | Isoc Mode [Auto] | |
-```
-
-##### Memory Configuration
-
-```
- | |POR - Enforces Plan Of |
- | -------------------------------------------------- |Record restrictions for |
- | Integrated Memory Controller (iMC) |DDR4 frequency and voltage |
- | -------------------------------------------------- |programming. Disable - |
- | |Disables this feature. |
- | Enforce POR [POR] | |
- | PPR Type [Hard PPR] | |
- | Enhanced PPR [Disable] | |
- | Operation Mode [Test and Repair] | |
- | Memory Frequency [2933] | |
- | Data Scrambling for DDR4 [Auto] | |
- | tCCD_L Relaxation [Auto] | |
- | tRWSR Relaxation [Disable] | |
- | tRFC Optimization for 16Gb Based DIMM [Force 550ns] | |
- | 2x Refresh [Auto] | |
- | Page Policy [Auto] | |
- | IMC Interleaving [2-way Interleave] | |
- |> Memory Topology | |
- |> Memory RAS Configuration | |
-```
-
-##### IIO Configuration
-
-```
- | IIO Configuration |Expose IIO DFX devices and |
- | -------------------------------------------------- |other CPU devices like PMON |
- | | |
- | EV DFX Features [Disable] | |
- |> CPU1 Configuration | |
- |> CPU2 Configuration | |
- |> IOAT Configuration | |
- |> Intel. VT for Directed I/O (VT-d) | |
- |> Intel. VMD technology | |
- | | |
- | IIO-PCIE Express Global Options | |
- | ======================================== | |
- | PCI-E Completion Timeout Disable [No] | |
-```
-
-##### CPU1 Configuration
-
-```
- | IOU0 (IIO PCIe Br1) [Auto] |Selects PCIe port |
- | IOU1 (IIO PCIe Br2) [Auto] |Bifurcation for selected |
- | IOU2 (IIO PCIe Br3) [Auto] |slot(s) |
- |> CPU1 SLOT2 PCI-E 3.0 X16 | |
- |> CPU1 SLOT4 PCI-E 3.0 X16 | |
- |> CPU1 SLOT9 PCI-E 3.0 X16 | |
-```
-
-##### CPU2 Configuration
-
-```
- | IOU0 (IIO PCIe Br1) [Auto] |Selects PCIe port |
- | IOU1 (IIO PCIe Br2) [Auto] |Bifurcation for selected |
- | IOU2 (IIO PCIe Br3) [Auto] |slot(s) |
- |> CPU2 SLOT6 PCI-E 3.0 X16 | |
- |> CPU2 SLOT8 PCI-E 3.0 X16 | |
- |> CPU2 SLOT10 PCI-E 3.0 X16 | |
-```
-
-#### South Bridge
-
-```
- | |Enables Legacy USB support. |
- | USB Module Version 21 |AUTO option disables legacy |
- | |support if no USB devices |
- | USB Devices: |are connected. DISABLE |
- | 1 Keyboard, 1 Mouse, 1 Hub |option will keep USB |
- | |devices available only for |
- | Legacy USB Support [Enabled] |EFI applications. |
- | XHCI Hand-off [Enabled] | |
- | Port 60/64 Emulation [Enabled] | |
- | PCIe PLL SSC [Disable] | |
- | Real USB Wake Up [Enabled] | |
- | Front USB Wake Up [Enabled] | |
- | | |
- | Azalia [Auto] | |
- | Azalia PME Enable [Disabled] | |
-```
-
-### PCIe/PCI/PnP Configuration
-
-```
- | PCI Bus Driver Version A5.01.18 |Enables or Disables 64bit |
- | |capable Devices to be |
- | PCI Devices Common Settings: |Decoded in Above 4G Address |
- | Above 4G Decoding [Enabled] |Space (Only if System |
- | SR-IOV Support [Enabled] |Supports 64 bit PCI |
- | ARI Support [Enabled] |Decoding). |
- | MMIO High Base [56T] | |
- | MMIO High Granularity Size [256G] | |
- | Maximum Read Request [Auto] | |
- | MMCFG Base [2G] | |
- | NVMe Firmware Source [Vendor Defined Fi...] | |
- | VGA Priority [Onboard] | |
- | CPU1 SLOT2 PCI-E 3.0 X16 OPROM [Legacy] | |
- | CPU1 SLOT4 PCI-E 3.0 X16 OPROM [Legacy] | |
- | CPU2 SLOT6 PCI-E 3.0 X16 OPROM [Legacy] | |
- | CPU2 SLOT8 PCI-E 3.0 X16 OPROM [Legacy] | |
- | CPU1 SLOT9 PCI-E 3.0 X16 OPROM [Legacy] | |
- | CPU2 SLOT10 PCI-E 3.0 X16 OPROM [Legacy] | |
- | CPU2 SLOT11 PCI-E 3.0 X4(IN X8) OPROM [Legacy] | |
- | M.2 CONNECTOR OPROM [Legacy] | |
- | Onboard LAN1 Option ROM [Legacy] | |
- | Onboard LAN2 Option ROM [Disabled] | |
- | Onboard Video Option ROM [Legacy] | |
- |> Network Stack Configuration | |
-```
-
-### ACPI Settings
-
-```
- | ACPI Settings |Enable or Disable Non |
- | |uniform Memory Access |
- | NUMA [Enabled] |(NUMA). |
- | WHEA Support [Enabled] | |
- | High Precision Event Timer [Enabled] | |
-```
-
-## Xeon Skx Server Firmware Inventory
-
-```
-Host. IPMI IP. BMC. BIOS. CPLD. Aptio SU. CPU Microcode. PCI Bus. ME Operation FW. X710 Firmware. XXV710 Firmware. i40e.
-s1-t11-sut1. 10.30.50.47. 1.39. 2.1. 03.B1.03. 2.19.1268. 0200005e. A5.01.12. 4.0.4.294. 6.01 0x800034af 1.1747.0. N/A. 2.1.14-k.
-s2-t12-sut1. 10.30.50.48. 1.39. 2.0b. 03.B1.03. 2.19.1268. 0200005e. A5.01.12. 4.0.4.294. 6.01 0x800034af 1.1747.0. N/A. 2.1.14-k.
-s3-t21-sut1. 10.30.50.41. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.1.14-k.
-s4-t21-tg1. 10.30.50.42. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.4.10.
-s5-t22-sut1. 10.30.50.49. 1.53. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.1.14-k.
-s6-t22-tg1. 10.30.50.50. 1.53. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.4.10.
-s7-t23-sut1. 10.30.50.51. 1.53. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.1.14-k.
-s8-t23-tg1. 10.30.50.52. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.4.10.
-s9-t24-sut1. 10.30.50.53. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.1.14-k.
-s10-t24-tg1. 10.30.50.54. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.4.10
-s11-t31-sut1. 10.30.50.43. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.1.14-k.
-s12-t31-sut2. 10.30.50.44. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.1.14-k.
-s13-t31-tg1. 10.30.50.45. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.4.10.
-s14-t32-sut1. 10.30.50.55. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.1.14-k.
-s15-t32-sut2. 10.30.50.56. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.1.14-k.
-s16-t32-tg1. 10.30.50.57. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.4.10.
-s19-t33t34-tg1. 10.30.50.46. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 6.01 0x800034af 1.1747.0. 6.02 0x80003620 1.1747.0. 2.4.10.
-```
diff --git a/docs/lab/testbeds_sm_zn2_hw_bios_cfg.md b/docs/lab/testbeds_sm_zn2_hw_bios_cfg.md
deleted file mode 100644
index 6e274da971..0000000000
--- a/docs/lab/testbeds_sm_zn2_hw_bios_cfg.md
+++ /dev/null
@@ -1,634 +0,0 @@
-# SuperMicro Cascadelake Servers - HW and BIOS Configuration
-
-1. [Linux lscpu](#linux-lscpu)
-1. [Linux dmidecode](#dmidecode)
-1. [Linux dmidecode pci](#linux-dmidecode-pci)
-1. [Linux dmidecode memory](#linux-dmidecode-memory)
-1. [EPYC zn2 Server BIOS Configuration](#epyc-zn2-server-bios-configuration)
- 1. [Boot Feature](#boot-feature)
- 1. [CPU Configuration](#cpu-configuration)
- 1. [Advanced Power Management Configuration](#advanced-power-management-configuration)
- 1. [CPU P State Control](#cpu-p-state-control)
- 1. [Hardware PM State Control](#hardware-pm-state-control)
- 1. [CPU C State Control](#cpu-c-state-control)
- 1. [Package C State Control](#package-c-state-control)
- 1. [CPU T State Control](#cpu-t-state-control)
- 1. [Chipset Configuration](#chipset-configuration)
- 1. [North Bridge](#north-bridge)
- 1. [UPI Configuration](#upi-configuration)
- 1. [Memory Configuration](#memory-configuration)
- 1. [IIO Configuration](#iio-configuration)
- 1. [CPU1 Configuration](#cpu1-configuration)
- 1. [CPU2 Configuration](#cpu2-configuration)
- 1. [South Bridge](#south-bridge)
- 1. [PCIe/PCI/PnP Configuration](#pciepcipnp-configuration)
- 1. [ACPI Settings](#acpi-settings)
-1. [EPYC zn2 Server Firmware Inventory](#epyc-zn2-server-firmware-inventory)
-
-## Linux lscpu
-
-```
-$ lscpu
-Architecture: x86_64
-CPU op-mode(s): 32-bit, 64-bit
-Byte Order: Little Endian
-CPU(s): 64
-On-line CPU(s) list: 0-63
-Thread(s) per core: 2
-Core(s) per socket: 32
-Socket(s): 1
-NUMA node(s): 2
-Vendor ID: AuthenticAMD
-CPU family: 23
-Model: 49
-Model name: AMD EPYC 7532 32-Core Processor
-Stepping: 0
-CPU MHz: 1981.470
-CPU max MHz: 2400.0000
-CPU min MHz: 1500.0000
-BogoMIPS: 4800.05
-Virtualization: AMD-V
-L1d cache: 32K
-L1i cache: 32K
-L2 cache: 512K
-L3 cache: 16384K
-NUMA node0 CPU(s): 0-15,32-47
-NUMA node1 CPU(s): 16-31,48-63
-Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca
-```
-
-```
-$ lscpu
-Architecture: x86_64
-CPU op-mode(s): 32-bit, 64-bit
-Byte Order: Little Endian
-CPU(s): 64
-On-line CPU(s) list: 0-63
-Thread(s) per core: 2
-Core(s) per socket: 32
-Socket(s): 1
-NUMA node(s): 2
-Vendor ID: AuthenticAMD
-CPU family: 23
-Model: 49
-Model name: AMD EPYC 7532 32-Core Processor
-Stepping: 0
-CPU MHz: 1981.470
-CPU max MHz: 2400.0000
-CPU min MHz: 1500.0000
-BogoMIPS: 4800.05
-Virtualization: AMD-V
-L1d cache: 32K
-L1i cache: 32K
-L2 cache: 512K
-L3 cache: 16384K
-NUMA node0 CPU(s): 0-15,32-47
-NUMA node1 CPU(s): 16-31,48-63
-Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca
-```
-
-## Linux dmidecode
-
-```
- $ dmidecode -t slot
- Handle 0x0026, DMI type 7, 27 bytes
- Cache Information
- Socket Designation: L1 Cache
- Configuration: Enabled, Not Socketed, Level 1
- Operational Mode: Write Back
- Location: Internal
- Installed Size: 2048 kB
- Maximum Size: 2048 kB
- Supported SRAM Types:
- Pipeline Burst
- Installed SRAM Type: Pipeline Burst
- Speed: 1 ns
- Error Correction Type: Multi-bit ECC
- System Type: Unified
- Associativity: 8-way Set-associative
-
- Handle 0x0027, DMI type 7, 27 bytes
- Cache Information
- Socket Designation: L2 Cache
- Configuration: Enabled, Not Socketed, Level 2
- Operational Mode: Write Back
- Location: Internal
- Installed Size: 16384 kB
- Maximum Size: 16384 kB
- Supported SRAM Types:
- Pipeline Burst
- Installed SRAM Type: Pipeline Burst
- Speed: 1 ns
- Error Correction Type: Multi-bit ECC
- System Type: Unified
- Associativity: 8-way Set-associative
-
- Handle 0x0028, DMI type 7, 27 bytes
- Cache Information
- Socket Designation: L3 Cache
- Configuration: Enabled, Not Socketed, Level 3
- Operational Mode: Write Back
- Location: Internal
- Installed Size: 262144 kB
- Maximum Size: 262144 kB
- Supported SRAM Types:
- Pipeline Burst
- Installed SRAM Type: Pipeline Burst
- Speed: 1 ns
- Error Correction Type: Multi-bit ECC
- System Type: Unified
- Associativity: 16-way Set-associative
-
- Handle 0x0029, DMI type 4, 48 bytes
- Processor Information
- Socket Designation: CPU
- Type: Central Processor
- Family: Zen
- Manufacturer: Advanced Micro Devices, Inc.
- ID: 10 0F 83 00 FF FB 8B 17
- Signature: Family 23, Model 49, Stepping 0
- Flags:
- FPU (Floating-point unit on-chip)
- VME (Virtual mode extension)
- DE (Debugging extension)
- PSE (Page size extension)
- TSC (Time stamp counter)
- MSR (Model specific registers)
- PAE (Physical address extension)
- MCE (Machine check exception)
- CX8 (CMPXCHG8 instruction supported)
- APIC (On-chip APIC hardware supported)
- SEP (Fast system call)
- MTRR (Memory type range registers)
- PGE (Page global enable)
- MCA (Machine check architecture)
- CMOV (Conditional move instruction supported)
- PAT (Page attribute table)
- PSE-36 (36-bit page size extension)
- CLFSH (CLFLUSH instruction supported)
- MMX (MMX technology supported)
- FXSR (FXSAVE and FXSTOR instructions supported)
- SSE (Streaming SIMD extensions)
- SSE2 (Streaming SIMD extensions 2)
- HTT (Multi-threading)
- Version: AMD EPYC 7532 32-Core Processor
- Voltage: 1.1 V
- External Clock: 100 MHz
- Max Speed: 3300 MHz
- Current Speed: 2400 MHz
- Status: Populated, Enabled
- Upgrade: Socket SP3
- L1 Cache Handle: 0x0026
- L2 Cache Handle: 0x0027
- L3 Cache Handle: 0x0028
- Serial Number: Unknown
- Asset Tag: Unknown
- Part Number: Unknown
- Core Count: 32
- Core Enabled: 32
- Thread Count: 64
- Characteristics:
- 64-bit capable
- Multi-Core
- Hardware Thread
- Execute Protection
- Enhanced Virtualization
- Power/Performance Control
-```
-
-## Linux dmidecode pci
-
-```
- $ dmidecode -t slot
- Getting SMBIOS data from sysfs.
- SMBIOS 3.2.0 present.
- # SMBIOS implementations newer than version 3.1.1 are not
- # fully supported by this version of dmidecode.
-
- Handle 0x000A, DMI type 9, 17 bytes
- System Slot Information
- Designation: M.2-HC1 CPU PCI-E 4.0 X4/X2
- Type: x4 PCI Express 3 x4
- Current Usage: Available
- Length: Short
- ID: 1
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:ff:00.0
-
- Handle 0x000B, DMI type 9, 17 bytes
- System Slot Information
- Designation: M.2-HC2 CPU PCI-E 4.0 X2
- Type: x2 PCI Express 3 x2
- Current Usage: Available
- Length: Short
- ID: 2
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:ff:00.0
-
- Handle 0x0042, DMI type 9, 17 bytes
- System Slot Information
- Designation: RSC-W-66G4 SLOT1 PCI-E 4.0 X16
- Type: x16 PCI Express 3 x16
- Current Usage: In Use
- Length: Long
- ID: 1
- Characteristics:
- 3.3 V is provided
- PME signal is supported
- Bus Address: 0000:41:00.0
-
- Handle 0x0043, DMI type 9, 17 bytes
- System Slot Information
- Designation: RSC-W-66G4 SLOT2 PCI-E 4.0 X16
- Type: x16 PCI Express 3 x16
- Current Usage: In Use
- Length: Long
- ID: 2
- Characteristics:
- 3.3 V is provided
- PME signal is supported
- Bus Address: 0000:81:00.0
-
- Handle 0x0045, DMI type 9, 17 bytes
- System Slot Information
- Designation: RSC-WR-6 SLOT1 PCI-E 4.0 X16
- Type: x16 PCI Express 3 x16
- Current Usage: In Use
- Length: Long
- ID: 1
- Characteristics:
- 3.3 V is provided
- PME signal is supported
- Bus Address: 0000:01:00.0
-
-```
-
-## Linux dmidecode memory
-
-```
- $ dmidecode -t memory
- # dmidecode 3.1
- Getting SMBIOS data from sysfs.
- SMBIOS 3.2.0 present.
- # SMBIOS implementations newer than version 3.1.1 are not
- # fully supported by this version of dmidecode.
-
- Handle 0x0023, DMI type 16, 23 bytes
- Physical Memory Array
- Location: System Board Or Motherboard
- Use: System Memory
- Error Correction Type: Multi-bit ECC
- Maximum Capacity: 2 TB
- Error Information Handle: 0x0022
- Number Of Devices: 8
-
- Handle 0x002B, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0023
- Error Information Handle: 0x002A
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMMA1
- Bank Locator: P0_Node0_Channel0_Dimm0
- Type: DDR4
- Type Detail: Synchronous Registered (Buffered)
- Speed: 3200 MT/s
- Manufacturer: SK Hynix
- Serial Number: 431E9216
- Asset Tag: P1-DIMMA1_AssetTag (date:19/00)
- Part Number: HMA84GR7CJR4N-XN
- Rank: 2
- Configured Clock Speed: 3200 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x002E, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0023
- Error Information Handle: 0x002D
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMMB1
- Bank Locator: P0_Node0_Channel1_Dimm0
- Type: DDR4
- Type Detail: Synchronous Registered (Buffered)
- Speed: 3200 MT/s
- Manufacturer: SK Hynix
- Serial Number: 431E91D2
- Asset Tag: P1-DIMMB1_AssetTag (date:19/00)
- Part Number: HMA84GR7CJR4N-XN
- Rank: 2
- Configured Clock Speed: 3200 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0031, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0023
- Error Information Handle: 0x0030
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMMC1
- Bank Locator: P0_Node0_Channel2_Dimm0
- Type: DDR4
- Type Detail: Synchronous Registered (Buffered)
- Speed: 3200 MT/s
- Manufacturer: SK Hynix
- Serial Number: 431E918A
- Asset Tag: P1-DIMMC1_AssetTag (date:19/00)
- Part Number: HMA84GR7CJR4N-XN
- Rank: 2
- Configured Clock Speed: 3200 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0034, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0023
- Error Information Handle: 0x0033
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMMD1
- Bank Locator: P0_Node0_Channel3_Dimm0
- Type: DDR4
- Type Detail: Synchronous Registered (Buffered)
- Speed: 3200 MT/s
- Manufacturer: SK Hynix
- Serial Number: 431E9187
- Asset Tag: P1-DIMMD1_AssetTag (date:19/00)
- Part Number: HMA84GR7CJR4N-XN
- Rank: 2
- Configured Clock Speed: 3200 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0037, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0023
- Error Information Handle: 0x0036
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMME1
- Bank Locator: P0_Node0_Channel4_Dimm0
- Type: DDR4
- Type Detail: Synchronous Registered (Buffered)
- Speed: 3200 MT/s
- Manufacturer: SK Hynix
- Serial Number: 431E9178
- Asset Tag: P1-DIMME1_AssetTag (date:19/00)
- Part Number: HMA84GR7CJR4N-XN
- Rank: 2
- Configured Clock Speed: 3200 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x003A, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0023
- Error Information Handle: 0x0039
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMMF1
- Bank Locator: P0_Node0_Channel5_Dimm0
- Type: DDR4
- Type Detail: Synchronous Registered (Buffered)
- Speed: 3200 MT/s
- Manufacturer: SK Hynix
- Serial Number: 431E9206
- Asset Tag: P1-DIMMF1_AssetTag (date:19/00)
- Part Number: HMA84GR7CJR4N-XN
- Rank: 2
- Configured Clock Speed: 3200 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x003D, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0023
- Error Information Handle: 0x003C
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMMG1
- Bank Locator: P0_Node0_Channel6_Dimm0
- Type: DDR4
- Type Detail: Synchronous Registered (Buffered)
- Speed: 3200 MT/s
- Manufacturer: SK Hynix
- Serial Number: 431E9207
- Asset Tag: P1-DIMMG1_AssetTag (date:19/00)
- Part Number: HMA84GR7CJR4N-XN
- Rank: 2
- Configured Clock Speed: 3200 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-
- Handle 0x0040, DMI type 17, 84 bytes
- Memory Device
- Array Handle: 0x0023
- Error Information Handle: 0x003F
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMMH1
- Bank Locator: P0_Node0_Channel7_Dimm0
- Type: DDR4
- Type Detail: Synchronous Registered (Buffered)
- Speed: 3200 MT/s
- Manufacturer: SK Hynix
- Serial Number: 431E9209
- Asset Tag: P1-DIMMH1_AssetTag (date:19/00)
- Part Number: HMA84GR7CJR4N-XN
- Rank: 2
- Configured Clock Speed: 3200 MT/s
- Minimum Voltage: 1.2 V
- Maximum Voltage: 1.2 V
- Configured Voltage: 1.2 V
-```
-
-## EPYC zn2 Server BIOS Configuration - TG
-
-### Boot Feature
-
-```
- | Quiet Boot [Enabled] |Boot option |
- | | |
- | Option ROM Messages [Force BIOS] | |
- | Bootup NumLock State [On] | |
- | Wait For "F1" If Error [Enabled] | |
- | INT19 Trap Response [Immediate] | |
- | Re-try Boot [Disabled] | |
- | | |
- | Power Configuration | |
- | Watch Dog Function [Disabled] | |
- | Restore on AC Power Loss [Last State] | |
- | Power Button Function [Instant Off] | |
-```
-
-### CPU Configuration
-
-```
- | ACPI Settings ^| |
- | -------------------------------------------------- *| |
- | PCI AER Support [Disabled] *| |
- | High Precision Event Timer [Disabled] *| |
- | NUMA Nodes Per Socket [NPS2] *| |
- | ACPI SRAT L3 Cache As NUMA Domain [Auto] *| |
- | *| |
- | CPU Configuration ^| |
- | -------------------------------------------------- *| |
- | SMT Control [Auto] *| |
- | Core Performance Boost [Auto] *| |
- | Global C-state control [Disabled] *| |
- | Local APIC Mode [Auto] *| |
- | CCD Control [Auto] *| |
- | Core Control [Auto] *| |
- | Core Control [Auto] *| |
- | L1 Stream HW Prefetcher [Enabled] *| |
- | L2 Stream HW Prefetcher [Enabled] *| |
- | SVM Mode [Enabled] *| |
- | SMEE [Disabled] *| |
- | *| |
- |> CPU1 Information *| |
- | *| |
- | NB Configuration ^| |
- | -------------------------------------------------- *| |
- | Determinism Control [Manual] *| |
- | Determinism Slider [Performance] *| |
- | cTDP Control [Disabled] *| |
- | IOMMU [Disabled] *| |
- | ACS Enable [Auto] *| |
- | Package Power Limit Control [Auto] *| |
- | APBDIS [1] *| |
- | Fixed SOC Pstate [P0] *| |
- | DF Cstates [Enabled] *| |
- | Preferred IO [Manual] *| |
- | Preferred IO Bus [##] *| |
- | *| |
- | *|-----------------------------|
- | *|><: Select Screen |
- | *|^v: Select Item |
- | *|Enter: Select |
- | +|+/-: Change Opt. |
- | +|F1: General Help |
- | +|F2: Previous Values |
- | +|F3: Optimized Defaults |
- | v|F4: Save & Exit |
- | | |
-```
-
-
-## EPYC zn2 Server BIOS Configuration - DUT
-
-### Boot Feature
-
-```
- | Quiet Boot [Enabled] |Boot option |
- | | |
- | Option ROM Messages [Force BIOS] | |
- | Bootup NumLock State [On] | |
- | Wait For "F1" If Error [Enabled] | |
- | INT19 Trap Response [Immediate] | |
- | Re-try Boot [Disabled] | |
- | | |
- | Power Configuration | |
- | Watch Dog Function [Disabled] | |
- | Restore on AC Power Loss [Last State] | |
- | Power Button Function [Instant Off] | |
-```
-
-### CPU Configuration
-
-```
- | ACPI Settings ^| |
- | -------------------------------------------------- *| |
- | PCI AER Support [Disabled] *| |
- | High Precision Event Timer [Disabled] *| |
- | NUMA Nodes Per Socket [NPS2] *| |
- | ACPI SRAT L3 Cache As NUMA Domain [Auto] *| |
- | *| |
- | CPU Configuration ^| |
- | -------------------------------------------------- *| |
- | SMT Control [Auto] *| |
- | Core Performance Boost [Auto] *| |
- | Global C-state control [Disabled] *| |
- | Local APIC Mode [Auto] *| |
- | CCD Control [Auto] *| |
- | Core Control [Auto] *| |
- | Core Control [Auto] *| |
- | L1 Stream HW Prefetcher [Enabled] *| |
- | L2 Stream HW Prefetcher [Enabled] *| |
- | SVM Mode [Enabled] *| |
- | SMEE [Disabled] *| |
- | *| |
- |> CPU1 Information *| |
- | *| |
- | NB Configuration ^| |
- | -------------------------------------------------- *| |
- | Determinism Control [Manual] *| |
- | Determinism Slider [Performance] *| |
- | cTDP Control [Disabled] *| |
- | IOMMU [Disabled] *| |
- | ACS Enable [Auto] *| |
- | Package Power Limit Control [Auto] *| |
- | APBDIS [1] *| |
- | Fixed SOC Pstate [P0] *| |
- | DF Cstates [Enabled] *| |
- | Preferred IO [Manual] *| |
- | Preferred IO Bus [##] *| |
- | *| |
- | *|-----------------------------|
- | *|><: Select Screen |
- | *|^v: Select Item |
- | *|Enter: Select |
- | +|+/-: Change Opt. |
- | +|F1: General Help |
- | +|F2: Previous Values |
- | +|F3: Optimized Defaults |
- | v|F4: Save & Exit |
- | | |
-```
-
-
-## EPYC zn2 Server Firmware Inventory
-
-```
-Host. IPMI IP. BMC. BIOS. CPLD. CPU Microcode. PCI Bus. X710 Firmware. XXV710 Firmware. i40e. MLX5 Firmware. mlx5_core
-s60-t210-sut1. 10.30.55.24. 03.10.04. 1.1a. 02.c2.00. 0x8301038. ?. 6.80 0x80003ce6 1.2074.0. 6.01 0x80003554 1.1747.0. 2.1.14-k. 16.26.1040. 4.6-1.0.1.
-s61-t210-tg1. 10.30.55.25. 03.10.04. 1.1a. 02.c2.00. 0x8301038. ?. 6.80 0x80003ce6 1.2074.0. 6.01 0x80003554 1.1747.0. 2.1.14-k. 16.26.1040. 4.6-1.0.1.
-``` \ No newline at end of file
diff --git a/docs/lab/testbeds_ucs_hsw_hw_bios_cfg.md b/docs/lab/testbeds_ucs_hsw_hw_bios_cfg.md
deleted file mode 100644
index 8dcd1f0e8c..0000000000
--- a/docs/lab/testbeds_ucs_hsw_hw_bios_cfg.md
+++ /dev/null
@@ -1,740 +0,0 @@
-# Cisco UCS c240m4 Haswell Servers - HW and BIOS Configuration
-
-1. [Linux lscpu](#linux-lscpu)
-1. [Linux dmidecode pci](#linux-dmidecode-pci)
-1. [Linux dmidecode memory](#linux-dmidecode-memory)
-1. [Xeon Hsw Server BIOS Configuration](#xeon-hsw-server-bios-configuration)
-
-## Linux lscpu
-
-```
- $ lscpu
- Architecture: x86_64
- CPU op-mode(s): 32-bit, 64-bit
- Byte Order: Little Endian
- CPU(s): 36
- On-line CPU(s) list: 0-35
- Thread(s) per core: 1
- Core(s) per socket: 18
- Socket(s): 2
- NUMA node(s): 2
- Vendor ID: GenuineIntel
- CPU family: 6
- Model: 63
- Model name: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
- Stepping: 2
- CPU MHz: 2294.249
- BogoMIPS: 4589.82
- Virtualization: VT-x
- L1d cache: 32K
- L1i cache: 32K
- L2 cache: 256K
- L3 cache: 46080K
- NUMA node0 CPU(s): 0-17
- NUMA node1 CPU(s): 18-35
- Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq
- dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt
- cqm_llc cqm_occup_llc dtherm arat pln pts
-```
-
-## Linux dmidecode pci
-
-```
- $ dmidecode --type 9 | grep 'Handle\|Slot\|Type\|Address'
- Handle 0x0046, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:1
- Type: x8 PCI Express 3 x8
- Bus Address: 0000:0a:02.0
- Handle 0x0047, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:2
- Type: x8 PCI Express 3 x8
- Bus Address: 0000:0e:03.2
- Handle 0x0048, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:3
- Type: x8 PCI Express 3 x8
- Bus Address: 0000:0d:03.0
- Handle 0x0049, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:4
- Type: x8 PCI Express 3 x8
- Bus Address: 0000:85:02.2
- Handle 0x004A, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:5
- Type: x8 PCI Express 3 x16
- Bus Address: 0000:87:03.0
- Handle 0x004B, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:6
- Type: x8 PCI Express 3 x8
- Bus Address: 0000:84:02.0
- Handle 0x004C, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:MLOM
- Type: x8 Other
- Bus Address: 0000:01:01.0
- Handle 0x004D, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:HBA
- Type: x8 Other
- Bus Address: 0000:0c:02.2
- Handle 0x004E, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:NVMe1
- Type: x4 PCI Express 3 x4
- Bus Address: 0000:82:01.0
- Handle 0x004F, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:NVMe2
- Type: x4 PCI Express 3 x4
- Bus Address: 0000:83:01.1
- Handle 0x0050, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:2.1
- Type: x16 PCI Express 3 x16
- Bus Address: 0000:00:1f.7
- Handle 0x0051, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:2.2
- Type: x16 PCI Express 3 x16
- Bus Address: 0000:00:1f.7
- Handle 0x0052, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:2.3
- Type: x16 PCI Express 3 x16
- Bus Address: 0000:00:1f.7
- Handle 0x0053, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:2.4
- Type: x16 PCI Express 3 x16
- Bus Address: 0000:00:1f.7
- Handle 0x0054, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:2.5
- Type: x16 PCI Express 3 x16
- Bus Address: 0000:00:1f.7
- Handle 0x0055, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:5.1
- Type: x8 PCI Express 3 x16
- Bus Address: 0000:00:1f.7
- Handle 0x0056, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:5.2
- Type: x8 PCI Express 3 x16
- Bus Address: 0000:00:1f.7
- Handle 0x0057, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:5.3
- Type: x8 PCI Express 3 x16
- Bus Address: 0000:00:1f.7
- Handle 0x0058, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:5.4
- Type: x8 PCI Express 3 x16
- Bus Address: 0000:00:1f.7
- Handle 0x0059, DMI type 9, 17 bytes
- System Slot Information
- Designation: SlotID:5.5
- Type: x8 PCI Express 3 x16
- Bus Address: 0000:00:1f.7
-```
-
-## Linux dmidecode memory
-
-```
- $ dmidecode -t memory
- # dmidecode 2.12
- SMBIOS 2.8 present.
-
- Handle 0x0022, DMI type 16, 23 bytes
- Physical Memory Array
- Location: System Board Or Motherboard
- Use: System Memory
- Error Correction Type: Multi-bit ECC
- Maximum Capacity: 1536 GB
- Error Information Handle: Not Provided
- Number Of Devices: 24
-
- Handle 0x0024, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_A1
- Bank Locator: NODE 0 CHANNEL 0 DIMM 0
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80EC7380
- Asset Tag: DIMM_A1_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x0025, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_A2
- Bank Locator: NODE 0 CHANNEL 0 DIMM 1
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80EC73D1
- Asset Tag: DIMM_A2_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x0026, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: DIMM_A3
- Bank Locator: NODE 0 CHANNEL 0 DIMM 2
- Type: Other
- Type Detail: None
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
-
- Handle 0x0027, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_B1
- Bank Locator: NODE 0 CHANNEL 1 DIMM 0
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80EC7325
- Asset Tag: DIMM_B1_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x0028, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_B2
- Bank Locator: NODE 0 CHANNEL 1 DIMM 1
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80EC7334
- Asset Tag: DIMM_B2_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x0029, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: DIMM_B3
- Bank Locator: NODE 0 CHANNEL 1 DIMM 2
- Type: Other
- Type Detail: None
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
-
- Handle 0x002A, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_C1
- Bank Locator: NODE 0 CHANNEL 2 DIMM 0
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80EC7329
- Asset Tag: DIMM_C1_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x002B, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_C2
- Bank Locator: NODE 0 CHANNEL 2 DIMM 1
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80EC732D
- Asset Tag: DIMM_C2_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x002C, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: DIMM_C3
- Bank Locator: NODE 0 CHANNEL 2 DIMM 2
- Type: Other
- Type Detail: None
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
-
- Handle 0x002D, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_D1
- Bank Locator: NODE 0 CHANNEL 3 DIMM 0
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80EC73D3
- Asset Tag: DIMM_D1_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x002E, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_D2
- Bank Locator: NODE 0 CHANNEL 3 DIMM 1
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80EC7330
- Asset Tag: DIMM_D2_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x002F, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: DIMM_D3
- Bank Locator: NODE 0 CHANNEL 3 DIMM 2
- Type: Other
- Type Detail: None
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
-
- Handle 0x0030, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_E1
- Bank Locator: NODE 1 CHANNEL 0 DIMM 0
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80E54252
- Asset Tag: DIMM_E1_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x0031, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_E2
- Bank Locator: NODE 1 CHANNEL 0 DIMM 1
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80E54235
- Asset Tag: DIMM_E2_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x0032, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: DIMM_E3
- Bank Locator: NODE 1 CHANNEL 0 DIMM 2
- Type: Other
- Type Detail: None
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
-
- Handle 0x0033, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_F1
- Bank Locator: NODE 1 CHANNEL 1 DIMM 0
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80E54218
- Asset Tag: DIMM_F1_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x0034, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_F2
- Bank Locator: NODE 1 CHANNEL 1 DIMM 1
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80E54236
- Asset Tag: DIMM_F2_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x0035, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: DIMM_F3
- Bank Locator: NODE 1 CHANNEL 1 DIMM 2
- Type: Other
- Type Detail: None
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
-
- Handle 0x0036, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_G1
- Bank Locator: NODE 1 CHANNEL 2 DIMM 0
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80E54247
- Asset Tag: DIMM_G1_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x0037, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_G2
- Bank Locator: NODE 1 CHANNEL 2 DIMM 1
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80E5421E
- Asset Tag: DIMM_G2_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x0038, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: DIMM_G3
- Bank Locator: NODE 1 CHANNEL 2 DIMM 2
- Type: Other
- Type Detail: None
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
-
- Handle 0x0039, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_H1
- Bank Locator: NODE 1 CHANNEL 3 DIMM 0
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80E5423C
- Asset Tag: DIMM_H1_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x003A, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: 72 bits
- Data Width: 64 bits
- Size: 32 GB
- Form Factor: DIMM
- Set: None
- Locator: DIMM_H2
- Bank Locator: NODE 1 CHANNEL 3 DIMM 1
- Type: Other
- Type Detail: None
- Speed: 2133 MHz
- Manufacturer: 0xAD00
- Serial Number: 80E5424D
- Asset Tag: DIMM_H2_AssetTag
- Part Number: HMA84GL7MMR4N-TF
- Rank: 4
- Configured Clock Speed: 2133 MHz
-
- Handle 0x003B, DMI type 17, 34 bytes
- Memory Device
- Array Handle: 0x0022
- Error Information Handle: Not Provided
- Total Width: Unknown
- Data Width: Unknown
- Size: No Module Installed
- Form Factor: DIMM
- Set: None
- Locator: DIMM_H3
- Bank Locator: NODE 1 CHANNEL 3 DIMM 2
- Type: Other
- Type Detail: None
- Speed: Unknown
- Manufacturer: NO DIMM
- Serial Number: NO DIMM
- Asset Tag: NO DIMM
- Part Number: NO DIMM
- Rank: Unknown
- Configured Clock Speed: Unknown
-```
-
-## Xeon Hsw Server BIOS Configuration
-
-```
- C240 / # scope bios
- C240 /bios # show advanced detail
- Set-up parameters:
- Intel(R) VT-d ATS Support: Enabled
- Adjacent Cache Line Prefetcher: Enabled
- All Onboard LOM Ports: Enabled
- Altitude: 300 M
- Bits per second: 115200
- Power Technology: Performance
- Channel Interleaving: Auto
- Intel(R) VT-d Coherency Support: Disabled
- Console Redirection: COM 0
- Number of Enabled Cores: All
- Energy Performance: Performance
- CPU Performance: Enterprise
- DCU IP Prefetcher: Enabled
- DCU Streamer Prefetch: Enabled
- Demand Scrub: Enabled
- Direct Cache Access Support: Auto
- Enhanced Intel Speedstep(R) Tec: Disabled
- Execute Disable: Enabled
- Flow Control: None
- Hardware Prefetcher: Enabled
- Intel(R) Hyper-Threading Techno: Disabled
- Intel(R) Turbo Boost Technology: Disabled
- Intel(R) VT: Enabled
- Intel(R) VT-d: Enabled
- Intel(R) Interrupt Remapping: Enabled
- Legacy USB Support: Enabled
- Extended APIC: XAPIC
- LOM Port 1 OptionROM: Enabled
- LOM Port 2 OptionROM: Enabled
- MMIO above 4GB: Enabled
- NUMA: Enabled
- PCI ROM CLP: Disabled
- Package C State Limit: C6 Retention
- Intel(R) Pass Through DMA: Disabled
- Patrol Scrub: Enabled
- xHCI Mode: Disabled
- All PCIe Slots OptionROM: Enabled
- PCIe Slot:1 OptionROM: Disabled
- PCIe Slot:2 OptionROM: Disabled
- PCIe Slot:3 OptionROM: Disabled
- PCIe Slot:4 OptionROM: Disabled
- PCIe Slot:5 OptionROM: Disabled
- PCIe Slot:6 OptionROM: Disabled
- PCIe Slot:HBA Link Speed: GEN3
- PCIe Slot:HBA OptionROM: Enabled
- PCIe Slot:MLOM OptionROM: Enabled
- PCIe Slot:N1 OptionROM: Enabled
- PCIe Slot:N2 OptionROM: Enabled
- Processor Power state C1 Enhanc: Disabled
- Processor C3 Report: Disabled
- Processor C6 Report: Disabled
- P-STATE Coordination: HW ALL
- Putty KeyPad: ESCN
- Energy Performance Tuning: BIOS
- QPI Link Frequency Select: Auto
- QPI Snoop Mode: Home Snoop
- Rank Interleaving: Auto
- Redirection After BIOS POST: Always Enable
- PCH SATA Mode: AHCI
- Select Memory RAS: Maximum Performance
- SR-IOV Support: Enabled
- Terminal Type: VT100
- Port 60/64 Emulation: Enabled
- Workload Configuration: Balanced
- CDN Support for VIC: Disabled
- Out-of-Band Management: Disabled
- C240-FCH1950V1H5 /bios/advanced #
-```
diff --git a/docs/layouts/shortcodes/release_csit.html b/docs/layouts/shortcodes/release_csit.html
new file mode 100644
index 0000000000..7967f29195
--- /dev/null
+++ b/docs/layouts/shortcodes/release_csit.html
@@ -0,0 +1 @@
+{{ .Site.Data.variables.release_csit }} \ No newline at end of file
diff --git a/docs/layouts/shortcodes/release_vpp.html b/docs/layouts/shortcodes/release_vpp.html
new file mode 100644
index 0000000000..18f286552a
--- /dev/null
+++ b/docs/layouts/shortcodes/release_vpp.html
@@ -0,0 +1 @@
+{{ .Site.Data.variables.release_vpp }} \ No newline at end of file
diff --git a/docs/perf-triggers-design.rst b/docs/perf-triggers-design.rst
deleted file mode 100644
index 4a0232cde0..0000000000
--- a/docs/perf-triggers-design.rst
+++ /dev/null
@@ -1,146 +0,0 @@
-Introduction
-------------
-
-Previous gerrit triggers for performance tests (
-*vpp-csit-verify-hw-perf-{branch}* and *csit-vpp-verify-hw-perf-{branch}*) are
-listed in [1]_ with jjb definition in [2]_. Mapping of triggers to CSIT test RF
-tags [4]_ driving the selection of test cases for execution is listed in [3]_.
-
-Previous mappings of trigger to RF tags
----------------------------------------
-
-(vpp-csit job) vpp-verify-perf-{**keyword**} OR (csit-vpp job) verify-perf-{**keyword**}
- - **acl**:
- - 'mrrANDnic_intel-x520-da2AND1t1cANDacl'
- - 'mrrANDnic_intel-x520-da2AND2t2cANDacl'
- - **ip4**:
- - 'mrrANDnic_intel-x520-da2AND1t1cANDip4base'
- - 'mrrANDnic_intel-x520-da2AND1t1cANDip4fwdANDfib_2m'
- - **ip6**
- - 'mrrANDnic_intel-x520-da2AND1t1cANDip6base'
- - 'mrrANDnic_intel-x520-da2AND1t1cANDip6fwdANDfib_2m'
- - **ipsechw**
- - 'pdrdiscANDnic_intel-xl710AND1t1cANDipsechw'
- - 'pdrdiscANDnic_intel-xl710AND2t2cANDipsechw'
- - 'mrrANDnic_intel-xl710AND1t1cANDipsechw'
- - 'mrrANDnic_intel-xl710AND2t2cANDipsechw'
- - **l2**
- - 'mrrANDnic_intel-x520-da2AND1t1cANDl2xcbase'
- - 'mrrANDnic_intel-x520-da2AND1t1cANDl2bdbase'
- - 'mrrANDnic_intel-x520-da2AND1t1cANDdot1q'
- - '!lbond_dpdk'
- - **lisp**
- - 'mrrANDnic_intel-x520-da2AND1t1cANDlisp'
- - **memif**
- - 'pdrdiscANDnic_intel-x520-da2AND1t1cANDmemif'
- - 'pdrdiscANDnic_intel-x520-da2AND2t2cANDmemif'
- - 'mrrANDnic_intel-x520-da2AND1t1cANDmemif'
- - 'mrrANDnic_intel-x520-da2AND2t2cANDmemif'
- - **vhost**
- - 'mrrANDnic_intel-x520-da2AND1t1cANDvhost'
- - '!lbond_dpdk'
- - **vxlan**
- - 'mrrANDnic_intel-x520-da2AND1t1cANDvxlan'
- - **srv6**
- - 'mrrANDsrv6AND1t1c'
- - 'mrrANDsrv6AND2t2c'
-
-Proposal for mapping triggers to RF tags
-----------------------------------------
-
-*Goal*
- make it simpler to use, scalable, parametrize and prepare for full CI/CD
- automation.
-
-*Syntax*
- trigger_keyword [{tag1} {tag2}AND{tag3} !{tag4} !{tag5}]
-
-*Inputs*
- - trigger_keyword for vpp-* jobs: 'perftest'
- - trigger_keyword for csit-* jobs: 'csit-perftest'
- - tags: existing CSIT tags [4]_ i.e. ip4base, ip6base, iacldst, memif
-
-Set of default tags appended to user input, under control by CSIT
- - always-on for vpp-csit*.job: 'mrr' 'nic_intel_x710-da2' '1t1c'
- - if input with no tags, following set applied:
- - 'mrrANDnic_intel-x710AND1t1cAND64bANDip4base'
- - 'mrrANDnic_intel-x710AND1t1cAND78bANDip6base'
- - 'mrrANDnic_intel-x710AND1t1cAND64bANDl2bdbase'
-
-Examples
- input: 'perftest'
- expanded: 'mrrANDnic_intel_x710-da2AND1t1cAND64bANDl2bdbase mrrANDnic_intel_x710-da2AND1t1cAND64bANDip4base mrrANDnic_intel_x710-da2AND1t1cAND78bANDip6base'
- input: 'perftest l2bdbase l2xcbase'
- expanded: 'mrrANDnic_intel_x710-da2ANDl2bdbase mrrANDnic_intel_x710-da2ANDl2xcbase'
- input: 'perftest ip4base !feature'
- expanded: 'mrrANDnic_intel_x710-da2ANDip4base' not 'feature'
- input: 'perftest ip4base !feature !lbond_dpdk'
- expanded: 'mrrANDnic_intel_x710-da2ANDip4base' not 'feature' not 'lbond_dpdk'
- input: 'perftestxyx ip4base !feature !lbond_dpdk'
- invalid: detected as error
- input: 'perftestip4base !feature !lbond_dpdk'
- invalid: detected as error
- input: 'perftest ip4base!feature!lbond_dpdk'
- invalid expand: 'mrrANDnic_intel_x710-da2ANDip4base!feature!lbond_dpdk'
- execution of RobotFramework will fail
-
-Constrains
- Trigger keyword must be different for every job to avoid running multiple jobs
- at once. Trigger keyword must not be substring of job name or any other
- message printed by JJB bach to gerrit message which can lead to recursive
- execution.
-
-Implementation
---------------
-
-Implementation is separated into two projects.
-
-CI-MANGEMENT
-~~~~~~~~~~~~
-
-https://gerrit.fd.io/r/#/c/13027/
-
-Implementing new gerrit keyword `csit-perftest` in JJB for
-*csit-vpp-perf-verify-{stream}* and `perftest` for
-*vpp-csit-verify-hw-perf-{stream}* performance jobs.
-
-::
-
- if [[ ${GERRIT_EVENT_TYPE} == 'comment-added' ]]; then
- TRIGGER=`echo ${GERRIT_EVENT_COMMENT_TEXT} \
- | grep -oE '(perftest$|perftest[[:space:]].+$)'`
- else
- TRIGGER=''
- fi
- # Export test type
- export TEST_TAG="VERIFY-PERF-PATCH"
- # Export test tags as string
- export TEST_TAG_STRING=${TRIGGER#$"perftest"}
-
-Code is automatically detecting trigger type and parse the gerrit comment
-massage. Stripped TAGs are exported as bash variable `$TEST_TAG_STRING` together
-with `$TEST_TAG`.
-
-CSIT
-~~~~
-
-https://gerrit.fd.io/r/#/c/13025/
-
-Implementing `$TEST_TAG_STRING` variable post processing. String of TAGs is
-automatically converted into array to be able to loop the items. If variable is
-empty default set of TAGs is applied.
-
-Array is then converted into Robot Framework parameter notation where every word
-means new `--include` parameter. Having multiple words (multiple includes) means
-logical OR in selection of test cases and could be applied to add additional
-test cases that have no common more specific match. See exmaples section for
-more details. Script also detects an exclamation mark before TAG that is
-translated to as a `--exclude` parameter.
-
-References
-----------
-
-.. [1] https://wiki.fd.io/view/CSIT/Jobs
-.. [2] https://git.fd.io/ci-management/tree/jjb/vpp/vpp.yaml#n762
-.. [3] https://git.fd.io/csit/tree/bootstrap-verify-perf.sh#n235
-.. [4] https://git.fd.io/csit/tree/docs/tag_documentation.rst \ No newline at end of file
diff --git a/docs/report/csit_framework_documentation/csit_design.rst b/docs/report/csit_framework_documentation/csit_design.rst
deleted file mode 100644
index b8851513ab..0000000000
--- a/docs/report/csit_framework_documentation/csit_design.rst
+++ /dev/null
@@ -1,192 +0,0 @@
-.. _csit-design:
-
-Design
-======
-
-FD.io CSIT system design needs to meet continuously expanding
-requirements of FD.io projects including VPP, related sub-systems (e.g.
-plugin applications, DPDK drivers) and FD.io applications (e.g. DPDK
-applications), as well as growing number of compute platforms running
-those applications. With CSIT project scope and charter including both
-FD.io continuous testing AND performance trending/comparisons, those
-evolving requirements further amplify the need for CSIT framework
-modularity, flexibility and usability.
-
-Design Hierarchy
-----------------
-
-CSIT follows a hierarchical system design with SUTs and DUTs at the
-bottom level of the hierarchy, presentation level at the top level and a
-number of functional layers in-between. The current CSIT system design
-including CSIT framework is depicted in the figure below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/csit_framework_documentation/}}
- \includegraphics[width=0.90\textwidth]{csit_design_picture}
- \label{fig:csit_design_picture}
- \end{figure}
-
-.. only:: html
-
- .. figure:: csit_design_picture.svg
- :alt: FD.io CSIT system design
- :align: center
-
- *FD.io CSIT system design*
-
-A brief bottom-up description is provided here:
-
-#. SUTs, DUTs, TGs
-
- - SUTs - Systems Under Test;
- - DUTs - Devices Under Test;
- - TGs - Traffic Generators;
-
-#. Level-1 libraries - Robot and Python
-
- - Lowest level CSIT libraries abstracting underlying test environment, SUT,
- DUT and TG specifics;
- - Used commonly across multiple L2 KWs;
- - Performance and functional tests:
-
- - L1 KWs (KeyWords) are implemented as RF libraries and Python
- libraries;
-
- - Performance TG L1 KWs:
-
- - All L1 KWs are implemented as Python libraries:
-
- - Support for TRex only today;
- - CSIT IXIA drivers in progress;
-
- - Performance data plane traffic profiles:
-
- - TG-specific stream profiles provide full control of:
-
- - Packet definition - layers, MACs, IPs, ports, combinations thereof
- e.g. IPs and UDP ports;
- - Stream definitions - different streams can run together, delayed,
- one after each other;
- - Stream profiles are independent of CSIT framework and can be used
- in any T-rex setup, can be sent anywhere to repeat tests with
- exactly the same setup;
- - Easily extensible - one can create a new stream profile that meets
- tests requirements;
- - Same stream profile can be used for different tests with the same
- traffic needs;
-
- - Functional data plane traffic scripts:
-
- - Scapy specific traffic scripts;
-
-#. Level-2 libraries - Robot resource files:
-
- - Higher level CSIT libraries abstracting required functions for executing
- tests;
- - L2 KWs are classified into the following functional categories:
-
- - Configuration, test, verification, state report;
- - Suite setup, suite teardown;
- - Test setup, test teardown;
-
-#. Tests - Robot:
-
- - Test suites with test cases;
-
- - Performance tests using physical testbed environment:
-
- - VPP;
- - DPDK-Testpmd;
- - DPDK-L3Fwd;
-
- - Tools:
-
- - Documentation generator;
- - Report generator;
- - Testbed environment setup ansible playbooks;
- - Operational debugging scripts;
-
-Test Lifecycle Abstraction
---------------------------
-
-A well coded test must follow a disciplined abstraction of the test
-lifecycles that includes setup, configuration, test and verification. In
-addition to improve test execution efficiency, the commmon aspects of
-test setup and configuration shared across multiple test cases should be
-done only once. Translating these high-level guidelines into the Robot
-Framework one arrives to definition of a well coded RF tests for FD.io
-CSIT. Anatomy of Good Tests for CSIT:
-
-#. Suite Setup - Suite startup Configuration common to all Test Cases in suite:
- uses Configuration KWs, Verification KWs, StateReport KWs;
-#. Test Setup - Test startup Configuration common to multiple Test Cases: uses
- Configuration KWs, StateReport KWs;
-#. Test Case - uses L2 KWs with RF Gherkin style:
-
- - prefixed with {Given} - Verification of Test setup, reading state: uses
- Configuration KWs, Verification KWs, StateReport KWs;
- - prefixed with {When} - Test execution: Configuration KWs, Test KWs;
- - prefixed with {Then} - Verification of Test execution, reading state: uses
- Verification KWs, StateReport KWs;
-
-#. Test Teardown - post Test teardown with Configuration cleanup and
- Verification common to multiple Test Cases - uses: Configuration KWs,
- Verification KWs, StateReport KWs;
-#. Suite Teardown - Suite post-test Configuration cleanup: uses Configuration
- KWs, Verification KWs, StateReport KWs;
-
-RF Keywords Functional Classification
--------------------------------------
-
-CSIT RF KWs are classified into the functional categories matching the test
-lifecycle events described earlier. All CSIT RF L2 and L1 KWs have been grouped
-into the following functional categories:
-
-#. Configuration;
-#. Test;
-#. Verification;
-#. StateReport;
-#. SuiteSetup;
-#. TestSetup;
-#. SuiteTeardown;
-#. TestTeardown;
-
-RF Keywords Naming Guidelines
------------------------------
-
-Readability counts: "..code is read much more often than it is written."
-Hence following a good and consistent grammar practice is important when
-writing :abbr:`RF (Robot Framework)` KeyWords and Tests. All CSIT test cases
-are coded using Gherkin style and include only L2 KWs references. L2 KWs are
-coded using simple style and include L2 KWs, L1 KWs, and L1 python references.
-To improve readability, the proposal is to use the same grammar for both
-:abbr:`RF (Robot Framework)` KW styles, and to formalize the grammar of English
-sentences used for naming the :abbr:`RF (Robot Framework)` KWs. :abbr:`RF (Robot
-Framework)` KWs names are short sentences expressing functional description of
-the command. They must follow English sentence grammar in one of the following
-forms:
-
-#. **Imperative** - verb-object(s): *"Do something"*, verb in base form.
-#. **Declarative** - subject-verb-object(s): *"Subject does something"*, verb in
- a third-person singular present tense form.
-#. **Affirmative** - modal_verb-verb-object(s): *"Subject should be something"*,
- *"Object should exist"*, verb in base form.
-#. **Negative** - modal_verb-Not-verb-object(s): *"Subject should not be
- something"*, *"Object should not exist"*, verb in base form.
-
-Passive form MUST NOT be used. However a usage of past participle as an
-adjective is okay. See usage examples provided in the Coding guidelines
-section below. Following sections list applicability of the above
-grammar forms to different :abbr:`RF (Robot Framework)` KW categories. Usage
-examples are provided, both good and bad.
-
-Coding Guidelines
------------------
-
-Coding guidelines can be found on `Design optimizations wiki page
-<https://wiki.fd.io/view/CSIT/Design_Optimizations>`_.
diff --git a/docs/report/csit_framework_documentation/csit_tag_description.rst b/docs/report/csit_framework_documentation/csit_tag_description.rst
deleted file mode 100644
index 1152ee3c62..0000000000
--- a/docs/report/csit_framework_documentation/csit_tag_description.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-CSIT RF Tags Descriptions
-=========================
-
-All CSIT test cases are labelled with Robot Framework tags used to allow for
-easy test case type identification, test case grouping and selection for
-execution. Following sections list currently used CSIT TAGs and their
-documentation based on the content of
-`tag documentation rst file`_.
-
-.. include:: ../../../../../../docs/tag_documentation.rst
- :start-line: 8
diff --git a/docs/report/csit_framework_documentation/csit_test_naming.rst b/docs/report/csit_framework_documentation/csit_test_naming.rst
deleted file mode 100644
index df1fdd74d2..0000000000
--- a/docs/report/csit_framework_documentation/csit_test_naming.rst
+++ /dev/null
@@ -1,120 +0,0 @@
-.. _csit_test_naming:
-
-Test Naming
-===========
-
-Background
-----------
-
-|csit-release| follows a common structured naming convention for all
-performance and system functional tests, introduced in CSIT-1701.
-
-The naming should be intuitive for majority of the tests. Complete
-description of CSIT test naming convention is provided on
-`CSIT test naming wiki page <https://wiki.fd.io/view/CSIT/csit-test-naming>`_.
-Below few illustrative examples of the naming usage for test suites across CSIT
-performance, functional and Honeycomb management test areas.
-
-Naming Convention
------------------
-
-The CSIT approach is to use tree naming convention and to encode following
-testing information into test suite and test case names:
-
-#. packet network port configuration
-
- * port type, physical or virtual;
- * number of ports;
- * NIC model, if applicable;
- * port-NIC locality, if applicable;
-
-#. packet encapsulations;
-
-#. VPP packet processing
-
- * packet forwarding mode;
- * packet processing function(s);
-
-#. packet forwarding path
-
- * if present, network functions (processes, containers, VMs) and their
- topology within the computer;
-
-#. main measured variable, type of test.
-
-Proposed convention is to encode ports and NICs on the left (underlay),
-followed by outer-most frame header, then other stacked headers up to the
-header processed by vSwitch-VPP, then VPP forwarding function, then encap on
-vhost interface, number of vhost interfaces, number of VMs. If chained VMs
-present, they get added on the right. Test topology is expected to be
-symmetric, in other words packets enter and leave SUT through ports specified
-on the left of the test name. Here some examples to illustrate the convention
-followed by the complete legend, and tables mapping the new test filenames to
-old ones.
-
-Naming Examples
----------------
-
-CSIT test suite naming examples (filename.robot) for common tested VPP
-topologies:
-
-1. **Physical port to physical port - a.k.a. NIC-to-NIC, Phy-to-Phy, P2P**
-
- * *PortNICConfig-WireEncapsulation-PacketForwardingFunction-
- PacketProcessingFunction1-...-PacketProcessingFunctionN-TestType*
- * *10ge2p1x520-dot1q-l2bdbasemaclrn-ndrdisc.robot* => 2 ports of 10GE on Intel
- x520 NIC, dot1q tagged Ethernet, L2 bridge-domain baseline switching with
- MAC learning, NDR throughput discovery.
- * *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrchk.robot* => 2 ports of 10GE on
- Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain baseline switching
- with MAC learning, NDR throughput discovery.
- * *10ge2p1x520-ethip4-ip4base-ndrdisc.robot* => 2 ports of 10GE on Intel x520
- NIC, IPv4 baseline routed forwarding, NDR throughput discovery.
- * *10ge2p1x520-ethip6-ip6scale200k-ndrdisc.robot* => 2 ports of 10GE on Intel
- x520 NIC, IPv6 scaled up routed forwarding, NDR throughput discovery.
- * *10ge2p1x520-ethip4-ip4base-iacldstbase-ndrdisc.robot* => 2 ports of 10GE on
- Intel x520 NIC, IPv4 baseline routed forwarding, ingress Access Control
- Lists baseline matching on destination, NDR throughput discovery.
- * *40ge2p1vic1385-ethip4-ip4base-ndrdisc.robot* => 2 ports of 40GE on Cisco
- vic1385 NIC, IPv4 baseline routed forwarding, NDR throughput discovery.
- * *eth2p-ethip4-ip4base-func.robot* => 2 ports of Ethernet, IPv4 baseline
- routed forwarding, functional tests.
-
-2. **Physical port to VM (or VM chain) to physical port - a.k.a. NIC2VM2NIC,
- P2V2P, NIC2VMchain2NIC, P2V2V2P**
-
- * *PortNICConfig-WireEncapsulation-PacketForwardingFunction-
- PacketProcessingFunction1-...-PacketProcessingFunctionN-VirtEncapsulation-
- VirtPortConfig-VMconfig-TestType*
- * *10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2 ports
- of 10GE on Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain switching
- to/from two vhost interfaces and one VM, NDR throughput discovery.
- * *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2
- ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain
- switching to/from two vhost interfaces and one VM, NDR throughput discovery.
- * *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-4vhost-2vm-ndrdisc.robot* => 2
- ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain
- switching to/from four vhost interfaces and two VMs, NDR throughput
- discovery.
- * *eth2p-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-func.robot* => 2 ports of
- Ethernet, IPv4 VXLAN Ethernet, L2 bridge-domain switching to/from two vhost
- interfaces and one VM, functional tests.
-
-3. **API CRUD tests - Create (Write), Read (Retrieve), Update (Modify), Delete
- (Destroy) operations for configuration and operational data**
-
- * *ManagementTestKeyword-ManagementOperation-ManagedFunction1-...-
- ManagedFunctionN-ManagementAPI1-ManagementAPIN-TestType*
- * *mgmt-cfg-lisp-apivat-func* => configuration of LISP with VAT API calls,
- functional tests.
- * *mgmt-cfg-l2bd-apihc-apivat-func* => configuration of L2 Bridge-Domain with
- Honeycomb API and VAT API calls, functional tests.
- * *mgmt-oper-int-apihcnc-func* => reading status and operational data of
- interface with Honeycomb NetConf API calls, functional tests.
- * *mgmt-cfg-int-tap-apihcnc-func* => configuration of tap interfaces with
- Honeycomb NetConf API calls, functional tests.
- * *mgmt-notif-int-subint-apihcnc-func* => notifications of interface and
- sub-interface events with Honeycomb NetConf Notifications, functional tests.
-
-For complete description of CSIT test naming convention please refer to `CSIT
-test naming wiki page <https://wiki.fd.io/view/CSIT/csit-test-naming>`_.
diff --git a/docs/report/csit_framework_documentation/index.rst b/docs/report/csit_framework_documentation/index.rst
deleted file mode 100644
index 82031e38ae..0000000000
--- a/docs/report/csit_framework_documentation/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-CSIT Framework
-==============
-
-.. toctree::
-
- csit_design
- csit_test_naming
- pal_lld
- csit_tag_description
diff --git a/docs/report/csit_framework_documentation/pal_func_diagram.svg b/docs/report/csit_framework_documentation/pal_func_diagram.svg
deleted file mode 100644
index 14f59605f9..0000000000
--- a/docs/report/csit_framework_documentation/pal_func_diagram.svg
+++ /dev/null
@@ -1,1413 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<svg version="1.2" baseProfile="tiny" width="210.06mm" height="270.76mm" viewBox="0 0 21006 27076" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="21006" height="27076"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1033" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
- <glyph unicode="u" horiz-adv-x="901" d="M 314,1082 L 314,396 C 314,343 318,299 326,264 333,229 346,200 363,179 380,157 403,142 432,133 460,124 495,119 537,119 580,119 618,127 653,142 687,157 716,178 741,207 765,235 784,270 797,312 810,353 817,401 817,455 L 817,1082 997,1082 997,231 C 997,208 997,185 998,160 998,135 998,111 999,89 1000,66 1000,47 1001,31 1002,15 1002,5 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 827,116 826,136 825,155 825,172 825,185 L 822,185 C 805,154 786,125 765,100 744,75 720,53 693,36 666,18 634,4 599,-6 564,-15 523,-20 476,-20 416,-20 364,-13 321,2 278,17 242,39 214,70 186,101 166,140 153,188 140,236 133,294 133,361 L 133,1082 314,1082 Z"/>
- <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 527,1 499,-5 471,-10 442,-14 409,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 467,127 484,128 501,131 517,134 535,137 554,141 L 554,8 Z"/>
- <glyph unicode="s" horiz-adv-x="927" d="M 950,299 C 950,248 940,203 921,164 901,124 872,91 835,64 798,37 752,16 698,2 643,-13 581,-20 511,-20 448,-20 392,-15 342,-6 291,4 247,20 209,41 171,62 139,91 114,126 88,161 69,203 57,254 L 216,285 C 231,227 263,185 311,158 359,131 426,117 511,117 550,117 585,120 618,125 650,130 678,140 701,153 724,166 743,183 756,205 769,226 775,253 775,285 775,318 767,345 752,366 737,387 715,404 688,418 661,432 628,444 589,455 550,465 507,476 460,489 417,500 374,513 331,527 288,541 250,560 216,583 181,606 153,634 132,668 111,702 100,745 100,796 100,895 135,970 206,1022 276,1073 378,1099 513,1099 632,1099 727,1078 798,1036 868,994 912,927 931,834 L 769,814 C 763,842 752,866 736,885 720,904 701,919 678,931 655,942 630,951 602,956 573,961 544,963 513,963 432,963 372,951 333,926 294,901 275,864 275,814 275,785 282,761 297,742 311,723 331,707 357,694 382,681 413,669 449,660 485,650 525,640 568,629 597,622 626,614 656,606 686,597 715,587 744,576 772,564 799,550 824,535 849,519 870,500 889,478 908,456 923,430 934,401 945,372 950,338 950,299 Z"/>
- <glyph unicode="r" horiz-adv-x="556" d="M 142,0 L 142,830 C 142,853 142,876 142,900 141,923 141,946 140,968 139,990 139,1011 138,1030 137,1049 137,1067 136,1082 L 306,1082 C 307,1067 308,1049 309,1030 310,1010 311,990 312,969 313,948 313,929 314,910 314,891 314,874 314,861 L 318,861 C 331,902 344,938 359,969 373,999 390,1024 409,1044 428,1063 451,1078 478,1088 505,1097 537,1102 575,1102 590,1102 604,1101 617,1099 630,1096 641,1094 648,1092 L 648,927 C 636,930 622,933 606,935 590,936 572,937 552,937 511,937 476,928 447,909 418,890 394,865 376,832 357,799 344,759 335,714 326,668 322,618 322,564 L 322,0 142,0 Z"/>
- <glyph unicode="p" horiz-adv-x="953" d="M 1053,546 C 1053,464 1046,388 1033,319 1020,250 998,190 967,140 936,90 895,51 844,23 793,-6 730,-20 655,-20 578,-20 510,-5 452,24 394,53 350,101 319,168 L 314,168 C 315,167 315,161 316,150 316,139 316,126 317,110 317,94 317,76 318,57 318,37 318,17 318,-2 L 318,-425 138,-425 138,861 C 138,887 138,912 138,936 137,960 137,982 136,1002 135,1021 135,1038 134,1052 133,1066 133,1076 132,1082 L 306,1082 C 307,1080 308,1073 309,1061 310,1049 311,1035 312,1018 313,1001 314,982 315,963 316,944 316,925 316,908 L 320,908 C 337,943 356,972 377,997 398,1021 423,1041 450,1057 477,1072 508,1084 542,1091 575,1098 613,1101 655,1101 730,1101 793,1088 844,1061 895,1034 936,997 967,949 998,900 1020,842 1033,774 1046,705 1053,629 1053,546 Z M 864,542 C 864,609 860,668 852,720 844,772 830,816 811,852 791,888 765,915 732,934 699,953 658,962 609,962 569,962 531,956 496,945 461,934 430,912 404,880 377,848 356,804 341,748 326,691 318,618 318,528 318,451 324,387 337,334 350,281 368,238 393,205 417,172 447,149 483,135 519,120 560,113 607,113 657,113 699,123 732,142 765,161 791,189 811,226 830,263 844,308 852,361 860,414 864,474 864,542 Z"/>
- <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 490,-20 422,-9 363,14 304,37 254,71 213,118 172,165 140,223 119,294 97,364 86,447 86,542 86,915 248,1102 571,1102 655,1102 728,1090 789,1067 850,1044 900,1009 939,962 978,915 1006,857 1025,787 1044,717 1053,635 1053,542 Z M 864,542 C 864,626 858,695 845,750 832,805 813,848 788,881 763,914 732,937 696,950 660,963 619,969 574,969 528,969 487,962 450,949 413,935 381,912 355,879 329,846 309,802 296,747 282,692 275,624 275,542 275,458 282,389 297,334 312,279 332,235 358,202 383,169 414,146 449,133 484,120 522,113 563,113 609,113 651,120 688,133 725,146 757,168 783,201 809,234 829,278 843,333 857,388 864,458 864,542 Z"/>
- <glyph unicode="n" horiz-adv-x="900" d="M 825,0 L 825,686 C 825,739 821,783 814,818 806,853 793,882 776,904 759,925 736,941 708,950 679,959 644,963 602,963 559,963 521,956 487,941 452,926 423,904 399,876 374,847 355,812 342,771 329,729 322,681 322,627 L 322,0 142,0 142,851 C 142,874 142,898 142,923 141,948 141,971 140,994 139,1016 139,1035 138,1051 137,1067 137,1077 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 312,966 313,947 314,927 314,910 314,897 L 317,897 C 334,928 353,957 374,982 395,1007 419,1029 446,1047 473,1064 505,1078 540,1088 575,1097 616,1102 663,1102 723,1102 775,1095 818,1080 861,1065 897,1043 925,1012 953,981 974,942 987,894 1000,845 1006,788 1006,721 L 1006,0 825,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1456" d="M 768,0 L 768,686 C 768,739 765,783 758,818 751,853 740,882 725,904 709,925 688,941 663,950 638,959 607,963 570,963 532,963 498,956 467,941 436,926 410,904 389,876 367,847 350,812 339,771 327,729 321,681 321,627 L 321,0 142,0 142,851 C 142,874 142,898 142,923 141,948 141,971 140,994 139,1016 139,1035 138,1051 137,1067 137,1077 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 312,966 313,947 314,927 314,910 314,897 L 317,897 C 333,928 350,957 369,982 388,1007 410,1029 435,1047 460,1064 488,1078 521,1088 553,1097 590,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 946,928 964,957 984,982 1004,1007 1027,1029 1054,1047 1081,1064 1111,1078 1144,1088 1177,1097 1215,1102 1258,1102 1313,1102 1360,1095 1400,1080 1439,1065 1472,1043 1497,1012 1522,981 1541,942 1553,894 1565,845 1571,788 1571,721 L 1571,0 1393,0 1393,686 C 1393,739 1390,783 1383,818 1376,853 1365,882 1350,904 1334,925 1313,941 1288,950 1263,959 1232,963 1195,963 1157,963 1123,956 1092,942 1061,927 1035,906 1014,878 992,850 975,815 964,773 952,731 946,682 946,627 L 946,0 768,0 Z"/>
- <glyph unicode="l" horiz-adv-x="187" d="M 138,0 L 138,1484 318,1484 318,0 138,0 Z"/>
- <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/>
- <glyph unicode="g" horiz-adv-x="954" d="M 548,-425 C 486,-425 431,-419 383,-406 335,-393 294,-375 260,-352 226,-328 198,-300 177,-267 156,-234 140,-198 131,-158 L 312,-132 C 324,-182 351,-220 392,-248 433,-274 486,-288 553,-288 594,-288 631,-282 664,-271 697,-260 726,-241 749,-217 772,-191 790,-159 803,-119 816,-79 822,-30 822,27 L 822,201 820,201 C 807,174 790,148 771,123 751,98 727,75 699,56 670,37 637,21 600,10 563,-2 520,-8 472,-8 403,-8 345,4 296,27 247,50 207,84 176,130 145,176 122,233 108,302 93,370 86,449 86,539 86,626 93,704 108,773 122,842 145,901 178,950 210,998 252,1035 304,1061 355,1086 418,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,914 825,932 826,953 827,974 828,993 829,1012 830,1030 831,1046 832,1059 833,1072 835,1080 836,1082 L 1007,1082 C 1006,1076 1006,1066 1005,1052 1004,1037 1004,1020 1003,1000 1002,980 1002,958 1002,934 1001,909 1001,884 1001,858 L 1001,31 C 1001,-120 964,-234 890,-311 815,-387 701,-425 548,-425 Z M 822,541 C 822,616 814,681 798,735 781,788 760,832 733,866 706,900 676,925 642,941 607,957 572,965 536,965 490,965 451,957 418,941 385,925 357,900 336,866 314,831 298,787 288,734 277,680 272,616 272,541 272,463 277,398 288,345 298,292 314,249 335,216 356,183 383,160 416,146 449,132 488,125 533,125 569,125 604,133 639,148 673,163 704,188 731,221 758,254 780,297 797,350 814,403 822,466 822,541 Z"/>
- <glyph unicode="f" horiz-adv-x="557" d="M 361,951 L 361,0 181,0 181,951 29,951 29,1082 181,1082 181,1204 C 181,1243 185,1280 192,1314 199,1347 213,1377 233,1402 252,1427 279,1446 313,1461 347,1475 391,1482 445,1482 466,1482 489,1481 512,1479 535,1477 555,1474 572,1470 L 572,1333 C 561,1335 548,1337 533,1339 518,1340 504,1341 492,1341 465,1341 444,1337 427,1330 410,1323 396,1312 387,1299 377,1285 370,1268 367,1248 363,1228 361,1205 361,1179 L 361,1082 572,1082 572,951 361,951 Z"/>
- <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,446 282,394 294,347 305,299 323,258 348,224 372,189 403,163 441,144 479,125 525,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 1008,206 992,176 972,146 951,115 924,88 890,64 856,39 814,19 763,4 712,-12 650,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,649 100,735 125,806 150,876 185,933 229,977 273,1021 324,1053 383,1073 442,1092 504,1102 571,1102 662,1102 738,1087 799,1058 860,1029 909,988 946,937 983,885 1009,824 1025,754 1040,684 1048,608 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 538,969 507,964 474,955 441,945 410,928 382,903 354,878 330,845 311,803 292,760 281,706 278,641 L 862,641 Z"/>
- <glyph unicode="d" horiz-adv-x="954" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 C 823,921 823,931 823,946 822,960 822,975 822,991 821,1006 821,1021 821,1035 821,1049 821,1059 821,1065 L 821,1484 1001,1484 1001,223 C 1001,197 1001,172 1002,148 1002,124 1002,102 1003,82 1004,62 1004,45 1005,31 1006,16 1006,6 1007,0 L 835,0 C 834,7 833,16 832,29 831,41 830,55 829,71 828,87 827,104 826,122 825,139 825,157 825,174 L 821,174 Z M 275,542 C 275,467 280,403 289,350 298,297 313,253 334,219 355,184 381,159 413,143 445,127 484,119 530,119 577,119 619,127 656,142 692,157 722,182 747,217 771,251 789,296 802,351 815,406 821,474 821,554 821,631 815,696 802,749 789,802 771,844 746,877 721,910 691,933 656,948 620,962 579,969 532,969 488,969 450,961 418,946 386,931 359,906 338,872 317,838 301,794 291,740 280,685 275,619 275,542 Z"/>
- <glyph unicode="c" horiz-adv-x="875" d="M 275,546 C 275,484 280,427 289,375 298,323 313,278 334,241 355,203 384,174 419,153 454,132 497,122 548,122 612,122 666,139 709,173 752,206 778,258 788,328 L 970,328 C 964,283 951,239 931,197 911,155 884,118 850,86 815,54 773,28 724,9 675,-10 618,-20 553,-20 468,-20 396,-6 337,23 278,52 230,91 193,142 156,192 129,251 112,320 95,388 87,462 87,542 87,615 93,679 105,735 117,790 134,839 156,881 177,922 203,957 232,986 261,1014 293,1037 328,1054 362,1071 398,1083 436,1091 474,1098 512,1102 551,1102 612,1102 666,1094 713,1077 760,1060 801,1038 836,1009 870,980 898,945 919,906 940,867 955,824 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 495,961 452,953 418,936 383,919 355,893 334,859 313,824 298,781 289,729 280,677 275,616 275,546 Z"/>
- <glyph unicode="b" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 573,-20 505,-5 451,25 396,54 352,102 318,168 L 316,168 C 316,151 316,133 315,114 314,95 313,78 312,62 311,46 310,32 309,21 308,10 307,3 306,0 L 132,0 C 133,6 133,16 134,31 135,45 135,62 136,82 137,102 137,124 138,148 138,172 138,197 138,223 L 138,1484 318,1484 318,1061 C 318,1041 318,1022 318,1004 317,985 317,969 316,955 315,938 315,923 314,908 L 318,908 C 351,977 396,1027 451,1057 506,1087 574,1102 655,1102 792,1102 892,1056 957,964 1021,872 1053,733 1053,546 Z M 864,540 C 864,615 859,679 850,732 841,785 826,829 805,864 784,898 758,923 726,939 694,955 655,963 609,963 562,963 520,955 484,940 447,925 417,900 393,866 368,832 350,787 337,732 324,677 318,609 318,529 318,452 324,387 337,334 350,281 368,239 393,206 417,173 447,149 483,135 519,120 560,113 607,113 651,113 689,121 721,136 753,151 780,176 801,210 822,244 838,288 849,343 859,397 864,463 864,540 Z"/>
- <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,124 87,203 87,303 87,375 101,434 128,480 155,526 190,562 234,588 277,614 327,632 383,642 439,652 496,657 554,657 L 797,657 797,717 C 797,762 792,800 783,832 774,863 759,889 740,908 721,928 697,942 668,951 639,960 604,965 565,965 530,965 499,963 471,958 443,953 419,944 398,931 377,918 361,900 348,878 335,855 327,827 323,793 L 135,810 C 142,853 154,892 173,928 192,963 218,994 253,1020 287,1046 330,1066 382,1081 433,1095 496,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1090,111 1100,112 1110,113 1120,114 1130,116 1139,118 L 1139,6 C 1116,1 1094,-3 1072,-6 1049,-9 1025,-10 1000,-10 966,-10 937,-5 913,4 888,13 868,26 853,45 838,63 826,86 818,113 810,140 805,171 803,207 L 797,207 C 778,172 757,141 734,113 711,85 684,61 653,42 622,22 588,7 549,-4 510,-15 465,-20 414,-20 Z M 455,115 C 512,115 563,125 606,146 649,167 684,194 713,226 741,259 762,294 776,332 790,371 797,408 797,443 L 797,531 600,531 C 556,531 514,528 475,522 435,517 400,506 370,489 340,472 316,449 299,418 281,388 272,349 272,300 272,241 288,195 320,163 351,131 396,115 455,115 Z"/>
- <glyph unicode="_" horiz-adv-x="1191" d="M -31,-407 L -31,-277 1162,-277 1162,-407 -31,-407 Z"/>
- <glyph unicode="Y" horiz-adv-x="1244" d="M 777,584 L 777,0 587,0 587,584 45,1409 255,1409 684,738 1111,1409 1321,1409 777,584 Z"/>
- <glyph unicode="T" horiz-adv-x="1139" d="M 720,1253 L 720,0 530,0 530,1253 46,1253 46,1409 1204,1409 1204,1253 720,1253 Z"/>
- <glyph unicode="S" horiz-adv-x="1139" d="M 1272,389 C 1272,330 1261,275 1238,225 1215,175 1179,132 1131,96 1083,59 1023,31 950,11 877,-10 790,-20 690,-20 515,-20 378,11 280,72 182,133 120,222 93,338 L 278,375 C 287,338 302,305 321,275 340,245 367,219 400,198 433,176 473,159 522,147 571,135 629,129 697,129 754,129 806,134 853,144 900,153 941,168 975,188 1009,208 1036,234 1055,266 1074,297 1083,335 1083,379 1083,425 1073,462 1052,491 1031,520 1001,543 963,562 925,581 880,596 827,609 774,622 716,635 652,650 613,659 573,668 534,679 494,689 456,701 420,716 383,730 349,747 317,766 285,785 257,809 234,836 211,863 192,894 179,930 166,965 159,1006 159,1053 159,1120 173,1177 200,1225 227,1272 264,1311 312,1342 360,1373 417,1395 482,1409 547,1423 618,1430 694,1430 781,1430 856,1423 918,1410 980,1396 1032,1375 1075,1348 1118,1321 1152,1287 1178,1247 1203,1206 1224,1159 1239,1106 L 1051,1073 C 1042,1107 1028,1137 1011,1164 993,1191 970,1213 941,1231 912,1249 878,1263 837,1272 796,1281 747,1286 692,1286 627,1286 572,1280 528,1269 483,1257 448,1241 421,1221 394,1201 374,1178 363,1151 351,1124 345,1094 345,1063 345,1021 356,987 377,960 398,933 426,910 462,892 498,874 540,859 587,847 634,835 685,823 738,811 781,801 825,791 868,781 911,770 952,758 991,744 1030,729 1067,712 1102,693 1136,674 1166,650 1191,622 1216,594 1236,561 1251,523 1265,485 1272,440 1272,389 Z"/>
- <glyph unicode="R" horiz-adv-x="1218" d="M 1164,0 L 798,585 359,585 359,0 168,0 168,1409 831,1409 C 911,1409 982,1400 1044,1382 1105,1363 1157,1337 1199,1302 1241,1267 1273,1225 1295,1175 1317,1125 1328,1069 1328,1006 1328,961 1322,917 1309,874 1296,831 1275,791 1247,755 1219,719 1183,688 1140,662 1097,636 1045,618 984,607 L 1384,0 1164,0 Z M 1136,1004 C 1136,1047 1129,1084 1114,1115 1099,1146 1078,1173 1050,1194 1022,1215 988,1230 948,1241 908,1251 863,1256 812,1256 L 359,1256 359,736 820,736 C 875,736 922,743 962,757 1002,770 1035,789 1061,813 1086,837 1105,865 1118,898 1130,931 1136,966 1136,1004 Z"/>
- <glyph unicode="P" horiz-adv-x="1086" d="M 1258,985 C 1258,924 1248,867 1228,814 1207,761 1177,715 1137,676 1096,637 1046,606 985,583 924,560 854,549 773,549 L 359,549 359,0 168,0 168,1409 761,1409 C 844,1409 917,1399 979,1379 1041,1358 1093,1330 1134,1293 1175,1256 1206,1211 1227,1159 1248,1106 1258,1048 1258,985 Z M 1066,983 C 1066,1072 1039,1140 984,1187 929,1233 847,1256 738,1256 L 359,1256 359,700 746,700 C 856,700 937,724 989,773 1040,822 1066,892 1066,983 Z"/>
- <glyph unicode="M" horiz-adv-x="1324" d="M 1366,0 L 1366,940 C 1366,974 1366,1009 1367,1044 1368,1079 1369,1112 1370,1141 1371,1175 1373,1208 1375,1240 1366,1206 1356,1172 1346,1139 1337,1110 1328,1080 1318,1048 1307,1015 1297,986 1287,960 L 923,0 789,0 420,960 C 416,970 412,982 408,995 403,1008 399,1023 394,1038 389,1053 384,1068 379,1084 374,1099 369,1115 364,1130 353,1165 342,1202 331,1240 332,1203 333,1166 334,1129 335,1098 336,1065 337,1031 338,996 338,966 338,940 L 338,0 168,0 168,1409 419,1409 794,432 C 799,419 804,402 811,381 818,360 824,338 830,316 836,294 842,273 847,254 852,234 855,219 857,208 859,219 863,234 868,254 873,274 880,295 887,317 894,339 900,360 907,381 914,402 920,419 925,432 L 1293,1409 1538,1409 1538,0 1366,0 Z"/>
- <glyph unicode="L" horiz-adv-x="900" d="M 168,0 L 168,1409 359,1409 359,156 1071,156 1071,0 168,0 Z"/>
- <glyph unicode="I" horiz-adv-x="186" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
- <glyph unicode="F" horiz-adv-x="1006" d="M 359,1253 L 359,729 1145,729 1145,571 359,571 359,0 168,0 168,1409 1169,1409 1169,1253 359,1253 Z"/>
- <glyph unicode="D" horiz-adv-x="1218" d="M 1381,719 C 1381,602 1363,498 1328,409 1293,319 1244,244 1183,184 1122,123 1049,78 966,47 882,16 792,0 695,0 L 168,0 168,1409 634,1409 C 743,1409 843,1396 935,1369 1026,1342 1105,1300 1171,1244 1237,1187 1289,1116 1326,1029 1363,942 1381,839 1381,719 Z M 1189,719 C 1189,814 1175,896 1148,964 1121,1031 1082,1087 1033,1130 984,1173 925,1205 856,1226 787,1246 712,1256 630,1256 L 359,1256 359,153 673,153 C 747,153 816,165 879,189 942,213 996,249 1042,296 1088,343 1124,402 1150,473 1176,544 1189,626 1189,719 Z"/>
- <glyph unicode="A" horiz-adv-x="1350" d="M 1167,0 L 1006,412 364,412 202,0 4,0 579,1409 796,1409 1362,0 1167,0 Z M 768,1026 C 757,1053 747,1080 738,1107 728,1134 719,1159 712,1182 705,1204 699,1223 694,1238 689,1253 686,1262 685,1265 684,1262 681,1252 676,1237 671,1222 665,1203 658,1180 650,1157 641,1132 632,1105 622,1078 612,1051 602,1024 L 422,561 949,561 768,1026 Z"/>
- <glyph unicode="4" horiz-adv-x="1033" d="M 881,319 L 881,0 711,0 711,319 47,319 47,459 692,1409 881,1409 881,461 1079,461 1079,319 881,319 Z M 711,1206 C 710,1203 706,1196 701,1187 696,1177 690,1166 683,1154 676,1142 670,1130 663,1118 656,1105 649,1095 644,1087 L 283,555 C 280,550 275,543 269,534 262,525 256,517 249,508 242,499 236,490 229,481 222,472 217,466 213,461 L 711,461 711,1206 Z"/>
- <glyph unicode="3" horiz-adv-x="980" d="M 1049,389 C 1049,324 1039,267 1018,216 997,165 966,123 926,88 885,53 835,26 776,8 716,-11 648,-20 571,-20 484,-20 410,-9 351,13 291,34 242,63 203,99 164,134 135,175 116,221 97,266 84,313 78,362 L 264,379 C 269,342 279,308 294,277 308,246 327,220 352,198 377,176 407,159 443,147 479,135 522,129 571,129 662,129 733,151 785,196 836,241 862,307 862,395 862,447 851,489 828,521 805,552 776,577 742,595 707,612 670,624 630,630 589,636 552,639 518,639 L 416,639 416,795 514,795 C 548,795 583,799 620,806 657,813 690,825 721,844 751,862 776,887 796,918 815,949 825,989 825,1038 825,1113 803,1173 759,1217 714,1260 648,1282 561,1282 482,1282 418,1262 369,1221 320,1180 291,1123 283,1049 L 102,1063 C 109,1125 126,1179 153,1225 180,1271 214,1309 255,1340 296,1370 342,1393 395,1408 448,1423 504,1430 563,1430 642,1430 709,1420 766,1401 823,1381 869,1354 905,1321 941,1287 968,1247 985,1202 1002,1157 1010,1108 1010,1057 1010,1016 1004,977 993,941 982,905 964,873 940,844 916,815 886,791 849,770 812,749 767,734 715,723 L 715,719 C 772,713 821,700 863,681 905,661 940,636 967,607 994,578 1015,544 1029,507 1042,470 1049,430 1049,389 Z"/>
- <glyph unicode="2" horiz-adv-x="927" d="M 103,0 L 103,127 C 137,205 179,274 228,334 277,393 328,447 382,496 436,544 490,589 543,630 596,671 643,713 686,754 729,795 763,839 790,884 816,929 829,981 829,1038 829,1078 823,1113 811,1144 799,1174 782,1199 759,1220 736,1241 709,1256 678,1267 646,1277 611,1282 572,1282 536,1282 502,1277 471,1267 439,1257 411,1242 386,1222 361,1202 341,1177 326,1148 310,1118 300,1083 295,1044 L 111,1061 C 117,1112 131,1159 153,1204 175,1249 205,1288 244,1322 283,1355 329,1382 384,1401 438,1420 501,1430 572,1430 642,1430 704,1422 759,1405 814,1388 860,1364 898,1331 935,1298 964,1258 984,1210 1004,1162 1014,1107 1014,1044 1014,997 1006,952 989,909 972,866 949,826 921,787 892,748 859,711 822,675 785,639 746,604 705,570 664,535 623,501 582,468 541,434 502,400 466,366 429,332 397,298 368,263 339,228 317,191 301,153 L 1036,153 1036,0 103,0 Z"/>
- <glyph unicode="1" horiz-adv-x="874" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
- <glyph unicode="." horiz-adv-x="186" d="M 187,0 L 187,219 382,219 382,0 187,0 Z"/>
- <glyph unicode="-" horiz-adv-x="504" d="M 91,464 L 91,624 591,624 591,464 91,464 Z"/>
- <glyph unicode=" " horiz-adv-x="556"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template(57356)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template(57354)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template(10146)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template(10132)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template(10007)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template(10004)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template(9679)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template(8226)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template(8211)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="3069" y="1769" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4975,3040 L 3070,3040 3070,1770 6880,1770 6880,3040 4975,3040 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 4975,3040 L 3070,3040 3070,1770 6880,1770 6880,3040 4975,3040 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="3568" y="2299"/><tspan class="TextPosition" x="3568" y="2299"><tspan fill="rgb(0,0,0)" stroke="none">Specification</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="4253" y="2854"/><tspan class="TextPosition" x="4253" y="2854"><tspan fill="rgb(0,0,0)" stroke="none">.YAML</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="8146" y="1769" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10052,3040 L 8147,3040 8147,1770 11957,1770 11957,3040 10052,3040 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10052,3040 L 8147,3040 8147,1770 11957,1770 11957,3040 10052,3040 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8310" y="2299"/><tspan class="TextPosition" x="8310" y="2299"><tspan fill="rgb(0,0,0)" stroke="none">Data to process</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="9599" y="2854"/><tspan class="TextPosition" x="9599" y="2854"><tspan fill="rgb(0,0,0)" stroke="none">.xml</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="13169" y="1769" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 15075,3040 L 13170,3040 13170,1770 16980,1770 16980,3040 15075,3040 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 15075,3040 L 13170,3040 13170,1770 16980,1770 16980,3040 15075,3040 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="13568" y="2299"/><tspan class="TextPosition" x="13568" y="2299"><tspan fill="rgb(0,0,0)" stroke="none">Static content</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="14728" y="2854"/><tspan class="TextPosition" x="14728" y="2854"><tspan fill="rgb(0,0,0)" stroke="none">.rst</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="2630" y="4279" width="4703" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 4980,4280 C 6312,4280 7330,4555 7330,4915 7330,5275 6312,5550 4980,5550 3648,5550 2631,5275 2631,4915 2631,4555 3648,4280 4980,4280 Z M 2631,4280 L 2631,4280 Z M 7331,5551 L 7331,5551 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 4980,4280 C 6312,4280 7330,4555 7330,4915 7330,5275 6312,5550 4980,5550 3648,5550 2631,5275 2631,4915 2631,4555 3648,4280 4980,4280 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 2631,4280 L 2631,4280 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7331,5551 L 7331,5551 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="2980" y="5087"/><tspan class="TextPosition" x="2980" y="5087"><tspan fill="rgb(0,0,0)" stroke="none">read_specification</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="7611" y="4280" width="4830" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 10025,4281 C 11393,4281 12438,4556 12438,4916 12438,5276 11393,5551 10025,5551 8657,5551 7612,5276 7612,4916 7612,4556 8657,4281 10025,4281 Z M 7612,4281 L 7612,4281 Z M 12439,5552 L 12439,5552 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,4281 C 11393,4281 12438,4556 12438,4916 12438,5276 11393,5551 10025,5551 8657,5551 7612,5276 7612,4916 7612,4556 8657,4281 10025,4281 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7612,4281 L 7612,4281 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 12439,5552 L 12439,5552 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8910" y="5088"/><tspan class="TextPosition" x="8910" y="5088"><tspan fill="rgb(0,0,0)" stroke="none">read_data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="3069" y="6789" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4975,8060 L 3070,8060 3070,6790 6880,6790 6880,8060 4975,8060 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 4975,8060 L 3070,8060 3070,6790 6880,6790 6880,8060 4975,8060 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="3568" y="7597"/><tspan class="TextPosition" x="3568" y="7597"><tspan fill="rgb(0,0,0)" stroke="none">Specification</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="8119" y="6789" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10025,8060 L 8120,8060 8120,6790 11930,6790 11930,8060 10025,8060 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,8060 L 8120,8060 8120,6790 11930,6790 11930,8060 10025,8060 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8920" y="7597"/><tspan class="TextPosition" x="8920" y="7597"><tspan fill="rgb(0,0,0)" stroke="none">Input data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="2657" y="10199" width="4703" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 5007,10200 C 6339,10200 7357,10475 7357,10835 7357,11195 6339,11470 5007,11470 3675,11470 2658,11195 2658,10835 2658,10475 3675,10200 5007,10200 Z M 2658,10200 L 2658,10200 Z M 7358,11471 L 7358,11471 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 5007,10200 C 6339,10200 7357,10475 7357,10835 7357,11195 6339,11470 5007,11470 3675,11470 2658,11195 2658,10835 2658,10475 3675,10200 5007,10200 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 2658,10200 L 2658,10200 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7358,11471 L 7358,11471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="3918" y="11007"/><tspan class="TextPosition" x="3918" y="11007"><tspan fill="rgb(0,0,0)" stroke="none">filter_data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="7611" y="10199" width="4830" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 10025,10200 C 11393,10200 12438,10475 12438,10835 12438,11195 11393,11470 10025,11470 8657,11470 7612,11195 7612,10835 7612,10475 8657,10200 10025,10200 Z M 7612,10200 L 7612,10200 Z M 12439,11471 L 12439,11471 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,10200 C 11393,10200 12438,10475 12438,10835 12438,11195 11393,11470 10025,11470 8657,11470 7612,11195 7612,10835 7612,10475 8657,10200 10025,10200 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7612,10200 L 7612,10200 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 12439,11471 L 12439,11471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8935" y="11007"/><tspan class="TextPosition" x="8935" y="11007"><tspan fill="rgb(0,0,0)" stroke="none">filter_data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="12817" y="16899" width="4449" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 15040,16900 C 16300,16900 17263,17175 17263,17535 17263,17895 16300,18170 15040,18170 13780,18170 12818,17895 12818,17535 12818,17175 13780,16900 15040,16900 Z M 12818,16900 L 12818,16900 Z M 17264,18171 L 17264,18171 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 15040,16900 C 16300,16900 17263,17175 17263,17535 17263,17895 16300,18170 15040,18170 13780,18170 12818,17895 12818,17535 12818,17175 13780,16900 15040,16900 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 12818,16900 L 12818,16900 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 17264,18171 L 17264,18171 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="13482" y="17707"/><tspan class="TextPosition" x="13482" y="17707"><tspan fill="rgb(0,0,0)" stroke="none">generate_files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="3069" y="14409" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4975,15680 L 3070,15680 3070,14410 6880,14410 6880,15680 4975,15680 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 4975,15680 L 3070,15680 3070,14410 6880,14410 6880,15680 4975,15680 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="4260" y="15217"/><tspan class="TextPosition" x="4260" y="15217"><tspan fill="rgb(0,0,0)" stroke="none">Tables</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="8119" y="14409" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10025,15680 L 8120,15680 8120,14410 11930,14410 11930,15680 10025,15680 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,15680 L 8120,15680 8120,14410 11930,14410 11930,15680 10025,15680 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="9473" y="15217"/><tspan class="TextPosition" x="9473" y="15217"><tspan fill="rgb(0,0,0)" stroke="none">Plots</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="13169" y="19509" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 15075,20780 L 13170,20780 13170,19510 16980,19510 16980,20780 15075,20780 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 15075,20780 L 13170,20780 13170,19510 16980,19510 16980,20780 15075,20780 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="14552" y="20317"/><tspan class="TextPosition" x="14552" y="20317"><tspan fill="rgb(0,0,0)" stroke="none">Files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="7611" y="22019" width="4830" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 10025,22020 C 11393,22020 12438,22295 12438,22655 12438,23015 11393,23290 10025,23290 8657,23290 7612,23015 7612,22655 7612,22295 8657,22020 10025,22020 Z M 7612,22020 L 7612,22020 Z M 12439,23291 L 12439,23291 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,22020 C 11393,22020 12438,22295 12438,22655 12438,23015 11393,23290 10025,23290 8657,23290 7612,23015 7612,22655 7612,22295 8657,22020 10025,22020 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7612,22020 L 7612,22020 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 12439,23291 L 12439,23291 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8262" y="22827"/><tspan class="TextPosition" x="8262" y="22827"><tspan fill="rgb(0,0,0)" stroke="none">generate_report</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="8119" y="24629" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10025,25900 L 8120,25900 8120,24630 11930,24630 11930,25900 10025,25900 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,25900 L 8120,25900 8120,24630 11930,24630 11930,25900 10025,25900 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="9280" y="25437"/><tspan class="TextPosition" x="9280" y="25437"><tspan fill="rgb(0,0,0)" stroke="none">Report</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="1303" y="2404" width="6310" height="20387"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3070,2405 C 1171,2405 -1037,22093 7253,22643"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 7612,22655 L 7167,22489 7157,22789 7612,22655 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="4830" y="3039" width="302" height="1242"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,3040 C 4975,3970 4979,3554 4981,3845"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 4982,4280 L 5131,3830 4831,3830 4982,4280 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="9879" y="3039" width="302" height="1243"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10052,3040 C 10052,3971 10036,3555 10029,3846"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,4281 L 10179,3832 9879,3830 10025,4281 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="4826" y="5549" width="302" height="1242"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4982,5550 C 4982,6481 4978,6066 4976,6355"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 4975,6790 L 5126,6340 4826,6340 4975,6790 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="9875" y="5550" width="301" height="1241"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,5551 L 10025,6360"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,6790 L 10175,6340 9875,6340 10025,6790 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="4857" y="8059" width="302" height="2142"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,8060 C 4975,9665 5002,8796 5008,9766"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 5009,10200 L 5158,9750 4858,9750 5009,10200 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="4974" y="8059" width="3418" height="2328"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,8060 C 4975,9665 7780,8678 8251,9972"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 8318,10386 L 8390,9917 8095,9968 8318,10386 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="4974" y="8059" width="10214" height="8842"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,8060 C 4975,10304 14789,5995 15037,16490"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 15042,16900 L 15186,16448 14886,16452 15042,16900 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="6597" y="8059" width="3430" height="2328"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,8060 C 10025,9665 7210,8678 6737,9972"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 6670,10386 L 6894,9968 6598,9917 6670,10386 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="9875" y="8059" width="301" height="2142"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,8060 L 10025,9770"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,10200 L 10175,9750 9875,9750 10025,10200 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="10024" y="8059" width="6737" height="9028"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,8060 C 10025,9957 16448,5557 16610,16654"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 16613,17086 L 16760,16635 16460,16637 16613,17086 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="4806" y="13570" width="301" height="841"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4945,13571 C 4945,14201 4952,13931 4959,13981"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 4975,14410 L 5106,13954 4806,13967 4975,14410 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="9875" y="13570" width="301" height="841"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,13571 L 10025,13980"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,14410 L 10175,13960 9875,13960 10025,14410 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="14920" y="18169" width="302" height="1342"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15042,18170 C 15042,19176 15063,18709 15072,19080"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 15075,19510 L 15221,19059 14921,19061 15075,19510 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="4974" y="15679" width="3485" height="6528"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,15680 C 4975,20435 8106,17374 8308,21746"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 8318,22206 L 8458,21753 8158,21760 8318,22206 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="9875" y="15679" width="301" height="6342"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,15680 L 10025,21590"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,22020 L 10175,21570 9875,21570 10025,22020 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="11732" y="20779" width="3345" height="1428"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15075,20780 C 15075,21710 12525,21151 11879,21832"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 11732,22206 L 12043,21848 11766,21733 11732,22206 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="12438" y="2404" width="7822" height="20393"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16980,2405 C 20904,2405 23125,22213 12786,22648"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 12438,22655 L 12891,22795 12885,22495 12438,22655 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="9875" y="23289" width="301" height="1342"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,23290 L 10025,24200"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,24630 L 10175,24180 9875,24180 10025,24630 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="2658" y="12300" width="4576" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 4945,12301 C 6241,12301 7231,12576 7231,12936 7231,13296 6241,13571 4945,13571 3649,13571 2659,13296 2659,12936 2659,12576 3649,12301 4945,12301 Z M 2659,12301 L 2659,12301 Z M 7232,13572 L 7232,13572 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 4945,12301 C 6241,12301 7231,12576 7231,12936 7231,13296 6241,13571 4945,13571 3649,13571 2659,13296 2659,12936 2659,12576 3649,12301 4945,12301 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 2659,12301 L 2659,12301 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7232,13572 L 7232,13572 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="3167" y="13108"/><tspan class="TextPosition" x="3167" y="13108"><tspan fill="rgb(0,0,0)" stroke="none">generate_tables</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="7611" y="12300" width="4830" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 10025,12301 C 11393,12301 12438,12576 12438,12936 12438,13296 11393,13571 10025,13571 8657,13571 7612,13296 7612,12936 7612,12576 8657,12301 10025,12301 Z M 7612,12301 L 7612,12301 Z M 12439,13572 L 12439,13572 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,12301 C 11393,12301 12438,12576 12438,12936 12438,13296 11393,13571 10025,13571 8657,13571 7612,13296 7612,12936 7612,12576 8657,12301 10025,12301 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7612,12301 L 7612,12301 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 12439,13572 L 12439,13572 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8384" y="13108"/><tspan class="TextPosition" x="8384" y="13108"><tspan fill="rgb(0,0,0)" stroke="none">generate_plots</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="4797" y="11452" width="302" height="850"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4977,11871 C 4977,11387 4954,11245 4947,11868"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 4945,12301 L 5097,11852 4797,11850 4945,12301 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="9827" y="11487" width="302" height="803"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9978,11859 C 9978,11436 9977,11298 9977,11857"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 9977,12289 L 10127,11839 9827,11839 9977,12289 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="11929" y="15044" width="1671" height="2043"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11930,15045 C 12957,15045 13350,15582 13451,16658"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 13470,17086 L 13599,16629 13299,16643 13470,17086 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="4974" y="15679" width="7846" height="2006"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,15680 C 4975,16917 7443,17500 12382,17534"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 12819,17535 L 12370,17383 12368,17683 12819,17535 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="15074" y="3039" width="3534" height="14497"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15075,3040 C 15075,3524 16775,3443 17776,6946 18777,10449 19027,16449 17651,17410"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 17264,17535 L 17738,17533 17642,17249 17264,17535 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="499" y="499" width="20003" height="6"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 500,503 L 553,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 606,503 L 659,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 712,503 L 765,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 819,503 L 872,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 925,503 L 978,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1031,503 L 1084,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1137,503 L 1190,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1243,503 L 1296,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1349,503 L 1403,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1456,503 L 1509,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1562,503 L 1615,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1668,503 L 1721,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1774,503 L 1827,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1880,503 L 1933,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1987,503 L 2040,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2093,503 L 2146,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2199,503 L 2252,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2305,503 L 2358,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2411,503 L 2464,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2517,503 L 2571,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2624,503 L 2677,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2730,503 L 2783,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2836,503 L 2889,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2942,503 L 2995,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3048,503 L 3101,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3155,503 L 3208,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3261,503 L 3314,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3367,503 L 3420,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3473,503 L 3526,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3579,503 L 3632,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3685,503 L 3739,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3792,503 L 3845,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3898,502 L 3951,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4004,502 L 4057,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4110,502 L 4163,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4216,502 L 4269,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4323,502 L 4376,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4429,502 L 4482,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4535,502 L 4588,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4641,502 L 4694,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4747,502 L 4800,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4854,502 L 4907,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4960,502 L 5013,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5066,502 L 5119,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5172,502 L 5225,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5278,502 L 5331,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5384,502 L 5438,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5491,502 L 5544,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5597,502 L 5650,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5703,502 L 5756,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5809,502 L 5862,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5915,502 L 5968,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6022,502 L 6075,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6128,502 L 6181,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6234,502 L 6287,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6340,502 L 6393,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6446,502 L 6499,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6552,502 L 6606,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6659,502 L 6712,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6765,502 L 6818,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6871,502 L 6924,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6977,502 L 7030,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7083,502 L 7136,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7190,502 L 7243,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7296,502 L 7349,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7402,502 L 7455,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7508,502 L 7561,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7614,502 L 7667,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7720,502 L 7774,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7827,502 L 7880,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7933,502 L 7986,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8039,502 L 8092,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8145,502 L 8198,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8251,502 L 8304,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8358,502 L 8411,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8464,502 L 8517,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8570,502 L 8623,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8676,502 L 8729,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8782,502 L 8835,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8888,502 L 8942,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8995,502 L 9048,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9101,502 L 9154,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9207,502 L 9260,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9313,502 L 9366,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9419,502 L 9472,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9526,502 L 9579,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9632,502 L 9685,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9738,502 L 9791,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9844,502 L 9897,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9950,502 L 10003,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10056,502 L 10110,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10163,502 L 10216,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10269,502 L 10322,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10375,502 L 10428,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10481,502 L 10534,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10587,501 L 10640,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10694,501 L 10747,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10800,501 L 10853,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10906,501 L 10959,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11012,501 L 11065,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11118,501 L 11171,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11224,501 L 11278,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11331,501 L 11384,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11437,501 L 11490,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11543,501 L 11596,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11649,501 L 11702,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11755,501 L 11808,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11862,501 L 11915,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11968,501 L 12021,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12074,501 L 12127,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12180,501 L 12233,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12286,501 L 12339,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12392,501 L 12446,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12499,501 L 12552,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12605,501 L 12658,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12711,501 L 12764,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12817,501 L 12870,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12923,501 L 12977,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13030,501 L 13083,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13136,501 L 13189,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13242,501 L 13295,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13348,501 L 13401,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13454,501 L 13507,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13561,501 L 13614,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13667,501 L 13720,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13773,501 L 13826,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13879,501 L 13932,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13985,501 L 14038,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14091,501 L 14145,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14198,501 L 14251,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14304,501 L 14357,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14410,501 L 14463,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14516,501 L 14569,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14622,501 L 14675,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14729,501 L 14782,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14835,501 L 14888,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14941,501 L 14994,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15047,501 L 15100,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15153,501 L 15206,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15259,501 L 15313,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15366,501 L 15419,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15472,501 L 15525,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15578,501 L 15631,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15684,501 L 15737,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15790,501 L 15843,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15897,501 L 15950,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16003,501 L 16056,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16109,501 L 16162,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16215,501 L 16268,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16321,501 L 16374,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16427,501 L 16481,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16534,501 L 16587,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16640,501 L 16693,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16746,501 L 16799,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16852,501 L 16905,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16958,501 L 17011,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17065,501 L 17118,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17171,500 L 17224,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17277,500 L 17330,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17383,500 L 17436,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17489,500 L 17542,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17595,500 L 17649,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17702,500 L 17755,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17808,500 L 17861,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17914,500 L 17967,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18020,500 L 18073,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18126,500 L 18179,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18233,500 L 18286,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18339,500 L 18392,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18445,500 L 18498,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18551,500 L 18604,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18657,500 L 18710,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18763,500 L 18817,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18870,500 L 18923,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18976,500 L 19029,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19082,500 L 19135,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19188,500 L 19241,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19294,500 L 19347,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19401,500 L 19454,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19507,500 L 19560,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19613,500 L 19666,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19719,500 L 19772,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19825,500 L 19878,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19931,500 L 19985,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20038,500 L 20091,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20144,500 L 20197,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20250,500 L 20303,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20356,500 L 20409,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20462,500 L 20500,500"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="499" y="3600" width="20003" height="6"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 500,3604 L 553,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 606,3604 L 659,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 712,3604 L 765,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 819,3604 L 872,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 925,3604 L 978,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1031,3604 L 1084,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1137,3604 L 1190,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1243,3604 L 1296,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1349,3604 L 1403,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1456,3604 L 1509,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1562,3604 L 1615,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1668,3604 L 1721,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1774,3604 L 1827,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1880,3604 L 1933,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1987,3604 L 2040,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2093,3604 L 2146,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2199,3604 L 2252,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2305,3604 L 2358,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2411,3604 L 2464,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2517,3604 L 2571,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2624,3604 L 2677,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2730,3604 L 2783,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2836,3604 L 2889,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2942,3604 L 2995,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3048,3604 L 3101,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3155,3604 L 3208,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3261,3604 L 3314,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3367,3604 L 3420,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3473,3604 L 3526,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3579,3604 L 3632,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3685,3604 L 3739,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3792,3604 L 3845,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3898,3603 L 3951,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4004,3603 L 4057,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4110,3603 L 4163,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4216,3603 L 4269,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4323,3603 L 4376,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4429,3603 L 4482,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4535,3603 L 4588,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4641,3603 L 4694,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4747,3603 L 4800,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4854,3603 L 4907,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4960,3603 L 5013,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5066,3603 L 5119,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5172,3603 L 5225,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5278,3603 L 5331,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5384,3603 L 5438,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5491,3603 L 5544,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5597,3603 L 5650,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5703,3603 L 5756,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5809,3603 L 5862,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5915,3603 L 5968,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6022,3603 L 6075,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6128,3603 L 6181,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6234,3603 L 6287,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6340,3603 L 6393,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6446,3603 L 6499,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6552,3603 L 6606,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6659,3603 L 6712,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6765,3603 L 6818,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6871,3603 L 6924,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6977,3603 L 7030,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7083,3603 L 7136,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7190,3603 L 7243,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7296,3603 L 7349,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7402,3603 L 7455,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7508,3603 L 7561,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7614,3603 L 7667,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7720,3603 L 7774,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7827,3603 L 7880,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7933,3603 L 7986,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8039,3603 L 8092,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8145,3603 L 8198,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8251,3603 L 8304,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8358,3603 L 8411,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8464,3603 L 8517,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8570,3603 L 8623,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8676,3603 L 8729,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8782,3603 L 8835,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8888,3603 L 8942,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8995,3603 L 9048,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9101,3603 L 9154,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9207,3603 L 9260,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9313,3603 L 9366,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9419,3603 L 9472,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9526,3603 L 9579,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9632,3603 L 9685,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9738,3603 L 9791,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9844,3603 L 9897,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9950,3603 L 10003,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10056,3603 L 10110,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10163,3603 L 10216,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10269,3603 L 10322,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10375,3603 L 10428,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10481,3603 L 10534,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10587,3602 L 10640,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10694,3602 L 10747,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10800,3602 L 10853,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10906,3602 L 10959,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11012,3602 L 11065,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11118,3602 L 11171,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11224,3602 L 11278,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11331,3602 L 11384,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11437,3602 L 11490,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11543,3602 L 11596,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11649,3602 L 11702,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11755,3602 L 11808,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11862,3602 L 11915,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11968,3602 L 12021,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12074,3602 L 12127,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12180,3602 L 12233,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12286,3602 L 12339,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12392,3602 L 12446,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12499,3602 L 12552,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12605,3602 L 12658,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12711,3602 L 12764,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12817,3602 L 12870,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12923,3602 L 12977,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13030,3602 L 13083,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13136,3602 L 13189,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13242,3602 L 13295,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13348,3602 L 13401,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13454,3602 L 13507,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13561,3602 L 13614,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13667,3602 L 13720,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13773,3602 L 13826,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13879,3602 L 13932,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13985,3602 L 14038,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14091,3602 L 14145,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14198,3602 L 14251,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14304,3602 L 14357,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14410,3602 L 14463,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14516,3602 L 14569,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14622,3602 L 14675,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14729,3602 L 14782,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14835,3602 L 14888,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14941,3602 L 14994,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15047,3602 L 15100,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15153,3602 L 15206,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15259,3602 L 15313,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15366,3602 L 15419,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15472,3602 L 15525,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15578,3602 L 15631,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15684,3602 L 15737,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15790,3602 L 15843,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15897,3602 L 15950,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16003,3602 L 16056,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16109,3602 L 16162,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16215,3602 L 16268,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16321,3602 L 16374,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16427,3602 L 16481,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16534,3602 L 16587,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16640,3602 L 16693,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16746,3602 L 16799,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16852,3602 L 16905,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16958,3602 L 17011,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17065,3602 L 17118,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17171,3601 L 17224,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17277,3601 L 17330,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17383,3601 L 17436,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17489,3601 L 17542,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17595,3601 L 17649,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17702,3601 L 17755,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17808,3601 L 17861,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17914,3601 L 17967,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18020,3601 L 18073,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18126,3601 L 18179,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18233,3601 L 18286,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18339,3601 L 18392,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18445,3601 L 18498,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18551,3601 L 18604,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18657,3601 L 18710,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18763,3601 L 18817,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18870,3601 L 18923,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18976,3601 L 19029,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19082,3601 L 19135,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19188,3601 L 19241,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19294,3601 L 19347,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19401,3601 L 19454,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19507,3601 L 19560,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19613,3601 L 19666,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19719,3601 L 19772,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19825,3601 L 19878,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19931,3601 L 19985,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20038,3601 L 20091,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20144,3601 L 20197,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20250,3601 L 20303,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20356,3601 L 20409,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20462,3601 L 20500,3601"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="499" y="11701" width="20003" height="6"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 500,11705 L 553,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 606,11705 L 659,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 712,11705 L 765,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 819,11705 L 872,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 925,11705 L 978,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1031,11705 L 1084,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1137,11705 L 1190,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1243,11705 L 1296,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1349,11705 L 1403,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1456,11705 L 1509,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1562,11705 L 1615,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1668,11705 L 1721,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1774,11705 L 1827,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1880,11705 L 1933,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1987,11705 L 2040,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2093,11705 L 2146,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2199,11705 L 2252,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2305,11705 L 2358,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2411,11705 L 2464,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2517,11705 L 2571,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2624,11705 L 2677,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2730,11705 L 2783,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2836,11705 L 2889,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2942,11705 L 2995,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3048,11705 L 3101,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3155,11705 L 3208,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3261,11705 L 3314,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3367,11705 L 3420,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3473,11705 L 3526,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3579,11705 L 3632,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3685,11705 L 3739,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3792,11705 L 3845,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3898,11704 L 3951,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4004,11704 L 4057,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4110,11704 L 4163,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4216,11704 L 4269,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4323,11704 L 4376,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4429,11704 L 4482,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4535,11704 L 4588,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4641,11704 L 4694,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4747,11704 L 4800,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4854,11704 L 4907,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4960,11704 L 5013,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5066,11704 L 5119,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5172,11704 L 5225,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5278,11704 L 5331,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5384,11704 L 5438,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5491,11704 L 5544,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5597,11704 L 5650,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5703,11704 L 5756,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5809,11704 L 5862,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5915,11704 L 5968,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6022,11704 L 6075,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6128,11704 L 6181,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6234,11704 L 6287,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6340,11704 L 6393,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6446,11704 L 6499,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6552,11704 L 6606,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6659,11704 L 6712,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6765,11704 L 6818,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6871,11704 L 6924,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6977,11704 L 7030,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7083,11704 L 7136,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7190,11704 L 7243,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7296,11704 L 7349,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7402,11704 L 7455,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7508,11704 L 7561,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7614,11704 L 7667,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7720,11704 L 7774,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7827,11704 L 7880,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7933,11704 L 7986,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8039,11704 L 8092,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8145,11704 L 8198,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8251,11704 L 8304,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8358,11704 L 8411,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8464,11704 L 8517,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8570,11704 L 8623,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8676,11704 L 8729,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8782,11704 L 8835,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8888,11704 L 8942,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8995,11704 L 9048,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9101,11704 L 9154,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9207,11704 L 9260,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9313,11704 L 9366,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9419,11704 L 9472,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9526,11704 L 9579,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9632,11704 L 9685,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9738,11704 L 9791,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9844,11704 L 9897,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9950,11704 L 10003,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10056,11704 L 10110,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10163,11704 L 10216,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10269,11704 L 10322,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10375,11704 L 10428,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10481,11704 L 10534,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10587,11703 L 10640,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10694,11703 L 10747,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10800,11703 L 10853,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10906,11703 L 10959,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11012,11703 L 11065,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11118,11703 L 11171,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11224,11703 L 11278,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11331,11703 L 11384,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11437,11703 L 11490,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11543,11703 L 11596,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11649,11703 L 11702,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11755,11703 L 11808,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11862,11703 L 11915,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11968,11703 L 12021,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12074,11703 L 12127,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12180,11703 L 12233,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12286,11703 L 12339,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12392,11703 L 12446,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12499,11703 L 12552,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12605,11703 L 12658,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12711,11703 L 12764,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12817,11703 L 12870,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12923,11703 L 12977,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13030,11703 L 13083,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13136,11703 L 13189,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13242,11703 L 13295,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13348,11703 L 13401,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13454,11703 L 13507,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13561,11703 L 13614,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13667,11703 L 13720,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13773,11703 L 13826,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13879,11703 L 13932,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13985,11703 L 14038,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14091,11703 L 14145,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14198,11703 L 14251,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14304,11703 L 14357,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14410,11703 L 14463,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14516,11703 L 14569,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14622,11703 L 14675,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14729,11703 L 14782,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14835,11703 L 14888,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14941,11703 L 14994,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15047,11703 L 15100,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15153,11703 L 15206,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15259,11703 L 15313,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15366,11703 L 15419,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15472,11703 L 15525,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15578,11703 L 15631,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15684,11703 L 15737,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15790,11703 L 15843,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15897,11703 L 15950,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16003,11703 L 16056,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16109,11703 L 16162,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16215,11703 L 16268,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16321,11703 L 16374,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16427,11703 L 16481,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16534,11703 L 16587,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16640,11703 L 16693,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16746,11703 L 16799,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16852,11703 L 16905,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16958,11703 L 17011,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17065,11703 L 17118,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17171,11702 L 17224,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17277,11702 L 17330,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17383,11702 L 17436,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17489,11702 L 17542,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17595,11702 L 17649,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17702,11702 L 17755,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17808,11702 L 17861,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17914,11702 L 17967,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18020,11702 L 18073,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18126,11702 L 18179,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18233,11702 L 18286,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18339,11702 L 18392,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18445,11702 L 18498,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18551,11702 L 18604,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18657,11702 L 18710,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18763,11702 L 18817,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18870,11702 L 18923,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18976,11702 L 19029,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19082,11702 L 19135,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19188,11702 L 19241,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19294,11702 L 19347,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19401,11702 L 19454,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19507,11702 L 19560,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19613,11702 L 19666,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19719,11702 L 19772,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19825,11702 L 19878,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19931,11702 L 19985,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20038,11702 L 20091,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20144,11702 L 20197,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20250,11702 L 20303,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20356,11702 L 20409,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20462,11702 L 20500,11702"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="499" y="21402" width="20003" height="6"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 500,21406 L 553,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 606,21406 L 659,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 712,21406 L 765,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 819,21406 L 872,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 925,21406 L 978,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1031,21406 L 1084,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1137,21406 L 1190,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1243,21406 L 1296,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1349,21406 L 1403,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1456,21406 L 1509,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1562,21406 L 1615,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1668,21406 L 1721,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1774,21406 L 1827,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1880,21406 L 1933,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1987,21406 L 2040,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2093,21406 L 2146,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2199,21406 L 2252,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2305,21406 L 2358,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2411,21406 L 2464,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2517,21406 L 2571,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2624,21406 L 2677,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2730,21406 L 2783,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2836,21406 L 2889,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2942,21406 L 2995,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3048,21406 L 3101,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3155,21406 L 3208,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3261,21406 L 3314,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3367,21406 L 3420,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3473,21406 L 3526,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3579,21406 L 3632,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3685,21406 L 3739,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3792,21406 L 3845,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3898,21405 L 3951,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4004,21405 L 4057,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4110,21405 L 4163,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4216,21405 L 4269,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4323,21405 L 4376,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4429,21405 L 4482,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4535,21405 L 4588,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4641,21405 L 4694,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4747,21405 L 4800,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4854,21405 L 4907,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4960,21405 L 5013,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5066,21405 L 5119,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5172,21405 L 5225,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5278,21405 L 5331,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5384,21405 L 5438,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5491,21405 L 5544,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5597,21405 L 5650,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5703,21405 L 5756,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5809,21405 L 5862,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5915,21405 L 5968,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6022,21405 L 6075,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6128,21405 L 6181,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6234,21405 L 6287,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6340,21405 L 6393,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6446,21405 L 6499,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6552,21405 L 6606,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6659,21405 L 6712,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6765,21405 L 6818,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6871,21405 L 6924,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6977,21405 L 7030,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7083,21405 L 7136,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7190,21405 L 7243,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7296,21405 L 7349,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7402,21405 L 7455,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7508,21405 L 7561,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7614,21405 L 7667,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7720,21405 L 7774,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7827,21405 L 7880,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7933,21405 L 7986,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8039,21405 L 8092,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8145,21405 L 8198,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8251,21405 L 8304,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8358,21405 L 8411,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8464,21405 L 8517,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8570,21405 L 8623,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8676,21405 L 8729,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8782,21405 L 8835,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8888,21405 L 8942,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8995,21405 L 9048,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9101,21405 L 9154,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9207,21405 L 9260,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9313,21405 L 9366,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9419,21405 L 9472,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9526,21405 L 9579,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9632,21405 L 9685,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9738,21405 L 9791,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9844,21405 L 9897,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9950,21405 L 10003,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10056,21405 L 10110,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10163,21405 L 10216,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10269,21405 L 10322,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10375,21405 L 10428,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10481,21405 L 10534,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10587,21404 L 10640,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10694,21404 L 10747,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10800,21404 L 10853,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10906,21404 L 10959,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11012,21404 L 11065,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11118,21404 L 11171,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11224,21404 L 11278,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11331,21404 L 11384,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11437,21404 L 11490,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11543,21404 L 11596,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11649,21404 L 11702,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11755,21404 L 11808,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11862,21404 L 11915,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11968,21404 L 12021,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12074,21404 L 12127,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12180,21404 L 12233,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12286,21404 L 12339,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12392,21404 L 12446,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12499,21404 L 12552,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12605,21404 L 12658,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12711,21404 L 12764,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12817,21404 L 12870,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12923,21404 L 12977,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13030,21404 L 13083,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13136,21404 L 13189,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13242,21404 L 13295,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13348,21404 L 13401,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13454,21404 L 13507,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13561,21404 L 13614,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13667,21404 L 13720,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13773,21404 L 13826,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13879,21404 L 13932,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13985,21404 L 14038,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14091,21404 L 14145,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14198,21404 L 14251,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14304,21404 L 14357,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14410,21404 L 14463,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14516,21404 L 14569,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14622,21404 L 14675,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14729,21404 L 14782,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14835,21404 L 14888,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14941,21404 L 14994,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15047,21404 L 15100,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15153,21404 L 15206,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15259,21404 L 15313,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15366,21404 L 15419,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15472,21404 L 15525,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15578,21404 L 15631,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15684,21404 L 15737,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15790,21404 L 15843,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15897,21404 L 15950,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16003,21404 L 16056,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16109,21404 L 16162,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16215,21404 L 16268,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16321,21404 L 16374,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16427,21404 L 16481,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16534,21404 L 16587,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16640,21404 L 16693,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16746,21404 L 16799,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16852,21404 L 16905,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16958,21404 L 17011,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17065,21404 L 17118,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17171,21403 L 17224,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17277,21403 L 17330,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17383,21403 L 17436,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17489,21403 L 17542,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17595,21403 L 17649,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17702,21403 L 17755,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17808,21403 L 17861,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17914,21403 L 17967,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18020,21403 L 18073,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18126,21403 L 18179,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18233,21403 L 18286,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18339,21403 L 18392,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18445,21403 L 18498,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18551,21403 L 18604,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18657,21403 L 18710,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18763,21403 L 18817,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18870,21403 L 18923,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18976,21403 L 19029,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19082,21403 L 19135,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19188,21403 L 19241,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19294,21403 L 19347,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19401,21403 L 19454,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19507,21403 L 19560,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19613,21403 L 19666,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19719,21403 L 19772,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19825,21403 L 19878,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19931,21403 L 19985,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20038,21403 L 20091,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20144,21403 L 20197,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20250,21403 L 20303,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20356,21403 L 20409,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20462,21403 L 20500,21403"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="499" y="26503" width="20003" height="6"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 500,26507 L 553,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 606,26507 L 659,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 712,26507 L 765,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 819,26507 L 872,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 925,26507 L 978,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1031,26507 L 1084,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1137,26507 L 1190,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1243,26507 L 1296,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1349,26507 L 1403,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1456,26507 L 1509,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1562,26507 L 1615,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1668,26507 L 1721,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1774,26507 L 1827,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1880,26507 L 1933,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1987,26507 L 2040,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2093,26507 L 2146,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2199,26507 L 2252,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2305,26507 L 2358,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2411,26507 L 2464,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2517,26507 L 2571,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2624,26507 L 2677,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2730,26507 L 2783,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2836,26507 L 2889,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2942,26507 L 2995,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3048,26507 L 3101,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3155,26507 L 3208,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3261,26507 L 3314,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3367,26507 L 3420,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3473,26507 L 3526,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3579,26507 L 3632,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3685,26507 L 3739,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3792,26507 L 3845,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3898,26506 L 3951,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4004,26506 L 4057,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4110,26506 L 4163,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4216,26506 L 4269,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4323,26506 L 4376,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4429,26506 L 4482,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4535,26506 L 4588,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4641,26506 L 4694,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4747,26506 L 4800,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4854,26506 L 4907,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4960,26506 L 5013,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5066,26506 L 5119,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5172,26506 L 5225,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5278,26506 L 5331,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5384,26506 L 5438,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5491,26506 L 5544,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5597,26506 L 5650,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5703,26506 L 5756,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5809,26506 L 5862,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5915,26506 L 5968,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6022,26506 L 6075,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6128,26506 L 6181,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6234,26506 L 6287,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6340,26506 L 6393,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6446,26506 L 6499,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6552,26506 L 6606,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6659,26506 L 6712,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6765,26506 L 6818,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6871,26506 L 6924,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6977,26506 L 7030,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7083,26506 L 7136,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7190,26506 L 7243,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7296,26506 L 7349,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7402,26506 L 7455,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7508,26506 L 7561,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7614,26506 L 7667,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7720,26506 L 7774,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7827,26506 L 7880,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7933,26506 L 7986,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8039,26506 L 8092,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8145,26506 L 8198,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8251,26506 L 8304,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8358,26506 L 8411,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8464,26506 L 8517,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8570,26506 L 8623,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8676,26506 L 8729,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8782,26506 L 8835,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8888,26506 L 8942,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8995,26506 L 9048,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9101,26506 L 9154,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9207,26506 L 9260,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9313,26506 L 9366,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9419,26506 L 9472,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9526,26506 L 9579,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9632,26506 L 9685,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9738,26506 L 9791,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9844,26506 L 9897,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9950,26506 L 10003,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10056,26506 L 10110,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10163,26506 L 10216,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10269,26506 L 10322,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10375,26506 L 10428,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10481,26506 L 10534,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10587,26505 L 10640,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10694,26505 L 10747,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10800,26505 L 10853,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10906,26505 L 10959,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11012,26505 L 11065,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11118,26505 L 11171,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11224,26505 L 11278,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11331,26505 L 11384,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11437,26505 L 11490,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11543,26505 L 11596,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11649,26505 L 11702,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11755,26505 L 11808,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11862,26505 L 11915,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11968,26505 L 12021,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12074,26505 L 12127,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12180,26505 L 12233,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12286,26505 L 12339,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12392,26505 L 12446,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12499,26505 L 12552,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12605,26505 L 12658,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12711,26505 L 12764,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12817,26505 L 12870,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12923,26505 L 12977,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13030,26505 L 13083,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13136,26505 L 13189,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13242,26505 L 13295,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13348,26505 L 13401,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13454,26505 L 13507,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13561,26505 L 13614,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13667,26505 L 13720,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13773,26505 L 13826,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13879,26505 L 13932,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13985,26505 L 14038,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14091,26505 L 14145,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14198,26505 L 14251,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14304,26505 L 14357,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14410,26505 L 14463,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14516,26505 L 14569,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14622,26505 L 14675,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14729,26505 L 14782,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14835,26505 L 14888,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14941,26505 L 14994,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15047,26505 L 15100,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15153,26505 L 15206,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15259,26505 L 15313,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15366,26505 L 15419,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15472,26505 L 15525,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15578,26505 L 15631,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15684,26505 L 15737,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15790,26505 L 15843,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15897,26505 L 15950,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16003,26505 L 16056,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16109,26505 L 16162,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16215,26505 L 16268,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16321,26505 L 16374,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16427,26505 L 16481,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16534,26505 L 16587,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16640,26505 L 16693,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16746,26505 L 16799,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16852,26505 L 16905,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16958,26505 L 17011,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17065,26505 L 17118,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17171,26504 L 17224,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17277,26504 L 17330,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17383,26504 L 17436,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17489,26504 L 17542,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17595,26504 L 17649,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17702,26504 L 17755,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17808,26504 L 17861,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17914,26504 L 17967,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18020,26504 L 18073,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18126,26504 L 18179,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18233,26504 L 18286,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18339,26504 L 18392,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18445,26504 L 18498,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18551,26504 L 18604,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18657,26504 L 18710,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18763,26504 L 18817,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18870,26504 L 18923,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18976,26504 L 19029,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19082,26504 L 19135,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19188,26504 L 19241,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19294,26504 L 19347,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19401,26504 L 19454,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19507,26504 L 19560,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19613,26504 L 19666,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19719,26504 L 19772,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19825,26504 L 19878,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19931,26504 L 19985,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20038,26504 L 20091,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20144,26504 L 20197,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20250,26504 L 20303,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20356,26504 L 20409,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20462,26504 L 20500,26504"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="500" y="554" width="5081" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="750" y="1128"/><tspan class="TextPosition" x="750" y="1128"><tspan fill="rgb(0,0,0)" stroke="none">sL1 - Data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="500" y="8554" width="4827" height="1362"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="750" y="9128"/><tspan class="TextPosition" x="750" y="9128"><tspan fill="rgb(0,0,0)" stroke="none">sL2 - Data </tspan></tspan><tspan class="TextPosition" x="750" y="9683"/><tspan class="TextPosition" x="750" y="9683"><tspan fill="rgb(0,0,0)" stroke="none">processing</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="500" y="19754" width="5081" height="1362"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="750" y="20328"/><tspan class="TextPosition" x="750" y="20328"><tspan fill="rgb(0,0,0)" stroke="none">sL3 - Data </tspan></tspan><tspan class="TextPosition" x="750" y="20883"/><tspan class="TextPosition" x="750" y="20883"><tspan fill="rgb(0,0,0)" stroke="none">presentation</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="500" y="24554" width="5081" height="1362"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="750" y="25128"/><tspan class="TextPosition" x="750" y="25128"><tspan fill="rgb(0,0,0)" stroke="none">sL4 - Report </tspan></tspan><tspan class="TextPosition" x="750" y="25683"/><tspan class="TextPosition" x="750" y="25683"><tspan fill="rgb(0,0,0)" stroke="none">generation</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/docs/report/csit_framework_documentation/pal_layers.svg b/docs/report/csit_framework_documentation/pal_layers.svg
deleted file mode 100644
index dfb05d3106..0000000000
--- a/docs/report/csit_framework_documentation/pal_layers.svg
+++ /dev/null
@@ -1,441 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<svg version="1.2" baseProfile="tiny" width="215.9mm" height="152.4mm" viewBox="0 0 21590 15240" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="21590" height="15240"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="→" horiz-adv-x="1218" d="M 1407,637 C 1388,660 1368,687 1349,720 1329,753 1309,791 1288,834 L 1360,834 C 1399,789 1440,747 1483,710 1526,673 1575,640 1630,612 L 1630,576 C 1575,548 1526,515 1483,478 1440,441 1399,399 1360,354 L 1288,354 C 1309,397 1329,435 1349,468 1368,501 1388,528 1407,551 L 418,551 418,637 1407,637 Z"/>
- <glyph unicode="y" horiz-adv-x="1059" d="M 604,1 C 579,-64 553,-123 527,-175 500,-227 471,-272 438,-309 405,-346 369,-374 329,-394 289,-413 243,-423 191,-423 168,-423 147,-423 128,-423 109,-423 88,-420 67,-414 L 67,-279 C 80,-282 94,-284 110,-284 126,-284 140,-284 151,-284 204,-284 253,-264 298,-225 343,-186 383,-123 417,-37 L 434,6 5,1082 197,1082 425,484 C 432,466 440,442 451,412 461,382 471,352 482,322 492,292 501,265 509,241 517,217 522,202 523,196 525,203 530,218 538,240 545,261 554,285 564,312 573,339 583,366 593,393 603,420 611,444 618,464 L 830,1082 1020,1082 604,1 Z"/>
- <glyph unicode="x" horiz-adv-x="1033" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
- <glyph unicode="v" horiz-adv-x="1059" d="M 613,0 L 400,0 7,1082 199,1082 437,378 C 442,363 447,346 454,325 460,304 466,282 473,259 480,236 486,215 492,194 497,173 502,155 506,141 510,155 515,173 522,194 528,215 534,236 541,258 548,280 555,302 562,323 569,344 575,361 580,376 L 826,1082 1017,1082 613,0 Z"/>
- <glyph unicode="u" horiz-adv-x="901" d="M 314,1082 L 314,396 C 314,343 318,299 326,264 333,229 346,200 363,179 380,157 403,142 432,133 460,124 495,119 537,119 580,119 618,127 653,142 687,157 716,178 741,207 765,235 784,270 797,312 810,353 817,401 817,455 L 817,1082 997,1082 997,231 C 997,208 997,185 998,160 998,135 998,111 999,89 1000,66 1000,47 1001,31 1002,15 1002,5 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 827,116 826,136 825,155 825,172 825,185 L 822,185 C 805,154 786,125 765,100 744,75 720,53 693,36 666,18 634,4 599,-6 564,-15 523,-20 476,-20 416,-20 364,-13 321,2 278,17 242,39 214,70 186,101 166,140 153,188 140,236 133,294 133,361 L 133,1082 314,1082 Z"/>
- <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 527,1 499,-5 471,-10 442,-14 409,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 467,127 484,128 501,131 517,134 535,137 554,141 L 554,8 Z"/>
- <glyph unicode="s" horiz-adv-x="927" d="M 950,299 C 950,248 940,203 921,164 901,124 872,91 835,64 798,37 752,16 698,2 643,-13 581,-20 511,-20 448,-20 392,-15 342,-6 291,4 247,20 209,41 171,62 139,91 114,126 88,161 69,203 57,254 L 216,285 C 231,227 263,185 311,158 359,131 426,117 511,117 550,117 585,120 618,125 650,130 678,140 701,153 724,166 743,183 756,205 769,226 775,253 775,285 775,318 767,345 752,366 737,387 715,404 688,418 661,432 628,444 589,455 550,465 507,476 460,489 417,500 374,513 331,527 288,541 250,560 216,583 181,606 153,634 132,668 111,702 100,745 100,796 100,895 135,970 206,1022 276,1073 378,1099 513,1099 632,1099 727,1078 798,1036 868,994 912,927 931,834 L 769,814 C 763,842 752,866 736,885 720,904 701,919 678,931 655,942 630,951 602,956 573,961 544,963 513,963 432,963 372,951 333,926 294,901 275,864 275,814 275,785 282,761 297,742 311,723 331,707 357,694 382,681 413,669 449,660 485,650 525,640 568,629 597,622 626,614 656,606 686,597 715,587 744,576 772,564 799,550 824,535 849,519 870,500 889,478 908,456 923,430 934,401 945,372 950,338 950,299 Z"/>
- <glyph unicode="r" horiz-adv-x="556" d="M 142,0 L 142,830 C 142,853 142,876 142,900 141,923 141,946 140,968 139,990 139,1011 138,1030 137,1049 137,1067 136,1082 L 306,1082 C 307,1067 308,1049 309,1030 310,1010 311,990 312,969 313,948 313,929 314,910 314,891 314,874 314,861 L 318,861 C 331,902 344,938 359,969 373,999 390,1024 409,1044 428,1063 451,1078 478,1088 505,1097 537,1102 575,1102 590,1102 604,1101 617,1099 630,1096 641,1094 648,1092 L 648,927 C 636,930 622,933 606,935 590,936 572,937 552,937 511,937 476,928 447,909 418,890 394,865 376,832 357,799 344,759 335,714 326,668 322,618 322,564 L 322,0 142,0 Z"/>
- <glyph unicode="p" horiz-adv-x="953" d="M 1053,546 C 1053,464 1046,388 1033,319 1020,250 998,190 967,140 936,90 895,51 844,23 793,-6 730,-20 655,-20 578,-20 510,-5 452,24 394,53 350,101 319,168 L 314,168 C 315,167 315,161 316,150 316,139 316,126 317,110 317,94 317,76 318,57 318,37 318,17 318,-2 L 318,-425 138,-425 138,861 C 138,887 138,912 138,936 137,960 137,982 136,1002 135,1021 135,1038 134,1052 133,1066 133,1076 132,1082 L 306,1082 C 307,1080 308,1073 309,1061 310,1049 311,1035 312,1018 313,1001 314,982 315,963 316,944 316,925 316,908 L 320,908 C 337,943 356,972 377,997 398,1021 423,1041 450,1057 477,1072 508,1084 542,1091 575,1098 613,1101 655,1101 730,1101 793,1088 844,1061 895,1034 936,997 967,949 998,900 1020,842 1033,774 1046,705 1053,629 1053,546 Z M 864,542 C 864,609 860,668 852,720 844,772 830,816 811,852 791,888 765,915 732,934 699,953 658,962 609,962 569,962 531,956 496,945 461,934 430,912 404,880 377,848 356,804 341,748 326,691 318,618 318,528 318,451 324,387 337,334 350,281 368,238 393,205 417,172 447,149 483,135 519,120 560,113 607,113 657,113 699,123 732,142 765,161 791,189 811,226 830,263 844,308 852,361 860,414 864,474 864,542 Z"/>
- <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 490,-20 422,-9 363,14 304,37 254,71 213,118 172,165 140,223 119,294 97,364 86,447 86,542 86,915 248,1102 571,1102 655,1102 728,1090 789,1067 850,1044 900,1009 939,962 978,915 1006,857 1025,787 1044,717 1053,635 1053,542 Z M 864,542 C 864,626 858,695 845,750 832,805 813,848 788,881 763,914 732,937 696,950 660,963 619,969 574,969 528,969 487,962 450,949 413,935 381,912 355,879 329,846 309,802 296,747 282,692 275,624 275,542 275,458 282,389 297,334 312,279 332,235 358,202 383,169 414,146 449,133 484,120 522,113 563,113 609,113 651,120 688,133 725,146 757,168 783,201 809,234 829,278 843,333 857,388 864,458 864,542 Z"/>
- <glyph unicode="n" horiz-adv-x="900" d="M 825,0 L 825,686 C 825,739 821,783 814,818 806,853 793,882 776,904 759,925 736,941 708,950 679,959 644,963 602,963 559,963 521,956 487,941 452,926 423,904 399,876 374,847 355,812 342,771 329,729 322,681 322,627 L 322,0 142,0 142,851 C 142,874 142,898 142,923 141,948 141,971 140,994 139,1016 139,1035 138,1051 137,1067 137,1077 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 312,966 313,947 314,927 314,910 314,897 L 317,897 C 334,928 353,957 374,982 395,1007 419,1029 446,1047 473,1064 505,1078 540,1088 575,1097 616,1102 663,1102 723,1102 775,1095 818,1080 861,1065 897,1043 925,1012 953,981 974,942 987,894 1000,845 1006,788 1006,721 L 1006,0 825,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1456" d="M 768,0 L 768,686 C 768,739 765,783 758,818 751,853 740,882 725,904 709,925 688,941 663,950 638,959 607,963 570,963 532,963 498,956 467,941 436,926 410,904 389,876 367,847 350,812 339,771 327,729 321,681 321,627 L 321,0 142,0 142,851 C 142,874 142,898 142,923 141,948 141,971 140,994 139,1016 139,1035 138,1051 137,1067 137,1077 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 312,966 313,947 314,927 314,910 314,897 L 317,897 C 333,928 350,957 369,982 388,1007 410,1029 435,1047 460,1064 488,1078 521,1088 553,1097 590,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 946,928 964,957 984,982 1004,1007 1027,1029 1054,1047 1081,1064 1111,1078 1144,1088 1177,1097 1215,1102 1258,1102 1313,1102 1360,1095 1400,1080 1439,1065 1472,1043 1497,1012 1522,981 1541,942 1553,894 1565,845 1571,788 1571,721 L 1571,0 1393,0 1393,686 C 1393,739 1390,783 1383,818 1376,853 1365,882 1350,904 1334,925 1313,941 1288,950 1263,959 1232,963 1195,963 1157,963 1123,956 1092,942 1061,927 1035,906 1014,878 992,850 975,815 964,773 952,731 946,682 946,627 L 946,0 768,0 Z"/>
- <glyph unicode="l" horiz-adv-x="187" d="M 138,0 L 138,1484 318,1484 318,0 138,0 Z"/>
- <glyph unicode="k" horiz-adv-x="927" d="M 816,0 L 450,494 318,385 318,0 138,0 138,1484 318,1484 318,557 793,1082 1004,1082 565,617 1027,0 816,0 Z"/>
- <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/>
- <glyph unicode="h" horiz-adv-x="874" d="M 317,897 C 337,934 359,965 382,991 405,1016 431,1037 459,1054 487,1071 518,1083 551,1091 584,1098 622,1102 663,1102 732,1102 789,1093 834,1074 878,1055 913,1029 939,996 964,962 982,922 992,875 1001,828 1006,777 1006,721 L 1006,0 825,0 825,686 C 825,732 822,772 817,807 811,842 800,871 784,894 768,917 745,934 716,946 687,957 649,963 602,963 559,963 521,955 487,940 452,925 423,903 399,875 374,847 355,813 342,773 329,733 322,688 322,638 L 322,0 142,0 142,1484 322,1484 322,1098 C 322,1076 322,1054 321,1032 320,1010 320,990 319,971 318,952 317,937 316,924 315,911 315,902 314,897 L 317,897 Z"/>
- <glyph unicode="g" horiz-adv-x="954" d="M 548,-425 C 486,-425 431,-419 383,-406 335,-393 294,-375 260,-352 226,-328 198,-300 177,-267 156,-234 140,-198 131,-158 L 312,-132 C 324,-182 351,-220 392,-248 433,-274 486,-288 553,-288 594,-288 631,-282 664,-271 697,-260 726,-241 749,-217 772,-191 790,-159 803,-119 816,-79 822,-30 822,27 L 822,201 820,201 C 807,174 790,148 771,123 751,98 727,75 699,56 670,37 637,21 600,10 563,-2 520,-8 472,-8 403,-8 345,4 296,27 247,50 207,84 176,130 145,176 122,233 108,302 93,370 86,449 86,539 86,626 93,704 108,773 122,842 145,901 178,950 210,998 252,1035 304,1061 355,1086 418,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,914 825,932 826,953 827,974 828,993 829,1012 830,1030 831,1046 832,1059 833,1072 835,1080 836,1082 L 1007,1082 C 1006,1076 1006,1066 1005,1052 1004,1037 1004,1020 1003,1000 1002,980 1002,958 1002,934 1001,909 1001,884 1001,858 L 1001,31 C 1001,-120 964,-234 890,-311 815,-387 701,-425 548,-425 Z M 822,541 C 822,616 814,681 798,735 781,788 760,832 733,866 706,900 676,925 642,941 607,957 572,965 536,965 490,965 451,957 418,941 385,925 357,900 336,866 314,831 298,787 288,734 277,680 272,616 272,541 272,463 277,398 288,345 298,292 314,249 335,216 356,183 383,160 416,146 449,132 488,125 533,125 569,125 604,133 639,148 673,163 704,188 731,221 758,254 780,297 797,350 814,403 822,466 822,541 Z"/>
- <glyph unicode="f" horiz-adv-x="557" d="M 361,951 L 361,0 181,0 181,951 29,951 29,1082 181,1082 181,1204 C 181,1243 185,1280 192,1314 199,1347 213,1377 233,1402 252,1427 279,1446 313,1461 347,1475 391,1482 445,1482 466,1482 489,1481 512,1479 535,1477 555,1474 572,1470 L 572,1333 C 561,1335 548,1337 533,1339 518,1340 504,1341 492,1341 465,1341 444,1337 427,1330 410,1323 396,1312 387,1299 377,1285 370,1268 367,1248 363,1228 361,1205 361,1179 L 361,1082 572,1082 572,951 361,951 Z"/>
- <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,446 282,394 294,347 305,299 323,258 348,224 372,189 403,163 441,144 479,125 525,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 1008,206 992,176 972,146 951,115 924,88 890,64 856,39 814,19 763,4 712,-12 650,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,649 100,735 125,806 150,876 185,933 229,977 273,1021 324,1053 383,1073 442,1092 504,1102 571,1102 662,1102 738,1087 799,1058 860,1029 909,988 946,937 983,885 1009,824 1025,754 1040,684 1048,608 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 538,969 507,964 474,955 441,945 410,928 382,903 354,878 330,845 311,803 292,760 281,706 278,641 L 862,641 Z"/>
- <glyph unicode="d" horiz-adv-x="954" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 C 823,921 823,931 823,946 822,960 822,975 822,991 821,1006 821,1021 821,1035 821,1049 821,1059 821,1065 L 821,1484 1001,1484 1001,223 C 1001,197 1001,172 1002,148 1002,124 1002,102 1003,82 1004,62 1004,45 1005,31 1006,16 1006,6 1007,0 L 835,0 C 834,7 833,16 832,29 831,41 830,55 829,71 828,87 827,104 826,122 825,139 825,157 825,174 L 821,174 Z M 275,542 C 275,467 280,403 289,350 298,297 313,253 334,219 355,184 381,159 413,143 445,127 484,119 530,119 577,119 619,127 656,142 692,157 722,182 747,217 771,251 789,296 802,351 815,406 821,474 821,554 821,631 815,696 802,749 789,802 771,844 746,877 721,910 691,933 656,948 620,962 579,969 532,969 488,969 450,961 418,946 386,931 359,906 338,872 317,838 301,794 291,740 280,685 275,619 275,542 Z"/>
- <glyph unicode="c" horiz-adv-x="875" d="M 275,546 C 275,484 280,427 289,375 298,323 313,278 334,241 355,203 384,174 419,153 454,132 497,122 548,122 612,122 666,139 709,173 752,206 778,258 788,328 L 970,328 C 964,283 951,239 931,197 911,155 884,118 850,86 815,54 773,28 724,9 675,-10 618,-20 553,-20 468,-20 396,-6 337,23 278,52 230,91 193,142 156,192 129,251 112,320 95,388 87,462 87,542 87,615 93,679 105,735 117,790 134,839 156,881 177,922 203,957 232,986 261,1014 293,1037 328,1054 362,1071 398,1083 436,1091 474,1098 512,1102 551,1102 612,1102 666,1094 713,1077 760,1060 801,1038 836,1009 870,980 898,945 919,906 940,867 955,824 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 495,961 452,953 418,936 383,919 355,893 334,859 313,824 298,781 289,729 280,677 275,616 275,546 Z"/>
- <glyph unicode="b" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 573,-20 505,-5 451,25 396,54 352,102 318,168 L 316,168 C 316,151 316,133 315,114 314,95 313,78 312,62 311,46 310,32 309,21 308,10 307,3 306,0 L 132,0 C 133,6 133,16 134,31 135,45 135,62 136,82 137,102 137,124 138,148 138,172 138,197 138,223 L 138,1484 318,1484 318,1061 C 318,1041 318,1022 318,1004 317,985 317,969 316,955 315,938 315,923 314,908 L 318,908 C 351,977 396,1027 451,1057 506,1087 574,1102 655,1102 792,1102 892,1056 957,964 1021,872 1053,733 1053,546 Z M 864,540 C 864,615 859,679 850,732 841,785 826,829 805,864 784,898 758,923 726,939 694,955 655,963 609,963 562,963 520,955 484,940 447,925 417,900 393,866 368,832 350,787 337,732 324,677 318,609 318,529 318,452 324,387 337,334 350,281 368,239 393,206 417,173 447,149 483,135 519,120 560,113 607,113 651,113 689,121 721,136 753,151 780,176 801,210 822,244 838,288 849,343 859,397 864,463 864,540 Z"/>
- <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,124 87,203 87,303 87,375 101,434 128,480 155,526 190,562 234,588 277,614 327,632 383,642 439,652 496,657 554,657 L 797,657 797,717 C 797,762 792,800 783,832 774,863 759,889 740,908 721,928 697,942 668,951 639,960 604,965 565,965 530,965 499,963 471,958 443,953 419,944 398,931 377,918 361,900 348,878 335,855 327,827 323,793 L 135,810 C 142,853 154,892 173,928 192,963 218,994 253,1020 287,1046 330,1066 382,1081 433,1095 496,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1090,111 1100,112 1110,113 1120,114 1130,116 1139,118 L 1139,6 C 1116,1 1094,-3 1072,-6 1049,-9 1025,-10 1000,-10 966,-10 937,-5 913,4 888,13 868,26 853,45 838,63 826,86 818,113 810,140 805,171 803,207 L 797,207 C 778,172 757,141 734,113 711,85 684,61 653,42 622,22 588,7 549,-4 510,-15 465,-20 414,-20 Z M 455,115 C 512,115 563,125 606,146 649,167 684,194 713,226 741,259 762,294 776,332 790,371 797,408 797,443 L 797,531 600,531 C 556,531 514,528 475,522 435,517 400,506 370,489 340,472 316,449 299,418 281,388 272,349 272,300 272,241 288,195 320,163 351,131 396,115 455,115 Z"/>
- <glyph unicode="Z" horiz-adv-x="1139" d="M 1187,0 L 65,0 65,143 923,1253 138,1253 138,1409 1140,1409 1140,1270 282,156 1187,156 1187,0 Z"/>
- <glyph unicode="Y" horiz-adv-x="1244" d="M 777,584 L 777,0 587,0 587,584 45,1409 255,1409 684,738 1111,1409 1321,1409 777,584 Z"/>
- <glyph unicode="X" horiz-adv-x="1324" d="M 1112,0 L 689,616 257,0 46,0 582,732 87,1409 298,1409 690,856 1071,1409 1282,1409 800,739 1323,0 1112,0 Z"/>
- <glyph unicode="T" horiz-adv-x="1139" d="M 720,1253 L 720,0 530,0 530,1253 46,1253 46,1409 1204,1409 1204,1253 720,1253 Z"/>
- <glyph unicode="S" horiz-adv-x="1139" d="M 1272,389 C 1272,330 1261,275 1238,225 1215,175 1179,132 1131,96 1083,59 1023,31 950,11 877,-10 790,-20 690,-20 515,-20 378,11 280,72 182,133 120,222 93,338 L 278,375 C 287,338 302,305 321,275 340,245 367,219 400,198 433,176 473,159 522,147 571,135 629,129 697,129 754,129 806,134 853,144 900,153 941,168 975,188 1009,208 1036,234 1055,266 1074,297 1083,335 1083,379 1083,425 1073,462 1052,491 1031,520 1001,543 963,562 925,581 880,596 827,609 774,622 716,635 652,650 613,659 573,668 534,679 494,689 456,701 420,716 383,730 349,747 317,766 285,785 257,809 234,836 211,863 192,894 179,930 166,965 159,1006 159,1053 159,1120 173,1177 200,1225 227,1272 264,1311 312,1342 360,1373 417,1395 482,1409 547,1423 618,1430 694,1430 781,1430 856,1423 918,1410 980,1396 1032,1375 1075,1348 1118,1321 1152,1287 1178,1247 1203,1206 1224,1159 1239,1106 L 1051,1073 C 1042,1107 1028,1137 1011,1164 993,1191 970,1213 941,1231 912,1249 878,1263 837,1272 796,1281 747,1286 692,1286 627,1286 572,1280 528,1269 483,1257 448,1241 421,1221 394,1201 374,1178 363,1151 351,1124 345,1094 345,1063 345,1021 356,987 377,960 398,933 426,910 462,892 498,874 540,859 587,847 634,835 685,823 738,811 781,801 825,791 868,781 911,770 952,758 991,744 1030,729 1067,712 1102,693 1136,674 1166,650 1191,622 1216,594 1236,561 1251,523 1265,485 1272,440 1272,389 Z"/>
- <glyph unicode="R" horiz-adv-x="1218" d="M 1164,0 L 798,585 359,585 359,0 168,0 168,1409 831,1409 C 911,1409 982,1400 1044,1382 1105,1363 1157,1337 1199,1302 1241,1267 1273,1225 1295,1175 1317,1125 1328,1069 1328,1006 1328,961 1322,917 1309,874 1296,831 1275,791 1247,755 1219,719 1183,688 1140,662 1097,636 1045,618 984,607 L 1384,0 1164,0 Z M 1136,1004 C 1136,1047 1129,1084 1114,1115 1099,1146 1078,1173 1050,1194 1022,1215 988,1230 948,1241 908,1251 863,1256 812,1256 L 359,1256 359,736 820,736 C 875,736 922,743 962,757 1002,770 1035,789 1061,813 1086,837 1105,865 1118,898 1130,931 1136,966 1136,1004 Z"/>
- <glyph unicode="P" horiz-adv-x="1086" d="M 1258,985 C 1258,924 1248,867 1228,814 1207,761 1177,715 1137,676 1096,637 1046,606 985,583 924,560 854,549 773,549 L 359,549 359,0 168,0 168,1409 761,1409 C 844,1409 917,1399 979,1379 1041,1358 1093,1330 1134,1293 1175,1256 1206,1211 1227,1159 1248,1106 1258,1048 1258,985 Z M 1066,983 C 1066,1072 1039,1140 984,1187 929,1233 847,1256 738,1256 L 359,1256 359,700 746,700 C 856,700 937,724 989,773 1040,822 1066,892 1066,983 Z"/>
- <glyph unicode="O" horiz-adv-x="1377" d="M 1495,711 C 1495,601 1479,501 1448,411 1416,321 1370,244 1310,180 1250,116 1177,67 1090,32 1003,-3 905,-20 795,-20 679,-20 577,-2 490,35 403,71 330,122 272,187 214,252 170,329 141,418 112,507 97,605 97,711 97,821 112,920 143,1009 174,1098 219,1173 278,1236 337,1298 411,1346 498,1380 585,1413 684,1430 797,1430 909,1430 1009,1413 1096,1379 1183,1345 1256,1297 1315,1234 1374,1171 1418,1096 1449,1007 1480,918 1495,820 1495,711 Z M 1300,711 C 1300,796 1289,873 1268,942 1246,1011 1214,1071 1172,1120 1129,1169 1077,1207 1014,1234 951,1261 879,1274 797,1274 713,1274 639,1261 576,1234 513,1207 460,1169 418,1120 375,1071 344,1011 323,942 302,873 291,796 291,711 291,626 302,549 324,479 345,408 377,348 420,297 462,246 515,206 578,178 641,149 713,135 795,135 883,135 959,149 1023,178 1086,207 1139,247 1180,298 1221,349 1251,409 1271,480 1290,551 1300,628 1300,711 Z"/>
- <glyph unicode="N" horiz-adv-x="1138" d="M 1082,0 L 328,1200 C 329,1167 331,1135 333,1103 334,1076 336,1047 337,1017 338,986 338,959 338,936 L 338,0 168,0 168,1409 390,1409 1152,201 C 1150,234 1148,266 1146,299 1145,327 1143,358 1142,391 1141,424 1140,455 1140,485 L 1140,1409 1312,1409 1312,0 1082,0 Z"/>
- <glyph unicode="M" horiz-adv-x="1324" d="M 1366,0 L 1366,940 C 1366,974 1366,1009 1367,1044 1368,1079 1369,1112 1370,1141 1371,1175 1373,1208 1375,1240 1366,1206 1356,1172 1346,1139 1337,1110 1328,1080 1318,1048 1307,1015 1297,986 1287,960 L 923,0 789,0 420,960 C 416,970 412,982 408,995 403,1008 399,1023 394,1038 389,1053 384,1068 379,1084 374,1099 369,1115 364,1130 353,1165 342,1202 331,1240 332,1203 333,1166 334,1129 335,1098 336,1065 337,1031 338,996 338,966 338,940 L 338,0 168,0 168,1409 419,1409 794,432 C 799,419 804,402 811,381 818,360 824,338 830,316 836,294 842,273 847,254 852,234 855,219 857,208 859,219 863,234 868,254 873,274 880,295 887,317 894,339 900,360 907,381 914,402 920,419 925,432 L 1293,1409 1538,1409 1538,0 1366,0 Z"/>
- <glyph unicode="L" horiz-adv-x="900" d="M 168,0 L 168,1409 359,1409 359,156 1071,156 1071,0 168,0 Z"/>
- <glyph unicode="J" horiz-adv-x="848" d="M 457,-20 C 343,-20 250,10 177,69 104,128 55,222 32,350 L 219,381 C 226,338 237,301 252,270 267,239 286,213 307,193 328,173 352,158 378,149 404,140 431,135 458,135 527,135 582,159 622,207 662,254 682,324 682,416 L 682,1253 411,1253 411,1409 872,1409 872,420 C 872,353 863,292 844,238 825,184 798,138 763,100 727,61 683,32 632,11 581,-10 522,-20 457,-20 Z"/>
- <glyph unicode="I" horiz-adv-x="186" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
- <glyph unicode="F" horiz-adv-x="1006" d="M 359,1253 L 359,729 1145,729 1145,571 359,571 359,0 168,0 168,1409 1169,1409 1169,1253 359,1253 Z"/>
- <glyph unicode="D" horiz-adv-x="1218" d="M 1381,719 C 1381,602 1363,498 1328,409 1293,319 1244,244 1183,184 1122,123 1049,78 966,47 882,16 792,0 695,0 L 168,0 168,1409 634,1409 C 743,1409 843,1396 935,1369 1026,1342 1105,1300 1171,1244 1237,1187 1289,1116 1326,1029 1363,942 1381,839 1381,719 Z M 1189,719 C 1189,814 1175,896 1148,964 1121,1031 1082,1087 1033,1130 984,1173 925,1205 856,1226 787,1246 712,1256 630,1256 L 359,1256 359,153 673,153 C 747,153 816,165 879,189 942,213 996,249 1042,296 1088,343 1124,402 1150,473 1176,544 1189,626 1189,719 Z"/>
- <glyph unicode="C" horiz-adv-x="1297" d="M 792,1274 C 712,1274 641,1261 580,1234 518,1207 466,1169 425,1120 383,1071 351,1011 330,942 309,873 298,796 298,711 298,626 310,549 333,479 356,408 389,348 432,297 475,246 527,207 590,179 652,151 722,137 800,137 855,137 905,144 950,159 995,173 1035,193 1072,219 1108,245 1140,276 1169,312 1198,347 1223,387 1245,430 L 1401,352 C 1376,299 1344,250 1307,205 1270,160 1226,120 1176,87 1125,54 1068,28 1005,9 941,-10 870,-20 791,-20 677,-20 577,-2 492,35 406,71 334,122 277,187 219,252 176,329 147,418 118,507 104,605 104,711 104,821 119,920 150,1009 180,1098 224,1173 283,1236 341,1298 413,1346 498,1380 583,1413 681,1430 790,1430 940,1430 1065,1401 1166,1342 1267,1283 1341,1196 1388,1081 L 1207,1021 C 1194,1054 1176,1086 1153,1117 1130,1147 1102,1174 1068,1197 1034,1220 994,1239 949,1253 903,1267 851,1274 792,1274 Z"/>
- <glyph unicode="A" horiz-adv-x="1350" d="M 1167,0 L 1006,412 364,412 202,0 4,0 579,1409 796,1409 1362,0 1167,0 Z M 768,1026 C 757,1053 747,1080 738,1107 728,1134 719,1159 712,1182 705,1204 699,1223 694,1238 689,1253 686,1262 685,1265 684,1262 681,1252 676,1237 671,1222 665,1203 658,1180 650,1157 641,1132 632,1105 622,1078 612,1051 602,1024 L 422,561 949,561 768,1026 Z"/>
- <glyph unicode="4" horiz-adv-x="1033" d="M 881,319 L 881,0 711,0 711,319 47,319 47,459 692,1409 881,1409 881,461 1079,461 1079,319 881,319 Z M 711,1206 C 710,1203 706,1196 701,1187 696,1177 690,1166 683,1154 676,1142 670,1130 663,1118 656,1105 649,1095 644,1087 L 283,555 C 280,550 275,543 269,534 262,525 256,517 249,508 242,499 236,490 229,481 222,472 217,466 213,461 L 711,461 711,1206 Z"/>
- <glyph unicode="3" horiz-adv-x="980" d="M 1049,389 C 1049,324 1039,267 1018,216 997,165 966,123 926,88 885,53 835,26 776,8 716,-11 648,-20 571,-20 484,-20 410,-9 351,13 291,34 242,63 203,99 164,134 135,175 116,221 97,266 84,313 78,362 L 264,379 C 269,342 279,308 294,277 308,246 327,220 352,198 377,176 407,159 443,147 479,135 522,129 571,129 662,129 733,151 785,196 836,241 862,307 862,395 862,447 851,489 828,521 805,552 776,577 742,595 707,612 670,624 630,630 589,636 552,639 518,639 L 416,639 416,795 514,795 C 548,795 583,799 620,806 657,813 690,825 721,844 751,862 776,887 796,918 815,949 825,989 825,1038 825,1113 803,1173 759,1217 714,1260 648,1282 561,1282 482,1282 418,1262 369,1221 320,1180 291,1123 283,1049 L 102,1063 C 109,1125 126,1179 153,1225 180,1271 214,1309 255,1340 296,1370 342,1393 395,1408 448,1423 504,1430 563,1430 642,1430 709,1420 766,1401 823,1381 869,1354 905,1321 941,1287 968,1247 985,1202 1002,1157 1010,1108 1010,1057 1010,1016 1004,977 993,941 982,905 964,873 940,844 916,815 886,791 849,770 812,749 767,734 715,723 L 715,719 C 772,713 821,700 863,681 905,661 940,636 967,607 994,578 1015,544 1029,507 1042,470 1049,430 1049,389 Z"/>
- <glyph unicode="2" horiz-adv-x="927" d="M 103,0 L 103,127 C 137,205 179,274 228,334 277,393 328,447 382,496 436,544 490,589 543,630 596,671 643,713 686,754 729,795 763,839 790,884 816,929 829,981 829,1038 829,1078 823,1113 811,1144 799,1174 782,1199 759,1220 736,1241 709,1256 678,1267 646,1277 611,1282 572,1282 536,1282 502,1277 471,1267 439,1257 411,1242 386,1222 361,1202 341,1177 326,1148 310,1118 300,1083 295,1044 L 111,1061 C 117,1112 131,1159 153,1204 175,1249 205,1288 244,1322 283,1355 329,1382 384,1401 438,1420 501,1430 572,1430 642,1430 704,1422 759,1405 814,1388 860,1364 898,1331 935,1298 964,1258 984,1210 1004,1162 1014,1107 1014,1044 1014,997 1006,952 989,909 972,866 949,826 921,787 892,748 859,711 822,675 785,639 746,604 705,570 664,535 623,501 582,468 541,434 502,400 466,366 429,332 397,298 368,263 339,228 317,191 301,153 L 1036,153 1036,0 103,0 Z"/>
- <glyph unicode="1" horiz-adv-x="874" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
- <glyph unicode="/" horiz-adv-x="583" d="M 0,-20 L 411,1484 569,1484 162,-20 0,-20 Z"/>
- <glyph unicode="." horiz-adv-x="186" d="M 187,0 L 187,219 382,219 382,0 187,0 Z"/>
- <glyph unicode="," horiz-adv-x="212" d="M 385,219 L 385,51 C 385,16 384,-16 381,-46 378,-74 373,-101 366,-127 359,-151 351,-175 342,-197 332,-219 320,-241 307,-262 L 184,-262 C 214,-219 237,-175 254,-131 270,-87 278,-43 278,0 L 190,0 190,219 385,219 Z"/>
- <glyph unicode=")" horiz-adv-x="557" d="M 555,528 C 555,435 548,346 534,262 520,177 498,96 468,18 438,-60 400,-136 353,-209 306,-282 251,-354 186,-424 L 12,-424 C 75,-354 129,-282 175,-209 220,-136 258,-60 287,19 316,98 338,179 353,264 367,349 374,437 374,530 374,623 367,711 353,796 338,881 316,962 287,1041 258,1119 220,1195 175,1269 129,1342 75,1414 12,1484 L 186,1484 C 251,1414 306,1342 353,1269 400,1196 438,1120 468,1042 498,964 520,883 534,798 548,713 555,625 555,532 L 555,528 Z"/>
- <glyph unicode="(" horiz-adv-x="557" d="M 127,532 C 127,625 134,713 148,798 162,883 184,964 214,1042 244,1120 282,1196 329,1269 376,1342 431,1414 496,1484 L 670,1484 C 607,1414 553,1342 508,1269 462,1195 424,1119 395,1041 366,962 344,881 330,796 315,711 308,623 308,530 308,437 315,349 330,264 344,179 366,98 395,19 424,-60 462,-136 508,-209 553,-282 607,-354 670,-424 L 496,-424 C 431,-354 376,-282 329,-209 282,-136 244,-60 214,18 184,96 162,177 148,262 134,346 127,435 127,528 L 127,532 Z"/>
- <glyph unicode=" " horiz-adv-x="556"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template(57356)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template(57354)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template(10146)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template(10132)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template(10007)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template(10004)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template(9679)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template(8226)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template(8211)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="1748" y="12039" width="19180" height="2543"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 11338,14580 L 1749,14580 1749,12040 20926,12040 20926,14580 11338,14580 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 11338,14580 L 1749,14580 1749,12040 20926,12040 20926,14580 11338,14580 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="8426" y="12673" width="5845" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 11348,14325 L 8427,14325 8427,12674 14269,12674 14269,14325 11348,14325 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 11348,14325 L 8427,14325 8427,12674 14269,12674 14269,14325 11348,14325 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="10626" y="13277"/><tspan class="TextPosition" x="10626" y="13277"><tspan fill="rgb(255,255,255)" stroke="none">.YAML</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="9340" y="14095"/><tspan class="TextPosition" x="9340" y="14095"><tspan fill="rgb(255,255,255)" stroke="none">Specification (CSIT gerrit)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="1815" y="11940" width="1553" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="2065" y="12514"/><tspan class="TextPosition" x="2065" y="12514"><tspan fill="rgb(255,255,255)" stroke="none">Data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="2026" y="12673" width="5845" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4948,14325 L 2027,14325 2027,12674 7869,12674 7869,14325 4948,14325 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 4948,14325 L 2027,14325 2027,12674 7869,12674 7869,14325 4948,14325 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="4383" y="13277"/><tspan class="TextPosition" x="4383" y="13277"><tspan fill="rgb(255,255,255)" stroke="none">.RST</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="2872" y="14095"/><tspan class="TextPosition" x="2872" y="14095"><tspan fill="rgb(255,255,255)" stroke="none">Static content (CSIT gerrit)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="14826" y="12673" width="5845" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 17748,14325 L 14827,14325 14827,12674 20669,12674 20669,14325 17748,14325 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 17748,14325 L 14827,14325 14827,12674 20669,12674 20669,14325 17748,14325 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="16485" y="13277"/><tspan class="TextPosition" x="16485" y="13277"><tspan fill="rgb(255,255,255)" stroke="none">.ZIP (.XML)</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="15750" y="14095"/><tspan class="TextPosition" x="15750" y="14095"><tspan fill="rgb(255,255,255)" stroke="none">Data to process (Jenkins)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="4289" y="8239" width="11433" height="2543"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10005,10780 L 4290,10780 4290,8240 15720,8240 15720,10780 10005,10780 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10005,10780 L 4290,10780 4290,8240 15720,8240 15720,10780 10005,10780 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="4289" y="4439" width="11433" height="2543"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10005,6980 L 4290,6980 4290,4440 15720,4440 15720,6980 10005,6980 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10005,6980 L 4290,6980 4290,4440 15720,4440 15720,6980 10005,6980 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="1749" y="639" width="13973" height="2543"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8735,3180 L 1750,3180 1750,640 15720,640 15720,3180 8735,3180 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 8735,3180 L 1750,3180 1750,640 15720,640 15720,3180 8735,3180 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="16099" y="609" width="4822" height="10173"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 18510,10780 L 16100,10780 16100,610 20919,610 20919,10780 18510,10780 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 18510,10780 L 16100,10780 16100,610 20919,610 20919,10780 18510,10780 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="4525" y="8873" width="10942" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9996,10525 L 4526,10525 4526,8874 15465,8874 15465,10525 9996,10525 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 9996,10525 L 4526,10525 4526,8874 15465,8874 15465,10525 9996,10525 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="9183" y="9477"/><tspan class="TextPosition" x="9183" y="9477"><tspan fill="rgb(255,255,255)" stroke="none">pandas</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="8393" y="9901"/><tspan class="TextPosition" x="8393" y="9901"><tspan fill="rgb(255,255,255)" stroke="none">Data model in JSON</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="6817" y="10295"/><tspan class="TextPosition" x="6817" y="10295"><tspan fill="rgb(255,255,255)" stroke="none">Specification, Input data (Pandas.Series)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="4315" y="8140" width="5437" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="4565" y="8714"/><tspan class="TextPosition" x="4565" y="8714"><tspan fill="rgb(255,255,255)" stroke="none">Data processing</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="4315" y="4340" width="5437" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="4565" y="4914"/><tspan class="TextPosition" x="4565" y="4914"><tspan fill="rgb(255,255,255)" stroke="none">Data presentation</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="4525" y="5073" width="2560" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 5805,6725 L 4526,6725 4526,5074 7083,5074 7083,6725 5805,6725 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 5805,6725 L 4526,6725 4526,5074 7083,5074 7083,6725 5805,6725 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="5252" y="5677"/><tspan class="TextPosition" x="5252" y="5677"><tspan fill="rgb(255,255,255)" stroke="none">Plots</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="4697" y="6495"/><tspan class="TextPosition" x="4697" y="6495"><tspan fill="rgb(255,255,255)" stroke="none">plot.ly → .html</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="8826" y="5073" width="2451" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10051,6725 L 8827,6725 8827,5074 11275,5074 11275,6725 10051,6725 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 10051,6725 L 8827,6725 8827,5074 11275,5074 11275,6725 10051,6725 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="9528" y="5677"/><tspan class="TextPosition" x="9528" y="5677"><tspan fill="rgb(255,255,255)" stroke="none">Files</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="9649" y="6495"/><tspan class="TextPosition" x="9649" y="6495"><tspan fill="rgb(255,255,255)" stroke="none">.RST</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="12925" y="5073" width="2560" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 14205,6725 L 12926,6725 12926,5074 15483,5074 15483,6725 14205,6725 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 14205,6725 L 12926,6725 12926,5074 15483,5074 15483,6725 14205,6725 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="13489" y="5677"/><tspan class="TextPosition" x="13489" y="5677"><tspan fill="rgb(255,255,255)" stroke="none">Tables</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="13023" y="6495"/><tspan class="TextPosition" x="13023" y="6495"><tspan fill="rgb(255,255,255)" stroke="none">Pandas → .csv</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="1715" y="540" width="5437" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="1965" y="1114"/><tspan class="TextPosition" x="1965" y="1114"><tspan fill="rgb(255,255,255)" stroke="none">Report generation</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="2003" y="1273" width="13465" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8735,2925 L 2004,2925 2004,1274 15466,1274 15466,2925 8735,2925 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 8735,2925 L 2004,2925 2004,1274 15466,1274 15466,2925 8735,2925 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="7982" y="1877"/><tspan class="TextPosition" x="7982" y="1877"><tspan fill="rgb(255,255,255)" stroke="none">Sphinx</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="6163" y="2695"/><tspan class="TextPosition" x="6163" y="2695"><tspan fill="rgb(255,255,255)" stroke="none">.html / .pdf (then stored in nexus)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="16015" y="540" width="4659" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="16265" y="1114"/><tspan class="TextPosition" x="16265" y="1114"><tspan fill="rgb(255,255,255)" stroke="none">Jenkins plots</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="16354" y="1243" width="4317" height="9284"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 18512,10525 L 16355,10525 16355,1244 20669,1244 20669,10525 18512,10525 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 18512,10525 L 16355,10525 16355,1244 20669,1244 20669,10525 18512,10525 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="17200" y="5385"/><tspan class="TextPosition" x="17200" y="5385"><tspan fill="rgb(255,255,255)" stroke="none">Jenkins plot</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="17852" y="5940"/><tspan class="TextPosition" x="17852" y="5940"><tspan fill="rgb(255,255,255)" stroke="none">plugin</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="18129" y="6758"/><tspan class="TextPosition" x="18129" y="6758"><tspan fill="rgb(255,255,255)" stroke="none">.html</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="415" y="11840" width="1303" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="665" y="12414"/><tspan class="TextPosition" x="665" y="12414"><tspan fill="rgb(0,0,0)" stroke="none">sL1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="415" y="8140" width="1303" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="665" y="8714"/><tspan class="TextPosition" x="665" y="8714"><tspan fill="rgb(0,0,0)" stroke="none">sL2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="415" y="4340" width="1303" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="665" y="4914"/><tspan class="TextPosition" x="665" y="4914"><tspan fill="rgb(0,0,0)" stroke="none">sL3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="415" y="540" width="1303" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="665" y="1114"/><tspan class="TextPosition" x="665" y="1114"><tspan fill="rgb(0,0,0)" stroke="none">sL4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="3031" y="2896" width="431" height="10007"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 3222,12548 L 3271,3439"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 3257,12528 L 3291,12537 3325,12555 3356,12579 3380,12610 3397,12645 3406,12679 3411,12714 3406,12748 3396,12784 3379,12818 3355,12847 3323,12871 3289,12888 3255,12899 3219,12902 3185,12899 3150,12887 3117,12870 3086,12846 3062,12816 3045,12782 3036,12746 3032,12712 3036,12677 3046,12643 3063,12609 3088,12578 3119,12554 3152,12537 3187,12527 3221,12523 3257,12528 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 3274,2896 L 3081,3463 3460,3466 3274,2896 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="11096" y="10516" width="411" height="2388"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 11313,12548 L 11285,11059"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 11348,12527 L 11382,12536 11416,12552 11448,12576 11473,12607 11491,12640 11501,12674 11506,12709 11502,12744 11493,12779 11477,12814 11453,12844 11422,12869 11389,12886 11355,12898 11319,12902 11285,12900 11250,12889 11216,12873 11185,12849 11160,12820 11142,12786 11132,12751 11127,12717 11131,12681 11140,12647 11156,12612 11180,12581 11210,12556 11243,12538 11278,12528 11312,12523 11348,12527 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 11275,10516 L 11096,11088 11475,11081 11275,10516 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="15000" y="10517" width="411" height="2388"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 15217,12549 L 15189,11060"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 15252,12528 L 15286,12537 15320,12553 15352,12577 15377,12608 15395,12641 15405,12675 15410,12710 15406,12745 15397,12780 15381,12815 15357,12845 15326,12870 15293,12887 15259,12899 15223,12903 15189,12901 15154,12890 15120,12874 15089,12850 15064,12821 15046,12787 15036,12752 15031,12718 15035,12682 15044,12648 15060,12613 15084,12582 15114,12557 15147,12539 15182,12529 15216,12524 15252,12528 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 15179,10517 L 15000,11089 15379,11082 15179,10517 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="18304" y="10518" width="411" height="2388"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 18521,12550 L 18493,11061"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 18556,12529 L 18590,12538 18624,12554 18656,12578 18681,12609 18699,12642 18709,12676 18714,12711 18710,12746 18701,12781 18685,12816 18661,12846 18630,12871 18597,12888 18563,12900 18527,12904 18493,12902 18458,12891 18424,12875 18393,12851 18368,12822 18350,12788 18340,12753 18335,12719 18339,12683 18348,12649 18364,12614 18388,12583 18418,12558 18451,12540 18486,12530 18520,12525 18556,12529 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 18483,10518 L 18304,11090 18683,11083 18483,10518 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="5497" y="2896" width="381" height="2414"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 5687,4955 L 5687,3439"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 5722,4934 L 5756,4944 5790,4961 5821,4985 5845,5016 5862,5051 5872,5085 5877,5120 5872,5154 5862,5190 5845,5224 5821,5254 5790,5278 5756,5295 5722,5306 5686,5309 5652,5306 5617,5295 5584,5278 5553,5254 5529,5224 5512,5190 5502,5154 5498,5120 5502,5085 5512,5051 5529,5016 5553,4985 5584,4961 5617,4944 5652,4934 5686,4930 5722,4934 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 5687,2896 L 5498,3465 5877,3465 5687,2896 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="9815" y="2896" width="381" height="2414"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 10005,4955 L 10005,3439"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 10040,4934 L 10074,4944 10108,4961 10139,4985 10163,5016 10180,5051 10190,5085 10195,5120 10190,5154 10180,5190 10163,5224 10139,5254 10108,5278 10074,5295 10040,5306 10004,5309 9970,5306 9935,5295 9902,5278 9871,5254 9847,5224 9830,5190 9820,5154 9816,5120 9820,5085 9830,5051 9847,5016 9871,4985 9902,4961 9935,4944 9970,4934 10004,4930 10040,4934 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 10005,2896 L 9816,3465 10195,3465 10005,2896 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="13999" y="2919" width="387" height="2392"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 14195,4955 L 14189,3462"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 14229,4934 L 14263,4944 14298,4961 14329,4985 14353,5016 14370,5050 14380,5084 14385,5119 14381,5153 14371,5189 14354,5223 14330,5253 14299,5277 14265,5294 14231,5306 14195,5309 14161,5306 14126,5295 14093,5278 14062,5254 14037,5224 14020,5190 14010,5155 14006,5121 14010,5086 14020,5051 14037,5017 14061,4986 14092,4962 14124,4944 14160,4934 14194,4930 14229,4934 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 14187,2919 L 14000,3488 14379,3487 14187,2919 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="6957" y="5627" width="1906" height="381"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 7311,5817 L 8319,5817"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 7332,5852 L 7322,5886 7305,5920 7281,5951 7250,5975 7215,5992 7181,6002 7146,6007 7112,6002 7076,5992 7042,5975 7012,5951 6988,5920 6971,5886 6960,5852 6957,5816 6960,5782 6971,5747 6988,5714 7012,5683 7042,5659 7076,5642 7112,5632 7146,5628 7181,5632 7215,5642 7250,5659 7281,5683 7305,5714 7322,5747 7332,5782 7336,5816 7332,5852 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 8862,5817 L 8294,5628 8294,6007 8862,5817 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="11275" y="5627" width="1779" height="381"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 12699,5817 L 11818,5817"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 12678,5782 L 12688,5748 12705,5714 12729,5683 12760,5659 12795,5642 12829,5632 12864,5628 12898,5632 12934,5642 12968,5659 12998,5683 13022,5714 13039,5748 13050,5782 13053,5818 13050,5852 13039,5887 13022,5920 12998,5951 12968,5975 12934,5992 12898,6002 12864,6007 12829,6002 12795,5992 12760,5975 12729,5951 12705,5920 12688,5887 12678,5852 12674,5818 12678,5782 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 11275,5817 L 11844,6007 11844,5628 11275,5817 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="5524" y="6706" width="381" height="2160"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 5714,7249 L 5714,8322"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 5714,6706 L 5525,7275 5904,7275 5714,6706 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 5714,8865 L 5904,8297 5525,8297 5714,8865 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="9824" y="6707" width="381" height="2160"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 10014,7250 L 10014,8323"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 10014,6707 L 9825,7276 10204,7276 10014,6707 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 10014,8866 L 10204,8298 9825,8298 10014,8866 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="14024" y="6708" width="381" height="2160"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 14214,7251 L 14214,8324"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 14214,6708 L 14025,7277 14404,7277 14214,6708 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 14214,8867 L 14404,8299 14025,8299 14214,8867 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="3115" y="11440" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="3365" y="11883"/><tspan class="TextPosition" x="3365" y="11883"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="11215" y="11440" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="11465" y="11883"/><tspan class="TextPosition" x="11465" y="11883"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="15115" y="11440" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="15365" y="11883"/><tspan class="TextPosition" x="15365" y="11883"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="18415" y="11440" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="18665" y="11883"/><tspan class="TextPosition" x="18665" y="11883"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="14115" y="3840" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="14365" y="4283"/><tspan class="TextPosition" x="14365" y="4283"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="9915" y="3840" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="10165" y="4283"/><tspan class="TextPosition" x="10165" y="4283"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="5615" y="3840" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="5865" y="4283"/><tspan class="TextPosition" x="5865" y="4283"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="6915" y="5140" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="7165" y="5583"/><tspan class="TextPosition" x="7165" y="5583"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="11115" y="5140" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="11365" y="5583"/><tspan class="TextPosition" x="11365" y="5583"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="5615" y="7640" width="2613" height="718"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="5865" y="8083"/><tspan class="TextPosition" x="5865" y="8083"><tspan fill="rgb(0,69,134)" stroke="none">Python calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="9915" y="7641" width="2613" height="718"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="10165" y="8084"/><tspan class="TextPosition" x="10165" y="8084"><tspan fill="rgb(0,69,134)" stroke="none">Python calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="12915" y="7642" width="2613" height="718"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="13165" y="8085"/><tspan class="TextPosition" x="13165" y="8085"><tspan fill="rgb(0,69,134)" stroke="none">Python calls</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/docs/report/csit_framework_documentation/pal_lld.rst b/docs/report/csit_framework_documentation/pal_lld.rst
deleted file mode 100644
index ddd4de0994..0000000000
--- a/docs/report/csit_framework_documentation/pal_lld.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../../../../../resources/tools/presentation/doc/pal_lld.rst
diff --git a/docs/report/detailed_test_results/dpdk_performance_results/index.rst b/docs/report/detailed_test_results/dpdk_performance_results/index.rst
deleted file mode 100644
index 819b5c3924..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results/index.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-DPDK Throughput
-===============
-
-.. toctree::
-
- ../dpdk_performance_results_2n_skx/index
- ../dpdk_performance_results_3n_skx/index
- ../dpdk_performance_results_2n_clx/index
- ../dpdk_performance_results_2n_zn2/index
- ../dpdk_performance_results_3n_hsw/index
- ../dpdk_performance_results_3n_tsh/index
- ../dpdk_performance_results_2n_tx2/index
-
-..
- ../dpdk_performance_results_2n_dnv/index
- ../dpdk_performance_results_3n_dnv/index
diff --git a/docs/report/detailed_test_results/dpdk_performance_results_2n_clx/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_2n_clx/index.rst
deleted file mode 100644
index 47f5adcfde..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_clx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor dpdk
- performance job 2n-clx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/dpdk_performance_results_2n_dnv/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_2n_dnv/index.rst
deleted file mode 100644
index 71202c8a6d..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor dpdk
- performance job 2n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/dpdk_performance_results_2n_skx/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_2n_skx/index.rst
deleted file mode 100644
index 405e27ff3e..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor dpdk
- performance job 2n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/dpdk_performance_results_2n_tx2/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_2n_tx2/index.rst
deleted file mode 100644
index c5f57b03b2..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_tx2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor dpdk
- performance job 2n-tx2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/dpdk_performance_results_2n_zn2/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_2n_zn2/index.rst
deleted file mode 100644
index 331a662946..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_zn2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor dpdk
- performance job 2n-zn2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/dpdk_performance_results_3n_dnv/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_3n_dnv/index.rst
deleted file mode 100644
index 0a482f7652..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_3n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor dpdk
- performance job 3n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/dpdk_performance_results_3n_hsw/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_3n_hsw/index.rst
deleted file mode 100644
index 3bdac2e3d5..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_3n_hsw/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-hsw
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor dpdk
- performance job 3n-hsw`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/dpdk_performance_results_3n_skx/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_3n_skx/index.rst
deleted file mode 100644
index e3d09eb260..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_3n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor dpdk
- performance job 3n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/dpdk_performance_results_3n_tsh/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_3n_tsh/index.rst
deleted file mode 100644
index 49bd869698..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_3n_tsh/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor dpdk
- performance job 3n-tsh`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_device_results_ubuntu/index.rst b/docs/report/detailed_test_results/vpp_device_results_ubuntu/index.rst
deleted file mode 100644
index ad0cc4f24a..0000000000
--- a/docs/report/detailed_test_results/vpp_device_results_ubuntu/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-VPP Device
-==========
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- device jobs using Ubuntu`_, ii) archived FD.io jobs test result
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results/index.rst b/docs/report/detailed_test_results/vpp_mrr_results/index.rst
deleted file mode 100644
index 2e8f3aa599..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results/index.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-VPP MRR
-=======
-
-.. note::
-
- Data sources for reported test results:
- i) `FD.io test executor vpp performance job 2n-skx`_,
- `FD.io test executor vpp performance job 3n-skx`_,
- `FD.io test executor vpp performance job 2n-clx`_,
- `FD.io test executor vpp performance job 2n-zn2`_,
- `FD.io test executor vpp performance job 3n-hsw`_,
- `FD.io test executor vpp performance job 3n-tsh`_,
- `FD.io test executor vpp performance job 2n-tx2`_,
- `FD.io test executor vpp performance job 2n-dnv`_,
- `FD.io test executor vpp performance job 3n-dnv`_,
- ii) archived FD.io jobs test results
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_2n_clx/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_2n_clx/index.rst
deleted file mode 100644
index af4e5ebd8b..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_clx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 2n-clx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_2n_dnv/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_2n_dnv/index.rst
deleted file mode 100644
index b5c164ecd7..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 2n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_2n_skx/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_2n_skx/index.rst
deleted file mode 100644
index b590f794b9..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 2n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_2n_tx2/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_2n_tx2/index.rst
deleted file mode 100644
index 8c71cbd858..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_tx2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 2n-tx2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_2n_zn2/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_2n_zn2/index.rst
deleted file mode 100644
index b89bd2f517..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_zn2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 2n-zn2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_3n_dnv/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_3n_dnv/index.rst
deleted file mode 100644
index 3afcbe106e..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_3n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 3n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_3n_hsw/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_3n_hsw/index.rst
deleted file mode 100644
index f26f891ebb..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_3n_hsw/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-hsw
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 3n-hsw`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_3n_skx/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_3n_skx/index.rst
deleted file mode 100644
index 589b91e5ea..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_3n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 3n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_3n_tsh/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_3n_tsh/index.rst
deleted file mode 100644
index f032bfd4f8..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_3n_tsh/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 3n-tsh`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results/index.rst b/docs/report/detailed_test_results/vpp_performance_results/index.rst
deleted file mode 100644
index 054b9be4dd..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results/index.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-VPP Throughput
-==============
-
-.. note::
-
- Data sources for reported test results:
- i) `FD.io test executor vpp performance job 2n-skx`_,
- `FD.io test executor vpp performance job 3n-skx`_,
- `FD.io test executor vpp performance job 2n-clx`_,
- `FD.io test executor vpp performance job 2n-zn2`_,
- `FD.io test executor vpp performance job 3n-hsw`_,
- `FD.io test executor vpp performance job 3n-tsh`_,
- `FD.io test executor vpp performance job 2n-tx2`_,
- `FD.io test executor vpp performance job 2n-dnv`_,
- `FD.io test executor vpp performance job 3n-dnv`_,
- ii) archived FD.io jobs test results
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_2n_clx/index.rst b/docs/report/detailed_test_results/vpp_performance_results_2n_clx/index.rst
deleted file mode 100644
index af4e5ebd8b..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_clx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 2n-clx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_2n_dnv/index.rst b/docs/report/detailed_test_results/vpp_performance_results_2n_dnv/index.rst
deleted file mode 100644
index b5c164ecd7..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 2n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_2n_skx/index.rst b/docs/report/detailed_test_results/vpp_performance_results_2n_skx/index.rst
deleted file mode 100644
index b590f794b9..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 2n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_2n_tx2/index.rst b/docs/report/detailed_test_results/vpp_performance_results_2n_tx2/index.rst
deleted file mode 100644
index 8c71cbd858..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_tx2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 2n-tx2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_2n_zn2/index.rst b/docs/report/detailed_test_results/vpp_performance_results_2n_zn2/index.rst
deleted file mode 100644
index b89bd2f517..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_zn2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 2n-zn2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_3n_dnv/index.rst b/docs/report/detailed_test_results/vpp_performance_results_3n_dnv/index.rst
deleted file mode 100644
index 3afcbe106e..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_3n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 3n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_3n_hsw/index.rst b/docs/report/detailed_test_results/vpp_performance_results_3n_hsw/index.rst
deleted file mode 100644
index f26f891ebb..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_3n_hsw/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-hsw
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 3n-hsw`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_3n_skx/index.rst b/docs/report/detailed_test_results/vpp_performance_results_3n_skx/index.rst
deleted file mode 100644
index 589b91e5ea..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_3n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 3n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_3n_tsh/index.rst b/docs/report/detailed_test_results/vpp_performance_results_3n_tsh/index.rst
deleted file mode 100644
index f032bfd4f8..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_3n_tsh/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test results: i) `FD.io test executor vpp
- performance job 3n-tsh`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/dpdk_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst b/docs/report/dpdk_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst
deleted file mode 100644
index ec7a9f3609..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst
+++ /dev/null
@@ -1,40 +0,0 @@
-2n-Skx vs 2n-Clx Testbeds
--------------------------
-
-Relative comparison of |dpdk-release| Testpmd and L3fwd packet
-throughput (NDR, PDR and MRR) is calculated for the same tests executed
-on 2-Node Skylake (2n-skx) and 2-Node Cascade Lake (2n-clx) physical testbed
-types, in 1-core, 2-core and 4-core configurations.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor dpdk performance job 2n-skx`_ and
- `FD.io test executor dpdk performance job 2n-clx`_
- with RF result files csit-dpdk-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-NDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII NDR comparison <../../_static/dpdk/performance-compare-testbeds-2n-skx-2n-clx-ndr.txt>`_
- - `CSV NDR comparison <../../_static/dpdk/performance-compare-testbeds-2n-skx-2n-clx-ndr.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII PDR comparison <../../_static/dpdk/performance-compare-testbeds-2n-skx-2n-clx-pdr.txt>`_
- - `CSV PDR comparison <../../_static/dpdk/performance-compare-testbeds-2n-skx-2n-clx-pdr.csv>`_
-
-..
- MRR Comparison
- ~~~~~~~~~~~~~~
-
- Comparison tables in ASCII and CSV formats:
-
- - `ASCII MRR comparison <../../_static/dpdk/performance-compare-testbeds-2n-skx-2n-clx-mrr.txt>`_
- - `CSV MRR comparison <../../_static/dpdk/performance-compare-testbeds-2n-skx-2n-clx-mrr.csv>`_
diff --git a/docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst b/docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst
deleted file mode 100644
index 2eb1e7b961..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-
-.. _dpdk_compare_topologies_3n-Skx_vs_2n-Skx:
-
-3n-Skx vs 2n-Skx Testbeds
--------------------------
-
-Relative comparison of |dpdk-release| Testpmd and L3fwd packet
-throughput (NDR, PDR and MRR) is calculated for the same tests executed
-on 3-Node Skylake (3n-skx) and 2-Node Skylake (2n-skx) physical testbed
-types, in 1-core, 2-core and 4-core configurations.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor dpdk performance job 3n-skx`_ and
- `FD.io test executor dpdk performance job 2n-skx`_
- with RF result
- files csit-dpdk-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-NDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII NDR comparison <../../_static/dpdk/performance-compare-topologies-3n-skx-2n-skx-ndr.txt>`_
- - `CSV NDR comparison <../../_static/dpdk/performance-compare-topologies-3n-skx-2n-skx-ndr.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII PDR comparison <../../_static/dpdk/performance-compare-topologies-3n-skx-2n-skx-pdr.txt>`_
- - `CSV PDR comparison <../../_static/dpdk/performance-compare-topologies-3n-skx-2n-skx-pdr.csv>`_
-
-..
- MRR Comparison
- ~~~~~~~~~~~~~~
-
- Comparison tables in ASCII and CSV formats:
-
- - `ASCII MRR comparison <../../_static/dpdk/performance-compare-testbeds-3n-hsw-3n-skx-mrr.txt>`_
- - `CSV MRR comparison <../../_static/dpdk/performance-compare-testbeds-3n-hsw-3n-skx-mrr.csv>`_
diff --git a/docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst b/docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst
deleted file mode 100644
index 8b581f91d2..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst
+++ /dev/null
@@ -1,41 +0,0 @@
-3n-Skx vs 3n-Hsw Testbeds
--------------------------
-
-Relative comparison of |dpdk-release| Testpmd and L3fwd packet
-throughput (NDR, PDR and MRR) is calculated for the same tests executed
-on 3-Node Skylake (3n-skx) and 3-Node Haswell (3n-hsw) physical testbed
-types, in 1-core, 2-core and 4-core configurations.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor dpdk performance job 3n-hsw`_ and
- `FD.io test executor dpdk performance job 3n-skx`_
- with RF result
- files csit-dpdk-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-NDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII NDR comparison <../../_static/dpdk/performance-compare-testbeds-3n-hsw-3n-skx-ndr.txt>`_
- - `CSV NDR comparison <../../_static/dpdk/performance-compare-testbeds-3n-hsw-3n-skx-ndr.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII PDR comparison <../../_static/dpdk/performance-compare-testbeds-3n-hsw-3n-skx-pdr.txt>`_
- - `CSV PDR comparison <../../_static/dpdk/performance-compare-testbeds-3n-hsw-3n-skx-pdr.csv>`_
-
-..
- MRR Comparison
- ~~~~~~~~~~~~~~
-
- Comparison tables in ASCII and CSV formats:
-
- - `ASCII MRR comparison <../../_static/dpdk/performance-compare-testbeds-3n-hsw-3n-skx-mrr.txt>`_
- - `CSV MRR comparison <../../_static/dpdk/performance-compare-testbeds-3n-hsw-3n-skx-mrr.csv>`_
diff --git a/docs/report/dpdk_performance_tests/comparisons/current_vs_previous_release.rst b/docs/report/dpdk_performance_tests/comparisons/current_vs_previous_release.rst
deleted file mode 100644
index bf59bb2bea..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/current_vs_previous_release.rst
+++ /dev/null
@@ -1,215 +0,0 @@
-
-.. _dpdk_compare_current_vs_previous_release:
-
-Current vs Previous Release
----------------------------
-
-Relative comparison of DPDK Testpmd and L3fwd packet throughput (NDR,
-PDR and MRR) between |dpdk-release| and |dpdk-release-1| (measured for
-|csit-release| and |csit-release-1| respectively) is calculated from
-results of tests running on 3-Node Intel Xeon Haswell testbeds (3n-hsw)
-in 1-core and 2-core configurations.
-
-Listed mean and standard deviation values are computed based on a series
-of the same tests executed against respective DPDK releases to verify
-test results repeatability, with percentage change calculated for mean
-values.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor dpdk performance job 3n-hsw`_,
- `FD.io test executor dpdk performance job 3n-skx`_,
- `FD.io test executor dpdk performance job 2n-skx`_,
- `FD.io test executor dpdk performance job 2n-clx`_,
- `FD.io test executor dpdk performance job 2n-zn2`_,
- `FD.io test executor dpdk performance job 3n-tsh`_,
- with RF result
- files csit-dpdk-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-3n-hsw
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c NDR comparison <../../_static/dpdk/performance-changes-3n-hsw-1t1c-ndr.txt>`_
- - `ASCII 2t2c NDR comparison <../../_static/dpdk/performance-changes-3n-hsw-2t2c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../../_static/dpdk/performance-changes-3n-hsw-1t1c-ndr.csv>`_
- - `CSV 2t2c NDR comparison <../../_static/dpdk/performance-changes-3n-hsw-2t2c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c PDR comparison <../../_static/dpdk/performance-changes-3n-hsw-1t1c-pdr.txt>`_
- - `ASCII 2t2c PDR comparison <../../_static/dpdk/performance-changes-3n-hsw-2t2c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../../_static/dpdk/performance-changes-3n-hsw-1t1c-pdr.csv>`_
- - `CSV 2t2c PDR comparison <../../_static/dpdk/performance-changes-3n-hsw-2t2c-pdr.csv>`_
-
-3n-skx
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c NDR comparison <../../_static/dpdk/performance-changes-3n-skx-2t1c-ndr.txt>`_
- - `ASCII 4t1c NDR comparison <../../_static/dpdk/performance-changes-3n-skx-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/dpdk/performance-changes-3n-skx-2t1c-ndr.csv>`_
- - `CSV 4t1c NDR comparison <../../_static/dpdk/performance-changes-3n-skx-4t2c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c PDR comparison <../../_static/dpdk/performance-changes-3n-skx-2t1c-pdr.txt>`_
- - `ASCII 4t1c PDR comparison <../../_static/dpdk/performance-changes-3n-skx-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/dpdk/performance-changes-3n-skx-2t1c-pdr.csv>`_
- - `CSV 4t1c PDR comparison <../../_static/dpdk/performance-changes-3n-skx-4t2c-pdr.csv>`_
-
-2n-skx
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-skx-2t1c-ndr.txt>`_
- - `ASCII 4t1c NDR comparison <../../_static/dpdk/performance-changes-2n-skx-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-skx-2t1c-ndr.csv>`_
- - `CSV 4t1c NDR comparison <../../_static/dpdk/performance-changes-2n-skx-4t2c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c PDR comparison <../../_static/dpdk/performance-changes-2n-skx-2t1c-pdr.txt>`_
- - `ASCII 4t1c PDR comparison <../../_static/dpdk/performance-changes-2n-skx-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/dpdk/performance-changes-2n-skx-2t1c-pdr.csv>`_
- - `CSV 4t1c PDR comparison <../../_static/dpdk/performance-changes-2n-skx-4t2c-pdr.csv>`_
-
-2n-clx
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-clx-2t1c-ndr.txt>`_
- - `ASCII 4t1c NDR comparison <../../_static/dpdk/performance-changes-2n-clx-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-clx-2t1c-ndr.csv>`_
- - `CSV 4t1c NDR comparison <../../_static/dpdk/performance-changes-2n-clx-4t2c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c PDR comparison <../../_static/dpdk/performance-changes-2n-clx-2t1c-pdr.txt>`_
- - `ASCII 4t1c PDR comparison <../../_static/dpdk/performance-changes-2n-clx-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/dpdk/performance-changes-2n-clx-2t1c-pdr.csv>`_
- - `CSV 4t1c PDR comparison <../../_static/dpdk/performance-changes-2n-clx-4t2c-pdr.csv>`_
-
-2n-zn2
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-zn2-2t1c-ndr.txt>`_
- - `ASCII 4t1c NDR comparison <../../_static/dpdk/performance-changes-2n-zn2-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-zn2-2t1c-ndr.csv>`_
- - `CSV 4t1c NDR comparison <../../_static/dpdk/performance-changes-2n-zn2-4t2c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c PDR comparison <../../_static/dpdk/performance-changes-2n-zn2-2t1c-pdr.txt>`_
- - `ASCII 4t1c PDR comparison <../../_static/dpdk/performance-changes-2n-zn2-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/dpdk/performance-changes-2n-zn2-2t1c-pdr.csv>`_
- - `CSV 4t1c PDR comparison <../../_static/dpdk/performance-changes-2n-zn2-4t2c-pdr.csv>`_
-
-..
- 2n-dnv
- ~~~~~~
-
- NDR Comparison
- ``````````````
-
- Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c NDR comparison <../../_static/dpdk/performance-changes-2n-dnv-1t1c-ndr.txt>`_
- - `ASCII 4t1c NDR comparison <../../_static/dpdk/performance-changes-2n-dnv-2t2c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../../_static/dpdk/performance-changes-2n-dnv-1t1c-ndr.csv>`_
- - `CSV 4t1c NDR comparison <../../_static/dpdk/performance-changes-2n-dnv-2t2c-ndr.csv>`_
-
- PDR Comparison
- ``````````````
-
- Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c PDR comparison <../../_static/dpdk/performance-changes-2n-dnv-1t1c-pdr.txt>`_
- - `ASCII 4t1c PDR comparison <../../_static/dpdk/performance-changes-2n-dnv-2t2c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../../_static/dpdk/performance-changes-2n-dnv-1t1c-pdr.csv>`_
- - `CSV 4t1c PDR comparison <../../_static/dpdk/performance-changes-2n-dnv-2t2c-pdr.csv>`_
-
- 3n-dnv
- ~~~~~~
-
- NDR Comparison
- ``````````````
-
- Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c NDR comparison <../../_static/dpdk/performance-changes-3n-dnv-1t1c-ndr.txt>`_
- - `ASCII 4t1c NDR comparison <../../_static/dpdk/performance-changes-3n-dnv-2t2c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../../_static/dpdk/performance-changes-3n-dnv-1t1c-ndr.csv>`_
- - `CSV 4t1c NDR comparison <../../_static/dpdk/performance-changes-3n-dnv-2t2c-ndr.csv>`_
-
- PDR Comparison
- ``````````````
-
- Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c PDR comparison <../../_static/dpdk/performance-changes-3n-dnv-1t1c-pdr.txt>`_
- - `ASCII 4t1c PDR comparison <../../_static/dpdk/performance-changes-3n-dnv-2t2c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../../_static/dpdk/performance-changes-3n-dnv-1t1c-pdr.csv>`_
- - `CSV 4t1c PDR comparison <../../_static/dpdk/performance-changes-3n-dnv-2t2c-pdr.csv>`_
-
-..
- 3n-tsh
- ~~~~~~
-
- NDR Comparison
- ``````````````
-
- Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c NDR comparison <../../_static/dpdk/performance-changes-3n-tsh-1t1c-ndr.txt>`_
- - `ASCII 4t1c NDR comparison <../../_static/dpdk/performance-changes-3n-tsh-2t2c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../../_static/dpdk/performance-changes-3n-tsh-1t1c-ndr.csv>`_
- - `CSV 4t1c NDR comparison <../../_static/dpdk/performance-changes-3n-tsh-2t2c-ndr.csv>`_
-
- PDR Comparison
- ``````````````
-
- Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c PDR comparison <../../_static/dpdk/performance-changes-3n-tsh-1t1c-pdr.txt>`_
- - `ASCII 4t1c PDR comparison <../../_static/dpdk/performance-changes-3n-tsh-2t2c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../../_static/dpdk/performance-changes-3n-tsh-1t1c-pdr.csv>`_
- - `CSV 4t1c PDR comparison <../../_static/dpdk/performance-changes-3n-tsh-2t2c-pdr.csv>`_
diff --git a/docs/report/dpdk_performance_tests/comparisons/index.rst b/docs/report/dpdk_performance_tests/comparisons/index.rst
deleted file mode 100644
index 3e0d3f932b..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/index.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Comparisons
-===========
-
-..
- // Alternative Note for 1st Bullet when bad microcode Skx, Clx results are published
- note::
- L3fwd throughput drop in the current release in comparison to previous
- releases **on Intel Xeon 2n-skx, 3n-skx and 2n-clx testbeds**: L3fwd
- performance test data shows lower performance and behaviour
- inconsistency of these systems following the recent upgrade of
- processor microcode packages (skx ucode 0x2000064, clx ucode
- 0x500002c) as part of updating Ubuntu 18.04 LTS kernel version.
- Tested VPP and DPDK applications (L3fwd) are affected. Skx and Clx
- test data will be corrected in subsequent maintenance report
- version(s) once the issue is resolved. See :ref:`vpp_known_issues`.
-
-.. toctree::
-
- current_vs_previous_release
- 2n-skx_vs_2n-clx_testbeds
- 3n-skx_vs_3n-hsw_testbeds
- 3n-skx_vs_2n-skx_testbeds
diff --git a/docs/report/dpdk_performance_tests/csit_release_notes.rst b/docs/report/dpdk_performance_tests/csit_release_notes.rst
deleted file mode 100644
index 6110dd40e5..0000000000
--- a/docs/report/dpdk_performance_tests/csit_release_notes.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-Release Notes
-=============
-
-Changes in |csit-release|
--------------------------
-
-#. DPDK PERFORMANCE TESTS
-
- - Fixed DPDK compilation on ARM systems.
-
- - **AMD 2n-zn2 testbed**: New physical testbed type installed in
- FD.io CSIT, with DPDK performance data added to this report.
-
- - **AMD 2n-tx2 testbed**: New physical testbed type installed in
- FD.io CSIT, with DPDK performance data added to this report.
-
-#. DPDK RELEASE VERSION CHANGE
-
- - |csit-release| tested |dpdk-release|, as used by |vpp-release|.
-
-.. _dpdk_known_issues:
-
-Known Issues
-------------
-
-List of known issues in |csit-release| for DPDK performance tests:
-
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| # | JiraID | Issue Description |
-+====+=========================================+===========================================================================================================+
-| 1 | `CSIT-1761 | Denverton systems in FD.io CSIT lab (2n-dnv and 3n-dnv) reports dpdk compilation error very often. |
-| | <https://jira.fd.io/browse/CSIT-1761>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 2 | `CSIT-1762 | TRex reports link DOWN in case of dpdk testpmd tests on FD.io CSIT Denverton systems (2n-dnv and 3n-dnv). |
-| | <https://jira.fd.io/browse/CSIT-1762>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
diff --git a/docs/report/dpdk_performance_tests/documentation.rst b/docs/report/dpdk_performance_tests/documentation.rst
deleted file mode 100644
index 254569dc66..0000000000
--- a/docs/report/dpdk_performance_tests/documentation.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-Documentation
-=============
-
-`CSIT DPDK Performance Tests Documentation`_ contains detailed
-functional description and input parameters for each test case.
diff --git a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_clx.rst b/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_clx.rst
deleted file mode 100644
index 6667f9539a..0000000000
--- a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_clx.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-2n-clx
-======
-
diff --git a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst b/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst
deleted file mode 100644
index 61baf8fcbf..0000000000
--- a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-2n-skx
-======
-
diff --git a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_zn2.rst b/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_zn2.rst
deleted file mode 100644
index 2f14be0030..0000000000
--- a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_zn2.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-2n-zn2
-======
-
diff --git a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_hsw.rst b/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_hsw.rst
deleted file mode 100644
index 53c253c009..0000000000
--- a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_hsw.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-3n-hsw
-======
-
diff --git a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_skx.rst b/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_skx.rst
deleted file mode 100644
index 60840bbb1e..0000000000
--- a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_skx.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-3n-skx
-======
-
diff --git a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_tsh.rst b/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_tsh.rst
deleted file mode 100644
index 7fe42625f7..0000000000
--- a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_tsh.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-3n-tsh
-======
-
diff --git a/docs/report/dpdk_performance_tests/index.rst b/docs/report/dpdk_performance_tests/index.rst
deleted file mode 100644
index 5880ee25c0..0000000000
--- a/docs/report/dpdk_performance_tests/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-DPDK Performance
-================
-
-.. toctree::
-
- overview
- csit_release_notes
- packet_throughput_graphs/index
- packet_latency/index
- comparisons/index
- throughput_trending
- test_environment
- documentation
diff --git a/docs/report/dpdk_performance_tests/overview.rst b/docs/report/dpdk_performance_tests/overview.rst
deleted file mode 100644
index 7f3e930324..0000000000
--- a/docs/report/dpdk_performance_tests/overview.rst
+++ /dev/null
@@ -1,120 +0,0 @@
-Overview
-========
-
-DPDK performance test results are reported for all physical testbed types
-present in FD.io labs and installed NIC models. For description of physical
-testbeds used for DPDK performance tests please refer to
-:ref:`tested_physical_topologies`.
-
-Logical Topologies
-------------------
-
-CSIT DPDK performance tests are executed on physical testbeds described
-in :ref:`tested_physical_topologies`. Based on the packet path through
-server SUTs, one distinct logical topology type is used for DPDK DUT
-data plane testing: NIC-to-NIC switching topology.
-
-NIC-to-NIC Switching
-~~~~~~~~~~~~~~~~~~~~
-
-The simplest logical topology for software data plane application like
-DPDK is NIC-to-NIC switching. Tested topologies for 2-Node and 3-Node
-testbeds are shown in figures below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_performance_tests/}}
- \includegraphics[width=0.90\textwidth]{logical-2n-nic2nic}
- \label{fig:logical-2n-nic2nic}
- \end{figure}
-
-.. only:: html
-
- .. figure:: ../vpp_performance_tests/logical-2n-nic2nic.svg
- :alt: logical-2n-nic2nic
- :align: center
-
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_performance_tests/}}
- \includegraphics[width=0.90\textwidth]{logical-3n-nic2nic}
- \label{fig:logical-3n-nic2nic}
- \end{figure}
-
-.. only:: html
-
- .. figure:: ../vpp_performance_tests/logical-3n-nic2nic.svg
- :alt: logical-3n-nic2nic
- :align: center
-
-Server Systems Under Test (SUT) run DPDK Testpmd or L3fwd application in
-Linux user-mode as a Device Under Test (DUT). Server Traffic Generator
-(TG) runs T-Rex application. Physical connectivity between SUTs and TG
-is provided using different drivers and NIC models that need to be
-tested for performance (packet/bandwidth throughput and latency).
-
-From SUT and DUT perspectives, all performance tests involve forwarding
-packets between two physical Ethernet ports (10GE, 25GE, 40GE, 100GE).
-In most cases both physical ports on SUT are located on the same
-NIC. The only exceptions are link bonding and 100GE tests. In the latter
-case only one port per NIC can be driven at linerate due to PCIe Gen3
-x16 slot bandwidth limiations. 100GE NICs are not supported in PCIe Gen3
-x8 slots.
-
-Note that reported DPDK DUT performance results are specific to the SUTs
-tested. SUTs with other processors than the ones used in FD.io lab are
-likely to yield different results. A good rule of thumb, that can be
-applied to estimate DPDK packet thoughput for NIC-to-NIC switching
-topology, is to expect the forwarding performance to be proportional to
-processor core frequency for the same processor architecture, assuming
-processor is the only limiting factor and all other SUT parameters are
-equivalent to FD.io CSIT environment.
-
-Performance Tests Coverage
---------------------------
-
-Performance tests measure following metrics for tested DPDK DUT
-topologies and configurations:
-
-- Packet Throughput: measured in accordance with :rfc:`2544`, using
- FD.io CSIT Multiple Loss Ratio search (MLRsearch), an optimized binary
- search algorithm, producing throughput at different Packet Loss Ratio
- (PLR) values:
-
- - Non Drop Rate (NDR): packet throughput at PLR=0%.
- - Partial Drop Rate (PDR): packet throughput at PLR=0.5%.
-
-- One-Way Packet Latency: measured at different offered packet loads:
-
- - 100% of discovered NDR throughput.
- - 100% of discovered PDR throughput.
-
-- Maximum Receive Rate (MRR): measured packet forwarding rate under the
- maximum load offered by traffic generator over a set trial duration,
- regardless of packet loss. Maximum load for specified Ethernet frame
- size is set to the bi-directional link rate.
-
-|csit-release| includes following DPDK Testpmd and L3fwd data plane
-functionality performance tested across a range of NIC drivers and NIC
-models:
-
-+-----------------------+----------------------------------------------+
-| Functionality | Description |
-+=======================+==============================================+
-| L2IntLoop | L2 Interface Loop forwarding all Ethernet |
-| | frames between two Interfaces. |
-+-----------------------+----------------------------------------------+
-| IPv4 Routed | Longest Prefix Match (LPM) L3 IPv4 |
-| Forwarding | forwarding of Ethernet frames between two |
-| | Interfaces, with two /8 prefixes in lookup |
-| | table. |
-+-----------------------+----------------------------------------------+
diff --git a/docs/report/dpdk_performance_tests/packet_latency/2n-clx-xxv710.rst b/docs/report/dpdk_performance_tests/packet_latency/2n-clx-xxv710.rst
deleted file mode 100644
index 8d62dd1010..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/2n-clx-xxv710.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_latency/2n-skx-xxv710.rst b/docs/report/dpdk_performance_tests/packet_latency/2n-skx-xxv710.rst
deleted file mode 100644
index b75406d4ac..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/2n-skx-xxv710.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_latency/2n-tx2-xl710.rst b/docs/report/dpdk_performance_tests/packet_latency/2n-tx2-xl710.rst
deleted file mode 100644
index 6cd44aa0f8..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/2n-tx2-xl710.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_latency/2n-zn2-xxv710.rst b/docs/report/dpdk_performance_tests/packet_latency/2n-zn2-xxv710.rst
deleted file mode 100644
index fab4a04161..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_latency/3n-hsw-xl710.rst b/docs/report/dpdk_performance_tests/packet_latency/3n-hsw-xl710.rst
deleted file mode 100644
index c17472aaef..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/3n-hsw-xl710.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_latency/3n-skx-xxv710.rst b/docs/report/dpdk_performance_tests/packet_latency/3n-skx-xxv710.rst
deleted file mode 100644
index ff7ac1c77f..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/3n-skx-xxv710.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_latency/3n-tsh-x520.rst b/docs/report/dpdk_performance_tests/packet_latency/3n-tsh-x520.rst
deleted file mode 100644
index f70659731c..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/3n-tsh-x520.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-testpmd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-testpmd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-testpmd}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-testpmd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-l3fwd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-l3fwd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-l3fwd}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-l3fwd}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_latency/index.rst b/docs/report/dpdk_performance_tests/packet_latency/index.rst
deleted file mode 100644
index 655773c8cf..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/index.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Packet Latency
-==============
-
-DPDK Testpmd and L3fwd latency results are generated based on the test
-data obtained from |csit-release| NDR-PDR throughput tests executed
-across physical testbeds hosted in LF FD.io labs: 3n-hsw, 3n-skx, 2n-
-skx, 2n-clx, 3n-dnv, 2n-dnv, 3n-tsh, 2n-tx2.
-
-Latency by percentile distribution plots are used to show packet latency
-percentiles at different packet rate load levels: i) No-Load latency
-streams only, ii) Low-Load at 10% PDR, iii) Mid-Load at 50% PDR and iv)
-High-Load at 90% PDR.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested DUT packet path.
-
-#. **X-axis Labels**: percentile of packets.
-
-#. **Y-axis Labels**: measured one-way packet latency values in [uSec].
-
-#. **Graph Legend**: list of latency tests at different packet rate load
- level.
-
-#. **Hover Information**: packet rate load level, stream direction
- (East-West, West-East), percentile, one-way latency.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor dpdk performance job 2n-skx`_,
- `FD.io test executor dpdk performance job 2n-clx`_,
- `FD.io test executor dpdk performance job 3n-skx`_,
- `FD.io test executor dpdk performance job 2n-zn2`_,
- `FD.io test executor dpdk performance job 3n-hsw`_,
- `FD.io test executor dpdk performance job 3n-tsh`_ and
- `FD.io test executor dpdk performance job 2n-tx2`_ with RF
- result files csit-dpdk-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. toctree::
- :maxdepth: 3
-
- 2n-skx-xxv710
- 3n-skx-xxv710
- 2n-clx-xxv710
- 2n-zn2-xxv710
- 3n-hsw-xl710
- 3n-tsh-x520
- 2n-tx2-xl710
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-clx-x710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-clx-x710.rst
deleted file mode 100644
index 21b3ddb2ed..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-clx-x710.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-x710
-~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-clx-x710-64b-2t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-2t1c-base-ndr}
- \label{fig:2n-clx-x710-64b-2t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-clx-x710-64b-2t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-2t1c-base-pdr}
- \label{fig:2n-clx-x710-64b-2t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-4t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-clx-x710-64b-4t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-4t2c-base-ndr}
- \label{fig:2n-clx-x710-64b-4t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-clx-x710-64b-4t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-4t2c-base-pdr}
- \label{fig:2n-clx-x710-64b-4t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-clx-xxv710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-clx-xxv710.rst
deleted file mode 100644
index dd206abcb7..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-clx-xxv710.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-clx-xxv710-64b-2t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-base-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-clx-xxv710-64b-2t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-base-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-4t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-clx-xxv710-64b-4t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-4t2c-base-ndr}
- \label{fig:2n-clx-xxv710-64b-4t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-clx-xxv710-64b-4t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-4t2c-base-pdr}
- \label{fig:2n-clx-xxv710-64b-4t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-dnv-x553.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-dnv-x553.rst
deleted file mode 100644
index 1dc54f283e..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-dnv-x553.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-dnv-x553
-~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-dnv-x553-64b-1t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-1t1c-base-ndr}
- \label{fig:2n-dnv-x553-64b-1t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-dnv-x553-64b-1t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-1t1c-base-pdr}
- \label{fig:2n-dnv-x553-64b-1t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-dnv-x553-64b-2t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-2t2c-base-ndr}
- \label{fig:2n-dnv-x553-64b-2t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-dnv-x553-64b-2t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-2t2c-base-pdr}
- \label{fig:2n-dnv-x553-64b-2t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-skx-x710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-skx-x710.rst
deleted file mode 100644
index 228a9d8747..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-skx-x710.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-x710
-~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-skx-x710-64b-2t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-2t1c-base-ndr}
- \label{fig:2n-skx-x710-64b-2t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-skx-x710-64b-2t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-2t1c-base-pdr}
- \label{fig:2n-skx-x710-64b-2t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-4t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-skx-x710-64b-4t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-4t2c-base-ndr}
- \label{fig:2n-skx-x710-64b-4t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-skx-x710-64b-4t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-4t2c-base-pdr}
- \label{fig:2n-skx-x710-64b-4t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-skx-xxv710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-skx-xxv710.rst
deleted file mode 100644
index 9150161d33..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-skx-xxv710.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-skx-xxv710-64b-2t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-base-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-skx-xxv710-64b-2t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-base-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-4t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-skx-xxv710-64b-4t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-4t2c-base-ndr}
- \label{fig:2n-skx-xxv710-64b-4t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-skx-xxv710-64b-4t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-4t2c-base-pdr}
- \label{fig:2n-skx-xxv710-64b-4t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-tx2-xl710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-tx2-xl710.rst
deleted file mode 100644
index 842028b367..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-tx2-xl710.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-tx2-xl710-64b-1t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-base-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-tx2-xl710-64b-1t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-base-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-tx2-xl710-64b-2t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-2t2c-base-ndr}
- \label{fig:2n-tx2-xl710-64b-2t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-tx2-xl710-64b-2t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-2t2c-base-pdr}
- \label{fig:2n-tx2-xl710-64b-2t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-x710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-x710.rst
deleted file mode 100644
index 55301f6c67..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-x710.rst
+++ /dev/null
@@ -1,127 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-x710
-~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-zn2-x710-64b-2t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-2t1c-base-ndr}
- \label{fig:2n-zn2-x710-64b-2t1c-base-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-zn2-x710-64b-2t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-2t1c-base-pdr}
- \label{fig:2n-zn2-x710-64b-2t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-4t2c-base
--------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-zn2-x710-64b-4t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-4t2c-base-ndr}
- \label{fig:2n-zn2-x710-64b-4t2c-base-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-zn2-x710-64b-4t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-4t2c-base-pdr}
- \label{fig:2n-zn2-x710-64b-4t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-xxv710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-xxv710.rst
deleted file mode 100644
index 3f6f009c9f..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,127 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-zn2-xxv710-64b-2t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-base-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-base-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-zn2-xxv710-64b-2t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-base-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-4t2c-base
--------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-zn2-xxv710-64b-4t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-4t2c-base-ndr}
- \label{fig:2n-zn2-xxv710-64b-4t2c-base-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-zn2-xxv710-64b-4t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-4t2c-base-pdr}
- \label{fig:2n-zn2-xxv710-64b-4t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-dnv-x553.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-dnv-x553.rst
deleted file mode 100644
index 568c2376de..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-dnv-x553.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-dnv-x553-64b-1t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-1t1c-base-ndr}
- \label{fig:3n-dnv-x553-64b-1t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-dnv-x553-64b-1t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-1t1c-base-pdr}
- \label{fig:3n-dnv-x553-64b-1t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-dnv-x553-64b-2t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-2t2c-base-ndr}
- \label{fig:3n-dnv-x553-64b-2t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-dnv-x553-64b-2t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-2t2c-base-pdr}
- \label{fig:3n-dnv-x553-64b-2t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-hsw-x710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-hsw-x710.rst
deleted file mode 100644
index d6deceb430..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-hsw-x710.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-hsw-x710
-~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-hsw-x710-64b-1t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-x710-64b-1t1c-base-ndr}
- \label{fig:3n-hsw-x710-64b-1t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-hsw-x710-64b-1t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-x710-64b-1t1c-base-pdr}
- \label{fig:3n-hsw-x710-64b-1t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-hsw-x710-64b-2t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-x710-64b-2t2c-base-ndr}
- \label{fig:3n-hsw-x710-64b-2t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-hsw-x710-64b-2t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-x710-64b-2t2c-base-pdr}
- \label{fig:3n-hsw-x710-64b-2t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-hsw-xl710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-hsw-xl710.rst
deleted file mode 100644
index 60c6ca8968..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-hsw-xl710.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-hsw-xl710-64b-1t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-base-ndr}
- \label{fig:3n-hsw-xl710-64b-1t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-hsw-xl710-64b-1t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-base-pdr}
- \label{fig:3n-hsw-xl710-64b-1t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-hsw-xl710-64b-2t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-2t2c-base-ndr}
- \label{fig:3n-hsw-xl710-64b-2t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-hsw-xl710-64b-2t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-2t2c-base-pdr}
- \label{fig:3n-hsw-xl710-64b-2t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-skx-x710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-skx-x710.rst
deleted file mode 100644
index 3bb6bef58d..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-skx-x710.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-x710
-~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-skx-x710-64b-2t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-2t1c-base-ndr}
- \label{fig:3n-skx-x710-64b-2t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-skx-x710-64b-2t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-2t1c-base-pdr}
- \label{fig:3n-skx-x710-64b-2t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-4t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-skx-x710-64b-4t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-4t2c-base-ndr}
- \label{fig:3n-skx-x710-64b-4t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-skx-x710-64b-4t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-4t2c-base-pdr}
- \label{fig:3n-skx-x710-64b-4t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-skx-xxv710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-skx-xxv710.rst
deleted file mode 100644
index 2e6acb3a89..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-skx-xxv710.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-skx-xxv710-64b-2t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-base-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-skx-xxv710-64b-2t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-base-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-4t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-skx-xxv710-64b-4t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-4t2c-base-ndr}
- \label{fig:3n-skx-xxv710-64b-4t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-skx-xxv710-64b-4t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-4t2c-base-pdr}
- \label{fig:3n-skx-xxv710-64b-4t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-tsh-x520.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-tsh-x520.rst
deleted file mode 100644
index 9565fb0884..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-tsh-x520.rst
+++ /dev/null
@@ -1,125 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-Following sections include summary graphs of Phy-to-Phy performance with
-packet routed forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/dpdk/perf?h=rls2101>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-tsh-x520-64b-1t1c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-base-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-tsh-x520-64b-1t1c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-base-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t2c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-tsh-x520-64b-2t2c-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-2t2c-base-ndr}
- \label{fig:3n-tsh-x520-64b-2t2c-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-tsh-x520-64b-2t2c-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/dpdk/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-2t2c-base-pdr}
- \label{fig:3n-tsh-x520-64b-2t2c-base-pdr}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_throughput_graphs/index.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/index.rst
deleted file mode 100644
index a2ffba9b5a..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/index.rst
+++ /dev/null
@@ -1,80 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Packet Throughput
-=================
-
-Throughput graphs are generated by multiple executions of the same
-performance tests across physical testbeds hosted LF FD.io labs: 3n-hsw,
-2n-skx, 3n-skx, 2n-clx. Box-and-Whisker plots are used to display variations in
-measured throughput values, without making any assumptions of the
-underlying statistical distribution.
-
-For each test case, Box-and-Whisker plots show the quartiles (Min, 1st
-quartile / 25th percentile, 2nd quartile / 50th percentile / mean, 3rd
-quartile / 75th percentile, Max) across collected data set. Outliers are
-plotted as individual points.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested packet path, testbed topology,
- processor model, NIC model, packet size, number of cores and
- threads used by data plane workers and indication of DPDK DUT
- configuration.
-
-#. **X-axis Labels**: indices of individual test suites as listed in
- Graph Legend.
-
-#. **Y-axis Labels**: measured Packets Per Second [pps] throughput
- values.
-
-#. **Graph Legend**: lists X-axis indices with associated CSIT test
- suites executed to generate graphed test results.
-
-#. **Hover Information**: lists minimum, first quartile, median,
- third quartile, and maximum. If either type of outlier is present the
- whisker on the appropriate side is taken to 1.5×IQR from the quartile
- (the "inner fence") rather than the max or min, and individual outlying
- data points are displayed as unfilled circles (for suspected outliers)
- or filled circles (for outliers). (The "outer fence" is 3×IQR from the
- quartile.)
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor dpdk performance job 2n-skx`_,
- `FD.io test executor dpdk performance job 3n-skx`_,
- `FD.io test executor dpdk performance job 2n-clx`_,
- `FD.io test executor dpdk performance job 2n-zn2`_,
- `FD.io test executor dpdk performance job 3n-hsw`_,
- `FD.io test executor dpdk performance job 3n-tsh`_,
- `FD.io test executor dpdk performance job 2n-tx2`_,
- `FD.io test executor dpdk performance job 2n-dnv`_ and
- `FD.io test executor dpdk performance job 3n-dnv`_ with RF
- result files csit-dpdk-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
- Required per test case data set size is **10** and for DPDK tests
- this is the actual size, as all scheduled test executions completed
- successfully.
-
-.. toctree::
- :maxdepth: 3
-
- 2n-skx-xxv710
- 2n-skx-x710
- 3n-skx-xxv710
- 3n-skx-x710
- 2n-clx-xxv710
- 2n-clx-x710
- 2n-zn2-xxv710
- 2n-zn2-x710
- 3n-hsw-xl710
- 3n-hsw-x710
- 3n-tsh-x520
- 2n-tx2-xl710
-
-..
- 2n-dnv-x553
- 3n-dnv-x553
diff --git a/docs/report/dpdk_performance_tests/test_environment.rst b/docs/report/dpdk_performance_tests/test_environment.rst
deleted file mode 100644
index 194b28ed58..0000000000
--- a/docs/report/dpdk_performance_tests/test_environment.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _dpdk_test_environment:
-
-.. include:: ../introduction/test_environment_intro.rst
-
-.. include:: ../introduction/test_environment_sut_conf_1.rst
-
-
-DUT Settings - DPDK
--------------------
-
-DPDK Version
-~~~~~~~~~~~~
-
-|dpdk-release|
-
-DPDK Compile Parameters
-~~~~~~~~~~~~~~~~~~~~~~~
-
-.. code-block:: bash
-
- make install T=<arch>-<machine>-linuxapp-gcc -j
-
-Testpmd Startup Configuration
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Testpmd startup configuration changes per test case with different settings for
-`$$INT`, `$$CORES`, `$$RXQ`, `$$RXD` and max-pkt-len parameter if test is
-sending jumbo frames. Startup command template:
-
-.. code-block:: bash
-
- testpmd -v -l $$CORE_LIST -w $$INT1 -w $$INT2 --master-lcore 0 --in-memory -- --forward-mode=io --burst=64 --txd=$$TXD --rxd=$$RXD --txq=$$TXQ --rxq=$$RXQ --tx-offloads=0x0 --numa --auto-start --total-num-mbufs=16384 --nb-ports=2 --portmask=0x3 --disable-link-check --max-pkt-len=$$PKT_LEN [--mbuf-size=16384] --nb-cores=$$CORES
-
-L3FWD Startup Configuration
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-L3FWD startup configuration changes per test case with different settings for
-`$$INT`, `$$CORES` and enable-jumbo parameter if test is sending jumbo frames.
-Startup command template:
-
-.. code-block:: bash
-
- l3fwd -v -l $$CORE_LIST -w $$INT1 -w $$INT2 --master-lcore 0 --in-memory -- --parse-ptype --eth-dest="0,${adj_mac0}" --eth-dest="1,${adj_mac1}" --config="${port_config}" [--enable-jumbo] -P -L -p 0x3
-
-.. include:: ../introduction/test_environment_tg.rst
-
-.. include:: ../introduction/test_environment_pre_test_server_calib.rst
-
-.. include:: ../introduction/test_environment_sut_calib_skx.rst
-
-.. include:: ../introduction/test_environment_sut_calib_clx.rst
-
-.. include:: ../introduction/test_environment_sut_calib_hsw.rst
-
-.. include:: ../introduction/test_environment_sut_calib_dnv.rst
-
-.. include:: ../introduction/test_environment_sut_calib_tsh.rst
-
-.. include:: ../introduction/test_environment_sut_calib_tx2.rst
diff --git a/docs/report/dpdk_performance_tests/throughput_trending.rst b/docs/report/dpdk_performance_tests/throughput_trending.rst
deleted file mode 100644
index 81d4d6db60..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_trending.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-Throughput Trending
--------------------
-
-In addition to reporting throughput comparison between DPDK releases,
-CSIT provides regular performance trending for DPDK release branches:
-
-#. `Performance Dashboard <https://docs.fd.io/csit/master/trending/introduction/index.html>`_:
- per DPDK test case throughput trend, trend compliance and summary of
- detected anomalies.
-
-#. `Trending Methodology <https://docs.fd.io/csit/master/trending/methodology/index.html>`_:
- throughput test metrics, trend calculations and anomaly
- classification (progression, regression).
-
-#. `DPDK Trendline Graphs <https://docs.fd.io/csit/master/trending/trending/dpdk.html>`_:
- weekly DPDK Testpmd and L3fwd MRR throughput measurements against
- the trendline with anomaly highlights and associated CSIT test jobs. \ No newline at end of file
diff --git a/docs/report/index.html.template b/docs/report/index.html.template
deleted file mode 100644
index f5e79ebab3..0000000000
--- a/docs/report/index.html.template
+++ /dev/null
@@ -1,86 +0,0 @@
-CSIT-2101
-=========
-
-.. toctree::
- :maxdepth: 2
- :caption: Introduction
-
- introduction/report_history
- introduction/introduction
- introduction/test_scenarios_overview
- introduction/physical_testbeds
- introduction/methodology
-
-.. toctree::
- :maxdepth: 2
- :caption: VPP Performance
-
- vpp_performance_tests/overview
- vpp_performance_tests/csit_release_notes
- vpp_performance_tests/packet_throughput_graphs/index
- vpp_performance_tests/throughput_speedup_multi_core/index
- vpp_performance_tests/packet_latency/index
- vpp_performance_tests/soak_tests/index
- vpp_performance_tests/nf_service_density/index
- vpp_performance_tests/hoststack_testing/index
- vpp_performance_tests/comparisons/index
- vpp_performance_tests/throughput_trending
- vpp_performance_tests/test_environment
- vpp_performance_tests/documentation/index
-
-..
- vpp_performance_tests/reconf_tests/index
-
-.. toctree::
- :maxdepth: 2
- :caption: DPDK Performance
-
- dpdk_performance_tests/overview
- dpdk_performance_tests/csit_release_notes
- dpdk_performance_tests/packet_throughput_graphs/index
- dpdk_performance_tests/packet_latency/index
- dpdk_performance_tests/comparisons/index
- dpdk_performance_tests/throughput_trending
- dpdk_performance_tests/test_environment
- dpdk_performance_tests/documentation
-
-.. toctree::
- :maxdepth: 2
- :caption: VPP Device
-
- vpp_device_tests/overview
- vpp_device_tests/csit_release_notes
- vpp_device_tests/test_environment
- vpp_device_tests/documentation
-
-.. toctree::
- :maxdepth: 2
- :caption: Detailed Results
-
- detailed_test_results/vpp_performance_results/index
- detailed_test_results/vpp_mrr_results/index
- detailed_test_results/dpdk_performance_results/index
- detailed_test_results/vpp_device_results_ubuntu/index
-
-.. toctree::
- :maxdepth: 2
- :caption: Test Configuration
-
- test_configuration/vpp_performance_configuration/index
- test_configuration/vpp_mrr_configuration/index
- test_configuration/vpp_device_configuration_ubuntu/index
-
-.. toctree::
- :maxdepth: 2
- :caption: Test Operational Data
-
- test_operational_data/vpp_performance_operational_data/index
-
-.. toctree::
- :maxdepth: 2
- :caption: CSIT Framework Documentation
-
- csit_framework_documentation/csit_design
- csit_framework_documentation/csit_test_naming
- csit_framework_documentation/pal_lld
- csit_framework_documentation/csit_tag_description
diff --git a/docs/report/index.pdf.template b/docs/report/index.pdf.template
deleted file mode 100644
index 029eaece81..0000000000
--- a/docs/report/index.pdf.template
+++ /dev/null
@@ -1,11 +0,0 @@
-CSIT-2101
-=========
-
-.. toctree::
- :numbered:
-
- introduction/index
- vpp_performance_tests/index
- dpdk_performance_tests/index
- vpp_device_tests/index
- csit_framework_documentation/index
diff --git a/docs/report/introduction/index.rst b/docs/report/introduction/index.rst
deleted file mode 100644
index 81a7dc3c49..0000000000
--- a/docs/report/introduction/index.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Introduction
-============
-
-.. toctree::
-
- report_history
- introduction
- test_scenarios_overview
- physical_testbeds
- methodology
diff --git a/docs/report/introduction/introduction.rst b/docs/report/introduction/introduction.rst
deleted file mode 100644
index a1d2885b0d..0000000000
--- a/docs/report/introduction/introduction.rst
+++ /dev/null
@@ -1,105 +0,0 @@
-Report Structure
-================
-
-FD.io |csit-release| report contains system performance and functional
-testing data of |vpp-release|. `PDF version of this report`_ is
-available for download.
-
-|csit-release| report is structured as follows:
-
-#. INTRODUCTION: General introduction to FD.io |csit-release|.
-
- - **Introduction**: This section.
- - **Test Scenarios Overview**: A brief overview of test scenarios
- covered in this report.
- - **Physical Testbeds**: Description of physical testbeds.
- - **Test Methodology**: Performance benchmarking and functional test
- methodologies.
-
-#. VPP PERFORMANCE: VPP performance tests executed in physical
- FD.io testbeds.
-
- - **Overview**: Tested logical topologies, test coverage and naming
- specifics.
- - **Release Notes**: Changes in |csit-release|, added tests,
- environment or methodology changes, known issues.
- - **Packet Throughput**: NDR, PDR throughput graphs based on results
- from repeated same test job executions to verify repeatibility of
- measurements.
- - **Speedup Multi-Core**: NDR, PDR throughput multi-core speedup
- graphs based on results from test job executions.
- - **Packet Latency**: Latency graphs based on results from test job
- executions.
- - **Soak Tests**: Long duration soak tests are executed using PLRsearch
- algorithm.
- - **NFV Service Density**: Network Function Virtualization (NFV) service
- density tests focus on measuring total per server throughput at varied NFV
- service "packing" densities with vswitch providing host dataplane.
- - **Comparisons**: Performance comparisons between VPP releases and
- between different testbed types.
- - **Throughput Trending**: References to continuous VPP performance
- trending.
- - **Test Environment**: Performance test environment configuration.
- - **Documentation**: Pointers to CSIT source code documentation for VPP
- performance tests.
-
-#. DPDK PERFORMANCE: DPDK performance tests executed in physical
- FD.io testbeds.
-
- - **Overview**: Tested logical topologies, test coverage.
- - **Release Notes**: Changes in |csit-release|, known issues.
- - **Packet Throughput**: NDR, PDR throughput graphs based on results
- from repeated same test job executions to verify repeatibility of
- measurements.
- - **Packet Latency**: Latency graphs based on results from test job
- executions.
- - **Comparisons**: Performance comparisons between DPDK releases and
- between different testbed types.
- - **Throughput Trending**: References to regular DPDK performance
- trending.
- - **Test Environment**: Performance test environment configuration.
- - **Documentation**: Pointers to CSIT source code documentation for
- DPDK performance tests.
-
-#. VPP DEVICE: VPP functional tests executed in physical FD.io
- testbeds using containers.
-
- - **Overview**: Tested virtual topologies, test coverage and naming
- specifics;
- - **Release Notes**: Changes in |csit-release|, added tests,
- environment or methodology changes, known issues.
- - **Integration Tests**: Functional test environment configuration.
- - **Documentation**: Pointers to CSIT source code documentation for
- VPP functional tests.
-
-#. DETAILED RESULTS: Detailed result tables auto-generated from CSIT
- test job executions using RF (Robot Framework) output files as
- sources.
-
- - **VPP Performance NDR/PDR**: VPP NDR/PDR throughput and latency.
- - **VPP Performance MRR**: VPP MRR throughput.
- - **DPDK Performance**: DPDK Testpmd and L3fwd NDR/PDR throughput
- and latency.
-
-#. TEST CONFIGURATION: VPP DUT configuration data based on VPP API
- Test (VAT) Commands History auto-generated from CSIT test job
- executions using RF output files as sources.
-
- - **VPP Performance NDR/PDR**: Configuration data.
- - **VPP Performance MRR**: Configuration data.
-
-#. TEST OPERATIONAL DATA: VPP DUT operational data auto-generated
- from CSIT test job executions using RFoutput files as sources.
-
- - **VPP Performance NDR/PDR**: VPP `show run` outputs under test
- load.
-
-#. CSIT FRAMEWORK DOCUMENTATION: Description of the overall FD.io
- CSIT framework.
-
- - **Design**: Framework modular design hierarchy.
- - **Test naming**: Test naming convention.
- - **Presentation and Analytics Layer**: Description of PAL CSIT
- analytics module.
- - **CSIT RF Tags Descriptions**: CSIT RF Tags used for test suite and
- test case grouping and selection.
diff --git a/docs/report/introduction/methodology.rst b/docs/report/introduction/methodology.rst
deleted file mode 100644
index 6044063f36..0000000000
--- a/docs/report/introduction/methodology.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-
-.. _test_methodology:
-
-Test Methodology
-================
-
-.. toctree::
-
- methodology_terminology
- methodology_vpp_forwarding_modes
- methodology_data_plane_throughput/index
- methodology_trex_traffic_generator
- methodology_dut_state
- methodology_nat44
- methodology_tunnel_encapsulations
- methodology_ipsec
- methodology_acls
- methodology_packet_latency
- methodology_multi_core_speedup
- methodology_hoststack_testing/index
- methodology_reconf
- methodology_vpp_startup_settings
- methodology_kvm_vms_vhost_user
- methodology_lxc_drc_container_memif
- methodology_nfv_service_density
- methodology_vpp_device_functional
diff --git a/docs/report/introduction/methodology_acls.rst b/docs/report/introduction/methodology_acls.rst
deleted file mode 100644
index 512532fead..0000000000
--- a/docs/report/introduction/methodology_acls.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-Access Control Lists
---------------------
-
-VPP is tested in a number of data plane feature configurations across
-different forwarding modes. Following sections list features tested.
-
-ACL Security-Groups
-~~~~~~~~~~~~~~~~~~~
-
-Both stateless and stateful access control lists (ACL), also known as
-security-groups, are supported by VPP.
-
-Following ACL configurations are tested for MAC switching with L2
-bridge-domains:
-
-- *l2bdbasemaclrn-iacl{E}sl-{F}flows*: Input stateless ACL, with {E}
- entries and {F} flows.
-- *l2bdbasemaclrn-oacl{E}sl-{F}flows*: Output stateless ACL, with {E}
- entries and {F} flows.
-- *l2bdbasemaclrn-iacl{E}sf-{F}flows*: Input stateful ACL, with {E}
- entries and {F} flows.
-- *l2bdbasemaclrn-oacl{E}sf-{F}flows*: Output stateful ACL, with {E}
- entries and {F} flows.
-
-Following ACL configurations are tested with IPv4 routing:
-
-- *ip4base-iacl{E}sl-{F}flows*: Input stateless ACL, with {E} entries
- and {F} flows.
-- *ip4base-oacl{E}sl-{F}flows*: Output stateless ACL, with {E} entries
- and {F} flows.
-- *ip4base-iacl{E}sf-{F}flows*: Input stateful ACL, with {E} entries and
- {F} flows.
-- *ip4base-oacl{E}sf-{F}flows*: Output stateful ACL, with {E} entries
- and {F} flows.
-
-ACL tests are executed with the following combinations of ACL entries
-and number of flows:
-
-- ACL entry definitions
-
- - flow non-matching deny entry: (src-ip4, dst-ip4, src-port, dst-port).
- - flow matching permit ACL entry: (src-ip4, dst-ip4).
-
-- {E} - number of non-matching deny ACL entries, {E} = [1, 10, 50].
-- {F} - number of UDP flows with different tuple (src-ip4, dst-ip4,
- src-port, dst-port), {F} = [100, 10k, 100k].
-- All {E}x{F} combinations are tested per ACL type, total of 9.
-
-ACL MAC-IP
-~~~~~~~~~~
-
-MAC-IP binding ACLs are tested for MAC switching with L2 bridge-domains:
-
-- *l2bdbasemaclrn-macip-iacl{E}sl-{F}flows*: Input stateless ACL, with
- {E} entries and {F} flows.
-
-MAC-IP ACL tests are executed with the following combinations of ACL
-entries and number of flows:
-
-- ACL entry definitions
-
- - flow non-matching deny entry: (dst-ip4, dst-mac, bit-mask)
- - flow matching permit ACL entry: (dst-ip4, dst-mac, bit-mask)
-
-- {E} - number of non-matching deny ACL entries, {E} = [1, 10, 50]
-- {F} - number of UDP flows with different tuple (dst-ip4, dst-mac),
- {F} = [100, 10k, 100k]
-- All {E}x{F} combinations are tested per ACL type, total of 9.
diff --git a/docs/report/introduction/methodology_data_plane_throughput/index.rst b/docs/report/introduction/methodology_data_plane_throughput/index.rst
deleted file mode 100644
index 487d300b5b..0000000000
--- a/docs/report/introduction/methodology_data_plane_throughput/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Data Plane Throughput
-=====================
-
-.. toctree::
-
- methodology_data_plane_throughput
- methodology_mlrsearch_tests
- methodology_mrr_throughput
- methodology_plrsearch
diff --git a/docs/report/introduction/methodology_data_plane_throughput/methodology_data_plane_throughput.rst b/docs/report/introduction/methodology_data_plane_throughput/methodology_data_plane_throughput.rst
deleted file mode 100644
index 00dcb0b40e..0000000000
--- a/docs/report/introduction/methodology_data_plane_throughput/methodology_data_plane_throughput.rst
+++ /dev/null
@@ -1,145 +0,0 @@
-.. _data_plane_throughput:
-
-Data Plane Throughput Tests
----------------------------
-
-Network data plane throughput is measured using multiple test methods in
-order to obtain representative and repeatable results across the large
-set of performance test cases implemented and executed within CSIT.
-
-Following throughput test methods are used:
-
-- MLRsearch - Multiple Loss Ratio search
-- MRR - Maximum Receive Rate
-- PLRsearch - Probabilistic Loss Ratio search
-
-..
- TODO: Add RECONF.
-
-Description of each test method is followed by generic test properties
-shared by all methods.
-
-MLRsearch Tests
-^^^^^^^^^^^^^^^
-
-Description
-~~~~~~~~~~~
-
-Multiple Loss Ratio search (MLRsearch) tests discover multiple packet
-throughput rates in a single search, reducing the overall test execution
-time compared to a binary search. Each rate is associated with a
-distinct Packet Loss Ratio (PLR) criteria. In FD.io CSIT two throughput
-rates are discovered: Non-Drop Rate (NDR, with zero packet loss, PLR=0)
-and Partial Drop Rate (PDR, with PLR<0.5%). MLRsearch is compliant with
-:rfc:`2544`.
-
-Usage
-~~~~~
-
-MLRsearch tests are run to discover NDR and PDR rates for each VPP and
-DPDK release covered by CSIT report. Results for small frame sizes
-(64b/78B, IMIX) are presented in packet throughput graphs
-(Box-and-Whisker Plots) with NDR and PDR rates plotted against the test
-cases covering popular VPP packet paths.
-
-Each test is executed at least 10 times to verify measurements
-repeatability and results are compared between releases and test
-environments. NDR and PDR packet and bandwidth throughput results for
-all frame sizes and for all tests are presented in detailed results
-tables.
-
-Details
-~~~~~~~
-
-See :ref:`mlrsearch_algorithm` section for more detail. MLRsearch is
-being standardized in IETF in `draft-vpolak-mkonstan-mlrsearch
-<https://tools.ietf.org/html/draft-vpolak-mkonstan-bmwg-mlrsearch>`_.
-
-MRR Tests
-^^^^^^^^^
-
-Description
-~~~~~~~~~~~
-
-Maximum Receive Rate (MRR) tests are complementary to MLRsearch tests,
-as they provide a maximum “raw” throughput benchmark for development and
-testing community.
-
-MRR tests measure the packet forwarding rate under the maximum load
-offered by traffic generator (dependent on link type and NIC model) over
-a set trial duration, regardless of packet loss. Maximum load for
-specified Ethernet frame size is set to the bi-directional link rate.
-
-Usage
-~~~~~
-
-MRR tests are much faster than MLRsearch as they rely on a single trial
-or a small set of trials with very short duration. It is this property
-that makes them suitable for continuous execution in daily performance
-trending jobs enabling detection of performance anomalies (regressions,
-progressions) resulting from data plane code changes.
-
-MRR tests are also used for VPP per patch performance jobs verifying
-patch performance vs parent. CSIT reports include MRR throughput
-comparisons between releases and test environments. Small frame sizes
-only (64b/78B, IMIX).
-
-Details
-~~~~~~~
-
-See :ref:`mrr_throughput` section for more detail about MRR tests
-configuration.
-
-FD.io CSIT performance dashboard includes complete description of
-`daily performance trending tests
-<https://docs.fd.io/csit/master/trending/methodology/performance_tests.html>`_
-and `VPP per patch tests
-<https://docs.fd.io/csit/master/trending/methodology/perpatch_performance_tests.html>`_.
-
-PLRsearch Tests
-^^^^^^^^^^^^^^^
-
-Description
-~~~~~~~~~~~
-
-Probabilistic Loss Ratio search (PLRsearch) tests discovers a packet
-throughput rate associated with configured Packet Loss Ratio (PLR)
-criteria for tests run over an extended period of time a.k.a. soak
-testing. PLRsearch assumes that system under test is probabilistic in
-nature, and not deterministic.
-
-Usage
-~~~~~
-
-PLRsearch are run to discover a sustained throughput for PLR=10^-7
-(close to NDR) for VPP release covered by CSIT report. Results for small
-frame sizes (64b/78B) are presented in packet throughput graphs (Box
-Plots) for a small subset of baseline tests.
-
-Each soak test lasts 30 minutes and is executed at least twice. Results are
-compared against NDR and PDR rates discovered with MLRsearch.
-
-Details
-~~~~~~~
-
-See :ref:`plrsearch` methodology section for more detail. PLRsearch is
-being standardized in IETF in `draft-vpolak-bmwg-plrsearch
-<https://tools.ietf.org/html/draft-vpolak-bmwg-plrsearch>`_.
-
-Generic Test Properties
-^^^^^^^^^^^^^^^^^^^^^^^
-
-All data plane throughput test methodologies share following generic
-properties:
-
-- Tested L2 frame sizes (untagged Ethernet):
-
- - IPv4 payload: 64B, IMIX (28x64B, 16x570B, 4x1518B), 1518B, 9000B.
- - IPv6 payload: 78B, IMIX (28x78B, 16x570B, 4x1518B), 1518B, 9000B.
- - All quoted sizes include frame CRC, but exclude per frame
- transmission overhead of 20B (preamble, inter frame gap).
-
-- Offered packet load is always bi-directional and symmetric.
-- All measured and reported packet and bandwidth rates are aggregate
- bi-directional rates reported from external Traffic Generator
- perspective.
diff --git a/docs/report/introduction/methodology_data_plane_throughput/methodology_mlrsearch_tests.rst b/docs/report/introduction/methodology_data_plane_throughput/methodology_mlrsearch_tests.rst
deleted file mode 100644
index 1209697195..0000000000
--- a/docs/report/introduction/methodology_data_plane_throughput/methodology_mlrsearch_tests.rst
+++ /dev/null
@@ -1,52 +0,0 @@
-.. _mlrsearch_algorithm:
-
-MLRsearch Tests
----------------
-
-Overview
-~~~~~~~~
-
-Multiple Loss Rate search (MLRsearch) tests use new search algorithm
-implemented in FD.io CSIT project. MLRsearch discovers multiple packet
-throughput rates in a single search, with each rate associated with a
-different Packet Loss Ratio (PLR) criteria.
-
-Two throughput measurements used in FD.io CSIT are Non-Drop Rate (NDR,
-with zero packet loss, PLR=0) and Partial Drop Rate (PDR, with packet
-loss rate not greater than the configured non-zero PLR).
-
-MLRsearch discovers NDR and PDR in a single pass reducing required time
-duration compared to separate `binary search`_es for NDR and PDR. Overall
-search time is reduced even further by relying on shorter trial
-durations of intermediate steps, with only the final measurements
-conducted at the specified final trial duration. This results in the
-shorter overall execution time when compared to standard NDR/PDR binary
-search, while guaranteeing similar results.
-
-If needed, next version of MLRsearch can be easily adopted
-to discover more throughput rates with different pre-defined PLRs.
-
-.. Note:: All throughput rates are *always* bi-directional
- aggregates of two equal (symmetric) uni-directional packet rates
- received and reported by an external traffic generator.
-
-Search Implementation
-~~~~~~~~~~~~~~~~~~~~~
-
-Detailed description of the MLRsearch algorithm is included in the IETF
-draft `draft-vpolak-mkonstan-mlrsearch
-<https://tools.ietf.org/html/draft-vpolak-mkonstan-bmwg-mlrsearch>`_
-that is in the process of being standardized in the IETF Benchmarking
-Methodology Working Group (BMWG).
-
-MLRsearch is also available as a `PyPI (Python Package Index) library
-<https://pypi.org/project/MLRsearch/>`_.
-
-Implementation Deviations
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-FD.io CSIT implementation of MLRsearch so far is fully based on the -02
-version of the `draft-vpolak-mkonstan-mlrsearch-02
-<https://tools.ietf.org/html/draft-vpolak-mkonstan-bmwg-mlrsearch-02>`_.
-
-.. _binary search: https://en.wikipedia.org/wiki/Binary_search
diff --git a/docs/report/introduction/methodology_data_plane_throughput/methodology_mrr_throughput.rst b/docs/report/introduction/methodology_data_plane_throughput/methodology_mrr_throughput.rst
deleted file mode 100644
index 4e8000b161..0000000000
--- a/docs/report/introduction/methodology_data_plane_throughput/methodology_mrr_throughput.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-.. _mrr_throughput:
-
-MRR Throughput
---------------
-
-Maximum Receive Rate (MRR) tests are complementary to MLRsearch tests,
-as they provide a maximum "raw" throughput benchmark for development and
-testing community. MRR tests measure the packet forwarding rate under
-the maximum load offered by traffic generator over a set trial duration,
-regardless of packet loss.
-
-MRR tests are currently used for following test jobs:
-
-- Report performance comparison: 64B, IMIX for vhost, memif.
-- Daily performance trending: 64B, IMIX for vhost, memif.
-- Per-patch performance verification: 64B.
-- Initial iterations of MLRsearch and PLRsearch: 64B.
-
-Maximum offered load for specific L2 Ethernet frame size is set to
-either the maximum bi-directional link rate or tested NIC model
-capacity, as follows:
-
-- For 10GE NICs the maximum packet rate load is 2x14.88 Mpps for 64B, a
- 10GE bi-directional link rate.
-- For 25GE NICs the maximum packet rate load is 2x18.75 Mpps for 64B, a
- 25GE bi-directional link sub-rate limited by 25GE NIC used on TRex TG,
- XXV710.
-- For 40GE NICs the maximum packet rate load is 2x18.75 Mpps for 64B, a
- 40GE bi-directional link sub-rate limited by 40GE NIC used on TRex
- TG,XL710. Packet rate for other tested frame sizes is limited by
- PCIeGen3 x8 bandwidth limitation of ~50Gbps.
-
-MRR test code implements multiple bursts of offered packet load and has
-two configurable burst parameters: individual trial duration and number
-of trials in a single burst. This enables more precise performance
-trending by providing more results data for analysis.
-
-Burst parameter settings vary between different tests using MRR:
-
-- MRR individual trial duration:
-
- - Report performance comparison: 1 sec.
- - Daily performance trending: 1 sec.
- - Per-patch performance verification: 10 sec.
- - Initial iteration for MLRsearch: 1 sec.
- - Initial iteration for PLRsearch: 5.2 sec.
-
-- Number of MRR trials per burst:
-
- - Report performance comparison: 10.
- - Daily performance trending: 10.
- - Per-patch performance verification: 5.
- - Initial iteration for MLRsearch: 1.
- - Initial iteration for PLRsearch: 1.
diff --git a/docs/report/introduction/methodology_data_plane_throughput/methodology_plrsearch.rst b/docs/report/introduction/methodology_data_plane_throughput/methodology_plrsearch.rst
deleted file mode 100644
index 68f30bc562..0000000000
--- a/docs/report/introduction/methodology_data_plane_throughput/methodology_plrsearch.rst
+++ /dev/null
@@ -1,429 +0,0 @@
-.. _plrsearch:
-
-PLRsearch
-^^^^^^^^^
-
-Motivation for PLRsearch
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Network providers are interested in throughput a system can sustain.
-
-`RFC 2544`_ assumes loss ratio is given by a deterministic function of
-offered load. But NFV software systems are not deterministic enough.
-This makes deterministic algorithms (such as `binary search`_ per RFC 2544
-and MLRsearch with single trial) to return results,
-which when repeated show relatively high standard deviation,
-thus making it harder to tell what "the throughput" actually is.
-
-We need another algorithm, which takes this indeterminism into account.
-
-Generic Algorithm
-~~~~~~~~~~~~~~~~~
-
-Detailed description of the PLRsearch algorithm is included in the IETF
-draft `draft-vpolak-bmwg-plrsearch-02`_ that is in the process
-of being standardized in the IETF Benchmarking Methodology Working Group (BMWG).
-
-Terms
------
-
-The rest of this page assumes the reader is familiar with the following terms
-defined in the IETF draft:
-
-+ Trial Order Independent System
-+ Duration Independent System
-+ Target Loss Ratio
-+ Critical Load
-+ Offered Load regions
-
- + Zero Loss Region
- + Non-Deterministic Region
- + Guaranteed Loss Region
-
-+ Fitting Function
-
- + Stretch Function
- + Erf Function
-
-+ Bayesian Inference
-
- + Prior distribution
- + Posterior Distribution
-
-+ Numeric Integration
-
- + Monte Carlo
- + Importance Sampling
-
-FD.io CSIT Implementation Specifics
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The search receives min_rate and max_rate values, to avoid measurements
-at offered loads not supporeted by the traffic generator.
-
-The implemented tests cases use bidirectional traffic.
-The algorithm stores each rate as bidirectional rate (internally,
-the algorithm is agnostic to flows and directions,
-it only cares about aggregate counts of packets sent and packets lost),
-but debug output from traffic generator lists unidirectional values.
-
-Measurement Delay
-`````````````````
-
-In a sample implemenation in FD.io CSIT project, there is roughly 0.5
-second delay between trials due to restrictons imposed by packet traffic
-generator in use (T-Rex).
-
-As measurements results come in, posterior distribution computation takes
-more time (per sample), although there is a considerable constant part
-(mostly for inverting the fitting functions).
-
-Also, the integrator needs a fair amount of samples to reach the region
-the posterior distribution is concentrated at.
-
-And of course, the speed of the integrator depends on computing power
-of the CPU the algorithm is able to use.
-
-All those timing related effects are addressed by arithmetically increasing
-trial durations with configurable coefficients
-(currently 5.1 seconds for the first trial,
-each subsequent trial being 0.1 second longer).
-
-Rounding Errors and Underflows
-``````````````````````````````
-
-In order to avoid them, the current implementation tracks natural logarithm
-(instead of the original quantity) for any quantity which is never negative.
-Logarithm of zero is minus infinity (not supported by Python),
-so special value "None" is used instead.
-Specific functions for frequent operations (such as "logarithm
-of sum of exponentials") are defined to handle None correctly.
-
-Fitting Functions
-`````````````````
-
-Current implementation uses two fitting functions, called "stretch" and "erf".
-In general, their estimates for critical rate differ,
-which adds a simple source of systematic error,
-on top of randomness error reported by integrator.
-Otherwise the reported stdev of critical rate estimate
-is unrealistically low.
-
-Both functions are not only increasing, but also convex
-(meaning the rate of increase is also increasing).
-
-Both fitting functions have several mathematically equivalent formulas,
-each can lead to an arithmetic overflow or underflow in different sub-terms.
-Overflows can be eliminated by using different exact formulas
-for different argument ranges.
-Underflows can be avoided by using approximate formulas
-in affected argument ranges, such ranges have their own formulas to compute.
-At the end, both fitting function implementations
-contain multiple "if" branches, discontinuities are a possibility
-at range boundaries.
-
-Prior Distributions
-```````````````````
-
-The numeric integrator expects all the parameters to be distributed
-(independently and) uniformly on an interval (-1, 1).
-
-As both "mrr" and "spread" parameters are positive and not dimensionless,
-a transformation is needed. Dimentionality is inherited from max_rate value.
-
-The "mrr" parameter follows a `Lomax distribution`_
-with alpha equal to one, but shifted so that mrr is always greater than 1
-packet per second.
-
-The "stretch" parameter is generated simply as the "mrr" value
-raised to a random power between zero and one;
-thus it follows a `reciprocal distribution`_.
-
-Integrator
-``````````
-
-After few measurements, the posterior distribution of fitting function
-arguments gets quite concentrated into a small area.
-The integrator is using `Monte Carlo`_ with `importance sampling`_
-where the biased distribution is `bivariate Gaussian`_ distribution,
-with deliberately larger variance.
-If the generated sample falls outside (-1, 1) interval,
-another sample is generated.
-
-The center and the covariance matrix for the biased distribution
-is based on the first and second moments of samples seen so far
-(within the computation). The center is used directly,
-covariance matrix is scaled up by a heurictic constant (8.0 by default).
-The following additional features are applied
-designed to avoid hyper-focused distributions.
-
-Each computation starts with the biased distribution inherited
-from the previous computation (zero point and unit covariance matrix
-is used in the first computation), but the overal weight of the data
-is set to the weight of the first sample of the computation.
-Also, the center is set to the first sample point.
-When additional samples come, their weight (including the importance correction)
-is compared to sum of the weights of data seen so far (within the iteration).
-If the new sample is more than one e-fold more impactful, both weight values
-(for data so far and for the new sample) are set to (geometric) average
-of the two weights.
-
-This combination showed the best behavior, as the integrator usually follows
-two phases. First phase (where inherited biased distribution
-or single big sample are dominating) is mainly important
-for locating the new area the posterior distribution is concentrated at.
-The second phase (dominated by whole sample population)
-is actually relevant for the critical rate estimation.
-
-Offered Load Selection
-``````````````````````
-
-First two measurements are hardcoded to happen at the middle of rate interval
-and at max_rate. Next two measurements follow MRR-like logic,
-offered load is decreased so that it would reach target loss ratio
-if offered load decrease lead to equal decrease of loss rate.
-
-The rest of measurements start directly in between
-erf and stretch estimate average.
-There is one workaround implemented, aimed at reducing the number of consequent
-zero loss measurements (per fitting function). The workaround first stores
-every measurement result which loss ratio was the targed loss ratio or higher.
-Sorted list (called lossy loads) of such results is maintained.
-
-When a sequence of one or more zero loss measurement results is encountered,
-a smallest of lossy loads is drained from the list.
-If the estimate average is smaller than the drained value,
-a weighted average of this estimate and the drained value is used
-as the next offered load. The weight of the estimate decreases exponentially
-with the length of consecutive zero loss results.
-
-This behavior helps the algorithm with convergence speed,
-as it does not need so many zero loss result to get near critical region.
-Using the smallest (not drained yet) of lossy loads makes it sure
-the new offered load is unlikely to result in big loss region.
-Draining even if the estimate is large enough helps to discard
-early measurements when loss hapened at too low offered load.
-Current implementation adds 4 copies of lossy loads and drains 3 of them,
-which leads to fairly stable behavior even for somewhat inconsistent SUTs.
-
-Caveats
-```````
-
-As high loss count measurements add many bits of information,
-they need a large amount of small loss count measurements to balance them,
-making the algorithm converge quite slowly. Typically, this happens
-when few initial measurements suggest spread way bigger then later measurements.
-The workaround in offered load selection helps,
-but more intelligent workarounds could get faster convergence still.
-
-Some systems evidently do not follow the assumption of repeated measurements
-having the same average loss rate (when the offered load is the same).
-The idea of estimating the trend is not implemented at all,
-as the observed trends have varied characteristics.
-
-Probably, using a more realistic fitting functions
-will give better estimates than trend analysis.
-
-Bottom Line
-~~~~~~~~~~~
-
-The notion of Throughput is easy to grasp, but it is harder to measure
-with any accuracy for non-deterministic systems.
-
-Even though the notion of critical rate is harder to grasp than the notion
-of throughput, it is easier to measure using probabilistic methods.
-
-In testing, the difference between througput measurements and critical
-rate measurements is usually small, see :ref:`soak vs ndr comparison`.
-
-In pactice, rules of thumb such as "send at max 95% of purported throughput"
-are common. The correct benchmarking analysis should ask "Which notion is
-95% of throughput an approximation to?" before attempting to answer
-"Is 95% of critical rate safe enough?".
-
-Algorithmic Analysis
-~~~~~~~~~~~~~~~~~~~~
-
-Motivation
-``````````
-
-While the estimation computation is based on hard probability science;
-the offered load selection part of PLRsearch logic is pure heuristics,
-motivated by what would a human do based on measurement and computation results.
-
-The quality of any heuristic is not affected by soundness of its motivation,
-just by its ability to achieve the intended goals.
-In case of offered load selection, the goal is to help the search to converge
-to the long duration estimates sooner.
-
-But even those long duration estimates could still be of poor quality.
-Even though the estimate computation is Bayesian (so it is the best it could be
-within the applied assumptions), it can still of poor quality when compared
-to what a human would estimate.
-
-One possible source of poor quality is the randomnes inherently present
-in Monte Carlo numeric integration, but that can be supressed
-by tweaking the time related input parameters.
-
-The most likely source of poor quality then are the assumptions.
-Most importantly, the number and the shape of fitting functions;
-but also others, such as trial order independence and duration independence.
-
-The result can have poor quality in basically two ways.
-One way is related to location. Both upper and lower bounds
-can be overestimates or underestimates, meaning the entire estimated interval
-between lower bound and upper bound lays above or below (respectively)
-of human-estimated interval.
-The other way is related to the estimation interval width.
-The interval can be too wide or too narrow, compared to human estimation.
-
-An estimate from a particular fitting function can be classified
-as an overestimate (or underestimate) just by looking at time evolution
-(without human examining measurement results). Overestimates
-decrease by time, underestimates increase by time (assuming
-the system performance stays constant).
-
-Quality of the width of the estimation interval needs human evaluation,
-and is unrelated to both rate of narrowing (both good and bad estimate intervals
-get narrower at approximately the same relative rate) and relatative width
-(depends heavily on the system being tested).
-
-Graphical Examples
-``````````````````
-
-The following pictures show the upper (red) and lower (blue) bound,
-as well as average of Stretch (pink) and Erf (light green) estimate,
-and offered load chosen (grey), as computed by PLRsearch,
-after each trial measurement within the 30 minute duration of a test run.
-
-Both graphs are focusing on later estimates. Estimates computed from
-few initial measurements are wildly off the y-axis range shown.
-
-The following analysis will rely on frequency of zero loss measurements
-and magnitude of loss ratio if nonzero.
-
-The offered load selection strategy used implies zero loss measurements
-can be gleaned from the graph by looking at offered load points.
-When the points move up farther from lower estimate, it means
-the previous measurement had zero loss. After non-zero loss,
-the offered load starts again right between (the previous values of)
-the estimate curves.
-
-The very big loss ratio results are visible as noticeable jumps
-of both estimates downwards. Medium and small loss ratios are much harder
-to distinguish just by looking at the estimate curves,
-the analysis is based on raw loss ratio measurement results.
-
-The following descriptions should explain why the graphs seem to signal
-low quality estimate at first sight, but a more detailed look
-reveals the quality is good (considering the measurement results).
-
-L2 patch
---------
-
-Both fitting functions give similar estimates, the graph shows
-"stochasticity" of measurements (estimates increase and decrease
-within small time regions), and an overall trend of decreasing estimates.
-
-On the first look, the final interval looks fairly narrow,
-especially compared to the region the estimates have travelled
-during the search. But the look at the frequency of zero loss results shows
-this is not a case of overestimation. Measurements at around the same
-offered load have higher probability of zero loss earlier
-(when performed farther from upper bound), but smaller probability later
-(when performed closer to upper bound). That means it is the performance
-of the system under test that decreases (slightly) over time.
-
-With that in mind, the apparent narrowness of the interval
-is not a sign of low quality, just a consequence of PLRsearch assuming
-the performance stays constant.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/methodology_data_plane_throughput/}}
- \includegraphics[width=0.90\textwidth]{PLR_patch}
- \label{fig:PLR_patch}
- \end{figure}
-
-.. only:: html
-
- .. figure:: PLR_patch.svg
- :alt: PLR_patch
- :align: center
-
-Vhost
------
-
-This test case shows what looks like a quite broad estimation interval,
-compared to other test cases with similarly looking zero loss frequencies.
-Notable features are infrequent high-loss measurement results
-causing big drops of estimates, and lack of long-term convergence.
-
-Any convergence in medium-sized intervals (during zero loss results)
-is reverted by the big loss results, as they happen quite far
-from the critical load estimates, and the two fitting functions
-extrapolate differently.
-
-In other words, human only seeing estimates from one fitting function
-would expect narrower end interval, but human seeing the measured loss ratios
-agrees that the interval should be wider than that.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/methodology_data_plane_throughput/}}
- \includegraphics[width=0.90\textwidth]{PLR_vhost}
- \label{fig:PLR_vhost}
- \end{figure}
-
-.. only:: html
-
- .. figure:: PLR_vhost.svg
- :alt: PLR_vhost
- :align: center
-
-Summary
--------
-
-The two graphs show the behavior of PLRsearch algorithm applied to soaking test
-when some of PLRsearch assumptions do not hold:
-
-+ L2 patch measurement results violate the assumption
- of performance not changing over time.
-+ Vhost measurement results violate the assumption
- of Poisson distribution matching the loss counts.
-
-The reported upper and lower bounds can have distance larger or smaller
-than a first look by a human would expect, but a more closer look reveals
-the quality is good, considering the circumstances.
-
-The usefullness of the critical load estimate is of questionable value
-when the assumptions are violated.
-
-Some improvements can be made via more specific workarounds,
-for example long term limit of L2 patch performance could be estmated
-by some heuristic.
-
-Other improvements can be achieved only by asking users
-whether loss patterns matter. Is it better to have single digit losses
-distributed fairly evenly over time (as Poisson distribution would suggest),
-or is it better to have short periods of medium losses
-mixed with long periods of zero losses (as happens in Vhost test)
-with the same overall loss ratio?
-
-.. _draft-vpolak-bmwg-plrsearch-02: https://tools.ietf.org/html/draft-vpolak-bmwg-plrsearch-02
-.. _plrsearch draft: https://tools.ietf.org/html/draft-vpolak-bmwg-plrsearch-00
-.. _RFC 2544: https://tools.ietf.org/html/rfc2544
-.. _Lomax distribution: https://en.wikipedia.org/wiki/Lomax_distribution
-.. _reciprocal distribution: https://en.wikipedia.org/wiki/Reciprocal_distribution
-.. _Monte Carlo: https://en.wikipedia.org/wiki/Monte_Carlo_integration
-.. _importance sampling: https://en.wikipedia.org/wiki/Importance_sampling
-.. _bivariate Gaussian: https://en.wikipedia.org/wiki/Multivariate_normal_distribution
-.. _binary search: https://en.wikipedia.org/wiki/Binary_search_algorithm
diff --git a/docs/report/introduction/methodology_dut_state.rst b/docs/report/introduction/methodology_dut_state.rst
deleted file mode 100644
index c66fe58277..0000000000
--- a/docs/report/introduction/methodology_dut_state.rst
+++ /dev/null
@@ -1,150 +0,0 @@
-DUT state considerations
-------------------------
-
-This page discusses considerations for Device Under Test (DUT) state.
-DUTs such as VPP require configuration, to be provided before the aplication
-starts (via config files) or just after it starts (via API or CLI access).
-
-During operation DUTs gather various telemetry data, depending on configuration.
-This internal state handling is part of normal operation,
-so any performance impact is included in the test results.
-Accessing telemetry data is additional load on DUT,
-so we are not doing that in main trial measurements that affect results,
-but we include separate trials specifically for gathering runtime telemetry.
-
-But there is one kind of state that needs specific handling.
-This kind of DUT state is dynamically created based on incoming traffic,
-it affects how DUT handles the traffic, and (unlike telemetry counters)
-it has uneven impact on CPU load.
-Typical example is NAT where opening sessions takes more CPU than
-forwarding packet on existing sessions.
-We call DUT configurations with this kind of state "stateful",
-and configurations without them "stateless".
-(Even though stateless configurations contain state described in previous
-paragraphs, and some configuration items may have "stateful" in their name,
-such as stateful ACLs.)
-
-Stateful DUT configurations
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Typically, the level of CPU impact of traffic depends on DUT state.
-The first packets causing DUT state to change have higher impact,
-subsequent packets matching that state have lower impact.
-
-From performance point of view, this is similar to traffic phases
-for stateful protocols, see
-`NGFW draft <https://tools.ietf.org/html/draft-ietf-bmwg-ngfw-performance-05#section-4.3.4>`.
-In CSIT we borrow the terminology (even if it does not fit perfectly,
-see discussion below). Ramp-up traffic causes the state change,
-sustain traffic does not change the state.
-
-As the performance is different, each test has to choose which traffic
-it wants to test, and manipulate the DUT state to achieve the intended impact.
-
-Ramp-up trial
-_____________
-
-Tests aiming at sustain performance need to make sure DUT state is created.
-We achieve this via a ramp-up trial, specific purpose of which
-is to create the state. Subsequent trials need no specific handling,
-as state remains the same.
-
-For the state to be set completely, it is important DUT (nor TG) loses
-no packets, we achieve this by setting the profile multiplier (TPS from now on)
-to low enough value.
-
-It is also important each state-affecting packet is sent.
-For size-limited traffic profile it is guaranteed by the size limit.
-For continuous traffic, we set a long enough duration (based on TPS).
-
-At the end of the ramp-up trial, we check telemetry to confirm
-the state has been created as expected.
-Test fails if the state is not complete.
-
-State Reset
-___________
-
-Tests aiming at ramp-up performance do not use ramp-up trial,
-and they need to reset the DUT state before each trial measurement.
-The way of resetting the state depends on test,
-usually an API call is used to partially de-configure
-the part that holds the state, and then re-configure it back.
-
-In CSIT we control the DUT state behavior via a test variable "resetter".
-If it is not set, DUT state is not reset.
-If it is set, each search algorithm (including MRR) will invoke it
-before all trial measurements (both main and telemetry ones).
-Any configuration keyword enabling a feature with DUT state
-will check whether a test variable for ramp-up (duration) is present.
-If it is present, resetter is not set.
-If it is not present, the keyword sets the apropriate resetter value.
-This logic makes sure either ramp-up or state reset are used.
-
-..
- TODO: Classify trials into main and telemetry, in a separate place.
-
-Notes: If both ramp-up and state reset were used, the DUT behavior
-would be identical to just reset, while test would take longer to execute.
-If neither were used, DUT will show different performance in subsequent trials,
-violating assumptions of search algorithms.
-
-DUT versus protocol ramp-up
-___________________________
-
-There are at least three different causes for bandwidth possibly increasing
-within a single measurement trial.
-
-The first is DUT switching from state modification phase to constant phase,
-it is the primary focus of this document.
-Using ramp-up traffic before main trials eliminates this cause
-for tests wishing to measure the performance of the next phase.
-Using size-limited profiles eliminates the next phase
-for tests wishing to measure performance of this phase.
-
-The second is protocol such as TCP ramping up their throughput to utilize
-the bandwidth available. This is the original meaning of "ramp up"
-in the NGFW draft (see above).
-In existing tests we are not distinguishing such phases,
-trial measurment reports the telemetry from the whole trial
-(e.g. throughput is time averaged value).
-
-The third is TCP increasing throughput due to retransmissions triggered by
-packet loss. In CSIT we currently try to avoid this behavior
-by using small enough data to transfer, so overlap of multiple transactions
-(primary cause of packet loss) is unlikely.
-But in MRR tests packet loss is still probable.
-Once again, we rely on using telemetry from the whole trial,
-resulting in time averaged throughput values.
-
-Stateless DUT configuratons
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-These are simply configurations, which do not set any resetter value
-(even if ramp-up duration is not configured).
-Majority of existing tests are of this type, using continuous traffic profiles.
-
-In order to identify limits of Trex performance,
-we have added suites with stateless DUT configuration (VPP ip4base)
-subjected to size-limited ASTF traffic.
-The discovered throughputs serve as a basis of comparison
-for evaluating the results for stateful DUT configurations (VPP NAT44ed)
-subjected to the same traffic profiles.
-
-DUT versus TG state
-~~~~~~~~~~~~~~~~~~~
-
-Traffic Generator profiles can be stateful (ASTF) or stateless (STL).
-DUT configuration can be stateful or stateless (with respect to packet traffic).
-
-In CSIT we currently use all four possible configurations:
-
-- Regular stateless VPP tests use stateless traffic profiles.
-
-- Stateless VPP configuration with stateful profile is used as a base for
- comparison.
-
-- Some stateful DUT configurations (NAT44DET, NAT44ED unidirectional)
- are tested using stateless traffic profiles.
-
-- The rest of stateful DUT configurations (NAT44ED bidirectional)
- are tested using stateful traffic profiles.
diff --git a/docs/report/introduction/methodology_hoststack_testing/index.rst b/docs/report/introduction/methodology_hoststack_testing/index.rst
deleted file mode 100644
index 5feb9cccd2..0000000000
--- a/docs/report/introduction/methodology_hoststack_testing/index.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Hoststack Testing
------------------
-
-.. toctree::
-
- methodology_tcp_with_iperf3
- methodology_quic_with_vppecho
diff --git a/docs/report/introduction/methodology_hoststack_testing/methodology_quic_with_vppecho.rst b/docs/report/introduction/methodology_hoststack_testing/methodology_quic_with_vppecho.rst
deleted file mode 100644
index 064f643f3b..0000000000
--- a/docs/report/introduction/methodology_hoststack_testing/methodology_quic_with_vppecho.rst
+++ /dev/null
@@ -1,46 +0,0 @@
-QUIC/UDP/IP with vpp_echo
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-`vpp_echo performance testing tool <https://wiki.fd.io/view/VPP/HostStack#External_Echo_Server.2FClient_.28vpp_echo.29>`_
-is a bespoke performance test application which utilizes the 'native
-HostStack APIs' to verify performance and correct handling of
-connection/stream events with uni-directional and bi-directional
-streams of data.
-
-Because iperf3 does not support the QUIC transport protocol, vpp_echo
-is used for measuring the maximum attainable goodput of the VPP Host
-Stack connection utilizing the QUIC transport protocol across two
-instances of VPP running on separate DUT nodes. The QUIC transport
-protocol supports multiple streams per connection and test cases
-utilize different combinations of QUIC connections and number of
-streams per connection.
-
-The test configuration is as follows:
-
-::
-
- DUT1 Network DUT2
- [ vpp_echo-client -> VPP1 ]=======[ VPP2 -> vpp_echo-server]
- N-streams/connection
-
-where,
-
-1. vpp_echo server attaches to VPP2 and LISTENs on VPP2:TCP port 1234.
-2. vpp_echo client creates one or more connections to VPP1 and opens
- one or more stream per connection to VPP2:TCP port 1234.
-3. vpp_echo client transmits a uni-directional stream as fast as the
- VPP Host Stack allows to the vpp_echo server for the test duration.
-4. At the end of the test the vpp_echo client emits the goodput
- measurements for all streams and the sum of all streams.
-
-Test cases include
-
-1. 1 QUIC Connection with 1 Stream
-2. 1 QUIC connection with 10 Streams
-3. 10 QUIC connetions with 1 Stream
-4. 10 QUIC connections with 10 Streams
-
-with stream sizes to provide reasonable test durations. The VPP Host
-Stack QUIC transport is configured to utilize the picotls encryption
-library. In the future, tests utilizing addtional encryption
-algorithms will be added.
diff --git a/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst b/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst
deleted file mode 100644
index ce22e34a04..0000000000
--- a/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-TCP/IP with iperf3
-^^^^^^^^^^^^^^^^^^
-
-`iperf3 goodput measurement tool <https://github.com/esnet/iperf>`_
-is used for measuring the maximum attainable goodput of the VPP Host
-Stack connection across two instances of VPP running on separate DUT
-nodes. iperf3 is a popular open source tool for active measurements
-of the maximum achievable goodput on IP networks.
-
-Because iperf3 utilizes the POSIX socket interface APIs, the current
-test configuration utilizes the LD_PRELOAD mechanism in the linux
-kernel to connect iperf3 to the VPP Host Stack using the VPP
-Communications Library (VCL) LD_PRELOAD library (libvcl_ldpreload.so).
-
-In the future, a forked version of iperf3 which has been modified to
-directly use the VCL application APIs may be added to determine the
-difference in performance of 'VCL Native' applications versus utilizing
-LD_PRELOAD which inherently has more overhead and other limitations.
-
-The test configuration is as follows:
-
-::
-
- DUT1 Network DUT2
- [ iperf3-client -> VPP1 ]=======[ VPP2 -> iperf3-server]
-
-where,
-
-1. iperf3 server attaches to VPP2 and LISTENs on VPP2:TCP port 5201.
-2. iperf3 client attaches to VPP1 and opens one or more stream
- connections to VPP2:TCP port 5201.
-3. iperf3 client transmits a uni-directional stream as fast as the
- VPP Host Stack allows to the iperf3 server for the test duration.
-4. At the end of the test the iperf3 client emits the goodput
- measurements for all streams and the sum of all streams.
-
-Test cases include 1 and 10 Streams with a 20 second test duration
-with the VPP Host Stack configured to utilize the Cubic TCP
-congestion algorithm.
-
-Note: iperf3 is single threaded, so it is expected that the 10 stream
-test does not show any performance improvement due to
-multi-thread/multi-core execution.
-
-There are also variations of these test cases which use the VPP Network
-Simulator (NSIM) plugin to test the VPP Hoststack goodput with 1 percent
-of the traffic being dropped at the output interface of VPP1 thereby
-simulating a lossy network. The NSIM tests are experimental and the
-test results are not currently representative of typical results in a
-lossy network.
diff --git a/docs/report/introduction/methodology_ipsec.rst b/docs/report/introduction/methodology_ipsec.rst
deleted file mode 100644
index 119ccfb719..0000000000
--- a/docs/report/introduction/methodology_ipsec.rst
+++ /dev/null
@@ -1,52 +0,0 @@
-Internet Protocol Security (IPsec)
-----------------------------------
-
-VPP IPsec performance tests are executed for the following crypto
-plugins:
-
-- `crypto_native`, used for software based crypto leveraging CPU
- platform optimizations e.g. Intel's AES-NI instruction set.
-- `crypto_ipsecmb`, used for hardware based crypto with Intel QAT PCIe
- cards.
-
-IPsec with VPP Native SW Crypto
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Currently |csit-release| implements following IPsec test cases relying
-on VPP native crypto (`crypto_native` plugin):
-
-+-------------------+------------------+----------------+------------------+
-| VPP Crypto Engine | ESP Encryption | ESP Integrity | Scale Tested |
-+===================+==================+================+==================+
-| crypto_native | AES[128|256]-GCM | GCM | 1 to 60k tunnels |
-+-------------------+------------------+----------------+------------------+
-| crypto_native | AES128-CBC | SHA[256|512] | 1 to 60k tunnels |
-+-------------------+------------------+----------------+------------------+
-
-VPP IPsec with SW crypto are executed in both tunnel and policy modes,
-with tests running on 3-node testbeds: 3n-hsw and 3n-skx.
-
-IPsec with Intel QAT HW
-^^^^^^^^^^^^^^^^^^^^^^^
-
-Currently |csit-release| implements following IPsec test cases relying
-on ipsecmb library (`crypto_ipsecmb` plugin) and Intel QAT 8950 (50G HW
-crypto card):
-
-dpdk_cryptodev
-
-+-------------------+---------------------+------------------+----------------+------------------+
-| VPP Crypto Engine | VPP Crypto Workers | ESP Encryption | ESP Integrity | Scale Tested |
-+===================+=====================+==================+================+==================+
-| crypto_ipsecmb | sync/all workers | AES[128|256]-GCM | GCM | 1, 1k tunnels |
-+-------------------+---------------------+------------------+----------------+------------------+
-| crypto_ipsecmb | sync/all workers | AES[128]-CBC | SHA[256|512] | 1, 1k tunnels |
-+-------------------+---------------------+------------------+----------------+------------------+
-| crypto_ipsecmb | async/crypto worker | AES[128|256]-GCM | GCM | 1, 4, 1k tunnels |
-+-------------------+---------------------+------------------+----------------+------------------+
-| crypto_ipsecmb | async/crypto worker | AES[128]-CBC | SHA[256|512] | 1, 4, 1k tunnels |
-+-------------------+---------------------+------------------+----------------+------------------+
-
-VPP IPsec with HW crypto are executed in both tunnel and policy modes,
-with tests running on 3-node Haswell testbeds (3n-hsw), as these are the
-only testbeds equipped with Intel QAT cards.
diff --git a/docs/report/introduction/methodology_kvm_vms_vhost_user.rst b/docs/report/introduction/methodology_kvm_vms_vhost_user.rst
deleted file mode 100644
index 216d461911..0000000000
--- a/docs/report/introduction/methodology_kvm_vms_vhost_user.rst
+++ /dev/null
@@ -1,81 +0,0 @@
-KVM VMs vhost-user
-------------------
-
-QEMU is used for KVM VM vhost-user testing enviroment. By default,
-standard QEMU version is used, preinstalled from OS repositories
-(qemu-2.11.1 for Ubuntu 18.04). The path
-to the QEMU binary can be adjusted in `Constants.py`.
-
-FD.io CSIT performance lab is testing VPP vhost-user with KVM VMs using
-following environment settings:
-
-CSIT supports two types of VMs:
-
-- **Image-VM**: used for all functional, VPP_device, and regular
- performance tests except NFV density tests.
-
-- **Kernel-VM**: new VM type introduced for NFV density tests to provide
- greater in-VM application install flexibility and to further reduce
- test execution time by simpler VM lifecycle management.
-
-Image-VM
-~~~~~~~~
-
-CSIT can use a pre-created VM image. The path to the image can be
-adjusted in `Constants.py`. For convenience and full compatibility CSIT
-repository contains a set of scripts to prepare `Built-root
-<https://buildroot.org/>`_ based embedded Linux image with all the
-dependencies needed to run DPDK Testpmd, DPDK L3Fwd, Linux bridge or
-Linux IPv4 forwarding.
-
-Built-root was chosen for a VM image to make it lightweight and with
-fast booting time to limit impact on tests duration.
-
-In order to execute CSIT tests, VM image must have following software
-installed: qemu-guest-agent, sshd, bridge-utils, VirtIO support and DPDK
-Testpmd/L3fwd applications. Username/password for the VM must be
-``cisco``/``cisco`` and ``NOPASSWD`` sudo access. The interface naming
-is based on the driver (management interface type is Intel E1000), all
-E1000 interfaces will be named ``mgmt<n>`` and all VirtIO interfaces
-will be named ``virtio<n>``. In VM ``/etc/init.d/qemu-guest-agent`` must
-be set to ``TRANSPORT=isa-serial:/dev/ttyS1`` because ttyS0 is used by
-serial console and ttyS1 is dedicated for qemu-guest-agent in QEMU
-setup.
-
-Kernel-VM
-~~~~~~~~~
-
-CSIT can use a kernel KVM image as a boot kernel, as an alternative to
-image VM. This option allows better configurability of what application
-is running in VM userspace. Using root9p filesystem allows mapping the
-host-OS filesystem as read only guest-OS filesystem.
-
-Example of custom init script for the kernel-VM:
-
-::
-
- #!/bin/bash
- mount -t sysfs -o "nodev,noexec,nosuid" sysfs /sys
- mount -t proc -o "nodev,noexec,nosuid" proc /proc
- mkdir /dev/pts
- mkdir /dev/hugepages
- mount -t devpts -o "rw,noexec,nosuid,gid=5,mode=0620" devpts /dev/pts || true
- mount -t tmpfs -o "rw,noexec,nosuid,size=10%,mode=0755" tmpfs /run
- mount -t tmpfs -o "rw,noexec,nosuid,size=10%,mode=0755" tmpfs /tmp
- mount -t hugetlbfs -o "rw,relatime,pagesize=2M" hugetlbfs /dev/hugepages
- echo 0000:00:06.0 > /sys/bus/pci/devices/0000:00:06.0/driver/unbind
- echo 0000:00:07.0 > /sys/bus/pci/devices/0000:00:07.0/driver/unbind
- echo vfio-pci > /sys/bus/pci/devices/0000:00:06.0/driver_override
- echo vfio-pci > /sys/bus/pci/devices/0000:00:07.0/driver_override
- echo 0000:00:06.0 > /sys/bus/pci/drivers/vfio-pci/bind
- echo 0000:00:07.0 > /sys/bus/pci/drivers/vfio-pci/bind
- $vnf_bin
- poweroff -f
-
-QemuUtils library during runtime replaces the ``$vnf_bin`` variable by
-the path to NF binary and its parameters. This allows CSIT to run any
-application installed on host OS, for example the same version of VPP
-as running on the host-OS.
-
-Kernel-VM image must be available in the host filesystem as a
-prerequisite. The path to kernel-VM image is defined in `Constants.py`.
diff --git a/docs/report/introduction/methodology_lxc_drc_container_memif.rst b/docs/report/introduction/methodology_lxc_drc_container_memif.rst
deleted file mode 100644
index 125a71ccc7..0000000000
--- a/docs/report/introduction/methodology_lxc_drc_container_memif.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-LXC/DRC Container Memif
------------------------
-
-CSIT includes tests taking advantage of VPP memif virtual
-interface (shared memory interface) to interconnect VPP running in
-Containers. VPP vswitch instance runs in bare-metal user-mode handling
-NIC interfaces and connecting over memif (Slave side) to VPPs running in
-:abbr:`Linux Container (LXC)` or in Docker Container (DRC) configured
-with memif (Master side). LXCs and DRCs run in a priviliged mode with
-VPP data plane worker threads pinned to dedicated physical CPU cores per
-usual CSIT practice. All VPP instances run the same version of software.
-This test topology is equivalent to existing tests with vhost-user and
-VMs as described earlier in :ref:`tested_logical_topologies`.
-
-In addition to above vswitch tests, a single memif interface test is
-executed. It runs in a simple topology of two VPP container instances
-connected over memif interface in order to verify standalone memif
-interface performance.
-
-More information about CSIT LXC and DRC setup and control is available
-in :ref:`container_orchestration_in_csit`.
diff --git a/docs/report/introduction/methodology_mellanox_nic.rst b/docs/report/introduction/methodology_mellanox_nic.rst
deleted file mode 100644
index 40fcb08aab..0000000000
--- a/docs/report/introduction/methodology_mellanox_nic.rst
+++ /dev/null
@@ -1,129 +0,0 @@
-Mellanox NIC
-------------
-
-Performance test results using Mellanox ConnectX5 2p100GE are reported for
-2-Node Xeon Cascade Lake physical testbed type present in FD.io labs. For
-description of physical testbeds used please refer to
-:ref:`tested_physical_topologies`.
-
-Mellanox NIC settings
-~~~~~~~~~~~~~~~~~~~~~
-
-Mellanox ConnectX5 NIC settings are following recommendations from
-[DpdkPerformanceReport]_, [MellanoxDpdkGuide]_ and [MellanoxDpdkBits]_.
-Specifically:
-
-- Flow Control OFF:
- ::
-
- $ ethtool -A $netdev rx off tx off
-
-- Change PCI MaxReadReq to 1024B for each port of each NIC:
- ::
-
- $ setpci -s $PORT_PCI_ADDRESS 68.w=3BCD
-
-- Set CQE COMPRESSION to "AGGRESSIVE":
- ::
-
- $ mlxconfig -d $PORT_PCI_ADDRESS set CQE_COMPRESSION=1
-
-Mellanox :abbr:`OFED (OpenFabrics Enterprise Distribution)` driver of version
-4.6-1.0.1.1 is installed and used to manage the NIC settings.
-
-::
-
- $ sudo ethtool -i enp94s0f0
- driver: mlx5_core
- version: 4.6-1.0.1
- firmware-version: 16.25.1020 (MT_0000000009)
- expansion-rom-version:
- bus-info: 0000:5e:00.0
- supports-statistics: yes
- supports-test: yes
- supports-eeprom-access: no
- supports-register-dump: no
- supports-priv-flags: yes
-
-::
-
- $ sudo lspci -vvvs 5e:00.0
- 5e:00.0 Ethernet controller: Mellanox Technologies MT28800 Family [ConnectX-5 Ex]
- Subsystem: Mellanox Technologies MT28800 Family [ConnectX-5 Ex]
- Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
- Latency: 0, Cache Line Size: 32 bytes
- Interrupt: pin A routed to IRQ 37
- NUMA node: 0
- Region 0: Memory at 38fffe000000 (64-bit, prefetchable) [size=32M]
- Expansion ROM at c5e00000 [disabled] [size=1M]
- Capabilities: [60] Express (v2) Endpoint, MSI 00
- DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
- ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
- DevCtl: Report errors: Correctable- Non-Fatal- Fatal+ Unsupported-
- RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
- MaxPayload 256 bytes, MaxReadReq 4096 bytes
- DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
- LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM not supported, Exit Latency L0s unlimited, L1 unlimited
- ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
- LnkSta: Speed 8GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR-, OBFF Not Supported
- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
- LnkCtl2: Target Link Speed: 16GT/s, EnterCompliance- SpeedDis-
- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
- Compliance De-emphasis: -6dB
- LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+, EqualizationPhase1+
- EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
- Capabilities: [48] Vital Product Data
- Product Name: CX556A - ConnectX-5 QSFP28
- Read-only fields:
- [PN] Part number: MCX556A-EDAT
- [EC] Engineering changes: AA
- [V2] Vendor specific: MCX556A-EDAT
- [SN] Serial number: MT1945X00360
- [V3] Vendor specific: f8d15ef7e701ea118000b8599ffe4aa8
- [VA] Vendor specific: MLX:MODL=CX556A:MN=MLNX:CSKU=V2:UUID=V3:PCI=V0
- [V0] Vendor specific: PCIeGen4 x16
- [RV] Reserved: checksum good, 2 byte(s) reserved
- End
- Capabilities: [9c] MSI-X: Enable+ Count=64 Masked-
- Vector table: BAR=0 offset=00002000
- PBA: BAR=0 offset=00003000
- Capabilities: [c0] Vendor Specific Information: Len=18 <?>
- Capabilities: [40] Power Management version 3
- Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
- Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
- Capabilities: [100 v1] Advanced Error Reporting
- UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
- UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
- AERCap: First Error Pointer: 04, GenCap+ CGenEn- ChkCap+ ChkEn-
- Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
- ARICap: MFVC- ACS-, Next Function: 1
- ARICtl: MFVC- ACS-, Function Group: 0
- Capabilities: [1c0 v1] #19
- Capabilities: [230 v1] Access Control Services
- ACSCap: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
- ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
- Capabilities: [320 v1] #27
- Capabilities: [370 v1] #26
- Capabilities: [420 v1] #25
- Kernel driver in use: mlx5_core
- Kernel modules: mlx5_core
-
-TG and SUT settings
-~~~~~~~~~~~~~~~~~~~
-
-For the TG and SUT environment settings please refer to
-:ref:`_vpp_test_environment` and :ref:`_dpdk_test_environment`.
-
-Links
-~~~~~
-
-.. [DpdkPerformanceReport] `DPDK 19.11 performance report <http://static.dpdk.org/doc/perf/DPDK_19_11_Mellanox_NIC_performance_report.pdf>`
-.. [MellanoxDpdkGuide] `Mellanox DPDK guide <https://www.mellanox.com/related-docs/prod_software/MLNX_DPDK_Quick_Start_Guide_v16.11_3.0.pdf>`
-.. [MellanoxDpdkBits] `Mellanox DPDK bits <https://community.mellanox.com/s/article/mellanox-dpdk>`
diff --git a/docs/report/introduction/methodology_multi_core_speedup.rst b/docs/report/introduction/methodology_multi_core_speedup.rst
deleted file mode 100644
index 095f0f7796..0000000000
--- a/docs/report/introduction/methodology_multi_core_speedup.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-Multi-Core Speedup
-------------------
-
-All performance tests are executed with single physical core and with
-multiple cores scenarios.
-
-Intel Hyper-Threading (HT)
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Intel Xeon processors used in FD.io CSIT can operate either in HT
-Disabled mode (single logical core per each physical core) or in HT
-Enabled mode (two logical cores per each physical core). HT setting is
-applied in BIOS and requires server SUT reload for it to take effect,
-making it impractical for continuous changes of HT mode of operation.
-
-|csit-release| performance tests are executed with server SUTs' Intel
-XEON processors configured with Intel Hyper-Threading Disabled for all
-Xeon Haswell testbeds (3n-hsw) and with Intel Hyper-Threading Enabled
-for all Xeon Skylake and Xeon Cascadelake testbeds.
-
-More information about physical testbeds is provided in
-:ref:`tested_physical_topologies`.
-
-Multi-core Tests
-~~~~~~~~~~~~~~~~
-
-|csit-release| multi-core tests are executed in the following VPP worker
-thread and physical core configurations:
-
-#. Intel Xeon Haswell testbeds (3n-hsw) with Intel HT disabled
- (1 logical CPU core per each physical core):
-
- #. 1t1c - 1 VPP worker thread on 1 physical core.
- #. 2t2c - 2 VPP worker threads on 2 physical cores.
- #. 4t4c - 4 VPP worker threads on 4 physical cores.
-
-#. Intel Xeon Skylake and Cascadelake testbeds (2n-skx, 3n-skx, 2n-clx)
- with Intel HT enabled (2 logical CPU cores per each physical core):
-
- #. 2t1c - 2 VPP worker threads on 1 physical core.
- #. 4t2c - 4 VPP worker threads on 2 physical cores.
- #. 8t4c - 8 VPP worker threads on 4 physical cores.
-
-VPP worker threads are the data plane threads running on isolated
-logical cores. With Intel HT enabled VPP workers are placed as sibling
-threads on each used physical core. VPP control threads (main, stats)
-are running on a separate non-isolated core together with other Linux
-processes.
-
-In all CSIT tests care is taken to ensure that each VPP worker handles
-the same amount of received packet load and does the same amount of
-packet processing work. This is achieved by evenly distributing per
-interface type (e.g. physical, virtual) receive queues over VPP workers
-using default VPP round-robin mapping and by loading these queues with
-the same amount of packet flows.
-
-If number of VPP workers is higher than number of physical or virtual
-interfaces, multiple receive queues are configured on each interface.
-NIC Receive Side Scaling (RSS) for physical interfaces and multi-queue
-for virtual interfaces are used for this purpose.
-
-Section :ref:`throughput_speedup_multi_core` includes a set of graphs
-illustrating packet throughout speedup when running VPP worker threads
-on multiple cores. Note that in quite a few test cases running VPP
-workers on 2 or 4 physical cores hits the I/O bandwidth
-or packets-per-second limit of tested NIC.
diff --git a/docs/report/introduction/methodology_nat44.rst b/docs/report/introduction/methodology_nat44.rst
deleted file mode 100644
index ba12f7d49b..0000000000
--- a/docs/report/introduction/methodology_nat44.rst
+++ /dev/null
@@ -1,454 +0,0 @@
-.. _nat44_methodology:
-
-Network Address Translation IPv4 to IPv4
-----------------------------------------
-
-NAT44 Prefix Bindings
-^^^^^^^^^^^^^^^^^^^^^
-
-NAT44 prefix bindings should be representative to target applications,
-where a number of private IPv4 addresses from the range defined by
-:rfc:`1918` is mapped to a smaller set of public IPv4 addresses from the
-public range.
-
-Following quantities are used to describe inside to outside IP address
-and port bindings scenarios:
-
-- Inside-addresses, number of inside source addresses
- (representing inside hosts).
-- Ports-per-inside-address, number of TCP/UDP source
- ports per inside source address.
-- Outside-addresses, number of outside (public) source addresses
- allocated to NAT44.
-- Ports-per-outside-address, number of TCP/UDP source
- ports per outside source address. The maximal number of
- ports-per-outside-address usable for NAT is 64 512
- (in non-reserved port range 1024-65535, :rfc:`4787`).
-- Sharing-ratio, equal to inside-addresses / outside-addresses.
-
-CSIT NAT44 tests are designed to take into account the maximum number of
-ports (sessions) required per inside host (inside-address) and at the
-same time to maximize the use of outside-address range by using all
-available outside ports. With this in mind, the following scheme of
-NAT44 sharing ratios has been devised for use in CSIT:
-
-+--------------------------+---------------+
-| ports-per-inside-address | sharing-ratio |
-+==========================+===============+
-| 63 | 1024 |
-+--------------------------+---------------+
-| 126 | 512 |
-+--------------------------+---------------+
-| 252 | 256 |
-+--------------------------+---------------+
-| 504 | 128 |
-+--------------------------+---------------+
-
-Initial CSIT NAT44 tests, including associated TG/TRex traffic profiles,
-are based on ports-per-inside-address set to 63 and the sharing ratio of
-1024. This approach is currently used for all NAT44 tests including
-NAT44det (NAT44 deterministic used for Carrier Grade NAT applications)
-and NAT44ed (Endpoint Dependent).
-
-Private address ranges to be used in tests:
-
-- 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
-
- - Total of 2^16 (65 536) of usable IPv4 addresses.
- - Used in tests for up to 65 536 inside addresses (inside hosts).
-
-- 172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
-
- - Total of 2^20 (1 048 576) of usable IPv4 addresses.
- - Used in tests for up to 1 048 576 inside addresses (inside hosts).
-
-NAT44 Session Scale
-~~~~~~~~~~~~~~~~~~~
-
-NAT44 session scale tested is govern by the following logic:
-
-- Number of inside-addresses(hosts) H[i] = (H[i-1] x 2^2) with H(0)=1 024,
- i = 1,2,3, ...
-
- - H[i] = 1 024, 4 096, 16 384, 65 536, 262 144, ...
-
-- Number of sessions S[i] = H[i] * ports-per-inside-address
-
- - ports-per-inside-address = 63
-
-+---+---------+------------+
-| i | hosts | sessions |
-+===+=========+============+
-| 0 | 1 024 | 64 512 |
-+---+---------+------------+
-| 1 | 4 096 | 258 048 |
-+---+---------+------------+
-| 2 | 16 384 | 1 032 192 |
-+---+---------+------------+
-| 3 | 65 536 | 4 128 768 |
-+---+---------+------------+
-| 4 | 262 144 | 16 515 072 |
-+---+---------+------------+
-
-NAT44 Deterministic
-^^^^^^^^^^^^^^^^^^^
-
-NAT44det performance tests are using TRex STL (Stateless) API and traffic
-profiles, similar to all other stateless packet forwarding tests like
-ip4, ip6 and l2, sending UDP packets in both directions
-inside-to-outside and outside-to-inside. See
-:ref:`data_plane_throughput` for more detail.
-
-The inside-to-outside traffic uses single destination address (20.0.0.0)
-and port (1024).
-The inside-to-outside traffic covers whole inside address and port range,
-the outside-to-inside traffic covers whole outside address and port range.
-
-NAT44det translation entries are created during the ramp-up phase,
-followed by verification that all entries are present,
-before proceeding to the main measurements of the test.
-This ensures session setup does not impact the forwarding performance test.
-
-Associated CSIT test cases use the following naming scheme to indicate
-NAT44det scenario tested:
-
-- ethip4udp-nat44det-h{H}-p{P}-s{S}-[mrr|ndrpdr|soak]
-
- - {H}, number of inside hosts, H = 1024, 4096, 16384, 65536, 262144.
- - {P}, number of ports per inside host, P = 63.
- - {S}, number of sessions, S = 64512, 258048, 1032192, 4128768,
- 16515072.
- - [mrr|ndrpdr|soak], MRR, NDRPDR or SOAK test.
-
-..
- TODO: The -s{S} part is redundant,
- we can save space by removing it.
- TODO: Make traffic profile names resemble suite names more closely.
-
-NAT44 Endpoint-Dependent
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-..
- TODO: Is it possible to test a NAT44ed scenario where the outside source
- address and port is limited to just one value?
- In theory, as long as every inside source address&port traffic
- uses a different destination address&port, there will be no conflicts,
- and we could use bidirectional stateless profiles.
- Possibly, VPP requires some amount of outside source address&port
- to remain unused for security reasons. But we can try to see what happens.
-
-In order to excercise NAT44ed ability to translate based on both
-source and destination address and port, the inside-to-outside traffic
-varies also destination address and port. Destination port is the same
-as source port, destination address has the same offset as the source address,
-but applied to different subnet (starting with 20.0.0.0).
-
-As the mapping is not deterministic (for security reasons),
-we cannot easily use stateless bidirectional traffic profiles.
-Outside address and port range is fully covered,
-but we do not know which outside-to-inside source address and port to use
-to hit an open session of a particular outside address and port.
-
-Therefore, NAT44ed is benchmarked using following methodologies:
-
-- Unidirectional throughput using *stateless* traffic profile.
-- Connections-per-second using *stateful* traffic profile.
-- Bidirectional PPS (see below) using *stateful* traffic profile.
-
-Unidirectional NAT44ed throughput tests are using TRex STL (Stateless)
-APIs and traffic profiles, but with packets sent only in
-inside-to-outside direction.
-Similarly to NAT44det, NAT44ed unidirectional throughput tests include
-a ramp-up phase to establish and verify the presence of required NAT44ed
-binding entries.
-
-Stateful NAT44ed tests are using TRex ASTF (Advanced Stateful) APIs and
-traffic profiles, with packets sent in both directions. Tests are run
-with both UDP and TCP/IP sessions.
-As both NAT44ed CPS (connections-per-second) and PPS (packets-per-second)
-stateful tests measure (also) session opening performance,
-they use state reset instead of ramp-up trial.
-That is also the reason why PPS tests are not called throughput tests.
-
-Associated CSIT test cases use the following naming scheme to indicate
-NAT44det case tested:
-
-- Stateless: ethip4udp-nat44ed-h{H}-p{P}-s{S}-udir-[mrr|ndrpdr|soak]
-
- - {H}, number of inside hosts, H = 1024, 4096, 16384, 65536, 262144.
- - {P}, number of ports per inside host, P = 63.
- - {S}, number of sessions, S = 64512, 258048, 1032192, 4128768,
- 16515072.
- - udir-[mrr|ndrpdr|soak], unidirectional stateless tests MRR, NDRPDR
- or SOAK.
-
-- Stateful: ethip4[udp|tcp]-nat44ed-h{H}-p{P}-s{S}-[cps|pps]-[mrr|ndrpdr]
-
- - [udp|tcp], UDP or TCP/IP sessions
- - {H}, number of inside hosts, H = 1024, 4096, 16384, 65536, 262144.
- - {P}, number of ports per inside host, P = 63.
- - {S}, number of sessions, S = 64512, 258048, 1032192, 4128768,
- 16515072.
- - [cps|pps], connections-per-second session establishment rate or
- packets-per-second average rate.
- - [mrr|ndrpdr], bidirectional stateful tests MRR, NDRPDR.
-
-Stateful traffic profiles
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-There are several important detais which distinguish ASTF profiles
-from stateless profiles.
-
-General considerations
-~~~~~~~~~~~~~~~~~~~~~~
-
-Protocols
-_________
-
-ASTF profiles are limited to either UDP or TCP protocol.
-
-Programs
-________
-
-Each template in the profile defines two "programs", one for client side
-and one for server side. Each program specifies when that side has to wait
-until enough data is received (counted in packets for UDP and in bytes for TCP)
-and when to send additional data. Together, the two programs
-define a single transaction. Due to packet loss, transaction may take longer,
-use more packets (retransmission) or never finish in its entirety.
-
-Instances
-_________
-
-Client instance is created according to TPS parameter for the trial,
-and sends the first packet of the transaction (in some cases more packets).
-Server instance is created when first packet arrives on server side,
-each instance has different address or port.
-When a program reaches its end, the instance is deleted.
-
-This creates possible issues with server instances. If the server instance
-does not read all the data client has sent, late data packets
-can cause second copy of server instance to be created,
-which breaks assumptions on how many packet a transaction should have.
-
-The need for server instances to read all the data reduces the overall
-bandwidth TRex is able to create in ASTF mode.
-
-Note that client instances are not created on packets,
-so it is safe to end client program without reading all server data
-(unless the definition of transaction success requires that).
-
-Sequencing
-__________
-
-ASTF profiles offer two modes for choosing source and destination IP addresses
-for client programs: seqential and pseudorandom.
-In current tests we are using sequential addressing only (if destination
-address varies at all).
-
-For choosing client source UDP/TCP port, there is only one mode.
-We have not investigated whether it results in sequential or pseudorandom order.
-
-For client destination UDP/TCP port, we use a constant value,
-as typical TRex usage pattern binds the server instances (of the same program)
-to a single port. (If profile defines multiple server programs, different
-programs use different ports.)
-
-Transaction overlap
-___________________
-
-If a transaction takes longer to finish, compared to period implied by TPS,
-TRex will have multiple client or server instances active at a time.
-
-During calibration testing we have found this increases CPU utilization,
-and for high TPS it can lead to TRex's Rx or Tx buffers becoming full.
-This generally leads to duration stretching, and/or packet loss on TRex.
-
-Currently used transactions were chosen to be short, so risk of bad behavior
-is decreased. But in MRR tests, where load is computed based on NIC ability,
-not TRex ability, anomalous behavior is still possible.
-
-Delays
-______
-
-TRex supports adding constant delays to ASTF programs.
-This can be useful, for example if we want to separate connection establishment
-from data transfer.
-
-But as TRex tracks delayed instances as active, this still results
-in higher CPU utilization and reduced performance issues
-(as other overlaping transactions). So the current tests do not use any delays.
-
-Keepalives
-__________
-
-Both UDP and TCP protocol implementations in TRex programs support keepalive
-duration. That means there is a configurable period of keepalive time,
-and TRex sends keepalive packets automatically (outside the program)
-for the time the program is active (started, not ended yet)
-but not sending any packets.
-
-For TCP this is generally not a big deal, as the other side usually
-retransmits faster. But for UDP it means a packet loss may leave
-the receiving program running.
-
-In order to avoid keepalive packets, keepalive value is set to a high number.
-Here, "high number" means that even at maximum scale and minimum TPS,
-there are still no keepalive packets sent within the corresponding
-(computed) trial duration. This number is kept the same also for
-smaller scale traffic profiles, to simplify maintenance.
-
-Transaction success
-___________________
-
-The transaction is considered successful at Layer-7 (L7) level
-when both program instances close. At this point, various L7 counters
-(unofficial name) are updated on TRex.
-
-We found that proper close and L7 counter update can be CPU intensive,
-whereas lower-level counters (ipackets, opackets) called L2 counters
-can keep up with higher loads.
-
-For some tests, we do not need to confirm the whole transaction was successful.
-CPS (connections per second) tests are a typical example.
-We care only for NAT44ed creating a session (needs one packet in inside-to-outside
-direction per session) and being able to use it (needs one packet
-in outside-to-inside direction).
-
-Similarly in PPS (packets per second, combining session creation
-with data transfer) tests, we care about NAT44ed ability to forward packets,
-we do not care whether aplications (TRex) can fully process them at that rate.
-
-Therefore each type of tests has its own formula (usually just one counter
-already provided by TRex) to count "successful enough" transactions
-and attempted transactions. Currently, all tests relying on L7 counters
-use size-limited profiles, so they know what the count of attempted
-transactions should be, but due to duration stretching
-TRex might have been unable to send that many packets.
-For search purposes, unattempted transactions are treated the same
-as attemted byt failed transactions.
-
-Sometimes even the number of transactions as tracked by search algorithm
-does not match the transactions as defined by ASTF programs.
-See PPS profiles below.
-
-UDP CPS
-~~~~~~~
-
-This profile uses a minimalistic transaction to verify NAT44ed session has been
-created and it allows outside-to-inside traffic.
-
-Client instance sends one packet and ends.
-Server instance sends one packet upon creation and ends.
-
-In principle, packet size is configurable,
-but currently used tests apply only one value (64 bytes frame).
-
-Transaction counts as attempted when opackets counter increases on client side.
-Transaction counts as successful when ipackets counter increases on client side.
-
-TCP CPS
-~~~~~~~
-
-This profile uses a minimalistic transaction to verify NAT44ed session has been
-created and it allows outside-to-inside traffic.
-
-Client initiates TCP connection. Client waits until connection is confirmed
-(by reading zero data bytes). Client ends.
-Server accepts the connection. Server waits for indirect confirmation
-from client (by waiting for client to initiate close). Server ends.
-
-Without packet loss, the whole transaction takes 7 packets to finish
-(4 and 3 per direction, respectively).
-From NAT44ed point of view, only the first two are needed to verify
-the session got created.
-
-Packet size is not configurable, but currently used tests report
-frame size as 64 bytes.
-
-Transaction counts as attempted when tcps_connattempt counter increases
-on client side.
-Transaction counts as successful when tcps_connects counter increases
-on client side.
-
-UDP PPS
-~~~~~~~
-
-This profile uses a small transaction of "request-response" type,
-with several packets simulating data payload.
-
-Client sends 33 packets and closes immediately.
-Server reads all 33 packets (needed to avoid late packets creating new
-server instances), then sends 33 packets and closes.
-The value 33 was chosen ad-hoc (1 "protocol" packet and 32 "data" packets).
-It is possible other values would still be safe from avoiding overlapping
-transactions point of view.
-
-..
- TODO: 32 was chosen as it is a batch size DPDK driver puts on the PCIe bus
- at a time. May want to verify this with TRex ASTF devs and see if better
- UDP transaction sizes can be found to yield higher performance out of TRex.
-
-In principle, packet size is configurable,
-but currently used tests apply only one value (64 bytes frame)
-for both "protocol" and "data" packets.
-
-As this is a PPS tests, we do not track the big 66 packet transaction.
-Similarly to stateless tests, we treat each packet as a "transaction"
-for search algorthm purposes. Therefore a "transaction" is attempted
-when opacket counter on client or server side is increased.
-Transaction is successful if ipacket counter on client or server side
-is increased.
-
-If one of 33 client packets is lost, server instance will get stuck
-in the reading phase. This probably decreases TRex performance,
-but it leads to more stable results.
-
-TCP PPS
-~~~~~~~
-
-This profile uses a small transaction of "request-response" type,
-with some data size to be transferred both ways.
-
-Client connects, sends 11111 bytes of data, receives 11111 of data and closes.
-Server accepts connection, reads 11111 bytes of data, sends 11111 bytes
-of data and closes.
-Server read is needed to avoid premature close and second server instance.
-Client read is not stricly needed, but acks help TRex to close server quickly,
-thus saving CPU and improving performance.
-
-The value of 11111 bytes was chosen ad-hoc. It leads to 22 packets
-(11 each direction) to be exchanged if no loss occurs.
-In principle, size of data packets is configurable via setting
-maximum segment size. Currently that is not applied, so the TRex default value
-(1460 bytes) is used, while the test name still (wrongly) mentions
-64 byte frame size.
-
-Exactly as in UDP_PPS, ipackets and opackets counters are used for counting
-"transactions" (in fact packets).
-
-If packet loss occurs, there is large transaction overlap, even if most
-ASTF programs finish eventually. This leads to big duration stretching
-and somehow uneven rate of packets sent. This makes it hard to interpret
-MRR results, but NDR and PDR results tend to be stable enough.
-
-Ip4base tests
-^^^^^^^^^^^^^
-
-Contrary to stateless traffic profiles, we do not have a simple limit
-that would guarantee TRex is able to send traffic at specified load.
-For that reason, we have added tests where "nat44ed" is replaced by "ip4base".
-Instead of NAT44ed processing, the tests set minimalistic IPv4 routes,
-so that packets are forwarded in both inside-to-outside and outside-to-inside
-directions.
-
-The packets arrive to server end of TRex with different source address&port
-than in NAT44ed tests (no translation to outside values is done with ip4base),
-but those are not specified in the stateful traffic profiles.
-The server end uses the received address&port as destination
-for outside-to-inside traffic. Therefore the same stateful traffic profile
-works for both NAT44ed and ip4base test (of the same scale).
-
-The NAT44ed results are displayed together with corresponding ip4base results.
-If they are similar, TRex is probably the bottleneck.
-If NAT44ed result is visibly smaller, it describes the real VPP performance.
diff --git a/docs/report/introduction/methodology_nfv_service_density.rst b/docs/report/introduction/methodology_nfv_service_density.rst
deleted file mode 100644
index c5407b5125..0000000000
--- a/docs/report/introduction/methodology_nfv_service_density.rst
+++ /dev/null
@@ -1,109 +0,0 @@
-NFV Service Density
--------------------
-
-Network Function Virtualization (NFV) service density tests focus on
-measuring total per server throughput at varied NFV service “packing”
-densities with vswitch providing host dataplane. The goal is to compare
-and contrast performance of a shared vswitch for different network
-topologies and virtualization technologies, and their impact on vswitch
-performance and efficiency in a range of NFV service configurations.
-
-Each NFV service instance consists of a set of Network Functions (NFs),
-running in VMs (VNFs) or in Containers (CNFs), that are connected into a
-virtual network topology using VPP vswitch running in Linux user-mode.
-Multiple service instances share the vswitch that in turn provides per
-service chain forwarding context(s). In order to provide a most complete
-picture, each network topology and service configuration is tested in
-different service density setups by varying two parameters:
-
-- Number of service instances (e.g. 1, 2, 4, 6, 8, 10).
-- Number of NFs per service instance (e.g. 1, 2, 4, 6, 8, 10).
-
-Implementation of NFV service density tests in |csit-release| is using two NF
-applications:
-
-- VNF: VPP of the same version as vswitch running in KVM VM, configured with /8
- IPv4 prefix routing.
-- CNF: VPP of the same version as vswitch running in Docker Container,
- configured with /8 IPv4 prefix routing.
-
-Tests are designed such that in all tested cases VPP vswitch is the most
-stressed application, as for each flow vswitch is processing each packet
-multiple times, whereas VNFs and CNFs process each packets only once. To
-that end, all VNFs and CNFs are allocated enough resources to not become
-a bottleneck.
-
-Service Configurations
-~~~~~~~~~~~~~~~~~~~~~~
-
-Following NFV network topologies and configurations are tested:
-
-- VNF Service Chains (VSC) with L2 vswitch
-
- - *Network Topology*: Sets of VNFs dual-homed to VPP vswitch over
- virtio-vhost links. Each set belongs to separate service instance.
- - *Network Configuration*: VPP L2 bridge-domain contexts form logical
- service chains of VNF sets and connect each chain to physical
- interfaces.
-
-- CNF Service Chains (CSC) with L2 vswitch
-
- - *Network Topology*: Sets of CNFs dual-homed to VPP vswitch over
- memif links. Each set belongs to separate service instance.
- - *Network Configuration*: VPP L2 bridge-domain contexts form logical
- service chains of CNF sets and connect each chain to physical
- interfaces.
-
-- CNF Service Pipelines (CSP) with L2 vswitch
-
- - *Network Topology*: Sets of CNFs connected into pipelines over a
- series of memif links, with edge CNFs single-homed to VPP vswitch
- over memif links. Each set belongs to separate service instance.
- - *Network Configuration*: VPP L2 bridge-domain contexts connect each
- CNF pipeline to physical interfaces.
-
-Thread-to-Core Mapping
-~~~~~~~~~~~~~~~~~~~~~~
-
-CSIT defines specific ratios for mapping software threads of vswitch and
-VNFs/CNFs to physical cores, with separate ratios defined for main
-control threads and data-plane threads.
-
-In |csit-release| NFV service density tests run on Intel Xeon testbeds
-with Intel Hyper-Threading enabled, so each physical core is associated
-with a pair of sibling logical cores corresponding to the hyper-threads.
-
-|csit-release| executes tests with the following software thread to
-physical core mapping ratios:
-
-- vSwitch
-
- - Data-plane on single core
-
- - (main:core) = (1:1) => 1mt1c - 1 main thread on 1 core.
- - (data:core) = (1:1) => 2dt1c - 2 Data-plane Threads on 1 Core.
-
- - Data-plane on two cores
-
- - (main:core) = (1:1) => 1mt1c - 1 Main Thread on 1 Core.
- - (data:core) = (1:2) => 4dt2c - 4 Data-plane Threads on 2 Cores.
-
-- VNF and CNF
-
- - Data-plane on single core
-
- - (main:core) = (2:1) => 2mt1c - 2 Main Threads on 1 Core, 1 Thread
- per NF, core shared between two NFs.
- - (data:core) = (1:1) => 2dt1c - 2 Data-plane Threads on 1 Core per
- NF.
-
- - Data-plane on single logical core (Two NFs per physical core)
-
- - (main:core) = (2:1) => 2mt1c - 2 Main Threads on 1 Core, 1 Thread
- per NF, core shared between two NFs.
- - (data:core) = (2:1) => 2dt1c - 2 Data-plane Threads on 1 Core, 1
- Thread per NF, core shared between two NFs.
-
-Maximum tested service densities are limited by a number of physical
-cores per NUMA. |csit-release| allocates cores within NUMA0. Support for
-multi NUMA tests is to be added in future release.
diff --git a/docs/report/introduction/methodology_packet_latency.rst b/docs/report/introduction/methodology_packet_latency.rst
deleted file mode 100644
index 1f7ad7f633..0000000000
--- a/docs/report/introduction/methodology_packet_latency.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-Packet Latency
---------------
-
-TRex Traffic Generator (TG) is used for measuring latency across 2-Node
-and 3-Node SUT server topologies. TRex integrates `A High Dynamic Range
-Histogram (HDRH) <http://hdrhistogram.org/>`_ code providing per packet
-latency distribution for latency streams sent in parallel to the main
-load packet streams. Packet latency is measured using following
-methodology:
-
-- Latency tests are performed at following packet load levels:
-
- - No-Load: latency streams only.
- - Low-Load: at 10% PDR.
- - Mid-Load: at 50% PDR.
- - High-Load: at 90% PDR.
- - NDR-Load: at 100% NDR.
- - PDR-Load: at 100% PDR.
-
-- Latency is measured for all tested packet sizes except IMIX due to
- TG restriction.
-- TG sends dedicated latency streams, one per direction, each at the
- rate of 9 kpps at the prescribed packet size; these are sent in
- addition to the main load streams.
-- TG reports Min/Avg/Max and HDRH latency values distribution per stream
- direction, hence two sets of latency values are reported per test
- case.
-- Reported latency values are aggregate across tested topology.
-- +/- 1 usec is the measurement accuracy advertised by TRex TG for the
- setup used.
-- TG setup introduces an always-on Tx/Rx interface latency of about 2
- * 2 usec per direction induced by TRex SW writing and reading packet
- timestamps on CPU cores.
diff --git a/docs/report/introduction/methodology_reconf.rst b/docs/report/introduction/methodology_reconf.rst
deleted file mode 100644
index 1a1f4cc98c..0000000000
--- a/docs/report/introduction/methodology_reconf.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-.. _reconf_tests:
-
-Reconfiguration Tests
----------------------
-
-.. important::
-
- **DISCLAIMER**: Described reconf test methodology is experimental, and
- subject to change following consultation within csit-dev, vpp-dev
- and user communities. Current test results should be treated as indicative.
-
-Overview
-~~~~~~~~
-
-Reconf tests are designed to measure the impact of VPP re-configuration
-on data plane traffic.
-While VPP takes some measures against the traffic being
-entirely stopped for a prolonged time,
-the immediate forwarding rate varies during the re-configuration,
-as some configurations steps need the active dataplane worker threads
-to be stopped temporarily.
-
-As the usual methods of measuring throughput need multiple trial measurements
-with somewhat long durations, and the re-configuration process can also be long,
-finding an offered load which would result in zero loss
-during the re-configuration process would be time-consuming.
-
-Instead, reconf tests first find a througput value (lower bound for NDR)
-without re-configuration, and then maintain that ofered load
-during re-configuration. The measured loss count is then assumed to be caused
-by the re-configuration process. The result published by reconf tests
-is the effective blocked time, that is
-the loss count divided by the offered load.
-
-Current Implementation
-~~~~~~~~~~~~~~~~~~~~~~
-
-Each reconf suite is based on a similar MLRsearch performance suite.
-
-MLRsearch parameters are changed to speed up the throughput discovery.
-For example, PDR is not searched for, and the final trial duration is shorter.
-
-The MLRsearch suite has to contain a configuration parameter
-that can be scaled up, e.g. number of tunnels or number of service chains.
-Currently, only increasing the scale is supported
-as the re-configuration operation. In future, scale decrease
-or other operations can be implemented.
-
-The traffic profile is not changed, so the traffic present is processed
-only by the smaller scale configuration. The added tunnels / chains
-are not targetted by the traffic.
-
-For the re-configuration, the same Robot Framework and Python libraries
-are used, as were used in the initial configuration, with the exception
-of the final calls that do not interact with VPP (e.g. starting
-virtual machines) being skipped to reduce the test overall duration.
-
-Discussion
-~~~~~~~~~~
-
-Robot Framework introduces a certain overhead, which may affect timing
-of individual VPP API calls, which in turn may affect
-the number of packets lost.
-
-The exact calls executed may contain unnecessary info dumps, repeated commands,
-or commands which change a value that do not need to be changed (e.g. MTU).
-Thus, implementation details are affecting the results, even if their effect
-on the corresponding MLRsearch suite is negligible.
-
-The lower bound for NDR is the only value safe to be used when zero packets lost
-are expected without re-configuration. But different suites show different
-"jitter" in that value. For some suites, the lower bound is not tight,
-allowing full NIC buffers to drain quickly between worker pauses.
-For other suites, lower bound for NDR still has quite a large probability
-of non-zero packet loss even without re-configuration.
diff --git a/docs/report/introduction/methodology_terminology.rst b/docs/report/introduction/methodology_terminology.rst
deleted file mode 100644
index 33ab116491..0000000000
--- a/docs/report/introduction/methodology_terminology.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-Terminology
------------
-
-- **Frame size**: size of an Ethernet Layer-2 frame on the wire, including
- any VLAN tags (dot1q, dot1ad) and Ethernet FCS, but excluding Ethernet
- preamble and inter-frame gap. Measured in Bytes.
-- **Packet size**: same as frame size, both terms used interchangeably.
-- **Inner L2 size**: for tunneled L2 frames only, size of an encapsulated
- Ethernet Layer-2 frame, preceded with tunnel header, and followed by
- tunnel trailer. Measured in Bytes.
-- **Inner IP size**: for tunneled IP packets only, size of an encapsulated
- IPv4 or IPv6 packet, preceded with tunnel header, and followed by
- tunnel trailer. Measured in Bytes.
-- **Device Under Test (DUT)**: In software networking, "device" denotes a
- specific piece of software tasked with packet processing. Such device
- is surrounded with other software components (such as operating system
- kernel). It is not possible to run devices without also running the
- other components, and hardware resources are shared between both. For
- purposes of testing, the whole set of hardware and software components
- is called "System Under Test" (SUT). As SUT is the part of the whole
- test setup performance of which can be measured with :rfc:`2544`, using
- SUT instead of :rfc:`2544` DUT. Device under test
- (DUT) can be re-introduced when analyzing test results using whitebox
- techniques, but this document sticks to blackbox testing.
-- **System Under Test (SUT)**: System under test (SUT) is a part of the
- whole test setup whose performance is to be benchmarked. The complete
- methodology contains other parts, whose performance is either already
- established, or not affecting the benchmarking result.
-- **Bi-directional throughput tests**: involve packets/frames flowing in
- both east-west and west-east directions over every tested interface of
- SUT/DUT. Packet flow metrics are measured per direction, and can be
- reported as aggregate for both directions (i.e. throughput) and/or
- separately for each measured direction (i.e. latency). In most cases
- bi-directional tests use the same (symmetric) load in both directions.
-- **Uni-directional throughput tests**: involve packets/frames flowing in
- only one direction, i.e. either east-west or west-east direction, over
- every tested interface of SUT/DUT. Packet flow metrics are measured
- and are reported for measured direction.
-- **Packet Loss Ratio (PLR)**: ratio of packets received relative to packets
- transmitted over the test trial duration, calculated using formula:
- PLR = ( pkts_transmitted - pkts_received ) / pkts_transmitted.
- For bi-directional throughput tests aggregate PLR is calculated based
- on the aggregate number of packets transmitted and received.
-- **Packet Throughput Rate**: maximum packet offered load DUT/SUT forwards
- within the specified Packet Loss Ratio (PLR). In many cases the rate
- depends on the frame size processed by DUT/SUT. Hence packet
- throughput rate MUST be quoted with specific frame size as received by
- DUT/SUT during the measurement. For bi-directional tests, packet
- throughput rate should be reported as aggregate for both directions.
- Measured in packets-per-second (pps) or frames-per-second (fps),
- equivalent metrics.
-- **Bandwidth Throughput Rate**: a secondary metric calculated from packet
- throughput rate using formula: bw_rate = pkt_rate * (frame_size +
- L1_overhead) * 8, where L1_overhead for Ethernet includes preamble (8
- Bytes) and inter-frame gap (12 Bytes). For bi-directional tests,
- bandwidth throughput rate should be reported as aggregate for both
- directions. Expressed in bits-per-second (bps).
-- **Non Drop Rate (NDR)**: maximum packet/bandwith throughput rate sustained
- by DUT/SUT at PLR equal zero (zero packet loss) specific to tested
- frame size(s). MUST be quoted with specific packet size as received by
- DUT/SUT during the measurement. Packet NDR measured in
- packets-per-second (or fps), bandwidth NDR expressed in
- bits-per-second (bps).
-- **Partial Drop Rate (PDR)**: maximum packet/bandwith throughput rate
- sustained by DUT/SUT at PLR greater than zero (non-zero packet loss)
- specific to tested frame size(s). MUST be quoted with specific packet
- size as received by DUT/SUT during the measurement. Packet PDR
- measured in packets-per-second (or fps), bandwidth PDR expressed in
- bits-per-second (bps).
-- **Maximum Receive Rate (MRR)**: packet/bandwidth rate regardless of PLR
- sustained by DUT/SUT under specified Maximum Transmit Rate (MTR)
- packet load offered by traffic generator. MUST be quoted with both
- specific packet size and MTR as received by DUT/SUT during the
- measurement. Packet MRR measured in packets-per-second (or fps),
- bandwidth MRR expressed in bits-per-second (bps).
-- **Trial**: a single measurement step.
-- **Trial duration**: amount of time over which packets are transmitted and
- received in a single measurement step.
diff --git a/docs/report/introduction/methodology_trex_traffic_generator.rst b/docs/report/introduction/methodology_trex_traffic_generator.rst
deleted file mode 100644
index 9813b28025..0000000000
--- a/docs/report/introduction/methodology_trex_traffic_generator.rst
+++ /dev/null
@@ -1,203 +0,0 @@
-TRex Traffic Generator
-----------------------
-
-Usage
-~~~~~
-
-`TRex traffic generator <https://trex-tgn.cisco.com>`_ is used for majority of
-CSIT performance tests. TRex is used in multiple types of performance tests,
-see :ref:`data_plane_throughput` for more detail.
-
-TRex is installed and run on the TG compute node.
-Versioning, installation and startup is documented in
-:ref:`test_environment_tg`.
-
-Traffic modes
-~~~~~~~~~~~~~
-
-TRex is primarily used in two (mutually incompatible) modes.
-
-Stateless mode
-______________
-
-Sometimes abbreviated as STL.
-A mode with high performance, which is unable to react to incoming traffic.
-We use this mode whenever it is possible.
-Typical test where this mode is not applicable is NAT44ED,
-as DUT does not assign deterministic outside address+port combinations,
-so we are unable to create traffic that does not lose packets
-in out2in direction.
-
-Measurement results are based on simple L2 counters
-(opackets, ipackets) for each traffic direction.
-
-Stateful mode
-_____________
-
-A mode capable of reacting to incoming traffic.
-Contrary to the stateless mode, only UDP and TCP is supported
-(carried over IPv4 or IPv6 packets).
-Performance is limited, as TRex needs to do more CPU processing.
-TRex suports two subtypes of stateful traffic,
-CSIT uses ASTF (Advanced STateFul mode).
-
-This mode is suitable for NAT44ED tests, as clients send packets from inside,
-and servers react to it, so they see the outside address and port to respond to.
-Also, they do not send traffic before NAT44ED has opened the sessions.
-
-When possible, L2 counters (opackets, ipackets) are used.
-Some tests need L7 counters, which track protocol state (e.g. TCP),
-but the values are less than reliable on high loads.
-
-Traffic Continuity
-~~~~~~~~~~~~~~~~~~
-
-Generated traffic is either continuous, or limited.
-Both modes support both continuities in principle.
-
-Continuous traffic
-__________________
-
-Traffic is started without any size goal.
-Traffic is ended based on time duration as hinted by search algorithm.
-This is useful when DUT behavior does not depend on the traffic duration.
-The default for stateless mode.
-
-Limited traffic
-_______________
-
-Traffic has defined size goal, duration is computed based on the goal.
-Traffic is ended when the size goal is reached,
-or when the computed duration is reached.
-This is useful when DUT behavior depends on traffic size,
-e.g. target number of session, each to be hit once.
-This is used mainly for stateful mode.
-
-Traffic synchronicity
-~~~~~~~~~~~~~~~~~~~~~
-
-Traffic can be generated synchronously (test waits for duration)
-or asynchronously (test operates during traffic and stops traffic explicitly).
-
-Synchronous traffic
-___________________
-
-Trial measurement is driven by given (or precomputed) duration,
-no activity from test driver during the traffic.
-Used for most trials.
-
-Asynchronous traffic
-____________________
-
-Traffic is started, but then the test driver is free to perform
-other actions, before stopping the traffic explicitly.
-This is used mainly by reconf tests, but also by some trials
-used for runtime telemetry.
-
-Trafic profiles
-~~~~~~~~~~~~~~~
-
-TRex supports several ways to define the traffic.
-CSIT uses small Python modules based on Scapy as definitions.
-Details of traffic profiles depend on modes (STL or ASTF),
-but some are common for both modes.
-
-Search algorithms are intentionally unaware of the traffic mode used,
-so CSIT defines some terms to use instead of mode-specific TRex terms.
-
-Transactions
-____________
-
-TRex traffic profile defines a small number of behaviors,
-in CSIT called transaction templates. Traffic profiles also instruct
-TRex how to create a large number of transactions based on the templates.
-
-Continuous traffic loops over the generated transactions.
-Limited traffic usually executes each transaction once.
-
-Currently, ASTF profiles define one transaction template each.
-Number of packets expected per one transaction varies based on profile details,
-as does the criterion for when a transaction is considered successful.
-
-Stateless transactions are just one packet (sent from one TG port,
-successful if received on the other TG port).
-Thus unidirectional stateless profiles define one transaction template,
-bidirectional stateless profiles define two transaction templates.
-
-TPS multiplier
-______________
-
-TRex aims to open transaction specified by the profile at a steady rate.
-While TRex allows the transaction template to define its intended "cps" value,
-CSIT does not specify it, so the default value of 1 is applied,
-meaning TRex will open one transaction per second (and transaction template)
-by default. But CSIT invocation uses "multiplier" (mult) argument
-when starting the traffic, that multiplies the cps value,
-meaning it acts as TPS (transactions per second) input.
-
-With a slight abuse of nomenclature, bidirectional stateless tests
-set "packets per transaction" value to 2, just to keep the TPS semantics
-as a unidirectional input value.
-
-Duration stretching
-___________________
-
-TRex can be IO-bound, CPU-bound, or have any other reason
-why it is not able to generate the traffic at the requested TPS.
-Some conditions are detected, leading to TRex failure,
-for example when the bandwidth does not fit into the line capacity.
-But many reasons are not detected.
-
-Unfortunately, TRex frequently reacts by not honoring the duration
-in synchronous mode, taking longer to send the traffic,
-leading to lower then requested load offered to DUT.
-This usualy breaks assumptions used in search algorithms,
-so it has to be avoided.
-
-For stateless traffic, the behavior is quite deterministic,
-so the workaround is to apply a fictional TPS limit (max_rate)
-to search algorithms, usually depending only on the NIC used.
-
-For stateful traffic the behavior is not deterministic enough,
-for example the limit for TCP traffic depends on DUT packet loss.
-In CSIT we decided to use logic similar to asynchronous traffic.
-The traffic driver sleeps for a time, then stops the traffic explicitly.
-The library that parses counters into measurement results
-than usually treats unsent packets as lost.
-
-We have added a IP4base tests for every NAT44ED test,
-so that users can compare results.
-Of the results are very similar, it is probable TRex was the bottleneck.
-
-Startup delay
-_____________
-
-By investigating TRex behavior, it was found that TRex does not start
-the traffic in ASTF mode immediately. There is a delay of zero traffic,
-after which the traffic rate ramps up to the defined TPS value.
-
-It is possible to poll for counters during the traffic
-(fist nonzero means traffic has started),
-but that was found to influence the NDR results.
-
-Thus "sleep and stop" stategy is used, which needs a correction
-to the computed duration so traffic is stopped after the intended
-duration of real traffic. Luckily, it turns out this correction
-is not dependend on traffic profile nor CPU used by TRex,
-so a fixed constant (0.1115 seconds) works well.
-
-The result computations need a precise enough duration of the real traffic,
-luckily server side of TRex has precise enough counter for that.
-
-It is unknown whether stateless traffic profiles also exhibit a startup delay.
-Unfortunately, stateless mode does not have similarly precise duration counter,
-so some results (mostly MRR) are affected by less precise duration measurement
-in Python part of CSIT code.
-
-Measuring Latency
-~~~~~~~~~~~~~~~~~
-
-If measurement of latency is requested, two more packet streams are
-created (one for each direction) with TRex flow_stats parameter set to
-STLFlowLatencyStats. In that case, returned statistics will also include
-min/avg/max latency values and encoded HDRHistogram data.
diff --git a/docs/report/introduction/methodology_tunnel_encapsulations.rst b/docs/report/introduction/methodology_tunnel_encapsulations.rst
deleted file mode 100644
index c61df171ac..0000000000
--- a/docs/report/introduction/methodology_tunnel_encapsulations.rst
+++ /dev/null
@@ -1,38 +0,0 @@
-Tunnel Encapsulations
----------------------
-
-Tunnel encapsulations testing is grouped based on the type of outer
-header: IPv4 or IPv6.
-
-IPv4 Tunnels
-~~~~~~~~~~~~
-
-VPP is tested in the following IPv4 tunnel baseline configurations:
-
-- *ip4vxlan-l2bdbase*: VXLAN over IPv4 tunnels with L2 bridge-domain MAC
- switching.
-- *ip4vxlan-l2xcbase*: VXLAN over IPv4 tunnels with L2 cross-connect.
-- *ip4lispip4-ip4base*: LISP over IPv4 tunnels with IPv4 routing.
-- *ip4lispip6-ip6base*: LISP over IPv4 tunnels with IPv6 routing.
-
-In all cases listed above low number of MAC, IPv4, IPv6 flows (253 or 254 per
-direction) is switched or routed by VPP.
-
-In addition selected IPv4 tunnels are tested at scale:
-
-- *dot1q--ip4vxlanscale-l2bd*: VXLAN over IPv4 tunnels with L2 bridge-
- domain MAC switching, with scaled up dot1q VLANs (10, 100, 1k),
- mapped to scaled up L2 bridge-domains (10, 100, 1k), that are in turn
- mapped to (10, 100, 1k) VXLAN tunnels. 64.5k flows are transmitted per
- direction.
-
-IPv6 Tunnels
-~~~~~~~~~~~~
-
-VPP is tested in the following IPv6 tunnel baseline configurations:
-
-- *ip6lispip4-ip4base*: LISP over IPv4 tunnels with IPv4 routing.
-- *ip6lispip6-ip6base*: LISP over IPv4 tunnels with IPv6 routing.
-
-In all cases listed above low number of IPv4, IPv6 flows (253 or 254 per
-direction) is routed by VPP.
diff --git a/docs/report/introduction/methodology_vpp_device_functional.rst b/docs/report/introduction/methodology_vpp_device_functional.rst
deleted file mode 100644
index ff6f3fb03b..0000000000
--- a/docs/report/introduction/methodology_vpp_device_functional.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-VPP_Device Functional
----------------------
-
-|csit-release| includes VPP_Device test environment for functional VPP
-device tests integrated into LFN CI/CD infrastructure. VPP_Device tests
-run on 1-Node testbeds (1n-skx, 1n-arm) and rely on Linux SRIOV Virtual
-Function (VF), dot1q VLAN tagging and external loopback cables to
-facilitate packet passing over external physical links. Initial focus is
-on few baseline tests. New device tests can be added by small edits
-to existing CSIT Performance (2-node) test. RF test definition code
-stays unchanged with the exception of traffic generator related L2 KWs.
diff --git a/docs/report/introduction/methodology_vpp_forwarding_modes.rst b/docs/report/introduction/methodology_vpp_forwarding_modes.rst
deleted file mode 100644
index 1af3a46556..0000000000
--- a/docs/report/introduction/methodology_vpp_forwarding_modes.rst
+++ /dev/null
@@ -1,90 +0,0 @@
-VPP Forwarding Modes
---------------------
-
-VPP is tested in a number of L2 and IP packet lookup and forwarding
-modes. Within each mode baseline and scale tests are executed, the
-latter with varying number of lookup entries.
-
-L2 Ethernet Switching
-~~~~~~~~~~~~~~~~~~~~~
-
-VPP is tested in three L2 forwarding modes:
-
-- *l2patch*: L2 patch, the fastest point-to-point L2 path that loops
- packets between two interfaces without any Ethernet frame checks or
- lookups.
-- *l2xc*: L2 cross-connect, point-to-point L2 path with all Ethernet
- frame checks, but no MAC learning and no MAC lookup.
-- *l2bd*: L2 bridge-domain, multipoint-to-multipoint L2 path with all
- Ethernet frame checks, with MAC learning (unless static MACs are used)
- and MAC lookup.
-
-l2bd tests are executed in baseline and scale configurations:
-
-- *l2bdbase*: low number of L2 flows (254 per direction) is switched by
- VPP. They drive the content of MAC FIB size (508 total MAC entries).
- Both source and destination MAC addresses are incremented on a packet
- by packet basis.
-
-- *l2bdscale*: high number of L2 flows is switched by VPP. Tested MAC
- FIB sizes include: i) 10k (5k unique flows per direction), ii) 100k
- (2x 50k flows) and iii) 1M (2x 500k). Both source and destination MAC
- addresses are incremented on a packet by packet basis, ensuring new
- entries are learn refreshed and looked up at every packet, making it
- the worst case scenario.
-
-Ethernet wire encapsulations tested include: untagged, dot1q, dot1ad.
-
-IPv4 Routing
-~~~~~~~~~~~~
-
-IPv4 routing tests are executed in baseline and scale configurations:
-
-- *ip4base*: low number of IPv4 flows (253 or 254 per direction) is routed by
- VPP. They drive the content of IPv4 FIB size (506 or 508 total /32 prefixes).
- Destination IPv4 addresses are incremented on a packet by packet
- basis.
-
-- *ip4scale*: high number of IPv4 flows is routed by VPP. Tested IPv4
- FIB sizes of /32 prefixes include: i) 20k (10k unique flows per
- direction), ii) 200k (2x 100k flows) and iii) 2M (2x 1M). Destination
- IPv4 addresses are incremented on a packet by packet basis, ensuring
- new FIB entries are looked up at every packet, making it the worst
- case scenario.
-
-IPv6 Routing
-~~~~~~~~~~~~
-
-IPv6 routing tests are executed in baseline and scale configurations:
-
-- *ip6base*: low number of IPv6 flows (253 or 254 per direction) is routed by
- VPP. They drive the content of IPv6 FIB size (506 or 508 total /128 prefixes).
- Destination IPv6 addresses are incremented on a packet by packet
- basis.
-
-- *ip6scale*: high number of IPv6 flows is routed by VPP. Tested IPv6
- FIB sizes of /128 prefixes include: i) 20k (10k unique flows per
- direction), ii) 200k (2x 100k flows) and iii) 2M (2x 1M). Destination
- IPv6 addresses are incremented on a packet by packet basis, ensuring
- new FIB entries are looked up at every packet, making it the worst
- case scenario.
-
-SRv6 Routing
-~~~~~~~~~~~~
-
-SRv6 routing tests are executed in a number of baseline configurations,
-in each case SR policy and steering policy are configured for one
-direction and one (or two) SR behaviours (functions) in the other
-directions:
-
-- *srv6enc1sid*: One SID (no SRH present), one SR function - End.
-- *srv6enc2sids*: Two SIDs (SRH present), two SR functions - End and
- End.DX6.
-- *srv6enc2sids-nodecaps*: Two SIDs (SRH present) without decapsulation,
- one SR function - End.
-- *srv6proxy-dyn*: Dynamic SRv6 proxy, one SR function - End.AD.
-- *srv6proxy-masq*: Masquerading SRv6 proxy, one SR function - End.AM.
-- *srv6proxy-stat*: Static SRv6 proxy, one SR function - End.AS.
-
-In all listed cases low number of IPv6 flows (253 per direction) is
-routed by VPP.
diff --git a/docs/report/introduction/methodology_vpp_startup_settings.rst b/docs/report/introduction/methodology_vpp_startup_settings.rst
deleted file mode 100644
index e3e8d29b23..0000000000
--- a/docs/report/introduction/methodology_vpp_startup_settings.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-VPP Startup Settings
---------------------
-
-CSIT code manipulates a number of VPP settings in startup.conf for
-optimized performance. List of common settings applied to all tests and
-test dependent settings follows.
-
-See `VPP startup.conf`_ for a complete set and description of listed
-settings.
-
-Common Settings
-~~~~~~~~~~~~~~~
-
-List of VPP startup.conf settings applied to all tests:
-
-#. heap-size <value> - set separately for ip4, ip6, stats, main
- depending on scale tested.
-#. no-tx-checksum-offload - disables UDP / TCP TX checksum offload in
- DPDK. Typically needed for use faster vector PMDs (together with
- no-multi-seg).
-#. buffers-per-numa <value> - sets a number of memory buffers allocated
- to VPP per CPU socket. VPP default is 16384. Needs to be increased for
- scenarios with large number of interfaces and worker threads. To
- accommodate for scale tests, CSIT is setting it to the maximum possible
- value corresponding to the limit of DPDK memory mappings (currently
- 256). For Xeon Skylake platforms configured with 2MB hugepages and VPP
- data-size and buffer-size defaults (2048B and 2496B respectively), this
- results in value of 215040 (256 * 840 = 215040, 840 * 2496B buffers fit
- in 2MB hugepage ). For Xeon Haswell nodes value of 107520 is used.
-
-Per Test Settings
-~~~~~~~~~~~~~~~~~
-
-List of vpp startup.conf settings applied dynamically per test:
-
-#. corelist-workers <list_of_cores> - list of logical cores to run VPP
- worker data plane threads. Depends on HyperThreading and core per
- test configuration.
-#. num-rx-queues <value> - depends on a number of VPP threads and NIC
- interfaces.
-#. no-multi-seg - disables multi-segment buffers in DPDK, improves
- packet throughput, but disables Jumbo MTU support. Disabled for all
- tests apart from the ones that require Jumbo 9000B frame support.
-#. UIO driver - depends on topology file definition.
-#. QAT VFs - depends on NRThreads, each thread = 1QAT VFs.
diff --git a/docs/report/introduction/physical_testbeds.rst b/docs/report/introduction/physical_testbeds.rst
deleted file mode 100644
index 3412e94c05..0000000000
--- a/docs/report/introduction/physical_testbeds.rst
+++ /dev/null
@@ -1,432 +0,0 @@
-.. _tested_physical_topologies:
-
-Physical Testbeds
-=================
-
-All :abbr:`FD.io (Fast Data Input/Ouput)` :abbr:`CSIT (Continuous System
-Integration and Testing)` performance test results included in this
-report are executed on the physical testbeds hosted by :abbr:`LF (Linux
-Foundation)` FD.io project, unless otherwise noted.
-
-Two physical server topology types are used:
-
-- **2-Node Topology**: Consists of one server acting as a System Under
- Test (SUT) and one server acting as a Traffic Generator (TG), with
- both servers connected into a ring topology. Used for executing tests
- that require frame encapsulations supported by TG.
-
-- **3-Node Topology**: Consists of two servers acting as a Systems Under
- Test (SUTs) and one server acting as a Traffic Generator (TG), with
- all servers connected into a ring topology. Used for executing tests
- that require frame encapsulations not supported by TG e.g. certain
- overlay tunnel encapsulations and IPsec. Number of native Ethernet,
- IPv4 and IPv6 encapsulation tests are also executed on these testbeds,
- for comparison with 2-Node Topology.
-
-Current FD.io production testbeds are built with SUT servers based on
-the following processor architectures:
-
-- Intel Xeon: Skylake Platinum 8180, Haswell-SP E5-2699v3,
- Cascade Lake Platinum 8280, Cascade Lake 6252N.
-- Intel Atom: Denverton C3858.
-- Arm: TaiShan 2280, hip07-d05.
-- AMD EPYC: Zen2 7532.
-
-Server SUT performance depends on server and processor type, hence
-results for testbeds based on different servers must be reported
-separately, and compared if appropriate.
-
-Complete technical specifications of compute servers used in CSIT
-physical testbeds are maintained in FD.io CSIT repository:
-https://git.fd.io/csit/tree/docs/lab/testbed_specifications.md.
-
-Following is the description of existing production testbeds.
-
-2-Node AMD EPYC Zen2 (2n-zn2)
------------------------------
-
-One 2n-zn2 testbed in in operation in FD.io labs. It is built based on
-two SuperMicro SuperMicro AS-1114S-WTRT servers, with SUT and TG servers
-equipped with one AMD EPYC Zen2 7532 processor each (256 MB Cache, 2.40
-GHz, 32 cores). 2n-zn2 physical topology is shown below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-2n-zn2}
- \label{fig:testbed-2n-zn2}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-2n-zn2.svg
- :alt: testbed-2n-zn2
- :align: center
-
-SUT server is populated with the following NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: cx556a-edat ConnectX5 2p100GE Mellanox.
-
-TG server runs TRex application and is populated with the following
-NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: cx556a-edat ConnectX5 2p100GE Mellanox.
-
-All AMD EPYC Zen2 7532 servers run with AMD SMT enabled, doubling the
-number of logical cores exposed to Linux.
-
-2-Node Xeon Cascade Lake (2n-clx)
----------------------------------
-
-Three 2n-clx testbeds are in operation in FD.io labs. Each 2n-clx testbed
-is built with two SuperMicro SYS-7049GP-TRT servers, SUTs are equipped with two
-Intel Xeon Gold 6252N processors (35.75 MB Cache, 2.30 GHz, 24 cores).
-TGs are equiped with Intel Xeon Cascade Lake Platinum 8280 processors (38.5 MB
-Cache, 2.70 GHz, 28 cores). 2n-clx physical topology is shown below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-2n-clx}
- \label{fig:testbed-2n-clx}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-2n-clx.svg
- :alt: testbed-2n-clx
- :align: center
-
-SUT servers are populated with the following NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: cx556a-edat ConnectX5 2p100GE Mellanox.
-#. NIC-4: empty, future expansion.
-#. NIC-5: empty, future expansion.
-#. NIC-6: empty, future expansion.
-
-TG servers run T-Rex application and are populated with the following
-NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: cx556a-edat ConnectX5 2p100GE Mellanox.
-#. NIC-4: empty, future expansion.
-#. NIC-5: empty, future expansion.
-#. NIC-6: x710-DA4 4p10GE Intel. (For self-tests.)
-
-All Intel Xeon Cascade Lake servers run with Intel Hyper-Threading enabled,
-doubling the number of logical cores exposed to Linux.
-
-2-Node Xeon Skylake (2n-skx)
-----------------------------
-
-Four 2n-skx testbeds are in operation in FD.io labs. Each 2n-skx testbed
-is built with two SuperMicro SYS-7049GP-TRT servers, each in turn
-equipped with two Intel Xeon Skylake Platinum 8180 processors (38.5 MB
-Cache, 2.50 GHz, 28 cores). 2n-skx physical topology is shown below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-2n-skx}
- \label{fig:testbed-2n-skx}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-2n-skx.svg
- :alt: testbed-2n-skx
- :align: center
-
-SUT servers are populated with the following NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: empty, future expansion.
-#. NIC-4: empty, future expansion.
-#. NIC-5: empty, future expansion.
-#. NIC-6: empty, future expansion.
-
-TG servers run T-Rex application and are populated with the following
-NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: empty, future expansion.
-#. NIC-4: empty, future expansion.
-#. NIC-5: empty, future expansion.
-#. NIC-6: x710-DA4 4p10GE Intel. (For self-tests.)
-
-All Intel Xeon Skylake servers run with Intel Hyper-Threading enabled,
-doubling the number of logical cores exposed to Linux, with 56 logical
-cores and 28 physical cores per processor socket.
-
-3-Node Xeon Skylake (3n-skx)
-----------------------------
-
-Two 3n-skx testbeds are in operation in FD.io labs. Each 3n-skx testbed
-is built with three SuperMicro SYS-7049GP-TRT servers, each in turn
-equipped with two Intel Xeon Skylake Platinum 8180 processors (38.5 MB
-Cache, 2.50 GHz, 28 cores). 3n-skx physical topology is shown below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-3n-skx}
- \label{fig:testbed-3n-skx}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-3n-skx.svg
- :alt: testbed-3n-skx
- :align: center
-
-SUT1 and SUT2 servers are populated with the following NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: empty, future expansion.
-#. NIC-4: empty, future expansion.
-#. NIC-5: empty, future expansion.
-#. NIC-6: empty, future expansion.
-
-TG servers run T-Rex application and are populated with the following
-NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: empty, future expansion.
-#. NIC-4: empty, future expansion.
-#. NIC-5: empty, future expansion.
-#. NIC-6: x710-DA4 4p10GE Intel. (For self-tests.)
-
-All Intel Xeon Skylake servers run with Intel Hyper-Threading enabled,
-doubling the number of logical cores exposed to Linux, with 56 logical
-cores and 28 physical cores per processor socket.
-
-3-Node Xeon Haswell (3n-hsw)
-----------------------------
-
-Three 3n-hsw testbeds are in operation in FD.io labs. Each 3n-hsw
-testbed is built with three Cisco UCS-c240m3 servers, each in turn
-equipped with two Intel Xeon Haswell-SP E5-2699v3 processors (45 MB
-Cache, 2.3 GHz, 18 cores). 3n-hsw physical topology is shown below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-3n-hsw}
- \label{fig:testbed-3n-hsw}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-3n-hsw.svg
- :alt: testbed-3n-hsw
- :align: center
-
-SUT1 and SUT2 servers are populated with the following NIC models:
-
-#. NIC-1: VIC 1385 2p40GE Cisco.
-#. NIC-2: NIC x520 2p10GE Intel.
-#. NIC-3: empty.
-#. NIC-4: NIC xl710-QDA2 2p40GE Intel.
-#. NIC-5: NIC x710-DA2 2p10GE Intel.
-#. NIC-6: QAT 8950 50G (Walnut Hill) Intel.
-
-TG servers run T-Rex application and are populated with the following
-NIC models:
-
-#. NIC-1: NIC xl710-QDA2 2p40GE Intel.
-#. NIC-2: NIC x710-DA2 2p10GE Intel.
-#. NIC-3: empty.
-#. NIC-4: NIC xl710-QDA2 2p40GE Intel.
-#. NIC-5: NIC x710-DA2 2p10GE Intel.
-#. NIC-6: NIC x710-DA2 2p10GE Intel. (For self-tests.)
-
-All Intel Xeon Haswell servers run with Intel Hyper-Threading disabled,
-making the number of logical cores exposed to Linux match the number of
-18 physical cores per processor socket.
-
-2-Node Atom Denverton (2n-dnv)
-------------------------------
-
-2n-dnv testbed is built with: i) one Intel S2600WFT server acting as TG
-and equipped with two Intel Xeon Skylake Platinum 8180 processors (38.5
-MB Cache, 2.50 GHz, 28 cores), and ii) one SuperMicro SYS-E300-9A server
-acting as SUT and equipped with one Intel Atom C3858 processor (12 MB
-Cache, 2.00 GHz, 12 cores). 2n-dnv physical topology is shown below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-2n-dnv}
- \label{fig:testbed-2n-dnv}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-2n-dnv.svg
- :alt: testbed-2n-dnv
- :align: center
-
-SUT server have four internal 10G NIC port:
-
-#. P-1: x553 copper port.
-#. P-2: x553 copper port.
-#. P-3: x553 fiber port.
-#. P-4: x553 fiber port.
-
-TG server run T-Rex software traffic generator and are populated with the
-following NIC models:
-
-#. NIC-1: x550-T2 2p10GE Intel.
-#. NIC-2: x550-T2 2p10GE Intel.
-#. NIC-3: x520-DA2 2p10GE Intel.
-#. NIC-4: x520-DA2 2p10GE Intel.
-
-The 2n-dnv testbed is in operation in Intel SH labs.
-
-3-Node Atom Denverton (3n-dnv)
-------------------------------
-
-One 3n-dnv testbed is built with: i) one SuperMicro SYS-7049GP-TRT
-server acting as TG and equipped with two Intel Xeon Skylake Platinum
-8180 processors (38.5 MB Cache, 2.50 GHz, 28 cores), and ii) one
-SuperMicro SYS-E300-9A server acting as SUT and equipped with one Intel
-Atom C3858 processor (12 MB Cache, 2.00 GHz, 12 cores). 3n-dnv physical
-topology is shown below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-3n-dnv}
- \label{fig:testbed-3n-dnv}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-3n-dnv.svg
- :alt: testbed-3n-dnv
- :align: center
-
-SUT1 and SUT2 servers are populated with the following NIC models:
-
-#. NIC-1: x553 2p10GE fiber Intel.
-#. NIC-2: x553 2p10GE copper Intel.
-
-TG servers run T-Rex application and are populated with the following
-NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-
-3-Node ARM TaiShan (3n-tsh)
----------------------------
-
-One 3n-tsh testbed is built with: i) one SuperMicro SYS-7049GP-TRT
-server acting as TG and equipped with two Intel Xeon Skylake Platinum
-8180 processors (38.5 MB Cache, 2.50 GHz, 28 cores), and ii) one Huawei
-TaiShan 2280 server acting as SUT and equipped with one hip07-d05
-processor (64* ARM Cortex-A72). 3n-tsh physical topology is shown below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-3n-tsh}
- \label{fig:testbed-3n-tsh}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-3n-tsh.svg
- :alt: testbed-3n-tsh
- :align: center
-
-SUT1 and SUT2 servers are populated with the following NIC models:
-
-#. NIC-1: connectx4 2p25GE Mellanox.
-#. NIC-2: x520 2p10GE Intel.
-
-TG server runs T-Rex application and is populated with the following
-NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: xl710-QDA2 2p40GE Intel.
-
-2-Node ARM ThunderX2 (2n-tx2)
----------------------------
-
-One 2n-tx2 testbed is built with: i) one SuperMicro SYS-7049GP-TRT
-server acting as TG and equipped with two Intel Xeon Skylake Platinum
-8180 processors (38.5 MB Cache, 2.50 GHz, 28 cores), and ii) one Marvell
-ThnderX2 9975 (28* ThunderX2) server acting as SUT and equipped with two
-ThunderX2 ARMv8 CN9975 processors. 2n-tx2 physical topology is shown below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-2n-tx2}
- \label{fig:testbed-2n-tx2}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-2n-tx2.svg
- :alt: testbed-2n-tx2
- :align: center
-
-SUT server is populated with the following NIC models:
-
-#. NIC-1: xl710-QDA2 2p40GE Intel.
-#. NIC-2: xl710-QDA2 2p40GE Intel.
-
-TG server run T-Rex application and is populated with the following
-NIC models:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: xl710-QDA2 2p40GE Intel.
diff --git a/docs/report/introduction/report_history.rst b/docs/report/introduction/report_history.rst
deleted file mode 100644
index 47ebadcae8..0000000000
--- a/docs/report/introduction/report_history.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-Report History
-==============
-
-FD.io |csit-release| Report history and per .[ww] revision changes are listed
-below.
-
-+----------------+------------------------------------------------------------+
-| .[ww] Revision | Changes |
-+================+============================================================+
-| .04 | Initial revision |
-+----------------+------------------------------------------------------------+
-
-FD.io CSIT Reports follow CSIT-[yy][mm].[ww] numbering format, with version
-denoted by concatenation of two digit year [yy] and two digit month [mm], and
-maintenance revision identified by two digit calendar week number [ww].
diff --git a/docs/report/introduction/test_environment_intro.rst b/docs/report/introduction/test_environment_intro.rst
deleted file mode 100644
index 4f645713aa..0000000000
--- a/docs/report/introduction/test_environment_intro.rst
+++ /dev/null
@@ -1,110 +0,0 @@
-Test Environment
-================
-
-.. _test_environment_versioning:
-
-Environment Versioning
-----------------------
-
-CSIT test environment versioning has been introduced to track
-modifications of the test environment.
-
-Any benchmark anomalies (progressions, regressions) between releases of
-a DUT application (e.g. VPP, DPDK), are determined by testing it in the
-same test environment, to avoid test environment changes clouding the
-picture.
-
-A mirror approach is introduced to determine benchmarking anomalies due
-to the test environment change. This is achieved by testing the same DUT
-application version between releases of CSIT test system. This works
-under the assumption that the behaviour of the DUT is deterministic
-under the test conditions.
-
-CSIT test environment versioning scheme ensures integrity of all the
-test system components, including their HW revisions, compiled SW code
-versions and SW source code, within a specific CSIT version. Components
-included in the CSIT environment versioning include:
-
-- **HW** Server hardware firmware and BIOS (motherboard, processsor,
- NIC(s), accelerator card(s)), tracked in CSIT branch in
- :file:`./docs/lab/<server_platform_name>_hw_bios_cfg.md`, e.g. `Xeon
- Skylake servers
- <https://git.fd.io/csit/tree/docs/lab/testbeds_sm_skx_hw_bios_cfg.md#n556>`_.
-- **Linux** Server Linux OS version and configuration, tracked in CSIT
- Reports in `SUT Settings
- <https://docs.fd.io/csit/master/report/vpp_performance_tests/test_environment.html#sut-settings-linux>`_
- and `Pre-Test Server Calibration
- <https://docs.fd.io/csit/master/report/vpp_performance_tests/test_environment.html#pre-test-server-calibration>`_.
-- **TRex** TRex Traffic Generator version, drivers and configuration
- tracked in `TG Settings
- <https://docs.fd.io/csit/master/report/vpp_performance_tests/test_environment.html#tg-settings-trex>`_.
-- **CSIT** CSIT framework code tracked in CSIT release branches.
-
-Following is the list of CSIT versions to date:
-
-- Ver. 1 associated with CSIT rls1908 branch (`HW
- <https://git.fd.io/csit/tree/docs/lab?h=rls1908>`_, `Linux
- <https://docs.fd.io/csit/rls1908/report/vpp_performance_tests/test_environment.html#sut-settings-linux>`_,
- `TRex
- <https://docs.fd.io/csit/rls1908/report/vpp_performance_tests/test_environment.html#tg-settings-trex>`_,
- `CSIT <https://git.fd.io/csit/tree/?h=rls1908>`_).
-- Ver. 2 associated with CSIT rls2001 branch (`HW
- <https://git.fd.io/csit/tree/docs/lab?h=rls2001>`_, `Linux
- <https://docs.fd.io/csit/rls2001/report/vpp_performance_tests/test_environment.html#sut-settings-linux>`_,
- `TRex
- <https://docs.fd.io/csit/rls2001/report/vpp_performance_tests/test_environment.html#tg-settings-trex>`_,
- `CSIT <https://git.fd.io/csit/tree/?h=rls2001>`_).
-- Ver. 4 associated with CSIT rls2005 branch (`HW
- <https://git.fd.io/csit/tree/docs/lab?h=rls2005>`_, `Linux
- <https://docs.fd.io/csit/rls2005/report/vpp_performance_tests/test_environment.html#sut-settings-linux>`_,
- `TRex
- <https://docs.fd.io/csit/rls2005/report/vpp_performance_tests/test_environment.html#tg-settings-trex>`_,
- `CSIT <https://git.fd.io/csit/tree/?h=rls2005>`_).
-- Ver. 5 associated with CSIT rls2009 branch (`HW
- <https://git.fd.io/csit/tree/docs/lab?h=rls2009>`_, `Linux
- <https://docs.fd.io/csit/rls2009/report/vpp_performance_tests/test_environment.html#sut-settings-linux>`_,
- `TRex
- <https://docs.fd.io/csit/rls2009/report/vpp_performance_tests/test_environment.html#tg-settings-trex>`_,
- `CSIT <https://git.fd.io/csit/tree/?h=rls2009>`_).
-
- - The main change is TRex data-plane core resource adjustments:
- `increase from 7 to 8 cores and pinning cores to interfaces <https://gerrit.fd.io/r/c/csit/+/28184>`_
- for better TRex performance with symmetric traffic profiles.
-
-
-To identify performance changes due to VPP code development from
-v20.05.0 to v20.09.0, both have been tested in CSIT environment ver. 5
-and compared against each other. All substantial progressions and
-regressions have been marked up with RCA analysis. See
-:ref:`vpp_throughput_comparisons` and :ref:`vpp_known_issues`.
-
-CSIT environment ver. 5 has been evaluated against the ver. 4 by
-benchmarking VPP v20.05.0 in both environment versions.
-
-Physical Testbeds
------------------
-
-FD.io CSIT performance tests are executed in physical testbeds hosted by
-:abbr:`LF (Linux Foundation)` for FD.io project. Two physical testbed
-topology types are used:
-
-- **3-Node Topology**: Consisting of two servers acting as SUTs
- (Systems Under Test) and one server as TG (Traffic Generator), all
- connected in ring topology.
-- **2-Node Topology**: Consisting of one server acting as SUTs and one
- server as TG both connected in ring topology.
-
-Tested SUT servers are based on a range of processors including Intel
-Xeon Haswell-SP, Intel Xeon Skylake-SP, Intel Xeon Cascade Lake-SP, Arm,
-Intel Atom. More detailed description is provided in
-:ref:`tested_physical_topologies`. Tested logical topologies are
-described in :ref:`tested_logical_topologies`.
-
-Server Specifications
----------------------
-
-Complete technical specifications of compute servers used in CSIT
-physical testbeds are maintained in FD.io CSIT repository:
-`FD.io CSIT testbeds - Xeon Cascade Lake`_,
-`FD.io CSIT testbeds - Xeon Skylake, Arm, Atom`_ and
-`FD.io CSIT Testbeds - Xeon Haswell`_.
diff --git a/docs/report/introduction/test_environment_pre_test_server_calib.rst b/docs/report/introduction/test_environment_pre_test_server_calib.rst
deleted file mode 100644
index 325c61b212..0000000000
--- a/docs/report/introduction/test_environment_pre_test_server_calib.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-Pre-Test Server Calibration
----------------------------
-
-Number of SUT server sub-system runtime parameters have been identified
-as impacting data plane performance tests. Calibrating those parameters
-is part of FD.io CSIT pre-test activities, and includes measuring and
-reporting following:
-
-#. System level core jitter - measure duration of core interrupts by
- Linux in clock cycles and how often interrupts happen. Using
- `CPU core jitter tool <https://git.fd.io/pma_tools/tree/jitter>`_.
-
-#. Memory bandwidth - measure bandwidth with `Intel MLC tool
- <https://software.intel.com/en-us/articles/intelr-memory-latency-checker>`_.
-
-#. Memory latency - measure memory latency with Intel MLC tool.
-
-#. Cache latency at all levels (L1, L2, and Last Level Cache) - measure
- cache latency with Intel MLC tool.
-
-Measured values of listed parameters are especially important for
-repeatable zero packet loss throughput measurements across multiple
-system instances. Generally they come useful as a background data for
-comparing data plane performance results across disparate servers.
-
-Following sections include measured calibration data for testbeds.
diff --git a/docs/report/introduction/test_environment_sut_calib_clx.rst b/docs/report/introduction/test_environment_sut_calib_clx.rst
deleted file mode 100644
index ed44eb92d2..0000000000
--- a/docs/report/introduction/test_environment_sut_calib_clx.rst
+++ /dev/null
@@ -1,224 +0,0 @@
-Cascade Lake
-~~~~~~~~~~~~
-
-Following sections include sample calibration data measured on
-s32-t27-sut1 server running in one of the Intel Xeon Skylake testbeds as
-specified in `FD.io CSIT testbeds - Xeon Cascade Lake`_.
-
-Calibration data obtained from all other servers in Cascade Lake testbeds
-shows the same or similar values.
-
-
-Linux cmdline
-^^^^^^^^^^^^^
-
-::
-
- $ cat /proc/cmdline
- BOOT_IMAGE=/boot/vmlinuz-4.15.0-72-generic root=UUID=1d03969e-a2a0-41b2-a97e-1cc171b07e88 ro isolcpus=1-23,25-47,49-71,73-95 nohz_full=1-23,25-47,49-71,73-95 rcu_nocbs=1-23,25-47,49-71,73-95 numa_balancing=disable intel_pstate=disable intel_iommu=on iommu=pt nmi_watchdog=0 audit=0 nosoftlockup processor.max_cstate=1 intel_idle.max_cstate=1 hpet=disable tsc=reliable mce=off console=tty0 console=ttyS0,115200n8
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux s32-t27-sut1 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
-
-
-System-level Core Jitter
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo taskset -c 3 /home/testuser/pma_tools/jitter/jitter -i 30
- Linux Jitter testing program version 1.9
- Iterations=30
- The pragram will execute a dummy function 80000 times
- Display is updated every 20000 displayUpdate intervals
- Thread affinity will be set to core_id:7
- Timings are in CPU Core cycles
- Inst_Min: Minimum Excution time during the display update interval(default is ~1 second)
- Inst_Max: Maximum Excution time during the display update interval(default is ~1 second)
- Inst_jitter: Jitter in the Excution time during rhe display update interval. This is the value of interest
- last_Exec: The Excution time of last iteration just before the display update
- Abs_Min: Absolute Minimum Excution time since the program started or statistics were reset
- Abs_Max: Absolute Maximum Excution time since the program started or statistics were reset
- tmp: Cumulative value calcualted by the dummy function
- Interval: Time interval between the display updates in Core Cycles
- Sample No: Sample number
-
- Inst_Min,Inst_Max,Inst_jitter,last_Exec,Abs_min,Abs_max,tmp,Interval,Sample No
- 160022,167590,7568,160026,160022,167590,2057568256,3203711852,1
- 160022,170628,10606,160024,160022,170628,4079222784,3204010824,2
- 160022,169824,9802,160024,160022,170628,1805910016,3203812064,3
- 160022,168832,8810,160030,160022,170628,3827564544,3203792594,4
- 160022,168248,8226,160026,160022,170628,1554251776,3203765920,5
- 160022,167834,7812,160028,160022,170628,3575906304,3203761114,6
- 160022,167442,7420,160024,160022,170628,1302593536,3203769250,7
- 160022,169120,9098,160028,160022,170628,3324248064,3203853340,8
- 160022,170710,10688,160024,160022,170710,1050935296,3203985878,9
- 160022,167952,7930,160024,160022,170710,3072589824,3203733756,10
- 160022,168314,8292,160030,160022,170710,799277056,3203741152,11
- 160022,169672,9650,160024,160022,170710,2820931584,3203739910,12
- 160022,168684,8662,160024,160022,170710,547618816,3203727336,13
- 160022,168246,8224,160024,160022,170710,2569273344,3203739052,14
- 160022,168134,8112,160030,160022,170710,295960576,3203735874,15
- 160022,170230,10208,160024,160022,170710,2317615104,3203996356,16
- 160022,167190,7168,160024,160022,170710,44302336,3203713628,17
- 160022,167304,7282,160024,160022,170710,2065956864,3203717954,18
- 160022,167500,7478,160024,160022,170710,4087611392,3203706674,19
- 160022,167302,7280,160024,160022,170710,1814298624,3203726452,20
- 160022,167266,7244,160024,160022,170710,3835953152,3203702804,21
- 160022,167820,7798,160022,160022,170710,1562640384,3203719138,22
- 160022,168100,8078,160024,160022,170710,3584294912,3203716636,23
- 160022,170408,10386,160024,160022,170710,1310982144,3203946958,24
- 160022,167276,7254,160024,160022,170710,3332636672,3203706236,25
- 160022,167052,7030,160024,160022,170710,1059323904,3203696444,26
- 160022,170322,10300,160024,160022,170710,3080978432,3203747514,27
- 160022,167332,7310,160024,160022,170710,807665664,3203716210,28
- 160022,167426,7404,160026,160022,170710,2829320192,3203700630,29
- 160022,168840,8818,160024,160022,170710,556007424,3203727658,30
-
-
-Memory Bandwidth
-^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --bandwidth_matrix
- Intel(R) Memory Latency Checker - v3.7
- Command line parameters: --bandwidth_matrix
-
- Using buffer size of 100.000MiB/thread for reads and an additional 100.000MiB/thread for writes
- Measuring Memory Bandwidths between nodes within system
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using Read-only traffic type
- Numa node
- Numa node 0 1
- 0 122097.7 51327.9
- 1 51309.2 122005.5
-
-::
-
- $ sudo /home/testuser/mlc --peak_injection_bandwidth
- Intel(R) Memory Latency Checker - v3.7
- Command line parameters: --peak_injection_bandwidth
-
- Using buffer size of 100.000MiB/thread for reads and an additional 100.000MiB/thread for writes
-
- Measuring Peak Injection Memory Bandwidths for the system
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using traffic with the following read-write ratios
- ALL Reads : 243159.4
- 3:1 Reads-Writes : 219132.5
- 2:1 Reads-Writes : 216603.1
- 1:1 Reads-Writes : 203713.0
- Stream-triad like: 193790.8
-
-::
-
- $ sudo /home/testuser/mlc --max_bandwidth
- Intel(R) Memory Latency Checker - v3.7
- Command line parameters: --max_bandwidth
-
- Using buffer size of 100.000MiB/thread for reads and an additional 100.000MiB/thread for writes
-
- Measuring Maximum Memory Bandwidths for the system
- Will take several minutes to complete as multiple injection rates will be tried to get the best bandwidth
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using traffic with the following read-write ratios
- ALL Reads : 244114.27
- 3:1 Reads-Writes : 219441.97
- 2:1 Reads-Writes : 216603.72
- 1:1 Reads-Writes : 203679.09
- Stream-triad like: 214902.80
-
-
-Memory Latency
-^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --latency_matrix
- Intel(R) Memory Latency Checker - v3.7
- Command line parameters: --latency_matrix
-
- Using buffer size of 2000.000MiB
- Measuring idle latencies (in ns)...
- Numa node
- Numa node 0 1
- 0 81.2 130.2
- 1 130.2 81.1
-
-::
-
- $ sudo /home/testuser/mlc --idle_latency
- Intel(R) Memory Latency Checker - v3.7
- Command line parameters: --idle_latency
-
- Using buffer size of 2000.000MiB
- Each iteration took 186.1 core clocks ( 80.9 ns)
-
-::
-
- $ sudo /home/testuser/mlc --loaded_latency
- Intel(R) Memory Latency Checker - v3.7
- Command line parameters: --loaded_latency
-
- Using buffer size of 100.000MiB/thread for reads and an additional 100.000MiB/thread for writes
-
- Measuring Loaded Latencies for the system
- Using all the threads from each core if Hyper-threading is enabled
- Using Read-only traffic type
- Inject Latency Bandwidth
- Delay (ns) MB/sec
- ==========================
- 00000 233.86 243421.9
- 00002 230.61 243544.1
- 00008 232.56 243394.5
- 00015 229.52 244076.6
- 00050 225.82 244290.6
- 00100 161.65 236744.8
- 00200 100.63 133844.0
- 00300 96.84 90548.2
- 00400 95.71 68504.3
- 00500 95.68 55139.0
- 00700 88.77 39798.4
- 01000 84.74 28200.1
- 01300 83.08 21915.5
- 01700 82.27 16969.3
- 02500 81.66 11810.6
- 03500 81.98 8662.9
- 05000 81.48 6306.8
- 09000 81.17 3857.8
- 20000 80.19 2179.9
-
-
-L1/L2/LLC Latency
-^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --c2c_latency
- Intel(R) Memory Latency Checker - v3.7
- Command line parameters: --c2c_latency
-
- Measuring cache-to-cache transfer latency (in ns)...
- Local Socket L2->L2 HIT latency 55.5
- Local Socket L2->L2 HITM latency 55.6
- Remote Socket L2->L2 HITM latency (data address homed in writer socket)
- Reader Numa Node
- Writer Numa Node 0 1
- 0 - 115.6
- 1 115.6 -
- Remote Socket L2->L2 HITM latency (data address homed in reader socket)
- Reader Numa Node
- Writer Numa Node 0 1
- 0 - 178.2
- 1 178.4 -
-
-.. include:: ../introduction/test_environment_sut_meltspec_clx.rst
diff --git a/docs/report/introduction/test_environment_sut_calib_dnv.rst b/docs/report/introduction/test_environment_sut_calib_dnv.rst
deleted file mode 100644
index 13f980656a..0000000000
--- a/docs/report/introduction/test_environment_sut_calib_dnv.rst
+++ /dev/null
@@ -1,203 +0,0 @@
-Denverton
-~~~~~~~~~
-
-Following sections include sample calibration data measured on
-Denverton server at Intel SH labs.
-
-A 2-Node Atom Denverton testing took place at Intel Corporation carefully
-adhering to FD.io CSIT best practices.
-
-
-Linux cmdline
-^^^^^^^^^^^^^
-
-::
-
- $ cat /proc/cmdline
- BOOT_IMAGE=/boot/vmlinuz-4.15.0-36-generic root=UUID=d3cfffd0-1e77-423a-a53a-a117199b6025 ro intel_iommu=on iommu=pt isolcpus=1-11 nohz_full=1-11 rcu_nocbs=1-11 default_hugepagesz=1G hugepagesz=1G hugepages=8 intel_pstate=disable nmi_watchdog=0 numa_balancing=disable tsc=reliable nosoftlockup quiet splash vt.handoff=7
-
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux 4.15.0-36-generic #39~16.04.1-Ubuntu SMP Tue Sep 25 08:59:23 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
-
-
-System-level Core Jitter
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo taskset -c 2 /home/testuser/pma_tools/jitter/jitter -c 2 -i 20
- Linux Jitter testing program version 1.9
- Iterations=20
- The pragram will execute a dummy function 80000 times
- Display is updated every 20000 displayUpdate intervals
- Thread affinity will be set to core_id:2
- Timings are in CPU Core cycles
- Inst_Min: Minimum Excution time during the display update interval(default is ~1 second)
- Inst_Max: Maximum Excution time during the display update interval(default is ~1 second)
- Inst_jitter: Jitter in the Excution time during rhe display update interval. This is the value of interest
- last_Exec: The Excution time of last iteration just before the display update
- Abs_Min: Absolute Minimum Excution time since the program started or statistics were reset
- Abs_Max: Absolute Maximum Excution time since the program started or statistics were reset
- tmp: Cumulative value calcualted by the dummy function
- Interval: Time interval between the display updates in Core Cycles
- Sample No: Sample number
-
- Inst_Min Inst_Max Inst_jitter last_Exec Abs_min Abs_max tmp Interval Sample No
- 177530 196100 18570 177530 177530 196100 4156751872 3556820054 1
- 177530 200784 23254 177530 177530 200784 321060864 3556897644 2
- 177530 196346 18816 177530 177530 200784 780337152 3556918674 3
- 177530 195962 18432 177530 177530 200784 1239613440 3556847928 4
- 177530 195960 18430 177530 177530 200784 1698889728 3556860214 5
- 177530 198824 21294 177530 177530 200784 2158166016 3556854934 6
- 177530 198522 20992 177530 177530 200784 2617442304 3556862410 7
- 177530 196362 18832 177530 177530 200784 3076718592 3556851636 8
- 177530 199114 21584 177530 177530 200784 3535994880 3556870846 9
- 177530 197194 19664 177530 177530 200784 3995271168 3556933584 10
- 177530 198272 20742 177536 177530 200784 159580160 3556869044 11
- 177530 197586 20056 177530 177530 200784 618856448 3556903482 12
- 177530 196072 18542 177530 177530 200784 1078132736 3556825540 13
- 177530 196354 18824 177530 177530 200784 1537409024 3556881664 14
- 177530 195906 18376 177530 177530 200784 1996685312 3556839924 15
- 177530 199066 21536 177530 177530 200784 2455961600 3556860220 16
- 177530 196968 19438 177530 177530 200784 2915237888 3556871890 17
- 177530 195896 18366 177530 177530 200784 3374514176 3556855338 18
- 177530 196020 18490 177530 177530 200784 3833790464 3556839820 19
- 177530 196030 18500 177530 177530 200784 4293066752 3556889196 20
-
-
-Memory Bandwidth
-^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --bandwidth_matrix
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --bandwidth_matrix
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
- Measuring Memory Bandwidths between nodes within system
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using Read-only traffic type
- Memory node
- Socket 0
- 0 28157.2
-
-::
-
- $ sudo /home/testuser/mlc --peak_injection_bandwidth
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --peak_injection_bandwidth
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
-
- Measuring Peak Injection Memory Bandwidths for the system
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using traffic with the following read-write ratios
- ALL Reads : 28150.0
- 3:1 Reads-Writes : 27425.0
- 2:1 Reads-Writes : 27565.4
- 1:1 Reads-Writes : 27489.3
- Stream-triad like: 26878.2
-
-::
-
- $ sudo /home/testuser/mlc --max_bandwidth
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --max_bandwidth
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
-
- Measuring Maximum Memory Bandwidths for the system
- Will take several minutes to complete as multiple injection rates will be tried to get the best bandwidth
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using traffic with the following read-write ratios
- ALL Reads : 30032.40
- 3:1 Reads-Writes : 27450.88
- 2:1 Reads-Writes : 27567.46
- 1:1 Reads-Writes : 27501.90
- Stream-triad like: 27124.82
-
-
-Memory Latency
-^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --latency_matrix
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --latency_matrix
-
- Using buffer size of 2000.000MB
- Intel(R) Memory Latency Checker - v3.5
- Measuring idle latencies (in ns)...
- Memory node
- Socket 0
- 0 93.1
-
-::
-
- $ sudo /home/testuser/mlc --idle_latency
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --idle_latency
-
- Using buffer size of 200.000MB
- Each iteration took 186.7 core clocks ( 93.4 ns)
-
-::
-
- $ sudo /home/testuser/mlc --loaded_latency
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --loaded_latency
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
-
- Measuring Loaded Latencies for the system
- Using all the threads from each core if Hyper-threading is enabled
- Using Read-only traffic type
- Inject Latency Bandwidth
- Delay (ns) MB/sec
- ==========================
- 00000 135.35 27186.0
- 00002 135.47 27176.9
- 00008 134.97 27063.3
- 00015 134.41 26825.6
- 00050 139.83 28419.1
- 00100 124.28 22616.4
- 00200 109.40 14139.8
- 00300 104.56 10275.1
- 00400 102.02 8120.0
- 00500 100.38 6751.4
- 00700 98.30 5124.9
- 01000 96.56 3852.7
- 01300 95.65 3149.0
- 01700 95.06 2585.4
- 02500 94.43 1988.8
- 03500 94.16 1621.1
- 05000 93.95 1343.1
- 09000 93.65 1052.6
- 20000 93.43 851.7
-
-
-L1/L2/LLC Latency
-^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --c2c_latency
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --c2c_latency
-
- Measuring cache-to-cache transfer latency (in ns)...
- Local Socket L2->L2 HIT latency 8.8
- Local Socket L2->L2 HITM latency 8.8
-
-.. include:: ../introduction/test_environment_sut_meltspec_dnv.rst
diff --git a/docs/report/introduction/test_environment_sut_calib_hsw.rst b/docs/report/introduction/test_environment_sut_calib_hsw.rst
deleted file mode 100644
index d2e8d3d33d..0000000000
--- a/docs/report/introduction/test_environment_sut_calib_hsw.rst
+++ /dev/null
@@ -1,223 +0,0 @@
-Haswell
-~~~~~~~
-
-Following sections include sample calibration data measured on t1-sut1
-server running in one of the Intel Xeon Haswell testbeds as specified in
-`FD.io CSIT Testbeds - Xeon Haswell`_.
-
-Calibration data obtained from all other servers in Haswell testbeds
-shows the same or similar values.
-
-Linux cmdline
-^^^^^^^^^^^^^
-
-::
-
- $ cat /proc/cmdline
- BOOT_IMAGE=/vmlinuz-4.15.0-72-generic root=UUID=c59ae603-8076-41f4-bb5d-bc3fc8dd3ea1 ro isolcpus=1-17,19-35 nohz_full=1-17,19-35 rcu_nocbs=1-17,19-35 numa_balancing=disable intel_pstate=disable intel_iommu=on iommu=pt nmi_watchdog=0 audit=0 nosoftlockup processor.max_cstate=1 intel_idle.max_cstate=1 hpet=disable tsc=reliable mce=off console=tty0console=ttyS0,115200n8
-
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux t1-tg1 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
-
-
-System-level Core Jitter
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo taskset -c 3 /home/testuser/pma_tools/jitter/jitter -i 30
- Linux Jitter testing program version 1.8
- Iterations=30
- The pragram will execute a dummy function 80000 times
- Display is updated every 20000 displayUpdate intervals
- Timings are in CPU Core cycles
- Inst_Min: Minimum Excution time during the display update interval(default is ~1 second)
- Inst_Max: Maximum Excution time during the display update interval(default is ~1 second)
- Inst_jitter: Jitter in the Excution time during rhe display update interval. This is the value of interest
- last_Exec: The Excution time of last iteration just before the display update
- Abs_Min: Absolute Minimum Excution time since the program started or statistics were reset
- Abs_Max: Absolute Maximum Excution time since the program started or statistics were reset
- tmp: Cumulative value calcualted by the dummy function
- Interval: Time interval between the display updates in Core Cycles
- Sample No: Sample number
-
- Inst_Min Inst_Max Inst_jitter last_Exec Abs_min Abs_max tmp Interval Sample No
- 160024 172636 12612 160028 160024 172636 1573060608 3205463144 1
- 160024 188236 28212 160028 160024 188236 958595072 3205500844 2
- 160024 185676 25652 160028 160024 188236 344129536 3205485976 3
- 160024 172608 12584 160024 160024 188236 4024631296 3205472740 4
- 160024 179260 19236 160028 160024 188236 3410165760 3205502164 5
- 160024 172432 12408 160024 160024 188236 2795700224 3205452036 6
- 160024 178820 18796 160024 160024 188236 2181234688 3205455408 7
- 160024 172512 12488 160028 160024 188236 1566769152 3205461528 8
- 160024 172636 12612 160028 160024 188236 952303616 3205478820 9
- 160024 173676 13652 160028 160024 188236 337838080 3205470412 10
- 160024 178776 18752 160028 160024 188236 4018339840 3205481472 11
- 160024 172788 12764 160028 160024 188236 3403874304 3205492336 12
- 160024 174616 14592 160028 160024 188236 2789408768 3205474904 13
- 160024 174440 14416 160028 160024 188236 2174943232 3205479448 14
- 160024 178748 18724 160024 160024 188236 1560477696 3205482668 15
- 160024 172588 12564 169404 160024 188236 946012160 3205510496 16
- 160024 172636 12612 160024 160024 188236 331546624 3205472204 17
- 160024 172480 12456 160024 160024 188236 4012048384 3205455864 18
- 160024 172740 12716 160028 160024 188236 3397582848 3205464932 19
- 160024 179200 19176 160028 160024 188236 2783117312 3205476012 20
- 160024 172480 12456 160028 160024 188236 2168651776 3205465632 21
- 160024 172728 12704 160024 160024 188236 1554186240 3205497204 22
- 160024 172620 12596 160028 160024 188236 939720704 3205466972 23
- 160024 172640 12616 160028 160024 188236 325255168 3205471216 24
- 160024 172484 12460 160028 160024 188236 4005756928 3205467388 25
- 160024 172636 12612 160028 160024 188236 3391291392 3205482748 26
- 160024 179056 19032 160024 160024 188236 2776825856 3205467152 27
- 160024 172672 12648 160024 160024 188236 2162360320 3205483268 28
- 160024 176932 16908 160024 160024 188236 1547894784 3205488536 29
- 160024 172452 12428 160028 160024 188236 933429248 3205440636 30
-
-
-Memory Bandwidth
-^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --bandwidth_matrix
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --bandwidth_matrix
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
- Measuring Memory Bandwidths between nodes within system
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using Read-only traffic type
- Numa node
- Numa node 0 1
- 0 57935.5 30265.2
- 1 30284.6 58409.9
-
-::
-
- $ sudo /home/testuser/mlc --peak_injection_bandwidth
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --peak_injection_bandwidth
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
-
- Measuring Peak Injection Memory Bandwidths for the system
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using traffic with the following read-write ratios
- ALL Reads : 115762.2
- 3:1 Reads-Writes : 106242.2
- 2:1 Reads-Writes : 103031.8
- 1:1 Reads-Writes : 87943.7
- Stream-triad like: 100048.4
-
-::
-
- $ sudo /home/testuser/mlc --max_bandwidth
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --max_bandwidth
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
-
- Measuring Maximum Memory Bandwidths for the system
- Will take several minutes to complete as multiple injection rates will be tried to get the best bandwidth
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using traffic with the following read-write ratios
- ALL Reads : 115782.41
- 3:1 Reads-Writes : 105965.78
- 2:1 Reads-Writes : 103162.38
- 1:1 Reads-Writes : 88255.82
- Stream-triad like: 105608.10
-
-
-Memory Latency
-^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --latency_matrix
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --latency_matrix
-
- Using buffer size of 200.000MB
- Measuring idle latencies (in ns)...
- Numa node
- Numa node 0 1
- 0 101.0 132.0
- 1 141.2 98.8
-
-::
-
- $ sudo /home/testuser/mlc --idle_latency
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --idle_latency
-
- Using buffer size of 200.000MB
- Each iteration took 227.2 core clocks ( 99.0 ns)
-
-::
-
- $ sudo /home/testuser/mlc --loaded_latency
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --loaded_latency
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
-
- Measuring Loaded Latencies for the system
- Using all the threads from each core if Hyper-threading is enabled
- Using Read-only traffic type
- Inject Latency Bandwidth
- Delay (ns) MB/sec
- ==========================
- 00000 294.08 115841.6
- 00002 294.27 115851.5
- 00008 293.67 115821.8
- 00015 278.92 115587.5
- 00050 246.80 113991.2
- 00100 206.86 104508.1
- 00200 123.72 72873.6
- 00300 113.35 52641.1
- 00400 108.89 41078.9
- 00500 108.11 33699.1
- 00700 106.19 24878.0
- 01000 104.75 17948.1
- 01300 103.72 14089.0
- 01700 102.95 11013.6
- 02500 102.25 7756.3
- 03500 101.81 5749.3
- 05000 101.46 4230.4
- 09000 101.05 2641.4
- 20000 100.77 1542.5
-
-
-L1/L2/LLC Latency
-^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --c2c_latency
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --c2c_latency
-
- Measuring cache-to-cache transfer latency (in ns)...
- Local Socket L2->L2 HIT latency 42.1
- Local Socket L2->L2 HITM latency 47.0
- Remote Socket L2->L2 HITM latency (data address homed in writer socket)
- Reader Numa Node
- Writer Numa Node 0 1
- 0 - 108.0
- 1 106.9 -
- Remote Socket L2->L2 HITM latency (data address homed in reader socket)
- Reader Numa Node
- Writer Numa Node 0 1
- 0 - 107.7
- 1 106.6 -
-
-.. include:: ../introduction/test_environment_sut_meltspec_hsw.rst
diff --git a/docs/report/introduction/test_environment_sut_calib_skx.rst b/docs/report/introduction/test_environment_sut_calib_skx.rst
deleted file mode 100644
index e3038a230a..0000000000
--- a/docs/report/introduction/test_environment_sut_calib_skx.rst
+++ /dev/null
@@ -1,214 +0,0 @@
-Skylake
-~~~~~~~
-
-Following sections include sample calibration data measured on
-s11-t31-sut1 server running in one of the Intel Xeon Skylake testbeds as
-specified in `FD.io CSIT testbeds - Xeon Skylake, Arm, Atom`_.
-
-Calibration data obtained from all other servers in Skylake testbeds
-shows the same or similar values.
-
-
-Linux cmdline
-^^^^^^^^^^^^^
-
-::
-
- $ cat /proc/cmdline
- BOOT_IMAGE=/boot/vmlinuz-4.15.0-72-generic root=UUID=e05120bb-7127-43db-b1e3-a66edd4c43bd ro isolcpus=1-27,29-55,57-83,85-111 nohz_full=1-27,29-55,57-83,85-111 rcu_nocbs=1-27,29-55,57-83,85-111 numa_balancing=disable intel_pstate=disable intel_iommu=on iommu=pt nmi_watchdog=0 audit=0 nosoftlockup processor.max_cstate=1 intel_idle.max_cstate=1 hpet=disable tsc=reliable mce=off console=tty0 console=ttyS0,115200n8
-
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux s3-t21-sut1 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
-
-
-System-level Core Jitter
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo taskset -c 3 /home/testuser/pma_tools/jitter/jitter -i 20
- Linux Jitter testing program version 1.8
- Iterations=20
- The pragram will execute a dummy function 80000 times
- Display is updated every 20000 displayUpdate intervals
- Timings are in CPU Core cycles
- Inst_Min: Minimum Excution time during the display update interval(default is ~1 second)
- Inst_Max: Maximum Excution time during the display update interval(default is ~1 second)
- Inst_jitter: Jitter in the Excution time during rhe display update interval. This is the value of interest
- last_Exec: The Excution time of last iteration just before the display update
- Abs_Min: Absolute Minimum Excution time since the program started or statistics were reset
- Abs_Max: Absolute Maximum Excution time since the program started or statistics were reset
- tmp: Cumulative value calcualted by the dummy function
- Interval: Time interval between the display updates in Core Cycles
- Sample No: Sample number
-
- Inst_Min Inst_Max Inst_jitter last_Exec Abs_min Abs_max tmp Interval Sample No
- 160022 171330 11308 160022 160022 171330 2538733568 3204142750 1
- 160022 167294 7272 160026 160022 171330 328335360 3203873548 2
- 160022 167560 7538 160026 160022 171330 2412904448 3203878736 3
- 160022 169000 8978 160024 160022 171330 202506240 3203864588 4
- 160022 166572 6550 160026 160022 171330 2287075328 3203866224 5
- 160022 167460 7438 160026 160022 171330 76677120 3203854632 6
- 160022 168134 8112 160024 160022 171330 2161246208 3203874674 7
- 160022 169094 9072 160022 160022 171330 4245815296 3203878798 8
- 160022 172460 12438 160024 160022 172460 2035417088 3204112010 9
- 160022 167862 7840 160030 160022 172460 4119986176 3203856800 10
- 160022 168398 8376 160024 160022 172460 1909587968 3203854192 11
- 160022 167548 7526 160024 160022 172460 3994157056 3203847442 12
- 160022 167562 7540 160026 160022 172460 1783758848 3203862936 13
- 160022 167604 7582 160024 160022 172460 3868327936 3203859346 14
- 160022 168262 8240 160024 160022 172460 1657929728 3203851120 15
- 160022 169700 9678 160024 160022 172460 3742498816 3203877690 16
- 160022 170476 10454 160026 160022 172460 1532100608 3204088480 17
- 160022 167798 7776 160024 160022 172460 3616669696 3203862072 18
- 160022 166540 6518 160024 160022 172460 1406271488 3203836904 19
- 160022 167516 7494 160024 160022 172460 3490840576 3203848120 20
-
-
-Memory Bandwidth
-^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --bandwidth_matrix
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --bandwidth_matrix
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
- Measuring Memory Bandwidths between nodes within system
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using Read-only traffic type
- Numa node
- Numa node 0 1
- 0 107947.7 50951.5
- 1 50834.6 108183.4
-
-::
-
- $ sudo /home/testuser/mlc --peak_injection_bandwidth
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --peak_injection_bandwidth
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
-
- Measuring Peak Injection Memory Bandwidths for the system
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using traffic with the following read-write ratios
- ALL Reads : 215733.9
- 3:1 Reads-Writes : 182141.9
- 2:1 Reads-Writes : 178615.7
- 1:1 Reads-Writes : 149911.3
- Stream-triad like: 159533.6
-
-::
-
- $ sudo /home/testuser/mlc --max_bandwidth
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --max_bandwidth
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
-
- Measuring Maximum Memory Bandwidths for the system
- Will take several minutes to complete as multiple injection rates will be tried to get the best bandwidth
- Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
- Using all the threads from each core if Hyper-threading is enabled
- Using traffic with the following read-write ratios
- ALL Reads : 216875.73
- 3:1 Reads-Writes : 182615.14
- 2:1 Reads-Writes : 178745.67
- 1:1 Reads-Writes : 149485.27
- Stream-triad like: 180057.87
-
-
-Memory Latency
-^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --latency_matrix
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --latency_matrix
-
- Using buffer size of 2000.000MB
- Measuring idle latencies (in ns)...
- Numa node
- Numa node 0 1
- 0 81.4 131.1
- 1 131.1 81.3
-
-::
-
- $ sudo /home/testuser/mlc --idle_latency
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --idle_latency
-
- Using buffer size of 2000.000MB
- Each iteration took 202.0 core clocks ( 80.8 ns)
-
-::
-
- $ sudo /home/testuser/mlc --loaded_latency
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --loaded_latency
-
- Using buffer size of 100.000MB/thread for reads and an additional 100.000MB/thread for writes
-
- Measuring Loaded Latencies for the system
- Using all the threads from each core if Hyper-threading is enabled
- Using Read-only traffic type
- Inject Latency Bandwidth
- Delay (ns) MB/sec
- ==========================
- 00000 282.66 215712.8
- 00002 282.14 215757.4
- 00008 280.21 215868.1
- 00015 279.20 216313.2
- 00050 275.25 216643.0
- 00100 227.05 215075.0
- 00200 121.92 160242.9
- 00300 101.21 111587.4
- 00400 95.48 85019.7
- 00500 94.46 68717.3
- 00700 92.27 49742.2
- 01000 91.03 35264.8
- 01300 90.11 27396.3
- 01700 89.34 21178.7
- 02500 90.15 14672.8
- 03500 89.00 10715.7
- 05000 82.00 7788.2
- 09000 81.46 4684.0
- 20000 81.40 2541.9
-
-
-L1/L2/LLC Latency
-^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --c2c_latency
- Intel(R) Memory Latency Checker - v3.5
- Command line parameters: --c2c_latency
-
- Measuring cache-to-cache transfer latency (in ns)...
- Local Socket L2->L2 HIT latency 53.7
- Local Socket L2->L2 HITM latency 53.7
- Remote Socket L2->L2 HITM latency (data address homed in writer socket)
- Reader Numa Node
- Writer Numa Node 0 1
- 0 - 113.9
- 1 113.9 -
- Remote Socket L2->L2 HITM latency (data address homed in reader socket)
- Reader Numa Node
- Writer Numa Node 0 1
- 0 - 177.9
- 1 177.6 -
-
-.. include:: ../introduction/test_environment_sut_meltspec_skx.rst
diff --git a/docs/report/introduction/test_environment_sut_calib_tsh.rst b/docs/report/introduction/test_environment_sut_calib_tsh.rst
deleted file mode 100644
index a503a42404..0000000000
--- a/docs/report/introduction/test_environment_sut_calib_tsh.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-TaiShan
-~~~~~~~
-
-Following sections include sample calibration data measured on
-s17-t33-sut1 server running in one of the Cortex-A72 testbeds.
-
-Calibration data obtained from all other servers in TaiShan testbeds shows the
-same or similar values.
-
-
-Linux cmdline
-^^^^^^^^^^^^^
-
-::
-
- $ cat /proc/cmdline
- BOOT_IMAGE=/boot/vmlinuz-4.15.0-54-generic root=/dev/mapper/huawei--1--vg-root ro isolcpus=1-15,17-31,33-47,49-63 nohz_full=1-15 17-31,33-47,49-63 rcu_nocbs=1-15 17-31,33-47,49-63 intel_iommu=on nmi_watchdog=0 audit=0 nosoftlockup processor.max_cstate=1 console=ttyAMA0,115200n8
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux s17-t33-sut1 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:56:40 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
-
-
-System-level Core Jitter
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo taskset -c 3 /home/testuser/pma_tools/jitter/jitter -i 20
- Linux Jitter testing program version 1.9
- Iterations=30
- The pragram will execute a dummy function 80000 times
- Display is updated every 20000 displayUpdate intervals
- Thread affinity will be set to core_id:7
- Timings are in CPU Core cycles
- Inst_Min: Minimum Excution time during the display update interval(default is ~1 second)
- Inst_Max: Maximum Excution time during the display update interval(default is ~1 second)
- Inst_jitter: Jitter in the Excution time during rhe display update interval. This is the value of interest
- last_Exec: The Excution time of last iteration just before the display update
- Abs_Min: Absolute Minimum Excution time since the program started or statistics were reset
- Abs_Max: Absolute Maximum Excution time since the program started or statistics were reset
- tmp: Cumulative value calcualted by the dummy function
- Interval: Time interval between the display updates in Core Cycles
- Sample No: Sample number
-
- Inst_Min Inst_Max Inst_jitter last_Exec Abs_min Abs_max tmp Interval Sample No
- 160022 172254 12232 160042 160022 172254 1903230976 3204401362 1
- 160022 173148 13126 160044 160022 173148 814809088 3204619316 2
- 160022 169460 9438 160044 160022 173148 4021354496 3204391306 3
- 160024 170270 10246 160044 160022 173148 2932932608 3204385830 4
- 160022 169660 9638 160044 160022 173148 1844510720 3204387290 5
- 160022 169410 9388 160040 160022 173148 756088832 3204375832 6
- 160022 169012 8990 160042 160022 173148 3962634240 3204378924 7
- 160022 169556 9534 160044 160022 173148 2874212352 3204374882 8
- 160022 171684 11662 160042 160022 173148 1785790464 3204394596 9
- 160022 171546 11524 160024 160022 173148 697368576 3204602774 10
- 160022 169248 9226 160042 160022 173148 3903913984 3204401676 11
- 160022 168458 8436 160042 160022 173148 2815492096 3204256350 12
- 160022 169574 9552 160044 160022 173148 1727070208 3204278116 13
- 160022 169352 9330 160044 160022 173148 638648320 3204327234 14
- 160022 169100 9078 160044 160022 173148 3845193728 3204388132 15
- 160022 169338 9316 160042 160022 173148 2756771840 3204380724 16
- 160022 170828 10806 160046 160022 173148 1668349952 3204430452 17
- 160022 173162 13140 160026 160022 173162 579928064 3204611318 18
- 160022 170482 10460 160042 160022 173162 3786473472 3204389896 19
- 160024 170704 10680 160044 160022 173162 2698051584 3204422126 20
- 160024 169302 9278 160044 160022 173162 1609629696 3204397334 21
- 160022 171848 11826 160044 160022 173162 521207808 3204389818 22
- 160022 169438 9416 160042 160022 173162 3727753216 3204395382 23
- 160022 169312 9290 160042 160022 173162 2639331328 3204371202 24
- 160022 171368 11346 160044 160022 173162 1550909440 3204440464 25
- 160022 171998 11976 160042 160022 173162 462487552 3204609440 26
- 160022 169740 9718 160046 160022 173162 3669032960 3204405826 27
- 160022 169610 9588 160044 160022 173162 2580611072 3204390608 28
- 160022 169254 9232 160044 160022 173162 1492189184 3204399760 29
- 160022 169386 9364 160046 160022 173162 403767296 3204417762 30
-
-.. include:: ../introduction/test_environment_sut_meltspec_tsh.rst
diff --git a/docs/report/introduction/test_environment_sut_calib_tx2.rst b/docs/report/introduction/test_environment_sut_calib_tx2.rst
deleted file mode 100644
index 4b715c86f0..0000000000
--- a/docs/report/introduction/test_environment_sut_calib_tx2.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-ThunderX2
-~~~~~~~~~
-
-Following sections include sample calibration data measured on
-s27-t34-sut1 server running in one of the ThunderX2 testbeds.
-
-
-Linux cmdline
-^^^^^^^^^^^^^
-
-::
-
- $ cat /proc/cmdline
- BOOT_IMAGE=/boot/vmlinuz-4.15.0-72-generic root=UUID=19debf43-de1a-4f0d-97a7-c4d0ccd04327 ro audit=0 intel_iommu=on isolcpus=1-27,29-55 nmi_watchdog=0 nohz_full=1-27,29-55 nosoftlockup processor.max_cstate=1 rcu_nocbs=1-27,29-55 splash quiet vt.handoff=1
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux s27-t34-sut1 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:21:09 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
-
-
-.. include:: ../introduction/test_environment_sut_meltspec_tx2.rst
diff --git a/docs/report/introduction/test_environment_sut_calib_zn2.rst b/docs/report/introduction/test_environment_sut_calib_zn2.rst
deleted file mode 100644
index c181b5f34c..0000000000
--- a/docs/report/introduction/test_environment_sut_calib_zn2.rst
+++ /dev/null
@@ -1,118 +0,0 @@
-EPYC Zen2
-~~~~~~~~~
-
-Following sections include sample calibration data measured on
-s60-t210-sut1 server running in one of the AMD EPYC testbeds as
-specified in `FD.io CSIT testbeds - EPYC Zen2`_.
-
-
-Linux cmdline
-^^^^^^^^^^^^^
-
-::
-
- $ cat /proc/cmdline
- BOOT_IMAGE=/boot/vmlinuz-4.15.0-72-generic root=UUID=1672f0ef-755e-4a26-884d-02a3f4ac933c ro isolcpus=1-15,33-47,17-31,49-63 nohz_full=1-15,33-47,17-31,49-63 rcu_nocbs=1-15,33-47,17-31,49-63 numa_balancing=disable amd_iommu=on iommu=pt nmi_watchdog=0 audit=0 nosoftlockup processor.max_cstate=0 hpet=disable tsc=reliable mce=off splash quiet vt.handoff=1
-
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux s60-t210-sut1 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
-
-
-System-level Core Jitter
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo taskset -c 3 /home/testuser/pma_tools/jitter/jitter -i 30
- Linux Jitter testing program version 1.9
- Iterations=20
- The pragram will execute a dummy function 80000 times
- Display is updated every 20000 displayUpdate intervals
- Thread affinity will be set to core_id:7
- Timings are in CPU Core cycles
- Inst_Min: Minimum Excution time during the display update interval(default is ~1 second)
- Inst_Max: Maximum Excution time during the display update interval(default is ~1 second)
- Inst_jitter: Jitter in the Excution time during rhe display update interval. This is the value of interest
- last_Exec: The Excution time of last iteration just before the display update
- Abs_Min: Absolute Minimum Excution time since the program started or statistics were reset
- Abs_Max: Absolute Maximum Excution time since the program started or statistics were reset
- tmp: Cumulative value calcualted by the dummy function
- Interval: Time interval between the display updates in Core Cycles
- Sample No: Sample number
-
- Inst_Min,Inst_Max,Inst_jitter,last_Exec,Abs_min,Abs_max,tmp,Interval,Sample No
- 116376,145848,29472,116376,116376,145848,3399090176,2350958712,1
- 116376,145848,29472,116400,116376,145848,4158259200,2355136968,2
- 116376,145848,29472,116376,116376,145848,622460928,2343355128,3
- 116376,145848,29472,116376,116376,145848,1381629952,2362905912,4
- 116376,145848,29472,116400,116376,145848,2140798976,2344101768,5
- 116376,145848,29472,116376,116376,145848,2899968000,2341791912,6
- 116376,145848,29472,116400,116376,145848,3659137024,2340794664,7
- 116376,145848,29472,116400,116376,145848,123338752,2336863896,8
- 116376,145752,29376,116400,116376,145848,882507776,2335339584,9
- 116376,145512,29136,116376,116376,145848,1641676800,2335619160,10
- 116376,145512,29136,116400,116376,145848,2400845824,2335646280,11
- 116376,145848,29472,116400,116376,145848,3160014848,2350534872,12
- 116376,145848,29472,116400,116376,145848,3919183872,2348972352,13
- 116376,145848,29472,116400,116376,145848,383385600,2363157840,14
- 116376,145848,29472,116400,116376,145848,1142554624,2349686904,15
- 116376,145848,29472,116400,116376,145848,1901723648,2356550976,16
- 116376,145848,29472,119304,116376,145848,2660892672,2365225944,17
- 116376,145848,29472,116400,116376,145848,3420061696,2365215576,18
- 116376,145848,29472,116400,116376,145848,4179230720,2349971088,19
- 116376,145848,29472,116400,116376,145848,643432448,2339421384,20"
-
-
-Memory Bandwidth
-^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --bandwidth_matrix
- TBC
-
-::
-
- $ sudo /home/testuser/mlc --peak_injection_bandwidth
- TBC
-
-::
-
- $ sudo /home/testuser/mlc --max_bandwidth
- TBC
-
-
-Memory Latency
-^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --latency_matrix
- TBC
-
-::
-
- $ sudo /home/testuser/mlc --idle_latency
- TBC
-
-::
-
- $ sudo /home/testuser/mlc --loaded_latency
- TBC
-
-
-L1/L2/LLC Latency
-^^^^^^^^^^^^^^^^^
-
-::
-
- $ sudo /home/testuser/mlc --c2c_latency
- TBC
-
-.. include:: ../introduction/test_environment_sut_meltspec_zn2.rst
diff --git a/docs/report/introduction/test_environment_sut_conf_1.rst b/docs/report/introduction/test_environment_sut_conf_1.rst
deleted file mode 100644
index 63ff50205d..0000000000
--- a/docs/report/introduction/test_environment_sut_conf_1.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-SUT Settings - Linux
---------------------
-
-System provisioning is done by combination of PXE boot unattented
-install and
-`Ansible <https://www.ansible.com>`_ described in `CSIT Testbed Setup`_.
-
-Below a subset of the running configuration:
-
-1. Ubuntu 18.04.2 LTS
-
-::
-
- $ lsb_release -a
- No LSB modules are available.
- Distributor ID: Ubuntu
- Description: Ubuntu 18.04.2 LTS
- Release: 18.04
- Codename: bionic
-
-Linux Boot Parameters
-~~~~~~~~~~~~~~~~~~~~~
-
-- **isolcpus=<cpu number>-<cpu number>** used for all cpu cores apart from
- first core of each socket used for running VPP worker threads and Qemu/LXC
- processes
- https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
-- **intel_pstate=disable** - [X86] Do not enable intel_pstate as the default
- scaling driver for the supported processors. Intel P-State driver decide what
- P-state (CPU core power state) to use based on requesting policy from the
- cpufreq core. [X86 - Either 32-bit or 64-bit x86]
- https://www.kernel.org/doc/Documentation/cpu-freq/intel-pstate.txt
-- **nohz_full=<cpu number>-<cpu number>** - [KNL,BOOT] In kernels built with
- CONFIG_NO_HZ_FULL=y, set the specified list of CPUs whose tick will be stopped
- whenever possible. The boot CPU will be forced outside the range to maintain
- the timekeeping. The CPUs in this range must also be included in the
- rcu_nocbs= set. Specifies the adaptive-ticks CPU cores, causing kernel to
- avoid sending scheduling-clock interrupts to listed cores as long as they have
- a single runnable task. [KNL - Is a kernel start-up parameter, SMP - The
- kernel is an SMP kernel].
- https://www.kernel.org/doc/Documentation/timers/NO_HZ.txt
-- **rcu_nocbs** - [KNL] In kernels built with CONFIG_RCU_NOCB_CPU=y, set the
- specified list of CPUs to be no-callback CPUs, that never queue RCU callbacks
- (read-copy update).
- https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
-- **numa_balancing=disable** - [KNL,X86] Disable automatic NUMA balancing.
-- **intel_iommu=enable** - [DMAR] Enable Intel IOMMU driver (DMAR) option.
-- **iommu=on, iommu=pt** - [x86, IA-64] Disable IOMMU bypass, using IOMMU for
- PCI devices.
-- **nmi_watchdog=0** - [KNL,BUGS=X86] Debugging features for SMP kernels. Turn
- hardlockup detector in nmi_watchdog off.
-- **nosoftlockup** - [KNL] Disable the soft-lockup detector.
-- **tsc=reliable** - Disable clocksource stability checks for TSC.
- [x86] reliable: mark tsc clocksource as reliable, this disables clocksource
- verification at runtime, as well as the stability checks done at bootup.
- Used to enable high-resolution timer mode on older hardware, and in
- virtualized environment.
-- **hpet=disable** - [X86-32,HPET] Disable HPET and use PIT instead.
-
-Hugepages Configuration
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Huge pages are managed via sysctl configuration located in
-`/etc/sysctl.d/90-csit.conf` on each testbed. Default huge page size is 2M.
-The exact amount of huge pages depends on testbed. All the values are defined
-in `Ansible inventory - hosts` files.
diff --git a/docs/report/introduction/test_environment_sut_meltspec_clx.rst b/docs/report/introduction/test_environment_sut_meltspec_clx.rst
deleted file mode 100644
index 826e6d37b4..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_clx.rst
+++ /dev/null
@@ -1,335 +0,0 @@
-Spectre and Meltdown Checks
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Following section displays the output of a running shell script to tell if
-system is vulnerable against the several speculative execution CVEs that were
-made public in 2018. Script is available on `Spectre & Meltdown Checker Github
-<https://github.com/speed47/spectre-meltdown-checker>`_.
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.43
-
- awk: fatal: cannot open file `bash for reading (No such file or directory)
- Checking for vulnerabilities on current system
- Kernel is Linux 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64
- CPU is Intel(R) Xeon(R) Platinum 8280 CPU @ 2.70GHz
-
- Hardware check
- * Hardware support (CPU microcode) for mitigation techniques
- * Indirect Branch Restricted Speculation (IBRS)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates IBRS capability: YES (SPEC_CTRL feature bit)
- * Indirect Branch Prediction Barrier (IBPB)
- * PRED_CMD MSR is available: YES
- * CPU indicates IBPB capability: YES (SPEC_CTRL feature bit)
- * Single Thread Indirect Branch Predictors (STIBP)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates STIBP capability: YES (Intel STIBP feature bit)
- * Speculative Store Bypass Disable (SSBD)
- * CPU indicates SSBD capability: YES (Intel SSBD)
- * L1 data cache invalidation
- * FLUSH_CMD MSR is available: YES
- * CPU indicates L1D flush capability: YES (L1D flush feature bit)
- * Microarchitectural Data Sampling
- * VERW instruction is available: YES (MD_CLEAR feature bit)
- * Enhanced IBRS (IBRS_ALL)
- * CPU indicates ARCH_CAPABILITIES MSR availability: YES
- * ARCH_CAPABILITIES MSR advertises IBRS_ALL capability: YES
- * CPU explicitly indicates not being vulnerable to Meltdown/L1TF (RDCL_NO): YES
- * CPU explicitly indicates not being vulnerable to Variant 4 (SSB_NO): NO
- * CPU/Hypervisor indicates L1D flushing is not necessary on this system: YES
- * Hypervisor indicates host CPU might be vulnerable to RSB underflow (RSBA): NO
- * CPU explicitly indicates not being vulnerable to Microarchitectural Data Sampling (MDS_NO): YES
- * CPU explicitly indicates not being vulnerable to TSX Asynchronous Abort (TAA_NO): NO
- * CPU explicitly indicates not being vulnerable to iTLB Multihit (PSCHANGE_MSC_NO): NO
- * CPU explicitly indicates having MSR for TSX control (TSX_CTRL_MSR): YES
- * TSX_CTRL MSR indicates TSX RTM is disabled: YES
- * TSX_CTRL MSR indicates TSX CPUID bit is cleared: YES
- * CPU supports Transactional Synchronization Extensions (TSX): NO
- * CPU supports Software Guard Extensions (SGX): NO
- * CPU microcode is known to cause stability problems: NO (model 0x55 family 0x6 stepping 0x7 ucode 0x500002c cpuid 0x50657)
- * CPU microcode is the latest known available version: awk: fatal: cannot open file `bash for reading (No such file or directory)
- UNKNOWN (latest microcode version for your CPU model is unknown)
- * CPU vulnerability to the speculative execution attack variants
- * Vulnerable to CVE-2017-5753 (Spectre Variant 1, bounds check bypass): YES
- * Vulnerable to CVE-2017-5715 (Spectre Variant 2, branch target injection): YES
- * Vulnerable to CVE-2017-5754 (Variant 3, Meltdown, rogue data cache load): NO
- * Vulnerable to CVE-2018-3640 (Variant 3a, rogue system register read): YES
- * Vulnerable to CVE-2018-3639 (Variant 4, speculative store bypass): YES
- * Vulnerable to CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault): YES
- * Vulnerable to CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * Vulnerable to CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): NO
- * Vulnerable to CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): NO
- * Vulnerable to CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): NO
- * Vulnerable to CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): NO
- * Vulnerable to CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): NO
- * Vulnerable to CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): YES
-
- CVE-2017-5753 aka Spectre Variant 1, bounds check bypass
- * Mitigated according to the /sys interface: YES (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
- * Kernel has array_index_mask_nospec: YES (1 occurrence(s) found of x86 64 bits array_index_mask_nospec())
- * Kernel has the Red Hat/Ubuntu patch: NO
- * Kernel has mask_nospec64 (arm64): NO
- > STATUS: NOT VULNERABLE (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
-
- CVE-2017-5715 aka Spectre Variant 2, branch target injection
- * Mitigated according to the /sys interface: YES (Mitigation: Enhanced IBRS, IBPB: conditional, RSB filling)
- * Mitigation 1
- * Kernel is compiled with IBRS support: YES
- * IBRS enabled and active: YES (Enhanced flavor, performance impact will be greatly reduced)
- * Kernel is compiled with IBPB support: YES
- * IBPB enabled and active: YES
- * Mitigation 2
- * Kernel has branch predictor hardening (arm): NO
- * Kernel compiled with retpoline option: YES
- * Kernel supports RSB filling: YES
- > STATUS: NOT VULNERABLE (Enhanced IBRS + IBPB are mitigating the vulnerability)
-
- CVE-2017-5754 aka Variant 3, Meltdown, rogue data cache load
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports Page Table Isolation (PTI): YES
- * PTI enabled and active: UNKNOWN (dmesg truncated, please reboot and relaunch this script)
- * Reduced performance impact of PTI: YES (CPU supports INVPCID, performance impact of PTI will be greatly reduced)
- * Running as a Xen PV DomU: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3640 aka Variant 3a, rogue system register read
- * CPU microcode mitigates the vulnerability: YES
- > STATUS: NOT VULNERABLE (your CPU microcode mitigates the vulnerability)
-
- CVE-2018-3639 aka Variant 4, speculative store bypass
- * Mitigated according to the /sys interface: YES (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
- * Kernel supports disabling speculative store bypass (SSB): YES (found in /proc/self/status)
- * SSB mitigation is enabled and active: YES (per-thread through prctl)
- * SSB mitigation currently active for selected processes: YES (systemd-journald systemd-logind systemd-networkd systemd-resolved systemd-timesyncd systemd-udevd)
- > STATUS: NOT VULNERABLE (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
-
- CVE-2018-3615 aka Foreshadow (SGX), L1 terminal fault
- * CPU microcode mitigates the vulnerability: N/A
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3620 aka Foreshadow-NG (OS), L1 terminal fault
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports PTE inversion: YES (found in kernel image)
- * PTE inversion enabled and active: NO
- > STATUS: NOT VULNERABLE (Not affected)
-
- CVE-2018-3646 aka Foreshadow-NG (VMM), L1 terminal fault
- * Information from the /sys interface: Not affected
- * This system is a host running a hypervisor: NO
- * Mitigation 1 (KVM)
- * EPT is disabled: NO
- * Mitigation 2
- * L1D flush is supported by kernel: YES (found flush_l1d in /proc/cpuinfo)
- * L1D flush enabled: NO
- * Hardware-backed L1D flush supported: YES (performance impact of the mitigation will be greatly reduced)
- * Hyper-Threading (SMT) is enabled: YES
- > STATUS: NOT VULNERABLE (your kernel reported your CPU model as not vulnerable)
-
- CVE-2018-12126 aka Fallout, microarchitectural store buffer data sampling (MSBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12130 aka ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12127 aka RIDL, microarchitectural load port data sampling (MLPDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11091 aka RIDL, microarchitectural data sampling uncacheable memory (MDSUM)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11135 aka ZombieLoad V2, TSX Asynchronous Abort (TAA)
- * Mitigated according to the /sys interface: YES (Mitigation: TSX disabled)
- * TAA mitigation is supported by kernel: YES (found tsx_async_abort in kernel image)
- * TAA mitigation enabled and active: YES (Mitigation: TSX disabled)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12207 aka No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)
- * Mitigated according to the /sys interface: YES (KVM: Mitigation: Split huge pages)
- * This system is a host running a hypervisor: NO
- * iTLB Multihit mitigation is supported by kernel: YES (found itlb_multihit in kernel image)
- * iTLB Multihit mitigation enabled and active: YES (KVM: Mitigation: Split huge pages)
- > STATUS: NOT VULNERABLE (this system is not running a hypervisor)
-
- > SUMMARY: CVE-2017-5753:OK CVE-2017-5715:OK CVE-2017-5754:OK CVE-2018-3640:OK CVE-2018-3639:OK CVE-2018-3615:OK CVE-2018-3620:OK CVE-2018-3646:OK CVE-2018-12126:OK CVE-2018-12130:OK CVE-2018-12127:OK CVE-2019-11091:OK CVE-2019-11135:OK CVE-2018-12207:OK
-
-::
-
- awk: fatal: cannot open file `bash for reading (No such file or directory)
- Checking for vulnerabilities on current system
- Kernel is Linux 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64
- CPU is Intel(R) Xeon(R) Gold 6252N CPU @ 2.30GHz
-
- Hardware check
- * Hardware support (CPU microcode) for mitigation techniques
- * Indirect Branch Restricted Speculation (IBRS)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates IBRS capability: YES (SPEC_CTRL feature bit)
- * Indirect Branch Prediction Barrier (IBPB)
- * PRED_CMD MSR is available: YES
- * CPU indicates IBPB capability: YES (SPEC_CTRL feature bit)
- * Single Thread Indirect Branch Predictors (STIBP)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates STIBP capability: YES (Intel STIBP feature bit)
- * Speculative Store Bypass Disable (SSBD)
- * CPU indicates SSBD capability: YES (Intel SSBD)
- * L1 data cache invalidation
- * FLUSH_CMD MSR is available: YES
- * CPU indicates L1D flush capability: YES (L1D flush feature bit)
- * Microarchitectural Data Sampling
- * VERW instruction is available: YES (MD_CLEAR feature bit)
- * Enhanced IBRS (IBRS_ALL)
- * CPU indicates ARCH_CAPABILITIES MSR availability: YES
- * ARCH_CAPABILITIES MSR advertises IBRS_ALL capability: YES
- * CPU explicitly indicates not being vulnerable to Meltdown/L1TF (RDCL_NO): YES
- * CPU explicitly indicates not being vulnerable to Variant 4 (SSB_NO): NO
- * CPU/Hypervisor indicates L1D flushing is not necessary on this system: YES
- * Hypervisor indicates host CPU might be vulnerable to RSB underflow (RSBA): NO
- * CPU explicitly indicates not being vulnerable to Microarchitectural Data Sampling (MDS_NO): YES
- * CPU explicitly indicates not being vulnerable to TSX Asynchronous Abort (TAA_NO): NO
- * CPU explicitly indicates not being vulnerable to iTLB Multihit (PSCHANGE_MSC_NO): NO
- * CPU explicitly indicates having MSR for TSX control (TSX_CTRL_MSR): YES
- * TSX_CTRL MSR indicates TSX RTM is disabled: YES
- * TSX_CTRL MSR indicates TSX CPUID bit is cleared: YES
- * CPU supports Transactional Synchronization Extensions (TSX): NO
- * CPU supports Software Guard Extensions (SGX): NO
- * CPU microcode is known to cause stability problems: NO (family 0x6 model 0x55 stepping 0x7 ucode 0x500002c cpuid 0x50657)
- * CPU microcode is the latest known available version: awk: fatal: cannot open file `bash for reading (No such file or directory)
- UNKNOWN (latest microcode version for your CPU model is unknown)
- * CPU vulnerability to the speculative execution attack variants
- * Vulnerable to CVE-2017-5753 (Spectre Variant 1, bounds check bypass): YES
- * Vulnerable to CVE-2017-5715 (Spectre Variant 2, branch target injection): YES
- * Vulnerable to CVE-2017-5754 (Variant 3, Meltdown, rogue data cache load): NO
- * Vulnerable to CVE-2018-3640 (Variant 3a, rogue system register read): YES
- * Vulnerable to CVE-2018-3639 (Variant 4, speculative store bypass): YES
- * Vulnerable to CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault): YES
- * Vulnerable to CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * Vulnerable to CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): NO
- * Vulnerable to CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): NO
- * Vulnerable to CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): NO
- * Vulnerable to CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): NO
- * Vulnerable to CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): NO
- * Vulnerable to CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): YES
-
- CVE-2017-5753 aka Spectre Variant 1, bounds check bypass
- * Mitigated according to the /sys interface: YES (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
- * Kernel has array_index_mask_nospec: YES (1 occurrence(s) found of x86 64 bits array_index_mask_nospec())
- * Kernel has the Red Hat/Ubuntu patch: NO
- * Kernel has mask_nospec64 (arm64): NO
- > STATUS: NOT VULNERABLE (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
-
- CVE-2017-5715 aka Spectre Variant 2, branch target injection
- * Mitigated according to the /sys interface: YES (Mitigation: Enhanced IBRS, IBPB: conditional, RSB filling)
- * Mitigation 1
- * Kernel is compiled with IBRS support: YES
- * IBRS enabled and active: YES (Enhanced flavor, performance impact will be greatly reduced)
- * Kernel is compiled with IBPB support: YES
- * IBPB enabled and active: YES
- * Mitigation 2
- * Kernel has branch predictor hardening (arm): NO
- * Kernel compiled with retpoline option: YES
- * Kernel supports RSB filling: YES
- > STATUS: NOT VULNERABLE (Enhanced IBRS + IBPB are mitigating the vulnerability)
-
- CVE-2017-5754 aka Variant 3, Meltdown, rogue data cache load
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports Page Table Isolation (PTI): YES
- * PTI enabled and active: UNKNOWN (dmesg truncated, please reboot and relaunch this script)
- * Reduced performance impact of PTI: YES (CPU supports INVPCID, performance impact of PTI will be greatly reduced)
- * Running as a Xen PV DomU: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3640 aka Variant 3a, rogue system register read
- * CPU microcode mitigates the vulnerability: YES
- > STATUS: NOT VULNERABLE (your CPU microcode mitigates the vulnerability)
-
- CVE-2018-3639 aka Variant 4, speculative store bypass
- * Mitigated according to the /sys interface: YES (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
- * Kernel supports disabling speculative store bypass (SSB): YES (found in /proc/self/status)
- * SSB mitigation is enabled and active: YES (per-thread through prctl)
- * SSB mitigation currently active for selected processes: YES (systemd-journald systemd-logind systemd-networkd systemd-resolved systemd-timesyncd systemd-udevd)
- > STATUS: NOT VULNERABLE (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
-
- CVE-2018-3615 aka Foreshadow (SGX), L1 terminal fault
- * CPU microcode mitigates the vulnerability: N/A
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3620 aka Foreshadow-NG (OS), L1 terminal fault
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports PTE inversion: YES (found in kernel image)
- * PTE inversion enabled and active: NO
- > STATUS: NOT VULNERABLE (Not affected)
-
- CVE-2018-3646 aka Foreshadow-NG (VMM), L1 terminal fault
- * Information from the /sys interface: Not affected
- * This system is a host running a hypervisor: NO
- * Mitigation 1 (KVM)
- * EPT is disabled: NO
- * Mitigation 2
- * L1D flush is supported by kernel: YES (found flush_l1d in /proc/cpuinfo)
- * L1D flush enabled: NO
- * Hardware-backed L1D flush supported: YES (performance impact of the mitigation will be greatly reduced)
- * Hyper-Threading (SMT) is enabled: YES
- > STATUS: NOT VULNERABLE (your kernel reported your CPU model as not vulnerable)
-
- CVE-2018-12126 aka Fallout, microarchitectural store buffer data sampling (MSBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12130 aka ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12127 aka RIDL, microarchitectural load port data sampling (MLPDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11091 aka RIDL, microarchitectural data sampling uncacheable memory (MDSUM)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11135 aka ZombieLoad V2, TSX Asynchronous Abort (TAA)
- * Mitigated according to the /sys interface: YES (Mitigation: TSX disabled)
- * TAA mitigation is supported by kernel: YES (found tsx_async_abort in kernel image)
- * TAA mitigation enabled and active: YES (Mitigation: TSX disabled)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12207 aka No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)
- * Mitigated according to the /sys interface: YES (KVM: Mitigation: Split huge pages)
- * This system is a host running a hypervisor: NO
- * iTLB Multihit mitigation is supported by kernel: YES (found itlb_multihit in kernel image)
- * iTLB Multihit mitigation enabled and active: YES (KVM: Mitigation: Split huge pages)
- > STATUS: NOT VULNERABLE (this system is not running a hypervisor)
-
- > SUMMARY: CVE-2017-5753:OK CVE-2017-5715:OK CVE-2017-5754:OK CVE-2018-3640:OK CVE-2018-3639:OK CVE-2018-3615:OK CVE-2018-3620:OK CVE-2018-3646:OK CVE-2018-12126:OK CVE-2018-12130:OK CVE-2018-12127:OK CVE-2019-11091:OK CVE-2019-11135:OK CVE-2018-12207:OK
diff --git a/docs/report/introduction/test_environment_sut_meltspec_dnv.rst b/docs/report/introduction/test_environment_sut_meltspec_dnv.rst
deleted file mode 100644
index 616449efd7..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_dnv.rst
+++ /dev/null
@@ -1,149 +0,0 @@
-Spectre and Meltdown Checks
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Following section displays the output of a running shell script to tell if
-system is vulnerable against the several "speculative execution" CVEs that were
-made public in 2018. Script is available on `Spectre & Meltdown Checker Github
-<https://github.com/speed47/spectre-meltdown-checker>`_.
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.42
- Checking for vulnerabilities on current system
- Kernel is Linux 4.15.0-51-generic #55-Ubuntu SMP Wed May 15 14:27:21 UTC 2019 x86_64
- CPU is Intel(R) Atom(TM) CPU C3858 @ 2.00GHz
-
- Hardware check
- * Hardware support (CPU microcode) for mitigation techniques
- * Indirect Branch Restricted Speculation (IBRS)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates IBRS capability: YES (SPEC_CTRL feature bit)
- * Indirect Branch Prediction Barrier (IBPB)
- * PRED_CMD MSR is available: YES
- * CPU indicates IBPB capability: YES (SPEC_CTRL feature bit)
- * Single Thread Indirect Branch Predictors (STIBP)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates STIBP capability: YES (Intel STIBP feature bit)
- * Speculative Store Bypass Disable (SSBD)
- * CPU indicates SSBD capability: YES (Intel SSBD)
- * L1 data cache invalidation
- * FLUSH_CMD MSR is available: NO
- * CPU indicates L1D flush capability: NO
- * Microarchitecture Data Sampling
- * VERW instruction is available: YES (MD_CLEAR feature bit)
- * Enhanced IBRS (IBRS_ALL)
- * CPU indicates ARCH_CAPABILITIES MSR availability: YES
- * ARCH_CAPABILITIES MSR advertises IBRS_ALL capability: NO
- * CPU explicitly indicates not being vulnerable to Meltdown/L1TF (RDCL_NO): YES
- * CPU explicitly indicates not being vulnerable to Variant 4 (SSB_NO): NO
- * CPU/Hypervisor indicates L1D flushing is not necessary on this system: YES
- * Hypervisor indicates host CPU might be vulnerable to RSB underflow (RSBA): NO
- * CPU explicitly indicates not being vulnerable to Microarchitectural Data Sampling (MDS_NO): YES
- * CPU supports Software Guard Extensions (SGX): NO
- * CPU microcode is known to cause stability problems: NO (model 0x5f family 0x6 stepping 0x1 ucode 0x2e cpuid 0x506f1)
- * CPU microcode is the latest known available version: awk: fatal: cannot open file `bash for reading (No such file or directory)
- UNKNOWN (latest microcode version for your CPU model is unknown)
- * CPU vulnerability to the speculative execution attack variants
- * Vulnerable to CVE-2017-5753 (Spectre Variant 1, bounds check bypass): YES
- * Vulnerable to CVE-2017-5715 (Spectre Variant 2, branch target injection): YES
- * Vulnerable to CVE-2017-5754 (Variant 3, Meltdown, rogue data cache load): NO
- * Vulnerable to CVE-2018-3640 (Variant 3a, rogue system register read): YES
- * Vulnerable to CVE-2018-3639 (Variant 4, speculative store bypass): YES
- * Vulnerable to CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): NO
- * Vulnerable to CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): NO
- * Vulnerable to CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): NO
- * Vulnerable to CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): NO
- * Vulnerable to CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): NO
-
- CVE-2017-5753 aka Spectre Variant 1, bounds check bypass
- * Mitigated according to the /sys interface: YES (Mitigation: __user pointer sanitization)
- * Kernel has array_index_mask_nospec: YES (1 occurrence(s) found of x86 64 bits array_index_mask_nospec())
- * Kernel has the Red Hat/Ubuntu patch: NO
- * Kernel has mask_nospec64 (arm64): NO
- > STATUS: NOT VULNERABLE (Mitigation: __user pointer sanitization)
-
- CVE-2017-5715 aka Spectre Variant 2, branch target injection
- * Mitigated according to the /sys interface: YES (Mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: disabled, RSB filling)
- * Mitigation 1
- * Kernel is compiled with IBRS support: YES
- * IBRS enabled and active: YES (for firmware code only)
- * Kernel is compiled with IBPB support: YES
- * IBPB enabled and active: YES
- * Mitigation 2
- * Kernel has branch predictor hardening (arm): NO
- * Kernel compiled with retpoline option: YES
- * Kernel compiled with a retpoline-aware compiler: YES (kernel reports full retpoline compilation)
- > STATUS: NOT VULNERABLE (Full retpoline + IBPB are mitigating the vulnerability)
-
- CVE-2017-5754 aka Variant 3, Meltdown, rogue data cache load
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports Page Table Isolation (PTI): YES
- * PTI enabled and active: UNKNOWN (dmesg truncated, please reboot and relaunch this script)
- * Reduced performance impact of PTI: NO (PCID/INVPCID not supported, performance impact of PTI will be significant)
- * Running as a Xen PV DomU: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3640 aka Variant 3a, rogue system register read
- * CPU microcode mitigates the vulnerability: YES
- > STATUS: NOT VULNERABLE (your CPU microcode mitigates the vulnerability)
-
- CVE-2018-3639 aka Variant 4, speculative store bypass
- * Mitigated according to the /sys interface: YES (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
- * Kernel supports disabling speculative store bypass (SSB): YES (found in /proc/self/status)
- * SSB mitigation is enabled and active: YES (per-thread through prctl)
- * SSB mitigation currently active for selected processes: YES (systemd-journald systemd-logind systemd-networkd systemd-resolved systemd-timesyncd systemd-udevd)
- > STATUS: NOT VULNERABLE (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
-
- CVE-2018-3615 aka Foreshadow (SGX), L1 terminal fault
- * CPU microcode mitigates the vulnerability: N/A
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3620 aka Foreshadow-NG (OS), L1 terminal fault
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports PTE inversion: YES (found in kernel image)
- * PTE inversion enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3646 aka Foreshadow-NG (VMM), L1 terminal fault
- * Information from the /sys interface: Not affected
- * This system is a host running a hypervisor: NO
- * Mitigation 1 (KVM)
- * EPT is disabled: NO
- * Mitigation 2
- * L1D flush is supported by kernel: YES (found flush_l1d in kernel image)
- * L1D flush enabled: NO
- * Hardware-backed L1D flush supported: NO (flush will be done in software, this is slower)
- * Hyper-Threading (SMT) is enabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12126 aka Fallout, microarchitectural store buffer data sampling (MSBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12130 aka ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12127 aka RIDL, microarchitectural load port data sampling (MLPDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11091 aka RIDL, microarchitectural data sampling uncacheable memory (MDSUM)
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- > SUMMARY: CVE-2017-5753:OK CVE-2017-5715:OK CVE-2017-5754:OK CVE-2018-3640:OK CVE-2018-3639:OK CVE-2018-3615:OK CVE-2018-3620:OK CVE-2018-3646:OK CVE-2018-12126:OK CVE-2018-12130:OK CVE-2018-12127:OK CVE-2019-11091:OK
diff --git a/docs/report/introduction/test_environment_sut_meltspec_hsw.rst b/docs/report/introduction/test_environment_sut_meltspec_hsw.rst
deleted file mode 100644
index 092bfb3ca1..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_hsw.rst
+++ /dev/null
@@ -1,170 +0,0 @@
-Spectre and Meltdown Checks
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Following section displays the output of a running shell script to tell if
-system is vulnerable against the several "speculative execution" CVEs that were
-made public in 2018. Script is available on `Spectre & Meltdown Checker Github
-<https://github.com/speed47/spectre-meltdown-checker>`_.
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.43
-
- awk: cannot open bash (No such file or directory)
- Checking for vulnerabilities on current system
- Kernel is Linux 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64
- CPU is Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
-
- Hardware check
- * Hardware support (CPU microcode) for mitigation techniques
- * Indirect Branch Restricted Speculation (IBRS)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates IBRS capability: YES (SPEC_CTRL feature bit)
- * Indirect Branch Prediction Barrier (IBPB)
- * PRED_CMD MSR is available: YES
- * CPU indicates IBPB capability: YES (SPEC_CTRL feature bit)
- * Single Thread Indirect Branch Predictors (STIBP)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates STIBP capability: YES (Intel STIBP feature bit)
- * Speculative Store Bypass Disable (SSBD)
- * CPU indicates SSBD capability: YES (Intel SSBD)
- * L1 data cache invalidation
- * FLUSH_CMD MSR is available: YES
- * CPU indicates L1D flush capability: YES (L1D flush feature bit)
- * Microarchitectural Data Sampling
- * VERW instruction is available: YES (MD_CLEAR feature bit)
- * Enhanced IBRS (IBRS_ALL)
- * CPU indicates ARCH_CAPABILITIES MSR availability: NO
- * ARCH_CAPABILITIES MSR advertises IBRS_ALL capability: NO
- * CPU explicitly indicates not being vulnerable to Meltdown/L1TF (RDCL_NO): NO
- * CPU explicitly indicates not being vulnerable to Variant 4 (SSB_NO): NO
- * CPU/Hypervisor indicates L1D flushing is not necessary on this system: NO
- * Hypervisor indicates host CPU might be vulnerable to RSB underflow (RSBA): NO
- * CPU explicitly indicates not being vulnerable to Microarchitectural Data Sampling (MDS_NO): NO
- * CPU explicitly indicates not being vulnerable to TSX Asynchronous Abort (TAA_NO): NO
- * CPU explicitly indicates not being vulnerable to iTLB Multihit (PSCHANGE_MSC_NO): NO
- * CPU explicitly indicates having MSR for TSX control (TSX_CTRL_MSR): NO
- * CPU supports Transactional Synchronization Extensions (TSX): NO
- * CPU supports Software Guard Extensions (SGX): NO
- * CPU microcode is known to cause stability problems: NO (model 0x3f family 0x6 stepping 0x2 ucode 0x43 cpuid 0x306f2)
- * CPU microcode is the latest known available version: awk: cannot open bash (No such file or directory)
- UNKNOWN (latest microcode version for your CPU model is unknown)
- * CPU vulnerability to the speculative execution attack variants
- * Vulnerable to CVE-2017-5753 (Spectre Variant 1, bounds check bypass): YES
- * Vulnerable to CVE-2017-5715 (Spectre Variant 2, branch target injection): YES
- * Vulnerable to CVE-2017-5754 (Variant 3, Meltdown, rogue data cache load): YES
- * Vulnerable to CVE-2018-3640 (Variant 3a, rogue system register read): YES
- * Vulnerable to CVE-2018-3639 (Variant 4, speculative store bypass): YES
- * Vulnerable to CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault): YES
- * Vulnerable to CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * Vulnerable to CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): YES
- * Vulnerable to CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): YES
- * Vulnerable to CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): YES
- * Vulnerable to CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): YES
- * Vulnerable to CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): NO
- * Vulnerable to CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): YES
-
- CVE-2017-5753 aka Spectre Variant 1, bounds check bypass
- * Mitigated according to the /sys interface: YES (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
- * Kernel has array_index_mask_nospec: YES (1 occurrence(s) found of x86 64 bits array_index_mask_nospec())
- * Kernel has the Red Hat/Ubuntu patch: NO
- * Kernel has mask_nospec64 (arm64): NO
- > STATUS: NOT VULNERABLE (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
-
- CVE-2017-5715 aka Spectre Variant 2, branch target injection
- * Mitigated according to the /sys interface: YES (Mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, RSB filling)
- * Mitigation 1
- * Kernel is compiled with IBRS support: YES
- * IBRS enabled and active: YES (for firmware code only)
- * Kernel is compiled with IBPB support: YES
- * IBPB enabled and active: YES
- * Mitigation 2
- * Kernel has branch predictor hardening (arm): NO
- * Kernel compiled with retpoline option: YES
- * Kernel compiled with a retpoline-aware compiler: YES (kernel reports full retpoline compilation)
- > STATUS: NOT VULNERABLE (Full retpoline + IBPB are mitigating the vulnerability)
-
- CVE-2017-5754 aka Variant 3, Meltdown, rogue data cache load
- * Mitigated according to the /sys interface: YES (Mitigation: PTI)
- * Kernel supports Page Table Isolation (PTI): YES
- * PTI enabled and active: YES
- * Reduced performance impact of PTI: YES (CPU supports INVPCID, performance impact of PTI will be greatly reduced)
- * Running as a Xen PV DomU: NO
- > STATUS: NOT VULNERABLE (Mitigation: PTI)
-
- CVE-2018-3640 aka Variant 3a, rogue system register read
- * CPU microcode mitigates the vulnerability: YES
- > STATUS: NOT VULNERABLE (your CPU microcode mitigates the vulnerability)
-
- CVE-2018-3639 aka Variant 4, speculative store bypass
- * Mitigated according to the /sys interface: YES (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
- * Kernel supports disabling speculative store bypass (SSB): YES (found in /proc/self/status)
- * SSB mitigation is enabled and active: YES (per-thread through prctl)
- * SSB mitigation currently active for selected processes: YES (systemd-journald systemd-logind systemd-networkd systemd-resolved systemd-timesyncd systemd-udevd)
- > STATUS: NOT VULNERABLE (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
-
- CVE-2018-3615 aka Foreshadow (SGX), L1 terminal fault
- * CPU microcode mitigates the vulnerability: N/A
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3620 aka Foreshadow-NG (OS), L1 terminal fault
- * Mitigated according to the /sys interface: YES (Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT disabled)
- * Kernel supports PTE inversion: YES (found in kernel image)
- * PTE inversion enabled and active: YES
- > STATUS: NOT VULNERABLE (Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT disabled)
-
- CVE-2018-3646 aka Foreshadow-NG (VMM), L1 terminal fault
- * Information from the /sys interface: Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT disabled
- * This system is a host running a hypervisor: NO
- * Mitigation 1 (KVM)
- * EPT is disabled: NO
- * Mitigation 2
- * L1D flush is supported by kernel: YES (found flush_l1d in /proc/cpuinfo)
- * L1D flush enabled: YES (conditional flushes)
- * Hardware-backed L1D flush supported: YES (performance impact of the mitigation will be greatly reduced)
- * Hyper-Threading (SMT) is enabled: NO
- > STATUS: NOT VULNERABLE (this system is not running a hypervisor)
-
- CVE-2018-12126 aka Fallout, microarchitectural store buffer data sampling (MSBDS)
- * Mitigated according to the /sys interface: YES (Mitigation: Clear CPU buffers; SMT disabled)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: YES
- * SMT is either mitigated or disabled: YES
- > STATUS: NOT VULNERABLE (Your microcode and kernel are both up to date for this mitigation, and mitigation is enabled)
-
- CVE-2018-12130 aka ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)
- * Mitigated according to the /sys interface: YES (Mitigation: Clear CPU buffers; SMT disabled)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: YES
- * SMT is either mitigated or disabled: YES
- > STATUS: NOT VULNERABLE (Your microcode and kernel are both up to date for this mitigation, and mitigation is enabled)
-
- CVE-2018-12127 aka RIDL, microarchitectural load port data sampling (MLPDS)
- * Mitigated according to the /sys interface: YES (Mitigation: Clear CPU buffers; SMT disabled)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: YES
- * SMT is either mitigated or disabled: YES
- > STATUS: NOT VULNERABLE (Your microcode and kernel are both up to date for this mitigation, and mitigation is enabled)
-
- CVE-2019-11091 aka RIDL, microarchitectural data sampling uncacheable memory (MDSUM)
- * Mitigated according to the /sys interface: YES (Mitigation: Clear CPU buffers; SMT disabled)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: YES
- * SMT is either mitigated or disabled: YES
- > STATUS: NOT VULNERABLE (Your microcode and kernel are both up to date for this mitigation, and mitigation is enabled)
-
- CVE-2019-11135 aka ZombieLoad V2, TSX Asynchronous Abort (TAA)
- * Mitigated according to the /sys interface: YES (Not affected)
- * TAA mitigation is supported by kernel: YES (found tsx_async_abort in kernel image)
- * TAA mitigation enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12207 aka No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)
- * Mitigated according to the /sys interface: YES (KVM: Mitigation: Split huge pages)
- * This system is a host running a hypervisor: NO
- * iTLB Multihit mitigation is supported by kernel: YES (found itlb_multihit in kernel image)
- * iTLB Multihit mitigation enabled and active: YES (KVM: Mitigation: Split huge pages)
- > STATUS: NOT VULNERABLE (this system is not running a hypervisor)
-
- > SUMMARY: CVE-2017-5753:OK CVE-2017-5715:OK CVE-2017-5754:OK CVE-2018-3640:OK CVE-2018-3639:OK CVE-2018-3615:OK CVE-2018-3620:OK CVE-2018-3646:OK CVE-2018-12126:OK CVE-2018-12130:OK CVE-2018-12127:OK CVE-2019-11091:OK CVE-2019-11135:OK CVE-2018-12207:OK
diff --git a/docs/report/introduction/test_environment_sut_meltspec_skx.rst b/docs/report/introduction/test_environment_sut_meltspec_skx.rst
deleted file mode 100644
index e242e19b7e..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_skx.rst
+++ /dev/null
@@ -1,171 +0,0 @@
-Spectre and Meltdown Checks
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Following section displays the output of a running shell script to tell if
-system is vulnerable against the several "speculative execution" CVEs that were
-made public in 2018. Script is available on `Spectre & Meltdown Checker Github
-<https://github.com/speed47/spectre-meltdown-checker>`_.
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.43
-
- awk: cannot open bash (No such file or directory)
- Checking for vulnerabilities on current system
- Kernel is Linux 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64
- CPU is Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz
-
- Hardware check
- * Hardware support (CPU microcode) for mitigation techniques
- * Indirect Branch Restricted Speculation (IBRS)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates IBRS capability: YES (SPEC_CTRL feature bit)
- * Indirect Branch Prediction Barrier (IBPB)
- * PRED_CMD MSR is available: YES
- * CPU indicates IBPB capability: YES (SPEC_CTRL feature bit)
- * Single Thread Indirect Branch Predictors (STIBP)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates STIBP capability: YES (Intel STIBP feature bit)
- * Speculative Store Bypass Disable (SSBD)
- * CPU indicates SSBD capability: YES (Intel SSBD)
- * L1 data cache invalidation
- * FLUSH_CMD MSR is available: YES
- * CPU indicates L1D flush capability: YES (L1D flush feature bit)
- * Microarchitectural Data Sampling
- * VERW instruction is available: YES (MD_CLEAR feature bit)
- * Enhanced IBRS (IBRS_ALL)
- * CPU indicates ARCH_CAPABILITIES MSR availability: NO
- * ARCH_CAPABILITIES MSR advertises IBRS_ALL capability: NO
- * CPU explicitly indicates not being vulnerable to Meltdown/L1TF (RDCL_NO): NO
- * CPU explicitly indicates not being vulnerable to Variant 4 (SSB_NO): NO
- * CPU/Hypervisor indicates L1D flushing is not necessary on this system: NO
- * Hypervisor indicates host CPU might be vulnerable to RSB underflow (RSBA): NO
- * CPU explicitly indicates not being vulnerable to Microarchitectural Data Sampling (MDS_NO): NO
- * CPU explicitly indicates not being vulnerable to TSX Asynchronous Abort (TAA_NO): NO
- * CPU explicitly indicates not being vulnerable to iTLB Multihit (PSCHANGE_MSC_NO): NO
- * CPU explicitly indicates having MSR for TSX control (TSX_CTRL_MSR): NO
- * CPU supports Transactional Synchronization Extensions (TSX): YES (RTM feature bit)
- * CPU supports Software Guard Extensions (SGX): NO
- * CPU microcode is known to cause stability problems: NO (model 0x55 family 0x6 stepping 0x4 ucode 0x2000064 cpuid 0x50654)
- * CPU microcode is the latest known available version: awk: cannot open bash (No such file or directory)
- UNKNOWN (latest microcode version for your CPU model is unknown)
- * CPU vulnerability to the speculative execution attack variants
- * Vulnerable to CVE-2017-5753 (Spectre Variant 1, bounds check bypass): YES
- * Vulnerable to CVE-2017-5715 (Spectre Variant 2, branch target injection): YES
- * Vulnerable to CVE-2017-5754 (Variant 3, Meltdown, rogue data cache load): YES
- * Vulnerable to CVE-2018-3640 (Variant 3a, rogue system register read): YES
- * Vulnerable to CVE-2018-3639 (Variant 4, speculative store bypass): YES
- * Vulnerable to CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault): YES
- * Vulnerable to CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * Vulnerable to CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): YES
- * Vulnerable to CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): YES
- * Vulnerable to CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): YES
- * Vulnerable to CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): YES
- * Vulnerable to CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): YES
- * Vulnerable to CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): YES
-
- CVE-2017-5753 aka Spectre Variant 1, bounds check bypass
- * Mitigated according to the /sys interface: YES (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
- * Kernel has array_index_mask_nospec: YES (1 occurrence(s) found of x86 64 bits array_index_mask_nospec())
- * Kernel has the Red Hat/Ubuntu patch: NO
- * Kernel has mask_nospec64 (arm64): NO
- > STATUS: NOT VULNERABLE (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
-
- CVE-2017-5715 aka Spectre Variant 2, branch target injection
- * Mitigated according to the /sys interface: YES (Mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling)
- * Mitigation 1
- * Kernel is compiled with IBRS support: YES
- * IBRS enabled and active: YES (for firmware code only)
- * Kernel is compiled with IBPB support: YES
- * IBPB enabled and active: YES
- * Mitigation 2
- * Kernel has branch predictor hardening (arm): NO
- * Kernel compiled with retpoline option: YES
- * Kernel compiled with a retpoline-aware compiler: YES (kernel reports full retpoline compilation)
- * Kernel supports RSB filling: YES
- > STATUS: NOT VULNERABLE (Full retpoline + IBPB are mitigating the vulnerability)
-
- CVE-2017-5754 aka Variant 3, Meltdown, rogue data cache load
- * Mitigated according to the /sys interface: YES (Mitigation: PTI)
- * Kernel supports Page Table Isolation (PTI): YES
- * PTI enabled and active: YES
- * Reduced performance impact of PTI: YES (CPU supports INVPCID, performance impact of PTI will be greatly reduced)
- * Running as a Xen PV DomU: NO
- > STATUS: NOT VULNERABLE (Mitigation: PTI)
-
- CVE-2018-3640 aka Variant 3a, rogue system register read
- * CPU microcode mitigates the vulnerability: YES
- > STATUS: NOT VULNERABLE (your CPU microcode mitigates the vulnerability)
-
- CVE-2018-3639 aka Variant 4, speculative store bypass
- * Mitigated according to the /sys interface: YES (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
- * Kernel supports disabling speculative store bypass (SSB): YES (found in /proc/self/status)
- * SSB mitigation is enabled and active: YES (per-thread through prctl)
- * SSB mitigation currently active for selected processes: YES (systemd-journald systemd-logind systemd-networkd systemd-resolved systemd-timesyncd systemd-udevd)
- > STATUS: NOT VULNERABLE (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
-
- CVE-2018-3615 aka Foreshadow (SGX), L1 terminal fault
- * CPU microcode mitigates the vulnerability: N/A
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3620 aka Foreshadow-NG (OS), L1 terminal fault
- * Mitigated according to the /sys interface: YES (Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable)
- * Kernel supports PTE inversion: YES (found in kernel image)
- * PTE inversion enabled and active: YES
- > STATUS: NOT VULNERABLE (Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable)
-
- CVE-2018-3646 aka Foreshadow-NG (VMM), L1 terminal fault
- * Information from the /sys interface: Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
- * This system is a host running a hypervisor: NO
- * Mitigation 1 (KVM)
- * EPT is disabled: NO
- * Mitigation 2
- * L1D flush is supported by kernel: YES (found flush_l1d in /proc/cpuinfo)
- * L1D flush enabled: YES (conditional flushes)
- * Hardware-backed L1D flush supported: YES (performance impact of the mitigation will be greatly reduced)
- * Hyper-Threading (SMT) is enabled: YES
- > STATUS: NOT VULNERABLE (this system is not running a hypervisor)
-
- CVE-2018-12126 aka Fallout, microarchitectural store buffer data sampling (MSBDS)
- * Mitigated according to the /sys interface: YES (Mitigation: Clear CPU buffers; SMT vulnerable)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: YES
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (Your microcode and kernel are both up to date for this mitigation, and mitigation is enabled)
-
- CVE-2018-12130 aka ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)
- * Mitigated according to the /sys interface: YES (Mitigation: Clear CPU buffers; SMT vulnerable)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: YES
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (Your microcode and kernel are both up to date for this mitigation, and mitigation is enabled)
-
- CVE-2018-12127 aka RIDL, microarchitectural load port data sampling (MLPDS)
- * Mitigated according to the /sys interface: YES (Mitigation: Clear CPU buffers; SMT vulnerable)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: YES
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (Your microcode and kernel are both up to date for this mitigation, and mitigation is enabled)
-
- CVE-2019-11091 aka RIDL, microarchitectural data sampling uncacheable memory (MDSUM)
- * Mitigated according to the /sys interface: YES (Mitigation: Clear CPU buffers; SMT vulnerable)
- * Kernel supports using MD_CLEAR mitigation: YES (md_clear found in /proc/cpuinfo)
- * Kernel mitigation is enabled and active: YES
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (Your microcode and kernel are both up to date for this mitigation, and mitigation is enabled)
-
- CVE-2019-11135 aka ZombieLoad V2, TSX Asynchronous Abort (TAA)
- * Mitigated according to the /sys interface: YES (Mitigation: Clear CPU buffers; SMT vulnerable)
- * TAA mitigation is supported by kernel: YES (found tsx_async_abort in kernel image)
- * TAA mitigation enabled and active: YES (Mitigation: Clear CPU buffers; SMT vulnerable)
- > STATUS: NOT VULNERABLE (Mitigation: Clear CPU buffers; SMT vulnerable)
-
- CVE-2018-12207 aka No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)
- * Mitigated according to the /sys interface: YES (KVM: Mitigation: Split huge pages)
- * This system is a host running a hypervisor: NO
- * iTLB Multihit mitigation is supported by kernel: YES (found itlb_multihit in kernel image)
- * iTLB Multihit mitigation enabled and active: YES (KVM: Mitigation: Split huge pages)
- > STATUS: NOT VULNERABLE (this system is not running a hypervisor)
-
- > SUMMARY: CVE-2017-5753:OK CVE-2017-5715:OK CVE-2017-5754:OK CVE-2018-3640:OK CVE-2018-3639:OK CVE-2018-3615:OK CVE-2018-3620:OK CVE-2018-3646:OK CVE-2018-12126:OK CVE-2018-12130:OK CVE-2018-12127:OK CVE-2019-11091:OK CVE-2019-11135:OK CVE-2018-12207:OK
diff --git a/docs/report/introduction/test_environment_sut_meltspec_tsh.rst b/docs/report/introduction/test_environment_sut_meltspec_tsh.rst
deleted file mode 100644
index f7d385061c..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_tsh.rst
+++ /dev/null
@@ -1,154 +0,0 @@
-Spectre and Meltdown Checks
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Following section displays the output of a running shell script to tell if
-system is vulnerable against the several "speculative execution" CVEs that were
-made public in 2018. Script is available on `Spectre & Meltdown Checker Github
-<https://github.com/speed47/spectre-meltdown-checker>`_.
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.43
-
- awk: cannot open bash (No such file or directory)
- Checking for vulnerabilities on current system
- Kernel is Linux 4.15.0-23-generic #25-Ubuntu SMP Wed May 23 18:02:16 UTC 2018 x86_64
- CPU is Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz
-
- Hardware check
- * Hardware support (CPU microcode) for mitigation techniques
- * Indirect Branch Restricted Speculation (IBRS)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates IBRS capability: YES (SPEC_CTRL feature bit)
- * Indirect Branch Prediction Barrier (IBPB)
- * PRED_CMD MSR is available: YES
- * CPU indicates IBPB capability: YES (SPEC_CTRL feature bit)
- * Single Thread Indirect Branch Predictors (STIBP)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates STIBP capability: YES (Intel STIBP feature bit)
- * Speculative Store Bypass Disable (SSBD)
- * CPU indicates SSBD capability: NO
- * L1 data cache invalidation
- * FLUSH_CMD MSR is available: NO
- * CPU indicates L1D flush capability: NO
- * Microarchitectural Data Sampling
- * VERW instruction is available: NO
- * Enhanced IBRS (IBRS_ALL)
- * CPU indicates ARCH_CAPABILITIES MSR availability: NO
- * ARCH_CAPABILITIES MSR advertises IBRS_ALL capability: NO
- * CPU explicitly indicates not being vulnerable to Meltdown/L1TF (RDCL_NO): NO
- * CPU explicitly indicates not being vulnerable to Variant 4 (SSB_NO): NO
- * CPU/Hypervisor indicates L1D flushing is not necessary on this system: NO
- * Hypervisor indicates host CPU might be vulnerable to RSB underflow (RSBA): NO
- * CPU explicitly indicates not being vulnerable to Microarchitectural Data Sampling (MDS_NO): NO
- * CPU explicitly indicates not being vulnerable to TSX Asynchronous Abort (TAA_NO): NO
- * CPU explicitly indicates not being vulnerable to iTLB Multihit (PSCHANGE_MSC_NO): NO
- * CPU explicitly indicates having MSR for TSX control (TSX_CTRL_MSR): NO
- * CPU supports Transactional Synchronization Extensions (TSX): YES (RTM feature bit)
- * CPU supports Software Guard Extensions (SGX): NO
- * CPU microcode is known to cause stability problems: NO (model 0x55 family 0x6 stepping 0x4 ucode 0x2000043 cpuid 0x50654)
- * CPU microcode is the latest known available version: awk: cannot open bash (No such file or directory)
- UNKNOWN (latest microcode version for your CPU model is unknown)
- * CPU vulnerability to the speculative execution attack variants
- * Vulnerable to CVE-2017-5753 (Spectre Variant 1, bounds check bypass): YES
- * Vulnerable to CVE-2017-5715 (Spectre Variant 2, branch target injection): YES
- * Vulnerable to CVE-2017-5754 (Variant 3, Meltdown, rogue data cache load): YES
- * Vulnerable to CVE-2018-3640 (Variant 3a, rogue system register read): YES
- * Vulnerable to CVE-2018-3639 (Variant 4, speculative store bypass): YES
- * Vulnerable to CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault): YES
- * Vulnerable to CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * Vulnerable to CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): YES
- * Vulnerable to CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): YES
- * Vulnerable to CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): YES
- * Vulnerable to CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): YES
- * Vulnerable to CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): YES
- * Vulnerable to CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): YES
-
- CVE-2017-5753 aka Spectre Variant 1, bounds check bypass
- * Mitigated according to the /sys interface: YES (Mitigation: __user pointer sanitization)
- * Kernel has array_index_mask_nospec: YES (1 occurrence(s) found of x86 64 bits array_index_mask_nospec())
- * Kernel has the Red Hat/Ubuntu patch: NO
- * Kernel has mask_nospec64 (arm64): NO
- > STATUS: NOT VULNERABLE (Mitigation: __user pointer sanitization)
-
- CVE-2017-5715 aka Spectre Variant 2, branch target injection
- * Mitigated according to the /sys interface: YES (Mitigation: Full generic retpoline, IBPB, IBRS_FW)
- * Mitigation 1
- * Kernel is compiled with IBRS support: YES
- * IBRS enabled and active: YES (for firmware code only)
- * Kernel is compiled with IBPB support: YES
- * IBPB enabled and active: YES
- * Mitigation 2
- * Kernel has branch predictor hardening (arm): NO
- * Kernel compiled with retpoline option: YES
- * Kernel compiled with a retpoline-aware compiler: YES (kernel reports full retpoline compilation)
- * Kernel supports RSB filling: YES
- > STATUS: NOT VULNERABLE (Full retpoline + IBPB are mitigating the vulnerability)
-
- CVE-2017-5754 aka Variant 3, Meltdown, rogue data cache load
- * Mitigated according to the /sys interface: YES (Mitigation: PTI)
- * Kernel supports Page Table Isolation (PTI): YES
- * PTI enabled and active: YES
- * Reduced performance impact of PTI: YES (CPU supports INVPCID, performance impact of PTI will be greatly reduced)
- * Running as a Xen PV DomU: NO
- > STATUS: NOT VULNERABLE (Mitigation: PTI)
-
- CVE-2018-3640 aka Variant 3a, rogue system register read
- * CPU microcode mitigates the vulnerability: NO
- > STATUS: VULNERABLE (an up-to-date CPU microcode is needed to mitigate this vulnerability)
-
- CVE-2018-3639 aka Variant 4, speculative store bypass
- * Mitigated according to the /sys interface: NO (Vulnerable)
- * Kernel supports disabling speculative store bypass (SSB): YES (found in /proc/self/status)
- * SSB mitigation is enabled and active: NO
- > STATUS: VULNERABLE (Your CPU doesnt support SSBD)
-
- CVE-2018-3615 aka Foreshadow (SGX), L1 terminal fault
- * CPU microcode mitigates the vulnerability: N/A
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3620 aka Foreshadow-NG (OS), L1 terminal fault
- * Kernel supports PTE inversion: NO
- * PTE inversion enabled and active: UNKNOWN (sysfs interface not available)
- > STATUS: VULNERABLE (Your kernel doesnt support PTE inversion, update it)
-
- CVE-2018-3646 aka Foreshadow-NG (VMM), L1 terminal fault
- * This system is a host running a hypervisor: NO
- * Mitigation 1 (KVM)
- * EPT is disabled: NO
- * Mitigation 2
- * L1D flush is supported by kernel: NO
- * L1D flush enabled: UNKNOWN (cant find or read /sys/devices/system/cpu/vulnerabilities/l1tf)
- * Hardware-backed L1D flush supported: NO (flush will be done in software, this is slower)
- * Hyper-Threading (SMT) is enabled: YES
- > STATUS: NOT VULNERABLE (this system is not running a hypervisor)
-
- CVE-2018-12126 aka Fallout, microarchitectural store buffer data sampling (MSBDS)
- * Kernel supports using MD_CLEAR mitigation: NO
- > STATUS: VULNERABLE (Neither your kernel or your microcode support mitigation, upgrade both to mitigate the vulnerability)
-
- CVE-2018-12130 aka ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)
- * Kernel supports using MD_CLEAR mitigation: NO
- > STATUS: VULNERABLE (Neither your kernel or your microcode support mitigation, upgrade both to mitigate the vulnerability)
-
- CVE-2018-12127 aka RIDL, microarchitectural load port data sampling (MLPDS)
- * Kernel supports using MD_CLEAR mitigation: NO
- > STATUS: VULNERABLE (Neither your kernel or your microcode support mitigation, upgrade both to mitigate the vulnerability)
-
- CVE-2019-11091 aka RIDL, microarchitectural data sampling uncacheable memory (MDSUM)
- * Kernel supports using MD_CLEAR mitigation: NO
- > STATUS: VULNERABLE (Neither your kernel or your microcode support mitigation, upgrade both to mitigate the vulnerability)
-
- CVE-2019-11135 aka ZombieLoad V2, TSX Asynchronous Abort (TAA)
- * TAA mitigation is supported by kernel: NO
- * TAA mitigation enabled and active: NO (tsx_async_abort not found in sysfs hierarchy)
- > STATUS: VULNERABLE (Your kernel doesnt support TAA mitigation, update it)
-
- CVE-2018-12207 aka No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)
- * This system is a host running a hypervisor: NO
- * iTLB Multihit mitigation is supported by kernel: NO
- * iTLB Multihit mitigation enabled and active: NO (itlb_multihit not found in sysfs hierarchy)
- > STATUS: NOT VULNERABLE (this system is not running a hypervisor)
-
- > SUMMARY: CVE-2017-5753:OK CVE-2017-5715:OK CVE-2017-5754:OK CVE-2018-3640:KO CVE-2018-3639:KO CVE-2018-3615:OK CVE-2018-3620:KO CVE-2018-3646:OK CVE-2018-12126:KO CVE-2018-12130:KO CVE-2018-12127:KO CVE-2019-11091:KO CVE-2019-11135:KO CVE-2018-12207:OK
diff --git a/docs/report/introduction/test_environment_sut_meltspec_tx2.rst b/docs/report/introduction/test_environment_sut_meltspec_tx2.rst
deleted file mode 100644
index 06a6921673..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_tx2.rst
+++ /dev/null
@@ -1,141 +0,0 @@
-Spectre and Meltdown Checks
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Following section displays the output of a running shell script to tell if
-system is vulnerable against the several "speculative execution" CVEs that were
-made public in 2018. Script is available on `Spectre & Meltdown Checker Github
-<https://github.com/speed47/spectre-meltdown-checker>`_.
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.44+
-
- Checking for vulnerabilities on current system
- Kernel is Linux 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:21:09 UTC 2019 aarch64
- CPU is
-
- Hardware check
- * CPU vulnerability to the speculative execution attack variants
- * Affected by CVE-2017-5753 (Spectre Variant 1, bounds check bypass): YES
- * Affected by CVE-2017-5715 (Spectre Variant 2, branch target injection): YES
- * Affected by CVE-2017-5754 (Variant 3, Meltdown, rogue data cache load): NO
- * Affected by CVE-2018-3640 (Variant 3a, rogue system register read): NO
- * Affected by CVE-2018-3639 (Variant 4, speculative store bypass): YES
- * Affected by CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault): NO
- * Affected by CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault): NO
- * Affected by CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): NO
- * Affected by CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): NO
- * Affected by CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): NO
- * Affected by CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): NO
- * Affected by CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): NO
- * Affected by CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): NO
- * Affected by CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): NO
- * Affected by CVE-2020-0543 (Special Register Buffer Data Sampling (SRBDS)): NO
-
- CVE-2017-5753 aka 'Spectre Variant 1, bounds check bypass'
- * Mitigated according to the /sys interface: YES (Mitigation: __user pointer sanitization)
- * Kernel has array_index_mask_nospec: NO
- * Kernel has the Red Hat/Ubuntu patch: NO
- * Kernel has mask_nospec64 (arm64): NO
- * Kernel has array_index_nospec (arm64): NO
- * Checking count of LFENCE instructions following a jump in kernel... NO (only 0 jump-then-lfence instructions found, should be >= 30 (heuristic))
- > STATUS: NOT VULNERABLE (Mitigation: __user pointer sanitization)
-
- CVE-2017-5715 aka 'Spectre Variant 2, branch target injection'
- * Mitigated according to the /sys interface: NO (Vulnerable)
- * Mitigation 1
- * Kernel is compiled with IBRS support: YES
- * IBRS enabled and active: NO
- * Kernel is compiled with IBPB support: NO
- * IBPB enabled and active: NO
- * Mitigation 2
- * Kernel has branch predictor hardening (arm): YES
- * Kernel compiled with retpoline option: NO
- > STATUS: NOT VULNERABLE (Branch predictor hardening mitigates the vulnerability)
-
- CVE-2017-5754 aka 'Variant 3, Meltdown, rogue data cache load'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports Page Table Isolation (PTI): YES
- * PTI enabled and active: UNKNOWN (dmesg truncated, please reboot and relaunch this script)
- * Reduced performance impact of PTI: NO (PCID/INVPCID not supported, performance impact of PTI will be significant)
- * Running as a Xen PV DomU: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3640 aka 'Variant 3a, rogue system register read'
- * CPU microcode mitigates the vulnerability: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3639 aka 'Variant 4, speculative store bypass'
- * Mitigated according to the /sys interface: NO (Vulnerable)
- * Kernel supports disabling speculative store bypass (SSB): YES (found in /proc/self/status)
- * SSB mitigation is enabled and active: > STATUS: VULNERABLE (Your CPU doesn't support SSBD)
-
- CVE-2018-3615 aka 'Foreshadow (SGX), L1 terminal fault'
- * CPU microcode mitigates the vulnerability: N/A
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3620 aka 'Foreshadow-NG (OS), L1 terminal fault'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports PTE inversion: NO
- * PTE inversion enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3646 aka 'Foreshadow-NG (VMM), L1 terminal fault'
- * Information from the /sys interface: Not affected
- * This system is a host running a hypervisor: NO
- * Mitigation 1 (KVM)
- * EPT is disabled: N/A (the kvm_intel module is not loaded)
- * Mitigation 2
- * L1D flush is supported by kernel: NO
- * L1D flush enabled: NO
- * Hardware-backed L1D flush supported: NO (flush will be done in software, this is slower)
- * Hyper-Threading (SMT) is enabled: UNKNOWN
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12126 aka 'Fallout, microarchitectural store buffer data sampling (MSBDS)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: NO
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12130 aka 'ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: NO
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12127 aka 'RIDL, microarchitectural load port data sampling (MLPDS)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: NO
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11091 aka 'RIDL, microarchitectural data sampling uncacheable memory (MDSUM)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: NO
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11135 aka 'ZombieLoad V2, TSX Asynchronous Abort (TAA)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * TAA mitigation is supported by kernel: YES (found tsx_async_abort in kernel image)
- * TAA mitigation enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12207 aka 'No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * This system is a host running a hypervisor: NO
- * iTLB Multihit mitigation is supported by kernel: YES (found itlb_multihit in kernel image)
- * iTLB Multihit mitigation enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2020-0543 aka 'Special Register Buffer Data Sampling (SRBDS)'
- * SRBDS mitigation control is supported by the kernel: NO
- * SRBDS mitigation control is enabled and active: NO (SRBDS not found in sysfs hierarchy)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- > SUMMARY: CVE-2017-5753:OK CVE-2017-5715:OK CVE-2017-5754:OK CVE-2018-3640:OK CVE-2018-3639:KO CVE-2018-3615:OK CVE-2018-3620:OK CVE-2018-3646:OK CVE-2018-12126:OK CVE-2018-12130:OK CVE-2018-12127:OK CVE-2019-11091:OK CVE-2019-11135:OK CVE-2018-12207:OK CVE-2020-0543:OK \ No newline at end of file
diff --git a/docs/report/introduction/test_environment_sut_meltspec_zn2.rst b/docs/report/introduction/test_environment_sut_meltspec_zn2.rst
deleted file mode 100644
index 24169331a7..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_zn2.rst
+++ /dev/null
@@ -1,331 +0,0 @@
-Spectre and Meltdown Checks
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Following section displays the output of a running shell script to tell if
-system is vulnerable against the several speculative execution CVEs that were
-made public in 2018. Script is available on `Spectre & Meltdown Checker Github
-<https://github.com/speed47/spectre-meltdown-checker>`_.
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.43
-
- Checking for vulnerabilities on current system
- Kernel is Linux 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64
- CPU is AMD EPYC 7532 32-Core Processor
-
- Hardware check
- * Hardware support (CPU microcode) for mitigation techniques
- * Indirect Branch Restricted Speculation (IBRS)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates IBRS capability: YES (IBRS_SUPPORT feature bit)
- * CPU indicates preferring IBRS always-on: NO
- * CPU indicates preferring IBRS over retpoline: YES
- * Indirect Branch Prediction Barrier (IBPB)
- * PRED_CMD MSR is available: YES
- * CPU indicates IBPB capability: YES (IBPB_SUPPORT feature bit)
- * Single Thread Indirect Branch Predictors (STIBP)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates STIBP capability: YES (AMD STIBP feature bit)
- * CPU indicates preferring STIBP always-on: NO
- * Speculative Store Bypass Disable (SSBD)
- * CPU indicates SSBD capability: YES (AMD SSBD in SPEC_CTRL)
- * L1 data cache invalidation
- * FLUSH_CMD MSR is available: NO
- * CPU indicates L1D flush capability: NO
- * CPU supports Transactional Synchronization Extensions (TSX): NO
- * CPU supports Software Guard Extensions (SGX): NO
- * CPU supports Special Register Buffer Data Sampling (SRBDS): NO
- * CPU microcode is known to cause stability problems: NO (family 0x17 model 0x31 stepping 0x0 ucode 0x8301034 cpuid 0x830f10)
- * CPU microcode is the latest known available version: NO (latest version is 0x8301039 dated 2020/02/07 according to builtin firmwares DB v160.20200912+i20200722)
- * CPU vulnerability to the speculative execution attack variants
- * Vulnerable to CVE-2017-5753 (Spectre Variant 1, bounds check bypass): YES
- * Vulnerable to CVE-2017-5715 (Spectre Variant 2, branch target injection): YES
- * Vulnerable to CVE-2017-5754 (Variant 3, Meltdown, rogue data cache load): NO
- * Vulnerable to CVE-2018-3640 (Variant 3a, rogue system register read): NO
- * Vulnerable to CVE-2018-3639 (Variant 4, speculative store bypass): YES
- * Vulnerable to CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): NO
- * Vulnerable to CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): NO
- * Vulnerable to CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): NO
- * Vulnerable to CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): NO
- * Vulnerable to CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): NO
- * Vulnerable to CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): NO
- * Vulnerable to CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): NO
- * Vulnerable to CVE-2020-0543 (Special Register Buffer Data Sampling (SRBDS)): NO
-
- CVE-2017-5753 aka 'Spectre Variant 1, bounds check bypass'
- * Mitigated according to the /sys interface: YES (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
- * Kernel has array_index_mask_nospec: YES (1 occurrence(s) found of x86 64 bits array_index_mask_nospec())
- * Kernel has the Red Hat/Ubuntu patch: NO
- * Kernel has mask_nospec64 (arm64): NO
- * Kernel has array_index_nospec (arm64): NO
- > STATUS: NOT VULNERABLE (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
-
- CVE-2017-5715 aka 'Spectre Variant 2, branch target injection'
- * Mitigated according to the /sys interface: YES (Mitigation: Full AMD retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling)
- * Mitigation 1
- * Kernel is compiled with IBRS support: YES
- * IBRS enabled and active: YES (for firmware code only)
- * Kernel is compiled with IBPB support: YES
- * IBPB enabled and active: YES
- * Mitigation 2
- * Kernel has branch predictor hardening (arm): NO
- * Kernel compiled with retpoline option: YES
- * Kernel compiled with a retpoline-aware compiler: YES (kernel reports full retpoline compilation)
- > STATUS: NOT VULNERABLE (Full retpoline + IBPB are mitigating the vulnerability)
-
- CVE-2017-5754 aka 'Variant 3, Meltdown, rogue data cache load'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports Page Table Isolation (PTI): YES
- * PTI enabled and active: NO
- * Reduced performance impact of PTI: NO (PCID/INVPCID not supported, performance impact of PTI will be significant)
- * Running as a Xen PV DomU: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3640 aka 'Variant 3a, rogue system register read'
- * CPU microcode mitigates the vulnerability: YES
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3639 aka 'Variant 4, speculative store bypass'
- * Mitigated according to the /sys interface: YES (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
- * Kernel supports disabling speculative store bypass (SSB): YES (found in /proc/self/status)
- * SSB mitigation is enabled and active: YES (per-thread through prctl)
- * SSB mitigation currently active for selected processes: YES (systemd-journald systemd-logind systemd-networkd systemd-resolved systemd-timesyncd systemd-udevd)
- > STATUS: NOT VULNERABLE (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
-
- CVE-2018-3615 aka 'Foreshadow (SGX), L1 terminal fault'
- * CPU microcode mitigates the vulnerability: N/A
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3620 aka 'Foreshadow-NG (OS), L1 terminal fault'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports PTE inversion: YES (found in kernel image)
- * PTE inversion enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3646 aka 'Foreshadow-NG (VMM), L1 terminal fault'
- * Information from the /sys interface: Not affected
- * This system is a host running a hypervisor: NO
- * Mitigation 1 (KVM)
- * EPT is disabled: N/A (the kvm_intel module is not loaded)
- * Mitigation 2
- * L1D flush is supported by kernel: YES (found flush_l1d in kernel image)
- * L1D flush enabled: NO
- * Hardware-backed L1D flush supported: NO (flush will be done in software, this is slower)
- * Hyper-Threading (SMT) is enabled: YES
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12126 aka 'Fallout, microarchitectural store buffer data sampling (MSBDS)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (found md_clear implementation evidence in kernel image)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12130 aka 'ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (found md_clear implementation evidence in kernel image)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12127 aka 'RIDL, microarchitectural load port data sampling (MLPDS)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (found md_clear implementation evidence in kernel image)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11091 aka 'RIDL, microarchitectural data sampling uncacheable memory (MDSUM)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (found md_clear implementation evidence in kernel image)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11135 aka 'ZombieLoad V2, TSX Asynchronous Abort (TAA)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * TAA mitigation is supported by kernel: YES (found tsx_async_abort in kernel image)
- * TAA mitigation enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12207 aka 'No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * This system is a host running a hypervisor: NO
- * iTLB Multihit mitigation is supported by kernel: YES (found itlb_multihit in kernel image)
- * iTLB Multihit mitigation enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2020-0543 aka 'Special Register Buffer Data Sampling (SRBDS)'
- * SRBDS mitigation control is supported by the kernel: NO
- * SRBDS mitigation control is enabled and active: NO (SRBDS not found in sysfs hierarchy)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- > SUMMARY: CVE-2017-5753:OK CVE-2017-5715:OK CVE-2017-5754:OK CVE-2018-3640:OK CVE-2018-3639:OK CVE-2018-3615:OK CVE-2018-3620:OK CVE-2018-3646:OK CVE-2018-12126:OK CVE-2018-12130:OK CVE-2018-12127:OK CVE-2019-11091:OK CVE-2019-11135:OK CVE-2018-12207:OK CVE-2020-0543:OK
-
- Need more detailed information about mitigation options? Use --explain
- A false sense of security is worse than no security at all, see --disclaimer
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.43
-
- Checking for vulnerabilities on current system
- Kernel is Linux 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64
- CPU is AMD EPYC 7532 32-Core Processor
-
- Hardware check
- * Hardware support (CPU microcode) for mitigation techniques
- * Indirect Branch Restricted Speculation (IBRS)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates IBRS capability: YES (IBRS_SUPPORT feature bit)
- * CPU indicates preferring IBRS always-on: NO
- * CPU indicates preferring IBRS over retpoline: YES
- * Indirect Branch Prediction Barrier (IBPB)
- * PRED_CMD MSR is available: YES
- * CPU indicates IBPB capability: YES (IBPB_SUPPORT feature bit)
- * Single Thread Indirect Branch Predictors (STIBP)
- * SPEC_CTRL MSR is available: YES
- * CPU indicates STIBP capability: YES (AMD STIBP feature bit)
- * CPU indicates preferring STIBP always-on: NO
- * Speculative Store Bypass Disable (SSBD)
- * CPU indicates SSBD capability: YES (AMD SSBD in SPEC_CTRL)
- * L1 data cache invalidation
- * FLUSH_CMD MSR is available: NO
- * CPU indicates L1D flush capability: NO
- * CPU supports Transactional Synchronization Extensions (TSX): NO
- * CPU supports Software Guard Extensions (SGX): NO
- * CPU supports Special Register Buffer Data Sampling (SRBDS): NO
- * CPU microcode is known to cause stability problems: NO (family 0x17 model 0x31 stepping 0x0 ucode 0x8301034 cpuid 0x830f10)
- * CPU microcode is the latest known available version: NO (latest version is 0x8301039 dated 2020/02/07 according to builtin firmwares DB v160.20200912+i20200722)
- * CPU vulnerability to the speculative execution attack variants
- * Vulnerable to CVE-2017-5753 (Spectre Variant 1, bounds check bypass): YES
- * Vulnerable to CVE-2017-5715 (Spectre Variant 2, branch target injection): YES
- * Vulnerable to CVE-2017-5754 (Variant 3, Meltdown, rogue data cache load): NO
- * Vulnerable to CVE-2018-3640 (Variant 3a, rogue system register read): NO
- * Vulnerable to CVE-2018-3639 (Variant 4, speculative store bypass): YES
- * Vulnerable to CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault): NO
- * Vulnerable to CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): NO
- * Vulnerable to CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): NO
- * Vulnerable to CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): NO
- * Vulnerable to CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): NO
- * Vulnerable to CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): NO
- * Vulnerable to CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): NO
- * Vulnerable to CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): NO
- * Vulnerable to CVE-2020-0543 (Special Register Buffer Data Sampling (SRBDS)): NO
-
- CVE-2017-5753 aka 'Spectre Variant 1, bounds check bypass'
- * Mitigated according to the /sys interface: YES (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
- * Kernel has array_index_mask_nospec: YES (1 occurrence(s) found of x86 64 bits array_index_mask_nospec())
- * Kernel has the Red Hat/Ubuntu patch: NO
- * Kernel has mask_nospec64 (arm64): NO
- * Kernel has array_index_nospec (arm64): NO
- > STATUS: NOT VULNERABLE (Mitigation: usercopy/swapgs barriers and __user pointer sanitization)
-
- CVE-2017-5715 aka 'Spectre Variant 2, branch target injection'
- * Mitigated according to the /sys interface: YES (Mitigation: Full AMD retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling)
- * Mitigation 1
- * Kernel is compiled with IBRS support: YES
- * IBRS enabled and active: YES (for firmware code only)
- * Kernel is compiled with IBPB support: YES
- * IBPB enabled and active: YES
- * Mitigation 2
- * Kernel has branch predictor hardening (arm): NO
- * Kernel compiled with retpoline option: YES
- * Kernel compiled with a retpoline-aware compiler: YES (kernel reports full retpoline compilation)
- > STATUS: NOT VULNERABLE (Full retpoline + IBPB are mitigating the vulnerability)
-
- CVE-2017-5754 aka 'Variant 3, Meltdown, rogue data cache load'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports Page Table Isolation (PTI): YES
- * PTI enabled and active: NO
- * Reduced performance impact of PTI: NO (PCID/INVPCID not supported, performance impact of PTI will be significant)
- * Running as a Xen PV DomU: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3640 aka 'Variant 3a, rogue system register read'
- * CPU microcode mitigates the vulnerability: YES
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3639 aka 'Variant 4, speculative store bypass'
- * Mitigated according to the /sys interface: YES (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
- * Kernel supports disabling speculative store bypass (SSB): YES (found in /proc/self/status)
- * SSB mitigation is enabled and active: YES (per-thread through prctl)
- * SSB mitigation currently active for selected processes: YES (systemd-journald systemd-logind systemd-networkd systemd-resolved systemd-timesyncd systemd-udevd)
- > STATUS: NOT VULNERABLE (Mitigation: Speculative Store Bypass disabled via prctl and seccomp)
-
- CVE-2018-3615 aka 'Foreshadow (SGX), L1 terminal fault'
- * CPU microcode mitigates the vulnerability: N/A
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3620 aka 'Foreshadow-NG (OS), L1 terminal fault'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports PTE inversion: YES (found in kernel image)
- * PTE inversion enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-3646 aka 'Foreshadow-NG (VMM), L1 terminal fault'
- * Information from the /sys interface: Not affected
- * This system is a host running a hypervisor: NO
- * Mitigation 1 (KVM)
- * EPT is disabled: N/A (the kvm_intel module is not loaded)
- * Mitigation 2
- * L1D flush is supported by kernel: YES (found flush_l1d in kernel image)
- * L1D flush enabled: NO
- * Hardware-backed L1D flush supported: NO (flush will be done in software, this is slower)
- * Hyper-Threading (SMT) is enabled: YES
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12126 aka 'Fallout, microarchitectural store buffer data sampling (MSBDS)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (found md_clear implementation evidence in kernel image)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12130 aka 'ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (found md_clear implementation evidence in kernel image)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12127 aka 'RIDL, microarchitectural load port data sampling (MLPDS)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (found md_clear implementation evidence in kernel image)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11091 aka 'RIDL, microarchitectural data sampling uncacheable memory (MDSUM)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * Kernel supports using MD_CLEAR mitigation: YES (found md_clear implementation evidence in kernel image)
- * Kernel mitigation is enabled and active: NO
- * SMT is either mitigated or disabled: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2019-11135 aka 'ZombieLoad V2, TSX Asynchronous Abort (TAA)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * TAA mitigation is supported by kernel: YES (found tsx_async_abort in kernel image)
- * TAA mitigation enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2018-12207 aka 'No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)'
- * Mitigated according to the /sys interface: YES (Not affected)
- * This system is a host running a hypervisor: NO
- * iTLB Multihit mitigation is supported by kernel: YES (found itlb_multihit in kernel image)
- * iTLB Multihit mitigation enabled and active: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- CVE-2020-0543 aka 'Special Register Buffer Data Sampling (SRBDS)'
- * SRBDS mitigation control is supported by the kernel: NO
- * SRBDS mitigation control is enabled and active: NO (SRBDS not found in sysfs hierarchy)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- > SUMMARY: CVE-2017-5753:OK CVE-2017-5715:OK CVE-2017-5754:OK CVE-2018-3640:OK CVE-2018-3639:OK CVE-2018-3615:OK CVE-2018-3620:OK CVE-2018-3646:OK CVE-2018-12126:OK CVE-2018-12130:OK CVE-2018-12127:OK CVE-2019-11091:OK CVE-2019-11135:OK CVE-2018-12207:OK CVE-2020-0543:OK
-
- Need more detailed information about mitigation options? Use --explain
- A false sense of security is worse than no security at all, see --disclaimer \ No newline at end of file
diff --git a/docs/report/introduction/test_environment_tg.rst b/docs/report/introduction/test_environment_tg.rst
deleted file mode 100644
index 24df4deb63..0000000000
--- a/docs/report/introduction/test_environment_tg.rst
+++ /dev/null
@@ -1,72 +0,0 @@
-.. _test_environment_tg:
-
-TG Settings - TRex
-------------------
-
-TG Version
-~~~~~~~~~~
-
-|trex-release|
-
-DPDK Version
-~~~~~~~~~~~~
-
-DPDK v19.05
-
-TG Installation
-~~~~~~~~~~~~~~~
-
-T-Rex installation is managed via Ansible role.
-
-TG Startup Configuration
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-::
-
- $ sudo -E -S sh -c 'cat << EOF > /etc/trex_cfg.yaml
- - version: 2
- c: 8
- limit_memory: 8192
- interfaces: ["${pci1}","${pci2}"]
- port_info:
- - dest_mac: [${dest_mac1}]
- src_mac: [${src_mac1}]
- - dest_mac: [${dest_mac2}]
- src_mac: [${src_mac2}]
- platform :
- master_thread_id: 0
- latency_thread_id: 9
- dual_if:
- - socket: 0
- threads: [1, 2, 3, 4, 5, 6, 7, 8]
- EOF'
-
-TG Startup Command (Stateless Mode)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-::
-
- $ sudo -E -S sh -c "cd '${trex_install_dir}/scripts/' && \
- nohup ./t-rex-64 -i --prefix $(hostname) --hdrh --no-scapy-server \
- --mbuf-factor 32 > /tmp/trex.log 2>&1 &" > /dev/null
-
-Also, Python client is now starting traffic with:
-
-::
-
- core_mask=STLClient.CORE_MASK_PIN
-
-TG Startup Command (Stateful Mode)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-::
-
- $ sudo -E -S sh -c "cd '${trex_install_dir}/scripts/' && \
- nohup ./t-rex-64 -i --prefix $(hostname) --astf --hdrh --no-scapy-server \
- --mbuf-factor 32 > /tmp/trex.log 2>&1 &" > /dev/null
-
-
-TG API Driver
-~~~~~~~~~~~~~
-
-`TRex driver`_
diff --git a/docs/report/introduction/test_scenarios_overview.rst b/docs/report/introduction/test_scenarios_overview.rst
deleted file mode 100644
index 0d520f0296..0000000000
--- a/docs/report/introduction/test_scenarios_overview.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-Test Scenarios
-==============
-
-FD.io |csit-release| report includes multiple test scenarios of VPP
-centric applications, topologies and use cases. In addition it also
-covers baseline tests of DPDK sample applications. Tests are executed in
-physical (performance tests) and virtual environments (functional
-tests).
-
-Brief overview of test scenarios covered in this report:
-
-#. **VPP Performance**: VPP performance tests are executed in physical
- FD.io testbeds, focusing on VPP network data plane performance in
- NIC-to-NIC switching topologies. Tested across Intel Xeon Haswell
- and Skylake servers, ARM, Denverton, range of NICs (10GE, 25GE, 40GE) and
- multi-thread/multi-core configurations. VPP application runs in bare-metal
- host user-mode handling NICs. TRex is used as a traffic generator.
-
-#. **VPP Vhostuser Performance with KVM VMs**: VPP VM service switching
- performance tests using vhostuser virtual interface for
- interconnecting multiple NF-in-VM instances. VPP vswitch
- instance runs in bare-metal user-mode handling NICs and connecting
- over vhost-user interfaces to VM instances each running VPP with virtio
- virtual interfaces. Similarly to VPP Performance, tests are run across a
- range of configurations. TRex is used as a traffic generator.
-
-#. **VPP Memif Performance with LXC and Docker Containers**: VPP
- Container service switching performance tests using memif virtual
- interface for interconnecting multiple VPP-in-container instances.
- VPP vswitch instance runs in bare-metal user-mode handling NICs and
- connecting over memif (Slave side) interfaces to more instances of
- VPP running in LXC or in Docker Containers, both with memif
- interfaces (Master side). Similarly to VPP Performance, tests are
- run across a range of configurations. TRex is used as a traffic
- generator.
-
-#. **DPDK Performance**: VPP uses DPDK to drive the NICs and physical
- interfaces. DPDK performance tests are used as a baseline to
- profile performance of the DPDK sub-system. Two DPDK applications
- are tested: Testpmd and L3fwd. DPDK tests are executed in the same
- testing environment as VPP tests. DPDK Testpmd and L3fwd
- applications run in host user-mode. TRex is used as a traffic
- generator.
-
-#. **VPP Functional**: VPP functional tests are executed in virtual
- FD.io testbeds, focusing on VPP packet processing functionality,
- including both network data plane and in-line control plane. Tests
- cover vNIC-to-vNIC vNIC-to-nestedVM-to-vNIC forwarding topologies.
- Scapy is used as a traffic generator.
-
-All CSIT test data included in this report is auto-
-generated from :abbr:`RF (Robot Framework)` :file:`output.xml` files
-produced by :abbr:`LF (Linux Foundation)` FD.io Jenkins jobs executed
-against |vpp-release| artifacts. References are provided to the
-original FD.io Jenkins job results and all archived source files.
-
-FD.io CSIT system is developed using two main coding platforms: :abbr:`RF (Robot
-Framework)` and Python2.7. |csit-release| source code for the executed test
-suites is available in CSIT branch |release| in the directory
-:file:`./tests/<name_of_the_test_suite>`. A local copy of CSIT source code
-can be obtained by cloning CSIT git repository - :command:`git clone
-https://gerrit.fd.io/r/csit`.
diff --git a/docs/report/introduction/testbed-2n-dnv.svg b/docs/report/introduction/testbed-2n-dnv.svg
deleted file mode 100644
index 9b5e170bd7..0000000000
--- a/docs/report/introduction/testbed-2n-dnv.svg
+++ /dev/null
@@ -1,5513 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:ooo="http://xml.openoffice.org/svg/export"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- version="1.2"
- width="90.84mm"
- height="128.96mm"
- viewBox="501 1325 9084 12896"
- preserveAspectRatio="xMidYMid"
- fill-rule="evenodd"
- stroke-width="28.222"
- stroke-linejoin="round"
- xml:space="preserve"
- id="svg5304"
- sodipodi:docname="testbed-2n-dnv.svg"
- inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
- id="metadata5308"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1920"
- inkscape:window-height="998"
- id="namedview5306"
- showgrid="false"
- inkscape:zoom="1.6310774"
- inkscape:cx="208.45163"
- inkscape:cy="256.99719"
- inkscape:window-x="-9"
- inkscape:window-y="-9"
- inkscape:window-maximized="1"
- inkscape:current-layer="g5270" />
- <defs
- class="ClipPathGroup"
- id="defs2666">
- <clipPath
- id="presentation_clip_path"
- clipPathUnits="userSpaceOnUse">
- <rect
- x="501"
- y="1325"
- width="9084"
- height="12896"
- id="rect2660" />
- </clipPath>
- <clipPath
- id="presentation_clip_path_shrink"
- clipPathUnits="userSpaceOnUse">
- <rect
- x="510"
- y="1337"
- width="9066"
- height="12871"
- id="rect2663" />
- </clipPath>
- </defs>
- <defs
- id="defs2685">
- <font
- id="EmbeddedFont_1"
- horiz-adv-x="2048">
- <font-face
- font-family="Arial embedded"
- units-per-em="2048"
- font-weight="normal"
- font-style="normal"
- ascent="1866"
- descent="432"
- id="font-face2668" />
- <missing-glyph
- horiz-adv-x="2048"
- d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"
- id="missing-glyph2670" />
- <glyph
- unicode="x"
- horiz-adv-x="1020"
- d="M 15,0 L 403,552 44,1062 269,1062 432,813 C 463,766 487,726 506,694 535,738 562,777 587,811 L 766,1062 981,1062 614,562 1009,0 788,0 570,330 512,419 233,0 Z"
- id="glyph2672" />
- <glyph
- unicode="U"
- horiz-adv-x="1175"
- d="M 1120,1466 L 1314,1466 1314,619 C 1314,472 1297,355 1264,268 1231,181 1171,111 1084,57 997,2 882,-25 741,-25 604,-25 491,-1 404,46 317,93 254,162 217,252 180,341 161,464 161,619 L 161,1466 355,1466 355,620 C 355,493 367,399 391,339 414,278 455,232 513,199 570,166 641,150 724,150 867,150 968,182 1029,247 1090,312 1120,436 1120,620 Z"
- id="glyph2674" />
- <glyph
- unicode="P"
- horiz-adv-x="1124"
- d="M 158,0 L 158,1466 711,1466 C 808,1466 883,1461 934,1452 1006,1440 1066,1417 1115,1384 1164,1350 1203,1303 1233,1242 1262,1181 1277,1115 1277,1042 1277,917 1237,812 1158,726 1079,639 935,596 728,596 L 352,596 352,0 Z M 352,769 L 731,769 C 856,769 945,792 998,839 1051,886 1077,951 1077,1036 1077,1097 1062,1150 1031,1194 1000,1237 959,1266 908,1280 875,1289 815,1293 727,1293 L 352,1293 Z"
- id="glyph2676" />
- <glyph
- unicode="I"
- horiz-adv-x="208"
- d="M 191,0 L 191,1466 385,1466 385,0 Z"
- id="glyph2678" />
- <glyph
- unicode="6"
- horiz-adv-x="986"
- d="M 1019,1107 L 840,1093 C 824,1164 801,1215 772,1247 723,1298 663,1324 592,1324 535,1324 484,1308 441,1276 384,1235 340,1174 307,1095 274,1016 257,903 256,756 299,822 352,871 415,903 478,935 543,951 612,951 732,951 834,907 919,819 1003,730 1045,616 1045,476 1045,384 1025,299 986,220 946,141 891,80 822,38 753,-4 674,-25 586,-25 436,-25 314,30 219,141 124,251 77,433 77,686 77,969 129,1175 234,1304 325,1416 448,1472 603,1472 718,1472 813,1440 887,1375 960,1310 1004,1221 1019,1107 Z M 284,475 C 284,413 297,354 324,297 350,240 387,197 434,168 481,138 531,123 583,123 659,123 724,154 779,215 834,276 861,360 861,465 861,566 834,646 780,705 726,763 658,792 576,792 495,792 426,763 369,705 312,646 284,570 284,475 Z"
- id="glyph2680" />
- <glyph
- unicode="1"
- horiz-adv-x="572"
- d="M 763,0 L 583,0 583,1147 C 540,1106 483,1064 413,1023 342,982 279,951 223,930 L 223,1104 C 324,1151 412,1209 487,1276 562,1343 616,1409 647,1472 L 763,1472 Z"
- id="glyph2682" />
- </font>
- </defs>
- <defs
- id="defs2774">
- <font
- id="EmbeddedFont_2"
- horiz-adv-x="2048">
- <font-face
- font-family="Calibri embedded"
- units-per-em="2048"
- font-weight="normal"
- font-style="normal"
- ascent="1953"
- descent="553"
- id="font-face2687" />
- <missing-glyph
- horiz-adv-x="2048"
- d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"
- id="missing-glyph2689" />
- <glyph
- unicode="y"
- horiz-adv-x="883"
- d="M 563,0 L 443,-331 C 439,-342 429,-350 413,-356 396,-361 371,-364 338,-364 321,-364 307,-363 296,-362 285,-360 277,-357 272,-353 266,-349 263,-344 262,-337 261,-330 263,-322 267,-313 L 391,0 C 385,3 379,7 374,13 369,19 365,25 363,32 L 42,892 C 37,906 34,917 34,925 34,933 37,939 42,944 47,949 56,952 68,954 80,955 96,956 116,956 136,956 152,956 163,955 174,954 183,952 190,949 197,946 202,943 205,938 208,933 211,926 214,917 L 471,195 474,195 722,921 C 726,934 731,942 737,946 742,949 751,952 762,954 773,955 790,956 811,956 830,956 845,955 857,954 869,952 878,949 884,944 889,939 892,933 892,925 892,917 890,907 886,895 Z"
- id="glyph2691" />
- <glyph
- unicode="x"
- horiz-adv-x="813"
- d="M 835,44 C 840,35 843,27 843,21 843,14 840,9 834,5 827,1 818,-2 805,-4 792,-5 775,-6 754,-6 734,-6 718,-6 707,-5 695,-4 686,-2 679,1 672,3 666,6 663,10 659,13 656,17 653,22 L 437,379 222,22 C 219,17 216,13 213,10 209,6 204,3 197,1 190,-2 180,-4 169,-5 158,-6 143,-6 124,-6 105,-6 89,-5 77,-4 64,-2 55,1 50,5 44,9 41,14 42,21 42,27 45,35 51,44 L 331,483 66,906 C 61,915 58,923 58,930 57,936 60,941 67,946 73,950 83,953 96,954 109,955 126,956 147,956 166,956 182,956 194,955 205,954 214,952 221,950 228,948 233,945 236,942 239,939 242,935 245,930 L 450,595 658,930 C 661,934 664,938 667,941 670,944 675,947 681,950 686,952 694,954 705,955 715,956 729,956 747,956 766,956 782,955 795,954 807,953 816,950 822,947 828,943 831,938 830,931 829,924 826,916 820,906 L 557,488 Z"
- id="glyph2693" />
- <glyph
- unicode="v"
- horiz-adv-x="883"
- d="M 891,927 C 891,924 891,922 891,919 890,916 890,912 889,909 888,906 888,902 887,898 886,894 884,890 883,885 L 576,30 C 573,23 570,17 566,12 561,7 555,4 546,1 537,-2 526,-4 513,-5 500,-6 483,-6 463,-6 443,-6 426,-5 413,-4 400,-3 389,-1 381,2 372,5 366,8 361,13 356,18 353,23 350,30 L 44,885 C 41,893 39,900 38,906 36,912 35,917 35,920 34,923 34,925 34,927 34,932 35,937 38,941 41,945 45,948 52,951 58,953 66,954 77,955 87,956 100,956 115,956 134,956 150,956 162,955 173,954 182,952 189,949 195,946 200,943 203,939 206,935 208,930 211,924 L 465,182 469,170 472,182 723,924 C 724,930 727,935 730,939 733,943 738,946 745,949 751,952 760,954 771,955 782,956 796,956 814,956 829,956 842,956 852,955 862,954 870,953 876,950 881,947 885,944 888,941 890,937 891,932 891,927 Z"
- id="glyph2695" />
- <glyph
- unicode="u"
- horiz-adv-x="796"
- d="M 924,25 C 924,20 923,15 921,12 918,8 914,5 908,2 902,-1 894,-3 885,-4 875,-5 863,-6 849,-6 834,-6 821,-5 812,-4 802,-3 794,-1 789,2 783,5 779,8 777,12 775,15 774,20 774,25 L 774,144 C 723,87 672,46 622,20 572,-6 521,-19 470,-19 410,-19 360,-9 319,11 278,31 244,58 219,93 194,127 176,167 165,213 154,258 148,314 148,379 L 148,925 C 148,930 149,935 152,939 154,942 158,946 165,949 172,952 180,954 191,955 202,956 215,956 231,956 247,956 260,956 271,955 282,954 290,952 297,949 303,946 307,942 310,939 313,935 314,930 314,925 L 314,401 C 314,348 318,306 326,275 333,243 345,216 361,194 376,171 396,154 420,142 444,129 472,123 504,123 545,123 587,138 628,167 669,196 712,239 758,296 L 758,925 C 758,930 759,935 762,939 764,942 768,946 775,949 782,952 790,954 801,955 811,956 824,956 841,956 857,956 870,956 881,955 892,954 900,952 906,949 912,946 917,942 920,939 923,935 924,930 924,925 Z"
- id="glyph2697" />
- <glyph
- unicode="t"
- horiz-adv-x="606"
- d="M 621,91 C 621,72 620,56 617,45 614,34 610,25 605,20 600,15 592,10 581,5 570,0 558,-4 545,-7 531,-10 516,-12 501,-14 486,-16 470,-17 455,-17 408,-17 368,-11 335,2 302,14 274,33 253,58 232,83 216,114 207,153 197,191 192,236 192,288 L 192,814 66,814 C 56,814 48,819 42,830 36,841 33,858 33,882 33,895 34,905 36,914 37,923 39,930 42,936 45,941 48,945 53,948 57,950 62,951 67,951 L 192,951 192,1165 C 192,1170 193,1174 196,1178 198,1182 202,1186 209,1189 215,1192 223,1194 234,1195 245,1196 258,1197 274,1197 291,1197 304,1196 315,1195 326,1194 334,1192 340,1189 346,1186 350,1182 353,1178 356,1174 357,1170 357,1165 L 357,951 588,951 C 593,951 598,950 602,948 606,945 610,941 613,936 616,930 618,923 619,914 620,905 621,895 621,882 621,858 618,841 612,830 606,819 598,814 588,814 L 357,814 357,312 C 357,250 366,203 385,172 403,140 436,124 483,124 498,124 512,126 524,129 536,132 547,135 556,138 565,141 573,145 580,148 587,151 593,152 598,152 601,152 605,151 608,150 611,148 613,145 615,140 616,135 618,129 619,121 620,113 621,103 621,91 Z"
- id="glyph2699" />
- <glyph
- unicode="s"
- horiz-adv-x="658"
- d="M 718,270 C 718,224 710,183 693,147 676,111 651,81 620,56 589,31 551,13 508,0 465,-13 417,-19 365,-19 333,-19 303,-17 274,-12 245,-7 219,0 196,8 173,15 153,23 137,32 121,40 109,47 102,54 95,61 89,70 86,82 83,94 81,110 81,131 81,144 82,154 83,163 84,172 86,179 88,184 90,189 93,193 97,196 100,198 104,199 109,199 116,199 127,195 142,186 156,177 174,167 195,156 216,145 240,136 269,127 298,118 331,113 368,113 396,113 421,116 444,122 467,128 486,137 503,149 520,160 533,175 542,193 551,211 555,232 555,257 555,282 549,304 536,321 523,338 505,354 484,367 463,380 439,392 412,403 385,413 358,424 330,435 301,446 274,459 247,474 220,488 195,505 174,526 153,547 136,571 123,600 110,629 103,663 103,703 103,738 110,772 124,805 137,837 158,865 185,890 212,914 247,933 288,948 329,963 376,970 431,970 455,970 479,968 503,964 527,960 549,955 568,949 587,943 604,937 618,930 631,923 642,916 649,911 656,906 660,901 663,897 665,893 667,889 668,884 669,879 670,872 671,865 672,858 672,849 672,838 672,827 672,817 671,809 670,800 668,793 666,788 663,783 660,779 657,777 654,774 650,773 646,773 640,773 631,777 620,784 609,791 594,799 576,808 558,816 537,824 513,831 488,838 460,842 429,842 401,842 376,839 355,833 334,826 316,817 303,806 289,794 279,780 272,764 265,748 261,731 261,712 261,686 268,664 281,647 294,629 312,613 333,600 354,587 379,575 406,564 433,553 461,542 490,531 518,520 546,507 574,493 601,479 626,462 647,442 668,422 686,398 699,370 712,342 718,309 718,270 Z"
- id="glyph2701" />
- <glyph
- unicode="r"
- horiz-adv-x="554"
- d="M 679,866 C 679,851 679,839 678,829 677,819 676,811 674,806 672,800 670,796 667,793 664,790 659,788 654,788 649,788 642,790 635,793 627,796 618,799 609,802 599,805 588,807 576,810 564,813 551,814 537,814 520,814 504,811 488,804 472,797 455,786 438,771 420,756 401,735 382,710 363,685 341,654 318,617 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,794 C 327,830 350,859 372,882 393,905 414,923 433,936 452,949 472,958 491,963 510,968 529,970 548,970 557,970 567,970 578,969 589,968 600,966 612,963 624,960 635,957 645,954 654,951 661,947 665,944 669,941 672,938 673,935 674,932 676,928 677,923 678,918 678,912 679,903 679,894 679,881 679,866 Z"
- id="glyph2703" />
- <glyph
- unicode="o"
- horiz-adv-x="917"
- d="M 990,485 C 990,412 980,344 961,283 942,221 913,168 875,123 836,78 788,44 731,19 673,-7 606,-19 530,-19 456,-19 392,-8 337,14 282,36 236,68 199,110 162,152 135,203 117,263 99,323 90,391 90,467 90,540 100,608 119,670 138,731 166,784 205,829 243,874 291,908 348,933 405,958 472,970 549,970 623,970 688,959 743,937 798,915 843,883 880,841 917,799 944,748 963,688 981,628 990,560 990,485 Z M 816,474 C 816,523 812,569 803,612 794,655 779,693 758,726 737,759 709,785 674,804 639,823 595,832 542,832 493,832 452,823 417,806 382,789 353,764 330,733 307,701 291,663 280,620 269,577 263,529 263,478 263,429 268,382 277,339 286,296 301,258 322,226 343,193 371,168 406,149 441,130 485,120 538,120 586,120 628,129 663,146 698,163 727,188 750,219 773,250 789,288 800,331 811,374 816,422 816,474 Z"
- id="glyph2705" />
- <glyph
- unicode="n"
- horiz-adv-x="796"
- d="M 928,25 C 928,20 927,15 924,12 921,8 917,5 911,2 905,-1 897,-3 886,-4 875,-5 862,-6 846,-6 829,-6 816,-5 805,-4 794,-3 786,-1 780,2 774,5 770,8 767,12 764,15 763,20 763,25 L 763,552 C 763,603 759,645 751,676 743,707 731,734 716,757 701,780 681,797 657,809 632,821 604,827 572,827 531,827 489,812 448,783 407,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 403,904 454,931 504,957 555,970 606,970 666,970 717,960 758,940 799,919 832,892 857,858 882,824 901,784 912,739 923,693 928,638 928,574 Z"
- id="glyph2707" />
- <glyph
- unicode="m"
- horiz-adv-x="1366"
- d="M 1488,25 C 1488,20 1487,15 1484,12 1481,8 1477,5 1471,2 1465,-1 1457,-3 1446,-4 1435,-5 1422,-6 1406,-6 1389,-6 1376,-5 1365,-4 1354,-3 1346,-1 1340,2 1333,5 1329,8 1326,12 1323,15 1322,20 1322,25 L 1322,572 C 1322,610 1319,645 1312,676 1305,707 1295,734 1280,757 1265,780 1247,797 1224,809 1201,821 1175,827 1144,827 1106,827 1068,812 1030,783 991,754 949,711 903,654 L 903,25 C 903,20 902,15 899,12 896,8 892,5 886,2 879,-1 871,-3 860,-4 849,-5 836,-6 820,-6 805,-6 792,-5 781,-4 770,-3 761,-1 755,2 748,5 744,8 742,12 739,15 738,20 738,25 L 738,572 C 738,610 734,645 727,676 720,707 709,734 694,757 679,780 661,797 639,809 616,821 590,827 559,827 521,827 483,812 444,783 405,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 402,904 450,931 497,957 545,970 594,970 631,970 665,966 695,957 724,948 750,936 773,921 796,905 815,886 831,865 847,843 860,819 871,792 901,825 930,852 957,875 984,898 1010,916 1035,930 1060,944 1084,954 1108,961 1131,967 1155,970 1179,970 1237,970 1286,960 1325,940 1364,919 1396,892 1421,858 1445,824 1462,784 1473,739 1483,693 1488,645 1488,594 Z"
- id="glyph2709" />
- <glyph
- unicode="l"
- horiz-adv-x="191"
- d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 Z"
- id="glyph2711" />
- <glyph
- unicode="k"
- horiz-adv-x="762"
- d="M 892,26 C 892,21 891,16 888,12 885,8 881,5 875,2 868,-1 859,-3 848,-4 837,-5 822,-6 805,-6 787,-6 772,-6 761,-5 749,-4 739,-2 731,1 723,3 717,6 712,11 707,15 702,20 698,26 L 318,524 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 L 318,547 658,921 C 663,928 669,933 675,938 681,942 688,946 697,949 705,952 715,954 726,955 737,956 751,956 767,956 784,956 798,956 809,955 820,954 830,952 837,950 844,947 849,944 852,941 855,937 856,932 856,926 856,918 854,910 850,902 845,894 838,885 828,874 L 502,548 868,73 C 877,62 883,53 887,46 890,39 892,32 892,26 Z"
- id="glyph2713" />
- <glyph
- unicode="i"
- horiz-adv-x="226"
- d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,934 157,938 159,942 163,945 170,948 176,951 184,953 195,954 206,955 219,956 235,956 252,956 265,955 276,954 287,953 295,951 301,948 307,945 311,942 314,938 317,934 318,930 318,925 Z M 337,1229 C 337,1190 330,1164 315,1150 300,1136 273,1129 234,1129 195,1129 169,1136 155,1150 140,1163 133,1189 133,1227 133,1266 140,1292 155,1306 170,1320 197,1327 236,1327 275,1327 301,1320 316,1307 330,1293 337,1267 337,1229 Z"
- id="glyph2715" />
- <glyph
- unicode="f"
- horiz-adv-x="623"
- d="M 646,1295 C 646,1282 645,1272 644,1265 643,1257 641,1251 640,1246 638,1241 636,1238 633,1237 630,1235 627,1234 623,1234 618,1234 613,1236 606,1239 599,1242 590,1245 580,1249 570,1252 558,1256 545,1259 531,1262 515,1263 497,1263 472,1263 451,1259 434,1251 417,1243 403,1231 392,1214 381,1197 374,1175 369,1148 364,1121 362,1088 362,1049 L 362,951 563,951 C 568,951 573,950 577,948 580,945 584,941 587,936 590,930 592,923 594,914 595,905 596,895 596,882 596,858 593,841 587,830 581,819 573,814 563,814 L 362,814 362,25 C 362,20 361,15 358,12 355,8 351,5 345,2 338,-1 330,-3 319,-4 308,-5 295,-6 279,-6 263,-6 250,-5 239,-4 228,-3 220,-1 214,2 207,5 203,8 200,12 197,15 196,20 196,25 L 196,814 69,814 C 58,814 50,819 45,830 40,841 37,858 37,882 37,895 38,905 39,914 40,923 42,930 45,936 48,941 51,945 55,948 59,950 64,951 69,951 L 196,951 196,1044 C 196,1107 202,1161 214,1206 225,1251 243,1287 267,1316 291,1345 321,1366 358,1380 394,1393 437,1400 486,1400 509,1400 532,1398 554,1394 576,1389 593,1385 605,1380 617,1375 625,1370 629,1366 633,1362 636,1357 639,1351 642,1344 644,1337 645,1328 646,1319 646,1308 646,1295 Z"
- id="glyph2717" />
- <glyph
- unicode="e"
- horiz-adv-x="848"
- d="M 921,514 C 921,488 915,470 902,459 889,448 874,442 857,442 L 267,442 C 267,392 272,347 282,307 292,267 309,233 332,204 355,175 386,153 423,138 460,123 506,115 560,115 603,115 641,119 674,126 707,133 736,140 761,149 785,158 805,166 821,173 836,180 848,183 856,183 861,183 865,182 869,180 872,177 875,174 877,169 879,164 881,158 882,150 883,141 883,131 883,119 883,110 883,103 882,97 881,90 881,85 880,80 879,75 877,70 875,66 872,62 869,58 866,55 862,51 851,45 833,37 815,28 792,20 763,12 734,4 701,-3 664,-10 626,-16 586,-19 543,-19 469,-19 404,-9 349,12 293,33 246,63 208,104 170,145 141,196 122,257 103,318 93,390 93,471 93,548 103,618 123,680 143,741 172,794 210,837 247,880 293,913 346,936 399,959 459,970 525,970 596,970 656,959 706,936 755,913 796,883 828,845 860,806 884,761 899,710 914,658 921,603 921,544 Z M 755,563 C 757,650 738,718 698,767 657,816 597,841 518,841 477,841 442,833 411,818 380,803 355,782 334,757 313,732 297,702 286,669 275,635 268,600 267,563 Z"
- id="glyph2719" />
- <glyph
- unicode="d"
- horiz-adv-x="848"
- d="M 924,25 C 924,20 923,15 921,11 918,7 914,4 909,2 903,-1 895,-3 886,-4 877,-5 865,-6 852,-6 838,-6 826,-5 817,-4 808,-3 800,-1 794,2 788,4 784,7 781,11 778,15 777,20 777,25 L 777,144 C 730,93 681,53 630,24 579,-5 523,-19 462,-19 396,-19 340,-6 293,20 246,45 209,80 180,124 151,167 129,219 116,278 103,337 96,399 96,464 96,541 104,611 121,674 138,736 162,789 195,833 228,877 268,911 317,935 365,958 421,970 484,970 537,970 585,959 629,936 672,913 715,879 758,834 L 758,1357 C 758,1362 759,1366 762,1371 764,1375 768,1378 775,1381 782,1383 790,1385 801,1387 811,1388 824,1389 840,1389 857,1389 870,1388 881,1387 892,1385 900,1383 906,1381 912,1378 917,1375 920,1371 923,1366 924,1362 924,1357 Z M 758,658 C 713,713 670,756 629,785 587,814 543,828 498,828 456,828 420,818 391,798 362,778 338,752 320,719 301,686 288,649 280,608 271,567 267,525 267,482 267,437 271,392 278,349 285,306 297,267 314,234 331,200 354,173 383,153 412,132 448,122 491,122 513,122 534,125 555,131 575,137 596,147 617,161 638,175 661,193 684,216 707,238 732,265 758,298 Z"
- id="glyph2721" />
- <glyph
- unicode="c"
- horiz-adv-x="727"
- d="M 800,162 C 800,151 800,141 799,133 798,124 797,117 796,112 794,106 792,101 790,97 787,92 782,86 774,78 765,69 751,59 731,47 711,34 689,23 664,14 639,4 611,-4 582,-10 553,-16 522,-19 491,-19 426,-19 369,-8 319,13 269,34 227,66 194,107 160,148 134,198 117,258 99,317 90,386 90,464 90,553 101,629 123,693 144,756 174,808 212,849 249,890 294,920 345,940 396,959 451,969 510,969 539,969 567,966 594,961 621,956 645,949 668,940 691,931 711,921 729,910 746,899 759,889 767,881 775,873 781,867 784,862 787,857 789,852 791,846 793,839 794,832 795,824 796,816 796,806 796,794 796,768 793,750 787,740 781,729 774,724 765,724 755,724 744,730 731,741 718,752 701,764 681,777 661,790 637,803 609,814 580,825 547,830 508,830 429,830 368,800 326,739 283,678 262,589 262,473 262,415 268,364 279,321 290,277 306,240 327,211 348,182 375,160 406,146 437,131 472,124 512,124 550,124 583,130 612,142 641,154 666,167 687,182 708,196 725,209 740,221 754,232 765,238 773,238 778,238 782,237 785,234 788,231 791,227 794,221 796,214 798,206 799,197 800,187 800,175 800,162 Z"
- id="glyph2723" />
- <glyph
- unicode="a"
- horiz-adv-x="762"
- d="M 831,24 C 831,16 828,10 823,6 818,2 810,-1 801,-3 792,-5 778,-6 760,-6 743,-6 729,-5 719,-3 708,-1 701,2 696,6 691,10 689,16 689,24 L 689,114 C 650,72 606,39 558,16 509,-7 458,-19 404,-19 357,-19 314,-13 276,-1 237,12 205,30 178,53 151,76 130,105 115,139 100,173 92,212 92,255 92,306 102,350 123,387 144,424 173,455 212,480 251,505 298,523 354,536 410,548 473,554 543,554 L 667,554 667,624 C 667,659 663,689 656,716 649,743 637,765 621,783 604,800 583,814 557,823 531,832 499,836 461,836 420,836 384,831 352,822 319,812 291,801 267,790 242,778 222,767 206,758 189,748 177,743 169,743 164,743 159,744 155,747 151,750 148,754 145,759 142,764 139,771 138,780 137,788 136,797 136,807 136,824 137,837 140,847 142,856 148,865 157,874 166,883 181,893 203,905 225,916 250,927 279,937 308,946 339,954 373,961 407,967 441,970 476,970 541,970 596,963 641,948 686,933 723,912 751,884 779,855 799,820 812,778 825,736 831,687 831,631 Z M 667,435 L 526,435 C 481,435 441,431 408,424 375,416 347,405 325,390 303,375 287,357 277,336 266,315 261,290 261,263 261,216 276,179 306,152 335,124 377,110 430,110 473,110 514,121 551,143 588,165 626,199 667,244 Z"
- id="glyph2725" />
- <glyph
- unicode="X"
- horiz-adv-x="985"
- d="M 996,62 C 1005,47 1010,36 1012,27 1013,18 1011,12 1005,7 999,2 989,-2 976,-4 962,-5 944,-6 921,-6 900,-6 883,-6 871,-5 859,-4 850,-2 843,1 836,4 830,7 827,11 823,14 820,19 817,25 L 529,540 238,25 C 235,19 231,14 227,10 223,6 218,3 211,1 204,-2 194,-4 182,-5 170,-6 154,-6 134,-6 112,-6 95,-5 82,-4 69,-2 61,2 56,7 51,12 49,18 51,27 52,36 57,47 66,62 L 419,657 82,1232 C 74,1247 69,1259 67,1268 64,1277 66,1284 71,1289 76,1294 86,1297 99,1298 112,1299 131,1300 154,1300 174,1300 190,1300 203,1299 216,1298 226,1296 233,1294 240,1291 246,1288 249,1284 252,1279 256,1274 260,1269 L 538,785 814,1269 C 817,1274 821,1279 824,1284 827,1288 832,1291 839,1294 845,1296 854,1298 865,1299 876,1300 892,1300 911,1300 932,1300 949,1299 962,1298 975,1296 984,1293 990,1288 995,1283 997,1277 996,1268 995,1259 990,1247 982,1232 L 646,661 Z"
- id="glyph2727" />
- <glyph
- unicode="U"
- horiz-adv-x="1003"
- d="M 1145,478 C 1145,399 1134,329 1111,268 1088,206 1055,154 1012,111 969,68 917,36 856,14 795,-8 725,-19 647,-19 576,-19 511,-9 452,12 393,33 343,63 301,104 259,144 227,194 204,255 181,316 170,386 170,465 L 170,1268 C 170,1273 171,1278 174,1282 177,1286 181,1289 188,1292 195,1294 203,1296 214,1298 225,1299 239,1300 256,1300 272,1300 286,1299 297,1298 308,1296 317,1294 324,1292 330,1289 334,1286 337,1282 340,1278 341,1273 341,1268 L 341,486 C 341,426 348,374 363,329 378,284 399,247 427,218 454,188 488,166 527,151 566,136 609,128 658,128 708,128 753,135 792,150 831,165 864,187 891,216 918,245 938,282 953,325 967,368 974,419 974,477 L 974,1268 C 974,1273 975,1278 978,1282 981,1286 985,1289 992,1292 999,1294 1008,1296 1019,1298 1030,1299 1043,1300 1060,1300 1076,1300 1090,1299 1101,1298 1112,1296 1120,1294 1127,1292 1133,1289 1138,1286 1141,1282 1144,1278 1145,1273 1145,1268 Z"
- id="glyph2729" />
- <glyph
- unicode="T"
- horiz-adv-x="986"
- d="M 983,1220 C 983,1207 982,1196 981,1187 980,1178 978,1170 975,1165 972,1159 968,1155 964,1152 959,1149 954,1148 949,1148 L 585,1148 585,26 C 585,21 584,16 581,12 578,8 574,5 567,3 560,0 552,-2 541,-4 530,-5 516,-6 499,-6 483,-6 469,-5 458,-4 447,-2 438,0 431,3 424,5 420,8 417,12 414,16 413,21 413,26 L 413,1148 49,1148 C 44,1148 39,1149 35,1152 30,1155 27,1159 24,1165 21,1170 19,1178 18,1187 16,1196 15,1207 15,1220 15,1233 16,1244 18,1254 19,1263 21,1271 24,1277 27,1283 30,1287 35,1290 39,1293 44,1294 49,1294 L 949,1294 C 954,1294 959,1293 964,1290 968,1287 972,1283 975,1277 978,1271 980,1263 981,1254 982,1244 983,1233 983,1220 Z"
- id="glyph2731" />
- <glyph
- unicode="S"
- horiz-adv-x="813"
- d="M 867,363 C 867,302 856,248 834,201 811,154 780,114 741,81 701,48 654,23 601,6 547,-11 489,-19 427,-19 384,-19 344,-15 307,-8 270,-1 237,8 208,19 179,30 154,41 135,52 115,63 101,73 94,81 86,89 80,99 77,112 73,124 71,140 71,161 71,176 72,188 73,198 74,207 76,215 79,221 82,227 85,231 89,234 93,236 98,237 103,237 112,237 126,231 143,220 160,209 181,196 208,183 235,170 267,157 305,146 342,134 386,128 435,128 472,128 507,133 538,143 569,153 595,167 618,186 640,204 657,226 669,253 681,280 687,310 687,344 687,381 679,412 662,438 645,464 623,487 596,507 569,526 538,544 503,561 468,577 432,594 395,611 358,628 323,646 288,667 253,688 222,712 195,740 168,768 146,801 129,839 112,876 103,921 103,974 103,1028 113,1076 133,1119 152,1161 180,1196 215,1225 250,1254 291,1276 340,1291 388,1306 440,1313 496,1313 525,1313 554,1311 583,1306 612,1301 639,1294 665,1286 690,1277 713,1268 733,1258 753,1247 766,1239 773,1233 779,1226 783,1221 785,1218 787,1214 789,1209 790,1204 791,1198 792,1191 793,1183 794,1175 794,1165 794,1152 794,1140 794,1129 793,1120 792,1111 790,1103 788,1097 786,1090 783,1086 780,1083 776,1080 772,1078 767,1078 760,1078 748,1083 733,1092 717,1101 698,1112 675,1124 652,1135 626,1146 595,1156 564,1165 529,1170 490,1170 454,1170 423,1165 396,1156 369,1146 347,1133 330,1117 313,1101 300,1082 291,1060 282,1038 278,1015 278,990 278,954 286,923 303,897 320,871 342,848 370,828 397,808 429,790 464,773 499,756 535,740 572,723 609,706 645,687 680,667 715,646 747,622 775,595 802,567 825,534 842,497 859,459 867,414 867,363 Z"
- id="glyph2733" />
- <glyph
- unicode="R"
- horiz-adv-x="882"
- d="M 1035,26 C 1035,21 1034,16 1032,12 1030,8 1026,5 1019,2 1012,-1 1003,-3 991,-4 979,-5 963,-6 943,-6 926,-6 912,-5 901,-4 890,-3 881,-1 874,3 867,6 862,10 859,15 855,20 852,27 849,35 L 730,340 C 716,375 702,407 687,436 672,465 654,490 633,511 612,532 588,548 560,560 532,571 498,577 459,577 L 344,577 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 511,1294 C 544,1294 571,1293 593,1292 614,1290 634,1288 651,1286 701,1277 745,1264 784,1245 822,1226 854,1203 880,1174 906,1145 926,1113 939,1076 952,1039 958,998 958,953 958,910 952,871 941,837 929,802 912,772 890,746 868,719 842,696 811,677 780,658 746,641 708,628 729,619 749,607 766,593 783,578 800,561 815,541 830,521 844,498 857,472 870,446 884,417 897,384 L 1013,99 C 1022,75 1028,58 1031,49 1034,39 1035,31 1035,26 Z M 776,935 C 776,986 765,1029 742,1064 719,1099 681,1124 628,1139 611,1144 593,1147 572,1149 551,1151 523,1152 489,1152 L 344,1152 344,716 512,716 C 557,716 597,722 630,733 663,744 690,759 712,779 734,798 750,821 761,848 771,875 776,904 776,935 Z"
- id="glyph2735" />
- <glyph
- unicode="P"
- horiz-adv-x="813"
- d="M 967,915 C 967,850 956,792 935,740 914,688 883,644 844,607 804,570 755,542 698,522 640,502 571,492 491,492 L 344,492 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1220 C 172,1247 179,1266 193,1277 207,1288 223,1294 240,1294 L 517,1294 C 545,1294 572,1293 598,1291 623,1288 654,1283 689,1276 724,1268 759,1254 796,1233 832,1212 863,1186 888,1155 913,1124 933,1089 947,1049 960,1008 967,964 967,915 Z M 786,901 C 786,954 776,998 757,1033 737,1068 713,1095 684,1112 655,1129 625,1140 594,1145 563,1150 532,1152 503,1152 L 344,1152 344,633 499,633 C 551,633 594,640 629,653 663,666 692,685 715,709 738,732 756,761 768,794 780,827 786,862 786,901 Z"
- id="glyph2737" />
- <glyph
- unicode="N"
- horiz-adv-x="1003"
- d="M 1150,71 C 1150,58 1148,46 1144,37 1139,28 1134,20 1127,14 1120,8 1112,4 1103,1 1094,-2 1086,-3 1077,-3 L 1022,-3 C 1005,-3 990,-1 977,3 964,6 951,13 940,23 928,32 916,45 905,62 893,79 880,100 866,126 L 458,862 C 437,900 415,940 394,982 372,1023 352,1064 333,1103 L 331,1103 C 332,1055 333,1006 334,956 335,906 335,856 335,807 L 335,26 C 335,21 334,17 331,13 328,8 324,5 318,3 311,0 303,-2 293,-4 282,-5 269,-6 253,-6 237,-6 224,-5 214,-4 203,-2 195,0 189,3 183,5 179,8 176,13 173,17 172,21 172,26 L 172,1220 C 172,1247 179,1266 194,1277 209,1288 225,1294 242,1294 L 324,1294 C 343,1294 360,1292 373,1289 386,1286 397,1280 408,1273 418,1265 428,1254 438,1241 447,1227 458,1210 469,1189 L 783,621 C 802,586 821,553 839,520 857,487 874,454 891,422 908,390 924,359 941,328 957,297 973,265 989,234 L 990,234 C 989,287 988,342 988,399 987,456 987,510 987,563 L 987,1265 C 987,1270 988,1274 991,1278 994,1282 998,1286 1005,1289 1011,1292 1019,1294 1030,1295 1040,1296 1053,1297 1070,1297 1085,1297 1097,1296 1108,1295 1119,1294 1127,1292 1133,1289 1139,1286 1143,1282 1146,1278 1149,1274 1150,1270 1150,1265 Z"
- id="glyph2739" />
- <glyph
- unicode="I"
- horiz-adv-x="191"
- d="M 344,26 C 344,21 343,16 340,12 337,8 333,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 242,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1268 C 172,1273 174,1278 177,1282 180,1286 185,1289 192,1292 199,1294 208,1296 219,1298 230,1299 243,1300 258,1300 275,1300 289,1299 300,1298 311,1296 319,1294 326,1292 333,1289 337,1286 340,1282 343,1278 344,1273 344,1268 Z"
- id="glyph2741" />
- <glyph
- unicode="G"
- horiz-adv-x="1073"
- d="M 1144,1118 C 1144,1105 1143,1094 1142,1085 1141,1075 1139,1067 1136,1061 1133,1054 1130,1050 1126,1047 1122,1044 1118,1043 1113,1043 1105,1043 1092,1049 1073,1062 1054,1075 1029,1089 998,1104 967,1119 929,1133 886,1146 842,1159 790,1165 730,1165 659,1165 595,1152 538,1126 481,1100 433,1064 394,1018 355,972 325,917 304,854 283,791 272,722 272,648 272,565 284,492 307,428 330,364 361,310 402,266 443,222 491,189 548,166 604,143 666,132 733,132 773,132 814,137 855,147 896,156 934,171 969,190 L 969,567 669,567 C 658,567 649,573 644,584 638,595 635,613 635,637 635,650 636,661 637,670 638,679 641,686 644,692 647,697 650,701 654,704 658,707 663,708 669,708 L 1080,708 C 1087,708 1095,707 1102,704 1109,701 1116,697 1122,692 1128,687 1133,679 1136,670 1139,661 1141,650 1141,638 L 1141,145 C 1141,128 1138,113 1132,100 1126,87 1113,76 1094,67 1075,57 1050,46 1019,35 988,24 957,14 924,6 891,-2 858,-8 825,-12 792,-16 759,-18 726,-18 626,-18 537,-3 458,29 379,60 313,104 259,161 204,218 163,287 134,367 105,447 91,536 91,635 91,738 107,831 138,914 169,997 212,1068 269,1127 325,1186 393,1231 472,1264 551,1296 638,1312 734,1312 783,1312 830,1308 873,1299 916,1290 955,1280 989,1269 1022,1257 1051,1244 1074,1231 1097,1217 1112,1206 1121,1197 1130,1188 1136,1178 1139,1167 1142,1156 1144,1139 1144,1118 Z"
- id="glyph2743" />
- <glyph
- unicode="D"
- horiz-adv-x="1020"
- d="M 1167,666 C 1167,554 1153,456 1124,373 1095,289 1054,220 999,165 944,110 876,68 796,41 716,14 621,0 510,0 L 236,0 C 221,0 206,5 193,16 179,26 172,44 172,70 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 529,1294 C 641,1294 736,1280 813,1251 890,1222 955,1180 1008,1126 1060,1071 1100,1005 1127,928 1154,851 1167,763 1167,666 Z M 986,659 C 986,729 977,794 960,855 943,915 916,967 879,1011 842,1055 795,1089 738,1114 681,1139 608,1151 519,1151 L 344,1151 344,144 521,144 C 604,144 673,154 730,175 787,196 834,227 872,270 910,313 939,366 958,431 977,495 986,571 986,659 Z"
- id="glyph2745" />
- <glyph
- unicode="C"
- horiz-adv-x="952"
- d="M 1036,183 C 1036,172 1036,163 1035,155 1034,147 1033,140 1032,134 1030,128 1028,123 1025,118 1022,113 1018,108 1011,101 1004,94 990,84 969,71 948,57 921,44 890,31 858,18 822,7 781,-3 740,-12 695,-16 646,-16 562,-16 486,-2 419,26 351,54 293,95 246,150 198,205 161,272 136,353 110,433 97,525 97,630 97,737 111,833 139,917 166,1001 205,1072 255,1131 305,1189 365,1233 435,1264 504,1295 581,1310 666,1310 703,1310 740,1307 775,1300 810,1293 843,1284 873,1273 903,1262 930,1250 953,1236 976,1222 993,1211 1002,1202 1011,1193 1016,1186 1019,1181 1022,1176 1024,1171 1026,1165 1027,1158 1029,1151 1030,1142 1031,1133 1031,1123 1031,1111 1031,1098 1030,1086 1029,1077 1028,1068 1026,1060 1023,1054 1020,1047 1017,1043 1014,1040 1010,1037 1005,1035 1000,1035 991,1035 978,1042 961,1055 944,1068 923,1082 897,1098 870,1113 838,1128 801,1141 763,1154 718,1160 665,1160 608,1160 556,1149 509,1126 462,1103 421,1069 388,1024 355,979 329,925 311,861 292,796 283,723 283,640 283,558 292,486 310,423 327,360 353,307 386,265 419,222 459,190 507,169 555,147 609,136 670,136 721,136 766,142 805,155 843,168 876,182 903,198 930,213 952,227 969,240 986,253 1000,259 1010,259 1015,259 1019,258 1022,256 1025,254 1028,250 1030,245 1032,239 1034,231 1035,221 1036,211 1036,198 1036,183 Z"
- id="glyph2747" />
- <glyph
- unicode="8"
- horiz-adv-x="900"
- d="M 954,332 C 954,276 944,226 924,183 904,139 875,102 838,72 800,42 753,19 698,4 643,-11 579,-19 508,-19 441,-19 382,-12 329,2 276,16 232,37 195,64 158,91 130,125 111,165 92,205 82,251 82,302 82,343 89,380 102,414 115,448 135,479 160,508 185,537 215,564 252,589 289,614 330,637 376,660 336,681 301,703 270,726 239,749 213,774 192,801 171,828 155,856 144,887 133,918 127,951 127,987 127,1032 135,1075 152,1115 168,1154 193,1189 226,1218 259,1247 301,1271 352,1288 403,1305 462,1313 530,1313 595,1313 652,1305 700,1290 747,1274 787,1253 818,1226 849,1199 871,1167 886,1130 901,1093 908,1054 908,1012 908,978 903,945 892,914 881,883 864,853 843,825 822,797 796,771 765,747 734,722 698,699 658,678 705,655 748,631 785,606 822,581 853,555 878,527 903,498 922,468 935,437 948,405 954,370 954,332 Z M 738,996 C 738,1024 733,1049 724,1072 714,1095 700,1114 681,1130 662,1146 639,1158 612,1167 584,1175 552,1179 517,1179 445,1179 391,1163 354,1130 317,1097 298,1053 298,996 298,970 303,946 312,924 321,901 335,880 354,860 373,840 397,821 426,802 455,783 489,763 529,742 596,777 648,815 684,857 720,899 738,945 738,996 Z M 780,314 C 780,345 774,373 763,398 752,423 735,446 712,468 689,489 660,510 626,531 591,551 551,572 506,594 464,573 427,553 396,532 364,511 338,490 318,468 297,446 282,423 272,399 261,374 256,347 256,318 256,253 278,203 323,168 367,133 433,115 521,115 606,115 671,133 715,169 758,204 780,253 780,314 Z"
- id="glyph2749" />
- <glyph
- unicode="6"
- horiz-adv-x="865"
- d="M 957,419 C 957,362 948,308 931,255 914,202 887,155 851,115 815,74 769,42 714,18 659,-7 593,-19 518,-19 464,-19 416,-12 375,1 334,14 298,33 267,58 236,83 211,113 191,149 170,185 154,226 142,272 129,318 120,368 115,423 110,478 107,536 107,599 107,654 110,710 116,767 122,824 133,878 148,931 163,984 184,1033 211,1080 237,1126 270,1166 310,1201 349,1235 397,1262 452,1282 507,1302 572,1312 645,1312 670,1312 695,1311 720,1308 745,1305 769,1301 790,1296 811,1291 829,1285 844,1279 859,1273 868,1268 873,1265 878,1261 881,1257 884,1253 886,1248 888,1244 889,1239 890,1234 891,1228 892,1222 893,1215 893,1207 893,1198 893,1186 893,1176 893,1167 892,1158 891,1151 889,1146 886,1141 883,1137 880,1134 876,1131 871,1130 865,1130 858,1130 848,1132 835,1137 822,1142 807,1147 789,1153 771,1158 749,1163 724,1168 698,1173 668,1175 634,1175 572,1175 519,1162 474,1137 429,1112 393,1078 365,1035 336,992 315,943 302,887 288,830 280,771 278,710 295,720 315,730 337,740 358,750 382,759 408,767 433,775 460,782 489,787 518,792 548,794 581,794 651,794 710,785 758,766 806,747 845,720 875,687 904,653 925,613 938,568 951,522 957,472 957,419 Z M 783,403 C 783,442 779,477 772,509 764,540 751,567 733,589 715,611 691,628 661,640 631,652 594,658 550,658 525,658 501,656 476,652 451,647 428,641 405,634 382,626 360,617 339,607 318,596 298,585 281,573 281,487 287,415 298,357 309,299 325,253 346,218 367,183 393,158 424,143 455,128 492,120 534,120 577,120 614,128 645,144 676,160 702,182 723,209 744,236 759,266 769,300 778,333 783,368 783,403 Z"
- id="glyph2751" />
- <glyph
- unicode="5"
- horiz-adv-x="848"
- d="M 918,416 C 918,347 906,285 883,231 860,177 827,132 784,95 741,58 691,29 632,10 573,-9 507,-19 435,-19 395,-19 357,-16 321,-11 285,-5 253,2 225,11 197,19 174,27 156,35 138,43 127,49 122,54 117,59 113,63 111,67 109,71 107,76 106,82 104,87 103,94 102,103 101,112 101,122 101,134 101,145 102,156 103,165 104,174 105,181 108,187 111,192 114,196 118,199 121,202 125,203 130,203 137,203 147,199 161,191 175,182 194,173 218,164 241,154 271,145 306,136 341,127 382,123 430,123 475,123 516,128 553,139 590,150 623,166 650,189 677,212 698,240 713,275 728,309 736,351 736,400 736,441 730,478 717,510 704,541 684,568 657,589 630,610 595,625 554,636 513,646 463,651 406,651 365,651 330,649 301,645 272,641 244,639 219,639 200,639 187,643 179,652 171,661 167,677 167,702 L 167,1229 C 167,1251 172,1267 183,1278 193,1289 208,1294 227,1294 L 800,1294 C 805,1294 811,1293 816,1290 821,1287 825,1282 828,1276 831,1270 834,1262 836,1253 837,1244 838,1233 838,1220 838,1196 835,1177 828,1164 821,1151 812,1144 800,1144 L 317,1144 317,781 C 340,784 364,786 389,787 413,788 441,788 473,788 547,788 612,779 667,762 722,744 769,719 806,687 843,654 871,615 890,569 909,523 918,472 918,416 Z"
- id="glyph2753" />
- <glyph
- unicode="4"
- horiz-adv-x="951"
- d="M 979,368 C 979,346 976,329 969,316 962,303 953,297 941,297 L 795,297 795,25 C 795,20 794,15 791,12 788,8 784,5 777,2 770,-1 762,-3 751,-4 740,-5 727,-6 710,-6 694,-6 681,-5 670,-4 659,-3 651,-1 645,2 638,5 634,8 632,12 629,15 628,20 628,25 L 628,297 94,297 C 86,297 79,298 74,300 69,302 64,306 60,311 55,316 52,324 51,334 49,344 48,357 48,373 48,386 48,397 49,407 50,417 51,426 53,435 55,443 58,451 61,459 64,466 68,474 73,483 L 539,1269 C 542,1274 547,1279 554,1283 560,1287 568,1290 578,1293 588,1296 600,1298 615,1299 630,1300 647,1300 667,1300 689,1300 708,1299 725,1298 741,1296 754,1294 764,1291 774,1288 782,1285 787,1281 792,1276 795,1271 795,1265 L 795,439 941,439 C 952,439 962,433 969,422 976,410 979,392 979,368 Z M 628,1149 L 626,1149 205,439 628,439 Z"
- id="glyph2755" />
- <glyph
- unicode="3"
- horiz-adv-x="831"
- d="M 914,370 C 914,311 904,257 883,210 862,162 833,121 794,87 755,53 708,27 651,9 594,-10 530,-19 459,-19 416,-19 375,-16 338,-9 300,-2 266,7 237,17 208,26 183,36 164,47 145,57 133,64 128,69 123,74 119,78 116,83 113,88 111,93 109,100 107,107 106,115 105,125 104,134 103,146 103,160 103,184 105,201 110,210 115,219 121,224 130,224 136,224 148,219 166,208 183,197 206,186 234,174 261,161 294,150 331,139 368,128 409,123 454,123 498,123 537,129 570,140 603,151 631,167 654,188 677,209 694,233 705,262 716,290 722,321 722,354 722,391 715,424 701,453 686,482 665,508 638,529 610,550 576,567 536,578 495,589 449,595 398,595 L 275,595 C 270,595 265,596 260,599 255,601 250,605 247,610 243,615 240,622 238,631 235,640 234,651 234,665 234,678 235,688 237,697 239,705 242,712 246,717 249,722 253,725 258,728 263,730 268,731 274,731 L 387,731 C 431,731 471,737 506,748 541,759 570,776 595,797 619,818 638,844 651,874 664,903 670,936 670,973 670,1000 666,1025 657,1050 648,1074 635,1095 618,1113 601,1131 579,1145 552,1156 525,1166 493,1171 458,1171 419,1171 384,1165 352,1154 319,1142 290,1129 265,1116 240,1103 219,1090 202,1079 185,1067 174,1061 167,1061 162,1061 158,1062 155,1064 151,1065 148,1069 146,1074 143,1079 142,1086 141,1095 140,1104 139,1115 139,1130 139,1140 139,1149 140,1157 141,1164 142,1171 144,1177 146,1182 148,1187 151,1192 154,1197 158,1202 165,1209 171,1215 184,1224 203,1236 222,1248 246,1260 275,1272 303,1283 336,1293 373,1301 410,1309 449,1313 492,1313 552,1313 605,1305 650,1290 695,1275 733,1253 764,1225 794,1197 817,1164 832,1125 847,1086 854,1042 854,995 854,954 849,917 838,882 827,847 812,816 791,789 770,762 745,739 715,720 685,701 650,687 611,680 L 611,678 C 656,673 697,662 734,645 771,627 802,605 829,578 856,551 877,520 892,485 907,449 914,411 914,370 Z"
- id="glyph2757" />
- <glyph
- unicode="2"
- horiz-adv-x="830"
- d="M 924,74 C 924,62 923,51 922,42 920,33 918,25 915,19 912,12 908,8 903,5 898,2 892,0 886,0 L 171,0 C 162,0 154,1 147,4 140,6 134,10 129,15 124,20 120,28 118,38 115,48 114,60 114,75 114,88 115,100 116,110 117,120 119,129 122,137 125,144 130,152 135,160 140,167 146,175 154,184 L 405,450 C 463,511 510,566 545,615 580,664 607,708 626,748 645,788 657,824 663,857 669,890 672,920 672,949 672,978 667,1005 658,1031 649,1056 635,1079 618,1098 600,1117 578,1133 551,1144 524,1155 494,1161 459,1161 418,1161 382,1155 350,1144 317,1133 289,1120 265,1107 240,1094 220,1081 204,1070 187,1059 175,1053 167,1053 162,1053 158,1054 155,1057 151,1060 148,1064 146,1070 143,1076 141,1084 140,1094 139,1104 138,1116 138,1130 138,1140 138,1149 139,1156 140,1163 141,1170 143,1175 144,1180 146,1185 149,1190 152,1195 157,1201 165,1208 173,1215 187,1224 207,1236 226,1248 251,1260 281,1272 310,1283 343,1293 379,1301 414,1309 452,1313 491,1313 554,1313 609,1304 656,1287 703,1269 742,1245 773,1214 804,1183 827,1148 842,1107 857,1066 865,1023 865,977 865,936 861,895 854,854 847,813 831,768 808,721 784,673 750,620 705,562 660,503 601,436 527,360 L 322,146 885,146 C 890,146 896,145 901,142 906,139 910,134 914,128 917,122 920,115 922,106 923,97 924,86 924,74 Z"
- id="glyph2759" />
- <glyph
- unicode="1"
- horiz-adv-x="761"
- d="M 927,68 C 927,55 926,45 924,36 922,27 919,20 916,15 913,10 909,6 905,4 900,1 896,0 891,0 L 215,0 C 210,0 206,1 202,4 198,6 194,10 191,15 187,20 184,27 182,36 180,45 179,55 179,68 179,80 180,90 182,99 184,108 187,115 190,121 193,126 196,131 201,134 205,137 210,138 215,138 L 485,138 485,1122 235,973 C 222,966 212,962 205,961 197,960 191,961 186,966 181,970 178,977 177,987 175,997 174,1010 174,1025 174,1036 175,1046 176,1054 177,1062 178,1069 180,1074 182,1079 185,1084 189,1088 192,1092 197,1096 203,1100 L 501,1291 C 504,1293 507,1295 511,1296 515,1297 520,1299 526,1300 532,1301 539,1302 547,1303 555,1303 565,1303 577,1303 593,1303 606,1302 617,1301 628,1300 636,1298 642,1296 648,1293 652,1290 654,1287 656,1283 657,1279 657,1275 L 657,138 891,138 C 896,138 901,137 906,134 911,131 915,126 918,121 921,115 923,108 925,99 926,90 927,80 927,68 Z"
- id="glyph2761" />
- <glyph
- unicode="0"
- horiz-adv-x="900"
- d="M 967,650 C 967,551 959,460 944,378 928,296 902,226 866,167 829,108 782,62 723,30 664,-3 592,-19 506,-19 425,-19 356,-5 301,25 245,54 200,96 166,153 132,209 108,278 94,361 79,443 72,537 72,644 72,743 80,833 96,916 112,998 138,1069 174,1128 210,1187 257,1232 316,1265 375,1297 447,1313 532,1313 614,1313 683,1299 739,1270 794,1241 839,1198 873,1142 907,1085 931,1016 946,934 960,851 967,757 967,650 Z M 791,638 C 791,703 789,761 784,812 779,863 773,909 764,948 755,987 743,1021 729,1050 714,1078 697,1101 677,1120 657,1138 634,1151 609,1160 583,1168 554,1172 522,1172 465,1172 419,1159 384,1132 349,1105 321,1069 301,1022 280,975 266,921 259,858 252,795 248,728 248,656 248,559 253,477 263,410 273,342 289,287 311,244 332,201 360,170 394,151 427,132 468,122 516,122 553,122 586,128 615,140 643,152 667,169 688,192 708,214 725,241 738,272 751,303 762,338 770,376 778,414 784,455 787,500 790,544 791,590 791,638 Z"
- id="glyph2763" />
- <glyph
- unicode="-"
- horiz-adv-x="519"
- d="M 558,505 C 558,479 555,461 549,451 543,441 534,436 523,436 L 105,436 C 93,436 84,441 78,452 72,462 69,480 69,505 69,530 72,548 78,558 84,568 93,573 105,573 L 523,573 C 528,573 533,572 538,570 542,568 546,564 549,559 552,553 554,546 556,537 557,528 558,518 558,505 Z"
- id="glyph2765" />
- <glyph
- unicode=")"
- horiz-adv-x="381"
- d="M 487,537 C 487,462 482,387 473,314 464,240 450,167 431,95 412,23 390,-48 363,-118 336,-187 304,-256 268,-324 266,-327 263,-330 259,-333 255,-336 250,-338 244,-340 237,-342 230,-343 221,-344 212,-345 202,-345 190,-345 173,-345 159,-344 150,-343 140,-341 133,-338 129,-335 124,-331 122,-326 123,-321 123,-315 125,-308 128,-300 189,-165 236,-28 267,114 298,255 314,397 314,540 314,683 298,825 267,966 236,1107 189,1244 126,1378 123,1384 122,1390 123,1395 124,1400 127,1405 132,1408 137,1411 145,1414 154,1416 163,1418 176,1419 191,1419 205,1419 217,1419 226,1418 235,1417 243,1415 249,1413 254,1411 258,1409 261,1407 264,1405 266,1403 267,1400 336,1263 390,1123 429,979 468,834 487,687 487,537 Z"
- id="glyph2767" />
- <glyph
- unicode="("
- horiz-adv-x="381"
- d="M 495,1378 C 432,1244 385,1107 354,966 323,825 307,683 307,540 307,397 323,255 355,114 386,-27 432,-165 493,-300 496,-308 498,-315 499,-321 499,-326 497,-331 492,-335 487,-338 480,-341 471,-343 461,-344 448,-345 431,-345 419,-345 409,-345 400,-344 391,-343 384,-342 378,-340 371,-338 366,-336 362,-333 358,-330 355,-327 353,-324 317,-256 285,-187 258,-118 231,-48 208,23 189,95 170,167 156,240 147,314 138,387 133,462 133,537 133,612 138,687 149,760 159,833 174,906 193,979 212,1051 235,1122 262,1192 289,1262 320,1331 354,1400 355,1403 357,1405 360,1407 363,1409 367,1411 372,1413 377,1415 385,1417 394,1418 403,1419 415,1419 430,1419 445,1419 458,1418 467,1416 476,1414 484,1411 489,1408 494,1405 497,1400 498,1395 499,1390 498,1384 495,1378 Z"
- id="glyph2769" />
- <glyph
- unicode=" "
- horiz-adv-x="467"
- id="glyph2771" />
- </font>
- </defs>
- <defs
- class="TextShapeIndex"
- id="defs2778">
- <g
- ooo:slide="id1"
- ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150 id151 id152 id153 id154 id155 id156 id157 id158 id159 id160 id161 id162 id163 id164 id165 id166 id167 id168 id169 id170 id171 id172 id173 id174 id175 id176 id177 id178 id179 id180 id181 id182 id183 id184 id185 id186 id187 id188 id189 id190 id191 id192 id193 id194 id195 id196 id197 id198 id199 id200 id201 id202 id203 id204 id205 id206 id207 id208 id209 id210 id211 id212 id213 id214 id215 id216 id217 id218 id219 id220 id221 id222 id223 id224 id225 id226 id227 id228 id229 id230 id231 id232 id233"
- id="g2776" />
- </defs>
- <defs
- class="EmbeddedBulletChars"
- id="defs2810">
- <g
- id="bullet-char-template-57356"
- transform="scale(0.00048828125,-0.00048828125)">
- <path
- d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"
- id="path2780" />
- </g>
- <g
- id="bullet-char-template-57354"
- transform="scale(0.00048828125,-0.00048828125)">
- <path
- d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"
- id="path2783" />
- </g>
- <g
- id="bullet-char-template-10146"
- transform="scale(0.00048828125,-0.00048828125)">
- <path
- d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"
- id="path2786" />
- </g>
- <g
- id="bullet-char-template-10132"
- transform="scale(0.00048828125,-0.00048828125)">
- <path
- d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"
- id="path2789" />
- </g>
- <g
- id="bullet-char-template-10007"
- transform="scale(0.00048828125,-0.00048828125)">
- <path
- d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"
- id="path2792" />
- </g>
- <g
- id="bullet-char-template-10004"
- transform="scale(0.00048828125,-0.00048828125)">
- <path
- d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"
- id="path2795" />
- </g>
- <g
- id="bullet-char-template-9679"
- transform="scale(0.00048828125,-0.00048828125)">
- <path
- d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"
- id="path2798" />
- </g>
- <g
- id="bullet-char-template-8226"
- transform="scale(0.00048828125,-0.00048828125)">
- <path
- d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"
- id="path2801" />
- </g>
- <g
- id="bullet-char-template-8211"
- transform="scale(0.00048828125,-0.00048828125)">
- <path
- d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"
- id="path2804" />
- </g>
- <g
- id="bullet-char-template-61548"
- transform="scale(0.00048828125,-0.00048828125)">
- <path
- d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"
- id="path2807" />
- </g>
- </defs>
- <defs
- class="TextEmbeddedBitmaps"
- id="defs2812" />
- <g
- class="SlideGroup"
- id="g5302">
- <g
- id="g5300">
- <g
- id="container-id1">
- <g
- id="id1"
- class="Slide"
- clip-path="url(#presentation_clip_path)">
- <g
- class="Page"
- id="g5296">
- <g
- class="Group"
- id="g2828"
- transform="matrix(1.1820071,0,0,1,-548.56944,0)">
- <g
- class="com.sun.star.drawing.LineShape"
- id="g2819">
- <g
- id="id3">
- <rect
- class="BoundingBox"
- x="3014"
- y="7286"
- width="108"
- height="1971"
- id="rect2814"
- style="fill:none;stroke:none" />
- <path
- d="m 3067,7287 1,1968"
- id="path2816"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#ee833b;stroke-width:106;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.LineShape"
- id="g2826">
- <g
- id="id4">
- <rect
- class="BoundingBox"
- x="3619"
- y="7284"
- width="108"
- height="1972"
- id="rect2821"
- style="fill:none;stroke:none" />
- <path
- d="m 3672,7285 1,1969"
- id="path2823"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#ee833b;stroke-width:106;stroke-linejoin:miter" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g2844"
- transform="matrix(1.1820072,0,0,1,-1214.0785,0)">
- <g
- class="com.sun.star.drawing.LineShape"
- id="g2835">
- <g
- id="id5">
- <rect
- class="BoundingBox"
- x="6314"
- y="7286"
- width="108"
- height="1971"
- id="rect2830"
- style="fill:none;stroke:none" />
- <path
- d="m 6367,7287 1,1968"
- id="path2832"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#63a0d7;stroke-width:106;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.LineShape"
- id="g2842">
- <g
- id="id6">
- <rect
- class="BoundingBox"
- x="6919"
- y="7284"
- width="108"
- height="1971"
- id="rect2837"
- style="fill:none;stroke:none" />
- <path
- d="m 6972,7285 1,1968"
- id="path2839"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#63a0d7;stroke-width:106;stroke-linejoin:miter" />
- </g>
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g2851">
- <g
- id="id7">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="500"
- y="1629"
- width="9086"
- height="12584"
- id="rect2846" />
- <path
- fill="none"
- stroke="rgb(0,0,0)"
- stroke-width="9"
- stroke-linejoin="miter"
- d="M 5043,14207 L 505,14207 505,1634 9580,1634 9580,14207 5043,14207 Z"
- id="path2848" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g2860">
- <g
- id="id8">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="1372"
- y="10285"
- width="7241"
- height="3215"
- id="rect2853" />
- <path
- fill="rgb(255,255,255)"
- stroke="none"
- d="M 4992,10303 L 8594,10303 8594,13481 1390,13481 1390,10303 4992,10303 Z"
- id="path2855" />
- <path
- fill="none"
- stroke="rgb(0,0,0)"
- stroke-width="35"
- stroke-linejoin="miter"
- d="M 4992,10303 L 8594,10303 8594,13481 1390,13481 1390,10303 4992,10303 Z"
- id="path2857" />
- </g>
- </g>
-
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g2990">
- <g
- id="id18">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="5281"
- y="11251"
- width="2837"
- height="1203"
- id="rect2963" />
- <path
- fill="rgb(68,114,196)"
- stroke="none"
- d="M 6699,12435 L 5299,12435 5299,11269 8099,11269 8099,12435 6699,12435 Z"
- id="path2965" />
- <path
- fill="none"
- stroke="rgb(50,84,144)"
- stroke-width="35"
- stroke-linejoin="miter"
- d="M 6699,12435 L 5299,12435 5299,11269 8099,11269 8099,12435 6699,12435 Z"
- id="path2967" />
- <text
- class="TextShape"
- id="text2987"><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="318px"
- font-weight="400"
- id="tspan2973"><tspan
- class="TextPosition"
- x="6160"
- y="11573"
- id="tspan2971"><tspan
- fill="rgb(255,255,255)"
- stroke="none"
- id="tspan2969">Socket 1</tspan></tspan></tspan><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="318px"
- font-weight="400"
- id="tspan2979"><tspan
- class="TextPosition"
- x="6050"
- y="11926"
- id="tspan2977"><tspan
- fill="rgb(255,255,255)"
- stroke="none"
- id="tspan2975">Intel Xeon</tspan></tspan></tspan><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="318px"
- font-weight="400"
- id="tspan2985"><tspan
- class="TextPosition"
- x="5768"
- y="12279"
- id="tspan2983"><tspan
- fill="rgb(255,255,255)"
- stroke="none"
- id="tspan2981">Platinum 8180</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="Group"
- id="g3091"
- transform="translate(453,10)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3007">
- <g
- id="id19">
- <rect
- class="BoundingBox"
- x="6238"
- y="10072"
- width="906"
- height="453"
- id="rect2992"
- style="fill:none;stroke:none" />
- <path
- d="m 6691,10515 h -444 v -434 h 887 v 434 z"
- id="path2994"
- inkscape:connector-curvature="0"
- style="fill:#ededed;stroke:none" />
- <path
- d="m 6691,10515 h -444 v -434 h 887 v 434 z"
- id="path2996"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#a5a5a5;stroke-width:18;stroke-linejoin:miter" />
- <text
- class="TextShape"
- id="text3004"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan3002"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="6416"
- y="10444"
- id="tspan3000"><tspan
- id="tspan2998"
- style="fill:#000000;stroke:none">NIC4</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3018">
- <g
- id="id20">
- <rect
- class="BoundingBox"
- x="6992"
- y="9256"
- width="42"
- height="783"
- id="rect3009"
- style="fill:none;stroke:none" />
- <path
- d="m 7015,10020 -5,-746"
- id="path3011"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 7015,10020 Z"
- id="path3013"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 7010,9274 Z"
- id="path3015"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3027">
- <g
- id="id21">
- <rect
- class="BoundingBox"
- x="6918"
- y="10012"
- width="168"
- height="118"
- id="rect3020"
- style="fill:none;stroke:none" />
- <path
- d="m 7002,10021 h 74 v 99 h -149 v -99 z"
- id="path3022"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 7002,10021 h 74 v 99 h -149 v -99 z"
- id="path3024"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3036">
- <g
- id="id22">
- <rect
- class="BoundingBox"
- x="6274"
- y="10014"
- width="168"
- height="118"
- id="rect3029"
- style="fill:none;stroke:none" />
- <path
- d="m 6358,10023 h 74 v 99 h -149 v -99 z"
- id="path3031"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 6358,10023 h 74 v 99 h -149 v -99 z"
- id="path3033"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3047">
- <g
- id="id23">
- <rect
- class="BoundingBox"
- x="6339"
- y="9256"
- width="39"
- height="785"
- id="rect3038"
- style="fill:none;stroke:none" />
- <path
- d="m 6357,10022 2,-748"
- id="path3040"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6357,10022 Z"
- id="path3042"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6359,9274 Z"
- id="path3044"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3058">
- <g
- id="id24">
- <rect
- class="BoundingBox"
- x="6763"
- y="9254"
- width="39"
- height="783"
- id="rect3049"
- style="fill:none;stroke:none" />
- <path
- d="m 6781,10018 2,-746"
- id="path3051"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6781,10018 Z"
- id="path3053"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6783,9272 Z"
- id="path3055"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3067">
- <g
- id="id25">
- <rect
- class="BoundingBox"
- x="6697"
- y="10010"
- width="168"
- height="118"
- id="rect3060"
- style="fill:none;stroke:none" />
- <path
- d="m 6781,10019 h 74 v 99 h -149 v -99 z"
- id="path3062"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 6781,10019 h 74 v 99 h -149 v -99 z"
- id="path3064"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="Group"
- id="g3089">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3076">
- <g
- id="id26">
- <rect
- class="BoundingBox"
- x="6486"
- y="10012"
- width="168"
- height="118"
- id="rect3069"
- style="fill:none;stroke:none" />
- <path
- d="m 6570,10021 h 74 v 99 h -149 v -99 z"
- id="path3071"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 6570,10021 h 74 v 99 h -149 v -99 z"
- id="path3073"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3087">
- <g
- id="id27">
- <rect
- class="BoundingBox"
- x="6559"
- y="9254"
- width="43"
- height="785"
- id="rect3078"
- style="fill:none;stroke:none" />
- <path
- d="m 6583,10020 -6,-748"
- id="path3080"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6583,10020 Z"
- id="path3082"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6577,9272 Z"
- id="path3084"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3192"
- transform="translate(443)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3108">
- <g
- id="id28">
- <rect
- class="BoundingBox"
- x="5289"
- y="10074"
- width="906"
- height="453"
- id="rect3093"
- style="fill:none;stroke:none" />
- <path
- d="m 5742,10517 h -444 v -434 h 887 v 434 z"
- id="path3095"
- inkscape:connector-curvature="0"
- style="fill:#ededed;stroke:none" />
- <path
- d="m 5742,10517 h -444 v -434 h 887 v 434 z"
- id="path3097"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#a5a5a5;stroke-width:18;stroke-linejoin:miter" />
- <text
- class="TextShape"
- id="text3105"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan3103"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="5467"
- y="10446"
- id="tspan3101"><tspan
- id="tspan3099"
- style="fill:#000000;stroke:none">NIC3</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3119">
- <g
- id="id29">
- <rect
- class="BoundingBox"
- x="6043"
- y="9258"
- width="42"
- height="783"
- id="rect3110"
- style="fill:none;stroke:none" />
- <path
- d="m 6066,10022 -5,-746"
- id="path3112"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6066,10022 Z"
- id="path3114"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6061,9276 Z"
- id="path3116"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3128">
- <g
- id="id30">
- <rect
- class="BoundingBox"
- x="5969"
- y="10014"
- width="168"
- height="118"
- id="rect3121"
- style="fill:none;stroke:none" />
- <path
- d="m 6053,10023 h 74 v 99 h -149 v -99 z"
- id="path3123"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 6053,10023 h 74 v 99 h -149 v -99 z"
- id="path3125"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3137">
- <g
- id="id31">
- <rect
- class="BoundingBox"
- x="5325"
- y="10016"
- width="168"
- height="118"
- id="rect3130"
- style="fill:none;stroke:none" />
- <path
- d="m 5409,10025 h 74 v 99 h -149 v -99 z"
- id="path3132"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 5409,10025 h 74 v 99 h -149 v -99 z"
- id="path3134"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3148">
- <g
- id="id32">
- <rect
- class="BoundingBox"
- x="5390"
- y="9306"
- width="39"
- height="737"
- id="rect3139"
- style="fill:none;stroke:none" />
- <path
- d="m 5408,10024 2,-700"
- id="path3141"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5408,10024 Z"
- id="path3143"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5410,9324 Z"
- id="path3145"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3159">
- <g
- id="id33">
- <rect
- class="BoundingBox"
- x="5814"
- y="9256"
- width="39"
- height="783"
- id="rect3150"
- style="fill:none;stroke:none" />
- <path
- d="m 5832,10020 2,-746"
- id="path3152"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5832,10020 Z"
- id="path3154"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5834,9274 Z"
- id="path3156"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3168">
- <g
- id="id34">
- <rect
- class="BoundingBox"
- x="5748"
- y="10012"
- width="168"
- height="118"
- id="rect3161"
- style="fill:none;stroke:none" />
- <path
- d="m 5832,10021 h 74 v 99 h -149 v -99 z"
- id="path3163"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 5832,10021 h 74 v 99 h -149 v -99 z"
- id="path3165"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="Group"
- id="g3190">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3177">
- <g
- id="id35">
- <rect
- class="BoundingBox"
- x="5537"
- y="10014"
- width="168"
- height="118"
- id="rect3170"
- style="fill:none;stroke:none" />
- <path
- d="m 5621,10023 h 74 v 99 h -149 v -99 z"
- id="path3172"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 5621,10023 h 74 v 99 h -149 v -99 z"
- id="path3174"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3188">
- <g
- id="id36">
- <rect
- class="BoundingBox"
- x="5610"
- y="9256"
- width="43"
- height="785"
- id="rect3179"
- style="fill:none;stroke:none" />
- <path
- d="m 5634,10022 -6,-748"
- id="path3181"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5634,10022 Z"
- id="path3183"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5628,9274 Z"
- id="path3185"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- </g>
- </g>
-
- <g
- class="Group"
- id="g3240"
- transform="translate(494,2)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3223">
- <g
- id="id39">
- <rect
- class="BoundingBox"
- x="6372"
- y="10523"
- width="556"
- height="734"
- id="rect3218"
- style="fill:none;stroke:none" />
- <path
- d="m 6650,10523 277,161 h -138 v 410 h 138 l -277,162 -278,-162 h 139 v -410 h -139 z m 277,0 z m -555,733 z"
- id="path3220"
- inkscape:connector-curvature="0"
- style="fill:#8497b0;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3238">
- <g
- id="id40">
- <rect
- class="BoundingBox"
- x="6410"
- y="10720"
- width="476"
- height="344"
- id="rect3225"
- style="fill:none;stroke:none" />
- <path
- d="m 6648,11063 h -238 v -343 h 475 v 343 z"
- id="path3227"
- inkscape:connector-curvature="0"
- style="fill:#5f6468;stroke:none" />
- <text
- class="TextShape"
- id="text3235"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan3233"
- style="font-weight:400;font-size:282px;font-family:Arial, sans-serif"><tspan
- class="TextPosition"
- x="6419"
- y="11005"
- id="tspan3231"><tspan
- id="tspan3229"
- style="fill:#ffffff;stroke:none">x16</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3264"
- transform="translate(488,-15)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3247">
- <g
- id="id41">
- <rect
- class="BoundingBox"
- x="5418"
- y="10532"
- width="558"
- height="734"
- id="rect3242"
- style="fill:none;stroke:none" />
- <path
- d="m 5697,10532 277,161 h -138 v 410 h 138 l -277,162 -278,-162 h 139 v -410 h -139 z m 277,0 z m -555,733 z"
- id="path3244"
- inkscape:connector-curvature="0"
- style="fill:#8497b0;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3262">
- <g
- id="id42">
- <rect
- class="BoundingBox"
- x="5458"
- y="10729"
- width="476"
- height="344"
- id="rect3249"
- style="fill:none;stroke:none" />
- <path
- d="m 5696,11072 h -238 v -343 h 475 v 343 z"
- id="path3251"
- inkscape:connector-curvature="0"
- style="fill:#5f6468;stroke:none" />
- <text
- class="TextShape"
- id="text3259"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan3257"
- style="font-weight:400;font-size:282px;font-family:Arial, sans-serif"><tspan
- class="TextPosition"
- x="5467"
- y="11014"
- id="tspan3255"><tspan
- id="tspan3253"
- style="fill:#ffffff;stroke:none">x16</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3293">
- <g
- id="id43">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="1962"
- y="11266"
- width="2837"
- height="1203"
- id="rect3266" />
- <path
- fill="rgb(68,114,196)"
- stroke="none"
- d="M 3380,12450 L 1980,12450 1980,11284 4780,11284 4780,12450 3380,12450 Z"
- id="path3268" />
- <path
- fill="none"
- stroke="rgb(50,84,144)"
- stroke-width="35"
- stroke-linejoin="miter"
- d="M 3380,12450 L 1980,12450 1980,11284 4780,11284 4780,12450 3380,12450 Z"
- id="path3270" />
- <text
- class="TextShape"
- id="text3290"><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="318px"
- font-weight="400"
- id="tspan3276"><tspan
- class="TextPosition"
- x="2841"
- y="11588"
- id="tspan3274"><tspan
- fill="rgb(255,255,255)"
- stroke="none"
- id="tspan3272">Socket 0</tspan></tspan></tspan><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="318px"
- font-weight="400"
- id="tspan3282"><tspan
- class="TextPosition"
- x="2731"
- y="11941"
- id="tspan3280"><tspan
- fill="rgb(255,255,255)"
- stroke="none"
- id="tspan3278">Intel Xeon</tspan></tspan></tspan><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="318px"
- font-weight="400"
- id="tspan3288"><tspan
- class="TextPosition"
- x="2449"
- y="12294"
- id="tspan3286"><tspan
- fill="rgb(255,255,255)"
- stroke="none"
- id="tspan3284">Platinum 8180</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
-
- <g
- class="Group"
- id="g3495"
- transform="translate(476,-4)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3411">
- <g
- id="id53">
- <rect
- class="BoundingBox"
- x="2924"
- y="10077"
- width="906"
- height="453"
- id="rect3396"
- style="fill:none;stroke:none" />
- <path
- d="m 3377,10520 h -444 v -434 h 887 v 434 z"
- id="path3398"
- inkscape:connector-curvature="0"
- style="fill:#ededed;stroke:none" />
- <path
- d="m 3377,10520 h -444 v -434 h 887 v 434 z"
- id="path3400"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#a5a5a5;stroke-width:18;stroke-linejoin:miter" />
- <text
- class="TextShape"
- id="text3408"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan3406"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="3102"
- y="10449"
- id="tspan3404"><tspan
- id="tspan3402"
- style="fill:#000000;stroke:none">NIC2</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3422">
- <g
- id="id54">
- <rect
- class="BoundingBox"
- x="3677"
- y="9261"
- width="42"
- height="783"
- id="rect3413"
- style="fill:none;stroke:none" />
- <path
- d="m 3700,10025 -5,-746"
- id="path3415"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3700,10025 Z"
- id="path3417"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3695,9279 Z"
- id="path3419"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3431">
- <g
- id="id55">
- <rect
- class="BoundingBox"
- x="3603"
- y="10017"
- width="168"
- height="118"
- id="rect3424"
- style="fill:none;stroke:none" />
- <path
- d="m 3687,10026 h 74 v 99 h -149 v -99 z"
- id="path3426"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 3687,10026 h 74 v 99 h -149 v -99 z"
- id="path3428"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3440">
- <g
- id="id56">
- <rect
- class="BoundingBox"
- x="2959"
- y="10019"
- width="168"
- height="118"
- id="rect3433"
- style="fill:none;stroke:none" />
- <path
- d="m 3043,10028 h 74 v 99 h -149 v -99 z"
- id="path3435"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 3043,10028 h 74 v 99 h -149 v -99 z"
- id="path3437"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3451">
- <g
- id="id57">
- <rect
- class="BoundingBox"
- x="3024"
- y="9261"
- width="39"
- height="785"
- id="rect3442"
- style="fill:none;stroke:none" />
- <path
- d="m 3042,10027 2,-748"
- id="path3444"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3042,10027 Z"
- id="path3446"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3044,9279 Z"
- id="path3448"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3462">
- <g
- id="id58">
- <rect
- class="BoundingBox"
- x="3448"
- y="9259"
- width="39"
- height="783"
- id="rect3453"
- style="fill:none;stroke:none" />
- <path
- d="m 3466,10023 2,-746"
- id="path3455"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3466,10023 Z"
- id="path3457"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3468,9277 Z"
- id="path3459"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3471">
- <g
- id="id59">
- <rect
- class="BoundingBox"
- x="3383"
- y="10015"
- width="168"
- height="118"
- id="rect3464"
- style="fill:none;stroke:none" />
- <path
- d="m 3467,10024 h 74 v 99 h -149 v -99 z"
- id="path3466"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 3467,10024 h 74 v 99 h -149 v -99 z"
- id="path3468"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="Group"
- id="g3493">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3480">
- <g
- id="id60">
- <rect
- class="BoundingBox"
- x="3172"
- y="10017"
- width="168"
- height="118"
- id="rect3473"
- style="fill:none;stroke:none" />
- <path
- d="m 3256,10026 h 74 v 99 h -149 v -99 z"
- id="path3475"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 3256,10026 h 74 v 99 h -149 v -99 z"
- id="path3477"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3491">
- <g
- id="id61">
- <rect
- class="BoundingBox"
- x="3245"
- y="9259"
- width="43"
- height="785"
- id="rect3482"
- style="fill:none;stroke:none" />
- <path
- d="m 3269,10025 -6,-748"
- id="path3484"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3269,10025 Z"
- id="path3486"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3263,9277 Z"
- id="path3488"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3596"
- transform="translate(476,-4)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3512">
- <g
- id="id62">
- <rect
- class="BoundingBox"
- x="1975"
- y="10079"
- width="906"
- height="453"
- id="rect3497"
- style="fill:none;stroke:none" />
- <path
- d="m 2428,10522 h -444 v -434 h 887 v 434 z"
- id="path3499"
- inkscape:connector-curvature="0"
- style="fill:#ededed;stroke:none" />
- <path
- d="m 2428,10522 h -444 v -434 h 887 v 434 z"
- id="path3501"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#a5a5a5;stroke-width:18;stroke-linejoin:miter" />
- <text
- class="TextShape"
- id="text3509"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan3507"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="2153"
- y="10451"
- id="tspan3505"><tspan
- id="tspan3503"
- style="fill:#000000;stroke:none">NIC1</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3523">
- <g
- id="id63">
- <rect
- class="BoundingBox"
- x="2728"
- y="9263"
- width="42"
- height="783"
- id="rect3514"
- style="fill:none;stroke:none" />
- <path
- d="m 2751,10027 -5,-746"
- id="path3516"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2751,10027 Z"
- id="path3518"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2746,9281 Z"
- id="path3520"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3532">
- <g
- id="id64">
- <rect
- class="BoundingBox"
- x="2654"
- y="10019"
- width="168"
- height="118"
- id="rect3525"
- style="fill:none;stroke:none" />
- <path
- d="m 2738,10028 h 74 v 99 h -149 v -99 z"
- id="path3527"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 2738,10028 h 74 v 99 h -149 v -99 z"
- id="path3529"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3541">
- <g
- id="id65">
- <rect
- class="BoundingBox"
- x="2011"
- y="10021"
- width="168"
- height="118"
- id="rect3534"
- style="fill:none;stroke:none" />
- <path
- d="m 2095,10030 h 74 v 99 h -149 v -99 z"
- id="path3536"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 2095,10030 h 74 v 99 h -149 v -99 z"
- id="path3538"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3552">
- <g
- id="id66">
- <rect
- class="BoundingBox"
- x="2076"
- y="9311"
- width="39"
- height="737"
- id="rect3543"
- style="fill:none;stroke:none" />
- <path
- d="m 2094,10029 2,-700"
- id="path3545"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2094,10029 Z"
- id="path3547"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2096,9329 Z"
- id="path3549"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3563">
- <g
- id="id67">
- <rect
- class="BoundingBox"
- x="2499"
- y="9261"
- width="39"
- height="783"
- id="rect3554"
- style="fill:none;stroke:none" />
- <path
- d="m 2517,10025 2,-746"
- id="path3556"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2517,10025 Z"
- id="path3558"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2519,9279 Z"
- id="path3560"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3572">
- <g
- id="id68">
- <rect
- class="BoundingBox"
- x="2434"
- y="10017"
- width="168"
- height="118"
- id="rect3565"
- style="fill:none;stroke:none" />
- <path
- d="m 2518,10026 h 74 v 99 h -149 v -99 z"
- id="path3567"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 2518,10026 h 74 v 99 h -149 v -99 z"
- id="path3569"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="Group"
- id="g3594">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3581">
- <g
- id="id69">
- <rect
- class="BoundingBox"
- x="2223"
- y="10019"
- width="168"
- height="118"
- id="rect3574"
- style="fill:none;stroke:none" />
- <path
- d="m 2307,10028 h 74 v 99 h -149 v -99 z"
- id="path3576"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 2307,10028 h 74 v 99 h -149 v -99 z"
- id="path3578"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3592">
- <g
- id="id70">
- <rect
- class="BoundingBox"
- x="2296"
- y="9261"
- width="43"
- height="785"
- id="rect3583"
- style="fill:none;stroke:none" />
- <path
- d="m 2320,10027 -6,-748"
- id="path3585"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2320,10027 Z"
- id="path3587"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2314,9279 Z"
- id="path3589"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- </g>
- </g>
-
- <g
- class="Group"
- id="g3644"
- transform="translate(476,-4)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3627">
- <g
- id="id73">
- <rect
- class="BoundingBox"
- x="3057"
- y="10529"
- width="556"
- height="734"
- id="rect3622"
- style="fill:none;stroke:none" />
- <path
- d="m 3335,10529 277,161 h -138 v 410 h 138 l -277,162 -278,-162 h 139 v -410 h -139 z m 277,0 z m -555,733 z"
- id="path3624"
- inkscape:connector-curvature="0"
- style="fill:#8497b0;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3642">
- <g
- id="id74">
- <rect
- class="BoundingBox"
- x="3096"
- y="10726"
- width="476"
- height="344"
- id="rect3629"
- style="fill:none;stroke:none" />
- <path
- d="m 3334,11069 h -238 v -343 h 475 v 343 z"
- id="path3631"
- inkscape:connector-curvature="0"
- style="fill:#5f6468;stroke:none" />
- <text
- class="TextShape"
- id="text3639"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan3637"
- style="font-weight:400;font-size:282px;font-family:Arial, sans-serif"><tspan
- class="TextPosition"
- x="3105"
- y="11011"
- id="tspan3635"><tspan
- id="tspan3633"
- style="fill:#ffffff;stroke:none">x16</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3668"
- transform="translate(476,-4)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3651">
- <g
- id="id75">
- <rect
- class="BoundingBox"
- x="2105"
- y="10537"
- width="556"
- height="734"
- id="rect3646"
- style="fill:none;stroke:none" />
- <path
- d="m 2383,10537 277,161 h -138 v 410 h 138 l -277,162 -278,-162 h 139 v -410 h -139 z m 277,0 z m -555,733 z"
- id="path3648"
- inkscape:connector-curvature="0"
- style="fill:#8497b0;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3666">
- <g
- id="id76">
- <rect
- class="BoundingBox"
- x="2143"
- y="10735"
- width="476"
- height="344"
- id="rect3653"
- style="fill:none;stroke:none" />
- <path
- d="m 2381,11078 h -238 v -343 h 475 v 343 z"
- id="path3655"
- inkscape:connector-curvature="0"
- style="fill:#5f6468;stroke:none" />
- <text
- class="TextShape"
- id="text3663"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan3661"
- style="font-weight:400;font-size:282px;font-family:Arial, sans-serif"><tspan
- class="TextPosition"
- x="2152"
- y="11020"
- id="tspan3659"><tspan
- id="tspan3657"
- style="fill:#ffffff;stroke:none">x16</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3679"
- transform="matrix(0.63492759,0,0,1,2405.1668,22)">
- <g
- id="id77">
- <rect
- class="BoundingBox"
- x="5367"
- y="9162"
- width="2666"
- height="234"
- id="rect3670"
- style="fill:none;stroke:none" />
- <path
- d="m 5420,9342 v 0 -7 -6 l 1,-7 v -6 l 1,-6 1,-7 v -6 l 2,-6 1,-6 1,-6 1,-5 2,-6 2,-5 1,-5 2,-4 2,-5 2,-4 2,-4 2,-4 3,-3 2,-3 2,-3 3,-3 2,-2 3,-2 2,-1 3,-1 3,-1 2,-1 h 3 l 2456,-2 v 0 h 3 l 2,1 3,1 3,1 2,1 3,2 2,2 3,3 2,3 2,3 3,3 2,4 2,4 2,4 2,5 2,5 1,5 2,5 2,5 1,6 1,6 1,6 2,6 v 6 l 1,6 1,7 v 6 l 1,7 v 6 7"
- id="path3672"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- <path
- d="M 5420,9342 Z"
- id="path3674"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- <path
- d="M 7979,9215 Z"
- id="path3676"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3690"
- transform="matrix(0.64726291,0,0,1,1198.4055,-4)">
- <g
- id="id78">
- <rect
- class="BoundingBox"
- x="2048"
- y="9171"
- width="2666"
- height="234"
- id="rect3681"
- style="fill:none;stroke:none" />
- <path
- d="m 2101,9351 v 0 -7 -6 l 1,-7 v -6 l 1,-6 1,-7 v -6 l 2,-6 1,-6 1,-6 1,-5 2,-6 2,-5 1,-5 2,-4 2,-5 2,-4 2,-4 2,-4 3,-3 2,-3 2,-3 3,-3 2,-2 3,-2 2,-1 3,-1 3,-1 2,-1 h 3 l 2456,-2 v 0 h 3 l 2,1 3,1 3,1 2,1 3,2 2,2 3,3 2,3 2,3 3,3 2,4 2,4 2,4 2,5 2,5 1,5 2,5 2,5 1,6 1,6 1,6 2,6 v 6 l 1,6 1,7 v 6 l 1,7 v 6 7"
- id="path3683"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- <path
- d="M 2101,9351 Z"
- id="path3685"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- <path
- d="M 4660,9224 Z"
- id="path3687"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3709">
- <g
- id="id79">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="1440"
- y="12462"
- width="1219"
- height="930"
- id="rect3692" />
- <text
- class="TextShape"
- id="text3706"><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="388px"
- font-weight="400"
- id="tspan3698"><tspan
- class="TextPosition"
- x="1440"
- y="12850"
- id="tspan3696"><tspan
- fill="rgb(0,0,0)"
- stroke="none"
- id="tspan3694">x86</tspan></tspan></tspan><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="388px"
- font-weight="400"
- id="tspan3704"><tspan
- class="TextPosition"
- x="1440"
- y="13315"
- id="tspan3702"><tspan
- fill="rgb(0,0,0)"
- stroke="none"
- id="tspan3700">Server</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3735">
- <g
- id="id80">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="2145"
- y="1325"
- width="5598"
- height="670"
- id="rect3711" />
- <g
- id="g3722"
- transform="matrix(1.0928981,0,0,1,-394.35621,-49.0671)">
- <defs
- id="defs3718">
- <linearGradient
- id="gradient1"
- x1="4943"
- y1="1334"
- x2="4943"
- y2="1985"
- gradientUnits="userSpaceOnUse">
- <stop
- offset="0"
- style="stop-color:rgb(209,209,209)"
- id="stop3713" />
- <stop
- offset="1"
- style="stop-color:rgb(199,199,199)"
- id="stop3715" />
- </linearGradient>
- </defs>
- <path
- style="fill:url(#gradient1)"
- d="M 4944,1985 H 2154 v -651 h 5579 v 651 z"
- id="path3720"
- inkscape:connector-curvature="0" />
- </g>
- <path
- d="M 5008.932,1935.9329 H 1959.7463 v -650.1942 h 6097.2785 v 650.1942 z"
- id="path3724"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#a5a5a5;stroke-width:18.80586815;stroke-linejoin:miter" />
- <text
- class="TextShape"
- id="text3732"
- x="-259.54214"
- y="-16.221384"><tspan
- class="TextParagraph"
- font-size="423px"
- font-weight="400"
- id="tspan3730"
- style="font-weight:400;font-size:423px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="2144.4578"
- y="1758.7786"
- id="tspan3728"><tspan
- id="tspan3726"
- style="fill:#000000;stroke:none">2-Node Atom Denverton (2n-dnv)</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3748">
- <g
- id="id81">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="3061"
- y="13463"
- width="4221"
- height="759"
- id="rect3737" />
- <text
- class="TextShape"
- id="text3745"><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="423px"
- font-weight="400"
- id="tspan3743"><tspan
- class="TextPosition"
- x="3313"
- y="14011"
- id="tspan3741"><tspan
- fill="rgb(32,56,100)"
- stroke="none"
- id="tspan3739">Traffic Generator (TG)</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3761"
- transform="translate(-243.32076,32.442768)">
- <g
- id="id82">
- <rect
- class="BoundingBox"
- x="4726"
- y="12610"
- width="1147"
- height="590"
- id="rect3750"
- style="fill:none;stroke:none" />
- <text
- class="TextShape"
- id="text3758"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan3756"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="4976"
- y="13017"
- id="tspan3754"><tspan
- id="tspan3752"
- style="fill:#42838b;stroke:none">DDR4</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="Group"
- id="g3832"
- transform="translate(-243.32076,32.442768)">
- <g
- class="Group"
- id="g3784">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3768">
- <g
- id="id83">
- <rect
- class="BoundingBox"
- x="4066"
- y="12660"
- width="294"
- height="140"
- id="rect3763"
- style="fill:none;stroke:none" />
- <path
- d="m 4359,12730 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3765"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3775">
- <g
- id="id84">
- <rect
- class="BoundingBox"
- x="4066"
- y="12860"
- width="294"
- height="140"
- id="rect3770"
- style="fill:none;stroke:none" />
- <path
- d="m 4359,12930 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3772"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3782">
- <g
- id="id85">
- <rect
- class="BoundingBox"
- x="4066"
- y="13059"
- width="294"
- height="141"
- id="rect3777"
- style="fill:none;stroke:none" />
- <path
- d="m 4359,13129 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3779"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3807">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3791">
- <g
- id="id86">
- <rect
- class="BoundingBox"
- x="3717"
- y="12660"
- width="294"
- height="140"
- id="rect3786"
- style="fill:none;stroke:none" />
- <path
- d="m 4010,12730 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3788"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3798">
- <g
- id="id87">
- <rect
- class="BoundingBox"
- x="3717"
- y="12860"
- width="294"
- height="140"
- id="rect3793"
- style="fill:none;stroke:none" />
- <path
- d="m 4010,12930 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3795"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3805">
- <g
- id="id88">
- <rect
- class="BoundingBox"
- x="3717"
- y="13059"
- width="294"
- height="141"
- id="rect3800"
- style="fill:none;stroke:none" />
- <path
- d="m 4010,13129 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3802"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3830">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3814">
- <g
- id="id89">
- <rect
- class="BoundingBox"
- x="4396"
- y="12663"
- width="294"
- height="140"
- id="rect3809"
- style="fill:none;stroke:none" />
- <path
- d="m 4689,12733 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3811"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3821">
- <g
- id="id90">
- <rect
- class="BoundingBox"
- x="4396"
- y="12863"
- width="294"
- height="140"
- id="rect3816"
- style="fill:none;stroke:none" />
- <path
- d="m 4689,12933 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3818"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3828">
- <g
- id="id91">
- <rect
- class="BoundingBox"
- x="4396"
- y="13062"
- width="294"
- height="141"
- id="rect3823"
- style="fill:none;stroke:none" />
- <path
- d="m 4689,13132 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3825"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3903"
- transform="translate(-243.32076,32.442768)">
- <g
- class="Group"
- id="g3855">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3839">
- <g
- id="id92">
- <rect
- class="BoundingBox"
- x="6430"
- y="12687"
- width="294"
- height="141"
- id="rect3834"
- style="fill:none;stroke:none" />
- <path
- d="m 6723,12757 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3836"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3846">
- <g
- id="id93">
- <rect
- class="BoundingBox"
- x="6430"
- y="12887"
- width="294"
- height="141"
- id="rect3841"
- style="fill:none;stroke:none" />
- <path
- d="m 6723,12957 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3843"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3853">
- <g
- id="id94">
- <rect
- class="BoundingBox"
- x="6430"
- y="13087"
- width="294"
- height="141"
- id="rect3848"
- style="fill:none;stroke:none" />
- <path
- d="m 6723,13157 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3850"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3878">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3862">
- <g
- id="id95">
- <rect
- class="BoundingBox"
- x="6081"
- y="12687"
- width="294"
- height="141"
- id="rect3857"
- style="fill:none;stroke:none" />
- <path
- d="m 6374,12757 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3859"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3869">
- <g
- id="id96">
- <rect
- class="BoundingBox"
- x="6081"
- y="12887"
- width="294"
- height="141"
- id="rect3864"
- style="fill:none;stroke:none" />
- <path
- d="m 6374,12957 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3866"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3876">
- <g
- id="id97">
- <rect
- class="BoundingBox"
- x="6081"
- y="13087"
- width="294"
- height="141"
- id="rect3871"
- style="fill:none;stroke:none" />
- <path
- d="m 6374,13157 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3873"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3901">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3885">
- <g
- id="id98">
- <rect
- class="BoundingBox"
- x="6760"
- y="12690"
- width="294"
- height="141"
- id="rect3880"
- style="fill:none;stroke:none" />
- <path
- d="m 7053,12760 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3882"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3892">
- <g
- id="id99">
- <rect
- class="BoundingBox"
- x="6760"
- y="12890"
- width="294"
- height="141"
- id="rect3887"
- style="fill:none;stroke:none" />
- <path
- d="m 7053,12960 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3889"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3899">
- <g
- id="id100">
- <rect
- class="BoundingBox"
- x="6760"
- y="13090"
- width="294"
- height="141"
- id="rect3894"
- style="fill:none;stroke:none" />
- <path
- d="m 7053,13160 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3896"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3974"
- transform="translate(-243.32076,32.442768)">
- <g
- class="Group"
- id="g3926">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3910">
- <g
- id="id101">
- <rect
- class="BoundingBox"
- x="7488"
- y="12686"
- width="294"
- height="141"
- id="rect3905"
- style="fill:none;stroke:none" />
- <path
- d="m 7781,12756 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3907"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3917">
- <g
- id="id102">
- <rect
- class="BoundingBox"
- x="7488"
- y="12885"
- width="294"
- height="140"
- id="rect3912"
- style="fill:none;stroke:none" />
- <path
- d="m 7781,12955 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3914"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3924">
- <g
- id="id103">
- <rect
- class="BoundingBox"
- x="7488"
- y="13085"
- width="294"
- height="140"
- id="rect3919"
- style="fill:none;stroke:none" />
- <path
- d="m 7781,13155 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3921"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3949">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3933">
- <g
- id="id104">
- <rect
- class="BoundingBox"
- x="7139"
- y="12686"
- width="294"
- height="141"
- id="rect3928"
- style="fill:none;stroke:none" />
- <path
- d="m 7432,12756 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3930"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3940">
- <g
- id="id105">
- <rect
- class="BoundingBox"
- x="7139"
- y="12885"
- width="294"
- height="140"
- id="rect3935"
- style="fill:none;stroke:none" />
- <path
- d="m 7432,12955 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3937"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3947">
- <g
- id="id106">
- <rect
- class="BoundingBox"
- x="7139"
- y="13085"
- width="294"
- height="140"
- id="rect3942"
- style="fill:none;stroke:none" />
- <path
- d="m 7432,13155 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3944"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g3972">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3956">
- <g
- id="id107">
- <rect
- class="BoundingBox"
- x="7819"
- y="12688"
- width="294"
- height="140"
- id="rect3951"
- style="fill:none;stroke:none" />
- <path
- d="m 8112,12758 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3953"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3963">
- <g
- id="id108">
- <rect
- class="BoundingBox"
- x="7819"
- y="12888"
- width="294"
- height="140"
- id="rect3958"
- style="fill:none;stroke:none" />
- <path
- d="m 8112,12958 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3960"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3970">
- <g
- id="id109">
- <rect
- class="BoundingBox"
- x="7819"
- y="13088"
- width="294"
- height="141"
- id="rect3965"
- style="fill:none;stroke:none" />
- <path
- d="m 8112,13158 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3967"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g4045"
- transform="translate(-243.32076,32.442768)">
- <g
- class="Group"
- id="g3997">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3981">
- <g
- id="id110">
- <rect
- class="BoundingBox"
- x="3046"
- y="12660"
- width="294"
- height="140"
- id="rect3976"
- style="fill:none;stroke:none" />
- <path
- d="m 3339,12730 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3978"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3988">
- <g
- id="id111">
- <rect
- class="BoundingBox"
- x="3046"
- y="12860"
- width="294"
- height="140"
- id="rect3983"
- style="fill:none;stroke:none" />
- <path
- d="m 3339,12930 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3985"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g3995">
- <g
- id="id112">
- <rect
- class="BoundingBox"
- x="3046"
- y="13060"
- width="294"
- height="140"
- id="rect3990"
- style="fill:none;stroke:none" />
- <path
- d="m 3339,13130 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path3992"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g4020">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4004">
- <g
- id="id113">
- <rect
- class="BoundingBox"
- x="2697"
- y="12660"
- width="294"
- height="140"
- id="rect3999"
- style="fill:none;stroke:none" />
- <path
- d="m 2990,12730 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4001"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4011">
- <g
- id="id114">
- <rect
- class="BoundingBox"
- x="2697"
- y="12860"
- width="294"
- height="140"
- id="rect4006"
- style="fill:none;stroke:none" />
- <path
- d="m 2990,12930 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4008"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4018">
- <g
- id="id115">
- <rect
- class="BoundingBox"
- x="2697"
- y="13060"
- width="294"
- height="140"
- id="rect4013"
- style="fill:none;stroke:none" />
- <path
- d="m 2990,13130 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4015"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g4043">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4027">
- <g
- id="id116">
- <rect
- class="BoundingBox"
- x="3377"
- y="12663"
- width="294"
- height="140"
- id="rect4022"
- style="fill:none;stroke:none" />
- <path
- d="m 3670,12733 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4024"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4034">
- <g
- id="id117">
- <rect
- class="BoundingBox"
- x="3377"
- y="12863"
- width="294"
- height="140"
- id="rect4029"
- style="fill:none;stroke:none" />
- <path
- d="m 3670,12933 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4031"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4041">
- <g
- id="id118">
- <rect
- class="BoundingBox"
- x="3377"
- y="13063"
- width="294"
- height="140"
- id="rect4036"
- style="fill:none;stroke:none" />
- <path
- d="m 3670,13133 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4038"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="com.sun.star.drawing.TextShape"
- id="g4064">
- <g
- id="id119">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="1216"
- y="10369"
- width="1625"
- height="1285"
- id="rect4047" />
- <text
- class="TextShape"
- id="text4061"><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="282px"
- font-weight="400"
- id="tspan4053"><tspan
- class="TextPosition"
- x="1466"
- y="10765"
- id="tspan4051"><tspan
- fill="rgb(0,0,0)"
- stroke="none"
- id="tspan4049">PCIe</tspan></tspan></tspan><tspan
- class="TextParagraph"
- font-family="Calibri, sans-serif"
- font-size="282px"
- font-weight="400"
- id="tspan4059"><tspan
- class="TextPosition"
- x="1466"
- y="11112"
- id="tspan4057"><tspan
- fill="rgb(0,0,0)"
- stroke="none"
- id="tspan4055">Gen3</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="Group"
- id="g5270">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4087"
- transform="matrix(1.0268825,0,0,0.96468128,47.880077,199.29345)">
- <g
- id="id120">
- <rect
- class="BoundingBox"
- x="1236"
- y="2887"
- width="7241"
- height="3215"
- id="rect4066"
- style="fill:none;stroke:none" />
- <path
- d="M 4856,6083 H 1254 V 2905 h 7204 v 3178 z"
- id="path4068"
- inkscape:connector-curvature="0"
- style="fill:#ffffff;stroke:none" />
- <path
- d="M 4856,6083 H 1254 V 2905 h 7204 v 3178 z"
- id="path4070"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <text
- class="TextShape"
- id="text4084"><tspan
- class="TextParagraph"
- font-size="388px"
- font-weight="400"
- id="tspan4076"
- style="font-weight:400;font-size:388px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="1354"
- y="3293"
- id="tspan4074"><tspan
- id="tspan4072"
- style="fill:#000000;stroke:none">x86</tspan></tspan></tspan><tspan
- class="TextParagraph"
- font-size="388px"
- font-weight="400"
- id="tspan4082"
- style="font-weight:400;font-size:388px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="1354"
- y="3758"
- id="tspan4080"><tspan
- id="tspan4078"
- style="fill:#000000;stroke:none">Server</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="Group"
- id="g4188"
- transform="translate(439,39)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4104">
- <g
- id="id121">
- <rect
- class="BoundingBox"
- x="1946"
- y="5987"
- width="906"
- height="453"
- id="rect4089"
- style="fill:none;stroke:none" />
- <path
- d="m 2399,6430 h -444 v -434 h 887 v 434 z"
- id="path4091"
- inkscape:connector-curvature="0"
- style="fill:#ededed;stroke:none" />
- <path
- d="m 2399,6430 h -444 v -434 h 887 v 434 z"
- id="path4093"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#a5a5a5;stroke-width:18;stroke-linejoin:miter" />
- <text
- class="TextShape"
- id="text4101"
- x="7.6293945e-006"
- y="0"
- style="text-align:start;text-anchor:start;"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan4099"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif;text-align:start;text-anchor:start;"><tspan
- class="TextPosition"
- x="2124"
- y="6294"
- id="tspan4097"
- style="text-align:start;text-anchor:start;"><tspan
- id="tspan4095"
- style="text-align:start;text-anchor:start;fill:#000000;stroke:none;">P1</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4115">
- <g
- id="id122">
- <rect
- class="BoundingBox"
- x="2059"
- y="6473"
- width="42"
- height="737"
- id="rect4106"
- style="fill:none;stroke:none" />
- <path
- d="m 2077,6491 5,700"
- id="path4108"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2077,6491 Z"
- id="path4110"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2082,7191 Z"
- id="path4112"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4124">
- <g
- id="id123">
- <rect
- class="BoundingBox"
- x="1980"
- y="6382"
- width="168"
- height="118"
- id="rect4117"
- style="fill:none;stroke:none" />
- <path
- d="m 2064,6490 h -75 v -99 h 149 v 99 z"
- id="path4119"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 2064,6490 h -75 v -99 h 149 v 99 z"
- id="path4121"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4133">
- <g
- id="id124">
- <rect
- class="BoundingBox"
- x="2624"
- y="6380"
- width="168"
- height="118"
- id="rect4126"
- style="fill:none;stroke:none" />
- <path
- d="m 2708,6488 h -75 v -99 h 149 v 99 z"
- id="path4128"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 2708,6488 h -75 v -99 h 149 v 99 z"
- id="path4130"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4144">
- <g
- id="id125">
- <rect
- class="BoundingBox"
- x="2688"
- y="6471"
- width="39"
- height="785"
- id="rect4135"
- style="fill:none;stroke:none" />
- <path
- d="m 2708,6489 -2,748"
- id="path4137"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2708,6489 Z"
- id="path4139"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2706,7237 Z"
- id="path4141"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4155">
- <g
- id="id126">
- <rect
- class="BoundingBox"
- x="2264"
- y="6475"
- width="39"
- height="783"
- id="rect4146"
- style="fill:none;stroke:none" />
- <path
- d="m 2284,6493 -2,746"
- id="path4148"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2284,6493 Z"
- id="path4150"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2282,7239 Z"
- id="path4152"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4164">
- <g
- id="id127">
- <rect
- class="BoundingBox"
- x="2200"
- y="6384"
- width="168"
- height="118"
- id="rect4157"
- style="fill:none;stroke:none" />
- <path
- d="m 2284,6492 h -75 v -99 h 149 v 99 z"
- id="path4159"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 2284,6492 h -75 v -99 h 149 v 99 z"
- id="path4161"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="Group"
- id="g4186">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4173">
- <g
- id="id128">
- <rect
- class="BoundingBox"
- x="2411"
- y="6382"
- width="168"
- height="118"
- id="rect4166"
- style="fill:none;stroke:none" />
- <path
- d="m 2495,6490 h -75 v -99 h 149 v 99 z"
- id="path4168"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 2495,6490 h -75 v -99 h 149 v 99 z"
- id="path4170"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4184">
- <g
- id="id129">
- <rect
- class="BoundingBox"
- x="2489"
- y="6473"
- width="43"
- height="785"
- id="rect4175"
- style="fill:none;stroke:none" />
- <path
- d="m 2507,6491 6,748"
- id="path4177"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2507,6491 Z"
- id="path4179"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 2513,7239 Z"
- id="path4181"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4217"
- transform="matrix(0.96954871,0,0,1.0455359,158.25441,-235.42783)">
- <g
- id="id130"
- transform="matrix(1.0446151,0,0,1,-86.463989,0)">
- <rect
- class="BoundingBox"
- x="1938"
- y="4055"
- width="2837"
- height="1203"
- id="rect4190"
- style="fill:none;stroke:none" />
- <path
- d="M 3356,5239 H 1956 V 4073 L 7919.1699,4089.2214 7951,5239 Z"
- id="path4192"
- inkscape:connector-curvature="0"
- style="fill:#4472c4;stroke:none"
- sodipodi:nodetypes="cccccc" />
- <path
- d="M 3356,5239 H 1956 V 4073 L 7919.1699,4089.2214 7952,5239 Z"
- id="path4194"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#325490;stroke-width:35;stroke-linejoin:miter"
- sodipodi:nodetypes="cccccc" />
- <text
- class="TextShape"
- id="text4214"
- x="-108.67588"
- transform="scale(1.0203451,0.98006057)"
- style="font-size:12.24414158px;stroke-width:28.79617882"><tspan
- class="TextParagraph"
- font-size="318px"
- font-weight="400"
- id="tspan4206"
- style="font-weight:400;font-size:324.46975708px;font-family:Calibri, sans-serif;stroke-width:28.79617882"><tspan
- class="TextPosition"
- x="2616.6658"
- y="4826.2324"
- id="tspan4204"
- style="fill:#ffffff;stroke:none;stroke-width:28.79617882">Intel Atom CPU C3858 @2.00GHZ</tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="Group"
- id="g4318"
- transform="translate(649,31)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4234">
- <g
- id="id131">
- <rect
- class="BoundingBox"
- x="2910"
- y="5985"
- width="906"
- height="453"
- id="rect4219"
- style="fill:none;stroke:none" />
- <path
- d="m 3363,6428 h -444 v -434 h 887 v 434 z"
- id="path4221"
- inkscape:connector-curvature="0"
- style="fill:#ededed;stroke:none" />
- <path
- d="m 3363,6428 h -444 v -434 h 887 v 434 z"
- id="path4223"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#a5a5a5;stroke-width:18;stroke-linejoin:miter" />
- <text
- class="TextShape"
- id="text4231"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan4229"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="3088"
- y="6292"
- id="tspan4227"><tspan
- id="tspan4225"
- style="fill:#000000;stroke:none">P2</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4245">
- <g
- id="id132">
- <rect
- class="BoundingBox"
- x="3023"
- y="6471"
- width="42"
- height="783"
- id="rect4236"
- style="fill:none;stroke:none" />
- <path
- d="m 3041,6489 5,746"
- id="path4238"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3041,6489 Z"
- id="path4240"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3046,7235 Z"
- id="path4242"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4254">
- <g
- id="id133">
- <rect
- class="BoundingBox"
- x="2944"
- y="6380"
- width="168"
- height="118"
- id="rect4247"
- style="fill:none;stroke:none" />
- <path
- d="m 3028,6488 h -75 v -99 h 149 v 99 z"
- id="path4249"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 3028,6488 h -75 v -99 h 149 v 99 z"
- id="path4251"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4263">
- <g
- id="id134">
- <rect
- class="BoundingBox"
- x="3588"
- y="6378"
- width="168"
- height="118"
- id="rect4256"
- style="fill:none;stroke:none" />
- <path
- d="m 3672,6486 h -75 v -99 h 149 v 99 z"
- id="path4258"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 3672,6486 h -75 v -99 h 149 v 99 z"
- id="path4260"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4274">
- <g
- id="id135">
- <rect
- class="BoundingBox"
- x="3652"
- y="6469"
- width="39"
- height="785"
- id="rect4265"
- style="fill:none;stroke:none" />
- <path
- d="m 3672,6487 -2,748"
- id="path4267"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3672,6487 Z"
- id="path4269"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3670,7235 Z"
- id="path4271"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4285">
- <g
- id="id136">
- <rect
- class="BoundingBox"
- x="3228"
- y="6473"
- width="39"
- height="783"
- id="rect4276"
- style="fill:none;stroke:none" />
- <path
- d="m 3248,6491 -2,746"
- id="path4278"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3248,6491 Z"
- id="path4280"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3246,7237 Z"
- id="path4282"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4294">
- <g
- id="id137">
- <rect
- class="BoundingBox"
- x="3165"
- y="6382"
- width="168"
- height="118"
- id="rect4287"
- style="fill:none;stroke:none" />
- <path
- d="m 3249,6490 h -75 v -99 h 149 v 99 z"
- id="path4289"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 3249,6490 h -75 v -99 h 149 v 99 z"
- id="path4291"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="Group"
- id="g4316">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4303">
- <g
- id="id138">
- <rect
- class="BoundingBox"
- x="3376"
- y="6380"
- width="168"
- height="118"
- id="rect4296"
- style="fill:none;stroke:none" />
- <path
- d="m 3460,6488 h -75 v -99 h 149 v 99 z"
- id="path4298"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 3460,6488 h -75 v -99 h 149 v 99 z"
- id="path4300"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4314">
- <g
- id="id139">
- <rect
- class="BoundingBox"
- x="3454"
- y="6471"
- width="43"
- height="785"
- id="rect4305"
- style="fill:none;stroke:none" />
- <path
- d="m 3472,6489 6,748"
- id="path4307"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3472,6489 Z"
- id="path4309"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 3478,7237 Z"
- id="path4311"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- </g>
- </g>
-
- <g
- class="Group"
- id="g4443"
- transform="translate(439,39)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4426">
- <g
- id="id149">
- <rect
- class="BoundingBox"
- x="2152"
- y="5258"
- width="556"
- height="734"
- id="rect4421"
- style="fill:none;stroke:none" />
- <path
- d="m 2429,5991 -277,-161 h 138 v -410 h -138 l 277,-162 278,162 h -139 v 410 h 139 z m -277,0 z m 555,-733 z"
- id="path4423"
- inkscape:connector-curvature="0"
- style="fill:#8497b0;stroke:none" />
- </g>
- </g>
-
- </g>
- <g
- class="Group"
- id="g4467"
- transform="translate(571.28871,39)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4450">
- <g
- id="id151">
- <rect
- class="BoundingBox"
- x="3129"
- y="5253"
- width="556"
- height="735"
- id="rect4445"
- style="fill:none;stroke:none" />
- <path
- d="m 3406,5986 -277,-161 h 138 v -410 h -138 l 277,-162 278,162 h -139 v 410 h 139 z m -277,0 z m 555,-733 z"
- id="path4447"
- inkscape:connector-curvature="0"
- style="fill:#8497b0;stroke:none" />
- </g>
- </g>
-
- </g>
-
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4504"
- transform="translate(-227.09938,32.442768)">
- <g
- id="id155">
- <rect
- class="BoundingBox"
- x="4789"
- y="3256"
- width="1147"
- height="590"
- id="rect4493"
- style="fill:none;stroke:none" />
- <text
- class="TextShape"
- id="text4501"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan4499"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="5039"
- y="3663"
- id="tspan4497"><tspan
- id="tspan4495"
- style="fill:#42838b;stroke:none">DDR4</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4533">
- <g
- id="id156">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="5258"
- y="4040"
- width="2837"
- height="1203"
- id="rect4506" />
-
-
-
- </g>
- </g>
- <g
- class="Group"
- id="g4634"
- transform="translate(373.97168,27.778616)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4550">
- <g
- id="id157">
- <rect
- class="BoundingBox"
- x="5260"
- y="5982"
- width="906"
- height="453"
- id="rect4535"
- style="fill:none;stroke:none" />
- <path
- d="m 5713,6425 h -444 v -434 h 887 v 434 z"
- id="path4537"
- inkscape:connector-curvature="0"
- style="fill:#ededed;stroke:none" />
- <path
- d="m 5713,6425 h -444 v -434 h 887 v 434 z"
- id="path4539"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#a5a5a5;stroke-width:18;stroke-linejoin:miter" />
- <text
- class="TextShape"
- id="text4547"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan4545"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="5438"
- y="6289"
- id="tspan4543"><tspan
- id="tspan4541"
- style="fill:#000000;stroke:none">P3</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4561">
- <g
- id="id158">
- <rect
- class="BoundingBox"
- x="5373"
- y="6467"
- width="42"
- height="737"
- id="rect4552"
- style="fill:none;stroke:none" />
- <path
- d="m 5391,6485 5,700"
- id="path4554"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5391,6485 Z"
- id="path4556"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5396,7185 Z"
- id="path4558"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4570">
- <g
- id="id159">
- <rect
- class="BoundingBox"
- x="5294"
- y="6376"
- width="168"
- height="118"
- id="rect4563"
- style="fill:none;stroke:none" />
- <path
- d="m 5378,6484 h -75 v -99 h 149 v 99 z"
- id="path4565"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 5378,6484 h -75 v -99 h 149 v 99 z"
- id="path4567"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4579">
- <g
- id="id160">
- <rect
- class="BoundingBox"
- x="5938"
- y="6374"
- width="168"
- height="118"
- id="rect4572"
- style="fill:none;stroke:none" />
- <path
- d="m 6022,6482 h -75 v -99 h 149 v 99 z"
- id="path4574"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 6022,6482 h -75 v -99 h 149 v 99 z"
- id="path4576"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4590">
- <g
- id="id161">
- <rect
- class="BoundingBox"
- x="6002"
- y="6465"
- width="39"
- height="785"
- id="rect4581"
- style="fill:none;stroke:none" />
- <path
- d="m 6022,6483 -2,748"
- id="path4583"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6022,6483 Z"
- id="path4585"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6020,7231 Z"
- id="path4587"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4601">
- <g
- id="id162">
- <rect
- class="BoundingBox"
- x="5578"
- y="6469"
- width="39"
- height="783"
- id="rect4592"
- style="fill:none;stroke:none" />
- <path
- d="m 5598,6487 -2,746"
- id="path4594"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5598,6487 Z"
- id="path4596"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5596,7233 Z"
- id="path4598"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4610">
- <g
- id="id163">
- <rect
- class="BoundingBox"
- x="5515"
- y="6378"
- width="168"
- height="118"
- id="rect4603"
- style="fill:none;stroke:none" />
- <path
- d="m 5599,6486 h -75 v -99 h 149 v 99 z"
- id="path4605"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 5599,6486 h -75 v -99 h 149 v 99 z"
- id="path4607"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="Group"
- id="g4632">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4619">
- <g
- id="id164">
- <rect
- class="BoundingBox"
- x="5726"
- y="6376"
- width="168"
- height="118"
- id="rect4612"
- style="fill:none;stroke:none" />
- <path
- d="m 5810,6484 h -75 v -99 h 149 v 99 z"
- id="path4614"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 5810,6484 h -75 v -99 h 149 v 99 z"
- id="path4616"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4630">
- <g
- id="id165">
- <rect
- class="BoundingBox"
- x="5804"
- y="6467"
- width="43"
- height="785"
- id="rect4621"
- style="fill:none;stroke:none" />
- <path
- d="m 5822,6485 6,748"
- id="path4623"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5822,6485 Z"
- id="path4625"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 5828,7233 Z"
- id="path4627"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g4735"
- transform="translate(581,38)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4651">
- <g
- id="id166">
- <rect
- class="BoundingBox"
- x="6225"
- y="5979"
- width="906"
- height="453"
- id="rect4636"
- style="fill:none;stroke:none" />
- <path
- d="m 6678,6422 h -444 v -434 h 887 v 434 z"
- id="path4638"
- inkscape:connector-curvature="0"
- style="fill:#ededed;stroke:none" />
- <path
- d="m 6678,6422 h -444 v -434 h 887 v 434 z"
- id="path4640"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#a5a5a5;stroke-width:18;stroke-linejoin:miter" />
- <text
- class="TextShape"
- id="text4648"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan4646"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="6403"
- y="6286"
- id="tspan4644"><tspan
- id="tspan4642"
- style="fill:#000000;stroke:none">P4</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4662">
- <g
- id="id167">
- <rect
- class="BoundingBox"
- x="6338"
- y="6465"
- width="42"
- height="783"
- id="rect4653"
- style="fill:none;stroke:none" />
- <path
- d="m 6356,6483 5,746"
- id="path4655"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6356,6483 Z"
- id="path4657"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6361,7229 Z"
- id="path4659"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4671">
- <g
- id="id168">
- <rect
- class="BoundingBox"
- x="6259"
- y="6374"
- width="168"
- height="118"
- id="rect4664"
- style="fill:none;stroke:none" />
- <path
- d="m 6343,6482 h -75 v -99 h 149 v 99 z"
- id="path4666"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 6343,6482 h -75 v -99 h 149 v 99 z"
- id="path4668"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4680">
- <g
- id="id169">
- <rect
- class="BoundingBox"
- x="6903"
- y="6372"
- width="168"
- height="118"
- id="rect4673"
- style="fill:none;stroke:none" />
- <path
- d="m 6987,6480 h -75 v -99 h 149 v 99 z"
- id="path4675"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 6987,6480 h -75 v -99 h 149 v 99 z"
- id="path4677"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4691">
- <g
- id="id170">
- <rect
- class="BoundingBox"
- x="6967"
- y="6463"
- width="39"
- height="785"
- id="rect4682"
- style="fill:none;stroke:none" />
- <path
- d="m 6987,6481 -2,748"
- id="path4684"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6987,6481 Z"
- id="path4686"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6985,7229 Z"
- id="path4688"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4702">
- <g
- id="id171">
- <rect
- class="BoundingBox"
- x="6543"
- y="6467"
- width="39"
- height="783"
- id="rect4693"
- style="fill:none;stroke:none" />
- <path
- d="m 6563,6485 -2,746"
- id="path4695"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6563,6485 Z"
- id="path4697"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6561,7231 Z"
- id="path4699"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4711">
- <g
- id="id172">
- <rect
- class="BoundingBox"
- x="6479"
- y="6376"
- width="168"
- height="118"
- id="rect4704"
- style="fill:none;stroke:none" />
- <path
- d="m 6563,6484 h -75 v -99 h 149 v 99 z"
- id="path4706"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 6563,6484 h -75 v -99 h 149 v 99 z"
- id="path4708"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="Group"
- id="g4733">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4720">
- <g
- id="id173">
- <rect
- class="BoundingBox"
- x="6691"
- y="6374"
- width="168"
- height="118"
- id="rect4713"
- style="fill:none;stroke:none" />
- <path
- d="m 6775,6482 h -75 v -99 h 149 v 99 z"
- id="path4715"
- inkscape:connector-curvature="0"
- style="fill:#d0cece;stroke:none" />
- <path
- d="m 6775,6482 h -75 v -99 h 149 v 99 z"
- id="path4717"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#afabab;stroke-width:18;stroke-linejoin:miter" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4731">
- <g
- id="id174">
- <rect
- class="BoundingBox"
- x="6769"
- y="6465"
- width="43"
- height="785"
- id="rect4722"
- style="fill:none;stroke:none" />
- <path
- d="m 6787,6483 6,748"
- id="path4724"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6787,6483 Z"
- id="path4726"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- <path
- d="M 6793,7231 Z"
- id="path4728"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#000000;stroke-width:35;stroke-linejoin:miter" />
- </g>
- </g>
- </g>
- </g>
-
- <g
- class="Group"
- id="g4860"
- transform="translate(339.18552,31.778616)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4843">
- <g
- id="id184">
- <rect
- class="BoundingBox"
- x="5466"
- y="5252"
- width="556"
- height="735"
- id="rect4838"
- style="fill:none;stroke:none" />
- <path
- d="m 5743,5985 -277,-161 h 138 v -410 h -138 l 277,-162 278,162 h -139 v 410 h 139 z m -277,0 z m 555,-733 z"
- id="path4840"
- inkscape:connector-curvature="0"
- style="fill:#8497b0;stroke:none" />
- </g>
- </g>
-
- </g>
- <g
- class="Group"
- id="g4884"
- transform="translate(533.21384,26.778616)">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4867">
- <g
- id="id186">
- <rect
- class="BoundingBox"
- x="6444"
- y="5248"
- width="556"
- height="735"
- id="rect4862"
- style="fill:none;stroke:none" />
- <path
- d="m 6721,5981 -277,-161 h 138 v -410 h -138 l 277,-162 278,162 h -139 v 410 h 139 z m -277,0 z m 555,-733 z"
- id="path4864"
- inkscape:connector-curvature="0"
- style="fill:#8497b0;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4882">
-
- </g>
- </g>
-
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4915">
- <g
- id="id190">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="4555"
- y="4175"
- width="891"
- height="1019"
- id="rect4910" />
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4926"
- transform="matrix(0.72152777,0,0,1,1002.3493,39)">
- <g
- id="id191">
- <rect
- class="BoundingBox"
- x="2023"
- y="7113"
- width="2667"
- height="236"
- id="rect4917"
- style="fill:none;stroke:none" />
- <path
- d="m 4636,7167 v 0 7 6 l -1,7 v 6 l -1,6 -1,7 v 6 l -2,6 -1,6 -1,6 -1,5 -2,6 -2,5 -1,5 -2,4 -2,5 -2,4 -2,4 -2,4 -3,3 -2,3 -2,3 -3,3 -2,2 -3,2 -2,1 -3,1 -3,1 -2,1 h -3 l -2456,2 v 0 h -3 l -2,-1 -3,-1 -3,-1 -2,-1 -3,-2 -2,-2 -3,-3 -2,-3 -2,-3 -3,-3 -2,-4 -2,-4 -2,-4 -2,-5 -2,-5 -1,-5 -2,-5 -2,-5 -1,-6 -1,-6 -1,-6 -2,-6 v -6 l -1,-6 -1,-7 v -6 l -1,-7 v -6 -7"
- id="path4919"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- <path
- d="M 4636,7167 Z"
- id="path4921"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- <path
- d="M 2077,7294 Z"
- id="path4923"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4937"
- transform="matrix(0.71942349,0,0,1,1855.61,-7.221384)">
- <g
- id="id192">
- <rect
- class="BoundingBox"
- x="5343"
- y="7106"
- width="2666"
- height="234"
- id="rect4928"
- style="fill:none;stroke:none" />
- <path
- d="m 7955,7159 v 0 7 6 l -1,7 v 6 l -1,6 -1,7 v 6 l -2,6 -1,6 -1,6 -1,5 -2,6 -2,5 -1,5 -2,4 -2,5 -2,4 -2,4 -2,4 -3,3 -2,3 -2,3 -3,3 -2,2 -3,2 -2,1 -3,1 -3,1 -2,1 h -3 l -2456,2 v 0 h -3 l -2,-1 -3,-1 -3,-1 -2,-1 -3,-2 -2,-2 -3,-3 -2,-3 -2,-3 -3,-3 -2,-4 -2,-4 -2,-4 -2,-5 -2,-5 -1,-5 -2,-5 -2,-5 -1,-6 -1,-6 -1,-6 -2,-6 v -6 l -1,-6 -1,-7 v -6 l -1,-7 v -6 -7"
- id="path4930"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- <path
- d="M 7955,7159 Z"
- id="path4932"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- <path
- d="M 5396,7286 Z"
- id="path4934"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#595959;stroke-width:106;stroke-linejoin:round" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4950"
- transform="translate(0,-162.21384)">
- <g
- id="id193">
- <rect
- class="BoundingBox"
- x="2512"
- y="2221"
- width="4708"
- height="759"
- id="rect4939"
- style="fill:none;stroke:none" />
- <text
- class="TextShape"
- id="text4947"><tspan
- class="TextParagraph"
- font-size="423px"
- font-weight="400"
- id="tspan4945"
- style="font-weight:400;font-size:423px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="2764"
- y="2769"
- id="tspan4943"><tspan
- id="tspan4941"
- style="fill:#203864;stroke:none">System Under Test (SUT)</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="Group"
- id="g5021"
- inkscape:transform-center-x="-291.98493"
- inkscape:transform-center-y="-32.44277"
- transform="translate(-227.09938,32.442768)">
- <g
- class="Group"
- id="g4973">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4957">
- <g
- id="id194">
- <rect
- class="BoundingBox"
- x="3062"
- y="3303"
- width="294"
- height="140"
- id="rect4952"
- style="fill:none;stroke:none" />
- <path
- d="m 3355,3373 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4954"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4964">
- <g
- id="id195">
- <rect
- class="BoundingBox"
- x="3062"
- y="3503"
- width="294"
- height="141"
- id="rect4959"
- style="fill:none;stroke:none" />
- <path
- d="m 3355,3573 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4961"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4971">
- <g
- id="id196">
- <rect
- class="BoundingBox"
- x="3062"
- y="3703"
- width="295"
- height="140"
- id="rect4966"
- style="fill:none;stroke:none" />
- <path
- d="m 3355,3773 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4968"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g4996">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4980">
- <g
- id="id197">
- <rect
- class="BoundingBox"
- x="2712"
- y="3303"
- width="295"
- height="140"
- id="rect4975"
- style="fill:none;stroke:none" />
- <path
- d="m 3006,3373 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4977"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4987">
- <g
- id="id198">
- <rect
- class="BoundingBox"
- x="2712"
- y="3503"
- width="295"
- height="141"
- id="rect4982"
- style="fill:none;stroke:none" />
- <path
- d="m 3006,3573 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4984"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g4994">
- <g
- id="id199">
- <rect
- class="BoundingBox"
- x="2713"
- y="3703"
- width="294"
- height="140"
- id="rect4989"
- style="fill:none;stroke:none" />
- <path
- d="m 3006,3773 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path4991"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5019">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5003">
- <g
- id="id200">
- <rect
- class="BoundingBox"
- x="3391"
- y="3306"
- width="295"
- height="140"
- id="rect4998"
- style="fill:none;stroke:none" />
- <path
- d="m 3685,3376 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5000"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5010">
- <g
- id="id201">
- <rect
- class="BoundingBox"
- x="3391"
- y="3506"
- width="295"
- height="141"
- id="rect5005"
- style="fill:none;stroke:none" />
- <path
- d="m 3685,3576 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5007"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5017">
- <g
- id="id202">
- <rect
- class="BoundingBox"
- x="3392"
- y="3705"
- width="294"
- height="141"
- id="rect5012"
- style="fill:none;stroke:none" />
- <path
- d="m 3685,3775 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5014"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5092"
- transform="translate(-227.09938,32.442768)">
- <g
- class="Group"
- id="g5044">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5028">
- <g
- id="id203">
- <rect
- class="BoundingBox"
- x="4119"
- y="3301"
- width="295"
- height="141"
- id="rect5023"
- style="fill:none;stroke:none" />
- <path
- d="m 4413,3371 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5025"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5035">
- <g
- id="id204">
- <rect
- class="BoundingBox"
- x="4119"
- y="3501"
- width="295"
- height="141"
- id="rect5030"
- style="fill:none;stroke:none" />
- <path
- d="m 4413,3571 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5032"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5042">
- <g
- id="id205">
- <rect
- class="BoundingBox"
- x="4119"
- y="3701"
- width="295"
- height="141"
- id="rect5037"
- style="fill:none;stroke:none" />
- <path
- d="m 4413,3771 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5039"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5067">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5051">
- <g
- id="id206">
- <rect
- class="BoundingBox"
- x="3771"
- y="3301"
- width="294"
- height="141"
- id="rect5046"
- style="fill:none;stroke:none" />
- <path
- d="m 4064,3371 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5048"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5058">
- <g
- id="id207">
- <rect
- class="BoundingBox"
- x="3771"
- y="3501"
- width="294"
- height="141"
- id="rect5053"
- style="fill:none;stroke:none" />
- <path
- d="m 4064,3571 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5055"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5065">
- <g
- id="id208">
- <rect
- class="BoundingBox"
- x="3771"
- y="3701"
- width="295"
- height="141"
- id="rect5060"
- style="fill:none;stroke:none" />
- <path
- d="m 4064,3771 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5062"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5090">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5074">
- <g
- id="id209">
- <rect
- class="BoundingBox"
- x="4450"
- y="3304"
- width="295"
- height="140"
- id="rect5069"
- style="fill:none;stroke:none" />
- <path
- d="m 4744,3374 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5071"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5081">
- <g
- id="id210">
- <rect
- class="BoundingBox"
- x="4450"
- y="3503"
- width="295"
- height="141"
- id="rect5076"
- style="fill:none;stroke:none" />
- <path
- d="m 4744,3574 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5078"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5088">
- <g
- id="id211">
- <rect
- class="BoundingBox"
- x="4450"
- y="3704"
- width="295"
- height="140"
- id="rect5083"
- style="fill:none;stroke:none" />
- <path
- d="m 4744,3774 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5085"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5163"
- transform="translate(-227.09938,32.442768)">
- <g
- class="Group"
- id="g5115">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5099">
- <g
- id="id212">
- <rect
- class="BoundingBox"
- x="6394"
- y="3304"
- width="295"
- height="141"
- id="rect5094"
- style="fill:none;stroke:none" />
- <path
- d="m 6688,3374 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5096"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5106">
- <g
- id="id213">
- <rect
- class="BoundingBox"
- x="6394"
- y="3504"
- width="295"
- height="141"
- id="rect5101"
- style="fill:none;stroke:none" />
- <path
- d="m 6688,3574 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5103"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5113">
- <g
- id="id214">
- <rect
- class="BoundingBox"
- x="6394"
- y="3703"
- width="295"
- height="141"
- id="rect5108"
- style="fill:none;stroke:none" />
- <path
- d="m 6688,3773 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5110"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5138">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5122">
- <g
- id="id215">
- <rect
- class="BoundingBox"
- x="6046"
- y="3304"
- width="294"
- height="140"
- id="rect5117"
- style="fill:none;stroke:none" />
- <path
- d="m 6339,3374 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5119"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5129">
- <g
- id="id216">
- <rect
- class="BoundingBox"
- x="6046"
- y="3504"
- width="294"
- height="140"
- id="rect5124"
- style="fill:none;stroke:none" />
- <path
- d="m 6339,3574 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5126"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5136">
- <g
- id="id217">
- <rect
- class="BoundingBox"
- x="6046"
- y="3703"
- width="294"
- height="140"
- id="rect5131"
- style="fill:none;stroke:none" />
- <path
- d="m 6339,3773 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5133"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5161">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5145">
- <g
- id="id218">
- <rect
- class="BoundingBox"
- x="6725"
- y="3307"
- width="294"
- height="141"
- id="rect5140"
- style="fill:none;stroke:none" />
- <path
- d="m 7018,3377 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5142"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5152">
- <g
- id="id219">
- <rect
- class="BoundingBox"
- x="6725"
- y="3506"
- width="294"
- height="141"
- id="rect5147"
- style="fill:none;stroke:none" />
- <path
- d="m 7018,3576 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5149"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5159">
- <g
- id="id220">
- <rect
- class="BoundingBox"
- x="6725"
- y="3706"
- width="294"
- height="141"
- id="rect5154"
- style="fill:none;stroke:none" />
- <path
- d="m 7018,3776 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5156"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5234"
- transform="translate(-227.09938,32.442768)">
- <g
- class="Group"
- id="g5186">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5170">
- <g
- id="id221">
- <rect
- class="BoundingBox"
- x="7453"
- y="3302"
- width="294"
- height="141"
- id="rect5165"
- style="fill:none;stroke:none" />
- <path
- d="m 7746,3372 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5167"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5177">
- <g
- id="id222">
- <rect
- class="BoundingBox"
- x="7453"
- y="3502"
- width="294"
- height="141"
- id="rect5172"
- style="fill:none;stroke:none" />
- <path
- d="m 7746,3572 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5174"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5184">
- <g
- id="id223">
- <rect
- class="BoundingBox"
- x="7453"
- y="3701"
- width="294"
- height="141"
- id="rect5179"
- style="fill:none;stroke:none" />
- <path
- d="m 7746,3771 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5181"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5209">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5193">
- <g
- id="id224">
- <rect
- class="BoundingBox"
- x="7104"
- y="3302"
- width="294"
- height="140"
- id="rect5188"
- style="fill:none;stroke:none" />
- <path
- d="m 7397,3372 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5190"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5200">
- <g
- id="id225">
- <rect
- class="BoundingBox"
- x="7104"
- y="3502"
- width="294"
- height="140"
- id="rect5195"
- style="fill:none;stroke:none" />
- <path
- d="m 7397,3572 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5197"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5207">
- <g
- id="id226">
- <rect
- class="BoundingBox"
- x="7104"
- y="3701"
- width="294"
- height="140"
- id="rect5202"
- style="fill:none;stroke:none" />
- <path
- d="m 7397,3771 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5204"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5232">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5216">
- <g
- id="id227">
- <rect
- class="BoundingBox"
- x="7783"
- y="3305"
- width="295"
- height="140"
- id="rect5211"
- style="fill:none;stroke:none" />
- <path
- d="m 8077,3375 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5213"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5223">
- <g
- id="id228">
- <rect
- class="BoundingBox"
- x="7783"
- y="3505"
- width="295"
- height="140"
- id="rect5218"
- style="fill:none;stroke:none" />
- <path
- d="m 8077,3575 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5220"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5230">
- <g
- id="id229">
- <rect
- class="BoundingBox"
- x="7783"
- y="3704"
- width="295"
- height="140"
- id="rect5225"
- style="fill:none;stroke:none" />
- <path
- d="m 8077,3774 v 0 4 3 l -1,4 -1,3 v 4 l -1,3 -2,4 -1,3 -2,3 -1,4 -2,3 -2,3 -2,2 -3,3 -2,3 -3,2 -3,3 -2,2 -3,2 -4,2 -3,1 -3,2 -3,1 -4,2 -3,1 h -4 l -3,1 -4,1 h -3 -4 -154 v 0 h -4 -3 l -4,-1 -3,-1 h -4 l -3,-1 -4,-2 -3,-1 -3,-2 -4,-1 -3,-2 -3,-2 -2,-2 -3,-3 -3,-2 -2,-3 -3,-3 -2,-2 -2,-3 -2,-4 -1,-3 -2,-3 -1,-3 -2,-4 -1,-3 v -4 l -1,-3 -1,-4 v -3 -4 h -1 1 v -4 -3 l 1,-4 v -3 l 1,-4 1,-3 1,-4 2,-3 1,-3 2,-3 2,-3 2,-3 2,-3 2,-3 3,-2 2,-3 3,-2 3,-2 3,-3 3,-1 3,-2 3,-2 4,-1 3,-1 3,-1 4,-1 3,-1 4,-1 h 3 4 l 155,-1 v 1 h 4 3 l 4,1 h 3 l 4,1 3,1 4,1 3,2 3,1 3,2 3,2 3,2 3,2 3,2 2,3 3,2 2,3 2,3 3,3 1,3 2,3 2,3 1,4 1,3 1,3 1,4 1,3 1,4 v 3 4 z m 0,69 z m -293,-139 z"
- id="path5227"
- inkscape:connector-curvature="0"
- style="fill:#42838b;stroke:none" />
- </g>
- </g>
- </g>
- </g>
- <g
- class="com.sun.star.drawing.TextShape"
- id="g5253">
- <g
- id="id230">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="1170"
- y="5107"
- width="1625"
- height="1285"
- id="rect5236" />
- <text
- class="TextShape"
- id="text5250"><tspan
- class="TextParagraph"
- font-size="282px"
- font-weight="400"
- id="tspan5242"
- style="font-weight:400;font-size:282px;font-family:Calibri, sans-serif"><tspan
- class="TextPosition"
- x="1420"
- y="5503"
- id="tspan5240"
- style="fill:#000000;stroke:none" /></tspan></text>
-
-
-
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5268">
- <g
- id="id231">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="4710"
- y="4455"
- width="609"
- height="382"
- id="rect5255" />
-
-
- </g>
- </g>
- </g>
- <g
- class="Group"
- id="g5294">
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5277">
- <g
- id="id232">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="4617"
- y="11385"
- width="892"
- height="1018"
- id="rect5272" />
- <path
- fill="rgb(132,151,176)"
- stroke="none"
- d="M 4617,11893 L 4876,11385 4876,11639 5247,11639 5247,11385 5507,11893 5247,12402 5247,12147 4876,12147 4876,12402 4617,11893 Z M 4617,11385 L 4617,11385 Z M 5507,12402 L 5507,12402 Z"
- id="path5274" />
- </g>
- </g>
- <g
- class="com.sun.star.drawing.CustomShape"
- id="g5292">
- <g
- id="id233">
- <rect
- class="BoundingBox"
- stroke="none"
- fill="none"
- x="4772"
- y="11665"
- width="609"
- height="382"
- id="rect5279" />
- <path
- fill="rgb(95,100,104)"
- stroke="none"
- d="M 5076,12046 L 4772,12046 4772,11665 5380,11665 5380,12046 5076,12046 Z"
- id="path5281" />
- <text
- class="TextShape"
- id="text5289"><tspan
- class="TextParagraph"
- font-family="Arial, sans-serif"
- font-size="282px"
- font-weight="400"
- id="tspan5287"><tspan
- class="TextPosition"
- x="4840"
- y="11969"
- id="tspan5285"><tspan
- fill="rgb(255,255,255)"
- stroke="none"
- id="tspan5283">UPI</tspan></tspan></tspan></text>
-
-
-
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/docs/report/introduction/testbed-2n-skx.svg b/docs/report/introduction/testbed-2n-skx.svg
deleted file mode 100644
index 5f22ae1fb3..0000000000
--- a/docs/report/introduction/testbed-2n-skx.svg
+++ /dev/null
@@ -1,1858 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="90.84mm" height="128.96mm" viewBox="501 1325 9084 12896" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="501" y="1325" width="9084" height="12896"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="510" y="1337" width="9066" height="12871"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Arial embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1866" descent="432"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1020" d="M 15,0 L 403,552 44,1062 269,1062 432,813 C 463,766 487,726 506,694 535,738 562,777 587,811 L 766,1062 981,1062 614,562 1009,0 788,0 570,330 512,419 233,0 Z"/>
- <glyph unicode="U" horiz-adv-x="1175" d="M 1120,1466 L 1314,1466 1314,619 C 1314,472 1297,355 1264,268 1231,181 1171,111 1084,57 997,2 882,-25 741,-25 604,-25 491,-1 404,46 317,93 254,162 217,252 180,341 161,464 161,619 L 161,1466 355,1466 355,620 C 355,493 367,399 391,339 414,278 455,232 513,199 570,166 641,150 724,150 867,150 968,182 1029,247 1090,312 1120,436 1120,620 Z"/>
- <glyph unicode="P" horiz-adv-x="1124" d="M 158,0 L 158,1466 711,1466 C 808,1466 883,1461 934,1452 1006,1440 1066,1417 1115,1384 1164,1350 1203,1303 1233,1242 1262,1181 1277,1115 1277,1042 1277,917 1237,812 1158,726 1079,639 935,596 728,596 L 352,596 352,0 Z M 352,769 L 731,769 C 856,769 945,792 998,839 1051,886 1077,951 1077,1036 1077,1097 1062,1150 1031,1194 1000,1237 959,1266 908,1280 875,1289 815,1293 727,1293 L 352,1293 Z"/>
- <glyph unicode="I" horiz-adv-x="208" d="M 191,0 L 191,1466 385,1466 385,0 Z"/>
- <glyph unicode="6" horiz-adv-x="986" d="M 1019,1107 L 840,1093 C 824,1164 801,1215 772,1247 723,1298 663,1324 592,1324 535,1324 484,1308 441,1276 384,1235 340,1174 307,1095 274,1016 257,903 256,756 299,822 352,871 415,903 478,935 543,951 612,951 732,951 834,907 919,819 1003,730 1045,616 1045,476 1045,384 1025,299 986,220 946,141 891,80 822,38 753,-4 674,-25 586,-25 436,-25 314,30 219,141 124,251 77,433 77,686 77,969 129,1175 234,1304 325,1416 448,1472 603,1472 718,1472 813,1440 887,1375 960,1310 1004,1221 1019,1107 Z M 284,475 C 284,413 297,354 324,297 350,240 387,197 434,168 481,138 531,123 583,123 659,123 724,154 779,215 834,276 861,360 861,465 861,566 834,646 780,705 726,763 658,792 576,792 495,792 426,763 369,705 312,646 284,570 284,475 Z"/>
- <glyph unicode="1" horiz-adv-x="572" d="M 763,0 L 583,0 583,1147 C 540,1106 483,1064 413,1023 342,982 279,951 223,930 L 223,1104 C 324,1151 412,1209 487,1276 562,1343 616,1409 647,1472 L 763,1472 Z"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1953" descent="553"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="y" horiz-adv-x="883" d="M 563,0 L 443,-331 C 439,-342 429,-350 413,-356 396,-361 371,-364 338,-364 321,-364 307,-363 296,-362 285,-360 277,-357 272,-353 266,-349 263,-344 262,-337 261,-330 263,-322 267,-313 L 391,0 C 385,3 379,7 374,13 369,19 365,25 363,32 L 42,892 C 37,906 34,917 34,925 34,933 37,939 42,944 47,949 56,952 68,954 80,955 96,956 116,956 136,956 152,956 163,955 174,954 183,952 190,949 197,946 202,943 205,938 208,933 211,926 214,917 L 471,195 474,195 722,921 C 726,934 731,942 737,946 742,949 751,952 762,954 773,955 790,956 811,956 830,956 845,955 857,954 869,952 878,949 884,944 889,939 892,933 892,925 892,917 890,907 886,895 Z"/>
- <glyph unicode="x" horiz-adv-x="813" d="M 835,44 C 840,35 843,27 843,21 843,14 840,9 834,5 827,1 818,-2 805,-4 792,-5 775,-6 754,-6 734,-6 718,-6 707,-5 695,-4 686,-2 679,1 672,3 666,6 663,10 659,13 656,17 653,22 L 437,379 222,22 C 219,17 216,13 213,10 209,6 204,3 197,1 190,-2 180,-4 169,-5 158,-6 143,-6 124,-6 105,-6 89,-5 77,-4 64,-2 55,1 50,5 44,9 41,14 42,21 42,27 45,35 51,44 L 331,483 66,906 C 61,915 58,923 58,930 57,936 60,941 67,946 73,950 83,953 96,954 109,955 126,956 147,956 166,956 182,956 194,955 205,954 214,952 221,950 228,948 233,945 236,942 239,939 242,935 245,930 L 450,595 658,930 C 661,934 664,938 667,941 670,944 675,947 681,950 686,952 694,954 705,955 715,956 729,956 747,956 766,956 782,955 795,954 807,953 816,950 822,947 828,943 831,938 830,931 829,924 826,916 820,906 L 557,488 Z"/>
- <glyph unicode="v" horiz-adv-x="883" d="M 891,927 C 891,924 891,922 891,919 890,916 890,912 889,909 888,906 888,902 887,898 886,894 884,890 883,885 L 576,30 C 573,23 570,17 566,12 561,7 555,4 546,1 537,-2 526,-4 513,-5 500,-6 483,-6 463,-6 443,-6 426,-5 413,-4 400,-3 389,-1 381,2 372,5 366,8 361,13 356,18 353,23 350,30 L 44,885 C 41,893 39,900 38,906 36,912 35,917 35,920 34,923 34,925 34,927 34,932 35,937 38,941 41,945 45,948 52,951 58,953 66,954 77,955 87,956 100,956 115,956 134,956 150,956 162,955 173,954 182,952 189,949 195,946 200,943 203,939 206,935 208,930 211,924 L 465,182 469,170 472,182 723,924 C 724,930 727,935 730,939 733,943 738,946 745,949 751,952 760,954 771,955 782,956 796,956 814,956 829,956 842,956 852,955 862,954 870,953 876,950 881,947 885,944 888,941 890,937 891,932 891,927 Z"/>
- <glyph unicode="u" horiz-adv-x="796" d="M 924,25 C 924,20 923,15 921,12 918,8 914,5 908,2 902,-1 894,-3 885,-4 875,-5 863,-6 849,-6 834,-6 821,-5 812,-4 802,-3 794,-1 789,2 783,5 779,8 777,12 775,15 774,20 774,25 L 774,144 C 723,87 672,46 622,20 572,-6 521,-19 470,-19 410,-19 360,-9 319,11 278,31 244,58 219,93 194,127 176,167 165,213 154,258 148,314 148,379 L 148,925 C 148,930 149,935 152,939 154,942 158,946 165,949 172,952 180,954 191,955 202,956 215,956 231,956 247,956 260,956 271,955 282,954 290,952 297,949 303,946 307,942 310,939 313,935 314,930 314,925 L 314,401 C 314,348 318,306 326,275 333,243 345,216 361,194 376,171 396,154 420,142 444,129 472,123 504,123 545,123 587,138 628,167 669,196 712,239 758,296 L 758,925 C 758,930 759,935 762,939 764,942 768,946 775,949 782,952 790,954 801,955 811,956 824,956 841,956 857,956 870,956 881,955 892,954 900,952 906,949 912,946 917,942 920,939 923,935 924,930 924,925 Z"/>
- <glyph unicode="t" horiz-adv-x="606" d="M 621,91 C 621,72 620,56 617,45 614,34 610,25 605,20 600,15 592,10 581,5 570,0 558,-4 545,-7 531,-10 516,-12 501,-14 486,-16 470,-17 455,-17 408,-17 368,-11 335,2 302,14 274,33 253,58 232,83 216,114 207,153 197,191 192,236 192,288 L 192,814 66,814 C 56,814 48,819 42,830 36,841 33,858 33,882 33,895 34,905 36,914 37,923 39,930 42,936 45,941 48,945 53,948 57,950 62,951 67,951 L 192,951 192,1165 C 192,1170 193,1174 196,1178 198,1182 202,1186 209,1189 215,1192 223,1194 234,1195 245,1196 258,1197 274,1197 291,1197 304,1196 315,1195 326,1194 334,1192 340,1189 346,1186 350,1182 353,1178 356,1174 357,1170 357,1165 L 357,951 588,951 C 593,951 598,950 602,948 606,945 610,941 613,936 616,930 618,923 619,914 620,905 621,895 621,882 621,858 618,841 612,830 606,819 598,814 588,814 L 357,814 357,312 C 357,250 366,203 385,172 403,140 436,124 483,124 498,124 512,126 524,129 536,132 547,135 556,138 565,141 573,145 580,148 587,151 593,152 598,152 601,152 605,151 608,150 611,148 613,145 615,140 616,135 618,129 619,121 620,113 621,103 621,91 Z"/>
- <glyph unicode="s" horiz-adv-x="658" d="M 718,270 C 718,224 710,183 693,147 676,111 651,81 620,56 589,31 551,13 508,0 465,-13 417,-19 365,-19 333,-19 303,-17 274,-12 245,-7 219,0 196,8 173,15 153,23 137,32 121,40 109,47 102,54 95,61 89,70 86,82 83,94 81,110 81,131 81,144 82,154 83,163 84,172 86,179 88,184 90,189 93,193 97,196 100,198 104,199 109,199 116,199 127,195 142,186 156,177 174,167 195,156 216,145 240,136 269,127 298,118 331,113 368,113 396,113 421,116 444,122 467,128 486,137 503,149 520,160 533,175 542,193 551,211 555,232 555,257 555,282 549,304 536,321 523,338 505,354 484,367 463,380 439,392 412,403 385,413 358,424 330,435 301,446 274,459 247,474 220,488 195,505 174,526 153,547 136,571 123,600 110,629 103,663 103,703 103,738 110,772 124,805 137,837 158,865 185,890 212,914 247,933 288,948 329,963 376,970 431,970 455,970 479,968 503,964 527,960 549,955 568,949 587,943 604,937 618,930 631,923 642,916 649,911 656,906 660,901 663,897 665,893 667,889 668,884 669,879 670,872 671,865 672,858 672,849 672,838 672,827 672,817 671,809 670,800 668,793 666,788 663,783 660,779 657,777 654,774 650,773 646,773 640,773 631,777 620,784 609,791 594,799 576,808 558,816 537,824 513,831 488,838 460,842 429,842 401,842 376,839 355,833 334,826 316,817 303,806 289,794 279,780 272,764 265,748 261,731 261,712 261,686 268,664 281,647 294,629 312,613 333,600 354,587 379,575 406,564 433,553 461,542 490,531 518,520 546,507 574,493 601,479 626,462 647,442 668,422 686,398 699,370 712,342 718,309 718,270 Z"/>
- <glyph unicode="r" horiz-adv-x="554" d="M 679,866 C 679,851 679,839 678,829 677,819 676,811 674,806 672,800 670,796 667,793 664,790 659,788 654,788 649,788 642,790 635,793 627,796 618,799 609,802 599,805 588,807 576,810 564,813 551,814 537,814 520,814 504,811 488,804 472,797 455,786 438,771 420,756 401,735 382,710 363,685 341,654 318,617 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,794 C 327,830 350,859 372,882 393,905 414,923 433,936 452,949 472,958 491,963 510,968 529,970 548,970 557,970 567,970 578,969 589,968 600,966 612,963 624,960 635,957 645,954 654,951 661,947 665,944 669,941 672,938 673,935 674,932 676,928 677,923 678,918 678,912 679,903 679,894 679,881 679,866 Z"/>
- <glyph unicode="o" horiz-adv-x="917" d="M 990,485 C 990,412 980,344 961,283 942,221 913,168 875,123 836,78 788,44 731,19 673,-7 606,-19 530,-19 456,-19 392,-8 337,14 282,36 236,68 199,110 162,152 135,203 117,263 99,323 90,391 90,467 90,540 100,608 119,670 138,731 166,784 205,829 243,874 291,908 348,933 405,958 472,970 549,970 623,970 688,959 743,937 798,915 843,883 880,841 917,799 944,748 963,688 981,628 990,560 990,485 Z M 816,474 C 816,523 812,569 803,612 794,655 779,693 758,726 737,759 709,785 674,804 639,823 595,832 542,832 493,832 452,823 417,806 382,789 353,764 330,733 307,701 291,663 280,620 269,577 263,529 263,478 263,429 268,382 277,339 286,296 301,258 322,226 343,193 371,168 406,149 441,130 485,120 538,120 586,120 628,129 663,146 698,163 727,188 750,219 773,250 789,288 800,331 811,374 816,422 816,474 Z"/>
- <glyph unicode="n" horiz-adv-x="796" d="M 928,25 C 928,20 927,15 924,12 921,8 917,5 911,2 905,-1 897,-3 886,-4 875,-5 862,-6 846,-6 829,-6 816,-5 805,-4 794,-3 786,-1 780,2 774,5 770,8 767,12 764,15 763,20 763,25 L 763,552 C 763,603 759,645 751,676 743,707 731,734 716,757 701,780 681,797 657,809 632,821 604,827 572,827 531,827 489,812 448,783 407,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 403,904 454,931 504,957 555,970 606,970 666,970 717,960 758,940 799,919 832,892 857,858 882,824 901,784 912,739 923,693 928,638 928,574 Z"/>
- <glyph unicode="m" horiz-adv-x="1366" d="M 1488,25 C 1488,20 1487,15 1484,12 1481,8 1477,5 1471,2 1465,-1 1457,-3 1446,-4 1435,-5 1422,-6 1406,-6 1389,-6 1376,-5 1365,-4 1354,-3 1346,-1 1340,2 1333,5 1329,8 1326,12 1323,15 1322,20 1322,25 L 1322,572 C 1322,610 1319,645 1312,676 1305,707 1295,734 1280,757 1265,780 1247,797 1224,809 1201,821 1175,827 1144,827 1106,827 1068,812 1030,783 991,754 949,711 903,654 L 903,25 C 903,20 902,15 899,12 896,8 892,5 886,2 879,-1 871,-3 860,-4 849,-5 836,-6 820,-6 805,-6 792,-5 781,-4 770,-3 761,-1 755,2 748,5 744,8 742,12 739,15 738,20 738,25 L 738,572 C 738,610 734,645 727,676 720,707 709,734 694,757 679,780 661,797 639,809 616,821 590,827 559,827 521,827 483,812 444,783 405,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 402,904 450,931 497,957 545,970 594,970 631,970 665,966 695,957 724,948 750,936 773,921 796,905 815,886 831,865 847,843 860,819 871,792 901,825 930,852 957,875 984,898 1010,916 1035,930 1060,944 1084,954 1108,961 1131,967 1155,970 1179,970 1237,970 1286,960 1325,940 1364,919 1396,892 1421,858 1445,824 1462,784 1473,739 1483,693 1488,645 1488,594 Z"/>
- <glyph unicode="l" horiz-adv-x="191" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 Z"/>
- <glyph unicode="k" horiz-adv-x="762" d="M 892,26 C 892,21 891,16 888,12 885,8 881,5 875,2 868,-1 859,-3 848,-4 837,-5 822,-6 805,-6 787,-6 772,-6 761,-5 749,-4 739,-2 731,1 723,3 717,6 712,11 707,15 702,20 698,26 L 318,524 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 L 318,547 658,921 C 663,928 669,933 675,938 681,942 688,946 697,949 705,952 715,954 726,955 737,956 751,956 767,956 784,956 798,956 809,955 820,954 830,952 837,950 844,947 849,944 852,941 855,937 856,932 856,926 856,918 854,910 850,902 845,894 838,885 828,874 L 502,548 868,73 C 877,62 883,53 887,46 890,39 892,32 892,26 Z"/>
- <glyph unicode="i" horiz-adv-x="226" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,934 157,938 159,942 163,945 170,948 176,951 184,953 195,954 206,955 219,956 235,956 252,956 265,955 276,954 287,953 295,951 301,948 307,945 311,942 314,938 317,934 318,930 318,925 Z M 337,1229 C 337,1190 330,1164 315,1150 300,1136 273,1129 234,1129 195,1129 169,1136 155,1150 140,1163 133,1189 133,1227 133,1266 140,1292 155,1306 170,1320 197,1327 236,1327 275,1327 301,1320 316,1307 330,1293 337,1267 337,1229 Z"/>
- <glyph unicode="f" horiz-adv-x="623" d="M 646,1295 C 646,1282 645,1272 644,1265 643,1257 641,1251 640,1246 638,1241 636,1238 633,1237 630,1235 627,1234 623,1234 618,1234 613,1236 606,1239 599,1242 590,1245 580,1249 570,1252 558,1256 545,1259 531,1262 515,1263 497,1263 472,1263 451,1259 434,1251 417,1243 403,1231 392,1214 381,1197 374,1175 369,1148 364,1121 362,1088 362,1049 L 362,951 563,951 C 568,951 573,950 577,948 580,945 584,941 587,936 590,930 592,923 594,914 595,905 596,895 596,882 596,858 593,841 587,830 581,819 573,814 563,814 L 362,814 362,25 C 362,20 361,15 358,12 355,8 351,5 345,2 338,-1 330,-3 319,-4 308,-5 295,-6 279,-6 263,-6 250,-5 239,-4 228,-3 220,-1 214,2 207,5 203,8 200,12 197,15 196,20 196,25 L 196,814 69,814 C 58,814 50,819 45,830 40,841 37,858 37,882 37,895 38,905 39,914 40,923 42,930 45,936 48,941 51,945 55,948 59,950 64,951 69,951 L 196,951 196,1044 C 196,1107 202,1161 214,1206 225,1251 243,1287 267,1316 291,1345 321,1366 358,1380 394,1393 437,1400 486,1400 509,1400 532,1398 554,1394 576,1389 593,1385 605,1380 617,1375 625,1370 629,1366 633,1362 636,1357 639,1351 642,1344 644,1337 645,1328 646,1319 646,1308 646,1295 Z"/>
- <glyph unicode="e" horiz-adv-x="848" d="M 921,514 C 921,488 915,470 902,459 889,448 874,442 857,442 L 267,442 C 267,392 272,347 282,307 292,267 309,233 332,204 355,175 386,153 423,138 460,123 506,115 560,115 603,115 641,119 674,126 707,133 736,140 761,149 785,158 805,166 821,173 836,180 848,183 856,183 861,183 865,182 869,180 872,177 875,174 877,169 879,164 881,158 882,150 883,141 883,131 883,119 883,110 883,103 882,97 881,90 881,85 880,80 879,75 877,70 875,66 872,62 869,58 866,55 862,51 851,45 833,37 815,28 792,20 763,12 734,4 701,-3 664,-10 626,-16 586,-19 543,-19 469,-19 404,-9 349,12 293,33 246,63 208,104 170,145 141,196 122,257 103,318 93,390 93,471 93,548 103,618 123,680 143,741 172,794 210,837 247,880 293,913 346,936 399,959 459,970 525,970 596,970 656,959 706,936 755,913 796,883 828,845 860,806 884,761 899,710 914,658 921,603 921,544 Z M 755,563 C 757,650 738,718 698,767 657,816 597,841 518,841 477,841 442,833 411,818 380,803 355,782 334,757 313,732 297,702 286,669 275,635 268,600 267,563 Z"/>
- <glyph unicode="d" horiz-adv-x="848" d="M 924,25 C 924,20 923,15 921,11 918,7 914,4 909,2 903,-1 895,-3 886,-4 877,-5 865,-6 852,-6 838,-6 826,-5 817,-4 808,-3 800,-1 794,2 788,4 784,7 781,11 778,15 777,20 777,25 L 777,144 C 730,93 681,53 630,24 579,-5 523,-19 462,-19 396,-19 340,-6 293,20 246,45 209,80 180,124 151,167 129,219 116,278 103,337 96,399 96,464 96,541 104,611 121,674 138,736 162,789 195,833 228,877 268,911 317,935 365,958 421,970 484,970 537,970 585,959 629,936 672,913 715,879 758,834 L 758,1357 C 758,1362 759,1366 762,1371 764,1375 768,1378 775,1381 782,1383 790,1385 801,1387 811,1388 824,1389 840,1389 857,1389 870,1388 881,1387 892,1385 900,1383 906,1381 912,1378 917,1375 920,1371 923,1366 924,1362 924,1357 Z M 758,658 C 713,713 670,756 629,785 587,814 543,828 498,828 456,828 420,818 391,798 362,778 338,752 320,719 301,686 288,649 280,608 271,567 267,525 267,482 267,437 271,392 278,349 285,306 297,267 314,234 331,200 354,173 383,153 412,132 448,122 491,122 513,122 534,125 555,131 575,137 596,147 617,161 638,175 661,193 684,216 707,238 732,265 758,298 Z"/>
- <glyph unicode="c" horiz-adv-x="727" d="M 800,162 C 800,151 800,141 799,133 798,124 797,117 796,112 794,106 792,101 790,97 787,92 782,86 774,78 765,69 751,59 731,47 711,34 689,23 664,14 639,4 611,-4 582,-10 553,-16 522,-19 491,-19 426,-19 369,-8 319,13 269,34 227,66 194,107 160,148 134,198 117,258 99,317 90,386 90,464 90,553 101,629 123,693 144,756 174,808 212,849 249,890 294,920 345,940 396,959 451,969 510,969 539,969 567,966 594,961 621,956 645,949 668,940 691,931 711,921 729,910 746,899 759,889 767,881 775,873 781,867 784,862 787,857 789,852 791,846 793,839 794,832 795,824 796,816 796,806 796,794 796,768 793,750 787,740 781,729 774,724 765,724 755,724 744,730 731,741 718,752 701,764 681,777 661,790 637,803 609,814 580,825 547,830 508,830 429,830 368,800 326,739 283,678 262,589 262,473 262,415 268,364 279,321 290,277 306,240 327,211 348,182 375,160 406,146 437,131 472,124 512,124 550,124 583,130 612,142 641,154 666,167 687,182 708,196 725,209 740,221 754,232 765,238 773,238 778,238 782,237 785,234 788,231 791,227 794,221 796,214 798,206 799,197 800,187 800,175 800,162 Z"/>
- <glyph unicode="a" horiz-adv-x="762" d="M 831,24 C 831,16 828,10 823,6 818,2 810,-1 801,-3 792,-5 778,-6 760,-6 743,-6 729,-5 719,-3 708,-1 701,2 696,6 691,10 689,16 689,24 L 689,114 C 650,72 606,39 558,16 509,-7 458,-19 404,-19 357,-19 314,-13 276,-1 237,12 205,30 178,53 151,76 130,105 115,139 100,173 92,212 92,255 92,306 102,350 123,387 144,424 173,455 212,480 251,505 298,523 354,536 410,548 473,554 543,554 L 667,554 667,624 C 667,659 663,689 656,716 649,743 637,765 621,783 604,800 583,814 557,823 531,832 499,836 461,836 420,836 384,831 352,822 319,812 291,801 267,790 242,778 222,767 206,758 189,748 177,743 169,743 164,743 159,744 155,747 151,750 148,754 145,759 142,764 139,771 138,780 137,788 136,797 136,807 136,824 137,837 140,847 142,856 148,865 157,874 166,883 181,893 203,905 225,916 250,927 279,937 308,946 339,954 373,961 407,967 441,970 476,970 541,970 596,963 641,948 686,933 723,912 751,884 779,855 799,820 812,778 825,736 831,687 831,631 Z M 667,435 L 526,435 C 481,435 441,431 408,424 375,416 347,405 325,390 303,375 287,357 277,336 266,315 261,290 261,263 261,216 276,179 306,152 335,124 377,110 430,110 473,110 514,121 551,143 588,165 626,199 667,244 Z"/>
- <glyph unicode="X" horiz-adv-x="985" d="M 996,62 C 1005,47 1010,36 1012,27 1013,18 1011,12 1005,7 999,2 989,-2 976,-4 962,-5 944,-6 921,-6 900,-6 883,-6 871,-5 859,-4 850,-2 843,1 836,4 830,7 827,11 823,14 820,19 817,25 L 529,540 238,25 C 235,19 231,14 227,10 223,6 218,3 211,1 204,-2 194,-4 182,-5 170,-6 154,-6 134,-6 112,-6 95,-5 82,-4 69,-2 61,2 56,7 51,12 49,18 51,27 52,36 57,47 66,62 L 419,657 82,1232 C 74,1247 69,1259 67,1268 64,1277 66,1284 71,1289 76,1294 86,1297 99,1298 112,1299 131,1300 154,1300 174,1300 190,1300 203,1299 216,1298 226,1296 233,1294 240,1291 246,1288 249,1284 252,1279 256,1274 260,1269 L 538,785 814,1269 C 817,1274 821,1279 824,1284 827,1288 832,1291 839,1294 845,1296 854,1298 865,1299 876,1300 892,1300 911,1300 932,1300 949,1299 962,1298 975,1296 984,1293 990,1288 995,1283 997,1277 996,1268 995,1259 990,1247 982,1232 L 646,661 Z"/>
- <glyph unicode="U" horiz-adv-x="1003" d="M 1145,478 C 1145,399 1134,329 1111,268 1088,206 1055,154 1012,111 969,68 917,36 856,14 795,-8 725,-19 647,-19 576,-19 511,-9 452,12 393,33 343,63 301,104 259,144 227,194 204,255 181,316 170,386 170,465 L 170,1268 C 170,1273 171,1278 174,1282 177,1286 181,1289 188,1292 195,1294 203,1296 214,1298 225,1299 239,1300 256,1300 272,1300 286,1299 297,1298 308,1296 317,1294 324,1292 330,1289 334,1286 337,1282 340,1278 341,1273 341,1268 L 341,486 C 341,426 348,374 363,329 378,284 399,247 427,218 454,188 488,166 527,151 566,136 609,128 658,128 708,128 753,135 792,150 831,165 864,187 891,216 918,245 938,282 953,325 967,368 974,419 974,477 L 974,1268 C 974,1273 975,1278 978,1282 981,1286 985,1289 992,1292 999,1294 1008,1296 1019,1298 1030,1299 1043,1300 1060,1300 1076,1300 1090,1299 1101,1298 1112,1296 1120,1294 1127,1292 1133,1289 1138,1286 1141,1282 1144,1278 1145,1273 1145,1268 Z"/>
- <glyph unicode="T" horiz-adv-x="986" d="M 983,1220 C 983,1207 982,1196 981,1187 980,1178 978,1170 975,1165 972,1159 968,1155 964,1152 959,1149 954,1148 949,1148 L 585,1148 585,26 C 585,21 584,16 581,12 578,8 574,5 567,3 560,0 552,-2 541,-4 530,-5 516,-6 499,-6 483,-6 469,-5 458,-4 447,-2 438,0 431,3 424,5 420,8 417,12 414,16 413,21 413,26 L 413,1148 49,1148 C 44,1148 39,1149 35,1152 30,1155 27,1159 24,1165 21,1170 19,1178 18,1187 16,1196 15,1207 15,1220 15,1233 16,1244 18,1254 19,1263 21,1271 24,1277 27,1283 30,1287 35,1290 39,1293 44,1294 49,1294 L 949,1294 C 954,1294 959,1293 964,1290 968,1287 972,1283 975,1277 978,1271 980,1263 981,1254 982,1244 983,1233 983,1220 Z"/>
- <glyph unicode="S" horiz-adv-x="813" d="M 867,363 C 867,302 856,248 834,201 811,154 780,114 741,81 701,48 654,23 601,6 547,-11 489,-19 427,-19 384,-19 344,-15 307,-8 270,-1 237,8 208,19 179,30 154,41 135,52 115,63 101,73 94,81 86,89 80,99 77,112 73,124 71,140 71,161 71,176 72,188 73,198 74,207 76,215 79,221 82,227 85,231 89,234 93,236 98,237 103,237 112,237 126,231 143,220 160,209 181,196 208,183 235,170 267,157 305,146 342,134 386,128 435,128 472,128 507,133 538,143 569,153 595,167 618,186 640,204 657,226 669,253 681,280 687,310 687,344 687,381 679,412 662,438 645,464 623,487 596,507 569,526 538,544 503,561 468,577 432,594 395,611 358,628 323,646 288,667 253,688 222,712 195,740 168,768 146,801 129,839 112,876 103,921 103,974 103,1028 113,1076 133,1119 152,1161 180,1196 215,1225 250,1254 291,1276 340,1291 388,1306 440,1313 496,1313 525,1313 554,1311 583,1306 612,1301 639,1294 665,1286 690,1277 713,1268 733,1258 753,1247 766,1239 773,1233 779,1226 783,1221 785,1218 787,1214 789,1209 790,1204 791,1198 792,1191 793,1183 794,1175 794,1165 794,1152 794,1140 794,1129 793,1120 792,1111 790,1103 788,1097 786,1090 783,1086 780,1083 776,1080 772,1078 767,1078 760,1078 748,1083 733,1092 717,1101 698,1112 675,1124 652,1135 626,1146 595,1156 564,1165 529,1170 490,1170 454,1170 423,1165 396,1156 369,1146 347,1133 330,1117 313,1101 300,1082 291,1060 282,1038 278,1015 278,990 278,954 286,923 303,897 320,871 342,848 370,828 397,808 429,790 464,773 499,756 535,740 572,723 609,706 645,687 680,667 715,646 747,622 775,595 802,567 825,534 842,497 859,459 867,414 867,363 Z"/>
- <glyph unicode="R" horiz-adv-x="882" d="M 1035,26 C 1035,21 1034,16 1032,12 1030,8 1026,5 1019,2 1012,-1 1003,-3 991,-4 979,-5 963,-6 943,-6 926,-6 912,-5 901,-4 890,-3 881,-1 874,3 867,6 862,10 859,15 855,20 852,27 849,35 L 730,340 C 716,375 702,407 687,436 672,465 654,490 633,511 612,532 588,548 560,560 532,571 498,577 459,577 L 344,577 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 511,1294 C 544,1294 571,1293 593,1292 614,1290 634,1288 651,1286 701,1277 745,1264 784,1245 822,1226 854,1203 880,1174 906,1145 926,1113 939,1076 952,1039 958,998 958,953 958,910 952,871 941,837 929,802 912,772 890,746 868,719 842,696 811,677 780,658 746,641 708,628 729,619 749,607 766,593 783,578 800,561 815,541 830,521 844,498 857,472 870,446 884,417 897,384 L 1013,99 C 1022,75 1028,58 1031,49 1034,39 1035,31 1035,26 Z M 776,935 C 776,986 765,1029 742,1064 719,1099 681,1124 628,1139 611,1144 593,1147 572,1149 551,1151 523,1152 489,1152 L 344,1152 344,716 512,716 C 557,716 597,722 630,733 663,744 690,759 712,779 734,798 750,821 761,848 771,875 776,904 776,935 Z"/>
- <glyph unicode="P" horiz-adv-x="813" d="M 967,915 C 967,850 956,792 935,740 914,688 883,644 844,607 804,570 755,542 698,522 640,502 571,492 491,492 L 344,492 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1220 C 172,1247 179,1266 193,1277 207,1288 223,1294 240,1294 L 517,1294 C 545,1294 572,1293 598,1291 623,1288 654,1283 689,1276 724,1268 759,1254 796,1233 832,1212 863,1186 888,1155 913,1124 933,1089 947,1049 960,1008 967,964 967,915 Z M 786,901 C 786,954 776,998 757,1033 737,1068 713,1095 684,1112 655,1129 625,1140 594,1145 563,1150 532,1152 503,1152 L 344,1152 344,633 499,633 C 551,633 594,640 629,653 663,666 692,685 715,709 738,732 756,761 768,794 780,827 786,862 786,901 Z"/>
- <glyph unicode="N" horiz-adv-x="1003" d="M 1150,71 C 1150,58 1148,46 1144,37 1139,28 1134,20 1127,14 1120,8 1112,4 1103,1 1094,-2 1086,-3 1077,-3 L 1022,-3 C 1005,-3 990,-1 977,3 964,6 951,13 940,23 928,32 916,45 905,62 893,79 880,100 866,126 L 458,862 C 437,900 415,940 394,982 372,1023 352,1064 333,1103 L 331,1103 C 332,1055 333,1006 334,956 335,906 335,856 335,807 L 335,26 C 335,21 334,17 331,13 328,8 324,5 318,3 311,0 303,-2 293,-4 282,-5 269,-6 253,-6 237,-6 224,-5 214,-4 203,-2 195,0 189,3 183,5 179,8 176,13 173,17 172,21 172,26 L 172,1220 C 172,1247 179,1266 194,1277 209,1288 225,1294 242,1294 L 324,1294 C 343,1294 360,1292 373,1289 386,1286 397,1280 408,1273 418,1265 428,1254 438,1241 447,1227 458,1210 469,1189 L 783,621 C 802,586 821,553 839,520 857,487 874,454 891,422 908,390 924,359 941,328 957,297 973,265 989,234 L 990,234 C 989,287 988,342 988,399 987,456 987,510 987,563 L 987,1265 C 987,1270 988,1274 991,1278 994,1282 998,1286 1005,1289 1011,1292 1019,1294 1030,1295 1040,1296 1053,1297 1070,1297 1085,1297 1097,1296 1108,1295 1119,1294 1127,1292 1133,1289 1139,1286 1143,1282 1146,1278 1149,1274 1150,1270 1150,1265 Z"/>
- <glyph unicode="I" horiz-adv-x="191" d="M 344,26 C 344,21 343,16 340,12 337,8 333,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 242,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1268 C 172,1273 174,1278 177,1282 180,1286 185,1289 192,1292 199,1294 208,1296 219,1298 230,1299 243,1300 258,1300 275,1300 289,1299 300,1298 311,1296 319,1294 326,1292 333,1289 337,1286 340,1282 343,1278 344,1273 344,1268 Z"/>
- <glyph unicode="G" horiz-adv-x="1073" d="M 1144,1118 C 1144,1105 1143,1094 1142,1085 1141,1075 1139,1067 1136,1061 1133,1054 1130,1050 1126,1047 1122,1044 1118,1043 1113,1043 1105,1043 1092,1049 1073,1062 1054,1075 1029,1089 998,1104 967,1119 929,1133 886,1146 842,1159 790,1165 730,1165 659,1165 595,1152 538,1126 481,1100 433,1064 394,1018 355,972 325,917 304,854 283,791 272,722 272,648 272,565 284,492 307,428 330,364 361,310 402,266 443,222 491,189 548,166 604,143 666,132 733,132 773,132 814,137 855,147 896,156 934,171 969,190 L 969,567 669,567 C 658,567 649,573 644,584 638,595 635,613 635,637 635,650 636,661 637,670 638,679 641,686 644,692 647,697 650,701 654,704 658,707 663,708 669,708 L 1080,708 C 1087,708 1095,707 1102,704 1109,701 1116,697 1122,692 1128,687 1133,679 1136,670 1139,661 1141,650 1141,638 L 1141,145 C 1141,128 1138,113 1132,100 1126,87 1113,76 1094,67 1075,57 1050,46 1019,35 988,24 957,14 924,6 891,-2 858,-8 825,-12 792,-16 759,-18 726,-18 626,-18 537,-3 458,29 379,60 313,104 259,161 204,218 163,287 134,367 105,447 91,536 91,635 91,738 107,831 138,914 169,997 212,1068 269,1127 325,1186 393,1231 472,1264 551,1296 638,1312 734,1312 783,1312 830,1308 873,1299 916,1290 955,1280 989,1269 1022,1257 1051,1244 1074,1231 1097,1217 1112,1206 1121,1197 1130,1188 1136,1178 1139,1167 1142,1156 1144,1139 1144,1118 Z"/>
- <glyph unicode="D" horiz-adv-x="1020" d="M 1167,666 C 1167,554 1153,456 1124,373 1095,289 1054,220 999,165 944,110 876,68 796,41 716,14 621,0 510,0 L 236,0 C 221,0 206,5 193,16 179,26 172,44 172,70 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 529,1294 C 641,1294 736,1280 813,1251 890,1222 955,1180 1008,1126 1060,1071 1100,1005 1127,928 1154,851 1167,763 1167,666 Z M 986,659 C 986,729 977,794 960,855 943,915 916,967 879,1011 842,1055 795,1089 738,1114 681,1139 608,1151 519,1151 L 344,1151 344,144 521,144 C 604,144 673,154 730,175 787,196 834,227 872,270 910,313 939,366 958,431 977,495 986,571 986,659 Z"/>
- <glyph unicode="C" horiz-adv-x="952" d="M 1036,183 C 1036,172 1036,163 1035,155 1034,147 1033,140 1032,134 1030,128 1028,123 1025,118 1022,113 1018,108 1011,101 1004,94 990,84 969,71 948,57 921,44 890,31 858,18 822,7 781,-3 740,-12 695,-16 646,-16 562,-16 486,-2 419,26 351,54 293,95 246,150 198,205 161,272 136,353 110,433 97,525 97,630 97,737 111,833 139,917 166,1001 205,1072 255,1131 305,1189 365,1233 435,1264 504,1295 581,1310 666,1310 703,1310 740,1307 775,1300 810,1293 843,1284 873,1273 903,1262 930,1250 953,1236 976,1222 993,1211 1002,1202 1011,1193 1016,1186 1019,1181 1022,1176 1024,1171 1026,1165 1027,1158 1029,1151 1030,1142 1031,1133 1031,1123 1031,1111 1031,1098 1030,1086 1029,1077 1028,1068 1026,1060 1023,1054 1020,1047 1017,1043 1014,1040 1010,1037 1005,1035 1000,1035 991,1035 978,1042 961,1055 944,1068 923,1082 897,1098 870,1113 838,1128 801,1141 763,1154 718,1160 665,1160 608,1160 556,1149 509,1126 462,1103 421,1069 388,1024 355,979 329,925 311,861 292,796 283,723 283,640 283,558 292,486 310,423 327,360 353,307 386,265 419,222 459,190 507,169 555,147 609,136 670,136 721,136 766,142 805,155 843,168 876,182 903,198 930,213 952,227 969,240 986,253 1000,259 1010,259 1015,259 1019,258 1022,256 1025,254 1028,250 1030,245 1032,239 1034,231 1035,221 1036,211 1036,198 1036,183 Z"/>
- <glyph unicode="8" horiz-adv-x="900" d="M 954,332 C 954,276 944,226 924,183 904,139 875,102 838,72 800,42 753,19 698,4 643,-11 579,-19 508,-19 441,-19 382,-12 329,2 276,16 232,37 195,64 158,91 130,125 111,165 92,205 82,251 82,302 82,343 89,380 102,414 115,448 135,479 160,508 185,537 215,564 252,589 289,614 330,637 376,660 336,681 301,703 270,726 239,749 213,774 192,801 171,828 155,856 144,887 133,918 127,951 127,987 127,1032 135,1075 152,1115 168,1154 193,1189 226,1218 259,1247 301,1271 352,1288 403,1305 462,1313 530,1313 595,1313 652,1305 700,1290 747,1274 787,1253 818,1226 849,1199 871,1167 886,1130 901,1093 908,1054 908,1012 908,978 903,945 892,914 881,883 864,853 843,825 822,797 796,771 765,747 734,722 698,699 658,678 705,655 748,631 785,606 822,581 853,555 878,527 903,498 922,468 935,437 948,405 954,370 954,332 Z M 738,996 C 738,1024 733,1049 724,1072 714,1095 700,1114 681,1130 662,1146 639,1158 612,1167 584,1175 552,1179 517,1179 445,1179 391,1163 354,1130 317,1097 298,1053 298,996 298,970 303,946 312,924 321,901 335,880 354,860 373,840 397,821 426,802 455,783 489,763 529,742 596,777 648,815 684,857 720,899 738,945 738,996 Z M 780,314 C 780,345 774,373 763,398 752,423 735,446 712,468 689,489 660,510 626,531 591,551 551,572 506,594 464,573 427,553 396,532 364,511 338,490 318,468 297,446 282,423 272,399 261,374 256,347 256,318 256,253 278,203 323,168 367,133 433,115 521,115 606,115 671,133 715,169 758,204 780,253 780,314 Z"/>
- <glyph unicode="6" horiz-adv-x="865" d="M 957,419 C 957,362 948,308 931,255 914,202 887,155 851,115 815,74 769,42 714,18 659,-7 593,-19 518,-19 464,-19 416,-12 375,1 334,14 298,33 267,58 236,83 211,113 191,149 170,185 154,226 142,272 129,318 120,368 115,423 110,478 107,536 107,599 107,654 110,710 116,767 122,824 133,878 148,931 163,984 184,1033 211,1080 237,1126 270,1166 310,1201 349,1235 397,1262 452,1282 507,1302 572,1312 645,1312 670,1312 695,1311 720,1308 745,1305 769,1301 790,1296 811,1291 829,1285 844,1279 859,1273 868,1268 873,1265 878,1261 881,1257 884,1253 886,1248 888,1244 889,1239 890,1234 891,1228 892,1222 893,1215 893,1207 893,1198 893,1186 893,1176 893,1167 892,1158 891,1151 889,1146 886,1141 883,1137 880,1134 876,1131 871,1130 865,1130 858,1130 848,1132 835,1137 822,1142 807,1147 789,1153 771,1158 749,1163 724,1168 698,1173 668,1175 634,1175 572,1175 519,1162 474,1137 429,1112 393,1078 365,1035 336,992 315,943 302,887 288,830 280,771 278,710 295,720 315,730 337,740 358,750 382,759 408,767 433,775 460,782 489,787 518,792 548,794 581,794 651,794 710,785 758,766 806,747 845,720 875,687 904,653 925,613 938,568 951,522 957,472 957,419 Z M 783,403 C 783,442 779,477 772,509 764,540 751,567 733,589 715,611 691,628 661,640 631,652 594,658 550,658 525,658 501,656 476,652 451,647 428,641 405,634 382,626 360,617 339,607 318,596 298,585 281,573 281,487 287,415 298,357 309,299 325,253 346,218 367,183 393,158 424,143 455,128 492,120 534,120 577,120 614,128 645,144 676,160 702,182 723,209 744,236 759,266 769,300 778,333 783,368 783,403 Z"/>
- <glyph unicode="5" horiz-adv-x="848" d="M 918,416 C 918,347 906,285 883,231 860,177 827,132 784,95 741,58 691,29 632,10 573,-9 507,-19 435,-19 395,-19 357,-16 321,-11 285,-5 253,2 225,11 197,19 174,27 156,35 138,43 127,49 122,54 117,59 113,63 111,67 109,71 107,76 106,82 104,87 103,94 102,103 101,112 101,122 101,134 101,145 102,156 103,165 104,174 105,181 108,187 111,192 114,196 118,199 121,202 125,203 130,203 137,203 147,199 161,191 175,182 194,173 218,164 241,154 271,145 306,136 341,127 382,123 430,123 475,123 516,128 553,139 590,150 623,166 650,189 677,212 698,240 713,275 728,309 736,351 736,400 736,441 730,478 717,510 704,541 684,568 657,589 630,610 595,625 554,636 513,646 463,651 406,651 365,651 330,649 301,645 272,641 244,639 219,639 200,639 187,643 179,652 171,661 167,677 167,702 L 167,1229 C 167,1251 172,1267 183,1278 193,1289 208,1294 227,1294 L 800,1294 C 805,1294 811,1293 816,1290 821,1287 825,1282 828,1276 831,1270 834,1262 836,1253 837,1244 838,1233 838,1220 838,1196 835,1177 828,1164 821,1151 812,1144 800,1144 L 317,1144 317,781 C 340,784 364,786 389,787 413,788 441,788 473,788 547,788 612,779 667,762 722,744 769,719 806,687 843,654 871,615 890,569 909,523 918,472 918,416 Z"/>
- <glyph unicode="4" horiz-adv-x="951" d="M 979,368 C 979,346 976,329 969,316 962,303 953,297 941,297 L 795,297 795,25 C 795,20 794,15 791,12 788,8 784,5 777,2 770,-1 762,-3 751,-4 740,-5 727,-6 710,-6 694,-6 681,-5 670,-4 659,-3 651,-1 645,2 638,5 634,8 632,12 629,15 628,20 628,25 L 628,297 94,297 C 86,297 79,298 74,300 69,302 64,306 60,311 55,316 52,324 51,334 49,344 48,357 48,373 48,386 48,397 49,407 50,417 51,426 53,435 55,443 58,451 61,459 64,466 68,474 73,483 L 539,1269 C 542,1274 547,1279 554,1283 560,1287 568,1290 578,1293 588,1296 600,1298 615,1299 630,1300 647,1300 667,1300 689,1300 708,1299 725,1298 741,1296 754,1294 764,1291 774,1288 782,1285 787,1281 792,1276 795,1271 795,1265 L 795,439 941,439 C 952,439 962,433 969,422 976,410 979,392 979,368 Z M 628,1149 L 626,1149 205,439 628,439 Z"/>
- <glyph unicode="3" horiz-adv-x="831" d="M 914,370 C 914,311 904,257 883,210 862,162 833,121 794,87 755,53 708,27 651,9 594,-10 530,-19 459,-19 416,-19 375,-16 338,-9 300,-2 266,7 237,17 208,26 183,36 164,47 145,57 133,64 128,69 123,74 119,78 116,83 113,88 111,93 109,100 107,107 106,115 105,125 104,134 103,146 103,160 103,184 105,201 110,210 115,219 121,224 130,224 136,224 148,219 166,208 183,197 206,186 234,174 261,161 294,150 331,139 368,128 409,123 454,123 498,123 537,129 570,140 603,151 631,167 654,188 677,209 694,233 705,262 716,290 722,321 722,354 722,391 715,424 701,453 686,482 665,508 638,529 610,550 576,567 536,578 495,589 449,595 398,595 L 275,595 C 270,595 265,596 260,599 255,601 250,605 247,610 243,615 240,622 238,631 235,640 234,651 234,665 234,678 235,688 237,697 239,705 242,712 246,717 249,722 253,725 258,728 263,730 268,731 274,731 L 387,731 C 431,731 471,737 506,748 541,759 570,776 595,797 619,818 638,844 651,874 664,903 670,936 670,973 670,1000 666,1025 657,1050 648,1074 635,1095 618,1113 601,1131 579,1145 552,1156 525,1166 493,1171 458,1171 419,1171 384,1165 352,1154 319,1142 290,1129 265,1116 240,1103 219,1090 202,1079 185,1067 174,1061 167,1061 162,1061 158,1062 155,1064 151,1065 148,1069 146,1074 143,1079 142,1086 141,1095 140,1104 139,1115 139,1130 139,1140 139,1149 140,1157 141,1164 142,1171 144,1177 146,1182 148,1187 151,1192 154,1197 158,1202 165,1209 171,1215 184,1224 203,1236 222,1248 246,1260 275,1272 303,1283 336,1293 373,1301 410,1309 449,1313 492,1313 552,1313 605,1305 650,1290 695,1275 733,1253 764,1225 794,1197 817,1164 832,1125 847,1086 854,1042 854,995 854,954 849,917 838,882 827,847 812,816 791,789 770,762 745,739 715,720 685,701 650,687 611,680 L 611,678 C 656,673 697,662 734,645 771,627 802,605 829,578 856,551 877,520 892,485 907,449 914,411 914,370 Z"/>
- <glyph unicode="2" horiz-adv-x="830" d="M 924,74 C 924,62 923,51 922,42 920,33 918,25 915,19 912,12 908,8 903,5 898,2 892,0 886,0 L 171,0 C 162,0 154,1 147,4 140,6 134,10 129,15 124,20 120,28 118,38 115,48 114,60 114,75 114,88 115,100 116,110 117,120 119,129 122,137 125,144 130,152 135,160 140,167 146,175 154,184 L 405,450 C 463,511 510,566 545,615 580,664 607,708 626,748 645,788 657,824 663,857 669,890 672,920 672,949 672,978 667,1005 658,1031 649,1056 635,1079 618,1098 600,1117 578,1133 551,1144 524,1155 494,1161 459,1161 418,1161 382,1155 350,1144 317,1133 289,1120 265,1107 240,1094 220,1081 204,1070 187,1059 175,1053 167,1053 162,1053 158,1054 155,1057 151,1060 148,1064 146,1070 143,1076 141,1084 140,1094 139,1104 138,1116 138,1130 138,1140 138,1149 139,1156 140,1163 141,1170 143,1175 144,1180 146,1185 149,1190 152,1195 157,1201 165,1208 173,1215 187,1224 207,1236 226,1248 251,1260 281,1272 310,1283 343,1293 379,1301 414,1309 452,1313 491,1313 554,1313 609,1304 656,1287 703,1269 742,1245 773,1214 804,1183 827,1148 842,1107 857,1066 865,1023 865,977 865,936 861,895 854,854 847,813 831,768 808,721 784,673 750,620 705,562 660,503 601,436 527,360 L 322,146 885,146 C 890,146 896,145 901,142 906,139 910,134 914,128 917,122 920,115 922,106 923,97 924,86 924,74 Z"/>
- <glyph unicode="1" horiz-adv-x="761" d="M 927,68 C 927,55 926,45 924,36 922,27 919,20 916,15 913,10 909,6 905,4 900,1 896,0 891,0 L 215,0 C 210,0 206,1 202,4 198,6 194,10 191,15 187,20 184,27 182,36 180,45 179,55 179,68 179,80 180,90 182,99 184,108 187,115 190,121 193,126 196,131 201,134 205,137 210,138 215,138 L 485,138 485,1122 235,973 C 222,966 212,962 205,961 197,960 191,961 186,966 181,970 178,977 177,987 175,997 174,1010 174,1025 174,1036 175,1046 176,1054 177,1062 178,1069 180,1074 182,1079 185,1084 189,1088 192,1092 197,1096 203,1100 L 501,1291 C 504,1293 507,1295 511,1296 515,1297 520,1299 526,1300 532,1301 539,1302 547,1303 555,1303 565,1303 577,1303 593,1303 606,1302 617,1301 628,1300 636,1298 642,1296 648,1293 652,1290 654,1287 656,1283 657,1279 657,1275 L 657,138 891,138 C 896,138 901,137 906,134 911,131 915,126 918,121 921,115 923,108 925,99 926,90 927,80 927,68 Z"/>
- <glyph unicode="0" horiz-adv-x="900" d="M 967,650 C 967,551 959,460 944,378 928,296 902,226 866,167 829,108 782,62 723,30 664,-3 592,-19 506,-19 425,-19 356,-5 301,25 245,54 200,96 166,153 132,209 108,278 94,361 79,443 72,537 72,644 72,743 80,833 96,916 112,998 138,1069 174,1128 210,1187 257,1232 316,1265 375,1297 447,1313 532,1313 614,1313 683,1299 739,1270 794,1241 839,1198 873,1142 907,1085 931,1016 946,934 960,851 967,757 967,650 Z M 791,638 C 791,703 789,761 784,812 779,863 773,909 764,948 755,987 743,1021 729,1050 714,1078 697,1101 677,1120 657,1138 634,1151 609,1160 583,1168 554,1172 522,1172 465,1172 419,1159 384,1132 349,1105 321,1069 301,1022 280,975 266,921 259,858 252,795 248,728 248,656 248,559 253,477 263,410 273,342 289,287 311,244 332,201 360,170 394,151 427,132 468,122 516,122 553,122 586,128 615,140 643,152 667,169 688,192 708,214 725,241 738,272 751,303 762,338 770,376 778,414 784,455 787,500 790,544 791,590 791,638 Z"/>
- <glyph unicode="-" horiz-adv-x="519" d="M 558,505 C 558,479 555,461 549,451 543,441 534,436 523,436 L 105,436 C 93,436 84,441 78,452 72,462 69,480 69,505 69,530 72,548 78,558 84,568 93,573 105,573 L 523,573 C 528,573 533,572 538,570 542,568 546,564 549,559 552,553 554,546 556,537 557,528 558,518 558,505 Z"/>
- <glyph unicode=")" horiz-adv-x="381" d="M 487,537 C 487,462 482,387 473,314 464,240 450,167 431,95 412,23 390,-48 363,-118 336,-187 304,-256 268,-324 266,-327 263,-330 259,-333 255,-336 250,-338 244,-340 237,-342 230,-343 221,-344 212,-345 202,-345 190,-345 173,-345 159,-344 150,-343 140,-341 133,-338 129,-335 124,-331 122,-326 123,-321 123,-315 125,-308 128,-300 189,-165 236,-28 267,114 298,255 314,397 314,540 314,683 298,825 267,966 236,1107 189,1244 126,1378 123,1384 122,1390 123,1395 124,1400 127,1405 132,1408 137,1411 145,1414 154,1416 163,1418 176,1419 191,1419 205,1419 217,1419 226,1418 235,1417 243,1415 249,1413 254,1411 258,1409 261,1407 264,1405 266,1403 267,1400 336,1263 390,1123 429,979 468,834 487,687 487,537 Z"/>
- <glyph unicode="(" horiz-adv-x="381" d="M 495,1378 C 432,1244 385,1107 354,966 323,825 307,683 307,540 307,397 323,255 355,114 386,-27 432,-165 493,-300 496,-308 498,-315 499,-321 499,-326 497,-331 492,-335 487,-338 480,-341 471,-343 461,-344 448,-345 431,-345 419,-345 409,-345 400,-344 391,-343 384,-342 378,-340 371,-338 366,-336 362,-333 358,-330 355,-327 353,-324 317,-256 285,-187 258,-118 231,-48 208,23 189,95 170,167 156,240 147,314 138,387 133,462 133,537 133,612 138,687 149,760 159,833 174,906 193,979 212,1051 235,1122 262,1192 289,1262 320,1331 354,1400 355,1403 357,1405 360,1407 363,1409 367,1411 372,1413 377,1415 385,1417 394,1418 403,1419 415,1419 430,1419 445,1419 458,1418 467,1416 476,1414 484,1411 489,1408 494,1405 497,1400 498,1395 499,1390 498,1384 495,1378 Z"/>
- <glyph unicode=" " horiz-adv-x="467"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150 id151 id152 id153 id154 id155 id156 id157 id158 id159 id160 id161 id162 id163 id164 id165 id166 id167 id168 id169 id170 id171 id172 id173 id174 id175 id176 id177 id178 id179 id180 id181 id182 id183 id184 id185 id186 id187 id188 id189 id190 id191 id192 id193 id194 id195 id196 id197 id198 id199 id200 id201 id202 id203 id204 id205 id206 id207 id208 id209 id210 id211 id212 id213 id214 id215 id216 id217 id218 id219 id220 id221 id222 id223 id224 id225 id226 id227 id228 id229 id230 id231 id232 id233"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="Group">
- <g class="com.sun.star.drawing.LineShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="3014" y="7286" width="108" height="1971"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="miter" d="M 3067,7287 L 3068,9255"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="3619" y="7284" width="108" height="1972"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="miter" d="M 3672,7285 L 3673,9254"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.LineShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="6314" y="7286" width="108" height="1971"/>
- <path fill="none" stroke="rgb(99,160,215)" stroke-width="106" stroke-linejoin="miter" d="M 6367,7287 L 6368,9255"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="6919" y="7284" width="108" height="1971"/>
- <path fill="none" stroke="rgb(99,160,215)" stroke-width="106" stroke-linejoin="miter" d="M 6972,7285 L 6973,9253"/>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="500" y="1629" width="9086" height="12584"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="9" stroke-linejoin="miter" d="M 5043,14207 L 505,14207 505,1634 9580,1634 9580,14207 5043,14207 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="1372" y="10285" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 4992,10303 L 8594,10303 8594,13481 1390,13481 1390,10303 4992,10303 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4992,10303 L 8594,10303 8594,13481 1390,13481 1390,10303 4992,10303 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="7203" y="10069" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 7656,10512 L 7212,10512 7212,10078 8099,10078 8099,10512 7656,10512 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7656,10512 L 7212,10512 7212,10078 8099,10078 8099,10512 7656,10512 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7381" y="10441"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="7956" y="9299" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7979,10017 L 7974,9317"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7979,10017 L 7979,10017 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7974,9317 L 7974,9317 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="7882" y="10009" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7966,10018 L 8040,10018 8040,10117 7891,10117 7891,10018 7966,10018 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7966,10018 L 8040,10018 8040,10117 7891,10117 7891,10018 7966,10018 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="7239" y="10012" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7323,10021 L 7397,10021 7397,10120 7248,10120 7248,10021 7323,10021 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7323,10021 L 7397,10021 7397,10120 7248,10120 7248,10021 7323,10021 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="7303" y="9254" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7321,10020 L 7323,9272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7321,10020 L 7321,10020 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7323,9272 L 7323,9272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="7727" y="9251" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7745,10015 L 7747,9269"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7745,10015 L 7745,10015 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7747,9269 L 7747,9269 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="7662" y="10007" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7746,10016 L 7820,10016 7820,10115 7671,10115 7671,10016 7746,10016 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7746,10016 L 7820,10016 7820,10115 7671,10115 7671,10016 7746,10016 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="7451" y="10009" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7535,10018 L 7609,10018 7609,10117 7460,10117 7460,10018 7535,10018 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7535,10018 L 7609,10018 7609,10117 7460,10117 7460,10018 7535,10018 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="7524" y="9251" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7548,10017 L 7542,9269"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7548,10017 L 7548,10017 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7542,9269 L 7542,9269 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="5281" y="11251" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 6699,12435 L 5299,12435 5299,11269 8099,11269 8099,12435 6699,12435 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 6699,12435 L 5299,12435 5299,11269 8099,11269 8099,12435 6699,12435 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6160" y="11573"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6050" y="11926"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5768" y="12279"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="6238" y="10072" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 6691,10515 L 6247,10515 6247,10081 7134,10081 7134,10515 6691,10515 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6691,10515 L 6247,10515 6247,10081 7134,10081 7134,10515 6691,10515 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6416" y="10444"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="6992" y="9256" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7015,10020 L 7010,9274"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7015,10020 L 7015,10020 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7010,9274 L 7010,9274 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="6918" y="10012" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7002,10021 L 7076,10021 7076,10120 6927,10120 6927,10021 7002,10021 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7002,10021 L 7076,10021 7076,10120 6927,10120 6927,10021 7002,10021 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="6274" y="10014" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6358,10023 L 6432,10023 6432,10122 6283,10122 6283,10023 6358,10023 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6358,10023 L 6432,10023 6432,10122 6283,10122 6283,10023 6358,10023 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="6339" y="9256" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6357,10022 L 6359,9274"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6357,10022 L 6357,10022 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6359,9274 L 6359,9274 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="6763" y="9254" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6781,10018 L 6783,9272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6781,10018 L 6781,10018 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6783,9272 L 6783,9272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="6697" y="10010" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6781,10019 L 6855,10019 6855,10118 6706,10118 6706,10019 6781,10019 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6781,10019 L 6855,10019 6855,10118 6706,10118 6706,10019 6781,10019 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="6486" y="10012" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6570,10021 L 6644,10021 6644,10120 6495,10120 6495,10021 6570,10021 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6570,10021 L 6644,10021 6644,10120 6495,10120 6495,10021 6570,10021 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="6559" y="9254" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6583,10020 L 6577,9272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6583,10020 L 6583,10020 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6577,9272 L 6577,9272 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="5289" y="10074" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 5742,10517 L 5298,10517 5298,10083 6185,10083 6185,10517 5742,10517 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 5742,10517 L 5298,10517 5298,10083 6185,10083 6185,10517 5742,10517 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5467" y="10446"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="6043" y="9258" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6066,10022 L 6061,9276"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6066,10022 L 6066,10022 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6061,9276 L 6061,9276 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="5969" y="10014" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6053,10023 L 6127,10023 6127,10122 5978,10122 5978,10023 6053,10023 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6053,10023 L 6127,10023 6127,10122 5978,10122 5978,10023 6053,10023 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="5325" y="10016" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5409,10025 L 5483,10025 5483,10124 5334,10124 5334,10025 5409,10025 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5409,10025 L 5483,10025 5483,10124 5334,10124 5334,10025 5409,10025 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="5390" y="9306" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5408,10024 L 5410,9324"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5408,10024 L 5408,10024 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5410,9324 L 5410,9324 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="5814" y="9256" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5832,10020 L 5834,9274"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5832,10020 L 5832,10020 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5834,9274 L 5834,9274 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="5748" y="10012" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5832,10021 L 5906,10021 5906,10120 5757,10120 5757,10021 5832,10021 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5832,10021 L 5906,10021 5906,10120 5757,10120 5757,10021 5832,10021 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="5537" y="10014" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5621,10023 L 5695,10023 5695,10122 5546,10122 5546,10023 5621,10023 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5621,10023 L 5695,10023 5695,10122 5546,10122 5546,10023 5621,10023 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="5610" y="9256" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5634,10022 L 5628,9274"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5634,10022 L 5634,10022 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5628,9274 L 5628,9274 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="7349" y="10519" width="557" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 7627,10519 L 7904,10680 7766,10680 7766,11090 7904,11090 7627,11252 7349,11090 7488,11090 7488,10680 7349,10680 7627,10519 Z M 7904,10519 L 7904,10519 Z M 7349,11252 L 7349,11252 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="7388" y="10716" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 7626,11059 L 7388,11059 7388,10716 7863,10716 7863,11059 7626,11059 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7397" y="11001"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="6372" y="10523" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 6650,10523 L 6927,10684 6789,10684 6789,11094 6927,11094 6650,11256 6372,11094 6511,11094 6511,10684 6372,10684 6650,10523 Z M 6927,10523 L 6927,10523 Z M 6372,11256 L 6372,11256 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="6410" y="10720" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 6648,11063 L 6410,11063 6410,10720 6885,10720 6885,11063 6648,11063 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6419" y="11005"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="5418" y="10532" width="558" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 5697,10532 L 5974,10693 5836,10693 5836,11103 5974,11103 5697,11265 5419,11103 5558,11103 5558,10693 5419,10693 5697,10532 Z M 5974,10532 L 5974,10532 Z M 5419,11265 L 5419,11265 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="5458" y="10729" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 5696,11072 L 5458,11072 5458,10729 5933,10729 5933,11072 5696,11072 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5467" y="11014"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="1962" y="11266" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 3380,12450 L 1980,12450 1980,11284 4780,11284 4780,12450 3380,12450 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3380,12450 L 1980,12450 1980,11284 4780,11284 4780,12450 3380,12450 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2841" y="11588"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2731" y="11941"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2449" y="12294"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="3888" y="10075" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 4341,10518 L 3897,10518 3897,10084 4784,10084 4784,10518 4341,10518 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 4341,10518 L 3897,10518 3897,10084 4784,10084 4784,10518 4341,10518 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4066" y="10447"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="4642" y="9305" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4665,10023 L 4660,9323"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4665,10023 L 4665,10023 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4660,9323 L 4660,9323 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="4568" y="10015" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4652,10024 L 4726,10024 4726,10123 4577,10123 4577,10024 4652,10024 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4652,10024 L 4726,10024 4726,10123 4577,10123 4577,10024 4652,10024 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="3924" y="10017" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4008,10026 L 4082,10026 4082,10125 3933,10125 3933,10026 4008,10026 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4008,10026 L 4082,10026 4082,10125 3933,10125 3933,10026 4008,10026 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="3989" y="9259" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4007,10025 L 4009,9277"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4007,10025 L 4007,10025 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4009,9277 L 4009,9277 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="4413" y="9257" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4431,10021 L 4433,9275"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4431,10021 L 4431,10021 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4433,9275 L 4433,9275 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="4347" y="10013" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4431,10022 L 4505,10022 4505,10121 4356,10121 4356,10022 4431,10022 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4431,10022 L 4505,10022 4505,10121 4356,10121 4356,10022 4431,10022 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="4136" y="10015" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4220,10024 L 4294,10024 4294,10123 4145,10123 4145,10024 4220,10024 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4220,10024 L 4294,10024 4294,10123 4145,10123 4145,10024 4220,10024 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="4209" y="9257" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4233,10023 L 4227,9275"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4233,10023 L 4233,10023 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4227,9275 L 4227,9275 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="2924" y="10077" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 3377,10520 L 2933,10520 2933,10086 3820,10086 3820,10520 3377,10520 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 3377,10520 L 2933,10520 2933,10086 3820,10086 3820,10520 3377,10520 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3102" y="10449"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="3677" y="9261" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3700,10025 L 3695,9279"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3700,10025 L 3700,10025 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3695,9279 L 3695,9279 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="3603" y="10017" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3687,10026 L 3761,10026 3761,10125 3612,10125 3612,10026 3687,10026 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3687,10026 L 3761,10026 3761,10125 3612,10125 3612,10026 3687,10026 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="2959" y="10019" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3043,10028 L 3117,10028 3117,10127 2968,10127 2968,10028 3043,10028 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3043,10028 L 3117,10028 3117,10127 2968,10127 2968,10028 3043,10028 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="3024" y="9261" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3042,10027 L 3044,9279"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3042,10027 L 3042,10027 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3044,9279 L 3044,9279 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="3448" y="9259" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3466,10023 L 3468,9277"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3466,10023 L 3466,10023 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3468,9277 L 3468,9277 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="3383" y="10015" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3467,10024 L 3541,10024 3541,10123 3392,10123 3392,10024 3467,10024 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3467,10024 L 3541,10024 3541,10123 3392,10123 3392,10024 3467,10024 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="3172" y="10017" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3256,10026 L 3330,10026 3330,10125 3181,10125 3181,10026 3256,10026 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3256,10026 L 3330,10026 3330,10125 3181,10125 3181,10026 3256,10026 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="3245" y="9259" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3269,10025 L 3263,9277"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3269,10025 L 3269,10025 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3263,9277 L 3263,9277 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="1975" y="10079" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 2428,10522 L 1984,10522 1984,10088 2871,10088 2871,10522 2428,10522 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 2428,10522 L 1984,10522 1984,10088 2871,10088 2871,10522 2428,10522 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2153" y="10451"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="2728" y="9263" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2751,10027 L 2746,9281"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2751,10027 L 2751,10027 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2746,9281 L 2746,9281 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="2654" y="10019" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2738,10028 L 2812,10028 2812,10127 2663,10127 2663,10028 2738,10028 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2738,10028 L 2812,10028 2812,10127 2663,10127 2663,10028 2738,10028 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="2011" y="10021" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2095,10030 L 2169,10030 2169,10129 2020,10129 2020,10030 2095,10030 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2095,10030 L 2169,10030 2169,10129 2020,10129 2020,10030 2095,10030 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="2076" y="9311" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2094,10029 L 2096,9329"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2094,10029 L 2094,10029 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2096,9329 L 2096,9329 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="2499" y="9261" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2517,10025 L 2519,9279"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2517,10025 L 2517,10025 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2519,9279 L 2519,9279 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="2434" y="10017" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2518,10026 L 2592,10026 2592,10125 2443,10125 2443,10026 2518,10026 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2518,10026 L 2592,10026 2592,10125 2443,10125 2443,10026 2518,10026 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="2223" y="10019" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2307,10028 L 2381,10028 2381,10127 2232,10127 2232,10028 2307,10028 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2307,10028 L 2381,10028 2381,10127 2232,10127 2232,10028 2307,10028 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="2296" y="9261" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2320,10027 L 2314,9279"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2320,10027 L 2320,10027 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2314,9279 L 2314,9279 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="4035" y="10524" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 4313,10524 L 4590,10685 4452,10685 4452,11095 4590,11095 4313,11257 4035,11095 4174,11095 4174,10685 4035,10685 4313,10524 Z M 4590,10524 L 4590,10524 Z M 4035,11257 L 4035,11257 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="4073" y="10721" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 4311,11064 L 4073,11064 4073,10721 4548,10721 4548,11064 4311,11064 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4082" y="11006"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="3057" y="10529" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 3335,10529 L 3612,10690 3474,10690 3474,11100 3612,11100 3335,11262 3057,11100 3196,11100 3196,10690 3057,10690 3335,10529 Z M 3612,10529 L 3612,10529 Z M 3057,11262 L 3057,11262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id74">
- <rect class="BoundingBox" stroke="none" fill="none" x="3096" y="10726" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 3334,11069 L 3096,11069 3096,10726 3571,10726 3571,11069 3334,11069 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3105" y="11011"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id75">
- <rect class="BoundingBox" stroke="none" fill="none" x="2105" y="10537" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 2383,10537 L 2660,10698 2522,10698 2522,11108 2660,11108 2383,11270 2105,11108 2244,11108 2244,10698 2105,10698 2383,10537 Z M 2660,10537 L 2660,10537 Z M 2105,11270 L 2105,11270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id76">
- <rect class="BoundingBox" stroke="none" fill="none" x="2143" y="10735" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 2381,11078 L 2143,11078 2143,10735 2618,10735 2618,11078 2381,11078 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2152" y="11020"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id77">
- <rect class="BoundingBox" stroke="none" fill="none" x="5367" y="9162" width="2666" height="234"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 5420,9342 L 5420,9342 5420,9335 5420,9329 5421,9322 5421,9316 5422,9310 5423,9303 5423,9297 5425,9291 5426,9285 5427,9279 5428,9274 5430,9268 5432,9263 5433,9258 5435,9254 5437,9249 5439,9245 5441,9241 5443,9237 5446,9234 5448,9231 5450,9228 5453,9225 5455,9223 5458,9221 5460,9220 5463,9219 5466,9218 5468,9217 5471,9217 7927,9215 7927,9215 7930,9215 7932,9216 7935,9217 7938,9218 7940,9219 7943,9221 7945,9223 7948,9226 7950,9229 7952,9232 7955,9235 7957,9239 7959,9243 7961,9247 7963,9252 7965,9257 7966,9262 7968,9267 7970,9272 7971,9278 7972,9284 7973,9290 7975,9296 7975,9302 7976,9308 7977,9315 7977,9321 7978,9328 7978,9334 7978,9341"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 5420,9342 L 5420,9342 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7979,9215 L 7979,9215 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id78">
- <rect class="BoundingBox" stroke="none" fill="none" x="2048" y="9171" width="2666" height="234"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2101,9351 L 2101,9351 2101,9344 2101,9338 2102,9331 2102,9325 2103,9319 2104,9312 2104,9306 2106,9300 2107,9294 2108,9288 2109,9283 2111,9277 2113,9272 2114,9267 2116,9263 2118,9258 2120,9254 2122,9250 2124,9246 2127,9243 2129,9240 2131,9237 2134,9234 2136,9232 2139,9230 2141,9229 2144,9228 2147,9227 2149,9226 2152,9226 4608,9224 4608,9224 4611,9224 4613,9225 4616,9226 4619,9227 4621,9228 4624,9230 4626,9232 4629,9235 4631,9238 4633,9241 4636,9244 4638,9248 4640,9252 4642,9256 4644,9261 4646,9266 4647,9271 4649,9276 4651,9281 4652,9287 4653,9293 4654,9299 4656,9305 4656,9311 4657,9317 4658,9324 4658,9330 4659,9337 4659,9343 4659,9350"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2101,9351 L 2101,9351 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 4660,9224 L 4660,9224 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id79">
- <rect class="BoundingBox" stroke="none" fill="none" x="1440" y="12462" width="1219" height="930"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1440" y="12850"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1440" y="13315"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id80">
- <rect class="BoundingBox" stroke="none" fill="none" x="2145" y="1325" width="5598" height="670"/>
- <g>
- <defs>
- <linearGradient id="gradient1" x1="4943" y1="1334" x2="4943" y2="1985" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient1)" d="M 4944,1985 L 2154,1985 2154,1334 7733,1334 7733,1985 4944,1985 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 4944,1985 L 2154,1985 2154,1334 7733,1334 7733,1985 4944,1985 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2404" y="1775"><tspan fill="rgb(0,0,0)" stroke="none">2-Node Xeon Skylake (2n-skx)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id81">
- <rect class="BoundingBox" stroke="none" fill="none" x="3061" y="13463" width="4221" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="3313" y="14011"><tspan fill="rgb(32,56,100)" stroke="none">Traffic Generator (TG)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id82">
- <rect class="BoundingBox" stroke="none" fill="none" x="4726" y="12610" width="1147" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4976" y="13017"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id83">
- <rect class="BoundingBox" stroke="none" fill="none" x="4066" y="12660" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4359,12730 L 4359,12730 4359,12734 4359,12737 4358,12741 4357,12744 4357,12748 4356,12751 4354,12755 4353,12758 4351,12761 4350,12765 4348,12768 4346,12771 4344,12773 4341,12776 4339,12779 4336,12781 4333,12784 4331,12786 4328,12788 4324,12790 4321,12791 4318,12793 4315,12794 4311,12796 4308,12797 4304,12797 4301,12798 4297,12799 4294,12799 4290,12799 4136,12799 4136,12799 4132,12799 4129,12799 4125,12798 4122,12797 4118,12797 4115,12796 4111,12794 4108,12793 4105,12791 4101,12790 4098,12788 4095,12786 4093,12784 4090,12781 4087,12779 4085,12776 4082,12773 4080,12771 4078,12768 4076,12764 4075,12761 4073,12758 4072,12755 4070,12751 4069,12748 4069,12744 4068,12741 4067,12737 4067,12734 4067,12730 4066,12730 4067,12730 4067,12726 4067,12723 4068,12719 4068,12716 4069,12712 4070,12709 4071,12705 4073,12702 4074,12699 4076,12696 4078,12693 4080,12690 4082,12687 4084,12684 4087,12682 4089,12679 4092,12677 4095,12675 4098,12672 4101,12671 4104,12669 4107,12667 4111,12666 4114,12665 4117,12664 4121,12663 4124,12662 4128,12661 4131,12661 4135,12661 4290,12660 4290,12661 4294,12661 4297,12661 4301,12662 4304,12662 4308,12663 4311,12664 4315,12665 4318,12667 4321,12668 4324,12670 4327,12672 4330,12674 4333,12676 4336,12678 4338,12681 4341,12683 4343,12686 4345,12689 4348,12692 4349,12695 4351,12698 4353,12701 4354,12705 4355,12708 4356,12711 4357,12715 4358,12718 4359,12722 4359,12725 4359,12729 4359,12730 Z M 4359,12799 L 4359,12799 Z M 4066,12660 L 4066,12660 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id84">
- <rect class="BoundingBox" stroke="none" fill="none" x="4066" y="12860" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4359,12930 L 4359,12930 4359,12934 4359,12937 4358,12941 4357,12944 4357,12948 4356,12951 4354,12955 4353,12958 4351,12961 4350,12965 4348,12968 4346,12971 4344,12973 4341,12976 4339,12979 4336,12981 4333,12984 4331,12986 4328,12988 4324,12990 4321,12991 4318,12993 4315,12994 4311,12996 4308,12997 4304,12997 4301,12998 4297,12999 4294,12999 4290,12999 4136,12999 4136,12999 4132,12999 4129,12999 4125,12998 4122,12997 4118,12997 4115,12996 4111,12994 4108,12993 4105,12991 4101,12990 4098,12988 4095,12986 4093,12984 4090,12981 4087,12979 4085,12976 4082,12973 4080,12971 4078,12968 4076,12964 4075,12961 4073,12958 4072,12955 4070,12951 4069,12948 4069,12944 4068,12941 4067,12937 4067,12934 4067,12930 4066,12930 4067,12930 4067,12926 4067,12923 4068,12919 4068,12916 4069,12912 4070,12909 4071,12905 4073,12902 4074,12899 4076,12896 4078,12893 4080,12890 4082,12887 4084,12884 4087,12882 4089,12879 4092,12877 4095,12875 4098,12872 4101,12871 4104,12869 4107,12867 4111,12866 4114,12865 4117,12864 4121,12863 4124,12862 4128,12861 4131,12861 4135,12861 4290,12860 4290,12861 4294,12861 4297,12861 4301,12862 4304,12862 4308,12863 4311,12864 4315,12865 4318,12867 4321,12868 4324,12870 4327,12872 4330,12874 4333,12876 4336,12878 4338,12881 4341,12883 4343,12886 4345,12889 4348,12892 4349,12895 4351,12898 4353,12901 4354,12905 4355,12908 4356,12911 4357,12915 4358,12918 4359,12922 4359,12925 4359,12929 4359,12930 Z M 4359,12999 L 4359,12999 Z M 4066,12860 L 4066,12860 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id85">
- <rect class="BoundingBox" stroke="none" fill="none" x="4066" y="13059" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4359,13129 L 4359,13129 4359,13133 4359,13136 4358,13140 4357,13143 4357,13147 4356,13150 4354,13154 4353,13157 4351,13160 4350,13164 4348,13167 4346,13170 4344,13172 4341,13175 4339,13178 4336,13180 4333,13183 4331,13185 4328,13187 4324,13189 4321,13190 4318,13192 4315,13193 4311,13195 4308,13196 4304,13196 4301,13197 4297,13198 4294,13198 4290,13198 4136,13198 4136,13198 4132,13198 4129,13198 4125,13197 4122,13196 4118,13196 4115,13195 4111,13193 4108,13192 4105,13190 4101,13189 4098,13187 4095,13185 4093,13183 4090,13180 4087,13178 4085,13175 4082,13172 4080,13170 4078,13167 4076,13163 4075,13160 4073,13157 4072,13154 4070,13150 4069,13147 4069,13143 4068,13140 4067,13136 4067,13133 4067,13129 4066,13129 4067,13129 4067,13125 4067,13122 4068,13118 4068,13115 4069,13111 4070,13108 4071,13104 4073,13101 4074,13098 4076,13095 4078,13092 4080,13089 4082,13086 4084,13083 4087,13081 4089,13078 4092,13076 4095,13074 4098,13071 4101,13070 4104,13068 4107,13066 4111,13065 4114,13064 4117,13063 4121,13062 4124,13061 4128,13060 4131,13060 4135,13060 4290,13059 4290,13060 4294,13060 4297,13060 4301,13061 4304,13061 4308,13062 4311,13063 4315,13064 4318,13066 4321,13067 4324,13069 4327,13071 4330,13073 4333,13075 4336,13077 4338,13080 4341,13082 4343,13085 4345,13088 4348,13091 4349,13094 4351,13097 4353,13100 4354,13104 4355,13107 4356,13110 4357,13114 4358,13117 4359,13121 4359,13124 4359,13128 4359,13129 Z M 4359,13198 L 4359,13198 Z M 4066,13059 L 4066,13059 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id86">
- <rect class="BoundingBox" stroke="none" fill="none" x="3717" y="12660" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4010,12730 L 4010,12730 4010,12734 4010,12737 4009,12741 4008,12744 4008,12748 4007,12751 4005,12755 4004,12758 4002,12761 4001,12765 3999,12768 3997,12771 3995,12773 3992,12776 3990,12779 3987,12781 3984,12784 3982,12786 3979,12788 3975,12790 3972,12791 3969,12793 3966,12794 3962,12796 3959,12797 3955,12797 3952,12798 3948,12799 3945,12799 3941,12799 3787,12799 3787,12799 3783,12799 3780,12799 3776,12798 3773,12797 3769,12797 3766,12796 3762,12794 3759,12793 3756,12791 3752,12790 3749,12788 3746,12786 3744,12784 3741,12781 3738,12779 3736,12776 3733,12773 3731,12771 3729,12768 3727,12764 3726,12761 3724,12758 3723,12755 3721,12751 3720,12748 3720,12744 3719,12741 3718,12737 3718,12734 3718,12730 3717,12730 3718,12730 3718,12726 3718,12723 3719,12719 3719,12716 3720,12712 3721,12709 3722,12705 3724,12702 3725,12699 3727,12696 3729,12693 3731,12690 3733,12687 3735,12684 3738,12682 3740,12679 3743,12677 3746,12675 3749,12672 3752,12671 3755,12669 3758,12667 3762,12666 3765,12665 3768,12664 3772,12663 3775,12662 3779,12661 3782,12661 3786,12661 3941,12660 3941,12661 3945,12661 3948,12661 3952,12662 3955,12662 3959,12663 3962,12664 3966,12665 3969,12667 3972,12668 3975,12670 3978,12672 3981,12674 3984,12676 3987,12678 3989,12681 3992,12683 3994,12686 3996,12689 3999,12692 4000,12695 4002,12698 4004,12701 4005,12705 4006,12708 4007,12711 4008,12715 4009,12718 4010,12722 4010,12725 4010,12729 4010,12730 Z M 4010,12799 L 4010,12799 Z M 3717,12660 L 3717,12660 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id87">
- <rect class="BoundingBox" stroke="none" fill="none" x="3717" y="12860" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4010,12930 L 4010,12930 4010,12934 4010,12937 4009,12941 4008,12944 4008,12948 4007,12951 4005,12955 4004,12958 4002,12961 4001,12965 3999,12968 3997,12971 3995,12973 3992,12976 3990,12979 3987,12981 3984,12984 3982,12986 3979,12988 3975,12990 3972,12991 3969,12993 3966,12994 3962,12996 3959,12997 3955,12997 3952,12998 3948,12999 3945,12999 3941,12999 3787,12999 3787,12999 3783,12999 3780,12999 3776,12998 3773,12997 3769,12997 3766,12996 3762,12994 3759,12993 3756,12991 3752,12990 3749,12988 3746,12986 3744,12984 3741,12981 3738,12979 3736,12976 3733,12973 3731,12971 3729,12968 3727,12964 3726,12961 3724,12958 3723,12955 3721,12951 3720,12948 3720,12944 3719,12941 3718,12937 3718,12934 3718,12930 3717,12930 3718,12930 3718,12926 3718,12923 3719,12919 3719,12916 3720,12912 3721,12909 3722,12905 3724,12902 3725,12899 3727,12896 3729,12893 3731,12890 3733,12887 3735,12884 3738,12882 3740,12879 3743,12877 3746,12875 3749,12872 3752,12871 3755,12869 3758,12867 3762,12866 3765,12865 3768,12864 3772,12863 3775,12862 3779,12861 3782,12861 3786,12861 3941,12860 3941,12861 3945,12861 3948,12861 3952,12862 3955,12862 3959,12863 3962,12864 3966,12865 3969,12867 3972,12868 3975,12870 3978,12872 3981,12874 3984,12876 3987,12878 3989,12881 3992,12883 3994,12886 3996,12889 3999,12892 4000,12895 4002,12898 4004,12901 4005,12905 4006,12908 4007,12911 4008,12915 4009,12918 4010,12922 4010,12925 4010,12929 4010,12930 Z M 4010,12999 L 4010,12999 Z M 3717,12860 L 3717,12860 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id88">
- <rect class="BoundingBox" stroke="none" fill="none" x="3717" y="13059" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4010,13129 L 4010,13129 4010,13133 4010,13136 4009,13140 4008,13143 4008,13147 4007,13150 4005,13154 4004,13157 4002,13160 4001,13164 3999,13167 3997,13170 3995,13172 3992,13175 3990,13178 3987,13180 3984,13183 3982,13185 3979,13187 3975,13189 3972,13190 3969,13192 3966,13193 3962,13195 3959,13196 3955,13196 3952,13197 3948,13198 3945,13198 3941,13198 3787,13198 3787,13198 3783,13198 3780,13198 3776,13197 3773,13196 3769,13196 3766,13195 3762,13193 3759,13192 3756,13190 3752,13189 3749,13187 3746,13185 3744,13183 3741,13180 3738,13178 3736,13175 3733,13172 3731,13170 3729,13167 3727,13163 3726,13160 3724,13157 3723,13154 3721,13150 3720,13147 3720,13143 3719,13140 3718,13136 3718,13133 3718,13129 3717,13129 3718,13129 3718,13125 3718,13122 3719,13118 3719,13115 3720,13111 3721,13108 3722,13104 3724,13101 3725,13098 3727,13095 3729,13092 3731,13089 3733,13086 3735,13083 3738,13081 3740,13078 3743,13076 3746,13074 3749,13071 3752,13070 3755,13068 3758,13066 3762,13065 3765,13064 3768,13063 3772,13062 3775,13061 3779,13060 3782,13060 3786,13060 3941,13059 3941,13060 3945,13060 3948,13060 3952,13061 3955,13061 3959,13062 3962,13063 3966,13064 3969,13066 3972,13067 3975,13069 3978,13071 3981,13073 3984,13075 3987,13077 3989,13080 3992,13082 3994,13085 3996,13088 3999,13091 4000,13094 4002,13097 4004,13100 4005,13104 4006,13107 4007,13110 4008,13114 4009,13117 4010,13121 4010,13124 4010,13128 4010,13129 Z M 4010,13198 L 4010,13198 Z M 3717,13059 L 3717,13059 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id89">
- <rect class="BoundingBox" stroke="none" fill="none" x="4396" y="12663" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4689,12733 L 4689,12733 4689,12737 4689,12740 4688,12744 4687,12747 4687,12751 4686,12754 4684,12758 4683,12761 4681,12764 4680,12768 4678,12771 4676,12774 4674,12776 4671,12779 4669,12782 4666,12784 4663,12787 4661,12789 4658,12791 4654,12793 4651,12794 4648,12796 4645,12797 4641,12799 4638,12800 4634,12800 4631,12801 4627,12802 4624,12802 4620,12802 4466,12802 4466,12802 4462,12802 4459,12802 4455,12801 4452,12800 4448,12800 4445,12799 4441,12797 4438,12796 4435,12794 4431,12793 4428,12791 4425,12789 4423,12787 4420,12784 4417,12782 4415,12779 4412,12776 4410,12774 4408,12771 4406,12767 4405,12764 4403,12761 4402,12758 4400,12754 4399,12751 4399,12747 4398,12744 4397,12740 4397,12737 4397,12733 4396,12733 4397,12733 4397,12729 4397,12726 4398,12722 4398,12719 4399,12715 4400,12712 4401,12708 4403,12705 4404,12702 4406,12699 4408,12696 4410,12693 4412,12690 4414,12687 4417,12685 4419,12682 4422,12680 4425,12678 4428,12675 4431,12674 4434,12672 4437,12670 4441,12669 4444,12668 4447,12667 4451,12666 4454,12665 4458,12664 4461,12664 4465,12664 4620,12663 4620,12664 4624,12664 4627,12664 4631,12665 4634,12665 4638,12666 4641,12667 4645,12668 4648,12670 4651,12671 4654,12673 4657,12675 4660,12677 4663,12679 4666,12681 4668,12684 4671,12686 4673,12689 4675,12692 4678,12695 4679,12698 4681,12701 4683,12704 4684,12708 4685,12711 4686,12714 4687,12718 4688,12721 4689,12725 4689,12728 4689,12732 4689,12733 Z M 4689,12802 L 4689,12802 Z M 4396,12663 L 4396,12663 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id90">
- <rect class="BoundingBox" stroke="none" fill="none" x="4396" y="12863" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4689,12933 L 4689,12933 4689,12937 4689,12940 4688,12944 4687,12947 4687,12951 4686,12954 4684,12958 4683,12961 4681,12964 4680,12968 4678,12971 4676,12974 4674,12976 4671,12979 4669,12982 4666,12984 4663,12987 4661,12989 4658,12991 4654,12993 4651,12994 4648,12996 4645,12997 4641,12999 4638,13000 4634,13000 4631,13001 4627,13002 4624,13002 4620,13002 4466,13002 4466,13002 4462,13002 4459,13002 4455,13001 4452,13000 4448,13000 4445,12999 4441,12997 4438,12996 4435,12994 4431,12993 4428,12991 4425,12989 4423,12987 4420,12984 4417,12982 4415,12979 4412,12976 4410,12974 4408,12971 4406,12967 4405,12964 4403,12961 4402,12958 4400,12954 4399,12951 4399,12947 4398,12944 4397,12940 4397,12937 4397,12933 4396,12933 4397,12933 4397,12929 4397,12926 4398,12922 4398,12919 4399,12915 4400,12912 4401,12908 4403,12905 4404,12902 4406,12899 4408,12896 4410,12893 4412,12890 4414,12887 4417,12885 4419,12882 4422,12880 4425,12878 4428,12875 4431,12874 4434,12872 4437,12870 4441,12869 4444,12868 4447,12867 4451,12866 4454,12865 4458,12864 4461,12864 4465,12864 4620,12863 4620,12864 4624,12864 4627,12864 4631,12865 4634,12865 4638,12866 4641,12867 4645,12868 4648,12870 4651,12871 4654,12873 4657,12875 4660,12877 4663,12879 4666,12881 4668,12884 4671,12886 4673,12889 4675,12892 4678,12895 4679,12898 4681,12901 4683,12904 4684,12908 4685,12911 4686,12914 4687,12918 4688,12921 4689,12925 4689,12928 4689,12932 4689,12933 Z M 4689,13002 L 4689,13002 Z M 4396,12863 L 4396,12863 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id91">
- <rect class="BoundingBox" stroke="none" fill="none" x="4396" y="13062" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4689,13132 L 4689,13132 4689,13136 4689,13139 4688,13143 4687,13146 4687,13150 4686,13153 4684,13157 4683,13160 4681,13163 4680,13167 4678,13170 4676,13173 4674,13175 4671,13178 4669,13181 4666,13183 4663,13186 4661,13188 4658,13190 4654,13192 4651,13193 4648,13195 4645,13196 4641,13198 4638,13199 4634,13199 4631,13200 4627,13201 4624,13201 4620,13201 4466,13201 4466,13201 4462,13201 4459,13201 4455,13200 4452,13199 4448,13199 4445,13198 4441,13196 4438,13195 4435,13193 4431,13192 4428,13190 4425,13188 4423,13186 4420,13183 4417,13181 4415,13178 4412,13175 4410,13173 4408,13170 4406,13166 4405,13163 4403,13160 4402,13157 4400,13153 4399,13150 4399,13146 4398,13143 4397,13139 4397,13136 4397,13132 4396,13132 4397,13132 4397,13128 4397,13125 4398,13121 4398,13118 4399,13114 4400,13111 4401,13107 4403,13104 4404,13101 4406,13098 4408,13095 4410,13092 4412,13089 4414,13086 4417,13084 4419,13081 4422,13079 4425,13077 4428,13074 4431,13073 4434,13071 4437,13069 4441,13068 4444,13067 4447,13066 4451,13065 4454,13064 4458,13063 4461,13063 4465,13063 4620,13062 4620,13063 4624,13063 4627,13063 4631,13064 4634,13064 4638,13065 4641,13066 4645,13067 4648,13069 4651,13070 4654,13072 4657,13074 4660,13076 4663,13078 4666,13080 4668,13083 4671,13085 4673,13088 4675,13091 4678,13094 4679,13097 4681,13100 4683,13103 4684,13107 4685,13110 4686,13113 4687,13117 4688,13120 4689,13124 4689,13127 4689,13131 4689,13132 Z M 4689,13201 L 4689,13201 Z M 4396,13062 L 4396,13062 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id92">
- <rect class="BoundingBox" stroke="none" fill="none" x="6430" y="12687" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6723,12757 L 6723,12757 6723,12761 6723,12764 6722,12768 6721,12771 6721,12775 6720,12778 6718,12782 6717,12785 6715,12788 6714,12792 6712,12795 6710,12798 6708,12800 6705,12803 6703,12806 6700,12808 6697,12811 6695,12813 6692,12815 6688,12817 6685,12818 6682,12820 6679,12821 6675,12823 6672,12824 6668,12824 6665,12825 6661,12826 6658,12826 6654,12826 6500,12826 6500,12826 6496,12826 6493,12826 6489,12825 6486,12824 6482,12824 6479,12823 6475,12821 6472,12820 6469,12818 6465,12817 6462,12815 6459,12813 6457,12811 6454,12808 6451,12806 6449,12803 6446,12800 6444,12798 6442,12795 6440,12791 6439,12788 6437,12785 6436,12782 6434,12778 6433,12775 6433,12771 6432,12768 6431,12764 6431,12761 6431,12757 6430,12757 6431,12757 6431,12753 6431,12750 6432,12746 6432,12743 6433,12739 6434,12736 6435,12732 6437,12729 6438,12726 6440,12723 6442,12720 6444,12717 6446,12714 6448,12711 6451,12709 6453,12706 6456,12704 6459,12702 6462,12699 6465,12698 6468,12696 6471,12694 6475,12693 6478,12692 6481,12691 6485,12690 6488,12689 6492,12688 6495,12688 6499,12688 6654,12687 6654,12688 6658,12688 6661,12688 6665,12689 6668,12689 6672,12690 6675,12691 6679,12692 6682,12694 6685,12695 6688,12697 6691,12699 6694,12701 6697,12703 6700,12705 6702,12708 6705,12710 6707,12713 6709,12716 6712,12719 6713,12722 6715,12725 6717,12728 6718,12732 6719,12735 6720,12738 6721,12742 6722,12745 6723,12749 6723,12752 6723,12756 6723,12757 Z M 6723,12826 L 6723,12826 Z M 6430,12687 L 6430,12687 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id93">
- <rect class="BoundingBox" stroke="none" fill="none" x="6430" y="12887" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6723,12957 L 6723,12957 6723,12961 6723,12964 6722,12968 6721,12971 6721,12975 6720,12978 6718,12982 6717,12985 6715,12988 6714,12992 6712,12995 6710,12998 6708,13000 6705,13003 6703,13006 6700,13008 6697,13011 6695,13013 6692,13015 6688,13017 6685,13018 6682,13020 6679,13021 6675,13023 6672,13024 6668,13024 6665,13025 6661,13026 6658,13026 6654,13026 6500,13026 6500,13026 6496,13026 6493,13026 6489,13025 6486,13024 6482,13024 6479,13023 6475,13021 6472,13020 6469,13018 6465,13017 6462,13015 6459,13013 6457,13011 6454,13008 6451,13006 6449,13003 6446,13000 6444,12998 6442,12995 6440,12991 6439,12988 6437,12985 6436,12982 6434,12978 6433,12975 6433,12971 6432,12968 6431,12964 6431,12961 6431,12957 6430,12957 6431,12957 6431,12953 6431,12950 6432,12946 6432,12943 6433,12939 6434,12936 6435,12932 6437,12929 6438,12926 6440,12923 6442,12920 6444,12917 6446,12914 6448,12911 6451,12909 6453,12906 6456,12904 6459,12902 6462,12899 6465,12898 6468,12896 6471,12894 6475,12893 6478,12892 6481,12891 6485,12890 6488,12889 6492,12888 6495,12888 6499,12888 6654,12887 6654,12888 6658,12888 6661,12888 6665,12889 6668,12889 6672,12890 6675,12891 6679,12892 6682,12894 6685,12895 6688,12897 6691,12899 6694,12901 6697,12903 6700,12905 6702,12908 6705,12910 6707,12913 6709,12916 6712,12919 6713,12922 6715,12925 6717,12928 6718,12932 6719,12935 6720,12938 6721,12942 6722,12945 6723,12949 6723,12952 6723,12956 6723,12957 Z M 6723,13026 L 6723,13026 Z M 6430,12887 L 6430,12887 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id94">
- <rect class="BoundingBox" stroke="none" fill="none" x="6430" y="13087" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6723,13157 L 6723,13157 6723,13161 6723,13164 6722,13168 6721,13171 6721,13175 6720,13178 6718,13182 6717,13185 6715,13188 6714,13192 6712,13195 6710,13198 6708,13200 6705,13203 6703,13206 6700,13208 6697,13211 6695,13213 6692,13215 6688,13217 6685,13218 6682,13220 6679,13221 6675,13223 6672,13224 6668,13224 6665,13225 6661,13226 6658,13226 6654,13226 6500,13226 6500,13226 6496,13226 6493,13226 6489,13225 6486,13224 6482,13224 6479,13223 6475,13221 6472,13220 6469,13218 6465,13217 6462,13215 6459,13213 6457,13211 6454,13208 6451,13206 6449,13203 6446,13200 6444,13198 6442,13195 6440,13191 6439,13188 6437,13185 6436,13182 6434,13178 6433,13175 6433,13171 6432,13168 6431,13164 6431,13161 6431,13157 6430,13157 6431,13157 6431,13153 6431,13150 6432,13146 6432,13143 6433,13139 6434,13136 6435,13132 6437,13129 6438,13126 6440,13123 6442,13120 6444,13117 6446,13114 6448,13111 6451,13109 6453,13106 6456,13104 6459,13102 6462,13099 6465,13098 6468,13096 6471,13094 6475,13093 6478,13092 6481,13091 6485,13090 6488,13089 6492,13088 6495,13088 6499,13088 6654,13087 6654,13088 6658,13088 6661,13088 6665,13089 6668,13089 6672,13090 6675,13091 6679,13092 6682,13094 6685,13095 6688,13097 6691,13099 6694,13101 6697,13103 6700,13105 6702,13108 6705,13110 6707,13113 6709,13116 6712,13119 6713,13122 6715,13125 6717,13128 6718,13132 6719,13135 6720,13138 6721,13142 6722,13145 6723,13149 6723,13152 6723,13156 6723,13157 Z M 6723,13226 L 6723,13226 Z M 6430,13087 L 6430,13087 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id95">
- <rect class="BoundingBox" stroke="none" fill="none" x="6081" y="12687" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6374,12757 L 6374,12757 6374,12761 6374,12764 6373,12768 6372,12771 6372,12775 6371,12778 6369,12782 6368,12785 6366,12788 6365,12792 6363,12795 6361,12798 6359,12800 6356,12803 6354,12806 6351,12808 6348,12811 6346,12813 6343,12815 6339,12817 6336,12818 6333,12820 6330,12821 6326,12823 6323,12824 6319,12824 6316,12825 6312,12826 6309,12826 6305,12826 6151,12826 6151,12826 6147,12826 6144,12826 6140,12825 6137,12824 6133,12824 6130,12823 6126,12821 6123,12820 6120,12818 6116,12817 6113,12815 6110,12813 6108,12811 6105,12808 6102,12806 6100,12803 6097,12800 6095,12798 6093,12795 6091,12791 6090,12788 6088,12785 6087,12782 6085,12778 6084,12775 6084,12771 6083,12768 6082,12764 6082,12761 6082,12757 6081,12757 6082,12757 6082,12753 6082,12750 6083,12746 6083,12743 6084,12739 6085,12736 6086,12732 6088,12729 6089,12726 6091,12723 6093,12720 6095,12717 6097,12714 6099,12711 6102,12709 6104,12706 6107,12704 6110,12702 6113,12699 6116,12698 6119,12696 6122,12694 6126,12693 6129,12692 6132,12691 6136,12690 6139,12689 6143,12688 6146,12688 6150,12688 6305,12687 6305,12688 6309,12688 6312,12688 6316,12689 6319,12689 6323,12690 6326,12691 6330,12692 6333,12694 6336,12695 6339,12697 6342,12699 6345,12701 6348,12703 6351,12705 6353,12708 6356,12710 6358,12713 6360,12716 6363,12719 6364,12722 6366,12725 6368,12728 6369,12732 6370,12735 6371,12738 6372,12742 6373,12745 6374,12749 6374,12752 6374,12756 6374,12757 Z M 6374,12826 L 6374,12826 Z M 6081,12687 L 6081,12687 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id96">
- <rect class="BoundingBox" stroke="none" fill="none" x="6081" y="12887" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6374,12957 L 6374,12957 6374,12961 6374,12964 6373,12968 6372,12971 6372,12975 6371,12978 6369,12982 6368,12985 6366,12988 6365,12992 6363,12995 6361,12998 6359,13000 6356,13003 6354,13006 6351,13008 6348,13011 6346,13013 6343,13015 6339,13017 6336,13018 6333,13020 6330,13021 6326,13023 6323,13024 6319,13024 6316,13025 6312,13026 6309,13026 6305,13026 6151,13026 6151,13026 6147,13026 6144,13026 6140,13025 6137,13024 6133,13024 6130,13023 6126,13021 6123,13020 6120,13018 6116,13017 6113,13015 6110,13013 6108,13011 6105,13008 6102,13006 6100,13003 6097,13000 6095,12998 6093,12995 6091,12991 6090,12988 6088,12985 6087,12982 6085,12978 6084,12975 6084,12971 6083,12968 6082,12964 6082,12961 6082,12957 6081,12957 6082,12957 6082,12953 6082,12950 6083,12946 6083,12943 6084,12939 6085,12936 6086,12932 6088,12929 6089,12926 6091,12923 6093,12920 6095,12917 6097,12914 6099,12911 6102,12909 6104,12906 6107,12904 6110,12902 6113,12899 6116,12898 6119,12896 6122,12894 6126,12893 6129,12892 6132,12891 6136,12890 6139,12889 6143,12888 6146,12888 6150,12888 6305,12887 6305,12888 6309,12888 6312,12888 6316,12889 6319,12889 6323,12890 6326,12891 6330,12892 6333,12894 6336,12895 6339,12897 6342,12899 6345,12901 6348,12903 6351,12905 6353,12908 6356,12910 6358,12913 6360,12916 6363,12919 6364,12922 6366,12925 6368,12928 6369,12932 6370,12935 6371,12938 6372,12942 6373,12945 6374,12949 6374,12952 6374,12956 6374,12957 Z M 6374,13026 L 6374,13026 Z M 6081,12887 L 6081,12887 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id97">
- <rect class="BoundingBox" stroke="none" fill="none" x="6081" y="13087" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6374,13157 L 6374,13157 6374,13161 6374,13164 6373,13168 6372,13171 6372,13175 6371,13178 6369,13182 6368,13185 6366,13188 6365,13192 6363,13195 6361,13198 6359,13200 6356,13203 6354,13206 6351,13208 6348,13211 6346,13213 6343,13215 6339,13217 6336,13218 6333,13220 6330,13221 6326,13223 6323,13224 6319,13224 6316,13225 6312,13226 6309,13226 6305,13226 6151,13226 6151,13226 6147,13226 6144,13226 6140,13225 6137,13224 6133,13224 6130,13223 6126,13221 6123,13220 6120,13218 6116,13217 6113,13215 6110,13213 6108,13211 6105,13208 6102,13206 6100,13203 6097,13200 6095,13198 6093,13195 6091,13191 6090,13188 6088,13185 6087,13182 6085,13178 6084,13175 6084,13171 6083,13168 6082,13164 6082,13161 6082,13157 6081,13157 6082,13157 6082,13153 6082,13150 6083,13146 6083,13143 6084,13139 6085,13136 6086,13132 6088,13129 6089,13126 6091,13123 6093,13120 6095,13117 6097,13114 6099,13111 6102,13109 6104,13106 6107,13104 6110,13102 6113,13099 6116,13098 6119,13096 6122,13094 6126,13093 6129,13092 6132,13091 6136,13090 6139,13089 6143,13088 6146,13088 6150,13088 6305,13087 6305,13088 6309,13088 6312,13088 6316,13089 6319,13089 6323,13090 6326,13091 6330,13092 6333,13094 6336,13095 6339,13097 6342,13099 6345,13101 6348,13103 6351,13105 6353,13108 6356,13110 6358,13113 6360,13116 6363,13119 6364,13122 6366,13125 6368,13128 6369,13132 6370,13135 6371,13138 6372,13142 6373,13145 6374,13149 6374,13152 6374,13156 6374,13157 Z M 6374,13226 L 6374,13226 Z M 6081,13087 L 6081,13087 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id98">
- <rect class="BoundingBox" stroke="none" fill="none" x="6760" y="12690" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7053,12760 L 7053,12760 7053,12764 7053,12767 7052,12771 7051,12774 7051,12778 7050,12781 7048,12785 7047,12788 7045,12791 7044,12795 7042,12798 7040,12801 7038,12803 7035,12806 7033,12809 7030,12811 7027,12814 7025,12816 7022,12818 7018,12820 7015,12821 7012,12823 7009,12824 7005,12826 7002,12827 6998,12827 6995,12828 6991,12829 6988,12829 6984,12829 6830,12829 6830,12829 6826,12829 6823,12829 6819,12828 6816,12827 6812,12827 6809,12826 6805,12824 6802,12823 6799,12821 6795,12820 6792,12818 6789,12816 6787,12814 6784,12811 6781,12809 6779,12806 6776,12803 6774,12801 6772,12798 6770,12794 6769,12791 6767,12788 6766,12785 6764,12781 6763,12778 6763,12774 6762,12771 6761,12767 6761,12764 6761,12760 6760,12760 6761,12760 6761,12756 6761,12753 6762,12749 6762,12746 6763,12742 6764,12739 6765,12735 6767,12732 6768,12729 6770,12726 6772,12723 6774,12720 6776,12717 6778,12714 6781,12712 6783,12709 6786,12707 6789,12705 6792,12702 6795,12701 6798,12699 6801,12697 6805,12696 6808,12695 6811,12694 6815,12693 6818,12692 6822,12691 6825,12691 6829,12691 6984,12690 6984,12691 6988,12691 6991,12691 6995,12692 6998,12692 7002,12693 7005,12694 7009,12695 7012,12697 7015,12698 7018,12700 7021,12702 7024,12704 7027,12706 7030,12708 7032,12711 7035,12713 7037,12716 7039,12719 7042,12722 7043,12725 7045,12728 7047,12731 7048,12735 7049,12738 7050,12741 7051,12745 7052,12748 7053,12752 7053,12755 7053,12759 7053,12760 Z M 7053,12829 L 7053,12829 Z M 6760,12690 L 6760,12690 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id99">
- <rect class="BoundingBox" stroke="none" fill="none" x="6760" y="12890" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7053,12960 L 7053,12960 7053,12964 7053,12967 7052,12971 7051,12974 7051,12978 7050,12981 7048,12985 7047,12988 7045,12991 7044,12995 7042,12998 7040,13001 7038,13003 7035,13006 7033,13009 7030,13011 7027,13014 7025,13016 7022,13018 7018,13020 7015,13021 7012,13023 7009,13024 7005,13026 7002,13027 6998,13027 6995,13028 6991,13029 6988,13029 6984,13029 6830,13029 6830,13029 6826,13029 6823,13029 6819,13028 6816,13027 6812,13027 6809,13026 6805,13024 6802,13023 6799,13021 6795,13020 6792,13018 6789,13016 6787,13014 6784,13011 6781,13009 6779,13006 6776,13003 6774,13001 6772,12998 6770,12994 6769,12991 6767,12988 6766,12985 6764,12981 6763,12978 6763,12974 6762,12971 6761,12967 6761,12964 6761,12960 6760,12960 6761,12960 6761,12956 6761,12953 6762,12949 6762,12946 6763,12942 6764,12939 6765,12935 6767,12932 6768,12929 6770,12926 6772,12923 6774,12920 6776,12917 6778,12914 6781,12912 6783,12909 6786,12907 6789,12905 6792,12902 6795,12901 6798,12899 6801,12897 6805,12896 6808,12895 6811,12894 6815,12893 6818,12892 6822,12891 6825,12891 6829,12891 6984,12890 6984,12891 6988,12891 6991,12891 6995,12892 6998,12892 7002,12893 7005,12894 7009,12895 7012,12897 7015,12898 7018,12900 7021,12902 7024,12904 7027,12906 7030,12908 7032,12911 7035,12913 7037,12916 7039,12919 7042,12922 7043,12925 7045,12928 7047,12931 7048,12935 7049,12938 7050,12941 7051,12945 7052,12948 7053,12952 7053,12955 7053,12959 7053,12960 Z M 7053,13029 L 7053,13029 Z M 6760,12890 L 6760,12890 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id100">
- <rect class="BoundingBox" stroke="none" fill="none" x="6760" y="13090" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7053,13160 L 7053,13160 7053,13164 7053,13167 7052,13171 7051,13174 7051,13178 7050,13181 7048,13185 7047,13188 7045,13191 7044,13195 7042,13198 7040,13201 7038,13203 7035,13206 7033,13209 7030,13211 7027,13214 7025,13216 7022,13218 7018,13220 7015,13221 7012,13223 7009,13224 7005,13226 7002,13227 6998,13227 6995,13228 6991,13229 6988,13229 6984,13229 6830,13229 6830,13229 6826,13229 6823,13229 6819,13228 6816,13227 6812,13227 6809,13226 6805,13224 6802,13223 6799,13221 6795,13220 6792,13218 6789,13216 6787,13214 6784,13211 6781,13209 6779,13206 6776,13203 6774,13201 6772,13198 6770,13194 6769,13191 6767,13188 6766,13185 6764,13181 6763,13178 6763,13174 6762,13171 6761,13167 6761,13164 6761,13160 6760,13160 6761,13160 6761,13156 6761,13153 6762,13149 6762,13146 6763,13142 6764,13139 6765,13135 6767,13132 6768,13129 6770,13126 6772,13123 6774,13120 6776,13117 6778,13114 6781,13112 6783,13109 6786,13107 6789,13105 6792,13102 6795,13101 6798,13099 6801,13097 6805,13096 6808,13095 6811,13094 6815,13093 6818,13092 6822,13091 6825,13091 6829,13091 6984,13090 6984,13091 6988,13091 6991,13091 6995,13092 6998,13092 7002,13093 7005,13094 7009,13095 7012,13097 7015,13098 7018,13100 7021,13102 7024,13104 7027,13106 7030,13108 7032,13111 7035,13113 7037,13116 7039,13119 7042,13122 7043,13125 7045,13128 7047,13131 7048,13135 7049,13138 7050,13141 7051,13145 7052,13148 7053,13152 7053,13155 7053,13159 7053,13160 Z M 7053,13229 L 7053,13229 Z M 6760,13090 L 6760,13090 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id101">
- <rect class="BoundingBox" stroke="none" fill="none" x="7488" y="12686" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7781,12756 L 7781,12756 7781,12760 7781,12763 7780,12767 7779,12770 7779,12774 7778,12777 7776,12781 7775,12784 7773,12787 7772,12791 7770,12794 7768,12797 7766,12799 7763,12802 7761,12805 7758,12807 7755,12810 7753,12812 7750,12814 7746,12816 7743,12817 7740,12819 7737,12820 7733,12822 7730,12823 7726,12823 7723,12824 7719,12825 7716,12825 7712,12825 7558,12825 7558,12825 7554,12825 7551,12825 7547,12824 7544,12823 7540,12823 7537,12822 7533,12820 7530,12819 7527,12817 7523,12816 7520,12814 7517,12812 7515,12810 7512,12807 7509,12805 7507,12802 7504,12799 7502,12797 7500,12794 7498,12790 7497,12787 7495,12784 7494,12781 7492,12777 7491,12774 7491,12770 7490,12767 7489,12763 7489,12760 7489,12756 7488,12756 7489,12756 7489,12752 7489,12749 7490,12745 7490,12742 7491,12738 7492,12735 7493,12731 7495,12728 7496,12725 7498,12722 7500,12719 7502,12716 7504,12713 7506,12710 7509,12708 7511,12705 7514,12703 7517,12701 7520,12698 7523,12697 7526,12695 7529,12693 7533,12692 7536,12691 7539,12690 7543,12689 7546,12688 7550,12687 7553,12687 7557,12687 7712,12686 7712,12687 7716,12687 7719,12687 7723,12688 7726,12688 7730,12689 7733,12690 7737,12691 7740,12693 7743,12694 7746,12696 7749,12698 7752,12700 7755,12702 7758,12704 7760,12707 7763,12709 7765,12712 7767,12715 7770,12718 7771,12721 7773,12724 7775,12727 7776,12731 7777,12734 7778,12737 7779,12741 7780,12744 7781,12748 7781,12751 7781,12755 7781,12756 Z M 7781,12825 L 7781,12825 Z M 7488,12686 L 7488,12686 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id102">
- <rect class="BoundingBox" stroke="none" fill="none" x="7488" y="12885" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7781,12955 L 7781,12955 7781,12959 7781,12962 7780,12966 7779,12969 7779,12973 7778,12976 7776,12980 7775,12983 7773,12986 7772,12990 7770,12993 7768,12996 7766,12998 7763,13001 7761,13004 7758,13006 7755,13009 7753,13011 7750,13013 7746,13015 7743,13016 7740,13018 7737,13019 7733,13021 7730,13022 7726,13022 7723,13023 7719,13024 7716,13024 7712,13024 7558,13024 7558,13024 7554,13024 7551,13024 7547,13023 7544,13022 7540,13022 7537,13021 7533,13019 7530,13018 7527,13016 7523,13015 7520,13013 7517,13011 7515,13009 7512,13006 7509,13004 7507,13001 7504,12998 7502,12996 7500,12993 7498,12989 7497,12986 7495,12983 7494,12980 7492,12976 7491,12973 7491,12969 7490,12966 7489,12962 7489,12959 7489,12955 7488,12955 7489,12955 7489,12951 7489,12948 7490,12944 7490,12941 7491,12937 7492,12934 7493,12930 7495,12927 7496,12924 7498,12921 7500,12918 7502,12915 7504,12912 7506,12909 7509,12907 7511,12904 7514,12902 7517,12900 7520,12897 7523,12896 7526,12894 7529,12892 7533,12891 7536,12890 7539,12889 7543,12888 7546,12887 7550,12886 7553,12886 7557,12886 7712,12885 7712,12886 7716,12886 7719,12886 7723,12887 7726,12887 7730,12888 7733,12889 7737,12890 7740,12892 7743,12893 7746,12895 7749,12897 7752,12899 7755,12901 7758,12903 7760,12906 7763,12908 7765,12911 7767,12914 7770,12917 7771,12920 7773,12923 7775,12926 7776,12930 7777,12933 7778,12936 7779,12940 7780,12943 7781,12947 7781,12950 7781,12954 7781,12955 Z M 7781,13024 L 7781,13024 Z M 7488,12885 L 7488,12885 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id103">
- <rect class="BoundingBox" stroke="none" fill="none" x="7488" y="13085" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7781,13155 L 7781,13155 7781,13159 7781,13162 7780,13166 7779,13169 7779,13173 7778,13176 7776,13180 7775,13183 7773,13186 7772,13190 7770,13193 7768,13196 7766,13198 7763,13201 7761,13204 7758,13206 7755,13209 7753,13211 7750,13213 7746,13215 7743,13216 7740,13218 7737,13219 7733,13221 7730,13222 7726,13222 7723,13223 7719,13224 7716,13224 7712,13224 7558,13224 7558,13224 7554,13224 7551,13224 7547,13223 7544,13222 7540,13222 7537,13221 7533,13219 7530,13218 7527,13216 7523,13215 7520,13213 7517,13211 7515,13209 7512,13206 7509,13204 7507,13201 7504,13198 7502,13196 7500,13193 7498,13189 7497,13186 7495,13183 7494,13180 7492,13176 7491,13173 7491,13169 7490,13166 7489,13162 7489,13159 7489,13155 7488,13155 7489,13155 7489,13151 7489,13148 7490,13144 7490,13141 7491,13137 7492,13134 7493,13130 7495,13127 7496,13124 7498,13121 7500,13118 7502,13115 7504,13112 7506,13109 7509,13107 7511,13104 7514,13102 7517,13100 7520,13097 7523,13096 7526,13094 7529,13092 7533,13091 7536,13090 7539,13089 7543,13088 7546,13087 7550,13086 7553,13086 7557,13086 7712,13085 7712,13086 7716,13086 7719,13086 7723,13087 7726,13087 7730,13088 7733,13089 7737,13090 7740,13092 7743,13093 7746,13095 7749,13097 7752,13099 7755,13101 7758,13103 7760,13106 7763,13108 7765,13111 7767,13114 7770,13117 7771,13120 7773,13123 7775,13126 7776,13130 7777,13133 7778,13136 7779,13140 7780,13143 7781,13147 7781,13150 7781,13154 7781,13155 Z M 7781,13224 L 7781,13224 Z M 7488,13085 L 7488,13085 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id104">
- <rect class="BoundingBox" stroke="none" fill="none" x="7139" y="12686" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7432,12756 L 7432,12756 7432,12760 7432,12763 7431,12767 7430,12770 7430,12774 7429,12777 7427,12781 7426,12784 7424,12787 7423,12791 7421,12794 7419,12797 7417,12799 7414,12802 7412,12805 7409,12807 7406,12810 7404,12812 7401,12814 7397,12816 7394,12817 7391,12819 7388,12820 7384,12822 7381,12823 7377,12823 7374,12824 7370,12825 7367,12825 7363,12825 7209,12825 7209,12825 7205,12825 7202,12825 7198,12824 7195,12823 7191,12823 7188,12822 7184,12820 7181,12819 7178,12817 7174,12816 7171,12814 7168,12812 7166,12810 7163,12807 7160,12805 7158,12802 7155,12799 7153,12797 7151,12794 7149,12790 7148,12787 7146,12784 7145,12781 7143,12777 7142,12774 7142,12770 7141,12767 7140,12763 7140,12760 7140,12756 7139,12756 7140,12756 7140,12752 7140,12749 7141,12745 7141,12742 7142,12738 7143,12735 7144,12731 7146,12728 7147,12725 7149,12722 7151,12719 7153,12716 7155,12713 7157,12710 7160,12708 7162,12705 7165,12703 7168,12701 7171,12698 7174,12697 7177,12695 7180,12693 7184,12692 7187,12691 7190,12690 7194,12689 7197,12688 7201,12687 7204,12687 7208,12687 7363,12686 7363,12687 7367,12687 7370,12687 7374,12688 7377,12688 7381,12689 7384,12690 7388,12691 7391,12693 7394,12694 7397,12696 7400,12698 7403,12700 7406,12702 7409,12704 7411,12707 7414,12709 7416,12712 7418,12715 7421,12718 7422,12721 7424,12724 7426,12727 7427,12731 7428,12734 7429,12737 7430,12741 7431,12744 7432,12748 7432,12751 7432,12755 7432,12756 Z M 7432,12825 L 7432,12825 Z M 7139,12686 L 7139,12686 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id105">
- <rect class="BoundingBox" stroke="none" fill="none" x="7139" y="12885" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7432,12955 L 7432,12955 7432,12959 7432,12962 7431,12966 7430,12969 7430,12973 7429,12976 7427,12980 7426,12983 7424,12986 7423,12990 7421,12993 7419,12996 7417,12998 7414,13001 7412,13004 7409,13006 7406,13009 7404,13011 7401,13013 7397,13015 7394,13016 7391,13018 7388,13019 7384,13021 7381,13022 7377,13022 7374,13023 7370,13024 7367,13024 7363,13024 7209,13024 7209,13024 7205,13024 7202,13024 7198,13023 7195,13022 7191,13022 7188,13021 7184,13019 7181,13018 7178,13016 7174,13015 7171,13013 7168,13011 7166,13009 7163,13006 7160,13004 7158,13001 7155,12998 7153,12996 7151,12993 7149,12989 7148,12986 7146,12983 7145,12980 7143,12976 7142,12973 7142,12969 7141,12966 7140,12962 7140,12959 7140,12955 7139,12955 7140,12955 7140,12951 7140,12948 7141,12944 7141,12941 7142,12937 7143,12934 7144,12930 7146,12927 7147,12924 7149,12921 7151,12918 7153,12915 7155,12912 7157,12909 7160,12907 7162,12904 7165,12902 7168,12900 7171,12897 7174,12896 7177,12894 7180,12892 7184,12891 7187,12890 7190,12889 7194,12888 7197,12887 7201,12886 7204,12886 7208,12886 7363,12885 7363,12886 7367,12886 7370,12886 7374,12887 7377,12887 7381,12888 7384,12889 7388,12890 7391,12892 7394,12893 7397,12895 7400,12897 7403,12899 7406,12901 7409,12903 7411,12906 7414,12908 7416,12911 7418,12914 7421,12917 7422,12920 7424,12923 7426,12926 7427,12930 7428,12933 7429,12936 7430,12940 7431,12943 7432,12947 7432,12950 7432,12954 7432,12955 Z M 7432,13024 L 7432,13024 Z M 7139,12885 L 7139,12885 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id106">
- <rect class="BoundingBox" stroke="none" fill="none" x="7139" y="13085" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7432,13155 L 7432,13155 7432,13159 7432,13162 7431,13166 7430,13169 7430,13173 7429,13176 7427,13180 7426,13183 7424,13186 7423,13190 7421,13193 7419,13196 7417,13198 7414,13201 7412,13204 7409,13206 7406,13209 7404,13211 7401,13213 7397,13215 7394,13216 7391,13218 7388,13219 7384,13221 7381,13222 7377,13222 7374,13223 7370,13224 7367,13224 7363,13224 7209,13224 7209,13224 7205,13224 7202,13224 7198,13223 7195,13222 7191,13222 7188,13221 7184,13219 7181,13218 7178,13216 7174,13215 7171,13213 7168,13211 7166,13209 7163,13206 7160,13204 7158,13201 7155,13198 7153,13196 7151,13193 7149,13189 7148,13186 7146,13183 7145,13180 7143,13176 7142,13173 7142,13169 7141,13166 7140,13162 7140,13159 7140,13155 7139,13155 7140,13155 7140,13151 7140,13148 7141,13144 7141,13141 7142,13137 7143,13134 7144,13130 7146,13127 7147,13124 7149,13121 7151,13118 7153,13115 7155,13112 7157,13109 7160,13107 7162,13104 7165,13102 7168,13100 7171,13097 7174,13096 7177,13094 7180,13092 7184,13091 7187,13090 7190,13089 7194,13088 7197,13087 7201,13086 7204,13086 7208,13086 7363,13085 7363,13086 7367,13086 7370,13086 7374,13087 7377,13087 7381,13088 7384,13089 7388,13090 7391,13092 7394,13093 7397,13095 7400,13097 7403,13099 7406,13101 7409,13103 7411,13106 7414,13108 7416,13111 7418,13114 7421,13117 7422,13120 7424,13123 7426,13126 7427,13130 7428,13133 7429,13136 7430,13140 7431,13143 7432,13147 7432,13150 7432,13154 7432,13155 Z M 7432,13224 L 7432,13224 Z M 7139,13085 L 7139,13085 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id107">
- <rect class="BoundingBox" stroke="none" fill="none" x="7819" y="12688" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8112,12758 L 8112,12758 8112,12762 8112,12765 8111,12769 8110,12772 8110,12776 8109,12779 8107,12783 8106,12786 8104,12789 8103,12793 8101,12796 8099,12799 8097,12801 8094,12804 8092,12807 8089,12809 8086,12812 8084,12814 8081,12816 8077,12818 8074,12819 8071,12821 8068,12822 8064,12824 8061,12825 8057,12825 8054,12826 8050,12827 8047,12827 8043,12827 7889,12827 7889,12827 7885,12827 7882,12827 7878,12826 7875,12825 7871,12825 7868,12824 7864,12822 7861,12821 7858,12819 7854,12818 7851,12816 7848,12814 7846,12812 7843,12809 7840,12807 7838,12804 7835,12801 7833,12799 7831,12796 7829,12792 7828,12789 7826,12786 7825,12783 7823,12779 7822,12776 7822,12772 7821,12769 7820,12765 7820,12762 7820,12758 7819,12758 7820,12758 7820,12754 7820,12751 7821,12747 7821,12744 7822,12740 7823,12737 7824,12733 7826,12730 7827,12727 7829,12724 7831,12721 7833,12718 7835,12715 7837,12712 7840,12710 7842,12707 7845,12705 7848,12703 7851,12700 7854,12699 7857,12697 7860,12695 7864,12694 7867,12693 7870,12692 7874,12691 7877,12690 7881,12689 7884,12689 7888,12689 8043,12688 8043,12689 8047,12689 8050,12689 8054,12690 8057,12690 8061,12691 8064,12692 8068,12693 8071,12695 8074,12696 8077,12698 8080,12700 8083,12702 8086,12704 8089,12706 8091,12709 8094,12711 8096,12714 8098,12717 8101,12720 8102,12723 8104,12726 8106,12729 8107,12733 8108,12736 8109,12739 8110,12743 8111,12746 8112,12750 8112,12753 8112,12757 8112,12758 Z M 8112,12827 L 8112,12827 Z M 7819,12688 L 7819,12688 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id108">
- <rect class="BoundingBox" stroke="none" fill="none" x="7819" y="12888" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8112,12958 L 8112,12958 8112,12962 8112,12965 8111,12969 8110,12972 8110,12976 8109,12979 8107,12983 8106,12986 8104,12989 8103,12993 8101,12996 8099,12999 8097,13001 8094,13004 8092,13007 8089,13009 8086,13012 8084,13014 8081,13016 8077,13018 8074,13019 8071,13021 8068,13022 8064,13024 8061,13025 8057,13025 8054,13026 8050,13027 8047,13027 8043,13027 7889,13027 7889,13027 7885,13027 7882,13027 7878,13026 7875,13025 7871,13025 7868,13024 7864,13022 7861,13021 7858,13019 7854,13018 7851,13016 7848,13014 7846,13012 7843,13009 7840,13007 7838,13004 7835,13001 7833,12999 7831,12996 7829,12992 7828,12989 7826,12986 7825,12983 7823,12979 7822,12976 7822,12972 7821,12969 7820,12965 7820,12962 7820,12958 7819,12958 7820,12958 7820,12954 7820,12951 7821,12947 7821,12944 7822,12940 7823,12937 7824,12933 7826,12930 7827,12927 7829,12924 7831,12921 7833,12918 7835,12915 7837,12912 7840,12910 7842,12907 7845,12905 7848,12903 7851,12900 7854,12899 7857,12897 7860,12895 7864,12894 7867,12893 7870,12892 7874,12891 7877,12890 7881,12889 7884,12889 7888,12889 8043,12888 8043,12889 8047,12889 8050,12889 8054,12890 8057,12890 8061,12891 8064,12892 8068,12893 8071,12895 8074,12896 8077,12898 8080,12900 8083,12902 8086,12904 8089,12906 8091,12909 8094,12911 8096,12914 8098,12917 8101,12920 8102,12923 8104,12926 8106,12929 8107,12933 8108,12936 8109,12939 8110,12943 8111,12946 8112,12950 8112,12953 8112,12957 8112,12958 Z M 8112,13027 L 8112,13027 Z M 7819,12888 L 7819,12888 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id109">
- <rect class="BoundingBox" stroke="none" fill="none" x="7819" y="13088" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8112,13158 L 8112,13158 8112,13162 8112,13165 8111,13169 8110,13172 8110,13176 8109,13179 8107,13183 8106,13186 8104,13189 8103,13193 8101,13196 8099,13199 8097,13201 8094,13204 8092,13207 8089,13209 8086,13212 8084,13214 8081,13216 8077,13218 8074,13219 8071,13221 8068,13222 8064,13224 8061,13225 8057,13225 8054,13226 8050,13227 8047,13227 8043,13227 7889,13227 7889,13227 7885,13227 7882,13227 7878,13226 7875,13225 7871,13225 7868,13224 7864,13222 7861,13221 7858,13219 7854,13218 7851,13216 7848,13214 7846,13212 7843,13209 7840,13207 7838,13204 7835,13201 7833,13199 7831,13196 7829,13192 7828,13189 7826,13186 7825,13183 7823,13179 7822,13176 7822,13172 7821,13169 7820,13165 7820,13162 7820,13158 7819,13158 7820,13158 7820,13154 7820,13151 7821,13147 7821,13144 7822,13140 7823,13137 7824,13133 7826,13130 7827,13127 7829,13124 7831,13121 7833,13118 7835,13115 7837,13112 7840,13110 7842,13107 7845,13105 7848,13103 7851,13100 7854,13099 7857,13097 7860,13095 7864,13094 7867,13093 7870,13092 7874,13091 7877,13090 7881,13089 7884,13089 7888,13089 8043,13088 8043,13089 8047,13089 8050,13089 8054,13090 8057,13090 8061,13091 8064,13092 8068,13093 8071,13095 8074,13096 8077,13098 8080,13100 8083,13102 8086,13104 8089,13106 8091,13109 8094,13111 8096,13114 8098,13117 8101,13120 8102,13123 8104,13126 8106,13129 8107,13133 8108,13136 8109,13139 8110,13143 8111,13146 8112,13150 8112,13153 8112,13157 8112,13158 Z M 8112,13227 L 8112,13227 Z M 7819,13088 L 7819,13088 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id110">
- <rect class="BoundingBox" stroke="none" fill="none" x="3046" y="12660" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3339,12730 L 3339,12730 3339,12734 3339,12737 3338,12741 3337,12744 3337,12748 3336,12751 3334,12755 3333,12758 3331,12761 3330,12765 3328,12768 3326,12771 3324,12773 3321,12776 3319,12779 3316,12781 3313,12784 3311,12786 3308,12788 3304,12790 3301,12791 3298,12793 3295,12794 3291,12796 3288,12797 3284,12797 3281,12798 3277,12799 3274,12799 3270,12799 3116,12799 3116,12799 3112,12799 3109,12799 3105,12798 3102,12797 3098,12797 3095,12796 3091,12794 3088,12793 3085,12791 3081,12790 3078,12788 3075,12786 3073,12784 3070,12781 3067,12779 3065,12776 3062,12773 3060,12771 3058,12768 3056,12764 3055,12761 3053,12758 3052,12755 3050,12751 3049,12748 3049,12744 3048,12741 3047,12737 3047,12734 3047,12730 3046,12730 3047,12730 3047,12726 3047,12723 3048,12719 3048,12716 3049,12712 3050,12709 3051,12705 3053,12702 3054,12699 3056,12696 3058,12693 3060,12690 3062,12687 3064,12684 3067,12682 3069,12679 3072,12677 3075,12675 3078,12672 3081,12671 3084,12669 3087,12667 3091,12666 3094,12665 3097,12664 3101,12663 3104,12662 3108,12661 3111,12661 3115,12661 3270,12660 3270,12661 3274,12661 3277,12661 3281,12662 3284,12662 3288,12663 3291,12664 3295,12665 3298,12667 3301,12668 3304,12670 3307,12672 3310,12674 3313,12676 3316,12678 3318,12681 3321,12683 3323,12686 3325,12689 3328,12692 3329,12695 3331,12698 3333,12701 3334,12705 3335,12708 3336,12711 3337,12715 3338,12718 3339,12722 3339,12725 3339,12729 3339,12730 Z M 3339,12799 L 3339,12799 Z M 3046,12660 L 3046,12660 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id111">
- <rect class="BoundingBox" stroke="none" fill="none" x="3046" y="12860" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3339,12930 L 3339,12930 3339,12934 3339,12937 3338,12941 3337,12944 3337,12948 3336,12951 3334,12955 3333,12958 3331,12961 3330,12965 3328,12968 3326,12971 3324,12973 3321,12976 3319,12979 3316,12981 3313,12984 3311,12986 3308,12988 3304,12990 3301,12991 3298,12993 3295,12994 3291,12996 3288,12997 3284,12997 3281,12998 3277,12999 3274,12999 3270,12999 3116,12999 3116,12999 3112,12999 3109,12999 3105,12998 3102,12997 3098,12997 3095,12996 3091,12994 3088,12993 3085,12991 3081,12990 3078,12988 3075,12986 3073,12984 3070,12981 3067,12979 3065,12976 3062,12973 3060,12971 3058,12968 3056,12964 3055,12961 3053,12958 3052,12955 3050,12951 3049,12948 3049,12944 3048,12941 3047,12937 3047,12934 3047,12930 3046,12930 3047,12930 3047,12926 3047,12923 3048,12919 3048,12916 3049,12912 3050,12909 3051,12905 3053,12902 3054,12899 3056,12896 3058,12893 3060,12890 3062,12887 3064,12884 3067,12882 3069,12879 3072,12877 3075,12875 3078,12872 3081,12871 3084,12869 3087,12867 3091,12866 3094,12865 3097,12864 3101,12863 3104,12862 3108,12861 3111,12861 3115,12861 3270,12860 3270,12861 3274,12861 3277,12861 3281,12862 3284,12862 3288,12863 3291,12864 3295,12865 3298,12867 3301,12868 3304,12870 3307,12872 3310,12874 3313,12876 3316,12878 3318,12881 3321,12883 3323,12886 3325,12889 3328,12892 3329,12895 3331,12898 3333,12901 3334,12905 3335,12908 3336,12911 3337,12915 3338,12918 3339,12922 3339,12925 3339,12929 3339,12930 Z M 3339,12999 L 3339,12999 Z M 3046,12860 L 3046,12860 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id112">
- <rect class="BoundingBox" stroke="none" fill="none" x="3046" y="13060" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3339,13130 L 3339,13130 3339,13134 3339,13137 3338,13141 3337,13144 3337,13148 3336,13151 3334,13155 3333,13158 3331,13161 3330,13165 3328,13168 3326,13171 3324,13173 3321,13176 3319,13179 3316,13181 3313,13184 3311,13186 3308,13188 3304,13190 3301,13191 3298,13193 3295,13194 3291,13196 3288,13197 3284,13197 3281,13198 3277,13199 3274,13199 3270,13199 3116,13199 3116,13199 3112,13199 3109,13199 3105,13198 3102,13197 3098,13197 3095,13196 3091,13194 3088,13193 3085,13191 3081,13190 3078,13188 3075,13186 3073,13184 3070,13181 3067,13179 3065,13176 3062,13173 3060,13171 3058,13168 3056,13164 3055,13161 3053,13158 3052,13155 3050,13151 3049,13148 3049,13144 3048,13141 3047,13137 3047,13134 3047,13130 3046,13130 3047,13130 3047,13126 3047,13123 3048,13119 3048,13116 3049,13112 3050,13109 3051,13105 3053,13102 3054,13099 3056,13096 3058,13093 3060,13090 3062,13087 3064,13084 3067,13082 3069,13079 3072,13077 3075,13075 3078,13072 3081,13071 3084,13069 3087,13067 3091,13066 3094,13065 3097,13064 3101,13063 3104,13062 3108,13061 3111,13061 3115,13061 3270,13060 3270,13061 3274,13061 3277,13061 3281,13062 3284,13062 3288,13063 3291,13064 3295,13065 3298,13067 3301,13068 3304,13070 3307,13072 3310,13074 3313,13076 3316,13078 3318,13081 3321,13083 3323,13086 3325,13089 3328,13092 3329,13095 3331,13098 3333,13101 3334,13105 3335,13108 3336,13111 3337,13115 3338,13118 3339,13122 3339,13125 3339,13129 3339,13130 Z M 3339,13199 L 3339,13199 Z M 3046,13060 L 3046,13060 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id113">
- <rect class="BoundingBox" stroke="none" fill="none" x="2697" y="12660" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 2990,12730 L 2990,12730 2990,12734 2990,12737 2989,12741 2988,12744 2988,12748 2987,12751 2985,12755 2984,12758 2982,12761 2981,12765 2979,12768 2977,12771 2975,12773 2972,12776 2970,12779 2967,12781 2964,12784 2962,12786 2959,12788 2955,12790 2952,12791 2949,12793 2946,12794 2942,12796 2939,12797 2935,12797 2932,12798 2928,12799 2925,12799 2921,12799 2767,12799 2767,12799 2763,12799 2760,12799 2756,12798 2753,12797 2749,12797 2746,12796 2742,12794 2739,12793 2736,12791 2732,12790 2729,12788 2726,12786 2724,12784 2721,12781 2718,12779 2716,12776 2713,12773 2711,12771 2709,12768 2707,12764 2706,12761 2704,12758 2703,12755 2701,12751 2700,12748 2700,12744 2699,12741 2698,12737 2698,12734 2698,12730 2697,12730 2698,12730 2698,12726 2698,12723 2699,12719 2699,12716 2700,12712 2701,12709 2702,12705 2704,12702 2705,12699 2707,12696 2709,12693 2711,12690 2713,12687 2715,12684 2718,12682 2720,12679 2723,12677 2726,12675 2729,12672 2732,12671 2735,12669 2738,12667 2742,12666 2745,12665 2748,12664 2752,12663 2755,12662 2759,12661 2762,12661 2766,12661 2921,12660 2921,12661 2925,12661 2928,12661 2932,12662 2935,12662 2939,12663 2942,12664 2946,12665 2949,12667 2952,12668 2955,12670 2958,12672 2961,12674 2964,12676 2967,12678 2969,12681 2972,12683 2974,12686 2976,12689 2979,12692 2980,12695 2982,12698 2984,12701 2985,12705 2986,12708 2987,12711 2988,12715 2989,12718 2990,12722 2990,12725 2990,12729 2990,12730 Z M 2990,12799 L 2990,12799 Z M 2697,12660 L 2697,12660 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id114">
- <rect class="BoundingBox" stroke="none" fill="none" x="2697" y="12860" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 2990,12930 L 2990,12930 2990,12934 2990,12937 2989,12941 2988,12944 2988,12948 2987,12951 2985,12955 2984,12958 2982,12961 2981,12965 2979,12968 2977,12971 2975,12973 2972,12976 2970,12979 2967,12981 2964,12984 2962,12986 2959,12988 2955,12990 2952,12991 2949,12993 2946,12994 2942,12996 2939,12997 2935,12997 2932,12998 2928,12999 2925,12999 2921,12999 2767,12999 2767,12999 2763,12999 2760,12999 2756,12998 2753,12997 2749,12997 2746,12996 2742,12994 2739,12993 2736,12991 2732,12990 2729,12988 2726,12986 2724,12984 2721,12981 2718,12979 2716,12976 2713,12973 2711,12971 2709,12968 2707,12964 2706,12961 2704,12958 2703,12955 2701,12951 2700,12948 2700,12944 2699,12941 2698,12937 2698,12934 2698,12930 2697,12930 2698,12930 2698,12926 2698,12923 2699,12919 2699,12916 2700,12912 2701,12909 2702,12905 2704,12902 2705,12899 2707,12896 2709,12893 2711,12890 2713,12887 2715,12884 2718,12882 2720,12879 2723,12877 2726,12875 2729,12872 2732,12871 2735,12869 2738,12867 2742,12866 2745,12865 2748,12864 2752,12863 2755,12862 2759,12861 2762,12861 2766,12861 2921,12860 2921,12861 2925,12861 2928,12861 2932,12862 2935,12862 2939,12863 2942,12864 2946,12865 2949,12867 2952,12868 2955,12870 2958,12872 2961,12874 2964,12876 2967,12878 2969,12881 2972,12883 2974,12886 2976,12889 2979,12892 2980,12895 2982,12898 2984,12901 2985,12905 2986,12908 2987,12911 2988,12915 2989,12918 2990,12922 2990,12925 2990,12929 2990,12930 Z M 2990,12999 L 2990,12999 Z M 2697,12860 L 2697,12860 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id115">
- <rect class="BoundingBox" stroke="none" fill="none" x="2697" y="13060" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 2990,13130 L 2990,13130 2990,13134 2990,13137 2989,13141 2988,13144 2988,13148 2987,13151 2985,13155 2984,13158 2982,13161 2981,13165 2979,13168 2977,13171 2975,13173 2972,13176 2970,13179 2967,13181 2964,13184 2962,13186 2959,13188 2955,13190 2952,13191 2949,13193 2946,13194 2942,13196 2939,13197 2935,13197 2932,13198 2928,13199 2925,13199 2921,13199 2767,13199 2767,13199 2763,13199 2760,13199 2756,13198 2753,13197 2749,13197 2746,13196 2742,13194 2739,13193 2736,13191 2732,13190 2729,13188 2726,13186 2724,13184 2721,13181 2718,13179 2716,13176 2713,13173 2711,13171 2709,13168 2707,13164 2706,13161 2704,13158 2703,13155 2701,13151 2700,13148 2700,13144 2699,13141 2698,13137 2698,13134 2698,13130 2697,13130 2698,13130 2698,13126 2698,13123 2699,13119 2699,13116 2700,13112 2701,13109 2702,13105 2704,13102 2705,13099 2707,13096 2709,13093 2711,13090 2713,13087 2715,13084 2718,13082 2720,13079 2723,13077 2726,13075 2729,13072 2732,13071 2735,13069 2738,13067 2742,13066 2745,13065 2748,13064 2752,13063 2755,13062 2759,13061 2762,13061 2766,13061 2921,13060 2921,13061 2925,13061 2928,13061 2932,13062 2935,13062 2939,13063 2942,13064 2946,13065 2949,13067 2952,13068 2955,13070 2958,13072 2961,13074 2964,13076 2967,13078 2969,13081 2972,13083 2974,13086 2976,13089 2979,13092 2980,13095 2982,13098 2984,13101 2985,13105 2986,13108 2987,13111 2988,13115 2989,13118 2990,13122 2990,13125 2990,13129 2990,13130 Z M 2990,13199 L 2990,13199 Z M 2697,13060 L 2697,13060 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id116">
- <rect class="BoundingBox" stroke="none" fill="none" x="3377" y="12663" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3670,12733 L 3670,12733 3670,12737 3670,12740 3669,12744 3668,12747 3668,12751 3667,12754 3665,12758 3664,12761 3662,12764 3661,12768 3659,12771 3657,12774 3655,12776 3652,12779 3650,12782 3647,12784 3644,12787 3642,12789 3639,12791 3635,12793 3632,12794 3629,12796 3626,12797 3622,12799 3619,12800 3615,12800 3612,12801 3608,12802 3605,12802 3601,12802 3447,12802 3447,12802 3443,12802 3440,12802 3436,12801 3433,12800 3429,12800 3426,12799 3422,12797 3419,12796 3416,12794 3412,12793 3409,12791 3406,12789 3404,12787 3401,12784 3398,12782 3396,12779 3393,12776 3391,12774 3389,12771 3387,12767 3386,12764 3384,12761 3383,12758 3381,12754 3380,12751 3380,12747 3379,12744 3378,12740 3378,12737 3378,12733 3377,12733 3378,12733 3378,12729 3378,12726 3379,12722 3379,12719 3380,12715 3381,12712 3382,12708 3384,12705 3385,12702 3387,12699 3389,12696 3391,12693 3393,12690 3395,12687 3398,12685 3400,12682 3403,12680 3406,12678 3409,12675 3412,12674 3415,12672 3418,12670 3422,12669 3425,12668 3428,12667 3432,12666 3435,12665 3439,12664 3442,12664 3446,12664 3601,12663 3601,12664 3605,12664 3608,12664 3612,12665 3615,12665 3619,12666 3622,12667 3626,12668 3629,12670 3632,12671 3635,12673 3638,12675 3641,12677 3644,12679 3647,12681 3649,12684 3652,12686 3654,12689 3656,12692 3659,12695 3660,12698 3662,12701 3664,12704 3665,12708 3666,12711 3667,12714 3668,12718 3669,12721 3670,12725 3670,12728 3670,12732 3670,12733 Z M 3670,12802 L 3670,12802 Z M 3377,12663 L 3377,12663 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id117">
- <rect class="BoundingBox" stroke="none" fill="none" x="3377" y="12863" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3670,12933 L 3670,12933 3670,12937 3670,12940 3669,12944 3668,12947 3668,12951 3667,12954 3665,12958 3664,12961 3662,12964 3661,12968 3659,12971 3657,12974 3655,12976 3652,12979 3650,12982 3647,12984 3644,12987 3642,12989 3639,12991 3635,12993 3632,12994 3629,12996 3626,12997 3622,12999 3619,13000 3615,13000 3612,13001 3608,13002 3605,13002 3601,13002 3447,13002 3447,13002 3443,13002 3440,13002 3436,13001 3433,13000 3429,13000 3426,12999 3422,12997 3419,12996 3416,12994 3412,12993 3409,12991 3406,12989 3404,12987 3401,12984 3398,12982 3396,12979 3393,12976 3391,12974 3389,12971 3387,12967 3386,12964 3384,12961 3383,12958 3381,12954 3380,12951 3380,12947 3379,12944 3378,12940 3378,12937 3378,12933 3377,12933 3378,12933 3378,12929 3378,12926 3379,12922 3379,12919 3380,12915 3381,12912 3382,12908 3384,12905 3385,12902 3387,12899 3389,12896 3391,12893 3393,12890 3395,12887 3398,12885 3400,12882 3403,12880 3406,12878 3409,12875 3412,12874 3415,12872 3418,12870 3422,12869 3425,12868 3428,12867 3432,12866 3435,12865 3439,12864 3442,12864 3446,12864 3601,12863 3601,12864 3605,12864 3608,12864 3612,12865 3615,12865 3619,12866 3622,12867 3626,12868 3629,12870 3632,12871 3635,12873 3638,12875 3641,12877 3644,12879 3647,12881 3649,12884 3652,12886 3654,12889 3656,12892 3659,12895 3660,12898 3662,12901 3664,12904 3665,12908 3666,12911 3667,12914 3668,12918 3669,12921 3670,12925 3670,12928 3670,12932 3670,12933 Z M 3670,13002 L 3670,13002 Z M 3377,12863 L 3377,12863 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id118">
- <rect class="BoundingBox" stroke="none" fill="none" x="3377" y="13063" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3670,13133 L 3670,13133 3670,13137 3670,13140 3669,13144 3668,13147 3668,13151 3667,13154 3665,13158 3664,13161 3662,13164 3661,13168 3659,13171 3657,13174 3655,13176 3652,13179 3650,13182 3647,13184 3644,13187 3642,13189 3639,13191 3635,13193 3632,13194 3629,13196 3626,13197 3622,13199 3619,13200 3615,13200 3612,13201 3608,13202 3605,13202 3601,13202 3447,13202 3447,13202 3443,13202 3440,13202 3436,13201 3433,13200 3429,13200 3426,13199 3422,13197 3419,13196 3416,13194 3412,13193 3409,13191 3406,13189 3404,13187 3401,13184 3398,13182 3396,13179 3393,13176 3391,13174 3389,13171 3387,13167 3386,13164 3384,13161 3383,13158 3381,13154 3380,13151 3380,13147 3379,13144 3378,13140 3378,13137 3378,13133 3377,13133 3378,13133 3378,13129 3378,13126 3379,13122 3379,13119 3380,13115 3381,13112 3382,13108 3384,13105 3385,13102 3387,13099 3389,13096 3391,13093 3393,13090 3395,13087 3398,13085 3400,13082 3403,13080 3406,13078 3409,13075 3412,13074 3415,13072 3418,13070 3422,13069 3425,13068 3428,13067 3432,13066 3435,13065 3439,13064 3442,13064 3446,13064 3601,13063 3601,13064 3605,13064 3608,13064 3612,13065 3615,13065 3619,13066 3622,13067 3626,13068 3629,13070 3632,13071 3635,13073 3638,13075 3641,13077 3644,13079 3647,13081 3649,13084 3652,13086 3654,13089 3656,13092 3659,13095 3660,13098 3662,13101 3664,13104 3665,13108 3666,13111 3667,13114 3668,13118 3669,13121 3670,13125 3670,13128 3670,13132 3670,13133 Z M 3670,13202 L 3670,13202 Z M 3377,13063 L 3377,13063 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id119">
- <rect class="BoundingBox" stroke="none" fill="none" x="1216" y="10369" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1466" y="10765"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1466" y="11112"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id120">
- <rect class="BoundingBox" stroke="none" fill="none" x="1236" y="2887" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 4856,6083 L 1254,6083 1254,2905 8458,2905 8458,6083 4856,6083 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4856,6083 L 1254,6083 1254,2905 8458,2905 8458,6083 4856,6083 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1354" y="3293"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1354" y="3758"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id121">
- <rect class="BoundingBox" stroke="none" fill="none" x="1946" y="5987" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 2399,6430 L 1955,6430 1955,5996 2842,5996 2842,6430 2399,6430 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 2399,6430 L 1955,6430 1955,5996 2842,5996 2842,6430 2399,6430 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2124" y="6294"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id122">
- <rect class="BoundingBox" stroke="none" fill="none" x="2059" y="6473" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2077,6491 L 2082,7191"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2077,6491 L 2077,6491 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2082,7191 L 2082,7191 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id123">
- <rect class="BoundingBox" stroke="none" fill="none" x="1980" y="6382" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2064,6490 L 1989,6490 1989,6391 2138,6391 2138,6490 2064,6490 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2064,6490 L 1989,6490 1989,6391 2138,6391 2138,6490 2064,6490 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id124">
- <rect class="BoundingBox" stroke="none" fill="none" x="2624" y="6380" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2708,6488 L 2633,6488 2633,6389 2782,6389 2782,6488 2708,6488 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2708,6488 L 2633,6488 2633,6389 2782,6389 2782,6488 2708,6488 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id125">
- <rect class="BoundingBox" stroke="none" fill="none" x="2688" y="6471" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2708,6489 L 2706,7237"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2708,6489 L 2708,6489 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2706,7237 L 2706,7237 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id126">
- <rect class="BoundingBox" stroke="none" fill="none" x="2264" y="6475" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2284,6493 L 2282,7239"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2284,6493 L 2284,6493 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2282,7239 L 2282,7239 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id127">
- <rect class="BoundingBox" stroke="none" fill="none" x="2200" y="6384" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2284,6492 L 2209,6492 2209,6393 2358,6393 2358,6492 2284,6492 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2284,6492 L 2209,6492 2209,6393 2358,6393 2358,6492 2284,6492 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id128">
- <rect class="BoundingBox" stroke="none" fill="none" x="2411" y="6382" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2495,6490 L 2420,6490 2420,6391 2569,6391 2569,6490 2495,6490 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2495,6490 L 2420,6490 2420,6391 2569,6391 2569,6490 2495,6490 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id129">
- <rect class="BoundingBox" stroke="none" fill="none" x="2489" y="6473" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2507,6491 L 2513,7239"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2507,6491 L 2507,6491 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2513,7239 L 2513,7239 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id130">
- <rect class="BoundingBox" stroke="none" fill="none" x="1938" y="4055" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 3356,5239 L 1956,5239 1956,4073 4756,4073 4756,5239 3356,5239 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3356,5239 L 1956,5239 1956,4073 4756,4073 4756,5239 3356,5239 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2817" y="4377"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2671" y="4730"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon </tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2425" y="5083"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id131">
- <rect class="BoundingBox" stroke="none" fill="none" x="2910" y="5985" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 3363,6428 L 2919,6428 2919,5994 3806,5994 3806,6428 3363,6428 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 3363,6428 L 2919,6428 2919,5994 3806,5994 3806,6428 3363,6428 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3088" y="6292"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id132">
- <rect class="BoundingBox" stroke="none" fill="none" x="3023" y="6471" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3041,6489 L 3046,7235"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3041,6489 L 3041,6489 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3046,7235 L 3046,7235 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id133">
- <rect class="BoundingBox" stroke="none" fill="none" x="2944" y="6380" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3028,6488 L 2953,6488 2953,6389 3102,6389 3102,6488 3028,6488 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3028,6488 L 2953,6488 2953,6389 3102,6389 3102,6488 3028,6488 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id134">
- <rect class="BoundingBox" stroke="none" fill="none" x="3588" y="6378" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3672,6486 L 3597,6486 3597,6387 3746,6387 3746,6486 3672,6486 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3672,6486 L 3597,6486 3597,6387 3746,6387 3746,6486 3672,6486 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id135">
- <rect class="BoundingBox" stroke="none" fill="none" x="3652" y="6469" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3672,6487 L 3670,7235"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3672,6487 L 3672,6487 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3670,7235 L 3670,7235 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id136">
- <rect class="BoundingBox" stroke="none" fill="none" x="3228" y="6473" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3248,6491 L 3246,7237"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3248,6491 L 3248,6491 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3246,7237 L 3246,7237 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id137">
- <rect class="BoundingBox" stroke="none" fill="none" x="3165" y="6382" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3249,6490 L 3174,6490 3174,6391 3323,6391 3323,6490 3249,6490 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3249,6490 L 3174,6490 3174,6391 3323,6391 3323,6490 3249,6490 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id138">
- <rect class="BoundingBox" stroke="none" fill="none" x="3376" y="6380" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3460,6488 L 3385,6488 3385,6389 3534,6389 3534,6488 3460,6488 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3460,6488 L 3385,6488 3385,6389 3534,6389 3534,6488 3460,6488 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id139">
- <rect class="BoundingBox" stroke="none" fill="none" x="3454" y="6471" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3472,6489 L 3478,7237"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3472,6489 L 3472,6489 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3478,7237 L 3478,7237 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id140">
- <rect class="BoundingBox" stroke="none" fill="none" x="3859" y="5983" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 4312,6426 L 3868,6426 3868,5992 4755,5992 4755,6426 4312,6426 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 4312,6426 L 3868,6426 3868,5992 4755,5992 4755,6426 4312,6426 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4037" y="6290"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id141">
- <rect class="BoundingBox" stroke="none" fill="none" x="3972" y="6469" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3990,6487 L 3995,7233"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3990,6487 L 3990,6487 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3995,7233 L 3995,7233 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id142">
- <rect class="BoundingBox" stroke="none" fill="none" x="3893" y="6378" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3977,6486 L 3902,6486 3902,6387 4051,6387 4051,6486 3977,6486 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3977,6486 L 3902,6486 3902,6387 4051,6387 4051,6486 3977,6486 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id143">
- <rect class="BoundingBox" stroke="none" fill="none" x="4537" y="6375" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4621,6483 L 4546,6483 4546,6384 4695,6384 4695,6483 4621,6483 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4621,6483 L 4546,6483 4546,6384 4695,6384 4695,6483 4621,6483 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id144">
- <rect class="BoundingBox" stroke="none" fill="none" x="4601" y="6466" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4621,6484 L 4619,7184"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4621,6484 L 4621,6484 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4619,7184 L 4619,7184 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id145">
- <rect class="BoundingBox" stroke="none" fill="none" x="4177" y="6470" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4197,6488 L 4195,7234"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4197,6488 L 4197,6488 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4195,7234 L 4195,7234 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id146">
- <rect class="BoundingBox" stroke="none" fill="none" x="4114" y="6379" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4198,6487 L 4123,6487 4123,6388 4272,6388 4272,6487 4198,6487 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4198,6487 L 4123,6487 4123,6388 4272,6388 4272,6487 4198,6487 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id147">
- <rect class="BoundingBox" stroke="none" fill="none" x="4325" y="6378" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4409,6486 L 4334,6486 4334,6387 4483,6387 4483,6486 4409,6486 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4409,6486 L 4334,6486 4334,6387 4483,6387 4483,6486 4409,6486 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id148">
- <rect class="BoundingBox" stroke="none" fill="none" x="4403" y="6469" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4421,6487 L 4427,7235"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4421,6487 L 4421,6487 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4427,7235 L 4427,7235 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id149">
- <rect class="BoundingBox" stroke="none" fill="none" x="2152" y="5258" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 2429,5991 L 2152,5830 2290,5830 2290,5420 2152,5420 2429,5258 2707,5420 2568,5420 2568,5830 2707,5830 2429,5991 Z M 2152,5991 L 2152,5991 Z M 2707,5258 L 2707,5258 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id150">
- <rect class="BoundingBox" stroke="none" fill="none" x="2190" y="5448" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 2428,5791 L 2190,5791 2190,5448 2665,5448 2665,5791 2428,5791 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2199" y="5733"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id151">
- <rect class="BoundingBox" stroke="none" fill="none" x="3129" y="5253" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 3406,5986 L 3129,5825 3267,5825 3267,5415 3129,5415 3406,5253 3684,5415 3545,5415 3545,5825 3684,5825 3406,5986 Z M 3129,5986 L 3129,5986 Z M 3684,5253 L 3684,5253 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id152">
- <rect class="BoundingBox" stroke="none" fill="none" x="3168" y="5443" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 3406,5786 L 3168,5786 3168,5443 3643,5443 3643,5786 3406,5786 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3177" y="5728"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id153">
- <rect class="BoundingBox" stroke="none" fill="none" x="4082" y="5244" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 4359,5977 L 4082,5816 4220,5816 4220,5406 4082,5406 4359,5244 4637,5406 4498,5406 4498,5816 4637,5816 4359,5977 Z M 4082,5977 L 4082,5977 Z M 4637,5244 L 4637,5244 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id154">
- <rect class="BoundingBox" stroke="none" fill="none" x="4120" y="5434" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 4358,5777 L 4120,5777 4120,5434 4595,5434 4595,5777 4358,5777 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4129" y="5719"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id155">
- <rect class="BoundingBox" stroke="none" fill="none" x="4789" y="3256" width="1147" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5039" y="3663"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id156">
- <rect class="BoundingBox" stroke="none" fill="none" x="5258" y="4040" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 6676,5224 L 5276,5224 5276,4058 8076,4058 8076,5224 6676,5224 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 6676,5224 L 5276,5224 5276,4058 8076,4058 8076,5224 6676,5224 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6137" y="4362"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6027" y="4715"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5745" y="5068"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id157">
- <rect class="BoundingBox" stroke="none" fill="none" x="5260" y="5982" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 5713,6425 L 5269,6425 5269,5991 6156,5991 6156,6425 5713,6425 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 5713,6425 L 5269,6425 5269,5991 6156,5991 6156,6425 5713,6425 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5438" y="6289"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id158">
- <rect class="BoundingBox" stroke="none" fill="none" x="5373" y="6467" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5391,6485 L 5396,7185"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5391,6485 L 5391,6485 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5396,7185 L 5396,7185 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id159">
- <rect class="BoundingBox" stroke="none" fill="none" x="5294" y="6376" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5378,6484 L 5303,6484 5303,6385 5452,6385 5452,6484 5378,6484 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5378,6484 L 5303,6484 5303,6385 5452,6385 5452,6484 5378,6484 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id160">
- <rect class="BoundingBox" stroke="none" fill="none" x="5938" y="6374" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6022,6482 L 5947,6482 5947,6383 6096,6383 6096,6482 6022,6482 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6022,6482 L 5947,6482 5947,6383 6096,6383 6096,6482 6022,6482 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id161">
- <rect class="BoundingBox" stroke="none" fill="none" x="6002" y="6465" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6022,6483 L 6020,7231"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6022,6483 L 6022,6483 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6020,7231 L 6020,7231 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id162">
- <rect class="BoundingBox" stroke="none" fill="none" x="5578" y="6469" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5598,6487 L 5596,7233"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5598,6487 L 5598,6487 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5596,7233 L 5596,7233 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id163">
- <rect class="BoundingBox" stroke="none" fill="none" x="5515" y="6378" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5599,6486 L 5524,6486 5524,6387 5673,6387 5673,6486 5599,6486 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5599,6486 L 5524,6486 5524,6387 5673,6387 5673,6486 5599,6486 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id164">
- <rect class="BoundingBox" stroke="none" fill="none" x="5726" y="6376" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5810,6484 L 5735,6484 5735,6385 5884,6385 5884,6484 5810,6484 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5810,6484 L 5735,6484 5735,6385 5884,6385 5884,6484 5810,6484 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id165">
- <rect class="BoundingBox" stroke="none" fill="none" x="5804" y="6467" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5822,6485 L 5828,7233"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5822,6485 L 5822,6485 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5828,7233 L 5828,7233 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id166">
- <rect class="BoundingBox" stroke="none" fill="none" x="6225" y="5979" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 6678,6422 L 6234,6422 6234,5988 7121,5988 7121,6422 6678,6422 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6678,6422 L 6234,6422 6234,5988 7121,5988 7121,6422 6678,6422 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6403" y="6286"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id167">
- <rect class="BoundingBox" stroke="none" fill="none" x="6338" y="6465" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6356,6483 L 6361,7229"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6356,6483 L 6356,6483 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6361,7229 L 6361,7229 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id168">
- <rect class="BoundingBox" stroke="none" fill="none" x="6259" y="6374" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6343,6482 L 6268,6482 6268,6383 6417,6383 6417,6482 6343,6482 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6343,6482 L 6268,6482 6268,6383 6417,6383 6417,6482 6343,6482 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id169">
- <rect class="BoundingBox" stroke="none" fill="none" x="6903" y="6372" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6987,6480 L 6912,6480 6912,6381 7061,6381 7061,6480 6987,6480 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6987,6480 L 6912,6480 6912,6381 7061,6381 7061,6480 6987,6480 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id170">
- <rect class="BoundingBox" stroke="none" fill="none" x="6967" y="6463" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6987,6481 L 6985,7229"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6987,6481 L 6987,6481 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6985,7229 L 6985,7229 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id171">
- <rect class="BoundingBox" stroke="none" fill="none" x="6543" y="6467" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6563,6485 L 6561,7231"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6563,6485 L 6563,6485 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6561,7231 L 6561,7231 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id172">
- <rect class="BoundingBox" stroke="none" fill="none" x="6479" y="6376" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6563,6484 L 6488,6484 6488,6385 6637,6385 6637,6484 6563,6484 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6563,6484 L 6488,6484 6488,6385 6637,6385 6637,6484 6563,6484 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id173">
- <rect class="BoundingBox" stroke="none" fill="none" x="6691" y="6374" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6775,6482 L 6700,6482 6700,6383 6849,6383 6849,6482 6775,6482 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6775,6482 L 6700,6482 6700,6383 6849,6383 6849,6482 6775,6482 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id174">
- <rect class="BoundingBox" stroke="none" fill="none" x="6769" y="6465" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6787,6483 L 6793,7231"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6787,6483 L 6787,6483 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6793,7231 L 6793,7231 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id175">
- <rect class="BoundingBox" stroke="none" fill="none" x="7174" y="5977" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 7627,6420 L 7183,6420 7183,5986 8070,5986 8070,6420 7627,6420 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7627,6420 L 7183,6420 7183,5986 8070,5986 8070,6420 7627,6420 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7352" y="6284"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id176">
- <rect class="BoundingBox" stroke="none" fill="none" x="7287" y="6463" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7305,6481 L 7310,7227"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7305,6481 L 7305,6481 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7310,7227 L 7310,7227 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id177">
- <rect class="BoundingBox" stroke="none" fill="none" x="7208" y="6372" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7292,6480 L 7217,6480 7217,6381 7366,6381 7366,6480 7292,6480 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7292,6480 L 7217,6480 7217,6381 7366,6381 7366,6480 7292,6480 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id178">
- <rect class="BoundingBox" stroke="none" fill="none" x="7851" y="6370" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7935,6478 L 7860,6478 7860,6379 8009,6379 8009,6478 7935,6478 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7935,6478 L 7860,6478 7860,6379 8009,6379 8009,6478 7935,6478 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id179">
- <rect class="BoundingBox" stroke="none" fill="none" x="7916" y="6461" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7936,6479 L 7934,7179"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7936,6479 L 7936,6479 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7934,7179 L 7934,7179 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id180">
- <rect class="BoundingBox" stroke="none" fill="none" x="7492" y="6465" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7512,6483 L 7510,7229"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7512,6483 L 7512,6483 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7510,7229 L 7510,7229 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id181">
- <rect class="BoundingBox" stroke="none" fill="none" x="7428" y="6374" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7512,6482 L 7437,6482 7437,6383 7586,6383 7586,6482 7512,6482 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7512,6482 L 7437,6482 7437,6383 7586,6383 7586,6482 7512,6482 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id182">
- <rect class="BoundingBox" stroke="none" fill="none" x="7639" y="6372" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7723,6480 L 7648,6480 7648,6381 7797,6381 7797,6480 7723,6480 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7723,6480 L 7648,6480 7648,6381 7797,6381 7797,6480 7723,6480 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id183">
- <rect class="BoundingBox" stroke="none" fill="none" x="7717" y="6463" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7735,6481 L 7741,7229"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7735,6481 L 7735,6481 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7741,7229 L 7741,7229 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id184">
- <rect class="BoundingBox" stroke="none" fill="none" x="5466" y="5252" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 5743,5985 L 5466,5824 5604,5824 5604,5414 5466,5414 5743,5252 6021,5414 5882,5414 5882,5824 6021,5824 5743,5985 Z M 5466,5985 L 5466,5985 Z M 6021,5252 L 6021,5252 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id185">
- <rect class="BoundingBox" stroke="none" fill="none" x="5505" y="5442" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 5743,5785 L 5505,5785 5505,5442 5980,5442 5980,5785 5743,5785 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5514" y="5727"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id186">
- <rect class="BoundingBox" stroke="none" fill="none" x="6444" y="5248" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 6721,5981 L 6444,5820 6582,5820 6582,5410 6444,5410 6721,5248 6999,5410 6860,5410 6860,5820 6999,5820 6721,5981 Z M 6444,5981 L 6444,5981 Z M 6999,5248 L 6999,5248 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id187">
- <rect class="BoundingBox" stroke="none" fill="none" x="6482" y="5438" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 6720,5781 L 6482,5781 6482,5438 6957,5438 6957,5781 6720,5781 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6491" y="5723"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id188">
- <rect class="BoundingBox" stroke="none" fill="none" x="7396" y="5239" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 7673,5972 L 7396,5811 7534,5811 7534,5401 7396,5401 7673,5239 7951,5401 7812,5401 7812,5811 7951,5811 7673,5972 Z M 7396,5972 L 7396,5972 Z M 7951,5239 L 7951,5239 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id189">
- <rect class="BoundingBox" stroke="none" fill="none" x="7435" y="5429" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 7673,5772 L 7435,5772 7435,5429 7910,5429 7910,5772 7673,5772 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7444" y="5714"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id190">
- <rect class="BoundingBox" stroke="none" fill="none" x="4555" y="4175" width="891" height="1019"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 4555,4683 L 4814,4175 4814,4429 5185,4429 5185,4175 5445,4683 5185,5192 5185,4937 4814,4937 4814,5192 4555,4683 Z M 4555,4175 L 4555,4175 Z M 5445,5192 L 5445,5192 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id191">
- <rect class="BoundingBox" stroke="none" fill="none" x="2023" y="7113" width="2667" height="236"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 4636,7167 L 4636,7167 4636,7174 4636,7180 4635,7187 4635,7193 4634,7199 4633,7206 4633,7212 4631,7218 4630,7224 4629,7230 4628,7235 4626,7241 4624,7246 4623,7251 4621,7255 4619,7260 4617,7264 4615,7268 4613,7272 4610,7275 4608,7278 4606,7281 4603,7284 4601,7286 4598,7288 4596,7289 4593,7290 4590,7291 4588,7292 4585,7292 2129,7294 2129,7294 2126,7294 2124,7293 2121,7292 2118,7291 2116,7290 2113,7288 2111,7286 2108,7283 2106,7280 2104,7277 2101,7274 2099,7270 2097,7266 2095,7262 2093,7257 2091,7252 2090,7247 2088,7242 2086,7237 2085,7231 2084,7225 2083,7219 2081,7213 2081,7207 2080,7201 2079,7194 2079,7188 2078,7181 2078,7175 2078,7168"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 4636,7167 L 4636,7167 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2077,7294 L 2077,7294 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id192">
- <rect class="BoundingBox" stroke="none" fill="none" x="5343" y="7106" width="2666" height="234"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7955,7159 L 7955,7159 7955,7166 7955,7172 7954,7179 7954,7185 7953,7191 7952,7198 7952,7204 7950,7210 7949,7216 7948,7222 7947,7227 7945,7233 7943,7238 7942,7243 7940,7247 7938,7252 7936,7256 7934,7260 7932,7264 7929,7267 7927,7270 7925,7273 7922,7276 7920,7278 7917,7280 7915,7281 7912,7282 7909,7283 7907,7284 7904,7284 5448,7286 5448,7286 5445,7286 5443,7285 5440,7284 5437,7283 5435,7282 5432,7280 5430,7278 5427,7275 5425,7272 5423,7269 5420,7266 5418,7262 5416,7258 5414,7254 5412,7249 5410,7244 5409,7239 5407,7234 5405,7229 5404,7223 5403,7217 5402,7211 5400,7205 5400,7199 5399,7193 5398,7186 5398,7180 5397,7173 5397,7167 5397,7160"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7955,7159 L 7955,7159 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 5396,7286 L 5396,7286 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id193">
- <rect class="BoundingBox" stroke="none" fill="none" x="2512" y="2221" width="4708" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2764" y="2769"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test (SUT)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id194">
- <rect class="BoundingBox" stroke="none" fill="none" x="3062" y="3303" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3355,3373 L 3355,3373 3355,3377 3355,3380 3354,3384 3353,3387 3353,3391 3352,3394 3350,3398 3349,3401 3347,3404 3346,3408 3344,3411 3342,3414 3340,3416 3337,3419 3335,3422 3332,3424 3329,3427 3327,3429 3324,3431 3320,3433 3317,3434 3314,3436 3311,3437 3307,3439 3304,3440 3300,3440 3297,3441 3293,3442 3290,3442 3286,3442 3132,3442 3132,3442 3128,3442 3125,3442 3121,3441 3118,3440 3114,3440 3111,3439 3107,3437 3104,3436 3101,3434 3097,3433 3094,3431 3091,3429 3089,3427 3086,3424 3083,3422 3081,3419 3078,3416 3076,3414 3074,3411 3072,3407 3071,3404 3069,3401 3068,3398 3066,3394 3065,3391 3065,3387 3064,3384 3063,3380 3063,3377 3063,3373 3062,3373 3063,3373 3063,3369 3063,3366 3064,3362 3064,3359 3065,3355 3066,3352 3067,3348 3069,3345 3070,3342 3072,3339 3074,3336 3076,3333 3078,3330 3080,3327 3083,3325 3085,3322 3088,3320 3091,3318 3094,3315 3097,3314 3100,3312 3103,3310 3107,3309 3110,3308 3113,3307 3117,3306 3120,3305 3124,3304 3127,3304 3131,3304 3286,3303 3286,3304 3290,3304 3293,3304 3297,3305 3300,3305 3304,3306 3307,3307 3311,3308 3314,3310 3317,3311 3320,3313 3323,3315 3326,3317 3329,3319 3332,3321 3334,3324 3337,3326 3339,3329 3341,3332 3344,3335 3345,3338 3347,3341 3349,3344 3350,3348 3351,3351 3352,3354 3353,3358 3354,3361 3355,3365 3355,3368 3355,3372 3355,3373 Z M 3355,3442 L 3355,3442 Z M 3062,3303 L 3062,3303 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id195">
- <rect class="BoundingBox" stroke="none" fill="none" x="3062" y="3503" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3355,3573 L 3355,3573 3355,3577 3355,3580 3354,3584 3353,3587 3353,3591 3352,3594 3350,3598 3349,3601 3347,3604 3346,3608 3344,3611 3342,3614 3340,3616 3337,3619 3335,3622 3332,3624 3329,3627 3327,3629 3324,3631 3320,3633 3317,3634 3314,3636 3311,3637 3307,3639 3304,3640 3300,3640 3297,3641 3293,3642 3290,3642 3286,3642 3132,3642 3132,3642 3128,3642 3125,3642 3121,3641 3118,3640 3114,3640 3111,3639 3107,3637 3104,3636 3101,3634 3097,3633 3094,3631 3091,3629 3089,3627 3086,3624 3083,3622 3081,3619 3078,3616 3076,3614 3074,3611 3072,3607 3071,3604 3069,3601 3068,3598 3066,3594 3065,3591 3065,3587 3064,3584 3063,3580 3063,3577 3063,3573 3062,3573 3063,3573 3063,3569 3063,3566 3064,3562 3064,3559 3065,3555 3066,3552 3067,3548 3069,3545 3070,3542 3072,3539 3074,3536 3076,3533 3078,3530 3080,3527 3083,3525 3085,3522 3088,3520 3091,3518 3094,3515 3097,3514 3100,3512 3103,3510 3107,3509 3110,3508 3113,3507 3117,3506 3120,3505 3124,3504 3127,3504 3131,3504 3286,3503 3286,3504 3290,3504 3293,3504 3297,3505 3300,3505 3304,3506 3307,3507 3311,3508 3314,3510 3317,3511 3320,3513 3323,3515 3326,3517 3329,3519 3332,3521 3334,3524 3337,3526 3339,3529 3341,3532 3344,3535 3345,3538 3347,3541 3349,3544 3350,3548 3351,3551 3352,3554 3353,3558 3354,3561 3355,3565 3355,3568 3355,3572 3355,3573 Z M 3355,3642 L 3355,3642 Z M 3062,3503 L 3062,3503 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id196">
- <rect class="BoundingBox" stroke="none" fill="none" x="3062" y="3703" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3355,3773 L 3355,3773 3355,3777 3355,3780 3354,3784 3353,3787 3353,3791 3352,3794 3350,3798 3349,3801 3347,3804 3346,3808 3344,3811 3342,3814 3340,3816 3337,3819 3335,3822 3332,3824 3329,3827 3327,3829 3324,3831 3320,3833 3317,3834 3314,3836 3311,3837 3307,3839 3304,3840 3300,3840 3297,3841 3293,3842 3290,3842 3286,3842 3132,3842 3132,3842 3128,3842 3125,3842 3121,3841 3118,3840 3114,3840 3111,3839 3107,3837 3104,3836 3101,3834 3097,3833 3094,3831 3091,3829 3089,3827 3086,3824 3083,3822 3081,3819 3078,3816 3076,3814 3074,3811 3072,3807 3071,3804 3069,3801 3068,3798 3066,3794 3065,3791 3065,3787 3064,3784 3063,3780 3063,3777 3063,3773 3062,3773 3063,3773 3063,3769 3063,3766 3064,3762 3064,3759 3065,3755 3066,3752 3067,3748 3069,3745 3070,3742 3072,3739 3074,3736 3076,3733 3078,3730 3080,3727 3083,3725 3085,3722 3088,3720 3091,3718 3094,3715 3097,3714 3100,3712 3103,3710 3107,3709 3110,3708 3113,3707 3117,3706 3120,3705 3124,3704 3127,3704 3131,3704 3286,3703 3286,3704 3290,3704 3293,3704 3297,3705 3300,3705 3304,3706 3307,3707 3311,3708 3314,3710 3317,3711 3320,3713 3323,3715 3326,3717 3329,3719 3332,3721 3334,3724 3337,3726 3339,3729 3341,3732 3344,3735 3345,3738 3347,3741 3349,3744 3350,3748 3351,3751 3352,3754 3353,3758 3354,3761 3355,3765 3355,3768 3355,3772 3355,3773 Z M 3355,3842 L 3355,3842 Z M 3062,3703 L 3062,3703 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id197">
- <rect class="BoundingBox" stroke="none" fill="none" x="2712" y="3303" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3006,3373 L 3006,3373 3006,3377 3006,3380 3005,3384 3004,3387 3004,3391 3003,3394 3001,3398 3000,3401 2998,3404 2997,3408 2995,3411 2993,3414 2991,3416 2988,3419 2986,3422 2983,3424 2980,3427 2978,3429 2975,3431 2971,3433 2968,3434 2965,3436 2962,3437 2958,3439 2955,3440 2951,3440 2948,3441 2944,3442 2941,3442 2937,3442 2783,3442 2783,3442 2779,3442 2776,3442 2772,3441 2769,3440 2765,3440 2762,3439 2758,3437 2755,3436 2752,3434 2748,3433 2745,3431 2742,3429 2740,3427 2737,3424 2734,3422 2732,3419 2729,3416 2727,3414 2725,3411 2723,3407 2722,3404 2720,3401 2719,3398 2717,3394 2716,3391 2716,3387 2715,3384 2714,3380 2714,3377 2714,3373 2713,3373 2714,3373 2714,3369 2714,3366 2715,3362 2715,3359 2716,3355 2717,3352 2718,3348 2720,3345 2721,3342 2723,3339 2725,3336 2727,3333 2729,3330 2731,3327 2734,3325 2736,3322 2739,3320 2742,3318 2745,3315 2748,3314 2751,3312 2754,3310 2758,3309 2761,3308 2764,3307 2768,3306 2771,3305 2775,3304 2778,3304 2782,3304 2937,3303 2937,3304 2941,3304 2944,3304 2948,3305 2951,3305 2955,3306 2958,3307 2962,3308 2965,3310 2968,3311 2971,3313 2974,3315 2977,3317 2980,3319 2983,3321 2985,3324 2988,3326 2990,3329 2992,3332 2995,3335 2996,3338 2998,3341 3000,3344 3001,3348 3002,3351 3003,3354 3004,3358 3005,3361 3006,3365 3006,3368 3006,3372 3006,3373 Z M 3006,3442 L 3006,3442 Z M 2713,3303 L 2713,3303 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id198">
- <rect class="BoundingBox" stroke="none" fill="none" x="2712" y="3503" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3006,3573 L 3006,3573 3006,3577 3006,3580 3005,3584 3004,3587 3004,3591 3003,3594 3001,3598 3000,3601 2998,3604 2997,3608 2995,3611 2993,3614 2991,3616 2988,3619 2986,3622 2983,3624 2980,3627 2978,3629 2975,3631 2971,3633 2968,3634 2965,3636 2962,3637 2958,3639 2955,3640 2951,3640 2948,3641 2944,3642 2941,3642 2937,3642 2783,3642 2783,3642 2779,3642 2776,3642 2772,3641 2769,3640 2765,3640 2762,3639 2758,3637 2755,3636 2752,3634 2748,3633 2745,3631 2742,3629 2740,3627 2737,3624 2734,3622 2732,3619 2729,3616 2727,3614 2725,3611 2723,3607 2722,3604 2720,3601 2719,3598 2717,3594 2716,3591 2716,3587 2715,3584 2714,3580 2714,3577 2714,3573 2713,3573 2714,3573 2714,3569 2714,3566 2715,3562 2715,3559 2716,3555 2717,3552 2718,3548 2720,3545 2721,3542 2723,3539 2725,3536 2727,3533 2729,3530 2731,3527 2734,3525 2736,3522 2739,3520 2742,3518 2745,3515 2748,3514 2751,3512 2754,3510 2758,3509 2761,3508 2764,3507 2768,3506 2771,3505 2775,3504 2778,3504 2782,3504 2937,3503 2937,3504 2941,3504 2944,3504 2948,3505 2951,3505 2955,3506 2958,3507 2962,3508 2965,3510 2968,3511 2971,3513 2974,3515 2977,3517 2980,3519 2983,3521 2985,3524 2988,3526 2990,3529 2992,3532 2995,3535 2996,3538 2998,3541 3000,3544 3001,3548 3002,3551 3003,3554 3004,3558 3005,3561 3006,3565 3006,3568 3006,3572 3006,3573 Z M 3006,3642 L 3006,3642 Z M 2713,3503 L 2713,3503 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id199">
- <rect class="BoundingBox" stroke="none" fill="none" x="2713" y="3703" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3006,3773 L 3006,3773 3006,3777 3006,3780 3005,3784 3004,3787 3004,3791 3003,3794 3001,3798 3000,3801 2998,3804 2997,3808 2995,3811 2993,3814 2991,3816 2988,3819 2986,3822 2983,3824 2980,3827 2978,3829 2975,3831 2971,3833 2968,3834 2965,3836 2962,3837 2958,3839 2955,3840 2951,3840 2948,3841 2944,3842 2941,3842 2937,3842 2783,3842 2783,3842 2779,3842 2776,3842 2772,3841 2769,3840 2765,3840 2762,3839 2758,3837 2755,3836 2752,3834 2748,3833 2745,3831 2742,3829 2740,3827 2737,3824 2734,3822 2732,3819 2729,3816 2727,3814 2725,3811 2723,3807 2722,3804 2720,3801 2719,3798 2717,3794 2716,3791 2716,3787 2715,3784 2714,3780 2714,3777 2714,3773 2713,3773 2714,3773 2714,3769 2714,3766 2715,3762 2715,3759 2716,3755 2717,3752 2718,3748 2720,3745 2721,3742 2723,3739 2725,3736 2727,3733 2729,3730 2731,3727 2734,3725 2736,3722 2739,3720 2742,3718 2745,3715 2748,3714 2751,3712 2754,3710 2758,3709 2761,3708 2764,3707 2768,3706 2771,3705 2775,3704 2778,3704 2782,3704 2937,3703 2937,3704 2941,3704 2944,3704 2948,3705 2951,3705 2955,3706 2958,3707 2962,3708 2965,3710 2968,3711 2971,3713 2974,3715 2977,3717 2980,3719 2983,3721 2985,3724 2988,3726 2990,3729 2992,3732 2995,3735 2996,3738 2998,3741 3000,3744 3001,3748 3002,3751 3003,3754 3004,3758 3005,3761 3006,3765 3006,3768 3006,3772 3006,3773 Z M 3006,3842 L 3006,3842 Z M 2713,3703 L 2713,3703 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id200">
- <rect class="BoundingBox" stroke="none" fill="none" x="3391" y="3306" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3685,3376 L 3685,3376 3685,3380 3685,3383 3684,3387 3683,3390 3683,3394 3682,3397 3680,3401 3679,3404 3677,3407 3676,3411 3674,3414 3672,3417 3670,3419 3667,3422 3665,3425 3662,3427 3659,3430 3657,3432 3654,3434 3650,3436 3647,3437 3644,3439 3641,3440 3637,3442 3634,3443 3630,3443 3627,3444 3623,3445 3620,3445 3616,3445 3462,3445 3462,3445 3458,3445 3455,3445 3451,3444 3448,3443 3444,3443 3441,3442 3437,3440 3434,3439 3431,3437 3427,3436 3424,3434 3421,3432 3419,3430 3416,3427 3413,3425 3411,3422 3408,3419 3406,3417 3404,3414 3402,3410 3401,3407 3399,3404 3398,3401 3396,3397 3395,3394 3395,3390 3394,3387 3393,3383 3393,3380 3393,3376 3392,3376 3393,3376 3393,3372 3393,3369 3394,3365 3394,3362 3395,3358 3396,3355 3397,3351 3399,3348 3400,3345 3402,3342 3404,3339 3406,3336 3408,3333 3410,3330 3413,3328 3415,3325 3418,3323 3421,3321 3424,3318 3427,3317 3430,3315 3433,3313 3437,3312 3440,3311 3443,3310 3447,3309 3450,3308 3454,3307 3457,3307 3461,3307 3616,3306 3616,3307 3620,3307 3623,3307 3627,3308 3630,3308 3634,3309 3637,3310 3641,3311 3644,3313 3647,3314 3650,3316 3653,3318 3656,3320 3659,3322 3662,3324 3664,3327 3667,3329 3669,3332 3671,3335 3674,3338 3675,3341 3677,3344 3679,3347 3680,3351 3681,3354 3682,3357 3683,3361 3684,3364 3685,3368 3685,3371 3685,3375 3685,3376 Z M 3685,3445 L 3685,3445 Z M 3392,3306 L 3392,3306 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id201">
- <rect class="BoundingBox" stroke="none" fill="none" x="3391" y="3506" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3685,3576 L 3685,3576 3685,3580 3685,3583 3684,3587 3683,3590 3683,3594 3682,3597 3680,3601 3679,3604 3677,3607 3676,3611 3674,3614 3672,3617 3670,3619 3667,3622 3665,3625 3662,3627 3659,3630 3657,3632 3654,3634 3650,3636 3647,3637 3644,3639 3641,3640 3637,3642 3634,3643 3630,3643 3627,3644 3623,3645 3620,3645 3616,3645 3462,3645 3462,3645 3458,3645 3455,3645 3451,3644 3448,3643 3444,3643 3441,3642 3437,3640 3434,3639 3431,3637 3427,3636 3424,3634 3421,3632 3419,3630 3416,3627 3413,3625 3411,3622 3408,3619 3406,3617 3404,3614 3402,3610 3401,3607 3399,3604 3398,3601 3396,3597 3395,3594 3395,3590 3394,3587 3393,3583 3393,3580 3393,3576 3392,3576 3393,3576 3393,3572 3393,3569 3394,3565 3394,3562 3395,3558 3396,3555 3397,3551 3399,3548 3400,3545 3402,3542 3404,3539 3406,3536 3408,3533 3410,3530 3413,3528 3415,3525 3418,3523 3421,3521 3424,3518 3427,3517 3430,3515 3433,3513 3437,3512 3440,3511 3443,3510 3447,3509 3450,3508 3454,3507 3457,3507 3461,3507 3616,3506 3616,3507 3620,3507 3623,3507 3627,3508 3630,3508 3634,3509 3637,3510 3641,3511 3644,3513 3647,3514 3650,3516 3653,3518 3656,3520 3659,3522 3662,3524 3664,3527 3667,3529 3669,3532 3671,3535 3674,3538 3675,3541 3677,3544 3679,3547 3680,3551 3681,3554 3682,3557 3683,3561 3684,3564 3685,3568 3685,3571 3685,3575 3685,3576 Z M 3685,3645 L 3685,3645 Z M 3392,3506 L 3392,3506 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id202">
- <rect class="BoundingBox" stroke="none" fill="none" x="3392" y="3705" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3685,3775 L 3685,3775 3685,3779 3685,3782 3684,3786 3683,3789 3683,3793 3682,3796 3680,3800 3679,3803 3677,3806 3676,3810 3674,3813 3672,3816 3670,3818 3667,3821 3665,3824 3662,3826 3659,3829 3657,3831 3654,3833 3650,3835 3647,3836 3644,3838 3641,3839 3637,3841 3634,3842 3630,3842 3627,3843 3623,3844 3620,3844 3616,3844 3462,3844 3462,3844 3458,3844 3455,3844 3451,3843 3448,3842 3444,3842 3441,3841 3437,3839 3434,3838 3431,3836 3427,3835 3424,3833 3421,3831 3419,3829 3416,3826 3413,3824 3411,3821 3408,3818 3406,3816 3404,3813 3402,3809 3401,3806 3399,3803 3398,3800 3396,3796 3395,3793 3395,3789 3394,3786 3393,3782 3393,3779 3393,3775 3392,3775 3393,3775 3393,3771 3393,3768 3394,3764 3394,3761 3395,3757 3396,3754 3397,3750 3399,3747 3400,3744 3402,3741 3404,3738 3406,3735 3408,3732 3410,3729 3413,3727 3415,3724 3418,3722 3421,3720 3424,3717 3427,3716 3430,3714 3433,3712 3437,3711 3440,3710 3443,3709 3447,3708 3450,3707 3454,3706 3457,3706 3461,3706 3616,3705 3616,3706 3620,3706 3623,3706 3627,3707 3630,3707 3634,3708 3637,3709 3641,3710 3644,3712 3647,3713 3650,3715 3653,3717 3656,3719 3659,3721 3662,3723 3664,3726 3667,3728 3669,3731 3671,3734 3674,3737 3675,3740 3677,3743 3679,3746 3680,3750 3681,3753 3682,3756 3683,3760 3684,3763 3685,3767 3685,3770 3685,3774 3685,3775 Z M 3685,3844 L 3685,3844 Z M 3392,3705 L 3392,3705 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id203">
- <rect class="BoundingBox" stroke="none" fill="none" x="4119" y="3301" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4413,3371 L 4413,3371 4413,3375 4413,3378 4412,3382 4411,3385 4411,3389 4410,3392 4408,3396 4407,3399 4405,3402 4404,3406 4402,3409 4400,3412 4398,3414 4395,3417 4393,3420 4390,3422 4387,3425 4385,3427 4382,3429 4378,3431 4375,3432 4372,3434 4369,3435 4365,3437 4362,3438 4358,3438 4355,3439 4351,3440 4348,3440 4344,3440 4190,3440 4190,3440 4186,3440 4183,3440 4179,3439 4176,3438 4172,3438 4169,3437 4165,3435 4162,3434 4159,3432 4155,3431 4152,3429 4149,3427 4147,3425 4144,3422 4141,3420 4139,3417 4136,3414 4134,3412 4132,3409 4130,3405 4129,3402 4127,3399 4126,3396 4124,3392 4123,3389 4123,3385 4122,3382 4121,3378 4121,3375 4121,3371 4120,3371 4121,3371 4121,3367 4121,3364 4122,3360 4122,3357 4123,3353 4124,3350 4125,3346 4127,3343 4128,3340 4130,3337 4132,3334 4134,3331 4136,3328 4138,3325 4141,3323 4143,3320 4146,3318 4149,3316 4152,3313 4155,3312 4158,3310 4161,3308 4165,3307 4168,3306 4171,3305 4175,3304 4178,3303 4182,3302 4185,3302 4189,3302 4344,3301 4344,3302 4348,3302 4351,3302 4355,3303 4358,3303 4362,3304 4365,3305 4369,3306 4372,3308 4375,3309 4378,3311 4381,3313 4384,3315 4387,3317 4390,3319 4392,3322 4395,3324 4397,3327 4399,3330 4402,3333 4403,3336 4405,3339 4407,3342 4408,3346 4409,3349 4410,3352 4411,3356 4412,3359 4413,3363 4413,3366 4413,3370 4413,3371 Z M 4413,3440 L 4413,3440 Z M 4120,3301 L 4120,3301 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id204">
- <rect class="BoundingBox" stroke="none" fill="none" x="4119" y="3501" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4413,3571 L 4413,3571 4413,3575 4413,3578 4412,3582 4411,3585 4411,3589 4410,3592 4408,3596 4407,3599 4405,3602 4404,3606 4402,3609 4400,3612 4398,3614 4395,3617 4393,3620 4390,3622 4387,3625 4385,3627 4382,3629 4378,3631 4375,3632 4372,3634 4369,3635 4365,3637 4362,3638 4358,3638 4355,3639 4351,3640 4348,3640 4344,3640 4190,3640 4190,3640 4186,3640 4183,3640 4179,3639 4176,3638 4172,3638 4169,3637 4165,3635 4162,3634 4159,3632 4155,3631 4152,3629 4149,3627 4147,3625 4144,3622 4141,3620 4139,3617 4136,3614 4134,3612 4132,3609 4130,3605 4129,3602 4127,3599 4126,3596 4124,3592 4123,3589 4123,3585 4122,3582 4121,3578 4121,3575 4121,3571 4120,3571 4121,3571 4121,3567 4121,3564 4122,3560 4122,3557 4123,3553 4124,3550 4125,3546 4127,3543 4128,3540 4130,3537 4132,3534 4134,3531 4136,3528 4138,3525 4141,3523 4143,3520 4146,3518 4149,3516 4152,3513 4155,3512 4158,3510 4161,3508 4165,3507 4168,3506 4171,3505 4175,3504 4178,3503 4182,3502 4185,3502 4189,3502 4344,3501 4344,3502 4348,3502 4351,3502 4355,3503 4358,3503 4362,3504 4365,3505 4369,3506 4372,3508 4375,3509 4378,3511 4381,3513 4384,3515 4387,3517 4390,3519 4392,3522 4395,3524 4397,3527 4399,3530 4402,3533 4403,3536 4405,3539 4407,3542 4408,3546 4409,3549 4410,3552 4411,3556 4412,3559 4413,3563 4413,3566 4413,3570 4413,3571 Z M 4413,3640 L 4413,3640 Z M 4120,3501 L 4120,3501 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id205">
- <rect class="BoundingBox" stroke="none" fill="none" x="4119" y="3701" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4413,3771 L 4413,3771 4413,3775 4413,3778 4412,3782 4411,3785 4411,3789 4410,3792 4408,3796 4407,3799 4405,3802 4404,3806 4402,3809 4400,3812 4398,3814 4395,3817 4393,3820 4390,3822 4387,3825 4385,3827 4382,3829 4378,3831 4375,3832 4372,3834 4369,3835 4365,3837 4362,3838 4358,3838 4355,3839 4351,3840 4348,3840 4344,3840 4190,3840 4190,3840 4186,3840 4183,3840 4179,3839 4176,3838 4172,3838 4169,3837 4165,3835 4162,3834 4159,3832 4155,3831 4152,3829 4149,3827 4147,3825 4144,3822 4141,3820 4139,3817 4136,3814 4134,3812 4132,3809 4130,3805 4129,3802 4127,3799 4126,3796 4124,3792 4123,3789 4123,3785 4122,3782 4121,3778 4121,3775 4121,3771 4120,3771 4121,3771 4121,3767 4121,3764 4122,3760 4122,3757 4123,3753 4124,3750 4125,3746 4127,3743 4128,3740 4130,3737 4132,3734 4134,3731 4136,3728 4138,3725 4141,3723 4143,3720 4146,3718 4149,3716 4152,3713 4155,3712 4158,3710 4161,3708 4165,3707 4168,3706 4171,3705 4175,3704 4178,3703 4182,3702 4185,3702 4189,3702 4344,3701 4344,3702 4348,3702 4351,3702 4355,3703 4358,3703 4362,3704 4365,3705 4369,3706 4372,3708 4375,3709 4378,3711 4381,3713 4384,3715 4387,3717 4390,3719 4392,3722 4395,3724 4397,3727 4399,3730 4402,3733 4403,3736 4405,3739 4407,3742 4408,3746 4409,3749 4410,3752 4411,3756 4412,3759 4413,3763 4413,3766 4413,3770 4413,3771 Z M 4413,3840 L 4413,3840 Z M 4120,3701 L 4120,3701 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id206">
- <rect class="BoundingBox" stroke="none" fill="none" x="3771" y="3301" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4064,3371 L 4064,3371 4064,3375 4064,3378 4063,3382 4062,3385 4062,3389 4061,3392 4059,3396 4058,3399 4056,3402 4055,3406 4053,3409 4051,3412 4049,3414 4046,3417 4044,3420 4041,3422 4038,3425 4036,3427 4033,3429 4029,3431 4026,3432 4023,3434 4020,3435 4016,3437 4013,3438 4009,3438 4006,3439 4002,3440 3999,3440 3995,3440 3841,3440 3841,3440 3837,3440 3834,3440 3830,3439 3827,3438 3823,3438 3820,3437 3816,3435 3813,3434 3810,3432 3806,3431 3803,3429 3800,3427 3798,3425 3795,3422 3792,3420 3790,3417 3787,3414 3785,3412 3783,3409 3781,3405 3780,3402 3778,3399 3777,3396 3775,3392 3774,3389 3774,3385 3773,3382 3772,3378 3772,3375 3772,3371 3771,3371 3772,3371 3772,3367 3772,3364 3773,3360 3773,3357 3774,3353 3775,3350 3776,3346 3778,3343 3779,3340 3781,3337 3783,3334 3785,3331 3787,3328 3789,3325 3792,3323 3794,3320 3797,3318 3800,3316 3803,3313 3806,3312 3809,3310 3812,3308 3816,3307 3819,3306 3822,3305 3826,3304 3829,3303 3833,3302 3836,3302 3840,3302 3995,3301 3995,3302 3999,3302 4002,3302 4006,3303 4009,3303 4013,3304 4016,3305 4020,3306 4023,3308 4026,3309 4029,3311 4032,3313 4035,3315 4038,3317 4041,3319 4043,3322 4046,3324 4048,3327 4050,3330 4053,3333 4054,3336 4056,3339 4058,3342 4059,3346 4060,3349 4061,3352 4062,3356 4063,3359 4064,3363 4064,3366 4064,3370 4064,3371 Z M 4064,3440 L 4064,3440 Z M 3771,3301 L 3771,3301 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id207">
- <rect class="BoundingBox" stroke="none" fill="none" x="3771" y="3501" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4064,3571 L 4064,3571 4064,3575 4064,3578 4063,3582 4062,3585 4062,3589 4061,3592 4059,3596 4058,3599 4056,3602 4055,3606 4053,3609 4051,3612 4049,3614 4046,3617 4044,3620 4041,3622 4038,3625 4036,3627 4033,3629 4029,3631 4026,3632 4023,3634 4020,3635 4016,3637 4013,3638 4009,3638 4006,3639 4002,3640 3999,3640 3995,3640 3841,3640 3841,3640 3837,3640 3834,3640 3830,3639 3827,3638 3823,3638 3820,3637 3816,3635 3813,3634 3810,3632 3806,3631 3803,3629 3800,3627 3798,3625 3795,3622 3792,3620 3790,3617 3787,3614 3785,3612 3783,3609 3781,3605 3780,3602 3778,3599 3777,3596 3775,3592 3774,3589 3774,3585 3773,3582 3772,3578 3772,3575 3772,3571 3771,3571 3772,3571 3772,3567 3772,3564 3773,3560 3773,3557 3774,3553 3775,3550 3776,3546 3778,3543 3779,3540 3781,3537 3783,3534 3785,3531 3787,3528 3789,3525 3792,3523 3794,3520 3797,3518 3800,3516 3803,3513 3806,3512 3809,3510 3812,3508 3816,3507 3819,3506 3822,3505 3826,3504 3829,3503 3833,3502 3836,3502 3840,3502 3995,3501 3995,3502 3999,3502 4002,3502 4006,3503 4009,3503 4013,3504 4016,3505 4020,3506 4023,3508 4026,3509 4029,3511 4032,3513 4035,3515 4038,3517 4041,3519 4043,3522 4046,3524 4048,3527 4050,3530 4053,3533 4054,3536 4056,3539 4058,3542 4059,3546 4060,3549 4061,3552 4062,3556 4063,3559 4064,3563 4064,3566 4064,3570 4064,3571 Z M 4064,3640 L 4064,3640 Z M 3771,3501 L 3771,3501 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id208">
- <rect class="BoundingBox" stroke="none" fill="none" x="3771" y="3701" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4064,3771 L 4064,3771 4064,3775 4064,3778 4063,3782 4062,3785 4062,3789 4061,3792 4059,3796 4058,3799 4056,3802 4055,3806 4053,3809 4051,3812 4049,3814 4046,3817 4044,3820 4041,3822 4038,3825 4036,3827 4033,3829 4029,3831 4026,3832 4023,3834 4020,3835 4016,3837 4013,3838 4009,3838 4006,3839 4002,3840 3999,3840 3995,3840 3841,3840 3841,3840 3837,3840 3834,3840 3830,3839 3827,3838 3823,3838 3820,3837 3816,3835 3813,3834 3810,3832 3806,3831 3803,3829 3800,3827 3798,3825 3795,3822 3792,3820 3790,3817 3787,3814 3785,3812 3783,3809 3781,3805 3780,3802 3778,3799 3777,3796 3775,3792 3774,3789 3774,3785 3773,3782 3772,3778 3772,3775 3772,3771 3771,3771 3772,3771 3772,3767 3772,3764 3773,3760 3773,3757 3774,3753 3775,3750 3776,3746 3778,3743 3779,3740 3781,3737 3783,3734 3785,3731 3787,3728 3789,3725 3792,3723 3794,3720 3797,3718 3800,3716 3803,3713 3806,3712 3809,3710 3812,3708 3816,3707 3819,3706 3822,3705 3826,3704 3829,3703 3833,3702 3836,3702 3840,3702 3995,3701 3995,3702 3999,3702 4002,3702 4006,3703 4009,3703 4013,3704 4016,3705 4020,3706 4023,3708 4026,3709 4029,3711 4032,3713 4035,3715 4038,3717 4041,3719 4043,3722 4046,3724 4048,3727 4050,3730 4053,3733 4054,3736 4056,3739 4058,3742 4059,3746 4060,3749 4061,3752 4062,3756 4063,3759 4064,3763 4064,3766 4064,3770 4064,3771 Z M 4064,3840 L 4064,3840 Z M 3771,3701 L 3771,3701 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id209">
- <rect class="BoundingBox" stroke="none" fill="none" x="4450" y="3304" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4744,3374 L 4744,3374 4744,3378 4744,3381 4743,3385 4742,3388 4742,3392 4741,3395 4739,3399 4738,3402 4736,3405 4735,3409 4733,3412 4731,3415 4729,3417 4726,3420 4724,3423 4721,3425 4718,3428 4716,3430 4713,3432 4709,3434 4706,3435 4703,3437 4700,3438 4696,3440 4693,3441 4689,3441 4686,3442 4682,3443 4679,3443 4675,3443 4521,3443 4521,3443 4517,3443 4514,3443 4510,3442 4507,3441 4503,3441 4500,3440 4496,3438 4493,3437 4490,3435 4486,3434 4483,3432 4480,3430 4478,3428 4475,3425 4472,3423 4470,3420 4467,3417 4465,3415 4463,3412 4461,3408 4460,3405 4458,3402 4457,3399 4455,3395 4454,3392 4454,3388 4453,3385 4452,3381 4452,3378 4452,3374 4451,3374 4452,3374 4452,3370 4452,3367 4453,3363 4453,3360 4454,3356 4455,3353 4456,3349 4458,3346 4459,3343 4461,3340 4463,3337 4465,3334 4467,3331 4469,3328 4472,3326 4474,3323 4477,3321 4480,3319 4483,3316 4486,3315 4489,3313 4492,3311 4496,3310 4499,3309 4502,3308 4506,3307 4509,3306 4513,3305 4516,3305 4520,3305 4675,3304 4675,3305 4679,3305 4682,3305 4686,3306 4689,3306 4693,3307 4696,3308 4700,3309 4703,3311 4706,3312 4709,3314 4712,3316 4715,3318 4718,3320 4721,3322 4723,3325 4726,3327 4728,3330 4730,3333 4733,3336 4734,3339 4736,3342 4738,3345 4739,3349 4740,3352 4741,3355 4742,3359 4743,3362 4744,3366 4744,3369 4744,3373 4744,3374 Z M 4744,3443 L 4744,3443 Z M 4451,3304 L 4451,3304 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id210">
- <rect class="BoundingBox" stroke="none" fill="none" x="4450" y="3503" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4744,3574 L 4744,3574 4744,3578 4744,3581 4743,3585 4742,3588 4742,3592 4741,3595 4739,3599 4738,3602 4736,3605 4735,3609 4733,3612 4731,3615 4729,3617 4726,3620 4724,3623 4721,3625 4718,3628 4716,3630 4713,3632 4709,3634 4706,3635 4703,3637 4700,3638 4696,3640 4693,3641 4689,3641 4686,3642 4682,3643 4679,3643 4675,3643 4521,3643 4521,3643 4517,3643 4514,3643 4510,3642 4507,3641 4503,3641 4500,3640 4496,3638 4493,3637 4490,3635 4486,3634 4483,3632 4480,3630 4478,3628 4475,3625 4472,3623 4470,3620 4467,3617 4465,3615 4463,3612 4461,3608 4460,3605 4458,3602 4457,3599 4455,3595 4454,3592 4454,3588 4453,3585 4452,3581 4452,3578 4452,3574 4451,3574 4452,3574 4452,3570 4452,3567 4453,3563 4453,3560 4454,3556 4455,3553 4456,3549 4458,3546 4459,3543 4461,3540 4463,3537 4465,3534 4467,3531 4469,3528 4472,3526 4474,3523 4477,3521 4480,3519 4483,3516 4486,3515 4489,3513 4492,3511 4496,3510 4499,3509 4502,3508 4506,3507 4509,3506 4513,3505 4516,3505 4520,3505 4675,3504 4675,3505 4679,3505 4682,3505 4686,3506 4689,3506 4693,3507 4696,3508 4700,3509 4703,3511 4706,3512 4709,3514 4712,3516 4715,3518 4718,3520 4721,3522 4723,3525 4726,3527 4728,3530 4730,3533 4733,3536 4734,3539 4736,3542 4738,3545 4739,3549 4740,3552 4741,3555 4742,3559 4743,3562 4744,3566 4744,3569 4744,3573 4744,3574 Z M 4744,3643 L 4744,3643 Z M 4451,3504 L 4451,3504 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id211">
- <rect class="BoundingBox" stroke="none" fill="none" x="4450" y="3704" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4744,3774 L 4744,3774 4744,3778 4744,3781 4743,3785 4742,3788 4742,3792 4741,3795 4739,3799 4738,3802 4736,3805 4735,3809 4733,3812 4731,3815 4729,3817 4726,3820 4724,3823 4721,3825 4718,3828 4716,3830 4713,3832 4709,3834 4706,3835 4703,3837 4700,3838 4696,3840 4693,3841 4689,3841 4686,3842 4682,3843 4679,3843 4675,3843 4521,3843 4521,3843 4517,3843 4514,3843 4510,3842 4507,3841 4503,3841 4500,3840 4496,3838 4493,3837 4490,3835 4486,3834 4483,3832 4480,3830 4478,3828 4475,3825 4472,3823 4470,3820 4467,3817 4465,3815 4463,3812 4461,3808 4460,3805 4458,3802 4457,3799 4455,3795 4454,3792 4454,3788 4453,3785 4452,3781 4452,3778 4452,3774 4451,3774 4452,3774 4452,3770 4452,3767 4453,3763 4453,3760 4454,3756 4455,3753 4456,3749 4458,3746 4459,3743 4461,3740 4463,3737 4465,3734 4467,3731 4469,3728 4472,3726 4474,3723 4477,3721 4480,3719 4483,3716 4486,3715 4489,3713 4492,3711 4496,3710 4499,3709 4502,3708 4506,3707 4509,3706 4513,3705 4516,3705 4520,3705 4675,3704 4675,3705 4679,3705 4682,3705 4686,3706 4689,3706 4693,3707 4696,3708 4700,3709 4703,3711 4706,3712 4709,3714 4712,3716 4715,3718 4718,3720 4721,3722 4723,3725 4726,3727 4728,3730 4730,3733 4733,3736 4734,3739 4736,3742 4738,3745 4739,3749 4740,3752 4741,3755 4742,3759 4743,3762 4744,3766 4744,3769 4744,3773 4744,3774 Z M 4744,3843 L 4744,3843 Z M 4451,3704 L 4451,3704 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id212">
- <rect class="BoundingBox" stroke="none" fill="none" x="6394" y="3304" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6688,3374 L 6688,3374 6688,3378 6688,3381 6687,3385 6686,3388 6686,3392 6685,3395 6683,3399 6682,3402 6680,3405 6679,3409 6677,3412 6675,3415 6673,3417 6670,3420 6668,3423 6665,3425 6662,3428 6660,3430 6657,3432 6653,3434 6650,3435 6647,3437 6644,3438 6640,3440 6637,3441 6633,3441 6630,3442 6626,3443 6623,3443 6619,3443 6465,3443 6465,3443 6461,3443 6458,3443 6454,3442 6451,3441 6447,3441 6444,3440 6440,3438 6437,3437 6434,3435 6430,3434 6427,3432 6424,3430 6422,3428 6419,3425 6416,3423 6414,3420 6411,3417 6409,3415 6407,3412 6405,3408 6404,3405 6402,3402 6401,3399 6399,3395 6398,3392 6398,3388 6397,3385 6396,3381 6396,3378 6396,3374 6395,3374 6396,3374 6396,3370 6396,3367 6397,3363 6397,3360 6398,3356 6399,3353 6400,3349 6402,3346 6403,3343 6405,3340 6407,3337 6409,3334 6411,3331 6413,3328 6416,3326 6418,3323 6421,3321 6424,3319 6427,3316 6430,3315 6433,3313 6436,3311 6440,3310 6443,3309 6446,3308 6450,3307 6453,3306 6457,3305 6460,3305 6464,3305 6619,3304 6619,3305 6623,3305 6626,3305 6630,3306 6633,3306 6637,3307 6640,3308 6644,3309 6647,3311 6650,3312 6653,3314 6656,3316 6659,3318 6662,3320 6665,3322 6667,3325 6670,3327 6672,3330 6674,3333 6677,3336 6678,3339 6680,3342 6682,3345 6683,3349 6684,3352 6685,3355 6686,3359 6687,3362 6688,3366 6688,3369 6688,3373 6688,3374 Z M 6688,3443 L 6688,3443 Z M 6395,3304 L 6395,3304 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id213">
- <rect class="BoundingBox" stroke="none" fill="none" x="6394" y="3504" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6688,3574 L 6688,3574 6688,3578 6688,3581 6687,3585 6686,3588 6686,3592 6685,3595 6683,3599 6682,3602 6680,3605 6679,3609 6677,3612 6675,3615 6673,3617 6670,3620 6668,3623 6665,3625 6662,3628 6660,3630 6657,3632 6653,3634 6650,3635 6647,3637 6644,3638 6640,3640 6637,3641 6633,3641 6630,3642 6626,3643 6623,3643 6619,3643 6465,3643 6465,3643 6461,3643 6458,3643 6454,3642 6451,3641 6447,3641 6444,3640 6440,3638 6437,3637 6434,3635 6430,3634 6427,3632 6424,3630 6422,3628 6419,3625 6416,3623 6414,3620 6411,3617 6409,3615 6407,3612 6405,3608 6404,3605 6402,3602 6401,3599 6399,3595 6398,3592 6398,3588 6397,3585 6396,3581 6396,3578 6396,3574 6395,3574 6396,3574 6396,3570 6396,3567 6397,3563 6397,3560 6398,3556 6399,3553 6400,3549 6402,3546 6403,3543 6405,3540 6407,3537 6409,3534 6411,3531 6413,3528 6416,3526 6418,3523 6421,3521 6424,3519 6427,3516 6430,3515 6433,3513 6436,3511 6440,3510 6443,3509 6446,3508 6450,3507 6453,3506 6457,3505 6460,3505 6464,3505 6619,3504 6619,3505 6623,3505 6626,3505 6630,3506 6633,3506 6637,3507 6640,3508 6644,3509 6647,3511 6650,3512 6653,3514 6656,3516 6659,3518 6662,3520 6665,3522 6667,3525 6670,3527 6672,3530 6674,3533 6677,3536 6678,3539 6680,3542 6682,3545 6683,3549 6684,3552 6685,3555 6686,3559 6687,3562 6688,3566 6688,3569 6688,3573 6688,3574 Z M 6688,3643 L 6688,3643 Z M 6395,3504 L 6395,3504 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id214">
- <rect class="BoundingBox" stroke="none" fill="none" x="6394" y="3703" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6688,3773 L 6688,3773 6688,3777 6688,3780 6687,3784 6686,3787 6686,3791 6685,3794 6683,3798 6682,3801 6680,3804 6679,3808 6677,3811 6675,3814 6673,3816 6670,3819 6668,3822 6665,3824 6662,3827 6660,3829 6657,3831 6653,3833 6650,3834 6647,3836 6644,3837 6640,3839 6637,3840 6633,3840 6630,3841 6626,3842 6623,3842 6619,3842 6465,3842 6465,3842 6461,3842 6458,3842 6454,3841 6451,3840 6447,3840 6444,3839 6440,3837 6437,3836 6434,3834 6430,3833 6427,3831 6424,3829 6422,3827 6419,3824 6416,3822 6414,3819 6411,3816 6409,3814 6407,3811 6405,3807 6404,3804 6402,3801 6401,3798 6399,3794 6398,3791 6398,3787 6397,3784 6396,3780 6396,3777 6396,3773 6395,3773 6396,3773 6396,3769 6396,3766 6397,3762 6397,3759 6398,3755 6399,3752 6400,3748 6402,3745 6403,3742 6405,3739 6407,3736 6409,3733 6411,3730 6413,3727 6416,3725 6418,3722 6421,3720 6424,3718 6427,3715 6430,3714 6433,3712 6436,3710 6440,3709 6443,3708 6446,3707 6450,3706 6453,3705 6457,3704 6460,3704 6464,3704 6619,3703 6619,3704 6623,3704 6626,3704 6630,3705 6633,3705 6637,3706 6640,3707 6644,3708 6647,3710 6650,3711 6653,3713 6656,3715 6659,3717 6662,3719 6665,3721 6667,3724 6670,3726 6672,3729 6674,3732 6677,3735 6678,3738 6680,3741 6682,3744 6683,3748 6684,3751 6685,3754 6686,3758 6687,3761 6688,3765 6688,3768 6688,3772 6688,3773 Z M 6688,3842 L 6688,3842 Z M 6395,3703 L 6395,3703 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id215">
- <rect class="BoundingBox" stroke="none" fill="none" x="6046" y="3304" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6339,3374 L 6339,3374 6339,3378 6339,3381 6338,3385 6337,3388 6337,3392 6336,3395 6334,3399 6333,3402 6331,3405 6330,3409 6328,3412 6326,3415 6324,3417 6321,3420 6319,3423 6316,3425 6313,3428 6311,3430 6308,3432 6304,3434 6301,3435 6298,3437 6295,3438 6291,3440 6288,3441 6284,3441 6281,3442 6277,3443 6274,3443 6270,3443 6116,3443 6116,3443 6112,3443 6109,3443 6105,3442 6102,3441 6098,3441 6095,3440 6091,3438 6088,3437 6085,3435 6081,3434 6078,3432 6075,3430 6073,3428 6070,3425 6067,3423 6065,3420 6062,3417 6060,3415 6058,3412 6056,3408 6055,3405 6053,3402 6052,3399 6050,3395 6049,3392 6049,3388 6048,3385 6047,3381 6047,3378 6047,3374 6046,3374 6047,3374 6047,3370 6047,3367 6048,3363 6048,3360 6049,3356 6050,3353 6051,3349 6053,3346 6054,3343 6056,3340 6058,3337 6060,3334 6062,3331 6064,3328 6067,3326 6069,3323 6072,3321 6075,3319 6078,3316 6081,3315 6084,3313 6087,3311 6091,3310 6094,3309 6097,3308 6101,3307 6104,3306 6108,3305 6111,3305 6115,3305 6270,3304 6270,3305 6274,3305 6277,3305 6281,3306 6284,3306 6288,3307 6291,3308 6295,3309 6298,3311 6301,3312 6304,3314 6307,3316 6310,3318 6313,3320 6316,3322 6318,3325 6321,3327 6323,3330 6325,3333 6328,3336 6329,3339 6331,3342 6333,3345 6334,3349 6335,3352 6336,3355 6337,3359 6338,3362 6339,3366 6339,3369 6339,3373 6339,3374 Z M 6339,3443 L 6339,3443 Z M 6046,3304 L 6046,3304 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id216">
- <rect class="BoundingBox" stroke="none" fill="none" x="6046" y="3504" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6339,3574 L 6339,3574 6339,3578 6339,3581 6338,3585 6337,3588 6337,3592 6336,3595 6334,3599 6333,3602 6331,3605 6330,3609 6328,3612 6326,3615 6324,3617 6321,3620 6319,3623 6316,3625 6313,3628 6311,3630 6308,3632 6304,3634 6301,3635 6298,3637 6295,3638 6291,3640 6288,3641 6284,3641 6281,3642 6277,3643 6274,3643 6270,3643 6116,3643 6116,3643 6112,3643 6109,3643 6105,3642 6102,3641 6098,3641 6095,3640 6091,3638 6088,3637 6085,3635 6081,3634 6078,3632 6075,3630 6073,3628 6070,3625 6067,3623 6065,3620 6062,3617 6060,3615 6058,3612 6056,3608 6055,3605 6053,3602 6052,3599 6050,3595 6049,3592 6049,3588 6048,3585 6047,3581 6047,3578 6047,3574 6046,3574 6047,3574 6047,3570 6047,3567 6048,3563 6048,3560 6049,3556 6050,3553 6051,3549 6053,3546 6054,3543 6056,3540 6058,3537 6060,3534 6062,3531 6064,3528 6067,3526 6069,3523 6072,3521 6075,3519 6078,3516 6081,3515 6084,3513 6087,3511 6091,3510 6094,3509 6097,3508 6101,3507 6104,3506 6108,3505 6111,3505 6115,3505 6270,3504 6270,3505 6274,3505 6277,3505 6281,3506 6284,3506 6288,3507 6291,3508 6295,3509 6298,3511 6301,3512 6304,3514 6307,3516 6310,3518 6313,3520 6316,3522 6318,3525 6321,3527 6323,3530 6325,3533 6328,3536 6329,3539 6331,3542 6333,3545 6334,3549 6335,3552 6336,3555 6337,3559 6338,3562 6339,3566 6339,3569 6339,3573 6339,3574 Z M 6339,3643 L 6339,3643 Z M 6046,3504 L 6046,3504 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id217">
- <rect class="BoundingBox" stroke="none" fill="none" x="6046" y="3703" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6339,3773 L 6339,3773 6339,3777 6339,3780 6338,3784 6337,3787 6337,3791 6336,3794 6334,3798 6333,3801 6331,3804 6330,3808 6328,3811 6326,3814 6324,3816 6321,3819 6319,3822 6316,3824 6313,3827 6311,3829 6308,3831 6304,3833 6301,3834 6298,3836 6295,3837 6291,3839 6288,3840 6284,3840 6281,3841 6277,3842 6274,3842 6270,3842 6116,3842 6116,3842 6112,3842 6109,3842 6105,3841 6102,3840 6098,3840 6095,3839 6091,3837 6088,3836 6085,3834 6081,3833 6078,3831 6075,3829 6073,3827 6070,3824 6067,3822 6065,3819 6062,3816 6060,3814 6058,3811 6056,3807 6055,3804 6053,3801 6052,3798 6050,3794 6049,3791 6049,3787 6048,3784 6047,3780 6047,3777 6047,3773 6046,3773 6047,3773 6047,3769 6047,3766 6048,3762 6048,3759 6049,3755 6050,3752 6051,3748 6053,3745 6054,3742 6056,3739 6058,3736 6060,3733 6062,3730 6064,3727 6067,3725 6069,3722 6072,3720 6075,3718 6078,3715 6081,3714 6084,3712 6087,3710 6091,3709 6094,3708 6097,3707 6101,3706 6104,3705 6108,3704 6111,3704 6115,3704 6270,3703 6270,3704 6274,3704 6277,3704 6281,3705 6284,3705 6288,3706 6291,3707 6295,3708 6298,3710 6301,3711 6304,3713 6307,3715 6310,3717 6313,3719 6316,3721 6318,3724 6321,3726 6323,3729 6325,3732 6328,3735 6329,3738 6331,3741 6333,3744 6334,3748 6335,3751 6336,3754 6337,3758 6338,3761 6339,3765 6339,3768 6339,3772 6339,3773 Z M 6339,3842 L 6339,3842 Z M 6046,3703 L 6046,3703 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id218">
- <rect class="BoundingBox" stroke="none" fill="none" x="6725" y="3307" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7018,3377 L 7018,3377 7018,3381 7018,3384 7017,3388 7016,3391 7016,3395 7015,3398 7013,3402 7012,3405 7010,3408 7009,3412 7007,3415 7005,3418 7003,3420 7000,3423 6998,3426 6995,3428 6992,3431 6990,3433 6987,3435 6983,3437 6980,3438 6977,3440 6974,3441 6970,3443 6967,3444 6963,3444 6960,3445 6956,3446 6953,3446 6949,3446 6795,3446 6795,3446 6791,3446 6788,3446 6784,3445 6781,3444 6777,3444 6774,3443 6770,3441 6767,3440 6764,3438 6760,3437 6757,3435 6754,3433 6752,3431 6749,3428 6746,3426 6744,3423 6741,3420 6739,3418 6737,3415 6735,3411 6734,3408 6732,3405 6731,3402 6729,3398 6728,3395 6728,3391 6727,3388 6726,3384 6726,3381 6726,3377 6725,3377 6726,3377 6726,3373 6726,3370 6727,3366 6727,3363 6728,3359 6729,3356 6730,3352 6732,3349 6733,3346 6735,3343 6737,3340 6739,3337 6741,3334 6743,3331 6746,3329 6748,3326 6751,3324 6754,3322 6757,3319 6760,3318 6763,3316 6766,3314 6770,3313 6773,3312 6776,3311 6780,3310 6783,3309 6787,3308 6790,3308 6794,3308 6949,3307 6949,3308 6953,3308 6956,3308 6960,3309 6963,3309 6967,3310 6970,3311 6974,3312 6977,3314 6980,3315 6983,3317 6986,3319 6989,3321 6992,3323 6995,3325 6997,3328 7000,3330 7002,3333 7004,3336 7007,3339 7008,3342 7010,3345 7012,3348 7013,3352 7014,3355 7015,3358 7016,3362 7017,3365 7018,3369 7018,3372 7018,3376 7018,3377 Z M 7018,3446 L 7018,3446 Z M 6725,3307 L 6725,3307 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id219">
- <rect class="BoundingBox" stroke="none" fill="none" x="6725" y="3506" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7018,3576 L 7018,3576 7018,3580 7018,3583 7017,3587 7016,3590 7016,3594 7015,3597 7013,3601 7012,3604 7010,3607 7009,3611 7007,3614 7005,3617 7003,3619 7000,3622 6998,3625 6995,3627 6992,3630 6990,3632 6987,3634 6983,3636 6980,3637 6977,3639 6974,3640 6970,3642 6967,3643 6963,3643 6960,3644 6956,3645 6953,3645 6949,3645 6795,3645 6795,3645 6791,3645 6788,3645 6784,3644 6781,3643 6777,3643 6774,3642 6770,3640 6767,3639 6764,3637 6760,3636 6757,3634 6754,3632 6752,3630 6749,3627 6746,3625 6744,3622 6741,3619 6739,3617 6737,3614 6735,3610 6734,3607 6732,3604 6731,3601 6729,3597 6728,3594 6728,3590 6727,3587 6726,3583 6726,3580 6726,3576 6725,3576 6726,3576 6726,3572 6726,3569 6727,3565 6727,3562 6728,3558 6729,3555 6730,3551 6732,3548 6733,3545 6735,3542 6737,3539 6739,3536 6741,3533 6743,3530 6746,3528 6748,3525 6751,3523 6754,3521 6757,3518 6760,3517 6763,3515 6766,3513 6770,3512 6773,3511 6776,3510 6780,3509 6783,3508 6787,3507 6790,3507 6794,3507 6949,3506 6949,3507 6953,3507 6956,3507 6960,3508 6963,3508 6967,3509 6970,3510 6974,3511 6977,3513 6980,3514 6983,3516 6986,3518 6989,3520 6992,3522 6995,3524 6997,3527 7000,3529 7002,3532 7004,3535 7007,3538 7008,3541 7010,3544 7012,3547 7013,3551 7014,3554 7015,3557 7016,3561 7017,3564 7018,3568 7018,3571 7018,3575 7018,3576 Z M 7018,3645 L 7018,3645 Z M 6725,3506 L 6725,3506 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id220">
- <rect class="BoundingBox" stroke="none" fill="none" x="6725" y="3706" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7018,3776 L 7018,3776 7018,3780 7018,3783 7017,3787 7016,3790 7016,3794 7015,3797 7013,3801 7012,3804 7010,3807 7009,3811 7007,3814 7005,3817 7003,3819 7000,3822 6998,3825 6995,3827 6992,3830 6990,3832 6987,3834 6983,3836 6980,3837 6977,3839 6974,3840 6970,3842 6967,3843 6963,3843 6960,3844 6956,3845 6953,3845 6949,3845 6795,3845 6795,3845 6791,3845 6788,3845 6784,3844 6781,3843 6777,3843 6774,3842 6770,3840 6767,3839 6764,3837 6760,3836 6757,3834 6754,3832 6752,3830 6749,3827 6746,3825 6744,3822 6741,3819 6739,3817 6737,3814 6735,3810 6734,3807 6732,3804 6731,3801 6729,3797 6728,3794 6728,3790 6727,3787 6726,3783 6726,3780 6726,3776 6725,3776 6726,3776 6726,3772 6726,3769 6727,3765 6727,3762 6728,3758 6729,3755 6730,3751 6732,3748 6733,3745 6735,3742 6737,3739 6739,3736 6741,3733 6743,3730 6746,3728 6748,3725 6751,3723 6754,3721 6757,3718 6760,3717 6763,3715 6766,3713 6770,3712 6773,3711 6776,3710 6780,3709 6783,3708 6787,3707 6790,3707 6794,3707 6949,3706 6949,3707 6953,3707 6956,3707 6960,3708 6963,3708 6967,3709 6970,3710 6974,3711 6977,3713 6980,3714 6983,3716 6986,3718 6989,3720 6992,3722 6995,3724 6997,3727 7000,3729 7002,3732 7004,3735 7007,3738 7008,3741 7010,3744 7012,3747 7013,3751 7014,3754 7015,3757 7016,3761 7017,3764 7018,3768 7018,3771 7018,3775 7018,3776 Z M 7018,3845 L 7018,3845 Z M 6725,3706 L 6725,3706 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id221">
- <rect class="BoundingBox" stroke="none" fill="none" x="7453" y="3302" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7746,3372 L 7746,3372 7746,3376 7746,3379 7745,3383 7744,3386 7744,3390 7743,3393 7741,3397 7740,3400 7738,3403 7737,3407 7735,3410 7733,3413 7731,3415 7728,3418 7726,3421 7723,3423 7720,3426 7718,3428 7715,3430 7711,3432 7708,3433 7705,3435 7702,3436 7698,3438 7695,3439 7691,3439 7688,3440 7684,3441 7681,3441 7677,3441 7523,3441 7523,3441 7519,3441 7516,3441 7512,3440 7509,3439 7505,3439 7502,3438 7498,3436 7495,3435 7492,3433 7488,3432 7485,3430 7482,3428 7480,3426 7477,3423 7474,3421 7472,3418 7469,3415 7467,3413 7465,3410 7463,3406 7462,3403 7460,3400 7459,3397 7457,3393 7456,3390 7456,3386 7455,3383 7454,3379 7454,3376 7454,3372 7453,3372 7454,3372 7454,3368 7454,3365 7455,3361 7455,3358 7456,3354 7457,3351 7458,3347 7460,3344 7461,3341 7463,3338 7465,3335 7467,3332 7469,3329 7471,3326 7474,3324 7476,3321 7479,3319 7482,3317 7485,3314 7488,3313 7491,3311 7494,3309 7498,3308 7501,3307 7504,3306 7508,3305 7511,3304 7515,3303 7518,3303 7522,3303 7677,3302 7677,3303 7681,3303 7684,3303 7688,3304 7691,3304 7695,3305 7698,3306 7702,3307 7705,3309 7708,3310 7711,3312 7714,3314 7717,3316 7720,3318 7723,3320 7725,3323 7728,3325 7730,3328 7732,3331 7735,3334 7736,3337 7738,3340 7740,3343 7741,3347 7742,3350 7743,3353 7744,3357 7745,3360 7746,3364 7746,3367 7746,3371 7746,3372 Z M 7746,3441 L 7746,3441 Z M 7453,3302 L 7453,3302 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id222">
- <rect class="BoundingBox" stroke="none" fill="none" x="7453" y="3502" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7746,3572 L 7746,3572 7746,3576 7746,3579 7745,3583 7744,3586 7744,3590 7743,3593 7741,3597 7740,3600 7738,3603 7737,3607 7735,3610 7733,3613 7731,3615 7728,3618 7726,3621 7723,3623 7720,3626 7718,3628 7715,3630 7711,3632 7708,3633 7705,3635 7702,3636 7698,3638 7695,3639 7691,3639 7688,3640 7684,3641 7681,3641 7677,3641 7523,3641 7523,3641 7519,3641 7516,3641 7512,3640 7509,3639 7505,3639 7502,3638 7498,3636 7495,3635 7492,3633 7488,3632 7485,3630 7482,3628 7480,3626 7477,3623 7474,3621 7472,3618 7469,3615 7467,3613 7465,3610 7463,3606 7462,3603 7460,3600 7459,3597 7457,3593 7456,3590 7456,3586 7455,3583 7454,3579 7454,3576 7454,3572 7453,3572 7454,3572 7454,3568 7454,3565 7455,3561 7455,3558 7456,3554 7457,3551 7458,3547 7460,3544 7461,3541 7463,3538 7465,3535 7467,3532 7469,3529 7471,3526 7474,3524 7476,3521 7479,3519 7482,3517 7485,3514 7488,3513 7491,3511 7494,3509 7498,3508 7501,3507 7504,3506 7508,3505 7511,3504 7515,3503 7518,3503 7522,3503 7677,3502 7677,3503 7681,3503 7684,3503 7688,3504 7691,3504 7695,3505 7698,3506 7702,3507 7705,3509 7708,3510 7711,3512 7714,3514 7717,3516 7720,3518 7723,3520 7725,3523 7728,3525 7730,3528 7732,3531 7735,3534 7736,3537 7738,3540 7740,3543 7741,3547 7742,3550 7743,3553 7744,3557 7745,3560 7746,3564 7746,3567 7746,3571 7746,3572 Z M 7746,3641 L 7746,3641 Z M 7453,3502 L 7453,3502 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id223">
- <rect class="BoundingBox" stroke="none" fill="none" x="7453" y="3701" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7746,3771 L 7746,3771 7746,3775 7746,3778 7745,3782 7744,3785 7744,3789 7743,3792 7741,3796 7740,3799 7738,3802 7737,3806 7735,3809 7733,3812 7731,3814 7728,3817 7726,3820 7723,3822 7720,3825 7718,3827 7715,3829 7711,3831 7708,3832 7705,3834 7702,3835 7698,3837 7695,3838 7691,3838 7688,3839 7684,3840 7681,3840 7677,3840 7523,3840 7523,3840 7519,3840 7516,3840 7512,3839 7509,3838 7505,3838 7502,3837 7498,3835 7495,3834 7492,3832 7488,3831 7485,3829 7482,3827 7480,3825 7477,3822 7474,3820 7472,3817 7469,3814 7467,3812 7465,3809 7463,3805 7462,3802 7460,3799 7459,3796 7457,3792 7456,3789 7456,3785 7455,3782 7454,3778 7454,3775 7454,3771 7453,3771 7454,3771 7454,3767 7454,3764 7455,3760 7455,3757 7456,3753 7457,3750 7458,3746 7460,3743 7461,3740 7463,3737 7465,3734 7467,3731 7469,3728 7471,3725 7474,3723 7476,3720 7479,3718 7482,3716 7485,3713 7488,3712 7491,3710 7494,3708 7498,3707 7501,3706 7504,3705 7508,3704 7511,3703 7515,3702 7518,3702 7522,3702 7677,3701 7677,3702 7681,3702 7684,3702 7688,3703 7691,3703 7695,3704 7698,3705 7702,3706 7705,3708 7708,3709 7711,3711 7714,3713 7717,3715 7720,3717 7723,3719 7725,3722 7728,3724 7730,3727 7732,3730 7735,3733 7736,3736 7738,3739 7740,3742 7741,3746 7742,3749 7743,3752 7744,3756 7745,3759 7746,3763 7746,3766 7746,3770 7746,3771 Z M 7746,3840 L 7746,3840 Z M 7453,3701 L 7453,3701 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id224">
- <rect class="BoundingBox" stroke="none" fill="none" x="7104" y="3302" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7397,3372 L 7397,3372 7397,3376 7397,3379 7396,3383 7395,3386 7395,3390 7394,3393 7392,3397 7391,3400 7389,3403 7388,3407 7386,3410 7384,3413 7382,3415 7379,3418 7377,3421 7374,3423 7371,3426 7369,3428 7366,3430 7362,3432 7359,3433 7356,3435 7353,3436 7349,3438 7346,3439 7342,3439 7339,3440 7335,3441 7332,3441 7328,3441 7174,3441 7174,3441 7170,3441 7167,3441 7163,3440 7160,3439 7156,3439 7153,3438 7149,3436 7146,3435 7143,3433 7139,3432 7136,3430 7133,3428 7131,3426 7128,3423 7125,3421 7123,3418 7120,3415 7118,3413 7116,3410 7114,3406 7113,3403 7111,3400 7110,3397 7108,3393 7107,3390 7107,3386 7106,3383 7105,3379 7105,3376 7105,3372 7104,3372 7105,3372 7105,3368 7105,3365 7106,3361 7106,3358 7107,3354 7108,3351 7109,3347 7111,3344 7112,3341 7114,3338 7116,3335 7118,3332 7120,3329 7122,3326 7125,3324 7127,3321 7130,3319 7133,3317 7136,3314 7139,3313 7142,3311 7145,3309 7149,3308 7152,3307 7155,3306 7159,3305 7162,3304 7166,3303 7169,3303 7173,3303 7328,3302 7328,3303 7332,3303 7335,3303 7339,3304 7342,3304 7346,3305 7349,3306 7353,3307 7356,3309 7359,3310 7362,3312 7365,3314 7368,3316 7371,3318 7374,3320 7376,3323 7379,3325 7381,3328 7383,3331 7386,3334 7387,3337 7389,3340 7391,3343 7392,3347 7393,3350 7394,3353 7395,3357 7396,3360 7397,3364 7397,3367 7397,3371 7397,3372 Z M 7397,3441 L 7397,3441 Z M 7104,3302 L 7104,3302 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id225">
- <rect class="BoundingBox" stroke="none" fill="none" x="7104" y="3502" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7397,3572 L 7397,3572 7397,3576 7397,3579 7396,3583 7395,3586 7395,3590 7394,3593 7392,3597 7391,3600 7389,3603 7388,3607 7386,3610 7384,3613 7382,3615 7379,3618 7377,3621 7374,3623 7371,3626 7369,3628 7366,3630 7362,3632 7359,3633 7356,3635 7353,3636 7349,3638 7346,3639 7342,3639 7339,3640 7335,3641 7332,3641 7328,3641 7174,3641 7174,3641 7170,3641 7167,3641 7163,3640 7160,3639 7156,3639 7153,3638 7149,3636 7146,3635 7143,3633 7139,3632 7136,3630 7133,3628 7131,3626 7128,3623 7125,3621 7123,3618 7120,3615 7118,3613 7116,3610 7114,3606 7113,3603 7111,3600 7110,3597 7108,3593 7107,3590 7107,3586 7106,3583 7105,3579 7105,3576 7105,3572 7104,3572 7105,3572 7105,3568 7105,3565 7106,3561 7106,3558 7107,3554 7108,3551 7109,3547 7111,3544 7112,3541 7114,3538 7116,3535 7118,3532 7120,3529 7122,3526 7125,3524 7127,3521 7130,3519 7133,3517 7136,3514 7139,3513 7142,3511 7145,3509 7149,3508 7152,3507 7155,3506 7159,3505 7162,3504 7166,3503 7169,3503 7173,3503 7328,3502 7328,3503 7332,3503 7335,3503 7339,3504 7342,3504 7346,3505 7349,3506 7353,3507 7356,3509 7359,3510 7362,3512 7365,3514 7368,3516 7371,3518 7374,3520 7376,3523 7379,3525 7381,3528 7383,3531 7386,3534 7387,3537 7389,3540 7391,3543 7392,3547 7393,3550 7394,3553 7395,3557 7396,3560 7397,3564 7397,3567 7397,3571 7397,3572 Z M 7397,3641 L 7397,3641 Z M 7104,3502 L 7104,3502 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id226">
- <rect class="BoundingBox" stroke="none" fill="none" x="7104" y="3701" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7397,3771 L 7397,3771 7397,3775 7397,3778 7396,3782 7395,3785 7395,3789 7394,3792 7392,3796 7391,3799 7389,3802 7388,3806 7386,3809 7384,3812 7382,3814 7379,3817 7377,3820 7374,3822 7371,3825 7369,3827 7366,3829 7362,3831 7359,3832 7356,3834 7353,3835 7349,3837 7346,3838 7342,3838 7339,3839 7335,3840 7332,3840 7328,3840 7174,3840 7174,3840 7170,3840 7167,3840 7163,3839 7160,3838 7156,3838 7153,3837 7149,3835 7146,3834 7143,3832 7139,3831 7136,3829 7133,3827 7131,3825 7128,3822 7125,3820 7123,3817 7120,3814 7118,3812 7116,3809 7114,3805 7113,3802 7111,3799 7110,3796 7108,3792 7107,3789 7107,3785 7106,3782 7105,3778 7105,3775 7105,3771 7104,3771 7105,3771 7105,3767 7105,3764 7106,3760 7106,3757 7107,3753 7108,3750 7109,3746 7111,3743 7112,3740 7114,3737 7116,3734 7118,3731 7120,3728 7122,3725 7125,3723 7127,3720 7130,3718 7133,3716 7136,3713 7139,3712 7142,3710 7145,3708 7149,3707 7152,3706 7155,3705 7159,3704 7162,3703 7166,3702 7169,3702 7173,3702 7328,3701 7328,3702 7332,3702 7335,3702 7339,3703 7342,3703 7346,3704 7349,3705 7353,3706 7356,3708 7359,3709 7362,3711 7365,3713 7368,3715 7371,3717 7374,3719 7376,3722 7379,3724 7381,3727 7383,3730 7386,3733 7387,3736 7389,3739 7391,3742 7392,3746 7393,3749 7394,3752 7395,3756 7396,3759 7397,3763 7397,3766 7397,3770 7397,3771 Z M 7397,3840 L 7397,3840 Z M 7104,3701 L 7104,3701 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id227">
- <rect class="BoundingBox" stroke="none" fill="none" x="7783" y="3305" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8077,3375 L 8077,3375 8077,3379 8077,3382 8076,3386 8075,3389 8075,3393 8074,3396 8072,3400 8071,3403 8069,3406 8068,3410 8066,3413 8064,3416 8062,3418 8059,3421 8057,3424 8054,3426 8051,3429 8049,3431 8046,3433 8042,3435 8039,3436 8036,3438 8033,3439 8029,3441 8026,3442 8022,3442 8019,3443 8015,3444 8012,3444 8008,3444 7854,3444 7854,3444 7850,3444 7847,3444 7843,3443 7840,3442 7836,3442 7833,3441 7829,3439 7826,3438 7823,3436 7819,3435 7816,3433 7813,3431 7811,3429 7808,3426 7805,3424 7803,3421 7800,3418 7798,3416 7796,3413 7794,3409 7793,3406 7791,3403 7790,3400 7788,3396 7787,3393 7787,3389 7786,3386 7785,3382 7785,3379 7785,3375 7784,3375 7785,3375 7785,3371 7785,3368 7786,3364 7786,3361 7787,3357 7788,3354 7789,3350 7791,3347 7792,3344 7794,3341 7796,3338 7798,3335 7800,3332 7802,3329 7805,3327 7807,3324 7810,3322 7813,3320 7816,3317 7819,3316 7822,3314 7825,3312 7829,3311 7832,3310 7835,3309 7839,3308 7842,3307 7846,3306 7849,3306 7853,3306 8008,3305 8008,3306 8012,3306 8015,3306 8019,3307 8022,3307 8026,3308 8029,3309 8033,3310 8036,3312 8039,3313 8042,3315 8045,3317 8048,3319 8051,3321 8054,3323 8056,3326 8059,3328 8061,3331 8063,3334 8066,3337 8067,3340 8069,3343 8071,3346 8072,3350 8073,3353 8074,3356 8075,3360 8076,3363 8077,3367 8077,3370 8077,3374 8077,3375 Z M 8077,3444 L 8077,3444 Z M 7784,3305 L 7784,3305 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id228">
- <rect class="BoundingBox" stroke="none" fill="none" x="7783" y="3505" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8077,3575 L 8077,3575 8077,3579 8077,3582 8076,3586 8075,3589 8075,3593 8074,3596 8072,3600 8071,3603 8069,3606 8068,3610 8066,3613 8064,3616 8062,3618 8059,3621 8057,3624 8054,3626 8051,3629 8049,3631 8046,3633 8042,3635 8039,3636 8036,3638 8033,3639 8029,3641 8026,3642 8022,3642 8019,3643 8015,3644 8012,3644 8008,3644 7854,3644 7854,3644 7850,3644 7847,3644 7843,3643 7840,3642 7836,3642 7833,3641 7829,3639 7826,3638 7823,3636 7819,3635 7816,3633 7813,3631 7811,3629 7808,3626 7805,3624 7803,3621 7800,3618 7798,3616 7796,3613 7794,3609 7793,3606 7791,3603 7790,3600 7788,3596 7787,3593 7787,3589 7786,3586 7785,3582 7785,3579 7785,3575 7784,3575 7785,3575 7785,3571 7785,3568 7786,3564 7786,3561 7787,3557 7788,3554 7789,3550 7791,3547 7792,3544 7794,3541 7796,3538 7798,3535 7800,3532 7802,3529 7805,3527 7807,3524 7810,3522 7813,3520 7816,3517 7819,3516 7822,3514 7825,3512 7829,3511 7832,3510 7835,3509 7839,3508 7842,3507 7846,3506 7849,3506 7853,3506 8008,3505 8008,3506 8012,3506 8015,3506 8019,3507 8022,3507 8026,3508 8029,3509 8033,3510 8036,3512 8039,3513 8042,3515 8045,3517 8048,3519 8051,3521 8054,3523 8056,3526 8059,3528 8061,3531 8063,3534 8066,3537 8067,3540 8069,3543 8071,3546 8072,3550 8073,3553 8074,3556 8075,3560 8076,3563 8077,3567 8077,3570 8077,3574 8077,3575 Z M 8077,3644 L 8077,3644 Z M 7784,3505 L 7784,3505 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id229">
- <rect class="BoundingBox" stroke="none" fill="none" x="7783" y="3704" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8077,3774 L 8077,3774 8077,3778 8077,3781 8076,3785 8075,3788 8075,3792 8074,3795 8072,3799 8071,3802 8069,3805 8068,3809 8066,3812 8064,3815 8062,3817 8059,3820 8057,3823 8054,3825 8051,3828 8049,3830 8046,3832 8042,3834 8039,3835 8036,3837 8033,3838 8029,3840 8026,3841 8022,3841 8019,3842 8015,3843 8012,3843 8008,3843 7854,3843 7854,3843 7850,3843 7847,3843 7843,3842 7840,3841 7836,3841 7833,3840 7829,3838 7826,3837 7823,3835 7819,3834 7816,3832 7813,3830 7811,3828 7808,3825 7805,3823 7803,3820 7800,3817 7798,3815 7796,3812 7794,3808 7793,3805 7791,3802 7790,3799 7788,3795 7787,3792 7787,3788 7786,3785 7785,3781 7785,3778 7785,3774 7784,3774 7785,3774 7785,3770 7785,3767 7786,3763 7786,3760 7787,3756 7788,3753 7789,3749 7791,3746 7792,3743 7794,3740 7796,3737 7798,3734 7800,3731 7802,3728 7805,3726 7807,3723 7810,3721 7813,3719 7816,3716 7819,3715 7822,3713 7825,3711 7829,3710 7832,3709 7835,3708 7839,3707 7842,3706 7846,3705 7849,3705 7853,3705 8008,3704 8008,3705 8012,3705 8015,3705 8019,3706 8022,3706 8026,3707 8029,3708 8033,3709 8036,3711 8039,3712 8042,3714 8045,3716 8048,3718 8051,3720 8054,3722 8056,3725 8059,3727 8061,3730 8063,3733 8066,3736 8067,3739 8069,3742 8071,3745 8072,3749 8073,3752 8074,3755 8075,3759 8076,3762 8077,3766 8077,3769 8077,3773 8077,3774 Z M 8077,3843 L 8077,3843 Z M 7784,3704 L 7784,3704 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id230">
- <rect class="BoundingBox" stroke="none" fill="none" x="1170" y="5107" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1420" y="5503"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1420" y="5850"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id231">
- <rect class="BoundingBox" stroke="none" fill="none" x="4710" y="4455" width="609" height="382"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 5014,4836 L 4710,4836 4710,4455 5318,4455 5318,4836 5014,4836 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4778" y="4759"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id232">
- <rect class="BoundingBox" stroke="none" fill="none" x="4617" y="11385" width="892" height="1018"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 4617,11893 L 4876,11385 4876,11639 5247,11639 5247,11385 5507,11893 5247,12402 5247,12147 4876,12147 4876,12402 4617,11893 Z M 4617,11385 L 4617,11385 Z M 5507,12402 L 5507,12402 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id233">
- <rect class="BoundingBox" stroke="none" fill="none" x="4772" y="11665" width="609" height="382"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 5076,12046 L 4772,12046 4772,11665 5380,11665 5380,12046 5076,12046 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4840" y="11969"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/docs/report/introduction/testbed-3n-dnv.svg b/docs/report/introduction/testbed-3n-dnv.svg
deleted file mode 100644
index fd9fe15d3a..0000000000
--- a/docs/report/introduction/testbed-3n-dnv.svg
+++ /dev/null
@@ -1,1220 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="170mm" height="140mm" viewBox="0 0 17000 14000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="17000" height="14000"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="17" y="14" width="16966" height="13972"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Arial embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1006" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
- <glyph unicode="U" horiz-adv-x="1192" d="M 731,-20 C 616,-20 515,1 429,43 343,85 276,146 229,226 182,306 158,401 158,512 L 158,1409 349,1409 349,528 C 349,399 382,302 447,235 512,168 607,135 730,135 857,135 955,170 1026,239 1096,308 1131,408 1131,541 L 1131,1409 1321,1409 1321,530 C 1321,416 1297,318 1249,235 1200,152 1132,89 1044,46 955,2 851,-20 731,-20 Z"/>
- <glyph unicode="P" horiz-adv-x="1112" d="M 1258,985 C 1258,852 1215,746 1128,667 1041,588 922,549 773,549 L 359,549 359,0 168,0 168,1409 761,1409 C 919,1409 1041,1372 1128,1298 1215,1224 1258,1120 1258,985 Z M 1066,983 C 1066,1165 957,1256 738,1256 L 359,1256 359,700 746,700 C 959,700 1066,794 1066,983 Z"/>
- <glyph unicode="I" horiz-adv-x="213" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
- <glyph unicode="6" horiz-adv-x="980" d="M 1049,461 C 1049,312 1009,195 928,109 847,23 736,-20 594,-20 435,-20 314,39 230,157 146,275 104,447 104,672 104,916 148,1103 235,1234 322,1365 447,1430 608,1430 821,1430 955,1334 1010,1143 L 838,1112 C 803,1227 725,1284 606,1284 503,1284 424,1236 368,1141 311,1045 283,906 283,725 316,786 362,832 421,864 480,895 548,911 625,911 755,911 858,870 935,789 1011,708 1049,598 1049,461 Z M 866,453 C 866,555 841,634 791,689 741,744 671,772 582,772 498,772 430,748 379,699 327,650 301,582 301,496 301,387 328,298 382,229 435,160 504,125 588,125 675,125 743,154 792,213 841,271 866,351 866,453 Z"/>
- <glyph unicode="4" horiz-adv-x="1060" d="M 881,319 L 881,0 711,0 711,319 47,319 47,459 692,1409 881,1409 881,461 1079,461 1079,319 881,319 Z M 711,1206 C 710,1202 700,1184 683,1153 666,1122 653,1100 644,1087 L 283,555 229,481 213,461 711,461 711,1206 Z"/>
- <glyph unicode="1" horiz-adv-x="927" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="z" horiz-adv-x="927" d="M 113,1120 L 987,1120 987,952 295,147 987,147 987,0 88,0 88,168 780,973 113,973 113,1120 Z"/>
- <glyph unicode="y" horiz-adv-x="1112" d="M 659,-104 C 607,-237 556,-324 507,-365 458,-406 392,-426 309,-426 L 162,-426 162,-272 270,-272 C 321,-272 360,-260 388,-236 416,-212 447,-155 481,-66 L 514,18 61,1120 256,1120 606,244 956,1120 1151,1120 659,-104 Z"/>
- <glyph unicode="x" horiz-adv-x="1112" d="M 1124,1120 L 719,575 1145,0 928,0 602,440 276,0 59,0 494,586 96,1120 313,1120 610,721 907,1120 1124,1120 Z"/>
- <glyph unicode="v" horiz-adv-x="1112" d="M 61,1120 L 256,1120 606,180 956,1120 1151,1120 731,0 481,0 61,1120 Z"/>
- <glyph unicode="u" horiz-adv-x="953" d="M 174,442 L 174,1120 358,1120 358,449 C 358,343 379,264 420,211 461,158 523,131 606,131 705,131 784,163 842,226 899,289 928,376 928,485 L 928,1120 1112,1120 1112,0 928,0 928,172 C 883,104 832,54 773,21 714,-12 645,-29 567,-29 438,-29 341,11 274,91 207,171 174,288 174,442 Z "/>
- <glyph unicode="t" horiz-adv-x="715" d="M 375,1438 L 375,1120 754,1120 754,977 375,977 375,369 C 375,278 388,219 413,193 438,167 488,154 565,154 L 754,154 754,0 565,0 C 423,0 325,27 271,80 217,133 190,229 190,369 L 190,977 55,977 55,1120 190,1120 190,1438 375,1438 Z"/>
- <glyph unicode="s" horiz-adv-x="874" d="M 907,1087 L 907,913 C 855,940 801,960 745,973 689,986 631,993 571,993 480,993 411,979 366,951 320,923 297,881 297,825 297,782 313,749 346,725 379,700 444,677 543,655 L 606,641 C 737,613 830,574 885,523 940,472 967,400 967,309 967,205 926,123 844,62 761,1 648,-29 504,-29 444,-29 382,-23 317,-12 252,0 183,18 111,41 L 111,231 C 179,196 246,169 312,152 378,134 443,125 508,125 595,125 661,140 708,170 755,199 778,241 778,295 778,345 761,383 728,410 694,437 620,462 506,487 L 442,502 C 328,526 246,563 195,613 144,662 119,730 119,817 119,922 156,1004 231,1061 306,1118 412,1147 549,1147 617,1147 681,1142 741,1132 801,1122 856,1107 907,1087 Z"/>
- <glyph unicode="r" horiz-adv-x="663" d="M 842,948 C 821,960 799,969 775,975 750,980 723,983 694,983 590,983 510,949 455,882 399,814 371,717 371,590 L 371,0 186,0 186,1120 371,1120 371,946 C 410,1014 460,1065 522,1098 584,1131 659,1147 748,1147 761,1147 775,1146 790,1145 805,1143 822,1140 841,1137 L 842,948 Z"/>
- <glyph unicode="o" horiz-adv-x="1033" d="M 627,991 C 528,991 450,953 393,876 336,799 307,693 307,559 307,425 336,320 393,243 450,166 528,127 627,127 725,127 803,166 860,243 917,320 946,426 946,559 946,692 917,797 860,875 803,952 725,991 627,991 Z M 627,1147 C 787,1147 913,1095 1004,991 1095,887 1141,743 1141,559 1141,376 1095,232 1004,128 913,23 787,-29 627,-29 466,-29 341,23 250,128 159,232 113,376 113,559 113,743 159,887 250,991 341,1095 466,1147 627,1147 Z"/>
- <glyph unicode="n" horiz-adv-x="954" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="m" horiz-adv-x="1642" d="M 1065,905 C 1111,988 1166,1049 1230,1088 1294,1127 1369,1147 1456,1147 1573,1147 1663,1106 1726,1025 1789,943 1821,827 1821,676 L 1821,0 1636,0 1636,670 C 1636,777 1617,857 1579,909 1541,961 1483,987 1405,987 1310,987 1234,955 1179,892 1124,829 1096,742 1096,633 L 1096,0 911,0 911,670 C 911,778 892,858 854,910 816,961 757,987 678,987 584,987 509,955 454,892 399,828 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 413,1015 463,1065 522,1098 581,1131 650,1147 731,1147 812,1147 882,1126 939,1085 996,1044 1038,984 1065,905 Z"/>
- <glyph unicode="l" horiz-adv-x="213" d="M 193,1556 L 377,1556 377,0 193,0 193,1556 Z"/>
- <glyph unicode="k" horiz-adv-x="1007" d="M 186,1556 L 371,1556 371,637 920,1120 1155,1120 561,596 1180,0 940,0 371,547 371,0 186,0 186,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="213" d="M 193,1120 L 377,1120 377,0 193,0 193,1120 Z M 193,1556 L 377,1556 377,1323 193,1323 193,1556 Z"/>
- <glyph unicode="f" horiz-adv-x="742" d="M 760,1556 L 760,1403 584,1403 C 518,1403 472,1390 447,1363 421,1336 408,1288 408,1219 L 408,1120 711,1120 711,977 408,977 408,0 223,0 223,977 47,977 47,1120 223,1120 223,1198 C 223,1323 252,1414 310,1471 368,1528 460,1556 586,1556 L 760,1556 Z"/>
- <glyph unicode="e" horiz-adv-x="1059" d="M 1151,606 L 1151,516 305,516 C 313,389 351,293 420,227 488,160 583,127 705,127 776,127 844,136 911,153 977,170 1043,196 1108,231 L 1108,57 C 1042,29 974,8 905,-7 836,-22 765,-29 694,-29 515,-29 374,23 270,127 165,231 113,372 113,549 113,732 163,878 262,986 361,1093 494,1147 662,1147 813,1147 932,1099 1020,1002 1107,905 1151,773 1151,606 Z M 967,659 C 966,760 938,841 883,901 828,961 755,991 664,991 561,991 479,962 418,904 356,846 320,764 311,659 L 967,659 Z"/>
- <glyph unicode="d" horiz-adv-x="1006" d="M 930,950 L 930,1556 1114,1556 1114,0 930,0 930,168 C 891,101 843,52 784,20 725,-13 654,-29 571,-29 436,-29 326,25 241,133 156,241 113,383 113,559 113,735 156,877 241,985 326,1093 436,1147 571,1147 654,1147 725,1131 784,1099 843,1066 891,1017 930,950 Z M 303,559 C 303,424 331,318 387,241 442,164 519,125 616,125 713,125 790,164 846,241 902,318 930,424 930,559 930,694 902,801 846,878 790,955 713,993 616,993 519,993 442,955 387,878 331,801 303,694 303,559 Z"/>
- <glyph unicode="c" horiz-adv-x="900" d="M 999,1077 L 999,905 C 947,934 895,955 843,970 790,984 737,991 684,991 565,991 472,953 406,878 340,802 307,696 307,559 307,422 340,316 406,241 472,165 565,127 684,127 737,127 790,134 843,149 895,163 947,184 999,213 L 999,43 C 948,19 895,1 840,-11 785,-23 726,-29 664,-29 495,-29 361,24 262,130 163,236 113,379 113,559 113,742 163,885 264,990 364,1095 501,1147 676,1147 733,1147 788,1141 842,1130 896,1118 948,1100 999,1077 Z"/>
- <glyph unicode="a" horiz-adv-x="980" d="M 702,563 C 553,563 450,546 393,512 336,478 307,420 307,338 307,273 329,221 372,183 415,144 473,125 547,125 649,125 731,161 793,234 854,306 885,402 885,522 L 885,563 702,563 Z M 1069,639 L 1069,0 885,0 885,170 C 843,102 791,52 728,20 665,-13 589,-29 498,-29 383,-29 292,3 225,68 157,132 123,218 123,326 123,452 165,547 250,611 334,675 460,707 627,707 L 885,707 885,725 C 885,810 857,875 802,922 746,968 668,991 567,991 503,991 441,983 380,968 319,953 261,930 205,899 L 205,1069 C 272,1095 338,1115 401,1128 464,1141 526,1147 586,1147 748,1147 869,1105 949,1021 1029,937 1069,810 1069,639 Z"/>
- <glyph unicode="X" horiz-adv-x="1297" d="M 129,1493 L 346,1493 717,938 1090,1493 1307,1493 827,776 1339,0 1122,0 702,635 279,0 61,0 594,797 129,1493 Z"/>
- <glyph unicode="U" horiz-adv-x="1165" d="M 178,1493 L 381,1493 381,586 C 381,426 410,311 468,241 526,170 620,135 750,135 879,135 973,170 1031,241 1089,311 1118,426 1118,586 L 1118,1493 1321,1493 1321,561 C 1321,366 1273,219 1177,120 1080,21 938,-29 750,-29 561,-29 419,21 323,120 226,219 178,366 178,561 L 178,1493 Z"/>
- <glyph unicode="T" horiz-adv-x="1297" d="M -6,1493 L 1257,1493 1257,1323 727,1323 727,0 524,0 524,1323 -6,1323 -6,1493 Z"/>
- <glyph unicode="S" horiz-adv-x="1060" d="M 1096,1444 L 1096,1247 C 1019,1284 947,1311 879,1329 811,1347 745,1356 682,1356 572,1356 487,1335 428,1292 368,1249 338,1189 338,1110 338,1044 358,994 398,961 437,927 512,900 623,879 L 745,854 C 896,825 1007,775 1079,703 1150,630 1186,533 1186,412 1186,267 1138,158 1041,83 944,8 801,-29 614,-29 543,-29 468,-21 389,-5 309,11 226,35 141,66 L 141,274 C 223,228 303,193 382,170 461,147 538,135 614,135 729,135 818,158 881,203 944,248 975,313 975,397 975,470 953,528 908,569 863,610 789,641 686,662 L 563,686 C 412,716 303,763 236,827 169,891 135,980 135,1094 135,1226 182,1330 275,1406 368,1482 496,1520 659,1520 729,1520 800,1514 873,1501 946,1488 1020,1469 1096,1444 Z"/>
- <glyph unicode="R" horiz-adv-x="1192" d="M 909,700 C 952,685 995,654 1036,606 1077,558 1118,492 1159,408 L 1364,0 1147,0 956,383 C 907,483 859,549 813,582 766,615 703,631 623,631 L 403,631 403,0 201,0 201,1493 657,1493 C 828,1493 955,1457 1039,1386 1123,1315 1165,1207 1165,1063 1165,969 1143,891 1100,829 1056,767 992,724 909,700 Z M 403,1327 L 403,797 657,797 C 754,797 828,820 878,865 927,910 952,976 952,1063 952,1150 927,1216 878,1261 828,1305 754,1327 657,1327 L 403,1327 Z"/>
- <glyph unicode="P" horiz-adv-x="980" d="M 403,1327 L 403,766 657,766 C 751,766 824,790 875,839 926,888 952,957 952,1047 952,1136 926,1205 875,1254 824,1303 751,1327 657,1327 L 403,1327 Z M 201,1493 L 657,1493 C 824,1493 951,1455 1037,1380 1122,1304 1165,1193 1165,1047 1165,900 1122,788 1037,713 951,638 824,600 657,600 L 403,600 403,0 201,0 201,1493 Z"/>
- <glyph unicode="N" horiz-adv-x="1165" d="M 201,1493 L 473,1493 1135,244 1135,1493 1331,1493 1331,0 1059,0 397,1249 397,0 201,0 201,1493 Z"/>
- <glyph unicode="I" horiz-adv-x="239" d="M 201,1493 L 403,1493 403,0 201,0 201,1493 Z"/>
- <glyph unicode="H" horiz-adv-x="1165" d="M 201,1493 L 403,1493 403,881 1137,881 1137,1493 1339,1493 1339,0 1137,0 1137,711 403,711 403,0 201,0 201,1493 Z"/>
- <glyph unicode="G" horiz-adv-x="1324" d="M 1219,213 L 1219,614 889,614 889,780 1419,780 1419,139 C 1341,84 1255,42 1161,14 1067,-15 967,-29 860,-29 627,-29 444,39 313,176 181,312 115,502 115,745 115,989 181,1179 313,1316 444,1452 627,1520 860,1520 957,1520 1050,1508 1138,1484 1225,1460 1306,1425 1380,1378 L 1380,1163 C 1305,1226 1226,1274 1142,1306 1058,1338 970,1354 877,1354 694,1354 557,1303 466,1201 374,1099 328,947 328,745 328,544 374,392 466,290 557,188 694,137 877,137 948,137 1012,143 1068,156 1124,168 1174,187 1219,213 Z"/>
- <glyph unicode="D" horiz-adv-x="1271" d="M 403,1327 L 403,166 647,166 C 853,166 1004,213 1100,306 1195,399 1243,547 1243,748 1243,948 1195,1095 1100,1188 1004,1281 853,1327 647,1327 L 403,1327 Z M 201,1493 L 616,1493 C 905,1493 1118,1433 1253,1313 1388,1192 1456,1004 1456,748 1456,491 1388,302 1252,181 1116,60 904,0 616,0 L 201,0 201,1493 Z"/>
- <glyph unicode="C" horiz-adv-x="1218" d="M 1319,1378 L 1319,1165 C 1251,1228 1179,1276 1102,1307 1025,1338 943,1354 856,1354 685,1354 555,1302 464,1198 373,1093 328,942 328,745 328,548 373,398 464,294 555,189 685,137 856,137 943,137 1025,153 1102,184 1179,215 1251,263 1319,326 L 1319,115 C 1248,67 1174,31 1095,7 1016,-17 932,-29 844,-29 618,-29 440,40 310,179 180,317 115,506 115,745 115,985 180,1174 310,1313 440,1451 618,1520 844,1520 933,1520 1018,1508 1097,1485 1176,1461 1250,1425 1319,1378 Z"/>
- <glyph unicode="A" horiz-adv-x="1403" d="M 700,1294 L 426,551 975,551 700,1294 Z M 586,1493 L 815,1493 1384,0 1174,0 1038,383 365,383 229,0 16,0 586,1493 Z"/>
- <glyph unicode="@" horiz-adv-x="1774" d="M 762,537 C 762,442 786,367 833,313 880,258 945,231 1028,231 1110,231 1175,258 1222,313 1269,368 1292,442 1292,537 1292,630 1268,705 1220,760 1172,815 1107,842 1026,842 945,842 881,815 834,760 786,705 762,631 762,537 Z M 1307,238 C 1267,187 1221,149 1170,125 1118,100 1058,88 989,88 874,88 781,130 710,213 638,296 602,404 602,537 602,670 638,779 710,862 782,945 875,987 989,987 1058,987 1118,975 1170,950 1222,925 1268,887 1307,836 L 1307,967 1450,967 1450,231 C 1547,246 1624,290 1679,365 1734,439 1761,535 1761,653 1761,724 1751,791 1730,854 1709,917 1677,975 1634,1028 1565,1115 1480,1182 1381,1229 1281,1275 1172,1298 1055,1298 973,1298 894,1287 819,1266 744,1244 674,1212 610,1169 505,1101 424,1012 365,902 306,791 276,672 276,543 276,437 295,338 334,245 372,152 427,71 500,0 570,-69 651,-122 743,-159 835,-195 933,-213 1038,-213 1124,-213 1209,-198 1292,-170 1375,-140 1451,-99 1520,-45 L 1610,-156 C 1527,-221 1436,-270 1338,-305 1239,-339 1139,-356 1038,-356 915,-356 798,-334 689,-291 580,-247 482,-183 397,-100 312,-17 247,80 202,190 157,299 135,417 135,543 135,664 158,780 203,890 248,1000 313,1097 397,1180 483,1265 582,1330 695,1375 808,1420 927,1442 1053,1442 1194,1442 1326,1413 1447,1355 1568,1297 1669,1215 1751,1108 1801,1043 1839,972 1866,895 1892,818 1905,739 1905,657 1905,482 1852,343 1746,242 1640,141 1494,88 1307,84 L 1307,238 Z"/>
- <glyph unicode="8" horiz-adv-x="1033" d="M 651,709 C 555,709 480,683 425,632 370,581 342,510 342,420 342,330 370,259 425,208 480,157 555,131 651,131 747,131 823,157 878,209 933,260 961,331 961,420 961,510 934,581 879,632 824,683 748,709 651,709 Z M 449,795 C 362,816 295,857 247,916 198,975 174,1048 174,1133 174,1252 217,1347 302,1416 387,1485 503,1520 651,1520 800,1520 916,1485 1001,1416 1086,1347 1128,1252 1128,1133 1128,1048 1104,975 1056,916 1007,857 940,816 854,795 951,772 1027,728 1082,662 1136,596 1163,515 1163,420 1163,275 1119,164 1031,87 942,10 816,-29 651,-29 486,-29 360,10 272,87 183,164 139,275 139,420 139,515 166,596 221,662 276,728 352,772 449,795 Z M 375,1114 C 375,1037 399,976 448,933 496,890 564,868 651,868 738,868 806,890 855,933 904,976 928,1037 928,1114 928,1191 904,1252 855,1295 806,1338 738,1360 651,1360 564,1360 496,1338 448,1295 399,1252 375,1191 375,1114 Z"/>
- <glyph unicode="6" horiz-adv-x="1060" d="M 676,827 C 585,827 514,796 461,734 408,672 381,587 381,479 381,372 408,287 461,225 514,162 585,131 676,131 767,131 839,162 892,225 945,287 971,372 971,479 971,587 945,672 892,734 839,796 767,827 676,827 Z M 1077,1460 L 1077,1276 C 1026,1300 975,1318 924,1331 872,1344 821,1350 770,1350 637,1350 535,1305 465,1215 394,1125 354,989 344,807 383,865 433,910 492,941 551,972 617,987 688,987 838,987 957,942 1044,851 1131,760 1174,636 1174,479 1174,326 1129,203 1038,110 947,17 827,-29 676,-29 503,-29 371,37 280,170 189,302 143,494 143,745 143,981 199,1169 311,1310 423,1450 573,1520 762,1520 813,1520 864,1515 916,1505 967,1495 1021,1480 1077,1460 Z"/>
- <glyph unicode="5" horiz-adv-x="1007" d="M 221,1493 L 1014,1493 1014,1323 406,1323 406,957 C 435,967 465,975 494,980 523,985 553,987 582,987 749,987 881,941 978,850 1075,759 1124,635 1124,479 1124,318 1074,194 974,105 874,16 733,-29 551,-29 488,-29 425,-24 360,-13 295,-2 227,14 158,35 L 158,238 C 218,205 280,181 344,165 408,149 476,141 547,141 662,141 754,171 821,232 888,293 922,375 922,479 922,583 888,665 821,726 754,787 662,817 547,817 493,817 439,811 386,799 332,787 277,768 221,743 L 221,1493 Z"/>
- <glyph unicode="4" horiz-adv-x="1113" d="M 774,1317 L 264,520 774,520 774,1317 Z M 721,1493 L 975,1493 975,520 1188,520 1188,352 975,352 975,0 774,0 774,352 100,352 100,547 721,1493 Z"/>
- <glyph unicode="3" horiz-adv-x="1007" d="M 831,805 C 928,784 1003,741 1058,676 1112,611 1139,530 1139,434 1139,287 1088,173 987,92 886,11 742,-29 555,-29 492,-29 428,-23 362,-11 295,2 227,20 156,45 L 156,240 C 212,207 273,183 340,166 407,149 476,141 549,141 676,141 772,166 839,216 905,266 938,339 938,434 938,522 907,591 846,641 784,690 698,715 588,715 L 414,715 414,881 596,881 C 695,881 771,901 824,941 877,980 903,1037 903,1112 903,1189 876,1248 822,1289 767,1330 689,1350 588,1350 533,1350 473,1344 410,1332 347,1320 277,1301 201,1276 L 201,1456 C 278,1477 350,1493 417,1504 484,1515 547,1520 606,1520 759,1520 881,1485 970,1416 1059,1346 1104,1252 1104,1133 1104,1050 1080,981 1033,924 986,867 918,827 831,805 Z"/>
- <glyph unicode="2" horiz-adv-x="980" d="M 393,170 L 1098,170 1098,0 150,0 150,170 C 227,249 331,356 464,490 596,623 679,709 713,748 778,821 823,882 849,933 874,983 887,1032 887,1081 887,1160 859,1225 804,1275 748,1325 675,1350 586,1350 523,1350 456,1339 386,1317 315,1295 240,1262 160,1217 L 160,1421 C 241,1454 317,1478 388,1495 459,1512 523,1520 582,1520 737,1520 860,1481 952,1404 1044,1327 1090,1223 1090,1094 1090,1033 1079,975 1056,920 1033,865 991,800 930,725 913,706 860,650 771,558 682,465 556,336 393,170 Z"/>
- <glyph unicode="1" horiz-adv-x="900" d="M 254,170 L 584,170 584,1309 225,1237 225,1421 582,1493 784,1493 784,170 1114,170 1114,0 254,0 254,170 Z"/>
- <glyph unicode="0" horiz-adv-x="1033" d="M 651,1360 C 547,1360 469,1309 417,1207 364,1104 338,950 338,745 338,540 364,387 417,285 469,182 547,131 651,131 756,131 834,182 887,285 939,387 965,540 965,745 965,950 939,1104 887,1207 834,1309 756,1360 651,1360 Z M 651,1520 C 818,1520 946,1454 1035,1322 1123,1189 1167,997 1167,745 1167,494 1123,302 1035,170 946,37 818,-29 651,-29 484,-29 356,37 268,170 179,302 135,494 135,745 135,997 179,1189 268,1322 356,1454 484,1520 651,1520 Z"/>
- <glyph unicode="." horiz-adv-x="239" d="M 219,254 L 430,254 430,0 219,0 219,254 Z"/>
- <glyph unicode="-" horiz-adv-x="583" d="M 100,643 L 639,643 639,479 100,479 100,643 Z"/>
- <glyph unicode=")" horiz-adv-x="477" d="M 164,1554 L 324,1554 C 424,1397 499,1243 549,1092 598,941 623,792 623,643 623,494 598,343 549,192 499,41 424,-113 324,-270 L 164,-270 C 253,-117 319,35 363,186 406,337 428,489 428,643 428,797 406,949 363,1099 319,1249 253,1401 164,1554 Z"/>
- <glyph unicode="(" horiz-adv-x="477" d="M 635,1554 C 546,1401 479,1249 436,1099 393,949 371,797 371,643 371,489 393,337 437,186 480,35 546,-117 635,-270 L 475,-270 C 375,-113 300,41 251,192 201,343 176,494 176,643 176,792 201,941 250,1092 299,1243 374,1397 475,1554 L 635,1554 Z"/>
- <glyph unicode=" " horiz-adv-x="635"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150 id151 id152 id153 id154"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="2093" y="6287" width="4089" height="2260"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 6128,8493 L 6128,7223 2146,7223 2146,6340"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="6514" y="6250" width="4460" height="2297"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10920,6303 L 10920,7223 6567,7223 6567,8493"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="6844" y="6281" width="4171" height="2266"/>
- <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 10961,8493 L 10961,7985 6897,7985 6897,6334"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="11243" y="6225" width="4261" height="2322"/>
- <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 15450,6278 L 15450,7985 11296,7985 11296,8493"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="7252" y="6212" width="7841" height="1446"/>
- <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 15039,6265 L 15039,7604 7305,7604 7305,6334"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="440" y="867" width="16140" height="12584"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="9" stroke-linejoin="miter" d="M 8510,13445 L 445,13445 445,872 16574,872 16574,13445 8510,13445 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="4843" y="555" width="7605" height="670"/>
- <g>
- <defs>
- <linearGradient id="gradient1" x1="8645" y1="564" x2="8645" y2="1215" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient1)" d="M 8645,1215 L 4852,1215 4852,564 12438,564 12438,1215 8645,1215 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8645,1215 L 4852,1215 4852,564 12438,564 12438,1215 8645,1215 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="5102" y="1005"><tspan fill="rgb(0,0,0)" stroke="none">3-Node Atom Denverton (3n-dnv)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="5047" y="9562" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 8667,9580 L 12269,9580 12269,12758 5065,12758 5065,9580 8667,9580 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8667,9580 L 12269,9580 12269,12758 5065,12758 5065,9580 8667,9580 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="8956" y="10528" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 10374,11712 L 8974,11712 8974,10546 11774,10546 11774,11712 10374,11712 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 10374,11712 L 8974,11712 8974,10546 11774,10546 11774,11712 10374,11712 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="9691" y="10850"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="9575" y="11203"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="9217" y="11556"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="5637" y="10543" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 7055,11727 L 5655,11727 5655,10561 8455,10561 8455,11727 7055,11727 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 7055,11727 L 5655,11727 5655,10561 8455,10561 8455,11727 7055,11727 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6372" y="10865"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6256" y="11218"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5898" y="11571"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="5850" y="9356" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 6303,9799 L 5859,9799 5859,9365 6746,9365 6746,9799 6303,9799 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6303,9799 L 5859,9799 5859,9365 6746,9365 6746,9799 6303,9799 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5965" y="9728"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="6603" y="8540" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6626,9304 L 6621,8558"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6626,9304 L 6626,9304 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6621,8558 L 6621,8558 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="6527" y="9296" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6611,9305 L 6685,9305 6685,9404 6536,9404 6536,9305 6611,9305 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6611,9305 L 6685,9305 6685,9404 6536,9404 6536,9305 6611,9305 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="5884" y="9298" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5968,9307 L 6042,9307 6042,9406 5893,9406 5893,9307 5968,9307 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5968,9307 L 6042,9307 6042,9406 5893,9406 5893,9307 5968,9307 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="5949" y="8588" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5967,9306 L 5969,8606"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5967,9306 L 5967,9306 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5969,8606 L 5969,8606 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="6372" y="8538" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6390,9302 L 6392,8556"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6390,9302 L 6390,9302 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6392,8556 L 6392,8556 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="6307" y="9294" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6391,9303 L 6465,9303 6465,9402 6316,9402 6316,9303 6391,9303 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6391,9303 L 6465,9303 6465,9402 6316,9402 6316,9303 6391,9303 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="6096" y="9296" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6180,9305 L 6254,9305 6254,9404 6105,9404 6105,9305 6180,9305 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6180,9305 L 6254,9305 6254,9404 6105,9404 6105,9305 6180,9305 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="6171" y="8538" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6195,9304 L 6189,8556"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6195,9304 L 6195,9304 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6189,8556 L 6189,8556 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="5980" y="9814" width="557" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 6258,9814 L 6535,9975 6397,9975 6397,10385 6535,10385 6258,10547 5980,10385 6119,10385 6119,9975 5980,9975 6258,9814 Z M 6535,9814 L 6535,9814 Z M 5980,10547 L 5980,10547 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="6018" y="10012" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 6256,10355 L 6018,10355 6018,10012 6493,10012 6493,10355 6256,10355 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6027" y="10297"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="5923" y="8448" width="5500" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 5976,8628 L 5976,8628 5976,8621 5976,8615 5977,8608 5977,8602 5978,8595 5978,8589 5979,8583 5980,8577 5982,8571 5983,8565 5984,8559 5986,8554 5987,8549 5989,8544 5991,8539 5993,8534 5995,8530 5997,8526 5999,8522 6002,8519 6004,8516 6006,8513 6009,8510 6011,8508 6014,8506 6016,8505 6019,8504 6022,8503 6024,8502 6027,8502 11317,8501 11317,8501 11320,8501 11322,8502 11325,8503 11328,8504 11330,8505 11333,8507 11335,8509 11338,8512 11340,8515 11342,8518 11345,8521 11347,8525 11349,8529 11351,8533 11353,8538 11355,8543 11356,8548 11358,8553 11360,8558 11361,8564 11362,8570 11363,8576 11365,8582 11365,8588 11366,8594 11367,8601 11367,8607 11368,8614 11368,8620 11368,8627"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 5976,8628 L 5976,8628 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 11369,8501 L 11369,8501 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="5114" y="11739" width="1428" height="932"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5114" y="12127"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5114" y="12592"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="6295" y="12740" width="5102" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="6545" y="13288"><tspan fill="rgb(32,56,100)" stroke="none">Traffic Generator (TG)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="8114" y="11887" width="1321" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8364" y="12294"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="7540" y="11937" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7834,12007 L 7834,12007 7834,12011 7834,12014 7833,12018 7832,12021 7832,12025 7831,12028 7829,12032 7828,12035 7826,12038 7825,12042 7823,12045 7821,12048 7819,12050 7816,12053 7814,12056 7811,12058 7808,12061 7806,12063 7803,12065 7799,12067 7796,12068 7793,12070 7790,12071 7786,12073 7783,12074 7779,12074 7776,12075 7772,12076 7769,12076 7765,12076 7611,12076 7611,12076 7607,12076 7604,12076 7600,12075 7597,12074 7593,12074 7590,12073 7586,12071 7583,12070 7580,12068 7576,12067 7573,12065 7570,12063 7568,12061 7565,12058 7562,12056 7560,12053 7557,12050 7555,12048 7553,12045 7551,12041 7550,12038 7548,12035 7547,12032 7545,12028 7544,12025 7544,12021 7543,12018 7542,12014 7542,12011 7542,12007 7541,12007 7542,12007 7542,12003 7542,12000 7543,11996 7543,11993 7544,11989 7545,11986 7546,11982 7548,11979 7549,11976 7551,11973 7553,11970 7555,11967 7557,11964 7559,11961 7562,11959 7564,11956 7567,11954 7570,11952 7573,11949 7576,11948 7579,11946 7582,11944 7586,11943 7589,11942 7592,11941 7596,11940 7599,11939 7603,11938 7606,11938 7610,11938 7765,11937 7765,11938 7769,11938 7772,11938 7776,11939 7779,11939 7783,11940 7786,11941 7790,11942 7793,11944 7796,11945 7799,11947 7802,11949 7805,11951 7808,11953 7811,11955 7813,11958 7816,11960 7818,11963 7820,11966 7823,11969 7824,11972 7826,11975 7828,11978 7829,11982 7830,11985 7831,11988 7832,11992 7833,11995 7834,11999 7834,12002 7834,12006 7834,12007 Z M 7834,12076 L 7834,12076 Z M 7541,11937 L 7541,11937 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="7541" y="12137" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7834,12207 L 7834,12207 7834,12211 7834,12214 7833,12218 7832,12221 7832,12225 7831,12228 7829,12232 7828,12235 7826,12238 7825,12242 7823,12245 7821,12248 7819,12250 7816,12253 7814,12256 7811,12258 7808,12261 7806,12263 7803,12265 7799,12267 7796,12268 7793,12270 7790,12271 7786,12273 7783,12274 7779,12274 7776,12275 7772,12276 7769,12276 7765,12276 7611,12276 7611,12276 7607,12276 7604,12276 7600,12275 7597,12274 7593,12274 7590,12273 7586,12271 7583,12270 7580,12268 7576,12267 7573,12265 7570,12263 7568,12261 7565,12258 7562,12256 7560,12253 7557,12250 7555,12248 7553,12245 7551,12241 7550,12238 7548,12235 7547,12232 7545,12228 7544,12225 7544,12221 7543,12218 7542,12214 7542,12211 7542,12207 7541,12207 7542,12207 7542,12203 7542,12200 7543,12196 7543,12193 7544,12189 7545,12186 7546,12182 7548,12179 7549,12176 7551,12173 7553,12170 7555,12167 7557,12164 7559,12161 7562,12159 7564,12156 7567,12154 7570,12152 7573,12149 7576,12148 7579,12146 7582,12144 7586,12143 7589,12142 7592,12141 7596,12140 7599,12139 7603,12138 7606,12138 7610,12138 7765,12137 7765,12138 7769,12138 7772,12138 7776,12139 7779,12139 7783,12140 7786,12141 7790,12142 7793,12144 7796,12145 7799,12147 7802,12149 7805,12151 7808,12153 7811,12155 7813,12158 7816,12160 7818,12163 7820,12166 7823,12169 7824,12172 7826,12175 7828,12178 7829,12182 7830,12185 7831,12188 7832,12192 7833,12195 7834,12199 7834,12202 7834,12206 7834,12207 Z M 7834,12276 L 7834,12276 Z M 7541,12137 L 7541,12137 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="7541" y="12336" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7834,12406 L 7834,12406 7834,12410 7834,12413 7833,12417 7832,12420 7832,12424 7831,12427 7829,12431 7828,12434 7826,12437 7825,12441 7823,12444 7821,12447 7819,12449 7816,12452 7814,12455 7811,12457 7808,12460 7806,12462 7803,12464 7799,12466 7796,12467 7793,12469 7790,12470 7786,12472 7783,12473 7779,12473 7776,12474 7772,12475 7769,12475 7765,12475 7611,12475 7611,12475 7607,12475 7604,12475 7600,12474 7597,12473 7593,12473 7590,12472 7586,12470 7583,12469 7580,12467 7576,12466 7573,12464 7570,12462 7568,12460 7565,12457 7562,12455 7560,12452 7557,12449 7555,12447 7553,12444 7551,12440 7550,12437 7548,12434 7547,12431 7545,12427 7544,12424 7544,12420 7543,12417 7542,12413 7542,12410 7542,12406 7541,12406 7542,12406 7542,12402 7542,12399 7543,12395 7543,12392 7544,12388 7545,12385 7546,12381 7548,12378 7549,12375 7551,12372 7553,12369 7555,12366 7557,12363 7559,12360 7562,12358 7564,12355 7567,12353 7570,12351 7573,12348 7576,12347 7579,12345 7582,12343 7586,12342 7589,12341 7592,12340 7596,12339 7599,12338 7603,12337 7606,12337 7610,12337 7765,12336 7765,12337 7769,12337 7772,12337 7776,12338 7779,12338 7783,12339 7786,12340 7790,12341 7793,12343 7796,12344 7799,12346 7802,12348 7805,12350 7808,12352 7811,12354 7813,12357 7816,12359 7818,12362 7820,12365 7823,12368 7824,12371 7826,12374 7828,12377 7829,12381 7830,12384 7831,12387 7832,12391 7833,12394 7834,12398 7834,12401 7834,12405 7834,12406 Z M 7834,12475 L 7834,12475 Z M 7541,12336 L 7541,12336 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="7191" y="11937" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7485,12007 L 7485,12007 7485,12011 7485,12014 7484,12018 7483,12021 7483,12025 7482,12028 7480,12032 7479,12035 7477,12038 7476,12042 7474,12045 7472,12048 7470,12050 7467,12053 7465,12056 7462,12058 7459,12061 7457,12063 7454,12065 7450,12067 7447,12068 7444,12070 7441,12071 7437,12073 7434,12074 7430,12074 7427,12075 7423,12076 7420,12076 7416,12076 7262,12076 7262,12076 7258,12076 7255,12076 7251,12075 7248,12074 7244,12074 7241,12073 7237,12071 7234,12070 7231,12068 7227,12067 7224,12065 7221,12063 7219,12061 7216,12058 7213,12056 7211,12053 7208,12050 7206,12048 7204,12045 7202,12041 7201,12038 7199,12035 7198,12032 7196,12028 7195,12025 7195,12021 7194,12018 7193,12014 7193,12011 7193,12007 7192,12007 7193,12007 7193,12003 7193,12000 7194,11996 7194,11993 7195,11989 7196,11986 7197,11982 7199,11979 7200,11976 7202,11973 7204,11970 7206,11967 7208,11964 7210,11961 7213,11959 7215,11956 7218,11954 7221,11952 7224,11949 7227,11948 7230,11946 7233,11944 7237,11943 7240,11942 7243,11941 7247,11940 7250,11939 7254,11938 7257,11938 7261,11938 7416,11937 7416,11938 7420,11938 7423,11938 7427,11939 7430,11939 7434,11940 7437,11941 7441,11942 7444,11944 7447,11945 7450,11947 7453,11949 7456,11951 7459,11953 7462,11955 7464,11958 7467,11960 7469,11963 7471,11966 7474,11969 7475,11972 7477,11975 7479,11978 7480,11982 7481,11985 7482,11988 7483,11992 7484,11995 7485,11999 7485,12002 7485,12006 7485,12007 Z M 7485,12076 L 7485,12076 Z M 7192,11937 L 7192,11937 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="7192" y="12137" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7485,12207 L 7485,12207 7485,12211 7485,12214 7484,12218 7483,12221 7483,12225 7482,12228 7480,12232 7479,12235 7477,12238 7476,12242 7474,12245 7472,12248 7470,12250 7467,12253 7465,12256 7462,12258 7459,12261 7457,12263 7454,12265 7450,12267 7447,12268 7444,12270 7441,12271 7437,12273 7434,12274 7430,12274 7427,12275 7423,12276 7420,12276 7416,12276 7262,12276 7262,12276 7258,12276 7255,12276 7251,12275 7248,12274 7244,12274 7241,12273 7237,12271 7234,12270 7231,12268 7227,12267 7224,12265 7221,12263 7219,12261 7216,12258 7213,12256 7211,12253 7208,12250 7206,12248 7204,12245 7202,12241 7201,12238 7199,12235 7198,12232 7196,12228 7195,12225 7195,12221 7194,12218 7193,12214 7193,12211 7193,12207 7192,12207 7193,12207 7193,12203 7193,12200 7194,12196 7194,12193 7195,12189 7196,12186 7197,12182 7199,12179 7200,12176 7202,12173 7204,12170 7206,12167 7208,12164 7210,12161 7213,12159 7215,12156 7218,12154 7221,12152 7224,12149 7227,12148 7230,12146 7233,12144 7237,12143 7240,12142 7243,12141 7247,12140 7250,12139 7254,12138 7257,12138 7261,12138 7416,12137 7416,12138 7420,12138 7423,12138 7427,12139 7430,12139 7434,12140 7437,12141 7441,12142 7444,12144 7447,12145 7450,12147 7453,12149 7456,12151 7459,12153 7462,12155 7464,12158 7467,12160 7469,12163 7471,12166 7474,12169 7475,12172 7477,12175 7479,12178 7480,12182 7481,12185 7482,12188 7483,12192 7484,12195 7485,12199 7485,12202 7485,12206 7485,12207 Z M 7485,12276 L 7485,12276 Z M 7192,12137 L 7192,12137 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="7192" y="12336" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7485,12406 L 7485,12406 7485,12410 7485,12413 7484,12417 7483,12420 7483,12424 7482,12427 7480,12431 7479,12434 7477,12437 7476,12441 7474,12444 7472,12447 7470,12449 7467,12452 7465,12455 7462,12457 7459,12460 7457,12462 7454,12464 7450,12466 7447,12467 7444,12469 7441,12470 7437,12472 7434,12473 7430,12473 7427,12474 7423,12475 7420,12475 7416,12475 7262,12475 7262,12475 7258,12475 7255,12475 7251,12474 7248,12473 7244,12473 7241,12472 7237,12470 7234,12469 7231,12467 7227,12466 7224,12464 7221,12462 7219,12460 7216,12457 7213,12455 7211,12452 7208,12449 7206,12447 7204,12444 7202,12440 7201,12437 7199,12434 7198,12431 7196,12427 7195,12424 7195,12420 7194,12417 7193,12413 7193,12410 7193,12406 7192,12406 7193,12406 7193,12402 7193,12399 7194,12395 7194,12392 7195,12388 7196,12385 7197,12381 7199,12378 7200,12375 7202,12372 7204,12369 7206,12366 7208,12363 7210,12360 7213,12358 7215,12355 7218,12353 7221,12351 7224,12348 7227,12347 7230,12345 7233,12343 7237,12342 7240,12341 7243,12340 7247,12339 7250,12338 7254,12337 7257,12337 7261,12337 7416,12336 7416,12337 7420,12337 7423,12337 7427,12338 7430,12338 7434,12339 7437,12340 7441,12341 7444,12343 7447,12344 7450,12346 7453,12348 7456,12350 7459,12352 7462,12354 7464,12357 7467,12359 7469,12362 7471,12365 7474,12368 7475,12371 7477,12374 7479,12377 7480,12381 7481,12384 7482,12387 7483,12391 7484,12394 7485,12398 7485,12401 7485,12405 7485,12406 Z M 7485,12475 L 7485,12475 Z M 7192,12336 L 7192,12336 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="7870" y="11940" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8164,12010 L 8164,12010 8164,12014 8164,12017 8163,12021 8162,12024 8162,12028 8161,12031 8159,12035 8158,12038 8156,12041 8155,12045 8153,12048 8151,12051 8149,12053 8146,12056 8144,12059 8141,12061 8138,12064 8136,12066 8133,12068 8129,12070 8126,12071 8123,12073 8120,12074 8116,12076 8113,12077 8109,12077 8106,12078 8102,12079 8099,12079 8095,12079 7941,12079 7941,12079 7937,12079 7934,12079 7930,12078 7927,12077 7923,12077 7920,12076 7916,12074 7913,12073 7910,12071 7906,12070 7903,12068 7900,12066 7898,12064 7895,12061 7892,12059 7890,12056 7887,12053 7885,12051 7883,12048 7881,12044 7880,12041 7878,12038 7877,12035 7875,12031 7874,12028 7874,12024 7873,12021 7872,12017 7872,12014 7872,12010 7871,12010 7872,12010 7872,12006 7872,12003 7873,11999 7873,11996 7874,11992 7875,11989 7876,11985 7878,11982 7879,11979 7881,11976 7883,11973 7885,11970 7887,11967 7889,11964 7892,11962 7894,11959 7897,11957 7900,11955 7903,11952 7906,11951 7909,11949 7912,11947 7916,11946 7919,11945 7922,11944 7926,11943 7929,11942 7933,11941 7936,11941 7940,11941 8095,11940 8095,11941 8099,11941 8102,11941 8106,11942 8109,11942 8113,11943 8116,11944 8120,11945 8123,11947 8126,11948 8129,11950 8132,11952 8135,11954 8138,11956 8141,11958 8143,11961 8146,11963 8148,11966 8150,11969 8153,11972 8154,11975 8156,11978 8158,11981 8159,11985 8160,11988 8161,11991 8162,11995 8163,11998 8164,12002 8164,12005 8164,12009 8164,12010 Z M 8164,12079 L 8164,12079 Z M 7871,11940 L 7871,11940 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="7871" y="12140" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8164,12210 L 8164,12210 8164,12214 8164,12217 8163,12221 8162,12224 8162,12228 8161,12231 8159,12235 8158,12238 8156,12241 8155,12245 8153,12248 8151,12251 8149,12253 8146,12256 8144,12259 8141,12261 8138,12264 8136,12266 8133,12268 8129,12270 8126,12271 8123,12273 8120,12274 8116,12276 8113,12277 8109,12277 8106,12278 8102,12279 8099,12279 8095,12279 7941,12279 7941,12279 7937,12279 7934,12279 7930,12278 7927,12277 7923,12277 7920,12276 7916,12274 7913,12273 7910,12271 7906,12270 7903,12268 7900,12266 7898,12264 7895,12261 7892,12259 7890,12256 7887,12253 7885,12251 7883,12248 7881,12244 7880,12241 7878,12238 7877,12235 7875,12231 7874,12228 7874,12224 7873,12221 7872,12217 7872,12214 7872,12210 7871,12210 7872,12210 7872,12206 7872,12203 7873,12199 7873,12196 7874,12192 7875,12189 7876,12185 7878,12182 7879,12179 7881,12176 7883,12173 7885,12170 7887,12167 7889,12164 7892,12162 7894,12159 7897,12157 7900,12155 7903,12152 7906,12151 7909,12149 7912,12147 7916,12146 7919,12145 7922,12144 7926,12143 7929,12142 7933,12141 7936,12141 7940,12141 8095,12140 8095,12141 8099,12141 8102,12141 8106,12142 8109,12142 8113,12143 8116,12144 8120,12145 8123,12147 8126,12148 8129,12150 8132,12152 8135,12154 8138,12156 8141,12158 8143,12161 8146,12163 8148,12166 8150,12169 8153,12172 8154,12175 8156,12178 8158,12181 8159,12185 8160,12188 8161,12191 8162,12195 8163,12198 8164,12202 8164,12205 8164,12209 8164,12210 Z M 8164,12279 L 8164,12279 Z M 7871,12140 L 7871,12140 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="7871" y="12338" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8164,12409 L 8164,12409 8164,12413 8164,12416 8163,12420 8162,12423 8162,12427 8161,12430 8159,12434 8158,12437 8156,12440 8155,12444 8153,12447 8151,12450 8149,12452 8146,12455 8144,12458 8141,12460 8138,12463 8136,12465 8133,12467 8129,12469 8126,12470 8123,12472 8120,12473 8116,12475 8113,12476 8109,12476 8106,12477 8102,12478 8099,12478 8095,12478 7941,12478 7941,12478 7937,12478 7934,12478 7930,12477 7927,12476 7923,12476 7920,12475 7916,12473 7913,12472 7910,12470 7906,12469 7903,12467 7900,12465 7898,12463 7895,12460 7892,12458 7890,12455 7887,12452 7885,12450 7883,12447 7881,12443 7880,12440 7878,12437 7877,12434 7875,12430 7874,12427 7874,12423 7873,12420 7872,12416 7872,12413 7872,12409 7871,12409 7872,12409 7872,12405 7872,12402 7873,12398 7873,12395 7874,12391 7875,12388 7876,12384 7878,12381 7879,12378 7881,12375 7883,12372 7885,12369 7887,12366 7889,12363 7892,12361 7894,12358 7897,12356 7900,12354 7903,12351 7906,12350 7909,12348 7912,12346 7916,12345 7919,12344 7922,12343 7926,12342 7929,12341 7933,12340 7936,12340 7940,12340 8095,12339 8095,12340 8099,12340 8102,12340 8106,12341 8109,12341 8113,12342 8116,12343 8120,12344 8123,12346 8126,12347 8129,12349 8132,12351 8135,12353 8138,12355 8141,12357 8143,12360 8146,12362 8148,12365 8150,12368 8153,12371 8154,12374 8156,12377 8158,12380 8159,12384 8160,12387 8161,12390 8162,12394 8163,12397 8164,12401 8164,12404 8164,12408 8164,12409 Z M 8164,12478 L 8164,12478 Z M 7871,12339 L 7871,12339 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="9663" y="11963" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 9956,12033 L 9956,12033 9956,12037 9956,12040 9955,12044 9954,12047 9954,12051 9953,12054 9951,12058 9950,12061 9948,12064 9947,12068 9945,12071 9943,12074 9941,12076 9938,12079 9936,12082 9933,12084 9930,12087 9928,12089 9925,12091 9921,12093 9918,12094 9915,12096 9912,12097 9908,12099 9905,12100 9901,12100 9898,12101 9894,12102 9891,12102 9887,12102 9733,12102 9733,12102 9729,12102 9726,12102 9722,12101 9719,12100 9715,12100 9712,12099 9708,12097 9705,12096 9702,12094 9698,12093 9695,12091 9692,12089 9690,12087 9687,12084 9684,12082 9682,12079 9679,12076 9677,12074 9675,12071 9673,12067 9672,12064 9670,12061 9669,12058 9667,12054 9666,12051 9666,12047 9665,12044 9664,12040 9664,12037 9664,12033 9663,12033 9664,12033 9664,12029 9664,12026 9665,12022 9665,12019 9666,12015 9667,12012 9668,12008 9670,12005 9671,12002 9673,11999 9675,11996 9677,11993 9679,11990 9681,11987 9684,11985 9686,11982 9689,11980 9692,11978 9695,11975 9698,11974 9701,11972 9704,11970 9708,11969 9711,11968 9714,11967 9718,11966 9721,11965 9725,11964 9728,11964 9732,11964 9887,11963 9887,11964 9891,11964 9894,11964 9898,11965 9901,11965 9905,11966 9908,11967 9912,11968 9915,11970 9918,11971 9921,11973 9924,11975 9927,11977 9930,11979 9933,11981 9935,11984 9938,11986 9940,11989 9942,11992 9945,11995 9946,11998 9948,12001 9950,12004 9951,12008 9952,12011 9953,12014 9954,12018 9955,12021 9956,12025 9956,12028 9956,12032 9956,12033 Z M 9956,12102 L 9956,12102 Z M 9663,11963 L 9663,11963 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="9663" y="12162" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 9956,12232 L 9956,12232 9956,12236 9956,12239 9955,12243 9954,12246 9954,12250 9953,12253 9951,12257 9950,12260 9948,12263 9947,12267 9945,12270 9943,12273 9941,12275 9938,12278 9936,12281 9933,12283 9930,12286 9928,12288 9925,12290 9921,12292 9918,12293 9915,12295 9912,12296 9908,12298 9905,12299 9901,12299 9898,12300 9894,12301 9891,12301 9887,12301 9733,12301 9733,12301 9729,12301 9726,12301 9722,12300 9719,12299 9715,12299 9712,12298 9708,12296 9705,12295 9702,12293 9698,12292 9695,12290 9692,12288 9690,12286 9687,12283 9684,12281 9682,12278 9679,12275 9677,12273 9675,12270 9673,12266 9672,12263 9670,12260 9669,12257 9667,12253 9666,12250 9666,12246 9665,12243 9664,12239 9664,12236 9664,12232 9663,12232 9664,12232 9664,12228 9664,12225 9665,12221 9665,12218 9666,12214 9667,12211 9668,12207 9670,12204 9671,12201 9673,12198 9675,12195 9677,12192 9679,12189 9681,12186 9684,12184 9686,12181 9689,12179 9692,12177 9695,12174 9698,12173 9701,12171 9704,12169 9708,12168 9711,12167 9714,12166 9718,12165 9721,12164 9725,12163 9728,12163 9732,12163 9887,12162 9887,12163 9891,12163 9894,12163 9898,12164 9901,12164 9905,12165 9908,12166 9912,12167 9915,12169 9918,12170 9921,12172 9924,12174 9927,12176 9930,12178 9933,12180 9935,12183 9938,12185 9940,12188 9942,12191 9945,12194 9946,12197 9948,12200 9950,12203 9951,12207 9952,12210 9953,12213 9954,12217 9955,12220 9956,12224 9956,12227 9956,12231 9956,12232 Z M 9956,12301 L 9956,12301 Z M 9663,12162 L 9663,12162 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="9663" y="12362" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 9956,12432 L 9956,12432 9956,12436 9956,12439 9955,12443 9954,12446 9954,12450 9953,12453 9951,12457 9950,12460 9948,12463 9947,12467 9945,12470 9943,12473 9941,12475 9938,12478 9936,12481 9933,12483 9930,12486 9928,12488 9925,12490 9921,12492 9918,12493 9915,12495 9912,12496 9908,12498 9905,12499 9901,12499 9898,12500 9894,12501 9891,12501 9887,12501 9733,12501 9733,12501 9729,12501 9726,12501 9722,12500 9719,12499 9715,12499 9712,12498 9708,12496 9705,12495 9702,12493 9698,12492 9695,12490 9692,12488 9690,12486 9687,12483 9684,12481 9682,12478 9679,12475 9677,12473 9675,12470 9673,12466 9672,12463 9670,12460 9669,12457 9667,12453 9666,12450 9666,12446 9665,12443 9664,12439 9664,12436 9664,12432 9663,12432 9664,12432 9664,12428 9664,12425 9665,12421 9665,12418 9666,12414 9667,12411 9668,12407 9670,12404 9671,12401 9673,12398 9675,12395 9677,12392 9679,12389 9681,12386 9684,12384 9686,12381 9689,12379 9692,12377 9695,12374 9698,12373 9701,12371 9704,12369 9708,12368 9711,12367 9714,12366 9718,12365 9721,12364 9725,12363 9728,12363 9732,12363 9887,12362 9887,12363 9891,12363 9894,12363 9898,12364 9901,12364 9905,12365 9908,12366 9912,12367 9915,12369 9918,12370 9921,12372 9924,12374 9927,12376 9930,12378 9933,12380 9935,12383 9938,12385 9940,12388 9942,12391 9945,12394 9946,12397 9948,12400 9950,12403 9951,12407 9952,12410 9953,12413 9954,12417 9955,12420 9956,12424 9956,12427 9956,12431 9956,12432 Z M 9956,12501 L 9956,12501 Z M 9663,12362 L 9663,12362 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="9314" y="11963" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 9607,12033 L 9607,12033 9607,12037 9607,12040 9606,12044 9605,12047 9605,12051 9604,12054 9602,12058 9601,12061 9599,12064 9598,12068 9596,12071 9594,12074 9592,12076 9589,12079 9587,12082 9584,12084 9581,12087 9579,12089 9576,12091 9572,12093 9569,12094 9566,12096 9563,12097 9559,12099 9556,12100 9552,12100 9549,12101 9545,12102 9542,12102 9538,12102 9384,12102 9384,12102 9380,12102 9377,12102 9373,12101 9370,12100 9366,12100 9363,12099 9359,12097 9356,12096 9353,12094 9349,12093 9346,12091 9343,12089 9341,12087 9338,12084 9335,12082 9333,12079 9330,12076 9328,12074 9326,12071 9324,12067 9323,12064 9321,12061 9320,12058 9318,12054 9317,12051 9317,12047 9316,12044 9315,12040 9315,12037 9315,12033 9314,12033 9315,12033 9315,12029 9315,12026 9316,12022 9316,12019 9317,12015 9318,12012 9319,12008 9321,12005 9322,12002 9324,11999 9326,11996 9328,11993 9330,11990 9332,11987 9335,11985 9337,11982 9340,11980 9343,11978 9346,11975 9349,11974 9352,11972 9355,11970 9359,11969 9362,11968 9365,11967 9369,11966 9372,11965 9376,11964 9379,11964 9383,11964 9538,11963 9538,11964 9542,11964 9545,11964 9549,11965 9552,11965 9556,11966 9559,11967 9563,11968 9566,11970 9569,11971 9572,11973 9575,11975 9578,11977 9581,11979 9584,11981 9586,11984 9589,11986 9591,11989 9593,11992 9596,11995 9597,11998 9599,12001 9601,12004 9602,12008 9603,12011 9604,12014 9605,12018 9606,12021 9607,12025 9607,12028 9607,12032 9607,12033 Z M 9607,12102 L 9607,12102 Z M 9314,11963 L 9314,11963 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="9314" y="12162" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 9607,12232 L 9607,12232 9607,12236 9607,12239 9606,12243 9605,12246 9605,12250 9604,12253 9602,12257 9601,12260 9599,12263 9598,12267 9596,12270 9594,12273 9592,12275 9589,12278 9587,12281 9584,12283 9581,12286 9579,12288 9576,12290 9572,12292 9569,12293 9566,12295 9563,12296 9559,12298 9556,12299 9552,12299 9549,12300 9545,12301 9542,12301 9538,12301 9384,12301 9384,12301 9380,12301 9377,12301 9373,12300 9370,12299 9366,12299 9363,12298 9359,12296 9356,12295 9353,12293 9349,12292 9346,12290 9343,12288 9341,12286 9338,12283 9335,12281 9333,12278 9330,12275 9328,12273 9326,12270 9324,12266 9323,12263 9321,12260 9320,12257 9318,12253 9317,12250 9317,12246 9316,12243 9315,12239 9315,12236 9315,12232 9314,12232 9315,12232 9315,12228 9315,12225 9316,12221 9316,12218 9317,12214 9318,12211 9319,12207 9321,12204 9322,12201 9324,12198 9326,12195 9328,12192 9330,12189 9332,12186 9335,12184 9337,12181 9340,12179 9343,12177 9346,12174 9349,12173 9352,12171 9355,12169 9359,12168 9362,12167 9365,12166 9369,12165 9372,12164 9376,12163 9379,12163 9383,12163 9538,12162 9538,12163 9542,12163 9545,12163 9549,12164 9552,12164 9556,12165 9559,12166 9563,12167 9566,12169 9569,12170 9572,12172 9575,12174 9578,12176 9581,12178 9584,12180 9586,12183 9589,12185 9591,12188 9593,12191 9596,12194 9597,12197 9599,12200 9601,12203 9602,12207 9603,12210 9604,12213 9605,12217 9606,12220 9607,12224 9607,12227 9607,12231 9607,12232 Z M 9607,12301 L 9607,12301 Z M 9314,12162 L 9314,12162 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="9314" y="12362" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 9607,12432 L 9607,12432 9607,12436 9607,12439 9606,12443 9605,12446 9605,12450 9604,12453 9602,12457 9601,12460 9599,12463 9598,12467 9596,12470 9594,12473 9592,12475 9589,12478 9587,12481 9584,12483 9581,12486 9579,12488 9576,12490 9572,12492 9569,12493 9566,12495 9563,12496 9559,12498 9556,12499 9552,12499 9549,12500 9545,12501 9542,12501 9538,12501 9384,12501 9384,12501 9380,12501 9377,12501 9373,12500 9370,12499 9366,12499 9363,12498 9359,12496 9356,12495 9353,12493 9349,12492 9346,12490 9343,12488 9341,12486 9338,12483 9335,12481 9333,12478 9330,12475 9328,12473 9326,12470 9324,12466 9323,12463 9321,12460 9320,12457 9318,12453 9317,12450 9317,12446 9316,12443 9315,12439 9315,12436 9315,12432 9314,12432 9315,12432 9315,12428 9315,12425 9316,12421 9316,12418 9317,12414 9318,12411 9319,12407 9321,12404 9322,12401 9324,12398 9326,12395 9328,12392 9330,12389 9332,12386 9335,12384 9337,12381 9340,12379 9343,12377 9346,12374 9349,12373 9352,12371 9355,12369 9359,12368 9362,12367 9365,12366 9369,12365 9372,12364 9376,12363 9379,12363 9383,12363 9538,12362 9538,12363 9542,12363 9545,12363 9549,12364 9552,12364 9556,12365 9559,12366 9563,12367 9566,12369 9569,12370 9572,12372 9575,12374 9578,12376 9581,12378 9584,12380 9586,12383 9589,12385 9591,12388 9593,12391 9596,12394 9597,12397 9599,12400 9601,12403 9602,12407 9603,12410 9604,12413 9605,12417 9606,12420 9607,12424 9607,12427 9607,12431 9607,12432 Z M 9607,12501 L 9607,12501 Z M 9314,12362 L 9314,12362 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="9994" y="11965" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10287,12035 L 10287,12035 10287,12039 10287,12042 10286,12046 10285,12049 10285,12053 10284,12056 10282,12060 10281,12063 10279,12066 10278,12070 10276,12073 10274,12076 10272,12078 10269,12081 10267,12084 10264,12086 10261,12089 10259,12091 10256,12093 10252,12095 10249,12096 10246,12098 10243,12099 10239,12101 10236,12102 10232,12102 10229,12103 10225,12104 10222,12104 10218,12104 10064,12104 10064,12104 10060,12104 10057,12104 10053,12103 10050,12102 10046,12102 10043,12101 10039,12099 10036,12098 10033,12096 10029,12095 10026,12093 10023,12091 10021,12089 10018,12086 10015,12084 10013,12081 10010,12078 10008,12076 10006,12073 10004,12069 10003,12066 10001,12063 10000,12060 9998,12056 9997,12053 9997,12049 9996,12046 9995,12042 9995,12039 9995,12035 9994,12035 9995,12035 9995,12031 9995,12028 9996,12024 9996,12021 9997,12017 9998,12014 9999,12010 10001,12007 10002,12004 10004,12001 10006,11998 10008,11995 10010,11992 10012,11989 10015,11987 10017,11984 10020,11982 10023,11980 10026,11977 10029,11976 10032,11974 10035,11972 10039,11971 10042,11970 10045,11969 10049,11968 10052,11967 10056,11966 10059,11966 10063,11966 10218,11965 10218,11966 10222,11966 10225,11966 10229,11967 10232,11967 10236,11968 10239,11969 10243,11970 10246,11972 10249,11973 10252,11975 10255,11977 10258,11979 10261,11981 10264,11983 10266,11986 10269,11988 10271,11991 10273,11994 10276,11997 10277,12000 10279,12003 10281,12006 10282,12010 10283,12013 10284,12016 10285,12020 10286,12023 10287,12027 10287,12030 10287,12034 10287,12035 Z M 10287,12104 L 10287,12104 Z M 9994,11965 L 9994,11965 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="9994" y="12165" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10287,12235 L 10287,12235 10287,12239 10287,12242 10286,12246 10285,12249 10285,12253 10284,12256 10282,12260 10281,12263 10279,12266 10278,12270 10276,12273 10274,12276 10272,12278 10269,12281 10267,12284 10264,12286 10261,12289 10259,12291 10256,12293 10252,12295 10249,12296 10246,12298 10243,12299 10239,12301 10236,12302 10232,12302 10229,12303 10225,12304 10222,12304 10218,12304 10064,12304 10064,12304 10060,12304 10057,12304 10053,12303 10050,12302 10046,12302 10043,12301 10039,12299 10036,12298 10033,12296 10029,12295 10026,12293 10023,12291 10021,12289 10018,12286 10015,12284 10013,12281 10010,12278 10008,12276 10006,12273 10004,12269 10003,12266 10001,12263 10000,12260 9998,12256 9997,12253 9997,12249 9996,12246 9995,12242 9995,12239 9995,12235 9994,12235 9995,12235 9995,12231 9995,12228 9996,12224 9996,12221 9997,12217 9998,12214 9999,12210 10001,12207 10002,12204 10004,12201 10006,12198 10008,12195 10010,12192 10012,12189 10015,12187 10017,12184 10020,12182 10023,12180 10026,12177 10029,12176 10032,12174 10035,12172 10039,12171 10042,12170 10045,12169 10049,12168 10052,12167 10056,12166 10059,12166 10063,12166 10218,12165 10218,12166 10222,12166 10225,12166 10229,12167 10232,12167 10236,12168 10239,12169 10243,12170 10246,12172 10249,12173 10252,12175 10255,12177 10258,12179 10261,12181 10264,12183 10266,12186 10269,12188 10271,12191 10273,12194 10276,12197 10277,12200 10279,12203 10281,12206 10282,12210 10283,12213 10284,12216 10285,12220 10286,12223 10287,12227 10287,12230 10287,12234 10287,12235 Z M 10287,12304 L 10287,12304 Z M 9994,12165 L 9994,12165 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="9994" y="12365" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10287,12435 L 10287,12435 10287,12439 10287,12442 10286,12446 10285,12449 10285,12453 10284,12456 10282,12460 10281,12463 10279,12466 10278,12470 10276,12473 10274,12476 10272,12478 10269,12481 10267,12484 10264,12486 10261,12489 10259,12491 10256,12493 10252,12495 10249,12496 10246,12498 10243,12499 10239,12501 10236,12502 10232,12502 10229,12503 10225,12504 10222,12504 10218,12504 10064,12504 10064,12504 10060,12504 10057,12504 10053,12503 10050,12502 10046,12502 10043,12501 10039,12499 10036,12498 10033,12496 10029,12495 10026,12493 10023,12491 10021,12489 10018,12486 10015,12484 10013,12481 10010,12478 10008,12476 10006,12473 10004,12469 10003,12466 10001,12463 10000,12460 9998,12456 9997,12453 9997,12449 9996,12446 9995,12442 9995,12439 9995,12435 9994,12435 9995,12435 9995,12431 9995,12428 9996,12424 9996,12421 9997,12417 9998,12414 9999,12410 10001,12407 10002,12404 10004,12401 10006,12398 10008,12395 10010,12392 10012,12389 10015,12387 10017,12384 10020,12382 10023,12380 10026,12377 10029,12376 10032,12374 10035,12372 10039,12371 10042,12370 10045,12369 10049,12368 10052,12367 10056,12366 10059,12366 10063,12366 10218,12365 10218,12366 10222,12366 10225,12366 10229,12367 10232,12367 10236,12368 10239,12369 10243,12370 10246,12372 10249,12373 10252,12375 10255,12377 10258,12379 10261,12381 10264,12383 10266,12386 10269,12388 10271,12391 10273,12394 10276,12397 10277,12400 10279,12403 10281,12406 10282,12410 10283,12413 10284,12416 10285,12420 10286,12423 10287,12427 10287,12430 10287,12434 10287,12435 Z M 10287,12504 L 10287,12504 Z M 9994,12365 L 9994,12365 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="4891" y="9646" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5141" y="10033"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5141" y="10363"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="8292" y="10662" width="891" height="1019"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 8292,11170 L 8551,10662 8551,10916 8922,10916 8922,10662 9182,11170 8922,11679 8922,11424 8551,11424 8551,11679 8292,11170 Z M 8292,10662 L 8292,10662 Z M 9182,11679 L 9182,11679 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="8447" y="10942" width="609" height="382"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 8751,11323 L 8447,11323 8447,10942 9055,10942 9055,11323 8751,11323 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8515" y="11246"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="893" y="1920" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 4513,5116 L 911,5116 911,1938 8115,1938 8115,5116 4513,5116 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4513,5116 L 911,5116 911,1938 8115,1938 8115,5116 4513,5116 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1011" y="2326"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1011" y="2791"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="1903" y="5020" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 2356,5463 L 1912,5463 1912,5029 2799,5029 2799,5463 2356,5463 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 2356,5463 L 1912,5463 1912,5029 2799,5029 2799,5463 2356,5463 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2018" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="2016" y="5506" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2034,5524 L 2039,6224"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2034,5524 L 2034,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2039,6224 L 2039,6224 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="1935" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2019,5523 L 1944,5523 1944,5424 2093,5424 2093,5523 2019,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2019,5523 L 1944,5523 1944,5424 2093,5424 2093,5523 2019,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="2579" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2663,5521 L 2588,5521 2588,5422 2737,5422 2737,5521 2663,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2663,5521 L 2588,5521 2588,5422 2737,5422 2737,5521 2663,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="2643" y="5504" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2663,5522 L 2661,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2663,5522 L 2663,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2661,6270 L 2661,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="2219" y="5508" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2239,5526 L 2237,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2239,5526 L 2239,5526 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2237,6272 L 2237,6272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="2155" y="5417" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2239,5525 L 2164,5525 2164,5426 2313,5426 2313,5525 2239,5525 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2239,5525 L 2164,5525 2164,5426 2313,5426 2313,5525 2239,5525 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="2366" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2450,5523 L 2375,5523 2375,5424 2524,5424 2524,5523 2450,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2450,5523 L 2375,5523 2375,5424 2524,5424 2524,5523 2450,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="2446" y="5506" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2464,5524 L 2470,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2464,5524 L 2464,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2470,6272 L 2470,6272 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="1594" y="3088" width="5982" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 4585,4272 L 1612,4272 1612,3106 7557,3106 7557,4272 4585,4272 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 4585,4272 L 1612,4272 1612,3106 7557,3106 7557,4272 4585,4272 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2308" y="3763"><tspan fill="rgb(255,255,255)" stroke="none">Intel Atom C3858 @2.00GHz</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="2109" y="4291" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 2386,5024 L 2109,4863 2247,4863 2247,4453 2109,4453 2386,4291 2664,4453 2525,4453 2525,4863 2664,4863 2386,5024 Z M 2109,5024 L 2109,5024 Z M 2664,4291 L 2664,4291 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="2147" y="4481" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 2385,4824 L 2147,4824 2147,4481 2622,4481 2622,4824 2385,4824 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2234" y="4766"><tspan fill="rgb(255,255,255)" stroke="none">x4</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="4059" y="2289" width="1321" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4309" y="2696"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="6631" y="5010" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 7084,5453 L 6640,5453 6640,5019 7527,5019 7527,5453 7084,5453 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7084,5453 L 6640,5453 6640,5019 7527,5019 7527,5453 7084,5453 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6746" y="5317"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="6744" y="5496" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6762,5514 L 6767,6260"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6762,5514 L 6762,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6767,6260 L 6767,6260 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="6663" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6747,5513 L 6672,5513 6672,5414 6821,5414 6821,5513 6747,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6747,5513 L 6672,5513 6672,5414 6821,5414 6821,5513 6747,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="7306" y="5403" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7390,5511 L 7315,5511 7315,5412 7464,5412 7464,5511 7390,5511 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7390,5511 L 7315,5511 7315,5412 7464,5412 7464,5511 7390,5511 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="7371" y="5494" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7391,5512 L 7389,6212"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7391,5512 L 7391,5512 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7389,6212 L 7389,6212 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="6947" y="5498" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6967,5516 L 6965,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6967,5516 L 6967,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6965,6262 L 6965,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="6883" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6967,5515 L 6892,5515 6892,5416 7041,5416 7041,5515 6967,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6967,5515 L 6892,5515 6892,5416 7041,5416 7041,5515 6967,5515 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="7094" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7178,5513 L 7103,5513 7103,5414 7252,5414 7252,5513 7178,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7178,5513 L 7103,5513 7103,5414 7252,5414 7252,5513 7178,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="7174" y="5496" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7192,5514 L 7198,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7192,5514 L 7192,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7198,6262 L 7198,6262 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="6753" y="4272" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 7030,5005 L 6753,4844 6891,4844 6891,4434 6753,4434 7030,4272 7308,4434 7169,4434 7169,4844 7308,4844 7030,5005 Z M 6753,5005 L 6753,5005 Z M 7308,4272 L 7308,4272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="6792" y="4462" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 7030,4805 L 6792,4805 6792,4462 7267,4462 7267,4805 7030,4805 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6879" y="4747"><tspan fill="rgb(255,255,255)" stroke="none">x4</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id74">
- <rect class="BoundingBox" stroke="none" fill="none" x="1307" y="1254" width="6435" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="1557" y="1802"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 1 (SUT1)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id75">
- <rect class="BoundingBox" stroke="none" fill="none" x="3376" y="2334" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3670,2404 L 3670,2404 3670,2408 3670,2411 3669,2415 3668,2418 3668,2422 3667,2425 3665,2429 3664,2432 3662,2435 3661,2439 3659,2442 3657,2445 3655,2447 3652,2450 3650,2453 3647,2455 3644,2458 3642,2460 3639,2462 3635,2464 3632,2465 3629,2467 3626,2468 3622,2470 3619,2471 3615,2471 3612,2472 3608,2473 3605,2473 3601,2473 3447,2473 3447,2473 3443,2473 3440,2473 3436,2472 3433,2471 3429,2471 3426,2470 3422,2468 3419,2467 3416,2465 3412,2464 3409,2462 3406,2460 3404,2458 3401,2455 3398,2453 3396,2450 3393,2447 3391,2445 3389,2442 3387,2438 3386,2435 3384,2432 3383,2429 3381,2425 3380,2422 3380,2418 3379,2415 3378,2411 3378,2408 3378,2404 3377,2404 3378,2404 3378,2400 3378,2397 3379,2393 3379,2390 3380,2386 3381,2383 3382,2379 3384,2376 3385,2373 3387,2370 3389,2367 3391,2364 3393,2361 3395,2358 3398,2356 3400,2353 3403,2351 3406,2349 3409,2346 3412,2345 3415,2343 3418,2341 3422,2340 3425,2339 3428,2338 3432,2337 3435,2336 3439,2335 3442,2335 3446,2335 3601,2334 3601,2335 3605,2335 3608,2335 3612,2336 3615,2336 3619,2337 3622,2338 3626,2339 3629,2341 3632,2342 3635,2344 3638,2346 3641,2348 3644,2350 3647,2352 3649,2355 3652,2357 3654,2360 3656,2363 3659,2366 3660,2369 3662,2372 3664,2375 3665,2379 3666,2382 3667,2385 3668,2389 3669,2392 3670,2396 3670,2399 3670,2403 3670,2404 Z M 3670,2473 L 3670,2473 Z M 3377,2334 L 3377,2334 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id76">
- <rect class="BoundingBox" stroke="none" fill="none" x="3376" y="2534" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3670,2604 L 3670,2604 3670,2608 3670,2611 3669,2615 3668,2618 3668,2622 3667,2625 3665,2629 3664,2632 3662,2635 3661,2639 3659,2642 3657,2645 3655,2647 3652,2650 3650,2653 3647,2655 3644,2658 3642,2660 3639,2662 3635,2664 3632,2665 3629,2667 3626,2668 3622,2670 3619,2671 3615,2671 3612,2672 3608,2673 3605,2673 3601,2673 3447,2673 3447,2673 3443,2673 3440,2673 3436,2672 3433,2671 3429,2671 3426,2670 3422,2668 3419,2667 3416,2665 3412,2664 3409,2662 3406,2660 3404,2658 3401,2655 3398,2653 3396,2650 3393,2647 3391,2645 3389,2642 3387,2638 3386,2635 3384,2632 3383,2629 3381,2625 3380,2622 3380,2618 3379,2615 3378,2611 3378,2608 3378,2604 3377,2604 3378,2604 3378,2600 3378,2597 3379,2593 3379,2590 3380,2586 3381,2583 3382,2579 3384,2576 3385,2573 3387,2570 3389,2567 3391,2564 3393,2561 3395,2558 3398,2556 3400,2553 3403,2551 3406,2549 3409,2546 3412,2545 3415,2543 3418,2541 3422,2540 3425,2539 3428,2538 3432,2537 3435,2536 3439,2535 3442,2535 3446,2535 3601,2534 3601,2535 3605,2535 3608,2535 3612,2536 3615,2536 3619,2537 3622,2538 3626,2539 3629,2541 3632,2542 3635,2544 3638,2546 3641,2548 3644,2550 3647,2552 3649,2555 3652,2557 3654,2560 3656,2563 3659,2566 3660,2569 3662,2572 3664,2575 3665,2579 3666,2582 3667,2585 3668,2589 3669,2592 3670,2596 3670,2599 3670,2603 3670,2604 Z M 3670,2673 L 3670,2673 Z M 3377,2534 L 3377,2534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id77">
- <rect class="BoundingBox" stroke="none" fill="none" x="3376" y="2733" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3670,2804 L 3670,2804 3670,2808 3670,2811 3669,2815 3668,2818 3668,2822 3667,2825 3665,2829 3664,2832 3662,2835 3661,2839 3659,2842 3657,2845 3655,2847 3652,2850 3650,2853 3647,2855 3644,2858 3642,2860 3639,2862 3635,2864 3632,2865 3629,2867 3626,2868 3622,2870 3619,2871 3615,2871 3612,2872 3608,2873 3605,2873 3601,2873 3447,2873 3447,2873 3443,2873 3440,2873 3436,2872 3433,2871 3429,2871 3426,2870 3422,2868 3419,2867 3416,2865 3412,2864 3409,2862 3406,2860 3404,2858 3401,2855 3398,2853 3396,2850 3393,2847 3391,2845 3389,2842 3387,2838 3386,2835 3384,2832 3383,2829 3381,2825 3380,2822 3380,2818 3379,2815 3378,2811 3378,2808 3378,2804 3377,2804 3378,2804 3378,2800 3378,2797 3379,2793 3379,2790 3380,2786 3381,2783 3382,2779 3384,2776 3385,2773 3387,2770 3389,2767 3391,2764 3393,2761 3395,2758 3398,2756 3400,2753 3403,2751 3406,2749 3409,2746 3412,2745 3415,2743 3418,2741 3422,2740 3425,2739 3428,2738 3432,2737 3435,2736 3439,2735 3442,2735 3446,2735 3601,2734 3601,2735 3605,2735 3608,2735 3612,2736 3615,2736 3619,2737 3622,2738 3626,2739 3629,2741 3632,2742 3635,2744 3638,2746 3641,2748 3644,2750 3647,2752 3649,2755 3652,2757 3654,2760 3656,2763 3659,2766 3660,2769 3662,2772 3664,2775 3665,2779 3666,2782 3667,2785 3668,2789 3669,2792 3670,2796 3670,2799 3670,2803 3670,2804 Z M 3670,2873 L 3670,2873 Z M 3377,2734 L 3377,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id78">
- <rect class="BoundingBox" stroke="none" fill="none" x="3028" y="2334" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3321,2404 L 3321,2404 3321,2408 3321,2411 3320,2415 3319,2418 3319,2422 3318,2425 3316,2429 3315,2432 3313,2435 3312,2439 3310,2442 3308,2445 3306,2447 3303,2450 3301,2453 3298,2455 3295,2458 3293,2460 3290,2462 3286,2464 3283,2465 3280,2467 3277,2468 3273,2470 3270,2471 3266,2471 3263,2472 3259,2473 3256,2473 3252,2473 3098,2473 3098,2473 3094,2473 3091,2473 3087,2472 3084,2471 3080,2471 3077,2470 3073,2468 3070,2467 3067,2465 3063,2464 3060,2462 3057,2460 3055,2458 3052,2455 3049,2453 3047,2450 3044,2447 3042,2445 3040,2442 3038,2438 3037,2435 3035,2432 3034,2429 3032,2425 3031,2422 3031,2418 3030,2415 3029,2411 3029,2408 3029,2404 3028,2404 3029,2404 3029,2400 3029,2397 3030,2393 3030,2390 3031,2386 3032,2383 3033,2379 3035,2376 3036,2373 3038,2370 3040,2367 3042,2364 3044,2361 3046,2358 3049,2356 3051,2353 3054,2351 3057,2349 3060,2346 3063,2345 3066,2343 3069,2341 3073,2340 3076,2339 3079,2338 3083,2337 3086,2336 3090,2335 3093,2335 3097,2335 3252,2334 3252,2335 3256,2335 3259,2335 3263,2336 3266,2336 3270,2337 3273,2338 3277,2339 3280,2341 3283,2342 3286,2344 3289,2346 3292,2348 3295,2350 3298,2352 3300,2355 3303,2357 3305,2360 3307,2363 3310,2366 3311,2369 3313,2372 3315,2375 3316,2379 3317,2382 3318,2385 3319,2389 3320,2392 3321,2396 3321,2399 3321,2403 3321,2404 Z M 3321,2473 L 3321,2473 Z M 3028,2334 L 3028,2334 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id79">
- <rect class="BoundingBox" stroke="none" fill="none" x="3028" y="2534" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3321,2604 L 3321,2604 3321,2608 3321,2611 3320,2615 3319,2618 3319,2622 3318,2625 3316,2629 3315,2632 3313,2635 3312,2639 3310,2642 3308,2645 3306,2647 3303,2650 3301,2653 3298,2655 3295,2658 3293,2660 3290,2662 3286,2664 3283,2665 3280,2667 3277,2668 3273,2670 3270,2671 3266,2671 3263,2672 3259,2673 3256,2673 3252,2673 3098,2673 3098,2673 3094,2673 3091,2673 3087,2672 3084,2671 3080,2671 3077,2670 3073,2668 3070,2667 3067,2665 3063,2664 3060,2662 3057,2660 3055,2658 3052,2655 3049,2653 3047,2650 3044,2647 3042,2645 3040,2642 3038,2638 3037,2635 3035,2632 3034,2629 3032,2625 3031,2622 3031,2618 3030,2615 3029,2611 3029,2608 3029,2604 3028,2604 3029,2604 3029,2600 3029,2597 3030,2593 3030,2590 3031,2586 3032,2583 3033,2579 3035,2576 3036,2573 3038,2570 3040,2567 3042,2564 3044,2561 3046,2558 3049,2556 3051,2553 3054,2551 3057,2549 3060,2546 3063,2545 3066,2543 3069,2541 3073,2540 3076,2539 3079,2538 3083,2537 3086,2536 3090,2535 3093,2535 3097,2535 3252,2534 3252,2535 3256,2535 3259,2535 3263,2536 3266,2536 3270,2537 3273,2538 3277,2539 3280,2541 3283,2542 3286,2544 3289,2546 3292,2548 3295,2550 3298,2552 3300,2555 3303,2557 3305,2560 3307,2563 3310,2566 3311,2569 3313,2572 3315,2575 3316,2579 3317,2582 3318,2585 3319,2589 3320,2592 3321,2596 3321,2599 3321,2603 3321,2604 Z M 3321,2673 L 3321,2673 Z M 3028,2534 L 3028,2534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id80">
- <rect class="BoundingBox" stroke="none" fill="none" x="3028" y="2734" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3321,2804 L 3321,2804 3321,2808 3321,2811 3320,2815 3319,2818 3319,2822 3318,2825 3316,2829 3315,2832 3313,2835 3312,2839 3310,2842 3308,2845 3306,2847 3303,2850 3301,2853 3298,2855 3295,2858 3293,2860 3290,2862 3286,2864 3283,2865 3280,2867 3277,2868 3273,2870 3270,2871 3266,2871 3263,2872 3259,2873 3256,2873 3252,2873 3098,2873 3098,2873 3094,2873 3091,2873 3087,2872 3084,2871 3080,2871 3077,2870 3073,2868 3070,2867 3067,2865 3063,2864 3060,2862 3057,2860 3055,2858 3052,2855 3049,2853 3047,2850 3044,2847 3042,2845 3040,2842 3038,2838 3037,2835 3035,2832 3034,2829 3032,2825 3031,2822 3031,2818 3030,2815 3029,2811 3029,2808 3029,2804 3028,2804 3029,2804 3029,2800 3029,2797 3030,2793 3030,2790 3031,2786 3032,2783 3033,2779 3035,2776 3036,2773 3038,2770 3040,2767 3042,2764 3044,2761 3046,2758 3049,2756 3051,2753 3054,2751 3057,2749 3060,2746 3063,2745 3066,2743 3069,2741 3073,2740 3076,2739 3079,2738 3083,2737 3086,2736 3090,2735 3093,2735 3097,2735 3252,2734 3252,2735 3256,2735 3259,2735 3263,2736 3266,2736 3270,2737 3273,2738 3277,2739 3280,2741 3283,2742 3286,2744 3289,2746 3292,2748 3295,2750 3298,2752 3300,2755 3303,2757 3305,2760 3307,2763 3310,2766 3311,2769 3313,2772 3315,2775 3316,2779 3317,2782 3318,2785 3319,2789 3320,2792 3321,2796 3321,2799 3321,2803 3321,2804 Z M 3321,2873 L 3321,2873 Z M 3028,2734 L 3028,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id81">
- <rect class="BoundingBox" stroke="none" fill="none" x="3708" y="2337" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4001,2407 L 4001,2407 4001,2411 4001,2414 4000,2418 3999,2421 3999,2425 3998,2428 3996,2432 3995,2435 3993,2438 3992,2442 3990,2445 3988,2448 3986,2450 3983,2453 3981,2456 3978,2458 3975,2461 3973,2463 3970,2465 3966,2467 3963,2468 3960,2470 3957,2471 3953,2473 3950,2474 3946,2474 3943,2475 3939,2476 3936,2476 3932,2476 3778,2476 3778,2476 3774,2476 3771,2476 3767,2475 3764,2474 3760,2474 3757,2473 3753,2471 3750,2470 3747,2468 3743,2467 3740,2465 3737,2463 3735,2461 3732,2458 3729,2456 3727,2453 3724,2450 3722,2448 3720,2445 3718,2441 3717,2438 3715,2435 3714,2432 3712,2428 3711,2425 3711,2421 3710,2418 3709,2414 3709,2411 3709,2407 3708,2407 3709,2407 3709,2403 3709,2400 3710,2396 3710,2393 3711,2389 3712,2386 3713,2382 3715,2379 3716,2376 3718,2373 3720,2370 3722,2367 3724,2364 3726,2361 3729,2359 3731,2356 3734,2354 3737,2352 3740,2349 3743,2348 3746,2346 3749,2344 3753,2343 3756,2342 3759,2341 3763,2340 3766,2339 3770,2338 3773,2338 3777,2338 3932,2337 3932,2338 3936,2338 3939,2338 3943,2339 3946,2339 3950,2340 3953,2341 3957,2342 3960,2344 3963,2345 3966,2347 3969,2349 3972,2351 3975,2353 3978,2355 3980,2358 3983,2360 3985,2363 3987,2366 3990,2369 3991,2372 3993,2375 3995,2378 3996,2382 3997,2385 3998,2388 3999,2392 4000,2395 4001,2399 4001,2402 4001,2406 4001,2407 Z M 4001,2476 L 4001,2476 Z M 3708,2337 L 3708,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id82">
- <rect class="BoundingBox" stroke="none" fill="none" x="3708" y="2537" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4001,2607 L 4001,2607 4001,2611 4001,2614 4000,2618 3999,2621 3999,2625 3998,2628 3996,2632 3995,2635 3993,2638 3992,2642 3990,2645 3988,2648 3986,2650 3983,2653 3981,2656 3978,2658 3975,2661 3973,2663 3970,2665 3966,2667 3963,2668 3960,2670 3957,2671 3953,2673 3950,2674 3946,2674 3943,2675 3939,2676 3936,2676 3932,2676 3778,2676 3778,2676 3774,2676 3771,2676 3767,2675 3764,2674 3760,2674 3757,2673 3753,2671 3750,2670 3747,2668 3743,2667 3740,2665 3737,2663 3735,2661 3732,2658 3729,2656 3727,2653 3724,2650 3722,2648 3720,2645 3718,2641 3717,2638 3715,2635 3714,2632 3712,2628 3711,2625 3711,2621 3710,2618 3709,2614 3709,2611 3709,2607 3708,2607 3709,2607 3709,2603 3709,2600 3710,2596 3710,2593 3711,2589 3712,2586 3713,2582 3715,2579 3716,2576 3718,2573 3720,2570 3722,2567 3724,2564 3726,2561 3729,2559 3731,2556 3734,2554 3737,2552 3740,2549 3743,2548 3746,2546 3749,2544 3753,2543 3756,2542 3759,2541 3763,2540 3766,2539 3770,2538 3773,2538 3777,2538 3932,2537 3932,2538 3936,2538 3939,2538 3943,2539 3946,2539 3950,2540 3953,2541 3957,2542 3960,2544 3963,2545 3966,2547 3969,2549 3972,2551 3975,2553 3978,2555 3980,2558 3983,2560 3985,2563 3987,2566 3990,2569 3991,2572 3993,2575 3995,2578 3996,2582 3997,2585 3998,2588 3999,2592 4000,2595 4001,2599 4001,2602 4001,2606 4001,2607 Z M 4001,2676 L 4001,2676 Z M 3708,2537 L 3708,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id83">
- <rect class="BoundingBox" stroke="none" fill="none" x="3708" y="2737" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4001,2807 L 4001,2807 4001,2811 4001,2814 4000,2818 3999,2821 3999,2825 3998,2828 3996,2832 3995,2835 3993,2838 3992,2842 3990,2845 3988,2848 3986,2850 3983,2853 3981,2856 3978,2858 3975,2861 3973,2863 3970,2865 3966,2867 3963,2868 3960,2870 3957,2871 3953,2873 3950,2874 3946,2874 3943,2875 3939,2876 3936,2876 3932,2876 3778,2876 3778,2876 3774,2876 3771,2876 3767,2875 3764,2874 3760,2874 3757,2873 3753,2871 3750,2870 3747,2868 3743,2867 3740,2865 3737,2863 3735,2861 3732,2858 3729,2856 3727,2853 3724,2850 3722,2848 3720,2845 3718,2841 3717,2838 3715,2835 3714,2832 3712,2828 3711,2825 3711,2821 3710,2818 3709,2814 3709,2811 3709,2807 3708,2807 3709,2807 3709,2803 3709,2800 3710,2796 3710,2793 3711,2789 3712,2786 3713,2782 3715,2779 3716,2776 3718,2773 3720,2770 3722,2767 3724,2764 3726,2761 3729,2759 3731,2756 3734,2754 3737,2752 3740,2749 3743,2748 3746,2746 3749,2744 3753,2743 3756,2742 3759,2741 3763,2740 3766,2739 3770,2738 3773,2738 3777,2738 3932,2737 3932,2738 3936,2738 3939,2738 3943,2739 3946,2739 3950,2740 3953,2741 3957,2742 3960,2744 3963,2745 3966,2747 3969,2749 3972,2751 3975,2753 3978,2755 3980,2758 3983,2760 3985,2763 3987,2766 3990,2769 3991,2772 3993,2775 3995,2778 3996,2782 3997,2785 3998,2788 3999,2792 4000,2795 4001,2799 4001,2802 4001,2806 4001,2807 Z M 4001,2876 L 4001,2876 Z M 3708,2737 L 3708,2737 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id84">
- <rect class="BoundingBox" stroke="none" fill="none" x="5752" y="2336" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6045,2407 L 6045,2407 6045,2411 6045,2414 6044,2418 6043,2421 6043,2425 6042,2428 6040,2432 6039,2435 6037,2438 6036,2442 6034,2445 6032,2448 6030,2450 6027,2453 6025,2456 6022,2458 6019,2461 6017,2463 6014,2465 6010,2467 6007,2468 6004,2470 6001,2471 5997,2473 5994,2474 5990,2474 5987,2475 5983,2476 5980,2476 5976,2476 5822,2476 5822,2476 5818,2476 5815,2476 5811,2475 5808,2474 5804,2474 5801,2473 5797,2471 5794,2470 5791,2468 5787,2467 5784,2465 5781,2463 5779,2461 5776,2458 5773,2456 5771,2453 5768,2450 5766,2448 5764,2445 5762,2441 5761,2438 5759,2435 5758,2432 5756,2428 5755,2425 5755,2421 5754,2418 5753,2414 5753,2411 5753,2407 5752,2407 5753,2407 5753,2403 5753,2400 5754,2396 5754,2393 5755,2389 5756,2386 5757,2382 5759,2379 5760,2376 5762,2373 5764,2370 5766,2367 5768,2364 5770,2361 5773,2359 5775,2356 5778,2354 5781,2352 5784,2349 5787,2348 5790,2346 5793,2344 5797,2343 5800,2342 5803,2341 5807,2340 5810,2339 5814,2338 5817,2338 5821,2338 5976,2337 5976,2338 5980,2338 5983,2338 5987,2339 5990,2339 5994,2340 5997,2341 6001,2342 6004,2344 6007,2345 6010,2347 6013,2349 6016,2351 6019,2353 6022,2355 6024,2358 6027,2360 6029,2363 6031,2366 6034,2369 6035,2372 6037,2375 6039,2378 6040,2382 6041,2385 6042,2388 6043,2392 6044,2395 6045,2399 6045,2402 6045,2406 6045,2407 Z M 6045,2476 L 6045,2476 Z M 5752,2337 L 5752,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id85">
- <rect class="BoundingBox" stroke="none" fill="none" x="5752" y="2537" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6045,2607 L 6045,2607 6045,2611 6045,2614 6044,2618 6043,2621 6043,2625 6042,2628 6040,2632 6039,2635 6037,2638 6036,2642 6034,2645 6032,2648 6030,2650 6027,2653 6025,2656 6022,2658 6019,2661 6017,2663 6014,2665 6010,2667 6007,2668 6004,2670 6001,2671 5997,2673 5994,2674 5990,2674 5987,2675 5983,2676 5980,2676 5976,2676 5822,2676 5822,2676 5818,2676 5815,2676 5811,2675 5808,2674 5804,2674 5801,2673 5797,2671 5794,2670 5791,2668 5787,2667 5784,2665 5781,2663 5779,2661 5776,2658 5773,2656 5771,2653 5768,2650 5766,2648 5764,2645 5762,2641 5761,2638 5759,2635 5758,2632 5756,2628 5755,2625 5755,2621 5754,2618 5753,2614 5753,2611 5753,2607 5752,2607 5753,2607 5753,2603 5753,2600 5754,2596 5754,2593 5755,2589 5756,2586 5757,2582 5759,2579 5760,2576 5762,2573 5764,2570 5766,2567 5768,2564 5770,2561 5773,2559 5775,2556 5778,2554 5781,2552 5784,2549 5787,2548 5790,2546 5793,2544 5797,2543 5800,2542 5803,2541 5807,2540 5810,2539 5814,2538 5817,2538 5821,2538 5976,2537 5976,2538 5980,2538 5983,2538 5987,2539 5990,2539 5994,2540 5997,2541 6001,2542 6004,2544 6007,2545 6010,2547 6013,2549 6016,2551 6019,2553 6022,2555 6024,2558 6027,2560 6029,2563 6031,2566 6034,2569 6035,2572 6037,2575 6039,2578 6040,2582 6041,2585 6042,2588 6043,2592 6044,2595 6045,2599 6045,2602 6045,2606 6045,2607 Z M 6045,2676 L 6045,2676 Z M 5752,2537 L 5752,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id86">
- <rect class="BoundingBox" stroke="none" fill="none" x="5751" y="2736" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6045,2806 L 6045,2806 6045,2810 6045,2813 6044,2817 6043,2820 6043,2824 6042,2827 6040,2831 6039,2834 6037,2837 6036,2841 6034,2844 6032,2847 6030,2849 6027,2852 6025,2855 6022,2857 6019,2860 6017,2862 6014,2864 6010,2866 6007,2867 6004,2869 6001,2870 5997,2872 5994,2873 5990,2873 5987,2874 5983,2875 5980,2875 5976,2875 5822,2875 5822,2875 5818,2875 5815,2875 5811,2874 5808,2873 5804,2873 5801,2872 5797,2870 5794,2869 5791,2867 5787,2866 5784,2864 5781,2862 5779,2860 5776,2857 5773,2855 5771,2852 5768,2849 5766,2847 5764,2844 5762,2840 5761,2837 5759,2834 5758,2831 5756,2827 5755,2824 5755,2820 5754,2817 5753,2813 5753,2810 5753,2806 5752,2806 5753,2806 5753,2802 5753,2799 5754,2795 5754,2792 5755,2788 5756,2785 5757,2781 5759,2778 5760,2775 5762,2772 5764,2769 5766,2766 5768,2763 5770,2760 5773,2758 5775,2755 5778,2753 5781,2751 5784,2748 5787,2747 5790,2745 5793,2743 5797,2742 5800,2741 5803,2740 5807,2739 5810,2738 5814,2737 5817,2737 5821,2737 5976,2736 5976,2737 5980,2737 5983,2737 5987,2738 5990,2738 5994,2739 5997,2740 6001,2741 6004,2743 6007,2744 6010,2746 6013,2748 6016,2750 6019,2752 6022,2754 6024,2757 6027,2759 6029,2762 6031,2765 6034,2768 6035,2771 6037,2774 6039,2777 6040,2781 6041,2784 6042,2787 6043,2791 6044,2794 6045,2798 6045,2801 6045,2805 6045,2806 Z M 6045,2875 L 6045,2875 Z M 5752,2736 L 5752,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id87">
- <rect class="BoundingBox" stroke="none" fill="none" x="5403" y="2337" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 5696,2407 L 5696,2407 5696,2411 5696,2414 5695,2418 5694,2421 5694,2425 5693,2428 5691,2432 5690,2435 5688,2438 5687,2442 5685,2445 5683,2448 5681,2450 5678,2453 5676,2456 5673,2458 5670,2461 5668,2463 5665,2465 5661,2467 5658,2468 5655,2470 5652,2471 5648,2473 5645,2474 5641,2474 5638,2475 5634,2476 5631,2476 5627,2476 5473,2476 5473,2476 5469,2476 5466,2476 5462,2475 5459,2474 5455,2474 5452,2473 5448,2471 5445,2470 5442,2468 5438,2467 5435,2465 5432,2463 5430,2461 5427,2458 5424,2456 5422,2453 5419,2450 5417,2448 5415,2445 5413,2441 5412,2438 5410,2435 5409,2432 5407,2428 5406,2425 5406,2421 5405,2418 5404,2414 5404,2411 5404,2407 5403,2407 5404,2407 5404,2403 5404,2400 5405,2396 5405,2393 5406,2389 5407,2386 5408,2382 5410,2379 5411,2376 5413,2373 5415,2370 5417,2367 5419,2364 5421,2361 5424,2359 5426,2356 5429,2354 5432,2352 5435,2349 5438,2348 5441,2346 5444,2344 5448,2343 5451,2342 5454,2341 5458,2340 5461,2339 5465,2338 5468,2338 5472,2338 5627,2337 5627,2338 5631,2338 5634,2338 5638,2339 5641,2339 5645,2340 5648,2341 5652,2342 5655,2344 5658,2345 5661,2347 5664,2349 5667,2351 5670,2353 5673,2355 5675,2358 5678,2360 5680,2363 5682,2366 5685,2369 5686,2372 5688,2375 5690,2378 5691,2382 5692,2385 5693,2388 5694,2392 5695,2395 5696,2399 5696,2402 5696,2406 5696,2407 Z M 5696,2476 L 5696,2476 Z M 5403,2337 L 5403,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id88">
- <rect class="BoundingBox" stroke="none" fill="none" x="5403" y="2537" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 5696,2607 L 5696,2607 5696,2611 5696,2614 5695,2618 5694,2621 5694,2625 5693,2628 5691,2632 5690,2635 5688,2638 5687,2642 5685,2645 5683,2648 5681,2650 5678,2653 5676,2656 5673,2658 5670,2661 5668,2663 5665,2665 5661,2667 5658,2668 5655,2670 5652,2671 5648,2673 5645,2674 5641,2674 5638,2675 5634,2676 5631,2676 5627,2676 5473,2676 5473,2676 5469,2676 5466,2676 5462,2675 5459,2674 5455,2674 5452,2673 5448,2671 5445,2670 5442,2668 5438,2667 5435,2665 5432,2663 5430,2661 5427,2658 5424,2656 5422,2653 5419,2650 5417,2648 5415,2645 5413,2641 5412,2638 5410,2635 5409,2632 5407,2628 5406,2625 5406,2621 5405,2618 5404,2614 5404,2611 5404,2607 5403,2607 5404,2607 5404,2603 5404,2600 5405,2596 5405,2593 5406,2589 5407,2586 5408,2582 5410,2579 5411,2576 5413,2573 5415,2570 5417,2567 5419,2564 5421,2561 5424,2559 5426,2556 5429,2554 5432,2552 5435,2549 5438,2548 5441,2546 5444,2544 5448,2543 5451,2542 5454,2541 5458,2540 5461,2539 5465,2538 5468,2538 5472,2538 5627,2537 5627,2538 5631,2538 5634,2538 5638,2539 5641,2539 5645,2540 5648,2541 5652,2542 5655,2544 5658,2545 5661,2547 5664,2549 5667,2551 5670,2553 5673,2555 5675,2558 5678,2560 5680,2563 5682,2566 5685,2569 5686,2572 5688,2575 5690,2578 5691,2582 5692,2585 5693,2588 5694,2592 5695,2595 5696,2599 5696,2602 5696,2606 5696,2607 Z M 5696,2676 L 5696,2676 Z M 5403,2537 L 5403,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id89">
- <rect class="BoundingBox" stroke="none" fill="none" x="5403" y="2736" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 5696,2806 L 5696,2806 5696,2810 5696,2813 5695,2817 5694,2820 5694,2824 5693,2827 5691,2831 5690,2834 5688,2837 5687,2841 5685,2844 5683,2847 5681,2849 5678,2852 5676,2855 5673,2857 5670,2860 5668,2862 5665,2864 5661,2866 5658,2867 5655,2869 5652,2870 5648,2872 5645,2873 5641,2873 5638,2874 5634,2875 5631,2875 5627,2875 5473,2875 5473,2875 5469,2875 5466,2875 5462,2874 5459,2873 5455,2873 5452,2872 5448,2870 5445,2869 5442,2867 5438,2866 5435,2864 5432,2862 5430,2860 5427,2857 5424,2855 5422,2852 5419,2849 5417,2847 5415,2844 5413,2840 5412,2837 5410,2834 5409,2831 5407,2827 5406,2824 5406,2820 5405,2817 5404,2813 5404,2810 5404,2806 5403,2806 5404,2806 5404,2802 5404,2799 5405,2795 5405,2792 5406,2788 5407,2785 5408,2781 5410,2778 5411,2775 5413,2772 5415,2769 5417,2766 5419,2763 5421,2760 5424,2758 5426,2755 5429,2753 5432,2751 5435,2748 5438,2747 5441,2745 5444,2743 5448,2742 5451,2741 5454,2740 5458,2739 5461,2738 5465,2737 5468,2737 5472,2737 5627,2736 5627,2737 5631,2737 5634,2737 5638,2738 5641,2738 5645,2739 5648,2740 5652,2741 5655,2743 5658,2744 5661,2746 5664,2748 5667,2750 5670,2752 5673,2754 5675,2757 5678,2759 5680,2762 5682,2765 5685,2768 5686,2771 5688,2774 5690,2777 5691,2781 5692,2784 5693,2787 5694,2791 5695,2794 5696,2798 5696,2801 5696,2805 5696,2806 Z M 5696,2875 L 5696,2875 Z M 5403,2736 L 5403,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id90">
- <rect class="BoundingBox" stroke="none" fill="none" x="6082" y="2340" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6375,2410 L 6375,2410 6375,2414 6375,2417 6374,2421 6373,2424 6373,2428 6372,2431 6370,2435 6369,2438 6367,2441 6366,2445 6364,2448 6362,2451 6360,2453 6357,2456 6355,2459 6352,2461 6349,2464 6347,2466 6344,2468 6340,2470 6337,2471 6334,2473 6331,2474 6327,2476 6324,2477 6320,2477 6317,2478 6313,2479 6310,2479 6306,2479 6152,2479 6152,2479 6148,2479 6145,2479 6141,2478 6138,2477 6134,2477 6131,2476 6127,2474 6124,2473 6121,2471 6117,2470 6114,2468 6111,2466 6109,2464 6106,2461 6103,2459 6101,2456 6098,2453 6096,2451 6094,2448 6092,2444 6091,2441 6089,2438 6088,2435 6086,2431 6085,2428 6085,2424 6084,2421 6083,2417 6083,2414 6083,2410 6082,2410 6083,2410 6083,2406 6083,2403 6084,2399 6084,2396 6085,2392 6086,2389 6087,2385 6089,2382 6090,2379 6092,2376 6094,2373 6096,2370 6098,2367 6100,2364 6103,2362 6105,2359 6108,2357 6111,2355 6114,2352 6117,2351 6120,2349 6123,2347 6127,2346 6130,2345 6133,2344 6137,2343 6140,2342 6144,2341 6147,2341 6151,2341 6306,2340 6306,2341 6310,2341 6313,2341 6317,2342 6320,2342 6324,2343 6327,2344 6331,2345 6334,2347 6337,2348 6340,2350 6343,2352 6346,2354 6349,2356 6352,2358 6354,2361 6357,2363 6359,2366 6361,2369 6364,2372 6365,2375 6367,2378 6369,2381 6370,2385 6371,2388 6372,2391 6373,2395 6374,2398 6375,2402 6375,2405 6375,2409 6375,2410 Z M 6375,2479 L 6375,2479 Z M 6082,2340 L 6082,2340 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id91">
- <rect class="BoundingBox" stroke="none" fill="none" x="6082" y="2538" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6375,2609 L 6375,2609 6375,2613 6375,2616 6374,2620 6373,2623 6373,2627 6372,2630 6370,2634 6369,2637 6367,2640 6366,2644 6364,2647 6362,2650 6360,2652 6357,2655 6355,2658 6352,2660 6349,2663 6347,2665 6344,2667 6340,2669 6337,2670 6334,2672 6331,2673 6327,2675 6324,2676 6320,2676 6317,2677 6313,2678 6310,2678 6306,2678 6152,2678 6152,2678 6148,2678 6145,2678 6141,2677 6138,2676 6134,2676 6131,2675 6127,2673 6124,2672 6121,2670 6117,2669 6114,2667 6111,2665 6109,2663 6106,2660 6103,2658 6101,2655 6098,2652 6096,2650 6094,2647 6092,2643 6091,2640 6089,2637 6088,2634 6086,2630 6085,2627 6085,2623 6084,2620 6083,2616 6083,2613 6083,2609 6082,2609 6083,2609 6083,2605 6083,2602 6084,2598 6084,2595 6085,2591 6086,2588 6087,2584 6089,2581 6090,2578 6092,2575 6094,2572 6096,2569 6098,2566 6100,2563 6103,2561 6105,2558 6108,2556 6111,2554 6114,2551 6117,2550 6120,2548 6123,2546 6127,2545 6130,2544 6133,2543 6137,2542 6140,2541 6144,2540 6147,2540 6151,2540 6306,2539 6306,2540 6310,2540 6313,2540 6317,2541 6320,2541 6324,2542 6327,2543 6331,2544 6334,2546 6337,2547 6340,2549 6343,2551 6346,2553 6349,2555 6352,2557 6354,2560 6357,2562 6359,2565 6361,2568 6364,2571 6365,2574 6367,2577 6369,2580 6370,2584 6371,2587 6372,2590 6373,2594 6374,2597 6375,2601 6375,2604 6375,2608 6375,2609 Z M 6375,2678 L 6375,2678 Z M 6082,2539 L 6082,2539 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id92">
- <rect class="BoundingBox" stroke="none" fill="none" x="6082" y="2739" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6375,2809 L 6375,2809 6375,2813 6375,2816 6374,2820 6373,2823 6373,2827 6372,2830 6370,2834 6369,2837 6367,2840 6366,2844 6364,2847 6362,2850 6360,2852 6357,2855 6355,2858 6352,2860 6349,2863 6347,2865 6344,2867 6340,2869 6337,2870 6334,2872 6331,2873 6327,2875 6324,2876 6320,2876 6317,2877 6313,2878 6310,2878 6306,2878 6152,2878 6152,2878 6148,2878 6145,2878 6141,2877 6138,2876 6134,2876 6131,2875 6127,2873 6124,2872 6121,2870 6117,2869 6114,2867 6111,2865 6109,2863 6106,2860 6103,2858 6101,2855 6098,2852 6096,2850 6094,2847 6092,2843 6091,2840 6089,2837 6088,2834 6086,2830 6085,2827 6085,2823 6084,2820 6083,2816 6083,2813 6083,2809 6082,2809 6083,2809 6083,2805 6083,2802 6084,2798 6084,2795 6085,2791 6086,2788 6087,2784 6089,2781 6090,2778 6092,2775 6094,2772 6096,2769 6098,2766 6100,2763 6103,2761 6105,2758 6108,2756 6111,2754 6114,2751 6117,2750 6120,2748 6123,2746 6127,2745 6130,2744 6133,2743 6137,2742 6140,2741 6144,2740 6147,2740 6151,2740 6306,2739 6306,2740 6310,2740 6313,2740 6317,2741 6320,2741 6324,2742 6327,2743 6331,2744 6334,2746 6337,2747 6340,2749 6343,2751 6346,2753 6349,2755 6352,2757 6354,2760 6357,2762 6359,2765 6361,2768 6364,2771 6365,2774 6367,2777 6369,2780 6370,2784 6371,2787 6372,2790 6373,2794 6374,2797 6375,2801 6375,2804 6375,2808 6375,2809 Z M 6375,2878 L 6375,2878 Z M 6082,2739 L 6082,2739 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id93">
- <rect class="BoundingBox" stroke="none" fill="none" x="827" y="4140" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1077" y="4527"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1077" y="4857"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id94">
- <rect class="BoundingBox" stroke="none" fill="none" x="9148" y="1920" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 12768,5116 L 9166,5116 9166,1938 16370,1938 16370,5116 12768,5116 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12768,5116 L 9166,5116 9166,1938 16370,1938 16370,5116 12768,5116 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9266" y="2326"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9266" y="2791"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id95">
- <rect class="BoundingBox" stroke="none" fill="none" x="10258" y="5020" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 10711,5463 L 10267,5463 10267,5029 11154,5029 11154,5463 10711,5463 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 10711,5463 L 10267,5463 10267,5029 11154,5029 11154,5463 10711,5463 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10373" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id96">
- <rect class="BoundingBox" stroke="none" fill="none" x="10371" y="5506" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10389,5524 L 10394,6224"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10389,5524 L 10389,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10394,6224 L 10394,6224 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id97">
- <rect class="BoundingBox" stroke="none" fill="none" x="10290" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10374,5523 L 10299,5523 10299,5424 10448,5424 10448,5523 10374,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10374,5523 L 10299,5523 10299,5424 10448,5424 10448,5523 10374,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id98">
- <rect class="BoundingBox" stroke="none" fill="none" x="10934" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11018,5521 L 10943,5521 10943,5422 11092,5422 11092,5521 11018,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11018,5521 L 10943,5521 10943,5422 11092,5422 11092,5521 11018,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id99">
- <rect class="BoundingBox" stroke="none" fill="none" x="10998" y="5504" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11018,5522 L 11016,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11018,5522 L 11018,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11016,6270 L 11016,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id100">
- <rect class="BoundingBox" stroke="none" fill="none" x="10574" y="5508" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10594,5526 L 10592,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10594,5526 L 10594,5526 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10592,6272 L 10592,6272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id101">
- <rect class="BoundingBox" stroke="none" fill="none" x="10510" y="5417" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10594,5525 L 10519,5525 10519,5426 10668,5426 10668,5525 10594,5525 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10594,5525 L 10519,5525 10519,5426 10668,5426 10668,5525 10594,5525 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id102">
- <rect class="BoundingBox" stroke="none" fill="none" x="10721" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10805,5523 L 10730,5523 10730,5424 10879,5424 10879,5523 10805,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10805,5523 L 10730,5523 10730,5424 10879,5424 10879,5523 10805,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id103">
- <rect class="BoundingBox" stroke="none" fill="none" x="10801" y="5506" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10819,5524 L 10825,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10819,5524 L 10819,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10825,6272 L 10825,6272 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id104">
- <rect class="BoundingBox" stroke="none" fill="none" x="9850" y="3088" width="6109" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 12904,4272 L 9868,4272 9868,3106 15940,3106 15940,4272 12904,4272 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 12904,4272 L 9868,4272 9868,3106 15940,3106 15940,4272 12904,4272 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10627" y="3763"><tspan fill="rgb(255,255,255)" stroke="none">Intel Atom C3858 @2.00GHz</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id105">
- <rect class="BoundingBox" stroke="none" fill="none" x="10464" y="4291" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 10741,5024 L 10464,4863 10602,4863 10602,4453 10464,4453 10741,4291 11019,4453 10880,4453 10880,4863 11019,4863 10741,5024 Z M 10464,5024 L 10464,5024 Z M 11019,4291 L 11019,4291 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id106">
- <rect class="BoundingBox" stroke="none" fill="none" x="10502" y="4481" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 10740,4824 L 10502,4824 10502,4481 10977,4481 10977,4824 10740,4824 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10589" y="4766"><tspan fill="rgb(255,255,255)" stroke="none">x4</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id107">
- <rect class="BoundingBox" stroke="none" fill="none" x="12314" y="2289" width="1321" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12564" y="2696"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id108">
- <rect class="BoundingBox" stroke="none" fill="none" x="14786" y="5010" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 15239,5453 L 14795,5453 14795,5019 15682,5019 15682,5453 15239,5453 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 15239,5453 L 14795,5453 14795,5019 15682,5019 15682,5453 15239,5453 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="14901" y="5317"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id109">
- <rect class="BoundingBox" stroke="none" fill="none" x="14899" y="5496" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14917,5514 L 14922,6260"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14917,5514 L 14917,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14922,6260 L 14922,6260 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id110">
- <rect class="BoundingBox" stroke="none" fill="none" x="14818" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14902,5513 L 14827,5513 14827,5414 14976,5414 14976,5513 14902,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14902,5513 L 14827,5513 14827,5414 14976,5414 14976,5513 14902,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id111">
- <rect class="BoundingBox" stroke="none" fill="none" x="15461" y="5403" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15545,5511 L 15470,5511 15470,5412 15619,5412 15619,5511 15545,5511 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15545,5511 L 15470,5511 15470,5412 15619,5412 15619,5511 15545,5511 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id112">
- <rect class="BoundingBox" stroke="none" fill="none" x="15526" y="5494" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15546,5512 L 15544,6212"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15546,5512 L 15546,5512 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15544,6212 L 15544,6212 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id113">
- <rect class="BoundingBox" stroke="none" fill="none" x="15102" y="5498" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15122,5516 L 15120,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15122,5516 L 15122,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15120,6262 L 15120,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id114">
- <rect class="BoundingBox" stroke="none" fill="none" x="15038" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15122,5515 L 15047,5515 15047,5416 15196,5416 15196,5515 15122,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15122,5515 L 15047,5515 15047,5416 15196,5416 15196,5515 15122,5515 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id115">
- <rect class="BoundingBox" stroke="none" fill="none" x="15249" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15333,5513 L 15258,5513 15258,5414 15407,5414 15407,5513 15333,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15333,5513 L 15258,5513 15258,5414 15407,5414 15407,5513 15333,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id116">
- <rect class="BoundingBox" stroke="none" fill="none" x="15329" y="5496" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15347,5514 L 15353,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15347,5514 L 15347,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15353,6262 L 15353,6262 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id117">
- <rect class="BoundingBox" stroke="none" fill="none" x="15008" y="4272" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 15285,5005 L 15008,4844 15146,4844 15146,4434 15008,4434 15285,4272 15563,4434 15424,4434 15424,4844 15563,4844 15285,5005 Z M 15008,5005 L 15008,5005 Z M 15563,4272 L 15563,4272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id118">
- <rect class="BoundingBox" stroke="none" fill="none" x="15047" y="4462" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 15285,4805 L 15047,4805 15047,4462 15522,4462 15522,4805 15285,4805 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15134" y="4747"><tspan fill="rgb(255,255,255)" stroke="none">x4</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id119">
- <rect class="BoundingBox" stroke="none" fill="none" x="14870" y="6139" width="743" height="234"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 15559,6192 L 15559,6192 15559,6199 15559,6205 15558,6212 15558,6218 15557,6225 15557,6231 15556,6237 15555,6243 15553,6249 15552,6255 15551,6261 15549,6266 15548,6271 15546,6276 15544,6281 15542,6286 15540,6290 15538,6294 15536,6298 15533,6301 15531,6304 15529,6307 15526,6310 15524,6312 15521,6314 15519,6315 15516,6316 15513,6317 15511,6318 15508,6318 14975,6319 14975,6319 14972,6319 14970,6318 14967,6317 14964,6316 14962,6315 14959,6313 14957,6311 14954,6308 14952,6305 14950,6302 14947,6299 14945,6295 14943,6291 14941,6287 14939,6282 14937,6277 14936,6272 14934,6267 14932,6262 14931,6256 14930,6250 14929,6244 14927,6238 14927,6232 14926,6226 14925,6219 14925,6213 14924,6206 14924,6200 14924,6193"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 15559,6192 L 15559,6192 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 14923,6319 L 14923,6319 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id120">
- <rect class="BoundingBox" stroke="none" fill="none" x="9562" y="1254" width="6435" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="9812" y="1802"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 2 (SUT2)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id121">
- <rect class="BoundingBox" stroke="none" fill="none" x="11732" y="2334" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12025,2404 L 12025,2404 12025,2408 12025,2411 12024,2415 12023,2418 12023,2422 12022,2425 12020,2429 12019,2432 12017,2435 12016,2439 12014,2442 12012,2445 12010,2447 12007,2450 12005,2453 12002,2455 11999,2458 11997,2460 11994,2462 11990,2464 11987,2465 11984,2467 11981,2468 11977,2470 11974,2471 11970,2471 11967,2472 11963,2473 11960,2473 11956,2473 11802,2473 11802,2473 11798,2473 11795,2473 11791,2472 11788,2471 11784,2471 11781,2470 11777,2468 11774,2467 11771,2465 11767,2464 11764,2462 11761,2460 11759,2458 11756,2455 11753,2453 11751,2450 11748,2447 11746,2445 11744,2442 11742,2438 11741,2435 11739,2432 11738,2429 11736,2425 11735,2422 11735,2418 11734,2415 11733,2411 11733,2408 11733,2404 11732,2404 11733,2404 11733,2400 11733,2397 11734,2393 11734,2390 11735,2386 11736,2383 11737,2379 11739,2376 11740,2373 11742,2370 11744,2367 11746,2364 11748,2361 11750,2358 11753,2356 11755,2353 11758,2351 11761,2349 11764,2346 11767,2345 11770,2343 11773,2341 11777,2340 11780,2339 11783,2338 11787,2337 11790,2336 11794,2335 11797,2335 11801,2335 11956,2334 11956,2335 11960,2335 11963,2335 11967,2336 11970,2336 11974,2337 11977,2338 11981,2339 11984,2341 11987,2342 11990,2344 11993,2346 11996,2348 11999,2350 12002,2352 12004,2355 12007,2357 12009,2360 12011,2363 12014,2366 12015,2369 12017,2372 12019,2375 12020,2379 12021,2382 12022,2385 12023,2389 12024,2392 12025,2396 12025,2399 12025,2403 12025,2404 Z M 12025,2473 L 12025,2473 Z M 11732,2334 L 11732,2334 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id122">
- <rect class="BoundingBox" stroke="none" fill="none" x="11732" y="2534" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12025,2604 L 12025,2604 12025,2608 12025,2611 12024,2615 12023,2618 12023,2622 12022,2625 12020,2629 12019,2632 12017,2635 12016,2639 12014,2642 12012,2645 12010,2647 12007,2650 12005,2653 12002,2655 11999,2658 11997,2660 11994,2662 11990,2664 11987,2665 11984,2667 11981,2668 11977,2670 11974,2671 11970,2671 11967,2672 11963,2673 11960,2673 11956,2673 11802,2673 11802,2673 11798,2673 11795,2673 11791,2672 11788,2671 11784,2671 11781,2670 11777,2668 11774,2667 11771,2665 11767,2664 11764,2662 11761,2660 11759,2658 11756,2655 11753,2653 11751,2650 11748,2647 11746,2645 11744,2642 11742,2638 11741,2635 11739,2632 11738,2629 11736,2625 11735,2622 11735,2618 11734,2615 11733,2611 11733,2608 11733,2604 11732,2604 11733,2604 11733,2600 11733,2597 11734,2593 11734,2590 11735,2586 11736,2583 11737,2579 11739,2576 11740,2573 11742,2570 11744,2567 11746,2564 11748,2561 11750,2558 11753,2556 11755,2553 11758,2551 11761,2549 11764,2546 11767,2545 11770,2543 11773,2541 11777,2540 11780,2539 11783,2538 11787,2537 11790,2536 11794,2535 11797,2535 11801,2535 11956,2534 11956,2535 11960,2535 11963,2535 11967,2536 11970,2536 11974,2537 11977,2538 11981,2539 11984,2541 11987,2542 11990,2544 11993,2546 11996,2548 11999,2550 12002,2552 12004,2555 12007,2557 12009,2560 12011,2563 12014,2566 12015,2569 12017,2572 12019,2575 12020,2579 12021,2582 12022,2585 12023,2589 12024,2592 12025,2596 12025,2599 12025,2603 12025,2604 Z M 12025,2673 L 12025,2673 Z M 11732,2534 L 11732,2534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id123">
- <rect class="BoundingBox" stroke="none" fill="none" x="11732" y="2734" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12025,2804 L 12025,2804 12025,2808 12025,2811 12024,2815 12023,2818 12023,2822 12022,2825 12020,2829 12019,2832 12017,2835 12016,2839 12014,2842 12012,2845 12010,2847 12007,2850 12005,2853 12002,2855 11999,2858 11997,2860 11994,2862 11990,2864 11987,2865 11984,2867 11981,2868 11977,2870 11974,2871 11970,2871 11967,2872 11963,2873 11960,2873 11956,2873 11802,2873 11802,2873 11798,2873 11795,2873 11791,2872 11788,2871 11784,2871 11781,2870 11777,2868 11774,2867 11771,2865 11767,2864 11764,2862 11761,2860 11759,2858 11756,2855 11753,2853 11751,2850 11748,2847 11746,2845 11744,2842 11742,2838 11741,2835 11739,2832 11738,2829 11736,2825 11735,2822 11735,2818 11734,2815 11733,2811 11733,2808 11733,2804 11732,2804 11733,2804 11733,2800 11733,2797 11734,2793 11734,2790 11735,2786 11736,2783 11737,2779 11739,2776 11740,2773 11742,2770 11744,2767 11746,2764 11748,2761 11750,2758 11753,2756 11755,2753 11758,2751 11761,2749 11764,2746 11767,2745 11770,2743 11773,2741 11777,2740 11780,2739 11783,2738 11787,2737 11790,2736 11794,2735 11797,2735 11801,2735 11956,2734 11956,2735 11960,2735 11963,2735 11967,2736 11970,2736 11974,2737 11977,2738 11981,2739 11984,2741 11987,2742 11990,2744 11993,2746 11996,2748 11999,2750 12002,2752 12004,2755 12007,2757 12009,2760 12011,2763 12014,2766 12015,2769 12017,2772 12019,2775 12020,2779 12021,2782 12022,2785 12023,2789 12024,2792 12025,2796 12025,2799 12025,2803 12025,2804 Z M 12025,2873 L 12025,2873 Z M 11732,2734 L 11732,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id124">
- <rect class="BoundingBox" stroke="none" fill="none" x="11383" y="2333" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11676,2404 L 11676,2404 11676,2408 11676,2411 11675,2415 11674,2418 11674,2422 11673,2425 11671,2429 11670,2432 11668,2435 11667,2439 11665,2442 11663,2445 11661,2447 11658,2450 11656,2453 11653,2455 11650,2458 11648,2460 11645,2462 11641,2464 11638,2465 11635,2467 11632,2468 11628,2470 11625,2471 11621,2471 11618,2472 11614,2473 11611,2473 11607,2473 11453,2473 11453,2473 11449,2473 11446,2473 11442,2472 11439,2471 11435,2471 11432,2470 11428,2468 11425,2467 11422,2465 11418,2464 11415,2462 11412,2460 11410,2458 11407,2455 11404,2453 11402,2450 11399,2447 11397,2445 11395,2442 11393,2438 11392,2435 11390,2432 11389,2429 11387,2425 11386,2422 11386,2418 11385,2415 11384,2411 11384,2408 11384,2404 11383,2404 11384,2404 11384,2400 11384,2397 11385,2393 11385,2390 11386,2386 11387,2383 11388,2379 11390,2376 11391,2373 11393,2370 11395,2367 11397,2364 11399,2361 11401,2358 11404,2356 11406,2353 11409,2351 11412,2349 11415,2346 11418,2345 11421,2343 11424,2341 11428,2340 11431,2339 11434,2338 11438,2337 11441,2336 11445,2335 11448,2335 11452,2335 11607,2334 11607,2335 11611,2335 11614,2335 11618,2336 11621,2336 11625,2337 11628,2338 11632,2339 11635,2341 11638,2342 11641,2344 11644,2346 11647,2348 11650,2350 11653,2352 11655,2355 11658,2357 11660,2360 11662,2363 11665,2366 11666,2369 11668,2372 11670,2375 11671,2379 11672,2382 11673,2385 11674,2389 11675,2392 11676,2396 11676,2399 11676,2403 11676,2404 Z M 11676,2473 L 11676,2473 Z M 11383,2334 L 11383,2334 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id125">
- <rect class="BoundingBox" stroke="none" fill="none" x="11383" y="2534" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11676,2604 L 11676,2604 11676,2608 11676,2611 11675,2615 11674,2618 11674,2622 11673,2625 11671,2629 11670,2632 11668,2635 11667,2639 11665,2642 11663,2645 11661,2647 11658,2650 11656,2653 11653,2655 11650,2658 11648,2660 11645,2662 11641,2664 11638,2665 11635,2667 11632,2668 11628,2670 11625,2671 11621,2671 11618,2672 11614,2673 11611,2673 11607,2673 11453,2673 11453,2673 11449,2673 11446,2673 11442,2672 11439,2671 11435,2671 11432,2670 11428,2668 11425,2667 11422,2665 11418,2664 11415,2662 11412,2660 11410,2658 11407,2655 11404,2653 11402,2650 11399,2647 11397,2645 11395,2642 11393,2638 11392,2635 11390,2632 11389,2629 11387,2625 11386,2622 11386,2618 11385,2615 11384,2611 11384,2608 11384,2604 11383,2604 11384,2604 11384,2600 11384,2597 11385,2593 11385,2590 11386,2586 11387,2583 11388,2579 11390,2576 11391,2573 11393,2570 11395,2567 11397,2564 11399,2561 11401,2558 11404,2556 11406,2553 11409,2551 11412,2549 11415,2546 11418,2545 11421,2543 11424,2541 11428,2540 11431,2539 11434,2538 11438,2537 11441,2536 11445,2535 11448,2535 11452,2535 11607,2534 11607,2535 11611,2535 11614,2535 11618,2536 11621,2536 11625,2537 11628,2538 11632,2539 11635,2541 11638,2542 11641,2544 11644,2546 11647,2548 11650,2550 11653,2552 11655,2555 11658,2557 11660,2560 11662,2563 11665,2566 11666,2569 11668,2572 11670,2575 11671,2579 11672,2582 11673,2585 11674,2589 11675,2592 11676,2596 11676,2599 11676,2603 11676,2604 Z M 11676,2673 L 11676,2673 Z M 11383,2534 L 11383,2534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id126">
- <rect class="BoundingBox" stroke="none" fill="none" x="11383" y="2733" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11676,2804 L 11676,2804 11676,2808 11676,2811 11675,2815 11674,2818 11674,2822 11673,2825 11671,2829 11670,2832 11668,2835 11667,2839 11665,2842 11663,2845 11661,2847 11658,2850 11656,2853 11653,2855 11650,2858 11648,2860 11645,2862 11641,2864 11638,2865 11635,2867 11632,2868 11628,2870 11625,2871 11621,2871 11618,2872 11614,2873 11611,2873 11607,2873 11453,2873 11453,2873 11449,2873 11446,2873 11442,2872 11439,2871 11435,2871 11432,2870 11428,2868 11425,2867 11422,2865 11418,2864 11415,2862 11412,2860 11410,2858 11407,2855 11404,2853 11402,2850 11399,2847 11397,2845 11395,2842 11393,2838 11392,2835 11390,2832 11389,2829 11387,2825 11386,2822 11386,2818 11385,2815 11384,2811 11384,2808 11384,2804 11383,2804 11384,2804 11384,2800 11384,2797 11385,2793 11385,2790 11386,2786 11387,2783 11388,2779 11390,2776 11391,2773 11393,2770 11395,2767 11397,2764 11399,2761 11401,2758 11404,2756 11406,2753 11409,2751 11412,2749 11415,2746 11418,2745 11421,2743 11424,2741 11428,2740 11431,2739 11434,2738 11438,2737 11441,2736 11445,2735 11448,2735 11452,2735 11607,2734 11607,2735 11611,2735 11614,2735 11618,2736 11621,2736 11625,2737 11628,2738 11632,2739 11635,2741 11638,2742 11641,2744 11644,2746 11647,2748 11650,2750 11653,2752 11655,2755 11658,2757 11660,2760 11662,2763 11665,2766 11666,2769 11668,2772 11670,2775 11671,2779 11672,2782 11673,2785 11674,2789 11675,2792 11676,2796 11676,2799 11676,2803 11676,2804 Z M 11676,2873 L 11676,2873 Z M 11383,2734 L 11383,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id127">
- <rect class="BoundingBox" stroke="none" fill="none" x="12063" y="2337" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12356,2407 L 12356,2407 12356,2411 12356,2414 12355,2418 12354,2421 12354,2425 12353,2428 12351,2432 12350,2435 12348,2438 12347,2442 12345,2445 12343,2448 12341,2450 12338,2453 12336,2456 12333,2458 12330,2461 12328,2463 12325,2465 12321,2467 12318,2468 12315,2470 12312,2471 12308,2473 12305,2474 12301,2474 12298,2475 12294,2476 12291,2476 12287,2476 12133,2476 12133,2476 12129,2476 12126,2476 12122,2475 12119,2474 12115,2474 12112,2473 12108,2471 12105,2470 12102,2468 12098,2467 12095,2465 12092,2463 12090,2461 12087,2458 12084,2456 12082,2453 12079,2450 12077,2448 12075,2445 12073,2441 12072,2438 12070,2435 12069,2432 12067,2428 12066,2425 12066,2421 12065,2418 12064,2414 12064,2411 12064,2407 12063,2407 12064,2407 12064,2403 12064,2400 12065,2396 12065,2393 12066,2389 12067,2386 12068,2382 12070,2379 12071,2376 12073,2373 12075,2370 12077,2367 12079,2364 12081,2361 12084,2359 12086,2356 12089,2354 12092,2352 12095,2349 12098,2348 12101,2346 12104,2344 12108,2343 12111,2342 12114,2341 12118,2340 12121,2339 12125,2338 12128,2338 12132,2338 12287,2337 12287,2338 12291,2338 12294,2338 12298,2339 12301,2339 12305,2340 12308,2341 12312,2342 12315,2344 12318,2345 12321,2347 12324,2349 12327,2351 12330,2353 12333,2355 12335,2358 12338,2360 12340,2363 12342,2366 12345,2369 12346,2372 12348,2375 12350,2378 12351,2382 12352,2385 12353,2388 12354,2392 12355,2395 12356,2399 12356,2402 12356,2406 12356,2407 Z M 12356,2476 L 12356,2476 Z M 12063,2337 L 12063,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id128">
- <rect class="BoundingBox" stroke="none" fill="none" x="12063" y="2537" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12356,2607 L 12356,2607 12356,2611 12356,2614 12355,2618 12354,2621 12354,2625 12353,2628 12351,2632 12350,2635 12348,2638 12347,2642 12345,2645 12343,2648 12341,2650 12338,2653 12336,2656 12333,2658 12330,2661 12328,2663 12325,2665 12321,2667 12318,2668 12315,2670 12312,2671 12308,2673 12305,2674 12301,2674 12298,2675 12294,2676 12291,2676 12287,2676 12133,2676 12133,2676 12129,2676 12126,2676 12122,2675 12119,2674 12115,2674 12112,2673 12108,2671 12105,2670 12102,2668 12098,2667 12095,2665 12092,2663 12090,2661 12087,2658 12084,2656 12082,2653 12079,2650 12077,2648 12075,2645 12073,2641 12072,2638 12070,2635 12069,2632 12067,2628 12066,2625 12066,2621 12065,2618 12064,2614 12064,2611 12064,2607 12063,2607 12064,2607 12064,2603 12064,2600 12065,2596 12065,2593 12066,2589 12067,2586 12068,2582 12070,2579 12071,2576 12073,2573 12075,2570 12077,2567 12079,2564 12081,2561 12084,2559 12086,2556 12089,2554 12092,2552 12095,2549 12098,2548 12101,2546 12104,2544 12108,2543 12111,2542 12114,2541 12118,2540 12121,2539 12125,2538 12128,2538 12132,2538 12287,2537 12287,2538 12291,2538 12294,2538 12298,2539 12301,2539 12305,2540 12308,2541 12312,2542 12315,2544 12318,2545 12321,2547 12324,2549 12327,2551 12330,2553 12333,2555 12335,2558 12338,2560 12340,2563 12342,2566 12345,2569 12346,2572 12348,2575 12350,2578 12351,2582 12352,2585 12353,2588 12354,2592 12355,2595 12356,2599 12356,2602 12356,2606 12356,2607 Z M 12356,2676 L 12356,2676 Z M 12063,2537 L 12063,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id129">
- <rect class="BoundingBox" stroke="none" fill="none" x="12063" y="2737" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12356,2807 L 12356,2807 12356,2811 12356,2814 12355,2818 12354,2821 12354,2825 12353,2828 12351,2832 12350,2835 12348,2838 12347,2842 12345,2845 12343,2848 12341,2850 12338,2853 12336,2856 12333,2858 12330,2861 12328,2863 12325,2865 12321,2867 12318,2868 12315,2870 12312,2871 12308,2873 12305,2874 12301,2874 12298,2875 12294,2876 12291,2876 12287,2876 12133,2876 12133,2876 12129,2876 12126,2876 12122,2875 12119,2874 12115,2874 12112,2873 12108,2871 12105,2870 12102,2868 12098,2867 12095,2865 12092,2863 12090,2861 12087,2858 12084,2856 12082,2853 12079,2850 12077,2848 12075,2845 12073,2841 12072,2838 12070,2835 12069,2832 12067,2828 12066,2825 12066,2821 12065,2818 12064,2814 12064,2811 12064,2807 12063,2807 12064,2807 12064,2803 12064,2800 12065,2796 12065,2793 12066,2789 12067,2786 12068,2782 12070,2779 12071,2776 12073,2773 12075,2770 12077,2767 12079,2764 12081,2761 12084,2759 12086,2756 12089,2754 12092,2752 12095,2749 12098,2748 12101,2746 12104,2744 12108,2743 12111,2742 12114,2741 12118,2740 12121,2739 12125,2738 12128,2738 12132,2738 12287,2737 12287,2738 12291,2738 12294,2738 12298,2739 12301,2739 12305,2740 12308,2741 12312,2742 12315,2744 12318,2745 12321,2747 12324,2749 12327,2751 12330,2753 12333,2755 12335,2758 12338,2760 12340,2763 12342,2766 12345,2769 12346,2772 12348,2775 12350,2778 12351,2782 12352,2785 12353,2788 12354,2792 12355,2795 12356,2799 12356,2802 12356,2806 12356,2807 Z M 12356,2876 L 12356,2876 Z M 12063,2737 L 12063,2737 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id130">
- <rect class="BoundingBox" stroke="none" fill="none" x="14006" y="2336" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14300,2407 L 14300,2407 14300,2411 14300,2414 14299,2418 14298,2421 14298,2425 14297,2428 14295,2432 14294,2435 14292,2438 14291,2442 14289,2445 14287,2448 14285,2450 14282,2453 14280,2456 14277,2458 14274,2461 14272,2463 14269,2465 14265,2467 14262,2468 14259,2470 14256,2471 14252,2473 14249,2474 14245,2474 14242,2475 14238,2476 14235,2476 14231,2476 14077,2476 14077,2476 14073,2476 14070,2476 14066,2475 14063,2474 14059,2474 14056,2473 14052,2471 14049,2470 14046,2468 14042,2467 14039,2465 14036,2463 14034,2461 14031,2458 14028,2456 14026,2453 14023,2450 14021,2448 14019,2445 14017,2441 14016,2438 14014,2435 14013,2432 14011,2428 14010,2425 14010,2421 14009,2418 14008,2414 14008,2411 14008,2407 14007,2407 14008,2407 14008,2403 14008,2400 14009,2396 14009,2393 14010,2389 14011,2386 14012,2382 14014,2379 14015,2376 14017,2373 14019,2370 14021,2367 14023,2364 14025,2361 14028,2359 14030,2356 14033,2354 14036,2352 14039,2349 14042,2348 14045,2346 14048,2344 14052,2343 14055,2342 14058,2341 14062,2340 14065,2339 14069,2338 14072,2338 14076,2338 14231,2337 14231,2338 14235,2338 14238,2338 14242,2339 14245,2339 14249,2340 14252,2341 14256,2342 14259,2344 14262,2345 14265,2347 14268,2349 14271,2351 14274,2353 14277,2355 14279,2358 14282,2360 14284,2363 14286,2366 14289,2369 14290,2372 14292,2375 14294,2378 14295,2382 14296,2385 14297,2388 14298,2392 14299,2395 14300,2399 14300,2402 14300,2406 14300,2407 Z M 14300,2476 L 14300,2476 Z M 14007,2337 L 14007,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id131">
- <rect class="BoundingBox" stroke="none" fill="none" x="14006" y="2537" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14300,2607 L 14300,2607 14300,2611 14300,2614 14299,2618 14298,2621 14298,2625 14297,2628 14295,2632 14294,2635 14292,2638 14291,2642 14289,2645 14287,2648 14285,2650 14282,2653 14280,2656 14277,2658 14274,2661 14272,2663 14269,2665 14265,2667 14262,2668 14259,2670 14256,2671 14252,2673 14249,2674 14245,2674 14242,2675 14238,2676 14235,2676 14231,2676 14077,2676 14077,2676 14073,2676 14070,2676 14066,2675 14063,2674 14059,2674 14056,2673 14052,2671 14049,2670 14046,2668 14042,2667 14039,2665 14036,2663 14034,2661 14031,2658 14028,2656 14026,2653 14023,2650 14021,2648 14019,2645 14017,2641 14016,2638 14014,2635 14013,2632 14011,2628 14010,2625 14010,2621 14009,2618 14008,2614 14008,2611 14008,2607 14007,2607 14008,2607 14008,2603 14008,2600 14009,2596 14009,2593 14010,2589 14011,2586 14012,2582 14014,2579 14015,2576 14017,2573 14019,2570 14021,2567 14023,2564 14025,2561 14028,2559 14030,2556 14033,2554 14036,2552 14039,2549 14042,2548 14045,2546 14048,2544 14052,2543 14055,2542 14058,2541 14062,2540 14065,2539 14069,2538 14072,2538 14076,2538 14231,2537 14231,2538 14235,2538 14238,2538 14242,2539 14245,2539 14249,2540 14252,2541 14256,2542 14259,2544 14262,2545 14265,2547 14268,2549 14271,2551 14274,2553 14277,2555 14279,2558 14282,2560 14284,2563 14286,2566 14289,2569 14290,2572 14292,2575 14294,2578 14295,2582 14296,2585 14297,2588 14298,2592 14299,2595 14300,2599 14300,2602 14300,2606 14300,2607 Z M 14300,2676 L 14300,2676 Z M 14007,2537 L 14007,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id132">
- <rect class="BoundingBox" stroke="none" fill="none" x="14006" y="2736" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14300,2806 L 14300,2806 14300,2810 14300,2813 14299,2817 14298,2820 14298,2824 14297,2827 14295,2831 14294,2834 14292,2837 14291,2841 14289,2844 14287,2847 14285,2849 14282,2852 14280,2855 14277,2857 14274,2860 14272,2862 14269,2864 14265,2866 14262,2867 14259,2869 14256,2870 14252,2872 14249,2873 14245,2873 14242,2874 14238,2875 14235,2875 14231,2875 14077,2875 14077,2875 14073,2875 14070,2875 14066,2874 14063,2873 14059,2873 14056,2872 14052,2870 14049,2869 14046,2867 14042,2866 14039,2864 14036,2862 14034,2860 14031,2857 14028,2855 14026,2852 14023,2849 14021,2847 14019,2844 14017,2840 14016,2837 14014,2834 14013,2831 14011,2827 14010,2824 14010,2820 14009,2817 14008,2813 14008,2810 14008,2806 14007,2806 14008,2806 14008,2802 14008,2799 14009,2795 14009,2792 14010,2788 14011,2785 14012,2781 14014,2778 14015,2775 14017,2772 14019,2769 14021,2766 14023,2763 14025,2760 14028,2758 14030,2755 14033,2753 14036,2751 14039,2748 14042,2747 14045,2745 14048,2743 14052,2742 14055,2741 14058,2740 14062,2739 14065,2738 14069,2737 14072,2737 14076,2737 14231,2736 14231,2737 14235,2737 14238,2737 14242,2738 14245,2738 14249,2739 14252,2740 14256,2741 14259,2743 14262,2744 14265,2746 14268,2748 14271,2750 14274,2752 14277,2754 14279,2757 14282,2759 14284,2762 14286,2765 14289,2768 14290,2771 14292,2774 14294,2777 14295,2781 14296,2784 14297,2787 14298,2791 14299,2794 14300,2798 14300,2801 14300,2805 14300,2806 Z M 14300,2875 L 14300,2875 Z M 14007,2736 L 14007,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id133">
- <rect class="BoundingBox" stroke="none" fill="none" x="13658" y="2337" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 13951,2407 L 13951,2407 13951,2411 13951,2414 13950,2418 13949,2421 13949,2425 13948,2428 13946,2432 13945,2435 13943,2438 13942,2442 13940,2445 13938,2448 13936,2450 13933,2453 13931,2456 13928,2458 13925,2461 13923,2463 13920,2465 13916,2467 13913,2468 13910,2470 13907,2471 13903,2473 13900,2474 13896,2474 13893,2475 13889,2476 13886,2476 13882,2476 13728,2476 13728,2476 13724,2476 13721,2476 13717,2475 13714,2474 13710,2474 13707,2473 13703,2471 13700,2470 13697,2468 13693,2467 13690,2465 13687,2463 13685,2461 13682,2458 13679,2456 13677,2453 13674,2450 13672,2448 13670,2445 13668,2441 13667,2438 13665,2435 13664,2432 13662,2428 13661,2425 13661,2421 13660,2418 13659,2414 13659,2411 13659,2407 13658,2407 13659,2407 13659,2403 13659,2400 13660,2396 13660,2393 13661,2389 13662,2386 13663,2382 13665,2379 13666,2376 13668,2373 13670,2370 13672,2367 13674,2364 13676,2361 13679,2359 13681,2356 13684,2354 13687,2352 13690,2349 13693,2348 13696,2346 13699,2344 13703,2343 13706,2342 13709,2341 13713,2340 13716,2339 13720,2338 13723,2338 13727,2338 13882,2337 13882,2338 13886,2338 13889,2338 13893,2339 13896,2339 13900,2340 13903,2341 13907,2342 13910,2344 13913,2345 13916,2347 13919,2349 13922,2351 13925,2353 13928,2355 13930,2358 13933,2360 13935,2363 13937,2366 13940,2369 13941,2372 13943,2375 13945,2378 13946,2382 13947,2385 13948,2388 13949,2392 13950,2395 13951,2399 13951,2402 13951,2406 13951,2407 Z M 13951,2476 L 13951,2476 Z M 13658,2337 L 13658,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id134">
- <rect class="BoundingBox" stroke="none" fill="none" x="13658" y="2537" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 13951,2607 L 13951,2607 13951,2611 13951,2614 13950,2618 13949,2621 13949,2625 13948,2628 13946,2632 13945,2635 13943,2638 13942,2642 13940,2645 13938,2648 13936,2650 13933,2653 13931,2656 13928,2658 13925,2661 13923,2663 13920,2665 13916,2667 13913,2668 13910,2670 13907,2671 13903,2673 13900,2674 13896,2674 13893,2675 13889,2676 13886,2676 13882,2676 13728,2676 13728,2676 13724,2676 13721,2676 13717,2675 13714,2674 13710,2674 13707,2673 13703,2671 13700,2670 13697,2668 13693,2667 13690,2665 13687,2663 13685,2661 13682,2658 13679,2656 13677,2653 13674,2650 13672,2648 13670,2645 13668,2641 13667,2638 13665,2635 13664,2632 13662,2628 13661,2625 13661,2621 13660,2618 13659,2614 13659,2611 13659,2607 13658,2607 13659,2607 13659,2603 13659,2600 13660,2596 13660,2593 13661,2589 13662,2586 13663,2582 13665,2579 13666,2576 13668,2573 13670,2570 13672,2567 13674,2564 13676,2561 13679,2559 13681,2556 13684,2554 13687,2552 13690,2549 13693,2548 13696,2546 13699,2544 13703,2543 13706,2542 13709,2541 13713,2540 13716,2539 13720,2538 13723,2538 13727,2538 13882,2537 13882,2538 13886,2538 13889,2538 13893,2539 13896,2539 13900,2540 13903,2541 13907,2542 13910,2544 13913,2545 13916,2547 13919,2549 13922,2551 13925,2553 13928,2555 13930,2558 13933,2560 13935,2563 13937,2566 13940,2569 13941,2572 13943,2575 13945,2578 13946,2582 13947,2585 13948,2588 13949,2592 13950,2595 13951,2599 13951,2602 13951,2606 13951,2607 Z M 13951,2676 L 13951,2676 Z M 13658,2537 L 13658,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id135">
- <rect class="BoundingBox" stroke="none" fill="none" x="13658" y="2736" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 13951,2806 L 13951,2806 13951,2810 13951,2813 13950,2817 13949,2820 13949,2824 13948,2827 13946,2831 13945,2834 13943,2837 13942,2841 13940,2844 13938,2847 13936,2849 13933,2852 13931,2855 13928,2857 13925,2860 13923,2862 13920,2864 13916,2866 13913,2867 13910,2869 13907,2870 13903,2872 13900,2873 13896,2873 13893,2874 13889,2875 13886,2875 13882,2875 13728,2875 13728,2875 13724,2875 13721,2875 13717,2874 13714,2873 13710,2873 13707,2872 13703,2870 13700,2869 13697,2867 13693,2866 13690,2864 13687,2862 13685,2860 13682,2857 13679,2855 13677,2852 13674,2849 13672,2847 13670,2844 13668,2840 13667,2837 13665,2834 13664,2831 13662,2827 13661,2824 13661,2820 13660,2817 13659,2813 13659,2810 13659,2806 13658,2806 13659,2806 13659,2802 13659,2799 13660,2795 13660,2792 13661,2788 13662,2785 13663,2781 13665,2778 13666,2775 13668,2772 13670,2769 13672,2766 13674,2763 13676,2760 13679,2758 13681,2755 13684,2753 13687,2751 13690,2748 13693,2747 13696,2745 13699,2743 13703,2742 13706,2741 13709,2740 13713,2739 13716,2738 13720,2737 13723,2737 13727,2737 13882,2736 13882,2737 13886,2737 13889,2737 13893,2738 13896,2738 13900,2739 13903,2740 13907,2741 13910,2743 13913,2744 13916,2746 13919,2748 13922,2750 13925,2752 13928,2754 13930,2757 13933,2759 13935,2762 13937,2765 13940,2768 13941,2771 13943,2774 13945,2777 13946,2781 13947,2784 13948,2787 13949,2791 13950,2794 13951,2798 13951,2801 13951,2805 13951,2806 Z M 13951,2875 L 13951,2875 Z M 13658,2736 L 13658,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id136">
- <rect class="BoundingBox" stroke="none" fill="none" x="14337" y="2340" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14630,2410 L 14630,2410 14630,2414 14630,2417 14629,2421 14628,2424 14628,2428 14627,2431 14625,2435 14624,2438 14622,2441 14621,2445 14619,2448 14617,2451 14615,2453 14612,2456 14610,2459 14607,2461 14604,2464 14602,2466 14599,2468 14595,2470 14592,2471 14589,2473 14586,2474 14582,2476 14579,2477 14575,2477 14572,2478 14568,2479 14565,2479 14561,2479 14407,2479 14407,2479 14403,2479 14400,2479 14396,2478 14393,2477 14389,2477 14386,2476 14382,2474 14379,2473 14376,2471 14372,2470 14369,2468 14366,2466 14364,2464 14361,2461 14358,2459 14356,2456 14353,2453 14351,2451 14349,2448 14347,2444 14346,2441 14344,2438 14343,2435 14341,2431 14340,2428 14340,2424 14339,2421 14338,2417 14338,2414 14338,2410 14337,2410 14338,2410 14338,2406 14338,2403 14339,2399 14339,2396 14340,2392 14341,2389 14342,2385 14344,2382 14345,2379 14347,2376 14349,2373 14351,2370 14353,2367 14355,2364 14358,2362 14360,2359 14363,2357 14366,2355 14369,2352 14372,2351 14375,2349 14378,2347 14382,2346 14385,2345 14388,2344 14392,2343 14395,2342 14399,2341 14402,2341 14406,2341 14561,2340 14561,2341 14565,2341 14568,2341 14572,2342 14575,2342 14579,2343 14582,2344 14586,2345 14589,2347 14592,2348 14595,2350 14598,2352 14601,2354 14604,2356 14607,2358 14609,2361 14612,2363 14614,2366 14616,2369 14619,2372 14620,2375 14622,2378 14624,2381 14625,2385 14626,2388 14627,2391 14628,2395 14629,2398 14630,2402 14630,2405 14630,2409 14630,2410 Z M 14630,2479 L 14630,2479 Z M 14337,2340 L 14337,2340 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id137">
- <rect class="BoundingBox" stroke="none" fill="none" x="14337" y="2539" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14630,2609 L 14630,2609 14630,2613 14630,2616 14629,2620 14628,2623 14628,2627 14627,2630 14625,2634 14624,2637 14622,2640 14621,2644 14619,2647 14617,2650 14615,2652 14612,2655 14610,2658 14607,2660 14604,2663 14602,2665 14599,2667 14595,2669 14592,2670 14589,2672 14586,2673 14582,2675 14579,2676 14575,2676 14572,2677 14568,2678 14565,2678 14561,2678 14407,2678 14407,2678 14403,2678 14400,2678 14396,2677 14393,2676 14389,2676 14386,2675 14382,2673 14379,2672 14376,2670 14372,2669 14369,2667 14366,2665 14364,2663 14361,2660 14358,2658 14356,2655 14353,2652 14351,2650 14349,2647 14347,2643 14346,2640 14344,2637 14343,2634 14341,2630 14340,2627 14340,2623 14339,2620 14338,2616 14338,2613 14338,2609 14337,2609 14338,2609 14338,2605 14338,2602 14339,2598 14339,2595 14340,2591 14341,2588 14342,2584 14344,2581 14345,2578 14347,2575 14349,2572 14351,2569 14353,2566 14355,2563 14358,2561 14360,2558 14363,2556 14366,2554 14369,2551 14372,2550 14375,2548 14378,2546 14382,2545 14385,2544 14388,2543 14392,2542 14395,2541 14399,2540 14402,2540 14406,2540 14561,2539 14561,2540 14565,2540 14568,2540 14572,2541 14575,2541 14579,2542 14582,2543 14586,2544 14589,2546 14592,2547 14595,2549 14598,2551 14601,2553 14604,2555 14607,2557 14609,2560 14612,2562 14614,2565 14616,2568 14619,2571 14620,2574 14622,2577 14624,2580 14625,2584 14626,2587 14627,2590 14628,2594 14629,2597 14630,2601 14630,2604 14630,2608 14630,2609 Z M 14630,2678 L 14630,2678 Z M 14337,2539 L 14337,2539 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id138">
- <rect class="BoundingBox" stroke="none" fill="none" x="14337" y="2739" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14630,2809 L 14630,2809 14630,2813 14630,2816 14629,2820 14628,2823 14628,2827 14627,2830 14625,2834 14624,2837 14622,2840 14621,2844 14619,2847 14617,2850 14615,2852 14612,2855 14610,2858 14607,2860 14604,2863 14602,2865 14599,2867 14595,2869 14592,2870 14589,2872 14586,2873 14582,2875 14579,2876 14575,2876 14572,2877 14568,2878 14565,2878 14561,2878 14407,2878 14407,2878 14403,2878 14400,2878 14396,2877 14393,2876 14389,2876 14386,2875 14382,2873 14379,2872 14376,2870 14372,2869 14369,2867 14366,2865 14364,2863 14361,2860 14358,2858 14356,2855 14353,2852 14351,2850 14349,2847 14347,2843 14346,2840 14344,2837 14343,2834 14341,2830 14340,2827 14340,2823 14339,2820 14338,2816 14338,2813 14338,2809 14337,2809 14338,2809 14338,2805 14338,2802 14339,2798 14339,2795 14340,2791 14341,2788 14342,2784 14344,2781 14345,2778 14347,2775 14349,2772 14351,2769 14353,2766 14355,2763 14358,2761 14360,2758 14363,2756 14366,2754 14369,2751 14372,2750 14375,2748 14378,2746 14382,2745 14385,2744 14388,2743 14392,2742 14395,2741 14399,2740 14402,2740 14406,2740 14561,2739 14561,2740 14565,2740 14568,2740 14572,2741 14575,2741 14579,2742 14582,2743 14586,2744 14589,2746 14592,2747 14595,2749 14598,2751 14601,2753 14604,2755 14607,2757 14609,2760 14612,2762 14614,2765 14616,2768 14619,2771 14620,2774 14622,2777 14624,2780 14625,2784 14626,2787 14627,2790 14628,2794 14629,2797 14630,2801 14630,2804 14630,2808 14630,2809 Z M 14630,2878 L 14630,2878 Z M 14337,2739 L 14337,2739 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id139">
- <rect class="BoundingBox" stroke="none" fill="none" x="9082" y="4140" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9332" y="4527"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9332" y="4857"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id140">
- <rect class="BoundingBox" stroke="none" fill="none" x="3377" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id141">
- <rect class="BoundingBox" stroke="none" fill="none" x="5933" y="8492" width="390" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id142">
- <rect class="BoundingBox" stroke="none" fill="none" x="6376" y="8492" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id143">
- <rect class="BoundingBox" stroke="none" fill="none" x="3812" y="5979" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id144">
- <rect class="BoundingBox" stroke="none" fill="none" x="6706" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id145">
- <rect class="BoundingBox" stroke="none" fill="none" x="10770" y="8492" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id146">
- <rect class="BoundingBox" stroke="none" fill="none" x="13896" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id147">
- <rect class="BoundingBox" stroke="none" fill="none" x="11105" y="8492" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id148">
- <rect class="BoundingBox" stroke="none" fill="none" x="7114" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id149">
- <rect class="BoundingBox" stroke="none" fill="none" x="13461" y="5979" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id150">
- <rect class="BoundingBox" stroke="none" fill="none" x="6703" y="6159" width="743" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7392,6212 L 7392,6212 7392,6219 7392,6225 7391,6232 7391,6238 7390,6245 7390,6251 7389,6257 7388,6263 7386,6269 7385,6275 7384,6281 7382,6286 7381,6291 7379,6296 7377,6301 7375,6306 7373,6310 7371,6314 7369,6318 7366,6321 7364,6324 7362,6327 7359,6330 7357,6332 7354,6334 7352,6335 7349,6336 7346,6337 7344,6338 7341,6338 6808,6339 6808,6339 6805,6339 6803,6338 6800,6337 6797,6336 6795,6335 6792,6333 6790,6331 6787,6328 6785,6325 6783,6322 6780,6319 6778,6315 6776,6311 6774,6307 6772,6302 6770,6297 6769,6292 6767,6287 6765,6282 6764,6276 6763,6270 6762,6264 6760,6258 6760,6252 6759,6246 6758,6239 6758,6233 6757,6226 6757,6220 6757,6213"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7392,6212 L 7392,6212 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6756,6339 L 6756,6339 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id151">
- <rect class="BoundingBox" stroke="none" fill="none" x="2493" y="6288" width="8032" height="655"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10471,6889 L 2605,6889 2605,6341 2546,6341"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id152">
- <rect class="BoundingBox" stroke="none" fill="none" x="2003" y="6160" width="743" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2692,6213 L 2692,6213 2692,6220 2692,6226 2691,6233 2691,6239 2690,6246 2690,6252 2689,6258 2688,6264 2686,6270 2685,6276 2684,6282 2682,6287 2681,6292 2679,6297 2677,6302 2675,6307 2673,6311 2671,6315 2669,6319 2666,6322 2664,6325 2662,6328 2659,6331 2657,6333 2654,6335 2652,6336 2649,6337 2646,6338 2644,6339 2641,6339 2108,6340 2108,6340 2105,6340 2103,6339 2100,6338 2097,6337 2095,6336 2092,6334 2090,6332 2087,6329 2085,6326 2083,6323 2080,6320 2078,6316 2076,6312 2074,6308 2072,6303 2070,6298 2069,6293 2067,6288 2065,6283 2064,6277 2063,6271 2062,6265 2060,6259 2060,6253 2059,6247 2058,6240 2058,6234 2057,6227 2057,6221 2057,6214"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2692,6213 L 2692,6213 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2056,6340 L 2056,6340 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id153">
- <rect class="BoundingBox" stroke="none" fill="none" x="10418" y="6299" width="119" height="644"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10471,6889 L 10479,6889 10479,6352 10483,6352"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id154">
- <rect class="BoundingBox" stroke="none" fill="none" x="10358" y="6140" width="743" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 11047,6193 L 11047,6193 11047,6200 11047,6206 11046,6213 11046,6219 11045,6226 11045,6232 11044,6238 11043,6244 11041,6250 11040,6256 11039,6262 11037,6267 11036,6272 11034,6277 11032,6282 11030,6287 11028,6291 11026,6295 11024,6299 11021,6302 11019,6305 11017,6308 11014,6311 11012,6313 11009,6315 11007,6316 11004,6317 11001,6318 10999,6319 10996,6319 10463,6320 10463,6320 10460,6320 10458,6319 10455,6318 10452,6317 10450,6316 10447,6314 10445,6312 10442,6309 10440,6306 10438,6303 10435,6300 10433,6296 10431,6292 10429,6288 10427,6283 10425,6278 10424,6273 10422,6268 10420,6263 10419,6257 10418,6251 10417,6245 10415,6239 10415,6233 10414,6227 10413,6220 10413,6214 10412,6207 10412,6201 10412,6194"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 11047,6193 L 11047,6193 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 10411,6320 L 10411,6320 Z"/>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/docs/report/introduction/testbed-3n-hsw.svg b/docs/report/introduction/testbed-3n-hsw.svg
deleted file mode 100644
index 21b093b4f1..0000000000
--- a/docs/report/introduction/testbed-3n-hsw.svg
+++ /dev/null
@@ -1,2396 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="161.38mm" height="129.43mm" viewBox="741 555 16138 12943" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="741" y="555" width="16138" height="12943"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="757" y="567" width="16106" height="12918"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Arial embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1866" descent="432"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1020" d="M 15,0 L 403,552 44,1062 269,1062 432,813 C 463,766 487,726 506,694 535,738 562,777 587,811 L 766,1062 981,1062 614,562 1009,0 788,0 570,330 512,419 233,0 Z"/>
- <glyph unicode="Q" horiz-adv-x="1436" d="M 1269,157 C 1359,95 1442,50 1518,21 L 1461,-114 C 1356,-76 1251,-16 1146,66 1037,5 917,-25 786,-25 653,-25 533,7 425,71 317,135 234,225 176,341 117,457 88,588 88,733 88,878 117,1009 176,1128 235,1247 318,1337 427,1399 535,1461 656,1492 790,1492 925,1492 1047,1460 1156,1396 1265,1331 1348,1241 1405,1126 1462,1010 1490,879 1490,734 1490,613 1472,505 1435,409 1398,312 1343,228 1269,157 Z M 842,405 C 954,374 1046,327 1119,265 1233,369 1290,525 1290,734 1290,853 1270,956 1230,1045 1189,1134 1130,1203 1053,1252 975,1301 888,1325 791,1325 646,1325 526,1276 431,1177 336,1078 288,930 288,733 288,542 335,396 430,294 524,192 644,141 791,141 860,141 926,154 987,180 926,219 862,247 795,264 Z"/>
- <glyph unicode="P" horiz-adv-x="1124" d="M 158,0 L 158,1466 711,1466 C 808,1466 883,1461 934,1452 1006,1440 1066,1417 1115,1384 1164,1350 1203,1303 1233,1242 1262,1181 1277,1115 1277,1042 1277,917 1237,812 1158,726 1079,639 935,596 728,596 L 352,596 352,0 Z M 352,769 L 731,769 C 856,769 945,792 998,839 1051,886 1077,951 1077,1036 1077,1097 1062,1150 1031,1194 1000,1237 959,1266 908,1280 875,1289 815,1293 727,1293 L 352,1293 Z"/>
- <glyph unicode="I" horiz-adv-x="208" d="M 191,0 L 191,1466 385,1466 385,0 Z"/>
- <glyph unicode="8" horiz-adv-x="986" d="M 362,795 C 287,822 232,861 196,912 160,963 142,1023 142,1094 142,1201 180,1290 257,1363 334,1436 436,1472 563,1472 691,1472 794,1435 872,1361 950,1286 989,1196 989,1089 989,1021 971,962 936,912 900,861 846,822 773,795 863,766 932,718 979,653 1026,588 1049,510 1049,419 1049,294 1005,188 916,103 827,18 711,-25 566,-25 421,-25 305,18 216,104 127,189 83,296 83,424 83,519 107,599 156,664 204,728 273,772 362,795 Z M 326,1100 C 326,1031 348,974 393,930 438,886 496,864 567,864 636,864 693,886 738,930 782,973 804,1027 804,1090 804,1156 781,1212 736,1257 690,1302 633,1324 565,1324 496,1324 439,1302 394,1258 349,1214 326,1161 326,1100 Z M 268,423 C 268,372 280,322 305,274 329,226 365,189 413,163 461,136 513,123 568,123 654,123 725,151 781,206 837,261 865,332 865,417 865,504 836,575 779,632 721,689 649,717 562,717 477,717 407,689 352,633 296,577 268,507 268,423 Z"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1953" descent="553"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="y" horiz-adv-x="883" d="M 563,0 L 443,-331 C 439,-342 429,-350 413,-356 396,-361 371,-364 338,-364 321,-364 307,-363 296,-362 285,-360 277,-357 272,-353 266,-349 263,-344 262,-337 261,-330 263,-322 267,-313 L 391,0 C 385,3 379,7 374,13 369,19 365,25 363,32 L 42,892 C 37,906 34,917 34,925 34,933 37,939 42,944 47,949 56,952 68,954 80,955 96,956 116,956 136,956 152,956 163,955 174,954 183,952 190,949 197,946 202,943 205,938 208,933 211,926 214,917 L 471,195 474,195 722,921 C 726,934 731,942 737,946 742,949 751,952 762,954 773,955 790,956 811,956 830,956 845,955 857,954 869,952 878,949 884,944 889,939 892,933 892,925 892,917 890,907 886,895 Z"/>
- <glyph unicode="x" horiz-adv-x="813" d="M 835,44 C 840,35 843,27 843,21 843,14 840,9 834,5 827,1 818,-2 805,-4 792,-5 775,-6 754,-6 734,-6 718,-6 707,-5 695,-4 686,-2 679,1 672,3 666,6 663,10 659,13 656,17 653,22 L 437,379 222,22 C 219,17 216,13 213,10 209,6 204,3 197,1 190,-2 180,-4 169,-5 158,-6 143,-6 124,-6 105,-6 89,-5 77,-4 64,-2 55,1 50,5 44,9 41,14 42,21 42,27 45,35 51,44 L 331,483 66,906 C 61,915 58,923 58,930 57,936 60,941 67,946 73,950 83,953 96,954 109,955 126,956 147,956 166,956 182,956 194,955 205,954 214,952 221,950 228,948 233,945 236,942 239,939 242,935 245,930 L 450,595 658,930 C 661,934 664,938 667,941 670,944 675,947 681,950 686,952 694,954 705,955 715,956 729,956 747,956 766,956 782,955 795,954 807,953 816,950 822,947 828,943 831,938 830,931 829,924 826,916 820,906 L 557,488 Z"/>
- <glyph unicode="w" horiz-adv-x="1366" d="M 1412,927 C 1412,922 1411,917 1410,910 1409,903 1406,895 1403,885 L 1138,30 C 1136,23 1133,17 1129,12 1124,7 1118,4 1111,1 1103,-2 1092,-4 1079,-5 1066,-6 1049,-6 1029,-6 1008,-6 991,-5 977,-4 963,-3 952,-1 944,2 935,5 929,8 925,13 921,18 918,23 916,30 L 727,683 725,692 723,683 548,30 C 546,23 543,17 539,12 534,7 528,4 519,1 510,-2 499,-4 486,-5 472,-6 455,-6 435,-6 414,-6 398,-5 385,-4 372,-3 361,-1 353,2 344,5 338,8 334,13 330,18 327,23 325,30 L 62,885 C 59,895 56,903 55,910 54,917 53,922 53,927 53,933 54,938 57,942 60,945 64,948 71,951 77,953 85,954 96,955 107,956 120,956 135,956 154,956 169,956 180,955 191,954 200,952 206,950 212,947 216,944 219,940 222,935 224,930 226,924 L 443,182 445,173 447,182 646,924 C 647,930 650,935 653,940 656,944 660,947 666,950 672,952 680,954 691,955 701,956 714,956 731,956 747,956 760,956 771,955 781,954 789,952 795,950 801,947 805,944 808,940 811,936 813,931 814,926 L 1029,182 1031,173 1032,182 1246,924 C 1247,930 1250,935 1253,940 1256,944 1260,947 1267,950 1273,952 1282,954 1293,955 1304,956 1318,956 1335,956 1351,956 1364,956 1374,955 1383,954 1391,953 1397,950 1402,947 1406,944 1409,941 1411,938 1412,933 1412,927 Z"/>
- <glyph unicode="v" horiz-adv-x="883" d="M 891,927 C 891,924 891,922 891,919 890,916 890,912 889,909 888,906 888,902 887,898 886,894 884,890 883,885 L 576,30 C 573,23 570,17 566,12 561,7 555,4 546,1 537,-2 526,-4 513,-5 500,-6 483,-6 463,-6 443,-6 426,-5 413,-4 400,-3 389,-1 381,2 372,5 366,8 361,13 356,18 353,23 350,30 L 44,885 C 41,893 39,900 38,906 36,912 35,917 35,920 34,923 34,925 34,927 34,932 35,937 38,941 41,945 45,948 52,951 58,953 66,954 77,955 87,956 100,956 115,956 134,956 150,956 162,955 173,954 182,952 189,949 195,946 200,943 203,939 206,935 208,930 211,924 L 465,182 469,170 472,182 723,924 C 724,930 727,935 730,939 733,943 738,946 745,949 751,952 760,954 771,955 782,956 796,956 814,956 829,956 842,956 852,955 862,954 870,953 876,950 881,947 885,944 888,941 890,937 891,932 891,927 Z"/>
- <glyph unicode="t" horiz-adv-x="606" d="M 621,91 C 621,72 620,56 617,45 614,34 610,25 605,20 600,15 592,10 581,5 570,0 558,-4 545,-7 531,-10 516,-12 501,-14 486,-16 470,-17 455,-17 408,-17 368,-11 335,2 302,14 274,33 253,58 232,83 216,114 207,153 197,191 192,236 192,288 L 192,814 66,814 C 56,814 48,819 42,830 36,841 33,858 33,882 33,895 34,905 36,914 37,923 39,930 42,936 45,941 48,945 53,948 57,950 62,951 67,951 L 192,951 192,1165 C 192,1170 193,1174 196,1178 198,1182 202,1186 209,1189 215,1192 223,1194 234,1195 245,1196 258,1197 274,1197 291,1197 304,1196 315,1195 326,1194 334,1192 340,1189 346,1186 350,1182 353,1178 356,1174 357,1170 357,1165 L 357,951 588,951 C 593,951 598,950 602,948 606,945 610,941 613,936 616,930 618,923 619,914 620,905 621,895 621,882 621,858 618,841 612,830 606,819 598,814 588,814 L 357,814 357,312 C 357,250 366,203 385,172 403,140 436,124 483,124 498,124 512,126 524,129 536,132 547,135 556,138 565,141 573,145 580,148 587,151 593,152 598,152 601,152 605,151 608,150 611,148 613,145 615,140 616,135 618,129 619,121 620,113 621,103 621,91 Z"/>
- <glyph unicode="s" horiz-adv-x="658" d="M 718,270 C 718,224 710,183 693,147 676,111 651,81 620,56 589,31 551,13 508,0 465,-13 417,-19 365,-19 333,-19 303,-17 274,-12 245,-7 219,0 196,8 173,15 153,23 137,32 121,40 109,47 102,54 95,61 89,70 86,82 83,94 81,110 81,131 81,144 82,154 83,163 84,172 86,179 88,184 90,189 93,193 97,196 100,198 104,199 109,199 116,199 127,195 142,186 156,177 174,167 195,156 216,145 240,136 269,127 298,118 331,113 368,113 396,113 421,116 444,122 467,128 486,137 503,149 520,160 533,175 542,193 551,211 555,232 555,257 555,282 549,304 536,321 523,338 505,354 484,367 463,380 439,392 412,403 385,413 358,424 330,435 301,446 274,459 247,474 220,488 195,505 174,526 153,547 136,571 123,600 110,629 103,663 103,703 103,738 110,772 124,805 137,837 158,865 185,890 212,914 247,933 288,948 329,963 376,970 431,970 455,970 479,968 503,964 527,960 549,955 568,949 587,943 604,937 618,930 631,923 642,916 649,911 656,906 660,901 663,897 665,893 667,889 668,884 669,879 670,872 671,865 672,858 672,849 672,838 672,827 672,817 671,809 670,800 668,793 666,788 663,783 660,779 657,777 654,774 650,773 646,773 640,773 631,777 620,784 609,791 594,799 576,808 558,816 537,824 513,831 488,838 460,842 429,842 401,842 376,839 355,833 334,826 316,817 303,806 289,794 279,780 272,764 265,748 261,731 261,712 261,686 268,664 281,647 294,629 312,613 333,600 354,587 379,575 406,564 433,553 461,542 490,531 518,520 546,507 574,493 601,479 626,462 647,442 668,422 686,398 699,370 712,342 718,309 718,270 Z"/>
- <glyph unicode="r" horiz-adv-x="554" d="M 679,866 C 679,851 679,839 678,829 677,819 676,811 674,806 672,800 670,796 667,793 664,790 659,788 654,788 649,788 642,790 635,793 627,796 618,799 609,802 599,805 588,807 576,810 564,813 551,814 537,814 520,814 504,811 488,804 472,797 455,786 438,771 420,756 401,735 382,710 363,685 341,654 318,617 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,794 C 327,830 350,859 372,882 393,905 414,923 433,936 452,949 472,958 491,963 510,968 529,970 548,970 557,970 567,970 578,969 589,968 600,966 612,963 624,960 635,957 645,954 654,951 661,947 665,944 669,941 672,938 673,935 674,932 676,928 677,923 678,918 678,912 679,903 679,894 679,881 679,866 Z"/>
- <glyph unicode="o" horiz-adv-x="917" d="M 990,485 C 990,412 980,344 961,283 942,221 913,168 875,123 836,78 788,44 731,19 673,-7 606,-19 530,-19 456,-19 392,-8 337,14 282,36 236,68 199,110 162,152 135,203 117,263 99,323 90,391 90,467 90,540 100,608 119,670 138,731 166,784 205,829 243,874 291,908 348,933 405,958 472,970 549,970 623,970 688,959 743,937 798,915 843,883 880,841 917,799 944,748 963,688 981,628 990,560 990,485 Z M 816,474 C 816,523 812,569 803,612 794,655 779,693 758,726 737,759 709,785 674,804 639,823 595,832 542,832 493,832 452,823 417,806 382,789 353,764 330,733 307,701 291,663 280,620 269,577 263,529 263,478 263,429 268,382 277,339 286,296 301,258 322,226 343,193 371,168 406,149 441,130 485,120 538,120 586,120 628,129 663,146 698,163 727,188 750,219 773,250 789,288 800,331 811,374 816,422 816,474 Z"/>
- <glyph unicode="n" horiz-adv-x="796" d="M 928,25 C 928,20 927,15 924,12 921,8 917,5 911,2 905,-1 897,-3 886,-4 875,-5 862,-6 846,-6 829,-6 816,-5 805,-4 794,-3 786,-1 780,2 774,5 770,8 767,12 764,15 763,20 763,25 L 763,552 C 763,603 759,645 751,676 743,707 731,734 716,757 701,780 681,797 657,809 632,821 604,827 572,827 531,827 489,812 448,783 407,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 403,904 454,931 504,957 555,970 606,970 666,970 717,960 758,940 799,919 832,892 857,858 882,824 901,784 912,739 923,693 928,638 928,574 Z"/>
- <glyph unicode="m" horiz-adv-x="1366" d="M 1488,25 C 1488,20 1487,15 1484,12 1481,8 1477,5 1471,2 1465,-1 1457,-3 1446,-4 1435,-5 1422,-6 1406,-6 1389,-6 1376,-5 1365,-4 1354,-3 1346,-1 1340,2 1333,5 1329,8 1326,12 1323,15 1322,20 1322,25 L 1322,572 C 1322,610 1319,645 1312,676 1305,707 1295,734 1280,757 1265,780 1247,797 1224,809 1201,821 1175,827 1144,827 1106,827 1068,812 1030,783 991,754 949,711 903,654 L 903,25 C 903,20 902,15 899,12 896,8 892,5 886,2 879,-1 871,-3 860,-4 849,-5 836,-6 820,-6 805,-6 792,-5 781,-4 770,-3 761,-1 755,2 748,5 744,8 742,12 739,15 738,20 738,25 L 738,572 C 738,610 734,645 727,676 720,707 709,734 694,757 679,780 661,797 639,809 616,821 590,827 559,827 521,827 483,812 444,783 405,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 402,904 450,931 497,957 545,970 594,970 631,970 665,966 695,957 724,948 750,936 773,921 796,905 815,886 831,865 847,843 860,819 871,792 901,825 930,852 957,875 984,898 1010,916 1035,930 1060,944 1084,954 1108,961 1131,967 1155,970 1179,970 1237,970 1286,960 1325,940 1364,919 1396,892 1421,858 1445,824 1462,784 1473,739 1483,693 1488,645 1488,594 Z"/>
- <glyph unicode="l" horiz-adv-x="191" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 Z"/>
- <glyph unicode="k" horiz-adv-x="762" d="M 892,26 C 892,21 891,16 888,12 885,8 881,5 875,2 868,-1 859,-3 848,-4 837,-5 822,-6 805,-6 787,-6 772,-6 761,-5 749,-4 739,-2 731,1 723,3 717,6 712,11 707,15 702,20 698,26 L 318,524 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 L 318,547 658,921 C 663,928 669,933 675,938 681,942 688,946 697,949 705,952 715,954 726,955 737,956 751,956 767,956 784,956 798,956 809,955 820,954 830,952 837,950 844,947 849,944 852,941 855,937 856,932 856,926 856,918 854,910 850,902 845,894 838,885 828,874 L 502,548 868,73 C 877,62 883,53 887,46 890,39 892,32 892,26 Z"/>
- <glyph unicode="i" horiz-adv-x="226" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,934 157,938 159,942 163,945 170,948 176,951 184,953 195,954 206,955 219,956 235,956 252,956 265,955 276,954 287,953 295,951 301,948 307,945 311,942 314,938 317,934 318,930 318,925 Z M 337,1229 C 337,1190 330,1164 315,1150 300,1136 273,1129 234,1129 195,1129 169,1136 155,1150 140,1163 133,1189 133,1227 133,1266 140,1292 155,1306 170,1320 197,1327 236,1327 275,1327 301,1320 316,1307 330,1293 337,1267 337,1229 Z"/>
- <glyph unicode="h" horiz-adv-x="796" d="M 928,25 C 928,20 927,15 924,12 921,8 917,5 911,2 905,-1 897,-3 886,-4 875,-5 862,-6 846,-6 829,-6 816,-5 805,-4 794,-3 786,-1 780,2 774,5 770,8 767,12 764,15 763,20 763,25 L 763,552 C 763,603 759,645 751,676 743,707 731,734 716,757 701,780 681,797 657,809 632,821 604,827 572,827 531,827 489,812 448,783 407,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 L 318,822 C 365,872 413,909 461,934 509,958 557,970 606,970 666,970 717,960 758,940 799,919 832,892 857,858 882,824 901,784 912,739 923,693 928,638 928,573 Z"/>
- <glyph unicode="f" horiz-adv-x="623" d="M 646,1295 C 646,1282 645,1272 644,1265 643,1257 641,1251 640,1246 638,1241 636,1238 633,1237 630,1235 627,1234 623,1234 618,1234 613,1236 606,1239 599,1242 590,1245 580,1249 570,1252 558,1256 545,1259 531,1262 515,1263 497,1263 472,1263 451,1259 434,1251 417,1243 403,1231 392,1214 381,1197 374,1175 369,1148 364,1121 362,1088 362,1049 L 362,951 563,951 C 568,951 573,950 577,948 580,945 584,941 587,936 590,930 592,923 594,914 595,905 596,895 596,882 596,858 593,841 587,830 581,819 573,814 563,814 L 362,814 362,25 C 362,20 361,15 358,12 355,8 351,5 345,2 338,-1 330,-3 319,-4 308,-5 295,-6 279,-6 263,-6 250,-5 239,-4 228,-3 220,-1 214,2 207,5 203,8 200,12 197,15 196,20 196,25 L 196,814 69,814 C 58,814 50,819 45,830 40,841 37,858 37,882 37,895 38,905 39,914 40,923 42,930 45,936 48,941 51,945 55,948 59,950 64,951 69,951 L 196,951 196,1044 C 196,1107 202,1161 214,1206 225,1251 243,1287 267,1316 291,1345 321,1366 358,1380 394,1393 437,1400 486,1400 509,1400 532,1398 554,1394 576,1389 593,1385 605,1380 617,1375 625,1370 629,1366 633,1362 636,1357 639,1351 642,1344 644,1337 645,1328 646,1319 646,1308 646,1295 Z"/>
- <glyph unicode="e" horiz-adv-x="848" d="M 921,514 C 921,488 915,470 902,459 889,448 874,442 857,442 L 267,442 C 267,392 272,347 282,307 292,267 309,233 332,204 355,175 386,153 423,138 460,123 506,115 560,115 603,115 641,119 674,126 707,133 736,140 761,149 785,158 805,166 821,173 836,180 848,183 856,183 861,183 865,182 869,180 872,177 875,174 877,169 879,164 881,158 882,150 883,141 883,131 883,119 883,110 883,103 882,97 881,90 881,85 880,80 879,75 877,70 875,66 872,62 869,58 866,55 862,51 851,45 833,37 815,28 792,20 763,12 734,4 701,-3 664,-10 626,-16 586,-19 543,-19 469,-19 404,-9 349,12 293,33 246,63 208,104 170,145 141,196 122,257 103,318 93,390 93,471 93,548 103,618 123,680 143,741 172,794 210,837 247,880 293,913 346,936 399,959 459,970 525,970 596,970 656,959 706,936 755,913 796,883 828,845 860,806 884,761 899,710 914,658 921,603 921,544 Z M 755,563 C 757,650 738,718 698,767 657,816 597,841 518,841 477,841 442,833 411,818 380,803 355,782 334,757 313,732 297,702 286,669 275,635 268,600 267,563 Z"/>
- <glyph unicode="d" horiz-adv-x="848" d="M 924,25 C 924,20 923,15 921,11 918,7 914,4 909,2 903,-1 895,-3 886,-4 877,-5 865,-6 852,-6 838,-6 826,-5 817,-4 808,-3 800,-1 794,2 788,4 784,7 781,11 778,15 777,20 777,25 L 777,144 C 730,93 681,53 630,24 579,-5 523,-19 462,-19 396,-19 340,-6 293,20 246,45 209,80 180,124 151,167 129,219 116,278 103,337 96,399 96,464 96,541 104,611 121,674 138,736 162,789 195,833 228,877 268,911 317,935 365,958 421,970 484,970 537,970 585,959 629,936 672,913 715,879 758,834 L 758,1357 C 758,1362 759,1366 762,1371 764,1375 768,1378 775,1381 782,1383 790,1385 801,1387 811,1388 824,1389 840,1389 857,1389 870,1388 881,1387 892,1385 900,1383 906,1381 912,1378 917,1375 920,1371 923,1366 924,1362 924,1357 Z M 758,658 C 713,713 670,756 629,785 587,814 543,828 498,828 456,828 420,818 391,798 362,778 338,752 320,719 301,686 288,649 280,608 271,567 267,525 267,482 267,437 271,392 278,349 285,306 297,267 314,234 331,200 354,173 383,153 412,132 448,122 491,122 513,122 534,125 555,131 575,137 596,147 617,161 638,175 661,193 684,216 707,238 732,265 758,298 Z"/>
- <glyph unicode="c" horiz-adv-x="727" d="M 800,162 C 800,151 800,141 799,133 798,124 797,117 796,112 794,106 792,101 790,97 787,92 782,86 774,78 765,69 751,59 731,47 711,34 689,23 664,14 639,4 611,-4 582,-10 553,-16 522,-19 491,-19 426,-19 369,-8 319,13 269,34 227,66 194,107 160,148 134,198 117,258 99,317 90,386 90,464 90,553 101,629 123,693 144,756 174,808 212,849 249,890 294,920 345,940 396,959 451,969 510,969 539,969 567,966 594,961 621,956 645,949 668,940 691,931 711,921 729,910 746,899 759,889 767,881 775,873 781,867 784,862 787,857 789,852 791,846 793,839 794,832 795,824 796,816 796,806 796,794 796,768 793,750 787,740 781,729 774,724 765,724 755,724 744,730 731,741 718,752 701,764 681,777 661,790 637,803 609,814 580,825 547,830 508,830 429,830 368,800 326,739 283,678 262,589 262,473 262,415 268,364 279,321 290,277 306,240 327,211 348,182 375,160 406,146 437,131 472,124 512,124 550,124 583,130 612,142 641,154 666,167 687,182 708,196 725,209 740,221 754,232 765,238 773,238 778,238 782,237 785,234 788,231 791,227 794,221 796,214 798,206 799,197 800,187 800,175 800,162 Z"/>
- <glyph unicode="a" horiz-adv-x="762" d="M 831,24 C 831,16 828,10 823,6 818,2 810,-1 801,-3 792,-5 778,-6 760,-6 743,-6 729,-5 719,-3 708,-1 701,2 696,6 691,10 689,16 689,24 L 689,114 C 650,72 606,39 558,16 509,-7 458,-19 404,-19 357,-19 314,-13 276,-1 237,12 205,30 178,53 151,76 130,105 115,139 100,173 92,212 92,255 92,306 102,350 123,387 144,424 173,455 212,480 251,505 298,523 354,536 410,548 473,554 543,554 L 667,554 667,624 C 667,659 663,689 656,716 649,743 637,765 621,783 604,800 583,814 557,823 531,832 499,836 461,836 420,836 384,831 352,822 319,812 291,801 267,790 242,778 222,767 206,758 189,748 177,743 169,743 164,743 159,744 155,747 151,750 148,754 145,759 142,764 139,771 138,780 137,788 136,797 136,807 136,824 137,837 140,847 142,856 148,865 157,874 166,883 181,893 203,905 225,916 250,927 279,937 308,946 339,954 373,961 407,967 441,970 476,970 541,970 596,963 641,948 686,933 723,912 751,884 779,855 799,820 812,778 825,736 831,687 831,631 Z M 667,435 L 526,435 C 481,435 441,431 408,424 375,416 347,405 325,390 303,375 287,357 277,336 266,315 261,290 261,263 261,216 276,179 306,152 335,124 377,110 430,110 473,110 514,121 551,143 588,165 626,199 667,244 Z"/>
- <glyph unicode="X" horiz-adv-x="985" d="M 996,62 C 1005,47 1010,36 1012,27 1013,18 1011,12 1005,7 999,2 989,-2 976,-4 962,-5 944,-6 921,-6 900,-6 883,-6 871,-5 859,-4 850,-2 843,1 836,4 830,7 827,11 823,14 820,19 817,25 L 529,540 238,25 C 235,19 231,14 227,10 223,6 218,3 211,1 204,-2 194,-4 182,-5 170,-6 154,-6 134,-6 112,-6 95,-5 82,-4 69,-2 61,2 56,7 51,12 49,18 51,27 52,36 57,47 66,62 L 419,657 82,1232 C 74,1247 69,1259 67,1268 64,1277 66,1284 71,1289 76,1294 86,1297 99,1298 112,1299 131,1300 154,1300 174,1300 190,1300 203,1299 216,1298 226,1296 233,1294 240,1291 246,1288 249,1284 252,1279 256,1274 260,1269 L 538,785 814,1269 C 817,1274 821,1279 824,1284 827,1288 832,1291 839,1294 845,1296 854,1298 865,1299 876,1300 892,1300 911,1300 932,1300 949,1299 962,1298 975,1296 984,1293 990,1288 995,1283 997,1277 996,1268 995,1259 990,1247 982,1232 L 646,661 Z"/>
- <glyph unicode="U" horiz-adv-x="1003" d="M 1145,478 C 1145,399 1134,329 1111,268 1088,206 1055,154 1012,111 969,68 917,36 856,14 795,-8 725,-19 647,-19 576,-19 511,-9 452,12 393,33 343,63 301,104 259,144 227,194 204,255 181,316 170,386 170,465 L 170,1268 C 170,1273 171,1278 174,1282 177,1286 181,1289 188,1292 195,1294 203,1296 214,1298 225,1299 239,1300 256,1300 272,1300 286,1299 297,1298 308,1296 317,1294 324,1292 330,1289 334,1286 337,1282 340,1278 341,1273 341,1268 L 341,486 C 341,426 348,374 363,329 378,284 399,247 427,218 454,188 488,166 527,151 566,136 609,128 658,128 708,128 753,135 792,150 831,165 864,187 891,216 918,245 938,282 953,325 967,368 974,419 974,477 L 974,1268 C 974,1273 975,1278 978,1282 981,1286 985,1289 992,1292 999,1294 1008,1296 1019,1298 1030,1299 1043,1300 1060,1300 1076,1300 1090,1299 1101,1298 1112,1296 1120,1294 1127,1292 1133,1289 1138,1286 1141,1282 1144,1278 1145,1273 1145,1268 Z"/>
- <glyph unicode="T" horiz-adv-x="986" d="M 983,1220 C 983,1207 982,1196 981,1187 980,1178 978,1170 975,1165 972,1159 968,1155 964,1152 959,1149 954,1148 949,1148 L 585,1148 585,26 C 585,21 584,16 581,12 578,8 574,5 567,3 560,0 552,-2 541,-4 530,-5 516,-6 499,-6 483,-6 469,-5 458,-4 447,-2 438,0 431,3 424,5 420,8 417,12 414,16 413,21 413,26 L 413,1148 49,1148 C 44,1148 39,1149 35,1152 30,1155 27,1159 24,1165 21,1170 19,1178 18,1187 16,1196 15,1207 15,1220 15,1233 16,1244 18,1254 19,1263 21,1271 24,1277 27,1283 30,1287 35,1290 39,1293 44,1294 49,1294 L 949,1294 C 954,1294 959,1293 964,1290 968,1287 972,1283 975,1277 978,1271 980,1263 981,1254 982,1244 983,1233 983,1220 Z"/>
- <glyph unicode="S" horiz-adv-x="813" d="M 867,363 C 867,302 856,248 834,201 811,154 780,114 741,81 701,48 654,23 601,6 547,-11 489,-19 427,-19 384,-19 344,-15 307,-8 270,-1 237,8 208,19 179,30 154,41 135,52 115,63 101,73 94,81 86,89 80,99 77,112 73,124 71,140 71,161 71,176 72,188 73,198 74,207 76,215 79,221 82,227 85,231 89,234 93,236 98,237 103,237 112,237 126,231 143,220 160,209 181,196 208,183 235,170 267,157 305,146 342,134 386,128 435,128 472,128 507,133 538,143 569,153 595,167 618,186 640,204 657,226 669,253 681,280 687,310 687,344 687,381 679,412 662,438 645,464 623,487 596,507 569,526 538,544 503,561 468,577 432,594 395,611 358,628 323,646 288,667 253,688 222,712 195,740 168,768 146,801 129,839 112,876 103,921 103,974 103,1028 113,1076 133,1119 152,1161 180,1196 215,1225 250,1254 291,1276 340,1291 388,1306 440,1313 496,1313 525,1313 554,1311 583,1306 612,1301 639,1294 665,1286 690,1277 713,1268 733,1258 753,1247 766,1239 773,1233 779,1226 783,1221 785,1218 787,1214 789,1209 790,1204 791,1198 792,1191 793,1183 794,1175 794,1165 794,1152 794,1140 794,1129 793,1120 792,1111 790,1103 788,1097 786,1090 783,1086 780,1083 776,1080 772,1078 767,1078 760,1078 748,1083 733,1092 717,1101 698,1112 675,1124 652,1135 626,1146 595,1156 564,1165 529,1170 490,1170 454,1170 423,1165 396,1156 369,1146 347,1133 330,1117 313,1101 300,1082 291,1060 282,1038 278,1015 278,990 278,954 286,923 303,897 320,871 342,848 370,828 397,808 429,790 464,773 499,756 535,740 572,723 609,706 645,687 680,667 715,646 747,622 775,595 802,567 825,534 842,497 859,459 867,414 867,363 Z"/>
- <glyph unicode="R" horiz-adv-x="882" d="M 1035,26 C 1035,21 1034,16 1032,12 1030,8 1026,5 1019,2 1012,-1 1003,-3 991,-4 979,-5 963,-6 943,-6 926,-6 912,-5 901,-4 890,-3 881,-1 874,3 867,6 862,10 859,15 855,20 852,27 849,35 L 730,340 C 716,375 702,407 687,436 672,465 654,490 633,511 612,532 588,548 560,560 532,571 498,577 459,577 L 344,577 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 511,1294 C 544,1294 571,1293 593,1292 614,1290 634,1288 651,1286 701,1277 745,1264 784,1245 822,1226 854,1203 880,1174 906,1145 926,1113 939,1076 952,1039 958,998 958,953 958,910 952,871 941,837 929,802 912,772 890,746 868,719 842,696 811,677 780,658 746,641 708,628 729,619 749,607 766,593 783,578 800,561 815,541 830,521 844,498 857,472 870,446 884,417 897,384 L 1013,99 C 1022,75 1028,58 1031,49 1034,39 1035,31 1035,26 Z M 776,935 C 776,986 765,1029 742,1064 719,1099 681,1124 628,1139 611,1144 593,1147 572,1149 551,1151 523,1152 489,1152 L 344,1152 344,716 512,716 C 557,716 597,722 630,733 663,744 690,759 712,779 734,798 750,821 761,848 771,875 776,904 776,935 Z"/>
- <glyph unicode="P" horiz-adv-x="813" d="M 967,915 C 967,850 956,792 935,740 914,688 883,644 844,607 804,570 755,542 698,522 640,502 571,492 491,492 L 344,492 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1220 C 172,1247 179,1266 193,1277 207,1288 223,1294 240,1294 L 517,1294 C 545,1294 572,1293 598,1291 623,1288 654,1283 689,1276 724,1268 759,1254 796,1233 832,1212 863,1186 888,1155 913,1124 933,1089 947,1049 960,1008 967,964 967,915 Z M 786,901 C 786,954 776,998 757,1033 737,1068 713,1095 684,1112 655,1129 625,1140 594,1145 563,1150 532,1152 503,1152 L 344,1152 344,633 499,633 C 551,633 594,640 629,653 663,666 692,685 715,709 738,732 756,761 768,794 780,827 786,862 786,901 Z"/>
- <glyph unicode="N" horiz-adv-x="1003" d="M 1150,71 C 1150,58 1148,46 1144,37 1139,28 1134,20 1127,14 1120,8 1112,4 1103,1 1094,-2 1086,-3 1077,-3 L 1022,-3 C 1005,-3 990,-1 977,3 964,6 951,13 940,23 928,32 916,45 905,62 893,79 880,100 866,126 L 458,862 C 437,900 415,940 394,982 372,1023 352,1064 333,1103 L 331,1103 C 332,1055 333,1006 334,956 335,906 335,856 335,807 L 335,26 C 335,21 334,17 331,13 328,8 324,5 318,3 311,0 303,-2 293,-4 282,-5 269,-6 253,-6 237,-6 224,-5 214,-4 203,-2 195,0 189,3 183,5 179,8 176,13 173,17 172,21 172,26 L 172,1220 C 172,1247 179,1266 194,1277 209,1288 225,1294 242,1294 L 324,1294 C 343,1294 360,1292 373,1289 386,1286 397,1280 408,1273 418,1265 428,1254 438,1241 447,1227 458,1210 469,1189 L 783,621 C 802,586 821,553 839,520 857,487 874,454 891,422 908,390 924,359 941,328 957,297 973,265 989,234 L 990,234 C 989,287 988,342 988,399 987,456 987,510 987,563 L 987,1265 C 987,1270 988,1274 991,1278 994,1282 998,1286 1005,1289 1011,1292 1019,1294 1030,1295 1040,1296 1053,1297 1070,1297 1085,1297 1097,1296 1108,1295 1119,1294 1127,1292 1133,1289 1139,1286 1143,1282 1146,1278 1149,1274 1150,1270 1150,1265 Z"/>
- <glyph unicode="I" horiz-adv-x="191" d="M 344,26 C 344,21 343,16 340,12 337,8 333,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 242,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1268 C 172,1273 174,1278 177,1282 180,1286 185,1289 192,1292 199,1294 208,1296 219,1298 230,1299 243,1300 258,1300 275,1300 289,1299 300,1298 311,1296 319,1294 326,1292 333,1289 337,1286 340,1282 343,1278 344,1273 344,1268 Z"/>
- <glyph unicode="H" horiz-adv-x="951" d="M 1104,26 C 1104,21 1103,16 1100,12 1097,8 1093,5 1086,3 1079,0 1071,-2 1060,-4 1049,-5 1035,-6 1019,-6 1002,-6 988,-5 977,-4 966,-2 958,0 951,3 944,5 940,8 937,12 934,16 933,21 933,26 L 933,600 344,600 344,26 C 344,21 343,16 340,12 337,8 333,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 242,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1268 C 172,1273 173,1278 176,1282 179,1286 183,1289 190,1292 197,1294 206,1296 217,1298 228,1299 242,1300 258,1300 275,1300 289,1299 300,1298 311,1296 319,1294 326,1292 333,1289 337,1286 340,1282 343,1278 344,1273 344,1268 L 344,750 933,750 933,1268 C 933,1273 934,1278 937,1282 940,1286 944,1289 951,1292 958,1294 966,1296 977,1298 988,1299 1002,1300 1019,1300 1035,1300 1049,1299 1060,1298 1071,1296 1079,1294 1086,1292 1093,1289 1097,1286 1100,1282 1103,1278 1104,1273 1104,1268 Z"/>
- <glyph unicode="G" horiz-adv-x="1073" d="M 1144,1118 C 1144,1105 1143,1094 1142,1085 1141,1075 1139,1067 1136,1061 1133,1054 1130,1050 1126,1047 1122,1044 1118,1043 1113,1043 1105,1043 1092,1049 1073,1062 1054,1075 1029,1089 998,1104 967,1119 929,1133 886,1146 842,1159 790,1165 730,1165 659,1165 595,1152 538,1126 481,1100 433,1064 394,1018 355,972 325,917 304,854 283,791 272,722 272,648 272,565 284,492 307,428 330,364 361,310 402,266 443,222 491,189 548,166 604,143 666,132 733,132 773,132 814,137 855,147 896,156 934,171 969,190 L 969,567 669,567 C 658,567 649,573 644,584 638,595 635,613 635,637 635,650 636,661 637,670 638,679 641,686 644,692 647,697 650,701 654,704 658,707 663,708 669,708 L 1080,708 C 1087,708 1095,707 1102,704 1109,701 1116,697 1122,692 1128,687 1133,679 1136,670 1139,661 1141,650 1141,638 L 1141,145 C 1141,128 1138,113 1132,100 1126,87 1113,76 1094,67 1075,57 1050,46 1019,35 988,24 957,14 924,6 891,-2 858,-8 825,-12 792,-16 759,-18 726,-18 626,-18 537,-3 458,29 379,60 313,104 259,161 204,218 163,287 134,367 105,447 91,536 91,635 91,738 107,831 138,914 169,997 212,1068 269,1127 325,1186 393,1231 472,1264 551,1296 638,1312 734,1312 783,1312 830,1308 873,1299 916,1290 955,1280 989,1269 1022,1257 1051,1244 1074,1231 1097,1217 1112,1206 1121,1197 1130,1188 1136,1178 1139,1167 1142,1156 1144,1139 1144,1118 Z"/>
- <glyph unicode="E" horiz-adv-x="744" d="M 892,71 C 892,59 891,49 890,40 889,31 886,23 883,17 880,11 876,7 872,4 867,1 862,0 857,0 L 236,0 C 221,0 206,5 193,16 179,26 172,44 172,70 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 850,1294 C 855,1294 860,1293 865,1290 869,1287 872,1283 875,1277 878,1271 880,1264 882,1255 883,1246 884,1234 884,1221 884,1209 883,1199 882,1190 880,1181 878,1173 875,1168 872,1162 869,1158 865,1155 860,1152 855,1151 850,1151 L 344,1151 344,745 778,745 C 783,745 788,744 793,741 797,738 801,733 804,728 807,723 809,715 810,706 811,697 812,686 812,673 812,661 811,651 810,642 809,633 807,626 804,621 801,616 797,612 793,610 788,607 783,606 778,606 L 344,606 344,143 857,143 C 862,143 867,142 872,139 876,136 880,132 883,127 886,121 889,114 890,105 891,96 892,84 892,71 Z"/>
- <glyph unicode="D" horiz-adv-x="1020" d="M 1167,666 C 1167,554 1153,456 1124,373 1095,289 1054,220 999,165 944,110 876,68 796,41 716,14 621,0 510,0 L 236,0 C 221,0 206,5 193,16 179,26 172,44 172,70 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 529,1294 C 641,1294 736,1280 813,1251 890,1222 955,1180 1008,1126 1060,1071 1100,1005 1127,928 1154,851 1167,763 1167,666 Z M 986,659 C 986,729 977,794 960,855 943,915 916,967 879,1011 842,1055 795,1089 738,1114 681,1139 608,1151 519,1151 L 344,1151 344,144 521,144 C 604,144 673,154 730,175 787,196 834,227 872,270 910,313 939,366 958,431 977,495 986,571 986,659 Z"/>
- <glyph unicode="C" horiz-adv-x="952" d="M 1036,183 C 1036,172 1036,163 1035,155 1034,147 1033,140 1032,134 1030,128 1028,123 1025,118 1022,113 1018,108 1011,101 1004,94 990,84 969,71 948,57 921,44 890,31 858,18 822,7 781,-3 740,-12 695,-16 646,-16 562,-16 486,-2 419,26 351,54 293,95 246,150 198,205 161,272 136,353 110,433 97,525 97,630 97,737 111,833 139,917 166,1001 205,1072 255,1131 305,1189 365,1233 435,1264 504,1295 581,1310 666,1310 703,1310 740,1307 775,1300 810,1293 843,1284 873,1273 903,1262 930,1250 953,1236 976,1222 993,1211 1002,1202 1011,1193 1016,1186 1019,1181 1022,1176 1024,1171 1026,1165 1027,1158 1029,1151 1030,1142 1031,1133 1031,1123 1031,1111 1031,1098 1030,1086 1029,1077 1028,1068 1026,1060 1023,1054 1020,1047 1017,1043 1014,1040 1010,1037 1005,1035 1000,1035 991,1035 978,1042 961,1055 944,1068 923,1082 897,1098 870,1113 838,1128 801,1141 763,1154 718,1160 665,1160 608,1160 556,1149 509,1126 462,1103 421,1069 388,1024 355,979 329,925 311,861 292,796 283,723 283,640 283,558 292,486 310,423 327,360 353,307 386,265 419,222 459,190 507,169 555,147 609,136 670,136 721,136 766,142 805,155 843,168 876,182 903,198 930,213 952,227 969,240 986,253 1000,259 1010,259 1015,259 1019,258 1022,256 1025,254 1028,250 1030,245 1032,239 1034,231 1035,221 1036,211 1036,198 1036,183 Z"/>
- <glyph unicode="9" horiz-adv-x="882" d="M 934,698 C 934,642 931,585 924,528 917,471 906,416 890,363 874,310 853,260 826,214 799,167 765,127 724,92 683,57 634,30 578,11 521,-9 456,-19 381,-19 352,-19 325,-17 298,-14 271,-10 246,-5 225,0 203,5 185,11 170,17 155,23 145,29 138,35 131,41 127,49 124,60 121,70 119,84 119,101 119,116 120,127 121,136 122,145 123,151 125,156 127,161 130,164 134,166 137,167 142,168 147,168 154,168 165,166 178,161 191,156 208,150 229,144 249,138 273,133 300,128 327,123 358,120 392,120 457,120 512,133 559,158 605,183 643,216 672,258 701,300 723,349 738,404 753,459 761,518 762,579 727,558 684,540 635,524 586,508 529,500 465,500 393,500 333,510 284,530 235,549 195,576 166,610 136,644 115,684 102,731 89,778 82,829 82,884 82,941 90,996 107,1048 124,1099 150,1145 185,1184 220,1223 265,1255 320,1278 375,1301 440,1313 516,1313 570,1313 618,1306 660,1293 701,1279 737,1259 768,1234 799,1208 825,1177 846,1141 867,1104 885,1063 898,1017 911,971 920,921 926,868 931,814 934,757 934,698 Z M 759,717 C 759,802 753,874 742,933 731,991 714,1038 692,1074 670,1110 643,1136 611,1152 579,1168 542,1176 500,1176 457,1176 420,1168 389,1153 358,1137 333,1116 314,1090 294,1063 279,1033 270,1000 261,967 256,932 256,897 256,858 260,822 269,789 277,756 290,729 309,706 328,683 352,666 382,654 412,641 449,635 493,635 543,635 591,643 638,658 685,673 725,692 759,717 Z"/>
- <glyph unicode="8" horiz-adv-x="900" d="M 954,332 C 954,276 944,226 924,183 904,139 875,102 838,72 800,42 753,19 698,4 643,-11 579,-19 508,-19 441,-19 382,-12 329,2 276,16 232,37 195,64 158,91 130,125 111,165 92,205 82,251 82,302 82,343 89,380 102,414 115,448 135,479 160,508 185,537 215,564 252,589 289,614 330,637 376,660 336,681 301,703 270,726 239,749 213,774 192,801 171,828 155,856 144,887 133,918 127,951 127,987 127,1032 135,1075 152,1115 168,1154 193,1189 226,1218 259,1247 301,1271 352,1288 403,1305 462,1313 530,1313 595,1313 652,1305 700,1290 747,1274 787,1253 818,1226 849,1199 871,1167 886,1130 901,1093 908,1054 908,1012 908,978 903,945 892,914 881,883 864,853 843,825 822,797 796,771 765,747 734,722 698,699 658,678 705,655 748,631 785,606 822,581 853,555 878,527 903,498 922,468 935,437 948,405 954,370 954,332 Z M 738,996 C 738,1024 733,1049 724,1072 714,1095 700,1114 681,1130 662,1146 639,1158 612,1167 584,1175 552,1179 517,1179 445,1179 391,1163 354,1130 317,1097 298,1053 298,996 298,970 303,946 312,924 321,901 335,880 354,860 373,840 397,821 426,802 455,783 489,763 529,742 596,777 648,815 684,857 720,899 738,945 738,996 Z M 780,314 C 780,345 774,373 763,398 752,423 735,446 712,468 689,489 660,510 626,531 591,551 551,572 506,594 464,573 427,553 396,532 364,511 338,490 318,468 297,446 282,423 272,399 261,374 256,347 256,318 256,253 278,203 323,168 367,133 433,115 521,115 606,115 671,133 715,169 758,204 780,253 780,314 Z"/>
- <glyph unicode="6" horiz-adv-x="865" d="M 957,419 C 957,362 948,308 931,255 914,202 887,155 851,115 815,74 769,42 714,18 659,-7 593,-19 518,-19 464,-19 416,-12 375,1 334,14 298,33 267,58 236,83 211,113 191,149 170,185 154,226 142,272 129,318 120,368 115,423 110,478 107,536 107,599 107,654 110,710 116,767 122,824 133,878 148,931 163,984 184,1033 211,1080 237,1126 270,1166 310,1201 349,1235 397,1262 452,1282 507,1302 572,1312 645,1312 670,1312 695,1311 720,1308 745,1305 769,1301 790,1296 811,1291 829,1285 844,1279 859,1273 868,1268 873,1265 878,1261 881,1257 884,1253 886,1248 888,1244 889,1239 890,1234 891,1228 892,1222 893,1215 893,1207 893,1198 893,1186 893,1176 893,1167 892,1158 891,1151 889,1146 886,1141 883,1137 880,1134 876,1131 871,1130 865,1130 858,1130 848,1132 835,1137 822,1142 807,1147 789,1153 771,1158 749,1163 724,1168 698,1173 668,1175 634,1175 572,1175 519,1162 474,1137 429,1112 393,1078 365,1035 336,992 315,943 302,887 288,830 280,771 278,710 295,720 315,730 337,740 358,750 382,759 408,767 433,775 460,782 489,787 518,792 548,794 581,794 651,794 710,785 758,766 806,747 845,720 875,687 904,653 925,613 938,568 951,522 957,472 957,419 Z M 783,403 C 783,442 779,477 772,509 764,540 751,567 733,589 715,611 691,628 661,640 631,652 594,658 550,658 525,658 501,656 476,652 451,647 428,641 405,634 382,626 360,617 339,607 318,596 298,585 281,573 281,487 287,415 298,357 309,299 325,253 346,218 367,183 393,158 424,143 455,128 492,120 534,120 577,120 614,128 645,144 676,160 702,182 723,209 744,236 759,266 769,300 778,333 783,368 783,403 Z"/>
- <glyph unicode="5" horiz-adv-x="848" d="M 918,416 C 918,347 906,285 883,231 860,177 827,132 784,95 741,58 691,29 632,10 573,-9 507,-19 435,-19 395,-19 357,-16 321,-11 285,-5 253,2 225,11 197,19 174,27 156,35 138,43 127,49 122,54 117,59 113,63 111,67 109,71 107,76 106,82 104,87 103,94 102,103 101,112 101,122 101,134 101,145 102,156 103,165 104,174 105,181 108,187 111,192 114,196 118,199 121,202 125,203 130,203 137,203 147,199 161,191 175,182 194,173 218,164 241,154 271,145 306,136 341,127 382,123 430,123 475,123 516,128 553,139 590,150 623,166 650,189 677,212 698,240 713,275 728,309 736,351 736,400 736,441 730,478 717,510 704,541 684,568 657,589 630,610 595,625 554,636 513,646 463,651 406,651 365,651 330,649 301,645 272,641 244,639 219,639 200,639 187,643 179,652 171,661 167,677 167,702 L 167,1229 C 167,1251 172,1267 183,1278 193,1289 208,1294 227,1294 L 800,1294 C 805,1294 811,1293 816,1290 821,1287 825,1282 828,1276 831,1270 834,1262 836,1253 837,1244 838,1233 838,1220 838,1196 835,1177 828,1164 821,1151 812,1144 800,1144 L 317,1144 317,781 C 340,784 364,786 389,787 413,788 441,788 473,788 547,788 612,779 667,762 722,744 769,719 806,687 843,654 871,615 890,569 909,523 918,472 918,416 Z"/>
- <glyph unicode="4" horiz-adv-x="951" d="M 979,368 C 979,346 976,329 969,316 962,303 953,297 941,297 L 795,297 795,25 C 795,20 794,15 791,12 788,8 784,5 777,2 770,-1 762,-3 751,-4 740,-5 727,-6 710,-6 694,-6 681,-5 670,-4 659,-3 651,-1 645,2 638,5 634,8 632,12 629,15 628,20 628,25 L 628,297 94,297 C 86,297 79,298 74,300 69,302 64,306 60,311 55,316 52,324 51,334 49,344 48,357 48,373 48,386 48,397 49,407 50,417 51,426 53,435 55,443 58,451 61,459 64,466 68,474 73,483 L 539,1269 C 542,1274 547,1279 554,1283 560,1287 568,1290 578,1293 588,1296 600,1298 615,1299 630,1300 647,1300 667,1300 689,1300 708,1299 725,1298 741,1296 754,1294 764,1291 774,1288 782,1285 787,1281 792,1276 795,1271 795,1265 L 795,439 941,439 C 952,439 962,433 969,422 976,410 979,392 979,368 Z M 628,1149 L 626,1149 205,439 628,439 Z"/>
- <glyph unicode="3" horiz-adv-x="831" d="M 914,370 C 914,311 904,257 883,210 862,162 833,121 794,87 755,53 708,27 651,9 594,-10 530,-19 459,-19 416,-19 375,-16 338,-9 300,-2 266,7 237,17 208,26 183,36 164,47 145,57 133,64 128,69 123,74 119,78 116,83 113,88 111,93 109,100 107,107 106,115 105,125 104,134 103,146 103,160 103,184 105,201 110,210 115,219 121,224 130,224 136,224 148,219 166,208 183,197 206,186 234,174 261,161 294,150 331,139 368,128 409,123 454,123 498,123 537,129 570,140 603,151 631,167 654,188 677,209 694,233 705,262 716,290 722,321 722,354 722,391 715,424 701,453 686,482 665,508 638,529 610,550 576,567 536,578 495,589 449,595 398,595 L 275,595 C 270,595 265,596 260,599 255,601 250,605 247,610 243,615 240,622 238,631 235,640 234,651 234,665 234,678 235,688 237,697 239,705 242,712 246,717 249,722 253,725 258,728 263,730 268,731 274,731 L 387,731 C 431,731 471,737 506,748 541,759 570,776 595,797 619,818 638,844 651,874 664,903 670,936 670,973 670,1000 666,1025 657,1050 648,1074 635,1095 618,1113 601,1131 579,1145 552,1156 525,1166 493,1171 458,1171 419,1171 384,1165 352,1154 319,1142 290,1129 265,1116 240,1103 219,1090 202,1079 185,1067 174,1061 167,1061 162,1061 158,1062 155,1064 151,1065 148,1069 146,1074 143,1079 142,1086 141,1095 140,1104 139,1115 139,1130 139,1140 139,1149 140,1157 141,1164 142,1171 144,1177 146,1182 148,1187 151,1192 154,1197 158,1202 165,1209 171,1215 184,1224 203,1236 222,1248 246,1260 275,1272 303,1283 336,1293 373,1301 410,1309 449,1313 492,1313 552,1313 605,1305 650,1290 695,1275 733,1253 764,1225 794,1197 817,1164 832,1125 847,1086 854,1042 854,995 854,954 849,917 838,882 827,847 812,816 791,789 770,762 745,739 715,720 685,701 650,687 611,680 L 611,678 C 656,673 697,662 734,645 771,627 802,605 829,578 856,551 877,520 892,485 907,449 914,411 914,370 Z"/>
- <glyph unicode="2" horiz-adv-x="830" d="M 924,74 C 924,62 923,51 922,42 920,33 918,25 915,19 912,12 908,8 903,5 898,2 892,0 886,0 L 171,0 C 162,0 154,1 147,4 140,6 134,10 129,15 124,20 120,28 118,38 115,48 114,60 114,75 114,88 115,100 116,110 117,120 119,129 122,137 125,144 130,152 135,160 140,167 146,175 154,184 L 405,450 C 463,511 510,566 545,615 580,664 607,708 626,748 645,788 657,824 663,857 669,890 672,920 672,949 672,978 667,1005 658,1031 649,1056 635,1079 618,1098 600,1117 578,1133 551,1144 524,1155 494,1161 459,1161 418,1161 382,1155 350,1144 317,1133 289,1120 265,1107 240,1094 220,1081 204,1070 187,1059 175,1053 167,1053 162,1053 158,1054 155,1057 151,1060 148,1064 146,1070 143,1076 141,1084 140,1094 139,1104 138,1116 138,1130 138,1140 138,1149 139,1156 140,1163 141,1170 143,1175 144,1180 146,1185 149,1190 152,1195 157,1201 165,1208 173,1215 187,1224 207,1236 226,1248 251,1260 281,1272 310,1283 343,1293 379,1301 414,1309 452,1313 491,1313 554,1313 609,1304 656,1287 703,1269 742,1245 773,1214 804,1183 827,1148 842,1107 857,1066 865,1023 865,977 865,936 861,895 854,854 847,813 831,768 808,721 784,673 750,620 705,562 660,503 601,436 527,360 L 322,146 885,146 C 890,146 896,145 901,142 906,139 910,134 914,128 917,122 920,115 922,106 923,97 924,86 924,74 Z"/>
- <glyph unicode="1" horiz-adv-x="761" d="M 927,68 C 927,55 926,45 924,36 922,27 919,20 916,15 913,10 909,6 905,4 900,1 896,0 891,0 L 215,0 C 210,0 206,1 202,4 198,6 194,10 191,15 187,20 184,27 182,36 180,45 179,55 179,68 179,80 180,90 182,99 184,108 187,115 190,121 193,126 196,131 201,134 205,137 210,138 215,138 L 485,138 485,1122 235,973 C 222,966 212,962 205,961 197,960 191,961 186,966 181,970 178,977 177,987 175,997 174,1010 174,1025 174,1036 175,1046 176,1054 177,1062 178,1069 180,1074 182,1079 185,1084 189,1088 192,1092 197,1096 203,1100 L 501,1291 C 504,1293 507,1295 511,1296 515,1297 520,1299 526,1300 532,1301 539,1302 547,1303 555,1303 565,1303 577,1303 593,1303 606,1302 617,1301 628,1300 636,1298 642,1296 648,1293 652,1290 654,1287 656,1283 657,1279 657,1275 L 657,138 891,138 C 896,138 901,137 906,134 911,131 915,126 918,121 921,115 923,108 925,99 926,90 927,80 927,68 Z"/>
- <glyph unicode="0" horiz-adv-x="900" d="M 967,650 C 967,551 959,460 944,378 928,296 902,226 866,167 829,108 782,62 723,30 664,-3 592,-19 506,-19 425,-19 356,-5 301,25 245,54 200,96 166,153 132,209 108,278 94,361 79,443 72,537 72,644 72,743 80,833 96,916 112,998 138,1069 174,1128 210,1187 257,1232 316,1265 375,1297 447,1313 532,1313 614,1313 683,1299 739,1270 794,1241 839,1198 873,1142 907,1085 931,1016 946,934 960,851 967,757 967,650 Z M 791,638 C 791,703 789,761 784,812 779,863 773,909 764,948 755,987 743,1021 729,1050 714,1078 697,1101 677,1120 657,1138 634,1151 609,1160 583,1168 554,1172 522,1172 465,1172 419,1159 384,1132 349,1105 321,1069 301,1022 280,975 266,921 259,858 252,795 248,728 248,656 248,559 253,477 263,410 273,342 289,287 311,244 332,201 360,170 394,151 427,132 468,122 516,122 553,122 586,128 615,140 643,152 667,169 688,192 708,214 725,241 738,272 751,303 762,338 770,376 778,414 784,455 787,500 790,544 791,590 791,638 Z"/>
- <glyph unicode="-" horiz-adv-x="519" d="M 558,505 C 558,479 555,461 549,451 543,441 534,436 523,436 L 105,436 C 93,436 84,441 78,452 72,462 69,480 69,505 69,530 72,548 78,558 84,568 93,573 105,573 L 523,573 C 528,573 533,572 538,570 542,568 546,564 549,559 552,553 554,546 556,537 557,528 558,518 558,505 Z"/>
- <glyph unicode=")" horiz-adv-x="381" d="M 487,537 C 487,462 482,387 473,314 464,240 450,167 431,95 412,23 390,-48 363,-118 336,-187 304,-256 268,-324 266,-327 263,-330 259,-333 255,-336 250,-338 244,-340 237,-342 230,-343 221,-344 212,-345 202,-345 190,-345 173,-345 159,-344 150,-343 140,-341 133,-338 129,-335 124,-331 122,-326 123,-321 123,-315 125,-308 128,-300 189,-165 236,-28 267,114 298,255 314,397 314,540 314,683 298,825 267,966 236,1107 189,1244 126,1378 123,1384 122,1390 123,1395 124,1400 127,1405 132,1408 137,1411 145,1414 154,1416 163,1418 176,1419 191,1419 205,1419 217,1419 226,1418 235,1417 243,1415 249,1413 254,1411 258,1409 261,1407 264,1405 266,1403 267,1400 336,1263 390,1123 429,979 468,834 487,687 487,537 Z"/>
- <glyph unicode="(" horiz-adv-x="381" d="M 495,1378 C 432,1244 385,1107 354,966 323,825 307,683 307,540 307,397 323,255 355,114 386,-27 432,-165 493,-300 496,-308 498,-315 499,-321 499,-326 497,-331 492,-335 487,-338 480,-341 471,-343 461,-344 448,-345 431,-345 419,-345 409,-345 400,-344 391,-343 384,-342 378,-340 371,-338 366,-336 362,-333 358,-330 355,-327 353,-324 317,-256 285,-187 258,-118 231,-48 208,23 189,95 170,167 156,240 147,314 138,387 133,462 133,537 133,612 138,687 149,760 159,833 174,906 193,979 212,1051 235,1122 262,1192 289,1262 320,1331 354,1400 355,1403 357,1405 360,1407 363,1409 367,1411 372,1413 377,1415 385,1417 394,1418 403,1419 415,1419 430,1419 445,1419 458,1418 467,1416 476,1414 484,1411 489,1408 494,1405 497,1400 498,1395 499,1390 498,1384 495,1378 Z"/>
- <glyph unicode=" " horiz-adv-x="467"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150 id151 id152 id153 id154 id155 id156 id157 id158 id159 id160 id161 id162 id163 id164 id165 id166 id167 id168 id169 id170 id171 id172 id173 id174 id175 id176 id177 id178 id179 id180 id181 id182 id183 id184 id185 id186 id187 id188 id189 id190 id191 id192 id193 id194 id195 id196 id197 id198 id199 id200 id201 id202 id203 id204 id205 id206 id207 id208 id209 id210 id211 id212 id213 id214 id215 id216 id217 id218 id219 id220 id221 id222 id223 id224 id225 id226 id227 id228 id229 id230 id231 id232 id233 id234 id235 id236 id237 id238 id239 id240 id241 id242 id243 id244 id245 id246 id247 id248 id249 id250 id251 id252 id253 id254 id255 id256 id257 id258 id259 id260 id261 id262 id263 id264 id265 id266 id267 id268 id269 id270 id271 id272 id273 id274 id275 id276 id277 id278 id279 id280 id281 id282 id283 id284 id285 id286 id287 id288 id289 id290 id291 id292 id293 id294 id295 id296 id297 id298 id299 id300 id301 id302 id303 id304 id305"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="3815" y="6281" width="2667" height="2266"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 6428,8493 L 6428,7223 3868,7223 3868,6334"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="6814" y="6281" width="4298" height="2266"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 11058,6334 L 11058,7223 6867,7223 6867,8493"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="4250" y="6308" width="6427" height="588"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10623,6361 L 10623,6842 4303,6842 4303,6361"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="7144" y="6281" width="4171" height="2266"/>
- <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 11261,8493 L 11261,7985 7197,7985 7197,6334"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="11543" y="6281" width="2898" height="2266"/>
- <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 14387,6334 L 14387,7985 11596,7985 11596,8493"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="7552" y="6281" width="6454" height="1377"/>
- <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 13952,6361 L 13952,7604 7605,7604 7605,6334"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="740" y="867" width="16140" height="12584"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="9" stroke-linejoin="miter" d="M 8810,13445 L 745,13445 745,872 16874,872 16874,13445 8810,13445 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="6028" y="555" width="5822" height="670"/>
- <g>
- <defs>
- <linearGradient id="gradient1" x1="8938" y1="564" x2="8938" y2="1215" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient1)" d="M 8939,1215 L 6037,1215 6037,564 11840,564 11840,1215 8939,1215 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8939,1215 L 6037,1215 6037,564 11840,564 11840,1215 8939,1215 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="6287" y="1005"><tspan fill="rgb(0,0,0)" stroke="none">3-Node Xeon Haswell (3n-hsw)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="5347" y="9562" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 8967,9580 L 12569,9580 12569,12758 5365,12758 5365,9580 8967,9580 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8967,9580 L 12569,9580 12569,12758 5365,12758 5365,9580 8967,9580 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="11178" y="9346" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 11631,9789 L 11187,9789 11187,9355 12074,9355 12074,9789 11631,9789 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 11631,9789 L 11187,9789 11187,9355 12074,9355 12074,9789 11631,9789 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11356" y="9718"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="11931" y="8576" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11954,9294 L 11949,8594"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11954,9294 L 11954,9294 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11949,8594 L 11949,8594 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="11857" y="9286" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11941,9295 L 12015,9295 12015,9394 11866,9394 11866,9295 11941,9295 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11941,9295 L 12015,9295 12015,9394 11866,9394 11866,9295 11941,9295 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="11214" y="9289" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11298,9298 L 11372,9298 11372,9397 11223,9397 11223,9298 11298,9298 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11298,9298 L 11372,9298 11372,9397 11223,9397 11223,9298 11298,9298 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="11278" y="8531" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11296,9297 L 11298,8549"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11296,9297 L 11296,9297 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11298,8549 L 11298,8549 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="11702" y="8528" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11720,9292 L 11722,8546"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11720,9292 L 11720,9292 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11722,8546 L 11722,8546 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="11637" y="9284" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11721,9293 L 11795,9293 11795,9392 11646,9392 11646,9293 11721,9293 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11721,9293 L 11795,9293 11795,9392 11646,9392 11646,9293 11721,9293 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="11426" y="9286" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11510,9295 L 11584,9295 11584,9394 11435,9394 11435,9295 11510,9295 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11510,9295 L 11584,9295 11584,9394 11435,9394 11435,9295 11510,9295 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="11499" y="8528" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11523,9294 L 11517,8546"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11523,9294 L 11523,9294 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11517,8546 L 11517,8546 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="9256" y="10528" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 10674,11712 L 9274,11712 9274,10546 12074,10546 12074,11712 10674,11712 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 10674,11712 L 9274,11712 9274,10546 12074,10546 12074,11712 10674,11712 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10135" y="10850"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10025" y="11203"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="9993" y="11556"><tspan fill="rgb(255,255,255)" stroke="none">E5-2699v3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="10213" y="9349" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 10666,9792 L 10222,9792 10222,9358 11109,9358 11109,9792 10666,9792 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 10666,9792 L 10222,9792 10222,9358 11109,9358 11109,9792 10666,9792 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10391" y="9721"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="10967" y="8533" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10990,9297 L 10985,8551"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10990,9297 L 10990,9297 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10985,8551 L 10985,8551 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="10893" y="9289" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10977,9298 L 11051,9298 11051,9397 10902,9397 10902,9298 10977,9298 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10977,9298 L 11051,9298 11051,9397 10902,9397 10902,9298 10977,9298 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="10249" y="9291" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10333,9300 L 10407,9300 10407,9399 10258,9399 10258,9300 10333,9300 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10333,9300 L 10407,9300 10407,9399 10258,9399 10258,9300 10333,9300 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="10314" y="8533" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10332,9299 L 10334,8551"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10332,9299 L 10332,9299 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10334,8551 L 10334,8551 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="10738" y="8531" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10756,9295 L 10758,8549"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10756,9295 L 10756,9295 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10758,8549 L 10758,8549 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="10672" y="9287" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10756,9296 L 10830,9296 10830,9395 10681,9395 10681,9296 10756,9296 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10756,9296 L 10830,9296 10830,9395 10681,9395 10681,9296 10756,9296 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="10461" y="9289" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10545,9298 L 10619,9298 10619,9397 10470,9397 10470,9298 10545,9298 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10545,9298 L 10619,9298 10619,9397 10470,9397 10470,9298 10545,9298 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="10534" y="8531" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10558,9297 L 10552,8549"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10558,9297 L 10558,9297 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10552,8549 L 10552,8549 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="9264" y="9351" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 9717,9794 L 9273,9794 9273,9360 10160,9360 10160,9794 9717,9794 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 9717,9794 L 9273,9794 9273,9360 10160,9360 10160,9794 9717,9794 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9442" y="9723"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="10018" y="8535" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10041,9299 L 10036,8553"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10041,9299 L 10041,9299 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10036,8553 L 10036,8553 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="9944" y="9291" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10028,9300 L 10102,9300 10102,9399 9953,9399 9953,9300 10028,9300 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10028,9300 L 10102,9300 10102,9399 9953,9399 9953,9300 10028,9300 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="9300" y="9293" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 9384,9302 L 9458,9302 9458,9401 9309,9401 9309,9302 9384,9302 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9384,9302 L 9458,9302 9458,9401 9309,9401 9309,9302 9384,9302 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="9365" y="8583" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9383,9301 L 9385,8601"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9383,9301 L 9383,9301 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9385,8601 L 9385,8601 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="9789" y="8533" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9807,9297 L 9809,8551"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9807,9297 L 9807,9297 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9809,8551 L 9809,8551 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="9723" y="9289" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 9807,9298 L 9881,9298 9881,9397 9732,9397 9732,9298 9807,9298 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9807,9298 L 9881,9298 9881,9397 9732,9397 9732,9298 9807,9298 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="9512" y="9291" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 9596,9300 L 9670,9300 9670,9399 9521,9399 9521,9300 9596,9300 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9596,9300 L 9670,9300 9670,9399 9521,9399 9521,9300 9596,9300 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="9585" y="8533" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9609,9299 L 9603,8551"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9609,9299 L 9609,9299 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9603,8551 L 9603,8551 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="11324" y="9796" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 11602,9796 L 11879,9957 11741,9957 11741,10367 11879,10367 11602,10529 11324,10367 11463,10367 11463,9957 11324,9957 11602,9796 Z M 11879,9796 L 11879,9796 Z M 11324,10529 L 11324,10529 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="11363" y="9993" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 11601,10336 L 11363,10336 11363,9993 11838,9993 11838,10336 11601,10336 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11450" y="10278"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="10347" y="9800" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 10625,9800 L 10902,9961 10764,9961 10764,10371 10902,10371 10625,10533 10347,10371 10486,10371 10486,9961 10347,9961 10625,9800 Z M 10902,9800 L 10902,9800 Z M 10347,10533 L 10347,10533 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="10385" y="9997" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 10623,10340 L 10385,10340 10385,9997 10860,9997 10860,10340 10623,10340 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10472" y="10282"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="9394" y="9809" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 9672,9809 L 9949,9970 9811,9970 9811,10380 9949,10380 9672,10542 9394,10380 9533,10380 9533,9970 9394,9970 9672,9809 Z M 9949,9809 L 9949,9809 Z M 9394,10542 L 9394,10542 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="9433" y="10006" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 9671,10349 L 9433,10349 9433,10006 9908,10006 9908,10349 9671,10349 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9520" y="10291"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="5937" y="10543" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 7355,11727 L 5955,11727 5955,10561 8755,10561 8755,11727 7355,11727 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 7355,11727 L 5955,11727 5955,10561 8755,10561 8755,11727 7355,11727 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6816" y="10865"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6706" y="11218"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6674" y="11571"><tspan fill="rgb(255,255,255)" stroke="none">E5-2699v3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="7863" y="9352" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 8316,9795 L 7872,9795 7872,9361 8759,9361 8759,9795 8316,9795 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8316,9795 L 7872,9795 7872,9361 8759,9361 8759,9795 8316,9795 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8041" y="9724"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="8617" y="8582" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8640,9300 L 8635,8600"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8640,9300 L 8640,9300 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8635,8600 L 8635,8600 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="8543" y="9292" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 8627,9301 L 8701,9301 8701,9400 8552,9400 8552,9301 8627,9301 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 8627,9301 L 8701,9301 8701,9400 8552,9400 8552,9301 8627,9301 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="7899" y="9294" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7983,9303 L 8057,9303 8057,9402 7908,9402 7908,9303 7983,9303 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7983,9303 L 8057,9303 8057,9402 7908,9402 7908,9303 7983,9303 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="7964" y="8536" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7982,9302 L 7984,8554"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7982,9302 L 7982,9302 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7984,8554 L 7984,8554 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="8388" y="8534" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8406,9298 L 8408,8552"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8406,9298 L 8406,9298 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8408,8552 L 8408,8552 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="8322" y="9290" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 8406,9299 L 8480,9299 8480,9398 8331,9398 8331,9299 8406,9299 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 8406,9299 L 8480,9299 8480,9398 8331,9398 8331,9299 8406,9299 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="8111" y="9292" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 8195,9301 L 8269,9301 8269,9400 8120,9400 8120,9301 8195,9301 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 8195,9301 L 8269,9301 8269,9400 8120,9400 8120,9301 8195,9301 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="8184" y="8534" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8208,9300 L 8202,8552"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8208,9300 L 8208,9300 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8202,8552 L 8202,8552 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="6899" y="9354" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 7352,9797 L 6908,9797 6908,9363 7795,9363 7795,9797 7352,9797 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7352,9797 L 6908,9797 6908,9363 7795,9363 7795,9797 7352,9797 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7077" y="9726"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="7652" y="8538" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7675,9302 L 7670,8556"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7675,9302 L 7675,9302 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7670,8556 L 7670,8556 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="7578" y="9294" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7662,9303 L 7736,9303 7736,9402 7587,9402 7587,9303 7662,9303 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7662,9303 L 7736,9303 7736,9402 7587,9402 7587,9303 7662,9303 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="6934" y="9296" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7018,9305 L 7092,9305 7092,9404 6943,9404 6943,9305 7018,9305 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7018,9305 L 7092,9305 7092,9404 6943,9404 6943,9305 7018,9305 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="6999" y="8538" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7017,9304 L 7019,8556"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7017,9304 L 7017,9304 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7019,8556 L 7019,8556 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="7423" y="8536" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7441,9300 L 7443,8554"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7441,9300 L 7441,9300 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7443,8554 L 7443,8554 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="7358" y="9292" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7442,9301 L 7516,9301 7516,9400 7367,9400 7367,9301 7442,9301 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7442,9301 L 7516,9301 7516,9400 7367,9400 7367,9301 7442,9301 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="7147" y="9294" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7231,9303 L 7305,9303 7305,9402 7156,9402 7156,9303 7231,9303 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7231,9303 L 7305,9303 7305,9402 7156,9402 7156,9303 7231,9303 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="7220" y="8536" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7244,9302 L 7238,8554"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7244,9302 L 7244,9302 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7238,8554 L 7238,8554 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="5950" y="9356" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 6403,9799 L 5959,9799 5959,9365 6846,9365 6846,9799 6403,9799 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6403,9799 L 5959,9799 5959,9365 6846,9365 6846,9799 6403,9799 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6128" y="9728"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="6703" y="8540" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6726,9304 L 6721,8558"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6726,9304 L 6726,9304 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6721,8558 L 6721,8558 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="6629" y="9296" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6713,9305 L 6787,9305 6787,9404 6638,9404 6638,9305 6713,9305 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6713,9305 L 6787,9305 6787,9404 6638,9404 6638,9305 6713,9305 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="5986" y="9298" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6070,9307 L 6144,9307 6144,9406 5995,9406 5995,9307 6070,9307 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6070,9307 L 6144,9307 6144,9406 5995,9406 5995,9307 6070,9307 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="6051" y="8588" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6069,9306 L 6071,8606"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6069,9306 L 6069,9306 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6071,8606 L 6071,8606 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="6474" y="8538" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6492,9302 L 6494,8556"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6492,9302 L 6492,9302 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6494,8556 L 6494,8556 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="6409" y="9294" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6493,9303 L 6567,9303 6567,9402 6418,9402 6418,9303 6493,9303 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6493,9303 L 6567,9303 6567,9402 6418,9402 6418,9303 6493,9303 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="6198" y="9296" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6282,9305 L 6356,9305 6356,9404 6207,9404 6207,9305 6282,9305 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6282,9305 L 6356,9305 6356,9404 6207,9404 6207,9305 6282,9305 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="6271" y="8538" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6295,9304 L 6289,8556"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6295,9304 L 6295,9304 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6289,8556 L 6289,8556 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id74">
- <rect class="BoundingBox" stroke="none" fill="none" x="8010" y="9801" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 8288,9801 L 8565,9962 8427,9962 8427,10372 8565,10372 8288,10534 8010,10372 8149,10372 8149,9962 8010,9962 8288,9801 Z M 8565,9801 L 8565,9801 Z M 8010,10534 L 8010,10534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id75">
- <rect class="BoundingBox" stroke="none" fill="none" x="8048" y="9998" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 8286,10341 L 8048,10341 8048,9998 8523,9998 8523,10341 8286,10341 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8135" y="10283"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id76">
- <rect class="BoundingBox" stroke="none" fill="none" x="7032" y="9806" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 7310,9806 L 7587,9967 7449,9967 7449,10377 7587,10377 7310,10539 7032,10377 7171,10377 7171,9967 7032,9967 7310,9806 Z M 7587,9806 L 7587,9806 Z M 7032,10539 L 7032,10539 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id77">
- <rect class="BoundingBox" stroke="none" fill="none" x="7071" y="10003" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 7309,10346 L 7071,10346 7071,10003 7546,10003 7546,10346 7309,10346 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7158" y="10288"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id78">
- <rect class="BoundingBox" stroke="none" fill="none" x="6080" y="9814" width="557" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 6358,9814 L 6635,9975 6497,9975 6497,10385 6635,10385 6358,10547 6080,10385 6219,10385 6219,9975 6080,9975 6358,9814 Z M 6635,9814 L 6635,9814 Z M 6080,10547 L 6080,10547 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id79">
- <rect class="BoundingBox" stroke="none" fill="none" x="6118" y="10012" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 6356,10355 L 6118,10355 6118,10012 6593,10012 6593,10355 6356,10355 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6205" y="10297"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id80">
- <rect class="BoundingBox" stroke="none" fill="none" x="9342" y="8439" width="2666" height="234"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 9395,8619 L 9395,8619 9395,8612 9395,8606 9396,8599 9396,8593 9397,8587 9398,8580 9398,8574 9400,8568 9401,8562 9402,8556 9403,8551 9405,8545 9407,8540 9408,8535 9410,8531 9412,8526 9414,8522 9416,8518 9418,8514 9421,8511 9423,8508 9425,8505 9428,8502 9430,8500 9433,8498 9435,8497 9438,8496 9441,8495 9443,8494 9446,8494 11902,8492 11902,8492 11905,8492 11907,8493 11910,8494 11913,8495 11915,8496 11918,8498 11920,8500 11923,8503 11925,8506 11927,8509 11930,8512 11932,8516 11934,8520 11936,8524 11938,8529 11940,8534 11941,8539 11943,8544 11945,8549 11946,8555 11947,8561 11948,8567 11950,8573 11950,8579 11951,8585 11952,8592 11952,8598 11953,8605 11953,8611 11953,8618"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 9395,8619 L 9395,8619 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 11954,8492 L 11954,8492 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id81">
- <rect class="BoundingBox" stroke="none" fill="none" x="6023" y="8448" width="2666" height="234"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6076,8628 L 6076,8628 6076,8621 6076,8615 6077,8608 6077,8602 6078,8596 6079,8589 6079,8583 6081,8577 6082,8571 6083,8565 6084,8560 6086,8554 6088,8549 6089,8544 6091,8540 6093,8535 6095,8531 6097,8527 6099,8523 6102,8520 6104,8517 6106,8514 6109,8511 6111,8509 6114,8507 6116,8506 6119,8505 6122,8504 6124,8503 6127,8503 8583,8501 8583,8501 8586,8501 8588,8502 8591,8503 8594,8504 8596,8505 8599,8507 8601,8509 8604,8512 8606,8515 8608,8518 8611,8521 8613,8525 8615,8529 8617,8533 8619,8538 8621,8543 8622,8548 8624,8553 8626,8558 8627,8564 8628,8570 8629,8576 8631,8582 8631,8588 8632,8594 8633,8601 8633,8607 8634,8614 8634,8620 8634,8627"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6076,8628 L 6076,8628 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 8635,8501 L 8635,8501 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id82">
- <rect class="BoundingBox" stroke="none" fill="none" x="5415" y="11739" width="1219" height="930"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5415" y="12127"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5415" y="12592"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id83">
- <rect class="BoundingBox" stroke="none" fill="none" x="7036" y="12740" width="4221" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="7288" y="13288"><tspan fill="rgb(32,56,100)" stroke="none">Traffic Generator (TG)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id84">
- <rect class="BoundingBox" stroke="none" fill="none" x="8701" y="11887" width="1147" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8951" y="12294"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id85">
- <rect class="BoundingBox" stroke="none" fill="none" x="8040" y="11937" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8334,12007 L 8334,12007 8334,12011 8334,12014 8333,12018 8332,12021 8332,12025 8331,12028 8329,12032 8328,12035 8326,12038 8325,12042 8323,12045 8321,12048 8319,12050 8316,12053 8314,12056 8311,12058 8308,12061 8306,12063 8303,12065 8299,12067 8296,12068 8293,12070 8290,12071 8286,12073 8283,12074 8279,12074 8276,12075 8272,12076 8269,12076 8265,12076 8111,12076 8111,12076 8107,12076 8104,12076 8100,12075 8097,12074 8093,12074 8090,12073 8086,12071 8083,12070 8080,12068 8076,12067 8073,12065 8070,12063 8068,12061 8065,12058 8062,12056 8060,12053 8057,12050 8055,12048 8053,12045 8051,12041 8050,12038 8048,12035 8047,12032 8045,12028 8044,12025 8044,12021 8043,12018 8042,12014 8042,12011 8042,12007 8041,12007 8042,12007 8042,12003 8042,12000 8043,11996 8043,11993 8044,11989 8045,11986 8046,11982 8048,11979 8049,11976 8051,11973 8053,11970 8055,11967 8057,11964 8059,11961 8062,11959 8064,11956 8067,11954 8070,11952 8073,11949 8076,11948 8079,11946 8082,11944 8086,11943 8089,11942 8092,11941 8096,11940 8099,11939 8103,11938 8106,11938 8110,11938 8265,11937 8265,11938 8269,11938 8272,11938 8276,11939 8279,11939 8283,11940 8286,11941 8290,11942 8293,11944 8296,11945 8299,11947 8302,11949 8305,11951 8308,11953 8311,11955 8313,11958 8316,11960 8318,11963 8320,11966 8323,11969 8324,11972 8326,11975 8328,11978 8329,11982 8330,11985 8331,11988 8332,11992 8333,11995 8334,11999 8334,12002 8334,12006 8334,12007 Z M 8334,12076 L 8334,12076 Z M 8041,11937 L 8041,11937 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id86">
- <rect class="BoundingBox" stroke="none" fill="none" x="8041" y="12137" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8334,12207 L 8334,12207 8334,12211 8334,12214 8333,12218 8332,12221 8332,12225 8331,12228 8329,12232 8328,12235 8326,12238 8325,12242 8323,12245 8321,12248 8319,12250 8316,12253 8314,12256 8311,12258 8308,12261 8306,12263 8303,12265 8299,12267 8296,12268 8293,12270 8290,12271 8286,12273 8283,12274 8279,12274 8276,12275 8272,12276 8269,12276 8265,12276 8111,12276 8111,12276 8107,12276 8104,12276 8100,12275 8097,12274 8093,12274 8090,12273 8086,12271 8083,12270 8080,12268 8076,12267 8073,12265 8070,12263 8068,12261 8065,12258 8062,12256 8060,12253 8057,12250 8055,12248 8053,12245 8051,12241 8050,12238 8048,12235 8047,12232 8045,12228 8044,12225 8044,12221 8043,12218 8042,12214 8042,12211 8042,12207 8041,12207 8042,12207 8042,12203 8042,12200 8043,12196 8043,12193 8044,12189 8045,12186 8046,12182 8048,12179 8049,12176 8051,12173 8053,12170 8055,12167 8057,12164 8059,12161 8062,12159 8064,12156 8067,12154 8070,12152 8073,12149 8076,12148 8079,12146 8082,12144 8086,12143 8089,12142 8092,12141 8096,12140 8099,12139 8103,12138 8106,12138 8110,12138 8265,12137 8265,12138 8269,12138 8272,12138 8276,12139 8279,12139 8283,12140 8286,12141 8290,12142 8293,12144 8296,12145 8299,12147 8302,12149 8305,12151 8308,12153 8311,12155 8313,12158 8316,12160 8318,12163 8320,12166 8323,12169 8324,12172 8326,12175 8328,12178 8329,12182 8330,12185 8331,12188 8332,12192 8333,12195 8334,12199 8334,12202 8334,12206 8334,12207 Z M 8334,12276 L 8334,12276 Z M 8041,12137 L 8041,12137 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id87">
- <rect class="BoundingBox" stroke="none" fill="none" x="8041" y="12335" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8334,12406 L 8334,12406 8334,12410 8334,12413 8333,12417 8332,12420 8332,12424 8331,12427 8329,12431 8328,12434 8326,12437 8325,12441 8323,12444 8321,12447 8319,12449 8316,12452 8314,12455 8311,12457 8308,12460 8306,12462 8303,12464 8299,12466 8296,12467 8293,12469 8290,12470 8286,12472 8283,12473 8279,12473 8276,12474 8272,12475 8269,12475 8265,12475 8111,12475 8111,12475 8107,12475 8104,12475 8100,12474 8097,12473 8093,12473 8090,12472 8086,12470 8083,12469 8080,12467 8076,12466 8073,12464 8070,12462 8068,12460 8065,12457 8062,12455 8060,12452 8057,12449 8055,12447 8053,12444 8051,12440 8050,12437 8048,12434 8047,12431 8045,12427 8044,12424 8044,12420 8043,12417 8042,12413 8042,12410 8042,12406 8041,12406 8042,12406 8042,12402 8042,12399 8043,12395 8043,12392 8044,12388 8045,12385 8046,12381 8048,12378 8049,12375 8051,12372 8053,12369 8055,12366 8057,12363 8059,12360 8062,12358 8064,12355 8067,12353 8070,12351 8073,12348 8076,12347 8079,12345 8082,12343 8086,12342 8089,12341 8092,12340 8096,12339 8099,12338 8103,12337 8106,12337 8110,12337 8265,12336 8265,12337 8269,12337 8272,12337 8276,12338 8279,12338 8283,12339 8286,12340 8290,12341 8293,12343 8296,12344 8299,12346 8302,12348 8305,12350 8308,12352 8311,12354 8313,12357 8316,12359 8318,12362 8320,12365 8323,12368 8324,12371 8326,12374 8328,12377 8329,12381 8330,12384 8331,12387 8332,12391 8333,12394 8334,12398 8334,12401 8334,12405 8334,12406 Z M 8334,12475 L 8334,12475 Z M 8041,12336 L 8041,12336 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id88">
- <rect class="BoundingBox" stroke="none" fill="none" x="7691" y="11937" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7985,12007 L 7985,12007 7985,12011 7985,12014 7984,12018 7983,12021 7983,12025 7982,12028 7980,12032 7979,12035 7977,12038 7976,12042 7974,12045 7972,12048 7970,12050 7967,12053 7965,12056 7962,12058 7959,12061 7957,12063 7954,12065 7950,12067 7947,12068 7944,12070 7941,12071 7937,12073 7934,12074 7930,12074 7927,12075 7923,12076 7920,12076 7916,12076 7762,12076 7762,12076 7758,12076 7755,12076 7751,12075 7748,12074 7744,12074 7741,12073 7737,12071 7734,12070 7731,12068 7727,12067 7724,12065 7721,12063 7719,12061 7716,12058 7713,12056 7711,12053 7708,12050 7706,12048 7704,12045 7702,12041 7701,12038 7699,12035 7698,12032 7696,12028 7695,12025 7695,12021 7694,12018 7693,12014 7693,12011 7693,12007 7692,12007 7693,12007 7693,12003 7693,12000 7694,11996 7694,11993 7695,11989 7696,11986 7697,11982 7699,11979 7700,11976 7702,11973 7704,11970 7706,11967 7708,11964 7710,11961 7713,11959 7715,11956 7718,11954 7721,11952 7724,11949 7727,11948 7730,11946 7733,11944 7737,11943 7740,11942 7743,11941 7747,11940 7750,11939 7754,11938 7757,11938 7761,11938 7916,11937 7916,11938 7920,11938 7923,11938 7927,11939 7930,11939 7934,11940 7937,11941 7941,11942 7944,11944 7947,11945 7950,11947 7953,11949 7956,11951 7959,11953 7962,11955 7964,11958 7967,11960 7969,11963 7971,11966 7974,11969 7975,11972 7977,11975 7979,11978 7980,11982 7981,11985 7982,11988 7983,11992 7984,11995 7985,11999 7985,12002 7985,12006 7985,12007 Z M 7985,12076 L 7985,12076 Z M 7692,11937 L 7692,11937 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id89">
- <rect class="BoundingBox" stroke="none" fill="none" x="7692" y="12137" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7985,12207 L 7985,12207 7985,12211 7985,12214 7984,12218 7983,12221 7983,12225 7982,12228 7980,12232 7979,12235 7977,12238 7976,12242 7974,12245 7972,12248 7970,12250 7967,12253 7965,12256 7962,12258 7959,12261 7957,12263 7954,12265 7950,12267 7947,12268 7944,12270 7941,12271 7937,12273 7934,12274 7930,12274 7927,12275 7923,12276 7920,12276 7916,12276 7762,12276 7762,12276 7758,12276 7755,12276 7751,12275 7748,12274 7744,12274 7741,12273 7737,12271 7734,12270 7731,12268 7727,12267 7724,12265 7721,12263 7719,12261 7716,12258 7713,12256 7711,12253 7708,12250 7706,12248 7704,12245 7702,12241 7701,12238 7699,12235 7698,12232 7696,12228 7695,12225 7695,12221 7694,12218 7693,12214 7693,12211 7693,12207 7692,12207 7693,12207 7693,12203 7693,12200 7694,12196 7694,12193 7695,12189 7696,12186 7697,12182 7699,12179 7700,12176 7702,12173 7704,12170 7706,12167 7708,12164 7710,12161 7713,12159 7715,12156 7718,12154 7721,12152 7724,12149 7727,12148 7730,12146 7733,12144 7737,12143 7740,12142 7743,12141 7747,12140 7750,12139 7754,12138 7757,12138 7761,12138 7916,12137 7916,12138 7920,12138 7923,12138 7927,12139 7930,12139 7934,12140 7937,12141 7941,12142 7944,12144 7947,12145 7950,12147 7953,12149 7956,12151 7959,12153 7962,12155 7964,12158 7967,12160 7969,12163 7971,12166 7974,12169 7975,12172 7977,12175 7979,12178 7980,12182 7981,12185 7982,12188 7983,12192 7984,12195 7985,12199 7985,12202 7985,12206 7985,12207 Z M 7985,12276 L 7985,12276 Z M 7692,12137 L 7692,12137 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id90">
- <rect class="BoundingBox" stroke="none" fill="none" x="7692" y="12336" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7985,12406 L 7985,12406 7985,12410 7985,12413 7984,12417 7983,12420 7983,12424 7982,12427 7980,12431 7979,12434 7977,12437 7976,12441 7974,12444 7972,12447 7970,12449 7967,12452 7965,12455 7962,12457 7959,12460 7957,12462 7954,12464 7950,12466 7947,12467 7944,12469 7941,12470 7937,12472 7934,12473 7930,12473 7927,12474 7923,12475 7920,12475 7916,12475 7762,12475 7762,12475 7758,12475 7755,12475 7751,12474 7748,12473 7744,12473 7741,12472 7737,12470 7734,12469 7731,12467 7727,12466 7724,12464 7721,12462 7719,12460 7716,12457 7713,12455 7711,12452 7708,12449 7706,12447 7704,12444 7702,12440 7701,12437 7699,12434 7698,12431 7696,12427 7695,12424 7695,12420 7694,12417 7693,12413 7693,12410 7693,12406 7692,12406 7693,12406 7693,12402 7693,12399 7694,12395 7694,12392 7695,12388 7696,12385 7697,12381 7699,12378 7700,12375 7702,12372 7704,12369 7706,12366 7708,12363 7710,12360 7713,12358 7715,12355 7718,12353 7721,12351 7724,12348 7727,12347 7730,12345 7733,12343 7737,12342 7740,12341 7743,12340 7747,12339 7750,12338 7754,12337 7757,12337 7761,12337 7916,12336 7916,12337 7920,12337 7923,12337 7927,12338 7930,12338 7934,12339 7937,12340 7941,12341 7944,12343 7947,12344 7950,12346 7953,12348 7956,12350 7959,12352 7962,12354 7964,12357 7967,12359 7969,12362 7971,12365 7974,12368 7975,12371 7977,12374 7979,12377 7980,12381 7981,12384 7982,12387 7983,12391 7984,12394 7985,12398 7985,12401 7985,12405 7985,12406 Z M 7985,12475 L 7985,12475 Z M 7692,12336 L 7692,12336 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id91">
- <rect class="BoundingBox" stroke="none" fill="none" x="8371" y="11940" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8664,12010 L 8664,12010 8664,12014 8664,12017 8663,12021 8662,12024 8662,12028 8661,12031 8659,12035 8658,12038 8656,12041 8655,12045 8653,12048 8651,12051 8649,12053 8646,12056 8644,12059 8641,12061 8638,12064 8636,12066 8633,12068 8629,12070 8626,12071 8623,12073 8620,12074 8616,12076 8613,12077 8609,12077 8606,12078 8602,12079 8599,12079 8595,12079 8441,12079 8441,12079 8437,12079 8434,12079 8430,12078 8427,12077 8423,12077 8420,12076 8416,12074 8413,12073 8410,12071 8406,12070 8403,12068 8400,12066 8398,12064 8395,12061 8392,12059 8390,12056 8387,12053 8385,12051 8383,12048 8381,12044 8380,12041 8378,12038 8377,12035 8375,12031 8374,12028 8374,12024 8373,12021 8372,12017 8372,12014 8372,12010 8371,12010 8372,12010 8372,12006 8372,12003 8373,11999 8373,11996 8374,11992 8375,11989 8376,11985 8378,11982 8379,11979 8381,11976 8383,11973 8385,11970 8387,11967 8389,11964 8392,11962 8394,11959 8397,11957 8400,11955 8403,11952 8406,11951 8409,11949 8412,11947 8416,11946 8419,11945 8422,11944 8426,11943 8429,11942 8433,11941 8436,11941 8440,11941 8595,11940 8595,11941 8599,11941 8602,11941 8606,11942 8609,11942 8613,11943 8616,11944 8620,11945 8623,11947 8626,11948 8629,11950 8632,11952 8635,11954 8638,11956 8641,11958 8643,11961 8646,11963 8648,11966 8650,11969 8653,11972 8654,11975 8656,11978 8658,11981 8659,11985 8660,11988 8661,11991 8662,11995 8663,11998 8664,12002 8664,12005 8664,12009 8664,12010 Z M 8664,12079 L 8664,12079 Z M 8371,11940 L 8371,11940 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id92">
- <rect class="BoundingBox" stroke="none" fill="none" x="8371" y="12140" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8664,12210 L 8664,12210 8664,12214 8664,12217 8663,12221 8662,12224 8662,12228 8661,12231 8659,12235 8658,12238 8656,12241 8655,12245 8653,12248 8651,12251 8649,12253 8646,12256 8644,12259 8641,12261 8638,12264 8636,12266 8633,12268 8629,12270 8626,12271 8623,12273 8620,12274 8616,12276 8613,12277 8609,12277 8606,12278 8602,12279 8599,12279 8595,12279 8441,12279 8441,12279 8437,12279 8434,12279 8430,12278 8427,12277 8423,12277 8420,12276 8416,12274 8413,12273 8410,12271 8406,12270 8403,12268 8400,12266 8398,12264 8395,12261 8392,12259 8390,12256 8387,12253 8385,12251 8383,12248 8381,12244 8380,12241 8378,12238 8377,12235 8375,12231 8374,12228 8374,12224 8373,12221 8372,12217 8372,12214 8372,12210 8371,12210 8372,12210 8372,12206 8372,12203 8373,12199 8373,12196 8374,12192 8375,12189 8376,12185 8378,12182 8379,12179 8381,12176 8383,12173 8385,12170 8387,12167 8389,12164 8392,12162 8394,12159 8397,12157 8400,12155 8403,12152 8406,12151 8409,12149 8412,12147 8416,12146 8419,12145 8422,12144 8426,12143 8429,12142 8433,12141 8436,12141 8440,12141 8595,12140 8595,12141 8599,12141 8602,12141 8606,12142 8609,12142 8613,12143 8616,12144 8620,12145 8623,12147 8626,12148 8629,12150 8632,12152 8635,12154 8638,12156 8641,12158 8643,12161 8646,12163 8648,12166 8650,12169 8653,12172 8654,12175 8656,12178 8658,12181 8659,12185 8660,12188 8661,12191 8662,12195 8663,12198 8664,12202 8664,12205 8664,12209 8664,12210 Z M 8664,12279 L 8664,12279 Z M 8371,12140 L 8371,12140 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id93">
- <rect class="BoundingBox" stroke="none" fill="none" x="8371" y="12338" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8664,12409 L 8664,12409 8664,12413 8664,12416 8663,12420 8662,12423 8662,12427 8661,12430 8659,12434 8658,12437 8656,12440 8655,12444 8653,12447 8651,12450 8649,12452 8646,12455 8644,12458 8641,12460 8638,12463 8636,12465 8633,12467 8629,12469 8626,12470 8623,12472 8620,12473 8616,12475 8613,12476 8609,12476 8606,12477 8602,12478 8599,12478 8595,12478 8441,12478 8441,12478 8437,12478 8434,12478 8430,12477 8427,12476 8423,12476 8420,12475 8416,12473 8413,12472 8410,12470 8406,12469 8403,12467 8400,12465 8398,12463 8395,12460 8392,12458 8390,12455 8387,12452 8385,12450 8383,12447 8381,12443 8380,12440 8378,12437 8377,12434 8375,12430 8374,12427 8374,12423 8373,12420 8372,12416 8372,12413 8372,12409 8371,12409 8372,12409 8372,12405 8372,12402 8373,12398 8373,12395 8374,12391 8375,12388 8376,12384 8378,12381 8379,12378 8381,12375 8383,12372 8385,12369 8387,12366 8389,12363 8392,12361 8394,12358 8397,12356 8400,12354 8403,12351 8406,12350 8409,12348 8412,12346 8416,12345 8419,12344 8422,12343 8426,12342 8429,12341 8433,12340 8436,12340 8440,12340 8595,12339 8595,12340 8599,12340 8602,12340 8606,12341 8609,12341 8613,12342 8616,12343 8620,12344 8623,12346 8626,12347 8629,12349 8632,12351 8635,12353 8638,12355 8641,12357 8643,12360 8646,12362 8648,12365 8650,12368 8653,12371 8654,12374 8656,12377 8658,12380 8659,12384 8660,12387 8661,12390 8662,12394 8663,12397 8664,12401 8664,12404 8664,12408 8664,12409 Z M 8664,12478 L 8664,12478 Z M 8371,12339 L 8371,12339 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id94">
- <rect class="BoundingBox" stroke="none" fill="none" x="10163" y="11963" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10456,12033 L 10456,12033 10456,12037 10456,12040 10455,12044 10454,12047 10454,12051 10453,12054 10451,12058 10450,12061 10448,12064 10447,12068 10445,12071 10443,12074 10441,12076 10438,12079 10436,12082 10433,12084 10430,12087 10428,12089 10425,12091 10421,12093 10418,12094 10415,12096 10412,12097 10408,12099 10405,12100 10401,12100 10398,12101 10394,12102 10391,12102 10387,12102 10233,12102 10233,12102 10229,12102 10226,12102 10222,12101 10219,12100 10215,12100 10212,12099 10208,12097 10205,12096 10202,12094 10198,12093 10195,12091 10192,12089 10190,12087 10187,12084 10184,12082 10182,12079 10179,12076 10177,12074 10175,12071 10173,12067 10172,12064 10170,12061 10169,12058 10167,12054 10166,12051 10166,12047 10165,12044 10164,12040 10164,12037 10164,12033 10163,12033 10164,12033 10164,12029 10164,12026 10165,12022 10165,12019 10166,12015 10167,12012 10168,12008 10170,12005 10171,12002 10173,11999 10175,11996 10177,11993 10179,11990 10181,11987 10184,11985 10186,11982 10189,11980 10192,11978 10195,11975 10198,11974 10201,11972 10204,11970 10208,11969 10211,11968 10214,11967 10218,11966 10221,11965 10225,11964 10228,11964 10232,11964 10387,11963 10387,11964 10391,11964 10394,11964 10398,11965 10401,11965 10405,11966 10408,11967 10412,11968 10415,11970 10418,11971 10421,11973 10424,11975 10427,11977 10430,11979 10433,11981 10435,11984 10438,11986 10440,11989 10442,11992 10445,11995 10446,11998 10448,12001 10450,12004 10451,12008 10452,12011 10453,12014 10454,12018 10455,12021 10456,12025 10456,12028 10456,12032 10456,12033 Z M 10456,12102 L 10456,12102 Z M 10163,11963 L 10163,11963 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id95">
- <rect class="BoundingBox" stroke="none" fill="none" x="10163" y="12162" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10456,12232 L 10456,12232 10456,12236 10456,12239 10455,12243 10454,12246 10454,12250 10453,12253 10451,12257 10450,12260 10448,12263 10447,12267 10445,12270 10443,12273 10441,12275 10438,12278 10436,12281 10433,12283 10430,12286 10428,12288 10425,12290 10421,12292 10418,12293 10415,12295 10412,12296 10408,12298 10405,12299 10401,12299 10398,12300 10394,12301 10391,12301 10387,12301 10233,12301 10233,12301 10229,12301 10226,12301 10222,12300 10219,12299 10215,12299 10212,12298 10208,12296 10205,12295 10202,12293 10198,12292 10195,12290 10192,12288 10190,12286 10187,12283 10184,12281 10182,12278 10179,12275 10177,12273 10175,12270 10173,12266 10172,12263 10170,12260 10169,12257 10167,12253 10166,12250 10166,12246 10165,12243 10164,12239 10164,12236 10164,12232 10163,12232 10164,12232 10164,12228 10164,12225 10165,12221 10165,12218 10166,12214 10167,12211 10168,12207 10170,12204 10171,12201 10173,12198 10175,12195 10177,12192 10179,12189 10181,12186 10184,12184 10186,12181 10189,12179 10192,12177 10195,12174 10198,12173 10201,12171 10204,12169 10208,12168 10211,12167 10214,12166 10218,12165 10221,12164 10225,12163 10228,12163 10232,12163 10387,12162 10387,12163 10391,12163 10394,12163 10398,12164 10401,12164 10405,12165 10408,12166 10412,12167 10415,12169 10418,12170 10421,12172 10424,12174 10427,12176 10430,12178 10433,12180 10435,12183 10438,12185 10440,12188 10442,12191 10445,12194 10446,12197 10448,12200 10450,12203 10451,12207 10452,12210 10453,12213 10454,12217 10455,12220 10456,12224 10456,12227 10456,12231 10456,12232 Z M 10456,12301 L 10456,12301 Z M 10163,12162 L 10163,12162 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id96">
- <rect class="BoundingBox" stroke="none" fill="none" x="10163" y="12362" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10456,12432 L 10456,12432 10456,12436 10456,12439 10455,12443 10454,12446 10454,12450 10453,12453 10451,12457 10450,12460 10448,12463 10447,12467 10445,12470 10443,12473 10441,12475 10438,12478 10436,12481 10433,12483 10430,12486 10428,12488 10425,12490 10421,12492 10418,12493 10415,12495 10412,12496 10408,12498 10405,12499 10401,12499 10398,12500 10394,12501 10391,12501 10387,12501 10233,12501 10233,12501 10229,12501 10226,12501 10222,12500 10219,12499 10215,12499 10212,12498 10208,12496 10205,12495 10202,12493 10198,12492 10195,12490 10192,12488 10190,12486 10187,12483 10184,12481 10182,12478 10179,12475 10177,12473 10175,12470 10173,12466 10172,12463 10170,12460 10169,12457 10167,12453 10166,12450 10166,12446 10165,12443 10164,12439 10164,12436 10164,12432 10163,12432 10164,12432 10164,12428 10164,12425 10165,12421 10165,12418 10166,12414 10167,12411 10168,12407 10170,12404 10171,12401 10173,12398 10175,12395 10177,12392 10179,12389 10181,12386 10184,12384 10186,12381 10189,12379 10192,12377 10195,12374 10198,12373 10201,12371 10204,12369 10208,12368 10211,12367 10214,12366 10218,12365 10221,12364 10225,12363 10228,12363 10232,12363 10387,12362 10387,12363 10391,12363 10394,12363 10398,12364 10401,12364 10405,12365 10408,12366 10412,12367 10415,12369 10418,12370 10421,12372 10424,12374 10427,12376 10430,12378 10433,12380 10435,12383 10438,12385 10440,12388 10442,12391 10445,12394 10446,12397 10448,12400 10450,12403 10451,12407 10452,12410 10453,12413 10454,12417 10455,12420 10456,12424 10456,12427 10456,12431 10456,12432 Z M 10456,12501 L 10456,12501 Z M 10163,12362 L 10163,12362 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id97">
- <rect class="BoundingBox" stroke="none" fill="none" x="9814" y="11963" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10107,12033 L 10107,12033 10107,12037 10107,12040 10106,12044 10105,12047 10105,12051 10104,12054 10102,12058 10101,12061 10099,12064 10098,12068 10096,12071 10094,12074 10092,12076 10089,12079 10087,12082 10084,12084 10081,12087 10079,12089 10076,12091 10072,12093 10069,12094 10066,12096 10063,12097 10059,12099 10056,12100 10052,12100 10049,12101 10045,12102 10042,12102 10038,12102 9884,12102 9884,12102 9880,12102 9877,12102 9873,12101 9870,12100 9866,12100 9863,12099 9859,12097 9856,12096 9853,12094 9849,12093 9846,12091 9843,12089 9841,12087 9838,12084 9835,12082 9833,12079 9830,12076 9828,12074 9826,12071 9824,12067 9823,12064 9821,12061 9820,12058 9818,12054 9817,12051 9817,12047 9816,12044 9815,12040 9815,12037 9815,12033 9814,12033 9815,12033 9815,12029 9815,12026 9816,12022 9816,12019 9817,12015 9818,12012 9819,12008 9821,12005 9822,12002 9824,11999 9826,11996 9828,11993 9830,11990 9832,11987 9835,11985 9837,11982 9840,11980 9843,11978 9846,11975 9849,11974 9852,11972 9855,11970 9859,11969 9862,11968 9865,11967 9869,11966 9872,11965 9876,11964 9879,11964 9883,11964 10038,11963 10038,11964 10042,11964 10045,11964 10049,11965 10052,11965 10056,11966 10059,11967 10063,11968 10066,11970 10069,11971 10072,11973 10075,11975 10078,11977 10081,11979 10084,11981 10086,11984 10089,11986 10091,11989 10093,11992 10096,11995 10097,11998 10099,12001 10101,12004 10102,12008 10103,12011 10104,12014 10105,12018 10106,12021 10107,12025 10107,12028 10107,12032 10107,12033 Z M 10107,12102 L 10107,12102 Z M 9814,11963 L 9814,11963 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id98">
- <rect class="BoundingBox" stroke="none" fill="none" x="9814" y="12162" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10107,12232 L 10107,12232 10107,12236 10107,12239 10106,12243 10105,12246 10105,12250 10104,12253 10102,12257 10101,12260 10099,12263 10098,12267 10096,12270 10094,12273 10092,12275 10089,12278 10087,12281 10084,12283 10081,12286 10079,12288 10076,12290 10072,12292 10069,12293 10066,12295 10063,12296 10059,12298 10056,12299 10052,12299 10049,12300 10045,12301 10042,12301 10038,12301 9884,12301 9884,12301 9880,12301 9877,12301 9873,12300 9870,12299 9866,12299 9863,12298 9859,12296 9856,12295 9853,12293 9849,12292 9846,12290 9843,12288 9841,12286 9838,12283 9835,12281 9833,12278 9830,12275 9828,12273 9826,12270 9824,12266 9823,12263 9821,12260 9820,12257 9818,12253 9817,12250 9817,12246 9816,12243 9815,12239 9815,12236 9815,12232 9814,12232 9815,12232 9815,12228 9815,12225 9816,12221 9816,12218 9817,12214 9818,12211 9819,12207 9821,12204 9822,12201 9824,12198 9826,12195 9828,12192 9830,12189 9832,12186 9835,12184 9837,12181 9840,12179 9843,12177 9846,12174 9849,12173 9852,12171 9855,12169 9859,12168 9862,12167 9865,12166 9869,12165 9872,12164 9876,12163 9879,12163 9883,12163 10038,12162 10038,12163 10042,12163 10045,12163 10049,12164 10052,12164 10056,12165 10059,12166 10063,12167 10066,12169 10069,12170 10072,12172 10075,12174 10078,12176 10081,12178 10084,12180 10086,12183 10089,12185 10091,12188 10093,12191 10096,12194 10097,12197 10099,12200 10101,12203 10102,12207 10103,12210 10104,12213 10105,12217 10106,12220 10107,12224 10107,12227 10107,12231 10107,12232 Z M 10107,12301 L 10107,12301 Z M 9814,12162 L 9814,12162 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id99">
- <rect class="BoundingBox" stroke="none" fill="none" x="9814" y="12362" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10107,12432 L 10107,12432 10107,12436 10107,12439 10106,12443 10105,12446 10105,12450 10104,12453 10102,12457 10101,12460 10099,12463 10098,12467 10096,12470 10094,12473 10092,12475 10089,12478 10087,12481 10084,12483 10081,12486 10079,12488 10076,12490 10072,12492 10069,12493 10066,12495 10063,12496 10059,12498 10056,12499 10052,12499 10049,12500 10045,12501 10042,12501 10038,12501 9884,12501 9884,12501 9880,12501 9877,12501 9873,12500 9870,12499 9866,12499 9863,12498 9859,12496 9856,12495 9853,12493 9849,12492 9846,12490 9843,12488 9841,12486 9838,12483 9835,12481 9833,12478 9830,12475 9828,12473 9826,12470 9824,12466 9823,12463 9821,12460 9820,12457 9818,12453 9817,12450 9817,12446 9816,12443 9815,12439 9815,12436 9815,12432 9814,12432 9815,12432 9815,12428 9815,12425 9816,12421 9816,12418 9817,12414 9818,12411 9819,12407 9821,12404 9822,12401 9824,12398 9826,12395 9828,12392 9830,12389 9832,12386 9835,12384 9837,12381 9840,12379 9843,12377 9846,12374 9849,12373 9852,12371 9855,12369 9859,12368 9862,12367 9865,12366 9869,12365 9872,12364 9876,12363 9879,12363 9883,12363 10038,12362 10038,12363 10042,12363 10045,12363 10049,12364 10052,12364 10056,12365 10059,12366 10063,12367 10066,12369 10069,12370 10072,12372 10075,12374 10078,12376 10081,12378 10084,12380 10086,12383 10089,12385 10091,12388 10093,12391 10096,12394 10097,12397 10099,12400 10101,12403 10102,12407 10103,12410 10104,12413 10105,12417 10106,12420 10107,12424 10107,12427 10107,12431 10107,12432 Z M 10107,12501 L 10107,12501 Z M 9814,12362 L 9814,12362 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id100">
- <rect class="BoundingBox" stroke="none" fill="none" x="10494" y="11965" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10787,12035 L 10787,12035 10787,12039 10787,12042 10786,12046 10785,12049 10785,12053 10784,12056 10782,12060 10781,12063 10779,12066 10778,12070 10776,12073 10774,12076 10772,12078 10769,12081 10767,12084 10764,12086 10761,12089 10759,12091 10756,12093 10752,12095 10749,12096 10746,12098 10743,12099 10739,12101 10736,12102 10732,12102 10729,12103 10725,12104 10722,12104 10718,12104 10564,12104 10564,12104 10560,12104 10557,12104 10553,12103 10550,12102 10546,12102 10543,12101 10539,12099 10536,12098 10533,12096 10529,12095 10526,12093 10523,12091 10521,12089 10518,12086 10515,12084 10513,12081 10510,12078 10508,12076 10506,12073 10504,12069 10503,12066 10501,12063 10500,12060 10498,12056 10497,12053 10497,12049 10496,12046 10495,12042 10495,12039 10495,12035 10494,12035 10495,12035 10495,12031 10495,12028 10496,12024 10496,12021 10497,12017 10498,12014 10499,12010 10501,12007 10502,12004 10504,12001 10506,11998 10508,11995 10510,11992 10512,11989 10515,11987 10517,11984 10520,11982 10523,11980 10526,11977 10529,11976 10532,11974 10535,11972 10539,11971 10542,11970 10545,11969 10549,11968 10552,11967 10556,11966 10559,11966 10563,11966 10718,11965 10718,11966 10722,11966 10725,11966 10729,11967 10732,11967 10736,11968 10739,11969 10743,11970 10746,11972 10749,11973 10752,11975 10755,11977 10758,11979 10761,11981 10764,11983 10766,11986 10769,11988 10771,11991 10773,11994 10776,11997 10777,12000 10779,12003 10781,12006 10782,12010 10783,12013 10784,12016 10785,12020 10786,12023 10787,12027 10787,12030 10787,12034 10787,12035 Z M 10787,12104 L 10787,12104 Z M 10494,11965 L 10494,11965 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id101">
- <rect class="BoundingBox" stroke="none" fill="none" x="10494" y="12165" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10787,12235 L 10787,12235 10787,12239 10787,12242 10786,12246 10785,12249 10785,12253 10784,12256 10782,12260 10781,12263 10779,12266 10778,12270 10776,12273 10774,12276 10772,12278 10769,12281 10767,12284 10764,12286 10761,12289 10759,12291 10756,12293 10752,12295 10749,12296 10746,12298 10743,12299 10739,12301 10736,12302 10732,12302 10729,12303 10725,12304 10722,12304 10718,12304 10564,12304 10564,12304 10560,12304 10557,12304 10553,12303 10550,12302 10546,12302 10543,12301 10539,12299 10536,12298 10533,12296 10529,12295 10526,12293 10523,12291 10521,12289 10518,12286 10515,12284 10513,12281 10510,12278 10508,12276 10506,12273 10504,12269 10503,12266 10501,12263 10500,12260 10498,12256 10497,12253 10497,12249 10496,12246 10495,12242 10495,12239 10495,12235 10494,12235 10495,12235 10495,12231 10495,12228 10496,12224 10496,12221 10497,12217 10498,12214 10499,12210 10501,12207 10502,12204 10504,12201 10506,12198 10508,12195 10510,12192 10512,12189 10515,12187 10517,12184 10520,12182 10523,12180 10526,12177 10529,12176 10532,12174 10535,12172 10539,12171 10542,12170 10545,12169 10549,12168 10552,12167 10556,12166 10559,12166 10563,12166 10718,12165 10718,12166 10722,12166 10725,12166 10729,12167 10732,12167 10736,12168 10739,12169 10743,12170 10746,12172 10749,12173 10752,12175 10755,12177 10758,12179 10761,12181 10764,12183 10766,12186 10769,12188 10771,12191 10773,12194 10776,12197 10777,12200 10779,12203 10781,12206 10782,12210 10783,12213 10784,12216 10785,12220 10786,12223 10787,12227 10787,12230 10787,12234 10787,12235 Z M 10787,12304 L 10787,12304 Z M 10494,12165 L 10494,12165 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id102">
- <rect class="BoundingBox" stroke="none" fill="none" x="10494" y="12365" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10787,12435 L 10787,12435 10787,12439 10787,12442 10786,12446 10785,12449 10785,12453 10784,12456 10782,12460 10781,12463 10779,12466 10778,12470 10776,12473 10774,12476 10772,12478 10769,12481 10767,12484 10764,12486 10761,12489 10759,12491 10756,12493 10752,12495 10749,12496 10746,12498 10743,12499 10739,12501 10736,12502 10732,12502 10729,12503 10725,12504 10722,12504 10718,12504 10564,12504 10564,12504 10560,12504 10557,12504 10553,12503 10550,12502 10546,12502 10543,12501 10539,12499 10536,12498 10533,12496 10529,12495 10526,12493 10523,12491 10521,12489 10518,12486 10515,12484 10513,12481 10510,12478 10508,12476 10506,12473 10504,12469 10503,12466 10501,12463 10500,12460 10498,12456 10497,12453 10497,12449 10496,12446 10495,12442 10495,12439 10495,12435 10494,12435 10495,12435 10495,12431 10495,12428 10496,12424 10496,12421 10497,12417 10498,12414 10499,12410 10501,12407 10502,12404 10504,12401 10506,12398 10508,12395 10510,12392 10512,12389 10515,12387 10517,12384 10520,12382 10523,12380 10526,12377 10529,12376 10532,12374 10535,12372 10539,12371 10542,12370 10545,12369 10549,12368 10552,12367 10556,12366 10559,12366 10563,12366 10718,12365 10718,12366 10722,12366 10725,12366 10729,12367 10732,12367 10736,12368 10739,12369 10743,12370 10746,12372 10749,12373 10752,12375 10755,12377 10758,12379 10761,12381 10764,12383 10766,12386 10769,12388 10771,12391 10773,12394 10776,12397 10777,12400 10779,12403 10781,12406 10782,12410 10783,12413 10784,12416 10785,12420 10786,12423 10787,12427 10787,12430 10787,12434 10787,12435 Z M 10787,12504 L 10787,12504 Z M 10494,12365 L 10494,12365 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id103">
- <rect class="BoundingBox" stroke="none" fill="none" x="5191" y="9646" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5441" y="10042"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5441" y="10389"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id104">
- <rect class="BoundingBox" stroke="none" fill="none" x="8592" y="10662" width="891" height="1019"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 8592,11170 L 8851,10662 8851,10916 9222,10916 9222,10662 9482,11170 9222,11679 9222,11424 8851,11424 8851,11679 8592,11170 Z M 8592,10662 L 8592,10662 Z M 9482,11679 L 9482,11679 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id105">
- <rect class="BoundingBox" stroke="none" fill="none" x="8747" y="10942" width="609" height="382"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 9051,11323 L 8747,11323 8747,10942 9355,10942 9355,11323 9051,11323 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8806" y="11246"><tspan fill="rgb(255,255,255)" stroke="none">QPI</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id106">
- <rect class="BoundingBox" stroke="none" fill="none" x="1193" y="1920" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 4813,5116 L 1211,5116 1211,1938 8415,1938 8415,5116 4813,5116 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4813,5116 L 1211,5116 1211,1938 8415,1938 8415,5116 4813,5116 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1311" y="2326"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1311" y="2791"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id107">
- <rect class="BoundingBox" stroke="none" fill="none" x="1903" y="5020" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 2356,5463 L 1912,5463 1912,5029 2799,5029 2799,5463 2356,5463 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 2356,5463 L 1912,5463 1912,5029 2799,5029 2799,5463 2356,5463 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2081" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id108">
- <rect class="BoundingBox" stroke="none" fill="none" x="2016" y="5506" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2034,5524 L 2039,6224"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2034,5524 L 2034,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2039,6224 L 2039,6224 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id109">
- <rect class="BoundingBox" stroke="none" fill="none" x="1937" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2021,5523 L 1946,5523 1946,5424 2095,5424 2095,5523 2021,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2021,5523 L 1946,5523 1946,5424 2095,5424 2095,5523 2021,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id110">
- <rect class="BoundingBox" stroke="none" fill="none" x="2581" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2665,5521 L 2590,5521 2590,5422 2739,5422 2739,5521 2665,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2665,5521 L 2590,5521 2590,5422 2739,5422 2739,5521 2665,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id111">
- <rect class="BoundingBox" stroke="none" fill="none" x="2645" y="5504" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2665,5522 L 2663,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2665,5522 L 2665,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2663,6270 L 2663,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id112">
- <rect class="BoundingBox" stroke="none" fill="none" x="2221" y="5508" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2241,5526 L 2239,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2241,5526 L 2241,5526 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2239,6272 L 2239,6272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id113">
- <rect class="BoundingBox" stroke="none" fill="none" x="2157" y="5417" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2241,5525 L 2166,5525 2166,5426 2315,5426 2315,5525 2241,5525 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2241,5525 L 2166,5525 2166,5426 2315,5426 2315,5525 2241,5525 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id114">
- <rect class="BoundingBox" stroke="none" fill="none" x="2368" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2452,5523 L 2377,5523 2377,5424 2526,5424 2526,5523 2452,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2452,5523 L 2377,5523 2377,5424 2526,5424 2526,5523 2452,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id115">
- <rect class="BoundingBox" stroke="none" fill="none" x="2446" y="5506" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2464,5524 L 2470,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2464,5524 L 2464,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2470,6272 L 2470,6272 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id116">
- <rect class="BoundingBox" stroke="none" fill="none" x="1895" y="3088" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 3313,4272 L 1913,4272 1913,3106 4713,3106 4713,4272 3313,4272 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3313,4272 L 1913,4272 1913,3106 4713,3106 4713,4272 3313,4272 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2774" y="3410"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2628" y="3763"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon </tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2632" y="4116"><tspan fill="rgb(255,255,255)" stroke="none">E5-2699v3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id117">
- <rect class="BoundingBox" stroke="none" fill="none" x="2867" y="5018" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 3320,5461 L 2876,5461 2876,5027 3763,5027 3763,5461 3320,5461 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 3320,5461 L 2876,5461 2876,5027 3763,5027 3763,5461 3320,5461 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3045" y="5325"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id118">
- <rect class="BoundingBox" stroke="none" fill="none" x="2980" y="5504" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2998,5522 L 3003,6268"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2998,5522 L 2998,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3003,6268 L 3003,6268 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id119">
- <rect class="BoundingBox" stroke="none" fill="none" x="2901" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2985,5521 L 2910,5521 2910,5422 3059,5422 3059,5521 2985,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2985,5521 L 2910,5521 2910,5422 3059,5422 3059,5521 2985,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id120">
- <rect class="BoundingBox" stroke="none" fill="none" x="3545" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3629,5519 L 3554,5519 3554,5420 3703,5420 3703,5519 3629,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3629,5519 L 3554,5519 3554,5420 3703,5420 3703,5519 3629,5519 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id121">
- <rect class="BoundingBox" stroke="none" fill="none" x="3609" y="5502" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3629,5520 L 3627,6268"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3629,5520 L 3629,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3627,6268 L 3627,6268 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id122">
- <rect class="BoundingBox" stroke="none" fill="none" x="3185" y="5506" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3205,5524 L 3203,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3205,5524 L 3205,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3203,6270 L 3203,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id123">
- <rect class="BoundingBox" stroke="none" fill="none" x="3122" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3206,5523 L 3131,5523 3131,5424 3280,5424 3280,5523 3206,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3206,5523 L 3131,5523 3131,5424 3280,5424 3280,5523 3206,5523 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id124">
- <rect class="BoundingBox" stroke="none" fill="none" x="3333" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3417,5521 L 3342,5521 3342,5422 3491,5422 3491,5521 3417,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3417,5521 L 3342,5521 3342,5422 3491,5422 3491,5521 3417,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id125">
- <rect class="BoundingBox" stroke="none" fill="none" x="3411" y="5504" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3429,5522 L 3435,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3429,5522 L 3429,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3435,6270 L 3435,6270 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id126">
- <rect class="BoundingBox" stroke="none" fill="none" x="3816" y="5016" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 4269,5459 L 3825,5459 3825,5025 4712,5025 4712,5459 4269,5459 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 4269,5459 L 3825,5459 3825,5025 4712,5025 4712,5459 4269,5459 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3994" y="5323"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id127">
- <rect class="BoundingBox" stroke="none" fill="none" x="3929" y="5502" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3947,5520 L 3952,6266"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3947,5520 L 3947,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3952,6266 L 3952,6266 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id128">
- <rect class="BoundingBox" stroke="none" fill="none" x="3850" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3934,5519 L 3859,5519 3859,5420 4008,5420 4008,5519 3934,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3934,5519 L 3859,5519 3859,5420 4008,5420 4008,5519 3934,5519 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id129">
- <rect class="BoundingBox" stroke="none" fill="none" x="4494" y="5408" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4578,5516 L 4503,5516 4503,5417 4652,5417 4652,5516 4578,5516 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4578,5516 L 4503,5516 4503,5417 4652,5417 4652,5516 4578,5516 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id130">
- <rect class="BoundingBox" stroke="none" fill="none" x="4558" y="5499" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4578,5517 L 4576,6217"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4578,5517 L 4578,5517 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4576,6217 L 4576,6217 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id131">
- <rect class="BoundingBox" stroke="none" fill="none" x="4134" y="5503" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4154,5521 L 4152,6267"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4154,5521 L 4154,5521 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4152,6267 L 4152,6267 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id132">
- <rect class="BoundingBox" stroke="none" fill="none" x="4071" y="5412" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4155,5520 L 4080,5520 4080,5421 4229,5421 4229,5520 4155,5520 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4155,5520 L 4080,5520 4080,5421 4229,5421 4229,5520 4155,5520 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id133">
- <rect class="BoundingBox" stroke="none" fill="none" x="4282" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4366,5519 L 4291,5519 4291,5420 4440,5420 4440,5519 4366,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4366,5519 L 4291,5519 4291,5420 4440,5420 4440,5519 4366,5519 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id134">
- <rect class="BoundingBox" stroke="none" fill="none" x="4360" y="5502" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4378,5520 L 4384,6268"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4378,5520 L 4378,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4384,6268 L 4384,6268 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id135">
- <rect class="BoundingBox" stroke="none" fill="none" x="2109" y="4291" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 2386,5024 L 2109,4863 2247,4863 2247,4453 2109,4453 2386,4291 2664,4453 2525,4453 2525,4863 2664,4863 2386,5024 Z M 2109,5024 L 2109,5024 Z M 2664,4291 L 2664,4291 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id136">
- <rect class="BoundingBox" stroke="none" fill="none" x="2147" y="4481" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 2385,4824 L 2147,4824 2147,4481 2622,4481 2622,4824 2385,4824 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2234" y="4766"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id137">
- <rect class="BoundingBox" stroke="none" fill="none" x="3086" y="4286" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 3363,5019 L 3086,4858 3224,4858 3224,4448 3086,4448 3363,4286 3641,4448 3502,4448 3502,4858 3641,4858 3363,5019 Z M 3086,5019 L 3086,5019 Z M 3641,4286 L 3641,4286 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id138">
- <rect class="BoundingBox" stroke="none" fill="none" x="3125" y="4476" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 3363,4819 L 3125,4819 3125,4476 3600,4476 3600,4819 3363,4819 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3212" y="4761"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id139">
- <rect class="BoundingBox" stroke="none" fill="none" x="4039" y="4277" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 4316,5010 L 4039,4849 4177,4849 4177,4439 4039,4439 4316,4277 4594,4439 4455,4439 4455,4849 4594,4849 4316,5010 Z M 4039,5010 L 4039,5010 Z M 4594,4277 L 4594,4277 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id140">
- <rect class="BoundingBox" stroke="none" fill="none" x="4077" y="4467" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 4315,4810 L 4077,4810 4077,4467 4552,4467 4552,4810 4315,4810 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4164" y="4752"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id141">
- <rect class="BoundingBox" stroke="none" fill="none" x="4746" y="2289" width="1147" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4996" y="2696"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id142">
- <rect class="BoundingBox" stroke="none" fill="none" x="5215" y="3073" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 6633,4257 L 5233,4257 5233,3091 8033,3091 8033,4257 6633,4257 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 6633,4257 L 5233,4257 5233,3091 8033,3091 8033,4257 6633,4257 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6094" y="3395"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5984" y="3748"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5952" y="4101"><tspan fill="rgb(255,255,255)" stroke="none">E5-2699v3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id143">
- <rect class="BoundingBox" stroke="none" fill="none" x="5217" y="5015" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 5670,5458 L 5226,5458 5226,5024 6113,5024 6113,5458 5670,5458 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 5670,5458 L 5226,5458 5226,5024 6113,5024 6113,5458 5670,5458 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5395" y="5322"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id144">
- <rect class="BoundingBox" stroke="none" fill="none" x="5330" y="5500" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5348,5518 L 5353,6218"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5348,5518 L 5348,5518 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5353,6218 L 5353,6218 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id145">
- <rect class="BoundingBox" stroke="none" fill="none" x="5251" y="5409" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5335,5517 L 5260,5517 5260,5418 5409,5418 5409,5517 5335,5517 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5335,5517 L 5260,5517 5260,5418 5409,5418 5409,5517 5335,5517 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id146">
- <rect class="BoundingBox" stroke="none" fill="none" x="5895" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5979,5515 L 5904,5515 5904,5416 6053,5416 6053,5515 5979,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5979,5515 L 5904,5515 5904,5416 6053,5416 6053,5515 5979,5515 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id147">
- <rect class="BoundingBox" stroke="none" fill="none" x="5959" y="5498" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5979,5516 L 5977,6264"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5979,5516 L 5979,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5977,6264 L 5977,6264 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id148">
- <rect class="BoundingBox" stroke="none" fill="none" x="5535" y="5502" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5555,5520 L 5553,6266"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5555,5520 L 5555,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5553,6266 L 5553,6266 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id149">
- <rect class="BoundingBox" stroke="none" fill="none" x="5472" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5556,5519 L 5481,5519 5481,5420 5630,5420 5630,5519 5556,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5556,5519 L 5481,5519 5481,5420 5630,5420 5630,5519 5556,5519 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id150">
- <rect class="BoundingBox" stroke="none" fill="none" x="5683" y="5409" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5767,5517 L 5692,5517 5692,5418 5841,5418 5841,5517 5767,5517 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5767,5517 L 5692,5517 5692,5418 5841,5418 5841,5517 5767,5517 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id151">
- <rect class="BoundingBox" stroke="none" fill="none" x="5761" y="5500" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5779,5518 L 5785,6266"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5779,5518 L 5779,5518 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5785,6266 L 5785,6266 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id152">
- <rect class="BoundingBox" stroke="none" fill="none" x="6182" y="5012" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 6635,5455 L 6191,5455 6191,5021 7078,5021 7078,5455 6635,5455 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6635,5455 L 6191,5455 6191,5021 7078,5021 7078,5455 6635,5455 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6360" y="5319"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id153">
- <rect class="BoundingBox" stroke="none" fill="none" x="6295" y="5498" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6313,5516 L 6318,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6313,5516 L 6313,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6318,6262 L 6318,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id154">
- <rect class="BoundingBox" stroke="none" fill="none" x="6216" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6300,5515 L 6225,5515 6225,5416 6374,5416 6374,5515 6300,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6300,5515 L 6225,5515 6225,5416 6374,5416 6374,5515 6300,5515 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id155">
- <rect class="BoundingBox" stroke="none" fill="none" x="6860" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6944,5513 L 6869,5513 6869,5414 7018,5414 7018,5513 6944,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6944,5513 L 6869,5513 6869,5414 7018,5414 7018,5513 6944,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id156">
- <rect class="BoundingBox" stroke="none" fill="none" x="6924" y="5496" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6944,5514 L 6942,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6944,5514 L 6944,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6942,6262 L 6942,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id157">
- <rect class="BoundingBox" stroke="none" fill="none" x="6500" y="5500" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6520,5518 L 6518,6264"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6520,5518 L 6520,5518 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6518,6264 L 6518,6264 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id158">
- <rect class="BoundingBox" stroke="none" fill="none" x="6436" y="5409" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6520,5517 L 6445,5517 6445,5418 6594,5418 6594,5517 6520,5517 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6520,5517 L 6445,5517 6445,5418 6594,5418 6594,5517 6520,5517 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id159">
- <rect class="BoundingBox" stroke="none" fill="none" x="6648" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6732,5515 L 6657,5515 6657,5416 6806,5416 6806,5515 6732,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6732,5515 L 6657,5515 6657,5416 6806,5416 6806,5515 6732,5515 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id160">
- <rect class="BoundingBox" stroke="none" fill="none" x="6726" y="5498" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6744,5516 L 6750,6264"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6744,5516 L 6744,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6750,6264 L 6750,6264 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id161">
- <rect class="BoundingBox" stroke="none" fill="none" x="7131" y="5010" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 7584,5453 L 7140,5453 7140,5019 8027,5019 8027,5453 7584,5453 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7584,5453 L 7140,5453 7140,5019 8027,5019 8027,5453 7584,5453 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7309" y="5317"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id162">
- <rect class="BoundingBox" stroke="none" fill="none" x="7244" y="5496" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7262,5514 L 7267,6260"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7262,5514 L 7262,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7267,6260 L 7267,6260 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id163">
- <rect class="BoundingBox" stroke="none" fill="none" x="7165" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7249,5513 L 7174,5513 7174,5414 7323,5414 7323,5513 7249,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7249,5513 L 7174,5513 7174,5414 7323,5414 7323,5513 7249,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id164">
- <rect class="BoundingBox" stroke="none" fill="none" x="7808" y="5403" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7892,5511 L 7817,5511 7817,5412 7966,5412 7966,5511 7892,5511 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7892,5511 L 7817,5511 7817,5412 7966,5412 7966,5511 7892,5511 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id165">
- <rect class="BoundingBox" stroke="none" fill="none" x="7873" y="5494" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7893,5512 L 7891,6212"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7893,5512 L 7893,5512 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7891,6212 L 7891,6212 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id166">
- <rect class="BoundingBox" stroke="none" fill="none" x="7449" y="5498" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7469,5516 L 7467,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7469,5516 L 7469,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7467,6262 L 7467,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id167">
- <rect class="BoundingBox" stroke="none" fill="none" x="7385" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7469,5515 L 7394,5515 7394,5416 7543,5416 7543,5515 7469,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7469,5515 L 7394,5515 7394,5416 7543,5416 7543,5515 7469,5515 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id168">
- <rect class="BoundingBox" stroke="none" fill="none" x="7596" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7680,5513 L 7605,5513 7605,5414 7754,5414 7754,5513 7680,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7680,5513 L 7605,5513 7605,5414 7754,5414 7754,5513 7680,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id169">
- <rect class="BoundingBox" stroke="none" fill="none" x="7674" y="5496" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7692,5514 L 7698,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7692,5514 L 7692,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7698,6262 L 7698,6262 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id170">
- <rect class="BoundingBox" stroke="none" fill="none" x="5423" y="4285" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 5700,5018 L 5423,4857 5561,4857 5561,4447 5423,4447 5700,4285 5978,4447 5839,4447 5839,4857 5978,4857 5700,5018 Z M 5423,5018 L 5423,5018 Z M 5978,4285 L 5978,4285 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id171">
- <rect class="BoundingBox" stroke="none" fill="none" x="5462" y="4475" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 5700,4818 L 5462,4818 5462,4475 5937,4475 5937,4818 5700,4818 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5549" y="4760"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id172">
- <rect class="BoundingBox" stroke="none" fill="none" x="6401" y="4281" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 6678,5014 L 6401,4853 6539,4853 6539,4443 6401,4443 6678,4281 6956,4443 6817,4443 6817,4853 6956,4853 6678,5014 Z M 6401,5014 L 6401,5014 Z M 6956,4281 L 6956,4281 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id173">
- <rect class="BoundingBox" stroke="none" fill="none" x="6439" y="4471" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 6677,4814 L 6439,4814 6439,4471 6914,4471 6914,4814 6677,4814 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6526" y="4756"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id174">
- <rect class="BoundingBox" stroke="none" fill="none" x="7353" y="4272" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 7630,5005 L 7353,4844 7491,4844 7491,4434 7353,4434 7630,4272 7908,4434 7769,4434 7769,4844 7908,4844 7630,5005 Z M 7353,5005 L 7353,5005 Z M 7908,4272 L 7908,4272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id175">
- <rect class="BoundingBox" stroke="none" fill="none" x="7392" y="4462" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 7630,4805 L 7392,4805 7392,4462 7867,4462 7867,4805 7630,4805 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7479" y="4747"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id176">
- <rect class="BoundingBox" stroke="none" fill="none" x="4512" y="3208" width="892" height="1018"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 4512,3716 L 4771,3208 4771,3462 5142,3462 5142,3208 5402,3716 5142,4225 5142,3970 4771,3970 4771,4225 4512,3716 Z M 4512,3208 L 4512,3208 Z M 5402,4225 L 5402,4225 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id177">
- <rect class="BoundingBox" stroke="none" fill="none" x="1981" y="6147" width="2666" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 4593,6200 L 4593,6200 4593,6207 4593,6213 4592,6220 4592,6226 4591,6232 4590,6239 4590,6245 4588,6251 4587,6257 4586,6263 4585,6268 4583,6274 4581,6279 4580,6284 4578,6288 4576,6293 4574,6297 4572,6301 4570,6305 4567,6308 4565,6311 4563,6314 4560,6317 4558,6319 4555,6321 4553,6322 4550,6323 4547,6324 4545,6325 4542,6325 2086,6327 2086,6327 2083,6327 2081,6326 2078,6325 2075,6324 2073,6323 2070,6321 2068,6319 2065,6316 2063,6313 2061,6310 2058,6307 2056,6303 2054,6299 2052,6295 2050,6290 2048,6285 2047,6280 2045,6275 2043,6270 2042,6264 2041,6258 2040,6252 2038,6246 2038,6240 2037,6234 2036,6227 2036,6221 2035,6214 2035,6208 2035,6201"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 4593,6200 L 4593,6200 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2034,6327 L 2034,6327 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id178">
- <rect class="BoundingBox" stroke="none" fill="none" x="5300" y="6138" width="2666" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7912,6192 L 7912,6192 7912,6199 7912,6205 7911,6212 7911,6218 7910,6224 7909,6231 7909,6237 7907,6243 7906,6249 7905,6255 7904,6260 7902,6266 7900,6271 7899,6276 7897,6280 7895,6285 7893,6289 7891,6293 7889,6297 7886,6300 7884,6303 7882,6306 7879,6309 7877,6311 7874,6313 7872,6314 7869,6315 7866,6316 7864,6317 7861,6317 5405,6319 5405,6319 5402,6319 5400,6318 5397,6317 5394,6316 5392,6315 5389,6313 5387,6311 5384,6308 5382,6305 5380,6302 5377,6299 5375,6295 5373,6291 5371,6287 5369,6282 5367,6277 5366,6272 5364,6267 5362,6262 5361,6256 5360,6250 5359,6244 5357,6238 5357,6232 5356,6226 5355,6219 5355,6213 5354,6206 5354,6200 5354,6193"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7912,6192 L 7912,6192 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 5353,6319 L 5353,6319 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id179">
- <rect class="BoundingBox" stroke="none" fill="none" x="2208" y="1254" width="5233" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2458" y="1802"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 1 (SUT1)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id180">
- <rect class="BoundingBox" stroke="none" fill="none" x="4077" y="2334" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4370,2404 L 4370,2404 4370,2408 4370,2411 4369,2415 4368,2418 4368,2422 4367,2425 4365,2429 4364,2432 4362,2435 4361,2439 4359,2442 4357,2445 4355,2447 4352,2450 4350,2453 4347,2455 4344,2458 4342,2460 4339,2462 4335,2464 4332,2465 4329,2467 4326,2468 4322,2470 4319,2471 4315,2471 4312,2472 4308,2473 4305,2473 4301,2473 4147,2473 4147,2473 4143,2473 4140,2473 4136,2472 4133,2471 4129,2471 4126,2470 4122,2468 4119,2467 4116,2465 4112,2464 4109,2462 4106,2460 4104,2458 4101,2455 4098,2453 4096,2450 4093,2447 4091,2445 4089,2442 4087,2438 4086,2435 4084,2432 4083,2429 4081,2425 4080,2422 4080,2418 4079,2415 4078,2411 4078,2408 4078,2404 4077,2404 4078,2404 4078,2400 4078,2397 4079,2393 4079,2390 4080,2386 4081,2383 4082,2379 4084,2376 4085,2373 4087,2370 4089,2367 4091,2364 4093,2361 4095,2358 4098,2356 4100,2353 4103,2351 4106,2349 4109,2346 4112,2345 4115,2343 4118,2341 4122,2340 4125,2339 4128,2338 4132,2337 4135,2336 4139,2335 4142,2335 4146,2335 4301,2334 4301,2335 4305,2335 4308,2335 4312,2336 4315,2336 4319,2337 4322,2338 4326,2339 4329,2341 4332,2342 4335,2344 4338,2346 4341,2348 4344,2350 4347,2352 4349,2355 4352,2357 4354,2360 4356,2363 4359,2366 4360,2369 4362,2372 4364,2375 4365,2379 4366,2382 4367,2385 4368,2389 4369,2392 4370,2396 4370,2399 4370,2403 4370,2404 Z M 4370,2473 L 4370,2473 Z M 4077,2334 L 4077,2334 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id181">
- <rect class="BoundingBox" stroke="none" fill="none" x="4077" y="2534" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4370,2604 L 4370,2604 4370,2608 4370,2611 4369,2615 4368,2618 4368,2622 4367,2625 4365,2629 4364,2632 4362,2635 4361,2639 4359,2642 4357,2645 4355,2647 4352,2650 4350,2653 4347,2655 4344,2658 4342,2660 4339,2662 4335,2664 4332,2665 4329,2667 4326,2668 4322,2670 4319,2671 4315,2671 4312,2672 4308,2673 4305,2673 4301,2673 4147,2673 4147,2673 4143,2673 4140,2673 4136,2672 4133,2671 4129,2671 4126,2670 4122,2668 4119,2667 4116,2665 4112,2664 4109,2662 4106,2660 4104,2658 4101,2655 4098,2653 4096,2650 4093,2647 4091,2645 4089,2642 4087,2638 4086,2635 4084,2632 4083,2629 4081,2625 4080,2622 4080,2618 4079,2615 4078,2611 4078,2608 4078,2604 4077,2604 4078,2604 4078,2600 4078,2597 4079,2593 4079,2590 4080,2586 4081,2583 4082,2579 4084,2576 4085,2573 4087,2570 4089,2567 4091,2564 4093,2561 4095,2558 4098,2556 4100,2553 4103,2551 4106,2549 4109,2546 4112,2545 4115,2543 4118,2541 4122,2540 4125,2539 4128,2538 4132,2537 4135,2536 4139,2535 4142,2535 4146,2535 4301,2534 4301,2535 4305,2535 4308,2535 4312,2536 4315,2536 4319,2537 4322,2538 4326,2539 4329,2541 4332,2542 4335,2544 4338,2546 4341,2548 4344,2550 4347,2552 4349,2555 4352,2557 4354,2560 4356,2563 4359,2566 4360,2569 4362,2572 4364,2575 4365,2579 4366,2582 4367,2585 4368,2589 4369,2592 4370,2596 4370,2599 4370,2603 4370,2604 Z M 4370,2673 L 4370,2673 Z M 4077,2534 L 4077,2534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id182">
- <rect class="BoundingBox" stroke="none" fill="none" x="4077" y="2734" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4370,2804 L 4370,2804 4370,2808 4370,2811 4369,2815 4368,2818 4368,2822 4367,2825 4365,2829 4364,2832 4362,2835 4361,2839 4359,2842 4357,2845 4355,2847 4352,2850 4350,2853 4347,2855 4344,2858 4342,2860 4339,2862 4335,2864 4332,2865 4329,2867 4326,2868 4322,2870 4319,2871 4315,2871 4312,2872 4308,2873 4305,2873 4301,2873 4147,2873 4147,2873 4143,2873 4140,2873 4136,2872 4133,2871 4129,2871 4126,2870 4122,2868 4119,2867 4116,2865 4112,2864 4109,2862 4106,2860 4104,2858 4101,2855 4098,2853 4096,2850 4093,2847 4091,2845 4089,2842 4087,2838 4086,2835 4084,2832 4083,2829 4081,2825 4080,2822 4080,2818 4079,2815 4078,2811 4078,2808 4078,2804 4077,2804 4078,2804 4078,2800 4078,2797 4079,2793 4079,2790 4080,2786 4081,2783 4082,2779 4084,2776 4085,2773 4087,2770 4089,2767 4091,2764 4093,2761 4095,2758 4098,2756 4100,2753 4103,2751 4106,2749 4109,2746 4112,2745 4115,2743 4118,2741 4122,2740 4125,2739 4128,2738 4132,2737 4135,2736 4139,2735 4142,2735 4146,2735 4301,2734 4301,2735 4305,2735 4308,2735 4312,2736 4315,2736 4319,2737 4322,2738 4326,2739 4329,2741 4332,2742 4335,2744 4338,2746 4341,2748 4344,2750 4347,2752 4349,2755 4352,2757 4354,2760 4356,2763 4359,2766 4360,2769 4362,2772 4364,2775 4365,2779 4366,2782 4367,2785 4368,2789 4369,2792 4370,2796 4370,2799 4370,2803 4370,2804 Z M 4370,2873 L 4370,2873 Z M 4077,2734 L 4077,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id183">
- <rect class="BoundingBox" stroke="none" fill="none" x="3728" y="2334" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4021,2404 L 4021,2404 4021,2408 4021,2411 4020,2415 4019,2418 4019,2422 4018,2425 4016,2429 4015,2432 4013,2435 4012,2439 4010,2442 4008,2445 4006,2447 4003,2450 4001,2453 3998,2455 3995,2458 3993,2460 3990,2462 3986,2464 3983,2465 3980,2467 3977,2468 3973,2470 3970,2471 3966,2471 3963,2472 3959,2473 3956,2473 3952,2473 3798,2473 3798,2473 3794,2473 3791,2473 3787,2472 3784,2471 3780,2471 3777,2470 3773,2468 3770,2467 3767,2465 3763,2464 3760,2462 3757,2460 3755,2458 3752,2455 3749,2453 3747,2450 3744,2447 3742,2445 3740,2442 3738,2438 3737,2435 3735,2432 3734,2429 3732,2425 3731,2422 3731,2418 3730,2415 3729,2411 3729,2408 3729,2404 3728,2404 3729,2404 3729,2400 3729,2397 3730,2393 3730,2390 3731,2386 3732,2383 3733,2379 3735,2376 3736,2373 3738,2370 3740,2367 3742,2364 3744,2361 3746,2358 3749,2356 3751,2353 3754,2351 3757,2349 3760,2346 3763,2345 3766,2343 3769,2341 3773,2340 3776,2339 3779,2338 3783,2337 3786,2336 3790,2335 3793,2335 3797,2335 3952,2334 3952,2335 3956,2335 3959,2335 3963,2336 3966,2336 3970,2337 3973,2338 3977,2339 3980,2341 3983,2342 3986,2344 3989,2346 3992,2348 3995,2350 3998,2352 4000,2355 4003,2357 4005,2360 4007,2363 4010,2366 4011,2369 4013,2372 4015,2375 4016,2379 4017,2382 4018,2385 4019,2389 4020,2392 4021,2396 4021,2399 4021,2403 4021,2404 Z M 4021,2473 L 4021,2473 Z M 3728,2334 L 3728,2334 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id184">
- <rect class="BoundingBox" stroke="none" fill="none" x="3728" y="2534" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4021,2604 L 4021,2604 4021,2608 4021,2611 4020,2615 4019,2618 4019,2622 4018,2625 4016,2629 4015,2632 4013,2635 4012,2639 4010,2642 4008,2645 4006,2647 4003,2650 4001,2653 3998,2655 3995,2658 3993,2660 3990,2662 3986,2664 3983,2665 3980,2667 3977,2668 3973,2670 3970,2671 3966,2671 3963,2672 3959,2673 3956,2673 3952,2673 3798,2673 3798,2673 3794,2673 3791,2673 3787,2672 3784,2671 3780,2671 3777,2670 3773,2668 3770,2667 3767,2665 3763,2664 3760,2662 3757,2660 3755,2658 3752,2655 3749,2653 3747,2650 3744,2647 3742,2645 3740,2642 3738,2638 3737,2635 3735,2632 3734,2629 3732,2625 3731,2622 3731,2618 3730,2615 3729,2611 3729,2608 3729,2604 3728,2604 3729,2604 3729,2600 3729,2597 3730,2593 3730,2590 3731,2586 3732,2583 3733,2579 3735,2576 3736,2573 3738,2570 3740,2567 3742,2564 3744,2561 3746,2558 3749,2556 3751,2553 3754,2551 3757,2549 3760,2546 3763,2545 3766,2543 3769,2541 3773,2540 3776,2539 3779,2538 3783,2537 3786,2536 3790,2535 3793,2535 3797,2535 3952,2534 3952,2535 3956,2535 3959,2535 3963,2536 3966,2536 3970,2537 3973,2538 3977,2539 3980,2541 3983,2542 3986,2544 3989,2546 3992,2548 3995,2550 3998,2552 4000,2555 4003,2557 4005,2560 4007,2563 4010,2566 4011,2569 4013,2572 4015,2575 4016,2579 4017,2582 4018,2585 4019,2589 4020,2592 4021,2596 4021,2599 4021,2603 4021,2604 Z M 4021,2673 L 4021,2673 Z M 3728,2534 L 3728,2534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id185">
- <rect class="BoundingBox" stroke="none" fill="none" x="3728" y="2733" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4021,2804 L 4021,2804 4021,2808 4021,2811 4020,2815 4019,2818 4019,2822 4018,2825 4016,2829 4015,2832 4013,2835 4012,2839 4010,2842 4008,2845 4006,2847 4003,2850 4001,2853 3998,2855 3995,2858 3993,2860 3990,2862 3986,2864 3983,2865 3980,2867 3977,2868 3973,2870 3970,2871 3966,2871 3963,2872 3959,2873 3956,2873 3952,2873 3798,2873 3798,2873 3794,2873 3791,2873 3787,2872 3784,2871 3780,2871 3777,2870 3773,2868 3770,2867 3767,2865 3763,2864 3760,2862 3757,2860 3755,2858 3752,2855 3749,2853 3747,2850 3744,2847 3742,2845 3740,2842 3738,2838 3737,2835 3735,2832 3734,2829 3732,2825 3731,2822 3731,2818 3730,2815 3729,2811 3729,2808 3729,2804 3728,2804 3729,2804 3729,2800 3729,2797 3730,2793 3730,2790 3731,2786 3732,2783 3733,2779 3735,2776 3736,2773 3738,2770 3740,2767 3742,2764 3744,2761 3746,2758 3749,2756 3751,2753 3754,2751 3757,2749 3760,2746 3763,2745 3766,2743 3769,2741 3773,2740 3776,2739 3779,2738 3783,2737 3786,2736 3790,2735 3793,2735 3797,2735 3952,2734 3952,2735 3956,2735 3959,2735 3963,2736 3966,2736 3970,2737 3973,2738 3977,2739 3980,2741 3983,2742 3986,2744 3989,2746 3992,2748 3995,2750 3998,2752 4000,2755 4003,2757 4005,2760 4007,2763 4010,2766 4011,2769 4013,2772 4015,2775 4016,2779 4017,2782 4018,2785 4019,2789 4020,2792 4021,2796 4021,2799 4021,2803 4021,2804 Z M 4021,2873 L 4021,2873 Z M 3728,2734 L 3728,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id186">
- <rect class="BoundingBox" stroke="none" fill="none" x="4407" y="2337" width="296" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4701,2407 L 4701,2407 4701,2411 4701,2414 4700,2418 4699,2421 4699,2425 4698,2428 4696,2432 4695,2435 4693,2438 4692,2442 4690,2445 4688,2448 4686,2450 4683,2453 4681,2456 4678,2458 4675,2461 4673,2463 4670,2465 4666,2467 4663,2468 4660,2470 4657,2471 4653,2473 4650,2474 4646,2474 4643,2475 4639,2476 4636,2476 4632,2476 4478,2476 4478,2476 4474,2476 4471,2476 4467,2475 4464,2474 4460,2474 4457,2473 4453,2471 4450,2470 4447,2468 4443,2467 4440,2465 4437,2463 4435,2461 4432,2458 4429,2456 4427,2453 4424,2450 4422,2448 4420,2445 4418,2441 4417,2438 4415,2435 4414,2432 4412,2428 4411,2425 4411,2421 4410,2418 4409,2414 4409,2411 4409,2407 4408,2407 4409,2407 4409,2403 4409,2400 4410,2396 4410,2393 4411,2389 4412,2386 4413,2382 4415,2379 4416,2376 4418,2373 4420,2370 4422,2367 4424,2364 4426,2361 4429,2359 4431,2356 4434,2354 4437,2352 4440,2349 4443,2348 4446,2346 4449,2344 4453,2343 4456,2342 4459,2341 4463,2340 4466,2339 4470,2338 4473,2338 4477,2338 4632,2337 4632,2338 4636,2338 4639,2338 4643,2339 4646,2339 4650,2340 4653,2341 4657,2342 4660,2344 4663,2345 4666,2347 4669,2349 4672,2351 4675,2353 4678,2355 4680,2358 4683,2360 4685,2363 4687,2366 4690,2369 4691,2372 4693,2375 4695,2378 4696,2382 4697,2385 4698,2388 4699,2392 4700,2395 4701,2399 4701,2402 4701,2406 4701,2407 Z M 4701,2476 L 4701,2476 Z M 4408,2337 L 4408,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id187">
- <rect class="BoundingBox" stroke="none" fill="none" x="4408" y="2537" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4701,2607 L 4701,2607 4701,2611 4701,2614 4700,2618 4699,2621 4699,2625 4698,2628 4696,2632 4695,2635 4693,2638 4692,2642 4690,2645 4688,2648 4686,2650 4683,2653 4681,2656 4678,2658 4675,2661 4673,2663 4670,2665 4666,2667 4663,2668 4660,2670 4657,2671 4653,2673 4650,2674 4646,2674 4643,2675 4639,2676 4636,2676 4632,2676 4478,2676 4478,2676 4474,2676 4471,2676 4467,2675 4464,2674 4460,2674 4457,2673 4453,2671 4450,2670 4447,2668 4443,2667 4440,2665 4437,2663 4435,2661 4432,2658 4429,2656 4427,2653 4424,2650 4422,2648 4420,2645 4418,2641 4417,2638 4415,2635 4414,2632 4412,2628 4411,2625 4411,2621 4410,2618 4409,2614 4409,2611 4409,2607 4408,2607 4409,2607 4409,2603 4409,2600 4410,2596 4410,2593 4411,2589 4412,2586 4413,2582 4415,2579 4416,2576 4418,2573 4420,2570 4422,2567 4424,2564 4426,2561 4429,2559 4431,2556 4434,2554 4437,2552 4440,2549 4443,2548 4446,2546 4449,2544 4453,2543 4456,2542 4459,2541 4463,2540 4466,2539 4470,2538 4473,2538 4477,2538 4632,2537 4632,2538 4636,2538 4639,2538 4643,2539 4646,2539 4650,2540 4653,2541 4657,2542 4660,2544 4663,2545 4666,2547 4669,2549 4672,2551 4675,2553 4678,2555 4680,2558 4683,2560 4685,2563 4687,2566 4690,2569 4691,2572 4693,2575 4695,2578 4696,2582 4697,2585 4698,2588 4699,2592 4700,2595 4701,2599 4701,2602 4701,2606 4701,2607 Z M 4701,2676 L 4701,2676 Z M 4408,2537 L 4408,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id188">
- <rect class="BoundingBox" stroke="none" fill="none" x="4408" y="2737" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4701,2807 L 4701,2807 4701,2811 4701,2814 4700,2818 4699,2821 4699,2825 4698,2828 4696,2832 4695,2835 4693,2838 4692,2842 4690,2845 4688,2848 4686,2850 4683,2853 4681,2856 4678,2858 4675,2861 4673,2863 4670,2865 4666,2867 4663,2868 4660,2870 4657,2871 4653,2873 4650,2874 4646,2874 4643,2875 4639,2876 4636,2876 4632,2876 4478,2876 4478,2876 4474,2876 4471,2876 4467,2875 4464,2874 4460,2874 4457,2873 4453,2871 4450,2870 4447,2868 4443,2867 4440,2865 4437,2863 4435,2861 4432,2858 4429,2856 4427,2853 4424,2850 4422,2848 4420,2845 4418,2841 4417,2838 4415,2835 4414,2832 4412,2828 4411,2825 4411,2821 4410,2818 4409,2814 4409,2811 4409,2807 4408,2807 4409,2807 4409,2803 4409,2800 4410,2796 4410,2793 4411,2789 4412,2786 4413,2782 4415,2779 4416,2776 4418,2773 4420,2770 4422,2767 4424,2764 4426,2761 4429,2759 4431,2756 4434,2754 4437,2752 4440,2749 4443,2748 4446,2746 4449,2744 4453,2743 4456,2742 4459,2741 4463,2740 4466,2739 4470,2738 4473,2738 4477,2738 4632,2737 4632,2738 4636,2738 4639,2738 4643,2739 4646,2739 4650,2740 4653,2741 4657,2742 4660,2744 4663,2745 4666,2747 4669,2749 4672,2751 4675,2753 4678,2755 4680,2758 4683,2760 4685,2763 4687,2766 4690,2769 4691,2772 4693,2775 4695,2778 4696,2782 4697,2785 4698,2788 4699,2792 4700,2795 4701,2799 4701,2802 4701,2806 4701,2807 Z M 4701,2876 L 4701,2876 Z M 4408,2737 L 4408,2737 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id189">
- <rect class="BoundingBox" stroke="none" fill="none" x="6352" y="2336" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6645,2407 L 6645,2407 6645,2411 6645,2414 6644,2418 6643,2421 6643,2425 6642,2428 6640,2432 6639,2435 6637,2438 6636,2442 6634,2445 6632,2448 6630,2450 6627,2453 6625,2456 6622,2458 6619,2461 6617,2463 6614,2465 6610,2467 6607,2468 6604,2470 6601,2471 6597,2473 6594,2474 6590,2474 6587,2475 6583,2476 6580,2476 6576,2476 6422,2476 6422,2476 6418,2476 6415,2476 6411,2475 6408,2474 6404,2474 6401,2473 6397,2471 6394,2470 6391,2468 6387,2467 6384,2465 6381,2463 6379,2461 6376,2458 6373,2456 6371,2453 6368,2450 6366,2448 6364,2445 6362,2441 6361,2438 6359,2435 6358,2432 6356,2428 6355,2425 6355,2421 6354,2418 6353,2414 6353,2411 6353,2407 6352,2407 6353,2407 6353,2403 6353,2400 6354,2396 6354,2393 6355,2389 6356,2386 6357,2382 6359,2379 6360,2376 6362,2373 6364,2370 6366,2367 6368,2364 6370,2361 6373,2359 6375,2356 6378,2354 6381,2352 6384,2349 6387,2348 6390,2346 6393,2344 6397,2343 6400,2342 6403,2341 6407,2340 6410,2339 6414,2338 6417,2338 6421,2338 6576,2337 6576,2338 6580,2338 6583,2338 6587,2339 6590,2339 6594,2340 6597,2341 6601,2342 6604,2344 6607,2345 6610,2347 6613,2349 6616,2351 6619,2353 6622,2355 6624,2358 6627,2360 6629,2363 6631,2366 6634,2369 6635,2372 6637,2375 6639,2378 6640,2382 6641,2385 6642,2388 6643,2392 6644,2395 6645,2399 6645,2402 6645,2406 6645,2407 Z M 6645,2476 L 6645,2476 Z M 6352,2337 L 6352,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id190">
- <rect class="BoundingBox" stroke="none" fill="none" x="6352" y="2537" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6645,2607 L 6645,2607 6645,2611 6645,2614 6644,2618 6643,2621 6643,2625 6642,2628 6640,2632 6639,2635 6637,2638 6636,2642 6634,2645 6632,2648 6630,2650 6627,2653 6625,2656 6622,2658 6619,2661 6617,2663 6614,2665 6610,2667 6607,2668 6604,2670 6601,2671 6597,2673 6594,2674 6590,2674 6587,2675 6583,2676 6580,2676 6576,2676 6422,2676 6422,2676 6418,2676 6415,2676 6411,2675 6408,2674 6404,2674 6401,2673 6397,2671 6394,2670 6391,2668 6387,2667 6384,2665 6381,2663 6379,2661 6376,2658 6373,2656 6371,2653 6368,2650 6366,2648 6364,2645 6362,2641 6361,2638 6359,2635 6358,2632 6356,2628 6355,2625 6355,2621 6354,2618 6353,2614 6353,2611 6353,2607 6352,2607 6353,2607 6353,2603 6353,2600 6354,2596 6354,2593 6355,2589 6356,2586 6357,2582 6359,2579 6360,2576 6362,2573 6364,2570 6366,2567 6368,2564 6370,2561 6373,2559 6375,2556 6378,2554 6381,2552 6384,2549 6387,2548 6390,2546 6393,2544 6397,2543 6400,2542 6403,2541 6407,2540 6410,2539 6414,2538 6417,2538 6421,2538 6576,2537 6576,2538 6580,2538 6583,2538 6587,2539 6590,2539 6594,2540 6597,2541 6601,2542 6604,2544 6607,2545 6610,2547 6613,2549 6616,2551 6619,2553 6622,2555 6624,2558 6627,2560 6629,2563 6631,2566 6634,2569 6635,2572 6637,2575 6639,2578 6640,2582 6641,2585 6642,2588 6643,2592 6644,2595 6645,2599 6645,2602 6645,2606 6645,2607 Z M 6645,2676 L 6645,2676 Z M 6352,2537 L 6352,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id191">
- <rect class="BoundingBox" stroke="none" fill="none" x="6352" y="2736" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6645,2806 L 6645,2806 6645,2810 6645,2813 6644,2817 6643,2820 6643,2824 6642,2827 6640,2831 6639,2834 6637,2837 6636,2841 6634,2844 6632,2847 6630,2849 6627,2852 6625,2855 6622,2857 6619,2860 6617,2862 6614,2864 6610,2866 6607,2867 6604,2869 6601,2870 6597,2872 6594,2873 6590,2873 6587,2874 6583,2875 6580,2875 6576,2875 6422,2875 6422,2875 6418,2875 6415,2875 6411,2874 6408,2873 6404,2873 6401,2872 6397,2870 6394,2869 6391,2867 6387,2866 6384,2864 6381,2862 6379,2860 6376,2857 6373,2855 6371,2852 6368,2849 6366,2847 6364,2844 6362,2840 6361,2837 6359,2834 6358,2831 6356,2827 6355,2824 6355,2820 6354,2817 6353,2813 6353,2810 6353,2806 6352,2806 6353,2806 6353,2802 6353,2799 6354,2795 6354,2792 6355,2788 6356,2785 6357,2781 6359,2778 6360,2775 6362,2772 6364,2769 6366,2766 6368,2763 6370,2760 6373,2758 6375,2755 6378,2753 6381,2751 6384,2748 6387,2747 6390,2745 6393,2743 6397,2742 6400,2741 6403,2740 6407,2739 6410,2738 6414,2737 6417,2737 6421,2737 6576,2736 6576,2737 6580,2737 6583,2737 6587,2738 6590,2738 6594,2739 6597,2740 6601,2741 6604,2743 6607,2744 6610,2746 6613,2748 6616,2750 6619,2752 6622,2754 6624,2757 6627,2759 6629,2762 6631,2765 6634,2768 6635,2771 6637,2774 6639,2777 6640,2781 6641,2784 6642,2787 6643,2791 6644,2794 6645,2798 6645,2801 6645,2805 6645,2806 Z M 6645,2875 L 6645,2875 Z M 6352,2736 L 6352,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id192">
- <rect class="BoundingBox" stroke="none" fill="none" x="6003" y="2337" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6296,2407 L 6296,2407 6296,2411 6296,2414 6295,2418 6294,2421 6294,2425 6293,2428 6291,2432 6290,2435 6288,2438 6287,2442 6285,2445 6283,2448 6281,2450 6278,2453 6276,2456 6273,2458 6270,2461 6268,2463 6265,2465 6261,2467 6258,2468 6255,2470 6252,2471 6248,2473 6245,2474 6241,2474 6238,2475 6234,2476 6231,2476 6227,2476 6073,2476 6073,2476 6069,2476 6066,2476 6062,2475 6059,2474 6055,2474 6052,2473 6048,2471 6045,2470 6042,2468 6038,2467 6035,2465 6032,2463 6030,2461 6027,2458 6024,2456 6022,2453 6019,2450 6017,2448 6015,2445 6013,2441 6012,2438 6010,2435 6009,2432 6007,2428 6006,2425 6006,2421 6005,2418 6004,2414 6004,2411 6004,2407 6003,2407 6004,2407 6004,2403 6004,2400 6005,2396 6005,2393 6006,2389 6007,2386 6008,2382 6010,2379 6011,2376 6013,2373 6015,2370 6017,2367 6019,2364 6021,2361 6024,2359 6026,2356 6029,2354 6032,2352 6035,2349 6038,2348 6041,2346 6044,2344 6048,2343 6051,2342 6054,2341 6058,2340 6061,2339 6065,2338 6068,2338 6072,2338 6227,2337 6227,2338 6231,2338 6234,2338 6238,2339 6241,2339 6245,2340 6248,2341 6252,2342 6255,2344 6258,2345 6261,2347 6264,2349 6267,2351 6270,2353 6273,2355 6275,2358 6278,2360 6280,2363 6282,2366 6285,2369 6286,2372 6288,2375 6290,2378 6291,2382 6292,2385 6293,2388 6294,2392 6295,2395 6296,2399 6296,2402 6296,2406 6296,2407 Z M 6296,2476 L 6296,2476 Z M 6003,2337 L 6003,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id193">
- <rect class="BoundingBox" stroke="none" fill="none" x="6003" y="2537" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6296,2607 L 6296,2607 6296,2611 6296,2614 6295,2618 6294,2621 6294,2625 6293,2628 6291,2632 6290,2635 6288,2638 6287,2642 6285,2645 6283,2648 6281,2650 6278,2653 6276,2656 6273,2658 6270,2661 6268,2663 6265,2665 6261,2667 6258,2668 6255,2670 6252,2671 6248,2673 6245,2674 6241,2674 6238,2675 6234,2676 6231,2676 6227,2676 6073,2676 6073,2676 6069,2676 6066,2676 6062,2675 6059,2674 6055,2674 6052,2673 6048,2671 6045,2670 6042,2668 6038,2667 6035,2665 6032,2663 6030,2661 6027,2658 6024,2656 6022,2653 6019,2650 6017,2648 6015,2645 6013,2641 6012,2638 6010,2635 6009,2632 6007,2628 6006,2625 6006,2621 6005,2618 6004,2614 6004,2611 6004,2607 6003,2607 6004,2607 6004,2603 6004,2600 6005,2596 6005,2593 6006,2589 6007,2586 6008,2582 6010,2579 6011,2576 6013,2573 6015,2570 6017,2567 6019,2564 6021,2561 6024,2559 6026,2556 6029,2554 6032,2552 6035,2549 6038,2548 6041,2546 6044,2544 6048,2543 6051,2542 6054,2541 6058,2540 6061,2539 6065,2538 6068,2538 6072,2538 6227,2537 6227,2538 6231,2538 6234,2538 6238,2539 6241,2539 6245,2540 6248,2541 6252,2542 6255,2544 6258,2545 6261,2547 6264,2549 6267,2551 6270,2553 6273,2555 6275,2558 6278,2560 6280,2563 6282,2566 6285,2569 6286,2572 6288,2575 6290,2578 6291,2582 6292,2585 6293,2588 6294,2592 6295,2595 6296,2599 6296,2602 6296,2606 6296,2607 Z M 6296,2676 L 6296,2676 Z M 6003,2537 L 6003,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id194">
- <rect class="BoundingBox" stroke="none" fill="none" x="6003" y="2736" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6296,2806 L 6296,2806 6296,2810 6296,2813 6295,2817 6294,2820 6294,2824 6293,2827 6291,2831 6290,2834 6288,2837 6287,2841 6285,2844 6283,2847 6281,2849 6278,2852 6276,2855 6273,2857 6270,2860 6268,2862 6265,2864 6261,2866 6258,2867 6255,2869 6252,2870 6248,2872 6245,2873 6241,2873 6238,2874 6234,2875 6231,2875 6227,2875 6073,2875 6073,2875 6069,2875 6066,2875 6062,2874 6059,2873 6055,2873 6052,2872 6048,2870 6045,2869 6042,2867 6038,2866 6035,2864 6032,2862 6030,2860 6027,2857 6024,2855 6022,2852 6019,2849 6017,2847 6015,2844 6013,2840 6012,2837 6010,2834 6009,2831 6007,2827 6006,2824 6006,2820 6005,2817 6004,2813 6004,2810 6004,2806 6003,2806 6004,2806 6004,2802 6004,2799 6005,2795 6005,2792 6006,2788 6007,2785 6008,2781 6010,2778 6011,2775 6013,2772 6015,2769 6017,2766 6019,2763 6021,2760 6024,2758 6026,2755 6029,2753 6032,2751 6035,2748 6038,2747 6041,2745 6044,2743 6048,2742 6051,2741 6054,2740 6058,2739 6061,2738 6065,2737 6068,2737 6072,2737 6227,2736 6227,2737 6231,2737 6234,2737 6238,2738 6241,2738 6245,2739 6248,2740 6252,2741 6255,2743 6258,2744 6261,2746 6264,2748 6267,2750 6270,2752 6273,2754 6275,2757 6278,2759 6280,2762 6282,2765 6285,2768 6286,2771 6288,2774 6290,2777 6291,2781 6292,2784 6293,2787 6294,2791 6295,2794 6296,2798 6296,2801 6296,2805 6296,2806 Z M 6296,2875 L 6296,2875 Z M 6003,2736 L 6003,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id195">
- <rect class="BoundingBox" stroke="none" fill="none" x="6682" y="2340" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6975,2410 L 6975,2410 6975,2414 6975,2417 6974,2421 6973,2424 6973,2428 6972,2431 6970,2435 6969,2438 6967,2441 6966,2445 6964,2448 6962,2451 6960,2453 6957,2456 6955,2459 6952,2461 6949,2464 6947,2466 6944,2468 6940,2470 6937,2471 6934,2473 6931,2474 6927,2476 6924,2477 6920,2477 6917,2478 6913,2479 6910,2479 6906,2479 6752,2479 6752,2479 6748,2479 6745,2479 6741,2478 6738,2477 6734,2477 6731,2476 6727,2474 6724,2473 6721,2471 6717,2470 6714,2468 6711,2466 6709,2464 6706,2461 6703,2459 6701,2456 6698,2453 6696,2451 6694,2448 6692,2444 6691,2441 6689,2438 6688,2435 6686,2431 6685,2428 6685,2424 6684,2421 6683,2417 6683,2414 6683,2410 6682,2410 6683,2410 6683,2406 6683,2403 6684,2399 6684,2396 6685,2392 6686,2389 6687,2385 6689,2382 6690,2379 6692,2376 6694,2373 6696,2370 6698,2367 6700,2364 6703,2362 6705,2359 6708,2357 6711,2355 6714,2352 6717,2351 6720,2349 6723,2347 6727,2346 6730,2345 6733,2344 6737,2343 6740,2342 6744,2341 6747,2341 6751,2341 6906,2340 6906,2341 6910,2341 6913,2341 6917,2342 6920,2342 6924,2343 6927,2344 6931,2345 6934,2347 6937,2348 6940,2350 6943,2352 6946,2354 6949,2356 6952,2358 6954,2361 6957,2363 6959,2366 6961,2369 6964,2372 6965,2375 6967,2378 6969,2381 6970,2385 6971,2388 6972,2391 6973,2395 6974,2398 6975,2402 6975,2405 6975,2409 6975,2410 Z M 6975,2479 L 6975,2479 Z M 6682,2340 L 6682,2340 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id196">
- <rect class="BoundingBox" stroke="none" fill="none" x="6682" y="2539" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6975,2609 L 6975,2609 6975,2613 6975,2616 6974,2620 6973,2623 6973,2627 6972,2630 6970,2634 6969,2637 6967,2640 6966,2644 6964,2647 6962,2650 6960,2652 6957,2655 6955,2658 6952,2660 6949,2663 6947,2665 6944,2667 6940,2669 6937,2670 6934,2672 6931,2673 6927,2675 6924,2676 6920,2676 6917,2677 6913,2678 6910,2678 6906,2678 6752,2678 6752,2678 6748,2678 6745,2678 6741,2677 6738,2676 6734,2676 6731,2675 6727,2673 6724,2672 6721,2670 6717,2669 6714,2667 6711,2665 6709,2663 6706,2660 6703,2658 6701,2655 6698,2652 6696,2650 6694,2647 6692,2643 6691,2640 6689,2637 6688,2634 6686,2630 6685,2627 6685,2623 6684,2620 6683,2616 6683,2613 6683,2609 6682,2609 6683,2609 6683,2605 6683,2602 6684,2598 6684,2595 6685,2591 6686,2588 6687,2584 6689,2581 6690,2578 6692,2575 6694,2572 6696,2569 6698,2566 6700,2563 6703,2561 6705,2558 6708,2556 6711,2554 6714,2551 6717,2550 6720,2548 6723,2546 6727,2545 6730,2544 6733,2543 6737,2542 6740,2541 6744,2540 6747,2540 6751,2540 6906,2539 6906,2540 6910,2540 6913,2540 6917,2541 6920,2541 6924,2542 6927,2543 6931,2544 6934,2546 6937,2547 6940,2549 6943,2551 6946,2553 6949,2555 6952,2557 6954,2560 6957,2562 6959,2565 6961,2568 6964,2571 6965,2574 6967,2577 6969,2580 6970,2584 6971,2587 6972,2590 6973,2594 6974,2597 6975,2601 6975,2604 6975,2608 6975,2609 Z M 6975,2678 L 6975,2678 Z M 6682,2539 L 6682,2539 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id197">
- <rect class="BoundingBox" stroke="none" fill="none" x="6682" y="2739" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6975,2809 L 6975,2809 6975,2813 6975,2816 6974,2820 6973,2823 6973,2827 6972,2830 6970,2834 6969,2837 6967,2840 6966,2844 6964,2847 6962,2850 6960,2852 6957,2855 6955,2858 6952,2860 6949,2863 6947,2865 6944,2867 6940,2869 6937,2870 6934,2872 6931,2873 6927,2875 6924,2876 6920,2876 6917,2877 6913,2878 6910,2878 6906,2878 6752,2878 6752,2878 6748,2878 6745,2878 6741,2877 6738,2876 6734,2876 6731,2875 6727,2873 6724,2872 6721,2870 6717,2869 6714,2867 6711,2865 6709,2863 6706,2860 6703,2858 6701,2855 6698,2852 6696,2850 6694,2847 6692,2843 6691,2840 6689,2837 6688,2834 6686,2830 6685,2827 6685,2823 6684,2820 6683,2816 6683,2813 6683,2809 6682,2809 6683,2809 6683,2805 6683,2802 6684,2798 6684,2795 6685,2791 6686,2788 6687,2784 6689,2781 6690,2778 6692,2775 6694,2772 6696,2769 6698,2766 6700,2763 6703,2761 6705,2758 6708,2756 6711,2754 6714,2751 6717,2750 6720,2748 6723,2746 6727,2745 6730,2744 6733,2743 6737,2742 6740,2741 6744,2740 6747,2740 6751,2740 6906,2739 6906,2740 6910,2740 6913,2740 6917,2741 6920,2741 6924,2742 6927,2743 6931,2744 6934,2746 6937,2747 6940,2749 6943,2751 6946,2753 6949,2755 6952,2757 6954,2760 6957,2762 6959,2765 6961,2768 6964,2771 6965,2774 6967,2777 6969,2780 6970,2784 6971,2787 6972,2790 6973,2794 6974,2797 6975,2801 6975,2804 6975,2808 6975,2809 Z M 6975,2878 L 6975,2878 Z M 6682,2739 L 6682,2739 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id198">
- <rect class="BoundingBox" stroke="none" fill="none" x="1127" y="4140" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1377" y="4536"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1377" y="4883"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id199">
- <rect class="BoundingBox" stroke="none" fill="none" x="4667" y="3488" width="609" height="382"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 4971,3869 L 4667,3869 4667,3488 5275,3488 5275,3869 4971,3869 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4726" y="3792"><tspan fill="rgb(255,255,255)" stroke="none">QPI</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id200">
- <rect class="BoundingBox" stroke="none" fill="none" x="9448" y="1920" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 13068,5116 L 9466,5116 9466,1938 16670,1938 16670,5116 13068,5116 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13068,5116 L 9466,5116 9466,1938 16670,1938 16670,5116 13068,5116 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9566" y="2326"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9566" y="2791"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id201">
- <rect class="BoundingBox" stroke="none" fill="none" x="10158" y="5020" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 10611,5463 L 10167,5463 10167,5029 11054,5029 11054,5463 10611,5463 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 10611,5463 L 10167,5463 10167,5029 11054,5029 11054,5463 10611,5463 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10336" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id202">
- <rect class="BoundingBox" stroke="none" fill="none" x="10271" y="5506" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10289,5524 L 10294,6224"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10289,5524 L 10289,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10294,6224 L 10294,6224 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id203">
- <rect class="BoundingBox" stroke="none" fill="none" x="10192" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10276,5523 L 10201,5523 10201,5424 10350,5424 10350,5523 10276,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10276,5523 L 10201,5523 10201,5424 10350,5424 10350,5523 10276,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id204">
- <rect class="BoundingBox" stroke="none" fill="none" x="10836" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10920,5521 L 10845,5521 10845,5422 10994,5422 10994,5521 10920,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10920,5521 L 10845,5521 10845,5422 10994,5422 10994,5521 10920,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id205">
- <rect class="BoundingBox" stroke="none" fill="none" x="10900" y="5504" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10920,5522 L 10918,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10920,5522 L 10920,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10918,6270 L 10918,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id206">
- <rect class="BoundingBox" stroke="none" fill="none" x="10476" y="5508" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10496,5526 L 10494,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10496,5526 L 10496,5526 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10494,6272 L 10494,6272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id207">
- <rect class="BoundingBox" stroke="none" fill="none" x="10412" y="5417" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10496,5525 L 10421,5525 10421,5426 10570,5426 10570,5525 10496,5525 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10496,5525 L 10421,5525 10421,5426 10570,5426 10570,5525 10496,5525 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id208">
- <rect class="BoundingBox" stroke="none" fill="none" x="10623" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10707,5523 L 10632,5523 10632,5424 10781,5424 10781,5523 10707,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10707,5523 L 10632,5523 10632,5424 10781,5424 10781,5523 10707,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id209">
- <rect class="BoundingBox" stroke="none" fill="none" x="10701" y="5506" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10719,5524 L 10725,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10719,5524 L 10719,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10725,6272 L 10725,6272 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id210">
- <rect class="BoundingBox" stroke="none" fill="none" x="10150" y="3088" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 11568,4272 L 10168,4272 10168,3106 12968,3106 12968,4272 11568,4272 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 11568,4272 L 10168,4272 10168,3106 12968,3106 12968,4272 11568,4272 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="11029" y="3410"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10883" y="3763"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon </tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10887" y="4116"><tspan fill="rgb(255,255,255)" stroke="none">E5-2699v3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id211">
- <rect class="BoundingBox" stroke="none" fill="none" x="11122" y="5018" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 11575,5461 L 11131,5461 11131,5027 12018,5027 12018,5461 11575,5461 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 11575,5461 L 11131,5461 11131,5027 12018,5027 12018,5461 11575,5461 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11300" y="5325"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id212">
- <rect class="BoundingBox" stroke="none" fill="none" x="11235" y="5504" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11253,5522 L 11258,6268"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11253,5522 L 11253,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11258,6268 L 11258,6268 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id213">
- <rect class="BoundingBox" stroke="none" fill="none" x="11156" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11240,5521 L 11165,5521 11165,5422 11314,5422 11314,5521 11240,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11240,5521 L 11165,5521 11165,5422 11314,5422 11314,5521 11240,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id214">
- <rect class="BoundingBox" stroke="none" fill="none" x="11800" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11884,5519 L 11809,5519 11809,5420 11958,5420 11958,5519 11884,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11884,5519 L 11809,5519 11809,5420 11958,5420 11958,5519 11884,5519 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id215">
- <rect class="BoundingBox" stroke="none" fill="none" x="11864" y="5502" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11884,5520 L 11882,6268"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11884,5520 L 11884,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11882,6268 L 11882,6268 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id216">
- <rect class="BoundingBox" stroke="none" fill="none" x="11440" y="5506" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11460,5524 L 11458,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11460,5524 L 11460,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11458,6270 L 11458,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id217">
- <rect class="BoundingBox" stroke="none" fill="none" x="11377" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11461,5523 L 11386,5523 11386,5424 11535,5424 11535,5523 11461,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11461,5523 L 11386,5523 11386,5424 11535,5424 11535,5523 11461,5523 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id218">
- <rect class="BoundingBox" stroke="none" fill="none" x="11588" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11672,5521 L 11597,5521 11597,5422 11746,5422 11746,5521 11672,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11672,5521 L 11597,5521 11597,5422 11746,5422 11746,5521 11672,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id219">
- <rect class="BoundingBox" stroke="none" fill="none" x="11666" y="5504" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11684,5522 L 11690,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11684,5522 L 11684,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11690,6270 L 11690,6270 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id220">
- <rect class="BoundingBox" stroke="none" fill="none" x="12071" y="5016" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 12524,5459 L 12080,5459 12080,5025 12967,5025 12967,5459 12524,5459 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 12524,5459 L 12080,5459 12080,5025 12967,5025 12967,5459 12524,5459 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12249" y="5323"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id221">
- <rect class="BoundingBox" stroke="none" fill="none" x="12184" y="5502" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12202,5520 L 12207,6266"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12202,5520 L 12202,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12207,6266 L 12207,6266 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id222">
- <rect class="BoundingBox" stroke="none" fill="none" x="12105" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 12189,5519 L 12114,5519 12114,5420 12263,5420 12263,5519 12189,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12189,5519 L 12114,5519 12114,5420 12263,5420 12263,5519 12189,5519 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id223">
- <rect class="BoundingBox" stroke="none" fill="none" x="12749" y="5408" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 12833,5516 L 12758,5516 12758,5417 12907,5417 12907,5516 12833,5516 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12833,5516 L 12758,5516 12758,5417 12907,5417 12907,5516 12833,5516 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id224">
- <rect class="BoundingBox" stroke="none" fill="none" x="12813" y="5499" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12833,5517 L 12831,6217"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12833,5517 L 12833,5517 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12831,6217 L 12831,6217 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id225">
- <rect class="BoundingBox" stroke="none" fill="none" x="12389" y="5503" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12409,5521 L 12407,6267"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12409,5521 L 12409,5521 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12407,6267 L 12407,6267 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id226">
- <rect class="BoundingBox" stroke="none" fill="none" x="12326" y="5412" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 12410,5520 L 12335,5520 12335,5421 12484,5421 12484,5520 12410,5520 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12410,5520 L 12335,5520 12335,5421 12484,5421 12484,5520 12410,5520 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id227">
- <rect class="BoundingBox" stroke="none" fill="none" x="12537" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 12621,5519 L 12546,5519 12546,5420 12695,5420 12695,5519 12621,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12621,5519 L 12546,5519 12546,5420 12695,5420 12695,5519 12621,5519 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id228">
- <rect class="BoundingBox" stroke="none" fill="none" x="12615" y="5502" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12633,5520 L 12639,6268"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12633,5520 L 12633,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12639,6268 L 12639,6268 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id229">
- <rect class="BoundingBox" stroke="none" fill="none" x="10364" y="4291" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 10641,5024 L 10364,4863 10502,4863 10502,4453 10364,4453 10641,4291 10919,4453 10780,4453 10780,4863 10919,4863 10641,5024 Z M 10364,5024 L 10364,5024 Z M 10919,4291 L 10919,4291 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id230">
- <rect class="BoundingBox" stroke="none" fill="none" x="10402" y="4481" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 10640,4824 L 10402,4824 10402,4481 10877,4481 10877,4824 10640,4824 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10489" y="4766"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id231">
- <rect class="BoundingBox" stroke="none" fill="none" x="11341" y="4286" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 11618,5019 L 11341,4858 11479,4858 11479,4448 11341,4448 11618,4286 11896,4448 11757,4448 11757,4858 11896,4858 11618,5019 Z M 11341,5019 L 11341,5019 Z M 11896,4286 L 11896,4286 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id232">
- <rect class="BoundingBox" stroke="none" fill="none" x="11380" y="4476" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 11618,4819 L 11380,4819 11380,4476 11855,4476 11855,4819 11618,4819 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11467" y="4761"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id233">
- <rect class="BoundingBox" stroke="none" fill="none" x="12294" y="4277" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 12571,5010 L 12294,4849 12432,4849 12432,4439 12294,4439 12571,4277 12849,4439 12710,4439 12710,4849 12849,4849 12571,5010 Z M 12294,5010 L 12294,5010 Z M 12849,4277 L 12849,4277 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id234">
- <rect class="BoundingBox" stroke="none" fill="none" x="12332" y="4467" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 12570,4810 L 12332,4810 12332,4467 12807,4467 12807,4810 12570,4810 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12419" y="4752"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id235">
- <rect class="BoundingBox" stroke="none" fill="none" x="13001" y="2289" width="1147" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="13251" y="2696"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id236">
- <rect class="BoundingBox" stroke="none" fill="none" x="13470" y="3073" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 14888,4257 L 13488,4257 13488,3091 16288,3091 16288,4257 14888,4257 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 14888,4257 L 13488,4257 13488,3091 16288,3091 16288,4257 14888,4257 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="14349" y="3395"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="14239" y="3748"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="14207" y="4101"><tspan fill="rgb(255,255,255)" stroke="none">E5-2699v3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id237">
- <rect class="BoundingBox" stroke="none" fill="none" x="13472" y="5015" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 13925,5458 L 13481,5458 13481,5024 14368,5024 14368,5458 13925,5458 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 13925,5458 L 13481,5458 13481,5024 14368,5024 14368,5458 13925,5458 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="13650" y="5322"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id238">
- <rect class="BoundingBox" stroke="none" fill="none" x="13585" y="5500" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13603,5518 L 13608,6218"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13603,5518 L 13603,5518 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13608,6218 L 13608,6218 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id239">
- <rect class="BoundingBox" stroke="none" fill="none" x="13506" y="5409" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 13590,5517 L 13515,5517 13515,5418 13664,5418 13664,5517 13590,5517 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 13590,5517 L 13515,5517 13515,5418 13664,5418 13664,5517 13590,5517 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id240">
- <rect class="BoundingBox" stroke="none" fill="none" x="14150" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14234,5515 L 14159,5515 14159,5416 14308,5416 14308,5515 14234,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14234,5515 L 14159,5515 14159,5416 14308,5416 14308,5515 14234,5515 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id241">
- <rect class="BoundingBox" stroke="none" fill="none" x="14214" y="5498" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14234,5516 L 14232,6264"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14234,5516 L 14234,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14232,6264 L 14232,6264 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id242">
- <rect class="BoundingBox" stroke="none" fill="none" x="13790" y="5502" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13810,5520 L 13808,6266"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13810,5520 L 13810,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13808,6266 L 13808,6266 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id243">
- <rect class="BoundingBox" stroke="none" fill="none" x="13727" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 13811,5519 L 13736,5519 13736,5420 13885,5420 13885,5519 13811,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 13811,5519 L 13736,5519 13736,5420 13885,5420 13885,5519 13811,5519 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id244">
- <rect class="BoundingBox" stroke="none" fill="none" x="13938" y="5409" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14022,5517 L 13947,5517 13947,5418 14096,5418 14096,5517 14022,5517 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14022,5517 L 13947,5517 13947,5418 14096,5418 14096,5517 14022,5517 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id245">
- <rect class="BoundingBox" stroke="none" fill="none" x="14016" y="5500" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14034,5518 L 14040,6266"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14034,5518 L 14034,5518 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14040,6266 L 14040,6266 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id246">
- <rect class="BoundingBox" stroke="none" fill="none" x="14437" y="5012" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 14890,5455 L 14446,5455 14446,5021 15333,5021 15333,5455 14890,5455 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 14890,5455 L 14446,5455 14446,5021 15333,5021 15333,5455 14890,5455 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="14615" y="5319"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id247">
- <rect class="BoundingBox" stroke="none" fill="none" x="14550" y="5498" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14568,5516 L 14573,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14568,5516 L 14568,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14573,6262 L 14573,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id248">
- <rect class="BoundingBox" stroke="none" fill="none" x="14471" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14555,5515 L 14480,5515 14480,5416 14629,5416 14629,5515 14555,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14555,5515 L 14480,5515 14480,5416 14629,5416 14629,5515 14555,5515 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id249">
- <rect class="BoundingBox" stroke="none" fill="none" x="15115" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15199,5513 L 15124,5513 15124,5414 15273,5414 15273,5513 15199,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15199,5513 L 15124,5513 15124,5414 15273,5414 15273,5513 15199,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id250">
- <rect class="BoundingBox" stroke="none" fill="none" x="15179" y="5496" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15199,5514 L 15197,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15199,5514 L 15199,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15197,6262 L 15197,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id251">
- <rect class="BoundingBox" stroke="none" fill="none" x="14755" y="5500" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14775,5518 L 14773,6264"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14775,5518 L 14775,5518 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14773,6264 L 14773,6264 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id252">
- <rect class="BoundingBox" stroke="none" fill="none" x="14691" y="5409" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14775,5517 L 14700,5517 14700,5418 14849,5418 14849,5517 14775,5517 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14775,5517 L 14700,5517 14700,5418 14849,5418 14849,5517 14775,5517 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id253">
- <rect class="BoundingBox" stroke="none" fill="none" x="14903" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14987,5515 L 14912,5515 14912,5416 15061,5416 15061,5515 14987,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14987,5515 L 14912,5515 14912,5416 15061,5416 15061,5515 14987,5515 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id254">
- <rect class="BoundingBox" stroke="none" fill="none" x="14981" y="5498" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14999,5516 L 15005,6264"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14999,5516 L 14999,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15005,6264 L 15005,6264 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id255">
- <rect class="BoundingBox" stroke="none" fill="none" x="15386" y="5010" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 15839,5453 L 15395,5453 15395,5019 16282,5019 16282,5453 15839,5453 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 15839,5453 L 15395,5453 15395,5019 16282,5019 16282,5453 15839,5453 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15564" y="5317"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id256">
- <rect class="BoundingBox" stroke="none" fill="none" x="15499" y="5496" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15517,5514 L 15522,6260"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15517,5514 L 15517,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15522,6260 L 15522,6260 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id257">
- <rect class="BoundingBox" stroke="none" fill="none" x="15420" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15504,5513 L 15429,5513 15429,5414 15578,5414 15578,5513 15504,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15504,5513 L 15429,5513 15429,5414 15578,5414 15578,5513 15504,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id258">
- <rect class="BoundingBox" stroke="none" fill="none" x="16063" y="5403" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 16147,5511 L 16072,5511 16072,5412 16221,5412 16221,5511 16147,5511 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 16147,5511 L 16072,5511 16072,5412 16221,5412 16221,5511 16147,5511 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id259">
- <rect class="BoundingBox" stroke="none" fill="none" x="16128" y="5494" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 16148,5512 L 16146,6212"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 16148,5512 L 16148,5512 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 16146,6212 L 16146,6212 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id260">
- <rect class="BoundingBox" stroke="none" fill="none" x="15704" y="5498" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15724,5516 L 15722,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15724,5516 L 15724,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15722,6262 L 15722,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id261">
- <rect class="BoundingBox" stroke="none" fill="none" x="15640" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15724,5515 L 15649,5515 15649,5416 15798,5416 15798,5515 15724,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15724,5515 L 15649,5515 15649,5416 15798,5416 15798,5515 15724,5515 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id262">
- <rect class="BoundingBox" stroke="none" fill="none" x="15851" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15935,5513 L 15860,5513 15860,5414 16009,5414 16009,5513 15935,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15935,5513 L 15860,5513 15860,5414 16009,5414 16009,5513 15935,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id263">
- <rect class="BoundingBox" stroke="none" fill="none" x="15929" y="5496" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15947,5514 L 15953,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15947,5514 L 15947,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15953,6262 L 15953,6262 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id264">
- <rect class="BoundingBox" stroke="none" fill="none" x="13678" y="4285" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 13955,5018 L 13678,4857 13816,4857 13816,4447 13678,4447 13955,4285 14233,4447 14094,4447 14094,4857 14233,4857 13955,5018 Z M 13678,5018 L 13678,5018 Z M 14233,4285 L 14233,4285 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id265">
- <rect class="BoundingBox" stroke="none" fill="none" x="13717" y="4475" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 13955,4818 L 13717,4818 13717,4475 14192,4475 14192,4818 13955,4818 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="13804" y="4760"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id266">
- <rect class="BoundingBox" stroke="none" fill="none" x="14656" y="4281" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 14933,5014 L 14656,4853 14794,4853 14794,4443 14656,4443 14933,4281 15211,4443 15072,4443 15072,4853 15211,4853 14933,5014 Z M 14656,5014 L 14656,5014 Z M 15211,4281 L 15211,4281 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id267">
- <rect class="BoundingBox" stroke="none" fill="none" x="14694" y="4471" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 14932,4814 L 14694,4814 14694,4471 15169,4471 15169,4814 14932,4814 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="14781" y="4756"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id268">
- <rect class="BoundingBox" stroke="none" fill="none" x="15608" y="4272" width="557" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 15885,5005 L 15608,4844 15746,4844 15746,4434 15608,4434 15885,4272 16163,4434 16024,4434 16024,4844 16163,4844 15885,5005 Z M 15608,5005 L 15608,5005 Z M 16163,4272 L 16163,4272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id269">
- <rect class="BoundingBox" stroke="none" fill="none" x="15647" y="4462" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 15885,4805 L 15647,4805 15647,4462 16122,4462 16122,4805 15885,4805 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15734" y="4747"><tspan fill="rgb(255,255,255)" stroke="none">x8</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id270">
- <rect class="BoundingBox" stroke="none" fill="none" x="12767" y="3208" width="892" height="1018"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 12767,3716 L 13026,3208 13026,3462 13397,3462 13397,3208 13657,3716 13397,4225 13397,3970 13026,3970 13026,4225 12767,3716 Z M 12767,3208 L 12767,3208 Z M 13657,4225 L 13657,4225 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id271">
- <rect class="BoundingBox" stroke="none" fill="none" x="10236" y="6147" width="2666" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 12848,6200 L 12848,6200 12848,6207 12848,6213 12847,6220 12847,6226 12846,6232 12845,6239 12845,6245 12843,6251 12842,6257 12841,6263 12840,6268 12838,6274 12836,6279 12835,6284 12833,6288 12831,6293 12829,6297 12827,6301 12825,6305 12822,6308 12820,6311 12818,6314 12815,6317 12813,6319 12810,6321 12808,6322 12805,6323 12802,6324 12800,6325 12797,6325 10341,6327 10341,6327 10338,6327 10336,6326 10333,6325 10330,6324 10328,6323 10325,6321 10323,6319 10320,6316 10318,6313 10316,6310 10313,6307 10311,6303 10309,6299 10307,6295 10305,6290 10303,6285 10302,6280 10300,6275 10298,6270 10297,6264 10296,6258 10295,6252 10293,6246 10293,6240 10292,6234 10291,6227 10291,6221 10290,6214 10290,6208 10290,6201"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 12848,6200 L 12848,6200 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 10289,6327 L 10289,6327 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id272">
- <rect class="BoundingBox" stroke="none" fill="none" x="13555" y="6139" width="2666" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 16167,6192 L 16167,6192 16167,6199 16167,6205 16166,6212 16166,6218 16165,6224 16164,6231 16164,6237 16162,6243 16161,6249 16160,6255 16159,6260 16157,6266 16155,6271 16154,6276 16152,6280 16150,6285 16148,6289 16146,6293 16144,6297 16141,6300 16139,6303 16137,6306 16134,6309 16132,6311 16129,6313 16127,6314 16124,6315 16121,6316 16119,6317 16116,6317 13660,6319 13660,6319 13657,6319 13655,6318 13652,6317 13649,6316 13647,6315 13644,6313 13642,6311 13639,6308 13637,6305 13635,6302 13632,6299 13630,6295 13628,6291 13626,6287 13624,6282 13622,6277 13621,6272 13619,6267 13617,6262 13616,6256 13615,6250 13614,6244 13612,6238 13612,6232 13611,6226 13610,6219 13610,6213 13609,6206 13609,6200 13609,6193"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 16167,6192 L 16167,6192 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 13608,6319 L 13608,6319 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id273">
- <rect class="BoundingBox" stroke="none" fill="none" x="10463" y="1254" width="5233" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="10713" y="1802"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 2 (SUT2)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id274">
- <rect class="BoundingBox" stroke="none" fill="none" x="12332" y="2334" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12625,2404 L 12625,2404 12625,2408 12625,2411 12624,2415 12623,2418 12623,2422 12622,2425 12620,2429 12619,2432 12617,2435 12616,2439 12614,2442 12612,2445 12610,2447 12607,2450 12605,2453 12602,2455 12599,2458 12597,2460 12594,2462 12590,2464 12587,2465 12584,2467 12581,2468 12577,2470 12574,2471 12570,2471 12567,2472 12563,2473 12560,2473 12556,2473 12402,2473 12402,2473 12398,2473 12395,2473 12391,2472 12388,2471 12384,2471 12381,2470 12377,2468 12374,2467 12371,2465 12367,2464 12364,2462 12361,2460 12359,2458 12356,2455 12353,2453 12351,2450 12348,2447 12346,2445 12344,2442 12342,2438 12341,2435 12339,2432 12338,2429 12336,2425 12335,2422 12335,2418 12334,2415 12333,2411 12333,2408 12333,2404 12332,2404 12333,2404 12333,2400 12333,2397 12334,2393 12334,2390 12335,2386 12336,2383 12337,2379 12339,2376 12340,2373 12342,2370 12344,2367 12346,2364 12348,2361 12350,2358 12353,2356 12355,2353 12358,2351 12361,2349 12364,2346 12367,2345 12370,2343 12373,2341 12377,2340 12380,2339 12383,2338 12387,2337 12390,2336 12394,2335 12397,2335 12401,2335 12556,2334 12556,2335 12560,2335 12563,2335 12567,2336 12570,2336 12574,2337 12577,2338 12581,2339 12584,2341 12587,2342 12590,2344 12593,2346 12596,2348 12599,2350 12602,2352 12604,2355 12607,2357 12609,2360 12611,2363 12614,2366 12615,2369 12617,2372 12619,2375 12620,2379 12621,2382 12622,2385 12623,2389 12624,2392 12625,2396 12625,2399 12625,2403 12625,2404 Z M 12625,2473 L 12625,2473 Z M 12332,2334 L 12332,2334 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id275">
- <rect class="BoundingBox" stroke="none" fill="none" x="12332" y="2534" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12625,2604 L 12625,2604 12625,2608 12625,2611 12624,2615 12623,2618 12623,2622 12622,2625 12620,2629 12619,2632 12617,2635 12616,2639 12614,2642 12612,2645 12610,2647 12607,2650 12605,2653 12602,2655 12599,2658 12597,2660 12594,2662 12590,2664 12587,2665 12584,2667 12581,2668 12577,2670 12574,2671 12570,2671 12567,2672 12563,2673 12560,2673 12556,2673 12402,2673 12402,2673 12398,2673 12395,2673 12391,2672 12388,2671 12384,2671 12381,2670 12377,2668 12374,2667 12371,2665 12367,2664 12364,2662 12361,2660 12359,2658 12356,2655 12353,2653 12351,2650 12348,2647 12346,2645 12344,2642 12342,2638 12341,2635 12339,2632 12338,2629 12336,2625 12335,2622 12335,2618 12334,2615 12333,2611 12333,2608 12333,2604 12332,2604 12333,2604 12333,2600 12333,2597 12334,2593 12334,2590 12335,2586 12336,2583 12337,2579 12339,2576 12340,2573 12342,2570 12344,2567 12346,2564 12348,2561 12350,2558 12353,2556 12355,2553 12358,2551 12361,2549 12364,2546 12367,2545 12370,2543 12373,2541 12377,2540 12380,2539 12383,2538 12387,2537 12390,2536 12394,2535 12397,2535 12401,2535 12556,2534 12556,2535 12560,2535 12563,2535 12567,2536 12570,2536 12574,2537 12577,2538 12581,2539 12584,2541 12587,2542 12590,2544 12593,2546 12596,2548 12599,2550 12602,2552 12604,2555 12607,2557 12609,2560 12611,2563 12614,2566 12615,2569 12617,2572 12619,2575 12620,2579 12621,2582 12622,2585 12623,2589 12624,2592 12625,2596 12625,2599 12625,2603 12625,2604 Z M 12625,2673 L 12625,2673 Z M 12332,2534 L 12332,2534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id276">
- <rect class="BoundingBox" stroke="none" fill="none" x="12332" y="2734" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12625,2804 L 12625,2804 12625,2808 12625,2811 12624,2815 12623,2818 12623,2822 12622,2825 12620,2829 12619,2832 12617,2835 12616,2839 12614,2842 12612,2845 12610,2847 12607,2850 12605,2853 12602,2855 12599,2858 12597,2860 12594,2862 12590,2864 12587,2865 12584,2867 12581,2868 12577,2870 12574,2871 12570,2871 12567,2872 12563,2873 12560,2873 12556,2873 12402,2873 12402,2873 12398,2873 12395,2873 12391,2872 12388,2871 12384,2871 12381,2870 12377,2868 12374,2867 12371,2865 12367,2864 12364,2862 12361,2860 12359,2858 12356,2855 12353,2853 12351,2850 12348,2847 12346,2845 12344,2842 12342,2838 12341,2835 12339,2832 12338,2829 12336,2825 12335,2822 12335,2818 12334,2815 12333,2811 12333,2808 12333,2804 12332,2804 12333,2804 12333,2800 12333,2797 12334,2793 12334,2790 12335,2786 12336,2783 12337,2779 12339,2776 12340,2773 12342,2770 12344,2767 12346,2764 12348,2761 12350,2758 12353,2756 12355,2753 12358,2751 12361,2749 12364,2746 12367,2745 12370,2743 12373,2741 12377,2740 12380,2739 12383,2738 12387,2737 12390,2736 12394,2735 12397,2735 12401,2735 12556,2734 12556,2735 12560,2735 12563,2735 12567,2736 12570,2736 12574,2737 12577,2738 12581,2739 12584,2741 12587,2742 12590,2744 12593,2746 12596,2748 12599,2750 12602,2752 12604,2755 12607,2757 12609,2760 12611,2763 12614,2766 12615,2769 12617,2772 12619,2775 12620,2779 12621,2782 12622,2785 12623,2789 12624,2792 12625,2796 12625,2799 12625,2803 12625,2804 Z M 12625,2873 L 12625,2873 Z M 12332,2734 L 12332,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id277">
- <rect class="BoundingBox" stroke="none" fill="none" x="11983" y="2334" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12276,2404 L 12276,2404 12276,2408 12276,2411 12275,2415 12274,2418 12274,2422 12273,2425 12271,2429 12270,2432 12268,2435 12267,2439 12265,2442 12263,2445 12261,2447 12258,2450 12256,2453 12253,2455 12250,2458 12248,2460 12245,2462 12241,2464 12238,2465 12235,2467 12232,2468 12228,2470 12225,2471 12221,2471 12218,2472 12214,2473 12211,2473 12207,2473 12053,2473 12053,2473 12049,2473 12046,2473 12042,2472 12039,2471 12035,2471 12032,2470 12028,2468 12025,2467 12022,2465 12018,2464 12015,2462 12012,2460 12010,2458 12007,2455 12004,2453 12002,2450 11999,2447 11997,2445 11995,2442 11993,2438 11992,2435 11990,2432 11989,2429 11987,2425 11986,2422 11986,2418 11985,2415 11984,2411 11984,2408 11984,2404 11983,2404 11984,2404 11984,2400 11984,2397 11985,2393 11985,2390 11986,2386 11987,2383 11988,2379 11990,2376 11991,2373 11993,2370 11995,2367 11997,2364 11999,2361 12001,2358 12004,2356 12006,2353 12009,2351 12012,2349 12015,2346 12018,2345 12021,2343 12024,2341 12028,2340 12031,2339 12034,2338 12038,2337 12041,2336 12045,2335 12048,2335 12052,2335 12207,2334 12207,2335 12211,2335 12214,2335 12218,2336 12221,2336 12225,2337 12228,2338 12232,2339 12235,2341 12238,2342 12241,2344 12244,2346 12247,2348 12250,2350 12253,2352 12255,2355 12258,2357 12260,2360 12262,2363 12265,2366 12266,2369 12268,2372 12270,2375 12271,2379 12272,2382 12273,2385 12274,2389 12275,2392 12276,2396 12276,2399 12276,2403 12276,2404 Z M 12276,2473 L 12276,2473 Z M 11983,2334 L 11983,2334 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id278">
- <rect class="BoundingBox" stroke="none" fill="none" x="11983" y="2534" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12276,2604 L 12276,2604 12276,2608 12276,2611 12275,2615 12274,2618 12274,2622 12273,2625 12271,2629 12270,2632 12268,2635 12267,2639 12265,2642 12263,2645 12261,2647 12258,2650 12256,2653 12253,2655 12250,2658 12248,2660 12245,2662 12241,2664 12238,2665 12235,2667 12232,2668 12228,2670 12225,2671 12221,2671 12218,2672 12214,2673 12211,2673 12207,2673 12053,2673 12053,2673 12049,2673 12046,2673 12042,2672 12039,2671 12035,2671 12032,2670 12028,2668 12025,2667 12022,2665 12018,2664 12015,2662 12012,2660 12010,2658 12007,2655 12004,2653 12002,2650 11999,2647 11997,2645 11995,2642 11993,2638 11992,2635 11990,2632 11989,2629 11987,2625 11986,2622 11986,2618 11985,2615 11984,2611 11984,2608 11984,2604 11983,2604 11984,2604 11984,2600 11984,2597 11985,2593 11985,2590 11986,2586 11987,2583 11988,2579 11990,2576 11991,2573 11993,2570 11995,2567 11997,2564 11999,2561 12001,2558 12004,2556 12006,2553 12009,2551 12012,2549 12015,2546 12018,2545 12021,2543 12024,2541 12028,2540 12031,2539 12034,2538 12038,2537 12041,2536 12045,2535 12048,2535 12052,2535 12207,2534 12207,2535 12211,2535 12214,2535 12218,2536 12221,2536 12225,2537 12228,2538 12232,2539 12235,2541 12238,2542 12241,2544 12244,2546 12247,2548 12250,2550 12253,2552 12255,2555 12258,2557 12260,2560 12262,2563 12265,2566 12266,2569 12268,2572 12270,2575 12271,2579 12272,2582 12273,2585 12274,2589 12275,2592 12276,2596 12276,2599 12276,2603 12276,2604 Z M 12276,2673 L 12276,2673 Z M 11983,2534 L 11983,2534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id279">
- <rect class="BoundingBox" stroke="none" fill="none" x="11983" y="2734" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12276,2804 L 12276,2804 12276,2808 12276,2811 12275,2815 12274,2818 12274,2822 12273,2825 12271,2829 12270,2832 12268,2835 12267,2839 12265,2842 12263,2845 12261,2847 12258,2850 12256,2853 12253,2855 12250,2858 12248,2860 12245,2862 12241,2864 12238,2865 12235,2867 12232,2868 12228,2870 12225,2871 12221,2871 12218,2872 12214,2873 12211,2873 12207,2873 12053,2873 12053,2873 12049,2873 12046,2873 12042,2872 12039,2871 12035,2871 12032,2870 12028,2868 12025,2867 12022,2865 12018,2864 12015,2862 12012,2860 12010,2858 12007,2855 12004,2853 12002,2850 11999,2847 11997,2845 11995,2842 11993,2838 11992,2835 11990,2832 11989,2829 11987,2825 11986,2822 11986,2818 11985,2815 11984,2811 11984,2808 11984,2804 11983,2804 11984,2804 11984,2800 11984,2797 11985,2793 11985,2790 11986,2786 11987,2783 11988,2779 11990,2776 11991,2773 11993,2770 11995,2767 11997,2764 11999,2761 12001,2758 12004,2756 12006,2753 12009,2751 12012,2749 12015,2746 12018,2745 12021,2743 12024,2741 12028,2740 12031,2739 12034,2738 12038,2737 12041,2736 12045,2735 12048,2735 12052,2735 12207,2734 12207,2735 12211,2735 12214,2735 12218,2736 12221,2736 12225,2737 12228,2738 12232,2739 12235,2741 12238,2742 12241,2744 12244,2746 12247,2748 12250,2750 12253,2752 12255,2755 12258,2757 12260,2760 12262,2763 12265,2766 12266,2769 12268,2772 12270,2775 12271,2779 12272,2782 12273,2785 12274,2789 12275,2792 12276,2796 12276,2799 12276,2803 12276,2804 Z M 12276,2873 L 12276,2873 Z M 11983,2734 L 11983,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id280">
- <rect class="BoundingBox" stroke="none" fill="none" x="12663" y="2337" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12956,2407 L 12956,2407 12956,2411 12956,2414 12955,2418 12954,2421 12954,2425 12953,2428 12951,2432 12950,2435 12948,2438 12947,2442 12945,2445 12943,2448 12941,2450 12938,2453 12936,2456 12933,2458 12930,2461 12928,2463 12925,2465 12921,2467 12918,2468 12915,2470 12912,2471 12908,2473 12905,2474 12901,2474 12898,2475 12894,2476 12891,2476 12887,2476 12733,2476 12733,2476 12729,2476 12726,2476 12722,2475 12719,2474 12715,2474 12712,2473 12708,2471 12705,2470 12702,2468 12698,2467 12695,2465 12692,2463 12690,2461 12687,2458 12684,2456 12682,2453 12679,2450 12677,2448 12675,2445 12673,2441 12672,2438 12670,2435 12669,2432 12667,2428 12666,2425 12666,2421 12665,2418 12664,2414 12664,2411 12664,2407 12663,2407 12664,2407 12664,2403 12664,2400 12665,2396 12665,2393 12666,2389 12667,2386 12668,2382 12670,2379 12671,2376 12673,2373 12675,2370 12677,2367 12679,2364 12681,2361 12684,2359 12686,2356 12689,2354 12692,2352 12695,2349 12698,2348 12701,2346 12704,2344 12708,2343 12711,2342 12714,2341 12718,2340 12721,2339 12725,2338 12728,2338 12732,2338 12887,2337 12887,2338 12891,2338 12894,2338 12898,2339 12901,2339 12905,2340 12908,2341 12912,2342 12915,2344 12918,2345 12921,2347 12924,2349 12927,2351 12930,2353 12933,2355 12935,2358 12938,2360 12940,2363 12942,2366 12945,2369 12946,2372 12948,2375 12950,2378 12951,2382 12952,2385 12953,2388 12954,2392 12955,2395 12956,2399 12956,2402 12956,2406 12956,2407 Z M 12956,2476 L 12956,2476 Z M 12663,2337 L 12663,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id281">
- <rect class="BoundingBox" stroke="none" fill="none" x="12663" y="2537" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12956,2607 L 12956,2607 12956,2611 12956,2614 12955,2618 12954,2621 12954,2625 12953,2628 12951,2632 12950,2635 12948,2638 12947,2642 12945,2645 12943,2648 12941,2650 12938,2653 12936,2656 12933,2658 12930,2661 12928,2663 12925,2665 12921,2667 12918,2668 12915,2670 12912,2671 12908,2673 12905,2674 12901,2674 12898,2675 12894,2676 12891,2676 12887,2676 12733,2676 12733,2676 12729,2676 12726,2676 12722,2675 12719,2674 12715,2674 12712,2673 12708,2671 12705,2670 12702,2668 12698,2667 12695,2665 12692,2663 12690,2661 12687,2658 12684,2656 12682,2653 12679,2650 12677,2648 12675,2645 12673,2641 12672,2638 12670,2635 12669,2632 12667,2628 12666,2625 12666,2621 12665,2618 12664,2614 12664,2611 12664,2607 12663,2607 12664,2607 12664,2603 12664,2600 12665,2596 12665,2593 12666,2589 12667,2586 12668,2582 12670,2579 12671,2576 12673,2573 12675,2570 12677,2567 12679,2564 12681,2561 12684,2559 12686,2556 12689,2554 12692,2552 12695,2549 12698,2548 12701,2546 12704,2544 12708,2543 12711,2542 12714,2541 12718,2540 12721,2539 12725,2538 12728,2538 12732,2538 12887,2537 12887,2538 12891,2538 12894,2538 12898,2539 12901,2539 12905,2540 12908,2541 12912,2542 12915,2544 12918,2545 12921,2547 12924,2549 12927,2551 12930,2553 12933,2555 12935,2558 12938,2560 12940,2563 12942,2566 12945,2569 12946,2572 12948,2575 12950,2578 12951,2582 12952,2585 12953,2588 12954,2592 12955,2595 12956,2599 12956,2602 12956,2606 12956,2607 Z M 12956,2676 L 12956,2676 Z M 12663,2537 L 12663,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id282">
- <rect class="BoundingBox" stroke="none" fill="none" x="12663" y="2737" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12956,2807 L 12956,2807 12956,2811 12956,2814 12955,2818 12954,2821 12954,2825 12953,2828 12951,2832 12950,2835 12948,2838 12947,2842 12945,2845 12943,2848 12941,2850 12938,2853 12936,2856 12933,2858 12930,2861 12928,2863 12925,2865 12921,2867 12918,2868 12915,2870 12912,2871 12908,2873 12905,2874 12901,2874 12898,2875 12894,2876 12891,2876 12887,2876 12733,2876 12733,2876 12729,2876 12726,2876 12722,2875 12719,2874 12715,2874 12712,2873 12708,2871 12705,2870 12702,2868 12698,2867 12695,2865 12692,2863 12690,2861 12687,2858 12684,2856 12682,2853 12679,2850 12677,2848 12675,2845 12673,2841 12672,2838 12670,2835 12669,2832 12667,2828 12666,2825 12666,2821 12665,2818 12664,2814 12664,2811 12664,2807 12663,2807 12664,2807 12664,2803 12664,2800 12665,2796 12665,2793 12666,2789 12667,2786 12668,2782 12670,2779 12671,2776 12673,2773 12675,2770 12677,2767 12679,2764 12681,2761 12684,2759 12686,2756 12689,2754 12692,2752 12695,2749 12698,2748 12701,2746 12704,2744 12708,2743 12711,2742 12714,2741 12718,2740 12721,2739 12725,2738 12728,2738 12732,2738 12887,2737 12887,2738 12891,2738 12894,2738 12898,2739 12901,2739 12905,2740 12908,2741 12912,2742 12915,2744 12918,2745 12921,2747 12924,2749 12927,2751 12930,2753 12933,2755 12935,2758 12938,2760 12940,2763 12942,2766 12945,2769 12946,2772 12948,2775 12950,2778 12951,2782 12952,2785 12953,2788 12954,2792 12955,2795 12956,2799 12956,2802 12956,2806 12956,2807 Z M 12956,2876 L 12956,2876 Z M 12663,2737 L 12663,2737 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id283">
- <rect class="BoundingBox" stroke="none" fill="none" x="14607" y="2337" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14900,2407 L 14900,2407 14900,2411 14900,2414 14899,2418 14898,2421 14898,2425 14897,2428 14895,2432 14894,2435 14892,2438 14891,2442 14889,2445 14887,2448 14885,2450 14882,2453 14880,2456 14877,2458 14874,2461 14872,2463 14869,2465 14865,2467 14862,2468 14859,2470 14856,2471 14852,2473 14849,2474 14845,2474 14842,2475 14838,2476 14835,2476 14831,2476 14677,2476 14677,2476 14673,2476 14670,2476 14666,2475 14663,2474 14659,2474 14656,2473 14652,2471 14649,2470 14646,2468 14642,2467 14639,2465 14636,2463 14634,2461 14631,2458 14628,2456 14626,2453 14623,2450 14621,2448 14619,2445 14617,2441 14616,2438 14614,2435 14613,2432 14611,2428 14610,2425 14610,2421 14609,2418 14608,2414 14608,2411 14608,2407 14607,2407 14608,2407 14608,2403 14608,2400 14609,2396 14609,2393 14610,2389 14611,2386 14612,2382 14614,2379 14615,2376 14617,2373 14619,2370 14621,2367 14623,2364 14625,2361 14628,2359 14630,2356 14633,2354 14636,2352 14639,2349 14642,2348 14645,2346 14648,2344 14652,2343 14655,2342 14658,2341 14662,2340 14665,2339 14669,2338 14672,2338 14676,2338 14831,2337 14831,2338 14835,2338 14838,2338 14842,2339 14845,2339 14849,2340 14852,2341 14856,2342 14859,2344 14862,2345 14865,2347 14868,2349 14871,2351 14874,2353 14877,2355 14879,2358 14882,2360 14884,2363 14886,2366 14889,2369 14890,2372 14892,2375 14894,2378 14895,2382 14896,2385 14897,2388 14898,2392 14899,2395 14900,2399 14900,2402 14900,2406 14900,2407 Z M 14900,2476 L 14900,2476 Z M 14607,2337 L 14607,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id284">
- <rect class="BoundingBox" stroke="none" fill="none" x="14607" y="2537" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14900,2607 L 14900,2607 14900,2611 14900,2614 14899,2618 14898,2621 14898,2625 14897,2628 14895,2632 14894,2635 14892,2638 14891,2642 14889,2645 14887,2648 14885,2650 14882,2653 14880,2656 14877,2658 14874,2661 14872,2663 14869,2665 14865,2667 14862,2668 14859,2670 14856,2671 14852,2673 14849,2674 14845,2674 14842,2675 14838,2676 14835,2676 14831,2676 14677,2676 14677,2676 14673,2676 14670,2676 14666,2675 14663,2674 14659,2674 14656,2673 14652,2671 14649,2670 14646,2668 14642,2667 14639,2665 14636,2663 14634,2661 14631,2658 14628,2656 14626,2653 14623,2650 14621,2648 14619,2645 14617,2641 14616,2638 14614,2635 14613,2632 14611,2628 14610,2625 14610,2621 14609,2618 14608,2614 14608,2611 14608,2607 14607,2607 14608,2607 14608,2603 14608,2600 14609,2596 14609,2593 14610,2589 14611,2586 14612,2582 14614,2579 14615,2576 14617,2573 14619,2570 14621,2567 14623,2564 14625,2561 14628,2559 14630,2556 14633,2554 14636,2552 14639,2549 14642,2548 14645,2546 14648,2544 14652,2543 14655,2542 14658,2541 14662,2540 14665,2539 14669,2538 14672,2538 14676,2538 14831,2537 14831,2538 14835,2538 14838,2538 14842,2539 14845,2539 14849,2540 14852,2541 14856,2542 14859,2544 14862,2545 14865,2547 14868,2549 14871,2551 14874,2553 14877,2555 14879,2558 14882,2560 14884,2563 14886,2566 14889,2569 14890,2572 14892,2575 14894,2578 14895,2582 14896,2585 14897,2588 14898,2592 14899,2595 14900,2599 14900,2602 14900,2606 14900,2607 Z M 14900,2676 L 14900,2676 Z M 14607,2537 L 14607,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id285">
- <rect class="BoundingBox" stroke="none" fill="none" x="14607" y="2736" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14900,2806 L 14900,2806 14900,2810 14900,2813 14899,2817 14898,2820 14898,2824 14897,2827 14895,2831 14894,2834 14892,2837 14891,2841 14889,2844 14887,2847 14885,2849 14882,2852 14880,2855 14877,2857 14874,2860 14872,2862 14869,2864 14865,2866 14862,2867 14859,2869 14856,2870 14852,2872 14849,2873 14845,2873 14842,2874 14838,2875 14835,2875 14831,2875 14677,2875 14677,2875 14673,2875 14670,2875 14666,2874 14663,2873 14659,2873 14656,2872 14652,2870 14649,2869 14646,2867 14642,2866 14639,2864 14636,2862 14634,2860 14631,2857 14628,2855 14626,2852 14623,2849 14621,2847 14619,2844 14617,2840 14616,2837 14614,2834 14613,2831 14611,2827 14610,2824 14610,2820 14609,2817 14608,2813 14608,2810 14608,2806 14607,2806 14608,2806 14608,2802 14608,2799 14609,2795 14609,2792 14610,2788 14611,2785 14612,2781 14614,2778 14615,2775 14617,2772 14619,2769 14621,2766 14623,2763 14625,2760 14628,2758 14630,2755 14633,2753 14636,2751 14639,2748 14642,2747 14645,2745 14648,2743 14652,2742 14655,2741 14658,2740 14662,2739 14665,2738 14669,2737 14672,2737 14676,2737 14831,2736 14831,2737 14835,2737 14838,2737 14842,2738 14845,2738 14849,2739 14852,2740 14856,2741 14859,2743 14862,2744 14865,2746 14868,2748 14871,2750 14874,2752 14877,2754 14879,2757 14882,2759 14884,2762 14886,2765 14889,2768 14890,2771 14892,2774 14894,2777 14895,2781 14896,2784 14897,2787 14898,2791 14899,2794 14900,2798 14900,2801 14900,2805 14900,2806 Z M 14900,2875 L 14900,2875 Z M 14607,2736 L 14607,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id286">
- <rect class="BoundingBox" stroke="none" fill="none" x="14258" y="2336" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14551,2407 L 14551,2407 14551,2411 14551,2414 14550,2418 14549,2421 14549,2425 14548,2428 14546,2432 14545,2435 14543,2438 14542,2442 14540,2445 14538,2448 14536,2450 14533,2453 14531,2456 14528,2458 14525,2461 14523,2463 14520,2465 14516,2467 14513,2468 14510,2470 14507,2471 14503,2473 14500,2474 14496,2474 14493,2475 14489,2476 14486,2476 14482,2476 14328,2476 14328,2476 14324,2476 14321,2476 14317,2475 14314,2474 14310,2474 14307,2473 14303,2471 14300,2470 14297,2468 14293,2467 14290,2465 14287,2463 14285,2461 14282,2458 14279,2456 14277,2453 14274,2450 14272,2448 14270,2445 14268,2441 14267,2438 14265,2435 14264,2432 14262,2428 14261,2425 14261,2421 14260,2418 14259,2414 14259,2411 14259,2407 14258,2407 14259,2407 14259,2403 14259,2400 14260,2396 14260,2393 14261,2389 14262,2386 14263,2382 14265,2379 14266,2376 14268,2373 14270,2370 14272,2367 14274,2364 14276,2361 14279,2359 14281,2356 14284,2354 14287,2352 14290,2349 14293,2348 14296,2346 14299,2344 14303,2343 14306,2342 14309,2341 14313,2340 14316,2339 14320,2338 14323,2338 14327,2338 14482,2337 14482,2338 14486,2338 14489,2338 14493,2339 14496,2339 14500,2340 14503,2341 14507,2342 14510,2344 14513,2345 14516,2347 14519,2349 14522,2351 14525,2353 14528,2355 14530,2358 14533,2360 14535,2363 14537,2366 14540,2369 14541,2372 14543,2375 14545,2378 14546,2382 14547,2385 14548,2388 14549,2392 14550,2395 14551,2399 14551,2402 14551,2406 14551,2407 Z M 14551,2476 L 14551,2476 Z M 14258,2337 L 14258,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id287">
- <rect class="BoundingBox" stroke="none" fill="none" x="14258" y="2537" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14551,2607 L 14551,2607 14551,2611 14551,2614 14550,2618 14549,2621 14549,2625 14548,2628 14546,2632 14545,2635 14543,2638 14542,2642 14540,2645 14538,2648 14536,2650 14533,2653 14531,2656 14528,2658 14525,2661 14523,2663 14520,2665 14516,2667 14513,2668 14510,2670 14507,2671 14503,2673 14500,2674 14496,2674 14493,2675 14489,2676 14486,2676 14482,2676 14328,2676 14328,2676 14324,2676 14321,2676 14317,2675 14314,2674 14310,2674 14307,2673 14303,2671 14300,2670 14297,2668 14293,2667 14290,2665 14287,2663 14285,2661 14282,2658 14279,2656 14277,2653 14274,2650 14272,2648 14270,2645 14268,2641 14267,2638 14265,2635 14264,2632 14262,2628 14261,2625 14261,2621 14260,2618 14259,2614 14259,2611 14259,2607 14258,2607 14259,2607 14259,2603 14259,2600 14260,2596 14260,2593 14261,2589 14262,2586 14263,2582 14265,2579 14266,2576 14268,2573 14270,2570 14272,2567 14274,2564 14276,2561 14279,2559 14281,2556 14284,2554 14287,2552 14290,2549 14293,2548 14296,2546 14299,2544 14303,2543 14306,2542 14309,2541 14313,2540 14316,2539 14320,2538 14323,2538 14327,2538 14482,2537 14482,2538 14486,2538 14489,2538 14493,2539 14496,2539 14500,2540 14503,2541 14507,2542 14510,2544 14513,2545 14516,2547 14519,2549 14522,2551 14525,2553 14528,2555 14530,2558 14533,2560 14535,2563 14537,2566 14540,2569 14541,2572 14543,2575 14545,2578 14546,2582 14547,2585 14548,2588 14549,2592 14550,2595 14551,2599 14551,2602 14551,2606 14551,2607 Z M 14551,2676 L 14551,2676 Z M 14258,2537 L 14258,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id288">
- <rect class="BoundingBox" stroke="none" fill="none" x="14258" y="2736" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14551,2806 L 14551,2806 14551,2810 14551,2813 14550,2817 14549,2820 14549,2824 14548,2827 14546,2831 14545,2834 14543,2837 14542,2841 14540,2844 14538,2847 14536,2849 14533,2852 14531,2855 14528,2857 14525,2860 14523,2862 14520,2864 14516,2866 14513,2867 14510,2869 14507,2870 14503,2872 14500,2873 14496,2873 14493,2874 14489,2875 14486,2875 14482,2875 14328,2875 14328,2875 14324,2875 14321,2875 14317,2874 14314,2873 14310,2873 14307,2872 14303,2870 14300,2869 14297,2867 14293,2866 14290,2864 14287,2862 14285,2860 14282,2857 14279,2855 14277,2852 14274,2849 14272,2847 14270,2844 14268,2840 14267,2837 14265,2834 14264,2831 14262,2827 14261,2824 14261,2820 14260,2817 14259,2813 14259,2810 14259,2806 14258,2806 14259,2806 14259,2802 14259,2799 14260,2795 14260,2792 14261,2788 14262,2785 14263,2781 14265,2778 14266,2775 14268,2772 14270,2769 14272,2766 14274,2763 14276,2760 14279,2758 14281,2755 14284,2753 14287,2751 14290,2748 14293,2747 14296,2745 14299,2743 14303,2742 14306,2741 14309,2740 14313,2739 14316,2738 14320,2737 14323,2737 14327,2737 14482,2736 14482,2737 14486,2737 14489,2737 14493,2738 14496,2738 14500,2739 14503,2740 14507,2741 14510,2743 14513,2744 14516,2746 14519,2748 14522,2750 14525,2752 14528,2754 14530,2757 14533,2759 14535,2762 14537,2765 14540,2768 14541,2771 14543,2774 14545,2777 14546,2781 14547,2784 14548,2787 14549,2791 14550,2794 14551,2798 14551,2801 14551,2805 14551,2806 Z M 14551,2875 L 14551,2875 Z M 14258,2736 L 14258,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id289">
- <rect class="BoundingBox" stroke="none" fill="none" x="14937" y="2340" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15230,2410 L 15230,2410 15230,2414 15230,2417 15229,2421 15228,2424 15228,2428 15227,2431 15225,2435 15224,2438 15222,2441 15221,2445 15219,2448 15217,2451 15215,2453 15212,2456 15210,2459 15207,2461 15204,2464 15202,2466 15199,2468 15195,2470 15192,2471 15189,2473 15186,2474 15182,2476 15179,2477 15175,2477 15172,2478 15168,2479 15165,2479 15161,2479 15007,2479 15007,2479 15003,2479 15000,2479 14996,2478 14993,2477 14989,2477 14986,2476 14982,2474 14979,2473 14976,2471 14972,2470 14969,2468 14966,2466 14964,2464 14961,2461 14958,2459 14956,2456 14953,2453 14951,2451 14949,2448 14947,2444 14946,2441 14944,2438 14943,2435 14941,2431 14940,2428 14940,2424 14939,2421 14938,2417 14938,2414 14938,2410 14937,2410 14938,2410 14938,2406 14938,2403 14939,2399 14939,2396 14940,2392 14941,2389 14942,2385 14944,2382 14945,2379 14947,2376 14949,2373 14951,2370 14953,2367 14955,2364 14958,2362 14960,2359 14963,2357 14966,2355 14969,2352 14972,2351 14975,2349 14978,2347 14982,2346 14985,2345 14988,2344 14992,2343 14995,2342 14999,2341 15002,2341 15006,2341 15161,2340 15161,2341 15165,2341 15168,2341 15172,2342 15175,2342 15179,2343 15182,2344 15186,2345 15189,2347 15192,2348 15195,2350 15198,2352 15201,2354 15204,2356 15207,2358 15209,2361 15212,2363 15214,2366 15216,2369 15219,2372 15220,2375 15222,2378 15224,2381 15225,2385 15226,2388 15227,2391 15228,2395 15229,2398 15230,2402 15230,2405 15230,2409 15230,2410 Z M 15230,2479 L 15230,2479 Z M 14937,2340 L 14937,2340 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id290">
- <rect class="BoundingBox" stroke="none" fill="none" x="14937" y="2538" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15230,2609 L 15230,2609 15230,2613 15230,2616 15229,2620 15228,2623 15228,2627 15227,2630 15225,2634 15224,2637 15222,2640 15221,2644 15219,2647 15217,2650 15215,2652 15212,2655 15210,2658 15207,2660 15204,2663 15202,2665 15199,2667 15195,2669 15192,2670 15189,2672 15186,2673 15182,2675 15179,2676 15175,2676 15172,2677 15168,2678 15165,2678 15161,2678 15007,2678 15007,2678 15003,2678 15000,2678 14996,2677 14993,2676 14989,2676 14986,2675 14982,2673 14979,2672 14976,2670 14972,2669 14969,2667 14966,2665 14964,2663 14961,2660 14958,2658 14956,2655 14953,2652 14951,2650 14949,2647 14947,2643 14946,2640 14944,2637 14943,2634 14941,2630 14940,2627 14940,2623 14939,2620 14938,2616 14938,2613 14938,2609 14937,2609 14938,2609 14938,2605 14938,2602 14939,2598 14939,2595 14940,2591 14941,2588 14942,2584 14944,2581 14945,2578 14947,2575 14949,2572 14951,2569 14953,2566 14955,2563 14958,2561 14960,2558 14963,2556 14966,2554 14969,2551 14972,2550 14975,2548 14978,2546 14982,2545 14985,2544 14988,2543 14992,2542 14995,2541 14999,2540 15002,2540 15006,2540 15161,2539 15161,2540 15165,2540 15168,2540 15172,2541 15175,2541 15179,2542 15182,2543 15186,2544 15189,2546 15192,2547 15195,2549 15198,2551 15201,2553 15204,2555 15207,2557 15209,2560 15212,2562 15214,2565 15216,2568 15219,2571 15220,2574 15222,2577 15224,2580 15225,2584 15226,2587 15227,2590 15228,2594 15229,2597 15230,2601 15230,2604 15230,2608 15230,2609 Z M 15230,2678 L 15230,2678 Z M 14937,2539 L 14937,2539 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id291">
- <rect class="BoundingBox" stroke="none" fill="none" x="14937" y="2739" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15230,2809 L 15230,2809 15230,2813 15230,2816 15229,2820 15228,2823 15228,2827 15227,2830 15225,2834 15224,2837 15222,2840 15221,2844 15219,2847 15217,2850 15215,2852 15212,2855 15210,2858 15207,2860 15204,2863 15202,2865 15199,2867 15195,2869 15192,2870 15189,2872 15186,2873 15182,2875 15179,2876 15175,2876 15172,2877 15168,2878 15165,2878 15161,2878 15007,2878 15007,2878 15003,2878 15000,2878 14996,2877 14993,2876 14989,2876 14986,2875 14982,2873 14979,2872 14976,2870 14972,2869 14969,2867 14966,2865 14964,2863 14961,2860 14958,2858 14956,2855 14953,2852 14951,2850 14949,2847 14947,2843 14946,2840 14944,2837 14943,2834 14941,2830 14940,2827 14940,2823 14939,2820 14938,2816 14938,2813 14938,2809 14937,2809 14938,2809 14938,2805 14938,2802 14939,2798 14939,2795 14940,2791 14941,2788 14942,2784 14944,2781 14945,2778 14947,2775 14949,2772 14951,2769 14953,2766 14955,2763 14958,2761 14960,2758 14963,2756 14966,2754 14969,2751 14972,2750 14975,2748 14978,2746 14982,2745 14985,2744 14988,2743 14992,2742 14995,2741 14999,2740 15002,2740 15006,2740 15161,2739 15161,2740 15165,2740 15168,2740 15172,2741 15175,2741 15179,2742 15182,2743 15186,2744 15189,2746 15192,2747 15195,2749 15198,2751 15201,2753 15204,2755 15207,2757 15209,2760 15212,2762 15214,2765 15216,2768 15219,2771 15220,2774 15222,2777 15224,2780 15225,2784 15226,2787 15227,2790 15228,2794 15229,2797 15230,2801 15230,2804 15230,2808 15230,2809 Z M 15230,2878 L 15230,2878 Z M 14937,2739 L 14937,2739 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id292">
- <rect class="BoundingBox" stroke="none" fill="none" x="9382" y="4140" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9632" y="4536"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9632" y="4883"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id293">
- <rect class="BoundingBox" stroke="none" fill="none" x="12922" y="3488" width="609" height="382"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 13226,3869 L 12922,3869 12922,3488 13530,3488 13530,3869 13226,3869 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12981" y="3792"><tspan fill="rgb(255,255,255)" stroke="none">QPI</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id294">
- <rect class="BoundingBox" stroke="none" fill="none" x="3677" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id295">
- <rect class="BoundingBox" stroke="none" fill="none" x="6233" y="8492" width="390" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id296">
- <rect class="BoundingBox" stroke="none" fill="none" x="10867" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id297">
- <rect class="BoundingBox" stroke="none" fill="none" x="6676" y="8492" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id298">
- <rect class="BoundingBox" stroke="none" fill="none" x="4112" y="5979" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id299">
- <rect class="BoundingBox" stroke="none" fill="none" x="10432" y="5979" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id300">
- <rect class="BoundingBox" stroke="none" fill="none" x="7006" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id301">
- <rect class="BoundingBox" stroke="none" fill="none" x="11070" y="8492" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id302">
- <rect class="BoundingBox" stroke="none" fill="none" x="14196" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id303">
- <rect class="BoundingBox" stroke="none" fill="none" x="11405" y="8492" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id304">
- <rect class="BoundingBox" stroke="none" fill="none" x="7414" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id305">
- <rect class="BoundingBox" stroke="none" fill="none" x="13761" y="5979" width="382" height="382"/>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/docs/report/introduction/testbed-3n-skx.svg b/docs/report/introduction/testbed-3n-skx.svg
deleted file mode 100644
index 445b3f077d..0000000000
--- a/docs/report/introduction/testbed-3n-skx.svg
+++ /dev/null
@@ -1,2771 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="161.38mm" height="129.43mm" viewBox="741 555 16138 12943" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="741" y="555" width="16138" height="12943"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="757" y="567" width="16106" height="12918"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Arial embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1866" descent="432"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1020" d="M 15,0 L 403,552 44,1062 269,1062 432,813 C 463,766 487,726 506,694 535,738 562,777 587,811 L 766,1062 981,1062 614,562 1009,0 788,0 570,330 512,419 233,0 Z"/>
- <glyph unicode="U" horiz-adv-x="1175" d="M 1120,1466 L 1314,1466 1314,619 C 1314,472 1297,355 1264,268 1231,181 1171,111 1084,57 997,2 882,-25 741,-25 604,-25 491,-1 404,46 317,93 254,162 217,252 180,341 161,464 161,619 L 161,1466 355,1466 355,620 C 355,493 367,399 391,339 414,278 455,232 513,199 570,166 641,150 724,150 867,150 968,182 1029,247 1090,312 1120,436 1120,620 Z"/>
- <glyph unicode="P" horiz-adv-x="1124" d="M 158,0 L 158,1466 711,1466 C 808,1466 883,1461 934,1452 1006,1440 1066,1417 1115,1384 1164,1350 1203,1303 1233,1242 1262,1181 1277,1115 1277,1042 1277,917 1237,812 1158,726 1079,639 935,596 728,596 L 352,596 352,0 Z M 352,769 L 731,769 C 856,769 945,792 998,839 1051,886 1077,951 1077,1036 1077,1097 1062,1150 1031,1194 1000,1237 959,1266 908,1280 875,1289 815,1293 727,1293 L 352,1293 Z"/>
- <glyph unicode="I" horiz-adv-x="208" d="M 191,0 L 191,1466 385,1466 385,0 Z"/>
- <glyph unicode="6" horiz-adv-x="986" d="M 1019,1107 L 840,1093 C 824,1164 801,1215 772,1247 723,1298 663,1324 592,1324 535,1324 484,1308 441,1276 384,1235 340,1174 307,1095 274,1016 257,903 256,756 299,822 352,871 415,903 478,935 543,951 612,951 732,951 834,907 919,819 1003,730 1045,616 1045,476 1045,384 1025,299 986,220 946,141 891,80 822,38 753,-4 674,-25 586,-25 436,-25 314,30 219,141 124,251 77,433 77,686 77,969 129,1175 234,1304 325,1416 448,1472 603,1472 718,1472 813,1440 887,1375 960,1310 1004,1221 1019,1107 Z M 284,475 C 284,413 297,354 324,297 350,240 387,197 434,168 481,138 531,123 583,123 659,123 724,154 779,215 834,276 861,360 861,465 861,566 834,646 780,705 726,763 658,792 576,792 495,792 426,763 369,705 312,646 284,570 284,475 Z"/>
- <glyph unicode="1" horiz-adv-x="572" d="M 763,0 L 583,0 583,1147 C 540,1106 483,1064 413,1023 342,982 279,951 223,930 L 223,1104 C 324,1151 412,1209 487,1276 562,1343 616,1409 647,1472 L 763,1472 Z"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1953" descent="553"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="y" horiz-adv-x="883" d="M 563,0 L 443,-331 C 439,-342 429,-350 413,-356 396,-361 371,-364 338,-364 321,-364 307,-363 296,-362 285,-360 277,-357 272,-353 266,-349 263,-344 262,-337 261,-330 263,-322 267,-313 L 391,0 C 385,3 379,7 374,13 369,19 365,25 363,32 L 42,892 C 37,906 34,917 34,925 34,933 37,939 42,944 47,949 56,952 68,954 80,955 96,956 116,956 136,956 152,956 163,955 174,954 183,952 190,949 197,946 202,943 205,938 208,933 211,926 214,917 L 471,195 474,195 722,921 C 726,934 731,942 737,946 742,949 751,952 762,954 773,955 790,956 811,956 830,956 845,955 857,954 869,952 878,949 884,944 889,939 892,933 892,925 892,917 890,907 886,895 Z"/>
- <glyph unicode="x" horiz-adv-x="813" d="M 835,44 C 840,35 843,27 843,21 843,14 840,9 834,5 827,1 818,-2 805,-4 792,-5 775,-6 754,-6 734,-6 718,-6 707,-5 695,-4 686,-2 679,1 672,3 666,6 663,10 659,13 656,17 653,22 L 437,379 222,22 C 219,17 216,13 213,10 209,6 204,3 197,1 190,-2 180,-4 169,-5 158,-6 143,-6 124,-6 105,-6 89,-5 77,-4 64,-2 55,1 50,5 44,9 41,14 42,21 42,27 45,35 51,44 L 331,483 66,906 C 61,915 58,923 58,930 57,936 60,941 67,946 73,950 83,953 96,954 109,955 126,956 147,956 166,956 182,956 194,955 205,954 214,952 221,950 228,948 233,945 236,942 239,939 242,935 245,930 L 450,595 658,930 C 661,934 664,938 667,941 670,944 675,947 681,950 686,952 694,954 705,955 715,956 729,956 747,956 766,956 782,955 795,954 807,953 816,950 822,947 828,943 831,938 830,931 829,924 826,916 820,906 L 557,488 Z"/>
- <glyph unicode="v" horiz-adv-x="883" d="M 891,927 C 891,924 891,922 891,919 890,916 890,912 889,909 888,906 888,902 887,898 886,894 884,890 883,885 L 576,30 C 573,23 570,17 566,12 561,7 555,4 546,1 537,-2 526,-4 513,-5 500,-6 483,-6 463,-6 443,-6 426,-5 413,-4 400,-3 389,-1 381,2 372,5 366,8 361,13 356,18 353,23 350,30 L 44,885 C 41,893 39,900 38,906 36,912 35,917 35,920 34,923 34,925 34,927 34,932 35,937 38,941 41,945 45,948 52,951 58,953 66,954 77,955 87,956 100,956 115,956 134,956 150,956 162,955 173,954 182,952 189,949 195,946 200,943 203,939 206,935 208,930 211,924 L 465,182 469,170 472,182 723,924 C 724,930 727,935 730,939 733,943 738,946 745,949 751,952 760,954 771,955 782,956 796,956 814,956 829,956 842,956 852,955 862,954 870,953 876,950 881,947 885,944 888,941 890,937 891,932 891,927 Z"/>
- <glyph unicode="u" horiz-adv-x="796" d="M 924,25 C 924,20 923,15 921,12 918,8 914,5 908,2 902,-1 894,-3 885,-4 875,-5 863,-6 849,-6 834,-6 821,-5 812,-4 802,-3 794,-1 789,2 783,5 779,8 777,12 775,15 774,20 774,25 L 774,144 C 723,87 672,46 622,20 572,-6 521,-19 470,-19 410,-19 360,-9 319,11 278,31 244,58 219,93 194,127 176,167 165,213 154,258 148,314 148,379 L 148,925 C 148,930 149,935 152,939 154,942 158,946 165,949 172,952 180,954 191,955 202,956 215,956 231,956 247,956 260,956 271,955 282,954 290,952 297,949 303,946 307,942 310,939 313,935 314,930 314,925 L 314,401 C 314,348 318,306 326,275 333,243 345,216 361,194 376,171 396,154 420,142 444,129 472,123 504,123 545,123 587,138 628,167 669,196 712,239 758,296 L 758,925 C 758,930 759,935 762,939 764,942 768,946 775,949 782,952 790,954 801,955 811,956 824,956 841,956 857,956 870,956 881,955 892,954 900,952 906,949 912,946 917,942 920,939 923,935 924,930 924,925 Z"/>
- <glyph unicode="t" horiz-adv-x="606" d="M 621,91 C 621,72 620,56 617,45 614,34 610,25 605,20 600,15 592,10 581,5 570,0 558,-4 545,-7 531,-10 516,-12 501,-14 486,-16 470,-17 455,-17 408,-17 368,-11 335,2 302,14 274,33 253,58 232,83 216,114 207,153 197,191 192,236 192,288 L 192,814 66,814 C 56,814 48,819 42,830 36,841 33,858 33,882 33,895 34,905 36,914 37,923 39,930 42,936 45,941 48,945 53,948 57,950 62,951 67,951 L 192,951 192,1165 C 192,1170 193,1174 196,1178 198,1182 202,1186 209,1189 215,1192 223,1194 234,1195 245,1196 258,1197 274,1197 291,1197 304,1196 315,1195 326,1194 334,1192 340,1189 346,1186 350,1182 353,1178 356,1174 357,1170 357,1165 L 357,951 588,951 C 593,951 598,950 602,948 606,945 610,941 613,936 616,930 618,923 619,914 620,905 621,895 621,882 621,858 618,841 612,830 606,819 598,814 588,814 L 357,814 357,312 C 357,250 366,203 385,172 403,140 436,124 483,124 498,124 512,126 524,129 536,132 547,135 556,138 565,141 573,145 580,148 587,151 593,152 598,152 601,152 605,151 608,150 611,148 613,145 615,140 616,135 618,129 619,121 620,113 621,103 621,91 Z"/>
- <glyph unicode="s" horiz-adv-x="658" d="M 718,270 C 718,224 710,183 693,147 676,111 651,81 620,56 589,31 551,13 508,0 465,-13 417,-19 365,-19 333,-19 303,-17 274,-12 245,-7 219,0 196,8 173,15 153,23 137,32 121,40 109,47 102,54 95,61 89,70 86,82 83,94 81,110 81,131 81,144 82,154 83,163 84,172 86,179 88,184 90,189 93,193 97,196 100,198 104,199 109,199 116,199 127,195 142,186 156,177 174,167 195,156 216,145 240,136 269,127 298,118 331,113 368,113 396,113 421,116 444,122 467,128 486,137 503,149 520,160 533,175 542,193 551,211 555,232 555,257 555,282 549,304 536,321 523,338 505,354 484,367 463,380 439,392 412,403 385,413 358,424 330,435 301,446 274,459 247,474 220,488 195,505 174,526 153,547 136,571 123,600 110,629 103,663 103,703 103,738 110,772 124,805 137,837 158,865 185,890 212,914 247,933 288,948 329,963 376,970 431,970 455,970 479,968 503,964 527,960 549,955 568,949 587,943 604,937 618,930 631,923 642,916 649,911 656,906 660,901 663,897 665,893 667,889 668,884 669,879 670,872 671,865 672,858 672,849 672,838 672,827 672,817 671,809 670,800 668,793 666,788 663,783 660,779 657,777 654,774 650,773 646,773 640,773 631,777 620,784 609,791 594,799 576,808 558,816 537,824 513,831 488,838 460,842 429,842 401,842 376,839 355,833 334,826 316,817 303,806 289,794 279,780 272,764 265,748 261,731 261,712 261,686 268,664 281,647 294,629 312,613 333,600 354,587 379,575 406,564 433,553 461,542 490,531 518,520 546,507 574,493 601,479 626,462 647,442 668,422 686,398 699,370 712,342 718,309 718,270 Z"/>
- <glyph unicode="r" horiz-adv-x="554" d="M 679,866 C 679,851 679,839 678,829 677,819 676,811 674,806 672,800 670,796 667,793 664,790 659,788 654,788 649,788 642,790 635,793 627,796 618,799 609,802 599,805 588,807 576,810 564,813 551,814 537,814 520,814 504,811 488,804 472,797 455,786 438,771 420,756 401,735 382,710 363,685 341,654 318,617 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,794 C 327,830 350,859 372,882 393,905 414,923 433,936 452,949 472,958 491,963 510,968 529,970 548,970 557,970 567,970 578,969 589,968 600,966 612,963 624,960 635,957 645,954 654,951 661,947 665,944 669,941 672,938 673,935 674,932 676,928 677,923 678,918 678,912 679,903 679,894 679,881 679,866 Z"/>
- <glyph unicode="o" horiz-adv-x="917" d="M 990,485 C 990,412 980,344 961,283 942,221 913,168 875,123 836,78 788,44 731,19 673,-7 606,-19 530,-19 456,-19 392,-8 337,14 282,36 236,68 199,110 162,152 135,203 117,263 99,323 90,391 90,467 90,540 100,608 119,670 138,731 166,784 205,829 243,874 291,908 348,933 405,958 472,970 549,970 623,970 688,959 743,937 798,915 843,883 880,841 917,799 944,748 963,688 981,628 990,560 990,485 Z M 816,474 C 816,523 812,569 803,612 794,655 779,693 758,726 737,759 709,785 674,804 639,823 595,832 542,832 493,832 452,823 417,806 382,789 353,764 330,733 307,701 291,663 280,620 269,577 263,529 263,478 263,429 268,382 277,339 286,296 301,258 322,226 343,193 371,168 406,149 441,130 485,120 538,120 586,120 628,129 663,146 698,163 727,188 750,219 773,250 789,288 800,331 811,374 816,422 816,474 Z"/>
- <glyph unicode="n" horiz-adv-x="796" d="M 928,25 C 928,20 927,15 924,12 921,8 917,5 911,2 905,-1 897,-3 886,-4 875,-5 862,-6 846,-6 829,-6 816,-5 805,-4 794,-3 786,-1 780,2 774,5 770,8 767,12 764,15 763,20 763,25 L 763,552 C 763,603 759,645 751,676 743,707 731,734 716,757 701,780 681,797 657,809 632,821 604,827 572,827 531,827 489,812 448,783 407,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 403,904 454,931 504,957 555,970 606,970 666,970 717,960 758,940 799,919 832,892 857,858 882,824 901,784 912,739 923,693 928,638 928,574 Z"/>
- <glyph unicode="m" horiz-adv-x="1366" d="M 1488,25 C 1488,20 1487,15 1484,12 1481,8 1477,5 1471,2 1465,-1 1457,-3 1446,-4 1435,-5 1422,-6 1406,-6 1389,-6 1376,-5 1365,-4 1354,-3 1346,-1 1340,2 1333,5 1329,8 1326,12 1323,15 1322,20 1322,25 L 1322,572 C 1322,610 1319,645 1312,676 1305,707 1295,734 1280,757 1265,780 1247,797 1224,809 1201,821 1175,827 1144,827 1106,827 1068,812 1030,783 991,754 949,711 903,654 L 903,25 C 903,20 902,15 899,12 896,8 892,5 886,2 879,-1 871,-3 860,-4 849,-5 836,-6 820,-6 805,-6 792,-5 781,-4 770,-3 761,-1 755,2 748,5 744,8 742,12 739,15 738,20 738,25 L 738,572 C 738,610 734,645 727,676 720,707 709,734 694,757 679,780 661,797 639,809 616,821 590,827 559,827 521,827 483,812 444,783 405,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 402,904 450,931 497,957 545,970 594,970 631,970 665,966 695,957 724,948 750,936 773,921 796,905 815,886 831,865 847,843 860,819 871,792 901,825 930,852 957,875 984,898 1010,916 1035,930 1060,944 1084,954 1108,961 1131,967 1155,970 1179,970 1237,970 1286,960 1325,940 1364,919 1396,892 1421,858 1445,824 1462,784 1473,739 1483,693 1488,645 1488,594 Z"/>
- <glyph unicode="l" horiz-adv-x="191" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 Z"/>
- <glyph unicode="k" horiz-adv-x="762" d="M 892,26 C 892,21 891,16 888,12 885,8 881,5 875,2 868,-1 859,-3 848,-4 837,-5 822,-6 805,-6 787,-6 772,-6 761,-5 749,-4 739,-2 731,1 723,3 717,6 712,11 707,15 702,20 698,26 L 318,524 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 L 318,547 658,921 C 663,928 669,933 675,938 681,942 688,946 697,949 705,952 715,954 726,955 737,956 751,956 767,956 784,956 798,956 809,955 820,954 830,952 837,950 844,947 849,944 852,941 855,937 856,932 856,926 856,918 854,910 850,902 845,894 838,885 828,874 L 502,548 868,73 C 877,62 883,53 887,46 890,39 892,32 892,26 Z"/>
- <glyph unicode="i" horiz-adv-x="226" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,934 157,938 159,942 163,945 170,948 176,951 184,953 195,954 206,955 219,956 235,956 252,956 265,955 276,954 287,953 295,951 301,948 307,945 311,942 314,938 317,934 318,930 318,925 Z M 337,1229 C 337,1190 330,1164 315,1150 300,1136 273,1129 234,1129 195,1129 169,1136 155,1150 140,1163 133,1189 133,1227 133,1266 140,1292 155,1306 170,1320 197,1327 236,1327 275,1327 301,1320 316,1307 330,1293 337,1267 337,1229 Z"/>
- <glyph unicode="f" horiz-adv-x="623" d="M 646,1295 C 646,1282 645,1272 644,1265 643,1257 641,1251 640,1246 638,1241 636,1238 633,1237 630,1235 627,1234 623,1234 618,1234 613,1236 606,1239 599,1242 590,1245 580,1249 570,1252 558,1256 545,1259 531,1262 515,1263 497,1263 472,1263 451,1259 434,1251 417,1243 403,1231 392,1214 381,1197 374,1175 369,1148 364,1121 362,1088 362,1049 L 362,951 563,951 C 568,951 573,950 577,948 580,945 584,941 587,936 590,930 592,923 594,914 595,905 596,895 596,882 596,858 593,841 587,830 581,819 573,814 563,814 L 362,814 362,25 C 362,20 361,15 358,12 355,8 351,5 345,2 338,-1 330,-3 319,-4 308,-5 295,-6 279,-6 263,-6 250,-5 239,-4 228,-3 220,-1 214,2 207,5 203,8 200,12 197,15 196,20 196,25 L 196,814 69,814 C 58,814 50,819 45,830 40,841 37,858 37,882 37,895 38,905 39,914 40,923 42,930 45,936 48,941 51,945 55,948 59,950 64,951 69,951 L 196,951 196,1044 C 196,1107 202,1161 214,1206 225,1251 243,1287 267,1316 291,1345 321,1366 358,1380 394,1393 437,1400 486,1400 509,1400 532,1398 554,1394 576,1389 593,1385 605,1380 617,1375 625,1370 629,1366 633,1362 636,1357 639,1351 642,1344 644,1337 645,1328 646,1319 646,1308 646,1295 Z"/>
- <glyph unicode="e" horiz-adv-x="848" d="M 921,514 C 921,488 915,470 902,459 889,448 874,442 857,442 L 267,442 C 267,392 272,347 282,307 292,267 309,233 332,204 355,175 386,153 423,138 460,123 506,115 560,115 603,115 641,119 674,126 707,133 736,140 761,149 785,158 805,166 821,173 836,180 848,183 856,183 861,183 865,182 869,180 872,177 875,174 877,169 879,164 881,158 882,150 883,141 883,131 883,119 883,110 883,103 882,97 881,90 881,85 880,80 879,75 877,70 875,66 872,62 869,58 866,55 862,51 851,45 833,37 815,28 792,20 763,12 734,4 701,-3 664,-10 626,-16 586,-19 543,-19 469,-19 404,-9 349,12 293,33 246,63 208,104 170,145 141,196 122,257 103,318 93,390 93,471 93,548 103,618 123,680 143,741 172,794 210,837 247,880 293,913 346,936 399,959 459,970 525,970 596,970 656,959 706,936 755,913 796,883 828,845 860,806 884,761 899,710 914,658 921,603 921,544 Z M 755,563 C 757,650 738,718 698,767 657,816 597,841 518,841 477,841 442,833 411,818 380,803 355,782 334,757 313,732 297,702 286,669 275,635 268,600 267,563 Z"/>
- <glyph unicode="d" horiz-adv-x="848" d="M 924,25 C 924,20 923,15 921,11 918,7 914,4 909,2 903,-1 895,-3 886,-4 877,-5 865,-6 852,-6 838,-6 826,-5 817,-4 808,-3 800,-1 794,2 788,4 784,7 781,11 778,15 777,20 777,25 L 777,144 C 730,93 681,53 630,24 579,-5 523,-19 462,-19 396,-19 340,-6 293,20 246,45 209,80 180,124 151,167 129,219 116,278 103,337 96,399 96,464 96,541 104,611 121,674 138,736 162,789 195,833 228,877 268,911 317,935 365,958 421,970 484,970 537,970 585,959 629,936 672,913 715,879 758,834 L 758,1357 C 758,1362 759,1366 762,1371 764,1375 768,1378 775,1381 782,1383 790,1385 801,1387 811,1388 824,1389 840,1389 857,1389 870,1388 881,1387 892,1385 900,1383 906,1381 912,1378 917,1375 920,1371 923,1366 924,1362 924,1357 Z M 758,658 C 713,713 670,756 629,785 587,814 543,828 498,828 456,828 420,818 391,798 362,778 338,752 320,719 301,686 288,649 280,608 271,567 267,525 267,482 267,437 271,392 278,349 285,306 297,267 314,234 331,200 354,173 383,153 412,132 448,122 491,122 513,122 534,125 555,131 575,137 596,147 617,161 638,175 661,193 684,216 707,238 732,265 758,298 Z"/>
- <glyph unicode="c" horiz-adv-x="727" d="M 800,162 C 800,151 800,141 799,133 798,124 797,117 796,112 794,106 792,101 790,97 787,92 782,86 774,78 765,69 751,59 731,47 711,34 689,23 664,14 639,4 611,-4 582,-10 553,-16 522,-19 491,-19 426,-19 369,-8 319,13 269,34 227,66 194,107 160,148 134,198 117,258 99,317 90,386 90,464 90,553 101,629 123,693 144,756 174,808 212,849 249,890 294,920 345,940 396,959 451,969 510,969 539,969 567,966 594,961 621,956 645,949 668,940 691,931 711,921 729,910 746,899 759,889 767,881 775,873 781,867 784,862 787,857 789,852 791,846 793,839 794,832 795,824 796,816 796,806 796,794 796,768 793,750 787,740 781,729 774,724 765,724 755,724 744,730 731,741 718,752 701,764 681,777 661,790 637,803 609,814 580,825 547,830 508,830 429,830 368,800 326,739 283,678 262,589 262,473 262,415 268,364 279,321 290,277 306,240 327,211 348,182 375,160 406,146 437,131 472,124 512,124 550,124 583,130 612,142 641,154 666,167 687,182 708,196 725,209 740,221 754,232 765,238 773,238 778,238 782,237 785,234 788,231 791,227 794,221 796,214 798,206 799,197 800,187 800,175 800,162 Z"/>
- <glyph unicode="a" horiz-adv-x="762" d="M 831,24 C 831,16 828,10 823,6 818,2 810,-1 801,-3 792,-5 778,-6 760,-6 743,-6 729,-5 719,-3 708,-1 701,2 696,6 691,10 689,16 689,24 L 689,114 C 650,72 606,39 558,16 509,-7 458,-19 404,-19 357,-19 314,-13 276,-1 237,12 205,30 178,53 151,76 130,105 115,139 100,173 92,212 92,255 92,306 102,350 123,387 144,424 173,455 212,480 251,505 298,523 354,536 410,548 473,554 543,554 L 667,554 667,624 C 667,659 663,689 656,716 649,743 637,765 621,783 604,800 583,814 557,823 531,832 499,836 461,836 420,836 384,831 352,822 319,812 291,801 267,790 242,778 222,767 206,758 189,748 177,743 169,743 164,743 159,744 155,747 151,750 148,754 145,759 142,764 139,771 138,780 137,788 136,797 136,807 136,824 137,837 140,847 142,856 148,865 157,874 166,883 181,893 203,905 225,916 250,927 279,937 308,946 339,954 373,961 407,967 441,970 476,970 541,970 596,963 641,948 686,933 723,912 751,884 779,855 799,820 812,778 825,736 831,687 831,631 Z M 667,435 L 526,435 C 481,435 441,431 408,424 375,416 347,405 325,390 303,375 287,357 277,336 266,315 261,290 261,263 261,216 276,179 306,152 335,124 377,110 430,110 473,110 514,121 551,143 588,165 626,199 667,244 Z"/>
- <glyph unicode="X" horiz-adv-x="985" d="M 996,62 C 1005,47 1010,36 1012,27 1013,18 1011,12 1005,7 999,2 989,-2 976,-4 962,-5 944,-6 921,-6 900,-6 883,-6 871,-5 859,-4 850,-2 843,1 836,4 830,7 827,11 823,14 820,19 817,25 L 529,540 238,25 C 235,19 231,14 227,10 223,6 218,3 211,1 204,-2 194,-4 182,-5 170,-6 154,-6 134,-6 112,-6 95,-5 82,-4 69,-2 61,2 56,7 51,12 49,18 51,27 52,36 57,47 66,62 L 419,657 82,1232 C 74,1247 69,1259 67,1268 64,1277 66,1284 71,1289 76,1294 86,1297 99,1298 112,1299 131,1300 154,1300 174,1300 190,1300 203,1299 216,1298 226,1296 233,1294 240,1291 246,1288 249,1284 252,1279 256,1274 260,1269 L 538,785 814,1269 C 817,1274 821,1279 824,1284 827,1288 832,1291 839,1294 845,1296 854,1298 865,1299 876,1300 892,1300 911,1300 932,1300 949,1299 962,1298 975,1296 984,1293 990,1288 995,1283 997,1277 996,1268 995,1259 990,1247 982,1232 L 646,661 Z"/>
- <glyph unicode="U" horiz-adv-x="1003" d="M 1145,478 C 1145,399 1134,329 1111,268 1088,206 1055,154 1012,111 969,68 917,36 856,14 795,-8 725,-19 647,-19 576,-19 511,-9 452,12 393,33 343,63 301,104 259,144 227,194 204,255 181,316 170,386 170,465 L 170,1268 C 170,1273 171,1278 174,1282 177,1286 181,1289 188,1292 195,1294 203,1296 214,1298 225,1299 239,1300 256,1300 272,1300 286,1299 297,1298 308,1296 317,1294 324,1292 330,1289 334,1286 337,1282 340,1278 341,1273 341,1268 L 341,486 C 341,426 348,374 363,329 378,284 399,247 427,218 454,188 488,166 527,151 566,136 609,128 658,128 708,128 753,135 792,150 831,165 864,187 891,216 918,245 938,282 953,325 967,368 974,419 974,477 L 974,1268 C 974,1273 975,1278 978,1282 981,1286 985,1289 992,1292 999,1294 1008,1296 1019,1298 1030,1299 1043,1300 1060,1300 1076,1300 1090,1299 1101,1298 1112,1296 1120,1294 1127,1292 1133,1289 1138,1286 1141,1282 1144,1278 1145,1273 1145,1268 Z"/>
- <glyph unicode="T" horiz-adv-x="986" d="M 983,1220 C 983,1207 982,1196 981,1187 980,1178 978,1170 975,1165 972,1159 968,1155 964,1152 959,1149 954,1148 949,1148 L 585,1148 585,26 C 585,21 584,16 581,12 578,8 574,5 567,3 560,0 552,-2 541,-4 530,-5 516,-6 499,-6 483,-6 469,-5 458,-4 447,-2 438,0 431,3 424,5 420,8 417,12 414,16 413,21 413,26 L 413,1148 49,1148 C 44,1148 39,1149 35,1152 30,1155 27,1159 24,1165 21,1170 19,1178 18,1187 16,1196 15,1207 15,1220 15,1233 16,1244 18,1254 19,1263 21,1271 24,1277 27,1283 30,1287 35,1290 39,1293 44,1294 49,1294 L 949,1294 C 954,1294 959,1293 964,1290 968,1287 972,1283 975,1277 978,1271 980,1263 981,1254 982,1244 983,1233 983,1220 Z"/>
- <glyph unicode="S" horiz-adv-x="813" d="M 867,363 C 867,302 856,248 834,201 811,154 780,114 741,81 701,48 654,23 601,6 547,-11 489,-19 427,-19 384,-19 344,-15 307,-8 270,-1 237,8 208,19 179,30 154,41 135,52 115,63 101,73 94,81 86,89 80,99 77,112 73,124 71,140 71,161 71,176 72,188 73,198 74,207 76,215 79,221 82,227 85,231 89,234 93,236 98,237 103,237 112,237 126,231 143,220 160,209 181,196 208,183 235,170 267,157 305,146 342,134 386,128 435,128 472,128 507,133 538,143 569,153 595,167 618,186 640,204 657,226 669,253 681,280 687,310 687,344 687,381 679,412 662,438 645,464 623,487 596,507 569,526 538,544 503,561 468,577 432,594 395,611 358,628 323,646 288,667 253,688 222,712 195,740 168,768 146,801 129,839 112,876 103,921 103,974 103,1028 113,1076 133,1119 152,1161 180,1196 215,1225 250,1254 291,1276 340,1291 388,1306 440,1313 496,1313 525,1313 554,1311 583,1306 612,1301 639,1294 665,1286 690,1277 713,1268 733,1258 753,1247 766,1239 773,1233 779,1226 783,1221 785,1218 787,1214 789,1209 790,1204 791,1198 792,1191 793,1183 794,1175 794,1165 794,1152 794,1140 794,1129 793,1120 792,1111 790,1103 788,1097 786,1090 783,1086 780,1083 776,1080 772,1078 767,1078 760,1078 748,1083 733,1092 717,1101 698,1112 675,1124 652,1135 626,1146 595,1156 564,1165 529,1170 490,1170 454,1170 423,1165 396,1156 369,1146 347,1133 330,1117 313,1101 300,1082 291,1060 282,1038 278,1015 278,990 278,954 286,923 303,897 320,871 342,848 370,828 397,808 429,790 464,773 499,756 535,740 572,723 609,706 645,687 680,667 715,646 747,622 775,595 802,567 825,534 842,497 859,459 867,414 867,363 Z"/>
- <glyph unicode="R" horiz-adv-x="882" d="M 1035,26 C 1035,21 1034,16 1032,12 1030,8 1026,5 1019,2 1012,-1 1003,-3 991,-4 979,-5 963,-6 943,-6 926,-6 912,-5 901,-4 890,-3 881,-1 874,3 867,6 862,10 859,15 855,20 852,27 849,35 L 730,340 C 716,375 702,407 687,436 672,465 654,490 633,511 612,532 588,548 560,560 532,571 498,577 459,577 L 344,577 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 511,1294 C 544,1294 571,1293 593,1292 614,1290 634,1288 651,1286 701,1277 745,1264 784,1245 822,1226 854,1203 880,1174 906,1145 926,1113 939,1076 952,1039 958,998 958,953 958,910 952,871 941,837 929,802 912,772 890,746 868,719 842,696 811,677 780,658 746,641 708,628 729,619 749,607 766,593 783,578 800,561 815,541 830,521 844,498 857,472 870,446 884,417 897,384 L 1013,99 C 1022,75 1028,58 1031,49 1034,39 1035,31 1035,26 Z M 776,935 C 776,986 765,1029 742,1064 719,1099 681,1124 628,1139 611,1144 593,1147 572,1149 551,1151 523,1152 489,1152 L 344,1152 344,716 512,716 C 557,716 597,722 630,733 663,744 690,759 712,779 734,798 750,821 761,848 771,875 776,904 776,935 Z"/>
- <glyph unicode="P" horiz-adv-x="813" d="M 967,915 C 967,850 956,792 935,740 914,688 883,644 844,607 804,570 755,542 698,522 640,502 571,492 491,492 L 344,492 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1220 C 172,1247 179,1266 193,1277 207,1288 223,1294 240,1294 L 517,1294 C 545,1294 572,1293 598,1291 623,1288 654,1283 689,1276 724,1268 759,1254 796,1233 832,1212 863,1186 888,1155 913,1124 933,1089 947,1049 960,1008 967,964 967,915 Z M 786,901 C 786,954 776,998 757,1033 737,1068 713,1095 684,1112 655,1129 625,1140 594,1145 563,1150 532,1152 503,1152 L 344,1152 344,633 499,633 C 551,633 594,640 629,653 663,666 692,685 715,709 738,732 756,761 768,794 780,827 786,862 786,901 Z"/>
- <glyph unicode="N" horiz-adv-x="1003" d="M 1150,71 C 1150,58 1148,46 1144,37 1139,28 1134,20 1127,14 1120,8 1112,4 1103,1 1094,-2 1086,-3 1077,-3 L 1022,-3 C 1005,-3 990,-1 977,3 964,6 951,13 940,23 928,32 916,45 905,62 893,79 880,100 866,126 L 458,862 C 437,900 415,940 394,982 372,1023 352,1064 333,1103 L 331,1103 C 332,1055 333,1006 334,956 335,906 335,856 335,807 L 335,26 C 335,21 334,17 331,13 328,8 324,5 318,3 311,0 303,-2 293,-4 282,-5 269,-6 253,-6 237,-6 224,-5 214,-4 203,-2 195,0 189,3 183,5 179,8 176,13 173,17 172,21 172,26 L 172,1220 C 172,1247 179,1266 194,1277 209,1288 225,1294 242,1294 L 324,1294 C 343,1294 360,1292 373,1289 386,1286 397,1280 408,1273 418,1265 428,1254 438,1241 447,1227 458,1210 469,1189 L 783,621 C 802,586 821,553 839,520 857,487 874,454 891,422 908,390 924,359 941,328 957,297 973,265 989,234 L 990,234 C 989,287 988,342 988,399 987,456 987,510 987,563 L 987,1265 C 987,1270 988,1274 991,1278 994,1282 998,1286 1005,1289 1011,1292 1019,1294 1030,1295 1040,1296 1053,1297 1070,1297 1085,1297 1097,1296 1108,1295 1119,1294 1127,1292 1133,1289 1139,1286 1143,1282 1146,1278 1149,1274 1150,1270 1150,1265 Z"/>
- <glyph unicode="I" horiz-adv-x="191" d="M 344,26 C 344,21 343,16 340,12 337,8 333,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 242,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1268 C 172,1273 174,1278 177,1282 180,1286 185,1289 192,1292 199,1294 208,1296 219,1298 230,1299 243,1300 258,1300 275,1300 289,1299 300,1298 311,1296 319,1294 326,1292 333,1289 337,1286 340,1282 343,1278 344,1273 344,1268 Z"/>
- <glyph unicode="G" horiz-adv-x="1073" d="M 1144,1118 C 1144,1105 1143,1094 1142,1085 1141,1075 1139,1067 1136,1061 1133,1054 1130,1050 1126,1047 1122,1044 1118,1043 1113,1043 1105,1043 1092,1049 1073,1062 1054,1075 1029,1089 998,1104 967,1119 929,1133 886,1146 842,1159 790,1165 730,1165 659,1165 595,1152 538,1126 481,1100 433,1064 394,1018 355,972 325,917 304,854 283,791 272,722 272,648 272,565 284,492 307,428 330,364 361,310 402,266 443,222 491,189 548,166 604,143 666,132 733,132 773,132 814,137 855,147 896,156 934,171 969,190 L 969,567 669,567 C 658,567 649,573 644,584 638,595 635,613 635,637 635,650 636,661 637,670 638,679 641,686 644,692 647,697 650,701 654,704 658,707 663,708 669,708 L 1080,708 C 1087,708 1095,707 1102,704 1109,701 1116,697 1122,692 1128,687 1133,679 1136,670 1139,661 1141,650 1141,638 L 1141,145 C 1141,128 1138,113 1132,100 1126,87 1113,76 1094,67 1075,57 1050,46 1019,35 988,24 957,14 924,6 891,-2 858,-8 825,-12 792,-16 759,-18 726,-18 626,-18 537,-3 458,29 379,60 313,104 259,161 204,218 163,287 134,367 105,447 91,536 91,635 91,738 107,831 138,914 169,997 212,1068 269,1127 325,1186 393,1231 472,1264 551,1296 638,1312 734,1312 783,1312 830,1308 873,1299 916,1290 955,1280 989,1269 1022,1257 1051,1244 1074,1231 1097,1217 1112,1206 1121,1197 1130,1188 1136,1178 1139,1167 1142,1156 1144,1139 1144,1118 Z"/>
- <glyph unicode="D" horiz-adv-x="1020" d="M 1167,666 C 1167,554 1153,456 1124,373 1095,289 1054,220 999,165 944,110 876,68 796,41 716,14 621,0 510,0 L 236,0 C 221,0 206,5 193,16 179,26 172,44 172,70 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 529,1294 C 641,1294 736,1280 813,1251 890,1222 955,1180 1008,1126 1060,1071 1100,1005 1127,928 1154,851 1167,763 1167,666 Z M 986,659 C 986,729 977,794 960,855 943,915 916,967 879,1011 842,1055 795,1089 738,1114 681,1139 608,1151 519,1151 L 344,1151 344,144 521,144 C 604,144 673,154 730,175 787,196 834,227 872,270 910,313 939,366 958,431 977,495 986,571 986,659 Z"/>
- <glyph unicode="C" horiz-adv-x="952" d="M 1036,183 C 1036,172 1036,163 1035,155 1034,147 1033,140 1032,134 1030,128 1028,123 1025,118 1022,113 1018,108 1011,101 1004,94 990,84 969,71 948,57 921,44 890,31 858,18 822,7 781,-3 740,-12 695,-16 646,-16 562,-16 486,-2 419,26 351,54 293,95 246,150 198,205 161,272 136,353 110,433 97,525 97,630 97,737 111,833 139,917 166,1001 205,1072 255,1131 305,1189 365,1233 435,1264 504,1295 581,1310 666,1310 703,1310 740,1307 775,1300 810,1293 843,1284 873,1273 903,1262 930,1250 953,1236 976,1222 993,1211 1002,1202 1011,1193 1016,1186 1019,1181 1022,1176 1024,1171 1026,1165 1027,1158 1029,1151 1030,1142 1031,1133 1031,1123 1031,1111 1031,1098 1030,1086 1029,1077 1028,1068 1026,1060 1023,1054 1020,1047 1017,1043 1014,1040 1010,1037 1005,1035 1000,1035 991,1035 978,1042 961,1055 944,1068 923,1082 897,1098 870,1113 838,1128 801,1141 763,1154 718,1160 665,1160 608,1160 556,1149 509,1126 462,1103 421,1069 388,1024 355,979 329,925 311,861 292,796 283,723 283,640 283,558 292,486 310,423 327,360 353,307 386,265 419,222 459,190 507,169 555,147 609,136 670,136 721,136 766,142 805,155 843,168 876,182 903,198 930,213 952,227 969,240 986,253 1000,259 1010,259 1015,259 1019,258 1022,256 1025,254 1028,250 1030,245 1032,239 1034,231 1035,221 1036,211 1036,198 1036,183 Z"/>
- <glyph unicode="8" horiz-adv-x="900" d="M 954,332 C 954,276 944,226 924,183 904,139 875,102 838,72 800,42 753,19 698,4 643,-11 579,-19 508,-19 441,-19 382,-12 329,2 276,16 232,37 195,64 158,91 130,125 111,165 92,205 82,251 82,302 82,343 89,380 102,414 115,448 135,479 160,508 185,537 215,564 252,589 289,614 330,637 376,660 336,681 301,703 270,726 239,749 213,774 192,801 171,828 155,856 144,887 133,918 127,951 127,987 127,1032 135,1075 152,1115 168,1154 193,1189 226,1218 259,1247 301,1271 352,1288 403,1305 462,1313 530,1313 595,1313 652,1305 700,1290 747,1274 787,1253 818,1226 849,1199 871,1167 886,1130 901,1093 908,1054 908,1012 908,978 903,945 892,914 881,883 864,853 843,825 822,797 796,771 765,747 734,722 698,699 658,678 705,655 748,631 785,606 822,581 853,555 878,527 903,498 922,468 935,437 948,405 954,370 954,332 Z M 738,996 C 738,1024 733,1049 724,1072 714,1095 700,1114 681,1130 662,1146 639,1158 612,1167 584,1175 552,1179 517,1179 445,1179 391,1163 354,1130 317,1097 298,1053 298,996 298,970 303,946 312,924 321,901 335,880 354,860 373,840 397,821 426,802 455,783 489,763 529,742 596,777 648,815 684,857 720,899 738,945 738,996 Z M 780,314 C 780,345 774,373 763,398 752,423 735,446 712,468 689,489 660,510 626,531 591,551 551,572 506,594 464,573 427,553 396,532 364,511 338,490 318,468 297,446 282,423 272,399 261,374 256,347 256,318 256,253 278,203 323,168 367,133 433,115 521,115 606,115 671,133 715,169 758,204 780,253 780,314 Z"/>
- <glyph unicode="6" horiz-adv-x="865" d="M 957,419 C 957,362 948,308 931,255 914,202 887,155 851,115 815,74 769,42 714,18 659,-7 593,-19 518,-19 464,-19 416,-12 375,1 334,14 298,33 267,58 236,83 211,113 191,149 170,185 154,226 142,272 129,318 120,368 115,423 110,478 107,536 107,599 107,654 110,710 116,767 122,824 133,878 148,931 163,984 184,1033 211,1080 237,1126 270,1166 310,1201 349,1235 397,1262 452,1282 507,1302 572,1312 645,1312 670,1312 695,1311 720,1308 745,1305 769,1301 790,1296 811,1291 829,1285 844,1279 859,1273 868,1268 873,1265 878,1261 881,1257 884,1253 886,1248 888,1244 889,1239 890,1234 891,1228 892,1222 893,1215 893,1207 893,1198 893,1186 893,1176 893,1167 892,1158 891,1151 889,1146 886,1141 883,1137 880,1134 876,1131 871,1130 865,1130 858,1130 848,1132 835,1137 822,1142 807,1147 789,1153 771,1158 749,1163 724,1168 698,1173 668,1175 634,1175 572,1175 519,1162 474,1137 429,1112 393,1078 365,1035 336,992 315,943 302,887 288,830 280,771 278,710 295,720 315,730 337,740 358,750 382,759 408,767 433,775 460,782 489,787 518,792 548,794 581,794 651,794 710,785 758,766 806,747 845,720 875,687 904,653 925,613 938,568 951,522 957,472 957,419 Z M 783,403 C 783,442 779,477 772,509 764,540 751,567 733,589 715,611 691,628 661,640 631,652 594,658 550,658 525,658 501,656 476,652 451,647 428,641 405,634 382,626 360,617 339,607 318,596 298,585 281,573 281,487 287,415 298,357 309,299 325,253 346,218 367,183 393,158 424,143 455,128 492,120 534,120 577,120 614,128 645,144 676,160 702,182 723,209 744,236 759,266 769,300 778,333 783,368 783,403 Z"/>
- <glyph unicode="5" horiz-adv-x="848" d="M 918,416 C 918,347 906,285 883,231 860,177 827,132 784,95 741,58 691,29 632,10 573,-9 507,-19 435,-19 395,-19 357,-16 321,-11 285,-5 253,2 225,11 197,19 174,27 156,35 138,43 127,49 122,54 117,59 113,63 111,67 109,71 107,76 106,82 104,87 103,94 102,103 101,112 101,122 101,134 101,145 102,156 103,165 104,174 105,181 108,187 111,192 114,196 118,199 121,202 125,203 130,203 137,203 147,199 161,191 175,182 194,173 218,164 241,154 271,145 306,136 341,127 382,123 430,123 475,123 516,128 553,139 590,150 623,166 650,189 677,212 698,240 713,275 728,309 736,351 736,400 736,441 730,478 717,510 704,541 684,568 657,589 630,610 595,625 554,636 513,646 463,651 406,651 365,651 330,649 301,645 272,641 244,639 219,639 200,639 187,643 179,652 171,661 167,677 167,702 L 167,1229 C 167,1251 172,1267 183,1278 193,1289 208,1294 227,1294 L 800,1294 C 805,1294 811,1293 816,1290 821,1287 825,1282 828,1276 831,1270 834,1262 836,1253 837,1244 838,1233 838,1220 838,1196 835,1177 828,1164 821,1151 812,1144 800,1144 L 317,1144 317,781 C 340,784 364,786 389,787 413,788 441,788 473,788 547,788 612,779 667,762 722,744 769,719 806,687 843,654 871,615 890,569 909,523 918,472 918,416 Z"/>
- <glyph unicode="4" horiz-adv-x="951" d="M 979,368 C 979,346 976,329 969,316 962,303 953,297 941,297 L 795,297 795,25 C 795,20 794,15 791,12 788,8 784,5 777,2 770,-1 762,-3 751,-4 740,-5 727,-6 710,-6 694,-6 681,-5 670,-4 659,-3 651,-1 645,2 638,5 634,8 632,12 629,15 628,20 628,25 L 628,297 94,297 C 86,297 79,298 74,300 69,302 64,306 60,311 55,316 52,324 51,334 49,344 48,357 48,373 48,386 48,397 49,407 50,417 51,426 53,435 55,443 58,451 61,459 64,466 68,474 73,483 L 539,1269 C 542,1274 547,1279 554,1283 560,1287 568,1290 578,1293 588,1296 600,1298 615,1299 630,1300 647,1300 667,1300 689,1300 708,1299 725,1298 741,1296 754,1294 764,1291 774,1288 782,1285 787,1281 792,1276 795,1271 795,1265 L 795,439 941,439 C 952,439 962,433 969,422 976,410 979,392 979,368 Z M 628,1149 L 626,1149 205,439 628,439 Z"/>
- <glyph unicode="3" horiz-adv-x="831" d="M 914,370 C 914,311 904,257 883,210 862,162 833,121 794,87 755,53 708,27 651,9 594,-10 530,-19 459,-19 416,-19 375,-16 338,-9 300,-2 266,7 237,17 208,26 183,36 164,47 145,57 133,64 128,69 123,74 119,78 116,83 113,88 111,93 109,100 107,107 106,115 105,125 104,134 103,146 103,160 103,184 105,201 110,210 115,219 121,224 130,224 136,224 148,219 166,208 183,197 206,186 234,174 261,161 294,150 331,139 368,128 409,123 454,123 498,123 537,129 570,140 603,151 631,167 654,188 677,209 694,233 705,262 716,290 722,321 722,354 722,391 715,424 701,453 686,482 665,508 638,529 610,550 576,567 536,578 495,589 449,595 398,595 L 275,595 C 270,595 265,596 260,599 255,601 250,605 247,610 243,615 240,622 238,631 235,640 234,651 234,665 234,678 235,688 237,697 239,705 242,712 246,717 249,722 253,725 258,728 263,730 268,731 274,731 L 387,731 C 431,731 471,737 506,748 541,759 570,776 595,797 619,818 638,844 651,874 664,903 670,936 670,973 670,1000 666,1025 657,1050 648,1074 635,1095 618,1113 601,1131 579,1145 552,1156 525,1166 493,1171 458,1171 419,1171 384,1165 352,1154 319,1142 290,1129 265,1116 240,1103 219,1090 202,1079 185,1067 174,1061 167,1061 162,1061 158,1062 155,1064 151,1065 148,1069 146,1074 143,1079 142,1086 141,1095 140,1104 139,1115 139,1130 139,1140 139,1149 140,1157 141,1164 142,1171 144,1177 146,1182 148,1187 151,1192 154,1197 158,1202 165,1209 171,1215 184,1224 203,1236 222,1248 246,1260 275,1272 303,1283 336,1293 373,1301 410,1309 449,1313 492,1313 552,1313 605,1305 650,1290 695,1275 733,1253 764,1225 794,1197 817,1164 832,1125 847,1086 854,1042 854,995 854,954 849,917 838,882 827,847 812,816 791,789 770,762 745,739 715,720 685,701 650,687 611,680 L 611,678 C 656,673 697,662 734,645 771,627 802,605 829,578 856,551 877,520 892,485 907,449 914,411 914,370 Z"/>
- <glyph unicode="2" horiz-adv-x="830" d="M 924,74 C 924,62 923,51 922,42 920,33 918,25 915,19 912,12 908,8 903,5 898,2 892,0 886,0 L 171,0 C 162,0 154,1 147,4 140,6 134,10 129,15 124,20 120,28 118,38 115,48 114,60 114,75 114,88 115,100 116,110 117,120 119,129 122,137 125,144 130,152 135,160 140,167 146,175 154,184 L 405,450 C 463,511 510,566 545,615 580,664 607,708 626,748 645,788 657,824 663,857 669,890 672,920 672,949 672,978 667,1005 658,1031 649,1056 635,1079 618,1098 600,1117 578,1133 551,1144 524,1155 494,1161 459,1161 418,1161 382,1155 350,1144 317,1133 289,1120 265,1107 240,1094 220,1081 204,1070 187,1059 175,1053 167,1053 162,1053 158,1054 155,1057 151,1060 148,1064 146,1070 143,1076 141,1084 140,1094 139,1104 138,1116 138,1130 138,1140 138,1149 139,1156 140,1163 141,1170 143,1175 144,1180 146,1185 149,1190 152,1195 157,1201 165,1208 173,1215 187,1224 207,1236 226,1248 251,1260 281,1272 310,1283 343,1293 379,1301 414,1309 452,1313 491,1313 554,1313 609,1304 656,1287 703,1269 742,1245 773,1214 804,1183 827,1148 842,1107 857,1066 865,1023 865,977 865,936 861,895 854,854 847,813 831,768 808,721 784,673 750,620 705,562 660,503 601,436 527,360 L 322,146 885,146 C 890,146 896,145 901,142 906,139 910,134 914,128 917,122 920,115 922,106 923,97 924,86 924,74 Z"/>
- <glyph unicode="1" horiz-adv-x="761" d="M 927,68 C 927,55 926,45 924,36 922,27 919,20 916,15 913,10 909,6 905,4 900,1 896,0 891,0 L 215,0 C 210,0 206,1 202,4 198,6 194,10 191,15 187,20 184,27 182,36 180,45 179,55 179,68 179,80 180,90 182,99 184,108 187,115 190,121 193,126 196,131 201,134 205,137 210,138 215,138 L 485,138 485,1122 235,973 C 222,966 212,962 205,961 197,960 191,961 186,966 181,970 178,977 177,987 175,997 174,1010 174,1025 174,1036 175,1046 176,1054 177,1062 178,1069 180,1074 182,1079 185,1084 189,1088 192,1092 197,1096 203,1100 L 501,1291 C 504,1293 507,1295 511,1296 515,1297 520,1299 526,1300 532,1301 539,1302 547,1303 555,1303 565,1303 577,1303 593,1303 606,1302 617,1301 628,1300 636,1298 642,1296 648,1293 652,1290 654,1287 656,1283 657,1279 657,1275 L 657,138 891,138 C 896,138 901,137 906,134 911,131 915,126 918,121 921,115 923,108 925,99 926,90 927,80 927,68 Z"/>
- <glyph unicode="0" horiz-adv-x="900" d="M 967,650 C 967,551 959,460 944,378 928,296 902,226 866,167 829,108 782,62 723,30 664,-3 592,-19 506,-19 425,-19 356,-5 301,25 245,54 200,96 166,153 132,209 108,278 94,361 79,443 72,537 72,644 72,743 80,833 96,916 112,998 138,1069 174,1128 210,1187 257,1232 316,1265 375,1297 447,1313 532,1313 614,1313 683,1299 739,1270 794,1241 839,1198 873,1142 907,1085 931,1016 946,934 960,851 967,757 967,650 Z M 791,638 C 791,703 789,761 784,812 779,863 773,909 764,948 755,987 743,1021 729,1050 714,1078 697,1101 677,1120 657,1138 634,1151 609,1160 583,1168 554,1172 522,1172 465,1172 419,1159 384,1132 349,1105 321,1069 301,1022 280,975 266,921 259,858 252,795 248,728 248,656 248,559 253,477 263,410 273,342 289,287 311,244 332,201 360,170 394,151 427,132 468,122 516,122 553,122 586,128 615,140 643,152 667,169 688,192 708,214 725,241 738,272 751,303 762,338 770,376 778,414 784,455 787,500 790,544 791,590 791,638 Z"/>
- <glyph unicode="-" horiz-adv-x="519" d="M 558,505 C 558,479 555,461 549,451 543,441 534,436 523,436 L 105,436 C 93,436 84,441 78,452 72,462 69,480 69,505 69,530 72,548 78,558 84,568 93,573 105,573 L 523,573 C 528,573 533,572 538,570 542,568 546,564 549,559 552,553 554,546 556,537 557,528 558,518 558,505 Z"/>
- <glyph unicode=")" horiz-adv-x="381" d="M 487,537 C 487,462 482,387 473,314 464,240 450,167 431,95 412,23 390,-48 363,-118 336,-187 304,-256 268,-324 266,-327 263,-330 259,-333 255,-336 250,-338 244,-340 237,-342 230,-343 221,-344 212,-345 202,-345 190,-345 173,-345 159,-344 150,-343 140,-341 133,-338 129,-335 124,-331 122,-326 123,-321 123,-315 125,-308 128,-300 189,-165 236,-28 267,114 298,255 314,397 314,540 314,683 298,825 267,966 236,1107 189,1244 126,1378 123,1384 122,1390 123,1395 124,1400 127,1405 132,1408 137,1411 145,1414 154,1416 163,1418 176,1419 191,1419 205,1419 217,1419 226,1418 235,1417 243,1415 249,1413 254,1411 258,1409 261,1407 264,1405 266,1403 267,1400 336,1263 390,1123 429,979 468,834 487,687 487,537 Z"/>
- <glyph unicode="(" horiz-adv-x="381" d="M 495,1378 C 432,1244 385,1107 354,966 323,825 307,683 307,540 307,397 323,255 355,114 386,-27 432,-165 493,-300 496,-308 498,-315 499,-321 499,-326 497,-331 492,-335 487,-338 480,-341 471,-343 461,-344 448,-345 431,-345 419,-345 409,-345 400,-344 391,-343 384,-342 378,-340 371,-338 366,-336 362,-333 358,-330 355,-327 353,-324 317,-256 285,-187 258,-118 231,-48 208,23 189,95 170,167 156,240 147,314 138,387 133,462 133,537 133,612 138,687 149,760 159,833 174,906 193,979 212,1051 235,1122 262,1192 289,1262 320,1331 354,1400 355,1403 357,1405 360,1407 363,1409 367,1411 372,1413 377,1415 385,1417 394,1418 403,1419 415,1419 430,1419 445,1419 458,1418 467,1416 476,1414 484,1411 489,1408 494,1405 497,1400 498,1395 499,1390 498,1384 495,1378 Z"/>
- <glyph unicode=" " horiz-adv-x="467"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150 id151 id152 id153 id154 id155 id156 id157 id158 id159 id160 id161 id162 id163 id164 id165 id166 id167 id168 id169 id170 id171 id172 id173 id174 id175 id176 id177 id178 id179 id180 id181 id182 id183 id184 id185 id186 id187 id188 id189 id190 id191 id192 id193 id194 id195 id196 id197 id198 id199 id200 id201 id202 id203 id204 id205 id206 id207 id208 id209 id210 id211 id212 id213 id214 id215 id216 id217 id218 id219 id220 id221 id222 id223 id224 id225 id226 id227 id228 id229 id230 id231 id232 id233 id234 id235 id236 id237 id238 id239 id240 id241 id242 id243 id244 id245 id246 id247 id248 id249 id250 id251 id252 id253 id254 id255 id256 id257 id258 id259 id260 id261 id262 id263 id264 id265 id266 id267 id268 id269 id270 id271 id272 id273 id274 id275 id276 id277 id278 id279 id280 id281 id282 id283 id284 id285 id286 id287 id288 id289 id290 id291 id292 id293 id294 id295 id296 id297 id298 id299 id300 id301 id302 id303 id304 id305 id306 id307 id308 id309 id310 id311 id312 id313 id314 id315 id316 id317 id318 id319 id320 id321 id322 id323 id324 id325 id326 id327 id328 id329 id330 id331 id332 id333 id334 id335 id336 id337 id338 id339 id340 id341 id342 id343 id344 id345 id346 id347 id348 id349 id350 id351 id352 id353 id354 id355 id356 id357 id358 id359"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="3815" y="6281" width="2667" height="2266"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 6428,8493 L 6428,7223 3868,7223 3868,6334"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="6814" y="6281" width="4298" height="2266"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 11058,6334 L 11058,7223 6867,7223 6867,8493"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="4250" y="6308" width="6427" height="588"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10623,6361 L 10623,6842 4303,6842 4303,6361"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="7144" y="6281" width="4171" height="2266"/>
- <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 11261,8493 L 11261,7985 7197,7985 7197,6334"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="11543" y="6281" width="2898" height="2266"/>
- <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 14387,6334 L 14387,7985 11596,7985 11596,8493"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="7552" y="6281" width="6454" height="1377"/>
- <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 13952,6361 L 13952,7604 7605,7604 7605,6334"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="740" y="867" width="16140" height="12584"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="9" stroke-linejoin="miter" d="M 8810,13445 L 745,13445 745,872 16874,872 16874,13445 8810,13445 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="6142" y="555" width="5598" height="670"/>
- <g>
- <defs>
- <linearGradient id="gradient1" x1="8940" y1="564" x2="8940" y2="1215" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient1)" d="M 8941,1215 L 6151,1215 6151,564 11730,564 11730,1215 8941,1215 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8941,1215 L 6151,1215 6151,564 11730,564 11730,1215 8941,1215 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="6401" y="1005"><tspan fill="rgb(0,0,0)" stroke="none">3-Node Xeon Skylake (3n-skx)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="5347" y="9562" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 8967,9580 L 12569,9580 12569,12758 5365,12758 5365,9580 8967,9580 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8967,9580 L 12569,9580 12569,12758 5365,12758 5365,9580 8967,9580 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="11178" y="9346" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 11631,9789 L 11187,9789 11187,9355 12074,9355 12074,9789 11631,9789 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 11631,9789 L 11187,9789 11187,9355 12074,9355 12074,9789 11631,9789 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11356" y="9718"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="11931" y="8576" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11954,9294 L 11949,8594"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11954,9294 L 11954,9294 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11949,8594 L 11949,8594 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="11857" y="9286" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11941,9295 L 12015,9295 12015,9394 11866,9394 11866,9295 11941,9295 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11941,9295 L 12015,9295 12015,9394 11866,9394 11866,9295 11941,9295 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="11214" y="9289" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11298,9298 L 11372,9298 11372,9397 11223,9397 11223,9298 11298,9298 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11298,9298 L 11372,9298 11372,9397 11223,9397 11223,9298 11298,9298 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="11278" y="8531" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11296,9297 L 11298,8549"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11296,9297 L 11296,9297 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11298,8549 L 11298,8549 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="11702" y="8528" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11720,9292 L 11722,8546"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11720,9292 L 11720,9292 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11722,8546 L 11722,8546 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="11637" y="9284" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11721,9293 L 11795,9293 11795,9392 11646,9392 11646,9293 11721,9293 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11721,9293 L 11795,9293 11795,9392 11646,9392 11646,9293 11721,9293 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="11426" y="9286" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11510,9295 L 11584,9295 11584,9394 11435,9394 11435,9295 11510,9295 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11510,9295 L 11584,9295 11584,9394 11435,9394 11435,9295 11510,9295 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="11499" y="8528" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11523,9294 L 11517,8546"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11523,9294 L 11523,9294 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11517,8546 L 11517,8546 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="9256" y="10528" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 10674,11712 L 9274,11712 9274,10546 12074,10546 12074,11712 10674,11712 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 10674,11712 L 9274,11712 9274,10546 12074,10546 12074,11712 10674,11712 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10135" y="10850"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10025" y="11203"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="9743" y="11556"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="10213" y="9349" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 10666,9792 L 10222,9792 10222,9358 11109,9358 11109,9792 10666,9792 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 10666,9792 L 10222,9792 10222,9358 11109,9358 11109,9792 10666,9792 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10391" y="9721"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="10967" y="8533" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10990,9297 L 10985,8551"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10990,9297 L 10990,9297 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10985,8551 L 10985,8551 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="10893" y="9289" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10977,9298 L 11051,9298 11051,9397 10902,9397 10902,9298 10977,9298 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10977,9298 L 11051,9298 11051,9397 10902,9397 10902,9298 10977,9298 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="10249" y="9291" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10333,9300 L 10407,9300 10407,9399 10258,9399 10258,9300 10333,9300 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10333,9300 L 10407,9300 10407,9399 10258,9399 10258,9300 10333,9300 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="10314" y="8533" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10332,9299 L 10334,8551"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10332,9299 L 10332,9299 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10334,8551 L 10334,8551 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="10738" y="8531" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10756,9295 L 10758,8549"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10756,9295 L 10756,9295 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10758,8549 L 10758,8549 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="10672" y="9287" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10756,9296 L 10830,9296 10830,9395 10681,9395 10681,9296 10756,9296 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10756,9296 L 10830,9296 10830,9395 10681,9395 10681,9296 10756,9296 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="10461" y="9289" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10545,9298 L 10619,9298 10619,9397 10470,9397 10470,9298 10545,9298 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10545,9298 L 10619,9298 10619,9397 10470,9397 10470,9298 10545,9298 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="10534" y="8531" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10558,9297 L 10552,8549"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10558,9297 L 10558,9297 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10552,8549 L 10552,8549 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="9264" y="9351" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 9717,9794 L 9273,9794 9273,9360 10160,9360 10160,9794 9717,9794 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 9717,9794 L 9273,9794 9273,9360 10160,9360 10160,9794 9717,9794 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9442" y="9723"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="10018" y="8535" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10041,9299 L 10036,8553"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10041,9299 L 10041,9299 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10036,8553 L 10036,8553 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="9944" y="9291" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10028,9300 L 10102,9300 10102,9399 9953,9399 9953,9300 10028,9300 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10028,9300 L 10102,9300 10102,9399 9953,9399 9953,9300 10028,9300 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="9300" y="9293" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 9384,9302 L 9458,9302 9458,9401 9309,9401 9309,9302 9384,9302 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9384,9302 L 9458,9302 9458,9401 9309,9401 9309,9302 9384,9302 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="9365" y="8583" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9383,9301 L 9385,8601"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9383,9301 L 9383,9301 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9385,8601 L 9385,8601 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="9789" y="8533" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9807,9297 L 9809,8551"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9807,9297 L 9807,9297 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9809,8551 L 9809,8551 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="9723" y="9289" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 9807,9298 L 9881,9298 9881,9397 9732,9397 9732,9298 9807,9298 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9807,9298 L 9881,9298 9881,9397 9732,9397 9732,9298 9807,9298 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="9512" y="9291" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 9596,9300 L 9670,9300 9670,9399 9521,9399 9521,9300 9596,9300 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9596,9300 L 9670,9300 9670,9399 9521,9399 9521,9300 9596,9300 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="9585" y="8533" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9609,9299 L 9603,8551"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9609,9299 L 9609,9299 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9603,8551 L 9603,8551 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="11324" y="9796" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 11602,9796 L 11879,9957 11741,9957 11741,10367 11879,10367 11602,10529 11324,10367 11463,10367 11463,9957 11324,9957 11602,9796 Z M 11879,9796 L 11879,9796 Z M 11324,10529 L 11324,10529 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="11363" y="9993" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 11601,10336 L 11363,10336 11363,9993 11838,9993 11838,10336 11601,10336 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11372" y="10278"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="10347" y="9800" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 10625,9800 L 10902,9961 10764,9961 10764,10371 10902,10371 10625,10533 10347,10371 10486,10371 10486,9961 10347,9961 10625,9800 Z M 10902,9800 L 10902,9800 Z M 10347,10533 L 10347,10533 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="10385" y="9997" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 10623,10340 L 10385,10340 10385,9997 10860,9997 10860,10340 10623,10340 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10394" y="10282"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="9394" y="9809" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 9672,9809 L 9949,9970 9811,9970 9811,10380 9949,10380 9672,10542 9394,10380 9533,10380 9533,9970 9394,9970 9672,9809 Z M 9949,9809 L 9949,9809 Z M 9394,10542 L 9394,10542 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="9433" y="10006" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 9671,10349 L 9433,10349 9433,10006 9908,10006 9908,10349 9671,10349 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9442" y="10291"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="5937" y="10543" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 7355,11727 L 5955,11727 5955,10561 8755,10561 8755,11727 7355,11727 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 7355,11727 L 5955,11727 5955,10561 8755,10561 8755,11727 7355,11727 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6816" y="10865"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6706" y="11218"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6424" y="11571"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="7863" y="9352" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 8316,9795 L 7872,9795 7872,9361 8759,9361 8759,9795 8316,9795 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8316,9795 L 7872,9795 7872,9361 8759,9361 8759,9795 8316,9795 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8041" y="9724"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="8617" y="8582" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8640,9300 L 8635,8600"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8640,9300 L 8640,9300 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8635,8600 L 8635,8600 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="8543" y="9292" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 8627,9301 L 8701,9301 8701,9400 8552,9400 8552,9301 8627,9301 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 8627,9301 L 8701,9301 8701,9400 8552,9400 8552,9301 8627,9301 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="7899" y="9294" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7983,9303 L 8057,9303 8057,9402 7908,9402 7908,9303 7983,9303 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7983,9303 L 8057,9303 8057,9402 7908,9402 7908,9303 7983,9303 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="7964" y="8536" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7982,9302 L 7984,8554"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7982,9302 L 7982,9302 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7984,8554 L 7984,8554 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="8388" y="8534" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8406,9298 L 8408,8552"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8406,9298 L 8406,9298 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8408,8552 L 8408,8552 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="8322" y="9290" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 8406,9299 L 8480,9299 8480,9398 8331,9398 8331,9299 8406,9299 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 8406,9299 L 8480,9299 8480,9398 8331,9398 8331,9299 8406,9299 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="8111" y="9292" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 8195,9301 L 8269,9301 8269,9400 8120,9400 8120,9301 8195,9301 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 8195,9301 L 8269,9301 8269,9400 8120,9400 8120,9301 8195,9301 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="8184" y="8534" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8208,9300 L 8202,8552"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8208,9300 L 8208,9300 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8202,8552 L 8202,8552 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="6899" y="9354" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 7352,9797 L 6908,9797 6908,9363 7795,9363 7795,9797 7352,9797 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7352,9797 L 6908,9797 6908,9363 7795,9363 7795,9797 7352,9797 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7077" y="9726"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="7652" y="8538" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7675,9302 L 7670,8556"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7675,9302 L 7675,9302 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7670,8556 L 7670,8556 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="7578" y="9294" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7662,9303 L 7736,9303 7736,9402 7587,9402 7587,9303 7662,9303 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7662,9303 L 7736,9303 7736,9402 7587,9402 7587,9303 7662,9303 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="6934" y="9296" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7018,9305 L 7092,9305 7092,9404 6943,9404 6943,9305 7018,9305 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7018,9305 L 7092,9305 7092,9404 6943,9404 6943,9305 7018,9305 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="6999" y="8538" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7017,9304 L 7019,8556"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7017,9304 L 7017,9304 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7019,8556 L 7019,8556 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="7423" y="8536" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7441,9300 L 7443,8554"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7441,9300 L 7441,9300 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7443,8554 L 7443,8554 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="7358" y="9292" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7442,9301 L 7516,9301 7516,9400 7367,9400 7367,9301 7442,9301 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7442,9301 L 7516,9301 7516,9400 7367,9400 7367,9301 7442,9301 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="7147" y="9294" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7231,9303 L 7305,9303 7305,9402 7156,9402 7156,9303 7231,9303 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7231,9303 L 7305,9303 7305,9402 7156,9402 7156,9303 7231,9303 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="7220" y="8536" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7244,9302 L 7238,8554"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7244,9302 L 7244,9302 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7238,8554 L 7238,8554 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="5950" y="9356" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 6403,9799 L 5959,9799 5959,9365 6846,9365 6846,9799 6403,9799 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6403,9799 L 5959,9799 5959,9365 6846,9365 6846,9799 6403,9799 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6128" y="9728"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="6703" y="8540" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6726,9304 L 6721,8558"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6726,9304 L 6726,9304 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6721,8558 L 6721,8558 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="6629" y="9296" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6713,9305 L 6787,9305 6787,9404 6638,9404 6638,9305 6713,9305 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6713,9305 L 6787,9305 6787,9404 6638,9404 6638,9305 6713,9305 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="5986" y="9298" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6070,9307 L 6144,9307 6144,9406 5995,9406 5995,9307 6070,9307 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6070,9307 L 6144,9307 6144,9406 5995,9406 5995,9307 6070,9307 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="6051" y="8588" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6069,9306 L 6071,8606"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6069,9306 L 6069,9306 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6071,8606 L 6071,8606 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="6474" y="8538" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6492,9302 L 6494,8556"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6492,9302 L 6492,9302 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6494,8556 L 6494,8556 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="6409" y="9294" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6493,9303 L 6567,9303 6567,9402 6418,9402 6418,9303 6493,9303 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6493,9303 L 6567,9303 6567,9402 6418,9402 6418,9303 6493,9303 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="6198" y="9296" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6282,9305 L 6356,9305 6356,9404 6207,9404 6207,9305 6282,9305 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6282,9305 L 6356,9305 6356,9404 6207,9404 6207,9305 6282,9305 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="6271" y="8538" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6295,9304 L 6289,8556"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6295,9304 L 6295,9304 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6289,8556 L 6289,8556 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id74">
- <rect class="BoundingBox" stroke="none" fill="none" x="8010" y="9801" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 8288,9801 L 8565,9962 8427,9962 8427,10372 8565,10372 8288,10534 8010,10372 8149,10372 8149,9962 8010,9962 8288,9801 Z M 8565,9801 L 8565,9801 Z M 8010,10534 L 8010,10534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id75">
- <rect class="BoundingBox" stroke="none" fill="none" x="8048" y="9998" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 8286,10341 L 8048,10341 8048,9998 8523,9998 8523,10341 8286,10341 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8057" y="10283"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id76">
- <rect class="BoundingBox" stroke="none" fill="none" x="7032" y="9806" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 7310,9806 L 7587,9967 7449,9967 7449,10377 7587,10377 7310,10539 7032,10377 7171,10377 7171,9967 7032,9967 7310,9806 Z M 7587,9806 L 7587,9806 Z M 7032,10539 L 7032,10539 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id77">
- <rect class="BoundingBox" stroke="none" fill="none" x="7071" y="10003" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 7309,10346 L 7071,10346 7071,10003 7546,10003 7546,10346 7309,10346 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7080" y="10288"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id78">
- <rect class="BoundingBox" stroke="none" fill="none" x="6080" y="9814" width="557" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 6358,9814 L 6635,9975 6497,9975 6497,10385 6635,10385 6358,10547 6080,10385 6219,10385 6219,9975 6080,9975 6358,9814 Z M 6635,9814 L 6635,9814 Z M 6080,10547 L 6080,10547 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id79">
- <rect class="BoundingBox" stroke="none" fill="none" x="6118" y="10012" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 6356,10355 L 6118,10355 6118,10012 6593,10012 6593,10355 6356,10355 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6127" y="10297"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id80">
- <rect class="BoundingBox" stroke="none" fill="none" x="9342" y="8439" width="2666" height="234"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 9395,8619 L 9395,8619 9395,8612 9395,8606 9396,8599 9396,8593 9397,8587 9398,8580 9398,8574 9400,8568 9401,8562 9402,8556 9403,8551 9405,8545 9407,8540 9408,8535 9410,8531 9412,8526 9414,8522 9416,8518 9418,8514 9421,8511 9423,8508 9425,8505 9428,8502 9430,8500 9433,8498 9435,8497 9438,8496 9441,8495 9443,8494 9446,8494 11902,8492 11902,8492 11905,8492 11907,8493 11910,8494 11913,8495 11915,8496 11918,8498 11920,8500 11923,8503 11925,8506 11927,8509 11930,8512 11932,8516 11934,8520 11936,8524 11938,8529 11940,8534 11941,8539 11943,8544 11945,8549 11946,8555 11947,8561 11948,8567 11950,8573 11950,8579 11951,8585 11952,8592 11952,8598 11953,8605 11953,8611 11953,8618"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 9395,8619 L 9395,8619 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 11954,8492 L 11954,8492 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id81">
- <rect class="BoundingBox" stroke="none" fill="none" x="6023" y="8448" width="2666" height="234"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6076,8628 L 6076,8628 6076,8621 6076,8615 6077,8608 6077,8602 6078,8596 6079,8589 6079,8583 6081,8577 6082,8571 6083,8565 6084,8560 6086,8554 6088,8549 6089,8544 6091,8540 6093,8535 6095,8531 6097,8527 6099,8523 6102,8520 6104,8517 6106,8514 6109,8511 6111,8509 6114,8507 6116,8506 6119,8505 6122,8504 6124,8503 6127,8503 8583,8501 8583,8501 8586,8501 8588,8502 8591,8503 8594,8504 8596,8505 8599,8507 8601,8509 8604,8512 8606,8515 8608,8518 8611,8521 8613,8525 8615,8529 8617,8533 8619,8538 8621,8543 8622,8548 8624,8553 8626,8558 8627,8564 8628,8570 8629,8576 8631,8582 8631,8588 8632,8594 8633,8601 8633,8607 8634,8614 8634,8620 8634,8627"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6076,8628 L 6076,8628 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 8635,8501 L 8635,8501 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id82">
- <rect class="BoundingBox" stroke="none" fill="none" x="5415" y="11739" width="1219" height="930"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5415" y="12127"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5415" y="12592"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id83">
- <rect class="BoundingBox" stroke="none" fill="none" x="7036" y="12740" width="4221" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="7288" y="13288"><tspan fill="rgb(32,56,100)" stroke="none">Traffic Generator (TG)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id84">
- <rect class="BoundingBox" stroke="none" fill="none" x="8701" y="11887" width="1147" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8951" y="12294"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id85">
- <rect class="BoundingBox" stroke="none" fill="none" x="8040" y="11937" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8334,12007 L 8334,12007 8334,12011 8334,12014 8333,12018 8332,12021 8332,12025 8331,12028 8329,12032 8328,12035 8326,12038 8325,12042 8323,12045 8321,12048 8319,12050 8316,12053 8314,12056 8311,12058 8308,12061 8306,12063 8303,12065 8299,12067 8296,12068 8293,12070 8290,12071 8286,12073 8283,12074 8279,12074 8276,12075 8272,12076 8269,12076 8265,12076 8111,12076 8111,12076 8107,12076 8104,12076 8100,12075 8097,12074 8093,12074 8090,12073 8086,12071 8083,12070 8080,12068 8076,12067 8073,12065 8070,12063 8068,12061 8065,12058 8062,12056 8060,12053 8057,12050 8055,12048 8053,12045 8051,12041 8050,12038 8048,12035 8047,12032 8045,12028 8044,12025 8044,12021 8043,12018 8042,12014 8042,12011 8042,12007 8041,12007 8042,12007 8042,12003 8042,12000 8043,11996 8043,11993 8044,11989 8045,11986 8046,11982 8048,11979 8049,11976 8051,11973 8053,11970 8055,11967 8057,11964 8059,11961 8062,11959 8064,11956 8067,11954 8070,11952 8073,11949 8076,11948 8079,11946 8082,11944 8086,11943 8089,11942 8092,11941 8096,11940 8099,11939 8103,11938 8106,11938 8110,11938 8265,11937 8265,11938 8269,11938 8272,11938 8276,11939 8279,11939 8283,11940 8286,11941 8290,11942 8293,11944 8296,11945 8299,11947 8302,11949 8305,11951 8308,11953 8311,11955 8313,11958 8316,11960 8318,11963 8320,11966 8323,11969 8324,11972 8326,11975 8328,11978 8329,11982 8330,11985 8331,11988 8332,11992 8333,11995 8334,11999 8334,12002 8334,12006 8334,12007 Z M 8334,12076 L 8334,12076 Z M 8041,11937 L 8041,11937 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id86">
- <rect class="BoundingBox" stroke="none" fill="none" x="8041" y="12137" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8334,12207 L 8334,12207 8334,12211 8334,12214 8333,12218 8332,12221 8332,12225 8331,12228 8329,12232 8328,12235 8326,12238 8325,12242 8323,12245 8321,12248 8319,12250 8316,12253 8314,12256 8311,12258 8308,12261 8306,12263 8303,12265 8299,12267 8296,12268 8293,12270 8290,12271 8286,12273 8283,12274 8279,12274 8276,12275 8272,12276 8269,12276 8265,12276 8111,12276 8111,12276 8107,12276 8104,12276 8100,12275 8097,12274 8093,12274 8090,12273 8086,12271 8083,12270 8080,12268 8076,12267 8073,12265 8070,12263 8068,12261 8065,12258 8062,12256 8060,12253 8057,12250 8055,12248 8053,12245 8051,12241 8050,12238 8048,12235 8047,12232 8045,12228 8044,12225 8044,12221 8043,12218 8042,12214 8042,12211 8042,12207 8041,12207 8042,12207 8042,12203 8042,12200 8043,12196 8043,12193 8044,12189 8045,12186 8046,12182 8048,12179 8049,12176 8051,12173 8053,12170 8055,12167 8057,12164 8059,12161 8062,12159 8064,12156 8067,12154 8070,12152 8073,12149 8076,12148 8079,12146 8082,12144 8086,12143 8089,12142 8092,12141 8096,12140 8099,12139 8103,12138 8106,12138 8110,12138 8265,12137 8265,12138 8269,12138 8272,12138 8276,12139 8279,12139 8283,12140 8286,12141 8290,12142 8293,12144 8296,12145 8299,12147 8302,12149 8305,12151 8308,12153 8311,12155 8313,12158 8316,12160 8318,12163 8320,12166 8323,12169 8324,12172 8326,12175 8328,12178 8329,12182 8330,12185 8331,12188 8332,12192 8333,12195 8334,12199 8334,12202 8334,12206 8334,12207 Z M 8334,12276 L 8334,12276 Z M 8041,12137 L 8041,12137 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id87">
- <rect class="BoundingBox" stroke="none" fill="none" x="8041" y="12335" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8334,12406 L 8334,12406 8334,12410 8334,12413 8333,12417 8332,12420 8332,12424 8331,12427 8329,12431 8328,12434 8326,12437 8325,12441 8323,12444 8321,12447 8319,12449 8316,12452 8314,12455 8311,12457 8308,12460 8306,12462 8303,12464 8299,12466 8296,12467 8293,12469 8290,12470 8286,12472 8283,12473 8279,12473 8276,12474 8272,12475 8269,12475 8265,12475 8111,12475 8111,12475 8107,12475 8104,12475 8100,12474 8097,12473 8093,12473 8090,12472 8086,12470 8083,12469 8080,12467 8076,12466 8073,12464 8070,12462 8068,12460 8065,12457 8062,12455 8060,12452 8057,12449 8055,12447 8053,12444 8051,12440 8050,12437 8048,12434 8047,12431 8045,12427 8044,12424 8044,12420 8043,12417 8042,12413 8042,12410 8042,12406 8041,12406 8042,12406 8042,12402 8042,12399 8043,12395 8043,12392 8044,12388 8045,12385 8046,12381 8048,12378 8049,12375 8051,12372 8053,12369 8055,12366 8057,12363 8059,12360 8062,12358 8064,12355 8067,12353 8070,12351 8073,12348 8076,12347 8079,12345 8082,12343 8086,12342 8089,12341 8092,12340 8096,12339 8099,12338 8103,12337 8106,12337 8110,12337 8265,12336 8265,12337 8269,12337 8272,12337 8276,12338 8279,12338 8283,12339 8286,12340 8290,12341 8293,12343 8296,12344 8299,12346 8302,12348 8305,12350 8308,12352 8311,12354 8313,12357 8316,12359 8318,12362 8320,12365 8323,12368 8324,12371 8326,12374 8328,12377 8329,12381 8330,12384 8331,12387 8332,12391 8333,12394 8334,12398 8334,12401 8334,12405 8334,12406 Z M 8334,12475 L 8334,12475 Z M 8041,12336 L 8041,12336 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id88">
- <rect class="BoundingBox" stroke="none" fill="none" x="7691" y="11937" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7985,12007 L 7985,12007 7985,12011 7985,12014 7984,12018 7983,12021 7983,12025 7982,12028 7980,12032 7979,12035 7977,12038 7976,12042 7974,12045 7972,12048 7970,12050 7967,12053 7965,12056 7962,12058 7959,12061 7957,12063 7954,12065 7950,12067 7947,12068 7944,12070 7941,12071 7937,12073 7934,12074 7930,12074 7927,12075 7923,12076 7920,12076 7916,12076 7762,12076 7762,12076 7758,12076 7755,12076 7751,12075 7748,12074 7744,12074 7741,12073 7737,12071 7734,12070 7731,12068 7727,12067 7724,12065 7721,12063 7719,12061 7716,12058 7713,12056 7711,12053 7708,12050 7706,12048 7704,12045 7702,12041 7701,12038 7699,12035 7698,12032 7696,12028 7695,12025 7695,12021 7694,12018 7693,12014 7693,12011 7693,12007 7692,12007 7693,12007 7693,12003 7693,12000 7694,11996 7694,11993 7695,11989 7696,11986 7697,11982 7699,11979 7700,11976 7702,11973 7704,11970 7706,11967 7708,11964 7710,11961 7713,11959 7715,11956 7718,11954 7721,11952 7724,11949 7727,11948 7730,11946 7733,11944 7737,11943 7740,11942 7743,11941 7747,11940 7750,11939 7754,11938 7757,11938 7761,11938 7916,11937 7916,11938 7920,11938 7923,11938 7927,11939 7930,11939 7934,11940 7937,11941 7941,11942 7944,11944 7947,11945 7950,11947 7953,11949 7956,11951 7959,11953 7962,11955 7964,11958 7967,11960 7969,11963 7971,11966 7974,11969 7975,11972 7977,11975 7979,11978 7980,11982 7981,11985 7982,11988 7983,11992 7984,11995 7985,11999 7985,12002 7985,12006 7985,12007 Z M 7985,12076 L 7985,12076 Z M 7692,11937 L 7692,11937 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id89">
- <rect class="BoundingBox" stroke="none" fill="none" x="7692" y="12137" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7985,12207 L 7985,12207 7985,12211 7985,12214 7984,12218 7983,12221 7983,12225 7982,12228 7980,12232 7979,12235 7977,12238 7976,12242 7974,12245 7972,12248 7970,12250 7967,12253 7965,12256 7962,12258 7959,12261 7957,12263 7954,12265 7950,12267 7947,12268 7944,12270 7941,12271 7937,12273 7934,12274 7930,12274 7927,12275 7923,12276 7920,12276 7916,12276 7762,12276 7762,12276 7758,12276 7755,12276 7751,12275 7748,12274 7744,12274 7741,12273 7737,12271 7734,12270 7731,12268 7727,12267 7724,12265 7721,12263 7719,12261 7716,12258 7713,12256 7711,12253 7708,12250 7706,12248 7704,12245 7702,12241 7701,12238 7699,12235 7698,12232 7696,12228 7695,12225 7695,12221 7694,12218 7693,12214 7693,12211 7693,12207 7692,12207 7693,12207 7693,12203 7693,12200 7694,12196 7694,12193 7695,12189 7696,12186 7697,12182 7699,12179 7700,12176 7702,12173 7704,12170 7706,12167 7708,12164 7710,12161 7713,12159 7715,12156 7718,12154 7721,12152 7724,12149 7727,12148 7730,12146 7733,12144 7737,12143 7740,12142 7743,12141 7747,12140 7750,12139 7754,12138 7757,12138 7761,12138 7916,12137 7916,12138 7920,12138 7923,12138 7927,12139 7930,12139 7934,12140 7937,12141 7941,12142 7944,12144 7947,12145 7950,12147 7953,12149 7956,12151 7959,12153 7962,12155 7964,12158 7967,12160 7969,12163 7971,12166 7974,12169 7975,12172 7977,12175 7979,12178 7980,12182 7981,12185 7982,12188 7983,12192 7984,12195 7985,12199 7985,12202 7985,12206 7985,12207 Z M 7985,12276 L 7985,12276 Z M 7692,12137 L 7692,12137 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id90">
- <rect class="BoundingBox" stroke="none" fill="none" x="7692" y="12336" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7985,12406 L 7985,12406 7985,12410 7985,12413 7984,12417 7983,12420 7983,12424 7982,12427 7980,12431 7979,12434 7977,12437 7976,12441 7974,12444 7972,12447 7970,12449 7967,12452 7965,12455 7962,12457 7959,12460 7957,12462 7954,12464 7950,12466 7947,12467 7944,12469 7941,12470 7937,12472 7934,12473 7930,12473 7927,12474 7923,12475 7920,12475 7916,12475 7762,12475 7762,12475 7758,12475 7755,12475 7751,12474 7748,12473 7744,12473 7741,12472 7737,12470 7734,12469 7731,12467 7727,12466 7724,12464 7721,12462 7719,12460 7716,12457 7713,12455 7711,12452 7708,12449 7706,12447 7704,12444 7702,12440 7701,12437 7699,12434 7698,12431 7696,12427 7695,12424 7695,12420 7694,12417 7693,12413 7693,12410 7693,12406 7692,12406 7693,12406 7693,12402 7693,12399 7694,12395 7694,12392 7695,12388 7696,12385 7697,12381 7699,12378 7700,12375 7702,12372 7704,12369 7706,12366 7708,12363 7710,12360 7713,12358 7715,12355 7718,12353 7721,12351 7724,12348 7727,12347 7730,12345 7733,12343 7737,12342 7740,12341 7743,12340 7747,12339 7750,12338 7754,12337 7757,12337 7761,12337 7916,12336 7916,12337 7920,12337 7923,12337 7927,12338 7930,12338 7934,12339 7937,12340 7941,12341 7944,12343 7947,12344 7950,12346 7953,12348 7956,12350 7959,12352 7962,12354 7964,12357 7967,12359 7969,12362 7971,12365 7974,12368 7975,12371 7977,12374 7979,12377 7980,12381 7981,12384 7982,12387 7983,12391 7984,12394 7985,12398 7985,12401 7985,12405 7985,12406 Z M 7985,12475 L 7985,12475 Z M 7692,12336 L 7692,12336 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id91">
- <rect class="BoundingBox" stroke="none" fill="none" x="8371" y="11940" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8664,12010 L 8664,12010 8664,12014 8664,12017 8663,12021 8662,12024 8662,12028 8661,12031 8659,12035 8658,12038 8656,12041 8655,12045 8653,12048 8651,12051 8649,12053 8646,12056 8644,12059 8641,12061 8638,12064 8636,12066 8633,12068 8629,12070 8626,12071 8623,12073 8620,12074 8616,12076 8613,12077 8609,12077 8606,12078 8602,12079 8599,12079 8595,12079 8441,12079 8441,12079 8437,12079 8434,12079 8430,12078 8427,12077 8423,12077 8420,12076 8416,12074 8413,12073 8410,12071 8406,12070 8403,12068 8400,12066 8398,12064 8395,12061 8392,12059 8390,12056 8387,12053 8385,12051 8383,12048 8381,12044 8380,12041 8378,12038 8377,12035 8375,12031 8374,12028 8374,12024 8373,12021 8372,12017 8372,12014 8372,12010 8371,12010 8372,12010 8372,12006 8372,12003 8373,11999 8373,11996 8374,11992 8375,11989 8376,11985 8378,11982 8379,11979 8381,11976 8383,11973 8385,11970 8387,11967 8389,11964 8392,11962 8394,11959 8397,11957 8400,11955 8403,11952 8406,11951 8409,11949 8412,11947 8416,11946 8419,11945 8422,11944 8426,11943 8429,11942 8433,11941 8436,11941 8440,11941 8595,11940 8595,11941 8599,11941 8602,11941 8606,11942 8609,11942 8613,11943 8616,11944 8620,11945 8623,11947 8626,11948 8629,11950 8632,11952 8635,11954 8638,11956 8641,11958 8643,11961 8646,11963 8648,11966 8650,11969 8653,11972 8654,11975 8656,11978 8658,11981 8659,11985 8660,11988 8661,11991 8662,11995 8663,11998 8664,12002 8664,12005 8664,12009 8664,12010 Z M 8664,12079 L 8664,12079 Z M 8371,11940 L 8371,11940 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id92">
- <rect class="BoundingBox" stroke="none" fill="none" x="8371" y="12140" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8664,12210 L 8664,12210 8664,12214 8664,12217 8663,12221 8662,12224 8662,12228 8661,12231 8659,12235 8658,12238 8656,12241 8655,12245 8653,12248 8651,12251 8649,12253 8646,12256 8644,12259 8641,12261 8638,12264 8636,12266 8633,12268 8629,12270 8626,12271 8623,12273 8620,12274 8616,12276 8613,12277 8609,12277 8606,12278 8602,12279 8599,12279 8595,12279 8441,12279 8441,12279 8437,12279 8434,12279 8430,12278 8427,12277 8423,12277 8420,12276 8416,12274 8413,12273 8410,12271 8406,12270 8403,12268 8400,12266 8398,12264 8395,12261 8392,12259 8390,12256 8387,12253 8385,12251 8383,12248 8381,12244 8380,12241 8378,12238 8377,12235 8375,12231 8374,12228 8374,12224 8373,12221 8372,12217 8372,12214 8372,12210 8371,12210 8372,12210 8372,12206 8372,12203 8373,12199 8373,12196 8374,12192 8375,12189 8376,12185 8378,12182 8379,12179 8381,12176 8383,12173 8385,12170 8387,12167 8389,12164 8392,12162 8394,12159 8397,12157 8400,12155 8403,12152 8406,12151 8409,12149 8412,12147 8416,12146 8419,12145 8422,12144 8426,12143 8429,12142 8433,12141 8436,12141 8440,12141 8595,12140 8595,12141 8599,12141 8602,12141 8606,12142 8609,12142 8613,12143 8616,12144 8620,12145 8623,12147 8626,12148 8629,12150 8632,12152 8635,12154 8638,12156 8641,12158 8643,12161 8646,12163 8648,12166 8650,12169 8653,12172 8654,12175 8656,12178 8658,12181 8659,12185 8660,12188 8661,12191 8662,12195 8663,12198 8664,12202 8664,12205 8664,12209 8664,12210 Z M 8664,12279 L 8664,12279 Z M 8371,12140 L 8371,12140 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id93">
- <rect class="BoundingBox" stroke="none" fill="none" x="8371" y="12338" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8664,12409 L 8664,12409 8664,12413 8664,12416 8663,12420 8662,12423 8662,12427 8661,12430 8659,12434 8658,12437 8656,12440 8655,12444 8653,12447 8651,12450 8649,12452 8646,12455 8644,12458 8641,12460 8638,12463 8636,12465 8633,12467 8629,12469 8626,12470 8623,12472 8620,12473 8616,12475 8613,12476 8609,12476 8606,12477 8602,12478 8599,12478 8595,12478 8441,12478 8441,12478 8437,12478 8434,12478 8430,12477 8427,12476 8423,12476 8420,12475 8416,12473 8413,12472 8410,12470 8406,12469 8403,12467 8400,12465 8398,12463 8395,12460 8392,12458 8390,12455 8387,12452 8385,12450 8383,12447 8381,12443 8380,12440 8378,12437 8377,12434 8375,12430 8374,12427 8374,12423 8373,12420 8372,12416 8372,12413 8372,12409 8371,12409 8372,12409 8372,12405 8372,12402 8373,12398 8373,12395 8374,12391 8375,12388 8376,12384 8378,12381 8379,12378 8381,12375 8383,12372 8385,12369 8387,12366 8389,12363 8392,12361 8394,12358 8397,12356 8400,12354 8403,12351 8406,12350 8409,12348 8412,12346 8416,12345 8419,12344 8422,12343 8426,12342 8429,12341 8433,12340 8436,12340 8440,12340 8595,12339 8595,12340 8599,12340 8602,12340 8606,12341 8609,12341 8613,12342 8616,12343 8620,12344 8623,12346 8626,12347 8629,12349 8632,12351 8635,12353 8638,12355 8641,12357 8643,12360 8646,12362 8648,12365 8650,12368 8653,12371 8654,12374 8656,12377 8658,12380 8659,12384 8660,12387 8661,12390 8662,12394 8663,12397 8664,12401 8664,12404 8664,12408 8664,12409 Z M 8664,12478 L 8664,12478 Z M 8371,12339 L 8371,12339 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id94">
- <rect class="BoundingBox" stroke="none" fill="none" x="10405" y="11964" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10698,12034 L 10698,12034 10698,12038 10698,12041 10697,12045 10696,12048 10696,12052 10695,12055 10693,12059 10692,12062 10690,12065 10689,12069 10687,12072 10685,12075 10683,12077 10680,12080 10678,12083 10675,12085 10672,12088 10670,12090 10667,12092 10663,12094 10660,12095 10657,12097 10654,12098 10650,12100 10647,12101 10643,12101 10640,12102 10636,12103 10633,12103 10629,12103 10475,12103 10475,12103 10471,12103 10468,12103 10464,12102 10461,12101 10457,12101 10454,12100 10450,12098 10447,12097 10444,12095 10440,12094 10437,12092 10434,12090 10432,12088 10429,12085 10426,12083 10424,12080 10421,12077 10419,12075 10417,12072 10415,12068 10414,12065 10412,12062 10411,12059 10409,12055 10408,12052 10408,12048 10407,12045 10406,12041 10406,12038 10406,12034 10405,12034 10406,12034 10406,12030 10406,12027 10407,12023 10407,12020 10408,12016 10409,12013 10410,12009 10412,12006 10413,12003 10415,12000 10417,11997 10419,11994 10421,11991 10423,11988 10426,11986 10428,11983 10431,11981 10434,11979 10437,11976 10440,11975 10443,11973 10446,11971 10450,11970 10453,11969 10456,11968 10460,11967 10463,11966 10467,11965 10470,11965 10474,11965 10629,11964 10629,11965 10633,11965 10636,11965 10640,11966 10643,11966 10647,11967 10650,11968 10654,11969 10657,11971 10660,11972 10663,11974 10666,11976 10669,11978 10672,11980 10675,11982 10677,11985 10680,11987 10682,11990 10684,11993 10687,11996 10688,11999 10690,12002 10692,12005 10693,12009 10694,12012 10695,12015 10696,12019 10697,12022 10698,12026 10698,12029 10698,12033 10698,12034 Z M 10698,12103 L 10698,12103 Z M 10405,11964 L 10405,11964 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id95">
- <rect class="BoundingBox" stroke="none" fill="none" x="10405" y="12164" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10698,12234 L 10698,12234 10698,12238 10698,12241 10697,12245 10696,12248 10696,12252 10695,12255 10693,12259 10692,12262 10690,12265 10689,12269 10687,12272 10685,12275 10683,12277 10680,12280 10678,12283 10675,12285 10672,12288 10670,12290 10667,12292 10663,12294 10660,12295 10657,12297 10654,12298 10650,12300 10647,12301 10643,12301 10640,12302 10636,12303 10633,12303 10629,12303 10475,12303 10475,12303 10471,12303 10468,12303 10464,12302 10461,12301 10457,12301 10454,12300 10450,12298 10447,12297 10444,12295 10440,12294 10437,12292 10434,12290 10432,12288 10429,12285 10426,12283 10424,12280 10421,12277 10419,12275 10417,12272 10415,12268 10414,12265 10412,12262 10411,12259 10409,12255 10408,12252 10408,12248 10407,12245 10406,12241 10406,12238 10406,12234 10405,12234 10406,12234 10406,12230 10406,12227 10407,12223 10407,12220 10408,12216 10409,12213 10410,12209 10412,12206 10413,12203 10415,12200 10417,12197 10419,12194 10421,12191 10423,12188 10426,12186 10428,12183 10431,12181 10434,12179 10437,12176 10440,12175 10443,12173 10446,12171 10450,12170 10453,12169 10456,12168 10460,12167 10463,12166 10467,12165 10470,12165 10474,12165 10629,12164 10629,12165 10633,12165 10636,12165 10640,12166 10643,12166 10647,12167 10650,12168 10654,12169 10657,12171 10660,12172 10663,12174 10666,12176 10669,12178 10672,12180 10675,12182 10677,12185 10680,12187 10682,12190 10684,12193 10687,12196 10688,12199 10690,12202 10692,12205 10693,12209 10694,12212 10695,12215 10696,12219 10697,12222 10698,12226 10698,12229 10698,12233 10698,12234 Z M 10698,12303 L 10698,12303 Z M 10405,12164 L 10405,12164 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id96">
- <rect class="BoundingBox" stroke="none" fill="none" x="10405" y="12364" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10698,12434 L 10698,12434 10698,12438 10698,12441 10697,12445 10696,12448 10696,12452 10695,12455 10693,12459 10692,12462 10690,12465 10689,12469 10687,12472 10685,12475 10683,12477 10680,12480 10678,12483 10675,12485 10672,12488 10670,12490 10667,12492 10663,12494 10660,12495 10657,12497 10654,12498 10650,12500 10647,12501 10643,12501 10640,12502 10636,12503 10633,12503 10629,12503 10475,12503 10475,12503 10471,12503 10468,12503 10464,12502 10461,12501 10457,12501 10454,12500 10450,12498 10447,12497 10444,12495 10440,12494 10437,12492 10434,12490 10432,12488 10429,12485 10426,12483 10424,12480 10421,12477 10419,12475 10417,12472 10415,12468 10414,12465 10412,12462 10411,12459 10409,12455 10408,12452 10408,12448 10407,12445 10406,12441 10406,12438 10406,12434 10405,12434 10406,12434 10406,12430 10406,12427 10407,12423 10407,12420 10408,12416 10409,12413 10410,12409 10412,12406 10413,12403 10415,12400 10417,12397 10419,12394 10421,12391 10423,12388 10426,12386 10428,12383 10431,12381 10434,12379 10437,12376 10440,12375 10443,12373 10446,12371 10450,12370 10453,12369 10456,12368 10460,12367 10463,12366 10467,12365 10470,12365 10474,12365 10629,12364 10629,12365 10633,12365 10636,12365 10640,12366 10643,12366 10647,12367 10650,12368 10654,12369 10657,12371 10660,12372 10663,12374 10666,12376 10669,12378 10672,12380 10675,12382 10677,12385 10680,12387 10682,12390 10684,12393 10687,12396 10688,12399 10690,12402 10692,12405 10693,12409 10694,12412 10695,12415 10696,12419 10697,12422 10698,12426 10698,12429 10698,12433 10698,12434 Z M 10698,12503 L 10698,12503 Z M 10405,12364 L 10405,12364 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id97">
- <rect class="BoundingBox" stroke="none" fill="none" x="10056" y="11964" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10349,12034 L 10349,12034 10349,12038 10349,12041 10348,12045 10347,12048 10347,12052 10346,12055 10344,12059 10343,12062 10341,12065 10340,12069 10338,12072 10336,12075 10334,12077 10331,12080 10329,12083 10326,12085 10323,12088 10321,12090 10318,12092 10314,12094 10311,12095 10308,12097 10305,12098 10301,12100 10298,12101 10294,12101 10291,12102 10287,12103 10284,12103 10280,12103 10126,12103 10126,12103 10122,12103 10119,12103 10115,12102 10112,12101 10108,12101 10105,12100 10101,12098 10098,12097 10095,12095 10091,12094 10088,12092 10085,12090 10083,12088 10080,12085 10077,12083 10075,12080 10072,12077 10070,12075 10068,12072 10066,12068 10065,12065 10063,12062 10062,12059 10060,12055 10059,12052 10059,12048 10058,12045 10057,12041 10057,12038 10057,12034 10056,12034 10057,12034 10057,12030 10057,12027 10058,12023 10058,12020 10059,12016 10060,12013 10061,12009 10063,12006 10064,12003 10066,12000 10068,11997 10070,11994 10072,11991 10074,11988 10077,11986 10079,11983 10082,11981 10085,11979 10088,11976 10091,11975 10094,11973 10097,11971 10101,11970 10104,11969 10107,11968 10111,11967 10114,11966 10118,11965 10121,11965 10125,11965 10280,11964 10280,11965 10284,11965 10287,11965 10291,11966 10294,11966 10298,11967 10301,11968 10305,11969 10308,11971 10311,11972 10314,11974 10317,11976 10320,11978 10323,11980 10326,11982 10328,11985 10331,11987 10333,11990 10335,11993 10338,11996 10339,11999 10341,12002 10343,12005 10344,12009 10345,12012 10346,12015 10347,12019 10348,12022 10349,12026 10349,12029 10349,12033 10349,12034 Z M 10349,12103 L 10349,12103 Z M 10056,11964 L 10056,11964 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id98">
- <rect class="BoundingBox" stroke="none" fill="none" x="10056" y="12164" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10349,12234 L 10349,12234 10349,12238 10349,12241 10348,12245 10347,12248 10347,12252 10346,12255 10344,12259 10343,12262 10341,12265 10340,12269 10338,12272 10336,12275 10334,12277 10331,12280 10329,12283 10326,12285 10323,12288 10321,12290 10318,12292 10314,12294 10311,12295 10308,12297 10305,12298 10301,12300 10298,12301 10294,12301 10291,12302 10287,12303 10284,12303 10280,12303 10126,12303 10126,12303 10122,12303 10119,12303 10115,12302 10112,12301 10108,12301 10105,12300 10101,12298 10098,12297 10095,12295 10091,12294 10088,12292 10085,12290 10083,12288 10080,12285 10077,12283 10075,12280 10072,12277 10070,12275 10068,12272 10066,12268 10065,12265 10063,12262 10062,12259 10060,12255 10059,12252 10059,12248 10058,12245 10057,12241 10057,12238 10057,12234 10056,12234 10057,12234 10057,12230 10057,12227 10058,12223 10058,12220 10059,12216 10060,12213 10061,12209 10063,12206 10064,12203 10066,12200 10068,12197 10070,12194 10072,12191 10074,12188 10077,12186 10079,12183 10082,12181 10085,12179 10088,12176 10091,12175 10094,12173 10097,12171 10101,12170 10104,12169 10107,12168 10111,12167 10114,12166 10118,12165 10121,12165 10125,12165 10280,12164 10280,12165 10284,12165 10287,12165 10291,12166 10294,12166 10298,12167 10301,12168 10305,12169 10308,12171 10311,12172 10314,12174 10317,12176 10320,12178 10323,12180 10326,12182 10328,12185 10331,12187 10333,12190 10335,12193 10338,12196 10339,12199 10341,12202 10343,12205 10344,12209 10345,12212 10346,12215 10347,12219 10348,12222 10349,12226 10349,12229 10349,12233 10349,12234 Z M 10349,12303 L 10349,12303 Z M 10056,12164 L 10056,12164 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id99">
- <rect class="BoundingBox" stroke="none" fill="none" x="10056" y="12364" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 10349,12434 L 10349,12434 10349,12438 10349,12441 10348,12445 10347,12448 10347,12452 10346,12455 10344,12459 10343,12462 10341,12465 10340,12469 10338,12472 10336,12475 10334,12477 10331,12480 10329,12483 10326,12485 10323,12488 10321,12490 10318,12492 10314,12494 10311,12495 10308,12497 10305,12498 10301,12500 10298,12501 10294,12501 10291,12502 10287,12503 10284,12503 10280,12503 10126,12503 10126,12503 10122,12503 10119,12503 10115,12502 10112,12501 10108,12501 10105,12500 10101,12498 10098,12497 10095,12495 10091,12494 10088,12492 10085,12490 10083,12488 10080,12485 10077,12483 10075,12480 10072,12477 10070,12475 10068,12472 10066,12468 10065,12465 10063,12462 10062,12459 10060,12455 10059,12452 10059,12448 10058,12445 10057,12441 10057,12438 10057,12434 10056,12434 10057,12434 10057,12430 10057,12427 10058,12423 10058,12420 10059,12416 10060,12413 10061,12409 10063,12406 10064,12403 10066,12400 10068,12397 10070,12394 10072,12391 10074,12388 10077,12386 10079,12383 10082,12381 10085,12379 10088,12376 10091,12375 10094,12373 10097,12371 10101,12370 10104,12369 10107,12368 10111,12367 10114,12366 10118,12365 10121,12365 10125,12365 10280,12364 10280,12365 10284,12365 10287,12365 10291,12366 10294,12366 10298,12367 10301,12368 10305,12369 10308,12371 10311,12372 10314,12374 10317,12376 10320,12378 10323,12380 10326,12382 10328,12385 10331,12387 10333,12390 10335,12393 10338,12396 10339,12399 10341,12402 10343,12405 10344,12409 10345,12412 10346,12415 10347,12419 10348,12422 10349,12426 10349,12429 10349,12433 10349,12434 Z M 10349,12503 L 10349,12503 Z M 10056,12364 L 10056,12364 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id100">
- <rect class="BoundingBox" stroke="none" fill="none" x="10735" y="11967" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11028,12037 L 11028,12037 11028,12041 11028,12044 11027,12048 11026,12051 11026,12055 11025,12058 11023,12062 11022,12065 11020,12068 11019,12072 11017,12075 11015,12078 11013,12080 11010,12083 11008,12086 11005,12088 11002,12091 11000,12093 10997,12095 10993,12097 10990,12098 10987,12100 10984,12101 10980,12103 10977,12104 10973,12104 10970,12105 10966,12106 10963,12106 10959,12106 10805,12106 10805,12106 10801,12106 10798,12106 10794,12105 10791,12104 10787,12104 10784,12103 10780,12101 10777,12100 10774,12098 10770,12097 10767,12095 10764,12093 10762,12091 10759,12088 10756,12086 10754,12083 10751,12080 10749,12078 10747,12075 10745,12071 10744,12068 10742,12065 10741,12062 10739,12058 10738,12055 10738,12051 10737,12048 10736,12044 10736,12041 10736,12037 10735,12037 10736,12037 10736,12033 10736,12030 10737,12026 10737,12023 10738,12019 10739,12016 10740,12012 10742,12009 10743,12006 10745,12003 10747,12000 10749,11997 10751,11994 10753,11991 10756,11989 10758,11986 10761,11984 10764,11982 10767,11979 10770,11978 10773,11976 10776,11974 10780,11973 10783,11972 10786,11971 10790,11970 10793,11969 10797,11968 10800,11968 10804,11968 10959,11967 10959,11968 10963,11968 10966,11968 10970,11969 10973,11969 10977,11970 10980,11971 10984,11972 10987,11974 10990,11975 10993,11977 10996,11979 10999,11981 11002,11983 11005,11985 11007,11988 11010,11990 11012,11993 11014,11996 11017,11999 11018,12002 11020,12005 11022,12008 11023,12012 11024,12015 11025,12018 11026,12022 11027,12025 11028,12029 11028,12032 11028,12036 11028,12037 Z M 11028,12106 L 11028,12106 Z M 10735,11967 L 10735,11967 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id101">
- <rect class="BoundingBox" stroke="none" fill="none" x="10735" y="12167" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11028,12237 L 11028,12237 11028,12241 11028,12244 11027,12248 11026,12251 11026,12255 11025,12258 11023,12262 11022,12265 11020,12268 11019,12272 11017,12275 11015,12278 11013,12280 11010,12283 11008,12286 11005,12288 11002,12291 11000,12293 10997,12295 10993,12297 10990,12298 10987,12300 10984,12301 10980,12303 10977,12304 10973,12304 10970,12305 10966,12306 10963,12306 10959,12306 10805,12306 10805,12306 10801,12306 10798,12306 10794,12305 10791,12304 10787,12304 10784,12303 10780,12301 10777,12300 10774,12298 10770,12297 10767,12295 10764,12293 10762,12291 10759,12288 10756,12286 10754,12283 10751,12280 10749,12278 10747,12275 10745,12271 10744,12268 10742,12265 10741,12262 10739,12258 10738,12255 10738,12251 10737,12248 10736,12244 10736,12241 10736,12237 10735,12237 10736,12237 10736,12233 10736,12230 10737,12226 10737,12223 10738,12219 10739,12216 10740,12212 10742,12209 10743,12206 10745,12203 10747,12200 10749,12197 10751,12194 10753,12191 10756,12189 10758,12186 10761,12184 10764,12182 10767,12179 10770,12178 10773,12176 10776,12174 10780,12173 10783,12172 10786,12171 10790,12170 10793,12169 10797,12168 10800,12168 10804,12168 10959,12167 10959,12168 10963,12168 10966,12168 10970,12169 10973,12169 10977,12170 10980,12171 10984,12172 10987,12174 10990,12175 10993,12177 10996,12179 10999,12181 11002,12183 11005,12185 11007,12188 11010,12190 11012,12193 11014,12196 11017,12199 11018,12202 11020,12205 11022,12208 11023,12212 11024,12215 11025,12218 11026,12222 11027,12225 11028,12229 11028,12232 11028,12236 11028,12237 Z M 11028,12306 L 11028,12306 Z M 10735,12167 L 10735,12167 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id102">
- <rect class="BoundingBox" stroke="none" fill="none" x="10735" y="12367" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11028,12437 L 11028,12437 11028,12441 11028,12444 11027,12448 11026,12451 11026,12455 11025,12458 11023,12462 11022,12465 11020,12468 11019,12472 11017,12475 11015,12478 11013,12480 11010,12483 11008,12486 11005,12488 11002,12491 11000,12493 10997,12495 10993,12497 10990,12498 10987,12500 10984,12501 10980,12503 10977,12504 10973,12504 10970,12505 10966,12506 10963,12506 10959,12506 10805,12506 10805,12506 10801,12506 10798,12506 10794,12505 10791,12504 10787,12504 10784,12503 10780,12501 10777,12500 10774,12498 10770,12497 10767,12495 10764,12493 10762,12491 10759,12488 10756,12486 10754,12483 10751,12480 10749,12478 10747,12475 10745,12471 10744,12468 10742,12465 10741,12462 10739,12458 10738,12455 10738,12451 10737,12448 10736,12444 10736,12441 10736,12437 10735,12437 10736,12437 10736,12433 10736,12430 10737,12426 10737,12423 10738,12419 10739,12416 10740,12412 10742,12409 10743,12406 10745,12403 10747,12400 10749,12397 10751,12394 10753,12391 10756,12389 10758,12386 10761,12384 10764,12382 10767,12379 10770,12378 10773,12376 10776,12374 10780,12373 10783,12372 10786,12371 10790,12370 10793,12369 10797,12368 10800,12368 10804,12368 10959,12367 10959,12368 10963,12368 10966,12368 10970,12369 10973,12369 10977,12370 10980,12371 10984,12372 10987,12374 10990,12375 10993,12377 10996,12379 10999,12381 11002,12383 11005,12385 11007,12388 11010,12390 11012,12393 11014,12396 11017,12399 11018,12402 11020,12405 11022,12408 11023,12412 11024,12415 11025,12418 11026,12422 11027,12425 11028,12429 11028,12432 11028,12436 11028,12437 Z M 11028,12506 L 11028,12506 Z M 10735,12367 L 10735,12367 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id103">
- <rect class="BoundingBox" stroke="none" fill="none" x="11463" y="11963" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11756,12033 L 11756,12033 11756,12037 11756,12040 11755,12044 11754,12047 11754,12051 11753,12054 11751,12058 11750,12061 11748,12064 11747,12068 11745,12071 11743,12074 11741,12076 11738,12079 11736,12082 11733,12084 11730,12087 11728,12089 11725,12091 11721,12093 11718,12094 11715,12096 11712,12097 11708,12099 11705,12100 11701,12100 11698,12101 11694,12102 11691,12102 11687,12102 11533,12102 11533,12102 11529,12102 11526,12102 11522,12101 11519,12100 11515,12100 11512,12099 11508,12097 11505,12096 11502,12094 11498,12093 11495,12091 11492,12089 11490,12087 11487,12084 11484,12082 11482,12079 11479,12076 11477,12074 11475,12071 11473,12067 11472,12064 11470,12061 11469,12058 11467,12054 11466,12051 11466,12047 11465,12044 11464,12040 11464,12037 11464,12033 11463,12033 11464,12033 11464,12029 11464,12026 11465,12022 11465,12019 11466,12015 11467,12012 11468,12008 11470,12005 11471,12002 11473,11999 11475,11996 11477,11993 11479,11990 11481,11987 11484,11985 11486,11982 11489,11980 11492,11978 11495,11975 11498,11974 11501,11972 11504,11970 11508,11969 11511,11968 11514,11967 11518,11966 11521,11965 11525,11964 11528,11964 11532,11964 11687,11963 11687,11964 11691,11964 11694,11964 11698,11965 11701,11965 11705,11966 11708,11967 11712,11968 11715,11970 11718,11971 11721,11973 11724,11975 11727,11977 11730,11979 11733,11981 11735,11984 11738,11986 11740,11989 11742,11992 11745,11995 11746,11998 11748,12001 11750,12004 11751,12008 11752,12011 11753,12014 11754,12018 11755,12021 11756,12025 11756,12028 11756,12032 11756,12033 Z M 11756,12102 L 11756,12102 Z M 11463,11963 L 11463,11963 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id104">
- <rect class="BoundingBox" stroke="none" fill="none" x="11463" y="12162" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11756,12232 L 11756,12232 11756,12236 11756,12239 11755,12243 11754,12246 11754,12250 11753,12253 11751,12257 11750,12260 11748,12263 11747,12267 11745,12270 11743,12273 11741,12275 11738,12278 11736,12281 11733,12283 11730,12286 11728,12288 11725,12290 11721,12292 11718,12293 11715,12295 11712,12296 11708,12298 11705,12299 11701,12299 11698,12300 11694,12301 11691,12301 11687,12301 11533,12301 11533,12301 11529,12301 11526,12301 11522,12300 11519,12299 11515,12299 11512,12298 11508,12296 11505,12295 11502,12293 11498,12292 11495,12290 11492,12288 11490,12286 11487,12283 11484,12281 11482,12278 11479,12275 11477,12273 11475,12270 11473,12266 11472,12263 11470,12260 11469,12257 11467,12253 11466,12250 11466,12246 11465,12243 11464,12239 11464,12236 11464,12232 11463,12232 11464,12232 11464,12228 11464,12225 11465,12221 11465,12218 11466,12214 11467,12211 11468,12207 11470,12204 11471,12201 11473,12198 11475,12195 11477,12192 11479,12189 11481,12186 11484,12184 11486,12181 11489,12179 11492,12177 11495,12174 11498,12173 11501,12171 11504,12169 11508,12168 11511,12167 11514,12166 11518,12165 11521,12164 11525,12163 11528,12163 11532,12163 11687,12162 11687,12163 11691,12163 11694,12163 11698,12164 11701,12164 11705,12165 11708,12166 11712,12167 11715,12169 11718,12170 11721,12172 11724,12174 11727,12176 11730,12178 11733,12180 11735,12183 11738,12185 11740,12188 11742,12191 11745,12194 11746,12197 11748,12200 11750,12203 11751,12207 11752,12210 11753,12213 11754,12217 11755,12220 11756,12224 11756,12227 11756,12231 11756,12232 Z M 11756,12301 L 11756,12301 Z M 11463,12162 L 11463,12162 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id105">
- <rect class="BoundingBox" stroke="none" fill="none" x="11463" y="12362" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11756,12432 L 11756,12432 11756,12436 11756,12439 11755,12443 11754,12446 11754,12450 11753,12453 11751,12457 11750,12460 11748,12463 11747,12467 11745,12470 11743,12473 11741,12475 11738,12478 11736,12481 11733,12483 11730,12486 11728,12488 11725,12490 11721,12492 11718,12493 11715,12495 11712,12496 11708,12498 11705,12499 11701,12499 11698,12500 11694,12501 11691,12501 11687,12501 11533,12501 11533,12501 11529,12501 11526,12501 11522,12500 11519,12499 11515,12499 11512,12498 11508,12496 11505,12495 11502,12493 11498,12492 11495,12490 11492,12488 11490,12486 11487,12483 11484,12481 11482,12478 11479,12475 11477,12473 11475,12470 11473,12466 11472,12463 11470,12460 11469,12457 11467,12453 11466,12450 11466,12446 11465,12443 11464,12439 11464,12436 11464,12432 11463,12432 11464,12432 11464,12428 11464,12425 11465,12421 11465,12418 11466,12414 11467,12411 11468,12407 11470,12404 11471,12401 11473,12398 11475,12395 11477,12392 11479,12389 11481,12386 11484,12384 11486,12381 11489,12379 11492,12377 11495,12374 11498,12373 11501,12371 11504,12369 11508,12368 11511,12367 11514,12366 11518,12365 11521,12364 11525,12363 11528,12363 11532,12363 11687,12362 11687,12363 11691,12363 11694,12363 11698,12364 11701,12364 11705,12365 11708,12366 11712,12367 11715,12369 11718,12370 11721,12372 11724,12374 11727,12376 11730,12378 11733,12380 11735,12383 11738,12385 11740,12388 11742,12391 11745,12394 11746,12397 11748,12400 11750,12403 11751,12407 11752,12410 11753,12413 11754,12417 11755,12420 11756,12424 11756,12427 11756,12431 11756,12432 Z M 11756,12501 L 11756,12501 Z M 11463,12362 L 11463,12362 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id106">
- <rect class="BoundingBox" stroke="none" fill="none" x="11114" y="11963" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11407,12033 L 11407,12033 11407,12037 11407,12040 11406,12044 11405,12047 11405,12051 11404,12054 11402,12058 11401,12061 11399,12064 11398,12068 11396,12071 11394,12074 11392,12076 11389,12079 11387,12082 11384,12084 11381,12087 11379,12089 11376,12091 11372,12093 11369,12094 11366,12096 11363,12097 11359,12099 11356,12100 11352,12100 11349,12101 11345,12102 11342,12102 11338,12102 11184,12102 11184,12102 11180,12102 11177,12102 11173,12101 11170,12100 11166,12100 11163,12099 11159,12097 11156,12096 11153,12094 11149,12093 11146,12091 11143,12089 11141,12087 11138,12084 11135,12082 11133,12079 11130,12076 11128,12074 11126,12071 11124,12067 11123,12064 11121,12061 11120,12058 11118,12054 11117,12051 11117,12047 11116,12044 11115,12040 11115,12037 11115,12033 11114,12033 11115,12033 11115,12029 11115,12026 11116,12022 11116,12019 11117,12015 11118,12012 11119,12008 11121,12005 11122,12002 11124,11999 11126,11996 11128,11993 11130,11990 11132,11987 11135,11985 11137,11982 11140,11980 11143,11978 11146,11975 11149,11974 11152,11972 11155,11970 11159,11969 11162,11968 11165,11967 11169,11966 11172,11965 11176,11964 11179,11964 11183,11964 11338,11963 11338,11964 11342,11964 11345,11964 11349,11965 11352,11965 11356,11966 11359,11967 11363,11968 11366,11970 11369,11971 11372,11973 11375,11975 11378,11977 11381,11979 11384,11981 11386,11984 11389,11986 11391,11989 11393,11992 11396,11995 11397,11998 11399,12001 11401,12004 11402,12008 11403,12011 11404,12014 11405,12018 11406,12021 11407,12025 11407,12028 11407,12032 11407,12033 Z M 11407,12102 L 11407,12102 Z M 11114,11963 L 11114,11963 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id107">
- <rect class="BoundingBox" stroke="none" fill="none" x="11114" y="12162" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11407,12232 L 11407,12232 11407,12236 11407,12239 11406,12243 11405,12246 11405,12250 11404,12253 11402,12257 11401,12260 11399,12263 11398,12267 11396,12270 11394,12273 11392,12275 11389,12278 11387,12281 11384,12283 11381,12286 11379,12288 11376,12290 11372,12292 11369,12293 11366,12295 11363,12296 11359,12298 11356,12299 11352,12299 11349,12300 11345,12301 11342,12301 11338,12301 11184,12301 11184,12301 11180,12301 11177,12301 11173,12300 11170,12299 11166,12299 11163,12298 11159,12296 11156,12295 11153,12293 11149,12292 11146,12290 11143,12288 11141,12286 11138,12283 11135,12281 11133,12278 11130,12275 11128,12273 11126,12270 11124,12266 11123,12263 11121,12260 11120,12257 11118,12253 11117,12250 11117,12246 11116,12243 11115,12239 11115,12236 11115,12232 11114,12232 11115,12232 11115,12228 11115,12225 11116,12221 11116,12218 11117,12214 11118,12211 11119,12207 11121,12204 11122,12201 11124,12198 11126,12195 11128,12192 11130,12189 11132,12186 11135,12184 11137,12181 11140,12179 11143,12177 11146,12174 11149,12173 11152,12171 11155,12169 11159,12168 11162,12167 11165,12166 11169,12165 11172,12164 11176,12163 11179,12163 11183,12163 11338,12162 11338,12163 11342,12163 11345,12163 11349,12164 11352,12164 11356,12165 11359,12166 11363,12167 11366,12169 11369,12170 11372,12172 11375,12174 11378,12176 11381,12178 11384,12180 11386,12183 11389,12185 11391,12188 11393,12191 11396,12194 11397,12197 11399,12200 11401,12203 11402,12207 11403,12210 11404,12213 11405,12217 11406,12220 11407,12224 11407,12227 11407,12231 11407,12232 Z M 11407,12301 L 11407,12301 Z M 11114,12162 L 11114,12162 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id108">
- <rect class="BoundingBox" stroke="none" fill="none" x="11114" y="12362" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11407,12432 L 11407,12432 11407,12436 11407,12439 11406,12443 11405,12446 11405,12450 11404,12453 11402,12457 11401,12460 11399,12463 11398,12467 11396,12470 11394,12473 11392,12475 11389,12478 11387,12481 11384,12483 11381,12486 11379,12488 11376,12490 11372,12492 11369,12493 11366,12495 11363,12496 11359,12498 11356,12499 11352,12499 11349,12500 11345,12501 11342,12501 11338,12501 11184,12501 11184,12501 11180,12501 11177,12501 11173,12500 11170,12499 11166,12499 11163,12498 11159,12496 11156,12495 11153,12493 11149,12492 11146,12490 11143,12488 11141,12486 11138,12483 11135,12481 11133,12478 11130,12475 11128,12473 11126,12470 11124,12466 11123,12463 11121,12460 11120,12457 11118,12453 11117,12450 11117,12446 11116,12443 11115,12439 11115,12436 11115,12432 11114,12432 11115,12432 11115,12428 11115,12425 11116,12421 11116,12418 11117,12414 11118,12411 11119,12407 11121,12404 11122,12401 11124,12398 11126,12395 11128,12392 11130,12389 11132,12386 11135,12384 11137,12381 11140,12379 11143,12377 11146,12374 11149,12373 11152,12371 11155,12369 11159,12368 11162,12367 11165,12366 11169,12365 11172,12364 11176,12363 11179,12363 11183,12363 11338,12362 11338,12363 11342,12363 11345,12363 11349,12364 11352,12364 11356,12365 11359,12366 11363,12367 11366,12369 11369,12370 11372,12372 11375,12374 11378,12376 11381,12378 11384,12380 11386,12383 11389,12385 11391,12388 11393,12391 11396,12394 11397,12397 11399,12400 11401,12403 11402,12407 11403,12410 11404,12413 11405,12417 11406,12420 11407,12424 11407,12427 11407,12431 11407,12432 Z M 11407,12501 L 11407,12501 Z M 11114,12362 L 11114,12362 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id109">
- <rect class="BoundingBox" stroke="none" fill="none" x="11794" y="11965" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12087,12035 L 12087,12035 12087,12039 12087,12042 12086,12046 12085,12049 12085,12053 12084,12056 12082,12060 12081,12063 12079,12066 12078,12070 12076,12073 12074,12076 12072,12078 12069,12081 12067,12084 12064,12086 12061,12089 12059,12091 12056,12093 12052,12095 12049,12096 12046,12098 12043,12099 12039,12101 12036,12102 12032,12102 12029,12103 12025,12104 12022,12104 12018,12104 11864,12104 11864,12104 11860,12104 11857,12104 11853,12103 11850,12102 11846,12102 11843,12101 11839,12099 11836,12098 11833,12096 11829,12095 11826,12093 11823,12091 11821,12089 11818,12086 11815,12084 11813,12081 11810,12078 11808,12076 11806,12073 11804,12069 11803,12066 11801,12063 11800,12060 11798,12056 11797,12053 11797,12049 11796,12046 11795,12042 11795,12039 11795,12035 11794,12035 11795,12035 11795,12031 11795,12028 11796,12024 11796,12021 11797,12017 11798,12014 11799,12010 11801,12007 11802,12004 11804,12001 11806,11998 11808,11995 11810,11992 11812,11989 11815,11987 11817,11984 11820,11982 11823,11980 11826,11977 11829,11976 11832,11974 11835,11972 11839,11971 11842,11970 11845,11969 11849,11968 11852,11967 11856,11966 11859,11966 11863,11966 12018,11965 12018,11966 12022,11966 12025,11966 12029,11967 12032,11967 12036,11968 12039,11969 12043,11970 12046,11972 12049,11973 12052,11975 12055,11977 12058,11979 12061,11981 12064,11983 12066,11986 12069,11988 12071,11991 12073,11994 12076,11997 12077,12000 12079,12003 12081,12006 12082,12010 12083,12013 12084,12016 12085,12020 12086,12023 12087,12027 12087,12030 12087,12034 12087,12035 Z M 12087,12104 L 12087,12104 Z M 11794,11965 L 11794,11965 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id110">
- <rect class="BoundingBox" stroke="none" fill="none" x="11794" y="12165" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12087,12235 L 12087,12235 12087,12239 12087,12242 12086,12246 12085,12249 12085,12253 12084,12256 12082,12260 12081,12263 12079,12266 12078,12270 12076,12273 12074,12276 12072,12278 12069,12281 12067,12284 12064,12286 12061,12289 12059,12291 12056,12293 12052,12295 12049,12296 12046,12298 12043,12299 12039,12301 12036,12302 12032,12302 12029,12303 12025,12304 12022,12304 12018,12304 11864,12304 11864,12304 11860,12304 11857,12304 11853,12303 11850,12302 11846,12302 11843,12301 11839,12299 11836,12298 11833,12296 11829,12295 11826,12293 11823,12291 11821,12289 11818,12286 11815,12284 11813,12281 11810,12278 11808,12276 11806,12273 11804,12269 11803,12266 11801,12263 11800,12260 11798,12256 11797,12253 11797,12249 11796,12246 11795,12242 11795,12239 11795,12235 11794,12235 11795,12235 11795,12231 11795,12228 11796,12224 11796,12221 11797,12217 11798,12214 11799,12210 11801,12207 11802,12204 11804,12201 11806,12198 11808,12195 11810,12192 11812,12189 11815,12187 11817,12184 11820,12182 11823,12180 11826,12177 11829,12176 11832,12174 11835,12172 11839,12171 11842,12170 11845,12169 11849,12168 11852,12167 11856,12166 11859,12166 11863,12166 12018,12165 12018,12166 12022,12166 12025,12166 12029,12167 12032,12167 12036,12168 12039,12169 12043,12170 12046,12172 12049,12173 12052,12175 12055,12177 12058,12179 12061,12181 12064,12183 12066,12186 12069,12188 12071,12191 12073,12194 12076,12197 12077,12200 12079,12203 12081,12206 12082,12210 12083,12213 12084,12216 12085,12220 12086,12223 12087,12227 12087,12230 12087,12234 12087,12235 Z M 12087,12304 L 12087,12304 Z M 11794,12165 L 11794,12165 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id111">
- <rect class="BoundingBox" stroke="none" fill="none" x="11794" y="12364" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12087,12435 L 12087,12435 12087,12439 12087,12442 12086,12446 12085,12449 12085,12453 12084,12456 12082,12460 12081,12463 12079,12466 12078,12470 12076,12473 12074,12476 12072,12478 12069,12481 12067,12484 12064,12486 12061,12489 12059,12491 12056,12493 12052,12495 12049,12496 12046,12498 12043,12499 12039,12501 12036,12502 12032,12502 12029,12503 12025,12504 12022,12504 12018,12504 11864,12504 11864,12504 11860,12504 11857,12504 11853,12503 11850,12502 11846,12502 11843,12501 11839,12499 11836,12498 11833,12496 11829,12495 11826,12493 11823,12491 11821,12489 11818,12486 11815,12484 11813,12481 11810,12478 11808,12476 11806,12473 11804,12469 11803,12466 11801,12463 11800,12460 11798,12456 11797,12453 11797,12449 11796,12446 11795,12442 11795,12439 11795,12435 11794,12435 11795,12435 11795,12431 11795,12428 11796,12424 11796,12421 11797,12417 11798,12414 11799,12410 11801,12407 11802,12404 11804,12401 11806,12398 11808,12395 11810,12392 11812,12389 11815,12387 11817,12384 11820,12382 11823,12380 11826,12377 11829,12376 11832,12374 11835,12372 11839,12371 11842,12370 11845,12369 11849,12368 11852,12367 11856,12366 11859,12366 11863,12366 12018,12365 12018,12366 12022,12366 12025,12366 12029,12367 12032,12367 12036,12368 12039,12369 12043,12370 12046,12372 12049,12373 12052,12375 12055,12377 12058,12379 12061,12381 12064,12383 12066,12386 12069,12388 12071,12391 12073,12394 12076,12397 12077,12400 12079,12403 12081,12406 12082,12410 12083,12413 12084,12416 12085,12420 12086,12423 12087,12427 12087,12430 12087,12434 12087,12435 Z M 12087,12504 L 12087,12504 Z M 11794,12365 L 11794,12365 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id112">
- <rect class="BoundingBox" stroke="none" fill="none" x="7020" y="11937" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7314,12007 L 7314,12007 7314,12011 7314,12014 7313,12018 7312,12021 7312,12025 7311,12028 7309,12032 7308,12035 7306,12038 7305,12042 7303,12045 7301,12048 7299,12050 7296,12053 7294,12056 7291,12058 7288,12061 7286,12063 7283,12065 7279,12067 7276,12068 7273,12070 7270,12071 7266,12073 7263,12074 7259,12074 7256,12075 7252,12076 7249,12076 7245,12076 7091,12076 7091,12076 7087,12076 7084,12076 7080,12075 7077,12074 7073,12074 7070,12073 7066,12071 7063,12070 7060,12068 7056,12067 7053,12065 7050,12063 7048,12061 7045,12058 7042,12056 7040,12053 7037,12050 7035,12048 7033,12045 7031,12041 7030,12038 7028,12035 7027,12032 7025,12028 7024,12025 7024,12021 7023,12018 7022,12014 7022,12011 7022,12007 7021,12007 7022,12007 7022,12003 7022,12000 7023,11996 7023,11993 7024,11989 7025,11986 7026,11982 7028,11979 7029,11976 7031,11973 7033,11970 7035,11967 7037,11964 7039,11961 7042,11959 7044,11956 7047,11954 7050,11952 7053,11949 7056,11948 7059,11946 7062,11944 7066,11943 7069,11942 7072,11941 7076,11940 7079,11939 7083,11938 7086,11938 7090,11938 7245,11937 7245,11938 7249,11938 7252,11938 7256,11939 7259,11939 7263,11940 7266,11941 7270,11942 7273,11944 7276,11945 7279,11947 7282,11949 7285,11951 7288,11953 7291,11955 7293,11958 7296,11960 7298,11963 7300,11966 7303,11969 7304,11972 7306,11975 7308,11978 7309,11982 7310,11985 7311,11988 7312,11992 7313,11995 7314,11999 7314,12002 7314,12006 7314,12007 Z M 7314,12076 L 7314,12076 Z M 7021,11937 L 7021,11937 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id113">
- <rect class="BoundingBox" stroke="none" fill="none" x="7021" y="12137" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7314,12207 L 7314,12207 7314,12211 7314,12214 7313,12218 7312,12221 7312,12225 7311,12228 7309,12232 7308,12235 7306,12238 7305,12242 7303,12245 7301,12248 7299,12250 7296,12253 7294,12256 7291,12258 7288,12261 7286,12263 7283,12265 7279,12267 7276,12268 7273,12270 7270,12271 7266,12273 7263,12274 7259,12274 7256,12275 7252,12276 7249,12276 7245,12276 7091,12276 7091,12276 7087,12276 7084,12276 7080,12275 7077,12274 7073,12274 7070,12273 7066,12271 7063,12270 7060,12268 7056,12267 7053,12265 7050,12263 7048,12261 7045,12258 7042,12256 7040,12253 7037,12250 7035,12248 7033,12245 7031,12241 7030,12238 7028,12235 7027,12232 7025,12228 7024,12225 7024,12221 7023,12218 7022,12214 7022,12211 7022,12207 7021,12207 7022,12207 7022,12203 7022,12200 7023,12196 7023,12193 7024,12189 7025,12186 7026,12182 7028,12179 7029,12176 7031,12173 7033,12170 7035,12167 7037,12164 7039,12161 7042,12159 7044,12156 7047,12154 7050,12152 7053,12149 7056,12148 7059,12146 7062,12144 7066,12143 7069,12142 7072,12141 7076,12140 7079,12139 7083,12138 7086,12138 7090,12138 7245,12137 7245,12138 7249,12138 7252,12138 7256,12139 7259,12139 7263,12140 7266,12141 7270,12142 7273,12144 7276,12145 7279,12147 7282,12149 7285,12151 7288,12153 7291,12155 7293,12158 7296,12160 7298,12163 7300,12166 7303,12169 7304,12172 7306,12175 7308,12178 7309,12182 7310,12185 7311,12188 7312,12192 7313,12195 7314,12199 7314,12202 7314,12206 7314,12207 Z M 7314,12276 L 7314,12276 Z M 7021,12137 L 7021,12137 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id114">
- <rect class="BoundingBox" stroke="none" fill="none" x="7021" y="12337" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7314,12407 L 7314,12407 7314,12411 7314,12414 7313,12418 7312,12421 7312,12425 7311,12428 7309,12432 7308,12435 7306,12438 7305,12442 7303,12445 7301,12448 7299,12450 7296,12453 7294,12456 7291,12458 7288,12461 7286,12463 7283,12465 7279,12467 7276,12468 7273,12470 7270,12471 7266,12473 7263,12474 7259,12474 7256,12475 7252,12476 7249,12476 7245,12476 7091,12476 7091,12476 7087,12476 7084,12476 7080,12475 7077,12474 7073,12474 7070,12473 7066,12471 7063,12470 7060,12468 7056,12467 7053,12465 7050,12463 7048,12461 7045,12458 7042,12456 7040,12453 7037,12450 7035,12448 7033,12445 7031,12441 7030,12438 7028,12435 7027,12432 7025,12428 7024,12425 7024,12421 7023,12418 7022,12414 7022,12411 7022,12407 7021,12407 7022,12407 7022,12403 7022,12400 7023,12396 7023,12393 7024,12389 7025,12386 7026,12382 7028,12379 7029,12376 7031,12373 7033,12370 7035,12367 7037,12364 7039,12361 7042,12359 7044,12356 7047,12354 7050,12352 7053,12349 7056,12348 7059,12346 7062,12344 7066,12343 7069,12342 7072,12341 7076,12340 7079,12339 7083,12338 7086,12338 7090,12338 7245,12337 7245,12338 7249,12338 7252,12338 7256,12339 7259,12339 7263,12340 7266,12341 7270,12342 7273,12344 7276,12345 7279,12347 7282,12349 7285,12351 7288,12353 7291,12355 7293,12358 7296,12360 7298,12363 7300,12366 7303,12369 7304,12372 7306,12375 7308,12378 7309,12382 7310,12385 7311,12388 7312,12392 7313,12395 7314,12399 7314,12402 7314,12406 7314,12407 Z M 7314,12476 L 7314,12476 Z M 7021,12337 L 7021,12337 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id115">
- <rect class="BoundingBox" stroke="none" fill="none" x="6671" y="11937" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6965,12007 L 6965,12007 6965,12011 6965,12014 6964,12018 6963,12021 6963,12025 6962,12028 6960,12032 6959,12035 6957,12038 6956,12042 6954,12045 6952,12048 6950,12050 6947,12053 6945,12056 6942,12058 6939,12061 6937,12063 6934,12065 6930,12067 6927,12068 6924,12070 6921,12071 6917,12073 6914,12074 6910,12074 6907,12075 6903,12076 6900,12076 6896,12076 6742,12076 6742,12076 6738,12076 6735,12076 6731,12075 6728,12074 6724,12074 6721,12073 6717,12071 6714,12070 6711,12068 6707,12067 6704,12065 6701,12063 6699,12061 6696,12058 6693,12056 6691,12053 6688,12050 6686,12048 6684,12045 6682,12041 6681,12038 6679,12035 6678,12032 6676,12028 6675,12025 6675,12021 6674,12018 6673,12014 6673,12011 6673,12007 6672,12007 6673,12007 6673,12003 6673,12000 6674,11996 6674,11993 6675,11989 6676,11986 6677,11982 6679,11979 6680,11976 6682,11973 6684,11970 6686,11967 6688,11964 6690,11961 6693,11959 6695,11956 6698,11954 6701,11952 6704,11949 6707,11948 6710,11946 6713,11944 6717,11943 6720,11942 6723,11941 6727,11940 6730,11939 6734,11938 6737,11938 6741,11938 6896,11937 6896,11938 6900,11938 6903,11938 6907,11939 6910,11939 6914,11940 6917,11941 6921,11942 6924,11944 6927,11945 6930,11947 6933,11949 6936,11951 6939,11953 6942,11955 6944,11958 6947,11960 6949,11963 6951,11966 6954,11969 6955,11972 6957,11975 6959,11978 6960,11982 6961,11985 6962,11988 6963,11992 6964,11995 6965,11999 6965,12002 6965,12006 6965,12007 Z M 6965,12076 L 6965,12076 Z M 6672,11937 L 6672,11937 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id116">
- <rect class="BoundingBox" stroke="none" fill="none" x="6672" y="12137" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6965,12207 L 6965,12207 6965,12211 6965,12214 6964,12218 6963,12221 6963,12225 6962,12228 6960,12232 6959,12235 6957,12238 6956,12242 6954,12245 6952,12248 6950,12250 6947,12253 6945,12256 6942,12258 6939,12261 6937,12263 6934,12265 6930,12267 6927,12268 6924,12270 6921,12271 6917,12273 6914,12274 6910,12274 6907,12275 6903,12276 6900,12276 6896,12276 6742,12276 6742,12276 6738,12276 6735,12276 6731,12275 6728,12274 6724,12274 6721,12273 6717,12271 6714,12270 6711,12268 6707,12267 6704,12265 6701,12263 6699,12261 6696,12258 6693,12256 6691,12253 6688,12250 6686,12248 6684,12245 6682,12241 6681,12238 6679,12235 6678,12232 6676,12228 6675,12225 6675,12221 6674,12218 6673,12214 6673,12211 6673,12207 6672,12207 6673,12207 6673,12203 6673,12200 6674,12196 6674,12193 6675,12189 6676,12186 6677,12182 6679,12179 6680,12176 6682,12173 6684,12170 6686,12167 6688,12164 6690,12161 6693,12159 6695,12156 6698,12154 6701,12152 6704,12149 6707,12148 6710,12146 6713,12144 6717,12143 6720,12142 6723,12141 6727,12140 6730,12139 6734,12138 6737,12138 6741,12138 6896,12137 6896,12138 6900,12138 6903,12138 6907,12139 6910,12139 6914,12140 6917,12141 6921,12142 6924,12144 6927,12145 6930,12147 6933,12149 6936,12151 6939,12153 6942,12155 6944,12158 6947,12160 6949,12163 6951,12166 6954,12169 6955,12172 6957,12175 6959,12178 6960,12182 6961,12185 6962,12188 6963,12192 6964,12195 6965,12199 6965,12202 6965,12206 6965,12207 Z M 6965,12276 L 6965,12276 Z M 6672,12137 L 6672,12137 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id117">
- <rect class="BoundingBox" stroke="none" fill="none" x="6672" y="12337" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6965,12407 L 6965,12407 6965,12411 6965,12414 6964,12418 6963,12421 6963,12425 6962,12428 6960,12432 6959,12435 6957,12438 6956,12442 6954,12445 6952,12448 6950,12450 6947,12453 6945,12456 6942,12458 6939,12461 6937,12463 6934,12465 6930,12467 6927,12468 6924,12470 6921,12471 6917,12473 6914,12474 6910,12474 6907,12475 6903,12476 6900,12476 6896,12476 6742,12476 6742,12476 6738,12476 6735,12476 6731,12475 6728,12474 6724,12474 6721,12473 6717,12471 6714,12470 6711,12468 6707,12467 6704,12465 6701,12463 6699,12461 6696,12458 6693,12456 6691,12453 6688,12450 6686,12448 6684,12445 6682,12441 6681,12438 6679,12435 6678,12432 6676,12428 6675,12425 6675,12421 6674,12418 6673,12414 6673,12411 6673,12407 6672,12407 6673,12407 6673,12403 6673,12400 6674,12396 6674,12393 6675,12389 6676,12386 6677,12382 6679,12379 6680,12376 6682,12373 6684,12370 6686,12367 6688,12364 6690,12361 6693,12359 6695,12356 6698,12354 6701,12352 6704,12349 6707,12348 6710,12346 6713,12344 6717,12343 6720,12342 6723,12341 6727,12340 6730,12339 6734,12338 6737,12338 6741,12338 6896,12337 6896,12338 6900,12338 6903,12338 6907,12339 6910,12339 6914,12340 6917,12341 6921,12342 6924,12344 6927,12345 6930,12347 6933,12349 6936,12351 6939,12353 6942,12355 6944,12358 6947,12360 6949,12363 6951,12366 6954,12369 6955,12372 6957,12375 6959,12378 6960,12382 6961,12385 6962,12388 6963,12392 6964,12395 6965,12399 6965,12402 6965,12406 6965,12407 Z M 6965,12476 L 6965,12476 Z M 6672,12337 L 6672,12337 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id118">
- <rect class="BoundingBox" stroke="none" fill="none" x="7351" y="11940" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7645,12010 L 7645,12010 7645,12014 7645,12017 7644,12021 7643,12024 7643,12028 7642,12031 7640,12035 7639,12038 7637,12041 7636,12045 7634,12048 7632,12051 7630,12053 7627,12056 7625,12059 7622,12061 7619,12064 7617,12066 7614,12068 7610,12070 7607,12071 7604,12073 7601,12074 7597,12076 7594,12077 7590,12077 7587,12078 7583,12079 7580,12079 7576,12079 7422,12079 7422,12079 7418,12079 7415,12079 7411,12078 7408,12077 7404,12077 7401,12076 7397,12074 7394,12073 7391,12071 7387,12070 7384,12068 7381,12066 7379,12064 7376,12061 7373,12059 7371,12056 7368,12053 7366,12051 7364,12048 7362,12044 7361,12041 7359,12038 7358,12035 7356,12031 7355,12028 7355,12024 7354,12021 7353,12017 7353,12014 7353,12010 7352,12010 7353,12010 7353,12006 7353,12003 7354,11999 7354,11996 7355,11992 7356,11989 7357,11985 7359,11982 7360,11979 7362,11976 7364,11973 7366,11970 7368,11967 7370,11964 7373,11962 7375,11959 7378,11957 7381,11955 7384,11952 7387,11951 7390,11949 7393,11947 7397,11946 7400,11945 7403,11944 7407,11943 7410,11942 7414,11941 7417,11941 7421,11941 7576,11940 7576,11941 7580,11941 7583,11941 7587,11942 7590,11942 7594,11943 7597,11944 7601,11945 7604,11947 7607,11948 7610,11950 7613,11952 7616,11954 7619,11956 7622,11958 7624,11961 7627,11963 7629,11966 7631,11969 7634,11972 7635,11975 7637,11978 7639,11981 7640,11985 7641,11988 7642,11991 7643,11995 7644,11998 7645,12002 7645,12005 7645,12009 7645,12010 Z M 7645,12079 L 7645,12079 Z M 7352,11940 L 7352,11940 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id119">
- <rect class="BoundingBox" stroke="none" fill="none" x="7352" y="12140" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7645,12210 L 7645,12210 7645,12214 7645,12217 7644,12221 7643,12224 7643,12228 7642,12231 7640,12235 7639,12238 7637,12241 7636,12245 7634,12248 7632,12251 7630,12253 7627,12256 7625,12259 7622,12261 7619,12264 7617,12266 7614,12268 7610,12270 7607,12271 7604,12273 7601,12274 7597,12276 7594,12277 7590,12277 7587,12278 7583,12279 7580,12279 7576,12279 7422,12279 7422,12279 7418,12279 7415,12279 7411,12278 7408,12277 7404,12277 7401,12276 7397,12274 7394,12273 7391,12271 7387,12270 7384,12268 7381,12266 7379,12264 7376,12261 7373,12259 7371,12256 7368,12253 7366,12251 7364,12248 7362,12244 7361,12241 7359,12238 7358,12235 7356,12231 7355,12228 7355,12224 7354,12221 7353,12217 7353,12214 7353,12210 7352,12210 7353,12210 7353,12206 7353,12203 7354,12199 7354,12196 7355,12192 7356,12189 7357,12185 7359,12182 7360,12179 7362,12176 7364,12173 7366,12170 7368,12167 7370,12164 7373,12162 7375,12159 7378,12157 7381,12155 7384,12152 7387,12151 7390,12149 7393,12147 7397,12146 7400,12145 7403,12144 7407,12143 7410,12142 7414,12141 7417,12141 7421,12141 7576,12140 7576,12141 7580,12141 7583,12141 7587,12142 7590,12142 7594,12143 7597,12144 7601,12145 7604,12147 7607,12148 7610,12150 7613,12152 7616,12154 7619,12156 7622,12158 7624,12161 7627,12163 7629,12166 7631,12169 7634,12172 7635,12175 7637,12178 7639,12181 7640,12185 7641,12188 7642,12191 7643,12195 7644,12198 7645,12202 7645,12205 7645,12209 7645,12210 Z M 7645,12279 L 7645,12279 Z M 7352,12140 L 7352,12140 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id120">
- <rect class="BoundingBox" stroke="none" fill="none" x="7352" y="12340" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7645,12410 L 7645,12410 7645,12414 7645,12417 7644,12421 7643,12424 7643,12428 7642,12431 7640,12435 7639,12438 7637,12441 7636,12445 7634,12448 7632,12451 7630,12453 7627,12456 7625,12459 7622,12461 7619,12464 7617,12466 7614,12468 7610,12470 7607,12471 7604,12473 7601,12474 7597,12476 7594,12477 7590,12477 7587,12478 7583,12479 7580,12479 7576,12479 7422,12479 7422,12479 7418,12479 7415,12479 7411,12478 7408,12477 7404,12477 7401,12476 7397,12474 7394,12473 7391,12471 7387,12470 7384,12468 7381,12466 7379,12464 7376,12461 7373,12459 7371,12456 7368,12453 7366,12451 7364,12448 7362,12444 7361,12441 7359,12438 7358,12435 7356,12431 7355,12428 7355,12424 7354,12421 7353,12417 7353,12414 7353,12410 7352,12410 7353,12410 7353,12406 7353,12403 7354,12399 7354,12396 7355,12392 7356,12389 7357,12385 7359,12382 7360,12379 7362,12376 7364,12373 7366,12370 7368,12367 7370,12364 7373,12362 7375,12359 7378,12357 7381,12355 7384,12352 7387,12351 7390,12349 7393,12347 7397,12346 7400,12345 7403,12344 7407,12343 7410,12342 7414,12341 7417,12341 7421,12341 7576,12340 7576,12341 7580,12341 7583,12341 7587,12342 7590,12342 7594,12343 7597,12344 7601,12345 7604,12347 7607,12348 7610,12350 7613,12352 7616,12354 7619,12356 7622,12358 7624,12361 7627,12363 7629,12366 7631,12369 7634,12372 7635,12375 7637,12378 7639,12381 7640,12385 7641,12388 7642,12391 7643,12395 7644,12398 7645,12402 7645,12405 7645,12409 7645,12410 Z M 7645,12479 L 7645,12479 Z M 7352,12340 L 7352,12340 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id121">
- <rect class="BoundingBox" stroke="none" fill="none" x="5191" y="9646" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5441" y="10042"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5441" y="10389"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id122">
- <rect class="BoundingBox" stroke="none" fill="none" x="8592" y="10662" width="891" height="1019"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 8592,11170 L 8851,10662 8851,10916 9222,10916 9222,10662 9482,11170 9222,11679 9222,11424 8851,11424 8851,11679 8592,11170 Z M 8592,10662 L 8592,10662 Z M 9482,11679 L 9482,11679 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id123">
- <rect class="BoundingBox" stroke="none" fill="none" x="8747" y="10942" width="609" height="382"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 9051,11323 L 8747,11323 8747,10942 9355,10942 9355,11323 9051,11323 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8815" y="11246"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id124">
- <rect class="BoundingBox" stroke="none" fill="none" x="1193" y="1920" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 4813,5116 L 1211,5116 1211,1938 8415,1938 8415,5116 4813,5116 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4813,5116 L 1211,5116 1211,1938 8415,1938 8415,5116 4813,5116 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1311" y="2326"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1311" y="2791"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id125">
- <rect class="BoundingBox" stroke="none" fill="none" x="1903" y="5020" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 2356,5463 L 1912,5463 1912,5029 2799,5029 2799,5463 2356,5463 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 2356,5463 L 1912,5463 1912,5029 2799,5029 2799,5463 2356,5463 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2081" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id126">
- <rect class="BoundingBox" stroke="none" fill="none" x="2016" y="5506" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2034,5524 L 2039,6224"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2034,5524 L 2034,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2039,6224 L 2039,6224 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id127">
- <rect class="BoundingBox" stroke="none" fill="none" x="1937" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2021,5523 L 1946,5523 1946,5424 2095,5424 2095,5523 2021,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2021,5523 L 1946,5523 1946,5424 2095,5424 2095,5523 2021,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id128">
- <rect class="BoundingBox" stroke="none" fill="none" x="2581" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2665,5521 L 2590,5521 2590,5422 2739,5422 2739,5521 2665,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2665,5521 L 2590,5521 2590,5422 2739,5422 2739,5521 2665,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id129">
- <rect class="BoundingBox" stroke="none" fill="none" x="2645" y="5504" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2665,5522 L 2663,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2665,5522 L 2665,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2663,6270 L 2663,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id130">
- <rect class="BoundingBox" stroke="none" fill="none" x="2221" y="5508" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2241,5526 L 2239,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2241,5526 L 2241,5526 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2239,6272 L 2239,6272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id131">
- <rect class="BoundingBox" stroke="none" fill="none" x="2157" y="5417" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2241,5525 L 2166,5525 2166,5426 2315,5426 2315,5525 2241,5525 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2241,5525 L 2166,5525 2166,5426 2315,5426 2315,5525 2241,5525 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id132">
- <rect class="BoundingBox" stroke="none" fill="none" x="2368" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2452,5523 L 2377,5523 2377,5424 2526,5424 2526,5523 2452,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2452,5523 L 2377,5523 2377,5424 2526,5424 2526,5523 2452,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id133">
- <rect class="BoundingBox" stroke="none" fill="none" x="2446" y="5506" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2464,5524 L 2470,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2464,5524 L 2464,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2470,6272 L 2470,6272 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id134">
- <rect class="BoundingBox" stroke="none" fill="none" x="1895" y="3088" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 3313,4272 L 1913,4272 1913,3106 4713,3106 4713,4272 3313,4272 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3313,4272 L 1913,4272 1913,3106 4713,3106 4713,4272 3313,4272 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2774" y="3410"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2628" y="3763"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon </tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2382" y="4116"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id135">
- <rect class="BoundingBox" stroke="none" fill="none" x="2867" y="5018" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 3320,5461 L 2876,5461 2876,5027 3763,5027 3763,5461 3320,5461 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 3320,5461 L 2876,5461 2876,5027 3763,5027 3763,5461 3320,5461 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3045" y="5325"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id136">
- <rect class="BoundingBox" stroke="none" fill="none" x="2980" y="5504" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2998,5522 L 3003,6268"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2998,5522 L 2998,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3003,6268 L 3003,6268 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id137">
- <rect class="BoundingBox" stroke="none" fill="none" x="2901" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 2985,5521 L 2910,5521 2910,5422 3059,5422 3059,5521 2985,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2985,5521 L 2910,5521 2910,5422 3059,5422 3059,5521 2985,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id138">
- <rect class="BoundingBox" stroke="none" fill="none" x="3545" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3629,5519 L 3554,5519 3554,5420 3703,5420 3703,5519 3629,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3629,5519 L 3554,5519 3554,5420 3703,5420 3703,5519 3629,5519 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id139">
- <rect class="BoundingBox" stroke="none" fill="none" x="3609" y="5502" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3629,5520 L 3627,6268"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3629,5520 L 3629,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3627,6268 L 3627,6268 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id140">
- <rect class="BoundingBox" stroke="none" fill="none" x="3185" y="5506" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3205,5524 L 3203,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3205,5524 L 3205,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3203,6270 L 3203,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id141">
- <rect class="BoundingBox" stroke="none" fill="none" x="3122" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3206,5523 L 3131,5523 3131,5424 3280,5424 3280,5523 3206,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3206,5523 L 3131,5523 3131,5424 3280,5424 3280,5523 3206,5523 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id142">
- <rect class="BoundingBox" stroke="none" fill="none" x="3333" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3417,5521 L 3342,5521 3342,5422 3491,5422 3491,5521 3417,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3417,5521 L 3342,5521 3342,5422 3491,5422 3491,5521 3417,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id143">
- <rect class="BoundingBox" stroke="none" fill="none" x="3411" y="5504" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3429,5522 L 3435,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3429,5522 L 3429,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3435,6270 L 3435,6270 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id144">
- <rect class="BoundingBox" stroke="none" fill="none" x="3816" y="5016" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 4269,5459 L 3825,5459 3825,5025 4712,5025 4712,5459 4269,5459 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 4269,5459 L 3825,5459 3825,5025 4712,5025 4712,5459 4269,5459 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3994" y="5323"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id145">
- <rect class="BoundingBox" stroke="none" fill="none" x="3929" y="5502" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3947,5520 L 3952,6266"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3947,5520 L 3947,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3952,6266 L 3952,6266 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id146">
- <rect class="BoundingBox" stroke="none" fill="none" x="3850" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 3934,5519 L 3859,5519 3859,5420 4008,5420 4008,5519 3934,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3934,5519 L 3859,5519 3859,5420 4008,5420 4008,5519 3934,5519 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id147">
- <rect class="BoundingBox" stroke="none" fill="none" x="4494" y="5408" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4578,5516 L 4503,5516 4503,5417 4652,5417 4652,5516 4578,5516 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4578,5516 L 4503,5516 4503,5417 4652,5417 4652,5516 4578,5516 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id148">
- <rect class="BoundingBox" stroke="none" fill="none" x="4558" y="5499" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4578,5517 L 4576,6217"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4578,5517 L 4578,5517 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4576,6217 L 4576,6217 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id149">
- <rect class="BoundingBox" stroke="none" fill="none" x="4134" y="5503" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4154,5521 L 4152,6267"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4154,5521 L 4154,5521 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4152,6267 L 4152,6267 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id150">
- <rect class="BoundingBox" stroke="none" fill="none" x="4071" y="5412" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4155,5520 L 4080,5520 4080,5421 4229,5421 4229,5520 4155,5520 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4155,5520 L 4080,5520 4080,5421 4229,5421 4229,5520 4155,5520 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id151">
- <rect class="BoundingBox" stroke="none" fill="none" x="4282" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 4366,5519 L 4291,5519 4291,5420 4440,5420 4440,5519 4366,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4366,5519 L 4291,5519 4291,5420 4440,5420 4440,5519 4366,5519 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id152">
- <rect class="BoundingBox" stroke="none" fill="none" x="4360" y="5502" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4378,5520 L 4384,6268"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4378,5520 L 4378,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4384,6268 L 4384,6268 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id153">
- <rect class="BoundingBox" stroke="none" fill="none" x="2109" y="4291" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 2386,5024 L 2109,4863 2247,4863 2247,4453 2109,4453 2386,4291 2664,4453 2525,4453 2525,4863 2664,4863 2386,5024 Z M 2109,5024 L 2109,5024 Z M 2664,4291 L 2664,4291 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id154">
- <rect class="BoundingBox" stroke="none" fill="none" x="2147" y="4481" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 2385,4824 L 2147,4824 2147,4481 2622,4481 2622,4824 2385,4824 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2156" y="4766"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id155">
- <rect class="BoundingBox" stroke="none" fill="none" x="3086" y="4286" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 3363,5019 L 3086,4858 3224,4858 3224,4448 3086,4448 3363,4286 3641,4448 3502,4448 3502,4858 3641,4858 3363,5019 Z M 3086,5019 L 3086,5019 Z M 3641,4286 L 3641,4286 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id156">
- <rect class="BoundingBox" stroke="none" fill="none" x="3125" y="4476" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 3363,4819 L 3125,4819 3125,4476 3600,4476 3600,4819 3363,4819 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3134" y="4761"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id157">
- <rect class="BoundingBox" stroke="none" fill="none" x="4039" y="4277" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 4316,5010 L 4039,4849 4177,4849 4177,4439 4039,4439 4316,4277 4594,4439 4455,4439 4455,4849 4594,4849 4316,5010 Z M 4039,5010 L 4039,5010 Z M 4594,4277 L 4594,4277 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id158">
- <rect class="BoundingBox" stroke="none" fill="none" x="4077" y="4467" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 4315,4810 L 4077,4810 4077,4467 4552,4467 4552,4810 4315,4810 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4086" y="4752"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id159">
- <rect class="BoundingBox" stroke="none" fill="none" x="4746" y="2289" width="1147" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4996" y="2696"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id160">
- <rect class="BoundingBox" stroke="none" fill="none" x="5215" y="3073" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 6633,4257 L 5233,4257 5233,3091 8033,3091 8033,4257 6633,4257 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 6633,4257 L 5233,4257 5233,3091 8033,3091 8033,4257 6633,4257 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6094" y="3395"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5984" y="3748"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5702" y="4101"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id161">
- <rect class="BoundingBox" stroke="none" fill="none" x="5217" y="5015" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 5670,5458 L 5226,5458 5226,5024 6113,5024 6113,5458 5670,5458 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 5670,5458 L 5226,5458 5226,5024 6113,5024 6113,5458 5670,5458 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5395" y="5322"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id162">
- <rect class="BoundingBox" stroke="none" fill="none" x="5330" y="5500" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5348,5518 L 5353,6218"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5348,5518 L 5348,5518 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5353,6218 L 5353,6218 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id163">
- <rect class="BoundingBox" stroke="none" fill="none" x="5251" y="5409" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5335,5517 L 5260,5517 5260,5418 5409,5418 5409,5517 5335,5517 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5335,5517 L 5260,5517 5260,5418 5409,5418 5409,5517 5335,5517 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id164">
- <rect class="BoundingBox" stroke="none" fill="none" x="5895" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5979,5515 L 5904,5515 5904,5416 6053,5416 6053,5515 5979,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5979,5515 L 5904,5515 5904,5416 6053,5416 6053,5515 5979,5515 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id165">
- <rect class="BoundingBox" stroke="none" fill="none" x="5959" y="5498" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5979,5516 L 5977,6264"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5979,5516 L 5979,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5977,6264 L 5977,6264 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id166">
- <rect class="BoundingBox" stroke="none" fill="none" x="5535" y="5502" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5555,5520 L 5553,6266"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5555,5520 L 5555,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5553,6266 L 5553,6266 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id167">
- <rect class="BoundingBox" stroke="none" fill="none" x="5472" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5556,5519 L 5481,5519 5481,5420 5630,5420 5630,5519 5556,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5556,5519 L 5481,5519 5481,5420 5630,5420 5630,5519 5556,5519 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id168">
- <rect class="BoundingBox" stroke="none" fill="none" x="5683" y="5409" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 5767,5517 L 5692,5517 5692,5418 5841,5418 5841,5517 5767,5517 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5767,5517 L 5692,5517 5692,5418 5841,5418 5841,5517 5767,5517 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id169">
- <rect class="BoundingBox" stroke="none" fill="none" x="5761" y="5500" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5779,5518 L 5785,6266"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5779,5518 L 5779,5518 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5785,6266 L 5785,6266 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id170">
- <rect class="BoundingBox" stroke="none" fill="none" x="6182" y="5012" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 6635,5455 L 6191,5455 6191,5021 7078,5021 7078,5455 6635,5455 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6635,5455 L 6191,5455 6191,5021 7078,5021 7078,5455 6635,5455 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6360" y="5319"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id171">
- <rect class="BoundingBox" stroke="none" fill="none" x="6295" y="5498" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6313,5516 L 6318,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6313,5516 L 6313,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6318,6262 L 6318,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id172">
- <rect class="BoundingBox" stroke="none" fill="none" x="6216" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6300,5515 L 6225,5515 6225,5416 6374,5416 6374,5515 6300,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6300,5515 L 6225,5515 6225,5416 6374,5416 6374,5515 6300,5515 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id173">
- <rect class="BoundingBox" stroke="none" fill="none" x="6860" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6944,5513 L 6869,5513 6869,5414 7018,5414 7018,5513 6944,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6944,5513 L 6869,5513 6869,5414 7018,5414 7018,5513 6944,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id174">
- <rect class="BoundingBox" stroke="none" fill="none" x="6924" y="5496" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6944,5514 L 6942,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6944,5514 L 6944,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6942,6262 L 6942,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id175">
- <rect class="BoundingBox" stroke="none" fill="none" x="6500" y="5500" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6520,5518 L 6518,6264"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6520,5518 L 6520,5518 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6518,6264 L 6518,6264 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id176">
- <rect class="BoundingBox" stroke="none" fill="none" x="6436" y="5409" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6520,5517 L 6445,5517 6445,5418 6594,5418 6594,5517 6520,5517 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6520,5517 L 6445,5517 6445,5418 6594,5418 6594,5517 6520,5517 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id177">
- <rect class="BoundingBox" stroke="none" fill="none" x="6648" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 6732,5515 L 6657,5515 6657,5416 6806,5416 6806,5515 6732,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6732,5515 L 6657,5515 6657,5416 6806,5416 6806,5515 6732,5515 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id178">
- <rect class="BoundingBox" stroke="none" fill="none" x="6726" y="5498" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6744,5516 L 6750,6264"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6744,5516 L 6744,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6750,6264 L 6750,6264 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id179">
- <rect class="BoundingBox" stroke="none" fill="none" x="7131" y="5010" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 7584,5453 L 7140,5453 7140,5019 8027,5019 8027,5453 7584,5453 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7584,5453 L 7140,5453 7140,5019 8027,5019 8027,5453 7584,5453 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7309" y="5317"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id180">
- <rect class="BoundingBox" stroke="none" fill="none" x="7244" y="5496" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7262,5514 L 7267,6260"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7262,5514 L 7262,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7267,6260 L 7267,6260 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id181">
- <rect class="BoundingBox" stroke="none" fill="none" x="7165" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7249,5513 L 7174,5513 7174,5414 7323,5414 7323,5513 7249,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7249,5513 L 7174,5513 7174,5414 7323,5414 7323,5513 7249,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id182">
- <rect class="BoundingBox" stroke="none" fill="none" x="7808" y="5403" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7892,5511 L 7817,5511 7817,5412 7966,5412 7966,5511 7892,5511 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7892,5511 L 7817,5511 7817,5412 7966,5412 7966,5511 7892,5511 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id183">
- <rect class="BoundingBox" stroke="none" fill="none" x="7873" y="5494" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7893,5512 L 7891,6212"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7893,5512 L 7893,5512 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7891,6212 L 7891,6212 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id184">
- <rect class="BoundingBox" stroke="none" fill="none" x="7449" y="5498" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7469,5516 L 7467,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7469,5516 L 7469,5516 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7467,6262 L 7467,6262 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id185">
- <rect class="BoundingBox" stroke="none" fill="none" x="7385" y="5407" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7469,5515 L 7394,5515 7394,5416 7543,5416 7543,5515 7469,5515 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7469,5515 L 7394,5515 7394,5416 7543,5416 7543,5515 7469,5515 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id186">
- <rect class="BoundingBox" stroke="none" fill="none" x="7596" y="5405" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 7680,5513 L 7605,5513 7605,5414 7754,5414 7754,5513 7680,5513 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7680,5513 L 7605,5513 7605,5414 7754,5414 7754,5513 7680,5513 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id187">
- <rect class="BoundingBox" stroke="none" fill="none" x="7674" y="5496" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7692,5514 L 7698,6262"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7692,5514 L 7692,5514 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7698,6262 L 7698,6262 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id188">
- <rect class="BoundingBox" stroke="none" fill="none" x="5423" y="4285" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 5700,5018 L 5423,4857 5561,4857 5561,4447 5423,4447 5700,4285 5978,4447 5839,4447 5839,4857 5978,4857 5700,5018 Z M 5423,5018 L 5423,5018 Z M 5978,4285 L 5978,4285 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id189">
- <rect class="BoundingBox" stroke="none" fill="none" x="5462" y="4475" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 5700,4818 L 5462,4818 5462,4475 5937,4475 5937,4818 5700,4818 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5471" y="4760"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id190">
- <rect class="BoundingBox" stroke="none" fill="none" x="6401" y="4281" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 6678,5014 L 6401,4853 6539,4853 6539,4443 6401,4443 6678,4281 6956,4443 6817,4443 6817,4853 6956,4853 6678,5014 Z M 6401,5014 L 6401,5014 Z M 6956,4281 L 6956,4281 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id191">
- <rect class="BoundingBox" stroke="none" fill="none" x="6439" y="4471" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 6677,4814 L 6439,4814 6439,4471 6914,4471 6914,4814 6677,4814 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6448" y="4756"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id192">
- <rect class="BoundingBox" stroke="none" fill="none" x="7353" y="4272" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 7630,5005 L 7353,4844 7491,4844 7491,4434 7353,4434 7630,4272 7908,4434 7769,4434 7769,4844 7908,4844 7630,5005 Z M 7353,5005 L 7353,5005 Z M 7908,4272 L 7908,4272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id193">
- <rect class="BoundingBox" stroke="none" fill="none" x="7392" y="4462" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 7630,4805 L 7392,4805 7392,4462 7867,4462 7867,4805 7630,4805 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7401" y="4747"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id194">
- <rect class="BoundingBox" stroke="none" fill="none" x="4512" y="3208" width="892" height="1018"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 4512,3716 L 4771,3208 4771,3462 5142,3462 5142,3208 5402,3716 5142,4225 5142,3970 4771,3970 4771,4225 4512,3716 Z M 4512,3208 L 4512,3208 Z M 5402,4225 L 5402,4225 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id195">
- <rect class="BoundingBox" stroke="none" fill="none" x="1981" y="6147" width="2666" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 4593,6200 L 4593,6200 4593,6207 4593,6213 4592,6220 4592,6226 4591,6232 4590,6239 4590,6245 4588,6251 4587,6257 4586,6263 4585,6268 4583,6274 4581,6279 4580,6284 4578,6288 4576,6293 4574,6297 4572,6301 4570,6305 4567,6308 4565,6311 4563,6314 4560,6317 4558,6319 4555,6321 4553,6322 4550,6323 4547,6324 4545,6325 4542,6325 2086,6327 2086,6327 2083,6327 2081,6326 2078,6325 2075,6324 2073,6323 2070,6321 2068,6319 2065,6316 2063,6313 2061,6310 2058,6307 2056,6303 2054,6299 2052,6295 2050,6290 2048,6285 2047,6280 2045,6275 2043,6270 2042,6264 2041,6258 2040,6252 2038,6246 2038,6240 2037,6234 2036,6227 2036,6221 2035,6214 2035,6208 2035,6201"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 4593,6200 L 4593,6200 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2034,6327 L 2034,6327 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id196">
- <rect class="BoundingBox" stroke="none" fill="none" x="5300" y="6138" width="2666" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7912,6192 L 7912,6192 7912,6199 7912,6205 7911,6212 7911,6218 7910,6224 7909,6231 7909,6237 7907,6243 7906,6249 7905,6255 7904,6260 7902,6266 7900,6271 7899,6276 7897,6280 7895,6285 7893,6289 7891,6293 7889,6297 7886,6300 7884,6303 7882,6306 7879,6309 7877,6311 7874,6313 7872,6314 7869,6315 7866,6316 7864,6317 7861,6317 5405,6319 5405,6319 5402,6319 5400,6318 5397,6317 5394,6316 5392,6315 5389,6313 5387,6311 5384,6308 5382,6305 5380,6302 5377,6299 5375,6295 5373,6291 5371,6287 5369,6282 5367,6277 5366,6272 5364,6267 5362,6262 5361,6256 5360,6250 5359,6244 5357,6238 5357,6232 5356,6226 5355,6219 5355,6213 5354,6206 5354,6200 5354,6193"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7912,6192 L 7912,6192 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 5353,6319 L 5353,6319 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id197">
- <rect class="BoundingBox" stroke="none" fill="none" x="2208" y="1254" width="5233" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2458" y="1802"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 1 (SUT1)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id198">
- <rect class="BoundingBox" stroke="none" fill="none" x="3018" y="2336" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3312,2406 L 3312,2406 3312,2410 3312,2413 3311,2417 3310,2420 3310,2424 3309,2427 3307,2431 3306,2434 3304,2437 3303,2441 3301,2444 3299,2447 3297,2449 3294,2452 3292,2455 3289,2457 3286,2460 3284,2462 3281,2464 3277,2466 3274,2467 3271,2469 3268,2470 3264,2472 3261,2473 3257,2473 3254,2474 3250,2475 3247,2475 3243,2475 3089,2475 3089,2475 3085,2475 3082,2475 3078,2474 3075,2473 3071,2473 3068,2472 3064,2470 3061,2469 3058,2467 3054,2466 3051,2464 3048,2462 3046,2460 3043,2457 3040,2455 3038,2452 3035,2449 3033,2447 3031,2444 3029,2440 3028,2437 3026,2434 3025,2431 3023,2427 3022,2424 3022,2420 3021,2417 3020,2413 3020,2410 3020,2406 3019,2406 3020,2406 3020,2402 3020,2399 3021,2395 3021,2392 3022,2388 3023,2385 3024,2381 3026,2378 3027,2375 3029,2372 3031,2369 3033,2366 3035,2363 3037,2360 3040,2358 3042,2355 3045,2353 3048,2351 3051,2348 3054,2347 3057,2345 3060,2343 3064,2342 3067,2341 3070,2340 3074,2339 3077,2338 3081,2337 3084,2337 3088,2337 3243,2336 3243,2337 3247,2337 3250,2337 3254,2338 3257,2338 3261,2339 3264,2340 3268,2341 3271,2343 3274,2344 3277,2346 3280,2348 3283,2350 3286,2352 3289,2354 3291,2357 3294,2359 3296,2362 3298,2365 3301,2368 3302,2371 3304,2374 3306,2377 3307,2381 3308,2384 3309,2387 3310,2391 3311,2394 3312,2398 3312,2401 3312,2405 3312,2406 Z M 3312,2475 L 3312,2475 Z M 3019,2336 L 3019,2336 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id199">
- <rect class="BoundingBox" stroke="none" fill="none" x="3018" y="2535" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3312,2606 L 3312,2606 3312,2610 3312,2613 3311,2617 3310,2620 3310,2624 3309,2627 3307,2631 3306,2634 3304,2637 3303,2641 3301,2644 3299,2647 3297,2649 3294,2652 3292,2655 3289,2657 3286,2660 3284,2662 3281,2664 3277,2666 3274,2667 3271,2669 3268,2670 3264,2672 3261,2673 3257,2673 3254,2674 3250,2675 3247,2675 3243,2675 3089,2675 3089,2675 3085,2675 3082,2675 3078,2674 3075,2673 3071,2673 3068,2672 3064,2670 3061,2669 3058,2667 3054,2666 3051,2664 3048,2662 3046,2660 3043,2657 3040,2655 3038,2652 3035,2649 3033,2647 3031,2644 3029,2640 3028,2637 3026,2634 3025,2631 3023,2627 3022,2624 3022,2620 3021,2617 3020,2613 3020,2610 3020,2606 3019,2606 3020,2606 3020,2602 3020,2599 3021,2595 3021,2592 3022,2588 3023,2585 3024,2581 3026,2578 3027,2575 3029,2572 3031,2569 3033,2566 3035,2563 3037,2560 3040,2558 3042,2555 3045,2553 3048,2551 3051,2548 3054,2547 3057,2545 3060,2543 3064,2542 3067,2541 3070,2540 3074,2539 3077,2538 3081,2537 3084,2537 3088,2537 3243,2536 3243,2537 3247,2537 3250,2537 3254,2538 3257,2538 3261,2539 3264,2540 3268,2541 3271,2543 3274,2544 3277,2546 3280,2548 3283,2550 3286,2552 3289,2554 3291,2557 3294,2559 3296,2562 3298,2565 3301,2568 3302,2571 3304,2574 3306,2577 3307,2581 3308,2584 3309,2587 3310,2591 3311,2594 3312,2598 3312,2601 3312,2605 3312,2606 Z M 3312,2675 L 3312,2675 Z M 3019,2536 L 3019,2536 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id200">
- <rect class="BoundingBox" stroke="none" fill="none" x="3018" y="2736" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3312,2806 L 3312,2806 3312,2810 3312,2813 3311,2817 3310,2820 3310,2824 3309,2827 3307,2831 3306,2834 3304,2837 3303,2841 3301,2844 3299,2847 3297,2849 3294,2852 3292,2855 3289,2857 3286,2860 3284,2862 3281,2864 3277,2866 3274,2867 3271,2869 3268,2870 3264,2872 3261,2873 3257,2873 3254,2874 3250,2875 3247,2875 3243,2875 3089,2875 3089,2875 3085,2875 3082,2875 3078,2874 3075,2873 3071,2873 3068,2872 3064,2870 3061,2869 3058,2867 3054,2866 3051,2864 3048,2862 3046,2860 3043,2857 3040,2855 3038,2852 3035,2849 3033,2847 3031,2844 3029,2840 3028,2837 3026,2834 3025,2831 3023,2827 3022,2824 3022,2820 3021,2817 3020,2813 3020,2810 3020,2806 3019,2806 3020,2806 3020,2802 3020,2799 3021,2795 3021,2792 3022,2788 3023,2785 3024,2781 3026,2778 3027,2775 3029,2772 3031,2769 3033,2766 3035,2763 3037,2760 3040,2758 3042,2755 3045,2753 3048,2751 3051,2748 3054,2747 3057,2745 3060,2743 3064,2742 3067,2741 3070,2740 3074,2739 3077,2738 3081,2737 3084,2737 3088,2737 3243,2736 3243,2737 3247,2737 3250,2737 3254,2738 3257,2738 3261,2739 3264,2740 3268,2741 3271,2743 3274,2744 3277,2746 3280,2748 3283,2750 3286,2752 3289,2754 3291,2757 3294,2759 3296,2762 3298,2765 3301,2768 3302,2771 3304,2774 3306,2777 3307,2781 3308,2784 3309,2787 3310,2791 3311,2794 3312,2798 3312,2801 3312,2805 3312,2806 Z M 3312,2875 L 3312,2875 Z M 3019,2736 L 3019,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id201">
- <rect class="BoundingBox" stroke="none" fill="none" x="2670" y="2336" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 2963,2406 L 2963,2406 2963,2410 2963,2413 2962,2417 2961,2420 2961,2424 2960,2427 2958,2431 2957,2434 2955,2437 2954,2441 2952,2444 2950,2447 2948,2449 2945,2452 2943,2455 2940,2457 2937,2460 2935,2462 2932,2464 2928,2466 2925,2467 2922,2469 2919,2470 2915,2472 2912,2473 2908,2473 2905,2474 2901,2475 2898,2475 2894,2475 2740,2475 2740,2475 2736,2475 2733,2475 2729,2474 2726,2473 2722,2473 2719,2472 2715,2470 2712,2469 2709,2467 2705,2466 2702,2464 2699,2462 2697,2460 2694,2457 2691,2455 2689,2452 2686,2449 2684,2447 2682,2444 2680,2440 2679,2437 2677,2434 2676,2431 2674,2427 2673,2424 2673,2420 2672,2417 2671,2413 2671,2410 2671,2406 2670,2406 2671,2406 2671,2402 2671,2399 2672,2395 2672,2392 2673,2388 2674,2385 2675,2381 2677,2378 2678,2375 2680,2372 2682,2369 2684,2366 2686,2363 2688,2360 2691,2358 2693,2355 2696,2353 2699,2351 2702,2348 2705,2347 2708,2345 2711,2343 2715,2342 2718,2341 2721,2340 2725,2339 2728,2338 2732,2337 2735,2337 2739,2337 2894,2336 2894,2337 2898,2337 2901,2337 2905,2338 2908,2338 2912,2339 2915,2340 2919,2341 2922,2343 2925,2344 2928,2346 2931,2348 2934,2350 2937,2352 2940,2354 2942,2357 2945,2359 2947,2362 2949,2365 2952,2368 2953,2371 2955,2374 2957,2377 2958,2381 2959,2384 2960,2387 2961,2391 2962,2394 2963,2398 2963,2401 2963,2405 2963,2406 Z M 2963,2475 L 2963,2475 Z M 2670,2336 L 2670,2336 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id202">
- <rect class="BoundingBox" stroke="none" fill="none" x="2670" y="2536" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 2963,2606 L 2963,2606 2963,2610 2963,2613 2962,2617 2961,2620 2961,2624 2960,2627 2958,2631 2957,2634 2955,2637 2954,2641 2952,2644 2950,2647 2948,2649 2945,2652 2943,2655 2940,2657 2937,2660 2935,2662 2932,2664 2928,2666 2925,2667 2922,2669 2919,2670 2915,2672 2912,2673 2908,2673 2905,2674 2901,2675 2898,2675 2894,2675 2740,2675 2740,2675 2736,2675 2733,2675 2729,2674 2726,2673 2722,2673 2719,2672 2715,2670 2712,2669 2709,2667 2705,2666 2702,2664 2699,2662 2697,2660 2694,2657 2691,2655 2689,2652 2686,2649 2684,2647 2682,2644 2680,2640 2679,2637 2677,2634 2676,2631 2674,2627 2673,2624 2673,2620 2672,2617 2671,2613 2671,2610 2671,2606 2670,2606 2671,2606 2671,2602 2671,2599 2672,2595 2672,2592 2673,2588 2674,2585 2675,2581 2677,2578 2678,2575 2680,2572 2682,2569 2684,2566 2686,2563 2688,2560 2691,2558 2693,2555 2696,2553 2699,2551 2702,2548 2705,2547 2708,2545 2711,2543 2715,2542 2718,2541 2721,2540 2725,2539 2728,2538 2732,2537 2735,2537 2739,2537 2894,2536 2894,2537 2898,2537 2901,2537 2905,2538 2908,2538 2912,2539 2915,2540 2919,2541 2922,2543 2925,2544 2928,2546 2931,2548 2934,2550 2937,2552 2940,2554 2942,2557 2945,2559 2947,2562 2949,2565 2952,2568 2953,2571 2955,2574 2957,2577 2958,2581 2959,2584 2960,2587 2961,2591 2962,2594 2963,2598 2963,2601 2963,2605 2963,2606 Z M 2963,2675 L 2963,2675 Z M 2670,2536 L 2670,2536 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id203">
- <rect class="BoundingBox" stroke="none" fill="none" x="2670" y="2736" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 2963,2806 L 2963,2806 2963,2810 2963,2813 2962,2817 2961,2820 2961,2824 2960,2827 2958,2831 2957,2834 2955,2837 2954,2841 2952,2844 2950,2847 2948,2849 2945,2852 2943,2855 2940,2857 2937,2860 2935,2862 2932,2864 2928,2866 2925,2867 2922,2869 2919,2870 2915,2872 2912,2873 2908,2873 2905,2874 2901,2875 2898,2875 2894,2875 2740,2875 2740,2875 2736,2875 2733,2875 2729,2874 2726,2873 2722,2873 2719,2872 2715,2870 2712,2869 2709,2867 2705,2866 2702,2864 2699,2862 2697,2860 2694,2857 2691,2855 2689,2852 2686,2849 2684,2847 2682,2844 2680,2840 2679,2837 2677,2834 2676,2831 2674,2827 2673,2824 2673,2820 2672,2817 2671,2813 2671,2810 2671,2806 2670,2806 2671,2806 2671,2802 2671,2799 2672,2795 2672,2792 2673,2788 2674,2785 2675,2781 2677,2778 2678,2775 2680,2772 2682,2769 2684,2766 2686,2763 2688,2760 2691,2758 2693,2755 2696,2753 2699,2751 2702,2748 2705,2747 2708,2745 2711,2743 2715,2742 2718,2741 2721,2740 2725,2739 2728,2738 2732,2737 2735,2737 2739,2737 2894,2736 2894,2737 2898,2737 2901,2737 2905,2738 2908,2738 2912,2739 2915,2740 2919,2741 2922,2743 2925,2744 2928,2746 2931,2748 2934,2750 2937,2752 2940,2754 2942,2757 2945,2759 2947,2762 2949,2765 2952,2768 2953,2771 2955,2774 2957,2777 2958,2781 2959,2784 2960,2787 2961,2791 2962,2794 2963,2798 2963,2801 2963,2805 2963,2806 Z M 2963,2875 L 2963,2875 Z M 2670,2736 L 2670,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id204">
- <rect class="BoundingBox" stroke="none" fill="none" x="3349" y="2339" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3642,2409 L 3642,2409 3642,2413 3642,2416 3641,2420 3640,2423 3640,2427 3639,2430 3637,2434 3636,2437 3634,2440 3633,2444 3631,2447 3629,2450 3627,2452 3624,2455 3622,2458 3619,2460 3616,2463 3614,2465 3611,2467 3607,2469 3604,2470 3601,2472 3598,2473 3594,2475 3591,2476 3587,2476 3584,2477 3580,2478 3577,2478 3573,2478 3419,2478 3419,2478 3415,2478 3412,2478 3408,2477 3405,2476 3401,2476 3398,2475 3394,2473 3391,2472 3388,2470 3384,2469 3381,2467 3378,2465 3376,2463 3373,2460 3370,2458 3368,2455 3365,2452 3363,2450 3361,2447 3359,2443 3358,2440 3356,2437 3355,2434 3353,2430 3352,2427 3352,2423 3351,2420 3350,2416 3350,2413 3350,2409 3349,2409 3350,2409 3350,2405 3350,2402 3351,2398 3351,2395 3352,2391 3353,2388 3354,2384 3356,2381 3357,2378 3359,2375 3361,2372 3363,2369 3365,2366 3367,2363 3370,2361 3372,2358 3375,2356 3378,2354 3381,2351 3384,2350 3387,2348 3390,2346 3394,2345 3397,2344 3400,2343 3404,2342 3407,2341 3411,2340 3414,2340 3418,2340 3573,2339 3573,2340 3577,2340 3580,2340 3584,2341 3587,2341 3591,2342 3594,2343 3598,2344 3601,2346 3604,2347 3607,2349 3610,2351 3613,2353 3616,2355 3619,2357 3621,2360 3624,2362 3626,2365 3628,2368 3631,2371 3632,2374 3634,2377 3636,2380 3637,2384 3638,2387 3639,2390 3640,2394 3641,2397 3642,2401 3642,2404 3642,2408 3642,2409 Z M 3642,2478 L 3642,2478 Z M 3349,2339 L 3349,2339 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id205">
- <rect class="BoundingBox" stroke="none" fill="none" x="3349" y="2539" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3642,2609 L 3642,2609 3642,2613 3642,2616 3641,2620 3640,2623 3640,2627 3639,2630 3637,2634 3636,2637 3634,2640 3633,2644 3631,2647 3629,2650 3627,2652 3624,2655 3622,2658 3619,2660 3616,2663 3614,2665 3611,2667 3607,2669 3604,2670 3601,2672 3598,2673 3594,2675 3591,2676 3587,2676 3584,2677 3580,2678 3577,2678 3573,2678 3419,2678 3419,2678 3415,2678 3412,2678 3408,2677 3405,2676 3401,2676 3398,2675 3394,2673 3391,2672 3388,2670 3384,2669 3381,2667 3378,2665 3376,2663 3373,2660 3370,2658 3368,2655 3365,2652 3363,2650 3361,2647 3359,2643 3358,2640 3356,2637 3355,2634 3353,2630 3352,2627 3352,2623 3351,2620 3350,2616 3350,2613 3350,2609 3349,2609 3350,2609 3350,2605 3350,2602 3351,2598 3351,2595 3352,2591 3353,2588 3354,2584 3356,2581 3357,2578 3359,2575 3361,2572 3363,2569 3365,2566 3367,2563 3370,2561 3372,2558 3375,2556 3378,2554 3381,2551 3384,2550 3387,2548 3390,2546 3394,2545 3397,2544 3400,2543 3404,2542 3407,2541 3411,2540 3414,2540 3418,2540 3573,2539 3573,2540 3577,2540 3580,2540 3584,2541 3587,2541 3591,2542 3594,2543 3598,2544 3601,2546 3604,2547 3607,2549 3610,2551 3613,2553 3616,2555 3619,2557 3621,2560 3624,2562 3626,2565 3628,2568 3631,2571 3632,2574 3634,2577 3636,2580 3637,2584 3638,2587 3639,2590 3640,2594 3641,2597 3642,2601 3642,2604 3642,2608 3642,2609 Z M 3642,2678 L 3642,2678 Z M 3349,2539 L 3349,2539 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id206">
- <rect class="BoundingBox" stroke="none" fill="none" x="3349" y="2738" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 3642,2808 L 3642,2808 3642,2812 3642,2815 3641,2819 3640,2822 3640,2826 3639,2829 3637,2833 3636,2836 3634,2839 3633,2843 3631,2846 3629,2849 3627,2851 3624,2854 3622,2857 3619,2859 3616,2862 3614,2864 3611,2866 3607,2868 3604,2869 3601,2871 3598,2872 3594,2874 3591,2875 3587,2875 3584,2876 3580,2877 3577,2877 3573,2877 3419,2877 3419,2877 3415,2877 3412,2877 3408,2876 3405,2875 3401,2875 3398,2874 3394,2872 3391,2871 3388,2869 3384,2868 3381,2866 3378,2864 3376,2862 3373,2859 3370,2857 3368,2854 3365,2851 3363,2849 3361,2846 3359,2842 3358,2839 3356,2836 3355,2833 3353,2829 3352,2826 3352,2822 3351,2819 3350,2815 3350,2812 3350,2808 3349,2808 3350,2808 3350,2804 3350,2801 3351,2797 3351,2794 3352,2790 3353,2787 3354,2783 3356,2780 3357,2777 3359,2774 3361,2771 3363,2768 3365,2765 3367,2762 3370,2760 3372,2757 3375,2755 3378,2753 3381,2750 3384,2749 3387,2747 3390,2745 3394,2744 3397,2743 3400,2742 3404,2741 3407,2740 3411,2739 3414,2739 3418,2739 3573,2738 3573,2739 3577,2739 3580,2739 3584,2740 3587,2740 3591,2741 3594,2742 3598,2743 3601,2745 3604,2746 3607,2748 3610,2750 3613,2752 3616,2754 3619,2756 3621,2759 3624,2761 3626,2764 3628,2767 3631,2770 3632,2773 3634,2776 3636,2779 3637,2783 3638,2786 3639,2789 3640,2793 3641,2796 3642,2800 3642,2803 3642,2807 3642,2808 Z M 3642,2877 L 3642,2877 Z M 3349,2738 L 3349,2738 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id207">
- <rect class="BoundingBox" stroke="none" fill="none" x="4077" y="2334" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4370,2404 L 4370,2404 4370,2408 4370,2411 4369,2415 4368,2418 4368,2422 4367,2425 4365,2429 4364,2432 4362,2435 4361,2439 4359,2442 4357,2445 4355,2447 4352,2450 4350,2453 4347,2455 4344,2458 4342,2460 4339,2462 4335,2464 4332,2465 4329,2467 4326,2468 4322,2470 4319,2471 4315,2471 4312,2472 4308,2473 4305,2473 4301,2473 4147,2473 4147,2473 4143,2473 4140,2473 4136,2472 4133,2471 4129,2471 4126,2470 4122,2468 4119,2467 4116,2465 4112,2464 4109,2462 4106,2460 4104,2458 4101,2455 4098,2453 4096,2450 4093,2447 4091,2445 4089,2442 4087,2438 4086,2435 4084,2432 4083,2429 4081,2425 4080,2422 4080,2418 4079,2415 4078,2411 4078,2408 4078,2404 4077,2404 4078,2404 4078,2400 4078,2397 4079,2393 4079,2390 4080,2386 4081,2383 4082,2379 4084,2376 4085,2373 4087,2370 4089,2367 4091,2364 4093,2361 4095,2358 4098,2356 4100,2353 4103,2351 4106,2349 4109,2346 4112,2345 4115,2343 4118,2341 4122,2340 4125,2339 4128,2338 4132,2337 4135,2336 4139,2335 4142,2335 4146,2335 4301,2334 4301,2335 4305,2335 4308,2335 4312,2336 4315,2336 4319,2337 4322,2338 4326,2339 4329,2341 4332,2342 4335,2344 4338,2346 4341,2348 4344,2350 4347,2352 4349,2355 4352,2357 4354,2360 4356,2363 4359,2366 4360,2369 4362,2372 4364,2375 4365,2379 4366,2382 4367,2385 4368,2389 4369,2392 4370,2396 4370,2399 4370,2403 4370,2404 Z M 4370,2473 L 4370,2473 Z M 4077,2334 L 4077,2334 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id208">
- <rect class="BoundingBox" stroke="none" fill="none" x="4077" y="2534" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4370,2604 L 4370,2604 4370,2608 4370,2611 4369,2615 4368,2618 4368,2622 4367,2625 4365,2629 4364,2632 4362,2635 4361,2639 4359,2642 4357,2645 4355,2647 4352,2650 4350,2653 4347,2655 4344,2658 4342,2660 4339,2662 4335,2664 4332,2665 4329,2667 4326,2668 4322,2670 4319,2671 4315,2671 4312,2672 4308,2673 4305,2673 4301,2673 4147,2673 4147,2673 4143,2673 4140,2673 4136,2672 4133,2671 4129,2671 4126,2670 4122,2668 4119,2667 4116,2665 4112,2664 4109,2662 4106,2660 4104,2658 4101,2655 4098,2653 4096,2650 4093,2647 4091,2645 4089,2642 4087,2638 4086,2635 4084,2632 4083,2629 4081,2625 4080,2622 4080,2618 4079,2615 4078,2611 4078,2608 4078,2604 4077,2604 4078,2604 4078,2600 4078,2597 4079,2593 4079,2590 4080,2586 4081,2583 4082,2579 4084,2576 4085,2573 4087,2570 4089,2567 4091,2564 4093,2561 4095,2558 4098,2556 4100,2553 4103,2551 4106,2549 4109,2546 4112,2545 4115,2543 4118,2541 4122,2540 4125,2539 4128,2538 4132,2537 4135,2536 4139,2535 4142,2535 4146,2535 4301,2534 4301,2535 4305,2535 4308,2535 4312,2536 4315,2536 4319,2537 4322,2538 4326,2539 4329,2541 4332,2542 4335,2544 4338,2546 4341,2548 4344,2550 4347,2552 4349,2555 4352,2557 4354,2560 4356,2563 4359,2566 4360,2569 4362,2572 4364,2575 4365,2579 4366,2582 4367,2585 4368,2589 4369,2592 4370,2596 4370,2599 4370,2603 4370,2604 Z M 4370,2673 L 4370,2673 Z M 4077,2534 L 4077,2534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id209">
- <rect class="BoundingBox" stroke="none" fill="none" x="4077" y="2734" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4370,2804 L 4370,2804 4370,2808 4370,2811 4369,2815 4368,2818 4368,2822 4367,2825 4365,2829 4364,2832 4362,2835 4361,2839 4359,2842 4357,2845 4355,2847 4352,2850 4350,2853 4347,2855 4344,2858 4342,2860 4339,2862 4335,2864 4332,2865 4329,2867 4326,2868 4322,2870 4319,2871 4315,2871 4312,2872 4308,2873 4305,2873 4301,2873 4147,2873 4147,2873 4143,2873 4140,2873 4136,2872 4133,2871 4129,2871 4126,2870 4122,2868 4119,2867 4116,2865 4112,2864 4109,2862 4106,2860 4104,2858 4101,2855 4098,2853 4096,2850 4093,2847 4091,2845 4089,2842 4087,2838 4086,2835 4084,2832 4083,2829 4081,2825 4080,2822 4080,2818 4079,2815 4078,2811 4078,2808 4078,2804 4077,2804 4078,2804 4078,2800 4078,2797 4079,2793 4079,2790 4080,2786 4081,2783 4082,2779 4084,2776 4085,2773 4087,2770 4089,2767 4091,2764 4093,2761 4095,2758 4098,2756 4100,2753 4103,2751 4106,2749 4109,2746 4112,2745 4115,2743 4118,2741 4122,2740 4125,2739 4128,2738 4132,2737 4135,2736 4139,2735 4142,2735 4146,2735 4301,2734 4301,2735 4305,2735 4308,2735 4312,2736 4315,2736 4319,2737 4322,2738 4326,2739 4329,2741 4332,2742 4335,2744 4338,2746 4341,2748 4344,2750 4347,2752 4349,2755 4352,2757 4354,2760 4356,2763 4359,2766 4360,2769 4362,2772 4364,2775 4365,2779 4366,2782 4367,2785 4368,2789 4369,2792 4370,2796 4370,2799 4370,2803 4370,2804 Z M 4370,2873 L 4370,2873 Z M 4077,2734 L 4077,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id210">
- <rect class="BoundingBox" stroke="none" fill="none" x="3728" y="2334" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4021,2404 L 4021,2404 4021,2408 4021,2411 4020,2415 4019,2418 4019,2422 4018,2425 4016,2429 4015,2432 4013,2435 4012,2439 4010,2442 4008,2445 4006,2447 4003,2450 4001,2453 3998,2455 3995,2458 3993,2460 3990,2462 3986,2464 3983,2465 3980,2467 3977,2468 3973,2470 3970,2471 3966,2471 3963,2472 3959,2473 3956,2473 3952,2473 3798,2473 3798,2473 3794,2473 3791,2473 3787,2472 3784,2471 3780,2471 3777,2470 3773,2468 3770,2467 3767,2465 3763,2464 3760,2462 3757,2460 3755,2458 3752,2455 3749,2453 3747,2450 3744,2447 3742,2445 3740,2442 3738,2438 3737,2435 3735,2432 3734,2429 3732,2425 3731,2422 3731,2418 3730,2415 3729,2411 3729,2408 3729,2404 3728,2404 3729,2404 3729,2400 3729,2397 3730,2393 3730,2390 3731,2386 3732,2383 3733,2379 3735,2376 3736,2373 3738,2370 3740,2367 3742,2364 3744,2361 3746,2358 3749,2356 3751,2353 3754,2351 3757,2349 3760,2346 3763,2345 3766,2343 3769,2341 3773,2340 3776,2339 3779,2338 3783,2337 3786,2336 3790,2335 3793,2335 3797,2335 3952,2334 3952,2335 3956,2335 3959,2335 3963,2336 3966,2336 3970,2337 3973,2338 3977,2339 3980,2341 3983,2342 3986,2344 3989,2346 3992,2348 3995,2350 3998,2352 4000,2355 4003,2357 4005,2360 4007,2363 4010,2366 4011,2369 4013,2372 4015,2375 4016,2379 4017,2382 4018,2385 4019,2389 4020,2392 4021,2396 4021,2399 4021,2403 4021,2404 Z M 4021,2473 L 4021,2473 Z M 3728,2334 L 3728,2334 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id211">
- <rect class="BoundingBox" stroke="none" fill="none" x="3728" y="2534" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4021,2604 L 4021,2604 4021,2608 4021,2611 4020,2615 4019,2618 4019,2622 4018,2625 4016,2629 4015,2632 4013,2635 4012,2639 4010,2642 4008,2645 4006,2647 4003,2650 4001,2653 3998,2655 3995,2658 3993,2660 3990,2662 3986,2664 3983,2665 3980,2667 3977,2668 3973,2670 3970,2671 3966,2671 3963,2672 3959,2673 3956,2673 3952,2673 3798,2673 3798,2673 3794,2673 3791,2673 3787,2672 3784,2671 3780,2671 3777,2670 3773,2668 3770,2667 3767,2665 3763,2664 3760,2662 3757,2660 3755,2658 3752,2655 3749,2653 3747,2650 3744,2647 3742,2645 3740,2642 3738,2638 3737,2635 3735,2632 3734,2629 3732,2625 3731,2622 3731,2618 3730,2615 3729,2611 3729,2608 3729,2604 3728,2604 3729,2604 3729,2600 3729,2597 3730,2593 3730,2590 3731,2586 3732,2583 3733,2579 3735,2576 3736,2573 3738,2570 3740,2567 3742,2564 3744,2561 3746,2558 3749,2556 3751,2553 3754,2551 3757,2549 3760,2546 3763,2545 3766,2543 3769,2541 3773,2540 3776,2539 3779,2538 3783,2537 3786,2536 3790,2535 3793,2535 3797,2535 3952,2534 3952,2535 3956,2535 3959,2535 3963,2536 3966,2536 3970,2537 3973,2538 3977,2539 3980,2541 3983,2542 3986,2544 3989,2546 3992,2548 3995,2550 3998,2552 4000,2555 4003,2557 4005,2560 4007,2563 4010,2566 4011,2569 4013,2572 4015,2575 4016,2579 4017,2582 4018,2585 4019,2589 4020,2592 4021,2596 4021,2599 4021,2603 4021,2604 Z M 4021,2673 L 4021,2673 Z M 3728,2534 L 3728,2534 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id212">
- <rect class="BoundingBox" stroke="none" fill="none" x="3728" y="2733" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4021,2804 L 4021,2804 4021,2808 4021,2811 4020,2815 4019,2818 4019,2822 4018,2825 4016,2829 4015,2832 4013,2835 4012,2839 4010,2842 4008,2845 4006,2847 4003,2850 4001,2853 3998,2855 3995,2858 3993,2860 3990,2862 3986,2864 3983,2865 3980,2867 3977,2868 3973,2870 3970,2871 3966,2871 3963,2872 3959,2873 3956,2873 3952,2873 3798,2873 3798,2873 3794,2873 3791,2873 3787,2872 3784,2871 3780,2871 3777,2870 3773,2868 3770,2867 3767,2865 3763,2864 3760,2862 3757,2860 3755,2858 3752,2855 3749,2853 3747,2850 3744,2847 3742,2845 3740,2842 3738,2838 3737,2835 3735,2832 3734,2829 3732,2825 3731,2822 3731,2818 3730,2815 3729,2811 3729,2808 3729,2804 3728,2804 3729,2804 3729,2800 3729,2797 3730,2793 3730,2790 3731,2786 3732,2783 3733,2779 3735,2776 3736,2773 3738,2770 3740,2767 3742,2764 3744,2761 3746,2758 3749,2756 3751,2753 3754,2751 3757,2749 3760,2746 3763,2745 3766,2743 3769,2741 3773,2740 3776,2739 3779,2738 3783,2737 3786,2736 3790,2735 3793,2735 3797,2735 3952,2734 3952,2735 3956,2735 3959,2735 3963,2736 3966,2736 3970,2737 3973,2738 3977,2739 3980,2741 3983,2742 3986,2744 3989,2746 3992,2748 3995,2750 3998,2752 4000,2755 4003,2757 4005,2760 4007,2763 4010,2766 4011,2769 4013,2772 4015,2775 4016,2779 4017,2782 4018,2785 4019,2789 4020,2792 4021,2796 4021,2799 4021,2803 4021,2804 Z M 4021,2873 L 4021,2873 Z M 3728,2734 L 3728,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id213">
- <rect class="BoundingBox" stroke="none" fill="none" x="4407" y="2337" width="296" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4701,2407 L 4701,2407 4701,2411 4701,2414 4700,2418 4699,2421 4699,2425 4698,2428 4696,2432 4695,2435 4693,2438 4692,2442 4690,2445 4688,2448 4686,2450 4683,2453 4681,2456 4678,2458 4675,2461 4673,2463 4670,2465 4666,2467 4663,2468 4660,2470 4657,2471 4653,2473 4650,2474 4646,2474 4643,2475 4639,2476 4636,2476 4632,2476 4478,2476 4478,2476 4474,2476 4471,2476 4467,2475 4464,2474 4460,2474 4457,2473 4453,2471 4450,2470 4447,2468 4443,2467 4440,2465 4437,2463 4435,2461 4432,2458 4429,2456 4427,2453 4424,2450 4422,2448 4420,2445 4418,2441 4417,2438 4415,2435 4414,2432 4412,2428 4411,2425 4411,2421 4410,2418 4409,2414 4409,2411 4409,2407 4408,2407 4409,2407 4409,2403 4409,2400 4410,2396 4410,2393 4411,2389 4412,2386 4413,2382 4415,2379 4416,2376 4418,2373 4420,2370 4422,2367 4424,2364 4426,2361 4429,2359 4431,2356 4434,2354 4437,2352 4440,2349 4443,2348 4446,2346 4449,2344 4453,2343 4456,2342 4459,2341 4463,2340 4466,2339 4470,2338 4473,2338 4477,2338 4632,2337 4632,2338 4636,2338 4639,2338 4643,2339 4646,2339 4650,2340 4653,2341 4657,2342 4660,2344 4663,2345 4666,2347 4669,2349 4672,2351 4675,2353 4678,2355 4680,2358 4683,2360 4685,2363 4687,2366 4690,2369 4691,2372 4693,2375 4695,2378 4696,2382 4697,2385 4698,2388 4699,2392 4700,2395 4701,2399 4701,2402 4701,2406 4701,2407 Z M 4701,2476 L 4701,2476 Z M 4408,2337 L 4408,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id214">
- <rect class="BoundingBox" stroke="none" fill="none" x="4408" y="2537" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4701,2607 L 4701,2607 4701,2611 4701,2614 4700,2618 4699,2621 4699,2625 4698,2628 4696,2632 4695,2635 4693,2638 4692,2642 4690,2645 4688,2648 4686,2650 4683,2653 4681,2656 4678,2658 4675,2661 4673,2663 4670,2665 4666,2667 4663,2668 4660,2670 4657,2671 4653,2673 4650,2674 4646,2674 4643,2675 4639,2676 4636,2676 4632,2676 4478,2676 4478,2676 4474,2676 4471,2676 4467,2675 4464,2674 4460,2674 4457,2673 4453,2671 4450,2670 4447,2668 4443,2667 4440,2665 4437,2663 4435,2661 4432,2658 4429,2656 4427,2653 4424,2650 4422,2648 4420,2645 4418,2641 4417,2638 4415,2635 4414,2632 4412,2628 4411,2625 4411,2621 4410,2618 4409,2614 4409,2611 4409,2607 4408,2607 4409,2607 4409,2603 4409,2600 4410,2596 4410,2593 4411,2589 4412,2586 4413,2582 4415,2579 4416,2576 4418,2573 4420,2570 4422,2567 4424,2564 4426,2561 4429,2559 4431,2556 4434,2554 4437,2552 4440,2549 4443,2548 4446,2546 4449,2544 4453,2543 4456,2542 4459,2541 4463,2540 4466,2539 4470,2538 4473,2538 4477,2538 4632,2537 4632,2538 4636,2538 4639,2538 4643,2539 4646,2539 4650,2540 4653,2541 4657,2542 4660,2544 4663,2545 4666,2547 4669,2549 4672,2551 4675,2553 4678,2555 4680,2558 4683,2560 4685,2563 4687,2566 4690,2569 4691,2572 4693,2575 4695,2578 4696,2582 4697,2585 4698,2588 4699,2592 4700,2595 4701,2599 4701,2602 4701,2606 4701,2607 Z M 4701,2676 L 4701,2676 Z M 4408,2537 L 4408,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id215">
- <rect class="BoundingBox" stroke="none" fill="none" x="4408" y="2737" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 4701,2807 L 4701,2807 4701,2811 4701,2814 4700,2818 4699,2821 4699,2825 4698,2828 4696,2832 4695,2835 4693,2838 4692,2842 4690,2845 4688,2848 4686,2850 4683,2853 4681,2856 4678,2858 4675,2861 4673,2863 4670,2865 4666,2867 4663,2868 4660,2870 4657,2871 4653,2873 4650,2874 4646,2874 4643,2875 4639,2876 4636,2876 4632,2876 4478,2876 4478,2876 4474,2876 4471,2876 4467,2875 4464,2874 4460,2874 4457,2873 4453,2871 4450,2870 4447,2868 4443,2867 4440,2865 4437,2863 4435,2861 4432,2858 4429,2856 4427,2853 4424,2850 4422,2848 4420,2845 4418,2841 4417,2838 4415,2835 4414,2832 4412,2828 4411,2825 4411,2821 4410,2818 4409,2814 4409,2811 4409,2807 4408,2807 4409,2807 4409,2803 4409,2800 4410,2796 4410,2793 4411,2789 4412,2786 4413,2782 4415,2779 4416,2776 4418,2773 4420,2770 4422,2767 4424,2764 4426,2761 4429,2759 4431,2756 4434,2754 4437,2752 4440,2749 4443,2748 4446,2746 4449,2744 4453,2743 4456,2742 4459,2741 4463,2740 4466,2739 4470,2738 4473,2738 4477,2738 4632,2737 4632,2738 4636,2738 4639,2738 4643,2739 4646,2739 4650,2740 4653,2741 4657,2742 4660,2744 4663,2745 4666,2747 4669,2749 4672,2751 4675,2753 4678,2755 4680,2758 4683,2760 4685,2763 4687,2766 4690,2769 4691,2772 4693,2775 4695,2778 4696,2782 4697,2785 4698,2788 4699,2792 4700,2795 4701,2799 4701,2802 4701,2806 4701,2807 Z M 4701,2876 L 4701,2876 Z M 4408,2737 L 4408,2737 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id216">
- <rect class="BoundingBox" stroke="none" fill="none" x="6352" y="2336" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6645,2407 L 6645,2407 6645,2411 6645,2414 6644,2418 6643,2421 6643,2425 6642,2428 6640,2432 6639,2435 6637,2438 6636,2442 6634,2445 6632,2448 6630,2450 6627,2453 6625,2456 6622,2458 6619,2461 6617,2463 6614,2465 6610,2467 6607,2468 6604,2470 6601,2471 6597,2473 6594,2474 6590,2474 6587,2475 6583,2476 6580,2476 6576,2476 6422,2476 6422,2476 6418,2476 6415,2476 6411,2475 6408,2474 6404,2474 6401,2473 6397,2471 6394,2470 6391,2468 6387,2467 6384,2465 6381,2463 6379,2461 6376,2458 6373,2456 6371,2453 6368,2450 6366,2448 6364,2445 6362,2441 6361,2438 6359,2435 6358,2432 6356,2428 6355,2425 6355,2421 6354,2418 6353,2414 6353,2411 6353,2407 6352,2407 6353,2407 6353,2403 6353,2400 6354,2396 6354,2393 6355,2389 6356,2386 6357,2382 6359,2379 6360,2376 6362,2373 6364,2370 6366,2367 6368,2364 6370,2361 6373,2359 6375,2356 6378,2354 6381,2352 6384,2349 6387,2348 6390,2346 6393,2344 6397,2343 6400,2342 6403,2341 6407,2340 6410,2339 6414,2338 6417,2338 6421,2338 6576,2337 6576,2338 6580,2338 6583,2338 6587,2339 6590,2339 6594,2340 6597,2341 6601,2342 6604,2344 6607,2345 6610,2347 6613,2349 6616,2351 6619,2353 6622,2355 6624,2358 6627,2360 6629,2363 6631,2366 6634,2369 6635,2372 6637,2375 6639,2378 6640,2382 6641,2385 6642,2388 6643,2392 6644,2395 6645,2399 6645,2402 6645,2406 6645,2407 Z M 6645,2476 L 6645,2476 Z M 6352,2337 L 6352,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id217">
- <rect class="BoundingBox" stroke="none" fill="none" x="6352" y="2537" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6645,2607 L 6645,2607 6645,2611 6645,2614 6644,2618 6643,2621 6643,2625 6642,2628 6640,2632 6639,2635 6637,2638 6636,2642 6634,2645 6632,2648 6630,2650 6627,2653 6625,2656 6622,2658 6619,2661 6617,2663 6614,2665 6610,2667 6607,2668 6604,2670 6601,2671 6597,2673 6594,2674 6590,2674 6587,2675 6583,2676 6580,2676 6576,2676 6422,2676 6422,2676 6418,2676 6415,2676 6411,2675 6408,2674 6404,2674 6401,2673 6397,2671 6394,2670 6391,2668 6387,2667 6384,2665 6381,2663 6379,2661 6376,2658 6373,2656 6371,2653 6368,2650 6366,2648 6364,2645 6362,2641 6361,2638 6359,2635 6358,2632 6356,2628 6355,2625 6355,2621 6354,2618 6353,2614 6353,2611 6353,2607 6352,2607 6353,2607 6353,2603 6353,2600 6354,2596 6354,2593 6355,2589 6356,2586 6357,2582 6359,2579 6360,2576 6362,2573 6364,2570 6366,2567 6368,2564 6370,2561 6373,2559 6375,2556 6378,2554 6381,2552 6384,2549 6387,2548 6390,2546 6393,2544 6397,2543 6400,2542 6403,2541 6407,2540 6410,2539 6414,2538 6417,2538 6421,2538 6576,2537 6576,2538 6580,2538 6583,2538 6587,2539 6590,2539 6594,2540 6597,2541 6601,2542 6604,2544 6607,2545 6610,2547 6613,2549 6616,2551 6619,2553 6622,2555 6624,2558 6627,2560 6629,2563 6631,2566 6634,2569 6635,2572 6637,2575 6639,2578 6640,2582 6641,2585 6642,2588 6643,2592 6644,2595 6645,2599 6645,2602 6645,2606 6645,2607 Z M 6645,2676 L 6645,2676 Z M 6352,2537 L 6352,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id218">
- <rect class="BoundingBox" stroke="none" fill="none" x="6352" y="2736" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6645,2806 L 6645,2806 6645,2810 6645,2813 6644,2817 6643,2820 6643,2824 6642,2827 6640,2831 6639,2834 6637,2837 6636,2841 6634,2844 6632,2847 6630,2849 6627,2852 6625,2855 6622,2857 6619,2860 6617,2862 6614,2864 6610,2866 6607,2867 6604,2869 6601,2870 6597,2872 6594,2873 6590,2873 6587,2874 6583,2875 6580,2875 6576,2875 6422,2875 6422,2875 6418,2875 6415,2875 6411,2874 6408,2873 6404,2873 6401,2872 6397,2870 6394,2869 6391,2867 6387,2866 6384,2864 6381,2862 6379,2860 6376,2857 6373,2855 6371,2852 6368,2849 6366,2847 6364,2844 6362,2840 6361,2837 6359,2834 6358,2831 6356,2827 6355,2824 6355,2820 6354,2817 6353,2813 6353,2810 6353,2806 6352,2806 6353,2806 6353,2802 6353,2799 6354,2795 6354,2792 6355,2788 6356,2785 6357,2781 6359,2778 6360,2775 6362,2772 6364,2769 6366,2766 6368,2763 6370,2760 6373,2758 6375,2755 6378,2753 6381,2751 6384,2748 6387,2747 6390,2745 6393,2743 6397,2742 6400,2741 6403,2740 6407,2739 6410,2738 6414,2737 6417,2737 6421,2737 6576,2736 6576,2737 6580,2737 6583,2737 6587,2738 6590,2738 6594,2739 6597,2740 6601,2741 6604,2743 6607,2744 6610,2746 6613,2748 6616,2750 6619,2752 6622,2754 6624,2757 6627,2759 6629,2762 6631,2765 6634,2768 6635,2771 6637,2774 6639,2777 6640,2781 6641,2784 6642,2787 6643,2791 6644,2794 6645,2798 6645,2801 6645,2805 6645,2806 Z M 6645,2875 L 6645,2875 Z M 6352,2736 L 6352,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id219">
- <rect class="BoundingBox" stroke="none" fill="none" x="6003" y="2337" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6296,2407 L 6296,2407 6296,2411 6296,2414 6295,2418 6294,2421 6294,2425 6293,2428 6291,2432 6290,2435 6288,2438 6287,2442 6285,2445 6283,2448 6281,2450 6278,2453 6276,2456 6273,2458 6270,2461 6268,2463 6265,2465 6261,2467 6258,2468 6255,2470 6252,2471 6248,2473 6245,2474 6241,2474 6238,2475 6234,2476 6231,2476 6227,2476 6073,2476 6073,2476 6069,2476 6066,2476 6062,2475 6059,2474 6055,2474 6052,2473 6048,2471 6045,2470 6042,2468 6038,2467 6035,2465 6032,2463 6030,2461 6027,2458 6024,2456 6022,2453 6019,2450 6017,2448 6015,2445 6013,2441 6012,2438 6010,2435 6009,2432 6007,2428 6006,2425 6006,2421 6005,2418 6004,2414 6004,2411 6004,2407 6003,2407 6004,2407 6004,2403 6004,2400 6005,2396 6005,2393 6006,2389 6007,2386 6008,2382 6010,2379 6011,2376 6013,2373 6015,2370 6017,2367 6019,2364 6021,2361 6024,2359 6026,2356 6029,2354 6032,2352 6035,2349 6038,2348 6041,2346 6044,2344 6048,2343 6051,2342 6054,2341 6058,2340 6061,2339 6065,2338 6068,2338 6072,2338 6227,2337 6227,2338 6231,2338 6234,2338 6238,2339 6241,2339 6245,2340 6248,2341 6252,2342 6255,2344 6258,2345 6261,2347 6264,2349 6267,2351 6270,2353 6273,2355 6275,2358 6278,2360 6280,2363 6282,2366 6285,2369 6286,2372 6288,2375 6290,2378 6291,2382 6292,2385 6293,2388 6294,2392 6295,2395 6296,2399 6296,2402 6296,2406 6296,2407 Z M 6296,2476 L 6296,2476 Z M 6003,2337 L 6003,2337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id220">
- <rect class="BoundingBox" stroke="none" fill="none" x="6003" y="2537" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6296,2607 L 6296,2607 6296,2611 6296,2614 6295,2618 6294,2621 6294,2625 6293,2628 6291,2632 6290,2635 6288,2638 6287,2642 6285,2645 6283,2648 6281,2650 6278,2653 6276,2656 6273,2658 6270,2661 6268,2663 6265,2665 6261,2667 6258,2668 6255,2670 6252,2671 6248,2673 6245,2674 6241,2674 6238,2675 6234,2676 6231,2676 6227,2676 6073,2676 6073,2676 6069,2676 6066,2676 6062,2675 6059,2674 6055,2674 6052,2673 6048,2671 6045,2670 6042,2668 6038,2667 6035,2665 6032,2663 6030,2661 6027,2658 6024,2656 6022,2653 6019,2650 6017,2648 6015,2645 6013,2641 6012,2638 6010,2635 6009,2632 6007,2628 6006,2625 6006,2621 6005,2618 6004,2614 6004,2611 6004,2607 6003,2607 6004,2607 6004,2603 6004,2600 6005,2596 6005,2593 6006,2589 6007,2586 6008,2582 6010,2579 6011,2576 6013,2573 6015,2570 6017,2567 6019,2564 6021,2561 6024,2559 6026,2556 6029,2554 6032,2552 6035,2549 6038,2548 6041,2546 6044,2544 6048,2543 6051,2542 6054,2541 6058,2540 6061,2539 6065,2538 6068,2538 6072,2538 6227,2537 6227,2538 6231,2538 6234,2538 6238,2539 6241,2539 6245,2540 6248,2541 6252,2542 6255,2544 6258,2545 6261,2547 6264,2549 6267,2551 6270,2553 6273,2555 6275,2558 6278,2560 6280,2563 6282,2566 6285,2569 6286,2572 6288,2575 6290,2578 6291,2582 6292,2585 6293,2588 6294,2592 6295,2595 6296,2599 6296,2602 6296,2606 6296,2607 Z M 6296,2676 L 6296,2676 Z M 6003,2537 L 6003,2537 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id221">
- <rect class="BoundingBox" stroke="none" fill="none" x="6003" y="2736" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6296,2806 L 6296,2806 6296,2810 6296,2813 6295,2817 6294,2820 6294,2824 6293,2827 6291,2831 6290,2834 6288,2837 6287,2841 6285,2844 6283,2847 6281,2849 6278,2852 6276,2855 6273,2857 6270,2860 6268,2862 6265,2864 6261,2866 6258,2867 6255,2869 6252,2870 6248,2872 6245,2873 6241,2873 6238,2874 6234,2875 6231,2875 6227,2875 6073,2875 6073,2875 6069,2875 6066,2875 6062,2874 6059,2873 6055,2873 6052,2872 6048,2870 6045,2869 6042,2867 6038,2866 6035,2864 6032,2862 6030,2860 6027,2857 6024,2855 6022,2852 6019,2849 6017,2847 6015,2844 6013,2840 6012,2837 6010,2834 6009,2831 6007,2827 6006,2824 6006,2820 6005,2817 6004,2813 6004,2810 6004,2806 6003,2806 6004,2806 6004,2802 6004,2799 6005,2795 6005,2792 6006,2788 6007,2785 6008,2781 6010,2778 6011,2775 6013,2772 6015,2769 6017,2766 6019,2763 6021,2760 6024,2758 6026,2755 6029,2753 6032,2751 6035,2748 6038,2747 6041,2745 6044,2743 6048,2742 6051,2741 6054,2740 6058,2739 6061,2738 6065,2737 6068,2737 6072,2737 6227,2736 6227,2737 6231,2737 6234,2737 6238,2738 6241,2738 6245,2739 6248,2740 6252,2741 6255,2743 6258,2744 6261,2746 6264,2748 6267,2750 6270,2752 6273,2754 6275,2757 6278,2759 6280,2762 6282,2765 6285,2768 6286,2771 6288,2774 6290,2777 6291,2781 6292,2784 6293,2787 6294,2791 6295,2794 6296,2798 6296,2801 6296,2805 6296,2806 Z M 6296,2875 L 6296,2875 Z M 6003,2736 L 6003,2736 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id222">
- <rect class="BoundingBox" stroke="none" fill="none" x="6682" y="2340" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6975,2410 L 6975,2410 6975,2414 6975,2417 6974,2421 6973,2424 6973,2428 6972,2431 6970,2435 6969,2438 6967,2441 6966,2445 6964,2448 6962,2451 6960,2453 6957,2456 6955,2459 6952,2461 6949,2464 6947,2466 6944,2468 6940,2470 6937,2471 6934,2473 6931,2474 6927,2476 6924,2477 6920,2477 6917,2478 6913,2479 6910,2479 6906,2479 6752,2479 6752,2479 6748,2479 6745,2479 6741,2478 6738,2477 6734,2477 6731,2476 6727,2474 6724,2473 6721,2471 6717,2470 6714,2468 6711,2466 6709,2464 6706,2461 6703,2459 6701,2456 6698,2453 6696,2451 6694,2448 6692,2444 6691,2441 6689,2438 6688,2435 6686,2431 6685,2428 6685,2424 6684,2421 6683,2417 6683,2414 6683,2410 6682,2410 6683,2410 6683,2406 6683,2403 6684,2399 6684,2396 6685,2392 6686,2389 6687,2385 6689,2382 6690,2379 6692,2376 6694,2373 6696,2370 6698,2367 6700,2364 6703,2362 6705,2359 6708,2357 6711,2355 6714,2352 6717,2351 6720,2349 6723,2347 6727,2346 6730,2345 6733,2344 6737,2343 6740,2342 6744,2341 6747,2341 6751,2341 6906,2340 6906,2341 6910,2341 6913,2341 6917,2342 6920,2342 6924,2343 6927,2344 6931,2345 6934,2347 6937,2348 6940,2350 6943,2352 6946,2354 6949,2356 6952,2358 6954,2361 6957,2363 6959,2366 6961,2369 6964,2372 6965,2375 6967,2378 6969,2381 6970,2385 6971,2388 6972,2391 6973,2395 6974,2398 6975,2402 6975,2405 6975,2409 6975,2410 Z M 6975,2479 L 6975,2479 Z M 6682,2340 L 6682,2340 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id223">
- <rect class="BoundingBox" stroke="none" fill="none" x="6682" y="2539" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6975,2609 L 6975,2609 6975,2613 6975,2616 6974,2620 6973,2623 6973,2627 6972,2630 6970,2634 6969,2637 6967,2640 6966,2644 6964,2647 6962,2650 6960,2652 6957,2655 6955,2658 6952,2660 6949,2663 6947,2665 6944,2667 6940,2669 6937,2670 6934,2672 6931,2673 6927,2675 6924,2676 6920,2676 6917,2677 6913,2678 6910,2678 6906,2678 6752,2678 6752,2678 6748,2678 6745,2678 6741,2677 6738,2676 6734,2676 6731,2675 6727,2673 6724,2672 6721,2670 6717,2669 6714,2667 6711,2665 6709,2663 6706,2660 6703,2658 6701,2655 6698,2652 6696,2650 6694,2647 6692,2643 6691,2640 6689,2637 6688,2634 6686,2630 6685,2627 6685,2623 6684,2620 6683,2616 6683,2613 6683,2609 6682,2609 6683,2609 6683,2605 6683,2602 6684,2598 6684,2595 6685,2591 6686,2588 6687,2584 6689,2581 6690,2578 6692,2575 6694,2572 6696,2569 6698,2566 6700,2563 6703,2561 6705,2558 6708,2556 6711,2554 6714,2551 6717,2550 6720,2548 6723,2546 6727,2545 6730,2544 6733,2543 6737,2542 6740,2541 6744,2540 6747,2540 6751,2540 6906,2539 6906,2540 6910,2540 6913,2540 6917,2541 6920,2541 6924,2542 6927,2543 6931,2544 6934,2546 6937,2547 6940,2549 6943,2551 6946,2553 6949,2555 6952,2557 6954,2560 6957,2562 6959,2565 6961,2568 6964,2571 6965,2574 6967,2577 6969,2580 6970,2584 6971,2587 6972,2590 6973,2594 6974,2597 6975,2601 6975,2604 6975,2608 6975,2609 Z M 6975,2678 L 6975,2678 Z M 6682,2539 L 6682,2539 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id224">
- <rect class="BoundingBox" stroke="none" fill="none" x="6682" y="2739" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 6975,2809 L 6975,2809 6975,2813 6975,2816 6974,2820 6973,2823 6973,2827 6972,2830 6970,2834 6969,2837 6967,2840 6966,2844 6964,2847 6962,2850 6960,2852 6957,2855 6955,2858 6952,2860 6949,2863 6947,2865 6944,2867 6940,2869 6937,2870 6934,2872 6931,2873 6927,2875 6924,2876 6920,2876 6917,2877 6913,2878 6910,2878 6906,2878 6752,2878 6752,2878 6748,2878 6745,2878 6741,2877 6738,2876 6734,2876 6731,2875 6727,2873 6724,2872 6721,2870 6717,2869 6714,2867 6711,2865 6709,2863 6706,2860 6703,2858 6701,2855 6698,2852 6696,2850 6694,2847 6692,2843 6691,2840 6689,2837 6688,2834 6686,2830 6685,2827 6685,2823 6684,2820 6683,2816 6683,2813 6683,2809 6682,2809 6683,2809 6683,2805 6683,2802 6684,2798 6684,2795 6685,2791 6686,2788 6687,2784 6689,2781 6690,2778 6692,2775 6694,2772 6696,2769 6698,2766 6700,2763 6703,2761 6705,2758 6708,2756 6711,2754 6714,2751 6717,2750 6720,2748 6723,2746 6727,2745 6730,2744 6733,2743 6737,2742 6740,2741 6744,2740 6747,2740 6751,2740 6906,2739 6906,2740 6910,2740 6913,2740 6917,2741 6920,2741 6924,2742 6927,2743 6931,2744 6934,2746 6937,2747 6940,2749 6943,2751 6946,2753 6949,2755 6952,2757 6954,2760 6957,2762 6959,2765 6961,2768 6964,2771 6965,2774 6967,2777 6969,2780 6970,2784 6971,2787 6972,2790 6973,2794 6974,2797 6975,2801 6975,2804 6975,2808 6975,2809 Z M 6975,2878 L 6975,2878 Z M 6682,2739 L 6682,2739 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id225">
- <rect class="BoundingBox" stroke="none" fill="none" x="7410" y="2335" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7703,2405 L 7703,2405 7703,2409 7703,2412 7702,2416 7701,2419 7701,2423 7700,2426 7698,2430 7697,2433 7695,2436 7694,2440 7692,2443 7690,2446 7688,2448 7685,2451 7683,2454 7680,2456 7677,2459 7675,2461 7672,2463 7668,2465 7665,2466 7662,2468 7659,2469 7655,2471 7652,2472 7648,2472 7645,2473 7641,2474 7638,2474 7634,2474 7480,2474 7480,2474 7476,2474 7473,2474 7469,2473 7466,2472 7462,2472 7459,2471 7455,2469 7452,2468 7449,2466 7445,2465 7442,2463 7439,2461 7437,2459 7434,2456 7431,2454 7429,2451 7426,2448 7424,2446 7422,2443 7420,2439 7419,2436 7417,2433 7416,2430 7414,2426 7413,2423 7413,2419 7412,2416 7411,2412 7411,2409 7411,2405 7410,2405 7411,2405 7411,2401 7411,2398 7412,2394 7412,2391 7413,2387 7414,2384 7415,2380 7417,2377 7418,2374 7420,2371 7422,2368 7424,2365 7426,2362 7428,2359 7431,2357 7433,2354 7436,2352 7439,2350 7442,2347 7445,2346 7448,2344 7451,2342 7455,2341 7458,2340 7461,2339 7465,2338 7468,2337 7472,2336 7475,2336 7479,2336 7634,2335 7634,2336 7638,2336 7641,2336 7645,2337 7648,2337 7652,2338 7655,2339 7659,2340 7662,2342 7665,2343 7668,2345 7671,2347 7674,2349 7677,2351 7680,2353 7682,2356 7685,2358 7687,2361 7689,2364 7692,2367 7693,2370 7695,2373 7697,2376 7698,2380 7699,2383 7700,2386 7701,2390 7702,2393 7703,2397 7703,2400 7703,2404 7703,2405 Z M 7703,2474 L 7703,2474 Z M 7410,2335 L 7410,2335 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id226">
- <rect class="BoundingBox" stroke="none" fill="none" x="7410" y="2535" width="295" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7703,2605 L 7703,2605 7703,2609 7703,2612 7702,2616 7701,2619 7701,2623 7700,2626 7698,2630 7697,2633 7695,2636 7694,2640 7692,2643 7690,2646 7688,2648 7685,2651 7683,2654 7680,2656 7677,2659 7675,2661 7672,2663 7668,2665 7665,2666 7662,2668 7659,2669 7655,2671 7652,2672 7648,2672 7645,2673 7641,2674 7638,2674 7634,2674 7480,2674 7480,2674 7476,2674 7473,2674 7469,2673 7466,2672 7462,2672 7459,2671 7455,2669 7452,2668 7449,2666 7445,2665 7442,2663 7439,2661 7437,2659 7434,2656 7431,2654 7429,2651 7426,2648 7424,2646 7422,2643 7420,2639 7419,2636 7417,2633 7416,2630 7414,2626 7413,2623 7413,2619 7412,2616 7411,2612 7411,2609 7411,2605 7410,2605 7411,2605 7411,2601 7411,2598 7412,2594 7412,2591 7413,2587 7414,2584 7415,2580 7417,2577 7418,2574 7420,2571 7422,2568 7424,2565 7426,2562 7428,2559 7431,2557 7433,2554 7436,2552 7439,2550 7442,2547 7445,2546 7448,2544 7451,2542 7455,2541 7458,2540 7461,2539 7465,2538 7468,2537 7472,2536 7475,2536 7479,2536 7634,2535 7634,2536 7638,2536 7641,2536 7645,2537 7648,2537 7652,2538 7655,2539 7659,2540 7662,2542 7665,2543 7668,2545 7671,2547 7674,2549 7677,2551 7680,2553 7682,2556 7685,2558 7687,2561 7689,2564 7692,2567 7693,2570 7695,2573 7697,2576 7698,2580 7699,2583 7700,2586 7701,2590 7702,2593 7703,2597 7703,2600 7703,2604 7703,2605 Z M 7703,2674 L 7703,2674 Z M 7410,2535 L 7410,2535 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id227">
- <rect class="BoundingBox" stroke="none" fill="none" x="7410" y="2734" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7703,2804 L 7703,2804 7703,2808 7703,2811 7702,2815 7701,2818 7701,2822 7700,2825 7698,2829 7697,2832 7695,2835 7694,2839 7692,2842 7690,2845 7688,2847 7685,2850 7683,2853 7680,2855 7677,2858 7675,2860 7672,2862 7668,2864 7665,2865 7662,2867 7659,2868 7655,2870 7652,2871 7648,2871 7645,2872 7641,2873 7638,2873 7634,2873 7480,2873 7480,2873 7476,2873 7473,2873 7469,2872 7466,2871 7462,2871 7459,2870 7455,2868 7452,2867 7449,2865 7445,2864 7442,2862 7439,2860 7437,2858 7434,2855 7431,2853 7429,2850 7426,2847 7424,2845 7422,2842 7420,2838 7419,2835 7417,2832 7416,2829 7414,2825 7413,2822 7413,2818 7412,2815 7411,2811 7411,2808 7411,2804 7410,2804 7411,2804 7411,2800 7411,2797 7412,2793 7412,2790 7413,2786 7414,2783 7415,2779 7417,2776 7418,2773 7420,2770 7422,2767 7424,2764 7426,2761 7428,2758 7431,2756 7433,2753 7436,2751 7439,2749 7442,2746 7445,2745 7448,2743 7451,2741 7455,2740 7458,2739 7461,2738 7465,2737 7468,2736 7472,2735 7475,2735 7479,2735 7634,2734 7634,2735 7638,2735 7641,2735 7645,2736 7648,2736 7652,2737 7655,2738 7659,2739 7662,2741 7665,2742 7668,2744 7671,2746 7674,2748 7677,2750 7680,2752 7682,2755 7685,2757 7687,2760 7689,2763 7692,2766 7693,2769 7695,2772 7697,2775 7698,2779 7699,2782 7700,2785 7701,2789 7702,2792 7703,2796 7703,2799 7703,2803 7703,2804 Z M 7703,2873 L 7703,2873 Z M 7410,2734 L 7410,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id228">
- <rect class="BoundingBox" stroke="none" fill="none" x="7061" y="2335" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7354,2405 L 7354,2405 7354,2409 7354,2412 7353,2416 7352,2419 7352,2423 7351,2426 7349,2430 7348,2433 7346,2436 7345,2440 7343,2443 7341,2446 7339,2448 7336,2451 7334,2454 7331,2456 7328,2459 7326,2461 7323,2463 7319,2465 7316,2466 7313,2468 7310,2469 7306,2471 7303,2472 7299,2472 7296,2473 7292,2474 7289,2474 7285,2474 7131,2474 7131,2474 7127,2474 7124,2474 7120,2473 7117,2472 7113,2472 7110,2471 7106,2469 7103,2468 7100,2466 7096,2465 7093,2463 7090,2461 7088,2459 7085,2456 7082,2454 7080,2451 7077,2448 7075,2446 7073,2443 7071,2439 7070,2436 7068,2433 7067,2430 7065,2426 7064,2423 7064,2419 7063,2416 7062,2412 7062,2409 7062,2405 7061,2405 7062,2405 7062,2401 7062,2398 7063,2394 7063,2391 7064,2387 7065,2384 7066,2380 7068,2377 7069,2374 7071,2371 7073,2368 7075,2365 7077,2362 7079,2359 7082,2357 7084,2354 7087,2352 7090,2350 7093,2347 7096,2346 7099,2344 7102,2342 7106,2341 7109,2340 7112,2339 7116,2338 7119,2337 7123,2336 7126,2336 7130,2336 7285,2335 7285,2336 7289,2336 7292,2336 7296,2337 7299,2337 7303,2338 7306,2339 7310,2340 7313,2342 7316,2343 7319,2345 7322,2347 7325,2349 7328,2351 7331,2353 7333,2356 7336,2358 7338,2361 7340,2364 7343,2367 7344,2370 7346,2373 7348,2376 7349,2380 7350,2383 7351,2386 7352,2390 7353,2393 7354,2397 7354,2400 7354,2404 7354,2405 Z M 7354,2474 L 7354,2474 Z M 7061,2335 L 7061,2335 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id229">
- <rect class="BoundingBox" stroke="none" fill="none" x="7061" y="2535" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7354,2605 L 7354,2605 7354,2609 7354,2612 7353,2616 7352,2619 7352,2623 7351,2626 7349,2630 7348,2633 7346,2636 7345,2640 7343,2643 7341,2646 7339,2648 7336,2651 7334,2654 7331,2656 7328,2659 7326,2661 7323,2663 7319,2665 7316,2666 7313,2668 7310,2669 7306,2671 7303,2672 7299,2672 7296,2673 7292,2674 7289,2674 7285,2674 7131,2674 7131,2674 7127,2674 7124,2674 7120,2673 7117,2672 7113,2672 7110,2671 7106,2669 7103,2668 7100,2666 7096,2665 7093,2663 7090,2661 7088,2659 7085,2656 7082,2654 7080,2651 7077,2648 7075,2646 7073,2643 7071,2639 7070,2636 7068,2633 7067,2630 7065,2626 7064,2623 7064,2619 7063,2616 7062,2612 7062,2609 7062,2605 7061,2605 7062,2605 7062,2601 7062,2598 7063,2594 7063,2591 7064,2587 7065,2584 7066,2580 7068,2577 7069,2574 7071,2571 7073,2568 7075,2565 7077,2562 7079,2559 7082,2557 7084,2554 7087,2552 7090,2550 7093,2547 7096,2546 7099,2544 7102,2542 7106,2541 7109,2540 7112,2539 7116,2538 7119,2537 7123,2536 7126,2536 7130,2536 7285,2535 7285,2536 7289,2536 7292,2536 7296,2537 7299,2537 7303,2538 7306,2539 7310,2540 7313,2542 7316,2543 7319,2545 7322,2547 7325,2549 7328,2551 7331,2553 7333,2556 7336,2558 7338,2561 7340,2564 7343,2567 7344,2570 7346,2573 7348,2576 7349,2580 7350,2583 7351,2586 7352,2590 7353,2593 7354,2597 7354,2600 7354,2604 7354,2605 Z M 7354,2674 L 7354,2674 Z M 7061,2535 L 7061,2535 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id230">
- <rect class="BoundingBox" stroke="none" fill="none" x="7060" y="2734" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 7354,2804 L 7354,2804 7354,2808 7354,2811 7353,2815 7352,2818 7352,2822 7351,2825 7349,2829 7348,2832 7346,2835 7345,2839 7343,2842 7341,2845 7339,2847 7336,2850 7334,2853 7331,2855 7328,2858 7326,2860 7323,2862 7319,2864 7316,2865 7313,2867 7310,2868 7306,2870 7303,2871 7299,2871 7296,2872 7292,2873 7289,2873 7285,2873 7131,2873 7131,2873 7127,2873 7124,2873 7120,2872 7117,2871 7113,2871 7110,2870 7106,2868 7103,2867 7100,2865 7096,2864 7093,2862 7090,2860 7088,2858 7085,2855 7082,2853 7080,2850 7077,2847 7075,2845 7073,2842 7071,2838 7070,2835 7068,2832 7067,2829 7065,2825 7064,2822 7064,2818 7063,2815 7062,2811 7062,2808 7062,2804 7061,2804 7062,2804 7062,2800 7062,2797 7063,2793 7063,2790 7064,2786 7065,2783 7066,2779 7068,2776 7069,2773 7071,2770 7073,2767 7075,2764 7077,2761 7079,2758 7082,2756 7084,2753 7087,2751 7090,2749 7093,2746 7096,2745 7099,2743 7102,2741 7106,2740 7109,2739 7112,2738 7116,2737 7119,2736 7123,2735 7126,2735 7130,2735 7285,2734 7285,2735 7289,2735 7292,2735 7296,2736 7299,2736 7303,2737 7306,2738 7310,2739 7313,2741 7316,2742 7319,2744 7322,2746 7325,2748 7328,2750 7331,2752 7333,2755 7336,2757 7338,2760 7340,2763 7343,2766 7344,2769 7346,2772 7348,2775 7349,2779 7350,2782 7351,2785 7352,2789 7353,2792 7354,2796 7354,2799 7354,2803 7354,2804 Z M 7354,2873 L 7354,2873 Z M 7061,2734 L 7061,2734 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id231">
- <rect class="BoundingBox" stroke="none" fill="none" x="7741" y="2338" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8034,2408 L 8034,2408 8034,2412 8034,2415 8033,2419 8032,2422 8032,2426 8031,2429 8029,2433 8028,2436 8026,2439 8025,2443 8023,2446 8021,2449 8019,2451 8016,2454 8014,2457 8011,2459 8008,2462 8006,2464 8003,2466 7999,2468 7996,2469 7993,2471 7990,2472 7986,2474 7983,2475 7979,2475 7976,2476 7972,2477 7969,2477 7965,2477 7811,2477 7811,2477 7807,2477 7804,2477 7800,2476 7797,2475 7793,2475 7790,2474 7786,2472 7783,2471 7780,2469 7776,2468 7773,2466 7770,2464 7768,2462 7765,2459 7762,2457 7760,2454 7757,2451 7755,2449 7753,2446 7751,2442 7750,2439 7748,2436 7747,2433 7745,2429 7744,2426 7744,2422 7743,2419 7742,2415 7742,2412 7742,2408 7741,2408 7742,2408 7742,2404 7742,2401 7743,2397 7743,2394 7744,2390 7745,2387 7746,2383 7748,2380 7749,2377 7751,2374 7753,2371 7755,2368 7757,2365 7759,2362 7762,2360 7764,2357 7767,2355 7770,2353 7773,2350 7776,2349 7779,2347 7782,2345 7786,2344 7789,2343 7792,2342 7796,2341 7799,2340 7803,2339 7806,2339 7810,2339 7965,2338 7965,2339 7969,2339 7972,2339 7976,2340 7979,2340 7983,2341 7986,2342 7990,2343 7993,2345 7996,2346 7999,2348 8002,2350 8005,2352 8008,2354 8011,2356 8013,2359 8016,2361 8018,2364 8020,2367 8023,2370 8024,2373 8026,2376 8028,2379 8029,2383 8030,2386 8031,2389 8032,2393 8033,2396 8034,2400 8034,2403 8034,2407 8034,2408 Z M 8034,2477 L 8034,2477 Z M 7741,2338 L 7741,2338 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id232">
- <rect class="BoundingBox" stroke="none" fill="none" x="7741" y="2538" width="295" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8034,2608 L 8034,2608 8034,2612 8034,2615 8033,2619 8032,2622 8032,2626 8031,2629 8029,2633 8028,2636 8026,2639 8025,2643 8023,2646 8021,2649 8019,2651 8016,2654 8014,2657 8011,2659 8008,2662 8006,2664 8003,2666 7999,2668 7996,2669 7993,2671 7990,2672 7986,2674 7983,2675 7979,2675 7976,2676 7972,2677 7969,2677 7965,2677 7811,2677 7811,2677 7807,2677 7804,2677 7800,2676 7797,2675 7793,2675 7790,2674 7786,2672 7783,2671 7780,2669 7776,2668 7773,2666 7770,2664 7768,2662 7765,2659 7762,2657 7760,2654 7757,2651 7755,2649 7753,2646 7751,2642 7750,2639 7748,2636 7747,2633 7745,2629 7744,2626 7744,2622 7743,2619 7742,2615 7742,2612 7742,2608 7741,2608 7742,2608 7742,2604 7742,2601 7743,2597 7743,2594 7744,2590 7745,2587 7746,2583 7748,2580 7749,2577 7751,2574 7753,2571 7755,2568 7757,2565 7759,2562 7762,2560 7764,2557 7767,2555 7770,2553 7773,2550 7776,2549 7779,2547 7782,2545 7786,2544 7789,2543 7792,2542 7796,2541 7799,2540 7803,2539 7806,2539 7810,2539 7965,2538 7965,2539 7969,2539 7972,2539 7976,2540 7979,2540 7983,2541 7986,2542 7990,2543 7993,2545 7996,2546 7999,2548 8002,2550 8005,2552 8008,2554 8011,2556 8013,2559 8016,2561 8018,2564 8020,2567 8023,2570 8024,2573 8026,2576 8028,2579 8029,2583 8030,2586 8031,2589 8032,2593 8033,2596 8034,2600 8034,2603 8034,2607 8034,2608 Z M 8034,2677 L 8034,2677 Z M 7741,2538 L 7741,2538 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id233">
- <rect class="BoundingBox" stroke="none" fill="none" x="7741" y="2737" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 8034,2807 L 8034,2807 8034,2811 8034,2814 8033,2818 8032,2821 8032,2825 8031,2828 8029,2832 8028,2835 8026,2838 8025,2842 8023,2845 8021,2848 8019,2850 8016,2853 8014,2856 8011,2858 8008,2861 8006,2863 8003,2865 7999,2867 7996,2868 7993,2870 7990,2871 7986,2873 7983,2874 7979,2874 7976,2875 7972,2876 7969,2876 7965,2876 7811,2876 7811,2876 7807,2876 7804,2876 7800,2875 7797,2874 7793,2874 7790,2873 7786,2871 7783,2870 7780,2868 7776,2867 7773,2865 7770,2863 7768,2861 7765,2858 7762,2856 7760,2853 7757,2850 7755,2848 7753,2845 7751,2841 7750,2838 7748,2835 7747,2832 7745,2828 7744,2825 7744,2821 7743,2818 7742,2814 7742,2811 7742,2807 7741,2807 7742,2807 7742,2803 7742,2800 7743,2796 7743,2793 7744,2789 7745,2786 7746,2782 7748,2779 7749,2776 7751,2773 7753,2770 7755,2767 7757,2764 7759,2761 7762,2759 7764,2756 7767,2754 7770,2752 7773,2749 7776,2748 7779,2746 7782,2744 7786,2743 7789,2742 7792,2741 7796,2740 7799,2739 7803,2738 7806,2738 7810,2738 7965,2737 7965,2738 7969,2738 7972,2738 7976,2739 7979,2739 7983,2740 7986,2741 7990,2742 7993,2744 7996,2745 7999,2747 8002,2749 8005,2751 8008,2753 8011,2755 8013,2758 8016,2760 8018,2763 8020,2766 8023,2769 8024,2772 8026,2775 8028,2778 8029,2782 8030,2785 8031,2788 8032,2792 8033,2795 8034,2799 8034,2802 8034,2806 8034,2807 Z M 8034,2876 L 8034,2876 Z M 7741,2737 L 7741,2737 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id234">
- <rect class="BoundingBox" stroke="none" fill="none" x="1127" y="4140" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1377" y="4536"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1377" y="4883"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id235">
- <rect class="BoundingBox" stroke="none" fill="none" x="4667" y="3488" width="609" height="382"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 4971,3869 L 4667,3869 4667,3488 5275,3488 5275,3869 4971,3869 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4735" y="3792"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id236">
- <rect class="BoundingBox" stroke="none" fill="none" x="9448" y="1928" width="7241" height="3215"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 13068,5124 L 9466,5124 9466,1946 16670,1946 16670,5124 13068,5124 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13068,5124 L 9466,5124 9466,1946 16670,1946 16670,5124 13068,5124 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9566" y="2334"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9566" y="2799"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id237">
- <rect class="BoundingBox" stroke="none" fill="none" x="10158" y="5028" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 10611,5471 L 10167,5471 10167,5037 11054,5037 11054,5471 10611,5471 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 10611,5471 L 10167,5471 10167,5037 11054,5037 11054,5471 10611,5471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10336" y="5335"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id238">
- <rect class="BoundingBox" stroke="none" fill="none" x="10271" y="5514" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10289,5532 L 10294,6232"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10289,5532 L 10289,5532 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10294,6232 L 10294,6232 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id239">
- <rect class="BoundingBox" stroke="none" fill="none" x="10192" y="5423" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10276,5531 L 10201,5531 10201,5432 10350,5432 10350,5531 10276,5531 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10276,5531 L 10201,5531 10201,5432 10350,5432 10350,5531 10276,5531 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id240">
- <rect class="BoundingBox" stroke="none" fill="none" x="10836" y="5421" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10920,5529 L 10845,5529 10845,5430 10994,5430 10994,5529 10920,5529 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10920,5529 L 10845,5529 10845,5430 10994,5430 10994,5529 10920,5529 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id241">
- <rect class="BoundingBox" stroke="none" fill="none" x="10900" y="5512" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10920,5530 L 10918,6278"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10920,5530 L 10920,5530 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10918,6278 L 10918,6278 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id242">
- <rect class="BoundingBox" stroke="none" fill="none" x="10476" y="5516" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10496,5534 L 10494,6280"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10496,5534 L 10496,5534 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10494,6280 L 10494,6280 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id243">
- <rect class="BoundingBox" stroke="none" fill="none" x="10412" y="5425" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10496,5533 L 10421,5533 10421,5434 10570,5434 10570,5533 10496,5533 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10496,5533 L 10421,5533 10421,5434 10570,5434 10570,5533 10496,5533 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id244">
- <rect class="BoundingBox" stroke="none" fill="none" x="10623" y="5423" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 10707,5531 L 10632,5531 10632,5432 10781,5432 10781,5531 10707,5531 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10707,5531 L 10632,5531 10632,5432 10781,5432 10781,5531 10707,5531 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id245">
- <rect class="BoundingBox" stroke="none" fill="none" x="10701" y="5514" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10719,5532 L 10725,6280"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10719,5532 L 10719,5532 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10725,6280 L 10725,6280 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id246">
- <rect class="BoundingBox" stroke="none" fill="none" x="10150" y="3096" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 11568,4280 L 10168,4280 10168,3114 12968,3114 12968,4280 11568,4280 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 11568,4280 L 10168,4280 10168,3114 12968,3114 12968,4280 11568,4280 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="11029" y="3418"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10883" y="3771"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon </tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10637" y="4124"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id247">
- <rect class="BoundingBox" stroke="none" fill="none" x="11122" y="5026" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 11575,5469 L 11131,5469 11131,5035 12018,5035 12018,5469 11575,5469 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 11575,5469 L 11131,5469 11131,5035 12018,5035 12018,5469 11575,5469 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11300" y="5333"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id248">
- <rect class="BoundingBox" stroke="none" fill="none" x="11235" y="5512" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11253,5530 L 11258,6276"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11253,5530 L 11253,5530 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11258,6276 L 11258,6276 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id249">
- <rect class="BoundingBox" stroke="none" fill="none" x="11156" y="5421" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11240,5529 L 11165,5529 11165,5430 11314,5430 11314,5529 11240,5529 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11240,5529 L 11165,5529 11165,5430 11314,5430 11314,5529 11240,5529 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id250">
- <rect class="BoundingBox" stroke="none" fill="none" x="11800" y="5419" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11884,5527 L 11809,5527 11809,5428 11958,5428 11958,5527 11884,5527 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11884,5527 L 11809,5527 11809,5428 11958,5428 11958,5527 11884,5527 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id251">
- <rect class="BoundingBox" stroke="none" fill="none" x="11864" y="5510" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11884,5528 L 11882,6276"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11884,5528 L 11884,5528 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11882,6276 L 11882,6276 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id252">
- <rect class="BoundingBox" stroke="none" fill="none" x="11440" y="5514" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11460,5532 L 11458,6278"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11460,5532 L 11460,5532 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11458,6278 L 11458,6278 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id253">
- <rect class="BoundingBox" stroke="none" fill="none" x="11377" y="5423" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11461,5531 L 11386,5531 11386,5432 11535,5432 11535,5531 11461,5531 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11461,5531 L 11386,5531 11386,5432 11535,5432 11535,5531 11461,5531 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id254">
- <rect class="BoundingBox" stroke="none" fill="none" x="11588" y="5421" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 11672,5529 L 11597,5529 11597,5430 11746,5430 11746,5529 11672,5529 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11672,5529 L 11597,5529 11597,5430 11746,5430 11746,5529 11672,5529 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id255">
- <rect class="BoundingBox" stroke="none" fill="none" x="11666" y="5512" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11684,5530 L 11690,6278"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11684,5530 L 11684,5530 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11690,6278 L 11690,6278 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id256">
- <rect class="BoundingBox" stroke="none" fill="none" x="12071" y="5024" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 12524,5467 L 12080,5467 12080,5033 12967,5033 12967,5467 12524,5467 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 12524,5467 L 12080,5467 12080,5033 12967,5033 12967,5467 12524,5467 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12249" y="5331"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id257">
- <rect class="BoundingBox" stroke="none" fill="none" x="12184" y="5510" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12202,5528 L 12207,6274"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12202,5528 L 12202,5528 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12207,6274 L 12207,6274 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id258">
- <rect class="BoundingBox" stroke="none" fill="none" x="12105" y="5419" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 12189,5527 L 12114,5527 12114,5428 12263,5428 12263,5527 12189,5527 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12189,5527 L 12114,5527 12114,5428 12263,5428 12263,5527 12189,5527 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id259">
- <rect class="BoundingBox" stroke="none" fill="none" x="12749" y="5416" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 12833,5524 L 12758,5524 12758,5425 12907,5425 12907,5524 12833,5524 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12833,5524 L 12758,5524 12758,5425 12907,5425 12907,5524 12833,5524 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id260">
- <rect class="BoundingBox" stroke="none" fill="none" x="12813" y="5507" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12833,5525 L 12831,6225"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12833,5525 L 12833,5525 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12831,6225 L 12831,6225 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id261">
- <rect class="BoundingBox" stroke="none" fill="none" x="12389" y="5511" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12409,5529 L 12407,6275"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12409,5529 L 12409,5529 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12407,6275 L 12407,6275 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id262">
- <rect class="BoundingBox" stroke="none" fill="none" x="12326" y="5420" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 12410,5528 L 12335,5528 12335,5429 12484,5429 12484,5528 12410,5528 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12410,5528 L 12335,5528 12335,5429 12484,5429 12484,5528 12410,5528 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id263">
- <rect class="BoundingBox" stroke="none" fill="none" x="12537" y="5419" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 12621,5527 L 12546,5527 12546,5428 12695,5428 12695,5527 12621,5527 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12621,5527 L 12546,5527 12546,5428 12695,5428 12695,5527 12621,5527 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id264">
- <rect class="BoundingBox" stroke="none" fill="none" x="12615" y="5510" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12633,5528 L 12639,6276"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12633,5528 L 12633,5528 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12639,6276 L 12639,6276 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id265">
- <rect class="BoundingBox" stroke="none" fill="none" x="10364" y="4299" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 10641,5032 L 10364,4871 10502,4871 10502,4461 10364,4461 10641,4299 10919,4461 10780,4461 10780,4871 10919,4871 10641,5032 Z M 10364,5032 L 10364,5032 Z M 10919,4299 L 10919,4299 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id266">
- <rect class="BoundingBox" stroke="none" fill="none" x="10402" y="4489" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 10640,4832 L 10402,4832 10402,4489 10877,4489 10877,4832 10640,4832 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10411" y="4774"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id267">
- <rect class="BoundingBox" stroke="none" fill="none" x="11341" y="4294" width="556" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 11618,5027 L 11341,4866 11479,4866 11479,4456 11341,4456 11618,4294 11896,4456 11757,4456 11757,4866 11896,4866 11618,5027 Z M 11341,5027 L 11341,5027 Z M 11896,4294 L 11896,4294 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id268">
- <rect class="BoundingBox" stroke="none" fill="none" x="11380" y="4484" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 11618,4827 L 11380,4827 11380,4484 11855,4484 11855,4827 11618,4827 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11389" y="4769"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id269">
- <rect class="BoundingBox" stroke="none" fill="none" x="12294" y="4285" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 12571,5018 L 12294,4857 12432,4857 12432,4447 12294,4447 12571,4285 12849,4447 12710,4447 12710,4857 12849,4857 12571,5018 Z M 12294,5018 L 12294,5018 Z M 12849,4285 L 12849,4285 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id270">
- <rect class="BoundingBox" stroke="none" fill="none" x="12332" y="4475" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 12570,4818 L 12332,4818 12332,4475 12807,4475 12807,4818 12570,4818 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12341" y="4760"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id271">
- <rect class="BoundingBox" stroke="none" fill="none" x="13001" y="2297" width="1147" height="590"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="13251" y="2704"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id272">
- <rect class="BoundingBox" stroke="none" fill="none" x="13470" y="3081" width="2837" height="1203"/>
- <path fill="rgb(68,114,196)" stroke="none" d="M 14888,4265 L 13488,4265 13488,3099 16288,3099 16288,4265 14888,4265 Z"/>
- <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 14888,4265 L 13488,4265 13488,3099 16288,3099 16288,4265 14888,4265 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="14349" y="3403"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="14239" y="3756"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="13957" y="4109"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8180</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id273">
- <rect class="BoundingBox" stroke="none" fill="none" x="13472" y="5023" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 13925,5466 L 13481,5466 13481,5032 14368,5032 14368,5466 13925,5466 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 13925,5466 L 13481,5466 13481,5032 14368,5032 14368,5466 13925,5466 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="13650" y="5330"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id274">
- <rect class="BoundingBox" stroke="none" fill="none" x="13585" y="5508" width="42" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13603,5526 L 13608,6226"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13603,5526 L 13603,5526 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13608,6226 L 13608,6226 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id275">
- <rect class="BoundingBox" stroke="none" fill="none" x="13506" y="5417" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 13590,5525 L 13515,5525 13515,5426 13664,5426 13664,5525 13590,5525 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 13590,5525 L 13515,5525 13515,5426 13664,5426 13664,5525 13590,5525 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id276">
- <rect class="BoundingBox" stroke="none" fill="none" x="14150" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14234,5523 L 14159,5523 14159,5424 14308,5424 14308,5523 14234,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14234,5523 L 14159,5523 14159,5424 14308,5424 14308,5523 14234,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id277">
- <rect class="BoundingBox" stroke="none" fill="none" x="14214" y="5506" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14234,5524 L 14232,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14234,5524 L 14234,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14232,6272 L 14232,6272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id278">
- <rect class="BoundingBox" stroke="none" fill="none" x="13790" y="5510" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13810,5528 L 13808,6274"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13810,5528 L 13810,5528 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13808,6274 L 13808,6274 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id279">
- <rect class="BoundingBox" stroke="none" fill="none" x="13727" y="5419" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 13811,5527 L 13736,5527 13736,5428 13885,5428 13885,5527 13811,5527 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 13811,5527 L 13736,5527 13736,5428 13885,5428 13885,5527 13811,5527 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id280">
- <rect class="BoundingBox" stroke="none" fill="none" x="13938" y="5417" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14022,5525 L 13947,5525 13947,5426 14096,5426 14096,5525 14022,5525 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14022,5525 L 13947,5525 13947,5426 14096,5426 14096,5525 14022,5525 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id281">
- <rect class="BoundingBox" stroke="none" fill="none" x="14016" y="5508" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14034,5526 L 14040,6274"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14034,5526 L 14034,5526 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14040,6274 L 14040,6274 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id282">
- <rect class="BoundingBox" stroke="none" fill="none" x="14437" y="5020" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 14890,5463 L 14446,5463 14446,5029 15333,5029 15333,5463 14890,5463 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 14890,5463 L 14446,5463 14446,5029 15333,5029 15333,5463 14890,5463 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="14615" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id283">
- <rect class="BoundingBox" stroke="none" fill="none" x="14550" y="5506" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14568,5524 L 14573,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14568,5524 L 14568,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14573,6270 L 14573,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id284">
- <rect class="BoundingBox" stroke="none" fill="none" x="14471" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14555,5523 L 14480,5523 14480,5424 14629,5424 14629,5523 14555,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14555,5523 L 14480,5523 14480,5424 14629,5424 14629,5523 14555,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id285">
- <rect class="BoundingBox" stroke="none" fill="none" x="15115" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15199,5521 L 15124,5521 15124,5422 15273,5422 15273,5521 15199,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15199,5521 L 15124,5521 15124,5422 15273,5422 15273,5521 15199,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id286">
- <rect class="BoundingBox" stroke="none" fill="none" x="15179" y="5504" width="39" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15199,5522 L 15197,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15199,5522 L 15199,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15197,6270 L 15197,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id287">
- <rect class="BoundingBox" stroke="none" fill="none" x="14755" y="5508" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14775,5526 L 14773,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14775,5526 L 14775,5526 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14773,6272 L 14773,6272 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id288">
- <rect class="BoundingBox" stroke="none" fill="none" x="14691" y="5417" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14775,5525 L 14700,5525 14700,5426 14849,5426 14849,5525 14775,5525 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14775,5525 L 14700,5525 14700,5426 14849,5426 14849,5525 14775,5525 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id289">
- <rect class="BoundingBox" stroke="none" fill="none" x="14903" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 14987,5523 L 14912,5523 14912,5424 15061,5424 15061,5523 14987,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14987,5523 L 14912,5523 14912,5424 15061,5424 15061,5523 14987,5523 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id290">
- <rect class="BoundingBox" stroke="none" fill="none" x="14981" y="5506" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14999,5524 L 15005,6272"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14999,5524 L 14999,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15005,6272 L 15005,6272 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id291">
- <rect class="BoundingBox" stroke="none" fill="none" x="15386" y="5018" width="906" height="453"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 15839,5461 L 15395,5461 15395,5027 16282,5027 16282,5461 15839,5461 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 15839,5461 L 15395,5461 15395,5027 16282,5027 16282,5461 15839,5461 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15564" y="5325"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id292">
- <rect class="BoundingBox" stroke="none" fill="none" x="15499" y="5504" width="42" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15517,5522 L 15522,6268"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15517,5522 L 15517,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15522,6268 L 15522,6268 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id293">
- <rect class="BoundingBox" stroke="none" fill="none" x="15420" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15504,5521 L 15429,5521 15429,5422 15578,5422 15578,5521 15504,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15504,5521 L 15429,5521 15429,5422 15578,5422 15578,5521 15504,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id294">
- <rect class="BoundingBox" stroke="none" fill="none" x="16063" y="5411" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 16147,5519 L 16072,5519 16072,5420 16221,5420 16221,5519 16147,5519 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 16147,5519 L 16072,5519 16072,5420 16221,5420 16221,5519 16147,5519 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id295">
- <rect class="BoundingBox" stroke="none" fill="none" x="16128" y="5502" width="39" height="737"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 16148,5520 L 16146,6220"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 16148,5520 L 16148,5520 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 16146,6220 L 16146,6220 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id296">
- <rect class="BoundingBox" stroke="none" fill="none" x="15704" y="5506" width="39" height="783"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15724,5524 L 15722,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15724,5524 L 15724,5524 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15722,6270 L 15722,6270 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id297">
- <rect class="BoundingBox" stroke="none" fill="none" x="15640" y="5415" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15724,5523 L 15649,5523 15649,5424 15798,5424 15798,5523 15724,5523 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15724,5523 L 15649,5523 15649,5424 15798,5424 15798,5523 15724,5523 Z"/>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id298">
- <rect class="BoundingBox" stroke="none" fill="none" x="15851" y="5413" width="168" height="118"/>
- <path fill="rgb(208,206,206)" stroke="none" d="M 15935,5521 L 15860,5521 15860,5422 16009,5422 16009,5521 15935,5521 Z"/>
- <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15935,5521 L 15860,5521 15860,5422 16009,5422 16009,5521 15935,5521 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id299">
- <rect class="BoundingBox" stroke="none" fill="none" x="15929" y="5504" width="43" height="785"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15947,5522 L 15953,6270"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15947,5522 L 15947,5522 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15953,6270 L 15953,6270 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id300">
- <rect class="BoundingBox" stroke="none" fill="none" x="13678" y="4293" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 13955,5026 L 13678,4865 13816,4865 13816,4455 13678,4455 13955,4293 14233,4455 14094,4455 14094,4865 14233,4865 13955,5026 Z M 13678,5026 L 13678,5026 Z M 14233,4293 L 14233,4293 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id301">
- <rect class="BoundingBox" stroke="none" fill="none" x="13717" y="4483" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 13955,4826 L 13717,4826 13717,4483 14192,4483 14192,4826 13955,4826 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="13726" y="4768"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id302">
- <rect class="BoundingBox" stroke="none" fill="none" x="14656" y="4289" width="556" height="735"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 14933,5022 L 14656,4861 14794,4861 14794,4451 14656,4451 14933,4289 15211,4451 15072,4451 15072,4861 15211,4861 14933,5022 Z M 14656,5022 L 14656,5022 Z M 15211,4289 L 15211,4289 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id303">
- <rect class="BoundingBox" stroke="none" fill="none" x="14694" y="4479" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 14932,4822 L 14694,4822 14694,4479 15169,4479 15169,4822 14932,4822 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="14703" y="4764"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id304">
- <rect class="BoundingBox" stroke="none" fill="none" x="15608" y="4280" width="557" height="734"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 15885,5013 L 15608,4852 15746,4852 15746,4442 15608,4442 15885,4280 16163,4442 16024,4442 16024,4852 16163,4852 15885,5013 Z M 15608,5013 L 15608,5013 Z M 16163,4280 L 16163,4280 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id305">
- <rect class="BoundingBox" stroke="none" fill="none" x="15647" y="4470" width="476" height="344"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 15885,4813 L 15647,4813 15647,4470 16122,4470 16122,4813 15885,4813 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15656" y="4755"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id306">
- <rect class="BoundingBox" stroke="none" fill="none" x="12767" y="3216" width="892" height="1018"/>
- <path fill="rgb(132,151,176)" stroke="none" d="M 12767,3724 L 13026,3216 13026,3470 13397,3470 13397,3216 13657,3724 13397,4233 13397,3978 13026,3978 13026,4233 12767,3724 Z M 12767,3216 L 12767,3216 Z M 13657,4233 L 13657,4233 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id307">
- <rect class="BoundingBox" stroke="none" fill="none" x="10236" y="6155" width="2666" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 12848,6208 L 12848,6208 12848,6215 12848,6221 12847,6228 12847,6234 12846,6240 12845,6247 12845,6253 12843,6259 12842,6265 12841,6271 12840,6276 12838,6282 12836,6287 12835,6292 12833,6296 12831,6301 12829,6305 12827,6309 12825,6313 12822,6316 12820,6319 12818,6322 12815,6325 12813,6327 12810,6329 12808,6330 12805,6331 12802,6332 12800,6333 12797,6333 10341,6335 10341,6335 10338,6335 10336,6334 10333,6333 10330,6332 10328,6331 10325,6329 10323,6327 10320,6324 10318,6321 10316,6318 10313,6315 10311,6311 10309,6307 10307,6303 10305,6298 10303,6293 10302,6288 10300,6283 10298,6278 10297,6272 10296,6266 10295,6260 10293,6254 10293,6248 10292,6242 10291,6235 10291,6229 10290,6222 10290,6216 10290,6209"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 12848,6208 L 12848,6208 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 10289,6335 L 10289,6335 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id308">
- <rect class="BoundingBox" stroke="none" fill="none" x="13555" y="6147" width="2666" height="235"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 16167,6200 L 16167,6200 16167,6207 16167,6213 16166,6220 16166,6226 16165,6232 16164,6239 16164,6245 16162,6251 16161,6257 16160,6263 16159,6268 16157,6274 16155,6279 16154,6284 16152,6288 16150,6293 16148,6297 16146,6301 16144,6305 16141,6308 16139,6311 16137,6314 16134,6317 16132,6319 16129,6321 16127,6322 16124,6323 16121,6324 16119,6325 16116,6325 13660,6327 13660,6327 13657,6327 13655,6326 13652,6325 13649,6324 13647,6323 13644,6321 13642,6319 13639,6316 13637,6313 13635,6310 13632,6307 13630,6303 13628,6299 13626,6295 13624,6290 13622,6285 13621,6280 13619,6275 13617,6270 13616,6264 13615,6258 13614,6252 13612,6246 13612,6240 13611,6234 13610,6227 13610,6221 13609,6214 13609,6208 13609,6201"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 16167,6200 L 16167,6200 Z"/>
- <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 13608,6327 L 13608,6327 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id309">
- <rect class="BoundingBox" stroke="none" fill="none" x="10463" y="1262" width="5233" height="759"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="10713" y="1810"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 2 (SUT2)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id310">
- <rect class="BoundingBox" stroke="none" fill="none" x="11274" y="2344" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11567,2414 L 11567,2414 11567,2418 11567,2421 11566,2425 11565,2428 11565,2432 11564,2435 11562,2439 11561,2442 11559,2445 11558,2449 11556,2452 11554,2455 11552,2457 11549,2460 11547,2463 11544,2465 11541,2468 11539,2470 11536,2472 11532,2474 11529,2475 11526,2477 11523,2478 11519,2480 11516,2481 11512,2481 11509,2482 11505,2483 11502,2483 11498,2483 11344,2483 11344,2483 11340,2483 11337,2483 11333,2482 11330,2481 11326,2481 11323,2480 11319,2478 11316,2477 11313,2475 11309,2474 11306,2472 11303,2470 11301,2468 11298,2465 11295,2463 11293,2460 11290,2457 11288,2455 11286,2452 11284,2448 11283,2445 11281,2442 11280,2439 11278,2435 11277,2432 11277,2428 11276,2425 11275,2421 11275,2418 11275,2414 11274,2414 11275,2414 11275,2410 11275,2407 11276,2403 11276,2400 11277,2396 11278,2393 11279,2389 11281,2386 11282,2383 11284,2380 11286,2377 11288,2374 11290,2371 11292,2368 11295,2366 11297,2363 11300,2361 11303,2359 11306,2356 11309,2355 11312,2353 11315,2351 11319,2350 11322,2349 11325,2348 11329,2347 11332,2346 11336,2345 11339,2345 11343,2345 11498,2344 11498,2345 11502,2345 11505,2345 11509,2346 11512,2346 11516,2347 11519,2348 11523,2349 11526,2351 11529,2352 11532,2354 11535,2356 11538,2358 11541,2360 11544,2362 11546,2365 11549,2367 11551,2370 11553,2373 11556,2376 11557,2379 11559,2382 11561,2385 11562,2389 11563,2392 11564,2395 11565,2399 11566,2402 11567,2406 11567,2409 11567,2413 11567,2414 Z M 11567,2483 L 11567,2483 Z M 11274,2344 L 11274,2344 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id311">
- <rect class="BoundingBox" stroke="none" fill="none" x="11274" y="2544" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11567,2614 L 11567,2614 11567,2618 11567,2621 11566,2625 11565,2628 11565,2632 11564,2635 11562,2639 11561,2642 11559,2645 11558,2649 11556,2652 11554,2655 11552,2657 11549,2660 11547,2663 11544,2665 11541,2668 11539,2670 11536,2672 11532,2674 11529,2675 11526,2677 11523,2678 11519,2680 11516,2681 11512,2681 11509,2682 11505,2683 11502,2683 11498,2683 11344,2683 11344,2683 11340,2683 11337,2683 11333,2682 11330,2681 11326,2681 11323,2680 11319,2678 11316,2677 11313,2675 11309,2674 11306,2672 11303,2670 11301,2668 11298,2665 11295,2663 11293,2660 11290,2657 11288,2655 11286,2652 11284,2648 11283,2645 11281,2642 11280,2639 11278,2635 11277,2632 11277,2628 11276,2625 11275,2621 11275,2618 11275,2614 11274,2614 11275,2614 11275,2610 11275,2607 11276,2603 11276,2600 11277,2596 11278,2593 11279,2589 11281,2586 11282,2583 11284,2580 11286,2577 11288,2574 11290,2571 11292,2568 11295,2566 11297,2563 11300,2561 11303,2559 11306,2556 11309,2555 11312,2553 11315,2551 11319,2550 11322,2549 11325,2548 11329,2547 11332,2546 11336,2545 11339,2545 11343,2545 11498,2544 11498,2545 11502,2545 11505,2545 11509,2546 11512,2546 11516,2547 11519,2548 11523,2549 11526,2551 11529,2552 11532,2554 11535,2556 11538,2558 11541,2560 11544,2562 11546,2565 11549,2567 11551,2570 11553,2573 11556,2576 11557,2579 11559,2582 11561,2585 11562,2589 11563,2592 11564,2595 11565,2599 11566,2602 11567,2606 11567,2609 11567,2613 11567,2614 Z M 11567,2683 L 11567,2683 Z M 11274,2544 L 11274,2544 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id312">
- <rect class="BoundingBox" stroke="none" fill="none" x="11274" y="2744" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11567,2814 L 11567,2814 11567,2818 11567,2821 11566,2825 11565,2828 11565,2832 11564,2835 11562,2839 11561,2842 11559,2845 11558,2849 11556,2852 11554,2855 11552,2857 11549,2860 11547,2863 11544,2865 11541,2868 11539,2870 11536,2872 11532,2874 11529,2875 11526,2877 11523,2878 11519,2880 11516,2881 11512,2881 11509,2882 11505,2883 11502,2883 11498,2883 11344,2883 11344,2883 11340,2883 11337,2883 11333,2882 11330,2881 11326,2881 11323,2880 11319,2878 11316,2877 11313,2875 11309,2874 11306,2872 11303,2870 11301,2868 11298,2865 11295,2863 11293,2860 11290,2857 11288,2855 11286,2852 11284,2848 11283,2845 11281,2842 11280,2839 11278,2835 11277,2832 11277,2828 11276,2825 11275,2821 11275,2818 11275,2814 11274,2814 11275,2814 11275,2810 11275,2807 11276,2803 11276,2800 11277,2796 11278,2793 11279,2789 11281,2786 11282,2783 11284,2780 11286,2777 11288,2774 11290,2771 11292,2768 11295,2766 11297,2763 11300,2761 11303,2759 11306,2756 11309,2755 11312,2753 11315,2751 11319,2750 11322,2749 11325,2748 11329,2747 11332,2746 11336,2745 11339,2745 11343,2745 11498,2744 11498,2745 11502,2745 11505,2745 11509,2746 11512,2746 11516,2747 11519,2748 11523,2749 11526,2751 11529,2752 11532,2754 11535,2756 11538,2758 11541,2760 11544,2762 11546,2765 11549,2767 11551,2770 11553,2773 11556,2776 11557,2779 11559,2782 11561,2785 11562,2789 11563,2792 11564,2795 11565,2799 11566,2802 11567,2806 11567,2809 11567,2813 11567,2814 Z M 11567,2883 L 11567,2883 Z M 11274,2744 L 11274,2744 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id313">
- <rect class="BoundingBox" stroke="none" fill="none" x="10925" y="2344" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11218,2414 L 11218,2414 11218,2418 11218,2421 11217,2425 11216,2428 11216,2432 11215,2435 11213,2439 11212,2442 11210,2445 11209,2449 11207,2452 11205,2455 11203,2457 11200,2460 11198,2463 11195,2465 11192,2468 11190,2470 11187,2472 11183,2474 11180,2475 11177,2477 11174,2478 11170,2480 11167,2481 11163,2481 11160,2482 11156,2483 11153,2483 11149,2483 10995,2483 10995,2483 10991,2483 10988,2483 10984,2482 10981,2481 10977,2481 10974,2480 10970,2478 10967,2477 10964,2475 10960,2474 10957,2472 10954,2470 10952,2468 10949,2465 10946,2463 10944,2460 10941,2457 10939,2455 10937,2452 10935,2448 10934,2445 10932,2442 10931,2439 10929,2435 10928,2432 10928,2428 10927,2425 10926,2421 10926,2418 10926,2414 10925,2414 10926,2414 10926,2410 10926,2407 10927,2403 10927,2400 10928,2396 10929,2393 10930,2389 10932,2386 10933,2383 10935,2380 10937,2377 10939,2374 10941,2371 10943,2368 10946,2366 10948,2363 10951,2361 10954,2359 10957,2356 10960,2355 10963,2353 10966,2351 10970,2350 10973,2349 10976,2348 10980,2347 10983,2346 10987,2345 10990,2345 10994,2345 11149,2344 11149,2345 11153,2345 11156,2345 11160,2346 11163,2346 11167,2347 11170,2348 11174,2349 11177,2351 11180,2352 11183,2354 11186,2356 11189,2358 11192,2360 11195,2362 11197,2365 11200,2367 11202,2370 11204,2373 11207,2376 11208,2379 11210,2382 11212,2385 11213,2389 11214,2392 11215,2395 11216,2399 11217,2402 11218,2406 11218,2409 11218,2413 11218,2414 Z M 11218,2483 L 11218,2483 Z M 10925,2344 L 10925,2344 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id314">
- <rect class="BoundingBox" stroke="none" fill="none" x="10925" y="2544" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11218,2614 L 11218,2614 11218,2618 11218,2621 11217,2625 11216,2628 11216,2632 11215,2635 11213,2639 11212,2642 11210,2645 11209,2649 11207,2652 11205,2655 11203,2657 11200,2660 11198,2663 11195,2665 11192,2668 11190,2670 11187,2672 11183,2674 11180,2675 11177,2677 11174,2678 11170,2680 11167,2681 11163,2681 11160,2682 11156,2683 11153,2683 11149,2683 10995,2683 10995,2683 10991,2683 10988,2683 10984,2682 10981,2681 10977,2681 10974,2680 10970,2678 10967,2677 10964,2675 10960,2674 10957,2672 10954,2670 10952,2668 10949,2665 10946,2663 10944,2660 10941,2657 10939,2655 10937,2652 10935,2648 10934,2645 10932,2642 10931,2639 10929,2635 10928,2632 10928,2628 10927,2625 10926,2621 10926,2618 10926,2614 10925,2614 10926,2614 10926,2610 10926,2607 10927,2603 10927,2600 10928,2596 10929,2593 10930,2589 10932,2586 10933,2583 10935,2580 10937,2577 10939,2574 10941,2571 10943,2568 10946,2566 10948,2563 10951,2561 10954,2559 10957,2556 10960,2555 10963,2553 10966,2551 10970,2550 10973,2549 10976,2548 10980,2547 10983,2546 10987,2545 10990,2545 10994,2545 11149,2544 11149,2545 11153,2545 11156,2545 11160,2546 11163,2546 11167,2547 11170,2548 11174,2549 11177,2551 11180,2552 11183,2554 11186,2556 11189,2558 11192,2560 11195,2562 11197,2565 11200,2567 11202,2570 11204,2573 11207,2576 11208,2579 11210,2582 11212,2585 11213,2589 11214,2592 11215,2595 11216,2599 11217,2602 11218,2606 11218,2609 11218,2613 11218,2614 Z M 11218,2683 L 11218,2683 Z M 10925,2544 L 10925,2544 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id315">
- <rect class="BoundingBox" stroke="none" fill="none" x="10925" y="2744" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11218,2814 L 11218,2814 11218,2818 11218,2821 11217,2825 11216,2828 11216,2832 11215,2835 11213,2839 11212,2842 11210,2845 11209,2849 11207,2852 11205,2855 11203,2857 11200,2860 11198,2863 11195,2865 11192,2868 11190,2870 11187,2872 11183,2874 11180,2875 11177,2877 11174,2878 11170,2880 11167,2881 11163,2881 11160,2882 11156,2883 11153,2883 11149,2883 10995,2883 10995,2883 10991,2883 10988,2883 10984,2882 10981,2881 10977,2881 10974,2880 10970,2878 10967,2877 10964,2875 10960,2874 10957,2872 10954,2870 10952,2868 10949,2865 10946,2863 10944,2860 10941,2857 10939,2855 10937,2852 10935,2848 10934,2845 10932,2842 10931,2839 10929,2835 10928,2832 10928,2828 10927,2825 10926,2821 10926,2818 10926,2814 10925,2814 10926,2814 10926,2810 10926,2807 10927,2803 10927,2800 10928,2796 10929,2793 10930,2789 10932,2786 10933,2783 10935,2780 10937,2777 10939,2774 10941,2771 10943,2768 10946,2766 10948,2763 10951,2761 10954,2759 10957,2756 10960,2755 10963,2753 10966,2751 10970,2750 10973,2749 10976,2748 10980,2747 10983,2746 10987,2745 10990,2745 10994,2745 11149,2744 11149,2745 11153,2745 11156,2745 11160,2746 11163,2746 11167,2747 11170,2748 11174,2749 11177,2751 11180,2752 11183,2754 11186,2756 11189,2758 11192,2760 11195,2762 11197,2765 11200,2767 11202,2770 11204,2773 11207,2776 11208,2779 11210,2782 11212,2785 11213,2789 11214,2792 11215,2795 11216,2799 11217,2802 11218,2806 11218,2809 11218,2813 11218,2814 Z M 11218,2883 L 11218,2883 Z M 10925,2744 L 10925,2744 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id316">
- <rect class="BoundingBox" stroke="none" fill="none" x="11604" y="2347" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11897,2417 L 11897,2417 11897,2421 11897,2424 11896,2428 11895,2431 11895,2435 11894,2438 11892,2442 11891,2445 11889,2448 11888,2452 11886,2455 11884,2458 11882,2460 11879,2463 11877,2466 11874,2468 11871,2471 11869,2473 11866,2475 11862,2477 11859,2478 11856,2480 11853,2481 11849,2483 11846,2484 11842,2484 11839,2485 11835,2486 11832,2486 11828,2486 11674,2486 11674,2486 11670,2486 11667,2486 11663,2485 11660,2484 11656,2484 11653,2483 11649,2481 11646,2480 11643,2478 11639,2477 11636,2475 11633,2473 11631,2471 11628,2468 11625,2466 11623,2463 11620,2460 11618,2458 11616,2455 11614,2451 11613,2448 11611,2445 11610,2442 11608,2438 11607,2435 11607,2431 11606,2428 11605,2424 11605,2421 11605,2417 11604,2417 11605,2417 11605,2413 11605,2410 11606,2406 11606,2403 11607,2399 11608,2396 11609,2392 11611,2389 11612,2386 11614,2383 11616,2380 11618,2377 11620,2374 11622,2371 11625,2369 11627,2366 11630,2364 11633,2362 11636,2359 11639,2358 11642,2356 11645,2354 11649,2353 11652,2352 11655,2351 11659,2350 11662,2349 11666,2348 11669,2348 11673,2348 11828,2347 11828,2348 11832,2348 11835,2348 11839,2349 11842,2349 11846,2350 11849,2351 11853,2352 11856,2354 11859,2355 11862,2357 11865,2359 11868,2361 11871,2363 11874,2365 11876,2368 11879,2370 11881,2373 11883,2376 11886,2379 11887,2382 11889,2385 11891,2388 11892,2392 11893,2395 11894,2398 11895,2402 11896,2405 11897,2409 11897,2412 11897,2416 11897,2417 Z M 11897,2486 L 11897,2486 Z M 11604,2347 L 11604,2347 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id317">
- <rect class="BoundingBox" stroke="none" fill="none" x="11604" y="2547" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11897,2617 L 11897,2617 11897,2621 11897,2624 11896,2628 11895,2631 11895,2635 11894,2638 11892,2642 11891,2645 11889,2648 11888,2652 11886,2655 11884,2658 11882,2660 11879,2663 11877,2666 11874,2668 11871,2671 11869,2673 11866,2675 11862,2677 11859,2678 11856,2680 11853,2681 11849,2683 11846,2684 11842,2684 11839,2685 11835,2686 11832,2686 11828,2686 11674,2686 11674,2686 11670,2686 11667,2686 11663,2685 11660,2684 11656,2684 11653,2683 11649,2681 11646,2680 11643,2678 11639,2677 11636,2675 11633,2673 11631,2671 11628,2668 11625,2666 11623,2663 11620,2660 11618,2658 11616,2655 11614,2651 11613,2648 11611,2645 11610,2642 11608,2638 11607,2635 11607,2631 11606,2628 11605,2624 11605,2621 11605,2617 11604,2617 11605,2617 11605,2613 11605,2610 11606,2606 11606,2603 11607,2599 11608,2596 11609,2592 11611,2589 11612,2586 11614,2583 11616,2580 11618,2577 11620,2574 11622,2571 11625,2569 11627,2566 11630,2564 11633,2562 11636,2559 11639,2558 11642,2556 11645,2554 11649,2553 11652,2552 11655,2551 11659,2550 11662,2549 11666,2548 11669,2548 11673,2548 11828,2547 11828,2548 11832,2548 11835,2548 11839,2549 11842,2549 11846,2550 11849,2551 11853,2552 11856,2554 11859,2555 11862,2557 11865,2559 11868,2561 11871,2563 11874,2565 11876,2568 11879,2570 11881,2573 11883,2576 11886,2579 11887,2582 11889,2585 11891,2588 11892,2592 11893,2595 11894,2598 11895,2602 11896,2605 11897,2609 11897,2612 11897,2616 11897,2617 Z M 11897,2686 L 11897,2686 Z M 11604,2547 L 11604,2547 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id318">
- <rect class="BoundingBox" stroke="none" fill="none" x="11604" y="2746" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 11897,2816 L 11897,2816 11897,2820 11897,2823 11896,2827 11895,2830 11895,2834 11894,2837 11892,2841 11891,2844 11889,2847 11888,2851 11886,2854 11884,2857 11882,2859 11879,2862 11877,2865 11874,2867 11871,2870 11869,2872 11866,2874 11862,2876 11859,2877 11856,2879 11853,2880 11849,2882 11846,2883 11842,2883 11839,2884 11835,2885 11832,2885 11828,2885 11674,2885 11674,2885 11670,2885 11667,2885 11663,2884 11660,2883 11656,2883 11653,2882 11649,2880 11646,2879 11643,2877 11639,2876 11636,2874 11633,2872 11631,2870 11628,2867 11625,2865 11623,2862 11620,2859 11618,2857 11616,2854 11614,2850 11613,2847 11611,2844 11610,2841 11608,2837 11607,2834 11607,2830 11606,2827 11605,2823 11605,2820 11605,2816 11604,2816 11605,2816 11605,2812 11605,2809 11606,2805 11606,2802 11607,2798 11608,2795 11609,2791 11611,2788 11612,2785 11614,2782 11616,2779 11618,2776 11620,2773 11622,2770 11625,2768 11627,2765 11630,2763 11633,2761 11636,2758 11639,2757 11642,2755 11645,2753 11649,2752 11652,2751 11655,2750 11659,2749 11662,2748 11666,2747 11669,2747 11673,2747 11828,2746 11828,2747 11832,2747 11835,2747 11839,2748 11842,2748 11846,2749 11849,2750 11853,2751 11856,2753 11859,2754 11862,2756 11865,2758 11868,2760 11871,2762 11874,2764 11876,2767 11879,2769 11881,2772 11883,2775 11886,2778 11887,2781 11889,2784 11891,2787 11892,2791 11893,2794 11894,2797 11895,2801 11896,2804 11897,2808 11897,2811 11897,2815 11897,2816 Z M 11897,2885 L 11897,2885 Z M 11604,2746 L 11604,2746 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id319">
- <rect class="BoundingBox" stroke="none" fill="none" x="12332" y="2342" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12625,2412 L 12625,2412 12625,2416 12625,2419 12624,2423 12623,2426 12623,2430 12622,2433 12620,2437 12619,2440 12617,2443 12616,2447 12614,2450 12612,2453 12610,2455 12607,2458 12605,2461 12602,2463 12599,2466 12597,2468 12594,2470 12590,2472 12587,2473 12584,2475 12581,2476 12577,2478 12574,2479 12570,2479 12567,2480 12563,2481 12560,2481 12556,2481 12402,2481 12402,2481 12398,2481 12395,2481 12391,2480 12388,2479 12384,2479 12381,2478 12377,2476 12374,2475 12371,2473 12367,2472 12364,2470 12361,2468 12359,2466 12356,2463 12353,2461 12351,2458 12348,2455 12346,2453 12344,2450 12342,2446 12341,2443 12339,2440 12338,2437 12336,2433 12335,2430 12335,2426 12334,2423 12333,2419 12333,2416 12333,2412 12332,2412 12333,2412 12333,2408 12333,2405 12334,2401 12334,2398 12335,2394 12336,2391 12337,2387 12339,2384 12340,2381 12342,2378 12344,2375 12346,2372 12348,2369 12350,2366 12353,2364 12355,2361 12358,2359 12361,2357 12364,2354 12367,2353 12370,2351 12373,2349 12377,2348 12380,2347 12383,2346 12387,2345 12390,2344 12394,2343 12397,2343 12401,2343 12556,2342 12556,2343 12560,2343 12563,2343 12567,2344 12570,2344 12574,2345 12577,2346 12581,2347 12584,2349 12587,2350 12590,2352 12593,2354 12596,2356 12599,2358 12602,2360 12604,2363 12607,2365 12609,2368 12611,2371 12614,2374 12615,2377 12617,2380 12619,2383 12620,2387 12621,2390 12622,2393 12623,2397 12624,2400 12625,2404 12625,2407 12625,2411 12625,2412 Z M 12625,2481 L 12625,2481 Z M 12332,2342 L 12332,2342 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id320">
- <rect class="BoundingBox" stroke="none" fill="none" x="12332" y="2542" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12625,2612 L 12625,2612 12625,2616 12625,2619 12624,2623 12623,2626 12623,2630 12622,2633 12620,2637 12619,2640 12617,2643 12616,2647 12614,2650 12612,2653 12610,2655 12607,2658 12605,2661 12602,2663 12599,2666 12597,2668 12594,2670 12590,2672 12587,2673 12584,2675 12581,2676 12577,2678 12574,2679 12570,2679 12567,2680 12563,2681 12560,2681 12556,2681 12402,2681 12402,2681 12398,2681 12395,2681 12391,2680 12388,2679 12384,2679 12381,2678 12377,2676 12374,2675 12371,2673 12367,2672 12364,2670 12361,2668 12359,2666 12356,2663 12353,2661 12351,2658 12348,2655 12346,2653 12344,2650 12342,2646 12341,2643 12339,2640 12338,2637 12336,2633 12335,2630 12335,2626 12334,2623 12333,2619 12333,2616 12333,2612 12332,2612 12333,2612 12333,2608 12333,2605 12334,2601 12334,2598 12335,2594 12336,2591 12337,2587 12339,2584 12340,2581 12342,2578 12344,2575 12346,2572 12348,2569 12350,2566 12353,2564 12355,2561 12358,2559 12361,2557 12364,2554 12367,2553 12370,2551 12373,2549 12377,2548 12380,2547 12383,2546 12387,2545 12390,2544 12394,2543 12397,2543 12401,2543 12556,2542 12556,2543 12560,2543 12563,2543 12567,2544 12570,2544 12574,2545 12577,2546 12581,2547 12584,2549 12587,2550 12590,2552 12593,2554 12596,2556 12599,2558 12602,2560 12604,2563 12607,2565 12609,2568 12611,2571 12614,2574 12615,2577 12617,2580 12619,2583 12620,2587 12621,2590 12622,2593 12623,2597 12624,2600 12625,2604 12625,2607 12625,2611 12625,2612 Z M 12625,2681 L 12625,2681 Z M 12332,2542 L 12332,2542 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id321">
- <rect class="BoundingBox" stroke="none" fill="none" x="12332" y="2742" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12625,2812 L 12625,2812 12625,2816 12625,2819 12624,2823 12623,2826 12623,2830 12622,2833 12620,2837 12619,2840 12617,2843 12616,2847 12614,2850 12612,2853 12610,2855 12607,2858 12605,2861 12602,2863 12599,2866 12597,2868 12594,2870 12590,2872 12587,2873 12584,2875 12581,2876 12577,2878 12574,2879 12570,2879 12567,2880 12563,2881 12560,2881 12556,2881 12402,2881 12402,2881 12398,2881 12395,2881 12391,2880 12388,2879 12384,2879 12381,2878 12377,2876 12374,2875 12371,2873 12367,2872 12364,2870 12361,2868 12359,2866 12356,2863 12353,2861 12351,2858 12348,2855 12346,2853 12344,2850 12342,2846 12341,2843 12339,2840 12338,2837 12336,2833 12335,2830 12335,2826 12334,2823 12333,2819 12333,2816 12333,2812 12332,2812 12333,2812 12333,2808 12333,2805 12334,2801 12334,2798 12335,2794 12336,2791 12337,2787 12339,2784 12340,2781 12342,2778 12344,2775 12346,2772 12348,2769 12350,2766 12353,2764 12355,2761 12358,2759 12361,2757 12364,2754 12367,2753 12370,2751 12373,2749 12377,2748 12380,2747 12383,2746 12387,2745 12390,2744 12394,2743 12397,2743 12401,2743 12556,2742 12556,2743 12560,2743 12563,2743 12567,2744 12570,2744 12574,2745 12577,2746 12581,2747 12584,2749 12587,2750 12590,2752 12593,2754 12596,2756 12599,2758 12602,2760 12604,2763 12607,2765 12609,2768 12611,2771 12614,2774 12615,2777 12617,2780 12619,2783 12620,2787 12621,2790 12622,2793 12623,2797 12624,2800 12625,2804 12625,2807 12625,2811 12625,2812 Z M 12625,2881 L 12625,2881 Z M 12332,2742 L 12332,2742 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id322">
- <rect class="BoundingBox" stroke="none" fill="none" x="11983" y="2342" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12276,2412 L 12276,2412 12276,2416 12276,2419 12275,2423 12274,2426 12274,2430 12273,2433 12271,2437 12270,2440 12268,2443 12267,2447 12265,2450 12263,2453 12261,2455 12258,2458 12256,2461 12253,2463 12250,2466 12248,2468 12245,2470 12241,2472 12238,2473 12235,2475 12232,2476 12228,2478 12225,2479 12221,2479 12218,2480 12214,2481 12211,2481 12207,2481 12053,2481 12053,2481 12049,2481 12046,2481 12042,2480 12039,2479 12035,2479 12032,2478 12028,2476 12025,2475 12022,2473 12018,2472 12015,2470 12012,2468 12010,2466 12007,2463 12004,2461 12002,2458 11999,2455 11997,2453 11995,2450 11993,2446 11992,2443 11990,2440 11989,2437 11987,2433 11986,2430 11986,2426 11985,2423 11984,2419 11984,2416 11984,2412 11983,2412 11984,2412 11984,2408 11984,2405 11985,2401 11985,2398 11986,2394 11987,2391 11988,2387 11990,2384 11991,2381 11993,2378 11995,2375 11997,2372 11999,2369 12001,2366 12004,2364 12006,2361 12009,2359 12012,2357 12015,2354 12018,2353 12021,2351 12024,2349 12028,2348 12031,2347 12034,2346 12038,2345 12041,2344 12045,2343 12048,2343 12052,2343 12207,2342 12207,2343 12211,2343 12214,2343 12218,2344 12221,2344 12225,2345 12228,2346 12232,2347 12235,2349 12238,2350 12241,2352 12244,2354 12247,2356 12250,2358 12253,2360 12255,2363 12258,2365 12260,2368 12262,2371 12265,2374 12266,2377 12268,2380 12270,2383 12271,2387 12272,2390 12273,2393 12274,2397 12275,2400 12276,2404 12276,2407 12276,2411 12276,2412 Z M 12276,2481 L 12276,2481 Z M 11983,2342 L 11983,2342 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id323">
- <rect class="BoundingBox" stroke="none" fill="none" x="11983" y="2542" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12276,2612 L 12276,2612 12276,2616 12276,2619 12275,2623 12274,2626 12274,2630 12273,2633 12271,2637 12270,2640 12268,2643 12267,2647 12265,2650 12263,2653 12261,2655 12258,2658 12256,2661 12253,2663 12250,2666 12248,2668 12245,2670 12241,2672 12238,2673 12235,2675 12232,2676 12228,2678 12225,2679 12221,2679 12218,2680 12214,2681 12211,2681 12207,2681 12053,2681 12053,2681 12049,2681 12046,2681 12042,2680 12039,2679 12035,2679 12032,2678 12028,2676 12025,2675 12022,2673 12018,2672 12015,2670 12012,2668 12010,2666 12007,2663 12004,2661 12002,2658 11999,2655 11997,2653 11995,2650 11993,2646 11992,2643 11990,2640 11989,2637 11987,2633 11986,2630 11986,2626 11985,2623 11984,2619 11984,2616 11984,2612 11983,2612 11984,2612 11984,2608 11984,2605 11985,2601 11985,2598 11986,2594 11987,2591 11988,2587 11990,2584 11991,2581 11993,2578 11995,2575 11997,2572 11999,2569 12001,2566 12004,2564 12006,2561 12009,2559 12012,2557 12015,2554 12018,2553 12021,2551 12024,2549 12028,2548 12031,2547 12034,2546 12038,2545 12041,2544 12045,2543 12048,2543 12052,2543 12207,2542 12207,2543 12211,2543 12214,2543 12218,2544 12221,2544 12225,2545 12228,2546 12232,2547 12235,2549 12238,2550 12241,2552 12244,2554 12247,2556 12250,2558 12253,2560 12255,2563 12258,2565 12260,2568 12262,2571 12265,2574 12266,2577 12268,2580 12270,2583 12271,2587 12272,2590 12273,2593 12274,2597 12275,2600 12276,2604 12276,2607 12276,2611 12276,2612 Z M 12276,2681 L 12276,2681 Z M 11983,2542 L 11983,2542 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id324">
- <rect class="BoundingBox" stroke="none" fill="none" x="11983" y="2742" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12276,2812 L 12276,2812 12276,2816 12276,2819 12275,2823 12274,2826 12274,2830 12273,2833 12271,2837 12270,2840 12268,2843 12267,2847 12265,2850 12263,2853 12261,2855 12258,2858 12256,2861 12253,2863 12250,2866 12248,2868 12245,2870 12241,2872 12238,2873 12235,2875 12232,2876 12228,2878 12225,2879 12221,2879 12218,2880 12214,2881 12211,2881 12207,2881 12053,2881 12053,2881 12049,2881 12046,2881 12042,2880 12039,2879 12035,2879 12032,2878 12028,2876 12025,2875 12022,2873 12018,2872 12015,2870 12012,2868 12010,2866 12007,2863 12004,2861 12002,2858 11999,2855 11997,2853 11995,2850 11993,2846 11992,2843 11990,2840 11989,2837 11987,2833 11986,2830 11986,2826 11985,2823 11984,2819 11984,2816 11984,2812 11983,2812 11984,2812 11984,2808 11984,2805 11985,2801 11985,2798 11986,2794 11987,2791 11988,2787 11990,2784 11991,2781 11993,2778 11995,2775 11997,2772 11999,2769 12001,2766 12004,2764 12006,2761 12009,2759 12012,2757 12015,2754 12018,2753 12021,2751 12024,2749 12028,2748 12031,2747 12034,2746 12038,2745 12041,2744 12045,2743 12048,2743 12052,2743 12207,2742 12207,2743 12211,2743 12214,2743 12218,2744 12221,2744 12225,2745 12228,2746 12232,2747 12235,2749 12238,2750 12241,2752 12244,2754 12247,2756 12250,2758 12253,2760 12255,2763 12258,2765 12260,2768 12262,2771 12265,2774 12266,2777 12268,2780 12270,2783 12271,2787 12272,2790 12273,2793 12274,2797 12275,2800 12276,2804 12276,2807 12276,2811 12276,2812 Z M 12276,2881 L 12276,2881 Z M 11983,2742 L 11983,2742 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id325">
- <rect class="BoundingBox" stroke="none" fill="none" x="12663" y="2345" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12956,2415 L 12956,2415 12956,2419 12956,2422 12955,2426 12954,2429 12954,2433 12953,2436 12951,2440 12950,2443 12948,2446 12947,2450 12945,2453 12943,2456 12941,2458 12938,2461 12936,2464 12933,2466 12930,2469 12928,2471 12925,2473 12921,2475 12918,2476 12915,2478 12912,2479 12908,2481 12905,2482 12901,2482 12898,2483 12894,2484 12891,2484 12887,2484 12733,2484 12733,2484 12729,2484 12726,2484 12722,2483 12719,2482 12715,2482 12712,2481 12708,2479 12705,2478 12702,2476 12698,2475 12695,2473 12692,2471 12690,2469 12687,2466 12684,2464 12682,2461 12679,2458 12677,2456 12675,2453 12673,2449 12672,2446 12670,2443 12669,2440 12667,2436 12666,2433 12666,2429 12665,2426 12664,2422 12664,2419 12664,2415 12663,2415 12664,2415 12664,2411 12664,2408 12665,2404 12665,2401 12666,2397 12667,2394 12668,2390 12670,2387 12671,2384 12673,2381 12675,2378 12677,2375 12679,2372 12681,2369 12684,2367 12686,2364 12689,2362 12692,2360 12695,2357 12698,2356 12701,2354 12704,2352 12708,2351 12711,2350 12714,2349 12718,2348 12721,2347 12725,2346 12728,2346 12732,2346 12887,2345 12887,2346 12891,2346 12894,2346 12898,2347 12901,2347 12905,2348 12908,2349 12912,2350 12915,2352 12918,2353 12921,2355 12924,2357 12927,2359 12930,2361 12933,2363 12935,2366 12938,2368 12940,2371 12942,2374 12945,2377 12946,2380 12948,2383 12950,2386 12951,2390 12952,2393 12953,2396 12954,2400 12955,2403 12956,2407 12956,2410 12956,2414 12956,2415 Z M 12956,2484 L 12956,2484 Z M 12663,2345 L 12663,2345 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id326">
- <rect class="BoundingBox" stroke="none" fill="none" x="12663" y="2545" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12956,2615 L 12956,2615 12956,2619 12956,2622 12955,2626 12954,2629 12954,2633 12953,2636 12951,2640 12950,2643 12948,2646 12947,2650 12945,2653 12943,2656 12941,2658 12938,2661 12936,2664 12933,2666 12930,2669 12928,2671 12925,2673 12921,2675 12918,2676 12915,2678 12912,2679 12908,2681 12905,2682 12901,2682 12898,2683 12894,2684 12891,2684 12887,2684 12733,2684 12733,2684 12729,2684 12726,2684 12722,2683 12719,2682 12715,2682 12712,2681 12708,2679 12705,2678 12702,2676 12698,2675 12695,2673 12692,2671 12690,2669 12687,2666 12684,2664 12682,2661 12679,2658 12677,2656 12675,2653 12673,2649 12672,2646 12670,2643 12669,2640 12667,2636 12666,2633 12666,2629 12665,2626 12664,2622 12664,2619 12664,2615 12663,2615 12664,2615 12664,2611 12664,2608 12665,2604 12665,2601 12666,2597 12667,2594 12668,2590 12670,2587 12671,2584 12673,2581 12675,2578 12677,2575 12679,2572 12681,2569 12684,2567 12686,2564 12689,2562 12692,2560 12695,2557 12698,2556 12701,2554 12704,2552 12708,2551 12711,2550 12714,2549 12718,2548 12721,2547 12725,2546 12728,2546 12732,2546 12887,2545 12887,2546 12891,2546 12894,2546 12898,2547 12901,2547 12905,2548 12908,2549 12912,2550 12915,2552 12918,2553 12921,2555 12924,2557 12927,2559 12930,2561 12933,2563 12935,2566 12938,2568 12940,2571 12942,2574 12945,2577 12946,2580 12948,2583 12950,2586 12951,2590 12952,2593 12953,2596 12954,2600 12955,2603 12956,2607 12956,2610 12956,2614 12956,2615 Z M 12956,2684 L 12956,2684 Z M 12663,2545 L 12663,2545 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id327">
- <rect class="BoundingBox" stroke="none" fill="none" x="12663" y="2745" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 12956,2815 L 12956,2815 12956,2819 12956,2822 12955,2826 12954,2829 12954,2833 12953,2836 12951,2840 12950,2843 12948,2846 12947,2850 12945,2853 12943,2856 12941,2858 12938,2861 12936,2864 12933,2866 12930,2869 12928,2871 12925,2873 12921,2875 12918,2876 12915,2878 12912,2879 12908,2881 12905,2882 12901,2882 12898,2883 12894,2884 12891,2884 12887,2884 12733,2884 12733,2884 12729,2884 12726,2884 12722,2883 12719,2882 12715,2882 12712,2881 12708,2879 12705,2878 12702,2876 12698,2875 12695,2873 12692,2871 12690,2869 12687,2866 12684,2864 12682,2861 12679,2858 12677,2856 12675,2853 12673,2849 12672,2846 12670,2843 12669,2840 12667,2836 12666,2833 12666,2829 12665,2826 12664,2822 12664,2819 12664,2815 12663,2815 12664,2815 12664,2811 12664,2808 12665,2804 12665,2801 12666,2797 12667,2794 12668,2790 12670,2787 12671,2784 12673,2781 12675,2778 12677,2775 12679,2772 12681,2769 12684,2767 12686,2764 12689,2762 12692,2760 12695,2757 12698,2756 12701,2754 12704,2752 12708,2751 12711,2750 12714,2749 12718,2748 12721,2747 12725,2746 12728,2746 12732,2746 12887,2745 12887,2746 12891,2746 12894,2746 12898,2747 12901,2747 12905,2748 12908,2749 12912,2750 12915,2752 12918,2753 12921,2755 12924,2757 12927,2759 12930,2761 12933,2763 12935,2766 12938,2768 12940,2771 12942,2774 12945,2777 12946,2780 12948,2783 12950,2786 12951,2790 12952,2793 12953,2796 12954,2800 12955,2803 12956,2807 12956,2810 12956,2814 12956,2815 Z M 12956,2884 L 12956,2884 Z M 12663,2745 L 12663,2745 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id328">
- <rect class="BoundingBox" stroke="none" fill="none" x="14607" y="2345" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14900,2415 L 14900,2415 14900,2419 14900,2422 14899,2426 14898,2429 14898,2433 14897,2436 14895,2440 14894,2443 14892,2446 14891,2450 14889,2453 14887,2456 14885,2458 14882,2461 14880,2464 14877,2466 14874,2469 14872,2471 14869,2473 14865,2475 14862,2476 14859,2478 14856,2479 14852,2481 14849,2482 14845,2482 14842,2483 14838,2484 14835,2484 14831,2484 14677,2484 14677,2484 14673,2484 14670,2484 14666,2483 14663,2482 14659,2482 14656,2481 14652,2479 14649,2478 14646,2476 14642,2475 14639,2473 14636,2471 14634,2469 14631,2466 14628,2464 14626,2461 14623,2458 14621,2456 14619,2453 14617,2449 14616,2446 14614,2443 14613,2440 14611,2436 14610,2433 14610,2429 14609,2426 14608,2422 14608,2419 14608,2415 14607,2415 14608,2415 14608,2411 14608,2408 14609,2404 14609,2401 14610,2397 14611,2394 14612,2390 14614,2387 14615,2384 14617,2381 14619,2378 14621,2375 14623,2372 14625,2369 14628,2367 14630,2364 14633,2362 14636,2360 14639,2357 14642,2356 14645,2354 14648,2352 14652,2351 14655,2350 14658,2349 14662,2348 14665,2347 14669,2346 14672,2346 14676,2346 14831,2345 14831,2346 14835,2346 14838,2346 14842,2347 14845,2347 14849,2348 14852,2349 14856,2350 14859,2352 14862,2353 14865,2355 14868,2357 14871,2359 14874,2361 14877,2363 14879,2366 14882,2368 14884,2371 14886,2374 14889,2377 14890,2380 14892,2383 14894,2386 14895,2390 14896,2393 14897,2396 14898,2400 14899,2403 14900,2407 14900,2410 14900,2414 14900,2415 Z M 14900,2484 L 14900,2484 Z M 14607,2345 L 14607,2345 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id329">
- <rect class="BoundingBox" stroke="none" fill="none" x="14607" y="2545" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14900,2615 L 14900,2615 14900,2619 14900,2622 14899,2626 14898,2629 14898,2633 14897,2636 14895,2640 14894,2643 14892,2646 14891,2650 14889,2653 14887,2656 14885,2658 14882,2661 14880,2664 14877,2666 14874,2669 14872,2671 14869,2673 14865,2675 14862,2676 14859,2678 14856,2679 14852,2681 14849,2682 14845,2682 14842,2683 14838,2684 14835,2684 14831,2684 14677,2684 14677,2684 14673,2684 14670,2684 14666,2683 14663,2682 14659,2682 14656,2681 14652,2679 14649,2678 14646,2676 14642,2675 14639,2673 14636,2671 14634,2669 14631,2666 14628,2664 14626,2661 14623,2658 14621,2656 14619,2653 14617,2649 14616,2646 14614,2643 14613,2640 14611,2636 14610,2633 14610,2629 14609,2626 14608,2622 14608,2619 14608,2615 14607,2615 14608,2615 14608,2611 14608,2608 14609,2604 14609,2601 14610,2597 14611,2594 14612,2590 14614,2587 14615,2584 14617,2581 14619,2578 14621,2575 14623,2572 14625,2569 14628,2567 14630,2564 14633,2562 14636,2560 14639,2557 14642,2556 14645,2554 14648,2552 14652,2551 14655,2550 14658,2549 14662,2548 14665,2547 14669,2546 14672,2546 14676,2546 14831,2545 14831,2546 14835,2546 14838,2546 14842,2547 14845,2547 14849,2548 14852,2549 14856,2550 14859,2552 14862,2553 14865,2555 14868,2557 14871,2559 14874,2561 14877,2563 14879,2566 14882,2568 14884,2571 14886,2574 14889,2577 14890,2580 14892,2583 14894,2586 14895,2590 14896,2593 14897,2596 14898,2600 14899,2603 14900,2607 14900,2610 14900,2614 14900,2615 Z M 14900,2684 L 14900,2684 Z M 14607,2545 L 14607,2545 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id330">
- <rect class="BoundingBox" stroke="none" fill="none" x="14607" y="2744" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14900,2814 L 14900,2814 14900,2818 14900,2821 14899,2825 14898,2828 14898,2832 14897,2835 14895,2839 14894,2842 14892,2845 14891,2849 14889,2852 14887,2855 14885,2857 14882,2860 14880,2863 14877,2865 14874,2868 14872,2870 14869,2872 14865,2874 14862,2875 14859,2877 14856,2878 14852,2880 14849,2881 14845,2881 14842,2882 14838,2883 14835,2883 14831,2883 14677,2883 14677,2883 14673,2883 14670,2883 14666,2882 14663,2881 14659,2881 14656,2880 14652,2878 14649,2877 14646,2875 14642,2874 14639,2872 14636,2870 14634,2868 14631,2865 14628,2863 14626,2860 14623,2857 14621,2855 14619,2852 14617,2848 14616,2845 14614,2842 14613,2839 14611,2835 14610,2832 14610,2828 14609,2825 14608,2821 14608,2818 14608,2814 14607,2814 14608,2814 14608,2810 14608,2807 14609,2803 14609,2800 14610,2796 14611,2793 14612,2789 14614,2786 14615,2783 14617,2780 14619,2777 14621,2774 14623,2771 14625,2768 14628,2766 14630,2763 14633,2761 14636,2759 14639,2756 14642,2755 14645,2753 14648,2751 14652,2750 14655,2749 14658,2748 14662,2747 14665,2746 14669,2745 14672,2745 14676,2745 14831,2744 14831,2745 14835,2745 14838,2745 14842,2746 14845,2746 14849,2747 14852,2748 14856,2749 14859,2751 14862,2752 14865,2754 14868,2756 14871,2758 14874,2760 14877,2762 14879,2765 14882,2767 14884,2770 14886,2773 14889,2776 14890,2779 14892,2782 14894,2785 14895,2789 14896,2792 14897,2795 14898,2799 14899,2802 14900,2806 14900,2809 14900,2813 14900,2814 Z M 14900,2883 L 14900,2883 Z M 14607,2744 L 14607,2744 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id331">
- <rect class="BoundingBox" stroke="none" fill="none" x="14258" y="2345" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14551,2415 L 14551,2415 14551,2419 14551,2422 14550,2426 14549,2429 14549,2433 14548,2436 14546,2440 14545,2443 14543,2446 14542,2450 14540,2453 14538,2456 14536,2458 14533,2461 14531,2464 14528,2466 14525,2469 14523,2471 14520,2473 14516,2475 14513,2476 14510,2478 14507,2479 14503,2481 14500,2482 14496,2482 14493,2483 14489,2484 14486,2484 14482,2484 14328,2484 14328,2484 14324,2484 14321,2484 14317,2483 14314,2482 14310,2482 14307,2481 14303,2479 14300,2478 14297,2476 14293,2475 14290,2473 14287,2471 14285,2469 14282,2466 14279,2464 14277,2461 14274,2458 14272,2456 14270,2453 14268,2449 14267,2446 14265,2443 14264,2440 14262,2436 14261,2433 14261,2429 14260,2426 14259,2422 14259,2419 14259,2415 14258,2415 14259,2415 14259,2411 14259,2408 14260,2404 14260,2401 14261,2397 14262,2394 14263,2390 14265,2387 14266,2384 14268,2381 14270,2378 14272,2375 14274,2372 14276,2369 14279,2367 14281,2364 14284,2362 14287,2360 14290,2357 14293,2356 14296,2354 14299,2352 14303,2351 14306,2350 14309,2349 14313,2348 14316,2347 14320,2346 14323,2346 14327,2346 14482,2345 14482,2346 14486,2346 14489,2346 14493,2347 14496,2347 14500,2348 14503,2349 14507,2350 14510,2352 14513,2353 14516,2355 14519,2357 14522,2359 14525,2361 14528,2363 14530,2366 14533,2368 14535,2371 14537,2374 14540,2377 14541,2380 14543,2383 14545,2386 14546,2390 14547,2393 14548,2396 14549,2400 14550,2403 14551,2407 14551,2410 14551,2414 14551,2415 Z M 14551,2484 L 14551,2484 Z M 14258,2345 L 14258,2345 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id332">
- <rect class="BoundingBox" stroke="none" fill="none" x="14258" y="2545" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14551,2615 L 14551,2615 14551,2619 14551,2622 14550,2626 14549,2629 14549,2633 14548,2636 14546,2640 14545,2643 14543,2646 14542,2650 14540,2653 14538,2656 14536,2658 14533,2661 14531,2664 14528,2666 14525,2669 14523,2671 14520,2673 14516,2675 14513,2676 14510,2678 14507,2679 14503,2681 14500,2682 14496,2682 14493,2683 14489,2684 14486,2684 14482,2684 14328,2684 14328,2684 14324,2684 14321,2684 14317,2683 14314,2682 14310,2682 14307,2681 14303,2679 14300,2678 14297,2676 14293,2675 14290,2673 14287,2671 14285,2669 14282,2666 14279,2664 14277,2661 14274,2658 14272,2656 14270,2653 14268,2649 14267,2646 14265,2643 14264,2640 14262,2636 14261,2633 14261,2629 14260,2626 14259,2622 14259,2619 14259,2615 14258,2615 14259,2615 14259,2611 14259,2608 14260,2604 14260,2601 14261,2597 14262,2594 14263,2590 14265,2587 14266,2584 14268,2581 14270,2578 14272,2575 14274,2572 14276,2569 14279,2567 14281,2564 14284,2562 14287,2560 14290,2557 14293,2556 14296,2554 14299,2552 14303,2551 14306,2550 14309,2549 14313,2548 14316,2547 14320,2546 14323,2546 14327,2546 14482,2545 14482,2546 14486,2546 14489,2546 14493,2547 14496,2547 14500,2548 14503,2549 14507,2550 14510,2552 14513,2553 14516,2555 14519,2557 14522,2559 14525,2561 14528,2563 14530,2566 14533,2568 14535,2571 14537,2574 14540,2577 14541,2580 14543,2583 14545,2586 14546,2590 14547,2593 14548,2596 14549,2600 14550,2603 14551,2607 14551,2610 14551,2614 14551,2615 Z M 14551,2684 L 14551,2684 Z M 14258,2545 L 14258,2545 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id333">
- <rect class="BoundingBox" stroke="none" fill="none" x="14258" y="2744" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 14551,2814 L 14551,2814 14551,2818 14551,2821 14550,2825 14549,2828 14549,2832 14548,2835 14546,2839 14545,2842 14543,2845 14542,2849 14540,2852 14538,2855 14536,2857 14533,2860 14531,2863 14528,2865 14525,2868 14523,2870 14520,2872 14516,2874 14513,2875 14510,2877 14507,2878 14503,2880 14500,2881 14496,2881 14493,2882 14489,2883 14486,2883 14482,2883 14328,2883 14328,2883 14324,2883 14321,2883 14317,2882 14314,2881 14310,2881 14307,2880 14303,2878 14300,2877 14297,2875 14293,2874 14290,2872 14287,2870 14285,2868 14282,2865 14279,2863 14277,2860 14274,2857 14272,2855 14270,2852 14268,2848 14267,2845 14265,2842 14264,2839 14262,2835 14261,2832 14261,2828 14260,2825 14259,2821 14259,2818 14259,2814 14258,2814 14259,2814 14259,2810 14259,2807 14260,2803 14260,2800 14261,2796 14262,2793 14263,2789 14265,2786 14266,2783 14268,2780 14270,2777 14272,2774 14274,2771 14276,2768 14279,2766 14281,2763 14284,2761 14287,2759 14290,2756 14293,2755 14296,2753 14299,2751 14303,2750 14306,2749 14309,2748 14313,2747 14316,2746 14320,2745 14323,2745 14327,2745 14482,2744 14482,2745 14486,2745 14489,2745 14493,2746 14496,2746 14500,2747 14503,2748 14507,2749 14510,2751 14513,2752 14516,2754 14519,2756 14522,2758 14525,2760 14528,2762 14530,2765 14533,2767 14535,2770 14537,2773 14540,2776 14541,2779 14543,2782 14545,2785 14546,2789 14547,2792 14548,2795 14549,2799 14550,2802 14551,2806 14551,2809 14551,2813 14551,2814 Z M 14551,2883 L 14551,2883 Z M 14258,2744 L 14258,2744 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id334">
- <rect class="BoundingBox" stroke="none" fill="none" x="14937" y="2348" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15230,2418 L 15230,2418 15230,2422 15230,2425 15229,2429 15228,2432 15228,2436 15227,2439 15225,2443 15224,2446 15222,2449 15221,2453 15219,2456 15217,2459 15215,2461 15212,2464 15210,2467 15207,2469 15204,2472 15202,2474 15199,2476 15195,2478 15192,2479 15189,2481 15186,2482 15182,2484 15179,2485 15175,2485 15172,2486 15168,2487 15165,2487 15161,2487 15007,2487 15007,2487 15003,2487 15000,2487 14996,2486 14993,2485 14989,2485 14986,2484 14982,2482 14979,2481 14976,2479 14972,2478 14969,2476 14966,2474 14964,2472 14961,2469 14958,2467 14956,2464 14953,2461 14951,2459 14949,2456 14947,2452 14946,2449 14944,2446 14943,2443 14941,2439 14940,2436 14940,2432 14939,2429 14938,2425 14938,2422 14938,2418 14937,2418 14938,2418 14938,2414 14938,2411 14939,2407 14939,2404 14940,2400 14941,2397 14942,2393 14944,2390 14945,2387 14947,2384 14949,2381 14951,2378 14953,2375 14955,2372 14958,2370 14960,2367 14963,2365 14966,2363 14969,2360 14972,2359 14975,2357 14978,2355 14982,2354 14985,2353 14988,2352 14992,2351 14995,2350 14999,2349 15002,2349 15006,2349 15161,2348 15161,2349 15165,2349 15168,2349 15172,2350 15175,2350 15179,2351 15182,2352 15186,2353 15189,2355 15192,2356 15195,2358 15198,2360 15201,2362 15204,2364 15207,2366 15209,2369 15212,2371 15214,2374 15216,2377 15219,2380 15220,2383 15222,2386 15224,2389 15225,2393 15226,2396 15227,2399 15228,2403 15229,2406 15230,2410 15230,2413 15230,2417 15230,2418 Z M 15230,2487 L 15230,2487 Z M 14937,2348 L 14937,2348 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id335">
- <rect class="BoundingBox" stroke="none" fill="none" x="14937" y="2547" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15230,2617 L 15230,2617 15230,2621 15230,2624 15229,2628 15228,2631 15228,2635 15227,2638 15225,2642 15224,2645 15222,2648 15221,2652 15219,2655 15217,2658 15215,2660 15212,2663 15210,2666 15207,2668 15204,2671 15202,2673 15199,2675 15195,2677 15192,2678 15189,2680 15186,2681 15182,2683 15179,2684 15175,2684 15172,2685 15168,2686 15165,2686 15161,2686 15007,2686 15007,2686 15003,2686 15000,2686 14996,2685 14993,2684 14989,2684 14986,2683 14982,2681 14979,2680 14976,2678 14972,2677 14969,2675 14966,2673 14964,2671 14961,2668 14958,2666 14956,2663 14953,2660 14951,2658 14949,2655 14947,2651 14946,2648 14944,2645 14943,2642 14941,2638 14940,2635 14940,2631 14939,2628 14938,2624 14938,2621 14938,2617 14937,2617 14938,2617 14938,2613 14938,2610 14939,2606 14939,2603 14940,2599 14941,2596 14942,2592 14944,2589 14945,2586 14947,2583 14949,2580 14951,2577 14953,2574 14955,2571 14958,2569 14960,2566 14963,2564 14966,2562 14969,2559 14972,2558 14975,2556 14978,2554 14982,2553 14985,2552 14988,2551 14992,2550 14995,2549 14999,2548 15002,2548 15006,2548 15161,2547 15161,2548 15165,2548 15168,2548 15172,2549 15175,2549 15179,2550 15182,2551 15186,2552 15189,2554 15192,2555 15195,2557 15198,2559 15201,2561 15204,2563 15207,2565 15209,2568 15212,2570 15214,2573 15216,2576 15219,2579 15220,2582 15222,2585 15224,2588 15225,2592 15226,2595 15227,2598 15228,2602 15229,2605 15230,2609 15230,2612 15230,2616 15230,2617 Z M 15230,2686 L 15230,2686 Z M 14937,2547 L 14937,2547 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id336">
- <rect class="BoundingBox" stroke="none" fill="none" x="14937" y="2747" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15230,2817 L 15230,2817 15230,2821 15230,2824 15229,2828 15228,2831 15228,2835 15227,2838 15225,2842 15224,2845 15222,2848 15221,2852 15219,2855 15217,2858 15215,2860 15212,2863 15210,2866 15207,2868 15204,2871 15202,2873 15199,2875 15195,2877 15192,2878 15189,2880 15186,2881 15182,2883 15179,2884 15175,2884 15172,2885 15168,2886 15165,2886 15161,2886 15007,2886 15007,2886 15003,2886 15000,2886 14996,2885 14993,2884 14989,2884 14986,2883 14982,2881 14979,2880 14976,2878 14972,2877 14969,2875 14966,2873 14964,2871 14961,2868 14958,2866 14956,2863 14953,2860 14951,2858 14949,2855 14947,2851 14946,2848 14944,2845 14943,2842 14941,2838 14940,2835 14940,2831 14939,2828 14938,2824 14938,2821 14938,2817 14937,2817 14938,2817 14938,2813 14938,2810 14939,2806 14939,2803 14940,2799 14941,2796 14942,2792 14944,2789 14945,2786 14947,2783 14949,2780 14951,2777 14953,2774 14955,2771 14958,2769 14960,2766 14963,2764 14966,2762 14969,2759 14972,2758 14975,2756 14978,2754 14982,2753 14985,2752 14988,2751 14992,2750 14995,2749 14999,2748 15002,2748 15006,2748 15161,2747 15161,2748 15165,2748 15168,2748 15172,2749 15175,2749 15179,2750 15182,2751 15186,2752 15189,2754 15192,2755 15195,2757 15198,2759 15201,2761 15204,2763 15207,2765 15209,2768 15212,2770 15214,2773 15216,2776 15219,2779 15220,2782 15222,2785 15224,2788 15225,2792 15226,2795 15227,2798 15228,2802 15229,2805 15230,2809 15230,2812 15230,2816 15230,2817 Z M 15230,2886 L 15230,2886 Z M 14937,2747 L 14937,2747 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id337">
- <rect class="BoundingBox" stroke="none" fill="none" x="15665" y="2343" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15958,2413 L 15958,2413 15958,2417 15958,2420 15957,2424 15956,2427 15956,2431 15955,2434 15953,2438 15952,2441 15950,2444 15949,2448 15947,2451 15945,2454 15943,2456 15940,2459 15938,2462 15935,2464 15932,2467 15930,2469 15927,2471 15923,2473 15920,2474 15917,2476 15914,2477 15910,2479 15907,2480 15903,2480 15900,2481 15896,2482 15893,2482 15889,2482 15735,2482 15735,2482 15731,2482 15728,2482 15724,2481 15721,2480 15717,2480 15714,2479 15710,2477 15707,2476 15704,2474 15700,2473 15697,2471 15694,2469 15692,2467 15689,2464 15686,2462 15684,2459 15681,2456 15679,2454 15677,2451 15675,2447 15674,2444 15672,2441 15671,2438 15669,2434 15668,2431 15668,2427 15667,2424 15666,2420 15666,2417 15666,2413 15665,2413 15666,2413 15666,2409 15666,2406 15667,2402 15667,2399 15668,2395 15669,2392 15670,2388 15672,2385 15673,2382 15675,2379 15677,2376 15679,2373 15681,2370 15683,2367 15686,2365 15688,2362 15691,2360 15694,2358 15697,2355 15700,2354 15703,2352 15706,2350 15710,2349 15713,2348 15716,2347 15720,2346 15723,2345 15727,2344 15730,2344 15734,2344 15889,2343 15889,2344 15893,2344 15896,2344 15900,2345 15903,2345 15907,2346 15910,2347 15914,2348 15917,2350 15920,2351 15923,2353 15926,2355 15929,2357 15932,2359 15935,2361 15937,2364 15940,2366 15942,2369 15944,2372 15947,2375 15948,2378 15950,2381 15952,2384 15953,2388 15954,2391 15955,2394 15956,2398 15957,2401 15958,2405 15958,2408 15958,2412 15958,2413 Z M 15958,2482 L 15958,2482 Z M 15665,2343 L 15665,2343 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id338">
- <rect class="BoundingBox" stroke="none" fill="none" x="15665" y="2543" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15958,2613 L 15958,2613 15958,2617 15958,2620 15957,2624 15956,2627 15956,2631 15955,2634 15953,2638 15952,2641 15950,2644 15949,2648 15947,2651 15945,2654 15943,2656 15940,2659 15938,2662 15935,2664 15932,2667 15930,2669 15927,2671 15923,2673 15920,2674 15917,2676 15914,2677 15910,2679 15907,2680 15903,2680 15900,2681 15896,2682 15893,2682 15889,2682 15735,2682 15735,2682 15731,2682 15728,2682 15724,2681 15721,2680 15717,2680 15714,2679 15710,2677 15707,2676 15704,2674 15700,2673 15697,2671 15694,2669 15692,2667 15689,2664 15686,2662 15684,2659 15681,2656 15679,2654 15677,2651 15675,2647 15674,2644 15672,2641 15671,2638 15669,2634 15668,2631 15668,2627 15667,2624 15666,2620 15666,2617 15666,2613 15665,2613 15666,2613 15666,2609 15666,2606 15667,2602 15667,2599 15668,2595 15669,2592 15670,2588 15672,2585 15673,2582 15675,2579 15677,2576 15679,2573 15681,2570 15683,2567 15686,2565 15688,2562 15691,2560 15694,2558 15697,2555 15700,2554 15703,2552 15706,2550 15710,2549 15713,2548 15716,2547 15720,2546 15723,2545 15727,2544 15730,2544 15734,2544 15889,2543 15889,2544 15893,2544 15896,2544 15900,2545 15903,2545 15907,2546 15910,2547 15914,2548 15917,2550 15920,2551 15923,2553 15926,2555 15929,2557 15932,2559 15935,2561 15937,2564 15940,2566 15942,2569 15944,2572 15947,2575 15948,2578 15950,2581 15952,2584 15953,2588 15954,2591 15955,2594 15956,2598 15957,2601 15958,2605 15958,2608 15958,2612 15958,2613 Z M 15958,2682 L 15958,2682 Z M 15665,2543 L 15665,2543 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id339">
- <rect class="BoundingBox" stroke="none" fill="none" x="15665" y="2742" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15958,2812 L 15958,2812 15958,2816 15958,2819 15957,2823 15956,2826 15956,2830 15955,2833 15953,2837 15952,2840 15950,2843 15949,2847 15947,2850 15945,2853 15943,2855 15940,2858 15938,2861 15935,2863 15932,2866 15930,2868 15927,2870 15923,2872 15920,2873 15917,2875 15914,2876 15910,2878 15907,2879 15903,2879 15900,2880 15896,2881 15893,2881 15889,2881 15735,2881 15735,2881 15731,2881 15728,2881 15724,2880 15721,2879 15717,2879 15714,2878 15710,2876 15707,2875 15704,2873 15700,2872 15697,2870 15694,2868 15692,2866 15689,2863 15686,2861 15684,2858 15681,2855 15679,2853 15677,2850 15675,2846 15674,2843 15672,2840 15671,2837 15669,2833 15668,2830 15668,2826 15667,2823 15666,2819 15666,2816 15666,2812 15665,2812 15666,2812 15666,2808 15666,2805 15667,2801 15667,2798 15668,2794 15669,2791 15670,2787 15672,2784 15673,2781 15675,2778 15677,2775 15679,2772 15681,2769 15683,2766 15686,2764 15688,2761 15691,2759 15694,2757 15697,2754 15700,2753 15703,2751 15706,2749 15710,2748 15713,2747 15716,2746 15720,2745 15723,2744 15727,2743 15730,2743 15734,2743 15889,2742 15889,2743 15893,2743 15896,2743 15900,2744 15903,2744 15907,2745 15910,2746 15914,2747 15917,2749 15920,2750 15923,2752 15926,2754 15929,2756 15932,2758 15935,2760 15937,2763 15940,2765 15942,2768 15944,2771 15947,2774 15948,2777 15950,2780 15952,2783 15953,2787 15954,2790 15955,2793 15956,2797 15957,2800 15958,2804 15958,2807 15958,2811 15958,2812 Z M 15958,2881 L 15958,2881 Z M 15665,2742 L 15665,2742 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id340">
- <rect class="BoundingBox" stroke="none" fill="none" x="15316" y="2343" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15609,2413 L 15609,2413 15609,2417 15609,2420 15608,2424 15607,2427 15607,2431 15606,2434 15604,2438 15603,2441 15601,2444 15600,2448 15598,2451 15596,2454 15594,2456 15591,2459 15589,2462 15586,2464 15583,2467 15581,2469 15578,2471 15574,2473 15571,2474 15568,2476 15565,2477 15561,2479 15558,2480 15554,2480 15551,2481 15547,2482 15544,2482 15540,2482 15386,2482 15386,2482 15382,2482 15379,2482 15375,2481 15372,2480 15368,2480 15365,2479 15361,2477 15358,2476 15355,2474 15351,2473 15348,2471 15345,2469 15343,2467 15340,2464 15337,2462 15335,2459 15332,2456 15330,2454 15328,2451 15326,2447 15325,2444 15323,2441 15322,2438 15320,2434 15319,2431 15319,2427 15318,2424 15317,2420 15317,2417 15317,2413 15316,2413 15317,2413 15317,2409 15317,2406 15318,2402 15318,2399 15319,2395 15320,2392 15321,2388 15323,2385 15324,2382 15326,2379 15328,2376 15330,2373 15332,2370 15334,2367 15337,2365 15339,2362 15342,2360 15345,2358 15348,2355 15351,2354 15354,2352 15357,2350 15361,2349 15364,2348 15367,2347 15371,2346 15374,2345 15378,2344 15381,2344 15385,2344 15540,2343 15540,2344 15544,2344 15547,2344 15551,2345 15554,2345 15558,2346 15561,2347 15565,2348 15568,2350 15571,2351 15574,2353 15577,2355 15580,2357 15583,2359 15586,2361 15588,2364 15591,2366 15593,2369 15595,2372 15598,2375 15599,2378 15601,2381 15603,2384 15604,2388 15605,2391 15606,2394 15607,2398 15608,2401 15609,2405 15609,2408 15609,2412 15609,2413 Z M 15609,2482 L 15609,2482 Z M 15316,2343 L 15316,2343 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id341">
- <rect class="BoundingBox" stroke="none" fill="none" x="15316" y="2543" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15609,2613 L 15609,2613 15609,2617 15609,2620 15608,2624 15607,2627 15607,2631 15606,2634 15604,2638 15603,2641 15601,2644 15600,2648 15598,2651 15596,2654 15594,2656 15591,2659 15589,2662 15586,2664 15583,2667 15581,2669 15578,2671 15574,2673 15571,2674 15568,2676 15565,2677 15561,2679 15558,2680 15554,2680 15551,2681 15547,2682 15544,2682 15540,2682 15386,2682 15386,2682 15382,2682 15379,2682 15375,2681 15372,2680 15368,2680 15365,2679 15361,2677 15358,2676 15355,2674 15351,2673 15348,2671 15345,2669 15343,2667 15340,2664 15337,2662 15335,2659 15332,2656 15330,2654 15328,2651 15326,2647 15325,2644 15323,2641 15322,2638 15320,2634 15319,2631 15319,2627 15318,2624 15317,2620 15317,2617 15317,2613 15316,2613 15317,2613 15317,2609 15317,2606 15318,2602 15318,2599 15319,2595 15320,2592 15321,2588 15323,2585 15324,2582 15326,2579 15328,2576 15330,2573 15332,2570 15334,2567 15337,2565 15339,2562 15342,2560 15345,2558 15348,2555 15351,2554 15354,2552 15357,2550 15361,2549 15364,2548 15367,2547 15371,2546 15374,2545 15378,2544 15381,2544 15385,2544 15540,2543 15540,2544 15544,2544 15547,2544 15551,2545 15554,2545 15558,2546 15561,2547 15565,2548 15568,2550 15571,2551 15574,2553 15577,2555 15580,2557 15583,2559 15586,2561 15588,2564 15591,2566 15593,2569 15595,2572 15598,2575 15599,2578 15601,2581 15603,2584 15604,2588 15605,2591 15606,2594 15607,2598 15608,2601 15609,2605 15609,2608 15609,2612 15609,2613 Z M 15609,2682 L 15609,2682 Z M 15316,2543 L 15316,2543 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id342">
- <rect class="BoundingBox" stroke="none" fill="none" x="15316" y="2742" width="294" height="140"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 15609,2812 L 15609,2812 15609,2816 15609,2819 15608,2823 15607,2826 15607,2830 15606,2833 15604,2837 15603,2840 15601,2843 15600,2847 15598,2850 15596,2853 15594,2855 15591,2858 15589,2861 15586,2863 15583,2866 15581,2868 15578,2870 15574,2872 15571,2873 15568,2875 15565,2876 15561,2878 15558,2879 15554,2879 15551,2880 15547,2881 15544,2881 15540,2881 15386,2881 15386,2881 15382,2881 15379,2881 15375,2880 15372,2879 15368,2879 15365,2878 15361,2876 15358,2875 15355,2873 15351,2872 15348,2870 15345,2868 15343,2866 15340,2863 15337,2861 15335,2858 15332,2855 15330,2853 15328,2850 15326,2846 15325,2843 15323,2840 15322,2837 15320,2833 15319,2830 15319,2826 15318,2823 15317,2819 15317,2816 15317,2812 15316,2812 15317,2812 15317,2808 15317,2805 15318,2801 15318,2798 15319,2794 15320,2791 15321,2787 15323,2784 15324,2781 15326,2778 15328,2775 15330,2772 15332,2769 15334,2766 15337,2764 15339,2761 15342,2759 15345,2757 15348,2754 15351,2753 15354,2751 15357,2749 15361,2748 15364,2747 15367,2746 15371,2745 15374,2744 15378,2743 15381,2743 15385,2743 15540,2742 15540,2743 15544,2743 15547,2743 15551,2744 15554,2744 15558,2745 15561,2746 15565,2747 15568,2749 15571,2750 15574,2752 15577,2754 15580,2756 15583,2758 15586,2760 15588,2763 15591,2765 15593,2768 15595,2771 15598,2774 15599,2777 15601,2780 15603,2783 15604,2787 15605,2790 15606,2793 15607,2797 15608,2800 15609,2804 15609,2807 15609,2811 15609,2812 Z M 15609,2881 L 15609,2881 Z M 15316,2742 L 15316,2742 Z"/>
- </g>
- </g>
- </g>
- <g class="Group">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id343">
- <rect class="BoundingBox" stroke="none" fill="none" x="15996" y="2346" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 16289,2416 L 16289,2416 16289,2420 16289,2423 16288,2427 16287,2430 16287,2434 16286,2437 16284,2441 16283,2444 16281,2447 16280,2451 16278,2454 16276,2457 16274,2459 16271,2462 16269,2465 16266,2467 16263,2470 16261,2472 16258,2474 16254,2476 16251,2477 16248,2479 16245,2480 16241,2482 16238,2483 16234,2483 16231,2484 16227,2485 16224,2485 16220,2485 16066,2485 16066,2485 16062,2485 16059,2485 16055,2484 16052,2483 16048,2483 16045,2482 16041,2480 16038,2479 16035,2477 16031,2476 16028,2474 16025,2472 16023,2470 16020,2467 16017,2465 16015,2462 16012,2459 16010,2457 16008,2454 16006,2450 16005,2447 16003,2444 16002,2441 16000,2437 15999,2434 15999,2430 15998,2427 15997,2423 15997,2420 15997,2416 15996,2416 15997,2416 15997,2412 15997,2409 15998,2405 15998,2402 15999,2398 16000,2395 16001,2391 16003,2388 16004,2385 16006,2382 16008,2379 16010,2376 16012,2373 16014,2370 16017,2368 16019,2365 16022,2363 16025,2361 16028,2358 16031,2357 16034,2355 16037,2353 16041,2352 16044,2351 16047,2350 16051,2349 16054,2348 16058,2347 16061,2347 16065,2347 16220,2346 16220,2347 16224,2347 16227,2347 16231,2348 16234,2348 16238,2349 16241,2350 16245,2351 16248,2353 16251,2354 16254,2356 16257,2358 16260,2360 16263,2362 16266,2364 16268,2367 16271,2369 16273,2372 16275,2375 16278,2378 16279,2381 16281,2384 16283,2387 16284,2391 16285,2394 16286,2397 16287,2401 16288,2404 16289,2408 16289,2411 16289,2415 16289,2416 Z M 16289,2485 L 16289,2485 Z M 15996,2346 L 15996,2346 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id344">
- <rect class="BoundingBox" stroke="none" fill="none" x="15996" y="2546" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 16289,2616 L 16289,2616 16289,2620 16289,2623 16288,2627 16287,2630 16287,2634 16286,2637 16284,2641 16283,2644 16281,2647 16280,2651 16278,2654 16276,2657 16274,2659 16271,2662 16269,2665 16266,2667 16263,2670 16261,2672 16258,2674 16254,2676 16251,2677 16248,2679 16245,2680 16241,2682 16238,2683 16234,2683 16231,2684 16227,2685 16224,2685 16220,2685 16066,2685 16066,2685 16062,2685 16059,2685 16055,2684 16052,2683 16048,2683 16045,2682 16041,2680 16038,2679 16035,2677 16031,2676 16028,2674 16025,2672 16023,2670 16020,2667 16017,2665 16015,2662 16012,2659 16010,2657 16008,2654 16006,2650 16005,2647 16003,2644 16002,2641 16000,2637 15999,2634 15999,2630 15998,2627 15997,2623 15997,2620 15997,2616 15996,2616 15997,2616 15997,2612 15997,2609 15998,2605 15998,2602 15999,2598 16000,2595 16001,2591 16003,2588 16004,2585 16006,2582 16008,2579 16010,2576 16012,2573 16014,2570 16017,2568 16019,2565 16022,2563 16025,2561 16028,2558 16031,2557 16034,2555 16037,2553 16041,2552 16044,2551 16047,2550 16051,2549 16054,2548 16058,2547 16061,2547 16065,2547 16220,2546 16220,2547 16224,2547 16227,2547 16231,2548 16234,2548 16238,2549 16241,2550 16245,2551 16248,2553 16251,2554 16254,2556 16257,2558 16260,2560 16263,2562 16266,2564 16268,2567 16271,2569 16273,2572 16275,2575 16278,2578 16279,2581 16281,2584 16283,2587 16284,2591 16285,2594 16286,2597 16287,2601 16288,2604 16289,2608 16289,2611 16289,2615 16289,2616 Z M 16289,2685 L 16289,2685 Z M 15996,2546 L 15996,2546 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id345">
- <rect class="BoundingBox" stroke="none" fill="none" x="15996" y="2745" width="294" height="141"/>
- <path fill="rgb(66,131,139)" stroke="none" d="M 16289,2815 L 16289,2815 16289,2819 16289,2822 16288,2826 16287,2829 16287,2833 16286,2836 16284,2840 16283,2843 16281,2846 16280,2850 16278,2853 16276,2856 16274,2858 16271,2861 16269,2864 16266,2866 16263,2869 16261,2871 16258,2873 16254,2875 16251,2876 16248,2878 16245,2879 16241,2881 16238,2882 16234,2882 16231,2883 16227,2884 16224,2884 16220,2884 16066,2884 16066,2884 16062,2884 16059,2884 16055,2883 16052,2882 16048,2882 16045,2881 16041,2879 16038,2878 16035,2876 16031,2875 16028,2873 16025,2871 16023,2869 16020,2866 16017,2864 16015,2861 16012,2858 16010,2856 16008,2853 16006,2849 16005,2846 16003,2843 16002,2840 16000,2836 15999,2833 15999,2829 15998,2826 15997,2822 15997,2819 15997,2815 15996,2815 15997,2815 15997,2811 15997,2808 15998,2804 15998,2801 15999,2797 16000,2794 16001,2790 16003,2787 16004,2784 16006,2781 16008,2778 16010,2775 16012,2772 16014,2769 16017,2767 16019,2764 16022,2762 16025,2760 16028,2757 16031,2756 16034,2754 16037,2752 16041,2751 16044,2750 16047,2749 16051,2748 16054,2747 16058,2746 16061,2746 16065,2746 16220,2745 16220,2746 16224,2746 16227,2746 16231,2747 16234,2747 16238,2748 16241,2749 16245,2750 16248,2752 16251,2753 16254,2755 16257,2757 16260,2759 16263,2761 16266,2763 16268,2766 16271,2768 16273,2771 16275,2774 16278,2777 16279,2780 16281,2783 16283,2786 16284,2790 16285,2793 16286,2796 16287,2800 16288,2803 16289,2807 16289,2810 16289,2814 16289,2815 Z M 16289,2884 L 16289,2884 Z M 15996,2745 L 15996,2745 Z"/>
- </g>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id346">
- <rect class="BoundingBox" stroke="none" fill="none" x="9382" y="4148" width="1625" height="1285"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9632" y="4544"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9632" y="4891"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id347">
- <rect class="BoundingBox" stroke="none" fill="none" x="12922" y="3496" width="609" height="382"/>
- <path fill="rgb(95,100,104)" stroke="none" d="M 13226,3877 L 12922,3877 12922,3496 13530,3496 13530,3877 13226,3877 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12990" y="3800"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id348">
- <rect class="BoundingBox" stroke="none" fill="none" x="3677" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id349">
- <rect class="BoundingBox" stroke="none" fill="none" x="6233" y="8492" width="390" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id350">
- <rect class="BoundingBox" stroke="none" fill="none" x="10867" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id351">
- <rect class="BoundingBox" stroke="none" fill="none" x="6676" y="8492" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id352">
- <rect class="BoundingBox" stroke="none" fill="none" x="4112" y="5979" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id353">
- <rect class="BoundingBox" stroke="none" fill="none" x="10432" y="5979" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id354">
- <rect class="BoundingBox" stroke="none" fill="none" x="7006" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id355">
- <rect class="BoundingBox" stroke="none" fill="none" x="11070" y="8492" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id356">
- <rect class="BoundingBox" stroke="none" fill="none" x="14196" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id357">
- <rect class="BoundingBox" stroke="none" fill="none" x="11405" y="8492" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id358">
- <rect class="BoundingBox" stroke="none" fill="none" x="7414" y="5952" width="382" height="382"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id359">
- <rect class="BoundingBox" stroke="none" fill="none" x="13761" y="5979" width="382" height="382"/>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/docs/report/test_configuration/vpp_device_configuration_ubuntu/index.rst b/docs/report/test_configuration/vpp_device_configuration_ubuntu/index.rst
deleted file mode 100644
index b68edab403..0000000000
--- a/docs/report/test_configuration/vpp_device_configuration_ubuntu/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-VPP Device
-==========
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- device jobs using Ubuntu`_, ii) archived FD.io jobs test result
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration/index.rst b/docs/report/test_configuration/vpp_mrr_configuration/index.rst
deleted file mode 100644
index 2e8f3aa599..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration/index.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-VPP MRR
-=======
-
-.. note::
-
- Data sources for reported test results:
- i) `FD.io test executor vpp performance job 2n-skx`_,
- `FD.io test executor vpp performance job 3n-skx`_,
- `FD.io test executor vpp performance job 2n-clx`_,
- `FD.io test executor vpp performance job 2n-zn2`_,
- `FD.io test executor vpp performance job 3n-hsw`_,
- `FD.io test executor vpp performance job 3n-tsh`_,
- `FD.io test executor vpp performance job 2n-tx2`_,
- `FD.io test executor vpp performance job 2n-dnv`_,
- `FD.io test executor vpp performance job 3n-dnv`_,
- ii) archived FD.io jobs test results
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_2n_clx/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_2n_clx/index.rst
deleted file mode 100644
index ad7cc34452..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_clx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 2n-clx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_2n_dnv/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_2n_dnv/index.rst
deleted file mode 100644
index c9606acafc..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 2n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_2n_skx/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_2n_skx/index.rst
deleted file mode 100644
index ea1e46793c..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 2n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_2n_tx2/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_2n_tx2/index.rst
deleted file mode 100644
index 8227c7ef96..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_tx2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 2n-tx2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_2n_zn2/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_2n_zn2/index.rst
deleted file mode 100644
index 6e3cfc3102..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_zn2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 2n-zn2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_3n_dnv/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_3n_dnv/index.rst
deleted file mode 100644
index cd8c58fe06..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_3n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 3n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_3n_hsw/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_3n_hsw/index.rst
deleted file mode 100644
index d0b882910d..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_3n_hsw/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-hsw
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 3n-hsw`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_3n_skx/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_3n_skx/index.rst
deleted file mode 100644
index ede99b2253..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_3n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 3n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_3n_tsh/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_3n_tsh/index.rst
deleted file mode 100644
index efc3f296a7..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_3n_tsh/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 3n-tsh`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration/index.rst b/docs/report/test_configuration/vpp_performance_configuration/index.rst
deleted file mode 100644
index 054b9be4dd..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration/index.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-VPP Throughput
-==============
-
-.. note::
-
- Data sources for reported test results:
- i) `FD.io test executor vpp performance job 2n-skx`_,
- `FD.io test executor vpp performance job 3n-skx`_,
- `FD.io test executor vpp performance job 2n-clx`_,
- `FD.io test executor vpp performance job 2n-zn2`_,
- `FD.io test executor vpp performance job 3n-hsw`_,
- `FD.io test executor vpp performance job 3n-tsh`_,
- `FD.io test executor vpp performance job 2n-tx2`_,
- `FD.io test executor vpp performance job 2n-dnv`_,
- `FD.io test executor vpp performance job 3n-dnv`_,
- ii) archived FD.io jobs test results
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_2n_clx/index.rst b/docs/report/test_configuration/vpp_performance_configuration_2n_clx/index.rst
deleted file mode 100644
index ad7cc34452..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_clx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 2n-clx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_2n_dnv/index.rst b/docs/report/test_configuration/vpp_performance_configuration_2n_dnv/index.rst
deleted file mode 100644
index c9606acafc..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 2n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_2n_skx/index.rst b/docs/report/test_configuration/vpp_performance_configuration_2n_skx/index.rst
deleted file mode 100644
index ea1e46793c..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 2n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_2n_tx2/index.rst b/docs/report/test_configuration/vpp_performance_configuration_2n_tx2/index.rst
deleted file mode 100644
index 8227c7ef96..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_tx2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 2n-tx2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_2n_zn2/index.rst b/docs/report/test_configuration/vpp_performance_configuration_2n_zn2/index.rst
deleted file mode 100644
index 6e3cfc3102..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_zn2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 2n-zn2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_3n_dnv/index.rst b/docs/report/test_configuration/vpp_performance_configuration_3n_dnv/index.rst
deleted file mode 100644
index cd8c58fe06..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_3n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 3n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_3n_hsw/index.rst b/docs/report/test_configuration/vpp_performance_configuration_3n_hsw/index.rst
deleted file mode 100644
index d0b882910d..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_3n_hsw/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-hsw
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 3n-hsw`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_3n_skx/index.rst b/docs/report/test_configuration/vpp_performance_configuration_3n_skx/index.rst
deleted file mode 100644
index ede99b2253..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_3n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 3n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_3n_tsh/index.rst b/docs/report/test_configuration/vpp_performance_configuration_3n_tsh/index.rst
deleted file mode 100644
index efc3f296a7..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_3n_tsh/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test configurations: i) `FD.io test executor vpp
- performance job 3n-tsh`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_operational_data/vpp_performance_operational_data/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data/index.rst
deleted file mode 100644
index 1f75069750..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data/index.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-VPP Throughput
-==============
-
-VPP operational data is generated by |csit-release| NDR-PDR throughput tests
-executed across physical testbeds hosted in LF FD.io labs: 3n-hsw, 3n-skx,
-2n-skx, 2n-clx, 3n-dnv, 2n-dnv, 3n-tsh, 2n-tx2. The data is collected at 100%
-PDR.
-
-.. note::
-
- Data sources for reported test results:
- i) `FD.io test executor vpp performance job 2n-skx`_,
- `FD.io test executor vpp performance job 3n-skx`_,
- `FD.io test executor vpp performance job 2n-clx`_,
- `FD.io test executor vpp performance job 2n-zn2`_,
- `FD.io test executor vpp performance job 3n-hsw`_,
- `FD.io test executor vpp performance job 3n-tsh`_,
- `FD.io test executor vpp performance job 2n-tx2`_,
- `FD.io test executor vpp performance job 2n-dnv`_,
- `FD.io test executor vpp performance job 3n-dnv`_,
- ii) archived FD.io jobs test results
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_operational_data/vpp_performance_operational_data_2n_clx/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_2n_clx/index.rst
deleted file mode 100644
index 8f108d2457..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_clx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test operational data: i) `FD.io test executor vpp
- performance job 2n-clx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_operational_data/vpp_performance_operational_data_2n_dnv/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_2n_dnv/index.rst
deleted file mode 100644
index b68de2242f..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test operational data: i) `FD.io test executor vpp
- performance job 2n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_operational_data/vpp_performance_operational_data_2n_skx/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_2n_skx/index.rst
deleted file mode 100644
index fed6324229..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test operational data: i) `FD.io test executor vpp
- performance job 2n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_operational_data/vpp_performance_operational_data_2n_tx2/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_2n_tx2/index.rst
deleted file mode 100644
index 294509bff7..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_tx2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test operational data: i) `FD.io test executor vpp
- performance job 2n-tx2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_operational_data/vpp_performance_operational_data_2n_zn2/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_2n_zn2/index.rst
deleted file mode 100644
index 6a1cbcd7bb..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_zn2/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test operational data: i) `FD.io test executor vpp
- performance job 2n-zn2`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_operational_data/vpp_performance_operational_data_3n_dnv/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_3n_dnv/index.rst
deleted file mode 100644
index 451561d693..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_3n_dnv/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test operational data: i) `FD.io test executor vpp
- performance job 3n-dnv`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_operational_data/vpp_performance_operational_data_3n_hsw/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_3n_hsw/index.rst
deleted file mode 100644
index badfdffcbe..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_3n_hsw/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-hsw
-------
-
-.. note::
-
- Data sources for reported test operational data: i) `FD.io test executor vpp
- performance job 3n-hsw`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_operational_data/vpp_performance_operational_data_3n_skx/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_3n_skx/index.rst
deleted file mode 100644
index 4a19d52936..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_3n_skx/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test operational data: i) `FD.io test executor vpp
- performance job 3n-skx`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_operational_data/vpp_performance_operational_data_3n_tsh/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_3n_tsh/index.rst
deleted file mode 100644
index 066b346659..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_3n_tsh/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test operational data: i) `FD.io test executor vpp
- performance job 3n-tsh`_, ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/vpp_device_tests/csit_release_notes.rst b/docs/report/vpp_device_tests/csit_release_notes.rst
deleted file mode 100644
index fc1e23aede..0000000000
--- a/docs/report/vpp_device_tests/csit_release_notes.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-Release Notes
-=============
-
-Changes in |csit-release|
--------------------------
-
-#. TEST FRAMEWORK
-
- - **Bug fixes**.
-
-#. TEST COVERAGE
-
- - Increased test coverage: **NAT44-DET**, **NAT44-ED**.
- - Aligned vpp_device NAT Robot Keywords with performance NAT Robot Keywords.
-
-Known Issues
-------------
-
-List of known issues in |csit-release| for VPP functional tests in VPP Device:
-
-+---+----------------------------------------+---------------------+
-| # | JiraID | Issue Description |
-+===+========================================+=====================+
-| 1 | | |
-+---+----------------------------------------+---------------------+
diff --git a/docs/report/vpp_device_tests/documentation.rst b/docs/report/vpp_device_tests/documentation.rst
deleted file mode 100644
index 6ab6d51287..0000000000
--- a/docs/report/vpp_device_tests/documentation.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Documentation
-=============
-
-`CSIT VPP Device Tests Documentation`_ contains detailed
-functional description and input parameters for each test case.
-
diff --git a/docs/report/vpp_device_tests/index.rst b/docs/report/vpp_device_tests/index.rst
deleted file mode 100644
index 4a6e6c81e6..0000000000
--- a/docs/report/vpp_device_tests/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-VPP Device
-==========
-
-.. toctree::
-
- overview
- csit_release_notes
- test_environment
- documentation
diff --git a/docs/report/vpp_device_tests/overview.rst b/docs/report/vpp_device_tests/overview.rst
deleted file mode 100644
index 77c942ed20..0000000000
--- a/docs/report/vpp_device_tests/overview.rst
+++ /dev/null
@@ -1,162 +0,0 @@
-Overview
-========
-
-Virtual Topologies
-------------------
-
-CSIT VPP Device tests are executed in Physical containerized topologies
-created on demand using set of scripts hosted and developed under CSIT
-repository. It runs on physical baremetal servers hosted by LF FD.io project.
-Based on the packet path thru SUT Containers, three distinct logical topology
-types are used for VPP DUT data plane testing:
-
-#. vfNIC-to-vfNIC switching topologies.
-#. vfNIC-to-vhost-user switching topologies.
-#. vfNIC-to-memif switching topologies.
-
-vfNIC-to-vfNIC Switching
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-The simplest physical topology for software data plane application like
-VPP is vfNIC-to-vfNIC switching. Tested virtual topologies for 2-Node testbeds
-are shown in figures below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_device_tests/}}
- \includegraphics[width=0.90\textwidth]{vf-2n-nic2nic}
- \label{fig:vf-2n-nic2nic}
- \end{figure}
-
-.. only:: html
-
- .. figure:: ../vpp_device_tests/vf-2n-nic2nic.svg
- :alt: vf-2n-nic2nic
- :align: center
-
-SUT1 is Docker Container (running Ubuntu, depending on the test suite), TG is
-a Traffic Generator (running Ubuntu Container). SUTs run VPP
-SW application in Linux user-mode as a Device Under Test (DUT) within
-the container. TG runs Scapy SW application as a packet Traffic Generator.
-Network connectivity between SUTs and to TG is provided using virtual function
-of physical NICs.
-
-Virtual topologies are created on-demand whenever a verification job is
-started (e.g. triggered by the gerrit patch submission) and destroyed
-upon completion of all functional tests. Each node is a container running on
-physical server. During the test execution, all nodes are reachable thru
-the Management (not shown above for clarity).
-
-vfNIC-to-vhost-user Switching
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-vfNIC-to-vhost-user switching topology test cases require VPP DUT to communicate
-with Virtual Machine (VM) over Vhost-user virtual interfaces. VM is created on
-SUT1 for the duration of these particular test cases only. Virtual test topology
-with VM is shown in the figure below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_device_tests/}}
- \includegraphics[width=0.90\textwidth]{vf-2n-nic2vhost}
- \label{fig:vf-2n-nic2vhost}
- \end{figure}
-
-.. only:: html
-
- .. figure:: ../vpp_device_tests/vf-2n-nic2vhost.svg
- :alt: vf-2n-nic2vhost
- :align: center
-
-vfNIC-to-memif Switching
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-vfNIC-to-memif switching topology test cases require VPP DUT to communicate
-with another Docker Container over memif interfaces. Container is created for
-the duration of these particular test cases only and it is running the same VPP
-version as running on DUT. Virtual test topology with Memif is shown in
-the figure below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_device_tests/}}
- \includegraphics[width=0.90\textwidth]{vf-2n-nic2memif}
- \label{fig:vf-2n-nic2memif}
- \end{figure}
-
-.. only:: html
-
- .. figure:: ../vpp_device_tests/vf-2n-nic2memif.svg
- :alt: vf-2n-nic2memif
- :align: center
-
-Functional Tests Coverage
--------------------------
-
-|csit-release| includes following VPP functionality tested in VPP Device
-environment:
-
-+-----------------------+----------------------------------------------+
-| Functionality | Description |
-+=======================+==============================================+
-| ACL | Ingress Access Control List security for L2 |
-| | Bridge-Domain MAC switching, IPv4 routing, |
-| | IPv6 routing. |
-+-----------------------+----------------------------------------------+
-| ADL | ADL address allow-list and block-list |
-| | filtering for IPv4 and IPv6 routing. |
-+-----------------------+----------------------------------------------+
-| IPSec | IPSec tunnel and transport modes. |
-+-----------------------+----------------------------------------------+
-| IPv4 | IPv4 routing, ICMPv4. |
-+-----------------------+----------------------------------------------+
-| IPv6 | IPv4 routing, ICMPv6. |
-+-----------------------+----------------------------------------------+
-| L2BD | L2 Bridge-Domain switching for untagged |
-| | Ethernet. |
-+-----------------------+----------------------------------------------+
-| L2XC | L2 Cross-Connect switching for untagged |
-| | Ethernet. |
-+-----------------------+----------------------------------------------+
-| Memif Interface | Baseline VPP memif interface tests. |
-+-----------------------+----------------------------------------------+
-| NAT44 | Network Address and Port Translation |
-| | deterministic mode and endpoint-dependent |
-| | mode tests for IPv4. |
-+-----------------------+----------------------------------------------+
-| QoS Policer Metering | Ingress packet rate metering and marking for |
-| | IPv4, IPv6. |
-+-----------------------+----------------------------------------------+
-| SRv6 | Segment routing over IPv6, base and proxy. |
-+-----------------------+----------------------------------------------+
-| Tap Interface | Baseline Linux tap interface tests. |
-+-----------------------+----------------------------------------------+
-| VLAN Tag | L2 VLAN subinterfaces. |
-+-----------------------+----------------------------------------------+
-| Vhost-user Interface | Baseline VPP vhost-user interface tests. |
-+-----------------------+----------------------------------------------+
-| VXLAN | VXLAN overlay tunneling for L2-over-IPv4 and |
-| | -over-IPv6. |
-+-----------------------+----------------------------------------------+
-
-Tests Naming
-------------
-
-|csit-release| follows a common structured naming convention for all
-performance and system functional tests, introduced in CSIT-17.01.
-
-The naming should be intuitive for majority of the tests. Complete
-description of CSIT test naming convention is provided on
-:ref:`csit_test_naming`.
diff --git a/docs/report/vpp_device_tests/test_environment.rst b/docs/report/vpp_device_tests/test_environment.rst
deleted file mode 100644
index 6521e85519..0000000000
--- a/docs/report/vpp_device_tests/test_environment.rst
+++ /dev/null
@@ -1,573 +0,0 @@
-Integration Tests
-=================
-
-Abstract
---------
-
-FD.io VPP software data plane technology has become very popular across
-a wide range of VPP eco-system use cases, putting higher pressure on
-continuous verification of VPP software quality.
-
-This document describes a proposal for design and implementation of extended
-continuous VPP testing by extending existing test environments.
-Furthermore it describes and summarizes implementation details of Integration
-and System tests platform *1-Node VPP_Device*. It aims to provide a complete
-end-to-end view of *1-Node VPP_Device* environment in order to improve
-extendability and maintenance, under the guideline of VPP core team.
-
-The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
-"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
-interpreted as described in :rfc:`8174`.
-
-Overview
---------
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_device_tests/}}
- \includegraphics[width=0.90\textwidth]{vpp_device}
- \label{fig:vpp_device}
- \end{figure}
-
-.. only:: html
-
- .. figure:: vpp_device.svg
- :alt: vpp_device
- :align: center
-
-Physical Testbeds
------------------
-
-All :abbr:`FD.io (Fast Data Input/Ouput)` :abbr:`CSIT (Continuous System
-Integration and Testing)` vpp-device tests are executed on physical testbeds
-built with bare-metal servers hosted by :abbr:`LF (Linux Foundation)` FD.io
-project. Two 1-node testbed topologies are used:
-
-- **2-Container Topology**: Consisting of one Docker container acting as SUT
- (System Under Test) and one Docker container as TG (Traffic Generator), both
- connected in ring topology via physical NIC cross-connecting.
-
-Current FD.io production testbeds are built with servers based on one
-processor generation of Intel Xeons: Skylake (Platinum 8180). Testbeds built
-with servers based on Arm processors are in the process of being added to FD.io
-production.
-
-Following section describe existing production 1n-skx testbed.
-
-1-Node Xeon Skylake (1n-skx)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-1n-skx testbed is based on single SuperMicro SYS-7049GP-TRT server equipped with
-two Intel Xeon Skylake Platinum 8180 2.5 GHz 28 core processors. Physical
-testbed topology is depicted in a figure below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_device_tests/}}
- \includegraphics[width=0.90\textwidth]{vf-2n-nic2nic}
- \label{fig:vf-2n-nic2nic}
- \end{figure}
-
-.. only:: html
-
- .. figure:: vf-2n-nic2nic.svg
- :alt: vf-2n-nic2nic
- :align: center
-
-Server is populated with the following NIC models:
-
-#. NIC-1: x710-da4 4p10GE Intel.
-#. NIC-2: x710-da4 4p10GE Intel.
-
-All Intel Xeon Skylake servers run with Intel Hyper-Threading enabled,
-doubling the number of logical cores exposed to Linux, with 56 logical
-cores and 28 physical cores per processor socket.
-
-NIC interfaces are shared using Linux vfio_pci and VPP VF drivers:
-
-- DPDK VF driver,
-- Fortville AVF driver.
-
-Provided Intel x710-da4 4p10GE NICs support 32 VFs per interface, 128 per NIC.
-
-Complete 1n-skx testbeds specification is available on `CSIT LF Testbeds
-<https://wiki.fd.io/view/CSIT/Testbeds:_Xeon_Skx,_Arm,_Atom.>`_ wiki page.
-
-Total of two 1n-skx testbeds are in operation in FD.io labs.
-
-1-Node Virtualbox (1n-vbox)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-1n-skx testbed can run in single VirtualBox VM machine. This solution replaces
-the previously used Vagrant environment based on 3 VMs.
-
-VirtualBox VM MAY be created by Vagrant and MUST have additional 4 virtio NICs
-each pair attached to separate private networks to simulate back-to-back
-connections. It SHOULD be 82545EM device model (otherwise can be changed in
-boostrap scripts). Example of Vagrant configuration:
-
-::
-
- Vagrant.configure(2) do |c|
- c.vm.network "private_network", type: "dhcp", auto_config: false,
- virtualbox__intnet: "port1", nic_type: "82545EM"
- c.vm.network "private_network", type: "dhcp", auto_config: false,
- virtualbox__intnet: "port2", nic_type: "82545EM"
-
- c.vm.provider :virtualbox do |v|
- v.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"]
- v.customize ["modifyvm", :id, "--nicpromisc3", "allow-all"]
- v.customize ["modifyvm", :id, "--nicpromisc4", "allow-all"]
- v.customize ["modifyvm", :id, "--nicpromisc5", "allow-all"]
-
-Vagrant VM is populated with the following NIC models:
-
-#. NIC-1: 82545EM Intel.
-#. NIC-2: 82545EM Intel.
-#. NIC-3: 82545EM Intel.
-#. NIC-4: 82545EM Intel.
-
-Containers
-----------
-
-It was agreed on :abbr:`TWS (Technical Work Stream)` call to continue with
-Ubuntu 18.04 LTS as a baseline system with OPTIONAL extend to Centos 7 and
-SuSE per demand [TWSLink]_.
-
-All :abbr:`DCR (Docker container)` images are REQUIRED to be hosted on Docker
-registry available from LF network, publicly available and trackable. For
-backup, tracking and contributing purposes all Dockerfiles (including files
-needed for building container) MUST be available and stored in [fdiocsitgerrit]_
-repository under appropriate folders. This allows the peer review process to be
-done for every change of infrastructure related to scope of this document.
-Currently only **csit-shim-dcr** and **csit-sut-dcr** containers will be stored
-and maintained under CSIT repository by CSIT contributors.
-
-At the time of designing solution described in this document the interconnection
-between [dockerhub]_ and [fdiocsitgerrit]_ for automated build purposes and
-image hosting cannot be established with the trust and respectful to
-security of FD.io project. Unless adressed, :abbr:`DCR` images will be placed in
-custom registry service [fdioregistry]_. Automated Jenkins jobs will be created
-in align of long term solution for container lifecycle and ability to build
-new version of docker images.
-
-In parallel, the effort is started to find the outsourced Docker registry
-service.
-
-Versioning
-~~~~~~~~~~
-
-As of initial version of vpp-device, we do have only single latest version of
-Docker image hosted on [dockerhub]_. This will be addressed as further
-improvement with proper semantic versioning.
-
-jenkins-slave-dcr
-~~~~~~~~~~~~~~~~~
-
-This :abbr:`DCR` acts as the Jenkins slave (known also as jenkins minion). It
-can connect over SSH protocol to TCP port 6022 of **csit-shim-dcr** and executes
-non-interactive reservation script. Nomad is responsible for scheduling this
-container execution onto specific **1-Node VPP_Device** testbed. It executes
-:abbr:`CSIT` environment including :abbr:`CSIT` framework.
-
-All software dependencies including VPP/DPDK that are not present in
-**csit-sut-dcr** container image and/or needs to be compiled prior running on
-**csit-sut-dcr** SHOULD be compiled in this container.
-
-- *Container Image Location*: Docker image at snergster/vpp-ubuntu18.
-
-- *Container Definition*: Docker file specified at [JenkinsSlaveDcrFile]_.
-
-- *Initializing*: Container is initialized from within *Consul by HashiCorp*
- and *Nomad by HashiCorp*.
-
-csit-shim-dcr
-~~~~~~~~~~~~~
-
-This :abbr:`DCR` acts as an intermediate layer running script responsible for
-orchestrating topologies under test and reservation. Responsible for managing VF
-resources and allocation to :abbr:`DUT (Device Under Test)`, :abbr:`TG
-(Traffic Generator)` containers. This MUST to be done on **csit-shim-dcr**.
-This image also acts as the generic reservation mechanics arbiter to make sure
-that only Y number of simulations are spawned on any given HW node.
-
-- *Container Image Location*: Docker image at snergster/csit-shim.
-
-- *Container Definition*: Docker file specified at [CsitShimDcrFile]_.
-
-- *Initializing*: Container is initialized from within *Consul by HashiCorp*
- and *Nomad by HashiCorp*. Required docker parameters, to be able to run
- nested containers with VF reservation system are: privileged, net=host,
- pid=host.
-
-- *Connectivity*: Over SSH only, using <host>:6022 format. Currently using
- *root* user account as primary. From the jenkins slave it will be able to
- connect via env variable, since the jenkins slave doesn't actually know what
- host its running on.
-
- ::
-
- ssh -p 6022 root@10.30.51.node
-
-csit-sut-dcr
-~~~~~~~~~~~~
-
-This :abbr:`DCR` acts as an :abbr:`SUT (System Under Test)`. Any :abbr:`DUT` or
-:abbr:`TG` application is installed there. It is RECOMMENDED to install DUT and
-all DUT dependencies via commands ``rpm -ihv`` on RedHat based OS or ``dpkg -i``
-on Debian based OS.
-
-Container is designed to be a very lightweight Docker image that only installs
-packages and execute binaries (previously built or downloaded on
-**jenkins-slave-dcr**) and contains libraries necessary to run CSIT framework
-including those required by DUT/TG.
-
-- *Container Image Location*: Docker image at snergster/csit-sut.
-
-- *Container Definition*: Docker file specified at [CsitSutDcrFile]_.
-
-- *Initializing*:
- ::
-
- docker run
- # Run the container in the background and print the new container ID.
- --detach=true
- # Give extended privileges to this container. A "privileged" container is
- # given access to all devices and able to run nested containers.
- --privileged
- # Publish all exposed ports to random ports on the host interfaces.
- --publish-all
- # Automatically remove the container when it exits.
- --rm
- # Size of /dev/shm.
- dcr_stc_params+="--shm-size 512M "
- # Override access to PCI bus by attaching a filesystem mount to the
- # container.
- dcr_stc_params+="--mount type=tmpfs,destination=/sys/bus/pci/devices "
- # Mount vfio to be able to bind to see bound interfaces. We cannot use
- # --device=/dev/vfio as this does not see newly bound interfaces.
- dcr_stc_params+="--volume /dev/vfio:/dev/vfio "
- # Mount docker.sock to be able to use docker deamon of the host.
- dcr_stc_params+="--volume /var/run/docker.sock:/var/run/docker.sock "
- # Mount /opt/boot/ where VM kernel and initrd are located.
- dcr_stc_params+="--volume /opt/boot/:/opt/boot/ "
- # Mount host hugepages for VMs.
- dcr_stc_params+="--volume /dev/hugepages/:/dev/hugepages/ "
-
- Container name is catenated from **csit-** prefix and uuid generated uniquely
- for each container instance.
-
-- *Connectivity*: Over SSH only, using <host>[:<port>] format. Currently using
- *root* user account as primary.
- ::
-
- ssh -p <port> root@10.30.51.<node>
-
-Container required to run as ``--privileged`` due to ability to create nested
-containers and have full read/write access to sysfs (for bind/unbind). Docker
-automatically pick free network port (``--publish-all``) for ability to connect
-over ssh. To be able to limit access to PCI bus, container is creating tmpfs
-mount type in PCI bus tree. CSIT reservation script is dynamically linking only
-PCI devices (NIC cards) that are reserved for particular container. This
-way it is not colliding with other containers. To make vfio work, access to
-``/dev/vfio`` must be granted.
-
-.. todo: Change default user to testuser with non-privileged and install sudo.
-
-Environment initialization
---------------------------
-
-All 1-node servers are to be managed and provisioned via the [ansiblelink]_ set
-of playbooks with *vpp-device* role. Full playbooks can be found under
-[fdiocsitansible]_ directory. This way we are able to track all configuration
-changes of physical servers in gerrit (in structured yaml format) as well as we
-are able to extend *vpp-device* to additional servers with less effort or
-re-stage servers in case of failure.
-
-SR-IOV VF initialization is done via ``systemd`` service during host system boot
-up. Service with name *csit-initialize-vfs.service* is created under systemd
-system context (``/etc/systemd/system/``). By default service is calling
-``/usr/local/bin/csit-initialize-vfs.sh`` with single parameter:
-
-- **start**: Creates maximum number of :abbr:`virtual functions (VFs)` (detected
- from ``sriov_totalvfs``) for each whitelisted PCI device.
-- **stop**: Removes all :abbr:`VFs` for all whitelisted PCI device.
-
-Service is considered active even when all of its processes exited successfully.
-Stopping service will automatically remove :abbr:`VFs`.
-
-::
-
- [Unit]
- Description=CSIT Initialize SR-IOV VFs
- After=network.target
-
- [Service]
- Type=one-shot
- RemainAfterExit=True
- ExecStart=/usr/local/bin/csit-initialize-vfs.sh start
- ExecStop=/usr/local/bin/csit-initialize-vfs.sh stop
-
- [Install]
- WantedBy=default.target
-
-Script is driven by two array variables ``pci_blacklist``/``pci_whitelist``.
-They MUST store all PCI addresses in **<domain>:<bus>:<device>.<func>** format,
-where:
-
-- **pci_blacklist**: PCI addresses to be skipped from :abbr:`VFs`
- initialization (usefull for e.g. excluding management network interfaces).
-- **pci_whitelist**: PCI addresses to be included for :abbr:`VFs`
- initialization.
-
-VF reservation
---------------
-
-During topology initialization phase of script, mutex is used to avoid multiple
-instances of script to interact with each other during resources allocation.
-Mutal exclusion ensure that no two distinct instances of script will get same
-resource list.
-
-Reservation function reads the list of all available virtual function network
-devices in system:
-
-::
-
- # Find the first ${device_count} number of available TG Linux network
- # VF device names. Only allowed VF PCI IDs are filtered.
- for netdev in ${tg_netdev[@]}
- do
- for netdev_path in $(grep -l "${pci_id}" \
- /sys/class/net/${netdev}*/device/device \
- 2> /dev/null)
- do
- if [[ ${#TG_NETDEVS[@]} -lt ${device_count} ]]; then
- tg_netdev_name=$(dirname ${netdev_path})
- tg_netdev_name=$(dirname ${tg_netdev_name})
- TG_NETDEVS+=($(basename ${tg_netdev_name}))
- else
- break
- fi
- done
- if [[ ${#TG_NETDEVS[@]} -eq ${device_count} ]]; then
- break
- fi
- done
-
-Where ``${pci_id}`` is ID of white-listed VF PCI ID. For more information please
-see [pciids]_. This act as security constraint to prevent taking other unwanted
-interfaces.
-The output list of all VF network devices is split into two lists for TG and
-SUT side of connection. First two items from each TG or SUT network devices
-list are taken to expose directly to namespace of container. This can be done
-via commands:
-
-::
-
- $ ip link set ${netdev} netns ${DCR_CPIDS[tg]}
- $ ip link set ${netdev} netns ${DCR_CPIDS[dut1]}
-
-In this stage also symbolic links to PCI devices under sysfs bus directory tree
-are created in running containers. Once VF devices are assigned to container
-namespace and PCI deivces are linked to running containers and mutex is exited.
-Selected VF network device automatically dissapear from parent container
-namespace, so another instance of script will not find device under that
-namespace.
-
-Once Docker container exits, network device is returned back into parent
-namespace and can be reused.
-
-Network traffic isolation - Intel i40evf
-----------------------------------------
-
-In a virtualized environment, on Intel(R) Server Adapters that support SR-IOV,
-the virtual function (VF) may be subject to malicious behavior. Software-
-generated layer two frames, like IEEE 802.3x (link flow control), IEEE 802.1Qbb
-(priority based flow-control), and others of this type, are not expected and
-can throttle traffic between the host and the virtual switch, reducing
-performance. To resolve this issue, configure all SR-IOV enabled ports for
-VLAN tagging. This configuration allows unexpected, and potentially malicious,
-frames to be dropped. [inteli40e]_
-
-To configure VLAN tagging for the ports on an SR-IOV enabled adapter,
-use the following command. The VLAN configuration SHOULD be done
-before the VF driver is loaded or the VM is booted. [inteli40e]_
-
-::
-
- $ ip link set dev <PF netdev id> vf <id> vlan <vlan id>
-
-For example, the following instructions will configure PF eth0 and
-the first VF on VLAN 10.
-
-::
-
- $ ip link set dev eth0 vf 0 vlan 10
-
-VLAN Tag Packet Steering allows to send all packets with a specific VLAN tag to
-a particular SR-IOV virtual function (VF). Further, this feature allows to
-designate a particular VF as trusted, and allows that trusted VF to request
-selective promiscuous mode on the Physical Function (PF). [inteli40e]_
-
-To set a VF as trusted or untrusted, enter the following command in the
-Hypervisor:
-
-::
-
- $ ip link set dev eth0 vf 1 trust [on|off]
-
-Once the VF is designated as trusted, use the following commands in the VM
-to set the VF to promiscuous mode. [inteli40e]_
-
-- For promiscuous all:
- ::
-
- $ ip link set eth2 promisc on
-
-- For promiscuous Multicast:
- ::
-
- $ ip link set eth2 allmulti on
-
-.. note::
-
- By default, the ethtool priv-flag vf-true-promisc-support is set to
- *off*, meaning that promiscuous mode for the VF will be limited. To set the
- promiscuous mode for the VF to true promiscuous and allow the VF to see
- all ingress traffic, use the following command.
- $ ethtool set-priv-flags p261p1 vf-true-promisc-support on
- The vf-true-promisc-support priv-flag does not enable promiscuous mode;
- rather, it designates which type of promiscuous mode (limited or true)
- you will get when you enable promiscuous mode using the ip link commands
- above. Note that this is a global setting that affects the entire device.
- However,the vf-true-promisc-support priv-flag is only exposed to the first
- PF of the device. The PF remains in limited promiscuous mode (unless it
- is in MFP mode) regardless of the vf-true-promisc-support setting.
- [inteli40e]_
-
-Service described earlier *csit-initialize-vfs.service* is responsible for
-assigning 802.1Q vlan tagging to each vitual function via physical function
-from list of white-listed PCI addresses by following (simplified) code.
-
-::
-
- SCRIPT_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
- source "${SCRIPT_DIR}/csit-initialize-vfs-data.sh"
-
- # Initilize whitelisted NICs with maximum number of VFs.
- pci_idx=0
- for pci_addr in ${PCI_WHITELIST[@]}; do
- if ! [[ ${PCI_BLACKLIST[*]} =~ "${pci_addr}" ]]; then
- pci_path="/sys/bus/pci/devices/${pci_addr}"
- # SR-IOV initialization
- case "${1:-start}" in
- "start" )
- sriov_totalvfs=$(< "${pci_path}"/sriov_totalvfs)
- ;;
- "stop" )
- sriov_totalvfs=0
- ;;
- esac
- echo ${sriov_totalvfs} > "${pci_path}"/sriov_numvfs
- # SR-IOV 802.1Q isolation
- case "${1:-start}" in
- "start" )
- pf=$(basename "${pci_path}"/net/*)
- for vf in $(seq "${sriov_totalvfs}"); do
- # PCI address index in array (pairing siblings).
- if [[ -n ${PF_INDICES[@]} ]]
- then
- vlan_pf_idx=${PF_INDICES[$pci_addr]}
- else
- vlan_pf_idx=$((pci_idx % (${#PCI_WHITELIST[@]}/2)))
- fi
- # 802.1Q base offset.
- vlan_bs_off=1100
- # 802.1Q PF PCI address offset.
- vlan_pf_off=$(( vlan_pf_idx * 100 + vlan_bs_off ))
- # 802.1Q VF PCI address offset.
- vlan_vf_off=$(( vlan_pf_off + vf - 1 ))
- # VLAN string.
- vlan_str="vlan ${vlan_vf_off}"
- # MAC string.
- mac5="$(printf '%x' ${pci_idx})"
- mac6="$(printf '%x' $(( vf - 1 )))"
- mac_str="mac ba:dc:0f:fe:${mac5}:${mac6}"
- # Set 802.1Q VLAN id and MAC address
- ip link set ${pf} vf $(( vf - 1)) ${mac_str} ${vlan_str}
- ip link set ${pf} vf $(( vf - 1)) trust on
- ip link set ${pf} vf $(( vf - 1)) spoof off
- done
- pci_idx=$(( pci_idx + 1 ))
- ;;
- esac
- rmmod i40evf
- modprobe i40evf
- fi
- done
-
-Assignment starts at VLAN 1100 and incrementing by 1 for each VF and by 100 for
-each white-listed PCI address up to the middle of the PCI list. Second half of
-the lists is assumed to be directly (cable) paired siblings and assigned with
-same 802.1Q VLANs as its siblings.
-
-Open tasks
-----------
-
-Security
-~~~~~~~~
-
-.. note::
-
- Switch to non-privileged containers: As of now all three container
- flavors are using privileged containers to make it working. Explore options
- to switch containers to non-privileged with explicit rather implicit
- privileges.
-
-.. note::
-
- Switch to testuser account intead of root.
-
-Maintainability
-~~~~~~~~~~~~~~~
-
-.. note::
-
- Docker image distribution: Create jenkins jobs with full pipiline of
- CI/CD for CSIT Docker images.
-
-Stability
-~~~~~~~~~
-
-.. note::
-
- Implement queueing mechanism: Currently there is no mechanics that
- would place starving jobs in queue in case of no resources available.
-
-.. note::
-
- Replace reservation script with Docker network plugin written in
- GOLANG/SH/Python - platform independent.
-
-Links
------
-
-.. [TWSLink] `TWS <https://wiki.fd.io/view/CSIT/TWS>`_
-.. [dockerhub] `Docker hub <https://hub.docker.com/>`_
-.. [fdiocsitgerrit] `FD.io/CSIT gerrit <https://gerrit.fd.io/r/CSIT>`_
-.. [fdioregistry] `FD.io registy <registry.fdiopoc.net>`_
-.. [JenkinsSlaveDcrFile] `jenkins-slave-dcr-file <https://github.com/snergfdio/multivppcache/blob/master/ubuntu18/Dockerfile>`_
-.. [CsitShimDcrFile] `csit-shim-dcr-file <https://github.com/snergfdio/multivppcache/blob/master/csit-shim/Dockerfile>`_
-.. [CsitSutDcrFile] `csit-sut-dcr-file <https://github.com/snergfdio/multivppcache/blob/master/csit-sut/Dockerfile>`_
-.. [ansiblelink] `ansible <https://www.ansible.com/>`_
-.. [fdiocsitansible] `Fd.io/CSIT ansible <https://git.fd.io/csit/tree/resources/tools/testbed-setup/ansible>`_
-.. [inteli40e] `Intel i40e <https://downloadmirror.intel.com/26370/eng/readme.txt>`_
-.. [pciids] `pci ids <http://pci-ids.ucw.cz/v2.2/pci.ids>`_
diff --git a/docs/report/vpp_device_tests/vf-2n-nic2memif.svg b/docs/report/vpp_device_tests/vf-2n-nic2memif.svg
deleted file mode 100644
index 57de9b0666..0000000000
--- a/docs/report/vpp_device_tests/vf-2n-nic2memif.svg
+++ /dev/null
@@ -1,1102 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="148mm" height="110mm" viewBox="0 0 14800 11000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="14800" height="11000"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="14" y="11" width="14771" height="10978"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="z" horiz-adv-x="927" d="M 113,1120 L 987,1120 987,952 295,147 987,147 987,0 88,0 88,168 780,973 113,973 113,1120 Z"/>
- <glyph unicode="w" horiz-adv-x="1510" d="M 86,1120 L 270,1120 500,246 729,1120 946,1120 1176,246 1405,1120 1589,1120 1296,0 1079,0 838,918 596,0 379,0 86,1120 Z"/>
- <glyph unicode="v" horiz-adv-x="1112" d="M 61,1120 L 256,1120 606,180 956,1120 1151,1120 731,0 481,0 61,1120 Z"/>
- <glyph unicode="t" horiz-adv-x="715" d="M 375,1438 L 375,1120 754,1120 754,977 375,977 375,369 C 375,278 388,219 413,193 438,167 488,154 565,154 L 754,154 754,0 565,0 C 423,0 325,27 271,80 217,133 190,229 190,369 L 190,977 55,977 55,1120 190,1120 190,1438 375,1438 Z"/>
- <glyph unicode="s" horiz-adv-x="874" d="M 907,1087 L 907,913 C 855,940 801,960 745,973 689,986 631,993 571,993 480,993 411,979 366,951 320,923 297,881 297,825 297,782 313,749 346,725 379,700 444,677 543,655 L 606,641 C 737,613 830,574 885,523 940,472 967,400 967,309 967,205 926,123 844,62 761,1 648,-29 504,-29 444,-29 382,-23 317,-12 252,0 183,18 111,41 L 111,231 C 179,196 246,169 312,152 378,134 443,125 508,125 595,125 661,140 708,170 755,199 778,241 778,295 778,345 761,383 728,410 694,437 620,462 506,487 L 442,502 C 328,526 246,563 195,613 144,662 119,730 119,817 119,922 156,1004 231,1061 306,1118 412,1147 549,1147 617,1147 681,1142 741,1132 801,1122 856,1107 907,1087 Z"/>
- <glyph unicode="r" horiz-adv-x="663" d="M 842,948 C 821,960 799,969 775,975 750,980 723,983 694,983 590,983 510,949 455,882 399,814 371,717 371,590 L 371,0 186,0 186,1120 371,1120 371,946 C 410,1014 460,1065 522,1098 584,1131 659,1147 748,1147 761,1147 775,1146 790,1145 805,1143 822,1140 841,1137 L 842,948 Z"/>
- <glyph unicode="p" horiz-adv-x="1007" d="M 371,168 L 371,-426 186,-426 186,1120 371,1120 371,950 C 410,1017 459,1066 518,1099 577,1131 647,1147 729,1147 865,1147 976,1093 1061,985 1146,877 1188,735 1188,559 1188,383 1146,241 1061,133 976,25 865,-29 729,-29 647,-29 577,-13 518,20 459,52 410,101 371,168 Z M 997,559 C 997,694 969,801 914,878 858,955 781,993 684,993 587,993 510,955 455,878 399,801 371,694 371,559 371,424 399,318 455,241 510,164 587,125 684,125 781,125 858,164 914,241 969,318 997,424 997,559 Z"/>
- <glyph unicode="o" horiz-adv-x="1033" d="M 627,991 C 528,991 450,953 393,876 336,799 307,693 307,559 307,425 336,320 393,243 450,166 528,127 627,127 725,127 803,166 860,243 917,320 946,426 946,559 946,692 917,797 860,875 803,952 725,991 627,991 Z M 627,1147 C 787,1147 913,1095 1004,991 1095,887 1141,743 1141,559 1141,376 1095,232 1004,128 913,23 787,-29 627,-29 466,-29 341,23 250,128 159,232 113,376 113,559 113,743 159,887 250,991 341,1095 466,1147 627,1147 Z"/>
- <glyph unicode="n" horiz-adv-x="954" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="m" horiz-adv-x="1642" d="M 1065,905 C 1111,988 1166,1049 1230,1088 1294,1127 1369,1147 1456,1147 1573,1147 1663,1106 1726,1025 1789,943 1821,827 1821,676 L 1821,0 1636,0 1636,670 C 1636,777 1617,857 1579,909 1541,961 1483,987 1405,987 1310,987 1234,955 1179,892 1124,829 1096,742 1096,633 L 1096,0 911,0 911,670 C 911,778 892,858 854,910 816,961 757,987 678,987 584,987 509,955 454,892 399,828 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 413,1015 463,1065 522,1098 581,1131 650,1147 731,1147 812,1147 882,1126 939,1085 996,1044 1038,984 1065,905 Z"/>
- <glyph unicode="l" horiz-adv-x="213" d="M 193,1556 L 377,1556 377,0 193,0 193,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="213" d="M 193,1120 L 377,1120 377,0 193,0 193,1120 Z M 193,1556 L 377,1556 377,1323 193,1323 193,1556 Z"/>
- <glyph unicode="h" horiz-adv-x="954" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1556 371,1556 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="g" horiz-adv-x="1006" d="M 930,573 C 930,706 903,810 848,883 793,956 715,993 616,993 517,993 441,956 386,883 331,810 303,706 303,573 303,440 331,337 386,264 441,191 517,154 616,154 715,154 793,191 848,264 903,337 930,440 930,573 Z M 1114,139 C 1114,-52 1072,-193 987,-287 902,-379 773,-426 598,-426 533,-426 472,-421 415,-412 358,-402 302,-387 248,-367 L 248,-188 C 302,-217 355,-239 408,-253 461,-267 514,-274 569,-274 690,-274 780,-242 840,-180 900,-116 930,-21 930,106 L 930,197 C 892,131 843,82 784,49 725,16 654,0 571,0 434,0 323,52 239,157 155,262 113,400 113,573 113,746 155,885 239,990 323,1095 434,1147 571,1147 654,1147 725,1131 784,1098 843,1065 892,1016 930,950 L 930,1120 1114,1120 1114,139 Z"/>
- <glyph unicode="f" horiz-adv-x="742" d="M 760,1556 L 760,1403 584,1403 C 518,1403 472,1390 447,1363 421,1336 408,1288 408,1219 L 408,1120 711,1120 711,977 408,977 408,0 223,0 223,977 47,977 47,1120 223,1120 223,1198 C 223,1323 252,1414 310,1471 368,1528 460,1556 586,1556 L 760,1556 Z"/>
- <glyph unicode="e" horiz-adv-x="1059" d="M 1151,606 L 1151,516 305,516 C 313,389 351,293 420,227 488,160 583,127 705,127 776,127 844,136 911,153 977,170 1043,196 1108,231 L 1108,57 C 1042,29 974,8 905,-7 836,-22 765,-29 694,-29 515,-29 374,23 270,127 165,231 113,372 113,549 113,732 163,878 262,986 361,1093 494,1147 662,1147 813,1147 932,1099 1020,1002 1107,905 1151,773 1151,606 Z M 967,659 C 966,760 938,841 883,901 828,961 755,991 664,991 561,991 479,962 418,904 356,846 320,764 311,659 L 967,659 Z"/>
- <glyph unicode="d" horiz-adv-x="1006" d="M 930,950 L 930,1556 1114,1556 1114,0 930,0 930,168 C 891,101 843,52 784,20 725,-13 654,-29 571,-29 436,-29 326,25 241,133 156,241 113,383 113,559 113,735 156,877 241,985 326,1093 436,1147 571,1147 654,1147 725,1131 784,1099 843,1066 891,1017 930,950 Z M 303,559 C 303,424 331,318 387,241 442,164 519,125 616,125 713,125 790,164 846,241 902,318 930,424 930,559 930,694 902,801 846,878 790,955 713,993 616,993 519,993 442,955 387,878 331,801 303,694 303,559 Z"/>
- <glyph unicode="c" horiz-adv-x="900" d="M 999,1077 L 999,905 C 947,934 895,955 843,970 790,984 737,991 684,991 565,991 472,953 406,878 340,802 307,696 307,559 307,422 340,316 406,241 472,165 565,127 684,127 737,127 790,134 843,149 895,163 947,184 999,213 L 999,43 C 948,19 895,1 840,-11 785,-23 726,-29 664,-29 495,-29 361,24 262,130 163,236 113,379 113,559 113,742 163,885 264,990 364,1095 501,1147 676,1147 733,1147 788,1141 842,1130 896,1118 948,1100 999,1077 Z"/>
- <glyph unicode="a" horiz-adv-x="980" d="M 702,563 C 553,563 450,546 393,512 336,478 307,420 307,338 307,273 329,221 372,183 415,144 473,125 547,125 649,125 731,161 793,234 854,306 885,402 885,522 L 885,563 702,563 Z M 1069,639 L 1069,0 885,0 885,170 C 843,102 791,52 728,20 665,-13 589,-29 498,-29 383,-29 292,3 225,68 157,132 123,218 123,326 123,452 165,547 250,611 334,675 460,707 627,707 L 885,707 885,725 C 885,810 857,875 802,922 746,968 668,991 567,991 503,991 441,983 380,968 319,953 261,930 205,899 L 205,1069 C 272,1095 338,1115 401,1128 464,1141 526,1147 586,1147 748,1147 869,1105 949,1021 1029,937 1069,810 1069,639 Z"/>
- <glyph unicode="T" horiz-adv-x="1297" d="M -6,1493 L 1257,1493 1257,1323 727,1323 727,0 524,0 524,1323 -6,1323 -6,1493 Z"/>
- <glyph unicode="N" horiz-adv-x="1165" d="M 201,1493 L 473,1493 1135,244 1135,1493 1331,1493 1331,0 1059,0 397,1249 397,0 201,0 201,1493 Z"/>
- <glyph unicode="I" horiz-adv-x="239" d="M 201,1493 L 403,1493 403,0 201,0 201,1493 Z"/>
- <glyph unicode="C" horiz-adv-x="1218" d="M 1319,1378 L 1319,1165 C 1251,1228 1179,1276 1102,1307 1025,1338 943,1354 856,1354 685,1354 555,1302 464,1198 373,1093 328,942 328,745 328,548 373,398 464,294 555,189 685,137 856,137 943,137 1025,153 1102,184 1179,215 1251,263 1319,326 L 1319,115 C 1248,67 1174,31 1095,7 1016,-17 932,-29 844,-29 618,-29 440,40 310,179 180,317 115,506 115,745 115,985 180,1174 310,1313 440,1451 618,1520 844,1520 933,1520 1018,1508 1097,1485 1176,1461 1250,1425 1319,1378 Z"/>
- <glyph unicode=":" horiz-adv-x="213" d="M 240,254 L 451,254 451,0 240,0 240,254 Z M 240,1059 L 451,1059 451,805 240,805 240,1059 Z"/>
- <glyph unicode="2" horiz-adv-x="980" d="M 393,170 L 1098,170 1098,0 150,0 150,170 C 227,249 331,356 464,490 596,623 679,709 713,748 778,821 823,882 849,933 874,983 887,1032 887,1081 887,1160 859,1225 804,1275 748,1325 675,1350 586,1350 523,1350 456,1339 386,1317 315,1295 240,1262 160,1217 L 160,1421 C 241,1454 317,1478 388,1495 459,1512 523,1520 582,1520 737,1520 860,1481 952,1404 1044,1327 1090,1223 1090,1094 1090,1033 1079,975 1056,920 1033,865 991,800 930,725 913,706 860,650 771,558 682,465 556,336 393,170 Z"/>
- <glyph unicode="-" horiz-adv-x="583" d="M 100,643 L 639,643 639,479 100,479 100,643 Z"/>
- <glyph unicode=" " horiz-adv-x="635"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="bold" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1271" d="M 455,573 L 51,1120 430,1120 659,788 891,1120 1270,1120 866,575 1290,0 911,0 659,354 410,0 31,0 455,573 Z"/>
- <glyph unicode="v" horiz-adv-x="1298" d="M 31,1120 L 389,1120 668,346 946,1120 1305,1120 864,0 471,0 31,1120 Z"/>
- <glyph unicode="u" horiz-adv-x="1138" d="M 160,436 L 160,1120 520,1120 520,1008 C 520,947 520,871 519,780 518,688 518,627 518,596 518,506 520,441 525,402 530,362 538,333 549,315 564,292 583,274 607,261 630,248 657,242 688,242 763,242 821,271 864,328 907,385 928,465 928,567 L 928,1120 1286,1120 1286,0 928,0 928,162 C 874,97 817,49 757,18 696,-13 630,-29 557,-29 428,-29 329,11 262,90 194,169 160,285 160,436 Z"/>
- <glyph unicode="t" horiz-adv-x="928" d="M 563,1438 L 563,1120 932,1120 932,864 563,864 563,389 C 563,337 573,302 594,284 615,265 656,256 717,256 L 901,256 901,0 594,0 C 453,0 353,30 294,89 235,148 205,248 205,389 L 205,864 27,864 27,1120 205,1120 205,1438 563,1438 Z"/>
- <glyph unicode="s" horiz-adv-x="1060" d="M 1047,1085 L 1047,813 C 970,845 896,869 825,885 754,901 686,909 623,909 555,909 505,901 472,884 439,867 422,840 422,805 422,776 435,754 460,739 485,724 529,712 594,705 L 657,696 C 840,673 964,634 1027,581 1090,528 1122,444 1122,330 1122,211 1078,121 990,61 902,1 771,-29 596,-29 522,-29 446,-23 367,-12 288,0 206,18 123,41 L 123,313 C 194,278 268,252 343,235 418,218 494,209 571,209 641,209 694,219 729,238 764,257 782,286 782,324 782,356 770,380 746,396 721,411 673,423 600,432 L 537,440 C 378,460 266,497 202,551 138,605 106,687 106,797 106,916 147,1004 228,1061 309,1118 434,1147 602,1147 668,1147 737,1142 810,1132 883,1122 962,1106 1047,1085 Z"/>
- <glyph unicode="r" horiz-adv-x="847" d="M 1004,815 C 973,830 942,841 911,848 880,855 848,858 817,858 725,858 654,829 605,770 555,711 530,626 530,516 L 530,0 172,0 172,1120 530,1120 530,936 C 576,1009 629,1062 689,1095 748,1128 820,1145 903,1145 915,1145 928,1145 942,1145 956,1145 976,1143 1003,1139 L 1004,815 Z"/>
- <glyph unicode="p" horiz-adv-x="1218" d="M 530,162 L 530,-426 172,-426 172,1120 530,1120 530,956 C 579,1021 634,1070 694,1101 754,1132 823,1147 901,1147 1039,1147 1152,1092 1241,983 1330,873 1374,732 1374,559 1374,386 1330,245 1241,136 1152,26 1039,-29 901,-29 823,-29 754,-13 694,18 634,49 579,97 530,162 Z M 768,887 C 691,887 633,859 592,803 551,746 530,665 530,559 530,453 551,372 592,316 633,259 691,231 768,231 845,231 903,259 944,315 984,371 1004,452 1004,559 1004,666 984,747 944,803 903,859 845,887 768,887 Z"/>
- <glyph unicode="o" horiz-adv-x="1245" d="M 705,891 C 626,891 565,863 524,806 482,749 461,666 461,559 461,452 482,370 524,313 565,256 626,227 705,227 783,227 843,256 884,313 925,370 946,452 946,559 946,666 925,749 884,806 843,863 783,891 705,891 Z M 705,1147 C 898,1147 1048,1095 1157,991 1265,887 1319,743 1319,559 1319,375 1265,231 1157,127 1048,23 898,-29 705,-29 512,-29 361,23 252,127 143,231 88,375 88,559 88,743 143,887 252,991 361,1095 512,1147 705,1147 Z"/>
- <glyph unicode="n" horiz-adv-x="1138" d="M 1298,682 L 1298,0 938,0 938,111 938,522 C 938,619 936,685 932,722 927,759 920,786 909,803 895,826 876,845 852,858 828,871 801,877 770,877 695,877 637,848 594,791 551,733 530,653 530,551 L 530,0 172,0 172,1120 530,1120 530,956 C 584,1021 641,1070 702,1101 763,1132 830,1147 903,1147 1032,1147 1131,1107 1198,1028 1265,949 1298,833 1298,682 Z"/>
- <glyph unicode="l" horiz-adv-x="371" d="M 172,1556 L 530,1556 530,0 172,0 172,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="371" d="M 172,1120 L 530,1120 530,0 172,0 172,1120 Z M 172,1556 L 530,1556 530,1264 172,1264 172,1556 Z"/>
- <glyph unicode="e" horiz-adv-x="1218" d="M 1290,563 L 1290,461 453,461 C 462,377 492,314 544,272 596,230 669,209 762,209 837,209 915,220 994,243 1073,265 1154,299 1237,344 L 1237,68 C 1152,36 1068,12 983,-5 898,-21 814,-29 729,-29 526,-29 369,23 257,126 144,229 88,373 88,559 88,742 143,885 254,990 364,1095 516,1147 709,1147 885,1147 1026,1094 1132,988 1237,882 1290,740 1290,563 Z M 922,682 C 922,750 902,805 863,847 823,888 771,909 707,909 638,909 581,890 538,851 495,812 468,755 457,682 L 922,682 Z"/>
- <glyph unicode="c" horiz-adv-x="1007" d="M 1077,1085 L 1077,793 C 1028,826 980,851 931,867 882,883 831,891 778,891 678,891 600,862 545,804 489,745 461,664 461,559 461,454 489,373 545,315 600,256 678,227 778,227 834,227 887,235 938,252 988,269 1034,293 1077,326 L 1077,33 C 1021,12 964,-3 907,-14 849,-24 791,-29 733,-29 531,-29 373,23 259,127 145,230 88,374 88,559 88,744 145,888 259,992 373,1095 531,1147 733,1147 792,1147 850,1142 907,1132 964,1121 1020,1106 1077,1085 Z"/>
- <glyph unicode="a" horiz-adv-x="1139" d="M 674,504 C 599,504 543,491 506,466 468,441 449,403 449,354 449,309 464,273 495,248 525,222 567,209 621,209 688,209 745,233 791,282 837,330 860,390 860,463 L 860,504 674,504 Z M 1221,639 L 1221,0 860,0 860,166 C 812,98 758,49 698,18 638,-13 565,-29 479,-29 363,-29 269,5 197,73 124,140 88,228 88,336 88,467 133,564 224,625 314,686 456,717 649,717 L 860,717 860,745 C 860,802 838,843 793,870 748,896 679,909 584,909 507,909 436,901 370,886 304,871 243,848 186,817 L 186,1090 C 263,1109 340,1123 417,1133 494,1142 572,1147 649,1147 851,1147 997,1107 1087,1028 1176,948 1221,818 1221,639 Z"/>
- <glyph unicode="_" horiz-adv-x="1033" d="M 1024,-293 L 1024,-483 0,-483 0,-293 1024,-293 Z"/>
- <glyph unicode="]" horiz-adv-x="636" d="M 760,-270 L 139,-270 139,-45 420,-45 420,1331 139,1331 139,1556 760,1556 760,-270 Z"/>
- <glyph unicode="[" horiz-adv-x="636" d="M 176,1556 L 797,1556 797,1331 516,1331 516,-45 797,-45 797,-270 176,-270 176,1556 Z"/>
- <glyph unicode="U" horiz-adv-x="1298" d="M 188,1493 L 573,1493 573,598 C 573,475 593,387 634,334 674,281 740,254 831,254 923,254 989,281 1030,334 1070,387 1090,475 1090,598 L 1090,1493 1475,1493 1475,598 C 1475,387 1422,229 1316,126 1210,23 1048,-29 831,-29 614,-29 453,23 347,126 241,229 188,387 188,598 L 188,1493 Z"/>
- <glyph unicode="T" horiz-adv-x="1403" d="M 10,1493 L 1386,1493 1386,1202 891,1202 891,0 506,0 506,1202 10,1202 10,1493 Z"/>
- <glyph unicode="S" horiz-adv-x="1192" d="M 1227,1446 L 1227,1130 C 1145,1167 1065,1194 987,1213 909,1232 835,1241 766,1241 674,1241 606,1228 562,1203 518,1178 496,1138 496,1085 496,1045 511,1014 541,992 570,969 624,950 702,934 L 866,901 C 1032,868 1150,817 1220,749 1290,681 1325,584 1325,459 1325,294 1276,172 1179,92 1081,11 932,-29 731,-29 636,-29 541,-20 446,-2 351,16 255,43 160,78 L 160,403 C 255,352 348,314 437,289 526,263 611,250 694,250 778,250 842,264 887,292 932,320 954,360 954,412 954,459 939,495 909,520 878,545 818,568 727,588 L 578,621 C 429,653 320,704 251,774 182,844 147,938 147,1057 147,1206 195,1320 291,1400 387,1480 525,1520 705,1520 787,1520 871,1514 958,1502 1045,1489 1134,1471 1227,1446 Z"/>
- <glyph unicode="N" horiz-adv-x="1351" d="M 188,1493 L 618,1493 1161,469 1161,1493 1526,1493 1526,0 1096,0 553,1024 553,0 188,0 188,1493 Z"/>
- <glyph unicode="L" horiz-adv-x="1060" d="M 188,1493 L 573,1493 573,291 1249,291 1249,0 188,0 188,1493 Z"/>
- <glyph unicode="K" horiz-adv-x="1456" d="M 188,1493 L 573,1493 573,948 1128,1493 1575,1493 856,786 1649,0 1167,0 573,588 573,0 188,0 188,1493 Z"/>
- <glyph unicode="I" horiz-adv-x="398" d="M 188,1493 L 573,1493 573,0 188,0 188,1493 Z"/>
- <glyph unicode="H" horiz-adv-x="1351" d="M 188,1493 L 573,1493 573,924 1141,924 1141,1493 1526,1493 1526,0 1141,0 1141,633 573,633 573,0 188,0 188,1493 Z"/>
- <glyph unicode="G" horiz-adv-x="1457" d="M 1530,111 C 1434,64 1334,29 1231,6 1128,-17 1021,-29 911,-29 662,-29 465,41 320,180 175,319 102,507 102,745 102,986 176,1175 324,1313 472,1451 675,1520 932,1520 1031,1520 1127,1511 1218,1492 1309,1473 1394,1446 1475,1409 L 1475,1100 C 1392,1147 1309,1183 1227,1206 1144,1229 1062,1241 979,1241 826,1241 708,1198 625,1113 542,1027 500,904 500,745 500,587 540,465 620,379 700,293 814,250 961,250 1001,250 1038,253 1073,258 1107,263 1138,270 1165,281 L 1165,571 930,571 930,829 1530,829 1530,111 Z"/>
- <glyph unicode="F" horiz-adv-x="1060" d="M 188,1493 L 1227,1493 1227,1202 573,1202 573,924 1188,924 1188,633 573,633 573,0 188,0 188,1493 Z"/>
- <glyph unicode="D" horiz-adv-x="1404" d="M 573,1202 L 573,291 711,291 C 868,291 989,330 1072,408 1155,486 1196,599 1196,748 1196,896 1155,1009 1072,1086 989,1163 869,1202 711,1202 L 573,1202 Z M 188,1493 L 594,1493 C 821,1493 990,1477 1101,1445 1212,1412 1307,1357 1386,1280 1456,1213 1508,1135 1542,1047 1576,959 1593,859 1593,748 1593,635 1576,535 1542,447 1508,358 1456,280 1386,213 1306,136 1210,81 1098,49 986,16 818,0 594,0 L 188,0 188,1493 Z"/>
- <glyph unicode="C" horiz-adv-x="1298" d="M 1372,82 C 1301,45 1228,18 1151,-1 1074,-20 994,-29 911,-29 662,-29 465,41 320,180 175,319 102,507 102,745 102,984 175,1173 320,1312 465,1451 662,1520 911,1520 994,1520 1074,1511 1151,1492 1228,1473 1301,1446 1372,1409 L 1372,1100 C 1301,1149 1230,1184 1161,1207 1092,1230 1019,1241 942,1241 805,1241 697,1197 618,1109 539,1021 500,900 500,745 500,591 539,470 618,382 697,294 805,250 942,250 1019,250 1092,261 1161,284 1230,307 1301,342 1372,391 L 1372,82 Z"/>
- <glyph unicode="7" horiz-adv-x="1139" d="M 137,1493 L 1262,1493 1262,1276 680,0 305,0 856,1210 137,1210 137,1493 Z"/>
- <glyph unicode="2" horiz-adv-x="1086" d="M 590,283 L 1247,283 1247,0 162,0 162,283 707,764 C 756,808 792,851 815,893 838,935 850,979 850,1024 850,1094 827,1150 780,1193 733,1236 670,1257 592,1257 532,1257 466,1244 395,1219 324,1193 247,1155 166,1104 L 166,1432 C 253,1461 338,1483 423,1498 508,1513 591,1520 672,1520 851,1520 990,1481 1089,1402 1188,1323 1237,1214 1237,1073 1237,992 1216,916 1174,846 1132,775 1044,681 909,563 L 590,283 Z"/>
- <glyph unicode="1" horiz-adv-x="1085" d="M 240,266 L 580,266 580,1231 231,1159 231,1421 578,1493 944,1493 944,266 1284,266 1284,0 240,0 240,266 Z"/>
- <glyph unicode="0" horiz-adv-x="1245" d="M 942,748 C 942,935 925,1066 890,1143 855,1219 796,1257 713,1257 630,1257 571,1219 536,1143 501,1066 483,935 483,748 483,559 501,426 536,349 571,272 630,233 713,233 795,233 854,272 889,349 924,426 942,559 942,748 Z M 1327,745 C 1327,498 1274,307 1167,173 1060,38 909,-29 713,-29 516,-29 365,38 258,173 151,307 98,498 98,745 98,993 151,1184 258,1319 365,1453 516,1520 713,1520 909,1520 1060,1453 1167,1319 1274,1184 1327,993 1327,745 Z"/>
- <glyph unicode="." horiz-adv-x="398" d="M 209,387 L 569,387 569,0 209,0 209,387 Z"/>
- <glyph unicode="-" horiz-adv-x="636" d="M 111,735 L 739,735 739,444 111,444 111,735 Z"/>
- <glyph unicode=" " horiz-adv-x="714"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_3" horiz-adv-x="2048">
- <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1006" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
- <glyph unicode="u" horiz-adv-x="874" d="M 314,1082 L 314,396 C 314,325 321,269 335,230 349,191 371,162 402,145 433,128 478,119 537,119 624,119 692,149 742,208 792,267 817,350 817,455 L 817,1082 997,1082 997,231 C 997,105 999,28 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 826,132 825,185 L 822,185 C 781,110 733,58 679,27 624,-4 557,-20 476,-20 357,-20 271,10 216,69 161,128 133,225 133,361 L 133,1082 314,1082 Z"/>
- <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 495,-8 434,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 474,127 509,132 554,141 L 554,8 Z"/>
- <glyph unicode="s" horiz-adv-x="901" d="M 950,299 C 950,197 912,118 835,63 758,8 650,-20 511,-20 376,-20 273,2 200,47 127,91 79,160 57,254 L 216,285 C 231,227 263,185 311,158 359,131 426,117 511,117 602,117 669,131 712,159 754,187 775,229 775,285 775,328 760,362 731,389 702,416 654,438 589,455 L 460,489 C 357,516 283,542 240,568 196,593 162,624 137,661 112,698 100,743 100,796 100,895 135,970 206,1022 276,1073 378,1099 513,1099 632,1099 727,1078 798,1036 868,994 912,927 931,834 L 769,814 C 759,862 732,899 689,925 645,950 586,963 513,963 432,963 372,951 333,926 294,901 275,864 275,814 275,783 283,758 299,738 315,718 339,701 370,687 401,673 467,654 568,629 663,605 732,583 774,563 816,542 849,520 874,495 898,470 917,442 930,410 943,377 950,340 950,299 Z"/>
- <glyph unicode="r" horiz-adv-x="530" d="M 142,0 L 142,830 C 142,906 140,990 136,1082 L 306,1082 C 311,959 314,886 314,861 L 318,861 C 347,954 380,1017 417,1051 454,1085 507,1102 575,1102 599,1102 623,1099 648,1092 L 648,927 C 624,934 592,937 552,937 477,937 420,905 381,841 342,776 322,684 322,564 L 322,0 142,0 Z"/>
- <glyph unicode="q" horiz-adv-x="927" d="M 484,-20 C 347,-20 246,26 182,119 118,212 86,351 86,536 86,913 219,1102 484,1102 566,1102 634,1088 687,1059 740,1030 785,981 821,914 L 823,914 C 823,934 824,969 827,1018 830,1067 832,1093 835,1096 L 1008,1096 C 1003,1057 1001,958 1001,801 L 1001,-425 821,-425 821,14 825,178 823,178 C 787,107 743,56 690,26 637,-5 569,-20 484,-20 Z M 821,554 C 821,695 798,799 752,867 706,935 633,969 532,969 441,969 375,935 335,867 295,799 275,691 275,542 275,391 295,282 336,217 376,152 441,119 530,119 632,119 706,155 752,228 798,301 821,409 821,554 Z"/>
- <glyph unicode="p" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 488,-20 376,43 319,168 L 314,168 C 317,163 318,106 318,-2 L 318,-425 138,-425 138,861 C 138,972 136,1046 132,1082 L 306,1082 C 307,1079 308,1070 309,1054 310,1037 312,1012 314,978 315,944 316,921 316,908 L 320,908 C 352,975 394,1024 447,1055 500,1086 569,1101 655,1101 788,1101 888,1056 954,967 1020,878 1053,737 1053,546 Z M 864,542 C 864,693 844,800 803,865 762,930 698,962 609,962 538,962 482,947 442,917 401,887 371,840 350,777 329,713 318,630 318,528 318,386 341,281 386,214 431,147 505,113 607,113 696,113 762,146 803,212 844,277 864,387 864,542 Z"/>
- <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 407,-20 288,28 207,125 126,221 86,360 86,542 86,915 248,1102 571,1102 736,1102 858,1057 936,966 1014,875 1053,733 1053,542 Z M 864,542 C 864,691 842,800 798,868 753,935 679,969 574,969 469,969 393,935 346,866 299,797 275,689 275,542 275,399 298,292 345,221 391,149 464,113 563,113 671,113 748,148 795,217 841,286 864,395 864,542 Z"/>
- <glyph unicode="n" horiz-adv-x="874" d="M 825,0 L 825,686 C 825,757 818,813 804,852 790,891 768,920 737,937 706,954 661,963 602,963 515,963 447,933 397,874 347,815 322,732 322,627 L 322,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 358,972 406,1025 461,1056 515,1087 582,1102 663,1102 782,1102 869,1073 924,1014 979,955 1006,857 1006,721 L 1006,0 825,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1457" d="M 768,0 L 768,686 C 768,791 754,863 725,903 696,943 645,963 570,963 493,963 433,934 388,875 343,816 321,734 321,627 L 321,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 356,974 400,1027 450,1057 500,1087 561,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 967,970 1013,1022 1066,1054 1119,1086 1183,1102 1258,1102 1367,1102 1447,1072 1497,1013 1546,954 1571,856 1571,721 L 1571,0 1393,0 1393,686 C 1393,791 1379,863 1350,903 1321,943 1270,963 1195,963 1116,963 1055,934 1012,876 968,817 946,734 946,627 L 946,0 768,0 Z"/>
- <glyph unicode="l" horiz-adv-x="187" d="M 138,0 L 138,1484 318,1484 318,0 138,0 Z"/>
- <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/>
- <glyph unicode="h" horiz-adv-x="874" d="M 317,897 C 356,968 402,1020 457,1053 511,1086 580,1102 663,1102 780,1102 867,1073 923,1015 978,956 1006,858 1006,721 L 1006,0 825,0 825,686 C 825,762 818,819 804,856 790,893 767,920 735,937 703,954 659,963 602,963 517,963 450,934 399,875 348,816 322,737 322,638 L 322,0 142,0 142,1484 322,1484 322,1098 C 322,1057 321,1015 319,972 316,929 315,904 314,897 L 317,897 Z"/>
- <glyph unicode="g" horiz-adv-x="927" d="M 548,-425 C 430,-425 336,-402 266,-356 196,-309 151,-243 131,-158 L 312,-132 C 324,-182 351,-220 392,-248 433,-274 486,-288 553,-288 732,-288 822,-183 822,27 L 822,201 820,201 C 786,132 739,80 680,45 621,10 551,-8 472,-8 339,-8 242,36 180,124 117,212 86,350 86,539 86,730 120,872 187,963 254,1054 355,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,917 825,952 828,1001 831,1050 833,1077 836,1082 L 1007,1082 C 1003,1046 1001,971 1001,858 L 1001,31 C 1001,-273 850,-425 548,-425 Z M 822,541 C 822,629 810,705 786,769 762,832 728,881 685,915 641,948 591,965 536,965 444,965 377,932 335,865 293,798 272,690 272,541 272,393 292,287 331,222 370,157 438,125 533,125 590,125 640,142 684,175 728,208 762,256 786,319 810,381 822,455 822,541 Z"/>
- <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,379 302,283 353,216 404,149 479,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 954,65 807,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,727 129,864 213,959 296,1054 416,1102 571,1102 889,1102 1048,910 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 481,969 412,940 361,882 310,823 282,743 278,641 L 862,641 Z"/>
- <glyph unicode="d" horiz-adv-x="927" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 821,1035 821,1484 1001,1484 1001,223 C 1001,110 1003,36 1007,0 L 835,0 C 833,11 831,35 829,74 826,113 825,146 825,174 L 821,174 Z M 275,542 C 275,391 295,282 335,217 375,152 440,119 530,119 632,119 706,154 752,225 798,296 821,405 821,554 821,697 798,802 752,869 706,936 633,969 532,969 441,969 376,936 336,869 295,802 275,693 275,542 Z"/>
- <glyph unicode="c" horiz-adv-x="901" d="M 275,546 C 275,402 298,295 343,226 388,157 457,122 548,122 612,122 666,139 709,174 752,209 778,262 788,334 L 970,322 C 956,218 912,135 837,73 762,11 668,-20 553,-20 402,-20 286,28 207,124 127,219 87,359 87,542 87,724 127,863 207,959 287,1054 402,1102 551,1102 662,1102 754,1073 827,1016 900,959 945,880 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 451,961 382,929 339,866 296,803 275,696 275,546 Z"/>
- <glyph unicode="b" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 573,-20 505,-5 451,25 396,54 352,102 318,168 L 316,168 C 316,147 315,116 312,74 309,31 307,7 306,0 L 132,0 C 136,36 138,110 138,223 L 138,1484 318,1484 318,1061 C 318,1018 317,967 314,908 L 318,908 C 351,977 396,1027 451,1057 506,1087 574,1102 655,1102 792,1102 892,1056 957,964 1021,872 1053,733 1053,546 Z M 864,540 C 864,691 844,800 804,865 764,930 699,963 609,963 508,963 434,928 388,859 341,790 318,680 318,529 318,387 341,282 386,215 431,147 505,113 607,113 698,113 763,147 804,214 844,281 864,389 864,540 Z"/>
- <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,123 87,202 87,302 87,414 124,500 198,560 271,620 390,652 554,656 L 797,660 797,719 C 797,807 778,870 741,908 704,946 645,965 565,965 484,965 426,951 389,924 352,897 330,853 323,793 L 135,810 C 166,1005 310,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1097,111 1117,113 1139,118 L 1139,6 C 1094,-5 1047,-10 1000,-10 933,-10 885,8 855,43 824,78 807,132 803,207 L 797,207 C 751,124 698,66 637,32 576,-3 501,-20 414,-20 Z M 455,115 C 521,115 580,130 631,160 682,190 723,231 753,284 782,336 797,390 797,445 L 797,534 600,530 C 515,529 451,520 408,504 364,488 330,463 307,430 284,397 272,353 272,299 272,240 288,195 320,163 351,131 396,115 455,115 Z"/>
- <glyph unicode="]" horiz-adv-x="424" d="M 16,-425 L 16,-296 249,-296 249,1355 16,1355 16,1484 423,1484 423,-425 16,-425 Z"/>
- <glyph unicode="[" horiz-adv-x="425" d="M 146,-425 L 146,1484 553,1484 553,1355 320,1355 320,-296 553,-296 553,-425 146,-425 Z"/>
- <glyph unicode="W" horiz-adv-x="1932" d="M 1511,0 L 1283,0 1039,895 C 1023,951 1000,1051 969,1196 952,1119 937,1054 925,1002 913,950 822,616 652,0 L 424,0 9,1409 208,1409 461,514 C 491,402 519,287 544,168 560,241 579,321 600,408 621,495 713,828 877,1409 L 1060,1409 1305,532 C 1342,389 1372,267 1393,168 L 1402,203 C 1420,280 1435,342 1446,391 1457,439 1551,778 1727,1409 L 1926,1409 1511,0 Z"/>
- <glyph unicode="V" horiz-adv-x="1377" d="M 782,0 L 584,0 9,1409 210,1409 600,417 684,168 768,417 1156,1409 1357,1409 782,0 Z"/>
- <glyph unicode="T" horiz-adv-x="1192" d="M 720,1253 L 720,0 530,0 530,1253 46,1253 46,1409 1204,1409 1204,1253 720,1253 Z"/>
- <glyph unicode="N" horiz-adv-x="1165" d="M 1082,0 L 328,1200 333,1103 338,936 338,0 168,0 168,1409 390,1409 1152,201 C 1144,332 1140,426 1140,485 L 1140,1409 1312,1409 1312,0 1082,0 Z"/>
- <glyph unicode="L" horiz-adv-x="927" d="M 168,0 L 168,1409 359,1409 359,156 1071,156 1071,0 168,0 Z"/>
- <glyph unicode="I" horiz-adv-x="213" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
- <glyph unicode="G" horiz-adv-x="1377" d="M 103,711 C 103,940 164,1117 287,1242 410,1367 582,1430 804,1430 960,1430 1087,1404 1184,1351 1281,1298 1356,1214 1409,1098 L 1227,1044 C 1187,1124 1132,1182 1062,1219 991,1256 904,1274 799,1274 636,1274 512,1225 426,1127 340,1028 297,890 297,711 297,533 343,393 434,290 525,187 652,135 813,135 905,135 991,149 1071,177 1150,205 1215,243 1264,291 L 1264,545 843,545 843,705 1440,705 1440,219 C 1365,143 1274,84 1166,43 1057,1 940,-20 813,-20 666,-20 539,9 432,68 325,127 244,211 188,322 131,432 103,562 103,711 Z"/>
- <glyph unicode="F" horiz-adv-x="1006" d="M 359,1253 L 359,729 1145,729 1145,571 359,571 359,0 168,0 168,1409 1169,1409 1169,1253 359,1253 Z"/>
- <glyph unicode="E" horiz-adv-x="1138" d="M 168,0 L 168,1409 1237,1409 1237,1253 359,1253 359,801 1177,801 1177,647 359,647 359,156 1278,156 1278,0 168,0 Z"/>
- <glyph unicode="D" horiz-adv-x="1218" d="M 1381,719 C 1381,574 1353,447 1296,338 1239,229 1159,145 1055,87 951,29 831,0 695,0 L 168,0 168,1409 634,1409 C 873,1409 1057,1349 1187,1230 1316,1110 1381,940 1381,719 Z M 1189,719 C 1189,894 1141,1027 1046,1119 950,1210 811,1256 630,1256 L 359,1256 359,153 673,153 C 776,153 867,176 946,221 1024,266 1084,332 1126,417 1168,502 1189,603 1189,719 Z"/>
- <glyph unicode="A" horiz-adv-x="1377" d="M 1167,0 L 1006,412 364,412 202,0 4,0 579,1409 796,1409 1362,0 1167,0 Z M 685,1265 L 676,1237 C 659,1182 635,1111 602,1024 L 422,561 949,561 768,1026 C 749,1072 731,1124 712,1182 L 685,1265 Z"/>
- <glyph unicode=":" horiz-adv-x="213" d="M 187,875 L 187,1082 382,1082 382,875 187,875 Z M 187,0 L 187,207 382,207 382,0 187,0 Z"/>
- <glyph unicode="3" horiz-adv-x="1006" d="M 1049,389 C 1049,259 1008,158 925,87 842,16 724,-20 571,-20 428,-20 315,12 230,77 145,141 94,236 78,362 L 264,379 C 288,212 390,129 571,129 662,129 733,151 785,196 836,241 862,307 862,395 862,472 833,532 774,575 715,618 629,639 518,639 L 416,639 416,795 514,795 C 613,795 689,817 744,860 798,903 825,962 825,1038 825,1113 803,1173 759,1217 714,1260 648,1282 561,1282 482,1282 418,1262 369,1221 320,1180 291,1123 283,1049 L 102,1063 C 115,1178 163,1268 246,1333 328,1398 434,1430 563,1430 704,1430 814,1397 893,1332 971,1266 1010,1174 1010,1057 1010,967 985,894 935,838 884,781 811,743 715,723 L 715,719 C 820,708 902,672 961,613 1020,554 1049,479 1049,389 Z"/>
- <glyph unicode="2" horiz-adv-x="954" d="M 103,0 L 103,127 C 137,205 179,274 228,334 277,393 328,447 382,496 436,544 490,589 543,630 596,671 643,713 686,754 729,795 763,839 790,884 816,929 829,981 829,1038 829,1115 806,1175 761,1218 716,1261 653,1282 572,1282 495,1282 432,1261 383,1220 333,1178 304,1119 295,1044 L 111,1061 C 124,1174 172,1263 255,1330 337,1397 443,1430 572,1430 714,1430 823,1397 900,1330 976,1263 1014,1167 1014,1044 1014,989 1002,935 977,881 952,827 914,773 865,719 816,665 721,581 582,468 505,405 444,349 399,299 354,248 321,200 301,153 L 1036,153 1036,0 103,0 Z"/>
- <glyph unicode="1" horiz-adv-x="927" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
- <glyph unicode="0" horiz-adv-x="980" d="M 1059,705 C 1059,470 1018,290 935,166 852,42 729,-20 567,-20 405,-20 283,42 202,165 121,288 80,468 80,705 80,947 120,1128 199,1249 278,1370 402,1430 573,1430 739,1430 862,1369 941,1247 1020,1125 1059,944 1059,705 Z M 876,705 C 876,908 853,1056 806,1147 759,1238 681,1284 573,1284 462,1284 383,1239 335,1149 286,1059 262,911 262,705 262,505 287,359 336,266 385,173 462,127 569,127 675,127 753,174 802,269 851,364 876,509 876,705 Z"/>
- <glyph unicode="-" horiz-adv-x="531" d="M 91,464 L 91,624 591,624 591,464 91,464 Z"/>
- <glyph unicode=" " horiz-adv-x="556"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="Group">
- <g class="com.sun.star.drawing.TextShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="3573" y="9634" width="5778" height="1806"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="3823" y="9950"><tspan fill="rgb(0,0,0)" stroke="none">Ethernet Wire Encapsulation: </tspan><tspan fill="rgb(0,0,0)" stroke="none">dot1q</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="586" y="856" width="13649" height="9754"/>
- <path fill="none" stroke="rgb(178,178,178)" stroke-width="28" stroke-linejoin="miter" d="M 7410,10595 L 600,10595 600,870 14220,870 14220,10595 7410,10595 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="804" y="424" width="13124" height="690"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 7366,1099 L 818,1099 818,438 13913,438 13913,1099 7366,1099 Z"/>
- <path fill="none" stroke="rgb(178,178,178)" stroke-width="28" stroke-linejoin="miter" d="M 7366,1099 L 818,1099 818,438 13913,438 13913,1099 7366,1099 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="1073" y="884"><tspan fill="rgb(0,0,0)" stroke="none">2-Node Containerized Topologies: vfNIC-to-memif switching</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="1374" y="1856" width="11849" height="6972"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 7298,8809 L 1392,8809 1392,1874 13204,1874 13204,8809 7298,8809 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7298,8809 L 1392,8809 1392,1874 13204,1874 13204,8809 7298,8809 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="5887" y="2422"><tspan fill="rgb(0,0,0)" stroke="none">Host Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="1681" y="3023" width="11312" height="5197"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 7337,8201 L 1699,8201 1699,3041 12974,3041 12974,8201 7337,8201 Z"/>
- <path fill="none" stroke="rgb(188,140,0)" stroke-width="35" stroke-linejoin="miter" d="M 7337,8201 L 1699,8201 1699,3041 12974,3041 12974,8201 7337,8201 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="1652" y="3059" width="11033" height="4468"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 7168,7508 L 1670,7508 1670,3077 12666,3077 12666,7508 7168,7508 Z"/>
- <path fill="none" stroke="rgb(112,173,71)" stroke-width="35" stroke-linejoin="miter" d="M 7168,7508 L 1670,7508 1670,3077 12666,3077 12666,7508 7168,7508 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="3927" y="3487" width="2528" height="1862"/>
- <g>
- <defs>
- <linearGradient id="gradient1" x1="5190" y1="3505" x2="5190" y2="5330" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient1)" d="M 5191,5330 L 3945,5330 3945,3505 6436,3505 6436,5330 5191,5330 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="35" stroke-linejoin="miter" d="M 5191,5330 L 3945,5330 3945,3505 6436,3505 6436,5330 5191,5330 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="4222" y="3853"><tspan fill="rgb(0,0,0)" stroke="none">cSUT[1.1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="3948" y="5511" width="2527" height="1861"/>
- <g>
- <defs>
- <linearGradient id="gradient2" x1="5211" y1="5529" x2="5211" y2="7353" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient2)" d="M 5211,7353 L 3966,7353 3966,5529 6456,5529 6456,7353 5211,7353 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="35" stroke-linejoin="miter" d="M 5211,7353 L 3966,7353 3966,5529 6456,5529 6456,7353 5211,7353 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="4369" y="5877"><tspan fill="rgb(0,0,0)" stroke="none">cTG[1.2]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="1931" y="3273" width="1557" height="4468"/>
- <path fill="rgb(255,192,0)" stroke="none" d="M 1949,5507 L 1949,3291 3469,3291 3469,7722 1949,7722 1949,5507 Z"/>
- <path fill="none" stroke="rgb(188,142,0)" stroke-width="35" stroke-linejoin="miter" d="M 1949,5507 L 1949,3291 3469,3291 3469,7722 1949,7722 1949,5507 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="1806" y="4923" width="1885" height="1348"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="2213" y="5527"><tspan fill="rgb(0,0,0)" stroke="none">Linux</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="2107" y="5880"><tspan fill="rgb(0,0,0)" stroke="none">Kernel</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="1844" y="7966" width="2274" height="457"/>
- <path fill="rgb(255,242,204)" stroke="none" d="M 1862,8071 L 1862,8071 1862,8066 1862,8062 1863,8057 1864,8053 1865,8048 1866,8044 1868,8040 1870,8036 1871,8032 1874,8027 1876,8024 1879,8020 1881,8016 1884,8013 1887,8009 1891,8006 1894,8003 1898,8001 1902,7998 1906,7996 1910,7993 1914,7992 1918,7990 1922,7988 1926,7987 1931,7986 1935,7985 1940,7984 1944,7984 1949,7984 4011,7984 4011,7984 4016,7984 4020,7984 4025,7985 4029,7986 4034,7987 4038,7988 4042,7990 4046,7992 4050,7993 4055,7996 4058,7998 4062,8001 4066,8003 4069,8006 4073,8009 4076,8013 4079,8016 4081,8020 4084,8024 4086,8028 4089,8032 4090,8036 4092,8040 4094,8044 4095,8048 4096,8053 4097,8057 4098,8062 4098,8066 4098,8071 4099,8316 4099,8316 4099,8321 4099,8325 4098,8330 4097,8334 4096,8339 4095,8343 4093,8347 4091,8351 4090,8355 4087,8359 4085,8363 4082,8367 4080,8371 4077,8374 4074,8378 4070,8381 4067,8384 4063,8386 4059,8389 4056,8391 4051,8394 4047,8395 4043,8397 4039,8399 4035,8400 4030,8401 4026,8402 4021,8403 4017,8403 4012,8403 1949,8404 1949,8404 1944,8404 1940,8404 1935,8403 1931,8402 1926,8401 1922,8400 1918,8398 1914,8396 1910,8395 1906,8392 1902,8390 1898,8387 1894,8385 1891,8382 1887,8379 1884,8375 1881,8372 1879,8368 1876,8364 1874,8361 1871,8356 1870,8352 1868,8348 1866,8344 1865,8340 1864,8335 1863,8331 1862,8326 1862,8322 1862,8317 1862,8071 Z M 1862,7984 L 1862,7984 Z M 4099,8404 L 4099,8404 Z"/>
- <path fill="none" stroke="rgb(188,140,0)" stroke-width="35" stroke-linejoin="miter" d="M 1862,8071 L 1862,8071 1862,8066 1862,8062 1863,8057 1864,8053 1865,8048 1866,8044 1868,8040 1870,8036 1871,8032 1874,8027 1876,8024 1879,8020 1881,8016 1884,8013 1887,8009 1891,8006 1894,8003 1898,8001 1902,7998 1906,7996 1910,7993 1914,7992 1918,7990 1922,7988 1926,7987 1931,7986 1935,7985 1940,7984 1944,7984 1949,7984 4011,7984 4011,7984 4016,7984 4020,7984 4025,7985 4029,7986 4034,7987 4038,7988 4042,7990 4046,7992 4050,7993 4055,7996 4058,7998 4062,8001 4066,8003 4069,8006 4073,8009 4076,8013 4079,8016 4081,8020 4084,8024 4086,8028 4089,8032 4090,8036 4092,8040 4094,8044 4095,8048 4096,8053 4097,8057 4098,8062 4098,8066 4098,8071 4099,8316 4099,8316 4099,8321 4099,8325 4098,8330 4097,8334 4096,8339 4095,8343 4093,8347 4091,8351 4090,8355 4087,8359 4085,8363 4082,8367 4080,8371 4077,8374 4074,8378 4070,8381 4067,8384 4063,8386 4059,8389 4056,8391 4051,8394 4047,8395 4043,8397 4039,8399 4035,8400 4030,8401 4026,8402 4021,8403 4017,8403 4012,8403 1949,8404 1949,8404 1944,8404 1940,8404 1935,8403 1931,8402 1926,8401 1922,8400 1918,8398 1914,8396 1910,8395 1906,8392 1902,8390 1898,8387 1894,8385 1891,8382 1887,8379 1884,8375 1881,8372 1879,8368 1876,8364 1874,8361 1871,8356 1870,8352 1868,8348 1866,8344 1865,8340 1864,8335 1863,8331 1862,8326 1862,8322 1862,8317 1862,8071 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="2119" y="8314"><tspan fill="rgb(0,0,0)" stroke="none">Linux-Host</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="4169" y="7553" width="2471" height="452"/>
- <path fill="rgb(226,240,217)" stroke="none" d="M 4187,7670 L 4187,7670 4187,7665 4188,7660 4188,7655 4189,7649 4190,7644 4192,7639 4194,7635 4196,7630 4198,7625 4200,7620 4203,7616 4206,7612 4209,7608 4212,7604 4216,7600 4220,7596 4224,7593 4228,7590 4232,7587 4237,7584 4241,7582 4246,7580 4251,7578 4255,7576 4260,7574 4265,7573 4271,7572 4276,7572 4281,7571 4286,7571 6521,7571 6521,7571 6526,7571 6531,7572 6536,7572 6542,7573 6547,7574 6552,7576 6556,7578 6561,7580 6566,7582 6571,7584 6575,7587 6579,7590 6583,7593 6587,7596 6591,7600 6595,7604 6598,7608 6601,7612 6604,7616 6607,7621 6609,7625 6611,7630 6613,7635 6615,7639 6617,7644 6618,7649 6619,7655 6619,7660 6620,7665 6620,7670 6621,7886 6620,7886 6620,7891 6619,7896 6619,7901 6618,7906 6617,7911 6615,7916 6614,7921 6612,7926 6609,7931 6607,7935 6604,7940 6601,7944 6598,7948 6595,7952 6591,7956 6588,7959 6584,7963 6580,7966 6575,7969 6571,7971 6567,7974 6562,7976 6557,7978 6552,7980 6547,7981 6542,7983 6537,7984 6532,7984 6527,7985 6522,7985 4286,7986 4286,7985 4281,7985 4276,7984 4271,7984 4266,7983 4261,7982 4256,7980 4251,7979 4246,7977 4241,7974 4237,7972 4232,7969 4228,7966 4224,7963 4220,7960 4216,7956 4213,7953 4209,7949 4206,7945 4203,7940 4201,7936 4198,7932 4196,7927 4194,7922 4192,7917 4191,7912 4189,7907 4188,7902 4188,7897 4187,7892 4187,7887 4187,7670 Z M 4187,7571 L 4187,7571 Z M 6621,7986 L 6621,7986 Z"/>
- <path fill="none" stroke="rgb(112,173,71)" stroke-width="35" stroke-linejoin="miter" d="M 4187,7670 L 4187,7670 4187,7665 4188,7660 4188,7655 4189,7649 4190,7644 4192,7639 4194,7635 4196,7630 4198,7625 4200,7620 4203,7616 4206,7612 4209,7608 4212,7604 4216,7600 4220,7596 4224,7593 4228,7590 4232,7587 4237,7584 4241,7582 4246,7580 4251,7578 4255,7576 4260,7574 4265,7573 4271,7572 4276,7572 4281,7571 4286,7571 6521,7571 6521,7571 6526,7571 6531,7572 6536,7572 6542,7573 6547,7574 6552,7576 6556,7578 6561,7580 6566,7582 6571,7584 6575,7587 6579,7590 6583,7593 6587,7596 6591,7600 6595,7604 6598,7608 6601,7612 6604,7616 6607,7621 6609,7625 6611,7630 6613,7635 6615,7639 6617,7644 6618,7649 6619,7655 6619,7660 6620,7665 6620,7670 6621,7886 6620,7886 6620,7891 6619,7896 6619,7901 6618,7906 6617,7911 6615,7916 6614,7921 6612,7926 6609,7931 6607,7935 6604,7940 6601,7944 6598,7948 6595,7952 6591,7956 6588,7959 6584,7963 6580,7966 6575,7969 6571,7971 6567,7974 6562,7976 6557,7978 6552,7980 6547,7981 6542,7983 6537,7984 6532,7984 6527,7985 6522,7985 4286,7986 4286,7985 4281,7985 4276,7984 4271,7984 4266,7983 4261,7982 4256,7980 4251,7979 4246,7977 4241,7974 4237,7972 4232,7969 4228,7966 4224,7963 4220,7960 4216,7956 4213,7953 4209,7949 4206,7945 4203,7940 4201,7936 4198,7932 4196,7927 4194,7922 4192,7917 4191,7912 4189,7907 4188,7902 4188,7897 4187,7892 4187,7887 4187,7670 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="4502" y="7899"><tspan fill="rgb(0,0,0)" stroke="none">User-Space</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="4178" y="4284" width="2062" height="854"/>
- <path fill="rgb(112,173,71)" stroke="none" d="M 5209,5119 L 4196,5119 4196,4302 6221,4302 6221,5119 5209,5119 Z"/>
- <path fill="none" stroke="rgb(82,127,52)" stroke-width="35" stroke-linejoin="miter" d="M 5209,5119 L 4196,5119 4196,4302 6221,4302 6221,5119 5209,5119 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="4878" y="4831"><tspan fill="rgb(255,255,255)" stroke="none">DUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="4175" y="6306" width="2062" height="855"/>
- <path fill="rgb(112,173,71)" stroke="none" d="M 5206,7142 L 4193,7142 4193,6324 6218,6324 6218,7142 5206,7142 Z"/>
- <path fill="none" stroke="rgb(82,127,52)" stroke-width="35" stroke-linejoin="miter" d="M 5206,7142 L 4193,7142 4193,6324 6218,6324 6218,7142 5206,7142 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="4991" y="6854"><tspan fill="rgb(255,255,255)" stroke="none">TG</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="4217" y="8314" width="8781" height="1345"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 8607,9649 L 4226,9649 4226,8323 12988,8323 12988,9649 8607,9649 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8607,9649 L 4226,9649 4226,8323 12988,8323 12988,9649 8607,9649 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="11119" y="9093"><tspan fill="rgb(0,0,0)" stroke="none">NIC x710</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="7564" y="9700" width="1689" height="542"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 7582,9718 L 7582,10223 9234,10223 9234,9719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="6279" y="4532" width="2824" height="4593"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 9084,9106 L 9084,4550 6297,4550"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="6269" y="6612" width="1185" height="2514"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="35" stroke-linejoin="round" d="M 7435,9107 L 7435,6630 6287,6630"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="6270" y="6912" width="882" height="2213"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="35" stroke-linejoin="round" d="M 7133,9106 L 7133,6930 6288,6930"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="7563" y="9290" width="38" height="312"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 7582,9583 L 7582,9453 7581,9453 7581,9308"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="8550" y="9073" width="1362" height="254"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 9893,9091 L 9893,9091 9893,9102 9893,9114 9892,9125 9891,9136 9890,9147 9889,9158 9887,9168 9885,9179 9884,9189 9881,9199 9879,9209 9876,9218 9874,9227 9871,9236 9868,9244 9864,9252 9861,9259 9857,9266 9853,9272 9849,9278 9845,9283 9841,9288 9837,9293 9833,9296 9829,9300 9824,9302 9820,9304 9815,9306 9811,9307 9806,9307 8656,9308 8656,9308 8651,9308 8647,9307 8642,9305 8638,9303 8634,9301 8629,9297 8625,9294 8621,9289 8617,9284 8613,9279 8609,9273 8605,9267 8601,9260 8598,9253 8595,9245 8591,9237 8589,9228 8586,9219 8583,9210 8581,9200 8579,9190 8577,9180 8575,9169 8573,9159 8572,9148 8571,9137 8570,9126 8570,9115 8569,9103 8569,9092"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 9893,9091 L 9893,9091 Z"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 8568,9308 L 8568,9308 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="9213" y="9289" width="40" height="314"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 9234,9584 L 9234,9453 9231,9453 9231,9307"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="9941" y="3487" width="2527" height="1862"/>
- <g>
- <defs>
- <linearGradient id="gradient3" x1="11204" y1="3505" x2="11204" y2="5330" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient3)" d="M 11204,5330 L 9959,5330 9959,3505 12449,3505 12449,5330 11204,5330 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="35" stroke-linejoin="miter" d="M 11204,5330 L 9959,5330 9959,3505 12449,3505 12449,5330 11204,5330 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="10053" y="3867"><tspan fill="rgb(0,0,0)" stroke="none">DUT1_CNF1[1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="10191" y="4284" width="2063" height="854"/>
- <path fill="rgb(112,173,71)" stroke="none" d="M 11222,5119 L 10209,5119 10209,4302 12235,4302 12235,5119 11222,5119 Z"/>
- <path fill="none" stroke="rgb(82,127,52)" stroke-width="35" stroke-linejoin="miter" d="M 11222,5119 L 10209,5119 10209,4302 12235,4302 12235,5119 11222,5119 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="10301" y="4831"><tspan fill="rgb(255,255,255)" stroke="none">DUT1_CNF1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="7040" y="9610" width="2755" height="1092"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8028" y="9926"><tspan fill="rgb(0,0,0)" stroke="none">External</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8163" y="10164"><tspan fill="rgb(0,0,0)" stroke="none">cable</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="5747" y="3817" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="5997" y="4260"><tspan fill="rgb(0,0,0)" stroke="none">VF[2]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="4118" y="8556" width="3269" height="849"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="4369" y="8872"><tspan fill="rgb(0,0,0)" stroke="none">VFs mapped to VLAN IDs</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="6281" y="4832" width="2520" height="4291"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 8782,9104 L 8782,4850 6299,4850"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="5587" y="3939" width="5036" height="363"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 5605,4283 L 5605,3957 10604,3957 10604,4283"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="5742" y="4860" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="5992" y="5303"><tspan fill="rgb(0,0,0)" stroke="none">VF[1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="8624" y="8738" width="286" height="259"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8669,8742 C 8648,8742 8628,8762 8628,8783 L 8628,8950 C 8628,8971 8648,8992 8669,8992 L 8863,8992 C 8884,8992 8905,8971 8905,8950 L 8905,8783 C 8905,8762 8884,8742 8863,8742 L 8669,8742 Z M 8628,8742 L 8628,8742 Z M 8905,8992 L 8905,8992 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 8669,8742 C 8648,8742 8628,8762 8628,8783 L 8628,8950 C 8628,8971 8648,8992 8669,8992 L 8863,8992 C 8884,8992 8905,8971 8905,8950 L 8905,8783 C 8905,8762 8884,8742 8863,8742 L 8669,8742 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8707" y="8939"><tspan fill="rgb(0,0,0)" stroke="none">1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="8939" y="8394" width="286" height="259"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8984,8398 C 8963,8398 8943,8418 8943,8439 L 8943,8606 C 8943,8627 8963,8648 8984,8648 L 9178,8648 C 9199,8648 9220,8627 9220,8606 L 9220,8439 C 9220,8418 9199,8398 9178,8398 L 8984,8398 Z M 8943,8398 L 8943,8398 Z M 9220,8648 L 9220,8648 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 8984,8398 C 8963,8398 8943,8418 8943,8439 L 8943,8606 C 8943,8627 8963,8648 8984,8648 L 9178,8648 C 9199,8648 9220,8627 9220,8606 L 9220,8439 C 9220,8418 9199,8398 9178,8398 L 8984,8398 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9022" y="8595"><tspan fill="rgb(0,0,0)" stroke="none">2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="9174" y="8733" width="400" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9223,8737 C 9200,8737 9178,8759 9178,8782 L 9178,8962 C 9178,8985 9200,9008 9223,9008 L 9523,9008 C 9546,9008 9569,8985 9569,8962 L 9569,8782 C 9569,8759 9546,8737 9523,8737 L 9223,8737 Z M 9178,8737 L 9178,8737 Z M 9569,9008 L 9569,9008 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 9223,8737 C 9200,8737 9178,8759 9178,8782 L 9178,8962 C 9178,8985 9200,9008 9223,9008 L 9523,9008 C 9546,9008 9569,8985 9569,8962 L 9569,8782 C 9569,8759 9546,8737 9523,8737 L 9223,8737 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9254" y="8944"><tspan fill="rgb(0,0,0)" stroke="none">2n</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="9467" y="8391" width="671" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9516,8395 C 9493,8395 9471,8417 9471,8440 L 9471,8620 C 9471,8643 9493,8666 9516,8666 L 10087,8666 C 10110,8666 10133,8643 10133,8620 L 10133,8440 C 10133,8417 10110,8395 10087,8395 L 9516,8395 Z M 9471,8395 L 9471,8395 Z M 10133,8666 L 10133,8666 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 9516,8395 C 9493,8395 9471,8417 9471,8440 L 9471,8620 C 9471,8643 9493,8666 9516,8666 L 10087,8666 C 10110,8666 10133,8643 10133,8620 L 10133,8440 C 10133,8417 10110,8395 10087,8395 L 9516,8395 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9587" y="8602"><tspan fill="rgb(0,0,0)" stroke="none">2n-1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="8643" y="9099" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8669,9103 C 8658,9103 8647,9114 8647,9125 L 8647,9216 C 8647,9227 8658,9239 8669,9239 L 8895,9239 C 8906,9239 8918,9227 8918,9216 L 8918,9125 C 8918,9114 8906,9103 8895,9103 L 8669,9103 Z M 8647,9103 L 8647,9103 Z M 8918,9239 L 8918,9239 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 8669,9103 C 8658,9103 8647,9114 8647,9125 L 8647,9216 C 8647,9227 8658,9239 8669,9239 L 8895,9239 C 8906,9239 8918,9227 8918,9216 L 8918,9125 C 8918,9114 8906,9103 8895,9103 L 8669,9103 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="8945" y="9101" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8971,9105 C 8960,9105 8949,9116 8949,9127 L 8949,9218 C 8949,9229 8960,9241 8971,9241 L 9197,9241 C 9208,9241 9220,9229 9220,9218 L 9220,9127 C 9220,9116 9208,9105 9197,9105 L 8971,9105 Z M 8949,9105 L 8949,9105 Z M 9220,9241 L 9220,9241 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 8971,9105 C 8960,9105 8949,9116 8949,9127 L 8949,9218 C 8949,9229 8960,9241 8971,9241 L 9197,9241 C 9208,9241 9220,9229 9220,9218 L 9220,9127 C 9220,9116 9208,9105 9197,9105 L 8971,9105 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="9246" y="9102" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9272,9106 C 9261,9106 9250,9117 9250,9128 L 9250,9219 C 9250,9230 9261,9242 9272,9242 L 9498,9242 C 9509,9242 9521,9230 9521,9219 L 9521,9128 C 9521,9117 9509,9106 9498,9106 L 9272,9106 Z M 9250,9106 L 9250,9106 Z M 9521,9242 L 9521,9242 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 9272,9106 C 9261,9106 9250,9117 9250,9128 L 9250,9219 C 9250,9230 9261,9242 9272,9242 L 9498,9242 C 9509,9242 9521,9230 9521,9219 L 9521,9128 C 9521,9117 9509,9106 9498,9106 L 9272,9106 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="9548" y="9104" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9574,9108 C 9563,9108 9552,9119 9552,9130 L 9552,9221 C 9552,9232 9563,9244 9574,9244 L 9800,9244 C 9811,9244 9823,9232 9823,9221 L 9823,9130 C 9823,9119 9811,9108 9800,9108 L 9574,9108 Z M 9552,9108 L 9552,9108 Z M 9823,9244 L 9823,9244 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 9574,9108 C 9563,9108 9552,9119 9552,9130 L 9552,9221 C 9552,9232 9563,9244 9574,9244 L 9800,9244 C 9811,9244 9823,9232 9823,9221 L 9823,9130 C 9823,9119 9811,9108 9800,9108 L 9574,9108 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="5754" y="5883" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="6004" y="6326"><tspan fill="rgb(0,0,0)" stroke="none">VF[2]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="5750" y="6916" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="6000" y="7392"><tspan fill="rgb(0,0,0)" stroke="none">VF[</tspan><tspan font-size="388px" fill="rgb(0,0,0)" stroke="none">1</tspan><tspan fill="rgb(0,0,0)" stroke="none">]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="6994" y="9101" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7020,9105 C 7009,9105 6998,9116 6998,9127 L 6998,9218 C 6998,9229 7009,9241 7020,9241 L 7246,9241 C 7257,9241 7269,9229 7269,9218 L 7269,9127 C 7269,9116 7257,9105 7246,9105 L 7020,9105 Z M 6998,9105 L 6998,9105 Z M 7269,9241 L 7269,9241 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7020,9105 C 7009,9105 6998,9116 6998,9127 L 6998,9218 C 6998,9229 7009,9241 7020,9241 L 7246,9241 C 7257,9241 7269,9229 7269,9218 L 7269,9127 C 7269,9116 7257,9105 7246,9105 L 7020,9105 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="7296" y="9102" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7322,9106 C 7311,9106 7300,9117 7300,9128 L 7300,9219 C 7300,9230 7311,9242 7322,9242 L 7548,9242 C 7559,9242 7571,9230 7571,9219 L 7571,9128 C 7571,9117 7559,9106 7548,9106 L 7322,9106 Z M 7300,9106 L 7300,9106 Z M 7571,9242 L 7571,9242 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7322,9106 C 7311,9106 7300,9117 7300,9128 L 7300,9219 C 7300,9230 7311,9242 7322,9242 L 7548,9242 C 7559,9242 7571,9230 7571,9219 L 7571,9128 C 7571,9117 7559,9106 7548,9106 L 7322,9106 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="7597" y="9104" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7623,9108 C 7612,9108 7601,9119 7601,9130 L 7601,9221 C 7601,9232 7612,9244 7623,9244 L 7849,9244 C 7860,9244 7872,9232 7872,9221 L 7872,9130 C 7872,9119 7860,9108 7849,9108 L 7623,9108 Z M 7601,9108 L 7601,9108 Z M 7872,9244 L 7872,9244 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7623,9108 C 7612,9108 7601,9119 7601,9130 L 7601,9221 C 7601,9232 7612,9244 7623,9244 L 7849,9244 C 7860,9244 7872,9232 7872,9221 L 7872,9130 C 7872,9119 7860,9108 7849,9108 L 7623,9108 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="7899" y="9105" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7925,9109 C 7914,9109 7903,9120 7903,9131 L 7903,9222 C 7903,9233 7914,9245 7925,9245 L 8151,9245 C 8162,9245 8174,9233 8174,9222 L 8174,9131 C 8174,9120 8162,9109 8151,9109 L 7925,9109 Z M 7903,9109 L 7903,9109 Z M 8174,9245 L 8174,9245 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7925,9109 C 7914,9109 7903,9120 7903,9131 L 7903,9222 C 7903,9233 7914,9245 7925,9245 L 8151,9245 C 8162,9245 8174,9233 8174,9222 L 8174,9131 C 8174,9120 8162,9109 8151,9109 L 7925,9109 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="6975" y="8739" width="286" height="259"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7020,8743 C 6999,8743 6979,8763 6979,8784 L 6979,8951 C 6979,8972 6999,8993 7020,8993 L 7214,8993 C 7235,8993 7256,8972 7256,8951 L 7256,8784 C 7256,8763 7235,8743 7214,8743 L 7020,8743 Z M 6979,8743 L 6979,8743 Z M 7256,8993 L 7256,8993 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7020,8743 C 6999,8743 6979,8763 6979,8784 L 6979,8951 C 6979,8972 6999,8993 7020,8993 L 7214,8993 C 7235,8993 7256,8972 7256,8951 L 7256,8784 C 7256,8763 7235,8743 7214,8743 L 7020,8743 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7058" y="8940"><tspan fill="rgb(0,0,0)" stroke="none">1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="7290" y="8396" width="286" height="259"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7335,8400 C 7314,8400 7294,8420 7294,8441 L 7294,8608 C 7294,8629 7314,8650 7335,8650 L 7529,8650 C 7550,8650 7571,8629 7571,8608 L 7571,8441 C 7571,8420 7550,8400 7529,8400 L 7335,8400 Z M 7294,8400 L 7294,8400 Z M 7571,8650 L 7571,8650 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7335,8400 C 7314,8400 7294,8420 7294,8441 L 7294,8608 C 7294,8629 7314,8650 7335,8650 L 7529,8650 C 7550,8650 7571,8629 7571,8608 L 7571,8441 C 7571,8420 7550,8400 7529,8400 L 7335,8400 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7373" y="8597"><tspan fill="rgb(0,0,0)" stroke="none">2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="6900" y="9074" width="1361" height="254"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 8242,9092 L 8242,9092 8242,9103 8242,9115 8241,9126 8240,9137 8239,9148 8238,9159 8236,9169 8234,9180 8233,9190 8230,9200 8228,9210 8225,9219 8223,9228 8220,9237 8217,9245 8213,9253 8210,9260 8206,9267 8202,9273 8198,9279 8194,9284 8190,9289 8186,9294 8182,9297 8178,9301 8173,9303 8169,9305 8164,9307 8160,9308 8155,9308 7006,9309 7006,9309 7001,9309 6997,9308 6992,9306 6988,9304 6984,9302 6979,9298 6975,9295 6971,9290 6967,9285 6963,9280 6959,9274 6955,9268 6951,9261 6948,9254 6945,9246 6941,9238 6939,9229 6936,9220 6933,9211 6931,9201 6929,9191 6927,9181 6925,9170 6923,9160 6922,9149 6921,9138 6920,9127 6920,9116 6919,9104 6919,9093"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 8242,9092 L 8242,9092 Z"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 6918,9309 L 6918,9309 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="10465" y="4278" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10491,4282 C 10480,4282 10469,4293 10469,4304 L 10469,4395 C 10469,4406 10480,4418 10491,4418 L 10717,4418 C 10728,4418 10740,4406 10740,4395 L 10740,4304 C 10740,4293 10728,4282 10717,4282 L 10491,4282 Z M 10469,4282 L 10469,4282 Z M 10740,4418 L 10740,4418 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 10491,4282 C 10480,4282 10469,4293 10469,4304 L 10469,4395 C 10469,4406 10480,4418 10491,4418 L 10717,4418 C 10728,4418 10740,4406 10740,4395 L 10740,4304 C 10740,4293 10728,4282 10717,4282 L 10491,4282 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="6157" y="4410" width="145" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 6161,4663 C 6161,4674 6172,4685 6183,4685 L 6274,4685 C 6285,4685 6297,4674 6297,4663 L 6297,4437 C 6297,4426 6285,4414 6274,4414 L 6183,4414 C 6172,4414 6161,4426 6161,4437 L 6161,4663 Z M 6161,4685 L 6161,4685 Z M 6297,4414 L 6297,4414 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 6161,4663 C 6161,4674 6172,4685 6183,4685 L 6274,4685 C 6285,4685 6297,4674 6297,4663 L 6297,4437 C 6297,4426 6285,4414 6274,4414 L 6183,4414 C 6172,4414 6161,4426 6161,4437 L 6161,4663 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="6159" y="4710" width="145" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 6163,4963 C 6163,4974 6174,4985 6185,4985 L 6276,4985 C 6287,4985 6299,4974 6299,4963 L 6299,4737 C 6299,4726 6287,4714 6276,4714 L 6185,4714 C 6174,4714 6163,4726 6163,4737 L 6163,4963 Z M 6163,4985 L 6163,4985 Z M 6299,4714 L 6299,4714 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 6163,4963 C 6163,4974 6174,4985 6185,4985 L 6276,4985 C 6287,4985 6299,4974 6299,4963 L 6299,4737 C 6299,4726 6287,4714 6276,4714 L 6185,4714 C 6174,4714 6163,4726 6163,4737 L 6163,4963 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="6147" y="6490" width="145" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 6151,6743 C 6151,6754 6162,6765 6173,6765 L 6264,6765 C 6275,6765 6287,6754 6287,6743 L 6287,6517 C 6287,6506 6275,6494 6264,6494 L 6173,6494 C 6162,6494 6151,6506 6151,6517 L 6151,6743 Z M 6151,6765 L 6151,6765 Z M 6287,6494 L 6287,6494 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 6151,6743 C 6151,6754 6162,6765 6173,6765 L 6264,6765 C 6275,6765 6287,6754 6287,6743 L 6287,6517 C 6287,6506 6275,6494 6264,6494 L 6173,6494 C 6162,6494 6151,6506 6151,6517 L 6151,6743 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="6148" y="6790" width="145" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 6152,7043 C 6152,7054 6163,7065 6174,7065 L 6265,7065 C 6276,7065 6288,7054 6288,7043 L 6288,6817 C 6288,6806 6276,6794 6265,6794 L 6174,6794 C 6163,6794 6152,6806 6152,6817 L 6152,7043 Z M 6152,7065 L 6152,7065 Z M 6288,6794 L 6288,6794 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 6152,7043 C 6152,7054 6163,7065 6174,7065 L 6265,7065 C 6276,7065 6288,7054 6288,7043 L 6288,6817 C 6288,6806 6276,6794 6265,6794 L 6174,6794 C 6163,6794 6152,6806 6152,6817 L 6152,7043 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="7525" y="8734" width="400" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7574,8738 C 7551,8738 7529,8760 7529,8783 L 7529,8963 C 7529,8986 7551,9009 7574,9009 L 7874,9009 C 7897,9009 7920,8986 7920,8963 L 7920,8783 C 7920,8760 7897,8738 7874,8738 L 7574,8738 Z M 7529,8738 L 7529,8738 Z M 7920,9009 L 7920,9009 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7574,8738 C 7551,8738 7529,8760 7529,8783 L 7529,8963 C 7529,8986 7551,9009 7574,9009 L 7874,9009 C 7897,9009 7920,8986 7920,8963 L 7920,8783 C 7920,8760 7897,8738 7874,8738 L 7574,8738 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7605" y="8945"><tspan fill="rgb(0,0,0)" stroke="none">2n</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="7818" y="8392" width="671" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7867,8396 C 7844,8396 7822,8418 7822,8441 L 7822,8621 C 7822,8644 7844,8667 7867,8667 L 8438,8667 C 8461,8667 8484,8644 8484,8621 L 8484,8441 C 8484,8418 8461,8396 8438,8396 L 7867,8396 Z M 7822,8396 L 7822,8396 Z M 8484,8667 L 8484,8667 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7867,8396 C 7844,8396 7822,8418 7822,8441 L 7822,8621 C 7822,8644 7844,8667 7867,8667 L 8438,8667 C 8461,8667 8484,8644 8484,8621 L 8484,8441 C 8484,8418 8461,8396 8438,8396 L 7867,8396 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7938" y="8603"><tspan fill="rgb(0,0,0)" stroke="none">2n-1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="4308" y="8688" width="2594" height="223"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 4347,8692 C 4329,8692 4312,8709 4312,8727 L 4312,8870 C 4312,8888 4329,8906 4347,8906 L 6861,8906 C 6879,8906 6897,8888 6897,8870 L 6897,8727 C 6897,8709 6879,8692 6861,8692 L 4347,8692 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="7443" y="9578" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 7469,9582 C 7458,9582 7447,9593 7447,9604 L 7447,9695 C 7447,9706 7458,9718 7469,9718 L 7695,9718 C 7706,9718 7718,9706 7718,9695 L 7718,9604 C 7718,9593 7706,9582 7695,9582 L 7469,9582 Z M 7447,9582 L 7447,9582 Z M 7718,9718 L 7718,9718 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 7469,9582 C 7458,9582 7447,9593 7447,9604 L 7447,9695 C 7447,9706 7458,9718 7469,9718 L 7695,9718 C 7706,9718 7718,9706 7718,9695 L 7718,9604 C 7718,9593 7706,9582 7695,9582 L 7469,9582 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="9095" y="9579" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 9121,9583 C 9110,9583 9099,9594 9099,9605 L 9099,9696 C 9099,9707 9110,9719 9121,9719 L 9347,9719 C 9358,9719 9370,9707 9370,9696 L 9370,9605 C 9370,9594 9358,9583 9347,9583 L 9121,9583 Z M 9099,9583 L 9099,9583 Z M 9370,9719 L 9370,9719 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 9121,9583 C 9110,9583 9099,9594 9099,9605 L 9099,9696 C 9099,9707 9110,9719 9121,9719 L 9347,9719 C 9358,9719 9370,9707 9370,9696 L 9370,9605 C 9370,9594 9358,9583 9347,9583 L 9121,9583 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="6626" y="9185" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="6876" y="9501"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="8278" y="9185" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8528" y="9501"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="10565" y="9700" width="1689" height="542"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 10583,9718 L 10583,10223 12235,10223 12235,9719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="10041" y="9610" width="2755" height="1092"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="11029" y="9926"><tspan fill="rgb(0,0,0)" stroke="none">External</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="11164" y="10164"><tspan fill="rgb(0,0,0)" stroke="none">cable</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="10444" y="9578" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 10470,9582 C 10459,9582 10448,9593 10448,9604 L 10448,9695 C 10448,9706 10459,9718 10470,9718 L 10696,9718 C 10707,9718 10719,9706 10719,9695 L 10719,9604 C 10719,9593 10707,9582 10696,9582 L 10470,9582 Z M 10448,9582 L 10448,9582 Z M 10719,9718 L 10719,9718 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 10470,9582 C 10459,9582 10448,9593 10448,9604 L 10448,9695 C 10448,9706 10459,9718 10470,9718 L 10696,9718 C 10707,9718 10719,9706 10719,9695 L 10719,9604 C 10719,9593 10707,9582 10696,9582 L 10470,9582 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="12096" y="9579" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 12122,9583 C 12111,9583 12100,9594 12100,9605 L 12100,9696 C 12100,9707 12111,9719 12122,9719 L 12348,9719 C 12359,9719 12371,9707 12371,9696 L 12371,9605 C 12371,9594 12359,9583 12348,9583 L 12122,9583 Z M 12100,9583 L 12100,9583 Z M 12371,9719 L 12371,9719 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 12122,9583 C 12111,9583 12100,9594 12100,9605 L 12100,9696 C 12100,9707 12111,9719 12122,9719 L 12348,9719 C 12359,9719 12371,9707 12371,9696 L 12371,9605 C 12371,9594 12359,9583 12348,9583 L 12122,9583 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="9627" y="9185" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9877" y="9501"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="11279" y="9185" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="11529" y="9501"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="6326" y="4664" width="2552" height="5607"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6451,6858 L 6486,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6522,6858 L 6557,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6593,6858 L 6628,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6663,6858 L 6699,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6734,6858 L 6770,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6805,6858 L 6841,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6876,6858 L 6912,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6947,6858 L 6983,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7018,6858 L 7054,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7089,6858 L 7124,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7160,6858 L 7195,6858"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,6875 L 7214,6910"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,6946 L 7214,6981"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7017 L 7214,7052"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7088 L 7214,7123"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7159 L 7214,7194"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7229 L 7214,7265"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7300 L 7214,7336"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7371 L 7214,7407"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7442 L 7214,7478"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7513 L 7214,7549"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7584 L 7214,7619"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7655 L 7214,7690"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7726 L 7214,7761"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7797 L 7214,7832"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7868 L 7214,7903"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,7939 L 7214,7974"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8010 L 7214,8045"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8080 L 7214,8116"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8151 L 7214,8187"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8222 L 7214,8258"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8293 L 7214,8329"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8364 L 7214,8400"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8435 L 7214,8471"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8506 L 7214,8541"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8577 L 7214,8612"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8648 L 7214,8683"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8719 L 7214,8754"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8790 L 7214,8825"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8861 L 7214,8896"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,8932 L 7214,8967"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9002 L 7214,9038"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9073 L 7214,9109"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9144 L 7214,9180"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9215 L 7214,9251"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9286 L 7214,9322"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9357 L 7214,9392"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9428 L 7214,9463"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9499 L 7214,9534"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9570 L 7214,9605"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9641 L 7214,9676"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9712 L 7214,9747"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9783 L 7214,9818"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9853 L 7214,9889"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9924 L 7214,9960"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,9995 L 7214,10031"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,10066 L 7214,10102"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,10137 L 7214,10173"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7214,10208 L 7214,10244"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7232,10261 L 7267,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7303,10261 L 7338,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7374,10261 L 7409,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7445,10261 L 7480,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7516,10261 L 7551,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7587,10261 L 7622,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7658,10261 L 7693,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7728,10261 L 7764,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7799,10261 L 7835,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7870,10261 L 7906,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7941,10261 L 7977,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8012,10261 L 8048,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8083,10261 L 8118,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8154,10261 L 8189,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8225,10261 L 8260,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8296,10261 L 8331,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8367,10261 L 8402,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8438,10261 L 8473,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8509,10261 L 8544,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8579,10261 L 8615,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8650,10261 L 8686,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8721,10261 L 8757,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8792,10261 L 8828,10261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8863,10261 L 8868,10261 8868,10230"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,10195 L 8868,10159"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,10124 L 8868,10089"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,10053 L 8868,10018"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9982 L 8868,9947"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9911 L 8868,9876"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9840 L 8868,9805"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9769 L 8868,9734"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9698 L 8868,9663"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9628 L 8868,9592"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9557 L 8868,9521"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9486 L 8868,9450"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9415 L 8868,9379"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9344 L 8868,9308"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9273 L 8868,9238"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9202 L 8868,9167"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9131 L 8868,9096"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,9060 L 8868,9025"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8989 L 8868,8954"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8918 L 8868,8883"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8847 L 8868,8812"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8777 L 8868,8741"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8706 L 8868,8670"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8635 L 8868,8599"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8564 L 8868,8528"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8493 L 8868,8457"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8422 L 8868,8386"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8351 L 8868,8316"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8280 L 8868,8245"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8209 L 8868,8174"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8138 L 8868,8103"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,8067 L 8868,8032"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7996 L 8868,7961"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7925 L 8868,7890"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7855 L 8868,7819"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7784 L 8868,7748"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7713 L 8868,7677"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7642 L 8868,7606"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7571 L 8868,7535"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7500 L 8868,7465"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7429 L 8868,7394"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7358 L 8868,7323"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7287 L 8868,7252"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7216 L 8868,7181"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7145 L 8868,7110"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7074 L 8868,7039"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,7004 L 8868,6968"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6933 L 8868,6897"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6862 L 8868,6826"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6791 L 8868,6755"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6720 L 8868,6684"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6649 L 8868,6613"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6578 L 8868,6543"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6507 L 8868,6472"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6436 L 8868,6401"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6365 L 8868,6330"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6294 L 8868,6259"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6223 L 8868,6188"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6152 L 8868,6117"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6082 L 8868,6046"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,6011 L 8868,5975"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5940 L 8868,5904"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5869 L 8868,5833"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5798 L 8868,5762"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5727 L 8868,5692"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5656 L 8868,5621"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5585 L 8868,5550"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5514 L 8868,5479"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5443 L 8868,5408"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5372 L 8868,5337"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5301 L 8868,5266"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5231 L 8868,5195"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5160 L 8868,5124"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5089 L 8868,5053"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,5018 L 8868,4982"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,4947 L 8868,4911"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,4876 L 8868,4840"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8868,4805 L 8868,4777 8861,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8825,4777 L 8790,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8754,4777 L 8719,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8683,4777 L 8648,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8612,4777 L 8577,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8541,4777 L 8506,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8470,4777 L 8435,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8400,4777 L 8364,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8329,4777 L 8293,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8258,4777 L 8222,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8187,4777 L 8151,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8116,4777 L 8080,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8045,4777 L 8010,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7974,4777 L 7939,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7903,4777 L 7868,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7832,4777 L 7797,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7761,4777 L 7726,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7690,4777 L 7655,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7619,4777 L 7584,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7549,4777 L 7513,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7478,4777 L 7442,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7407,4777 L 7371,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7336,4777 L 7300,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7265,4777 L 7229,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7194,4777 L 7158,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7123,4777 L 7088,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7052,4777 L 7017,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6981,4777 L 6946,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6910,4777 L 6875,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6839,4777 L 6804,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6768,4777 L 6733,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6697,4777 L 6662,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6627,4777 L 6591,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6556,4777 L 6520,4777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6485,4777 L 6449,4777"/>
- <path fill="rgb(237,28,36)" stroke="none" d="M 6334,6745 C 6337,6745 6340,6745 6344,6745 6354,6745 6364,6746 6373,6749 6382,6751 6391,6755 6400,6760 6409,6765 6417,6771 6424,6778 6431,6785 6436,6792 6442,6802 6447,6811 6451,6819 6453,6829 6455,6838 6457,6847 6457,6857 L 6466,6857 6466,6859 6457,6859 C 6457,6869 6455,6878 6453,6887 6451,6897 6447,6905 6442,6915 6436,6924 6431,6931 6424,6938 6417,6945 6409,6951 6400,6956 6391,6961 6382,6965 6373,6967 6364,6970 6354,6971 6344,6971 6340,6971 6337,6971 6334,6971 L 6334,6966 6335,6962 C 6338,6962 6341,6962 6344,6962 6353,6962 6362,6961 6371,6959 6379,6956 6387,6953 6396,6948 6404,6943 6411,6938 6417,6932 6424,6925 6429,6918 6434,6910 6439,6902 6442,6893 6444,6885 6447,6876 6448,6868 6448,6858 6448,6848 6447,6840 6444,6831 6442,6823 6439,6814 6434,6806 6429,6798 6424,6791 6417,6784 6411,6778 6404,6773 6396,6768 6387,6763 6379,6760 6371,6757 6362,6755 6353,6754 6344,6754 6341,6754 6338,6754 6335,6754 L 6334,6750 6334,6745 Z"/>
- <path fill="rgb(237,28,36)" stroke="none" d="M 6326,4664 C 6329,4664 6332,4664 6336,4664 6346,4664 6356,4665 6365,4668 6374,4670 6383,4674 6392,4679 6401,4684 6409,4690 6416,4697 6423,4704 6428,4711 6434,4721 6439,4730 6443,4738 6445,4748 6447,4757 6449,4766 6449,4776 L 6458,4776 6458,4778 6449,4778 C 6449,4788 6447,4797 6445,4806 6443,4816 6439,4824 6434,4834 6428,4843 6423,4850 6416,4857 6409,4864 6401,4870 6392,4875 6383,4880 6374,4884 6365,4886 6356,4889 6346,4890 6336,4890 6332,4890 6329,4890 6326,4890 L 6326,4885 6327,4881 C 6330,4881 6333,4881 6336,4881 6345,4881 6354,4880 6363,4878 6371,4875 6379,4872 6388,4867 6396,4862 6403,4857 6409,4851 6416,4844 6421,4837 6426,4829 6431,4821 6434,4812 6436,4804 6439,4795 6440,4787 6440,4777 6440,4767 6439,4759 6436,4750 6434,4742 6431,4733 6426,4725 6421,4717 6416,4710 6409,4703 6403,4697 6396,4692 6388,4687 6379,4682 6371,4679 6363,4676 6354,4674 6345,4673 6336,4673 6333,4673 6330,4673 6327,4673 L 6326,4669 6326,4664 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="6345" y="4353" width="2823" height="5723"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6488,6540 L 6523,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6559,6540 L 6594,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6630,6540 L 6665,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6700,6540 L 6736,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6771,6540 L 6807,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6842,6540 L 6878,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6913,6540 L 6949,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6984,6540 L 7020,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7055,6540 L 7091,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7126,6540 L 7161,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7197,6540 L 7232,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7268,6540 L 7303,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7339,6540 L 7374,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7410,6540 L 7445,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7481,6540 L 7516,6540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,6568 L 7524,6603"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,6638 L 7524,6674"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,6709 L 7524,6745"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,6780 L 7524,6816"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,6851 L 7524,6887"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,6922 L 7524,6958"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,6993 L 7524,7028"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7064 L 7524,7099"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7135 L 7524,7170"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7206 L 7524,7241"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7277 L 7524,7312"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7348 L 7524,7383"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7419 L 7524,7454"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7489 L 7524,7525"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7560 L 7524,7596"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7631 L 7524,7667"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7702 L 7524,7738"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7773 L 7524,7809"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7844 L 7524,7880"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7915 L 7524,7950"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,7986 L 7524,8021"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8057 L 7524,8092"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8128 L 7524,8163"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8199 L 7524,8234"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8270 L 7524,8305"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8341 L 7524,8376"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8411 L 7524,8447"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8482 L 7524,8518"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8553 L 7524,8589"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8624 L 7524,8660"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8695 L 7524,8731"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8766 L 7524,8801"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8837 L 7524,8872"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8908 L 7524,8943"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,8979 L 7524,9014"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9050 L 7524,9085"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9121 L 7524,9156"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9192 L 7524,9227"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9262 L 7524,9298"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9333 L 7524,9369"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9404 L 7524,9440"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9475 L 7524,9511"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9546 L 7524,9582"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9617 L 7524,9653"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9688 L 7524,9723"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9759 L 7524,9794"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9830 L 7524,9865"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9901 L 7524,9936"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,9972 L 7524,10007"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7524,10043 L 7524,10066 7536,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7572,10066 L 7607,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7642,10066 L 7678,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7713,10066 L 7749,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7784,10066 L 7820,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7855,10066 L 7891,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7926,10066 L 7962,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7997,10066 L 8032,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8068,10066 L 8103,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8139,10066 L 8174,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8210,10066 L 8245,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8281,10066 L 8316,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8352,10066 L 8387,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8423,10066 L 8458,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8493,10066 L 8529,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8564,10066 L 8600,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8635,10066 L 8671,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8706,10066 L 8742,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8777,10066 L 8813,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8848,10066 L 8884,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8919,10066 L 8954,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8990,10066 L 9025,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9061,10066 L 9096,10066"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9132,10066 L 9158,10066 9158,10057"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,10021 L 9158,9986"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9950 L 9158,9915"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9879 L 9158,9844"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9809 L 9158,9773"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9738 L 9158,9702"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9667 L 9158,9631"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9596 L 9158,9560"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9525 L 9158,9489"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9454 L 9158,9419"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9383 L 9158,9348"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9312 L 9158,9277"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9241 L 9158,9206"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9170 L 9158,9135"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9099 L 9158,9064"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,9028 L 9158,8993"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8958 L 9158,8922"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8887 L 9158,8851"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8816 L 9158,8780"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8745 L 9158,8709"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8674 L 9158,8638"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8603 L 9158,8567"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8532 L 9158,8497"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8461 L 9158,8426"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8390 L 9158,8355"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8319 L 9158,8284"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8248 L 9158,8213"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8177 L 9158,8142"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8106 L 9158,8071"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,8036 L 9158,8000"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7965 L 9158,7929"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7894 L 9158,7858"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7823 L 9158,7787"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7752 L 9158,7716"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7681 L 9158,7646"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7610 L 9158,7575"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7539 L 9158,7504"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7468 L 9158,7433"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7397 L 9158,7362"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7326 L 9158,7291"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7255 L 9158,7220"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7185 L 9158,7149"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7114 L 9158,7078"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,7043 L 9158,7007"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6972 L 9158,6936"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6901 L 9158,6865"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6830 L 9158,6794"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6759 L 9158,6724"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6688 L 9158,6653"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6617 L 9158,6582"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6546 L 9158,6511"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6475 L 9158,6440"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6404 L 9158,6369"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6333 L 9158,6298"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6263 L 9158,6227"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6192 L 9158,6156"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6121 L 9158,6085"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,6050 L 9158,6014"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5979 L 9158,5943"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5908 L 9158,5873"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5837 L 9158,5802"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5766 L 9158,5731"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5695 L 9158,5660"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5624 L 9158,5589"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5553 L 9158,5518"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5482 L 9158,5447"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5412 L 9158,5376"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5341 L 9158,5305"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5270 L 9158,5234"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5199 L 9158,5163"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5128 L 9158,5092"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,5057 L 9158,5021"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,4986 L 9158,4951"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,4915 L 9158,4880"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,4844 L 9158,4809"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,4773 L 9158,4738"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,4702 L 9158,4667"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,4631 L 9158,4596"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,4560 L 9158,4525"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9158,4490 L 9158,4466 9146,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9111,4466 L 9075,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9040,4466 L 9004,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8969,4466 L 8933,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8898,4466 L 8862,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8827,4466 L 8792,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8756,4466 L 8721,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8685,4466 L 8650,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8614,4466 L 8579,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8543,4466 L 8508,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8472,4466 L 8437,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8401,4466 L 8366,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8331,4466 L 8295,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8260,4466 L 8224,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8189,4466 L 8153,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8118,4466 L 8082,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8047,4466 L 8011,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7976,4466 L 7940,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7905,4466 L 7870,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7834,4466 L 7799,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7763,4466 L 7728,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7692,4466 L 7657,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7621,4466 L 7586,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7550,4466 L 7515,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7479,4466 L 7444,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7409,4466 L 7373,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7338,4466 L 7302,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7267,4466 L 7231,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7196,4466 L 7160,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7125,4466 L 7089,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7054,4466 L 7019,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6983,4466 L 6948,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6912,4466 L 6877,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6841,4466 L 6806,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6770,4466 L 6735,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6699,4466 L 6664,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6628,4466 L 6593,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6558,4466 L 6522,4466"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6487,4466 L 6462,4466"/>
- <path fill="rgb(0,182,189)" stroke="none" d="M 6371,6427 C 6374,6427 6377,6427 6381,6427 6391,6427 6401,6428 6410,6431 6419,6433 6428,6437 6437,6442 6446,6447 6454,6453 6461,6460 6468,6467 6473,6474 6479,6484 6484,6493 6488,6501 6490,6511 6492,6520 6494,6529 6494,6539 L 6503,6539 6503,6541 6494,6541 C 6494,6551 6492,6560 6490,6569 6488,6579 6484,6587 6479,6597 6473,6606 6468,6613 6461,6620 6454,6627 6446,6633 6437,6638 6428,6643 6419,6647 6410,6649 6401,6652 6391,6653 6381,6653 6377,6653 6374,6653 6371,6653 L 6371,6648 6372,6644 C 6375,6644 6378,6644 6381,6644 6390,6644 6399,6643 6408,6641 6416,6638 6424,6635 6433,6630 6441,6625 6448,6620 6454,6614 6461,6607 6466,6600 6471,6592 6476,6584 6479,6575 6481,6567 6484,6558 6485,6550 6485,6540 6485,6530 6484,6522 6481,6513 6479,6505 6476,6496 6471,6488 6466,6480 6461,6473 6454,6466 6448,6460 6441,6455 6433,6450 6424,6445 6416,6442 6408,6439 6399,6437 6390,6436 6381,6436 6378,6436 6375,6436 6372,6436 L 6371,6432 6371,6427 Z"/>
- <path fill="rgb(0,182,189)" stroke="none" d="M 6345,4353 C 6348,4353 6351,4353 6355,4353 6365,4353 6375,4354 6384,4357 6393,4359 6402,4363 6411,4368 6420,4373 6428,4379 6435,4386 6442,4393 6447,4400 6453,4410 6458,4419 6462,4427 6464,4437 6466,4446 6468,4455 6468,4465 L 6477,4465 6477,4467 6468,4467 C 6468,4477 6466,4486 6464,4495 6462,4505 6458,4513 6453,4523 6447,4532 6442,4539 6435,4546 6428,4553 6420,4559 6411,4564 6402,4569 6393,4573 6384,4575 6375,4578 6365,4579 6355,4579 6351,4579 6348,4579 6345,4579 L 6345,4574 6346,4570 C 6349,4570 6352,4570 6355,4570 6364,4570 6373,4569 6382,4567 6390,4564 6398,4561 6407,4556 6415,4551 6422,4546 6428,4540 6435,4533 6440,4526 6445,4518 6450,4510 6453,4501 6455,4493 6458,4484 6459,4476 6459,4466 6459,4456 6458,4448 6455,4439 6453,4431 6450,4422 6445,4414 6440,4406 6435,4399 6428,4392 6422,4386 6415,4381 6407,4376 6398,4371 6390,4368 6382,4365 6373,4363 6364,4362 6355,4362 6352,4362 6349,4362 6346,4362 L 6345,4358 6345,4353 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="11366" y="4278" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 11392,4282 C 11381,4282 11370,4293 11370,4304 L 11370,4395 C 11370,4406 11381,4418 11392,4418 L 11618,4418 C 11629,4418 11641,4406 11641,4395 L 11641,4304 C 11641,4293 11629,4282 11618,4282 L 11392,4282 Z M 11370,4282 L 11370,4282 Z M 11641,4418 L 11641,4418 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 11392,4282 C 11381,4282 11370,4293 11370,4304 L 11370,4395 C 11370,4406 11381,4418 11392,4418 L 11618,4418 C 11629,4418 11641,4406 11641,4395 L 11641,4304 C 11641,4293 11629,4282 11618,4282 L 11392,4282 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="4566" y="4278" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4592,4282 C 4581,4282 4570,4293 4570,4304 L 4570,4395 C 4570,4406 4581,4418 4592,4418 L 4818,4418 C 4829,4418 4841,4406 4841,4395 L 4841,4304 C 4841,4293 4829,4282 4818,4282 L 4592,4282 Z M 4570,4282 L 4570,4282 Z M 4841,4418 L 4841,4418 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 4592,4282 C 4581,4282 4570,4293 4570,4304 L 4570,4395 C 4570,4406 4581,4418 4592,4418 L 4818,4418 C 4829,4418 4841,4406 4841,4395 L 4841,4304 C 4841,4293 4829,4282 4818,4282 L 4592,4282 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="5466" y="4278" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 5492,4282 C 5481,4282 5470,4293 5470,4304 L 5470,4395 C 5470,4406 5481,4418 5492,4418 L 5718,4418 C 5729,4418 5741,4406 5741,4395 L 5741,4304 C 5741,4293 5729,4282 5718,4282 L 5492,4282 Z M 5470,4282 L 5470,4282 Z M 5741,4418 L 5741,4418 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 5492,4282 C 5481,4282 5470,4293 5470,4304 L 5470,4395 C 5470,4406 5481,4418 5492,4418 L 5718,4418 C 5729,4418 5741,4406 5741,4395 L 5741,4304 C 5741,4293 5729,4282 5718,4282 L 5492,4282 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="4687" y="3304" width="6837" height="999"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 4705,4283 L 4705,3322 11505,3322 11505,4284"/>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/docs/report/vpp_device_tests/vf-2n-nic2nic.svg b/docs/report/vpp_device_tests/vf-2n-nic2nic.svg
deleted file mode 100644
index 2bf2ec678c..0000000000
--- a/docs/report/vpp_device_tests/vf-2n-nic2nic.svg
+++ /dev/null
@@ -1,1165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="148mm" height="110mm" viewBox="0 0 14800 11000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="14800" height="11000"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="14" y="11" width="14771" height="10978"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="…" horiz-adv-x="1615" d="M 918,254 L 1130,254 1130,0 918,0 918,254 Z M 1599,254 L 1812,254 1812,0 1599,0 1599,254 Z M 236,254 L 449,254 449,0 236,0 236,254 Z"/>
- <glyph unicode="z" horiz-adv-x="927" d="M 113,1120 L 987,1120 987,952 295,147 987,147 987,0 88,0 88,168 780,973 113,973 113,1120 Z"/>
- <glyph unicode="t" horiz-adv-x="715" d="M 375,1438 L 375,1120 754,1120 754,977 375,977 375,369 C 375,278 388,219 413,193 438,167 488,154 565,154 L 754,154 754,0 565,0 C 423,0 325,27 271,80 217,133 190,229 190,369 L 190,977 55,977 55,1120 190,1120 190,1438 375,1438 Z"/>
- <glyph unicode="s" horiz-adv-x="874" d="M 907,1087 L 907,913 C 855,940 801,960 745,973 689,986 631,993 571,993 480,993 411,979 366,951 320,923 297,881 297,825 297,782 313,749 346,725 379,700 444,677 543,655 L 606,641 C 737,613 830,574 885,523 940,472 967,400 967,309 967,205 926,123 844,62 761,1 648,-29 504,-29 444,-29 382,-23 317,-12 252,0 183,18 111,41 L 111,231 C 179,196 246,169 312,152 378,134 443,125 508,125 595,125 661,140 708,170 755,199 778,241 778,295 778,345 761,383 728,410 694,437 620,462 506,487 L 442,502 C 328,526 246,563 195,613 144,662 119,730 119,817 119,922 156,1004 231,1061 306,1118 412,1147 549,1147 617,1147 681,1142 741,1132 801,1122 856,1107 907,1087 Z"/>
- <glyph unicode="r" horiz-adv-x="663" d="M 842,948 C 821,960 799,969 775,975 750,980 723,983 694,983 590,983 510,949 455,882 399,814 371,717 371,590 L 371,0 186,0 186,1120 371,1120 371,946 C 410,1014 460,1065 522,1098 584,1131 659,1147 748,1147 761,1147 775,1146 790,1145 805,1143 822,1140 841,1137 L 842,948 Z"/>
- <glyph unicode="p" horiz-adv-x="1007" d="M 371,168 L 371,-426 186,-426 186,1120 371,1120 371,950 C 410,1017 459,1066 518,1099 577,1131 647,1147 729,1147 865,1147 976,1093 1061,985 1146,877 1188,735 1188,559 1188,383 1146,241 1061,133 976,25 865,-29 729,-29 647,-29 577,-13 518,20 459,52 410,101 371,168 Z M 997,559 C 997,694 969,801 914,878 858,955 781,993 684,993 587,993 510,955 455,878 399,801 371,694 371,559 371,424 399,318 455,241 510,164 587,125 684,125 781,125 858,164 914,241 969,318 997,424 997,559 Z"/>
- <glyph unicode="o" horiz-adv-x="1033" d="M 627,991 C 528,991 450,953 393,876 336,799 307,693 307,559 307,425 336,320 393,243 450,166 528,127 627,127 725,127 803,166 860,243 917,320 946,426 946,559 946,692 917,797 860,875 803,952 725,991 627,991 Z M 627,1147 C 787,1147 913,1095 1004,991 1095,887 1141,743 1141,559 1141,376 1095,232 1004,128 913,23 787,-29 627,-29 466,-29 341,23 250,128 159,232 113,376 113,559 113,743 159,887 250,991 341,1095 466,1147 627,1147 Z"/>
- <glyph unicode="n" horiz-adv-x="954" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="l" horiz-adv-x="213" d="M 193,1556 L 377,1556 377,0 193,0 193,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="213" d="M 193,1120 L 377,1120 377,0 193,0 193,1120 Z M 193,1556 L 377,1556 377,1323 193,1323 193,1556 Z"/>
- <glyph unicode="g" horiz-adv-x="1006" d="M 930,573 C 930,706 903,810 848,883 793,956 715,993 616,993 517,993 441,956 386,883 331,810 303,706 303,573 303,440 331,337 386,264 441,191 517,154 616,154 715,154 793,191 848,264 903,337 930,440 930,573 Z M 1114,139 C 1114,-52 1072,-193 987,-287 902,-379 773,-426 598,-426 533,-426 472,-421 415,-412 358,-402 302,-387 248,-367 L 248,-188 C 302,-217 355,-239 408,-253 461,-267 514,-274 569,-274 690,-274 780,-242 840,-180 900,-116 930,-21 930,106 L 930,197 C 892,131 843,82 784,49 725,16 654,0 571,0 434,0 323,52 239,157 155,262 113,400 113,573 113,746 155,885 239,990 323,1095 434,1147 571,1147 654,1147 725,1131 784,1098 843,1065 892,1016 930,950 L 930,1120 1114,1120 1114,139 Z"/>
- <glyph unicode="e" horiz-adv-x="1059" d="M 1151,606 L 1151,516 305,516 C 313,389 351,293 420,227 488,160 583,127 705,127 776,127 844,136 911,153 977,170 1043,196 1108,231 L 1108,57 C 1042,29 974,8 905,-7 836,-22 765,-29 694,-29 515,-29 374,23 270,127 165,231 113,372 113,549 113,732 163,878 262,986 361,1093 494,1147 662,1147 813,1147 932,1099 1020,1002 1107,905 1151,773 1151,606 Z M 967,659 C 966,760 938,841 883,901 828,961 755,991 664,991 561,991 479,962 418,904 356,846 320,764 311,659 L 967,659 Z"/>
- <glyph unicode="d" horiz-adv-x="1006" d="M 930,950 L 930,1556 1114,1556 1114,0 930,0 930,168 C 891,101 843,52 784,20 725,-13 654,-29 571,-29 436,-29 326,25 241,133 156,241 113,383 113,559 113,735 156,877 241,985 326,1093 436,1147 571,1147 654,1147 725,1131 784,1099 843,1066 891,1017 930,950 Z M 303,559 C 303,424 331,318 387,241 442,164 519,125 616,125 713,125 790,164 846,241 902,318 930,424 930,559 930,694 902,801 846,878 790,955 713,993 616,993 519,993 442,955 387,878 331,801 303,694 303,559 Z"/>
- <glyph unicode="a" horiz-adv-x="980" d="M 702,563 C 553,563 450,546 393,512 336,478 307,420 307,338 307,273 329,221 372,183 415,144 473,125 547,125 649,125 731,161 793,234 854,306 885,402 885,522 L 885,563 702,563 Z M 1069,639 L 1069,0 885,0 885,170 C 843,102 791,52 728,20 665,-13 589,-29 498,-29 383,-29 292,3 225,68 157,132 123,218 123,326 123,452 165,547 250,611 334,675 460,707 627,707 L 885,707 885,725 C 885,810 857,875 802,922 746,968 668,991 567,991 503,991 441,983 380,968 319,953 261,930 205,899 L 205,1069 C 272,1095 338,1115 401,1128 464,1141 526,1147 586,1147 748,1147 869,1105 949,1021 1029,937 1069,810 1069,639 Z"/>
- <glyph unicode="T" horiz-adv-x="1297" d="M -6,1493 L 1257,1493 1257,1323 727,1323 727,0 524,0 524,1323 -6,1323 -6,1493 Z"/>
- <glyph unicode="N" horiz-adv-x="1165" d="M 201,1493 L 473,1493 1135,244 1135,1493 1331,1493 1331,0 1059,0 397,1249 397,0 201,0 201,1493 Z"/>
- <glyph unicode="C" horiz-adv-x="1218" d="M 1319,1378 L 1319,1165 C 1251,1228 1179,1276 1102,1307 1025,1338 943,1354 856,1354 685,1354 555,1302 464,1198 373,1093 328,942 328,745 328,548 373,398 464,294 555,189 685,137 856,137 943,137 1025,153 1102,184 1179,215 1251,263 1319,326 L 1319,115 C 1248,67 1174,31 1095,7 1016,-17 932,-29 844,-29 618,-29 440,40 310,179 180,317 115,506 115,745 115,985 180,1174 310,1313 440,1451 618,1520 844,1520 933,1520 1018,1508 1097,1485 1176,1461 1250,1425 1319,1378 Z"/>
- <glyph unicode="2" horiz-adv-x="980" d="M 393,170 L 1098,170 1098,0 150,0 150,170 C 227,249 331,356 464,490 596,623 679,709 713,748 778,821 823,882 849,933 874,983 887,1032 887,1081 887,1160 859,1225 804,1275 748,1325 675,1350 586,1350 523,1350 456,1339 386,1317 315,1295 240,1262 160,1217 L 160,1421 C 241,1454 317,1478 388,1495 459,1512 523,1520 582,1520 737,1520 860,1481 952,1404 1044,1327 1090,1223 1090,1094 1090,1033 1079,975 1056,920 1033,865 991,800 930,725 913,706 860,650 771,558 682,465 556,336 393,170 Z"/>
- <glyph unicode="-" horiz-adv-x="583" d="M 100,643 L 639,643 639,479 100,479 100,643 Z"/>
- <glyph unicode=" " horiz-adv-x="635"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="bold" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1271" d="M 455,573 L 51,1120 430,1120 659,788 891,1120 1270,1120 866,575 1290,0 911,0 659,354 410,0 31,0 455,573 Z"/>
- <glyph unicode="v" horiz-adv-x="1298" d="M 31,1120 L 389,1120 668,346 946,1120 1305,1120 864,0 471,0 31,1120 Z"/>
- <glyph unicode="u" horiz-adv-x="1138" d="M 160,436 L 160,1120 520,1120 520,1008 C 520,947 520,871 519,780 518,688 518,627 518,596 518,506 520,441 525,402 530,362 538,333 549,315 564,292 583,274 607,261 630,248 657,242 688,242 763,242 821,271 864,328 907,385 928,465 928,567 L 928,1120 1286,1120 1286,0 928,0 928,162 C 874,97 817,49 757,18 696,-13 630,-29 557,-29 428,-29 329,11 262,90 194,169 160,285 160,436 Z"/>
- <glyph unicode="t" horiz-adv-x="928" d="M 563,1438 L 563,1120 932,1120 932,864 563,864 563,389 C 563,337 573,302 594,284 615,265 656,256 717,256 L 901,256 901,0 594,0 C 453,0 353,30 294,89 235,148 205,248 205,389 L 205,864 27,864 27,1120 205,1120 205,1438 563,1438 Z"/>
- <glyph unicode="s" horiz-adv-x="1060" d="M 1047,1085 L 1047,813 C 970,845 896,869 825,885 754,901 686,909 623,909 555,909 505,901 472,884 439,867 422,840 422,805 422,776 435,754 460,739 485,724 529,712 594,705 L 657,696 C 840,673 964,634 1027,581 1090,528 1122,444 1122,330 1122,211 1078,121 990,61 902,1 771,-29 596,-29 522,-29 446,-23 367,-12 288,0 206,18 123,41 L 123,313 C 194,278 268,252 343,235 418,218 494,209 571,209 641,209 694,219 729,238 764,257 782,286 782,324 782,356 770,380 746,396 721,411 673,423 600,432 L 537,440 C 378,460 266,497 202,551 138,605 106,687 106,797 106,916 147,1004 228,1061 309,1118 434,1147 602,1147 668,1147 737,1142 810,1132 883,1122 962,1106 1047,1085 Z"/>
- <glyph unicode="r" horiz-adv-x="847" d="M 1004,815 C 973,830 942,841 911,848 880,855 848,858 817,858 725,858 654,829 605,770 555,711 530,626 530,516 L 530,0 172,0 172,1120 530,1120 530,936 C 576,1009 629,1062 689,1095 748,1128 820,1145 903,1145 915,1145 928,1145 942,1145 956,1145 976,1143 1003,1139 L 1004,815 Z"/>
- <glyph unicode="p" horiz-adv-x="1218" d="M 530,162 L 530,-426 172,-426 172,1120 530,1120 530,956 C 579,1021 634,1070 694,1101 754,1132 823,1147 901,1147 1039,1147 1152,1092 1241,983 1330,873 1374,732 1374,559 1374,386 1330,245 1241,136 1152,26 1039,-29 901,-29 823,-29 754,-13 694,18 634,49 579,97 530,162 Z M 768,887 C 691,887 633,859 592,803 551,746 530,665 530,559 530,453 551,372 592,316 633,259 691,231 768,231 845,231 903,259 944,315 984,371 1004,452 1004,559 1004,666 984,747 944,803 903,859 845,887 768,887 Z"/>
- <glyph unicode="o" horiz-adv-x="1245" d="M 705,891 C 626,891 565,863 524,806 482,749 461,666 461,559 461,452 482,370 524,313 565,256 626,227 705,227 783,227 843,256 884,313 925,370 946,452 946,559 946,666 925,749 884,806 843,863 783,891 705,891 Z M 705,1147 C 898,1147 1048,1095 1157,991 1265,887 1319,743 1319,559 1319,375 1265,231 1157,127 1048,23 898,-29 705,-29 512,-29 361,23 252,127 143,231 88,375 88,559 88,743 143,887 252,991 361,1095 512,1147 705,1147 Z"/>
- <glyph unicode="n" horiz-adv-x="1138" d="M 1298,682 L 1298,0 938,0 938,111 938,522 C 938,619 936,685 932,722 927,759 920,786 909,803 895,826 876,845 852,858 828,871 801,877 770,877 695,877 637,848 594,791 551,733 530,653 530,551 L 530,0 172,0 172,1120 530,1120 530,956 C 584,1021 641,1070 702,1101 763,1132 830,1147 903,1147 1032,1147 1131,1107 1198,1028 1265,949 1298,833 1298,682 Z"/>
- <glyph unicode="l" horiz-adv-x="371" d="M 172,1556 L 530,1556 530,0 172,0 172,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="371" d="M 172,1120 L 530,1120 530,0 172,0 172,1120 Z M 172,1556 L 530,1556 530,1264 172,1264 172,1556 Z"/>
- <glyph unicode="e" horiz-adv-x="1218" d="M 1290,563 L 1290,461 453,461 C 462,377 492,314 544,272 596,230 669,209 762,209 837,209 915,220 994,243 1073,265 1154,299 1237,344 L 1237,68 C 1152,36 1068,12 983,-5 898,-21 814,-29 729,-29 526,-29 369,23 257,126 144,229 88,373 88,559 88,742 143,885 254,990 364,1095 516,1147 709,1147 885,1147 1026,1094 1132,988 1237,882 1290,740 1290,563 Z M 922,682 C 922,750 902,805 863,847 823,888 771,909 707,909 638,909 581,890 538,851 495,812 468,755 457,682 L 922,682 Z"/>
- <glyph unicode="c" horiz-adv-x="1007" d="M 1077,1085 L 1077,793 C 1028,826 980,851 931,867 882,883 831,891 778,891 678,891 600,862 545,804 489,745 461,664 461,559 461,454 489,373 545,315 600,256 678,227 778,227 834,227 887,235 938,252 988,269 1034,293 1077,326 L 1077,33 C 1021,12 964,-3 907,-14 849,-24 791,-29 733,-29 531,-29 373,23 259,127 145,230 88,374 88,559 88,744 145,888 259,992 373,1095 531,1147 733,1147 792,1147 850,1142 907,1132 964,1121 1020,1106 1077,1085 Z"/>
- <glyph unicode="a" horiz-adv-x="1139" d="M 674,504 C 599,504 543,491 506,466 468,441 449,403 449,354 449,309 464,273 495,248 525,222 567,209 621,209 688,209 745,233 791,282 837,330 860,390 860,463 L 860,504 674,504 Z M 1221,639 L 1221,0 860,0 860,166 C 812,98 758,49 698,18 638,-13 565,-29 479,-29 363,-29 269,5 197,73 124,140 88,228 88,336 88,467 133,564 224,625 314,686 456,717 649,717 L 860,717 860,745 C 860,802 838,843 793,870 748,896 679,909 584,909 507,909 436,901 370,886 304,871 243,848 186,817 L 186,1090 C 263,1109 340,1123 417,1133 494,1142 572,1147 649,1147 851,1147 997,1107 1087,1028 1176,948 1221,818 1221,639 Z"/>
- <glyph unicode="]" horiz-adv-x="636" d="M 760,-270 L 139,-270 139,-45 420,-45 420,1331 139,1331 139,1556 760,1556 760,-270 Z"/>
- <glyph unicode="[" horiz-adv-x="636" d="M 176,1556 L 797,1556 797,1331 516,1331 516,-45 797,-45 797,-270 176,-270 176,1556 Z"/>
- <glyph unicode="U" horiz-adv-x="1298" d="M 188,1493 L 573,1493 573,598 C 573,475 593,387 634,334 674,281 740,254 831,254 923,254 989,281 1030,334 1070,387 1090,475 1090,598 L 1090,1493 1475,1493 1475,598 C 1475,387 1422,229 1316,126 1210,23 1048,-29 831,-29 614,-29 453,23 347,126 241,229 188,387 188,598 L 188,1493 Z"/>
- <glyph unicode="T" horiz-adv-x="1403" d="M 10,1493 L 1386,1493 1386,1202 891,1202 891,0 506,0 506,1202 10,1202 10,1493 Z"/>
- <glyph unicode="S" horiz-adv-x="1192" d="M 1227,1446 L 1227,1130 C 1145,1167 1065,1194 987,1213 909,1232 835,1241 766,1241 674,1241 606,1228 562,1203 518,1178 496,1138 496,1085 496,1045 511,1014 541,992 570,969 624,950 702,934 L 866,901 C 1032,868 1150,817 1220,749 1290,681 1325,584 1325,459 1325,294 1276,172 1179,92 1081,11 932,-29 731,-29 636,-29 541,-20 446,-2 351,16 255,43 160,78 L 160,403 C 255,352 348,314 437,289 526,263 611,250 694,250 778,250 842,264 887,292 932,320 954,360 954,412 954,459 939,495 909,520 878,545 818,568 727,588 L 578,621 C 429,653 320,704 251,774 182,844 147,938 147,1057 147,1206 195,1320 291,1400 387,1480 525,1520 705,1520 787,1520 871,1514 958,1502 1045,1489 1134,1471 1227,1446 Z"/>
- <glyph unicode="N" horiz-adv-x="1351" d="M 188,1493 L 618,1493 1161,469 1161,1493 1526,1493 1526,0 1096,0 553,1024 553,0 188,0 188,1493 Z"/>
- <glyph unicode="L" horiz-adv-x="1060" d="M 188,1493 L 573,1493 573,291 1249,291 1249,0 188,0 188,1493 Z"/>
- <glyph unicode="K" horiz-adv-x="1456" d="M 188,1493 L 573,1493 573,948 1128,1493 1575,1493 856,786 1649,0 1167,0 573,588 573,0 188,0 188,1493 Z"/>
- <glyph unicode="I" horiz-adv-x="398" d="M 188,1493 L 573,1493 573,0 188,0 188,1493 Z"/>
- <glyph unicode="H" horiz-adv-x="1351" d="M 188,1493 L 573,1493 573,924 1141,924 1141,1493 1526,1493 1526,0 1141,0 1141,633 573,633 573,0 188,0 188,1493 Z"/>
- <glyph unicode="G" horiz-adv-x="1457" d="M 1530,111 C 1434,64 1334,29 1231,6 1128,-17 1021,-29 911,-29 662,-29 465,41 320,180 175,319 102,507 102,745 102,986 176,1175 324,1313 472,1451 675,1520 932,1520 1031,1520 1127,1511 1218,1492 1309,1473 1394,1446 1475,1409 L 1475,1100 C 1392,1147 1309,1183 1227,1206 1144,1229 1062,1241 979,1241 826,1241 708,1198 625,1113 542,1027 500,904 500,745 500,587 540,465 620,379 700,293 814,250 961,250 1001,250 1038,253 1073,258 1107,263 1138,270 1165,281 L 1165,571 930,571 930,829 1530,829 1530,111 Z"/>
- <glyph unicode="D" horiz-adv-x="1404" d="M 573,1202 L 573,291 711,291 C 868,291 989,330 1072,408 1155,486 1196,599 1196,748 1196,896 1155,1009 1072,1086 989,1163 869,1202 711,1202 L 573,1202 Z M 188,1493 L 594,1493 C 821,1493 990,1477 1101,1445 1212,1412 1307,1357 1386,1280 1456,1213 1508,1135 1542,1047 1576,959 1593,859 1593,748 1593,635 1576,535 1542,447 1508,358 1456,280 1386,213 1306,136 1210,81 1098,49 986,16 818,0 594,0 L 188,0 188,1493 Z"/>
- <glyph unicode="C" horiz-adv-x="1298" d="M 1372,82 C 1301,45 1228,18 1151,-1 1074,-20 994,-29 911,-29 662,-29 465,41 320,180 175,319 102,507 102,745 102,984 175,1173 320,1312 465,1451 662,1520 911,1520 994,1520 1074,1511 1151,1492 1228,1473 1301,1446 1372,1409 L 1372,1100 C 1301,1149 1230,1184 1161,1207 1092,1230 1019,1241 942,1241 805,1241 697,1197 618,1109 539,1021 500,900 500,745 500,591 539,470 618,382 697,294 805,250 942,250 1019,250 1092,261 1161,284 1230,307 1301,342 1372,391 L 1372,82 Z"/>
- <glyph unicode="7" horiz-adv-x="1139" d="M 137,1493 L 1262,1493 1262,1276 680,0 305,0 856,1210 137,1210 137,1493 Z"/>
- <glyph unicode="2" horiz-adv-x="1086" d="M 590,283 L 1247,283 1247,0 162,0 162,283 707,764 C 756,808 792,851 815,893 838,935 850,979 850,1024 850,1094 827,1150 780,1193 733,1236 670,1257 592,1257 532,1257 466,1244 395,1219 324,1193 247,1155 166,1104 L 166,1432 C 253,1461 338,1483 423,1498 508,1513 591,1520 672,1520 851,1520 990,1481 1089,1402 1188,1323 1237,1214 1237,1073 1237,992 1216,916 1174,846 1132,775 1044,681 909,563 L 590,283 Z"/>
- <glyph unicode="1" horiz-adv-x="1085" d="M 240,266 L 580,266 580,1231 231,1159 231,1421 578,1493 944,1493 944,266 1284,266 1284,0 240,0 240,266 Z"/>
- <glyph unicode="0" horiz-adv-x="1245" d="M 942,748 C 942,935 925,1066 890,1143 855,1219 796,1257 713,1257 630,1257 571,1219 536,1143 501,1066 483,935 483,748 483,559 501,426 536,349 571,272 630,233 713,233 795,233 854,272 889,349 924,426 942,559 942,748 Z M 1327,745 C 1327,498 1274,307 1167,173 1060,38 909,-29 713,-29 516,-29 365,38 258,173 151,307 98,498 98,745 98,993 151,1184 258,1319 365,1453 516,1520 713,1520 909,1520 1060,1453 1167,1319 1274,1184 1327,993 1327,745 Z"/>
- <glyph unicode="." horiz-adv-x="398" d="M 209,387 L 569,387 569,0 209,0 209,387 Z"/>
- <glyph unicode="-" horiz-adv-x="636" d="M 111,735 L 739,735 739,444 111,444 111,735 Z"/>
- <glyph unicode=" " horiz-adv-x="714"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_3" horiz-adv-x="2048">
- <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1006" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
- <glyph unicode="u" horiz-adv-x="874" d="M 314,1082 L 314,396 C 314,325 321,269 335,230 349,191 371,162 402,145 433,128 478,119 537,119 624,119 692,149 742,208 792,267 817,350 817,455 L 817,1082 997,1082 997,231 C 997,105 999,28 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 826,132 825,185 L 822,185 C 781,110 733,58 679,27 624,-4 557,-20 476,-20 357,-20 271,10 216,69 161,128 133,225 133,361 L 133,1082 314,1082 Z"/>
- <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 495,-8 434,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 474,127 509,132 554,141 L 554,8 Z"/>
- <glyph unicode="s" horiz-adv-x="901" d="M 950,299 C 950,197 912,118 835,63 758,8 650,-20 511,-20 376,-20 273,2 200,47 127,91 79,160 57,254 L 216,285 C 231,227 263,185 311,158 359,131 426,117 511,117 602,117 669,131 712,159 754,187 775,229 775,285 775,328 760,362 731,389 702,416 654,438 589,455 L 460,489 C 357,516 283,542 240,568 196,593 162,624 137,661 112,698 100,743 100,796 100,895 135,970 206,1022 276,1073 378,1099 513,1099 632,1099 727,1078 798,1036 868,994 912,927 931,834 L 769,814 C 759,862 732,899 689,925 645,950 586,963 513,963 432,963 372,951 333,926 294,901 275,864 275,814 275,783 283,758 299,738 315,718 339,701 370,687 401,673 467,654 568,629 663,605 732,583 774,563 816,542 849,520 874,495 898,470 917,442 930,410 943,377 950,340 950,299 Z"/>
- <glyph unicode="r" horiz-adv-x="530" d="M 142,0 L 142,830 C 142,906 140,990 136,1082 L 306,1082 C 311,959 314,886 314,861 L 318,861 C 347,954 380,1017 417,1051 454,1085 507,1102 575,1102 599,1102 623,1099 648,1092 L 648,927 C 624,934 592,937 552,937 477,937 420,905 381,841 342,776 322,684 322,564 L 322,0 142,0 Z"/>
- <glyph unicode="q" horiz-adv-x="927" d="M 484,-20 C 347,-20 246,26 182,119 118,212 86,351 86,536 86,913 219,1102 484,1102 566,1102 634,1088 687,1059 740,1030 785,981 821,914 L 823,914 C 823,934 824,969 827,1018 830,1067 832,1093 835,1096 L 1008,1096 C 1003,1057 1001,958 1001,801 L 1001,-425 821,-425 821,14 825,178 823,178 C 787,107 743,56 690,26 637,-5 569,-20 484,-20 Z M 821,554 C 821,695 798,799 752,867 706,935 633,969 532,969 441,969 375,935 335,867 295,799 275,691 275,542 275,391 295,282 336,217 376,152 441,119 530,119 632,119 706,155 752,228 798,301 821,409 821,554 Z"/>
- <glyph unicode="p" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 488,-20 376,43 319,168 L 314,168 C 317,163 318,106 318,-2 L 318,-425 138,-425 138,861 C 138,972 136,1046 132,1082 L 306,1082 C 307,1079 308,1070 309,1054 310,1037 312,1012 314,978 315,944 316,921 316,908 L 320,908 C 352,975 394,1024 447,1055 500,1086 569,1101 655,1101 788,1101 888,1056 954,967 1020,878 1053,737 1053,546 Z M 864,542 C 864,693 844,800 803,865 762,930 698,962 609,962 538,962 482,947 442,917 401,887 371,840 350,777 329,713 318,630 318,528 318,386 341,281 386,214 431,147 505,113 607,113 696,113 762,146 803,212 844,277 864,387 864,542 Z"/>
- <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 407,-20 288,28 207,125 126,221 86,360 86,542 86,915 248,1102 571,1102 736,1102 858,1057 936,966 1014,875 1053,733 1053,542 Z M 864,542 C 864,691 842,800 798,868 753,935 679,969 574,969 469,969 393,935 346,866 299,797 275,689 275,542 275,399 298,292 345,221 391,149 464,113 563,113 671,113 748,148 795,217 841,286 864,395 864,542 Z"/>
- <glyph unicode="n" horiz-adv-x="874" d="M 825,0 L 825,686 C 825,757 818,813 804,852 790,891 768,920 737,937 706,954 661,963 602,963 515,963 447,933 397,874 347,815 322,732 322,627 L 322,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 358,972 406,1025 461,1056 515,1087 582,1102 663,1102 782,1102 869,1073 924,1014 979,955 1006,857 1006,721 L 1006,0 825,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1457" d="M 768,0 L 768,686 C 768,791 754,863 725,903 696,943 645,963 570,963 493,963 433,934 388,875 343,816 321,734 321,627 L 321,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 356,974 400,1027 450,1057 500,1087 561,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 967,970 1013,1022 1066,1054 1119,1086 1183,1102 1258,1102 1367,1102 1447,1072 1497,1013 1546,954 1571,856 1571,721 L 1571,0 1393,0 1393,686 C 1393,791 1379,863 1350,903 1321,943 1270,963 1195,963 1116,963 1055,934 1012,876 968,817 946,734 946,627 L 946,0 768,0 Z"/>
- <glyph unicode="l" horiz-adv-x="187" d="M 138,0 L 138,1484 318,1484 318,0 138,0 Z"/>
- <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/>
- <glyph unicode="h" horiz-adv-x="874" d="M 317,897 C 356,968 402,1020 457,1053 511,1086 580,1102 663,1102 780,1102 867,1073 923,1015 978,956 1006,858 1006,721 L 1006,0 825,0 825,686 C 825,762 818,819 804,856 790,893 767,920 735,937 703,954 659,963 602,963 517,963 450,934 399,875 348,816 322,737 322,638 L 322,0 142,0 142,1484 322,1484 322,1098 C 322,1057 321,1015 319,972 316,929 315,904 314,897 L 317,897 Z"/>
- <glyph unicode="g" horiz-adv-x="927" d="M 548,-425 C 430,-425 336,-402 266,-356 196,-309 151,-243 131,-158 L 312,-132 C 324,-182 351,-220 392,-248 433,-274 486,-288 553,-288 732,-288 822,-183 822,27 L 822,201 820,201 C 786,132 739,80 680,45 621,10 551,-8 472,-8 339,-8 242,36 180,124 117,212 86,350 86,539 86,730 120,872 187,963 254,1054 355,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,917 825,952 828,1001 831,1050 833,1077 836,1082 L 1007,1082 C 1003,1046 1001,971 1001,858 L 1001,31 C 1001,-273 850,-425 548,-425 Z M 822,541 C 822,629 810,705 786,769 762,832 728,881 685,915 641,948 591,965 536,965 444,965 377,932 335,865 293,798 272,690 272,541 272,393 292,287 331,222 370,157 438,125 533,125 590,125 640,142 684,175 728,208 762,256 786,319 810,381 822,455 822,541 Z"/>
- <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,379 302,283 353,216 404,149 479,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 954,65 807,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,727 129,864 213,959 296,1054 416,1102 571,1102 889,1102 1048,910 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 481,969 412,940 361,882 310,823 282,743 278,641 L 862,641 Z"/>
- <glyph unicode="d" horiz-adv-x="927" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 821,1035 821,1484 1001,1484 1001,223 C 1001,110 1003,36 1007,0 L 835,0 C 833,11 831,35 829,74 826,113 825,146 825,174 L 821,174 Z M 275,542 C 275,391 295,282 335,217 375,152 440,119 530,119 632,119 706,154 752,225 798,296 821,405 821,554 821,697 798,802 752,869 706,936 633,969 532,969 441,969 376,936 336,869 295,802 275,693 275,542 Z"/>
- <glyph unicode="c" horiz-adv-x="901" d="M 275,546 C 275,402 298,295 343,226 388,157 457,122 548,122 612,122 666,139 709,174 752,209 778,262 788,334 L 970,322 C 956,218 912,135 837,73 762,11 668,-20 553,-20 402,-20 286,28 207,124 127,219 87,359 87,542 87,724 127,863 207,959 287,1054 402,1102 551,1102 662,1102 754,1073 827,1016 900,959 945,880 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 451,961 382,929 339,866 296,803 275,696 275,546 Z"/>
- <glyph unicode="b" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 573,-20 505,-5 451,25 396,54 352,102 318,168 L 316,168 C 316,147 315,116 312,74 309,31 307,7 306,0 L 132,0 C 136,36 138,110 138,223 L 138,1484 318,1484 318,1061 C 318,1018 317,967 314,908 L 318,908 C 351,977 396,1027 451,1057 506,1087 574,1102 655,1102 792,1102 892,1056 957,964 1021,872 1053,733 1053,546 Z M 864,540 C 864,691 844,800 804,865 764,930 699,963 609,963 508,963 434,928 388,859 341,790 318,680 318,529 318,387 341,282 386,215 431,147 505,113 607,113 698,113 763,147 804,214 844,281 864,389 864,540 Z"/>
- <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,123 87,202 87,302 87,414 124,500 198,560 271,620 390,652 554,656 L 797,660 797,719 C 797,807 778,870 741,908 704,946 645,965 565,965 484,965 426,951 389,924 352,897 330,853 323,793 L 135,810 C 166,1005 310,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1097,111 1117,113 1139,118 L 1139,6 C 1094,-5 1047,-10 1000,-10 933,-10 885,8 855,43 824,78 807,132 803,207 L 797,207 C 751,124 698,66 637,32 576,-3 501,-20 414,-20 Z M 455,115 C 521,115 580,130 631,160 682,190 723,231 753,284 782,336 797,390 797,445 L 797,534 600,530 C 515,529 451,520 408,504 364,488 330,463 307,430 284,397 272,353 272,299 272,240 288,195 320,163 351,131 396,115 455,115 Z"/>
- <glyph unicode="]" horiz-adv-x="424" d="M 16,-425 L 16,-296 249,-296 249,1355 16,1355 16,1484 423,1484 423,-425 16,-425 Z"/>
- <glyph unicode="[" horiz-adv-x="425" d="M 146,-425 L 146,1484 553,1484 553,1355 320,1355 320,-296 553,-296 553,-425 146,-425 Z"/>
- <glyph unicode="W" horiz-adv-x="1932" d="M 1511,0 L 1283,0 1039,895 C 1023,951 1000,1051 969,1196 952,1119 937,1054 925,1002 913,950 822,616 652,0 L 424,0 9,1409 208,1409 461,514 C 491,402 519,287 544,168 560,241 579,321 600,408 621,495 713,828 877,1409 L 1060,1409 1305,532 C 1342,389 1372,267 1393,168 L 1402,203 C 1420,280 1435,342 1446,391 1457,439 1551,778 1727,1409 L 1926,1409 1511,0 Z"/>
- <glyph unicode="V" horiz-adv-x="1377" d="M 782,0 L 584,0 9,1409 210,1409 600,417 684,168 768,417 1156,1409 1357,1409 782,0 Z"/>
- <glyph unicode="T" horiz-adv-x="1192" d="M 720,1253 L 720,0 530,0 530,1253 46,1253 46,1409 1204,1409 1204,1253 720,1253 Z"/>
- <glyph unicode="N" horiz-adv-x="1165" d="M 1082,0 L 328,1200 333,1103 338,936 338,0 168,0 168,1409 390,1409 1152,201 C 1144,332 1140,426 1140,485 L 1140,1409 1312,1409 1312,0 1082,0 Z"/>
- <glyph unicode="L" horiz-adv-x="927" d="M 168,0 L 168,1409 359,1409 359,156 1071,156 1071,0 168,0 Z"/>
- <glyph unicode="I" horiz-adv-x="213" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
- <glyph unicode="G" horiz-adv-x="1377" d="M 103,711 C 103,940 164,1117 287,1242 410,1367 582,1430 804,1430 960,1430 1087,1404 1184,1351 1281,1298 1356,1214 1409,1098 L 1227,1044 C 1187,1124 1132,1182 1062,1219 991,1256 904,1274 799,1274 636,1274 512,1225 426,1127 340,1028 297,890 297,711 297,533 343,393 434,290 525,187 652,135 813,135 905,135 991,149 1071,177 1150,205 1215,243 1264,291 L 1264,545 843,545 843,705 1440,705 1440,219 C 1365,143 1274,84 1166,43 1057,1 940,-20 813,-20 666,-20 539,9 432,68 325,127 244,211 188,322 131,432 103,562 103,711 Z"/>
- <glyph unicode="F" horiz-adv-x="1006" d="M 359,1253 L 359,729 1145,729 1145,571 359,571 359,0 168,0 168,1409 1169,1409 1169,1253 359,1253 Z"/>
- <glyph unicode="E" horiz-adv-x="1138" d="M 168,0 L 168,1409 1237,1409 1237,1253 359,1253 359,801 1177,801 1177,647 359,647 359,156 1278,156 1278,0 168,0 Z"/>
- <glyph unicode="D" horiz-adv-x="1218" d="M 1381,719 C 1381,574 1353,447 1296,338 1239,229 1159,145 1055,87 951,29 831,0 695,0 L 168,0 168,1409 634,1409 C 873,1409 1057,1349 1187,1230 1316,1110 1381,940 1381,719 Z M 1189,719 C 1189,894 1141,1027 1046,1119 950,1210 811,1256 630,1256 L 359,1256 359,153 673,153 C 776,153 867,176 946,221 1024,266 1084,332 1126,417 1168,502 1189,603 1189,719 Z"/>
- <glyph unicode="A" horiz-adv-x="1377" d="M 1167,0 L 1006,412 364,412 202,0 4,0 579,1409 796,1409 1362,0 1167,0 Z M 685,1265 L 676,1237 C 659,1182 635,1111 602,1024 L 422,561 949,561 768,1026 C 749,1072 731,1124 712,1182 L 685,1265 Z"/>
- <glyph unicode=":" horiz-adv-x="213" d="M 187,875 L 187,1082 382,1082 382,875 187,875 Z M 187,0 L 187,207 382,207 382,0 187,0 Z"/>
- <glyph unicode="3" horiz-adv-x="1006" d="M 1049,389 C 1049,259 1008,158 925,87 842,16 724,-20 571,-20 428,-20 315,12 230,77 145,141 94,236 78,362 L 264,379 C 288,212 390,129 571,129 662,129 733,151 785,196 836,241 862,307 862,395 862,472 833,532 774,575 715,618 629,639 518,639 L 416,639 416,795 514,795 C 613,795 689,817 744,860 798,903 825,962 825,1038 825,1113 803,1173 759,1217 714,1260 648,1282 561,1282 482,1282 418,1262 369,1221 320,1180 291,1123 283,1049 L 102,1063 C 115,1178 163,1268 246,1333 328,1398 434,1430 563,1430 704,1430 814,1397 893,1332 971,1266 1010,1174 1010,1057 1010,967 985,894 935,838 884,781 811,743 715,723 L 715,719 C 820,708 902,672 961,613 1020,554 1049,479 1049,389 Z"/>
- <glyph unicode="2" horiz-adv-x="954" d="M 103,0 L 103,127 C 137,205 179,274 228,334 277,393 328,447 382,496 436,544 490,589 543,630 596,671 643,713 686,754 729,795 763,839 790,884 816,929 829,981 829,1038 829,1115 806,1175 761,1218 716,1261 653,1282 572,1282 495,1282 432,1261 383,1220 333,1178 304,1119 295,1044 L 111,1061 C 124,1174 172,1263 255,1330 337,1397 443,1430 572,1430 714,1430 823,1397 900,1330 976,1263 1014,1167 1014,1044 1014,989 1002,935 977,881 952,827 914,773 865,719 816,665 721,581 582,468 505,405 444,349 399,299 354,248 321,200 301,153 L 1036,153 1036,0 103,0 Z"/>
- <glyph unicode="1" horiz-adv-x="927" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
- <glyph unicode="0" horiz-adv-x="980" d="M 1059,705 C 1059,470 1018,290 935,166 852,42 729,-20 567,-20 405,-20 283,42 202,165 121,288 80,468 80,705 80,947 120,1128 199,1249 278,1370 402,1430 573,1430 739,1430 862,1369 941,1247 1020,1125 1059,944 1059,705 Z M 876,705 C 876,908 853,1056 806,1147 759,1238 681,1284 573,1284 462,1284 383,1239 335,1149 286,1059 262,911 262,705 262,505 287,359 336,266 385,173 462,127 569,127 675,127 753,174 802,269 851,364 876,509 876,705 Z"/>
- <glyph unicode="-" horiz-adv-x="531" d="M 91,464 L 91,624 591,624 591,464 91,464 Z"/>
- <glyph unicode=" " horiz-adv-x="556"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="Group">
- <g class="com.sun.star.drawing.TextShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="3513" y="9607" width="5778" height="1806"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="3763" y="9923"><tspan fill="rgb(0,0,0)" stroke="none">Ethernet Wire Encapsulation: </tspan><tspan fill="rgb(0,0,0)" stroke="none">dot1q</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="526" y="829" width="13649" height="9754"/>
- <path fill="none" stroke="rgb(178,178,178)" stroke-width="28" stroke-linejoin="miter" d="M 7350,10568 L 540,10568 540,843 14160,843 14160,10568 7350,10568 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="3565" y="397" width="7485" height="690"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 7307,1072 L 3579,1072 3579,411 11035,411 11035,1072 7307,1072 Z"/>
- <path fill="none" stroke="rgb(178,178,178)" stroke-width="28" stroke-linejoin="miter" d="M 7307,1072 L 3579,1072 3579,411 11035,411 11035,1072 7307,1072 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="3834" y="857"><tspan fill="rgb(0,0,0)" stroke="none">2-Node Containerized Topologies</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="1314" y="1829" width="11849" height="6972"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 7238,8782 L 1332,8782 1332,1847 13144,1847 13144,8782 7238,8782 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7238,8782 L 1332,8782 1332,1847 13144,1847 13144,8782 7238,8782 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="5827" y="2395"><tspan fill="rgb(0,0,0)" stroke="none">Host Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="1627" y="2996" width="11312" height="5197"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 7283,8174 L 1645,8174 1645,3014 12920,3014 12920,8174 7283,8174 Z"/>
- <path fill="none" stroke="rgb(188,140,0)" stroke-width="35" stroke-linejoin="miter" d="M 7283,8174 L 1645,8174 1645,3014 12920,3014 12920,8174 7283,8174 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="1594" y="3032" width="9074" height="4468"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 6131,7481 L 1612,7481 1612,3050 10649,3050 10649,7481 6131,7481 Z"/>
- <path fill="none" stroke="rgb(112,173,71)" stroke-width="35" stroke-linejoin="miter" d="M 6131,7481 L 1612,7481 1612,3050 10649,3050 10649,7481 6131,7481 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="3873" y="3460" width="2528" height="1862"/>
- <g>
- <defs>
- <linearGradient id="gradient1" x1="5136" y1="3478" x2="5136" y2="5303" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient1)" d="M 5137,5303 L 3891,5303 3891,3478 6382,3478 6382,5303 5137,5303 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="35" stroke-linejoin="miter" d="M 5137,5303 L 3891,5303 3891,3478 6382,3478 6382,5303 5137,5303 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="4168" y="3826"><tspan fill="rgb(0,0,0)" stroke="none">cSUT[1.1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="3888" y="5484" width="2527" height="1861"/>
- <g>
- <defs>
- <linearGradient id="gradient2" x1="5151" y1="5502" x2="5151" y2="7326" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient2)" d="M 5151,7326 L 3906,7326 3906,5502 6396,5502 6396,7326 5151,7326 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="35" stroke-linejoin="miter" d="M 5151,7326 L 3906,7326 3906,5502 6396,5502 6396,7326 5151,7326 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="4309" y="5850"><tspan fill="rgb(0,0,0)" stroke="none">cTG[1.2]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="1871" y="3246" width="1557" height="4468"/>
- <path fill="rgb(255,192,0)" stroke="none" d="M 1889,5480 L 1889,3264 3409,3264 3409,7695 1889,7695 1889,5480 Z"/>
- <path fill="none" stroke="rgb(188,142,0)" stroke-width="35" stroke-linejoin="miter" d="M 1889,5480 L 1889,3264 3409,3264 3409,7695 1889,7695 1889,5480 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="1746" y="4896" width="1885" height="1348"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="2153" y="5500"><tspan fill="rgb(0,0,0)" stroke="none">Linux</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="2047" y="5853"><tspan fill="rgb(0,0,0)" stroke="none">Kernel</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="1784" y="7939" width="2274" height="457"/>
- <path fill="rgb(255,242,204)" stroke="none" d="M 1802,8044 L 1802,8044 1802,8039 1802,8035 1803,8030 1804,8026 1805,8021 1806,8017 1808,8013 1810,8009 1811,8005 1814,8000 1816,7997 1819,7993 1821,7989 1824,7986 1827,7982 1831,7979 1834,7976 1838,7974 1842,7971 1846,7969 1850,7966 1854,7965 1858,7963 1862,7961 1866,7960 1871,7959 1875,7958 1880,7957 1884,7957 1889,7957 3951,7957 3951,7957 3956,7957 3960,7957 3965,7958 3969,7959 3974,7960 3978,7961 3982,7963 3986,7965 3990,7966 3995,7969 3998,7971 4002,7974 4006,7976 4009,7979 4013,7982 4016,7986 4019,7989 4021,7993 4024,7997 4026,8001 4029,8005 4030,8009 4032,8013 4034,8017 4035,8021 4036,8026 4037,8030 4038,8035 4038,8039 4038,8044 4039,8289 4039,8289 4039,8294 4039,8298 4038,8303 4037,8307 4036,8312 4035,8316 4033,8320 4031,8324 4030,8328 4027,8332 4025,8336 4022,8340 4020,8344 4017,8347 4014,8351 4010,8354 4007,8357 4003,8359 3999,8362 3996,8364 3991,8367 3987,8368 3983,8370 3979,8372 3975,8373 3970,8374 3966,8375 3961,8376 3957,8376 3952,8376 1889,8377 1889,8377 1884,8377 1880,8377 1875,8376 1871,8375 1866,8374 1862,8373 1858,8371 1854,8369 1850,8368 1846,8365 1842,8363 1838,8360 1834,8358 1831,8355 1827,8352 1824,8348 1821,8345 1819,8341 1816,8337 1814,8334 1811,8329 1810,8325 1808,8321 1806,8317 1805,8313 1804,8308 1803,8304 1802,8299 1802,8295 1802,8290 1802,8044 Z M 1802,7957 L 1802,7957 Z M 4039,8377 L 4039,8377 Z"/>
- <path fill="none" stroke="rgb(188,140,0)" stroke-width="35" stroke-linejoin="miter" d="M 1802,8044 L 1802,8044 1802,8039 1802,8035 1803,8030 1804,8026 1805,8021 1806,8017 1808,8013 1810,8009 1811,8005 1814,8000 1816,7997 1819,7993 1821,7989 1824,7986 1827,7982 1831,7979 1834,7976 1838,7974 1842,7971 1846,7969 1850,7966 1854,7965 1858,7963 1862,7961 1866,7960 1871,7959 1875,7958 1880,7957 1884,7957 1889,7957 3951,7957 3951,7957 3956,7957 3960,7957 3965,7958 3969,7959 3974,7960 3978,7961 3982,7963 3986,7965 3990,7966 3995,7969 3998,7971 4002,7974 4006,7976 4009,7979 4013,7982 4016,7986 4019,7989 4021,7993 4024,7997 4026,8001 4029,8005 4030,8009 4032,8013 4034,8017 4035,8021 4036,8026 4037,8030 4038,8035 4038,8039 4038,8044 4039,8289 4039,8289 4039,8294 4039,8298 4038,8303 4037,8307 4036,8312 4035,8316 4033,8320 4031,8324 4030,8328 4027,8332 4025,8336 4022,8340 4020,8344 4017,8347 4014,8351 4010,8354 4007,8357 4003,8359 3999,8362 3996,8364 3991,8367 3987,8368 3983,8370 3979,8372 3975,8373 3970,8374 3966,8375 3961,8376 3957,8376 3952,8376 1889,8377 1889,8377 1884,8377 1880,8377 1875,8376 1871,8375 1866,8374 1862,8373 1858,8371 1854,8369 1850,8368 1846,8365 1842,8363 1838,8360 1834,8358 1831,8355 1827,8352 1824,8348 1821,8345 1819,8341 1816,8337 1814,8334 1811,8329 1810,8325 1808,8321 1806,8317 1805,8313 1804,8308 1803,8304 1802,8299 1802,8295 1802,8290 1802,8044 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="2059" y="8287"><tspan fill="rgb(0,0,0)" stroke="none">Linux-Host</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="4109" y="7526" width="2471" height="452"/>
- <path fill="rgb(226,240,217)" stroke="none" d="M 4127,7643 L 4127,7643 4127,7638 4128,7633 4128,7628 4129,7622 4130,7617 4132,7612 4134,7608 4136,7603 4138,7598 4140,7593 4143,7589 4146,7585 4149,7581 4152,7577 4156,7573 4160,7569 4164,7566 4168,7563 4172,7560 4177,7557 4181,7555 4186,7553 4191,7551 4195,7549 4200,7547 4205,7546 4211,7545 4216,7545 4221,7544 4226,7544 6461,7544 6461,7544 6466,7544 6471,7545 6476,7545 6482,7546 6487,7547 6492,7549 6496,7551 6501,7553 6506,7555 6511,7557 6515,7560 6519,7563 6523,7566 6527,7569 6531,7573 6535,7577 6538,7581 6541,7585 6544,7589 6547,7594 6549,7598 6551,7603 6553,7608 6555,7612 6557,7617 6558,7622 6559,7628 6559,7633 6560,7638 6560,7643 6561,7859 6560,7859 6560,7864 6559,7869 6559,7874 6558,7879 6557,7884 6555,7889 6554,7894 6552,7899 6549,7904 6547,7908 6544,7913 6541,7917 6538,7921 6535,7925 6531,7929 6528,7932 6524,7936 6520,7939 6515,7942 6511,7944 6507,7947 6502,7949 6497,7951 6492,7953 6487,7954 6482,7956 6477,7957 6472,7957 6467,7958 6462,7958 4226,7959 4226,7958 4221,7958 4216,7957 4211,7957 4206,7956 4201,7955 4196,7953 4191,7952 4186,7950 4181,7947 4177,7945 4172,7942 4168,7939 4164,7936 4160,7933 4156,7929 4153,7926 4149,7922 4146,7918 4143,7913 4141,7909 4138,7905 4136,7900 4134,7895 4132,7890 4131,7885 4129,7880 4128,7875 4128,7870 4127,7865 4127,7860 4127,7643 Z M 4127,7544 L 4127,7544 Z M 6561,7959 L 6561,7959 Z"/>
- <path fill="none" stroke="rgb(112,173,71)" stroke-width="35" stroke-linejoin="miter" d="M 4127,7643 L 4127,7643 4127,7638 4128,7633 4128,7628 4129,7622 4130,7617 4132,7612 4134,7608 4136,7603 4138,7598 4140,7593 4143,7589 4146,7585 4149,7581 4152,7577 4156,7573 4160,7569 4164,7566 4168,7563 4172,7560 4177,7557 4181,7555 4186,7553 4191,7551 4195,7549 4200,7547 4205,7546 4211,7545 4216,7545 4221,7544 4226,7544 6461,7544 6461,7544 6466,7544 6471,7545 6476,7545 6482,7546 6487,7547 6492,7549 6496,7551 6501,7553 6506,7555 6511,7557 6515,7560 6519,7563 6523,7566 6527,7569 6531,7573 6535,7577 6538,7581 6541,7585 6544,7589 6547,7594 6549,7598 6551,7603 6553,7608 6555,7612 6557,7617 6558,7622 6559,7628 6559,7633 6560,7638 6560,7643 6561,7859 6560,7859 6560,7864 6559,7869 6559,7874 6558,7879 6557,7884 6555,7889 6554,7894 6552,7899 6549,7904 6547,7908 6544,7913 6541,7917 6538,7921 6535,7925 6531,7929 6528,7932 6524,7936 6520,7939 6515,7942 6511,7944 6507,7947 6502,7949 6497,7951 6492,7953 6487,7954 6482,7956 6477,7957 6472,7957 6467,7958 6462,7958 4226,7959 4226,7958 4221,7958 4216,7957 4211,7957 4206,7956 4201,7955 4196,7953 4191,7952 4186,7950 4181,7947 4177,7945 4172,7942 4168,7939 4164,7936 4160,7933 4156,7929 4153,7926 4149,7922 4146,7918 4143,7913 4141,7909 4138,7905 4136,7900 4134,7895 4132,7890 4131,7885 4129,7880 4128,7875 4128,7870 4127,7865 4127,7860 4127,7643 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="4442" y="7872"><tspan fill="rgb(0,0,0)" stroke="none">User-Space</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="4124" y="4257" width="2062" height="854"/>
- <path fill="rgb(112,173,71)" stroke="none" d="M 5155,5092 L 4142,5092 4142,4275 6167,4275 6167,5092 5155,5092 Z"/>
- <path fill="none" stroke="rgb(82,127,52)" stroke-width="35" stroke-linejoin="miter" d="M 5155,5092 L 4142,5092 4142,4275 6167,4275 6167,5092 5155,5092 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="4824" y="4804"><tspan fill="rgb(255,255,255)" stroke="none">DUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="7575" y="3248" width="995" height="844"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="7825" y="3867"><tspan fill="rgb(128,128,128)" stroke="none">…</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="4121" y="6279" width="2062" height="855"/>
- <path fill="rgb(112,173,71)" stroke="none" d="M 5152,7115 L 4139,7115 4139,6297 6164,6297 6164,7115 5152,7115 Z"/>
- <path fill="none" stroke="rgb(82,127,52)" stroke-width="35" stroke-linejoin="miter" d="M 5152,7115 L 4139,7115 4139,6297 6164,6297 6164,7115 5152,7115 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="4937" y="6827"><tspan fill="rgb(255,255,255)" stroke="none">TG</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="4157" y="8287" width="8781" height="1345"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 8547,9622 L 4166,9622 4166,8296 12928,8296 12928,9622 8547,9622 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8547,9622 L 4166,9622 4166,8296 12928,8296 12928,9622 8547,9622 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="11059" y="9066"><tspan fill="rgb(0,0,0)" stroke="none">NIC x710</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="7504" y="9673" width="1689" height="542"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 7522,9691 L 7522,10196 9174,10196 9174,9692"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="6219" y="4505" width="2824" height="4593"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 9024,9079 L 9024,4523 6237,4523"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="6209" y="6585" width="1185" height="2514"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="35" stroke-linejoin="round" d="M 7375,9080 L 7375,6603 6227,6603"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="6210" y="6885" width="882" height="2213"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="35" stroke-linejoin="round" d="M 7073,9079 L 7073,6903 6228,6903"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="7503" y="9263" width="38" height="312"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 7522,9556 L 7522,9426 7521,9426 7521,9281"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="8490" y="9046" width="1362" height="254"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 9833,9064 L 9833,9064 9833,9075 9833,9087 9832,9098 9831,9109 9830,9120 9829,9131 9827,9141 9825,9152 9824,9162 9821,9172 9819,9182 9816,9191 9814,9200 9811,9209 9808,9217 9804,9225 9801,9232 9797,9239 9793,9245 9789,9251 9785,9256 9781,9261 9777,9266 9773,9269 9769,9273 9764,9275 9760,9277 9755,9279 9751,9280 9746,9280 8596,9281 8596,9281 8591,9281 8587,9280 8582,9278 8578,9276 8574,9274 8569,9270 8565,9267 8561,9262 8557,9257 8553,9252 8549,9246 8545,9240 8541,9233 8538,9226 8535,9218 8531,9210 8529,9201 8526,9192 8523,9183 8521,9173 8519,9163 8517,9153 8515,9142 8513,9132 8512,9121 8511,9110 8510,9099 8510,9088 8509,9076 8509,9065"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 9833,9064 L 9833,9064 Z"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 8508,9281 L 8508,9281 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="9153" y="9262" width="40" height="314"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 9174,9557 L 9174,9426 9171,9426 9171,9280"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="9881" y="3460" width="2527" height="1862"/>
- <g>
- <defs>
- <linearGradient id="gradient3" x1="11144" y1="3478" x2="11144" y2="5303" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient3)" d="M 11144,5303 L 9899,5303 9899,3478 12389,3478 12389,5303 11144,5303 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="35" stroke-linejoin="miter" d="M 11144,5303 L 9899,5303 9899,3478 12389,3478 12389,5303 11144,5303 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="10175" y="3826"><tspan fill="rgb(0,0,0)" stroke="none">cSUT[n.1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="9887" y="5484" width="2528" height="1861"/>
- <g>
- <defs>
- <linearGradient id="gradient4" x1="11150" y1="5502" x2="11150" y2="7326" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient4)" d="M 11151,7326 L 9905,7326 9905,5502 12396,5502 12396,7326 11151,7326 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="35" stroke-linejoin="miter" d="M 11151,7326 L 9905,7326 9905,5502 12396,5502 12396,7326 11151,7326 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="10305" y="5850"><tspan fill="rgb(0,0,0)" stroke="none">cTG[n.2]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="10131" y="4257" width="2063" height="854"/>
- <path fill="rgb(112,173,71)" stroke="none" d="M 11162,5092 L 10149,5092 10149,4275 12175,4275 12175,5092 11162,5092 Z"/>
- <path fill="none" stroke="rgb(82,127,52)" stroke-width="35" stroke-linejoin="miter" d="M 11162,5092 L 10149,5092 10149,4275 12175,4275 12175,5092 11162,5092 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="10832" y="4804"><tspan fill="rgb(255,255,255)" stroke="none">DUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="10128" y="6279" width="2063" height="855"/>
- <path fill="rgb(112,173,71)" stroke="none" d="M 11159,7115 L 10146,7115 10146,6297 12172,6297 12172,7115 11159,7115 Z"/>
- <path fill="none" stroke="rgb(82,127,52)" stroke-width="35" stroke-linejoin="miter" d="M 11159,7115 L 10146,7115 10146,6297 12172,6297 12172,7115 11159,7115 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="10945" y="6827"><tspan fill="rgb(255,255,255)" stroke="none">TG</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="9307" y="4505" width="788" height="4594"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 9325,9080 L 9325,4523 10076,4523"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="6980" y="9583" width="2755" height="1092"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7968" y="9899"><tspan fill="rgb(0,0,0)" stroke="none">External</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8103" y="10137"><tspan fill="rgb(0,0,0)" stroke="none">cable</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="5687" y="3790" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="5937" y="4233"><tspan fill="rgb(0,0,0)" stroke="none">VF[2]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="9648" y="3727" width="1932" height="734"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="9898" y="4170"><tspan fill="rgb(0,0,0)" stroke="none">VF[2n]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="4058" y="8529" width="3269" height="849"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="4309" y="8845"><tspan fill="rgb(0,0,0)" stroke="none">VFs mapped to VLAN IDs</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="6221" y="4805" width="2520" height="4291"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 8722,9077 L 8722,4823 6239,4823"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="9554" y="4805" width="542" height="4296"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 9627,9082 L 9627,7020 9572,7020 9572,4823 10077,4823"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="5682" y="4833" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="5932" y="5276"><tspan fill="rgb(0,0,0)" stroke="none">VF[1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="9677" y="4842" width="2151" height="1092"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="9927" y="5285"><tspan fill="rgb(0,0,0)" stroke="none">VF[2n-1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="8564" y="8711" width="286" height="259"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8609,8715 C 8588,8715 8568,8735 8568,8756 L 8568,8923 C 8568,8944 8588,8965 8609,8965 L 8803,8965 C 8824,8965 8845,8944 8845,8923 L 8845,8756 C 8845,8735 8824,8715 8803,8715 L 8609,8715 Z M 8568,8715 L 8568,8715 Z M 8845,8965 L 8845,8965 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 8609,8715 C 8588,8715 8568,8735 8568,8756 L 8568,8923 C 8568,8944 8588,8965 8609,8965 L 8803,8965 C 8824,8965 8845,8944 8845,8923 L 8845,8756 C 8845,8735 8824,8715 8803,8715 L 8609,8715 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8647" y="8912"><tspan fill="rgb(0,0,0)" stroke="none">1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="8879" y="8367" width="286" height="259"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8924,8371 C 8903,8371 8883,8391 8883,8412 L 8883,8579 C 8883,8600 8903,8621 8924,8621 L 9118,8621 C 9139,8621 9160,8600 9160,8579 L 9160,8412 C 9160,8391 9139,8371 9118,8371 L 8924,8371 Z M 8883,8371 L 8883,8371 Z M 9160,8621 L 9160,8621 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 8924,8371 C 8903,8371 8883,8391 8883,8412 L 8883,8579 C 8883,8600 8903,8621 8924,8621 L 9118,8621 C 9139,8621 9160,8600 9160,8579 L 9160,8412 C 9160,8391 9139,8371 9118,8371 L 8924,8371 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8962" y="8568"><tspan fill="rgb(0,0,0)" stroke="none">2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="9114" y="8706" width="400" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9163,8710 C 9140,8710 9118,8732 9118,8755 L 9118,8935 C 9118,8958 9140,8981 9163,8981 L 9463,8981 C 9486,8981 9509,8958 9509,8935 L 9509,8755 C 9509,8732 9486,8710 9463,8710 L 9163,8710 Z M 9118,8710 L 9118,8710 Z M 9509,8981 L 9509,8981 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 9163,8710 C 9140,8710 9118,8732 9118,8755 L 9118,8935 C 9118,8958 9140,8981 9163,8981 L 9463,8981 C 9486,8981 9509,8958 9509,8935 L 9509,8755 C 9509,8732 9486,8710 9463,8710 L 9163,8710 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9194" y="8917"><tspan fill="rgb(0,0,0)" stroke="none">2n</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="9407" y="8364" width="671" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9456,8368 C 9433,8368 9411,8390 9411,8413 L 9411,8593 C 9411,8616 9433,8639 9456,8639 L 10027,8639 C 10050,8639 10073,8616 10073,8593 L 10073,8413 C 10073,8390 10050,8368 10027,8368 L 9456,8368 Z M 9411,8368 L 9411,8368 Z M 10073,8639 L 10073,8639 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 9456,8368 C 9433,8368 9411,8390 9411,8413 L 9411,8593 C 9411,8616 9433,8639 9456,8639 L 10027,8639 C 10050,8639 10073,8616 10073,8593 L 10073,8413 C 10073,8390 10050,8368 10027,8368 L 9456,8368 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9527" y="8575"><tspan fill="rgb(0,0,0)" stroke="none">2n-1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="8583" y="9072" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8609,9076 C 8598,9076 8587,9087 8587,9098 L 8587,9189 C 8587,9200 8598,9212 8609,9212 L 8835,9212 C 8846,9212 8858,9200 8858,9189 L 8858,9098 C 8858,9087 8846,9076 8835,9076 L 8609,9076 Z M 8587,9076 L 8587,9076 Z M 8858,9212 L 8858,9212 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 8609,9076 C 8598,9076 8587,9087 8587,9098 L 8587,9189 C 8587,9200 8598,9212 8609,9212 L 8835,9212 C 8846,9212 8858,9200 8858,9189 L 8858,9098 C 8858,9087 8846,9076 8835,9076 L 8609,9076 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="8885" y="9074" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8911,9078 C 8900,9078 8889,9089 8889,9100 L 8889,9191 C 8889,9202 8900,9214 8911,9214 L 9137,9214 C 9148,9214 9160,9202 9160,9191 L 9160,9100 C 9160,9089 9148,9078 9137,9078 L 8911,9078 Z M 8889,9078 L 8889,9078 Z M 9160,9214 L 9160,9214 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 8911,9078 C 8900,9078 8889,9089 8889,9100 L 8889,9191 C 8889,9202 8900,9214 8911,9214 L 9137,9214 C 9148,9214 9160,9202 9160,9191 L 9160,9100 C 9160,9089 9148,9078 9137,9078 L 8911,9078 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="9186" y="9075" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9212,9079 C 9201,9079 9190,9090 9190,9101 L 9190,9192 C 9190,9203 9201,9215 9212,9215 L 9438,9215 C 9449,9215 9461,9203 9461,9192 L 9461,9101 C 9461,9090 9449,9079 9438,9079 L 9212,9079 Z M 9190,9079 L 9190,9079 Z M 9461,9215 L 9461,9215 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 9212,9079 C 9201,9079 9190,9090 9190,9101 L 9190,9192 C 9190,9203 9201,9215 9212,9215 L 9438,9215 C 9449,9215 9461,9203 9461,9192 L 9461,9101 C 9461,9090 9449,9079 9438,9079 L 9212,9079 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="9488" y="9077" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9514,9081 C 9503,9081 9492,9092 9492,9103 L 9492,9194 C 9492,9205 9503,9217 9514,9217 L 9740,9217 C 9751,9217 9763,9205 9763,9194 L 9763,9103 C 9763,9092 9751,9081 9740,9081 L 9514,9081 Z M 9492,9081 L 9492,9081 Z M 9763,9217 L 9763,9217 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 9514,9081 C 9503,9081 9492,9092 9492,9103 L 9492,9194 C 9492,9205 9503,9217 9514,9217 L 9740,9217 C 9751,9217 9763,9205 9763,9194 L 9763,9103 C 9763,9092 9751,9081 9740,9081 L 9514,9081 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="5694" y="5856" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="5944" y="6299"><tspan fill="rgb(0,0,0)" stroke="none">VF[2]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="9663" y="5858" width="1932" height="734"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="9913" y="6301"><tspan fill="rgb(0,0,0)" stroke="none">VF[2n]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="5690" y="6889" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="5940" y="7365"><tspan fill="rgb(0,0,0)" stroke="none">VF[</tspan><tspan font-size="388px" fill="rgb(0,0,0)" stroke="none">1</tspan><tspan fill="rgb(0,0,0)" stroke="none">]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="9677" y="6895" width="2151" height="1092"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="9927" y="7338"><tspan fill="rgb(0,0,0)" stroke="none">VF[2n-1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="6934" y="9074" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 6960,9078 C 6949,9078 6938,9089 6938,9100 L 6938,9191 C 6938,9202 6949,9214 6960,9214 L 7186,9214 C 7197,9214 7209,9202 7209,9191 L 7209,9100 C 7209,9089 7197,9078 7186,9078 L 6960,9078 Z M 6938,9078 L 6938,9078 Z M 7209,9214 L 7209,9214 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 6960,9078 C 6949,9078 6938,9089 6938,9100 L 6938,9191 C 6938,9202 6949,9214 6960,9214 L 7186,9214 C 7197,9214 7209,9202 7209,9191 L 7209,9100 C 7209,9089 7197,9078 7186,9078 L 6960,9078 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="7236" y="9075" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7262,9079 C 7251,9079 7240,9090 7240,9101 L 7240,9192 C 7240,9203 7251,9215 7262,9215 L 7488,9215 C 7499,9215 7511,9203 7511,9192 L 7511,9101 C 7511,9090 7499,9079 7488,9079 L 7262,9079 Z M 7240,9079 L 7240,9079 Z M 7511,9215 L 7511,9215 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7262,9079 C 7251,9079 7240,9090 7240,9101 L 7240,9192 C 7240,9203 7251,9215 7262,9215 L 7488,9215 C 7499,9215 7511,9203 7511,9192 L 7511,9101 C 7511,9090 7499,9079 7488,9079 L 7262,9079 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="7537" y="9077" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7563,9081 C 7552,9081 7541,9092 7541,9103 L 7541,9194 C 7541,9205 7552,9217 7563,9217 L 7789,9217 C 7800,9217 7812,9205 7812,9194 L 7812,9103 C 7812,9092 7800,9081 7789,9081 L 7563,9081 Z M 7541,9081 L 7541,9081 Z M 7812,9217 L 7812,9217 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7563,9081 C 7552,9081 7541,9092 7541,9103 L 7541,9194 C 7541,9205 7552,9217 7563,9217 L 7789,9217 C 7800,9217 7812,9205 7812,9194 L 7812,9103 C 7812,9092 7800,9081 7789,9081 L 7563,9081 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="7839" y="9078" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7865,9082 C 7854,9082 7843,9093 7843,9104 L 7843,9195 C 7843,9206 7854,9218 7865,9218 L 8091,9218 C 8102,9218 8114,9206 8114,9195 L 8114,9104 C 8114,9093 8102,9082 8091,9082 L 7865,9082 Z M 7843,9082 L 7843,9082 Z M 8114,9218 L 8114,9218 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7865,9082 C 7854,9082 7843,9093 7843,9104 L 7843,9195 C 7843,9206 7854,9218 7865,9218 L 8091,9218 C 8102,9218 8114,9206 8114,9195 L 8114,9104 C 8114,9093 8102,9082 8091,9082 L 7865,9082 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="6915" y="8712" width="286" height="259"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 6960,8716 C 6939,8716 6919,8736 6919,8757 L 6919,8924 C 6919,8945 6939,8966 6960,8966 L 7154,8966 C 7175,8966 7196,8945 7196,8924 L 7196,8757 C 7196,8736 7175,8716 7154,8716 L 6960,8716 Z M 6919,8716 L 6919,8716 Z M 7196,8966 L 7196,8966 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 6960,8716 C 6939,8716 6919,8736 6919,8757 L 6919,8924 C 6919,8945 6939,8966 6960,8966 L 7154,8966 C 7175,8966 7196,8945 7196,8924 L 7196,8757 C 7196,8736 7175,8716 7154,8716 L 6960,8716 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="6998" y="8913"><tspan fill="rgb(0,0,0)" stroke="none">1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="7230" y="8369" width="286" height="259"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7275,8373 C 7254,8373 7234,8393 7234,8414 L 7234,8581 C 7234,8602 7254,8623 7275,8623 L 7469,8623 C 7490,8623 7511,8602 7511,8581 L 7511,8414 C 7511,8393 7490,8373 7469,8373 L 7275,8373 Z M 7234,8373 L 7234,8373 Z M 7511,8623 L 7511,8623 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7275,8373 C 7254,8373 7234,8393 7234,8414 L 7234,8581 C 7234,8602 7254,8623 7275,8623 L 7469,8623 C 7490,8623 7511,8602 7511,8581 L 7511,8414 C 7511,8393 7490,8373 7469,8373 L 7275,8373 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7313" y="8570"><tspan fill="rgb(0,0,0)" stroke="none">2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="6840" y="9047" width="1361" height="254"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 8182,9065 L 8182,9065 8182,9076 8182,9088 8181,9099 8180,9110 8179,9121 8178,9132 8176,9142 8174,9153 8173,9163 8170,9173 8168,9183 8165,9192 8163,9201 8160,9210 8157,9218 8153,9226 8150,9233 8146,9240 8142,9246 8138,9252 8134,9257 8130,9262 8126,9267 8122,9270 8118,9274 8113,9276 8109,9278 8104,9280 8100,9281 8095,9281 6946,9282 6946,9282 6941,9282 6937,9281 6932,9279 6928,9277 6924,9275 6919,9271 6915,9268 6911,9263 6907,9258 6903,9253 6899,9247 6895,9241 6891,9234 6888,9227 6885,9219 6881,9211 6879,9202 6876,9193 6873,9184 6871,9174 6869,9164 6867,9154 6865,9143 6863,9133 6862,9122 6861,9111 6860,9100 6860,9089 6859,9077 6859,9066"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 8182,9065 L 8182,9065 Z"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 6858,9282 L 6858,9282 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="10071" y="4383" width="145" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10075,4636 C 10075,4647 10086,4658 10097,4658 L 10188,4658 C 10199,4658 10211,4647 10211,4636 L 10211,4410 C 10211,4399 10199,4387 10188,4387 L 10097,4387 C 10086,4387 10075,4399 10075,4410 L 10075,4636 Z M 10075,4658 L 10075,4658 Z M 10211,4387 L 10211,4387 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 10075,4636 C 10075,4647 10086,4658 10097,4658 L 10188,4658 C 10199,4658 10211,4647 10211,4636 L 10211,4410 C 10211,4399 10199,4387 10188,4387 L 10097,4387 C 10086,4387 10075,4399 10075,4410 L 10075,4636 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="10072" y="4683" width="145" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10076,4936 C 10076,4947 10087,4958 10098,4958 L 10189,4958 C 10200,4958 10212,4947 10212,4936 L 10212,4710 C 10212,4699 10200,4687 10189,4687 L 10098,4687 C 10087,4687 10076,4699 10076,4710 L 10076,4936 Z M 10076,4958 L 10076,4958 Z M 10212,4687 L 10212,4687 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 10076,4936 C 10076,4947 10087,4958 10098,4958 L 10189,4958 C 10200,4958 10212,4947 10212,4936 L 10212,4710 C 10212,4699 10200,4687 10189,4687 L 10098,4687 C 10087,4687 10076,4699 10076,4710 L 10076,4936 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="6097" y="4383" width="145" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 6101,4636 C 6101,4647 6112,4658 6123,4658 L 6214,4658 C 6225,4658 6237,4647 6237,4636 L 6237,4410 C 6237,4399 6225,4387 6214,4387 L 6123,4387 C 6112,4387 6101,4399 6101,4410 L 6101,4636 Z M 6101,4658 L 6101,4658 Z M 6237,4387 L 6237,4387 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 6101,4636 C 6101,4647 6112,4658 6123,4658 L 6214,4658 C 6225,4658 6237,4647 6237,4636 L 6237,4410 C 6237,4399 6225,4387 6214,4387 L 6123,4387 C 6112,4387 6101,4399 6101,4410 L 6101,4636 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="6099" y="4683" width="145" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 6103,4936 C 6103,4947 6114,4958 6125,4958 L 6216,4958 C 6227,4958 6239,4947 6239,4936 L 6239,4710 C 6239,4699 6227,4687 6216,4687 L 6125,4687 C 6114,4687 6103,4699 6103,4710 L 6103,4936 Z M 6103,4958 L 6103,4958 Z M 6239,4687 L 6239,4687 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 6103,4936 C 6103,4947 6114,4958 6125,4958 L 6216,4958 C 6227,4958 6239,4947 6239,4936 L 6239,4710 C 6239,4699 6227,4687 6216,4687 L 6125,4687 C 6114,4687 6103,4699 6103,4710 L 6103,4936 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="6087" y="6463" width="145" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 6091,6716 C 6091,6727 6102,6738 6113,6738 L 6204,6738 C 6215,6738 6227,6727 6227,6716 L 6227,6490 C 6227,6479 6215,6467 6204,6467 L 6113,6467 C 6102,6467 6091,6479 6091,6490 L 6091,6716 Z M 6091,6738 L 6091,6738 Z M 6227,6467 L 6227,6467 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 6091,6716 C 6091,6727 6102,6738 6113,6738 L 6204,6738 C 6215,6738 6227,6727 6227,6716 L 6227,6490 C 6227,6479 6215,6467 6204,6467 L 6113,6467 C 6102,6467 6091,6479 6091,6490 L 6091,6716 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="6088" y="6763" width="145" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 6092,7016 C 6092,7027 6103,7038 6114,7038 L 6205,7038 C 6216,7038 6228,7027 6228,7016 L 6228,6790 C 6228,6779 6216,6767 6205,6767 L 6114,6767 C 6103,6767 6092,6779 6092,6790 L 6092,7016 Z M 6092,7038 L 6092,7038 Z M 6228,6767 L 6228,6767 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 6092,7016 C 6092,7027 6103,7038 6114,7038 L 6205,7038 C 6216,7038 6228,7027 6228,7016 L 6228,6790 C 6228,6779 6216,6767 6205,6767 L 6114,6767 C 6103,6767 6092,6779 6092,6790 L 6092,7016 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="10066" y="6457" width="145" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 10070,6710 C 10070,6721 10081,6732 10092,6732 L 10183,6732 C 10194,6732 10206,6721 10206,6710 L 10206,6484 C 10206,6473 10194,6461 10183,6461 L 10092,6461 C 10081,6461 10070,6473 10070,6484 L 10070,6710 Z M 10070,6732 L 10070,6732 Z M 10206,6461 L 10206,6461 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 10070,6710 C 10070,6721 10081,6732 10092,6732 L 10183,6732 C 10194,6732 10206,6721 10206,6710 L 10206,6484 C 10206,6473 10194,6461 10183,6461 L 10092,6461 C 10081,6461 10070,6473 10070,6484 L 10070,6710 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="10068" y="6757" width="145" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 10072,7010 C 10072,7021 10083,7032 10094,7032 L 10185,7032 C 10196,7032 10208,7021 10208,7010 L 10208,6784 C 10208,6773 10196,6761 10185,6761 L 10094,6761 C 10083,6761 10072,6773 10072,6784 L 10072,7010 Z M 10072,7032 L 10072,7032 Z M 10208,6761 L 10208,6761 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 10072,7010 C 10072,7021 10083,7032 10094,7032 L 10185,7032 C 10196,7032 10208,7021 10208,7010 L 10208,6784 C 10208,6773 10196,6761 10185,6761 L 10094,6761 C 10083,6761 10072,6773 10072,6784 L 10072,7010 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="7658" y="6579" width="2432" height="2522"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="35" stroke-linejoin="round" d="M 7676,9082 L 7676,6597 10071,6597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="7960" y="6879" width="2132" height="2223"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="35" stroke-linejoin="round" d="M 7978,9083 L 7978,6897 10073,6897"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="7465" y="8707" width="400" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7514,8711 C 7491,8711 7469,8733 7469,8756 L 7469,8936 C 7469,8959 7491,8982 7514,8982 L 7814,8982 C 7837,8982 7860,8959 7860,8936 L 7860,8756 C 7860,8733 7837,8711 7814,8711 L 7514,8711 Z M 7469,8711 L 7469,8711 Z M 7860,8982 L 7860,8982 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7514,8711 C 7491,8711 7469,8733 7469,8756 L 7469,8936 C 7469,8959 7491,8982 7514,8982 L 7814,8982 C 7837,8982 7860,8959 7860,8936 L 7860,8756 C 7860,8733 7837,8711 7814,8711 L 7514,8711 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7545" y="8918"><tspan fill="rgb(0,0,0)" stroke="none">2n</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="7758" y="8365" width="671" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7807,8369 C 7784,8369 7762,8391 7762,8414 L 7762,8594 C 7762,8617 7784,8640 7807,8640 L 8378,8640 C 8401,8640 8424,8617 8424,8594 L 8424,8414 C 8424,8391 8401,8369 8378,8369 L 7807,8369 Z M 7762,8369 L 7762,8369 Z M 8424,8640 L 8424,8640 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7807,8369 C 7784,8369 7762,8391 7762,8414 L 7762,8594 C 7762,8617 7784,8640 7807,8640 L 8378,8640 C 8401,8640 8424,8617 8424,8594 L 8424,8414 C 8424,8391 8401,8369 8378,8369 L 7807,8369 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7878" y="8576"><tspan fill="rgb(0,0,0)" stroke="none">2n-1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="4248" y="8661" width="2594" height="223"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 4287,8665 C 4269,8665 4252,8682 4252,8700 L 4252,8843 C 4252,8861 4269,8879 4287,8879 L 6801,8879 C 6819,8879 6837,8861 6837,8843 L 6837,8700 C 6837,8682 6819,8665 6801,8665 L 4287,8665 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="7383" y="9551" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 7409,9555 C 7398,9555 7387,9566 7387,9577 L 7387,9668 C 7387,9679 7398,9691 7409,9691 L 7635,9691 C 7646,9691 7658,9679 7658,9668 L 7658,9577 C 7658,9566 7646,9555 7635,9555 L 7409,9555 Z M 7387,9555 L 7387,9555 Z M 7658,9691 L 7658,9691 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 7409,9555 C 7398,9555 7387,9566 7387,9577 L 7387,9668 C 7387,9679 7398,9691 7409,9691 L 7635,9691 C 7646,9691 7658,9679 7658,9668 L 7658,9577 C 7658,9566 7646,9555 7635,9555 L 7409,9555 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="9035" y="9552" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 9061,9556 C 9050,9556 9039,9567 9039,9578 L 9039,9669 C 9039,9680 9050,9692 9061,9692 L 9287,9692 C 9298,9692 9310,9680 9310,9669 L 9310,9578 C 9310,9567 9298,9556 9287,9556 L 9061,9556 Z M 9039,9556 L 9039,9556 Z M 9310,9692 L 9310,9692 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 9061,9556 C 9050,9556 9039,9567 9039,9578 L 9039,9669 C 9039,9680 9050,9692 9061,9692 L 9287,9692 C 9298,9692 9310,9680 9310,9669 L 9310,9578 C 9310,9567 9298,9556 9287,9556 L 9061,9556 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="6566" y="9158" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="6816" y="9474"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id74">
- <rect class="BoundingBox" stroke="none" fill="none" x="8218" y="9158" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8468" y="9474"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id75">
- <rect class="BoundingBox" stroke="none" fill="none" x="10505" y="9673" width="1689" height="542"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 10523,9691 L 10523,10196 12175,10196 12175,9692"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id76">
- <rect class="BoundingBox" stroke="none" fill="none" x="9981" y="9583" width="2755" height="1092"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="10969" y="9899"><tspan fill="rgb(0,0,0)" stroke="none">External</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="11104" y="10137"><tspan fill="rgb(0,0,0)" stroke="none">cable</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id77">
- <rect class="BoundingBox" stroke="none" fill="none" x="10384" y="9551" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 10410,9555 C 10399,9555 10388,9566 10388,9577 L 10388,9668 C 10388,9679 10399,9691 10410,9691 L 10636,9691 C 10647,9691 10659,9679 10659,9668 L 10659,9577 C 10659,9566 10647,9555 10636,9555 L 10410,9555 Z M 10388,9555 L 10388,9555 Z M 10659,9691 L 10659,9691 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 10410,9555 C 10399,9555 10388,9566 10388,9577 L 10388,9668 C 10388,9679 10399,9691 10410,9691 L 10636,9691 C 10647,9691 10659,9679 10659,9668 L 10659,9577 C 10659,9566 10647,9555 10636,9555 L 10410,9555 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id78">
- <rect class="BoundingBox" stroke="none" fill="none" x="12036" y="9552" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 12062,9556 C 12051,9556 12040,9567 12040,9578 L 12040,9669 C 12040,9680 12051,9692 12062,9692 L 12288,9692 C 12299,9692 12311,9680 12311,9669 L 12311,9578 C 12311,9567 12299,9556 12288,9556 L 12062,9556 Z M 12040,9556 L 12040,9556 Z M 12311,9692 L 12311,9692 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 12062,9556 C 12051,9556 12040,9567 12040,9578 L 12040,9669 C 12040,9680 12051,9692 12062,9692 L 12288,9692 C 12299,9692 12311,9680 12311,9669 L 12311,9578 C 12311,9567 12299,9556 12288,9556 L 12062,9556 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id79">
- <rect class="BoundingBox" stroke="none" fill="none" x="9567" y="9158" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9817" y="9474"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id80">
- <rect class="BoundingBox" stroke="none" fill="none" x="11219" y="9158" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="11469" y="9474"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id81">
- <rect class="BoundingBox" stroke="none" fill="none" x="6266" y="4637" width="2552" height="5607"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6391,6831 L 6426,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6462,6831 L 6497,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6533,6831 L 6568,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6603,6831 L 6639,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6674,6831 L 6710,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6745,6831 L 6781,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6816,6831 L 6852,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6887,6831 L 6923,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6958,6831 L 6994,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7029,6831 L 7064,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7100,6831 L 7135,6831"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,6848 L 7154,6883"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,6919 L 7154,6954"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,6990 L 7154,7025"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7061 L 7154,7096"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7132 L 7154,7167"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7202 L 7154,7238"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7273 L 7154,7309"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7344 L 7154,7380"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7415 L 7154,7451"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7486 L 7154,7522"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7557 L 7154,7592"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7628 L 7154,7663"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7699 L 7154,7734"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7770 L 7154,7805"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7841 L 7154,7876"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7912 L 7154,7947"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,7983 L 7154,8018"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8053 L 7154,8089"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8124 L 7154,8160"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8195 L 7154,8231"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8266 L 7154,8302"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8337 L 7154,8373"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8408 L 7154,8444"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8479 L 7154,8514"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8550 L 7154,8585"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8621 L 7154,8656"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8692 L 7154,8727"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8763 L 7154,8798"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8834 L 7154,8869"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8905 L 7154,8940"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,8975 L 7154,9011"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9046 L 7154,9082"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9117 L 7154,9153"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9188 L 7154,9224"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9259 L 7154,9295"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9330 L 7154,9365"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9401 L 7154,9436"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9472 L 7154,9507"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9543 L 7154,9578"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9614 L 7154,9649"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9685 L 7154,9720"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9756 L 7154,9791"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9826 L 7154,9862"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9897 L 7154,9933"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,9968 L 7154,10004"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,10039 L 7154,10075"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,10110 L 7154,10146"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7154,10181 L 7154,10217"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7172,10234 L 7207,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7243,10234 L 7278,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7314,10234 L 7349,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7385,10234 L 7420,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7456,10234 L 7491,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7527,10234 L 7562,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7598,10234 L 7633,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7668,10234 L 7704,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7739,10234 L 7775,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7810,10234 L 7846,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7881,10234 L 7917,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7952,10234 L 7988,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8023,10234 L 8058,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8094,10234 L 8129,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8165,10234 L 8200,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8236,10234 L 8271,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8307,10234 L 8342,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8378,10234 L 8413,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8449,10234 L 8484,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8519,10234 L 8555,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8590,10234 L 8626,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8661,10234 L 8697,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8732,10234 L 8768,10234"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8803,10234 L 8808,10234 8808,10203"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,10168 L 8808,10132"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,10097 L 8808,10062"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,10026 L 8808,9991"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9955 L 8808,9920"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9884 L 8808,9849"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9813 L 8808,9778"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9742 L 8808,9707"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9671 L 8808,9636"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9601 L 8808,9565"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9530 L 8808,9494"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9459 L 8808,9423"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9388 L 8808,9352"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9317 L 8808,9281"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9246 L 8808,9211"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9175 L 8808,9140"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9104 L 8808,9069"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,9033 L 8808,8998"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8962 L 8808,8927"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8891 L 8808,8856"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8820 L 8808,8785"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8750 L 8808,8714"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8679 L 8808,8643"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8608 L 8808,8572"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8537 L 8808,8501"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8466 L 8808,8430"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8395 L 8808,8359"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8324 L 8808,8289"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8253 L 8808,8218"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8182 L 8808,8147"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8111 L 8808,8076"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,8040 L 8808,8005"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7969 L 8808,7934"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7898 L 8808,7863"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7828 L 8808,7792"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7757 L 8808,7721"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7686 L 8808,7650"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7615 L 8808,7579"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7544 L 8808,7508"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7473 L 8808,7438"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7402 L 8808,7367"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7331 L 8808,7296"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7260 L 8808,7225"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7189 L 8808,7154"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7118 L 8808,7083"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,7047 L 8808,7012"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6977 L 8808,6941"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6906 L 8808,6870"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6835 L 8808,6799"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6764 L 8808,6728"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6693 L 8808,6657"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6622 L 8808,6586"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6551 L 8808,6516"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6480 L 8808,6445"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6409 L 8808,6374"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6338 L 8808,6303"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6267 L 8808,6232"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6196 L 8808,6161"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6125 L 8808,6090"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,6055 L 8808,6019"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5984 L 8808,5948"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5913 L 8808,5877"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5842 L 8808,5806"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5771 L 8808,5735"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5700 L 8808,5665"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5629 L 8808,5594"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5558 L 8808,5523"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5487 L 8808,5452"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5416 L 8808,5381"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5345 L 8808,5310"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5274 L 8808,5239"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5204 L 8808,5168"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5133 L 8808,5097"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,5062 L 8808,5026"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,4991 L 8808,4955"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,4920 L 8808,4884"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,4849 L 8808,4813"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8808,4778 L 8808,4750 8801,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8765,4750 L 8730,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8694,4750 L 8659,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8623,4750 L 8588,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8552,4750 L 8517,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8481,4750 L 8446,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8410,4750 L 8375,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8340,4750 L 8304,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8269,4750 L 8233,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8198,4750 L 8162,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8127,4750 L 8091,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8056,4750 L 8020,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7985,4750 L 7950,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7914,4750 L 7879,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7843,4750 L 7808,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7772,4750 L 7737,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7701,4750 L 7666,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7630,4750 L 7595,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7559,4750 L 7524,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7489,4750 L 7453,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7418,4750 L 7382,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7347,4750 L 7311,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7276,4750 L 7240,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7205,4750 L 7169,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7134,4750 L 7098,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 7063,4750 L 7028,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6992,4750 L 6957,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6921,4750 L 6886,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6850,4750 L 6815,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6779,4750 L 6744,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6708,4750 L 6673,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6637,4750 L 6602,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6567,4750 L 6531,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6496,4750 L 6460,4750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 6425,4750 L 6389,4750"/>
- <path fill="rgb(237,28,36)" stroke="none" d="M 6274,6718 C 6277,6718 6280,6718 6284,6718 6294,6718 6304,6719 6313,6722 6322,6724 6331,6728 6340,6733 6349,6738 6357,6744 6364,6751 6371,6758 6376,6765 6382,6775 6387,6784 6391,6792 6393,6802 6395,6811 6397,6820 6397,6830 L 6406,6830 6406,6832 6397,6832 C 6397,6842 6395,6851 6393,6860 6391,6870 6387,6878 6382,6888 6376,6897 6371,6904 6364,6911 6357,6918 6349,6924 6340,6929 6331,6934 6322,6938 6313,6940 6304,6943 6294,6944 6284,6944 6280,6944 6277,6944 6274,6944 L 6274,6939 6275,6935 C 6278,6935 6281,6935 6284,6935 6293,6935 6302,6934 6311,6932 6319,6929 6327,6926 6336,6921 6344,6916 6351,6911 6357,6905 6364,6898 6369,6891 6374,6883 6379,6875 6382,6866 6384,6858 6387,6849 6388,6841 6388,6831 6388,6821 6387,6813 6384,6804 6382,6796 6379,6787 6374,6779 6369,6771 6364,6764 6357,6757 6351,6751 6344,6746 6336,6741 6327,6736 6319,6733 6311,6730 6302,6728 6293,6727 6284,6727 6281,6727 6278,6727 6275,6727 L 6274,6723 6274,6718 Z"/>
- <path fill="rgb(237,28,36)" stroke="none" d="M 6266,4637 C 6269,4637 6272,4637 6276,4637 6286,4637 6296,4638 6305,4641 6314,4643 6323,4647 6332,4652 6341,4657 6349,4663 6356,4670 6363,4677 6368,4684 6374,4694 6379,4703 6383,4711 6385,4721 6387,4730 6389,4739 6389,4749 L 6398,4749 6398,4751 6389,4751 C 6389,4761 6387,4770 6385,4779 6383,4789 6379,4797 6374,4807 6368,4816 6363,4823 6356,4830 6349,4837 6341,4843 6332,4848 6323,4853 6314,4857 6305,4859 6296,4862 6286,4863 6276,4863 6272,4863 6269,4863 6266,4863 L 6266,4858 6267,4854 C 6270,4854 6273,4854 6276,4854 6285,4854 6294,4853 6303,4851 6311,4848 6319,4845 6328,4840 6336,4835 6343,4830 6349,4824 6356,4817 6361,4810 6366,4802 6371,4794 6374,4785 6376,4777 6379,4768 6380,4760 6380,4750 6380,4740 6379,4732 6376,4723 6374,4715 6371,4706 6366,4698 6361,4690 6356,4683 6349,4676 6343,4670 6336,4665 6328,4660 6319,4655 6311,4652 6303,4649 6294,4647 6285,4646 6276,4646 6273,4646 6270,4646 6267,4646 L 6266,4642 6266,4637 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id82">
- <rect class="BoundingBox" stroke="none" fill="none" x="6285" y="4326" width="2823" height="5723"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6428,6513 L 6463,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6499,6513 L 6534,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6570,6513 L 6605,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6640,6513 L 6676,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6711,6513 L 6747,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6782,6513 L 6818,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6853,6513 L 6889,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6924,6513 L 6960,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6995,6513 L 7031,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7066,6513 L 7101,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7137,6513 L 7172,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7208,6513 L 7243,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7279,6513 L 7314,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7350,6513 L 7385,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7421,6513 L 7456,6513"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,6541 L 7464,6576"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,6611 L 7464,6647"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,6682 L 7464,6718"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,6753 L 7464,6789"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,6824 L 7464,6860"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,6895 L 7464,6931"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,6966 L 7464,7001"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7037 L 7464,7072"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7108 L 7464,7143"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7179 L 7464,7214"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7250 L 7464,7285"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7321 L 7464,7356"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7392 L 7464,7427"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7462 L 7464,7498"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7533 L 7464,7569"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7604 L 7464,7640"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7675 L 7464,7711"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7746 L 7464,7782"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7817 L 7464,7853"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7888 L 7464,7923"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,7959 L 7464,7994"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8030 L 7464,8065"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8101 L 7464,8136"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8172 L 7464,8207"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8243 L 7464,8278"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8314 L 7464,8349"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8384 L 7464,8420"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8455 L 7464,8491"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8526 L 7464,8562"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8597 L 7464,8633"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8668 L 7464,8704"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8739 L 7464,8774"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8810 L 7464,8845"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8881 L 7464,8916"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,8952 L 7464,8987"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9023 L 7464,9058"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9094 L 7464,9129"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9165 L 7464,9200"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9235 L 7464,9271"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9306 L 7464,9342"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9377 L 7464,9413"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9448 L 7464,9484"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9519 L 7464,9555"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9590 L 7464,9626"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9661 L 7464,9696"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9732 L 7464,9767"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9803 L 7464,9838"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9874 L 7464,9909"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,9945 L 7464,9980"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7464,10016 L 7464,10039 7476,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7512,10039 L 7547,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7582,10039 L 7618,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7653,10039 L 7689,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7724,10039 L 7760,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7795,10039 L 7831,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7866,10039 L 7902,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7937,10039 L 7972,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8008,10039 L 8043,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8079,10039 L 8114,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8150,10039 L 8185,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8221,10039 L 8256,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8292,10039 L 8327,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8363,10039 L 8398,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8433,10039 L 8469,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8504,10039 L 8540,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8575,10039 L 8611,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8646,10039 L 8682,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8717,10039 L 8753,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8788,10039 L 8824,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8859,10039 L 8894,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8930,10039 L 8965,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9001,10039 L 9036,10039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9072,10039 L 9098,10039 9098,10030"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9994 L 9098,9959"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9923 L 9098,9888"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9852 L 9098,9817"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9782 L 9098,9746"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9711 L 9098,9675"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9640 L 9098,9604"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9569 L 9098,9533"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9498 L 9098,9462"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9427 L 9098,9392"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9356 L 9098,9321"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9285 L 9098,9250"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9214 L 9098,9179"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9143 L 9098,9108"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9072 L 9098,9037"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,9001 L 9098,8966"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8931 L 9098,8895"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8860 L 9098,8824"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8789 L 9098,8753"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8718 L 9098,8682"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8647 L 9098,8611"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8576 L 9098,8540"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8505 L 9098,8470"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8434 L 9098,8399"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8363 L 9098,8328"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8292 L 9098,8257"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8221 L 9098,8186"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8150 L 9098,8115"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8079 L 9098,8044"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,8009 L 9098,7973"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7938 L 9098,7902"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7867 L 9098,7831"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7796 L 9098,7760"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7725 L 9098,7689"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7654 L 9098,7619"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7583 L 9098,7548"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7512 L 9098,7477"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7441 L 9098,7406"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7370 L 9098,7335"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7299 L 9098,7264"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7228 L 9098,7193"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7158 L 9098,7122"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7087 L 9098,7051"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,7016 L 9098,6980"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6945 L 9098,6909"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6874 L 9098,6838"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6803 L 9098,6767"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6732 L 9098,6697"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6661 L 9098,6626"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6590 L 9098,6555"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6519 L 9098,6484"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6448 L 9098,6413"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6377 L 9098,6342"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6306 L 9098,6271"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6236 L 9098,6200"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6165 L 9098,6129"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6094 L 9098,6058"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,6023 L 9098,5987"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5952 L 9098,5916"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5881 L 9098,5846"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5810 L 9098,5775"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5739 L 9098,5704"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5668 L 9098,5633"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5597 L 9098,5562"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5526 L 9098,5491"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5455 L 9098,5420"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5385 L 9098,5349"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5314 L 9098,5278"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5243 L 9098,5207"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5172 L 9098,5136"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5101 L 9098,5065"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,5030 L 9098,4994"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,4959 L 9098,4924"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,4888 L 9098,4853"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,4817 L 9098,4782"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,4746 L 9098,4711"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,4675 L 9098,4640"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,4604 L 9098,4569"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,4533 L 9098,4498"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9098,4463 L 9098,4439 9086,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9051,4439 L 9015,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8980,4439 L 8944,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8909,4439 L 8873,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8838,4439 L 8802,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8767,4439 L 8732,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8696,4439 L 8661,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8625,4439 L 8590,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8554,4439 L 8519,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8483,4439 L 8448,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8412,4439 L 8377,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8341,4439 L 8306,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8271,4439 L 8235,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8200,4439 L 8164,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8129,4439 L 8093,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8058,4439 L 8022,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7987,4439 L 7951,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7916,4439 L 7880,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7845,4439 L 7810,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7774,4439 L 7739,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7703,4439 L 7668,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7632,4439 L 7597,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7561,4439 L 7526,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7490,4439 L 7455,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7419,4439 L 7384,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7349,4439 L 7313,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7278,4439 L 7242,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7207,4439 L 7171,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7136,4439 L 7100,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 7065,4439 L 7029,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6994,4439 L 6959,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6923,4439 L 6888,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6852,4439 L 6817,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6781,4439 L 6746,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6710,4439 L 6675,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6639,4439 L 6604,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6568,4439 L 6533,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6498,4439 L 6462,4439"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 6427,4439 L 6402,4439"/>
- <path fill="rgb(0,182,189)" stroke="none" d="M 6311,6400 C 6314,6400 6317,6400 6321,6400 6331,6400 6341,6401 6350,6404 6359,6406 6368,6410 6377,6415 6386,6420 6394,6426 6401,6433 6408,6440 6413,6447 6419,6457 6424,6466 6428,6474 6430,6484 6432,6493 6434,6502 6434,6512 L 6443,6512 6443,6514 6434,6514 C 6434,6524 6432,6533 6430,6542 6428,6552 6424,6560 6419,6570 6413,6579 6408,6586 6401,6593 6394,6600 6386,6606 6377,6611 6368,6616 6359,6620 6350,6622 6341,6625 6331,6626 6321,6626 6317,6626 6314,6626 6311,6626 L 6311,6621 6312,6617 C 6315,6617 6318,6617 6321,6617 6330,6617 6339,6616 6348,6614 6356,6611 6364,6608 6373,6603 6381,6598 6388,6593 6394,6587 6401,6580 6406,6573 6411,6565 6416,6557 6419,6548 6421,6540 6424,6531 6425,6523 6425,6513 6425,6503 6424,6495 6421,6486 6419,6478 6416,6469 6411,6461 6406,6453 6401,6446 6394,6439 6388,6433 6381,6428 6373,6423 6364,6418 6356,6415 6348,6412 6339,6410 6330,6409 6321,6409 6318,6409 6315,6409 6312,6409 L 6311,6405 6311,6400 Z"/>
- <path fill="rgb(0,182,189)" stroke="none" d="M 6285,4326 C 6288,4326 6291,4326 6295,4326 6305,4326 6315,4327 6324,4330 6333,4332 6342,4336 6351,4341 6360,4346 6368,4352 6375,4359 6382,4366 6387,4373 6393,4383 6398,4392 6402,4400 6404,4410 6406,4419 6408,4428 6408,4438 L 6417,4438 6417,4440 6408,4440 C 6408,4450 6406,4459 6404,4468 6402,4478 6398,4486 6393,4496 6387,4505 6382,4512 6375,4519 6368,4526 6360,4532 6351,4537 6342,4542 6333,4546 6324,4548 6315,4551 6305,4552 6295,4552 6291,4552 6288,4552 6285,4552 L 6285,4547 6286,4543 C 6289,4543 6292,4543 6295,4543 6304,4543 6313,4542 6322,4540 6330,4537 6338,4534 6347,4529 6355,4524 6362,4519 6368,4513 6375,4506 6380,4499 6385,4491 6390,4483 6393,4474 6395,4466 6398,4457 6399,4449 6399,4439 6399,4429 6398,4421 6395,4412 6393,4404 6390,4395 6385,4387 6380,4379 6375,4372 6368,4365 6362,4359 6355,4354 6347,4349 6338,4344 6330,4341 6322,4338 6313,4336 6304,4335 6295,4335 6292,4335 6289,4335 6286,4335 L 6285,4331 6285,4326 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id83">
- <rect class="BoundingBox" stroke="none" fill="none" x="7575" y="5349" width="995" height="844"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="7825" y="5968"><tspan fill="rgb(128,128,128)" stroke="none">…</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/docs/report/vpp_device_tests/vf-2n-nic2vhost.svg b/docs/report/vpp_device_tests/vf-2n-nic2vhost.svg
deleted file mode 100644
index a3204bfbaa..0000000000
--- a/docs/report/vpp_device_tests/vf-2n-nic2vhost.svg
+++ /dev/null
@@ -1,1042 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="148mm" height="110mm" viewBox="0 0 14800 11000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="14800" height="11000"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="14" y="11" width="14771" height="10978"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="z" horiz-adv-x="927" d="M 113,1120 L 987,1120 987,952 295,147 987,147 987,0 88,0 88,168 780,973 113,973 113,1120 Z"/>
- <glyph unicode="w" horiz-adv-x="1510" d="M 86,1120 L 270,1120 500,246 729,1120 946,1120 1176,246 1405,1120 1589,1120 1296,0 1079,0 838,918 596,0 379,0 86,1120 Z"/>
- <glyph unicode="v" horiz-adv-x="1112" d="M 61,1120 L 256,1120 606,180 956,1120 1151,1120 731,0 481,0 61,1120 Z"/>
- <glyph unicode="u" horiz-adv-x="953" d="M 174,442 L 174,1120 358,1120 358,449 C 358,343 379,264 420,211 461,158 523,131 606,131 705,131 784,163 842,226 899,289 928,376 928,485 L 928,1120 1112,1120 1112,0 928,0 928,172 C 883,104 832,54 773,21 714,-12 645,-29 567,-29 438,-29 341,11 274,91 207,171 174,288 174,442 Z "/>
- <glyph unicode="t" horiz-adv-x="715" d="M 375,1438 L 375,1120 754,1120 754,977 375,977 375,369 C 375,278 388,219 413,193 438,167 488,154 565,154 L 754,154 754,0 565,0 C 423,0 325,27 271,80 217,133 190,229 190,369 L 190,977 55,977 55,1120 190,1120 190,1438 375,1438 Z"/>
- <glyph unicode="s" horiz-adv-x="874" d="M 907,1087 L 907,913 C 855,940 801,960 745,973 689,986 631,993 571,993 480,993 411,979 366,951 320,923 297,881 297,825 297,782 313,749 346,725 379,700 444,677 543,655 L 606,641 C 737,613 830,574 885,523 940,472 967,400 967,309 967,205 926,123 844,62 761,1 648,-29 504,-29 444,-29 382,-23 317,-12 252,0 183,18 111,41 L 111,231 C 179,196 246,169 312,152 378,134 443,125 508,125 595,125 661,140 708,170 755,199 778,241 778,295 778,345 761,383 728,410 694,437 620,462 506,487 L 442,502 C 328,526 246,563 195,613 144,662 119,730 119,817 119,922 156,1004 231,1061 306,1118 412,1147 549,1147 617,1147 681,1142 741,1132 801,1122 856,1107 907,1087 Z"/>
- <glyph unicode="r" horiz-adv-x="663" d="M 842,948 C 821,960 799,969 775,975 750,980 723,983 694,983 590,983 510,949 455,882 399,814 371,717 371,590 L 371,0 186,0 186,1120 371,1120 371,946 C 410,1014 460,1065 522,1098 584,1131 659,1147 748,1147 761,1147 775,1146 790,1145 805,1143 822,1140 841,1137 L 842,948 Z"/>
- <glyph unicode="p" horiz-adv-x="1007" d="M 371,168 L 371,-426 186,-426 186,1120 371,1120 371,950 C 410,1017 459,1066 518,1099 577,1131 647,1147 729,1147 865,1147 976,1093 1061,985 1146,877 1188,735 1188,559 1188,383 1146,241 1061,133 976,25 865,-29 729,-29 647,-29 577,-13 518,20 459,52 410,101 371,168 Z M 997,559 C 997,694 969,801 914,878 858,955 781,993 684,993 587,993 510,955 455,878 399,801 371,694 371,559 371,424 399,318 455,241 510,164 587,125 684,125 781,125 858,164 914,241 969,318 997,424 997,559 Z"/>
- <glyph unicode="o" horiz-adv-x="1033" d="M 627,991 C 528,991 450,953 393,876 336,799 307,693 307,559 307,425 336,320 393,243 450,166 528,127 627,127 725,127 803,166 860,243 917,320 946,426 946,559 946,692 917,797 860,875 803,952 725,991 627,991 Z M 627,1147 C 787,1147 913,1095 1004,991 1095,887 1141,743 1141,559 1141,376 1095,232 1004,128 913,23 787,-29 627,-29 466,-29 341,23 250,128 159,232 113,376 113,559 113,743 159,887 250,991 341,1095 466,1147 627,1147 Z"/>
- <glyph unicode="n" horiz-adv-x="954" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="l" horiz-adv-x="213" d="M 193,1556 L 377,1556 377,0 193,0 193,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="213" d="M 193,1120 L 377,1120 377,0 193,0 193,1120 Z M 193,1556 L 377,1556 377,1323 193,1323 193,1556 Z"/>
- <glyph unicode="h" horiz-adv-x="954" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1556 371,1556 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="g" horiz-adv-x="1006" d="M 930,573 C 930,706 903,810 848,883 793,956 715,993 616,993 517,993 441,956 386,883 331,810 303,706 303,573 303,440 331,337 386,264 441,191 517,154 616,154 715,154 793,191 848,264 903,337 930,440 930,573 Z M 1114,139 C 1114,-52 1072,-193 987,-287 902,-379 773,-426 598,-426 533,-426 472,-421 415,-412 358,-402 302,-387 248,-367 L 248,-188 C 302,-217 355,-239 408,-253 461,-267 514,-274 569,-274 690,-274 780,-242 840,-180 900,-116 930,-21 930,106 L 930,197 C 892,131 843,82 784,49 725,16 654,0 571,0 434,0 323,52 239,157 155,262 113,400 113,573 113,746 155,885 239,990 323,1095 434,1147 571,1147 654,1147 725,1131 784,1098 843,1065 892,1016 930,950 L 930,1120 1114,1120 1114,139 Z"/>
- <glyph unicode="f" horiz-adv-x="742" d="M 760,1556 L 760,1403 584,1403 C 518,1403 472,1390 447,1363 421,1336 408,1288 408,1219 L 408,1120 711,1120 711,977 408,977 408,0 223,0 223,977 47,977 47,1120 223,1120 223,1198 C 223,1323 252,1414 310,1471 368,1528 460,1556 586,1556 L 760,1556 Z"/>
- <glyph unicode="e" horiz-adv-x="1059" d="M 1151,606 L 1151,516 305,516 C 313,389 351,293 420,227 488,160 583,127 705,127 776,127 844,136 911,153 977,170 1043,196 1108,231 L 1108,57 C 1042,29 974,8 905,-7 836,-22 765,-29 694,-29 515,-29 374,23 270,127 165,231 113,372 113,549 113,732 163,878 262,986 361,1093 494,1147 662,1147 813,1147 932,1099 1020,1002 1107,905 1151,773 1151,606 Z M 967,659 C 966,760 938,841 883,901 828,961 755,991 664,991 561,991 479,962 418,904 356,846 320,764 311,659 L 967,659 Z"/>
- <glyph unicode="d" horiz-adv-x="1006" d="M 930,950 L 930,1556 1114,1556 1114,0 930,0 930,168 C 891,101 843,52 784,20 725,-13 654,-29 571,-29 436,-29 326,25 241,133 156,241 113,383 113,559 113,735 156,877 241,985 326,1093 436,1147 571,1147 654,1147 725,1131 784,1099 843,1066 891,1017 930,950 Z M 303,559 C 303,424 331,318 387,241 442,164 519,125 616,125 713,125 790,164 846,241 902,318 930,424 930,559 930,694 902,801 846,878 790,955 713,993 616,993 519,993 442,955 387,878 331,801 303,694 303,559 Z"/>
- <glyph unicode="c" horiz-adv-x="900" d="M 999,1077 L 999,905 C 947,934 895,955 843,970 790,984 737,991 684,991 565,991 472,953 406,878 340,802 307,696 307,559 307,422 340,316 406,241 472,165 565,127 684,127 737,127 790,134 843,149 895,163 947,184 999,213 L 999,43 C 948,19 895,1 840,-11 785,-23 726,-29 664,-29 495,-29 361,24 262,130 163,236 113,379 113,559 113,742 163,885 264,990 364,1095 501,1147 676,1147 733,1147 788,1141 842,1130 896,1118 948,1100 999,1077 Z"/>
- <glyph unicode="a" horiz-adv-x="980" d="M 702,563 C 553,563 450,546 393,512 336,478 307,420 307,338 307,273 329,221 372,183 415,144 473,125 547,125 649,125 731,161 793,234 854,306 885,402 885,522 L 885,563 702,563 Z M 1069,639 L 1069,0 885,0 885,170 C 843,102 791,52 728,20 665,-13 589,-29 498,-29 383,-29 292,3 225,68 157,132 123,218 123,326 123,452 165,547 250,611 334,675 460,707 627,707 L 885,707 885,725 C 885,810 857,875 802,922 746,968 668,991 567,991 503,991 441,983 380,968 319,953 261,930 205,899 L 205,1069 C 272,1095 338,1115 401,1128 464,1141 526,1147 586,1147 748,1147 869,1105 949,1021 1029,937 1069,810 1069,639 Z"/>
- <glyph unicode="]" horiz-adv-x="451" d="M 623,1556 L 623,-270 199,-270 199,-127 438,-127 438,1413 199,1413 199,1556 623,1556 Z"/>
- <glyph unicode="[" horiz-adv-x="451" d="M 176,1556 L 600,1556 600,1413 360,1413 360,-127 600,-127 600,-270 176,-270 176,1556 Z"/>
- <glyph unicode="V" horiz-adv-x="1403" d="M 586,0 L 16,1493 227,1493 700,236 1174,1493 1384,1493 815,0 586,0 Z"/>
- <glyph unicode="T" horiz-adv-x="1297" d="M -6,1493 L 1257,1493 1257,1323 727,1323 727,0 524,0 524,1323 -6,1323 -6,1493 Z"/>
- <glyph unicode="N" horiz-adv-x="1165" d="M 201,1493 L 473,1493 1135,244 1135,1493 1331,1493 1331,0 1059,0 397,1249 397,0 201,0 201,1493 Z"/>
- <glyph unicode="M" horiz-adv-x="1377" d="M 201,1493 L 502,1493 883,477 1266,1493 1567,1493 1567,0 1370,0 1370,1311 985,287 782,287 397,1311 397,0 201,0 201,1493 Z"/>
- <glyph unicode="I" horiz-adv-x="239" d="M 201,1493 L 403,1493 403,0 201,0 201,1493 Z"/>
- <glyph unicode="C" horiz-adv-x="1218" d="M 1319,1378 L 1319,1165 C 1251,1228 1179,1276 1102,1307 1025,1338 943,1354 856,1354 685,1354 555,1302 464,1198 373,1093 328,942 328,745 328,548 373,398 464,294 555,189 685,137 856,137 943,137 1025,153 1102,184 1179,215 1251,263 1319,326 L 1319,115 C 1248,67 1174,31 1095,7 1016,-17 932,-29 844,-29 618,-29 440,40 310,179 180,317 115,506 115,745 115,985 180,1174 310,1313 440,1451 618,1520 844,1520 933,1520 1018,1508 1097,1485 1176,1461 1250,1425 1319,1378 Z"/>
- <glyph unicode=":" horiz-adv-x="213" d="M 240,254 L 451,254 451,0 240,0 240,254 Z M 240,1059 L 451,1059 451,805 240,805 240,1059 Z"/>
- <glyph unicode="2" horiz-adv-x="980" d="M 393,170 L 1098,170 1098,0 150,0 150,170 C 227,249 331,356 464,490 596,623 679,709 713,748 778,821 823,882 849,933 874,983 887,1032 887,1081 887,1160 859,1225 804,1275 748,1325 675,1350 586,1350 523,1350 456,1339 386,1317 315,1295 240,1262 160,1217 L 160,1421 C 241,1454 317,1478 388,1495 459,1512 523,1520 582,1520 737,1520 860,1481 952,1404 1044,1327 1090,1223 1090,1094 1090,1033 1079,975 1056,920 1033,865 991,800 930,725 913,706 860,650 771,558 682,465 556,336 393,170 Z"/>
- <glyph unicode="1" horiz-adv-x="900" d="M 254,170 L 584,170 584,1309 225,1237 225,1421 582,1493 784,1493 784,170 1114,170 1114,0 254,0 254,170 Z"/>
- <glyph unicode="/" horiz-adv-x="689" d="M 520,1493 L 690,1493 170,-190 0,-190 520,1493 Z"/>
- <glyph unicode="-" horiz-adv-x="583" d="M 100,643 L 639,643 639,479 100,479 100,643 Z"/>
- <glyph unicode=" " horiz-adv-x="635"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="bold" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1271" d="M 455,573 L 51,1120 430,1120 659,788 891,1120 1270,1120 866,575 1290,0 911,0 659,354 410,0 31,0 455,573 Z"/>
- <glyph unicode="v" horiz-adv-x="1298" d="M 31,1120 L 389,1120 668,346 946,1120 1305,1120 864,0 471,0 31,1120 Z"/>
- <glyph unicode="u" horiz-adv-x="1138" d="M 160,436 L 160,1120 520,1120 520,1008 C 520,947 520,871 519,780 518,688 518,627 518,596 518,506 520,441 525,402 530,362 538,333 549,315 564,292 583,274 607,261 630,248 657,242 688,242 763,242 821,271 864,328 907,385 928,465 928,567 L 928,1120 1286,1120 1286,0 928,0 928,162 C 874,97 817,49 757,18 696,-13 630,-29 557,-29 428,-29 329,11 262,90 194,169 160,285 160,436 Z"/>
- <glyph unicode="t" horiz-adv-x="928" d="M 563,1438 L 563,1120 932,1120 932,864 563,864 563,389 C 563,337 573,302 594,284 615,265 656,256 717,256 L 901,256 901,0 594,0 C 453,0 353,30 294,89 235,148 205,248 205,389 L 205,864 27,864 27,1120 205,1120 205,1438 563,1438 Z"/>
- <glyph unicode="s" horiz-adv-x="1060" d="M 1047,1085 L 1047,813 C 970,845 896,869 825,885 754,901 686,909 623,909 555,909 505,901 472,884 439,867 422,840 422,805 422,776 435,754 460,739 485,724 529,712 594,705 L 657,696 C 840,673 964,634 1027,581 1090,528 1122,444 1122,330 1122,211 1078,121 990,61 902,1 771,-29 596,-29 522,-29 446,-23 367,-12 288,0 206,18 123,41 L 123,313 C 194,278 268,252 343,235 418,218 494,209 571,209 641,209 694,219 729,238 764,257 782,286 782,324 782,356 770,380 746,396 721,411 673,423 600,432 L 537,440 C 378,460 266,497 202,551 138,605 106,687 106,797 106,916 147,1004 228,1061 309,1118 434,1147 602,1147 668,1147 737,1142 810,1132 883,1122 962,1106 1047,1085 Z"/>
- <glyph unicode="r" horiz-adv-x="847" d="M 1004,815 C 973,830 942,841 911,848 880,855 848,858 817,858 725,858 654,829 605,770 555,711 530,626 530,516 L 530,0 172,0 172,1120 530,1120 530,936 C 576,1009 629,1062 689,1095 748,1128 820,1145 903,1145 915,1145 928,1145 942,1145 956,1145 976,1143 1003,1139 L 1004,815 Z"/>
- <glyph unicode="p" horiz-adv-x="1218" d="M 530,162 L 530,-426 172,-426 172,1120 530,1120 530,956 C 579,1021 634,1070 694,1101 754,1132 823,1147 901,1147 1039,1147 1152,1092 1241,983 1330,873 1374,732 1374,559 1374,386 1330,245 1241,136 1152,26 1039,-29 901,-29 823,-29 754,-13 694,18 634,49 579,97 530,162 Z M 768,887 C 691,887 633,859 592,803 551,746 530,665 530,559 530,453 551,372 592,316 633,259 691,231 768,231 845,231 903,259 944,315 984,371 1004,452 1004,559 1004,666 984,747 944,803 903,859 845,887 768,887 Z"/>
- <glyph unicode="o" horiz-adv-x="1245" d="M 705,891 C 626,891 565,863 524,806 482,749 461,666 461,559 461,452 482,370 524,313 565,256 626,227 705,227 783,227 843,256 884,313 925,370 946,452 946,559 946,666 925,749 884,806 843,863 783,891 705,891 Z M 705,1147 C 898,1147 1048,1095 1157,991 1265,887 1319,743 1319,559 1319,375 1265,231 1157,127 1048,23 898,-29 705,-29 512,-29 361,23 252,127 143,231 88,375 88,559 88,743 143,887 252,991 361,1095 512,1147 705,1147 Z"/>
- <glyph unicode="n" horiz-adv-x="1138" d="M 1298,682 L 1298,0 938,0 938,111 938,522 C 938,619 936,685 932,722 927,759 920,786 909,803 895,826 876,845 852,858 828,871 801,877 770,877 695,877 637,848 594,791 551,733 530,653 530,551 L 530,0 172,0 172,1120 530,1120 530,956 C 584,1021 641,1070 702,1101 763,1132 830,1147 903,1147 1032,1147 1131,1107 1198,1028 1265,949 1298,833 1298,682 Z"/>
- <glyph unicode="l" horiz-adv-x="371" d="M 172,1556 L 530,1556 530,0 172,0 172,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="371" d="M 172,1120 L 530,1120 530,0 172,0 172,1120 Z M 172,1556 L 530,1556 530,1264 172,1264 172,1556 Z"/>
- <glyph unicode="e" horiz-adv-x="1218" d="M 1290,563 L 1290,461 453,461 C 462,377 492,314 544,272 596,230 669,209 762,209 837,209 915,220 994,243 1073,265 1154,299 1237,344 L 1237,68 C 1152,36 1068,12 983,-5 898,-21 814,-29 729,-29 526,-29 369,23 257,126 144,229 88,373 88,559 88,742 143,885 254,990 364,1095 516,1147 709,1147 885,1147 1026,1094 1132,988 1237,882 1290,740 1290,563 Z M 922,682 C 922,750 902,805 863,847 823,888 771,909 707,909 638,909 581,890 538,851 495,812 468,755 457,682 L 922,682 Z"/>
- <glyph unicode="c" horiz-adv-x="1007" d="M 1077,1085 L 1077,793 C 1028,826 980,851 931,867 882,883 831,891 778,891 678,891 600,862 545,804 489,745 461,664 461,559 461,454 489,373 545,315 600,256 678,227 778,227 834,227 887,235 938,252 988,269 1034,293 1077,326 L 1077,33 C 1021,12 964,-3 907,-14 849,-24 791,-29 733,-29 531,-29 373,23 259,127 145,230 88,374 88,559 88,744 145,888 259,992 373,1095 531,1147 733,1147 792,1147 850,1142 907,1132 964,1121 1020,1106 1077,1085 Z"/>
- <glyph unicode="a" horiz-adv-x="1139" d="M 674,504 C 599,504 543,491 506,466 468,441 449,403 449,354 449,309 464,273 495,248 525,222 567,209 621,209 688,209 745,233 791,282 837,330 860,390 860,463 L 860,504 674,504 Z M 1221,639 L 1221,0 860,0 860,166 C 812,98 758,49 698,18 638,-13 565,-29 479,-29 363,-29 269,5 197,73 124,140 88,228 88,336 88,467 133,564 224,625 314,686 456,717 649,717 L 860,717 860,745 C 860,802 838,843 793,870 748,896 679,909 584,909 507,909 436,901 370,886 304,871 243,848 186,817 L 186,1090 C 263,1109 340,1123 417,1133 494,1142 572,1147 649,1147 851,1147 997,1107 1087,1028 1176,948 1221,818 1221,639 Z"/>
- <glyph unicode="]" horiz-adv-x="636" d="M 760,-270 L 139,-270 139,-45 420,-45 420,1331 139,1331 139,1556 760,1556 760,-270 Z"/>
- <glyph unicode="[" horiz-adv-x="636" d="M 176,1556 L 797,1556 797,1331 516,1331 516,-45 797,-45 797,-270 176,-270 176,1556 Z"/>
- <glyph unicode="V" horiz-adv-x="1589" d="M 10,1493 L 397,1493 793,391 1188,1493 1575,1493 1022,0 563,0 10,1493 Z"/>
- <glyph unicode="U" horiz-adv-x="1298" d="M 188,1493 L 573,1493 573,598 C 573,475 593,387 634,334 674,281 740,254 831,254 923,254 989,281 1030,334 1070,387 1090,475 1090,598 L 1090,1493 1475,1493 1475,598 C 1475,387 1422,229 1316,126 1210,23 1048,-29 831,-29 614,-29 453,23 347,126 241,229 188,387 188,598 L 188,1493 Z"/>
- <glyph unicode="T" horiz-adv-x="1403" d="M 10,1493 L 1386,1493 1386,1202 891,1202 891,0 506,0 506,1202 10,1202 10,1493 Z"/>
- <glyph unicode="S" horiz-adv-x="1192" d="M 1227,1446 L 1227,1130 C 1145,1167 1065,1194 987,1213 909,1232 835,1241 766,1241 674,1241 606,1228 562,1203 518,1178 496,1138 496,1085 496,1045 511,1014 541,992 570,969 624,950 702,934 L 866,901 C 1032,868 1150,817 1220,749 1290,681 1325,584 1325,459 1325,294 1276,172 1179,92 1081,11 932,-29 731,-29 636,-29 541,-20 446,-2 351,16 255,43 160,78 L 160,403 C 255,352 348,314 437,289 526,263 611,250 694,250 778,250 842,264 887,292 932,320 954,360 954,412 954,459 939,495 909,520 878,545 818,568 727,588 L 578,621 C 429,653 320,704 251,774 182,844 147,938 147,1057 147,1206 195,1320 291,1400 387,1480 525,1520 705,1520 787,1520 871,1514 958,1502 1045,1489 1134,1471 1227,1446 Z"/>
- <glyph unicode="N" horiz-adv-x="1351" d="M 188,1493 L 618,1493 1161,469 1161,1493 1526,1493 1526,0 1096,0 553,1024 553,0 188,0 188,1493 Z"/>
- <glyph unicode="L" horiz-adv-x="1060" d="M 188,1493 L 573,1493 573,291 1249,291 1249,0 188,0 188,1493 Z"/>
- <glyph unicode="K" horiz-adv-x="1456" d="M 188,1493 L 573,1493 573,948 1128,1493 1575,1493 856,786 1649,0 1167,0 573,588 573,0 188,0 188,1493 Z"/>
- <glyph unicode="I" horiz-adv-x="398" d="M 188,1493 L 573,1493 573,0 188,0 188,1493 Z"/>
- <glyph unicode="H" horiz-adv-x="1351" d="M 188,1493 L 573,1493 573,924 1141,924 1141,1493 1526,1493 1526,0 1141,0 1141,633 573,633 573,0 188,0 188,1493 Z"/>
- <glyph unicode="G" horiz-adv-x="1457" d="M 1530,111 C 1434,64 1334,29 1231,6 1128,-17 1021,-29 911,-29 662,-29 465,41 320,180 175,319 102,507 102,745 102,986 176,1175 324,1313 472,1451 675,1520 932,1520 1031,1520 1127,1511 1218,1492 1309,1473 1394,1446 1475,1409 L 1475,1100 C 1392,1147 1309,1183 1227,1206 1144,1229 1062,1241 979,1241 826,1241 708,1198 625,1113 542,1027 500,904 500,745 500,587 540,465 620,379 700,293 814,250 961,250 1001,250 1038,253 1073,258 1107,263 1138,270 1165,281 L 1165,571 930,571 930,829 1530,829 1530,111 Z"/>
- <glyph unicode="F" horiz-adv-x="1060" d="M 188,1493 L 1227,1493 1227,1202 573,1202 573,924 1188,924 1188,633 573,633 573,0 188,0 188,1493 Z"/>
- <glyph unicode="D" horiz-adv-x="1404" d="M 573,1202 L 573,291 711,291 C 868,291 989,330 1072,408 1155,486 1196,599 1196,748 1196,896 1155,1009 1072,1086 989,1163 869,1202 711,1202 L 573,1202 Z M 188,1493 L 594,1493 C 821,1493 990,1477 1101,1445 1212,1412 1307,1357 1386,1280 1456,1213 1508,1135 1542,1047 1576,959 1593,859 1593,748 1593,635 1576,535 1542,447 1508,358 1456,280 1386,213 1306,136 1210,81 1098,49 986,16 818,0 594,0 L 188,0 188,1493 Z"/>
- <glyph unicode="C" horiz-adv-x="1298" d="M 1372,82 C 1301,45 1228,18 1151,-1 1074,-20 994,-29 911,-29 662,-29 465,41 320,180 175,319 102,507 102,745 102,984 175,1173 320,1312 465,1451 662,1520 911,1520 994,1520 1074,1511 1151,1492 1228,1473 1301,1446 1372,1409 L 1372,1100 C 1301,1149 1230,1184 1161,1207 1092,1230 1019,1241 942,1241 805,1241 697,1197 618,1109 539,1021 500,900 500,745 500,591 539,470 618,382 697,294 805,250 942,250 1019,250 1092,261 1161,284 1230,307 1301,342 1372,391 L 1372,82 Z"/>
- <glyph unicode="7" horiz-adv-x="1139" d="M 137,1493 L 1262,1493 1262,1276 680,0 305,0 856,1210 137,1210 137,1493 Z"/>
- <glyph unicode="2" horiz-adv-x="1086" d="M 590,283 L 1247,283 1247,0 162,0 162,283 707,764 C 756,808 792,851 815,893 838,935 850,979 850,1024 850,1094 827,1150 780,1193 733,1236 670,1257 592,1257 532,1257 466,1244 395,1219 324,1193 247,1155 166,1104 L 166,1432 C 253,1461 338,1483 423,1498 508,1513 591,1520 672,1520 851,1520 990,1481 1089,1402 1188,1323 1237,1214 1237,1073 1237,992 1216,916 1174,846 1132,775 1044,681 909,563 L 590,283 Z"/>
- <glyph unicode="1" horiz-adv-x="1085" d="M 240,266 L 580,266 580,1231 231,1159 231,1421 578,1493 944,1493 944,266 1284,266 1284,0 240,0 240,266 Z"/>
- <glyph unicode="0" horiz-adv-x="1245" d="M 942,748 C 942,935 925,1066 890,1143 855,1219 796,1257 713,1257 630,1257 571,1219 536,1143 501,1066 483,935 483,748 483,559 501,426 536,349 571,272 630,233 713,233 795,233 854,272 889,349 924,426 942,559 942,748 Z M 1327,745 C 1327,498 1274,307 1167,173 1060,38 909,-29 713,-29 516,-29 365,38 258,173 151,307 98,498 98,745 98,993 151,1184 258,1319 365,1453 516,1520 713,1520 909,1520 1060,1453 1167,1319 1274,1184 1327,993 1327,745 Z"/>
- <glyph unicode="." horiz-adv-x="398" d="M 209,387 L 569,387 569,0 209,0 209,387 Z"/>
- <glyph unicode="-" horiz-adv-x="636" d="M 111,735 L 739,735 739,444 111,444 111,735 Z"/>
- <glyph unicode=" " horiz-adv-x="714"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_3" horiz-adv-x="2048">
- <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1006" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
- <glyph unicode="w" horiz-adv-x="1509" d="M 1174,0 L 965,0 776,765 740,934 C 734,904 725,861 712,805 699,748 631,480 508,0 L 300,0 -3,1082 175,1082 358,347 C 363,331 377,265 401,149 L 418,223 644,1082 837,1082 1026,339 1072,149 1103,288 1308,1082 1484,1082 1174,0 Z"/>
- <glyph unicode="u" horiz-adv-x="874" d="M 314,1082 L 314,396 C 314,325 321,269 335,230 349,191 371,162 402,145 433,128 478,119 537,119 624,119 692,149 742,208 792,267 817,350 817,455 L 817,1082 997,1082 997,231 C 997,105 999,28 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 826,132 825,185 L 822,185 C 781,110 733,58 679,27 624,-4 557,-20 476,-20 357,-20 271,10 216,69 161,128 133,225 133,361 L 133,1082 314,1082 Z"/>
- <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 495,-8 434,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 474,127 509,132 554,141 L 554,8 Z"/>
- <glyph unicode="s" horiz-adv-x="901" d="M 950,299 C 950,197 912,118 835,63 758,8 650,-20 511,-20 376,-20 273,2 200,47 127,91 79,160 57,254 L 216,285 C 231,227 263,185 311,158 359,131 426,117 511,117 602,117 669,131 712,159 754,187 775,229 775,285 775,328 760,362 731,389 702,416 654,438 589,455 L 460,489 C 357,516 283,542 240,568 196,593 162,624 137,661 112,698 100,743 100,796 100,895 135,970 206,1022 276,1073 378,1099 513,1099 632,1099 727,1078 798,1036 868,994 912,927 931,834 L 769,814 C 759,862 732,899 689,925 645,950 586,963 513,963 432,963 372,951 333,926 294,901 275,864 275,814 275,783 283,758 299,738 315,718 339,701 370,687 401,673 467,654 568,629 663,605 732,583 774,563 816,542 849,520 874,495 898,470 917,442 930,410 943,377 950,340 950,299 Z"/>
- <glyph unicode="r" horiz-adv-x="530" d="M 142,0 L 142,830 C 142,906 140,990 136,1082 L 306,1082 C 311,959 314,886 314,861 L 318,861 C 347,954 380,1017 417,1051 454,1085 507,1102 575,1102 599,1102 623,1099 648,1092 L 648,927 C 624,934 592,937 552,937 477,937 420,905 381,841 342,776 322,684 322,564 L 322,0 142,0 Z"/>
- <glyph unicode="q" horiz-adv-x="927" d="M 484,-20 C 347,-20 246,26 182,119 118,212 86,351 86,536 86,913 219,1102 484,1102 566,1102 634,1088 687,1059 740,1030 785,981 821,914 L 823,914 C 823,934 824,969 827,1018 830,1067 832,1093 835,1096 L 1008,1096 C 1003,1057 1001,958 1001,801 L 1001,-425 821,-425 821,14 825,178 823,178 C 787,107 743,56 690,26 637,-5 569,-20 484,-20 Z M 821,554 C 821,695 798,799 752,867 706,935 633,969 532,969 441,969 375,935 335,867 295,799 275,691 275,542 275,391 295,282 336,217 376,152 441,119 530,119 632,119 706,155 752,228 798,301 821,409 821,554 Z"/>
- <glyph unicode="p" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 488,-20 376,43 319,168 L 314,168 C 317,163 318,106 318,-2 L 318,-425 138,-425 138,861 C 138,972 136,1046 132,1082 L 306,1082 C 307,1079 308,1070 309,1054 310,1037 312,1012 314,978 315,944 316,921 316,908 L 320,908 C 352,975 394,1024 447,1055 500,1086 569,1101 655,1101 788,1101 888,1056 954,967 1020,878 1053,737 1053,546 Z M 864,542 C 864,693 844,800 803,865 762,930 698,962 609,962 538,962 482,947 442,917 401,887 371,840 350,777 329,713 318,630 318,528 318,386 341,281 386,214 431,147 505,113 607,113 696,113 762,146 803,212 844,277 864,387 864,542 Z"/>
- <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 407,-20 288,28 207,125 126,221 86,360 86,542 86,915 248,1102 571,1102 736,1102 858,1057 936,966 1014,875 1053,733 1053,542 Z M 864,542 C 864,691 842,800 798,868 753,935 679,969 574,969 469,969 393,935 346,866 299,797 275,689 275,542 275,399 298,292 345,221 391,149 464,113 563,113 671,113 748,148 795,217 841,286 864,395 864,542 Z"/>
- <glyph unicode="n" horiz-adv-x="874" d="M 825,0 L 825,686 C 825,757 818,813 804,852 790,891 768,920 737,937 706,954 661,963 602,963 515,963 447,933 397,874 347,815 322,732 322,627 L 322,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 358,972 406,1025 461,1056 515,1087 582,1102 663,1102 782,1102 869,1073 924,1014 979,955 1006,857 1006,721 L 1006,0 825,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1457" d="M 768,0 L 768,686 C 768,791 754,863 725,903 696,943 645,963 570,963 493,963 433,934 388,875 343,816 321,734 321,627 L 321,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 356,974 400,1027 450,1057 500,1087 561,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 967,970 1013,1022 1066,1054 1119,1086 1183,1102 1258,1102 1367,1102 1447,1072 1497,1013 1546,954 1571,856 1571,721 L 1571,0 1393,0 1393,686 C 1393,791 1379,863 1350,903 1321,943 1270,963 1195,963 1116,963 1055,934 1012,876 968,817 946,734 946,627 L 946,0 768,0 Z"/>
- <glyph unicode="l" horiz-adv-x="187" d="M 138,0 L 138,1484 318,1484 318,0 138,0 Z"/>
- <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/>
- <glyph unicode="h" horiz-adv-x="874" d="M 317,897 C 356,968 402,1020 457,1053 511,1086 580,1102 663,1102 780,1102 867,1073 923,1015 978,956 1006,858 1006,721 L 1006,0 825,0 825,686 C 825,762 818,819 804,856 790,893 767,920 735,937 703,954 659,963 602,963 517,963 450,934 399,875 348,816 322,737 322,638 L 322,0 142,0 142,1484 322,1484 322,1098 C 322,1057 321,1015 319,972 316,929 315,904 314,897 L 317,897 Z"/>
- <glyph unicode="g" horiz-adv-x="927" d="M 548,-425 C 430,-425 336,-402 266,-356 196,-309 151,-243 131,-158 L 312,-132 C 324,-182 351,-220 392,-248 433,-274 486,-288 553,-288 732,-288 822,-183 822,27 L 822,201 820,201 C 786,132 739,80 680,45 621,10 551,-8 472,-8 339,-8 242,36 180,124 117,212 86,350 86,539 86,730 120,872 187,963 254,1054 355,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,917 825,952 828,1001 831,1050 833,1077 836,1082 L 1007,1082 C 1003,1046 1001,971 1001,858 L 1001,31 C 1001,-273 850,-425 548,-425 Z M 822,541 C 822,629 810,705 786,769 762,832 728,881 685,915 641,948 591,965 536,965 444,965 377,932 335,865 293,798 272,690 272,541 272,393 292,287 331,222 370,157 438,125 533,125 590,125 640,142 684,175 728,208 762,256 786,319 810,381 822,455 822,541 Z"/>
- <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,379 302,283 353,216 404,149 479,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 954,65 807,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,727 129,864 213,959 296,1054 416,1102 571,1102 889,1102 1048,910 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 481,969 412,940 361,882 310,823 282,743 278,641 L 862,641 Z"/>
- <glyph unicode="d" horiz-adv-x="927" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 821,1035 821,1484 1001,1484 1001,223 C 1001,110 1003,36 1007,0 L 835,0 C 833,11 831,35 829,74 826,113 825,146 825,174 L 821,174 Z M 275,542 C 275,391 295,282 335,217 375,152 440,119 530,119 632,119 706,154 752,225 798,296 821,405 821,554 821,697 798,802 752,869 706,936 633,969 532,969 441,969 376,936 336,869 295,802 275,693 275,542 Z"/>
- <glyph unicode="c" horiz-adv-x="901" d="M 275,546 C 275,402 298,295 343,226 388,157 457,122 548,122 612,122 666,139 709,174 752,209 778,262 788,334 L 970,322 C 956,218 912,135 837,73 762,11 668,-20 553,-20 402,-20 286,28 207,124 127,219 87,359 87,542 87,724 127,863 207,959 287,1054 402,1102 551,1102 662,1102 754,1073 827,1016 900,959 945,880 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 451,961 382,929 339,866 296,803 275,696 275,546 Z"/>
- <glyph unicode="b" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 573,-20 505,-5 451,25 396,54 352,102 318,168 L 316,168 C 316,147 315,116 312,74 309,31 307,7 306,0 L 132,0 C 136,36 138,110 138,223 L 138,1484 318,1484 318,1061 C 318,1018 317,967 314,908 L 318,908 C 351,977 396,1027 451,1057 506,1087 574,1102 655,1102 792,1102 892,1056 957,964 1021,872 1053,733 1053,546 Z M 864,540 C 864,691 844,800 804,865 764,930 699,963 609,963 508,963 434,928 388,859 341,790 318,680 318,529 318,387 341,282 386,215 431,147 505,113 607,113 698,113 763,147 804,214 844,281 864,389 864,540 Z"/>
- <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,123 87,202 87,302 87,414 124,500 198,560 271,620 390,652 554,656 L 797,660 797,719 C 797,807 778,870 741,908 704,946 645,965 565,965 484,965 426,951 389,924 352,897 330,853 323,793 L 135,810 C 166,1005 310,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1097,111 1117,113 1139,118 L 1139,6 C 1094,-5 1047,-10 1000,-10 933,-10 885,8 855,43 824,78 807,132 803,207 L 797,207 C 751,124 698,66 637,32 576,-3 501,-20 414,-20 Z M 455,115 C 521,115 580,130 631,160 682,190 723,231 753,284 782,336 797,390 797,445 L 797,534 600,530 C 515,529 451,520 408,504 364,488 330,463 307,430 284,397 272,353 272,299 272,240 288,195 320,163 351,131 396,115 455,115 Z"/>
- <glyph unicode="]" horiz-adv-x="424" d="M 16,-425 L 16,-296 249,-296 249,1355 16,1355 16,1484 423,1484 423,-425 16,-425 Z"/>
- <glyph unicode="[" horiz-adv-x="425" d="M 146,-425 L 146,1484 553,1484 553,1355 320,1355 320,-296 553,-296 553,-425 146,-425 Z"/>
- <glyph unicode="W" horiz-adv-x="1932" d="M 1511,0 L 1283,0 1039,895 C 1023,951 1000,1051 969,1196 952,1119 937,1054 925,1002 913,950 822,616 652,0 L 424,0 9,1409 208,1409 461,514 C 491,402 519,287 544,168 560,241 579,321 600,408 621,495 713,828 877,1409 L 1060,1409 1305,532 C 1342,389 1372,267 1393,168 L 1402,203 C 1420,280 1435,342 1446,391 1457,439 1551,778 1727,1409 L 1926,1409 1511,0 Z"/>
- <glyph unicode="V" horiz-adv-x="1377" d="M 782,0 L 584,0 9,1409 210,1409 600,417 684,168 768,417 1156,1409 1357,1409 782,0 Z"/>
- <glyph unicode="T" horiz-adv-x="1192" d="M 720,1253 L 720,0 530,0 530,1253 46,1253 46,1409 1204,1409 1204,1253 720,1253 Z"/>
- <glyph unicode="N" horiz-adv-x="1165" d="M 1082,0 L 328,1200 333,1103 338,936 338,0 168,0 168,1409 390,1409 1152,201 C 1144,332 1140,426 1140,485 L 1140,1409 1312,1409 1312,0 1082,0 Z"/>
- <glyph unicode="L" horiz-adv-x="927" d="M 168,0 L 168,1409 359,1409 359,156 1071,156 1071,0 168,0 Z"/>
- <glyph unicode="I" horiz-adv-x="213" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
- <glyph unicode="G" horiz-adv-x="1377" d="M 103,711 C 103,940 164,1117 287,1242 410,1367 582,1430 804,1430 960,1430 1087,1404 1184,1351 1281,1298 1356,1214 1409,1098 L 1227,1044 C 1187,1124 1132,1182 1062,1219 991,1256 904,1274 799,1274 636,1274 512,1225 426,1127 340,1028 297,890 297,711 297,533 343,393 434,290 525,187 652,135 813,135 905,135 991,149 1071,177 1150,205 1215,243 1264,291 L 1264,545 843,545 843,705 1440,705 1440,219 C 1365,143 1274,84 1166,43 1057,1 940,-20 813,-20 666,-20 539,9 432,68 325,127 244,211 188,322 131,432 103,562 103,711 Z"/>
- <glyph unicode="F" horiz-adv-x="1006" d="M 359,1253 L 359,729 1145,729 1145,571 359,571 359,0 168,0 168,1409 1169,1409 1169,1253 359,1253 Z"/>
- <glyph unicode="E" horiz-adv-x="1138" d="M 168,0 L 168,1409 1237,1409 1237,1253 359,1253 359,801 1177,801 1177,647 359,647 359,156 1278,156 1278,0 168,0 Z"/>
- <glyph unicode="D" horiz-adv-x="1218" d="M 1381,719 C 1381,574 1353,447 1296,338 1239,229 1159,145 1055,87 951,29 831,0 695,0 L 168,0 168,1409 634,1409 C 873,1409 1057,1349 1187,1230 1316,1110 1381,940 1381,719 Z M 1189,719 C 1189,894 1141,1027 1046,1119 950,1210 811,1256 630,1256 L 359,1256 359,153 673,153 C 776,153 867,176 946,221 1024,266 1084,332 1126,417 1168,502 1189,603 1189,719 Z"/>
- <glyph unicode="C" horiz-adv-x="1324" d="M 792,1274 C 636,1274 515,1224 428,1124 341,1023 298,886 298,711 298,538 343,400 434,295 524,190 646,137 800,137 997,137 1146,235 1245,430 L 1401,352 C 1343,231 1262,138 1157,75 1052,12 930,-20 791,-20 649,-20 526,10 423,69 319,128 240,212 186,322 131,431 104,561 104,711 104,936 165,1112 286,1239 407,1366 575,1430 790,1430 940,1430 1065,1401 1166,1342 1267,1283 1341,1196 1388,1081 L 1207,1021 C 1174,1103 1122,1166 1050,1209 977,1252 891,1274 792,1274 Z"/>
- <glyph unicode="A" horiz-adv-x="1377" d="M 1167,0 L 1006,412 364,412 202,0 4,0 579,1409 796,1409 1362,0 1167,0 Z M 685,1265 L 676,1237 C 659,1182 635,1111 602,1024 L 422,561 949,561 768,1026 C 749,1072 731,1124 712,1182 L 685,1265 Z"/>
- <glyph unicode=":" horiz-adv-x="213" d="M 187,875 L 187,1082 382,1082 382,875 187,875 Z M 187,0 L 187,207 382,207 382,0 187,0 Z"/>
- <glyph unicode="3" horiz-adv-x="1006" d="M 1049,389 C 1049,259 1008,158 925,87 842,16 724,-20 571,-20 428,-20 315,12 230,77 145,141 94,236 78,362 L 264,379 C 288,212 390,129 571,129 662,129 733,151 785,196 836,241 862,307 862,395 862,472 833,532 774,575 715,618 629,639 518,639 L 416,639 416,795 514,795 C 613,795 689,817 744,860 798,903 825,962 825,1038 825,1113 803,1173 759,1217 714,1260 648,1282 561,1282 482,1282 418,1262 369,1221 320,1180 291,1123 283,1049 L 102,1063 C 115,1178 163,1268 246,1333 328,1398 434,1430 563,1430 704,1430 814,1397 893,1332 971,1266 1010,1174 1010,1057 1010,967 985,894 935,838 884,781 811,743 715,723 L 715,719 C 820,708 902,672 961,613 1020,554 1049,479 1049,389 Z"/>
- <glyph unicode="2" horiz-adv-x="954" d="M 103,0 L 103,127 C 137,205 179,274 228,334 277,393 328,447 382,496 436,544 490,589 543,630 596,671 643,713 686,754 729,795 763,839 790,884 816,929 829,981 829,1038 829,1115 806,1175 761,1218 716,1261 653,1282 572,1282 495,1282 432,1261 383,1220 333,1178 304,1119 295,1044 L 111,1061 C 124,1174 172,1263 255,1330 337,1397 443,1430 572,1430 714,1430 823,1397 900,1330 976,1263 1014,1167 1014,1044 1014,989 1002,935 977,881 952,827 914,773 865,719 816,665 721,581 582,468 505,405 444,349 399,299 354,248 321,200 301,153 L 1036,153 1036,0 103,0 Z"/>
- <glyph unicode="1" horiz-adv-x="927" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
- <glyph unicode="0" horiz-adv-x="980" d="M 1059,705 C 1059,470 1018,290 935,166 852,42 729,-20 567,-20 405,-20 283,42 202,165 121,288 80,468 80,705 80,947 120,1128 199,1249 278,1370 402,1430 573,1430 739,1430 862,1369 941,1247 1020,1125 1059,944 1059,705 Z M 876,705 C 876,908 853,1056 806,1147 759,1238 681,1284 573,1284 462,1284 383,1239 335,1149 286,1059 262,911 262,705 262,505 287,359 336,266 385,173 462,127 569,127 675,127 753,174 802,269 851,364 876,509 876,705 Z"/>
- <glyph unicode="-" horiz-adv-x="531" d="M 91,464 L 91,624 591,624 591,464 91,464 Z"/>
- <glyph unicode=" " horiz-adv-x="556"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="Group">
- <g class="com.sun.star.drawing.TextShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="3564" y="9691" width="5778" height="1806"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="3814" y="10007"><tspan fill="rgb(0,0,0)" stroke="none">Ethernet Wire Encapsulation: </tspan><tspan fill="rgb(0,0,0)" stroke="none">dot1q</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="577" y="913" width="13649" height="9754"/>
- <path fill="none" stroke="rgb(178,178,178)" stroke-width="28" stroke-linejoin="miter" d="M 7401,10652 L 591,10652 591,927 14211,927 14211,10652 7401,10652 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="360" y="481" width="13996" height="690"/>
- <path fill="rgb(238,238,238)" stroke="none" d="M 7358,1156 L 374,1156 374,495 14341,495 14341,1156 7358,1156 Z"/>
- <path fill="none" stroke="rgb(178,178,178)" stroke-width="28" stroke-linejoin="miter" d="M 7358,1156 L 374,1156 374,495 14341,495 14341,1156 7358,1156 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="629" y="941"><tspan fill="rgb(0,0,0)" stroke="none">2-Node Containerized Topologies: vfNIC-to-vhost-user switching</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="1386" y="1913" width="11849" height="6972"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 7310,8866 L 1404,8866 1404,1931 13216,1931 13216,8866 7310,8866 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7310,8866 L 1404,8866 1404,1931 13216,1931 13216,8866 7310,8866 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="5899" y="2479"><tspan fill="rgb(0,0,0)" stroke="none">Host Server</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="1695" y="3069" width="11312" height="5197"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 7351,8247 L 1713,8247 1713,3087 12988,3087 12988,8247 7351,8247 Z"/>
- <path fill="none" stroke="rgb(188,140,0)" stroke-width="35" stroke-linejoin="miter" d="M 7351,8247 L 1713,8247 1713,3087 12988,3087 12988,8247 7351,8247 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="1641" y="3116" width="9074" height="4468"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 6178,7565 L 1659,7565 1659,3134 10696,3134 10696,7565 6178,7565 Z"/>
- <path fill="none" stroke="rgb(112,173,71)" stroke-width="35" stroke-linejoin="miter" d="M 6178,7565 L 1659,7565 1659,3134 10696,3134 10696,7565 6178,7565 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="3956" y="3254" width="4715" height="2152"/>
- <g>
- <defs>
- <linearGradient id="gradient1" x1="6313" y1="3272" x2="6313" y2="5387" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient1)" d="M 6313,5387 L 3974,5387 3974,3272 8652,3272 8652,5387 6313,5387 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="35" stroke-linejoin="miter" d="M 6313,5387 L 3974,5387 3974,3272 8652,3272 8652,5387 6313,5387 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="6717" y="3620"><tspan fill="rgb(0,0,0)" stroke="none">cSUT[1.1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="3939" y="5568" width="4699" height="1861"/>
- <g>
- <defs>
- <linearGradient id="gradient2" x1="6288" y1="5586" x2="6288" y2="7410" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(209,209,209)"/>
- <stop offset="1" style="stop-color:rgb(199,199,199)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient2)" d="M 6288,7410 L 3957,7410 3957,5586 8619,5586 8619,7410 6288,7410 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="35" stroke-linejoin="miter" d="M 6288,7410 L 3957,7410 3957,5586 8619,5586 8619,7410 6288,7410 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="5446" y="5934"><tspan fill="rgb(0,0,0)" stroke="none">cTG[1.2]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="3330" width="1557" height="4468"/>
- <path fill="rgb(255,192,0)" stroke="none" d="M 1940,5564 L 1940,3348 3460,3348 3460,7779 1940,7779 1940,5564 Z"/>
- <path fill="none" stroke="rgb(188,142,0)" stroke-width="35" stroke-linejoin="miter" d="M 1940,5564 L 1940,3348 3460,3348 3460,7779 1940,7779 1940,5564 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="1797" y="4980" width="1885" height="1348"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="2204" y="5584"><tspan fill="rgb(0,0,0)" stroke="none">Linux</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="2098" y="5937"><tspan fill="rgb(0,0,0)" stroke="none">Kernel</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="1835" y="8023" width="2274" height="457"/>
- <path fill="rgb(255,242,204)" stroke="none" d="M 1853,8128 L 1853,8128 1853,8123 1853,8119 1854,8114 1855,8110 1856,8105 1857,8101 1859,8097 1861,8093 1862,8089 1865,8084 1867,8081 1870,8077 1872,8073 1875,8070 1878,8066 1882,8063 1885,8060 1889,8058 1893,8055 1897,8053 1901,8050 1905,8049 1909,8047 1913,8045 1917,8044 1922,8043 1926,8042 1931,8041 1935,8041 1940,8041 4002,8041 4002,8041 4007,8041 4011,8041 4016,8042 4020,8043 4025,8044 4029,8045 4033,8047 4037,8049 4041,8050 4046,8053 4049,8055 4053,8058 4057,8060 4060,8063 4064,8066 4067,8070 4070,8073 4072,8077 4075,8081 4077,8085 4080,8089 4081,8093 4083,8097 4085,8101 4086,8105 4087,8110 4088,8114 4089,8119 4089,8123 4089,8128 4090,8373 4090,8373 4090,8378 4090,8382 4089,8387 4088,8391 4087,8396 4086,8400 4084,8404 4082,8408 4081,8412 4078,8416 4076,8420 4073,8424 4071,8428 4068,8431 4065,8435 4061,8438 4058,8441 4054,8443 4050,8446 4047,8448 4042,8451 4038,8452 4034,8454 4030,8456 4026,8457 4021,8458 4017,8459 4012,8460 4008,8460 4003,8460 1940,8461 1940,8461 1935,8461 1931,8461 1926,8460 1922,8459 1917,8458 1913,8457 1909,8455 1905,8453 1901,8452 1897,8449 1893,8447 1889,8444 1885,8442 1882,8439 1878,8436 1875,8432 1872,8429 1870,8425 1867,8421 1865,8418 1862,8413 1861,8409 1859,8405 1857,8401 1856,8397 1855,8392 1854,8388 1853,8383 1853,8379 1853,8374 1853,8128 Z M 1853,8041 L 1853,8041 Z M 4090,8461 L 4090,8461 Z"/>
- <path fill="none" stroke="rgb(188,140,0)" stroke-width="35" stroke-linejoin="miter" d="M 1853,8128 L 1853,8128 1853,8123 1853,8119 1854,8114 1855,8110 1856,8105 1857,8101 1859,8097 1861,8093 1862,8089 1865,8084 1867,8081 1870,8077 1872,8073 1875,8070 1878,8066 1882,8063 1885,8060 1889,8058 1893,8055 1897,8053 1901,8050 1905,8049 1909,8047 1913,8045 1917,8044 1922,8043 1926,8042 1931,8041 1935,8041 1940,8041 4002,8041 4002,8041 4007,8041 4011,8041 4016,8042 4020,8043 4025,8044 4029,8045 4033,8047 4037,8049 4041,8050 4046,8053 4049,8055 4053,8058 4057,8060 4060,8063 4064,8066 4067,8070 4070,8073 4072,8077 4075,8081 4077,8085 4080,8089 4081,8093 4083,8097 4085,8101 4086,8105 4087,8110 4088,8114 4089,8119 4089,8123 4089,8128 4090,8373 4090,8373 4090,8378 4090,8382 4089,8387 4088,8391 4087,8396 4086,8400 4084,8404 4082,8408 4081,8412 4078,8416 4076,8420 4073,8424 4071,8428 4068,8431 4065,8435 4061,8438 4058,8441 4054,8443 4050,8446 4047,8448 4042,8451 4038,8452 4034,8454 4030,8456 4026,8457 4021,8458 4017,8459 4012,8460 4008,8460 4003,8460 1940,8461 1940,8461 1935,8461 1931,8461 1926,8460 1922,8459 1917,8458 1913,8457 1909,8455 1905,8453 1901,8452 1897,8449 1893,8447 1889,8444 1885,8442 1882,8439 1878,8436 1875,8432 1872,8429 1870,8425 1867,8421 1865,8418 1862,8413 1861,8409 1859,8405 1857,8401 1856,8397 1855,8392 1854,8388 1853,8383 1853,8379 1853,8374 1853,8128 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="2110" y="8371"><tspan fill="rgb(0,0,0)" stroke="none">Linux-Host</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="4160" y="7610" width="2471" height="452"/>
- <path fill="rgb(226,240,217)" stroke="none" d="M 4178,7727 L 4178,7727 4178,7722 4179,7717 4179,7712 4180,7706 4181,7701 4183,7696 4185,7692 4187,7687 4189,7682 4191,7677 4194,7673 4197,7669 4200,7665 4203,7661 4207,7657 4211,7653 4215,7650 4219,7647 4223,7644 4228,7641 4232,7639 4237,7637 4242,7635 4246,7633 4251,7631 4256,7630 4262,7629 4267,7629 4272,7628 4277,7628 6512,7628 6512,7628 6517,7628 6522,7629 6527,7629 6533,7630 6538,7631 6543,7633 6547,7635 6552,7637 6557,7639 6562,7641 6566,7644 6570,7647 6574,7650 6578,7653 6582,7657 6586,7661 6589,7665 6592,7669 6595,7673 6598,7678 6600,7682 6602,7687 6604,7692 6606,7696 6608,7701 6609,7706 6610,7712 6610,7717 6611,7722 6611,7727 6612,7943 6611,7943 6611,7948 6610,7953 6610,7958 6609,7963 6608,7968 6606,7973 6605,7978 6603,7983 6600,7988 6598,7992 6595,7997 6592,8001 6589,8005 6586,8009 6582,8013 6579,8016 6575,8020 6571,8023 6566,8026 6562,8028 6558,8031 6553,8033 6548,8035 6543,8037 6538,8038 6533,8040 6528,8041 6523,8041 6518,8042 6513,8042 4277,8043 4277,8042 4272,8042 4267,8041 4262,8041 4257,8040 4252,8039 4247,8037 4242,8036 4237,8034 4232,8031 4228,8029 4223,8026 4219,8023 4215,8020 4211,8017 4207,8013 4204,8010 4200,8006 4197,8002 4194,7997 4192,7993 4189,7989 4187,7984 4185,7979 4183,7974 4182,7969 4180,7964 4179,7959 4179,7954 4178,7949 4178,7944 4178,7727 Z M 4178,7628 L 4178,7628 Z M 6612,8043 L 6612,8043 Z"/>
- <path fill="none" stroke="rgb(112,173,71)" stroke-width="35" stroke-linejoin="miter" d="M 4178,7727 L 4178,7727 4178,7722 4179,7717 4179,7712 4180,7706 4181,7701 4183,7696 4185,7692 4187,7687 4189,7682 4191,7677 4194,7673 4197,7669 4200,7665 4203,7661 4207,7657 4211,7653 4215,7650 4219,7647 4223,7644 4228,7641 4232,7639 4237,7637 4242,7635 4246,7633 4251,7631 4256,7630 4262,7629 4267,7629 4272,7628 4277,7628 6512,7628 6512,7628 6517,7628 6522,7629 6527,7629 6533,7630 6538,7631 6543,7633 6547,7635 6552,7637 6557,7639 6562,7641 6566,7644 6570,7647 6574,7650 6578,7653 6582,7657 6586,7661 6589,7665 6592,7669 6595,7673 6598,7678 6600,7682 6602,7687 6604,7692 6606,7696 6608,7701 6609,7706 6610,7712 6610,7717 6611,7722 6611,7727 6612,7943 6611,7943 6611,7948 6610,7953 6610,7958 6609,7963 6608,7968 6606,7973 6605,7978 6603,7983 6600,7988 6598,7992 6595,7997 6592,8001 6589,8005 6586,8009 6582,8013 6579,8016 6575,8020 6571,8023 6566,8026 6562,8028 6558,8031 6553,8033 6548,8035 6543,8037 6538,8038 6533,8040 6528,8041 6523,8041 6518,8042 6513,8042 4277,8043 4277,8042 4272,8042 4267,8041 4262,8041 4257,8040 4252,8039 4247,8037 4242,8036 4237,8034 4232,8031 4228,8029 4223,8026 4219,8023 4215,8020 4211,8017 4207,8013 4204,8010 4200,8006 4197,8002 4194,7997 4192,7993 4189,7989 4187,7984 4185,7979 4183,7974 4182,7969 4180,7964 4179,7959 4179,7954 4178,7949 4178,7944 4178,7727 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="4493" y="7956"><tspan fill="rgb(0,0,0)" stroke="none">User-Space</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="4171" y="4341" width="3632" height="854"/>
- <path fill="rgb(112,173,71)" stroke="none" d="M 5987,5176 L 4189,5176 4189,4359 7784,4359 7784,5176 5987,5176 Z"/>
- <path fill="none" stroke="rgb(82,127,52)" stroke-width="35" stroke-linejoin="miter" d="M 5987,5176 L 4189,5176 4189,4359 7784,4359 7784,5176 5987,5176 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="6734" y="4888"><tspan fill="rgb(255,255,255)" stroke="none">DUT </tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="4172" y="6363" width="3755" height="855"/>
- <path fill="rgb(112,173,71)" stroke="none" d="M 6049,7199 L 4190,7199 4190,6381 7908,6381 7908,7199 6049,7199 Z"/>
- <path fill="none" stroke="rgb(82,127,52)" stroke-width="35" stroke-linejoin="miter" d="M 6049,7199 L 4190,7199 4190,6381 7908,6381 7908,7199 6049,7199 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="700"><tspan class="TextPosition" x="5835" y="6911"><tspan fill="rgb(255,255,255)" stroke="none">TG</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="4164" y="8366" width="8781" height="1345"/>
- <path fill="rgb(237,237,237)" stroke="none" d="M 8554,9701 L 4173,9701 4173,8375 12935,8375 12935,9701 8554,9701 Z"/>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8554,9701 L 4173,9701 4173,8375 12935,8375 12935,9701 8554,9701 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="353px" font-weight="700"><tspan class="TextPosition" x="11066" y="9145"><tspan fill="rgb(0,0,0)" stroke="none">NIC x710</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="7555" y="9757" width="1689" height="542"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 7573,9775 L 7573,10280 9225,10280 9225,9776"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="7870" y="4589" width="1224" height="4593"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 9075,9163 L 9075,4607 7888,4607"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="7408" y="6669" width="1093" height="2514"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="35" stroke-linejoin="round" d="M 7426,9164 L 7426,7993 8482,7993 8482,6687 7978,6687"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="7106" y="6969" width="1143" height="2213"/>
- <path fill="none" stroke="rgb(238,131,59)" stroke-width="35" stroke-linejoin="round" d="M 7124,9163 L 7124,8142 8230,8142 8230,6987 7979,6987"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="7554" y="9347" width="38" height="312"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 7573,9640 L 7573,9510 7572,9510 7572,9365"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="8541" y="9130" width="1362" height="254"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 9884,9148 L 9884,9148 9884,9159 9884,9171 9883,9182 9882,9193 9881,9204 9880,9215 9878,9225 9876,9236 9875,9246 9872,9256 9870,9266 9867,9275 9865,9284 9862,9293 9859,9301 9855,9309 9852,9316 9848,9323 9844,9329 9840,9335 9836,9340 9832,9345 9828,9350 9824,9353 9820,9357 9815,9359 9811,9361 9806,9363 9802,9364 9797,9364 8647,9365 8647,9365 8642,9365 8638,9364 8633,9362 8629,9360 8625,9358 8620,9354 8616,9351 8612,9346 8608,9341 8604,9336 8600,9330 8596,9324 8592,9317 8589,9310 8586,9302 8582,9294 8580,9285 8577,9276 8574,9267 8572,9257 8570,9247 8568,9237 8566,9226 8564,9216 8563,9205 8562,9194 8561,9183 8561,9172 8560,9160 8560,9149"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 9884,9148 L 9884,9148 Z"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 8559,9365 L 8559,9365 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="9204" y="9346" width="40" height="314"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 9225,9641 L 9225,9510 9222,9510 9222,9364"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="7031" y="9667" width="2755" height="1092"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8019" y="9983"><tspan fill="rgb(0,0,0)" stroke="none">External</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8154" y="10221"><tspan fill="rgb(0,0,0)" stroke="none">cable</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="7338" y="3874" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="7588" y="4317"><tspan fill="rgb(0,0,0)" stroke="none">VF[2]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="4109" y="8613" width="3269" height="849"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="4360" y="8929"><tspan fill="rgb(0,0,0)" stroke="none">VFs mapped to VLAN IDs</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="7804" y="4885" width="988" height="4295"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 8773,9161 L 8773,4903 7822,4903 7822,5042"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="7333" y="4917" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="7583" y="5360"><tspan fill="rgb(0,0,0)" stroke="none">VF[1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="8615" y="8795" width="286" height="259"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8660,8799 C 8639,8799 8619,8819 8619,8840 L 8619,9007 C 8619,9028 8639,9049 8660,9049 L 8854,9049 C 8875,9049 8896,9028 8896,9007 L 8896,8840 C 8896,8819 8875,8799 8854,8799 L 8660,8799 Z M 8619,8799 L 8619,8799 Z M 8896,9049 L 8896,9049 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 8660,8799 C 8639,8799 8619,8819 8619,8840 L 8619,9007 C 8619,9028 8639,9049 8660,9049 L 8854,9049 C 8875,9049 8896,9028 8896,9007 L 8896,8840 C 8896,8819 8875,8799 8854,8799 L 8660,8799 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8698" y="8996"><tspan fill="rgb(0,0,0)" stroke="none">1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="8930" y="8451" width="286" height="259"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8975,8455 C 8954,8455 8934,8475 8934,8496 L 8934,8663 C 8934,8684 8954,8705 8975,8705 L 9169,8705 C 9190,8705 9211,8684 9211,8663 L 9211,8496 C 9211,8475 9190,8455 9169,8455 L 8975,8455 Z M 8934,8455 L 8934,8455 Z M 9211,8705 L 9211,8705 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 8975,8455 C 8954,8455 8934,8475 8934,8496 L 8934,8663 C 8934,8684 8954,8705 8975,8705 L 9169,8705 C 9190,8705 9211,8684 9211,8663 L 9211,8496 C 9211,8475 9190,8455 9169,8455 L 8975,8455 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9013" y="8652"><tspan fill="rgb(0,0,0)" stroke="none">2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="9165" y="8790" width="400" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9214,8794 C 9191,8794 9169,8816 9169,8839 L 9169,9019 C 9169,9042 9191,9065 9214,9065 L 9514,9065 C 9537,9065 9560,9042 9560,9019 L 9560,8839 C 9560,8816 9537,8794 9514,8794 L 9214,8794 Z M 9169,8794 L 9169,8794 Z M 9560,9065 L 9560,9065 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 9214,8794 C 9191,8794 9169,8816 9169,8839 L 9169,9019 C 9169,9042 9191,9065 9214,9065 L 9514,9065 C 9537,9065 9560,9042 9560,9019 L 9560,8839 C 9560,8816 9537,8794 9514,8794 L 9214,8794 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9245" y="9001"><tspan fill="rgb(0,0,0)" stroke="none">2n</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="9458" y="8448" width="671" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9507,8452 C 9484,8452 9462,8474 9462,8497 L 9462,8677 C 9462,8700 9484,8723 9507,8723 L 10078,8723 C 10101,8723 10124,8700 10124,8677 L 10124,8497 C 10124,8474 10101,8452 10078,8452 L 9507,8452 Z M 9462,8452 L 9462,8452 Z M 10124,8723 L 10124,8723 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 9507,8452 C 9484,8452 9462,8474 9462,8497 L 9462,8677 C 9462,8700 9484,8723 9507,8723 L 10078,8723 C 10101,8723 10124,8700 10124,8677 L 10124,8497 C 10124,8474 10101,8452 10078,8452 L 9507,8452 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9578" y="8659"><tspan fill="rgb(0,0,0)" stroke="none">2n-1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="8634" y="9156" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8660,9160 C 8649,9160 8638,9171 8638,9182 L 8638,9273 C 8638,9284 8649,9296 8660,9296 L 8886,9296 C 8897,9296 8909,9284 8909,9273 L 8909,9182 C 8909,9171 8897,9160 8886,9160 L 8660,9160 Z M 8638,9160 L 8638,9160 Z M 8909,9296 L 8909,9296 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 8660,9160 C 8649,9160 8638,9171 8638,9182 L 8638,9273 C 8638,9284 8649,9296 8660,9296 L 8886,9296 C 8897,9296 8909,9284 8909,9273 L 8909,9182 C 8909,9171 8897,9160 8886,9160 L 8660,9160 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="8936" y="9158" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8962,9162 C 8951,9162 8940,9173 8940,9184 L 8940,9275 C 8940,9286 8951,9298 8962,9298 L 9188,9298 C 9199,9298 9211,9286 9211,9275 L 9211,9184 C 9211,9173 9199,9162 9188,9162 L 8962,9162 Z M 8940,9162 L 8940,9162 Z M 9211,9298 L 9211,9298 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 8962,9162 C 8951,9162 8940,9173 8940,9184 L 8940,9275 C 8940,9286 8951,9298 8962,9298 L 9188,9298 C 9199,9298 9211,9286 9211,9275 L 9211,9184 C 9211,9173 9199,9162 9188,9162 L 8962,9162 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="9237" y="9159" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9263,9163 C 9252,9163 9241,9174 9241,9185 L 9241,9276 C 9241,9287 9252,9299 9263,9299 L 9489,9299 C 9500,9299 9512,9287 9512,9276 L 9512,9185 C 9512,9174 9500,9163 9489,9163 L 9263,9163 Z M 9241,9163 L 9241,9163 Z M 9512,9299 L 9512,9299 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 9263,9163 C 9252,9163 9241,9174 9241,9185 L 9241,9276 C 9241,9287 9252,9299 9263,9299 L 9489,9299 C 9500,9299 9512,9287 9512,9276 L 9512,9185 C 9512,9174 9500,9163 9489,9163 L 9263,9163 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="9539" y="9161" width="280" height="145"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9565,9165 C 9554,9165 9543,9176 9543,9187 L 9543,9278 C 9543,9289 9554,9301 9565,9301 L 9791,9301 C 9802,9301 9814,9289 9814,9278 L 9814,9187 C 9814,9176 9802,9165 9791,9165 L 9565,9165 Z M 9543,9165 L 9543,9165 Z M 9814,9301 L 9814,9301 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 9565,9165 C 9554,9165 9543,9176 9543,9187 L 9543,9278 C 9543,9289 9554,9301 9565,9301 L 9791,9301 C 9802,9301 9814,9289 9814,9278 L 9814,9187 C 9814,9176 9802,9165 9791,9165 L 9565,9165 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="7345" y="5940" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="7595" y="6383"><tspan fill="rgb(0,0,0)" stroke="none">VF[2]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="7341" y="6973" width="1932" height="735"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="7591" y="7449"><tspan fill="rgb(0,0,0)" stroke="none">VF[</tspan><tspan font-size="388px" fill="rgb(0,0,0)" stroke="none">1</tspan><tspan fill="rgb(0,0,0)" stroke="none">]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="6985" y="9158" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7011,9162 C 7000,9162 6989,9173 6989,9184 L 6989,9275 C 6989,9286 7000,9298 7011,9298 L 7237,9298 C 7248,9298 7260,9286 7260,9275 L 7260,9184 C 7260,9173 7248,9162 7237,9162 L 7011,9162 Z M 6989,9162 L 6989,9162 Z M 7260,9298 L 7260,9298 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7011,9162 C 7000,9162 6989,9173 6989,9184 L 6989,9275 C 6989,9286 7000,9298 7011,9298 L 7237,9298 C 7248,9298 7260,9286 7260,9275 L 7260,9184 C 7260,9173 7248,9162 7237,9162 L 7011,9162 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="7287" y="9159" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7313,9163 C 7302,9163 7291,9174 7291,9185 L 7291,9276 C 7291,9287 7302,9299 7313,9299 L 7539,9299 C 7550,9299 7562,9287 7562,9276 L 7562,9185 C 7562,9174 7550,9163 7539,9163 L 7313,9163 Z M 7291,9163 L 7291,9163 Z M 7562,9299 L 7562,9299 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7313,9163 C 7302,9163 7291,9174 7291,9185 L 7291,9276 C 7291,9287 7302,9299 7313,9299 L 7539,9299 C 7550,9299 7562,9287 7562,9276 L 7562,9185 C 7562,9174 7550,9163 7539,9163 L 7313,9163 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="7588" y="9161" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7614,9165 C 7603,9165 7592,9176 7592,9187 L 7592,9278 C 7592,9289 7603,9301 7614,9301 L 7840,9301 C 7851,9301 7863,9289 7863,9278 L 7863,9187 C 7863,9176 7851,9165 7840,9165 L 7614,9165 Z M 7592,9165 L 7592,9165 Z M 7863,9301 L 7863,9301 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7614,9165 C 7603,9165 7592,9176 7592,9187 L 7592,9278 C 7592,9289 7603,9301 7614,9301 L 7840,9301 C 7851,9301 7863,9289 7863,9278 L 7863,9187 C 7863,9176 7851,9165 7840,9165 L 7614,9165 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="7890" y="9162" width="280" height="145"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7916,9166 C 7905,9166 7894,9177 7894,9188 L 7894,9279 C 7894,9290 7905,9302 7916,9302 L 8142,9302 C 8153,9302 8165,9290 8165,9279 L 8165,9188 C 8165,9177 8153,9166 8142,9166 L 7916,9166 Z M 7894,9166 L 7894,9166 Z M 8165,9302 L 8165,9302 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7916,9166 C 7905,9166 7894,9177 7894,9188 L 7894,9279 C 7894,9290 7905,9302 7916,9302 L 8142,9302 C 8153,9302 8165,9290 8165,9279 L 8165,9188 C 8165,9177 8153,9166 8142,9166 L 7916,9166 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="6966" y="8796" width="286" height="259"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7011,8800 C 6990,8800 6970,8820 6970,8841 L 6970,9008 C 6970,9029 6990,9050 7011,9050 L 7205,9050 C 7226,9050 7247,9029 7247,9008 L 7247,8841 C 7247,8820 7226,8800 7205,8800 L 7011,8800 Z M 6970,8800 L 6970,8800 Z M 7247,9050 L 7247,9050 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7011,8800 C 6990,8800 6970,8820 6970,8841 L 6970,9008 C 6970,9029 6990,9050 7011,9050 L 7205,9050 C 7226,9050 7247,9029 7247,9008 L 7247,8841 C 7247,8820 7226,8800 7205,8800 L 7011,8800 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7049" y="8997"><tspan fill="rgb(0,0,0)" stroke="none">1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="7281" y="8453" width="286" height="259"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7326,8457 C 7305,8457 7285,8477 7285,8498 L 7285,8665 C 7285,8686 7305,8707 7326,8707 L 7520,8707 C 7541,8707 7562,8686 7562,8665 L 7562,8498 C 7562,8477 7541,8457 7520,8457 L 7326,8457 Z M 7285,8457 L 7285,8457 Z M 7562,8707 L 7562,8707 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7326,8457 C 7305,8457 7285,8477 7285,8498 L 7285,8665 C 7285,8686 7305,8707 7326,8707 L 7520,8707 C 7541,8707 7562,8686 7562,8665 L 7562,8498 C 7562,8477 7541,8457 7520,8457 L 7326,8457 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7364" y="8654"><tspan fill="rgb(0,0,0)" stroke="none">2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="6891" y="9131" width="1361" height="254"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 8233,9149 L 8233,9149 8233,9160 8233,9172 8232,9183 8231,9194 8230,9205 8229,9216 8227,9226 8225,9237 8224,9247 8221,9257 8219,9267 8216,9276 8214,9285 8211,9294 8208,9302 8204,9310 8201,9317 8197,9324 8193,9330 8189,9336 8185,9341 8181,9346 8177,9351 8173,9354 8169,9358 8164,9360 8160,9362 8155,9364 8151,9365 8146,9365 6997,9366 6997,9366 6992,9366 6988,9365 6983,9363 6979,9361 6975,9359 6970,9355 6966,9352 6962,9347 6958,9342 6954,9337 6950,9331 6946,9325 6942,9318 6939,9311 6936,9303 6932,9295 6930,9286 6927,9277 6924,9268 6922,9258 6920,9248 6918,9238 6916,9227 6914,9217 6913,9206 6912,9195 6911,9184 6911,9173 6910,9161 6910,9150"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 8233,9149 L 8233,9149 Z"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="35" stroke-linejoin="round" d="M 6909,9366 L 6909,9366 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="7748" y="4467" width="145" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 7752,4720 C 7752,4731 7763,4742 7774,4742 L 7865,4742 C 7876,4742 7888,4731 7888,4720 L 7888,4494 C 7888,4483 7876,4471 7865,4471 L 7774,4471 C 7763,4471 7752,4483 7752,4494 L 7752,4720 Z M 7752,4742 L 7752,4742 Z M 7888,4471 L 7888,4471 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 7752,4720 C 7752,4731 7763,4742 7774,4742 L 7865,4742 C 7876,4742 7888,4731 7888,4720 L 7888,4494 C 7888,4483 7876,4471 7865,4471 L 7774,4471 C 7763,4471 7752,4483 7752,4494 L 7752,4720 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="7750" y="4767" width="145" height="280"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 7754,5020 C 7754,5031 7765,5042 7776,5042 L 7867,5042 C 7878,5042 7890,5031 7890,5020 L 7890,4794 C 7890,4783 7878,4771 7867,4771 L 7776,4771 C 7765,4771 7754,4783 7754,4794 L 7754,5020 Z M 7754,5042 L 7754,5042 Z M 7890,4771 L 7890,4771 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 7754,5020 C 7754,5031 7765,5042 7776,5042 L 7867,5042 C 7878,5042 7890,5031 7890,5020 L 7890,4794 C 7890,4783 7878,4771 7867,4771 L 7776,4771 C 7765,4771 7754,4783 7754,4794 L 7754,5020 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="7838" y="6547" width="145" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7842,6800 C 7842,6811 7853,6822 7864,6822 L 7955,6822 C 7966,6822 7978,6811 7978,6800 L 7978,6574 C 7978,6563 7966,6551 7955,6551 L 7864,6551 C 7853,6551 7842,6563 7842,6574 L 7842,6800 Z M 7842,6822 L 7842,6822 Z M 7978,6551 L 7978,6551 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7842,6800 C 7842,6811 7853,6822 7864,6822 L 7955,6822 C 7966,6822 7978,6811 7978,6800 L 7978,6574 C 7978,6563 7966,6551 7955,6551 L 7864,6551 C 7853,6551 7842,6563 7842,6574 L 7842,6800 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="7839" y="6847" width="145" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7843,7100 C 7843,7111 7854,7122 7865,7122 L 7956,7122 C 7967,7122 7979,7111 7979,7100 L 7979,6874 C 7979,6863 7967,6851 7956,6851 L 7865,6851 C 7854,6851 7843,6863 7843,6874 L 7843,7100 Z M 7843,7122 L 7843,7122 Z M 7979,6851 L 7979,6851 Z"/>
- <path fill="none" stroke="rgb(245,130,32)" stroke-width="7" stroke-linejoin="round" d="M 7843,7100 C 7843,7111 7854,7122 7865,7122 L 7956,7122 C 7967,7122 7979,7111 7979,7100 L 7979,6874 C 7979,6863 7967,6851 7956,6851 L 7865,6851 C 7854,6851 7843,6863 7843,6874 L 7843,7100 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="7516" y="8791" width="400" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7565,8795 C 7542,8795 7520,8817 7520,8840 L 7520,9020 C 7520,9043 7542,9066 7565,9066 L 7865,9066 C 7888,9066 7911,9043 7911,9020 L 7911,8840 C 7911,8817 7888,8795 7865,8795 L 7565,8795 Z M 7520,8795 L 7520,8795 Z M 7911,9066 L 7911,9066 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7565,8795 C 7542,8795 7520,8817 7520,8840 L 7520,9020 C 7520,9043 7542,9066 7565,9066 L 7865,9066 C 7888,9066 7911,9043 7911,9020 L 7911,8840 C 7911,8817 7888,8795 7865,8795 L 7565,8795 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7596" y="9002"><tspan fill="rgb(0,0,0)" stroke="none">2n</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="7809" y="8449" width="671" height="280"/>
- <path fill="rgb(250,166,26)" stroke="none" d="M 7858,8453 C 7835,8453 7813,8475 7813,8498 L 7813,8678 C 7813,8701 7835,8724 7858,8724 L 8429,8724 C 8452,8724 8475,8701 8475,8678 L 8475,8498 C 8475,8475 8452,8453 8429,8453 L 7858,8453 Z M 7813,8453 L 7813,8453 Z M 8475,8724 L 8475,8724 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 7858,8453 C 7835,8453 7813,8475 7813,8498 L 7813,8678 C 7813,8701 7835,8724 7858,8724 L 8429,8724 C 8452,8724 8475,8701 8475,8678 L 8475,8498 C 8475,8475 8452,8453 8429,8453 L 7858,8453 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="7929" y="8660"><tspan fill="rgb(0,0,0)" stroke="none">2n-1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="4299" y="8745" width="2594" height="223"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 4338,8749 C 4320,8749 4303,8766 4303,8784 L 4303,8927 C 4303,8945 4320,8963 4338,8963 L 6852,8963 C 6870,8963 6888,8945 6888,8927 L 6888,8784 C 6888,8766 6870,8749 6852,8749 L 4338,8749 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="7434" y="9635" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 7460,9639 C 7449,9639 7438,9650 7438,9661 L 7438,9752 C 7438,9763 7449,9775 7460,9775 L 7686,9775 C 7697,9775 7709,9763 7709,9752 L 7709,9661 C 7709,9650 7697,9639 7686,9639 L 7460,9639 Z M 7438,9639 L 7438,9639 Z M 7709,9775 L 7709,9775 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 7460,9639 C 7449,9639 7438,9650 7438,9661 L 7438,9752 C 7438,9763 7449,9775 7460,9775 L 7686,9775 C 7697,9775 7709,9763 7709,9752 L 7709,9661 C 7709,9650 7697,9639 7686,9639 L 7460,9639 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="9086" y="9636" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 9112,9640 C 9101,9640 9090,9651 9090,9662 L 9090,9753 C 9090,9764 9101,9776 9112,9776 L 9338,9776 C 9349,9776 9361,9764 9361,9753 L 9361,9662 C 9361,9651 9349,9640 9338,9640 L 9112,9640 Z M 9090,9640 L 9090,9640 Z M 9361,9776 L 9361,9776 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 9112,9640 C 9101,9640 9090,9651 9090,9662 L 9090,9753 C 9090,9764 9101,9776 9112,9776 L 9338,9776 C 9349,9776 9361,9764 9361,9753 L 9361,9662 C 9361,9651 9349,9640 9338,9640 L 9112,9640 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="6617" y="9242" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="6867" y="9558"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="8269" y="9242" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="8519" y="9558"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="10556" y="9757" width="1689" height="542"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 10574,9775 L 10574,10280 12226,10280 12226,9776"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="10032" y="9667" width="2755" height="1092"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="11020" y="9983"><tspan fill="rgb(0,0,0)" stroke="none">External</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="11155" y="10221"><tspan fill="rgb(0,0,0)" stroke="none">cable</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="10435" y="9635" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 10461,9639 C 10450,9639 10439,9650 10439,9661 L 10439,9752 C 10439,9763 10450,9775 10461,9775 L 10687,9775 C 10698,9775 10710,9763 10710,9752 L 10710,9661 C 10710,9650 10698,9639 10687,9639 L 10461,9639 Z M 10439,9639 L 10439,9639 Z M 10710,9775 L 10710,9775 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 10461,9639 C 10450,9639 10439,9650 10439,9661 L 10439,9752 C 10439,9763 10450,9775 10461,9775 L 10687,9775 C 10698,9775 10710,9763 10710,9752 L 10710,9661 C 10710,9650 10698,9639 10687,9639 L 10461,9639 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="12087" y="9636" width="280" height="145"/>
- <path fill="rgb(221,221,221)" stroke="none" d="M 12113,9640 C 12102,9640 12091,9651 12091,9662 L 12091,9753 C 12091,9764 12102,9776 12113,9776 L 12339,9776 C 12350,9776 12362,9764 12362,9753 L 12362,9662 C 12362,9651 12350,9640 12339,9640 L 12113,9640 Z M 12091,9640 L 12091,9640 Z M 12362,9776 L 12362,9776 Z"/>
- <path fill="none" stroke="rgb(102,102,102)" stroke-width="7" stroke-linejoin="round" d="M 12113,9640 C 12102,9640 12091,9651 12091,9662 L 12091,9753 C 12091,9764 12102,9776 12113,9776 L 12339,9776 C 12350,9776 12362,9764 12362,9753 L 12362,9662 C 12362,9651 12350,9640 12339,9640 L 12113,9640 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="9618" y="9242" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="9868" y="9558"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="11270" y="9242" width="1923" height="1085"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="212px" font-weight="400"><tspan class="TextPosition" x="11520" y="9558"><tspan fill="rgb(0,0,0)" stroke="none">TenGigEth-3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="8042" y="4737" width="869" height="5601"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8162,6929 L 8197,6929"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8233,6929 L 8268,6929"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8304,6929 L 8339,6929"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,6961 L 8342,6997"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7032 L 8342,7068"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7103 L 8342,7139"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7174 L 8342,7210"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7245 L 8342,7281"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7316 L 8342,7352"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7387 L 8342,7422"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7458 L 8342,7493"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7529 L 8342,7564"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7600 L 8342,7635"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7671 L 8342,7706"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7742 L 8342,7777"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7813 L 8342,7848"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7883 L 8342,7919"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,7954 L 8342,7990"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8025 L 8342,8061"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8096 L 8342,8132"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8167 L 8342,8203"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8238 L 8342,8273"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8309 L 8342,8344"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8380 L 8342,8415"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8451 L 8342,8486"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8522 L 8342,8557"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8593 L 8342,8628"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8664 L 8342,8699"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8734 L 8342,8770"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8805 L 8342,8841"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8876 L 8342,8912"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,8947 L 8342,8983"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9018 L 8342,9054"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9089 L 8342,9125"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9160 L 8342,9195"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9231 L 8342,9266"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9302 L 8342,9337"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9373 L 8342,9408"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9444 L 8342,9479"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9515 L 8342,9550"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9586 L 8342,9621"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9656 L 8342,9692"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9727 L 8342,9763"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9798 L 8342,9834"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9869 L 8342,9905"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,9940 L 8342,9976"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,10011 L 8342,10046"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,10082 L 8342,10117"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,10153 L 8342,10188"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,10224 L 8342,10259"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8342,10295 L 8342,10328 8344,10328"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8380,10328 L 8415,10328"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8451,10328 L 8486,10328"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8521,10328 L 8557,10328"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8592,10328 L 8628,10328"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8663,10328 L 8699,10328"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8734,10328 L 8770,10328"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8805,10328 L 8841,10328"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8876,10328 L 8901,10328 8901,10317"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,10282 L 8901,10247"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,10211 L 8901,10176"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,10140 L 8901,10105"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,10069 L 8901,10034"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9998 L 8901,9963"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9927 L 8901,9892"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9856 L 8901,9821"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9786 L 8901,9750"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9715 L 8901,9679"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9644 L 8901,9608"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9573 L 8901,9537"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9502 L 8901,9466"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9431 L 8901,9396"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9360 L 8901,9325"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9289 L 8901,9254"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9218 L 8901,9183"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9147 L 8901,9112"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9076 L 8901,9041"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,9005 L 8901,8970"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8935 L 8901,8899"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8864 L 8901,8828"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8793 L 8901,8757"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8722 L 8901,8686"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8651 L 8901,8615"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8580 L 8901,8544"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8509 L 8901,8474"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8438 L 8901,8403"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8367 L 8901,8332"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8296 L 8901,8261"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8225 L 8901,8190"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8154 L 8901,8119"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8083 L 8901,8048"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,8013 L 8901,7977"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7942 L 8901,7906"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7871 L 8901,7835"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7800 L 8901,7764"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7729 L 8901,7693"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7658 L 8901,7623"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7587 L 8901,7552"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7516 L 8901,7481"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7445 L 8901,7410"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7374 L 8901,7339"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7303 L 8901,7268"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7232 L 8901,7197"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7162 L 8901,7126"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7091 L 8901,7055"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,7020 L 8901,6984"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6949 L 8901,6913"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6878 L 8901,6842"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6807 L 8901,6771"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6736 L 8901,6701"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6665 L 8901,6630"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6594 L 8901,6559"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6523 L 8901,6488"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6452 L 8901,6417"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6381 L 8901,6346"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6310 L 8901,6275"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6240 L 8901,6204"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6169 L 8901,6133"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6098 L 8901,6062"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,6027 L 8901,5991"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5956 L 8901,5920"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5885 L 8901,5850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5814 L 8901,5779"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5743 L 8901,5708"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5672 L 8901,5637"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5601 L 8901,5566"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5530 L 8901,5495"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5459 L 8901,5424"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5389 L 8901,5353"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5318 L 8901,5282"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5247 L 8901,5211"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5176 L 8901,5140"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5105 L 8901,5069"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,5034 L 8901,4998"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,4963 L 8901,4928"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8901,4892 L 8901,4857"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8872,4850 L 8837,4850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8801,4850 L 8766,4850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8730,4850 L 8695,4850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8659,4850 L 8624,4850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8588,4850 L 8553,4850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8518,4850 L 8482,4850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8447,4850 L 8411,4850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8376,4850 L 8340,4850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8305,4850 L 8269,4850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8234,4850 L 8198,4850"/>
- <path fill="none" stroke="rgb(237,28,36)" stroke-width="18" stroke-linejoin="round" d="M 8163,4850 L 8159,4850"/>
- <path fill="rgb(237,28,36)" stroke="none" d="M 8045,6816 C 8048,6816 8051,6816 8055,6816 8065,6816 8075,6817 8084,6820 8093,6822 8102,6826 8111,6831 8120,6836 8128,6842 8135,6849 8142,6856 8147,6863 8153,6873 8158,6882 8162,6890 8164,6900 8166,6909 8168,6918 8168,6928 L 8177,6928 8177,6930 8168,6930 C 8168,6940 8166,6949 8164,6958 8162,6968 8158,6976 8153,6986 8147,6995 8142,7002 8135,7009 8128,7016 8120,7022 8111,7027 8102,7032 8093,7036 8084,7038 8075,7041 8065,7042 8055,7042 8051,7042 8048,7042 8045,7042 L 8045,7037 8046,7033 C 8049,7033 8052,7033 8055,7033 8064,7033 8073,7032 8082,7030 8090,7027 8098,7024 8107,7019 8115,7014 8122,7009 8128,7003 8135,6996 8140,6989 8145,6981 8150,6973 8153,6964 8155,6956 8158,6947 8159,6939 8159,6929 8159,6919 8158,6911 8155,6902 8153,6894 8150,6885 8145,6877 8140,6869 8135,6862 8128,6855 8122,6849 8115,6844 8107,6839 8098,6834 8090,6831 8082,6828 8073,6826 8064,6825 8055,6825 8052,6825 8049,6825 8046,6825 L 8045,6821 8045,6816 Z"/>
- <path fill="rgb(237,28,36)" stroke="none" d="M 8042,4737 C 8045,4737 8048,4737 8052,4737 8062,4737 8072,4738 8081,4741 8090,4743 8099,4747 8108,4752 8117,4757 8125,4763 8132,4770 8139,4777 8144,4784 8150,4794 8155,4803 8159,4811 8161,4821 8163,4830 8165,4839 8165,4849 L 8174,4849 8174,4851 8165,4851 C 8165,4861 8163,4870 8161,4879 8159,4889 8155,4897 8150,4907 8144,4916 8139,4923 8132,4930 8125,4937 8117,4943 8108,4948 8099,4953 8090,4957 8081,4959 8072,4962 8062,4963 8052,4963 8048,4963 8045,4963 8042,4963 L 8042,4958 8043,4954 C 8046,4954 8049,4954 8052,4954 8061,4954 8070,4953 8079,4951 8087,4948 8095,4945 8104,4940 8112,4935 8119,4930 8125,4924 8132,4917 8137,4910 8142,4902 8147,4894 8150,4885 8152,4877 8155,4868 8156,4860 8156,4850 8156,4840 8155,4832 8152,4823 8150,4815 8147,4806 8142,4798 8137,4790 8132,4783 8125,4776 8119,4770 8112,4765 8104,4760 8095,4755 8087,4752 8079,4749 8070,4747 8061,4746 8052,4746 8049,4746 8046,4746 8043,4746 L 8042,4742 8042,4737 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="8021" y="4472" width="1107" height="5703"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8148,6652 L 8183,6652"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8219,6652 L 8254,6652"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8290,6652 L 8325,6652"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8360,6652 L 8396,6652"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8431,6652 L 8467,6652"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,6673 L 8481,6709"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,6744 L 8481,6780"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,6815 L 8481,6851"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,6886 L 8481,6922"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,6957 L 8481,6992"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7028 L 8481,7063"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7099 L 8481,7134"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7170 L 8481,7205"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7241 L 8481,7276"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7312 L 8481,7347"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7383 L 8481,7418"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7453 L 8481,7489"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7524 L 8481,7560"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7595 L 8481,7631"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7666 L 8481,7702"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7737 L 8481,7773"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7808 L 8481,7843"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7879 L 8481,7914"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,7950 L 8481,7985"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8021 L 8481,8056"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8092 L 8481,8127"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8163 L 8481,8198"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8234 L 8481,8269"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8304 L 8481,8340"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8375 L 8481,8411"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8446 L 8481,8482"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8517 L 8481,8553"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8588 L 8481,8624"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8659 L 8481,8695"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8730 L 8481,8765"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8801 L 8481,8836"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8872 L 8481,8907"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,8943 L 8481,8978"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9014 L 8481,9049"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9085 L 8481,9120"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9156 L 8481,9191"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9226 L 8481,9262"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9297 L 8481,9333"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9368 L 8481,9404"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9439 L 8481,9475"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9510 L 8481,9546"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9581 L 8481,9616"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9652 L 8481,9687"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9723 L 8481,9758"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9794 L 8481,9829"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9865 L 8481,9900"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,9936 L 8481,9971"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,10007 L 8481,10042"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,10077 L 8481,10113"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8481,10148 L 8481,10165 8500,10165"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8535,10165 L 8571,10165"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8606,10165 L 8642,10165"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8677,10165 L 8713,10165"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8748,10165 L 8784,10165"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8819,10165 L 8854,10165"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8890,10165 L 8925,10165"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8961,10165 L 8996,10165"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9032,10165 L 9067,10165"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9103,10165 L 9118,10165 9118,10145"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,10109 L 9118,10074"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,10038 L 9118,10003"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9968 L 9118,9932"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9897 L 9118,9861"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9826 L 9118,9790"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9755 L 9118,9719"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9684 L 9118,9648"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9613 L 9118,9578"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9542 L 9118,9507"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9471 L 9118,9436"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9400 L 9118,9365"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9329 L 9118,9294"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9258 L 9118,9223"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9187 L 9118,9152"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9117 L 9118,9081"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,9046 L 9118,9010"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8975 L 9118,8939"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8904 L 9118,8868"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8833 L 9118,8797"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8762 L 9118,8726"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8691 L 9118,8656"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8620 L 9118,8585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8549 L 9118,8514"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8478 L 9118,8443"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8407 L 9118,8372"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8336 L 9118,8301"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8265 L 9118,8230"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8195 L 9118,8159"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8124 L 9118,8088"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,8053 L 9118,8017"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7982 L 9118,7946"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7911 L 9118,7875"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7840 L 9118,7805"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7769 L 9118,7734"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7698 L 9118,7663"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7627 L 9118,7592"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7556 L 9118,7521"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7485 L 9118,7450"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7414 L 9118,7379"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7344 L 9118,7308"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7273 L 9118,7237"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7202 L 9118,7166"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7131 L 9118,7095"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,7060 L 9118,7024"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6989 L 9118,6953"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6918 L 9118,6883"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6847 L 9118,6812"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6776 L 9118,6741"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6705 L 9118,6670"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6634 L 9118,6599"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6563 L 9118,6528"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6492 L 9118,6457"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6422 L 9118,6386"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6351 L 9118,6315"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6280 L 9118,6244"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6209 L 9118,6173"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6138 L 9118,6102"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,6067 L 9118,6032"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5996 L 9118,5961"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5925 L 9118,5890"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5854 L 9118,5819"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5783 L 9118,5748"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5712 L 9118,5677"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5641 L 9118,5606"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5571 L 9118,5535"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5500 L 9118,5464"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5429 L 9118,5393"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5358 L 9118,5322"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5287 L 9118,5251"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5216 L 9118,5180"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5145 L 9118,5110"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5074 L 9118,5039"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,5003 L 9118,4968"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,4932 L 9118,4897"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,4861 L 9118,4826"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,4790 L 9118,4755"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,4719 L 9118,4684"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9118,4649 L 9118,4613"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9111,4585 L 9075,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 9040,4585 L 9004,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8969,4585 L 8933,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8898,4585 L 8862,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8827,4585 L 8792,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8756,4585 L 8721,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8685,4585 L 8650,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8614,4585 L 8579,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8543,4585 L 8508,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8472,4585 L 8437,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8401,4585 L 8366,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8331,4585 L 8295,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8260,4585 L 8224,4585"/>
- <path fill="none" stroke="rgb(0,182,189)" stroke-width="18" stroke-linejoin="round" d="M 8189,4585 L 8153,4585"/>
- <path fill="rgb(0,182,189)" stroke="none" d="M 8031,6539 C 8034,6539 8037,6539 8041,6539 8051,6539 8061,6540 8070,6543 8079,6545 8088,6549 8097,6554 8106,6559 8114,6565 8121,6572 8128,6579 8133,6586 8139,6596 8144,6605 8148,6613 8150,6623 8152,6632 8154,6641 8154,6651 L 8163,6651 8163,6653 8154,6653 C 8154,6663 8152,6672 8150,6681 8148,6691 8144,6699 8139,6709 8133,6718 8128,6725 8121,6732 8114,6739 8106,6745 8097,6750 8088,6755 8079,6759 8070,6761 8061,6764 8051,6765 8041,6765 8037,6765 8034,6765 8031,6765 L 8031,6760 8032,6756 C 8035,6756 8038,6756 8041,6756 8050,6756 8059,6755 8068,6753 8076,6750 8084,6747 8093,6742 8101,6737 8108,6732 8114,6726 8121,6719 8126,6712 8131,6704 8136,6696 8139,6687 8141,6679 8144,6670 8145,6662 8145,6652 8145,6642 8144,6634 8141,6625 8139,6617 8136,6608 8131,6600 8126,6592 8121,6585 8114,6578 8108,6572 8101,6567 8093,6562 8084,6557 8076,6554 8068,6551 8059,6549 8050,6548 8041,6548 8038,6548 8035,6548 8032,6548 L 8031,6544 8031,6539 Z"/>
- <path fill="rgb(0,182,189)" stroke="none" d="M 8021,4472 C 8024,4472 8027,4472 8031,4472 8041,4472 8051,4473 8060,4476 8069,4478 8078,4482 8087,4487 8096,4492 8104,4498 8111,4505 8118,4512 8123,4519 8129,4529 8134,4538 8138,4546 8140,4556 8142,4565 8144,4574 8144,4584 L 8153,4584 8153,4586 8144,4586 C 8144,4596 8142,4605 8140,4614 8138,4624 8134,4632 8129,4642 8123,4651 8118,4658 8111,4665 8104,4672 8096,4678 8087,4683 8078,4688 8069,4692 8060,4694 8051,4697 8041,4698 8031,4698 8027,4698 8024,4698 8021,4698 L 8021,4693 8022,4689 C 8025,4689 8028,4689 8031,4689 8040,4689 8049,4688 8058,4686 8066,4683 8074,4680 8083,4675 8091,4670 8098,4665 8104,4659 8111,4652 8116,4645 8121,4637 8126,4629 8129,4620 8131,4612 8134,4603 8135,4595 8135,4585 8135,4575 8134,4567 8131,4558 8129,4550 8126,4541 8121,4533 8116,4525 8111,4518 8104,4511 8098,4505 8091,4500 8083,4495 8074,4490 8066,4487 8058,4484 8049,4482 8040,4481 8031,4481 8028,4481 8025,4481 8022,4481 L 8021,4477 8021,4472 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="4172" y="3329" width="1813" height="937"/>
- <g>
- <defs>
- <linearGradient id="gradient3" x1="4661" y1="3075" x2="5495" y2="4519" gradientUnits="userSpaceOnUse">
- <stop offset="0" style="stop-color:rgb(128,128,128)"/>
- <stop offset="1" style="stop-color:rgb(128,128,128)"/>
- </linearGradient>
- </defs>
- <path style="fill:url(#gradient3)" d="M 5078,4247 L 4190,4247 4190,3347 5966,3347 5966,4247 5078,4247 Z"/>
- </g>
- <path fill="none" stroke="rgb(165,165,165)" stroke-width="35" stroke-linejoin="miter" d="M 5078,4247 L 4190,4247 4190,3347 5966,3347 5966,4247 5078,4247 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="176px" font-weight="400"><tspan class="TextPosition" x="4473" y="3730"><tspan fill="rgb(0,0,0)" stroke="none">Nested/VM[1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="4370" y="4561" width="568" height="427"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4443,4565 C 4408,4565 4374,4599 4374,4634 L 4374,4913 C 4374,4948 4408,4983 4443,4983 L 4863,4983 C 4898,4983 4933,4948 4933,4913 L 4933,4634 C 4933,4599 4898,4565 4863,4565 L 4443,4565 Z M 4374,4565 L 4374,4565 Z M 4933,4983 L 4933,4983 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 4443,4565 C 4408,4565 4374,4599 4374,4634 L 4374,4913 C 4374,4948 4408,4983 4443,4983 L 4863,4983 C 4898,4983 4933,4948 4933,4913 L 4933,4634 C 4933,4599 4898,4565 4863,4565 L 4443,4565 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="176px" font-weight="400"><tspan class="TextPosition" x="4486" y="4736"><tspan fill="rgb(0,0,0)" stroke="none">Fwd</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="176px" font-weight="400"><tspan class="TextPosition" x="4420" y="4935"><tspan fill="rgb(0,0,0)" stroke="none">Cxt[0]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="5171" y="4561" width="568" height="427"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 5244,4565 C 5209,4565 5175,4599 5175,4634 L 5175,4913 C 5175,4948 5209,4983 5244,4983 L 5664,4983 C 5699,4983 5734,4948 5734,4913 L 5734,4634 C 5734,4599 5699,4565 5664,4565 L 5244,4565 Z M 5175,4565 L 5175,4565 Z M 5734,4983 L 5734,4983 Z"/>
- <path fill="none" stroke="rgb(0,0,0)" stroke-width="7" stroke-linejoin="round" d="M 5244,4565 C 5209,4565 5175,4599 5175,4634 L 5175,4913 C 5175,4948 5209,4983 5244,4983 L 5664,4983 C 5699,4983 5734,4948 5734,4913 L 5734,4634 C 5734,4599 5699,4565 5664,4565 L 5244,4565 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="176px" font-weight="400"><tspan class="TextPosition" x="5287" y="4736"><tspan fill="rgb(0,0,0)" stroke="none">Fwd</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="176px" font-weight="400"><tspan class="TextPosition" x="5221" y="4935"><tspan fill="rgb(0,0,0)" stroke="none">Cxt[1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="5436" y="4589" width="2336" height="471"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 5454,4983 L 5454,5041 6222,5041 6222,4607 7753,4607"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="4635" y="4889" width="3139" height="245"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 7755,4907 L 6941,4907 6941,5115 4653,5115 4653,4983"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="4385" y="3774" width="1318" height="427"/>
- <path fill="rgb(112,173,71)" stroke="none" d="M 5044,4182 L 4403,4182 4403,3792 5684,3792 5684,4182 5044,4182 Z"/>
- <path fill="none" stroke="rgb(82,127,52)" stroke-width="35" stroke-linejoin="miter" d="M 5044,4182 L 4403,4182 4403,3792 5684,3792 5684,4182 5044,4182 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="141px" font-weight="700"><tspan class="TextPosition" x="4768" y="4029"><tspan fill="rgb(255,255,255)" stroke="none">VNF[1]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="4635" y="4165" width="37" height="420"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 4653,4566 L 4653,4183"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="5435" y="4166" width="37" height="420"/>
- <path fill="none" stroke="rgb(68,114,196)" stroke-width="35" stroke-linejoin="round" d="M 5453,4567 L 5453,4184"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id74">
- <rect class="BoundingBox" stroke="none" fill="none" x="4556" y="4111" width="183" height="77"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4571,4115 C 4565,4115 4560,4120 4560,4126 L 4560,4171 C 4560,4177 4565,4183 4571,4183 L 4722,4183 C 4727,4183 4733,4177 4733,4171 L 4733,4126 C 4733,4120 4727,4115 4722,4115 L 4571,4115 Z M 4560,4115 L 4560,4115 Z M 4734,4183 L 4734,4183 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 4571,4115 C 4565,4115 4560,4120 4560,4126 L 4560,4171 C 4560,4177 4565,4183 4571,4183 L 4722,4183 C 4727,4183 4733,4177 4733,4171 L 4733,4126 C 4733,4120 4727,4115 4722,4115 L 4571,4115 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id75">
- <rect class="BoundingBox" stroke="none" fill="none" x="4556" y="4311" width="183" height="77"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4571,4315 C 4565,4315 4560,4320 4560,4326 L 4560,4371 C 4560,4377 4565,4383 4571,4383 L 4722,4383 C 4727,4383 4733,4377 4733,4371 L 4733,4326 C 4733,4320 4727,4315 4722,4315 L 4571,4315 Z M 4560,4315 L 4560,4315 Z M 4734,4383 L 4734,4383 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 4571,4315 C 4565,4315 4560,4320 4560,4326 L 4560,4371 C 4560,4377 4565,4383 4571,4383 L 4722,4383 C 4727,4383 4733,4377 4733,4371 L 4733,4326 C 4733,4320 4727,4315 4722,4315 L 4571,4315 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id76">
- <rect class="BoundingBox" stroke="none" fill="none" x="5356" y="4111" width="183" height="77"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 5371,4115 C 5365,4115 5360,4120 5360,4126 L 5360,4171 C 5360,4177 5365,4183 5371,4183 L 5522,4183 C 5527,4183 5533,4177 5533,4171 L 5533,4126 C 5533,4120 5527,4115 5522,4115 L 5371,4115 Z M 5360,4115 L 5360,4115 Z M 5534,4183 L 5534,4183 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 5371,4115 C 5365,4115 5360,4120 5360,4126 L 5360,4171 C 5360,4177 5365,4183 5371,4183 L 5522,4183 C 5527,4183 5533,4177 5533,4171 L 5533,4126 C 5533,4120 5527,4115 5522,4115 L 5371,4115 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id77">
- <rect class="BoundingBox" stroke="none" fill="none" x="5356" y="4311" width="183" height="77"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 5371,4315 C 5365,4315 5360,4320 5360,4326 L 5360,4371 C 5360,4377 5365,4383 5371,4383 L 5522,4383 C 5527,4383 5533,4377 5533,4371 L 5533,4326 C 5533,4320 5527,4315 5522,4315 L 5371,4315 Z M 5360,4315 L 5360,4315 Z M 5534,4383 L 5534,4383 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="7" stroke-linejoin="round" d="M 5371,4315 C 5365,4315 5360,4320 5360,4326 L 5360,4371 C 5360,4377 5365,4383 5371,4383 L 5522,4383 C 5527,4383 5533,4377 5533,4371 L 5533,4326 C 5533,4320 5527,4315 5522,4315 L 5371,4315 Z"/>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/docs/report/vpp_performance_tests/comparisons/2n-clx_vs_3n-hsw_testbeds.rst b/docs/report/vpp_performance_tests/comparisons/2n-clx_vs_3n-hsw_testbeds.rst
deleted file mode 100644
index 3e641b6762..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/2n-clx_vs_3n-hsw_testbeds.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-2n-Clx vs 3n-Hsw Testbeds
--------------------------
-
-Relative comparison of |vpp-release| packet throughput (NDR, PDR and
-MRR) is calculated for the same tests executed on 3-Node Skylake (3n-
-skx) and 3-Node Haswell (3n-hsw) physical testbed types, in 1-core,
-2-core and 4-core configurations.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 3n-hsw`_ and
- `FD.io test executor vpp performance job 2n-clx`_
- with RF result
- files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-NDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c NDR comparison <performance-compare-testbeds-3n-hsw-2n-clx-1c-ndr.html>`_
- - `HTML 2c NDR comparison <performance-compare-testbeds-3n-hsw-2n-clx-2c-ndr.html>`_
- - `ASCII 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-1c-ndr.txt>`_
- - `ASCII 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-2c-ndr.txt>`_
- - `CSV 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-1c-ndr-csv.csv>`_
- - `CSV 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-2c-ndr-csv.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c PDR comparison <performance-compare-testbeds-3n-hsw-2n-clx-1c-pdr.html>`_
- - `HTML 2c PDR comparison <performance-compare-testbeds-3n-hsw-2n-clx-2c-pdr.html>`_
- - `ASCII 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-1c-pdr.txt>`_
- - `ASCII 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-2c-pdr.txt>`_
- - `CSV 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-1c-pdr-csv.csv>`_
- - `CSV 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-2c-pdr-csv.csv>`_
-
-MRR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c MRR comparison <performance-compare-testbeds-3n-hsw-2n-clx-1c-mrr.html>`_
- - `HTML 2c MRR comparison <performance-compare-testbeds-3n-hsw-2n-clx-2c-mrr.html>`_
- - `HTML 4c MRR comparison <performance-compare-testbeds-3n-hsw-2n-clx-4c-mrr.html>`_
- - `ASCII 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-1c-mrr.txt>`_
- - `ASCII 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-2c-mrr.txt>`_
- - `ASCII 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-4c-mrr.txt>`_
- - `CSV 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-1c-mrr-csv.csv>`_
- - `CSV 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-2c-mrr-csv.csv>`_
- - `CSV 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-2n-clx-4c-mrr-csv.csv>`_
diff --git a/docs/report/vpp_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst b/docs/report/vpp_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst
deleted file mode 100644
index 464a8024f8..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-2n-Skx vs 2n-Clx Testbeds
--------------------------
-
-Relative comparison of |vpp-release| packet throughput (NDR, PDR and
-MRR) is calculated for the same tests executed on 2-Node Skylake (2n-
-skx) and 2-Node Cascade Lake (2n-clx) physical testbed types, in 1-core,
-2-core and 4-core configurations.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_ and
- `FD.io test executor vpp performance job 2n-clx`_
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-NDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c NDR comparison <performance-compare-testbeds-2n-skx-2n-clx-2t1c-ndr.html>`_
- - `HTML 2c NDR comparison <performance-compare-testbeds-2n-skx-2n-clx-4t2c-ndr.html>`_
- - `ASCII 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-2t1c-ndr.txt>`_
- - `ASCII 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-4t2c-ndr.txt>`_
- - `CSV 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-2t1c-ndr-csv.csv>`_
- - `CSV 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-4t2c-ndr-csv.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c PDR comparison <performance-compare-testbeds-2n-skx-2n-clx-2t1c-pdr.html>`_
- - `HTML 2c PDR comparison <performance-compare-testbeds-2n-skx-2n-clx-4t2c-pdr.html>`_
- - `ASCII 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-2t1c-pdr.txt>`_
- - `ASCII 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-4t2c-pdr.txt>`_
- - `CSV 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-2t1c-pdr-csv.csv>`_
- - `CSV 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-4t2c-pdr-csv.csv>`_
-
-MRR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c MRR comparison <performance-compare-testbeds-2n-skx-2n-clx-2t1c-mrr.html>`_
- - `HTML 2c MRR comparison <performance-compare-testbeds-2n-skx-2n-clx-4t2c-mrr.html>`_
- - `HTML 4c MRR comparison <performance-compare-testbeds-2n-skx-2n-clx-8t4c-mrr.html>`_
- - `ASCII 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-2t1c-mrr.txt>`_
- - `ASCII 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-4t2c-mrr.txt>`_
- - `ASCII 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-8t4c-mrr.txt>`_
- - `CSV 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-2t1c-mrr-csv.csv>`_
- - `CSV 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-4t2c-mrr-csv.csv>`_
- - `CSV 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-clx-8t4c-mrr-csv.csv>`_
diff --git a/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst b/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst
deleted file mode 100644
index bfbc9ae3df..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst
+++ /dev/null
@@ -1,58 +0,0 @@
-
-.. _vpp_compare_topologies_3n-Skx_vs_2n-Skx:
-
-3n-Skx vs 2n-Skx Testbeds
--------------------------
-
-Relative comparison of |vpp-release| packet throughput (NDR, PDR and
-MRR) is calculated for the same tests executed on 3-Node Skylake (3n-
-skx) and 2-Node Skylake (2n-skx) physical testbed types, in 1-core,
-2-core and 4-core configurations.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 3n-skx`_ and
- `FD.io test executor vpp performance job 2n-skx`_
- with RF result
- files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-NDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c NDR comparison <performance-compare-topologies-3n-skx-2n-skx-1c-ndr.html>`_
- - `HTML 2c NDR comparison <performance-compare-topologies-3n-skx-2n-skx-2c-ndr.html>`_
- - `ASCII 1c NDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-ndr.txt>`_
- - `ASCII 2c NDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-ndr.txt>`_
- - `CSV 1c NDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-ndr-csv.csv>`_
- - `CSV 2c NDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-ndr-csv.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c PDR comparison <performance-compare-topologies-3n-skx-2n-skx-1c-pdr.html>`_
- - `HTML 2c PDR comparison <performance-compare-topologies-3n-skx-2n-skx-2c-pdr.html>`_
- - `ASCII 1c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-pdr.txt>`_
- - `ASCII 2c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-pdr.txt>`_
- - `CSV 1c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-pdr-csv.csv>`_
- - `CSV 2c PDR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-pdr-csv.csv>`_
-
-MRR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c MRR comparison <performance-compare-topologies-3n-skx-2n-skx-1c-mrr.html>`_
- - `HTML 2c MRR comparison <performance-compare-topologies-3n-skx-2n-skx-2c-mrr.html>`_
- - `HTML 4c MRR comparison <performance-compare-topologies-3n-skx-2n-skx-4c-mrr.html>`_
- - `ASCII 1c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-mrr.txt>`_
- - `ASCII 2c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-mrr.txt>`_
- - `ASCII 4c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-4c-mrr.txt>`_
- - `CSV 1c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-1c-mrr-csv.csv>`_
- - `CSV 2c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-2c-mrr-csv.csv>`_
- - `CSV 4c MRR comparison <../../_static/vpp/performance-compare-topologies-3n-skx-2n-skx-4c-mrr-csv.csv>`_
diff --git a/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst b/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst
deleted file mode 100644
index 2eb552e882..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_3n-hsw_testbeds.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-3n-Skx vs 3n-Hsw Testbeds
--------------------------
-
-Relative comparison of |vpp-release| packet throughput (NDR, PDR and
-MRR) is calculated for the same tests executed on 3-Node Skylake (3n-
-skx) and 3-Node Haswell (3n-hsw) physical testbed types, in 1-core,
-2-core and 4-core configurations.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 3n-hsw`_ and
- `FD.io test executor vpp performance job 3n-skx`_
- with RF result
- files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-NDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c NDR comparison <performance-compare-testbeds-3n-hsw-3n-skx-1c-ndr.html>`_
- - `HTML 2c NDR comparison <performance-compare-testbeds-3n-hsw-3n-skx-2c-ndr.html>`_
- - `ASCII 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-ndr.txt>`_
- - `ASCII 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-ndr.txt>`_
- - `CSV 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-ndr-csv.csv>`_
- - `CSV 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-ndr-csv.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c PDR comparison <performance-compare-testbeds-3n-hsw-3n-skx-1c-pdr.html>`_
- - `HTML 2c PDR comparison <performance-compare-testbeds-3n-hsw-3n-skx-2c-pdr.html>`_
- - `ASCII 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-pdr.txt>`_
- - `ASCII 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-pdr.txt>`_
- - `CSV 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-pdr-csv.csv>`_
- - `CSV 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-pdr-csv.csv>`_
-
-MRR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c MRR comparison <performance-compare-testbeds-3n-hsw-3n-skx-1c-mrr.html>`_
- - `HTML 2c MRR comparison <performance-compare-testbeds-3n-hsw-3n-skx-2c-mrr.html>`_
- - `HTML 4c MRR comparison <performance-compare-testbeds-3n-hsw-3n-skx-4c-mrr.html>`_
- - `ASCII 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-mrr.txt>`_
- - `ASCII 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-mrr.txt>`_
- - `ASCII 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-4c-mrr.txt>`_
- - `CSV 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-1c-mrr-csv.csv>`_
- - `CSV 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-2c-mrr-csv.csv>`_
- - `CSV 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-hsw-3n-skx-4c-mrr-csv.csv>`_
diff --git a/docs/report/vpp_performance_tests/comparisons/current_vs_previous_release.rst b/docs/report/vpp_performance_tests/comparisons/current_vs_previous_release.rst
deleted file mode 100644
index 2e8bb2f1d2..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/current_vs_previous_release.rst
+++ /dev/null
@@ -1,461 +0,0 @@
-
-.. _vpp_compare_current_vs_previous_release:
-
-Current vs Previous Release
----------------------------
-
-Relative comparison of VPP packet throughput (NDR, PDR and MRR) between
-|vpp-release| and |vpp-release-1| (measured for |csit-release| and
-|csit-release-1| respectively) is calculated from results of tests
-running on 2-node Intel Xeon Skylake (2n-skx), 3-node Intel Xeon Skylake
-(3n-skx), 3-Node Intel Xeon Haswell (3n-hsw), 2-node Intel Atom Denverton
-(2n-dnv), 3-node Intel Atom Denverton (3n-dnv), 3-node Arm TaiShan (3n-tsh)
-testbeds, in 1-core, 2-core and 4-core (MRR only) configurations.
-
-Listed mean and standard deviation values are computed based on a series
-of the same tests executed against respective VPP releases to verify
-test results repeatability, with percentage change calculated for mean
-values. Note that the standard deviation is quite high for a small
-number of packet throughput tests, what indicates poor test results
-repeatability and makes the relative change of mean throughput value not
-fully representative for these tests. The root causes behind poor
-results repeatability vary between the test cases.
-
-.. note::
-
- Test results have been generated by
-
- - `FD.io test executor vpp performance job 2n-skx`_,
- - `FD.io test executor vpp performance job 3n-skx`_,
- - `FD.io test executor vpp performance job 2n-clx`_,
- - `FD.io test executor vpp performance job 2n-zn2`_,
- - `FD.io test executor vpp performance job 3n-hsw`_,
- - `FD.io test executor vpp performance job 2n-dnv`_,
- - `FD.io test executor vpp performance job 3n-dnv`_,
- - `FD.io test executor vpp performance job 3n-tsh`_,
- - `FD.io test executor vpp performance job 2n-tx2`_
-
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-2n-skx
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <performance-changes-2n-skx-2t1c-ndr.html>`_
- - `HTML 4t2c NDR comparison <performance-changes-2n-skx-4t2c-ndr.html>`_
- - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-ndr-csv.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <performance-changes-2n-skx-2t1c-pdr.html>`_
- - `HTML 4t2c PDR comparison <performance-changes-2n-skx-4t2c-pdr.html>`_
- - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-pdr-csv.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR comparison <performance-changes-2n-skx-2t1c-mrr.html>`_
- - `HTML 4t2c MRR comparison <performance-changes-2n-skx-4t2c-mrr.html>`_
- - `HTML 8t4c MRR comparison <performance-changes-2n-skx-8t4c-mrr.html>`_
- - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-mrr.txt>`_
- - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-mrr.txt>`_
- - `ASCII 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-skx-8t4c-mrr.txt>`_
- - `CSV 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-mrr-csv.csv>`_
- - `CSV 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-mrr-csv.csv>`_
- - `CSV 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-skx-8t4c-mrr-csv.csv>`_
-
-3n-skx
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <performance-changes-3n-skx-2t1c-ndr.html>`_
- - `HTML 4t2c NDR comparison <performance-changes-3n-skx-4t2c-ndr.html>`_
- - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-ndr-csv.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <performance-changes-3n-skx-2t1c-pdr.html>`_
- - `HTML 4t2c PDR comparison <performance-changes-3n-skx-4t2c-pdr.html>`_
- - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-pdr-csv.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR comparison <performance-changes-3n-skx-2t1c-mrr.html>`_
- - `HTML 4t2c MRR comparison <performance-changes-3n-skx-4t2c-mrr.html>`_
- - `HTML 8t4c MRR comparison <performance-changes-3n-skx-8t4c-mrr.html>`_
- - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-mrr.txt>`_
- - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-mrr.txt>`_
- - `ASCII 8t4c MRR comparison <../../_static/vpp/performance-changes-3n-skx-8t4c-mrr.txt>`_
- - `CSV 2t1c MRR comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-mrr-csv.csv>`_
- - `CSV 4t2c MRR comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-mrr-csv.csv>`_
- - `CSV 8t4c MRR comparison <../../_static/vpp/performance-changes-3n-skx-8t4c-mrr-csv.csv>`_
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <performance-changes-2n-clx-xxv710-2t1c-ndr.html>`_
- - `HTML 4t2c NDR comparison <performance-changes-2n-clx-xxv710-4t2c-ndr.html>`_
- - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-2t1c-ndr-csv.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-4t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <performance-changes-2n-clx-xxv710-2t1c-pdr.html>`_
- - `HTML 4t2c PDR comparison <performance-changes-2n-clx-xxv710-4t2c-pdr.html>`_
- - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-2t1c-pdr-csv.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-4t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR comparison <performance-changes-2n-clx-xxv710-2t1c-mrr.html>`_
- - `HTML 4t2c MRR comparison <performance-changes-2n-clx-xxv710-4t2c-mrr.html>`_
- - `HTML 8t4c MRR comparison <performance-changes-2n-clx-xxv710-8t4c-mrr.html>`_
- - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-2t1c-mrr.txt>`_
- - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-4t2c-mrr.txt>`_
- - `ASCII 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-8t4c-mrr.txt>`_
- - `CSV 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-2t1c-mrr-csv.csv>`_
- - `CSV 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-4t2c-mrr-csv.csv>`_
- - `CSV 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-clx-xxv710-8t4c-mrr-csv.csv>`_
-
-..
- 2n-clx-x556
- ~~~~~~~~~~~
-
- NDR Comparison
- ``````````````
-
- Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <performance-changes-2n-clx-x556-2t1c-ndr.html>`_
- - `HTML 4t2c NDR comparison <performance-changes-2n-clx-x556-4t2c-ndr.html>`_
- - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-clx-x556-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-clx-x556-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-clx-x556-2t1c-ndr-csv.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-clx-x556-4t2c-ndr-csv.csv>`_
-
- PDR Comparison
- ``````````````
-
- Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <performance-changes-2n-clx-x556-2t1c-pdr.html>`_
- - `HTML 4t2c PDR comparison <performance-changes-2n-clx-x556-4t2c-pdr.html>`_
- - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-clx-x556-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-clx-x556-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-clx-x556-2t1c-pdr-csv.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-clx-x556-4t2c-pdr-csv.csv>`_
-
- MRR Comparison
- ``````````````
-
- Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR comparison <performance-changes-2n-clx-x556-2t1c-mrr.html>`_
- - `HTML 4t2c MRR comparison <performance-changes-2n-clx-x556-4t2c-mrr.html>`_
- - `HTML 8t4c MRR comparison <performance-changes-2n-clx-x556-8t4c-mrr.html>`_
- - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-clx-x556-2t1c-mrr.txt>`_
- - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-clx-x556-4t2c-mrr.txt>`_
- - `ASCII 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-clx-x556-8t4c-mrr.txt>`_
- - `CSV 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-clx-x556-2t1c-mrr-csv.csv>`_
- - `CSV 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-clx-x556-4t2c-mrr-csv.csv>`_
- - `CSV 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-clx-x556-8t4c-mrr-csv.csv>`_
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <performance-changes-2n-zn2-xxv710-2t1c-ndr.html>`_
- - `HTML 4t2c NDR comparison <performance-changes-2n-zn2-xxv710-4t2c-ndr.html>`_
- - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-2t1c-ndr-csv.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-4t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <performance-changes-2n-zn2-xxv710-2t1c-pdr.html>`_
- - `HTML 4t2c PDR comparison <performance-changes-2n-zn2-xxv710-4t2c-pdr.html>`_
- - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-2t1c-pdr-csv.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-4t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR comparison <performance-changes-2n-zn2-xxv710-2t1c-mrr.html>`_
- - `HTML 4t2c MRR comparison <performance-changes-2n-zn2-xxv710-4t2c-mrr.html>`_
- - `HTML 8t4c MRR comparison <performance-changes-2n-zn2-xxv710-8t4c-mrr.html>`_
- - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-2t1c-mrr.txt>`_
- - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-4t2c-mrr.txt>`_
- - `ASCII 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-8t4c-mrr.txt>`_
- - `CSV 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-2t1c-mrr-csv.csv>`_
- - `CSV 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-4t2c-mrr-csv.csv>`_
- - `CSV 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-zn2-xxv710-8t4c-mrr-csv.csv>`_
-
-3n-hsw
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c NDR comparison <performance-changes-3n-hsw-1t1c-ndr.html>`_
- - `HTML 2t2c NDR comparison <performance-changes-3n-hsw-2t2c-ndr.html>`_
- - `ASCII 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-ndr.txt>`_
- - `ASCII 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-ndr-csv.csv>`_
- - `CSV 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c PDR comparison <performance-changes-3n-hsw-1t1c-pdr.html>`_
- - `HTML 2t2c PDR comparison <performance-changes-3n-hsw-2t2c-pdr.html>`_
- - `ASCII 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-pdr.txt>`_
- - `ASCII 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-pdr-csv.csv>`_
- - `CSV 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c MRR comparison <performance-changes-3n-hsw-1t1c-mrr.html>`_
- - `HTML 2t2c MRR comparison <performance-changes-3n-hsw-2t2c-mrr.html>`_
- - `HTML 4t4c MRR comparison <performance-changes-3n-hsw-4t4c-mrr.html>`_
- - `ASCII 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-mrr.txt>`_
- - `ASCII 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-mrr.txt>`_
- - `ASCII 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-4t4c-mrr.txt>`_
- - `CSV 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-1t1c-mrr-csv.csv>`_
- - `CSV 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-2t2c-mrr-csv.csv>`_
- - `CSV 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-hsw-4t4c-mrr-csv.csv>`_
-
-2n-dnv
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c NDR comparison <performance-changes-2n-dnv-1t1c-ndr.html>`_
- - `HTML 2t2c NDR comparison <performance-changes-2n-dnv-2t2c-ndr.html>`_
- - `ASCII 1t1c NDR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-ndr.txt>`_
- - `ASCII 2t2c NDR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-ndr-csv.csv>`_
- - `CSV 2t2c NDR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c PDR comparison <performance-changes-2n-dnv-1t1c-pdr.html>`_
- - `HTML 2t2c PDR comparison <performance-changes-2n-dnv-2t2c-pdr.html>`_
- - `ASCII 1t1c PDR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-pdr.txt>`_
- - `ASCII 2t2c PDR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-pdr-csv.csv>`_
- - `CSV 2t2c PDR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c MRR comparison <performance-changes-2n-dnv-1t1c-mrr.html>`_
- - `HTML 2t2c MRR comparison <performance-changes-2n-dnv-2t2c-mrr.html>`_
- - `HTML 4t4c MRR comparison <performance-changes-2n-dnv-4t4c-mrr.html>`_
- - `ASCII 1t1c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-mrr.txt>`_
- - `ASCII 2t2c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-mrr.txt>`_
- - `ASCII 4t4c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-4t4c-mrr.txt>`_
- - `CSV 1t1c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-1t1c-mrr-csv.csv>`_
- - `CSV 2t2c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-2t2c-mrr-csv.csv>`_
- - `CSV 4t4c MRR comparison <../../_static/vpp/performance-changes-2n-dnv-4t4c-mrr-csv.csv>`_
-
-3n-dnv
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c NDR comparison <performance-changes-3n-dnv-1t1c-ndr.html>`_
- - `HTML 2t2c NDR comparison <performance-changes-3n-dnv-2t2c-ndr.html>`_
- - `ASCII 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-ndr.txt>`_
- - `ASCII 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-ndr-csv.csv>`_
- - `CSV 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c PDR comparison <performance-changes-3n-dnv-1t1c-pdr.html>`_
- - `HTML 2t2c PDR comparison <performance-changes-3n-dnv-2t2c-pdr.html>`_
- - `ASCII 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-pdr.txt>`_
- - `ASCII 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-pdr-csv.csv>`_
- - `CSV 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c MRR comparison <performance-changes-3n-dnv-1t1c-mrr.html>`_
- - `HTML 2t2c MRR comparison <performance-changes-3n-dnv-2t2c-mrr.html>`_
- - `HTML 4t4c MRR comparison <performance-changes-3n-dnv-4t4c-mrr.html>`_
- - `ASCII 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-mrr.txt>`_
- - `ASCII 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-mrr.txt>`_
- - `ASCII 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-4t4c-mrr.txt>`_
- - `CSV 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-1t1c-mrr-csv.csv>`_
- - `CSV 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-2t2c-mrr-csv.csv>`_
- - `CSV 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-dnv-4t4c-mrr-csv.csv>`_
-
-3n-tsh
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c NDR comparison <performance-changes-3n-tsh-1t1c-ndr.html>`_
- - `HTML 2t2c NDR comparison <performance-changes-3n-tsh-2t2c-ndr.html>`_
- - `ASCII 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-ndr.txt>`_
- - `ASCII 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-ndr-csv.csv>`_
- - `CSV 2t2c NDR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c PDR comparison <performance-changes-3n-tsh-1t1c-pdr.html>`_
- - `HTML 2t2c PDR comparison <performance-changes-3n-tsh-2t2c-pdr.html>`_
- - `ASCII 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-pdr.txt>`_
- - `ASCII 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-pdr-csv.csv>`_
- - `CSV 2t2c PDR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c MRR comparison <performance-changes-3n-tsh-1t1c-mrr.html>`_
- - `HTML 2t2c MRR comparison <performance-changes-3n-tsh-2t2c-mrr.html>`_
- - `HTML 4t4c MRR comparison <performance-changes-3n-tsh-4t4c-mrr.html>`_
- - `ASCII 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-mrr.txt>`_
- - `ASCII 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-mrr.txt>`_
- - `ASCII 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-4t4c-mrr.txt>`_
- - `CSV 1t1c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-1t1c-mrr-csv.csv>`_
- - `CSV 2t2c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-2t2c-mrr-csv.csv>`_
- - `CSV 4t4c MRR comparison <../../_static/vpp/performance-changes-3n-tsh-4t4c-mrr-csv.csv>`_
-
-
-2n-tx2
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c NDR comparison <performance-changes-2n-tx2-1t1c-ndr.html>`_
- - `HTML 2t2c NDR comparison <performance-changes-2n-tx2-2t2c-ndr.html>`_
- - `ASCII 1t1c NDR comparison <../../_static/vpp/performance-changes-2n-tx2-1t1c-ndr.txt>`_
- - `ASCII 2t2c NDR comparison <../../_static/vpp/performance-changes-2n-tx2-2t2c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../../_static/vpp/performance-changes-2n-tx2-1t1c-ndr-csv.csv>`_
- - `CSV 2t2c NDR comparison <../../_static/vpp/performance-changes-2n-tx2-2t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c PDR comparison <performance-changes-2n-tx2-1t1c-pdr.html>`_
- - `HTML 2t2c PDR comparison <performance-changes-2n-tx2-2t2c-pdr.html>`_
- - `ASCII 1t1c PDR comparison <../../_static/vpp/performance-changes-2n-tx2-1t1c-pdr.txt>`_
- - `ASCII 2t2c PDR comparison <../../_static/vpp/performance-changes-2n-tx2-2t2c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../../_static/vpp/performance-changes-2n-tx2-1t1c-pdr-csv.csv>`_
- - `CSV 2t2c PDR comparison <../../_static/vpp/performance-changes-2n-tx2-2t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c MRR comparison <performance-changes-2n-tx2-1t1c-mrr.html>`_
- - `HTML 2t2c MRR comparison <performance-changes-2n-tx2-2t2c-mrr.html>`_
- - `HTML 4t4c MRR comparison <performance-changes-2n-tx2-4t4c-mrr.html>`_
- - `ASCII 1t1c MRR comparison <../../_static/vpp/performance-changes-2n-tx2-1t1c-mrr.txt>`_
- - `ASCII 2t2c MRR comparison <../../_static/vpp/performance-changes-2n-tx2-2t2c-mrr.txt>`_
- - `ASCII 4t4c MRR comparison <../../_static/vpp/performance-changes-2n-tx2-4t4c-mrr.txt>`_
- - `CSV 1t1c MRR comparison <../../_static/vpp/performance-changes-2n-tx2-1t1c-mrr-csv.csv>`_
- - `CSV 2t2c MRR comparison <../../_static/vpp/performance-changes-2n-tx2-2t2c-mrr-csv.csv>`_
- - `CSV 4t4c MRR comparison <../../_static/vpp/performance-changes-2n-tx2-4t4c-mrr-csv.csv>`_
diff --git a/docs/report/vpp_performance_tests/comparisons/index.rst b/docs/report/vpp_performance_tests/comparisons/index.rst
deleted file mode 100644
index 9370d5669e..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/index.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _vpp_throughput_comparisons:
-
-Comparisons
-===========
-
-.. toctree::
-
- current_vs_previous_release
- 3n-skx_vs_3n-hsw_testbeds
- 2n-skx_vs_2n-clx_testbeds
- 2n-clx_vs_3n-hsw_testbeds
- 3n-skx_vs_2n-skx_testbeds
- nic_comparison
- soak_vs_ndr
diff --git a/docs/report/vpp_performance_tests/comparisons/nic_comparison.rst b/docs/report/vpp_performance_tests/comparisons/nic_comparison.rst
deleted file mode 100644
index 51905c9d0e..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/nic_comparison.rst
+++ /dev/null
@@ -1,113 +0,0 @@
-
-.. _vpp_compare_nics_release:
-
-NICs Comparison
----------------
-
-Relative comparison of VPP packet throughput (NDR, PDR and MRR) between
-NICs (measured for |csit-release) is calculated from results of tests
-running on 3-Node Intel Xeon Haswell testbeds (3n-hsw) in 1-core, 2-core
-and 4-core (MRR only) configurations.
-
-Listed mean and standard deviation values are computed based on a series
-of the same tests executed against respective VPP releases to verify
-test results repeatability, with percentage change calculated for mean
-values. Note that the standard deviation is quite high for a small
-number of packet throughput tests, what indicates poor test results
-repeatability and makes the relative change of mean throughput value not
-fully representative for these tests. The root causes behind poor
-results repeatability vary between the test cases.
-
-.. note::
-
- Test results have been generated by
-
- - `FD.io test executor vpp performance job 3n-skx`_,
- - `FD.io test executor vpp performance job 2n-skx`_
-
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-3n-skx
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR Intel-x710 and Intel-xxv710 comparison <performance-changes-3n-skx-2t1c-nics-ndr.html>`_
- - `HTML 4t2c NDR Intel-x710 and Intel-xxv710 comparison <performance-changes-3n-skx-4t2c-nics-ndr.html>`_
- - `ASCII 2t1c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-ndr.txt>`_
- - `ASCII 4t2c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-ndr.txt>`_
- - `CSV 2t1c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-ndr-csv.csv>`_
- - `CSV 4t2c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR Intel-x710 and Intel-xxv710 comparison <performance-changes-3n-skx-2t1c-nics-pdr.html>`_
- - `HTML 4t2c PDR Intel-x710 and Intel-xxv710 comparison <performance-changes-3n-skx-4t2c-nics-pdr.html>`_
- - `ASCII 2t1c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-pdr.txt>`_
- - `ASCII 4t2c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-pdr.txt>`_
- - `CSV 2t1c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-pdr-csv.csv>`_
- - `CSV 4t2c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR Intel-x710 and Intel-xxv710 comparison <performance-changes-3n-skx-2t1c-nics-mrr.html>`_
- - `HTML 4t2c MRR Intel-x710 and Intel-xxv710 comparison <performance-changes-3n-skx-4t2c-nics-mrr.html>`_
- - `HTML 8t4c MRR Intel-x710 and Intel-xxv710 comparison <performance-changes-3n-skx-8t4c-nics-mrr.html>`_
- - `ASCII 2t1c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-mrr.txt>`_
- - `ASCII 4t2c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-mrr.txt>`_
- - `ASCII 8t4c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-8t4c-nics-mrr.txt>`_
- - `CSV 2t1c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-2t1c-nics-mrr-csv.csv>`_
- - `CSV 4t2c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-4t2c-nics-mrr-csv.csv>`_
- - `CSV 8t4c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-3n-skx-8t4c-nics-mrr-csv.csv>`_
-
-2n-skx
-~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR Intel-x710 and Intel-xxv710 comparison <performance-changes-2n-skx-2t1c-nics-ndr.html>`_
- - `HTML 4t2c NDR Intel-x710 and Intel-xxv710 comparison <performance-changes-2n-skx-4t2c-nics-ndr.html>`_
- - `ASCII 2t1c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-ndr.txt>`_
- - `ASCII 4t2c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-ndr.txt>`_
- - `CSV 2t1c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-ndr-csv.csv>`_
- - `CSV 4t2c NDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR Intel-x710 and Intel-xxv710 comparison <performance-changes-2n-skx-2t1c-nics-pdr.html>`_
- - `HTML 4t2c PDR Intel-x710 and Intel-xxv710 comparison <performance-changes-2n-skx-4t2c-nics-pdr.html>`_
- - `ASCII 2t1c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-pdr.txt>`_
- - `ASCII 4t2c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-pdr.txt>`_
- - `CSV 2t1c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-pdr-csv.csv>`_
- - `CSV 4t2c PDR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR Intel-x710 and Intel-xxv710 comparison <performance-changes-2n-skx-2t1c-nics-mrr.html>`_
- - `HTML 4t2c MRR Intel-x710 and Intel-xxv710 comparison <performance-changes-2n-skx-4t2c-nics-mrr.html>`_
- - `HTML 8t4c MRR Intel-x710 and Intel-xxv710 comparison <performance-changes-2n-skx-8t4c-nics-mrr.html>`_
- - `ASCII 2t1c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-mrr.txt>`_
- - `ASCII 4t2c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-mrr.txt>`_
- - `ASCII 8t4c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-8t4c-nics-mrr.txt>`_
- - `CSV 2t1c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-2t1c-nics-mrr-csv.csv>`_
- - `CSV 4t2c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-4t2c-nics-mrr-csv.csv>`_
- - `CSV 8t4c MRR Intel-x710 and Intel-xxv710 comparison <../../_static/vpp/performance-changes-2n-skx-8t4c-nics-mrr-csv.csv>`_
diff --git a/docs/report/vpp_performance_tests/comparisons/soak_vs_ndr.rst b/docs/report/vpp_performance_tests/comparisons/soak_vs_ndr.rst
deleted file mode 100644
index b4de50b286..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/soak_vs_ndr.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-.. _`soak vs ndr comparison`:
-
-Soak Tests vs NDR Tests
------------------------
-
-Relative comparison of |vpp-release| Soak PLRSearch vs NDR packet throughput
-is calculated for the tests executed on 2-Node Skylake physical testbed types,
-in 1-core configurations.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_,
- `FD.io test executor vpp performance job 2n-clx`_
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-Comparison tables in ASCII and CSV formats:
-
-2n-skx
-~~~~~~
-
- - `ASCII Soak vs NDR comparison <../../_static/vpp/soak-vs-ndr-2n-skx.txt>`_
- - `CSV Soak vs NDR comparison <../../_static/vpp/soak-vs-ndr-2n-skx.csv>`_
-
-2n-clx
-~~~~~~
-
- - `ASCII Soak vs NDR comparison <../../_static/vpp/soak-vs-ndr-2n-clx.txt>`_
- - `CSV Soak vs NDR comparison <../../_static/vpp/soak-vs-ndr-2n-clx.csv>`_
diff --git a/docs/report/vpp_performance_tests/csit_release_notes.rst b/docs/report/vpp_performance_tests/csit_release_notes.rst
deleted file mode 100644
index 52d2690d26..0000000000
--- a/docs/report/vpp_performance_tests/csit_release_notes.rst
+++ /dev/null
@@ -1,126 +0,0 @@
-Release Notes
-=============
-
-Changes in |csit-release|
--------------------------
-
-#. VPP PERFORMANCE TESTS
-
- - CSIT test environment is versioned, see
- :ref:`test_environment_versioning`.
-
- - To identify performance changes due to VPP code changes from
- v20.05.0 to v20.09.0, both have been tested in CSIT environment
- ver. 5 and compared against each other. All substantial
- progressions has been marked up with RCA analysis. See
- :ref:`vpp_compare_current_vs_previous_release` and
- :ref:`vpp_known_issues`.
-
- - **NAT44 tests**: Adapted existing and added new tests.
-
- - Refactored NAT44 deterministic mode (nat44det) tests to use separate
- det44 vpp plugin and to use the same scheme of inside and outside
- addresses and ports, as used in new NAT44 endpoint-dependent mode tests.
-
- - Added new NAT44 endpoint-depended mode uni-directional (nat44ed-udir)
- tests that measure packet throughput in one direction with usage of TRex
- in stateless mode.
-
- - Added new NAT44 endpoint-dependent mode CPS tests that measure
- connections per second with usage of TRex in stateful mode.
- UPD packet size is 64 bytes. Size of TCP control packets
- is not configurable, please ignore the -64b- part of test names.
-
- - Added new NAT44 endpoint-dependent mode PPS tests that measure
- packets per second (control and data together) with usage of TRex
- in stateful mode. UPD packet size is 64 bytes. Size of TCP
- data packets is governed by the default MSS value, so most data packets
- are 1460 bytes long, please ignore the -64b- part of test names.
-
- - See :ref:`nat44_methodology` for more details.
-
- - **IPSec async mode tests**: Added VPP performance tests for async crypto
- engine.
-
- - **AMD 2n-zn2 testbed**: New physical testbed type installed in
- FD.io CSIT, with VPP and DPDK performance data added to CSIT
- trending and this report.
-
- - **AMD 2n-tx2 testbed**: New physical testbed type installed in
- FD.io CSIT, with VPP and DPDK performance data added to CSIT
- trending and this report.
-
-#. TEST FRAMEWORK
-
- - **TRex ASTF**: Added capability to run TRex in advanced stateful mode.
-
- - **CSIT PAPI support**: Due to issues with PAPI performance, VAT is
- still used in CSIT for all VPP scale tests. See known issues below.
-
- - **General Code Housekeeping**: Ongoing RF keywords optimizations,
- removal of redundant RF keywords and aligning of suite/test
- setup/teardowns.
-
- - **Intel E810CQ 100G NIC**: Added configuration for Intel E810CQ 100G NIC.
- No tests run for this NIC as it is not present in FD.io CSIT lab yet.
-
-#. PRESENTATION AND ANALYTICS LAYER
-
- - **Graphs improvements**: Added possibility to use Gbps on Y-axis in
- Packet Throughput and Speedup Multi-Core graphs, added unidirectional
- mode to the Latency graphs.
-
-.. raw:: latex
-
- \clearpage
-
-.. _vpp_known_issues:
-
-Known Issues
-------------
-
-List of known issues in |csit-release| for VPP performance tests:
-
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| # | JiraID | Issue Description |
-+====+=========================================+===========================================================================================================+
-| 1 | `CSIT-570 | Sporadic (1 in 200) NDR discovery test failures on x520. DPDK reporting rx-errors, indicating L1 issue. |
-| | <https://jira.fd.io/browse/CSIT-570>`_ | Suspected issue with HW combination of X710-X520 in LF testbeds. Not observed outside of LF testbeds. |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 2 | `VPP-662 | 9000B packets not supported by NICs VIC1227 and VIC1387. |
-| | <https://jira.fd.io/browse/VPP-662>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 3 | `CSIT-1763 | Adapt ramp-up phase of nat44 tests for different frame sizes. |
-| | <https://jira.fd.io/browse/CSIT-1763>`_ | Currently ramp-up phase rate and duration values are correctly set for tests with 64B frame size. |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 4 | `CSIT-1671 | All CSIT scale tests can not use PAPI due to much slower performance compared to VAT/CLI (it takes much |
-| | <https://jira.fd.io/browse/CSIT-1671>`_ | longer to program VPP). This needs to be addressed on the PAPI side. |
-| +-----------------------------------------+ The usual PAPI library spends too much time parsing arguments, so even with async processing (hundreds of |
-| | `VPP-1763 | commands in flight over socket), the VPP configuration for large scale tests (millions of messages) takes |
-| | <https://jira.fd.io/browse/VPP-1763>`_ | too long. |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 5 | `CSIT-1771 | IPv4 IPSEC 9000B packet tests had been failing when chained buffers were not supported. |
-| | <https://jira.fd.io/browse/CSIT-1771>`_ | This has been fixed on VPP side, but CSIT still needs to re-enable jumbo tests. |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 6 | `VPP-1934 | [i40e] Interfaces are not brought up from carrier-down. |
-| | <https://jira.fd.io/browse/VPP-1934>`_ | In case of i40e -based interface (e.g Intel x700 series NIC) is bound to kernel driver (i40e) and is in |
-| | | state "no-carrier" (<NO-CARRIER,BROADCAST,MULTICAST,UP>) because previously it was disabled via |
-| | | "I40E_AQ_PHY_LINK_ENABLED" call, then VPP during initialization of AVF interface is not re-enabling |
-| | | interface link via i40e driver to up. |
-| | | CSIT implemented `workaround for AVF interface <https://gerrit.fd.io/r/c/csit/+/29086>`_ until fixed. |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 7 | `CSIT-1760 | All Mellanox / rdma driver tests are failing on LF testbed28 while successfully run on other LF testbeds. |
-| | <https://jira.fd.io/browse/CSIT-1760>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-
-Root Cause Analysis for Performance Changes
--------------------------------------------
-
-List of RCAs in |csit-release| for VPP performance changes:
-
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| # | JiraID | Issue Description |
-+====+=========================================+===========================================================================================================+
-| 1 | | |
-| | | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
diff --git a/docs/report/vpp_performance_tests/documentation/containers.rst b/docs/report/vpp_performance_tests/documentation/containers.rst
deleted file mode 100644
index 14817df64f..0000000000
--- a/docs/report/vpp_performance_tests/documentation/containers.rst
+++ /dev/null
@@ -1,421 +0,0 @@
-
-.. _container_orchestration_in_csit:
-
-Container Orchestration in CSIT
-===============================
-
-Overview
---------
-
-Linux Containers
-~~~~~~~~~~~~~~~~
-
-Linux Containers is an OS-level virtualization method for running
-multiple isolated Linux systems (containers) on a compute host using a
-single Linux kernel. Containers rely on Linux kernel cgroups
-functionality for controlling usage of shared system resources (i.e.
-CPU, memory, block I/O, network) and for namespace isolation. The latter
-enables complete isolation of applications' view of operating
-environment, including process trees, networking, user IDs and mounted
-file systems.
-
-:abbr:`LXC (Linux Containers)` combine kernel's cgroups and support for isolated
-namespaces to provide an isolated environment for applications. Docker
-does use LXC as one of its execution drivers, enabling image management
-and providing deployment services. More information in [lxc]_, [lxcnamespace]_
-and [stgraber]_.
-
-Linux containers can be of two kinds: privileged containers and
-unprivileged containers.
-
-Unprivileged Containers
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Running unprivileged containers is the safest way to run containers in a
-production environment. From LXC 1.0 one can start a full system
-container entirely as a user, allowing to map a range of UIDs on the
-host into a namespace inside of which a user with UID 0 can exist again.
-In other words an unprivileged container does mask the userid from the
-host, making it impossible to gain a root access on the host even if a
-user gets root in a container. With unprivileged containers, non-root
-users can create containers and will appear in the container as the
-root, but will appear as userid <non-zero> on the host. Unprivileged
-containers are also better suited to supporting multi-tenancy operating
-environments. More information in [lxcsecurity]_ and [stgraber]_.
-
-Privileged Containers
-~~~~~~~~~~~~~~~~~~~~~
-
-Privileged containers do not mask UIDs, and container UID 0 is mapped to
-the host UID 0. Security and isolation is controlled by a good
-configuration of cgroup access, extensive AppArmor profile preventing
-the known attacks as well as container capabilities and SELinux. Here a
-list of applicable security control mechanisms:
-
-- Capabilities - keep (whitelist) or drop (blacklist) Linux capabilities,
- [capabilities]_.
-- Control groups - cgroups, resource bean counting, resource quotas, access
- restrictions, [cgroup1]_, [cgroup2]_.
-- AppArmor - apparmor profiles aim to prevent any of the known ways of
- escaping a container or cause harm to the host, [apparmor]_.
-- SELinux - Security Enhanced Linux is a Linux kernel security module
- that provides similar function to AppArmor, supporting access control
- security policies including United States Department of Defense-style
- mandatory access controls. Mandatory access controls allow an
- administrator of a system to define how applications and users can
- access different resources such as files, devices, networks and inter-
- process communication, [selinux]_.
-- Seccomp - secure computing mode, enables filtering of system calls,
- [seccomp]_.
-
-More information in [lxcsecurity]_ and [lxcsecfeatures]_.
-
-**Linux Containers in CSIT**
-
-CSIT is using Privileged Containers as the ``sysfs`` is mounted with RW
-access. Sysfs is required to be mounted as RW due to VPP accessing
-:command:`/sys/bus/pci/drivers/uio_pci_generic/unbind`. This is not the case of
-unprivileged containers where ``sysfs`` is mounted as read-only.
-
-
-Orchestrating Container Lifecycle Events
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Following Linux container lifecycle events need to be addressed by an
-orchestration system:
-
-1. Acquire - acquiring/downloading existing container images via
- :command:`docker pull` or :command:`lxc-create -t download`.
-
-2. Build - building a container image from scratch or another
- container image via :command:`docker build <dockerfile/composefile>` or
- customizing LXC templates in
- `GitHub <https://github.com/lxc/lxc/tree/master/templates>`_.
-
-3. (Re-)Create - creating a running instance of a container application
- from anew, or re-creating one that failed. A.k.a. (re-)deploy via
- :command:`docker run` or :command:`lxc-start`
-
-4. Execute - execute system operations within the container by attaching to
- running container. THis is done by :command:`lxc-attach` or
- :command:`docker exec`
-
-5. Distribute - distributing pre-built container images to the compute
- nodes. Currently not implemented in CSIT.
-
-
-Container Orchestration Systems Used in CSIT
---------------------------------------------
-
-Current CSIT testing framework integrates following Linux container
-orchestration mechanisms:
-
-- LXC/Docker for complete VPP container lifecycle control.
-
-LXC
-~~~
-
-LXC is the well-known and heavily tested low-level Linux container
-runtime [lxcsource]_, that provides a userspace interface for the Linux kernel
-containment features. With a powerful API and simple tools, LXC enables
-Linux users to easily create and manage system or application
-containers. LXC uses following kernel features to contain processes:
-
-- Kernel namespaces: ipc, uts, mount, pid, network and user.
-- AppArmor and SELinux security profiles.
-- Seccomp policies.
-- Chroot.
-- Cgroups.
-
-CSIT uses LXC runtime and LXC usertools to test VPP data plane performance in
-a range of virtual networking topologies.
-
-**Known Issues**
-
-- Current CSIT restriction: only single instance of lxc runtime due to
- the cgroup policies used in CSIT. There is plan to add the capability into
- code to create cgroups per container instance to address this issue. This sort
- of functionality is better supported in LXC 2.1 but can be done is current
- version as well.
-
-- CSIT code is currently using cgroup to control the range of CPU cores the
- LXC container runs on. VPP thread pinning is defined vpp startup.conf.
-
-Docker
-~~~~~~
-
-Docker builds on top of Linux kernel containment features, and
-offers a high-level tool for wrapping the processes, maintaining and
-executing them in containers [docker]_. Currently it is using *runc*,
-a CLI tool for spawning and running containers according to the
-`OCI specification <https://www.opencontainers.org/>`_.
-
-A Docker container image is a lightweight, stand-alone, executable
-package that includes everything needed to run the container:
-code, runtime, system tools, system libraries, settings.
-
-CSIT uses Docker to manage the maintenance and execution of
-containerized applications used in CSIT performance tests.
-
-- Data plane thread pinning to CPU cores - Docker CLI and/or Docker
- configuration file controls the range of CPU cores the Docker image
- must run on. VPP thread pinning defined vpp startup.conf.
-
-Implementation
---------------
-
-CSIT container orchestration is implemented in CSIT Level-1 keyword
-Python libraries following the Builder design pattern. Builder design
-pattern separates the construction of a complex object from its
-representation, so that the same construction process can create
-different representations e.g. LXC, Docker, other.
-
-CSIT Robot Framework keywords are then responsible for higher level
-lifecycle control of of the named container groups. One can have
-multiple named groups, with 1..N containers in a group performing
-different role/functionality e.g. NFs, Switch, Kafka bus, ETCD
-datastore, etc. ContainerManager class acts as a Director and uses
-ContainerEngine class that encapsulate container control.
-
-Current CSIT implementation is illustrated using UML Class diagram:
-
-1. Acquire
-2. Build
-3. (Re-)Create
-4. Execute
-
-::
-
- +-----------------------------------------------------------------------+
- | RF Keywords (high level lifecycle control) |
- +-----------------------------------------------------------------------+
- | Construct VNF containers on all DUTs |
- | Acquire all '${group}' containers |
- | Create all '${group}' containers |
- | Install all '${group}' containers |
- | Configure all '${group}' containers |
- | Stop all '${group}' containers |
- | Destroy all '${group}' containers |
- +-----------------+-----------------------------------------------------+
- | 1
- |
- | 1..N
- +-----------------v-----------------+ +--------------------------+
- | ContainerManager | | ContainerEngine |
- +-----------------------------------+ +--------------------------+
- | __init()__ | | __init(node)__ |
- | construct_container() | | acquire(force) |
- | construct_containers() | | create() |
- | acquire_all_containers() | | stop() |
- | create_all_containers() | 1 1 | destroy() |
- | execute_on_container() <>-------| info() |
- | execute_on_all_containers() | | execute(command) |
- | install_vpp_in_all_containers() | | system_info() |
- | configure_vpp_in_all_containers() | | install_supervisor() |
- | stop_all_containers() | | install_vpp() |
- | destroy_all_containers() | | restart_vpp() |
- +-----------------------------------+ | create_vpp_exec_config() |
- | create_vpp_startup_config|
- | is_container_running() |
- | is_container_present() |
- | _configure_cgroup() |
- +-------------^------------+
- |
- |
- |
- +----------+---------+
- | |
- +------+------+ +------+------+
- | LXC | | Docker |
- +-------------+ +-------------+
- | (inherited) | | (inherited) |
- +------+------+ +------+------+
- | |
- +----------+---------+
- |
- | constructs
- |
- +---------v---------+
- | Container |
- +-------------------+
- | __getattr__(a) |
- | __setattr__(a, v) |
- +-------------------+
-
-Sequentional diagram that illustrates the creation of a single container.
-
-::
-
- Legend:
- e = engine [Docker|LXC]
- .. = kwargs (variable number of keyword argument)
-
- +-------+ +------------------+ +-----------------+
- | RF KW | | ContainerManager | | ContainerEngine |
- +---+---+ +--------+---------+ +--------+--------+
- | | |
- | 1: new ContainerManager(e) | |
- +-+---------------------------->+-+ |
- |-| |-| 2: new ContainerEngine |
- |-| |-+----------------------->+-+
- |-| |-| |-|
- |-| +-+ +-+
- |-| | |
- |-| 3: construct_container(..) | |
- |-+---------------------------->+-+ |
- |-| |-| 4: init() |
- |-| |-+----------------------->+-+
- |-| |-| |-| 5: new +-------------+
- |-| |-| |-+-------->| Container A |
- |-| |-| |-| +-------------+
- |-| |-|<-----------------------+-|
- |-| +-+ +-+
- |-| | |
- |-| 6: acquire_all_containers() | |
- |-+---------------------------->+-+ |
- |-| |-| 7: acquire() |
- |-| |-+----------------------->+-+
- |-| |-| |-|
- |-| |-| |-+--+
- |-| |-| |-| | 8: is_container_present()
- |-| |-| True/False |-|<-+
- |-| |-| |-|
- |-| |-| |-|
- +---------------------------------------------------------------------------------------------+
- | |-| ALT [isRunning & force] |-| |-|--+ |
- | |-| |-| |-| | 8a: destroy() |
- | |-| |-| |-<--+ |
- +---------------------------------------------------------------------------------------------+
- |-| |-| |-|
- |-| +-+ +-+
- |-| | |
- |-| 9: create_all_containers() | |
- |-+---------------------------->+-+ |
- |-| |-| 10: create() |
- |-| |-+----------------------->+-+
- |-| |-| |-+--+
- |-| |-| |-| | 11: wait('RUNNING')
- |-| |-| |-<--+
- |-| +-+ +-+
- |-| | |
- +---------------------------------------------------------------------------------------------+
- | |-| ALT | | |
- | |-| (install_vpp, configure_vpp) | | |
- | |-| | | |
- +---------------------------------------------------------------------------------------------+
- |-| | |
- |-| 12: destroy_all_containers() | |
- |-+---------------------------->+-+ |
- |-| |-| 13: destroy() |
- |-| |-+----------------------->+-+
- |-| |-| |-|
- |-| +-+ +-+
- |-| | |
- +++ | |
- | | |
- + + +
-
-Container Data Structure
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Container is represented in Python L1 library as a separate Class with instance
-variables and no methods except overriden ``__getattr__`` and ``__setattr__``.
-Instance variables are assigned to container dynamically during the
-``construct_container(**kwargs)`` call and are passed down from the RF keyword.
-
-There is no parameters check functionality. Passing the correct arguments
-is a responsibility of the caller.
-
-Examples
-~~~~~~~~
-
-This section contains a high-level example of multiple initialization steps
-via ContainerManager; taken from an actual CSIT code,
-but with non-code lines (comments, Documentation) removed for brevity.
-
-:
-
-.. code-block:: robotframework
-
- | Start containers for test
- | | [Arguments] | ${dut}=${None} | ${nf_chains}=${1} | ${nf_nodes}=${1}
- | | ... | ${auto_scale}=${True} | ${pinning}=${True}
- | |
- | | Set Test Variable | @{container_groups} | @{EMPTY}
- | | Set Test Variable | ${container_group} | CNF
- | | Set Test Variable | ${nf_nodes}
- | | Import Library | resources.libraries.python.ContainerUtils.ContainerManager
- | | ... | engine=${container_engine} | WITH NAME | ${container_group}
- | | Construct chains of containers
- | | ... | dut=${dut} | nf_chains=${nf_chains} | nf_nodes=${nf_nodes}
- | | ... | auto_scale=${auto_scale} | pinning=${pinning}
- | | Acquire all '${container_group}' containers
- | | Create all '${container_group}' containers
- | | Configure VPP in all '${container_group}' containers
- | | Start VPP in all '${container_group}' containers
- | | Append To List | ${container_groups} | ${container_group}
- | | Save VPP PIDs
-
-Kubernetes
-~~~~~~~~~~
-
-For the future use, Kubernetes [k8sdoc]_ is implemented as separate library
-``KubernetesUtils.py``, with a class with the same name. This utility provides
-an API for L2 Robot Keywords to control ``kubectl`` installed on each of DUTs.
-One time initialization script, ``resources/libraries/bash/k8s_setup.sh``
-does reset/init kubectl, and initializes the ``csit`` namespace. CSIT
-namespace is required to not to interfere with existing setups and it
-further simplifies apply/get/delete Pod/ConfigMap operations on SUTs.
-
-Kubernetes utility is based on YAML templates to avoid crafting the huge
-YAML configuration files, what would lower the readability of code and
-requires complicated algorithms.
-
-Two types of YAML templates are defined:
-
-- Static - do not change between deployments, that is infrastructure
- containers like Kafka, Calico, ETCD.
-
-- Dynamic - per test suite/case topology YAML files.
-
-Making own python wrapper library of ``kubectl`` instead of using the
-official Python package allows to control and deploy environment over
-the SSH library without the need of using isolated driver running on
-each of DUTs.
-
-Tested Topologies
-~~~~~~~~~~~~~~~~~
-
-Listed CSIT container networking test topologies are defined with DUT
-containerized VPP switch forwarding packets between NF containers. Each
-NF container runs their own instance of VPP in L2XC configuration.
-
-Following container networking topologies are tested in |csit-release|:
-
-- LXC topologies:
-
- - eth-l2xcbase-eth-2memif-1lxc.
- - eth-l2bdbasemaclrn-eth-2memif-1lxc.
-
-- Docker topologies:
-
- - eth-l2xcbase-eth-2memif-1docker.
- - eth-l2xcbase-eth-1memif-1docker
-
-References
-~~~~~~~~~~
-
-.. [lxc] `Linux Containers <https://linuxcontainers.org/>`_
-.. [lxcnamespace] `Resource management: Linux kernel Namespaces and cgroups <https://www.cs.ucsb.edu/~rich/class/cs293b-cloud/papers/lxc-namespace.pdf>`_.
-.. [stgraber] `LXC 1.0: Blog post series <https://stgraber.org/2013/12/20/lxc-1-0-blog-post-series/>`_.
-.. [lxcsecurity] `Linux Containers Security <https://linuxcontainers.org/lxc/security/>`_.
-.. [capabilities] `Linux manual - capabilities - overview of Linux capabilities <http://man7.org/linux/man-pages/man7/capabilities.7.html>`_.
-.. [cgroup1] `Linux kernel documentation: cgroups <https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt>`_.
-.. [cgroup2] `Linux kernel documentation: Control Group v2 <https://www.kernel.org/doc/Documentation/cgroup-v2.txt>`_.
-.. [selinux] `SELinux Project Wiki <http://selinuxproject.org/page/Main_Page>`_.
-.. [lxcsecfeatures] `LXC 1.0: Security features <https://stgraber.org/2014/01/01/lxc-1-0-security-features/>`_.
-.. [lxcsource] `Linux Containers source <https://github.com/lxc/lxc>`_.
-.. [apparmor] `Ubuntu AppArmor <https://wiki.ubuntu.com/AppArmor>`_.
-.. [seccomp] `SECure COMPuting with filters <https://www.kernel.org/doc/Documentation/prctl/seccomp_filter.txt>`_.
-.. [docker] `Docker <https://www.docker.com/what-docker>`_.
-.. [k8sdoc] `Kubernetes documentation <https://kubernetes.io/docs/home/>`_.
diff --git a/docs/report/vpp_performance_tests/documentation/documentation.rst b/docs/report/vpp_performance_tests/documentation/documentation.rst
deleted file mode 100644
index 92bde5627f..0000000000
--- a/docs/report/vpp_performance_tests/documentation/documentation.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-Test Code Documentation
-=======================
-
-`CSIT VPP Performance Tests Documentation`_ contains detailed
-functional description and input parameters for each test case.
diff --git a/docs/report/vpp_performance_tests/documentation/index.rst b/docs/report/vpp_performance_tests/documentation/index.rst
deleted file mode 100644
index 5975fb9300..0000000000
--- a/docs/report/vpp_performance_tests/documentation/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Documentation
-=============
-
-.. toctree::
-
- containers
- documentation
-
diff --git a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_clx.rst b/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_clx.rst
deleted file mode 100644
index 6667f9539a..0000000000
--- a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_clx.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-2n-clx
-======
-
diff --git a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst b/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst
deleted file mode 100644
index 61baf8fcbf..0000000000
--- a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-2n-skx
-======
-
diff --git a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_zn2.rst b/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_zn2.rst
deleted file mode 100644
index 2f14be0030..0000000000
--- a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_zn2.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-2n-zn2
-======
-
diff --git a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_hsw.rst b/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_hsw.rst
deleted file mode 100644
index 53c253c009..0000000000
--- a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_hsw.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-3n-hsw
-======
-
diff --git a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_skx.rst b/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_skx.rst
deleted file mode 100644
index 60840bbb1e..0000000000
--- a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_skx.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-3n-skx
-======
-
diff --git a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_tsh.rst b/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_tsh.rst
deleted file mode 100644
index 7fe42625f7..0000000000
--- a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_tsh.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-3n-tsh
-======
-
diff --git a/docs/report/vpp_performance_tests/hoststack_testing/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/index.rst
deleted file mode 100644
index 1f4db156ef..0000000000
--- a/docs/report/vpp_performance_tests/hoststack_testing/index.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Hoststack Testing
-=================
-
-.. toctree::
-
- iperf3/index
- quic/index
diff --git a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/index.rst
deleted file mode 100644
index 34a4962a60..0000000000
--- a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/index.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-TCP/IP with iperf3
-~~~~~~~~~~~~~~~~~~
-
-.. todo::
- Add introduction
-
-.. raw:: latex
-
- \clearpage
-
-1460b-1t1c-xl710-base-scale
----------------------------
-
-.. raw:: html
-
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-ldpreload-iperf3-bps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-ldpreload-iperf3-bps}
- \label{fig:3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-ldpreload-iperf3-bps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1460b-1t1c-xl710-nsim-base-scale
---------------------------------
-
-.. raw:: html
-
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-nsim-ldpreload-iperf3-bps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-nsim-ldpreload-iperf3-bps}
- \label{fig:3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-nsim-ldpreload-iperf3-bps}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/hoststack_testing/quic/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/quic/index.rst
deleted file mode 100644
index ba4c703d38..0000000000
--- a/docs/report/vpp_performance_tests/hoststack_testing/quic/index.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-QUIC/UDP/IP with vpp_echo
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. todo::
- Add introduction
-
-.. raw:: latex
-
- \clearpage
-
-1280b-1t1c-xl710-base-scale
----------------------------
-
-.. raw:: html
-
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/3n-hsw-xl710-1280b-1t1c-eth-ip4udpquic-vppecho-bps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-1280b-1t1c-eth-ip4udpquic-vppecho-bps}
- \label{fig:3n-hsw-xl710-1280b-1t1c-eth-ip4udpquic-vppecho-bps}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/index.rst b/docs/report/vpp_performance_tests/index.rst
deleted file mode 100644
index 22177eaf9e..0000000000
--- a/docs/report/vpp_performance_tests/index.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-VPP Performance
-===============
-
-.. toctree::
-
- overview
- csit_release_notes
- packet_throughput_graphs/index
- throughput_speedup_multi_core/index
- packet_latency/index
- soak_tests/index
- reconf_tests/index
- nf_service_density/index
- hoststack_testing/index
- comparisons/index
- throughput_trending
- test_environment
- documentation/index
diff --git a/docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains.rst b/docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains.rst
deleted file mode 100644
index 11b2730a37..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains.rst
+++ /dev/null
@@ -1,480 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-.. _cnf_service_chains:
-
-CNF Service Chains Routing
-==========================
-
-Throughput graphs for CNF service chains are generated by multiple
-executions of tests covering a range of CNF service densities
-defined as [Number of Service Chains] x [Number of CNFs per Service
-Chain]. The results are presented in the service density graph.
-Each graph includes the results of both configurations: one NF per physical
-core and two NFs per physical core and their relative difference.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested packet path including CNF workload
- running in each Docker Container.
-
-#. **X-axis Labels**: CNFs per service chain.
-
-#. **Y-axis Labels**: number of service chains.
-
-#. **Z-axis Color Scale**: lists 64B/IMIX Packet Throughput
- (mean MRR/NDR/PDR value) in Mpps or the Relative Difference.
-
-#. **Hover Information**: specific test substring listing
- memif-chain-docker_container combinations, number of runs executed,
- mean MRR/NDR/PDR throughput in Mpps, standard deviation for both
- configurations and their relative difference.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_ and
- `FD.io test executor vpp performance job 2n-clx`_
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-csc-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-csc-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-csc-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-csc-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-csc-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-csc-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-csc-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-csc-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-csc-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-csc-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-csc-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-csc-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-csc-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-csc-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-csc-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-csc-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-csc-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-csc-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-csc-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains_ipsec.rst b/docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains_ipsec.rst
deleted file mode 100644
index a3afc63724..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains_ipsec.rst
+++ /dev/null
@@ -1,1161 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-.. _cnf_service_chains_ipsec:
-
-CNF Service Chains ipsec
-========================
-
-.. todo::
-
- Add introduction.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested packet path including CNF workload
- running in each Docker Container.
-
-#. **X-axis Labels**: CNFs per service chain.
-
-#. **Y-axis Labels**: number of service chains.
-
-#. **Z-axis Color Scale**: lists IMIX Packet Throughput
- (mean MRR/NDR/PDR value) in Mpps or the Relative Difference.
-
-#. **Hover Information**: specific test substring listing
- memif-chain-docker_container combinations, number of runs executed,
- mean MRR/NDR/PDR throughput in Mpps, standard deviation for both
- configurations and their relative difference.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 3n-skx`_
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-3n-skx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx4tnl04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-mrr}
- \label{fig:l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx1000tnl04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-mrr}
- \label{fig:l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx10000tnl04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-mrr}
- \label{fig:l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx4tnl05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-mrr}
- \label{fig:l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx1000tnl05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-mrr}
- \label{fig:l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx10000tnl05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-mrr}
- \label{fig:l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx4tnl06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-mrr}
- \label{fig:l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx1000tnl06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-mrr}
- \label{fig:l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx10000tnl06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-mrr}
- \label{fig:l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-3n-skx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx4tnl10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-ndr}
- \label{fig:l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx1000tnl10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-ndr}
- \label{fig:l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx10000tnl10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-ndr}
- \label{fig:l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx4tnl11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-ndr}
- \label{fig:l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx1000tnl11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-ndr}
- \label{fig:l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx10000tnl11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-ndr}
- \label{fig:l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx4tnl12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-ndr}
- \label{fig:l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx1000tnl12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-ndr}
- \label{fig:l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx10000tnl12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-ndr}
- \label{fig:l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-3n-skx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx4tnl16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-pdr}
- \label{fig:l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx1000tnl16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-pdr}
- \label{fig:l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx10000tnl16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-pdr}
- \label{fig:l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx4tnl17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-pdr}
- \label{fig:l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx1000tnl17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-pdr}
- \label{fig:l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx10000tnl17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-pdr}
- \label{fig:l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx4tnl18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-pdr}
- \label{fig:l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx1000tnl18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-pdr}
- \label{fig:l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmskx10000tnl18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-pdr}
- \label{fig:l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-pdr}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 3n-hsw-xl710-mrr
- ~~~~~~~~~~~~~~~~
-
- imix-1t1c-eth-l2bd
- ------------------
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw4tnl04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-mrr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-mrr}
- \label{fig:l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-mrr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw1000tnl04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-mrr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-mrr}
- \label{fig:l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-mrr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw10000tnl04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-mrr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-mrr}
- \label{fig:l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-mrr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- imix-2t2c-eth-l2bd
- ------------------
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw4tnl05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-mrr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-mrr}
- \label{fig:l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-mrr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw1000tnl05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-mrr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-mrr}
- \label{fig:l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-mrr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw10000tnl05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-mrr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-mrr}
- \label{fig:l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-mrr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- imix-4t4c-eth-l2bd
- ------------------
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw4tnl06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-mrr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-mrr}
- \label{fig:l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-mrr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw1000tnl06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-mrr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-mrr}
- \label{fig:l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-mrr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw10000tnl06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-mrr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-mrr}
- \label{fig:l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-mrr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 3n-hsw-xl710-ndr
- ~~~~~~~~~~~~~~~~
-
- imix-1t1c-eth-l2bd
- ------------------
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw4tnl10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-ndr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-ndr}
- \label{fig:l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw1000tnl10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-ndr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-ndr}
- \label{fig:l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw10000tnl10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-ndr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-ndr}
- \label{fig:l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- imix-2t2c-eth-l2bd
- ------------------
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw4tnl11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-ndr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-ndr}
- \label{fig:l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw1000tnl11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-ndr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-ndr}
- \label{fig:l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw10000tnl11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-ndr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-ndr}
- \label{fig:l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- imix-4t4c-eth-l2bd
- ------------------
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw4tnl12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-ndr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-ndr}
- \label{fig:l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw1000tnl12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-ndr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-ndr}
- \label{fig:l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw10000tnl12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-ndr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-ndr}
- \label{fig:l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 3n-hsw-xl710-pdr
- ~~~~~~~~~~~~~~~~
-
- imix-1t1c-eth-l2bd
- ------------------
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw4tnl16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-pdr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-pdr}
- \label{fig:l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw1000tnl16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-pdr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-pdr}
- \label{fig:l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw10000tnl16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-pdr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-pdr}
- \label{fig:l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- imix-2t2c-eth-l2bd
- ------------------
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw4tnl17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-pdr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-pdr}
- \label{fig:l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw1000tnl17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-pdr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-pdr}
- \label{fig:l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw10000tnl17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-pdr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-pdr}
- \label{fig:l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- imix-4t4c-eth-l2bd
- ------------------
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw4tnl18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-pdr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-pdr}
- \label{fig:l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw1000tnl18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-pdr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-pdr}
- \label{fig:l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="ifrmhsw10000tnl18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-pdr.html"></iframe>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-pdr}
- \label{fig:l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/nf_service_density/cnf_service_pipelines.rst b/docs/report/vpp_performance_tests/nf_service_density/cnf_service_pipelines.rst
deleted file mode 100644
index 17d638043a..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/cnf_service_pipelines.rst
+++ /dev/null
@@ -1,480 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-.. _cnf_service_pipelines:
-
-CNF Service Pipelines Routing
-=============================
-
-Throughput graphs for CNF service pipelines are generated by multiple
-executions of tests covering a range of CNF service densities
-defined as [Number of Service Pipelines] x [Number of CNFs per Service
-Pipeline]. The results are presented in the service density graph.
-Each graph includes the results of both configurations: one NF per physical
-core and two NFs per physical core and their relative difference.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested packet path including CNF workload
- running in each Docker Container.
-
-#. **X-axis Labels**: CNFs per service pipeline.
-
-#. **Y-axis Labels**: number of service pipelines.
-
-#. **Z-axis Color Scale**: lists 64B/IMIX Packet Throughput
- (mean MRR/NDR/PDR value) in Mpps or the Relative Difference.
-
-#. **Hover Information**: specific test substring listing
- memif-pipeline-docker_container combinations, number of runs
- executed, mean MRR/NDR/PDR throughput in Mpps, standard deviation for both
- configurations and their relative difference.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_ and
- `FD.io test executor vpp performance job 2n-clx`_
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-csp-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-csp-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-csp-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-csp-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-csp-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-csp-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-csp-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-csp-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-csp-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-csp-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-csp-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-csp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-csp-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-csp-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-csp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-csp-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-csp-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-csp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-csp-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-csp-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-csp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-csp-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-csp-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-csp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-csp-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-csp-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-csp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-csp-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-csp-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-csp-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-csp-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-csp-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-csp-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-csp-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-csp-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-csp-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-csp-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-csp-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-csp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-csp-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-csp-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-csp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-csp-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-csp-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-csp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-csp-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-csp-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-csp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-csp-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-csp-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-csp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-csp-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-csp-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-csp-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/nf_service_density/index.rst b/docs/report/vpp_performance_tests/nf_service_density/index.rst
deleted file mode 100644
index 4d1345a9e3..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/index.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _network_service_density:
-
-NFV Service Density
-===================
-
-NFV Service Density is benchmarked in three distinct NF service
-configurations:
-
-- VNF Service Chains Routing
-- CNF Service Chains Routing
-- CNF Service Pipelines Routing
-- VNF Service Chains Tunnels
-
-..
- - CNF Service Chains IPSEC
-
-Each configuration is tested in a number of service density combinations
-[Number of Service Instances] x [Number of NFs per Service Instance].
-The actual tested range is based on available CPU physical core
-resources.
-
-.. toctree::
-
- vnf_service_chains
- cnf_service_chains
- cnf_service_pipelines
- vnf_service_chains_vxlan
-
-..
- cnf_service_chains_ipsec
diff --git a/docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains.rst b/docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains.rst
deleted file mode 100644
index a7fe96f999..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains.rst
+++ /dev/null
@@ -1,479 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-.. _vnf_service_chains:
-
-VNF Service Chains Routing
-==========================
-
-Throughput graphs for VNF service chains are generated by multiple
-executions of tests covering a range of VNF service densities
-defined as [Number of Service Chains] x [Number of VNFs per Service
-Chain]. The results are presented in the service density graph.
-Each graph includes the results of both configurations: one NF per physical
-core and two NFs per physical core and their relative difference.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested packet path including VNF workload
- running in each VM.
-
-#. **X-axis Labels**: VNFs per service chain.
-
-#. **Y-axis Labels**: number of service chains.
-
-#. **Z-axis Color Scale**: lists 64B/IMIX Packet Throughput
- (mean MRR/NDR/PDR value) in Mpps or the Relative Difference.
-
-#. **Hover Information**: specific test substring listing vhost-chain-vm
- combinations, number of runs executed, mean MRR/NDR/PDR throughput in Mpps,
- standard deviation for both configurations and their relative difference.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_ and
- `FD.io test executor vpp performance job 2n-clx`_
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrmclx18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains_vxlan.rst b/docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains_vxlan.rst
deleted file mode 100644
index 01477dfa46..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains_vxlan.rst
+++ /dev/null
@@ -1,476 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-.. _vnf_service_chains_tunnels:
-
-VNF Service Chains Tunnels
-==========================
-
-.. todo::
-
- Add introduction.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested packet path including VNF workload
- running in each VM.
-
-#. **X-axis Labels**: VNFs per service chain.
-
-#. **Y-axis Labels**: number of service chains.
-
-#. **Z-axis Color Scale**: lists 64B/IMIX Packet Throughput
- (mean MRR/NDR/PDR value) in Mpps or the Relative Difference.
-
-#. **Hover Information**: specific test substring listing vhost-chain-vm
- combinations, number of runs executed, mean MRR/NDR/PDR throughput in Mpps,
- standard deviation for both configurations and their relative difference.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_ and
- `FD.io test executor vpp performance job 2n-clx`_ with RF
- result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-mrr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-ndr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-pdr}
- \label{fig:l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm204" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm205" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm206" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-mrr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-mrr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm210" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm211" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm212" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-ndr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-ndr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm216" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm217" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm218" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-pdr.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-pdr}
- \label{fig:l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/overview.rst b/docs/report/vpp_performance_tests/overview.rst
deleted file mode 100644
index 2098216f11..0000000000
--- a/docs/report/vpp_performance_tests/overview.rst
+++ /dev/null
@@ -1,376 +0,0 @@
-Overview
-========
-
-VPP performance test results are reported for a range of processors.
-For description of physical testbeds used for VPP performance tests
-please refer to :ref:`tested_physical_topologies`.
-
-.. _tested_logical_topologies:
-
-Logical Topologies
-------------------
-
-CSIT VPP performance tests are executed on physical testbeds described
-in :ref:`tested_physical_topologies`. Based on the packet path thru
-server SUTs, three distinct logical topology types are used for VPP DUT
-data plane testing:
-
-#. NIC-to-NIC switching topologies.
-#. VM service switching topologies.
-#. Container service switching topologies.
-
-NIC-to-NIC Switching
-~~~~~~~~~~~~~~~~~~~~
-
-The simplest logical topology for software data plane application like
-VPP is NIC-to-NIC switching. Tested topologies for 2-Node and 3-Node
-testbeds are shown in figures below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_performance_tests/}}
- \includegraphics[width=0.90\textwidth]{logical-2n-nic2nic}
- \label{fig:logical-2n-nic2nic}
- \end{figure}
-
-.. only:: html
-
- .. figure:: logical-2n-nic2nic.svg
- :alt: logical-2n-nic2nic
- :align: center
-
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_performance_tests/}}
- \includegraphics[width=0.90\textwidth]{logical-3n-nic2nic}
- \label{fig:logical-3n-nic2nic}
- \end{figure}
-
-.. only:: html
-
- .. figure:: logical-3n-nic2nic.svg
- :alt: logical-3n-nic2nic
- :align: center
-
-Server Systems Under Test (SUT) run VPP application in Linux user-mode
-as a Device Under Test (DUT). Server Traffic Generator (TG) runs T-Rex
-application. Physical connectivity between SUTs and TG is provided using
-different drivers and NIC models that need to be tested for performance
-(packet/bandwidth throughput and latency).
-
-From SUT and DUT perspectives, all performance tests involve forwarding
-packets between two (or more) physical Ethernet ports (10GE, 25GE, 40GE,
-100GE). In most cases both physical ports on SUT are located on the same
-NIC. The only exceptions are link bonding and 100GE tests. In the latter
-case only one port per NIC can be driven at linerate due to PCIe Gen3
-x16 slot bandwidth limiations. 100GE NICs are not supported in PCIe Gen3
-x8 slots.
-
-Note that reported VPP DUT performance results are specific to the SUTs
-tested. SUTs with other processors than the ones used in FD.io lab are
-likely to yield different results. A good rule of thumb, that can be
-applied to estimate VPP packet thoughput for NIC-to-NIC switching
-topology, is to expect the forwarding performance to be proportional to
-processor core frequency for the same processor architecture, assuming
-processor is the only limiting factor and all other SUT parameters are
-equivalent to FD.io CSIT environment.
-
-VM Service Switching
-~~~~~~~~~~~~~~~~~~~~
-
-VM service switching topology test cases require VPP DUT to communicate
-with Virtual Machines (VMs) over vhost-user virtual interfaces.
-
-Two types of VM service topologies are tested in |csit-release|:
-
-#. "Parallel" topology with packets flowing within SUT from NIC(s) via
- VPP DUT to VM, back to VPP DUT, then out thru NIC(s).
-
-#. "Chained" topology (a.k.a. "Snake") with packets flowing within SUT
- from NIC(s) via VPP DUT to VM, back to VPP DUT, then to the next VM,
- back to VPP DUT and so on and so forth until the last VM in a chain,
- then back to VPP DUT and out thru NIC(s).
-
-For each of the above topologies, VPP DUT is tested in a range of L2
-or IPv4/IPv6 configurations depending on the test suite. Sample VPP DUT
-"Chained" VM service topologies for 2-Node and 3-Node testbeds with each
-SUT running N of VM instances is shown in the figures below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_performance_tests/}}
- \includegraphics[width=0.90\textwidth]{logical-2n-vm-vhost}
- \label{fig:logical-2n-vm-vhost}
- \end{figure}
-
-.. only:: html
-
- .. figure:: logical-2n-vm-vhost.svg
- :alt: logical-2n-vm-vhost
- :align: center
-
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_performance_tests/}}
- \includegraphics[width=0.90\textwidth]{logical-3n-vm-vhost}
- \label{fig:logical-3n-vm-vhost}
- \end{figure}
-
-.. only:: html
-
- .. figure:: logical-3n-vm-vhost.svg
- :alt: logical-3n-vm-vhost
- :align: center
-
-In "Chained" VM topologies, packets are switched by VPP DUT multiple
-times: twice for a single VM, three times for two VMs, N+1 times for N
-VMs. Hence the external throughput rates measured by TG and listed in
-this report must be multiplied by N+1 to represent the actual VPP DUT
-aggregate packet forwarding rate.
-
-For "Parallel" service topology packets are always switched twice by VPP
-DUT per service chain.
-
-Note that reported VPP DUT performance results are specific to the SUTs
-tested. SUTs with other processor than the ones used in FD.io lab are
-likely to yield different results. Similarly to NIC-to-NIC switching
-topology, here one can also expect the forwarding performance to be
-proportional to processor core frequency for the same processor
-architecture, assuming processor is the only limiting factor. However
-due to much higher dependency on intensive memory operations in VM
-service chained topologies and sensitivity to Linux scheduler settings
-and behaviour, this estimation may not always yield good enough
-accuracy.
-
-Container Service Switching
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Container service switching topology test cases require VPP DUT to
-communicate with Containers (Ctrs) over memif virtual interfaces.
-
-Three types of VM service topologies are tested in |csit-release|:
-
-#. "Parallel" topology with packets flowing within SUT from NIC(s) via
- VPP DUT to Container, back to VPP DUT, then out thru NIC(s).
-
-#. "Chained" topology (a.k.a. "Snake") with packets flowing within SUT
- from NIC(s) via VPP DUT to Container, back to VPP DUT, then to the
- next Container, back to VPP DUT and so on and so forth until the
- last Container in a chain, then back to VPP DUT and out thru NIC(s).
-
-#. "Horizontal" topology with packets flowing within SUT from NIC(s) via
- VPP DUT to Container, then via "horizontal" memif to the next
- Container, and so on and so forth until the last Container, then
- back to VPP DUT and out thru NIC(s).
-
-For each of the above topologies, VPP DUT is tested in a range of L2
-or IPv4/IPv6 configurations depending on the test suite. Sample VPP DUT
-"Chained" Container service topologies for 2-Node and 3-Node testbeds
-with each SUT running N of Container instances is shown in the figures
-below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_performance_tests/}}
- \includegraphics[width=0.90\textwidth]{logical-2n-container-memif}
- \label{fig:logical-2n-container-memif}
- \end{figure}
-
-.. only:: html
-
- .. figure:: logical-2n-container-memif.svg
- :alt: logical-2n-container-memif
- :align: center
-
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/vpp_performance_tests/}}
- \includegraphics[width=0.90\textwidth]{logical-3n-container-memif}
- \label{fig:logical-3n-container-memif}
- \end{figure}
-
-.. only:: html
-
- .. figure:: logical-3n-container-memif.svg
- :alt: logical-3n-container-memif
- :align: center
-
-In "Chained" Container topologies, packets are switched by VPP DUT
-multiple times: twice for a single Container, three times for two
-Containers, N+1 times for N Containers. Hence the external throughput
-rates measured by TG and listed in this report must be multiplied by N+1
-to represent the actual VPP DUT aggregate packet forwarding rate.
-
-For a "Parallel" and "Horizontal" service topologies packets are always
-switched by VPP DUT twice per service chain.
-
-Note that reported VPP DUT performance results are specific to the SUTs
-tested. SUTs with other processor than the ones used in FD.io lab are
-likely to yield different results. Similarly to NIC-to-NIC switching
-topology, here one can also expect the forwarding performance to be
-proportional to processor core frequency for the same processor
-architecture, assuming processor is the only limiting factor. However
-due to much higher dependency on intensive memory operations in
-Container service chained topologies and sensitivity to Linux scheduler
-settings and behaviour, this estimation may not always yield good enough
-accuracy.
-
-Performance Tests Coverage
---------------------------
-
-Performance tests measure following metrics for tested VPP DUT
-topologies and configurations:
-
-- Packet Throughput: measured in accordance with :rfc:`2544`, using
- FD.io CSIT Multiple Loss Ratio search (MLRsearch), an optimized binary
- search algorithm, producing throughput at different Packet Loss Ratio
- (PLR) values:
-
- - Non Drop Rate (NDR): packet throughput at PLR=0%.
- - Partial Drop Rate (PDR): packet throughput at PLR=0.5%.
-
-- One-Way Packet Latency: measured at different offered packet loads:
-
- - 90% of discovered PDR throughput.
- - 50% of discovered PDR throughput.
- - 10% of discovered PDR throughput.
- - Minimal offered load.
-
-- Maximum Receive Rate (MRR): measure packet forwarding rate under the
- maximum load offered by traffic generator over a set trial duration,
- regardless of packet loss. Maximum load for specified Ethernet frame
- size is set to the bi-directional link rate, unless there is a known
- limitation preventing Traffic Generator from achieving the line rate.
-
-.. todo::
-
- - Connections per second (CPS): TODO
-
-|csit-release| includes following VPP data plane functionality
-performance tested across a range of NIC drivers and NIC models:
-
-+-----------------------+----------------------------------------------+
-| Functionality | Description |
-+=======================+==============================================+
-| ACL | L2 Bridge-Domain switching and |
-| | IPv4and IPv6 routing with iACL and oACL IP |
-| | address, MAC address and L4 port security. |
-+-----------------------+----------------------------------------------+
-| ADL | IPv4 and IPv6 routing with ADL address |
-| | security. |
-+-----------------------+----------------------------------------------+
-| IPv4 | IPv4 routing. |
-+-----------------------+----------------------------------------------+
-| IPv6 | IPv6 routing. |
-+-----------------------+----------------------------------------------+
-| IPv4 Scale | IPv4 routing with 20k, 200k and 2M FIB |
-| | entries. |
-+-----------------------+----------------------------------------------+
-| IPv6 Scale | IPv6 routing with 20k, 200k and 2M FIB |
-| | entries. |
-+-----------------------+----------------------------------------------+
-| IPSecAsyncHW | IPSec encryption with AES-GCM, CBC-SHA-256 |
-| | ciphers in async mode, in combination with |
-| | IPv4 routing. Intel QAT HW acceleration. |
-+-----------------------+----------------------------------------------+
-| IPSecHW | IPSec encryption with AES-GCM, CBC-SHA-256 |
-| | ciphers, in combination with IPv4 routing. |
-| | Intel QAT HW acceleration. |
-+-----------------------+----------------------------------------------+
-| IPSec+LISP | IPSec encryption with CBC-SHA1 ciphers, in |
-| | combination with LISP-GPE overlay tunneling |
-| | for IPv4-over-IPv4. |
-+-----------------------+----------------------------------------------+
-| IPSecSW | IPSec encryption with AES-GCM, CBC-SHA-256 |
-| | ciphers, in combination with IPv4 routing. |
-+-----------------------+----------------------------------------------+
-| KVM VMs vhost-user | Virtual topologies with service |
-| | chains of 1 VM using vhost-user |
-| | interfaces, with different VPP forwarding |
-| | modes incl. L2XC, L2BD, VXLAN with L2BD, |
-| | IPv4 routing. |
-+-----------------------+----------------------------------------------+
-| L2BD | L2 Bridge-Domain switching of untagged |
-| | Ethernet frames with MAC learning; disabled |
-| | MAC learning i.e. static MAC tests to be |
-| | added. |
-+-----------------------+----------------------------------------------+
-| L2BD Scale | L2 Bridge-Domain switching of untagged |
-| | Ethernet frames with MAC learning; disabled |
-| | MAC learning i.e. static MAC tests to be |
-| | added with 20k, 200k and 2M FIB entries. |
-+-----------------------+----------------------------------------------+
-| L2XC | L2 Cross-Connect switching of untagged, |
-| | dot1q, dot1ad VLAN tagged Ethernet frames. |
-+-----------------------+----------------------------------------------+
-| LISP | LISP overlay tunneling for IPv4-over-IPv4, |
-| | IPv6-over-IPv4, IPv6-over-IPv6, |
-| | IPv4-over-IPv6 in IPv4 and IPv6 routing |
-| | modes. |
-+-----------------------+----------------------------------------------+
-| LXC/DRC Containers | Container VPP memif virtual interface tests |
-| Memif | with different VPP forwarding modes incl. |
-| | L2XC, L2BD. |
-+-----------------------+----------------------------------------------+
-| NAT44 | (Source) Network Address Translation |
-| | deterministic mode and endpoint-dependent |
-| | mode tests with varying number of users and |
-| | ports per user for IPv4. |
-+-----------------------+----------------------------------------------+
-| QoS Policer | Ingress packet rate measuring, marking and |
-| | limiting (IPv4). |
-+-----------------------+----------------------------------------------+
-| SRv6 Routing | Segment Routing IPv6 tests. |
-+-----------------------+----------------------------------------------+
-| VPP TCP/IP stack | Tests of VPP TCP/IP stack used with VPP |
-| | built-in HTTP server. |
-+-----------------------+----------------------------------------------+
-| VTS | Virtual Topology System use case tests |
-| | combining VXLAN overlay tunneling with L2BD, |
-| | ACL and KVM VM vhost-user features. |
-+-----------------------+----------------------------------------------+
-| VXLAN | VXLAN overlay tunnelling integration with |
-| | L2XC and L2BD. |
-+-----------------------+----------------------------------------------+
-
-Execution of performance tests takes time, especially the throughput
-tests. Due to limited HW testbed resources available within FD.io labs
-hosted by :abbr:`LF (Linux Foundation)`, the number of tests for some
-NIC models has been limited to few baseline tests.
-
-Performance Tests Naming
-------------------------
-
-FD.io |csit-release| follows a common structured naming convention for
-all performance and system functional tests, introduced in CSIT-17.01.
-
-The naming should be intuitive for majority of the tests. Complete
-description of FD.io CSIT test naming convention is provided on
-:ref:`csit_test_naming`.
diff --git a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-xxv710.rst
deleted file mode 100644
index 0451bd53cc..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,194 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-avf
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-memif-base-dpdk
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-skx-xxv710.rst
deleted file mode 100644
index 5965a513f9..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,194 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-avf
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-memif-base-dpdk
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-zn2-xxv710.rst
deleted file mode 100644
index b3504e36e3..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,194 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-avf
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-memif-base-dpdk
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/container_memif-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif-3n-skx-xxv710.rst
deleted file mode 100644
index 9b6c045c4e..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,132 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-dpdk
-------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1lxc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1lxc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1lxc}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1lxc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/container_memif-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif-3n-tsh-x520.rst
deleted file mode 100644
index 056c80b523..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-3n-tsh-x520.rst
+++ /dev/null
@@ -1,139 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr
- 10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2memif-1dcr
- 10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2memif-1lxc
- 10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc
- 10ge2p1x520-64b-1t1c-ethip4-ip4base-eth-2memif-1dcr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-1t1c-memif-base-ixgbe
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2memif-1dcr.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2memif-1lxc.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2memif-1lxc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2memif-1lxc}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2memif-1lxc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-eth-2memif-1dcr.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-eth-2memif-1dcr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/container_memif.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif.rst
deleted file mode 100644
index 767d6379bf..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-LXC/DRC Container Memif
-=======================
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/container_memif?h=rls2101>`_.
-
-.. toctree::
-
- container_memif-2n-skx-xxv710
- container_memif-3n-skx-xxv710
- container_memif-2n-clx-xxv710
- container_memif-2n-zn2-xxv710
- container_memif-3n-tsh-x520
diff --git a/docs/report/vpp_performance_tests/packet_latency/index.rst b/docs/report/vpp_performance_tests/packet_latency/index.rst
deleted file mode 100644
index bc98cbb4a6..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/index.rst
+++ /dev/null
@@ -1,58 +0,0 @@
-.. raw:: latex
-
- \clearpage
-
-.. _VPP_HDRH_Packet_Latency:
-
-Packet Latency
-==============
-
-VPP latency results are generated based on the test data obtained from
-|csit-release| NDR-PDR throughput tests executed across physical
-testbeds hosted in LF FD.io labs: 3n-hsw, 3n-skx, 2n- skx, 2n-clx,
-3n-dnv, 2n-dnv, 3n-tsh, 2n-tx2.
-
-Latency by percentile distribution plots are used to show packet latency
-percentiles at different packet rate load levels: i) No-Load latency
-streams only, ii) Low-Load at 10% PDR, iii) Mid-Load at 50% PDR and iv)
-High-Load at 90% PDR.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested DUT packet path.
-
-#. **X-axis Labels**: percentile of packets.
-
-#. **Y-axis Labels**: measured one-way packet latency values in [uSec].
-
-#. **Graph Legend**: list of latency tests at different packet rate load
- level.
-
-#. **Hover Information**: packet rate load level, stream direction
- (East-West, West-East), percentile, one-way latency.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_,
- `FD.io test executor vpp performance job 3n-skx`_,
- `FD.io test executor vpp performance job 2n-clx`_,
- `FD.io test executor vpp performance job 2n-zn2`_,
- `FD.io test executor vpp performance job 3n-hsw`_,
- `FD.io test executor vpp performance job 3n-tsh`_ and
- `FD.io test executor vpp performance job 2n-tx2`_ with RF
- result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. toctree::
- :maxdepth: 3
-
- l2
- ip4
- ip6
- srv6
- ip4_tunnels
- nat44
- vm_vhost
- container_memif
- ipsec
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-xxv710.rst
deleted file mode 100644
index fcd99f7764..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,501 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-features-avf
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4scale1000-udpsrcscale15-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4udp-ip4base-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-2n-skx-xxv710.rst
deleted file mode 100644
index 26843f407d..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,501 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4scale1000-udpsrcscale15-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-features-dpdk
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-ip4base-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-2n-tx2-xl710.rst
deleted file mode 100644
index a47c56ffff..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,237 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-ip4routing-base-dpdk
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-ip4routing-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-features-ip4routing-base-dpdk
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base-iacldstbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base-iacldstbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base-iacldstbase}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base-iacldstbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sl-10kflows}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-2n-zn2-xxv710.rst
deleted file mode 100644
index cfa0f83180..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,501 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-features-avf
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4scale1000-udpsrcscale15-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-ip4base}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale200k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4udp-ip4base-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-3n-hsw-xl710.rst
deleted file mode 100644
index 7c480ebd13..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,96 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 40ge2p1xl710-64b-1t1c-dot1q-ip4base
- 40ge2p1xl710-64b-1t1c-ethip4-ip4base
- 40ge2p1xl710-64b-1t1c-ethip4-ip4scale2m
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-ip4base.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4scale2m.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4scale2m}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-3n-skx-xxv710.rst
deleted file mode 100644
index 03964bacd3..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,340 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-ip4routing-features-avf
- --------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-nat44.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-nat44}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-nat44}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4scale1000-udpsrcscale15-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4scale1000-udpsrcscale15-nat44.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4scale1000-udpsrcscale15-nat44}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4scale1000-udpsrcscale15-nat44}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-dot1q-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-ip4base}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale2m}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-ethip4udp-ip4base-nat44" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-ip4base-nat44.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-ip4base-nat44}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-ip4base-nat44}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-3n-tsh-x520.rst
deleted file mode 100644
index a1987f3dc9..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-tsh-x520.rst
+++ /dev/null
@@ -1,194 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-1t1c-ip4routing-base-scale-ixgbe
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ip4base.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ip4base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ip4base}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale20k.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale200k.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale2m.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-ip4routing-features-ixgbe
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-oacl50sf-10kflows.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-oacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-oacl50sl-10kflows.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-oacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4udp-ip4base-oacl50sl-10kflows}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4.rst b/docs/report/vpp_performance_tests/packet_latency/ip4.rst
deleted file mode 100644
index ad67bdeee0..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPv4 Routing
-============
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip4?h=rls2101>`_.
-
-.. toctree::
-
- ip4-2n-skx-xxv710
- ip4-3n-skx-xxv710
- ip4-2n-clx-xxv710
- ip4-2n-zn2-xxv710
- ip4-3n-hsw-xl710
- ip4-3n-tsh-x520
- ip4-2n-tx2-xl710
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-hsw-xl710.rst
deleted file mode 100644
index 53f3ec77bd..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 40ge2p1xl710-64b-1t1c-ethip4vxlan-l2xcbase
- 40ge2p1xl710-64b-1t1c-ethip4vxlan-l2bdbasemaclrn
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-ip4tunnel-base-dpdk
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2xcbase.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2bdbasemaclrn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2bdbasemaclrn}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-skx-xxv710.rst
deleted file mode 100644
index 18406b6829..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,155 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4tunnel-base-avf
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-dot1q-ethip4vxlan-l2bdscale1l2bd1vlan1vxlan" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ethip4vxlan-l2bdscale1l2bd1vlan1vxlan.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ethip4vxlan-l2bdscale1l2bd1vlan1vxlan}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ethip4vxlan-l2bdscale1l2bd1vlan1vxlan}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-dot1q-ethip4vxlan-l2bdscale100l2bd100vlan100vxlan" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ethip4vxlan-l2bdscale100l2bd100vlan100vxlan.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ethip4vxlan-l2bdscale100l2bd100vlan100vxlan}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-ethip4vxlan-l2bdscale100l2bd100vlan100vxlan}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4tunnel-base-dpdk
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2bdbasemaclrn}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-tsh-x520.rst
deleted file mode 100644
index 4a9bc8e0c4..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-tsh-x520.rst
+++ /dev/null
@@ -1,118 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 10ge2p1x520-64b-1t1c-ethip4vxlan-l2xcbase
- 10ge2p1x520-64b-1t1c-ethip4vxlan-l2bdbasemaclrn
- 10ge2p1x520-64b-1t1c-dot1q-ethip4vxlan-l2bdscale1l2bd1vlan1vxlan
- 10ge2p1x520-64b-1t1c-dot1q-ethip4vxlan-l2bdscale100l2bd100vlan100vxlan
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-1t1c-ip4tunnel-base-scale-ixgbe
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2xcbase.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2bdbasemaclrn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2bdbasemaclrn}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ethip4vxlan-l2bdscale1l2bd1vlan1vxlan.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ethip4vxlan-l2bdscale1l2bd1vlan1vxlan.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ethip4vxlan-l2bdscale1l2bd1vlan1vxlan}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ethip4vxlan-l2bdscale1l2bd1vlan1vxlan}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ethip4vxlan-l2bdscale100l2bd100vlan100vxlan.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ethip4vxlan-l2bdscale100l2bd100vlan100vxlan.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ethip4vxlan-l2bdscale100l2bd100vlan100vxlan}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-ethip4vxlan-l2bdscale100l2bd100vlan100vxlan}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels.rst b/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels.rst
deleted file mode 100644
index 010e058e11..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPv4 Tunnels
-============
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip4_tunnels?h=rls2101>`_.
-
-.. toctree::
-
- ip4_tunnels-3n-skx-xxv710
- ip4_tunnels-3n-hsw-xl710
- ip4_tunnels-3n-tsh-x520
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-xxv710.rst
deleted file mode 100644
index 3d6ce4cae2..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,235 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-2n-skx-xxv710.rst
deleted file mode 100644
index 1d374af093..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,236 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-2n-tx2-xl710.rst
deleted file mode 100644
index fbe5ee79b4..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,151 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-dot1q-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-dot1q-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6base-iacldstbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6base-iacldstbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6base-iacldstbase}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6base-iacldstbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-78b-1t1c-ethip6-ip6scale2m}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-2n-zn2-xxv710.rst
deleted file mode 100644
index 5e1e558edd..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,235 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-dot1q-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-dot1q-ip6base}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-3n-hsw-xl710.rst
deleted file mode 100644
index 63d1977b72..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,96 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 40ge2p1xl710-78b-1t1c-dot1q-ip6base
- 40ge2p1xl710-78b-1t1c-ethip6-ip6base
- 40ge2p1xl710-78b-1t1c-ethip6-ip6scale2m
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-dot1q-ip6base.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-dot1q-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6-ip6base.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6-ip6scale2m.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6-ip6scale2m}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-3n-skx-xxv710.rst
deleted file mode 100644
index 418333cb2e..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,195 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-dot1q-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-dot1q-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-dot1q-ip6base}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-3n-tsh-x520.rst
deleted file mode 100644
index c830be897c..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-tsh-x520.rst
+++ /dev/null
@@ -1,139 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 10ge2p1x520-78b-1t1c-dot1q-ip6base
- 10ge2p1x520-78b-1t1c-ethip6-ip6base
- 10ge2p1x520-78b-1t1c-ethip6-ip6scale20k
- 10ge2p1x520-78b-1t1c-ethip6-ip6scale200k
- 10ge2p1x520-78b-1t1c-ethip6-ip6scale2m
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale-ixgbe
-------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-dot1q-ip6base.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-dot1q-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-dot1q-ip6base}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-dot1q-ip6base}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6base.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6base.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale20k.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale20k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale200k.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale200k.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale2m.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale2m.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6-ip6scale2m}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6.rst b/docs/report/vpp_performance_tests/packet_latency/ip6.rst
deleted file mode 100644
index 9576c91c4e..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPv6 Routing
-============
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip6?h=rls2101>`_.
-
-.. toctree::
-
- ip6-2n-skx-xxv710
- ip6-3n-skx-xxv710
- ip6-2n-clx-xxv710
- ip6-2n-zn2-xxv710
- ip6-3n-hsw-xl710
- ip6-3n-tsh-x520
- ip6-2n-tx2-xl710
diff --git a/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-hsw-xl710.rst
deleted file mode 100644
index f8a04c9774..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,247 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 40ge2p1xl710-1518b-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
- 40ge2p1xl710-1518b-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm
- 40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
- 40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-
- 40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
- 40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm
- 40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
- 40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
- 40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
- 40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-1518b-1t1c-ipsec-ip4routing-base-scale-sw-dpdk
-----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-1t1c-ipsec-ip4routing-base-scale-hw-dpdk
-----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-skx-xxv710.rst
deleted file mode 100644
index 2b70a0cf24..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,235 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-1518b-2t1c-ipsec-ip4routing-base-scale-sw-avf
----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ipsec-ip4routing-base-scale-sw-dpdk
-----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-tsh-x520.rst
deleted file mode 100644
index a44e01e373..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-tsh-x520.rst
+++ /dev/null
@@ -1,96 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 10ge2p1x520-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm
- 10ge2p1x520-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
- 10ge2p1x520-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-1518b-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe
------------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ipsec.rst b/docs/report/vpp_performance_tests/packet_latency/ipsec.rst
deleted file mode 100644
index 40c71398c2..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ipsec.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPSec IPv4 Routing
-==================
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/crypto?h=rls2101>`_.
-
-.. toctree::
-
- ipsec-3n-skx-xxv710
- ipsec-3n-hsw-xl710
- ipsec-3n-tsh-x520
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-xxv710.rst
deleted file mode 100644
index 365662c3b7..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,355 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2patch" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/l2-2n-skx-xxv710.rst
deleted file mode 100644
index e48f2f6a8f..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,356 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2patch" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/l2-2n-tx2-xl710.rst
deleted file mode 100644
index 9c1c12d563..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,297 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-l2switching-base-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2patch" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-l2switching-scale-dpdk
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale10kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale10kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale100kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale100kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale1mmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdscale1mmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-features-l2switching-base-dpdk
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/l2-2n-zn2-xxv710.rst
deleted file mode 100644
index 05fbbfbeac..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,355 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2patch" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/l2-3n-hsw-xl710.rst
deleted file mode 100644
index cc349c34fd..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,159 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 40ge2p1xl710-64b-1t1c-dot1q-l2xcbase
- 40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn
- 40ge2p1xl710-64b-1t1c-eth-l2patch
- 40ge2p1xl710-64b-1t1c-eth-l2xcbase
- 40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn
- 40ge2p1xl710-64b-1t1c-eth-l2bdscale1mmaclrn
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2patch.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdscale1mmaclrn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdscale1mmaclrn}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/l2-3n-skx-xxv710.rst
deleted file mode 100644
index 08152a0270..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,419 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2patch" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-l2switching-features-avf
- ---------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-iacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-iacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-iacl50sf-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-iacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-iacl50sl-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-oacl50sf-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-oacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-oacl50sf-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-oacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-oacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-oacl50sl-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-eth-l2patch" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-eth-l2xcbase" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_latency/l2-3n-tsh-x520.rst
deleted file mode 100644
index d8cb7d101b..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-3n-tsh-x520.rst
+++ /dev/null
@@ -1,310 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 10ge2p1x520-64b-1t1c-dot1q-l2xcbase
- 10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn
- 10ge2p1x520-64b-1t1c-eth-l2patch
- 10ge2p1x520-64b-1t1c-eth-l2xcbase
- 10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn
- 10ge2p1x520-64b-1t1c-eth-l2bdscale10kmaclrn
- 10ge2p1x520-64b-1t1c-eth-l2bdscale100kmaclrn
- 10ge2p1x520-64b-1t1c-eth-l2bdscale1mmaclrn
-
- 10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows
- 10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows
- 10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows
- 10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows
- 10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-1t1c-l2switching-base-scale-ixgbe
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2xcbase.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2patch.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2patch.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale10kmaclrn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale10kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale100kmaclrn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale100kmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale1mmaclrn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale1mmaclrn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdscale1mmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-features-l2switching-base-ixgbe
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2.rst b/docs/report/vpp_performance_tests/packet_latency/l2.rst
deleted file mode 100644
index 85e8a70fe1..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-L2 Ethernet Switching
-=====================
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/l2?h=rls2101>`_.
-
-.. toctree::
-
- l2-2n-skx-xxv710
- l2-3n-skx-xxv710
- l2-2n-clx-xxv710
- l2-2n-zn2-xxv710
- l2-3n-hsw-xl710
- l2-3n-tsh-x520
- l2-2n-tx2-xl710
diff --git a/docs/report/vpp_performance_tests/packet_latency/nat44-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/nat44-2n-clx-xxv710.rst
deleted file mode 100644
index d4f3eb27b0..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/nat44-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,298 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4udp-nat44det-avf
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ethip4udp-nat44det-dpdk
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ethip4udp-nat44ed-avf
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/nat44-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/nat44-2n-skx-xxv710.rst
deleted file mode 100644
index 545df697c1..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/nat44-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,298 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4udp-nat44det-avf
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1-p1-s1}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ethip4udp-nat44det-dpdk
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-ethip4udp-nat44det-h1-p1-s1}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ethip4udp-nat44ed-avf
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/nat44.rst b/docs/report/vpp_performance_tests/packet_latency/nat44.rst
deleted file mode 100644
index c7e30bbbab..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/nat44.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-NAT44 IPv4 Routing
-==================
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip4?h=rls2101>`_.
-
-.. toctree::
-
- nat44-2n-skx-xxv710
- nat44-2n-clx-xxv710
diff --git a/docs/report/vpp_performance_tests/packet_latency/srv6-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/srv6-3n-hsw-xl710.rst
deleted file mode 100644
index 0c2d6c2cee..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/srv6-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,160 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 40ge2p1xl710-78b-1t1c-ethip6ip6-ip6base-srv6enc1sid
- 40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids
- 40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps
- 40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn
- 40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-masq
- 40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-stat
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-78b-1t1c-srv6-ip6routing-base-dpdk
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6ip6-ip6base-srv6enc1sid.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6ip6-ip6base-srv6enc1sid.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6ip6-ip6base-srv6enc1sid}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6ip6-ip6base-srv6enc1sid}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-masq.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-masq.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-masq}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-masq}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-stat.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-stat.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-stat}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-stat}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/srv6-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/srv6-3n-skx-xxv710.rst
deleted file mode 100644
index c8bf1dbedb..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/srv6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,152 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-srv6-ip6routing-base-dpdk
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-dyn" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-dyn.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-dyn}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-dyn}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-masq" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-masq.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-masq}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-masq}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-stat" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-stat.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-stat}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-stat}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/srv6-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_latency/srv6-3n-tsh-x520.rst
deleted file mode 100644
index 75983fe696..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/srv6-3n-tsh-x520.rst
+++ /dev/null
@@ -1,160 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 10ge2p1x520-78b-1t1c-ethip6ip6-ip6base-srv6enc1sid
- 10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids
- 10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps
- 10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn
- 10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-masq
- 10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-stat
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-78b-1t1c-srv6-ip6routing-base-ixgbe
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6ip6-ip6base-srv6enc1sid.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6ip6-ip6base-srv6enc1sid.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6ip6-ip6base-srv6enc1sid}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6ip6-ip6base-srv6enc1sid}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-masq.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-masq.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-masq}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-masq}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-stat.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-stat.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-stat}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-78b-1t1c-ethip6srhip6-ip6base-srv6proxy-stat}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/srv6.rst b/docs/report/vpp_performance_tests/packet_latency/srv6.rst
deleted file mode 100644
index eb7ab0bbe7..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/srv6.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-SRv6 Routing
-============
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/srv6?h=rls2101>`_.
-
-.. toctree::
-
- srv6-3n-skx-xxv710
- srv6-3n-hsw-xl710
- srv6-3n-tsh-x520
-
-..
-
diff --git a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-xxv710.rst
deleted file mode 100644
index 3b2ae63d14..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,362 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base-avf-testpmd
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-testpmd
---------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-avf-vpp
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-vpp
-----------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-skx-xxv710.rst
deleted file mode 100644
index 22582fb695..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,362 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base-avf-testpmd
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-testpmd
---------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-avf-vpp
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-vpp
-----------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-zn2-xxv710.rst
deleted file mode 100644
index e9cceae47b..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,362 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base-avf-testpmd
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-testpmd
---------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-avf-vpp
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-vpp
-----------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-hsw-xl710.rst
deleted file mode 100644
index a6fd942203..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,222 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 40ge2p1xl710-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm
- 40ge2p1xl710-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
- 40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
- 40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
- 40ge2p1xl710-64b-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm
- 40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
- 40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
- 40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm
- 40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-vhost-base-dpdk
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4}
- \label{fig:hdrh-lat-percentile-3n-hsw-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-skx-xxv710.rst
deleted file mode 100644
index 35e1abeabd..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,481 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base-avf-testpmd
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-testpmd
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-avf-vpp
----------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-tsh-x520.rst
deleted file mode 100644
index 327d49e3aa..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-tsh-x520.rst
+++ /dev/null
@@ -1,160 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- 10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
- 10ge2p1x520-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
- 10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
- 10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
- 10ge2p1x520-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
- 10ge2p1x520-64b-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-1t1c-vhost-base-ixgbe
--------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-tsh-10ge2p1x520-64b-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/vm_vhost.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost.rst
deleted file mode 100644
index 8152d279a9..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _KVM_VMs_vhost:
-
-KVM VMs vhost-user
-==================
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/vm_vhost?h=rls2101>`_.
-
-.. toctree::
-
- vm_vhost-2n-skx-xxv710
- vm_vhost-3n-skx-xxv710
- vm_vhost-2n-clx-xxv710
- vm_vhost-2n-zn2-xxv710
- vm_vhost-3n-hsw-xl710
- vm_vhost-3n-tsh-x520
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-clx-cx556a.rst
deleted file mode 100644
index 56bfad81be..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-rdma-core
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-clx-xxv710.rst
deleted file mode 100644
index e7613d7533..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-avf
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-memif-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-memif-base-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-memif-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-memif-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-memif-base-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-memif-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-memif-base-dpdk
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-skx-xxv710.rst
deleted file mode 100644
index 8c944201f9..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-avf
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-memif-base-dpdk
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-zn2-cx556a.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-zn2-cx556a.rst
deleted file mode 100644
index 309e91b4d7..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-cx556a
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-rdma-core
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-zn2-xxv710.rst
deleted file mode 100644
index 632a3e8d2d..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-avf
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-memif-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-memif-base-avf-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-memif-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-memif-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-memif-base-avf-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-memif-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-memif-base-dpdk
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-3n-skx-xxv710.rst
deleted file mode 100644
index a93cce9ac3..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-avf
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-memif-base-dpdk
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-3n-tsh-x520.rst
deleted file mode 100644
index d774fb06d3..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-3n-tsh-x520.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-tsh-x520
- ### 64b-?t?c-memif-base-ixgbe
- 10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdr
- 10ge2p1x520-eth-l2xcbase-eth-2memif-1dcr-ndrpdr
- 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr
- 10ge2p1x520-ethip4-ip4base-eth-2memif-1dcr-ndrpdr
-
- Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr
- Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr
- Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr
- Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr
- Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-1t1c-memif-base-ixgbe
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-memif-base-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-memif-base-ixgbe-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-memif-base-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-memif-base-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-memif-base-ixgbe-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-memif-base-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif.rst
deleted file mode 100644
index 89c4884022..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-LXC/DRC Container Memif
-=======================
-
-Following sections include summary graphs of VPP Phy-to-Phy performance
-with Container memif Connections, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss). Performance is reported for VPP
-running in multiple configurations of VPP worker thread(s), a.k.a. VPP
-data plane thread(s), and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/container_memif?h=rls2101>`_.
-
-.. toctree::
-
- container_memif-2n-skx-xxv710
- container_memif-3n-skx-xxv710
- container_memif-2n-clx-xxv710
- container_memif-2n-clx-cx556a
- container_memif-2n-zn2-xxv710
- container_memif-2n-zn2-cx556a
- container_memif-3n-tsh-x520
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/index.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/index.rst
deleted file mode 100644
index 5e9627b081..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/index.rst
+++ /dev/null
@@ -1,160 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _VPP_Packet_Throughput:
-
-Packet Throughput
-=================
-
-Throughput graphs are generated based on the results data obtained from
-the |csit-release| test jobs. In order to verify benchmark results
-repeatibility selected, CSIT performance tests are executed multiple
-times (target: 10 times) on each physical testbed type. Box-and-Whisker
-plots are used to display variations in measured throughput values.
-
-Lists of tests selected for multiple execution and graphing are captured
-per testbed type in `test_select_list_{testbed_type}.md
-<https://git.fd.io/csit/tree/docs/job_specs>`_ files.
-
-Graphs are split into sections as follows:
-
-#. **Header 1**: VPP packet path and lookup types
-
- - **L2 Ethernet Switching**: L2 bridge-doman, L2 cross-connect and L2 patch
- - **IPv4 Routing**: IPv4 routing with /32 prefixes
- - **IPv6 Routing**: IPv6 routing with /128 prefixes
- - **SRv6 Routing**: SRv6 with IPv6 routing
- - **IPv4 Tunnels**: IPv4 overlay tunnels
- - **KVM VMs vhost-user**: KVM VMs connected over virtio and vhost-user interfaces
- - **LXC/DRC Container Memif**: Linux containers and Docker containers connected over Memif interfaces
- - **IPsec IPv4 Routing**: IPsec encryption/decryption with IPv4 routing
- - **Virtual Topology System**: VXLAN configurations with L2 bridge-domains
-
-#. **Header 2**: testbeds and NIC models
-
- - section name format:
-
- - {**testbed_type**}-{**nic_model**}
-
- - **testbed_type**:
-
- - 2n-skx: 2-node Xeon Skylake
- - 3n-skx: 3-node Xeon Skylake
- - 2n-clx: 2-node Xeon Cascade Lake
- - 3n-hsw: 3-node Xeon Haswell
- - 3n-tsh: 3-node Arm TaiShan
- - 2n-tx2: 2-node Arm ThunderX2
- - 2n-dnv: 2-node Atom Denverton
- - 3n-dnv: 3-node Atom Denverton
-
- - **nic_model**:
-
- - xxv710: xxv710 2p25GE Intel (Fortville)
- - x710: x710 4p10GE Intel (Fortville)
- - xl710: xl710 2p40GE Intel (Fortville)
- - x520: x520 2p10GE Intel (Niantic)
- - x553: x553 2p10GE Intel (Niantic)
-
-#. **Header 3**: test group names
-
- - section name format:
-
- - {**frame_size**}-{**worker_thread_core_cfg**}-{**vpp_functionality**}-{**vpp_lookup_type**}-{**baseline_scale**}-{**nic_driver**}
-
- - **frame_size**:
-
- - 64b: 64 byte frames, smallest frame size for untagged IPv4 packets
- - 78b: 78 byte frames, smallest frame size for untagged IPv6 packets
- - 114b: VXLAN encapsulated L2 frames
- - imix: a sequence of (7x64B, 4x570, 1x1518) byte frames
-
- - **worker_thread_core_cfg**:
-
- - 1t1c: 1 worker thread on 1 core, hyper-threading not used
- - 2t1c: 2 worker threads on 1 core, hyper-threading used
-
- - **vpp_functionality** (optional):
-
- - features: including input-acl, output-acl, macip-iacl, nat44
- - srv6: srv6 encap/decap, proxy
- - link-bonding: L2 link aggregation with 1 or 2 bonded links
- - ipsec: IPsec encryption/decryption with different ciphers
- - vts: Virtual Topology System specific tests
-
- - **vpp_lookup_type**:
-
- - l2switching, ip4routing, ip6routing, ip4tunnel, vhost, memif
-
- - **baseline_scale**:
-
- - base: baseline tests with less than 10 forwarding entries
- - scale: scale tests with up to 2 million forwarding entries
- - base-scale: both baseline and scale tests grouped together
-
- - **nic_driver**:
-
- - avf: VPP native avf driver for Intel Fortville NICs
- - i40e: dpdk poll mode driver for Intel Fortville NICs
- - ixgbe: dpdk poll mode driver for Intel Niantic NICs
-
-For each test case, Box-and-Whisker plots show the quartiles (Min, 1st
-quartile / 25th percentile, 2nd quartile / 50th percentile / mean, 3rd
-quartile / 75th percentile, Max) across collected data set. Outliers are
-plotted as individual points.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested packet path, testbed topology,
- processor model, NIC model, packet size, number of cores and
- threads used by data plane workers and indication of VPP DUT
- configuration.
-
-#. **X-axis Labels**: indices of individual test suites as listed in
- Graph Legend.
-
-#. **Y-axis Labels**: measured Packets Per Second [pps] throughput
- values.
-
-#. **Graph Legend**: lists X-axis indices with associated CSIT test
- suites executed to generate graphed test results.
-
-#. **Hover Information**: lists minimum, first quartile, median,
- third quartile, and maximum. If either type of outlier is present the
- whisker on the appropriate side is taken to 1.5×IQR from the quartile
- (the "inner fence") rather than the max or min, and individual outlying
- data points are displayed as unfilled circles (for suspected outliers)
- or filled circles (for outliers). (The "outer fence" is 3×IQR from the
- quartile.)
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_,
- `FD.io test executor vpp performance job 3n-skx`_,
- `FD.io test executor vpp performance job 2n-clx`_,
- `FD.io test executor vpp performance job 2n-zn2`_,
- `FD.io test executor vpp performance job 3n-hsw`_,
- `FD.io test executor vpp performance job 3n-tsh`_,
- `FD.io test executor vpp performance job 2n-tx2`_,
- `FD.io test executor vpp performance job 2n-dnv`_ and
- `FD.io test executor vpp performance job 3n-dnv`_ with RF
- result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
- Required per test case data set size is **10**, but for VPP tests
- the actual size varies per test case and is <=10.
-
-.. toctree::
- :maxdepth: 3
-
- l2
- ip4
- ip6
- srv6
- ip4_tunnels
- nat44
- vm_vhost
- container_memif
- ipsec
- vts
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-cx556a.rst
deleted file mode 100644
index e619625806..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-rdma-core
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-ip4base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-ip4base-ndr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-ip4base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-ip4base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-ip4base-pdr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-ip4base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-scale-rdma-core
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-features
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-ndr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-pdr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-x710.rst
deleted file mode 100644
index 8a75b0cbea..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-x710
-~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-[avf,dpdk]
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr}
- \label{fig:2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr}
- \label{fig:2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-xxv710.rst
deleted file mode 100644
index 122180f29c..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,286 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-scale-avf-rnd
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-scale-dpdk-rnd
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-features-ip4routing-base-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-features-ip4routing-base-dpdk
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-dnv-x553.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-dnv-x553.rst
deleted file mode 100644
index ff9f9a042c..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-dnv-x553.rst
+++ /dev/null
@@ -1,144 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ### 64b-?t?c-ip4routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip4base-ndrpdr
- 10ge2p1x520-ethip4-ip4base-ndrpdr
- 10ge2p1x520-ethip4-ip4scale20k-ndrpdr
- 10ge2p1x520-ethip4-ip4scale200k-ndrpdr
- 10ge2p1x520-ethip4-ip4scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr
-
- ### 64b-?t?c-features-ip4routing-base-ixgbe
- 10ge2p1x520-ethip4-ip4base-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-nat44-ndrpdr
-
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-1t1c-ethip4udp-ip4base-nat44-ndrpdr
-
-2n-dnv-x553
-~~~~~~~~~~~
-
-64b-1t1c-ip4routing-base-scale-ixgbe
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr}
- \label{fig:2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr}
- \label{fig:2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-1t1c-features-ip4routing-base-ixgbe
- ---------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr}
- \label{fig:2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr}
- \label{fig:2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-skx-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-skx-x710.rst
deleted file mode 100644
index 80f02e85cc..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-x710
-~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-[avf,dpdk]
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr}
- \label{fig:2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr}
- \label{fig:2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-skx-xxv710.rst
deleted file mode 100644
index 8ed23f1774..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,280 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-features-ip4routing-base-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-features-ip4routing-base-dpdk
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-tx2-xl710.rst
deleted file mode 100644
index 6e5e8d95de..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-features-ip4routing-base-dpdk
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-cx556a.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-cx556a.rst
deleted file mode 100644
index 0b3156f67d..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-cx556a
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-rdma-core
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-ip4base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-ip4base-ndr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-ip4base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-ip4base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-ip4base-pdr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-ip4base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-scale-rdma-core
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-features
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-ndr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-pdr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-x710.rst
deleted file mode 100644
index 0a6337f79e..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-x710
-~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-[avf,dpdk]
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr}
- \label{fig:2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr}
- \label{fig:2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-xxv710.rst
deleted file mode 100644
index 49b6974ddc..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,286 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-scale-avf-rnd
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-scale-dpdk-rnd
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-features-ip4routing-base-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-features-ip4routing-base-dpdk
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-dnv-x553.rst
deleted file mode 100644
index dcd9994c67..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-dnv-x553.rst
+++ /dev/null
@@ -1,144 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ### 64b-?t?c-ip4routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip4base-ndrpdr
- 10ge2p1x520-ethip4-ip4base-ndrpdr
- 10ge2p1x520-ethip4-ip4scale20k-ndrpdr
- 10ge2p1x520-ethip4-ip4scale200k-ndrpdr
- 10ge2p1x520-ethip4-ip4scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr
-
- ### 64b-?t?c-features-ip4routing-base-ixgbe
- 10ge2p1x520-ethip4-ip4base-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-nat44-ndrpdr
-
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-1t1c-ethip4udp-ip4base-nat44-ndrpdr
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-64b-1t1c-ip4routing-base-scale-ixgbe
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr}
- \label{fig:3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr}
- \label{fig:3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-1t1c-features-ip4routing-base-ixgbe
- ---------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr}
- \label{fig:3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr}
- \label{fig:3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-hsw-xl710.rst
deleted file mode 100644
index dc31acb1c8..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-hsw-xl710
- ### 64b-?t?c-ip4routing-base-scale-dpdk
- 10ge2p1xl710-dot1q-ip4base-ndrpdr
- 10ge2p1xl710-ethip4-ip4base-ndrpdr
- 10ge2p1xl710-ethip4-ip4scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr}
- \label{fig:3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr}
- \label{fig:3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-skx-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-skx-x710.rst
deleted file mode 100644
index 396690246b..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-x710
-~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \label{fig:3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \label{fig:3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-skx-xxv710.rst
deleted file mode 100644
index 6f4047407d..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,201 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-features-ip4routing-base-avf
- -------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-features-ip4routing-base-dpdk
- --------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-tsh-x520.rst
deleted file mode 100644
index f7e28621e5..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-tsh-x520.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-1t1c-ip4routing-base-scale-ixgbe
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-features-ip4routing-base-ixgbe
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4.rst
deleted file mode 100644
index 1358583585..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPv4 Routing
-============
-
-Following sections include summary graphs of VPP Phy-to-Phy performance
-with IPv4 Routed-Forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss). Performance is reported for VPP
-running in multiple configurations of VPP worker thread(s), a.k.a. VPP
-data plane thread(s), and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip4?h=rls2101>`_.
-
-.. toctree::
-
- ip4-2n-skx-xxv710
- ip4-2n-skx-x710
- ip4-3n-skx-xxv710
- ip4-3n-skx-x710
- ip4-2n-clx-xxv710
- ip4-2n-clx-x710
- ip4-2n-clx-cx556a
- ip4-2n-zn2-xxv710
- ip4-2n-zn2-x710
- ip4-2n-zn2-cx556a
- ip4-3n-hsw-xl710
- ip4-3n-tsh-x520
- ip4-2n-tx2-xl710
- ip4-2n-dnv-x553
- ip4-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-dnv-x553.rst
deleted file mode 100644
index 4f875be468..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-dnv-x553.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-..
- ## 3n-dnv-x553
- ### 64b-?t?c-ip4tunnel-base-scale-ixgbe
- 10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdr
- 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr
-
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-64b-1t1c-ip4tunnel-base-scale-ixgbe
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr}
- \label{fig:3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr}
- \label{fig:3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-hsw-xl710.rst
deleted file mode 100644
index 3561f5ec99..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,80 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-hsw-xl710
- ### 64b-?t?c-ip4tunnel-base-dpdk
- 10ge2p1xl710-ethip4vxlan-l2xcbase-ndrpdr
- 10ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-ndrpdr
-
- Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-ip4tunnel-base-dpdk
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr}
- \label{fig:3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr}
- \label{fig:3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-skx-xxv710.rst
deleted file mode 100644
index 4fb6e7683d..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4tunnel-base-scale-avf
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4tunnel-base-scale-dpdk
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-tsh-x520.rst
deleted file mode 100644
index de5992a638..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-tsh-x520.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-..
- ## 3n-tsh-x520
- ### 64b-?t?c-ip4tunnel-base-scale-ixgbe
- 10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdr
- 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr
-
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-1t1c-ip4tunnel-base-scale-ixgbe
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels.rst
deleted file mode 100644
index d723e73896..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPv4 Tunnels
-============
-
-Following sections include summary graphs of VPP Phy-to-Phy performance
-with IPv4 Overlay Tunnels, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss). Performance is reported for VPP
-running in multiple configurations of VPP worker thread(s), a.k.a. VPP
-data plane thread(s), and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip4_tunnels?h=rls2101>`_.
-
-.. toctree::
-
- ip4_tunnels-3n-skx-xxv710
- ip4_tunnels-3n-hsw-xl710
- ip4_tunnels-3n-tsh-x520
- ip4_tunnels-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-cx556a.rst
deleted file mode 100644
index cb8a970023..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-rdma-core
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr}
- \label{fig:2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr}
- \label{fig:2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-x710.rst
deleted file mode 100644
index 7b2dae86de..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-x710
-~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-[avf,dpdk]
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr}
- \label{fig:2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr}
- \label{fig:2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-xxv710.rst
deleted file mode 100644
index 378dd96104..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,115 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \label{fig:2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \label{fig:2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr}
- \label{fig:2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr}
- \label{fig:2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-dnv-x553.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-dnv-x553.rst
deleted file mode 100644
index 82a58ca17b..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-dnv-x553.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 2n-dnv-x553
- ### 78b-?t?c-ip6routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6scale20k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale200k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr
- Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr
- Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr
-
-2n-dnv-x553
-~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale-ixgbe
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr}
- \label{fig:2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr}
- \label{fig:2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-skx-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-skx-x710.rst
deleted file mode 100644
index efffe6bdd3..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-x710
-~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-[avf,dpdk]
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr}
- \label{fig:2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr}
- \label{fig:2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-skx-xxv710.rst
deleted file mode 100644
index a5b0d3daa9..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \label{fig:2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \label{fig:2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr}
- \label{fig:2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr}
- \label{fig:2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-tx2-xl710.rst
deleted file mode 100644
index 33a7b7587c..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr}
- \label{fig:2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr}
- \label{fig:2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-cx556a.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-cx556a.rst
deleted file mode 100644
index f2a29a7352..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-cx556a
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-rdma-core
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr}
- \label{fig:2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr}
- \label{fig:2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-x710.rst
deleted file mode 100644
index c7525ed7bc..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-x710
-~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-[avf,dpdk]
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr}
- \label{fig:2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr}
- \label{fig:2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-xxv710.rst
deleted file mode 100644
index c8e42c5cb5..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,115 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \label{fig:2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \label{fig:2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr}
- \label{fig:2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr}
- \label{fig:2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-dnv-x553.rst
deleted file mode 100644
index 5fb5ef78e0..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-dnv-x553.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-dnv-x553
- ### 78b-?t?c-ip6routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6scale20k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale200k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale-ixgbe
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr}
- \label{fig:3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr}
- \label{fig:3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-hsw-xl710.rst
deleted file mode 100644
index 64caed25fb..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr}
- \label{fig:3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr}
- \label{fig:3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-skx-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-skx-x710.rst
deleted file mode 100644
index 4329c4d4e0..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-x710
-~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \label{fig:3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \label{fig:3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-skx-xxv710.rst
deleted file mode 100644
index f96b4c8536..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \label{fig:3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \label{fig:3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr}
- \label{fig:3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr}
- \label{fig:3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-tsh-x520.rst
deleted file mode 100644
index 19e8514843..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-tsh-x520.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-tsh-x520
- ### 78b-?t?c-ip6routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6scale20k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale200k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale-ixgbe
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-ndr}
- \label{fig:3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-pdr}
- \label{fig:3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6.rst
deleted file mode 100644
index b31f3ad818..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPv6 Routing
-============
-
-Following sections include summary graphs of VPP Phy-to-Phy performance
-with IPv6 Routed-Forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss). Performance is reported for VPP
-running in multiple configurations of VPP worker thread(s), a.k.a. VPP
-data plane thread(s), and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip6?h=rls2101>`_.
-
-.. toctree::
-
- ip6-2n-skx-xxv710
- ip6-2n-skx-x710
- ip6-3n-skx-xxv710
- ip6-3n-skx-x710
- ip6-2n-clx-xxv710
- ip6-2n-clx-x710
- ip6-2n-clx-cx556a
- ip6-2n-zn2-xxv710
- ip6-2n-zn2-x710
- ip6-2n-zn2-cx556a
- ip6-3n-hsw-xl710
- ip6-3n-tsh-x520
- ip6-2n-tx2-xl710
- ip6-2n-dnv-x553
- ip6-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-dnv-x553.rst
deleted file mode 100644
index 5e763161c2..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-dnv-x553.rst
+++ /dev/null
@@ -1,88 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-dnv-x553
- ### imix-?t?c-ipsec-ip4routing-base-scale-sw-ixgbe
- 10ge2p1x520-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1x520-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- 10ge2p1x520-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1x520-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- 10ge2p1x520-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1x520-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe
-----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr}
- \label{fig:3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr}
- \label{fig:3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-hsw-xl710.rst
deleted file mode 100644
index adc855f9e3..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,142 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-hsw-xl710
- ### imix-?t?c-ipsec-ip4routing-base-scale-sw-dpdk
- 10ge2p1xl710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1xl710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- 10ge2p1xl710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1xl710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- 10ge2p1xl710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1xl710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
- Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
- ### imix-?t?c-ipsec-ip4routing-base-scale-hw-dpdk
- 10ge2p1xl710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1xl710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- 10ge2p1xl710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr - missing
- 10ge2p1xl710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr - missing
-
- Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk
----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr}
- \label{fig:3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr}
- \label{fig:3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk
----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr}
- \label{fig:3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-pdr}
- \label{fig:3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-skx-xxv710.rst
deleted file mode 100644
index ddd977d0ba..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-imix-2t1c-ipsec-ip4routing-base-scale-avf
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-ndr}
- \label{fig:3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-pdr}
- \label{fig:3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-2t1c-ipsec-ip4routing-base-scale-dpdk
-------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr}
- \label{fig:3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr}
- \label{fig:3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk
--------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="201" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr}
- \label{fig:3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="202" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr}
- \label{fig:3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-tsh-x520.rst
deleted file mode 100644
index b325c1a4fd..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-tsh-x520.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe
-----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr}
- \label{fig:3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr}
- \label{fig:3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec.rst
deleted file mode 100644
index 4fafa27b04..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPSec IPv4 Routing
-==================
-
-Following sections include summary graphs of VPP Phy-to-Phy performance with
-IPSec encryption used in combination with IPv4 routed-forwarding,
-including NDR throughput (zero packet loss) and PDR throughput (<0.5%
-packet loss). VPP IPSec encryption is accelerated using DPDK cryptodev
-library driving Intel Quick Assist (QAT) crypto PCIe hardware cards.
-Performance is reported for VPP running in multiple configurations of
-VPP worker thread(s), a.k.a. VPP data plane thread(s), and their
-physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/crypto?h=rls2101>`_.
-
-.. toctree::
-
- ipsec-3n-skx-xxv710
- ipsec-3n-hsw-xl710
- ipsec-3n-tsh-x520
- ipsec-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-cx556a.rst
deleted file mode 100644
index 9957483687..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-rdma-core
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-ndr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-pdr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-scale-rdma-core
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-ndr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-pdr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-x710.rst
deleted file mode 100644
index dc7ee37a36..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-x710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-x710
-~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \label{fig:2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \label{fig:2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \label{fig:2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \label{fig:2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-xxv710.rst
deleted file mode 100644
index 57504de78a..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-l2switching-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-l2switching-base-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-l2switching-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-l2switching-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-l2switching-base-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-l2switching-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="121" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="122" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-dnv-x553.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-dnv-x553.rst
deleted file mode 100644
index 94ddd24e9c..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-dnv-x553.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-dnv-x553
-~~~~~~~~~~~
-
-64b-1t1c-l2switching-base-scale-ixgbe
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr}
- \label{fig:2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr}
- \label{fig:2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-skx-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-skx-x710.rst
deleted file mode 100644
index 1ab275be1b..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-x710
-~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-scale-[avf,dpdk]
-------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-ndr}
- \label{fig:2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-pdr}
- \label{fig:2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-skx-xxv710.rst
deleted file mode 100644
index ad4bda2108..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-tx2-xl710.rst
deleted file mode 100644
index 29bcca1f8f..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-l2switching-base-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-l2switching-scale-dpdk
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="011" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="021" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-features-l2switching-base-dpdk
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-cx556a.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-cx556a.rst
deleted file mode 100644
index c46414af64..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-cx556a
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-rdma-core
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-ndr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-pdr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-scale-rdma-core
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-ndr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-pdr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-x710.rst
deleted file mode 100644
index 6dad3a9edb..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-x710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-x710
-~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \label{fig:2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \label{fig:2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \label{fig:2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \label{fig:2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-xxv710.rst
deleted file mode 100644
index 98250837ef..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="121" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="122" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-dnv-x553.rst
deleted file mode 100644
index 71af0723bd..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-dnv-x553.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-64b-1t1c-l2switching-base-scale-ixgbe
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr}
- \label{fig:3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr}
- \label{fig:3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-hsw-xl710.rst
deleted file mode 100644
index 34ac7dd3d7..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-ndr}
- \label{fig:3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-pdr}
- \label{fig:3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-skx-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-skx-x710.rst
deleted file mode 100644
index 587ec31596..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-x710
-~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \label{fig:3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \label{fig:3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-skx-xxv710.rst
deleted file mode 100644
index d59972f1b1..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,284 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-features-l2switching-base-avf
- --------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="31" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="32" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-pdr}
- \end{figure}
-
-..
- 64b-2t1c-features-l2switching-base-dpdk
- ---------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="331" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="332" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-tsh-x520.rst
deleted file mode 100644
index 309dfd10e2..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-tsh-x520.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-tsh-x520
- ### 64b-?t?c-l2switching-base-ixgbe
- 10ge2p1x520-dot1q-l2xcbase-ndrpdr
- 10ge2p1x520-eth-l2xcbase-ndrpdr
- 10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-ndrpdr
-
- Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr
-
- ### 64b-?t?c-l2switching-base-scale-ixgbe
- 10ge2p1x520-eth-l2patch-ndrpdr
- 10ge2p1x520-eth-l2xcbase-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-ndrpdr
- 10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdr
- 10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdr
- 10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdr
-
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr
-
- ### 64b-?t?c-features-l2switching-base-ixgbe
- 10ge2p1x520-eth-l2bdbasemaclrn-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr
-
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-1t1c-l2switching-base-ixgbe
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-l2switching-base-scale-ixgbe
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-features-l2switching-base-ixgbe
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="31" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="32" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst
deleted file mode 100644
index 747e1f6971..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-L2 Ethernet Switching
-=====================
-
-Following sections include summary graphs of VPP Phy-to-Phy performance
-with L2 Ethernet switching, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss). Performance is reported for VPP
-running in multiple configurations of VPP worker thread(s), a.k.a. VPP
-data plane thread(s), and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/l2?h=rls2101>`_.
-
-.. toctree::
-
- l2-2n-skx-xxv710
- l2-2n-skx-x710
- l2-3n-skx-xxv710
- l2-3n-skx-x710
- l2-2n-clx-xxv710
- l2-2n-clx-x710
- l2-2n-clx-cx556a
- l2-2n-zn2-xxv710
- l2-2n-zn2-x710
- l2-2n-zn2-cx556a
- l2-3n-hsw-xl710
- l2-3n-tsh-x520
- l2-2n-tx2-xl710
- l2-2n-dnv-x553
- l2-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir-2n-clx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir-2n-clx.rst
deleted file mode 100644
index ec56e7f4fc..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="01p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir-2n-skx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir-2n-skx.rst
deleted file mode 100644
index 48e88f4040..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="01p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir.rst
deleted file mode 100644
index e30d6685ae..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Det BiDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-det-bidir-2n-clx
- nat44-det-bidir-2n-skx
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps-2n-clx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps-2n-clx.rst
deleted file mode 100644
index c0e55645fc..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-cps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="07p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps-2n-skx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps-2n-skx.rst
deleted file mode 100644
index 9704af80e8..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-cps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="07p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps.rst
deleted file mode 100644
index 1a86b99e25..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED TCP CPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-tcp-cps-2n-clx
- nat44-ed-tcp-cps-2n-skx
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps-2n-clx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps-2n-clx.rst
deleted file mode 100644
index 77553db453..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-pps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="08n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="08p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps-2n-skx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps-2n-skx.rst
deleted file mode 100644
index 266f5d5725..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-pps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="08n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="08p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps.rst
deleted file mode 100644
index 7b86eabef4..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-pps.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED TCP PPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-tcp-pps-2n-clx
- nat44-ed-tcp-pps-2n-skx
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps-2n-clx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps-2n-clx.rst
deleted file mode 100644
index 9139b280b3..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-cps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="03p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps-2n-skx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps-2n-skx.rst
deleted file mode 100644
index d7cf06e09e..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-cps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="03p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps.rst
deleted file mode 100644
index 795d2d0d78..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UDP CPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-cps-2n-clx
- nat44-ed-udp-cps-2n-skx
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps-2n-clx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps-2n-clx.rst
deleted file mode 100644
index 91600e6ddc..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-pps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps-2n-skx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps-2n-skx.rst
deleted file mode 100644
index 58d187ce46..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-pps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps.rst
deleted file mode 100644
index b02f0b28b3..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-pps.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UDP PPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-pps-2n-clx
- nat44-ed-udp-pps-2n-skx
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir-2n-clx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir-2n-clx.rst
deleted file mode 100644
index 3893362c22..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="02n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir-2n-skx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir-2n-skx.rst
deleted file mode 100644
index 644e47470a..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="02n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir.rst
deleted file mode 100644
index 2f1dd19725..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UniDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-unidir-2n-clx
- nat44-ed-unidir-2n-skx
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44.rst
deleted file mode 100644
index 710e9ef3e5..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-NAT44 IPv4 Routing
-==================
-
-Following sections include summary graphs of VPP Phy-to-Phy performance
-with IPv4 Routed-Forwarding, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss). Performance is reported for VPP
-running in multiple configurations of VPP worker thread(s), a.k.a. VPP
-data plane thread(s), and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip4?h=rls2101>`_.
-
-.. toctree::
-
- nat44-det-bidir
- nat44-ed-unidir
- nat44-ed-udp-cps
- nat44-ed-tcp-cps
- nat44-ed-udp-pps
- nat44-ed-tcp-pps
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-dnv-x553.rst
deleted file mode 100644
index c206321705..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-dnv-x553.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-dnv-x553
- ### 78b-?t?c-srv6-ip6routing-base-ixgbe
- 10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
- Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-78b-1t1c-srv6-ip6routing-base-ixgbe
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr}
- \label{fig:3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr}
- \label{fig:3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-hsw-xl710.rst
deleted file mode 100644
index ef77b7e8e6..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,88 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-hsw-xl710
- ### 78b-?t?c-srv6-ip6routing-base-dpdk
- 10ge2p1xl710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- 10ge2p1xl710-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- 10ge2p1xl710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
- 10ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
- 10ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
- 10ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
- Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
- Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
- Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
- Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-78b-1t1c-srv6-ip6routing-base-dpdk
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-ndr}
- \label{fig:3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-pdr}
- \label{fig:3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-skx-xxv710.rst
deleted file mode 100644
index 8c6783571c..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,111 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-srv6-ip6routing-base-avf
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-ndr}
- \label{fig:3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-pdr}
- \label{fig:3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-pdr}
- \end{figure}
-
-..
- 78b-2t1c-srv6-ip6routing-base-dpdk
- ----------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-ndr}
- \label{fig:3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-pdr}
- \label{fig:3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-tsh-x520.rst
deleted file mode 100644
index ee4f136ebb..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-tsh-x520.rst
+++ /dev/null
@@ -1,88 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-tsh-x520
- ### 78b-?t?c-srv6-ip6routing-base-ixgbe
- 10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-78b-1t1c-srv6-ip6routing-base-ixgbe
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr}
- \label{fig:3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr}
- \label{fig:3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6.rst
deleted file mode 100644
index a5ce6f685a..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-SRv6 Routing
-============
-
-Following sections include summary graphs of VPP Phy-to-Phy performance
-with SRv6, including NDR throughput (zero packet loss)
-and PDR throughput (<0.5% packet loss). Performance is reported for VPP
-running in multiple configurations of VPP worker thread(s), a.k.a. VPP
-data plane thread(s), and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/srv6?h=rls2101>`_.
-
-.. toctree::
-
- srv6-3n-skx-xxv710
- srv6-3n-hsw-xl710
- srv6-3n-tsh-x520
- srv6-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-cx556a.rst
deleted file mode 100644
index fee65becbd..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base-rdma-core-testpmd
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-rdma-core-vpp
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr}
- \label{fig:2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-xxv710.rst
deleted file mode 100644
index 93b32076de..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base-avf-testpmd
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-vhost-base-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-vhost-base-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-avf-vpp
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-testpmd
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-vpp
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-skx-xxv710.rst
deleted file mode 100644
index 77cf803d05..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,201 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-
-64b-2t1c-vhost-base-avf-testpmd
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-vpp
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-testpmd
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-vpp
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-zn2-cx556a.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-zn2-cx556a.rst
deleted file mode 100644
index 23c7bf3417..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-cx556a
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base-rdma-core-testpmd
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-rdma-core-vpp
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr}
- \label{fig:2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-zn2-xxv710.rst
deleted file mode 100644
index c5382018a0..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base-avf-testpmd
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-vhost-base-avf-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-vhost-base-avf-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-avf-vpp
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-testpmd
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-vpp
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-hsw-xl710.rst
deleted file mode 100644
index 933011b9b8..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-vhost-base-dpdk-testpmd
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-ndr}
- \label{fig:3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-pdr}
- \label{fig:3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-vhost-base-dpdk-vpp
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-ndr}
- \label{fig:3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-pdr}
- \label{fig:3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-skx-x710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-skx-x710.rst
deleted file mode 100644
index 1128151b6a..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-skx-x710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-x710
-~~~~~~~~~~~
-
-64b-2t1c-link-bonding-vhost-base-avf-testpmd
---------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-ndr}
- \label{fig:3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-pdr}
- \label{fig:3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-link-bonding-vhost-base-avf-vpp
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr}
- \label{fig:3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr}
- \label{fig:3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-skx-xxv710.rst
deleted file mode 100644
index f98c396dc3..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,374 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base-avf-testpmd
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-dpdk-testpmd
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-avf-vpp
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-vhost-base-dpdk-vpp
- ----------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-link-bonding-vhost-base-avf-testpmd
---------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-link-bonding-vhost-base-avf-vpp
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="31" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="32" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-link-bonding-vhost-base-dpdk-testpmd
- ---------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="421" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="422" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-link-bonding-vhost-base-dpdk-vpp
- -----------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="431" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-vpp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-vpp-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-vpp-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="432" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-vpp-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-dpdk-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-tsh-x520.rst
deleted file mode 100644
index e5dfd74d00..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-tsh-x520.rst
+++ /dev/null
@@ -1,158 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-1t1c-vhost-base-ixgbe
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-vhost-base-ixgbe-vppl2xc
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-pdr}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-1t1c-link-bonding-vhost-base-ixgbe
- --------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-ndr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-pdr.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-link-bonding-vhost-base-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst
deleted file mode 100644
index 6db3facf30..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _KVM_VMs_vhost:
-
-KVM VMs vhost-user
-==================
-
-Following sections include summary graphs of VPP Phy-to-VM(s)-to-Phy
-performance with VM virtio and VPP vhost-user virtual interfaces,
-including NDR throughput (zero packet loss) and PDR throughput (<0.5%
-packet loss). Performance is reported for VPP running in multiple
-configurations of VPP worker thread(s), a.k.a. VPP data plane thread(s),
-and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/vm_vhost?h=rls2101>`_.
-
-.. toctree::
-
- vm_vhost-2n-skx-xxv710
- vm_vhost-3n-skx-xxv710
- vm_vhost-3n-skx-x710
- vm_vhost-2n-clx-xxv710
- vm_vhost-2n-clx-cx556a
- vm_vhost-2n-zn2-xxv710
- vm_vhost-2n-zn2-cx556a
- vm_vhost-3n-hsw-xl710
- vm_vhost-3n-tsh-x520
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-clx-xxv710.rst
deleted file mode 100644
index 790287d940..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-114b-2t1c-vts-l2switching-base-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr}
- \label{fig:2n-clx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr}
- \label{fig:2n-clx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-skx-xxv710.rst
deleted file mode 100644
index 5977b5817d..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-114b-2t1c-vts-l2switching-base-[avf,dpdk]
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr}
- \label{fig:2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr}
- \label{fig:2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-zn2-xxv710.rst
deleted file mode 100644
index 0b297dc014..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vts-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-114b-2t1c-vts-l2switching-base-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr}
- \label{fig:2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr}
- \label{fig:2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vts.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vts.rst
deleted file mode 100644
index 4a1c6b1110..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vts.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Virtual Topology System
-=======================
-
-Following sections include summary graphs of VPP Phy-to-VM(s)-to-Phy
-performance with VM virtio and VPP vhost-user virtual interfaces,
-including NDR throughput (zero packet loss) and PDR throughput (<0.5%
-packet loss). Performance is reported for VPP running in multiple
-configurations of VPP worker thread(s), a.k.a. VPP data plane thread(s),
-and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/vts?h=rls2101>`_.
-
-.. toctree::
-
- vts-2n-skx-xxv710
- vts-2n-clx-xxv710
- vts-2n-zn2-xxv710
diff --git a/docs/report/vpp_performance_tests/reconf_tests/index.rst b/docs/report/vpp_performance_tests/reconf_tests/index.rst
deleted file mode 100644
index c5da438b29..0000000000
--- a/docs/report/vpp_performance_tests/reconf_tests/index.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _reconfiguration_tests:
-
-Reconfiguration Tests
-=====================
-
-See :ref:`reconf_tests` for methodology description of this test type.
-
-.. toctree::
-
- vnf_service_chains_reconf
diff --git a/docs/report/vpp_performance_tests/reconf_tests/vnf_service_chains_reconf.rst b/docs/report/vpp_performance_tests/reconf_tests/vnf_service_chains_reconf.rst
deleted file mode 100644
index 64b2010113..0000000000
--- a/docs/report/vpp_performance_tests/reconf_tests/vnf_service_chains_reconf.rst
+++ /dev/null
@@ -1,216 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-.. _vnf_service_chains_reconf:
-
-VNF Service Chains
-==================
-
-In each test, a single service chain is added, the re-configuration
-contains all the steps the initial chains got, except the last step
-(starting VMs) is skipped.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested VPP packet path. Format:
-
- - wire encapsulation ``dot1qip4vlxan``,
- - VPP forwarding mode ``l2bd``,
- - total number {Y} of initial service chains ``{Y}ch``,
- - total number of additional chains being reconfigured ``1ach``,
- - total number of initial vhost-user interfaces forwarding packets
- on VPP with {Y} chains and {X} VMs per chain ``{2XY}vh``
- (2 interfaces per {X} VMs per {Y} chains),
- - total number {XY} of (both initial and final) VNF VMs forwarding packets
- ``{XY}vm`` and finally
- - VNF workload in VM ``testpmd``.
-
-#. **X-axis Labels**: indices of individual test suites as listed in
- Graph Legend.
-
-#. **Y-axis Labels**: measured Effective Blocked Time [s] values.
-
-#. **Graph Legend**: lists X-axis indices with associated CSIT test
- suites executed to generate graphed test results and the average value
- of packet loss (measured in packets).
-
-#. **Hover Information**: lists minimum, first quartile, median,
- third quartile, and maximum. If either type of outlier is present the
- whisker on the appropriate side is taken to 1.5×IQR from the quartile
- (the "inner fence") rather than the max or min, and individual outlying
- data points are displayed as unfilled circles (for suspected outliers)
- or filled circles (for outliers). (The "outer fence" is 3×IQR from the
- quartile.)
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_,
- `FD.io test executor vpp performance job 2n-clx`_ with RF
- result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-imix-2t1c-dot1qip4vxlan-l2bd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf}
- \label{fig:2n-skx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-dot1qip4vxlan-l2bd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf}
- \label{fig:2n-skx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-dot1qip4vxlan-l2bd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf}
- \label{fig:2n-skx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-imix-2t1c-dot1qip4vxlan-l2bd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf}
- \label{fig:2n-clx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-dot1qip4vxlan-l2bd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf}
- \label{fig:2n-clx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-dot1qip4vxlan-l2bd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="103" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf.html"></iframe>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf}
- \label{fig:2n-clx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/soak_tests/index.rst b/docs/report/vpp_performance_tests/soak_tests/index.rst
deleted file mode 100644
index c8aa467685..0000000000
--- a/docs/report/vpp_performance_tests/soak_tests/index.rst
+++ /dev/null
@@ -1,146 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-.. _`soak tests`:
-
-Soak Tests
-==========
-
-Long duration (30 minutes per test) soak tests are executed
-using :ref:`plrsearch` algorithm. As the tests take long time,
-only 12 test cases were executed, two runs each.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes type of tests and soak test duration.
-
-#. **X-axis Labels**: indices of test suites.
-
-#. **Y-axis Labels**: estimated lower bounds for critical rate value in [Mpps].
-
-#. **Graph Legend**: list of X-axis indices with CSIT test cases.
-
-#. **Hover Information**: in general lists minimum, first quartile, median,
- third quartile, and maximum. As only two samples are used,
- minimum and maximum are not distinguished from quartiles.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_ and
- `FD.io test executor vpp performance job 2n-clx`_ with RF
- result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-clx
-------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/soak-test-1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{soak-test-1}
- \label{fig:soak-test-1}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/soak-test-2.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{soak-test-2}
- \label{fig:soak-test-2}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-skx
-------
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/soak-test-2n-skx-1.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{soak-test-2n-skx-1}
- \label{fig:soak-test-2n-skx-1}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="ifrm102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/soak-test-2n-skx-2.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{soak-test-2n-skx-2}
- \label{fig:soak-test-2n-skx-2}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/test_environment.rst b/docs/report/vpp_performance_tests/test_environment.rst
deleted file mode 100644
index 64863e3d7b..0000000000
--- a/docs/report/vpp_performance_tests/test_environment.rst
+++ /dev/null
@@ -1,121 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _vpp_test_environment:
-
-.. include:: ../introduction/test_environment_intro.rst
-
-.. include:: ../introduction/test_environment_sut_conf_1.rst
-
-
-DUT Settings - VPP
-------------------
-
-VPP Version
-~~~~~~~~~~~
-
-|vpp-release|
-
-VPP Compile Parameters
-~~~~~~~~~~~~~~~~~~~~~~
-
-`FD.io VPP compile job`_
-
-VPP Install Parameters
-~~~~~~~~~~~~~~~~~~~~~~
-
-::
-
- $ dpkg -i --force-all *vpp*
-
-VPP Startup Configuration
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-VPP startup configuration vary per test case, with different settings
-for `$$CORELIST_WORKERS`, `$$NUM_RX_QUEUES`, `$$UIO_DRIVER`, and
-`$$NO_MULTI_SEG` parameter. List of plugins to enable is driven by test
-requirements. Default template is provided below:
-
-::
-
- ip
- {
- heap-size 4G
- }
- statseg
- {
- size 4G
- per-node-counters on
- }
- unix
- {
- cli-listen /run/vpp/cli.sock
- log /tmp/vpe.log
- nodaemon
- full-coredump
- }
- socksvr {
- socket-name /run/vpp/api.sock
- }
- ip6
- {
- heap-size 4G
- hash-buckets 2000000
- }
- heapsize 4G
- plugins
- {
- plugin default
- {
- disable
- }
- plugin <$$test_requirement>_plugin.so
- {
- enable
- }
- }
- cpu
- {
- corelist-workers $$CORELIST_WORKERS
- main-core 1
- }
- buffers
- {
- buffers-per-numa 215040
- }
-
- # Below: in case of dpdk based drivers (vfio-pci) only
- dpdk
- {
- uio-driver $$UIO_DRIVER
- $$NO_MULTI_SEG
- log-level debug
- dev default
- {
- num-rx-queues $$NUM_RX_QUEUES
- }
- no-tx-checksum-offload
- dev $$DEV_1
- dev $$DEV_2
- }
-
-Description of VPP startup settings used in CSIT is provided in
-:ref:`test_methodology`.
-
-.. include:: ../introduction/test_environment_tg.rst
-
-.. include:: ../introduction/test_environment_pre_test_server_calib.rst
-
-.. include:: ../introduction/test_environment_sut_calib_skx.rst
-
-.. include:: ../introduction/test_environment_sut_calib_clx.rst
-
-.. include:: ../introduction/test_environment_sut_calib_hsw.rst
-
-.. include:: ../introduction/test_environment_sut_calib_dnv.rst
-
-.. include:: ../introduction/test_environment_sut_calib_tsh.rst
-
-.. include:: ../introduction/test_environment_sut_calib_tx2.rst
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-clx-cx556a.rst
deleted file mode 100644
index 77a035896c..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-64b-memif-base-rdma-core
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-clx-xxv710.rst
deleted file mode 100644
index 12356c34e3..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-memif-base-avf
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-memif-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-memif-base-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-memif-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-memif-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-memif-base-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-memif-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-memif-base-dpdk
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-memif-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-memif-base-dpdk-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-memif-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-memif-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-memif-base-dpdk-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-memif-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-skx-xxv710.rst
deleted file mode 100644
index 476c97a213..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-memif-base-avf
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-memif-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-memif-base-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-memif-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-memif-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-memif-base-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-memif-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-memif-base-dpdk
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-memif-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-memif-base-dpdk-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-memif-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-memif-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-memif-base-dpdk-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-memif-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-zn2-cx556a.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-zn2-cx556a.rst
deleted file mode 100644
index 97516131cc..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-cx556a
-~~~~~~~~~~~~~
-
-64b-memif-base-rdma-core
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-zn2-xxv710.rst
deleted file mode 100644
index a22ff46630..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-memif-base-avf
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-memif-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-memif-base-avf-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-memif-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-memif-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-memif-base-avf-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-memif-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-memif-base-dpdk
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-memif-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-memif-base-dpdk-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-memif-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-memif-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-memif-base-dpdk-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-memif-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-3n-skx-xxv710.rst
deleted file mode 100644
index 3ec05ed678..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-memif-base-avf
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-memif-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-memif-base-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-memif-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-memif-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-memif-base-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-memif-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-memif-base-dpdk
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-memif-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-memif-base-dpdk-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-memif-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-memif-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-memif-base-dpdk-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-memif-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-3n-tsh-x520.rst
deleted file mode 100644
index 304088551c..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-3n-tsh-x520.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-tsh-x520
- ### 64b-?t?c-memif-base-ixgbe
- 10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdr
- 10ge2p1x520-eth-l2xcbase-eth-2memif-1dcr-ndrpdr
- 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr
- 10ge2p1x520-ethip4-ip4base-eth-2memif-1dcr-ndrpdr
-
- Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr
- Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr
- Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr
- Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr
- Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-memif-base-ixgbe
---------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-memif-base-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-memif-base-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-memif-base-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-memif-base-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-memif-base-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-memif-base-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif.rst
deleted file mode 100644
index 4569b772b5..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-LXC/DRC Container Memif
-=======================
-
-Following sections include Throughput Speedup Analysis for VPP multi-
-core multi-thread configurations with no Hyper-Threading, specifically
-for tested 2t2c (2threads, 2cores) and 4t4c scenarios. 1t1c throughput
-results are used as a reference for reported speedup ratio.
-Performance is reported for VPP
-running in multiple configurations of VPP worker thread(s), a.k.a. VPP
-data plane thread(s), and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/container_memif?h=rls2101>`_.
-
-.. toctree::
-
- container_memif-2n-skx-xxv710
- container_memif-3n-skx-xxv710
- container_memif-2n-clx-xxv710
- container_memif-2n-clx-cx556a
- container_memif-2n-zn2-xxv710
- container_memif-2n-zn2-cx556a
- container_memif-3n-tsh-x520
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/index.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/index.rst
deleted file mode 100644
index d9c9967999..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/index.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _throughput_speedup_multi_core:
-
-Speedup Multi-Core
-==================
-
-Speedup Multi-Core throughput graphs are generated by multiple
-executions of the same performance tests across physical testbeds hosted
-LF FD.io labs: 3n-hsw, 2n-skx, 3n-skx, 2n-clx, 3n-tsh, 2n-tx2, 2n-dnv, 3n-dnv.
-Grouped bars illustrate the 64B/78B packet throughput speedup ratio for
-2- and 4-core multi-threaded VPP configurations relative to 1-core
-configurations.
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested packet path, testbed topology,
- processor model, NIC model, packet size used by data plane workers and
- indication of VPP DUT configuration.
-
-#. **X-axis Labels**: number of cores.
-
-#. **Y-axis Labels**: measured Packets Per Second [pps] throughput
- values.
-
-#. **Graph Legend**: lists CSIT test suites executed to generate graphed test
- results.
-
-#. **Hover Information**: lists number of runs executed, specific test
- substring, mean value of the measured packet throughput, calculated perfect
- throughput value, difference between measured and perfect values and
- relative speedup value.
-
-.. note::
-
- Test results have been generated by
- `FD.io test executor vpp performance job 2n-skx`_,
- `FD.io test executor vpp performance job 3n-skx`_,
- `FD.io test executor vpp performance job 2n-clx`_,
- `FD.io test executor vpp performance job 2n-zn2`_,
- `FD.io test executor vpp performance job 3n-hsw`_,
- `FD.io test executor vpp performance job 3n-tsh`_,
- `FD.io test executor vpp performance job 2n-tx2`_,
- `FD.io test executor vpp performance job 2n-dnv`_ and
- `FD.io test executor vpp performance job 3n-dnv`_ with RF
- result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
- Required per test case data set size is **10**, but for VPP tests
- the actual size varies per test case and is <=10.
-
-.. toctree::
- :maxdepth: 3
-
- l2
- ip4
- ip6
- srv6
- ip4_tunnels
- nat44
- vm_vhost
- container_memif
- ipsec
- vts
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-cx556a.rst
deleted file mode 100644
index 589f444d4d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-64b-ip4routing-base-rdma-core
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-ip4base-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-ip4base-ndr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-ip4base-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-ip4base-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-ip4base-pdr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-ip4base-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-scale
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-features
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-ethip4-features-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-ethip4-features-ndr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-ethip4-features-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-ethip4-features-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-ethip4-features-pdr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-ethip4-features-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-x710.rst
deleted file mode 100644
index 5462a0a953..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-x710
-~~~~~~~~~~~
-
-64b-ip4routing-base-scale-[avf,dpdk]
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa}
- \label{fig:2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa}
- \label{fig:2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-xxv710.rst
deleted file mode 100644
index 69a09151e3..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,286 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-ip4routing-base-scale-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-scale-avf-rnd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-scale-dpdk-rnd
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-ip4routing-base-avf
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-ip4routing-base-dpdk
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-dnv-x553.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-dnv-x553.rst
deleted file mode 100644
index f0ba7bf9f0..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-dnv-x553.rst
+++ /dev/null
@@ -1,143 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ### 64b-?t?c-ip4routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip4base-ndrpdr
- 10ge2p1x520-ethip4-ip4base-ndrpdr
- 10ge2p1x520-ethip4-ip4scale20k-ndrpdr
- 10ge2p1x520-ethip4-ip4scale200k-ndrpdr
- 10ge2p1x520-ethip4-ip4scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr
-
- ### 64b-?t?c-features-ip4routing-base-ixgbe
- 10ge2p1x520-ethip4-ip4base-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-nat44-ndrpdr
-
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-1t1c-ethip4udp-ip4base-nat44-ndrpdr
-
-2n-dnv-x553
-~~~~~~~~~~~
-
-64b-ip4routing-base-scale-ixgbe
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa}
- \label{fig:2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa}
- \label{fig:2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-ip4routing-base-ixgbe
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa}
- \label{fig:2n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa}
- \label{fig:2n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-skx-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-skx-x710.rst
deleted file mode 100644
index 63f7c1636c..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-x710
-~~~~~~~~~~~
-
-64b-ip4routing-base-scale-[avf,dpdk]
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa}
- \label{fig:2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa}
- \label{fig:2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-skx-xxv710.rst
deleted file mode 100644
index 194bed2a91..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,280 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-ip4routing-base-scale-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-ip4routing-base-avf
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-ip4routing-base-dpdk
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-tx2-xl710.rst
deleted file mode 100644
index fcd42b4c3d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-64b-ip4routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-ip4routing-base-dpdk
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-cx556a.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-cx556a.rst
deleted file mode 100644
index 64c4bbfdee..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-cx556a
-~~~~~~~~~~~~~
-
-64b-ip4routing-base-rdma-core
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-ip4base-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-ip4base-ndr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-ip4base-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-ip4base-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-ip4base-pdr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-ip4base-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-scale
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-features
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-ethip4-features-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-ethip4-features-ndr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-ethip4-features-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-ethip4-features-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-ethip4-features-pdr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-ethip4-features-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-x710.rst
deleted file mode 100644
index f8b940ba8e..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-x710
-~~~~~~~~~~~
-
-64b-ip4routing-base-scale-[avf,dpdk]
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa}
- \label{fig:2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa}
- \label{fig:2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-xxv710.rst
deleted file mode 100644
index 08e345d826..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,286 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-ip4routing-base-scale-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-scale-avf-rnd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-scale-dpdk-rnd
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-ip4routing-base-avf
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-features-ip4routing-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-features-ip4routing-base-avf-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-features-ip4routing-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-features-ip4routing-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-features-ip4routing-base-avf-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-features-ip4routing-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-ip4routing-base-dpdk
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-dnv-x553.rst
deleted file mode 100644
index c06253fc81..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-dnv-x553.rst
+++ /dev/null
@@ -1,143 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ### 64b-?t?c-ip4routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip4base-ndrpdr
- 10ge2p1x520-ethip4-ip4base-ndrpdr
- 10ge2p1x520-ethip4-ip4scale20k-ndrpdr
- 10ge2p1x520-ethip4-ip4scale200k-ndrpdr
- 10ge2p1x520-ethip4-ip4scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr
-
- ### 64b-?t?c-features-ip4routing-base-ixgbe
- 10ge2p1x520-ethip4-ip4base-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr
- 10ge2p1x520-ethip4udp-ip4base-nat44-ndrpdr
-
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-1t1c-ethip4udp-ip4base-nat44-ndrpdr
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-64b-ip4routing-base-scale-ixgbe
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa}
- \label{fig:3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa}
- \label{fig:3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-ip4routing-base-ixgbe
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa}
- \label{fig:3n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa}
- \label{fig:3n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-hsw-xl710.rst
deleted file mode 100644
index 8f69e2c765..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-hsw-xl710
- ### 64b-ip4routing-base-scale-dpdk
- 10ge2p1xl710-dot1q-ip4base-ndrpdr
- 10ge2p1xl710-ethip4-ip4base-ndrpdr
- 10ge2p1xl710-ethip4-ip4scale2m-ndrpdr
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-ip4routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \label{fig:3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \label{fig:3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-skx-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-skx-x710.rst
deleted file mode 100644
index abffd9afaa..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-x710
-~~~~~~~~~~~
-
-64b-ip4routing-base-scale-[avf,dpdk]
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-ip4routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \label{fig:3n-skx-x710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-ip4routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \label{fig:3n-skx-x710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-skx-xxv710.rst
deleted file mode 100644
index b38010a488..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,201 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-ip4routing-base-scale-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-features-ip4routing-base-avf
- --------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 64b-features-ip4routing-base-dpdk
- ---------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-tsh-x520.rst
deleted file mode 100644
index 186a4bb6ca..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-tsh-x520.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-ip4routing-base-scale-ixgbe
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-ip4routing-base-ixgbe
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-features-ip4routing-base-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-features-ip4routing-base-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-features-ip4routing-base-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-features-ip4routing-base-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-features-ip4routing-base-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-features-ip4routing-base-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4.rst
deleted file mode 100644
index ebc60fde75..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPv4 Routing
-============
-
-Following sections include Throughput Speedup Analysis for VPP multi-
-core multi-thread configurations with no Hyper-Threading, specifically
-for tested 2t2c (2threads, 2cores) and 4t4c scenarios. 1t1c throughput
-results are used as a reference for reported speedup ratio. Input data
-used for the graphs comes from Phy-to-Phy 64B performance tests with VPP
-IPv4 Routed-Forwarding, including NDR throughput (zero packet loss) and
-PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip4?h=rls2101>`_.
-
-.. toctree::
-
- ip4-2n-skx-xxv710
- ip4-2n-skx-x710
- ip4-3n-skx-xxv710
- ip4-3n-skx-x710
- ip4-2n-clx-xxv710
- ip4-2n-clx-x710
- ip4-2n-clx-cx556a
- ip4-2n-zn2-xxv710
- ip4-2n-zn2-x710
- ip4-2n-zn2-cx556a
- ip4-3n-hsw-xl710
- ip4-3n-tsh-x520
- ip4-2n-tx2-xl710
- ip4-2n-dnv-x553
- ip4-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-dnv-x553.rst
deleted file mode 100644
index b8a7507c51..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-dnv-x553.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-..
- ## 3n-dnv-x553
- ### 64b-?t?c-ip4tunnel-base-scale-ixgbe
- 10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdr
- 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr
-
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-64b-ip4tunnel-base-scale-ixgbe
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa}
- \label{fig:3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa}
- \label{fig:3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-hsw-xl710.rst
deleted file mode 100644
index 9c0bf0fe74..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,77 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-hsw-xl710
- ### 64b-ip4tunnel-base-dpdk
- 10ge2p1xl710-ethip4vxlan-l2xcbase-ndrpdr
- 10ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-ndrpdr
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-ip4tunnel-base-dpdk
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-ip4tunnel-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-ip4tunnel-base-dpdk-ndr-tsa}
- \label{fig:3n-hsw-xl710-64b-ip4tunnel-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-ip4tunnel-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-ip4tunnel-base-dpdk-pdr-tsa}
- \label{fig:3n-hsw-xl710-64b-ip4tunnel-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-skx-xxv710.rst
deleted file mode 100644
index 37f0c2fac4..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-ip4tunnel-base-scale-avf
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4tunnel-base-scale-dpdk
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-tsh-x520.rst
deleted file mode 100644
index caa839bdad..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-tsh-x520.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-..
- ## 3n-tsh-x520
- ### 64b-?t?c-ip4tunnel-base-scale-ixgbe
- 10ge2p1x520-ethip4vxlan-l2xcbase-ndrpdr
- 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrpdr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr
-
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr
- Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-ip4tunnel-base-scale-ixgbe
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels.rst
deleted file mode 100644
index 6e94ead6a8..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPv4 Tunnels
-============
-
-Following sections include Throughput Speedup Analysis for VPP multi-
-core multi-thread configurations with no Hyper-Threading, specifically
-for tested 2t2c (2threads, 2cores) and 4t4c scenarios. 1t1c throughput
-results are used as a reference for reported speedup ratio.
-Performance is reported for VPP
-running in multiple configurations of VPP worker thread(s), a.k.a. VPP
-data plane thread(s), and their physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip4_tunnels?h=rls2101>`_.
-
-.. toctree::
-
- ip4_tunnels-3n-skx-xxv710
- ip4_tunnels-3n-hsw-xl710
- ip4_tunnels-3n-tsh-x520
- ip4_tunnels-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-cx556a.rst
deleted file mode 100644
index 36acb9cb05..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-78b-ip6routing-base-scale-rdma-core
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa}
- \label{fig:2n-clx-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa}
- \label{fig:2n-clx-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-x710.rst
deleted file mode 100644
index 7f272c61eb..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-x710
-~~~~~~~~~~~
-
-78b-ip6routing-base-scale-[avf,dpdk]
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa}
- \label{fig:2n-clx-x710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa}
- \label{fig:2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-xxv710.rst
deleted file mode 100644
index 99d611d2f0..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-78b-ip6routing-base-scale-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-ip6routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-dnv-x553.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-dnv-x553.rst
deleted file mode 100644
index 565d0d5f5a..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-dnv-x553.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 2n-dnv-x553
- ### 78b-?t?c-ip6routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6scale20k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale200k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr
- Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr
- Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr
-
-2n-dnv-x553
-~~~~~~~~~~~
-
-78b-ip6routing-base-scale-ixgbe
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa}
- \label{fig:2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa}
- \label{fig:2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-skx-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-skx-x710.rst
deleted file mode 100644
index 794a2abbda..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-x710
-~~~~~~~~~~~
-
-78b-ip6routing-base-scale-[avf,dpdk]
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa}
- \label{fig:2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa}
- \label{fig:2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-skx-xxv710.rst
deleted file mode 100644
index bf28eefebf..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-78b-ip6routing-base-scale-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-ip6routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-tx2-xl710.rst
deleted file mode 100644
index 23714701bd..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-78b-ip6routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-78b-ip6routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-78b-ip6routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-cx556a.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-cx556a.rst
deleted file mode 100644
index 7279f16757..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-cx556a
-~~~~~~~~~~~~~
-
-78b-ip6routing-base-scale-rdma-core
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa}
- \label{fig:2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa}
- \label{fig:2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-x710.rst
deleted file mode 100644
index ab4b80f0dc..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-x710
-~~~~~~~~~~~
-
-78b-ip6routing-base-scale-[avf,dpdk]
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa}
- \label{fig:2n-zn2-x710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa}
- \label{fig:2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-xxv710.rst
deleted file mode 100644
index 479d757917..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-78b-ip6routing-base-scale-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \label{fig:2n-zn2-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \label{fig:2n-zn2-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-ip6routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-dnv-x553.rst
deleted file mode 100644
index 2ac06f0810..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-dnv-x553.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-dnv-x553
- ### 78b-?t?c-ip6routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6scale20k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale200k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-78b-ip6routing-base-scale-ixgbe
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa}
- \label{fig:3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa}
- \label{fig:3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-hsw-xl710.rst
deleted file mode 100644
index 15f1dea246..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-78b-ip6routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \label{fig:3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \label{fig:3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-skx-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-skx-x710.rst
deleted file mode 100644
index d4f9ceee77..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-x710
-~~~~~~~~~~~
-
-78b-ip6routing-base-scale-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-78b-ip6routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \label{fig:3n-skx-x710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-78b-ip6routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \label{fig:3n-skx-x710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-skx-xxv710.rst
deleted file mode 100644
index 41086dbd3b..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-78b-ip6routing-base-scale-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-ip6routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \label{fig:3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \label{fig:3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-tsh-x520.rst
deleted file mode 100644
index 5f36974eac..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-tsh-x520.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-tsh-x520
- ### 78b-?t?c-ip6routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6base-ndrpdr
- 10ge2p1x520-ethip6-ip6scale20k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale200k-ndrpdr
- 10ge2p1x520-ethip6-ip6scale2m-ndrpdr
-
- Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr
- Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-78b-ip6routing-base-scale-ixgbe
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6.rst
deleted file mode 100644
index 01306836b0..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPv6 Routing
-============
-
-Following sections include Throughput Speedup Analysis for VPP multi-
-core multi-thread configurations with no Hyper-Threading, specifically
-for tested 2t2c (2threads, 2cores) and 4t4c scenarios. 1t1c throughput
-results are used as a reference for reported speedup ratio. Input data
-used for the graphs comes from Phy-to-Phy 78B performance tests with VPP
-IPv6 Routed-Forwarding, including NDR throughput (zero packet loss) and
-PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip6?h=rls2101>`_.
-
-.. toctree::
-
- ip6-2n-skx-xxv710
- ip6-2n-skx-x710
- ip6-3n-skx-xxv710
- ip6-3n-skx-x710
- ip6-2n-clx-xxv710
- ip6-2n-clx-x710
- ip6-2n-clx-cx556a
- ip6-2n-zn2-xxv710
- ip6-2n-zn2-x710
- ip6-2n-zn2-cx556a
- ip6-3n-hsw-xl710
- ip6-3n-tsh-x520
- ip6-2n-tx2-xl710
- ip6-2n-dnv-x553
- ip6-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-dnv-x553.rst
deleted file mode 100644
index 31575c7725..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-dnv-x553.rst
+++ /dev/null
@@ -1,88 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-dnv-x553
- ### imix-?t?c-ipsec-ip4routing-base-scale-sw-ixgbe
- 10ge2p1x520-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1x520-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- 10ge2p1x520-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1x520-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- 10ge2p1x520-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1x520-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr
- Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-imix-ipsec-ip4routing-base-scale-sw-ixgbe
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa}
- \label{fig:3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa}
- \label{fig:3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-hsw-xl710.rst
deleted file mode 100644
index fb68dc8f0d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,130 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-hsw-xl710
- ### imix-ipsec-ip4routing-base-scale-sw-dpdk
- 10ge2p1xl710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1xl710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- 10ge2p1xl710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1xl710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- 10ge2p1xl710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1xl710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
- ### imix-ipsec-ip4routing-base-scale-hw-dpdk
- 10ge2p1xl710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1xl710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
- 10ge2p1xl710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
- 10ge2p1xl710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-imix-ipsec-ip4routing-base-scale-sw-dpdk
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-ndr-tsa}
- \label{fig:3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-pdr-tsa}
- \label{fig:3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-ipsec-ip4routing-base-scale-hw-dpdk
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-ndr-tsa}
- \label{fig:3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-pdr-tsa}
- \label{fig:3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-skx-xxv710.rst
deleted file mode 100644
index e087060650..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-imix-ipsec-ip4routing-base-scale-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-ipsec-ip4routing-base-scale-dpdk
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-ndr-tsa}
- \label{fig:3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-pdr-tsa}
- \label{fig:3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-tsh-x520.rst
deleted file mode 100644
index 86543cf26f..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-tsh-x520.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-imix-ipsec-ip4routing-base-scale-sw-ixgbe
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec.rst
deleted file mode 100644
index 79a7845d29..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-IPSec IPv4 Routing
-==================
-
-Following sections include Throughput Speedup Analysis for VPP multi-
-core multi-thread configurations with no Hyper-Threading, specifically
-for tested 2t2c (2threads, 2cores) and 4t4c scenarios. 1t1c throughput
-results are used as a reference for reported speedup ratio.
-VPP IPSec encryption is accelerated using DPDK cryptodev
-library driving Intel Quick Assist (QAT) crypto PCIe hardware cards.
-Performance is reported for VPP running in multiple configurations of
-VPP worker thread(s), a.k.a. VPP data plane thread(s), and their
-physical CPU core(s) placement.
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/crypto?h=rls2101>`_.
-
-.. toctree::
-
- ipsec-3n-skx-xxv710
- ipsec-3n-hsw-xl710
- ipsec-3n-tsh-x520
- ipsec-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-cx556a.rst
deleted file mode 100644
index 0c7d3db269..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-64b-l2switching-base-rdma-core
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-l2switching-base-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-l2switching-base-ndr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-l2switching-base-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-l2switching-base-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-l2switching-base-pdr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-l2switching-base-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-scale
----------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-l2switching-scale-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-l2switching-scale-ndr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-l2switching-scale-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-l2switching-scale-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-l2switching-scale-pdr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-l2switching-scale-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-x710.rst
deleted file mode 100644
index e43b1adbc3..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-x710.rst
+++ /dev/null
@@ -1,115 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-x710
-~~~~~~~~~~~
-
-64b-l2switching-base-scale-avf
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-l2switching-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-l2switching-base-scale-avf-ndr-tsa}
- \label{fig:2n-clx-x710-64b-l2switching-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-l2switching-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-l2switching-base-scale-avf-pdr-tsa}
- \label{fig:2n-clx-x710-64b-l2switching-base-scale-avf-pdr-tsa}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-l2switching-base-scale-dpdk
- -------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-l2switching-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-clx-x710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-x710-64b-l2switching-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-x710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-clx-x710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-xxv710.rst
deleted file mode 100644
index a19b00592c..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-l2switching-base-avf
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-l2switching-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-l2switching-base-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-l2switching-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-l2switching-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-l2switching-base-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-l2switching-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-scale-avf
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="121" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="122" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-dpdk
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-l2switching-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-l2switching-base-dpdk-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-l2switching-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-l2switching-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-l2switching-base-dpdk-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-l2switching-base-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-scale-dpdk
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-dnv-x553.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-dnv-x553.rst
deleted file mode 100644
index 446df2c4e8..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-dnv-x553.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-dnv-x553
-~~~~~~~~~~~
-
-64b-l2switching-base-scale-ixgbe
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa}
- \label{fig:2n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa}
- \label{fig:2n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-skx-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-skx-x710.rst
deleted file mode 100644
index f023b0f884..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-x710
-~~~~~~~~~~~
-
-64b-l2switching-base-scale-[avf,dpdk]
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-ndr-tsa}
- \label{fig:2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-pdr-tsa}
- \label{fig:2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-skx-xxv710.rst
deleted file mode 100644
index f59966dc44..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-l2switching-base-avf
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-l2switching-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-l2switching-base-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-l2switching-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-l2switching-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-l2switching-base-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-l2switching-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-dpdk
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-l2switching-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-l2switching-base-dpdk-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-l2switching-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-l2switching-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-l2switching-base-dpdk-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-l2switching-base-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-scale-avf
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-scale-dpdk
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-tx2-xl710.rst
deleted file mode 100644
index 71809f481d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-64b-l2switching-base-dpdk
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-l2switching-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-l2switching-base-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-64b-l2switching-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-l2switching-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-l2switching-base-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-64b-l2switching-base-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-scale-dpdk
---------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="011" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-l2switching-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-l2switching-scale-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-64b-l2switching-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="021" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-l2switching-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-l2switching-scale-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-64b-l2switching-scale-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-l2switching-base-dpdk
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-features-l2switching-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-features-l2switching-base-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-64b-features-l2switching-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-features-l2switching-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-tx2-xl710-64b-features-l2switching-base-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-64b-features-l2switching-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-cx556a.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-cx556a.rst
deleted file mode 100644
index 0ce31e80b8..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-cx556a
-~~~~~~~~~~~~~
-
-64b-l2switching-base-rdma-core
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-l2switching-base-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-l2switching-base-ndr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-l2switching-base-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-l2switching-base-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-l2switching-base-pdr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-l2switching-base-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-scale
----------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-l2switching-scale-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-l2switching-scale-ndr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-l2switching-scale-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-l2switching-scale-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-l2switching-scale-pdr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-l2switching-scale-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-x710.rst
deleted file mode 100644
index bfbe232ab6..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-x710.rst
+++ /dev/null
@@ -1,115 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-x710
-~~~~~~~~~~~
-
-64b-l2switching-base-scale-avf
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-l2switching-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-l2switching-base-scale-avf-ndr-tsa}
- \label{fig:2n-zn2-x710-64b-l2switching-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-l2switching-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-l2switching-base-scale-avf-pdr-tsa}
- \label{fig:2n-zn2-x710-64b-l2switching-base-scale-avf-pdr-tsa}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-l2switching-base-scale-dpdk
- -------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-l2switching-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-zn2-x710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-x710-64b-l2switching-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-x710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-zn2-x710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-xxv710.rst
deleted file mode 100644
index 9e8a2bae20..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-l2switching-base-avf
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-l2switching-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-l2switching-base-avf-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-l2switching-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-l2switching-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-l2switching-base-avf-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-l2switching-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-scale-avf
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="121" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-l2switching-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-l2switching-base-scale-avf-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-l2switching-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="122" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-l2switching-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-l2switching-base-scale-avf-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-l2switching-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-dpdk
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-l2switching-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-l2switching-base-dpdk-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-l2switching-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-l2switching-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-l2switching-base-dpdk-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-l2switching-base-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-scale-dpdk
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-dnv-x553.rst
deleted file mode 100644
index 86679ba1e0..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-dnv-x553.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-64b-l2switching-base-scale-ixgbe
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa}
- \label{fig:3n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa}
- \label{fig:3n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-hsw-xl710.rst
deleted file mode 100644
index b1b5f76892..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-l2switching-base-scale-dpdk
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-l2switching-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \label{fig:3n-hsw-xl710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-l2switching-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \label{fig:3n-hsw-xl710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-skx-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-skx-x710.rst
deleted file mode 100644
index d34eaa375d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-skx-x710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-x710
-~~~~~~~~~~~
-
-64b-l2switching-base-scale-avf
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-l2switching-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-l2switching-base-scale-avf-ndr-tsa}
- \label{fig:3n-skx-x710-64b-l2switching-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-l2switching-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-l2switching-base-scale-avf-pdr-tsa}
- \label{fig:3n-skx-x710-64b-l2switching-base-scale-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-skx-xxv710.rst
deleted file mode 100644
index f4b8e9b472..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,244 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-l2switching-base-avf
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-l2switching-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-l2switching-base-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-l2switching-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-l2switching-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-l2switching-base-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-l2switching-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-dpdk
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-l2switching-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-l2switching-base-dpdk-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-l2switching-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-l2switching-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-l2switching-base-dpdk-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-l2switching-base-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-scale-avf
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="221" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="222" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-scale-dpdk
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-features-l2switching-base-avf
- ---------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="31" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-features-l2switching-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-features-l2switching-base-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-features-l2switching-base-avf-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="32" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-features-l2switching-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-features-l2switching-base-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-features-l2switching-base-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-tsh-x520.rst
deleted file mode 100644
index 34c301db20..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-tsh-x520.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-tsh-x520
- ### 64b-?t?c-l2switching-base-ixgbe
- 10ge2p1x520-dot1q-l2xcbase-ndrpdr
- 10ge2p1x520-eth-l2xcbase-ndrpdr
- 10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-ndrpdr
-
- Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr
-
- ### 64b-?t?c-l2switching-base-scale-ixgbe
- 10ge2p1x520-eth-l2patch-ndrpdr
- 10ge2p1x520-eth-l2xcbase-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-ndrpdr
- 10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdr
- 10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdr
- 10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdr
-
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr
-
- ### 64b-?t?c-features-l2switching-base-ixgbe
- 10ge2p1x520-eth-l2bdbasemaclrn-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr
- 10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr
-
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr
- Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-l2switching-base-ixgbe
---------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-l2switching-base-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-l2switching-base-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-l2switching-base-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-l2switching-base-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-l2switching-base-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-l2switching-base-ixgbe-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-base-scale-ixgbe
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-l2switching-base-scale-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-l2switching-base-scale-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-l2switching-base-scale-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-l2switching-base-scale-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-l2switching-base-scale-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-l2switching-base-scale-ixgbe-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-features-l2switching-base-ixgbe
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="31" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-features-l2switching-base-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-features-l2switching-base-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-features-l2switching-base-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="32" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-features-l2switching-base-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-features-l2switching-base-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-features-l2switching-base-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2.rst
deleted file mode 100644
index 72280a18aa..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-L2 Ethernet Switching
-=====================
-
-Following sections include Throughput Speedup Analysis for VPP multi-
-core multi-thread configurations with no Hyper-Threading, specifically
-for tested 2t2c (2threads, 2cores) and 4t4c scenarios. 1t1c throughput
-results are used as a reference for reported speedup ratio. Input data
-used for the graphs comes from Phy-to-Phy 64B performance tests with VPP
-L2 Ethernet switching, including NDR throughput (zero packet loss) and
-PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/l2?h=rls2101>`_.
-
-.. toctree::
-
- l2-2n-skx-xxv710
- l2-2n-skx-x710
- l2-3n-skx-xxv710
- l2-3n-skx-x710
- l2-2n-clx-xxv710
- l2-2n-clx-x710
- l2-2n-clx-cx556a
- l2-2n-zn2-xxv710
- l2-2n-zn2-x710
- l2-2n-zn2-cx556a
- l2-3n-hsw-xl710
- l2-3n-tsh-x520
- l2-2n-tx2-xl710
- l2-2n-dnv-x553
- l2-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir-2n-clx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir-2n-clx.rst
deleted file mode 100644
index 196b0daf40..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="01n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir-2n-skx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir-2n-skx.rst
deleted file mode 100644
index e3f5050e20..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="01n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir.rst
deleted file mode 100644
index e30d6685ae..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Det BiDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-det-bidir-2n-clx
- nat44-det-bidir-2n-skx
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps-2n-clx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps-2n-clx.rst
deleted file mode 100644
index 5b9cf42a0e..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-cps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="07n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps-2n-skx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps-2n-skx.rst
deleted file mode 100644
index f824b3bd21..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-cps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="07n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps.rst
deleted file mode 100644
index 1a86b99e25..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED TCP CPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-tcp-cps-2n-clx
- nat44-ed-tcp-cps-2n-skx
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps-2n-clx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps-2n-clx.rst
deleted file mode 100644
index 7e2bd1ef82..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-pps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="08p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="08n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps-2n-skx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps-2n-skx.rst
deleted file mode 100644
index f73605b948..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-stf-pps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="08p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="08n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps.rst
deleted file mode 100644
index 7b86eabef4..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-pps.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED TCP PPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-tcp-pps-2n-clx
- nat44-ed-tcp-pps-2n-skx
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps-2n-clx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps-2n-clx.rst
deleted file mode 100644
index d478318ef0..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-cps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="03n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps-2n-skx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps-2n-skx.rst
deleted file mode 100644
index af6e74ba40..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-cps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="03n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps.rst
deleted file mode 100644
index 795d2d0d78..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UDP CPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-cps-2n-clx
- nat44-ed-udp-cps-2n-skx
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps-2n-clx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps-2n-clx.rst
deleted file mode 100644
index 823e64829d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-pps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps-2n-skx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps-2n-skx.rst
deleted file mode 100644
index bcb0907ab4..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-stf-pps-avf
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps.rst
deleted file mode 100644
index b02f0b28b3..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-pps.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UDP PPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-pps-2n-clx
- nat44-ed-udp-pps-2n-skx
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir-2n-clx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir-2n-clx.rst
deleted file mode 100644
index 8d33548eff..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir-2n-clx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="02p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir-2n-skx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir-2n-skx.rst
deleted file mode 100644
index d42cf8fb77..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir-2n-skx.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="02p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir.rst
deleted file mode 100644
index 2f1dd19725..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UniDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-unidir-2n-clx
- nat44-ed-unidir-2n-skx
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44.rst
deleted file mode 100644
index 5eb311459b..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-NAT44 IPv4 Routing
-==================
-
-Following sections include Throughput Speedup Analysis for VPP multi-
-core multi-thread configurations with no Hyper-Threading, specifically
-for tested 2t2c (2threads, 2cores) and 4t4c scenarios. 1t1c throughput
-results are used as a reference for reported speedup ratio. Input data
-used for the graphs comes from Phy-to-Phy 64B performance tests with VPP
-IPv4 Routed-Forwarding, including NDR throughput (zero packet loss) and
-PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/ip4?h=rls2101>`_.
-
-.. toctree::
-
- nat44-det-bidir
- nat44-ed-unidir
- nat44-ed-udp-cps
- nat44-ed-tcp-cps
- nat44-ed-udp-pps
- nat44-ed-tcp-pps
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-dnv-x553.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-dnv-x553.rst
deleted file mode 100644
index abf3ff4115..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-dnv-x553.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-dnv-x553
- ### 78b-?t?c-srv6-ip6routing-base-ixgbe
- 10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
- Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-78b-srv6-ip6routing-base-ixgbe
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-ndr-tsa}
- \label{fig:3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-pdr-tsa}
- \label{fig:3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-hsw-xl710.rst
deleted file mode 100644
index 20f097fc14..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,81 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-hsw-xl710
- ### 78b-srv6-ip6routing-base-dpdk
- 10ge2p1xl710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- 10ge2p1xl710-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- 10ge2p1xl710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
- 10ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
- 10ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
- 10ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-78b-srv6-ip6routing-base-dpdk
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-ndr-tsa}
- \label{fig:3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-pdr-tsa}
- \label{fig:3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-skx-xxv710.rst
deleted file mode 100644
index d5a0753dbe..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-78b-srv6-ip6routing-base-avf
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-srv6-ip6routing-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-srv6-ip6routing-base-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-78b-srv6-ip6routing-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-78b-srv6-ip6routing-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-78b-srv6-ip6routing-base-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-78b-srv6-ip6routing-base-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-tsh-x520.rst
deleted file mode 100644
index 4927066f2c..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-tsh-x520.rst
+++ /dev/null
@@ -1,88 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-..
- ## 3n-tsh-x520
- ### 78b-?t?c-srv6-ip6routing-base-ixgbe
- 10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
- Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-78b-srv6-ip6routing-base-ixgbe
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6.rst
deleted file mode 100644
index dc4d0d2159..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-SRv6 Routing
-============
-
-Following sections include Throughput Speedup Analysis for VPP multi-
-core multi-thread configurations with no Hyper-Threading, specifically
-for tested 2t2c (2threads, 2cores) and 4t4c scenarios. 1t1c throughput
-results are used as a reference for reported speedup ratio. Input data
-used for the graphs comes from Phy-to-Phy 78B performance tests with VPP
-SRv6, including NDR throughput (zero packet loss) and
-PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/srv6?h=rls2101>`_.
-
-.. toctree::
-
- srv6-3n-skx-xxv710
- srv6-3n-hsw-xl710
- srv6-3n-tsh-x520
-
-..
- srv6-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-cx556a.rst
deleted file mode 100644
index c9fff75514..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-64b-vhost-base-rdma-core-testpmd
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-l2-vhost-base-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-l2-vhost-base-ndr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-l2-vhost-base-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-l2-vhost-base-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-l2-vhost-base-pdr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-l2-vhost-base-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-rdma-core-vpp
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa}
- \label{fig:2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-xxv710.rst
deleted file mode 100644
index ae4664e943..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-vhost-base-avf-testpmd
---------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-vhost-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-vhost-base-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-vhost-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-vhost-base-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-avf-vpp
-----------------------
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-dpdk-testpmd
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-vhost-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-vhost-base-dpdk-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-vhost-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-vhost-base-dpdk-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-dpdk-vpp
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-skx-xxv710.rst
deleted file mode 100644
index 3a3f557a3e..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-vhost-base-avf-testpmd
---------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-vhost-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-vhost-base-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-vhost-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-vhost-base-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-avf-vpp
-----------------------
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-dpdk-testpmd
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-vhost-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-vhost-base-dpdk-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-vhost-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-vhost-base-dpdk-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-dpdk-vpp
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-zn2-cx556a.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-zn2-cx556a.rst
deleted file mode 100644
index 030ff897e6..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-zn2-cx556a.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-cx556a
-~~~~~~~~~~~~~
-
-64b-vhost-base-rdma-core-testpmd
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-l2-vhost-base-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-l2-vhost-base-ndr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-l2-vhost-base-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-l2-vhost-base-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-l2-vhost-base-pdr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-l2-vhost-base-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-rdma-core-vpp
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa}
- \label{fig:2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-zn2-xxv710.rst
deleted file mode 100644
index 5063b8e850..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-64b-vhost-base-avf-testpmd
---------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-vhost-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-vhost-base-avf-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-vhost-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-vhost-base-avf-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-avf-vpp
-----------------------
-
-.. raw:: html
-
- <center>
- <iframe id="111" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-vhost-base-avf-vpp-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-vhost-base-avf-vpp-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-avf-vpp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="112" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-vhost-base-avf-vpp-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-vhost-base-avf-vpp-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-avf-vpp-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-dpdk-testpmd
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-vhost-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-vhost-base-dpdk-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-vhost-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-vhost-base-dpdk-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-dpdk-vpp
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-hsw-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-hsw-xl710.rst
deleted file mode 100644
index ed92036724..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-hsw-xl710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-vhost-base-dpdk-testpmd
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-vhost-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-vhost-base-dpdk-ndr-tsa}
- \label{fig:3n-hsw-xl710-64b-vhost-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-vhost-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-vhost-base-dpdk-pdr-tsa}
- \label{fig:3n-hsw-xl710-64b-vhost-base-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-dpdk-vpp
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-vhost-base-dpdk-vpp-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-vhost-base-dpdk-vpp-ndr-tsa}
- \label{fig:3n-hsw-xl710-64b-vhost-base-dpdk-vpp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-vhost-base-dpdk-vpp-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-hsw-xl710-64b-vhost-base-dpdk-vpp-pdr-tsa}
- \label{fig:3n-hsw-xl710-64b-vhost-base-dpdk-vpp-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-skx-x710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-skx-x710.rst
deleted file mode 100644
index d50f69ce9d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-skx-x710.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-x710
-~~~~~~~~~~~
-
-64b-link-bonding-vhost-base-avf-testpmd
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-link-bonding-vhost-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-link-bonding-vhost-base-avf-ndr-tsa}
- \label{fig:3n-skx-x710-64b-link-bonding-vhost-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-link-bonding-vhost-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-link-bonding-vhost-base-avf-pdr-tsa}
- \label{fig:3n-skx-x710-64b-link-bonding-vhost-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-link-bonding-vhost-base-avf-vpp
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-ndr-tsa}
- \label{fig:3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-pdr-tsa}
- \label{fig:3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-skx-xxv710.rst
deleted file mode 100644
index e8affd4177..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,243 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-vhost-base-avf-testpmd
---------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-vhost-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-vhost-base-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-vhost-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-vhost-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-vhost-base-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-vhost-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-dpdk-testpmd
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-vhost-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-vhost-base-dpdk-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-vhost-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-vhost-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-vhost-base-dpdk-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-vhost-base-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-avf-vpp
-----------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-link-bonding-vhost-base-avf-testpmd
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-link-bonding-vhost-base-avf-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-link-bonding-vhost-base-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-link-bonding-vhost-base-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-link-bonding-vhost-base-avf-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-link-bonding-vhost-base-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-link-bonding-vhost-base-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-link-bonding-vhost-base-avf-vpp
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="31" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="32" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-tsh-x520.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-tsh-x520.rst
deleted file mode 100644
index c4e534ade4..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-tsh-x520.rst
+++ /dev/null
@@ -1,158 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-64b-vhost-base-ixgbe
---------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-vhost-base-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-vhost-base-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-vhost-base-ixgbe-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-vhost-base-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-vhost-base-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-vhost-base-ixgbe-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-ixgbe-vppl2xc
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-pdr-tsa}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-link-bonding-vhost-base-ixgbe
- ---------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost.rst
deleted file mode 100644
index c193763bf2..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-KVM VMs vhost-user
-==================
-
-Following sections include Throughput Speedup Analysis for VPP multi-
-core multi-thread configurations with no Hyper-Threading, specifically
-for tested 2t2c (2threads, 2cores) and 4t4c scenarios. 1t1c throughput
-results are used as a reference for reported speedup ratio. Input data
-used for the graphs comes from Phy-to-Phy 64B performance tests with
-VM vhost-user, including NDR throughput (zero packet loss) and
-PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/vm_vhost?h=rls2101>`_.
-
-.. toctree::
-
- vm_vhost-2n-skx-xxv710
- vm_vhost-3n-skx-xxv710
- vm_vhost-3n-skx-x710
- vm_vhost-2n-clx-xxv710
- vm_vhost-2n-clx-cx556a
- vm_vhost-2n-zn2-xxv710
- vm_vhost-2n-zn2-cx556a
- vm_vhost-3n-hsw-xl710
- vm_vhost-3n-tsh-x520
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-clx-xxv710.rst
deleted file mode 100644
index f365523bff..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-114b-vts-l2switching-base-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa}
- \label{fig:2n-clx-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa}
- \label{fig:2n-clx-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-skx-xxv710.rst
deleted file mode 100644
index 62089033da..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-114b-vts-l2switching-base-[avf,dpdk]
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa}
- \label{fig:2n-skx-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa}
- \label{fig:2n-skx-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-zn2-xxv710.rst
deleted file mode 100644
index 7235315bd1..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <script type="text/javascript">
-
- function getDocHeight(doc) {
- doc = doc || document;
- var body = doc.body, html = doc.documentElement;
- var height = Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
- return height;
- }
-
- function setIframeHeight(id) {
- var ifrm = document.getElementById(id);
- var doc = ifrm.contentDocument? ifrm.contentDocument:
- ifrm.contentWindow.document;
- ifrm.style.visibility = 'hidden';
- ifrm.style.height = "10px"; // reset to minimal height ...
- // IE opt. for bing/msn needs a bit added or scrollbar appears
- ifrm.style.height = getDocHeight( doc ) + 4 + "px";
- ifrm.style.visibility = 'visible';
- }
-
- </script>
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-114b-vts-l2switching-base-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa}
- \label{fig:2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa}
- \label{fig:2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts.rst
deleted file mode 100644
index 9ba117aa7d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vts.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Virtual Topology System
-=======================
-
-Following sections include Throughput Speedup Analysis for VPP multi-
-core multi-thread configurations with no Hyper-Threading, specifically
-for tested 2t2c (2threads, 2cores) and 4t4c scenarios. 1t1c throughput
-results are used as a reference for reported speedup ratio. Input data
-used for the graphs comes from Phy-to-Phy 64B performance tests with
-VM vhost-user, including NDR throughput (zero packet loss) and
-PDR throughput (<0.5% packet loss).
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/vpp/perf/vts?h=rls2101>`_.
-
-.. toctree::
-
- vts-2n-skx-xxv710
- vts-2n-clx-xxv710
- vts-2n-zn2-xxv710
diff --git a/docs/report/vpp_performance_tests/throughput_trending.rst b/docs/report/vpp_performance_tests/throughput_trending.rst
deleted file mode 100644
index cf00eef8c9..0000000000
--- a/docs/report/vpp_performance_tests/throughput_trending.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-Throughput Trending
--------------------
-
-In addition to reporting throughput comparison between VPP releases,
-CSIT provides continuous performance trending for VPP master branch:
-
-#. `Performance Dashboard <https://docs.fd.io/csit/master/trending/introduction/index.html>`_:
- per VPP test case throughput trend, trend compliance and summary of
- detected anomalies.
-
-#. `Trending Methodology <https://docs.fd.io/csit/master/trending/methodology/index.html>`_:
- throughput test metrics, trend calculations and anomaly
- classification (progression, regression).
-
-#. `VPP Trendline Graphs <https://docs.fd.io/csit/master/trending/trending/index.html>`_:
- per VPP build MRR throughput measurements against the trendline
- with anomaly highlights and associated CSIT test jobs.
diff --git a/docs/report/introduction/methodology_data_plane_throughput/PLR_patch.svg b/docs/static/PLR_patch.svg
index abbe25c3d1..abbe25c3d1 100644
--- a/docs/report/introduction/methodology_data_plane_throughput/PLR_patch.svg
+++ b/docs/static/PLR_patch.svg
diff --git a/docs/report/introduction/methodology_data_plane_throughput/PLR_vhost.svg b/docs/static/PLR_vhost.svg
index c691d8ef17..c691d8ef17 100644
--- a/docs/report/introduction/methodology_data_plane_throughput/PLR_vhost.svg
+++ b/docs/static/PLR_vhost.svg
diff --git a/docs/report/csit_framework_documentation/csit_design_picture.svg b/docs/static/csit_design_picture.svg
index 228e7fdf8d..228e7fdf8d 100644
--- a/docs/report/csit_framework_documentation/csit_design_picture.svg
+++ b/docs/static/csit_design_picture.svg
diff --git a/docs/static/csit_etl_for_uti_data_flow_simplified.svg b/docs/static/csit_etl_for_uti_data_flow_simplified.svg
new file mode 100644
index 0000000000..33b6c2e6a9
--- /dev/null
+++ b/docs/static/csit_etl_for_uti_data_flow_simplified.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="761px" height="614px" viewBox="-0.5 -0.5 761 614" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2023-06-09T08:26:16.908Z&quot; agent=&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0&quot; etag=&quot;FWpurABiX-UbWvvJZuFv&quot; version=&quot;21.1.4&quot; type=&quot;device&quot; pages=&quot;2&quot;&gt;&lt;diagram id=&quot;iPC49v0qRj3MABRBR_kd&quot; name=&quot;data flow&quot;&gt;7V1rc5s4F/41ntnujBnE3R/tJE77tt3Nbtq0/ZQhGNs0GLyAc+mvfyVAGIS4C2ynTtqJEVejcz/PORqJF5uXa0/frj+7C9MeCfziZSRejgQBgIkE/6CR12hEnQjRwMqzFvFB+4Fb65cZD/Lx6M5amH7mwMB17cDaZgcN13FMI8iM6Z7nPmcPW7p29q5bfWXmBm4N3c6PfrMWwToeVXh+v+O9aa3W8a0neMdGxwfHA/5aX7jPqSHxaiReeK4bRJ82LxemjV4efi/RefOCvcmDeaYT1DlBEj9dbb8+bv57ffzp7Wa3s3kgjMV4ep50exd/45Gg2PCCMws9c/Aavwjlvx160NnSdYKxH07TFB4A+O3Lfif8tIr/2vjgcG5s18tcZSSID+Fv/txLPdDhOVdfPuGrPHjkdc8jv+cIJO6IpGocaO3HhAwlC567cxYm4goe7n5eW4F5u9UNtPcZCjE4tg42NtwC8ONC99fhsWjDDzz30bxIyFmchb+I0i3bxuOO65gx8acOjX7i8bm+sWwkEe9Mb6E7evKYaXaOOfzJ9ALzJTUUs/e16W7MwHuFh+C9vBTLmljYavHm815yJWPrlNCS8Hl6LC1XybX3AgV+iGUKXb488UvtGcwup/+oG1l6/+FF+PuvsUYRL8R0mAsocONN1wvW7sp1dPtqPzrLTtj+mE+uu41n5qcZBK+x9tB3gZudxIJXjobjc+T8hCnhTzjruhdMkS7ZT244NrfQywgfynQWxBFwJLMfvs3v8eOEGz/QHk7Gm5cv6SMvX+OtHMUlT1VIL7678wwTa6Or78q37/anvz7yE/0jf3P/pIxBPAfwK6zM+FzH9uz59Vq+Cz7/T99+/gt81P4dq9FxaIJKyc8zbT2wnrIakzkpTc6kVEESCZHxzYiMLSmV2hnsaCk+9ca1QhsjEYFCVgSKPCHaokeNTyNIMnmOWlRa+kaOzqC60I212ViRnkfOI7+zSaVolRaVKPRlUVElqXqsHtudZT4fB6ke28jZbSnlMYngMVnJM5kmUZhM6I3JgHSctiXg8zM0kHFp7LynhKIKZ71/+45vZ9/lrkRK9tyFIuOXhaFIJTFBLZPjkQy4hdKWvzVtFNgU+OnNh1qCAs3BJ/3BtLPUpdvWyoGfDThnJpzdGeJQy9DtabxjYy0WESGbUF3oD+H1EFFs0TsI34o8G8mXBSRZQLn1fNdSLsyJkiTcGz/kKB1RpYkYnoOEM8nMd2ynd6THMeFu4IAHvoK7XPpmP/RTagek6KcJ2ZQLuIwIeNvSrm28ppYrXRZsqfSkQd2oDKZInElpS+lMSfl/3xX13jPv/h3/t/16A5RH7+evMTiV0I6Wp8fElGpIjw+2azx+WVtOhiip1hpdBe+DPXui/JGhyQ4USg3AYUJKk+j1e3smfLy7efr5ffbve+1OuAUi+7hheCp8c/pr6oBYKxWK5sSMxGalTOTHiOM1vvR4+CF6ggJzQs2erZC2Kbu4U5n4ODqv8DZwoTlxHH7YeeR4Rg7gE/fpBmf87R58YkrcCSiDxp1ATsBcX9wgBhdzs+I/moGxxop4F9iWA187xmdQjDrqRGSVa3rq4ilK3jm6InZmQsfnxvWtwHKRU/PgBoG7GeW9nQBZBXmniLAHCMWPLRD0TLq/jb7Q0npBjxG5SaZ39WRG3lJIc2t9i07YvKwQPobTn32Je9gZj2ZQTEwM6EeWAKeKWYeHBzkaEhVOlvJUJGo9EZEsn4DbQbHyEvbv1+uoZZtRX+xA6TVFahd9aWq7KYB+n8JgTvnxWduNlQcuqwcn5rYZX4ZMkHZk0pwA+uGE4UEL7ZwPsRkBVxxf4XzIVWzZcywzH4qafruNbYMiuy72KSo9E5nmmPhiuHOOrMiF5Y5td+WPfXFs2O5usfTQFSzIWS+F1mZXiyUhVMJiUa+myhWVtJM9b9ZsSQCupWGGbjYMLf86sA2Th7RNf+0882wKn44pDIRByYga9KTmf7pST6Ki4SteWOZ+H/Zqs0R1ccGjfNrxERXfiahW8I3eG57+bJuenzOzMmJqZeu+X24URe8Gg//RTW30Dma68bgKr4xf28Jc6js7YEO1ABAWgaDIOZoFlAgA6C0AcKRB+fpZon5M1WxU/sUKEnscfk6Z43Brb42jjdfUxo3pWXCaEIvUj9JTg+9AHsgVrMqfM3IFVcK2BbJWakmTxzezpDUAOE2Z7H+y91Yljhd4ideAIkKGFAe1sgWFojGaGdPlYf6muIN6tvWwcAStXGZ0QSMIBTK8MRphzHOirMbndmTDrGGjEOf3Bz8Q5Wrz5fhCeyeIKMAaBWuXw2mUdOilFPt+4NjLpKHGII9vqDEUjQPgODWGSANWVKd0Y5pNDTHQLG0vccK6qAE0LnHvayqjRPyyUEZggr1cjBmSmOgmKctWk6F0EyjPMsWCu3vwHdv6iTT+kdpDl8yZPDFLfWUgR9YymHo2tVRGXTDbcVUYlkLrjgdEkw+fx7CaG89d7AwU3uiOsDiPnEeOCWuzDH+K5SNrrI0oVGNthq3xkicn4EsdDiaRuEQcz2fdIgma3704RvSAjNaLv5O3o0gHRasXassHCyYip8qZa0kieov7H+LhChyUpi6ZRLCYJJanw8nj8TdmheegZ2TwvB9ZgJsh6rwpo9kP4WnYHToJbsmViGFiYx2ZLrxRv1RKC7yxiAJDxWwmqIrw31H61EI5z1AxGqnMopAn4FJhwKL2DMrvrNBlE/olMG/jPvxr+rs5hVDvgWt1knAviq8o6igb8xUqo75oq7alkvazqaU7/YDimhsqfWfIaO2mmslGrVaCrD9X7M8/4Tf/k7Ocpcv99F2nS7QTgyMcNzCrXbaHBNDwd4Q0GeFWAt7j3/AsKwiJk+PlHAM3hVTUj3CR7KVOZ5P5iARlCHS/0idUBhZQlNaJzZ1GReEEwpQGecdRUDmZ4jn25TgqbUzYniDJDfNcJ+FwZpzN8hxce0NZpEj1bqXA/ebbSGdNiLNctZ27IcD6+KWWlcsz0RU/TefRcnxuueAstyIWWxpvw9Lb2oQtatM8RsfaVUL0CnBrMTOE95li0B0VgRc/yuU6CFD73dhXMBYOz1nQKl4izLXHGfBmwnwRBqrnaNyPv/5YfzZ9OJPjB093Fv74ybVRWdlcRonjefzixkDQuK2zOpySIaC2FUqmAGnpJhozvEn45qA4XZhE3HOvk/BByfzsD2Shr+Rsik/ADJFSVhIF/4rHmKsqkYZmIlkgjX/NuoUzKDMuov/QRRQu0EiokHODtDE1Pwjyh8E/gHYHcpA2puYHQf4wtIWfOjtIG1Pl/BOTZwPK2YA4O/Sp68CJk0g8JvJLy4MHR2LFQcZBgeFFslQCNB4QU5wz+6gijQog9sxISX8w0POgAEX0KQ8z7iylGLA2EGQlw9uUBIZCYW2lL9aWlINboa2syQFQwyU4j9rmYd1OMVh0H9g8BIBojSFMyvFYVSf0YyCqbXJu/YAUlbqkydzRyfJdIY0OjS2XZCK22TiCX0xsuSA+eS92MSt686Om/TxjAAlyQLzVwx+AR2cjRY8C+5nP79BGCN8Lre9lTHXT8BhF32zDnaIoRao2pERyPHuJWmC94+xTp1EJulQUMOk7pypZiPY4NnM7soiQVfk4wtt/8L+NbmeizlPz2IsQTFRzvU6XtfV07/lOQdQQ8CH5yTp6CbqlQp61kIys8qiCRL9Rr3nUg3R47R6CbAI2paFdGBF3T7YlOyKkWJU8dJZVDSS/xHU1bjLJwfgZ42AAIIEwQ5B6mz4lBxbZDVKuPblU9Mx3L1RfbbYyy9w3Dbqdi85/r6JzQtoevOhcLIbks8rod7zCQ+srRD1yrj99vRqh5VkC3XZXKcfpoTxb1FNjm0Sa1mPmo21LwoCZUQbr3ojnpStDF7AvfIXz8IcRA8N/nEA0Ole1HA+LCofX4RwElyCfaET4mPr+HRLYdbC+f2rGPO7W9y/fNm2icbgND7bHa3rLrKLOSt7+OmHGGLgX4BF5qQPxB+AnzfoKVp3QTy5FahrTHsbgIixHZrXv1JuFCxjzF5FDUI0DqrD2mPloZ2fsdJ0xSl6ftixWf0vP8dXRg6G1V28F9f2UBRTSxcGT9FmnQYrhYcXR1NLjKwwvADROTVcdEkBqHnCqBoAiybwq8qKm1FKmzJAAYo7M4UcLuoMmldyPsqFI3eKnckZn0V0EWulCZnoZVT9lrjkGRJ/O/rqL4MZdZyl49FKwqeCReQIS17P3pwq/vaRhVmaJJI2UdeYFJoJmTEgvuQdBUxbbKQx959yiimI1f6s7rd2Z+W3KMYmuVFXUVjdAT+3wvvXcBSoQ2G3MMQrEAlQp0KCYotSxqh8yL/A49u5DxkUqbIBSkQnLOTo24WPluLurE0b1GUlX6ulpwfmB60X1J9VqRS4RDgwcIlnKSmsRQwHSge2e/CFqNjVvJx7cECgrSK6hsgtnqbLCGAdiDw4NrQtvklWNExR5MlFE1AIS935njjhlpQ1A3vneL7LB/3Fx++HLu55kcWq1jQoZXFfFUG9jQGmGV/IoVDZdA2FFC3cseV3kdRoHzS7VwWtX3tzCHUlngGFWXKBzEE1eR2S2pRItIqYxfrQQ9FwcU4ZPtCXH1gCPIO6E50cx4SWkLIH/+iWNkt4f2vCRhOJHqsuMEZQ7DfN+Tt3Acb2NbufvAnXPGuPQb0KAocB/th53/iiFLo++ySYclnjD8g03Kg+N91f3o0tzP7QJf4YsgO4Z19fOkdQom4T279Eznyw/5OrwLXF8P7cJvb1oJy9AMzdasbn0TmWkRwhIyLJBQ8sU+/yoghXV4YZ2Xbz1JbRDxiG10PpJuFBKLO1QmKyh42k6OaMmE6qojKO3i2VUQwIbhOGJZtIUOUZFRE36sjrzMQOmiCh6em3fHGRM1J8IaE3HuOaE+PyuCPM0DdZmWGvC0Ek7VwYPWRmcg4m1rQxOLnTIymCBZl51qAzWI/rut+iXQJIrCp80pEkLpwmtAc1+tIt4Klv8vVg8LXUjK1vuktKzfc69ZpdkPm7xsx8rMdGsrBCambrjB7r9WGx/nOJIG5Roo9a+FK7O6PQWAP36ZK8QOXHovycdTTNpcZpKTnEIe61Mg7yQwSB6CCb1brMT0bXJXYO2ng3jVC2iRt0AWqm5lSlTi8d6bx1aN7qkEiXsYm89SBX6ExcDwogTWAPC6NxBa8zXNZRzrjt5O1AnkA3tD1l3QidY2so5Z4I9EywmWHJ1Tlk4LMHi5zkT7Jlga4FJD06wNWBUZ4L9jQmWNAkGJFj70f71uLr+AV6N66d/pk8r+eHbgZaHGLSdbjOwQM0lkQuJIV2+QxcRQt6NLIs5HRxDTYbkGK9aQidLSpzhUC2f+WY0Sm1yfwjCrY5QHV1nCBYkWH26VjP+0YKYqYyMo2inVg7ZqXNkGwlLGDJXCvodRtgKzEm9mx1Jy4d2tSPh7xw9Q007Mjz88gjsyHo9b2sbkjs/MiBrNC/oMdNFui6JUBqgDo6qcotxRMe2TOidZT7DPxfuwizNGFEB5UeW2Dq2kdIC3d9msUxZyTMjdbXM/tixuNi8Sca5SSaZVmvREnaz0f0gUx/eUw3DGR4zJDwmsdNI+wHuky5VaC2MukNn1KupcjUwMLn3pvoGVFWGu9lYjOJIIpHuLAQMDGg/lKwz3khiNRQ4dRteVK15hgfQKi5QyPTZsewsugYXXYWuz1l0HVh0qcKB/R58/xNrVV8Fd06DAq9saI9ZBvz0ydUXD7oNRRwCwTNp1HOWZoNLs1xCsK3EmvNTkZ++MYllRtR+b0Nav98TOxPppREt0RRZ5jQ1L8A0igBjUAFGDV2COjnn+HUubfMljtCmg7UGSphCAUHvk9EByllax1KnmjyJAe+XnpNKC/qagC4BFVCLBzvCLlUpWyyo1Fw2uPpCNVGXrNIXTVGOZ4VwVObtXNWueOmsLMqVxUNSN8FET0wwrqPCQR9ST8gV8dzhGzPUzyvidUJG9Zcqpq0Tkk67hvUC6Yxr4bSns4ylLkTfbSJy1gfpFNVWKYpMrvOtqBNuMiEKSXrWLNTa9WaWS7qVV96aOVsuLCwXFePGO1supAnEjr6ofFljXZA21UupSZ6ol7yqVklCiiRjvuh6WU73SAqRJI2V+CrAAw1FV6AOYQ2zGBGNFruvx9WEOivX42oL9mxP9oCy8lEn/mBM+An9Mq6bkwi+UKXysjny+EGgnfIb5Z0D07x03CSfk/U9kbwiHJbk6XYujeaz3U1KcRpdkxBNsqAtER+fLSfsXBQ1bjN0Y12OzWqXVa1oAdU6M0N8ucyu6C5onxXoNsqi5NAulmO5nG96T5Zhcobr+DtIHtMJz6e7e9bv+HYOoL3NAFpSmHXqMTPDL3ahCzVYgyQL0MjoBEBt9Ua58JlIawOzH2WfaqEZ/oz6wNDWaGnTB6a7LI+TxhdCZ3ldJuV6QKwnEeo3hlgPxHsLRacdozROWZ/Dcg60rHIiJY25jxJmGExm0nGGzmHFKLL2nR8pOjy9O90YUkUxtHhnSXs4FKSPrQlBmuw/yzzF3JpfhpbR2vUDOO81LQLEGwklJ3WqIE9y7ct6KDqrgM+KVRkDYiSC2gKONqYIETsTrEti6SRI65Jx4iT4af7GCDDB2vVAgLjL0aEIsASRdrIEGNkUb4kCE2ODPQWKlH6sw1IgDVJ04hT49xaZeKjpM/+H4yJb3UJfZOeb794GQbLsSEgSpHRgnYyDxGcQ0mnGUCaSfDkXGMRQ3iQICUq3wLyXxV6jKgCQyHtKkSMj5D3c9FwkffdRdPRtP7sLtNLX1f8B&lt;/diagram&gt;&lt;diagram name=&quot;data flow simplified&quot; id=&quot;1LjZQAbAWfZvkRBlXTA9&quot;&gt;7V1rj5u4Gv41kbaVBmHu+Zi5pKfSrLbS9LSnnyoSSEKHgSyQuZxfvzZgwBcCBAyZbpJWE16MIfbz3l87M/Xm6fVTZO93f4aO688U2XmdqbczRQFgrsE/iPKWUcy5khG2kefkjUrCg/d/NyfKOfXgOW5MNEzC0E+8PUlch0HgrhOCZkdR+EI224Q+ede9vXUZwsPa9lnqd89JdjnVkOXyxH9cb7vLbz3HJ55s3DgnxDvbCV8qJPVupt5EYZhkn55eb1wfDR4el61zFd9/Xd4fPgPzy/fgbys4PF9lnS27XFJ8hcgNkmG7zufy2fYP+XjNFMOHN7n20DdO3vJhNP4+oK95vQmD5CpOJ3kBGwB5/1qehJ+2+V8fN05n1g8jopeZoq7SN3vtrZ3Y8Jq7r/e4l1VE93uhjEOBWMqmsEVDr6QpBHKUKDwEjotAKMPTLzsvcR/29hqdfYEiB9J2yZMPjwD86NjxLm2LDuIkCh/dmwI+6nX6RsjyfB/TgzBwc7BVmmavnL60nzwfya9vbuTYgV08ZiNL5az37EaJ+1oRKDmLfXLDJzeJ3mCT/OwcS4u3QtBkxy+l8FGsnLaryB0VX2jnAm9b9F0yNfyQ83UHHtc4PE7NketAmZkfhlGyC7dhYPt3JfWanMWyzX0Y7vPp+uUmyVuuAOxDEpIzWzMPiJxfo7OzaKSvFAp2lCyQOihnPKUtPTQY6UO5gUO1gJTKeQZORe/dwIAG6ygUIte3E++ZVEC8ac0v/RJ6qaAsIAQICCkGhQz4vbdukl9VlfhUR5YlH+8oDg/R2mU6gqNov1Wa7VGDuPsDl6DNeiwhXAzW6ag2zlRzffPcl/MQ3+dGuaiT7upE00gW1hVWnZgGR50omih1Yp6n9gDyZOpjfYieC5Sdly5pVAFtdYkpn6ZLhhL31jFxn4mKByiU5QfXR16kIi++fG4lT9AM3Nsr6PUSgLN9bxvAz2s4jS6c8GvEsx50Kxf5iSfPcTJsu1Cr2Ku0P4STXFvCzvXrmX5bg9IaMPewTswa2VK41vkzEt4rT+bIEpDlOTnb2VFPMGqkmYDnFHcQbjaxKwQ885bg6YKZ4wKPEAlnJf1Wfrh+/LrzAkoEgl4iEEIzevtf0Q08+IGukXR8ePtaiFl09JYfdZOWmYw51k7PGmZS7UhDVW4pf0ueMHWLhC+OcJ3KFfW4ZzjHOFH6Mh3pxmn6YChOxGN29s6oxfJTYS52tCaqHFfyE9ci5ZsUBXNV+OkHwU585kqPvriRB2cN6bATOK6RkQxTiCFT74LW8whl6uj6XDL106wdui/NGtfaAYDDJufg3T4kIbR3zsOf/DdTJvClRbrPhJ/eTUK196VpJcoLzQKeLy0uNIvtlQqfL74/ID5D5ugfq8P60U0+MPMWQ+p6h9XfIfG9AE4Mzp8dMwWrUwXp5t3CuONadsWZYmrkihOUOkxfwthLvBA5Q6swScInjpeUIIXMOlOUKqZ0Llb+CDB2vM++1cZ7RY+RuVdudPfsZl5WCs2dvUcXPL1uURJTsl9iTcoGrx5zRTqvu1bsgDkDSKZKmlwaCzvVkHSNAzxLFO5MBnf9QVYwOZwEx3PLc1gmkNi7uZHhi8Fe3nhC2Mm9YLeFI/pzHdkvvhvFjK1KgG7r23FcGUseSNOxwYlrdFMfjcG1vX7cpj3jYXPcjX3wE4FQBjKgfAdFZ+UnR3wCUdKzwXfIkdTbWXBfvaRifcOjH5Uzpe2NDrDpTSi0Id33NcKMt54N6bwP7YS39R3A4EHQfnBSz83oZs263Az/EoXOYY0ETH8L8UKZ0Ig/A9t8k74mts3pPBfXNldGtc0V7YTI1NhxX06YqjDDxCa9sFYEkixjXZjFfLX5/KhuRAf9olKNKkixhESlGsOpKp11bRtw0oFaBKtwX3M0tOWLeriBajd0ivHUuXz8Qen22gi1HtjQ/I2DxF25z1+ll2HH5/2yEJ2hxgBsYqGuQK+7j1jg1lcp5fbgiVYlVOvZ+SX+V2P1cdhmxGy3cpyNuBGqiieutMQ0lg9D5L6hJULK4byjnjA3FKJTnJIWn/tWTqnXOQMzZsxsW5Fgu5IlYJgzMoWtNCWxx8izaWLybN0tGsGZL6W+0KetxLSOueGeePfu40f4zT9KXrAJpV9xGPDdvXbyGocYgzBxm93AVREW/CuL185wGWT0+Be8yktSyEqyzrB118Bk++AVzXTm4nq+nNGhTYXvq8aUIsFiq+2SmO6OqGVICmWIm5wSflPSWWdUWM2lyiubqAF0Lzb55QaPXhBLG0fywoZQ0tHwBQau95Suz6qilB+sb4zx1wS+c6Ck91ngqD03hJ8/yu0uSdDas9x4WjuBLHnQTNh4kB0iaQ1vpiydNM62RPQ4//pX9osbw/m8WkV24MRXz6GP4LXUAZrcfOCugGJJ+2A7HX9V9GYL/qpJ1YSFsEhvko4c1PyOS4WRSnbEjYr5KRsKY1WTLMiCjMrwqcbJqmHa8Fx6PB9xtqbWCIWCBSoH9lLVeVv7SRFiP3X1QoGsU0m0vKqwLt7SdIEYv1VVT0CymMJWoy1exbgGJEcObdTPpzHqNUC5n51jLK3XnDG3Euw/qLzVjseSeHlCDllE0Xb1B5DR1TPlJg29EJ8/oAOEATk1BzY5bhdpG8N+2qcnVfgEqTWTYpmmk100RXk6F6WPF9qx2nMDFiaDrEwwDbKaBq9g7xueMcleTbIDceEZdbLQdmUihcSqC5XfY3lUa/0vWoICACyU2CpelOnZsj64u7gcKPoNiuQpdSOxZoQxBbj75zS7VPrwspkiES/IkB0MmezqcEuWFNMCxZvq1pLm1VcrPupudstTwH+ypbKny/YONvLkPp0uZhFts9U7GEB4wW46kHYpw51dynAJcUqaHlNX4WJ2FZix6dnD6uQessUYn+7/ewf/3NiJ7YfbijO2Oh4Sb5ni6crghdxtx+BUQPi3YnAUpv+5zuelL5PXsDQcwmX6EsjUAMhAUqg191g7kOtE8PZ7o+SdcMfvLaI9Ug3k0Kb9SDl+88RF4F2tblOlaglUwuhubH90Hyn2auhJKGQYRx152S7e4OL3YBcxO0W8U3eY3tdPFM/MzaM80LW9GMcWD/qpK2UEWWttltrkOKyQTrxZukOpfJN5GM2VEg2m4mBO38W7+728O85iYY3j3YmzAHmL4ibWccIWV4pJIXfDytQFCoD0QjQVHNU/De0bbDaUVTGri1zIyjsNekWmBYCh6TI0DlXLaKVzB1NzbC4ZfvSg0+lyeeC8t5E7pbBeGyx1eyVLTBH8MJX11KZyYLRd5TR2846LaHxHorGrNNJlqnBQtDfJLh76t4mfwdb1IPGjkcEBZRDpc0WJNGrDMYHSh7eFS9X/YbyqhoUQ8d4OTvaGlg8VvybrqVVknOcWtY+W1/gLpfFPODi16+UbEmOMm+JTHhLDXX1dKK7HRztCz8+OFCdhlNXX99teX5Q7YxjUUgpsLVZj2qO6M2yyatQNtzayrco2g0CUprk1M7hdNtwaeMMtTWZ96LE33MKlCqKSpPygWbke7Ioqc1V0yJh5aSv1+UNdGnSR7Ny0pHVA4V1YGNfoAbL/0NqAzwIp6UIshsijmSwRsM3gH8C7A03k0UyWCNhm6Ag/NUnk0UydfWL6asC5GlBXp+bZSZnjWy+CjTOREiB3g5JYhdVfV/ozorBi1gAqPGnFlUzQuE1N9c9r9DzI1s0+ka3sDN+18kuUyALyXJMs0jg1gCZxCju0cktbQl2yO90OJ7naBAD5XmBlHknHtu+C8A67YnR0wEnHtduMD7cGqTLjOsc6wjTRO2+0LWI26CVKgrbwmHfcq4ZuP0puTGeDhv3NyUtN3++d9ZmTbtLkNX16i9DmBcQXEB/fHxYoE6OYt/vSBcUXFHdJwE8O4stW3RcQ97UnJgexxfqMZ7qBY2VTsOF+wafbRDcWPRrv79d5aGfTUOeS1fLneQZzzeYnoHDY/Hz5U074IN9kDh922WJuCnyLWvTXGtKTLfprXlRqtgygDIVnXIL83srNe+03dIospsyZOwO9J8SwOfiuBb20M37uQU1M+F6iZ2hpYqbNb8/AxGTSDP1szEOc2ZYtFpeNnHZgNDLnp6VHLTU2mipaOudI5Y29Jtt/K/blKRu1XCfQtp4mS5Zeu3YApZj/KL4A5pJDHTOHWivXECub1p2szfrnV5fyQpUX5yj4euRXoS6L4eP9XBWsIbAMBMf+inyqwQo3iyPcRBWAmGzh0YW13xFrzzX9dqlcWJvP2tCmSdyfujq9FaPrwqwYeBiFyBgofTg0An+GDiq7vvsH&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="480" y="13" width="280" height="320" fill="none" stroke="#b3b3b3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 173px; margin-left: 481px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><i style="font-size: 10px"><font color="#b3b3b3">Data ETL<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></font><br /></i></div></div></div></foreignObject><text x="620" y="177" fill="#333333" font-family="Verdana" font-size="12px" text-anchor="middle">Data ETL...</text></switch></g><path d="M 440 113 L 481 113" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><rect x="0" y="373" width="760" height="240" fill="none" stroke="#b3b3b3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 758px; height: 1px; padding-top: 493px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><i style="font-size: 10px"><font color="#b3b3b3">Data View<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></font><br /></i></div></div></div></foreignObject><text x="380" y="497" fill="#333333" font-family="Verdana" font-size="12px" text-anchor="middle">Data View...</text></switch></g><path d="M 260 113 Q 260 113 440 113" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 104px; margin-left: 401px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #666666; background-color: rgb(24, 20, 29); "><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(102, 102, 102); line-height: 1.2; pointer-events: all; background-color: rgb(24, 20, 29); white-space: nowrap;"><i>S3 Select API</i></div></div></div></foreignObject><text x="401" y="107" fill="#666666" font-family="Verdana" font-size="10px" text-anchor="middle">S3 Select API</text></switch></g><path d="M 213.62 112 Q 213.62 112 82 112" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 220.62 112 L 213.62 114.33 L 213.62 109.67 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 102px; margin-left: 140px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #666666; background-color: rgb(24, 20, 29); "><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(102, 102, 102); line-height: 1.2; pointer-events: all; background-color: rgb(24, 20, 29); white-space: nowrap;"><i>S3 API</i></div></div></div></foreignObject><text x="140" y="105" fill="#666666" font-family="Verdana" font-size="10px" text-anchor="middle">S3 API</text></switch></g><path d="M 240 333 Q 240 333 240 460.88" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 240 467.88 L 237.67 460.88 L 242.33 460.88 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><rect x="160" y="13" width="160" height="320" fill="none" stroke="#b3b3b3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 173px; margin-left: 161px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #333333; "><div style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><i style="font-size: 10px"><font color="#b3b3b3">Data Stores<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></font><br /></i></div></div></div></foreignObject><text x="240" y="177" fill="#333333" font-family="Verdana" font-size="12px" text-anchor="middle">Data Stores...</text></switch></g><rect x="221.73" y="93" width="36.54" height="38" fill="none" stroke="none" pointer-events="all"/><path d="M 254.08 113.84 L 254.28 112.4 C 255.81 113.34 256.29 113.88 256.43 114.11 C 256.02 114.23 255.2 114.12 254.08 113.84 Z M 238.81 108.62 C 238.81 108.58 238.85 108.54 238.9 108.54 C 238.91 108.54 238.92 108.55 238.93 108.55 L 238.87 108.68 C 238.84 108.67 238.81 108.65 238.81 108.62 Z M 250.64 126.46 C 250.64 126.5 250.63 126.54 250.63 126.58 C 250.63 126.71 250.31 127.22 248.85 127.79 C 248.2 128.05 247.44 128.28 246.58 128.48 C 244.36 128.99 241.63 129.27 238.89 129.27 C 231.59 129.27 227.16 127.4 227.16 126.58 C 227.16 126.54 227.16 126.5 227.15 126.46 L 223.84 101.87 C 224.05 102 224.28 102.11 224.52 102.23 C 224.59 102.26 224.66 102.29 224.73 102.33 C 224.94 102.42 225.16 102.51 225.38 102.6 C 225.48 102.64 225.57 102.68 225.67 102.72 C 225.91 102.81 226.16 102.89 226.41 102.98 C 226.49 103 226.56 103.03 226.63 103.05 C 226.96 103.15 227.3 103.25 227.65 103.34 C 227.75 103.37 227.85 103.39 227.95 103.42 C 228.22 103.49 228.49 103.55 228.77 103.61 C 228.89 103.64 229.01 103.67 229.14 103.69 C 229.45 103.76 229.77 103.82 230.1 103.88 C 230.17 103.9 230.24 103.91 230.31 103.92 C 230.7 103.99 231.11 104.06 231.52 104.12 C 231.63 104.13 231.75 104.15 231.87 104.16 C 232.18 104.21 232.49 104.25 232.81 104.28 C 232.94 104.3 233.07 104.31 233.2 104.33 C 233.59 104.37 233.97 104.41 234.36 104.44 C 234.41 104.44 234.45 104.45 234.5 104.45 C 234.94 104.49 235.37 104.51 235.81 104.54 C 235.94 104.55 236.06 104.55 236.19 104.56 C 236.52 104.58 236.85 104.59 237.18 104.6 C 237.31 104.6 237.44 104.61 237.57 104.61 C 238.01 104.62 238.45 104.63 238.89 104.63 C 239.33 104.63 239.78 104.62 240.22 104.61 C 240.35 104.61 240.48 104.6 240.61 104.6 C 240.94 104.59 241.27 104.58 241.6 104.56 C 241.73 104.55 241.85 104.55 241.98 104.54 C 242.42 104.51 242.85 104.49 243.29 104.45 C 243.34 104.45 243.38 104.44 243.43 104.44 C 243.82 104.41 244.2 104.37 244.59 104.33 C 244.72 104.31 244.85 104.3 244.98 104.28 C 245.3 104.25 245.61 104.21 245.92 104.16 C 246.04 104.15 246.16 104.13 246.27 104.12 C 246.68 104.06 247.09 103.99 247.48 103.92 C 247.55 103.91 247.62 103.9 247.69 103.88 C 248.02 103.82 248.34 103.76 248.66 103.69 C 248.78 103.67 248.9 103.64 249.02 103.61 C 249.3 103.55 249.58 103.49 249.85 103.42 C 249.94 103.39 250.04 103.37 250.14 103.34 C 250.49 103.25 250.83 103.15 251.16 103.05 C 251.23 103.03 251.3 103 251.38 102.98 C 251.63 102.89 251.88 102.81 252.12 102.72 C 252.22 102.68 252.31 102.64 252.41 102.6 C 252.64 102.51 252.85 102.42 253.06 102.32 C 253.13 102.29 253.2 102.26 253.27 102.23 C 253.51 102.11 253.74 102 253.95 101.87 L 252.41 113.35 C 249.27 112.34 244.86 110.52 240.69 108.53 C 240.65 107.58 239.86 106.81 238.9 106.81 C 237.9 106.81 237.09 107.62 237.09 108.62 C 237.09 109.62 237.9 110.43 238.9 110.43 C 239.29 110.43 239.65 110.3 239.94 110.09 C 243.68 111.88 248.45 114 252.17 115.07 Z M 238.89 94.73 C 247.88 94.73 254.21 97.51 254.33 99.06 L 254.31 99.24 C 254.29 99.29 254.26 99.34 254.23 99.4 C 254.21 99.44 254.19 99.49 254.16 99.53 C 254.12 99.59 254.06 99.64 254.01 99.69 C 253.97 99.74 253.93 99.79 253.88 99.84 C 253.82 99.89 253.75 99.94 253.68 100 C 253.61 100.05 253.56 100.1 253.48 100.15 C 253.4 100.2 253.31 100.25 253.22 100.31 C 253.14 100.36 253.06 100.41 252.96 100.46 C 252.87 100.51 252.76 100.56 252.65 100.61 C 252.54 100.67 252.44 100.72 252.33 100.77 C 252.22 100.82 252.09 100.87 251.97 100.92 C 251.84 100.97 251.72 101.02 251.58 101.07 C 251.45 101.12 251.31 101.17 251.17 101.22 C 251.03 101.27 250.89 101.32 250.73 101.37 C 250.58 101.41 250.42 101.46 250.27 101.5 C 250.1 101.55 249.95 101.6 249.77 101.65 C 249.61 101.69 249.43 101.73 249.26 101.78 C 249.08 101.82 248.91 101.87 248.72 101.91 C 248.53 101.95 248.33 101.99 248.14 102.03 C 247.95 102.07 247.77 102.11 247.57 102.15 C 247.36 102.19 247.14 102.22 246.93 102.26 C 246.73 102.29 246.53 102.33 246.33 102.36 C 246.1 102.4 245.87 102.43 245.63 102.46 C 245.42 102.49 245.22 102.52 245 102.55 C 244.75 102.58 244.48 102.6 244.22 102.63 C 244.01 102.65 243.81 102.68 243.59 102.7 C 243.3 102.72 243 102.74 242.7 102.76 C 242.5 102.78 242.3 102.8 242.1 102.81 C 241.77 102.83 241.43 102.84 241.09 102.86 C 240.9 102.86 240.72 102.87 240.53 102.88 C 240 102.89 239.45 102.9 238.89 102.9 C 238.34 102.9 237.79 102.89 237.26 102.88 C 237.07 102.87 236.88 102.86 236.69 102.85 C 236.36 102.84 236.02 102.83 235.69 102.81 C 235.48 102.8 235.27 102.78 235.06 102.76 C 234.77 102.74 234.48 102.72 234.2 102.7 C 233.98 102.68 233.78 102.65 233.57 102.63 C 233.31 102.6 233.04 102.58 232.79 102.55 C 232.57 102.52 232.37 102.49 232.16 102.46 C 231.93 102.43 231.69 102.4 231.46 102.36 C 231.25 102.33 231.05 102.29 230.84 102.26 C 230.63 102.22 230.42 102.19 230.22 102.15 C 230.02 102.11 229.84 102.07 229.64 102.03 C 229.45 101.99 229.25 101.95 229.07 101.91 C 228.88 101.87 228.71 101.82 228.53 101.78 C 228.36 101.73 228.18 101.69 228.02 101.65 C 227.84 101.6 227.68 101.55 227.52 101.5 C 227.36 101.46 227.21 101.41 227.06 101.37 C 226.9 101.32 226.76 101.27 226.61 101.21 C 226.48 101.17 226.34 101.12 226.21 101.07 C 226.07 101.02 225.95 100.97 225.82 100.92 C 225.7 100.87 225.57 100.82 225.46 100.77 C 225.35 100.72 225.25 100.67 225.14 100.61 C 225.04 100.56 224.92 100.51 224.83 100.46 C 224.73 100.41 224.66 100.36 224.57 100.3 C 224.48 100.25 224.39 100.2 224.31 100.15 C 224.24 100.1 224.18 100.05 224.11 100 C 224.04 99.94 223.97 99.89 223.91 99.84 C 223.86 99.79 223.82 99.74 223.77 99.69 C 223.73 99.64 223.67 99.58 223.63 99.53 C 223.6 99.49 223.58 99.44 223.56 99.39 C 223.53 99.34 223.5 99.29 223.48 99.24 L 223.46 99.05 C 223.58 97.51 229.91 94.73 238.89 94.73 Z M 258.18 113.92 C 258 112.93 256.85 111.88 254.53 110.55 L 256.01 99.55 L 256.01 99.55 L 256.01 99.55 L 256.05 99.21 C 256.05 99.17 256.06 99.14 256.06 99.1 C 256.06 95.5 247.01 93 238.89 93 C 230.78 93 221.73 95.5 221.73 99.1 C 221.73 99.14 221.74 99.17 221.74 99.21 L 221.79 99.55 L 221.79 99.55 L 225.43 126.65 C 225.55 129.82 233.73 131 238.89 131 C 241.75 131 244.62 130.7 246.97 130.16 C 247.91 129.94 248.76 129.69 249.49 129.4 C 251.35 128.66 252.32 127.73 252.36 126.65 L 253.86 115.49 C 254.68 115.67 255.43 115.77 256.05 115.77 C 256.88 115.77 257.51 115.6 257.85 115.19 C 258.15 114.84 258.27 114.38 258.18 113.92 Z" fill="#7ea6e0" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 138px; margin-left: 240px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #666666; "><div style="display: inline-block; font-size: 8px; font-family: Verdana; color: rgb(102, 102, 102); line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; white-space: nowrap;">AWS S3 (bucket)</div></div></div></foreignObject><text x="240" y="146" fill="#666666" font-family="Verdana" font-size="8px" text-anchor="middle" font-weight="bold" font-style="italic">AWS S3 (b...</text></switch></g><rect x="570" y="78" width="10" height="10" fill="none" stroke="none" pointer-events="all"/><path d="M 579.77 78 L 570.23 78 C 570.1 78 570 78.1 570 78.23 L 570 84.59 C 570 84.72 570.1 84.82 570.23 84.82 L 574.09 84.82 L 574.09 84.36 L 573.41 84.36 L 573.41 83.23 L 574.55 83.23 L 574.55 82.77 L 573.41 82.77 L 573.41 81.41 L 579.55 81.41 L 579.55 82.32 L 580 82.32 L 580 78.23 C 580 78.1 579.9 78 579.77 78 Z M 571.59 79.36 L 571.59 78.45 L 579.55 78.45 L 579.55 79.36 Z M 571.59 80.95 L 571.59 79.82 L 572.95 79.82 L 572.95 80.95 Z M 570.45 79.36 L 570.45 78.45 L 571.14 78.45 L 571.14 79.36 Z M 570.45 84.36 L 570.45 79.82 L 571.14 79.82 L 571.14 84.36 Z M 571.59 84.36 L 571.59 83.23 L 572.95 83.23 L 572.95 84.36 Z M 571.59 82.77 L 571.59 81.41 L 572.95 81.41 L 572.95 82.77 Z M 573.41 80.95 L 573.41 79.82 L 579.55 79.82 L 579.55 80.95 Z M 580 84.36 L 579.55 84.36 C 579.55 84.8 579.28 85.04 579.07 85.16 C 579.03 84.77 578.92 84.45 578.75 84.2 C 579 84.03 579.32 83.67 579.32 83 L 578.86 83 C 578.86 83.52 578.61 83.76 578.45 83.86 C 578.37 83.79 578.28 83.73 578.18 83.68 C 578.18 83.45 578.12 83.23 578.03 83.05 C 578.14 82.95 578.28 82.77 578.35 82.51 C 578.52 82.44 578.64 82.28 578.64 82.09 C 578.64 81.84 578.43 81.64 578.18 81.64 C 577.93 81.64 577.73 81.84 577.73 82.09 C 577.73 82.23 577.79 82.36 577.9 82.44 C 577.85 82.56 577.79 82.65 577.73 82.71 C 577.6 82.61 577.44 82.55 577.27 82.55 C 577.1 82.55 576.95 82.61 576.81 82.71 C 576.76 82.65 576.69 82.56 576.65 82.44 C 576.75 82.36 576.82 82.23 576.82 82.09 C 576.82 81.84 576.61 81.64 576.36 81.64 C 576.11 81.64 575.91 81.84 575.91 82.09 C 575.91 82.28 576.03 82.44 576.19 82.51 C 576.27 82.77 576.4 82.95 576.52 83.05 C 576.42 83.23 576.36 83.45 576.36 83.68 C 576.27 83.73 576.18 83.79 576.09 83.86 C 575.94 83.76 575.68 83.52 575.68 83 L 575.23 83 C 575.23 83.67 575.55 84.03 575.79 84.2 C 575.63 84.45 575.51 84.77 575.47 85.16 C 575.26 85.04 575 84.8 575 84.36 L 574.55 84.36 C 574.55 85.11 575.08 85.51 575.46 85.67 C 575.47 85.93 575.52 86.19 575.59 86.43 C 575.34 86.49 574.55 86.75 574.55 87.32 L 575 87.32 C 575 87.14 575.44 86.93 575.74 86.86 L 575.72 86.8 C 576.04 87.52 576.62 88 577.27 88 C 577.93 88 578.5 87.52 578.82 86.8 L 578.81 86.86 C 579.11 86.93 579.55 87.14 579.55 87.32 L 580 87.32 C 580 86.75 579.21 86.49 578.96 86.43 C 579.03 86.19 579.07 85.93 579.08 85.67 C 579.47 85.51 580 85.11 580 84.36 Z M 578.64 85.5 C 578.64 85.85 578.58 86.19 578.47 86.48 L 577.5 85.83 L 577.5 83.93 C 578.22 84.02 578.64 84.58 578.64 85.5 Z M 577.27 83 C 577.48 83 577.65 83.22 577.71 83.5 C 577.56 83.47 577.42 83.45 577.27 83.45 C 577.13 83.45 576.98 83.47 576.84 83.5 C 576.89 83.22 577.07 83 577.27 83 Z M 577.05 83.93 L 577.05 85.83 L 576.08 86.48 C 575.97 86.19 575.91 85.85 575.91 85.5 C 575.91 84.58 576.32 84.02 577.05 83.93 Z M 577.27 87.55 C 576.88 87.55 576.53 87.29 576.28 86.89 L 577.27 86.23 L 578.27 86.89 C 578.02 87.29 577.67 87.55 577.27 87.55 Z" fill="#cc0000" stroke="none" pointer-events="all"/><rect x="0" y="13" width="120" height="320" fill="none" stroke="#b3b3b3" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 173px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><i style="font-size: 10px"><font color="#b3b3b3"><br />Data Producers<br /></font><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></i></div></div></div></foreignObject><text x="60" y="177" fill="#ffffff" font-family="Verdana" font-size="12px" text-anchor="middle">Data Producers...</text></switch></g><path d="M 73.78 242.96 Q 100 243 100 218 Q 100 193 120 193" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 73.75 243 L 440 243" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 234px; margin-left: 400px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #666666; background-color: rgb(24, 20, 29); "><div style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(102, 102, 102); line-height: 1.2; pointer-events: all; font-style: italic; background-color: rgb(24, 20, 29); white-space: nowrap;"><font style="font-size: 10px">file:///</font></div></div></div></foreignObject><text x="400" y="237" fill="#666666" font-family="Verdana" font-size="12px" text-anchor="middle" font-style="italic">file:///</text></switch></g><path d="M 120 193 Q 120 193 211.87 193" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 218.87 193 L 211.87 195.33 L 211.87 190.67 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 46.25 223 L 61.75 223 L 73.75 235 L 73.75 263 L 46.25 263 L 46.25 223 Z" fill="none" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 61.75 223 L 61.75 235 L 73.75 235 Z" fill-opacity="0.05" fill="#000000" stroke="none" pointer-events="all"/><path d="M 61.75 223 L 61.75 235 L 73.75 235" fill="none" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 26px; height: 1px; padding-top: 243px; margin-left: 47px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #666666; "><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(102, 102, 102); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font style="font-size: 8px"><i><br /><br /><br /><br /><br />**/*.info.json</i></font></div></div></div></foreignObject><text x="60" y="246" fill="#666666" font-family="Verdana" font-size="10px" text-anchor="middle" font-weight="bold">**/*....</text></switch></g><image x="37.5" y="89.5" width="44" height="44" xlink:href="https://cdn0.iconfinder.com/data/icons/font-awesome-brands-vol-1/512/jenkins-128.png" preserveAspectRatio="none" opacity="0.66"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 141px; margin-left: 60px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #666666; "><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(102, 102, 102); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;"><i><font style="font-size: 8px">jenkins.fd.io</font></i></div></div></div></foreignObject><text x="60" y="151" fill="#666666" font-family="Verdana" font-size="10px" text-anchor="middle" font-weight="bold">jenkins....</text></switch></g><path d="M 653.45 111 Q 610 111 580 111" fill="none" stroke="#b3b3b3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 660.45 111 L 653.45 113.33 L 653.45 108.67 Z" fill="#b3b3b3" stroke="#b3b3b3" stroke-miterlimit="10" pointer-events="all"/><path d="M 440 272 L 266.38 272" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 259.38 272 L 266.38 269.67 L 266.38 274.33 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 264px; margin-left: 401px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(240, 240, 240); background-color: rgb(24, 20, 29); "><div style="display: inline-block; font-size: 8px; font-family: Helvetica; color: rgb(240, 240, 240); line-height: 1.2; pointer-events: all; background-color: rgb(24, 20, 29); white-space: nowrap;"><i style="color: rgb(102 , 102 , 102) ; font-family: &quot;verdana&quot; ; font-size: 10px">S3 API</i></div></div></div></foreignObject><text x="401" y="266" fill="rgb(240, 240, 240)" font-family="Helvetica" font-size="8px" text-anchor="middle">S3 API</text></switch></g><path d="M 679.8 131 Q 679.8 272 440 272" fill="none" stroke="#b3b3b3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 560 133 Q 560 272 440 272" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 679.8 131 L 679.8 299.2 L 679.8 459.13" fill="none" stroke="#b3b3b3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 679.8 466.13 L 677.47 459.13 L 682.13 459.13 Z" fill="#b3b3b3" stroke="#b3b3b3" stroke-miterlimit="10" pointer-events="all"/><rect x="540" y="78" width="10" height="10" fill="none" stroke="none" pointer-events="all"/><path d="M 549.77 78 L 540.23 78 C 540.1 78 540 78.1 540 78.23 L 540 84.59 C 540 84.72 540.1 84.82 540.23 84.82 L 544.09 84.82 L 544.09 84.36 L 543.41 84.36 L 543.41 83.23 L 544.55 83.23 L 544.55 82.77 L 543.41 82.77 L 543.41 81.41 L 549.55 81.41 L 549.55 82.32 L 550 82.32 L 550 78.23 C 550 78.1 549.9 78 549.77 78 Z M 541.59 79.36 L 541.59 78.45 L 549.55 78.45 L 549.55 79.36 Z M 541.59 80.95 L 541.59 79.82 L 542.95 79.82 L 542.95 80.95 Z M 540.45 79.36 L 540.45 78.45 L 541.14 78.45 L 541.14 79.36 Z M 540.45 84.36 L 540.45 79.82 L 541.14 79.82 L 541.14 84.36 Z M 541.59 84.36 L 541.59 83.23 L 542.95 83.23 L 542.95 84.36 Z M 541.59 82.77 L 541.59 81.41 L 542.95 81.41 L 542.95 82.77 Z M 543.41 80.95 L 543.41 79.82 L 549.55 79.82 L 549.55 80.95 Z M 550 84.36 L 549.55 84.36 C 549.55 84.8 549.28 85.04 549.07 85.16 C 549.03 84.77 548.92 84.45 548.75 84.2 C 549 84.03 549.32 83.67 549.32 83 L 548.86 83 C 548.86 83.52 548.61 83.76 548.45 83.86 C 548.37 83.79 548.28 83.73 548.18 83.68 C 548.18 83.45 548.12 83.23 548.03 83.05 C 548.14 82.95 548.28 82.77 548.35 82.51 C 548.52 82.44 548.64 82.28 548.64 82.09 C 548.64 81.84 548.43 81.64 548.18 81.64 C 547.93 81.64 547.73 81.84 547.73 82.09 C 547.73 82.23 547.79 82.36 547.9 82.44 C 547.85 82.56 547.79 82.65 547.73 82.71 C 547.6 82.61 547.44 82.55 547.27 82.55 C 547.1 82.55 546.95 82.61 546.81 82.71 C 546.76 82.65 546.69 82.56 546.65 82.44 C 546.75 82.36 546.82 82.23 546.82 82.09 C 546.82 81.84 546.61 81.64 546.36 81.64 C 546.11 81.64 545.91 81.84 545.91 82.09 C 545.91 82.28 546.03 82.44 546.19 82.51 C 546.27 82.77 546.4 82.95 546.52 83.05 C 546.42 83.23 546.36 83.45 546.36 83.68 C 546.27 83.73 546.18 83.79 546.09 83.86 C 545.94 83.76 545.68 83.52 545.68 83 L 545.23 83 C 545.23 83.67 545.55 84.03 545.79 84.2 C 545.63 84.45 545.51 84.77 545.47 85.16 C 545.26 85.04 545 84.8 545 84.36 L 544.55 84.36 C 544.55 85.11 545.08 85.51 545.46 85.67 C 545.47 85.93 545.52 86.19 545.59 86.43 C 545.34 86.49 544.55 86.75 544.55 87.32 L 545 87.32 C 545 87.14 545.44 86.93 545.74 86.86 L 545.72 86.8 C 546.04 87.52 546.62 88 547.27 88 C 547.93 88 548.5 87.52 548.82 86.8 L 548.81 86.86 C 549.11 86.93 549.55 87.14 549.55 87.32 L 550 87.32 C 550 86.75 549.21 86.49 548.96 86.43 C 549.03 86.19 549.07 85.93 549.08 85.67 C 549.47 85.51 550 85.11 550 84.36 Z M 548.64 85.5 C 548.64 85.85 548.58 86.19 548.47 86.48 L 547.5 85.83 L 547.5 83.93 C 548.22 84.02 548.64 84.58 548.64 85.5 Z M 547.27 83 C 547.48 83 547.65 83.22 547.71 83.5 C 547.56 83.47 547.42 83.45 547.27 83.45 C 547.13 83.45 546.98 83.47 546.84 83.5 C 546.89 83.22 547.07 83 547.27 83 Z M 547.05 83.93 L 547.05 85.83 L 546.08 86.48 C 545.97 86.19 545.91 85.85 545.91 85.5 C 545.91 84.58 546.32 84.02 547.05 83.93 Z M 547.27 87.55 C 546.88 87.55 546.53 87.29 546.28 86.89 L 547.27 86.23 L 548.27 86.89 C 548.02 87.29 547.67 87.55 547.27 87.55 Z" fill="#cc0000" stroke="none" pointer-events="all"/><rect x="661.29" y="91" width="36.92" height="40" fill="none" stroke="none" pointer-events="all"/><path d="M 667.93 131 L 697.93 131 L 697.93 91 L 667.93 91 Z M 669.75 129.18 L 669.75 92.82 L 696.11 92.82 L 696.11 129.18 Z M 672.48 96.45 L 694.3 96.45 L 694.3 94.64 L 672.48 94.64 Z M 672.48 100.09 L 694.3 100.09 L 694.3 98.27 L 672.48 98.27 Z M 672.48 123.73 L 694.3 123.73 L 694.3 121.91 L 672.48 121.91 Z M 672.48 127.36 L 694.3 127.36 L 694.3 125.55 L 672.48 125.55 Z M 661.57 91 L 666.11 91 L 666.11 92.82 L 663.39 92.82 L 663.39 129.18 L 666.11 129.18 L 666.11 131 L 661.57 131 Z M 686.11 121 L 686.11 116.67 L 692.15 104.59 C 692.36 104.34 692.48 104.05 692.48 103.73 C 692.48 101.2 685.52 101 683.39 101 C 681.25 101 674.3 101.2 674.3 103.73 C 674.3 104.05 674.41 104.34 674.62 104.59 L 680.66 116.67 L 680.66 121 Z M 683.39 102.82 C 686.98 102.82 689.36 103.33 690.31 103.73 C 689.36 104.13 686.98 104.64 683.39 104.64 C 679.8 104.64 677.41 104.13 676.46 103.73 C 677.41 103.33 679.8 102.82 683.39 102.82 Z M 677.3 105.89 C 679.46 106.39 682.19 106.45 683.39 106.45 C 684.59 106.45 687.32 106.39 689.47 105.89 L 684.3 116.24 L 684.3 119.18 L 682.48 119.18 L 682.48 116.24 Z" fill="#b3b3b3" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 138px; margin-left: 680px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #B3B3B3; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 8px; font-family: Verdana; color: rgb(179, 179, 179); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><font style="font-size: 8px"><i style="font-size: 8px"><b style="font-size: 8px">AWS GLUE Catalog</b></i></font></div></div></div></foreignObject><text x="680" y="146" fill="#B3B3B3" font-family="Verdana" font-size="8px" text-anchor="middle">AWS GLUE...</text></switch></g><path d="M 255 192 Q 290 192 290 152.5 Q 290 113 320 113" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 531.88 113 Q 530 113 480 113" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 538.88 113 L 531.88 115.33 L 531.88 110.67 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><rect x="540" y="93" width="40" height="40" fill="none" stroke="none" pointer-events="all"/><path d="M 579.09 93 L 540.91 93 C 540.41 93 540 93.41 540 93.91 L 540 119.36 C 540 119.87 540.41 120.27 540.91 120.27 L 556.36 120.27 L 556.36 118.45 L 553.64 118.45 L 553.64 113.91 L 558.18 113.91 L 558.18 112.09 L 553.64 112.09 L 553.64 106.64 L 578.18 106.64 L 578.18 110.27 L 580 110.27 L 580 93.91 C 580 93.41 579.59 93 579.09 93 Z M 546.36 98.45 L 546.36 94.82 L 578.18 94.82 L 578.18 98.45 Z M 546.36 104.82 L 546.36 100.27 L 551.82 100.27 L 551.82 104.82 Z M 541.82 98.45 L 541.82 94.82 L 544.55 94.82 L 544.55 98.45 Z M 541.82 118.45 L 541.82 100.27 L 544.55 100.27 L 544.55 118.45 Z M 546.36 118.45 L 546.36 113.91 L 551.82 113.91 L 551.82 118.45 Z M 546.36 112.09 L 546.36 106.64 L 551.82 106.64 L 551.82 112.09 Z M 553.64 104.82 L 553.64 100.27 L 578.18 100.27 L 578.18 104.82 Z M 580 118.45 L 578.18 118.45 C 578.18 120.2 577.14 121.16 576.29 121.66 C 576.12 120.07 575.67 118.8 575.02 117.81 C 576 117.11 577.27 115.67 577.27 113 L 575.45 113 C 575.45 115.08 574.42 116.04 573.8 116.44 C 573.46 116.16 573.1 115.91 572.73 115.71 C 572.72 114.79 572.5 113.93 572.12 113.22 C 572.57 112.78 573.11 112.08 573.41 111.05 C 574.07 110.78 574.55 110.13 574.55 109.36 C 574.55 108.36 573.73 107.55 572.73 107.55 C 571.72 107.55 570.91 108.36 570.91 109.36 C 570.91 109.93 571.18 110.43 571.58 110.77 C 571.4 111.26 571.16 111.61 570.94 111.83 C 570.39 111.43 569.77 111.18 569.09 111.18 C 568.41 111.18 567.79 111.43 567.24 111.83 C 567.03 111.61 566.78 111.26 566.6 110.77 C 567.01 110.43 567.27 109.93 567.27 109.36 C 567.27 108.36 566.46 107.55 565.45 107.55 C 564.45 107.55 563.64 108.36 563.64 109.36 C 563.64 110.13 564.11 110.78 564.77 111.05 C 565.07 112.08 565.61 112.78 566.06 113.22 C 565.68 113.93 565.46 114.79 565.46 115.71 C 565.08 115.91 564.72 116.16 564.38 116.45 C 563.76 116.05 562.73 115.07 562.73 113 L 560.91 113 C 560.91 115.67 562.18 117.11 563.16 117.81 C 562.51 118.8 562.06 120.07 561.89 121.66 C 561.05 121.16 560 120.2 560 118.45 L 558.18 118.45 C 558.18 121.43 560.3 123.04 561.84 123.66 C 561.89 124.73 562.06 125.75 562.34 126.71 C 561.35 126.98 558.18 128.02 558.18 130.27 L 560 130.27 C 560 129.56 561.74 128.73 562.95 128.43 L 562.89 128.21 C 564.17 131.08 566.47 133 569.09 133 C 571.71 133 574.01 131.08 575.29 128.21 L 575.23 128.43 C 576.44 128.73 578.18 129.56 578.18 130.27 L 580 130.27 C 580 128.02 576.83 126.98 575.84 126.71 C 576.12 125.75 576.29 124.73 576.34 123.66 C 577.88 123.04 580 121.43 580 118.45 Z M 574.55 123 C 574.55 124.42 574.3 125.75 573.88 126.92 L 570 124.33 L 570 116.7 C 572.9 117.08 574.55 119.33 574.55 123 Z M 569.09 113 C 569.91 113 570.62 113.87 570.83 115.01 C 570.26 114.88 569.67 114.82 569.09 114.82 C 568.51 114.82 567.92 114.88 567.35 115.01 C 567.57 113.87 568.27 113 569.09 113 Z M 568.18 116.7 L 568.18 124.33 L 564.3 126.92 C 563.88 125.75 563.64 124.42 563.64 123 C 563.64 119.33 565.28 117.08 568.18 116.7 Z M 569.09 131.18 C 567.52 131.18 566.1 130.17 565.1 128.57 L 569.09 125.91 L 573.08 128.57 C 572.08 130.17 570.66 131.18 569.09 131.18 Z" fill="#cc0000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 140px; margin-left: 560px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #333333; background-color: rgb(24, 20, 29); "><div style="display: inline-block; font-size: 8px; font-family: Verdana; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; background-color: rgb(24, 20, 29); white-space: nowrap;"><i style="font-size: 8px"><b style="font-size: 8px"><font style="font-size: 8px" color="#666666">ETL Crawler</font></b></i></div></div></div></foreignObject><text x="560" y="148" fill="#333333" font-family="Verdana" font-size="8px" text-anchor="middle">ETL Crawl...</text></switch></g><rect x="225" y="172" width="30" height="40" fill="none" stroke="none" pointer-events="all"/><path d="M 240.11 172 C 236.29 172 232.58 172.79 229.78 174.17 C 226.97 175.54 225 177.54 225 179.98 L 225 187.71 L 225 196.35 L 225 203.78 C 225 206.39 226.94 208.48 229.79 209.87 C 232.63 211.25 236.43 212 240.46 212 C 244.18 212 247.76 211.16 250.45 209.77 C 253.13 208.39 255 206.41 255 204.09 L 255 196.05 L 255 188.15 L 255 179.82 C 255 177.74 253.3 175.8 250.64 174.38 C 247.99 172.95 244.32 172 240.11 172 Z M 240.11 173 C 244.17 173 247.7 173.92 250.17 175.25 C 252.65 176.59 254.01 178.31 254.01 179.82 C 254.01 181.01 253.54 182.03 252.71 182.94 C 251.89 183.84 250.71 184.62 249.33 185.23 C 246.59 186.46 243.1 187.06 240.37 187.06 C 236.27 187.06 232.61 186.26 230.03 184.95 C 227.45 183.65 225.99 181.9 225.99 179.98 C 225.99 178.09 227.58 176.35 230.21 175.06 C 232.84 173.78 236.43 173 240.11 173 Z M 254.01 182.89 L 254.01 188.15 C 254.01 190.04 252.36 191.77 249.75 193.03 C 247.14 194.29 243.64 195.05 240.28 195.05 C 236.53 195.05 232.89 194.33 230.25 193.03 C 227.6 191.73 225.99 189.93 225.99 187.71 L 225.99 182.93 C 226.79 184.07 228.03 185.06 229.58 185.84 C 232.36 187.24 236.14 188.06 240.37 188.06 C 243.24 188.06 246.82 187.45 249.74 186.14 C 251.2 185.49 252.5 184.66 253.45 183.61 C 253.65 183.38 253.84 183.14 254.01 182.89 Z M 225.99 190.81 C 226.84 192.07 228.17 193.12 229.81 193.92 C 232.65 195.32 236.4 196.05 240.28 196.05 C 243.78 196.05 247.4 195.28 250.18 193.93 C 251.8 193.15 253.14 192.15 254.01 190.97 L 254.01 196.05 C 254.01 198.04 252.41 199.78 249.75 201.05 C 247.09 202.33 243.43 203.08 239.62 203.08 C 236.59 203.08 233.11 202.36 230.44 201.13 C 229.1 200.52 227.97 199.78 227.19 198.96 C 226.41 198.15 225.99 197.28 225.99 196.35 Z M 254.01 198.96 L 254.01 204.09 C 254.01 205.86 252.5 207.59 249.99 208.89 C 247.48 210.18 244.03 211 240.46 211 C 236.55 211 232.87 210.26 230.22 208.97 C 227.57 207.67 225.99 205.9 225.99 203.78 L 225.99 199.07 C 226.14 199.27 226.29 199.47 226.47 199.65 C 227.37 200.6 228.6 201.39 230.02 202.04 C 232.86 203.35 236.44 204.08 239.62 204.08 C 243.56 204.08 247.34 203.32 250.18 201.95 C 251.82 201.17 253.16 200.15 254.01 198.96 Z" fill="#cc0000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 219px; margin-left: 240px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #666666; "><div style="display: inline-block; font-size: 5px; font-family: Verdana; color: rgb(102, 102, 102); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font><b><i><span style="font-size: 8px">FS</span></i></b></font></div></div></div></foreignObject><text x="240" y="224" fill="#666666" font-family="Verdana" font-size="5px" text-anchor="middle">FS</text></switch></g><rect x="221.73" y="253" width="36.54" height="38" fill="none" stroke="none" pointer-events="all"/><path d="M 254.08 273.84 L 254.28 272.4 C 255.81 273.34 256.29 273.88 256.43 274.11 C 256.02 274.23 255.2 274.12 254.08 273.84 Z M 238.81 268.62 C 238.81 268.58 238.85 268.54 238.9 268.54 C 238.91 268.54 238.92 268.55 238.93 268.55 L 238.87 268.68 C 238.84 268.67 238.81 268.65 238.81 268.62 Z M 250.64 286.46 C 250.64 286.5 250.63 286.54 250.63 286.58 C 250.63 286.71 250.31 287.22 248.85 287.79 C 248.2 288.05 247.44 288.28 246.58 288.48 C 244.36 288.99 241.63 289.27 238.89 289.27 C 231.59 289.27 227.16 287.4 227.16 286.58 C 227.16 286.54 227.16 286.5 227.15 286.46 L 223.84 261.87 C 224.05 262 224.28 262.11 224.52 262.23 C 224.59 262.26 224.66 262.29 224.73 262.33 C 224.94 262.42 225.16 262.51 225.38 262.6 C 225.48 262.64 225.57 262.68 225.67 262.72 C 225.91 262.81 226.16 262.89 226.41 262.98 C 226.49 263 226.56 263.03 226.63 263.05 C 226.96 263.15 227.3 263.25 227.65 263.34 C 227.75 263.37 227.85 263.39 227.95 263.42 C 228.22 263.49 228.49 263.55 228.77 263.61 C 228.89 263.64 229.01 263.67 229.14 263.69 C 229.45 263.76 229.77 263.82 230.1 263.88 C 230.17 263.9 230.24 263.91 230.31 263.92 C 230.7 263.99 231.11 264.06 231.52 264.12 C 231.63 264.13 231.75 264.15 231.87 264.16 C 232.18 264.21 232.49 264.25 232.81 264.28 C 232.94 264.3 233.07 264.31 233.2 264.33 C 233.59 264.37 233.97 264.41 234.36 264.44 C 234.41 264.44 234.45 264.45 234.5 264.45 C 234.94 264.49 235.37 264.51 235.81 264.54 C 235.94 264.55 236.06 264.55 236.19 264.56 C 236.52 264.58 236.85 264.59 237.18 264.6 C 237.31 264.6 237.44 264.61 237.57 264.61 C 238.01 264.62 238.45 264.63 238.89 264.63 C 239.33 264.63 239.78 264.62 240.22 264.61 C 240.35 264.61 240.48 264.6 240.61 264.6 C 240.94 264.59 241.27 264.58 241.6 264.56 C 241.73 264.55 241.85 264.55 241.98 264.54 C 242.42 264.51 242.85 264.49 243.29 264.45 C 243.34 264.45 243.38 264.44 243.43 264.44 C 243.82 264.41 244.2 264.37 244.59 264.33 C 244.72 264.31 244.85 264.3 244.98 264.28 C 245.3 264.25 245.61 264.21 245.92 264.16 C 246.04 264.15 246.16 264.13 246.27 264.12 C 246.68 264.06 247.09 263.99 247.48 263.92 C 247.55 263.91 247.62 263.9 247.69 263.88 C 248.02 263.82 248.34 263.76 248.66 263.69 C 248.78 263.67 248.9 263.64 249.02 263.61 C 249.3 263.55 249.58 263.49 249.85 263.42 C 249.94 263.39 250.04 263.37 250.14 263.34 C 250.49 263.25 250.83 263.15 251.16 263.05 C 251.23 263.03 251.3 263 251.38 262.98 C 251.63 262.89 251.88 262.81 252.12 262.72 C 252.22 262.68 252.31 262.64 252.41 262.6 C 252.64 262.51 252.85 262.42 253.06 262.32 C 253.13 262.29 253.2 262.26 253.27 262.23 C 253.51 262.11 253.74 262 253.95 261.87 L 252.41 273.35 C 249.27 272.34 244.86 270.52 240.69 268.53 C 240.65 267.58 239.86 266.81 238.9 266.81 C 237.9 266.81 237.09 267.62 237.09 268.62 C 237.09 269.62 237.9 270.43 238.9 270.43 C 239.29 270.43 239.65 270.3 239.94 270.09 C 243.68 271.88 248.45 274 252.17 275.07 Z M 238.89 254.73 C 247.88 254.73 254.21 257.51 254.33 259.06 L 254.31 259.24 C 254.29 259.29 254.26 259.34 254.23 259.4 C 254.21 259.44 254.19 259.49 254.16 259.53 C 254.12 259.59 254.06 259.64 254.01 259.69 C 253.97 259.74 253.93 259.79 253.88 259.84 C 253.82 259.89 253.75 259.94 253.68 260 C 253.61 260.05 253.56 260.1 253.48 260.15 C 253.4 260.2 253.31 260.25 253.22 260.31 C 253.14 260.36 253.06 260.41 252.96 260.46 C 252.87 260.51 252.76 260.56 252.65 260.61 C 252.54 260.67 252.44 260.72 252.33 260.77 C 252.22 260.82 252.09 260.87 251.97 260.92 C 251.84 260.97 251.72 261.02 251.58 261.07 C 251.45 261.12 251.31 261.17 251.17 261.22 C 251.03 261.27 250.89 261.32 250.73 261.37 C 250.58 261.41 250.42 261.46 250.27 261.5 C 250.1 261.55 249.95 261.6 249.77 261.65 C 249.61 261.69 249.43 261.73 249.26 261.78 C 249.08 261.82 248.91 261.87 248.72 261.91 C 248.53 261.95 248.33 261.99 248.14 262.03 C 247.95 262.07 247.77 262.11 247.57 262.15 C 247.36 262.19 247.14 262.22 246.93 262.26 C 246.73 262.29 246.53 262.33 246.33 262.36 C 246.1 262.4 245.87 262.43 245.63 262.46 C 245.42 262.49 245.22 262.52 245 262.55 C 244.75 262.58 244.48 262.6 244.22 262.63 C 244.01 262.65 243.81 262.68 243.59 262.7 C 243.3 262.72 243 262.74 242.7 262.76 C 242.5 262.78 242.3 262.8 242.1 262.81 C 241.77 262.83 241.43 262.84 241.09 262.86 C 240.9 262.86 240.72 262.87 240.53 262.88 C 240 262.89 239.45 262.9 238.89 262.9 C 238.34 262.9 237.79 262.89 237.26 262.88 C 237.07 262.87 236.88 262.86 236.69 262.85 C 236.36 262.84 236.02 262.83 235.69 262.81 C 235.48 262.8 235.27 262.78 235.06 262.76 C 234.77 262.74 234.48 262.72 234.2 262.7 C 233.98 262.68 233.78 262.65 233.57 262.63 C 233.31 262.6 233.04 262.58 232.79 262.55 C 232.57 262.52 232.37 262.49 232.16 262.46 C 231.93 262.43 231.69 262.4 231.46 262.36 C 231.25 262.33 231.05 262.29 230.84 262.26 C 230.63 262.22 230.42 262.19 230.22 262.15 C 230.02 262.11 229.84 262.07 229.64 262.03 C 229.45 261.99 229.25 261.95 229.07 261.91 C 228.88 261.87 228.71 261.82 228.53 261.78 C 228.36 261.73 228.18 261.69 228.02 261.65 C 227.84 261.6 227.68 261.55 227.52 261.5 C 227.36 261.46 227.21 261.41 227.06 261.37 C 226.9 261.32 226.76 261.27 226.61 261.21 C 226.48 261.17 226.34 261.12 226.21 261.07 C 226.07 261.02 225.95 260.97 225.82 260.92 C 225.7 260.87 225.57 260.82 225.46 260.77 C 225.35 260.72 225.25 260.67 225.14 260.61 C 225.04 260.56 224.92 260.51 224.83 260.46 C 224.73 260.41 224.66 260.36 224.57 260.3 C 224.48 260.25 224.39 260.2 224.31 260.15 C 224.24 260.1 224.18 260.05 224.11 260 C 224.04 259.94 223.97 259.89 223.91 259.84 C 223.86 259.79 223.82 259.74 223.77 259.69 C 223.73 259.64 223.67 259.58 223.63 259.53 C 223.6 259.49 223.58 259.44 223.56 259.39 C 223.53 259.34 223.5 259.29 223.48 259.24 L 223.46 259.05 C 223.58 257.51 229.91 254.73 238.89 254.73 Z M 258.18 273.92 C 258 272.93 256.85 271.88 254.53 270.55 L 256.01 259.55 L 256.01 259.55 L 256.01 259.55 L 256.05 259.21 C 256.05 259.17 256.06 259.14 256.06 259.1 C 256.06 255.5 247.01 253 238.89 253 C 230.78 253 221.73 255.5 221.73 259.1 C 221.73 259.14 221.74 259.17 221.74 259.21 L 221.79 259.55 L 221.79 259.55 L 225.43 286.65 C 225.55 289.82 233.73 291 238.89 291 C 241.75 291 244.62 290.7 246.97 290.16 C 247.91 289.94 248.76 289.69 249.49 289.4 C 251.35 288.66 252.32 287.73 252.36 286.65 L 253.86 275.49 C 254.68 275.67 255.43 275.77 256.05 275.77 C 256.88 275.77 257.51 275.6 257.85 275.19 C 258.15 274.84 258.27 274.38 258.18 273.92 Z" fill="#f0a30a" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 298px; margin-left: 240px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #666666; "><div style="display: inline-block; font-size: 8px; font-family: Verdana; color: rgb(102, 102, 102); line-height: 1.2; pointer-events: all; font-weight: bold; font-style: italic; white-space: nowrap;">AWS S3 (bucket)</div></div></div></foreignObject><text x="240" y="306" fill="#666666" font-family="Verdana" font-size="8px" text-anchor="middle" font-weight="bold" font-style="italic">AWS S3 (b...</text></switch></g><path d="M 654.87 467.25 L 704.62 467.25 L 704.62 517 L 654.87 517 Z" fill="none" stroke="none" pointer-events="all"/><path d="M 678.26 483.17 C 681.29 483.17 682.95 483.85 683.25 484.19 C 682.95 484.53 681.29 485.21 678.26 485.21 C 675.23 485.21 673.57 484.53 673.26 484.19 C 673.57 483.85 675.23 483.17 678.26 483.17 Z M 677.91 488.61 C 677.8 488.55 677.72 488.43 677.72 488.3 C 677.72 488.11 677.87 487.96 678.06 487.96 C 678.12 487.96 678.17 487.97 678.21 488 Z M 681.81 494.21 C 681.76 494.25 681.65 494.33 681.41 494.42 C 681.2 494.51 680.95 494.59 680.67 494.65 C 679.91 494.83 678.99 494.93 678.06 494.93 C 676.03 494.93 674.62 494.49 674.31 494.22 L 673.41 485.82 C 674.79 486.38 676.82 486.57 678.26 486.57 C 679.67 486.57 681.65 486.39 683.03 485.85 L 682.49 489.54 C 681.48 489.16 680.22 488.6 679.02 488.02 C 678.9 487.6 678.52 487.29 678.06 487.29 C 677.51 487.29 677.06 487.74 677.06 488.3 C 677.06 488.86 677.51 489.32 678.06 489.32 C 678.19 489.32 678.32 489.29 678.43 489.24 C 680.1 490.07 681.35 490.6 682.29 490.93 Z M 671.9 484.26 L 672.98 494.38 C 673.06 496.26 677.86 496.28 678.06 496.28 C 679.09 496.28 680.12 496.17 680.97 495.98 C 681.32 495.89 681.63 495.8 681.9 495.69 C 682.69 495.37 683.11 494.94 683.14 494.4 L 683.59 491.3 C 683.9 491.36 684.15 491.39 684.35 491.39 C 684.98 491.39 685.14 491.13 685.26 490.95 C 685.38 490.77 685.41 490.54 685.36 490.3 C 685.23 489.77 684.48 489.07 683.97 488.65 L 684.61 484.29 L 684.6 484.29 C 684.61 484.26 684.62 484.22 684.62 484.19 C 684.62 482.31 680.62 481.81 678.26 481.81 C 675.89 481.81 671.9 482.31 671.9 484.19 C 671.9 484.22 671.91 484.24 671.91 484.26 Z M 677.95 478.34 C 683.78 478.34 688.53 483.16 688.53 489.08 C 688.53 495 683.78 499.82 677.95 499.82 C 672.11 499.82 667.36 495 667.36 489.08 C 667.36 483.16 672.11 478.34 677.95 478.34 Z M 661.18 493.03 L 661.18 494.38 L 667.21 494.38 L 667.21 494.3 C 669.14 498.36 673.22 501.18 677.95 501.18 C 684.52 501.18 689.87 495.75 689.87 489.08 C 689.87 482.41 684.52 476.98 677.95 476.98 C 672.83 476.98 668.47 480.27 666.78 484.87 L 661.18 484.87 L 661.18 486.23 L 666.37 486.23 C 666.16 487.1 666.04 488.01 666.03 488.95 L 659.84 488.95 L 659.84 490.31 L 666.09 490.31 C 666.18 491.25 666.39 492.16 666.69 493.03 Z M 697.67 509.35 C 696.86 510.17 695.46 510.18 694.65 509.36 L 687.46 502.05 C 688.61 501.18 689.65 500.15 690.53 498.99 L 697.68 506.28 C 698.08 506.69 698.31 507.23 698.3 507.81 C 698.3 508.4 698.08 508.94 697.67 509.35 Z M 698.63 505.32 L 691.32 497.87 C 692.94 495.33 693.89 492.32 693.89 489.08 C 693.89 480.16 686.74 472.9 677.95 472.9 C 671.63 472.9 665.9 476.69 663.36 482.56 L 664.58 483.11 C 666.91 477.73 672.16 474.26 677.95 474.26 C 686 474.26 692.55 480.91 692.55 489.08 C 692.55 497.25 686 503.9 677.95 503.9 C 672.57 503.9 667.64 500.91 665.09 496.1 L 663.91 496.75 C 666.7 502 672.08 505.26 677.95 505.26 C 681.02 505.26 683.89 504.37 686.33 502.83 L 693.7 510.32 C 694.36 510.98 695.23 511.35 696.15 511.35 C 697.08 511.35 697.96 510.98 698.62 510.31 C 699.28 509.65 699.64 508.76 699.64 507.82 C 699.64 506.87 699.28 505.99 698.63 505.32 Z" fill="#b3b3b3" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 524px; margin-left: 680px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #B3B3B3; "><div style="display: inline-block; font-size: 12px; font-family: Verdana; color: rgb(179, 179, 179); line-height: 1.2; pointer-events: all; font-style: italic; white-space: nowrap;"><font style="font-size: 8px"><b style="background-color: rgb(255 , 255 , 255)">AWS Athena</b></font></div></div></div></foreignObject><text x="680" y="536" fill="#B3B3B3" font-family="Verdana" font-size="12px" text-anchor="middle" font-style="italic">AWS Athe...</text></switch></g><path d="M 440 243 Q 500 243 500 178 Q 500 113 531.88 113" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 538.88 113 L 531.88 115.33 L 531.88 110.67 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><rect x="555" y="78" width="10" height="10" fill="none" stroke="none" pointer-events="all"/><path d="M 564.77 78 L 555.23 78 C 555.1 78 555 78.1 555 78.23 L 555 84.59 C 555 84.72 555.1 84.82 555.23 84.82 L 559.09 84.82 L 559.09 84.36 L 558.41 84.36 L 558.41 83.23 L 559.55 83.23 L 559.55 82.77 L 558.41 82.77 L 558.41 81.41 L 564.55 81.41 L 564.55 82.32 L 565 82.32 L 565 78.23 C 565 78.1 564.9 78 564.77 78 Z M 556.59 79.36 L 556.59 78.45 L 564.55 78.45 L 564.55 79.36 Z M 556.59 80.95 L 556.59 79.82 L 557.95 79.82 L 557.95 80.95 Z M 555.45 79.36 L 555.45 78.45 L 556.14 78.45 L 556.14 79.36 Z M 555.45 84.36 L 555.45 79.82 L 556.14 79.82 L 556.14 84.36 Z M 556.59 84.36 L 556.59 83.23 L 557.95 83.23 L 557.95 84.36 Z M 556.59 82.77 L 556.59 81.41 L 557.95 81.41 L 557.95 82.77 Z M 558.41 80.95 L 558.41 79.82 L 564.55 79.82 L 564.55 80.95 Z M 565 84.36 L 564.55 84.36 C 564.55 84.8 564.28 85.04 564.07 85.16 C 564.03 84.77 563.92 84.45 563.75 84.2 C 564 84.03 564.32 83.67 564.32 83 L 563.86 83 C 563.86 83.52 563.61 83.76 563.45 83.86 C 563.37 83.79 563.28 83.73 563.18 83.68 C 563.18 83.45 563.12 83.23 563.03 83.05 C 563.14 82.95 563.28 82.77 563.35 82.51 C 563.52 82.44 563.64 82.28 563.64 82.09 C 563.64 81.84 563.43 81.64 563.18 81.64 C 562.93 81.64 562.73 81.84 562.73 82.09 C 562.73 82.23 562.79 82.36 562.9 82.44 C 562.85 82.56 562.79 82.65 562.73 82.71 C 562.6 82.61 562.44 82.55 562.27 82.55 C 562.1 82.55 561.95 82.61 561.81 82.71 C 561.76 82.65 561.69 82.56 561.65 82.44 C 561.75 82.36 561.82 82.23 561.82 82.09 C 561.82 81.84 561.61 81.64 561.36 81.64 C 561.11 81.64 560.91 81.84 560.91 82.09 C 560.91 82.28 561.03 82.44 561.19 82.51 C 561.27 82.77 561.4 82.95 561.52 83.05 C 561.42 83.23 561.36 83.45 561.36 83.68 C 561.27 83.73 561.18 83.79 561.09 83.86 C 560.94 83.76 560.68 83.52 560.68 83 L 560.23 83 C 560.23 83.67 560.55 84.03 560.79 84.2 C 560.63 84.45 560.51 84.77 560.47 85.16 C 560.26 85.04 560 84.8 560 84.36 L 559.55 84.36 C 559.55 85.11 560.08 85.51 560.46 85.67 C 560.47 85.93 560.52 86.19 560.59 86.43 C 560.34 86.49 559.55 86.75 559.55 87.32 L 560 87.32 C 560 87.14 560.44 86.93 560.74 86.86 L 560.72 86.8 C 561.04 87.52 561.62 88 562.27 88 C 562.93 88 563.5 87.52 563.82 86.8 L 563.81 86.86 C 564.11 86.93 564.55 87.14 564.55 87.32 L 565 87.32 C 565 86.75 564.21 86.49 563.96 86.43 C 564.03 86.19 564.07 85.93 564.08 85.67 C 564.47 85.51 565 85.11 565 84.36 Z M 563.64 85.5 C 563.64 85.85 563.58 86.19 563.47 86.48 L 562.5 85.83 L 562.5 83.93 C 563.22 84.02 563.64 84.58 563.64 85.5 Z M 562.27 83 C 562.48 83 562.65 83.22 562.71 83.5 C 562.56 83.47 562.42 83.45 562.27 83.45 C 562.13 83.45 561.98 83.47 561.84 83.5 C 561.89 83.22 562.07 83 562.27 83 Z M 562.05 83.93 L 562.05 85.83 L 561.08 86.48 C 560.97 86.19 560.91 85.85 560.91 85.5 C 560.91 84.58 561.32 84.02 562.05 83.93 Z M 562.27 87.55 C 561.88 87.55 561.53 87.29 561.28 86.89 L 562.27 86.23 L 563.27 86.89 C 563.02 87.29 562.67 87.55 562.27 87.55 Z" fill="#cc0000" stroke="none" pointer-events="all"/><rect x="570" y="65" width="10" height="10" fill="none" stroke="none" pointer-events="all"/><path d="M 579.77 65 L 570.23 65 C 570.1 65 570 65.1 570 65.23 L 570 71.59 C 570 71.72 570.1 71.82 570.23 71.82 L 574.09 71.82 L 574.09 71.36 L 573.41 71.36 L 573.41 70.23 L 574.55 70.23 L 574.55 69.77 L 573.41 69.77 L 573.41 68.41 L 579.55 68.41 L 579.55 69.32 L 580 69.32 L 580 65.23 C 580 65.1 579.9 65 579.77 65 Z M 571.59 66.36 L 571.59 65.45 L 579.55 65.45 L 579.55 66.36 Z M 571.59 67.95 L 571.59 66.82 L 572.95 66.82 L 572.95 67.95 Z M 570.45 66.36 L 570.45 65.45 L 571.14 65.45 L 571.14 66.36 Z M 570.45 71.36 L 570.45 66.82 L 571.14 66.82 L 571.14 71.36 Z M 571.59 71.36 L 571.59 70.23 L 572.95 70.23 L 572.95 71.36 Z M 571.59 69.77 L 571.59 68.41 L 572.95 68.41 L 572.95 69.77 Z M 573.41 67.95 L 573.41 66.82 L 579.55 66.82 L 579.55 67.95 Z M 580 71.36 L 579.55 71.36 C 579.55 71.8 579.28 72.04 579.07 72.16 C 579.03 71.77 578.92 71.45 578.75 71.2 C 579 71.03 579.32 70.67 579.32 70 L 578.86 70 C 578.86 70.52 578.61 70.76 578.45 70.86 C 578.37 70.79 578.28 70.73 578.18 70.68 C 578.18 70.45 578.12 70.23 578.03 70.05 C 578.14 69.95 578.28 69.77 578.35 69.51 C 578.52 69.44 578.64 69.28 578.64 69.09 C 578.64 68.84 578.43 68.64 578.18 68.64 C 577.93 68.64 577.73 68.84 577.73 69.09 C 577.73 69.23 577.79 69.36 577.9 69.44 C 577.85 69.56 577.79 69.65 577.73 69.71 C 577.6 69.61 577.44 69.55 577.27 69.55 C 577.1 69.55 576.95 69.61 576.81 69.71 C 576.76 69.65 576.69 69.56 576.65 69.44 C 576.75 69.36 576.82 69.23 576.82 69.09 C 576.82 68.84 576.61 68.64 576.36 68.64 C 576.11 68.64 575.91 68.84 575.91 69.09 C 575.91 69.28 576.03 69.44 576.19 69.51 C 576.27 69.77 576.4 69.95 576.52 70.05 C 576.42 70.23 576.36 70.45 576.36 70.68 C 576.27 70.73 576.18 70.79 576.09 70.86 C 575.94 70.76 575.68 70.52 575.68 70 L 575.23 70 C 575.23 70.67 575.55 71.03 575.79 71.2 C 575.63 71.45 575.51 71.77 575.47 72.16 C 575.26 72.04 575 71.8 575 71.36 L 574.55 71.36 C 574.55 72.11 575.08 72.51 575.46 72.67 C 575.47 72.93 575.52 73.19 575.59 73.43 C 575.34 73.49 574.55 73.75 574.55 74.32 L 575 74.32 C 575 74.14 575.44 73.93 575.74 73.86 L 575.72 73.8 C 576.04 74.52 576.62 75 577.27 75 C 577.93 75 578.5 74.52 578.82 73.8 L 578.81 73.86 C 579.11 73.93 579.55 74.14 579.55 74.32 L 580 74.32 C 580 73.75 579.21 73.49 578.96 73.43 C 579.03 73.19 579.07 72.93 579.08 72.67 C 579.47 72.51 580 72.11 580 71.36 Z M 578.64 72.5 C 578.64 72.85 578.58 73.19 578.47 73.48 L 577.5 72.83 L 577.5 70.93 C 578.22 71.02 578.64 71.58 578.64 72.5 Z M 577.27 70 C 577.48 70 577.65 70.22 577.71 70.5 C 577.56 70.47 577.42 70.45 577.27 70.45 C 577.13 70.45 576.98 70.47 576.84 70.5 C 576.89 70.22 577.07 70 577.27 70 Z M 577.05 70.93 L 577.05 72.83 L 576.08 73.48 C 575.97 73.19 575.91 72.85 575.91 72.5 C 575.91 71.58 576.32 71.02 577.05 70.93 Z M 577.27 74.55 C 576.88 74.55 576.53 74.29 576.28 73.89 L 577.27 73.23 L 578.27 73.89 C 578.02 74.29 577.67 74.55 577.27 74.55 Z" fill="#cc0000" stroke="none" pointer-events="all"/><rect x="540" y="65" width="10" height="10" fill="none" stroke="none" pointer-events="all"/><path d="M 549.77 65 L 540.23 65 C 540.1 65 540 65.1 540 65.23 L 540 71.59 C 540 71.72 540.1 71.82 540.23 71.82 L 544.09 71.82 L 544.09 71.36 L 543.41 71.36 L 543.41 70.23 L 544.55 70.23 L 544.55 69.77 L 543.41 69.77 L 543.41 68.41 L 549.55 68.41 L 549.55 69.32 L 550 69.32 L 550 65.23 C 550 65.1 549.9 65 549.77 65 Z M 541.59 66.36 L 541.59 65.45 L 549.55 65.45 L 549.55 66.36 Z M 541.59 67.95 L 541.59 66.82 L 542.95 66.82 L 542.95 67.95 Z M 540.45 66.36 L 540.45 65.45 L 541.14 65.45 L 541.14 66.36 Z M 540.45 71.36 L 540.45 66.82 L 541.14 66.82 L 541.14 71.36 Z M 541.59 71.36 L 541.59 70.23 L 542.95 70.23 L 542.95 71.36 Z M 541.59 69.77 L 541.59 68.41 L 542.95 68.41 L 542.95 69.77 Z M 543.41 67.95 L 543.41 66.82 L 549.55 66.82 L 549.55 67.95 Z M 550 71.36 L 549.55 71.36 C 549.55 71.8 549.28 72.04 549.07 72.16 C 549.03 71.77 548.92 71.45 548.75 71.2 C 549 71.03 549.32 70.67 549.32 70 L 548.86 70 C 548.86 70.52 548.61 70.76 548.45 70.86 C 548.37 70.79 548.28 70.73 548.18 70.68 C 548.18 70.45 548.12 70.23 548.03 70.05 C 548.14 69.95 548.28 69.77 548.35 69.51 C 548.52 69.44 548.64 69.28 548.64 69.09 C 548.64 68.84 548.43 68.64 548.18 68.64 C 547.93 68.64 547.73 68.84 547.73 69.09 C 547.73 69.23 547.79 69.36 547.9 69.44 C 547.85 69.56 547.79 69.65 547.73 69.71 C 547.6 69.61 547.44 69.55 547.27 69.55 C 547.1 69.55 546.95 69.61 546.81 69.71 C 546.76 69.65 546.69 69.56 546.65 69.44 C 546.75 69.36 546.82 69.23 546.82 69.09 C 546.82 68.84 546.61 68.64 546.36 68.64 C 546.11 68.64 545.91 68.84 545.91 69.09 C 545.91 69.28 546.03 69.44 546.19 69.51 C 546.27 69.77 546.4 69.95 546.52 70.05 C 546.42 70.23 546.36 70.45 546.36 70.68 C 546.27 70.73 546.18 70.79 546.09 70.86 C 545.94 70.76 545.68 70.52 545.68 70 L 545.23 70 C 545.23 70.67 545.55 71.03 545.79 71.2 C 545.63 71.45 545.51 71.77 545.47 72.16 C 545.26 72.04 545 71.8 545 71.36 L 544.55 71.36 C 544.55 72.11 545.08 72.51 545.46 72.67 C 545.47 72.93 545.52 73.19 545.59 73.43 C 545.34 73.49 544.55 73.75 544.55 74.32 L 545 74.32 C 545 74.14 545.44 73.93 545.74 73.86 L 545.72 73.8 C 546.04 74.52 546.62 75 547.27 75 C 547.93 75 548.5 74.52 548.82 73.8 L 548.81 73.86 C 549.11 73.93 549.55 74.14 549.55 74.32 L 550 74.32 C 550 73.75 549.21 73.49 548.96 73.43 C 549.03 73.19 549.07 72.93 549.08 72.67 C 549.47 72.51 550 72.11 550 71.36 Z M 548.64 72.5 C 548.64 72.85 548.58 73.19 548.47 73.48 L 547.5 72.83 L 547.5 70.93 C 548.22 71.02 548.64 71.58 548.64 72.5 Z M 547.27 70 C 547.48 70 547.65 70.22 547.71 70.5 C 547.56 70.47 547.42 70.45 547.27 70.45 C 547.13 70.45 546.98 70.47 546.84 70.5 C 546.89 70.22 547.07 70 547.27 70 Z M 547.05 70.93 L 547.05 72.83 L 546.08 73.48 C 545.97 73.19 545.91 72.85 545.91 72.5 C 545.91 71.58 546.32 71.02 547.05 70.93 Z M 547.27 74.55 C 546.88 74.55 546.53 74.29 546.28 73.89 L 547.27 73.23 L 548.27 73.89 C 548.02 74.29 547.67 74.55 547.27 74.55 Z" fill="#cc0000" stroke="none" pointer-events="all"/><rect x="555" y="65" width="10" height="10" fill="none" stroke="none" pointer-events="all"/><path d="M 564.77 65 L 555.23 65 C 555.1 65 555 65.1 555 65.23 L 555 71.59 C 555 71.72 555.1 71.82 555.23 71.82 L 559.09 71.82 L 559.09 71.36 L 558.41 71.36 L 558.41 70.23 L 559.55 70.23 L 559.55 69.77 L 558.41 69.77 L 558.41 68.41 L 564.55 68.41 L 564.55 69.32 L 565 69.32 L 565 65.23 C 565 65.1 564.9 65 564.77 65 Z M 556.59 66.36 L 556.59 65.45 L 564.55 65.45 L 564.55 66.36 Z M 556.59 67.95 L 556.59 66.82 L 557.95 66.82 L 557.95 67.95 Z M 555.45 66.36 L 555.45 65.45 L 556.14 65.45 L 556.14 66.36 Z M 555.45 71.36 L 555.45 66.82 L 556.14 66.82 L 556.14 71.36 Z M 556.59 71.36 L 556.59 70.23 L 557.95 70.23 L 557.95 71.36 Z M 556.59 69.77 L 556.59 68.41 L 557.95 68.41 L 557.95 69.77 Z M 558.41 67.95 L 558.41 66.82 L 564.55 66.82 L 564.55 67.95 Z M 565 71.36 L 564.55 71.36 C 564.55 71.8 564.28 72.04 564.07 72.16 C 564.03 71.77 563.92 71.45 563.75 71.2 C 564 71.03 564.32 70.67 564.32 70 L 563.86 70 C 563.86 70.52 563.61 70.76 563.45 70.86 C 563.37 70.79 563.28 70.73 563.18 70.68 C 563.18 70.45 563.12 70.23 563.03 70.05 C 563.14 69.95 563.28 69.77 563.35 69.51 C 563.52 69.44 563.64 69.28 563.64 69.09 C 563.64 68.84 563.43 68.64 563.18 68.64 C 562.93 68.64 562.73 68.84 562.73 69.09 C 562.73 69.23 562.79 69.36 562.9 69.44 C 562.85 69.56 562.79 69.65 562.73 69.71 C 562.6 69.61 562.44 69.55 562.27 69.55 C 562.1 69.55 561.95 69.61 561.81 69.71 C 561.76 69.65 561.69 69.56 561.65 69.44 C 561.75 69.36 561.82 69.23 561.82 69.09 C 561.82 68.84 561.61 68.64 561.36 68.64 C 561.11 68.64 560.91 68.84 560.91 69.09 C 560.91 69.28 561.03 69.44 561.19 69.51 C 561.27 69.77 561.4 69.95 561.52 70.05 C 561.42 70.23 561.36 70.45 561.36 70.68 C 561.27 70.73 561.18 70.79 561.09 70.86 C 560.94 70.76 560.68 70.52 560.68 70 L 560.23 70 C 560.23 70.67 560.55 71.03 560.79 71.2 C 560.63 71.45 560.51 71.77 560.47 72.16 C 560.26 72.04 560 71.8 560 71.36 L 559.55 71.36 C 559.55 72.11 560.08 72.51 560.46 72.67 C 560.47 72.93 560.52 73.19 560.59 73.43 C 560.34 73.49 559.55 73.75 559.55 74.32 L 560 74.32 C 560 74.14 560.44 73.93 560.74 73.86 L 560.72 73.8 C 561.04 74.52 561.62 75 562.27 75 C 562.93 75 563.5 74.52 563.82 73.8 L 563.81 73.86 C 564.11 73.93 564.55 74.14 564.55 74.32 L 565 74.32 C 565 73.75 564.21 73.49 563.96 73.43 C 564.03 73.19 564.07 72.93 564.08 72.67 C 564.47 72.51 565 72.11 565 71.36 Z M 563.64 72.5 C 563.64 72.85 563.58 73.19 563.47 73.48 L 562.5 72.83 L 562.5 70.93 C 563.22 71.02 563.64 71.58 563.64 72.5 Z M 562.27 70 C 562.48 70 562.65 70.22 562.71 70.5 C 562.56 70.47 562.42 70.45 562.27 70.45 C 562.13 70.45 561.98 70.47 561.84 70.5 C 561.89 70.22 562.07 70 562.27 70 Z M 562.05 70.93 L 562.05 72.83 L 561.08 73.48 C 560.97 73.19 560.91 72.85 560.91 72.5 C 560.91 71.58 561.32 71.02 562.05 70.93 Z M 562.27 74.55 C 561.88 74.55 561.53 74.29 561.28 73.89 L 562.27 73.23 L 563.27 73.89 C 563.02 74.29 562.67 74.55 562.27 74.55 Z" fill="#cc0000" stroke="none" pointer-events="all"/><path d="M 440 493 Q 440 493 272.12 493" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 265.12 493 L 272.12 490.67 L 272.12 495.33 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 480 493 Q 567.5 493 646.75 492.21" fill="none" stroke="#b3b3b3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 653.75 492.14 L 646.78 494.54 L 646.73 489.87 Z" fill="#b3b3b3" stroke="#b3b3b3" stroke-miterlimit="10" pointer-events="all"/><path d="M 460 464.88 Q 460 453 460 458 Q 460 463 460 451.12" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 460 471.88 L 457.67 464.88 L 462.33 464.88 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 460 444.12 L 462.33 451.12 L 457.67 451.12 Z" fill="#666666" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><rect x="440" y="473" width="40" height="40" fill="none" stroke="none" pointer-events="all"/><path d="M 464.22 479.62 C 464.22 476.97 466.41 474.82 469.11 474.82 C 471.8 474.82 474 476.97 474 479.62 C 474 482.27 471.8 484.43 469.11 484.43 C 466.41 484.43 464.22 482.27 464.22 479.62 Z M 474.69 486.03 C 474.11 485.67 473.48 485.36 472.84 485.12 C 474.63 483.93 475.82 481.91 475.82 479.62 C 475.82 475.97 472.81 473 469.11 473 C 465.41 473 462.4 475.97 462.4 479.62 C 462.4 481.91 463.57 483.92 465.36 485.11 C 464.19 485.55 463.1 486.2 462.14 487.02 L 463.32 488.4 C 464.94 487.01 466.99 486.25 469.09 486.25 C 470.73 486.25 472.34 486.71 473.74 487.58 C 476.23 489.12 477.86 491.84 478.14 494.82 L 469.09 494.82 L 469.09 496.64 L 479.09 496.64 C 479.59 496.64 480 496.23 480 495.73 C 480 491.78 477.97 488.06 474.69 486.03 Z M 446.04 479.62 C 446.04 476.97 448.23 474.82 450.93 474.82 C 453.62 474.82 455.82 476.97 455.82 479.62 C 455.82 482.27 453.62 484.43 450.93 484.43 C 448.23 484.43 446.04 482.27 446.04 479.62 Z M 450.91 494.82 L 441.86 494.82 C 442.3 490.02 446.19 486.25 450.91 486.25 C 452.55 486.25 454.15 486.71 455.55 487.58 C 455.95 487.82 456.33 488.1 456.68 488.4 L 457.87 487.02 C 457.44 486.66 456.99 486.32 456.51 486.03 C 455.92 485.67 455.3 485.36 454.66 485.12 C 456.45 483.93 457.63 481.91 457.63 479.62 C 457.63 475.97 454.62 473 450.93 473 C 447.23 473 444.22 475.97 444.22 479.62 C 444.22 481.91 445.4 483.93 447.19 485.12 C 443 486.7 440 490.85 440 495.73 C 440 496.23 440.41 496.64 440.91 496.64 L 450.91 496.64 Z M 450.95 511.18 C 451.39 506.38 455.28 502.61 460 502.61 C 461.64 502.61 463.24 503.07 464.64 503.94 C 467.14 505.49 468.77 508.2 469.05 511.18 Z M 455.13 495.99 C 455.13 493.34 457.32 491.18 460.02 491.18 C 462.71 491.18 464.91 493.34 464.91 495.99 C 464.91 498.64 462.71 500.79 460.02 500.79 C 457.32 500.79 455.13 498.64 455.13 495.99 Z M 465.6 502.39 C 465.01 502.03 464.39 501.73 463.75 501.48 C 465.54 500.29 466.72 498.27 466.72 495.99 C 466.72 492.34 463.72 489.36 460.02 489.36 C 456.32 489.36 453.31 492.34 453.31 495.99 C 453.31 498.27 454.49 500.29 456.28 501.48 C 452.09 503.06 449.09 507.22 449.09 512.09 C 449.09 512.59 449.5 513 450 513 L 470 513 C 470.5 513 470.91 512.59 470.91 512.09 C 470.91 508.14 468.88 504.43 465.6 502.39 Z" fill="#232f3d" stroke="none" pointer-events="all"/><path d="M 216 469 L 264 469 L 264 517 L 216 517 Z" fill="none" stroke="none" pointer-events="all"/><path d="M 247.24 497.36 C 247.24 496.16 246.26 495.18 245.07 495.18 C 243.87 495.18 242.89 496.16 242.89 497.36 C 242.89 498.56 243.87 499.54 245.07 499.54 C 246.26 499.54 247.24 498.56 247.24 497.36 M 239.28 490.1 C 240.47 490.1 241.45 489.12 241.45 487.92 C 241.45 486.72 240.47 485.74 239.28 485.74 C 238.08 485.74 237.11 486.72 237.11 487.92 C 237.11 489.12 238.08 490.1 239.28 490.1 M 232.76 498.09 C 233.96 498.09 234.93 497.11 234.93 495.91 C 234.93 494.71 233.96 493.73 232.76 493.73 C 231.57 493.73 230.59 494.71 230.59 495.91 C 230.59 497.11 231.57 498.09 232.76 498.09 M 248.68 497.36 C 248.68 499.11 247.44 500.58 245.79 500.92 L 245.79 505.35 C 245.79 505.75 245.47 506.07 245.07 506.07 L 240 506.07 L 240 510.43 L 238.55 510.43 L 238.55 502.44 L 232.76 502.44 C 232.36 502.44 232.04 502.12 232.04 501.72 L 232.04 499.47 C 230.39 499.13 229.15 497.66 229.15 495.91 C 229.15 493.91 230.77 492.28 232.76 492.28 C 234.76 492.28 236.38 493.91 236.38 495.91 C 236.38 497.66 235.14 499.13 233.49 499.47 L 233.49 500.99 L 238.55 500.99 L 238.55 491.48 C 236.9 491.14 235.66 489.68 235.66 487.92 C 235.66 485.92 237.28 484.29 239.28 484.29 C 241.27 484.29 242.89 485.92 242.89 487.92 C 242.89 489.68 241.65 491.14 240 491.48 L 240 504.62 L 244.34 504.62 L 244.34 500.92 C 242.69 500.58 241.45 499.11 241.45 497.36 C 241.45 495.36 243.07 493.73 245.07 493.73 C 247.06 493.73 248.68 495.36 248.68 497.36 M 259.2 493.78 C 259.2 499.1 255.25 500.99 251.55 500.99 L 251.55 499.54 C 253.41 499.54 257.75 498.98 257.75 493.78 C 257.75 489.88 254.8 488.47 252.33 487.97 C 252.01 487.91 251.77 487.63 251.75 487.31 C 251.57 484.26 249.8 483.18 248.34 483.18 C 247.35 483.18 246.42 483.65 245.79 484.47 C 245.64 484.68 245.37 484.79 245.11 484.75 C 244.85 484.71 244.63 484.53 244.54 484.28 C 243.97 482.74 243.16 481.45 242.12 480.44 C 239.45 477.84 235.81 477.14 232.36 478.56 C 229.5 479.72 227.26 483.1 227.26 486.25 C 227.26 486.6 227.28 486.95 227.32 487.29 C 227.37 487.65 227.13 488 226.78 488.08 C 225.09 488.5 222.25 489.79 222.25 493.72 C 222.25 493.87 222.25 494.01 222.26 494.15 C 222.43 497.17 225.1 499.54 228.34 499.54 L 229.15 499.54 L 229.15 500.99 L 228.34 500.99 C 224.33 500.99 221.03 498.02 220.82 494.23 C 220.81 494.06 220.8 493.9 220.8 493.72 C 220.8 489.16 223.95 487.45 225.83 486.85 C 225.82 486.65 225.81 486.45 225.81 486.25 C 225.81 482.49 228.39 478.61 231.81 477.21 C 235.8 475.57 240.04 476.38 243.13 479.39 C 244.08 480.32 244.86 481.44 245.47 482.74 C 246.28 482.09 247.29 481.72 248.34 481.72 C 250.48 481.72 252.74 483.26 253.15 486.67 C 257.06 487.63 259.2 490.13 259.2 493.78" fill="#f0a30a" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 524px; margin-left: 240px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: #232F3E; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(35, 47, 62); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font style="font-size: 8px" face="Verdana" color="#666666"><b><i>AWS Beanstalk</i></b></font></div></div></div></foreignObject><text x="240" y="536" fill="#232F3E" font-family="Helvetica" font-size="12px" text-anchor="middle">AWS Bean...</text></switch></g><path d="M 440 403 L 480 403 L 480 443 L 440 443 Z" fill="none" stroke="none" pointer-events="all"/><path d="M 464.96 423.42 C 465.38 423.81 465.59 424.33 465.59 424.99 C 465.59 425.7 465.33 426.27 464.82 426.7 C 464.31 427.12 463.62 427.34 462.75 427.34 C 462.07 427.34 461.39 427.19 460.72 426.9 L 460.72 426.03 C 461.51 426.29 462.19 426.42 462.75 426.42 C 463.3 426.42 463.73 426.29 464.03 426.05 C 464.33 425.8 464.48 425.45 464.48 424.99 C 464.48 424.11 463.92 423.67 462.81 423.67 C 462.46 423.67 462.11 423.69 461.77 423.72 L 461.77 423 L 464.06 420.5 L 460.83 420.5 L 460.83 419.61 L 465.27 419.61 L 465.27 420.47 L 463.02 422.85 C 463.06 422.84 463.1 422.84 463.13 422.84 L 463.24 422.84 C 463.96 422.84 464.53 423.03 464.96 423.42 M 458.62 423.23 C 459.06 423.65 459.28 424.22 459.28 424.94 C 459.28 425.66 459.02 426.24 458.51 426.68 C 457.99 427.12 457.31 427.34 456.47 427.34 C 455.73 427.34 455.03 427.19 454.38 426.9 L 454.38 426.03 C 455.19 426.29 455.88 426.42 456.46 426.42 C 457.01 426.42 457.43 426.29 457.73 426.04 C 458.02 425.79 458.17 425.43 458.17 424.96 C 458.17 424.44 458.03 424.06 457.75 423.83 C 457.48 423.6 457.03 423.48 456.4 423.48 C 455.95 423.48 455.39 423.52 454.71 423.59 L 454.71 422.87 L 454.92 419.61 L 458.9 419.61 L 458.9 420.5 L 455.83 420.5 L 455.69 422.72 C 456.09 422.65 456.45 422.61 456.77 422.61 C 457.56 422.61 458.17 422.82 458.62 423.23 M 466.82 431.23 C 464.05 431.73 461.63 432.86 460 433.78 C 458.37 432.86 455.95 431.73 453.18 431.23 C 452.4 431.09 448.52 430.28 448.52 428.04 C 448.52 427 448.89 426.31 449.61 425.08 C 450.46 423.6 451.53 421.77 451.53 419.13 C 451.53 417.25 451.03 415.44 450.06 413.75 C 450.17 413.61 450.29 413.47 450.4 413.32 C 451.85 414.04 453.36 414.41 454.89 414.41 C 456.76 414.41 458.47 413.92 460 412.95 C 461.52 413.92 463.24 414.41 465.11 414.41 C 466.64 414.41 468.15 414.04 469.6 413.32 C 469.71 413.47 469.83 413.61 469.94 413.75 C 468.97 415.44 468.47 417.25 468.47 419.13 C 468.47 421.77 469.54 423.6 470.39 425.08 C 471.11 426.31 471.48 427 471.48 428.04 C 471.48 430.28 467.6 431.09 466.82 431.23 M 469.61 419.13 C 469.61 417.33 470.12 415.61 471.12 414 C 471.25 413.8 471.24 413.53 471.08 413.34 C 470.79 412.99 470.49 412.61 470.19 412.24 C 470.01 412.02 469.71 411.97 469.47 412.1 C 468.06 412.88 466.6 413.27 465.11 413.27 C 463.32 413.27 461.75 412.79 460.32 411.8 C 460.13 411.66 459.87 411.66 459.68 411.8 C 458.25 412.79 456.68 413.27 454.89 413.27 C 453.4 413.27 451.94 412.88 450.53 412.1 C 450.29 411.97 449.99 412.02 449.81 412.24 C 449.51 412.61 449.21 412.99 448.92 413.34 C 448.76 413.53 448.75 413.8 448.88 414 C 449.88 415.61 450.39 417.33 450.39 419.13 C 450.39 421.47 449.41 423.15 448.62 424.51 C 447.85 425.83 447.38 426.71 447.38 428.04 C 447.38 431.11 451.67 432.12 452.98 432.36 C 455.75 432.85 458.17 434.03 459.71 434.93 C 459.8 434.98 459.9 435 460 435 C 460.1 435 460.2 434.98 460.29 434.93 C 461.83 434.03 464.25 432.85 467.02 432.36 C 468.33 432.12 472.62 431.11 472.62 428.04 C 472.62 426.71 472.15 425.83 471.38 424.51 C 470.59 423.15 469.61 421.47 469.61 419.13 M 467.41 434.53 C 463.91 435.16 460.98 437.04 460 437.73 C 459.02 437.04 456.09 435.16 452.59 434.53 C 445.71 433.29 445.18 429.25 445.18 428.04 C 445.18 426.05 445.96 424.7 446.71 423.4 C 447.43 422.16 448.18 420.87 448.18 419.13 C 448.18 416.38 446.59 414.44 445.81 413.65 C 446.63 412.65 448.71 410.12 449.74 408.79 C 451.29 410.26 453.1 411.06 454.89 411.06 C 456.87 411.06 458.51 410.25 460 408.53 C 461.49 410.25 463.13 411.06 465.11 411.06 C 466.9 411.06 468.71 410.26 470.26 408.79 C 471.29 410.12 473.37 412.65 474.19 413.65 C 473.41 414.44 471.82 416.38 471.82 419.13 C 471.82 420.87 472.57 422.16 473.29 423.4 C 474.04 424.7 474.82 426.05 474.82 428.04 C 474.82 429.25 474.29 433.29 467.41 434.53 M 474.27 422.83 C 473.57 421.61 472.96 420.56 472.96 419.13 C 472.96 416.12 475.31 414.17 475.33 414.15 C 475.45 414.05 475.52 413.91 475.54 413.76 C 475.55 413.61 475.51 413.46 475.41 413.34 C 475.37 413.3 471.64 408.77 470.78 407.59 C 470.68 407.45 470.52 407.37 470.35 407.36 C 470.18 407.35 470.02 407.41 469.9 407.54 C 468.47 409.07 466.77 409.92 465.11 409.92 C 463.29 409.92 461.85 409.11 460.45 407.28 C 460.24 407 459.76 407 459.55 407.28 C 458.15 409.11 456.71 409.92 454.89 409.92 C 453.23 409.92 451.53 409.07 450.1 407.54 C 449.98 407.41 449.82 407.34 449.65 407.36 C 449.48 407.37 449.32 407.45 449.22 407.59 C 448.36 408.77 444.63 413.3 444.59 413.34 C 444.49 413.46 444.45 413.61 444.46 413.76 C 444.48 413.91 444.55 414.05 444.67 414.15 C 444.69 414.17 447.04 416.12 447.04 419.13 C 447.04 420.56 446.43 421.61 445.73 422.83 C 444.93 424.19 444.04 425.74 444.04 428.04 C 444.04 431.87 447.16 434.71 452.39 435.65 C 456.33 436.36 459.62 438.86 459.65 438.88 C 459.75 438.96 459.88 439 460 439 C 460.12 439 460.24 438.96 460.35 438.88 C 460.38 438.86 463.66 436.36 467.61 435.65 C 472.84 434.71 475.96 431.87 475.96 428.04 C 475.96 425.74 475.07 424.19 474.27 422.83" fill="#f0a30a" stroke="none" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> \ No newline at end of file
diff --git a/docs/report/vpp_performance_tests/logical-2n-container-memif.svg b/docs/static/logical-2n-container-memif.svg
index 7026104170..7026104170 100644
--- a/docs/report/vpp_performance_tests/logical-2n-container-memif.svg
+++ b/docs/static/logical-2n-container-memif.svg
diff --git a/docs/report/vpp_performance_tests/logical-2n-nic2nic.svg b/docs/static/logical-2n-nic2nic.svg
index 6510fef606..6510fef606 100644
--- a/docs/report/vpp_performance_tests/logical-2n-nic2nic.svg
+++ b/docs/static/logical-2n-nic2nic.svg
diff --git a/docs/report/vpp_performance_tests/logical-2n-vm-vhost.svg b/docs/static/logical-2n-vm-vhost.svg
index 743a23790a..743a23790a 100644
--- a/docs/report/vpp_performance_tests/logical-2n-vm-vhost.svg
+++ b/docs/static/logical-2n-vm-vhost.svg
diff --git a/docs/report/vpp_performance_tests/logical-3n-container-memif.svg b/docs/static/logical-3n-container-memif.svg
index 9470f184e1..9470f184e1 100644
--- a/docs/report/vpp_performance_tests/logical-3n-container-memif.svg
+++ b/docs/static/logical-3n-container-memif.svg
diff --git a/docs/report/vpp_performance_tests/logical-3n-nic2nic.svg b/docs/static/logical-3n-nic2nic.svg
index eea3718983..eea3718983 100644
--- a/docs/report/vpp_performance_tests/logical-3n-nic2nic.svg
+++ b/docs/static/logical-3n-nic2nic.svg
diff --git a/docs/report/vpp_performance_tests/logical-3n-vm-vhost.svg b/docs/static/logical-3n-vm-vhost.svg
index 7f58396a92..7f58396a92 100644
--- a/docs/report/vpp_performance_tests/logical-3n-vm-vhost.svg
+++ b/docs/static/logical-3n-vm-vhost.svg
diff --git a/docs/report/introduction/testbed-2n-clx.svg b/docs/static/testbed-2n-clx.svg
index 326d66ed48..326d66ed48 100644
--- a/docs/report/introduction/testbed-2n-clx.svg
+++ b/docs/static/testbed-2n-clx.svg
diff --git a/docs/static/testbed-2n-icx.svg b/docs/static/testbed-2n-icx.svg
new file mode 100644
index 0000000000..64a11b3d94
--- /dev/null
+++ b/docs/static/testbed-2n-icx.svg
@@ -0,0 +1,1919 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.2" width="101.6mm" height="140mm" viewBox="0 0 10160 14000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
+ <defs class="ClipPathGroup">
+ <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
+ <rect x="0" y="0" width="10160" height="14000"/>
+ </clipPath>
+ <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
+ <rect x="10" y="14" width="10140" height="13972"/>
+ </clipPath>
+ </defs>
+ <defs>
+ <font id="EmbeddedFont_1" horiz-adv-x="2048">
+ <font-face font-family="Arial embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1864" descent="443"/>
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+ <glyph unicode="x" horiz-adv-x="1026" d="M 15,0 L 403,552 44,1062 269,1062 432,813 C 463,766 487,726 506,694 535,738 562,777 587,811 L 766,1062 981,1062 614,562 1009,0 788,0 570,330 512,419 233,0 Z"/>
+ <glyph unicode="U" horiz-adv-x="1189" d="M 1120,1466 L 1314,1466 1314,619 C 1314,472 1297,355 1264,268 1231,181 1171,111 1084,57 997,2 882,-25 741,-25 604,-25 491,-1 404,46 317,93 254,162 217,252 180,341 161,464 161,619 L 161,1466 355,1466 355,620 C 355,493 367,399 391,339 414,278 455,232 513,199 570,166 641,150 724,150 867,150 968,182 1029,247 1090,312 1120,436 1120,620 Z"/>
+ <glyph unicode="P" horiz-adv-x="1143" d="M 158,0 L 158,1466 711,1466 C 808,1466 883,1461 934,1452 1006,1440 1066,1417 1115,1384 1164,1350 1203,1303 1233,1242 1262,1181 1277,1115 1277,1042 1277,917 1237,812 1158,726 1079,639 935,596 728,596 L 352,596 352,0 Z M 352,769 L 731,769 C 856,769 945,792 998,839 1051,886 1077,951 1077,1036 1077,1097 1062,1150 1031,1194 1000,1237 959,1266 908,1280 875,1289 815,1293 727,1293 L 352,1293 Z"/>
+ <glyph unicode="I" horiz-adv-x="211" d="M 191,0 L 191,1466 385,1466 385,0 Z"/>
+ <glyph unicode="6" horiz-adv-x="980" d="M 1019,1107 L 840,1093 C 824,1164 801,1215 772,1247 723,1298 663,1324 592,1324 535,1324 484,1308 441,1276 384,1235 340,1174 307,1095 274,1016 257,903 256,756 299,822 352,871 415,903 478,935 543,951 612,951 732,951 834,907 919,819 1003,730 1045,616 1045,476 1045,384 1025,299 986,220 946,141 891,80 822,38 753,-4 674,-25 586,-25 436,-25 314,30 219,141 124,251 77,433 77,686 77,969 129,1175 234,1304 325,1416 448,1472 603,1472 718,1472 813,1440 887,1375 960,1310 1004,1221 1019,1107 Z M 284,475 C 284,413 297,354 324,297 350,240 387,197 434,168 481,138 531,123 583,123 659,123 724,154 779,215 834,276 861,360 861,465 861,566 834,646 780,705 726,763 658,792 576,792 495,792 426,763 369,705 312,646 284,570 284,475 Z"/>
+ <glyph unicode="1" horiz-adv-x="560" d="M 763,0 L 583,0 583,1147 C 540,1106 483,1064 413,1023 342,982 279,951 223,930 L 223,1104 C 324,1151 412,1209 487,1276 562,1343 616,1409 647,1472 L 763,1472 Z"/>
+ </font>
+ </defs>
+ <defs>
+ <font id="EmbeddedFont_2" horiz-adv-x="2048">
+ <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1957" descent="559"/>
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+ <glyph unicode="y" horiz-adv-x="887" d="M 563,0 L 443,-331 C 439,-342 429,-350 413,-356 396,-361 371,-364 338,-364 321,-364 307,-363 296,-362 285,-360 277,-357 272,-353 266,-349 263,-344 262,-337 261,-330 263,-322 267,-313 L 391,0 C 385,3 379,7 374,13 369,19 365,25 363,32 L 42,892 C 37,906 34,917 34,925 34,933 37,939 42,944 47,949 56,952 68,954 80,955 96,956 116,956 136,956 152,956 163,955 174,954 183,952 190,949 197,946 202,943 205,938 208,933 211,926 214,917 L 471,195 474,195 722,921 C 726,934 731,942 737,946 742,949 751,952 762,954 773,955 790,956 811,956 830,956 845,955 857,954 869,952 878,949 884,944 889,939 892,933 892,925 892,917 890,907 886,895 Z"/>
+ <glyph unicode="x" horiz-adv-x="840" d="M 835,44 C 840,35 843,27 843,21 843,14 840,9 834,5 827,1 818,-2 805,-4 792,-5 775,-6 754,-6 734,-6 718,-6 707,-5 695,-4 686,-2 679,1 672,3 666,6 663,10 659,13 656,17 653,22 L 437,379 222,22 C 219,17 216,13 213,10 209,6 204,3 197,1 190,-2 180,-4 169,-5 158,-6 143,-6 124,-6 105,-6 89,-5 77,-4 64,-2 55,1 50,5 44,9 41,14 42,21 42,27 45,35 51,44 L 331,483 66,906 C 61,915 58,923 58,930 57,936 60,941 67,946 73,950 83,953 96,954 109,955 126,956 147,956 166,956 182,956 194,955 205,954 214,952 221,950 228,948 233,945 236,942 239,939 242,935 245,930 L 450,595 658,930 C 661,934 664,938 667,941 670,944 675,947 681,950 686,952 694,954 705,955 715,956 729,956 747,956 766,956 782,955 795,954 807,953 816,950 822,947 828,943 831,938 830,931 829,924 826,916 820,906 L 557,488 Z"/>
+ <glyph unicode="v" horiz-adv-x="887" d="M 891,927 C 891,924 891,922 891,919 890,916 890,912 889,909 888,906 888,902 887,898 886,894 884,890 883,885 L 576,30 C 573,23 570,17 566,12 561,7 555,4 546,1 537,-2 526,-4 513,-5 500,-6 483,-6 463,-6 443,-6 426,-5 413,-4 400,-3 389,-1 381,2 372,5 366,8 361,13 356,18 353,23 350,30 L 44,885 C 41,893 39,900 38,906 36,912 35,917 35,920 34,923 34,925 34,927 34,932 35,937 38,941 41,945 45,948 52,951 58,953 66,954 77,955 87,956 100,956 115,956 134,956 150,956 162,955 173,954 182,952 189,949 195,946 200,943 203,939 206,935 208,930 211,924 L 465,182 469,170 472,182 723,924 C 724,930 727,935 730,939 733,943 738,946 745,949 751,952 760,954 771,955 782,956 796,956 814,956 829,956 842,956 852,955 862,954 870,953 876,950 881,947 885,944 888,941 890,937 891,932 891,927 Z"/>
+ <glyph unicode="u" horiz-adv-x="793" d="M 924,25 C 924,20 923,15 921,12 918,8 914,5 908,2 902,-1 894,-3 885,-4 875,-5 863,-6 849,-6 834,-6 821,-5 812,-4 802,-3 794,-1 789,2 783,5 779,8 777,12 775,15 774,20 774,25 L 774,144 C 723,87 672,46 622,20 572,-6 521,-19 470,-19 410,-19 360,-9 319,11 278,31 244,58 219,93 194,127 176,167 165,213 154,258 148,314 148,379 L 148,925 C 148,930 149,935 152,939 154,942 158,946 165,949 172,952 180,954 191,955 202,956 215,956 231,956 247,956 260,956 271,955 282,954 290,952 297,949 303,946 307,942 310,939 313,935 314,930 314,925 L 314,401 C 314,348 318,306 326,275 333,243 345,216 361,194 376,171 396,154 420,142 444,129 472,123 504,123 545,123 587,138 628,167 669,196 712,239 758,296 L 758,925 C 758,930 759,935 762,939 764,942 768,946 775,949 782,952 790,954 801,955 811,956 824,956 841,956 857,956 870,956 881,955 892,954 900,952 906,949 912,946 917,942 920,939 923,935 924,930 924,925 Z"/>
+ <glyph unicode="t" horiz-adv-x="607" d="M 621,91 C 621,72 620,56 617,45 614,34 610,25 605,20 600,15 592,10 581,5 570,0 558,-4 545,-7 531,-10 516,-12 501,-14 486,-16 470,-17 455,-17 408,-17 368,-11 335,2 302,14 274,33 253,58 232,83 216,114 207,153 197,191 192,236 192,288 L 192,814 66,814 C 56,814 48,819 42,830 36,841 33,858 33,882 33,895 34,905 36,914 37,923 39,930 42,936 45,941 48,945 53,948 57,950 62,951 67,951 L 192,951 192,1165 C 192,1170 193,1174 196,1178 198,1182 202,1186 209,1189 215,1192 223,1194 234,1195 245,1196 258,1197 274,1197 291,1197 304,1196 315,1195 326,1194 334,1192 340,1189 346,1186 350,1182 353,1178 356,1174 357,1170 357,1165 L 357,951 588,951 C 593,951 598,950 602,948 606,945 610,941 613,936 616,930 618,923 619,914 620,905 621,895 621,882 621,858 618,841 612,830 606,819 598,814 588,814 L 357,814 357,312 C 357,250 366,203 385,172 403,140 436,124 483,124 498,124 512,126 524,129 536,132 547,135 556,138 565,141 573,145 580,148 587,151 593,152 598,152 601,152 605,151 608,150 611,148 613,145 615,140 616,135 618,129 619,121 620,113 621,103 621,91 Z"/>
+ <glyph unicode="s" horiz-adv-x="653" d="M 718,270 C 718,224 710,183 693,147 676,111 651,81 620,56 589,31 551,13 508,0 465,-13 417,-19 365,-19 333,-19 303,-17 274,-12 245,-7 219,0 196,8 173,15 153,23 137,32 121,40 109,47 102,54 95,61 89,70 86,82 83,94 81,110 81,131 81,144 82,154 83,163 84,172 86,179 88,184 90,189 93,193 97,196 100,198 104,199 109,199 116,199 127,195 142,186 156,177 174,167 195,156 216,145 240,136 269,127 298,118 331,113 368,113 396,113 421,116 444,122 467,128 486,137 503,149 520,160 533,175 542,193 551,211 555,232 555,257 555,282 549,304 536,321 523,338 505,354 484,367 463,380 439,392 412,403 385,413 358,424 330,435 301,446 274,459 247,474 220,488 195,505 174,526 153,547 136,571 123,600 110,629 103,663 103,703 103,738 110,772 124,805 137,837 158,865 185,890 212,914 247,933 288,948 329,963 376,970 431,970 455,970 479,968 503,964 527,960 549,955 568,949 587,943 604,937 618,930 631,923 642,916 649,911 656,906 660,901 663,897 665,893 667,889 668,884 669,879 670,872 671,865 672,858 672,849 672,838 672,827 672,817 671,809 670,800 668,793 666,788 663,783 660,779 657,777 654,774 650,773 646,773 640,773 631,777 620,784 609,791 594,799 576,808 558,816 537,824 513,831 488,838 460,842 429,842 401,842 376,839 355,833 334,826 316,817 303,806 289,794 279,780 272,764 265,748 261,731 261,712 261,686 268,664 281,647 294,629 312,613 333,600 354,587 379,575 406,564 433,553 461,542 490,531 518,520 546,507 574,493 601,479 626,462 647,442 668,422 686,398 699,370 712,342 718,309 718,270 Z"/>
+ <glyph unicode="r" horiz-adv-x="560" d="M 679,866 C 679,851 679,839 678,829 677,819 676,811 674,806 672,800 670,796 667,793 664,790 659,788 654,788 649,788 642,790 635,793 627,796 618,799 609,802 599,805 588,807 576,810 564,813 551,814 537,814 520,814 504,811 488,804 472,797 455,786 438,771 420,756 401,735 382,710 363,685 341,654 318,617 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,794 C 327,830 350,859 372,882 393,905 414,923 433,936 452,949 472,958 491,963 510,968 529,970 548,970 557,970 567,970 578,969 589,968 600,966 612,963 624,960 635,957 645,954 654,951 661,947 665,944 669,941 672,938 673,935 674,932 676,928 677,923 678,918 678,912 679,903 679,894 679,881 679,866 Z"/>
+ <glyph unicode="o" horiz-adv-x="933" d="M 990,485 C 990,412 980,344 961,283 942,221 913,168 875,123 836,78 788,44 731,19 673,-7 606,-19 530,-19 456,-19 392,-8 337,14 282,36 236,68 199,110 162,152 135,203 117,263 99,323 90,391 90,467 90,540 100,608 119,670 138,731 166,784 205,829 243,874 291,908 348,933 405,958 472,970 549,970 623,970 688,959 743,937 798,915 843,883 880,841 917,799 944,748 963,688 981,628 990,560 990,485 Z M 816,474 C 816,523 812,569 803,612 794,655 779,693 758,726 737,759 709,785 674,804 639,823 595,832 542,832 493,832 452,823 417,806 382,789 353,764 330,733 307,701 291,663 280,620 269,577 263,529 263,478 263,429 268,382 277,339 286,296 301,258 322,226 343,193 371,168 406,149 441,130 485,120 538,120 586,120 628,129 663,146 698,163 727,188 750,219 773,250 789,288 800,331 811,374 816,422 816,474 Z"/>
+ <glyph unicode="n" horiz-adv-x="793" d="M 928,25 C 928,20 927,15 924,12 921,8 917,5 911,2 905,-1 897,-3 886,-4 875,-5 862,-6 846,-6 829,-6 816,-5 805,-4 794,-3 786,-1 780,2 774,5 770,8 767,12 764,15 763,20 763,25 L 763,552 C 763,603 759,645 751,676 743,707 731,734 716,757 701,780 681,797 657,809 632,821 604,827 572,827 531,827 489,812 448,783 407,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 403,904 454,931 504,957 555,970 606,970 666,970 717,960 758,940 799,919 832,892 857,858 882,824 901,784 912,739 923,693 928,638 928,574 Z"/>
+ <glyph unicode="m" horiz-adv-x="1352" d="M 1488,25 C 1488,20 1487,15 1484,12 1481,8 1477,5 1471,2 1465,-1 1457,-3 1446,-4 1435,-5 1422,-6 1406,-6 1389,-6 1376,-5 1365,-4 1354,-3 1346,-1 1340,2 1333,5 1329,8 1326,12 1323,15 1322,20 1322,25 L 1322,572 C 1322,610 1319,645 1312,676 1305,707 1295,734 1280,757 1265,780 1247,797 1224,809 1201,821 1175,827 1144,827 1106,827 1068,812 1030,783 991,754 949,711 903,654 L 903,25 C 903,20 902,15 899,12 896,8 892,5 886,2 879,-1 871,-3 860,-4 849,-5 836,-6 820,-6 805,-6 792,-5 781,-4 770,-3 761,-1 755,2 748,5 744,8 742,12 739,15 738,20 738,25 L 738,572 C 738,610 734,645 727,676 720,707 709,734 694,757 679,780 661,797 639,809 616,821 590,827 559,827 521,827 483,812 444,783 405,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 402,904 450,931 497,957 545,970 594,970 631,970 665,966 695,957 724,948 750,936 773,921 796,905 815,886 831,865 847,843 860,819 871,792 901,825 930,852 957,875 984,898 1010,916 1035,930 1060,944 1084,954 1108,961 1131,967 1155,970 1179,970 1237,970 1286,960 1325,940 1364,919 1396,892 1421,858 1445,824 1462,784 1473,739 1483,693 1488,645 1488,594 Z"/>
+ <glyph unicode="l" horiz-adv-x="187" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 Z"/>
+ <glyph unicode="k" horiz-adv-x="770" d="M 892,26 C 892,21 891,16 888,12 885,8 881,5 875,2 868,-1 859,-3 848,-4 837,-5 822,-6 805,-6 787,-6 772,-6 761,-5 749,-4 739,-2 731,1 723,3 717,6 712,11 707,15 702,20 698,26 L 318,524 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 L 318,547 658,921 C 663,928 669,933 675,938 681,942 688,946 697,949 705,952 715,954 726,955 737,956 751,956 767,956 784,956 798,956 809,955 820,954 830,952 837,950 844,947 849,944 852,941 855,937 856,932 856,926 856,918 854,910 850,902 845,894 838,885 828,874 L 502,548 868,73 C 877,62 883,53 887,46 890,39 892,32 892,26 Z"/>
+ <glyph unicode="i" horiz-adv-x="234" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,934 157,938 159,942 163,945 170,948 176,951 184,953 195,954 206,955 219,956 235,956 252,956 265,955 276,954 287,953 295,951 301,948 307,945 311,942 314,938 317,934 318,930 318,925 Z M 337,1229 C 337,1190 330,1164 315,1150 300,1136 273,1129 234,1129 195,1129 169,1136 155,1150 140,1163 133,1189 133,1227 133,1266 140,1292 155,1306 170,1320 197,1327 236,1327 275,1327 301,1320 316,1307 330,1293 337,1267 337,1229 Z"/>
+ <glyph unicode="f" horiz-adv-x="630" d="M 646,1295 C 646,1282 645,1272 644,1265 643,1257 641,1251 640,1246 638,1241 636,1238 633,1237 630,1235 627,1234 623,1234 618,1234 613,1236 606,1239 599,1242 590,1245 580,1249 570,1252 558,1256 545,1259 531,1262 515,1263 497,1263 472,1263 451,1259 434,1251 417,1243 403,1231 392,1214 381,1197 374,1175 369,1148 364,1121 362,1088 362,1049 L 362,951 563,951 C 568,951 573,950 577,948 580,945 584,941 587,936 590,930 592,923 594,914 595,905 596,895 596,882 596,858 593,841 587,830 581,819 573,814 563,814 L 362,814 362,25 C 362,20 361,15 358,12 355,8 351,5 345,2 338,-1 330,-3 319,-4 308,-5 295,-6 279,-6 263,-6 250,-5 239,-4 228,-3 220,-1 214,2 207,5 203,8 200,12 197,15 196,20 196,25 L 196,814 69,814 C 58,814 50,819 45,830 40,841 37,858 37,882 37,895 38,905 39,914 40,923 42,930 45,936 48,941 51,945 55,948 59,950 64,951 69,951 L 196,951 196,1044 C 196,1107 202,1161 214,1206 225,1251 243,1287 267,1316 291,1345 321,1366 358,1380 394,1393 437,1400 486,1400 509,1400 532,1398 554,1394 576,1389 593,1385 605,1380 617,1375 625,1370 629,1366 633,1362 636,1357 639,1351 642,1344 644,1337 645,1328 646,1319 646,1308 646,1295 Z"/>
+ <glyph unicode="e" horiz-adv-x="863" d="M 921,514 C 921,488 915,470 902,459 889,448 874,442 857,442 L 267,442 C 267,392 272,347 282,307 292,267 309,233 332,204 355,175 386,153 423,138 460,123 506,115 560,115 603,115 641,119 674,126 707,133 736,140 761,149 785,158 805,166 821,173 836,180 848,183 856,183 861,183 865,182 869,180 872,177 875,174 877,169 879,164 881,158 882,150 883,141 883,131 883,119 883,110 883,103 882,97 881,90 881,85 880,80 879,75 877,70 875,66 872,62 869,58 866,55 862,51 851,45 833,37 815,28 792,20 763,12 734,4 701,-3 664,-10 626,-16 586,-19 543,-19 469,-19 404,-9 349,12 293,33 246,63 208,104 170,145 141,196 122,257 103,318 93,390 93,471 93,548 103,618 123,680 143,741 172,794 210,837 247,880 293,913 346,936 399,959 459,970 525,970 596,970 656,959 706,936 755,913 796,883 828,845 860,806 884,761 899,710 914,658 921,603 921,544 Z M 755,563 C 757,650 738,718 698,767 657,816 597,841 518,841 477,841 442,833 411,818 380,803 355,782 334,757 313,732 297,702 286,669 275,635 268,600 267,563 Z"/>
+ <glyph unicode="d" horiz-adv-x="840" d="M 924,25 C 924,20 923,15 921,11 918,7 914,4 909,2 903,-1 895,-3 886,-4 877,-5 865,-6 852,-6 838,-6 826,-5 817,-4 808,-3 800,-1 794,2 788,4 784,7 781,11 778,15 777,20 777,25 L 777,144 C 730,93 681,53 630,24 579,-5 523,-19 462,-19 396,-19 340,-6 293,20 246,45 209,80 180,124 151,167 129,219 116,278 103,337 96,399 96,464 96,541 104,611 121,674 138,736 162,789 195,833 228,877 268,911 317,935 365,958 421,970 484,970 537,970 585,959 629,936 672,913 715,879 758,834 L 758,1357 C 758,1362 759,1366 762,1371 764,1375 768,1378 775,1381 782,1383 790,1385 801,1387 811,1388 824,1389 840,1389 857,1389 870,1388 881,1387 892,1385 900,1383 906,1381 912,1378 917,1375 920,1371 923,1366 924,1362 924,1357 Z M 758,658 C 713,713 670,756 629,785 587,814 543,828 498,828 456,828 420,818 391,798 362,778 338,752 320,719 301,686 288,649 280,608 271,567 267,525 267,482 267,437 271,392 278,349 285,306 297,267 314,234 331,200 354,173 383,153 412,132 448,122 491,122 513,122 534,125 555,131 575,137 596,147 617,161 638,175 661,193 684,216 707,238 732,265 758,298 Z"/>
+ <glyph unicode="c" horiz-adv-x="747" d="M 800,162 C 800,151 800,141 799,133 798,124 797,117 796,112 794,106 792,101 790,97 787,92 782,86 774,78 765,69 751,59 731,47 711,34 689,23 664,14 639,4 611,-4 582,-10 553,-16 522,-19 491,-19 426,-19 369,-8 319,13 269,34 227,66 194,107 160,148 134,198 117,258 99,317 90,386 90,464 90,553 101,629 123,693 144,756 174,808 212,849 249,890 294,920 345,940 396,959 451,969 510,969 539,969 567,966 594,961 621,956 645,949 668,940 691,931 711,921 729,910 746,899 759,889 767,881 775,873 781,867 784,862 787,857 789,852 791,846 793,839 794,832 795,824 796,816 796,806 796,794 796,768 793,750 787,740 781,729 774,724 765,724 755,724 744,730 731,741 718,752 701,764 681,777 661,790 637,803 609,814 580,825 547,830 508,830 429,830 368,800 326,739 283,678 262,589 262,473 262,415 268,364 279,321 290,277 306,240 327,211 348,182 375,160 406,146 437,131 472,124 512,124 550,124 583,130 612,142 641,154 666,167 687,182 708,196 725,209 740,221 754,232 765,238 773,238 778,238 782,237 785,234 788,231 791,227 794,221 796,214 798,206 799,197 800,187 800,175 800,162 Z"/>
+ <glyph unicode="a" horiz-adv-x="770" d="M 831,24 C 831,16 828,10 823,6 818,2 810,-1 801,-3 792,-5 778,-6 760,-6 743,-6 729,-5 719,-3 708,-1 701,2 696,6 691,10 689,16 689,24 L 689,114 C 650,72 606,39 558,16 509,-7 458,-19 404,-19 357,-19 314,-13 276,-1 237,12 205,30 178,53 151,76 130,105 115,139 100,173 92,212 92,255 92,306 102,350 123,387 144,424 173,455 212,480 251,505 298,523 354,536 410,548 473,554 543,554 L 667,554 667,624 C 667,659 663,689 656,716 649,743 637,765 621,783 604,800 583,814 557,823 531,832 499,836 461,836 420,836 384,831 352,822 319,812 291,801 267,790 242,778 222,767 206,758 189,748 177,743 169,743 164,743 159,744 155,747 151,750 148,754 145,759 142,764 139,771 138,780 137,788 136,797 136,807 136,824 137,837 140,847 142,856 148,865 157,874 166,883 181,893 203,905 225,916 250,927 279,937 308,946 339,954 373,961 407,967 441,970 476,970 541,970 596,963 641,948 686,933 723,912 751,884 779,855 799,820 812,778 825,736 831,687 831,631 Z M 667,435 L 526,435 C 481,435 441,431 408,424 375,416 347,405 325,390 303,375 287,357 277,336 266,315 261,290 261,263 261,216 276,179 306,152 335,124 377,110 430,110 473,110 514,121 551,143 588,165 626,199 667,244 Z"/>
+ <glyph unicode="X" horiz-adv-x="979" d="M 996,62 C 1005,47 1010,36 1012,27 1013,18 1011,12 1005,7 999,2 989,-2 976,-4 962,-5 944,-6 921,-6 900,-6 883,-6 871,-5 859,-4 850,-2 843,1 836,4 830,7 827,11 823,14 820,19 817,25 L 529,540 238,25 C 235,19 231,14 227,10 223,6 218,3 211,1 204,-2 194,-4 182,-5 170,-6 154,-6 134,-6 112,-6 95,-5 82,-4 69,-2 61,2 56,7 51,12 49,18 51,27 52,36 57,47 66,62 L 419,657 82,1232 C 74,1247 69,1259 67,1268 64,1277 66,1284 71,1289 76,1294 86,1297 99,1298 112,1299 131,1300 154,1300 174,1300 190,1300 203,1299 216,1298 226,1296 233,1294 240,1291 246,1288 249,1284 252,1279 256,1274 260,1269 L 538,785 814,1269 C 817,1274 821,1279 824,1284 827,1288 832,1291 839,1294 845,1296 854,1298 865,1299 876,1300 892,1300 911,1300 932,1300 949,1299 962,1298 975,1296 984,1293 990,1288 995,1283 997,1277 996,1268 995,1259 990,1247 982,1232 L 646,661 Z"/>
+ <glyph unicode="U" horiz-adv-x="1003" d="M 1145,478 C 1145,399 1134,329 1111,268 1088,206 1055,154 1012,111 969,68 917,36 856,14 795,-8 725,-19 647,-19 576,-19 511,-9 452,12 393,33 343,63 301,104 259,144 227,194 204,255 181,316 170,386 170,465 L 170,1268 C 170,1273 171,1278 174,1282 177,1286 181,1289 188,1292 195,1294 203,1296 214,1298 225,1299 239,1300 256,1300 272,1300 286,1299 297,1298 308,1296 317,1294 324,1292 330,1289 334,1286 337,1282 340,1278 341,1273 341,1268 L 341,486 C 341,426 348,374 363,329 378,284 399,247 427,218 454,188 488,166 527,151 566,136 609,128 658,128 708,128 753,135 792,150 831,165 864,187 891,216 918,245 938,282 953,325 967,368 974,419 974,477 L 974,1268 C 974,1273 975,1278 978,1282 981,1286 985,1289 992,1292 999,1294 1008,1296 1019,1298 1030,1299 1043,1300 1060,1300 1076,1300 1090,1299 1101,1298 1112,1296 1120,1294 1127,1292 1133,1289 1138,1286 1141,1282 1144,1278 1145,1273 1145,1268 Z"/>
+ <glyph unicode="T" horiz-adv-x="1003" d="M 983,1220 C 983,1207 982,1196 981,1187 980,1178 978,1170 975,1165 972,1159 968,1155 964,1152 959,1149 954,1148 949,1148 L 585,1148 585,26 C 585,21 584,16 581,12 578,8 574,5 567,3 560,0 552,-2 541,-4 530,-5 516,-6 499,-6 483,-6 469,-5 458,-4 447,-2 438,0 431,3 424,5 420,8 417,12 414,16 413,21 413,26 L 413,1148 49,1148 C 44,1148 39,1149 35,1152 30,1155 27,1159 24,1165 21,1170 19,1178 18,1187 16,1196 15,1207 15,1220 15,1233 16,1244 18,1254 19,1263 21,1271 24,1277 27,1283 30,1287 35,1290 39,1293 44,1294 49,1294 L 949,1294 C 954,1294 959,1293 964,1290 968,1287 972,1283 975,1277 978,1271 980,1263 981,1254 982,1244 983,1233 983,1220 Z"/>
+ <glyph unicode="S" horiz-adv-x="817" d="M 867,363 C 867,302 856,248 834,201 811,154 780,114 741,81 701,48 654,23 601,6 547,-11 489,-19 427,-19 384,-19 344,-15 307,-8 270,-1 237,8 208,19 179,30 154,41 135,52 115,63 101,73 94,81 86,89 80,99 77,112 73,124 71,140 71,161 71,176 72,188 73,198 74,207 76,215 79,221 82,227 85,231 89,234 93,236 98,237 103,237 112,237 126,231 143,220 160,209 181,196 208,183 235,170 267,157 305,146 342,134 386,128 435,128 472,128 507,133 538,143 569,153 595,167 618,186 640,204 657,226 669,253 681,280 687,310 687,344 687,381 679,412 662,438 645,464 623,487 596,507 569,526 538,544 503,561 468,577 432,594 395,611 358,628 323,646 288,667 253,688 222,712 195,740 168,768 146,801 129,839 112,876 103,921 103,974 103,1028 113,1076 133,1119 152,1161 180,1196 215,1225 250,1254 291,1276 340,1291 388,1306 440,1313 496,1313 525,1313 554,1311 583,1306 612,1301 639,1294 665,1286 690,1277 713,1268 733,1258 753,1247 766,1239 773,1233 779,1226 783,1221 785,1218 787,1214 789,1209 790,1204 791,1198 792,1191 793,1183 794,1175 794,1165 794,1152 794,1140 794,1129 793,1120 792,1111 790,1103 788,1097 786,1090 783,1086 780,1083 776,1080 772,1078 767,1078 760,1078 748,1083 733,1092 717,1101 698,1112 675,1124 652,1135 626,1146 595,1156 564,1165 529,1170 490,1170 454,1170 423,1165 396,1156 369,1146 347,1133 330,1117 313,1101 300,1082 291,1060 282,1038 278,1015 278,990 278,954 286,923 303,897 320,871 342,848 370,828 397,808 429,790 464,773 499,756 535,740 572,723 609,706 645,687 680,667 715,646 747,622 775,595 802,567 825,534 842,497 859,459 867,414 867,363 Z"/>
+ <glyph unicode="R" horiz-adv-x="887" d="M 1035,26 C 1035,21 1034,16 1032,12 1030,8 1026,5 1019,2 1012,-1 1003,-3 991,-4 979,-5 963,-6 943,-6 926,-6 912,-5 901,-4 890,-3 881,-1 874,3 867,6 862,10 859,15 855,20 852,27 849,35 L 730,340 C 716,375 702,407 687,436 672,465 654,490 633,511 612,532 588,548 560,560 532,571 498,577 459,577 L 344,577 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 511,1294 C 544,1294 571,1293 593,1292 614,1290 634,1288 651,1286 701,1277 745,1264 784,1245 822,1226 854,1203 880,1174 906,1145 926,1113 939,1076 952,1039 958,998 958,953 958,910 952,871 941,837 929,802 912,772 890,746 868,719 842,696 811,677 780,658 746,641 708,628 729,619 749,607 766,593 783,578 800,561 815,541 830,521 844,498 857,472 870,446 884,417 897,384 L 1013,99 C 1022,75 1028,58 1031,49 1034,39 1035,31 1035,26 Z M 776,935 C 776,986 765,1029 742,1064 719,1099 681,1124 628,1139 611,1144 593,1147 572,1149 551,1151 523,1152 489,1152 L 344,1152 344,716 512,716 C 557,716 597,722 630,733 663,744 690,759 712,779 734,798 750,821 761,848 771,875 776,904 776,935 Z"/>
+ <glyph unicode="P" horiz-adv-x="817" d="M 967,915 C 967,850 956,792 935,740 914,688 883,644 844,607 804,570 755,542 698,522 640,502 571,492 491,492 L 344,492 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1220 C 172,1247 179,1266 193,1277 207,1288 223,1294 240,1294 L 517,1294 C 545,1294 572,1293 598,1291 623,1288 654,1283 689,1276 724,1268 759,1254 796,1233 832,1212 863,1186 888,1155 913,1124 933,1089 947,1049 960,1008 967,964 967,915 Z M 786,901 C 786,954 776,998 757,1033 737,1068 713,1095 684,1112 655,1129 625,1140 594,1145 563,1150 532,1152 503,1152 L 344,1152 344,633 499,633 C 551,633 594,640 629,653 663,666 692,685 715,709 738,732 756,761 768,794 780,827 786,862 786,901 Z"/>
+ <glyph unicode="N" horiz-adv-x="1003" d="M 1150,71 C 1150,58 1148,46 1144,37 1139,28 1134,20 1127,14 1120,8 1112,4 1103,1 1094,-2 1086,-3 1077,-3 L 1022,-3 C 1005,-3 990,-1 977,3 964,6 951,13 940,23 928,32 916,45 905,62 893,79 880,100 866,126 L 458,862 C 437,900 415,940 394,982 372,1023 352,1064 333,1103 L 331,1103 C 332,1055 333,1006 334,956 335,906 335,856 335,807 L 335,26 C 335,21 334,17 331,13 328,8 324,5 318,3 311,0 303,-2 293,-4 282,-5 269,-6 253,-6 237,-6 224,-5 214,-4 203,-2 195,0 189,3 183,5 179,8 176,13 173,17 172,21 172,26 L 172,1220 C 172,1247 179,1266 194,1277 209,1288 225,1294 242,1294 L 324,1294 C 343,1294 360,1292 373,1289 386,1286 397,1280 408,1273 418,1265 428,1254 438,1241 447,1227 458,1210 469,1189 L 783,621 C 802,586 821,553 839,520 857,487 874,454 891,422 908,390 924,359 941,328 957,297 973,265 989,234 L 990,234 C 989,287 988,342 988,399 987,456 987,510 987,563 L 987,1265 C 987,1270 988,1274 991,1278 994,1282 998,1286 1005,1289 1011,1292 1019,1294 1030,1295 1040,1296 1053,1297 1070,1297 1085,1297 1097,1296 1108,1295 1119,1294 1127,1292 1133,1289 1139,1286 1143,1282 1146,1278 1149,1274 1150,1270 1150,1265 Z"/>
+ <glyph unicode="I" horiz-adv-x="188" d="M 344,26 C 344,21 343,16 340,12 337,8 333,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 242,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1268 C 172,1273 174,1278 177,1282 180,1286 185,1289 192,1292 199,1294 208,1296 219,1298 230,1299 243,1300 258,1300 275,1300 289,1299 300,1298 311,1296 319,1294 326,1292 333,1289 337,1286 340,1282 343,1278 344,1273 344,1268 Z"/>
+ <glyph unicode="G" horiz-adv-x="1096" d="M 1144,1118 C 1144,1105 1143,1094 1142,1085 1141,1075 1139,1067 1136,1061 1133,1054 1130,1050 1126,1047 1122,1044 1118,1043 1113,1043 1105,1043 1092,1049 1073,1062 1054,1075 1029,1089 998,1104 967,1119 929,1133 886,1146 842,1159 790,1165 730,1165 659,1165 595,1152 538,1126 481,1100 433,1064 394,1018 355,972 325,917 304,854 283,791 272,722 272,648 272,565 284,492 307,428 330,364 361,310 402,266 443,222 491,189 548,166 604,143 666,132 733,132 773,132 814,137 855,147 896,156 934,171 969,190 L 969,567 669,567 C 658,567 649,573 644,584 638,595 635,613 635,637 635,650 636,661 637,670 638,679 641,686 644,692 647,697 650,701 654,704 658,707 663,708 669,708 L 1080,708 C 1087,708 1095,707 1102,704 1109,701 1116,697 1122,692 1128,687 1133,679 1136,670 1139,661 1141,650 1141,638 L 1141,145 C 1141,128 1138,113 1132,100 1126,87 1113,76 1094,67 1075,57 1050,46 1019,35 988,24 957,14 924,6 891,-2 858,-8 825,-12 792,-16 759,-18 726,-18 626,-18 537,-3 458,29 379,60 313,104 259,161 204,218 163,287 134,367 105,447 91,536 91,635 91,738 107,831 138,914 169,997 212,1068 269,1127 325,1186 393,1231 472,1264 551,1296 638,1312 734,1312 783,1312 830,1308 873,1299 916,1290 955,1280 989,1269 1022,1257 1051,1244 1074,1231 1097,1217 1112,1206 1121,1197 1130,1188 1136,1178 1139,1167 1142,1156 1144,1139 1144,1118 Z"/>
+ <glyph unicode="D" horiz-adv-x="1026" d="M 1167,666 C 1167,554 1153,456 1124,373 1095,289 1054,220 999,165 944,110 876,68 796,41 716,14 621,0 510,0 L 236,0 C 221,0 206,5 193,16 179,26 172,44 172,70 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 529,1294 C 641,1294 736,1280 813,1251 890,1222 955,1180 1008,1126 1060,1071 1100,1005 1127,928 1154,851 1167,763 1167,666 Z M 986,659 C 986,729 977,794 960,855 943,915 916,967 879,1011 842,1055 795,1089 738,1114 681,1139 608,1151 519,1151 L 344,1151 344,144 521,144 C 604,144 673,154 730,175 787,196 834,227 872,270 910,313 939,366 958,431 977,495 986,571 986,659 Z"/>
+ <glyph unicode="C" horiz-adv-x="957" d="M 1036,183 C 1036,172 1036,163 1035,155 1034,147 1033,140 1032,134 1030,128 1028,123 1025,118 1022,113 1018,108 1011,101 1004,94 990,84 969,71 948,57 921,44 890,31 858,18 822,7 781,-3 740,-12 695,-16 646,-16 562,-16 486,-2 419,26 351,54 293,95 246,150 198,205 161,272 136,353 110,433 97,525 97,630 97,737 111,833 139,917 166,1001 205,1072 255,1131 305,1189 365,1233 435,1264 504,1295 581,1310 666,1310 703,1310 740,1307 775,1300 810,1293 843,1284 873,1273 903,1262 930,1250 953,1236 976,1222 993,1211 1002,1202 1011,1193 1016,1186 1019,1181 1022,1176 1024,1171 1026,1165 1027,1158 1029,1151 1030,1142 1031,1133 1031,1123 1031,1111 1031,1098 1030,1086 1029,1077 1028,1068 1026,1060 1023,1054 1020,1047 1017,1043 1014,1040 1010,1037 1005,1035 1000,1035 991,1035 978,1042 961,1055 944,1068 923,1082 897,1098 870,1113 838,1128 801,1141 763,1154 718,1160 665,1160 608,1160 556,1149 509,1126 462,1103 421,1069 388,1024 355,979 329,925 311,861 292,796 283,723 283,640 283,558 292,486 310,423 327,360 353,307 386,265 419,222 459,190 507,169 555,147 609,136 670,136 721,136 766,142 805,155 843,168 876,182 903,198 930,213 952,227 969,240 986,253 1000,259 1010,259 1015,259 1019,258 1022,256 1025,254 1028,250 1030,245 1032,239 1034,231 1035,221 1036,211 1036,198 1036,183 Z"/>
+ <glyph unicode="8" horiz-adv-x="886" d="M 954,332 C 954,276 944,226 924,183 904,139 875,102 838,72 800,42 753,19 698,4 643,-11 579,-19 508,-19 441,-19 382,-12 329,2 276,16 232,37 195,64 158,91 130,125 111,165 92,205 82,251 82,302 82,343 89,380 102,414 115,448 135,479 160,508 185,537 215,564 252,589 289,614 330,637 376,660 336,681 301,703 270,726 239,749 213,774 192,801 171,828 155,856 144,887 133,918 127,951 127,987 127,1032 135,1075 152,1115 168,1154 193,1189 226,1218 259,1247 301,1271 352,1288 403,1305 462,1313 530,1313 595,1313 652,1305 700,1290 747,1274 787,1253 818,1226 849,1199 871,1167 886,1130 901,1093 908,1054 908,1012 908,978 903,945 892,914 881,883 864,853 843,825 822,797 796,771 765,747 734,722 698,699 658,678 705,655 748,631 785,606 822,581 853,555 878,527 903,498 922,468 935,437 948,405 954,370 954,332 Z M 738,996 C 738,1024 733,1049 724,1072 714,1095 700,1114 681,1130 662,1146 639,1158 612,1167 584,1175 552,1179 517,1179 445,1179 391,1163 354,1130 317,1097 298,1053 298,996 298,970 303,946 312,924 321,901 335,880 354,860 373,840 397,821 426,802 455,783 489,763 529,742 596,777 648,815 684,857 720,899 738,945 738,996 Z M 780,314 C 780,345 774,373 763,398 752,423 735,446 712,468 689,489 660,510 626,531 591,551 551,572 506,594 464,573 427,553 396,532 364,511 338,490 318,468 297,446 282,423 272,399 261,374 256,347 256,318 256,253 278,203 323,168 367,133 433,115 521,115 606,115 671,133 715,169 758,204 780,253 780,314 Z"/>
+ <glyph unicode="6" horiz-adv-x="887" d="M 957,419 C 957,362 948,308 931,255 914,202 887,155 851,115 815,74 769,42 714,18 659,-7 593,-19 518,-19 464,-19 416,-12 375,1 334,14 298,33 267,58 236,83 211,113 191,149 170,185 154,226 142,272 129,318 120,368 115,423 110,478 107,536 107,599 107,654 110,710 116,767 122,824 133,878 148,931 163,984 184,1033 211,1080 237,1126 270,1166 310,1201 349,1235 397,1262 452,1282 507,1302 572,1312 645,1312 670,1312 695,1311 720,1308 745,1305 769,1301 790,1296 811,1291 829,1285 844,1279 859,1273 868,1268 873,1265 878,1261 881,1257 884,1253 886,1248 888,1244 889,1239 890,1234 891,1228 892,1222 893,1215 893,1207 893,1198 893,1186 893,1176 893,1167 892,1158 891,1151 889,1146 886,1141 883,1137 880,1134 876,1131 871,1130 865,1130 858,1130 848,1132 835,1137 822,1142 807,1147 789,1153 771,1158 749,1163 724,1168 698,1173 668,1175 634,1175 572,1175 519,1162 474,1137 429,1112 393,1078 365,1035 336,992 315,943 302,887 288,830 280,771 278,710 295,720 315,730 337,740 358,750 382,759 408,767 433,775 460,782 489,787 518,792 548,794 581,794 651,794 710,785 758,766 806,747 845,720 875,687 904,653 925,613 938,568 951,522 957,472 957,419 Z M 783,403 C 783,442 779,477 772,509 764,540 751,567 733,589 715,611 691,628 661,640 631,652 594,658 550,658 525,658 501,656 476,652 451,647 428,641 405,634 382,626 360,617 339,607 318,596 298,585 281,573 281,487 287,415 298,357 309,299 325,253 346,218 367,183 393,158 424,143 455,128 492,120 534,120 577,120 614,128 645,144 676,160 702,182 723,209 744,236 759,266 769,300 778,333 783,368 783,403 Z"/>
+ <glyph unicode="5" horiz-adv-x="840" d="M 918,416 C 918,347 906,285 883,231 860,177 827,132 784,95 741,58 691,29 632,10 573,-9 507,-19 435,-19 395,-19 357,-16 321,-11 285,-5 253,2 225,11 197,19 174,27 156,35 138,43 127,49 122,54 117,59 113,63 111,67 109,71 107,76 106,82 104,87 103,94 102,103 101,112 101,122 101,134 101,145 102,156 103,165 104,174 105,181 108,187 111,192 114,196 118,199 121,202 125,203 130,203 137,203 147,199 161,191 175,182 194,173 218,164 241,154 271,145 306,136 341,127 382,123 430,123 475,123 516,128 553,139 590,150 623,166 650,189 677,212 698,240 713,275 728,309 736,351 736,400 736,441 730,478 717,510 704,541 684,568 657,589 630,610 595,625 554,636 513,646 463,651 406,651 365,651 330,649 301,645 272,641 244,639 219,639 200,639 187,643 179,652 171,661 167,677 167,702 L 167,1229 C 167,1251 172,1267 183,1278 193,1289 208,1294 227,1294 L 800,1294 C 805,1294 811,1293 816,1290 821,1287 825,1282 828,1276 831,1270 834,1262 836,1253 837,1244 838,1233 838,1220 838,1196 835,1177 828,1164 821,1151 812,1144 800,1144 L 317,1144 317,781 C 340,784 364,786 389,787 413,788 441,788 473,788 547,788 612,779 667,762 722,744 769,719 806,687 843,654 871,615 890,569 909,523 918,472 918,416 Z"/>
+ <glyph unicode="4" horiz-adv-x="956" d="M 979,368 C 979,346 976,329 969,316 962,303 953,297 941,297 L 795,297 795,25 C 795,20 794,15 791,12 788,8 784,5 777,2 770,-1 762,-3 751,-4 740,-5 727,-6 710,-6 694,-6 681,-5 670,-4 659,-3 651,-1 645,2 638,5 634,8 632,12 629,15 628,20 628,25 L 628,297 94,297 C 86,297 79,298 74,300 69,302 64,306 60,311 55,316 52,324 51,334 49,344 48,357 48,373 48,386 48,397 49,407 50,417 51,426 53,435 55,443 58,451 61,459 64,466 68,474 73,483 L 539,1269 C 542,1274 547,1279 554,1283 560,1287 568,1290 578,1293 588,1296 600,1298 615,1299 630,1300 647,1300 667,1300 689,1300 708,1299 725,1298 741,1296 754,1294 764,1291 774,1288 782,1285 787,1281 792,1276 795,1271 795,1265 L 795,439 941,439 C 952,439 962,433 969,422 976,410 979,392 979,368 Z M 628,1149 L 626,1149 205,439 628,439 Z"/>
+ <glyph unicode="3" horiz-adv-x="840" d="M 914,370 C 914,311 904,257 883,210 862,162 833,121 794,87 755,53 708,27 651,9 594,-10 530,-19 459,-19 416,-19 375,-16 338,-9 300,-2 266,7 237,17 208,26 183,36 164,47 145,57 133,64 128,69 123,74 119,78 116,83 113,88 111,93 109,100 107,107 106,115 105,125 104,134 103,146 103,160 103,184 105,201 110,210 115,219 121,224 130,224 136,224 148,219 166,208 183,197 206,186 234,174 261,161 294,150 331,139 368,128 409,123 454,123 498,123 537,129 570,140 603,151 631,167 654,188 677,209 694,233 705,262 716,290 722,321 722,354 722,391 715,424 701,453 686,482 665,508 638,529 610,550 576,567 536,578 495,589 449,595 398,595 L 275,595 C 270,595 265,596 260,599 255,601 250,605 247,610 243,615 240,622 238,631 235,640 234,651 234,665 234,678 235,688 237,697 239,705 242,712 246,717 249,722 253,725 258,728 263,730 268,731 274,731 L 387,731 C 431,731 471,737 506,748 541,759 570,776 595,797 619,818 638,844 651,874 664,903 670,936 670,973 670,1000 666,1025 657,1050 648,1074 635,1095 618,1113 601,1131 579,1145 552,1156 525,1166 493,1171 458,1171 419,1171 384,1165 352,1154 319,1142 290,1129 265,1116 240,1103 219,1090 202,1079 185,1067 174,1061 167,1061 162,1061 158,1062 155,1064 151,1065 148,1069 146,1074 143,1079 142,1086 141,1095 140,1104 139,1115 139,1130 139,1140 139,1149 140,1157 141,1164 142,1171 144,1177 146,1182 148,1187 151,1192 154,1197 158,1202 165,1209 171,1215 184,1224 203,1236 222,1248 246,1260 275,1272 303,1283 336,1293 373,1301 410,1309 449,1313 492,1313 552,1313 605,1305 650,1290 695,1275 733,1253 764,1225 794,1197 817,1164 832,1125 847,1086 854,1042 854,995 854,954 849,917 838,882 827,847 812,816 791,789 770,762 745,739 715,720 685,701 650,687 611,680 L 611,678 C 656,673 697,662 734,645 771,627 802,605 829,578 856,551 877,520 892,485 907,449 914,411 914,370 Z"/>
+ <glyph unicode="2" horiz-adv-x="840" d="M 924,74 C 924,62 923,51 922,42 920,33 918,25 915,19 912,12 908,8 903,5 898,2 892,0 886,0 L 171,0 C 162,0 154,1 147,4 140,6 134,10 129,15 124,20 120,28 118,38 115,48 114,60 114,75 114,88 115,100 116,110 117,120 119,129 122,137 125,144 130,152 135,160 140,167 146,175 154,184 L 405,450 C 463,511 510,566 545,615 580,664 607,708 626,748 645,788 657,824 663,857 669,890 672,920 672,949 672,978 667,1005 658,1031 649,1056 635,1079 618,1098 600,1117 578,1133 551,1144 524,1155 494,1161 459,1161 418,1161 382,1155 350,1144 317,1133 289,1120 265,1107 240,1094 220,1081 204,1070 187,1059 175,1053 167,1053 162,1053 158,1054 155,1057 151,1060 148,1064 146,1070 143,1076 141,1084 140,1094 139,1104 138,1116 138,1130 138,1140 138,1149 139,1156 140,1163 141,1170 143,1175 144,1180 146,1185 149,1190 152,1195 157,1201 165,1208 173,1215 187,1224 207,1236 226,1248 251,1260 281,1272 310,1283 343,1293 379,1301 414,1309 452,1313 491,1313 554,1313 609,1304 656,1287 703,1269 742,1245 773,1214 804,1183 827,1148 842,1107 857,1066 865,1023 865,977 865,936 861,895 854,854 847,813 831,768 808,721 784,673 750,620 705,562 660,503 601,436 527,360 L 322,146 885,146 C 890,146 896,145 901,142 906,139 910,134 914,128 917,122 920,115 922,106 923,97 924,86 924,74 Z"/>
+ <glyph unicode="1" horiz-adv-x="770" d="M 927,68 C 927,55 926,45 924,36 922,27 919,20 916,15 913,10 909,6 905,4 900,1 896,0 891,0 L 215,0 C 210,0 206,1 202,4 198,6 194,10 191,15 187,20 184,27 182,36 180,45 179,55 179,68 179,80 180,90 182,99 184,108 187,115 190,121 193,126 196,131 201,134 205,137 210,138 215,138 L 485,138 485,1122 235,973 C 222,966 212,962 205,961 197,960 191,961 186,966 181,970 178,977 177,987 175,997 174,1010 174,1025 174,1036 175,1046 176,1054 177,1062 178,1069 180,1074 182,1079 185,1084 189,1088 192,1092 197,1096 203,1100 L 501,1291 C 504,1293 507,1295 511,1296 515,1297 520,1299 526,1300 532,1301 539,1302 547,1303 555,1303 565,1303 577,1303 593,1303 606,1302 617,1301 628,1300 636,1298 642,1296 648,1293 652,1290 654,1287 656,1283 657,1279 657,1275 L 657,138 891,138 C 896,138 901,137 906,134 911,131 915,126 918,121 921,115 923,108 925,99 926,90 927,80 927,68 Z"/>
+ <glyph unicode="0" horiz-adv-x="910" d="M 967,650 C 967,551 959,460 944,378 928,296 902,226 866,167 829,108 782,62 723,30 664,-3 592,-19 506,-19 425,-19 356,-5 301,25 245,54 200,96 166,153 132,209 108,278 94,361 79,443 72,537 72,644 72,743 80,833 96,916 112,998 138,1069 174,1128 210,1187 257,1232 316,1265 375,1297 447,1313 532,1313 614,1313 683,1299 739,1270 794,1241 839,1198 873,1142 907,1085 931,1016 946,934 960,851 967,757 967,650 Z M 791,638 C 791,703 789,761 784,812 779,863 773,909 764,948 755,987 743,1021 729,1050 714,1078 697,1101 677,1120 657,1138 634,1151 609,1160 583,1168 554,1172 522,1172 465,1172 419,1159 384,1132 349,1105 321,1069 301,1022 280,975 266,921 259,858 252,795 248,728 248,656 248,559 253,477 263,410 273,342 289,287 311,244 332,201 360,170 394,151 427,132 468,122 516,122 553,122 586,128 615,140 643,152 667,169 688,192 708,214 725,241 738,272 751,303 762,338 770,376 778,414 784,455 787,500 790,544 791,590 791,638 Z"/>
+ <glyph unicode="-" horiz-adv-x="513" d="M 558,505 C 558,479 555,461 549,451 543,441 534,436 523,436 L 105,436 C 93,436 84,441 78,452 72,462 69,480 69,505 69,530 72,548 78,558 84,568 93,573 105,573 L 523,573 C 528,573 533,572 538,570 542,568 546,564 549,559 552,553 554,546 556,537 557,528 558,518 558,505 Z"/>
+ <glyph unicode=")" horiz-adv-x="373" d="M 487,537 C 487,462 482,387 473,314 464,240 450,167 431,95 412,23 390,-48 363,-118 336,-187 304,-256 268,-324 266,-327 263,-330 259,-333 255,-336 250,-338 244,-340 237,-342 230,-343 221,-344 212,-345 202,-345 190,-345 173,-345 159,-344 150,-343 140,-341 133,-338 129,-335 124,-331 122,-326 123,-321 123,-315 125,-308 128,-300 189,-165 236,-28 267,114 298,255 314,397 314,540 314,683 298,825 267,966 236,1107 189,1244 126,1378 123,1384 122,1390 123,1395 124,1400 127,1405 132,1408 137,1411 145,1414 154,1416 163,1418 176,1419 191,1419 205,1419 217,1419 226,1418 235,1417 243,1415 249,1413 254,1411 258,1409 261,1407 264,1405 266,1403 267,1400 336,1263 390,1123 429,979 468,834 487,687 487,537 Z"/>
+ <glyph unicode="(" horiz-adv-x="397" d="M 495,1378 C 432,1244 385,1107 354,966 323,825 307,683 307,540 307,397 323,255 355,114 386,-27 432,-165 493,-300 496,-308 498,-315 499,-321 499,-326 497,-331 492,-335 487,-338 480,-341 471,-343 461,-344 448,-345 431,-345 419,-345 409,-345 400,-344 391,-343 384,-342 378,-340 371,-338 366,-336 362,-333 358,-330 355,-327 353,-324 317,-256 285,-187 258,-118 231,-48 208,23 189,95 170,167 156,240 147,314 138,387 133,462 133,537 133,612 138,687 149,760 159,833 174,906 193,979 212,1051 235,1122 262,1192 289,1262 320,1331 354,1400 355,1403 357,1405 360,1407 363,1409 367,1411 372,1413 377,1415 385,1417 394,1418 403,1419 415,1419 430,1419 445,1419 458,1418 467,1416 476,1414 484,1411 489,1408 494,1405 497,1400 498,1395 499,1390 498,1384 495,1378 Z"/>
+ <glyph unicode=" " horiz-adv-x="466"/>
+ </font>
+ </defs>
+ <defs class="TextShapeIndex">
+ <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150 id151 id152 id153 id154 id155 id156 id157 id158 id159 id160 id161 id162 id163 id164 id165 id166 id167 id168 id169 id170 id171 id172 id173 id174 id175 id176 id177 id178 id179 id180 id181 id182 id183 id184 id185 id186 id187 id188 id189 id190 id191 id192 id193 id194 id195 id196 id197 id198 id199 id200 id201 id202 id203 id204 id205 id206 id207 id208 id209 id210 id211 id212 id213 id214 id215 id216 id217 id218 id219 id220 id221 id222 id223 id224 id225 id226 id227 id228 id229 id230 id231 id232 id233 id234 id235 id236 id237 id238 id239 id240 id241 id242 id243 id244 id245 id246 id247 id248 id249 id250 id251 id252 id253 id254 id255 id256 id257"/>
+ </defs>
+ <defs class="EmbeddedBulletChars">
+ <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
+ </g>
+ <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
+ </g>
+ <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
+ </g>
+ <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
+ </g>
+ <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
+ </g>
+ <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
+ </g>
+ <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
+ </g>
+ <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
+ </g>
+ <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
+ </g>
+ <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
+ </g>
+ </defs>
+ <g>
+ <g id="id2" class="Master_Slide">
+ <g id="bg-id2" class="Background"/>
+ <g id="bo-id2" class="BackgroundObjects"/>
+ </g>
+ </g>
+ <g class="SlideGroup">
+ <g>
+ <g id="container-id1">
+ <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
+ <g class="Page">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id3">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1236" y="2183" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 4856,5379 L 1254,5379 1254,2201 8458,2201 8458,5379 4856,5379 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4856,5379 L 1254,5379 1254,2201 8458,2201 8458,5379 4856,5379 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="370px" font-weight="400"><tspan class="TextPosition" x="1354" y="2571"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="370px" font-weight="400"><tspan class="TextPosition" x="1354" y="3015"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.LineShape">
+ <g id="id4">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3014" y="6586" width="108" height="1971"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="miter" d="M 3067,6587 L 3068,8555"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.LineShape">
+ <g id="id5">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3619" y="6584" width="108" height="1972"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="miter" d="M 3672,6585 L 3673,8554"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.LineShape">
+ <g id="id6">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6314" y="6586" width="108" height="1971"/>
+ <path fill="none" stroke="rgb(99,160,215)" stroke-width="106" stroke-linejoin="miter" d="M 6367,6587 L 6368,8555"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.LineShape">
+ <g id="id7">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6919" y="6584" width="108" height="1971"/>
+ <path fill="none" stroke="rgb(99,160,215)" stroke-width="106" stroke-linejoin="miter" d="M 6972,6585 L 6973,8553"/>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id8">
+ <rect class="BoundingBox" stroke="none" fill="none" x="500" y="929" width="9086" height="12584"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="9" stroke-linejoin="miter" d="M 5043,13507 L 505,13507 505,934 9580,934 9580,13507 5043,13507 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id9">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1372" y="9585" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 4992,9603 L 8594,9603 8594,12781 1390,12781 1390,9603 4992,9603 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4992,9603 L 8594,9603 8594,12781 1390,12781 1390,9603 4992,9603 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id10">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7203" y="9369" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 7656,9812 L 7212,9812 7212,9378 8099,9378 8099,9812 7656,9812 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7656,9812 L 7212,9812 7212,9378 8099,9378 8099,9812 7656,9812 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7381" y="9741"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id11">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7956" y="8616" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7979,9317 L 7974,8617"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id12">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7874" y="9309" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7958,9318 L 8032,9318 8032,9417 7883,9417 7883,9318 7958,9318 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7958,9318 L 8032,9318 8032,9417 7883,9417 7883,9318 7958,9318 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id13">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7231" y="9312" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7315,9321 L 7389,9321 7389,9420 7240,9420 7240,9321 7315,9321 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7315,9321 L 7389,9321 7389,9420 7240,9420 7240,9321 7315,9321 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id14">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7295" y="8571" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7313,9320 L 7315,8572"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id15">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7719" y="8568" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7737,9315 L 7739,8569"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id16">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7654" y="9307" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7738,9316 L 7812,9316 7812,9415 7663,9415 7663,9316 7738,9316 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7738,9316 L 7812,9316 7812,9415 7663,9415 7663,9316 7738,9316 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id17">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7443" y="9309" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7527,9318 L 7601,9318 7601,9417 7452,9417 7452,9318 7527,9318 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7527,9318 L 7601,9318 7601,9417 7452,9417 7452,9318 7527,9318 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id18">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7524" y="8568" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7548,9317 L 7542,8569"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id19">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5281" y="10551" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 6699,11735 L 5299,11735 5299,10569 8099,10569 8099,11735 6699,11735 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 6699,11735 L 5299,11735 5299,10569 8099,10569 8099,11735 6699,11735 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6160" y="10873"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6050" y="11226"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5768" y="11579"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id20">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6238" y="9372" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 6691,9815 L 6247,9815 6247,9381 7134,9381 7134,9815 6691,9815 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6691,9815 L 6247,9815 6247,9381 7134,9381 7134,9815 6691,9815 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6416" y="9744"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id21">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6992" y="8573" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7015,9320 L 7010,8574"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id22">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6910" y="9312" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6994,9321 L 7068,9321 7068,9420 6919,9420 6919,9321 6994,9321 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6994,9321 L 7068,9321 7068,9420 6919,9420 6919,9321 6994,9321 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id23">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6266" y="9314" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6350,9323 L 6424,9323 6424,9422 6275,9422 6275,9323 6350,9323 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6350,9323 L 6424,9323 6424,9422 6275,9422 6275,9323 6350,9323 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id24">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6331" y="8573" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6349,9322 L 6351,8574"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id25">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6755" y="8571" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6773,9318 L 6775,8572"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id26">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6689" y="9310" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6773,9319 L 6847,9319 6847,9418 6698,9418 6698,9319 6773,9319 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6773,9319 L 6847,9319 6847,9418 6698,9418 6698,9319 6773,9319 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id27">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6478" y="9312" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6562,9321 L 6636,9321 6636,9420 6487,9420 6487,9321 6562,9321 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6562,9321 L 6636,9321 6636,9420 6487,9420 6487,9321 6562,9321 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id28">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6559" y="8571" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6583,9320 L 6577,8572"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id29">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5289" y="9374" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 5742,9817 L 5298,9817 5298,9383 6185,9383 6185,9817 5742,9817 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 5742,9817 L 5298,9817 5298,9383 6185,9383 6185,9817 5742,9817 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5467" y="9746"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id30">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6043" y="8575" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6066,9322 L 6061,8576"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id31">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5961" y="9314" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6045,9323 L 6119,9323 6119,9422 5970,9422 5970,9323 6045,9323 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6045,9323 L 6119,9323 6119,9422 5970,9422 5970,9323 6045,9323 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id32">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5317" y="9316" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5401,9325 L 5475,9325 5475,9424 5326,9424 5326,9325 5401,9325 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5401,9325 L 5475,9325 5475,9424 5326,9424 5326,9325 5401,9325 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id33">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5382" y="8623" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5400,9324 L 5402,8624"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id34">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5806" y="8573" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5824,9320 L 5826,8574"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id35">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5740" y="9312" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5824,9321 L 5898,9321 5898,9420 5749,9420 5749,9321 5824,9321 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5824,9321 L 5898,9321 5898,9420 5749,9420 5749,9321 5824,9321 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id36">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5529" y="9314" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5613,9323 L 5687,9323 5687,9422 5538,9422 5538,9323 5613,9323 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5613,9323 L 5687,9323 5687,9422 5538,9422 5538,9323 5613,9323 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id37">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5610" y="8573" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5634,9322 L 5628,8574"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id38">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7349" y="9819" width="557" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 7627,9819 L 7904,9980 7766,9980 7766,10390 7904,10390 7627,10552 7349,10390 7488,10390 7488,9980 7349,9980 7627,9819 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id39">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7388" y="10016" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 7626,10359 L 7388,10359 7388,10016 7863,10016 7863,10359 7626,10359 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7397" y="10301"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id40">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6372" y="9823" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 6650,9823 L 6927,9984 6789,9984 6789,10394 6927,10394 6650,10556 6372,10394 6511,10394 6511,9984 6372,9984 6650,9823 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id41">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6410" y="10020" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 6648,10363 L 6410,10363 6410,10020 6885,10020 6885,10363 6648,10363 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6419" y="10305"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id42">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5418" y="9832" width="558" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 5697,9832 L 5974,9993 5836,9993 5836,10403 5974,10403 5697,10565 5419,10403 5558,10403 5558,9993 5419,9993 5697,9832 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id43">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5458" y="10029" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 5696,10372 L 5458,10372 5458,10029 5933,10029 5933,10372 5696,10372 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5467" y="10314"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id44">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1962" y="10566" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 3380,11750 L 1980,11750 1980,10584 4780,10584 4780,11750 3380,11750 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3380,11750 L 1980,11750 1980,10584 4780,10584 4780,11750 3380,11750 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2841" y="10888"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2731" y="11241"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2449" y="11594"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id45">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3888" y="9375" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 4341,9818 L 3897,9818 3897,9384 4784,9384 4784,9818 4341,9818 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 4341,9818 L 3897,9818 3897,9384 4784,9384 4784,9818 4341,9818 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4066" y="9747"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id46">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4642" y="8622" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4665,9323 L 4660,8623"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id47">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4560" y="9315" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 4644,9324 L 4718,9324 4718,9423 4569,9423 4569,9324 4644,9324 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4644,9324 L 4718,9324 4718,9423 4569,9423 4569,9324 4644,9324 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id48">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3916" y="9317" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 4000,9326 L 4074,9326 4074,9425 3925,9425 3925,9326 4000,9326 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4000,9326 L 4074,9326 4074,9425 3925,9425 3925,9326 4000,9326 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id49">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3981" y="8576" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3999,9325 L 4001,8577"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id50">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4405" y="8574" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4423,9321 L 4425,8575"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id51">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4339" y="9313" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 4423,9322 L 4497,9322 4497,9421 4348,9421 4348,9322 4423,9322 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4423,9322 L 4497,9322 4497,9421 4348,9421 4348,9322 4423,9322 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id52">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4128" y="9315" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 4212,9324 L 4286,9324 4286,9423 4137,9423 4137,9324 4212,9324 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4212,9324 L 4286,9324 4286,9423 4137,9423 4137,9324 4212,9324 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id53">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4209" y="8574" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4233,9323 L 4227,8575"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id54">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2924" y="9377" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 3377,9820 L 2933,9820 2933,9386 3820,9386 3820,9820 3377,9820 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 3377,9820 L 2933,9820 2933,9386 3820,9386 3820,9820 3377,9820 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3102" y="9749"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id55">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3677" y="8578" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3700,9325 L 3695,8579"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id56">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3595" y="9317" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3679,9326 L 3753,9326 3753,9425 3604,9425 3604,9326 3679,9326 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3679,9326 L 3753,9326 3753,9425 3604,9425 3604,9326 3679,9326 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id57">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2951" y="9319" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3035,9328 L 3109,9328 3109,9427 2960,9427 2960,9328 3035,9328 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3035,9328 L 3109,9328 3109,9427 2960,9427 2960,9328 3035,9328 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id58">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3016" y="8578" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3034,9327 L 3036,8579"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id59">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3440" y="8576" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3458,9323 L 3460,8577"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id60">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3375" y="9315" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3459,9324 L 3533,9324 3533,9423 3384,9423 3384,9324 3459,9324 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3459,9324 L 3533,9324 3533,9423 3384,9423 3384,9324 3459,9324 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id61">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3164" y="9317" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3248,9326 L 3322,9326 3322,9425 3173,9425 3173,9326 3248,9326 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3248,9326 L 3322,9326 3322,9425 3173,9425 3173,9326 3248,9326 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id62">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3245" y="8576" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3269,9325 L 3263,8577"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id63">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1975" y="9379" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 2428,9822 L 1984,9822 1984,9388 2871,9388 2871,9822 2428,9822 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 2428,9822 L 1984,9822 1984,9388 2871,9388 2871,9822 2428,9822 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2153" y="9751"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id64">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2728" y="8580" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2751,9327 L 2746,8581"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id65">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2646" y="9319" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2730,9328 L 2804,9328 2804,9427 2655,9427 2655,9328 2730,9328 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2730,9328 L 2804,9328 2804,9427 2655,9427 2655,9328 2730,9328 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id66">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2003" y="9321" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2087,9330 L 2161,9330 2161,9429 2012,9429 2012,9330 2087,9330 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2087,9330 L 2161,9330 2161,9429 2012,9429 2012,9330 2087,9330 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id67">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2068" y="8628" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2086,9329 L 2088,8629"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id68">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2491" y="8578" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2509,9325 L 2511,8579"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id69">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2426" y="9317" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2510,9326 L 2584,9326 2584,9425 2435,9425 2435,9326 2510,9326 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2510,9326 L 2584,9326 2584,9425 2435,9425 2435,9326 2510,9326 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id70">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2215" y="9319" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2299,9328 L 2373,9328 2373,9427 2224,9427 2224,9328 2299,9328 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2299,9328 L 2373,9328 2373,9427 2224,9427 2224,9328 2299,9328 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id71">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2296" y="8578" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2320,9327 L 2314,8579"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id72">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4034" y="9824" width="557" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 4313,9824 L 4590,9985 4452,9985 4452,10395 4590,10395 4313,10557 4035,10395 4174,10395 4174,9985 4035,9985 4313,9824 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id73">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4073" y="10021" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 4311,10364 L 4073,10364 4073,10021 4548,10021 4548,10364 4311,10364 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4082" y="10306"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id74">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3056" y="9829" width="557" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 3335,9829 L 3612,9990 3474,9990 3474,10400 3612,10400 3335,10562 3057,10400 3196,10400 3196,9990 3057,9990 3335,9829 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id75">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3096" y="10026" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 3334,10369 L 3096,10369 3096,10026 3571,10026 3571,10369 3334,10369 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3105" y="10311"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id76">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2105" y="9837" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 2383,9837 L 2660,9998 2522,9998 2522,10408 2660,10408 2383,10570 2105,10408 2244,10408 2244,9998 2105,9998 2383,9837 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id77">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2143" y="10035" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 2381,10378 L 2143,10378 2143,10035 2618,10035 2618,10378 2381,10378 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2152" y="10320"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id78">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5367" y="8462" width="2666" height="234"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 5420,8642 L 5420,8642 C 5420,8620 5422,8598 5427,8578 5431,8559 5438,8543 5446,8532 5453,8521 5462,8515 5471,8515 L 5471,8515 7927,8515 7927,8515 C 7936,8515 7945,8521 7953,8532 7960,8543 7967,8559 7971,8579 7976,8598 7978,8620 7978,8642"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id79">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2048" y="8470" width="2666" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2101,8651 L 2101,8651 C 2101,8629 2103,8607 2108,8587 2112,8568 2119,8552 2127,8541 2134,8530 2143,8524 2152,8524 L 2152,8524 4608,8524 4608,8524 C 4617,8524 4626,8530 4634,8541 4641,8552 4648,8568 4652,8588 4657,8607 4659,8629 4659,8651"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id80">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1440" y="11762" width="1219" height="890"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="370px" font-weight="400"><tspan class="TextPosition" x="1440" y="12132"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="370px" font-weight="400"><tspan class="TextPosition" x="1440" y="12576"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id81">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2227" y="625" width="5433" height="670"/>
+ <g>
+ <defs>
+ <linearGradient id="gradient1" x1="4943" y1="634" x2="4943" y2="1285" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:rgb(209,209,209)"/>
+ <stop offset="1" style="stop-color:rgb(199,199,199)"/>
+ </linearGradient>
+ </defs>
+ <path style="fill:url(#gradient1)" d="M 4943,1285 L 2236,1285 2236,634 7650,634 7650,1285 4943,1285 Z"/>
+ </g>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 4943,1285 L 2236,1285 2236,634 7650,634 7650,1285 4943,1285 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2486" y="1075"><tspan fill="rgb(0,0,0)" stroke="none">2-Node Xeon Icelake (2n-icx)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id82">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3061" y="12763" width="4221" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="3313" y="13311"><tspan fill="rgb(32,56,100)" stroke="none">Traffic Generator (TG)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id83">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4726" y="12010" width="1147" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4976" y="12417"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id84">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1216" y="9669" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1466" y="10065"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1466" y="10412"><tspan fill="rgb(0,0,0)" stroke="none">Gen4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id85">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1946" y="5287" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 2399,5730 L 1955,5730 1955,5296 2842,5296 2842,5730 2399,5730 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 2399,5730 L 1955,5730 1955,5296 2842,5296 2842,5730 2399,5730 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2124" y="5594"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id86">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2059" y="5790" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2077,5791 L 2082,6491"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id87">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1972" y="5682" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2056,5790 L 1981,5790 1981,5691 2130,5691 2130,5790 2056,5790 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2056,5790 L 1981,5790 1981,5691 2130,5691 2130,5790 2056,5790 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id88">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2616" y="5680" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2700,5788 L 2625,5788 2625,5689 2774,5689 2774,5788 2700,5788 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2700,5788 L 2625,5788 2625,5689 2774,5689 2774,5788 2700,5788 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id89">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2680" y="5788" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2700,5789 L 2698,6537"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id90">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2256" y="5792" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2276,5793 L 2274,6539"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id91">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2192" y="5684" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2276,5792 L 2201,5792 2201,5693 2350,5693 2350,5792 2276,5792 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2276,5792 L 2201,5792 2201,5693 2350,5693 2350,5792 2276,5792 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id92">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2403" y="5682" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2487,5790 L 2412,5790 2412,5691 2561,5691 2561,5790 2487,5790 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2487,5790 L 2412,5790 2412,5691 2561,5691 2561,5790 2487,5790 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id93">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2489" y="5790" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2507,5791 L 2513,6539"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id94">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1938" y="3355" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 3356,4539 L 1956,4539 1956,3373 4756,3373 4756,4539 3356,4539 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3356,4539 L 1956,4539 1956,3373 4756,3373 4756,4539 3356,4539 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2817" y="3677"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2671" y="4030"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon </tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2425" y="4383"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id95">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2910" y="5285" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 3363,5728 L 2919,5728 2919,5294 3806,5294 3806,5728 3363,5728 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 3363,5728 L 2919,5728 2919,5294 3806,5294 3806,5728 3363,5728 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3088" y="5592"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id96">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3023" y="5788" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3041,5789 L 3046,6535"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id97">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2936" y="5680" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3020,5788 L 2945,5788 2945,5689 3094,5689 3094,5788 3020,5788 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3020,5788 L 2945,5788 2945,5689 3094,5689 3094,5788 3020,5788 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id98">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3580" y="5678" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3664,5786 L 3589,5786 3589,5687 3738,5687 3738,5786 3664,5786 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3664,5786 L 3589,5786 3589,5687 3738,5687 3738,5786 3664,5786 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id99">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3644" y="5786" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3664,5787 L 3662,6535"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id100">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3220" y="5790" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3240,5791 L 3238,6537"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id101">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3157" y="5682" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3241,5790 L 3166,5790 3166,5691 3315,5691 3315,5790 3241,5790 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3241,5790 L 3166,5790 3166,5691 3315,5691 3315,5790 3241,5790 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id102">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3368" y="5680" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3452,5788 L 3377,5788 3377,5689 3526,5689 3526,5788 3452,5788 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3452,5788 L 3377,5788 3377,5689 3526,5689 3526,5788 3452,5788 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id103">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3454" y="5788" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3472,5789 L 3478,6537"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id104">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3859" y="5283" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 4312,5726 L 3868,5726 3868,5292 4755,5292 4755,5726 4312,5726 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 4312,5726 L 3868,5726 3868,5292 4755,5292 4755,5726 4312,5726 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4037" y="5590"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id105">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3972" y="5786" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3990,5787 L 3995,6533"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id106">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3885" y="5678" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3969,5786 L 3894,5786 3894,5687 4043,5687 4043,5786 3969,5786 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3969,5786 L 3894,5786 3894,5687 4043,5687 4043,5786 3969,5786 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id107">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4529" y="5675" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 4613,5783 L 4538,5783 4538,5684 4687,5684 4687,5783 4613,5783 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4613,5783 L 4538,5783 4538,5684 4687,5684 4687,5783 4613,5783 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id108">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4593" y="5783" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4613,5784 L 4611,6484"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id109">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4169" y="5787" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4189,5788 L 4187,6534"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id110">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4106" y="5679" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 4190,5787 L 4115,5787 4115,5688 4264,5688 4264,5787 4190,5787 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4190,5787 L 4115,5787 4115,5688 4264,5688 4264,5787 4190,5787 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id111">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4317" y="5678" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 4401,5786 L 4326,5786 4326,5687 4475,5687 4475,5786 4401,5786 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4401,5786 L 4326,5786 4326,5687 4475,5687 4475,5786 4401,5786 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id112">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4403" y="5786" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4421,5787 L 4427,6535"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id113">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2152" y="4558" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 2429,5291 L 2152,5130 2290,5130 2290,4720 2152,4720 2429,4558 2707,4720 2568,4720 2568,5130 2707,5130 2429,5291 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id114">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2190" y="4748" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 2428,5091 L 2190,5091 2190,4748 2665,4748 2665,5091 2428,5091 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2199" y="5033"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id115">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3129" y="4553" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 3406,5286 L 3129,5125 3267,5125 3267,4715 3129,4715 3406,4553 3684,4715 3545,4715 3545,5125 3684,5125 3406,5286 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id116">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3168" y="4743" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 3406,5086 L 3168,5086 3168,4743 3643,4743 3643,5086 3406,5086 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3177" y="5028"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id117">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4081" y="4544" width="557" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 4359,5277 L 4082,5116 4220,5116 4220,4706 4082,4706 4359,4544 4637,4706 4498,4706 4498,5116 4637,5116 4359,5277 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id118">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4120" y="4734" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 4358,5077 L 4120,5077 4120,4734 4595,4734 4595,5077 4358,5077 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4129" y="5019"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id119">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4689" y="2556" width="1147" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4939" y="2963"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id120">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5258" y="3340" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 6676,4524 L 5276,4524 5276,3358 8076,3358 8076,4524 6676,4524 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 6676,4524 L 5276,4524 5276,3358 8076,3358 8076,4524 6676,4524 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6137" y="3662"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6027" y="4015"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5745" y="4368"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id121">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5260" y="5282" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 5713,5725 L 5269,5725 5269,5291 6156,5291 6156,5725 5713,5725 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 5713,5725 L 5269,5725 5269,5291 6156,5291 6156,5725 5713,5725 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5438" y="5589"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id122">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5373" y="5784" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5391,5785 L 5396,6485"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id123">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5286" y="5676" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5370,5784 L 5295,5784 5295,5685 5444,5685 5444,5784 5370,5784 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5370,5784 L 5295,5784 5295,5685 5444,5685 5444,5784 5370,5784 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id124">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5930" y="5674" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6014,5782 L 5939,5782 5939,5683 6088,5683 6088,5782 6014,5782 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6014,5782 L 5939,5782 5939,5683 6088,5683 6088,5782 6014,5782 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id125">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5994" y="5782" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6014,5783 L 6012,6531"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id126">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5570" y="5786" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5590,5787 L 5588,6533"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id127">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5507" y="5678" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5591,5786 L 5516,5786 5516,5687 5665,5687 5665,5786 5591,5786 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5591,5786 L 5516,5786 5516,5687 5665,5687 5665,5786 5591,5786 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id128">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5718" y="5676" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5802,5784 L 5727,5784 5727,5685 5876,5685 5876,5784 5802,5784 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5802,5784 L 5727,5784 5727,5685 5876,5685 5876,5784 5802,5784 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id129">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5804" y="5784" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5822,5785 L 5828,6533"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id130">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6225" y="5279" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 6678,5722 L 6234,5722 6234,5288 7121,5288 7121,5722 6678,5722 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6678,5722 L 6234,5722 6234,5288 7121,5288 7121,5722 6678,5722 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6403" y="5586"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id131">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6338" y="5782" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6356,5783 L 6361,6529"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id132">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6251" y="5674" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6335,5782 L 6260,5782 6260,5683 6409,5683 6409,5782 6335,5782 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6335,5782 L 6260,5782 6260,5683 6409,5683 6409,5782 6335,5782 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id133">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6895" y="5672" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6979,5780 L 6904,5780 6904,5681 7053,5681 7053,5780 6979,5780 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6979,5780 L 6904,5780 6904,5681 7053,5681 7053,5780 6979,5780 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id134">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6959" y="5780" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6979,5781 L 6977,6529"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id135">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6535" y="5784" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6555,5785 L 6553,6531"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id136">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6471" y="5676" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6555,5784 L 6480,5784 6480,5685 6629,5685 6629,5784 6555,5784 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6555,5784 L 6480,5784 6480,5685 6629,5685 6629,5784 6555,5784 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id137">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6683" y="5674" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6767,5782 L 6692,5782 6692,5683 6841,5683 6841,5782 6767,5782 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6767,5782 L 6692,5782 6692,5683 6841,5683 6841,5782 6767,5782 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id138">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6769" y="5782" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6787,5783 L 6793,6531"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id139">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7174" y="5277" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 7627,5720 L 7183,5720 7183,5286 8070,5286 8070,5720 7627,5720 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7627,5720 L 7183,5720 7183,5286 8070,5286 8070,5720 7627,5720 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7352" y="5584"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id140">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7287" y="5780" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7305,5781 L 7310,6527"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id141">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7200" y="5672" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7284,5780 L 7209,5780 7209,5681 7358,5681 7358,5780 7284,5780 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7284,5780 L 7209,5780 7209,5681 7358,5681 7358,5780 7284,5780 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id142">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7843" y="5670" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7927,5778 L 7852,5778 7852,5679 8001,5679 8001,5778 7927,5778 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7927,5778 L 7852,5778 7852,5679 8001,5679 8001,5778 7927,5778 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id143">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7908" y="5778" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7928,5779 L 7926,6479"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id144">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7484" y="5782" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7504,5783 L 7502,6529"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id145">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7420" y="5674" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7504,5782 L 7429,5782 7429,5683 7578,5683 7578,5782 7504,5782 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7504,5782 L 7429,5782 7429,5683 7578,5683 7578,5782 7504,5782 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id146">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7631" y="5672" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7715,5780 L 7640,5780 7640,5681 7789,5681 7789,5780 7715,5780 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7715,5780 L 7640,5780 7640,5681 7789,5681 7789,5780 7715,5780 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id147">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7717" y="5780" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7735,5781 L 7741,6529"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id148">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5466" y="4552" width="556" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 5743,5285 L 5466,5124 5604,5124 5604,4714 5466,4714 5743,4552 6021,4714 5882,4714 5882,5124 6021,5124 5743,5285 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id149">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5505" y="4742" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 5743,5085 L 5505,5085 5505,4742 5980,4742 5980,5085 5743,5085 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5514" y="5027"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id150">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6444" y="4548" width="556" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 6721,5281 L 6444,5120 6582,5120 6582,4710 6444,4710 6721,4548 6999,4710 6860,4710 6860,5120 6999,5120 6721,5281 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id151">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6482" y="4738" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 6720,5081 L 6482,5081 6482,4738 6957,4738 6957,5081 6720,5081 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6491" y="5023"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id152">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7395" y="4539" width="557" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 7673,5272 L 7396,5111 7534,5111 7534,4701 7396,4701 7673,4539 7951,4701 7812,4701 7812,5111 7951,5111 7673,5272 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id153">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7435" y="4729" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 7673,5072 L 7435,5072 7435,4729 7910,4729 7910,5072 7673,5072 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7444" y="5014"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id154">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4555" y="3475" width="891" height="1018"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 4555,3983 L 4814,3475 4814,3729 5185,3729 5185,3475 5445,3983 5185,4492 5185,4237 4814,4237 4814,4492 4555,3983 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id155">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2024" y="6414" width="2666" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 4636,6467 L 4636,6467 C 4636,6489 4634,6511 4629,6531 4625,6550 4618,6566 4610,6577 4603,6588 4594,6594 4585,6594 L 4585,6594 2129,6594 2129,6594 C 2120,6594 2111,6588 2103,6577 2096,6566 2089,6550 2085,6531 2080,6511 2078,6489 2078,6467"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id156">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5343" y="6406" width="2666" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7955,6459 L 7955,6459 C 7955,6481 7953,6503 7948,6523 7944,6542 7937,6558 7929,6569 7922,6580 7913,6586 7904,6586 L 7904,6586 5448,6586 5448,6586 C 5439,6586 5430,6580 5422,6569 5415,6558 5408,6542 5404,6522 5399,6503 5397,6481 5397,6459"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id157">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2512" y="1521" width="4708" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2764" y="2069"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test (SUT)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id158">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1170" y="4407" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1420" y="4803"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1420" y="5150"><tspan fill="rgb(0,0,0)" stroke="none">Gen4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id159">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4710" y="3755" width="609" height="382"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 5014,4136 L 4710,4136 4710,3755 5318,3755 5318,4136 5014,4136 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4778" y="4059"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id160">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4617" y="10685" width="892" height="1018"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 4617,11193 L 4876,10685 4876,10939 5247,10939 5247,10685 5507,11193 5247,11702 5247,11447 4876,11447 4876,11702 4617,11193 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id161">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4772" y="10965" width="609" height="382"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 5076,11346 L 4772,11346 4772,10965 5380,10965 5380,11346 5076,11346 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4840" y="11269"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id162">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7011" y="2997" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7233,3110 L 7233,3110 C 7233,3115 7232,3120 7229,3124 7227,3128 7223,3132 7219,3134 7215,3137 7210,3138 7205,3138 L 7039,3137 7039,3137 C 7034,3137 7029,3136 7025,3133 7021,3131 7017,3127 7015,3123 7012,3119 7011,3114 7011,3109 L 7011,3109 7011,3026 7011,3026 C 7011,3021 7012,3016 7015,3012 7017,3008 7021,3004 7025,3002 7029,2999 7034,2998 7039,2998 L 7206,2998 7206,2998 C 7211,2998 7216,2999 7220,3002 7224,3004 7228,3008 7230,3012 7233,3016 7234,3021 7234,3026 L 7233,3110 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id163">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7013" y="2794" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7235,2907 L 7235,2907 C 7235,2912 7234,2917 7231,2921 7229,2925 7225,2929 7221,2931 7217,2934 7212,2935 7207,2935 L 7041,2934 7041,2934 C 7036,2934 7031,2933 7027,2930 7023,2928 7019,2924 7017,2920 7014,2916 7013,2911 7013,2906 L 7013,2906 7013,2823 7013,2823 C 7013,2818 7014,2813 7017,2809 7019,2805 7023,2801 7027,2799 7031,2796 7036,2795 7041,2795 L 7208,2795 7208,2795 C 7213,2795 7218,2796 7222,2799 7226,2801 7230,2805 7232,2809 7235,2813 7236,2818 7236,2823 L 7235,2907 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id164">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7013" y="2594" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7235,2707 L 7235,2707 C 7235,2712 7234,2717 7231,2721 7229,2725 7225,2729 7221,2731 7217,2734 7212,2735 7207,2735 L 7041,2734 7041,2734 C 7036,2734 7031,2733 7027,2730 7023,2728 7019,2724 7017,2720 7014,2716 7013,2711 7013,2706 L 7013,2706 7013,2623 7013,2623 C 7013,2618 7014,2613 7017,2609 7019,2605 7023,2601 7027,2599 7031,2596 7036,2595 7041,2595 L 7208,2595 7208,2595 C 7213,2595 7218,2596 7222,2599 7226,2601 7230,2605 7232,2609 7235,2613 7236,2618 7236,2623 L 7235,2707 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id165">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7311" y="2999" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7533,3111 L 7533,3111 C 7533,3116 7532,3121 7529,3125 7527,3129 7523,3133 7519,3135 7515,3138 7510,3139 7505,3139 L 7339,3138 7339,3138 C 7334,3138 7329,3137 7325,3134 7321,3132 7317,3128 7315,3124 7312,3120 7311,3115 7311,3110 L 7311,3110 7311,3027 7311,3027 C 7311,3022 7312,3017 7315,3013 7317,3009 7321,3005 7325,3003 7329,3000 7334,2999 7339,2999 L 7506,2999 7506,2999 C 7511,2999 7516,3000 7520,3003 7524,3005 7528,3009 7530,3013 7533,3017 7534,3022 7534,3027 L 7533,3111 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id166">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7313" y="2796" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7535,2908 L 7535,2908 C 7535,2913 7534,2918 7531,2922 7529,2926 7525,2930 7521,2932 7517,2935 7512,2936 7507,2936 L 7341,2935 7341,2935 C 7336,2935 7331,2934 7327,2931 7323,2929 7319,2925 7317,2921 7314,2917 7313,2912 7313,2907 L 7313,2907 7313,2824 7313,2824 C 7313,2819 7314,2814 7317,2810 7319,2806 7323,2802 7327,2800 7331,2797 7336,2796 7341,2796 L 7508,2796 7508,2796 C 7513,2796 7518,2797 7522,2800 7526,2802 7530,2806 7532,2810 7535,2814 7536,2819 7536,2824 L 7535,2908 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id167">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7313" y="2596" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7535,2708 L 7535,2708 C 7535,2713 7534,2718 7531,2722 7529,2726 7525,2730 7521,2732 7517,2735 7512,2736 7507,2736 L 7341,2735 7341,2735 C 7336,2735 7331,2734 7327,2731 7323,2729 7319,2725 7317,2721 7314,2717 7313,2712 7313,2707 L 7313,2707 7313,2624 7313,2624 C 7313,2619 7314,2614 7317,2610 7319,2606 7323,2602 7327,2600 7331,2597 7336,2596 7341,2596 L 7508,2596 7508,2596 C 7513,2596 7518,2597 7522,2600 7526,2602 7530,2606 7532,2610 7535,2614 7536,2619 7536,2624 L 7535,2708 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id168">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7612" y="2999" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7834,3111 L 7834,3111 C 7834,3116 7833,3121 7830,3125 7828,3129 7824,3133 7820,3135 7816,3138 7811,3139 7806,3139 L 7640,3138 7640,3138 C 7635,3138 7630,3137 7626,3134 7622,3132 7618,3128 7616,3124 7613,3120 7612,3115 7612,3110 L 7612,3110 7612,3027 7612,3027 C 7612,3022 7613,3017 7616,3013 7618,3009 7622,3005 7626,3003 7630,3000 7635,2999 7640,2999 L 7807,2999 7807,2999 C 7812,2999 7817,3000 7821,3003 7825,3005 7829,3009 7831,3013 7834,3017 7835,3022 7835,3027 L 7834,3111 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id169">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7614" y="2796" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7836,2908 L 7836,2908 C 7836,2913 7835,2918 7832,2922 7830,2926 7826,2930 7822,2932 7818,2935 7813,2936 7808,2936 L 7642,2935 7642,2935 C 7637,2935 7632,2934 7628,2931 7624,2929 7620,2925 7618,2921 7615,2917 7614,2912 7614,2907 L 7614,2907 7614,2824 7614,2824 C 7614,2819 7615,2814 7618,2810 7620,2806 7624,2802 7628,2800 7632,2797 7637,2796 7642,2796 L 7809,2796 7809,2796 C 7814,2796 7819,2797 7823,2800 7827,2802 7831,2806 7833,2810 7836,2814 7837,2819 7837,2824 L 7836,2908 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id170">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7614" y="2596" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7836,2708 L 7836,2708 C 7836,2713 7835,2718 7832,2722 7830,2726 7826,2730 7822,2732 7818,2735 7813,2736 7808,2736 L 7642,2735 7642,2735 C 7637,2735 7632,2734 7628,2731 7624,2729 7620,2725 7618,2721 7615,2717 7614,2712 7614,2707 L 7614,2707 7614,2624 7614,2624 C 7614,2619 7615,2614 7618,2610 7620,2606 7624,2602 7628,2600 7632,2597 7637,2596 7642,2596 L 7809,2596 7809,2596 C 7814,2596 7819,2597 7823,2600 7827,2602 7831,2606 7833,2610 7836,2614 7837,2619 7837,2624 L 7836,2708 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id171">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7912" y="2999" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8134,3112 L 8134,3112 C 8134,3117 8133,3122 8130,3126 8128,3130 8124,3134 8120,3136 8116,3139 8111,3140 8106,3140 L 7940,3139 7940,3139 C 7935,3139 7930,3138 7926,3135 7922,3133 7918,3129 7916,3125 7913,3121 7912,3116 7912,3111 L 7912,3111 7912,3028 7912,3028 C 7912,3023 7913,3018 7916,3014 7918,3010 7922,3006 7926,3004 7930,3001 7935,3000 7940,3000 L 8107,3000 8107,3000 C 8112,3000 8117,3001 8121,3004 8125,3006 8129,3010 8131,3014 8134,3018 8135,3023 8135,3028 L 8134,3112 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id172">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7914" y="2797" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8136,2909 L 8136,2909 C 8136,2914 8135,2919 8132,2923 8130,2927 8126,2931 8122,2933 8118,2936 8113,2937 8108,2937 L 7942,2936 7942,2936 C 7937,2936 7932,2935 7928,2932 7924,2930 7920,2926 7918,2922 7915,2918 7914,2913 7914,2908 L 7914,2908 7914,2825 7914,2825 C 7914,2820 7915,2815 7918,2811 7920,2807 7924,2803 7928,2801 7932,2798 7937,2797 7942,2797 L 8109,2797 8109,2797 C 8114,2797 8119,2798 8123,2801 8127,2803 8131,2807 8133,2811 8136,2815 8137,2820 8137,2825 L 8136,2909 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id173">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7914" y="2597" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8136,2709 L 8136,2709 C 8136,2714 8135,2719 8132,2723 8130,2727 8126,2731 8122,2733 8118,2736 8113,2737 8108,2737 L 7942,2736 7942,2736 C 7937,2736 7932,2735 7928,2732 7924,2730 7920,2726 7918,2722 7915,2718 7914,2713 7914,2708 L 7914,2708 7914,2625 7914,2625 C 7914,2620 7915,2615 7918,2611 7920,2607 7924,2603 7928,2601 7932,2598 7937,2597 7942,2597 L 8109,2597 8109,2597 C 8114,2597 8119,2598 8123,2601 8127,2603 8131,2607 8133,2611 8136,2615 8137,2620 8137,2625 L 8136,2709 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id174">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5711" y="2998" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5933,3110 L 5933,3110 C 5933,3115 5932,3120 5929,3124 5927,3128 5923,3132 5919,3134 5915,3137 5910,3138 5905,3138 L 5739,3137 5739,3137 C 5734,3137 5729,3136 5725,3133 5721,3131 5717,3127 5715,3123 5712,3119 5711,3114 5711,3109 L 5711,3109 5711,3026 5711,3026 C 5711,3021 5712,3016 5715,3012 5717,3008 5721,3004 5725,3002 5729,2999 5734,2998 5739,2998 L 5906,2998 5906,2998 C 5911,2998 5916,2999 5920,3002 5924,3004 5928,3008 5930,3012 5933,3016 5934,3021 5934,3026 L 5933,3110 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id175">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5713" y="2795" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5935,2907 L 5935,2907 C 5935,2912 5934,2917 5931,2921 5929,2925 5925,2929 5921,2931 5917,2934 5912,2935 5907,2935 L 5741,2934 5741,2934 C 5736,2934 5731,2933 5727,2930 5723,2928 5719,2924 5717,2920 5714,2916 5713,2911 5713,2906 L 5713,2906 5713,2823 5713,2823 C 5713,2818 5714,2813 5717,2809 5719,2805 5723,2801 5727,2799 5731,2796 5736,2795 5741,2795 L 5908,2795 5908,2795 C 5913,2795 5918,2796 5922,2799 5926,2801 5930,2805 5932,2809 5935,2813 5936,2818 5936,2823 L 5935,2907 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id176">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5713" y="2595" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5935,2707 L 5935,2707 C 5935,2712 5934,2717 5931,2721 5929,2725 5925,2729 5921,2731 5917,2734 5912,2735 5907,2735 L 5741,2734 5741,2734 C 5736,2734 5731,2733 5727,2730 5723,2728 5719,2724 5717,2720 5714,2716 5713,2711 5713,2706 L 5713,2706 5713,2623 5713,2623 C 5713,2618 5714,2613 5717,2609 5719,2605 5723,2601 5727,2599 5731,2596 5736,2595 5741,2595 L 5908,2595 5908,2595 C 5913,2595 5918,2596 5922,2599 5926,2601 5930,2605 5932,2609 5935,2613 5936,2618 5936,2623 L 5935,2707 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id177">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6011" y="2999" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6233,3111 L 6233,3111 C 6233,3116 6232,3121 6229,3125 6227,3129 6223,3133 6219,3135 6215,3138 6210,3139 6205,3139 L 6039,3138 6039,3138 C 6034,3138 6029,3137 6025,3134 6021,3132 6017,3128 6015,3124 6012,3120 6011,3115 6011,3110 L 6011,3110 6011,3027 6011,3027 C 6011,3022 6012,3017 6015,3013 6017,3009 6021,3005 6025,3003 6029,3000 6034,2999 6039,2999 L 6206,2999 6206,2999 C 6211,2999 6216,3000 6220,3003 6224,3005 6228,3009 6230,3013 6233,3017 6234,3022 6234,3027 L 6233,3111 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id178">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6013" y="2796" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6235,2908 L 6235,2908 C 6235,2913 6234,2918 6231,2922 6229,2926 6225,2930 6221,2932 6217,2935 6212,2936 6207,2936 L 6041,2935 6041,2935 C 6036,2935 6031,2934 6027,2931 6023,2929 6019,2925 6017,2921 6014,2917 6013,2912 6013,2907 L 6013,2907 6013,2824 6013,2824 C 6013,2819 6014,2814 6017,2810 6019,2806 6023,2802 6027,2800 6031,2797 6036,2796 6041,2796 L 6208,2796 6208,2796 C 6213,2796 6218,2797 6222,2800 6226,2802 6230,2806 6232,2810 6235,2814 6236,2819 6236,2824 L 6235,2908 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id179">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6013" y="2596" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6235,2708 L 6235,2708 C 6235,2713 6234,2718 6231,2722 6229,2726 6225,2730 6221,2732 6217,2735 6212,2736 6207,2736 L 6041,2735 6041,2735 C 6036,2735 6031,2734 6027,2731 6023,2729 6019,2725 6017,2721 6014,2717 6013,2712 6013,2707 L 6013,2707 6013,2624 6013,2624 C 6013,2619 6014,2614 6017,2610 6019,2606 6023,2602 6027,2600 6031,2597 6036,2596 6041,2596 L 6208,2596 6208,2596 C 6213,2596 6218,2597 6222,2600 6226,2602 6230,2606 6232,2610 6235,2614 6236,2619 6236,2624 L 6235,2708 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id180">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6312" y="2999" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6534,3111 L 6534,3111 C 6534,3116 6533,3121 6530,3125 6528,3129 6524,3133 6520,3135 6516,3138 6511,3139 6506,3139 L 6340,3138 6340,3138 C 6335,3138 6330,3137 6326,3134 6322,3132 6318,3128 6316,3124 6313,3120 6312,3115 6312,3110 L 6312,3110 6312,3027 6312,3027 C 6312,3022 6313,3017 6316,3013 6318,3009 6322,3005 6326,3003 6330,3000 6335,2999 6340,2999 L 6507,2999 6507,2999 C 6512,2999 6517,3000 6521,3003 6525,3005 6529,3009 6531,3013 6534,3017 6535,3022 6535,3027 L 6534,3111 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id181">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6314" y="2796" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6536,2908 L 6536,2908 C 6536,2913 6535,2918 6532,2922 6530,2926 6526,2930 6522,2932 6518,2935 6513,2936 6508,2936 L 6342,2935 6342,2935 C 6337,2935 6332,2934 6328,2931 6324,2929 6320,2925 6318,2921 6315,2917 6314,2912 6314,2907 L 6314,2907 6314,2824 6314,2824 C 6314,2819 6315,2814 6318,2810 6320,2806 6324,2802 6328,2800 6332,2797 6337,2796 6342,2796 L 6509,2796 6509,2796 C 6514,2796 6519,2797 6523,2800 6527,2802 6531,2806 6533,2810 6536,2814 6537,2819 6537,2824 L 6536,2908 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id182">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6314" y="2595" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6536,2708 L 6536,2708 C 6536,2713 6535,2718 6532,2722 6530,2726 6526,2730 6522,2732 6518,2735 6513,2736 6508,2736 L 6342,2735 6342,2735 C 6337,2735 6332,2734 6328,2731 6324,2729 6320,2725 6318,2721 6315,2717 6314,2712 6314,2707 L 6314,2707 6314,2624 6314,2624 C 6314,2619 6315,2614 6318,2610 6320,2606 6324,2602 6328,2600 6332,2597 6337,2596 6342,2596 L 6509,2596 6509,2596 C 6514,2596 6519,2597 6523,2600 6527,2602 6531,2606 6533,2610 6536,2614 6537,2619 6537,2624 L 6536,2708 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id183">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6612" y="3000" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6834,3112 L 6834,3112 C 6834,3117 6833,3122 6830,3126 6828,3130 6824,3134 6820,3136 6816,3139 6811,3140 6806,3140 L 6640,3139 6640,3139 C 6635,3139 6630,3138 6626,3135 6622,3133 6618,3129 6616,3125 6613,3121 6612,3116 6612,3111 L 6612,3111 6612,3028 6612,3028 C 6612,3023 6613,3018 6616,3014 6618,3010 6622,3006 6626,3004 6630,3001 6635,3000 6640,3000 L 6807,3000 6807,3000 C 6812,3000 6817,3001 6821,3004 6825,3006 6829,3010 6831,3014 6834,3018 6835,3023 6835,3028 L 6834,3112 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id184">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6614" y="2797" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6836,2909 L 6836,2909 C 6836,2914 6835,2919 6832,2923 6830,2927 6826,2931 6822,2933 6818,2936 6813,2937 6808,2937 L 6642,2936 6642,2936 C 6637,2936 6632,2935 6628,2932 6624,2930 6620,2926 6618,2922 6615,2918 6614,2913 6614,2908 L 6614,2908 6614,2825 6614,2825 C 6614,2820 6615,2815 6618,2811 6620,2807 6624,2803 6628,2801 6632,2798 6637,2797 6642,2797 L 6809,2797 6809,2797 C 6814,2797 6819,2798 6823,2801 6827,2803 6831,2807 6833,2811 6836,2815 6837,2820 6837,2825 L 6836,2909 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id185">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6614" y="2597" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6836,2709 L 6836,2709 C 6836,2714 6835,2719 6832,2723 6830,2727 6826,2731 6822,2733 6818,2736 6813,2737 6808,2737 L 6642,2736 6642,2736 C 6637,2736 6632,2735 6628,2732 6624,2730 6620,2726 6618,2722 6615,2718 6614,2713 6614,2708 L 6614,2708 6614,2625 6614,2625 C 6614,2620 6615,2615 6618,2611 6620,2607 6624,2603 6628,2601 6632,2598 6637,2597 6642,2597 L 6809,2597 6809,2597 C 6814,2597 6819,2598 6823,2601 6827,2603 6831,2607 6833,2611 6836,2615 6837,2620 6837,2625 L 6836,2709 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id186">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3711" y="2997" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3933,3110 L 3933,3110 C 3933,3115 3932,3120 3929,3124 3927,3128 3923,3132 3919,3134 3915,3137 3910,3138 3905,3138 L 3739,3137 3739,3137 C 3734,3137 3729,3136 3725,3133 3721,3131 3717,3127 3715,3123 3712,3119 3711,3114 3711,3109 L 3711,3109 3711,3026 3711,3026 C 3711,3021 3712,3016 3715,3012 3717,3008 3721,3004 3725,3002 3729,2999 3734,2998 3739,2998 L 3906,2998 3906,2998 C 3911,2998 3916,2999 3920,3002 3924,3004 3928,3008 3930,3012 3933,3016 3934,3021 3934,3026 L 3933,3110 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id187">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3713" y="2794" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3935,2907 L 3935,2907 C 3935,2912 3934,2917 3931,2921 3929,2925 3925,2929 3921,2931 3917,2934 3912,2935 3907,2935 L 3741,2934 3741,2934 C 3736,2934 3731,2933 3727,2930 3723,2928 3719,2924 3717,2920 3714,2916 3713,2911 3713,2906 L 3713,2906 3713,2823 3713,2823 C 3713,2818 3714,2813 3717,2809 3719,2805 3723,2801 3727,2799 3731,2796 3736,2795 3741,2795 L 3908,2795 3908,2795 C 3913,2795 3918,2796 3922,2799 3926,2801 3930,2805 3932,2809 3935,2813 3936,2818 3936,2823 L 3935,2907 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id188">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3712" y="2594" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3935,2707 L 3935,2707 C 3935,2712 3934,2717 3931,2721 3929,2725 3925,2729 3921,2731 3917,2734 3912,2735 3907,2735 L 3741,2734 3741,2734 C 3736,2734 3731,2733 3727,2730 3723,2728 3719,2724 3717,2720 3714,2716 3713,2711 3713,2706 L 3713,2706 3713,2623 3713,2623 C 3713,2618 3714,2613 3717,2609 3719,2605 3723,2601 3727,2599 3731,2596 3736,2595 3741,2595 L 3908,2595 3908,2595 C 3913,2595 3918,2596 3922,2599 3926,2601 3930,2605 3932,2609 3935,2613 3936,2618 3936,2623 L 3935,2707 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id189">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4011" y="2999" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4233,3111 L 4233,3111 C 4233,3116 4232,3121 4229,3125 4227,3129 4223,3133 4219,3135 4215,3138 4210,3139 4205,3139 L 4039,3138 4039,3138 C 4034,3138 4029,3137 4025,3134 4021,3132 4017,3128 4015,3124 4012,3120 4011,3115 4011,3110 L 4011,3110 4011,3027 4011,3027 C 4011,3022 4012,3017 4015,3013 4017,3009 4021,3005 4025,3003 4029,3000 4034,2999 4039,2999 L 4206,2999 4206,2999 C 4211,2999 4216,3000 4220,3003 4224,3005 4228,3009 4230,3013 4233,3017 4234,3022 4234,3027 L 4233,3111 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id190">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4013" y="2796" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4235,2908 L 4235,2908 C 4235,2913 4234,2918 4231,2922 4229,2926 4225,2930 4221,2932 4217,2935 4212,2936 4207,2936 L 4041,2935 4041,2935 C 4036,2935 4031,2934 4027,2931 4023,2929 4019,2925 4017,2921 4014,2917 4013,2912 4013,2907 L 4013,2907 4013,2824 4013,2824 C 4013,2819 4014,2814 4017,2810 4019,2806 4023,2802 4027,2800 4031,2797 4036,2796 4041,2796 L 4208,2796 4208,2796 C 4213,2796 4218,2797 4222,2800 4226,2802 4230,2806 4232,2810 4235,2814 4236,2819 4236,2824 L 4235,2908 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id191">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4013" y="2596" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4235,2708 L 4235,2708 C 4235,2713 4234,2718 4231,2722 4229,2726 4225,2730 4221,2732 4217,2735 4212,2736 4207,2736 L 4041,2735 4041,2735 C 4036,2735 4031,2734 4027,2731 4023,2729 4019,2725 4017,2721 4014,2717 4013,2712 4013,2707 L 4013,2707 4013,2624 4013,2624 C 4013,2619 4014,2614 4017,2610 4019,2606 4023,2602 4027,2600 4031,2597 4036,2596 4041,2596 L 4208,2596 4208,2596 C 4213,2596 4218,2597 4222,2600 4226,2602 4230,2606 4232,2610 4235,2614 4236,2619 4236,2624 L 4235,2708 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id192">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4312" y="2999" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4534,3111 L 4534,3111 C 4534,3116 4533,3121 4530,3125 4528,3129 4524,3133 4520,3135 4516,3138 4511,3139 4506,3139 L 4340,3138 4340,3138 C 4335,3138 4330,3137 4326,3134 4322,3132 4318,3128 4316,3124 4313,3120 4312,3115 4312,3110 L 4312,3110 4312,3027 4312,3027 C 4312,3022 4313,3017 4316,3013 4318,3009 4322,3005 4326,3003 4330,3000 4335,2999 4340,2999 L 4507,2999 4507,2999 C 4512,2999 4517,3000 4521,3003 4525,3005 4529,3009 4531,3013 4534,3017 4535,3022 4535,3027 L 4534,3111 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id193">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4314" y="2796" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4536,2908 L 4536,2908 C 4536,2913 4535,2918 4532,2922 4530,2926 4526,2930 4522,2932 4518,2935 4513,2936 4508,2936 L 4342,2935 4342,2935 C 4337,2935 4332,2934 4328,2931 4324,2929 4320,2925 4318,2921 4315,2917 4314,2912 4314,2907 L 4314,2907 4314,2824 4314,2824 C 4314,2819 4315,2814 4318,2810 4320,2806 4324,2802 4328,2800 4332,2797 4337,2796 4342,2796 L 4509,2796 4509,2796 C 4514,2796 4519,2797 4523,2800 4527,2802 4531,2806 4533,2810 4536,2814 4537,2819 4537,2824 L 4536,2908 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id194">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4314" y="2596" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4536,2708 L 4536,2708 C 4536,2713 4535,2718 4532,2722 4530,2726 4526,2730 4522,2732 4518,2735 4513,2736 4508,2736 L 4342,2735 4342,2735 C 4337,2735 4332,2734 4328,2731 4324,2729 4320,2725 4318,2721 4315,2717 4314,2712 4314,2707 L 4314,2707 4314,2624 4314,2624 C 4314,2619 4315,2614 4318,2610 4320,2606 4324,2602 4328,2600 4332,2597 4337,2596 4342,2596 L 4509,2596 4509,2596 C 4514,2596 4519,2597 4523,2600 4527,2602 4531,2606 4533,2610 4536,2614 4537,2619 4537,2624 L 4536,2708 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id195">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4612" y="2999" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4834,3112 L 4834,3112 C 4834,3117 4833,3122 4830,3126 4828,3130 4824,3134 4820,3136 4816,3139 4811,3140 4806,3140 L 4640,3139 4640,3139 C 4635,3139 4630,3138 4626,3135 4622,3133 4618,3129 4616,3125 4613,3121 4612,3116 4612,3111 L 4612,3111 4612,3028 4612,3028 C 4612,3023 4613,3018 4616,3014 4618,3010 4622,3006 4626,3004 4630,3001 4635,3000 4640,3000 L 4807,3000 4807,3000 C 4812,3000 4817,3001 4821,3004 4825,3006 4829,3010 4831,3014 4834,3018 4835,3023 4835,3028 L 4834,3112 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id196">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4614" y="2796" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4836,2909 L 4836,2909 C 4836,2914 4835,2919 4832,2923 4830,2927 4826,2931 4822,2933 4818,2936 4813,2937 4808,2937 L 4642,2936 4642,2936 C 4637,2936 4632,2935 4628,2932 4624,2930 4620,2926 4618,2922 4615,2918 4614,2913 4614,2908 L 4614,2908 4614,2825 4614,2825 C 4614,2820 4615,2815 4618,2811 4620,2807 4624,2803 4628,2801 4632,2798 4637,2797 4642,2797 L 4809,2797 4809,2797 C 4814,2797 4819,2798 4823,2801 4827,2803 4831,2807 4833,2811 4836,2815 4837,2820 4837,2825 L 4836,2909 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id197">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4614" y="2597" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4836,2709 L 4836,2709 C 4836,2714 4835,2719 4832,2723 4830,2727 4826,2731 4822,2733 4818,2736 4813,2737 4808,2737 L 4642,2736 4642,2736 C 4637,2736 4632,2735 4628,2732 4624,2730 4620,2726 4618,2722 4615,2718 4614,2713 4614,2708 L 4614,2708 4614,2625 4614,2625 C 4614,2620 4615,2615 4618,2611 4620,2607 4624,2603 4628,2601 4632,2598 4637,2597 4642,2597 L 4809,2597 4809,2597 C 4814,2597 4819,2598 4823,2601 4827,2603 4831,2607 4833,2611 4836,2615 4837,2620 4837,2625 L 4836,2709 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id198">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2411" y="2999" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2633,3111 L 2633,3111 C 2633,3116 2632,3121 2629,3125 2627,3129 2623,3133 2619,3135 2615,3138 2610,3139 2605,3139 L 2439,3138 2439,3138 C 2434,3138 2429,3137 2425,3134 2421,3132 2417,3128 2415,3124 2412,3120 2411,3115 2411,3110 L 2411,3110 2411,3027 2411,3027 C 2411,3022 2412,3017 2415,3013 2417,3009 2421,3005 2425,3003 2429,3000 2434,2999 2439,2999 L 2606,2999 2606,2999 C 2611,2999 2616,3000 2620,3003 2624,3005 2628,3009 2630,3013 2633,3017 2634,3022 2634,3027 L 2633,3111 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id199">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2412" y="2796" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2635,2908 L 2635,2908 C 2635,2913 2634,2918 2631,2922 2629,2926 2625,2930 2621,2932 2617,2935 2612,2936 2607,2936 L 2441,2935 2441,2935 C 2436,2935 2431,2934 2427,2931 2423,2929 2419,2925 2417,2921 2414,2917 2413,2912 2413,2907 L 2413,2907 2413,2824 2413,2824 C 2413,2819 2414,2814 2417,2810 2419,2806 2423,2802 2427,2800 2431,2797 2436,2796 2441,2796 L 2608,2796 2608,2796 C 2613,2796 2618,2797 2622,2800 2626,2802 2630,2806 2632,2810 2635,2814 2636,2819 2636,2824 L 2635,2908 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id200">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2412" y="2596" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2635,2708 L 2635,2708 C 2635,2713 2634,2718 2631,2722 2629,2726 2625,2730 2621,2732 2617,2735 2612,2736 2607,2736 L 2441,2735 2441,2735 C 2436,2735 2431,2734 2427,2731 2423,2729 2419,2725 2417,2721 2414,2717 2413,2712 2413,2707 L 2413,2707 2413,2624 2413,2624 C 2413,2619 2414,2614 2417,2610 2419,2606 2423,2602 2427,2600 2431,2597 2436,2596 2441,2596 L 2608,2596 2608,2596 C 2613,2596 2618,2597 2622,2600 2626,2602 2630,2606 2632,2610 2635,2614 2636,2619 2636,2624 L 2635,2708 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id201">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2711" y="3000" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2933,3112 L 2933,3112 C 2933,3117 2932,3122 2929,3126 2927,3130 2923,3134 2919,3136 2915,3139 2910,3140 2905,3140 L 2739,3139 2739,3139 C 2734,3139 2729,3138 2725,3135 2721,3133 2717,3129 2715,3125 2712,3121 2711,3116 2711,3111 L 2711,3111 2711,3028 2711,3028 C 2711,3023 2712,3018 2715,3014 2717,3010 2721,3006 2725,3004 2729,3001 2734,3000 2739,3000 L 2906,3000 2906,3000 C 2911,3000 2916,3001 2920,3004 2924,3006 2928,3010 2930,3014 2933,3018 2934,3023 2934,3028 L 2933,3112 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id202">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2713" y="2797" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2935,2909 L 2935,2909 C 2935,2914 2934,2919 2931,2923 2929,2927 2925,2931 2921,2933 2917,2936 2912,2937 2907,2937 L 2741,2936 2741,2936 C 2736,2936 2731,2935 2727,2932 2723,2930 2719,2926 2717,2922 2714,2918 2713,2913 2713,2908 L 2713,2908 2713,2825 2713,2825 C 2713,2820 2714,2815 2717,2811 2719,2807 2723,2803 2727,2801 2731,2798 2736,2797 2741,2797 L 2908,2797 2908,2797 C 2913,2797 2918,2798 2922,2801 2926,2803 2930,2807 2932,2811 2935,2815 2936,2820 2936,2825 L 2935,2909 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id203">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2712" y="2597" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2935,2709 L 2935,2709 C 2935,2714 2934,2719 2931,2723 2929,2727 2925,2731 2921,2733 2917,2736 2912,2737 2907,2737 L 2741,2736 2741,2736 C 2736,2736 2731,2735 2727,2732 2723,2730 2719,2726 2717,2722 2714,2718 2713,2713 2713,2708 L 2713,2708 2713,2625 2713,2625 C 2713,2620 2714,2615 2717,2611 2719,2607 2723,2603 2727,2601 2731,2598 2736,2597 2741,2597 L 2908,2597 2908,2597 C 2913,2597 2918,2598 2922,2601 2926,2603 2930,2607 2932,2611 2935,2615 2936,2620 2936,2625 L 2935,2709 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id204">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3012" y="2999" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3234,3112 L 3234,3112 C 3234,3117 3233,3122 3230,3126 3228,3130 3224,3134 3220,3136 3216,3139 3211,3140 3206,3140 L 3040,3139 3040,3139 C 3035,3139 3030,3138 3026,3135 3022,3133 3018,3129 3016,3125 3013,3121 3012,3116 3012,3111 L 3012,3111 3012,3028 3012,3028 C 3012,3023 3013,3018 3016,3014 3018,3010 3022,3006 3026,3004 3030,3001 3035,3000 3040,3000 L 3207,3000 3207,3000 C 3212,3000 3217,3001 3221,3004 3225,3006 3229,3010 3231,3014 3234,3018 3235,3023 3235,3028 L 3234,3112 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id205">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3013" y="2796" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3236,2909 L 3236,2909 C 3236,2914 3235,2919 3232,2923 3230,2927 3226,2931 3222,2933 3218,2936 3213,2937 3208,2937 L 3042,2936 3042,2936 C 3037,2936 3032,2935 3028,2932 3024,2930 3020,2926 3018,2922 3015,2918 3014,2913 3014,2908 L 3014,2908 3014,2825 3014,2825 C 3014,2820 3015,2815 3018,2811 3020,2807 3024,2803 3028,2801 3032,2798 3037,2797 3042,2797 L 3209,2797 3209,2797 C 3214,2797 3219,2798 3223,2801 3227,2803 3231,2807 3233,2811 3236,2815 3237,2820 3237,2825 L 3236,2909 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id206">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3013" y="2597" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3236,2709 L 3236,2709 C 3236,2714 3235,2719 3232,2723 3230,2727 3226,2731 3222,2733 3218,2736 3213,2737 3208,2737 L 3042,2736 3042,2736 C 3037,2736 3032,2735 3028,2732 3024,2730 3020,2726 3018,2722 3015,2718 3014,2713 3014,2708 L 3014,2708 3014,2625 3014,2625 C 3014,2620 3015,2615 3018,2611 3020,2607 3024,2603 3028,2601 3032,2598 3037,2597 3042,2597 L 3209,2597 3209,2597 C 3214,2597 3219,2598 3223,2601 3227,2603 3231,2607 3233,2611 3236,2615 3237,2620 3237,2625 L 3236,2709 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id207">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3312" y="3001" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3534,3113 L 3534,3113 C 3534,3118 3533,3123 3530,3127 3528,3131 3524,3135 3520,3137 3516,3140 3511,3141 3506,3141 L 3340,3140 3340,3140 C 3335,3140 3330,3139 3326,3136 3322,3134 3318,3130 3316,3126 3313,3122 3312,3117 3312,3112 L 3312,3112 3312,3029 3312,3029 C 3312,3024 3313,3019 3316,3015 3318,3011 3322,3007 3326,3005 3330,3002 3335,3001 3340,3001 L 3507,3001 3507,3001 C 3512,3001 3517,3002 3521,3005 3525,3007 3529,3011 3531,3015 3534,3019 3535,3024 3535,3029 L 3534,3113 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id208">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3313" y="2798" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3536,2910 L 3536,2910 C 3536,2915 3535,2920 3532,2924 3530,2928 3526,2932 3522,2934 3518,2937 3513,2938 3508,2938 L 3342,2937 3342,2937 C 3337,2937 3332,2936 3328,2933 3324,2931 3320,2927 3318,2923 3315,2919 3314,2914 3314,2909 L 3314,2909 3314,2826 3314,2826 C 3314,2821 3315,2816 3318,2812 3320,2808 3324,2804 3328,2802 3332,2799 3337,2798 3342,2798 L 3509,2798 3509,2798 C 3514,2798 3519,2799 3523,2802 3527,2804 3531,2808 3533,2812 3536,2816 3537,2821 3537,2826 L 3536,2910 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id209">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3313" y="2598" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3536,2710 L 3536,2710 C 3536,2715 3535,2720 3532,2724 3530,2728 3526,2732 3522,2734 3518,2737 3513,2738 3508,2738 L 3342,2737 3342,2737 C 3337,2737 3332,2736 3328,2733 3324,2731 3320,2727 3318,2723 3315,2719 3314,2714 3314,2709 L 3314,2709 3314,2626 3314,2626 C 3314,2621 3315,2616 3318,2612 3320,2608 3324,2604 3328,2602 3332,2599 3337,2598 3342,2598 L 3509,2598 3509,2598 C 3514,2598 3519,2599 3523,2602 3527,2604 3531,2608 3533,2612 3536,2616 3537,2621 3537,2626 L 3536,2710 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id210">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7011" y="12398" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7233,12510 L 7233,12510 C 7233,12515 7232,12520 7229,12524 7227,12528 7223,12532 7219,12534 7215,12537 7210,12538 7205,12538 L 7039,12537 7039,12537 C 7034,12537 7029,12536 7025,12533 7021,12531 7017,12527 7015,12523 7012,12519 7011,12514 7011,12509 L 7011,12509 7011,12426 7011,12426 C 7011,12421 7012,12416 7015,12412 7017,12408 7021,12404 7025,12402 7029,12399 7034,12398 7039,12398 L 7206,12398 7206,12398 C 7211,12398 7216,12399 7220,12402 7224,12404 7228,12408 7230,12412 7233,12416 7234,12421 7234,12426 L 7233,12510 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id211">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7013" y="12195" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7235,12307 L 7235,12307 C 7235,12312 7234,12317 7231,12321 7229,12325 7225,12329 7221,12331 7217,12334 7212,12335 7207,12335 L 7041,12334 7041,12334 C 7036,12334 7031,12333 7027,12330 7023,12328 7019,12324 7017,12320 7014,12316 7013,12311 7013,12306 L 7013,12306 7013,12223 7013,12223 C 7013,12218 7014,12213 7017,12209 7019,12205 7023,12201 7027,12199 7031,12196 7036,12195 7041,12195 L 7208,12195 7208,12195 C 7213,12195 7218,12196 7222,12199 7226,12201 7230,12205 7232,12209 7235,12213 7236,12218 7236,12223 L 7235,12307 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id212">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7012" y="11995" width="226" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7235,12107 L 7235,12107 C 7235,12112 7234,12117 7231,12121 7229,12125 7225,12129 7221,12131 7217,12134 7212,12135 7207,12135 L 7041,12134 7041,12134 C 7036,12134 7031,12133 7027,12130 7023,12128 7019,12124 7017,12120 7014,12116 7013,12111 7013,12106 L 7013,12106 7013,12023 7013,12023 C 7013,12018 7014,12013 7017,12009 7019,12005 7023,12001 7027,11999 7031,11996 7036,11995 7041,11995 L 7208,11995 7208,11995 C 7213,11995 7218,11996 7222,11999 7226,12001 7230,12005 7232,12009 7235,12013 7236,12018 7236,12023 L 7235,12107 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id213">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7311" y="12399" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7533,12511 L 7533,12511 C 7533,12516 7532,12521 7529,12525 7527,12529 7523,12533 7519,12535 7515,12538 7510,12539 7505,12539 L 7339,12538 7339,12538 C 7334,12538 7329,12537 7325,12534 7321,12532 7317,12528 7315,12524 7312,12520 7311,12515 7311,12510 L 7311,12510 7311,12427 7311,12427 C 7311,12422 7312,12417 7315,12413 7317,12409 7321,12405 7325,12403 7329,12400 7334,12399 7339,12399 L 7506,12399 7506,12399 C 7511,12399 7516,12400 7520,12403 7524,12405 7528,12409 7530,12413 7533,12417 7534,12422 7534,12427 L 7533,12511 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id214">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7313" y="12196" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7535,12308 L 7535,12308 C 7535,12313 7534,12318 7531,12322 7529,12326 7525,12330 7521,12332 7517,12335 7512,12336 7507,12336 L 7341,12335 7341,12335 C 7336,12335 7331,12334 7327,12331 7323,12329 7319,12325 7317,12321 7314,12317 7313,12312 7313,12307 L 7313,12307 7313,12224 7313,12224 C 7313,12219 7314,12214 7317,12210 7319,12206 7323,12202 7327,12200 7331,12197 7336,12196 7341,12196 L 7508,12196 7508,12196 C 7513,12196 7518,12197 7522,12200 7526,12202 7530,12206 7532,12210 7535,12214 7536,12219 7536,12224 L 7535,12308 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id215">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7312" y="11996" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7535,12108 L 7535,12108 C 7535,12113 7534,12118 7531,12122 7529,12126 7525,12130 7521,12132 7517,12135 7512,12136 7507,12136 L 7341,12135 7341,12135 C 7336,12135 7331,12134 7327,12131 7323,12129 7319,12125 7317,12121 7314,12117 7313,12112 7313,12107 L 7313,12107 7313,12024 7313,12024 C 7313,12019 7314,12014 7317,12010 7319,12006 7323,12002 7327,12000 7331,11997 7336,11996 7341,11996 L 7508,11996 7508,11996 C 7513,11996 7518,11997 7522,12000 7526,12002 7530,12006 7532,12010 7535,12014 7536,12019 7536,12024 L 7535,12108 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id216">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7612" y="12399" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7834,12511 L 7834,12511 C 7834,12516 7833,12521 7830,12525 7828,12529 7824,12533 7820,12535 7816,12538 7811,12539 7806,12539 L 7640,12538 7640,12538 C 7635,12538 7630,12537 7626,12534 7622,12532 7618,12528 7616,12524 7613,12520 7612,12515 7612,12510 L 7612,12510 7612,12427 7612,12427 C 7612,12422 7613,12417 7616,12413 7618,12409 7622,12405 7626,12403 7630,12400 7635,12399 7640,12399 L 7807,12399 7807,12399 C 7812,12399 7817,12400 7821,12403 7825,12405 7829,12409 7831,12413 7834,12417 7835,12422 7835,12427 L 7834,12511 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id217">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7614" y="12196" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7836,12308 L 7836,12308 C 7836,12313 7835,12318 7832,12322 7830,12326 7826,12330 7822,12332 7818,12335 7813,12336 7808,12336 L 7642,12335 7642,12335 C 7637,12335 7632,12334 7628,12331 7624,12329 7620,12325 7618,12321 7615,12317 7614,12312 7614,12307 L 7614,12307 7614,12224 7614,12224 C 7614,12219 7615,12214 7618,12210 7620,12206 7624,12202 7628,12200 7632,12197 7637,12196 7642,12196 L 7809,12196 7809,12196 C 7814,12196 7819,12197 7823,12200 7827,12202 7831,12206 7833,12210 7836,12214 7837,12219 7837,12224 L 7836,12308 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id218">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7613" y="11996" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7836,12108 L 7836,12108 C 7836,12113 7835,12118 7832,12122 7830,12126 7826,12130 7822,12132 7818,12135 7813,12136 7808,12136 L 7642,12135 7642,12135 C 7637,12135 7632,12134 7628,12131 7624,12129 7620,12125 7618,12121 7615,12117 7614,12112 7614,12107 L 7614,12107 7614,12024 7614,12024 C 7614,12019 7615,12014 7618,12010 7620,12006 7624,12002 7628,12000 7632,11997 7637,11996 7642,11996 L 7809,11996 7809,11996 C 7814,11996 7819,11997 7823,12000 7827,12002 7831,12006 7833,12010 7836,12014 7837,12019 7837,12024 L 7836,12108 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id219">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7912" y="12399" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8134,12512 L 8134,12512 C 8134,12517 8133,12522 8130,12526 8128,12530 8124,12534 8120,12536 8116,12539 8111,12540 8106,12540 L 7940,12539 7940,12539 C 7935,12539 7930,12538 7926,12535 7922,12533 7918,12529 7916,12525 7913,12521 7912,12516 7912,12511 L 7912,12511 7912,12428 7912,12428 C 7912,12423 7913,12418 7916,12414 7918,12410 7922,12406 7926,12404 7930,12401 7935,12400 7940,12400 L 8107,12400 8107,12400 C 8112,12400 8117,12401 8121,12404 8125,12406 8129,12410 8131,12414 8134,12418 8135,12423 8135,12428 L 8134,12512 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id220">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7914" y="12196" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8136,12309 L 8136,12309 C 8136,12314 8135,12319 8132,12323 8130,12327 8126,12331 8122,12333 8118,12336 8113,12337 8108,12337 L 7942,12336 7942,12336 C 7937,12336 7932,12335 7928,12332 7924,12330 7920,12326 7918,12322 7915,12318 7914,12313 7914,12308 L 7914,12308 7914,12225 7914,12225 C 7914,12220 7915,12215 7918,12211 7920,12207 7924,12203 7928,12201 7932,12198 7937,12197 7942,12197 L 8109,12197 8109,12197 C 8114,12197 8119,12198 8123,12201 8127,12203 8131,12207 8133,12211 8136,12215 8137,12220 8137,12225 L 8136,12309 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id221">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7913" y="11996" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8136,12109 L 8136,12109 C 8136,12114 8135,12119 8132,12123 8130,12127 8126,12131 8122,12133 8118,12136 8113,12137 8108,12137 L 7942,12136 7942,12136 C 7937,12136 7932,12135 7928,12132 7924,12130 7920,12126 7918,12122 7915,12118 7914,12113 7914,12108 L 7914,12108 7914,12025 7914,12025 C 7914,12020 7915,12015 7918,12011 7920,12007 7924,12003 7928,12001 7932,11998 7937,11997 7942,11997 L 8109,11997 8109,11997 C 8114,11997 8119,11998 8123,12001 8127,12003 8131,12007 8133,12011 8136,12015 8137,12020 8137,12025 L 8136,12109 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id222">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5711" y="12398" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5933,12510 L 5933,12510 C 5933,12515 5932,12520 5929,12524 5927,12528 5923,12532 5919,12534 5915,12537 5910,12538 5905,12538 L 5739,12537 5739,12537 C 5734,12537 5729,12536 5725,12533 5721,12531 5717,12527 5715,12523 5712,12519 5711,12514 5711,12509 L 5711,12509 5711,12426 5711,12426 C 5711,12421 5712,12416 5715,12412 5717,12408 5721,12404 5725,12402 5729,12399 5734,12398 5739,12398 L 5906,12398 5906,12398 C 5911,12398 5916,12399 5920,12402 5924,12404 5928,12408 5930,12412 5933,12416 5934,12421 5934,12426 L 5933,12510 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id223">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5713" y="12195" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5935,12307 L 5935,12307 C 5935,12312 5934,12317 5931,12321 5929,12325 5925,12329 5921,12331 5917,12334 5912,12335 5907,12335 L 5741,12334 5741,12334 C 5736,12334 5731,12333 5727,12330 5723,12328 5719,12324 5717,12320 5714,12316 5713,12311 5713,12306 L 5713,12306 5713,12223 5713,12223 C 5713,12218 5714,12213 5717,12209 5719,12205 5723,12201 5727,12199 5731,12196 5736,12195 5741,12195 L 5908,12195 5908,12195 C 5913,12195 5918,12196 5922,12199 5926,12201 5930,12205 5932,12209 5935,12213 5936,12218 5936,12223 L 5935,12307 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id224">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5712" y="11995" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5935,12107 L 5935,12107 C 5935,12112 5934,12117 5931,12121 5929,12125 5925,12129 5921,12131 5917,12134 5912,12135 5907,12135 L 5741,12134 5741,12134 C 5736,12134 5731,12133 5727,12130 5723,12128 5719,12124 5717,12120 5714,12116 5713,12111 5713,12106 L 5713,12106 5713,12023 5713,12023 C 5713,12018 5714,12013 5717,12009 5719,12005 5723,12001 5727,11999 5731,11996 5736,11995 5741,11995 L 5908,11995 5908,11995 C 5913,11995 5918,11996 5922,11999 5926,12001 5930,12005 5932,12009 5935,12013 5936,12018 5936,12023 L 5935,12107 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id225">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6011" y="12399" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6233,12511 L 6233,12511 C 6233,12516 6232,12521 6229,12525 6227,12529 6223,12533 6219,12535 6215,12538 6210,12539 6205,12539 L 6039,12538 6039,12538 C 6034,12538 6029,12537 6025,12534 6021,12532 6017,12528 6015,12524 6012,12520 6011,12515 6011,12510 L 6011,12510 6011,12427 6011,12427 C 6011,12422 6012,12417 6015,12413 6017,12409 6021,12405 6025,12403 6029,12400 6034,12399 6039,12399 L 6206,12399 6206,12399 C 6211,12399 6216,12400 6220,12403 6224,12405 6228,12409 6230,12413 6233,12417 6234,12422 6234,12427 L 6233,12511 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id226">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6013" y="12196" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6235,12308 L 6235,12308 C 6235,12313 6234,12318 6231,12322 6229,12326 6225,12330 6221,12332 6217,12335 6212,12336 6207,12336 L 6041,12335 6041,12335 C 6036,12335 6031,12334 6027,12331 6023,12329 6019,12325 6017,12321 6014,12317 6013,12312 6013,12307 L 6013,12307 6013,12224 6013,12224 C 6013,12219 6014,12214 6017,12210 6019,12206 6023,12202 6027,12200 6031,12197 6036,12196 6041,12196 L 6208,12196 6208,12196 C 6213,12196 6218,12197 6222,12200 6226,12202 6230,12206 6232,12210 6235,12214 6236,12219 6236,12224 L 6235,12308 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id227">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6012" y="11996" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6235,12108 L 6235,12108 C 6235,12113 6234,12118 6231,12122 6229,12126 6225,12130 6221,12132 6217,12135 6212,12136 6207,12136 L 6041,12135 6041,12135 C 6036,12135 6031,12134 6027,12131 6023,12129 6019,12125 6017,12121 6014,12117 6013,12112 6013,12107 L 6013,12107 6013,12024 6013,12024 C 6013,12019 6014,12014 6017,12010 6019,12006 6023,12002 6027,12000 6031,11997 6036,11996 6041,11996 L 6208,11996 6208,11996 C 6213,11996 6218,11997 6222,12000 6226,12002 6230,12006 6232,12010 6235,12014 6236,12019 6236,12024 L 6235,12108 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id228">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6312" y="12399" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6534,12511 L 6534,12511 C 6534,12516 6533,12521 6530,12525 6528,12529 6524,12533 6520,12535 6516,12538 6511,12539 6506,12539 L 6340,12538 6340,12538 C 6335,12538 6330,12537 6326,12534 6322,12532 6318,12528 6316,12524 6313,12520 6312,12515 6312,12510 L 6312,12510 6312,12427 6312,12427 C 6312,12422 6313,12417 6316,12413 6318,12409 6322,12405 6326,12403 6330,12400 6335,12399 6340,12399 L 6507,12399 6507,12399 C 6512,12399 6517,12400 6521,12403 6525,12405 6529,12409 6531,12413 6534,12417 6535,12422 6535,12427 L 6534,12511 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id229">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6314" y="12196" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6536,12308 L 6536,12308 C 6536,12313 6535,12318 6532,12322 6530,12326 6526,12330 6522,12332 6518,12335 6513,12336 6508,12336 L 6342,12335 6342,12335 C 6337,12335 6332,12334 6328,12331 6324,12329 6320,12325 6318,12321 6315,12317 6314,12312 6314,12307 L 6314,12307 6314,12224 6314,12224 C 6314,12219 6315,12214 6318,12210 6320,12206 6324,12202 6328,12200 6332,12197 6337,12196 6342,12196 L 6509,12196 6509,12196 C 6514,12196 6519,12197 6523,12200 6527,12202 6531,12206 6533,12210 6536,12214 6537,12219 6537,12224 L 6536,12308 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id230">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6313" y="11996" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6536,12108 L 6536,12108 C 6536,12113 6535,12118 6532,12122 6530,12126 6526,12130 6522,12132 6518,12135 6513,12136 6508,12136 L 6342,12135 6342,12135 C 6337,12135 6332,12134 6328,12131 6324,12129 6320,12125 6318,12121 6315,12117 6314,12112 6314,12107 L 6314,12107 6314,12024 6314,12024 C 6314,12019 6315,12014 6318,12010 6320,12006 6324,12002 6328,12000 6332,11997 6337,11996 6342,11996 L 6509,11996 6509,11996 C 6514,11996 6519,11997 6523,12000 6527,12002 6531,12006 6533,12010 6536,12014 6537,12019 6537,12024 L 6536,12108 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id231">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6612" y="12400" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6834,12512 L 6834,12512 C 6834,12517 6833,12522 6830,12526 6828,12530 6824,12534 6820,12536 6816,12539 6811,12540 6806,12540 L 6640,12539 6640,12539 C 6635,12539 6630,12538 6626,12535 6622,12533 6618,12529 6616,12525 6613,12521 6612,12516 6612,12511 L 6612,12511 6612,12428 6612,12428 C 6612,12423 6613,12418 6616,12414 6618,12410 6622,12406 6626,12404 6630,12401 6635,12400 6640,12400 L 6807,12400 6807,12400 C 6812,12400 6817,12401 6821,12404 6825,12406 6829,12410 6831,12414 6834,12418 6835,12423 6835,12428 L 6834,12512 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id232">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6614" y="12197" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6836,12309 L 6836,12309 C 6836,12314 6835,12319 6832,12323 6830,12327 6826,12331 6822,12333 6818,12336 6813,12337 6808,12337 L 6642,12336 6642,12336 C 6637,12336 6632,12335 6628,12332 6624,12330 6620,12326 6618,12322 6615,12318 6614,12313 6614,12308 L 6614,12308 6614,12225 6614,12225 C 6614,12220 6615,12215 6618,12211 6620,12207 6624,12203 6628,12201 6632,12198 6637,12197 6642,12197 L 6809,12197 6809,12197 C 6814,12197 6819,12198 6823,12201 6827,12203 6831,12207 6833,12211 6836,12215 6837,12220 6837,12225 L 6836,12309 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id233">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6613" y="11997" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6836,12109 L 6836,12109 C 6836,12114 6835,12119 6832,12123 6830,12127 6826,12131 6822,12133 6818,12136 6813,12137 6808,12137 L 6642,12136 6642,12136 C 6637,12136 6632,12135 6628,12132 6624,12130 6620,12126 6618,12122 6615,12118 6614,12113 6614,12108 L 6614,12108 6614,12025 6614,12025 C 6614,12020 6615,12015 6618,12011 6620,12007 6624,12003 6628,12001 6632,11998 6637,11997 6642,11997 L 6809,11997 6809,11997 C 6814,11997 6819,11998 6823,12001 6827,12003 6831,12007 6833,12011 6836,12015 6837,12020 6837,12025 L 6836,12109 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id234">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3710" y="12398" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3933,12510 L 3933,12510 C 3933,12515 3932,12520 3929,12524 3927,12528 3923,12532 3919,12534 3915,12537 3910,12538 3905,12538 L 3739,12537 3739,12537 C 3734,12537 3729,12536 3725,12533 3721,12531 3717,12527 3715,12523 3712,12519 3711,12514 3711,12509 L 3711,12509 3711,12426 3711,12426 C 3711,12421 3712,12416 3715,12412 3717,12408 3721,12404 3725,12402 3729,12399 3734,12398 3739,12398 L 3906,12398 3906,12398 C 3911,12398 3916,12399 3920,12402 3924,12404 3928,12408 3930,12412 3933,12416 3934,12421 3934,12426 L 3933,12510 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id235">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3712" y="12195" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3935,12307 L 3935,12307 C 3935,12312 3934,12317 3931,12321 3929,12325 3925,12329 3921,12331 3917,12334 3912,12335 3907,12335 L 3741,12334 3741,12334 C 3736,12334 3731,12333 3727,12330 3723,12328 3719,12324 3717,12320 3714,12316 3713,12311 3713,12306 L 3713,12306 3713,12223 3713,12223 C 3713,12218 3714,12213 3717,12209 3719,12205 3723,12201 3727,12199 3731,12196 3736,12195 3741,12195 L 3908,12195 3908,12195 C 3913,12195 3918,12196 3922,12199 3926,12201 3930,12205 3932,12209 3935,12213 3936,12218 3936,12223 L 3935,12307 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id236">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3712" y="11995" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3935,12107 L 3935,12107 C 3935,12112 3934,12117 3931,12121 3929,12125 3925,12129 3921,12131 3917,12134 3912,12135 3907,12135 L 3741,12134 3741,12134 C 3736,12134 3731,12133 3727,12130 3723,12128 3719,12124 3717,12120 3714,12116 3713,12111 3713,12106 L 3713,12106 3713,12023 3713,12023 C 3713,12018 3714,12013 3717,12009 3719,12005 3723,12001 3727,11999 3731,11996 3736,11995 3741,11995 L 3908,11995 3908,11995 C 3913,11995 3918,11996 3922,11999 3926,12001 3930,12005 3932,12009 3935,12013 3936,12018 3936,12023 L 3935,12107 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id237">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4010" y="12399" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4233,12511 L 4233,12511 C 4233,12516 4232,12521 4229,12525 4227,12529 4223,12533 4219,12535 4215,12538 4210,12539 4205,12539 L 4039,12538 4039,12538 C 4034,12538 4029,12537 4025,12534 4021,12532 4017,12528 4015,12524 4012,12520 4011,12515 4011,12510 L 4011,12510 4011,12427 4011,12427 C 4011,12422 4012,12417 4015,12413 4017,12409 4021,12405 4025,12403 4029,12400 4034,12399 4039,12399 L 4206,12399 4206,12399 C 4211,12399 4216,12400 4220,12403 4224,12405 4228,12409 4230,12413 4233,12417 4234,12422 4234,12427 L 4233,12511 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id238">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4013" y="12196" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4235,12308 L 4235,12308 C 4235,12313 4234,12318 4231,12322 4229,12326 4225,12330 4221,12332 4217,12335 4212,12336 4207,12336 L 4041,12335 4041,12335 C 4036,12335 4031,12334 4027,12331 4023,12329 4019,12325 4017,12321 4014,12317 4013,12312 4013,12307 L 4013,12307 4013,12224 4013,12224 C 4013,12219 4014,12214 4017,12210 4019,12206 4023,12202 4027,12200 4031,12197 4036,12196 4041,12196 L 4208,12196 4208,12196 C 4213,12196 4218,12197 4222,12200 4226,12202 4230,12206 4232,12210 4235,12214 4236,12219 4236,12224 L 4235,12308 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id239">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4012" y="11996" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4235,12108 L 4235,12108 C 4235,12113 4234,12118 4231,12122 4229,12126 4225,12130 4221,12132 4217,12135 4212,12136 4207,12136 L 4041,12135 4041,12135 C 4036,12135 4031,12134 4027,12131 4023,12129 4019,12125 4017,12121 4014,12117 4013,12112 4013,12107 L 4013,12107 4013,12024 4013,12024 C 4013,12019 4014,12014 4017,12010 4019,12006 4023,12002 4027,12000 4031,11997 4036,11996 4041,11996 L 4208,11996 4208,11996 C 4213,11996 4218,11997 4222,12000 4226,12002 4230,12006 4232,12010 4235,12014 4236,12019 4236,12024 L 4235,12108 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id240">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4312" y="12399" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4534,12511 L 4534,12511 C 4534,12516 4533,12521 4530,12525 4528,12529 4524,12533 4520,12535 4516,12538 4511,12539 4506,12539 L 4340,12538 4340,12538 C 4335,12538 4330,12537 4326,12534 4322,12532 4318,12528 4316,12524 4313,12520 4312,12515 4312,12510 L 4312,12510 4312,12427 4312,12427 C 4312,12422 4313,12417 4316,12413 4318,12409 4322,12405 4326,12403 4330,12400 4335,12399 4340,12399 L 4507,12399 4507,12399 C 4512,12399 4517,12400 4521,12403 4525,12405 4529,12409 4531,12413 4534,12417 4535,12422 4535,12427 L 4534,12511 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id241">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4314" y="12196" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4536,12308 L 4536,12308 C 4536,12313 4535,12318 4532,12322 4530,12326 4526,12330 4522,12332 4518,12335 4513,12336 4508,12336 L 4342,12335 4342,12335 C 4337,12335 4332,12334 4328,12331 4324,12329 4320,12325 4318,12321 4315,12317 4314,12312 4314,12307 L 4314,12307 4314,12224 4314,12224 C 4314,12219 4315,12214 4318,12210 4320,12206 4324,12202 4328,12200 4332,12197 4337,12196 4342,12196 L 4509,12196 4509,12196 C 4514,12196 4519,12197 4523,12200 4527,12202 4531,12206 4533,12210 4536,12214 4537,12219 4537,12224 L 4536,12308 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id242">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4313" y="11996" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4536,12108 L 4536,12108 C 4536,12113 4535,12118 4532,12122 4530,12126 4526,12130 4522,12132 4518,12135 4513,12136 4508,12136 L 4342,12135 4342,12135 C 4337,12135 4332,12134 4328,12131 4324,12129 4320,12125 4318,12121 4315,12117 4314,12112 4314,12107 L 4314,12107 4314,12024 4314,12024 C 4314,12019 4315,12014 4318,12010 4320,12006 4324,12002 4328,12000 4332,11997 4337,11996 4342,11996 L 4509,11996 4509,11996 C 4514,11996 4519,11997 4523,12000 4527,12002 4531,12006 4533,12010 4536,12014 4537,12019 4537,12024 L 4536,12108 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id243">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4612" y="12400" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4834,12512 L 4834,12512 C 4834,12517 4833,12522 4830,12526 4828,12530 4824,12534 4820,12536 4816,12539 4811,12540 4806,12540 L 4640,12539 4640,12539 C 4635,12539 4630,12538 4626,12535 4622,12533 4618,12529 4616,12525 4613,12521 4612,12516 4612,12511 L 4612,12511 4612,12428 4612,12428 C 4612,12423 4613,12418 4616,12414 4618,12410 4622,12406 4626,12404 4630,12401 4635,12400 4640,12400 L 4807,12400 4807,12400 C 4812,12400 4817,12401 4821,12404 4825,12406 4829,12410 4831,12414 4834,12418 4835,12423 4835,12428 L 4834,12512 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id244">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4614" y="12197" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4836,12309 L 4836,12309 C 4836,12314 4835,12319 4832,12323 4830,12327 4826,12331 4822,12333 4818,12336 4813,12337 4808,12337 L 4642,12336 4642,12336 C 4637,12336 4632,12335 4628,12332 4624,12330 4620,12326 4618,12322 4615,12318 4614,12313 4614,12308 L 4614,12308 4614,12225 4614,12225 C 4614,12220 4615,12215 4618,12211 4620,12207 4624,12203 4628,12201 4632,12198 4637,12197 4642,12197 L 4809,12197 4809,12197 C 4814,12197 4819,12198 4823,12201 4827,12203 4831,12207 4833,12211 4836,12215 4837,12220 4837,12225 L 4836,12309 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id245">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4613" y="11997" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4836,12109 L 4836,12109 C 4836,12114 4835,12119 4832,12123 4830,12127 4826,12131 4822,12133 4818,12136 4813,12137 4808,12137 L 4642,12136 4642,12136 C 4637,12136 4632,12135 4628,12132 4624,12130 4620,12126 4618,12122 4615,12118 4614,12113 4614,12108 L 4614,12108 4614,12025 4614,12025 C 4614,12020 4615,12015 4618,12011 4620,12007 4624,12003 4628,12001 4632,11998 4637,11997 4642,11997 L 4809,11997 4809,11997 C 4814,11997 4819,11998 4823,12001 4827,12003 4831,12007 4833,12011 4836,12015 4837,12020 4837,12025 L 4836,12109 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id246">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2410" y="12398" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2633,12511 L 2633,12511 C 2633,12516 2632,12521 2629,12525 2627,12529 2623,12533 2619,12535 2615,12538 2610,12539 2605,12539 L 2439,12538 2439,12538 C 2434,12538 2429,12537 2425,12534 2421,12532 2417,12528 2415,12524 2412,12520 2411,12515 2411,12510 L 2411,12510 2411,12427 2411,12427 C 2411,12422 2412,12417 2415,12413 2417,12409 2421,12405 2425,12403 2429,12400 2434,12399 2439,12399 L 2606,12399 2606,12399 C 2611,12399 2616,12400 2620,12403 2624,12405 2628,12409 2630,12413 2633,12417 2634,12422 2634,12427 L 2633,12511 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id247">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2412" y="12195" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2635,12308 L 2635,12308 C 2635,12313 2634,12318 2631,12322 2629,12326 2625,12330 2621,12332 2617,12335 2612,12336 2607,12336 L 2441,12335 2441,12335 C 2436,12335 2431,12334 2427,12331 2423,12329 2419,12325 2417,12321 2414,12317 2413,12312 2413,12307 L 2413,12307 2413,12224 2413,12224 C 2413,12219 2414,12214 2417,12210 2419,12206 2423,12202 2427,12200 2431,12197 2436,12196 2441,12196 L 2608,12196 2608,12196 C 2613,12196 2618,12197 2622,12200 2626,12202 2630,12206 2632,12210 2635,12214 2636,12219 2636,12224 L 2635,12308 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id248">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2412" y="11995" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2635,12108 L 2635,12108 C 2635,12113 2634,12118 2631,12122 2629,12126 2625,12130 2621,12132 2617,12135 2612,12136 2607,12136 L 2441,12135 2441,12135 C 2436,12135 2431,12134 2427,12131 2423,12129 2419,12125 2417,12121 2414,12117 2413,12112 2413,12107 L 2413,12107 2413,12024 2413,12024 C 2413,12019 2414,12014 2417,12010 2419,12006 2423,12002 2427,12000 2431,11997 2436,11996 2441,11996 L 2608,11996 2608,11996 C 2613,11996 2618,11997 2622,12000 2626,12002 2630,12006 2632,12010 2635,12014 2636,12019 2636,12024 L 2635,12108 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id249">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2710" y="12399" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2933,12512 L 2933,12512 C 2933,12517 2932,12522 2929,12526 2927,12530 2923,12534 2919,12536 2915,12539 2910,12540 2905,12540 L 2739,12539 2739,12539 C 2734,12539 2729,12538 2725,12535 2721,12533 2717,12529 2715,12525 2712,12521 2711,12516 2711,12511 L 2711,12511 2711,12428 2711,12428 C 2711,12423 2712,12418 2715,12414 2717,12410 2721,12406 2725,12404 2729,12401 2734,12400 2739,12400 L 2906,12400 2906,12400 C 2911,12400 2916,12401 2920,12404 2924,12406 2928,12410 2930,12414 2933,12418 2934,12423 2934,12428 L 2933,12512 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id250">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2712" y="12196" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2935,12309 L 2935,12309 C 2935,12314 2934,12319 2931,12323 2929,12327 2925,12331 2921,12333 2917,12336 2912,12337 2907,12337 L 2741,12336 2741,12336 C 2736,12336 2731,12335 2727,12332 2723,12330 2719,12326 2717,12322 2714,12318 2713,12313 2713,12308 L 2713,12308 2713,12225 2713,12225 C 2713,12220 2714,12215 2717,12211 2719,12207 2723,12203 2727,12201 2731,12198 2736,12197 2741,12197 L 2908,12197 2908,12197 C 2913,12197 2918,12198 2922,12201 2926,12203 2930,12207 2932,12211 2935,12215 2936,12220 2936,12225 L 2935,12309 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id251">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2712" y="11996" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2935,12109 L 2935,12109 C 2935,12114 2934,12119 2931,12123 2929,12127 2925,12131 2921,12133 2917,12136 2912,12137 2907,12137 L 2741,12136 2741,12136 C 2736,12136 2731,12135 2727,12132 2723,12130 2719,12126 2717,12122 2714,12118 2713,12113 2713,12108 L 2713,12108 2713,12025 2713,12025 C 2713,12020 2714,12015 2717,12011 2719,12007 2723,12003 2727,12001 2731,11998 2736,11997 2741,11997 L 2908,11997 2908,11997 C 2913,11997 2918,11998 2922,12001 2926,12003 2930,12007 2932,12011 2935,12015 2936,12020 2936,12025 L 2935,12109 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id252">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3011" y="12399" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3234,12512 L 3234,12512 C 3234,12517 3233,12522 3230,12526 3228,12530 3224,12534 3220,12536 3216,12539 3211,12540 3206,12540 L 3040,12539 3040,12539 C 3035,12539 3030,12538 3026,12535 3022,12533 3018,12529 3016,12525 3013,12521 3012,12516 3012,12511 L 3012,12511 3012,12428 3012,12428 C 3012,12423 3013,12418 3016,12414 3018,12410 3022,12406 3026,12404 3030,12401 3035,12400 3040,12400 L 3207,12400 3207,12400 C 3212,12400 3217,12401 3221,12404 3225,12406 3229,12410 3231,12414 3234,12418 3235,12423 3235,12428 L 3234,12512 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id253">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3013" y="12196" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3236,12309 L 3236,12309 C 3236,12314 3235,12319 3232,12323 3230,12327 3226,12331 3222,12333 3218,12336 3213,12337 3208,12337 L 3042,12336 3042,12336 C 3037,12336 3032,12335 3028,12332 3024,12330 3020,12326 3018,12322 3015,12318 3014,12313 3014,12308 L 3014,12308 3014,12225 3014,12225 C 3014,12220 3015,12215 3018,12211 3020,12207 3024,12203 3028,12201 3032,12198 3037,12197 3042,12197 L 3209,12197 3209,12197 C 3214,12197 3219,12198 3223,12201 3227,12203 3231,12207 3233,12211 3236,12215 3237,12220 3237,12225 L 3236,12309 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id254">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3013" y="11996" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3236,12109 L 3236,12109 C 3236,12114 3235,12119 3232,12123 3230,12127 3226,12131 3222,12133 3218,12136 3213,12137 3208,12137 L 3042,12136 3042,12136 C 3037,12136 3032,12135 3028,12132 3024,12130 3020,12126 3018,12122 3015,12118 3014,12113 3014,12108 L 3014,12108 3014,12025 3014,12025 C 3014,12020 3015,12015 3018,12011 3020,12007 3024,12003 3028,12001 3032,11998 3037,11997 3042,11997 L 3209,11997 3209,11997 C 3214,11997 3219,11998 3223,12001 3227,12003 3231,12007 3233,12011 3236,12015 3237,12020 3237,12025 L 3236,12109 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id255">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3311" y="12401" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3534,12513 L 3534,12513 C 3534,12518 3533,12523 3530,12527 3528,12531 3524,12535 3520,12537 3516,12540 3511,12541 3506,12541 L 3340,12540 3340,12540 C 3335,12540 3330,12539 3326,12536 3322,12534 3318,12530 3316,12526 3313,12522 3312,12517 3312,12512 L 3312,12512 3312,12429 3312,12429 C 3312,12424 3313,12419 3316,12415 3318,12411 3322,12407 3326,12405 3330,12402 3335,12401 3340,12401 L 3507,12401 3507,12401 C 3512,12401 3517,12402 3521,12405 3525,12407 3529,12411 3531,12415 3534,12419 3535,12424 3535,12429 L 3534,12513 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id256">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3313" y="12198" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3536,12310 L 3536,12310 C 3536,12315 3535,12320 3532,12324 3530,12328 3526,12332 3522,12334 3518,12337 3513,12338 3508,12338 L 3342,12337 3342,12337 C 3337,12337 3332,12336 3328,12333 3324,12331 3320,12327 3318,12323 3315,12319 3314,12314 3314,12309 L 3314,12309 3314,12226 3314,12226 C 3314,12221 3315,12216 3318,12212 3320,12208 3324,12204 3328,12202 3332,12199 3337,12198 3342,12198 L 3509,12198 3509,12198 C 3514,12198 3519,12199 3523,12202 3527,12204 3531,12208 3533,12212 3536,12216 3537,12221 3537,12226 L 3536,12310 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id257">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3313" y="11998" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3536,12110 L 3536,12110 C 3536,12115 3535,12120 3532,12124 3530,12128 3526,12132 3522,12134 3518,12137 3513,12138 3508,12138 L 3342,12137 3342,12137 C 3337,12137 3332,12136 3328,12133 3324,12131 3320,12127 3318,12123 3315,12119 3314,12114 3314,12109 L 3314,12109 3314,12026 3314,12026 C 3314,12021 3315,12016 3318,12012 3320,12008 3324,12004 3328,12002 3332,11999 3337,11998 3342,11998 L 3509,11998 3509,11998 C 3514,11998 3519,11999 3523,12002 3527,12004 3531,12008 3533,12012 3536,12016 3537,12021 3537,12026 L 3536,12110 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/docs/static/testbed-2n-tx2.svg b/docs/static/testbed-2n-tx2.svg
new file mode 100644
index 0000000000..44da3f40ae
--- /dev/null
+++ b/docs/static/testbed-2n-tx2.svg
@@ -0,0 +1,1086 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.2" width="90.84mm" height="128.96mm" viewBox="501 625 9084 12896" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
+ <defs class="ClipPathGroup">
+ <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
+ <rect x="501" y="625" width="9084" height="12896"/>
+ </clipPath>
+ <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
+ <rect x="510" y="637" width="9066" height="12871"/>
+ </clipPath>
+ </defs>
+ <defs>
+ <font id="EmbeddedFont_1" horiz-adv-x="2048">
+ <font-face font-family="Arial embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1866" descent="432"/>
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+ <glyph unicode="x" horiz-adv-x="1020" d="M 15,0 L 403,552 44,1062 269,1062 432,813 C 463,766 487,726 506,694 535,738 562,777 587,811 L 766,1062 981,1062 614,562 1009,0 788,0 570,330 512,419 233,0 Z"/>
+ <glyph unicode="U" horiz-adv-x="1175" d="M 1120,1466 L 1314,1466 1314,619 C 1314,472 1297,355 1264,268 1231,181 1171,111 1084,57 997,2 882,-25 741,-25 604,-25 491,-1 404,46 317,93 254,162 217,252 180,341 161,464 161,619 L 161,1466 355,1466 355,620 C 355,493 367,399 391,339 414,278 455,232 513,199 570,166 641,150 724,150 867,150 968,182 1029,247 1090,312 1120,436 1120,620 Z"/>
+ <glyph unicode="P" horiz-adv-x="1124" d="M 158,0 L 158,1466 711,1466 C 808,1466 883,1461 934,1452 1006,1440 1066,1417 1115,1384 1164,1350 1203,1303 1233,1242 1262,1181 1277,1115 1277,1042 1277,917 1237,812 1158,726 1079,639 935,596 728,596 L 352,596 352,0 Z M 352,769 L 731,769 C 856,769 945,792 998,839 1051,886 1077,951 1077,1036 1077,1097 1062,1150 1031,1194 1000,1237 959,1266 908,1280 875,1289 815,1293 727,1293 L 352,1293 Z"/>
+ <glyph unicode="I" horiz-adv-x="208" d="M 191,0 L 191,1466 385,1466 385,0 Z"/>
+ <glyph unicode="6" horiz-adv-x="986" d="M 1019,1107 L 840,1093 C 824,1164 801,1215 772,1247 723,1298 663,1324 592,1324 535,1324 484,1308 441,1276 384,1235 340,1174 307,1095 274,1016 257,903 256,756 299,822 352,871 415,903 478,935 543,951 612,951 732,951 834,907 919,819 1003,730 1045,616 1045,476 1045,384 1025,299 986,220 946,141 891,80 822,38 753,-4 674,-25 586,-25 436,-25 314,30 219,141 124,251 77,433 77,686 77,969 129,1175 234,1304 325,1416 448,1472 603,1472 718,1472 813,1440 887,1375 960,1310 1004,1221 1019,1107 Z M 284,475 C 284,413 297,354 324,297 350,240 387,197 434,168 481,138 531,123 583,123 659,123 724,154 779,215 834,276 861,360 861,465 861,566 834,646 780,705 726,763 658,792 576,792 495,792 426,763 369,705 312,646 284,570 284,475 Z"/>
+ <glyph unicode="1" horiz-adv-x="572" d="M 763,0 L 583,0 583,1147 C 540,1106 483,1064 413,1023 342,982 279,951 223,930 L 223,1104 C 324,1151 412,1209 487,1276 562,1343 616,1409 647,1472 L 763,1472 Z"/>
+ </font>
+ </defs>
+ <defs>
+ <font id="EmbeddedFont_2" horiz-adv-x="2048">
+ <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1953" descent="553"/>
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+ <glyph unicode="y" horiz-adv-x="883" d="M 563,0 L 443,-331 C 439,-342 429,-350 413,-356 396,-361 371,-364 338,-364 321,-364 307,-363 296,-362 285,-360 277,-357 272,-353 266,-349 263,-344 262,-337 261,-330 263,-322 267,-313 L 391,0 C 385,3 379,7 374,13 369,19 365,25 363,32 L 42,892 C 37,906 34,917 34,925 34,933 37,939 42,944 47,949 56,952 68,954 80,955 96,956 116,956 136,956 152,956 163,955 174,954 183,952 190,949 197,946 202,943 205,938 208,933 211,926 214,917 L 471,195 474,195 722,921 C 726,934 731,942 737,946 742,949 751,952 762,954 773,955 790,956 811,956 830,956 845,955 857,954 869,952 878,949 884,944 889,939 892,933 892,925 892,917 890,907 886,895 Z"/>
+ <glyph unicode="x" horiz-adv-x="813" d="M 835,44 C 840,35 843,27 843,21 843,14 840,9 834,5 827,1 818,-2 805,-4 792,-5 775,-6 754,-6 734,-6 718,-6 707,-5 695,-4 686,-2 679,1 672,3 666,6 663,10 659,13 656,17 653,22 L 437,379 222,22 C 219,17 216,13 213,10 209,6 204,3 197,1 190,-2 180,-4 169,-5 158,-6 143,-6 124,-6 105,-6 89,-5 77,-4 64,-2 55,1 50,5 44,9 41,14 42,21 42,27 45,35 51,44 L 331,483 66,906 C 61,915 58,923 58,930 57,936 60,941 67,946 73,950 83,953 96,954 109,955 126,956 147,956 166,956 182,956 194,955 205,954 214,952 221,950 228,948 233,945 236,942 239,939 242,935 245,930 L 450,595 658,930 C 661,934 664,938 667,941 670,944 675,947 681,950 686,952 694,954 705,955 715,956 729,956 747,956 766,956 782,955 795,954 807,953 816,950 822,947 828,943 831,938 830,931 829,924 826,916 820,906 L 557,488 Z"/>
+ <glyph unicode="v" horiz-adv-x="883" d="M 891,927 C 891,924 891,922 891,919 890,916 890,912 889,909 888,906 888,902 887,898 886,894 884,890 883,885 L 576,30 C 573,23 570,17 566,12 561,7 555,4 546,1 537,-2 526,-4 513,-5 500,-6 483,-6 463,-6 443,-6 426,-5 413,-4 400,-3 389,-1 381,2 372,5 366,8 361,13 356,18 353,23 350,30 L 44,885 C 41,893 39,900 38,906 36,912 35,917 35,920 34,923 34,925 34,927 34,932 35,937 38,941 41,945 45,948 52,951 58,953 66,954 77,955 87,956 100,956 115,956 134,956 150,956 162,955 173,954 182,952 189,949 195,946 200,943 203,939 206,935 208,930 211,924 L 465,182 469,170 472,182 723,924 C 724,930 727,935 730,939 733,943 738,946 745,949 751,952 760,954 771,955 782,956 796,956 814,956 829,956 842,956 852,955 862,954 870,953 876,950 881,947 885,944 888,941 890,937 891,932 891,927 Z"/>
+ <glyph unicode="u" horiz-adv-x="796" d="M 924,25 C 924,20 923,15 921,12 918,8 914,5 908,2 902,-1 894,-3 885,-4 875,-5 863,-6 849,-6 834,-6 821,-5 812,-4 802,-3 794,-1 789,2 783,5 779,8 777,12 775,15 774,20 774,25 L 774,144 C 723,87 672,46 622,20 572,-6 521,-19 470,-19 410,-19 360,-9 319,11 278,31 244,58 219,93 194,127 176,167 165,213 154,258 148,314 148,379 L 148,925 C 148,930 149,935 152,939 154,942 158,946 165,949 172,952 180,954 191,955 202,956 215,956 231,956 247,956 260,956 271,955 282,954 290,952 297,949 303,946 307,942 310,939 313,935 314,930 314,925 L 314,401 C 314,348 318,306 326,275 333,243 345,216 361,194 376,171 396,154 420,142 444,129 472,123 504,123 545,123 587,138 628,167 669,196 712,239 758,296 L 758,925 C 758,930 759,935 762,939 764,942 768,946 775,949 782,952 790,954 801,955 811,956 824,956 841,956 857,956 870,956 881,955 892,954 900,952 906,949 912,946 917,942 920,939 923,935 924,930 924,925 Z"/>
+ <glyph unicode="t" horiz-adv-x="606" d="M 621,91 C 621,72 620,56 617,45 614,34 610,25 605,20 600,15 592,10 581,5 570,0 558,-4 545,-7 531,-10 516,-12 501,-14 486,-16 470,-17 455,-17 408,-17 368,-11 335,2 302,14 274,33 253,58 232,83 216,114 207,153 197,191 192,236 192,288 L 192,814 66,814 C 56,814 48,819 42,830 36,841 33,858 33,882 33,895 34,905 36,914 37,923 39,930 42,936 45,941 48,945 53,948 57,950 62,951 67,951 L 192,951 192,1165 C 192,1170 193,1174 196,1178 198,1182 202,1186 209,1189 215,1192 223,1194 234,1195 245,1196 258,1197 274,1197 291,1197 304,1196 315,1195 326,1194 334,1192 340,1189 346,1186 350,1182 353,1178 356,1174 357,1170 357,1165 L 357,951 588,951 C 593,951 598,950 602,948 606,945 610,941 613,936 616,930 618,923 619,914 620,905 621,895 621,882 621,858 618,841 612,830 606,819 598,814 588,814 L 357,814 357,312 C 357,250 366,203 385,172 403,140 436,124 483,124 498,124 512,126 524,129 536,132 547,135 556,138 565,141 573,145 580,148 587,151 593,152 598,152 601,152 605,151 608,150 611,148 613,145 615,140 616,135 618,129 619,121 620,113 621,103 621,91 Z"/>
+ <glyph unicode="s" horiz-adv-x="658" d="M 718,270 C 718,224 710,183 693,147 676,111 651,81 620,56 589,31 551,13 508,0 465,-13 417,-19 365,-19 333,-19 303,-17 274,-12 245,-7 219,0 196,8 173,15 153,23 137,32 121,40 109,47 102,54 95,61 89,70 86,82 83,94 81,110 81,131 81,144 82,154 83,163 84,172 86,179 88,184 90,189 93,193 97,196 100,198 104,199 109,199 116,199 127,195 142,186 156,177 174,167 195,156 216,145 240,136 269,127 298,118 331,113 368,113 396,113 421,116 444,122 467,128 486,137 503,149 520,160 533,175 542,193 551,211 555,232 555,257 555,282 549,304 536,321 523,338 505,354 484,367 463,380 439,392 412,403 385,413 358,424 330,435 301,446 274,459 247,474 220,488 195,505 174,526 153,547 136,571 123,600 110,629 103,663 103,703 103,738 110,772 124,805 137,837 158,865 185,890 212,914 247,933 288,948 329,963 376,970 431,970 455,970 479,968 503,964 527,960 549,955 568,949 587,943 604,937 618,930 631,923 642,916 649,911 656,906 660,901 663,897 665,893 667,889 668,884 669,879 670,872 671,865 672,858 672,849 672,838 672,827 672,817 671,809 670,800 668,793 666,788 663,783 660,779 657,777 654,774 650,773 646,773 640,773 631,777 620,784 609,791 594,799 576,808 558,816 537,824 513,831 488,838 460,842 429,842 401,842 376,839 355,833 334,826 316,817 303,806 289,794 279,780 272,764 265,748 261,731 261,712 261,686 268,664 281,647 294,629 312,613 333,600 354,587 379,575 406,564 433,553 461,542 490,531 518,520 546,507 574,493 601,479 626,462 647,442 668,422 686,398 699,370 712,342 718,309 718,270 Z"/>
+ <glyph unicode="r" horiz-adv-x="554" d="M 679,866 C 679,851 679,839 678,829 677,819 676,811 674,806 672,800 670,796 667,793 664,790 659,788 654,788 649,788 642,790 635,793 627,796 618,799 609,802 599,805 588,807 576,810 564,813 551,814 537,814 520,814 504,811 488,804 472,797 455,786 438,771 420,756 401,735 382,710 363,685 341,654 318,617 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,794 C 327,830 350,859 372,882 393,905 414,923 433,936 452,949 472,958 491,963 510,968 529,970 548,970 557,970 567,970 578,969 589,968 600,966 612,963 624,960 635,957 645,954 654,951 661,947 665,944 669,941 672,938 673,935 674,932 676,928 677,923 678,918 678,912 679,903 679,894 679,881 679,866 Z"/>
+ <glyph unicode="o" horiz-adv-x="917" d="M 990,485 C 990,412 980,344 961,283 942,221 913,168 875,123 836,78 788,44 731,19 673,-7 606,-19 530,-19 456,-19 392,-8 337,14 282,36 236,68 199,110 162,152 135,203 117,263 99,323 90,391 90,467 90,540 100,608 119,670 138,731 166,784 205,829 243,874 291,908 348,933 405,958 472,970 549,970 623,970 688,959 743,937 798,915 843,883 880,841 917,799 944,748 963,688 981,628 990,560 990,485 Z M 816,474 C 816,523 812,569 803,612 794,655 779,693 758,726 737,759 709,785 674,804 639,823 595,832 542,832 493,832 452,823 417,806 382,789 353,764 330,733 307,701 291,663 280,620 269,577 263,529 263,478 263,429 268,382 277,339 286,296 301,258 322,226 343,193 371,168 406,149 441,130 485,120 538,120 586,120 628,129 663,146 698,163 727,188 750,219 773,250 789,288 800,331 811,374 816,422 816,474 Z"/>
+ <glyph unicode="n" horiz-adv-x="796" d="M 928,25 C 928,20 927,15 924,12 921,8 917,5 911,2 905,-1 897,-3 886,-4 875,-5 862,-6 846,-6 829,-6 816,-5 805,-4 794,-3 786,-1 780,2 774,5 770,8 767,12 764,15 763,20 763,25 L 763,552 C 763,603 759,645 751,676 743,707 731,734 716,757 701,780 681,797 657,809 632,821 604,827 572,827 531,827 489,812 448,783 407,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 403,904 454,931 504,957 555,970 606,970 666,970 717,960 758,940 799,919 832,892 857,858 882,824 901,784 912,739 923,693 928,638 928,574 Z"/>
+ <glyph unicode="m" horiz-adv-x="1366" d="M 1488,25 C 1488,20 1487,15 1484,12 1481,8 1477,5 1471,2 1465,-1 1457,-3 1446,-4 1435,-5 1422,-6 1406,-6 1389,-6 1376,-5 1365,-4 1354,-3 1346,-1 1340,2 1333,5 1329,8 1326,12 1323,15 1322,20 1322,25 L 1322,572 C 1322,610 1319,645 1312,676 1305,707 1295,734 1280,757 1265,780 1247,797 1224,809 1201,821 1175,827 1144,827 1106,827 1068,812 1030,783 991,754 949,711 903,654 L 903,25 C 903,20 902,15 899,12 896,8 892,5 886,2 879,-1 871,-3 860,-4 849,-5 836,-6 820,-6 805,-6 792,-5 781,-4 770,-3 761,-1 755,2 748,5 744,8 742,12 739,15 738,20 738,25 L 738,572 C 738,610 734,645 727,676 720,707 709,734 694,757 679,780 661,797 639,809 616,821 590,827 559,827 521,827 483,812 444,783 405,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 402,904 450,931 497,957 545,970 594,970 631,970 665,966 695,957 724,948 750,936 773,921 796,905 815,886 831,865 847,843 860,819 871,792 901,825 930,852 957,875 984,898 1010,916 1035,930 1060,944 1084,954 1108,961 1131,967 1155,970 1179,970 1237,970 1286,960 1325,940 1364,919 1396,892 1421,858 1445,824 1462,784 1473,739 1483,693 1488,645 1488,594 Z"/>
+ <glyph unicode="l" horiz-adv-x="191" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 Z"/>
+ <glyph unicode="k" horiz-adv-x="762" d="M 892,26 C 892,21 891,16 888,12 885,8 881,5 875,2 868,-1 859,-3 848,-4 837,-5 822,-6 805,-6 787,-6 772,-6 761,-5 749,-4 739,-2 731,1 723,3 717,6 712,11 707,15 702,20 698,26 L 318,524 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 L 318,547 658,921 C 663,928 669,933 675,938 681,942 688,946 697,949 705,952 715,954 726,955 737,956 751,956 767,956 784,956 798,956 809,955 820,954 830,952 837,950 844,947 849,944 852,941 855,937 856,932 856,926 856,918 854,910 850,902 845,894 838,885 828,874 L 502,548 868,73 C 877,62 883,53 887,46 890,39 892,32 892,26 Z"/>
+ <glyph unicode="i" horiz-adv-x="226" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,934 157,938 159,942 163,945 170,948 176,951 184,953 195,954 206,955 219,956 235,956 252,956 265,955 276,954 287,953 295,951 301,948 307,945 311,942 314,938 317,934 318,930 318,925 Z M 337,1229 C 337,1190 330,1164 315,1150 300,1136 273,1129 234,1129 195,1129 169,1136 155,1150 140,1163 133,1189 133,1227 133,1266 140,1292 155,1306 170,1320 197,1327 236,1327 275,1327 301,1320 316,1307 330,1293 337,1267 337,1229 Z"/>
+ <glyph unicode="h" horiz-adv-x="796" d="M 928,25 C 928,20 927,15 924,12 921,8 917,5 911,2 905,-1 897,-3 886,-4 875,-5 862,-6 846,-6 829,-6 816,-5 805,-4 794,-3 786,-1 780,2 774,5 770,8 767,12 764,15 763,20 763,25 L 763,552 C 763,603 759,645 751,676 743,707 731,734 716,757 701,780 681,797 657,809 632,821 604,827 572,827 531,827 489,812 448,783 407,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 L 318,822 C 365,872 413,909 461,934 509,958 557,970 606,970 666,970 717,960 758,940 799,919 832,892 857,858 882,824 901,784 912,739 923,693 928,638 928,573 Z"/>
+ <glyph unicode="f" horiz-adv-x="623" d="M 646,1295 C 646,1282 645,1272 644,1265 643,1257 641,1251 640,1246 638,1241 636,1238 633,1237 630,1235 627,1234 623,1234 618,1234 613,1236 606,1239 599,1242 590,1245 580,1249 570,1252 558,1256 545,1259 531,1262 515,1263 497,1263 472,1263 451,1259 434,1251 417,1243 403,1231 392,1214 381,1197 374,1175 369,1148 364,1121 362,1088 362,1049 L 362,951 563,951 C 568,951 573,950 577,948 580,945 584,941 587,936 590,930 592,923 594,914 595,905 596,895 596,882 596,858 593,841 587,830 581,819 573,814 563,814 L 362,814 362,25 C 362,20 361,15 358,12 355,8 351,5 345,2 338,-1 330,-3 319,-4 308,-5 295,-6 279,-6 263,-6 250,-5 239,-4 228,-3 220,-1 214,2 207,5 203,8 200,12 197,15 196,20 196,25 L 196,814 69,814 C 58,814 50,819 45,830 40,841 37,858 37,882 37,895 38,905 39,914 40,923 42,930 45,936 48,941 51,945 55,948 59,950 64,951 69,951 L 196,951 196,1044 C 196,1107 202,1161 214,1206 225,1251 243,1287 267,1316 291,1345 321,1366 358,1380 394,1393 437,1400 486,1400 509,1400 532,1398 554,1394 576,1389 593,1385 605,1380 617,1375 625,1370 629,1366 633,1362 636,1357 639,1351 642,1344 644,1337 645,1328 646,1319 646,1308 646,1295 Z"/>
+ <glyph unicode="e" horiz-adv-x="848" d="M 921,514 C 921,488 915,470 902,459 889,448 874,442 857,442 L 267,442 C 267,392 272,347 282,307 292,267 309,233 332,204 355,175 386,153 423,138 460,123 506,115 560,115 603,115 641,119 674,126 707,133 736,140 761,149 785,158 805,166 821,173 836,180 848,183 856,183 861,183 865,182 869,180 872,177 875,174 877,169 879,164 881,158 882,150 883,141 883,131 883,119 883,110 883,103 882,97 881,90 881,85 880,80 879,75 877,70 875,66 872,62 869,58 866,55 862,51 851,45 833,37 815,28 792,20 763,12 734,4 701,-3 664,-10 626,-16 586,-19 543,-19 469,-19 404,-9 349,12 293,33 246,63 208,104 170,145 141,196 122,257 103,318 93,390 93,471 93,548 103,618 123,680 143,741 172,794 210,837 247,880 293,913 346,936 399,959 459,970 525,970 596,970 656,959 706,936 755,913 796,883 828,845 860,806 884,761 899,710 914,658 921,603 921,544 Z M 755,563 C 757,650 738,718 698,767 657,816 597,841 518,841 477,841 442,833 411,818 380,803 355,782 334,757 313,732 297,702 286,669 275,635 268,600 267,563 Z"/>
+ <glyph unicode="d" horiz-adv-x="848" d="M 924,25 C 924,20 923,15 921,11 918,7 914,4 909,2 903,-1 895,-3 886,-4 877,-5 865,-6 852,-6 838,-6 826,-5 817,-4 808,-3 800,-1 794,2 788,4 784,7 781,11 778,15 777,20 777,25 L 777,144 C 730,93 681,53 630,24 579,-5 523,-19 462,-19 396,-19 340,-6 293,20 246,45 209,80 180,124 151,167 129,219 116,278 103,337 96,399 96,464 96,541 104,611 121,674 138,736 162,789 195,833 228,877 268,911 317,935 365,958 421,970 484,970 537,970 585,959 629,936 672,913 715,879 758,834 L 758,1357 C 758,1362 759,1366 762,1371 764,1375 768,1378 775,1381 782,1383 790,1385 801,1387 811,1388 824,1389 840,1389 857,1389 870,1388 881,1387 892,1385 900,1383 906,1381 912,1378 917,1375 920,1371 923,1366 924,1362 924,1357 Z M 758,658 C 713,713 670,756 629,785 587,814 543,828 498,828 456,828 420,818 391,798 362,778 338,752 320,719 301,686 288,649 280,608 271,567 267,525 267,482 267,437 271,392 278,349 285,306 297,267 314,234 331,200 354,173 383,153 412,132 448,122 491,122 513,122 534,125 555,131 575,137 596,147 617,161 638,175 661,193 684,216 707,238 732,265 758,298 Z"/>
+ <glyph unicode="c" horiz-adv-x="727" d="M 800,162 C 800,151 800,141 799,133 798,124 797,117 796,112 794,106 792,101 790,97 787,92 782,86 774,78 765,69 751,59 731,47 711,34 689,23 664,14 639,4 611,-4 582,-10 553,-16 522,-19 491,-19 426,-19 369,-8 319,13 269,34 227,66 194,107 160,148 134,198 117,258 99,317 90,386 90,464 90,553 101,629 123,693 144,756 174,808 212,849 249,890 294,920 345,940 396,959 451,969 510,969 539,969 567,966 594,961 621,956 645,949 668,940 691,931 711,921 729,910 746,899 759,889 767,881 775,873 781,867 784,862 787,857 789,852 791,846 793,839 794,832 795,824 796,816 796,806 796,794 796,768 793,750 787,740 781,729 774,724 765,724 755,724 744,730 731,741 718,752 701,764 681,777 661,790 637,803 609,814 580,825 547,830 508,830 429,830 368,800 326,739 283,678 262,589 262,473 262,415 268,364 279,321 290,277 306,240 327,211 348,182 375,160 406,146 437,131 472,124 512,124 550,124 583,130 612,142 641,154 666,167 687,182 708,196 725,209 740,221 754,232 765,238 773,238 778,238 782,237 785,234 788,231 791,227 794,221 796,214 798,206 799,197 800,187 800,175 800,162 Z"/>
+ <glyph unicode="a" horiz-adv-x="762" d="M 831,24 C 831,16 828,10 823,6 818,2 810,-1 801,-3 792,-5 778,-6 760,-6 743,-6 729,-5 719,-3 708,-1 701,2 696,6 691,10 689,16 689,24 L 689,114 C 650,72 606,39 558,16 509,-7 458,-19 404,-19 357,-19 314,-13 276,-1 237,12 205,30 178,53 151,76 130,105 115,139 100,173 92,212 92,255 92,306 102,350 123,387 144,424 173,455 212,480 251,505 298,523 354,536 410,548 473,554 543,554 L 667,554 667,624 C 667,659 663,689 656,716 649,743 637,765 621,783 604,800 583,814 557,823 531,832 499,836 461,836 420,836 384,831 352,822 319,812 291,801 267,790 242,778 222,767 206,758 189,748 177,743 169,743 164,743 159,744 155,747 151,750 148,754 145,759 142,764 139,771 138,780 137,788 136,797 136,807 136,824 137,837 140,847 142,856 148,865 157,874 166,883 181,893 203,905 225,916 250,927 279,937 308,946 339,954 373,961 407,967 441,970 476,970 541,970 596,963 641,948 686,933 723,912 751,884 779,855 799,820 812,778 825,736 831,687 831,631 Z M 667,435 L 526,435 C 481,435 441,431 408,424 375,416 347,405 325,390 303,375 287,357 277,336 266,315 261,290 261,263 261,216 276,179 306,152 335,124 377,110 430,110 473,110 514,121 551,143 588,165 626,199 667,244 Z"/>
+ <glyph unicode="X" horiz-adv-x="985" d="M 996,62 C 1005,47 1010,36 1012,27 1013,18 1011,12 1005,7 999,2 989,-2 976,-4 962,-5 944,-6 921,-6 900,-6 883,-6 871,-5 859,-4 850,-2 843,1 836,4 830,7 827,11 823,14 820,19 817,25 L 529,540 238,25 C 235,19 231,14 227,10 223,6 218,3 211,1 204,-2 194,-4 182,-5 170,-6 154,-6 134,-6 112,-6 95,-5 82,-4 69,-2 61,2 56,7 51,12 49,18 51,27 52,36 57,47 66,62 L 419,657 82,1232 C 74,1247 69,1259 67,1268 64,1277 66,1284 71,1289 76,1294 86,1297 99,1298 112,1299 131,1300 154,1300 174,1300 190,1300 203,1299 216,1298 226,1296 233,1294 240,1291 246,1288 249,1284 252,1279 256,1274 260,1269 L 538,785 814,1269 C 817,1274 821,1279 824,1284 827,1288 832,1291 839,1294 845,1296 854,1298 865,1299 876,1300 892,1300 911,1300 932,1300 949,1299 962,1298 975,1296 984,1293 990,1288 995,1283 997,1277 996,1268 995,1259 990,1247 982,1232 L 646,661 Z"/>
+ <glyph unicode="U" horiz-adv-x="1003" d="M 1145,478 C 1145,399 1134,329 1111,268 1088,206 1055,154 1012,111 969,68 917,36 856,14 795,-8 725,-19 647,-19 576,-19 511,-9 452,12 393,33 343,63 301,104 259,144 227,194 204,255 181,316 170,386 170,465 L 170,1268 C 170,1273 171,1278 174,1282 177,1286 181,1289 188,1292 195,1294 203,1296 214,1298 225,1299 239,1300 256,1300 272,1300 286,1299 297,1298 308,1296 317,1294 324,1292 330,1289 334,1286 337,1282 340,1278 341,1273 341,1268 L 341,486 C 341,426 348,374 363,329 378,284 399,247 427,218 454,188 488,166 527,151 566,136 609,128 658,128 708,128 753,135 792,150 831,165 864,187 891,216 918,245 938,282 953,325 967,368 974,419 974,477 L 974,1268 C 974,1273 975,1278 978,1282 981,1286 985,1289 992,1292 999,1294 1008,1296 1019,1298 1030,1299 1043,1300 1060,1300 1076,1300 1090,1299 1101,1298 1112,1296 1120,1294 1127,1292 1133,1289 1138,1286 1141,1282 1144,1278 1145,1273 1145,1268 Z"/>
+ <glyph unicode="T" horiz-adv-x="986" d="M 983,1220 C 983,1207 982,1196 981,1187 980,1178 978,1170 975,1165 972,1159 968,1155 964,1152 959,1149 954,1148 949,1148 L 585,1148 585,26 C 585,21 584,16 581,12 578,8 574,5 567,3 560,0 552,-2 541,-4 530,-5 516,-6 499,-6 483,-6 469,-5 458,-4 447,-2 438,0 431,3 424,5 420,8 417,12 414,16 413,21 413,26 L 413,1148 49,1148 C 44,1148 39,1149 35,1152 30,1155 27,1159 24,1165 21,1170 19,1178 18,1187 16,1196 15,1207 15,1220 15,1233 16,1244 18,1254 19,1263 21,1271 24,1277 27,1283 30,1287 35,1290 39,1293 44,1294 49,1294 L 949,1294 C 954,1294 959,1293 964,1290 968,1287 972,1283 975,1277 978,1271 980,1263 981,1254 982,1244 983,1233 983,1220 Z"/>
+ <glyph unicode="S" horiz-adv-x="813" d="M 867,363 C 867,302 856,248 834,201 811,154 780,114 741,81 701,48 654,23 601,6 547,-11 489,-19 427,-19 384,-19 344,-15 307,-8 270,-1 237,8 208,19 179,30 154,41 135,52 115,63 101,73 94,81 86,89 80,99 77,112 73,124 71,140 71,161 71,176 72,188 73,198 74,207 76,215 79,221 82,227 85,231 89,234 93,236 98,237 103,237 112,237 126,231 143,220 160,209 181,196 208,183 235,170 267,157 305,146 342,134 386,128 435,128 472,128 507,133 538,143 569,153 595,167 618,186 640,204 657,226 669,253 681,280 687,310 687,344 687,381 679,412 662,438 645,464 623,487 596,507 569,526 538,544 503,561 468,577 432,594 395,611 358,628 323,646 288,667 253,688 222,712 195,740 168,768 146,801 129,839 112,876 103,921 103,974 103,1028 113,1076 133,1119 152,1161 180,1196 215,1225 250,1254 291,1276 340,1291 388,1306 440,1313 496,1313 525,1313 554,1311 583,1306 612,1301 639,1294 665,1286 690,1277 713,1268 733,1258 753,1247 766,1239 773,1233 779,1226 783,1221 785,1218 787,1214 789,1209 790,1204 791,1198 792,1191 793,1183 794,1175 794,1165 794,1152 794,1140 794,1129 793,1120 792,1111 790,1103 788,1097 786,1090 783,1086 780,1083 776,1080 772,1078 767,1078 760,1078 748,1083 733,1092 717,1101 698,1112 675,1124 652,1135 626,1146 595,1156 564,1165 529,1170 490,1170 454,1170 423,1165 396,1156 369,1146 347,1133 330,1117 313,1101 300,1082 291,1060 282,1038 278,1015 278,990 278,954 286,923 303,897 320,871 342,848 370,828 397,808 429,790 464,773 499,756 535,740 572,723 609,706 645,687 680,667 715,646 747,622 775,595 802,567 825,534 842,497 859,459 867,414 867,363 Z"/>
+ <glyph unicode="R" horiz-adv-x="882" d="M 1035,26 C 1035,21 1034,16 1032,12 1030,8 1026,5 1019,2 1012,-1 1003,-3 991,-4 979,-5 963,-6 943,-6 926,-6 912,-5 901,-4 890,-3 881,-1 874,3 867,6 862,10 859,15 855,20 852,27 849,35 L 730,340 C 716,375 702,407 687,436 672,465 654,490 633,511 612,532 588,548 560,560 532,571 498,577 459,577 L 344,577 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 511,1294 C 544,1294 571,1293 593,1292 614,1290 634,1288 651,1286 701,1277 745,1264 784,1245 822,1226 854,1203 880,1174 906,1145 926,1113 939,1076 952,1039 958,998 958,953 958,910 952,871 941,837 929,802 912,772 890,746 868,719 842,696 811,677 780,658 746,641 708,628 729,619 749,607 766,593 783,578 800,561 815,541 830,521 844,498 857,472 870,446 884,417 897,384 L 1013,99 C 1022,75 1028,58 1031,49 1034,39 1035,31 1035,26 Z M 776,935 C 776,986 765,1029 742,1064 719,1099 681,1124 628,1139 611,1144 593,1147 572,1149 551,1151 523,1152 489,1152 L 344,1152 344,716 512,716 C 557,716 597,722 630,733 663,744 690,759 712,779 734,798 750,821 761,848 771,875 776,904 776,935 Z"/>
+ <glyph unicode="P" horiz-adv-x="813" d="M 967,915 C 967,850 956,792 935,740 914,688 883,644 844,607 804,570 755,542 698,522 640,502 571,492 491,492 L 344,492 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1220 C 172,1247 179,1266 193,1277 207,1288 223,1294 240,1294 L 517,1294 C 545,1294 572,1293 598,1291 623,1288 654,1283 689,1276 724,1268 759,1254 796,1233 832,1212 863,1186 888,1155 913,1124 933,1089 947,1049 960,1008 967,964 967,915 Z M 786,901 C 786,954 776,998 757,1033 737,1068 713,1095 684,1112 655,1129 625,1140 594,1145 563,1150 532,1152 503,1152 L 344,1152 344,633 499,633 C 551,633 594,640 629,653 663,666 692,685 715,709 738,732 756,761 768,794 780,827 786,862 786,901 Z"/>
+ <glyph unicode="N" horiz-adv-x="1003" d="M 1150,71 C 1150,58 1148,46 1144,37 1139,28 1134,20 1127,14 1120,8 1112,4 1103,1 1094,-2 1086,-3 1077,-3 L 1022,-3 C 1005,-3 990,-1 977,3 964,6 951,13 940,23 928,32 916,45 905,62 893,79 880,100 866,126 L 458,862 C 437,900 415,940 394,982 372,1023 352,1064 333,1103 L 331,1103 C 332,1055 333,1006 334,956 335,906 335,856 335,807 L 335,26 C 335,21 334,17 331,13 328,8 324,5 318,3 311,0 303,-2 293,-4 282,-5 269,-6 253,-6 237,-6 224,-5 214,-4 203,-2 195,0 189,3 183,5 179,8 176,13 173,17 172,21 172,26 L 172,1220 C 172,1247 179,1266 194,1277 209,1288 225,1294 242,1294 L 324,1294 C 343,1294 360,1292 373,1289 386,1286 397,1280 408,1273 418,1265 428,1254 438,1241 447,1227 458,1210 469,1189 L 783,621 C 802,586 821,553 839,520 857,487 874,454 891,422 908,390 924,359 941,328 957,297 973,265 989,234 L 990,234 C 989,287 988,342 988,399 987,456 987,510 987,563 L 987,1265 C 987,1270 988,1274 991,1278 994,1282 998,1286 1005,1289 1011,1292 1019,1294 1030,1295 1040,1296 1053,1297 1070,1297 1085,1297 1097,1296 1108,1295 1119,1294 1127,1292 1133,1289 1139,1286 1143,1282 1146,1278 1149,1274 1150,1270 1150,1265 Z"/>
+ <glyph unicode="M" horiz-adv-x="1435" d="M 1579,26 C 1579,21 1578,16 1575,12 1572,8 1568,5 1561,3 1554,0 1546,-2 1536,-4 1525,-5 1512,-6 1495,-6 1480,-6 1467,-5 1456,-4 1445,-2 1436,0 1430,3 1423,5 1419,8 1416,12 1413,16 1412,21 1412,26 L 1412,1153 1410,1153 949,21 C 947,16 944,12 941,9 937,6 932,3 925,1 918,-2 909,-4 900,-5 890,-6 878,-6 865,-6 851,-6 839,-5 829,-4 819,-3 811,-1 804,2 797,4 792,7 789,10 785,13 782,17 781,21 L 340,1153 339,1153 339,26 C 339,21 338,16 335,12 332,8 328,5 321,3 314,0 306,-2 295,-4 284,-5 271,-6 254,-6 238,-6 225,-5 214,-4 203,-2 195,0 189,3 182,5 178,8 176,12 173,16 172,21 172,26 L 172,1216 C 172,1244 179,1264 194,1276 209,1288 225,1294 243,1294 L 347,1294 C 368,1294 387,1292 403,1288 419,1284 433,1278 445,1269 457,1260 467,1249 475,1236 483,1223 490,1207 496,1189 L 871,252 876,252 1266,1186 C 1273,1206 1281,1223 1290,1237 1299,1251 1308,1262 1319,1271 1329,1279 1340,1285 1353,1289 1366,1292 1380,1294 1397,1294 L 1506,1294 C 1516,1294 1526,1293 1535,1290 1544,1287 1551,1282 1558,1276 1564,1269 1569,1261 1573,1252 1577,1242 1579,1230 1579,1216 Z"/>
+ <glyph unicode="I" horiz-adv-x="191" d="M 344,26 C 344,21 343,16 340,12 337,8 333,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 242,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1268 C 172,1273 174,1278 177,1282 180,1286 185,1289 192,1292 199,1294 208,1296 219,1298 230,1299 243,1300 258,1300 275,1300 289,1299 300,1298 311,1296 319,1294 326,1292 333,1289 337,1286 340,1282 343,1278 344,1273 344,1268 Z"/>
+ <glyph unicode="G" horiz-adv-x="1073" d="M 1144,1118 C 1144,1105 1143,1094 1142,1085 1141,1075 1139,1067 1136,1061 1133,1054 1130,1050 1126,1047 1122,1044 1118,1043 1113,1043 1105,1043 1092,1049 1073,1062 1054,1075 1029,1089 998,1104 967,1119 929,1133 886,1146 842,1159 790,1165 730,1165 659,1165 595,1152 538,1126 481,1100 433,1064 394,1018 355,972 325,917 304,854 283,791 272,722 272,648 272,565 284,492 307,428 330,364 361,310 402,266 443,222 491,189 548,166 604,143 666,132 733,132 773,132 814,137 855,147 896,156 934,171 969,190 L 969,567 669,567 C 658,567 649,573 644,584 638,595 635,613 635,637 635,650 636,661 637,670 638,679 641,686 644,692 647,697 650,701 654,704 658,707 663,708 669,708 L 1080,708 C 1087,708 1095,707 1102,704 1109,701 1116,697 1122,692 1128,687 1133,679 1136,670 1139,661 1141,650 1141,638 L 1141,145 C 1141,128 1138,113 1132,100 1126,87 1113,76 1094,67 1075,57 1050,46 1019,35 988,24 957,14 924,6 891,-2 858,-8 825,-12 792,-16 759,-18 726,-18 626,-18 537,-3 458,29 379,60 313,104 259,161 204,218 163,287 134,367 105,447 91,536 91,635 91,738 107,831 138,914 169,997 212,1068 269,1127 325,1186 393,1231 472,1264 551,1296 638,1312 734,1312 783,1312 830,1308 873,1299 916,1290 955,1280 989,1269 1022,1257 1051,1244 1074,1231 1097,1217 1112,1206 1121,1197 1130,1188 1136,1178 1139,1167 1142,1156 1144,1139 1144,1118 Z"/>
+ <glyph unicode="D" horiz-adv-x="1020" d="M 1167,666 C 1167,554 1153,456 1124,373 1095,289 1054,220 999,165 944,110 876,68 796,41 716,14 621,0 510,0 L 236,0 C 221,0 206,5 193,16 179,26 172,44 172,70 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 529,1294 C 641,1294 736,1280 813,1251 890,1222 955,1180 1008,1126 1060,1071 1100,1005 1127,928 1154,851 1167,763 1167,666 Z M 986,659 C 986,729 977,794 960,855 943,915 916,967 879,1011 842,1055 795,1089 738,1114 681,1139 608,1151 519,1151 L 344,1151 344,144 521,144 C 604,144 673,154 730,175 787,196 834,227 872,270 910,313 939,366 958,431 977,495 986,571 986,659 Z"/>
+ <glyph unicode="C" horiz-adv-x="952" d="M 1036,183 C 1036,172 1036,163 1035,155 1034,147 1033,140 1032,134 1030,128 1028,123 1025,118 1022,113 1018,108 1011,101 1004,94 990,84 969,71 948,57 921,44 890,31 858,18 822,7 781,-3 740,-12 695,-16 646,-16 562,-16 486,-2 419,26 351,54 293,95 246,150 198,205 161,272 136,353 110,433 97,525 97,630 97,737 111,833 139,917 166,1001 205,1072 255,1131 305,1189 365,1233 435,1264 504,1295 581,1310 666,1310 703,1310 740,1307 775,1300 810,1293 843,1284 873,1273 903,1262 930,1250 953,1236 976,1222 993,1211 1002,1202 1011,1193 1016,1186 1019,1181 1022,1176 1024,1171 1026,1165 1027,1158 1029,1151 1030,1142 1031,1133 1031,1123 1031,1111 1031,1098 1030,1086 1029,1077 1028,1068 1026,1060 1023,1054 1020,1047 1017,1043 1014,1040 1010,1037 1005,1035 1000,1035 991,1035 978,1042 961,1055 944,1068 923,1082 897,1098 870,1113 838,1128 801,1141 763,1154 718,1160 665,1160 608,1160 556,1149 509,1126 462,1103 421,1069 388,1024 355,979 329,925 311,861 292,796 283,723 283,640 283,558 292,486 310,423 327,360 353,307 386,265 419,222 459,190 507,169 555,147 609,136 670,136 721,136 766,142 805,155 843,168 876,182 903,198 930,213 952,227 969,240 986,253 1000,259 1010,259 1015,259 1019,258 1022,256 1025,254 1028,250 1030,245 1032,239 1034,231 1035,221 1036,211 1036,198 1036,183 Z"/>
+ <glyph unicode="A" horiz-adv-x="1124" d="M 1141,61 C 1146,46 1149,35 1150,26 1150,17 1147,10 1142,5 1137,0 1128,-3 1116,-4 1103,-5 1087,-6 1066,-6 1045,-6 1029,-6 1017,-5 1004,-4 995,-2 989,1 982,3 978,6 975,10 972,14 969,19 966,25 L 855,340 317,340 211,29 C 209,23 206,18 203,14 200,9 195,6 189,3 182,-1 173,-3 162,-4 150,-5 135,-6 116,-6 97,-6 81,-5 69,-4 56,-2 48,1 43,6 38,11 35,18 36,27 36,36 39,47 44,62 L 478,1264 C 481,1271 484,1277 489,1282 493,1287 499,1290 508,1293 516,1296 527,1298 540,1299 553,1300 569,1300 589,1300 610,1300 628,1300 642,1299 656,1298 667,1296 676,1293 685,1290 691,1287 696,1282 701,1277 704,1270 707,1263 Z M 584,1122 L 583,1122 360,477 810,477 Z"/>
+ <glyph unicode="9" horiz-adv-x="882" d="M 934,698 C 934,642 931,585 924,528 917,471 906,416 890,363 874,310 853,260 826,214 799,167 765,127 724,92 683,57 634,30 578,11 521,-9 456,-19 381,-19 352,-19 325,-17 298,-14 271,-10 246,-5 225,0 203,5 185,11 170,17 155,23 145,29 138,35 131,41 127,49 124,60 121,70 119,84 119,101 119,116 120,127 121,136 122,145 123,151 125,156 127,161 130,164 134,166 137,167 142,168 147,168 154,168 165,166 178,161 191,156 208,150 229,144 249,138 273,133 300,128 327,123 358,120 392,120 457,120 512,133 559,158 605,183 643,216 672,258 701,300 723,349 738,404 753,459 761,518 762,579 727,558 684,540 635,524 586,508 529,500 465,500 393,500 333,510 284,530 235,549 195,576 166,610 136,644 115,684 102,731 89,778 82,829 82,884 82,941 90,996 107,1048 124,1099 150,1145 185,1184 220,1223 265,1255 320,1278 375,1301 440,1313 516,1313 570,1313 618,1306 660,1293 701,1279 737,1259 768,1234 799,1208 825,1177 846,1141 867,1104 885,1063 898,1017 911,971 920,921 926,868 931,814 934,757 934,698 Z M 759,717 C 759,802 753,874 742,933 731,991 714,1038 692,1074 670,1110 643,1136 611,1152 579,1168 542,1176 500,1176 457,1176 420,1168 389,1153 358,1137 333,1116 314,1090 294,1063 279,1033 270,1000 261,967 256,932 256,897 256,858 260,822 269,789 277,756 290,729 309,706 328,683 352,666 382,654 412,641 449,635 493,635 543,635 591,643 638,658 685,673 725,692 759,717 Z"/>
+ <glyph unicode="8" horiz-adv-x="900" d="M 954,332 C 954,276 944,226 924,183 904,139 875,102 838,72 800,42 753,19 698,4 643,-11 579,-19 508,-19 441,-19 382,-12 329,2 276,16 232,37 195,64 158,91 130,125 111,165 92,205 82,251 82,302 82,343 89,380 102,414 115,448 135,479 160,508 185,537 215,564 252,589 289,614 330,637 376,660 336,681 301,703 270,726 239,749 213,774 192,801 171,828 155,856 144,887 133,918 127,951 127,987 127,1032 135,1075 152,1115 168,1154 193,1189 226,1218 259,1247 301,1271 352,1288 403,1305 462,1313 530,1313 595,1313 652,1305 700,1290 747,1274 787,1253 818,1226 849,1199 871,1167 886,1130 901,1093 908,1054 908,1012 908,978 903,945 892,914 881,883 864,853 843,825 822,797 796,771 765,747 734,722 698,699 658,678 705,655 748,631 785,606 822,581 853,555 878,527 903,498 922,468 935,437 948,405 954,370 954,332 Z M 738,996 C 738,1024 733,1049 724,1072 714,1095 700,1114 681,1130 662,1146 639,1158 612,1167 584,1175 552,1179 517,1179 445,1179 391,1163 354,1130 317,1097 298,1053 298,996 298,970 303,946 312,924 321,901 335,880 354,860 373,840 397,821 426,802 455,783 489,763 529,742 596,777 648,815 684,857 720,899 738,945 738,996 Z M 780,314 C 780,345 774,373 763,398 752,423 735,446 712,468 689,489 660,510 626,531 591,551 551,572 506,594 464,573 427,553 396,532 364,511 338,490 318,468 297,446 282,423 272,399 261,374 256,347 256,318 256,253 278,203 323,168 367,133 433,115 521,115 606,115 671,133 715,169 758,204 780,253 780,314 Z"/>
+ <glyph unicode="7" horiz-adv-x="865" d="M 943,1220 C 943,1208 943,1197 942,1188 941,1178 939,1169 938,1160 936,1151 934,1142 931,1134 928,1125 924,1116 920,1107 L 454,33 C 451,25 447,19 442,14 437,9 430,5 423,2 415,-2 405,-4 393,-5 381,-6 366,-6 349,-6 326,-6 309,-5 296,-3 283,-1 274,2 269,7 263,11 260,16 261,23 262,29 264,36 268,45 L 758,1143 137,1143 C 124,1143 115,1150 109,1163 102,1176 99,1195 99,1219 99,1232 100,1243 102,1252 103,1261 106,1269 109,1276 112,1282 116,1287 121,1290 126,1293 131,1294 137,1294 L 891,1294 C 900,1294 909,1293 916,1291 923,1289 928,1285 932,1279 935,1273 938,1265 940,1256 942,1247 943,1235 943,1220 Z"/>
+ <glyph unicode="6" horiz-adv-x="865" d="M 957,419 C 957,362 948,308 931,255 914,202 887,155 851,115 815,74 769,42 714,18 659,-7 593,-19 518,-19 464,-19 416,-12 375,1 334,14 298,33 267,58 236,83 211,113 191,149 170,185 154,226 142,272 129,318 120,368 115,423 110,478 107,536 107,599 107,654 110,710 116,767 122,824 133,878 148,931 163,984 184,1033 211,1080 237,1126 270,1166 310,1201 349,1235 397,1262 452,1282 507,1302 572,1312 645,1312 670,1312 695,1311 720,1308 745,1305 769,1301 790,1296 811,1291 829,1285 844,1279 859,1273 868,1268 873,1265 878,1261 881,1257 884,1253 886,1248 888,1244 889,1239 890,1234 891,1228 892,1222 893,1215 893,1207 893,1198 893,1186 893,1176 893,1167 892,1158 891,1151 889,1146 886,1141 883,1137 880,1134 876,1131 871,1130 865,1130 858,1130 848,1132 835,1137 822,1142 807,1147 789,1153 771,1158 749,1163 724,1168 698,1173 668,1175 634,1175 572,1175 519,1162 474,1137 429,1112 393,1078 365,1035 336,992 315,943 302,887 288,830 280,771 278,710 295,720 315,730 337,740 358,750 382,759 408,767 433,775 460,782 489,787 518,792 548,794 581,794 651,794 710,785 758,766 806,747 845,720 875,687 904,653 925,613 938,568 951,522 957,472 957,419 Z M 783,403 C 783,442 779,477 772,509 764,540 751,567 733,589 715,611 691,628 661,640 631,652 594,658 550,658 525,658 501,656 476,652 451,647 428,641 405,634 382,626 360,617 339,607 318,596 298,585 281,573 281,487 287,415 298,357 309,299 325,253 346,218 367,183 393,158 424,143 455,128 492,120 534,120 577,120 614,128 645,144 676,160 702,182 723,209 744,236 759,266 769,300 778,333 783,368 783,403 Z"/>
+ <glyph unicode="5" horiz-adv-x="848" d="M 918,416 C 918,347 906,285 883,231 860,177 827,132 784,95 741,58 691,29 632,10 573,-9 507,-19 435,-19 395,-19 357,-16 321,-11 285,-5 253,2 225,11 197,19 174,27 156,35 138,43 127,49 122,54 117,59 113,63 111,67 109,71 107,76 106,82 104,87 103,94 102,103 101,112 101,122 101,134 101,145 102,156 103,165 104,174 105,181 108,187 111,192 114,196 118,199 121,202 125,203 130,203 137,203 147,199 161,191 175,182 194,173 218,164 241,154 271,145 306,136 341,127 382,123 430,123 475,123 516,128 553,139 590,150 623,166 650,189 677,212 698,240 713,275 728,309 736,351 736,400 736,441 730,478 717,510 704,541 684,568 657,589 630,610 595,625 554,636 513,646 463,651 406,651 365,651 330,649 301,645 272,641 244,639 219,639 200,639 187,643 179,652 171,661 167,677 167,702 L 167,1229 C 167,1251 172,1267 183,1278 193,1289 208,1294 227,1294 L 800,1294 C 805,1294 811,1293 816,1290 821,1287 825,1282 828,1276 831,1270 834,1262 836,1253 837,1244 838,1233 838,1220 838,1196 835,1177 828,1164 821,1151 812,1144 800,1144 L 317,1144 317,781 C 340,784 364,786 389,787 413,788 441,788 473,788 547,788 612,779 667,762 722,744 769,719 806,687 843,654 871,615 890,569 909,523 918,472 918,416 Z"/>
+ <glyph unicode="4" horiz-adv-x="951" d="M 979,368 C 979,346 976,329 969,316 962,303 953,297 941,297 L 795,297 795,25 C 795,20 794,15 791,12 788,8 784,5 777,2 770,-1 762,-3 751,-4 740,-5 727,-6 710,-6 694,-6 681,-5 670,-4 659,-3 651,-1 645,2 638,5 634,8 632,12 629,15 628,20 628,25 L 628,297 94,297 C 86,297 79,298 74,300 69,302 64,306 60,311 55,316 52,324 51,334 49,344 48,357 48,373 48,386 48,397 49,407 50,417 51,426 53,435 55,443 58,451 61,459 64,466 68,474 73,483 L 539,1269 C 542,1274 547,1279 554,1283 560,1287 568,1290 578,1293 588,1296 600,1298 615,1299 630,1300 647,1300 667,1300 689,1300 708,1299 725,1298 741,1296 754,1294 764,1291 774,1288 782,1285 787,1281 792,1276 795,1271 795,1265 L 795,439 941,439 C 952,439 962,433 969,422 976,410 979,392 979,368 Z M 628,1149 L 626,1149 205,439 628,439 Z"/>
+ <glyph unicode="3" horiz-adv-x="831" d="M 914,370 C 914,311 904,257 883,210 862,162 833,121 794,87 755,53 708,27 651,9 594,-10 530,-19 459,-19 416,-19 375,-16 338,-9 300,-2 266,7 237,17 208,26 183,36 164,47 145,57 133,64 128,69 123,74 119,78 116,83 113,88 111,93 109,100 107,107 106,115 105,125 104,134 103,146 103,160 103,184 105,201 110,210 115,219 121,224 130,224 136,224 148,219 166,208 183,197 206,186 234,174 261,161 294,150 331,139 368,128 409,123 454,123 498,123 537,129 570,140 603,151 631,167 654,188 677,209 694,233 705,262 716,290 722,321 722,354 722,391 715,424 701,453 686,482 665,508 638,529 610,550 576,567 536,578 495,589 449,595 398,595 L 275,595 C 270,595 265,596 260,599 255,601 250,605 247,610 243,615 240,622 238,631 235,640 234,651 234,665 234,678 235,688 237,697 239,705 242,712 246,717 249,722 253,725 258,728 263,730 268,731 274,731 L 387,731 C 431,731 471,737 506,748 541,759 570,776 595,797 619,818 638,844 651,874 664,903 670,936 670,973 670,1000 666,1025 657,1050 648,1074 635,1095 618,1113 601,1131 579,1145 552,1156 525,1166 493,1171 458,1171 419,1171 384,1165 352,1154 319,1142 290,1129 265,1116 240,1103 219,1090 202,1079 185,1067 174,1061 167,1061 162,1061 158,1062 155,1064 151,1065 148,1069 146,1074 143,1079 142,1086 141,1095 140,1104 139,1115 139,1130 139,1140 139,1149 140,1157 141,1164 142,1171 144,1177 146,1182 148,1187 151,1192 154,1197 158,1202 165,1209 171,1215 184,1224 203,1236 222,1248 246,1260 275,1272 303,1283 336,1293 373,1301 410,1309 449,1313 492,1313 552,1313 605,1305 650,1290 695,1275 733,1253 764,1225 794,1197 817,1164 832,1125 847,1086 854,1042 854,995 854,954 849,917 838,882 827,847 812,816 791,789 770,762 745,739 715,720 685,701 650,687 611,680 L 611,678 C 656,673 697,662 734,645 771,627 802,605 829,578 856,551 877,520 892,485 907,449 914,411 914,370 Z"/>
+ <glyph unicode="2" horiz-adv-x="830" d="M 924,74 C 924,62 923,51 922,42 920,33 918,25 915,19 912,12 908,8 903,5 898,2 892,0 886,0 L 171,0 C 162,0 154,1 147,4 140,6 134,10 129,15 124,20 120,28 118,38 115,48 114,60 114,75 114,88 115,100 116,110 117,120 119,129 122,137 125,144 130,152 135,160 140,167 146,175 154,184 L 405,450 C 463,511 510,566 545,615 580,664 607,708 626,748 645,788 657,824 663,857 669,890 672,920 672,949 672,978 667,1005 658,1031 649,1056 635,1079 618,1098 600,1117 578,1133 551,1144 524,1155 494,1161 459,1161 418,1161 382,1155 350,1144 317,1133 289,1120 265,1107 240,1094 220,1081 204,1070 187,1059 175,1053 167,1053 162,1053 158,1054 155,1057 151,1060 148,1064 146,1070 143,1076 141,1084 140,1094 139,1104 138,1116 138,1130 138,1140 138,1149 139,1156 140,1163 141,1170 143,1175 144,1180 146,1185 149,1190 152,1195 157,1201 165,1208 173,1215 187,1224 207,1236 226,1248 251,1260 281,1272 310,1283 343,1293 379,1301 414,1309 452,1313 491,1313 554,1313 609,1304 656,1287 703,1269 742,1245 773,1214 804,1183 827,1148 842,1107 857,1066 865,1023 865,977 865,936 861,895 854,854 847,813 831,768 808,721 784,673 750,620 705,562 660,503 601,436 527,360 L 322,146 885,146 C 890,146 896,145 901,142 906,139 910,134 914,128 917,122 920,115 922,106 923,97 924,86 924,74 Z"/>
+ <glyph unicode="1" horiz-adv-x="761" d="M 927,68 C 927,55 926,45 924,36 922,27 919,20 916,15 913,10 909,6 905,4 900,1 896,0 891,0 L 215,0 C 210,0 206,1 202,4 198,6 194,10 191,15 187,20 184,27 182,36 180,45 179,55 179,68 179,80 180,90 182,99 184,108 187,115 190,121 193,126 196,131 201,134 205,137 210,138 215,138 L 485,138 485,1122 235,973 C 222,966 212,962 205,961 197,960 191,961 186,966 181,970 178,977 177,987 175,997 174,1010 174,1025 174,1036 175,1046 176,1054 177,1062 178,1069 180,1074 182,1079 185,1084 189,1088 192,1092 197,1096 203,1100 L 501,1291 C 504,1293 507,1295 511,1296 515,1297 520,1299 526,1300 532,1301 539,1302 547,1303 555,1303 565,1303 577,1303 593,1303 606,1302 617,1301 628,1300 636,1298 642,1296 648,1293 652,1290 654,1287 656,1283 657,1279 657,1275 L 657,138 891,138 C 896,138 901,137 906,134 911,131 915,126 918,121 921,115 923,108 925,99 926,90 927,80 927,68 Z"/>
+ <glyph unicode="0" horiz-adv-x="900" d="M 967,650 C 967,551 959,460 944,378 928,296 902,226 866,167 829,108 782,62 723,30 664,-3 592,-19 506,-19 425,-19 356,-5 301,25 245,54 200,96 166,153 132,209 108,278 94,361 79,443 72,537 72,644 72,743 80,833 96,916 112,998 138,1069 174,1128 210,1187 257,1232 316,1265 375,1297 447,1313 532,1313 614,1313 683,1299 739,1270 794,1241 839,1198 873,1142 907,1085 931,1016 946,934 960,851 967,757 967,650 Z M 791,638 C 791,703 789,761 784,812 779,863 773,909 764,948 755,987 743,1021 729,1050 714,1078 697,1101 677,1120 657,1138 634,1151 609,1160 583,1168 554,1172 522,1172 465,1172 419,1159 384,1132 349,1105 321,1069 301,1022 280,975 266,921 259,858 252,795 248,728 248,656 248,559 253,477 263,410 273,342 289,287 311,244 332,201 360,170 394,151 427,132 468,122 516,122 553,122 586,128 615,140 643,152 667,169 688,192 708,214 725,241 738,272 751,303 762,338 770,376 778,414 784,455 787,500 790,544 791,590 791,638 Z"/>
+ <glyph unicode="-" horiz-adv-x="519" d="M 558,505 C 558,479 555,461 549,451 543,441 534,436 523,436 L 105,436 C 93,436 84,441 78,452 72,462 69,480 69,505 69,530 72,548 78,558 84,568 93,573 105,573 L 523,573 C 528,573 533,572 538,570 542,568 546,564 549,559 552,553 554,546 556,537 557,528 558,518 558,505 Z"/>
+ <glyph unicode=")" horiz-adv-x="381" d="M 487,537 C 487,462 482,387 473,314 464,240 450,167 431,95 412,23 390,-48 363,-118 336,-187 304,-256 268,-324 266,-327 263,-330 259,-333 255,-336 250,-338 244,-340 237,-342 230,-343 221,-344 212,-345 202,-345 190,-345 173,-345 159,-344 150,-343 140,-341 133,-338 129,-335 124,-331 122,-326 123,-321 123,-315 125,-308 128,-300 189,-165 236,-28 267,114 298,255 314,397 314,540 314,683 298,825 267,966 236,1107 189,1244 126,1378 123,1384 122,1390 123,1395 124,1400 127,1405 132,1408 137,1411 145,1414 154,1416 163,1418 176,1419 191,1419 205,1419 217,1419 226,1418 235,1417 243,1415 249,1413 254,1411 258,1409 261,1407 264,1405 266,1403 267,1400 336,1263 390,1123 429,979 468,834 487,687 487,537 Z"/>
+ <glyph unicode="(" horiz-adv-x="381" d="M 495,1378 C 432,1244 385,1107 354,966 323,825 307,683 307,540 307,397 323,255 355,114 386,-27 432,-165 493,-300 496,-308 498,-315 499,-321 499,-326 497,-331 492,-335 487,-338 480,-341 471,-343 461,-344 448,-345 431,-345 419,-345 409,-345 400,-344 391,-343 384,-342 378,-340 371,-338 366,-336 362,-333 358,-330 355,-327 353,-324 317,-256 285,-187 258,-118 231,-48 208,23 189,95 170,167 156,240 147,314 138,387 133,462 133,537 133,612 138,687 149,760 159,833 174,906 193,979 212,1051 235,1122 262,1192 289,1262 320,1331 354,1400 355,1403 357,1405 360,1407 363,1409 367,1411 372,1413 377,1415 385,1417 394,1418 403,1419 415,1419 430,1419 445,1419 458,1418 467,1416 476,1414 484,1411 489,1408 494,1405 497,1400 498,1395 499,1390 498,1384 495,1378 Z"/>
+ <glyph unicode=" " horiz-adv-x="467"/>
+ </font>
+ </defs>
+ <defs class="TextShapeIndex">
+ <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137"/>
+ </defs>
+ <defs class="EmbeddedBulletChars">
+ <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
+ </g>
+ <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
+ </g>
+ <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
+ </g>
+ <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
+ </g>
+ <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
+ </g>
+ <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
+ </g>
+ <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
+ </g>
+ <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
+ </g>
+ <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
+ </g>
+ <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
+ </g>
+ </defs>
+ <defs class="TextEmbeddedBitmaps"/>
+ <g class="SlideGroup">
+ <g>
+ <g id="container-id1">
+ <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
+ <g class="Page">
+ <g class="Group">
+ <g class="com.sun.star.drawing.LineShape">
+ <g id="id3">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6314" y="6586" width="108" height="1971"/>
+ <path fill="none" stroke="rgb(99,160,215)" stroke-width="106" stroke-linejoin="miter" d="M 6367,6587 L 6368,8555"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.LineShape">
+ <g id="id4">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6919" y="6584" width="108" height="1971"/>
+ <path fill="none" stroke="rgb(99,160,215)" stroke-width="106" stroke-linejoin="miter" d="M 6972,6585 L 6973,8553"/>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id5">
+ <rect class="BoundingBox" stroke="none" fill="none" x="500" y="929" width="9086" height="12584"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="9" stroke-linejoin="miter" d="M 5043,13507 L 505,13507 505,934 9580,934 9580,13507 5043,13507 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id6">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1372" y="9585" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 4992,9603 L 8594,9603 8594,12781 1390,12781 1390,9603 4992,9603 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4992,9603 L 8594,9603 8594,12781 1390,12781 1390,9603 4992,9603 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id7">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5281" y="10551" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 6699,11735 L 5299,11735 5299,10569 8099,10569 8099,11735 6699,11735 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 6699,11735 L 5299,11735 5299,10569 8099,10569 8099,11735 6699,11735 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6160" y="10873"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6050" y="11226"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5768" y="11579"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8280</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id8">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6238" y="9372" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 6691,9815 L 6247,9815 6247,9381 7134,9381 7134,9815 6691,9815 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6691,9815 L 6247,9815 6247,9381 7134,9381 7134,9815 6691,9815 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6416" y="9744"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id9">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6751" y="8554" width="39" height="783"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6769,9318 L 6771,8572"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6769,9318 L 6769,9318 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6771,8572 L 6771,8572 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id10">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6685" y="9310" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6769,9319 L 6843,9319 6843,9418 6694,9418 6694,9319 6769,9319 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6769,9319 L 6843,9319 6843,9418 6694,9418 6694,9319 6769,9319 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id11">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6474" y="9312" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6558,9321 L 6632,9321 6632,9420 6483,9420 6483,9321 6558,9321 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6558,9321 L 6632,9321 6632,9420 6483,9420 6483,9321 6558,9321 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id12">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6559" y="8554" width="43" height="785"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6583,9320 L 6577,8572"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6583,9320 L 6583,9320 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6577,8572 L 6577,8572 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id13">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7349" y="9819" width="557" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 7627,9819 L 7904,9980 7766,9980 7766,10390 7904,10390 7627,10552 7349,10390 7488,10390 7488,9980 7349,9980 7627,9819 Z M 7904,9819 L 7904,9819 Z M 7349,10552 L 7349,10552 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id14">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7388" y="10016" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 7626,10359 L 7388,10359 7388,10016 7863,10016 7863,10359 7626,10359 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7397" y="10301"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id15">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6372" y="9823" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 6650,9823 L 6927,9984 6789,9984 6789,10394 6927,10394 6650,10556 6372,10394 6511,10394 6511,9984 6372,9984 6650,9823 Z M 6927,9823 L 6927,9823 Z M 6372,10556 L 6372,10556 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id16">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6410" y="10020" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 6648,10363 L 6410,10363 6410,10020 6885,10020 6885,10363 6648,10363 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6419" y="10305"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id17">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5418" y="9832" width="558" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 5697,9832 L 5974,9993 5836,9993 5836,10403 5974,10403 5697,10565 5419,10403 5558,10403 5558,9993 5419,9993 5697,9832 Z M 5974,9832 L 5974,9832 Z M 5419,10565 L 5419,10565 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id18">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5458" y="10029" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 5696,10372 L 5458,10372 5458,10029 5933,10029 5933,10372 5696,10372 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5467" y="10314"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id19">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1962" y="10566" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 3380,11750 L 1980,11750 1980,10584 4780,10584 4780,11750 3380,11750 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3380,11750 L 1980,11750 1980,10584 4780,10584 4780,11750 3380,11750 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2841" y="10888"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2731" y="11241"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2449" y="11594"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8280</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id20">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4034" y="9824" width="557" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 4313,9824 L 4590,9985 4452,9985 4452,10395 4590,10395 4313,10557 4035,10395 4174,10395 4174,9985 4035,9985 4313,9824 Z M 4590,9824 L 4590,9824 Z M 4035,10557 L 4035,10557 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id21">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4073" y="10021" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 4311,10364 L 4073,10364 4073,10021 4548,10021 4548,10364 4311,10364 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4082" y="10306"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id22">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3056" y="9829" width="557" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 3335,9829 L 3612,9990 3474,9990 3474,10400 3612,10400 3335,10562 3057,10400 3196,10400 3196,9990 3057,9990 3335,9829 Z M 3612,9829 L 3612,9829 Z M 3057,10562 L 3057,10562 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id23">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3096" y="10026" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 3334,10369 L 3096,10369 3096,10026 3571,10026 3571,10369 3334,10369 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3105" y="10311"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id24">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6153" y="8462" width="997" height="234"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6206,8642 L 6206,8642 6206,8635 6206,8629 6207,8622 6207,8616 6208,8610 6209,8603 6209,8597 6211,8591 6212,8585 6213,8579 6214,8574 6216,8568 6218,8563 6219,8558 6221,8554 6223,8549 6225,8545 6227,8541 6229,8537 6232,8534 6234,8531 6236,8528 6239,8525 6241,8523 6244,8521 6246,8520 6249,8519 6252,8518 6254,8517 6257,8517 7044,8515 7044,8515 7047,8515 7049,8516 7052,8517 7055,8518 7057,8519 7060,8521 7062,8523 7065,8526 7067,8529 7069,8532 7072,8535 7074,8539 7076,8543 7078,8547 7080,8552 7082,8557 7083,8562 7085,8567 7087,8572 7088,8578 7089,8584 7090,8590 7092,8596 7092,8602 7093,8608 7094,8615 7094,8621 7095,8628 7095,8634 7095,8641"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6206,8642 L 6206,8642 Z"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7096,8515 L 7096,8515 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id25">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1440" y="11762" width="1219" height="762"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="1440" y="12080"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="1440" y="12461"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id26">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1199" y="625" width="7495" height="670"/>
+ <g>
+ <defs>
+ <linearGradient id="gradient1" x1="4946" y1="634" x2="4946" y2="1285" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:rgb(209,209,209)"/>
+ <stop offset="1" style="stop-color:rgb(199,199,199)"/>
+ </linearGradient>
+ </defs>
+ <path style="fill:url(#gradient1)" d="M 4946,1285 L 1208,1285 1208,634 8684,634 8684,1285 4946,1285 Z"/>
+ </g>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 4946,1285 L 1208,1285 1208,634 8684,634 8684,1285 4946,1285 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="1458" y="1075"><tspan fill="rgb(0,0,0)" stroke="none">2-Node Arm Marvell ThunderX2 (2n-tx2)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id27">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3061" y="12763" width="4221" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="3313" y="13311"><tspan fill="rgb(32,56,100)" stroke="none">Traffic Generator (TG)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id28">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4726" y="11910" width="1147" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4976" y="12317"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id29">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4066" y="11960" width="295" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4359,12030 L 4359,12030 4359,12034 4359,12037 4358,12041 4357,12044 4357,12048 4356,12051 4354,12055 4353,12058 4351,12061 4350,12065 4348,12068 4346,12071 4344,12073 4341,12076 4339,12079 4336,12081 4333,12084 4331,12086 4328,12088 4324,12090 4321,12091 4318,12093 4315,12094 4311,12096 4308,12097 4304,12097 4301,12098 4297,12099 4294,12099 4290,12099 4136,12099 4136,12099 4132,12099 4129,12099 4125,12098 4122,12097 4118,12097 4115,12096 4111,12094 4108,12093 4105,12091 4101,12090 4098,12088 4095,12086 4093,12084 4090,12081 4087,12079 4085,12076 4082,12073 4080,12071 4078,12068 4076,12064 4075,12061 4073,12058 4072,12055 4070,12051 4069,12048 4069,12044 4068,12041 4067,12037 4067,12034 4067,12030 4066,12030 4067,12030 4067,12026 4067,12023 4068,12019 4068,12016 4069,12012 4070,12009 4071,12005 4073,12002 4074,11999 4076,11996 4078,11993 4080,11990 4082,11987 4084,11984 4087,11982 4089,11979 4092,11977 4095,11975 4098,11972 4101,11971 4104,11969 4107,11967 4111,11966 4114,11965 4117,11964 4121,11963 4124,11962 4128,11961 4131,11961 4135,11961 4290,11960 4290,11961 4294,11961 4297,11961 4301,11962 4304,11962 4308,11963 4311,11964 4315,11965 4318,11967 4321,11968 4324,11970 4327,11972 4330,11974 4333,11976 4336,11978 4338,11981 4341,11983 4343,11986 4345,11989 4348,11992 4349,11995 4351,11998 4353,12001 4354,12005 4355,12008 4356,12011 4357,12015 4358,12018 4359,12022 4359,12025 4359,12029 4359,12030 Z M 4359,12099 L 4359,12099 Z M 4066,11960 L 4066,11960 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id30">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4066" y="12160" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4359,12230 L 4359,12230 4359,12234 4359,12237 4358,12241 4357,12244 4357,12248 4356,12251 4354,12255 4353,12258 4351,12261 4350,12265 4348,12268 4346,12271 4344,12273 4341,12276 4339,12279 4336,12281 4333,12284 4331,12286 4328,12288 4324,12290 4321,12291 4318,12293 4315,12294 4311,12296 4308,12297 4304,12297 4301,12298 4297,12299 4294,12299 4290,12299 4136,12299 4136,12299 4132,12299 4129,12299 4125,12298 4122,12297 4118,12297 4115,12296 4111,12294 4108,12293 4105,12291 4101,12290 4098,12288 4095,12286 4093,12284 4090,12281 4087,12279 4085,12276 4082,12273 4080,12271 4078,12268 4076,12264 4075,12261 4073,12258 4072,12255 4070,12251 4069,12248 4069,12244 4068,12241 4067,12237 4067,12234 4067,12230 4066,12230 4067,12230 4067,12226 4067,12223 4068,12219 4068,12216 4069,12212 4070,12209 4071,12205 4073,12202 4074,12199 4076,12196 4078,12193 4080,12190 4082,12187 4084,12184 4087,12182 4089,12179 4092,12177 4095,12175 4098,12172 4101,12171 4104,12169 4107,12167 4111,12166 4114,12165 4117,12164 4121,12163 4124,12162 4128,12161 4131,12161 4135,12161 4290,12160 4290,12161 4294,12161 4297,12161 4301,12162 4304,12162 4308,12163 4311,12164 4315,12165 4318,12167 4321,12168 4324,12170 4327,12172 4330,12174 4333,12176 4336,12178 4338,12181 4341,12183 4343,12186 4345,12189 4348,12192 4349,12195 4351,12198 4353,12201 4354,12205 4355,12208 4356,12211 4357,12215 4358,12218 4359,12222 4359,12225 4359,12229 4359,12230 Z M 4359,12299 L 4359,12299 Z M 4066,12160 L 4066,12160 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id31">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4066" y="12359" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4359,12429 L 4359,12429 4359,12433 4359,12436 4358,12440 4357,12443 4357,12447 4356,12450 4354,12454 4353,12457 4351,12460 4350,12464 4348,12467 4346,12470 4344,12472 4341,12475 4339,12478 4336,12480 4333,12483 4331,12485 4328,12487 4324,12489 4321,12490 4318,12492 4315,12493 4311,12495 4308,12496 4304,12496 4301,12497 4297,12498 4294,12498 4290,12498 4136,12498 4136,12498 4132,12498 4129,12498 4125,12497 4122,12496 4118,12496 4115,12495 4111,12493 4108,12492 4105,12490 4101,12489 4098,12487 4095,12485 4093,12483 4090,12480 4087,12478 4085,12475 4082,12472 4080,12470 4078,12467 4076,12463 4075,12460 4073,12457 4072,12454 4070,12450 4069,12447 4069,12443 4068,12440 4067,12436 4067,12433 4067,12429 4066,12429 4067,12429 4067,12425 4067,12422 4068,12418 4068,12415 4069,12411 4070,12408 4071,12404 4073,12401 4074,12398 4076,12395 4078,12392 4080,12389 4082,12386 4084,12383 4087,12381 4089,12378 4092,12376 4095,12374 4098,12371 4101,12370 4104,12368 4107,12366 4111,12365 4114,12364 4117,12363 4121,12362 4124,12361 4128,12360 4131,12360 4135,12360 4290,12359 4290,12360 4294,12360 4297,12360 4301,12361 4304,12361 4308,12362 4311,12363 4315,12364 4318,12366 4321,12367 4324,12369 4327,12371 4330,12373 4333,12375 4336,12377 4338,12380 4341,12382 4343,12385 4345,12388 4348,12391 4349,12394 4351,12397 4353,12400 4354,12404 4355,12407 4356,12410 4357,12414 4358,12417 4359,12421 4359,12424 4359,12428 4359,12429 Z M 4359,12498 L 4359,12498 Z M 4066,12359 L 4066,12359 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id32">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3717" y="11960" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4010,12030 L 4010,12030 4010,12034 4010,12037 4009,12041 4008,12044 4008,12048 4007,12051 4005,12055 4004,12058 4002,12061 4001,12065 3999,12068 3997,12071 3995,12073 3992,12076 3990,12079 3987,12081 3984,12084 3982,12086 3979,12088 3975,12090 3972,12091 3969,12093 3966,12094 3962,12096 3959,12097 3955,12097 3952,12098 3948,12099 3945,12099 3941,12099 3787,12099 3787,12099 3783,12099 3780,12099 3776,12098 3773,12097 3769,12097 3766,12096 3762,12094 3759,12093 3756,12091 3752,12090 3749,12088 3746,12086 3744,12084 3741,12081 3738,12079 3736,12076 3733,12073 3731,12071 3729,12068 3727,12064 3726,12061 3724,12058 3723,12055 3721,12051 3720,12048 3720,12044 3719,12041 3718,12037 3718,12034 3718,12030 3717,12030 3718,12030 3718,12026 3718,12023 3719,12019 3719,12016 3720,12012 3721,12009 3722,12005 3724,12002 3725,11999 3727,11996 3729,11993 3731,11990 3733,11987 3735,11984 3738,11982 3740,11979 3743,11977 3746,11975 3749,11972 3752,11971 3755,11969 3758,11967 3762,11966 3765,11965 3768,11964 3772,11963 3775,11962 3779,11961 3782,11961 3786,11961 3941,11960 3941,11961 3945,11961 3948,11961 3952,11962 3955,11962 3959,11963 3962,11964 3966,11965 3969,11967 3972,11968 3975,11970 3978,11972 3981,11974 3984,11976 3987,11978 3989,11981 3992,11983 3994,11986 3996,11989 3999,11992 4000,11995 4002,11998 4004,12001 4005,12005 4006,12008 4007,12011 4008,12015 4009,12018 4010,12022 4010,12025 4010,12029 4010,12030 Z M 4010,12099 L 4010,12099 Z M 3717,11960 L 3717,11960 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id33">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3717" y="12160" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4010,12230 L 4010,12230 4010,12234 4010,12237 4009,12241 4008,12244 4008,12248 4007,12251 4005,12255 4004,12258 4002,12261 4001,12265 3999,12268 3997,12271 3995,12273 3992,12276 3990,12279 3987,12281 3984,12284 3982,12286 3979,12288 3975,12290 3972,12291 3969,12293 3966,12294 3962,12296 3959,12297 3955,12297 3952,12298 3948,12299 3945,12299 3941,12299 3787,12299 3787,12299 3783,12299 3780,12299 3776,12298 3773,12297 3769,12297 3766,12296 3762,12294 3759,12293 3756,12291 3752,12290 3749,12288 3746,12286 3744,12284 3741,12281 3738,12279 3736,12276 3733,12273 3731,12271 3729,12268 3727,12264 3726,12261 3724,12258 3723,12255 3721,12251 3720,12248 3720,12244 3719,12241 3718,12237 3718,12234 3718,12230 3717,12230 3718,12230 3718,12226 3718,12223 3719,12219 3719,12216 3720,12212 3721,12209 3722,12205 3724,12202 3725,12199 3727,12196 3729,12193 3731,12190 3733,12187 3735,12184 3738,12182 3740,12179 3743,12177 3746,12175 3749,12172 3752,12171 3755,12169 3758,12167 3762,12166 3765,12165 3768,12164 3772,12163 3775,12162 3779,12161 3782,12161 3786,12161 3941,12160 3941,12161 3945,12161 3948,12161 3952,12162 3955,12162 3959,12163 3962,12164 3966,12165 3969,12167 3972,12168 3975,12170 3978,12172 3981,12174 3984,12176 3987,12178 3989,12181 3992,12183 3994,12186 3996,12189 3999,12192 4000,12195 4002,12198 4004,12201 4005,12205 4006,12208 4007,12211 4008,12215 4009,12218 4010,12222 4010,12225 4010,12229 4010,12230 Z M 4010,12299 L 4010,12299 Z M 3717,12160 L 3717,12160 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id34">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3716" y="12359" width="295" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4010,12429 L 4010,12429 4010,12433 4010,12436 4009,12440 4008,12443 4008,12447 4007,12450 4005,12454 4004,12457 4002,12460 4001,12464 3999,12467 3997,12470 3995,12472 3992,12475 3990,12478 3987,12480 3984,12483 3982,12485 3979,12487 3975,12489 3972,12490 3969,12492 3966,12493 3962,12495 3959,12496 3955,12496 3952,12497 3948,12498 3945,12498 3941,12498 3787,12498 3787,12498 3783,12498 3780,12498 3776,12497 3773,12496 3769,12496 3766,12495 3762,12493 3759,12492 3756,12490 3752,12489 3749,12487 3746,12485 3744,12483 3741,12480 3738,12478 3736,12475 3733,12472 3731,12470 3729,12467 3727,12463 3726,12460 3724,12457 3723,12454 3721,12450 3720,12447 3720,12443 3719,12440 3718,12436 3718,12433 3718,12429 3717,12429 3718,12429 3718,12425 3718,12422 3719,12418 3719,12415 3720,12411 3721,12408 3722,12404 3724,12401 3725,12398 3727,12395 3729,12392 3731,12389 3733,12386 3735,12383 3738,12381 3740,12378 3743,12376 3746,12374 3749,12371 3752,12370 3755,12368 3758,12366 3762,12365 3765,12364 3768,12363 3772,12362 3775,12361 3779,12360 3782,12360 3786,12360 3941,12359 3941,12360 3945,12360 3948,12360 3952,12361 3955,12361 3959,12362 3962,12363 3966,12364 3969,12366 3972,12367 3975,12369 3978,12371 3981,12373 3984,12375 3987,12377 3989,12380 3992,12382 3994,12385 3996,12388 3999,12391 4000,12394 4002,12397 4004,12400 4005,12404 4006,12407 4007,12410 4008,12414 4009,12417 4010,12421 4010,12424 4010,12428 4010,12429 Z M 4010,12498 L 4010,12498 Z M 3717,12359 L 3717,12359 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id35">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4395" y="11963" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4689,12033 L 4689,12033 4689,12037 4689,12040 4688,12044 4687,12047 4687,12051 4686,12054 4684,12058 4683,12061 4681,12064 4680,12068 4678,12071 4676,12074 4674,12076 4671,12079 4669,12082 4666,12084 4663,12087 4661,12089 4658,12091 4654,12093 4651,12094 4648,12096 4645,12097 4641,12099 4638,12100 4634,12100 4631,12101 4627,12102 4624,12102 4620,12102 4466,12102 4466,12102 4462,12102 4459,12102 4455,12101 4452,12100 4448,12100 4445,12099 4441,12097 4438,12096 4435,12094 4431,12093 4428,12091 4425,12089 4423,12087 4420,12084 4417,12082 4415,12079 4412,12076 4410,12074 4408,12071 4406,12067 4405,12064 4403,12061 4402,12058 4400,12054 4399,12051 4399,12047 4398,12044 4397,12040 4397,12037 4397,12033 4396,12033 4397,12033 4397,12029 4397,12026 4398,12022 4398,12019 4399,12015 4400,12012 4401,12008 4403,12005 4404,12002 4406,11999 4408,11996 4410,11993 4412,11990 4414,11987 4417,11985 4419,11982 4422,11980 4425,11978 4428,11975 4431,11974 4434,11972 4437,11970 4441,11969 4444,11968 4447,11967 4451,11966 4454,11965 4458,11964 4461,11964 4465,11964 4620,11963 4620,11964 4624,11964 4627,11964 4631,11965 4634,11965 4638,11966 4641,11967 4645,11968 4648,11970 4651,11971 4654,11973 4657,11975 4660,11977 4663,11979 4666,11981 4668,11984 4671,11986 4673,11989 4675,11992 4678,11995 4679,11998 4681,12001 4683,12004 4684,12008 4685,12011 4686,12014 4687,12018 4688,12021 4689,12025 4689,12028 4689,12032 4689,12033 Z M 4689,12102 L 4689,12102 Z M 4396,11963 L 4396,11963 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id36">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4396" y="12163" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4689,12233 L 4689,12233 4689,12237 4689,12240 4688,12244 4687,12247 4687,12251 4686,12254 4684,12258 4683,12261 4681,12264 4680,12268 4678,12271 4676,12274 4674,12276 4671,12279 4669,12282 4666,12284 4663,12287 4661,12289 4658,12291 4654,12293 4651,12294 4648,12296 4645,12297 4641,12299 4638,12300 4634,12300 4631,12301 4627,12302 4624,12302 4620,12302 4466,12302 4466,12302 4462,12302 4459,12302 4455,12301 4452,12300 4448,12300 4445,12299 4441,12297 4438,12296 4435,12294 4431,12293 4428,12291 4425,12289 4423,12287 4420,12284 4417,12282 4415,12279 4412,12276 4410,12274 4408,12271 4406,12267 4405,12264 4403,12261 4402,12258 4400,12254 4399,12251 4399,12247 4398,12244 4397,12240 4397,12237 4397,12233 4396,12233 4397,12233 4397,12229 4397,12226 4398,12222 4398,12219 4399,12215 4400,12212 4401,12208 4403,12205 4404,12202 4406,12199 4408,12196 4410,12193 4412,12190 4414,12187 4417,12185 4419,12182 4422,12180 4425,12178 4428,12175 4431,12174 4434,12172 4437,12170 4441,12169 4444,12168 4447,12167 4451,12166 4454,12165 4458,12164 4461,12164 4465,12164 4620,12163 4620,12164 4624,12164 4627,12164 4631,12165 4634,12165 4638,12166 4641,12167 4645,12168 4648,12170 4651,12171 4654,12173 4657,12175 4660,12177 4663,12179 4666,12181 4668,12184 4671,12186 4673,12189 4675,12192 4678,12195 4679,12198 4681,12201 4683,12204 4684,12208 4685,12211 4686,12214 4687,12218 4688,12221 4689,12225 4689,12228 4689,12232 4689,12233 Z M 4689,12302 L 4689,12302 Z M 4396,12163 L 4396,12163 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id37">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4396" y="12362" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4689,12432 L 4689,12432 4689,12436 4689,12439 4688,12443 4687,12446 4687,12450 4686,12453 4684,12457 4683,12460 4681,12463 4680,12467 4678,12470 4676,12473 4674,12475 4671,12478 4669,12481 4666,12483 4663,12486 4661,12488 4658,12490 4654,12492 4651,12493 4648,12495 4645,12496 4641,12498 4638,12499 4634,12499 4631,12500 4627,12501 4624,12501 4620,12501 4466,12501 4466,12501 4462,12501 4459,12501 4455,12500 4452,12499 4448,12499 4445,12498 4441,12496 4438,12495 4435,12493 4431,12492 4428,12490 4425,12488 4423,12486 4420,12483 4417,12481 4415,12478 4412,12475 4410,12473 4408,12470 4406,12466 4405,12463 4403,12460 4402,12457 4400,12453 4399,12450 4399,12446 4398,12443 4397,12439 4397,12436 4397,12432 4396,12432 4397,12432 4397,12428 4397,12425 4398,12421 4398,12418 4399,12414 4400,12411 4401,12407 4403,12404 4404,12401 4406,12398 4408,12395 4410,12392 4412,12389 4414,12386 4417,12384 4419,12381 4422,12379 4425,12377 4428,12374 4431,12373 4434,12371 4437,12369 4441,12368 4444,12367 4447,12366 4451,12365 4454,12364 4458,12363 4461,12363 4465,12363 4620,12362 4620,12363 4624,12363 4627,12363 4631,12364 4634,12364 4638,12365 4641,12366 4645,12367 4648,12369 4651,12370 4654,12372 4657,12374 4660,12376 4663,12378 4666,12380 4668,12383 4671,12385 4673,12388 4675,12391 4678,12394 4679,12397 4681,12400 4683,12403 4684,12407 4685,12410 4686,12413 4687,12417 4688,12420 4689,12424 4689,12427 4689,12431 4689,12432 Z M 4689,12501 L 4689,12501 Z M 4396,12362 L 4396,12362 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id38">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6429" y="11987" width="295" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6723,12057 L 6723,12057 6723,12061 6723,12064 6722,12068 6721,12071 6721,12075 6720,12078 6718,12082 6717,12085 6715,12088 6714,12092 6712,12095 6710,12098 6708,12100 6705,12103 6703,12106 6700,12108 6697,12111 6695,12113 6692,12115 6688,12117 6685,12118 6682,12120 6679,12121 6675,12123 6672,12124 6668,12124 6665,12125 6661,12126 6658,12126 6654,12126 6500,12126 6500,12126 6496,12126 6493,12126 6489,12125 6486,12124 6482,12124 6479,12123 6475,12121 6472,12120 6469,12118 6465,12117 6462,12115 6459,12113 6457,12111 6454,12108 6451,12106 6449,12103 6446,12100 6444,12098 6442,12095 6440,12091 6439,12088 6437,12085 6436,12082 6434,12078 6433,12075 6433,12071 6432,12068 6431,12064 6431,12061 6431,12057 6430,12057 6431,12057 6431,12053 6431,12050 6432,12046 6432,12043 6433,12039 6434,12036 6435,12032 6437,12029 6438,12026 6440,12023 6442,12020 6444,12017 6446,12014 6448,12011 6451,12009 6453,12006 6456,12004 6459,12002 6462,11999 6465,11998 6468,11996 6471,11994 6475,11993 6478,11992 6481,11991 6485,11990 6488,11989 6492,11988 6495,11988 6499,11988 6654,11987 6654,11988 6658,11988 6661,11988 6665,11989 6668,11989 6672,11990 6675,11991 6679,11992 6682,11994 6685,11995 6688,11997 6691,11999 6694,12001 6697,12003 6700,12005 6702,12008 6705,12010 6707,12013 6709,12016 6712,12019 6713,12022 6715,12025 6717,12028 6718,12032 6719,12035 6720,12038 6721,12042 6722,12045 6723,12049 6723,12052 6723,12056 6723,12057 Z M 6723,12126 L 6723,12126 Z M 6430,11987 L 6430,11987 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id39">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6430" y="12187" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6723,12257 L 6723,12257 6723,12261 6723,12264 6722,12268 6721,12271 6721,12275 6720,12278 6718,12282 6717,12285 6715,12288 6714,12292 6712,12295 6710,12298 6708,12300 6705,12303 6703,12306 6700,12308 6697,12311 6695,12313 6692,12315 6688,12317 6685,12318 6682,12320 6679,12321 6675,12323 6672,12324 6668,12324 6665,12325 6661,12326 6658,12326 6654,12326 6500,12326 6500,12326 6496,12326 6493,12326 6489,12325 6486,12324 6482,12324 6479,12323 6475,12321 6472,12320 6469,12318 6465,12317 6462,12315 6459,12313 6457,12311 6454,12308 6451,12306 6449,12303 6446,12300 6444,12298 6442,12295 6440,12291 6439,12288 6437,12285 6436,12282 6434,12278 6433,12275 6433,12271 6432,12268 6431,12264 6431,12261 6431,12257 6430,12257 6431,12257 6431,12253 6431,12250 6432,12246 6432,12243 6433,12239 6434,12236 6435,12232 6437,12229 6438,12226 6440,12223 6442,12220 6444,12217 6446,12214 6448,12211 6451,12209 6453,12206 6456,12204 6459,12202 6462,12199 6465,12198 6468,12196 6471,12194 6475,12193 6478,12192 6481,12191 6485,12190 6488,12189 6492,12188 6495,12188 6499,12188 6654,12187 6654,12188 6658,12188 6661,12188 6665,12189 6668,12189 6672,12190 6675,12191 6679,12192 6682,12194 6685,12195 6688,12197 6691,12199 6694,12201 6697,12203 6700,12205 6702,12208 6705,12210 6707,12213 6709,12216 6712,12219 6713,12222 6715,12225 6717,12228 6718,12232 6719,12235 6720,12238 6721,12242 6722,12245 6723,12249 6723,12252 6723,12256 6723,12257 Z M 6723,12326 L 6723,12326 Z M 6430,12187 L 6430,12187 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id40">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6430" y="12387" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6723,12457 L 6723,12457 6723,12461 6723,12464 6722,12468 6721,12471 6721,12475 6720,12478 6718,12482 6717,12485 6715,12488 6714,12492 6712,12495 6710,12498 6708,12500 6705,12503 6703,12506 6700,12508 6697,12511 6695,12513 6692,12515 6688,12517 6685,12518 6682,12520 6679,12521 6675,12523 6672,12524 6668,12524 6665,12525 6661,12526 6658,12526 6654,12526 6500,12526 6500,12526 6496,12526 6493,12526 6489,12525 6486,12524 6482,12524 6479,12523 6475,12521 6472,12520 6469,12518 6465,12517 6462,12515 6459,12513 6457,12511 6454,12508 6451,12506 6449,12503 6446,12500 6444,12498 6442,12495 6440,12491 6439,12488 6437,12485 6436,12482 6434,12478 6433,12475 6433,12471 6432,12468 6431,12464 6431,12461 6431,12457 6430,12457 6431,12457 6431,12453 6431,12450 6432,12446 6432,12443 6433,12439 6434,12436 6435,12432 6437,12429 6438,12426 6440,12423 6442,12420 6444,12417 6446,12414 6448,12411 6451,12409 6453,12406 6456,12404 6459,12402 6462,12399 6465,12398 6468,12396 6471,12394 6475,12393 6478,12392 6481,12391 6485,12390 6488,12389 6492,12388 6495,12388 6499,12388 6654,12387 6654,12388 6658,12388 6661,12388 6665,12389 6668,12389 6672,12390 6675,12391 6679,12392 6682,12394 6685,12395 6688,12397 6691,12399 6694,12401 6697,12403 6700,12405 6702,12408 6705,12410 6707,12413 6709,12416 6712,12419 6713,12422 6715,12425 6717,12428 6718,12432 6719,12435 6720,12438 6721,12442 6722,12445 6723,12449 6723,12452 6723,12456 6723,12457 Z M 6723,12526 L 6723,12526 Z M 6430,12387 L 6430,12387 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id41">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6081" y="11987" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6374,12057 L 6374,12057 6374,12061 6374,12064 6373,12068 6372,12071 6372,12075 6371,12078 6369,12082 6368,12085 6366,12088 6365,12092 6363,12095 6361,12098 6359,12100 6356,12103 6354,12106 6351,12108 6348,12111 6346,12113 6343,12115 6339,12117 6336,12118 6333,12120 6330,12121 6326,12123 6323,12124 6319,12124 6316,12125 6312,12126 6309,12126 6305,12126 6151,12126 6151,12126 6147,12126 6144,12126 6140,12125 6137,12124 6133,12124 6130,12123 6126,12121 6123,12120 6120,12118 6116,12117 6113,12115 6110,12113 6108,12111 6105,12108 6102,12106 6100,12103 6097,12100 6095,12098 6093,12095 6091,12091 6090,12088 6088,12085 6087,12082 6085,12078 6084,12075 6084,12071 6083,12068 6082,12064 6082,12061 6082,12057 6081,12057 6082,12057 6082,12053 6082,12050 6083,12046 6083,12043 6084,12039 6085,12036 6086,12032 6088,12029 6089,12026 6091,12023 6093,12020 6095,12017 6097,12014 6099,12011 6102,12009 6104,12006 6107,12004 6110,12002 6113,11999 6116,11998 6119,11996 6122,11994 6126,11993 6129,11992 6132,11991 6136,11990 6139,11989 6143,11988 6146,11988 6150,11988 6305,11987 6305,11988 6309,11988 6312,11988 6316,11989 6319,11989 6323,11990 6326,11991 6330,11992 6333,11994 6336,11995 6339,11997 6342,11999 6345,12001 6348,12003 6351,12005 6353,12008 6356,12010 6358,12013 6360,12016 6363,12019 6364,12022 6366,12025 6368,12028 6369,12032 6370,12035 6371,12038 6372,12042 6373,12045 6374,12049 6374,12052 6374,12056 6374,12057 Z M 6374,12126 L 6374,12126 Z M 6081,11987 L 6081,11987 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id42">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6081" y="12187" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6374,12257 L 6374,12257 6374,12261 6374,12264 6373,12268 6372,12271 6372,12275 6371,12278 6369,12282 6368,12285 6366,12288 6365,12292 6363,12295 6361,12298 6359,12300 6356,12303 6354,12306 6351,12308 6348,12311 6346,12313 6343,12315 6339,12317 6336,12318 6333,12320 6330,12321 6326,12323 6323,12324 6319,12324 6316,12325 6312,12326 6309,12326 6305,12326 6151,12326 6151,12326 6147,12326 6144,12326 6140,12325 6137,12324 6133,12324 6130,12323 6126,12321 6123,12320 6120,12318 6116,12317 6113,12315 6110,12313 6108,12311 6105,12308 6102,12306 6100,12303 6097,12300 6095,12298 6093,12295 6091,12291 6090,12288 6088,12285 6087,12282 6085,12278 6084,12275 6084,12271 6083,12268 6082,12264 6082,12261 6082,12257 6081,12257 6082,12257 6082,12253 6082,12250 6083,12246 6083,12243 6084,12239 6085,12236 6086,12232 6088,12229 6089,12226 6091,12223 6093,12220 6095,12217 6097,12214 6099,12211 6102,12209 6104,12206 6107,12204 6110,12202 6113,12199 6116,12198 6119,12196 6122,12194 6126,12193 6129,12192 6132,12191 6136,12190 6139,12189 6143,12188 6146,12188 6150,12188 6305,12187 6305,12188 6309,12188 6312,12188 6316,12189 6319,12189 6323,12190 6326,12191 6330,12192 6333,12194 6336,12195 6339,12197 6342,12199 6345,12201 6348,12203 6351,12205 6353,12208 6356,12210 6358,12213 6360,12216 6363,12219 6364,12222 6366,12225 6368,12228 6369,12232 6370,12235 6371,12238 6372,12242 6373,12245 6374,12249 6374,12252 6374,12256 6374,12257 Z M 6374,12326 L 6374,12326 Z M 6081,12187 L 6081,12187 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id43">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6081" y="12387" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6374,12457 L 6374,12457 6374,12461 6374,12464 6373,12468 6372,12471 6372,12475 6371,12478 6369,12482 6368,12485 6366,12488 6365,12492 6363,12495 6361,12498 6359,12500 6356,12503 6354,12506 6351,12508 6348,12511 6346,12513 6343,12515 6339,12517 6336,12518 6333,12520 6330,12521 6326,12523 6323,12524 6319,12524 6316,12525 6312,12526 6309,12526 6305,12526 6151,12526 6151,12526 6147,12526 6144,12526 6140,12525 6137,12524 6133,12524 6130,12523 6126,12521 6123,12520 6120,12518 6116,12517 6113,12515 6110,12513 6108,12511 6105,12508 6102,12506 6100,12503 6097,12500 6095,12498 6093,12495 6091,12491 6090,12488 6088,12485 6087,12482 6085,12478 6084,12475 6084,12471 6083,12468 6082,12464 6082,12461 6082,12457 6081,12457 6082,12457 6082,12453 6082,12450 6083,12446 6083,12443 6084,12439 6085,12436 6086,12432 6088,12429 6089,12426 6091,12423 6093,12420 6095,12417 6097,12414 6099,12411 6102,12409 6104,12406 6107,12404 6110,12402 6113,12399 6116,12398 6119,12396 6122,12394 6126,12393 6129,12392 6132,12391 6136,12390 6139,12389 6143,12388 6146,12388 6150,12388 6305,12387 6305,12388 6309,12388 6312,12388 6316,12389 6319,12389 6323,12390 6326,12391 6330,12392 6333,12394 6336,12395 6339,12397 6342,12399 6345,12401 6348,12403 6351,12405 6353,12408 6356,12410 6358,12413 6360,12416 6363,12419 6364,12422 6366,12425 6368,12428 6369,12432 6370,12435 6371,12438 6372,12442 6373,12445 6374,12449 6374,12452 6374,12456 6374,12457 Z M 6374,12526 L 6374,12526 Z M 6081,12387 L 6081,12387 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id44">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6759" y="11990" width="295" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7053,12060 L 7053,12060 7053,12064 7053,12067 7052,12071 7051,12074 7051,12078 7050,12081 7048,12085 7047,12088 7045,12091 7044,12095 7042,12098 7040,12101 7038,12103 7035,12106 7033,12109 7030,12111 7027,12114 7025,12116 7022,12118 7018,12120 7015,12121 7012,12123 7009,12124 7005,12126 7002,12127 6998,12127 6995,12128 6991,12129 6988,12129 6984,12129 6830,12129 6830,12129 6826,12129 6823,12129 6819,12128 6816,12127 6812,12127 6809,12126 6805,12124 6802,12123 6799,12121 6795,12120 6792,12118 6789,12116 6787,12114 6784,12111 6781,12109 6779,12106 6776,12103 6774,12101 6772,12098 6770,12094 6769,12091 6767,12088 6766,12085 6764,12081 6763,12078 6763,12074 6762,12071 6761,12067 6761,12064 6761,12060 6760,12060 6761,12060 6761,12056 6761,12053 6762,12049 6762,12046 6763,12042 6764,12039 6765,12035 6767,12032 6768,12029 6770,12026 6772,12023 6774,12020 6776,12017 6778,12014 6781,12012 6783,12009 6786,12007 6789,12005 6792,12002 6795,12001 6798,11999 6801,11997 6805,11996 6808,11995 6811,11994 6815,11993 6818,11992 6822,11991 6825,11991 6829,11991 6984,11990 6984,11991 6988,11991 6991,11991 6995,11992 6998,11992 7002,11993 7005,11994 7009,11995 7012,11997 7015,11998 7018,12000 7021,12002 7024,12004 7027,12006 7030,12008 7032,12011 7035,12013 7037,12016 7039,12019 7042,12022 7043,12025 7045,12028 7047,12031 7048,12035 7049,12038 7050,12041 7051,12045 7052,12048 7053,12052 7053,12055 7053,12059 7053,12060 Z M 7053,12129 L 7053,12129 Z M 6760,11990 L 6760,11990 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id45">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6760" y="12190" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7053,12260 L 7053,12260 7053,12264 7053,12267 7052,12271 7051,12274 7051,12278 7050,12281 7048,12285 7047,12288 7045,12291 7044,12295 7042,12298 7040,12301 7038,12303 7035,12306 7033,12309 7030,12311 7027,12314 7025,12316 7022,12318 7018,12320 7015,12321 7012,12323 7009,12324 7005,12326 7002,12327 6998,12327 6995,12328 6991,12329 6988,12329 6984,12329 6830,12329 6830,12329 6826,12329 6823,12329 6819,12328 6816,12327 6812,12327 6809,12326 6805,12324 6802,12323 6799,12321 6795,12320 6792,12318 6789,12316 6787,12314 6784,12311 6781,12309 6779,12306 6776,12303 6774,12301 6772,12298 6770,12294 6769,12291 6767,12288 6766,12285 6764,12281 6763,12278 6763,12274 6762,12271 6761,12267 6761,12264 6761,12260 6760,12260 6761,12260 6761,12256 6761,12253 6762,12249 6762,12246 6763,12242 6764,12239 6765,12235 6767,12232 6768,12229 6770,12226 6772,12223 6774,12220 6776,12217 6778,12214 6781,12212 6783,12209 6786,12207 6789,12205 6792,12202 6795,12201 6798,12199 6801,12197 6805,12196 6808,12195 6811,12194 6815,12193 6818,12192 6822,12191 6825,12191 6829,12191 6984,12190 6984,12191 6988,12191 6991,12191 6995,12192 6998,12192 7002,12193 7005,12194 7009,12195 7012,12197 7015,12198 7018,12200 7021,12202 7024,12204 7027,12206 7030,12208 7032,12211 7035,12213 7037,12216 7039,12219 7042,12222 7043,12225 7045,12228 7047,12231 7048,12235 7049,12238 7050,12241 7051,12245 7052,12248 7053,12252 7053,12255 7053,12259 7053,12260 Z M 7053,12329 L 7053,12329 Z M 6760,12190 L 6760,12190 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id46">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6760" y="12390" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7053,12460 L 7053,12460 7053,12464 7053,12467 7052,12471 7051,12474 7051,12478 7050,12481 7048,12485 7047,12488 7045,12491 7044,12495 7042,12498 7040,12501 7038,12503 7035,12506 7033,12509 7030,12511 7027,12514 7025,12516 7022,12518 7018,12520 7015,12521 7012,12523 7009,12524 7005,12526 7002,12527 6998,12527 6995,12528 6991,12529 6988,12529 6984,12529 6830,12529 6830,12529 6826,12529 6823,12529 6819,12528 6816,12527 6812,12527 6809,12526 6805,12524 6802,12523 6799,12521 6795,12520 6792,12518 6789,12516 6787,12514 6784,12511 6781,12509 6779,12506 6776,12503 6774,12501 6772,12498 6770,12494 6769,12491 6767,12488 6766,12485 6764,12481 6763,12478 6763,12474 6762,12471 6761,12467 6761,12464 6761,12460 6760,12460 6761,12460 6761,12456 6761,12453 6762,12449 6762,12446 6763,12442 6764,12439 6765,12435 6767,12432 6768,12429 6770,12426 6772,12423 6774,12420 6776,12417 6778,12414 6781,12412 6783,12409 6786,12407 6789,12405 6792,12402 6795,12401 6798,12399 6801,12397 6805,12396 6808,12395 6811,12394 6815,12393 6818,12392 6822,12391 6825,12391 6829,12391 6984,12390 6984,12391 6988,12391 6991,12391 6995,12392 6998,12392 7002,12393 7005,12394 7009,12395 7012,12397 7015,12398 7018,12400 7021,12402 7024,12404 7027,12406 7030,12408 7032,12411 7035,12413 7037,12416 7039,12419 7042,12422 7043,12425 7045,12428 7047,12431 7048,12435 7049,12438 7050,12441 7051,12445 7052,12448 7053,12452 7053,12455 7053,12459 7053,12460 Z M 7053,12529 L 7053,12529 Z M 6760,12390 L 6760,12390 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id47">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7487" y="11986" width="295" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7781,12056 L 7781,12056 7781,12060 7781,12063 7780,12067 7779,12070 7779,12074 7778,12077 7776,12081 7775,12084 7773,12087 7772,12091 7770,12094 7768,12097 7766,12099 7763,12102 7761,12105 7758,12107 7755,12110 7753,12112 7750,12114 7746,12116 7743,12117 7740,12119 7737,12120 7733,12122 7730,12123 7726,12123 7723,12124 7719,12125 7716,12125 7712,12125 7558,12125 7558,12125 7554,12125 7551,12125 7547,12124 7544,12123 7540,12123 7537,12122 7533,12120 7530,12119 7527,12117 7523,12116 7520,12114 7517,12112 7515,12110 7512,12107 7509,12105 7507,12102 7504,12099 7502,12097 7500,12094 7498,12090 7497,12087 7495,12084 7494,12081 7492,12077 7491,12074 7491,12070 7490,12067 7489,12063 7489,12060 7489,12056 7488,12056 7489,12056 7489,12052 7489,12049 7490,12045 7490,12042 7491,12038 7492,12035 7493,12031 7495,12028 7496,12025 7498,12022 7500,12019 7502,12016 7504,12013 7506,12010 7509,12008 7511,12005 7514,12003 7517,12001 7520,11998 7523,11997 7526,11995 7529,11993 7533,11992 7536,11991 7539,11990 7543,11989 7546,11988 7550,11987 7553,11987 7557,11987 7712,11986 7712,11987 7716,11987 7719,11987 7723,11988 7726,11988 7730,11989 7733,11990 7737,11991 7740,11993 7743,11994 7746,11996 7749,11998 7752,12000 7755,12002 7758,12004 7760,12007 7763,12009 7765,12012 7767,12015 7770,12018 7771,12021 7773,12024 7775,12027 7776,12031 7777,12034 7778,12037 7779,12041 7780,12044 7781,12048 7781,12051 7781,12055 7781,12056 Z M 7781,12125 L 7781,12125 Z M 7488,11986 L 7488,11986 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id48">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7488" y="12185" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7781,12255 L 7781,12255 7781,12259 7781,12262 7780,12266 7779,12269 7779,12273 7778,12276 7776,12280 7775,12283 7773,12286 7772,12290 7770,12293 7768,12296 7766,12298 7763,12301 7761,12304 7758,12306 7755,12309 7753,12311 7750,12313 7746,12315 7743,12316 7740,12318 7737,12319 7733,12321 7730,12322 7726,12322 7723,12323 7719,12324 7716,12324 7712,12324 7558,12324 7558,12324 7554,12324 7551,12324 7547,12323 7544,12322 7540,12322 7537,12321 7533,12319 7530,12318 7527,12316 7523,12315 7520,12313 7517,12311 7515,12309 7512,12306 7509,12304 7507,12301 7504,12298 7502,12296 7500,12293 7498,12289 7497,12286 7495,12283 7494,12280 7492,12276 7491,12273 7491,12269 7490,12266 7489,12262 7489,12259 7489,12255 7488,12255 7489,12255 7489,12251 7489,12248 7490,12244 7490,12241 7491,12237 7492,12234 7493,12230 7495,12227 7496,12224 7498,12221 7500,12218 7502,12215 7504,12212 7506,12209 7509,12207 7511,12204 7514,12202 7517,12200 7520,12197 7523,12196 7526,12194 7529,12192 7533,12191 7536,12190 7539,12189 7543,12188 7546,12187 7550,12186 7553,12186 7557,12186 7712,12185 7712,12186 7716,12186 7719,12186 7723,12187 7726,12187 7730,12188 7733,12189 7737,12190 7740,12192 7743,12193 7746,12195 7749,12197 7752,12199 7755,12201 7758,12203 7760,12206 7763,12208 7765,12211 7767,12214 7770,12217 7771,12220 7773,12223 7775,12226 7776,12230 7777,12233 7778,12236 7779,12240 7780,12243 7781,12247 7781,12250 7781,12254 7781,12255 Z M 7781,12324 L 7781,12324 Z M 7488,12185 L 7488,12185 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id49">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7488" y="12385" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7781,12455 L 7781,12455 7781,12459 7781,12462 7780,12466 7779,12469 7779,12473 7778,12476 7776,12480 7775,12483 7773,12486 7772,12490 7770,12493 7768,12496 7766,12498 7763,12501 7761,12504 7758,12506 7755,12509 7753,12511 7750,12513 7746,12515 7743,12516 7740,12518 7737,12519 7733,12521 7730,12522 7726,12522 7723,12523 7719,12524 7716,12524 7712,12524 7558,12524 7558,12524 7554,12524 7551,12524 7547,12523 7544,12522 7540,12522 7537,12521 7533,12519 7530,12518 7527,12516 7523,12515 7520,12513 7517,12511 7515,12509 7512,12506 7509,12504 7507,12501 7504,12498 7502,12496 7500,12493 7498,12489 7497,12486 7495,12483 7494,12480 7492,12476 7491,12473 7491,12469 7490,12466 7489,12462 7489,12459 7489,12455 7488,12455 7489,12455 7489,12451 7489,12448 7490,12444 7490,12441 7491,12437 7492,12434 7493,12430 7495,12427 7496,12424 7498,12421 7500,12418 7502,12415 7504,12412 7506,12409 7509,12407 7511,12404 7514,12402 7517,12400 7520,12397 7523,12396 7526,12394 7529,12392 7533,12391 7536,12390 7539,12389 7543,12388 7546,12387 7550,12386 7553,12386 7557,12386 7712,12385 7712,12386 7716,12386 7719,12386 7723,12387 7726,12387 7730,12388 7733,12389 7737,12390 7740,12392 7743,12393 7746,12395 7749,12397 7752,12399 7755,12401 7758,12403 7760,12406 7763,12408 7765,12411 7767,12414 7770,12417 7771,12420 7773,12423 7775,12426 7776,12430 7777,12433 7778,12436 7779,12440 7780,12443 7781,12447 7781,12450 7781,12454 7781,12455 Z M 7781,12524 L 7781,12524 Z M 7488,12385 L 7488,12385 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id50">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7138" y="11986" width="295" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7432,12056 L 7432,12056 7432,12060 7432,12063 7431,12067 7430,12070 7430,12074 7429,12077 7427,12081 7426,12084 7424,12087 7423,12091 7421,12094 7419,12097 7417,12099 7414,12102 7412,12105 7409,12107 7406,12110 7404,12112 7401,12114 7397,12116 7394,12117 7391,12119 7388,12120 7384,12122 7381,12123 7377,12123 7374,12124 7370,12125 7367,12125 7363,12125 7209,12125 7209,12125 7205,12125 7202,12125 7198,12124 7195,12123 7191,12123 7188,12122 7184,12120 7181,12119 7178,12117 7174,12116 7171,12114 7168,12112 7166,12110 7163,12107 7160,12105 7158,12102 7155,12099 7153,12097 7151,12094 7149,12090 7148,12087 7146,12084 7145,12081 7143,12077 7142,12074 7142,12070 7141,12067 7140,12063 7140,12060 7140,12056 7139,12056 7140,12056 7140,12052 7140,12049 7141,12045 7141,12042 7142,12038 7143,12035 7144,12031 7146,12028 7147,12025 7149,12022 7151,12019 7153,12016 7155,12013 7157,12010 7160,12008 7162,12005 7165,12003 7168,12001 7171,11998 7174,11997 7177,11995 7180,11993 7184,11992 7187,11991 7190,11990 7194,11989 7197,11988 7201,11987 7204,11987 7208,11987 7363,11986 7363,11987 7367,11987 7370,11987 7374,11988 7377,11988 7381,11989 7384,11990 7388,11991 7391,11993 7394,11994 7397,11996 7400,11998 7403,12000 7406,12002 7409,12004 7411,12007 7414,12009 7416,12012 7418,12015 7421,12018 7422,12021 7424,12024 7426,12027 7427,12031 7428,12034 7429,12037 7430,12041 7431,12044 7432,12048 7432,12051 7432,12055 7432,12056 Z M 7432,12125 L 7432,12125 Z M 7139,11986 L 7139,11986 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id51">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7139" y="12185" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7432,12255 L 7432,12255 7432,12259 7432,12262 7431,12266 7430,12269 7430,12273 7429,12276 7427,12280 7426,12283 7424,12286 7423,12290 7421,12293 7419,12296 7417,12298 7414,12301 7412,12304 7409,12306 7406,12309 7404,12311 7401,12313 7397,12315 7394,12316 7391,12318 7388,12319 7384,12321 7381,12322 7377,12322 7374,12323 7370,12324 7367,12324 7363,12324 7209,12324 7209,12324 7205,12324 7202,12324 7198,12323 7195,12322 7191,12322 7188,12321 7184,12319 7181,12318 7178,12316 7174,12315 7171,12313 7168,12311 7166,12309 7163,12306 7160,12304 7158,12301 7155,12298 7153,12296 7151,12293 7149,12289 7148,12286 7146,12283 7145,12280 7143,12276 7142,12273 7142,12269 7141,12266 7140,12262 7140,12259 7140,12255 7139,12255 7140,12255 7140,12251 7140,12248 7141,12244 7141,12241 7142,12237 7143,12234 7144,12230 7146,12227 7147,12224 7149,12221 7151,12218 7153,12215 7155,12212 7157,12209 7160,12207 7162,12204 7165,12202 7168,12200 7171,12197 7174,12196 7177,12194 7180,12192 7184,12191 7187,12190 7190,12189 7194,12188 7197,12187 7201,12186 7204,12186 7208,12186 7363,12185 7363,12186 7367,12186 7370,12186 7374,12187 7377,12187 7381,12188 7384,12189 7388,12190 7391,12192 7394,12193 7397,12195 7400,12197 7403,12199 7406,12201 7409,12203 7411,12206 7414,12208 7416,12211 7418,12214 7421,12217 7422,12220 7424,12223 7426,12226 7427,12230 7428,12233 7429,12236 7430,12240 7431,12243 7432,12247 7432,12250 7432,12254 7432,12255 Z M 7432,12324 L 7432,12324 Z M 7139,12185 L 7139,12185 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id52">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7139" y="12385" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7432,12455 L 7432,12455 7432,12459 7432,12462 7431,12466 7430,12469 7430,12473 7429,12476 7427,12480 7426,12483 7424,12486 7423,12490 7421,12493 7419,12496 7417,12498 7414,12501 7412,12504 7409,12506 7406,12509 7404,12511 7401,12513 7397,12515 7394,12516 7391,12518 7388,12519 7384,12521 7381,12522 7377,12522 7374,12523 7370,12524 7367,12524 7363,12524 7209,12524 7209,12524 7205,12524 7202,12524 7198,12523 7195,12522 7191,12522 7188,12521 7184,12519 7181,12518 7178,12516 7174,12515 7171,12513 7168,12511 7166,12509 7163,12506 7160,12504 7158,12501 7155,12498 7153,12496 7151,12493 7149,12489 7148,12486 7146,12483 7145,12480 7143,12476 7142,12473 7142,12469 7141,12466 7140,12462 7140,12459 7140,12455 7139,12455 7140,12455 7140,12451 7140,12448 7141,12444 7141,12441 7142,12437 7143,12434 7144,12430 7146,12427 7147,12424 7149,12421 7151,12418 7153,12415 7155,12412 7157,12409 7160,12407 7162,12404 7165,12402 7168,12400 7171,12397 7174,12396 7177,12394 7180,12392 7184,12391 7187,12390 7190,12389 7194,12388 7197,12387 7201,12386 7204,12386 7208,12386 7363,12385 7363,12386 7367,12386 7370,12386 7374,12387 7377,12387 7381,12388 7384,12389 7388,12390 7391,12392 7394,12393 7397,12395 7400,12397 7403,12399 7406,12401 7409,12403 7411,12406 7414,12408 7416,12411 7418,12414 7421,12417 7422,12420 7424,12423 7426,12426 7427,12430 7428,12433 7429,12436 7430,12440 7431,12443 7432,12447 7432,12450 7432,12454 7432,12455 Z M 7432,12524 L 7432,12524 Z M 7139,12385 L 7139,12385 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id53">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7818" y="11988" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8112,12058 L 8112,12058 8112,12062 8112,12065 8111,12069 8110,12072 8110,12076 8109,12079 8107,12083 8106,12086 8104,12089 8103,12093 8101,12096 8099,12099 8097,12101 8094,12104 8092,12107 8089,12109 8086,12112 8084,12114 8081,12116 8077,12118 8074,12119 8071,12121 8068,12122 8064,12124 8061,12125 8057,12125 8054,12126 8050,12127 8047,12127 8043,12127 7889,12127 7889,12127 7885,12127 7882,12127 7878,12126 7875,12125 7871,12125 7868,12124 7864,12122 7861,12121 7858,12119 7854,12118 7851,12116 7848,12114 7846,12112 7843,12109 7840,12107 7838,12104 7835,12101 7833,12099 7831,12096 7829,12092 7828,12089 7826,12086 7825,12083 7823,12079 7822,12076 7822,12072 7821,12069 7820,12065 7820,12062 7820,12058 7819,12058 7820,12058 7820,12054 7820,12051 7821,12047 7821,12044 7822,12040 7823,12037 7824,12033 7826,12030 7827,12027 7829,12024 7831,12021 7833,12018 7835,12015 7837,12012 7840,12010 7842,12007 7845,12005 7848,12003 7851,12000 7854,11999 7857,11997 7860,11995 7864,11994 7867,11993 7870,11992 7874,11991 7877,11990 7881,11989 7884,11989 7888,11989 8043,11988 8043,11989 8047,11989 8050,11989 8054,11990 8057,11990 8061,11991 8064,11992 8068,11993 8071,11995 8074,11996 8077,11998 8080,12000 8083,12002 8086,12004 8089,12006 8091,12009 8094,12011 8096,12014 8098,12017 8101,12020 8102,12023 8104,12026 8106,12029 8107,12033 8108,12036 8109,12039 8110,12043 8111,12046 8112,12050 8112,12053 8112,12057 8112,12058 Z M 8112,12127 L 8112,12127 Z M 7819,11988 L 7819,11988 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id54">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7819" y="12188" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8112,12258 L 8112,12258 8112,12262 8112,12265 8111,12269 8110,12272 8110,12276 8109,12279 8107,12283 8106,12286 8104,12289 8103,12293 8101,12296 8099,12299 8097,12301 8094,12304 8092,12307 8089,12309 8086,12312 8084,12314 8081,12316 8077,12318 8074,12319 8071,12321 8068,12322 8064,12324 8061,12325 8057,12325 8054,12326 8050,12327 8047,12327 8043,12327 7889,12327 7889,12327 7885,12327 7882,12327 7878,12326 7875,12325 7871,12325 7868,12324 7864,12322 7861,12321 7858,12319 7854,12318 7851,12316 7848,12314 7846,12312 7843,12309 7840,12307 7838,12304 7835,12301 7833,12299 7831,12296 7829,12292 7828,12289 7826,12286 7825,12283 7823,12279 7822,12276 7822,12272 7821,12269 7820,12265 7820,12262 7820,12258 7819,12258 7820,12258 7820,12254 7820,12251 7821,12247 7821,12244 7822,12240 7823,12237 7824,12233 7826,12230 7827,12227 7829,12224 7831,12221 7833,12218 7835,12215 7837,12212 7840,12210 7842,12207 7845,12205 7848,12203 7851,12200 7854,12199 7857,12197 7860,12195 7864,12194 7867,12193 7870,12192 7874,12191 7877,12190 7881,12189 7884,12189 7888,12189 8043,12188 8043,12189 8047,12189 8050,12189 8054,12190 8057,12190 8061,12191 8064,12192 8068,12193 8071,12195 8074,12196 8077,12198 8080,12200 8083,12202 8086,12204 8089,12206 8091,12209 8094,12211 8096,12214 8098,12217 8101,12220 8102,12223 8104,12226 8106,12229 8107,12233 8108,12236 8109,12239 8110,12243 8111,12246 8112,12250 8112,12253 8112,12257 8112,12258 Z M 8112,12327 L 8112,12327 Z M 7819,12188 L 7819,12188 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id55">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7819" y="12388" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8112,12458 L 8112,12458 8112,12462 8112,12465 8111,12469 8110,12472 8110,12476 8109,12479 8107,12483 8106,12486 8104,12489 8103,12493 8101,12496 8099,12499 8097,12501 8094,12504 8092,12507 8089,12509 8086,12512 8084,12514 8081,12516 8077,12518 8074,12519 8071,12521 8068,12522 8064,12524 8061,12525 8057,12525 8054,12526 8050,12527 8047,12527 8043,12527 7889,12527 7889,12527 7885,12527 7882,12527 7878,12526 7875,12525 7871,12525 7868,12524 7864,12522 7861,12521 7858,12519 7854,12518 7851,12516 7848,12514 7846,12512 7843,12509 7840,12507 7838,12504 7835,12501 7833,12499 7831,12496 7829,12492 7828,12489 7826,12486 7825,12483 7823,12479 7822,12476 7822,12472 7821,12469 7820,12465 7820,12462 7820,12458 7819,12458 7820,12458 7820,12454 7820,12451 7821,12447 7821,12444 7822,12440 7823,12437 7824,12433 7826,12430 7827,12427 7829,12424 7831,12421 7833,12418 7835,12415 7837,12412 7840,12410 7842,12407 7845,12405 7848,12403 7851,12400 7854,12399 7857,12397 7860,12395 7864,12394 7867,12393 7870,12392 7874,12391 7877,12390 7881,12389 7884,12389 7888,12389 8043,12388 8043,12389 8047,12389 8050,12389 8054,12390 8057,12390 8061,12391 8064,12392 8068,12393 8071,12395 8074,12396 8077,12398 8080,12400 8083,12402 8086,12404 8089,12406 8091,12409 8094,12411 8096,12414 8098,12417 8101,12420 8102,12423 8104,12426 8106,12429 8107,12433 8108,12436 8109,12439 8110,12443 8111,12446 8112,12450 8112,12453 8112,12457 8112,12458 Z M 8112,12527 L 8112,12527 Z M 7819,12388 L 7819,12388 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id56">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3046" y="11960" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3339,12030 L 3339,12030 3339,12034 3339,12037 3338,12041 3337,12044 3337,12048 3336,12051 3334,12055 3333,12058 3331,12061 3330,12065 3328,12068 3326,12071 3324,12073 3321,12076 3319,12079 3316,12081 3313,12084 3311,12086 3308,12088 3304,12090 3301,12091 3298,12093 3295,12094 3291,12096 3288,12097 3284,12097 3281,12098 3277,12099 3274,12099 3270,12099 3116,12099 3116,12099 3112,12099 3109,12099 3105,12098 3102,12097 3098,12097 3095,12096 3091,12094 3088,12093 3085,12091 3081,12090 3078,12088 3075,12086 3073,12084 3070,12081 3067,12079 3065,12076 3062,12073 3060,12071 3058,12068 3056,12064 3055,12061 3053,12058 3052,12055 3050,12051 3049,12048 3049,12044 3048,12041 3047,12037 3047,12034 3047,12030 3046,12030 3047,12030 3047,12026 3047,12023 3048,12019 3048,12016 3049,12012 3050,12009 3051,12005 3053,12002 3054,11999 3056,11996 3058,11993 3060,11990 3062,11987 3064,11984 3067,11982 3069,11979 3072,11977 3075,11975 3078,11972 3081,11971 3084,11969 3087,11967 3091,11966 3094,11965 3097,11964 3101,11963 3104,11962 3108,11961 3111,11961 3115,11961 3270,11960 3270,11961 3274,11961 3277,11961 3281,11962 3284,11962 3288,11963 3291,11964 3295,11965 3298,11967 3301,11968 3304,11970 3307,11972 3310,11974 3313,11976 3316,11978 3318,11981 3321,11983 3323,11986 3325,11989 3328,11992 3329,11995 3331,11998 3333,12001 3334,12005 3335,12008 3336,12011 3337,12015 3338,12018 3339,12022 3339,12025 3339,12029 3339,12030 Z M 3339,12099 L 3339,12099 Z M 3046,11960 L 3046,11960 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id57">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3046" y="12160" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3339,12230 L 3339,12230 3339,12234 3339,12237 3338,12241 3337,12244 3337,12248 3336,12251 3334,12255 3333,12258 3331,12261 3330,12265 3328,12268 3326,12271 3324,12273 3321,12276 3319,12279 3316,12281 3313,12284 3311,12286 3308,12288 3304,12290 3301,12291 3298,12293 3295,12294 3291,12296 3288,12297 3284,12297 3281,12298 3277,12299 3274,12299 3270,12299 3116,12299 3116,12299 3112,12299 3109,12299 3105,12298 3102,12297 3098,12297 3095,12296 3091,12294 3088,12293 3085,12291 3081,12290 3078,12288 3075,12286 3073,12284 3070,12281 3067,12279 3065,12276 3062,12273 3060,12271 3058,12268 3056,12264 3055,12261 3053,12258 3052,12255 3050,12251 3049,12248 3049,12244 3048,12241 3047,12237 3047,12234 3047,12230 3046,12230 3047,12230 3047,12226 3047,12223 3048,12219 3048,12216 3049,12212 3050,12209 3051,12205 3053,12202 3054,12199 3056,12196 3058,12193 3060,12190 3062,12187 3064,12184 3067,12182 3069,12179 3072,12177 3075,12175 3078,12172 3081,12171 3084,12169 3087,12167 3091,12166 3094,12165 3097,12164 3101,12163 3104,12162 3108,12161 3111,12161 3115,12161 3270,12160 3270,12161 3274,12161 3277,12161 3281,12162 3284,12162 3288,12163 3291,12164 3295,12165 3298,12167 3301,12168 3304,12170 3307,12172 3310,12174 3313,12176 3316,12178 3318,12181 3321,12183 3323,12186 3325,12189 3328,12192 3329,12195 3331,12198 3333,12201 3334,12205 3335,12208 3336,12211 3337,12215 3338,12218 3339,12222 3339,12225 3339,12229 3339,12230 Z M 3339,12299 L 3339,12299 Z M 3046,12160 L 3046,12160 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id58">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3045" y="12360" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3339,12430 L 3339,12430 3339,12434 3339,12437 3338,12441 3337,12444 3337,12448 3336,12451 3334,12455 3333,12458 3331,12461 3330,12465 3328,12468 3326,12471 3324,12473 3321,12476 3319,12479 3316,12481 3313,12484 3311,12486 3308,12488 3304,12490 3301,12491 3298,12493 3295,12494 3291,12496 3288,12497 3284,12497 3281,12498 3277,12499 3274,12499 3270,12499 3116,12499 3116,12499 3112,12499 3109,12499 3105,12498 3102,12497 3098,12497 3095,12496 3091,12494 3088,12493 3085,12491 3081,12490 3078,12488 3075,12486 3073,12484 3070,12481 3067,12479 3065,12476 3062,12473 3060,12471 3058,12468 3056,12464 3055,12461 3053,12458 3052,12455 3050,12451 3049,12448 3049,12444 3048,12441 3047,12437 3047,12434 3047,12430 3046,12430 3047,12430 3047,12426 3047,12423 3048,12419 3048,12416 3049,12412 3050,12409 3051,12405 3053,12402 3054,12399 3056,12396 3058,12393 3060,12390 3062,12387 3064,12384 3067,12382 3069,12379 3072,12377 3075,12375 3078,12372 3081,12371 3084,12369 3087,12367 3091,12366 3094,12365 3097,12364 3101,12363 3104,12362 3108,12361 3111,12361 3115,12361 3270,12360 3270,12361 3274,12361 3277,12361 3281,12362 3284,12362 3288,12363 3291,12364 3295,12365 3298,12367 3301,12368 3304,12370 3307,12372 3310,12374 3313,12376 3316,12378 3318,12381 3321,12383 3323,12386 3325,12389 3328,12392 3329,12395 3331,12398 3333,12401 3334,12405 3335,12408 3336,12411 3337,12415 3338,12418 3339,12422 3339,12425 3339,12429 3339,12430 Z M 3339,12499 L 3339,12499 Z M 3046,12360 L 3046,12360 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id59">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2697" y="11960" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2990,12030 L 2990,12030 2990,12034 2990,12037 2989,12041 2988,12044 2988,12048 2987,12051 2985,12055 2984,12058 2982,12061 2981,12065 2979,12068 2977,12071 2975,12073 2972,12076 2970,12079 2967,12081 2964,12084 2962,12086 2959,12088 2955,12090 2952,12091 2949,12093 2946,12094 2942,12096 2939,12097 2935,12097 2932,12098 2928,12099 2925,12099 2921,12099 2767,12099 2767,12099 2763,12099 2760,12099 2756,12098 2753,12097 2749,12097 2746,12096 2742,12094 2739,12093 2736,12091 2732,12090 2729,12088 2726,12086 2724,12084 2721,12081 2718,12079 2716,12076 2713,12073 2711,12071 2709,12068 2707,12064 2706,12061 2704,12058 2703,12055 2701,12051 2700,12048 2700,12044 2699,12041 2698,12037 2698,12034 2698,12030 2697,12030 2698,12030 2698,12026 2698,12023 2699,12019 2699,12016 2700,12012 2701,12009 2702,12005 2704,12002 2705,11999 2707,11996 2709,11993 2711,11990 2713,11987 2715,11984 2718,11982 2720,11979 2723,11977 2726,11975 2729,11972 2732,11971 2735,11969 2738,11967 2742,11966 2745,11965 2748,11964 2752,11963 2755,11962 2759,11961 2762,11961 2766,11961 2921,11960 2921,11961 2925,11961 2928,11961 2932,11962 2935,11962 2939,11963 2942,11964 2946,11965 2949,11967 2952,11968 2955,11970 2958,11972 2961,11974 2964,11976 2967,11978 2969,11981 2972,11983 2974,11986 2976,11989 2979,11992 2980,11995 2982,11998 2984,12001 2985,12005 2986,12008 2987,12011 2988,12015 2989,12018 2990,12022 2990,12025 2990,12029 2990,12030 Z M 2990,12099 L 2990,12099 Z M 2697,11960 L 2697,11960 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id60">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2697" y="12160" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2990,12230 L 2990,12230 2990,12234 2990,12237 2989,12241 2988,12244 2988,12248 2987,12251 2985,12255 2984,12258 2982,12261 2981,12265 2979,12268 2977,12271 2975,12273 2972,12276 2970,12279 2967,12281 2964,12284 2962,12286 2959,12288 2955,12290 2952,12291 2949,12293 2946,12294 2942,12296 2939,12297 2935,12297 2932,12298 2928,12299 2925,12299 2921,12299 2767,12299 2767,12299 2763,12299 2760,12299 2756,12298 2753,12297 2749,12297 2746,12296 2742,12294 2739,12293 2736,12291 2732,12290 2729,12288 2726,12286 2724,12284 2721,12281 2718,12279 2716,12276 2713,12273 2711,12271 2709,12268 2707,12264 2706,12261 2704,12258 2703,12255 2701,12251 2700,12248 2700,12244 2699,12241 2698,12237 2698,12234 2698,12230 2697,12230 2698,12230 2698,12226 2698,12223 2699,12219 2699,12216 2700,12212 2701,12209 2702,12205 2704,12202 2705,12199 2707,12196 2709,12193 2711,12190 2713,12187 2715,12184 2718,12182 2720,12179 2723,12177 2726,12175 2729,12172 2732,12171 2735,12169 2738,12167 2742,12166 2745,12165 2748,12164 2752,12163 2755,12162 2759,12161 2762,12161 2766,12161 2921,12160 2921,12161 2925,12161 2928,12161 2932,12162 2935,12162 2939,12163 2942,12164 2946,12165 2949,12167 2952,12168 2955,12170 2958,12172 2961,12174 2964,12176 2967,12178 2969,12181 2972,12183 2974,12186 2976,12189 2979,12192 2980,12195 2982,12198 2984,12201 2985,12205 2986,12208 2987,12211 2988,12215 2989,12218 2990,12222 2990,12225 2990,12229 2990,12230 Z M 2990,12299 L 2990,12299 Z M 2697,12160 L 2697,12160 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id61">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2696" y="12360" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2990,12430 L 2990,12430 2990,12434 2990,12437 2989,12441 2988,12444 2988,12448 2987,12451 2985,12455 2984,12458 2982,12461 2981,12465 2979,12468 2977,12471 2975,12473 2972,12476 2970,12479 2967,12481 2964,12484 2962,12486 2959,12488 2955,12490 2952,12491 2949,12493 2946,12494 2942,12496 2939,12497 2935,12497 2932,12498 2928,12499 2925,12499 2921,12499 2767,12499 2767,12499 2763,12499 2760,12499 2756,12498 2753,12497 2749,12497 2746,12496 2742,12494 2739,12493 2736,12491 2732,12490 2729,12488 2726,12486 2724,12484 2721,12481 2718,12479 2716,12476 2713,12473 2711,12471 2709,12468 2707,12464 2706,12461 2704,12458 2703,12455 2701,12451 2700,12448 2700,12444 2699,12441 2698,12437 2698,12434 2698,12430 2697,12430 2698,12430 2698,12426 2698,12423 2699,12419 2699,12416 2700,12412 2701,12409 2702,12405 2704,12402 2705,12399 2707,12396 2709,12393 2711,12390 2713,12387 2715,12384 2718,12382 2720,12379 2723,12377 2726,12375 2729,12372 2732,12371 2735,12369 2738,12367 2742,12366 2745,12365 2748,12364 2752,12363 2755,12362 2759,12361 2762,12361 2766,12361 2921,12360 2921,12361 2925,12361 2928,12361 2932,12362 2935,12362 2939,12363 2942,12364 2946,12365 2949,12367 2952,12368 2955,12370 2958,12372 2961,12374 2964,12376 2967,12378 2969,12381 2972,12383 2974,12386 2976,12389 2979,12392 2980,12395 2982,12398 2984,12401 2985,12405 2986,12408 2987,12411 2988,12415 2989,12418 2990,12422 2990,12425 2990,12429 2990,12430 Z M 2990,12499 L 2990,12499 Z M 2697,12360 L 2697,12360 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id62">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3377" y="11963" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3670,12033 L 3670,12033 3670,12037 3670,12040 3669,12044 3668,12047 3668,12051 3667,12054 3665,12058 3664,12061 3662,12064 3661,12068 3659,12071 3657,12074 3655,12076 3652,12079 3650,12082 3647,12084 3644,12087 3642,12089 3639,12091 3635,12093 3632,12094 3629,12096 3626,12097 3622,12099 3619,12100 3615,12100 3612,12101 3608,12102 3605,12102 3601,12102 3447,12102 3447,12102 3443,12102 3440,12102 3436,12101 3433,12100 3429,12100 3426,12099 3422,12097 3419,12096 3416,12094 3412,12093 3409,12091 3406,12089 3404,12087 3401,12084 3398,12082 3396,12079 3393,12076 3391,12074 3389,12071 3387,12067 3386,12064 3384,12061 3383,12058 3381,12054 3380,12051 3380,12047 3379,12044 3378,12040 3378,12037 3378,12033 3377,12033 3378,12033 3378,12029 3378,12026 3379,12022 3379,12019 3380,12015 3381,12012 3382,12008 3384,12005 3385,12002 3387,11999 3389,11996 3391,11993 3393,11990 3395,11987 3398,11985 3400,11982 3403,11980 3406,11978 3409,11975 3412,11974 3415,11972 3418,11970 3422,11969 3425,11968 3428,11967 3432,11966 3435,11965 3439,11964 3442,11964 3446,11964 3601,11963 3601,11964 3605,11964 3608,11964 3612,11965 3615,11965 3619,11966 3622,11967 3626,11968 3629,11970 3632,11971 3635,11973 3638,11975 3641,11977 3644,11979 3647,11981 3649,11984 3652,11986 3654,11989 3656,11992 3659,11995 3660,11998 3662,12001 3664,12004 3665,12008 3666,12011 3667,12014 3668,12018 3669,12021 3670,12025 3670,12028 3670,12032 3670,12033 Z M 3670,12102 L 3670,12102 Z M 3377,11963 L 3377,11963 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id63">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3377" y="12163" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3670,12233 L 3670,12233 3670,12237 3670,12240 3669,12244 3668,12247 3668,12251 3667,12254 3665,12258 3664,12261 3662,12264 3661,12268 3659,12271 3657,12274 3655,12276 3652,12279 3650,12282 3647,12284 3644,12287 3642,12289 3639,12291 3635,12293 3632,12294 3629,12296 3626,12297 3622,12299 3619,12300 3615,12300 3612,12301 3608,12302 3605,12302 3601,12302 3447,12302 3447,12302 3443,12302 3440,12302 3436,12301 3433,12300 3429,12300 3426,12299 3422,12297 3419,12296 3416,12294 3412,12293 3409,12291 3406,12289 3404,12287 3401,12284 3398,12282 3396,12279 3393,12276 3391,12274 3389,12271 3387,12267 3386,12264 3384,12261 3383,12258 3381,12254 3380,12251 3380,12247 3379,12244 3378,12240 3378,12237 3378,12233 3377,12233 3378,12233 3378,12229 3378,12226 3379,12222 3379,12219 3380,12215 3381,12212 3382,12208 3384,12205 3385,12202 3387,12199 3389,12196 3391,12193 3393,12190 3395,12187 3398,12185 3400,12182 3403,12180 3406,12178 3409,12175 3412,12174 3415,12172 3418,12170 3422,12169 3425,12168 3428,12167 3432,12166 3435,12165 3439,12164 3442,12164 3446,12164 3601,12163 3601,12164 3605,12164 3608,12164 3612,12165 3615,12165 3619,12166 3622,12167 3626,12168 3629,12170 3632,12171 3635,12173 3638,12175 3641,12177 3644,12179 3647,12181 3649,12184 3652,12186 3654,12189 3656,12192 3659,12195 3660,12198 3662,12201 3664,12204 3665,12208 3666,12211 3667,12214 3668,12218 3669,12221 3670,12225 3670,12228 3670,12232 3670,12233 Z M 3670,12302 L 3670,12302 Z M 3377,12163 L 3377,12163 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id64">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3376" y="12363" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3670,12433 L 3670,12433 3670,12437 3670,12440 3669,12444 3668,12447 3668,12451 3667,12454 3665,12458 3664,12461 3662,12464 3661,12468 3659,12471 3657,12474 3655,12476 3652,12479 3650,12482 3647,12484 3644,12487 3642,12489 3639,12491 3635,12493 3632,12494 3629,12496 3626,12497 3622,12499 3619,12500 3615,12500 3612,12501 3608,12502 3605,12502 3601,12502 3447,12502 3447,12502 3443,12502 3440,12502 3436,12501 3433,12500 3429,12500 3426,12499 3422,12497 3419,12496 3416,12494 3412,12493 3409,12491 3406,12489 3404,12487 3401,12484 3398,12482 3396,12479 3393,12476 3391,12474 3389,12471 3387,12467 3386,12464 3384,12461 3383,12458 3381,12454 3380,12451 3380,12447 3379,12444 3378,12440 3378,12437 3378,12433 3377,12433 3378,12433 3378,12429 3378,12426 3379,12422 3379,12419 3380,12415 3381,12412 3382,12408 3384,12405 3385,12402 3387,12399 3389,12396 3391,12393 3393,12390 3395,12387 3398,12385 3400,12382 3403,12380 3406,12378 3409,12375 3412,12374 3415,12372 3418,12370 3422,12369 3425,12368 3428,12367 3432,12366 3435,12365 3439,12364 3442,12364 3446,12364 3601,12363 3601,12364 3605,12364 3608,12364 3612,12365 3615,12365 3619,12366 3622,12367 3626,12368 3629,12370 3632,12371 3635,12373 3638,12375 3641,12377 3644,12379 3647,12381 3649,12384 3652,12386 3654,12389 3656,12392 3659,12395 3660,12398 3662,12401 3664,12404 3665,12408 3666,12411 3667,12414 3668,12418 3669,12421 3670,12425 3670,12428 3670,12432 3670,12433 Z M 3670,12502 L 3670,12502 Z M 3377,12363 L 3377,12363 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id65">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1216" y="9669" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1466" y="10065"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1466" y="10412"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id66">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1236" y="2187" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 4856,5383 L 1254,5383 1254,2205 8458,2205 8458,5383 4856,5383 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4856,5383 L 1254,5383 1254,2205 8458,2205 8458,5383 4856,5383 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="1354" y="2523"><tspan fill="rgb(0,0,0)" stroke="none">Armv8</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="1354" y="2904"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id67">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1938" y="3355" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 3356,4539 L 1956,4539 1956,3373 4756,3373 4756,4539 3356,4539 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3356,4539 L 1956,4539 1956,3373 4756,3373 4756,4539 3356,4539 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2817" y="3677"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2127" y="4030"><tspan fill="rgb(255,255,255)" stroke="none">Marvell </tspan><tspan fill="rgb(255,255,255)" stroke="none">ThunderX2</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2849" y="4383"><tspan fill="rgb(255,255,255)" stroke="none">CN9975</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id68">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2910" y="5285" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 3363,5728 L 2919,5728 2919,5294 3806,5294 3806,5728 3363,5728 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 3363,5728 L 2919,5728 2919,5294 3806,5294 3806,5728 3363,5728 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3088" y="5592"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id69">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3153" y="5682" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3237,5790 L 3162,5790 3162,5691 3311,5691 3311,5790 3237,5790 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3237,5790 L 3162,5790 3162,5691 3311,5691 3311,5790 3237,5790 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id70">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3364" y="5680" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3448,5788 L 3373,5788 3373,5689 3522,5689 3522,5788 3448,5788 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3448,5788 L 3373,5788 3373,5689 3522,5689 3522,5788 3448,5788 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id71">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3129" y="4553" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 3406,5286 L 3129,5125 3267,5125 3267,4715 3129,4715 3406,4553 3684,4715 3545,4715 3545,5125 3684,5125 3406,5286 Z M 3129,5286 L 3129,5286 Z M 3684,4553 L 3684,4553 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id72">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3168" y="4743" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 3406,5086 L 3168,5086 3168,4743 3643,4743 3643,5086 3406,5086 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3177" y="5028"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id73">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4656" y="2650" width="1147" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4906" y="3057"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id74">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5258" y="3340" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 6676,4524 L 5276,4524 5276,3358 8076,3358 8076,4524 6676,4524 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 6676,4524 L 5276,4524 5276,3358 8076,3358 8076,4524 6676,4524 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6101" y="3662"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1 </tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5447" y="4015"><tspan fill="rgb(255,255,255)" stroke="none">Marvell </tspan><tspan fill="rgb(255,255,255)" stroke="none">ThunderX2</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6169" y="4368"><tspan fill="rgb(255,255,255)" stroke="none">CN9975</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id75">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6225" y="5279" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 6678,5722 L 6234,5722 6234,5288 7121,5288 7121,5722 6678,5722 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6678,5722 L 6234,5722 6234,5288 7121,5288 7121,5722 6678,5722 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6403" y="5586"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id76">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6531" y="5767" width="39" height="783"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6551,5785 L 6549,6531"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6551,5785 L 6551,5785 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6549,6531 L 6549,6531 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id77">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6467" y="5676" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6551,5784 L 6476,5784 6476,5685 6625,5685 6625,5784 6551,5784 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6551,5784 L 6476,5784 6476,5685 6625,5685 6625,5784 6551,5784 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id78">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6679" y="5674" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6763,5782 L 6688,5782 6688,5683 6837,5683 6837,5782 6763,5782 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6763,5782 L 6688,5782 6688,5683 6837,5683 6837,5782 6763,5782 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id79">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6769" y="5765" width="43" height="785"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6787,5783 L 6793,6531"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6787,5783 L 6787,5783 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6793,6531 L 6793,6531 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id80">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6444" y="4548" width="556" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 6721,5281 L 6444,5120 6582,5120 6582,4710 6444,4710 6721,4548 6999,4710 6860,4710 6860,5120 6999,5120 6721,5281 Z M 6444,5281 L 6444,5281 Z M 6999,4548 L 6999,4548 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id81">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6482" y="4738" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 6720,5081 L 6482,5081 6482,4738 6957,4738 6957,5081 6720,5081 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6491" y="5023"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id82">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4555" y="3475" width="891" height="1018"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 4555,3983 L 4814,3475 4814,3729 5185,3729 5185,3475 5445,3983 5185,4492 5185,4237 4814,4237 4814,4492 4555,3983 Z M 4555,3475 L 4555,3475 Z M 5445,4492 L 5445,4492 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id83">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6153" y="6406" width="997" height="234"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7096,6459 L 7096,6459 7096,6466 7096,6472 7095,6479 7095,6485 7094,6491 7093,6498 7093,6504 7091,6510 7090,6516 7089,6522 7088,6527 7086,6533 7084,6538 7083,6543 7081,6547 7079,6552 7077,6556 7075,6560 7073,6564 7070,6567 7068,6570 7066,6573 7063,6576 7061,6578 7058,6580 7056,6581 7053,6582 7050,6583 7048,6584 7045,6584 6258,6586 6258,6586 6255,6586 6253,6585 6250,6584 6247,6583 6245,6582 6242,6580 6240,6578 6237,6575 6235,6572 6233,6569 6230,6566 6228,6562 6226,6558 6224,6554 6222,6549 6220,6544 6219,6539 6217,6534 6215,6529 6214,6523 6213,6517 6212,6511 6210,6505 6210,6499 6209,6493 6208,6486 6208,6480 6207,6473 6207,6467 6207,6460"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7096,6459 L 7096,6459 Z"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6206,6586 L 6206,6586 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id84">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2512" y="1521" width="4708" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2764" y="2069"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test (SUT)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id85">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1170" y="4407" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1420" y="4803"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1420" y="5150"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id86">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4617" y="10685" width="892" height="1018"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 4617,11193 L 4876,10685 4876,10939 5247,10939 5247,10685 5507,11193 5247,11702 5247,11447 4876,11447 4876,11702 4617,11193 Z M 4617,10685 L 4617,10685 Z M 5507,11702 L 5507,11702 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id87">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4772" y="10965" width="609" height="382"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 5076,11346 L 4772,11346 4772,10965 5380,10965 5380,11346 5076,11346 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4840" y="11269"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id88">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3320" y="2779" width="249" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3568,2838 L 3568,2838 3568,2841 3568,2844 3567,2847 3567,2850 3566,2853 3565,2856 3564,2859 3563,2862 3562,2864 3560,2867 3559,2870 3557,2872 3555,2875 3553,2877 3551,2879 3549,2881 3547,2883 3544,2885 3542,2887 3539,2888 3536,2890 3534,2891 3531,2892 3528,2893 3525,2894 3522,2895 3519,2895 3516,2896 3513,2896 3510,2896 3380,2896 3380,2896 3377,2896 3374,2896 3371,2895 3368,2895 3365,2894 3362,2893 3359,2892 3356,2891 3354,2890 3351,2888 3348,2887 3346,2885 3343,2883 3341,2881 3339,2879 3337,2877 3335,2875 3333,2872 3331,2870 3330,2867 3328,2864 3327,2862 3326,2859 3325,2856 3324,2853 3323,2850 3323,2847 3322,2844 3322,2841 3322,2838 3321,2838 3322,2838 3322,2835 3322,2832 3323,2829 3323,2826 3324,2823 3325,2820 3326,2817 3327,2815 3328,2812 3330,2809 3331,2807 3333,2804 3335,2802 3337,2800 3339,2797 3341,2795 3343,2793 3345,2791 3348,2790 3350,2788 3353,2787 3356,2785 3359,2784 3361,2783 3364,2782 3367,2781 3370,2781 3373,2780 3376,2780 3379,2780 3510,2779 3510,2780 3513,2780 3516,2780 3519,2781 3522,2781 3525,2782 3528,2783 3531,2784 3533,2785 3536,2786 3539,2788 3541,2789 3544,2791 3546,2793 3548,2795 3551,2797 3553,2799 3555,2801 3557,2803 3558,2806 3560,2808 3561,2811 3563,2814 3564,2817 3565,2819 3566,2822 3567,2825 3567,2828 3568,2831 3568,2834 3568,2837 3568,2838 Z M 3568,2896 L 3568,2896 Z M 3321,2779 L 3321,2779 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id89">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3321" y="2947" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3568,3006 L 3568,3006 3568,3009 3568,3012 3567,3015 3567,3018 3566,3021 3565,3024 3564,3027 3563,3030 3562,3032 3560,3035 3559,3038 3557,3040 3555,3043 3553,3045 3551,3047 3549,3049 3547,3051 3544,3053 3542,3055 3539,3056 3536,3058 3534,3059 3531,3060 3528,3061 3525,3062 3522,3063 3519,3063 3516,3064 3513,3064 3510,3064 3380,3064 3380,3064 3377,3064 3374,3064 3371,3063 3368,3063 3365,3062 3362,3061 3359,3060 3356,3059 3354,3058 3351,3056 3348,3055 3346,3053 3343,3051 3341,3049 3339,3047 3337,3045 3335,3043 3333,3040 3331,3038 3330,3035 3328,3032 3327,3030 3326,3027 3325,3024 3324,3021 3323,3018 3323,3015 3322,3012 3322,3009 3322,3006 3321,3006 3322,3006 3322,3003 3322,3000 3323,2997 3323,2994 3324,2991 3325,2988 3326,2985 3327,2983 3328,2980 3330,2977 3331,2975 3333,2972 3335,2970 3337,2968 3339,2965 3341,2963 3343,2961 3345,2959 3348,2958 3350,2956 3353,2955 3356,2953 3359,2952 3361,2951 3364,2950 3367,2949 3370,2949 3373,2948 3376,2948 3379,2948 3510,2947 3510,2948 3513,2948 3516,2948 3519,2949 3522,2949 3525,2950 3528,2951 3531,2952 3533,2953 3536,2954 3539,2956 3541,2957 3544,2959 3546,2961 3548,2963 3551,2965 3553,2967 3555,2969 3557,2971 3558,2974 3560,2976 3561,2979 3563,2982 3564,2985 3565,2987 3566,2990 3567,2993 3567,2996 3568,2999 3568,3002 3568,3005 3568,3006 Z M 3568,3064 L 3568,3064 Z M 3321,2947 L 3321,2947 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id90">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3321" y="3115" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3568,3174 L 3568,3174 3568,3177 3568,3180 3567,3183 3567,3186 3566,3189 3565,3192 3564,3195 3563,3198 3562,3200 3560,3203 3559,3206 3557,3208 3555,3211 3553,3213 3551,3215 3549,3217 3547,3219 3544,3221 3542,3223 3539,3224 3536,3226 3534,3227 3531,3228 3528,3229 3525,3230 3522,3231 3519,3231 3516,3232 3513,3232 3510,3232 3380,3232 3380,3232 3377,3232 3374,3232 3371,3231 3368,3231 3365,3230 3362,3229 3359,3228 3356,3227 3354,3226 3351,3224 3348,3223 3346,3221 3343,3219 3341,3217 3339,3215 3337,3213 3335,3211 3333,3208 3331,3206 3330,3203 3328,3200 3327,3198 3326,3195 3325,3192 3324,3189 3323,3186 3323,3183 3322,3180 3322,3177 3322,3174 3321,3174 3322,3174 3322,3171 3322,3168 3323,3165 3323,3162 3324,3159 3325,3156 3326,3153 3327,3151 3328,3148 3330,3145 3331,3143 3333,3140 3335,3138 3337,3136 3339,3133 3341,3131 3343,3129 3345,3127 3348,3126 3350,3124 3353,3123 3356,3121 3359,3120 3361,3119 3364,3118 3367,3117 3370,3117 3373,3116 3376,3116 3379,3116 3510,3115 3510,3116 3513,3116 3516,3116 3519,3117 3522,3117 3525,3118 3528,3119 3531,3120 3533,3121 3536,3122 3539,3124 3541,3125 3544,3127 3546,3129 3548,3131 3551,3133 3553,3135 3555,3137 3557,3139 3558,3142 3560,3144 3561,3147 3563,3150 3564,3153 3565,3155 3566,3158 3567,3161 3567,3164 3568,3167 3568,3170 3568,3173 3568,3174 Z M 3568,3232 L 3568,3232 Z M 3321,3115 L 3321,3115 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id91">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3028" y="2779" width="247" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3274,2838 L 3274,2838 3274,2841 3274,2844 3273,2847 3273,2850 3272,2853 3271,2856 3270,2859 3269,2862 3268,2864 3266,2867 3265,2870 3263,2872 3261,2875 3259,2877 3257,2879 3255,2881 3253,2883 3250,2885 3248,2887 3245,2888 3242,2890 3240,2891 3237,2892 3234,2893 3231,2894 3228,2895 3225,2895 3222,2896 3219,2896 3216,2896 3087,2896 3087,2896 3084,2896 3081,2896 3078,2895 3075,2895 3072,2894 3069,2893 3066,2892 3063,2891 3061,2890 3058,2888 3055,2887 3053,2885 3050,2883 3048,2881 3046,2879 3044,2877 3042,2875 3040,2872 3038,2870 3037,2867 3035,2864 3034,2862 3033,2859 3032,2856 3031,2853 3030,2850 3030,2847 3029,2844 3029,2841 3029,2838 3028,2838 3029,2838 3029,2835 3029,2832 3030,2829 3030,2826 3031,2823 3032,2820 3033,2817 3034,2815 3035,2812 3037,2809 3038,2807 3040,2804 3042,2802 3044,2800 3046,2797 3048,2795 3050,2793 3052,2791 3055,2790 3057,2788 3060,2787 3063,2785 3066,2784 3068,2783 3071,2782 3074,2781 3077,2781 3080,2780 3083,2780 3086,2780 3216,2779 3216,2780 3219,2780 3222,2780 3225,2781 3228,2781 3231,2782 3234,2783 3237,2784 3239,2785 3242,2786 3245,2788 3247,2789 3250,2791 3252,2793 3254,2795 3257,2797 3259,2799 3261,2801 3263,2803 3264,2806 3266,2808 3267,2811 3269,2814 3270,2817 3271,2819 3272,2822 3273,2825 3273,2828 3274,2831 3274,2834 3274,2837 3274,2838 Z M 3274,2896 L 3274,2896 Z M 3028,2779 L 3028,2779 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id92">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3028" y="2947" width="248" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3274,3006 L 3274,3006 3274,3009 3274,3012 3273,3015 3273,3018 3272,3021 3271,3024 3270,3027 3269,3030 3268,3032 3266,3035 3265,3038 3263,3040 3261,3043 3259,3045 3257,3047 3255,3049 3253,3051 3250,3053 3248,3055 3245,3056 3242,3058 3240,3059 3237,3060 3234,3061 3231,3062 3228,3063 3225,3063 3222,3064 3219,3064 3216,3064 3087,3064 3087,3064 3084,3064 3081,3064 3078,3063 3075,3063 3072,3062 3069,3061 3066,3060 3063,3059 3061,3058 3058,3056 3055,3055 3053,3053 3050,3051 3048,3049 3046,3047 3044,3045 3042,3043 3040,3040 3038,3038 3037,3035 3035,3032 3034,3030 3033,3027 3032,3024 3031,3021 3030,3018 3030,3015 3029,3012 3029,3009 3029,3006 3028,3006 3029,3006 3029,3003 3029,3000 3030,2997 3030,2994 3031,2991 3032,2988 3033,2985 3034,2983 3035,2980 3037,2977 3038,2975 3040,2972 3042,2970 3044,2968 3046,2965 3048,2963 3050,2961 3052,2959 3055,2958 3057,2956 3060,2955 3063,2953 3066,2952 3068,2951 3071,2950 3074,2949 3077,2949 3080,2948 3083,2948 3086,2948 3216,2947 3216,2948 3219,2948 3222,2948 3225,2949 3228,2949 3231,2950 3234,2951 3237,2952 3239,2953 3242,2954 3245,2956 3247,2957 3250,2959 3252,2961 3254,2963 3257,2965 3259,2967 3261,2969 3263,2971 3264,2974 3266,2976 3267,2979 3269,2982 3270,2985 3271,2987 3272,2990 3273,2993 3273,2996 3274,2999 3274,3002 3274,3005 3274,3006 Z M 3274,3064 L 3274,3064 Z M 3028,2947 L 3028,2947 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id93">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3028" y="3115" width="248" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3274,3174 L 3274,3174 3274,3177 3274,3180 3273,3183 3273,3186 3272,3189 3271,3192 3270,3195 3269,3198 3268,3200 3266,3203 3265,3206 3263,3208 3261,3211 3259,3213 3257,3215 3255,3217 3253,3219 3250,3221 3248,3223 3245,3224 3242,3226 3240,3227 3237,3228 3234,3229 3231,3230 3228,3231 3225,3231 3222,3232 3219,3232 3216,3232 3087,3232 3087,3232 3084,3232 3081,3232 3078,3231 3075,3231 3072,3230 3069,3229 3066,3228 3063,3227 3061,3226 3058,3224 3055,3223 3053,3221 3050,3219 3048,3217 3046,3215 3044,3213 3042,3211 3040,3208 3038,3206 3037,3203 3035,3200 3034,3198 3033,3195 3032,3192 3031,3189 3030,3186 3030,3183 3029,3180 3029,3177 3029,3174 3028,3174 3029,3174 3029,3171 3029,3168 3030,3165 3030,3162 3031,3159 3032,3156 3033,3153 3034,3151 3035,3148 3037,3145 3038,3143 3040,3140 3042,3138 3044,3136 3046,3133 3048,3131 3050,3129 3052,3127 3055,3126 3057,3124 3060,3123 3063,3121 3066,3120 3068,3119 3071,3118 3074,3117 3077,3117 3080,3116 3083,3116 3086,3116 3216,3115 3216,3116 3219,3116 3222,3116 3225,3117 3228,3117 3231,3118 3234,3119 3237,3120 3239,3121 3242,3122 3245,3124 3247,3125 3250,3127 3252,3129 3254,3131 3257,3133 3259,3135 3261,3137 3263,3139 3264,3142 3266,3144 3267,3147 3269,3150 3270,3153 3271,3155 3272,3158 3273,3161 3273,3164 3274,3167 3274,3170 3274,3173 3274,3174 Z M 3274,3232 L 3274,3232 Z M 3028,3115 L 3028,3115 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id94">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3599" y="2781" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3845,2840 L 3845,2840 3845,2843 3845,2846 3844,2849 3844,2852 3843,2855 3842,2858 3841,2861 3840,2864 3839,2866 3837,2869 3836,2872 3834,2874 3832,2877 3830,2879 3828,2881 3826,2883 3824,2885 3821,2887 3819,2889 3816,2890 3813,2892 3811,2893 3808,2894 3805,2895 3802,2896 3799,2897 3796,2897 3793,2898 3790,2898 3787,2898 3658,2898 3658,2898 3655,2898 3652,2898 3649,2897 3646,2897 3643,2896 3640,2895 3637,2894 3634,2893 3632,2892 3629,2890 3626,2889 3624,2887 3621,2885 3619,2883 3617,2881 3615,2879 3613,2877 3611,2874 3609,2872 3608,2869 3606,2866 3605,2864 3604,2861 3603,2858 3602,2855 3601,2852 3601,2849 3600,2846 3600,2843 3600,2840 3599,2840 3600,2840 3600,2837 3600,2834 3601,2831 3601,2828 3602,2825 3603,2822 3604,2819 3605,2817 3606,2814 3608,2811 3609,2809 3611,2806 3613,2804 3615,2802 3617,2799 3619,2797 3621,2795 3623,2793 3626,2792 3628,2790 3631,2789 3634,2787 3637,2786 3639,2785 3642,2784 3645,2783 3648,2783 3651,2782 3654,2782 3657,2782 3787,2781 3787,2782 3790,2782 3793,2782 3796,2783 3799,2783 3802,2784 3805,2785 3808,2786 3810,2787 3813,2788 3816,2790 3818,2791 3821,2793 3823,2795 3825,2797 3828,2799 3830,2801 3832,2803 3834,2805 3835,2808 3837,2810 3838,2813 3840,2816 3841,2819 3842,2821 3843,2824 3844,2827 3844,2830 3845,2833 3845,2836 3845,2839 3845,2840 Z M 3845,2898 L 3845,2898 Z M 3599,2781 L 3599,2781 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id95">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3599" y="2949" width="248" height="120"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3845,3008 L 3845,3008 3845,3011 3845,3014 3844,3017 3844,3020 3843,3023 3843,3025 3842,3028 3841,3031 3839,3034 3838,3036 3837,3039 3835,3041 3833,3044 3831,3046 3829,3048 3827,3050 3825,3052 3823,3054 3821,3056 3818,3058 3816,3059 3813,3061 3810,3062 3807,3063 3805,3064 3802,3065 3799,3066 3796,3066 3793,3067 3790,3067 3787,3067 3658,3067 3658,3067 3655,3067 3652,3067 3649,3066 3646,3066 3643,3065 3640,3064 3637,3063 3635,3062 3632,3061 3629,3059 3627,3058 3624,3056 3622,3054 3620,3052 3617,3050 3615,3048 3613,3046 3611,3043 3610,3041 3608,3038 3607,3035 3605,3033 3604,3030 3603,3027 3602,3024 3601,3021 3601,3018 3600,3015 3600,3012 3600,3009 3599,3008 3599,3008 3599,3005 3599,3002 3600,2999 3600,2996 3601,2993 3602,2990 3603,2987 3604,2984 3605,2981 3607,2979 3608,2976 3610,2974 3612,2971 3614,2969 3616,2967 3618,2965 3620,2963 3623,2961 3625,2959 3628,2957 3631,2956 3633,2954 3636,2953 3639,2952 3642,2951 3645,2950 3648,2950 3651,2949 3654,2949 3657,2949 3786,2949 3786,2949 3789,2949 3792,2949 3795,2950 3798,2950 3801,2951 3803,2951 3806,2952 3809,2953 3812,2955 3814,2956 3817,2957 3819,2959 3822,2961 3824,2963 3826,2965 3828,2967 3830,2969 3832,2971 3834,2973 3836,2976 3837,2978 3839,2981 3840,2984 3841,2987 3842,2989 3843,2992 3844,2995 3844,2998 3845,3001 3845,3004 3845,3007 3845,3008 Z M 3845,3067 L 3845,3067 Z M 3599,2949 L 3599,2949 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id96">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3599" y="3117" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3845,3176 L 3845,3176 3845,3179 3845,3182 3844,3185 3844,3188 3843,3191 3842,3194 3841,3197 3840,3200 3839,3202 3837,3205 3836,3208 3834,3210 3832,3213 3830,3215 3828,3217 3826,3219 3824,3221 3821,3223 3819,3225 3816,3226 3813,3228 3811,3229 3808,3230 3805,3231 3802,3232 3799,3233 3796,3233 3793,3234 3790,3234 3787,3234 3658,3234 3658,3234 3655,3234 3652,3234 3649,3233 3646,3233 3643,3232 3640,3231 3637,3230 3634,3229 3632,3228 3629,3226 3626,3225 3624,3223 3621,3221 3619,3219 3617,3217 3615,3215 3613,3213 3611,3210 3609,3208 3608,3205 3606,3202 3605,3200 3604,3197 3603,3194 3602,3191 3601,3188 3601,3185 3600,3182 3600,3179 3600,3176 3599,3176 3600,3176 3600,3173 3600,3170 3601,3167 3601,3164 3602,3161 3603,3158 3604,3155 3605,3153 3606,3150 3608,3147 3609,3145 3611,3142 3613,3140 3615,3138 3617,3135 3619,3133 3621,3131 3623,3129 3626,3128 3628,3126 3631,3125 3634,3123 3637,3122 3639,3121 3642,3120 3645,3119 3648,3119 3651,3118 3654,3118 3657,3118 3787,3117 3787,3118 3790,3118 3793,3118 3796,3119 3799,3119 3802,3120 3805,3121 3808,3122 3810,3123 3813,3124 3816,3126 3818,3127 3821,3129 3823,3131 3825,3133 3828,3135 3830,3137 3832,3139 3834,3141 3835,3144 3837,3146 3838,3149 3840,3152 3841,3155 3842,3157 3843,3160 3844,3163 3844,3166 3845,3169 3845,3172 3845,3175 3845,3176 Z M 3845,3234 L 3845,3234 Z M 3599,3117 L 3599,3117 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id97">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4211" y="2777" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4458,2836 L 4458,2836 4458,2839 4458,2842 4457,2845 4457,2848 4456,2851 4455,2854 4454,2857 4453,2860 4452,2862 4450,2865 4449,2868 4447,2870 4445,2873 4443,2875 4441,2877 4439,2879 4437,2881 4434,2883 4432,2885 4429,2886 4426,2888 4424,2889 4421,2890 4418,2891 4415,2892 4412,2893 4409,2893 4406,2894 4403,2894 4400,2894 4270,2894 4270,2894 4267,2894 4264,2894 4261,2893 4258,2893 4255,2892 4252,2891 4249,2890 4246,2889 4244,2888 4241,2886 4238,2885 4236,2883 4233,2881 4231,2879 4229,2877 4227,2875 4225,2873 4223,2870 4221,2868 4220,2865 4218,2862 4217,2860 4216,2857 4215,2854 4214,2851 4213,2848 4213,2845 4212,2842 4212,2839 4212,2836 4211,2836 4212,2836 4212,2833 4212,2830 4213,2827 4213,2824 4214,2821 4215,2818 4216,2815 4217,2813 4218,2810 4220,2807 4221,2805 4223,2802 4225,2800 4227,2798 4229,2795 4231,2793 4233,2791 4235,2789 4238,2788 4240,2786 4243,2785 4246,2783 4249,2782 4251,2781 4254,2780 4257,2779 4260,2779 4263,2778 4266,2778 4269,2778 4400,2777 4400,2778 4403,2778 4406,2778 4409,2779 4412,2779 4415,2780 4418,2781 4421,2782 4423,2783 4426,2784 4429,2786 4431,2787 4434,2789 4436,2791 4438,2793 4441,2795 4443,2797 4445,2799 4447,2801 4448,2804 4450,2806 4451,2809 4453,2812 4454,2815 4455,2817 4456,2820 4457,2823 4457,2826 4458,2829 4458,2832 4458,2835 4458,2836 Z M 4458,2894 L 4458,2894 Z M 4211,2777 L 4211,2777 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id98">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4211" y="2945" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4458,3004 L 4458,3004 4458,3007 4458,3010 4457,3013 4457,3016 4456,3019 4455,3022 4454,3025 4453,3028 4452,3030 4450,3033 4449,3036 4447,3038 4445,3041 4443,3043 4441,3045 4439,3047 4437,3049 4434,3051 4432,3053 4429,3054 4426,3056 4424,3057 4421,3058 4418,3059 4415,3060 4412,3061 4409,3061 4406,3062 4403,3062 4400,3062 4270,3062 4270,3062 4267,3062 4264,3062 4261,3061 4258,3061 4255,3060 4252,3059 4249,3058 4246,3057 4244,3056 4241,3054 4238,3053 4236,3051 4233,3049 4231,3047 4229,3045 4227,3043 4225,3041 4223,3038 4221,3036 4220,3033 4218,3030 4217,3028 4216,3025 4215,3022 4214,3019 4213,3016 4213,3013 4212,3010 4212,3007 4212,3004 4211,3004 4212,3004 4212,3001 4212,2998 4213,2995 4213,2992 4214,2989 4215,2986 4216,2983 4217,2981 4218,2978 4220,2975 4221,2973 4223,2970 4225,2968 4227,2966 4229,2963 4231,2961 4233,2959 4235,2957 4238,2956 4240,2954 4243,2953 4246,2951 4249,2950 4251,2949 4254,2948 4257,2947 4260,2947 4263,2946 4266,2946 4269,2946 4400,2945 4400,2946 4403,2946 4406,2946 4409,2947 4412,2947 4415,2948 4418,2949 4421,2950 4423,2951 4426,2952 4429,2954 4431,2955 4434,2957 4436,2959 4438,2961 4441,2963 4443,2965 4445,2967 4447,2969 4448,2972 4450,2974 4451,2977 4453,2980 4454,2983 4455,2985 4456,2988 4457,2991 4457,2994 4458,2997 4458,3000 4458,3003 4458,3004 Z M 4458,3062 L 4458,3062 Z M 4211,2945 L 4211,2945 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id99">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4211" y="3113" width="248" height="120"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4458,3172 L 4458,3172 4458,3175 4458,3178 4457,3181 4457,3184 4456,3187 4456,3189 4455,3192 4454,3195 4452,3198 4451,3200 4450,3203 4448,3205 4446,3208 4444,3210 4442,3212 4440,3214 4438,3216 4436,3218 4434,3220 4431,3222 4429,3223 4426,3225 4423,3226 4420,3227 4418,3228 4415,3229 4412,3230 4409,3230 4406,3231 4403,3231 4400,3231 4270,3231 4270,3231 4267,3231 4264,3231 4261,3230 4258,3230 4255,3229 4252,3228 4249,3227 4247,3226 4244,3225 4241,3223 4239,3222 4236,3220 4234,3218 4232,3216 4229,3214 4227,3212 4225,3210 4223,3207 4222,3205 4220,3202 4219,3199 4217,3197 4216,3194 4215,3191 4214,3188 4213,3185 4213,3182 4212,3179 4212,3176 4212,3173 4211,3172 4211,3172 4211,3169 4211,3166 4212,3163 4212,3160 4213,3157 4214,3154 4215,3151 4216,3148 4217,3145 4219,3143 4220,3140 4222,3138 4224,3135 4226,3133 4228,3131 4230,3129 4232,3127 4235,3125 4237,3123 4240,3121 4243,3120 4245,3118 4248,3117 4251,3116 4254,3115 4257,3114 4260,3114 4263,3113 4266,3113 4269,3113 4399,3113 4399,3113 4402,3113 4405,3113 4408,3114 4411,3114 4414,3115 4416,3115 4419,3116 4422,3117 4425,3119 4427,3120 4430,3121 4432,3123 4435,3125 4437,3127 4439,3129 4441,3131 4443,3133 4445,3135 4447,3137 4449,3140 4450,3142 4452,3145 4453,3148 4454,3151 4455,3153 4456,3156 4457,3159 4457,3162 4458,3165 4458,3168 4458,3171 4458,3172 Z M 4458,3231 L 4458,3231 Z M 4211,3113 L 4211,3113 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id100">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3916" y="2777" width="249" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4164,2836 L 4164,2836 4164,2839 4164,2842 4163,2845 4163,2848 4162,2851 4161,2854 4160,2857 4159,2860 4158,2862 4156,2865 4155,2868 4153,2870 4151,2873 4149,2875 4147,2877 4145,2879 4143,2881 4140,2883 4138,2885 4135,2886 4132,2888 4130,2889 4127,2890 4124,2891 4121,2892 4118,2893 4115,2893 4112,2894 4109,2894 4106,2894 3976,2894 3976,2894 3973,2894 3970,2894 3967,2893 3964,2893 3961,2892 3958,2891 3955,2890 3952,2889 3950,2888 3947,2886 3944,2885 3942,2883 3939,2881 3937,2879 3935,2877 3933,2875 3931,2873 3929,2870 3927,2868 3926,2865 3924,2862 3923,2860 3922,2857 3921,2854 3920,2851 3919,2848 3919,2845 3918,2842 3918,2839 3918,2836 3917,2836 3918,2836 3918,2833 3918,2830 3919,2827 3919,2824 3920,2821 3921,2818 3922,2815 3923,2813 3924,2810 3926,2807 3927,2805 3929,2802 3931,2800 3933,2798 3935,2795 3937,2793 3939,2791 3941,2789 3944,2788 3946,2786 3949,2785 3952,2783 3955,2782 3957,2781 3960,2780 3963,2779 3966,2779 3969,2778 3972,2778 3975,2778 4106,2777 4106,2778 4109,2778 4112,2778 4115,2779 4118,2779 4121,2780 4124,2781 4127,2782 4129,2783 4132,2784 4135,2786 4137,2787 4140,2789 4142,2791 4144,2793 4147,2795 4149,2797 4151,2799 4153,2801 4154,2804 4156,2806 4157,2809 4159,2812 4160,2815 4161,2817 4162,2820 4163,2823 4163,2826 4164,2829 4164,2832 4164,2835 4164,2836 Z M 4164,2894 L 4164,2894 Z M 3917,2777 L 3917,2777 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id101">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3917" y="2945" width="249" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4164,3004 L 4164,3004 4164,3007 4164,3010 4163,3013 4163,3016 4162,3019 4161,3022 4160,3025 4159,3028 4158,3030 4156,3033 4155,3036 4153,3038 4151,3041 4149,3043 4147,3045 4145,3047 4143,3049 4140,3051 4138,3053 4135,3054 4132,3056 4130,3057 4127,3058 4124,3059 4121,3060 4118,3061 4115,3061 4112,3062 4109,3062 4106,3062 3976,3062 3976,3062 3973,3062 3970,3062 3967,3061 3964,3061 3961,3060 3958,3059 3955,3058 3952,3057 3950,3056 3947,3054 3944,3053 3942,3051 3939,3049 3937,3047 3935,3045 3933,3043 3931,3041 3929,3038 3927,3036 3926,3033 3924,3030 3923,3028 3922,3025 3921,3022 3920,3019 3919,3016 3919,3013 3918,3010 3918,3007 3918,3004 3917,3004 3918,3004 3918,3001 3918,2998 3919,2995 3919,2992 3920,2989 3921,2986 3922,2983 3923,2981 3924,2978 3926,2975 3927,2973 3929,2970 3931,2968 3933,2966 3935,2963 3937,2961 3939,2959 3941,2957 3944,2956 3946,2954 3949,2953 3952,2951 3955,2950 3957,2949 3960,2948 3963,2947 3966,2947 3969,2946 3972,2946 3975,2946 4106,2945 4106,2946 4109,2946 4112,2946 4115,2947 4118,2947 4121,2948 4124,2949 4127,2950 4129,2951 4132,2952 4135,2954 4137,2955 4140,2957 4142,2959 4144,2961 4147,2963 4149,2965 4151,2967 4153,2969 4154,2972 4156,2974 4157,2977 4159,2980 4160,2983 4161,2985 4162,2988 4163,2991 4163,2994 4164,2997 4164,3000 4164,3003 4164,3004 Z M 4164,3062 L 4164,3062 Z M 3917,2945 L 3917,2945 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id102">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3917" y="3113" width="249" height="120"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4164,3172 L 4164,3172 4164,3175 4164,3178 4163,3181 4163,3184 4162,3187 4162,3189 4161,3192 4160,3195 4158,3198 4157,3200 4156,3203 4154,3205 4152,3208 4150,3210 4148,3212 4146,3214 4144,3216 4142,3218 4140,3220 4137,3222 4135,3223 4132,3225 4129,3226 4126,3227 4124,3228 4121,3229 4118,3230 4115,3230 4112,3231 4109,3231 4106,3231 3976,3231 3976,3231 3973,3231 3970,3231 3967,3230 3964,3230 3961,3229 3958,3228 3955,3227 3953,3226 3950,3225 3947,3223 3945,3222 3942,3220 3940,3218 3938,3216 3935,3214 3933,3212 3931,3210 3929,3207 3928,3205 3926,3202 3925,3199 3923,3197 3922,3194 3921,3191 3920,3188 3919,3185 3919,3182 3918,3179 3918,3176 3918,3173 3917,3172 3917,3172 3917,3169 3917,3166 3918,3163 3918,3160 3919,3157 3920,3154 3921,3151 3922,3148 3923,3145 3925,3143 3926,3140 3928,3138 3930,3135 3932,3133 3934,3131 3936,3129 3938,3127 3941,3125 3943,3123 3946,3121 3949,3120 3951,3118 3954,3117 3957,3116 3960,3115 3963,3114 3966,3114 3969,3113 3972,3113 3975,3113 4105,3113 4105,3113 4108,3113 4111,3113 4114,3114 4117,3114 4120,3115 4122,3115 4125,3116 4128,3117 4131,3119 4133,3120 4136,3121 4138,3123 4141,3125 4143,3127 4145,3129 4147,3131 4149,3133 4151,3135 4153,3137 4155,3140 4156,3142 4158,3145 4159,3148 4160,3151 4161,3153 4162,3156 4163,3159 4163,3162 4164,3165 4164,3168 4164,3171 4164,3172 Z M 4164,3231 L 4164,3231 Z M 3917,3113 L 3917,3113 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id103">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4489" y="2780" width="248" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4736,2839 L 4736,2839 4736,2842 4736,2845 4735,2848 4735,2851 4734,2854 4733,2857 4732,2860 4731,2863 4730,2865 4728,2868 4727,2871 4725,2873 4723,2876 4721,2878 4719,2880 4717,2882 4715,2884 4712,2886 4710,2888 4707,2889 4704,2891 4702,2892 4699,2893 4696,2894 4693,2895 4690,2896 4687,2896 4684,2897 4681,2897 4678,2897 4548,2897 4548,2897 4545,2897 4542,2897 4539,2896 4536,2896 4533,2895 4530,2894 4527,2893 4524,2892 4522,2891 4519,2889 4516,2888 4514,2886 4511,2884 4509,2882 4507,2880 4505,2878 4503,2876 4501,2873 4499,2871 4498,2868 4496,2865 4495,2863 4494,2860 4493,2857 4492,2854 4491,2851 4491,2848 4490,2845 4490,2842 4490,2839 4489,2839 4490,2839 4490,2836 4490,2833 4491,2830 4491,2827 4492,2824 4493,2821 4494,2818 4495,2816 4496,2813 4498,2810 4499,2808 4501,2805 4503,2803 4505,2801 4507,2798 4509,2796 4511,2794 4513,2792 4516,2791 4518,2789 4521,2788 4524,2786 4527,2785 4529,2784 4532,2783 4535,2782 4538,2782 4541,2781 4544,2781 4547,2781 4678,2780 4678,2781 4681,2781 4684,2781 4687,2782 4690,2782 4693,2783 4696,2784 4699,2785 4701,2786 4704,2787 4707,2789 4709,2790 4712,2792 4714,2794 4716,2796 4719,2798 4721,2800 4723,2802 4725,2804 4726,2807 4728,2809 4729,2812 4731,2815 4732,2818 4733,2820 4734,2823 4735,2826 4735,2829 4736,2832 4736,2835 4736,2838 4736,2839 Z M 4736,2897 L 4736,2897 Z M 4489,2780 L 4489,2780 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id104">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4489" y="2948" width="248" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4736,3007 L 4736,3007 4736,3010 4736,3013 4735,3016 4735,3019 4734,3022 4733,3025 4732,3028 4731,3031 4730,3033 4728,3036 4727,3039 4725,3041 4723,3044 4721,3046 4719,3048 4717,3050 4715,3052 4712,3054 4710,3056 4707,3057 4704,3059 4702,3060 4699,3061 4696,3062 4693,3063 4690,3064 4687,3064 4684,3065 4681,3065 4678,3065 4548,3065 4548,3065 4545,3065 4542,3065 4539,3064 4536,3064 4533,3063 4530,3062 4527,3061 4524,3060 4522,3059 4519,3057 4516,3056 4514,3054 4511,3052 4509,3050 4507,3048 4505,3046 4503,3044 4501,3041 4499,3039 4498,3036 4496,3033 4495,3031 4494,3028 4493,3025 4492,3022 4491,3019 4491,3016 4490,3013 4490,3010 4490,3007 4489,3007 4490,3007 4490,3004 4490,3001 4491,2998 4491,2995 4492,2992 4493,2989 4494,2986 4495,2984 4496,2981 4498,2978 4499,2976 4501,2973 4503,2971 4505,2969 4507,2966 4509,2964 4511,2962 4513,2960 4516,2959 4518,2957 4521,2956 4524,2954 4527,2953 4529,2952 4532,2951 4535,2950 4538,2950 4541,2949 4544,2949 4547,2949 4678,2948 4678,2949 4681,2949 4684,2949 4687,2950 4690,2950 4693,2951 4696,2952 4699,2953 4701,2954 4704,2955 4707,2957 4709,2958 4712,2960 4714,2962 4716,2964 4719,2966 4721,2968 4723,2970 4725,2972 4726,2975 4728,2977 4729,2980 4731,2983 4732,2986 4733,2988 4734,2991 4735,2994 4735,2997 4736,3000 4736,3003 4736,3006 4736,3007 Z M 4736,3065 L 4736,3065 Z M 4489,2948 L 4489,2948 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id105">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4489" y="3116" width="248" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4736,3175 L 4736,3175 4736,3178 4736,3181 4735,3184 4735,3187 4734,3190 4733,3193 4732,3196 4731,3199 4730,3201 4728,3204 4727,3207 4725,3209 4723,3212 4721,3214 4719,3216 4717,3218 4715,3220 4712,3222 4710,3224 4707,3225 4704,3227 4702,3228 4699,3229 4696,3230 4693,3231 4690,3232 4687,3232 4684,3233 4681,3233 4678,3233 4548,3233 4548,3233 4545,3233 4542,3233 4539,3232 4536,3232 4533,3231 4530,3230 4527,3229 4524,3228 4522,3227 4519,3225 4516,3224 4514,3222 4511,3220 4509,3218 4507,3216 4505,3214 4503,3212 4501,3209 4499,3207 4498,3204 4496,3201 4495,3199 4494,3196 4493,3193 4492,3190 4491,3187 4491,3184 4490,3181 4490,3178 4490,3175 4489,3175 4490,3175 4490,3172 4490,3169 4491,3166 4491,3163 4492,3160 4493,3157 4494,3154 4495,3152 4496,3149 4498,3146 4499,3144 4501,3141 4503,3139 4505,3137 4507,3134 4509,3132 4511,3130 4513,3128 4516,3127 4518,3125 4521,3124 4524,3122 4527,3121 4529,3120 4532,3119 4535,3118 4538,3118 4541,3117 4544,3117 4547,3117 4678,3116 4678,3117 4681,3117 4684,3117 4687,3118 4690,3118 4693,3119 4696,3120 4699,3121 4701,3122 4704,3123 4707,3125 4709,3126 4712,3128 4714,3130 4716,3132 4719,3134 4721,3136 4723,3138 4725,3140 4726,3143 4728,3145 4729,3148 4731,3151 4732,3154 4733,3156 4734,3159 4735,3162 4735,3165 4736,3168 4736,3171 4736,3174 4736,3175 Z M 4736,3233 L 4736,3233 Z M 4489,3116 L 4489,3116 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id106">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2395" y="2780" width="249" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2643,2839 L 2643,2839 2643,2842 2643,2845 2642,2848 2642,2851 2641,2854 2640,2857 2639,2860 2638,2863 2637,2865 2635,2868 2634,2871 2632,2873 2630,2876 2628,2878 2626,2880 2624,2882 2622,2884 2619,2886 2617,2888 2614,2889 2611,2891 2609,2892 2606,2893 2603,2894 2600,2895 2597,2896 2594,2896 2591,2897 2588,2897 2585,2897 2455,2897 2455,2897 2452,2897 2449,2897 2446,2896 2443,2896 2440,2895 2437,2894 2434,2893 2431,2892 2429,2891 2426,2889 2423,2888 2421,2886 2418,2884 2416,2882 2414,2880 2412,2878 2410,2876 2408,2873 2406,2871 2405,2868 2403,2865 2402,2863 2401,2860 2400,2857 2399,2854 2398,2851 2398,2848 2397,2845 2397,2842 2397,2839 2396,2839 2397,2839 2397,2836 2397,2833 2398,2830 2398,2827 2399,2824 2400,2821 2401,2818 2402,2816 2403,2813 2405,2810 2406,2808 2408,2805 2410,2803 2412,2801 2414,2798 2416,2796 2418,2794 2420,2792 2423,2791 2425,2789 2428,2788 2431,2786 2434,2785 2436,2784 2439,2783 2442,2782 2445,2782 2448,2781 2451,2781 2454,2781 2585,2780 2585,2781 2588,2781 2591,2781 2594,2782 2597,2782 2600,2783 2603,2784 2606,2785 2608,2786 2611,2787 2614,2789 2616,2790 2619,2792 2621,2794 2623,2796 2626,2798 2628,2800 2630,2802 2632,2804 2633,2807 2635,2809 2636,2812 2638,2815 2639,2818 2640,2820 2641,2823 2642,2826 2642,2829 2643,2832 2643,2835 2643,2838 2643,2839 Z M 2643,2897 L 2643,2897 Z M 2396,2780 L 2396,2780 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id107">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2396" y="2948" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2643,3007 L 2643,3007 2643,3010 2643,3013 2642,3016 2642,3019 2641,3022 2640,3025 2639,3028 2638,3031 2637,3033 2635,3036 2634,3039 2632,3041 2630,3044 2628,3046 2626,3048 2624,3050 2622,3052 2619,3054 2617,3056 2614,3057 2611,3059 2609,3060 2606,3061 2603,3062 2600,3063 2597,3064 2594,3064 2591,3065 2588,3065 2585,3065 2455,3065 2455,3065 2452,3065 2449,3065 2446,3064 2443,3064 2440,3063 2437,3062 2434,3061 2431,3060 2429,3059 2426,3057 2423,3056 2421,3054 2418,3052 2416,3050 2414,3048 2412,3046 2410,3044 2408,3041 2406,3039 2405,3036 2403,3033 2402,3031 2401,3028 2400,3025 2399,3022 2398,3019 2398,3016 2397,3013 2397,3010 2397,3007 2396,3007 2397,3007 2397,3004 2397,3001 2398,2998 2398,2995 2399,2992 2400,2989 2401,2986 2402,2984 2403,2981 2405,2978 2406,2976 2408,2973 2410,2971 2412,2969 2414,2966 2416,2964 2418,2962 2420,2960 2423,2959 2425,2957 2428,2956 2431,2954 2434,2953 2436,2952 2439,2951 2442,2950 2445,2950 2448,2949 2451,2949 2454,2949 2585,2948 2585,2949 2588,2949 2591,2949 2594,2950 2597,2950 2600,2951 2603,2952 2606,2953 2608,2954 2611,2955 2614,2957 2616,2958 2619,2960 2621,2962 2623,2964 2626,2966 2628,2968 2630,2970 2632,2972 2633,2975 2635,2977 2636,2980 2638,2983 2639,2986 2640,2988 2641,2991 2642,2994 2642,2997 2643,3000 2643,3003 2643,3006 2643,3007 Z M 2643,3065 L 2643,3065 Z M 2396,2948 L 2396,2948 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id108">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2396" y="3116" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2643,3175 L 2643,3175 2643,3178 2643,3181 2642,3184 2642,3187 2641,3190 2640,3193 2639,3196 2638,3199 2637,3201 2635,3204 2634,3207 2632,3209 2630,3212 2628,3214 2626,3216 2624,3218 2622,3220 2619,3222 2617,3224 2614,3225 2611,3227 2609,3228 2606,3229 2603,3230 2600,3231 2597,3232 2594,3232 2591,3233 2588,3233 2585,3233 2455,3233 2455,3233 2452,3233 2449,3233 2446,3232 2443,3232 2440,3231 2437,3230 2434,3229 2431,3228 2429,3227 2426,3225 2423,3224 2421,3222 2418,3220 2416,3218 2414,3216 2412,3214 2410,3212 2408,3209 2406,3207 2405,3204 2403,3201 2402,3199 2401,3196 2400,3193 2399,3190 2398,3187 2398,3184 2397,3181 2397,3178 2397,3175 2396,3175 2397,3175 2397,3172 2397,3169 2398,3166 2398,3163 2399,3160 2400,3157 2401,3154 2402,3152 2403,3149 2405,3146 2406,3144 2408,3141 2410,3139 2412,3137 2414,3134 2416,3132 2418,3130 2420,3128 2423,3127 2425,3125 2428,3124 2431,3122 2434,3121 2436,3120 2439,3119 2442,3118 2445,3118 2448,3117 2451,3117 2454,3117 2585,3116 2585,3117 2588,3117 2591,3117 2594,3118 2597,3118 2600,3119 2603,3120 2606,3121 2608,3122 2611,3123 2614,3125 2616,3126 2619,3128 2621,3130 2623,3132 2626,3134 2628,3136 2630,3138 2632,3140 2633,3143 2635,3145 2636,3148 2638,3151 2639,3154 2640,3156 2641,3159 2642,3162 2642,3165 2643,3168 2643,3171 2643,3174 2643,3175 Z M 2643,3233 L 2643,3233 Z M 2396,3116 L 2396,3116 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id109">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2674" y="2782" width="247" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2920,2841 L 2920,2841 2920,2844 2920,2847 2919,2850 2919,2853 2918,2856 2917,2859 2916,2862 2915,2865 2914,2867 2912,2870 2911,2873 2909,2875 2907,2878 2905,2880 2903,2882 2901,2884 2899,2886 2896,2888 2894,2890 2891,2891 2888,2893 2886,2894 2883,2895 2880,2896 2877,2897 2874,2898 2871,2898 2868,2899 2865,2899 2862,2899 2733,2899 2733,2899 2730,2899 2727,2899 2724,2898 2721,2898 2718,2897 2715,2896 2712,2895 2709,2894 2707,2893 2704,2891 2701,2890 2699,2888 2696,2886 2694,2884 2692,2882 2690,2880 2688,2878 2686,2875 2684,2873 2683,2870 2681,2867 2680,2865 2679,2862 2678,2859 2677,2856 2676,2853 2676,2850 2675,2847 2675,2844 2675,2841 2674,2841 2675,2841 2675,2838 2675,2835 2676,2832 2676,2829 2677,2826 2678,2823 2679,2820 2680,2818 2681,2815 2683,2812 2684,2810 2686,2807 2688,2805 2690,2803 2692,2800 2694,2798 2696,2796 2698,2794 2701,2793 2703,2791 2706,2790 2709,2788 2712,2787 2714,2786 2717,2785 2720,2784 2723,2784 2726,2783 2729,2783 2732,2783 2862,2782 2862,2783 2865,2783 2868,2783 2871,2784 2874,2784 2877,2785 2880,2786 2883,2787 2885,2788 2888,2789 2891,2791 2893,2792 2896,2794 2898,2796 2900,2798 2903,2800 2905,2802 2907,2804 2909,2806 2910,2809 2912,2811 2913,2814 2915,2817 2916,2820 2917,2822 2918,2825 2919,2828 2919,2831 2920,2834 2920,2837 2920,2840 2920,2841 Z M 2920,2899 L 2920,2899 Z M 2674,2782 L 2674,2782 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id110">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2674" y="2950" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2920,3009 L 2920,3009 2920,3012 2920,3015 2919,3018 2919,3021 2918,3024 2917,3027 2916,3030 2915,3033 2914,3035 2912,3038 2911,3041 2909,3043 2907,3046 2905,3048 2903,3050 2901,3052 2899,3054 2896,3056 2894,3058 2891,3059 2888,3061 2886,3062 2883,3063 2880,3064 2877,3065 2874,3066 2871,3066 2868,3067 2865,3067 2862,3067 2733,3067 2733,3067 2730,3067 2727,3067 2724,3066 2721,3066 2718,3065 2715,3064 2712,3063 2709,3062 2707,3061 2704,3059 2701,3058 2699,3056 2696,3054 2694,3052 2692,3050 2690,3048 2688,3046 2686,3043 2684,3041 2683,3038 2681,3035 2680,3033 2679,3030 2678,3027 2677,3024 2676,3021 2676,3018 2675,3015 2675,3012 2675,3009 2674,3009 2675,3009 2675,3006 2675,3003 2676,3000 2676,2997 2677,2994 2678,2991 2679,2988 2680,2986 2681,2983 2683,2980 2684,2978 2686,2975 2688,2973 2690,2971 2692,2968 2694,2966 2696,2964 2698,2962 2701,2961 2703,2959 2706,2958 2709,2956 2712,2955 2714,2954 2717,2953 2720,2952 2723,2952 2726,2951 2729,2951 2732,2951 2862,2950 2862,2951 2865,2951 2868,2951 2871,2952 2874,2952 2877,2953 2880,2954 2883,2955 2885,2956 2888,2957 2891,2959 2893,2960 2896,2962 2898,2964 2900,2966 2903,2968 2905,2970 2907,2972 2909,2974 2910,2977 2912,2979 2913,2982 2915,2985 2916,2988 2917,2990 2918,2993 2919,2996 2919,2999 2920,3002 2920,3005 2920,3008 2920,3009 Z M 2920,3067 L 2920,3067 Z M 2674,2950 L 2674,2950 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id111">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2674" y="3118" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2920,3177 L 2920,3177 2920,3180 2920,3183 2919,3186 2919,3189 2918,3192 2917,3195 2916,3198 2915,3201 2914,3203 2912,3206 2911,3209 2909,3211 2907,3214 2905,3216 2903,3218 2901,3220 2899,3222 2896,3224 2894,3226 2891,3227 2888,3229 2886,3230 2883,3231 2880,3232 2877,3233 2874,3234 2871,3234 2868,3235 2865,3235 2862,3235 2733,3235 2733,3235 2730,3235 2727,3235 2724,3234 2721,3234 2718,3233 2715,3232 2712,3231 2709,3230 2707,3229 2704,3227 2701,3226 2699,3224 2696,3222 2694,3220 2692,3218 2690,3216 2688,3214 2686,3211 2684,3209 2683,3206 2681,3203 2680,3201 2679,3198 2678,3195 2677,3192 2676,3189 2676,3186 2675,3183 2675,3180 2675,3177 2674,3177 2675,3177 2675,3174 2675,3171 2676,3168 2676,3165 2677,3162 2678,3159 2679,3156 2680,3154 2681,3151 2683,3148 2684,3146 2686,3143 2688,3141 2690,3139 2692,3136 2694,3134 2696,3132 2698,3130 2701,3129 2703,3127 2706,3126 2709,3124 2712,3123 2714,3122 2717,3121 2720,3120 2723,3120 2726,3119 2729,3119 2732,3119 2862,3118 2862,3119 2865,3119 2868,3119 2871,3120 2874,3120 2877,3121 2880,3122 2883,3123 2885,3124 2888,3125 2891,3127 2893,3128 2896,3130 2898,3132 2900,3134 2903,3136 2905,3138 2907,3140 2909,3142 2910,3145 2912,3147 2913,3150 2915,3153 2916,3156 2917,3158 2918,3161 2919,3164 2919,3167 2920,3170 2920,3173 2920,3176 2920,3177 Z M 2920,3235 L 2920,3235 Z M 2674,3118 L 2674,3118 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id112">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6623" y="2779" width="248" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6870,2838 L 6870,2838 6870,2841 6870,2844 6869,2847 6869,2850 6868,2853 6867,2856 6866,2859 6865,2862 6864,2864 6862,2867 6861,2870 6859,2872 6857,2875 6855,2877 6853,2879 6851,2881 6849,2883 6846,2885 6844,2887 6841,2888 6838,2890 6836,2891 6833,2892 6830,2893 6827,2894 6824,2895 6821,2895 6818,2896 6815,2896 6812,2896 6682,2896 6682,2896 6679,2896 6676,2896 6673,2895 6670,2895 6667,2894 6664,2893 6661,2892 6658,2891 6656,2890 6653,2888 6650,2887 6648,2885 6645,2883 6643,2881 6641,2879 6639,2877 6637,2875 6635,2872 6633,2870 6632,2867 6630,2864 6629,2862 6628,2859 6627,2856 6626,2853 6625,2850 6625,2847 6624,2844 6624,2841 6624,2838 6623,2838 6624,2838 6624,2835 6624,2832 6625,2829 6625,2826 6626,2823 6627,2820 6628,2817 6629,2815 6630,2812 6632,2809 6633,2807 6635,2804 6637,2802 6639,2800 6641,2797 6643,2795 6645,2793 6647,2791 6650,2790 6652,2788 6655,2787 6658,2785 6661,2784 6663,2783 6666,2782 6669,2781 6672,2781 6675,2780 6678,2780 6681,2780 6812,2779 6812,2780 6815,2780 6818,2780 6821,2781 6824,2781 6827,2782 6830,2783 6833,2784 6835,2785 6838,2786 6841,2788 6843,2789 6846,2791 6848,2793 6850,2795 6853,2797 6855,2799 6857,2801 6859,2803 6860,2806 6862,2808 6863,2811 6865,2814 6866,2817 6867,2819 6868,2822 6869,2825 6869,2828 6870,2831 6870,2834 6870,2837 6870,2838 Z M 6870,2896 L 6870,2896 Z M 6623,2779 L 6623,2779 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id113">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6623" y="2947" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6870,3006 L 6870,3006 6870,3009 6870,3012 6869,3015 6869,3018 6868,3021 6867,3024 6866,3027 6865,3030 6864,3032 6862,3035 6861,3038 6859,3040 6857,3043 6855,3045 6853,3047 6851,3049 6849,3051 6846,3053 6844,3055 6841,3056 6838,3058 6836,3059 6833,3060 6830,3061 6827,3062 6824,3063 6821,3063 6818,3064 6815,3064 6812,3064 6682,3064 6682,3064 6679,3064 6676,3064 6673,3063 6670,3063 6667,3062 6664,3061 6661,3060 6658,3059 6656,3058 6653,3056 6650,3055 6648,3053 6645,3051 6643,3049 6641,3047 6639,3045 6637,3043 6635,3040 6633,3038 6632,3035 6630,3032 6629,3030 6628,3027 6627,3024 6626,3021 6625,3018 6625,3015 6624,3012 6624,3009 6624,3006 6623,3006 6624,3006 6624,3003 6624,3000 6625,2997 6625,2994 6626,2991 6627,2988 6628,2985 6629,2983 6630,2980 6632,2977 6633,2975 6635,2972 6637,2970 6639,2968 6641,2965 6643,2963 6645,2961 6647,2959 6650,2958 6652,2956 6655,2955 6658,2953 6661,2952 6663,2951 6666,2950 6669,2949 6672,2949 6675,2948 6678,2948 6681,2948 6812,2947 6812,2948 6815,2948 6818,2948 6821,2949 6824,2949 6827,2950 6830,2951 6833,2952 6835,2953 6838,2954 6841,2956 6843,2957 6846,2959 6848,2961 6850,2963 6853,2965 6855,2967 6857,2969 6859,2971 6860,2974 6862,2976 6863,2979 6865,2982 6866,2985 6867,2987 6868,2990 6869,2993 6869,2996 6870,2999 6870,3002 6870,3005 6870,3006 Z M 6870,3064 L 6870,3064 Z M 6623,2947 L 6623,2947 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id114">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6623" y="3115" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6870,3174 L 6870,3174 6870,3177 6870,3180 6869,3183 6869,3186 6868,3189 6867,3192 6866,3195 6865,3198 6864,3200 6862,3203 6861,3206 6859,3208 6857,3211 6855,3213 6853,3215 6851,3217 6849,3219 6846,3221 6844,3223 6841,3224 6838,3226 6836,3227 6833,3228 6830,3229 6827,3230 6824,3231 6821,3231 6818,3232 6815,3232 6812,3232 6682,3232 6682,3232 6679,3232 6676,3232 6673,3231 6670,3231 6667,3230 6664,3229 6661,3228 6658,3227 6656,3226 6653,3224 6650,3223 6648,3221 6645,3219 6643,3217 6641,3215 6639,3213 6637,3211 6635,3208 6633,3206 6632,3203 6630,3200 6629,3198 6628,3195 6627,3192 6626,3189 6625,3186 6625,3183 6624,3180 6624,3177 6624,3174 6623,3174 6624,3174 6624,3171 6624,3168 6625,3165 6625,3162 6626,3159 6627,3156 6628,3153 6629,3151 6630,3148 6632,3145 6633,3143 6635,3140 6637,3138 6639,3136 6641,3133 6643,3131 6645,3129 6647,3127 6650,3126 6652,3124 6655,3123 6658,3121 6661,3120 6663,3119 6666,3118 6669,3117 6672,3117 6675,3116 6678,3116 6681,3116 6812,3115 6812,3116 6815,3116 6818,3116 6821,3117 6824,3117 6827,3118 6830,3119 6833,3120 6835,3121 6838,3122 6841,3124 6843,3125 6846,3127 6848,3129 6850,3131 6853,3133 6855,3135 6857,3137 6859,3139 6860,3142 6862,3144 6863,3147 6865,3150 6866,3153 6867,3155 6868,3158 6869,3161 6869,3164 6870,3167 6870,3170 6870,3173 6870,3174 Z M 6870,3232 L 6870,3232 Z M 6623,3115 L 6623,3115 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id115">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6330" y="2779" width="248" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6576,2838 L 6576,2838 6576,2841 6576,2844 6575,2847 6575,2850 6574,2853 6573,2856 6572,2859 6571,2862 6570,2864 6568,2867 6567,2870 6565,2872 6563,2875 6561,2877 6559,2879 6557,2881 6555,2883 6552,2885 6550,2887 6547,2888 6544,2890 6542,2891 6539,2892 6536,2893 6533,2894 6530,2895 6527,2895 6524,2896 6521,2896 6518,2896 6389,2896 6389,2896 6386,2896 6383,2896 6380,2895 6377,2895 6374,2894 6371,2893 6368,2892 6365,2891 6363,2890 6360,2888 6357,2887 6355,2885 6352,2883 6350,2881 6348,2879 6346,2877 6344,2875 6342,2872 6340,2870 6339,2867 6337,2864 6336,2862 6335,2859 6334,2856 6333,2853 6332,2850 6332,2847 6331,2844 6331,2841 6331,2838 6330,2838 6331,2838 6331,2835 6331,2832 6332,2829 6332,2826 6333,2823 6334,2820 6335,2817 6336,2815 6337,2812 6339,2809 6340,2807 6342,2804 6344,2802 6346,2800 6348,2797 6350,2795 6352,2793 6354,2791 6357,2790 6359,2788 6362,2787 6365,2785 6368,2784 6370,2783 6373,2782 6376,2781 6379,2781 6382,2780 6385,2780 6388,2780 6518,2779 6518,2780 6521,2780 6524,2780 6527,2781 6530,2781 6533,2782 6536,2783 6539,2784 6541,2785 6544,2786 6547,2788 6549,2789 6552,2791 6554,2793 6556,2795 6559,2797 6561,2799 6563,2801 6565,2803 6566,2806 6568,2808 6569,2811 6571,2814 6572,2817 6573,2819 6574,2822 6575,2825 6575,2828 6576,2831 6576,2834 6576,2837 6576,2838 Z M 6576,2896 L 6576,2896 Z M 6330,2779 L 6330,2779 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id116">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6330" y="2947" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6576,3006 L 6576,3006 6576,3009 6576,3012 6575,3015 6575,3018 6574,3021 6573,3024 6572,3027 6571,3030 6570,3032 6568,3035 6567,3038 6565,3040 6563,3043 6561,3045 6559,3047 6557,3049 6555,3051 6552,3053 6550,3055 6547,3056 6544,3058 6542,3059 6539,3060 6536,3061 6533,3062 6530,3063 6527,3063 6524,3064 6521,3064 6518,3064 6389,3064 6389,3064 6386,3064 6383,3064 6380,3063 6377,3063 6374,3062 6371,3061 6368,3060 6365,3059 6363,3058 6360,3056 6357,3055 6355,3053 6352,3051 6350,3049 6348,3047 6346,3045 6344,3043 6342,3040 6340,3038 6339,3035 6337,3032 6336,3030 6335,3027 6334,3024 6333,3021 6332,3018 6332,3015 6331,3012 6331,3009 6331,3006 6330,3006 6331,3006 6331,3003 6331,3000 6332,2997 6332,2994 6333,2991 6334,2988 6335,2985 6336,2983 6337,2980 6339,2977 6340,2975 6342,2972 6344,2970 6346,2968 6348,2965 6350,2963 6352,2961 6354,2959 6357,2958 6359,2956 6362,2955 6365,2953 6368,2952 6370,2951 6373,2950 6376,2949 6379,2949 6382,2948 6385,2948 6388,2948 6518,2947 6518,2948 6521,2948 6524,2948 6527,2949 6530,2949 6533,2950 6536,2951 6539,2952 6541,2953 6544,2954 6547,2956 6549,2957 6552,2959 6554,2961 6556,2963 6559,2965 6561,2967 6563,2969 6565,2971 6566,2974 6568,2976 6569,2979 6571,2982 6572,2985 6573,2987 6574,2990 6575,2993 6575,2996 6576,2999 6576,3002 6576,3005 6576,3006 Z M 6576,3064 L 6576,3064 Z M 6330,2947 L 6330,2947 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id117">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6330" y="3115" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6576,3174 L 6576,3174 6576,3177 6576,3180 6575,3183 6575,3186 6574,3189 6573,3192 6572,3195 6571,3198 6570,3200 6568,3203 6567,3206 6565,3208 6563,3211 6561,3213 6559,3215 6557,3217 6555,3219 6552,3221 6550,3223 6547,3224 6544,3226 6542,3227 6539,3228 6536,3229 6533,3230 6530,3231 6527,3231 6524,3232 6521,3232 6518,3232 6389,3232 6389,3232 6386,3232 6383,3232 6380,3231 6377,3231 6374,3230 6371,3229 6368,3228 6365,3227 6363,3226 6360,3224 6357,3223 6355,3221 6352,3219 6350,3217 6348,3215 6346,3213 6344,3211 6342,3208 6340,3206 6339,3203 6337,3200 6336,3198 6335,3195 6334,3192 6333,3189 6332,3186 6332,3183 6331,3180 6331,3177 6331,3174 6330,3174 6331,3174 6331,3171 6331,3168 6332,3165 6332,3162 6333,3159 6334,3156 6335,3153 6336,3151 6337,3148 6339,3145 6340,3143 6342,3140 6344,3138 6346,3136 6348,3133 6350,3131 6352,3129 6354,3127 6357,3126 6359,3124 6362,3123 6365,3121 6368,3120 6370,3119 6373,3118 6376,3117 6379,3117 6382,3116 6385,3116 6388,3116 6518,3115 6518,3116 6521,3116 6524,3116 6527,3117 6530,3117 6533,3118 6536,3119 6539,3120 6541,3121 6544,3122 6547,3124 6549,3125 6552,3127 6554,3129 6556,3131 6559,3133 6561,3135 6563,3137 6565,3139 6566,3142 6568,3144 6569,3147 6571,3150 6572,3153 6573,3155 6574,3158 6575,3161 6575,3164 6576,3167 6576,3170 6576,3173 6576,3174 Z M 6576,3232 L 6576,3232 Z M 6330,3115 L 6330,3115 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id118">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6901" y="2780" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7147,2840 L 7147,2840 7147,2843 7147,2846 7146,2849 7146,2852 7145,2855 7144,2858 7143,2861 7142,2864 7141,2866 7139,2869 7138,2872 7136,2874 7134,2877 7132,2879 7130,2881 7128,2883 7126,2885 7123,2887 7121,2889 7118,2890 7115,2892 7113,2893 7110,2894 7107,2895 7104,2896 7101,2897 7098,2897 7095,2898 7092,2898 7089,2898 6960,2898 6960,2898 6957,2898 6954,2898 6951,2897 6948,2897 6945,2896 6942,2895 6939,2894 6936,2893 6934,2892 6931,2890 6928,2889 6926,2887 6923,2885 6921,2883 6919,2881 6917,2879 6915,2877 6913,2874 6911,2872 6910,2869 6908,2866 6907,2864 6906,2861 6905,2858 6904,2855 6903,2852 6903,2849 6902,2846 6902,2843 6902,2840 6901,2840 6902,2840 6902,2837 6902,2834 6903,2831 6903,2828 6904,2825 6905,2822 6906,2819 6907,2817 6908,2814 6910,2811 6911,2809 6913,2806 6915,2804 6917,2802 6919,2799 6921,2797 6923,2795 6925,2793 6928,2792 6930,2790 6933,2789 6936,2787 6939,2786 6941,2785 6944,2784 6947,2783 6950,2783 6953,2782 6956,2782 6959,2782 7089,2781 7089,2782 7092,2782 7095,2782 7098,2783 7101,2783 7104,2784 7107,2785 7110,2786 7112,2787 7115,2788 7118,2790 7120,2791 7123,2793 7125,2795 7127,2797 7130,2799 7132,2801 7134,2803 7136,2805 7137,2808 7139,2810 7140,2813 7142,2816 7143,2819 7144,2821 7145,2824 7146,2827 7146,2830 7147,2833 7147,2836 7147,2839 7147,2840 Z M 7147,2898 L 7147,2898 Z M 6901,2781 L 6901,2781 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id119">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6901" y="2948" width="248" height="120"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7147,3008 L 7147,3008 7147,3011 7147,3014 7146,3017 7146,3020 7145,3023 7145,3025 7144,3028 7143,3031 7141,3034 7140,3036 7139,3039 7137,3041 7135,3044 7133,3046 7131,3048 7129,3050 7127,3052 7125,3054 7123,3056 7120,3058 7118,3059 7115,3061 7112,3062 7109,3063 7107,3064 7104,3065 7101,3066 7098,3066 7095,3067 7092,3067 7089,3067 6960,3067 6960,3067 6957,3067 6954,3067 6951,3066 6948,3066 6945,3065 6942,3064 6939,3063 6937,3062 6934,3061 6931,3059 6929,3058 6926,3056 6924,3054 6922,3052 6919,3050 6917,3048 6915,3046 6913,3043 6912,3041 6910,3038 6909,3035 6907,3033 6906,3030 6905,3027 6904,3024 6903,3021 6903,3018 6902,3015 6902,3012 6902,3009 6901,3008 6901,3008 6901,3005 6901,3002 6902,2999 6902,2996 6903,2993 6904,2990 6905,2987 6906,2984 6907,2981 6909,2979 6910,2976 6912,2974 6914,2971 6916,2969 6918,2967 6920,2965 6922,2963 6925,2961 6927,2959 6930,2957 6933,2956 6935,2954 6938,2953 6941,2952 6944,2951 6947,2950 6950,2950 6953,2949 6956,2949 6959,2949 7088,2949 7088,2949 7091,2949 7094,2949 7097,2950 7100,2950 7103,2951 7105,2951 7108,2952 7111,2953 7114,2955 7116,2956 7119,2957 7121,2959 7124,2961 7126,2963 7128,2965 7130,2967 7132,2969 7134,2971 7136,2973 7138,2976 7139,2978 7141,2981 7142,2984 7143,2987 7144,2989 7145,2992 7146,2995 7146,2998 7147,3001 7147,3004 7147,3007 7147,3008 Z M 7147,3067 L 7147,3067 Z M 6901,2949 L 6901,2949 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id120">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6901" y="3117" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7147,3176 L 7147,3176 7147,3179 7147,3182 7146,3185 7146,3188 7145,3191 7144,3194 7143,3197 7142,3200 7141,3202 7139,3205 7138,3208 7136,3210 7134,3213 7132,3215 7130,3217 7128,3219 7126,3221 7123,3223 7121,3225 7118,3226 7115,3228 7113,3229 7110,3230 7107,3231 7104,3232 7101,3233 7098,3233 7095,3234 7092,3234 7089,3234 6960,3234 6960,3234 6957,3234 6954,3234 6951,3233 6948,3233 6945,3232 6942,3231 6939,3230 6936,3229 6934,3228 6931,3226 6928,3225 6926,3223 6923,3221 6921,3219 6919,3217 6917,3215 6915,3213 6913,3210 6911,3208 6910,3205 6908,3202 6907,3200 6906,3197 6905,3194 6904,3191 6903,3188 6903,3185 6902,3182 6902,3179 6902,3176 6901,3176 6902,3176 6902,3173 6902,3170 6903,3167 6903,3164 6904,3161 6905,3158 6906,3155 6907,3153 6908,3150 6910,3147 6911,3145 6913,3142 6915,3140 6917,3138 6919,3135 6921,3133 6923,3131 6925,3129 6928,3128 6930,3126 6933,3125 6936,3123 6939,3122 6941,3121 6944,3120 6947,3119 6950,3119 6953,3118 6956,3118 6959,3118 7089,3117 7089,3118 7092,3118 7095,3118 7098,3119 7101,3119 7104,3120 7107,3121 7110,3122 7112,3123 7115,3124 7118,3126 7120,3127 7123,3129 7125,3131 7127,3133 7130,3135 7132,3137 7134,3139 7136,3141 7137,3144 7139,3146 7140,3149 7142,3152 7143,3155 7144,3157 7145,3160 7146,3163 7146,3166 7147,3169 7147,3172 7147,3175 7147,3176 Z M 7147,3234 L 7147,3234 Z M 6901,3117 L 6901,3117 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id121">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7513" y="2777" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7760,2836 L 7760,2836 7760,2839 7760,2842 7759,2845 7759,2848 7758,2851 7757,2854 7756,2857 7755,2860 7754,2862 7752,2865 7751,2868 7749,2870 7747,2873 7745,2875 7743,2877 7741,2879 7739,2881 7736,2883 7734,2885 7731,2886 7728,2888 7726,2889 7723,2890 7720,2891 7717,2892 7714,2893 7711,2893 7708,2894 7705,2894 7702,2894 7572,2894 7572,2894 7569,2894 7566,2894 7563,2893 7560,2893 7557,2892 7554,2891 7551,2890 7548,2889 7546,2888 7543,2886 7540,2885 7538,2883 7535,2881 7533,2879 7531,2877 7529,2875 7527,2873 7525,2870 7523,2868 7522,2865 7520,2862 7519,2860 7518,2857 7517,2854 7516,2851 7515,2848 7515,2845 7514,2842 7514,2839 7514,2836 7513,2836 7514,2836 7514,2833 7514,2830 7515,2827 7515,2824 7516,2821 7517,2818 7518,2815 7519,2813 7520,2810 7522,2807 7523,2805 7525,2802 7527,2800 7529,2798 7531,2795 7533,2793 7535,2791 7537,2789 7540,2788 7542,2786 7545,2785 7548,2783 7551,2782 7553,2781 7556,2780 7559,2779 7562,2779 7565,2778 7568,2778 7571,2778 7702,2777 7702,2778 7705,2778 7708,2778 7711,2779 7714,2779 7717,2780 7720,2781 7723,2782 7725,2783 7728,2784 7731,2786 7733,2787 7736,2789 7738,2791 7740,2793 7743,2795 7745,2797 7747,2799 7749,2801 7750,2804 7752,2806 7753,2809 7755,2812 7756,2815 7757,2817 7758,2820 7759,2823 7759,2826 7760,2829 7760,2832 7760,2835 7760,2836 Z M 7760,2894 L 7760,2894 Z M 7513,2777 L 7513,2777 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id122">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7513" y="2945" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7760,3004 L 7760,3004 7760,3007 7760,3010 7759,3013 7759,3016 7758,3019 7757,3022 7756,3025 7755,3028 7754,3030 7752,3033 7751,3036 7749,3038 7747,3041 7745,3043 7743,3045 7741,3047 7739,3049 7736,3051 7734,3053 7731,3054 7728,3056 7726,3057 7723,3058 7720,3059 7717,3060 7714,3061 7711,3061 7708,3062 7705,3062 7702,3062 7572,3062 7572,3062 7569,3062 7566,3062 7563,3061 7560,3061 7557,3060 7554,3059 7551,3058 7548,3057 7546,3056 7543,3054 7540,3053 7538,3051 7535,3049 7533,3047 7531,3045 7529,3043 7527,3041 7525,3038 7523,3036 7522,3033 7520,3030 7519,3028 7518,3025 7517,3022 7516,3019 7515,3016 7515,3013 7514,3010 7514,3007 7514,3004 7513,3004 7514,3004 7514,3001 7514,2998 7515,2995 7515,2992 7516,2989 7517,2986 7518,2983 7519,2981 7520,2978 7522,2975 7523,2973 7525,2970 7527,2968 7529,2966 7531,2963 7533,2961 7535,2959 7537,2957 7540,2956 7542,2954 7545,2953 7548,2951 7551,2950 7553,2949 7556,2948 7559,2947 7562,2947 7565,2946 7568,2946 7571,2946 7702,2945 7702,2946 7705,2946 7708,2946 7711,2947 7714,2947 7717,2948 7720,2949 7723,2950 7725,2951 7728,2952 7731,2954 7733,2955 7736,2957 7738,2959 7740,2961 7743,2963 7745,2965 7747,2967 7749,2969 7750,2972 7752,2974 7753,2977 7755,2980 7756,2983 7757,2985 7758,2988 7759,2991 7759,2994 7760,2997 7760,3000 7760,3003 7760,3004 Z M 7760,3062 L 7760,3062 Z M 7513,2945 L 7513,2945 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id123">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7513" y="3113" width="248" height="120"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7760,3172 L 7760,3172 7760,3175 7760,3178 7759,3181 7759,3184 7758,3187 7758,3189 7757,3192 7756,3195 7754,3198 7753,3200 7752,3203 7750,3205 7748,3208 7746,3210 7744,3212 7742,3214 7740,3216 7738,3218 7736,3220 7733,3222 7731,3223 7728,3225 7725,3226 7722,3227 7720,3228 7717,3229 7714,3230 7711,3230 7708,3231 7705,3231 7702,3231 7572,3231 7572,3231 7569,3231 7566,3231 7563,3230 7560,3230 7557,3229 7554,3228 7551,3227 7549,3226 7546,3225 7543,3223 7541,3222 7538,3220 7536,3218 7534,3216 7531,3214 7529,3212 7527,3210 7525,3207 7524,3205 7522,3202 7521,3199 7519,3197 7518,3194 7517,3191 7516,3188 7515,3185 7515,3182 7514,3179 7514,3176 7514,3173 7513,3172 7513,3172 7513,3169 7513,3166 7514,3163 7514,3160 7515,3157 7516,3154 7517,3151 7518,3148 7519,3145 7521,3143 7522,3140 7524,3138 7526,3135 7528,3133 7530,3131 7532,3129 7534,3127 7537,3125 7539,3123 7542,3121 7545,3120 7547,3118 7550,3117 7553,3116 7556,3115 7559,3114 7562,3114 7565,3113 7568,3113 7571,3113 7701,3113 7701,3113 7704,3113 7707,3113 7710,3114 7713,3114 7716,3115 7718,3115 7721,3116 7724,3117 7727,3119 7729,3120 7732,3121 7734,3123 7737,3125 7739,3127 7741,3129 7743,3131 7745,3133 7747,3135 7749,3137 7751,3140 7752,3142 7754,3145 7755,3148 7756,3151 7757,3153 7758,3156 7759,3159 7759,3162 7760,3165 7760,3168 7760,3171 7760,3172 Z M 7760,3231 L 7760,3231 Z M 7513,3113 L 7513,3113 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id124">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7219" y="2777" width="248" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7466,2836 L 7466,2836 7466,2839 7466,2842 7465,2845 7465,2848 7464,2851 7463,2854 7462,2857 7461,2860 7460,2862 7458,2865 7457,2868 7455,2870 7453,2873 7451,2875 7449,2877 7447,2879 7445,2881 7442,2883 7440,2885 7437,2886 7434,2888 7432,2889 7429,2890 7426,2891 7423,2892 7420,2893 7417,2893 7414,2894 7411,2894 7408,2894 7278,2894 7278,2894 7275,2894 7272,2894 7269,2893 7266,2893 7263,2892 7260,2891 7257,2890 7254,2889 7252,2888 7249,2886 7246,2885 7244,2883 7241,2881 7239,2879 7237,2877 7235,2875 7233,2873 7231,2870 7229,2868 7228,2865 7226,2862 7225,2860 7224,2857 7223,2854 7222,2851 7221,2848 7221,2845 7220,2842 7220,2839 7220,2836 7219,2836 7220,2836 7220,2833 7220,2830 7221,2827 7221,2824 7222,2821 7223,2818 7224,2815 7225,2813 7226,2810 7228,2807 7229,2805 7231,2802 7233,2800 7235,2798 7237,2795 7239,2793 7241,2791 7243,2789 7246,2788 7248,2786 7251,2785 7254,2783 7257,2782 7259,2781 7262,2780 7265,2779 7268,2779 7271,2778 7274,2778 7277,2778 7408,2777 7408,2778 7411,2778 7414,2778 7417,2779 7420,2779 7423,2780 7426,2781 7429,2782 7431,2783 7434,2784 7437,2786 7439,2787 7442,2789 7444,2791 7446,2793 7449,2795 7451,2797 7453,2799 7455,2801 7456,2804 7458,2806 7459,2809 7461,2812 7462,2815 7463,2817 7464,2820 7465,2823 7465,2826 7466,2829 7466,2832 7466,2835 7466,2836 Z M 7466,2894 L 7466,2894 Z M 7219,2777 L 7219,2777 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id125">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7219" y="2945" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7466,3004 L 7466,3004 7466,3007 7466,3010 7465,3013 7465,3016 7464,3019 7463,3022 7462,3025 7461,3028 7460,3030 7458,3033 7457,3036 7455,3038 7453,3041 7451,3043 7449,3045 7447,3047 7445,3049 7442,3051 7440,3053 7437,3054 7434,3056 7432,3057 7429,3058 7426,3059 7423,3060 7420,3061 7417,3061 7414,3062 7411,3062 7408,3062 7278,3062 7278,3062 7275,3062 7272,3062 7269,3061 7266,3061 7263,3060 7260,3059 7257,3058 7254,3057 7252,3056 7249,3054 7246,3053 7244,3051 7241,3049 7239,3047 7237,3045 7235,3043 7233,3041 7231,3038 7229,3036 7228,3033 7226,3030 7225,3028 7224,3025 7223,3022 7222,3019 7221,3016 7221,3013 7220,3010 7220,3007 7220,3004 7219,3004 7220,3004 7220,3001 7220,2998 7221,2995 7221,2992 7222,2989 7223,2986 7224,2983 7225,2981 7226,2978 7228,2975 7229,2973 7231,2970 7233,2968 7235,2966 7237,2963 7239,2961 7241,2959 7243,2957 7246,2956 7248,2954 7251,2953 7254,2951 7257,2950 7259,2949 7262,2948 7265,2947 7268,2947 7271,2946 7274,2946 7277,2946 7408,2945 7408,2946 7411,2946 7414,2946 7417,2947 7420,2947 7423,2948 7426,2949 7429,2950 7431,2951 7434,2952 7437,2954 7439,2955 7442,2957 7444,2959 7446,2961 7449,2963 7451,2965 7453,2967 7455,2969 7456,2972 7458,2974 7459,2977 7461,2980 7462,2983 7463,2985 7464,2988 7465,2991 7465,2994 7466,2997 7466,3000 7466,3003 7466,3004 Z M 7466,3062 L 7466,3062 Z M 7219,2945 L 7219,2945 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id126">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7219" y="3113" width="248" height="120"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7466,3172 L 7466,3172 7466,3175 7466,3178 7465,3181 7465,3184 7464,3187 7464,3189 7463,3192 7462,3195 7460,3198 7459,3200 7458,3203 7456,3205 7454,3208 7452,3210 7450,3212 7448,3214 7446,3216 7444,3218 7442,3220 7439,3222 7437,3223 7434,3225 7431,3226 7428,3227 7426,3228 7423,3229 7420,3230 7417,3230 7414,3231 7411,3231 7408,3231 7278,3231 7278,3231 7275,3231 7272,3231 7269,3230 7266,3230 7263,3229 7260,3228 7257,3227 7255,3226 7252,3225 7249,3223 7247,3222 7244,3220 7242,3218 7240,3216 7237,3214 7235,3212 7233,3210 7231,3207 7230,3205 7228,3202 7227,3199 7225,3197 7224,3194 7223,3191 7222,3188 7221,3185 7221,3182 7220,3179 7220,3176 7220,3173 7219,3172 7219,3172 7219,3169 7219,3166 7220,3163 7220,3160 7221,3157 7222,3154 7223,3151 7224,3148 7225,3145 7227,3143 7228,3140 7230,3138 7232,3135 7234,3133 7236,3131 7238,3129 7240,3127 7243,3125 7245,3123 7248,3121 7251,3120 7253,3118 7256,3117 7259,3116 7262,3115 7265,3114 7268,3114 7271,3113 7274,3113 7277,3113 7407,3113 7407,3113 7410,3113 7413,3113 7416,3114 7419,3114 7422,3115 7424,3115 7427,3116 7430,3117 7433,3119 7435,3120 7438,3121 7440,3123 7443,3125 7445,3127 7447,3129 7449,3131 7451,3133 7453,3135 7455,3137 7457,3140 7458,3142 7460,3145 7461,3148 7462,3151 7463,3153 7464,3156 7465,3159 7465,3162 7466,3165 7466,3168 7466,3171 7466,3172 Z M 7466,3231 L 7466,3231 Z M 7219,3113 L 7219,3113 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id127">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7791" y="2780" width="248" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8038,2839 L 8038,2839 8038,2842 8038,2845 8037,2848 8037,2851 8036,2854 8035,2857 8034,2860 8033,2863 8032,2865 8030,2868 8029,2871 8027,2873 8025,2876 8023,2878 8021,2880 8019,2882 8017,2884 8014,2886 8012,2888 8009,2889 8006,2891 8004,2892 8001,2893 7998,2894 7995,2895 7992,2896 7989,2896 7986,2897 7983,2897 7980,2897 7850,2897 7850,2897 7847,2897 7844,2897 7841,2896 7838,2896 7835,2895 7832,2894 7829,2893 7826,2892 7824,2891 7821,2889 7818,2888 7816,2886 7813,2884 7811,2882 7809,2880 7807,2878 7805,2876 7803,2873 7801,2871 7800,2868 7798,2865 7797,2863 7796,2860 7795,2857 7794,2854 7793,2851 7793,2848 7792,2845 7792,2842 7792,2839 7791,2839 7792,2839 7792,2836 7792,2833 7793,2830 7793,2827 7794,2824 7795,2821 7796,2818 7797,2816 7798,2813 7800,2810 7801,2808 7803,2805 7805,2803 7807,2801 7809,2798 7811,2796 7813,2794 7815,2792 7818,2791 7820,2789 7823,2788 7826,2786 7829,2785 7831,2784 7834,2783 7837,2782 7840,2782 7843,2781 7846,2781 7849,2781 7980,2780 7980,2781 7983,2781 7986,2781 7989,2782 7992,2782 7995,2783 7998,2784 8001,2785 8003,2786 8006,2787 8009,2789 8011,2790 8014,2792 8016,2794 8018,2796 8021,2798 8023,2800 8025,2802 8027,2804 8028,2807 8030,2809 8031,2812 8033,2815 8034,2818 8035,2820 8036,2823 8037,2826 8037,2829 8038,2832 8038,2835 8038,2838 8038,2839 Z M 8038,2897 L 8038,2897 Z M 7791,2780 L 7791,2780 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id128">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7791" y="2948" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8038,3007 L 8038,3007 8038,3010 8038,3013 8037,3016 8037,3019 8036,3022 8035,3025 8034,3028 8033,3031 8032,3033 8030,3036 8029,3039 8027,3041 8025,3044 8023,3046 8021,3048 8019,3050 8017,3052 8014,3054 8012,3056 8009,3057 8006,3059 8004,3060 8001,3061 7998,3062 7995,3063 7992,3064 7989,3064 7986,3065 7983,3065 7980,3065 7850,3065 7850,3065 7847,3065 7844,3065 7841,3064 7838,3064 7835,3063 7832,3062 7829,3061 7826,3060 7824,3059 7821,3057 7818,3056 7816,3054 7813,3052 7811,3050 7809,3048 7807,3046 7805,3044 7803,3041 7801,3039 7800,3036 7798,3033 7797,3031 7796,3028 7795,3025 7794,3022 7793,3019 7793,3016 7792,3013 7792,3010 7792,3007 7791,3007 7792,3007 7792,3004 7792,3001 7793,2998 7793,2995 7794,2992 7795,2989 7796,2986 7797,2984 7798,2981 7800,2978 7801,2976 7803,2973 7805,2971 7807,2969 7809,2966 7811,2964 7813,2962 7815,2960 7818,2959 7820,2957 7823,2956 7826,2954 7829,2953 7831,2952 7834,2951 7837,2950 7840,2950 7843,2949 7846,2949 7849,2949 7980,2948 7980,2949 7983,2949 7986,2949 7989,2950 7992,2950 7995,2951 7998,2952 8001,2953 8003,2954 8006,2955 8009,2957 8011,2958 8014,2960 8016,2962 8018,2964 8021,2966 8023,2968 8025,2970 8027,2972 8028,2975 8030,2977 8031,2980 8033,2983 8034,2986 8035,2988 8036,2991 8037,2994 8037,2997 8038,3000 8038,3003 8038,3006 8038,3007 Z M 8038,3065 L 8038,3065 Z M 7791,2948 L 7791,2948 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id129">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7791" y="3116" width="248" height="118"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8038,3175 L 8038,3175 8038,3178 8038,3181 8037,3184 8037,3187 8036,3190 8035,3193 8034,3196 8033,3199 8032,3201 8030,3204 8029,3207 8027,3209 8025,3212 8023,3214 8021,3216 8019,3218 8017,3220 8014,3222 8012,3224 8009,3225 8006,3227 8004,3228 8001,3229 7998,3230 7995,3231 7992,3232 7989,3232 7986,3233 7983,3233 7980,3233 7850,3233 7850,3233 7847,3233 7844,3233 7841,3232 7838,3232 7835,3231 7832,3230 7829,3229 7826,3228 7824,3227 7821,3225 7818,3224 7816,3222 7813,3220 7811,3218 7809,3216 7807,3214 7805,3212 7803,3209 7801,3207 7800,3204 7798,3201 7797,3199 7796,3196 7795,3193 7794,3190 7793,3187 7793,3184 7792,3181 7792,3178 7792,3175 7791,3175 7792,3175 7792,3172 7792,3169 7793,3166 7793,3163 7794,3160 7795,3157 7796,3154 7797,3152 7798,3149 7800,3146 7801,3144 7803,3141 7805,3139 7807,3137 7809,3134 7811,3132 7813,3130 7815,3128 7818,3127 7820,3125 7823,3124 7826,3122 7829,3121 7831,3120 7834,3119 7837,3118 7840,3118 7843,3117 7846,3117 7849,3117 7980,3116 7980,3117 7983,3117 7986,3117 7989,3118 7992,3118 7995,3119 7998,3120 8001,3121 8003,3122 8006,3123 8009,3125 8011,3126 8014,3128 8016,3130 8018,3132 8021,3134 8023,3136 8025,3138 8027,3140 8028,3143 8030,3145 8031,3148 8033,3151 8034,3154 8035,3156 8036,3159 8037,3162 8037,3165 8038,3168 8038,3171 8038,3174 8038,3175 Z M 8038,3233 L 8038,3233 Z M 7791,3116 L 7791,3116 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id130">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5698" y="2780" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5945,2839 L 5945,2839 5945,2842 5945,2845 5944,2848 5944,2851 5943,2854 5942,2857 5941,2860 5940,2863 5939,2865 5937,2868 5936,2871 5934,2873 5932,2876 5930,2878 5928,2880 5926,2882 5924,2884 5921,2886 5919,2888 5916,2889 5913,2891 5911,2892 5908,2893 5905,2894 5902,2895 5899,2896 5896,2896 5893,2897 5890,2897 5887,2897 5757,2897 5757,2897 5754,2897 5751,2897 5748,2896 5745,2896 5742,2895 5739,2894 5736,2893 5733,2892 5731,2891 5728,2889 5725,2888 5723,2886 5720,2884 5718,2882 5716,2880 5714,2878 5712,2876 5710,2873 5708,2871 5707,2868 5705,2865 5704,2863 5703,2860 5702,2857 5701,2854 5700,2851 5700,2848 5699,2845 5699,2842 5699,2839 5698,2839 5699,2839 5699,2836 5699,2833 5700,2830 5700,2827 5701,2824 5702,2821 5703,2818 5704,2816 5705,2813 5707,2810 5708,2808 5710,2805 5712,2803 5714,2801 5716,2798 5718,2796 5720,2794 5722,2792 5725,2791 5727,2789 5730,2788 5733,2786 5736,2785 5738,2784 5741,2783 5744,2782 5747,2782 5750,2781 5753,2781 5756,2781 5887,2780 5887,2781 5890,2781 5893,2781 5896,2782 5899,2782 5902,2783 5905,2784 5908,2785 5910,2786 5913,2787 5916,2789 5918,2790 5921,2792 5923,2794 5925,2796 5928,2798 5930,2800 5932,2802 5934,2804 5935,2807 5937,2809 5938,2812 5940,2815 5941,2818 5942,2820 5943,2823 5944,2826 5944,2829 5945,2832 5945,2835 5945,2838 5945,2839 Z M 5945,2897 L 5945,2897 Z M 5698,2780 L 5698,2780 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id131">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5698" y="2948" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5945,3007 L 5945,3007 5945,3010 5945,3013 5944,3016 5944,3019 5943,3022 5942,3025 5941,3028 5940,3031 5939,3033 5937,3036 5936,3039 5934,3041 5932,3044 5930,3046 5928,3048 5926,3050 5924,3052 5921,3054 5919,3056 5916,3057 5913,3059 5911,3060 5908,3061 5905,3062 5902,3063 5899,3064 5896,3064 5893,3065 5890,3065 5887,3065 5757,3065 5757,3065 5754,3065 5751,3065 5748,3064 5745,3064 5742,3063 5739,3062 5736,3061 5733,3060 5731,3059 5728,3057 5725,3056 5723,3054 5720,3052 5718,3050 5716,3048 5714,3046 5712,3044 5710,3041 5708,3039 5707,3036 5705,3033 5704,3031 5703,3028 5702,3025 5701,3022 5700,3019 5700,3016 5699,3013 5699,3010 5699,3007 5698,3007 5699,3007 5699,3004 5699,3001 5700,2998 5700,2995 5701,2992 5702,2989 5703,2986 5704,2984 5705,2981 5707,2978 5708,2976 5710,2973 5712,2971 5714,2969 5716,2966 5718,2964 5720,2962 5722,2960 5725,2959 5727,2957 5730,2956 5733,2954 5736,2953 5738,2952 5741,2951 5744,2950 5747,2950 5750,2949 5753,2949 5756,2949 5887,2948 5887,2949 5890,2949 5893,2949 5896,2950 5899,2950 5902,2951 5905,2952 5908,2953 5910,2954 5913,2955 5916,2957 5918,2958 5921,2960 5923,2962 5925,2964 5928,2966 5930,2968 5932,2970 5934,2972 5935,2975 5937,2977 5938,2980 5940,2983 5941,2986 5942,2988 5943,2991 5944,2994 5944,2997 5945,3000 5945,3003 5945,3006 5945,3007 Z M 5945,3065 L 5945,3065 Z M 5698,2948 L 5698,2948 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id132">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5698" y="3116" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5945,3175 L 5945,3175 5945,3178 5945,3181 5944,3184 5944,3187 5943,3190 5942,3193 5941,3196 5940,3199 5939,3201 5937,3204 5936,3207 5934,3209 5932,3212 5930,3214 5928,3216 5926,3218 5924,3220 5921,3222 5919,3224 5916,3225 5913,3227 5911,3228 5908,3229 5905,3230 5902,3231 5899,3232 5896,3232 5893,3233 5890,3233 5887,3233 5757,3233 5757,3233 5754,3233 5751,3233 5748,3232 5745,3232 5742,3231 5739,3230 5736,3229 5733,3228 5731,3227 5728,3225 5725,3224 5723,3222 5720,3220 5718,3218 5716,3216 5714,3214 5712,3212 5710,3209 5708,3207 5707,3204 5705,3201 5704,3199 5703,3196 5702,3193 5701,3190 5700,3187 5700,3184 5699,3181 5699,3178 5699,3175 5698,3175 5699,3175 5699,3172 5699,3169 5700,3166 5700,3163 5701,3160 5702,3157 5703,3154 5704,3152 5705,3149 5707,3146 5708,3144 5710,3141 5712,3139 5714,3137 5716,3134 5718,3132 5720,3130 5722,3128 5725,3127 5727,3125 5730,3124 5733,3122 5736,3121 5738,3120 5741,3119 5744,3118 5747,3118 5750,3117 5753,3117 5756,3117 5887,3116 5887,3117 5890,3117 5893,3117 5896,3118 5899,3118 5902,3119 5905,3120 5908,3121 5910,3122 5913,3123 5916,3125 5918,3126 5921,3128 5923,3130 5925,3132 5928,3134 5930,3136 5932,3138 5934,3140 5935,3143 5937,3145 5938,3148 5940,3151 5941,3154 5942,3156 5943,3159 5944,3162 5944,3165 5945,3168 5945,3171 5945,3174 5945,3175 Z M 5945,3233 L 5945,3233 Z M 5698,3116 L 5698,3116 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id133">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5976" y="2782" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6222,2841 L 6222,2841 6222,2844 6222,2847 6221,2850 6221,2853 6220,2856 6219,2859 6218,2862 6217,2865 6216,2867 6214,2870 6213,2873 6211,2875 6209,2878 6207,2880 6205,2882 6203,2884 6201,2886 6198,2888 6196,2890 6193,2891 6190,2893 6188,2894 6185,2895 6182,2896 6179,2897 6176,2898 6173,2898 6170,2899 6167,2899 6164,2899 6035,2899 6035,2899 6032,2899 6029,2899 6026,2898 6023,2898 6020,2897 6017,2896 6014,2895 6011,2894 6009,2893 6006,2891 6003,2890 6001,2888 5998,2886 5996,2884 5994,2882 5992,2880 5990,2878 5988,2875 5986,2873 5985,2870 5983,2867 5982,2865 5981,2862 5980,2859 5979,2856 5978,2853 5978,2850 5977,2847 5977,2844 5977,2841 5976,2841 5977,2841 5977,2838 5977,2835 5978,2832 5978,2829 5979,2826 5980,2823 5981,2820 5982,2818 5983,2815 5985,2812 5986,2810 5988,2807 5990,2805 5992,2803 5994,2800 5996,2798 5998,2796 6000,2794 6003,2793 6005,2791 6008,2790 6011,2788 6014,2787 6016,2786 6019,2785 6022,2784 6025,2784 6028,2783 6031,2783 6034,2783 6164,2782 6164,2783 6167,2783 6170,2783 6173,2784 6176,2784 6179,2785 6182,2786 6185,2787 6187,2788 6190,2789 6193,2791 6195,2792 6198,2794 6200,2796 6202,2798 6205,2800 6207,2802 6209,2804 6211,2806 6212,2809 6214,2811 6215,2814 6217,2817 6218,2820 6219,2822 6220,2825 6221,2828 6221,2831 6222,2834 6222,2837 6222,2840 6222,2841 Z M 6222,2899 L 6222,2899 Z M 5976,2782 L 5976,2782 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id134">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5976" y="2950" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6222,3009 L 6222,3009 6222,3012 6222,3015 6221,3018 6221,3021 6220,3024 6219,3027 6218,3030 6217,3033 6216,3035 6214,3038 6213,3041 6211,3043 6209,3046 6207,3048 6205,3050 6203,3052 6201,3054 6198,3056 6196,3058 6193,3059 6190,3061 6188,3062 6185,3063 6182,3064 6179,3065 6176,3066 6173,3066 6170,3067 6167,3067 6164,3067 6035,3067 6035,3067 6032,3067 6029,3067 6026,3066 6023,3066 6020,3065 6017,3064 6014,3063 6011,3062 6009,3061 6006,3059 6003,3058 6001,3056 5998,3054 5996,3052 5994,3050 5992,3048 5990,3046 5988,3043 5986,3041 5985,3038 5983,3035 5982,3033 5981,3030 5980,3027 5979,3024 5978,3021 5978,3018 5977,3015 5977,3012 5977,3009 5976,3009 5977,3009 5977,3006 5977,3003 5978,3000 5978,2997 5979,2994 5980,2991 5981,2988 5982,2986 5983,2983 5985,2980 5986,2978 5988,2975 5990,2973 5992,2971 5994,2968 5996,2966 5998,2964 6000,2962 6003,2961 6005,2959 6008,2958 6011,2956 6014,2955 6016,2954 6019,2953 6022,2952 6025,2952 6028,2951 6031,2951 6034,2951 6164,2950 6164,2951 6167,2951 6170,2951 6173,2952 6176,2952 6179,2953 6182,2954 6185,2955 6187,2956 6190,2957 6193,2959 6195,2960 6198,2962 6200,2964 6202,2966 6205,2968 6207,2970 6209,2972 6211,2974 6212,2977 6214,2979 6215,2982 6217,2985 6218,2988 6219,2990 6220,2993 6221,2996 6221,2999 6222,3002 6222,3005 6222,3008 6222,3009 Z M 6222,3067 L 6222,3067 Z M 5976,2950 L 5976,2950 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id135">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5976" y="3118" width="248" height="119"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6222,3177 L 6222,3177 6222,3180 6222,3183 6221,3186 6221,3189 6220,3192 6219,3195 6218,3198 6217,3201 6216,3203 6214,3206 6213,3209 6211,3211 6209,3214 6207,3216 6205,3218 6203,3220 6201,3222 6198,3224 6196,3226 6193,3227 6190,3229 6188,3230 6185,3231 6182,3232 6179,3233 6176,3234 6173,3234 6170,3235 6167,3235 6164,3235 6035,3235 6035,3235 6032,3235 6029,3235 6026,3234 6023,3234 6020,3233 6017,3232 6014,3231 6011,3230 6009,3229 6006,3227 6003,3226 6001,3224 5998,3222 5996,3220 5994,3218 5992,3216 5990,3214 5988,3211 5986,3209 5985,3206 5983,3203 5982,3201 5981,3198 5980,3195 5979,3192 5978,3189 5978,3186 5977,3183 5977,3180 5977,3177 5976,3177 5977,3177 5977,3174 5977,3171 5978,3168 5978,3165 5979,3162 5980,3159 5981,3156 5982,3154 5983,3151 5985,3148 5986,3146 5988,3143 5990,3141 5992,3139 5994,3136 5996,3134 5998,3132 6000,3130 6003,3129 6005,3127 6008,3126 6011,3124 6014,3123 6016,3122 6019,3121 6022,3120 6025,3120 6028,3119 6031,3119 6034,3119 6164,3118 6164,3119 6167,3119 6170,3119 6173,3120 6176,3120 6179,3121 6182,3122 6185,3123 6187,3124 6190,3125 6193,3127 6195,3128 6198,3130 6200,3132 6202,3134 6205,3136 6207,3138 6209,3140 6211,3142 6212,3145 6214,3147 6215,3150 6217,3153 6218,3156 6219,3158 6220,3161 6221,3164 6221,3167 6222,3170 6222,3173 6222,3176 6222,3177 Z M 6222,3235 L 6222,3235 Z M 5976,3118 L 5976,3118 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id136">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2233" y="9825" width="557" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 2512,9825 L 2789,9986 2651,9986 2651,10396 2789,10396 2512,10558 2234,10396 2373,10396 2373,9986 2234,9986 2512,9825 Z M 2789,9825 L 2789,9825 Z M 2234,10558 L 2234,10558 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id137">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2272" y="10022" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 2510,10365 L 2272,10365 2272,10022 2747,10022 2747,10365 2510,10365 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2281" y="10307"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/docs/report/introduction/testbed-2n-zn2.svg b/docs/static/testbed-2n-zn2.svg
index 54b785b122..54b785b122 100644
--- a/docs/report/introduction/testbed-2n-zn2.svg
+++ b/docs/static/testbed-2n-zn2.svg
diff --git a/docs/static/testbed-3n-alt.svg b/docs/static/testbed-3n-alt.svg
new file mode 100644
index 0000000000..596a7bb5d1
--- /dev/null
+++ b/docs/static/testbed-3n-alt.svg
@@ -0,0 +1,1134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.2" width="175mm" height="140mm" viewBox="0 0 17500 14000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
+ <defs class="ClipPathGroup">
+ <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
+ <rect x="0" y="0" width="17500" height="14000"/>
+ </clipPath>
+ <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
+ <rect x="17" y="14" width="17465" height="13972"/>
+ </clipPath>
+ </defs>
+ <defs>
+ <font id="EmbeddedFont_1" horiz-adv-x="2048">
+ <font-face font-family="Arial embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+ <glyph unicode="x" horiz-adv-x="1006" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
+ <glyph unicode="U" horiz-adv-x="1192" d="M 731,-20 C 616,-20 515,1 429,43 343,85 276,146 229,226 182,306 158,401 158,512 L 158,1409 349,1409 349,528 C 349,399 382,302 447,235 512,168 607,135 730,135 857,135 955,170 1026,239 1096,308 1131,408 1131,541 L 1131,1409 1321,1409 1321,530 C 1321,416 1297,318 1249,235 1200,152 1132,89 1044,46 955,2 851,-20 731,-20 Z"/>
+ <glyph unicode="P" horiz-adv-x="1112" d="M 1258,985 C 1258,852 1215,746 1128,667 1041,588 922,549 773,549 L 359,549 359,0 168,0 168,1409 761,1409 C 919,1409 1041,1372 1128,1298 1215,1224 1258,1120 1258,985 Z M 1066,983 C 1066,1165 957,1256 738,1256 L 359,1256 359,700 746,700 C 959,700 1066,794 1066,983 Z"/>
+ <glyph unicode="I" horiz-adv-x="213" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
+ <glyph unicode="6" horiz-adv-x="980" d="M 1049,461 C 1049,312 1009,195 928,109 847,23 736,-20 594,-20 435,-20 314,39 230,157 146,275 104,447 104,672 104,916 148,1103 235,1234 322,1365 447,1430 608,1430 821,1430 955,1334 1010,1143 L 838,1112 C 803,1227 725,1284 606,1284 503,1284 424,1236 368,1141 311,1045 283,906 283,725 316,786 362,832 421,864 480,895 548,911 625,911 755,911 858,870 935,789 1011,708 1049,598 1049,461 Z M 866,453 C 866,555 841,634 791,689 741,744 671,772 582,772 498,772 430,748 379,699 327,650 301,582 301,496 301,387 328,298 382,229 435,160 504,125 588,125 675,125 743,154 792,213 841,271 866,351 866,453 Z"/>
+ <glyph unicode="1" horiz-adv-x="927" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
+ </font>
+ </defs>
+ <defs>
+ <font id="EmbeddedFont_2" horiz-adv-x="2048">
+ <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1535" descent="503"/>
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+ <glyph unicode="y" horiz-adv-x="927" d="M 409,-288 C 404,-301 397,-312 388,-319 379,-326 365,-330 348,-330 L 217,-330 385,58 11,978 163,978 C 178,978 190,974 198,967 206,960 212,951 216,942 L 444,330 C 449,316 455,302 460,288 465,274 469,260 472,246 476,261 481,275 486,290 491,304 496,318 501,332 L 722,942 C 726,952 733,961 742,968 751,975 762,978 773,978 L 913,978 409,-288 Z"/>
+ <glyph unicode="x" horiz-adv-x="874" d="M 327,502 L 36,978 204,978 C 217,978 227,976 234,971 240,966 246,960 251,952 L 455,597 C 458,604 461,612 464,619 467,626 471,633 476,640 L 647,948 C 653,957 659,965 666,970 673,975 681,978 690,978 L 851,978 559,511 864,0 695,0 C 682,0 671,4 663,12 654,19 647,27 642,36 L 435,406 C 430,391 424,378 417,367 L 230,36 C 225,27 218,18 211,11 203,4 193,0 180,0 L 23,0 327,502 Z"/>
+ <glyph unicode="v" horiz-adv-x="927" d="M 542,0 L 383,0 19,978 164,978 C 177,978 189,974 198,967 207,960 214,951 217,942 L 426,316 C 435,293 442,270 448,248 454,226 460,204 465,181 470,203 475,225 482,248 488,270 496,293 505,316 L 717,942 C 721,952 728,961 737,968 746,975 756,978 767,978 L 906,978 542,0 Z"/>
+ <glyph unicode="u" horiz-adv-x="848" d="M 301,978 L 301,355 C 301,282 318,225 351,185 384,144 434,124 501,124 551,124 598,136 641,160 684,183 723,216 760,257 L 760,978 936,978 936,0 830,0 C 818,0 808,3 800,9 792,14 787,23 786,36 L 770,140 C 728,93 681,56 630,28 578,-1 518,-15 450,-15 397,-15 350,-6 310,12 269,29 235,54 208,87 181,119 160,158 146,204 132,249 125,300 125,355 L 125,978 301,978 Z"/>
+ <glyph unicode="t" horiz-adv-x="636" d="M 417,-15 C 342,-15 284,7 243,50 202,93 182,155 182,236 L 182,832 70,832 C 60,832 52,835 45,842 38,849 34,858 34,871 L 34,941 188,961 229,1262 C 230,1272 235,1280 242,1286 249,1292 257,1295 268,1295 L 358,1295 358,960 627,960 627,832 358,832 358,248 C 358,208 367,178 386,158 404,138 428,128 457,128 474,128 489,130 502,135 514,140 524,145 533,151 542,157 549,162 556,167 562,172 568,174 573,174 579,174 584,173 588,170 591,167 595,163 598,157 L 650,73 C 620,45 585,23 544,8 503,-7 461,-15 417,-15 Z"/>
+ <glyph unicode="s" horiz-adv-x="689" d="M 679,816 C 671,801 659,794 643,794 633,794 622,798 611,805 599,812 585,820 569,829 552,837 533,845 511,852 488,859 462,863 431,863 405,863 382,859 361,852 340,845 323,835 308,822 293,809 282,795 274,778 266,761 262,742 262,723 262,698 269,677 282,660 295,643 313,629 335,617 357,605 382,594 411,585 439,575 468,565 497,555 526,545 555,533 584,520 612,507 637,490 659,471 681,452 699,428 712,401 725,373 732,339 732,300 732,255 724,213 709,175 694,136 671,103 642,75 612,47 575,25 532,9 488,-7 438,-15 381,-15 316,-15 258,-4 205,18 152,40 107,69 70,104 L 111,170 C 116,179 123,185 130,190 137,195 147,197 158,197 170,197 182,193 194,184 206,175 221,165 238,154 255,143 275,133 299,124 323,115 353,110 389,110 420,110 446,114 469,123 491,132 509,143 524,158 539,172 550,189 557,208 564,227 568,248 568,269 568,296 561,318 548,336 534,353 516,368 494,381 472,393 447,404 419,413 390,422 361,432 332,443 302,453 273,465 245,478 216,491 191,507 169,528 147,548 129,573 116,602 102,631 95,667 95,709 95,747 102,783 117,818 132,852 153,882 181,908 209,934 244,955 285,970 326,985 374,993 427,993 488,993 543,983 592,963 641,943 683,915 718,879 L 679,816 Z"/>
+ <glyph unicode="r" horiz-adv-x="583" d="M 131,0 L 131,978 232,978 C 251,978 264,974 272,967 279,960 284,947 285,930 L 297,786 C 327,851 364,902 408,939 452,976 505,995 567,995 588,995 607,993 625,989 643,984 659,977 674,967 L 660,837 C 658,820 649,812 632,812 623,812 610,814 593,818 576,821 557,823 536,823 506,823 480,819 457,810 434,801 413,787 395,770 376,752 360,730 346,705 332,680 319,651 307,618 L 307,0 131,0 Z"/>
+ <glyph unicode="p" horiz-adv-x="874" d="M 141,-330 L 141,978 246,978 C 259,978 269,975 277,970 285,964 290,955 291,942 L 308,828 C 349,878 397,918 450,949 503,980 565,995 634,995 690,995 741,984 786,963 831,941 870,909 902,867 934,825 959,773 976,711 993,649 1002,577 1002,496 1002,424 992,357 973,295 954,232 926,178 890,133 853,87 809,51 757,25 705,-1 646,-14 581,-14 522,-14 471,-4 429,16 387,36 350,64 317,100 L 317,-330 141,-330 Z M 576,854 C 521,854 473,841 432,816 390,791 352,755 317,708 L 317,236 C 348,194 382,165 419,148 456,131 497,122 542,122 631,122 700,154 749,219 797,284 821,376 821,496 821,559 816,614 805,659 794,704 778,742 757,771 736,800 710,821 680,834 649,847 615,854 576,854 Z"/>
+ <glyph unicode="o" horiz-adv-x="953" d="M 541,993 C 612,993 677,981 734,958 791,934 840,900 880,857 920,813 951,760 973,698 994,636 1005,567 1005,490 1005,413 994,343 973,281 951,219 920,166 880,123 840,79 791,45 734,22 677,-2 612,-14 541,-14 470,-14 405,-2 348,22 290,45 241,79 201,123 160,166 129,219 108,281 86,343 75,413 75,490 75,567 86,636 108,698 129,760 160,813 201,857 241,900 290,934 348,958 405,981 470,993 541,993 Z M 541,123 C 588,123 630,131 665,148 700,164 730,188 754,219 777,250 795,289 807,334 818,379 824,431 824,489 824,547 818,599 807,644 795,689 777,728 754,759 730,790 700,814 665,831 630,848 588,856 541,856 493,856 451,848 416,831 380,814 350,790 327,759 303,728 285,689 274,644 262,599 256,547 256,489 256,431 262,379 274,334 285,289 303,250 327,219 350,188 380,164 416,148 451,131 493,123 541,123 Z"/>
+ <glyph unicode="n" horiz-adv-x="822" d="M 140,0 L 140,978 245,978 C 258,978 268,975 276,970 284,964 289,955 290,942 L 305,838 C 347,885 394,922 446,951 498,979 558,993 626,993 679,993 726,984 767,967 807,949 841,924 868,892 895,859 916,820 930,775 944,729 951,678 951,623 L 951,0 775,0 775,623 C 775,696 759,752 726,793 693,834 642,854 575,854 525,854 478,842 435,819 392,795 352,762 316,720 L 316,0 140,0 Z"/>
+ <glyph unicode="m" horiz-adv-x="1377" d="M 147,0 L 147,978 251,978 C 264,978 275,975 283,970 290,964 295,955 296,942 L 311,842 C 330,864 349,884 370,903 390,921 412,937 435,951 458,964 483,975 510,982 537,989 565,993 595,993 662,993 717,975 760,938 802,901 832,852 850,790 864,826 883,857 906,882 929,907 954,928 982,945 1010,962 1040,974 1072,982 1104,989 1137,993 1170,993 1277,993 1359,961 1418,897 1476,833 1505,742 1505,623 L 1505,0 1329,0 1329,623 C 1329,699 1312,757 1277,796 1242,835 1193,854 1128,854 1099,854 1071,849 1045,840 1019,830 996,815 977,796 957,776 941,752 930,723 918,694 912,661 912,623 L 912,0 736,0 736,623 C 736,701 720,759 688,797 655,835 608,854 545,854 502,854 462,843 425,821 388,798 354,767 323,728 L 323,0 147,0 Z"/>
+ <glyph unicode="l" horiz-adv-x="213" d="M 323,1422 L 323,0 147,0 147,1422 323,1422 Z"/>
+ <glyph unicode="k" horiz-adv-x="821" d="M 304,1422 L 304,586 344,586 C 357,586 367,588 375,591 382,594 390,602 399,613 L 659,944 C 668,955 678,963 688,969 698,975 711,978 726,978 L 886,978 579,593 C 570,583 560,574 551,566 542,557 532,550 521,543 532,536 543,527 552,517 561,506 570,495 579,484 L 906,0 748,0 C 734,0 722,3 711,8 700,13 691,21 682,33 L 415,434 C 406,447 397,456 389,461 380,465 367,467 349,467 L 304,467 304,0 128,0 128,1422 304,1422 Z"/>
+ <glyph unicode="i" horiz-adv-x="265" d="M 323,978 L 323,0 147,0 147,978 323,978 Z M 357,1284 C 357,1267 354,1252 347,1237 340,1222 331,1209 320,1198 308,1187 295,1178 280,1171 265,1164 249,1161 232,1161 215,1161 200,1164 185,1171 170,1178 158,1187 147,1198 136,1209 127,1222 120,1237 113,1252 110,1267 110,1284 110,1301 113,1318 120,1333 127,1348 136,1361 147,1372 158,1383 170,1392 185,1399 200,1406 215,1409 232,1409 249,1409 265,1406 280,1399 295,1392 308,1383 320,1372 331,1361 340,1348 347,1333 354,1318 357,1301 357,1284 Z"/>
+ <glyph unicode="f" horiz-adv-x="610" d="M 170,0 L 170,831 71,844 C 57,845 46,850 37,857 28,864 24,875 24,888 L 24,960 170,960 170,1053 C 170,1109 178,1159 193,1203 208,1246 229,1283 257,1313 285,1342 319,1365 359,1381 399,1396 444,1404 494,1404 515,1404 535,1402 555,1399 574,1396 593,1391 611,1385 L 606,1297 C 605,1282 597,1273 582,1272 567,1270 548,1269 523,1269 495,1269 470,1265 448,1258 425,1251 406,1238 390,1221 374,1204 362,1181 353,1153 344,1124 340,1089 340,1048 L 340,960 603,960 603,832 346,832 346,0 170,0 Z"/>
+ <glyph unicode="e" horiz-adv-x="901" d="M 535,993 C 594,993 648,983 698,964 748,945 791,916 828,879 865,842 893,796 914,742 935,688 945,626 945,556 945,529 942,511 936,502 930,493 919,488 903,488 L 249,488 C 250,427 259,373 274,328 289,282 311,244 338,214 365,184 397,162 434,147 471,132 513,124 559,124 602,124 639,129 670,139 701,148 728,159 751,171 773,183 792,194 807,204 822,213 836,218 847,218 854,218 861,217 866,214 871,211 876,206 880,201 L 930,137 C 908,111 882,89 853,70 823,51 791,35 757,23 723,10 688,1 652,-5 615,-11 579,-14 544,-14 476,-14 413,-3 356,20 299,43 249,76 208,121 166,165 133,220 110,285 87,350 75,424 75,509 75,577 86,641 107,700 128,759 158,810 198,854 237,897 286,931 343,956 400,981 464,993 535,993 Z M 538,865 C 456,865 391,841 344,793 296,745 266,679 254,596 L 787,596 C 787,635 781,672 770,705 759,738 742,766 721,790 700,813 674,832 643,845 612,858 577,865 538,865 Z"/>
+ <glyph unicode="d" horiz-adv-x="901" d="M 827,0 C 814,0 804,3 796,9 788,14 783,23 782,36 L 764,153 C 723,103 676,63 623,32 570,1 509,-14 440,-14 385,-14 335,-3 290,19 245,40 206,72 174,114 142,156 117,208 100,271 83,333 74,405 74,486 74,558 84,625 103,688 122,750 149,804 185,849 221,894 265,930 317,956 368,982 427,995 492,995 551,995 602,985 644,966 686,946 723,918 756,881 L 756,1422 932,1422 932,0 827,0 Z M 497,127 C 552,127 601,140 642,166 683,191 721,227 756,273 L 756,746 C 725,788 691,818 654,835 617,852 577,860 532,860 443,860 375,828 327,763 279,698 255,606 255,486 255,423 261,368 272,323 283,278 298,241 319,212 340,183 365,161 395,148 425,134 459,127 497,127 Z"/>
+ <glyph unicode="c" horiz-adv-x="795" d="M 769,802 C 764,795 759,789 754,786 749,782 741,780 732,780 722,780 712,784 701,792 690,800 677,809 661,819 645,828 626,837 603,845 580,853 551,857 518,857 474,857 435,849 402,832 368,815 340,790 318,759 295,727 278,688 267,643 255,598 249,547 249,490 249,431 255,379 268,334 280,288 297,249 320,218 343,187 370,163 402,147 434,130 470,122 510,122 549,122 580,127 605,137 630,147 650,158 667,170 684,182 698,193 709,203 720,213 731,218 743,218 756,218 767,212 775,201 L 826,137 C 805,111 781,89 755,70 729,51 701,35 671,23 641,10 610,1 578,-5 545,-11 512,-14 479,-14 422,-14 368,-3 318,20 268,43 225,76 188,119 151,162 122,214 101,277 80,339 69,410 69,490 69,563 79,630 98,692 117,753 146,806 183,851 220,896 265,931 320,956 374,981 436,993 507,993 574,993 632,982 682,960 732,937 776,906 815,866 L 769,802 Z"/>
+ <glyph unicode="a" horiz-adv-x="795" d="M 777,0 C 760,0 746,3 737,8 728,13 721,24 718,41 L 696,132 C 671,109 646,88 622,70 597,51 572,36 545,23 518,10 490,1 459,-6 428,-12 395,-15 358,-15 320,-15 285,-10 252,1 219,11 190,27 165,49 140,70 120,97 106,130 91,162 84,200 84,244 84,283 95,320 116,356 137,391 171,423 218,451 265,479 327,502 403,520 479,537 572,547 683,550 L 683,625 C 683,701 667,758 635,797 602,835 555,854 493,854 452,854 417,849 389,838 360,827 336,816 315,803 294,790 277,779 262,768 247,757 231,752 216,752 204,752 194,755 185,761 176,767 169,775 164,784 L 132,840 C 186,892 244,931 307,957 369,982 438,995 514,995 569,995 617,986 660,969 703,951 738,926 767,893 796,860 818,821 833,776 848,731 855,680 855,625 L 855,0 777,0 Z M 411,108 C 440,108 467,111 492,117 517,123 540,132 562,143 584,154 605,167 625,184 644,200 664,218 683,238 L 683,440 C 605,437 539,430 484,421 429,411 385,398 351,382 316,366 291,347 276,326 261,304 253,280 253,253 253,228 257,206 266,188 274,169 285,154 299,143 313,131 330,122 349,117 368,111 389,108 411,108 Z"/>
+ <glyph unicode="X" horiz-adv-x="1059" d="M 407,674 L 27,1314 208,1314 C 221,1314 231,1312 237,1307 243,1302 249,1296 254,1289 L 543,777 C 548,788 553,798 559,807 L 825,1286 C 830,1295 836,1302 843,1307 849,1312 857,1314 866,1314 L 1040,1314 658,684 1052,0 871,0 C 858,0 847,4 840,11 833,18 826,26 821,34 L 524,570 C 521,560 517,552 512,545 L 228,34 C 223,25 216,18 209,11 202,4 192,0 181,0 L 11,0 407,674 Z"/>
+ <glyph unicode="U" horiz-adv-x="1060" d="M 657,144 C 710,144 757,153 799,172 840,190 875,216 904,249 933,282 955,321 970,366 985,411 992,461 992,516 L 992,1314 1174,1314 1174,516 C 1174,440 1162,370 1138,305 1114,240 1080,184 1036,137 991,90 937,53 873,26 809,-1 737,-15 657,-15 577,-15 505,-1 442,26 378,53 324,90 279,137 234,184 200,240 176,305 152,370 140,440 140,516 L 140,1314 322,1314 322,517 C 322,462 330,412 345,367 360,321 381,282 410,249 439,216 474,190 516,172 557,153 604,144 657,144 Z"/>
+ <glyph unicode="T" horiz-adv-x="980" d="M 974,1314 L 974,1162 591,1162 591,0 408,0 408,1162 24,1162 24,1314 974,1314 Z"/>
+ <glyph unicode="S" horiz-adv-x="821" d="M 797,1107 C 787,1088 773,1079 756,1079 746,1079 734,1084 721,1095 707,1105 690,1116 671,1129 651,1141 627,1152 600,1163 572,1173 539,1178 500,1178 463,1178 431,1173 404,1163 376,1152 353,1138 335,1120 316,1101 302,1080 293,1056 284,1031 279,1005 279,977 279,940 288,910 305,886 322,862 344,842 372,825 399,808 431,793 466,780 501,767 537,754 574,741 611,728 647,713 682,696 717,679 749,657 777,632 804,606 827,574 844,537 861,500 869,454 869,400 869,342 860,288 841,238 822,187 795,143 760,106 724,69 680,39 628,18 576,-3 517,-14 450,-14 369,-14 295,2 228,33 160,64 102,105 55,158 L 108,244 C 113,251 119,257 126,262 133,266 141,268 150,268 163,268 177,261 193,248 208,234 228,219 251,203 274,186 303,171 336,158 369,144 408,137 454,137 493,137 527,143 557,154 587,165 613,181 634,202 655,223 671,248 682,277 693,306 698,338 698,373 698,412 690,445 673,470 656,495 633,517 606,534 578,551 546,565 511,577 476,588 440,600 403,613 366,626 330,640 295,657 260,673 228,694 201,721 173,748 151,781 134,820 117,859 108,908 108,967 108,1013 117,1058 134,1102 151,1145 177,1184 210,1218 243,1251 283,1278 332,1299 380,1319 435,1329 498,1329 568,1329 632,1317 691,1294 749,1271 799,1237 842,1192 L 797,1107 Z"/>
+ <glyph unicode="R" horiz-adv-x="954" d="M 329,546 L 329,0 147,0 147,1314 507,1314 C 587,1314 656,1306 715,1289 773,1272 821,1247 859,1216 896,1184 924,1146 942,1101 960,1056 969,1005 969,949 969,903 962,860 949,820 935,780 915,744 890,712 864,680 832,653 795,630 758,607 715,589 668,577 679,570 690,562 700,553 710,544 720,533 729,520 L 1082,0 920,0 C 889,0 864,12 847,37 L 536,505 C 526,520 515,530 504,537 492,543 474,546 451,546 L 329,546 Z M 329,679 L 500,679 C 548,679 590,685 627,698 663,710 693,727 718,750 743,773 761,800 774,832 786,863 792,898 792,936 792,1093 697,1171 507,1171 L 329,1171 329,679 Z"/>
+ <glyph unicode="Q" horiz-adv-x="1351" d="M 1295,657 C 1295,541 1275,437 1236,346 1197,254 1142,178 1071,118 L 1411,-271 1260,-271 C 1238,-271 1218,-268 1201,-261 1184,-254 1168,-243 1153,-228 L 929,32 C 856,1 777,-14 690,-14 600,-14 518,3 443,36 368,69 304,115 251,174 198,233 156,304 127,386 98,468 83,558 83,657 83,755 98,845 127,928 156,1010 198,1081 251,1141 304,1200 368,1247 443,1280 518,1313 600,1329 690,1329 781,1329 863,1313 938,1280 1012,1247 1076,1200 1129,1141 1182,1081 1223,1010 1252,928 1281,845 1295,755 1295,657 Z M 1109,657 C 1109,737 1099,809 1080,873 1060,936 1032,990 996,1035 959,1079 915,1113 864,1137 812,1160 754,1172 690,1172 626,1172 568,1160 517,1137 465,1113 421,1079 384,1035 347,990 319,936 300,873 280,809 270,737 270,657 270,577 280,505 300,442 319,378 347,324 384,280 421,235 465,201 517,178 568,155 626,143 690,143 754,143 812,155 864,178 915,201 959,235 996,280 1032,324 1060,378 1080,442 1099,505 1109,577 1109,657 Z"/>
+ <glyph unicode="P" horiz-adv-x="874" d="M 329,490 L 329,0 147,0 147,1314 524,1314 C 604,1314 674,1304 733,1285 792,1266 840,1238 879,1203 918,1168 947,1125 966,1075 985,1024 994,968 994,906 994,845 984,789 964,738 943,687 913,644 874,607 834,570 785,541 727,521 668,500 601,490 524,490 L 329,490 Z M 329,634 L 524,634 C 571,634 612,641 648,654 684,667 714,686 739,710 763,734 781,763 794,796 806,829 812,866 812,906 812,990 788,1055 741,1102 694,1148 621,1171 524,1171 L 329,1171 329,634 Z"/>
+ <glyph unicode="N" horiz-adv-x="1060" d="M 243,1314 C 258,1314 270,1312 278,1309 286,1305 295,1296 305,1283 L 1019,300 C 1018,316 1017,332 1016,348 1015,363 1014,378 1014,391 L 1014,1314 1174,1314 1174,0 1082,0 C 1068,0 1056,2 1047,7 1037,12 1027,20 1018,32 L 304,1012 C 305,997 306,982 307,968 308,954 308,941 308,928 L 308,0 148,0 148,1314 243,1314 Z"/>
+ <glyph unicode="M" horiz-adv-x="1430" d="M 835,479 C 844,464 852,448 859,432 866,416 872,400 879,383 886,400 893,417 900,433 907,449 914,464 922,479 L 1386,1284 C 1394,1298 1403,1307 1412,1310 1421,1313 1434,1314 1450,1314 L 1584,1314 1584,0 1423,0 1423,959 C 1423,972 1424,987 1425,1004 1426,1020 1427,1036 1428,1053 L 959,229 C 944,202 922,188 893,188 L 867,188 C 838,188 816,202 801,229 L 321,1052 C 325,1019 327,988 327,959 L 327,0 167,0 167,1314 301,1314 C 317,1314 330,1313 339,1310 348,1307 356,1298 365,1283 L 835,479 Z"/>
+ <glyph unicode="I" horiz-adv-x="212" d="M 349,0 L 167,0 167,1314 349,1314 349,0 Z"/>
+ <glyph unicode="G" horiz-adv-x="1139" d="M 1185,127 C 1121,80 1053,44 981,21 908,-2 830,-14 745,-14 643,-14 551,2 469,35 386,68 316,114 258,173 200,232 155,302 124,385 93,467 77,558 77,657 77,757 92,848 123,931 153,1013 196,1084 253,1143 309,1202 377,1247 457,1280 537,1313 627,1329 726,1329 777,1329 824,1325 867,1318 910,1310 949,1299 986,1285 1023,1270 1057,1253 1088,1232 1119,1211 1147,1188 1174,1163 L 1123,1081 C 1115,1068 1104,1059 1091,1056 1078,1053 1063,1056 1048,1065 1033,1074 1016,1084 998,1097 979,1109 957,1121 932,1132 907,1143 877,1152 842,1160 807,1168 766,1172 719,1172 650,1172 587,1160 531,1136 474,1112 426,1078 387,1033 347,988 316,934 295,871 274,807 263,736 263,657 263,575 274,502 297,437 319,372 351,317 393,272 434,227 484,192 543,169 602,145 667,133 740,133 796,133 846,140 890,153 934,166 977,184 1020,207 L 1020,495 831,495 C 819,495 809,498 802,505 795,512 791,520 791,530 L 791,633 1185,633 1185,127 Z"/>
+ <glyph unicode="D" horiz-adv-x="1060" d="M 1192,657 C 1192,558 1178,469 1149,388 1120,307 1079,238 1027,181 974,123 911,78 838,47 764,16 682,0 593,0 L 139,0 139,1314 593,1314 C 682,1314 764,1298 838,1267 911,1235 974,1190 1027,1133 1079,1076 1120,1007 1149,926 1178,845 1192,755 1192,657 Z M 1005,657 C 1005,737 995,809 976,872 957,935 929,988 893,1032 857,1076 814,1110 763,1133 712,1156 656,1167 593,1167 L 322,1167 322,147 593,147 C 656,147 712,159 763,182 814,205 857,238 893,282 929,325 957,379 976,442 995,505 1005,577 1005,657 Z"/>
+ <glyph unicode="C" horiz-adv-x="1006" d="M 954,274 C 963,274 972,270 980,262 L 1052,184 C 1005,121 946,73 877,38 808,3 725,-14 628,-14 543,-14 466,2 397,35 328,68 269,114 220,173 171,232 133,302 107,385 80,467 67,558 67,657 67,756 81,847 109,930 137,1012 176,1083 227,1142 278,1201 338,1247 409,1280 480,1313 558,1329 643,1329 728,1329 802,1314 867,1284 931,1254 987,1213 1035,1162 L 975,1078 C 971,1072 966,1067 960,1063 954,1059 946,1057 937,1057 926,1057 913,1063 900,1075 886,1087 868,1100 846,1115 824,1129 797,1142 764,1154 731,1166 691,1172 642,1172 585,1172 532,1160 485,1137 437,1114 396,1080 362,1036 327,991 301,937 282,874 263,810 253,738 253,657 253,576 263,503 283,439 303,375 330,321 365,277 400,233 441,199 488,176 535,153 585,141 639,141 672,141 702,143 729,148 755,153 779,160 802,170 824,179 845,192 865,207 884,222 904,239 923,260 934,269 944,274 954,274 Z"/>
+ <glyph unicode="A" horiz-adv-x="1192" d="M 1178,0 L 1037,0 C 1021,0 1008,4 999,12 989,20 981,30 976,42 L 864,358 322,358 211,43 C 207,32 200,22 189,13 178,4 164,0 149,0 L 8,0 501,1314 686,1314 1178,0 Z M 368,488 L 818,488 632,1017 C 625,1033 619,1052 612,1073 605,1094 599,1117 593,1142 586,1117 580,1093 573,1072 566,1051 560,1032 554,1016 L 368,488 Z"/>
+ <glyph unicode=";" horiz-adv-x="266" d="M 155,120 C 155,135 158,149 164,162 169,175 177,187 187,197 197,207 209,215 224,221 238,227 254,230 271,230 291,230 309,226 324,219 339,212 351,202 361,190 371,177 379,163 384,146 389,129 391,110 391,91 391,62 387,32 379,1 370,-30 358,-61 343,-92 327,-123 308,-152 285,-182 262,-210 236,-237 207,-262 L 177,-234 C 168,-226 164,-217 164,-206 164,-198 169,-189 178,-180 184,-173 192,-164 202,-152 212,-140 222,-126 233,-111 243,-96 252,-79 261,-60 270,-41 276,-21 280,0 L 269,0 C 235,0 208,11 187,34 166,57 155,85 155,120 Z M 396,785 C 396,768 393,753 386,738 379,723 370,710 359,699 347,688 334,679 319,672 304,665 288,662 271,662 254,662 239,665 224,672 209,679 197,688 186,699 175,710 166,723 159,738 152,753 149,768 149,785 149,802 152,819 159,834 166,849 175,862 186,873 197,884 209,893 224,900 239,907 254,910 271,910 288,910 304,907 319,900 334,893 347,884 359,873 370,862 379,849 386,834 393,819 396,802 396,785 Z"/>
+ <glyph unicode="8" horiz-adv-x="875" d="M 519,-15 C 454,-15 395,-6 342,13 288,31 242,57 204,92 165,126 135,167 114,216 93,265 82,319 82,379 82,468 103,542 146,599 188,656 250,697 331,721 263,748 212,788 178,842 143,896 126,960 126,1035 126,1086 136,1133 155,1178 174,1222 200,1261 235,1294 269,1327 310,1352 359,1371 407,1390 460,1399 519,1399 578,1399 631,1390 680,1371 728,1352 769,1327 804,1294 838,1261 865,1222 884,1178 903,1133 912,1086 912,1035 912,960 895,896 860,842 825,788 774,748 706,721 788,697 850,656 893,599 935,542 956,468 956,379 956,319 945,265 924,216 903,167 873,126 835,92 796,57 750,31 697,13 643,-6 584,-15 519,-15 Z M 519,124 C 559,124 595,130 627,143 658,156 685,173 707,196 729,219 746,246 757,278 768,309 774,344 774,382 774,429 767,470 754,503 740,536 722,564 699,585 676,606 649,622 618,632 587,642 554,647 519,647 484,647 451,642 420,632 389,622 362,606 339,585 316,564 297,536 284,503 270,470 263,429 263,382 263,344 269,309 280,278 291,246 308,219 330,196 352,173 379,156 411,143 442,130 478,124 519,124 Z M 519,787 C 559,787 593,794 622,808 650,821 673,839 690,862 707,885 720,911 728,941 736,970 740,1001 740,1032 740,1064 735,1094 726,1122 717,1150 703,1175 685,1196 666,1217 643,1233 616,1246 588,1258 556,1264 519,1264 482,1264 450,1258 423,1246 395,1233 372,1217 354,1196 335,1175 321,1150 312,1122 303,1094 298,1064 298,1032 298,1001 302,970 310,941 318,911 331,885 348,862 365,839 388,821 417,808 445,794 479,787 519,787 Z"/>
+ <glyph unicode="6" horiz-adv-x="901" d="M 437,866 C 427,852 417,839 408,826 398,813 389,800 380,787 409,806 440,821 475,832 510,843 547,848 587,848 638,848 686,839 732,821 778,803 819,777 854,742 889,707 916,663 937,612 957,561 967,502 967,436 967,373 956,314 935,259 913,204 883,156 844,115 805,74 758,43 704,20 649,-3 589,-15 523,-15 457,-15 398,-4 345,19 292,41 246,73 209,114 172,155 143,204 123,263 102,321 92,386 92,458 92,519 105,583 130,651 155,719 194,792 247,871 L 569,1341 C 578,1353 590,1363 607,1371 623,1379 642,1383 663,1383 L 819,1383 437,866 Z M 262,427 C 262,383 268,343 279,307 290,270 307,239 329,213 351,187 378,167 410,152 442,137 479,130 520,130 561,130 598,138 631,153 664,168 693,188 717,214 740,240 759,271 772,307 785,342 791,381 791,423 791,468 785,509 772,545 759,581 742,612 719,637 696,662 668,681 636,694 603,707 567,714 528,714 487,714 451,706 418,691 385,675 357,654 334,628 311,601 293,571 281,536 268,501 262,465 262,427 Z"/>
+ <glyph unicode="5" horiz-adv-x="848" d="M 877,1241 C 877,1218 870,1198 855,1183 840,1168 814,1160 779,1160 L 382,1160 325,820 C 358,827 390,833 420,836 449,839 478,841 506,841 573,841 632,831 683,811 734,790 777,762 812,727 847,692 873,650 891,602 908,553 917,501 917,444 917,374 905,311 882,255 858,198 825,150 784,110 742,70 693,39 636,18 579,-3 518,-14 453,-14 415,-14 379,-10 344,-3 309,5 277,15 246,28 215,41 187,55 162,72 136,89 113,106 93,125 L 144,196 C 156,212 171,220 189,220 201,220 215,215 230,206 245,197 263,186 284,175 305,163 330,152 359,143 388,134 422,129 462,129 506,129 546,136 581,151 616,166 646,186 671,213 696,240 715,272 728,310 741,347 748,389 748,436 748,477 742,513 731,546 719,579 702,607 679,630 656,653 627,671 592,684 557,697 517,703 471,703 406,703 338,691 265,667 L 161,699 265,1314 877,1314 877,1241 Z"/>
+ <glyph unicode="4" horiz-adv-x="980" d="M 814,475 L 1004,475 1004,380 C 1004,370 1001,362 995,355 988,348 979,344 967,344 L 814,344 814,0 667,0 667,344 102,344 C 89,344 78,348 69,355 60,362 55,371 52,382 L 35,466 657,1315 814,1315 814,475 Z M 667,1011 C 667,1043 669,1078 673,1116 L 214,475 667,475 667,1011 Z"/>
+ <glyph unicode="3" horiz-adv-x="901" d="M 555,1329 C 610,1329 661,1321 707,1305 753,1289 793,1266 826,1237 859,1208 885,1172 904,1131 922,1090 931,1044 931,993 931,951 926,914 916,881 905,848 890,820 871,795 852,770 828,750 801,733 774,716 743,702 709,691 792,668 855,631 897,578 939,525 960,458 960,378 960,317 949,263 926,215 903,166 873,125 834,91 795,57 749,31 697,13 645,-5 590,-14 531,-14 463,-14 405,-5 357,12 309,29 268,52 234,83 200,114 172,150 150,191 128,232 110,278 95,327 L 167,358 C 186,366 205,368 223,365 240,362 253,352 261,335 269,318 279,297 291,274 302,250 318,227 338,206 358,184 383,166 414,151 445,136 483,128 529,128 573,128 611,136 644,151 677,166 704,185 726,208 748,231 765,258 776,287 787,316 792,345 792,373 792,408 788,440 779,470 770,499 754,525 730,546 706,567 673,583 631,595 588,607 534,613 467,613 L 467,734 C 522,734 568,740 606,752 644,763 675,779 699,799 723,819 740,843 751,871 762,899 767,930 767,964 767,1001 762,1033 751,1061 740,1089 724,1112 705,1131 685,1150 662,1163 635,1172 608,1181 578,1186 546,1186 514,1186 485,1181 459,1172 432,1162 409,1149 388,1132 367,1115 350,1094 336,1071 321,1047 310,1021 303,993 298,970 289,956 276,949 263,942 244,940 221,943 L 133,957 C 142,1018 158,1071 182,1118 206,1164 237,1203 274,1234 311,1265 353,1289 401,1305 448,1321 500,1329 555,1329 Z"/>
+ <glyph unicode="2" horiz-adv-x="875" d="M 539,1329 C 594,1329 646,1321 693,1304 740,1287 781,1263 816,1232 851,1201 878,1162 898,1117 917,1072 927,1020 927,962 927,913 920,868 906,827 891,785 872,745 848,707 823,669 795,632 763,596 731,559 697,523 662,486 L 325,135 C 350,142 376,148 402,152 427,156 452,158 475,158 L 892,158 C 910,158 924,153 935,143 946,132 951,118 951,101 L 951,0 92,0 92,57 C 92,68 94,81 99,94 104,107 112,118 123,129 L 530,549 C 565,584 596,618 624,651 651,684 675,717 694,750 713,783 728,816 739,850 750,884 755,920 755,958 755,996 749,1029 738,1058 726,1087 710,1111 690,1130 670,1149 646,1163 619,1172 592,1181 562,1186 530,1186 499,1186 470,1181 443,1172 416,1162 393,1149 372,1132 351,1115 334,1094 319,1071 304,1047 294,1021 287,993 282,970 273,956 260,949 247,942 228,940 205,943 L 118,957 C 126,1018 142,1071 167,1118 191,1164 221,1203 258,1234 295,1265 337,1289 385,1305 432,1321 484,1329 539,1329 Z"/>
+ <glyph unicode="1" horiz-adv-x="795" d="M 255,128 L 528,128 528,1015 C 528,1041 529,1068 531,1096 L 308,900 C 292,887 277,882 262,887 247,891 236,897 230,906 L 177,979 560,1318 696,1318 696,128 946,128 946,0 255,0 255,128 Z"/>
+ <glyph unicode="0" horiz-adv-x="953" d="M 985,657 C 985,542 973,443 949,359 925,274 892,205 850,150 808,95 759,54 702,27 645,0 583,-14 518,-14 453,-14 392,0 335,27 278,54 229,95 188,150 146,205 113,274 89,359 65,443 53,542 53,657 53,772 65,871 89,956 113,1040 146,1110 188,1165 229,1220 278,1262 335,1289 392,1316 453,1329 518,1329 583,1329 645,1316 702,1289 759,1262 808,1220 850,1165 892,1110 925,1040 949,956 973,871 985,772 985,657 Z M 811,657 C 811,757 803,841 787,909 771,976 750,1031 723,1072 696,1113 664,1143 629,1161 594,1179 557,1188 518,1188 479,1188 443,1179 408,1161 373,1143 342,1113 315,1072 288,1031 266,976 250,909 234,841 226,757 226,657 226,557 234,473 250,406 266,338 288,283 315,242 342,201 373,171 408,154 443,136 479,127 518,127 557,127 594,136 629,154 664,171 696,201 723,242 750,283 771,338 787,406 803,473 811,557 811,657 Z"/>
+ <glyph unicode="-" horiz-adv-x="504" d="M 75,653 L 553,653 553,504 75,504 75,653 Z"/>
+ <glyph unicode="*" horiz-adv-x="609" d="M 465,832 L 465,1021 C 465,1033 466,1045 468,1056 469,1067 472,1077 477,1087 470,1078 463,1070 455,1064 446,1057 437,1051 426,1045 L 261,949 218,1023 383,1119 C 394,1126 406,1131 417,1135 428,1138 439,1141 450,1142 429,1144 406,1152 383,1166 L 217,1264 260,1338 426,1241 C 449,1228 467,1211 481,1190 470,1212 465,1237 465,1264 L 465,1454 552,1454 552,1265 C 552,1252 551,1240 550,1229 548,1218 545,1207 540,1196 553,1213 571,1228 593,1241 L 758,1337 800,1263 636,1167 C 625,1160 614,1155 604,1151 593,1146 582,1143 571,1142 582,1141 593,1138 604,1135 614,1131 625,1126 636,1119 L 801,1022 759,948 593,1045 C 582,1052 572,1059 563,1066 554,1073 545,1081 538,1090 547,1068 552,1045 552,1022 L 552,832 465,832 Z"/>
+ <glyph unicode=")" horiz-adv-x="398" d="M 318,607 C 318,744 301,878 266,1008 231,1137 180,1261 113,1378 108,1388 105,1397 104,1404 103,1411 103,1418 105,1424 107,1430 110,1435 114,1439 118,1443 123,1447 128,1450 L 206,1498 C 254,1423 295,1350 329,1277 362,1204 390,1131 411,1058 432,985 447,911 457,836 466,761 471,685 471,607 471,529 466,453 457,378 447,303 432,229 411,156 390,83 362,10 329,-64 295,-136 254,-210 206,-284 L 128,-236 C 123,-233 118,-230 114,-226 110,-221 107,-216 105,-211 103,-205 103,-198 104,-191 105,-184 108,-175 113,-165 180,-48 231,76 266,206 301,335 318,469 318,607 Z"/>
+ <glyph unicode="(" horiz-adv-x="398" d="M 303,607 C 303,469 321,335 356,206 391,76 441,-48 508,-165 519,-184 521,-199 516,-211 511,-221 503,-230 493,-236 L 415,-284 C 367,-210 326,-136 293,-64 259,10 232,83 211,156 190,229 174,303 165,378 155,453 150,529 150,607 150,685 155,761 165,836 174,911 190,985 211,1058 232,1131 259,1204 293,1277 326,1350 367,1423 415,1497 L 493,1450 C 503,1443 511,1435 516,1424 521,1413 519,1397 508,1378 441,1261 391,1137 356,1008 321,878 303,744 303,607 Z"/>
+ <glyph unicode=" " horiz-adv-x="450"/>
+ </font>
+ </defs>
+ <defs class="TextShapeIndex">
+ <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150"/>
+ </defs>
+ <defs class="EmbeddedBulletChars">
+ <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
+ </g>
+ <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
+ </g>
+ <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
+ </g>
+ <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
+ </g>
+ <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
+ </g>
+ <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
+ </g>
+ <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
+ </g>
+ <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
+ </g>
+ <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
+ </g>
+ <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
+ </g>
+ </defs>
+ <g>
+ <g id="id2" class="Master_Slide">
+ <g id="bg-id2" class="Background"/>
+ <g id="bo-id2" class="BackgroundObjects"/>
+ </g>
+ </g>
+ <g class="SlideGroup">
+ <g>
+ <g id="container-id1">
+ <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
+ <g class="Page">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id3">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1895" y="3088" width="2831" height="1205"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 3310,4274 L 1913,4274 1913,3106 4707,3106 4707,4274 3310,4274 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3310,4274 L 1913,4274 1913,3106 4707,3106 4707,4274 3310,4274 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2834" y="3411"><tspan fill="rgb(255,255,255)" stroke="none">Q80-30</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2083" y="3764"><tspan fill="rgb(255,255,255)" stroke="none">80* ARM Neoverse </tspan></tspan><tspan class="TextPosition" x="3129" y="4117"><tspan fill="rgb(255,255,255)" stroke="none">N1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id4">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2393" y="6287" width="5510" height="2260"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 7849,8493 L 7849,7166 2446,7166 2446,6340"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id5">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8300" y="6250" width="3041" height="2297"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 11287,6303 L 11287,7148 8353,7148 8353,8493"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id6">
+ <rect class="BoundingBox" stroke="none" fill="none" x="740" y="867" width="16140" height="12584"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="9" stroke-linejoin="miter" d="M 8810,13445 L 745,13445 745,872 16874,872 16874,13445 8810,13445 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id7">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6431" y="555" width="5022" height="670"/>
+ <g>
+ <defs>
+ <linearGradient id="gradient1" x1="8941" y1="564" x2="8941" y2="1215" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:rgb(209,209,209)"/>
+ <stop offset="1" style="stop-color:rgb(199,199,199)"/>
+ </linearGradient>
+ </defs>
+ <path style="fill:url(#gradient1)" d="M 8942,1215 L 6440,1215 6440,564 11443,564 11443,1215 8942,1215 Z"/>
+ </g>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8942,1215 L 6440,1215 6440,564 11443,564 11443,1215 8942,1215 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="6690" y="1005"><tspan fill="rgb(0,0,0)" stroke="none">3-Node ARM Altra (3n-alt)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id8">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5347" y="9562" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 8967,9580 L 12569,9580 12569,12758 5365,12758 5365,9580 8967,9580 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8967,9580 L 12569,9580 12569,12758 5365,12758 5365,9580 8967,9580 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id9">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9256" y="10532" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 10674,11716 L 9274,11716 9274,10550 12074,10550 12074,11716 10674,11716 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 10674,11716 L 9274,11716 9274,10550 12074,10550 12074,11716 10674,11716 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10135" y="10854"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10025" y="11207"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="9743" y="11560"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id10">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11124" y="9814" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 11402,9814 L 11679,9975 11541,9975 11541,10385 11679,10385 11402,10547 11124,10385 11263,10385 11263,9975 11124,9975 11402,9814 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id11">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11163" y="10011" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 11401,10354 L 11163,10354 11163,10011 11638,10011 11638,10354 11401,10354 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11172" y="10296"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id12">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5937" y="10543" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 7355,11727 L 5955,11727 5955,10561 8755,10561 8755,11727 7355,11727 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 7355,11727 L 5955,11727 5955,10561 8755,10561 8755,11727 7355,11727 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6816" y="10865"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6706" y="11218"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6424" y="11571"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id13">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7806" y="9814" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 8084,9814 L 8361,9975 8223,9975 8223,10385 8361,10385 8084,10547 7806,10385 7945,10385 7945,9975 7806,9975 8084,9814 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id14">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7844" y="10012" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 8082,10355 L 7844,10355 7844,10012 8319,10012 8319,10355 8082,10355 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7853" y="10297"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id15">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5414" y="11739" width="1428" height="932"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5414" y="12127"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5414" y="12592"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id16">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7036" y="12740" width="4221" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="7288" y="13288"><tspan fill="rgb(32,56,100)" stroke="none">Traffic Generator (TG)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id17">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8501" y="11887" width="1147" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8751" y="12294"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id18">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7840" y="11937" width="296" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8134,12007 L 8134,12007 C 8134,12019 8131,12031 8125,12042 8119,12052 8110,12061 8099,12067 8089,12073 8077,12077 8064,12077 L 7911,12076 7911,12076 C 7899,12076 7887,12073 7876,12067 7866,12061 7857,12052 7851,12041 7845,12031 7841,12019 7841,12006 L 7841,12006 7841,12007 7841,12007 C 7841,11995 7844,11983 7850,11972 7856,11962 7865,11953 7876,11947 7886,11941 7898,11937 7911,11937 L 8065,11937 8065,11937 C 8077,11937 8089,11940 8100,11946 8110,11952 8119,11961 8125,11972 8131,11982 8134,11994 8134,12007 L 8134,12007 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id19">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7841" y="12137" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8134,12207 L 8134,12207 C 8134,12219 8131,12231 8125,12242 8119,12252 8110,12261 8099,12267 8089,12273 8077,12277 8065,12277 L 7911,12276 7911,12276 C 7899,12276 7887,12273 7876,12267 7866,12261 7857,12252 7851,12241 7845,12231 7842,12219 7842,12206 L 7842,12206 7841,12207 7841,12207 C 7841,12195 7844,12183 7850,12172 7856,12162 7865,12153 7876,12147 7886,12141 7898,12137 7911,12137 L 8065,12137 8065,12137 C 8077,12137 8089,12140 8100,12146 8110,12152 8119,12161 8125,12172 8131,12182 8135,12194 8135,12206 L 8134,12207 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id20">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7841" y="12336" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8134,12406 L 8134,12406 C 8134,12418 8131,12430 8125,12441 8119,12451 8110,12460 8099,12466 8089,12472 8077,12476 8065,12476 L 7911,12475 7911,12475 C 7899,12475 7887,12472 7876,12466 7866,12460 7857,12451 7851,12440 7845,12430 7842,12418 7842,12405 L 7842,12405 7841,12406 7841,12406 C 7841,12394 7844,12382 7850,12371 7856,12361 7865,12352 7876,12346 7886,12340 7898,12336 7911,12336 L 8065,12336 8065,12336 C 8077,12336 8089,12339 8100,12345 8110,12351 8119,12360 8125,12371 8131,12381 8135,12393 8135,12406 L 8134,12406 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id21">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7491" y="11937" width="296" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7785,12007 L 7785,12007 C 7785,12019 7782,12031 7776,12042 7770,12052 7761,12061 7750,12067 7740,12073 7728,12077 7715,12077 L 7562,12076 7562,12076 C 7550,12076 7538,12073 7527,12067 7517,12061 7508,12052 7502,12041 7496,12031 7492,12019 7492,12007 L 7492,12007 7492,12007 7492,12007 C 7492,11995 7495,11983 7501,11972 7507,11962 7516,11953 7527,11947 7537,11941 7549,11938 7562,11938 L 7716,11937 7716,11937 C 7728,11937 7740,11940 7751,11946 7761,11952 7770,11961 7776,11972 7782,11982 7785,11994 7785,12007 L 7785,12007 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id22">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7492" y="12137" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7785,12207 L 7785,12207 C 7785,12219 7782,12231 7776,12242 7770,12252 7761,12261 7750,12267 7740,12273 7728,12277 7716,12277 L 7562,12276 7562,12276 C 7550,12276 7538,12273 7527,12267 7517,12261 7508,12252 7502,12241 7496,12231 7492,12219 7492,12206 L 7492,12206 7492,12207 7492,12207 C 7492,12195 7495,12183 7501,12172 7507,12162 7516,12153 7527,12147 7537,12141 7549,12138 7562,12138 L 7716,12137 7716,12137 C 7728,12137 7740,12140 7751,12146 7761,12152 7770,12161 7776,12172 7782,12182 7786,12194 7786,12206 L 7785,12207 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id23">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7492" y="12336" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7785,12406 L 7785,12406 C 7785,12418 7782,12430 7776,12441 7770,12451 7761,12460 7750,12466 7740,12472 7728,12476 7716,12476 L 7562,12475 7562,12475 C 7550,12475 7538,12472 7527,12466 7517,12460 7508,12451 7502,12440 7496,12430 7492,12418 7492,12406 L 7492,12406 7492,12406 7492,12406 C 7492,12394 7495,12382 7501,12371 7507,12361 7516,12352 7527,12346 7537,12340 7549,12337 7562,12337 L 7716,12336 7716,12336 C 7728,12336 7740,12339 7751,12345 7761,12351 7770,12360 7776,12371 7782,12381 7786,12393 7786,12406 L 7785,12406 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id24">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8170" y="11939" width="296" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8464,12010 L 8464,12010 C 8464,12022 8461,12034 8455,12045 8449,12055 8440,12064 8429,12070 8419,12076 8407,12079 8395,12079 L 8241,12079 8241,12079 C 8229,12079 8217,12076 8206,12070 8196,12064 8187,12055 8181,12044 8175,12034 8171,12022 8171,12009 L 8171,12009 8171,12010 8171,12010 C 8171,11998 8174,11986 8180,11975 8186,11965 8195,11956 8206,11950 8216,11944 8228,11940 8241,11940 L 8395,11940 8395,11940 C 8407,11940 8419,11943 8430,11949 8440,11955 8449,11964 8455,11975 8461,11985 8464,11997 8464,12009 L 8464,12010 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id25">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8171" y="12139" width="295" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8464,12210 L 8464,12210 C 8464,12222 8461,12234 8455,12245 8449,12255 8440,12264 8429,12270 8419,12276 8407,12279 8395,12279 L 8241,12279 8241,12279 C 8229,12279 8217,12276 8206,12270 8196,12264 8187,12255 8181,12244 8175,12234 8172,12222 8172,12209 L 8172,12209 8171,12210 8171,12210 C 8171,12198 8174,12186 8180,12175 8186,12165 8195,12156 8206,12150 8216,12144 8228,12140 8241,12140 L 8395,12140 8395,12140 C 8407,12140 8419,12143 8430,12149 8440,12155 8449,12164 8455,12175 8461,12185 8465,12197 8465,12209 L 8464,12210 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id26">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8171" y="12338" width="295" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8464,12409 L 8464,12409 C 8464,12421 8461,12433 8455,12444 8449,12454 8440,12463 8429,12469 8419,12475 8407,12478 8395,12478 L 8241,12478 8241,12478 C 8229,12478 8217,12475 8206,12469 8196,12463 8187,12454 8181,12443 8175,12433 8172,12421 8172,12408 L 8172,12408 8171,12409 8171,12409 C 8171,12397 8174,12385 8180,12374 8186,12364 8195,12355 8206,12349 8216,12343 8228,12339 8241,12339 L 8395,12339 8395,12339 C 8407,12339 8419,12342 8430,12348 8440,12354 8449,12363 8455,12374 8461,12384 8465,12396 8465,12408 L 8464,12409 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id27">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9963" y="11963" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10256,12033 L 10256,12033 C 10256,12045 10253,12057 10247,12068 10241,12078 10232,12087 10221,12093 10211,12099 10199,12103 10187,12103 L 10033,12102 10033,12102 C 10021,12102 10009,12099 9998,12093 9988,12087 9979,12078 9973,12067 9967,12057 9964,12045 9964,12033 L 9964,12033 9963,12033 9963,12033 C 9963,12021 9966,12009 9972,11998 9978,11988 9987,11979 9998,11973 10008,11967 10020,11964 10033,11964 L 10187,11963 10187,11963 C 10199,11963 10211,11966 10222,11972 10232,11978 10241,11987 10247,11998 10253,12008 10257,12020 10257,12033 L 10256,12033 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id28">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9963" y="12162" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10256,12232 L 10256,12232 C 10256,12244 10253,12256 10247,12267 10241,12277 10232,12286 10221,12292 10211,12298 10199,12302 10187,12302 L 10033,12301 10033,12301 C 10021,12301 10009,12298 9998,12292 9988,12286 9979,12277 9973,12266 9967,12256 9964,12244 9964,12232 L 9964,12232 9963,12232 9963,12232 C 9963,12220 9966,12208 9972,12197 9978,12187 9987,12178 9998,12172 10008,12166 10020,12163 10033,12163 L 10187,12162 10187,12162 C 10199,12162 10211,12165 10222,12171 10232,12177 10241,12186 10247,12197 10253,12207 10257,12219 10257,12232 L 10256,12232 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id29">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9963" y="12362" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10256,12432 L 10256,12432 C 10256,12444 10253,12456 10247,12467 10241,12477 10232,12486 10221,12492 10211,12498 10199,12502 10187,12502 L 10033,12501 10033,12501 C 10021,12501 10009,12498 9998,12492 9988,12486 9979,12477 9973,12466 9967,12456 9964,12444 9964,12432 L 9964,12432 9963,12432 9963,12432 C 9963,12420 9966,12408 9972,12397 9978,12387 9987,12378 9998,12372 10008,12366 10020,12363 10033,12363 L 10187,12362 10187,12362 C 10199,12362 10211,12365 10222,12371 10232,12377 10241,12386 10247,12397 10253,12407 10257,12419 10257,12432 L 10256,12432 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id30">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9614" y="11963" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9907,12033 L 9907,12033 C 9907,12045 9904,12057 9898,12068 9892,12078 9883,12087 9872,12093 9862,12099 9850,12103 9838,12103 L 9684,12102 9684,12102 C 9672,12102 9660,12099 9649,12093 9639,12087 9630,12078 9624,12067 9618,12057 9615,12045 9615,12033 L 9615,12033 9614,12033 9614,12033 C 9614,12021 9617,12009 9623,11998 9629,11988 9638,11979 9649,11973 9659,11967 9671,11964 9684,11964 L 9838,11963 9838,11963 C 9850,11963 9862,11966 9873,11972 9883,11978 9892,11987 9898,11998 9904,12008 9908,12020 9908,12033 L 9907,12033 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id31">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9614" y="12162" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9907,12232 L 9907,12232 C 9907,12244 9904,12256 9898,12267 9892,12277 9883,12286 9872,12292 9862,12298 9850,12302 9838,12302 L 9684,12301 9684,12301 C 9672,12301 9660,12298 9649,12292 9639,12286 9630,12277 9624,12266 9618,12256 9615,12244 9615,12232 L 9615,12232 9614,12232 9614,12232 C 9614,12220 9617,12208 9623,12197 9629,12187 9638,12178 9649,12172 9659,12166 9671,12163 9684,12163 L 9838,12162 9838,12162 C 9850,12162 9862,12165 9873,12171 9883,12177 9892,12186 9898,12197 9904,12207 9908,12219 9908,12232 L 9907,12232 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id32">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9614" y="12362" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9907,12432 L 9907,12432 C 9907,12444 9904,12456 9898,12467 9892,12477 9883,12486 9872,12492 9862,12498 9850,12502 9838,12502 L 9684,12501 9684,12501 C 9672,12501 9660,12498 9649,12492 9639,12486 9630,12477 9624,12466 9618,12456 9615,12444 9615,12432 L 9615,12432 9614,12432 9614,12432 C 9614,12420 9617,12408 9623,12397 9629,12387 9638,12378 9649,12372 9659,12366 9671,12363 9684,12363 L 9838,12362 9838,12362 C 9850,12362 9862,12365 9873,12371 9883,12377 9892,12386 9898,12397 9904,12407 9908,12419 9908,12432 L 9907,12432 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id33">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10294" y="11965" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10587,12035 L 10587,12035 C 10587,12047 10584,12059 10578,12070 10572,12080 10563,12089 10552,12095 10542,12101 10530,12105 10518,12105 L 10364,12104 10364,12104 C 10352,12104 10340,12101 10329,12095 10319,12089 10310,12080 10304,12069 10298,12059 10295,12047 10295,12035 L 10295,12035 10294,12035 10294,12035 C 10294,12023 10297,12011 10303,12000 10309,11990 10318,11981 10329,11975 10339,11969 10351,11966 10364,11966 L 10518,11965 10518,11965 C 10530,11965 10542,11968 10553,11974 10563,11980 10572,11989 10578,12000 10584,12010 10588,12022 10588,12035 L 10587,12035 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id34">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10294" y="12165" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10587,12235 L 10587,12235 C 10587,12247 10584,12259 10578,12270 10572,12280 10563,12289 10552,12295 10542,12301 10530,12305 10518,12305 L 10364,12304 10364,12304 C 10352,12304 10340,12301 10329,12295 10319,12289 10310,12280 10304,12269 10298,12259 10295,12247 10295,12235 L 10295,12235 10294,12235 10294,12235 C 10294,12223 10297,12211 10303,12200 10309,12190 10318,12181 10329,12175 10339,12169 10351,12166 10364,12166 L 10518,12165 10518,12165 C 10530,12165 10542,12168 10553,12174 10563,12180 10572,12189 10578,12200 10584,12210 10588,12222 10588,12235 L 10587,12235 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id35">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10294" y="12365" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10587,12435 L 10587,12435 C 10587,12447 10584,12459 10578,12470 10572,12480 10563,12489 10552,12495 10542,12501 10530,12505 10518,12505 L 10364,12504 10364,12504 C 10352,12504 10340,12501 10329,12495 10319,12489 10310,12480 10304,12469 10298,12459 10295,12447 10295,12435 L 10295,12435 10294,12435 10294,12435 C 10294,12423 10297,12411 10303,12400 10309,12390 10318,12381 10329,12375 10339,12369 10351,12366 10364,12366 L 10518,12365 10518,12365 C 10530,12365 10542,12368 10553,12374 10563,12380 10572,12389 10578,12400 10584,12410 10588,12422 10588,12435 L 10587,12435 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id36">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5191" y="9636" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5441" y="9973"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5441" y="10257"><tspan fill="rgb(0,0,0)" stroke="none">Gen4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id37">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1193" y="1920" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 4813,5116 L 1211,5116 1211,1938 8415,1938 8415,5116 4813,5116 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4813,5116 L 1211,5116 1211,1938 8415,1938 8415,5116 4813,5116 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1311" y="2326"><tspan fill="rgb(0,0,0)" stroke="none">Ampere Altra</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1311" y="2791"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id38">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5021" y="3090" width="2831" height="1205"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 6436,4276 L 5039,4276 5039,3108 7833,3108 7833,4276 6436,4276 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 6436,4276 L 5039,4276 5039,3108 7833,3108 7833,4276 6436,4276 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5897" y="3413"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5294" y="3766"><tspan fill="rgb(255,255,255)" stroke="none">Q80-30; 80* ARM </tspan></tspan><tspan class="TextPosition" x="5615" y="4119"><tspan fill="rgb(255,255,255)" stroke="none">Neoverse N1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id39">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2209" y="5020" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 2662,5463 L 2218,5463 2218,5029 3105,5029 3105,5463 2662,5463 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 2662,5463 L 2218,5463 2218,5029 3105,5029 3105,5463 2662,5463 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2387" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id40">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2322" y="5523" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2340,5524 L 2345,6224"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id41">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2235" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2319,5523 L 2244,5523 2244,5424 2393,5424 2393,5523 2319,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2319,5523 L 2244,5523 2244,5424 2393,5424 2393,5523 2319,5523 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id42">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2879" y="5413" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2963,5521 L 2888,5521 2888,5422 3037,5422 3037,5521 2963,5521 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2963,5521 L 2888,5521 2888,5422 3037,5422 3037,5521 2963,5521 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id43">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2943" y="5521" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2963,5522 L 2961,6270"/>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id44">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1769" y="3088" width="2831" height="1205"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 3184,4274 L 1787,4274 1787,3106 4581,3106 4581,4274 3184,4274 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3184,4274 L 1787,4274 1787,3106 4581,3106 4581,4274 3184,4274 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2645" y="3411"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2042" y="3764"><tspan fill="rgb(255,255,255)" stroke="none">Q80-30; 80* ARM </tspan></tspan><tspan class="TextPosition" x="2363" y="4117"><tspan fill="rgb(255,255,255)" stroke="none">Neoverse N1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id45">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2409" y="4291" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 2686,5024 L 2409,4863 2547,4863 2547,4453 2409,4453 2686,4291 2964,4453 2825,4453 2825,4863 2964,4863 2686,5024 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id46">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2447" y="4481" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 2685,4824 L 2447,4824 2447,4481 2922,4481 2922,4824 2685,4824 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2456" y="4766"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id47">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4446" y="2289" width="1147" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4696" y="2696"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id48">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2206" y="1254" width="5237" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2458" y="1802"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 1 (SUT1)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id49">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3677" y="2333" width="295" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3970,2404 L 3970,2404 C 3970,2416 3967,2428 3961,2439 3955,2449 3946,2458 3935,2464 3925,2470 3913,2473 3901,2473 L 3747,2473 3747,2473 C 3735,2473 3723,2470 3712,2464 3702,2458 3693,2449 3687,2438 3681,2428 3678,2416 3678,2403 L 3678,2403 3677,2404 3677,2404 C 3677,2392 3680,2380 3686,2369 3692,2359 3701,2350 3712,2344 3722,2338 3734,2334 3747,2334 L 3901,2334 3901,2334 C 3913,2334 3925,2337 3936,2343 3946,2349 3955,2358 3961,2369 3967,2379 3971,2391 3971,2403 L 3970,2404 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id50">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3676" y="2533" width="296" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3970,2604 L 3970,2604 C 3970,2616 3967,2628 3961,2639 3955,2649 3946,2658 3935,2664 3925,2670 3913,2673 3900,2673 L 3747,2673 3747,2673 C 3735,2673 3723,2670 3712,2664 3702,2658 3693,2649 3687,2638 3681,2628 3677,2616 3677,2603 L 3677,2603 3677,2604 3677,2604 C 3677,2592 3680,2580 3686,2569 3692,2559 3701,2550 3712,2544 3722,2538 3734,2534 3746,2534 L 3901,2534 3901,2534 C 3913,2534 3925,2537 3936,2543 3946,2549 3955,2558 3961,2569 3967,2579 3970,2591 3970,2603 L 3970,2604 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id51">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3676" y="2733" width="296" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3970,2804 L 3970,2804 C 3970,2816 3967,2828 3961,2839 3955,2849 3946,2858 3935,2864 3925,2870 3913,2873 3900,2873 L 3747,2873 3747,2873 C 3735,2873 3723,2870 3712,2864 3702,2858 3693,2849 3687,2838 3681,2828 3677,2816 3677,2803 L 3677,2803 3677,2804 3677,2804 C 3677,2792 3680,2780 3686,2769 3692,2759 3701,2750 3712,2744 3722,2738 3734,2734 3747,2734 L 3901,2734 3901,2734 C 3913,2734 3925,2737 3936,2743 3946,2749 3955,2758 3961,2769 3967,2779 3970,2791 3970,2804 L 3970,2804 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id52">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3328" y="2334" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3621,2404 L 3621,2404 C 3621,2416 3618,2428 3612,2439 3606,2449 3597,2458 3586,2464 3576,2470 3564,2474 3552,2474 L 3398,2473 3398,2473 C 3386,2473 3374,2470 3363,2464 3353,2458 3344,2449 3338,2438 3332,2428 3329,2416 3329,2403 L 3329,2403 3328,2404 3328,2404 C 3328,2392 3331,2380 3337,2369 3343,2359 3352,2350 3363,2344 3373,2338 3385,2335 3398,2335 L 3552,2334 3552,2334 C 3564,2334 3576,2337 3587,2343 3597,2349 3606,2358 3612,2369 3618,2379 3622,2391 3622,2403 L 3621,2404 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id53">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3327" y="2534" width="296" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3621,2604 L 3621,2604 C 3621,2616 3618,2628 3612,2639 3606,2649 3597,2658 3586,2664 3576,2670 3564,2674 3551,2674 L 3398,2673 3398,2673 C 3386,2673 3374,2670 3363,2664 3353,2658 3344,2649 3338,2638 3332,2628 3328,2616 3328,2603 L 3328,2603 3328,2604 3328,2604 C 3328,2592 3331,2580 3337,2569 3343,2559 3352,2550 3363,2544 3373,2538 3385,2534 3397,2534 L 3552,2534 3552,2534 C 3564,2534 3576,2537 3587,2543 3597,2549 3606,2558 3612,2569 3618,2579 3621,2591 3621,2603 L 3621,2604 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id54">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3327" y="2734" width="296" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3621,2804 L 3621,2804 C 3621,2816 3618,2828 3612,2839 3606,2849 3597,2858 3586,2864 3576,2870 3564,2874 3551,2874 L 3398,2873 3398,2873 C 3386,2873 3374,2870 3363,2864 3353,2858 3344,2849 3338,2838 3332,2828 3328,2816 3328,2804 L 3328,2804 3328,2804 3328,2804 C 3328,2792 3331,2780 3337,2769 3343,2759 3352,2750 3363,2744 3373,2738 3385,2735 3397,2735 L 3552,2734 3552,2734 C 3564,2734 3576,2737 3587,2743 3597,2749 3606,2758 3612,2769 3618,2779 3621,2791 3621,2804 L 3621,2804 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id55">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4007" y="2337" width="296" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4301,2407 L 4301,2407 C 4301,2419 4298,2431 4292,2442 4286,2452 4277,2461 4266,2467 4256,2473 4244,2477 4232,2477 L 4078,2476 4078,2476 C 4066,2476 4054,2473 4043,2467 4033,2461 4024,2452 4018,2441 4012,2431 4008,2419 4008,2407 L 4008,2407 4008,2407 4008,2407 C 4008,2395 4011,2383 4017,2372 4023,2362 4032,2353 4043,2347 4053,2341 4065,2338 4078,2338 L 4232,2337 4232,2337 C 4244,2337 4256,2340 4267,2346 4277,2352 4286,2361 4292,2372 4298,2382 4302,2394 4302,2407 L 4301,2407 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id56">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4008" y="2537" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4301,2607 L 4301,2607 C 4301,2619 4298,2631 4292,2642 4286,2652 4277,2661 4266,2667 4256,2673 4244,2677 4232,2677 L 4078,2676 4078,2676 C 4066,2676 4054,2673 4043,2667 4033,2661 4024,2652 4018,2641 4012,2631 4009,2619 4009,2607 L 4009,2607 4008,2607 4008,2607 C 4008,2595 4011,2583 4017,2572 4023,2562 4032,2553 4043,2547 4053,2541 4065,2538 4078,2538 L 4232,2537 4232,2537 C 4244,2537 4256,2540 4267,2546 4277,2552 4286,2561 4292,2572 4298,2582 4302,2594 4302,2607 L 4301,2607 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id57">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4008" y="2737" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4301,2807 L 4301,2807 C 4301,2819 4298,2831 4292,2842 4286,2852 4277,2861 4266,2867 4256,2873 4244,2877 4232,2877 L 4078,2876 4078,2876 C 4066,2876 4054,2873 4043,2867 4033,2861 4024,2852 4018,2841 4012,2831 4009,2819 4009,2807 L 4009,2807 4008,2807 4008,2807 C 4008,2795 4011,2783 4017,2772 4023,2762 4032,2753 4043,2747 4053,2741 4065,2738 4078,2738 L 4232,2737 4232,2737 C 4244,2737 4256,2740 4267,2746 4277,2752 4286,2761 4292,2772 4298,2782 4302,2794 4302,2807 L 4301,2807 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id58">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6051" y="2337" width="296" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6345,2407 L 6345,2407 C 6345,2419 6342,2431 6336,2442 6330,2452 6321,2461 6310,2467 6300,2473 6288,2477 6275,2477 L 6122,2476 6122,2476 C 6110,2476 6098,2473 6087,2467 6077,2461 6068,2452 6062,2441 6056,2431 6052,2419 6052,2407 L 6052,2407 6052,2407 6052,2407 C 6052,2395 6055,2383 6061,2372 6067,2362 6076,2353 6087,2347 6097,2341 6109,2337 6122,2337 L 6276,2337 6276,2337 C 6288,2337 6300,2340 6311,2346 6321,2352 6330,2361 6336,2372 6342,2382 6345,2394 6345,2406 L 6345,2407 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id59">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6052" y="2536" width="295" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6345,2607 L 6345,2607 C 6345,2619 6342,2631 6336,2642 6330,2652 6321,2661 6310,2667 6300,2673 6288,2676 6276,2676 L 6122,2676 6122,2676 C 6110,2676 6098,2673 6087,2667 6077,2661 6068,2652 6062,2641 6056,2631 6053,2619 6053,2607 L 6053,2607 6052,2607 6052,2607 C 6052,2595 6055,2583 6061,2572 6067,2562 6076,2553 6087,2547 6097,2541 6109,2537 6122,2537 L 6276,2537 6276,2537 C 6288,2537 6300,2540 6311,2546 6321,2552 6330,2561 6336,2572 6342,2582 6346,2594 6346,2606 L 6345,2607 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id60">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6052" y="2736" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6345,2806 L 6345,2806 C 6345,2818 6342,2830 6336,2841 6330,2851 6321,2860 6310,2866 6300,2872 6288,2876 6276,2876 L 6122,2875 6122,2875 C 6110,2875 6098,2872 6087,2866 6077,2860 6068,2851 6062,2840 6056,2830 6052,2818 6052,2806 L 6052,2806 6052,2806 6052,2806 C 6052,2794 6055,2782 6061,2771 6067,2761 6076,2752 6087,2746 6097,2740 6109,2736 6122,2736 L 6276,2736 6276,2736 C 6288,2736 6300,2739 6311,2745 6321,2751 6330,2760 6336,2771 6342,2781 6346,2793 6346,2805 L 6345,2806 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id61">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5702" y="2337" width="296" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5996,2407 L 5996,2407 C 5996,2419 5993,2431 5987,2442 5981,2452 5972,2461 5961,2467 5951,2473 5939,2477 5926,2477 L 5773,2476 5773,2476 C 5761,2476 5749,2473 5738,2467 5728,2461 5719,2452 5713,2441 5707,2431 5703,2419 5703,2407 L 5703,2407 5703,2407 5703,2407 C 5703,2395 5706,2383 5712,2372 5718,2362 5727,2353 5738,2347 5748,2341 5760,2338 5773,2338 L 5927,2337 5927,2337 C 5939,2337 5951,2340 5962,2346 5972,2352 5981,2361 5987,2372 5993,2382 5996,2394 5996,2407 L 5996,2407 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id62">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5703" y="2537" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5996,2607 L 5996,2607 C 5996,2619 5993,2631 5987,2642 5981,2652 5972,2661 5961,2667 5951,2673 5939,2677 5927,2677 L 5773,2676 5773,2676 C 5761,2676 5749,2673 5738,2667 5728,2661 5719,2652 5713,2641 5707,2631 5704,2619 5704,2607 L 5704,2607 5703,2607 5703,2607 C 5703,2595 5706,2583 5712,2572 5718,2562 5727,2553 5738,2547 5748,2541 5760,2538 5773,2538 L 5927,2537 5927,2537 C 5939,2537 5951,2540 5962,2546 5972,2552 5981,2561 5987,2572 5993,2582 5997,2594 5997,2607 L 5996,2607 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id63">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5703" y="2736" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5996,2806 L 5996,2806 C 5996,2818 5993,2830 5987,2841 5981,2851 5972,2860 5961,2866 5951,2872 5939,2876 5927,2876 L 5773,2875 5773,2875 C 5761,2875 5749,2872 5738,2866 5728,2860 5719,2851 5713,2840 5707,2830 5704,2818 5704,2806 L 5704,2806 5703,2806 5703,2806 C 5703,2794 5706,2782 5712,2771 5718,2761 5727,2752 5738,2746 5748,2740 5760,2737 5773,2737 L 5927,2736 5927,2736 C 5939,2736 5951,2739 5962,2745 5972,2751 5981,2760 5987,2771 5993,2781 5997,2793 5997,2806 L 5996,2806 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id64">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6382" y="2340" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6675,2410 L 6675,2410 C 6675,2422 6672,2434 6666,2445 6660,2455 6651,2464 6640,2470 6630,2476 6618,2480 6605,2480 L 6452,2479 6452,2479 C 6440,2479 6428,2476 6417,2470 6407,2464 6398,2455 6392,2444 6386,2434 6382,2422 6382,2409 L 6382,2409 6382,2410 6382,2410 C 6382,2398 6385,2386 6391,2375 6397,2365 6406,2356 6417,2350 6427,2344 6439,2340 6452,2340 L 6606,2340 6606,2340 C 6618,2340 6630,2343 6641,2349 6651,2355 6660,2364 6666,2375 6672,2385 6676,2397 6676,2409 L 6675,2410 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id65">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6382" y="2539" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6675,2609 L 6675,2609 C 6675,2621 6672,2633 6666,2644 6660,2654 6651,2663 6640,2669 6630,2675 6618,2679 6606,2679 L 6452,2678 6452,2678 C 6440,2678 6428,2675 6417,2669 6407,2663 6398,2654 6392,2643 6386,2633 6383,2621 6383,2609 L 6383,2609 6382,2609 6382,2609 C 6382,2597 6385,2585 6391,2574 6397,2564 6406,2555 6417,2549 6427,2543 6439,2539 6452,2539 L 6606,2539 6606,2539 C 6618,2539 6630,2542 6641,2548 6651,2554 6660,2563 6666,2574 6672,2584 6676,2596 6676,2609 L 6675,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id66">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6382" y="2739" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6675,2809 L 6675,2809 C 6675,2821 6672,2833 6666,2844 6660,2854 6651,2863 6640,2869 6630,2875 6618,2879 6606,2879 L 6452,2878 6452,2878 C 6440,2878 6428,2875 6417,2869 6407,2863 6398,2854 6392,2843 6386,2833 6382,2821 6382,2809 L 6382,2809 6382,2809 6382,2809 C 6382,2797 6385,2785 6391,2774 6397,2764 6406,2755 6417,2749 6427,2743 6439,2739 6452,2739 L 6606,2739 6606,2739 C 6618,2739 6630,2742 6641,2748 6651,2754 6660,2763 6666,2774 6672,2784 6676,2796 6676,2809 L 6675,2809 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id67">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1154" y="4161" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1404" y="4498"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1404" y="4782"><tspan fill="rgb(0,0,0)" stroke="none">Gen4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id68">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9448" y="1920" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 13068,5116 L 9466,5116 9466,1938 16670,1938 16670,5116 13068,5116 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13068,5116 L 9466,5116 9466,1938 16670,1938 16670,5116 13068,5116 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9566" y="2326"><tspan fill="rgb(0,0,0)" stroke="none">Ampere Altra</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9566" y="2791"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id69">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10591" y="5030" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 11044,5473 L 10600,5473 10600,5039 11487,5039 11487,5473 11044,5473 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 11044,5473 L 10600,5473 10600,5039 11487,5039 11487,5473 11044,5473 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10769" y="5337"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id70">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10704" y="5533" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10722,5534 L 10727,6234"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id71">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10617" y="5425" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10701,5533 L 10626,5533 10626,5434 10775,5434 10775,5533 10701,5533 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10701,5533 L 10626,5533 10626,5434 10775,5434 10775,5533 10701,5533 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id72">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11261" y="5423" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11345,5531 L 11270,5531 11270,5432 11419,5432 11419,5531 11345,5531 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11345,5531 L 11270,5531 11270,5432 11419,5432 11419,5531 11345,5531 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id73">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11325" y="5531" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11345,5532 L 11343,6280"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id74">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10764" y="4291" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 11041,5024 L 10764,4863 10902,4863 10902,4453 10764,4453 11041,4291 11319,4453 11180,4453 11180,4863 11319,4863 11041,5024 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id75">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10802" y="4481" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 11040,4824 L 10802,4824 10802,4481 11277,4481 11277,4824 11040,4824 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10811" y="4766"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id76">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12701" y="2289" width="1147" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12951" y="2696"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id77">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10461" y="1254" width="5237" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="10713" y="1802"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 2 (SUT2)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id78">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12032" y="2334" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12325,2404 L 12325,2404 C 12325,2416 12322,2428 12316,2439 12310,2449 12301,2458 12290,2464 12280,2470 12268,2474 12256,2474 L 12102,2473 12102,2473 C 12090,2473 12078,2470 12067,2464 12057,2458 12048,2449 12042,2438 12036,2428 12033,2416 12033,2404 L 12033,2404 12032,2404 12032,2404 C 12032,2392 12035,2380 12041,2369 12047,2359 12056,2350 12067,2344 12077,2338 12089,2335 12102,2335 L 12256,2334 12256,2334 C 12268,2334 12280,2337 12291,2343 12301,2349 12310,2358 12316,2369 12322,2379 12326,2391 12326,2404 L 12325,2404 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id79">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12032" y="2534" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12325,2604 L 12325,2604 C 12325,2616 12322,2628 12316,2639 12310,2649 12301,2658 12290,2664 12280,2670 12268,2674 12256,2674 L 12102,2673 12102,2673 C 12090,2673 12078,2670 12067,2664 12057,2658 12048,2649 12042,2638 12036,2628 12033,2616 12033,2604 L 12033,2604 12032,2604 12032,2604 C 12032,2592 12035,2580 12041,2569 12047,2559 12056,2550 12067,2544 12077,2538 12089,2535 12102,2535 L 12256,2534 12256,2534 C 12268,2534 12280,2537 12291,2543 12301,2549 12310,2558 12316,2569 12322,2579 12326,2591 12326,2604 L 12325,2604 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id80">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12032" y="2734" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12325,2804 L 12325,2804 C 12325,2816 12322,2828 12316,2839 12310,2849 12301,2858 12290,2864 12280,2870 12268,2874 12256,2874 L 12102,2873 12102,2873 C 12090,2873 12078,2870 12067,2864 12057,2858 12048,2849 12042,2838 12036,2828 12033,2816 12033,2804 L 12033,2804 12032,2804 12032,2804 C 12032,2792 12035,2780 12041,2769 12047,2759 12056,2750 12067,2744 12077,2738 12089,2735 12102,2735 L 12256,2734 12256,2734 C 12268,2734 12280,2737 12291,2743 12301,2749 12310,2758 12316,2769 12322,2779 12326,2791 12326,2804 L 12325,2804 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id81">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11683" y="2333" width="295" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11976,2404 L 11976,2404 C 11976,2416 11973,2428 11967,2439 11961,2449 11952,2458 11941,2464 11931,2470 11919,2473 11907,2473 L 11753,2473 11753,2473 C 11741,2473 11729,2470 11718,2464 11708,2458 11699,2449 11693,2438 11687,2428 11684,2416 11684,2403 L 11684,2403 11683,2404 11683,2404 C 11683,2392 11686,2380 11692,2369 11698,2359 11707,2350 11718,2344 11728,2338 11740,2334 11753,2334 L 11907,2334 11907,2334 C 11919,2334 11931,2337 11942,2343 11952,2349 11961,2358 11967,2369 11973,2379 11977,2391 11977,2403 L 11976,2404 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id82">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11683" y="2533" width="295" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11976,2604 L 11976,2604 C 11976,2616 11973,2628 11967,2639 11961,2649 11952,2658 11941,2664 11931,2670 11919,2673 11907,2673 L 11753,2673 11753,2673 C 11741,2673 11729,2670 11718,2664 11708,2658 11699,2649 11693,2638 11687,2628 11684,2616 11684,2603 L 11684,2603 11683,2604 11683,2604 C 11683,2592 11686,2580 11692,2569 11698,2559 11707,2550 11718,2544 11728,2538 11740,2534 11753,2534 L 11907,2534 11907,2534 C 11919,2534 11931,2537 11942,2543 11952,2549 11961,2558 11967,2569 11973,2579 11977,2591 11977,2603 L 11976,2604 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id83">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11683" y="2734" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11976,2804 L 11976,2804 C 11976,2816 11973,2828 11967,2839 11961,2849 11952,2858 11941,2864 11931,2870 11919,2874 11907,2874 L 11753,2873 11753,2873 C 11741,2873 11729,2870 11718,2864 11708,2858 11699,2849 11693,2838 11687,2828 11684,2816 11684,2803 L 11684,2803 11683,2804 11683,2804 C 11683,2792 11686,2780 11692,2769 11698,2759 11707,2750 11718,2744 11728,2738 11740,2734 11753,2734 L 11907,2734 11907,2734 C 11919,2734 11931,2737 11942,2743 11952,2749 11961,2758 11967,2769 11973,2779 11977,2791 11977,2804 L 11976,2804 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id84">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12363" y="2337" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12656,2407 L 12656,2407 C 12656,2419 12653,2431 12647,2442 12641,2452 12632,2461 12621,2467 12611,2473 12599,2477 12587,2477 L 12433,2476 12433,2476 C 12421,2476 12409,2473 12398,2467 12388,2461 12379,2452 12373,2441 12367,2431 12364,2419 12364,2407 L 12364,2407 12363,2407 12363,2407 C 12363,2395 12366,2383 12372,2372 12378,2362 12387,2353 12398,2347 12408,2341 12420,2338 12433,2338 L 12587,2337 12587,2337 C 12599,2337 12611,2340 12622,2346 12632,2352 12641,2361 12647,2372 12653,2382 12657,2394 12657,2407 L 12656,2407 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id85">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12363" y="2537" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12656,2607 L 12656,2607 C 12656,2619 12653,2631 12647,2642 12641,2652 12632,2661 12621,2667 12611,2673 12599,2677 12587,2677 L 12433,2676 12433,2676 C 12421,2676 12409,2673 12398,2667 12388,2661 12379,2652 12373,2641 12367,2631 12364,2619 12364,2607 L 12364,2607 12363,2607 12363,2607 C 12363,2595 12366,2583 12372,2572 12378,2562 12387,2553 12398,2547 12408,2541 12420,2538 12433,2538 L 12587,2537 12587,2537 C 12599,2537 12611,2540 12622,2546 12632,2552 12641,2561 12647,2572 12653,2582 12657,2594 12657,2607 L 12656,2607 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id86">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12363" y="2737" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12656,2807 L 12656,2807 C 12656,2819 12653,2831 12647,2842 12641,2852 12632,2861 12621,2867 12611,2873 12599,2877 12587,2877 L 12433,2876 12433,2876 C 12421,2876 12409,2873 12398,2867 12388,2861 12379,2852 12373,2841 12367,2831 12364,2819 12364,2807 L 12364,2807 12363,2807 12363,2807 C 12363,2795 12366,2783 12372,2772 12378,2762 12387,2753 12398,2747 12408,2741 12420,2738 12433,2738 L 12587,2737 12587,2737 C 12599,2737 12611,2740 12622,2746 12632,2752 12641,2761 12647,2772 12653,2782 12657,2794 12657,2807 L 12656,2807 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id87">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14307" y="2337" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14600,2407 L 14600,2407 C 14600,2419 14597,2431 14591,2442 14585,2452 14576,2461 14565,2467 14555,2473 14543,2477 14531,2477 L 14377,2476 14377,2476 C 14365,2476 14353,2473 14342,2467 14332,2461 14323,2452 14317,2441 14311,2431 14308,2419 14308,2407 L 14308,2407 14307,2407 14307,2407 C 14307,2395 14310,2383 14316,2372 14322,2362 14331,2353 14342,2347 14352,2341 14364,2337 14377,2337 L 14531,2337 14531,2337 C 14543,2337 14555,2340 14566,2346 14576,2352 14585,2361 14591,2372 14597,2382 14601,2394 14601,2407 L 14600,2407 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id88">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14307" y="2537" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14600,2607 L 14600,2607 C 14600,2619 14597,2631 14591,2642 14585,2652 14576,2661 14565,2667 14555,2673 14543,2677 14531,2677 L 14377,2676 14377,2676 C 14365,2676 14353,2673 14342,2667 14332,2661 14323,2652 14317,2641 14311,2631 14308,2619 14308,2607 L 14308,2607 14307,2607 14307,2607 C 14307,2595 14310,2583 14316,2572 14322,2562 14331,2553 14342,2547 14352,2541 14364,2537 14377,2537 L 14531,2537 14531,2537 C 14543,2537 14555,2540 14566,2546 14576,2552 14585,2561 14591,2572 14597,2582 14601,2594 14601,2607 L 14600,2607 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id89">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14307" y="2736" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14600,2806 L 14600,2806 C 14600,2818 14597,2830 14591,2841 14585,2851 14576,2860 14565,2866 14555,2872 14543,2876 14531,2876 L 14377,2875 14377,2875 C 14365,2875 14353,2872 14342,2866 14332,2860 14323,2851 14317,2840 14311,2830 14308,2818 14308,2806 L 14308,2806 14307,2806 14307,2806 C 14307,2794 14310,2782 14316,2771 14322,2761 14331,2752 14342,2746 14352,2740 14364,2736 14377,2736 L 14531,2736 14531,2736 C 14543,2736 14555,2739 14566,2745 14576,2751 14585,2760 14591,2771 14597,2781 14601,2793 14601,2806 L 14600,2806 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id90">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13958" y="2337" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14251,2407 L 14251,2407 C 14251,2419 14248,2431 14242,2442 14236,2452 14227,2461 14216,2467 14206,2473 14194,2477 14182,2477 L 14028,2476 14028,2476 C 14016,2476 14004,2473 13993,2467 13983,2461 13974,2452 13968,2441 13962,2431 13959,2419 13959,2407 L 13959,2407 13958,2407 13958,2407 C 13958,2395 13961,2383 13967,2372 13973,2362 13982,2353 13993,2347 14003,2341 14015,2338 14028,2338 L 14182,2337 14182,2337 C 14194,2337 14206,2340 14217,2346 14227,2352 14236,2361 14242,2372 14248,2382 14252,2394 14252,2407 L 14251,2407 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id91">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13958" y="2537" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14251,2607 L 14251,2607 C 14251,2619 14248,2631 14242,2642 14236,2652 14227,2661 14216,2667 14206,2673 14194,2677 14182,2677 L 14028,2676 14028,2676 C 14016,2676 14004,2673 13993,2667 13983,2661 13974,2652 13968,2641 13962,2631 13959,2619 13959,2607 L 13959,2607 13958,2607 13958,2607 C 13958,2595 13961,2583 13967,2572 13973,2562 13982,2553 13993,2547 14003,2541 14015,2538 14028,2538 L 14182,2537 14182,2537 C 14194,2537 14206,2540 14217,2546 14227,2552 14236,2561 14242,2572 14248,2582 14252,2594 14252,2607 L 14251,2607 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id92">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13958" y="2736" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14251,2806 L 14251,2806 C 14251,2818 14248,2830 14242,2841 14236,2851 14227,2860 14216,2866 14206,2872 14194,2876 14182,2876 L 14028,2875 14028,2875 C 14016,2875 14004,2872 13993,2866 13983,2860 13974,2851 13968,2840 13962,2830 13959,2818 13959,2806 L 13959,2806 13958,2806 13958,2806 C 13958,2794 13961,2782 13967,2771 13973,2761 13982,2752 13993,2746 14003,2740 14015,2737 14028,2737 L 14182,2736 14182,2736 C 14194,2736 14206,2739 14217,2745 14227,2751 14236,2760 14242,2771 14248,2781 14252,2793 14252,2806 L 14251,2806 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id93">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14637" y="2340" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14930,2410 L 14930,2410 C 14930,2422 14927,2434 14921,2445 14915,2455 14906,2464 14895,2470 14885,2476 14873,2480 14861,2480 L 14707,2479 14707,2479 C 14695,2479 14683,2476 14672,2470 14662,2464 14653,2455 14647,2444 14641,2434 14638,2422 14638,2409 L 14638,2409 14637,2410 14637,2410 C 14637,2398 14640,2386 14646,2375 14652,2365 14661,2356 14672,2350 14682,2344 14694,2340 14707,2340 L 14861,2340 14861,2340 C 14873,2340 14885,2343 14896,2349 14906,2355 14915,2364 14921,2375 14927,2385 14931,2397 14931,2409 L 14930,2410 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id94">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14637" y="2539" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14930,2609 L 14930,2609 C 14930,2621 14927,2633 14921,2644 14915,2654 14906,2663 14895,2669 14885,2675 14873,2679 14861,2679 L 14707,2678 14707,2678 C 14695,2678 14683,2675 14672,2669 14662,2663 14653,2654 14647,2643 14641,2633 14638,2621 14638,2609 L 14638,2609 14637,2609 14637,2609 C 14637,2597 14640,2585 14646,2574 14652,2564 14661,2555 14672,2549 14682,2543 14694,2539 14707,2539 L 14861,2539 14861,2539 C 14873,2539 14885,2542 14896,2548 14906,2554 14915,2563 14921,2574 14927,2584 14931,2596 14931,2609 L 14930,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id95">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14637" y="2739" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14930,2809 L 14930,2809 C 14930,2821 14927,2833 14921,2844 14915,2854 14906,2863 14895,2869 14885,2875 14873,2879 14861,2879 L 14707,2878 14707,2878 C 14695,2878 14683,2875 14672,2869 14662,2863 14653,2854 14647,2843 14641,2833 14638,2821 14638,2809 L 14638,2809 14637,2809 14637,2809 C 14637,2797 14640,2785 14646,2774 14652,2764 14661,2755 14672,2749 14682,2743 14694,2739 14707,2739 L 14861,2739 14861,2739 C 14873,2739 14885,2742 14896,2748 14906,2754 14915,2763 14921,2774 14927,2784 14931,2796 14931,2809 L 14930,2809 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id96">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9382" y="4140" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9632" y="4477"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9632" y="4761"><tspan fill="rgb(0,0,0)" stroke="none">Gen4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id97">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3677" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id98">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4112" y="5979" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id99">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7006" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id100">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11070" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id101">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14196" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id102">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11405" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id103">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7414" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id104">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13761" y="5979" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id105">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2793" y="6288" width="8032" height="655"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10771,6889 L 2905,6889 2905,6341 2846,6341"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id106">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2292" y="6129" width="743" height="234"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2981,6182 L 2981,6182 C 2981,6204 2979,6226 2974,6246 2970,6265 2963,6281 2955,6292 2948,6303 2939,6309 2930,6309 L 2930,6309 2397,6309 2397,6309 C 2388,6309 2379,6303 2371,6292 2364,6281 2357,6265 2353,6246 2348,6226 2346,6204 2346,6182"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id107">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10718" y="6299" width="119" height="644"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10771,6889 L 10779,6889 10779,6352 10783,6352"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id108">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10658" y="6140" width="743" height="234"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 11347,6193 L 11347,6193 C 11347,6215 11345,6237 11340,6256 11336,6276 11329,6292 11321,6303 11314,6314 11305,6320 11296,6320 L 11296,6320 10763,6320 10763,6320 C 10754,6320 10745,6314 10737,6303 10730,6292 10723,6276 10719,6257 10714,6237 10712,6215 10712,6193"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id109">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4377" y="3184" width="891" height="1018"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 4377,3692 L 4636,3184 4636,3438 5007,3438 5007,3184 5267,3692 5007,4201 5007,3946 4636,3946 4636,4201 4377,3692 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id110">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8592" y="10663" width="891" height="1019"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 8592,11171 L 8851,10663 8851,10917 9222,10917 9222,10663 9482,11171 9222,11680 9222,11425 8851,11425 8851,11680 8592,11171 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id111">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8747" y="10943" width="609" height="382"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 9051,11324 L 8747,11324 8747,10943 9355,10943 9355,11324 9051,11324 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8815" y="11247"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id112">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13276" y="3092" width="2831" height="1205"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 14691,4278 L 13294,4278 13294,3110 16088,3110 16088,4278 14691,4278 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 14691,4278 L 13294,4278 13294,3110 16088,3110 16088,4278 14691,4278 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="14152" y="3415"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="13549" y="3768"><tspan fill="rgb(255,255,255)" stroke="none">Q80-30; 80* ARM </tspan></tspan><tspan class="TextPosition" x="13870" y="4121"><tspan fill="rgb(255,255,255)" stroke="none">Neoverse N1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id113">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10024" y="3090" width="2831" height="1205"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 11439,4276 L 10042,4276 10042,3108 12836,3108 12836,4276 11439,4276 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 11439,4276 L 10042,4276 10042,3108 12836,3108 12836,4276 11439,4276 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10900" y="3413"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10297" y="3766"><tspan fill="rgb(255,255,255)" stroke="none">Q80-30; 80* ARM </tspan></tspan><tspan class="TextPosition" x="10618" y="4119"><tspan fill="rgb(255,255,255)" stroke="none">Neoverse N1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id114">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12632" y="3184" width="892" height="1018"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 12632,3692 L 12891,3184 12891,3438 13262,3438 13262,3184 13522,3692 13262,4201 13262,3946 12891,3946 12891,4201 12632,3692 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id115">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9432" y="8492" width="390" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id116">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9940" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id117">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9423" y="9368" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 9876,9811 L 9432,9811 9432,9377 10319,9377 10319,9811 9876,9811 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 9876,9811 L 9432,9811 9432,9377 10319,9377 10319,9811 9876,9811 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9601" y="9740"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id118">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10201" y="8569" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10224,9316 L 10219,8570"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id119">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10134" y="9297" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10218,9306 L 10292,9306 10292,9405 10143,9405 10143,9306 10218,9306 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10218,9306 L 10292,9306 10292,9405 10143,9405 10143,9306 10218,9306 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id120">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9516" y="8617" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9534,9318 L 9536,8618"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id121">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9451" y="9297" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 9535,9306 L 9609,9306 9609,9405 9460,9405 9460,9306 9535,9306 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9535,9306 L 9609,9306 9609,9405 9460,9405 9460,9306 9535,9306 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id122">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9491" y="8463" width="764" height="234"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 9544,8643 L 9544,8643 C 9544,8621 9546,8599 9551,8580 9555,8560 9562,8544 9570,8533 9577,8522 9586,8516 9595,8516 L 9595,8516 10149,8516 10149,8516 C 10158,8516 10167,8522 10175,8533 10182,8544 10189,8560 10193,8580 10198,8599 10200,8621 10200,8643"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id123">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9744" y="8567" width="42" height="766"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9767,9331 L 9762,8568"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id124">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9973" y="8567" width="42" height="766"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9996,9331 L 9991,8568"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id125">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9677" y="9297" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 9761,9306 L 9835,9306 9835,9405 9686,9405 9686,9306 9761,9306 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9761,9306 L 9835,9306 9835,9405 9686,9405 9686,9306 9761,9306 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id126">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9905" y="9297" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 9989,9306 L 10063,9306 10063,9405 9914,9405 9914,9306 9989,9306 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9989,9306 L 10063,9306 10063,9405 9914,9405 9914,9306 9989,9306 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id127">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10956" y="8492" width="390" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id128">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11464" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id129">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10947" y="9368" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 11400,9811 L 10956,9811 10956,9377 11843,9377 11843,9811 11400,9811 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 11400,9811 L 10956,9811 10956,9377 11843,9377 11843,9811 11400,9811 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11125" y="9740"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id130">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11725" y="8569" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11748,9316 L 11743,8570"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id131">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11658" y="9297" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11742,9306 L 11816,9306 11816,9405 11667,9405 11667,9306 11742,9306 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11742,9306 L 11816,9306 11816,9405 11667,9405 11667,9306 11742,9306 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id132">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11040" y="8617" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11058,9318 L 11060,8618"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id133">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10975" y="9297" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11059,9306 L 11133,9306 11133,9405 10984,9405 10984,9306 11059,9306 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11059,9306 L 11133,9306 11133,9405 10984,9405 10984,9306 11059,9306 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id134">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11015" y="8463" width="764" height="234"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 11068,8643 L 11068,8643 C 11068,8621 11070,8599 11075,8580 11079,8560 11086,8544 11094,8533 11101,8522 11110,8516 11119,8516 L 11119,8516 11673,8516 11673,8516 C 11682,8516 11691,8522 11699,8533 11706,8544 11713,8560 11717,8580 11722,8599 11724,8621 11724,8643"/>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id135">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7654" y="8492" width="390" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id136">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8162" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id137">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8423" y="8569" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8446,9316 L 8441,8570"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id138">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7645" y="9368" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 8098,9811 L 7654,9811 7654,9377 8541,9377 8541,9811 8098,9811 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8098,9811 L 7654,9811 7654,9377 8541,9377 8541,9811 8098,9811 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7823" y="9740"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id139">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8356" y="9297" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 8440,9306 L 8514,9306 8514,9405 8365,9405 8365,9306 8440,9306 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 8440,9306 L 8514,9306 8514,9405 8365,9405 8365,9306 8440,9306 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id140">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7738" y="8617" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7756,9318 L 7758,8618"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id141">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7673" y="9297" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7757,9306 L 7831,9306 7831,9405 7682,9405 7682,9306 7757,9306 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7757,9306 L 7831,9306 7831,9405 7682,9405 7682,9306 7757,9306 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id142">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7712" y="8463" width="765" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7766,8643 L 7766,8643 C 7766,8621 7768,8599 7773,8580 7777,8560 7784,8544 7792,8533 7799,8522 7808,8516 7817,8516 L 7817,8516 8371,8516 8371,8516 C 8380,8516 8389,8522 8397,8533 8404,8544 8411,8560 8415,8580 8420,8599 8422,8621 8422,8643"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id143">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6155" y="8492" width="390" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id144">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6663" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id145">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6146" y="9368" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 6599,9811 L 6155,9811 6155,9377 7042,9377 7042,9811 6599,9811 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6599,9811 L 6155,9811 6155,9377 7042,9377 7042,9811 6599,9811 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6324" y="9740"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id146">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6924" y="8569" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6947,9316 L 6942,8570"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id147">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6857" y="9297" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6941,9306 L 7015,9306 7015,9405 6866,9405 6866,9306 6941,9306 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6941,9306 L 7015,9306 7015,9405 6866,9405 6866,9306 6941,9306 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id148">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6239" y="8617" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6257,9318 L 6259,8618"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id149">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6174" y="9297" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6258,9306 L 6332,9306 6332,9405 6183,9405 6183,9306 6258,9306 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6258,9306 L 6332,9306 6332,9405 6183,9405 6183,9306 6258,9306 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id150">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6214" y="8463" width="764" height="234"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6267,8643 L 6267,8643 C 6267,8621 6269,8599 6274,8580 6278,8560 6285,8544 6293,8533 6300,8522 6309,8516 6318,8516 L 6318,8516 6872,8516 6872,8516 C 6881,8516 6890,8522 6898,8533 6905,8544 6912,8560 6916,8580 6921,8599 6923,8621 6923,8643"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/docs/static/testbed-3n-icx.svg b/docs/static/testbed-3n-icx.svg
new file mode 100644
index 0000000000..22303cb387
--- /dev/null
+++ b/docs/static/testbed-3n-icx.svg
@@ -0,0 +1,2866 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.2" width="180.34mm" height="142.24mm" viewBox="0 0 18034 14224" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
+ <defs class="ClipPathGroup">
+ <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
+ <rect x="0" y="0" width="18034" height="14224"/>
+ </clipPath>
+ <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
+ <rect x="18" y="14" width="17998" height="14196"/>
+ </clipPath>
+ </defs>
+ <defs>
+ <font id="EmbeddedFont_1" horiz-adv-x="2048">
+ <font-face font-family="Arial embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1864" descent="443"/>
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+ <glyph unicode="x" horiz-adv-x="1026" d="M 15,0 L 403,552 44,1062 269,1062 432,813 C 463,766 487,726 506,694 535,738 562,777 587,811 L 766,1062 981,1062 614,562 1009,0 788,0 570,330 512,419 233,0 Z"/>
+ <glyph unicode="U" horiz-adv-x="1189" d="M 1120,1466 L 1314,1466 1314,619 C 1314,472 1297,355 1264,268 1231,181 1171,111 1084,57 997,2 882,-25 741,-25 604,-25 491,-1 404,46 317,93 254,162 217,252 180,341 161,464 161,619 L 161,1466 355,1466 355,620 C 355,493 367,399 391,339 414,278 455,232 513,199 570,166 641,150 724,150 867,150 968,182 1029,247 1090,312 1120,436 1120,620 Z"/>
+ <glyph unicode="P" horiz-adv-x="1143" d="M 158,0 L 158,1466 711,1466 C 808,1466 883,1461 934,1452 1006,1440 1066,1417 1115,1384 1164,1350 1203,1303 1233,1242 1262,1181 1277,1115 1277,1042 1277,917 1237,812 1158,726 1079,639 935,596 728,596 L 352,596 352,0 Z M 352,769 L 731,769 C 856,769 945,792 998,839 1051,886 1077,951 1077,1036 1077,1097 1062,1150 1031,1194 1000,1237 959,1266 908,1280 875,1289 815,1293 727,1293 L 352,1293 Z"/>
+ <glyph unicode="I" horiz-adv-x="211" d="M 191,0 L 191,1466 385,1466 385,0 Z"/>
+ <glyph unicode="6" horiz-adv-x="980" d="M 1019,1107 L 840,1093 C 824,1164 801,1215 772,1247 723,1298 663,1324 592,1324 535,1324 484,1308 441,1276 384,1235 340,1174 307,1095 274,1016 257,903 256,756 299,822 352,871 415,903 478,935 543,951 612,951 732,951 834,907 919,819 1003,730 1045,616 1045,476 1045,384 1025,299 986,220 946,141 891,80 822,38 753,-4 674,-25 586,-25 436,-25 314,30 219,141 124,251 77,433 77,686 77,969 129,1175 234,1304 325,1416 448,1472 603,1472 718,1472 813,1440 887,1375 960,1310 1004,1221 1019,1107 Z M 284,475 C 284,413 297,354 324,297 350,240 387,197 434,168 481,138 531,123 583,123 659,123 724,154 779,215 834,276 861,360 861,465 861,566 834,646 780,705 726,763 658,792 576,792 495,792 426,763 369,705 312,646 284,570 284,475 Z"/>
+ <glyph unicode="1" horiz-adv-x="560" d="M 763,0 L 583,0 583,1147 C 540,1106 483,1064 413,1023 342,982 279,951 223,930 L 223,1104 C 324,1151 412,1209 487,1276 562,1343 616,1409 647,1472 L 763,1472 Z"/>
+ </font>
+ </defs>
+ <defs>
+ <font id="EmbeddedFont_2" horiz-adv-x="2048">
+ <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1957" descent="559"/>
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+ <glyph unicode="y" horiz-adv-x="887" d="M 563,0 L 443,-331 C 439,-342 429,-350 413,-356 396,-361 371,-364 338,-364 321,-364 307,-363 296,-362 285,-360 277,-357 272,-353 266,-349 263,-344 262,-337 261,-330 263,-322 267,-313 L 391,0 C 385,3 379,7 374,13 369,19 365,25 363,32 L 42,892 C 37,906 34,917 34,925 34,933 37,939 42,944 47,949 56,952 68,954 80,955 96,956 116,956 136,956 152,956 163,955 174,954 183,952 190,949 197,946 202,943 205,938 208,933 211,926 214,917 L 471,195 474,195 722,921 C 726,934 731,942 737,946 742,949 751,952 762,954 773,955 790,956 811,956 830,956 845,955 857,954 869,952 878,949 884,944 889,939 892,933 892,925 892,917 890,907 886,895 Z"/>
+ <glyph unicode="x" horiz-adv-x="840" d="M 835,44 C 840,35 843,27 843,21 843,14 840,9 834,5 827,1 818,-2 805,-4 792,-5 775,-6 754,-6 734,-6 718,-6 707,-5 695,-4 686,-2 679,1 672,3 666,6 663,10 659,13 656,17 653,22 L 437,379 222,22 C 219,17 216,13 213,10 209,6 204,3 197,1 190,-2 180,-4 169,-5 158,-6 143,-6 124,-6 105,-6 89,-5 77,-4 64,-2 55,1 50,5 44,9 41,14 42,21 42,27 45,35 51,44 L 331,483 66,906 C 61,915 58,923 58,930 57,936 60,941 67,946 73,950 83,953 96,954 109,955 126,956 147,956 166,956 182,956 194,955 205,954 214,952 221,950 228,948 233,945 236,942 239,939 242,935 245,930 L 450,595 658,930 C 661,934 664,938 667,941 670,944 675,947 681,950 686,952 694,954 705,955 715,956 729,956 747,956 766,956 782,955 795,954 807,953 816,950 822,947 828,943 831,938 830,931 829,924 826,916 820,906 L 557,488 Z"/>
+ <glyph unicode="v" horiz-adv-x="887" d="M 891,927 C 891,924 891,922 891,919 890,916 890,912 889,909 888,906 888,902 887,898 886,894 884,890 883,885 L 576,30 C 573,23 570,17 566,12 561,7 555,4 546,1 537,-2 526,-4 513,-5 500,-6 483,-6 463,-6 443,-6 426,-5 413,-4 400,-3 389,-1 381,2 372,5 366,8 361,13 356,18 353,23 350,30 L 44,885 C 41,893 39,900 38,906 36,912 35,917 35,920 34,923 34,925 34,927 34,932 35,937 38,941 41,945 45,948 52,951 58,953 66,954 77,955 87,956 100,956 115,956 134,956 150,956 162,955 173,954 182,952 189,949 195,946 200,943 203,939 206,935 208,930 211,924 L 465,182 469,170 472,182 723,924 C 724,930 727,935 730,939 733,943 738,946 745,949 751,952 760,954 771,955 782,956 796,956 814,956 829,956 842,956 852,955 862,954 870,953 876,950 881,947 885,944 888,941 890,937 891,932 891,927 Z"/>
+ <glyph unicode="u" horiz-adv-x="793" d="M 924,25 C 924,20 923,15 921,12 918,8 914,5 908,2 902,-1 894,-3 885,-4 875,-5 863,-6 849,-6 834,-6 821,-5 812,-4 802,-3 794,-1 789,2 783,5 779,8 777,12 775,15 774,20 774,25 L 774,144 C 723,87 672,46 622,20 572,-6 521,-19 470,-19 410,-19 360,-9 319,11 278,31 244,58 219,93 194,127 176,167 165,213 154,258 148,314 148,379 L 148,925 C 148,930 149,935 152,939 154,942 158,946 165,949 172,952 180,954 191,955 202,956 215,956 231,956 247,956 260,956 271,955 282,954 290,952 297,949 303,946 307,942 310,939 313,935 314,930 314,925 L 314,401 C 314,348 318,306 326,275 333,243 345,216 361,194 376,171 396,154 420,142 444,129 472,123 504,123 545,123 587,138 628,167 669,196 712,239 758,296 L 758,925 C 758,930 759,935 762,939 764,942 768,946 775,949 782,952 790,954 801,955 811,956 824,956 841,956 857,956 870,956 881,955 892,954 900,952 906,949 912,946 917,942 920,939 923,935 924,930 924,925 Z"/>
+ <glyph unicode="t" horiz-adv-x="607" d="M 621,91 C 621,72 620,56 617,45 614,34 610,25 605,20 600,15 592,10 581,5 570,0 558,-4 545,-7 531,-10 516,-12 501,-14 486,-16 470,-17 455,-17 408,-17 368,-11 335,2 302,14 274,33 253,58 232,83 216,114 207,153 197,191 192,236 192,288 L 192,814 66,814 C 56,814 48,819 42,830 36,841 33,858 33,882 33,895 34,905 36,914 37,923 39,930 42,936 45,941 48,945 53,948 57,950 62,951 67,951 L 192,951 192,1165 C 192,1170 193,1174 196,1178 198,1182 202,1186 209,1189 215,1192 223,1194 234,1195 245,1196 258,1197 274,1197 291,1197 304,1196 315,1195 326,1194 334,1192 340,1189 346,1186 350,1182 353,1178 356,1174 357,1170 357,1165 L 357,951 588,951 C 593,951 598,950 602,948 606,945 610,941 613,936 616,930 618,923 619,914 620,905 621,895 621,882 621,858 618,841 612,830 606,819 598,814 588,814 L 357,814 357,312 C 357,250 366,203 385,172 403,140 436,124 483,124 498,124 512,126 524,129 536,132 547,135 556,138 565,141 573,145 580,148 587,151 593,152 598,152 601,152 605,151 608,150 611,148 613,145 615,140 616,135 618,129 619,121 620,113 621,103 621,91 Z"/>
+ <glyph unicode="s" horiz-adv-x="653" d="M 718,270 C 718,224 710,183 693,147 676,111 651,81 620,56 589,31 551,13 508,0 465,-13 417,-19 365,-19 333,-19 303,-17 274,-12 245,-7 219,0 196,8 173,15 153,23 137,32 121,40 109,47 102,54 95,61 89,70 86,82 83,94 81,110 81,131 81,144 82,154 83,163 84,172 86,179 88,184 90,189 93,193 97,196 100,198 104,199 109,199 116,199 127,195 142,186 156,177 174,167 195,156 216,145 240,136 269,127 298,118 331,113 368,113 396,113 421,116 444,122 467,128 486,137 503,149 520,160 533,175 542,193 551,211 555,232 555,257 555,282 549,304 536,321 523,338 505,354 484,367 463,380 439,392 412,403 385,413 358,424 330,435 301,446 274,459 247,474 220,488 195,505 174,526 153,547 136,571 123,600 110,629 103,663 103,703 103,738 110,772 124,805 137,837 158,865 185,890 212,914 247,933 288,948 329,963 376,970 431,970 455,970 479,968 503,964 527,960 549,955 568,949 587,943 604,937 618,930 631,923 642,916 649,911 656,906 660,901 663,897 665,893 667,889 668,884 669,879 670,872 671,865 672,858 672,849 672,838 672,827 672,817 671,809 670,800 668,793 666,788 663,783 660,779 657,777 654,774 650,773 646,773 640,773 631,777 620,784 609,791 594,799 576,808 558,816 537,824 513,831 488,838 460,842 429,842 401,842 376,839 355,833 334,826 316,817 303,806 289,794 279,780 272,764 265,748 261,731 261,712 261,686 268,664 281,647 294,629 312,613 333,600 354,587 379,575 406,564 433,553 461,542 490,531 518,520 546,507 574,493 601,479 626,462 647,442 668,422 686,398 699,370 712,342 718,309 718,270 Z"/>
+ <glyph unicode="r" horiz-adv-x="560" d="M 679,866 C 679,851 679,839 678,829 677,819 676,811 674,806 672,800 670,796 667,793 664,790 659,788 654,788 649,788 642,790 635,793 627,796 618,799 609,802 599,805 588,807 576,810 564,813 551,814 537,814 520,814 504,811 488,804 472,797 455,786 438,771 420,756 401,735 382,710 363,685 341,654 318,617 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,794 C 327,830 350,859 372,882 393,905 414,923 433,936 452,949 472,958 491,963 510,968 529,970 548,970 557,970 567,970 578,969 589,968 600,966 612,963 624,960 635,957 645,954 654,951 661,947 665,944 669,941 672,938 673,935 674,932 676,928 677,923 678,918 678,912 679,903 679,894 679,881 679,866 Z"/>
+ <glyph unicode="o" horiz-adv-x="933" d="M 990,485 C 990,412 980,344 961,283 942,221 913,168 875,123 836,78 788,44 731,19 673,-7 606,-19 530,-19 456,-19 392,-8 337,14 282,36 236,68 199,110 162,152 135,203 117,263 99,323 90,391 90,467 90,540 100,608 119,670 138,731 166,784 205,829 243,874 291,908 348,933 405,958 472,970 549,970 623,970 688,959 743,937 798,915 843,883 880,841 917,799 944,748 963,688 981,628 990,560 990,485 Z M 816,474 C 816,523 812,569 803,612 794,655 779,693 758,726 737,759 709,785 674,804 639,823 595,832 542,832 493,832 452,823 417,806 382,789 353,764 330,733 307,701 291,663 280,620 269,577 263,529 263,478 263,429 268,382 277,339 286,296 301,258 322,226 343,193 371,168 406,149 441,130 485,120 538,120 586,120 628,129 663,146 698,163 727,188 750,219 773,250 789,288 800,331 811,374 816,422 816,474 Z"/>
+ <glyph unicode="n" horiz-adv-x="793" d="M 928,25 C 928,20 927,15 924,12 921,8 917,5 911,2 905,-1 897,-3 886,-4 875,-5 862,-6 846,-6 829,-6 816,-5 805,-4 794,-3 786,-1 780,2 774,5 770,8 767,12 764,15 763,20 763,25 L 763,552 C 763,603 759,645 751,676 743,707 731,734 716,757 701,780 681,797 657,809 632,821 604,827 572,827 531,827 489,812 448,783 407,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 403,904 454,931 504,957 555,970 606,970 666,970 717,960 758,940 799,919 832,892 857,858 882,824 901,784 912,739 923,693 928,638 928,574 Z"/>
+ <glyph unicode="m" horiz-adv-x="1352" d="M 1488,25 C 1488,20 1487,15 1484,12 1481,8 1477,5 1471,2 1465,-1 1457,-3 1446,-4 1435,-5 1422,-6 1406,-6 1389,-6 1376,-5 1365,-4 1354,-3 1346,-1 1340,2 1333,5 1329,8 1326,12 1323,15 1322,20 1322,25 L 1322,572 C 1322,610 1319,645 1312,676 1305,707 1295,734 1280,757 1265,780 1247,797 1224,809 1201,821 1175,827 1144,827 1106,827 1068,812 1030,783 991,754 949,711 903,654 L 903,25 C 903,20 902,15 899,12 896,8 892,5 886,2 879,-1 871,-3 860,-4 849,-5 836,-6 820,-6 805,-6 792,-5 781,-4 770,-3 761,-1 755,2 748,5 744,8 742,12 739,15 738,20 738,25 L 738,572 C 738,610 734,645 727,676 720,707 709,734 694,757 679,780 661,797 639,809 616,821 590,827 559,827 521,827 483,812 444,783 405,754 363,711 318,654 L 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,935 156,939 158,942 162,946 168,949 174,952 182,954 191,955 200,956 213,956 228,956 243,956 255,956 265,955 274,954 282,952 287,949 292,946 296,942 299,939 301,935 302,930 302,925 L 302,806 C 353,863 402,904 450,931 497,957 545,970 594,970 631,970 665,966 695,957 724,948 750,936 773,921 796,905 815,886 831,865 847,843 860,819 871,792 901,825 930,852 957,875 984,898 1010,916 1035,930 1060,944 1084,954 1108,961 1131,967 1155,970 1179,970 1237,970 1286,960 1325,940 1364,919 1396,892 1421,858 1445,824 1462,784 1473,739 1483,693 1488,645 1488,594 Z"/>
+ <glyph unicode="l" horiz-adv-x="187" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 Z"/>
+ <glyph unicode="k" horiz-adv-x="770" d="M 892,26 C 892,21 891,16 888,12 885,8 881,5 875,2 868,-1 859,-3 848,-4 837,-5 822,-6 805,-6 787,-6 772,-6 761,-5 749,-4 739,-2 731,1 723,3 717,6 712,11 707,15 702,20 698,26 L 318,524 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,1361 C 153,1366 154,1371 157,1375 159,1379 163,1382 170,1385 176,1388 184,1390 195,1391 206,1392 219,1393 235,1393 252,1393 265,1392 276,1391 287,1390 295,1388 301,1385 307,1382 311,1379 314,1375 317,1371 318,1366 318,1361 L 318,547 658,921 C 663,928 669,933 675,938 681,942 688,946 697,949 705,952 715,954 726,955 737,956 751,956 767,956 784,956 798,956 809,955 820,954 830,952 837,950 844,947 849,944 852,941 855,937 856,932 856,926 856,918 854,910 850,902 845,894 838,885 828,874 L 502,548 868,73 C 877,62 883,53 887,46 890,39 892,32 892,26 Z"/>
+ <glyph unicode="i" horiz-adv-x="234" d="M 318,25 C 318,20 317,15 314,12 311,8 307,5 301,2 295,-1 287,-3 276,-4 265,-5 252,-6 235,-6 219,-6 206,-5 195,-4 184,-3 176,-1 170,2 163,5 159,8 157,12 154,15 153,20 153,25 L 153,925 C 153,930 154,934 157,938 159,942 163,945 170,948 176,951 184,953 195,954 206,955 219,956 235,956 252,956 265,955 276,954 287,953 295,951 301,948 307,945 311,942 314,938 317,934 318,930 318,925 Z M 337,1229 C 337,1190 330,1164 315,1150 300,1136 273,1129 234,1129 195,1129 169,1136 155,1150 140,1163 133,1189 133,1227 133,1266 140,1292 155,1306 170,1320 197,1327 236,1327 275,1327 301,1320 316,1307 330,1293 337,1267 337,1229 Z"/>
+ <glyph unicode="f" horiz-adv-x="630" d="M 646,1295 C 646,1282 645,1272 644,1265 643,1257 641,1251 640,1246 638,1241 636,1238 633,1237 630,1235 627,1234 623,1234 618,1234 613,1236 606,1239 599,1242 590,1245 580,1249 570,1252 558,1256 545,1259 531,1262 515,1263 497,1263 472,1263 451,1259 434,1251 417,1243 403,1231 392,1214 381,1197 374,1175 369,1148 364,1121 362,1088 362,1049 L 362,951 563,951 C 568,951 573,950 577,948 580,945 584,941 587,936 590,930 592,923 594,914 595,905 596,895 596,882 596,858 593,841 587,830 581,819 573,814 563,814 L 362,814 362,25 C 362,20 361,15 358,12 355,8 351,5 345,2 338,-1 330,-3 319,-4 308,-5 295,-6 279,-6 263,-6 250,-5 239,-4 228,-3 220,-1 214,2 207,5 203,8 200,12 197,15 196,20 196,25 L 196,814 69,814 C 58,814 50,819 45,830 40,841 37,858 37,882 37,895 38,905 39,914 40,923 42,930 45,936 48,941 51,945 55,948 59,950 64,951 69,951 L 196,951 196,1044 C 196,1107 202,1161 214,1206 225,1251 243,1287 267,1316 291,1345 321,1366 358,1380 394,1393 437,1400 486,1400 509,1400 532,1398 554,1394 576,1389 593,1385 605,1380 617,1375 625,1370 629,1366 633,1362 636,1357 639,1351 642,1344 644,1337 645,1328 646,1319 646,1308 646,1295 Z"/>
+ <glyph unicode="e" horiz-adv-x="863" d="M 921,514 C 921,488 915,470 902,459 889,448 874,442 857,442 L 267,442 C 267,392 272,347 282,307 292,267 309,233 332,204 355,175 386,153 423,138 460,123 506,115 560,115 603,115 641,119 674,126 707,133 736,140 761,149 785,158 805,166 821,173 836,180 848,183 856,183 861,183 865,182 869,180 872,177 875,174 877,169 879,164 881,158 882,150 883,141 883,131 883,119 883,110 883,103 882,97 881,90 881,85 880,80 879,75 877,70 875,66 872,62 869,58 866,55 862,51 851,45 833,37 815,28 792,20 763,12 734,4 701,-3 664,-10 626,-16 586,-19 543,-19 469,-19 404,-9 349,12 293,33 246,63 208,104 170,145 141,196 122,257 103,318 93,390 93,471 93,548 103,618 123,680 143,741 172,794 210,837 247,880 293,913 346,936 399,959 459,970 525,970 596,970 656,959 706,936 755,913 796,883 828,845 860,806 884,761 899,710 914,658 921,603 921,544 Z M 755,563 C 757,650 738,718 698,767 657,816 597,841 518,841 477,841 442,833 411,818 380,803 355,782 334,757 313,732 297,702 286,669 275,635 268,600 267,563 Z"/>
+ <glyph unicode="d" horiz-adv-x="840" d="M 924,25 C 924,20 923,15 921,11 918,7 914,4 909,2 903,-1 895,-3 886,-4 877,-5 865,-6 852,-6 838,-6 826,-5 817,-4 808,-3 800,-1 794,2 788,4 784,7 781,11 778,15 777,20 777,25 L 777,144 C 730,93 681,53 630,24 579,-5 523,-19 462,-19 396,-19 340,-6 293,20 246,45 209,80 180,124 151,167 129,219 116,278 103,337 96,399 96,464 96,541 104,611 121,674 138,736 162,789 195,833 228,877 268,911 317,935 365,958 421,970 484,970 537,970 585,959 629,936 672,913 715,879 758,834 L 758,1357 C 758,1362 759,1366 762,1371 764,1375 768,1378 775,1381 782,1383 790,1385 801,1387 811,1388 824,1389 840,1389 857,1389 870,1388 881,1387 892,1385 900,1383 906,1381 912,1378 917,1375 920,1371 923,1366 924,1362 924,1357 Z M 758,658 C 713,713 670,756 629,785 587,814 543,828 498,828 456,828 420,818 391,798 362,778 338,752 320,719 301,686 288,649 280,608 271,567 267,525 267,482 267,437 271,392 278,349 285,306 297,267 314,234 331,200 354,173 383,153 412,132 448,122 491,122 513,122 534,125 555,131 575,137 596,147 617,161 638,175 661,193 684,216 707,238 732,265 758,298 Z"/>
+ <glyph unicode="c" horiz-adv-x="747" d="M 800,162 C 800,151 800,141 799,133 798,124 797,117 796,112 794,106 792,101 790,97 787,92 782,86 774,78 765,69 751,59 731,47 711,34 689,23 664,14 639,4 611,-4 582,-10 553,-16 522,-19 491,-19 426,-19 369,-8 319,13 269,34 227,66 194,107 160,148 134,198 117,258 99,317 90,386 90,464 90,553 101,629 123,693 144,756 174,808 212,849 249,890 294,920 345,940 396,959 451,969 510,969 539,969 567,966 594,961 621,956 645,949 668,940 691,931 711,921 729,910 746,899 759,889 767,881 775,873 781,867 784,862 787,857 789,852 791,846 793,839 794,832 795,824 796,816 796,806 796,794 796,768 793,750 787,740 781,729 774,724 765,724 755,724 744,730 731,741 718,752 701,764 681,777 661,790 637,803 609,814 580,825 547,830 508,830 429,830 368,800 326,739 283,678 262,589 262,473 262,415 268,364 279,321 290,277 306,240 327,211 348,182 375,160 406,146 437,131 472,124 512,124 550,124 583,130 612,142 641,154 666,167 687,182 708,196 725,209 740,221 754,232 765,238 773,238 778,238 782,237 785,234 788,231 791,227 794,221 796,214 798,206 799,197 800,187 800,175 800,162 Z"/>
+ <glyph unicode="a" horiz-adv-x="770" d="M 831,24 C 831,16 828,10 823,6 818,2 810,-1 801,-3 792,-5 778,-6 760,-6 743,-6 729,-5 719,-3 708,-1 701,2 696,6 691,10 689,16 689,24 L 689,114 C 650,72 606,39 558,16 509,-7 458,-19 404,-19 357,-19 314,-13 276,-1 237,12 205,30 178,53 151,76 130,105 115,139 100,173 92,212 92,255 92,306 102,350 123,387 144,424 173,455 212,480 251,505 298,523 354,536 410,548 473,554 543,554 L 667,554 667,624 C 667,659 663,689 656,716 649,743 637,765 621,783 604,800 583,814 557,823 531,832 499,836 461,836 420,836 384,831 352,822 319,812 291,801 267,790 242,778 222,767 206,758 189,748 177,743 169,743 164,743 159,744 155,747 151,750 148,754 145,759 142,764 139,771 138,780 137,788 136,797 136,807 136,824 137,837 140,847 142,856 148,865 157,874 166,883 181,893 203,905 225,916 250,927 279,937 308,946 339,954 373,961 407,967 441,970 476,970 541,970 596,963 641,948 686,933 723,912 751,884 779,855 799,820 812,778 825,736 831,687 831,631 Z M 667,435 L 526,435 C 481,435 441,431 408,424 375,416 347,405 325,390 303,375 287,357 277,336 266,315 261,290 261,263 261,216 276,179 306,152 335,124 377,110 430,110 473,110 514,121 551,143 588,165 626,199 667,244 Z"/>
+ <glyph unicode="X" horiz-adv-x="979" d="M 996,62 C 1005,47 1010,36 1012,27 1013,18 1011,12 1005,7 999,2 989,-2 976,-4 962,-5 944,-6 921,-6 900,-6 883,-6 871,-5 859,-4 850,-2 843,1 836,4 830,7 827,11 823,14 820,19 817,25 L 529,540 238,25 C 235,19 231,14 227,10 223,6 218,3 211,1 204,-2 194,-4 182,-5 170,-6 154,-6 134,-6 112,-6 95,-5 82,-4 69,-2 61,2 56,7 51,12 49,18 51,27 52,36 57,47 66,62 L 419,657 82,1232 C 74,1247 69,1259 67,1268 64,1277 66,1284 71,1289 76,1294 86,1297 99,1298 112,1299 131,1300 154,1300 174,1300 190,1300 203,1299 216,1298 226,1296 233,1294 240,1291 246,1288 249,1284 252,1279 256,1274 260,1269 L 538,785 814,1269 C 817,1274 821,1279 824,1284 827,1288 832,1291 839,1294 845,1296 854,1298 865,1299 876,1300 892,1300 911,1300 932,1300 949,1299 962,1298 975,1296 984,1293 990,1288 995,1283 997,1277 996,1268 995,1259 990,1247 982,1232 L 646,661 Z"/>
+ <glyph unicode="U" horiz-adv-x="1003" d="M 1145,478 C 1145,399 1134,329 1111,268 1088,206 1055,154 1012,111 969,68 917,36 856,14 795,-8 725,-19 647,-19 576,-19 511,-9 452,12 393,33 343,63 301,104 259,144 227,194 204,255 181,316 170,386 170,465 L 170,1268 C 170,1273 171,1278 174,1282 177,1286 181,1289 188,1292 195,1294 203,1296 214,1298 225,1299 239,1300 256,1300 272,1300 286,1299 297,1298 308,1296 317,1294 324,1292 330,1289 334,1286 337,1282 340,1278 341,1273 341,1268 L 341,486 C 341,426 348,374 363,329 378,284 399,247 427,218 454,188 488,166 527,151 566,136 609,128 658,128 708,128 753,135 792,150 831,165 864,187 891,216 918,245 938,282 953,325 967,368 974,419 974,477 L 974,1268 C 974,1273 975,1278 978,1282 981,1286 985,1289 992,1292 999,1294 1008,1296 1019,1298 1030,1299 1043,1300 1060,1300 1076,1300 1090,1299 1101,1298 1112,1296 1120,1294 1127,1292 1133,1289 1138,1286 1141,1282 1144,1278 1145,1273 1145,1268 Z"/>
+ <glyph unicode="T" horiz-adv-x="1003" d="M 983,1220 C 983,1207 982,1196 981,1187 980,1178 978,1170 975,1165 972,1159 968,1155 964,1152 959,1149 954,1148 949,1148 L 585,1148 585,26 C 585,21 584,16 581,12 578,8 574,5 567,3 560,0 552,-2 541,-4 530,-5 516,-6 499,-6 483,-6 469,-5 458,-4 447,-2 438,0 431,3 424,5 420,8 417,12 414,16 413,21 413,26 L 413,1148 49,1148 C 44,1148 39,1149 35,1152 30,1155 27,1159 24,1165 21,1170 19,1178 18,1187 16,1196 15,1207 15,1220 15,1233 16,1244 18,1254 19,1263 21,1271 24,1277 27,1283 30,1287 35,1290 39,1293 44,1294 49,1294 L 949,1294 C 954,1294 959,1293 964,1290 968,1287 972,1283 975,1277 978,1271 980,1263 981,1254 982,1244 983,1233 983,1220 Z"/>
+ <glyph unicode="S" horiz-adv-x="817" d="M 867,363 C 867,302 856,248 834,201 811,154 780,114 741,81 701,48 654,23 601,6 547,-11 489,-19 427,-19 384,-19 344,-15 307,-8 270,-1 237,8 208,19 179,30 154,41 135,52 115,63 101,73 94,81 86,89 80,99 77,112 73,124 71,140 71,161 71,176 72,188 73,198 74,207 76,215 79,221 82,227 85,231 89,234 93,236 98,237 103,237 112,237 126,231 143,220 160,209 181,196 208,183 235,170 267,157 305,146 342,134 386,128 435,128 472,128 507,133 538,143 569,153 595,167 618,186 640,204 657,226 669,253 681,280 687,310 687,344 687,381 679,412 662,438 645,464 623,487 596,507 569,526 538,544 503,561 468,577 432,594 395,611 358,628 323,646 288,667 253,688 222,712 195,740 168,768 146,801 129,839 112,876 103,921 103,974 103,1028 113,1076 133,1119 152,1161 180,1196 215,1225 250,1254 291,1276 340,1291 388,1306 440,1313 496,1313 525,1313 554,1311 583,1306 612,1301 639,1294 665,1286 690,1277 713,1268 733,1258 753,1247 766,1239 773,1233 779,1226 783,1221 785,1218 787,1214 789,1209 790,1204 791,1198 792,1191 793,1183 794,1175 794,1165 794,1152 794,1140 794,1129 793,1120 792,1111 790,1103 788,1097 786,1090 783,1086 780,1083 776,1080 772,1078 767,1078 760,1078 748,1083 733,1092 717,1101 698,1112 675,1124 652,1135 626,1146 595,1156 564,1165 529,1170 490,1170 454,1170 423,1165 396,1156 369,1146 347,1133 330,1117 313,1101 300,1082 291,1060 282,1038 278,1015 278,990 278,954 286,923 303,897 320,871 342,848 370,828 397,808 429,790 464,773 499,756 535,740 572,723 609,706 645,687 680,667 715,646 747,622 775,595 802,567 825,534 842,497 859,459 867,414 867,363 Z"/>
+ <glyph unicode="R" horiz-adv-x="887" d="M 1035,26 C 1035,21 1034,16 1032,12 1030,8 1026,5 1019,2 1012,-1 1003,-3 991,-4 979,-5 963,-6 943,-6 926,-6 912,-5 901,-4 890,-3 881,-1 874,3 867,6 862,10 859,15 855,20 852,27 849,35 L 730,340 C 716,375 702,407 687,436 672,465 654,490 633,511 612,532 588,548 560,560 532,571 498,577 459,577 L 344,577 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 511,1294 C 544,1294 571,1293 593,1292 614,1290 634,1288 651,1286 701,1277 745,1264 784,1245 822,1226 854,1203 880,1174 906,1145 926,1113 939,1076 952,1039 958,998 958,953 958,910 952,871 941,837 929,802 912,772 890,746 868,719 842,696 811,677 780,658 746,641 708,628 729,619 749,607 766,593 783,578 800,561 815,541 830,521 844,498 857,472 870,446 884,417 897,384 L 1013,99 C 1022,75 1028,58 1031,49 1034,39 1035,31 1035,26 Z M 776,935 C 776,986 765,1029 742,1064 719,1099 681,1124 628,1139 611,1144 593,1147 572,1149 551,1151 523,1152 489,1152 L 344,1152 344,716 512,716 C 557,716 597,722 630,733 663,744 690,759 712,779 734,798 750,821 761,848 771,875 776,904 776,935 Z"/>
+ <glyph unicode="P" horiz-adv-x="817" d="M 967,915 C 967,850 956,792 935,740 914,688 883,644 844,607 804,570 755,542 698,522 640,502 571,492 491,492 L 344,492 344,26 C 344,21 343,16 340,12 337,8 332,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 241,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1220 C 172,1247 179,1266 193,1277 207,1288 223,1294 240,1294 L 517,1294 C 545,1294 572,1293 598,1291 623,1288 654,1283 689,1276 724,1268 759,1254 796,1233 832,1212 863,1186 888,1155 913,1124 933,1089 947,1049 960,1008 967,964 967,915 Z M 786,901 C 786,954 776,998 757,1033 737,1068 713,1095 684,1112 655,1129 625,1140 594,1145 563,1150 532,1152 503,1152 L 344,1152 344,633 499,633 C 551,633 594,640 629,653 663,666 692,685 715,709 738,732 756,761 768,794 780,827 786,862 786,901 Z"/>
+ <glyph unicode="N" horiz-adv-x="1003" d="M 1150,71 C 1150,58 1148,46 1144,37 1139,28 1134,20 1127,14 1120,8 1112,4 1103,1 1094,-2 1086,-3 1077,-3 L 1022,-3 C 1005,-3 990,-1 977,3 964,6 951,13 940,23 928,32 916,45 905,62 893,79 880,100 866,126 L 458,862 C 437,900 415,940 394,982 372,1023 352,1064 333,1103 L 331,1103 C 332,1055 333,1006 334,956 335,906 335,856 335,807 L 335,26 C 335,21 334,17 331,13 328,8 324,5 318,3 311,0 303,-2 293,-4 282,-5 269,-6 253,-6 237,-6 224,-5 214,-4 203,-2 195,0 189,3 183,5 179,8 176,13 173,17 172,21 172,26 L 172,1220 C 172,1247 179,1266 194,1277 209,1288 225,1294 242,1294 L 324,1294 C 343,1294 360,1292 373,1289 386,1286 397,1280 408,1273 418,1265 428,1254 438,1241 447,1227 458,1210 469,1189 L 783,621 C 802,586 821,553 839,520 857,487 874,454 891,422 908,390 924,359 941,328 957,297 973,265 989,234 L 990,234 C 989,287 988,342 988,399 987,456 987,510 987,563 L 987,1265 C 987,1270 988,1274 991,1278 994,1282 998,1286 1005,1289 1011,1292 1019,1294 1030,1295 1040,1296 1053,1297 1070,1297 1085,1297 1097,1296 1108,1295 1119,1294 1127,1292 1133,1289 1139,1286 1143,1282 1146,1278 1149,1274 1150,1270 1150,1265 Z"/>
+ <glyph unicode="I" horiz-adv-x="188" d="M 344,26 C 344,21 343,16 340,12 337,8 333,5 326,3 319,0 311,-2 300,-4 289,-5 275,-6 258,-6 242,-6 228,-5 217,-4 206,-2 197,0 190,3 183,5 179,8 176,12 173,16 172,21 172,26 L 172,1268 C 172,1273 174,1278 177,1282 180,1286 185,1289 192,1292 199,1294 208,1296 219,1298 230,1299 243,1300 258,1300 275,1300 289,1299 300,1298 311,1296 319,1294 326,1292 333,1289 337,1286 340,1282 343,1278 344,1273 344,1268 Z"/>
+ <glyph unicode="G" horiz-adv-x="1096" d="M 1144,1118 C 1144,1105 1143,1094 1142,1085 1141,1075 1139,1067 1136,1061 1133,1054 1130,1050 1126,1047 1122,1044 1118,1043 1113,1043 1105,1043 1092,1049 1073,1062 1054,1075 1029,1089 998,1104 967,1119 929,1133 886,1146 842,1159 790,1165 730,1165 659,1165 595,1152 538,1126 481,1100 433,1064 394,1018 355,972 325,917 304,854 283,791 272,722 272,648 272,565 284,492 307,428 330,364 361,310 402,266 443,222 491,189 548,166 604,143 666,132 733,132 773,132 814,137 855,147 896,156 934,171 969,190 L 969,567 669,567 C 658,567 649,573 644,584 638,595 635,613 635,637 635,650 636,661 637,670 638,679 641,686 644,692 647,697 650,701 654,704 658,707 663,708 669,708 L 1080,708 C 1087,708 1095,707 1102,704 1109,701 1116,697 1122,692 1128,687 1133,679 1136,670 1139,661 1141,650 1141,638 L 1141,145 C 1141,128 1138,113 1132,100 1126,87 1113,76 1094,67 1075,57 1050,46 1019,35 988,24 957,14 924,6 891,-2 858,-8 825,-12 792,-16 759,-18 726,-18 626,-18 537,-3 458,29 379,60 313,104 259,161 204,218 163,287 134,367 105,447 91,536 91,635 91,738 107,831 138,914 169,997 212,1068 269,1127 325,1186 393,1231 472,1264 551,1296 638,1312 734,1312 783,1312 830,1308 873,1299 916,1290 955,1280 989,1269 1022,1257 1051,1244 1074,1231 1097,1217 1112,1206 1121,1197 1130,1188 1136,1178 1139,1167 1142,1156 1144,1139 1144,1118 Z"/>
+ <glyph unicode="D" horiz-adv-x="1026" d="M 1167,666 C 1167,554 1153,456 1124,373 1095,289 1054,220 999,165 944,110 876,68 796,41 716,14 621,0 510,0 L 236,0 C 221,0 206,5 193,16 179,26 172,44 172,70 L 172,1224 C 172,1250 179,1268 193,1279 206,1289 221,1294 236,1294 L 529,1294 C 641,1294 736,1280 813,1251 890,1222 955,1180 1008,1126 1060,1071 1100,1005 1127,928 1154,851 1167,763 1167,666 Z M 986,659 C 986,729 977,794 960,855 943,915 916,967 879,1011 842,1055 795,1089 738,1114 681,1139 608,1151 519,1151 L 344,1151 344,144 521,144 C 604,144 673,154 730,175 787,196 834,227 872,270 910,313 939,366 958,431 977,495 986,571 986,659 Z"/>
+ <glyph unicode="C" horiz-adv-x="957" d="M 1036,183 C 1036,172 1036,163 1035,155 1034,147 1033,140 1032,134 1030,128 1028,123 1025,118 1022,113 1018,108 1011,101 1004,94 990,84 969,71 948,57 921,44 890,31 858,18 822,7 781,-3 740,-12 695,-16 646,-16 562,-16 486,-2 419,26 351,54 293,95 246,150 198,205 161,272 136,353 110,433 97,525 97,630 97,737 111,833 139,917 166,1001 205,1072 255,1131 305,1189 365,1233 435,1264 504,1295 581,1310 666,1310 703,1310 740,1307 775,1300 810,1293 843,1284 873,1273 903,1262 930,1250 953,1236 976,1222 993,1211 1002,1202 1011,1193 1016,1186 1019,1181 1022,1176 1024,1171 1026,1165 1027,1158 1029,1151 1030,1142 1031,1133 1031,1123 1031,1111 1031,1098 1030,1086 1029,1077 1028,1068 1026,1060 1023,1054 1020,1047 1017,1043 1014,1040 1010,1037 1005,1035 1000,1035 991,1035 978,1042 961,1055 944,1068 923,1082 897,1098 870,1113 838,1128 801,1141 763,1154 718,1160 665,1160 608,1160 556,1149 509,1126 462,1103 421,1069 388,1024 355,979 329,925 311,861 292,796 283,723 283,640 283,558 292,486 310,423 327,360 353,307 386,265 419,222 459,190 507,169 555,147 609,136 670,136 721,136 766,142 805,155 843,168 876,182 903,198 930,213 952,227 969,240 986,253 1000,259 1010,259 1015,259 1019,258 1022,256 1025,254 1028,250 1030,245 1032,239 1034,231 1035,221 1036,211 1036,198 1036,183 Z"/>
+ <glyph unicode="8" horiz-adv-x="886" d="M 954,332 C 954,276 944,226 924,183 904,139 875,102 838,72 800,42 753,19 698,4 643,-11 579,-19 508,-19 441,-19 382,-12 329,2 276,16 232,37 195,64 158,91 130,125 111,165 92,205 82,251 82,302 82,343 89,380 102,414 115,448 135,479 160,508 185,537 215,564 252,589 289,614 330,637 376,660 336,681 301,703 270,726 239,749 213,774 192,801 171,828 155,856 144,887 133,918 127,951 127,987 127,1032 135,1075 152,1115 168,1154 193,1189 226,1218 259,1247 301,1271 352,1288 403,1305 462,1313 530,1313 595,1313 652,1305 700,1290 747,1274 787,1253 818,1226 849,1199 871,1167 886,1130 901,1093 908,1054 908,1012 908,978 903,945 892,914 881,883 864,853 843,825 822,797 796,771 765,747 734,722 698,699 658,678 705,655 748,631 785,606 822,581 853,555 878,527 903,498 922,468 935,437 948,405 954,370 954,332 Z M 738,996 C 738,1024 733,1049 724,1072 714,1095 700,1114 681,1130 662,1146 639,1158 612,1167 584,1175 552,1179 517,1179 445,1179 391,1163 354,1130 317,1097 298,1053 298,996 298,970 303,946 312,924 321,901 335,880 354,860 373,840 397,821 426,802 455,783 489,763 529,742 596,777 648,815 684,857 720,899 738,945 738,996 Z M 780,314 C 780,345 774,373 763,398 752,423 735,446 712,468 689,489 660,510 626,531 591,551 551,572 506,594 464,573 427,553 396,532 364,511 338,490 318,468 297,446 282,423 272,399 261,374 256,347 256,318 256,253 278,203 323,168 367,133 433,115 521,115 606,115 671,133 715,169 758,204 780,253 780,314 Z"/>
+ <glyph unicode="6" horiz-adv-x="887" d="M 957,419 C 957,362 948,308 931,255 914,202 887,155 851,115 815,74 769,42 714,18 659,-7 593,-19 518,-19 464,-19 416,-12 375,1 334,14 298,33 267,58 236,83 211,113 191,149 170,185 154,226 142,272 129,318 120,368 115,423 110,478 107,536 107,599 107,654 110,710 116,767 122,824 133,878 148,931 163,984 184,1033 211,1080 237,1126 270,1166 310,1201 349,1235 397,1262 452,1282 507,1302 572,1312 645,1312 670,1312 695,1311 720,1308 745,1305 769,1301 790,1296 811,1291 829,1285 844,1279 859,1273 868,1268 873,1265 878,1261 881,1257 884,1253 886,1248 888,1244 889,1239 890,1234 891,1228 892,1222 893,1215 893,1207 893,1198 893,1186 893,1176 893,1167 892,1158 891,1151 889,1146 886,1141 883,1137 880,1134 876,1131 871,1130 865,1130 858,1130 848,1132 835,1137 822,1142 807,1147 789,1153 771,1158 749,1163 724,1168 698,1173 668,1175 634,1175 572,1175 519,1162 474,1137 429,1112 393,1078 365,1035 336,992 315,943 302,887 288,830 280,771 278,710 295,720 315,730 337,740 358,750 382,759 408,767 433,775 460,782 489,787 518,792 548,794 581,794 651,794 710,785 758,766 806,747 845,720 875,687 904,653 925,613 938,568 951,522 957,472 957,419 Z M 783,403 C 783,442 779,477 772,509 764,540 751,567 733,589 715,611 691,628 661,640 631,652 594,658 550,658 525,658 501,656 476,652 451,647 428,641 405,634 382,626 360,617 339,607 318,596 298,585 281,573 281,487 287,415 298,357 309,299 325,253 346,218 367,183 393,158 424,143 455,128 492,120 534,120 577,120 614,128 645,144 676,160 702,182 723,209 744,236 759,266 769,300 778,333 783,368 783,403 Z"/>
+ <glyph unicode="5" horiz-adv-x="840" d="M 918,416 C 918,347 906,285 883,231 860,177 827,132 784,95 741,58 691,29 632,10 573,-9 507,-19 435,-19 395,-19 357,-16 321,-11 285,-5 253,2 225,11 197,19 174,27 156,35 138,43 127,49 122,54 117,59 113,63 111,67 109,71 107,76 106,82 104,87 103,94 102,103 101,112 101,122 101,134 101,145 102,156 103,165 104,174 105,181 108,187 111,192 114,196 118,199 121,202 125,203 130,203 137,203 147,199 161,191 175,182 194,173 218,164 241,154 271,145 306,136 341,127 382,123 430,123 475,123 516,128 553,139 590,150 623,166 650,189 677,212 698,240 713,275 728,309 736,351 736,400 736,441 730,478 717,510 704,541 684,568 657,589 630,610 595,625 554,636 513,646 463,651 406,651 365,651 330,649 301,645 272,641 244,639 219,639 200,639 187,643 179,652 171,661 167,677 167,702 L 167,1229 C 167,1251 172,1267 183,1278 193,1289 208,1294 227,1294 L 800,1294 C 805,1294 811,1293 816,1290 821,1287 825,1282 828,1276 831,1270 834,1262 836,1253 837,1244 838,1233 838,1220 838,1196 835,1177 828,1164 821,1151 812,1144 800,1144 L 317,1144 317,781 C 340,784 364,786 389,787 413,788 441,788 473,788 547,788 612,779 667,762 722,744 769,719 806,687 843,654 871,615 890,569 909,523 918,472 918,416 Z"/>
+ <glyph unicode="4" horiz-adv-x="956" d="M 979,368 C 979,346 976,329 969,316 962,303 953,297 941,297 L 795,297 795,25 C 795,20 794,15 791,12 788,8 784,5 777,2 770,-1 762,-3 751,-4 740,-5 727,-6 710,-6 694,-6 681,-5 670,-4 659,-3 651,-1 645,2 638,5 634,8 632,12 629,15 628,20 628,25 L 628,297 94,297 C 86,297 79,298 74,300 69,302 64,306 60,311 55,316 52,324 51,334 49,344 48,357 48,373 48,386 48,397 49,407 50,417 51,426 53,435 55,443 58,451 61,459 64,466 68,474 73,483 L 539,1269 C 542,1274 547,1279 554,1283 560,1287 568,1290 578,1293 588,1296 600,1298 615,1299 630,1300 647,1300 667,1300 689,1300 708,1299 725,1298 741,1296 754,1294 764,1291 774,1288 782,1285 787,1281 792,1276 795,1271 795,1265 L 795,439 941,439 C 952,439 962,433 969,422 976,410 979,392 979,368 Z M 628,1149 L 626,1149 205,439 628,439 Z"/>
+ <glyph unicode="3" horiz-adv-x="840" d="M 914,370 C 914,311 904,257 883,210 862,162 833,121 794,87 755,53 708,27 651,9 594,-10 530,-19 459,-19 416,-19 375,-16 338,-9 300,-2 266,7 237,17 208,26 183,36 164,47 145,57 133,64 128,69 123,74 119,78 116,83 113,88 111,93 109,100 107,107 106,115 105,125 104,134 103,146 103,160 103,184 105,201 110,210 115,219 121,224 130,224 136,224 148,219 166,208 183,197 206,186 234,174 261,161 294,150 331,139 368,128 409,123 454,123 498,123 537,129 570,140 603,151 631,167 654,188 677,209 694,233 705,262 716,290 722,321 722,354 722,391 715,424 701,453 686,482 665,508 638,529 610,550 576,567 536,578 495,589 449,595 398,595 L 275,595 C 270,595 265,596 260,599 255,601 250,605 247,610 243,615 240,622 238,631 235,640 234,651 234,665 234,678 235,688 237,697 239,705 242,712 246,717 249,722 253,725 258,728 263,730 268,731 274,731 L 387,731 C 431,731 471,737 506,748 541,759 570,776 595,797 619,818 638,844 651,874 664,903 670,936 670,973 670,1000 666,1025 657,1050 648,1074 635,1095 618,1113 601,1131 579,1145 552,1156 525,1166 493,1171 458,1171 419,1171 384,1165 352,1154 319,1142 290,1129 265,1116 240,1103 219,1090 202,1079 185,1067 174,1061 167,1061 162,1061 158,1062 155,1064 151,1065 148,1069 146,1074 143,1079 142,1086 141,1095 140,1104 139,1115 139,1130 139,1140 139,1149 140,1157 141,1164 142,1171 144,1177 146,1182 148,1187 151,1192 154,1197 158,1202 165,1209 171,1215 184,1224 203,1236 222,1248 246,1260 275,1272 303,1283 336,1293 373,1301 410,1309 449,1313 492,1313 552,1313 605,1305 650,1290 695,1275 733,1253 764,1225 794,1197 817,1164 832,1125 847,1086 854,1042 854,995 854,954 849,917 838,882 827,847 812,816 791,789 770,762 745,739 715,720 685,701 650,687 611,680 L 611,678 C 656,673 697,662 734,645 771,627 802,605 829,578 856,551 877,520 892,485 907,449 914,411 914,370 Z"/>
+ <glyph unicode="2" horiz-adv-x="840" d="M 924,74 C 924,62 923,51 922,42 920,33 918,25 915,19 912,12 908,8 903,5 898,2 892,0 886,0 L 171,0 C 162,0 154,1 147,4 140,6 134,10 129,15 124,20 120,28 118,38 115,48 114,60 114,75 114,88 115,100 116,110 117,120 119,129 122,137 125,144 130,152 135,160 140,167 146,175 154,184 L 405,450 C 463,511 510,566 545,615 580,664 607,708 626,748 645,788 657,824 663,857 669,890 672,920 672,949 672,978 667,1005 658,1031 649,1056 635,1079 618,1098 600,1117 578,1133 551,1144 524,1155 494,1161 459,1161 418,1161 382,1155 350,1144 317,1133 289,1120 265,1107 240,1094 220,1081 204,1070 187,1059 175,1053 167,1053 162,1053 158,1054 155,1057 151,1060 148,1064 146,1070 143,1076 141,1084 140,1094 139,1104 138,1116 138,1130 138,1140 138,1149 139,1156 140,1163 141,1170 143,1175 144,1180 146,1185 149,1190 152,1195 157,1201 165,1208 173,1215 187,1224 207,1236 226,1248 251,1260 281,1272 310,1283 343,1293 379,1301 414,1309 452,1313 491,1313 554,1313 609,1304 656,1287 703,1269 742,1245 773,1214 804,1183 827,1148 842,1107 857,1066 865,1023 865,977 865,936 861,895 854,854 847,813 831,768 808,721 784,673 750,620 705,562 660,503 601,436 527,360 L 322,146 885,146 C 890,146 896,145 901,142 906,139 910,134 914,128 917,122 920,115 922,106 923,97 924,86 924,74 Z"/>
+ <glyph unicode="1" horiz-adv-x="770" d="M 927,68 C 927,55 926,45 924,36 922,27 919,20 916,15 913,10 909,6 905,4 900,1 896,0 891,0 L 215,0 C 210,0 206,1 202,4 198,6 194,10 191,15 187,20 184,27 182,36 180,45 179,55 179,68 179,80 180,90 182,99 184,108 187,115 190,121 193,126 196,131 201,134 205,137 210,138 215,138 L 485,138 485,1122 235,973 C 222,966 212,962 205,961 197,960 191,961 186,966 181,970 178,977 177,987 175,997 174,1010 174,1025 174,1036 175,1046 176,1054 177,1062 178,1069 180,1074 182,1079 185,1084 189,1088 192,1092 197,1096 203,1100 L 501,1291 C 504,1293 507,1295 511,1296 515,1297 520,1299 526,1300 532,1301 539,1302 547,1303 555,1303 565,1303 577,1303 593,1303 606,1302 617,1301 628,1300 636,1298 642,1296 648,1293 652,1290 654,1287 656,1283 657,1279 657,1275 L 657,138 891,138 C 896,138 901,137 906,134 911,131 915,126 918,121 921,115 923,108 925,99 926,90 927,80 927,68 Z"/>
+ <glyph unicode="0" horiz-adv-x="910" d="M 967,650 C 967,551 959,460 944,378 928,296 902,226 866,167 829,108 782,62 723,30 664,-3 592,-19 506,-19 425,-19 356,-5 301,25 245,54 200,96 166,153 132,209 108,278 94,361 79,443 72,537 72,644 72,743 80,833 96,916 112,998 138,1069 174,1128 210,1187 257,1232 316,1265 375,1297 447,1313 532,1313 614,1313 683,1299 739,1270 794,1241 839,1198 873,1142 907,1085 931,1016 946,934 960,851 967,757 967,650 Z M 791,638 C 791,703 789,761 784,812 779,863 773,909 764,948 755,987 743,1021 729,1050 714,1078 697,1101 677,1120 657,1138 634,1151 609,1160 583,1168 554,1172 522,1172 465,1172 419,1159 384,1132 349,1105 321,1069 301,1022 280,975 266,921 259,858 252,795 248,728 248,656 248,559 253,477 263,410 273,342 289,287 311,244 332,201 360,170 394,151 427,132 468,122 516,122 553,122 586,128 615,140 643,152 667,169 688,192 708,214 725,241 738,272 751,303 762,338 770,376 778,414 784,455 787,500 790,544 791,590 791,638 Z"/>
+ <glyph unicode="-" horiz-adv-x="513" d="M 558,505 C 558,479 555,461 549,451 543,441 534,436 523,436 L 105,436 C 93,436 84,441 78,452 72,462 69,480 69,505 69,530 72,548 78,558 84,568 93,573 105,573 L 523,573 C 528,573 533,572 538,570 542,568 546,564 549,559 552,553 554,546 556,537 557,528 558,518 558,505 Z"/>
+ <glyph unicode=")" horiz-adv-x="373" d="M 487,537 C 487,462 482,387 473,314 464,240 450,167 431,95 412,23 390,-48 363,-118 336,-187 304,-256 268,-324 266,-327 263,-330 259,-333 255,-336 250,-338 244,-340 237,-342 230,-343 221,-344 212,-345 202,-345 190,-345 173,-345 159,-344 150,-343 140,-341 133,-338 129,-335 124,-331 122,-326 123,-321 123,-315 125,-308 128,-300 189,-165 236,-28 267,114 298,255 314,397 314,540 314,683 298,825 267,966 236,1107 189,1244 126,1378 123,1384 122,1390 123,1395 124,1400 127,1405 132,1408 137,1411 145,1414 154,1416 163,1418 176,1419 191,1419 205,1419 217,1419 226,1418 235,1417 243,1415 249,1413 254,1411 258,1409 261,1407 264,1405 266,1403 267,1400 336,1263 390,1123 429,979 468,834 487,687 487,537 Z"/>
+ <glyph unicode="(" horiz-adv-x="397" d="M 495,1378 C 432,1244 385,1107 354,966 323,825 307,683 307,540 307,397 323,255 355,114 386,-27 432,-165 493,-300 496,-308 498,-315 499,-321 499,-326 497,-331 492,-335 487,-338 480,-341 471,-343 461,-344 448,-345 431,-345 419,-345 409,-345 400,-344 391,-343 384,-342 378,-340 371,-338 366,-336 362,-333 358,-330 355,-327 353,-324 317,-256 285,-187 258,-118 231,-48 208,23 189,95 170,167 156,240 147,314 138,387 133,462 133,537 133,612 138,687 149,760 159,833 174,906 193,979 212,1051 235,1122 262,1192 289,1262 320,1331 354,1400 355,1403 357,1405 360,1407 363,1409 367,1411 372,1413 377,1415 385,1417 394,1418 403,1419 415,1419 430,1419 445,1419 458,1418 467,1416 476,1414 484,1411 489,1408 494,1405 497,1400 498,1395 499,1390 498,1384 495,1378 Z"/>
+ <glyph unicode=" " horiz-adv-x="466"/>
+ </font>
+ </defs>
+ <defs class="TextShapeIndex">
+ <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150 id151 id152 id153 id154 id155 id156 id157 id158 id159 id160 id161 id162 id163 id164 id165 id166 id167 id168 id169 id170 id171 id172 id173 id174 id175 id176 id177 id178 id179 id180 id181 id182 id183 id184 id185 id186 id187 id188 id189 id190 id191 id192 id193 id194 id195 id196 id197 id198 id199 id200 id201 id202 id203 id204 id205 id206 id207 id208 id209 id210 id211 id212 id213 id214 id215 id216 id217 id218 id219 id220 id221 id222 id223 id224 id225 id226 id227 id228 id229 id230 id231 id232 id233 id234 id235 id236 id237 id238 id239 id240 id241 id242 id243 id244 id245 id246 id247 id248 id249 id250 id251 id252 id253 id254 id255 id256 id257 id258 id259 id260 id261 id262 id263 id264 id265 id266 id267 id268 id269 id270 id271 id272 id273 id274 id275 id276 id277 id278 id279 id280 id281 id282 id283 id284 id285 id286 id287 id288 id289 id290 id291 id292 id293 id294 id295 id296 id297 id298 id299 id300 id301 id302 id303 id304 id305 id306 id307 id308 id309 id310 id311 id312 id313 id314 id315 id316 id317 id318 id319 id320 id321 id322 id323 id324 id325 id326 id327 id328 id329 id330 id331 id332 id333 id334 id335 id336 id337 id338 id339 id340 id341 id342 id343 id344 id345 id346 id347 id348 id349 id350 id351 id352 id353 id354 id355 id356 id357 id358 id359 id360 id361 id362 id363 id364 id365 id366 id367 id368 id369 id370 id371 id372 id373 id374 id375 id376 id377 id378 id379 id380 id381 id382 id383 id384 id385 id386 id387 id388 id389 id390 id391 id392 id393 id394 id395"/>
+ </defs>
+ <defs class="EmbeddedBulletChars">
+ <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
+ </g>
+ <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
+ </g>
+ <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
+ </g>
+ <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
+ </g>
+ <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
+ </g>
+ <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
+ </g>
+ <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
+ </g>
+ <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
+ </g>
+ <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
+ </g>
+ <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
+ </g>
+ </defs>
+ <g>
+ <g id="id2" class="Master_Slide">
+ <g id="bg-id2" class="Background"/>
+ <g id="bo-id2" class="BackgroundObjects"/>
+ </g>
+ </g>
+ <g class="SlideGroup">
+ <g>
+ <g id="container-id1">
+ <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
+ <g class="Page">
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id3">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3815" y="6281" width="2667" height="2266"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 6428,8493 L 6428,7223 3868,7223 3868,6334"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id4">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6814" y="6281" width="4298" height="2266"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 11058,6334 L 11058,7223 6867,7223 6867,8493"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id5">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4250" y="6308" width="6427" height="588"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10623,6361 L 10623,6842 4303,6842 4303,6361"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id6">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7144" y="6281" width="4171" height="2266"/>
+ <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 11261,8493 L 11261,7985 7197,7985 7197,6334"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id7">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11543" y="6281" width="2898" height="2266"/>
+ <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 14387,6334 L 14387,7985 11596,7985 11596,8493"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id8">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7552" y="6281" width="6454" height="1377"/>
+ <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 13952,6361 L 13952,7604 7605,7604 7605,6334"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id9">
+ <rect class="BoundingBox" stroke="none" fill="none" x="740" y="867" width="16140" height="12584"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="9" stroke-linejoin="miter" d="M 8810,13445 L 745,13445 745,872 16874,872 16874,13445 8810,13445 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id10">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6223" y="555" width="5437" height="670"/>
+ <g>
+ <defs>
+ <linearGradient id="gradient1" x1="8941" y1="564" x2="8941" y2="1215" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:rgb(209,209,209)"/>
+ <stop offset="1" style="stop-color:rgb(199,199,199)"/>
+ </linearGradient>
+ </defs>
+ <path style="fill:url(#gradient1)" d="M 8941,1215 L 6232,1215 6232,564 11650,564 11650,1215 8941,1215 Z"/>
+ </g>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8941,1215 L 6232,1215 6232,564 11650,564 11650,1215 8941,1215 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="6482" y="1005"><tspan fill="rgb(0,0,0)" stroke="none">3-Node Xeon Icelake (3n-icx)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id11">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5347" y="9562" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 8967,9580 L 12569,9580 12569,12758 5365,12758 5365,9580 8967,9580 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8967,9580 L 12569,9580 12569,12758 5365,12758 5365,9580 8967,9580 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id12">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11178" y="9346" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 11631,9789 L 11187,9789 11187,9355 12074,9355 12074,9789 11631,9789 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 11631,9789 L 11187,9789 11187,9355 12074,9355 12074,9789 11631,9789 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11356" y="9718"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id13">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11931" y="8593" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11954,9294 L 11949,8594"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id14">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11855" y="9286" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11939,9295 L 12013,9295 12013,9394 11864,9394 11864,9295 11939,9295 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11939,9295 L 12013,9295 12013,9394 11864,9394 11864,9295 11939,9295 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id15">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11212" y="9289" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11296,9298 L 11370,9298 11370,9397 11221,9397 11221,9298 11296,9298 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11296,9298 L 11370,9298 11370,9397 11221,9397 11221,9298 11296,9298 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id16">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11276" y="8548" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11294,9297 L 11296,8549"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id17">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11700" y="8545" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11718,9292 L 11720,8546"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id18">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11635" y="9284" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11719,9293 L 11793,9293 11793,9392 11644,9392 11644,9293 11719,9293 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11719,9293 L 11793,9293 11793,9392 11644,9392 11644,9293 11719,9293 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id19">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11424" y="9286" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11508,9295 L 11582,9295 11582,9394 11433,9394 11433,9295 11508,9295 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11508,9295 L 11582,9295 11582,9394 11433,9394 11433,9295 11508,9295 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id20">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11499" y="8545" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11523,9294 L 11517,8546"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id21">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9256" y="10528" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 10674,11712 L 9274,11712 9274,10546 12074,10546 12074,11712 10674,11712 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 10674,11712 L 9274,11712 9274,10546 12074,10546 12074,11712 10674,11712 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10135" y="10850"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10025" y="11203"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="9743" y="11556"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id22">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10213" y="9349" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 10666,9792 L 10222,9792 10222,9358 11109,9358 11109,9792 10666,9792 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 10666,9792 L 10222,9792 10222,9358 11109,9358 11109,9792 10666,9792 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10391" y="9721"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id23">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10967" y="8550" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10990,9297 L 10985,8551"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id24">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10891" y="9289" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10975,9298 L 11049,9298 11049,9397 10900,9397 10900,9298 10975,9298 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10975,9298 L 11049,9298 11049,9397 10900,9397 10900,9298 10975,9298 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id25">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10247" y="9291" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10331,9300 L 10405,9300 10405,9399 10256,9399 10256,9300 10331,9300 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10331,9300 L 10405,9300 10405,9399 10256,9399 10256,9300 10331,9300 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id26">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10312" y="8550" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10330,9299 L 10332,8551"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id27">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10736" y="8548" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10754,9295 L 10756,8549"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id28">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10670" y="9287" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10754,9296 L 10828,9296 10828,9395 10679,9395 10679,9296 10754,9296 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10754,9296 L 10828,9296 10828,9395 10679,9395 10679,9296 10754,9296 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id29">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10459" y="9289" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10543,9298 L 10617,9298 10617,9397 10468,9397 10468,9298 10543,9298 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10543,9298 L 10617,9298 10617,9397 10468,9397 10468,9298 10543,9298 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id30">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10534" y="8548" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10558,9297 L 10552,8549"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id31">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9264" y="9351" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 9717,9794 L 9273,9794 9273,9360 10160,9360 10160,9794 9717,9794 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 9717,9794 L 9273,9794 9273,9360 10160,9360 10160,9794 9717,9794 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9442" y="9723"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id32">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10018" y="8552" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10041,9299 L 10036,8553"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id33">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9942" y="9291" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10026,9300 L 10100,9300 10100,9399 9951,9399 9951,9300 10026,9300 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10026,9300 L 10100,9300 10100,9399 9951,9399 9951,9300 10026,9300 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id34">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9298" y="9293" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 9382,9302 L 9456,9302 9456,9401 9307,9401 9307,9302 9382,9302 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9382,9302 L 9456,9302 9456,9401 9307,9401 9307,9302 9382,9302 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id35">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9363" y="8600" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9381,9301 L 9383,8601"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id36">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9787" y="8550" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9805,9297 L 9807,8551"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id37">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9721" y="9289" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 9805,9298 L 9879,9298 9879,9397 9730,9397 9730,9298 9805,9298 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9805,9298 L 9879,9298 9879,9397 9730,9397 9730,9298 9805,9298 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id38">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9510" y="9291" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 9594,9300 L 9668,9300 9668,9399 9519,9399 9519,9300 9594,9300 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 9594,9300 L 9668,9300 9668,9399 9519,9399 9519,9300 9594,9300 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id39">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9585" y="8550" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 9609,9299 L 9603,8551"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id40">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11324" y="9796" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 11602,9796 L 11879,9957 11741,9957 11741,10367 11879,10367 11602,10529 11324,10367 11463,10367 11463,9957 11324,9957 11602,9796 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id41">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11363" y="9993" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 11601,10336 L 11363,10336 11363,9993 11838,9993 11838,10336 11601,10336 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11372" y="10278"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id42">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10347" y="9800" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 10625,9800 L 10902,9961 10764,9961 10764,10371 10902,10371 10625,10533 10347,10371 10486,10371 10486,9961 10347,9961 10625,9800 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id43">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10385" y="9997" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 10623,10340 L 10385,10340 10385,9997 10860,9997 10860,10340 10623,10340 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10394" y="10282"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id44">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9394" y="9809" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 9672,9809 L 9949,9970 9811,9970 9811,10380 9949,10380 9672,10542 9394,10380 9533,10380 9533,9970 9394,9970 9672,9809 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id45">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9433" y="10006" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 9671,10349 L 9433,10349 9433,10006 9908,10006 9908,10349 9671,10349 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9442" y="10291"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id46">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5937" y="10543" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 7355,11727 L 5955,11727 5955,10561 8755,10561 8755,11727 7355,11727 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 7355,11727 L 5955,11727 5955,10561 8755,10561 8755,11727 7355,11727 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6816" y="10865"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6706" y="11218"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6424" y="11571"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id47">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7863" y="9352" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 8316,9795 L 7872,9795 7872,9361 8759,9361 8759,9795 8316,9795 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8316,9795 L 7872,9795 7872,9361 8759,9361 8759,9795 8316,9795 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8041" y="9724"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id48">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8617" y="8599" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8640,9300 L 8635,8600"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id49">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8541" y="9292" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 8625,9301 L 8699,9301 8699,9400 8550,9400 8550,9301 8625,9301 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 8625,9301 L 8699,9301 8699,9400 8550,9400 8550,9301 8625,9301 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id50">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7897" y="9294" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7981,9303 L 8055,9303 8055,9402 7906,9402 7906,9303 7981,9303 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7981,9303 L 8055,9303 8055,9402 7906,9402 7906,9303 7981,9303 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id51">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7962" y="8553" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7980,9302 L 7982,8554"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id52">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8386" y="8551" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8404,9298 L 8406,8552"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id53">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8320" y="9290" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 8404,9299 L 8478,9299 8478,9398 8329,9398 8329,9299 8404,9299 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 8404,9299 L 8478,9299 8478,9398 8329,9398 8329,9299 8404,9299 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id54">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8109" y="9292" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 8193,9301 L 8267,9301 8267,9400 8118,9400 8118,9301 8193,9301 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 8193,9301 L 8267,9301 8267,9400 8118,9400 8118,9301 8193,9301 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id55">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8184" y="8551" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8208,9300 L 8202,8552"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id56">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6899" y="9354" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 7352,9797 L 6908,9797 6908,9363 7795,9363 7795,9797 7352,9797 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7352,9797 L 6908,9797 6908,9363 7795,9363 7795,9797 7352,9797 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7077" y="9726"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id57">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7652" y="8555" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7675,9302 L 7670,8556"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id58">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7576" y="9294" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7660,9303 L 7734,9303 7734,9402 7585,9402 7585,9303 7660,9303 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7660,9303 L 7734,9303 7734,9402 7585,9402 7585,9303 7660,9303 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id59">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6932" y="9296" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7016,9305 L 7090,9305 7090,9404 6941,9404 6941,9305 7016,9305 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7016,9305 L 7090,9305 7090,9404 6941,9404 6941,9305 7016,9305 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id60">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6997" y="8555" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7015,9304 L 7017,8556"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id61">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7421" y="8553" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7439,9300 L 7441,8554"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id62">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7356" y="9292" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7440,9301 L 7514,9301 7514,9400 7365,9400 7365,9301 7440,9301 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7440,9301 L 7514,9301 7514,9400 7365,9400 7365,9301 7440,9301 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id63">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7145" y="9294" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7229,9303 L 7303,9303 7303,9402 7154,9402 7154,9303 7229,9303 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7229,9303 L 7303,9303 7303,9402 7154,9402 7154,9303 7229,9303 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id64">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7220" y="8553" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7244,9302 L 7238,8554"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id65">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5950" y="9356" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 6403,9799 L 5959,9799 5959,9365 6846,9365 6846,9799 6403,9799 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6403,9799 L 5959,9799 5959,9365 6846,9365 6846,9799 6403,9799 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6128" y="9728"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id66">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6703" y="8557" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6726,9304 L 6721,8558"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id67">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6627" y="9296" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6711,9305 L 6785,9305 6785,9404 6636,9404 6636,9305 6711,9305 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6711,9305 L 6785,9305 6785,9404 6636,9404 6636,9305 6711,9305 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id68">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5984" y="9298" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6068,9307 L 6142,9307 6142,9406 5993,9406 5993,9307 6068,9307 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6068,9307 L 6142,9307 6142,9406 5993,9406 5993,9307 6068,9307 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id69">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6049" y="8605" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6067,9306 L 6069,8606"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id70">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6472" y="8555" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6490,9302 L 6492,8556"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id71">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6407" y="9294" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6491,9303 L 6565,9303 6565,9402 6416,9402 6416,9303 6491,9303 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6491,9303 L 6565,9303 6565,9402 6416,9402 6416,9303 6491,9303 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id72">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6196" y="9296" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6280,9305 L 6354,9305 6354,9404 6205,9404 6205,9305 6280,9305 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6280,9305 L 6354,9305 6354,9404 6205,9404 6205,9305 6280,9305 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id73">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6271" y="8555" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6295,9304 L 6289,8556"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id74">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8010" y="9801" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 8288,9801 L 8565,9962 8427,9962 8427,10372 8565,10372 8288,10534 8010,10372 8149,10372 8149,9962 8010,9962 8288,9801 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id75">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8048" y="9998" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 8286,10341 L 8048,10341 8048,9998 8523,9998 8523,10341 8286,10341 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8057" y="10283"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id76">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7032" y="9806" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 7310,9806 L 7587,9967 7449,9967 7449,10377 7587,10377 7310,10539 7032,10377 7171,10377 7171,9967 7032,9967 7310,9806 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id77">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7071" y="10003" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 7309,10346 L 7071,10346 7071,10003 7546,10003 7546,10346 7309,10346 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7080" y="10288"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id78">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6080" y="9814" width="557" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 6358,9814 L 6635,9975 6497,9975 6497,10385 6635,10385 6358,10547 6080,10385 6219,10385 6219,9975 6080,9975 6358,9814 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id79">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6118" y="10012" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 6356,10355 L 6118,10355 6118,10012 6593,10012 6593,10355 6356,10355 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6127" y="10297"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id80">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9342" y="8438" width="2666" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 9395,8619 L 9395,8619 C 9395,8597 9397,8575 9402,8555 9406,8536 9413,8520 9421,8509 9428,8498 9437,8492 9446,8492 L 9446,8492 11902,8492 11902,8492 C 11911,8492 11920,8498 11928,8509 11935,8520 11942,8536 11946,8556 11951,8575 11953,8597 11953,8619"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id81">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6022" y="8447" width="2667" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6076,8628 L 6076,8628 C 6076,8606 6078,8584 6083,8564 6087,8545 6094,8529 6102,8518 6109,8507 6118,8501 6127,8501 L 6127,8501 8583,8501 8583,8501 C 8592,8501 8601,8507 8609,8518 8616,8529 8623,8545 8627,8565 8632,8584 8634,8606 8634,8628"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id82">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5415" y="11739" width="1219" height="930"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5415" y="12127"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5415" y="12592"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id83">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7036" y="12740" width="4221" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="7288" y="13288"><tspan fill="rgb(32,56,100)" stroke="none">Traffic Generator (TG)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id84">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8701" y="11887" width="1147" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8951" y="12294"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id85">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5191" y="9646" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5441" y="10042"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5441" y="10389"><tspan fill="rgb(0,0,0)" stroke="none">Gen4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id86">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8592" y="10662" width="891" height="1019"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 8592,11170 L 8851,10662 8851,10916 9222,10916 9222,10662 9482,11170 9222,11679 9222,11424 8851,11424 8851,11679 8592,11170 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id87">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8747" y="10942" width="609" height="382"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 9051,11323 L 8747,11323 8747,10942 9355,10942 9355,11323 9051,11323 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8815" y="11246"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id88">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1193" y="1920" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 4813,5116 L 1211,5116 1211,1938 8415,1938 8415,5116 4813,5116 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4813,5116 L 1211,5116 1211,1938 8415,1938 8415,5116 4813,5116 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1311" y="2326"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1311" y="2791"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id89">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1903" y="5020" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 2356,5463 L 1912,5463 1912,5029 2799,5029 2799,5463 2356,5463 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 2356,5463 L 1912,5463 1912,5029 2799,5029 2799,5463 2356,5463 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2081" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id90">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2016" y="5523" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2034,5524 L 2039,6224"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id91">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1935" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2019,5523 L 1944,5523 1944,5424 2093,5424 2093,5523 2019,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2019,5523 L 1944,5523 1944,5424 2093,5424 2093,5523 2019,5523 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id92">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2579" y="5413" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2663,5521 L 2588,5521 2588,5422 2737,5422 2737,5521 2663,5521 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2663,5521 L 2588,5521 2588,5422 2737,5422 2737,5521 2663,5521 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id93">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2643" y="5521" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2663,5522 L 2661,6270"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id94">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2219" y="5525" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2239,5526 L 2237,6272"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id95">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2155" y="5417" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2239,5525 L 2164,5525 2164,5426 2313,5426 2313,5525 2239,5525 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2239,5525 L 2164,5525 2164,5426 2313,5426 2313,5525 2239,5525 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id96">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2366" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2450,5523 L 2375,5523 2375,5424 2524,5424 2524,5523 2450,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2450,5523 L 2375,5523 2375,5424 2524,5424 2524,5523 2450,5523 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id97">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2446" y="5523" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2464,5524 L 2470,6272"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id98">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1895" y="3088" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 3313,4272 L 1913,4272 1913,3106 4713,3106 4713,4272 3313,4272 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 3313,4272 L 1913,4272 1913,3106 4713,3106 4713,4272 3313,4272 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2774" y="3410"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2628" y="3763"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon </tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2382" y="4116"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id99">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2867" y="5018" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 3320,5461 L 2876,5461 2876,5027 3763,5027 3763,5461 3320,5461 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 3320,5461 L 2876,5461 2876,5027 3763,5027 3763,5461 3320,5461 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3045" y="5325"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id100">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2980" y="5521" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2998,5522 L 3003,6268"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id101">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2899" y="5413" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2983,5521 L 2908,5521 2908,5422 3057,5422 3057,5521 2983,5521 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2983,5521 L 2908,5521 2908,5422 3057,5422 3057,5521 2983,5521 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id102">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3543" y="5411" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3627,5519 L 3552,5519 3552,5420 3701,5420 3701,5519 3627,5519 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3627,5519 L 3552,5519 3552,5420 3701,5420 3701,5519 3627,5519 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id103">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3607" y="5519" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3627,5520 L 3625,6268"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id104">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3183" y="5523" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3203,5524 L 3201,6270"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id105">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3120" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3204,5523 L 3129,5523 3129,5424 3278,5424 3278,5523 3204,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3204,5523 L 3129,5523 3129,5424 3278,5424 3278,5523 3204,5523 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id106">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3331" y="5413" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3415,5521 L 3340,5521 3340,5422 3489,5422 3489,5521 3415,5521 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3415,5521 L 3340,5521 3340,5422 3489,5422 3489,5521 3415,5521 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id107">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3411" y="5521" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3429,5522 L 3435,6270"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id108">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3816" y="5016" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 4269,5459 L 3825,5459 3825,5025 4712,5025 4712,5459 4269,5459 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 4269,5459 L 3825,5459 3825,5025 4712,5025 4712,5459 4269,5459 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3994" y="5323"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id109">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3929" y="5519" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 3947,5520 L 3952,6266"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id110">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3848" y="5411" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 3932,5519 L 3857,5519 3857,5420 4006,5420 4006,5519 3932,5519 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 3932,5519 L 3857,5519 3857,5420 4006,5420 4006,5519 3932,5519 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id111">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4492" y="5408" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 4576,5516 L 4501,5516 4501,5417 4650,5417 4650,5516 4576,5516 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4576,5516 L 4501,5516 4501,5417 4650,5417 4650,5516 4576,5516 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id112">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4556" y="5516" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4576,5517 L 4574,6217"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id113">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4132" y="5520" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4152,5521 L 4150,6267"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id114">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4069" y="5412" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 4153,5520 L 4078,5520 4078,5421 4227,5421 4227,5520 4153,5520 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4153,5520 L 4078,5520 4078,5421 4227,5421 4227,5520 4153,5520 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id115">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4280" y="5411" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 4364,5519 L 4289,5519 4289,5420 4438,5420 4438,5519 4364,5519 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 4364,5519 L 4289,5519 4289,5420 4438,5420 4438,5519 4364,5519 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id116">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4360" y="5519" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4378,5520 L 4384,6268"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id117">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2109" y="4291" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 2386,5024 L 2109,4863 2247,4863 2247,4453 2109,4453 2386,4291 2664,4453 2525,4453 2525,4863 2664,4863 2386,5024 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id118">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2147" y="4481" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 2385,4824 L 2147,4824 2147,4481 2622,4481 2622,4824 2385,4824 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2156" y="4766"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id119">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3086" y="4286" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 3363,5019 L 3086,4858 3224,4858 3224,4448 3086,4448 3363,4286 3641,4448 3502,4448 3502,4858 3641,4858 3363,5019 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id120">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3125" y="4476" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 3363,4819 L 3125,4819 3125,4476 3600,4476 3600,4819 3363,4819 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="3134" y="4761"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id121">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4038" y="4276" width="557" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 4316,5010 L 4039,4849 4177,4849 4177,4439 4039,4439 4316,4277 4594,4439 4455,4439 4455,4849 4594,4849 4316,5010 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id122">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4077" y="4467" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 4315,4810 L 4077,4810 4077,4467 4552,4467 4552,4810 4315,4810 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4086" y="4752"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id123">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4746" y="2289" width="1147" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4996" y="2696"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id124">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5215" y="3073" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 6633,4257 L 5233,4257 5233,3091 8033,3091 8033,4257 6633,4257 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 6633,4257 L 5233,4257 5233,3091 8033,3091 8033,4257 6633,4257 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6094" y="3395"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5984" y="3748"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5702" y="4101"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id125">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5217" y="5015" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 5670,5458 L 5226,5458 5226,5024 6113,5024 6113,5458 5670,5458 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 5670,5458 L 5226,5458 5226,5024 6113,5024 6113,5458 5670,5458 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5395" y="5322"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id126">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5330" y="5517" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5348,5518 L 5353,6218"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id127">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5249" y="5409" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5333,5517 L 5258,5517 5258,5418 5407,5418 5407,5517 5333,5517 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5333,5517 L 5258,5517 5258,5418 5407,5418 5407,5517 5333,5517 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id128">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5893" y="5407" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5977,5515 L 5902,5515 5902,5416 6051,5416 6051,5515 5977,5515 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5977,5515 L 5902,5515 5902,5416 6051,5416 6051,5515 5977,5515 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id129">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5957" y="5515" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5977,5516 L 5975,6264"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id130">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5533" y="5519" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5553,5520 L 5551,6266"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id131">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5470" y="5411" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5554,5519 L 5479,5519 5479,5420 5628,5420 5628,5519 5554,5519 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5554,5519 L 5479,5519 5479,5420 5628,5420 5628,5519 5554,5519 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id132">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5681" y="5409" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5765,5517 L 5690,5517 5690,5418 5839,5418 5839,5517 5765,5517 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5765,5517 L 5690,5517 5690,5418 5839,5418 5839,5517 5765,5517 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id133">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5761" y="5517" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5779,5518 L 5785,6266"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id134">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6182" y="5012" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 6635,5455 L 6191,5455 6191,5021 7078,5021 7078,5455 6635,5455 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6635,5455 L 6191,5455 6191,5021 7078,5021 7078,5455 6635,5455 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6360" y="5319"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id135">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6295" y="5515" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6313,5516 L 6318,6262"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id136">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6214" y="5407" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6298,5515 L 6223,5515 6223,5416 6372,5416 6372,5515 6298,5515 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6298,5515 L 6223,5515 6223,5416 6372,5416 6372,5515 6298,5515 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id137">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6858" y="5405" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6942,5513 L 6867,5513 6867,5414 7016,5414 7016,5513 6942,5513 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6942,5513 L 6867,5513 6867,5414 7016,5414 7016,5513 6942,5513 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id138">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6922" y="5513" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6942,5514 L 6940,6262"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id139">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6498" y="5517" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6518,5518 L 6516,6264"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id140">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6434" y="5409" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6518,5517 L 6443,5517 6443,5418 6592,5418 6592,5517 6518,5517 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6518,5517 L 6443,5517 6443,5418 6592,5418 6592,5517 6518,5517 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id141">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6646" y="5407" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6730,5515 L 6655,5515 6655,5416 6804,5416 6804,5515 6730,5515 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6730,5515 L 6655,5515 6655,5416 6804,5416 6804,5515 6730,5515 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id142">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6726" y="5515" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6744,5516 L 6750,6264"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id143">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7131" y="5010" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 7584,5453 L 7140,5453 7140,5019 8027,5019 8027,5453 7584,5453 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7584,5453 L 7140,5453 7140,5019 8027,5019 8027,5453 7584,5453 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7309" y="5317"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id144">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7244" y="5513" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7262,5514 L 7267,6260"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id145">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7163" y="5405" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7247,5513 L 7172,5513 7172,5414 7321,5414 7321,5513 7247,5513 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7247,5513 L 7172,5513 7172,5414 7321,5414 7321,5513 7247,5513 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id146">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7806" y="5403" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7890,5511 L 7815,5511 7815,5412 7964,5412 7964,5511 7890,5511 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7890,5511 L 7815,5511 7815,5412 7964,5412 7964,5511 7890,5511 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id147">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7871" y="5511" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7891,5512 L 7889,6212"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id148">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7447" y="5515" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7467,5516 L 7465,6262"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id149">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7383" y="5407" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7467,5515 L 7392,5515 7392,5416 7541,5416 7541,5515 7467,5515 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7467,5515 L 7392,5515 7392,5416 7541,5416 7541,5515 7467,5515 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id150">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7594" y="5405" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7678,5513 L 7603,5513 7603,5414 7752,5414 7752,5513 7678,5513 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7678,5513 L 7603,5513 7603,5414 7752,5414 7752,5513 7678,5513 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id151">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7674" y="5513" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7692,5514 L 7698,6262"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id152">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5423" y="4285" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 5700,5018 L 5423,4857 5561,4857 5561,4447 5423,4447 5700,4285 5978,4447 5839,4447 5839,4857 5978,4857 5700,5018 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id153">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5462" y="4475" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 5700,4818 L 5462,4818 5462,4475 5937,4475 5937,4818 5700,4818 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5471" y="4760"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id154">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6401" y="4280" width="556" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 6678,5014 L 6401,4853 6539,4853 6539,4443 6401,4443 6678,4281 6956,4443 6817,4443 6817,4853 6956,4853 6678,5014 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id155">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6439" y="4471" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 6677,4814 L 6439,4814 6439,4471 6914,4471 6914,4814 6677,4814 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6448" y="4756"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id156">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7352" y="4271" width="557" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 7630,5005 L 7353,4844 7491,4844 7491,4434 7353,4434 7630,4272 7908,4434 7769,4434 7769,4844 7908,4844 7630,5005 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id157">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7392" y="4462" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 7630,4805 L 7392,4805 7392,4462 7867,4462 7867,4805 7630,4805 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7401" y="4747"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id158">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4512" y="3208" width="892" height="1018"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 4512,3716 L 4771,3208 4771,3462 5142,3462 5142,3208 5402,3716 5142,4225 5142,3970 4771,3970 4771,4225 4512,3716 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id159">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1981" y="6147" width="2666" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 4593,6200 L 4593,6200 C 4593,6222 4591,6244 4586,6264 4582,6283 4575,6299 4567,6310 4560,6321 4551,6327 4542,6327 L 4542,6327 2086,6327 2086,6327 C 2077,6327 2068,6321 2060,6310 2053,6299 2046,6283 2042,6264 2037,6244 2035,6222 2035,6200"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id160">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5300" y="6139" width="2666" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7912,6192 L 7912,6192 C 7912,6214 7910,6236 7905,6256 7901,6275 7894,6291 7886,6302 7879,6313 7870,6319 7861,6319 L 7861,6319 5405,6319 5405,6319 C 5396,6319 5387,6313 5379,6302 5372,6291 5365,6275 5361,6255 5356,6236 5354,6214 5354,6192"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id161">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2208" y="1254" width="5233" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2458" y="1802"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 1 (SUT1)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id162">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1127" y="4140" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1377" y="4536"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1377" y="4883"><tspan fill="rgb(0,0,0)" stroke="none">Gen4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id163">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4667" y="3488" width="609" height="382"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 4971,3869 L 4667,3869 4667,3488 5275,3488 5275,3869 4971,3869 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4735" y="3792"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id164">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9448" y="1928" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 13068,5124 L 9466,5124 9466,1946 16670,1946 16670,5124 13068,5124 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13068,5124 L 9466,5124 9466,1946 16670,1946 16670,5124 13068,5124 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9566" y="2334"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9566" y="2799"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id165">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10158" y="5028" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 10611,5471 L 10167,5471 10167,5037 11054,5037 11054,5471 10611,5471 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 10611,5471 L 10167,5471 10167,5037 11054,5037 11054,5471 10611,5471 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10336" y="5335"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id166">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10271" y="5531" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10289,5532 L 10294,6232"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id167">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10190" y="5423" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10274,5531 L 10199,5531 10199,5432 10348,5432 10348,5531 10274,5531 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10274,5531 L 10199,5531 10199,5432 10348,5432 10348,5531 10274,5531 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id168">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10834" y="5421" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10918,5529 L 10843,5529 10843,5430 10992,5430 10992,5529 10918,5529 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10918,5529 L 10843,5529 10843,5430 10992,5430 10992,5529 10918,5529 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id169">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10898" y="5529" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10918,5530 L 10916,6278"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id170">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10474" y="5533" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10494,5534 L 10492,6280"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id171">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10410" y="5425" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10494,5533 L 10419,5533 10419,5434 10568,5434 10568,5533 10494,5533 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10494,5533 L 10419,5533 10419,5434 10568,5434 10568,5533 10494,5533 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id172">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10621" y="5423" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10705,5531 L 10630,5531 10630,5432 10779,5432 10779,5531 10705,5531 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10705,5531 L 10630,5531 10630,5432 10779,5432 10779,5531 10705,5531 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id173">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10701" y="5531" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10719,5532 L 10725,6280"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id174">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10150" y="3096" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 11568,4280 L 10168,4280 10168,3114 12968,3114 12968,4280 11568,4280 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 11568,4280 L 10168,4280 10168,3114 12968,3114 12968,4280 11568,4280 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="11029" y="3418"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10883" y="3771"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon </tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10637" y="4124"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id175">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11122" y="5026" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 11575,5469 L 11131,5469 11131,5035 12018,5035 12018,5469 11575,5469 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 11575,5469 L 11131,5469 11131,5035 12018,5035 12018,5469 11575,5469 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11300" y="5333"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id176">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11235" y="5529" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11253,5530 L 11258,6276"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id177">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11154" y="5421" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11238,5529 L 11163,5529 11163,5430 11312,5430 11312,5529 11238,5529 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11238,5529 L 11163,5529 11163,5430 11312,5430 11312,5529 11238,5529 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id178">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11798" y="5419" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11882,5527 L 11807,5527 11807,5428 11956,5428 11956,5527 11882,5527 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11882,5527 L 11807,5527 11807,5428 11956,5428 11956,5527 11882,5527 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id179">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11862" y="5527" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11882,5528 L 11880,6276"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id180">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11438" y="5531" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11458,5532 L 11456,6278"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id181">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11375" y="5423" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11459,5531 L 11384,5531 11384,5432 11533,5432 11533,5531 11459,5531 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11459,5531 L 11384,5531 11384,5432 11533,5432 11533,5531 11459,5531 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id182">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11586" y="5421" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11670,5529 L 11595,5529 11595,5430 11744,5430 11744,5529 11670,5529 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11670,5529 L 11595,5529 11595,5430 11744,5430 11744,5529 11670,5529 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id183">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11666" y="5529" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11684,5530 L 11690,6278"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id184">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12071" y="5024" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 12524,5467 L 12080,5467 12080,5033 12967,5033 12967,5467 12524,5467 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 12524,5467 L 12080,5467 12080,5033 12967,5033 12967,5467 12524,5467 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12249" y="5331"><tspan fill="rgb(0,0,0)" stroke="none">NIC3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id185">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12184" y="5527" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12202,5528 L 12207,6274"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id186">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12103" y="5419" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 12187,5527 L 12112,5527 12112,5428 12261,5428 12261,5527 12187,5527 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12187,5527 L 12112,5527 12112,5428 12261,5428 12261,5527 12187,5527 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id187">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12747" y="5416" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 12831,5524 L 12756,5524 12756,5425 12905,5425 12905,5524 12831,5524 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12831,5524 L 12756,5524 12756,5425 12905,5425 12905,5524 12831,5524 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id188">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12811" y="5524" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12831,5525 L 12829,6225"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id189">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12387" y="5528" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12407,5529 L 12405,6275"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id190">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12324" y="5420" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 12408,5528 L 12333,5528 12333,5429 12482,5429 12482,5528 12408,5528 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12408,5528 L 12333,5528 12333,5429 12482,5429 12482,5528 12408,5528 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id191">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12535" y="5419" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 12619,5527 L 12544,5527 12544,5428 12693,5428 12693,5527 12619,5527 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 12619,5527 L 12544,5527 12544,5428 12693,5428 12693,5527 12619,5527 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id192">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12615" y="5527" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12633,5528 L 12639,6276"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id193">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10364" y="4299" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 10641,5032 L 10364,4871 10502,4871 10502,4461 10364,4461 10641,4299 10919,4461 10780,4461 10780,4871 10919,4871 10641,5032 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id194">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10402" y="4489" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 10640,4832 L 10402,4832 10402,4489 10877,4489 10877,4832 10640,4832 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10411" y="4774"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id195">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11341" y="4294" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 11618,5027 L 11341,4866 11479,4866 11479,4456 11341,4456 11618,4294 11896,4456 11757,4456 11757,4866 11896,4866 11618,5027 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id196">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11380" y="4484" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 11618,4827 L 11380,4827 11380,4484 11855,4484 11855,4827 11618,4827 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="11389" y="4769"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id197">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12294" y="4285" width="556" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 12571,5018 L 12294,4857 12432,4857 12432,4447 12294,4447 12571,4285 12849,4447 12710,4447 12710,4857 12849,4857 12571,5018 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id198">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12332" y="4475" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 12570,4818 L 12332,4818 12332,4475 12807,4475 12807,4818 12570,4818 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12341" y="4760"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id199">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12901" y="2297" width="1147" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="13151" y="2704"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id200">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13470" y="3081" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 14888,4265 L 13488,4265 13488,3099 16288,3099 16288,4265 14888,4265 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 14888,4265 L 13488,4265 13488,3099 16288,3099 16288,4265 14888,4265 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="14349" y="3403"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="14239" y="3756"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="13957" y="4109"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id201">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13472" y="5023" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 13925,5466 L 13481,5466 13481,5032 14368,5032 14368,5466 13925,5466 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 13925,5466 L 13481,5466 13481,5032 14368,5032 14368,5466 13925,5466 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="13650" y="5330"><tspan fill="rgb(0,0,0)" stroke="none">NIC4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id202">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13585" y="5525" width="42" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13603,5526 L 13608,6226"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id203">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13504" y="5417" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 13588,5525 L 13513,5525 13513,5426 13662,5426 13662,5525 13588,5525 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 13588,5525 L 13513,5525 13513,5426 13662,5426 13662,5525 13588,5525 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id204">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14148" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 14232,5523 L 14157,5523 14157,5424 14306,5424 14306,5523 14232,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14232,5523 L 14157,5523 14157,5424 14306,5424 14306,5523 14232,5523 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id205">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14212" y="5523" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14232,5524 L 14230,6272"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id206">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13788" y="5527" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 13808,5528 L 13806,6274"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id207">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13725" y="5419" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 13809,5527 L 13734,5527 13734,5428 13883,5428 13883,5527 13809,5527 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 13809,5527 L 13734,5527 13734,5428 13883,5428 13883,5527 13809,5527 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id208">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13936" y="5417" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 14020,5525 L 13945,5525 13945,5426 14094,5426 14094,5525 14020,5525 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14020,5525 L 13945,5525 13945,5426 14094,5426 14094,5525 14020,5525 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id209">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14016" y="5525" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14034,5526 L 14040,6274"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id210">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14437" y="5020" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 14890,5463 L 14446,5463 14446,5029 15333,5029 15333,5463 14890,5463 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 14890,5463 L 14446,5463 14446,5029 15333,5029 15333,5463 14890,5463 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="14615" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC5</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id211">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14550" y="5523" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14568,5524 L 14573,6270"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id212">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14469" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 14553,5523 L 14478,5523 14478,5424 14627,5424 14627,5523 14553,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14553,5523 L 14478,5523 14478,5424 14627,5424 14627,5523 14553,5523 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id213">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15113" y="5413" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 15197,5521 L 15122,5521 15122,5422 15271,5422 15271,5521 15197,5521 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15197,5521 L 15122,5521 15122,5422 15271,5422 15271,5521 15197,5521 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id214">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15177" y="5521" width="39" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15197,5522 L 15195,6270"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id215">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14753" y="5525" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14773,5526 L 14771,6272"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id216">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14689" y="5417" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 14773,5525 L 14698,5525 14698,5426 14847,5426 14847,5525 14773,5525 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14773,5525 L 14698,5525 14698,5426 14847,5426 14847,5525 14773,5525 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id217">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14901" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 14985,5523 L 14910,5523 14910,5424 15059,5424 15059,5523 14985,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14985,5523 L 14910,5523 14910,5424 15059,5424 15059,5523 14985,5523 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id218">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14981" y="5523" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14999,5524 L 15005,6272"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id219">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15386" y="5018" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 15839,5461 L 15395,5461 15395,5027 16282,5027 16282,5461 15839,5461 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 15839,5461 L 15395,5461 15395,5027 16282,5027 16282,5461 15839,5461 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15564" y="5325"><tspan fill="rgb(0,0,0)" stroke="none">NIC6</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id220">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15499" y="5521" width="42" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15517,5522 L 15522,6268"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id221">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15418" y="5413" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 15502,5521 L 15427,5521 15427,5422 15576,5422 15576,5521 15502,5521 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15502,5521 L 15427,5521 15427,5422 15576,5422 15576,5521 15502,5521 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id222">
+ <rect class="BoundingBox" stroke="none" fill="none" x="16061" y="5411" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 16145,5519 L 16070,5519 16070,5420 16219,5420 16219,5519 16145,5519 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 16145,5519 L 16070,5519 16070,5420 16219,5420 16219,5519 16145,5519 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id223">
+ <rect class="BoundingBox" stroke="none" fill="none" x="16126" y="5519" width="39" height="703"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 16146,5520 L 16144,6220"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id224">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15702" y="5523" width="39" height="749"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15722,5524 L 15720,6270"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id225">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15638" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 15722,5523 L 15647,5523 15647,5424 15796,5424 15796,5523 15722,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15722,5523 L 15647,5523 15647,5424 15796,5424 15796,5523 15722,5523 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id226">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15849" y="5413" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 15933,5521 L 15858,5521 15858,5422 16007,5422 16007,5521 15933,5521 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15933,5521 L 15858,5521 15858,5422 16007,5422 16007,5521 15933,5521 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id227">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15929" y="5521" width="43" height="751"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15947,5522 L 15953,6270"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id228">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13677" y="4293" width="557" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 13955,5026 L 13678,4865 13816,4865 13816,4455 13678,4455 13955,4293 14233,4455 14094,4455 14094,4865 14233,4865 13955,5026 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id229">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13717" y="4483" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 13955,4826 L 13717,4826 13717,4483 14192,4483 14192,4826 13955,4826 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="13726" y="4768"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id230">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14656" y="4289" width="556" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 14933,5022 L 14656,4861 14794,4861 14794,4451 14656,4451 14933,4289 15211,4451 15072,4451 15072,4861 15211,4861 14933,5022 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id231">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14694" y="4479" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 14932,4822 L 14694,4822 14694,4479 15169,4479 15169,4822 14932,4822 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="14703" y="4764"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id232">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15608" y="4280" width="557" height="735"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 15885,5013 L 15608,4852 15746,4852 15746,4442 15608,4442 15885,4280 16163,4442 16024,4442 16024,4852 16163,4852 15885,5013 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id233">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15647" y="4470" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 15885,4813 L 15647,4813 15647,4470 16122,4470 16122,4813 15885,4813 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15656" y="4755"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id234">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12767" y="3216" width="892" height="1018"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 12767,3724 L 13026,3216 13026,3470 13397,3470 13397,3216 13657,3724 13397,4233 13397,3978 13026,3978 13026,4233 12767,3724 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id235">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10236" y="6155" width="2666" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 12848,6208 L 12848,6208 C 12848,6230 12846,6252 12841,6272 12837,6291 12830,6307 12822,6318 12815,6329 12806,6335 12797,6335 L 12797,6335 10341,6335 10341,6335 C 10332,6335 10323,6329 10315,6318 10308,6307 10301,6291 10297,6272 10292,6252 10290,6230 10290,6208"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id236">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13555" y="6147" width="2666" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 16167,6200 L 16167,6200 C 16167,6222 16165,6244 16160,6264 16156,6283 16149,6299 16141,6310 16134,6321 16125,6327 16116,6327 L 16116,6327 13660,6327 13660,6327 C 13651,6327 13642,6321 13634,6310 13627,6299 13620,6283 13616,6263 13611,6244 13609,6222 13609,6200"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id237">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10463" y="1262" width="5233" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="10713" y="1810"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 2 (SUT2)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id238">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9382" y="4148" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9632" y="4544"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9632" y="4891"><tspan fill="rgb(0,0,0)" stroke="none">Gen4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id239">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12922" y="3496" width="609" height="382"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 13226,3877 L 12922,3877 12922,3496 13530,3496 13530,3877 13226,3877 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12990" y="3800"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id240">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3677" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id241">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6233" y="8492" width="390" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id242">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10867" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id243">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6676" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id244">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4112" y="5979" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id245">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10432" y="5979" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id246">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7006" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id247">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11070" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id248">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14196" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id249">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11405" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id250">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7414" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id251">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13761" y="5979" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id252">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15210" y="2698" width="226" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 15433,2810 L 15433,2810 C 15433,2815 15432,2820 15429,2824 15427,2828 15423,2832 15419,2834 15415,2837 15410,2838 15405,2838 L 15239,2837 15239,2837 C 15234,2837 15229,2836 15225,2833 15221,2831 15217,2827 15215,2823 15212,2819 15211,2814 15211,2809 L 15211,2809 15211,2726 15211,2726 C 15211,2721 15212,2716 15215,2712 15217,2708 15221,2704 15225,2702 15229,2699 15234,2698 15239,2698 L 15406,2698 15406,2698 C 15411,2698 15416,2699 15420,2702 15424,2704 15428,2708 15430,2712 15433,2716 15434,2721 15434,2726 L 15433,2810 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id253">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15213" y="2495" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 15435,2607 L 15435,2607 C 15435,2612 15434,2617 15431,2621 15429,2625 15425,2629 15421,2631 15417,2634 15412,2635 15407,2635 L 15241,2634 15241,2634 C 15236,2634 15231,2633 15227,2630 15223,2628 15219,2624 15217,2620 15214,2616 15213,2611 15213,2606 L 15213,2606 15213,2523 15213,2523 C 15213,2518 15214,2513 15217,2509 15219,2505 15223,2501 15227,2499 15231,2496 15236,2495 15241,2495 L 15408,2495 15408,2495 C 15413,2495 15418,2496 15422,2499 15426,2501 15430,2505 15432,2509 15435,2513 15436,2518 15436,2523 L 15435,2607 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id254">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15213" y="2295" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 15435,2407 L 15435,2407 C 15435,2412 15434,2417 15431,2421 15429,2425 15425,2429 15421,2431 15417,2434 15412,2435 15407,2435 L 15241,2434 15241,2434 C 15236,2434 15231,2433 15227,2430 15223,2428 15219,2424 15217,2420 15214,2416 15213,2411 15213,2406 L 15213,2406 15213,2323 15213,2323 C 15213,2318 15214,2313 15217,2309 15219,2305 15223,2301 15227,2299 15231,2296 15236,2295 15241,2295 L 15408,2295 15408,2295 C 15413,2295 15418,2296 15422,2299 15426,2301 15430,2305 15432,2309 15435,2313 15436,2318 15436,2323 L 15435,2407 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id255">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15510" y="2699" width="226" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 15733,2811 L 15733,2811 C 15733,2816 15732,2821 15729,2825 15727,2829 15723,2833 15719,2835 15715,2838 15710,2839 15705,2839 L 15539,2838 15539,2838 C 15534,2838 15529,2837 15525,2834 15521,2832 15517,2828 15515,2824 15512,2820 15511,2815 15511,2810 L 15511,2810 15511,2727 15511,2727 C 15511,2722 15512,2717 15515,2713 15517,2709 15521,2705 15525,2703 15529,2700 15534,2699 15539,2699 L 15706,2699 15706,2699 C 15711,2699 15716,2700 15720,2703 15724,2705 15728,2709 15730,2713 15733,2717 15734,2722 15734,2727 L 15733,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id256">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15513" y="2496" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 15735,2608 L 15735,2608 C 15735,2613 15734,2618 15731,2622 15729,2626 15725,2630 15721,2632 15717,2635 15712,2636 15707,2636 L 15541,2635 15541,2635 C 15536,2635 15531,2634 15527,2631 15523,2629 15519,2625 15517,2621 15514,2617 15513,2612 15513,2607 L 15513,2607 15513,2524 15513,2524 C 15513,2519 15514,2514 15517,2510 15519,2506 15523,2502 15527,2500 15531,2497 15536,2496 15541,2496 L 15708,2496 15708,2496 C 15713,2496 15718,2497 15722,2500 15726,2502 15730,2506 15732,2510 15735,2514 15736,2519 15736,2524 L 15735,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id257">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15513" y="2296" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 15735,2408 L 15735,2408 C 15735,2413 15734,2418 15731,2422 15729,2426 15725,2430 15721,2432 15717,2435 15712,2436 15707,2436 L 15541,2435 15541,2435 C 15536,2435 15531,2434 15527,2431 15523,2429 15519,2425 15517,2421 15514,2417 15513,2412 15513,2407 L 15513,2407 15513,2324 15513,2324 C 15513,2319 15514,2314 15517,2310 15519,2306 15523,2302 15527,2300 15531,2297 15536,2296 15541,2296 L 15708,2296 15708,2296 C 15713,2296 15718,2297 15722,2300 15726,2302 15730,2306 15732,2310 15735,2314 15736,2319 15736,2324 L 15735,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id258">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15811" y="2699" width="226" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 16034,2811 L 16034,2811 C 16034,2816 16033,2821 16030,2825 16028,2829 16024,2833 16020,2835 16016,2838 16011,2839 16006,2839 L 15840,2838 15840,2838 C 15835,2838 15830,2837 15826,2834 15822,2832 15818,2828 15816,2824 15813,2820 15812,2815 15812,2810 L 15812,2810 15812,2727 15812,2727 C 15812,2722 15813,2717 15816,2713 15818,2709 15822,2705 15826,2703 15830,2700 15835,2699 15840,2699 L 16007,2699 16007,2699 C 16012,2699 16017,2700 16021,2703 16025,2705 16029,2709 16031,2713 16034,2717 16035,2722 16035,2727 L 16034,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id259">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15814" y="2496" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 16036,2608 L 16036,2608 C 16036,2613 16035,2618 16032,2622 16030,2626 16026,2630 16022,2632 16018,2635 16013,2636 16008,2636 L 15842,2635 15842,2635 C 15837,2635 15832,2634 15828,2631 15824,2629 15820,2625 15818,2621 15815,2617 15814,2612 15814,2607 L 15814,2607 15814,2524 15814,2524 C 15814,2519 15815,2514 15818,2510 15820,2506 15824,2502 15828,2500 15832,2497 15837,2496 15842,2496 L 16009,2496 16009,2496 C 16014,2496 16019,2497 16023,2500 16027,2502 16031,2506 16033,2510 16036,2514 16037,2519 16037,2524 L 16036,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id260">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15814" y="2295" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 16036,2408 L 16036,2408 C 16036,2413 16035,2418 16032,2422 16030,2426 16026,2430 16022,2432 16018,2435 16013,2436 16008,2436 L 15842,2435 15842,2435 C 15837,2435 15832,2434 15828,2431 15824,2429 15820,2425 15818,2421 15815,2417 15814,2412 15814,2407 L 15814,2407 15814,2324 15814,2324 C 15814,2319 15815,2314 15818,2310 15820,2306 15824,2302 15828,2300 15832,2297 15837,2296 15842,2296 L 16009,2296 16009,2296 C 16014,2296 16019,2297 16023,2300 16027,2302 16031,2306 16033,2310 16036,2314 16037,2319 16037,2324 L 16036,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id261">
+ <rect class="BoundingBox" stroke="none" fill="none" x="16111" y="2699" width="226" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 16334,2812 L 16334,2812 C 16334,2817 16333,2822 16330,2826 16328,2830 16324,2834 16320,2836 16316,2839 16311,2840 16306,2840 L 16140,2839 16140,2839 C 16135,2839 16130,2838 16126,2835 16122,2833 16118,2829 16116,2825 16113,2821 16112,2816 16112,2811 L 16112,2811 16112,2728 16112,2728 C 16112,2723 16113,2718 16116,2714 16118,2710 16122,2706 16126,2704 16130,2701 16135,2700 16140,2700 L 16307,2700 16307,2700 C 16312,2700 16317,2701 16321,2704 16325,2706 16329,2710 16331,2714 16334,2718 16335,2723 16335,2728 L 16334,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id262">
+ <rect class="BoundingBox" stroke="none" fill="none" x="16114" y="2497" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 16336,2609 L 16336,2609 C 16336,2614 16335,2619 16332,2623 16330,2627 16326,2631 16322,2633 16318,2636 16313,2637 16308,2637 L 16142,2636 16142,2636 C 16137,2636 16132,2635 16128,2632 16124,2630 16120,2626 16118,2622 16115,2618 16114,2613 16114,2608 L 16114,2608 16114,2525 16114,2525 C 16114,2520 16115,2515 16118,2511 16120,2507 16124,2503 16128,2501 16132,2498 16137,2497 16142,2497 L 16309,2497 16309,2497 C 16314,2497 16319,2498 16323,2501 16327,2503 16331,2507 16333,2511 16336,2515 16337,2520 16337,2525 L 16336,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id263">
+ <rect class="BoundingBox" stroke="none" fill="none" x="16114" y="2297" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 16336,2409 L 16336,2409 C 16336,2414 16335,2419 16332,2423 16330,2427 16326,2431 16322,2433 16318,2436 16313,2437 16308,2437 L 16142,2436 16142,2436 C 16137,2436 16132,2435 16128,2432 16124,2430 16120,2426 16118,2422 16115,2418 16114,2413 16114,2408 L 16114,2408 16114,2325 16114,2325 C 16114,2320 16115,2315 16118,2311 16120,2307 16124,2303 16128,2301 16132,2298 16137,2297 16142,2297 L 16309,2297 16309,2297 C 16314,2297 16319,2298 16323,2301 16327,2303 16331,2307 16333,2311 16336,2315 16337,2320 16337,2325 L 16336,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id264">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13911" y="2698" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14133,2810 L 14133,2810 C 14133,2815 14132,2820 14129,2824 14127,2828 14123,2832 14119,2834 14115,2837 14110,2838 14105,2838 L 13939,2837 13939,2837 C 13934,2837 13929,2836 13925,2833 13921,2831 13917,2827 13915,2823 13912,2819 13911,2814 13911,2809 L 13911,2809 13911,2726 13911,2726 C 13911,2721 13912,2716 13915,2712 13917,2708 13921,2704 13925,2702 13929,2699 13934,2698 13939,2698 L 14106,2698 14106,2698 C 14111,2698 14116,2699 14120,2702 14124,2704 14128,2708 14130,2712 14133,2716 14134,2721 14134,2726 L 14133,2810 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id265">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13913" y="2495" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14135,2607 L 14135,2607 C 14135,2612 14134,2617 14131,2621 14129,2625 14125,2629 14121,2631 14117,2634 14112,2635 14107,2635 L 13941,2634 13941,2634 C 13936,2634 13931,2633 13927,2630 13923,2628 13919,2624 13917,2620 13914,2616 13913,2611 13913,2606 L 13913,2606 13913,2523 13913,2523 C 13913,2518 13914,2513 13917,2509 13919,2505 13923,2501 13927,2499 13931,2496 13936,2495 13941,2495 L 14108,2495 14108,2495 C 14113,2495 14118,2496 14122,2499 14126,2501 14130,2505 14132,2509 14135,2513 14136,2518 14136,2523 L 14135,2607 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id266">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13913" y="2295" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14135,2407 L 14135,2407 C 14135,2412 14134,2417 14131,2421 14129,2425 14125,2429 14121,2431 14117,2434 14112,2435 14107,2435 L 13941,2434 13941,2434 C 13936,2434 13931,2433 13927,2430 13923,2428 13919,2424 13917,2420 13914,2416 13913,2411 13913,2406 L 13913,2406 13913,2323 13913,2323 C 13913,2318 13914,2313 13917,2309 13919,2305 13923,2301 13927,2299 13931,2296 13936,2295 13941,2295 L 14108,2295 14108,2295 C 14113,2295 14118,2296 14122,2299 14126,2301 14130,2305 14132,2309 14135,2313 14136,2318 14136,2323 L 14135,2407 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id267">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14211" y="2699" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14433,2811 L 14433,2811 C 14433,2816 14432,2821 14429,2825 14427,2829 14423,2833 14419,2835 14415,2838 14410,2839 14405,2839 L 14239,2838 14239,2838 C 14234,2838 14229,2837 14225,2834 14221,2832 14217,2828 14215,2824 14212,2820 14211,2815 14211,2810 L 14211,2810 14211,2727 14211,2727 C 14211,2722 14212,2717 14215,2713 14217,2709 14221,2705 14225,2703 14229,2700 14234,2699 14239,2699 L 14406,2699 14406,2699 C 14411,2699 14416,2700 14420,2703 14424,2705 14428,2709 14430,2713 14433,2717 14434,2722 14434,2727 L 14433,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id268">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14213" y="2496" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14435,2608 L 14435,2608 C 14435,2613 14434,2618 14431,2622 14429,2626 14425,2630 14421,2632 14417,2635 14412,2636 14407,2636 L 14241,2635 14241,2635 C 14236,2635 14231,2634 14227,2631 14223,2629 14219,2625 14217,2621 14214,2617 14213,2612 14213,2607 L 14213,2607 14213,2524 14213,2524 C 14213,2519 14214,2514 14217,2510 14219,2506 14223,2502 14227,2500 14231,2497 14236,2496 14241,2496 L 14408,2496 14408,2496 C 14413,2496 14418,2497 14422,2500 14426,2502 14430,2506 14432,2510 14435,2514 14436,2519 14436,2524 L 14435,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id269">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14213" y="2295" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14435,2408 L 14435,2408 C 14435,2413 14434,2418 14431,2422 14429,2426 14425,2430 14421,2432 14417,2435 14412,2436 14407,2436 L 14241,2435 14241,2435 C 14236,2435 14231,2434 14227,2431 14223,2429 14219,2425 14217,2421 14214,2417 14213,2412 14213,2407 L 14213,2407 14213,2324 14213,2324 C 14213,2319 14214,2314 14217,2310 14219,2306 14223,2302 14227,2300 14231,2297 14236,2296 14241,2296 L 14408,2296 14408,2296 C 14413,2296 14418,2297 14422,2300 14426,2302 14430,2306 14432,2310 14435,2314 14436,2319 14436,2324 L 14435,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id270">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14512" y="2699" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14734,2811 L 14734,2811 C 14734,2816 14733,2821 14730,2825 14728,2829 14724,2833 14720,2835 14716,2838 14711,2839 14706,2839 L 14540,2838 14540,2838 C 14535,2838 14530,2837 14526,2834 14522,2832 14518,2828 14516,2824 14513,2820 14512,2815 14512,2810 L 14512,2810 14512,2727 14512,2727 C 14512,2722 14513,2717 14516,2713 14518,2709 14522,2705 14526,2703 14530,2700 14535,2699 14540,2699 L 14707,2699 14707,2699 C 14712,2699 14717,2700 14721,2703 14725,2705 14729,2709 14731,2713 14734,2717 14735,2722 14735,2727 L 14734,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id271">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14514" y="2496" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14736,2608 L 14736,2608 C 14736,2613 14735,2618 14732,2622 14730,2626 14726,2630 14722,2632 14718,2635 14713,2636 14708,2636 L 14542,2635 14542,2635 C 14537,2635 14532,2634 14528,2631 14524,2629 14520,2625 14518,2621 14515,2617 14514,2612 14514,2607 L 14514,2607 14514,2524 14514,2524 C 14514,2519 14515,2514 14518,2510 14520,2506 14524,2502 14528,2500 14532,2497 14537,2496 14542,2496 L 14709,2496 14709,2496 C 14714,2496 14719,2497 14723,2500 14727,2502 14731,2506 14733,2510 14736,2514 14737,2519 14737,2524 L 14736,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id272">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14514" y="2296" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14736,2408 L 14736,2408 C 14736,2413 14735,2418 14732,2422 14730,2426 14726,2430 14722,2432 14718,2435 14713,2436 14708,2436 L 14542,2435 14542,2435 C 14537,2435 14532,2434 14528,2431 14524,2429 14520,2425 14518,2421 14515,2417 14514,2412 14514,2407 L 14514,2407 14514,2324 14514,2324 C 14514,2319 14515,2314 14518,2310 14520,2306 14524,2302 14528,2300 14532,2297 14537,2296 14542,2296 L 14709,2296 14709,2296 C 14714,2296 14719,2297 14723,2300 14727,2302 14731,2306 14733,2310 14736,2314 14737,2319 14737,2324 L 14736,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id273">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14811" y="2700" width="226" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 15034,2812 L 15034,2812 C 15034,2817 15033,2822 15030,2826 15028,2830 15024,2834 15020,2836 15016,2839 15011,2840 15006,2840 L 14840,2839 14840,2839 C 14835,2839 14830,2838 14826,2835 14822,2833 14818,2829 14816,2825 14813,2821 14812,2816 14812,2811 L 14812,2811 14812,2728 14812,2728 C 14812,2723 14813,2718 14816,2714 14818,2710 14822,2706 14826,2704 14830,2701 14835,2700 14840,2700 L 15007,2700 15007,2700 C 15012,2700 15017,2701 15021,2704 15025,2706 15029,2710 15031,2714 15034,2718 15035,2723 15035,2728 L 15034,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id274">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14814" y="2497" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 15036,2609 L 15036,2609 C 15036,2614 15035,2619 15032,2623 15030,2627 15026,2631 15022,2633 15018,2636 15013,2637 15008,2637 L 14842,2636 14842,2636 C 14837,2636 14832,2635 14828,2632 14824,2630 14820,2626 14818,2622 14815,2618 14814,2613 14814,2608 L 14814,2608 14814,2525 14814,2525 C 14814,2520 14815,2515 14818,2511 14820,2507 14824,2503 14828,2501 14832,2498 14837,2497 14842,2497 L 15009,2497 15009,2497 C 15014,2497 15019,2498 15023,2501 15027,2503 15031,2507 15033,2511 15036,2515 15037,2520 15037,2525 L 15036,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id275">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14814" y="2297" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 15036,2409 L 15036,2409 C 15036,2414 15035,2419 15032,2423 15030,2427 15026,2431 15022,2433 15018,2436 15013,2437 15008,2437 L 14842,2436 14842,2436 C 14837,2436 14832,2435 14828,2432 14824,2430 14820,2426 14818,2422 14815,2418 14814,2413 14814,2408 L 14814,2408 14814,2325 14814,2325 C 14814,2320 14815,2315 14818,2311 14820,2307 14824,2303 14828,2301 14832,2298 14837,2297 14842,2297 L 15009,2297 15009,2297 C 15014,2297 15019,2298 15023,2301 15027,2303 15031,2307 15033,2311 15036,2315 15037,2320 15037,2325 L 15036,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id276">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11911" y="2697" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12133,2810 L 12133,2810 C 12133,2815 12132,2820 12129,2824 12127,2828 12123,2832 12119,2834 12115,2837 12110,2838 12105,2838 L 11939,2837 11939,2837 C 11934,2837 11929,2836 11925,2833 11921,2831 11917,2827 11915,2823 11912,2819 11911,2814 11911,2809 L 11911,2809 11911,2726 11911,2726 C 11911,2721 11912,2716 11915,2712 11917,2708 11921,2704 11925,2702 11929,2699 11934,2698 11939,2698 L 12106,2698 12106,2698 C 12111,2698 12116,2699 12120,2702 12124,2704 12128,2708 12130,2712 12133,2716 12134,2721 12134,2726 L 12133,2810 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id277">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11913" y="2495" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12135,2607 L 12135,2607 C 12135,2612 12134,2617 12131,2621 12129,2625 12125,2629 12121,2631 12117,2634 12112,2635 12107,2635 L 11941,2634 11941,2634 C 11936,2634 11931,2633 11927,2630 11923,2628 11919,2624 11917,2620 11914,2616 11913,2611 11913,2606 L 11913,2606 11913,2523 11913,2523 C 11913,2518 11914,2513 11917,2509 11919,2505 11923,2501 11927,2499 11931,2496 11936,2495 11941,2495 L 12108,2495 12108,2495 C 12113,2495 12118,2496 12122,2499 12126,2501 12130,2505 12132,2509 12135,2513 12136,2518 12136,2523 L 12135,2607 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id278">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11913" y="2294" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12135,2407 L 12135,2407 C 12135,2412 12134,2417 12131,2421 12129,2425 12125,2429 12121,2431 12117,2434 12112,2435 12107,2435 L 11941,2434 11941,2434 C 11936,2434 11931,2433 11927,2430 11923,2428 11919,2424 11917,2420 11914,2416 11913,2411 11913,2406 L 11913,2406 11913,2323 11913,2323 C 11913,2318 11914,2313 11917,2309 11919,2305 11923,2301 11927,2299 11931,2296 11936,2295 11941,2295 L 12108,2295 12108,2295 C 12113,2295 12118,2296 12122,2299 12126,2301 12130,2305 12132,2309 12135,2313 12136,2318 12136,2323 L 12135,2407 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id279">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12211" y="2699" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12433,2811 L 12433,2811 C 12433,2816 12432,2821 12429,2825 12427,2829 12423,2833 12419,2835 12415,2838 12410,2839 12405,2839 L 12239,2838 12239,2838 C 12234,2838 12229,2837 12225,2834 12221,2832 12217,2828 12215,2824 12212,2820 12211,2815 12211,2810 L 12211,2810 12211,2727 12211,2727 C 12211,2722 12212,2717 12215,2713 12217,2709 12221,2705 12225,2703 12229,2700 12234,2699 12239,2699 L 12406,2699 12406,2699 C 12411,2699 12416,2700 12420,2703 12424,2705 12428,2709 12430,2713 12433,2717 12434,2722 12434,2727 L 12433,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id280">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12213" y="2496" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12435,2608 L 12435,2608 C 12435,2613 12434,2618 12431,2622 12429,2626 12425,2630 12421,2632 12417,2635 12412,2636 12407,2636 L 12241,2635 12241,2635 C 12236,2635 12231,2634 12227,2631 12223,2629 12219,2625 12217,2621 12214,2617 12213,2612 12213,2607 L 12213,2607 12213,2524 12213,2524 C 12213,2519 12214,2514 12217,2510 12219,2506 12223,2502 12227,2500 12231,2497 12236,2496 12241,2496 L 12408,2496 12408,2496 C 12413,2496 12418,2497 12422,2500 12426,2502 12430,2506 12432,2510 12435,2514 12436,2519 12436,2524 L 12435,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id281">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12213" y="2296" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12435,2408 L 12435,2408 C 12435,2413 12434,2418 12431,2422 12429,2426 12425,2430 12421,2432 12417,2435 12412,2436 12407,2436 L 12241,2435 12241,2435 C 12236,2435 12231,2434 12227,2431 12223,2429 12219,2425 12217,2421 12214,2417 12213,2412 12213,2407 L 12213,2407 12213,2324 12213,2324 C 12213,2319 12214,2314 12217,2310 12219,2306 12223,2302 12227,2300 12231,2297 12236,2296 12241,2296 L 12408,2296 12408,2296 C 12413,2296 12418,2297 12422,2300 12426,2302 12430,2306 12432,2310 12435,2314 12436,2319 12436,2324 L 12435,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id282">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12512" y="2698" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12734,2811 L 12734,2811 C 12734,2816 12733,2821 12730,2825 12728,2829 12724,2833 12720,2835 12716,2838 12711,2839 12706,2839 L 12540,2838 12540,2838 C 12535,2838 12530,2837 12526,2834 12522,2832 12518,2828 12516,2824 12513,2820 12512,2815 12512,2810 L 12512,2810 12512,2727 12512,2727 C 12512,2722 12513,2717 12516,2713 12518,2709 12522,2705 12526,2703 12530,2700 12535,2699 12540,2699 L 12707,2699 12707,2699 C 12712,2699 12717,2700 12721,2703 12725,2705 12729,2709 12731,2713 12734,2717 12735,2722 12735,2727 L 12734,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id283">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12514" y="2496" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12736,2608 L 12736,2608 C 12736,2613 12735,2618 12732,2622 12730,2626 12726,2630 12722,2632 12718,2635 12713,2636 12708,2636 L 12542,2635 12542,2635 C 12537,2635 12532,2634 12528,2631 12524,2629 12520,2625 12518,2621 12515,2617 12514,2612 12514,2607 L 12514,2607 12514,2524 12514,2524 C 12514,2519 12515,2514 12518,2510 12520,2506 12524,2502 12528,2500 12532,2497 12537,2496 12542,2496 L 12709,2496 12709,2496 C 12714,2496 12719,2497 12723,2500 12727,2502 12731,2506 12733,2510 12736,2514 12737,2519 12737,2524 L 12736,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id284">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12514" y="2295" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12736,2408 L 12736,2408 C 12736,2413 12735,2418 12732,2422 12730,2426 12726,2430 12722,2432 12718,2435 12713,2436 12708,2436 L 12542,2435 12542,2435 C 12537,2435 12532,2434 12528,2431 12524,2429 12520,2425 12518,2421 12515,2417 12514,2412 12514,2407 L 12514,2407 12514,2324 12514,2324 C 12514,2319 12515,2314 12518,2310 12520,2306 12524,2302 12528,2300 12532,2297 12537,2296 12542,2296 L 12709,2296 12709,2296 C 12714,2296 12719,2297 12723,2300 12727,2302 12731,2306 12733,2310 12736,2314 12737,2319 12737,2324 L 12736,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id285">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12812" y="2700" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 13034,2812 L 13034,2812 C 13034,2817 13033,2822 13030,2826 13028,2830 13024,2834 13020,2836 13016,2839 13011,2840 13006,2840 L 12840,2839 12840,2839 C 12835,2839 12830,2838 12826,2835 12822,2833 12818,2829 12816,2825 12813,2821 12812,2816 12812,2811 L 12812,2811 12812,2728 12812,2728 C 12812,2723 12813,2718 12816,2714 12818,2710 12822,2706 12826,2704 12830,2701 12835,2700 12840,2700 L 13007,2700 13007,2700 C 13012,2700 13017,2701 13021,2704 13025,2706 13029,2710 13031,2714 13034,2718 13035,2723 13035,2728 L 13034,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id286">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12814" y="2497" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 13036,2609 L 13036,2609 C 13036,2614 13035,2619 13032,2623 13030,2627 13026,2631 13022,2633 13018,2636 13013,2637 13008,2637 L 12842,2636 12842,2636 C 12837,2636 12832,2635 12828,2632 12824,2630 12820,2626 12818,2622 12815,2618 12814,2613 12814,2608 L 12814,2608 12814,2525 12814,2525 C 12814,2520 12815,2515 12818,2511 12820,2507 12824,2503 12828,2501 12832,2498 12837,2497 12842,2497 L 13009,2497 13009,2497 C 13014,2497 13019,2498 13023,2501 13027,2503 13031,2507 13033,2511 13036,2515 13037,2520 13037,2525 L 13036,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id287">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12814" y="2297" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 13036,2409 L 13036,2409 C 13036,2414 13035,2419 13032,2423 13030,2427 13026,2431 13022,2433 13018,2436 13013,2437 13008,2437 L 12842,2436 12842,2436 C 12837,2436 12832,2435 12828,2432 12824,2430 12820,2426 12818,2422 12815,2418 12814,2413 12814,2408 L 12814,2408 12814,2325 12814,2325 C 12814,2320 12815,2315 12818,2311 12820,2307 12824,2303 12828,2301 12832,2298 12837,2297 12842,2297 L 13009,2297 13009,2297 C 13014,2297 13019,2298 13023,2301 13027,2303 13031,2307 13033,2311 13036,2315 13037,2320 13037,2325 L 13036,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id288">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10611" y="2698" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10833,2810 L 10833,2810 C 10833,2815 10832,2820 10829,2824 10827,2828 10823,2832 10819,2834 10815,2837 10810,2838 10805,2838 L 10639,2837 10639,2837 C 10634,2837 10629,2836 10625,2833 10621,2831 10617,2827 10615,2823 10612,2819 10611,2814 10611,2809 L 10611,2809 10611,2726 10611,2726 C 10611,2721 10612,2716 10615,2712 10617,2708 10621,2704 10625,2702 10629,2699 10634,2698 10639,2698 L 10806,2698 10806,2698 C 10811,2698 10816,2699 10820,2702 10824,2704 10828,2708 10830,2712 10833,2716 10834,2721 10834,2726 L 10833,2810 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id289">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10613" y="2495" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10835,2607 L 10835,2607 C 10835,2612 10834,2617 10831,2621 10829,2625 10825,2629 10821,2631 10817,2634 10812,2635 10807,2635 L 10641,2634 10641,2634 C 10636,2634 10631,2633 10627,2630 10623,2628 10619,2624 10617,2620 10614,2616 10613,2611 10613,2606 L 10613,2606 10613,2523 10613,2523 C 10613,2518 10614,2513 10617,2509 10619,2505 10623,2501 10627,2499 10631,2496 10636,2495 10641,2495 L 10808,2495 10808,2495 C 10813,2495 10818,2496 10822,2499 10826,2501 10830,2505 10832,2509 10835,2513 10836,2518 10836,2523 L 10835,2607 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id290">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10613" y="2295" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10835,2407 L 10835,2407 C 10835,2412 10834,2417 10831,2421 10829,2425 10825,2429 10821,2431 10817,2434 10812,2435 10807,2435 L 10641,2434 10641,2434 C 10636,2434 10631,2433 10627,2430 10623,2428 10619,2424 10617,2420 10614,2416 10613,2411 10613,2406 L 10613,2406 10613,2323 10613,2323 C 10613,2318 10614,2313 10617,2309 10619,2305 10623,2301 10627,2299 10631,2296 10636,2295 10641,2295 L 10808,2295 10808,2295 C 10813,2295 10818,2296 10822,2299 10826,2301 10830,2305 10832,2309 10835,2313 10836,2318 10836,2323 L 10835,2407 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id291">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10911" y="2698" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11133,2811 L 11133,2811 C 11133,2816 11132,2821 11129,2825 11127,2829 11123,2833 11119,2835 11115,2838 11110,2839 11105,2839 L 10939,2838 10939,2838 C 10934,2838 10929,2837 10925,2834 10921,2832 10917,2828 10915,2824 10912,2820 10911,2815 10911,2810 L 10911,2810 10911,2727 10911,2727 C 10911,2722 10912,2717 10915,2713 10917,2709 10921,2705 10925,2703 10929,2700 10934,2699 10939,2699 L 11106,2699 11106,2699 C 11111,2699 11116,2700 11120,2703 11124,2705 11128,2709 11130,2713 11133,2717 11134,2722 11134,2727 L 11133,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id292">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10913" y="2495" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11135,2608 L 11135,2608 C 11135,2613 11134,2618 11131,2622 11129,2626 11125,2630 11121,2632 11117,2635 11112,2636 11107,2636 L 10941,2635 10941,2635 C 10936,2635 10931,2634 10927,2631 10923,2629 10919,2625 10917,2621 10914,2617 10913,2612 10913,2607 L 10913,2607 10913,2524 10913,2524 C 10913,2519 10914,2514 10917,2510 10919,2506 10923,2502 10927,2500 10931,2497 10936,2496 10941,2496 L 11108,2496 11108,2496 C 11113,2496 11118,2497 11122,2500 11126,2502 11130,2506 11132,2510 11135,2514 11136,2519 11136,2524 L 11135,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id293">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10913" y="2295" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11135,2408 L 11135,2408 C 11135,2413 11134,2418 11131,2422 11129,2426 11125,2430 11121,2432 11117,2435 11112,2436 11107,2436 L 10941,2435 10941,2435 C 10936,2435 10931,2434 10927,2431 10923,2429 10919,2425 10917,2421 10914,2417 10913,2412 10913,2407 L 10913,2407 10913,2324 10913,2324 C 10913,2319 10914,2314 10917,2310 10919,2306 10923,2302 10927,2300 10931,2297 10936,2296 10941,2296 L 11108,2296 11108,2296 C 11113,2296 11118,2297 11122,2300 11126,2302 11130,2306 11132,2310 11135,2314 11136,2319 11136,2324 L 11135,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id294">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11212" y="2699" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11434,2811 L 11434,2811 C 11434,2816 11433,2821 11430,2825 11428,2829 11424,2833 11420,2835 11416,2838 11411,2839 11406,2839 L 11240,2838 11240,2838 C 11235,2838 11230,2837 11226,2834 11222,2832 11218,2828 11216,2824 11213,2820 11212,2815 11212,2810 L 11212,2810 11212,2727 11212,2727 C 11212,2722 11213,2717 11216,2713 11218,2709 11222,2705 11226,2703 11230,2700 11235,2699 11240,2699 L 11407,2699 11407,2699 C 11412,2699 11417,2700 11421,2703 11425,2705 11429,2709 11431,2713 11434,2717 11435,2722 11435,2727 L 11434,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id295">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11214" y="2496" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11436,2608 L 11436,2608 C 11436,2613 11435,2618 11432,2622 11430,2626 11426,2630 11422,2632 11418,2635 11413,2636 11408,2636 L 11242,2635 11242,2635 C 11237,2635 11232,2634 11228,2631 11224,2629 11220,2625 11218,2621 11215,2617 11214,2612 11214,2607 L 11214,2607 11214,2524 11214,2524 C 11214,2519 11215,2514 11218,2510 11220,2506 11224,2502 11228,2500 11232,2497 11237,2496 11242,2496 L 11409,2496 11409,2496 C 11414,2496 11419,2497 11423,2500 11427,2502 11431,2506 11433,2510 11436,2514 11437,2519 11437,2524 L 11436,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id296">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11214" y="2296" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11436,2408 L 11436,2408 C 11436,2413 11435,2418 11432,2422 11430,2426 11426,2430 11422,2432 11418,2435 11413,2436 11408,2436 L 11242,2435 11242,2435 C 11237,2435 11232,2434 11228,2431 11224,2429 11220,2425 11218,2421 11215,2417 11214,2412 11214,2407 L 11214,2407 11214,2324 11214,2324 C 11214,2319 11215,2314 11218,2310 11220,2306 11224,2302 11228,2300 11232,2297 11237,2296 11242,2296 L 11409,2296 11409,2296 C 11414,2296 11419,2297 11423,2300 11427,2302 11431,2306 11433,2310 11436,2314 11437,2319 11437,2324 L 11436,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id297">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11512" y="2699" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11734,2812 L 11734,2812 C 11734,2817 11733,2822 11730,2826 11728,2830 11724,2834 11720,2836 11716,2839 11711,2840 11706,2840 L 11540,2839 11540,2839 C 11535,2839 11530,2838 11526,2835 11522,2833 11518,2829 11516,2825 11513,2821 11512,2816 11512,2811 L 11512,2811 11512,2728 11512,2728 C 11512,2723 11513,2718 11516,2714 11518,2710 11522,2706 11526,2704 11530,2701 11535,2700 11540,2700 L 11707,2700 11707,2700 C 11712,2700 11717,2701 11721,2704 11725,2706 11729,2710 11731,2714 11734,2718 11735,2723 11735,2728 L 11734,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id298">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11514" y="2496" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11736,2609 L 11736,2609 C 11736,2614 11735,2619 11732,2623 11730,2627 11726,2631 11722,2633 11718,2636 11713,2637 11708,2637 L 11542,2636 11542,2636 C 11537,2636 11532,2635 11528,2632 11524,2630 11520,2626 11518,2622 11515,2618 11514,2613 11514,2608 L 11514,2608 11514,2525 11514,2525 C 11514,2520 11515,2515 11518,2511 11520,2507 11524,2503 11528,2501 11532,2498 11537,2497 11542,2497 L 11709,2497 11709,2497 C 11714,2497 11719,2498 11723,2501 11727,2503 11731,2507 11733,2511 11736,2515 11737,2520 11737,2525 L 11736,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id299">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11514" y="2296" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11736,2409 L 11736,2409 C 11736,2414 11735,2419 11732,2423 11730,2427 11726,2431 11722,2433 11718,2436 11713,2437 11708,2437 L 11542,2436 11542,2436 C 11537,2436 11532,2435 11528,2432 11524,2430 11520,2426 11518,2422 11515,2418 11514,2413 11514,2408 L 11514,2408 11514,2325 11514,2325 C 11514,2320 11515,2315 11518,2311 11520,2307 11524,2303 11528,2301 11532,2298 11537,2297 11542,2297 L 11709,2297 11709,2297 C 11714,2297 11719,2298 11723,2301 11727,2303 11731,2307 11733,2311 11736,2315 11737,2320 11737,2325 L 11736,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id300">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7011" y="2698" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7233,2811 L 7233,2811 C 7233,2816 7232,2821 7229,2825 7227,2829 7223,2833 7219,2835 7215,2838 7210,2839 7205,2839 L 7039,2838 7039,2838 C 7034,2838 7029,2837 7025,2834 7021,2832 7017,2828 7015,2824 7012,2820 7011,2815 7011,2810 L 7011,2810 7011,2727 7011,2727 C 7011,2722 7012,2717 7015,2713 7017,2709 7021,2705 7025,2703 7029,2700 7034,2699 7039,2699 L 7206,2699 7206,2699 C 7211,2699 7216,2700 7220,2703 7224,2705 7228,2709 7230,2713 7233,2717 7234,2722 7234,2727 L 7233,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id301">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7013" y="2495" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7235,2608 L 7235,2608 C 7235,2613 7234,2618 7231,2622 7229,2626 7225,2630 7221,2632 7217,2635 7212,2636 7207,2636 L 7041,2635 7041,2635 C 7036,2635 7031,2634 7027,2631 7023,2629 7019,2625 7017,2621 7014,2617 7013,2612 7013,2607 L 7013,2607 7013,2524 7013,2524 C 7013,2519 7014,2514 7017,2510 7019,2506 7023,2502 7027,2500 7031,2497 7036,2496 7041,2496 L 7208,2496 7208,2496 C 7213,2496 7218,2497 7222,2500 7226,2502 7230,2506 7232,2510 7235,2514 7236,2519 7236,2524 L 7235,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id302">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7012" y="2295" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7235,2408 L 7235,2408 C 7235,2413 7234,2418 7231,2422 7229,2426 7225,2430 7221,2432 7217,2435 7212,2436 7207,2436 L 7041,2435 7041,2435 C 7036,2435 7031,2434 7027,2431 7023,2429 7019,2425 7017,2421 7014,2417 7013,2412 7013,2407 L 7013,2407 7013,2324 7013,2324 C 7013,2319 7014,2314 7017,2310 7019,2306 7023,2302 7027,2300 7031,2297 7036,2296 7041,2296 L 7208,2296 7208,2296 C 7213,2296 7218,2297 7222,2300 7226,2302 7230,2306 7232,2310 7235,2314 7236,2319 7236,2324 L 7235,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id303">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7311" y="2700" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7533,2812 L 7533,2812 C 7533,2817 7532,2822 7529,2826 7527,2830 7523,2834 7519,2836 7515,2839 7510,2840 7505,2840 L 7339,2839 7339,2839 C 7334,2839 7329,2838 7325,2835 7321,2833 7317,2829 7315,2825 7312,2821 7311,2816 7311,2811 L 7311,2811 7311,2728 7311,2728 C 7311,2723 7312,2718 7315,2714 7317,2710 7321,2706 7325,2704 7329,2701 7334,2700 7339,2700 L 7506,2700 7506,2700 C 7511,2700 7516,2701 7520,2704 7524,2706 7528,2710 7530,2714 7533,2718 7534,2723 7534,2728 L 7533,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id304">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7313" y="2497" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7535,2609 L 7535,2609 C 7535,2614 7534,2619 7531,2623 7529,2627 7525,2631 7521,2633 7517,2636 7512,2637 7507,2637 L 7341,2636 7341,2636 C 7336,2636 7331,2635 7327,2632 7323,2630 7319,2626 7317,2622 7314,2618 7313,2613 7313,2608 L 7313,2608 7313,2525 7313,2525 C 7313,2520 7314,2515 7317,2511 7319,2507 7323,2503 7327,2501 7331,2498 7336,2497 7341,2497 L 7508,2497 7508,2497 C 7513,2497 7518,2498 7522,2501 7526,2503 7530,2507 7532,2511 7535,2515 7536,2520 7536,2525 L 7535,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id305">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7312" y="2297" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7535,2409 L 7535,2409 C 7535,2414 7534,2419 7531,2423 7529,2427 7525,2431 7521,2433 7517,2436 7512,2437 7507,2437 L 7341,2436 7341,2436 C 7336,2436 7331,2435 7327,2432 7323,2430 7319,2426 7317,2422 7314,2418 7313,2413 7313,2408 L 7313,2408 7313,2325 7313,2325 C 7313,2320 7314,2315 7317,2311 7319,2307 7323,2303 7327,2301 7331,2298 7336,2297 7341,2297 L 7508,2297 7508,2297 C 7513,2297 7518,2298 7522,2301 7526,2303 7530,2307 7532,2311 7535,2315 7536,2320 7536,2325 L 7535,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id306">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7612" y="2700" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7834,2812 L 7834,2812 C 7834,2817 7833,2822 7830,2826 7828,2830 7824,2834 7820,2836 7816,2839 7811,2840 7806,2840 L 7640,2839 7640,2839 C 7635,2839 7630,2838 7626,2835 7622,2833 7618,2829 7616,2825 7613,2821 7612,2816 7612,2811 L 7612,2811 7612,2728 7612,2728 C 7612,2723 7613,2718 7616,2714 7618,2710 7622,2706 7626,2704 7630,2701 7635,2700 7640,2700 L 7807,2700 7807,2700 C 7812,2700 7817,2701 7821,2704 7825,2706 7829,2710 7831,2714 7834,2718 7835,2723 7835,2728 L 7834,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id307">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7614" y="2497" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7836,2609 L 7836,2609 C 7836,2614 7835,2619 7832,2623 7830,2627 7826,2631 7822,2633 7818,2636 7813,2637 7808,2637 L 7642,2636 7642,2636 C 7637,2636 7632,2635 7628,2632 7624,2630 7620,2626 7618,2622 7615,2618 7614,2613 7614,2608 L 7614,2608 7614,2525 7614,2525 C 7614,2520 7615,2515 7618,2511 7620,2507 7624,2503 7628,2501 7632,2498 7637,2497 7642,2497 L 7809,2497 7809,2497 C 7814,2497 7819,2498 7823,2501 7827,2503 7831,2507 7833,2511 7836,2515 7837,2520 7837,2525 L 7836,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id308">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7613" y="2297" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7836,2409 L 7836,2409 C 7836,2414 7835,2419 7832,2423 7830,2427 7826,2431 7822,2433 7818,2436 7813,2437 7808,2437 L 7642,2436 7642,2436 C 7637,2436 7632,2435 7628,2432 7624,2430 7620,2426 7618,2422 7615,2418 7614,2413 7614,2408 L 7614,2408 7614,2325 7614,2325 C 7614,2320 7615,2315 7618,2311 7620,2307 7624,2303 7628,2301 7632,2298 7637,2297 7642,2297 L 7809,2297 7809,2297 C 7814,2297 7819,2298 7823,2301 7827,2303 7831,2307 7833,2311 7836,2315 7837,2320 7837,2325 L 7836,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id309">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7912" y="2700" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8134,2813 L 8134,2813 C 8134,2818 8133,2823 8130,2827 8128,2831 8124,2835 8120,2837 8116,2840 8111,2841 8106,2841 L 7940,2840 7940,2840 C 7935,2840 7930,2839 7926,2836 7922,2834 7918,2830 7916,2826 7913,2822 7912,2817 7912,2812 L 7912,2812 7912,2729 7912,2729 C 7912,2724 7913,2719 7916,2715 7918,2711 7922,2707 7926,2705 7930,2702 7935,2701 7940,2701 L 8107,2701 8107,2701 C 8112,2701 8117,2702 8121,2705 8125,2707 8129,2711 8131,2715 8134,2719 8135,2724 8135,2729 L 8134,2813 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id310">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7914" y="2498" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8136,2610 L 8136,2610 C 8136,2615 8135,2620 8132,2624 8130,2628 8126,2632 8122,2634 8118,2637 8113,2638 8108,2638 L 7942,2637 7942,2637 C 7937,2637 7932,2636 7928,2633 7924,2631 7920,2627 7918,2623 7915,2619 7914,2614 7914,2609 L 7914,2609 7914,2526 7914,2526 C 7914,2521 7915,2516 7918,2512 7920,2508 7924,2504 7928,2502 7932,2499 7937,2498 7942,2498 L 8109,2498 8109,2498 C 8114,2498 8119,2499 8123,2502 8127,2504 8131,2508 8133,2512 8136,2516 8137,2521 8137,2526 L 8136,2610 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id311">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7913" y="2298" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8136,2410 L 8136,2410 C 8136,2415 8135,2420 8132,2424 8130,2428 8126,2432 8122,2434 8118,2437 8113,2438 8108,2438 L 7942,2437 7942,2437 C 7937,2437 7932,2436 7928,2433 7924,2431 7920,2427 7918,2423 7915,2419 7914,2414 7914,2409 L 7914,2409 7914,2326 7914,2326 C 7914,2321 7915,2316 7918,2312 7920,2308 7924,2304 7928,2302 7932,2299 7937,2298 7942,2298 L 8109,2298 8109,2298 C 8114,2298 8119,2299 8123,2302 8127,2304 8131,2308 8133,2312 8136,2316 8137,2321 8137,2326 L 8136,2410 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id312">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5711" y="2699" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5933,2811 L 5933,2811 C 5933,2816 5932,2821 5929,2825 5927,2829 5923,2833 5919,2835 5915,2838 5910,2839 5905,2839 L 5739,2838 5739,2838 C 5734,2838 5729,2837 5725,2834 5721,2832 5717,2828 5715,2824 5712,2820 5711,2815 5711,2810 L 5711,2810 5711,2727 5711,2727 C 5711,2722 5712,2717 5715,2713 5717,2709 5721,2705 5725,2703 5729,2700 5734,2699 5739,2699 L 5906,2699 5906,2699 C 5911,2699 5916,2700 5920,2703 5924,2705 5928,2709 5930,2713 5933,2717 5934,2722 5934,2727 L 5933,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id313">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5713" y="2496" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5935,2608 L 5935,2608 C 5935,2613 5934,2618 5931,2622 5929,2626 5925,2630 5921,2632 5917,2635 5912,2636 5907,2636 L 5741,2635 5741,2635 C 5736,2635 5731,2634 5727,2631 5723,2629 5719,2625 5717,2621 5714,2617 5713,2612 5713,2607 L 5713,2607 5713,2524 5713,2524 C 5713,2519 5714,2514 5717,2510 5719,2506 5723,2502 5727,2500 5731,2497 5736,2496 5741,2496 L 5908,2496 5908,2496 C 5913,2496 5918,2497 5922,2500 5926,2502 5930,2506 5932,2510 5935,2514 5936,2519 5936,2524 L 5935,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id314">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5712" y="2296" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5935,2408 L 5935,2408 C 5935,2413 5934,2418 5931,2422 5929,2426 5925,2430 5921,2432 5917,2435 5912,2436 5907,2436 L 5741,2435 5741,2435 C 5736,2435 5731,2434 5727,2431 5723,2429 5719,2425 5717,2421 5714,2417 5713,2412 5713,2407 L 5713,2407 5713,2324 5713,2324 C 5713,2319 5714,2314 5717,2310 5719,2306 5723,2302 5727,2300 5731,2297 5736,2296 5741,2296 L 5908,2296 5908,2296 C 5913,2296 5918,2297 5922,2300 5926,2302 5930,2306 5932,2310 5935,2314 5936,2319 5936,2324 L 5935,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id315">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6011" y="2700" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6233,2812 L 6233,2812 C 6233,2817 6232,2822 6229,2826 6227,2830 6223,2834 6219,2836 6215,2839 6210,2840 6205,2840 L 6039,2839 6039,2839 C 6034,2839 6029,2838 6025,2835 6021,2833 6017,2829 6015,2825 6012,2821 6011,2816 6011,2811 L 6011,2811 6011,2728 6011,2728 C 6011,2723 6012,2718 6015,2714 6017,2710 6021,2706 6025,2704 6029,2701 6034,2700 6039,2700 L 6206,2700 6206,2700 C 6211,2700 6216,2701 6220,2704 6224,2706 6228,2710 6230,2714 6233,2718 6234,2723 6234,2728 L 6233,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id316">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6013" y="2497" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6235,2609 L 6235,2609 C 6235,2614 6234,2619 6231,2623 6229,2627 6225,2631 6221,2633 6217,2636 6212,2637 6207,2637 L 6041,2636 6041,2636 C 6036,2636 6031,2635 6027,2632 6023,2630 6019,2626 6017,2622 6014,2618 6013,2613 6013,2608 L 6013,2608 6013,2525 6013,2525 C 6013,2520 6014,2515 6017,2511 6019,2507 6023,2503 6027,2501 6031,2498 6036,2497 6041,2497 L 6208,2497 6208,2497 C 6213,2497 6218,2498 6222,2501 6226,2503 6230,2507 6232,2511 6235,2515 6236,2520 6236,2525 L 6235,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id317">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6012" y="2297" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6235,2409 L 6235,2409 C 6235,2414 6234,2419 6231,2423 6229,2427 6225,2431 6221,2433 6217,2436 6212,2437 6207,2437 L 6041,2436 6041,2436 C 6036,2436 6031,2435 6027,2432 6023,2430 6019,2426 6017,2422 6014,2418 6013,2413 6013,2408 L 6013,2408 6013,2325 6013,2325 C 6013,2320 6014,2315 6017,2311 6019,2307 6023,2303 6027,2301 6031,2298 6036,2297 6041,2297 L 6208,2297 6208,2297 C 6213,2297 6218,2298 6222,2301 6226,2303 6230,2307 6232,2311 6235,2315 6236,2320 6236,2325 L 6235,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id318">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6312" y="2699" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6534,2812 L 6534,2812 C 6534,2817 6533,2822 6530,2826 6528,2830 6524,2834 6520,2836 6516,2839 6511,2840 6506,2840 L 6340,2839 6340,2839 C 6335,2839 6330,2838 6326,2835 6322,2833 6318,2829 6316,2825 6313,2821 6312,2816 6312,2811 L 6312,2811 6312,2728 6312,2728 C 6312,2723 6313,2718 6316,2714 6318,2710 6322,2706 6326,2704 6330,2701 6335,2700 6340,2700 L 6507,2700 6507,2700 C 6512,2700 6517,2701 6521,2704 6525,2706 6529,2710 6531,2714 6534,2718 6535,2723 6535,2728 L 6534,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id319">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6314" y="2497" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6536,2609 L 6536,2609 C 6536,2614 6535,2619 6532,2623 6530,2627 6526,2631 6522,2633 6518,2636 6513,2637 6508,2637 L 6342,2636 6342,2636 C 6337,2636 6332,2635 6328,2632 6324,2630 6320,2626 6318,2622 6315,2618 6314,2613 6314,2608 L 6314,2608 6314,2525 6314,2525 C 6314,2520 6315,2515 6318,2511 6320,2507 6324,2503 6328,2501 6332,2498 6337,2497 6342,2497 L 6509,2497 6509,2497 C 6514,2497 6519,2498 6523,2501 6527,2503 6531,2507 6533,2511 6536,2515 6537,2520 6537,2525 L 6536,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id320">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6313" y="2297" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6536,2409 L 6536,2409 C 6536,2414 6535,2419 6532,2423 6530,2427 6526,2431 6522,2433 6518,2436 6513,2437 6508,2437 L 6342,2436 6342,2436 C 6337,2436 6332,2435 6328,2432 6324,2430 6320,2426 6318,2422 6315,2418 6314,2413 6314,2408 L 6314,2408 6314,2325 6314,2325 C 6314,2320 6315,2315 6318,2311 6320,2307 6324,2303 6328,2301 6332,2298 6337,2297 6342,2297 L 6509,2297 6509,2297 C 6514,2297 6519,2298 6523,2301 6527,2303 6531,2307 6533,2311 6536,2315 6537,2320 6537,2325 L 6536,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id321">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6612" y="2701" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6834,2813 L 6834,2813 C 6834,2818 6833,2823 6830,2827 6828,2831 6824,2835 6820,2837 6816,2840 6811,2841 6806,2841 L 6640,2840 6640,2840 C 6635,2840 6630,2839 6626,2836 6622,2834 6618,2830 6616,2826 6613,2822 6612,2817 6612,2812 L 6612,2812 6612,2729 6612,2729 C 6612,2724 6613,2719 6616,2715 6618,2711 6622,2707 6626,2705 6630,2702 6635,2701 6640,2701 L 6807,2701 6807,2701 C 6812,2701 6817,2702 6821,2705 6825,2707 6829,2711 6831,2715 6834,2719 6835,2724 6835,2729 L 6834,2813 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id322">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6614" y="2498" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6836,2610 L 6836,2610 C 6836,2615 6835,2620 6832,2624 6830,2628 6826,2632 6822,2634 6818,2637 6813,2638 6808,2638 L 6642,2637 6642,2637 C 6637,2637 6632,2636 6628,2633 6624,2631 6620,2627 6618,2623 6615,2619 6614,2614 6614,2609 L 6614,2609 6614,2526 6614,2526 C 6614,2521 6615,2516 6618,2512 6620,2508 6624,2504 6628,2502 6632,2499 6637,2498 6642,2498 L 6809,2498 6809,2498 C 6814,2498 6819,2499 6823,2502 6827,2504 6831,2508 6833,2512 6836,2516 6837,2521 6837,2526 L 6836,2610 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id323">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6613" y="2298" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6836,2410 L 6836,2410 C 6836,2415 6835,2420 6832,2424 6830,2428 6826,2432 6822,2434 6818,2437 6813,2438 6808,2438 L 6642,2437 6642,2437 C 6637,2437 6632,2436 6628,2433 6624,2431 6620,2427 6618,2423 6615,2419 6614,2414 6614,2409 L 6614,2409 6614,2326 6614,2326 C 6614,2321 6615,2316 6618,2312 6620,2308 6624,2304 6628,2302 6632,2299 6637,2298 6642,2298 L 6809,2298 6809,2298 C 6814,2298 6819,2299 6823,2302 6827,2304 6831,2308 6833,2312 6836,2316 6837,2321 6837,2326 L 6836,2410 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id324">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3711" y="2698" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3933,2811 L 3933,2811 C 3933,2816 3932,2821 3929,2825 3927,2829 3923,2833 3919,2835 3915,2838 3910,2839 3905,2839 L 3739,2838 3739,2838 C 3734,2838 3729,2837 3725,2834 3721,2832 3717,2828 3715,2824 3712,2820 3711,2815 3711,2810 L 3711,2810 3711,2727 3711,2727 C 3711,2722 3712,2717 3715,2713 3717,2709 3721,2705 3725,2703 3729,2700 3734,2699 3739,2699 L 3906,2699 3906,2699 C 3911,2699 3916,2700 3920,2703 3924,2705 3928,2709 3930,2713 3933,2717 3934,2722 3934,2727 L 3933,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id325">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3712" y="2495" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3935,2608 L 3935,2608 C 3935,2613 3934,2618 3931,2622 3929,2626 3925,2630 3921,2632 3917,2635 3912,2636 3907,2636 L 3741,2635 3741,2635 C 3736,2635 3731,2634 3727,2631 3723,2629 3719,2625 3717,2621 3714,2617 3713,2612 3713,2607 L 3713,2607 3713,2524 3713,2524 C 3713,2519 3714,2514 3717,2510 3719,2506 3723,2502 3727,2500 3731,2497 3736,2496 3741,2496 L 3908,2496 3908,2496 C 3913,2496 3918,2497 3922,2500 3926,2502 3930,2506 3932,2510 3935,2514 3936,2519 3936,2524 L 3935,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id326">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3712" y="2295" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3935,2408 L 3935,2408 C 3935,2413 3934,2418 3931,2422 3929,2426 3925,2430 3921,2432 3917,2435 3912,2436 3907,2436 L 3741,2435 3741,2435 C 3736,2435 3731,2434 3727,2431 3723,2429 3719,2425 3717,2421 3714,2417 3713,2412 3713,2407 L 3713,2407 3713,2324 3713,2324 C 3713,2319 3714,2314 3717,2310 3719,2306 3723,2302 3727,2300 3731,2297 3736,2296 3741,2296 L 3908,2296 3908,2296 C 3913,2296 3918,2297 3922,2300 3926,2302 3930,2306 3932,2310 3935,2314 3936,2319 3936,2324 L 3935,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id327">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4010" y="2700" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4233,2812 L 4233,2812 C 4233,2817 4232,2822 4229,2826 4227,2830 4223,2834 4219,2836 4215,2839 4210,2840 4205,2840 L 4039,2839 4039,2839 C 4034,2839 4029,2838 4025,2835 4021,2833 4017,2829 4015,2825 4012,2821 4011,2816 4011,2811 L 4011,2811 4011,2728 4011,2728 C 4011,2723 4012,2718 4015,2714 4017,2710 4021,2706 4025,2704 4029,2701 4034,2700 4039,2700 L 4206,2700 4206,2700 C 4211,2700 4216,2701 4220,2704 4224,2706 4228,2710 4230,2714 4233,2718 4234,2723 4234,2728 L 4233,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id328">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4013" y="2497" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4235,2609 L 4235,2609 C 4235,2614 4234,2619 4231,2623 4229,2627 4225,2631 4221,2633 4217,2636 4212,2637 4207,2637 L 4041,2636 4041,2636 C 4036,2636 4031,2635 4027,2632 4023,2630 4019,2626 4017,2622 4014,2618 4013,2613 4013,2608 L 4013,2608 4013,2525 4013,2525 C 4013,2520 4014,2515 4017,2511 4019,2507 4023,2503 4027,2501 4031,2498 4036,2497 4041,2497 L 4208,2497 4208,2497 C 4213,2497 4218,2498 4222,2501 4226,2503 4230,2507 4232,2511 4235,2515 4236,2520 4236,2525 L 4235,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id329">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4012" y="2297" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4235,2409 L 4235,2409 C 4235,2414 4234,2419 4231,2423 4229,2427 4225,2431 4221,2433 4217,2436 4212,2437 4207,2437 L 4041,2436 4041,2436 C 4036,2436 4031,2435 4027,2432 4023,2430 4019,2426 4017,2422 4014,2418 4013,2413 4013,2408 L 4013,2408 4013,2325 4013,2325 C 4013,2320 4014,2315 4017,2311 4019,2307 4023,2303 4027,2301 4031,2298 4036,2297 4041,2297 L 4208,2297 4208,2297 C 4213,2297 4218,2298 4222,2301 4226,2303 4230,2307 4232,2311 4235,2315 4236,2320 4236,2325 L 4235,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id330">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4312" y="2700" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4534,2812 L 4534,2812 C 4534,2817 4533,2822 4530,2826 4528,2830 4524,2834 4520,2836 4516,2839 4511,2840 4506,2840 L 4340,2839 4340,2839 C 4335,2839 4330,2838 4326,2835 4322,2833 4318,2829 4316,2825 4313,2821 4312,2816 4312,2811 L 4312,2811 4312,2728 4312,2728 C 4312,2723 4313,2718 4316,2714 4318,2710 4322,2706 4326,2704 4330,2701 4335,2700 4340,2700 L 4507,2700 4507,2700 C 4512,2700 4517,2701 4521,2704 4525,2706 4529,2710 4531,2714 4534,2718 4535,2723 4535,2728 L 4534,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id331">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4314" y="2497" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4536,2609 L 4536,2609 C 4536,2614 4535,2619 4532,2623 4530,2627 4526,2631 4522,2633 4518,2636 4513,2637 4508,2637 L 4342,2636 4342,2636 C 4337,2636 4332,2635 4328,2632 4324,2630 4320,2626 4318,2622 4315,2618 4314,2613 4314,2608 L 4314,2608 4314,2525 4314,2525 C 4314,2520 4315,2515 4318,2511 4320,2507 4324,2503 4328,2501 4332,2498 4337,2497 4342,2497 L 4509,2497 4509,2497 C 4514,2497 4519,2498 4523,2501 4527,2503 4531,2507 4533,2511 4536,2515 4537,2520 4537,2525 L 4536,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id332">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4313" y="2297" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4536,2409 L 4536,2409 C 4536,2414 4535,2419 4532,2423 4530,2427 4526,2431 4522,2433 4518,2436 4513,2437 4508,2437 L 4342,2436 4342,2436 C 4337,2436 4332,2435 4328,2432 4324,2430 4320,2426 4318,2422 4315,2418 4314,2413 4314,2408 L 4314,2408 4314,2325 4314,2325 C 4314,2320 4315,2315 4318,2311 4320,2307 4324,2303 4328,2301 4332,2298 4337,2297 4342,2297 L 4509,2297 4509,2297 C 4514,2297 4519,2298 4523,2301 4527,2303 4531,2307 4533,2311 4536,2315 4537,2320 4537,2325 L 4536,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id333">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4612" y="2700" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4834,2813 L 4834,2813 C 4834,2818 4833,2823 4830,2827 4828,2831 4824,2835 4820,2837 4816,2840 4811,2841 4806,2841 L 4640,2840 4640,2840 C 4635,2840 4630,2839 4626,2836 4622,2834 4618,2830 4616,2826 4613,2822 4612,2817 4612,2812 L 4612,2812 4612,2729 4612,2729 C 4612,2724 4613,2719 4616,2715 4618,2711 4622,2707 4626,2705 4630,2702 4635,2701 4640,2701 L 4807,2701 4807,2701 C 4812,2701 4817,2702 4821,2705 4825,2707 4829,2711 4831,2715 4834,2719 4835,2724 4835,2729 L 4834,2813 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id334">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4614" y="2497" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4836,2610 L 4836,2610 C 4836,2615 4835,2620 4832,2624 4830,2628 4826,2632 4822,2634 4818,2637 4813,2638 4808,2638 L 4642,2637 4642,2637 C 4637,2637 4632,2636 4628,2633 4624,2631 4620,2627 4618,2623 4615,2619 4614,2614 4614,2609 L 4614,2609 4614,2526 4614,2526 C 4614,2521 4615,2516 4618,2512 4620,2508 4624,2504 4628,2502 4632,2499 4637,2498 4642,2498 L 4809,2498 4809,2498 C 4814,2498 4819,2499 4823,2502 4827,2504 4831,2508 4833,2512 4836,2516 4837,2521 4837,2526 L 4836,2610 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id335">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4613" y="2298" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4836,2410 L 4836,2410 C 4836,2415 4835,2420 4832,2424 4830,2428 4826,2432 4822,2434 4818,2437 4813,2438 4808,2438 L 4642,2437 4642,2437 C 4637,2437 4632,2436 4628,2433 4624,2431 4620,2427 4618,2423 4615,2419 4614,2414 4614,2409 L 4614,2409 4614,2326 4614,2326 C 4614,2321 4615,2316 4618,2312 4620,2308 4624,2304 4628,2302 4632,2299 4637,2298 4642,2298 L 4809,2298 4809,2298 C 4814,2298 4819,2299 4823,2302 4827,2304 4831,2308 4833,2312 4836,2316 4837,2321 4837,2326 L 4836,2410 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id336">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2410" y="2699" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2633,2811 L 2633,2811 C 2633,2816 2632,2821 2629,2825 2627,2829 2623,2833 2619,2835 2615,2838 2610,2839 2605,2839 L 2439,2838 2439,2838 C 2434,2838 2429,2837 2425,2834 2421,2832 2417,2828 2415,2824 2412,2820 2411,2815 2411,2810 L 2411,2810 2411,2727 2411,2727 C 2411,2722 2412,2717 2415,2713 2417,2709 2421,2705 2425,2703 2429,2700 2434,2699 2439,2699 L 2606,2699 2606,2699 C 2611,2699 2616,2700 2620,2703 2624,2705 2628,2709 2630,2713 2633,2717 2634,2722 2634,2727 L 2633,2811 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id337">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2412" y="2496" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2635,2608 L 2635,2608 C 2635,2613 2634,2618 2631,2622 2629,2626 2625,2630 2621,2632 2617,2635 2612,2636 2607,2636 L 2441,2635 2441,2635 C 2436,2635 2431,2634 2427,2631 2423,2629 2419,2625 2417,2621 2414,2617 2413,2612 2413,2607 L 2413,2607 2413,2524 2413,2524 C 2413,2519 2414,2514 2417,2510 2419,2506 2423,2502 2427,2500 2431,2497 2436,2496 2441,2496 L 2608,2496 2608,2496 C 2613,2496 2618,2497 2622,2500 2626,2502 2630,2506 2632,2510 2635,2514 2636,2519 2636,2524 L 2635,2608 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id338">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2413" y="2296" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2635,2408 L 2635,2408 C 2635,2413 2634,2418 2631,2422 2629,2426 2625,2430 2621,2432 2617,2435 2612,2436 2607,2436 L 2441,2435 2441,2435 C 2436,2435 2431,2434 2427,2431 2423,2429 2419,2425 2417,2421 2414,2417 2413,2412 2413,2407 L 2413,2407 2413,2324 2413,2324 C 2413,2319 2414,2314 2417,2310 2419,2306 2423,2302 2427,2300 2431,2297 2436,2296 2441,2296 L 2608,2296 2608,2296 C 2613,2296 2618,2297 2622,2300 2626,2302 2630,2306 2632,2310 2635,2314 2636,2319 2636,2324 L 2635,2408 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id339">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2710" y="2700" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2933,2812 L 2933,2812 C 2933,2817 2932,2822 2929,2826 2927,2830 2923,2834 2919,2836 2915,2839 2910,2840 2905,2840 L 2739,2839 2739,2839 C 2734,2839 2729,2838 2725,2835 2721,2833 2717,2829 2715,2825 2712,2821 2711,2816 2711,2811 L 2711,2811 2711,2728 2711,2728 C 2711,2723 2712,2718 2715,2714 2717,2710 2721,2706 2725,2704 2729,2701 2734,2700 2739,2700 L 2906,2700 2906,2700 C 2911,2700 2916,2701 2920,2704 2924,2706 2928,2710 2930,2714 2933,2718 2934,2723 2934,2728 L 2933,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id340">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2712" y="2497" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2935,2609 L 2935,2609 C 2935,2614 2934,2619 2931,2623 2929,2627 2925,2631 2921,2633 2917,2636 2912,2637 2907,2637 L 2741,2636 2741,2636 C 2736,2636 2731,2635 2727,2632 2723,2630 2719,2626 2717,2622 2714,2618 2713,2613 2713,2608 L 2713,2608 2713,2525 2713,2525 C 2713,2520 2714,2515 2717,2511 2719,2507 2723,2503 2727,2501 2731,2498 2736,2497 2741,2497 L 2908,2497 2908,2497 C 2913,2497 2918,2498 2922,2501 2926,2503 2930,2507 2932,2511 2935,2515 2936,2520 2936,2525 L 2935,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id341">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2713" y="2297" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 2935,2409 L 2935,2409 C 2935,2414 2934,2419 2931,2423 2929,2427 2925,2431 2921,2433 2917,2436 2912,2437 2907,2437 L 2741,2436 2741,2436 C 2736,2436 2731,2435 2727,2432 2723,2430 2719,2426 2717,2422 2714,2418 2713,2413 2713,2408 L 2713,2408 2713,2325 2713,2325 C 2713,2320 2714,2315 2717,2311 2719,2307 2723,2303 2727,2301 2731,2298 2736,2297 2741,2297 L 2908,2297 2908,2297 C 2913,2297 2918,2298 2922,2301 2926,2303 2930,2307 2932,2311 2935,2315 2936,2320 2936,2325 L 2935,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id342">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3012" y="2699" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3234,2812 L 3234,2812 C 3234,2817 3233,2822 3230,2826 3228,2830 3224,2834 3220,2836 3216,2839 3211,2840 3206,2840 L 3040,2839 3040,2839 C 3035,2839 3030,2838 3026,2835 3022,2833 3018,2829 3016,2825 3013,2821 3012,2816 3012,2811 L 3012,2811 3012,2728 3012,2728 C 3012,2723 3013,2718 3016,2714 3018,2710 3022,2706 3026,2704 3030,2701 3035,2700 3040,2700 L 3207,2700 3207,2700 C 3212,2700 3217,2701 3221,2704 3225,2706 3229,2710 3231,2714 3234,2718 3235,2723 3235,2728 L 3234,2812 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id343">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3013" y="2496" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3236,2609 L 3236,2609 C 3236,2614 3235,2619 3232,2623 3230,2627 3226,2631 3222,2633 3218,2636 3213,2637 3208,2637 L 3042,2636 3042,2636 C 3037,2636 3032,2635 3028,2632 3024,2630 3020,2626 3018,2622 3015,2618 3014,2613 3014,2608 L 3014,2608 3014,2525 3014,2525 C 3014,2520 3015,2515 3018,2511 3020,2507 3024,2503 3028,2501 3032,2498 3037,2497 3042,2497 L 3209,2497 3209,2497 C 3214,2497 3219,2498 3223,2501 3227,2503 3231,2507 3233,2511 3236,2515 3237,2520 3237,2525 L 3236,2609 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id344">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3014" y="2297" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3236,2409 L 3236,2409 C 3236,2414 3235,2419 3232,2423 3230,2427 3226,2431 3222,2433 3218,2436 3213,2437 3208,2437 L 3042,2436 3042,2436 C 3037,2436 3032,2435 3028,2432 3024,2430 3020,2426 3018,2422 3015,2418 3014,2413 3014,2408 L 3014,2408 3014,2325 3014,2325 C 3014,2320 3015,2315 3018,2311 3020,2307 3024,2303 3028,2301 3032,2298 3037,2297 3042,2297 L 3209,2297 3209,2297 C 3214,2297 3219,2298 3223,2301 3227,2303 3231,2307 3233,2311 3236,2315 3237,2320 3237,2325 L 3236,2409 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id345">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3311" y="2701" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3534,2813 L 3534,2813 C 3534,2818 3533,2823 3530,2827 3528,2831 3524,2835 3520,2837 3516,2840 3511,2841 3506,2841 L 3340,2840 3340,2840 C 3335,2840 3330,2839 3326,2836 3322,2834 3318,2830 3316,2826 3313,2822 3312,2817 3312,2812 L 3312,2812 3312,2729 3312,2729 C 3312,2724 3313,2719 3316,2715 3318,2711 3322,2707 3326,2705 3330,2702 3335,2701 3340,2701 L 3507,2701 3507,2701 C 3512,2701 3517,2702 3521,2705 3525,2707 3529,2711 3531,2715 3534,2719 3535,2724 3535,2729 L 3534,2813 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id346">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3313" y="2498" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3536,2610 L 3536,2610 C 3536,2615 3535,2620 3532,2624 3530,2628 3526,2632 3522,2634 3518,2637 3513,2638 3508,2638 L 3342,2637 3342,2637 C 3337,2637 3332,2636 3328,2633 3324,2631 3320,2627 3318,2623 3315,2619 3314,2614 3314,2609 L 3314,2609 3314,2526 3314,2526 C 3314,2521 3315,2516 3318,2512 3320,2508 3324,2504 3328,2502 3332,2499 3337,2498 3342,2498 L 3509,2498 3509,2498 C 3514,2498 3519,2499 3523,2502 3527,2504 3531,2508 3533,2512 3536,2516 3537,2521 3537,2526 L 3536,2610 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id347">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3314" y="2298" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3536,2410 L 3536,2410 C 3536,2415 3535,2420 3532,2424 3530,2428 3526,2432 3522,2434 3518,2437 3513,2438 3508,2438 L 3342,2437 3342,2437 C 3337,2437 3332,2436 3328,2433 3324,2431 3320,2427 3318,2423 3315,2419 3314,2414 3314,2409 L 3314,2409 3314,2326 3314,2326 C 3314,2321 3315,2316 3318,2312 3320,2308 3324,2304 3328,2302 3332,2299 3337,2298 3342,2298 L 3509,2298 3509,2298 C 3514,2298 3519,2299 3523,2302 3527,2304 3531,2308 3533,2312 3536,2316 3537,2321 3537,2326 L 3536,2410 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id348">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11011" y="12299" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11233,12411 L 11233,12411 C 11233,12416 11232,12421 11229,12425 11227,12429 11223,12433 11219,12435 11215,12438 11210,12439 11205,12439 L 11039,12438 11039,12438 C 11034,12438 11029,12437 11025,12434 11021,12432 11017,12428 11015,12424 11012,12420 11011,12415 11011,12410 L 11011,12410 11011,12327 11011,12327 C 11011,12322 11012,12317 11015,12313 11017,12309 11021,12305 11025,12303 11029,12300 11034,12299 11039,12299 L 11206,12299 11206,12299 C 11211,12299 11216,12300 11220,12303 11224,12305 11228,12309 11230,12313 11233,12317 11234,12322 11234,12327 L 11233,12411 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id349">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11013" y="12096" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11235,12208 L 11235,12208 C 11235,12213 11234,12218 11231,12222 11229,12226 11225,12230 11221,12232 11217,12235 11212,12236 11207,12236 L 11041,12235 11041,12235 C 11036,12235 11031,12234 11027,12231 11023,12229 11019,12225 11017,12221 11014,12217 11013,12212 11013,12207 L 11013,12207 11013,12124 11013,12124 C 11013,12119 11014,12114 11017,12110 11019,12106 11023,12102 11027,12100 11031,12097 11036,12096 11041,12096 L 11208,12096 11208,12096 C 11213,12096 11218,12097 11222,12100 11226,12102 11230,12106 11232,12110 11235,12114 11236,12119 11236,12124 L 11235,12208 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id350">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11013" y="11896" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11235,12008 L 11235,12008 C 11235,12013 11234,12018 11231,12022 11229,12026 11225,12030 11221,12032 11217,12035 11212,12036 11207,12036 L 11041,12035 11041,12035 C 11036,12035 11031,12034 11027,12031 11023,12029 11019,12025 11017,12021 11014,12017 11013,12012 11013,12007 L 11013,12007 11013,11924 11013,11924 C 11013,11919 11014,11914 11017,11910 11019,11906 11023,11902 11027,11900 11031,11897 11036,11896 11041,11896 L 11208,11896 11208,11896 C 11213,11896 11218,11897 11222,11900 11226,11902 11230,11906 11232,11910 11235,11914 11236,11919 11236,11924 L 11235,12008 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id351">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11311" y="12300" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11533,12412 L 11533,12412 C 11533,12417 11532,12422 11529,12426 11527,12430 11523,12434 11519,12436 11515,12439 11510,12440 11505,12440 L 11339,12439 11339,12439 C 11334,12439 11329,12438 11325,12435 11321,12433 11317,12429 11315,12425 11312,12421 11311,12416 11311,12411 L 11311,12411 11311,12328 11311,12328 C 11311,12323 11312,12318 11315,12314 11317,12310 11321,12306 11325,12304 11329,12301 11334,12300 11339,12300 L 11506,12300 11506,12300 C 11511,12300 11516,12301 11520,12304 11524,12306 11528,12310 11530,12314 11533,12318 11534,12323 11534,12328 L 11533,12412 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id352">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11313" y="12096" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11535,12209 L 11535,12209 C 11535,12214 11534,12219 11531,12223 11529,12227 11525,12231 11521,12233 11517,12236 11512,12237 11507,12237 L 11341,12236 11341,12236 C 11336,12236 11331,12235 11327,12232 11323,12230 11319,12226 11317,12222 11314,12218 11313,12213 11313,12208 L 11313,12208 11313,12125 11313,12125 C 11313,12120 11314,12115 11317,12111 11319,12107 11323,12103 11327,12101 11331,12098 11336,12097 11341,12097 L 11508,12097 11508,12097 C 11513,12097 11518,12098 11522,12101 11526,12103 11530,12107 11532,12111 11535,12115 11536,12120 11536,12125 L 11535,12209 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id353">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11313" y="11896" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11535,12009 L 11535,12009 C 11535,12014 11534,12019 11531,12023 11529,12027 11525,12031 11521,12033 11517,12036 11512,12037 11507,12037 L 11341,12036 11341,12036 C 11336,12036 11331,12035 11327,12032 11323,12030 11319,12026 11317,12022 11314,12018 11313,12013 11313,12008 L 11313,12008 11313,11925 11313,11925 C 11313,11920 11314,11915 11317,11911 11319,11907 11323,11903 11327,11901 11331,11898 11336,11897 11341,11897 L 11508,11897 11508,11897 C 11513,11897 11518,11898 11522,11901 11526,11903 11530,11907 11532,11911 11535,11915 11536,11920 11536,11925 L 11535,12009 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id354">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11612" y="12300" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11834,12412 L 11834,12412 C 11834,12417 11833,12422 11830,12426 11828,12430 11824,12434 11820,12436 11816,12439 11811,12440 11806,12440 L 11640,12439 11640,12439 C 11635,12439 11630,12438 11626,12435 11622,12433 11618,12429 11616,12425 11613,12421 11612,12416 11612,12411 L 11612,12411 11612,12328 11612,12328 C 11612,12323 11613,12318 11616,12314 11618,12310 11622,12306 11626,12304 11630,12301 11635,12300 11640,12300 L 11807,12300 11807,12300 C 11812,12300 11817,12301 11821,12304 11825,12306 11829,12310 11831,12314 11834,12318 11835,12323 11835,12328 L 11834,12412 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id355">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11614" y="12096" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11836,12209 L 11836,12209 C 11836,12214 11835,12219 11832,12223 11830,12227 11826,12231 11822,12233 11818,12236 11813,12237 11808,12237 L 11642,12236 11642,12236 C 11637,12236 11632,12235 11628,12232 11624,12230 11620,12226 11618,12222 11615,12218 11614,12213 11614,12208 L 11614,12208 11614,12125 11614,12125 C 11614,12120 11615,12115 11618,12111 11620,12107 11624,12103 11628,12101 11632,12098 11637,12097 11642,12097 L 11809,12097 11809,12097 C 11814,12097 11819,12098 11823,12101 11827,12103 11831,12107 11833,12111 11836,12115 11837,12120 11837,12125 L 11836,12209 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id356">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11614" y="11896" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11836,12009 L 11836,12009 C 11836,12014 11835,12019 11832,12023 11830,12027 11826,12031 11822,12033 11818,12036 11813,12037 11808,12037 L 11642,12036 11642,12036 C 11637,12036 11632,12035 11628,12032 11624,12030 11620,12026 11618,12022 11615,12018 11614,12013 11614,12008 L 11614,12008 11614,11925 11614,11925 C 11614,11920 11615,11915 11618,11911 11620,11907 11624,11903 11628,11901 11632,11898 11637,11897 11642,11897 L 11809,11897 11809,11897 C 11814,11897 11819,11898 11823,11901 11827,11903 11831,11907 11833,11911 11836,11915 11837,11920 11837,11925 L 11836,12009 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id357">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11912" y="12300" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12134,12413 L 12134,12413 C 12134,12418 12133,12423 12130,12427 12128,12431 12124,12435 12120,12437 12116,12440 12111,12441 12106,12441 L 11940,12440 11940,12440 C 11935,12440 11930,12439 11926,12436 11922,12434 11918,12430 11916,12426 11913,12422 11912,12417 11912,12412 L 11912,12412 11912,12329 11912,12329 C 11912,12324 11913,12319 11916,12315 11918,12311 11922,12307 11926,12305 11930,12302 11935,12301 11940,12301 L 12107,12301 12107,12301 C 12112,12301 12117,12302 12121,12305 12125,12307 12129,12311 12131,12315 12134,12319 12135,12324 12135,12329 L 12134,12413 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id358">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11914" y="12097" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12136,12210 L 12136,12210 C 12136,12215 12135,12220 12132,12224 12130,12228 12126,12232 12122,12234 12118,12237 12113,12238 12108,12238 L 11942,12237 11942,12237 C 11937,12237 11932,12236 11928,12233 11924,12231 11920,12227 11918,12223 11915,12219 11914,12214 11914,12209 L 11914,12209 11914,12126 11914,12126 C 11914,12121 11915,12116 11918,12112 11920,12108 11924,12104 11928,12102 11932,12099 11937,12098 11942,12098 L 12109,12098 12109,12098 C 12114,12098 12119,12099 12123,12102 12127,12104 12131,12108 12133,12112 12136,12116 12137,12121 12137,12126 L 12136,12210 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id359">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11914" y="11897" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12136,12010 L 12136,12010 C 12136,12015 12135,12020 12132,12024 12130,12028 12126,12032 12122,12034 12118,12037 12113,12038 12108,12038 L 11942,12037 11942,12037 C 11937,12037 11932,12036 11928,12033 11924,12031 11920,12027 11918,12023 11915,12019 11914,12014 11914,12009 L 11914,12009 11914,11926 11914,11926 C 11914,11921 11915,11916 11918,11912 11920,11908 11924,11904 11928,11902 11932,11899 11937,11898 11942,11898 L 12109,11898 12109,11898 C 12114,11898 12119,11899 12123,11902 12127,11904 12131,11908 12133,11912 12136,11916 12137,11921 12137,11926 L 12136,12010 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id360">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9711" y="12299" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9933,12411 L 9933,12411 C 9933,12416 9932,12421 9929,12425 9927,12429 9923,12433 9919,12435 9915,12438 9910,12439 9905,12439 L 9739,12438 9739,12438 C 9734,12438 9729,12437 9725,12434 9721,12432 9717,12428 9715,12424 9712,12420 9711,12415 9711,12410 L 9711,12410 9711,12327 9711,12327 C 9711,12322 9712,12317 9715,12313 9717,12309 9721,12305 9725,12303 9729,12300 9734,12299 9739,12299 L 9906,12299 9906,12299 C 9911,12299 9916,12300 9920,12303 9924,12305 9928,12309 9930,12313 9933,12317 9934,12322 9934,12327 L 9933,12411 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id361">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9713" y="12096" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9935,12208 L 9935,12208 C 9935,12213 9934,12218 9931,12222 9929,12226 9925,12230 9921,12232 9917,12235 9912,12236 9907,12236 L 9741,12235 9741,12235 C 9736,12235 9731,12234 9727,12231 9723,12229 9719,12225 9717,12221 9714,12217 9713,12212 9713,12207 L 9713,12207 9713,12124 9713,12124 C 9713,12119 9714,12114 9717,12110 9719,12106 9723,12102 9727,12100 9731,12097 9736,12096 9741,12096 L 9908,12096 9908,12096 C 9913,12096 9918,12097 9922,12100 9926,12102 9930,12106 9932,12110 9935,12114 9936,12119 9936,12124 L 9935,12208 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id362">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9713" y="11896" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9935,12008 L 9935,12008 C 9935,12013 9934,12018 9931,12022 9929,12026 9925,12030 9921,12032 9917,12035 9912,12036 9907,12036 L 9741,12035 9741,12035 C 9736,12035 9731,12034 9727,12031 9723,12029 9719,12025 9717,12021 9714,12017 9713,12012 9713,12007 L 9713,12007 9713,11924 9713,11924 C 9713,11919 9714,11914 9717,11910 9719,11906 9723,11902 9727,11900 9731,11897 9736,11896 9741,11896 L 9908,11896 9908,11896 C 9913,11896 9918,11897 9922,11900 9926,11902 9930,11906 9932,11910 9935,11914 9936,11919 9936,11924 L 9935,12008 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id363">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10011" y="12300" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10233,12412 L 10233,12412 C 10233,12417 10232,12422 10229,12426 10227,12430 10223,12434 10219,12436 10215,12439 10210,12440 10205,12440 L 10039,12439 10039,12439 C 10034,12439 10029,12438 10025,12435 10021,12433 10017,12429 10015,12425 10012,12421 10011,12416 10011,12411 L 10011,12411 10011,12328 10011,12328 C 10011,12323 10012,12318 10015,12314 10017,12310 10021,12306 10025,12304 10029,12301 10034,12300 10039,12300 L 10206,12300 10206,12300 C 10211,12300 10216,12301 10220,12304 10224,12306 10228,12310 10230,12314 10233,12318 10234,12323 10234,12328 L 10233,12412 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id364">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10013" y="12097" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10235,12209 L 10235,12209 C 10235,12214 10234,12219 10231,12223 10229,12227 10225,12231 10221,12233 10217,12236 10212,12237 10207,12237 L 10041,12236 10041,12236 C 10036,12236 10031,12235 10027,12232 10023,12230 10019,12226 10017,12222 10014,12218 10013,12213 10013,12208 L 10013,12208 10013,12125 10013,12125 C 10013,12120 10014,12115 10017,12111 10019,12107 10023,12103 10027,12101 10031,12098 10036,12097 10041,12097 L 10208,12097 10208,12097 C 10213,12097 10218,12098 10222,12101 10226,12103 10230,12107 10232,12111 10235,12115 10236,12120 10236,12125 L 10235,12209 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id365">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10013" y="11897" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10235,12009 L 10235,12009 C 10235,12014 10234,12019 10231,12023 10229,12027 10225,12031 10221,12033 10217,12036 10212,12037 10207,12037 L 10041,12036 10041,12036 C 10036,12036 10031,12035 10027,12032 10023,12030 10019,12026 10017,12022 10014,12018 10013,12013 10013,12008 L 10013,12008 10013,11925 10013,11925 C 10013,11920 10014,11915 10017,11911 10019,11907 10023,11903 10027,11901 10031,11898 10036,11897 10041,11897 L 10208,11897 10208,11897 C 10213,11897 10218,11898 10222,11901 10226,11903 10230,11907 10232,11911 10235,11915 10236,11920 10236,11925 L 10235,12009 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id366">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10312" y="12300" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10534,12412 L 10534,12412 C 10534,12417 10533,12422 10530,12426 10528,12430 10524,12434 10520,12436 10516,12439 10511,12440 10506,12440 L 10340,12439 10340,12439 C 10335,12439 10330,12438 10326,12435 10322,12433 10318,12429 10316,12425 10313,12421 10312,12416 10312,12411 L 10312,12411 10312,12328 10312,12328 C 10312,12323 10313,12318 10316,12314 10318,12310 10322,12306 10326,12304 10330,12301 10335,12300 10340,12300 L 10507,12300 10507,12300 C 10512,12300 10517,12301 10521,12304 10525,12306 10529,12310 10531,12314 10534,12318 10535,12323 10535,12328 L 10534,12412 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id367">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10314" y="12097" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10536,12209 L 10536,12209 C 10536,12214 10535,12219 10532,12223 10530,12227 10526,12231 10522,12233 10518,12236 10513,12237 10508,12237 L 10342,12236 10342,12236 C 10337,12236 10332,12235 10328,12232 10324,12230 10320,12226 10318,12222 10315,12218 10314,12213 10314,12208 L 10314,12208 10314,12125 10314,12125 C 10314,12120 10315,12115 10318,12111 10320,12107 10324,12103 10328,12101 10332,12098 10337,12097 10342,12097 L 10509,12097 10509,12097 C 10514,12097 10519,12098 10523,12101 10527,12103 10531,12107 10533,12111 10536,12115 10537,12120 10537,12125 L 10536,12209 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id368">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10314" y="11897" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10536,12009 L 10536,12009 C 10536,12014 10535,12019 10532,12023 10530,12027 10526,12031 10522,12033 10518,12036 10513,12037 10508,12037 L 10342,12036 10342,12036 C 10337,12036 10332,12035 10328,12032 10324,12030 10320,12026 10318,12022 10315,12018 10314,12013 10314,12008 L 10314,12008 10314,11925 10314,11925 C 10314,11920 10315,11915 10318,11911 10320,11907 10324,11903 10328,11901 10332,11898 10337,11897 10342,11897 L 10509,11897 10509,11897 C 10514,11897 10519,11898 10523,11901 10527,11903 10531,11907 10533,11911 10536,11915 10537,11920 10537,11925 L 10536,12009 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id369">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10612" y="12301" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10834,12413 L 10834,12413 C 10834,12418 10833,12423 10830,12427 10828,12431 10824,12435 10820,12437 10816,12440 10811,12441 10806,12441 L 10640,12440 10640,12440 C 10635,12440 10630,12439 10626,12436 10622,12434 10618,12430 10616,12426 10613,12422 10612,12417 10612,12412 L 10612,12412 10612,12329 10612,12329 C 10612,12324 10613,12319 10616,12315 10618,12311 10622,12307 10626,12305 10630,12302 10635,12301 10640,12301 L 10807,12301 10807,12301 C 10812,12301 10817,12302 10821,12305 10825,12307 10829,12311 10831,12315 10834,12319 10835,12324 10835,12329 L 10834,12413 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id370">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10614" y="12098" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10836,12210 L 10836,12210 C 10836,12215 10835,12220 10832,12224 10830,12228 10826,12232 10822,12234 10818,12237 10813,12238 10808,12238 L 10642,12237 10642,12237 C 10637,12237 10632,12236 10628,12233 10624,12231 10620,12227 10618,12223 10615,12219 10614,12214 10614,12209 L 10614,12209 10614,12126 10614,12126 C 10614,12121 10615,12116 10618,12112 10620,12108 10624,12104 10628,12102 10632,12099 10637,12098 10642,12098 L 10809,12098 10809,12098 C 10814,12098 10819,12099 10823,12102 10827,12104 10831,12108 10833,12112 10836,12116 10837,12121 10837,12126 L 10836,12210 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id371">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10614" y="11898" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10836,12010 L 10836,12010 C 10836,12015 10835,12020 10832,12024 10830,12028 10826,12032 10822,12034 10818,12037 10813,12038 10808,12038 L 10642,12037 10642,12037 C 10637,12037 10632,12036 10628,12033 10624,12031 10620,12027 10618,12023 10615,12019 10614,12014 10614,12009 L 10614,12009 10614,11926 10614,11926 C 10614,11921 10615,11916 10618,11912 10620,11908 10624,11904 10628,11902 10632,11899 10637,11898 10642,11898 L 10809,11898 10809,11898 C 10814,11898 10819,11899 10823,11902 10827,11904 10831,11908 10833,11912 10836,11916 10837,11921 10837,11926 L 10836,12010 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id372">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7711" y="12299" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7933,12411 L 7933,12411 C 7933,12416 7932,12421 7929,12425 7927,12429 7923,12433 7919,12435 7915,12438 7910,12439 7905,12439 L 7739,12438 7739,12438 C 7734,12438 7729,12437 7725,12434 7721,12432 7717,12428 7715,12424 7712,12420 7711,12415 7711,12410 L 7711,12410 7711,12327 7711,12327 C 7711,12322 7712,12317 7715,12313 7717,12309 7721,12305 7725,12303 7729,12300 7734,12299 7739,12299 L 7906,12299 7906,12299 C 7911,12299 7916,12300 7920,12303 7924,12305 7928,12309 7930,12313 7933,12317 7934,12322 7934,12327 L 7933,12411 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id373">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7713" y="12096" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7935,12208 L 7935,12208 C 7935,12213 7934,12218 7931,12222 7929,12226 7925,12230 7921,12232 7917,12235 7912,12236 7907,12236 L 7741,12235 7741,12235 C 7736,12235 7731,12234 7727,12231 7723,12229 7719,12225 7717,12221 7714,12217 7713,12212 7713,12207 L 7713,12207 7713,12124 7713,12124 C 7713,12119 7714,12114 7717,12110 7719,12106 7723,12102 7727,12100 7731,12097 7736,12096 7741,12096 L 7908,12096 7908,12096 C 7913,12096 7918,12097 7922,12100 7926,12102 7930,12106 7932,12110 7935,12114 7936,12119 7936,12124 L 7935,12208 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id374">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7712" y="11896" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7935,12008 L 7935,12008 C 7935,12013 7934,12018 7931,12022 7929,12026 7925,12030 7921,12032 7917,12035 7912,12036 7907,12036 L 7741,12035 7741,12035 C 7736,12035 7731,12034 7727,12031 7723,12029 7719,12025 7717,12021 7714,12017 7713,12012 7713,12007 L 7713,12007 7713,11924 7713,11924 C 7713,11919 7714,11914 7717,11910 7719,11906 7723,11902 7727,11900 7731,11897 7736,11896 7741,11896 L 7908,11896 7908,11896 C 7913,11896 7918,11897 7922,11900 7926,11902 7930,11906 7932,11910 7935,11914 7936,11919 7936,11924 L 7935,12008 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id375">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8011" y="12299" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8233,12412 L 8233,12412 C 8233,12417 8232,12422 8229,12426 8227,12430 8223,12434 8219,12436 8215,12439 8210,12440 8205,12440 L 8039,12439 8039,12439 C 8034,12439 8029,12438 8025,12435 8021,12433 8017,12429 8015,12425 8012,12421 8011,12416 8011,12411 L 8011,12411 8011,12328 8011,12328 C 8011,12323 8012,12318 8015,12314 8017,12310 8021,12306 8025,12304 8029,12301 8034,12300 8039,12300 L 8206,12300 8206,12300 C 8211,12300 8216,12301 8220,12304 8224,12306 8228,12310 8230,12314 8233,12318 8234,12323 8234,12328 L 8233,12412 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id376">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8013" y="12096" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8235,12209 L 8235,12209 C 8235,12214 8234,12219 8231,12223 8229,12227 8225,12231 8221,12233 8217,12236 8212,12237 8207,12237 L 8041,12236 8041,12236 C 8036,12236 8031,12235 8027,12232 8023,12230 8019,12226 8017,12222 8014,12218 8013,12213 8013,12208 L 8013,12208 8013,12125 8013,12125 C 8013,12120 8014,12115 8017,12111 8019,12107 8023,12103 8027,12101 8031,12098 8036,12097 8041,12097 L 8208,12097 8208,12097 C 8213,12097 8218,12098 8222,12101 8226,12103 8230,12107 8232,12111 8235,12115 8236,12120 8236,12125 L 8235,12209 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id377">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8013" y="11896" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8235,12009 L 8235,12009 C 8235,12014 8234,12019 8231,12023 8229,12027 8225,12031 8221,12033 8217,12036 8212,12037 8207,12037 L 8041,12036 8041,12036 C 8036,12036 8031,12035 8027,12032 8023,12030 8019,12026 8017,12022 8014,12018 8013,12013 8013,12008 L 8013,12008 8013,11925 8013,11925 C 8013,11920 8014,11915 8017,11911 8019,11907 8023,11903 8027,11901 8031,11898 8036,11897 8041,11897 L 8208,11897 8208,11897 C 8213,11897 8218,11898 8222,11901 8226,11903 8230,11907 8232,11911 8235,11915 8236,11920 8236,11925 L 8235,12009 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id378">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8312" y="12299" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8534,12412 L 8534,12412 C 8534,12417 8533,12422 8530,12426 8528,12430 8524,12434 8520,12436 8516,12439 8511,12440 8506,12440 L 8340,12439 8340,12439 C 8335,12439 8330,12438 8326,12435 8322,12433 8318,12429 8316,12425 8313,12421 8312,12416 8312,12411 L 8312,12411 8312,12328 8312,12328 C 8312,12323 8313,12318 8316,12314 8318,12310 8322,12306 8326,12304 8330,12301 8335,12300 8340,12300 L 8507,12300 8507,12300 C 8512,12300 8517,12301 8521,12304 8525,12306 8529,12310 8531,12314 8534,12318 8535,12323 8535,12328 L 8534,12412 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id379">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8314" y="12096" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8536,12209 L 8536,12209 C 8536,12214 8535,12219 8532,12223 8530,12227 8526,12231 8522,12233 8518,12236 8513,12237 8508,12237 L 8342,12236 8342,12236 C 8337,12236 8332,12235 8328,12232 8324,12230 8320,12226 8318,12222 8315,12218 8314,12213 8314,12208 L 8314,12208 8314,12125 8314,12125 C 8314,12120 8315,12115 8318,12111 8320,12107 8324,12103 8328,12101 8332,12098 8337,12097 8342,12097 L 8509,12097 8509,12097 C 8514,12097 8519,12098 8523,12101 8527,12103 8531,12107 8533,12111 8536,12115 8537,12120 8537,12125 L 8536,12209 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id380">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8314" y="11896" width="224" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8536,12009 L 8536,12009 C 8536,12014 8535,12019 8532,12023 8530,12027 8526,12031 8522,12033 8518,12036 8513,12037 8508,12037 L 8342,12036 8342,12036 C 8337,12036 8332,12035 8328,12032 8324,12030 8320,12026 8318,12022 8315,12018 8314,12013 8314,12008 L 8314,12008 8314,11925 8314,11925 C 8314,11920 8315,11915 8318,11911 8320,11907 8324,11903 8328,11901 8332,11898 8337,11897 8342,11897 L 8509,11897 8509,11897 C 8514,11897 8519,11898 8523,11901 8527,11903 8531,11907 8533,11911 8536,11915 8537,11920 8537,11925 L 8536,12009 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id381">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8612" y="12300" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8834,12413 L 8834,12413 C 8834,12418 8833,12423 8830,12427 8828,12431 8824,12435 8820,12437 8816,12440 8811,12441 8806,12441 L 8640,12440 8640,12440 C 8635,12440 8630,12439 8626,12436 8622,12434 8618,12430 8616,12426 8613,12422 8612,12417 8612,12412 L 8612,12412 8612,12329 8612,12329 C 8612,12324 8613,12319 8616,12315 8618,12311 8622,12307 8626,12305 8630,12302 8635,12301 8640,12301 L 8807,12301 8807,12301 C 8812,12301 8817,12302 8821,12305 8825,12307 8829,12311 8831,12315 8834,12319 8835,12324 8835,12329 L 8834,12413 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id382">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8614" y="12097" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8836,12210 L 8836,12210 C 8836,12215 8835,12220 8832,12224 8830,12228 8826,12232 8822,12234 8818,12237 8813,12238 8808,12238 L 8642,12237 8642,12237 C 8637,12237 8632,12236 8628,12233 8624,12231 8620,12227 8618,12223 8615,12219 8614,12214 8614,12209 L 8614,12209 8614,12126 8614,12126 C 8614,12121 8615,12116 8618,12112 8620,12108 8624,12104 8628,12102 8632,12099 8637,12098 8642,12098 L 8809,12098 8809,12098 C 8814,12098 8819,12099 8823,12102 8827,12104 8831,12108 8833,12112 8836,12116 8837,12121 8837,12126 L 8836,12210 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id383">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8614" y="11897" width="225" height="142"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8836,12010 L 8836,12010 C 8836,12015 8835,12020 8832,12024 8830,12028 8826,12032 8822,12034 8818,12037 8813,12038 8808,12038 L 8642,12037 8642,12037 C 8637,12037 8632,12036 8628,12033 8624,12031 8620,12027 8618,12023 8615,12019 8614,12014 8614,12009 L 8614,12009 8614,11926 8614,11926 C 8614,11921 8615,11916 8618,11912 8620,11908 8624,11904 8628,11902 8632,11899 8637,11898 8642,11898 L 8809,11898 8809,11898 C 8814,11898 8819,11899 8823,11902 8827,11904 8831,11908 8833,11912 8836,11916 8837,11921 8837,11926 L 8836,12010 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id384">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6411" y="12299" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6633,12411 L 6633,12411 C 6633,12416 6632,12421 6629,12425 6627,12429 6623,12433 6619,12435 6615,12438 6610,12439 6605,12439 L 6439,12438 6439,12438 C 6434,12438 6429,12437 6425,12434 6421,12432 6417,12428 6415,12424 6412,12420 6411,12415 6411,12410 L 6411,12410 6411,12327 6411,12327 C 6411,12322 6412,12317 6415,12313 6417,12309 6421,12305 6425,12303 6429,12300 6434,12299 6439,12299 L 6606,12299 6606,12299 C 6611,12299 6616,12300 6620,12303 6624,12305 6628,12309 6630,12313 6633,12317 6634,12322 6634,12327 L 6633,12411 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id385">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6413" y="12096" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6635,12208 L 6635,12208 C 6635,12213 6634,12218 6631,12222 6629,12226 6625,12230 6621,12232 6617,12235 6612,12236 6607,12236 L 6441,12235 6441,12235 C 6436,12235 6431,12234 6427,12231 6423,12229 6419,12225 6417,12221 6414,12217 6413,12212 6413,12207 L 6413,12207 6413,12124 6413,12124 C 6413,12119 6414,12114 6417,12110 6419,12106 6423,12102 6427,12100 6431,12097 6436,12096 6441,12096 L 6608,12096 6608,12096 C 6613,12096 6618,12097 6622,12100 6626,12102 6630,12106 6632,12110 6635,12114 6636,12119 6636,12124 L 6635,12208 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id386">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6412" y="11896" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6635,12008 L 6635,12008 C 6635,12013 6634,12018 6631,12022 6629,12026 6625,12030 6621,12032 6617,12035 6612,12036 6607,12036 L 6441,12035 6441,12035 C 6436,12035 6431,12034 6427,12031 6423,12029 6419,12025 6417,12021 6414,12017 6413,12012 6413,12007 L 6413,12007 6413,11924 6413,11924 C 6413,11919 6414,11914 6417,11910 6419,11906 6423,11902 6427,11900 6431,11897 6436,11896 6441,11896 L 6608,11896 6608,11896 C 6613,11896 6618,11897 6622,11900 6626,11902 6630,11906 6632,11910 6635,11914 6636,11919 6636,11924 L 6635,12008 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id387">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6711" y="12300" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6933,12412 L 6933,12412 C 6933,12417 6932,12422 6929,12426 6927,12430 6923,12434 6919,12436 6915,12439 6910,12440 6905,12440 L 6739,12439 6739,12439 C 6734,12439 6729,12438 6725,12435 6721,12433 6717,12429 6715,12425 6712,12421 6711,12416 6711,12411 L 6711,12411 6711,12328 6711,12328 C 6711,12323 6712,12318 6715,12314 6717,12310 6721,12306 6725,12304 6729,12301 6734,12300 6739,12300 L 6906,12300 6906,12300 C 6911,12300 6916,12301 6920,12304 6924,12306 6928,12310 6930,12314 6933,12318 6934,12323 6934,12328 L 6933,12412 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id388">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6713" y="12097" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6935,12209 L 6935,12209 C 6935,12214 6934,12219 6931,12223 6929,12227 6925,12231 6921,12233 6917,12236 6912,12237 6907,12237 L 6741,12236 6741,12236 C 6736,12236 6731,12235 6727,12232 6723,12230 6719,12226 6717,12222 6714,12218 6713,12213 6713,12208 L 6713,12208 6713,12125 6713,12125 C 6713,12120 6714,12115 6717,12111 6719,12107 6723,12103 6727,12101 6731,12098 6736,12097 6741,12097 L 6908,12097 6908,12097 C 6913,12097 6918,12098 6922,12101 6926,12103 6930,12107 6932,12111 6935,12115 6936,12120 6936,12125 L 6935,12209 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id389">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6712" y="11897" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6935,12009 L 6935,12009 C 6935,12014 6934,12019 6931,12023 6929,12027 6925,12031 6921,12033 6917,12036 6912,12037 6907,12037 L 6741,12036 6741,12036 C 6736,12036 6731,12035 6727,12032 6723,12030 6719,12026 6717,12022 6714,12018 6713,12013 6713,12008 L 6713,12008 6713,11925 6713,11925 C 6713,11920 6714,11915 6717,11911 6719,11907 6723,11903 6727,11901 6731,11898 6736,11897 6741,11897 L 6908,11897 6908,11897 C 6913,11897 6918,11898 6922,11901 6926,11903 6930,11907 6932,11911 6935,11915 6936,11920 6936,11925 L 6935,12009 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id390">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7012" y="12300" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7234,12412 L 7234,12412 C 7234,12417 7233,12422 7230,12426 7228,12430 7224,12434 7220,12436 7216,12439 7211,12440 7206,12440 L 7040,12439 7040,12439 C 7035,12439 7030,12438 7026,12435 7022,12433 7018,12429 7016,12425 7013,12421 7012,12416 7012,12411 L 7012,12411 7012,12328 7012,12328 C 7012,12323 7013,12318 7016,12314 7018,12310 7022,12306 7026,12304 7030,12301 7035,12300 7040,12300 L 7207,12300 7207,12300 C 7212,12300 7217,12301 7221,12304 7225,12306 7229,12310 7231,12314 7234,12318 7235,12323 7235,12328 L 7234,12412 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id391">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7014" y="12097" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7236,12209 L 7236,12209 C 7236,12214 7235,12219 7232,12223 7230,12227 7226,12231 7222,12233 7218,12236 7213,12237 7208,12237 L 7042,12236 7042,12236 C 7037,12236 7032,12235 7028,12232 7024,12230 7020,12226 7018,12222 7015,12218 7014,12213 7014,12208 L 7014,12208 7014,12125 7014,12125 C 7014,12120 7015,12115 7018,12111 7020,12107 7024,12103 7028,12101 7032,12098 7037,12097 7042,12097 L 7209,12097 7209,12097 C 7214,12097 7219,12098 7223,12101 7227,12103 7231,12107 7233,12111 7236,12115 7237,12120 7237,12125 L 7236,12209 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id392">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7013" y="11897" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7236,12009 L 7236,12009 C 7236,12014 7235,12019 7232,12023 7230,12027 7226,12031 7222,12033 7218,12036 7213,12037 7208,12037 L 7042,12036 7042,12036 C 7037,12036 7032,12035 7028,12032 7024,12030 7020,12026 7018,12022 7015,12018 7014,12013 7014,12008 L 7014,12008 7014,11925 7014,11925 C 7014,11920 7015,11915 7018,11911 7020,11907 7024,11903 7028,11901 7032,11898 7037,11897 7042,11897 L 7209,11897 7209,11897 C 7214,11897 7219,11898 7223,11901 7227,11903 7231,11907 7233,11911 7236,11915 7237,11920 7237,11925 L 7236,12009 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id393">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7312" y="12301" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7534,12413 L 7534,12413 C 7534,12418 7533,12423 7530,12427 7528,12431 7524,12435 7520,12437 7516,12440 7511,12441 7506,12441 L 7340,12440 7340,12440 C 7335,12440 7330,12439 7326,12436 7322,12434 7318,12430 7316,12426 7313,12422 7312,12417 7312,12412 L 7312,12412 7312,12329 7312,12329 C 7312,12324 7313,12319 7316,12315 7318,12311 7322,12307 7326,12305 7330,12302 7335,12301 7340,12301 L 7507,12301 7507,12301 C 7512,12301 7517,12302 7521,12305 7525,12307 7529,12311 7531,12315 7534,12319 7535,12324 7535,12329 L 7534,12413 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id394">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7314" y="12098" width="224" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7536,12210 L 7536,12210 C 7536,12215 7535,12220 7532,12224 7530,12228 7526,12232 7522,12234 7518,12237 7513,12238 7508,12238 L 7342,12237 7342,12237 C 7337,12237 7332,12236 7328,12233 7324,12231 7320,12227 7318,12223 7315,12219 7314,12214 7314,12209 L 7314,12209 7314,12126 7314,12126 C 7314,12121 7315,12116 7318,12112 7320,12108 7324,12104 7328,12102 7332,12099 7337,12098 7342,12098 L 7509,12098 7509,12098 C 7514,12098 7519,12099 7523,12102 7527,12104 7531,12108 7533,12112 7536,12116 7537,12121 7537,12126 L 7536,12210 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id395">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7313" y="11898" width="225" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7536,12010 L 7536,12010 C 7536,12015 7535,12020 7532,12024 7530,12028 7526,12032 7522,12034 7518,12037 7513,12038 7508,12038 L 7342,12037 7342,12037 C 7337,12037 7332,12036 7328,12033 7324,12031 7320,12027 7318,12023 7315,12019 7314,12014 7314,12009 L 7314,12009 7314,11926 7314,11926 C 7314,11921 7315,11916 7318,11912 7320,11908 7324,11904 7328,11902 7332,11899 7337,11898 7342,11898 L 7509,11898 7509,11898 C 7514,11898 7519,11899 7523,11902 7527,11904 7531,11908 7533,11912 7536,11916 7537,11921 7537,11926 L 7536,12010 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/docs/static/testbed-3n-snr.svg b/docs/static/testbed-3n-snr.svg
new file mode 100644
index 0000000000..4bab2e8d3d
--- /dev/null
+++ b/docs/static/testbed-3n-snr.svg
@@ -0,0 +1,1220 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.2" width="170mm" height="140mm" viewBox="0 0 17000 14000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
+ <defs class="ClipPathGroup">
+ <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
+ <rect x="0" y="0" width="17000" height="14000"/>
+ </clipPath>
+ <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
+ <rect x="17" y="14" width="16966" height="13972"/>
+ </clipPath>
+ </defs>
+ <defs>
+ <font id="EmbeddedFont_1" horiz-adv-x="2048">
+ <font-face font-family="Arial embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+ <glyph unicode="x" horiz-adv-x="1006" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
+ <glyph unicode="U" horiz-adv-x="1192" d="M 731,-20 C 616,-20 515,1 429,43 343,85 276,146 229,226 182,306 158,401 158,512 L 158,1409 349,1409 349,528 C 349,399 382,302 447,235 512,168 607,135 730,135 857,135 955,170 1026,239 1096,308 1131,408 1131,541 L 1131,1409 1321,1409 1321,530 C 1321,416 1297,318 1249,235 1200,152 1132,89 1044,46 955,2 851,-20 731,-20 Z"/>
+ <glyph unicode="P" horiz-adv-x="1112" d="M 1258,985 C 1258,852 1215,746 1128,667 1041,588 922,549 773,549 L 359,549 359,0 168,0 168,1409 761,1409 C 919,1409 1041,1372 1128,1298 1215,1224 1258,1120 1258,985 Z M 1066,983 C 1066,1165 957,1256 738,1256 L 359,1256 359,700 746,700 C 959,700 1066,794 1066,983 Z"/>
+ <glyph unicode="I" horiz-adv-x="213" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
+ <glyph unicode="6" horiz-adv-x="980" d="M 1049,461 C 1049,312 1009,195 928,109 847,23 736,-20 594,-20 435,-20 314,39 230,157 146,275 104,447 104,672 104,916 148,1103 235,1234 322,1365 447,1430 608,1430 821,1430 955,1334 1010,1143 L 838,1112 C 803,1227 725,1284 606,1284 503,1284 424,1236 368,1141 311,1045 283,906 283,725 316,786 362,832 421,864 480,895 548,911 625,911 755,911 858,870 935,789 1011,708 1049,598 1049,461 Z M 866,453 C 866,555 841,634 791,689 741,744 671,772 582,772 498,772 430,748 379,699 327,650 301,582 301,496 301,387 328,298 382,229 435,160 504,125 588,125 675,125 743,154 792,213 841,271 866,351 866,453 Z"/>
+ <glyph unicode="4" horiz-adv-x="1060" d="M 881,319 L 881,0 711,0 711,319 47,319 47,459 692,1409 881,1409 881,461 1079,461 1079,319 881,319 Z M 711,1206 C 710,1202 700,1184 683,1153 666,1122 653,1100 644,1087 L 283,555 229,481 213,461 711,461 711,1206 Z"/>
+ <glyph unicode="1" horiz-adv-x="927" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
+ </font>
+ </defs>
+ <defs>
+ <font id="EmbeddedFont_2" horiz-adv-x="2048">
+ <font-face font-family="Calibri embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1879" descent="476"/>
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
+ <glyph unicode="z" horiz-adv-x="927" d="M 113,1120 L 987,1120 987,952 295,147 987,147 987,0 88,0 88,168 780,973 113,973 113,1120 Z"/>
+ <glyph unicode="y" horiz-adv-x="1112" d="M 659,-104 C 607,-237 556,-324 507,-365 458,-406 392,-426 309,-426 L 162,-426 162,-272 270,-272 C 321,-272 360,-260 388,-236 416,-212 447,-155 481,-66 L 514,18 61,1120 256,1120 606,244 956,1120 1151,1120 659,-104 Z"/>
+ <glyph unicode="x" horiz-adv-x="1112" d="M 1124,1120 L 719,575 1145,0 928,0 602,440 276,0 59,0 494,586 96,1120 313,1120 610,721 907,1120 1124,1120 Z"/>
+ <glyph unicode="v" horiz-adv-x="1112" d="M 61,1120 L 256,1120 606,180 956,1120 1151,1120 731,0 481,0 61,1120 Z"/>
+ <glyph unicode="u" horiz-adv-x="953" d="M 174,442 L 174,1120 358,1120 358,449 C 358,343 379,264 420,211 461,158 523,131 606,131 705,131 784,163 842,226 899,289 928,376 928,485 L 928,1120 1112,1120 1112,0 928,0 928,172 C 883,104 832,54 773,21 714,-12 645,-29 567,-29 438,-29 341,11 274,91 207,171 174,288 174,442 Z "/>
+ <glyph unicode="t" horiz-adv-x="715" d="M 375,1438 L 375,1120 754,1120 754,977 375,977 375,369 C 375,278 388,219 413,193 438,167 488,154 565,154 L 754,154 754,0 565,0 C 423,0 325,27 271,80 217,133 190,229 190,369 L 190,977 55,977 55,1120 190,1120 190,1438 375,1438 Z"/>
+ <glyph unicode="s" horiz-adv-x="874" d="M 907,1087 L 907,913 C 855,940 801,960 745,973 689,986 631,993 571,993 480,993 411,979 366,951 320,923 297,881 297,825 297,782 313,749 346,725 379,700 444,677 543,655 L 606,641 C 737,613 830,574 885,523 940,472 967,400 967,309 967,205 926,123 844,62 761,1 648,-29 504,-29 444,-29 382,-23 317,-12 252,0 183,18 111,41 L 111,231 C 179,196 246,169 312,152 378,134 443,125 508,125 595,125 661,140 708,170 755,199 778,241 778,295 778,345 761,383 728,410 694,437 620,462 506,487 L 442,502 C 328,526 246,563 195,613 144,662 119,730 119,817 119,922 156,1004 231,1061 306,1118 412,1147 549,1147 617,1147 681,1142 741,1132 801,1122 856,1107 907,1087 Z"/>
+ <glyph unicode="r" horiz-adv-x="663" d="M 842,948 C 821,960 799,969 775,975 750,980 723,983 694,983 590,983 510,949 455,882 399,814 371,717 371,590 L 371,0 186,0 186,1120 371,1120 371,946 C 410,1014 460,1065 522,1098 584,1131 659,1147 748,1147 761,1147 775,1146 790,1145 805,1143 822,1140 841,1137 L 842,948 Z"/>
+ <glyph unicode="o" horiz-adv-x="1033" d="M 627,991 C 528,991 450,953 393,876 336,799 307,693 307,559 307,425 336,320 393,243 450,166 528,127 627,127 725,127 803,166 860,243 917,320 946,426 946,559 946,692 917,797 860,875 803,952 725,991 627,991 Z M 627,1147 C 787,1147 913,1095 1004,991 1095,887 1141,743 1141,559 1141,376 1095,232 1004,128 913,23 787,-29 627,-29 466,-29 341,23 250,128 159,232 113,376 113,559 113,743 159,887 250,991 341,1095 466,1147 627,1147 Z"/>
+ <glyph unicode="n" horiz-adv-x="954" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
+ <glyph unicode="m" horiz-adv-x="1642" d="M 1065,905 C 1111,988 1166,1049 1230,1088 1294,1127 1369,1147 1456,1147 1573,1147 1663,1106 1726,1025 1789,943 1821,827 1821,676 L 1821,0 1636,0 1636,670 C 1636,777 1617,857 1579,909 1541,961 1483,987 1405,987 1310,987 1234,955 1179,892 1124,829 1096,742 1096,633 L 1096,0 911,0 911,670 C 911,778 892,858 854,910 816,961 757,987 678,987 584,987 509,955 454,892 399,828 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 413,1015 463,1065 522,1098 581,1131 650,1147 731,1147 812,1147 882,1126 939,1085 996,1044 1038,984 1065,905 Z"/>
+ <glyph unicode="l" horiz-adv-x="213" d="M 193,1556 L 377,1556 377,0 193,0 193,1556 Z"/>
+ <glyph unicode="k" horiz-adv-x="1007" d="M 186,1556 L 371,1556 371,637 920,1120 1155,1120 561,596 1180,0 940,0 371,547 371,0 186,0 186,1556 Z"/>
+ <glyph unicode="i" horiz-adv-x="213" d="M 193,1120 L 377,1120 377,0 193,0 193,1120 Z M 193,1556 L 377,1556 377,1323 193,1323 193,1556 Z"/>
+ <glyph unicode="f" horiz-adv-x="742" d="M 760,1556 L 760,1403 584,1403 C 518,1403 472,1390 447,1363 421,1336 408,1288 408,1219 L 408,1120 711,1120 711,977 408,977 408,0 223,0 223,977 47,977 47,1120 223,1120 223,1198 C 223,1323 252,1414 310,1471 368,1528 460,1556 586,1556 L 760,1556 Z"/>
+ <glyph unicode="e" horiz-adv-x="1059" d="M 1151,606 L 1151,516 305,516 C 313,389 351,293 420,227 488,160 583,127 705,127 776,127 844,136 911,153 977,170 1043,196 1108,231 L 1108,57 C 1042,29 974,8 905,-7 836,-22 765,-29 694,-29 515,-29 374,23 270,127 165,231 113,372 113,549 113,732 163,878 262,986 361,1093 494,1147 662,1147 813,1147 932,1099 1020,1002 1107,905 1151,773 1151,606 Z M 967,659 C 966,760 938,841 883,901 828,961 755,991 664,991 561,991 479,962 418,904 356,846 320,764 311,659 L 967,659 Z"/>
+ <glyph unicode="d" horiz-adv-x="1006" d="M 930,950 L 930,1556 1114,1556 1114,0 930,0 930,168 C 891,101 843,52 784,20 725,-13 654,-29 571,-29 436,-29 326,25 241,133 156,241 113,383 113,559 113,735 156,877 241,985 326,1093 436,1147 571,1147 654,1147 725,1131 784,1099 843,1066 891,1017 930,950 Z M 303,559 C 303,424 331,318 387,241 442,164 519,125 616,125 713,125 790,164 846,241 902,318 930,424 930,559 930,694 902,801 846,878 790,955 713,993 616,993 519,993 442,955 387,878 331,801 303,694 303,559 Z"/>
+ <glyph unicode="c" horiz-adv-x="900" d="M 999,1077 L 999,905 C 947,934 895,955 843,970 790,984 737,991 684,991 565,991 472,953 406,878 340,802 307,696 307,559 307,422 340,316 406,241 472,165 565,127 684,127 737,127 790,134 843,149 895,163 947,184 999,213 L 999,43 C 948,19 895,1 840,-11 785,-23 726,-29 664,-29 495,-29 361,24 262,130 163,236 113,379 113,559 113,742 163,885 264,990 364,1095 501,1147 676,1147 733,1147 788,1141 842,1130 896,1118 948,1100 999,1077 Z"/>
+ <glyph unicode="a" horiz-adv-x="980" d="M 702,563 C 553,563 450,546 393,512 336,478 307,420 307,338 307,273 329,221 372,183 415,144 473,125 547,125 649,125 731,161 793,234 854,306 885,402 885,522 L 885,563 702,563 Z M 1069,639 L 1069,0 885,0 885,170 C 843,102 791,52 728,20 665,-13 589,-29 498,-29 383,-29 292,3 225,68 157,132 123,218 123,326 123,452 165,547 250,611 334,675 460,707 627,707 L 885,707 885,725 C 885,810 857,875 802,922 746,968 668,991 567,991 503,991 441,983 380,968 319,953 261,930 205,899 L 205,1069 C 272,1095 338,1115 401,1128 464,1141 526,1147 586,1147 748,1147 869,1105 949,1021 1029,937 1069,810 1069,639 Z"/>
+ <glyph unicode="X" horiz-adv-x="1297" d="M 129,1493 L 346,1493 717,938 1090,1493 1307,1493 827,776 1339,0 1122,0 702,635 279,0 61,0 594,797 129,1493 Z"/>
+ <glyph unicode="U" horiz-adv-x="1165" d="M 178,1493 L 381,1493 381,586 C 381,426 410,311 468,241 526,170 620,135 750,135 879,135 973,170 1031,241 1089,311 1118,426 1118,586 L 1118,1493 1321,1493 1321,561 C 1321,366 1273,219 1177,120 1080,21 938,-29 750,-29 561,-29 419,21 323,120 226,219 178,366 178,561 L 178,1493 Z"/>
+ <glyph unicode="T" horiz-adv-x="1297" d="M -6,1493 L 1257,1493 1257,1323 727,1323 727,0 524,0 524,1323 -6,1323 -6,1493 Z"/>
+ <glyph unicode="S" horiz-adv-x="1060" d="M 1096,1444 L 1096,1247 C 1019,1284 947,1311 879,1329 811,1347 745,1356 682,1356 572,1356 487,1335 428,1292 368,1249 338,1189 338,1110 338,1044 358,994 398,961 437,927 512,900 623,879 L 745,854 C 896,825 1007,775 1079,703 1150,630 1186,533 1186,412 1186,267 1138,158 1041,83 944,8 801,-29 614,-29 543,-29 468,-21 389,-5 309,11 226,35 141,66 L 141,274 C 223,228 303,193 382,170 461,147 538,135 614,135 729,135 818,158 881,203 944,248 975,313 975,397 975,470 953,528 908,569 863,610 789,641 686,662 L 563,686 C 412,716 303,763 236,827 169,891 135,980 135,1094 135,1226 182,1330 275,1406 368,1482 496,1520 659,1520 729,1520 800,1514 873,1501 946,1488 1020,1469 1096,1444 Z"/>
+ <glyph unicode="R" horiz-adv-x="1192" d="M 909,700 C 952,685 995,654 1036,606 1077,558 1118,492 1159,408 L 1364,0 1147,0 956,383 C 907,483 859,549 813,582 766,615 703,631 623,631 L 403,631 403,0 201,0 201,1493 657,1493 C 828,1493 955,1457 1039,1386 1123,1315 1165,1207 1165,1063 1165,969 1143,891 1100,829 1056,767 992,724 909,700 Z M 403,1327 L 403,797 657,797 C 754,797 828,820 878,865 927,910 952,976 952,1063 952,1150 927,1216 878,1261 828,1305 754,1327 657,1327 L 403,1327 Z"/>
+ <glyph unicode="P" horiz-adv-x="980" d="M 403,1327 L 403,766 657,766 C 751,766 824,790 875,839 926,888 952,957 952,1047 952,1136 926,1205 875,1254 824,1303 751,1327 657,1327 L 403,1327 Z M 201,1493 L 657,1493 C 824,1493 951,1455 1037,1380 1122,1304 1165,1193 1165,1047 1165,900 1122,788 1037,713 951,638 824,600 657,600 L 403,600 403,0 201,0 201,1493 Z"/>
+ <glyph unicode="N" horiz-adv-x="1165" d="M 201,1493 L 473,1493 1135,244 1135,1493 1331,1493 1331,0 1059,0 397,1249 397,0 201,0 201,1493 Z"/>
+ <glyph unicode="I" horiz-adv-x="239" d="M 201,1493 L 403,1493 403,0 201,0 201,1493 Z"/>
+ <glyph unicode="H" horiz-adv-x="1165" d="M 201,1493 L 403,1493 403,881 1137,881 1137,1493 1339,1493 1339,0 1137,0 1137,711 403,711 403,0 201,0 201,1493 Z"/>
+ <glyph unicode="G" horiz-adv-x="1324" d="M 1219,213 L 1219,614 889,614 889,780 1419,780 1419,139 C 1341,84 1255,42 1161,14 1067,-15 967,-29 860,-29 627,-29 444,39 313,176 181,312 115,502 115,745 115,989 181,1179 313,1316 444,1452 627,1520 860,1520 957,1520 1050,1508 1138,1484 1225,1460 1306,1425 1380,1378 L 1380,1163 C 1305,1226 1226,1274 1142,1306 1058,1338 970,1354 877,1354 694,1354 557,1303 466,1201 374,1099 328,947 328,745 328,544 374,392 466,290 557,188 694,137 877,137 948,137 1012,143 1068,156 1124,168 1174,187 1219,213 Z"/>
+ <glyph unicode="D" horiz-adv-x="1271" d="M 403,1327 L 403,166 647,166 C 853,166 1004,213 1100,306 1195,399 1243,547 1243,748 1243,948 1195,1095 1100,1188 1004,1281 853,1327 647,1327 L 403,1327 Z M 201,1493 L 616,1493 C 905,1493 1118,1433 1253,1313 1388,1192 1456,1004 1456,748 1456,491 1388,302 1252,181 1116,60 904,0 616,0 L 201,0 201,1493 Z"/>
+ <glyph unicode="C" horiz-adv-x="1218" d="M 1319,1378 L 1319,1165 C 1251,1228 1179,1276 1102,1307 1025,1338 943,1354 856,1354 685,1354 555,1302 464,1198 373,1093 328,942 328,745 328,548 373,398 464,294 555,189 685,137 856,137 943,137 1025,153 1102,184 1179,215 1251,263 1319,326 L 1319,115 C 1248,67 1174,31 1095,7 1016,-17 932,-29 844,-29 618,-29 440,40 310,179 180,317 115,506 115,745 115,985 180,1174 310,1313 440,1451 618,1520 844,1520 933,1520 1018,1508 1097,1485 1176,1461 1250,1425 1319,1378 Z"/>
+ <glyph unicode="A" horiz-adv-x="1403" d="M 700,1294 L 426,551 975,551 700,1294 Z M 586,1493 L 815,1493 1384,0 1174,0 1038,383 365,383 229,0 16,0 586,1493 Z"/>
+ <glyph unicode="@" horiz-adv-x="1774" d="M 762,537 C 762,442 786,367 833,313 880,258 945,231 1028,231 1110,231 1175,258 1222,313 1269,368 1292,442 1292,537 1292,630 1268,705 1220,760 1172,815 1107,842 1026,842 945,842 881,815 834,760 786,705 762,631 762,537 Z M 1307,238 C 1267,187 1221,149 1170,125 1118,100 1058,88 989,88 874,88 781,130 710,213 638,296 602,404 602,537 602,670 638,779 710,862 782,945 875,987 989,987 1058,987 1118,975 1170,950 1222,925 1268,887 1307,836 L 1307,967 1450,967 1450,231 C 1547,246 1624,290 1679,365 1734,439 1761,535 1761,653 1761,724 1751,791 1730,854 1709,917 1677,975 1634,1028 1565,1115 1480,1182 1381,1229 1281,1275 1172,1298 1055,1298 973,1298 894,1287 819,1266 744,1244 674,1212 610,1169 505,1101 424,1012 365,902 306,791 276,672 276,543 276,437 295,338 334,245 372,152 427,71 500,0 570,-69 651,-122 743,-159 835,-195 933,-213 1038,-213 1124,-213 1209,-198 1292,-170 1375,-140 1451,-99 1520,-45 L 1610,-156 C 1527,-221 1436,-270 1338,-305 1239,-339 1139,-356 1038,-356 915,-356 798,-334 689,-291 580,-247 482,-183 397,-100 312,-17 247,80 202,190 157,299 135,417 135,543 135,664 158,780 203,890 248,1000 313,1097 397,1180 483,1265 582,1330 695,1375 808,1420 927,1442 1053,1442 1194,1442 1326,1413 1447,1355 1568,1297 1669,1215 1751,1108 1801,1043 1839,972 1866,895 1892,818 1905,739 1905,657 1905,482 1852,343 1746,242 1640,141 1494,88 1307,84 L 1307,238 Z"/>
+ <glyph unicode="8" horiz-adv-x="1033" d="M 651,709 C 555,709 480,683 425,632 370,581 342,510 342,420 342,330 370,259 425,208 480,157 555,131 651,131 747,131 823,157 878,209 933,260 961,331 961,420 961,510 934,581 879,632 824,683 748,709 651,709 Z M 449,795 C 362,816 295,857 247,916 198,975 174,1048 174,1133 174,1252 217,1347 302,1416 387,1485 503,1520 651,1520 800,1520 916,1485 1001,1416 1086,1347 1128,1252 1128,1133 1128,1048 1104,975 1056,916 1007,857 940,816 854,795 951,772 1027,728 1082,662 1136,596 1163,515 1163,420 1163,275 1119,164 1031,87 942,10 816,-29 651,-29 486,-29 360,10 272,87 183,164 139,275 139,420 139,515 166,596 221,662 276,728 352,772 449,795 Z M 375,1114 C 375,1037 399,976 448,933 496,890 564,868 651,868 738,868 806,890 855,933 904,976 928,1037 928,1114 928,1191 904,1252 855,1295 806,1338 738,1360 651,1360 564,1360 496,1338 448,1295 399,1252 375,1191 375,1114 Z"/>
+ <glyph unicode="6" horiz-adv-x="1060" d="M 676,827 C 585,827 514,796 461,734 408,672 381,587 381,479 381,372 408,287 461,225 514,162 585,131 676,131 767,131 839,162 892,225 945,287 971,372 971,479 971,587 945,672 892,734 839,796 767,827 676,827 Z M 1077,1460 L 1077,1276 C 1026,1300 975,1318 924,1331 872,1344 821,1350 770,1350 637,1350 535,1305 465,1215 394,1125 354,989 344,807 383,865 433,910 492,941 551,972 617,987 688,987 838,987 957,942 1044,851 1131,760 1174,636 1174,479 1174,326 1129,203 1038,110 947,17 827,-29 676,-29 503,-29 371,37 280,170 189,302 143,494 143,745 143,981 199,1169 311,1310 423,1450 573,1520 762,1520 813,1520 864,1515 916,1505 967,1495 1021,1480 1077,1460 Z"/>
+ <glyph unicode="5" horiz-adv-x="1007" d="M 221,1493 L 1014,1493 1014,1323 406,1323 406,957 C 435,967 465,975 494,980 523,985 553,987 582,987 749,987 881,941 978,850 1075,759 1124,635 1124,479 1124,318 1074,194 974,105 874,16 733,-29 551,-29 488,-29 425,-24 360,-13 295,-2 227,14 158,35 L 158,238 C 218,205 280,181 344,165 408,149 476,141 547,141 662,141 754,171 821,232 888,293 922,375 922,479 922,583 888,665 821,726 754,787 662,817 547,817 493,817 439,811 386,799 332,787 277,768 221,743 L 221,1493 Z"/>
+ <glyph unicode="4" horiz-adv-x="1113" d="M 774,1317 L 264,520 774,520 774,1317 Z M 721,1493 L 975,1493 975,520 1188,520 1188,352 975,352 975,0 774,0 774,352 100,352 100,547 721,1493 Z"/>
+ <glyph unicode="3" horiz-adv-x="1007" d="M 831,805 C 928,784 1003,741 1058,676 1112,611 1139,530 1139,434 1139,287 1088,173 987,92 886,11 742,-29 555,-29 492,-29 428,-23 362,-11 295,2 227,20 156,45 L 156,240 C 212,207 273,183 340,166 407,149 476,141 549,141 676,141 772,166 839,216 905,266 938,339 938,434 938,522 907,591 846,641 784,690 698,715 588,715 L 414,715 414,881 596,881 C 695,881 771,901 824,941 877,980 903,1037 903,1112 903,1189 876,1248 822,1289 767,1330 689,1350 588,1350 533,1350 473,1344 410,1332 347,1320 277,1301 201,1276 L 201,1456 C 278,1477 350,1493 417,1504 484,1515 547,1520 606,1520 759,1520 881,1485 970,1416 1059,1346 1104,1252 1104,1133 1104,1050 1080,981 1033,924 986,867 918,827 831,805 Z"/>
+ <glyph unicode="2" horiz-adv-x="980" d="M 393,170 L 1098,170 1098,0 150,0 150,170 C 227,249 331,356 464,490 596,623 679,709 713,748 778,821 823,882 849,933 874,983 887,1032 887,1081 887,1160 859,1225 804,1275 748,1325 675,1350 586,1350 523,1350 456,1339 386,1317 315,1295 240,1262 160,1217 L 160,1421 C 241,1454 317,1478 388,1495 459,1512 523,1520 582,1520 737,1520 860,1481 952,1404 1044,1327 1090,1223 1090,1094 1090,1033 1079,975 1056,920 1033,865 991,800 930,725 913,706 860,650 771,558 682,465 556,336 393,170 Z"/>
+ <glyph unicode="1" horiz-adv-x="900" d="M 254,170 L 584,170 584,1309 225,1237 225,1421 582,1493 784,1493 784,170 1114,170 1114,0 254,0 254,170 Z"/>
+ <glyph unicode="0" horiz-adv-x="1033" d="M 651,1360 C 547,1360 469,1309 417,1207 364,1104 338,950 338,745 338,540 364,387 417,285 469,182 547,131 651,131 756,131 834,182 887,285 939,387 965,540 965,745 965,950 939,1104 887,1207 834,1309 756,1360 651,1360 Z M 651,1520 C 818,1520 946,1454 1035,1322 1123,1189 1167,997 1167,745 1167,494 1123,302 1035,170 946,37 818,-29 651,-29 484,-29 356,37 268,170 179,302 135,494 135,745 135,997 179,1189 268,1322 356,1454 484,1520 651,1520 Z"/>
+ <glyph unicode="." horiz-adv-x="239" d="M 219,254 L 430,254 430,0 219,0 219,254 Z"/>
+ <glyph unicode="-" horiz-adv-x="583" d="M 100,643 L 639,643 639,479 100,479 100,643 Z"/>
+ <glyph unicode=")" horiz-adv-x="477" d="M 164,1554 L 324,1554 C 424,1397 499,1243 549,1092 598,941 623,792 623,643 623,494 598,343 549,192 499,41 424,-113 324,-270 L 164,-270 C 253,-117 319,35 363,186 406,337 428,489 428,643 428,797 406,949 363,1099 319,1249 253,1401 164,1554 Z"/>
+ <glyph unicode="(" horiz-adv-x="477" d="M 635,1554 C 546,1401 479,1249 436,1099 393,949 371,797 371,643 371,489 393,337 437,186 480,35 546,-117 635,-270 L 475,-270 C 375,-113 300,41 251,192 201,343 176,494 176,643 176,792 201,941 250,1092 299,1243 374,1397 475,1554 L 635,1554 Z"/>
+ <glyph unicode=" " horiz-adv-x="635"/>
+ </font>
+ </defs>
+ <defs class="TextShapeIndex">
+ <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150 id151 id152 id153 id154"/>
+ </defs>
+ <defs class="EmbeddedBulletChars">
+ <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
+ </g>
+ <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
+ </g>
+ <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
+ </g>
+ <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
+ </g>
+ <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
+ </g>
+ <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
+ </g>
+ <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
+ </g>
+ <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
+ </g>
+ <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
+ </g>
+ <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
+ <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
+ </g>
+ </defs>
+ <defs class="TextEmbeddedBitmaps"/>
+ <g>
+ <g id="id2" class="Master_Slide">
+ <g id="bg-id2" class="Background"/>
+ <g id="bo-id2" class="BackgroundObjects"/>
+ </g>
+ </g>
+ <g class="SlideGroup">
+ <g>
+ <g id="container-id1">
+ <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
+ <g class="Page">
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id3">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2093" y="6287" width="4089" height="2260"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 6128,8493 L 6128,7223 2146,7223 2146,6340"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id4">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6514" y="6250" width="4460" height="2297"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10920,6303 L 10920,7223 6567,7223 6567,8493"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id5">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6844" y="6281" width="4171" height="2266"/>
+ <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 10961,8493 L 10961,7985 6897,7985 6897,6334"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id6">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11243" y="6225" width="4261" height="2322"/>
+ <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 15450,6278 L 15450,7985 11296,7985 11296,8493"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id7">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7252" y="6212" width="7841" height="1446"/>
+ <path fill="none" stroke="rgb(96,158,214)" stroke-width="106" stroke-linejoin="round" d="M 15039,6265 L 15039,7604 7305,7604 7305,6334"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id8">
+ <rect class="BoundingBox" stroke="none" fill="none" x="440" y="867" width="16140" height="12584"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="9" stroke-linejoin="miter" d="M 8510,13445 L 445,13445 445,872 16574,872 16574,13445 8510,13445 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id9">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4843" y="555" width="7605" height="670"/>
+ <g>
+ <defs>
+ <linearGradient id="gradient1" x1="8645" y1="564" x2="8645" y2="1215" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:rgb(209,209,209)"/>
+ <stop offset="1" style="stop-color:rgb(199,199,199)"/>
+ </linearGradient>
+ </defs>
+ <path style="fill:url(#gradient1)" d="M 8645,1215 L 4852,1215 4852,564 12438,564 12438,1215 8645,1215 Z"/>
+ </g>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 8645,1215 L 4852,1215 4852,564 12438,564 12438,1215 8645,1215 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="5102" y="1005"><tspan fill="rgb(0,0,0)" stroke="none">3-Node Atom Snowridge (3n-snr)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id10">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5047" y="9562" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 8667,9580 L 12269,9580 12269,12758 5065,12758 5065,9580 8667,9580 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 8667,9580 L 12269,9580 12269,12758 5065,12758 5065,9580 8667,9580 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id11">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8956" y="10528" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 10374,11712 L 8974,11712 8974,10546 11774,10546 11774,11712 10374,11712 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 10374,11712 L 8974,11712 8974,10546 11774,10546 11774,11712 10374,11712 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="9691" y="10850"><tspan fill="rgb(255,255,255)" stroke="none">Socket 1</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="9575" y="11203"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="9217" y="11556"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id12">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5637" y="10543" width="2837" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 7055,11727 L 5655,11727 5655,10561 8455,10561 8455,11727 7055,11727 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 7055,11727 L 5655,11727 5655,10561 8455,10561 8455,11727 7055,11727 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6372" y="10865"><tspan fill="rgb(255,255,255)" stroke="none">Socket 0</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="6256" y="11218"><tspan fill="rgb(255,255,255)" stroke="none">Intel Xeon</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="5898" y="11571"><tspan fill="rgb(255,255,255)" stroke="none">Platinum 8358</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id13">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5850" y="9356" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 6303,9799 L 5859,9799 5859,9365 6746,9365 6746,9799 6303,9799 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 6303,9799 L 5859,9799 5859,9365 6746,9365 6746,9799 6303,9799 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5965" y="9728"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id14">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6603" y="8540" width="42" height="783"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6626,9304 L 6621,8558"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6626,9304 L 6626,9304 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6621,8558 L 6621,8558 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id15">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6527" y="9296" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6611,9305 L 6685,9305 6685,9404 6536,9404 6536,9305 6611,9305 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6611,9305 L 6685,9305 6685,9404 6536,9404 6536,9305 6611,9305 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id16">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5884" y="9298" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 5968,9307 L 6042,9307 6042,9406 5893,9406 5893,9307 5968,9307 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 5968,9307 L 6042,9307 6042,9406 5893,9406 5893,9307 5968,9307 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id17">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5949" y="8588" width="39" height="737"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5967,9306 L 5969,8606"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5967,9306 L 5967,9306 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 5969,8606 L 5969,8606 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id18">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6372" y="8538" width="39" height="783"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6390,9302 L 6392,8556"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6390,9302 L 6390,9302 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6392,8556 L 6392,8556 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id19">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6307" y="9294" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6391,9303 L 6465,9303 6465,9402 6316,9402 6316,9303 6391,9303 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6391,9303 L 6465,9303 6465,9402 6316,9402 6316,9303 6391,9303 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id20">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6096" y="9296" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6180,9305 L 6254,9305 6254,9404 6105,9404 6105,9305 6180,9305 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6180,9305 L 6254,9305 6254,9404 6105,9404 6105,9305 6180,9305 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id21">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6171" y="8538" width="43" height="785"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6195,9304 L 6189,8556"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6195,9304 L 6195,9304 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6189,8556 L 6189,8556 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id22">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5980" y="9814" width="557" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 6258,9814 L 6535,9975 6397,9975 6397,10385 6535,10385 6258,10547 5980,10385 6119,10385 6119,9975 5980,9975 6258,9814 Z M 6535,9814 L 6535,9814 Z M 5980,10547 L 5980,10547 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id23">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6018" y="10012" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 6256,10355 L 6018,10355 6018,10012 6493,10012 6493,10355 6256,10355 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6027" y="10297"><tspan fill="rgb(255,255,255)" stroke="none">x16</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id24">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5923" y="8448" width="5500" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 5976,8628 L 5976,8628 5976,8621 5976,8615 5977,8608 5977,8602 5978,8595 5978,8589 5979,8583 5980,8577 5982,8571 5983,8565 5984,8559 5986,8554 5987,8549 5989,8544 5991,8539 5993,8534 5995,8530 5997,8526 5999,8522 6002,8519 6004,8516 6006,8513 6009,8510 6011,8508 6014,8506 6016,8505 6019,8504 6022,8503 6024,8502 6027,8502 11317,8501 11317,8501 11320,8501 11322,8502 11325,8503 11328,8504 11330,8505 11333,8507 11335,8509 11338,8512 11340,8515 11342,8518 11345,8521 11347,8525 11349,8529 11351,8533 11353,8538 11355,8543 11356,8548 11358,8553 11360,8558 11361,8564 11362,8570 11363,8576 11365,8582 11365,8588 11366,8594 11367,8601 11367,8607 11368,8614 11368,8620 11368,8627"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 5976,8628 L 5976,8628 Z"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 11369,8501 L 11369,8501 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id25">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5114" y="11739" width="1428" height="932"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5114" y="12127"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="5114" y="12592"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id26">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6295" y="12740" width="5102" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="6545" y="13288"><tspan fill="rgb(32,56,100)" stroke="none">Traffic Generator (TG)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id27">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8114" y="11887" width="1321" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8364" y="12294"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id28">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7540" y="11937" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7834,12007 L 7834,12007 7834,12011 7834,12014 7833,12018 7832,12021 7832,12025 7831,12028 7829,12032 7828,12035 7826,12038 7825,12042 7823,12045 7821,12048 7819,12050 7816,12053 7814,12056 7811,12058 7808,12061 7806,12063 7803,12065 7799,12067 7796,12068 7793,12070 7790,12071 7786,12073 7783,12074 7779,12074 7776,12075 7772,12076 7769,12076 7765,12076 7611,12076 7611,12076 7607,12076 7604,12076 7600,12075 7597,12074 7593,12074 7590,12073 7586,12071 7583,12070 7580,12068 7576,12067 7573,12065 7570,12063 7568,12061 7565,12058 7562,12056 7560,12053 7557,12050 7555,12048 7553,12045 7551,12041 7550,12038 7548,12035 7547,12032 7545,12028 7544,12025 7544,12021 7543,12018 7542,12014 7542,12011 7542,12007 7541,12007 7542,12007 7542,12003 7542,12000 7543,11996 7543,11993 7544,11989 7545,11986 7546,11982 7548,11979 7549,11976 7551,11973 7553,11970 7555,11967 7557,11964 7559,11961 7562,11959 7564,11956 7567,11954 7570,11952 7573,11949 7576,11948 7579,11946 7582,11944 7586,11943 7589,11942 7592,11941 7596,11940 7599,11939 7603,11938 7606,11938 7610,11938 7765,11937 7765,11938 7769,11938 7772,11938 7776,11939 7779,11939 7783,11940 7786,11941 7790,11942 7793,11944 7796,11945 7799,11947 7802,11949 7805,11951 7808,11953 7811,11955 7813,11958 7816,11960 7818,11963 7820,11966 7823,11969 7824,11972 7826,11975 7828,11978 7829,11982 7830,11985 7831,11988 7832,11992 7833,11995 7834,11999 7834,12002 7834,12006 7834,12007 Z M 7834,12076 L 7834,12076 Z M 7541,11937 L 7541,11937 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id29">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7541" y="12137" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7834,12207 L 7834,12207 7834,12211 7834,12214 7833,12218 7832,12221 7832,12225 7831,12228 7829,12232 7828,12235 7826,12238 7825,12242 7823,12245 7821,12248 7819,12250 7816,12253 7814,12256 7811,12258 7808,12261 7806,12263 7803,12265 7799,12267 7796,12268 7793,12270 7790,12271 7786,12273 7783,12274 7779,12274 7776,12275 7772,12276 7769,12276 7765,12276 7611,12276 7611,12276 7607,12276 7604,12276 7600,12275 7597,12274 7593,12274 7590,12273 7586,12271 7583,12270 7580,12268 7576,12267 7573,12265 7570,12263 7568,12261 7565,12258 7562,12256 7560,12253 7557,12250 7555,12248 7553,12245 7551,12241 7550,12238 7548,12235 7547,12232 7545,12228 7544,12225 7544,12221 7543,12218 7542,12214 7542,12211 7542,12207 7541,12207 7542,12207 7542,12203 7542,12200 7543,12196 7543,12193 7544,12189 7545,12186 7546,12182 7548,12179 7549,12176 7551,12173 7553,12170 7555,12167 7557,12164 7559,12161 7562,12159 7564,12156 7567,12154 7570,12152 7573,12149 7576,12148 7579,12146 7582,12144 7586,12143 7589,12142 7592,12141 7596,12140 7599,12139 7603,12138 7606,12138 7610,12138 7765,12137 7765,12138 7769,12138 7772,12138 7776,12139 7779,12139 7783,12140 7786,12141 7790,12142 7793,12144 7796,12145 7799,12147 7802,12149 7805,12151 7808,12153 7811,12155 7813,12158 7816,12160 7818,12163 7820,12166 7823,12169 7824,12172 7826,12175 7828,12178 7829,12182 7830,12185 7831,12188 7832,12192 7833,12195 7834,12199 7834,12202 7834,12206 7834,12207 Z M 7834,12276 L 7834,12276 Z M 7541,12137 L 7541,12137 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id30">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7541" y="12336" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7834,12406 L 7834,12406 7834,12410 7834,12413 7833,12417 7832,12420 7832,12424 7831,12427 7829,12431 7828,12434 7826,12437 7825,12441 7823,12444 7821,12447 7819,12449 7816,12452 7814,12455 7811,12457 7808,12460 7806,12462 7803,12464 7799,12466 7796,12467 7793,12469 7790,12470 7786,12472 7783,12473 7779,12473 7776,12474 7772,12475 7769,12475 7765,12475 7611,12475 7611,12475 7607,12475 7604,12475 7600,12474 7597,12473 7593,12473 7590,12472 7586,12470 7583,12469 7580,12467 7576,12466 7573,12464 7570,12462 7568,12460 7565,12457 7562,12455 7560,12452 7557,12449 7555,12447 7553,12444 7551,12440 7550,12437 7548,12434 7547,12431 7545,12427 7544,12424 7544,12420 7543,12417 7542,12413 7542,12410 7542,12406 7541,12406 7542,12406 7542,12402 7542,12399 7543,12395 7543,12392 7544,12388 7545,12385 7546,12381 7548,12378 7549,12375 7551,12372 7553,12369 7555,12366 7557,12363 7559,12360 7562,12358 7564,12355 7567,12353 7570,12351 7573,12348 7576,12347 7579,12345 7582,12343 7586,12342 7589,12341 7592,12340 7596,12339 7599,12338 7603,12337 7606,12337 7610,12337 7765,12336 7765,12337 7769,12337 7772,12337 7776,12338 7779,12338 7783,12339 7786,12340 7790,12341 7793,12343 7796,12344 7799,12346 7802,12348 7805,12350 7808,12352 7811,12354 7813,12357 7816,12359 7818,12362 7820,12365 7823,12368 7824,12371 7826,12374 7828,12377 7829,12381 7830,12384 7831,12387 7832,12391 7833,12394 7834,12398 7834,12401 7834,12405 7834,12406 Z M 7834,12475 L 7834,12475 Z M 7541,12336 L 7541,12336 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id31">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7191" y="11937" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7485,12007 L 7485,12007 7485,12011 7485,12014 7484,12018 7483,12021 7483,12025 7482,12028 7480,12032 7479,12035 7477,12038 7476,12042 7474,12045 7472,12048 7470,12050 7467,12053 7465,12056 7462,12058 7459,12061 7457,12063 7454,12065 7450,12067 7447,12068 7444,12070 7441,12071 7437,12073 7434,12074 7430,12074 7427,12075 7423,12076 7420,12076 7416,12076 7262,12076 7262,12076 7258,12076 7255,12076 7251,12075 7248,12074 7244,12074 7241,12073 7237,12071 7234,12070 7231,12068 7227,12067 7224,12065 7221,12063 7219,12061 7216,12058 7213,12056 7211,12053 7208,12050 7206,12048 7204,12045 7202,12041 7201,12038 7199,12035 7198,12032 7196,12028 7195,12025 7195,12021 7194,12018 7193,12014 7193,12011 7193,12007 7192,12007 7193,12007 7193,12003 7193,12000 7194,11996 7194,11993 7195,11989 7196,11986 7197,11982 7199,11979 7200,11976 7202,11973 7204,11970 7206,11967 7208,11964 7210,11961 7213,11959 7215,11956 7218,11954 7221,11952 7224,11949 7227,11948 7230,11946 7233,11944 7237,11943 7240,11942 7243,11941 7247,11940 7250,11939 7254,11938 7257,11938 7261,11938 7416,11937 7416,11938 7420,11938 7423,11938 7427,11939 7430,11939 7434,11940 7437,11941 7441,11942 7444,11944 7447,11945 7450,11947 7453,11949 7456,11951 7459,11953 7462,11955 7464,11958 7467,11960 7469,11963 7471,11966 7474,11969 7475,11972 7477,11975 7479,11978 7480,11982 7481,11985 7482,11988 7483,11992 7484,11995 7485,11999 7485,12002 7485,12006 7485,12007 Z M 7485,12076 L 7485,12076 Z M 7192,11937 L 7192,11937 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id32">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7192" y="12137" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7485,12207 L 7485,12207 7485,12211 7485,12214 7484,12218 7483,12221 7483,12225 7482,12228 7480,12232 7479,12235 7477,12238 7476,12242 7474,12245 7472,12248 7470,12250 7467,12253 7465,12256 7462,12258 7459,12261 7457,12263 7454,12265 7450,12267 7447,12268 7444,12270 7441,12271 7437,12273 7434,12274 7430,12274 7427,12275 7423,12276 7420,12276 7416,12276 7262,12276 7262,12276 7258,12276 7255,12276 7251,12275 7248,12274 7244,12274 7241,12273 7237,12271 7234,12270 7231,12268 7227,12267 7224,12265 7221,12263 7219,12261 7216,12258 7213,12256 7211,12253 7208,12250 7206,12248 7204,12245 7202,12241 7201,12238 7199,12235 7198,12232 7196,12228 7195,12225 7195,12221 7194,12218 7193,12214 7193,12211 7193,12207 7192,12207 7193,12207 7193,12203 7193,12200 7194,12196 7194,12193 7195,12189 7196,12186 7197,12182 7199,12179 7200,12176 7202,12173 7204,12170 7206,12167 7208,12164 7210,12161 7213,12159 7215,12156 7218,12154 7221,12152 7224,12149 7227,12148 7230,12146 7233,12144 7237,12143 7240,12142 7243,12141 7247,12140 7250,12139 7254,12138 7257,12138 7261,12138 7416,12137 7416,12138 7420,12138 7423,12138 7427,12139 7430,12139 7434,12140 7437,12141 7441,12142 7444,12144 7447,12145 7450,12147 7453,12149 7456,12151 7459,12153 7462,12155 7464,12158 7467,12160 7469,12163 7471,12166 7474,12169 7475,12172 7477,12175 7479,12178 7480,12182 7481,12185 7482,12188 7483,12192 7484,12195 7485,12199 7485,12202 7485,12206 7485,12207 Z M 7485,12276 L 7485,12276 Z M 7192,12137 L 7192,12137 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id33">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7192" y="12336" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 7485,12406 L 7485,12406 7485,12410 7485,12413 7484,12417 7483,12420 7483,12424 7482,12427 7480,12431 7479,12434 7477,12437 7476,12441 7474,12444 7472,12447 7470,12449 7467,12452 7465,12455 7462,12457 7459,12460 7457,12462 7454,12464 7450,12466 7447,12467 7444,12469 7441,12470 7437,12472 7434,12473 7430,12473 7427,12474 7423,12475 7420,12475 7416,12475 7262,12475 7262,12475 7258,12475 7255,12475 7251,12474 7248,12473 7244,12473 7241,12472 7237,12470 7234,12469 7231,12467 7227,12466 7224,12464 7221,12462 7219,12460 7216,12457 7213,12455 7211,12452 7208,12449 7206,12447 7204,12444 7202,12440 7201,12437 7199,12434 7198,12431 7196,12427 7195,12424 7195,12420 7194,12417 7193,12413 7193,12410 7193,12406 7192,12406 7193,12406 7193,12402 7193,12399 7194,12395 7194,12392 7195,12388 7196,12385 7197,12381 7199,12378 7200,12375 7202,12372 7204,12369 7206,12366 7208,12363 7210,12360 7213,12358 7215,12355 7218,12353 7221,12351 7224,12348 7227,12347 7230,12345 7233,12343 7237,12342 7240,12341 7243,12340 7247,12339 7250,12338 7254,12337 7257,12337 7261,12337 7416,12336 7416,12337 7420,12337 7423,12337 7427,12338 7430,12338 7434,12339 7437,12340 7441,12341 7444,12343 7447,12344 7450,12346 7453,12348 7456,12350 7459,12352 7462,12354 7464,12357 7467,12359 7469,12362 7471,12365 7474,12368 7475,12371 7477,12374 7479,12377 7480,12381 7481,12384 7482,12387 7483,12391 7484,12394 7485,12398 7485,12401 7485,12405 7485,12406 Z M 7485,12475 L 7485,12475 Z M 7192,12336 L 7192,12336 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id34">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7870" y="11940" width="295" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8164,12010 L 8164,12010 8164,12014 8164,12017 8163,12021 8162,12024 8162,12028 8161,12031 8159,12035 8158,12038 8156,12041 8155,12045 8153,12048 8151,12051 8149,12053 8146,12056 8144,12059 8141,12061 8138,12064 8136,12066 8133,12068 8129,12070 8126,12071 8123,12073 8120,12074 8116,12076 8113,12077 8109,12077 8106,12078 8102,12079 8099,12079 8095,12079 7941,12079 7941,12079 7937,12079 7934,12079 7930,12078 7927,12077 7923,12077 7920,12076 7916,12074 7913,12073 7910,12071 7906,12070 7903,12068 7900,12066 7898,12064 7895,12061 7892,12059 7890,12056 7887,12053 7885,12051 7883,12048 7881,12044 7880,12041 7878,12038 7877,12035 7875,12031 7874,12028 7874,12024 7873,12021 7872,12017 7872,12014 7872,12010 7871,12010 7872,12010 7872,12006 7872,12003 7873,11999 7873,11996 7874,11992 7875,11989 7876,11985 7878,11982 7879,11979 7881,11976 7883,11973 7885,11970 7887,11967 7889,11964 7892,11962 7894,11959 7897,11957 7900,11955 7903,11952 7906,11951 7909,11949 7912,11947 7916,11946 7919,11945 7922,11944 7926,11943 7929,11942 7933,11941 7936,11941 7940,11941 8095,11940 8095,11941 8099,11941 8102,11941 8106,11942 8109,11942 8113,11943 8116,11944 8120,11945 8123,11947 8126,11948 8129,11950 8132,11952 8135,11954 8138,11956 8141,11958 8143,11961 8146,11963 8148,11966 8150,11969 8153,11972 8154,11975 8156,11978 8158,11981 8159,11985 8160,11988 8161,11991 8162,11995 8163,11998 8164,12002 8164,12005 8164,12009 8164,12010 Z M 8164,12079 L 8164,12079 Z M 7871,11940 L 7871,11940 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id35">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7871" y="12140" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8164,12210 L 8164,12210 8164,12214 8164,12217 8163,12221 8162,12224 8162,12228 8161,12231 8159,12235 8158,12238 8156,12241 8155,12245 8153,12248 8151,12251 8149,12253 8146,12256 8144,12259 8141,12261 8138,12264 8136,12266 8133,12268 8129,12270 8126,12271 8123,12273 8120,12274 8116,12276 8113,12277 8109,12277 8106,12278 8102,12279 8099,12279 8095,12279 7941,12279 7941,12279 7937,12279 7934,12279 7930,12278 7927,12277 7923,12277 7920,12276 7916,12274 7913,12273 7910,12271 7906,12270 7903,12268 7900,12266 7898,12264 7895,12261 7892,12259 7890,12256 7887,12253 7885,12251 7883,12248 7881,12244 7880,12241 7878,12238 7877,12235 7875,12231 7874,12228 7874,12224 7873,12221 7872,12217 7872,12214 7872,12210 7871,12210 7872,12210 7872,12206 7872,12203 7873,12199 7873,12196 7874,12192 7875,12189 7876,12185 7878,12182 7879,12179 7881,12176 7883,12173 7885,12170 7887,12167 7889,12164 7892,12162 7894,12159 7897,12157 7900,12155 7903,12152 7906,12151 7909,12149 7912,12147 7916,12146 7919,12145 7922,12144 7926,12143 7929,12142 7933,12141 7936,12141 7940,12141 8095,12140 8095,12141 8099,12141 8102,12141 8106,12142 8109,12142 8113,12143 8116,12144 8120,12145 8123,12147 8126,12148 8129,12150 8132,12152 8135,12154 8138,12156 8141,12158 8143,12161 8146,12163 8148,12166 8150,12169 8153,12172 8154,12175 8156,12178 8158,12181 8159,12185 8160,12188 8161,12191 8162,12195 8163,12198 8164,12202 8164,12205 8164,12209 8164,12210 Z M 8164,12279 L 8164,12279 Z M 7871,12140 L 7871,12140 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id36">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7871" y="12338" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 8164,12409 L 8164,12409 8164,12413 8164,12416 8163,12420 8162,12423 8162,12427 8161,12430 8159,12434 8158,12437 8156,12440 8155,12444 8153,12447 8151,12450 8149,12452 8146,12455 8144,12458 8141,12460 8138,12463 8136,12465 8133,12467 8129,12469 8126,12470 8123,12472 8120,12473 8116,12475 8113,12476 8109,12476 8106,12477 8102,12478 8099,12478 8095,12478 7941,12478 7941,12478 7937,12478 7934,12478 7930,12477 7927,12476 7923,12476 7920,12475 7916,12473 7913,12472 7910,12470 7906,12469 7903,12467 7900,12465 7898,12463 7895,12460 7892,12458 7890,12455 7887,12452 7885,12450 7883,12447 7881,12443 7880,12440 7878,12437 7877,12434 7875,12430 7874,12427 7874,12423 7873,12420 7872,12416 7872,12413 7872,12409 7871,12409 7872,12409 7872,12405 7872,12402 7873,12398 7873,12395 7874,12391 7875,12388 7876,12384 7878,12381 7879,12378 7881,12375 7883,12372 7885,12369 7887,12366 7889,12363 7892,12361 7894,12358 7897,12356 7900,12354 7903,12351 7906,12350 7909,12348 7912,12346 7916,12345 7919,12344 7922,12343 7926,12342 7929,12341 7933,12340 7936,12340 7940,12340 8095,12339 8095,12340 8099,12340 8102,12340 8106,12341 8109,12341 8113,12342 8116,12343 8120,12344 8123,12346 8126,12347 8129,12349 8132,12351 8135,12353 8138,12355 8141,12357 8143,12360 8146,12362 8148,12365 8150,12368 8153,12371 8154,12374 8156,12377 8158,12380 8159,12384 8160,12387 8161,12390 8162,12394 8163,12397 8164,12401 8164,12404 8164,12408 8164,12409 Z M 8164,12478 L 8164,12478 Z M 7871,12339 L 7871,12339 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id37">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9663" y="11963" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9956,12033 L 9956,12033 9956,12037 9956,12040 9955,12044 9954,12047 9954,12051 9953,12054 9951,12058 9950,12061 9948,12064 9947,12068 9945,12071 9943,12074 9941,12076 9938,12079 9936,12082 9933,12084 9930,12087 9928,12089 9925,12091 9921,12093 9918,12094 9915,12096 9912,12097 9908,12099 9905,12100 9901,12100 9898,12101 9894,12102 9891,12102 9887,12102 9733,12102 9733,12102 9729,12102 9726,12102 9722,12101 9719,12100 9715,12100 9712,12099 9708,12097 9705,12096 9702,12094 9698,12093 9695,12091 9692,12089 9690,12087 9687,12084 9684,12082 9682,12079 9679,12076 9677,12074 9675,12071 9673,12067 9672,12064 9670,12061 9669,12058 9667,12054 9666,12051 9666,12047 9665,12044 9664,12040 9664,12037 9664,12033 9663,12033 9664,12033 9664,12029 9664,12026 9665,12022 9665,12019 9666,12015 9667,12012 9668,12008 9670,12005 9671,12002 9673,11999 9675,11996 9677,11993 9679,11990 9681,11987 9684,11985 9686,11982 9689,11980 9692,11978 9695,11975 9698,11974 9701,11972 9704,11970 9708,11969 9711,11968 9714,11967 9718,11966 9721,11965 9725,11964 9728,11964 9732,11964 9887,11963 9887,11964 9891,11964 9894,11964 9898,11965 9901,11965 9905,11966 9908,11967 9912,11968 9915,11970 9918,11971 9921,11973 9924,11975 9927,11977 9930,11979 9933,11981 9935,11984 9938,11986 9940,11989 9942,11992 9945,11995 9946,11998 9948,12001 9950,12004 9951,12008 9952,12011 9953,12014 9954,12018 9955,12021 9956,12025 9956,12028 9956,12032 9956,12033 Z M 9956,12102 L 9956,12102 Z M 9663,11963 L 9663,11963 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id38">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9663" y="12162" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9956,12232 L 9956,12232 9956,12236 9956,12239 9955,12243 9954,12246 9954,12250 9953,12253 9951,12257 9950,12260 9948,12263 9947,12267 9945,12270 9943,12273 9941,12275 9938,12278 9936,12281 9933,12283 9930,12286 9928,12288 9925,12290 9921,12292 9918,12293 9915,12295 9912,12296 9908,12298 9905,12299 9901,12299 9898,12300 9894,12301 9891,12301 9887,12301 9733,12301 9733,12301 9729,12301 9726,12301 9722,12300 9719,12299 9715,12299 9712,12298 9708,12296 9705,12295 9702,12293 9698,12292 9695,12290 9692,12288 9690,12286 9687,12283 9684,12281 9682,12278 9679,12275 9677,12273 9675,12270 9673,12266 9672,12263 9670,12260 9669,12257 9667,12253 9666,12250 9666,12246 9665,12243 9664,12239 9664,12236 9664,12232 9663,12232 9664,12232 9664,12228 9664,12225 9665,12221 9665,12218 9666,12214 9667,12211 9668,12207 9670,12204 9671,12201 9673,12198 9675,12195 9677,12192 9679,12189 9681,12186 9684,12184 9686,12181 9689,12179 9692,12177 9695,12174 9698,12173 9701,12171 9704,12169 9708,12168 9711,12167 9714,12166 9718,12165 9721,12164 9725,12163 9728,12163 9732,12163 9887,12162 9887,12163 9891,12163 9894,12163 9898,12164 9901,12164 9905,12165 9908,12166 9912,12167 9915,12169 9918,12170 9921,12172 9924,12174 9927,12176 9930,12178 9933,12180 9935,12183 9938,12185 9940,12188 9942,12191 9945,12194 9946,12197 9948,12200 9950,12203 9951,12207 9952,12210 9953,12213 9954,12217 9955,12220 9956,12224 9956,12227 9956,12231 9956,12232 Z M 9956,12301 L 9956,12301 Z M 9663,12162 L 9663,12162 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id39">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9663" y="12362" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9956,12432 L 9956,12432 9956,12436 9956,12439 9955,12443 9954,12446 9954,12450 9953,12453 9951,12457 9950,12460 9948,12463 9947,12467 9945,12470 9943,12473 9941,12475 9938,12478 9936,12481 9933,12483 9930,12486 9928,12488 9925,12490 9921,12492 9918,12493 9915,12495 9912,12496 9908,12498 9905,12499 9901,12499 9898,12500 9894,12501 9891,12501 9887,12501 9733,12501 9733,12501 9729,12501 9726,12501 9722,12500 9719,12499 9715,12499 9712,12498 9708,12496 9705,12495 9702,12493 9698,12492 9695,12490 9692,12488 9690,12486 9687,12483 9684,12481 9682,12478 9679,12475 9677,12473 9675,12470 9673,12466 9672,12463 9670,12460 9669,12457 9667,12453 9666,12450 9666,12446 9665,12443 9664,12439 9664,12436 9664,12432 9663,12432 9664,12432 9664,12428 9664,12425 9665,12421 9665,12418 9666,12414 9667,12411 9668,12407 9670,12404 9671,12401 9673,12398 9675,12395 9677,12392 9679,12389 9681,12386 9684,12384 9686,12381 9689,12379 9692,12377 9695,12374 9698,12373 9701,12371 9704,12369 9708,12368 9711,12367 9714,12366 9718,12365 9721,12364 9725,12363 9728,12363 9732,12363 9887,12362 9887,12363 9891,12363 9894,12363 9898,12364 9901,12364 9905,12365 9908,12366 9912,12367 9915,12369 9918,12370 9921,12372 9924,12374 9927,12376 9930,12378 9933,12380 9935,12383 9938,12385 9940,12388 9942,12391 9945,12394 9946,12397 9948,12400 9950,12403 9951,12407 9952,12410 9953,12413 9954,12417 9955,12420 9956,12424 9956,12427 9956,12431 9956,12432 Z M 9956,12501 L 9956,12501 Z M 9663,12362 L 9663,12362 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id40">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9314" y="11963" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9607,12033 L 9607,12033 9607,12037 9607,12040 9606,12044 9605,12047 9605,12051 9604,12054 9602,12058 9601,12061 9599,12064 9598,12068 9596,12071 9594,12074 9592,12076 9589,12079 9587,12082 9584,12084 9581,12087 9579,12089 9576,12091 9572,12093 9569,12094 9566,12096 9563,12097 9559,12099 9556,12100 9552,12100 9549,12101 9545,12102 9542,12102 9538,12102 9384,12102 9384,12102 9380,12102 9377,12102 9373,12101 9370,12100 9366,12100 9363,12099 9359,12097 9356,12096 9353,12094 9349,12093 9346,12091 9343,12089 9341,12087 9338,12084 9335,12082 9333,12079 9330,12076 9328,12074 9326,12071 9324,12067 9323,12064 9321,12061 9320,12058 9318,12054 9317,12051 9317,12047 9316,12044 9315,12040 9315,12037 9315,12033 9314,12033 9315,12033 9315,12029 9315,12026 9316,12022 9316,12019 9317,12015 9318,12012 9319,12008 9321,12005 9322,12002 9324,11999 9326,11996 9328,11993 9330,11990 9332,11987 9335,11985 9337,11982 9340,11980 9343,11978 9346,11975 9349,11974 9352,11972 9355,11970 9359,11969 9362,11968 9365,11967 9369,11966 9372,11965 9376,11964 9379,11964 9383,11964 9538,11963 9538,11964 9542,11964 9545,11964 9549,11965 9552,11965 9556,11966 9559,11967 9563,11968 9566,11970 9569,11971 9572,11973 9575,11975 9578,11977 9581,11979 9584,11981 9586,11984 9589,11986 9591,11989 9593,11992 9596,11995 9597,11998 9599,12001 9601,12004 9602,12008 9603,12011 9604,12014 9605,12018 9606,12021 9607,12025 9607,12028 9607,12032 9607,12033 Z M 9607,12102 L 9607,12102 Z M 9314,11963 L 9314,11963 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id41">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9314" y="12162" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9607,12232 L 9607,12232 9607,12236 9607,12239 9606,12243 9605,12246 9605,12250 9604,12253 9602,12257 9601,12260 9599,12263 9598,12267 9596,12270 9594,12273 9592,12275 9589,12278 9587,12281 9584,12283 9581,12286 9579,12288 9576,12290 9572,12292 9569,12293 9566,12295 9563,12296 9559,12298 9556,12299 9552,12299 9549,12300 9545,12301 9542,12301 9538,12301 9384,12301 9384,12301 9380,12301 9377,12301 9373,12300 9370,12299 9366,12299 9363,12298 9359,12296 9356,12295 9353,12293 9349,12292 9346,12290 9343,12288 9341,12286 9338,12283 9335,12281 9333,12278 9330,12275 9328,12273 9326,12270 9324,12266 9323,12263 9321,12260 9320,12257 9318,12253 9317,12250 9317,12246 9316,12243 9315,12239 9315,12236 9315,12232 9314,12232 9315,12232 9315,12228 9315,12225 9316,12221 9316,12218 9317,12214 9318,12211 9319,12207 9321,12204 9322,12201 9324,12198 9326,12195 9328,12192 9330,12189 9332,12186 9335,12184 9337,12181 9340,12179 9343,12177 9346,12174 9349,12173 9352,12171 9355,12169 9359,12168 9362,12167 9365,12166 9369,12165 9372,12164 9376,12163 9379,12163 9383,12163 9538,12162 9538,12163 9542,12163 9545,12163 9549,12164 9552,12164 9556,12165 9559,12166 9563,12167 9566,12169 9569,12170 9572,12172 9575,12174 9578,12176 9581,12178 9584,12180 9586,12183 9589,12185 9591,12188 9593,12191 9596,12194 9597,12197 9599,12200 9601,12203 9602,12207 9603,12210 9604,12213 9605,12217 9606,12220 9607,12224 9607,12227 9607,12231 9607,12232 Z M 9607,12301 L 9607,12301 Z M 9314,12162 L 9314,12162 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id42">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9314" y="12362" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 9607,12432 L 9607,12432 9607,12436 9607,12439 9606,12443 9605,12446 9605,12450 9604,12453 9602,12457 9601,12460 9599,12463 9598,12467 9596,12470 9594,12473 9592,12475 9589,12478 9587,12481 9584,12483 9581,12486 9579,12488 9576,12490 9572,12492 9569,12493 9566,12495 9563,12496 9559,12498 9556,12499 9552,12499 9549,12500 9545,12501 9542,12501 9538,12501 9384,12501 9384,12501 9380,12501 9377,12501 9373,12500 9370,12499 9366,12499 9363,12498 9359,12496 9356,12495 9353,12493 9349,12492 9346,12490 9343,12488 9341,12486 9338,12483 9335,12481 9333,12478 9330,12475 9328,12473 9326,12470 9324,12466 9323,12463 9321,12460 9320,12457 9318,12453 9317,12450 9317,12446 9316,12443 9315,12439 9315,12436 9315,12432 9314,12432 9315,12432 9315,12428 9315,12425 9316,12421 9316,12418 9317,12414 9318,12411 9319,12407 9321,12404 9322,12401 9324,12398 9326,12395 9328,12392 9330,12389 9332,12386 9335,12384 9337,12381 9340,12379 9343,12377 9346,12374 9349,12373 9352,12371 9355,12369 9359,12368 9362,12367 9365,12366 9369,12365 9372,12364 9376,12363 9379,12363 9383,12363 9538,12362 9538,12363 9542,12363 9545,12363 9549,12364 9552,12364 9556,12365 9559,12366 9563,12367 9566,12369 9569,12370 9572,12372 9575,12374 9578,12376 9581,12378 9584,12380 9586,12383 9589,12385 9591,12388 9593,12391 9596,12394 9597,12397 9599,12400 9601,12403 9602,12407 9603,12410 9604,12413 9605,12417 9606,12420 9607,12424 9607,12427 9607,12431 9607,12432 Z M 9607,12501 L 9607,12501 Z M 9314,12362 L 9314,12362 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id43">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9994" y="11965" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10287,12035 L 10287,12035 10287,12039 10287,12042 10286,12046 10285,12049 10285,12053 10284,12056 10282,12060 10281,12063 10279,12066 10278,12070 10276,12073 10274,12076 10272,12078 10269,12081 10267,12084 10264,12086 10261,12089 10259,12091 10256,12093 10252,12095 10249,12096 10246,12098 10243,12099 10239,12101 10236,12102 10232,12102 10229,12103 10225,12104 10222,12104 10218,12104 10064,12104 10064,12104 10060,12104 10057,12104 10053,12103 10050,12102 10046,12102 10043,12101 10039,12099 10036,12098 10033,12096 10029,12095 10026,12093 10023,12091 10021,12089 10018,12086 10015,12084 10013,12081 10010,12078 10008,12076 10006,12073 10004,12069 10003,12066 10001,12063 10000,12060 9998,12056 9997,12053 9997,12049 9996,12046 9995,12042 9995,12039 9995,12035 9994,12035 9995,12035 9995,12031 9995,12028 9996,12024 9996,12021 9997,12017 9998,12014 9999,12010 10001,12007 10002,12004 10004,12001 10006,11998 10008,11995 10010,11992 10012,11989 10015,11987 10017,11984 10020,11982 10023,11980 10026,11977 10029,11976 10032,11974 10035,11972 10039,11971 10042,11970 10045,11969 10049,11968 10052,11967 10056,11966 10059,11966 10063,11966 10218,11965 10218,11966 10222,11966 10225,11966 10229,11967 10232,11967 10236,11968 10239,11969 10243,11970 10246,11972 10249,11973 10252,11975 10255,11977 10258,11979 10261,11981 10264,11983 10266,11986 10269,11988 10271,11991 10273,11994 10276,11997 10277,12000 10279,12003 10281,12006 10282,12010 10283,12013 10284,12016 10285,12020 10286,12023 10287,12027 10287,12030 10287,12034 10287,12035 Z M 10287,12104 L 10287,12104 Z M 9994,11965 L 9994,11965 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id44">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9994" y="12165" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10287,12235 L 10287,12235 10287,12239 10287,12242 10286,12246 10285,12249 10285,12253 10284,12256 10282,12260 10281,12263 10279,12266 10278,12270 10276,12273 10274,12276 10272,12278 10269,12281 10267,12284 10264,12286 10261,12289 10259,12291 10256,12293 10252,12295 10249,12296 10246,12298 10243,12299 10239,12301 10236,12302 10232,12302 10229,12303 10225,12304 10222,12304 10218,12304 10064,12304 10064,12304 10060,12304 10057,12304 10053,12303 10050,12302 10046,12302 10043,12301 10039,12299 10036,12298 10033,12296 10029,12295 10026,12293 10023,12291 10021,12289 10018,12286 10015,12284 10013,12281 10010,12278 10008,12276 10006,12273 10004,12269 10003,12266 10001,12263 10000,12260 9998,12256 9997,12253 9997,12249 9996,12246 9995,12242 9995,12239 9995,12235 9994,12235 9995,12235 9995,12231 9995,12228 9996,12224 9996,12221 9997,12217 9998,12214 9999,12210 10001,12207 10002,12204 10004,12201 10006,12198 10008,12195 10010,12192 10012,12189 10015,12187 10017,12184 10020,12182 10023,12180 10026,12177 10029,12176 10032,12174 10035,12172 10039,12171 10042,12170 10045,12169 10049,12168 10052,12167 10056,12166 10059,12166 10063,12166 10218,12165 10218,12166 10222,12166 10225,12166 10229,12167 10232,12167 10236,12168 10239,12169 10243,12170 10246,12172 10249,12173 10252,12175 10255,12177 10258,12179 10261,12181 10264,12183 10266,12186 10269,12188 10271,12191 10273,12194 10276,12197 10277,12200 10279,12203 10281,12206 10282,12210 10283,12213 10284,12216 10285,12220 10286,12223 10287,12227 10287,12230 10287,12234 10287,12235 Z M 10287,12304 L 10287,12304 Z M 9994,12165 L 9994,12165 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id45">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9994" y="12365" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 10287,12435 L 10287,12435 10287,12439 10287,12442 10286,12446 10285,12449 10285,12453 10284,12456 10282,12460 10281,12463 10279,12466 10278,12470 10276,12473 10274,12476 10272,12478 10269,12481 10267,12484 10264,12486 10261,12489 10259,12491 10256,12493 10252,12495 10249,12496 10246,12498 10243,12499 10239,12501 10236,12502 10232,12502 10229,12503 10225,12504 10222,12504 10218,12504 10064,12504 10064,12504 10060,12504 10057,12504 10053,12503 10050,12502 10046,12502 10043,12501 10039,12499 10036,12498 10033,12496 10029,12495 10026,12493 10023,12491 10021,12489 10018,12486 10015,12484 10013,12481 10010,12478 10008,12476 10006,12473 10004,12469 10003,12466 10001,12463 10000,12460 9998,12456 9997,12453 9997,12449 9996,12446 9995,12442 9995,12439 9995,12435 9994,12435 9995,12435 9995,12431 9995,12428 9996,12424 9996,12421 9997,12417 9998,12414 9999,12410 10001,12407 10002,12404 10004,12401 10006,12398 10008,12395 10010,12392 10012,12389 10015,12387 10017,12384 10020,12382 10023,12380 10026,12377 10029,12376 10032,12374 10035,12372 10039,12371 10042,12370 10045,12369 10049,12368 10052,12367 10056,12366 10059,12366 10063,12366 10218,12365 10218,12366 10222,12366 10225,12366 10229,12367 10232,12367 10236,12368 10239,12369 10243,12370 10246,12372 10249,12373 10252,12375 10255,12377 10258,12379 10261,12381 10264,12383 10266,12386 10269,12388 10271,12391 10273,12394 10276,12397 10277,12400 10279,12403 10281,12406 10282,12410 10283,12413 10284,12416 10285,12420 10286,12423 10287,12427 10287,12430 10287,12434 10287,12435 Z M 10287,12504 L 10287,12504 Z M 9994,12365 L 9994,12365 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id46">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4891" y="9646" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5141" y="10033"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="5141" y="10363"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id47">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8292" y="10662" width="891" height="1019"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 8292,11170 L 8551,10662 8551,10916 8922,10916 8922,10662 9182,11170 8922,11679 8922,11424 8551,11424 8551,11679 8292,11170 Z M 8292,10662 L 8292,10662 Z M 9182,11679 L 9182,11679 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id48">
+ <rect class="BoundingBox" stroke="none" fill="none" x="8447" y="10942" width="609" height="382"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 8751,11323 L 8447,11323 8447,10942 9055,10942 9055,11323 8751,11323 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8515" y="11246"><tspan fill="rgb(255,255,255)" stroke="none">UPI</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id49">
+ <rect class="BoundingBox" stroke="none" fill="none" x="893" y="1920" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 4513,5116 L 911,5116 911,1938 8115,1938 8115,5116 4513,5116 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 4513,5116 L 911,5116 911,1938 8115,1938 8115,5116 4513,5116 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1011" y="2326"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="1011" y="2791"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id50">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1903" y="5020" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 2356,5463 L 1912,5463 1912,5029 2799,5029 2799,5463 2356,5463 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 2356,5463 L 1912,5463 1912,5029 2799,5029 2799,5463 2356,5463 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2018" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id51">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2016" y="5506" width="42" height="737"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2034,5524 L 2039,6224"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2034,5524 L 2034,5524 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2039,6224 L 2039,6224 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id52">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1935" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2019,5523 L 1944,5523 1944,5424 2093,5424 2093,5523 2019,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2019,5523 L 1944,5523 1944,5424 2093,5424 2093,5523 2019,5523 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id53">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2579" y="5413" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2663,5521 L 2588,5521 2588,5422 2737,5422 2737,5521 2663,5521 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2663,5521 L 2588,5521 2588,5422 2737,5422 2737,5521 2663,5521 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id54">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2643" y="5504" width="39" height="785"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2663,5522 L 2661,6270"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2663,5522 L 2663,5522 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2661,6270 L 2661,6270 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id55">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2219" y="5508" width="39" height="783"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2239,5526 L 2237,6272"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2239,5526 L 2239,5526 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2237,6272 L 2237,6272 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id56">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2155" y="5417" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2239,5525 L 2164,5525 2164,5426 2313,5426 2313,5525 2239,5525 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2239,5525 L 2164,5525 2164,5426 2313,5426 2313,5525 2239,5525 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id57">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2366" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 2450,5523 L 2375,5523 2375,5424 2524,5424 2524,5523 2450,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 2450,5523 L 2375,5523 2375,5424 2524,5424 2524,5523 2450,5523 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id58">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2446" y="5506" width="43" height="785"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2464,5524 L 2470,6272"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2464,5524 L 2464,5524 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 2470,6272 L 2470,6272 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id59">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1594" y="3088" width="5982" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 4585,4272 L 1612,4272 1612,3106 7557,3106 7557,4272 4585,4272 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 4585,4272 L 1612,4272 1612,3106 7557,3106 7557,4272 4585,4272 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="2308" y="3763"><tspan fill="rgb(255,255,255)" stroke="none">Intel Atom P5362 @2.20GHz</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id60">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2109" y="4291" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 2386,5024 L 2109,4863 2247,4863 2247,4453 2109,4453 2386,4291 2664,4453 2525,4453 2525,4863 2664,4863 2386,5024 Z M 2109,5024 L 2109,5024 Z M 2664,4291 L 2664,4291 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id61">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2147" y="4481" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 2385,4824 L 2147,4824 2147,4481 2622,4481 2622,4824 2385,4824 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2234" y="4766"><tspan fill="rgb(255,255,255)" stroke="none">x4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id62">
+ <rect class="BoundingBox" stroke="none" fill="none" x="4059" y="2289" width="1321" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4309" y="2696"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id63">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6631" y="5010" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 7084,5453 L 6640,5453 6640,5019 7527,5019 7527,5453 7084,5453 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 7084,5453 L 6640,5453 6640,5019 7527,5019 7527,5453 7084,5453 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6746" y="5317"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id64">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6744" y="5496" width="42" height="783"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6762,5514 L 6767,6260"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6762,5514 L 6762,5514 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6767,6260 L 6767,6260 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id65">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6663" y="5405" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6747,5513 L 6672,5513 6672,5414 6821,5414 6821,5513 6747,5513 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6747,5513 L 6672,5513 6672,5414 6821,5414 6821,5513 6747,5513 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id66">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7306" y="5403" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7390,5511 L 7315,5511 7315,5412 7464,5412 7464,5511 7390,5511 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7390,5511 L 7315,5511 7315,5412 7464,5412 7464,5511 7390,5511 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id67">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7371" y="5494" width="39" height="737"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7391,5512 L 7389,6212"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7391,5512 L 7391,5512 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7389,6212 L 7389,6212 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id68">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6947" y="5498" width="39" height="783"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6967,5516 L 6965,6262"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6967,5516 L 6967,5516 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 6965,6262 L 6965,6262 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id69">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6883" y="5407" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 6967,5515 L 6892,5515 6892,5416 7041,5416 7041,5515 6967,5515 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 6967,5515 L 6892,5515 6892,5416 7041,5416 7041,5515 6967,5515 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id70">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7094" y="5405" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 7178,5513 L 7103,5513 7103,5414 7252,5414 7252,5513 7178,5513 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 7178,5513 L 7103,5513 7103,5414 7252,5414 7252,5513 7178,5513 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id71">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7174" y="5496" width="43" height="785"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7192,5514 L 7198,6262"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7192,5514 L 7192,5514 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 7198,6262 L 7198,6262 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id72">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6753" y="4272" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 7030,5005 L 6753,4844 6891,4844 6891,4434 6753,4434 7030,4272 7308,4434 7169,4434 7169,4844 7308,4844 7030,5005 Z M 6753,5005 L 6753,5005 Z M 7308,4272 L 7308,4272 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id73">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6792" y="4462" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 7030,4805 L 6792,4805 6792,4462 7267,4462 7267,4805 7030,4805 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6879" y="4747"><tspan fill="rgb(255,255,255)" stroke="none">x4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id74">
+ <rect class="BoundingBox" stroke="none" fill="none" x="1307" y="1254" width="6435" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="1557" y="1802"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 1 (SUT1)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id75">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3376" y="2334" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3670,2404 L 3670,2404 3670,2408 3670,2411 3669,2415 3668,2418 3668,2422 3667,2425 3665,2429 3664,2432 3662,2435 3661,2439 3659,2442 3657,2445 3655,2447 3652,2450 3650,2453 3647,2455 3644,2458 3642,2460 3639,2462 3635,2464 3632,2465 3629,2467 3626,2468 3622,2470 3619,2471 3615,2471 3612,2472 3608,2473 3605,2473 3601,2473 3447,2473 3447,2473 3443,2473 3440,2473 3436,2472 3433,2471 3429,2471 3426,2470 3422,2468 3419,2467 3416,2465 3412,2464 3409,2462 3406,2460 3404,2458 3401,2455 3398,2453 3396,2450 3393,2447 3391,2445 3389,2442 3387,2438 3386,2435 3384,2432 3383,2429 3381,2425 3380,2422 3380,2418 3379,2415 3378,2411 3378,2408 3378,2404 3377,2404 3378,2404 3378,2400 3378,2397 3379,2393 3379,2390 3380,2386 3381,2383 3382,2379 3384,2376 3385,2373 3387,2370 3389,2367 3391,2364 3393,2361 3395,2358 3398,2356 3400,2353 3403,2351 3406,2349 3409,2346 3412,2345 3415,2343 3418,2341 3422,2340 3425,2339 3428,2338 3432,2337 3435,2336 3439,2335 3442,2335 3446,2335 3601,2334 3601,2335 3605,2335 3608,2335 3612,2336 3615,2336 3619,2337 3622,2338 3626,2339 3629,2341 3632,2342 3635,2344 3638,2346 3641,2348 3644,2350 3647,2352 3649,2355 3652,2357 3654,2360 3656,2363 3659,2366 3660,2369 3662,2372 3664,2375 3665,2379 3666,2382 3667,2385 3668,2389 3669,2392 3670,2396 3670,2399 3670,2403 3670,2404 Z M 3670,2473 L 3670,2473 Z M 3377,2334 L 3377,2334 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id76">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3376" y="2534" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3670,2604 L 3670,2604 3670,2608 3670,2611 3669,2615 3668,2618 3668,2622 3667,2625 3665,2629 3664,2632 3662,2635 3661,2639 3659,2642 3657,2645 3655,2647 3652,2650 3650,2653 3647,2655 3644,2658 3642,2660 3639,2662 3635,2664 3632,2665 3629,2667 3626,2668 3622,2670 3619,2671 3615,2671 3612,2672 3608,2673 3605,2673 3601,2673 3447,2673 3447,2673 3443,2673 3440,2673 3436,2672 3433,2671 3429,2671 3426,2670 3422,2668 3419,2667 3416,2665 3412,2664 3409,2662 3406,2660 3404,2658 3401,2655 3398,2653 3396,2650 3393,2647 3391,2645 3389,2642 3387,2638 3386,2635 3384,2632 3383,2629 3381,2625 3380,2622 3380,2618 3379,2615 3378,2611 3378,2608 3378,2604 3377,2604 3378,2604 3378,2600 3378,2597 3379,2593 3379,2590 3380,2586 3381,2583 3382,2579 3384,2576 3385,2573 3387,2570 3389,2567 3391,2564 3393,2561 3395,2558 3398,2556 3400,2553 3403,2551 3406,2549 3409,2546 3412,2545 3415,2543 3418,2541 3422,2540 3425,2539 3428,2538 3432,2537 3435,2536 3439,2535 3442,2535 3446,2535 3601,2534 3601,2535 3605,2535 3608,2535 3612,2536 3615,2536 3619,2537 3622,2538 3626,2539 3629,2541 3632,2542 3635,2544 3638,2546 3641,2548 3644,2550 3647,2552 3649,2555 3652,2557 3654,2560 3656,2563 3659,2566 3660,2569 3662,2572 3664,2575 3665,2579 3666,2582 3667,2585 3668,2589 3669,2592 3670,2596 3670,2599 3670,2603 3670,2604 Z M 3670,2673 L 3670,2673 Z M 3377,2534 L 3377,2534 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id77">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3376" y="2733" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3670,2804 L 3670,2804 3670,2808 3670,2811 3669,2815 3668,2818 3668,2822 3667,2825 3665,2829 3664,2832 3662,2835 3661,2839 3659,2842 3657,2845 3655,2847 3652,2850 3650,2853 3647,2855 3644,2858 3642,2860 3639,2862 3635,2864 3632,2865 3629,2867 3626,2868 3622,2870 3619,2871 3615,2871 3612,2872 3608,2873 3605,2873 3601,2873 3447,2873 3447,2873 3443,2873 3440,2873 3436,2872 3433,2871 3429,2871 3426,2870 3422,2868 3419,2867 3416,2865 3412,2864 3409,2862 3406,2860 3404,2858 3401,2855 3398,2853 3396,2850 3393,2847 3391,2845 3389,2842 3387,2838 3386,2835 3384,2832 3383,2829 3381,2825 3380,2822 3380,2818 3379,2815 3378,2811 3378,2808 3378,2804 3377,2804 3378,2804 3378,2800 3378,2797 3379,2793 3379,2790 3380,2786 3381,2783 3382,2779 3384,2776 3385,2773 3387,2770 3389,2767 3391,2764 3393,2761 3395,2758 3398,2756 3400,2753 3403,2751 3406,2749 3409,2746 3412,2745 3415,2743 3418,2741 3422,2740 3425,2739 3428,2738 3432,2737 3435,2736 3439,2735 3442,2735 3446,2735 3601,2734 3601,2735 3605,2735 3608,2735 3612,2736 3615,2736 3619,2737 3622,2738 3626,2739 3629,2741 3632,2742 3635,2744 3638,2746 3641,2748 3644,2750 3647,2752 3649,2755 3652,2757 3654,2760 3656,2763 3659,2766 3660,2769 3662,2772 3664,2775 3665,2779 3666,2782 3667,2785 3668,2789 3669,2792 3670,2796 3670,2799 3670,2803 3670,2804 Z M 3670,2873 L 3670,2873 Z M 3377,2734 L 3377,2734 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id78">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3028" y="2334" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3321,2404 L 3321,2404 3321,2408 3321,2411 3320,2415 3319,2418 3319,2422 3318,2425 3316,2429 3315,2432 3313,2435 3312,2439 3310,2442 3308,2445 3306,2447 3303,2450 3301,2453 3298,2455 3295,2458 3293,2460 3290,2462 3286,2464 3283,2465 3280,2467 3277,2468 3273,2470 3270,2471 3266,2471 3263,2472 3259,2473 3256,2473 3252,2473 3098,2473 3098,2473 3094,2473 3091,2473 3087,2472 3084,2471 3080,2471 3077,2470 3073,2468 3070,2467 3067,2465 3063,2464 3060,2462 3057,2460 3055,2458 3052,2455 3049,2453 3047,2450 3044,2447 3042,2445 3040,2442 3038,2438 3037,2435 3035,2432 3034,2429 3032,2425 3031,2422 3031,2418 3030,2415 3029,2411 3029,2408 3029,2404 3028,2404 3029,2404 3029,2400 3029,2397 3030,2393 3030,2390 3031,2386 3032,2383 3033,2379 3035,2376 3036,2373 3038,2370 3040,2367 3042,2364 3044,2361 3046,2358 3049,2356 3051,2353 3054,2351 3057,2349 3060,2346 3063,2345 3066,2343 3069,2341 3073,2340 3076,2339 3079,2338 3083,2337 3086,2336 3090,2335 3093,2335 3097,2335 3252,2334 3252,2335 3256,2335 3259,2335 3263,2336 3266,2336 3270,2337 3273,2338 3277,2339 3280,2341 3283,2342 3286,2344 3289,2346 3292,2348 3295,2350 3298,2352 3300,2355 3303,2357 3305,2360 3307,2363 3310,2366 3311,2369 3313,2372 3315,2375 3316,2379 3317,2382 3318,2385 3319,2389 3320,2392 3321,2396 3321,2399 3321,2403 3321,2404 Z M 3321,2473 L 3321,2473 Z M 3028,2334 L 3028,2334 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id79">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3028" y="2534" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3321,2604 L 3321,2604 3321,2608 3321,2611 3320,2615 3319,2618 3319,2622 3318,2625 3316,2629 3315,2632 3313,2635 3312,2639 3310,2642 3308,2645 3306,2647 3303,2650 3301,2653 3298,2655 3295,2658 3293,2660 3290,2662 3286,2664 3283,2665 3280,2667 3277,2668 3273,2670 3270,2671 3266,2671 3263,2672 3259,2673 3256,2673 3252,2673 3098,2673 3098,2673 3094,2673 3091,2673 3087,2672 3084,2671 3080,2671 3077,2670 3073,2668 3070,2667 3067,2665 3063,2664 3060,2662 3057,2660 3055,2658 3052,2655 3049,2653 3047,2650 3044,2647 3042,2645 3040,2642 3038,2638 3037,2635 3035,2632 3034,2629 3032,2625 3031,2622 3031,2618 3030,2615 3029,2611 3029,2608 3029,2604 3028,2604 3029,2604 3029,2600 3029,2597 3030,2593 3030,2590 3031,2586 3032,2583 3033,2579 3035,2576 3036,2573 3038,2570 3040,2567 3042,2564 3044,2561 3046,2558 3049,2556 3051,2553 3054,2551 3057,2549 3060,2546 3063,2545 3066,2543 3069,2541 3073,2540 3076,2539 3079,2538 3083,2537 3086,2536 3090,2535 3093,2535 3097,2535 3252,2534 3252,2535 3256,2535 3259,2535 3263,2536 3266,2536 3270,2537 3273,2538 3277,2539 3280,2541 3283,2542 3286,2544 3289,2546 3292,2548 3295,2550 3298,2552 3300,2555 3303,2557 3305,2560 3307,2563 3310,2566 3311,2569 3313,2572 3315,2575 3316,2579 3317,2582 3318,2585 3319,2589 3320,2592 3321,2596 3321,2599 3321,2603 3321,2604 Z M 3321,2673 L 3321,2673 Z M 3028,2534 L 3028,2534 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id80">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3028" y="2734" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 3321,2804 L 3321,2804 3321,2808 3321,2811 3320,2815 3319,2818 3319,2822 3318,2825 3316,2829 3315,2832 3313,2835 3312,2839 3310,2842 3308,2845 3306,2847 3303,2850 3301,2853 3298,2855 3295,2858 3293,2860 3290,2862 3286,2864 3283,2865 3280,2867 3277,2868 3273,2870 3270,2871 3266,2871 3263,2872 3259,2873 3256,2873 3252,2873 3098,2873 3098,2873 3094,2873 3091,2873 3087,2872 3084,2871 3080,2871 3077,2870 3073,2868 3070,2867 3067,2865 3063,2864 3060,2862 3057,2860 3055,2858 3052,2855 3049,2853 3047,2850 3044,2847 3042,2845 3040,2842 3038,2838 3037,2835 3035,2832 3034,2829 3032,2825 3031,2822 3031,2818 3030,2815 3029,2811 3029,2808 3029,2804 3028,2804 3029,2804 3029,2800 3029,2797 3030,2793 3030,2790 3031,2786 3032,2783 3033,2779 3035,2776 3036,2773 3038,2770 3040,2767 3042,2764 3044,2761 3046,2758 3049,2756 3051,2753 3054,2751 3057,2749 3060,2746 3063,2745 3066,2743 3069,2741 3073,2740 3076,2739 3079,2738 3083,2737 3086,2736 3090,2735 3093,2735 3097,2735 3252,2734 3252,2735 3256,2735 3259,2735 3263,2736 3266,2736 3270,2737 3273,2738 3277,2739 3280,2741 3283,2742 3286,2744 3289,2746 3292,2748 3295,2750 3298,2752 3300,2755 3303,2757 3305,2760 3307,2763 3310,2766 3311,2769 3313,2772 3315,2775 3316,2779 3317,2782 3318,2785 3319,2789 3320,2792 3321,2796 3321,2799 3321,2803 3321,2804 Z M 3321,2873 L 3321,2873 Z M 3028,2734 L 3028,2734 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id81">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3708" y="2337" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4001,2407 L 4001,2407 4001,2411 4001,2414 4000,2418 3999,2421 3999,2425 3998,2428 3996,2432 3995,2435 3993,2438 3992,2442 3990,2445 3988,2448 3986,2450 3983,2453 3981,2456 3978,2458 3975,2461 3973,2463 3970,2465 3966,2467 3963,2468 3960,2470 3957,2471 3953,2473 3950,2474 3946,2474 3943,2475 3939,2476 3936,2476 3932,2476 3778,2476 3778,2476 3774,2476 3771,2476 3767,2475 3764,2474 3760,2474 3757,2473 3753,2471 3750,2470 3747,2468 3743,2467 3740,2465 3737,2463 3735,2461 3732,2458 3729,2456 3727,2453 3724,2450 3722,2448 3720,2445 3718,2441 3717,2438 3715,2435 3714,2432 3712,2428 3711,2425 3711,2421 3710,2418 3709,2414 3709,2411 3709,2407 3708,2407 3709,2407 3709,2403 3709,2400 3710,2396 3710,2393 3711,2389 3712,2386 3713,2382 3715,2379 3716,2376 3718,2373 3720,2370 3722,2367 3724,2364 3726,2361 3729,2359 3731,2356 3734,2354 3737,2352 3740,2349 3743,2348 3746,2346 3749,2344 3753,2343 3756,2342 3759,2341 3763,2340 3766,2339 3770,2338 3773,2338 3777,2338 3932,2337 3932,2338 3936,2338 3939,2338 3943,2339 3946,2339 3950,2340 3953,2341 3957,2342 3960,2344 3963,2345 3966,2347 3969,2349 3972,2351 3975,2353 3978,2355 3980,2358 3983,2360 3985,2363 3987,2366 3990,2369 3991,2372 3993,2375 3995,2378 3996,2382 3997,2385 3998,2388 3999,2392 4000,2395 4001,2399 4001,2402 4001,2406 4001,2407 Z M 4001,2476 L 4001,2476 Z M 3708,2337 L 3708,2337 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id82">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3708" y="2537" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4001,2607 L 4001,2607 4001,2611 4001,2614 4000,2618 3999,2621 3999,2625 3998,2628 3996,2632 3995,2635 3993,2638 3992,2642 3990,2645 3988,2648 3986,2650 3983,2653 3981,2656 3978,2658 3975,2661 3973,2663 3970,2665 3966,2667 3963,2668 3960,2670 3957,2671 3953,2673 3950,2674 3946,2674 3943,2675 3939,2676 3936,2676 3932,2676 3778,2676 3778,2676 3774,2676 3771,2676 3767,2675 3764,2674 3760,2674 3757,2673 3753,2671 3750,2670 3747,2668 3743,2667 3740,2665 3737,2663 3735,2661 3732,2658 3729,2656 3727,2653 3724,2650 3722,2648 3720,2645 3718,2641 3717,2638 3715,2635 3714,2632 3712,2628 3711,2625 3711,2621 3710,2618 3709,2614 3709,2611 3709,2607 3708,2607 3709,2607 3709,2603 3709,2600 3710,2596 3710,2593 3711,2589 3712,2586 3713,2582 3715,2579 3716,2576 3718,2573 3720,2570 3722,2567 3724,2564 3726,2561 3729,2559 3731,2556 3734,2554 3737,2552 3740,2549 3743,2548 3746,2546 3749,2544 3753,2543 3756,2542 3759,2541 3763,2540 3766,2539 3770,2538 3773,2538 3777,2538 3932,2537 3932,2538 3936,2538 3939,2538 3943,2539 3946,2539 3950,2540 3953,2541 3957,2542 3960,2544 3963,2545 3966,2547 3969,2549 3972,2551 3975,2553 3978,2555 3980,2558 3983,2560 3985,2563 3987,2566 3990,2569 3991,2572 3993,2575 3995,2578 3996,2582 3997,2585 3998,2588 3999,2592 4000,2595 4001,2599 4001,2602 4001,2606 4001,2607 Z M 4001,2676 L 4001,2676 Z M 3708,2537 L 3708,2537 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id83">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3708" y="2737" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 4001,2807 L 4001,2807 4001,2811 4001,2814 4000,2818 3999,2821 3999,2825 3998,2828 3996,2832 3995,2835 3993,2838 3992,2842 3990,2845 3988,2848 3986,2850 3983,2853 3981,2856 3978,2858 3975,2861 3973,2863 3970,2865 3966,2867 3963,2868 3960,2870 3957,2871 3953,2873 3950,2874 3946,2874 3943,2875 3939,2876 3936,2876 3932,2876 3778,2876 3778,2876 3774,2876 3771,2876 3767,2875 3764,2874 3760,2874 3757,2873 3753,2871 3750,2870 3747,2868 3743,2867 3740,2865 3737,2863 3735,2861 3732,2858 3729,2856 3727,2853 3724,2850 3722,2848 3720,2845 3718,2841 3717,2838 3715,2835 3714,2832 3712,2828 3711,2825 3711,2821 3710,2818 3709,2814 3709,2811 3709,2807 3708,2807 3709,2807 3709,2803 3709,2800 3710,2796 3710,2793 3711,2789 3712,2786 3713,2782 3715,2779 3716,2776 3718,2773 3720,2770 3722,2767 3724,2764 3726,2761 3729,2759 3731,2756 3734,2754 3737,2752 3740,2749 3743,2748 3746,2746 3749,2744 3753,2743 3756,2742 3759,2741 3763,2740 3766,2739 3770,2738 3773,2738 3777,2738 3932,2737 3932,2738 3936,2738 3939,2738 3943,2739 3946,2739 3950,2740 3953,2741 3957,2742 3960,2744 3963,2745 3966,2747 3969,2749 3972,2751 3975,2753 3978,2755 3980,2758 3983,2760 3985,2763 3987,2766 3990,2769 3991,2772 3993,2775 3995,2778 3996,2782 3997,2785 3998,2788 3999,2792 4000,2795 4001,2799 4001,2802 4001,2806 4001,2807 Z M 4001,2876 L 4001,2876 Z M 3708,2737 L 3708,2737 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id84">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5752" y="2336" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6045,2407 L 6045,2407 6045,2411 6045,2414 6044,2418 6043,2421 6043,2425 6042,2428 6040,2432 6039,2435 6037,2438 6036,2442 6034,2445 6032,2448 6030,2450 6027,2453 6025,2456 6022,2458 6019,2461 6017,2463 6014,2465 6010,2467 6007,2468 6004,2470 6001,2471 5997,2473 5994,2474 5990,2474 5987,2475 5983,2476 5980,2476 5976,2476 5822,2476 5822,2476 5818,2476 5815,2476 5811,2475 5808,2474 5804,2474 5801,2473 5797,2471 5794,2470 5791,2468 5787,2467 5784,2465 5781,2463 5779,2461 5776,2458 5773,2456 5771,2453 5768,2450 5766,2448 5764,2445 5762,2441 5761,2438 5759,2435 5758,2432 5756,2428 5755,2425 5755,2421 5754,2418 5753,2414 5753,2411 5753,2407 5752,2407 5753,2407 5753,2403 5753,2400 5754,2396 5754,2393 5755,2389 5756,2386 5757,2382 5759,2379 5760,2376 5762,2373 5764,2370 5766,2367 5768,2364 5770,2361 5773,2359 5775,2356 5778,2354 5781,2352 5784,2349 5787,2348 5790,2346 5793,2344 5797,2343 5800,2342 5803,2341 5807,2340 5810,2339 5814,2338 5817,2338 5821,2338 5976,2337 5976,2338 5980,2338 5983,2338 5987,2339 5990,2339 5994,2340 5997,2341 6001,2342 6004,2344 6007,2345 6010,2347 6013,2349 6016,2351 6019,2353 6022,2355 6024,2358 6027,2360 6029,2363 6031,2366 6034,2369 6035,2372 6037,2375 6039,2378 6040,2382 6041,2385 6042,2388 6043,2392 6044,2395 6045,2399 6045,2402 6045,2406 6045,2407 Z M 6045,2476 L 6045,2476 Z M 5752,2337 L 5752,2337 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id85">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5752" y="2537" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6045,2607 L 6045,2607 6045,2611 6045,2614 6044,2618 6043,2621 6043,2625 6042,2628 6040,2632 6039,2635 6037,2638 6036,2642 6034,2645 6032,2648 6030,2650 6027,2653 6025,2656 6022,2658 6019,2661 6017,2663 6014,2665 6010,2667 6007,2668 6004,2670 6001,2671 5997,2673 5994,2674 5990,2674 5987,2675 5983,2676 5980,2676 5976,2676 5822,2676 5822,2676 5818,2676 5815,2676 5811,2675 5808,2674 5804,2674 5801,2673 5797,2671 5794,2670 5791,2668 5787,2667 5784,2665 5781,2663 5779,2661 5776,2658 5773,2656 5771,2653 5768,2650 5766,2648 5764,2645 5762,2641 5761,2638 5759,2635 5758,2632 5756,2628 5755,2625 5755,2621 5754,2618 5753,2614 5753,2611 5753,2607 5752,2607 5753,2607 5753,2603 5753,2600 5754,2596 5754,2593 5755,2589 5756,2586 5757,2582 5759,2579 5760,2576 5762,2573 5764,2570 5766,2567 5768,2564 5770,2561 5773,2559 5775,2556 5778,2554 5781,2552 5784,2549 5787,2548 5790,2546 5793,2544 5797,2543 5800,2542 5803,2541 5807,2540 5810,2539 5814,2538 5817,2538 5821,2538 5976,2537 5976,2538 5980,2538 5983,2538 5987,2539 5990,2539 5994,2540 5997,2541 6001,2542 6004,2544 6007,2545 6010,2547 6013,2549 6016,2551 6019,2553 6022,2555 6024,2558 6027,2560 6029,2563 6031,2566 6034,2569 6035,2572 6037,2575 6039,2578 6040,2582 6041,2585 6042,2588 6043,2592 6044,2595 6045,2599 6045,2602 6045,2606 6045,2607 Z M 6045,2676 L 6045,2676 Z M 5752,2537 L 5752,2537 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id86">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5751" y="2736" width="295" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6045,2806 L 6045,2806 6045,2810 6045,2813 6044,2817 6043,2820 6043,2824 6042,2827 6040,2831 6039,2834 6037,2837 6036,2841 6034,2844 6032,2847 6030,2849 6027,2852 6025,2855 6022,2857 6019,2860 6017,2862 6014,2864 6010,2866 6007,2867 6004,2869 6001,2870 5997,2872 5994,2873 5990,2873 5987,2874 5983,2875 5980,2875 5976,2875 5822,2875 5822,2875 5818,2875 5815,2875 5811,2874 5808,2873 5804,2873 5801,2872 5797,2870 5794,2869 5791,2867 5787,2866 5784,2864 5781,2862 5779,2860 5776,2857 5773,2855 5771,2852 5768,2849 5766,2847 5764,2844 5762,2840 5761,2837 5759,2834 5758,2831 5756,2827 5755,2824 5755,2820 5754,2817 5753,2813 5753,2810 5753,2806 5752,2806 5753,2806 5753,2802 5753,2799 5754,2795 5754,2792 5755,2788 5756,2785 5757,2781 5759,2778 5760,2775 5762,2772 5764,2769 5766,2766 5768,2763 5770,2760 5773,2758 5775,2755 5778,2753 5781,2751 5784,2748 5787,2747 5790,2745 5793,2743 5797,2742 5800,2741 5803,2740 5807,2739 5810,2738 5814,2737 5817,2737 5821,2737 5976,2736 5976,2737 5980,2737 5983,2737 5987,2738 5990,2738 5994,2739 5997,2740 6001,2741 6004,2743 6007,2744 6010,2746 6013,2748 6016,2750 6019,2752 6022,2754 6024,2757 6027,2759 6029,2762 6031,2765 6034,2768 6035,2771 6037,2774 6039,2777 6040,2781 6041,2784 6042,2787 6043,2791 6044,2794 6045,2798 6045,2801 6045,2805 6045,2806 Z M 6045,2875 L 6045,2875 Z M 5752,2736 L 5752,2736 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id87">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5403" y="2337" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5696,2407 L 5696,2407 5696,2411 5696,2414 5695,2418 5694,2421 5694,2425 5693,2428 5691,2432 5690,2435 5688,2438 5687,2442 5685,2445 5683,2448 5681,2450 5678,2453 5676,2456 5673,2458 5670,2461 5668,2463 5665,2465 5661,2467 5658,2468 5655,2470 5652,2471 5648,2473 5645,2474 5641,2474 5638,2475 5634,2476 5631,2476 5627,2476 5473,2476 5473,2476 5469,2476 5466,2476 5462,2475 5459,2474 5455,2474 5452,2473 5448,2471 5445,2470 5442,2468 5438,2467 5435,2465 5432,2463 5430,2461 5427,2458 5424,2456 5422,2453 5419,2450 5417,2448 5415,2445 5413,2441 5412,2438 5410,2435 5409,2432 5407,2428 5406,2425 5406,2421 5405,2418 5404,2414 5404,2411 5404,2407 5403,2407 5404,2407 5404,2403 5404,2400 5405,2396 5405,2393 5406,2389 5407,2386 5408,2382 5410,2379 5411,2376 5413,2373 5415,2370 5417,2367 5419,2364 5421,2361 5424,2359 5426,2356 5429,2354 5432,2352 5435,2349 5438,2348 5441,2346 5444,2344 5448,2343 5451,2342 5454,2341 5458,2340 5461,2339 5465,2338 5468,2338 5472,2338 5627,2337 5627,2338 5631,2338 5634,2338 5638,2339 5641,2339 5645,2340 5648,2341 5652,2342 5655,2344 5658,2345 5661,2347 5664,2349 5667,2351 5670,2353 5673,2355 5675,2358 5678,2360 5680,2363 5682,2366 5685,2369 5686,2372 5688,2375 5690,2378 5691,2382 5692,2385 5693,2388 5694,2392 5695,2395 5696,2399 5696,2402 5696,2406 5696,2407 Z M 5696,2476 L 5696,2476 Z M 5403,2337 L 5403,2337 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id88">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5403" y="2537" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5696,2607 L 5696,2607 5696,2611 5696,2614 5695,2618 5694,2621 5694,2625 5693,2628 5691,2632 5690,2635 5688,2638 5687,2642 5685,2645 5683,2648 5681,2650 5678,2653 5676,2656 5673,2658 5670,2661 5668,2663 5665,2665 5661,2667 5658,2668 5655,2670 5652,2671 5648,2673 5645,2674 5641,2674 5638,2675 5634,2676 5631,2676 5627,2676 5473,2676 5473,2676 5469,2676 5466,2676 5462,2675 5459,2674 5455,2674 5452,2673 5448,2671 5445,2670 5442,2668 5438,2667 5435,2665 5432,2663 5430,2661 5427,2658 5424,2656 5422,2653 5419,2650 5417,2648 5415,2645 5413,2641 5412,2638 5410,2635 5409,2632 5407,2628 5406,2625 5406,2621 5405,2618 5404,2614 5404,2611 5404,2607 5403,2607 5404,2607 5404,2603 5404,2600 5405,2596 5405,2593 5406,2589 5407,2586 5408,2582 5410,2579 5411,2576 5413,2573 5415,2570 5417,2567 5419,2564 5421,2561 5424,2559 5426,2556 5429,2554 5432,2552 5435,2549 5438,2548 5441,2546 5444,2544 5448,2543 5451,2542 5454,2541 5458,2540 5461,2539 5465,2538 5468,2538 5472,2538 5627,2537 5627,2538 5631,2538 5634,2538 5638,2539 5641,2539 5645,2540 5648,2541 5652,2542 5655,2544 5658,2545 5661,2547 5664,2549 5667,2551 5670,2553 5673,2555 5675,2558 5678,2560 5680,2563 5682,2566 5685,2569 5686,2572 5688,2575 5690,2578 5691,2582 5692,2585 5693,2588 5694,2592 5695,2595 5696,2599 5696,2602 5696,2606 5696,2607 Z M 5696,2676 L 5696,2676 Z M 5403,2537 L 5403,2537 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id89">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5403" y="2736" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 5696,2806 L 5696,2806 5696,2810 5696,2813 5695,2817 5694,2820 5694,2824 5693,2827 5691,2831 5690,2834 5688,2837 5687,2841 5685,2844 5683,2847 5681,2849 5678,2852 5676,2855 5673,2857 5670,2860 5668,2862 5665,2864 5661,2866 5658,2867 5655,2869 5652,2870 5648,2872 5645,2873 5641,2873 5638,2874 5634,2875 5631,2875 5627,2875 5473,2875 5473,2875 5469,2875 5466,2875 5462,2874 5459,2873 5455,2873 5452,2872 5448,2870 5445,2869 5442,2867 5438,2866 5435,2864 5432,2862 5430,2860 5427,2857 5424,2855 5422,2852 5419,2849 5417,2847 5415,2844 5413,2840 5412,2837 5410,2834 5409,2831 5407,2827 5406,2824 5406,2820 5405,2817 5404,2813 5404,2810 5404,2806 5403,2806 5404,2806 5404,2802 5404,2799 5405,2795 5405,2792 5406,2788 5407,2785 5408,2781 5410,2778 5411,2775 5413,2772 5415,2769 5417,2766 5419,2763 5421,2760 5424,2758 5426,2755 5429,2753 5432,2751 5435,2748 5438,2747 5441,2745 5444,2743 5448,2742 5451,2741 5454,2740 5458,2739 5461,2738 5465,2737 5468,2737 5472,2737 5627,2736 5627,2737 5631,2737 5634,2737 5638,2738 5641,2738 5645,2739 5648,2740 5652,2741 5655,2743 5658,2744 5661,2746 5664,2748 5667,2750 5670,2752 5673,2754 5675,2757 5678,2759 5680,2762 5682,2765 5685,2768 5686,2771 5688,2774 5690,2777 5691,2781 5692,2784 5693,2787 5694,2791 5695,2794 5696,2798 5696,2801 5696,2805 5696,2806 Z M 5696,2875 L 5696,2875 Z M 5403,2736 L 5403,2736 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id90">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6082" y="2340" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6375,2410 L 6375,2410 6375,2414 6375,2417 6374,2421 6373,2424 6373,2428 6372,2431 6370,2435 6369,2438 6367,2441 6366,2445 6364,2448 6362,2451 6360,2453 6357,2456 6355,2459 6352,2461 6349,2464 6347,2466 6344,2468 6340,2470 6337,2471 6334,2473 6331,2474 6327,2476 6324,2477 6320,2477 6317,2478 6313,2479 6310,2479 6306,2479 6152,2479 6152,2479 6148,2479 6145,2479 6141,2478 6138,2477 6134,2477 6131,2476 6127,2474 6124,2473 6121,2471 6117,2470 6114,2468 6111,2466 6109,2464 6106,2461 6103,2459 6101,2456 6098,2453 6096,2451 6094,2448 6092,2444 6091,2441 6089,2438 6088,2435 6086,2431 6085,2428 6085,2424 6084,2421 6083,2417 6083,2414 6083,2410 6082,2410 6083,2410 6083,2406 6083,2403 6084,2399 6084,2396 6085,2392 6086,2389 6087,2385 6089,2382 6090,2379 6092,2376 6094,2373 6096,2370 6098,2367 6100,2364 6103,2362 6105,2359 6108,2357 6111,2355 6114,2352 6117,2351 6120,2349 6123,2347 6127,2346 6130,2345 6133,2344 6137,2343 6140,2342 6144,2341 6147,2341 6151,2341 6306,2340 6306,2341 6310,2341 6313,2341 6317,2342 6320,2342 6324,2343 6327,2344 6331,2345 6334,2347 6337,2348 6340,2350 6343,2352 6346,2354 6349,2356 6352,2358 6354,2361 6357,2363 6359,2366 6361,2369 6364,2372 6365,2375 6367,2378 6369,2381 6370,2385 6371,2388 6372,2391 6373,2395 6374,2398 6375,2402 6375,2405 6375,2409 6375,2410 Z M 6375,2479 L 6375,2479 Z M 6082,2340 L 6082,2340 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id91">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6082" y="2538" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6375,2609 L 6375,2609 6375,2613 6375,2616 6374,2620 6373,2623 6373,2627 6372,2630 6370,2634 6369,2637 6367,2640 6366,2644 6364,2647 6362,2650 6360,2652 6357,2655 6355,2658 6352,2660 6349,2663 6347,2665 6344,2667 6340,2669 6337,2670 6334,2672 6331,2673 6327,2675 6324,2676 6320,2676 6317,2677 6313,2678 6310,2678 6306,2678 6152,2678 6152,2678 6148,2678 6145,2678 6141,2677 6138,2676 6134,2676 6131,2675 6127,2673 6124,2672 6121,2670 6117,2669 6114,2667 6111,2665 6109,2663 6106,2660 6103,2658 6101,2655 6098,2652 6096,2650 6094,2647 6092,2643 6091,2640 6089,2637 6088,2634 6086,2630 6085,2627 6085,2623 6084,2620 6083,2616 6083,2613 6083,2609 6082,2609 6083,2609 6083,2605 6083,2602 6084,2598 6084,2595 6085,2591 6086,2588 6087,2584 6089,2581 6090,2578 6092,2575 6094,2572 6096,2569 6098,2566 6100,2563 6103,2561 6105,2558 6108,2556 6111,2554 6114,2551 6117,2550 6120,2548 6123,2546 6127,2545 6130,2544 6133,2543 6137,2542 6140,2541 6144,2540 6147,2540 6151,2540 6306,2539 6306,2540 6310,2540 6313,2540 6317,2541 6320,2541 6324,2542 6327,2543 6331,2544 6334,2546 6337,2547 6340,2549 6343,2551 6346,2553 6349,2555 6352,2557 6354,2560 6357,2562 6359,2565 6361,2568 6364,2571 6365,2574 6367,2577 6369,2580 6370,2584 6371,2587 6372,2590 6373,2594 6374,2597 6375,2601 6375,2604 6375,2608 6375,2609 Z M 6375,2678 L 6375,2678 Z M 6082,2539 L 6082,2539 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id92">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6082" y="2739" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 6375,2809 L 6375,2809 6375,2813 6375,2816 6374,2820 6373,2823 6373,2827 6372,2830 6370,2834 6369,2837 6367,2840 6366,2844 6364,2847 6362,2850 6360,2852 6357,2855 6355,2858 6352,2860 6349,2863 6347,2865 6344,2867 6340,2869 6337,2870 6334,2872 6331,2873 6327,2875 6324,2876 6320,2876 6317,2877 6313,2878 6310,2878 6306,2878 6152,2878 6152,2878 6148,2878 6145,2878 6141,2877 6138,2876 6134,2876 6131,2875 6127,2873 6124,2872 6121,2870 6117,2869 6114,2867 6111,2865 6109,2863 6106,2860 6103,2858 6101,2855 6098,2852 6096,2850 6094,2847 6092,2843 6091,2840 6089,2837 6088,2834 6086,2830 6085,2827 6085,2823 6084,2820 6083,2816 6083,2813 6083,2809 6082,2809 6083,2809 6083,2805 6083,2802 6084,2798 6084,2795 6085,2791 6086,2788 6087,2784 6089,2781 6090,2778 6092,2775 6094,2772 6096,2769 6098,2766 6100,2763 6103,2761 6105,2758 6108,2756 6111,2754 6114,2751 6117,2750 6120,2748 6123,2746 6127,2745 6130,2744 6133,2743 6137,2742 6140,2741 6144,2740 6147,2740 6151,2740 6306,2739 6306,2740 6310,2740 6313,2740 6317,2741 6320,2741 6324,2742 6327,2743 6331,2744 6334,2746 6337,2747 6340,2749 6343,2751 6346,2753 6349,2755 6352,2757 6354,2760 6357,2762 6359,2765 6361,2768 6364,2771 6365,2774 6367,2777 6369,2780 6370,2784 6371,2787 6372,2790 6373,2794 6374,2797 6375,2801 6375,2804 6375,2808 6375,2809 Z M 6375,2878 L 6375,2878 Z M 6082,2739 L 6082,2739 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id93">
+ <rect class="BoundingBox" stroke="none" fill="none" x="827" y="4140" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1077" y="4527"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="1077" y="4857"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id94">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9148" y="1920" width="7241" height="3215"/>
+ <path fill="rgb(255,255,255)" stroke="none" d="M 12768,5116 L 9166,5116 9166,1938 16370,1938 16370,5116 12768,5116 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 12768,5116 L 9166,5116 9166,1938 16370,1938 16370,5116 12768,5116 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9266" y="2326"><tspan fill="rgb(0,0,0)" stroke="none">x86</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="388px" font-weight="400"><tspan class="TextPosition" x="9266" y="2791"><tspan fill="rgb(0,0,0)" stroke="none">Server</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id95">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10258" y="5020" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 10711,5463 L 10267,5463 10267,5029 11154,5029 11154,5463 10711,5463 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 10711,5463 L 10267,5463 10267,5029 11154,5029 11154,5463 10711,5463 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10373" y="5327"><tspan fill="rgb(0,0,0)" stroke="none">NIC1</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id96">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10371" y="5506" width="42" height="737"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10389,5524 L 10394,6224"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10389,5524 L 10389,5524 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10394,6224 L 10394,6224 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id97">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10290" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10374,5523 L 10299,5523 10299,5424 10448,5424 10448,5523 10374,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10374,5523 L 10299,5523 10299,5424 10448,5424 10448,5523 10374,5523 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id98">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10934" y="5413" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 11018,5521 L 10943,5521 10943,5422 11092,5422 11092,5521 11018,5521 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 11018,5521 L 10943,5521 10943,5422 11092,5422 11092,5521 11018,5521 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id99">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10998" y="5504" width="39" height="785"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11018,5522 L 11016,6270"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11018,5522 L 11018,5522 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 11016,6270 L 11016,6270 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id100">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10574" y="5508" width="39" height="783"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10594,5526 L 10592,6272"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10594,5526 L 10594,5526 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10592,6272 L 10592,6272 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id101">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10510" y="5417" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10594,5525 L 10519,5525 10519,5426 10668,5426 10668,5525 10594,5525 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10594,5525 L 10519,5525 10519,5426 10668,5426 10668,5525 10594,5525 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id102">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10721" y="5415" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 10805,5523 L 10730,5523 10730,5424 10879,5424 10879,5523 10805,5523 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 10805,5523 L 10730,5523 10730,5424 10879,5424 10879,5523 10805,5523 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id103">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10801" y="5506" width="43" height="785"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10819,5524 L 10825,6272"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10819,5524 L 10819,5524 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 10825,6272 L 10825,6272 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id104">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9850" y="3088" width="6109" height="1203"/>
+ <path fill="rgb(68,114,196)" stroke="none" d="M 12904,4272 L 9868,4272 9868,3106 15940,3106 15940,4272 12904,4272 Z"/>
+ <path fill="none" stroke="rgb(50,84,144)" stroke-width="35" stroke-linejoin="miter" d="M 12904,4272 L 9868,4272 9868,3106 15940,3106 15940,4272 12904,4272 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="318px" font-weight="400"><tspan class="TextPosition" x="10627" y="3763"><tspan fill="rgb(255,255,255)" stroke="none">Intel Atom P5362 @2.20GHz</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id105">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10464" y="4291" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 10741,5024 L 10464,4863 10602,4863 10602,4453 10464,4453 10741,4291 11019,4453 10880,4453 10880,4863 11019,4863 10741,5024 Z M 10464,5024 L 10464,5024 Z M 11019,4291 L 11019,4291 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id106">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10502" y="4481" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 10740,4824 L 10502,4824 10502,4481 10977,4481 10977,4824 10740,4824 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10589" y="4766"><tspan fill="rgb(255,255,255)" stroke="none">x4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id107">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12314" y="2289" width="1321" height="590"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="12564" y="2696"><tspan fill="rgb(66,131,139)" stroke="none">DDR4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id108">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14786" y="5010" width="906" height="453"/>
+ <path fill="rgb(237,237,237)" stroke="none" d="M 15239,5453 L 14795,5453 14795,5019 15682,5019 15682,5453 15239,5453 Z"/>
+ <path fill="none" stroke="rgb(165,165,165)" stroke-width="18" stroke-linejoin="miter" d="M 15239,5453 L 14795,5453 14795,5019 15682,5019 15682,5453 15239,5453 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="14901" y="5317"><tspan fill="rgb(0,0,0)" stroke="none">NIC2</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id109">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14899" y="5496" width="42" height="783"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14917,5514 L 14922,6260"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14917,5514 L 14917,5514 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 14922,6260 L 14922,6260 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id110">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14818" y="5405" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 14902,5513 L 14827,5513 14827,5414 14976,5414 14976,5513 14902,5513 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 14902,5513 L 14827,5513 14827,5414 14976,5414 14976,5513 14902,5513 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id111">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15461" y="5403" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 15545,5511 L 15470,5511 15470,5412 15619,5412 15619,5511 15545,5511 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15545,5511 L 15470,5511 15470,5412 15619,5412 15619,5511 15545,5511 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id112">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15526" y="5494" width="39" height="737"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15546,5512 L 15544,6212"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15546,5512 L 15546,5512 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15544,6212 L 15544,6212 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id113">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15102" y="5498" width="39" height="783"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15122,5516 L 15120,6262"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15122,5516 L 15122,5516 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15120,6262 L 15120,6262 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id114">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15038" y="5407" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 15122,5515 L 15047,5515 15047,5416 15196,5416 15196,5515 15122,5515 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15122,5515 L 15047,5515 15047,5416 15196,5416 15196,5515 15122,5515 Z"/>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id115">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15249" y="5405" width="168" height="118"/>
+ <path fill="rgb(208,206,206)" stroke="none" d="M 15333,5513 L 15258,5513 15258,5414 15407,5414 15407,5513 15333,5513 Z"/>
+ <path fill="none" stroke="rgb(175,171,171)" stroke-width="18" stroke-linejoin="miter" d="M 15333,5513 L 15258,5513 15258,5414 15407,5414 15407,5513 15333,5513 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id116">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15329" y="5496" width="43" height="785"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15347,5514 L 15353,6262"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15347,5514 L 15347,5514 Z"/>
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="miter" d="M 15353,6262 L 15353,6262 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id117">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15008" y="4272" width="556" height="734"/>
+ <path fill="rgb(132,151,176)" stroke="none" d="M 15285,5005 L 15008,4844 15146,4844 15146,4434 15008,4434 15285,4272 15563,4434 15424,4434 15424,4844 15563,4844 15285,5005 Z M 15008,5005 L 15008,5005 Z M 15563,4272 L 15563,4272 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id118">
+ <rect class="BoundingBox" stroke="none" fill="none" x="15047" y="4462" width="476" height="344"/>
+ <path fill="rgb(95,100,104)" stroke="none" d="M 15285,4805 L 15047,4805 15047,4462 15522,4462 15522,4805 15285,4805 Z"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="15134" y="4747"><tspan fill="rgb(255,255,255)" stroke="none">x4</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id119">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14870" y="6139" width="743" height="234"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 15559,6192 L 15559,6192 15559,6199 15559,6205 15558,6212 15558,6218 15557,6225 15557,6231 15556,6237 15555,6243 15553,6249 15552,6255 15551,6261 15549,6266 15548,6271 15546,6276 15544,6281 15542,6286 15540,6290 15538,6294 15536,6298 15533,6301 15531,6304 15529,6307 15526,6310 15524,6312 15521,6314 15519,6315 15516,6316 15513,6317 15511,6318 15508,6318 14975,6319 14975,6319 14972,6319 14970,6318 14967,6317 14964,6316 14962,6315 14959,6313 14957,6311 14954,6308 14952,6305 14950,6302 14947,6299 14945,6295 14943,6291 14941,6287 14939,6282 14937,6277 14936,6272 14934,6267 14932,6262 14931,6256 14930,6250 14929,6244 14927,6238 14927,6232 14926,6226 14925,6219 14925,6213 14924,6206 14924,6200 14924,6193"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 15559,6192 L 15559,6192 Z"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 14923,6319 L 14923,6319 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id120">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9562" y="1254" width="6435" height="759"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="9812" y="1802"><tspan fill="rgb(32,56,100)" stroke="none">System Under Test 2 (SUT2)</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id121">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11732" y="2334" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12025,2404 L 12025,2404 12025,2408 12025,2411 12024,2415 12023,2418 12023,2422 12022,2425 12020,2429 12019,2432 12017,2435 12016,2439 12014,2442 12012,2445 12010,2447 12007,2450 12005,2453 12002,2455 11999,2458 11997,2460 11994,2462 11990,2464 11987,2465 11984,2467 11981,2468 11977,2470 11974,2471 11970,2471 11967,2472 11963,2473 11960,2473 11956,2473 11802,2473 11802,2473 11798,2473 11795,2473 11791,2472 11788,2471 11784,2471 11781,2470 11777,2468 11774,2467 11771,2465 11767,2464 11764,2462 11761,2460 11759,2458 11756,2455 11753,2453 11751,2450 11748,2447 11746,2445 11744,2442 11742,2438 11741,2435 11739,2432 11738,2429 11736,2425 11735,2422 11735,2418 11734,2415 11733,2411 11733,2408 11733,2404 11732,2404 11733,2404 11733,2400 11733,2397 11734,2393 11734,2390 11735,2386 11736,2383 11737,2379 11739,2376 11740,2373 11742,2370 11744,2367 11746,2364 11748,2361 11750,2358 11753,2356 11755,2353 11758,2351 11761,2349 11764,2346 11767,2345 11770,2343 11773,2341 11777,2340 11780,2339 11783,2338 11787,2337 11790,2336 11794,2335 11797,2335 11801,2335 11956,2334 11956,2335 11960,2335 11963,2335 11967,2336 11970,2336 11974,2337 11977,2338 11981,2339 11984,2341 11987,2342 11990,2344 11993,2346 11996,2348 11999,2350 12002,2352 12004,2355 12007,2357 12009,2360 12011,2363 12014,2366 12015,2369 12017,2372 12019,2375 12020,2379 12021,2382 12022,2385 12023,2389 12024,2392 12025,2396 12025,2399 12025,2403 12025,2404 Z M 12025,2473 L 12025,2473 Z M 11732,2334 L 11732,2334 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id122">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11732" y="2534" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12025,2604 L 12025,2604 12025,2608 12025,2611 12024,2615 12023,2618 12023,2622 12022,2625 12020,2629 12019,2632 12017,2635 12016,2639 12014,2642 12012,2645 12010,2647 12007,2650 12005,2653 12002,2655 11999,2658 11997,2660 11994,2662 11990,2664 11987,2665 11984,2667 11981,2668 11977,2670 11974,2671 11970,2671 11967,2672 11963,2673 11960,2673 11956,2673 11802,2673 11802,2673 11798,2673 11795,2673 11791,2672 11788,2671 11784,2671 11781,2670 11777,2668 11774,2667 11771,2665 11767,2664 11764,2662 11761,2660 11759,2658 11756,2655 11753,2653 11751,2650 11748,2647 11746,2645 11744,2642 11742,2638 11741,2635 11739,2632 11738,2629 11736,2625 11735,2622 11735,2618 11734,2615 11733,2611 11733,2608 11733,2604 11732,2604 11733,2604 11733,2600 11733,2597 11734,2593 11734,2590 11735,2586 11736,2583 11737,2579 11739,2576 11740,2573 11742,2570 11744,2567 11746,2564 11748,2561 11750,2558 11753,2556 11755,2553 11758,2551 11761,2549 11764,2546 11767,2545 11770,2543 11773,2541 11777,2540 11780,2539 11783,2538 11787,2537 11790,2536 11794,2535 11797,2535 11801,2535 11956,2534 11956,2535 11960,2535 11963,2535 11967,2536 11970,2536 11974,2537 11977,2538 11981,2539 11984,2541 11987,2542 11990,2544 11993,2546 11996,2548 11999,2550 12002,2552 12004,2555 12007,2557 12009,2560 12011,2563 12014,2566 12015,2569 12017,2572 12019,2575 12020,2579 12021,2582 12022,2585 12023,2589 12024,2592 12025,2596 12025,2599 12025,2603 12025,2604 Z M 12025,2673 L 12025,2673 Z M 11732,2534 L 11732,2534 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id123">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11732" y="2734" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12025,2804 L 12025,2804 12025,2808 12025,2811 12024,2815 12023,2818 12023,2822 12022,2825 12020,2829 12019,2832 12017,2835 12016,2839 12014,2842 12012,2845 12010,2847 12007,2850 12005,2853 12002,2855 11999,2858 11997,2860 11994,2862 11990,2864 11987,2865 11984,2867 11981,2868 11977,2870 11974,2871 11970,2871 11967,2872 11963,2873 11960,2873 11956,2873 11802,2873 11802,2873 11798,2873 11795,2873 11791,2872 11788,2871 11784,2871 11781,2870 11777,2868 11774,2867 11771,2865 11767,2864 11764,2862 11761,2860 11759,2858 11756,2855 11753,2853 11751,2850 11748,2847 11746,2845 11744,2842 11742,2838 11741,2835 11739,2832 11738,2829 11736,2825 11735,2822 11735,2818 11734,2815 11733,2811 11733,2808 11733,2804 11732,2804 11733,2804 11733,2800 11733,2797 11734,2793 11734,2790 11735,2786 11736,2783 11737,2779 11739,2776 11740,2773 11742,2770 11744,2767 11746,2764 11748,2761 11750,2758 11753,2756 11755,2753 11758,2751 11761,2749 11764,2746 11767,2745 11770,2743 11773,2741 11777,2740 11780,2739 11783,2738 11787,2737 11790,2736 11794,2735 11797,2735 11801,2735 11956,2734 11956,2735 11960,2735 11963,2735 11967,2736 11970,2736 11974,2737 11977,2738 11981,2739 11984,2741 11987,2742 11990,2744 11993,2746 11996,2748 11999,2750 12002,2752 12004,2755 12007,2757 12009,2760 12011,2763 12014,2766 12015,2769 12017,2772 12019,2775 12020,2779 12021,2782 12022,2785 12023,2789 12024,2792 12025,2796 12025,2799 12025,2803 12025,2804 Z M 12025,2873 L 12025,2873 Z M 11732,2734 L 11732,2734 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id124">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11383" y="2333" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11676,2404 L 11676,2404 11676,2408 11676,2411 11675,2415 11674,2418 11674,2422 11673,2425 11671,2429 11670,2432 11668,2435 11667,2439 11665,2442 11663,2445 11661,2447 11658,2450 11656,2453 11653,2455 11650,2458 11648,2460 11645,2462 11641,2464 11638,2465 11635,2467 11632,2468 11628,2470 11625,2471 11621,2471 11618,2472 11614,2473 11611,2473 11607,2473 11453,2473 11453,2473 11449,2473 11446,2473 11442,2472 11439,2471 11435,2471 11432,2470 11428,2468 11425,2467 11422,2465 11418,2464 11415,2462 11412,2460 11410,2458 11407,2455 11404,2453 11402,2450 11399,2447 11397,2445 11395,2442 11393,2438 11392,2435 11390,2432 11389,2429 11387,2425 11386,2422 11386,2418 11385,2415 11384,2411 11384,2408 11384,2404 11383,2404 11384,2404 11384,2400 11384,2397 11385,2393 11385,2390 11386,2386 11387,2383 11388,2379 11390,2376 11391,2373 11393,2370 11395,2367 11397,2364 11399,2361 11401,2358 11404,2356 11406,2353 11409,2351 11412,2349 11415,2346 11418,2345 11421,2343 11424,2341 11428,2340 11431,2339 11434,2338 11438,2337 11441,2336 11445,2335 11448,2335 11452,2335 11607,2334 11607,2335 11611,2335 11614,2335 11618,2336 11621,2336 11625,2337 11628,2338 11632,2339 11635,2341 11638,2342 11641,2344 11644,2346 11647,2348 11650,2350 11653,2352 11655,2355 11658,2357 11660,2360 11662,2363 11665,2366 11666,2369 11668,2372 11670,2375 11671,2379 11672,2382 11673,2385 11674,2389 11675,2392 11676,2396 11676,2399 11676,2403 11676,2404 Z M 11676,2473 L 11676,2473 Z M 11383,2334 L 11383,2334 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id125">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11383" y="2534" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11676,2604 L 11676,2604 11676,2608 11676,2611 11675,2615 11674,2618 11674,2622 11673,2625 11671,2629 11670,2632 11668,2635 11667,2639 11665,2642 11663,2645 11661,2647 11658,2650 11656,2653 11653,2655 11650,2658 11648,2660 11645,2662 11641,2664 11638,2665 11635,2667 11632,2668 11628,2670 11625,2671 11621,2671 11618,2672 11614,2673 11611,2673 11607,2673 11453,2673 11453,2673 11449,2673 11446,2673 11442,2672 11439,2671 11435,2671 11432,2670 11428,2668 11425,2667 11422,2665 11418,2664 11415,2662 11412,2660 11410,2658 11407,2655 11404,2653 11402,2650 11399,2647 11397,2645 11395,2642 11393,2638 11392,2635 11390,2632 11389,2629 11387,2625 11386,2622 11386,2618 11385,2615 11384,2611 11384,2608 11384,2604 11383,2604 11384,2604 11384,2600 11384,2597 11385,2593 11385,2590 11386,2586 11387,2583 11388,2579 11390,2576 11391,2573 11393,2570 11395,2567 11397,2564 11399,2561 11401,2558 11404,2556 11406,2553 11409,2551 11412,2549 11415,2546 11418,2545 11421,2543 11424,2541 11428,2540 11431,2539 11434,2538 11438,2537 11441,2536 11445,2535 11448,2535 11452,2535 11607,2534 11607,2535 11611,2535 11614,2535 11618,2536 11621,2536 11625,2537 11628,2538 11632,2539 11635,2541 11638,2542 11641,2544 11644,2546 11647,2548 11650,2550 11653,2552 11655,2555 11658,2557 11660,2560 11662,2563 11665,2566 11666,2569 11668,2572 11670,2575 11671,2579 11672,2582 11673,2585 11674,2589 11675,2592 11676,2596 11676,2599 11676,2603 11676,2604 Z M 11676,2673 L 11676,2673 Z M 11383,2534 L 11383,2534 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id126">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11383" y="2733" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 11676,2804 L 11676,2804 11676,2808 11676,2811 11675,2815 11674,2818 11674,2822 11673,2825 11671,2829 11670,2832 11668,2835 11667,2839 11665,2842 11663,2845 11661,2847 11658,2850 11656,2853 11653,2855 11650,2858 11648,2860 11645,2862 11641,2864 11638,2865 11635,2867 11632,2868 11628,2870 11625,2871 11621,2871 11618,2872 11614,2873 11611,2873 11607,2873 11453,2873 11453,2873 11449,2873 11446,2873 11442,2872 11439,2871 11435,2871 11432,2870 11428,2868 11425,2867 11422,2865 11418,2864 11415,2862 11412,2860 11410,2858 11407,2855 11404,2853 11402,2850 11399,2847 11397,2845 11395,2842 11393,2838 11392,2835 11390,2832 11389,2829 11387,2825 11386,2822 11386,2818 11385,2815 11384,2811 11384,2808 11384,2804 11383,2804 11384,2804 11384,2800 11384,2797 11385,2793 11385,2790 11386,2786 11387,2783 11388,2779 11390,2776 11391,2773 11393,2770 11395,2767 11397,2764 11399,2761 11401,2758 11404,2756 11406,2753 11409,2751 11412,2749 11415,2746 11418,2745 11421,2743 11424,2741 11428,2740 11431,2739 11434,2738 11438,2737 11441,2736 11445,2735 11448,2735 11452,2735 11607,2734 11607,2735 11611,2735 11614,2735 11618,2736 11621,2736 11625,2737 11628,2738 11632,2739 11635,2741 11638,2742 11641,2744 11644,2746 11647,2748 11650,2750 11653,2752 11655,2755 11658,2757 11660,2760 11662,2763 11665,2766 11666,2769 11668,2772 11670,2775 11671,2779 11672,2782 11673,2785 11674,2789 11675,2792 11676,2796 11676,2799 11676,2803 11676,2804 Z M 11676,2873 L 11676,2873 Z M 11383,2734 L 11383,2734 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id127">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12063" y="2337" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12356,2407 L 12356,2407 12356,2411 12356,2414 12355,2418 12354,2421 12354,2425 12353,2428 12351,2432 12350,2435 12348,2438 12347,2442 12345,2445 12343,2448 12341,2450 12338,2453 12336,2456 12333,2458 12330,2461 12328,2463 12325,2465 12321,2467 12318,2468 12315,2470 12312,2471 12308,2473 12305,2474 12301,2474 12298,2475 12294,2476 12291,2476 12287,2476 12133,2476 12133,2476 12129,2476 12126,2476 12122,2475 12119,2474 12115,2474 12112,2473 12108,2471 12105,2470 12102,2468 12098,2467 12095,2465 12092,2463 12090,2461 12087,2458 12084,2456 12082,2453 12079,2450 12077,2448 12075,2445 12073,2441 12072,2438 12070,2435 12069,2432 12067,2428 12066,2425 12066,2421 12065,2418 12064,2414 12064,2411 12064,2407 12063,2407 12064,2407 12064,2403 12064,2400 12065,2396 12065,2393 12066,2389 12067,2386 12068,2382 12070,2379 12071,2376 12073,2373 12075,2370 12077,2367 12079,2364 12081,2361 12084,2359 12086,2356 12089,2354 12092,2352 12095,2349 12098,2348 12101,2346 12104,2344 12108,2343 12111,2342 12114,2341 12118,2340 12121,2339 12125,2338 12128,2338 12132,2338 12287,2337 12287,2338 12291,2338 12294,2338 12298,2339 12301,2339 12305,2340 12308,2341 12312,2342 12315,2344 12318,2345 12321,2347 12324,2349 12327,2351 12330,2353 12333,2355 12335,2358 12338,2360 12340,2363 12342,2366 12345,2369 12346,2372 12348,2375 12350,2378 12351,2382 12352,2385 12353,2388 12354,2392 12355,2395 12356,2399 12356,2402 12356,2406 12356,2407 Z M 12356,2476 L 12356,2476 Z M 12063,2337 L 12063,2337 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id128">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12063" y="2537" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12356,2607 L 12356,2607 12356,2611 12356,2614 12355,2618 12354,2621 12354,2625 12353,2628 12351,2632 12350,2635 12348,2638 12347,2642 12345,2645 12343,2648 12341,2650 12338,2653 12336,2656 12333,2658 12330,2661 12328,2663 12325,2665 12321,2667 12318,2668 12315,2670 12312,2671 12308,2673 12305,2674 12301,2674 12298,2675 12294,2676 12291,2676 12287,2676 12133,2676 12133,2676 12129,2676 12126,2676 12122,2675 12119,2674 12115,2674 12112,2673 12108,2671 12105,2670 12102,2668 12098,2667 12095,2665 12092,2663 12090,2661 12087,2658 12084,2656 12082,2653 12079,2650 12077,2648 12075,2645 12073,2641 12072,2638 12070,2635 12069,2632 12067,2628 12066,2625 12066,2621 12065,2618 12064,2614 12064,2611 12064,2607 12063,2607 12064,2607 12064,2603 12064,2600 12065,2596 12065,2593 12066,2589 12067,2586 12068,2582 12070,2579 12071,2576 12073,2573 12075,2570 12077,2567 12079,2564 12081,2561 12084,2559 12086,2556 12089,2554 12092,2552 12095,2549 12098,2548 12101,2546 12104,2544 12108,2543 12111,2542 12114,2541 12118,2540 12121,2539 12125,2538 12128,2538 12132,2538 12287,2537 12287,2538 12291,2538 12294,2538 12298,2539 12301,2539 12305,2540 12308,2541 12312,2542 12315,2544 12318,2545 12321,2547 12324,2549 12327,2551 12330,2553 12333,2555 12335,2558 12338,2560 12340,2563 12342,2566 12345,2569 12346,2572 12348,2575 12350,2578 12351,2582 12352,2585 12353,2588 12354,2592 12355,2595 12356,2599 12356,2602 12356,2606 12356,2607 Z M 12356,2676 L 12356,2676 Z M 12063,2537 L 12063,2537 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id129">
+ <rect class="BoundingBox" stroke="none" fill="none" x="12063" y="2737" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 12356,2807 L 12356,2807 12356,2811 12356,2814 12355,2818 12354,2821 12354,2825 12353,2828 12351,2832 12350,2835 12348,2838 12347,2842 12345,2845 12343,2848 12341,2850 12338,2853 12336,2856 12333,2858 12330,2861 12328,2863 12325,2865 12321,2867 12318,2868 12315,2870 12312,2871 12308,2873 12305,2874 12301,2874 12298,2875 12294,2876 12291,2876 12287,2876 12133,2876 12133,2876 12129,2876 12126,2876 12122,2875 12119,2874 12115,2874 12112,2873 12108,2871 12105,2870 12102,2868 12098,2867 12095,2865 12092,2863 12090,2861 12087,2858 12084,2856 12082,2853 12079,2850 12077,2848 12075,2845 12073,2841 12072,2838 12070,2835 12069,2832 12067,2828 12066,2825 12066,2821 12065,2818 12064,2814 12064,2811 12064,2807 12063,2807 12064,2807 12064,2803 12064,2800 12065,2796 12065,2793 12066,2789 12067,2786 12068,2782 12070,2779 12071,2776 12073,2773 12075,2770 12077,2767 12079,2764 12081,2761 12084,2759 12086,2756 12089,2754 12092,2752 12095,2749 12098,2748 12101,2746 12104,2744 12108,2743 12111,2742 12114,2741 12118,2740 12121,2739 12125,2738 12128,2738 12132,2738 12287,2737 12287,2738 12291,2738 12294,2738 12298,2739 12301,2739 12305,2740 12308,2741 12312,2742 12315,2744 12318,2745 12321,2747 12324,2749 12327,2751 12330,2753 12333,2755 12335,2758 12338,2760 12340,2763 12342,2766 12345,2769 12346,2772 12348,2775 12350,2778 12351,2782 12352,2785 12353,2788 12354,2792 12355,2795 12356,2799 12356,2802 12356,2806 12356,2807 Z M 12356,2876 L 12356,2876 Z M 12063,2737 L 12063,2737 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id130">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14006" y="2336" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14300,2407 L 14300,2407 14300,2411 14300,2414 14299,2418 14298,2421 14298,2425 14297,2428 14295,2432 14294,2435 14292,2438 14291,2442 14289,2445 14287,2448 14285,2450 14282,2453 14280,2456 14277,2458 14274,2461 14272,2463 14269,2465 14265,2467 14262,2468 14259,2470 14256,2471 14252,2473 14249,2474 14245,2474 14242,2475 14238,2476 14235,2476 14231,2476 14077,2476 14077,2476 14073,2476 14070,2476 14066,2475 14063,2474 14059,2474 14056,2473 14052,2471 14049,2470 14046,2468 14042,2467 14039,2465 14036,2463 14034,2461 14031,2458 14028,2456 14026,2453 14023,2450 14021,2448 14019,2445 14017,2441 14016,2438 14014,2435 14013,2432 14011,2428 14010,2425 14010,2421 14009,2418 14008,2414 14008,2411 14008,2407 14007,2407 14008,2407 14008,2403 14008,2400 14009,2396 14009,2393 14010,2389 14011,2386 14012,2382 14014,2379 14015,2376 14017,2373 14019,2370 14021,2367 14023,2364 14025,2361 14028,2359 14030,2356 14033,2354 14036,2352 14039,2349 14042,2348 14045,2346 14048,2344 14052,2343 14055,2342 14058,2341 14062,2340 14065,2339 14069,2338 14072,2338 14076,2338 14231,2337 14231,2338 14235,2338 14238,2338 14242,2339 14245,2339 14249,2340 14252,2341 14256,2342 14259,2344 14262,2345 14265,2347 14268,2349 14271,2351 14274,2353 14277,2355 14279,2358 14282,2360 14284,2363 14286,2366 14289,2369 14290,2372 14292,2375 14294,2378 14295,2382 14296,2385 14297,2388 14298,2392 14299,2395 14300,2399 14300,2402 14300,2406 14300,2407 Z M 14300,2476 L 14300,2476 Z M 14007,2337 L 14007,2337 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id131">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14006" y="2537" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14300,2607 L 14300,2607 14300,2611 14300,2614 14299,2618 14298,2621 14298,2625 14297,2628 14295,2632 14294,2635 14292,2638 14291,2642 14289,2645 14287,2648 14285,2650 14282,2653 14280,2656 14277,2658 14274,2661 14272,2663 14269,2665 14265,2667 14262,2668 14259,2670 14256,2671 14252,2673 14249,2674 14245,2674 14242,2675 14238,2676 14235,2676 14231,2676 14077,2676 14077,2676 14073,2676 14070,2676 14066,2675 14063,2674 14059,2674 14056,2673 14052,2671 14049,2670 14046,2668 14042,2667 14039,2665 14036,2663 14034,2661 14031,2658 14028,2656 14026,2653 14023,2650 14021,2648 14019,2645 14017,2641 14016,2638 14014,2635 14013,2632 14011,2628 14010,2625 14010,2621 14009,2618 14008,2614 14008,2611 14008,2607 14007,2607 14008,2607 14008,2603 14008,2600 14009,2596 14009,2593 14010,2589 14011,2586 14012,2582 14014,2579 14015,2576 14017,2573 14019,2570 14021,2567 14023,2564 14025,2561 14028,2559 14030,2556 14033,2554 14036,2552 14039,2549 14042,2548 14045,2546 14048,2544 14052,2543 14055,2542 14058,2541 14062,2540 14065,2539 14069,2538 14072,2538 14076,2538 14231,2537 14231,2538 14235,2538 14238,2538 14242,2539 14245,2539 14249,2540 14252,2541 14256,2542 14259,2544 14262,2545 14265,2547 14268,2549 14271,2551 14274,2553 14277,2555 14279,2558 14282,2560 14284,2563 14286,2566 14289,2569 14290,2572 14292,2575 14294,2578 14295,2582 14296,2585 14297,2588 14298,2592 14299,2595 14300,2599 14300,2602 14300,2606 14300,2607 Z M 14300,2676 L 14300,2676 Z M 14007,2537 L 14007,2537 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id132">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14006" y="2736" width="295" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14300,2806 L 14300,2806 14300,2810 14300,2813 14299,2817 14298,2820 14298,2824 14297,2827 14295,2831 14294,2834 14292,2837 14291,2841 14289,2844 14287,2847 14285,2849 14282,2852 14280,2855 14277,2857 14274,2860 14272,2862 14269,2864 14265,2866 14262,2867 14259,2869 14256,2870 14252,2872 14249,2873 14245,2873 14242,2874 14238,2875 14235,2875 14231,2875 14077,2875 14077,2875 14073,2875 14070,2875 14066,2874 14063,2873 14059,2873 14056,2872 14052,2870 14049,2869 14046,2867 14042,2866 14039,2864 14036,2862 14034,2860 14031,2857 14028,2855 14026,2852 14023,2849 14021,2847 14019,2844 14017,2840 14016,2837 14014,2834 14013,2831 14011,2827 14010,2824 14010,2820 14009,2817 14008,2813 14008,2810 14008,2806 14007,2806 14008,2806 14008,2802 14008,2799 14009,2795 14009,2792 14010,2788 14011,2785 14012,2781 14014,2778 14015,2775 14017,2772 14019,2769 14021,2766 14023,2763 14025,2760 14028,2758 14030,2755 14033,2753 14036,2751 14039,2748 14042,2747 14045,2745 14048,2743 14052,2742 14055,2741 14058,2740 14062,2739 14065,2738 14069,2737 14072,2737 14076,2737 14231,2736 14231,2737 14235,2737 14238,2737 14242,2738 14245,2738 14249,2739 14252,2740 14256,2741 14259,2743 14262,2744 14265,2746 14268,2748 14271,2750 14274,2752 14277,2754 14279,2757 14282,2759 14284,2762 14286,2765 14289,2768 14290,2771 14292,2774 14294,2777 14295,2781 14296,2784 14297,2787 14298,2791 14299,2794 14300,2798 14300,2801 14300,2805 14300,2806 Z M 14300,2875 L 14300,2875 Z M 14007,2736 L 14007,2736 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id133">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13658" y="2337" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 13951,2407 L 13951,2407 13951,2411 13951,2414 13950,2418 13949,2421 13949,2425 13948,2428 13946,2432 13945,2435 13943,2438 13942,2442 13940,2445 13938,2448 13936,2450 13933,2453 13931,2456 13928,2458 13925,2461 13923,2463 13920,2465 13916,2467 13913,2468 13910,2470 13907,2471 13903,2473 13900,2474 13896,2474 13893,2475 13889,2476 13886,2476 13882,2476 13728,2476 13728,2476 13724,2476 13721,2476 13717,2475 13714,2474 13710,2474 13707,2473 13703,2471 13700,2470 13697,2468 13693,2467 13690,2465 13687,2463 13685,2461 13682,2458 13679,2456 13677,2453 13674,2450 13672,2448 13670,2445 13668,2441 13667,2438 13665,2435 13664,2432 13662,2428 13661,2425 13661,2421 13660,2418 13659,2414 13659,2411 13659,2407 13658,2407 13659,2407 13659,2403 13659,2400 13660,2396 13660,2393 13661,2389 13662,2386 13663,2382 13665,2379 13666,2376 13668,2373 13670,2370 13672,2367 13674,2364 13676,2361 13679,2359 13681,2356 13684,2354 13687,2352 13690,2349 13693,2348 13696,2346 13699,2344 13703,2343 13706,2342 13709,2341 13713,2340 13716,2339 13720,2338 13723,2338 13727,2338 13882,2337 13882,2338 13886,2338 13889,2338 13893,2339 13896,2339 13900,2340 13903,2341 13907,2342 13910,2344 13913,2345 13916,2347 13919,2349 13922,2351 13925,2353 13928,2355 13930,2358 13933,2360 13935,2363 13937,2366 13940,2369 13941,2372 13943,2375 13945,2378 13946,2382 13947,2385 13948,2388 13949,2392 13950,2395 13951,2399 13951,2402 13951,2406 13951,2407 Z M 13951,2476 L 13951,2476 Z M 13658,2337 L 13658,2337 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id134">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13658" y="2537" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 13951,2607 L 13951,2607 13951,2611 13951,2614 13950,2618 13949,2621 13949,2625 13948,2628 13946,2632 13945,2635 13943,2638 13942,2642 13940,2645 13938,2648 13936,2650 13933,2653 13931,2656 13928,2658 13925,2661 13923,2663 13920,2665 13916,2667 13913,2668 13910,2670 13907,2671 13903,2673 13900,2674 13896,2674 13893,2675 13889,2676 13886,2676 13882,2676 13728,2676 13728,2676 13724,2676 13721,2676 13717,2675 13714,2674 13710,2674 13707,2673 13703,2671 13700,2670 13697,2668 13693,2667 13690,2665 13687,2663 13685,2661 13682,2658 13679,2656 13677,2653 13674,2650 13672,2648 13670,2645 13668,2641 13667,2638 13665,2635 13664,2632 13662,2628 13661,2625 13661,2621 13660,2618 13659,2614 13659,2611 13659,2607 13658,2607 13659,2607 13659,2603 13659,2600 13660,2596 13660,2593 13661,2589 13662,2586 13663,2582 13665,2579 13666,2576 13668,2573 13670,2570 13672,2567 13674,2564 13676,2561 13679,2559 13681,2556 13684,2554 13687,2552 13690,2549 13693,2548 13696,2546 13699,2544 13703,2543 13706,2542 13709,2541 13713,2540 13716,2539 13720,2538 13723,2538 13727,2538 13882,2537 13882,2538 13886,2538 13889,2538 13893,2539 13896,2539 13900,2540 13903,2541 13907,2542 13910,2544 13913,2545 13916,2547 13919,2549 13922,2551 13925,2553 13928,2555 13930,2558 13933,2560 13935,2563 13937,2566 13940,2569 13941,2572 13943,2575 13945,2578 13946,2582 13947,2585 13948,2588 13949,2592 13950,2595 13951,2599 13951,2602 13951,2606 13951,2607 Z M 13951,2676 L 13951,2676 Z M 13658,2537 L 13658,2537 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id135">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13658" y="2736" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 13951,2806 L 13951,2806 13951,2810 13951,2813 13950,2817 13949,2820 13949,2824 13948,2827 13946,2831 13945,2834 13943,2837 13942,2841 13940,2844 13938,2847 13936,2849 13933,2852 13931,2855 13928,2857 13925,2860 13923,2862 13920,2864 13916,2866 13913,2867 13910,2869 13907,2870 13903,2872 13900,2873 13896,2873 13893,2874 13889,2875 13886,2875 13882,2875 13728,2875 13728,2875 13724,2875 13721,2875 13717,2874 13714,2873 13710,2873 13707,2872 13703,2870 13700,2869 13697,2867 13693,2866 13690,2864 13687,2862 13685,2860 13682,2857 13679,2855 13677,2852 13674,2849 13672,2847 13670,2844 13668,2840 13667,2837 13665,2834 13664,2831 13662,2827 13661,2824 13661,2820 13660,2817 13659,2813 13659,2810 13659,2806 13658,2806 13659,2806 13659,2802 13659,2799 13660,2795 13660,2792 13661,2788 13662,2785 13663,2781 13665,2778 13666,2775 13668,2772 13670,2769 13672,2766 13674,2763 13676,2760 13679,2758 13681,2755 13684,2753 13687,2751 13690,2748 13693,2747 13696,2745 13699,2743 13703,2742 13706,2741 13709,2740 13713,2739 13716,2738 13720,2737 13723,2737 13727,2737 13882,2736 13882,2737 13886,2737 13889,2737 13893,2738 13896,2738 13900,2739 13903,2740 13907,2741 13910,2743 13913,2744 13916,2746 13919,2748 13922,2750 13925,2752 13928,2754 13930,2757 13933,2759 13935,2762 13937,2765 13940,2768 13941,2771 13943,2774 13945,2777 13946,2781 13947,2784 13948,2787 13949,2791 13950,2794 13951,2798 13951,2801 13951,2805 13951,2806 Z M 13951,2875 L 13951,2875 Z M 13658,2736 L 13658,2736 Z"/>
+ </g>
+ </g>
+ </g>
+ <g class="Group">
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id136">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14337" y="2340" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14630,2410 L 14630,2410 14630,2414 14630,2417 14629,2421 14628,2424 14628,2428 14627,2431 14625,2435 14624,2438 14622,2441 14621,2445 14619,2448 14617,2451 14615,2453 14612,2456 14610,2459 14607,2461 14604,2464 14602,2466 14599,2468 14595,2470 14592,2471 14589,2473 14586,2474 14582,2476 14579,2477 14575,2477 14572,2478 14568,2479 14565,2479 14561,2479 14407,2479 14407,2479 14403,2479 14400,2479 14396,2478 14393,2477 14389,2477 14386,2476 14382,2474 14379,2473 14376,2471 14372,2470 14369,2468 14366,2466 14364,2464 14361,2461 14358,2459 14356,2456 14353,2453 14351,2451 14349,2448 14347,2444 14346,2441 14344,2438 14343,2435 14341,2431 14340,2428 14340,2424 14339,2421 14338,2417 14338,2414 14338,2410 14337,2410 14338,2410 14338,2406 14338,2403 14339,2399 14339,2396 14340,2392 14341,2389 14342,2385 14344,2382 14345,2379 14347,2376 14349,2373 14351,2370 14353,2367 14355,2364 14358,2362 14360,2359 14363,2357 14366,2355 14369,2352 14372,2351 14375,2349 14378,2347 14382,2346 14385,2345 14388,2344 14392,2343 14395,2342 14399,2341 14402,2341 14406,2341 14561,2340 14561,2341 14565,2341 14568,2341 14572,2342 14575,2342 14579,2343 14582,2344 14586,2345 14589,2347 14592,2348 14595,2350 14598,2352 14601,2354 14604,2356 14607,2358 14609,2361 14612,2363 14614,2366 14616,2369 14619,2372 14620,2375 14622,2378 14624,2381 14625,2385 14626,2388 14627,2391 14628,2395 14629,2398 14630,2402 14630,2405 14630,2409 14630,2410 Z M 14630,2479 L 14630,2479 Z M 14337,2340 L 14337,2340 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id137">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14337" y="2539" width="294" height="140"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14630,2609 L 14630,2609 14630,2613 14630,2616 14629,2620 14628,2623 14628,2627 14627,2630 14625,2634 14624,2637 14622,2640 14621,2644 14619,2647 14617,2650 14615,2652 14612,2655 14610,2658 14607,2660 14604,2663 14602,2665 14599,2667 14595,2669 14592,2670 14589,2672 14586,2673 14582,2675 14579,2676 14575,2676 14572,2677 14568,2678 14565,2678 14561,2678 14407,2678 14407,2678 14403,2678 14400,2678 14396,2677 14393,2676 14389,2676 14386,2675 14382,2673 14379,2672 14376,2670 14372,2669 14369,2667 14366,2665 14364,2663 14361,2660 14358,2658 14356,2655 14353,2652 14351,2650 14349,2647 14347,2643 14346,2640 14344,2637 14343,2634 14341,2630 14340,2627 14340,2623 14339,2620 14338,2616 14338,2613 14338,2609 14337,2609 14338,2609 14338,2605 14338,2602 14339,2598 14339,2595 14340,2591 14341,2588 14342,2584 14344,2581 14345,2578 14347,2575 14349,2572 14351,2569 14353,2566 14355,2563 14358,2561 14360,2558 14363,2556 14366,2554 14369,2551 14372,2550 14375,2548 14378,2546 14382,2545 14385,2544 14388,2543 14392,2542 14395,2541 14399,2540 14402,2540 14406,2540 14561,2539 14561,2540 14565,2540 14568,2540 14572,2541 14575,2541 14579,2542 14582,2543 14586,2544 14589,2546 14592,2547 14595,2549 14598,2551 14601,2553 14604,2555 14607,2557 14609,2560 14612,2562 14614,2565 14616,2568 14619,2571 14620,2574 14622,2577 14624,2580 14625,2584 14626,2587 14627,2590 14628,2594 14629,2597 14630,2601 14630,2604 14630,2608 14630,2609 Z M 14630,2678 L 14630,2678 Z M 14337,2539 L 14337,2539 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id138">
+ <rect class="BoundingBox" stroke="none" fill="none" x="14337" y="2739" width="294" height="141"/>
+ <path fill="rgb(66,131,139)" stroke="none" d="M 14630,2809 L 14630,2809 14630,2813 14630,2816 14629,2820 14628,2823 14628,2827 14627,2830 14625,2834 14624,2837 14622,2840 14621,2844 14619,2847 14617,2850 14615,2852 14612,2855 14610,2858 14607,2860 14604,2863 14602,2865 14599,2867 14595,2869 14592,2870 14589,2872 14586,2873 14582,2875 14579,2876 14575,2876 14572,2877 14568,2878 14565,2878 14561,2878 14407,2878 14407,2878 14403,2878 14400,2878 14396,2877 14393,2876 14389,2876 14386,2875 14382,2873 14379,2872 14376,2870 14372,2869 14369,2867 14366,2865 14364,2863 14361,2860 14358,2858 14356,2855 14353,2852 14351,2850 14349,2847 14347,2843 14346,2840 14344,2837 14343,2834 14341,2830 14340,2827 14340,2823 14339,2820 14338,2816 14338,2813 14338,2809 14337,2809 14338,2809 14338,2805 14338,2802 14339,2798 14339,2795 14340,2791 14341,2788 14342,2784 14344,2781 14345,2778 14347,2775 14349,2772 14351,2769 14353,2766 14355,2763 14358,2761 14360,2758 14363,2756 14366,2754 14369,2751 14372,2750 14375,2748 14378,2746 14382,2745 14385,2744 14388,2743 14392,2742 14395,2741 14399,2740 14402,2740 14406,2740 14561,2739 14561,2740 14565,2740 14568,2740 14572,2741 14575,2741 14579,2742 14582,2743 14586,2744 14589,2746 14592,2747 14595,2749 14598,2751 14601,2753 14604,2755 14607,2757 14609,2760 14612,2762 14614,2765 14616,2768 14619,2771 14620,2774 14622,2777 14624,2780 14625,2784 14626,2787 14627,2790 14628,2794 14629,2797 14630,2801 14630,2804 14630,2808 14630,2809 Z M 14630,2878 L 14630,2878 Z M 14337,2739 L 14337,2739 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.TextShape">
+ <g id="id139">
+ <rect class="BoundingBox" stroke="none" fill="none" x="9082" y="4140" width="1625" height="1285"/>
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9332" y="4527"><tspan fill="rgb(0,0,0)" stroke="none">PCIe</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Calibri, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="9332" y="4857"><tspan fill="rgb(0,0,0)" stroke="none">Gen3</tspan></tspan></tspan></text>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id140">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3377" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id141">
+ <rect class="BoundingBox" stroke="none" fill="none" x="5933" y="8492" width="390" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id142">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6376" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id143">
+ <rect class="BoundingBox" stroke="none" fill="none" x="3812" y="5979" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id144">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6706" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id145">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10770" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id146">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13896" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id147">
+ <rect class="BoundingBox" stroke="none" fill="none" x="11105" y="8492" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id148">
+ <rect class="BoundingBox" stroke="none" fill="none" x="7114" y="5952" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id149">
+ <rect class="BoundingBox" stroke="none" fill="none" x="13461" y="5979" width="382" height="382"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id150">
+ <rect class="BoundingBox" stroke="none" fill="none" x="6703" y="6159" width="743" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7392,6212 L 7392,6212 7392,6219 7392,6225 7391,6232 7391,6238 7390,6245 7390,6251 7389,6257 7388,6263 7386,6269 7385,6275 7384,6281 7382,6286 7381,6291 7379,6296 7377,6301 7375,6306 7373,6310 7371,6314 7369,6318 7366,6321 7364,6324 7362,6327 7359,6330 7357,6332 7354,6334 7352,6335 7349,6336 7346,6337 7344,6338 7341,6338 6808,6339 6808,6339 6805,6339 6803,6338 6800,6337 6797,6336 6795,6335 6792,6333 6790,6331 6787,6328 6785,6325 6783,6322 6780,6319 6778,6315 6776,6311 6774,6307 6772,6302 6770,6297 6769,6292 6767,6287 6765,6282 6764,6276 6763,6270 6762,6264 6760,6258 6760,6252 6759,6246 6758,6239 6758,6233 6757,6226 6757,6220 6757,6213"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 7392,6212 L 7392,6212 Z"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 6756,6339 L 6756,6339 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id151">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2493" y="6288" width="8032" height="655"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10471,6889 L 2605,6889 2605,6341 2546,6341"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id152">
+ <rect class="BoundingBox" stroke="none" fill="none" x="2003" y="6160" width="743" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2692,6213 L 2692,6213 2692,6220 2692,6226 2691,6233 2691,6239 2690,6246 2690,6252 2689,6258 2688,6264 2686,6270 2685,6276 2684,6282 2682,6287 2681,6292 2679,6297 2677,6302 2675,6307 2673,6311 2671,6315 2669,6319 2666,6322 2664,6325 2662,6328 2659,6331 2657,6333 2654,6335 2652,6336 2649,6337 2646,6338 2644,6339 2641,6339 2108,6340 2108,6340 2105,6340 2103,6339 2100,6338 2097,6337 2095,6336 2092,6334 2090,6332 2087,6329 2085,6326 2083,6323 2080,6320 2078,6316 2076,6312 2074,6308 2072,6303 2070,6298 2069,6293 2067,6288 2065,6283 2064,6277 2063,6271 2062,6265 2060,6259 2060,6253 2059,6247 2058,6240 2058,6234 2057,6227 2057,6221 2057,6214"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2692,6213 L 2692,6213 Z"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 2056,6340 L 2056,6340 Z"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.ConnectorShape">
+ <g id="id153">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10418" y="6299" width="119" height="644"/>
+ <path fill="none" stroke="rgb(238,131,59)" stroke-width="106" stroke-linejoin="round" d="M 10471,6889 L 10479,6889 10479,6352 10483,6352"/>
+ </g>
+ </g>
+ <g class="com.sun.star.drawing.CustomShape">
+ <g id="id154">
+ <rect class="BoundingBox" stroke="none" fill="none" x="10358" y="6140" width="743" height="235"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 11047,6193 L 11047,6193 11047,6200 11047,6206 11046,6213 11046,6219 11045,6226 11045,6232 11044,6238 11043,6244 11041,6250 11040,6256 11039,6262 11037,6267 11036,6272 11034,6277 11032,6282 11030,6287 11028,6291 11026,6295 11024,6299 11021,6302 11019,6305 11017,6308 11014,6311 11012,6313 11009,6315 11007,6316 11004,6317 11001,6318 10999,6319 10996,6319 10463,6320 10463,6320 10460,6320 10458,6319 10455,6318 10452,6317 10450,6316 10447,6314 10445,6312 10442,6309 10440,6306 10438,6303 10435,6300 10433,6296 10431,6292 10429,6288 10427,6283 10425,6278 10424,6273 10422,6268 10420,6263 10419,6257 10418,6251 10417,6245 10415,6239 10415,6233 10414,6227 10413,6220 10413,6214 10412,6207 10412,6201 10412,6194"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 11047,6193 L 11047,6193 Z"/>
+ <path fill="none" stroke="rgb(89,89,89)" stroke-width="106" stroke-linejoin="round" d="M 10411,6320 L 10411,6320 Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/docs/report/introduction/testbed-3n-tsh.svg b/docs/static/testbed-3n-tsh.svg
index e13a2b174f..e13a2b174f 100644
--- a/docs/report/introduction/testbed-3n-tsh.svg
+++ b/docs/static/testbed-3n-tsh.svg
diff --git a/docs/vf-2n-nic2nic.svg b/docs/static/vf-2n-nic2nic.svg
index f36200d6ca..f36200d6ca 100644
--- a/docs/vf-2n-nic2nic.svg
+++ b/docs/static/vf-2n-nic2nic.svg
diff --git a/docs/report/vpp_device_tests/vpp_device.svg b/docs/static/vpp_device.svg
index 177d49af89..177d49af89 100644
--- a/docs/report/vpp_device_tests/vpp_device.svg
+++ b/docs/static/vpp_device.svg
diff --git a/docs/tag_documentation.rst b/docs/tag_documentation.rst
deleted file mode 100644
index e860d5a8ee..0000000000
--- a/docs/tag_documentation.rst
+++ /dev/null
@@ -1,972 +0,0 @@
-CSIT Tags
-=========
-
-All CSIT test cases are labelled with Robot Framework tags used to allow for
-easy test case type identification, test case grouping and selection for
-execution. Following sections list currently used CSIT tags and their
-descriptions.
-
-Testbed Topology Tags
----------------------
-
-.. topic:: 2_NODE_DOUBLE_LINK_TOPO
-
- 2 nodes connected in a circular topology with two links interconnecting
- the devices.
-
-.. topic:: 2_NODE_SINGLE_LINK_TOPO
-
- 2 nodes connected in a circular topology with at least one link
- interconnecting devices.
-
-.. topic:: 3_NODE_DOUBLE_LINK_TOPO
-
- 3 nodes connected in a circular topology with two links interconnecting
- the devices.
-
-.. topic:: 3_NODE_SINGLE_LINK_TOPO
-
- 3 nodes connected in a circular topology with at least one link
- interconnecting devices.
-
-Objective Tags
---------------
-
-.. topic:: SKIP_PATCH
-
- Test case(s) marked to not run in case of vpp-csit-verify (i.e. VPP patch)
- and csit-vpp-verify jobs (i.e. CSIT patch).
-
-.. topic:: SKIP_VPP_PATCH
-
- Test case(s) marked to not run in case of vpp-csit-verify (i.e. VPP patch).
-
-Environment Tags
-----------------
-
-.. topic:: HW_ENV
-
- DUTs and TGs are running on bare metal.
-
-.. topic:: VM_ENV
-
- DUTs and TGs are running in virtual environment.
-
-.. topic:: VPP_VM_ENV
-
- DUTs with VPP and capable of running Virtual Machine.
-
-NIC Model Tags
---------------
-
-.. topic:: NIC_Intel-X520-DA2
-
- Intel X520-DA2 NIC.
-
-.. topic:: NIC_Intel-XL710
-
- Intel XL710 NIC.
-
-.. topic:: NIC_Intel-X710
-
- Intel X710 NIC.
-
-.. topic:: NIC_Intel-XXV710
-
- Intel XXV710 NIC.
-
-.. topic:: NIC_Cisco-VIC-1227
-
- VIC-1227 by Cisco.
-
-.. topic:: NIC_Cisco-VIC-1385
-
- VIC-1385 by Cisco.
-
-Scaling Tags
-------------
-
-.. topic:: FIB_20K
-
- 2x10,000 entries in single fib table
-
-.. topic:: FIB_200K
-
- 2x100,000 entries in single fib table
-
-.. topic:: FIB_2M
-
- 2x1,000,000 entries in single fib table
-
-.. topic:: L2BD_1
-
- Test with 1 L2 bridge domain.
-
-.. topic:: L2BD_10
-
- Test with 10 L2 bridge domains.
-
-.. topic:: L2BD_100
-
- Test with 100 L2 bridge domains.
-
-.. topic:: L2BD_1K
-
- Test with 1000 L2 bridge domains.
-
-.. topic:: VLAN_1
-
- Test with 1 VLAN sub-interface.
-
-.. topic:: VLAN_10
-
- Test with 10 VLAN sub-interfaces.
-
-.. topic:: VLAN_100
-
- Test with 100 VLAN sub-interfaces.
-
-.. topic:: VLAN_1K
-
- Test with 1000 VLAN sub-interfaces.
-
-.. topic:: VXLAN_1
-
- Test with 1 VXLAN tunnel.
-
-.. topic:: VXLAN_10
-
- Test with 10 VXLAN tunnels.
-
-.. topic:: VXLAN_100
-
- Test with 100 VXLAN tunnels.
-
-.. topic:: VXLAN_1K
-
- Test with 1000 VXLAN tunnels.
-
-.. topic:: TNL_{t}
-
- IPSec in tunnel mode - {t} tunnels.
-
-.. topic:: SRC_USER_1
-
- Traffic flow with 1 unique IP (users) in one direction.
-
-.. topic:: SRC_USER_10
-
- Traffic flow with 10 unique IPs (users) in one direction.
-
-.. topic:: SRC_USER_100
-
- Traffic flow with 100 unique IPs (users) in one direction.
-
-.. topic:: SRC_USER_1000
-
- Traffic flow with 1000 unique IPs (users) in one direction.
-
-.. topic:: SRC_USER_2000
-
- Traffic flow with 2000 unique IPs (users) in one direction.
-
-.. topic:: SRC_USER_4000
-
- Traffic flow with 4000 unique IPs (users) in one direction.
-
-.. topic:: 100_FLOWS
-
- Traffic stream with 100 unique flows (10 IPs/users x 10 UDP ports) in one
- direction.
-
-.. topic:: 10k_FLOWS
-
- Traffic stream with 10 000 unique flows (10 IPs/users x 1000 UDP ports) in
- one direction.
-
-.. topic:: 100k_FLOWS
-
- Traffic stream with 100 000 unique flows (100 IPs/users x 1000 UDP ports) in
- one direction.
-
-.. topic:: HOSTS_1024
-
- Stateless or stateful traffic stream with 1024 client source IP4 addresses,
- usually with 63 flow differing in source port number. Could be UDP or TCP.
- If NAT is used, the clients are inside. Outside IP range can differ.
-
-.. topic:: HOSTS_4096
-
- Stateless or stateful traffic stream with 4096 client source IP4 addresses,
- usually with 63 flow differing in source port number. Could be UDP or TCP.
- If NAT is used, the clients are inside. Outside IP range can differ.
-
-.. topic:: HOSTS_16384
-
- Stateless or stateful traffic stream with 16384 client source IP4 addresses,
- usually with 63 flow differing in source port number. Could be UDP or TCP.
- If NAT is used, the clients are inside. Outside IP range can differ.
-
-.. topic:: HOSTS_65536
-
- Stateless or stateful traffic stream with 65536 client source IP4 addresses,
- usually with 63 flow differing in source port number. Could be UDP or TCP.
- If NAT is used, the clients are inside. Outside IP range can differ.
-
-.. topic:: HOSTS_262144
-
- Stateless or stateful traffic stream with 262144 client source IP4 addresses
- usually with 63 flow differing in source port number. Could be UDP or TCP.
- If NAT is used, the clients are inside. Outside IP range can differ.
-
-.. topic:: GENEVE4_1TUN
-
- Test with 1 GENEVE IPv4 tunnel.
-
-.. topic:: GENEVE4_4TUN
-
- Test with 4 GENEVE IPv4 tunnels.
-
-.. topic:: GENEVE4_16TUN
-
- Test with 16 GENEVE IPv4 tunnels.
-
-.. topic:: GENEVE4_64TUN
-
- Test with 64 GENEVE IPv4 tunnels.
-
-.. topic:: GENEVE4_256TUN
-
- Test with 256 GENEVE IPv4 tunnels.
-
-.. topic:: GENEVE4_1024TUN
-
- Test with 1024 GENEVE IPv4 tunnels.
-
-Test Category Tags
-------------------
-
-.. topic:: FUNCTEST
-
- All functional test cases.
-
-.. topic:: PERFTEST
-
- All performance test cases.
-
-Performance Type Tags
----------------------
-
-.. topic:: NDRPDR
-
- Single test finding both No Drop Rate and Partial Drop Rate simultaneously.
- The search is done by optimized algorithm which performs
- multiple trial runs at different durations and transmit rates.
- The results come from the final trials, which have duration of 30 seconds.
-
-.. topic:: MRR
-
- Performance tests where TG sends the traffic at maximum rate (line rate)
- and reports total sent/received packets over trial duration.
- The result is an average of 10 trials of 1 second duration.
-
-.. topic:: SOAK
-
- Performance tests using PLRsearch to find the critical load.
-
-.. topic:: RECONF
-
- Performance tests aimed to measure lost packets (time) when performing
- reconfiguration while full throughput offered load is applied.
-
-Ethernet Frame Size Tags
-------------------------
-
-These are describing the traffic offered by Traffic Generator,
-"primary" traffic in case of asymmetric load.
-For traffic between DUTs, or for "secondary" traffic, see ${overhead} value.
-
-.. topic:: 64B
-
- 64B frames used for test. Generic ethernet or IPv4.
-
-.. topic:: 78B
-
- 78B frames used for test. Ipv6.
-
-.. topic:: 114B
-
- 114B frames used for test. IPv4+vxlan.
-
-.. topic:: 118B
-
- 118B frames used for test. Dot1q+IPv4+vxlan.
-
-.. topic:: IMIX
-
- IMIX frame sequence (28x 64B, 16x 570B, 4x 1518B) used for test.
-
-.. topic:: 1460B
-
- 1460B frames used for test.
-
-.. topic:: 1480B
-
- 1480B frames used for test.
-
-.. topic:: 1514B
-
- 1514B frames used for test.
-
-.. topic:: 1518B
-
- 1518B frames used for test.
-
-.. topic:: 9000B
-
- 9000B frames used for test.
-
-Test Type Tags
---------------
-
-.. topic:: BASE
-
- Baseline test cases, no encapsulation, no feature(s) configured in tests.
- No scaling whatsoever, beyond minimum needed for RSS.
-
-.. topic:: IP4BASE
-
- IPv4 baseline test cases, no encapsulation, no feature(s) configured in
- tests. Minimal number of routes. Other quantities may be scaled.
-
-.. topic:: IP6BASE
-
- IPv6 baseline test cases, no encapsulation, no feature(s) configured in
- tests.
-
-.. topic:: L2XCBASE
-
- L2XC baseline test cases, no encapsulation, no feature(s) configured in
- tests.
-
-.. topic:: L2BDBASE
-
- L2BD baseline test cases, no encapsulation, no feature(s) configured in
- tests.
-
-.. topic:: L2PATCH
-
- L2PATCH baseline test cases, no encapsulation, no feature(s) configured in
- tests.
-
-.. topic:: SCALE
-
- Scale test cases. Other tags specify which quantities are scaled.
- Also applies if scaling is set on TG only (e.g. DUT works as IP4BASE).
-
-.. topic:: ENCAP
-
- Test cases where encapsulation is used. Use also encapsulation tag(s).
-
-.. topic:: FEATURE
-
- At least one feature is configured in test cases. Use also feature tag(s).
-
-.. topic:: UDP
-
- Tests which use any kind of UDP traffic (STL or ASTF profile).
-
-.. topic:: TCP
-
- Tests which use any kind of TCP traffic (STL or ASTF profile).
-
-..
- TODO: Should we define tags STL and ASTF?
-
-.. topic:: UDP_UDIR
-
- Tests which use unidirectional UDP traffic (STL profile only).
-
-.. topic:: UDP_BIDIR
-
- Tests which use bidirectional UDP traffic (STL profile only).
-
-.. topic:: UDP_CPS
-
- Tests which measure connections per second on minimal UDP pseudoconnections.
- This implies ASTF traffic profile is used.
- This tag selects specific output processing in PAL.
-
-.. topic:: TCP_CPS
-
- Tests which measure connections per second on empty TCP connections.
- This implies ASTF traffic profile is used.
- This tag selects specific output processing in PAL.
-
-.. topic:: UDP_PPS
-
- Tests which measure packets per second on lightweight UDP transactions.
- This implies ASTF traffic profile is used.
- This tag selects specific output processing in PAL.
-
-.. topic:: TCP_PPS
-
- Tests which measure packets per second on lightweight TCP transactions.
- This implies ASTF traffic profile is used.
- This tag selects specific output processing in PAL.
-
-.. topic:: HTTP
-
- Tests which use traffic formed of valid HTTP requests (and responses).
-
-..
- TODO: Add HTTP tag to the current hoststack tests.
- TODO: Document other tags already used by hoststack tests.
-
-.. topic:: NF_DENSITY
-
- Performance tests that measure throughput of multiple VNF and CNF
- service topologies at different service densities.
-
-NF Service Density Tags
------------------------
-
-.. topic:: CHAIN
-
- NF service density tests with VNF or CNF service chain topology(ies).
-
-.. topic:: PIPE
-
- NF service density tests with CNF service pipeline topology(ies).
-
-.. topic:: NF_L3FWDIP4
-
- NF service density tests with DPDK l3fwd IPv4 routing as NF workload.
-
-.. topic:: NF_VPPIP4
-
- NF service density tests with VPP IPv4 routing as NF workload.
-
-.. topic:: {r}R{c}C
-
- Service density matrix locator {r}R{c}C, {r}Row denoting number of
- service instances, {c}Column denoting number of NFs per service
- instance. {r}=(1,2,4,6,8,10), {c}=(1,2,4,6,8,10).
-
-.. topic:: {n}VM{t}T
-
- Service density {n}VM{t}T, {n}Number of NF Qemu VMs, {t}Number of threads
- per NF.
-
-.. topic:: {n}DCRt}T
-
- Service density {n}DCR{t}T, {n}Number of NF Docker containers, {t}Number of
- threads per NF.
-
-.. topic:: {n}_ADDED_CHAINS
-
- {n}Number of chains (or pipelines) added (and/or removed)
- during RECONF test.
-
-Forwarding Mode Tags
---------------------
-
-.. topic:: L2BDMACSTAT
-
- VPP L2 bridge-domain, L2 MAC static.
-
-.. topic:: L2BDMACLRN
-
- VPP L2 bridge-domain, L2 MAC learning.
-
-.. topic:: L2XCFWD
-
- VPP L2 point-to-point cross-connect.
-
-.. topic:: IP4FWD
-
- VPP IPv4 routed forwarding.
-
-.. topic:: IP6FWD
-
- VPP IPv6 routed forwarding.
-
-.. topic:: LOADBALANCER_MAGLEV
-
- VPP Load balancer maglev mode.
-
-.. topic:: LOADBALANCER_L3DSR
-
- VPP Load balancer l3dsr mode.
-
-.. topic:: LOADBALANCER_NAT4
-
- VPP Load balancer nat4 mode.
-
-Underlay Tags
--------------
-
-.. topic:: IP4UNRLAY
-
- IPv4 underlay.
-
-.. topic:: IP6UNRLAY
-
- IPv6 underlay.
-
-.. topic:: MPLSUNRLAY
-
- MPLS underlay.
-
-Overlay Tags
-------------
-
-.. topic:: L2OVRLAY
-
- L2 overlay.
-
-.. topic:: IP4OVRLAY
-
- IPv4 overlay (IPv4 payload).
-
-.. topic:: IP6OVRLAY
-
- IPv6 overlay (IPv6 payload).
-
-Tagging Tags
-------------
-
-.. topic:: DOT1Q
-
- All test cases with dot1q.
-
-.. topic:: DOT1AD
-
- All test cases with dot1ad.
-
-Encapsulation Tags
-------------------
-
-.. topic:: ETH
-
- All test cases with base Ethernet (no encapsulation).
-
-.. topic:: LISP
-
- All test cases with LISP.
-
-.. topic:: LISPGPE
-
- All test cases with LISP-GPE.
-
-.. topic:: LISP_IP4o4
-
- All test cases with LISP_IP4o4.
-
-.. topic:: LISPGPE_IP4o4
-
- All test cases with LISPGPE_IP4o4.
-
-.. topic:: LISPGPE_IP6o4
-
- All test cases with LISPGPE_IP6o4.
-
-.. topic:: LISPGPE_IP4o6
-
- All test cases with LISPGPE_IP4o6.
-
-.. topic:: LISPGPE_IP6o6
-
- All test cases with LISPGPE_IP6o6.
-
-.. topic:: VXLAN
-
- All test cases with Vxlan.
-
-.. topic:: VXLANGPE
-
- All test cases with VXLAN-GPE.
-
-.. topic:: GRE
-
- All test cases with GRE.
-
-.. topic:: IPSEC
-
- All test cases with IPSEC.
-
-.. topic:: SRv6
-
- All test cases with Segment routing over IPv6 dataplane.
-
-.. topic:: SRv6_1SID
-
- All SRv6 test cases with single SID.
-
-.. topic:: SRv6_2SID_DECAP
-
- All SRv6 test cases with two SIDs and with decapsulation.
-
-.. topic:: SRv6_2SID_NODECAP
-
- All SRv6 test cases with two SIDs and without decapsulation.
-
-.. topic:: GENEVE
-
- All test cases with GENEVE.
-
-.. topic:: GENEVE_L3MODE
-
- All test cases with GENEVE tunnel in L3 mode.
-
-Interface Tags
---------------
-
-.. topic:: PHY
-
- All test cases which use physical interface(s).
-
-.. topic:: GSO
-
- All test cases which uses Generic Segmentation Offload.
-
-.. topic:: VHOST
-
- All test cases which uses VHOST.
-
-.. topic:: VHOST_1024
-
- All test cases which uses VHOST DPDK driver with qemu queue size set
- to 1024.
-
-.. topic:: VIRTIO
-
- All test cases which uses VIRTIO native VPP driver.
-
-.. topic:: VIRTIO_1024
-
- All test cases which uses VIRTIO native VPP driver with qemu queue size set
- to 1024.
-
-.. topic:: CFS_OPT
-
- All test cases which uses VM with optimised scheduler policy.
-
-.. topic:: TUNTAP
-
- All test cases which uses TUN and TAP.
-
-.. topic:: AFPKT
-
- All test cases which uses AFPKT.
-
-.. topic:: NETMAP
-
- All test cases which uses Netmap.
-
-.. topic:: MEMIF
-
- All test cases which uses Memif.
-
-.. topic:: SINGLE_MEMIF
-
- All test cases which uses only single Memif connection per DUT. One DUT
- instance is running in container having one physical interface exposed to
- container.
-
-.. topic:: LBOND
-
- All test cases which uses link bonding (BondEthernet interface).
-
-.. topic:: LBOND_DPDK
-
- All test cases which uses DPDK link bonding.
-
-.. topic:: LBOND_VPP
-
- All test cases which uses VPP link bonding.
-
-.. topic:: LBOND_MODE_XOR
-
- All test cases which uses link bonding with mode XOR.
-
-.. topic:: LBOND_MODE_LACP
-
- All test cases which uses link bonding with mode LACP.
-
-.. topic:: LBOND_LB_L34
-
- All test cases which uses link bonding with load-balance mode l34.
-
-.. topic:: LBOND_1L
-
- All test cases which uses one link for link bonding.
-
-.. topic:: LBOND_2L
-
- All test cases which uses two links for link bonding.
-
-.. topic:: DRV_AVF
-
- All test cases which uses Intel Adaptive Virtual Function (AVF) device
- plugin for VPP. This plugins provides native device support for Intel AVF.
- AVF is driver specification for current and future Intel Virtual Function
- devices. In essence, today this driver can be used only with Intel
- XL710 / X710 / XXV710 adapters.
-
-.. topic:: DRV_VFIO_PCI
-
- All test cases which uses vfio-pci device driver. It supports variety of NIC
- adapters.
-
-.. topic:: DRV_RDMA_CORE
-
- All test cases which uses rdma-core device driver. It supports Mellanox
- NIC adapters.
-
-.. topic:: RXQ_SIZE_{n}
-
- All test cases which RXQ size (RX descriptors) are set to {n}. Default is 0,
- which means VPP (API) default.
-
-.. topic:: TXQ_SIZE_{n}
-
- All test cases which TXQ size (TX descriptors) are set to {n}. Default is 0,
- which means VPP (API) default.
-
-Feature Tags
-------------
-
-.. topic:: IACLDST
-
- iACL destination.
-
-.. topic:: ADLALWLIST
-
- ADL allowlist.
-
-.. topic:: NAT44
-
- NAT44 configured and tested.
-
-.. topic:: NAT64
-
- NAT44 configured and tested.
-
-.. topic:: ACL
-
- ACL plugin configured and tested.
-
-.. topic:: IACL
-
- ACL plugin configured and tested on input path.
-
-.. topic:: OACL
-
- ACL plugin configured and tested on output path.
-
-.. topic:: ACL_STATELESS
-
- ACL plugin configured and tested in stateless mode (permit action).
-
-.. topic:: ACL_STATEFUL
-
- ACL plugin configured and tested in stateful mode (permit+reflect action).
-
-.. topic:: ACL1
-
- ACL plugin configured and tested with 1 not-hitting ACE.
-
-.. topic:: ACL10
-
- ACL plugin configured and tested with 10 not-hitting ACEs.
-
-.. topic:: ACL50
-
- ACL plugin configured and tested with 50 not-hitting ACEs.
-
-.. topic:: SRv6_PROXY
-
- SRv6 endpoint to SR-unaware appliance via proxy.
-
-.. topic:: SRv6_PROXY_STAT
-
- SRv6 endpoint to SR-unaware appliance via static proxy.
-
-.. topic:: SRv6_PROXY_DYN
-
- SRv6 endpoint to SR-unaware appliance via dynamic proxy.
-
-.. topic:: SRv6_PROXY_MASQ
-
- SRv6 endpoint to SR-unaware appliance via masquerading proxy.
-
-Encryption Tags
----------------
-
-.. topic:: IPSECSW
-
- Crypto in software.
-
-.. topic:: IPSECHW
-
- Crypto in hardware.
-
-.. topic:: IPSECTRAN
-
- IPSec in transport mode.
-
-.. topic:: IPSECTUN
-
- IPSec in tunnel mode.
-
-.. topic:: IPSECINT
-
- IPSec in interface mode.
-
-.. topic:: AES
-
- IPSec using AES algorithms.
-
-.. topic:: AES_128_CBC
-
- IPSec using AES 128 CBC algorithms.
-
-.. topic:: AES_128_GCM
-
- IPSec using AES 128 GCM algorithms.
-
-.. topic:: AES_256_GCM
-
- IPSec using AES 256 GCM algorithms.
-
-.. topic:: HMAC
-
- IPSec using HMAC integrity algorithms.
-
-.. topic:: HMAC_SHA_256
-
- IPSec using HMAC SHA 256 integrity algorithms.
-
-.. topic:: HMAC_SHA_512
-
- IPSec using HMAC SHA 512 integrity algorithms.
-
-Client-Workload Tags
---------------------
-
-.. topic:: VM
-
- All test cases which use at least one virtual machine.
-
-.. topic:: LXC
-
- All test cases which use Linux container and LXC utils.
-
-.. topic:: DRC
-
- All test cases which use at least one Docker container.
-
-.. topic:: DOCKER
-
- All test cases which use Docker as container manager.
-
-.. topic:: APP
-
- All test cases with specific APP use.
-
-Container Orchestration Tags
-----------------------------
-
-.. topic:: 1VSWITCH
-
- VPP running in Docker container acting as VSWITCH.
-
-.. topic:: 1VNF
-
- 1 VPP running in Docker container acting as VNF work load.
-
-.. topic:: 2VNF
-
- 2 VPP running in 2 Docker containers acting as VNF work load.
-
-.. topic:: 4VNF
-
- 4 VPP running in 4 Docker containers acting as VNF work load.
-
-Multi-Threading Tags
---------------------
-
-.. topic:: STHREAD
-
- *Dynamic tag*.
- All test cases using single poll mode thread.
-
-.. topic:: MTHREAD
-
- *Dynamic tag*.
- All test cases using more then one poll mode driver thread.
-
-.. topic:: 1NUMA
-
- All test cases with packet processing on single socket.
-
-.. topic:: 2NUMA
-
- All test cases with packet processing on two sockets.
-
-.. topic:: 1C
-
- 1 worker thread pinned to 1 dedicated physical core; or if HyperThreading is
- enabled, 2 worker threads each pinned to a separate logical core within 1
- dedicated physical core. Main thread pinned to core 1.
-
-.. topic:: 2C
-
- 2 worker threads pinned to 2 dedicated physical cores; or if HyperThreading
- is enabled, 4 worker threads each pinned to a separate logical core within 2
- dedicated physical cores. Main thread pinned to core 1.
-
-.. topic:: 4C
-
- 4 worker threads pinned to 4 dedicated physical cores; or if HyperThreading
- is enabled, 8 worker threads each pinned to a separate logical core within 4
- dedicated physical cores. Main thread pinned to core 1.
-
-.. topic:: 1T1C
-
- *Dynamic tag*.
- 1 worker thread pinned to 1 dedicated physical core. 1 receive queue per
- interface. Main thread pinned to core 1.
-
-.. topic:: 2T2C
-
- *Dynamic tag*.
- 2 worker threads pinned to 2 dedicated physical cores. 1 receive queue per
- interface. Main thread pinned to core 1.
-
-.. topic:: 4T4C
-
- *Dynamic tag*.
- 4 worker threads pinned to 4 dedicated physical cores. 2 receive queues per
- interface. Main thread pinned to core 1.
-
-.. topic:: 2T1C
-
- *Dynamic tag*.
- 2 worker threads each pinned to a separate logical core within 1 dedicated
- physical core. 1 receive queue per interface. Main thread pinned to core 1.
-
-.. topic:: 4T2C
-
- *Dynamic tag*.
- 4 worker threads each pinned to a separate logical core within 2 dedicated
- physical cores. 2 receive queues per interface. Main thread pinned to core
- 1.
-
-.. topic:: 8T4C
-
- *Dynamic tag*.
- 8 worker threads each pinned to a separate logical core within 4 dedicated
- physical cores. 4 receive queues per interface. Main thread pinned to core
- 1.
diff --git a/docs/test_code_guidelines.rst b/docs/test_code_guidelines.rst
deleted file mode 100644
index 33ac72764f..0000000000
--- a/docs/test_code_guidelines.rst
+++ /dev/null
@@ -1,319 +0,0 @@
-CSIT Test Code Guidelines
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
-"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
-"MAY", and "OPTIONAL" in this document are to be interpreted as
-described in `BCP 14 <https://tools.ietf.org/html/bcp14>`_
-`[RFC2119] <https://tools.ietf.org/html/rfc2119>`_
-`[RFC8174] <https://tools.ietf.org/html/rfc8174>`_
-when, and only when, they appear in all capitals, as shown here.
-
-This document SHALL describe guidelines for writing reliable, maintainable,
-reusable and readable code for CSIT.
-
-TODO: Decide whether to use "you SHALL", "contributors SHALL",
-or "code SHALL be"; convert other forms to the chosen one.
-
-RobotFramework test case files and resource files
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-+ General
-
- + Contributors SHOULD look at requirements.txt in root CSIT directory
- for the currently used Robot Framework version.
- Contributors SHOULD read `Robot Framework User Guide
- <http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html>`_
- for more details.
-
- + RobotFramework test case files and resource files
- SHALL use special extension .robot
-
- + Pipe and space separated file format (without trailing pipe
- and without pipe aligning) SHALL be used.
- Tabs are invisible characters, which are error prone.
- 4-spaces separation is prone to accidental double space
- acting as a separator.
-
- + Files SHALL be encoded in UTF-8 (the default Robot source file encoding).
- Usage of non-ASCII characters SHOULD be avoided if possible.
- It is RECOMMENDED to `escape
- <http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#escaping>`_
- non-ASCII characters.
-
- + Line length SHALL be limited to 80 characters.
-
- + There SHALL be licence text (FIXME: add link) present
- at the beginning of each file.
-
- + Copy-pasting of the code NOT RECOMMENDED practice, any code that could be
- re-used SHOULD be put into a library (Robot resource, Python library, ...).
-
-+ Test cases
-
- + It is RECOMMENDED to use data-driven test case definitions
- anytime suite contains test cases similar in structure.
- Typically, a suite SHOULD define a Template keyword, and test cases
- SHOULD only specify tags and argument values::
-
- *** Settings ***
- | Test Template | Local Template
- ...
-
- *** Test Cases ***
- | tc01-64B-1c-eth-l2patch-mrr
- | | [Tags] | 64B | 1C
- | | framesize=${64} | phy_cores=${1}
-
- + Test case templates (or testcases) SHALL be written in Behavior-driven style
- i.e. in readable English, so that even non-technical project stakeholders
- can understand it::
-
- *** Keywords ***
- | Local Template
- | | [Documentation]
- | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy core(s).
- | | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
- | | ...
- | | ... | *Arguments:*
- | | ... | - frame_size - Framesize in Bytes in integer
- | | ... | or string (IMIX_v4_1). Type: integer, string
- | | ... | - phy_cores - Number of physical cores. Type: integer
- | | ... | - rxq - Number of RX queues, default value: ${None}.
- | | ... | Type: integer
- | | ...
- | | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
- | | ...
- | | Set Test Variable | \${frame_size}
- | | ...
- | | Given Add worker threads and rxqueues to all DUTs
- | | ... | ${phy_cores} | ${rxq}
- | | And Add PCI devices to all DUTs
- | | Set Max Rate And Jumbo And Handle Multi Seg
- | | And Apply startup configuration on all VPP DUTs
- | | When Initialize L2 patch
- | | Then Find NDR and PDR intervals using optimized search
-
- + Every suite and test case template (or testcase)
- SHALL contain short documentation.
- Generated CSIT web pages display the documentation.
- For an example generated page, see:
- https://docs.fd.io/csit/rls1807/doc/tests.vpp.perf.tcp.html
-
- + You SHOULD NOT use hard-coded constants.
- It is RECOMMENDED to use the variable table
- (\*\*\*Variables\*\*\*) to define test case specific values.
- You SHALL use the assignment sign = after the variable name
- to make assigning variables slightly more explicit::
-
- *** Variables ***
- | ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
-
- + Common test case specific settings of the test environment SHALL be done
- in Test Setup keyword defined in the Setting table.
-
- + Run Keywords construction is RECOMMENDED if it is more readable
- than a keyword.
-
- + Separate keyword is RECOMMENDED if the construction is less readable.
-
- + Post-test cleaning and processing actions SHALL be done in Test Teardown
- part of the Setting table (e.g. download statistics from VPP nodes).
- This part is executed even if the test case has failed. On the other hand
- it is possible to disable the tear-down from command line, thus leaving
- the system in “broken” state for investigation.
-
- + Every testcase SHALL be correctly tagged. List of defined tags is in
- csit/docs/tag_documentation.rst (FIXME: rst-ize the link) file.
-
- + Whenever possible, common tags SHALL be set using Force Tags
- in Settings table.
-
- + User high-level keywords specific for the particular test suite
- SHOULD be implemented in the Keywords table of suitable Robot resource file
- to enable readability and code-reuse.
-
- + Such keywords MAY be implemented in Keywords table of the suite instead,
- if the contributor believes no other test will use such keywords.
- But this is NOT RECOMMENDED in general, as keywords in Resources
- are easier to maintain.
-
- + All test case names (and suite names) SHALL conform
- to current naming convention.
- https://wiki.fd.io/view/CSIT/csit-test-naming
- TODO: Migrate the convention document to .rst and re-link.
-
- + Frequently, different suites use the same test case layout.
- It is RECOMMENDED to use autogeneration scripts available,
- possibly extending them if their current functionality is not sufficient.
-
-+ Resource files
-
- + SHALL be used to implement higher-level keywords that are used in test cases
- or other higher-level (or medium-level) keywords.
-
- + Every keyword SHALL contain Documentation where the purpose and arguments
- of the keyword are described. Also document types, return values,
- and any specific assumptions the particular keyword relies on.
-
- + A keyword usage example SHALL be the part of the Documentation.
- The example SHALL use pipe and space separated format
- (with escaped pipes and) with a trailing pipe.
-
- + The reason was possbile usage of Robot's libdoc tool
- to generate tests and resources documentation. In that case
- example keyword usage would be rendered in table.
-
- + TODO: We should adapt it for current tool
- used to generate the documentation.
-
- + Keyword name SHALL describe what the keyword does,
- specifically and in a reasonable length (“short sentence”).
-
- + Keyword names SHALL be short enough for call sites
- to fit within line length limit.
-
- + If a keyword argument has a most commonly used value, it is RECOMMENDED
- to set it as default. This makes keyword code longer,
- but suite code shorter, and readability (and maintainability)
- of suites SHALL always more important.
-
- + If there is intermediate data (created by one keyword, to be used
- by another keyword) of singleton semantics (it is clear that the test case
- can have at most one instance of such data, even if the instance
- is complex, for example ${nodes}), it is RECOMMENDED to store it
- in test variables. You SHALL document test variables read or written
- by a keyword. This makes the test template code less verbose.
- As soon as the data instance is not unique, you SHALL pass it around
- via arguments and return values explicitly (this makes lower level keywords
- more reusable and less bug prone).
-
- + It is RECOMMENDED to pass arguments explicitly via [Arguments] line.
- Setting test variables takes more space and is less explicit.
- Using arguments embedded in keyword name makes them less visible,
- and it makes it harder for the line containing the resulting long name
- to fit into the maximum character limit, so you SHOULD NOT use them.
-
-Python library files
-~~~~~~~~~~~~~~~~~~~~
-
-TODO: Add guidelines for Python scripts (both utilities called by test on nodes
-and unrelated ones such as PAL) if there are any (in addition to library ones).
-
-+ General
-
- + SHALL be used to implement low-level keywords that are called from
- resource files (of higher-level keywords) or from test cases.
-
- + TODO: Discuss debugability, speed, logging, complexity of logic.
-
- + Higher-level keywords MAY be implemented in python library file too.
- it is RECOMMENDED especially in the case that their implementation
- in resource file would be too difficult or impossible,
- e.g. complex data structures or functional programming.
-
- + Every keyword, Python module, class, method, enum SHALL contain
- docstring with the short description and used input parameters
- and possible return value(s) or raised exceptions.
-
- + The docstrings SHOULD conform to
- `PEP 257 <https://www.python.org/dev/peps/pep-0257/>`_
- and other quality standards.
-
- + CSIT contributions SHALL use a specific formatting for documenting
- arguments, return values and similar.
-
- + FIXME: Find a link which documents sthis style.
- it is based on Sphinx, but very different from
- `Napoleon style
- <https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_numpy.html>`_.
-
- + Keyword usage examples MAY be grouped and used
- in the class/module documentation string, to provide better overview
- of the usage and relationships between keywords.
-
- + Keyword name SHALL describe what the keyword does,
- specifically and in a reasonable length (“short sentence”).
- See https://wiki.fd.io/view/CSIT/csit-test-naming
-
- + Python implementation of a keyword is a function,
- so its name in the python library should be lowercase_with_underscores.
- Robot call sites should usename with first letter capitalized, and spaces.
-
- + FIXME: create Robot keyword naming item in proper place.
-
-+ Coding
-
- + It is RECOMMENDED to use some standard development tool
- (e.g. PyCharm Community Edition) and follow
- `PEP-8 <https://www.python.org/dev/peps/pep-0008/>`_ recommendations.
-
- + All python code (not only Robot libraries) SHALL adhere to PEP-8 standard.
- This is reported by CSIT Jenkins verify job.
-
- + Indentation: You SHALL NOT use tab for indents!
- Indent is defined as four spaces.
-
- + Line length: SHALL be limited to 80 characters.
-
- + CSIT Python code assumes PYTHONPATH is set
- to the root of cloned CSIT git repository, creating a tree of sub-packages.
- You SHALL use that tree for importing, for example::
-
- from resources.libraries.python.ssh import exec_cmd_no_error
-
- + Imports SHALL be grouped in the following order:
-
- #. standard library imports,
- #. related third party imports,
- #. local application/library specific imports.
-
- You SHALL put a blank line between each group of imports.
-
- + You SHALL use two blank lines between top-level definitions,
- one blank line between method definitions.
-
- + You SHALL NOT execute any active code on library import.
-
- + You SHALL NOT use global variables inside library files.
-
- + You MAY define constants inside library files.
-
- + It is NOT RECOMMENDED to use hard-coded constants (e.g. numbers,
- paths without any description). It is RECOMMENDED to use
- configuration file(s), like /csit/resources/libraries/python/Constants.py,
- with appropriate comments.
-
- + The code SHALL log at the lowest possible level of implementation,
- for debugging purposes. You SHALL use same style for similar events.
- You SHALL keep logging as verbose as necessary.
-
- + You SHALL use the most appropriate exception not general one (Exception)
- if possible. You SHOULD create your own exception
- if necessary and implement there logging, level debug.
-
- + You MAY use RuntimeException for generally unexpected failures.
-
- + It is RECOMMENDED to use RuntimeError also for
- infrastructure failures, e.g. losing SSH connection to SUT.
-
- + You MAY use EnvironmentError and its cublasses instead,
- if the distinction is informative for callers.
-
- + It is RECOMMENDED to use AssertionError when SUT is at fault.
-
- + For each class (e.g. exception) it is RECOMMENDED to implement __repr__()
- which SHALL return a string usable as a constructor call
- (including repr()ed arguments).
- When logging, you SHOULD log the repr form, unless the internal structure
- of the object in question would likely result in too long output.
- This is helpful for debugging.
-
- + For composing and formatting strings, you SHOULD use .format()
- with named arguments.
- Example: "repr() of name: {name!r}".format(name=name)
-
-Bash scripts and libraries
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-TODO: Link or copy the bash_code_style.rst document here.
diff --git a/docs/testing_in_vagrant.rst b/docs/testing_in_vagrant.rst
deleted file mode 100644
index d3a0041539..0000000000
--- a/docs/testing_in_vagrant.rst
+++ /dev/null
@@ -1,88 +0,0 @@
-Running CSIT locally in Vagrant
--------------------------------
-
-Install prerequisites
-=====================
-
-Run all commands from command line.
-
-1. Download and install latest virtualbox from `official page
- <https://www.virtualbox.org/wiki/Downloads>`_.
- To verify the installation, run VBoxManage:
-
- - on windows::
-
- "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" --version
-
- - on nix::
-
- VBoxManage --version
-
- You should see virtualbox manager version printed, eg: 6.1.12r139181
-
-2. Download and install latest vagrant `from official page
- <https://www.vagrantup.com/downloads.html>`_.
- To verify the installtion, run::
-
- vagrant -v
-
- You should see vagrant version printed, eg: Vagrant 2.2.9
-
-3. Install vagrant plugins::
-
- vagrant plugin install vagrant-vbguest
- vagrant plugin install vagrant-cachier
-
- If you are behind a proxy, install proxyconf plugin and update proxy
- settings in Vagrantfile::
-
- vagrant plugin install vagrant-proxyconf
-
-Set up and run Vagrant virtualbox
-======================================
-
-Before running following commands change working directory to Vagrant specific directory
-(from within root CSIT directory) ::
-
- cd resources/libraries/tools/vagrant
-
-This allows Vagrant to automatically find Vagrantfile and corresponding Vagrant environment.
-
-Start the provisioning::
-
- vagrant up --provider virtualbox
-
-Your new VPP Device virtualbox machine will be created and configured.
-Master branch of csit project will be cloned inside virtual machine into
-
- /home/vagrant/csit folder.
-
-Once the process is finished, you can login to the box using::
-
- vagrant ssh
-
-In case you need to completely rebuild the box and start from scratch,
-run these commands::
-
- vagrant destroy -f
- vagrant up --provider virtualbox
-
-
-Run tests
-==============================
-
-From within the box run the tests using::
-
- cd /home/vagrant/csit/resources/libraries/bash/entry
- ./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu1804-1n-vbox
-
-To run only selected tests based on TAGS, export environment variables before
-running the test suite::
-
- export GERRIT_EVENT_TYPE="comment-added"
- export GERRIT_EVENT_COMMENT_TEXT="devicetest memif"
-
- # now it will run tests, selected based on tags
- ./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu1804-1n-vbox
-
-
diff --git a/docs/toi/automating_vpp_api_flag_day.md b/docs/toi/automating_vpp_api_flag_day.md
new file mode 100644
index 0000000000..131adeab9d
--- /dev/null
+++ b/docs/toi/automating_vpp_api_flag_day.md
@@ -0,0 +1,303 @@
+---
+bookHidden: true
+title: "VPP API Flag Day Algorithms"
+---
+
+# VPP API Flag Day Algorithm
+
+## Abstract
+
+This document describes the current solution to the problem of
+automating the detection of VPP API changes which are not backwards
+compatible with existing CSIT tests, by defining the "Flag Day"
+process of deploying a new set of CSIT tests which are compatible
+with the new version of the VPP API without causing a halt to the
+normal VPP/CSIT operational CI process. This is initially
+limited to changes in \*.api files contained in the vpp repo.
+Eventually the detection algorithm could be extended to include
+other integration points such as "directory" structure of stats
+segment or PAPI python library dependencies.
+
+## Motivation
+
+Aside of per-release activities (release report), CSIT also provides testing
+that requires somewhat tight coupling to the latest (merged but not released)
+VPP code. Currently, HEAD of one project is run against somewhat older codebase
+of the other project. Definition of what is the older codebase to use
+is maintained by CSIT project. For older CSIT codebase, there are so-called
+"oper" branches. For older VPP codebase, CSIT master HEAD contains identifiers
+for "stable" VPP builds. Such older codebases are also used for verify jobs,
+where HEAD of the other project is replaced by the commit under review.
+
+One particular type of jobs useful for VPP development is trending jobs.
+They test latests VPP build with latest oper branch of CSIT,
+and analytics is applied to detect regressions in preformance.
+For this to work properly, VPP project needs a warning against breaking
+the assumptions the current oper branch makes about VPP behavior.
+In the past, the most frequent type of such breakage was API change.
+
+Earlier attempts to create a process to minimize breakage have focused
+on creating a new verify job for VPP (called api-crc job) that
+votes -1 on a change that affects CRC values for API messages CSIT uses.
+The list of messages and CRC values (multiple "collections" are allowed)
+is maintained in CSIT repository (in oper branch).
+The process was less explicit on how should CSIT project maintain such list.
+As CSIT was not willing to support two incpompatible API messages
+by the same codebase (commit), there were unavoidable windows
+where either trenging jobs, or CSIT verify jobs were failing.
+
+Practice showed that human (or infra) errors can create two kinds of breakages.
+Either the unavoidable short window gets long, affecting a trending job run
+or two, or the api-crc job starts giving -1 to innocent changes
+because oper branch went out of sync with VPP HEAD codebase.
+This second type of failure prevents any merges to VPP for a long time
+(12 hours is the typical time, give time zone differences).
+
+The current version of this document introduces two new requirements.
+Firstly, the api-crc job should not give false -1, under any
+(reasonable) circumstances. That means, if a VPP change
+(nor any of its unmerged ancestor commits) does not affect any CRC values
+for messages used by CSIT, -1 should only mean "rebase is needed",
+and rebasing to HEAD should result in +1 from the api-crc job.
+Secondly, no more than one VPP change is allowed to be processed
+(at the same time).
+
+## Naming
+
+It is easier to define the process after chosing shorter names
+for notions that need long definition.
+
+Note: Everytime a single job is mentioned,
+in practice it can be a set of jobs covering parts of functionality.
+A "run" of the set of jobs passes only if each job within the set
+has been run (again) and passed.
+
+## Jobs
+
++ A *vpp verify* job: Any job run automatically, and voting on open VPP changes.
+ Some verify jobs compile and package VPP for target operating system
+ and processor architecture, the packages are NOT archived (currently).
+ They should be cached somewhere in future to speed up in downstream jobs,
+ but currently each such downstream job can clone and build.
+
++ The *api-crc* job: Quick verify job for VPP changes, that accesses
+ CSIT repository (checkout latest oper branch HEAD) to figure out
+ whether merging the change is safe from CSIT point of view.
+ Here, -1 means CSIT is not ready. +1 means CSIT looks to be ready
+ for the new CRC values, but there still may be failures on real tests.
+
++ A *trending* job: Any job that is started by timer and performs testing.
+ It checkouts CSIT latest oper branch HEAD, downloads the most recent
+ completely uploaded VPP package, and unconditionally runs the tests.
+ CRC checks are optional, ideally only written to console log
+ without otherwise affecting the test cases.
+
++ A *vpp-csit* job: A slower verify job for VPP changes, that accesses CSIT
+ repository and runs tests from the correct CSIT commit (chosen as in trending)
+ against the VPP (built from the VPP patch under review).
+ Vote -1 means there were test failures. +1 means no test failures, meaning
+ there either was no API change, or it was backward compatible.
+
++ A *csit-vpp* job: Verify job for open CSIT changes. Downloads the
+ (completely uploaded) VPP package marked as "stable", and runs a selection
+ of tests (from the CSIT patch under review).
+ Vote +1 means all tests have passed, so it is safe to merge
+ the patch under review.
+
++ A *patch-on-patch* job: Manually triggered non-voting job
+ for open CSIT changes. Compiles and packages from VPP source
+ (usually of an unmerged change). Then runs the same tests as csit-vpp job.
+ This job is used to prove the CSIT patch under review is supporting
+ the specified VPP code.
+ In practice, this can be a vpp-csit job started with CSIT_REF set.
+
++ A *manual verification* is done by a CSIT committer, locally executing steps
+ equivalent to the patch-on-patch job. This can to save time and resources.
+
+## CRC Collections
+
+Any commit in/for the CSIT repository contains a file (supported_crcs.yaml),
+which contains either one or two collections. A collection is a mapping
+that maps API message name to its CRC value.
+
+A collection name specifies which VPP build is this collection for.
+An API message name is present in a collection if and only if
+it is used by a test implementation (can be in different CSIT commit)
+targeted at the VPP build (pointed out by the collection name).
+
++ The *stable collection*: Usually required, listed first, has comments and name
+ pointing to the VPP build this CSIT commit marks as stable.
+ The stable collection is only missing in deactivating changes (see below)
+ when not mergeable yet.
+
++ The *active collection*: Optional, listed second, has comments and name
+ pointing to the VPP Gerrit (including patch set number)
+ the currently active API process is processing.
+ The patch set number part can be behind the actual Gerrit state.
+ This is safe, because api-crc job on the active API change will fail
+ if the older patch is no longer API-equivalent to the newer patch.
+
+## Changes
+
++ An *API change*: The name for any Gerrit Change for VPP repository
+ that does not pass api-crc job right away, and needs this whole process.
+ This usually means .api files are edited, but a patch that affects
+ the way CRC values are computed is also an API change.
+
+ Full name could be VPP API Change, but as no CSIT change is named "API change"
+ (and this document does not talk about other FD.io or external projects),
+ "API change" is shorter.
+
++ A *blocked change*: The name for open Gerrit Change for VPP repository
+ that got -1 from some of voting verify jobs.
+
++ A *VPP-blocked change": A blocked change which got -1 from some "pure VPP"
+ verify job, meaning no CSIT code has been involved in the vote.
+ Example: "make test" fails.
+
+ VPP contributor is expected to fix the change, or VPP developers
+ are expected to found a cause in an earlier VPP change, and fix it.
+ No interaction with CSIT developers is necessary.
+
++ A *CSIT-blocked change*: A blocked change which is not VPP-blocked,
+ but does not pass some vpp-csit job.
+ To fix a CSIT-blocked change, an interaction with a CSIT committer
+ is usually necessary. Even if a VPP developer is experienced enough
+ to identify the cause of the failure, a merge to CSIT is usually needed
+ for a full fix.
+
+ This process does not specify what to do with CSIT-blocked changes
+ that are not also API changes.
+
++ A *candidate API change*: An API change that meets all requirements
+ to become active (see below). Currently, the requirements are:
+
+ + No -1 nor -2 from from any human reviewer.
+
+ + All verify jobs (except vpp-csit ones) pass.
+
+ + +1 from a VPP committer.
+
+ The reason is to avoid situations where an API change becomes active,
+ but the VPP committers are unwilling to merge it for some reason.
+
++ The *active API change*: The candidate API change currently being processed
+ by the API Flag Day Algorithm.
+ While many API changes can be candidates at the same time,
+ only one is allowed be active at a time.
+
++ The *activating change*: The name for a Gerrit Change for CSIT repository
+ that does not change the test code, but adds the active CRC collection.
+ Merge of the opening change (to latest CSIT oper branch) defines
+ which API change has become active.
+
++ The *deactivating change*: The name for Gerrit Change for CSIT repository
+ that only supports tests and CRC values for VPP with the active API change.
+ That implies the previously stable CRC collection is deleted,
+ and any edits to the test implementation are done here.
+
++ The *mergeable deactivating change*: The deactivating change with additional
+ requirements. Details on the requirements are listed in the next section.
+ Merging this change finishes the process for the active API change.
+
+It is possible for a single CSIT change to act both as a mergeable
+deactivating change for one API change, and as an activating change
+for another API change. As English lacks a good adjective for such a thing,
+this document does not name this change.
+When this documents says a change is activating or deactivating,
+it allows the possibility for the change to fullfill also other purposes
+(e.g. acting as deactivating / activating change for another API change).
+
+## Algorithm Steps
+
+The following steps describe the application of the API "Flag Day" algorithm:
+
+#. A VPP patch for an API change is submitted to
+ gerrit for review.
+#. The api-crc job detects the API CRC values have changed
+ for some messages used by CSIT.
+#. The api-crc job runs in parallel with any other vpp-csit verify job,
+ so those other jobs can hint at the impact on CSIT.
+ Currently, any such vpp-csit job is non-voting,
+ as the current process does not guarantee such jobs passes
+ when the API change is merged.
+#. If the api-crc job fails, an email with the appropriate reason
+ is sent to the VPP patch submitter and vpp-api-dev@lists.fd.io
+ including the VPP patch information and .api files that are edited.
+#. The VPP patch developer works with a VPP committer
+ to ensure the patch meets requirements to become a candidate (see above).
+#. The VPP patch developer and CSIT team create a CSIT JIRA ticket
+ to identify the work required to support the new VPP API version.
+#. CSIT developer creates a patch of the deactivating change
+ (upload to Gerrit not required yet).
+#. CSIT developer runs patch-on-patch job (or manual verification).
+ Both developers iterate until the verification passes.
+ Note that in this phase csit-vpp job is expected to vote -1,
+ as the deactivating change is not mergeable yet.
+#. CSIT developer creates the activating change, uploads to Gerrit,
+ waits for vote (usual review cycle applies).
+#. When CSIT committer is satisfied, the activating change is merged
+ to CSIT master branch and cherry-picked to the latest oper branch.
+ This enters a "critical section" of the process.
+ Merges of other activating changes are not allowed from now on.
+ The targeted API change becomes the active API change.
+ This does not break any jobs.
+#. VPP developer (or CSIT committer) issues a recheck on the VPP patch.
+#. On failure, VPP and CSIT committers analyze what went wrong.
+ Typically, the active CRC collection is matching only an older patch set,
+ but a newer patch set needs different CRC values.
+ Either due to improvements on the VPP change in question,
+ or due to a rebase over previously merged (unrelated) API change.
+ VPP perhaps needs to rebase, and CSIT definitely needs
+ to merge edits to the active collection. Then issue a recheck again,
+ and iterate until success.
+#. On success, VPP Committer merges the active API change patch.
+ (This is also a delayed verification of the current active CRC collection.)
+#. VPP committer sends an e-mail to vpp-api-dev stating the support for
+ the previous CRC values will soon be removed, implying other changes
+ (whether API or not) should be rebased soon.
+#. VPP merge jobs create and upload new VPP packages.
+ This breaks trending jobs, but both VPP and CSIT verify jobs still work.
+#. CSIT developer makes the deactivating change mergeable:
+ The stable VPP build indicator is bumped to the build
+ that contains the active API change. The active CRC collection
+ (added by the activating change) is renamed to the new stable collection.
+ (The previous stable collection has already been deleted.)
+ At this time, the deactivating change should be uploaded to Gerrit and
+ csit verify jobs should be triggered.
+#. CSIT committer reviews the code, perhaps triggering any additional jobs
+ needed to verify the tests using the edited APIs are still working.
+#. When satisfied, CSIT committer merges the mergeable deactivating change
+ (to both master and oper).
+ The merge fixes trending jobs. VPP and CSIT verify jobs continue to work.
+ The merge also breaks some verify jobs for old changes in VPP,
+ as announced when the active API change was merged.
+ The merge is the point where the process leaves the "critical section",
+ thus allowing merges of activating changes for other API changes.
+#. CSIT committer sends an e-mail to vpp-api-dev stating the support for
+ the previous CRC values has been removed, and rebase is needed
+ for all affected VPP changes.
+#. Recheck of existing VPP patches in gerrit may cause the "VPP
+ API Incompatible Change Test" to send an email to the patch
+ submitter to rebase the patch to pick up the compatible VPP API
+ version files.
+
+### Real life examples
+
+Simple API change: https://gerrit.fd.io/r/c/vpp/+/23829
+
+Activating change: https://gerrit.fd.io/r/c/csit/+/23956
+
+Mergeable deactivating change: https://gerrit.fd.io/r/c/csit/+/24280
+
+Less straightforward mergeable deactivating change:
+https://gerrit.fd.io/r/c/csit/+/22526
+It shows:
+
++ Crc edits: supported_crcs.yaml
++ Version bump: VPP_STABLE_VER_UBUNTU_BIONIC
++ And even a way to work around failing tests:
+ eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot
+
+Simple change that is both deactivating and activating:
+https://gerrit.fd.io/r/c/csit/+/23969
diff --git a/docs/toi/bash_code_style.md b/docs/toi/bash_code_style.md
new file mode 100644
index 0000000000..bbd0c37196
--- /dev/null
+++ b/docs/toi/bash_code_style.md
@@ -0,0 +1,651 @@
+---
+bookHidden: true
+title: "Bash Code Style"
+---
+
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
+"MAY", and "OPTIONAL" in this document are to be interpreted as
+described in [BCP 14](https://tools.ietf.org/html/bcp14),
+[RFC2119](https://tools.ietf.org/html/rfc2119),
+[RFC8174](https://tools.ietf.org/html/rfc8174)
+when, and only when, they appear in all capitals, as shown here.
+
+This document SHALL describe guidelines for writing reliable, maintainable,
+reusable and readable code for CSIT.
+
+# Proposed Style
+
+# File Types
+
+Bash files SHOULD NOT be monolithic. Generally, this document
+considers two types of bash files:
+
++ Entry script: Assumed to be called by user,
+ or a script "external" in some way.
+
+ + Sources bash libraries and calls functions defined there.
+
++ Library file: To be sourced by entry scipts, possibly also by other libraries.
+
+ + Sources other libraries for functions it needs.
+
+ + Or relies on a related file already having sourced that.
+
+ + Documentation SHALL imply which case it is.
+
+ + Defines multiple functions other scripts can call.
+
+# Safety
+
++ Variable expansions MUST be quoted, to prevent word splitting.
+
+ + This includes special "variables" such as "${1}".
+
+ + RECOMMENDED even if the value is safe, as in "$?" and "$#".
+
+ + It is RECOMMENDED to quote strings in general,
+ so text editors can syntax-highlight them.
+
+ + Even if the string is a numeric value.
+
+ + Commands and known options can get their own highlight, no need to quote.
+
+ + Example: You do not need to quote every word of
+ "pip install --upgrade virtualenv".
+
+ + Code SHALL NOT quote glob characters you need to expand (obviously).
+
+ + OPTIONALLY do not quote adjacent characters (such as dot or fore-slash),
+ so that syntax highlighting makes them stand out compared to surrounding
+ ordinary strings.
+
+ + Example: cp "logs"/*."log" "."/
+
+ + Command substitution on right hand side of assignment are safe
+ without quotes.
+
+ + Note that command substitution limits the scope for quotes,
+ so it is NOT REQUIRED to escape the quotes in deeper levels.
+
+ + Both backtics and "dollar round-bracket" provide command substitution.
+ The folowing rules are RECOMMENDED:
+
+ + For simple constructs, use "dollar round-bracket".
+
+ + If there are round brackets in the surrounding text, use backticks,
+ as some editor highlighting logic can get confused.
+
+ + Avoid nested command substitution.
+
+ + Put intermediate results into local variables,
+ use "|| die" on each step of command substitution.
+
+ + Code SHOULD NOT be structured in a way where
+ word splitting is intended.
+
+ + Example: Variable holding string of multiple command lines arguments.
+
+ + Solution: Array variable should be used in this case.
+
+ + Expansion MUST use quotes then: "${name[@]}".
+
+ + Word splitting MAY be used when creating arrays from command substitution.
+
++ Code MUST always check the exit code of commands.
+
+ + Traditionally, error code checking is done either by "set -e"
+ or by appending "|| die" after each command.
+ The first is unreliable, due to many rules affecting "set -e" behavior
+ (see <https://mywiki.wooledge.org/BashFAQ/105>), but "|| die"
+ relies on humans identifying each command, which is also unreliable.
+ When was the last time you checked error code of "echo" command,
+ for example?
+
+ + Another example: "set -e" in your function has no effect
+ if any ancestor call is done with logical or,
+ for example in "func || code=$?" construct.
+
+ + As there is no reliable method of error detection, and there are two
+ largely independent unreliable methods, the best what we can do
+ is to apply both. So, code SHOULD explicitly
+ check each command (with "|| die" and similar) AND have "set -e" applied.
+
+ + Code MUST explicitly check each command, unless the command is well known,
+ and considered safe (such as the aforementioned "echo").
+
+ + The well known commands MUST still be checked implicitly via "set -e".
+
+ + See below for specific "set -e" recommendations.
+
++ Code SHOULD use "readlink -e" (or "-f" if target does not exist yet)
+ to normalize any path value to absolute path without symlinks.
+ It helps with debugging and identifies malformed paths.
+
++ Code SHOULD use such normalized paths for sourcing.
+
++ When exiting on a known error, code MUST print a longer, helpful message,
+ in order for the user to fix their situation if possible.
+
++ When error happens at an unexpected place, it is RECOMMENDED for the message
+ to be short and generic, instead of speculative.
+
+# Bash Options
+
++ Code MUST apply "-x" to make debugging easier.
+
+ + Code MAY temporarily supress such output in order to avoid spam
+ (e.g. in long busy loops), but it is still NOT RECOMMENDED to do so.
+
++ Code MUST apply "-e" for early error detection.
+
+ + But code still SHOULD use "|| die" for most commands,
+ as "-e" has numerous rules and exceptions.
+
+ + Code MAY apply "+e" temporarily for commands which (possibly nonzero)
+ exit code it interested in.
+
+ + Code MUST to store "$?" and call "set -e" immediatelly afterwards.
+
+ + Code MUST NOT use this approach when calling functions.
+
+ + That is because functions are instructed to apply "set -e" on their own
+ which (when triggered) will exit the whole entry script.
+
+ + Unless overriden by ERR trap.
+ But code SHOULD NOT set any ERR trap.
+
+ + If code needs exit code of a function, it is RECOMMENDED to use
+ pattern 'code="0"; called_function || code="${?}"'.
+
+ + In this case, contributor MUST make sure nothing in the
+ called_function sub-graph relies on "set -e" behavior,
+ because the call being part of "or construct" disables it.
+
+ + Code MAY append "|| true" for benign commands,
+ when it is clear non-zero exit codes make no difference.
+
+ + Also in this case, the contributor MUST make sure nothing within
+ the called sub-graph depends on "set -e", as it is disabled.
+
++ Code MUST apply "-u" as unset variable is generally a typo, thus an error.
+
+ + Code MAY temporarily apply "+u" if a command needs that to pass.
+
+ + Virtualenv activation is the only known example so far.
+
++ Code MUST apply "-o pipefail" to make sure "-e" picks errors
+ inside piped construct.
+
+ + Code MAY use "|| true" inside a pipe construct, in the (inprobable) case
+ when non-zero exit code still results in a meaningful pipe output.
+
++ All together: "set -exuo pipefail".
+
+ + Code MUST put that line near start of every file, so we are sure
+ the options are applied no matter what.
+
+ + "Near start" means "before any nontrivial code".
+
+ + Basically only copyright is RECOMMENDED to appear before.
+
+ + Also code MUST put the line near start of function bodies
+ and subshell invocations.
+
+# Functions
+
+There are (at least) two possibilities how a code from an external file
+can be executed. Either the file contains a code block to execute
+on each "source" invocation, or the file just defines functions
+which have to be called separately.
+
+This document considers the "function way" to be better,
+here are some pros and cons:
+
++ Cons:
+
+ + The function way takes more space. Files have more lines,
+ and the code in function body is one indent deeper.
+
+ + It is not easy to create functions for low-level argument manipulation,
+ as "shift" command in the function code does not affect the caller context.
+
+ + Call sites frequently refer to code two times,
+ when sourcing the definition and when executing the function.
+
+ + It is not clear when a library can rely on its relative
+ to have performed the sourcing already.
+
+ + Ideally, each library should detect if it has been sourced already
+ and return early, which takes even more space.
+
++ Pros:
+
+ + Some code blocks are more useful when used as function,
+ to make call site shorter.
+
+ + Examples: Trap functions, "die" function.
+
+ + The "import" part and "function" part usually have different side effects,
+ making the documentation more focused (even if longer overall).
+
+ + There is zero risk of argument-less invocation picking arguments
+ from parent context.
+
+ + This safety feature is the main reason for chosing the "function way".
+
+ + This allows code blocks to support optional arguments.
+
++ Rules:
+
+ + Library files MUST be only "source"d. For example if "tox" calls a script,
+ it is an entry script.
+
+ + Library files (upon sourcing) MUST minimize size effect.
+
+ + The only permitted side effects MUST by directly related to:
+
+ + Defining functions (without executing them).
+
+ + Sourcing sub-library files.
+
+ + If a bash script indirectly call another bash script,
+ it is not a "source" operation, variables are not shared,
+ so the called script MUST be considered an entry script,
+ even if it implements logic fitting into a single function.
+
+ + Entry scripts SHOULD avoid duplicating any logic.
+
+ + Clear duplicated blocks MUST be moved into libraries as functions.
+
+ + Blocks with low amount of duplication MAY remain in entry scripts.
+
+ + Usual motives for not creating functions are:
+
+ + The extracted function would have too much logic for processing
+ arguments (instead of hardcoding values as in entry script).
+
+ + The arguments needed would be too verbose.
+
+ + And using "set +x" would take too much vertical space
+ (when compared to entry script implementation).
+
+# Variables
+
+This document describes two kinds of variables: called "local" and "global".
+
++ Local variables:
+
+ + Variable name MUST contain only lower case letters, digits and underscores.
+
+ + Code MUST NOT export local variables.
+
+ + Code MUST NOT rely on local variables set in different contexts.
+
+ + Documentation is NOT REQUIRED.
+
+ + Variable name SHOULD be descriptive enough.
+
+ + Local variable MUST be initialized before first use.
+
+ + Code SHOULD have a comment if a reader might have missed
+ the initialization.
+
+ + Unset local variables when leaving the function.
+
+ + Explicitly typeset by "local" builtin command.
+
+ + Require strict naming convention, e.g. function_name__variable_name.
+
++ Global variables:
+
+ + Variable name MUST contain only upper case letters, digits and underscores.
+
+ + They SHOULD NOT be exported, unless external commands need them
+ (e.g. PYTHONPATH).
+
+ + Code MUST document if a function (or its inner call)
+ reads a global variable.
+
+ + Code MUST document if a function (or its inner call)
+ sets or rewrites a global variable.
+
+ + If a function "wants to return a value", it SHOULD be implemented
+ as the function setting (or rewriting) a global variable,
+ and the call sites reading that variable.
+
+ + If a function "wants to accept an argument", it IS RECOMMENDED
+ to be implemented as the call sites setting or rewriting global variables,
+ and the function reading that variables.
+ But see below for direct arguments.
+
++ Code MUST use curly brackets when referencing variables,
+ e.g. "${my_variable}".
+
+ + It makes related constructs (such as ${name:-default}) less surprising.
+
+ + It looks more similar to Robot Framework variables (which is good).
+
+# Arguments
+
+Bash scripts and functions MAY accept arguments, named "${1}", "${2}" and so on.
+As a whole available via "$@".
+You MAY use "shift" command to consume an argument.
+
+## Contexts
+
+Functions never have access to parent arguments, but they can read and write
+variables set or read by parent contexts.
+
+### Arguments Or Variables
+
++ Both arguments and global variables MAY act as an input.
+
++ In general, if the caller is likely to supply the value already placed
+ in a global variable of known name, it is RECOMMENDED
+ to use that global variable.
+
++ Construct "${NAME:-value}" can be used equally well for arguments,
+ so default values are possible for both input methods.
+
++ Arguments are positional, so there are restrictions on which input
+ is optional.
+
++ Functions SHOULD either look at arguments (possibly also
+ reading global variables to use as defaults), or look at variables only.
+
++ Code MUST NOT rely on "${0}", it SHOULD use "${BASH_SOURCE[0]}" instead
+ (and apply "readlink -e") to get the current block location.
+
++ For entry scripts, it is RECOMMENDED to use standard parsing capabilities.
+
+ + For most Linux distros, "getopt" is RECOMMENDED.
+
+# Working Directory Handling
+
++ Functions SHOULD act correctly without neither assuming
+ what the currect working directory is, nor changing it.
+
+ + That is why global variables and arguments SHOULD contain
+ (normalized) full paths.
+
+ + Motivation: Different call sites MAY rely on different working directories.
+
++ A function MAY return (also with nonzero exit code) when working directory
+ is changed.
+
+ + In this case the function documentation MUST clearly state where (and when)
+ is the working directory changed.
+
+ + Exception: Functions with undocumented exit code.
+
+ + Those functions MUST return nonzero code only on "set -e" or "die".
+
+ + Note that both "set -e" and "die" by default result in exit of the whole
+ entry script, but the caller MAY have altered that behavior
+ (by registering ERR trap, or redefining die function).
+
+ + Any callers which use "set +e" or "|| true" MUST make sure
+ their (and their caller ancestors') assumption on working directory
+ are not affected.
+
+ + Such callers SHOULD do that by restoring the original working directory
+ either in their code,
+
+ + or contributors SHOULD do such restoration in the function code,
+ (see below) if that is more convenient.
+
+ + Motivation: Callers MAY rely on this side effect to simplify their logic.
+
++ A function MAY assume a particular directory is already set
+ as the working directory (to save space).
+
+ + In this case function documentation MUST clearly state what the assumed
+ working directory is.
+
+ + Motivation: Callers MAY call several functions with common
+ directory of interest.
+
+ + Example: Several dowload actions to execute in sequence,
+ implemented as functions assuming ${DOWNLOAD_DIR}
+ is the working directory.
+
++ A function MAY change the working directory transiently,
+ before restoring it back before return.
+
+ + Such functions SHOULD use command "pushd" to change the working directory.
+
+ + Such functions SHOULD use "trap 'trap - RETURN; popd' RETURN"
+ imediately after the pushd.
+
+ + In that case, the "trap - RETURN" part MUST be included,
+ to restore any trap set by ancestor.
+
+ + Functions MAY call "trap - RETURN; popd" exlicitly.
+
+ + Such functions MUST NOT call another pushd (before an explicit popd),
+ as traps do not stack within a function.
+
++ If entry scripts also use traps to restore working directory (or other state),
+ they SHOULD use EXIT traps instead.
+
+ + That is because "exit" command, as well as the default behavior
+ of "die" or "set -e" cause direct exit (without skipping function returns).
+
+# Function Size
+
++ In general, code SHOULD follow reasoning similar to how pylint
+ limits code complexity.
+
++ It is RECOMMENDED to have functions somewhat simpler than Python functions,
+ as Bash is generally more verbose and less readable.
+
++ If code contains comments in order to partition a block
+ into sub-blocks, the sub-blocks SHOULD be moved into separate functions.
+
+ + Unless the sub-blocks are essentially one-liners,
+ not readable just because external commands do not have
+ obvious enough parameters. Use common sense.
+
+# Documentation
+
++ The library path and filename is visible from source sites. It SHOULD be
+ descriptive enough, so reader do not need to look inside to determine
+ how and why is the sourced file used.
+
+ + If code would use several functions with similar names,
+ it is RECOMMENDED to create a (well-named) sub-library for them.
+
+ + Code MAY create deep library trees if needed, it SHOULD store
+ common path prefixes into global variables to make sourcing easier.
+
+ + Contributors, look at other files in the subdirectory. You SHOULD
+ improve their filenames when adding-removing other filenames.
+
+ + Library files SHOULD NOT have executable flag set.
+
+ + Library files SHOULD have an extension .sh (or perhaps .bash).
+
+ + It is RECOMMENDED for entry scripts to also have executable flag unset
+ and have .sh extension.
+
++ Each entry script MUST start with a shebang.
+
+ + "#!/bin/usr/env bash" is RECOMMENDED.
+
+ + Code SHOULD put an empty line after shebang.
+
+ + Library files SHOULD NOT contain a shebang, as "source" is the primary
+ method to include them.
+
++ Following that, there SHOULD be a block of comment lines with copyright.
+
+ + It is a boilerplate, but human eyes are good at ignoring it.
+
+ + Overhead for git is also negligible.
+
++ Following that, there MUST be "set -exuo pipefail".
+
+ + It acts as an anchor for humans to start paying attention.
+
+Then it depends on script type.
+
+## Library Documentation
+
++ Following "set -exuo pipefail" SHALL come the "import part" documentation.
+
++ Then SHALL be the import code
+ ("source" commands and a bare minimum they need).
+
++ Then SHALL be the function definitions, and inside:
+
+ + The body SHALL sart with the function documentation explaining API contract.
+ Similar to Robot [Documentation] or Python function-level docstring.
+
+ + See below.
+
+ + "set -exuo pipefail" SHALL be the first executable line
+ in the function body, except functions which legitimely need
+ different flags. Those SHALL also start with appropriate "set" command(s).
+
+ + Lines containing code itself SHALL follow.
+
+ + "Code itself" SHALL include comment lines
+ explaining any non-obvious logic.
+
+ + There SHALL be two empty lines between function definitions.
+
+More details on function documentation:
+
+Generally, code SHOULD use comments to explain anything
+not obvious from the funtion name.
+
++ Function documentation SHOULD start with short description of function
+ operation or motivation, but only if not obvious from function name.
+
++ Documentation SHOULD continue with listing any non-obvious side effect:
+
+ + Documentation MUST list all read global variables.
+
+ + Documentation SHOULD include descriptions of semantics
+ of global variable values.
+ It is RECOMMENDED to mention which function is supposed to set them.
+
+ + The "include descriptions" part SHOULD apply to other items as well.
+
+ + Documentation MUST list all global variables set, unset, reset,
+ or otherwise updated.
+
+ + It is RECOMMENDED to list all hardcoded values used in code.
+
+ + Not critical, but can hint at future improvements.
+
+ + Documentation MUST list all files or directories read
+ (so caller can make sure their content is ready).
+
+ + Documentation MUST list all files or directories updated
+ (created, deleted, emptied, otherwise edited).
+
+ + Documentation SHOULD list all functions called (so reader can look them up).
+
+ + Documentation SHOULD mention where are the functions defined,
+ if not in the current file.
+
+ + Documentation SHOULD list all external commands executed.
+
+ + Because their behavior can change "out of bounds", meaning
+ the contributor changing the implementation of the extrenal command
+ can be unaware of this particular function interested in its side effects.
+
+ + Documentation SHOULD explain exit code (coming from
+ the last executed command).
+
+ + Usually, most functions SHOULD be "pass or die",
+ but some callers MAY be interested in nonzero exit codes
+ without using global variables to store them.
+
+ + Remember, "exit 1" ends not only the function, but all scripts
+ in the source chain, so code MUST NOT use it for other purposes.
+
+ + Code SHOULD call "die" function instead. This way the caller can
+ redefine that function, if there is a good reason for not exiting
+ on function failure.
+
+## Entry Script Documentation
+
++ After "set -exuo pipefail", high-level description SHALL come.
+
+ + Entry scripts are rarely reused, so detailed side effects
+ are OPTIONAL to document.
+
+ + But code SHOULD document the primary side effects.
+
++ Then SHALL come few commented lines to import the library with "die" function.
+
++ Then block of "source" commands for sourcing other libraries needed SHALL be.
+
+ + In alphabetical order, any "special" library SHOULD be
+ in the previous block (for "die").
+
++ Then block os commands processing arguments SHOULD be (if needed).
+
++ Then SHALL come block of function calls (with parameters as needed).
+
+# Other General Recommendations
+
++ Code SHOULD NOT not repeat itself, even in documentation:
+
+ + For hardcoded values, a general description SHOULD be written
+ (instead of copying the value), so when someone edits the value
+ in the code, the description still applies.
+
+ + If affected directory name is taken from a global variable,
+ documentation MAY distribute the directory description
+ over the two items.
+
+ + If most of side effects come from an inner call,
+ documentation MAY point the reader to the documentation
+ of the called function (instead of listing all the side effects).
+
++ But documentation SHOULD repeat it if the information crosses functions.
+
+ + Item description MUST NOT be skipped just because the reader
+ should have read parent/child documentation already.
+
+ + Frequently it is RECOMMENDED to copy&paste item descriptions
+ between functions.
+
+ + But sometimes it is RECOMMENDED to vary the descriptions. For example:
+
+ + A global variable setter MAY document how does it figure out the value
+ (without caring about what it will be used for by other functions).
+
+ + A global variable reader MAY document how does it use the value
+ (without caring about how has it been figured out by the setter).
+
++ When possible, Bash code SHOULD be made to look like Python
+ (or Robot Framework). Those are three primary languages CSIT code relies on,
+ so it is nicer for the readers to see similar expressions when possible.
+ Examples:
+
+ + Code MUST use indentation, 1 level is 4 spaces.
+
+ + Code SHOULD use "if" instead of "&&" constructs.
+
+ + For comparisons, code SHOULD use operators such as "!=" (needs "[[").
+
++ Code MUST NOT use more than 80 characters per line.
+
+ + If long external command invocations are needed,
+ code SHOULD use array variables to shorten them.
+
+ + If long strings (or arrays) are needed, code SHOULD use "+=" operator
+ to grow the value over multiple lines.
+
+ + If "|| die" does not fit with the command, code SHOULD use curly braces:
+
+ + Current line has "|| {",
+
+ + Next line has the die commands (indented one level deeper),
+
+ + Final line closes with "}" at original intent level.
diff --git a/docs/toi/branches.md b/docs/toi/branches.md
index d52ac05d79..20759b9c78 100644
--- a/docs/toi/branches.md
+++ b/docs/toi/branches.md
@@ -1,10 +1,9 @@
-# Git Branches in CSIT
-
-#### Content
+---
+bookHidden: true
+title: "Git Branches in CSIT"
+---
-- [Overview](#overview)
-- [Operational Branches](#operational-branches)
-- [Release Branches](#release-branches)
+# Git Branches in CSIT
## Overview
@@ -122,6 +121,8 @@ patches as an example.
See the patch
[Update of VPP_REPO_URL and VPP_STABLE_VER files](https://gerrit.fd.io/r/c/csit/+/30461)
+and / or
+[rls2101: Update VPP_STABLE_VER files to release version](https://gerrit.fd.io/r/c/csit/+/30976)
as an example.
1. Find the last successful build on the
diff --git a/docs/toi/test_code_guidelines.md b/docs/toi/test_code_guidelines.md
new file mode 100644
index 0000000000..9707d63ea6
--- /dev/null
+++ b/docs/toi/test_code_guidelines.md
@@ -0,0 +1,294 @@
+---
+bookHidden: true
+title: "CSIT Test Code Guidelines"
+---
+
+# CSIT Test Code Guidelines
+
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
+"MAY", and "OPTIONAL" in this document are to be interpreted as
+described in [BCP 14](https://tools.ietf.org/html/bcp14),
+[RFC2119](https://tools.ietf.org/html/rfc2119),
+[RFC8174](https://tools.ietf.org/html/rfc8174)
+when, and only when, they appear in all capitals, as shown here.
+
+This document SHALL describe guidelines for writing reliable, maintainable,
+reusable and readable code for CSIT.
+
+# RobotFramework test case files and resource files
+
++ General
+
+ + Contributors SHOULD look at requirements.txt in root CSIT directory
+ for the currently used Robot Framework version.
+ Contributors SHOULD read
+ [Robot Framework User Guide](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html)
+ for more details.
+
+ + RobotFramework test case files and resource files
+ SHALL use special extension .robot
+
+ + Pipe and space separated file format (without trailing pipe
+ and without pipe aligning) SHALL be used.
+ Tabs are invisible characters, which are error prone.
+ 4-spaces separation is prone to accidental double space
+ acting as a separator.
+
+ + Files SHALL be encoded in UTF-8 (the default Robot source file encoding).
+ Usage of non-ASCII characters SHOULD be avoided if possible.
+ It is RECOMMENDED to
+ [escape](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#escaping)
+ non-ASCII characters.
+
+ + Line length SHALL be limited to 80 characters.
+
+ + There SHALL be licence text present at the beginning of each file.
+
+ + Copy-pasting of the code NOT RECOMMENDED practice, any code that could be
+ re-used SHOULD be put into a library (Robot resource, Python library, ...).
+
++ Test cases
+
+ + It is RECOMMENDED to use data-driven test case definitions
+ anytime suite contains test cases similar in structure.
+ Typically, a suite SHOULD define a Template keyword, and test cases
+ SHOULD only specify tags and argument values
+
+ *** Settings ***
+ | Test Template | Local Template
+ ...
+
+ *** Test Cases ***
+ | tc01-64B-1c-eth-l2patch-mrr
+ | | [Tags] | 64B | 1C
+ | | framesize=${64} | phy_cores=${1}
+
+ + Test case templates (or testcases) SHALL be written in Behavior-driven style
+ i.e. in readable English, so that even non-technical project stakeholders
+ can understand it
+
+ *** Keywords ***
+ | Local Template
+ | | [Documentation]
+ | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy core(s).
+ | | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+ | | ...
+ | | ... | *Arguments:*
+ | | ... | - frame_size - Framesize in Bytes in integer
+ | | ... | or string (IMIX_v4_1). Type: integer, string
+ | | ... | - phy_cores - Number of physical cores. Type: integer
+ | | ... | - rxq - Number of RX queues, default value: ${None}.
+ | | ... | Type: integer
+ | | ...
+ | | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+ | | ...
+ | | Set Test Variable | \${frame_size}
+ | | ...
+ | | Given Add worker threads and rxqueues to all DUTs
+ | | ... | ${phy_cores} | ${rxq}
+ | | And Add PCI devices to all DUTs
+ | | Set Max Rate And Jumbo And Handle Multi Seg
+ | | And Apply startup configuration on all VPP DUTs
+ | | When Initialize L2 patch
+ | | Then Find NDR and PDR intervals using optimized search
+
+ + Every suite and test case template (or testcase)
+ SHALL contain short documentation.
+ Generated CSIT web pages display the documentation.
+
+ + You SHOULD NOT use hard-coded constants.
+ It is RECOMMENDED to use the variable table
+ (\*\*\*Variables\*\*\*) to define test case specific values.
+ You SHALL use the assignment sign = after the variable name
+ to make assigning variables slightly more explicit
+
+ *** Variables ***
+ | ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+
+ + Common test case specific settings of the test environment SHALL be done
+ in Test Setup keyword defined in the Setting table.
+
+ + Run Keywords construction is RECOMMENDED if it is more readable
+ than a keyword.
+
+ + Separate keyword is RECOMMENDED if the construction is less readable.
+
+ + Post-test cleaning and processing actions SHALL be done in Test Teardown
+ part of the Setting table (e.g. download statistics from VPP nodes).
+ This part is executed even if the test case has failed. On the other hand
+ it is possible to disable the tear-down from command line, thus leaving
+ the system in “broken” state for investigation.
+
+ + Every testcase SHALL be correctly tagged. List of defined tags is in
+ csit/docs/introduction/test_tag_documentation.rst
+
+ + Whenever possible, common tags SHALL be set using Force Tags
+ in Settings table.
+
+ + User high-level keywords specific for the particular test suite
+ SHOULD be implemented in the Keywords table of suitable Robot resource file
+ to enable readability and code-reuse.
+
+ + Such keywords MAY be implemented in Keywords table of the suite instead,
+ if the contributor believes no other test will use such keywords.
+ But this is NOT RECOMMENDED in general, as keywords in Resources
+ are easier to maintain.
+
+ + All test case names (and suite names) SHALL conform
+ to current naming convention.
+ https://wiki.fd.io/view/CSIT/csit-test-naming
+
+ + Frequently, different suites use the same test case layout.
+ It is RECOMMENDED to use autogeneration scripts available,
+ possibly extending them if their current functionality is not sufficient.
+
++ Resource files
+
+ + SHALL be used to implement higher-level keywords that are used in test cases
+ or other higher-level (or medium-level) keywords.
+
+ + Every keyword SHALL contain Documentation where the purpose and arguments
+ of the keyword are described. Also document types, return values,
+ and any specific assumptions the particular keyword relies on.
+
+ + A keyword usage example SHALL be the part of the Documentation.
+ The example SHALL use pipe and space separated format
+ (with escaped pipes and) with a trailing pipe.
+
+ + The reason was possbile usage of Robot's libdoc tool
+ to generate tests and resources documentation. In that case
+ example keyword usage would be rendered in table.
+
+ + Keyword name SHALL describe what the keyword does,
+ specifically and in a reasonable length (“short sentence”).
+
+ + Keyword names SHALL be short enough for call sites
+ to fit within line length limit.
+
+ + If a keyword argument has a most commonly used value, it is RECOMMENDED
+ to set it as default. This makes keyword code longer,
+ but suite code shorter, and readability (and maintainability)
+ of suites SHALL always more important.
+
+ + If there is intermediate data (created by one keyword, to be used
+ by another keyword) of singleton semantics (it is clear that the test case
+ can have at most one instance of such data, even if the instance
+ is complex, for example ${nodes}), it is RECOMMENDED to store it
+ in test variables. You SHALL document test variables read or written
+ by a keyword. This makes the test template code less verbose.
+ As soon as the data instance is not unique, you SHALL pass it around
+ via arguments and return values explicitly (this makes lower level keywords
+ more reusable and less bug prone).
+
+ + It is RECOMMENDED to pass arguments explicitly via [Arguments] line.
+ Setting test variables takes more space and is less explicit.
+ Using arguments embedded in keyword name makes them less visible,
+ and it makes it harder for the line containing the resulting long name
+ to fit into the maximum character limit, so you SHOULD NOT use them.
+
+# Python library files
+
++ General
+
+ + SHALL be used to implement low-level keywords that are called from
+ resource files (of higher-level keywords) or from test cases.
+
+ + Higher-level keywords MAY be implemented in python library file too.
+ it is RECOMMENDED especially in the case that their implementation
+ in resource file would be too difficult or impossible,
+ e.g. complex data structures or functional programming.
+
+ + Every keyword, Python module, class, method, enum SHALL contain
+ docstring with the short description and used input parameters
+ and possible return value(s) or raised exceptions.
+
+ + The docstrings SHOULD conform to
+ [PEP 257](https://www.python.org/dev/peps/pep-0257/)
+ and other quality standards.
+
+ + CSIT contributions SHALL use a specific formatting for documenting
+ arguments, return values and similar.
+
+ + Keyword usage examples MAY be grouped and used
+ in the class/module documentation string, to provide better overview
+ of the usage and relationships between keywords.
+
+ + Keyword name SHALL describe what the keyword does,
+ specifically and in a reasonable length (“short sentence”).
+ See https://wiki.fd.io/view/CSIT/csit-test-naming
+
+ + Python implementation of a keyword is a function,
+ so its name in the python library should be lowercase_with_underscores.
+ Robot call sites should usename with first letter capitalized, and spaces.
+
++ Coding
+
+ + It is RECOMMENDED to use some standard development tool
+ (e.g. PyCharm Community Edition) and follow
+ [PEP-8](https://www.python.org/dev/peps/pep-0008/) recommendations.
+
+ + All python code (not only Robot libraries) SHALL adhere to PEP-8 standard.
+ This is reported by CSIT Jenkins verify job.
+
+ + Indentation: You SHALL NOT use tab for indents!
+ Indent is defined as four spaces.
+
+ + Line length: SHALL be limited to 80 characters.
+
+ + CSIT Python code assumes PYTHONPATH is set
+ to the root of cloned CSIT git repository, creating a tree of sub-packages.
+ You SHALL use that tree for importing, for example
+
+ from resources.libraries.python.ssh import exec_cmd_no_error
+
+ + Imports SHALL be grouped in the following order:
+
+ 1. standard library imports,
+ 2. related third party imports,
+ 3. local application/library specific imports.
+
+ You SHALL put a blank line between each group of imports.
+
+ + You SHALL use two blank lines between top-level definitions,
+ one blank line between method definitions.
+
+ + You SHALL NOT execute any active code on library import.
+
+ + You SHALL NOT use global variables inside library files.
+
+ + You MAY define constants inside library files.
+
+ + It is NOT RECOMMENDED to use hard-coded constants (e.g. numbers,
+ paths without any description). It is RECOMMENDED to use
+ configuration file(s), like /csit/resources/libraries/python/Constants.py,
+ with appropriate comments.
+
+ + The code SHALL log at the lowest possible level of implementation,
+ for debugging purposes. You SHALL use same style for similar events.
+ You SHALL keep logging as verbose as necessary.
+
+ + You SHALL use the most appropriate exception not general one (Exception)
+ if possible. You SHOULD create your own exception
+ if necessary and implement there logging, level debug.
+
+ + You MAY use RuntimeException for generally unexpected failures.
+
+ + It is RECOMMENDED to use RuntimeError also for
+ infrastructure failures, e.g. losing SSH connection to SUT.
+
+ + You MAY use EnvironmentError and its cublasses instead,
+ if the distinction is informative for callers.
+
+ + It is RECOMMENDED to use AssertionError when SUT is at fault.
+
+ + For each class (e.g. exception) it is RECOMMENDED to implement __repr__()
+ which SHALL return a string usable as a constructor call
+ (including repr()ed arguments).
+ When logging, you SHOULD log the repr form, unless the internal structure
+ of the object in question would likely result in too long output.
+ This is helpful for debugging.
+
+ + For composing and formatting strings, you SHOULD use .format()
+ with named arguments.
+ Example: "repr() of name: {name!r}".format(name=name)
diff --git a/docs/toi/vagrant.md b/docs/toi/vagrant.md
new file mode 100644
index 0000000000..21890f86eb
--- /dev/null
+++ b/docs/toi/vagrant.md
@@ -0,0 +1,326 @@
+# FD.io CSIT Development Environment
+
+The intent of this document is to give you a quick start guide for setting up a CSIT development and testing environment inside a Vagrant VM.
+
+## Pulling CSIT code
+
+The first step is to pull the FD.io CSIT code. Eventhough the fastest way is to pull the code anonymously using https by typing the below command, the recommended way is to pull code via ssh if you intend to develop and commit changes upstream.
+```
+git clone https://gerrit.fd.io/r/csit
+```
+To pull the code via ssh, you'll first need to setup a Linux Foundation (LF) account as fd.io uses the Linux Foundations identity system. If you do not have an LF account, proceed to [Linux_Foundations_Identity_Setup](https://identity.linuxfoundation.org) to setup one. Once you have setup your Linux Foundation username and password, you can use if for all fd.io logins.
+
+After you've setup your account, make sure you have registered your [ssh key with
+gerrit](https://wiki.fd.io/view/DEV/Setting_up_Gerrit). Then pull the code by typing the below command. Replace USERNAME with your Linux Foundation username.
+
+```
+git clone ssh://USERNAME@gerrit.fd.io:29418/csit.git
+```
+
+## Standing up Linux VM
+
+To setup your dev environment, you'll want to stand up a Linux VM. The CSIT repo provides a
+Vagrantfile to help you quickly setup an Ubuntu Jammy VM. This file is located in the csit.infra.vagrant folder.
+
+If you haven't already installed Vagrant, install it by following the instructions [here](https://developer.hashicorp.com/vagrant/docs/installation).
+
+Vagrant works well with the VirtualBox provider. We have only tested Vagrant with the VirtualBox provider for setting up a CSIT dev/test environment. Install the VirtualBox hypervisor on your
+host machine by following the instructions for [Installing VirtualBox](https://www.virtualbox.org/wiki/Downloads).
+
+If you've more than one hypervisor in use on the host machine, you'll most likely encounter an error when bringing up the VM. You must ensure that other hyperviors such as Hyper-V or KVM are disabled.
+
+### Ensure KVM and Hyper-V are disabled on the host
+
+If you have a Linux machine, ensure KVM is disabled:
+```
+lsmod | grep kvm
+```
+If you see kvm or kvm_intel in the output, you'll need to use the blacklist command to add it to the deny list.
+```
+echo 'blacklist kvm-intel' | sudo tee -a /etc/modprobe.d/blacklist.conf
+```
+
+If you have a Windows machine, ensure Hyper-V is disabled in system settings.
+
+ - Right click on the Windows button and select 'Apps and Features'.
+ - Select Turn Windows Features on or off.
+ - Unselect Hyper-V and click OK.
+
+ Reboot your host machine for the changes to take effect.
+
+### Starting the Vagrant VM
+
+The CSIT Vagrantfile: csit/csit.infra.vagrant/Vagrantfile is used to start up the Ubuntu
+jammy VM with 8GB of RAM and 4 VCPUs. Vagrant boots up the VM and provisions software in it
+using ansible local. Ansible installation is not required on the host.
+
+The inventory path for ansible provisioning on the vagrant VM is located at:
+csit/fdio.infra.ansible/inventories/vagrant_inventory/hosts.
+
+The ansible playbook used for the vagrant host is located at:
+/home/vagrant/csit/fdio.infra.ansible/vagrant.yaml
+
+If your host OS is Linux, you may have to increase the maximum map count to a high value to
+ensure that the Linux Kernel allows the VirtualBox hypervisor to allocate the required memory
+maps. You can do this by typing the below command:
+```
+sudo sysctl -w vm.max_map_count=262144
+```
+
+If you're using a proxy, you'll need to export your proxy settings to facilitate software provisioning within the Vagrant VM.
+```
+export VAGRANT_APT_HTTP_PROXY=http://{Your_Proxy_URL}:{Proxy_Port}
+export VAGRANT_APT_HTTPS_PROXY=http://{Your_Proxy_URL}:{Proxy_Port}
+export VAGRANT_HTTPS_PROXY=http://{Your_Proxy_URL}:{Proxy_Port}
+export VAGRANT_HTTP_PROXY=http://{Your_Proxy_URL}:{Proxy_Port}
+```
+
+Ansible downloads stable VPP packages from Packagecloud. The VPP version used for testing
+can be set by updating the file: csit/VPP_STABLE_VER_UBUNTU_JAMMY.
+
+To bring up the Ubuntu jammy VM with virtualbox provider and provision software, type the command
+```
+vagrant up
+```
+
+If everything goes well, vagrant will boot up the VM, mount shared folders and provision all the required software for running CSIT tests. The csit repository on the host will be mounted at /home/vagrant/csit on the VM.
+
+### Running Device Tests
+
+After your VM is provisioned, start by running VPP device tests. To do this type the
+following commands:
+```
+vagrant ssh # login to the VM
+cd /home/vagrant/csit/resources/libraries/bash/entry
+./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu2004-1n-vbox
+```
+
+The script will pack and copy the test framework into the docker containers named csit-tg-* and csit-dut1-* via ssh. The copied tarball will be extracted in the docker container.
+Once the nodes are ready, you'll see device tests being executed in the docker container and the test results.
+
+### Your questions answered
+
+1) Where are the tests located and how are they written?
+
+ CSIT tests are written using an open source automation framework called the [Robot Framework](https://robotframework.org/). The tests are present in the /tests folder. Infact these tests are used as templates to generate new robot tests for testing various interface types. The new interface tests are generated at runtime and stored in the /generated/tests folder. For VM based testing of interfaces, you should see robot tests generated for 1GE interfaces in this folder.
+
+2) I am getting a robot error, [ ERROR ] Suite 'Tests' contains no tests matching tag '2 node single link topo', not matching tags 'avf', 'vhost', 'flow', 'NIC "HW 4xxx"', 'NIC "HW C4xxx"', 'NIC Amazon-Nitro-100G', 'NIC Amazon-Nitro-200G', 'NIC Amazon-Nitro-50G', 'NIC Intel-DSA', 'NIC Intel-E810CQ', 'NIC Intel-E810XXV', 'NIC Intel-E822CQ', 'NIC Intel-X520-DA2', 'NIC Intel-X553', 'NIC Intel-X710', 'NIC Intel-XL710', 'NIC Intel-XXV710', 'NIC Mellanox-CX556A', 'NIC Mellanox-CX6DX', 'NIC Mellanox-CX7VEAT' or 'NIC azure-mlx-40g' and matching name 'devicetest' in suite 'tests.vpp.device'. How do I resolve this?
+
+ This error means that the robot framework is missing the virtual interface specification in its configuration. To resolve this issue, update the file: resources/library/python/Constants.py by adding a mapping for the nic named virtual. For instance, create two mappings such as:
+ ```
+ "virtual": "1ge1p82540em"
+ "virtual": ["vfio-pci"]
+ ```
+ Add the appropriate mapping into,
+ - NIC_NAME_TO_CODE
+ - NIC_CODE_TO_SHORT_NAME
+ - NIC_NAME_TO_DRIVER
+ - NIC_DRIVER_TO_PLUGINS
+ - NIC_DRIVER_TO_TAG
+ - NIC_DRIVER_TO_SUITE_PREFIX
+ - NIC_DRIVER_TO_VFS
+ - DPDK_NIC_NAME_TO_DRIVER
+
+ After this, delete the /generated/tests folder. We are using job_spec files for test definition. See /resources/job_specs/vpp_device. If a job spec is missing for vbox, create a new job spec by just copying and pasting the existing vpp-1n-spr.md to vpp-1n-vbox.md. However, change the NIC to virtual!
+
+ Next, in the file: resources/libraries/bash/function/common.sh add the below line to create a substitution for the virtual NIC,
+ ```
+ awk_nics_sub_cmd+='gsub("virtual","1ge1p82540em");'
+ ```
+ Also, keep the “virtual” in vpp-1n-vbox.md (column 4).
+ Now re-run the tests and in robot command line (log) you should start seeing --test <name> --test <name> etc.
+
+3) Where can I find test run logs?
+
+ Test run logs are present in the /archives folder. You should find a file named log.hml in this folder.
+
+4) I am seeing a Docker image not found error when running tests.
+ How do I build the required docker images?
+
+ You should have two docker images inside the VM named,
+ - base-ubuntu2204:local
+ - csit_sut-ubuntu2204:local.
+
+ If these images are missing, you can create them by typing the below commands:
+ ```
+ cd /opt/csit-docker-images/base
+ docker build -t base-ubuntu2204:local .
+
+ cd /opt/csit-docker-images/csit-sut
+ docker build -t csit_sut-ubuntu2204:local .
+ ```
+
+5) VPP is failing to start inside the docker container. How do I fix this?
+
+ First start by looking at the log.html file. You should find the startup configuration used to start VPP. For instance, your startup.conf file could look like the below,
+ ```
+ {
+ log /var/log/vpp/vpp.log
+ cli-listen /run/vpp/cli.sock
+ cli-no-pager
+ gid vpp
+ full-coredump
+ }
+ socksvr
+ {
+ socket-name /run/vpp/api.sock
+ }
+ memory
+ {
+ main-heap-size 2G
+ main-heap-page-size 2M
+ default-hugepage-size 2M
+ }
+ statseg
+ {
+ size 2G
+ page-size 2M
+ per-node-counters on
+ }
+ plugins
+ {
+ plugin default
+ {
+ disable
+ }
+ plugin dpdk_plugin.so
+ {
+ enable
+ }
+ }
+ dpdk
+ {
+ dev 0000:00:10.0
+ dev 0000:00:11.0
+ }
+ ip6
+ {
+ hash-buckets 2000000
+ heap-size 4G
+ }
+ ```
+ One common reason for VPP not starting up is not allocating enough hugepages for VPP inside the VM. Increase the number of hugepages to 2560 by typing the below command and try running the tests again.
+
+ ```
+ sudo sysctl -w vm.nr_hugepages=2650
+ ```
+
+6) How do I check if the robot test cases for virtual interfaces have been successfully generated?
+
+ Check the /generated/tests folder for all the generated tests. If you're running VPP device tests, generated tests will be found in the sub-folder named vpp/device. If you've named your virtual interface "1ge1p82540em", you will find robot test files with names 2n1l-1ge1p82540em-*
+
+7) For debugging, how do I prevent the test environment from being torn down after a test run?
+
+ You can disable the CSIT framework from cleaning up the test environment by setting the environment variable CSIT_NO_CLEANUP=1.
+
+ To reset the environment back for regular test runs, reboot the VM by typing the command,
+
+ ```
+ vagrant reload
+ ```
+
+ This will terminate all docker containers and free up all pci interfaces grabbed by dpdk.
+
+ ```
+ cd /home/vagrant/csit/resources/libraries/bash/entry
+ CSIT_NO_CLEANUP=1 ./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu2004-1n-vbox
+ ```
+
+8) How do I ssh into the docker container for further troubleshooting?
+
+ First disable test environment cleanups by following the instructions above. This will leave the TG and DUT1 docker containers running. You can now ssh into the csit-dut1-* docker container for further troubleshooting, such as running VPP or robot tests by hand. To do so, find the port published by the DUT1 docker container by typing the below command and then ssh into the container as root. The default root password is Csit1234.
+ ```
+ docker ps # list all running containers and get the csit-dut1-* container ID
+ docker port ${DUT1_CONTAINER_ID} # get the published docker container port
+ ssh root@{HOST_IP_ADDRESS} -p {DOCKER_PORT} # ssh into the container
+ ```
+
+9) What's the CSIT test topology used for VM tests and where's the topology file?
+
+ CSIT generates a 2 node topology with a TG docker node connected to a DUT1 docker node.
+ The topology file is located at topologies/available/vpp_device.yaml
+ For instance, here's a sample topology file generated by CSIT -
+ ```
+ metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [dcr, 2-node]
+
+ nodes:
+ TG:
+ type: "TG"
+ host: "10.0.2.15"
+ arch: "x86_64"
+ port: 32768
+ username: "root"
+ interfaces:
+ port0:
+ mac_address: "08:00:27:0f:e0:4d"
+ pci_address: "0000:00:08.0"
+ link: "link0"
+ model: virtual
+ driver: "e1000"
+ vlan: 0
+ port1:
+ mac_address: "08:00:27:61:f7:ad"
+ pci_address: "0000:00:09.0"
+ link: "link1"
+ model: virtual
+ driver: "e1000"
+ vlan: 0
+
+ DUT1:
+ type: "DUT"
+ host: "10.0.2.15"
+ arch: "x86_64"
+ port: 32769
+ username: "root"
+ interfaces:
+ port0:
+ mac_address: "08:00:27:38:5e:58"
+ pci_address: "0000:00:10.0"
+ link: "link0"
+ model: virtual
+ driver: "e1000"
+ vlan: 0
+ port1:
+ mac_address: "08:00:27:e3:f5:42"
+ pci_address: "0000:00:11.0"
+ link: "link1"
+ model: virtual
+ driver: "e1000"
+ vlan: 0
+ ```
+
+10) How do I run an ansible task after the VM is provisioned?
+
+ You can run a specific ansible task after the VM has been provisioned using ansible tags.
+ For instance, you can run the tasks that has been tagged docker_images, by typing the below ansible command,
+
+ ```
+ cd ~/csit/fdio.infra.ansible
+ ansible-playbook vagrant.yaml --tags "docker_images" -i inventories/vagrant_inventory/hosts
+ ```
+
+11) Docker image build is failing due to a network error. Where do I set proxy settings for Docker?
+
+ You can set proxy settings for Docker in the file ~/.docker/config.json. Update this file with your environment's proxy info -
+ ```
+ {
+ "proxies":
+ {
+ "default":
+ {
+ "httpProxy": "http://{Proxy_IP_Address}:{Proxy_Port}",
+ "httpsProxy": "http://{Proxy_IP_Address}:{Proxy_Port}",
+ "noProxy": "localhost,127.0.0.1"
+ }
+ }
+ }
+ ```
+
+12) Where should I set the proxy vars for Ansible?
+
+ Set Ansible proxy variables in the file - fdio.infra.ansible/roles/common/defaults/main.yaml. Uncomment the proxy_env: section and fill the correct proxy values for your dev/test environment.
diff --git a/docs/vpp_device.svg b/docs/vpp_device.svg
deleted file mode 100644
index 177d49af89..0000000000
--- a/docs/vpp_device.svg
+++ /dev/null
@@ -1,318 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="163mm" height="127mm" viewBox="0 0 16300 12700" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="16300" height="12700"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="16" y="12" width="16268" height="12675"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1006" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
- <glyph unicode="w" horiz-adv-x="1509" d="M 1174,0 L 965,0 776,765 740,934 C 734,904 725,861 712,805 699,748 631,480 508,0 L 300,0 -3,1082 175,1082 358,347 C 363,331 377,265 401,149 L 418,223 644,1082 837,1082 1026,339 1072,149 1103,288 1308,1082 1484,1082 1174,0 Z"/>
- <glyph unicode="u" horiz-adv-x="874" d="M 314,1082 L 314,396 C 314,325 321,269 335,230 349,191 371,162 402,145 433,128 478,119 537,119 624,119 692,149 742,208 792,267 817,350 817,455 L 817,1082 997,1082 997,231 C 997,105 999,28 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 826,132 825,185 L 822,185 C 781,110 733,58 679,27 624,-4 557,-20 476,-20 357,-20 271,10 216,69 161,128 133,225 133,361 L 133,1082 314,1082 Z"/>
- <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 495,-8 434,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 474,127 509,132 554,141 L 554,8 Z"/>
- <glyph unicode="r" horiz-adv-x="530" d="M 142,0 L 142,830 C 142,906 140,990 136,1082 L 306,1082 C 311,959 314,886 314,861 L 318,861 C 347,954 380,1017 417,1051 454,1085 507,1102 575,1102 599,1102 623,1099 648,1092 L 648,927 C 624,934 592,937 552,937 477,937 420,905 381,841 342,776 322,684 322,564 L 322,0 142,0 Z"/>
- <glyph unicode="q" horiz-adv-x="927" d="M 484,-20 C 347,-20 246,26 182,119 118,212 86,351 86,536 86,913 219,1102 484,1102 566,1102 634,1088 687,1059 740,1030 785,981 821,914 L 823,914 C 823,934 824,969 827,1018 830,1067 832,1093 835,1096 L 1008,1096 C 1003,1057 1001,958 1001,801 L 1001,-425 821,-425 821,14 825,178 823,178 C 787,107 743,56 690,26 637,-5 569,-20 484,-20 Z M 821,554 C 821,695 798,799 752,867 706,935 633,969 532,969 441,969 375,935 335,867 295,799 275,691 275,542 275,391 295,282 336,217 376,152 441,119 530,119 632,119 706,155 752,228 798,301 821,409 821,554 Z"/>
- <glyph unicode="p" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 488,-20 376,43 319,168 L 314,168 C 317,163 318,106 318,-2 L 318,-425 138,-425 138,861 C 138,972 136,1046 132,1082 L 306,1082 C 307,1079 308,1070 309,1054 310,1037 312,1012 314,978 315,944 316,921 316,908 L 320,908 C 352,975 394,1024 447,1055 500,1086 569,1101 655,1101 788,1101 888,1056 954,967 1020,878 1053,737 1053,546 Z M 864,542 C 864,693 844,800 803,865 762,930 698,962 609,962 538,962 482,947 442,917 401,887 371,840 350,777 329,713 318,630 318,528 318,386 341,281 386,214 431,147 505,113 607,113 696,113 762,146 803,212 844,277 864,387 864,542 Z"/>
- <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 407,-20 288,28 207,125 126,221 86,360 86,542 86,915 248,1102 571,1102 736,1102 858,1057 936,966 1014,875 1053,733 1053,542 Z M 864,542 C 864,691 842,800 798,868 753,935 679,969 574,969 469,969 393,935 346,866 299,797 275,689 275,542 275,399 298,292 345,221 391,149 464,113 563,113 671,113 748,148 795,217 841,286 864,395 864,542 Z"/>
- <glyph unicode="n" horiz-adv-x="874" d="M 825,0 L 825,686 C 825,757 818,813 804,852 790,891 768,920 737,937 706,954 661,963 602,963 515,963 447,933 397,874 347,815 322,732 322,627 L 322,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 358,972 406,1025 461,1056 515,1087 582,1102 663,1102 782,1102 869,1073 924,1014 979,955 1006,857 1006,721 L 1006,0 825,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1457" d="M 768,0 L 768,686 C 768,791 754,863 725,903 696,943 645,963 570,963 493,963 433,934 388,875 343,816 321,734 321,627 L 321,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 356,974 400,1027 450,1057 500,1087 561,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 967,970 1013,1022 1066,1054 1119,1086 1183,1102 1258,1102 1367,1102 1447,1072 1497,1013 1546,954 1571,856 1571,721 L 1571,0 1393,0 1393,686 C 1393,791 1379,863 1350,903 1321,943 1270,963 1195,963 1116,963 1055,934 1012,876 968,817 946,734 946,627 L 946,0 768,0 Z"/>
- <glyph unicode="k" horiz-adv-x="901" d="M 816,0 L 450,494 318,385 318,0 138,0 138,1484 318,1484 318,557 793,1082 1004,1082 565,617 1027,0 816,0 Z"/>
- <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/>
- <glyph unicode="g" horiz-adv-x="927" d="M 548,-425 C 430,-425 336,-402 266,-356 196,-309 151,-243 131,-158 L 312,-132 C 324,-182 351,-220 392,-248 433,-274 486,-288 553,-288 732,-288 822,-183 822,27 L 822,201 820,201 C 786,132 739,80 680,45 621,10 551,-8 472,-8 339,-8 242,36 180,124 117,212 86,350 86,539 86,730 120,872 187,963 254,1054 355,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,917 825,952 828,1001 831,1050 833,1077 836,1082 L 1007,1082 C 1003,1046 1001,971 1001,858 L 1001,31 C 1001,-273 850,-425 548,-425 Z M 822,541 C 822,629 810,705 786,769 762,832 728,881 685,915 641,948 591,965 536,965 444,965 377,932 335,865 293,798 272,690 272,541 272,393 292,287 331,222 370,157 438,125 533,125 590,125 640,142 684,175 728,208 762,256 786,319 810,381 822,455 822,541 Z"/>
- <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,379 302,283 353,216 404,149 479,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 954,65 807,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,727 129,864 213,959 296,1054 416,1102 571,1102 889,1102 1048,910 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 481,969 412,940 361,882 310,823 282,743 278,641 L 862,641 Z"/>
- <glyph unicode="d" horiz-adv-x="927" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 821,1035 821,1484 1001,1484 1001,223 C 1001,110 1003,36 1007,0 L 835,0 C 833,11 831,35 829,74 826,113 825,146 825,174 L 821,174 Z M 275,542 C 275,391 295,282 335,217 375,152 440,119 530,119 632,119 706,154 752,225 798,296 821,405 821,554 821,697 798,802 752,869 706,936 633,969 532,969 441,969 376,936 336,869 295,802 275,693 275,542 Z"/>
- <glyph unicode="c" horiz-adv-x="901" d="M 275,546 C 275,402 298,295 343,226 388,157 457,122 548,122 612,122 666,139 709,174 752,209 778,262 788,334 L 970,322 C 956,218 912,135 837,73 762,11 668,-20 553,-20 402,-20 286,28 207,124 127,219 87,359 87,542 87,724 127,863 207,959 287,1054 402,1102 551,1102 662,1102 754,1073 827,1016 900,959 945,880 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 451,961 382,929 339,866 296,803 275,696 275,546 Z"/>
- <glyph unicode="b" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 573,-20 505,-5 451,25 396,54 352,102 318,168 L 316,168 C 316,147 315,116 312,74 309,31 307,7 306,0 L 132,0 C 136,36 138,110 138,223 L 138,1484 318,1484 318,1061 C 318,1018 317,967 314,908 L 318,908 C 351,977 396,1027 451,1057 506,1087 574,1102 655,1102 792,1102 892,1056 957,964 1021,872 1053,733 1053,546 Z M 864,540 C 864,691 844,800 804,865 764,930 699,963 609,963 508,963 434,928 388,859 341,790 318,680 318,529 318,387 341,282 386,215 431,147 505,113 607,113 698,113 763,147 804,214 844,281 864,389 864,540 Z"/>
- <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,123 87,202 87,302 87,414 124,500 198,560 271,620 390,652 554,656 L 797,660 797,719 C 797,807 778,870 741,908 704,946 645,965 565,965 484,965 426,951 389,924 352,897 330,853 323,793 L 135,810 C 166,1005 310,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1097,111 1117,113 1139,118 L 1139,6 C 1094,-5 1047,-10 1000,-10 933,-10 885,8 855,43 824,78 807,132 803,207 L 797,207 C 751,124 698,66 637,32 576,-3 501,-20 414,-20 Z M 455,115 C 521,115 580,130 631,160 682,190 723,231 753,284 782,336 797,390 797,445 L 797,534 600,530 C 515,529 451,520 408,504 364,488 330,463 307,430 284,397 272,353 272,299 272,240 288,195 320,163 351,131 396,115 455,115 Z"/>
- <glyph unicode="U" horiz-adv-x="1192" d="M 731,-20 C 616,-20 515,1 429,43 343,85 276,146 229,226 182,306 158,401 158,512 L 158,1409 349,1409 349,528 C 349,399 382,302 447,235 512,168 607,135 730,135 857,135 955,170 1026,239 1096,308 1131,408 1131,541 L 1131,1409 1321,1409 1321,530 C 1321,416 1297,318 1249,235 1200,152 1132,89 1044,46 955,2 851,-20 731,-20 Z"/>
- <glyph unicode="S" horiz-adv-x="1192" d="M 1272,389 C 1272,259 1221,158 1120,87 1018,16 875,-20 690,-20 347,-20 148,99 93,338 L 278,375 C 299,290 345,228 414,189 483,149 578,129 697,129 820,129 916,150 983,193 1050,235 1083,297 1083,379 1083,425 1073,462 1052,491 1031,520 1001,543 963,562 925,581 880,596 827,609 774,622 716,635 652,650 541,675 456,699 399,724 341,749 295,776 262,807 229,837 203,872 186,913 168,954 159,1000 159,1053 159,1174 205,1267 298,1332 390,1397 522,1430 694,1430 854,1430 976,1406 1061,1357 1146,1308 1205,1224 1239,1106 L 1051,1073 C 1030,1148 991,1202 933,1236 875,1269 795,1286 692,1286 579,1286 493,1267 434,1230 375,1193 345,1137 345,1063 345,1020 357,984 380,956 403,927 436,903 479,884 522,864 609,840 738,811 781,801 825,791 868,781 911,770 952,758 991,744 1030,729 1067,712 1102,693 1136,674 1166,650 1191,622 1216,594 1236,561 1251,523 1265,485 1272,440 1272,389 Z"/>
- <glyph unicode="N" horiz-adv-x="1165" d="M 1082,0 L 328,1200 333,1103 338,936 338,0 168,0 168,1409 390,1409 1152,201 C 1144,332 1140,426 1140,485 L 1140,1409 1312,1409 1312,0 1082,0 Z"/>
- <glyph unicode="H" horiz-adv-x="1165" d="M 1121,0 L 1121,653 359,653 359,0 168,0 168,1409 359,1409 359,813 1121,813 1121,1409 1312,1409 1312,0 1121,0 Z"/>
- <glyph unicode="1" horiz-adv-x="927" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
- <glyph unicode=" " horiz-adv-x="556"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="bold" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="y" horiz-adv-x="1139" d="M 283,-425 C 216,-425 157,-421 106,-412 L 106,-212 C 141,-217 174,-220 203,-220 243,-220 276,-214 303,-201 329,-188 353,-167 374,-138 395,-109 418,-59 444,11 L 16,1082 313,1082 483,575 C 510,502 543,391 584,241 L 609,336 674,571 834,1082 1128,1082 700,-57 C 643,-196 583,-292 522,-345 460,-398 380,-425 283,-425 Z"/>
- <glyph unicode="v" horiz-adv-x="1139" d="M 731,0 L 395,0 8,1082 305,1082 494,477 C 504,444 528,360 565,227 572,254 585,302 606,371 627,440 703,677 836,1082 L 1130,1082 731,0 Z"/>
- <glyph unicode="t" horiz-adv-x="662" d="M 420,-18 C 337,-18 274,5 229,50 184,95 162,163 162,254 L 162,892 25,892 25,1082 176,1082 264,1336 440,1336 440,1082 645,1082 645,892 440,892 440,330 C 440,277 450,239 470,214 490,189 521,176 563,176 585,176 616,181 657,190 L 657,16 C 588,-7 509,-18 420,-18 Z"/>
- <glyph unicode="s" horiz-adv-x="1006" d="M 1055,316 C 1055,211 1012,129 927,70 841,10 722,-20 571,-20 422,-20 309,4 230,51 151,98 98,171 72,270 L 319,307 C 333,256 357,219 392,198 426,177 486,166 571,166 650,166 707,176 743,196 779,216 797,247 797,290 797,325 783,352 754,373 725,393 675,410 606,424 447,455 340,485 285,512 230,539 188,574 159,617 130,660 115,712 115,775 115,878 155,959 235,1017 314,1074 427,1103 573,1103 702,1103 805,1078 884,1028 962,978 1011,906 1030,811 L 781,785 C 773,829 753,862 722,884 691,905 641,916 573,916 506,916 456,908 423,891 390,874 373,845 373,805 373,774 386,749 412,731 437,712 480,697 541,685 626,668 701,650 767,632 832,613 885,591 925,566 964,541 996,508 1020,469 1043,429 1055,378 1055,316 Z"/>
- <glyph unicode="r" horiz-adv-x="636" d="M 143,0 L 143,828 C 143,887 142,937 141,977 139,1016 137,1051 135,1082 L 403,1082 C 405,1070 408,1034 411,973 414,912 416,871 416,851 L 420,851 C 447,927 472,981 493,1012 514,1043 540,1066 569,1081 598,1096 635,1103 679,1103 715,1103 744,1098 766,1088 L 766,853 C 721,863 681,868 646,868 576,868 522,840 483,783 444,726 424,642 424,531 L 424,0 143,0 Z"/>
- <glyph unicode="o" horiz-adv-x="1113" d="M 1171,542 C 1171,367 1122,229 1025,130 928,30 793,-20 621,-20 452,-20 320,30 224,130 128,230 80,367 80,542 80,716 128,853 224,953 320,1052 454,1102 627,1102 804,1102 939,1054 1032,958 1125,861 1171,723 1171,542 Z M 877,542 C 877,671 856,764 814,822 772,880 711,909 631,909 460,909 375,787 375,542 375,421 396,330 438,267 479,204 539,172 618,172 791,172 877,295 877,542 Z"/>
- <glyph unicode="n" horiz-adv-x="1007" d="M 844,0 L 844,607 C 844,797 780,892 651,892 583,892 528,863 487,805 445,746 424,671 424,580 L 424,0 143,0 143,840 C 143,898 142,946 141,983 139,1020 137,1053 135,1082 L 403,1082 C 405,1069 408,1036 411,981 414,926 416,888 416,867 L 420,867 C 458,950 506,1010 563,1047 620,1084 689,1103 768,1103 883,1103 971,1068 1032,997 1093,926 1124,823 1124,687 L 1124,0 844,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1562" d="M 780,0 L 780,607 C 780,797 725,892 616,892 559,892 513,863 478,805 442,747 424,672 424,580 L 424,0 143,0 143,840 C 143,898 142,946 141,983 139,1020 137,1053 135,1082 L 403,1082 C 405,1069 408,1036 411,981 414,926 416,888 416,867 L 420,867 C 455,950 498,1010 550,1047 601,1084 663,1103 735,1103 900,1103 1001,1024 1036,867 L 1042,867 C 1079,951 1123,1011 1174,1048 1225,1085 1291,1103 1370,1103 1475,1103 1556,1067 1611,996 1666,924 1694,821 1694,687 L 1694,0 1415,0 1415,607 C 1415,797 1360,892 1251,892 1196,892 1152,866 1117,813 1082,760 1062,686 1059,593 L 1059,0 780,0 Z"/>
- <glyph unicode="l" horiz-adv-x="292" d="M 143,0 L 143,1484 424,1484 424,0 143,0 Z"/>
- <glyph unicode="k" horiz-adv-x="1007" d="M 834,0 L 545,490 424,406 424,0 143,0 143,1484 424,1484 424,634 810,1082 1112,1082 732,660 1141,0 834,0 Z"/>
- <glyph unicode="i" horiz-adv-x="292" d="M 143,1277 L 143,1484 424,1484 424,1277 143,1277 Z M 143,0 L 143,1082 424,1082 424,0 143,0 Z"/>
- <glyph unicode="h" horiz-adv-x="1007" d="M 420,866 C 458,949 506,1009 563,1046 620,1083 689,1102 768,1102 883,1102 971,1067 1032,996 1093,925 1124,822 1124,686 L 1124,0 844,0 844,606 C 844,796 780,891 651,891 583,891 528,862 487,804 445,745 424,670 424,579 L 424,0 143,0 143,1484 424,1484 424,1079 C 424,1006 421,935 416,866 L 420,866 Z"/>
- <glyph unicode="e" horiz-adv-x="1007" d="M 586,-20 C 423,-20 298,28 211,125 124,221 80,361 80,546 80,725 124,862 213,958 302,1054 427,1102 590,1102 745,1102 864,1051 946,948 1028,845 1069,694 1069,495 L 1069,487 375,487 C 375,382 395,302 434,249 473,195 528,168 600,168 699,168 762,211 788,297 L 1053,274 C 976,78 821,-20 586,-20 Z M 586,925 C 520,925 469,902 434,856 398,810 379,746 377,663 L 797,663 C 792,750 771,816 734,860 697,903 648,925 586,925 Z"/>
- <glyph unicode="d" horiz-adv-x="1033" d="M 844,0 C 841,10 838,35 835,76 831,116 829,149 829,176 L 825,176 C 764,45 649,-20 479,-20 353,-20 256,29 187,128 118,226 84,363 84,540 84,719 120,858 193,956 265,1053 367,1102 500,1102 577,1102 643,1086 699,1054 754,1022 797,974 827,911 L 829,911 827,1089 827,1484 1108,1484 1108,236 C 1108,169 1111,91 1116,0 L 844,0 Z M 831,547 C 831,664 812,754 773,817 734,880 676,911 600,911 525,911 469,881 432,820 395,759 377,665 377,540 377,295 451,172 598,172 672,172 729,205 770,270 811,335 831,427 831,547 Z"/>
- <glyph unicode="a" horiz-adv-x="1112" d="M 393,-20 C 288,-20 207,9 148,66 89,123 60,203 60,306 60,418 97,503 170,562 243,621 348,651 487,652 L 720,656 720,711 C 720,782 708,834 683,869 658,903 618,920 562,920 510,920 472,908 448,885 423,861 408,822 402,767 L 109,781 C 127,886 175,966 254,1021 332,1075 439,1102 574,1102 711,1102 816,1068 890,1001 964,934 1001,838 1001,714 L 1001,320 C 1001,259 1008,218 1022,195 1035,172 1058,160 1090,160 1111,160 1132,162 1152,166 L 1152,14 C 1135,10 1120,6 1107,3 1094,0 1080,-3 1067,-5 1054,-7 1040,-9 1025,-10 1010,-11 992,-12 972,-12 901,-12 849,5 816,40 782,75 762,126 755,193 L 749,193 C 670,51 552,-20 393,-20 Z M 720,501 L 576,499 C 511,496 464,489 437,478 410,466 389,448 375,424 360,400 353,368 353,328 353,277 365,239 389,214 412,189 444,176 483,176 527,176 567,188 604,212 640,236 668,269 689,312 710,354 720,399 720,446 L 720,501 Z"/>
- <glyph unicode="U" horiz-adv-x="1244" d="M 723,-20 C 529,-20 381,27 278,122 175,217 123,352 123,528 L 123,1409 418,1409 418,551 C 418,440 445,355 498,298 551,240 628,211 731,211 836,211 917,241 974,302 1031,362 1059,448 1059,561 L 1059,1409 1354,1409 1354,543 C 1354,364 1299,226 1189,128 1078,29 923,-20 723,-20 Z"/>
- <glyph unicode="T" horiz-adv-x="1245" d="M 773,1181 L 773,0 478,0 478,1181 23,1181 23,1409 1229,1409 1229,1181 773,1181 Z"/>
- <glyph unicode="S" horiz-adv-x="1244" d="M 1286,406 C 1286,268 1235,163 1133,90 1030,17 880,-20 682,-20 501,-20 360,12 257,76 154,140 88,237 59,367 L 344,414 C 363,339 401,285 457,252 513,218 591,201 690,201 896,201 999,264 999,389 999,429 987,462 964,488 940,514 907,536 864,553 821,570 738,591 616,616 511,641 437,661 396,676 355,691 317,708 284,729 251,749 222,773 199,802 176,831 158,864 145,903 132,942 125,986 125,1036 125,1163 173,1261 269,1329 364,1396 503,1430 686,1430 861,1430 992,1403 1080,1348 1167,1293 1224,1203 1249,1077 L 963,1038 C 948,1099 919,1144 874,1175 829,1206 764,1221 680,1221 501,1221 412,1165 412,1053 412,1016 422,986 441,963 460,940 488,920 525,904 562,887 638,867 752,842 887,813 984,787 1043,763 1101,738 1147,710 1181,678 1215,645 1241,607 1259,562 1277,517 1286,465 1286,406 Z"/>
- <glyph unicode="N" horiz-adv-x="1218" d="M 995,0 L 381,1085 C 393,980 399,895 399,831 L 399,0 137,0 137,1409 474,1409 1097,315 C 1085,416 1079,507 1079,590 L 1079,1409 1341,1409 1341,0 995,0 Z"/>
- <glyph unicode="J" horiz-adv-x="980" d="M 524,-20 C 378,-20 266,12 188,75 109,138 57,241 31,382 L 324,425 C 336,352 358,299 391,264 424,229 469,211 526,211 585,211 629,231 660,270 690,309 705,366 705,439 L 705,1178 424,1178 424,1409 999,1409 999,446 C 999,299 957,185 874,103 791,21 674,-20 524,-20 Z"/>
- <glyph unicode="I" horiz-adv-x="319" d="M 137,0 L 137,1409 432,1409 432,0 137,0 Z"/>
- <glyph unicode="G" horiz-adv-x="1404" d="M 806,211 C 883,211 957,222 1029,245 1101,267 1157,295 1196,330 L 1196,525 852,525 852,743 1466,743 1466,225 C 1391,148 1294,88 1175,45 1055,2 929,-20 798,-20 569,-20 392,44 269,171 146,298 84,478 84,711 84,943 146,1121 270,1245 394,1368 572,1430 805,1430 1136,1430 1346,1308 1436,1063 L 1164,981 C 1135,1052 1089,1106 1026,1143 963,1180 890,1198 805,1198 666,1198 561,1156 489,1072 417,988 381,868 381,711 381,552 418,429 493,342 567,255 671,211 806,211 Z"/>
- <glyph unicode="C" horiz-adv-x="1351" d="M 795,212 C 973,212 1097,301 1166,480 L 1423,383 C 1368,247 1287,146 1180,80 1073,13 944,-20 795,-20 568,-20 393,44 270,173 146,301 84,480 84,711 84,942 144,1120 263,1244 382,1368 555,1430 782,1430 947,1430 1082,1397 1186,1331 1290,1264 1363,1167 1405,1038 L 1145,967 C 1123,1038 1080,1094 1016,1136 951,1177 875,1198 788,1198 655,1198 554,1157 485,1074 416,991 381,870 381,711 381,549 417,425 488,340 559,255 661,212 795,212 Z"/>
- <glyph unicode="1" horiz-adv-x="980" d="M 129,0 L 129,209 478,209 478,1170 140,959 140,1180 493,1409 759,1409 759,209 1082,209 1082,0 129,0 Z"/>
- <glyph unicode=" " horiz-adv-x="556"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="Graphic">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="9188" y="4640" width="2066" height="3618"/>
- <path fill="rgb(62,62,63)" stroke="none" d="M 10221,8249 L 10994,8249 C 11134,8249 11247,8131 11247,7985 L 11247,4913 C 11247,4767 11134,4650 10994,4650 L 9447,4650 C 9307,4650 9194,4767 9194,4913 L 9194,7985 C 9194,8131 9307,8249 9447,8249 L 10221,8249 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 10221,7596 L 9194,7596 9194,7353 11247,7353 11247,7596 10221,7596 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 10221,7044 L 9194,7044 9194,6802 11247,6802 11247,7044 10221,7044 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 10221,6492 L 9194,6492 9194,6250 11247,6250 11247,6492 10221,6492 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 10221,5941 L 9194,5941 9194,5698 11247,5698 11247,5941 10221,5941 Z"/>
- <path fill="rgb(250,203,27)" stroke="none" d="M 9801,5177 C 9801,5212 9793,5242 9777,5272 9761,5303 9740,5325 9712,5342 9683,5360 9656,5368 9623,5368 9590,5368 9562,5360 9534,5342 9505,5325 9485,5303 9469,5272 9452,5242 9445,5212 9445,5177 9445,5141 9452,5111 9469,5081 9485,5050 9505,5029 9534,5011 9562,4993 9590,4985 9623,4985 9656,4985 9683,4993 9712,5011 9740,5029 9761,5050 9777,5081 9793,5111 9801,5141 9801,5177 L 9801,5177 Z"/>
- <path fill="rgb(249,145,52)" stroke="none" d="M 10391,5177 C 10391,5212 10384,5242 10368,5272 10351,5303 10331,5325 10302,5342 10274,5360 10246,5368 10213,5368 10181,5368 10153,5360 10124,5342 10096,5325 10075,5303 10059,5272 10043,5242 10035,5212 10035,5177 10035,5141 10043,5111 10059,5081 10075,5050 10096,5029 10124,5011 10153,4993 10181,4985 10213,4985 10246,4985 10274,4993 10302,5011 10331,5029 10351,5050 10368,5081 10384,5111 10391,5141 10391,5177 L 10391,5177 Z"/>
- <path fill="rgb(250,85,85)" stroke="none" d="M 10982,5177 C 10982,5212 10974,5242 10958,5272 10942,5303 10921,5325 10893,5342 10864,5360 10837,5368 10804,5368 10771,5368 10743,5360 10715,5342 10686,5325 10666,5303 10650,5272 10633,5242 10626,5212 10626,5177 10626,5141 10633,5111 10650,5081 10666,5050 10686,5029 10715,5011 10743,4993 10771,4985 10804,4985 10837,4985 10864,4993 10893,5011 10921,5029 10942,5050 10958,5081 10974,5111 10982,5141 10982,5177 L 10982,5177 Z"/>
- </g>
- </g>
- <g class="Graphic">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="514" y="506" width="2066" height="3618"/>
- <path fill="rgb(62,62,63)" stroke="none" d="M 1547,4115 L 2320,4115 C 2460,4115 2573,3997 2573,3851 L 2573,779 C 2573,633 2460,516 2320,516 L 773,516 C 633,516 520,633 520,779 L 520,3851 C 520,3997 633,4115 773,4115 L 1547,4115 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 1547,3462 L 520,3462 520,3219 2573,3219 2573,3462 1547,3462 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 1547,2910 L 520,2910 520,2668 2573,2668 2573,2910 1547,2910 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 1547,2358 L 520,2358 520,2116 2573,2116 2573,2358 1547,2358 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 1547,1807 L 520,1807 520,1564 2573,1564 2573,1807 1547,1807 Z"/>
- <path fill="rgb(250,203,27)" stroke="none" d="M 1127,1043 C 1127,1078 1119,1108 1103,1138 1087,1169 1066,1191 1038,1208 1009,1226 982,1234 949,1234 916,1234 888,1226 860,1208 831,1191 811,1169 795,1138 778,1108 771,1078 771,1043 771,1007 778,977 795,947 811,916 831,895 860,877 888,859 916,851 949,851 982,851 1009,859 1038,877 1066,895 1087,916 1103,947 1119,977 1127,1007 1127,1043 L 1127,1043 Z"/>
- <path fill="rgb(249,145,52)" stroke="none" d="M 1717,1043 C 1717,1078 1710,1108 1694,1138 1677,1169 1657,1191 1628,1208 1600,1226 1572,1234 1539,1234 1507,1234 1479,1226 1450,1208 1422,1191 1401,1169 1385,1138 1369,1108 1361,1078 1361,1043 1361,1007 1369,977 1385,947 1401,916 1422,895 1450,877 1479,859 1507,851 1539,851 1572,851 1600,859 1628,877 1657,895 1677,916 1694,947 1710,977 1717,1007 1717,1043 L 1717,1043 Z"/>
- <path fill="rgb(250,85,85)" stroke="none" d="M 2308,1043 C 2308,1078 2300,1108 2284,1138 2268,1169 2247,1191 2219,1208 2190,1226 2163,1234 2130,1234 2097,1234 2069,1226 2041,1208 2012,1191 1992,1169 1976,1138 1959,1108 1952,1078 1952,1043 1952,1007 1959,977 1976,947 1992,916 2012,895 2041,877 2069,859 2097,851 2130,851 2163,851 2190,859 2219,877 2247,895 2268,916 2284,947 2300,977 2308,1007 2308,1043 L 2308,1043 Z"/>
- </g>
- </g>
- <g class="Graphic">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="514" y="4640" width="2066" height="3618"/>
- <path fill="rgb(62,62,63)" stroke="none" d="M 1547,8249 L 2320,8249 C 2460,8249 2573,8131 2573,7985 L 2573,4913 C 2573,4767 2460,4650 2320,4650 L 773,4650 C 633,4650 520,4767 520,4913 L 520,7985 C 520,8131 633,8249 773,8249 L 1547,8249 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 1547,7596 L 520,7596 520,7353 2573,7353 2573,7596 1547,7596 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 1547,7044 L 520,7044 520,6802 2573,6802 2573,7044 1547,7044 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 1547,6492 L 520,6492 520,6250 2573,6250 2573,6492 1547,6492 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 1547,5941 L 520,5941 520,5698 2573,5698 2573,5941 1547,5941 Z"/>
- <path fill="rgb(250,203,27)" stroke="none" d="M 1127,5177 C 1127,5212 1119,5242 1103,5272 1087,5303 1066,5325 1038,5342 1009,5360 982,5368 949,5368 916,5368 888,5360 860,5342 831,5325 811,5303 795,5272 778,5242 771,5212 771,5177 771,5141 778,5111 795,5081 811,5050 831,5029 860,5011 888,4993 916,4985 949,4985 982,4985 1009,4993 1038,5011 1066,5029 1087,5050 1103,5081 1119,5111 1127,5141 1127,5177 L 1127,5177 Z"/>
- <path fill="rgb(249,145,52)" stroke="none" d="M 1717,5177 C 1717,5212 1710,5242 1694,5272 1677,5303 1657,5325 1628,5342 1600,5360 1572,5368 1539,5368 1507,5368 1479,5360 1450,5342 1422,5325 1401,5303 1385,5272 1369,5242 1361,5212 1361,5177 1361,5141 1369,5111 1385,5081 1401,5050 1422,5029 1450,5011 1479,4993 1507,4985 1539,4985 1572,4985 1600,4993 1628,5011 1657,5029 1677,5050 1694,5081 1710,5111 1717,5141 1717,5177 L 1717,5177 Z"/>
- <path fill="rgb(250,85,85)" stroke="none" d="M 2308,5177 C 2308,5212 2300,5242 2284,5272 2268,5303 2247,5325 2219,5342 2190,5360 2163,5368 2130,5368 2097,5368 2069,5360 2041,5342 2012,5325 1992,5303 1976,5272 1959,5242 1952,5212 1952,5177 1952,5141 1959,5111 1976,5081 1992,5050 2012,5029 2041,5011 2069,4993 2097,4985 2130,4985 2163,4985 2190,4993 2219,5011 2247,5029 2268,5050 2284,5081 2300,5111 2308,5141 2308,5177 L 2308,5177 Z"/>
- </g>
- </g>
- <g class="Graphic">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="13747" y="506" width="2066" height="3618"/>
- <path fill="rgb(62,62,63)" stroke="none" d="M 14780,4115 L 15553,4115 C 15693,4115 15806,3997 15806,3851 L 15806,779 C 15806,633 15693,516 15553,516 L 14006,516 C 13866,516 13753,633 13753,779 L 13753,3851 C 13753,3997 13866,4115 14006,4115 L 14780,4115 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 14780,3462 L 13753,3462 13753,3219 15806,3219 15806,3462 14780,3462 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 14780,2910 L 13753,2910 13753,2668 15806,2668 15806,2910 14780,2910 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 14780,2358 L 13753,2358 13753,2116 15806,2116 15806,2358 14780,2358 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 14780,1807 L 13753,1807 13753,1564 15806,1564 15806,1807 14780,1807 Z"/>
- <path fill="rgb(250,203,27)" stroke="none" d="M 14360,1043 C 14360,1078 14352,1108 14336,1138 14320,1169 14299,1191 14271,1208 14242,1226 14215,1234 14182,1234 14149,1234 14121,1226 14093,1208 14064,1191 14044,1169 14028,1138 14011,1108 14004,1078 14004,1043 14004,1007 14011,977 14028,947 14044,916 14064,895 14093,877 14121,859 14149,851 14182,851 14215,851 14242,859 14271,877 14299,895 14320,916 14336,947 14352,977 14360,1007 14360,1043 L 14360,1043 Z"/>
- <path fill="rgb(249,145,52)" stroke="none" d="M 14950,1043 C 14950,1078 14943,1108 14927,1138 14910,1169 14890,1191 14861,1208 14833,1226 14805,1234 14772,1234 14740,1234 14712,1226 14683,1208 14655,1191 14634,1169 14618,1138 14602,1108 14594,1078 14594,1043 14594,1007 14602,977 14618,947 14634,916 14655,895 14683,877 14712,859 14740,851 14772,851 14805,851 14833,859 14861,877 14890,895 14910,916 14927,947 14943,977 14950,1007 14950,1043 L 14950,1043 Z"/>
- <path fill="rgb(250,85,85)" stroke="none" d="M 15541,1043 C 15541,1078 15533,1108 15517,1138 15501,1169 15480,1191 15452,1208 15423,1226 15396,1234 15363,1234 15330,1234 15302,1226 15274,1208 15245,1191 15225,1169 15209,1138 15192,1108 15185,1078 15185,1043 15185,1007 15192,977 15209,947 15225,916 15245,895 15274,877 15302,859 15330,851 15363,851 15396,851 15423,859 15452,877 15480,895 15501,916 15517,947 15533,977 15541,1007 15541,1043 L 15541,1043 Z"/>
- </g>
- </g>
- <g class="Graphic">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="13741" y="8598" width="2066" height="3618"/>
- <path fill="rgb(62,62,63)" stroke="none" d="M 14774,12207 L 15547,12207 C 15687,12207 15800,12089 15800,11943 L 15800,8871 C 15800,8725 15687,8608 15547,8608 L 14000,8608 C 13860,8608 13747,8725 13747,8871 L 13747,11943 C 13747,12089 13860,12207 14000,12207 L 14774,12207 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 14774,11554 L 13747,11554 13747,11311 15800,11311 15800,11554 14774,11554 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 14774,11002 L 13747,11002 13747,10760 15800,10760 15800,11002 14774,11002 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 14774,10450 L 13747,10450 13747,10208 15800,10208 15800,10450 14774,10450 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 14774,9899 L 13747,9899 13747,9656 15800,9656 15800,9899 14774,9899 Z"/>
- <path fill="rgb(250,203,27)" stroke="none" d="M 14354,9135 C 14354,9170 14346,9200 14330,9230 14314,9261 14293,9283 14265,9300 14236,9318 14209,9326 14176,9326 14143,9326 14115,9318 14087,9300 14058,9283 14038,9261 14022,9230 14005,9200 13998,9170 13998,9135 13998,9099 14005,9069 14022,9039 14038,9008 14058,8987 14087,8969 14115,8951 14143,8943 14176,8943 14209,8943 14236,8951 14265,8969 14293,8987 14314,9008 14330,9039 14346,9069 14354,9099 14354,9135 L 14354,9135 Z"/>
- <path fill="rgb(249,145,52)" stroke="none" d="M 14944,9135 C 14944,9170 14937,9200 14921,9230 14904,9261 14884,9283 14855,9300 14827,9318 14799,9326 14766,9326 14734,9326 14706,9318 14677,9300 14649,9283 14628,9261 14612,9230 14596,9200 14588,9170 14588,9135 14588,9099 14596,9069 14612,9039 14628,9008 14649,8987 14677,8969 14706,8951 14734,8943 14766,8943 14799,8943 14827,8951 14855,8969 14884,8987 14904,9008 14921,9039 14937,9069 14944,9099 14944,9135 L 14944,9135 Z"/>
- <path fill="rgb(250,85,85)" stroke="none" d="M 15535,9135 C 15535,9170 15527,9200 15511,9230 15495,9261 15474,9283 15446,9300 15417,9318 15390,9326 15357,9326 15324,9326 15296,9318 15268,9300 15239,9283 15219,9261 15203,9230 15186,9200 15179,9170 15179,9135 15179,9099 15186,9069 15203,9039 15219,9008 15239,8987 15268,8969 15296,8951 15324,8943 15357,8943 15390,8943 15417,8951 15446,8969 15474,8987 15495,9008 15511,9039 15527,9069 15535,9099 15535,9135 L 15535,9135 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="14732" y="4082" width="89" height="4558"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="81" stroke-linejoin="round" d="M 14779,4123 L 14779,6361 14773,6361 14773,8598"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="1505" y="4082" width="83" height="600"/>
- <path fill="none" stroke="rgb(128,128,128)" stroke-width="81" stroke-linejoin="round" d="M 1546,4123 L 1546,4640"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="2538" y="6407" width="6692" height="83"/>
- <path fill="none" stroke="rgb(188,49,46)" stroke-width="81" stroke-linejoin="round" d="M 2579,6448 L 9188,6448"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="11212" y="6407" width="2571" height="4041"/>
- <path fill="none" stroke="rgb(188,49,46)" stroke-width="81" stroke-linejoin="round" d="M 11253,6448 L 11973,6448 11973,10406 13741,10406"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="11212" y="2273" width="2577" height="4217"/>
- <path fill="none" stroke="rgb(188,49,46)" stroke-width="81" stroke-linejoin="round" d="M 11253,6448 L 11973,6448 11973,2314 13747,2314"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="1505" y="8216" width="2426" height="2231"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="81" stroke-linejoin="round" d="M 1546,8257 L 1546,10405 3889,10405"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="7913" y="8216" width="2349" height="2231"/>
- <path fill="none" stroke="rgb(52,101,164)" stroke-width="81" stroke-linejoin="round" d="M 7954,10405 L 10220,10405 10220,8257"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="488" y="3366" width="2101" height="1200"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="738" y="3876"><tspan fill="rgb(255,255,255)" stroke="none">Jenkins</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="488" y="7045" width="2101" height="1674"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="747" y="7555"><tspan fill="rgb(255,255,255)" stroke="none">Jenkins</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="1005" y="8029"><tspan fill="rgb(255,255,255)" stroke="none">slave</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="13806" y="3424" width="2001" height="726"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="14512" y="3934"><tspan fill="rgb(255,255,255)" stroke="none">TG</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="13806" y="11490" width="2001" height="726"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="14383" y="12000"><tspan fill="rgb(255,255,255)" stroke="none">SUT</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="9188" y="5546" width="2101" height="2622"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="9756" y="6056"><tspan fill="rgb(255,255,255)" stroke="none">CSIT</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="9743" y="6530"><tspan fill="rgb(255,255,255)" stroke="none">shim </tspan></tspan><tspan class="TextPosition" x="9980" y="7004"><tspan fill="rgb(255,255,255)" stroke="none">on</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="9682" y="7478"><tspan fill="rgb(255,255,255)" stroke="none">every</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="9792" y="7952"><tspan fill="rgb(255,255,255)" stroke="none">host</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="Graphic">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="3889" y="8597" width="2066" height="3618"/>
- <path fill="rgb(62,62,63)" stroke="none" d="M 4922,12206 L 5695,12206 C 5835,12206 5948,12088 5948,11942 L 5948,8870 C 5948,8724 5835,8607 5695,8607 L 4148,8607 C 4008,8607 3895,8724 3895,8870 L 3895,11942 C 3895,12088 4008,12206 4148,12206 L 4922,12206 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 4922,11553 L 3895,11553 3895,11310 5948,11310 5948,11553 4922,11553 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 4922,11001 L 3895,11001 3895,10759 5948,10759 5948,11001 4922,11001 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 4922,10449 L 3895,10449 3895,10207 5948,10207 5948,10449 4922,10449 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 4922,9898 L 3895,9898 3895,9655 5948,9655 5948,9898 4922,9898 Z"/>
- <path fill="rgb(250,203,27)" stroke="none" d="M 4502,9134 C 4502,9169 4494,9199 4478,9229 4462,9260 4441,9282 4413,9299 4384,9317 4357,9325 4324,9325 4291,9325 4263,9317 4235,9299 4206,9282 4186,9260 4170,9229 4153,9199 4146,9169 4146,9134 4146,9098 4153,9068 4170,9038 4186,9007 4206,8986 4235,8968 4263,8950 4291,8942 4324,8942 4357,8942 4384,8950 4413,8968 4441,8986 4462,9007 4478,9038 4494,9068 4502,9098 4502,9134 L 4502,9134 Z"/>
- <path fill="rgb(249,145,52)" stroke="none" d="M 5092,9134 C 5092,9169 5085,9199 5069,9229 5052,9260 5032,9282 5003,9299 4975,9317 4947,9325 4914,9325 4882,9325 4854,9317 4825,9299 4797,9282 4776,9260 4760,9229 4744,9199 4736,9169 4736,9134 4736,9098 4744,9068 4760,9038 4776,9007 4797,8986 4825,8968 4854,8950 4882,8942 4914,8942 4947,8942 4975,8950 5003,8968 5032,8986 5052,9007 5069,9038 5085,9068 5092,9098 5092,9134 L 5092,9134 Z"/>
- <path fill="rgb(250,85,85)" stroke="none" d="M 5683,9134 C 5683,9169 5675,9199 5659,9229 5643,9260 5622,9282 5594,9299 5565,9317 5538,9325 5505,9325 5472,9325 5444,9317 5416,9299 5387,9282 5367,9260 5351,9229 5334,9199 5327,9169 5327,9134 5327,9098 5334,9068 5351,9038 5367,9007 5387,8986 5416,8968 5444,8950 5472,8942 5505,8942 5538,8942 5565,8950 5594,8968 5622,8986 5643,9007 5659,9038 5675,9068 5683,9098 5683,9134 L 5683,9134 Z"/>
- </g>
- </g>
- <g class="Graphic">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="5889" y="8597" width="2066" height="3618"/>
- <path fill="rgb(62,62,63)" stroke="none" d="M 6922,12206 L 7695,12206 C 7835,12206 7948,12088 7948,11942 L 7948,8870 C 7948,8724 7835,8607 7695,8607 L 6148,8607 C 6008,8607 5895,8724 5895,8870 L 5895,11942 C 5895,12088 6008,12206 6148,12206 L 6922,12206 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 6922,11553 L 5895,11553 5895,11310 7948,11310 7948,11553 6922,11553 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 6922,11001 L 5895,11001 5895,10759 7948,10759 7948,11001 6922,11001 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 6922,10449 L 5895,10449 5895,10207 7948,10207 7948,10449 6922,10449 Z"/>
- <path fill="rgb(127,128,130)" stroke="none" d="M 6922,9898 L 5895,9898 5895,9655 7948,9655 7948,9898 6922,9898 Z"/>
- <path fill="rgb(250,203,27)" stroke="none" d="M 6502,9134 C 6502,9169 6494,9199 6478,9229 6462,9260 6441,9282 6413,9299 6384,9317 6357,9325 6324,9325 6291,9325 6263,9317 6235,9299 6206,9282 6186,9260 6170,9229 6153,9199 6146,9169 6146,9134 6146,9098 6153,9068 6170,9038 6186,9007 6206,8986 6235,8968 6263,8950 6291,8942 6324,8942 6357,8942 6384,8950 6413,8968 6441,8986 6462,9007 6478,9038 6494,9068 6502,9098 6502,9134 L 6502,9134 Z"/>
- <path fill="rgb(249,145,52)" stroke="none" d="M 7092,9134 C 7092,9169 7085,9199 7069,9229 7052,9260 7032,9282 7003,9299 6975,9317 6947,9325 6914,9325 6882,9325 6854,9317 6825,9299 6797,9282 6776,9260 6760,9229 6744,9199 6736,9169 6736,9134 6736,9098 6744,9068 6760,9038 6776,9007 6797,8986 6825,8968 6854,8950 6882,8942 6914,8942 6947,8942 6975,8950 7003,8968 7032,8986 7052,9007 7069,9038 7085,9068 7092,9098 7092,9134 L 7092,9134 Z"/>
- <path fill="rgb(250,85,85)" stroke="none" d="M 7683,9134 C 7683,9169 7675,9199 7659,9229 7643,9260 7622,9282 7594,9299 7565,9317 7538,9325 7505,9325 7472,9325 7444,9317 7416,9299 7387,9282 7367,9260 7351,9229 7334,9199 7327,9169 7327,9134 7327,9098 7334,9068 7351,9038 7367,9007 7387,8986 7416,8968 7444,8950 7472,8942 7505,8942 7538,8942 7565,8950 7594,8968 7622,8986 7643,9007 7659,9038 7675,9068 7683,9098 7683,9134 L 7683,9134 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="4288" y="11471" width="3153" height="726"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="700"><tspan class="TextPosition" x="5028" y="11981"><tspan fill="rgb(255,255,255)" stroke="none">Nomad1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="2540" y="5825" width="6601" height="726"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="4069" y="6335"><tspan fill="rgb(0,0,0)" stroke="none">SSH to known port</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="11774" y="4040" width="1901" height="2401"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="12024" y="4550"><tspan fill="rgb(0,0,0)" stroke="none">SSH or </tspan></tspan><tspan class="TextPosition" x="12024" y="5024"><tspan fill="rgb(0,0,0)" stroke="none">docker </tspan></tspan><tspan class="TextPosition" x="12024" y="5498"><tspan fill="rgb(0,0,0)" stroke="none">exec</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="12800" y="7300" width="2101" height="1401"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="13305" y="7810"><tspan fill="rgb(0,0,0)" stroke="none">Unique </tspan></tspan><tspan class="TextPosition" x="13165" y="8284"><tspan fill="rgb(0,0,0)" stroke="none">network </tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="8340" y="9840" width="2201" height="1301"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="8590" y="10350"><tspan fill="rgb(0,0,0)" stroke="none">Nomad1 </tspan></tspan><tspan class="TextPosition" x="8590" y="10824"><tspan fill="rgb(0,0,0)" stroke="none">bridge</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/.gitignore b/fdio.infra.ansible/.gitignore
index bed1e33b88..bed1e33b88 100644
--- a/resources/tools/testbed-setup/ansible/.gitignore
+++ b/fdio.infra.ansible/.gitignore
diff --git a/resources/tools/testbed-setup/ansible/cloud_topology.yaml b/fdio.infra.ansible/cloud_topology.yaml
index 083a3bd368..c62d3a7035 100644
--- a/resources/tools/testbed-setup/ansible/cloud_topology.yaml
+++ b/fdio.infra.ansible/cloud_topology.yaml
@@ -6,4 +6,3 @@
roles:
- role: topology
tags: topology
-
diff --git a/fdio.infra.ansible/dev.yaml b/fdio.infra.ansible/dev.yaml
new file mode 100644
index 0000000000..895cf518ec
--- /dev/null
+++ b/fdio.infra.ansible/dev.yaml
@@ -0,0 +1,18 @@
+---
+# file: dev.yaml
+
+- hosts: dev
+ remote_user: testuser
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: docker
+ tags: docker
diff --git a/fdio.infra.ansible/inventories/lf_inventory/group_vars/all.yaml b/fdio.infra.ansible/inventories/lf_inventory/group_vars/all.yaml
new file mode 100644
index 0000000000..719ef32625
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/group_vars/all.yaml
@@ -0,0 +1,2 @@
+---
+# file: lf_inventory/group_vars/all.yaml
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml
new file mode 100644
index 0000000000..b28cae11ff
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml
@@ -0,0 +1,88 @@
+---
+# file: host_vars/10.30.51.21.yaml
+
+hostname: "s21-nomad"
+inventory_ipmi_hostname: "10.30.50.21"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_server_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_server_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: true
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+ fingerprint.network.disallow_link_local: true
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.26"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.26:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settings.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.26"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker daemon settings.
+docker_daemon:
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ansible_hostname}}"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml
new file mode 100644
index 0000000000..8d7223495b
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml
@@ -0,0 +1,88 @@
+---
+# file: host_vars/10.30.51.22.yaml
+
+hostname: "s22-nomad"
+inventory_ipmi_hostname: "10.30.50.22"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_server_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_server_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: true
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+ fingerprint.network.disallow_link_local: true
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.26"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.26:4647"
+ - "10.30.51.25:4647"
+
+# Consul settigs.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_1_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_1_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.26"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker daemon settings.
+docker_daemon:
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ansible_hostname}}"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.23.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.23.yaml
new file mode 100644
index 0000000000..8c3afaf74c
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.23.yaml
@@ -0,0 +1,92 @@
+---
+# file: host_vars/10.30.51.23.yaml
+
+hostname: "s23-nomad"
+inventory_ipmi_hostname: "10.30.50.23"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_server_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_server_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "both"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: true
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+ fingerprint.network.disallow_link_local: true
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.26"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.26:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+nomad_volumes:
+ - name: "prod-volume-data1-1"
+ path: "/data"
+ read_only: false
+
+# Consul settings.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: true
+consul_datacenter: "yul1"
+consul_node_role: "both"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.26"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker daemon settings.
+docker_daemon:
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ansible_hostname}}"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml
new file mode 100644
index 0000000000..cb65e81c26
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml
@@ -0,0 +1,92 @@
+---
+# file: host_vars/10.30.51.24.yaml
+
+hostname: "s24-nomad"
+inventory_ipmi_hostname: "10.30.50.24"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_server_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_server_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "both"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: true
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+ fingerprint.network.disallow_link_local: true
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.26"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.26:4647"
+ - "10.30.51.25:4647"
+nomad_volumes:
+ - name: "prod-volume-data1-1"
+ path: "/data"
+ read_only: false
+
+# Consul settigs.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_1_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_1_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: true
+consul_datacenter: "yul1"
+consul_node_role: "both"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.26"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker daemon settings.
+docker_daemon:
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ansible_hostname}}"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml
new file mode 100644
index 0000000000..20e45a90ea
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml
@@ -0,0 +1,92 @@
+---
+# file: host_vars/10.30.51.25.yaml
+
+hostname: "s25-nomad"
+inventory_ipmi_hostname: "10.30.50.25"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_server_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_server_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "both"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: true
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+ fingerprint.network.disallow_link_local: true
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.26"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.26:4647"
+nomad_volumes:
+ - name: "prod-volume-data1-1"
+ path: "/data"
+ read_only: false
+
+# Consul settigs.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_2_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_2_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: true
+consul_datacenter: "yul1"
+consul_node_role: "both"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.26"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker daemon settings.
+docker_daemon:
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ansible_hostname}}"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml
new file mode 100644
index 0000000000..0d71009ede
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml
@@ -0,0 +1,92 @@
+---
+# file: host_vars/10.30.51.26.yaml
+
+hostname: "s26-nomad"
+inventory_ipmi_hostname: "10.30.50.26"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_server_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_server_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "both"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: true
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+ fingerprint.network.disallow_link_local: true
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+nomad_volumes:
+ - name: "prod-volume-data1-1"
+ path: "/data"
+ read_only: false
+
+# Consul settigs.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_3_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_3_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: true
+consul_datacenter: "yul1"
+consul_node_role: "both"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker daemon settings.
+docker_daemon:
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ansible_hostname}}"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.27.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.27.yaml
new file mode 100644
index 0000000000..745686c31e
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.27.yaml
@@ -0,0 +1,86 @@
+---
+# file: host_vars/10.30.51.27.yaml
+
+hostname: "s27-nomad"
+inventory_cimc_hostname: "10.30.50.27"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_client_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_client_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settings.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_agent_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker daemon settings.
+docker_daemon:
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ansible_hostname}}"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
new file mode 100644
index 0000000000..5a3c8896fc
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
@@ -0,0 +1,86 @@
+---
+# file: host_vars/10.30.51.28.yaml
+
+hostname: "s28-nomad"
+inventory_cimc_hostname: "10.30.50.28"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_client_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_client_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settings.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_agent_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker daemon settings.
+docker_daemon:
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ansible_hostname}}"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
new file mode 100644
index 0000000000..543f557d6e
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
@@ -0,0 +1,97 @@
+---
+# file: host_vars/10.30.51.30.yaml
+
+hostname: "s30-t15-sut1"
+grub:
+ hugepagesz: "2M"
+ hugepages: 32768
+ iommu: "on"
+ vfio.enable_unsafe_noiommu_mode: 1
+inventory_ipmi_hostname: "10.30.50.30"
+vfs_data_file: "csit-initialize-vfs-spr.sh"
+cpu_microarchitecture: "sapphirerapids"
+
+intel_800_matrix: "dpdk22.03"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_client_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_client_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "csit"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settigs.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker settings.
+docker_daemon:
+ default-shm-size: "1073741824"
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ ansible_hostname }}"]
+ host: ["172.17.0.1:/var/run/docker.sock"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.31.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.31.yaml
new file mode 100644
index 0000000000..1c80c5d4a6
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.31.yaml
@@ -0,0 +1,97 @@
+---
+# file: host_vars/10.30.51.31.yaml
+
+hostname: "s31-t16-sut1"
+grub:
+ hugepagesz: "2M"
+ hugepages: 32768
+ iommu: "on"
+ vfio.enable_unsafe_noiommu_mode: 1
+inventory_ipmi_hostname: "10.30.50.31"
+vfs_data_file: "csit-initialize-vfs-spr.sh"
+cpu_microarchitecture: "sapphirerapids"
+
+intel_800_matrix: "dpdk22.03"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_client_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_client_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "csit"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settigs.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker settings.
+docker_daemon:
+ default-shm-size: "1073741824"
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ ansible_hostname }}"]
+ host: ["172.17.0.1:/var/run/docker.sock"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml
new file mode 100644
index 0000000000..f7d9c092e5
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml
@@ -0,0 +1,38 @@
+---
+# file: host_vars/10.30.51.32.yaml
+
+hostname: "s32-t31-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=16 hugepagesz=2M hugepages=8192"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-19,21-39"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-19,21-39"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-19,21-39"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,20"
+ vm:
+ nr_hugepages: 8192
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.32"
+cpu_microarchitecture: "icelake"
+
+intel_800_matrix: "dpdk23.11"
+intel_qat_matrix: true
+
+kernel_version_by_distro:
+ ubuntu:
+ jammy:
+ - "5.15.0-72" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml
new file mode 100644
index 0000000000..c91d5e8d35
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml
@@ -0,0 +1,38 @@
+---
+# file: host_vars/10.30.51.33.yaml
+
+hostname: "s33-t31-sut2"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=16 hugepagesz=2M hugepages=8192"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-19,21-39"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-19,21-39"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-19,21-39"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,20"
+ vm:
+ nr_hugepages: 8192
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.33"
+cpu_microarchitecture: "icelake"
+
+intel_800_matrix: "dpdk23.11"
+intel_qat_matrix: true
+
+kernel_version_by_distro:
+ ubuntu:
+ jammy:
+ - "5.15.0-72" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml
new file mode 100644
index 0000000000..0c26db6084
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml
@@ -0,0 +1,38 @@
+---
+# file: host_vars/10.30.51.34.yaml
+
+hostname: "s34-t32-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=16 hugepagesz=2M hugepages=8192"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-19,21-39"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-19,21-39"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-19,21-39"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,20"
+ vm:
+ nr_hugepages: 8192
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.34"
+cpu_microarchitecture: "icelake"
+
+intel_800_matrix: "dpdk23.11"
+intel_qat_matrix: true
+
+kernel_version_by_distro:
+ ubuntu:
+ jammy:
+ - "5.15.0-72" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml
new file mode 100644
index 0000000000..d60b46c52a
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml
@@ -0,0 +1,38 @@
+---
+# file: host_vars/10.30.51.35.yaml
+
+hostname: "s35-t32-sut2"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=16 hugepagesz=2M hugepages=8192"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-19,21-39"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-19,21-39"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-19,21-39"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,20"
+ vm:
+ nr_hugepages: 8192
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.35"
+cpu_microarchitecture: "icelake"
+
+intel_800_matrix: "dpdk23.11"
+intel_qat_matrix: true
+
+kernel_version_by_distro:
+ ubuntu:
+ jammy:
+ - "5.15.0-72" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml
new file mode 100644
index 0000000000..1db367bd67
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml
@@ -0,0 +1,23 @@
+---
+# file: host_vars/10.30.51.36.yaml
+
+hostname: "s17-t33-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ iommu.passthrough: "1"
+ vfio.enable_unsafe_noiommu_mode: 1
+ isolcpus: "1-10,17-26,33-42,49-58"
+ nmi_watchdog: "0"
+ nohz_full: "1-10,17-26,33-42,49-58"
+ nosoftlockup: true
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-10,17-26,33-42,49-58"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,11-16,27-32,43-48,59-63"
+ vm:
+ nr_hugepages: 32768
+
+inventory_ipmi_hostname: "10.30.50.36"
+cpu_microarchitecture: "taishan"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
new file mode 100644
index 0000000000..7d3188251a
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
@@ -0,0 +1,23 @@
+---
+# file: host_vars/10.30.51.37.yaml
+
+hostname: "s18-t33-sut2"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ iommu.passthrough: "1"
+ vfio.enable_unsafe_noiommu_mode: 1
+ isolcpus: "1-10,17-26,33-42,49-58"
+ nmi_watchdog: "0"
+ nohz_full: "1-10,17-26,33-42,49-58"
+ nosoftlockup: true
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-10,17-26,33-42,49-58"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,11-16,27-32,43-48,59-63"
+ vm:
+ nr_hugepages: 32768
+
+inventory_ipmi_hostname: "10.30.50.37"
+cpu_microarchitecture: "taishan"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.38.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.38.yaml
new file mode 100644
index 0000000000..8b95603594
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.38.yaml
@@ -0,0 +1,20 @@
+---
+# file: host_vars/10.30.51.38.yaml
+
+hostname: "fdio-marvell-dev"
+inventory_ipmi_hostname: "10.30.50.38"
+cpu_microarchitecture: "thunderx"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml
new file mode 100644
index 0000000000..3b9b63dfd0
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml
@@ -0,0 +1,33 @@
+---
+# file: host_vars/10.30.51.49.yaml
+
+hostname: "s19-t33t211-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=16384"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,28,56,84"
+ vm:
+ nr_hugepages: 16384
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.46"
+cpu_microarchitecture: "skylake"
+docker_tg: true
+
+intel_700_matrix: "dpdk22.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
new file mode 100644
index 0000000000..117c6d2c31
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
@@ -0,0 +1,96 @@
+---
+# file: host_vars/10.30.51.50.yaml
+
+hostname: "s1-t11-sut1"
+grub:
+ hugepagesz: "2M"
+ hugepages: 32768
+ iommu: "on"
+ vfio.enable_unsafe_noiommu_mode: 1
+inventory_ipmi_hostname: "10.30.50.47"
+cpu_microarchitecture: "skylake"
+
+intel_800_matrix: "dpdk22.03"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_client_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_client_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "csit"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settigs.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_agent_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker settings.
+docker_daemon:
+ default-shm-size: "1073741824"
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ ansible_hostname }}"]
+ host: ["172.17.0.1:/var/run/docker.sock"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
new file mode 100644
index 0000000000..875b759675
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
@@ -0,0 +1,96 @@
+---
+# file: host_vars/10.30.51.51.yaml
+
+hostname: "s2-t12-sut1"
+grub:
+ hugepagesz: "2M"
+ hugepages: 32768
+ iommu: "on"
+ vfio.enable_unsafe_noiommu_mode: 1
+inventory_ipmi_hostname: "10.30.50.48"
+cpu_microarchitecture: "skylake"
+
+intel_800_matrix: "dpdk22.03"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_client_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_client_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "csit"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settigs.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_agent_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker settings.
+docker_daemon:
+ default-shm-size: "1073741824"
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ ansible_hostname }}"]
+ host: ["172.17.0.1:/var/run/docker.sock"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
new file mode 100644
index 0000000000..8e8d3d39c2
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
@@ -0,0 +1,74 @@
+---
+# file: host_vars/10.30.51.52.yaml
+
+hostname: "s52-t21-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on,sm_on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.52"
+cpu_microarchitecture: "sapphirerapids"
+
+mellanox_matrix: "dpdk23.11"
+intel_dsa_matrix: true
+intel_qat_matrix: true
+
+kernel_version_by_distro:
+ ubuntu:
+ jammy:
+ - "5.15.0-72"
+
+docker_sut: true
+docker_volumes:
+ - source: "/usr/bin/ofed_info"
+ target: "/usr/bin/ofed_info"
+ - source: "/dev/hugepages"
+ target: "/dev/hugepages"
+ - source: "/dev/vfio"
+ target: "/dev/vfio"
+ - source: "/etc/sudoers"
+ target: "/etc/sudoers"
+ - source: "/dev/null"
+ target: "/etc/sysctl.d/80-vpp.conf"
+ - source: "/opt/boot/"
+ target: "/opt/boot/"
+ - source: "/usr/bin/iperf3"
+ target: "/usr/bin/iperf3"
+ - source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
+ target: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
+ - source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0.0.0"
+ target: "/usr/lib/x86_64-linux-gnu/libiperf.so.0.0.0"
+ - source: "/var/run/docker.sock"
+ target: "/var/run/docker.sock"
+ - source: "/usr/lib/firmware/"
+ target: "/usr/lib/firmware/"
+ - source: "/usr/local/bin/adf_ctl"
+ target: "/usr/local/bin/adf_ctl"
+ - source: "/etc/4xxx_dev0.conf"
+ target: "/etc/4xxx_dev0.conf"
+ - source: "/etc/4xxx_dev1.conf"
+ target: "/etc/4xxx_dev1.conf"
+ - source: "/etc/4xxx_dev2.conf"
+ target: "/etc/4xxx_dev2.conf"
+ - source: "/etc/4xxx_dev3.conf"
+ target: "/etc/4xxx_dev3.conf" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
new file mode 100644
index 0000000000..ce07968323
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
@@ -0,0 +1,65 @@
+---
+# file: host_vars/10.30.51.53.yaml
+
+hostname: "s53-t21-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on,sm_on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.53"
+cpu_microarchitecture: "sapphirerapids"
+
+mellanox_matrix: "dpdk23.07"
+intel_dsa_matrix: true
+intel_qat_matrix: true
+
+docker_tg: true
+docker_volumes:
+ - source: "/usr/bin/ofed_info"
+ target: "/usr/bin/ofed_info"
+ - source: "/dev/hugepages"
+ target: "/dev/hugepages"
+ - source: "/dev/vfio"
+ target: "/dev/vfio"
+ - source: "/etc/sudoers"
+ target: "/etc/sudoers"
+ - source: "/opt/"
+ target: "/opt/"
+ - source: "/usr/bin/iperf3"
+ target: "/usr/bin/iperf3"
+ - source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
+ target: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
+ - source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0.0.0"
+ target: "/usr/lib/x86_64-linux-gnu/libiperf.so.0.0.0"
+ - source: "/usr/lib/firmware/"
+ target: "/usr/lib/firmware/"
+ - source: "/usr/local/bin/adf_ctl"
+ target: "/usr/local/bin/adf_ctl"
+ - source: "/etc/4xxx_dev0.conf"
+ target: "/etc/4xxx_dev0.conf"
+ - source: "/etc/4xxx_dev1.conf"
+ target: "/etc/4xxx_dev1.conf"
+ - source: "/etc/4xxx_dev2.conf"
+ target: "/etc/4xxx_dev2.conf"
+ - source: "/etc/4xxx_dev3.conf"
+ target: "/etc/4xxx_dev3.conf" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
new file mode 100644
index 0000000000..1fd8edd5dd
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
@@ -0,0 +1,67 @@
+---
+# file: host_vars/10.30.51.54.yaml
+
+hostname: "s54-t22-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on,sm_on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.54"
+cpu_microarchitecture: "sapphirerapids"
+
+intel_800_matrix: "dpdk23.11"
+intel_dsa_matrix: true
+intel_qat_matrix: true
+
+docker_sut: true
+docker_volumes:
+ - source: "/dev/hugepages"
+ target: "/dev/hugepages"
+ - source: "/dev/vfio"
+ target: "/dev/vfio"
+ - source: "/etc/sudoers"
+ target: "/etc/sudoers"
+ - source: "/dev/null"
+ target: "/etc/sysctl.d/80-vpp.conf"
+ - source: "/opt/boot/"
+ target: "/opt/boot/"
+ - source: "/usr/bin/iperf3"
+ target: "/usr/bin/iperf3"
+ - source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
+ target: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
+ - source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0.0.0"
+ target: "/usr/lib/x86_64-linux-gnu/libiperf.so.0.0.0"
+ - source: "/var/run/docker.sock"
+ target: "/var/run/docker.sock"
+ - source: "/usr/lib/firmware/"
+ target: "/usr/lib/firmware/"
+ - source: "/usr/local/bin/adf_ctl"
+ target: "/usr/local/bin/adf_ctl"
+ - source: "/etc/4xxx_dev0.conf"
+ target: "/etc/4xxx_dev0.conf"
+ - source: "/etc/4xxx_dev1.conf"
+ target: "/etc/4xxx_dev1.conf"
+ - source: "/etc/4xxx_dev2.conf"
+ target: "/etc/4xxx_dev2.conf"
+ - source: "/etc/4xxx_dev3.conf"
+ target: "/etc/4xxx_dev3.conf" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
new file mode 100644
index 0000000000..1b9f9a56d3
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
@@ -0,0 +1,63 @@
+---
+# file: host_vars/10.30.51.55.yaml
+
+hostname: "s55-t22-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on,sm_on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.55"
+cpu_microarchitecture: "sapphirerapids"
+
+intel_800_matrix: "dpdk22.07"
+intel_dsa_matrix: true
+intel_qat_matrix: true
+
+docker_tg: true
+docker_volumes:
+ - source: "/dev/hugepages"
+ target: "/dev/hugepages"
+ - source: "/dev/vfio"
+ target: "/dev/vfio"
+ - source: "/etc/sudoers"
+ target: "/etc/sudoers"
+ - source: "/opt/"
+ target: "/opt/"
+ - source: "/usr/bin/iperf3"
+ target: "/usr/bin/iperf3"
+ - source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
+ target: "/usr/lib/x86_64-linux-gnu/libiperf.so.0"
+ - source: "/usr/lib/x86_64-linux-gnu/libiperf.so.0.0.0"
+ target: "/usr/lib/x86_64-linux-gnu/libiperf.so.0.0.0"
+ - source: "/usr/lib/firmware/"
+ target: "/usr/lib/firmware/"
+ - source: "/usr/local/bin/adf_ctl"
+ target: "/usr/local/bin/adf_ctl"
+ - source: "/etc/4xxx_dev0.conf"
+ target: "/etc/4xxx_dev0.conf"
+ - source: "/etc/4xxx_dev1.conf"
+ target: "/etc/4xxx_dev1.conf"
+ - source: "/etc/4xxx_dev2.conf"
+ target: "/etc/4xxx_dev2.conf"
+ - source: "/etc/4xxx_dev3.conf"
+ target: "/etc/4xxx_dev3.conf" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml
new file mode 100644
index 0000000000..e8f5c55393
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml
@@ -0,0 +1,36 @@
+---
+# file: host_vars/10.30.51.56.yaml
+
+hostname: "s56-t23-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on,sm_on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.56"
+cpu_microarchitecture: "sapphirerapids"
+docker_sut: true
+
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
+intel_dsa_matrix: true
+intel_qat_matrix: true \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
new file mode 100644
index 0000000000..03817cdef9
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
@@ -0,0 +1,36 @@
+---
+# file: host_vars/10.30.51.57.yaml
+
+hostname: "s57-t23-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on,sm_on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.57"
+cpu_microarchitecture: "sapphirerapids"
+docker_tg: true
+
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk23.07"
+intel_dsa_matrix: true
+intel_qat_matrix: true \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml
new file mode 100644
index 0000000000..ecfced1823
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml
@@ -0,0 +1,36 @@
+---
+# file: host_vars/10.30.51.58.yaml
+
+hostname: "s58-t24-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on,sm_on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.58"
+cpu_microarchitecture: "sapphirerapids"
+docker_sut: true
+
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
+intel_dsa_matrix: true
+#intel_qat_matrix: true \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
new file mode 100644
index 0000000000..5b9cd9b98c
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
@@ -0,0 +1,41 @@
+---
+# file: host_vars/10.30.51.59.yaml
+
+hostname: "s59-t24-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on,sm_on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.59"
+cpu_microarchitecture: "sapphirerapids"
+docker_tg: true
+
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk23.07"
+intel_dsa_matrix: true
+#intel_qat_matrix: true
+
+kernel_version_by_distro:
+ ubuntu:
+ jammy:
+ - "5.15.0-72" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml
new file mode 100644
index 0000000000..3b5bb0be8a
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml
@@ -0,0 +1,42 @@
+---
+# file: host_vars/10.30.51.69.yaml
+
+hostname: "s27-t211-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ iommu.passthrough: "1"
+ isolcpus: "1-10,29-38"
+ nmi_watchdog: "0"
+ nohz_full: "1-10,29-38"
+ nosoftlockup: true
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-10,29-38"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,11-28,39-55"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.69"
+cpu_microarchitecture: "thunderx2"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+ - username: testuser
+ groups: [adm, sudo]
+ password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+
+intel_700_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml
new file mode 100644
index 0000000000..2337277144
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml
@@ -0,0 +1,98 @@
+---
+# file: host_vars/10.30.51.70.yaml
+
+hostname: "s70-t13-sut1"
+grub:
+ hugepagesz: "2M"
+ hugepages: 32768
+ iommu.passthrough: "1"
+inventory_ipmi_hostname: "10.30.50.70"
+vfs_data_file: "csit-initialize-vfs-alt.sh"
+cpu_microarchitecture: "altra"
+
+intel_700_matrix: "dpdk22.07"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDJIAgAKD47mDur3n5jeHXzId2uUFHKa5kBiF649YQsdBKeQyfMVysvN9immKSTvwo4BUlwqeKQq5aIWWpjKMJU2/WXe4WU1YVyKLYCAlbkYJ3WuIBKQ/fm2wb8M4oXtgkYb+wEr5RkP48WqtIo3Cm/L+1j6k5jiu5E1hKBmdaY1er5OG9nCpOHfN3e+VkWwIjqdHFphB9NIMu2X+1iKDwOq4+sIX6POweVvcGFZJ8djB4RRtnkuH5W89x7k8IM4e2w0SK/5yKfxNfN3CzWSQ1dsqpQFPbry7z8Oy+56mlRs15bv5TU9IJ78aDpp/FbSZPfVfmTfwFLUBIHMtEjLUGBrGPQN8p32ap+6a9st5Qfh7rVhIGyB/4npLmar9Nw0lJNX9nmKiD119bkwyuWZjk4s2ELvCAw9RBJCHP8AxXnLgieqkBebn00zoGL/gdQTxXKDJGe3SEbOk56AkkIynB6I7prERvnbIhGI/ObwrNKtfKliiIKq3iWTdBP6BfCgAOqgD6320G2VdZyXyh3oXyM2AlFXzuA8zc8wpZraUCX9J/iMoxhELcL0gpDFO4HUKxTt+uU45uNNK0DkXw3GDF/lr+oYvzJ45jX0qMExF6EHaKfplZxW0Nt9rPT8pKi9BC8dzdSHXuunA1PshvEfc7mLMtz0QdOXOvomtM2Jv84lw== jieqiang.wang@arm.com"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPsm7Ny+8QYyJ5JEECF0sntRbsF3jRqdSItPTgcbBEFwfNBVd0ulmmkwPUVrcJRMfGuzp3vA3Ss/BgutfvNo3WD5G+WECnOWXiTzroM34oZQ6awoZujxlQsNGBRsiGTPNay6oFoS2hIaW5OB/QHZwZH8HVYcc53oyM0uC72ItnCg5cvSS5v1XaoQby0pUsu2v5uSOm35XV/N2ishcF3sxfCjTMZEODCwYdcb1xOflzIWlIk7ZSDNzOlpmG/jZNDfc7V2GHvGz7WnBFkjkcVH86SEVcQmsc7yyQD1UUG/EZ5AA75vbH4vFye4cISTWpBZik5CbkElxvX9XrfFxtYEM/ tianyu.li@arm.com"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_client_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_client_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "csitarm"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settigs.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker settings.
+docker_daemon:
+ default-shm-size: "1073741824"
+# dns: ["172.17.0.1"]
+# dns-opts: []
+# dns-search: ["{{ansible_hostname}}"]
+# host: ["172.17.0.1:/var/run/docker.sock"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml
new file mode 100644
index 0000000000..1d414b32c7
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml
@@ -0,0 +1,98 @@
+---
+# file: host_vars/10.30.51.71.yaml
+
+hostname: "s71-t14-sut1"
+grub:
+ hugepagesz: "2M"
+ hugepages: 32768
+ iommu.passthrough: "1"
+inventory_ipmi_hostname: "10.30.50.71"
+vfs_data_file: "csit-initialize-vfs-alt.sh"
+cpu_microarchitecture: "altra"
+
+intel_700_matrix: "dpdk22.07"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDJIAgAKD47mDur3n5jeHXzId2uUFHKa5kBiF649YQsdBKeQyfMVysvN9immKSTvwo4BUlwqeKQq5aIWWpjKMJU2/WXe4WU1YVyKLYCAlbkYJ3WuIBKQ/fm2wb8M4oXtgkYb+wEr5RkP48WqtIo3Cm/L+1j6k5jiu5E1hKBmdaY1er5OG9nCpOHfN3e+VkWwIjqdHFphB9NIMu2X+1iKDwOq4+sIX6POweVvcGFZJ8djB4RRtnkuH5W89x7k8IM4e2w0SK/5yKfxNfN3CzWSQ1dsqpQFPbry7z8Oy+56mlRs15bv5TU9IJ78aDpp/FbSZPfVfmTfwFLUBIHMtEjLUGBrGPQN8p32ap+6a9st5Qfh7rVhIGyB/4npLmar9Nw0lJNX9nmKiD119bkwyuWZjk4s2ELvCAw9RBJCHP8AxXnLgieqkBebn00zoGL/gdQTxXKDJGe3SEbOk56AkkIynB6I7prERvnbIhGI/ObwrNKtfKliiIKq3iWTdBP6BfCgAOqgD6320G2VdZyXyh3oXyM2AlFXzuA8zc8wpZraUCX9J/iMoxhELcL0gpDFO4HUKxTt+uU45uNNK0DkXw3GDF/lr+oYvzJ45jX0qMExF6EHaKfplZxW0Nt9rPT8pKi9BC8dzdSHXuunA1PshvEfc7mLMtz0QdOXOvomtM2Jv84lw== jieqiang.wang@arm.com"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPsm7Ny+8QYyJ5JEECF0sntRbsF3jRqdSItPTgcbBEFwfNBVd0ulmmkwPUVrcJRMfGuzp3vA3Ss/BgutfvNo3WD5G+WECnOWXiTzroM34oZQ6awoZujxlQsNGBRsiGTPNay6oFoS2hIaW5OB/QHZwZH8HVYcc53oyM0uC72ItnCg5cvSS5v1XaoQby0pUsu2v5uSOm35XV/N2ishcF3sxfCjTMZEODCwYdcb1xOflzIWlIk7ZSDNzOlpmG/jZNDfc7V2GHvGz7WnBFkjkcVH86SEVcQmsc7yyQD1UUG/EZ5AA75vbH4vFye4cISTWpBZik5CbkElxvX9XrfFxtYEM/ tianyu.li@arm.com"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_client_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_client_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "csitarm"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settigs.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker settings.
+docker_daemon:
+ default-shm-size: "1073741824"
+# dns: ["172.17.0.1"]
+# dns-opts: []
+# dns-search: ["{{ansible_hostname}}"]
+# host: ["172.17.0.1:/var/run/docker.sock"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.72.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.72.yaml
new file mode 100644
index 0000000000..b7c8c26aae
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.72.yaml
@@ -0,0 +1,26 @@
+---
+# file: host_vars/10.30.51.72.yaml
+
+hostname: "s62-t34-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ iommu.passthrough: "1"
+ isolcpus: "1-40,81-120"
+ nmi_watchdog: "0"
+ nohz_full: "1-40,81-120"
+ nosoftlockup: true
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-40,81-120"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,41-80,121-159"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.72"
+cpu_microarchitecture: "altra"
+
+intel_700_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.73.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.73.yaml
new file mode 100644
index 0000000000..0811b038b7
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.73.yaml
@@ -0,0 +1,26 @@
+---
+# file: host_vars/10.30.51.73.yaml
+
+hostname: "s63-t34-sut2"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ iommu.passthrough: "1"
+ isolcpus: "1-40,81-120"
+ nmi_watchdog: "0"
+ nohz_full: "1-40,81-120"
+ nosoftlockup: true
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-40,81-120"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,41-80,121-159"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.73"
+cpu_microarchitecture: "altra"
+
+intel_700_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.74.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.74.yaml
new file mode 100644
index 0000000000..473e4a9a5e
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.74.yaml
@@ -0,0 +1,33 @@
+---
+# file: host_vars/10.30.51.74.yaml
+
+hostname: "s64-t34-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.74"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.75.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.75.yaml
new file mode 100644
index 0000000000..a96f087643
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.75.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.75.yaml
+
+hostname: "s65-t37-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.75"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.76.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.76.yaml
new file mode 100644
index 0000000000..c1ddcf5a58
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.76.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.76.yaml
+
+hostname: "s66-t37-sut2"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.76"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.77.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.77.yaml
new file mode 100644
index 0000000000..e447ed2c81
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.77.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.77.yaml
+
+hostname: "s67-t37-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.77"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk23.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.78.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.78.yaml
new file mode 100644
index 0000000000..88f36b3880
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.78.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.78.yaml
+
+hostname: "s78-t38-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.78"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.79.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.79.yaml
new file mode 100644
index 0000000000..37d6a18b2c
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.79.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.79.yaml
+
+hostname: "s79-t38-sut2"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.79"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.80.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.80.yaml
new file mode 100644
index 0000000000..dcb87d1a7c
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.80.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.80.yaml
+
+hostname: "s80-t38-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.80"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk23.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.81.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.81.yaml
new file mode 100644
index 0000000000..e984947235
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.81.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.81.yaml
+
+hostname: "s71-t212-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.81"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.82.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.82.yaml
new file mode 100644
index 0000000000..5e6160e3ec
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.82.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.82.yaml
+
+hostname: "s72-t212-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.82"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk23.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.83.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.83.yaml
new file mode 100644
index 0000000000..ac936cd89d
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.83.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.83.yaml
+
+hostname: "s83-t213-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.83"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.84.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.84.yaml
new file mode 100644
index 0000000000..05877b59e9
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.84.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.84.yaml
+
+hostname: "s84-t213-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.84"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk23.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.85.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.85.yaml
new file mode 100644
index 0000000000..0d61c87e4f
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.85.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.85.yaml
+
+hostname: "s85-t214-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.85"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.86.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.86.yaml
new file mode 100644
index 0000000000..f40b86bd6b
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.86.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.86.yaml
+
+hostname: "s86-t214-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.86"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk23.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.87.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.87.yaml
new file mode 100644
index 0000000000..2c767d6795
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.87.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.87.yaml
+
+hostname: "s87-t215-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.87"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.88.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.88.yaml
new file mode 100644
index 0000000000..313c316752
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.88.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.30.51.88.yaml
+
+hostname: "s88-t215-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.88"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk23.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.89.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.89.yaml
new file mode 100644
index 0000000000..7ab0d8ab68
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.89.yaml
@@ -0,0 +1,33 @@
+---
+# file: host_vars/10.30.51.89.yaml
+
+hostname: "s89-t39t310-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.89"
+cpu_microarchitecture: "icelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.90.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.90.yaml
new file mode 100644
index 0000000000..dfc36904f8
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.90.yaml
@@ -0,0 +1,38 @@
+---
+# file: host_vars/10.30.51.90.yaml
+
+hostname: "s90-t31t32-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on,sm_on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-31,33-63,65-95,97-127"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-31,33-63,65-95,97-127"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,32,64,96"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.90"
+cpu_microarchitecture: "icelake"
+docker_tg: true
+
+intel_800_matrix: "dpdk23.07"
+
+kernel_version_by_distro:
+ ubuntu:
+ jammy:
+ - "5.15.0-72" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.91.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.91.yaml
new file mode 100644
index 0000000000..53239492ef
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.91.yaml
@@ -0,0 +1,88 @@
+---
+# file: host_vars/10.30.51.91.yaml
+
+hostname: "s91-nomad"
+inventory_ipmi_hostname: "10.30.50.91"
+cpu_microarchitecture: "neoversen1"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_client_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_client_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settings.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_agent_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+#consul_package_version: "1.5.2+dfsg2-14"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker daemon settings.
+docker_daemon:
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ansible_hostname}}"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.92.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.92.yaml
new file mode 100644
index 0000000000..19ec70ce83
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.92.yaml
@@ -0,0 +1,88 @@
+---
+# file: host_vars/10.30.51.92.yaml
+
+hostname: "s92-nomad"
+inventory_ipmi_hostname: "10.30.50.92"
+cpu_microarchitecture: "neoversen1"
+
+# User management.
+users:
+ - username: localadmin
+ groups: [adm, sudo]
+ password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
+ ssh_key:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM1D1kkGX1l7fSma1MOgw2yLI7zJHwTCcfVROQ4hh7r peter.mikus@protonmail.ch"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCG7Shfr7ASXXwpazYDGFzChGl7i4HgY9n81GTwc17B/O19IiJdrxFcBQH19HMuTFtWU4d9bQ6xgzz2pojBN13L3pEsStCHovDlEYbvfRxI2l2hcAAop1j1E4izHAS9IvCoy1AgWqBg6tsfP5mzOwGbSbcdI9ADRKIHgDTVbHg9SqKed27bNOLU0u3/5ra2Oar/tVIW37geEqFV/nHIBZ03Y/mszvXP/t/hP5bgJIGJKkzTjLd1aqEcuGmubW+wTQnVnrhFB87dw91gPj6BVyV0+7Vt1wrvPKqP2sGJhojAMSrBQBySnlrYgEg00bwDgNGFevatfG9+nTId+nhoKBkXya3MjSp4HwrGqGcij3/h7ovlau3/iRhkqlSeqenaNm4zKTAXRTnb60j2WKa6im0zdqJX98anp4mhjE8xHhmmfZV3vRT8mtY4hF/lg79miXFHpWH97bZV6r/D9qj1HWI/laJfOC5MOJdRcLETwtsUNMHeHtVnY3yu0XFYNcl2Xwajtnz3waF7vn1QHvAM9p878+JrO/IEUqEc0yZWVvlhZ7Krx1pS+APoMy8097MYDGFzFTkYSstKLGbgm/S7dEiWuSVxmMUxW7JYO3gHrQ3f1EvAYh2UFdWy76Dzr5II9UpVwOwF+HL/Oy8Sk77bPaK+tn7Kh4Tx7WWE0+EOAgElQ== ayourtch@ayourtch-lnx"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD0GXoSGDZ95TE/TT3kf4ZS3Tiso0UO3MVhqAqZ/F6LOvLyqnMPfhxPz1XpHsDikxvKgwhZvdBm1dWbKkPsD7jtw0PGphQO8QuEwBd2ZMvxZ4Qg6lNDUl5x3zRO2nkbKpcqnOugGLTtXP+yfw/wfQ2HNFLDP9gE90xegsPT83PmRUntQlhbS3ByHcCSUScC+Y1heZXuoKNyrmUY46lxkKsNfhx8sQKo0YhB21atV/mcAQbAaO2LggmaQYGtWizqPNGWIRsi9W8ZYnKva67c3Pbv/TTfaqmrNCwOXJ8G9oL+/3MlKbl3b5mYlTs2a/e9yVgMNwUZVX7aiHpgPgaVjL6j swdev@BradyBunch-MacMini.local"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmo2YP4t/f58AAYH72rOe5VjYjk3wb/GY3aJEd5s9WspLhnsY0xBL67C+4kMq6VmQQvg0cUB8RJSFX1tUXMHCorVWnXNHkYomx0MCPcPUpVHuRyEqczYJ2pzgZsPzoEfw9E5hTrAiGzYFNAS/NOSavapVMDZxa1zsX7+sWQvJfmVtJWpcTQb0TkoWXRsy0YM3PYfUbYvK7lR3lGwyhwCcJn0WwWGreFB7bIok0poqqX5BgJ/okZuvC8II+UfuGoBHNhg49oqST1JlNi9gRqDNmLWkHRaneWZiF+Y2hdN3PRCdkt1x3eU0R+cdi5kPKslb6P0lsjOEA7fDLlq1+T2z1"
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWWDIudZUaHp6pPkYmBsBeEYcbUoGGZH73eB374g8e9V3dfT7BuJOMR/Z3LxCGw5GcDDgzJHLQr8AykN7lUscaux68CXSf1CAKhfBeWBOCQD4G5tpmD6610jsiBig6bFISKpGW4nLt80yt3bKEqv6ezt35QuMeh3E45uK/pCRfDcukOThbwYG44xr7TeYAyNacWuNV9HDy5DzjBelElmolTOgjtZEbedmIcUbV/gb8yekUxxBTS3d3I5qVLtNRMHPqp9xbJqteRXIphizDlHbaTHZeVy9mrwi1RuTjDSg7p1OPJ9eVIzMYzk87gbwNxZw8481Xb1WsgGmyH/mXJjD1 najoy@NAJOY-M-505G.CISCO.COM"
+sshd_disable_password_login: true
+
+# Nomad settings.
+nomad_version: "1.6.1"
+nomad_certificates:
+ - src: "{{ file_nomad_ca_pem }}"
+ dest: "{{ nomad_tls_ca_file }}"
+ - src: "{{ file_nomad_client_pem }}"
+ dest: "{{ nomad_tls_cert_file }}"
+ - src: "{{ file_nomad_client_key_pem }}"
+ dest: "{{ nomad_tls_key_file }}"
+nomad_datacenter: "yul1"
+nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
+nomad_node_role: "client"
+nomad_node_class: "builder"
+nomad_options:
+ driver.raw_exec.enable: 1
+ docker.cleanup.image: false
+ docker.privileged.enabled: true
+ docker.volumes.enabled: true
+ driver.whitelist: "docker,raw_exec,exec"
+nomad_service_mgr: "systemd"
+nomad_consul_use_ssl: false
+nomad_use_tls: false
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_use_vault: false
+nomad_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+nomad_servers:
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
+
+# Consul settings.
+nomad_use_consul: true
+consul_certificates:
+ - src: "{{ file_consul_agent_ca_pem }}"
+ dest: "{{ consul_ca_file }}"
+ - src: "{{ file_consul_server_0_pem }}"
+ dest: "{{ consul_cert_file }}"
+ - src: "{{ file_consul_server_0_key_pem }}"
+ dest: "{{ consul_key_file }}"
+consul_verify_incoming: false
+consul_verify_outgoing: false
+consul_vefify_server_hostname: false
+consul_allow_tls: false
+consul_datacenter: "yul1"
+consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
+consul_retry_servers:
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
+consul_service_mgr: "systemd"
+#consul_package_version: "1.5.2+dfsg2-14"
+
+# Vault settings.
+vault_version: "1.13.1"
+
+# Docker daemon settings.
+docker_daemon:
+ dns: ["172.17.0.1"]
+ dns-opts: []
+ dns-search: ["{{ansible_hostname}}"]
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.93.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.93.yaml
new file mode 100644
index 0000000000..cf4816a5f8
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.93.yaml
@@ -0,0 +1,33 @@
+---
+# file: host_vars/10.30.51.93.yaml
+
+hostname: "s93-t39-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=2 hugepagesz=2M hugepages=4096"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-23"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-23"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-23"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0"
+ vm:
+ nr_hugepages: 4096
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.93"
+cpu_microarchitecture: "snowridge"
+
+intel_800_matrix: "dpdk23.11"
+intel_qat_matrix: true \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.94.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.94.yaml
new file mode 100644
index 0000000000..d663cda18b
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.94.yaml
@@ -0,0 +1,33 @@
+---
+# file: host_vars/10.30.51.94.yaml
+
+hostname: "s94-t39-sut2"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=2 hugepagesz=2M hugepages=4096"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-23"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-23"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-23"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0"
+ vm:
+ nr_hugepages: 4096
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.50.94"
+cpu_microarchitecture: "snowridge"
+
+intel_800_matrix: "dpdk23.11"
+intel_qat_matrix: true \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml
new file mode 100644
index 0000000000..4423a36f56
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.32.8.18.yaml
+
+hostname: "s33-t27-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-23,25-47,49-71,73-95"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-23,25-47,49-71,73-95"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-23,25-47,49-71,73-95"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,24,48,72"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.55.18"
+cpu_microarchitecture: "cascadelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml
new file mode 100644
index 0000000000..22210ae4bd
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.32.8.19.yaml
+
+hostname: "s34-t27-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=8192"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,28,56,84"
+ vm:
+ nr_hugepages: 8192
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.55.19"
+cpu_microarchitecture: "cascadelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk22.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml
new file mode 100644
index 0000000000..36ba5c15f8
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.32.8.20.yaml
+
+hostname: "s35-t28-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-23,25-47,49-71,73-95"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-23,25-47,49-71,73-95"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-23,25-47,49-71,73-95"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,24,48,72"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.55.20"
+cpu_microarchitecture: "cascadelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml
new file mode 100644
index 0000000000..61c6f51b06
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.32.8.21.yaml
+
+hostname: "s36-t28-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=8192"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,28,56,84"
+ vm:
+ nr_hugepages: 8192
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.55.21"
+cpu_microarchitecture: "cascadelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk22.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml
new file mode 100644
index 0000000000..ae2947f54a
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.32.8.22.yaml
+
+hostname: "s37-t29-sut1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-23,25-47,49-71,73-95"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-23,25-47,49-71,73-95"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-23,25-47,49-71,73-95"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,24,48,72"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.55.22"
+cpu_microarchitecture: "cascadelake"
+
+intel_700_matrix: "dpdk23.11"
+intel_800_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11" \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml
new file mode 100644
index 0000000000..a3f19b4249
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml
@@ -0,0 +1,34 @@
+---
+# file: host_vars/10.32.8.23.yaml
+
+hostname: "s38-t29-tg1"
+grub:
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=8192"
+ hpet: "disable"
+ intel_idle.max_cstate: "1"
+ intel_iommu: "on"
+ intel_pstate: "disable"
+ iommu: "pt"
+ isolcpus: "1-27,29-55,57-83,85-111"
+ mce: "off"
+ nmi_watchdog: "0"
+ nohz_full: "1-27,29-55,57-83,85-111"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "1"
+ rcu_nocbs: "1-27,29-55,57-83,85-111"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,28,56,84"
+ vm:
+ nr_hugepages: 8192
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.55.23"
+cpu_microarchitecture: "cascadelake"
+
+intel_700_matrix: "dpdk22.07"
+intel_800_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk22.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml
new file mode 100644
index 0000000000..accb8c5dc9
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml
@@ -0,0 +1,30 @@
+---
+# file: host_vars/10.32.8.24.yaml
+
+hostname: "s60-t210-sut1"
+grub:
+ amd_iommu: "on"
+ audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
+ hpet: "disable"
+ iommu: "pt"
+ isolcpus: "1-15,17-31,33-47,49-63"
+ nmi_watchdog: "0"
+ nohz_full: "off"
+ nosoftlockup: true
+ numa_balancing: "disable"
+ processor.max_cstate: "0"
+ rcu_nocbs: "1-15,17-31,33-47,49-63"
+ tsc: "reliable"
+sysctl:
+ kernel:
+ watchdog_cpumask: "0,16,32,48"
+ vm:
+ nr_hugepages: 32768
+ max_map_count: 20000
+
+inventory_ipmi_hostname: "10.30.55.24"
+cpu_microarchitecture: "epyc"
+
+intel_700_matrix: "dpdk23.11"
+mellanox_matrix: "dpdk23.11" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml
index 8c99bf3cae..629538fa34 100644
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml
@@ -5,12 +5,13 @@ hostname: "s61-t210-tg1"
grub:
amd_iommu: "on"
audit: "0"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=8192"
hpet: "disable"
iommu: "pt"
isolcpus: "1-15,17-31,33-47,49-63"
nmi_watchdog: "0"
nohz_full: "off"
- nosoftlockup: True
+ nosoftlockup: true
numa_balancing: "disable"
processor.max_cstate: "0"
rcu_nocbs: "1-15,17-31,33-47,49-63"
@@ -24,3 +25,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.55.25"
cpu_microarchitecture: "epyc"
+
+intel_700_matrix: "dpdk22.07"
+mellanox_matrix: "dpdk22.07"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/hosts b/fdio.infra.ansible/inventories/lf_inventory/hosts
new file mode 100644
index 0000000000..b7109a1261
--- /dev/null
+++ b/fdio.infra.ansible/inventories/lf_inventory/hosts
@@ -0,0 +1,74 @@
+all:
+ children:
+ tg:
+ hosts:
+ 10.30.51.49: #s19-t33t211-tg1 - skylake
+ 10.30.51.53: #s53-t21-tg1 - sapphirerapids
+ 10.30.51.55: #s55-t22-tg1 - sapphirerapids
+ 10.30.51.57: #s57-t23-tg1 - sapphirerapids
+ 10.30.51.59: #s59-t24-tg1 - sapphirerapids
+ 10.30.51.74: #s64-t34-tg1 - icelake
+ 10.30.51.77: #s67-t37-tg1 - icelake
+ 10.30.51.80: #s80-t38-tg1 - icelake
+ 10.30.51.82: #s72-t212-tg1 - icelake
+ 10.30.51.84: #s84-t213-tg1 - icelake
+ 10.30.51.86: #s86-t214-tg1 - icelake
+ 10.30.51.88: #s88-t215-tg1 - icelake
+ 10.30.51.89: #s89-t39t310-tg1 - icelake
+ 10.30.51.90: #s90-t31t32-tg1 - icelake
+ 10.32.8.19: #s34-t27-tg1 - cascadelake
+ 10.32.8.21: #s36-t28-tg1 - cascadelake
+ 10.32.8.23: #s38-t29-tg1 - cascadelake
+ 10.32.8.25: #s61-t210-tg1 - epyc
+ sut:
+ hosts:
+ 10.30.51.32: #s32-t31-sut1 - icelaked
+ 10.30.51.33: #s33-t31-sut2 - icelaked
+ 10.30.51.34: #s34-t32-sut1 - icelaked
+ 10.30.51.35: #s35-t32-sut2 - icelaked
+ 10.30.51.36: #s17-t33-sut1 - taishan
+ 10.30.51.37: #s18-t33-sut2 - taishan
+ 10.30.51.52: #s52-t21-sut1 - sapphirerapids
+ 10.30.51.54: #s54-t22-sut1 - sapphirerapids
+ 10.30.51.56: #s56-t23-sut1 - sapphirerapids
+ 10.30.51.58: #s58-t24-sut1 - sapphirerapids
+ 10.30.51.72: #s62-t34-sut1 - altra
+ 10.30.51.73: #s63-t34-sut2 - altra
+ 10.30.51.75: #s65-t37-sut1 - icelake
+ 10.30.51.76: #s66-t37-sut2 - icelake
+ 10.30.51.78: #s78-t38-sut1 - icelake
+ 10.30.51.79: #s79-t38-sut2 - icelake
+ 10.30.51.81: #s81-t212-sut1 - icelake
+ 10.30.51.83: #s83-t213-sut1 - icelake
+ 10.30.51.85: #s85-t214-sut1 - icelake
+ 10.30.51.87: #s87-t215-sut1 - icelake
+ 10.30.51.93: #s93-t39-sut1 - snowridge
+ 10.30.51.94: #s94-t39-sut2 - snowridge
+ 10.32.8.18: #s33-t27-sut1 - cascadelake
+ 10.32.8.20: #s35-t28-sut1 - cascadelake
+ 10.32.8.22: #s37-t29-sut1 - cascadelake
+ 10.32.8.24: #s60-t210-sut1 - epyc
+ 10.30.51.69: #s27-t211-sut1 - thunderx2 9975
+ vpp_device:
+ hosts:
+ 10.30.51.30: #s30-t15-sut1 - sapphirerapids
+ 10.30.51.31: #s31-t16-sut1 - sapphirerapids
+ 10.30.51.50: #s1-t11-sut1 - skylake
+ 10.30.51.51: #s2-t12-sut1 - skylake
+ 10.30.51.70: #s55-t13-sut1 - thunderx2 9980
+ 10.30.51.71: #s56-t14-sut1 - thunderx2 9980
+ nomad:
+ hosts:
+ 10.30.51.21: #s21-nomad - sapphirerapids
+ 10.30.51.22: #s22-nomad - sapphirerapids
+ 10.30.51.23: #s23-nomad - skylake
+ 10.30.51.24: #s24-nomad - skylake
+ 10.30.51.25: #s25-nomad - skylake
+ 10.30.51.26: #s26-nomad - skylake
+ 10.30.51.27: #s27-nomad - skylake
+ 10.30.51.28: #s28-nomad - skylake
+ 10.30.51.91: #s58-nomad - neoverse n1
+ 10.30.51.92: #s59-nomad - neoverse n1
+ dev:
+ hosts:
+ 10.30.51.38: #fdio-marvell-dev - thunderx 88xx \ No newline at end of file
diff --git a/fdio.infra.ansible/inventories/sample_inventory/group_vars/all.yaml b/fdio.infra.ansible/inventories/sample_inventory/group_vars/all.yaml
new file mode 100644
index 0000000000..3a5ab66d8b
--- /dev/null
+++ b/fdio.infra.ansible/inventories/sample_inventory/group_vars/all.yaml
@@ -0,0 +1,2 @@
+---
+# file: sample_inventory/group_vars/all.yaml
diff --git a/fdio.infra.ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml b/fdio.infra.ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml
new file mode 100644
index 0000000000..1c3183ffd1
--- /dev/null
+++ b/fdio.infra.ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml
@@ -0,0 +1,17 @@
+---
+# file: host_vars/x.x.x.x.yaml
+
+hostname: "t1-tg1"
+grub:
+ - isolcpus: "1-27,29-55,57-83,85-111"
+ - nohz_full: "1-27,29-55,57-83,85-111"
+ - rcu_nocbs: "1-27,29-55,57-83,85-111"
+sysctl:
+ - kernel:
+ - watchdog_cpumask: "0,28,56,84"
+ - vm:
+ - nr_hugepages: 4096
+ - max_map_count: 20000
+
+inventory_ipmi_hostname: "x.x.x.x"
+cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/sample_inventory/hosts b/fdio.infra.ansible/inventories/sample_inventory/hosts
index e8e1439db4..e8e1439db4 100644
--- a/resources/tools/testbed-setup/ansible/inventories/sample_inventory/hosts
+++ b/fdio.infra.ansible/inventories/sample_inventory/hosts
diff --git a/fdio.infra.ansible/inventories/vagrant_inventory/group_vars/vagrant.yml b/fdio.infra.ansible/inventories/vagrant_inventory/group_vars/vagrant.yml
new file mode 100644
index 0000000000..af44a3354d
--- /dev/null
+++ b/fdio.infra.ansible/inventories/vagrant_inventory/group_vars/vagrant.yml
@@ -0,0 +1,2 @@
+---
+# file: vagrant_inventory/group_vars/all.yaml
diff --git a/fdio.infra.ansible/inventories/vagrant_inventory/hosts b/fdio.infra.ansible/inventories/vagrant_inventory/hosts
new file mode 100644
index 0000000000..451a01621c
--- /dev/null
+++ b/fdio.infra.ansible/inventories/vagrant_inventory/hosts
@@ -0,0 +1,4 @@
+# Inventory file for VPP Device vagrant environment
+
+[vagrant]
+localhost ansible_connection=local
diff --git a/fdio.infra.ansible/nomad.yaml b/fdio.infra.ansible/nomad.yaml
new file mode 100644
index 0000000000..d7aa467007
--- /dev/null
+++ b/fdio.infra.ansible/nomad.yaml
@@ -0,0 +1,32 @@
+---
+# file: nomad.yaml
+
+- hosts: nomad
+ remote_user: localadmin
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: baremetal
+ tags: baremetal
+ - role: docker
+ tags: docker
+ - role: nomad
+ tags: nomad
+ - role: consul
+ tags: consul
+ - role: vault
+ tags: vault
+ - role: prometheus_exporter
+ tags: prometheus_exporter
+ - role: jenkins_job_health_exporter
+ tags: jenkins_job_health_exporter
+ - role: cleanup
+ tags: cleanup
diff --git a/fdio.infra.ansible/nomad_vault.yml b/fdio.infra.ansible/nomad_vault.yml
new file mode 100644
index 0000000000..a9e8fde783
--- /dev/null
+++ b/fdio.infra.ansible/nomad_vault.yml
@@ -0,0 +1,796 @@
+$ANSIBLE_VAULT;1.1;AES256
+33306665326534376332386439383961343830333466353035393561313661636538663936316465
+6666313364613566346361303235313433623235646562660a613861353636623637656331616531
+37303538383839383731616663656230383930363962663033613163666332333032376131306264
+6439363062376361350a643335363334396535326138353635316535366261353761633635333835
+61393763336533363236636265363764323863356365376332393737383636653961323063323061
+34653133656535383366363532363736613765323163313731623465323330666635623535316434
+30643238643238643038353737373736386162623830366335383431333139656539336430656435
+61393365646433633833393166323266306236623761623664303761336463326634373938623235
+31663132643835313430633162643361306135646133333238383834333431643138373435613132
+38613862623766323838613035316564303934396162353032356639343039346462313935663634
+65653535643834363030306638336136323363383935393436656637343438633839326165656430
+38343866623862393364353334653566343338656238646135616266356336363339326662373464
+30656139663864353439316432623235653533303032363930366134313933653738623731336331
+38663566653334303462356138643863373937396666666339303337383533336565383732626461
+35613531643763666563626330636639353566373063303232643936353530373162646162626133
+61666532636461333535373334363764653936323164663639613932613961313930366330383735
+33633430343361326635316632633065333536303031653539366361663033623336656463363436
+30316433633733333735346137373735303030333565336530656261306338646237663163393363
+33323133663663356263633565323161313065303735666566383564613439663336306330343533
+32623931623439323161656430666430313962316334656266336332313239643261316433373463
+34656630313065333866613336663761366530616333386431343864633232336463356134643233
+63373235343438363465396363363032313366393936396334613565303936343166656336376330
+64633561353934653364613739306132623266303563313434346261636462663166383466343437
+61313766613263373230363333636237633861626531666161393435376135343466663638323465
+31633832316262316661653734343965356134346132336563346634343935393735393965383962
+61666262656431376436633336393631613335363835663930396139653262343066613936363761
+64626134366131666133643338333862313366366562323664336361633339366235646639346365
+62343639666363373131343838353836636263313862393165363336656264306361393661373735
+33303435343035616531663434663935346630313731323338656237616638613530316131313131
+62303162326162636230346134323036383134653863343961323166646163316436346131386335
+36653166613231643632653435653733626631303732323337303562396436336639383636643633
+39313365653739343265383533626666623131366164353937363933613866363966616535386135
+38616561613336613037633331303463383830626132343664636433393935623932336464636435
+63633165363031386336633537333235343962373565643964373130373564373830326135633138
+63333366316132373761313561623466323563646364353939633639396138633038316130343638
+37316164353830333333666337383063383834653565366362613465636235623335396438623564
+35613639303333343033623037663337373932313063626364316535663632613761613236656533
+39303937643030373366326664663862313038336566636533326264323562386236373135306463
+63303135363338306365633735323731646533633432353266613535336432313132666631623063
+37616437656132386130383265666330616234653137306564663166666231303762653036373636
+63373961663936353236653334316530623638373133383061383730366633613339616439373738
+30343265326563366231316164396637363331303165663735326139613936643636336232663361
+32343261373730353533383237376661613966633932383930636661656438393934646661663135
+64343838663065363731663332653739643035363032623836323462343532326431656437303237
+37353362656665303337633538306263303163663463613531336165333462346533633038613465
+31353833616238623332373033636632386665306237373833303731653034376334663864633037
+31663035346333623135616139366336666363393638353262666466333164333931643630386531
+33323736396665333631313966326237326235343338313332643863613561393034326161343430
+35643230363237373261616336383535636232656238626232663435636162383165616530346165
+30633033313664313461643639613065303636613861643233613263643939613064356163353339
+62646564626531323333373562633337633038663265613065373566333661643435313536323130
+63646364353630383132346339343262396635636662376339353162346636366663633632653637
+30356532363162613738633662373035636335313331343864356335346363303239326138316662
+30643166313032626332383765386436346131353032613232393034636431333566653830633865
+31336666353735623638386432663431646334663237383362623061333364313533326161306563
+64626465373939353066373233366332646438303064643236373465666363633730643131346336
+62343265643532333138653238326535303039333466363666313564333036313934326662356432
+63356261353564316462356131623464343466393833353232623034623133396134303936613263
+65393434636162353537326433356564616334333635646362643963666230353030626438663364
+30303436663562633635313063663863343734393632333665343635613830383061396636636232
+37336262393363303765663736613039636333336166653433333130386230653135386530616330
+31623639383334303338306236333831653139666565373262383633306437646636333437646132
+63323135336630313864626637623736633537623661363763353630333038353862393863666532
+36626630313835663665633663623533386638326564366336366135333834383032343763383061
+36313936623337396537373434346166313762396262633331303265343831383738363937363863
+34363937343966363134666639616364353032363932333534643463346431343430653634633734
+36393932356634393037643765353064363834373131393265336235366265326264653635383737
+65353832346162656634333264353932343836323961313936356463626232336336383034393166
+66333732356137313166356235353936316233313266336231386130373437303833393163333338
+66333633363136623165363136323931633564656337366462653933373834303132616336306361
+33316633353034303833636665613537643764343862653334366135633037626461636464646437
+36303063643434663061323263313565646265653235613238303335326264623066663934336165
+32386562363263623036653461313132393365323232613663396436396566346234626130393639
+31623039653062386130373439656539616238333531313739356135383632343738643465303333
+38353832323236363835643835303463366538636334393865373038393862616630363238383665
+61613236643135376336323366326339396432326666323531363030623433363330353530613832
+38363431663638633061633862636666666636353638643436653862613263623865643133656638
+38656661316165353230343738613130633765356432376237643832613264373333616461633764
+38653363646235326433333739313263323832353262633835396361396663666335663366633665
+39383666313465643530353230616664356334623465623362646632363935633866613566623465
+65393834633831363031626433313136613162353966366265343436323362323566336564343635
+36353930656130386134313864393964393166666365626531336137363133396238373465663737
+31393332656364353439636538326562316231663262323234333063353832316663336362646332
+38376364313730303662363738646265653930306366363065303263323936643366326463363365
+32376365383461643534336233666364376633663834323664393339356134356431616165633538
+39386362626630333764653735316662663434303963623462396165373963363538366433653932
+61316562663532313034626336656265393663663237656365643830613136383833616364303538
+38346637613466643765386132613461326261363461643932636436666335353630633261653763
+31376132383465386361323730373764313664386531303162343532373937306538386231393961
+33653061383966313161396564396331663362343262633936633262613165663334663562353739
+32633233623366663363336464386232646336613632633866646437326230653866333363356663
+64646338626164643737306166623331323266343266386162643466343432323833313033363837
+32393566303537333733333836636663666230663132643638393137646639633161316331323039
+64306539393131316335376261653364323538633638303330303962313863353434616361373961
+65363065613038333830663533373539333636663766643434343266623437633364653366643038
+39303763353536653232363033613934386630623636656361383430363664363262616539343830
+32353735663630336162646334313234393837343936353830306235653433373863393265386461
+37633630623339663664623661633637346564666532663432346634633639663032373261373937
+32363364396430626138313464356635313933633637643462373032633636376333376563623836
+64336362393565353431653934343863346631346630613734366265636164323966643339366131
+63653865616230356339303863653864386636306365626236356462663364626433313462663466
+31623035373835366131613534646539663963616263343935393937326639646534636136326437
+32333937643736343233333039643232316462663936373664313338343832356438326239353033
+36363133386533306665643833383636343533623537366333373431613865333938353139313963
+31626163643362343735333534373061333539393839396630646437666532363338383162323235
+39666638323761616433623034663063376666383365306565666366663230313231366461333262
+63356166363334626538616438376463626465626163336266633333383338333130366632633934
+34343361383637356335386361616366333636343065306639616462333837646561613532333133
+34333032303634336634353231646533613831663564616636303061613663393963616662303336
+61616238646462613962616138333639336665353961386262346536613664386662346139336266
+38643535666266336661383335383430383564323435636438306132643538613261333737323132
+38396539366365313834393733636339363438396164326635393736633934366534383861376631
+64393832633664396436393666396662323065663932393237343164373863393834643536303833
+36633237363164376635653330653266626165656662656665666461306439383937343266303439
+35666536323961336564393638643130643062333433303431333331336137626661373232626262
+30353666396332323762376532353165663564613836393534663330363864646232643836353233
+30326338306662666365653863393265653431396465306332663463613561386263633536323235
+63633934643532343730616666616661356237616161616462643534383339313230396431653763
+31653337346563666631333436626564653737393266353839636162313330333063623433366566
+35646432356639613936353939643762656435666666373962623336666233363534626161323836
+32643864353639363537346232353762333232643763373331613864363932623530653538353062
+31336639343037643037623938346166323630393232333266323965636437303166653863653730
+64373837346432386139616131383931623563373064316461613461383864626266663566316262
+37366436656536343339643730613732306364326462636232373637613736633436636434653563
+31373563646334366435386339316430646431343763623739366163353063653338656166303534
+65356464343766653565613265633663623539373238633934623266636139383438643261623662
+30333639353431326336343833393766623136303662646162633930353364663662303731343332
+35326432353131336436613564666539646431363833373062343237353235613963356137643430
+64613962623932386462336439653732653733653533663762613561623038656365666237356130
+63383065633462303337323566316364356631653230633864366530373262306330393037633665
+34396163623034366430303030373435323164373461626132366633306539656334303237303864
+35636136383736613232656638313535386161663034636532616631626530363234303130356530
+62656164313464333335663433666437636431363233646564663135343539326263643935633662
+62636336666139633762316439313937396539346436316235363135346138383630303034313035
+63623631306565323264626661626262653662313734336232643438303431656565303963313437
+63363365323532653963623065366635366133646635636130616539393739643266666336623432
+37666562653532363964613763353462326631316566363633643566653663663535656130363135
+62386531386533366632333564393431303466303465333537656334373562623462356237383363
+34373838333466303536643639306635636638396365383537323162343236393533623436333537
+66613731363534663235373631353162333235393836653463643131643633356633343363636234
+38633238643339633636643834333036643237313238633138343039643534353163626235323630
+37376364373366343164656566646531383336313834333136633364303438623739366634346138
+61643735626236623664353236323239363362643737363561306661386235353937353763306232
+64666532393436306134366336303363313935383831313037353738313863353431393263383830
+39653233663866396437303635303735656434656634653937663465303638363861316332333161
+63343439353563653864353339333034633465343030326134316235373565353536323366303834
+36316535623961383338663530646434386332366132383035356462643565666332626265383130
+39353464366663363437336631613366366633623831313631383132323462316264383264366566
+32356137303233363564383038363838646338646637663135343334353162343461323538646539
+32336137666238643830313661333534333835633762393139323561373066376261316363383861
+30643635303561643834323864643339643363643932356233303965626433613638396536393465
+39333535646634363239386134303535613532383165343436666164626662373263333635383537
+64316638396333656265343830616633363039626466653932643334663132663039653865323166
+30656633356532663561643863653266633766333163336264333836623831383266323632356431
+36333261326631663835633763323561626330663838353065333434336565313865353836383162
+66643639346465613135336335376661303831303865613836313736643433303334333836336637
+66643136336336663065363530306532316564376633376338363332333439356338306365643466
+39386334333563313239376165616166323735393639363262653533383835623634626230363830
+37326666313663373439383065656662366665643539326663393663316531356132333235626130
+65613962396665323039323561666138363331626562346363623431626531383931626265346238
+39623266373135363735646635656530653463343862386538633066626134653730633337316330
+66353131646638613866316436353536373633646232653331313138356437646136383330663430
+66363330343861386139333435386132326531313835383062653635306463386433353932373062
+34366335373432336638383261316132373437333030623730633034353965383336646465376238
+32613338396166343365656464313562313934303238316466656431366538316533353331633664
+39653965333961386462393530653036653566643634643262623435623538343562356635313935
+38656130363161623039303438393137323466373031623739636364646633616162393962336466
+36323430386234356236653563393362306466353565313733326330613966313564663564656466
+32323935313533643731666135633035633336623966373338623734633361323463616464643366
+33633735383331623331373462663862383430376566363936356639316131313765313430343733
+63623639316634343862643766643238616330316638663834633731333430613863313564643463
+34343466393732363861363434366464623461323434653637336465323163313734666339353833
+61653538393137333638643633366464663833356138393939653030333537356361613238396564
+33653833666639326562343032643561616463623131666361643933373538636665346666316639
+34343230626365623466643462613232373038633239646364653432623430313735383637626630
+66343030373033313731356234636630383266383565396336303037393030363163623034383639
+32316635353838636238343737343564353238333661336436336266393538353138663861323963
+64326664656436363464383665376334373862396666373837656237353364353034653262613539
+36333031626265623537656537646239323764383937373939643661373963323332393835663735
+31373264616664346239363437326139636138643730666465313962306432643263353362646362
+62323937663334623037326632373966353665393166636563643130393437313263643739303131
+62663939323831373431633263666337356662646535336666326665343062383930346635656562
+65326436356430646339383864663565366264653362313862623361373138356634386562313834
+33323865373431316630623533643336636331656562326539616334633435313835323537303933
+30643435333565666330396339386364316434326439626132656638666531383561653832643962
+66353731303934366463613335343164353337616434633132666435653363356664616336363438
+30373964323835396438666133333965663939653731373564396431366232393762386639333330
+36303632613564363266333265363432366365623264393637653937383231613865613336646630
+32396430643666353066626131373863623733633038613765313361386334386133326638303536
+30373266653536383062616231326330313261313137616631313736653839646435346137343139
+32393435636538313161383231666236303334316233626130303661373464303235336562396234
+37333261366239366138613533643535613630663034306363623336633238616235636239366239
+38373336306266656465616331646233316337386263646563633366666330353437386536336163
+61373432623530353736363430396535636532373235653036306465653436656330666463623963
+63333633346462626463613465643765613363363434313933333139633462343031313635363834
+38386663326237346639653830633031626162663662663961613266613838613535363234356431
+32623832656136663733333165643437663733313536353761346361653638333265633933306263
+35393663643337396432643933396337623839313832376534613162393732316234343434363961
+38363362383365623035646364313031633161636534326262323865323139363937656565383562
+33333832316334323636616538663263373038356538613765316666623232626566346464333065
+34663266633732393961636338386538326266666463616636623865633836353532383162643330
+39323831306237366435313261393839653335326430373835356333626639383930316263356334
+35653730646363636234663532616239303563383932353964653566313035343736656436623764
+37396334633366663365616438333761393362666234303234626163663939393431373561326264
+62356163383262393437373835303830393530356163313930643233313066366338633036333936
+35366339646162396234376232336235383232373937393336313831336464366230383566356438
+33313338646464333135346636656137656537376536666233643161393235386462316365653037
+35616666303531353031663261633962613836653236366561366537646235393165346238303663
+31666434653339626462306334643339336139353135333435346263333038363934313063623763
+63366434346332383466633962353331623761373834643437396438353066383763643334373432
+32356534323862376335623136346465636438633635653539633965623930613238356130363261
+36666231376164646431313736376665346533346662666333626236376332626438323438633161
+64343566343432643236626436376230353465393165323636356561343432656132303364396138
+64323636666238353663613565623232646234646136633935636538306261613337643539643232
+34656661306330376331643332393261626439373361356361356666393034663064323538316432
+35393562326234633436623362373639303363383462353832373231376666373633323334363165
+66386566666131343562303435383663303732646566643239663166633162333964613137333731
+35633335646530666666643134636366343363323931336563326436663433363732373662363232
+36633437373634303337343537646130323232373833663734386136666563353465666230663664
+61373063343932616566653862363339393665646430663733343862666663303562643536646536
+62373462646531336636313135353932303636326463346631376130386638616130626162346238
+37653666303062623630363165343935366634636561383330623734306232333634623435376238
+65303662646231373633636432316262323636343763333361333365653765323035333734303035
+39653235386666356335626161656331383161646464356232326337343832363665653831633133
+35393566613237303932643765643461303365343633386266363535633261346338346531663462
+62326635633866353035346131653239383236383065663130656636653936383561393235343761
+38363739653638313839356238373839663033333437353162613430616537333264303161613863
+37643062376361326364356430306361333230316361396634393466323130613564316331363739
+31363637333432336635383266656266653234633762376664326564623136376533356631393833
+34313334313863306335383233373331616330386630333362366332633862386664313065643563
+33316462616332313661613565313736633163376263646138396266373161393336306334653536
+38663731626636653361626166303561353336363736336132616631386539373637353237626330
+32656236623031663464313235313164336465663062313637613061316531626661653433313837
+37363533643466323733383730313361663633353638363039383264623365623830336638343666
+37363561396664653830656633623839643235376331323836653036636362383632656436383530
+61346536363030303062343064303330326136343962633762616663396337356139306565353230
+39393661623639363462343534616637643335366432346638653730356266396235613364333131
+37313832303136653036616535326165343064646163303634666164656330353866396166343930
+62653666363637303961326132366632323034616465303464636137656430393938306633386131
+33666161623234396230383830313630393737366430633766316436313131353730356432393164
+31666238353066366431633631633132313732626233393130326334366433663562346435646666
+32346630376139366464323039303730313731663330396233396564303335363561626566643665
+66616238636534663735333631353363396663626632656532303239343836663231633231313730
+66313534366435383866626539653134306165306436363038623961343664316233353931396464
+61646461376632313534396636316462373862313537306231636666653065363835333331353335
+65333362623336396134613139633839623233653032393436656132373133346562363162666138
+66393531316130666636353334306332386161363839363934336431656430616130393336303238
+37346435366339643732346461366462346530373664623363643439376130633236663965663232
+37356535653038356161626630633331613265643131646434306130373364343037373862346433
+30663533306334386362633665616534396431376664656432343235323734343463633831336563
+61316131636137316366613939643031326236303431616135353638643164356538353463653731
+30626434303633393732316135313565613834643365373236366434616538336265636661303765
+35666636646166353134383332373836306633663538366236333832626535386634613862346533
+62336538356263386437616234303264303539356364653163363439333164306331616361643564
+35636137356532373462333537333831356231363165353362626365333536613937343534353133
+39623664303461366637356138376534653337626161356661636437343166373961643066623163
+63343134363733633537353230663864336164313364656638383331393338346161373961303663
+61616362323630316331333233336165333633663166646432643263313232393438303232613462
+61653933326336333238363836303638366461313132653437643266386233316332386432313132
+37363665663136636564626665366438633961376162653532376466303136663738336166633538
+38343462656534393331313138633733386536316131333566323330383934663735373830373136
+34333830386633633438633835303766383835396231353064343963343939313662633962383339
+64613732633064353338326239653130633264643838356462343164356138386631613132646263
+34353937656261383530373335663739386161363731386365643162613866313137386266633036
+66383735613535303731643132633939373739383561323633333263393338653861663937333162
+38323530313938356531356130383931663265313864303439633130643130333032353363353531
+30646339623035643535626265666265386665323139623835303764643038363830616439373137
+63613464363039303632626630323531316237333632363063353861666535373962363532623435
+35376236306130393866303564353761386233613865636231626336343736343962636435373536
+31663832306564313131346136313435613538396662373939373030653465663666306236303939
+36626661393539356334333532323765343432343035363330323463656433633233393638323963
+31643532653831383166313266633530346437646131323538613339336633643664616537633731
+39316363383861353231333339653833663361383336343364323332646337383931646262333734
+31393837303866306631306165323362633434623566646561303938363033666536643435316637
+31363134313964636565666339373938313433663737653461653530616434363337303965316464
+30343162323738623864383131303366666234653565343262303638373766353931363430316166
+65343166633264613366633434656636656334626363393362303763646439326338316234653539
+61363961353565663737363430663932653666383835613937623465346336393835393037623266
+39373330366362383938616234386134326638666434366130336539636133653138366433303637
+34386465383661643963636630343435323363666266353165336665393363316561643939396630
+38626465383563353734653266393864323466616631663539616633656362306465353633336466
+38373166643133616466643661626539653539343234616139613566666632313634366662323062
+63373336353631313563646133353462653839353337643338643535613765353861393034623562
+32333239633938333133346632626137386631343738646264353932313037333838613737653063
+62383263623061393662373439653830326431653262386239336133316666326435396638383531
+65306537346539363766353762316161656165643566366630336464393831356239633035623963
+65343232376162316639393263363135343130653337386261663631656534353931383862633538
+36663165623261623835303635306538646636656636613365616532633731663636316466396635
+65623362376438336231646163313734623866393965326134363236396432646534633163626534
+61313739646561643062303934636638353535383765396266643234643331386131613037363131
+39353839666538336335323937616362346166666538663664313030316664353234363930666436
+35323763336133626662333939613266343933346465373030646237373537636133626239313663
+65303866346462326637306230643835333063623265616230636430373138346335663034353530
+34306365326231316262613163346632376462373637623661653734353534386434333030366435
+37323639313636313066663436323931366263643961613637663264373466303634333762383739
+38653763356532643339356232623334623235653738373161333362666262326438663232646331
+39383737623439346139643861643830306331386131653539333136653466353831376465666366
+31646337376639323931666562376661393633616461373835303134303463326339626631386364
+39343337623063356662393064386338353732306262373132623465396535313039393332313766
+34306362636433623261353866313766373638656534366337346439316334373962663732313633
+34616430613331666132393665376436303237343366373165373934386236653962623132393435
+36353165376532383232393235333337336665336338383032343062336366356135613636633938
+36383665356137313565663661383731363065326566323131663636633261323563653138326433
+63626639363933643238336434633663363336373032343432336562613464623135323930336461
+32306461363761333266623131623462376239653732616133376234336261313333376431643362
+37353638323235356663333266626135633437303837323032656433333761376366633634373163
+62613034636265623834626435666638613561303064633634376361623130343230353565303061
+34613264386233666632373730626138316437343338393030333364373930343239623734393666
+36363463336538646538373763363534623339646261663835313733373635303866303931356462
+62643438396332336334383839396465653538333035313863396237636534626633326231653062
+39353664386631656366623137386137383764336262343865356536363863666161373535393039
+61623039323163636435383039376265623232386331646439666634646537376231363337623565
+33636635356134333736626364303664333663366539343737396337363832373131303261356230
+36313232633062333736326664346363633632356435643764386133373637393833333738653634
+38616238326562633930393462643732393161353232363363303261623034313166613132643861
+38303836633335613036643966333433366436373164626332336532663339623263396163376233
+66646638656435626163373862346361303537333030653338383830363639613433363634346233
+62626663623833383530656263626336616434613033303833633234313637663436656332303039
+32336638663530663234663164623334386332633032346636373032633438636230653538343537
+64663236653164353962346331313834343264393534373366656162343064313339653537376131
+39623733323263343233623962373335336335326164646434623833356139303436353233393064
+35376665343761646632633234336239363735366333333834336235393663646435666530613138
+65633337383538343734343265626339613066306236336563646133363766656438353662613838
+62643466616134363139646131656565663739613961376537346366333564616266353866633137
+64643338633332306362303735313432653933323962343264323237336165336236653335306565
+37613166356164613566343739383862616437336638333163623061303430373431633439633036
+35313864643530623963666666386238656661343631353436313164646464363465383333373633
+35356632383639633933393439353866643663396432346461313561616430633138643263616433
+66346634393439643031613063666637663430326464353364333134663431653461343933376135
+33373462323934623765626536333332353337353566313464616638326463346536316131376564
+64643830623034633334366330356535346436613363396531386632376264306131373337333233
+65323162373337656565363234346435356466373264386336613534303033316135323763343634
+65623039383436373531343634316138643461313831373232626162306137353437376165316237
+62313239346233306434316537623761346161366365303235646361303736623139386336323334
+64383537656265643030353165613465303431323232316462636263663133643234373830383463
+31633635356532306237316236666264666532333733303933616639313236303838313532656130
+38396334363331333731396532646164386136386138633436623164623737636564343330396566
+38316235316436383961316661633139666634316662326136633231396134613634626563393334
+31613837633134666163306437346137373738313736323537623363323264383066346531336533
+30613233323235343933353435636532396364393963323966306538663836666438336137353432
+36333235353061363738323364646266666238323735613365663732373038393632386465626637
+37666362393661613336653365383064393130346339306234613562656130636232363063623164
+32373030623837616365383732626631396536613566383039373331393435373234323236633639
+36636531666666663466633066663439323637333739383833336136333633393339653937666638
+62653730386437653363336337306164376134363335386562613038393431363836636330383261
+32633630646435346331626339316334343830643463646138316363326335363835663561366531
+64636639336239356233333232643731616235306335323864616565363030343065393737373739
+63353038333132383039366639346538356234323536336434353439633761653233623861663430
+31393862656133633038386333633166383862613862336139363363313966343033643834393331
+64663532313138343639393839323431636165653431643061616364393961396237396437346131
+63343938393461323836393139373265656361363839366464626563343464343231323963373736
+38376566303666656332346136303630613637373863636131366130613062633162633063326362
+63343766363633623965666236653665353833613566633135343339643533376265373934353132
+32383736356431663930373537616637636132613265343437623337663163336463366162356436
+64343466373639316263373064306336376636616634316562393039663430396335633036613965
+31653639626433303236373365303561646364363337353264333166336235633265323266386464
+36343165653839623134623361303336666636656637363637616365343532363838633364373535
+64666532643136323630313137623330636238353932363763643937306561366635366337323130
+36383133386233323835353239663436653163616565346265316235653463373866363234353461
+38366438633865373030363466633165633539666334333732613461356339613332313163616233
+35313466616536313837306666326638653738626165663761306435353432666366383733366666
+36306436383964353236663736636263366430636566356132306439636161316331646162333433
+34393736323765613837306235666636666632636437383931333264376366643434653664613530
+63336362363064313864636364373164306432366437316261613362363164646134626635623032
+37316533643939396631396362646535633634343635353961356364303839376665373132613866
+62386232663663643230623930326666613731363863633765303634633865356164663538363262
+32633263313838396662306138333561646133383163646132643036393034383264306538653537
+61313034636537626236353164633732386264306366343439623736343765376636303336623861
+65393635356262386465633763366436353738343535376630666162353431333461643739323334
+64613937333665643161636133306336346466383765333039333733356266643530303761633162
+62656232333638626431333539306635313732373038653634383834666432356236333435336636
+66616433353130303437363734616634343630653831613635333365373433356638333438643466
+35306237333163383936636463366635613733323233356165396138303638363634623161623430
+30663964636634663038316338353265633763666266646330653166316335393138303535336638
+39623062643632386661373262653432316435346330643536386265383433663561343433323335
+38383834383962346134363138643932396530313235613338656238333137313230326362303730
+34303762636463386132363336303661313732623665613065343466356232313039656563636531
+32373936333161316338656339346334366165643134316635656330343362313864633836323537
+30383933356261643635653862343164313939326266343464626132393838333435303635323437
+31363738346465616564616639323535366332633466343462666230326531343961386265316666
+39333432666633353038656636383036356133306338346139303764366232613562396163623433
+66613966623862353065336366643035383363613131376461363565623565393237663138666365
+32643332393533363532333335636166636365643037636430313934363566616231313034333164
+35356237373637343562653133666531356130386539353736386431656566386463383463356464
+32633536336433343239383633643535316462333265303037633161363331373036393663613930
+38303732663864356139313235343536663261623466646435346630646430306532363230343534
+61323231656165666637633463363836363630396563373136323665343062346533613232363933
+63633364373430383232313366363166616635366665663738333566626338383030383330646466
+63653939326663616632353165316266313933313434643564306562656339363163636434623730
+30653938353730623036656439613265616133323238646139656236656639336433366464646137
+62366136333764346434633661393131386562623236396333326366343832643031393335373835
+62356639333137633934316632306235326630313030303133633665663464633334386366333333
+66656337313435373765626666646661386132646537653235613262373236396532386632386165
+39633130623739393066363834646264646539626464356534616335343139613736653830383831
+37646433326662643934626237306563376237643765336639363332376238623835333462623638
+32373735343066643731393931316661633864333061363463616139376430353064613035346235
+61643663313231316231616463626661643630616463363362326139326362346639346564313439
+62313335633164656261653335646439373031333230333635666136336333383930363836333336
+64313832393339316365396564396236666466656631316365343735356464353737333537313233
+33346130383138376166616631393064633930353464343235656637653039636639643139306131
+62396166636564353134303261316535666432333231366164663061343562643933633263393834
+34316430343635386139353065653262343165636163666361353866633939663436626636356566
+62323231666232333636323064303131656431636634666364623462326334386131356133303734
+65653464353130636165383333616566323261376438393065343038333838613866623762396332
+38626438653765663536656435633634366263616630353363363062356232343937613065343765
+38336634643064626536346262666331616635323266383034393566666233323736313362313631
+65343238363730633366313930353962343665333033393133656339376330653335323634626139
+30613036306636613565636332626264636532373039663336323537343237343737376437303763
+38643764616233316139303362393337363135323766356162636162373464323935633831396363
+66636666623430653237393562356238626465633937373465383064343765626364666666333037
+37383561656163316639663637613531363932383965313962396536376235653965336434326635
+64306261316530356439386633666439393037303365393036356437653165626431346133623939
+65323938326430626162383539303135633535393566333034616333363865653433666530356562
+34386264393030653438663038643939373536376466343739303364303634373038363439656663
+38386538323764656337376331373932306134323030376366323338613035376563333163616630
+31633866633437353364666531616537396535386638363935313566386564313964363038336635
+35663763393966333432663435303839656532343332383132343339633664333732363930373133
+34303634663163336466386436633639663434383864363339323730343062356534356439626661
+64386435353933316361393737646436656236353862653036636331366665623334393633376164
+64393538393931303934396361363266623535363066333065333839636132616638623131323935
+37386161396335363334363664623066613234613739363562663939616633353537623434646466
+31653635316232623234353435626363336565653034353564616235633739383435366138363563
+62333833333833343235656165333764353333333436346361613166346233356636663732376333
+62353066396331386532663538313732646265663931383739643231346131366339363432353261
+63393130316639666534633237326562343539623531663130373561643266383335623132373839
+39666562323264613635636664613763333838336636636462396237303266656530663332353234
+33343830623834636338656436386433383934316235313433346637306163666462656631626664
+62386130613834356435626262343363376365393465373765363764333364343664643636373062
+63376665346431653665626164383639383462613834663135363036643835303337333139393936
+32303062346637383465393861623163376665643865636362343164356333316231323839316533
+36643533376263613333626333396461636630346530316335376361383239333331363164356539
+33316435343665396532313030623939306364663465303732346333643261353965323538313661
+63653065323835326536626337653065653364623661633139343463303837366235303631653132
+38663237643464393735636166343738373435303764643163303932396161323661333264343836
+37623738343635646163653334306463343331626338373839646364393236306232303738623766
+31366539653734323265653163393833646132663362633763633562383432356238326366336239
+31303439626161613935353538356438363530373436303864356631343031653964653464373061
+33366665623661616131333936316362333034333631623464623165613062326235653737626361
+63376634376534633439386361393035346436343130323832363631306166636166386437306434
+30313163353030333838363232313266306430363663643765343338323266326661653032346535
+32326362646361643966376231393931336464663039666339366563366633306239346336616130
+32333361623239616466353633326465623634633962663833653935363865396561653831653464
+63393730393265633262303939353262623339373038323833303232633531663164313233616330
+61643438303935333539343766633133623664646563643332616430353963626430373461356135
+36333639663231316663336333386261653533636465336236346630306665613162363737623134
+63386132356131313063396533323961343333396465303866666437373833633761303338616235
+61356365653638363264346130363831303538313234373430333936353966343233663934323033
+65343132316338313266336435323466323863333831633165643365663934626162643762616265
+65373866303239393766353738626536333732653838303663353534396233643234386139303762
+63616162313764363530396534643237363361323132363635633863653261646466343636656531
+32633361383138343434343733626539386437373737623863343061363764663432643337393561
+61396665396534313132323761376661656263656539656364376263333734626266633166393436
+32653938633432376132346335353939313366383939626661383236393034313465616234323335
+33306230396632623738333732346530353965383035363561313235616431353331643334333338
+65383264393930373134306437393037353631313832383537386262633738326532623832623635
+66313434313730613835336335306134356564393366316230366165653335376334316331313961
+37343933386632653232343435393333336433323639613263666437626234303436313136346236
+39636434356165323232633132666434336432393831656238616334303838373831643936323333
+39613038663765396436303538383565306638376365666538373134366232626236383065643161
+30393463646661353666366630613465323864363262643366346163346239616462653839636531
+36396235633938366131336361636332383134343935383035663934386336386364326136373532
+32363161323830346364306334653263636264663034343437626637666238386661383464653638
+35646331636165373462303936393965633365323463313836306262333261633636656366323538
+37383564373639356264313033313664333037336638313439323662363134623666656632383132
+39646139336335373538646634633432646665653364653130643937323939336231356139666636
+66363464663164666633333831343335313931613934383131333762396239333265373432666536
+39303936373338333338653231376630353333343762366332616363666138336435383835333330
+37343662336561336136643562336234396566333762633132663631376363656333373435623762
+31633031393635326163373130623833393263323864343739636630313165313034303831386461
+31383539343961343131653431363739356332373765306234363039376330653934626665326662
+62393136353339663336663837623935666535333061653438326631306438663034346231383362
+32616639363335393137386436363834363938663639393237383630323764656265656463613365
+35323361643562663737613762323737326164373466386238333938646632663537386337323762
+36336565366165376337613738353263373637386433373462353730623065306339616239633562
+31373939336234333835343563663238363635343565356634633662393635663037666364373132
+32333064613834326535376264333063323764353766383063323633643663343738363636333362
+38633738333735646236333061386634316634613636393633376462393561333839666431343863
+34646238343139336563386537653563366230626638303961373635306137633366643332616330
+36363565333030636434383430623361396434373332326234316162393762393937626464396132
+31623966633330366435313335313966666564346366656230376665303665333735666331363661
+61663937376339393765313030626138383331626561376665626364323464366135626564666362
+33396561626639656534646263333430333838303866653635303939376435653764616538653462
+63663932353930626138633237326465653635383931363331666537663338613939326565626263
+30653061376137326235363930393064343336313936643133623836383032613963343336613961
+38663163323164303638656566633135623863316330363463336462326435663732643031336163
+36616264386431303235623932396138343635623463303635313865363535643039613230393161
+32386463376537313733313666636462336439326530303561373561316237653164353531346635
+35636633653638316635663133346463383462666531643734663538613539326362336161343139
+31616230393630313139376138386330323464323263633331326631333535323762646661383835
+35623938336661313234656633393766663134653232333962373066323165656530376435343935
+37646662316234376139313232313363373333346262626566396330613839663735376362666131
+64346330656461613536343933316138363833346234626338316633393630656634383830363336
+39633636323235373633363366386339323737633230383834646232643361323238643736373239
+35316639353139396138356436303766363232666639346465333231363733373064333636653163
+32303639656333653230623761613566633236633034336465336638303163366364356130346264
+32353366376532383261353865323065623933343039666462626631353766666466346661356436
+34616261343635353665323865666538363236393635353066356438623262616238373638653230
+64316633653433363130323463656439646465333464373065653434343362346632666338363438
+63663339663762643936303235333264633933396565323536633839326363343838393061393264
+39613863333862376536353061353333366239643662623363316232383034626635346438643834
+65396139316432653765316135343132666463343939313061656233336135666361636166366665
+38306332633465323039326130646638323561666365306337613562616232326261363530306532
+37393933383463313331303036373565373365363936636363383530373130316666326238346266
+66353066393563636534666530396236373332616165323831376663383438633162613536613937
+63343636343031376539616534333830356335316636616361393137383065303166363838636339
+30363930396334666665633631623338396339303363343061356630313335656361613839623135
+64343831343333363538363131323031313238303839653534646436623738373337316265643039
+64396632666231323663623237356339643566633833326366373265376139393666373932373662
+30646239306561636365653230366230376662613439303030303362616232383163346463303161
+37613334363134363535613764393336666666316439666434663737653635643137363262313037
+33363230396165356235346635386461353538326230626139643834313032326438393031633434
+61336362623530366266393238376135316565623665623033343230313538626232353631363234
+37353033616238396238383464643437363531313364353562386132646239366465306330646333
+63383139653232303033666237663530376161363562386334376366333037373634333139343863
+65373637643565316336303437396566363332386363623466663031643064393064663533343064
+61376233343163376439336565663136356663336361313065393233613038656265343630373263
+66363639356462663335646339623563356661396334663039646637636366343231366461306438
+34326635373438626662343332393433313137313064623830353334363531373638316233646331
+34653838326566333637336636636562313964346536653463353632336532353163303361303632
+33663663393366383938623764313963393536306362303035613162383535326238303562323434
+64613831376662653235313666663430303761313031656534616132633462636265393338313832
+35316331613961373332366131646533306231666339616133366437623435316364303263383666
+31663934653362626234393437396432313230363862353437663730313865306138386537663735
+30323566336362306237656465666564323261633734393063316638323935346138363364303266
+34303339393035343737666264326165636635363932343738373233666439363562356630313564
+36616534356539356263616264373139336666363761636565623066613662326361666163663830
+37623131346336353837633936643135386262613137303932373263356237653963326465393765
+32383039643863303364616166396165336435396235623964313363393836383566326362643330
+61323837376565643963393533363861373735396135653935383964643866623531386564356535
+65633639656465306266343061613463623464636333613334353863663232356137373831386565
+38313732353162383062383765323938323031363037333466313739623635303634323931303566
+62396263396638623066346661376532623931316662326466386164323261313465666139616336
+30303537663130646535386531623266326533383662376535633332373662323031366434383730
+39393131663939353137616430386264376136316537373933663162663532616633616230393765
+66386264316461353638643837393838346232646465363031623934656233616531346132373836
+61313562616332633633333066656463653763333136613033323966313132303665613764336230
+35353265323166653135353031363033343561343331333630363166386663643635336561653661
+34643864646566636139353635323166643962626233613139663231646665626563376339653566
+38366261346338393938323664663034373531626236643734653162656137653639666538656631
+30366231366632383836356566616133373935623430663431666364386536626436623238613331
+35303939373132336235633265666366653262313430636434336434343864383230656264316336
+34393730663162313433303563333936333430303261343338656235376236306133323836393337
+61643534386334646265663131383863313962623438626634636633313936636638343639303337
+65633438363332363939326463363664343232633963323865356530616461663337323366366534
+64333861353139323934393263323236623831326164373935326662623039366534626263346561
+32383833656138656438616634653237323263313763326563316238633763313461373432336639
+33626665353536616333356639376138323231613130303030366266663037353464656230616436
+61393238343538623636303661633236303466633464646465396464663938356138646631366636
+63366231323461393539366131313761353363623664363265393665323632646237383432613863
+64626335393362613864356162326335383635393166336136373066303338646638656138343663
+65623863646561346233333562353639333264636261383836613536336365356563393938303936
+30643465663663323262323836316331383936333962633334316666623735306261353437623739
+34636338616537376630633637613461306233636666373931656637633662373133616335626463
+64393864333336303334306131373131343830353661633937303834336561636461346538643231
+61383437383734366662356534623363383030663761343532373263383331386264626664323932
+32656265643034383436633831343335303035313537323961643239363638623636633161336164
+39303266383761366161613961366237323430353433316166306437396635663331613632363838
+65633266303465333562316637336233333938353036303263383964636138353737666536363638
+66363361363330303961323935353732616665633333633133333638363339373338326339323964
+66336363626138356461373633333039373638626637363866316231613664356165666337663238
+66386632663730366264313839326462623138393866623635646264353630383234346635383961
+35616630353931353239333863613139356164643365643635396365613432613937646465383863
+31323666343535343035323838363962636333653537316339326361323962353631353935636633
+32353838323035646362656664616434303738616533376364653434376130393730383137633263
+63663231386433366130363465343435383331313164336437343361343532323131653162646331
+61373234346631373534376537643530376337376130393638623537363463303465666638623338
+65393632316434383835613431363539303739623936363763653562376635346637376530613539
+62366436373361356361303862363937643466366362636339643230376536656462663133383564
+65386561393736383930636561336330313832316562636439396366653430663135393632643463
+64356132333036376631376432663331663165353166336665306464653435316632356266613763
+34663737356237303138373265626338393736626230343162636438393339353838356637346464
+66633966626662363632306430306430623535626139333465366530383730396136323363333766
+62613664326236336263336132613435666166666365653061396536626635643564353633393936
+35626131366562633464356332353164613032633438373933323566663766626362626136363561
+39303531666538343362353564666130306232663464303262383135393031633430653264393064
+63386663363938393738623230353664356635373732653832326433666630353061613364383766
+30353434356131313864393337343566333830626433336235346132346638376237386634373766
+62363631326131336137646462656134623933663137613131663366356437376362363536666438
+32636138393035393563356137316462393831663834363362353939646231336230646430306665
+34303063633636323030666564653633623862343632333364633965336331623566346532303266
+66386561643932333662653861373537376363623836363761376461383864626334613838633332
+31626563643361633362306331363734646330343837393234636430333064393564613433646261
+65623536353464383261303433366138666232616136613635326437383032386431373437613934
+32323937356533666263366465623265656635663062643935666630656331326537616166363962
+64376364636630363036323330366138313937393937626533313664323734333666656433313635
+36393964633934613663343339303838623163336664663931636562626435393463653132313234
+39383666613433303536653632326464303366633731633064363561623463306539663037626361
+61373039636163616332356266306563646334376161336630633737386237613764336262366439
+66623937306338373636636438633065613231626332363166333235356665323432346434396361
+64313562376231616136353730353364326239346166393035363536663539326638333137643631
+31386430313136316131303938316534393565336131366436353964323138383334613863626364
+33653933373933653939376236376635306263643038626537636539336631366163373336346563
+32313135313631396435613536376234663033643738393638653865663235336435316335393834
+33623966613662393965623530306330363664346330643833663030366364646533333737393938
+33313033643566663064316233393464623233633531343235346534356233323333333534383563
+66643862653939383838376336386138353863636233396363313532346131633335346634353264
+36316562623132376337636161343430643365363864643139643235353234396333396339346331
+36303035663466333031386362306664653039386566653762663633653731656365666531613132
+39356664316532623466346564316636663335666439383265393063656436306666303465306462
+31373438633838306235303561343031356333373164356662613062666536653565356239616233
+62326234643233366261373337376533643234376432313634633630313635306466613130386235
+31303266356431323636363165663131383065613531313165313930303031393236336661303433
+66656138386661396130306230376262633862343461313766633632636362613464633766313564
+32636337303538616536323462323236653265303232633138393531396536636563653665613131
+63653138643835306237353939633066323135336233306432633632653365336439636663303065
+35336530363735626666356135626537313431303139663263383265383831316439636335653864
+31613839346235363239613039363935613338393333306235303161623135326332303833373039
+65653133653063613865363637646239663832643239636239346462653531346562343237623963
+64373133383964333963633466386166643733653534326635633161326637336230646231323330
+36376634616237333063633166373631613036316536393934353736396662333563636664633336
+64643966663465316166323833393231353535346265613138363339656332306161663462353062
+39653731316334313465333637393430333634633264383930656165303638396634303133613338
+32633166656564346538313935633037633964363161346133653063323037313064303237366266
+37643564643265383262616633373563386264646463326530353265393837363861343932346433
+38393331393731396330633961653532393663393038336332383065346631646361656262393839
+35363065366361346364633261306164366266653365356435333236366533316137386233393762
+65313238363639306639306138303934623234623532636563336239353363656631346334316436
+35643665636266376634656235343866393634333030363733336237633234666662616465666164
+62393461626236313932393439623135613236653534646662633332363736306235396262363738
+62333830303632386335356665343330316461663462316332373333626466383863393862623335
+65656230316365396637383431323166353031666264326232353733366463616636623138663236
+35363563616265616535376437646563366666346262393339313032383361626438613665383935
+65626233663162653062386364373139353337643563656236616465613063376265653435613062
+62323835353432333665313337643930616238386136303834646136366364663238663436666337
+31613538653464383534616230333962343532353264623063656561643164373762653265383761
+35323139306532653165666262663531333933623265326266356536346232626534633066343762
+38373236393563313731303733323236643634623261313365663330356464373933343735323730
+36323234323033313937643662613764306264626162383031393638396162383532396535396664
+62343236636563613038356438613830613163343531663430663338386632663036623438366630
+31326263376432643761623132396433393637666531386261646630326439386236326363313933
+30303864663833363962326263323532663836663636313632613637336637636533643433643637
+38666336306137386535303630313230386238666632306530623439363238306661346533643663
+37613263613766353937326637313231336534343737316430333937383831616264393435646262
+66386235356536616136376136663137303163313063353031326532363039343937376533316134
+66333065363233346639633830643961623633346436623366393438383438323566366466623763
+32633036353935653933636566343138386463633265396131373330656433336562323036343363
+33353362363563613561303561356638616462396164383839623664396537316534393237393965
+64393464326266323332653439663062353832363862663165643830306365303336613161653233
+34653731666530646638646336353838353836306231613533646561653561643861313138376133
+65656430323662346663333534393631653162613135653862613833626365333936373661366232
+66616634646139616438313832646437653532366436643962343234376466643763323434646238
+38663531353835373238313337313238396661303736653631653661626564653731333737653864
+65626461633761656337396537386138626231333731353432333632323034396365646630613135
+61396339393734353866653265646164343934313235383736343939616132313336346338616665
+32656461353233613863366463346637373562663164363030376465353736353838323562626238
+65393632313763386361363330383837383633316130366331316337396566393963306630336431
+32666334386135363538636433613065646337613033656662383336373935313963343861663839
+65303961643131323533303937613666333133656162343438383134653831346139343362636564
+32396136353338333932633561353439626561383563643830316637383739666662663536356430
+37386139346539613066303363306134333062323235363961303137663265633430663064396437
+63373035656262353030336261376366653064353832306633306132376663303761343063376166
+35323237313837303135636237393130386234326464636466383936373235663466326635306636
+38663931646164393736646535306162613963366131623738343138323438363839323132343862
+36323937643033656535393135656461616531653331356565396337346664343865393761383161
+62353337396638633635373461373161653636343637643337373339646635613161643537366166
+34383537626361306438386262613035323761666161313938643230306666656135646235623337
+31663764346365616233353434336565613461646531356265326163363165666433663763323332
+39353538346239376162613866333361656338313330623865613939393533386138613263613832
+61663934306236336230363932666533373230316232316339616433393933666639353938376266
+66653434323934386361646531383762343134366462383935373631656136373863343364393136
+66653161373064616337363738613737376664616232653631303563303734383064623336613130
+66616539386236666331323835376430613736306131366137636462653362663461626632303535
+36356563333931386133653664613566356336653830663533613031633235343865616636316165
+64313034383133646563346633343034626635373838623162363630336464626162383338633339
+31363163643038393739663130663030636130396636643263633864383835313132323034623565
+31303337616461626161356231303238323966323465383535663465656536336361353234633737
+32363433333533353539376362656138383431623638653633363238646438306363343434653738
+38323866626166656633306235346136643834633339313037373564333564636634353863353266
+33353966303064653737343564626238396635663034666537623039363835363736373039303134
+63343632306635633935613961383261393765326462363137343634353839323130626333623730
+65643630353833653336393430643335373462313232376463663731323837313466643431373338
+61333865343232616162646462646262366634663036303730333262376133653862613832386231
+63383761666363313032646132383030313537383265663132303036343463333065363036386330
+62396661623939616463393839356663383361393534653239616538663331363938666135343162
+33636231383966393565313931656434323465386561336231343266663035663763366435386439
+65646633623432363036356434333637393134616361623133376638373731613033313333663133
+32663432633564623937353665396562383132663261353436663665333334393336623464376639
+39663662616161663135346133383535353861306439363365316538333331636432363736343633
+36396633653762643635656636616535323731353039626164633434653464366466656631306139
+35376462613662353164393536643339646430303634613937363864323536666339346137363137
+62386363303365643266373563373738356631643861383938343764643465663033383763343930
+36373737316164396530643538353065616538353132653531623039613036623365646332643338
+65393234643037383436616530323133656439363837376662613434333333313937633435393639
+30396630316338663966656663343066346631356638333136363632616264323636393232616530
+38323164323164656566376462313336373362383864643863313265616334373464366139663163
+62383166373562363139353938653335656566633639366631643834623632353163663266313661
+36666162646234386331656432363633623837663165356431396536313233303932306535316261
+64383562633036366533656263636233623333303630616432383537396262366131623266656335
+38343463343262653835313263356435616661633966353636303865383961336232333166373632
+66386339636463636135666533613963383437363033343634313335303130323139613434633338
+31356661313436326231353762343731613434316334623666393033363865323035643334383463
+66393465636536643966363034323264623137383032366631643931366363636636396234343865
+65633866353263616465356436393863373531353062356138633133313934626138383762393133
+62373366383966313532396265666431663566366332383737636536633961333130616665323532
+63356461393163343637666330616464633337376332333637336566663232333739336335666531
+66666132663962333837643239613063356262343134303637653936623566663236376261383661
+37353961356335373561373839663631396330376161653933623363343965623262313766323237
+38316131376563356463313864386165653032363932656162323131333937643131313761633038
+39623330666238656261343138353065373136346436616562653463316235393935643837613661
+35323538383262316332616534353531343664346639306134663336323562636331366330616335
+33343466303438623663346166333366616538626531663539363834616366306462356632363836
+62356566336263666238633832376363323062653163323135646661326234353565623534633232
+61656135336563326166663664343064386566316166313363663732636665313630386436663538
+38336666393836383432643062383133303066633739343936333031666230353866313230636565
+32383835393739623261626238626230633738666639646663633031366333333630393630643137
+64646537366162366265353165373561343934653238623462356230633230356333633962323161
+35376436663166383534663230393839363939633466613666363436623331343633356365313136
+63346262633132326534623138323239386662333834653630643238373930643365303666613463
+37653333663239636363383163353863666236363565303266356163316636373730353963663736
+61323035383130343666636135666235333131373163333564373031643938636365646631333762
+35303230363339356139346663366231653330333534376466633062643533356436333235613363
+39303833313862333963663338666435653438396565303565386561346237333839353931306562
+64653162346133326138326639646636313061356532663237343163333432326632326632313162
+65613932373366353039346136306531356236343733633165376434613161386664623462623638
+30636135666535643630333031316666393835336162373436303866346338393634656237666466
+30626566373939353130303230336638613762373537643235666361346535383066636462653434
+33636266653937363763623861393834633231396663393930393161383034636339643938306162
+63643432353661646236626361323834323564373337383333623333616666383934663034396562
+33323833343765363639383035613034336362633666666231653864613835616339306134363637
+65323531386139613437643030623134363238643162663031336538306461396537623039646434
+62326565663066633134663866376535326261376431353337663539363933623665383562346166
+66616561666338326164623936623864636366343533333762366163303332383337356635616561
+62396363383162616664303865356131353962383431373835363061353566383430343932343331
+32386334303665616234353965646263623830623065373736623239313266316166653932653232
+35663030343363303535666165343733353631306334356162613664613539336566663130323336
+66353239653764613830383465646236306137303932333739383734343334343132333361363937
+66356561333439303531303034626535323762326339626431616262373266623837333634626132
+38346236313563366631396263363034663861343631373035663932306538643037653735346566
+64363262386136396663633064323061343032303430633261363333633862333834343132303534
+35376366663931376266313634643638383665633737366261353932386338303139653363363365
+30636435616532636130646364643336343235383462386638626665373533353431393836306139
+32373566393665393632303064343032663635653430343635336138643666356430393239303731
+39643864343732636465626466613037373333366461363166363265643162363337653565616264
+39346336313535323134376332373762393432363330343562316337623034306264383935323639
+32333338396532623431636463626464393662316638376638643635393065316463636564363664
+65623836356666343066663135376634383233353231626262643431356263616633313663633930
+37643830393538363565656632666133653336356462646666323366633133326466666137313732
+38373933363837636236313463613631616331383536366335393836303632373431306536386539
+63656662323562373534373132623732303164386236353238313464353764613263616634613335
+36383637383733636630353337373965343565343337316262623061343562373833363162353363
+35306333623737646266316638303366346364346234303331356639656131353437316232623165
+31643433396364346638303464613833373566316565303663643436343861616565333637336137
+65653831323637326634393736363834343363373130333938376264366637393662653166383963
+31383862613131636161393730336266616132623162326462626264343066636563623730373734
+38346366383137623463646630346130656462386234383436393235326137373734343863656264
+61316237383937656130646261626334666639653439373935353836346162383762336338353635
+63396437336537656561353136616463326166373732356230373832623631616239333936333431
+32383936653164383161326334376230353664653165643231333536623165373461663330653765
+64303932386230613532636334663533366639356166363863316538633238656232656332663461
+66393635346138303539343337393236643533336565323734616639373437326465636439663931
+38333863366663303331313133666134393666333239623538383333346639373932363362663636
+34396632336638343034356632633463643862636533343762633837346532663866376631623438
+62613266633061366664613339656137336535386230393562653562373263653338313263663838
+37376330326239316561306534386133313036663566363561333431623038656239383262386462
+66613563633134303937613734346236623037343436656338326166656431663331663064623835
+65346634656438353734623865353430323634303139336531626638626234333666356235383436
+36333361616631383932313331646565613161336366636164663938613231373233393132313738
+65636561663537376230653131356237646431646132396662383230343837363963366564303432
+65613164333332356163656463646338363235636530383933353432633934346162376339356539
+33376238333433656234656665303937356433363761666565633761646164633731633235353839
+61303330356331616165616463666539383832373032623466343732366561333365326663313763
+66363961313732613533376463323561653631613264663566633936616464313830333235396462
+62353536356239316236373562346562663964383730383362336464366234663530303832323734
+37343731616266323330393431373631636434336666616538356164316638646461336461633730
+38393162373533623962386562336563306631663062396531376161363438633264383862303062
+32613663363263303330306433326137346136613435373230346636396536376363643538363135
+35623831326434363232383163623931396339353363343332626162363234633430386634316564
+35653939653631376236653139626538396666313937626235643835316263313238653134343934
+65386161656339346536666565383166373937346131383662383433346134343237363833323935
+35343534343235653336626431346232333063373064616135326535613331313663353361623736
+34316238653463663638343338343163313936333232386339356135643165316137643039633461
+63313062323637663034636562633238313639333634663566623164326339373633343566393539
+35626237363266343433313064333962343431346564333635343035396231666564343362386131
+61313933356637313735366166326335656339323439386334323639366561386463656633313561
+30646135373134333536393135363865643932616235653838646236376630383264303038333664
+62656164633135663039613633323437366264376437333338363363383564356338636430623431
+61306638643833373863353465336132653730306331623730383664306464343735303738346436
+31373538383938666335396336613761636639353733663232333639356435366135616331303137
+64643934343464623766363562306434313431613630373338346433663436373437613864616634
+30653339376163306563396137616239663834633233623330313034646431613630353634653366
+38663563323531343530333630386230613134656338376536346535376265303362636236626439
+37333239656465623935663766616139323931353532363664313232623639636239353331373335
+61626665323065333163656661323065336336306366383865353866303766616366353137383962
+64613934366365383839663262333738396332343862343838623038633763383934336234353463
+31393561386433313262646239393832346666393835656361623064383339633662303466623965
+32613734383630633261636337313533353163363764336265623136656636303536306337363165
+38626663333831306332346231356435343039393739393135646531313331303239613331383835
+61653432393437303063323963393732653435383130646662376564333839343033643239376138
+66643833383066353439636638653462363930646566633635386338313733356562336331326166
+38646261353161326162303338356565343836633133336465666434666635323262383439383562
+31613766666466653835353430636531313033316664653664303038623035646366633639303634
+62316262313566613864613737383163373631346366366666373831643833373966353537346530
+61623865366262383934646137623532316161643534303832376631656530626334386233363337
+36306432643634653961653931376437323437313634623638323836623238353135633933303731
+666562613235653164366237333861333330
diff --git a/fdio.infra.ansible/roles/ab/defaults/main.yaml b/fdio.infra.ansible/roles/ab/defaults/main.yaml
new file mode 100644
index 0000000000..adabf1464c
--- /dev/null
+++ b/fdio.infra.ansible/roles/ab/defaults/main.yaml
@@ -0,0 +1,18 @@
+---
+# file: roles/ab/defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - []
+
+packages_by_distro:
+ ubuntu:
+ jammy:
+ - "apache2-utils"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
diff --git a/fdio.infra.ansible/roles/ab/tasks/main.yaml b/fdio.infra.ansible/roles/ab/tasks/main.yaml
new file mode 100644
index 0000000000..2a70fd1d1d
--- /dev/null
+++ b/fdio.infra.ansible/roles/ab/tasks/main.yaml
@@ -0,0 +1,18 @@
+---
+# file: roles/ab/tasks/main.yaml
+
+- name: Inst - Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - ab-inst-prerequisites
+
+- name: Inst - Apache ab tools
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: present
+ tags:
+ - ab-inst
diff --git a/fdio.infra.ansible/roles/aws/defaults/main.yaml b/fdio.infra.ansible/roles/aws/defaults/main.yaml
new file mode 100644
index 0000000000..5b6978da51
--- /dev/null
+++ b/fdio.infra.ansible/roles/aws/defaults/main.yaml
@@ -0,0 +1,26 @@
+---
+# file: defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower] + packages_by_arch[ansible_machine] }}"
+
+packages_repo:
+ ubuntu:
+ aarch64:
+ "http://ports.ubuntu.com/"
+ x86_64:
+ "http://archive.ubuntu.com/ubuntu"
+
+packages_base:
+ - []
+
+packages_by_distro:
+ ubuntu:
+ - "linux-image-5.4.0-1009-aws"
+ - "linux-headers-5.4.0-1009-aws"
+ - "linux-tools-5.4.0-1009-aws"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - [] \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/aws/files/get-vfio-with-wc.sh b/fdio.infra.ansible/roles/aws/files/get-vfio-with-wc.sh
new file mode 100644
index 0000000000..02a3139b66
--- /dev/null
+++ b/fdio.infra.ansible/roles/aws/files/get-vfio-with-wc.sh
@@ -0,0 +1,203 @@
+#!/usr/bin/env bash
+# Enable WC in VFIO-PCI driver
+# Tested on:
+# * Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-0bb3fad3c0286ebd5
+# * Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type - ami-015232c01a82b847b
+# * Red Hat Enterprise Linux 8 (HVM), SSD Volume Type - ami-08f4717d06813bf00
+# * Ubuntu Server 20.04 LTS (HVM), SSD Volume Type - ami-06fd8a495a537da8b
+# * Ubuntu Server 18.04 LTS (HVM), SSD Volume Type - ami-0823c236601fef765
+
+set -e
+
+TMP_DIR="tmp"
+
+# Kernel modules location:
+P1="/usr/lib/modules/`uname -r`/kernel/drivers/vfio"
+P2="/lib/modules/`uname -r`/kernel/drivers/vfio"
+
+# This may return an error if executed from inside the script
+set +e
+RED="$(tput setaf 1)"
+GREEN="$(tput setaf 2)"
+
+BOLD="$(tput bold)"
+NORMAL="$(tput sgr0)"
+set -e
+
+function bold {
+ echo -e "${BOLD}${@}${NORMAL}"
+}
+
+function err {
+ bold "${RED}ERROR: ${@}"
+}
+
+function green {
+ bold "${GREEN}${@}"
+}
+
+function get_kernel_version {
+ local ver=$(uname -r | cut -f 1 -d '-')
+ local ver_major=$(echo $ver | cut -f1 -d '.')
+ local ver_minor=$(echo $ver | cut -f2 -d '.')
+ local ver_subminor=$(echo $ver | cut -f3 -d '.')
+
+ printf "%d%02d%04d" "${ver_major}" "${ver_minor}" "${ver_subminor}"
+}
+
+function download_kernel_src_yum {
+ echo "Use yum to get the kernel sources"
+
+ bold "\nInstall required applications and kernel headers"
+ yum install -y gcc "kernel-$(uname -r)" "kernel-devel-$(uname -r)" \
+ git make elfutils-libelf-devel patch yum-utils
+ green Done
+
+ # Download kernel source
+ bold "\nDownload kernel source with vfio"
+ yumdownloader --source "kernel-devel-$(uname -r)"
+ rpm2cpio kernel*.src.rpm | cpio -idmv
+ green Done
+
+ rm -f *patches.tar
+ tar xf linux-*.tar*
+ rm -f linux-*.tar* linux-*.patch
+}
+
+function download_kernel_src_apt {
+ echo "Use apt-get to get the kernel sources"
+ apt-get -q -y update
+ green Done
+
+ bold "\nInstall required applications"
+ apt-get -q -y install dpkg-dev build-essential git
+ green Done
+
+ bold "\nDownload Linux kernel source with vfio"
+ if ! apt-get -q -y source -t focal linux-image-$(uname -r); then
+ err "Cannot download Linux kernel source.\nPlease uncomment appropriate 'deb-src' line in the /etc/apt/sources.list file"
+ exit 1
+ fi
+ green Done
+
+ rm -f linux-*.dsc linux-*.gz
+}
+
+function download_kernel_src {
+ bold "[1] Downloading prerequisites..."
+ rm -rf "${TMP_DIR}"
+ mkdir -p "${TMP_DIR}"
+ cd "${TMP_DIR}"
+
+ if apt-get -v >/dev/null 2>/dev/null; then
+ download_kernel_src_apt
+ else
+ download_kernel_src_yum
+ fi
+ cd linux-*
+}
+
+function apply_wc_patch {
+ echo "Using patch for kernel version 4.10"
+ local wc_patch="${BASE_PATH}/patches/linux-4.10-vfio-wc.patch"
+
+ if ! patch --ignore-whitespace -p1 < "${wc_patch}"; then
+ err "Cannot apply patch: ${wc_patch}!"
+ exit 1
+ fi
+}
+
+function compile_vfio_driver {
+ bold "\n[2] Patch and build the vfio driver"
+ # Adjust VFIO-PCI driver
+
+ bold "Apply patch for the write combining to the vfio-pci"
+ apply_wc_patch
+ green Done
+
+ cd drivers/vfio
+ # Configure Makefile - build VFIO with support for NOIOMMU mode
+ bold "\nConfigure Makefile for standalone vfio build and noiommu mode support"
+ echo "ccflags-y := -DCONFIG_VFIO_NOIOMMU=1" >> Makefile
+ echo 'all:' >> Makefile
+ echo ' make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules' >> Makefile
+ green Done
+
+ bold "\nBuild the driver"
+ if ! make; then
+ err "Compilation error."
+ exit 1
+ fi
+ green Done
+}
+
+function get_module_location {
+ for p in ${P1} ${P2}; do
+ if find "${p}" -name "vfio.*" >/dev/null 2>/dev/null; then
+ MOD_PATH="${p}"
+ break
+ fi
+ done
+
+ if [ -z "${MOD_PATH}" ]; then
+ err "Cannot find kernel modules location..."
+ exit
+ fi
+}
+
+function get_module_compression {
+ if ls "${MOD_PATH}/vfio.ko.xz" >/dev/null 2>/dev/null; then
+ XZ=".xz"
+ else
+ XZ=""
+ fi
+}
+
+function replace_module {
+ local installed=0
+
+ bold "\n[3] Install module"
+ get_module_location
+ get_module_compression
+
+ for name in "pci/vfio-pci.ko" "pci/vfio-pci-core.ko" "vfio.ko"; do
+ if test -e "${MOD_PATH}/${name}${XZ}"; then
+ if [ -n "${XZ}" ]; then
+ xz "${name}" -c > "${name}${XZ}"
+ fi
+ mv "${MOD_PATH}/${name}${XZ}" "${MOD_PATH}/${name}${XZ}_no_wc"
+ cp "${name}${XZ}" "${MOD_PATH}/${name}${XZ}"
+ bold "Installing: ${MOD_PATH}/${name}${XZ}"
+ installed=1
+ fi
+ done
+ if [ "${installed}" -eq 1 ]; then
+ green "Module installed at: ${MOD_PATH}"
+ else
+ err "Failure during vfio-pci module installation. Prehaps it's not provided as a kernel module!"
+ exit 1
+ fi
+}
+
+###############################################
+# Main script code
+###############################################
+
+if [ "$(id -u)" -ne 0 ]; then
+ err 'Please execute script as a root'
+ exit 1
+fi
+
+cd $(dirname ${0})
+BASE_PATH=$(pwd)
+
+KERNEL_VERSION=$(get_kernel_version)
+
+if [ "${KERNEL_VERSION}" -lt 4100000 ]; then
+ err "Kernel version: $(uname -r) is not supported by the script. Please upgrade kernel to at least v4.10."
+ exit 1
+fi
+
+download_kernel_src
+compile_vfio_driver
+replace_module
diff --git a/fdio.infra.ansible/roles/aws/handlers/main.yaml b/fdio.infra.ansible/roles/aws/handlers/main.yaml
new file mode 100644
index 0000000000..d55db1c22f
--- /dev/null
+++ b/fdio.infra.ansible/roles/aws/handlers/main.yaml
@@ -0,0 +1,20 @@
+---
+# file: roles/aws/handlers/main.yaml
+
+- name: Reload systemd-modules
+ systemd:
+ name: "systemd-modules-load"
+ state: "restarted"
+ tags:
+ - reload-systemd-modules
+
+- name: Update GRUB
+ ansible.builtin.command: update-grub
+ tags:
+ - update-grub
+
+- name: Reboot Server
+ ansible.builtin.reboot:
+ reboot_timeout: 3600
+ tags:
+ - reboot-server
diff --git a/fdio.infra.ansible/roles/aws/tasks/main.yaml b/fdio.infra.ansible/roles/aws/tasks/main.yaml
new file mode 100644
index 0000000000..b5132c1909
--- /dev/null
+++ b/fdio.infra.ansible/roles/aws/tasks/main.yaml
@@ -0,0 +1,124 @@
+---
+# file: tasks/main.yaml
+
+- name: Edit repositories
+ include_tasks: "{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml"
+ tags:
+ - aws-edit-repo
+
+- name: Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: "latest"
+ tags:
+ - aws-inst-prerequisites
+
+- name: Switch Kernel At Boot
+ ansible.builtin.lineinfile:
+ path: "/etc/default/grub"
+ state: "present"
+ line: "GRUB_DEFAULT=\"1>2\""
+ notify:
+ - "Update GRUB"
+ tags:
+ - perf-conf-grub
+
+- meta: flush_handlers
+
+- name: Load Kernel Modules By Default
+ ansible.builtin.lineinfile:
+ path: "/etc/modules"
+ state: "present"
+ line: "{{ item }}"
+ with_items:
+ - "igb_uio"
+ - "vfio-pci"
+ tags:
+ - aws-load-kernel-modules
+
+- name: Add Kernel Modules Options (igb_uio)
+ ansible.builtin.lineinfile:
+ path: "/etc/modprobe.d/igb_uio.conf"
+ state: "present"
+ line: "{{ item }}"
+ create: "yes"
+ with_items:
+ - "options igb_uio wc_activate=1"
+ tags:
+ - aws-load-kernel-modules
+
+- name: Add Kernel Modules Options (vfio-pci)
+ ansible.builtin.lineinfile:
+ path: "/etc/modprobe.d/vfio-noiommu.conf"
+ state: "present"
+ line: "{{ item }}"
+ create: "yes"
+ with_items:
+ - "options vfio enable_unsafe_noiommu_mode=1"
+ tags:
+ - aws-load-kernel-modules
+
+#- name: Get vfio-pci With WC Patcher
+# ansible.builtin.get_url:
+# url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/get-vfio-with-wc.sh"
+# dest: "/opt/get-vfio-with-wc.sh"
+# mode: 0744
+# tags:
+# - aws-vfio-patch
+
+- name: Create vfio-pci Patch Directory
+ ansible.builtin.file:
+ path: "/opt/patches/"
+ state: "directory"
+ tags:
+ - aws-vfio-patch
+
+- name: Get vfio-pci WC Patch
+ ansible.builtin.get_url:
+ url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/patches/{{ item }}"
+ dest: "/opt/patches/{{ item }}"
+ mode: 0744
+ with_items:
+ - "linux-4.10-vfio-wc.patch"
+ - "linux-5.8-vfio-wc.patch"
+ - "linux-5.15-vfio-wc.patch"
+ tags:
+ - aws-vfio-patch
+
+- name: Copy vfio-pci WC Patch
+ ansible.builtin.copy:
+ src: "files/get-vfio-with-wc.sh"
+ dest: "/opt"
+ mode: 0744
+ tags:
+ - aws-vfio-patch
+
+- name: Compile vfio-pci With WC Patch
+ ansible.builtin.shell: "/bin/bash /opt/get-vfio-with-wc.sh"
+ environment:
+ DEBIAN_FRONTEND: "noninteractive"
+ TERM: "vt100"
+ tags:
+ - aws-vfio-patch
+
+- name: Reload systemd-modules
+ ansible.builtin.systemd:
+ name: "systemd-modules-load"
+ state: "restarted"
+ tags:
+ - aws-reload-systemd-modules
+
+- name: Adjust nr_hugepages
+ ansible.builtin.sysctl:
+ name: "vm.nr_hugepages"
+ value: "8192"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: true
+ tags:
+ - aws-set-hugepages
+
+- name: Shutdown host with delay
+ ansible.builtin.command: "/sbin/shutdown -P +720"
+ tags:
+ - aws-set-self-terminate
diff --git a/fdio.infra.ansible/roles/aws/tasks/ubuntu_jammy.yaml b/fdio.infra.ansible/roles/aws/tasks/ubuntu_jammy.yaml
new file mode 100644
index 0000000000..c589239f61
--- /dev/null
+++ b/fdio.infra.ansible/roles/aws/tasks/ubuntu_jammy.yaml
@@ -0,0 +1,35 @@
+---
+# file: tasks/ubuntu_jammy.yaml
+
+- name: Enable deb-src APT Repository
+ ansible.builtin.apt_repository:
+ repo: "deb-src {{ packages_repo[ansible_distribution|lower][ansible_machine] }} jammy main"
+ state: "present"
+ update_cache: true
+ tags:
+ - aws-enable-src-repo
+
+- name: Enable deb APT Repository Focal
+ ansible.builtin.apt_repository:
+ repo: "deb {{ packages_repo[ansible_distribution|lower][ansible_machine] }} focal main"
+ state: "present"
+ update_cache: true
+ tags:
+ - aws-enable-src-repo
+
+- name: Enable deb-src APT Repository Focal Src
+ ansible.builtin.apt_repository:
+ repo: "deb-src {{ packages_repo[ansible_distribution|lower][ansible_machine] }} focal main"
+ state: "present"
+ update_cache: true
+ tags:
+ - aws-enable-src-repo
+
+- name: Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution == 'Ubuntu'
+ tags:
+ - aws-enable-src-repo \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/azure/defaults/main.yaml b/fdio.infra.ansible/roles/azure/defaults/main.yaml
new file mode 100644
index 0000000000..68f6148413
--- /dev/null
+++ b/fdio.infra.ansible/roles/azure/defaults/main.yaml
@@ -0,0 +1,2 @@
+---
+# file: roles/azure/defaults/main.yaml
diff --git a/resources/tools/testbed-setup/ansible/roles/azure/files/10-dtap.link b/fdio.infra.ansible/roles/azure/files/10-dtap.link
index a8e0aa10f3..a8e0aa10f3 100644
--- a/resources/tools/testbed-setup/ansible/roles/azure/files/10-dtap.link
+++ b/fdio.infra.ansible/roles/azure/files/10-dtap.link
diff --git a/resources/tools/testbed-setup/ansible/roles/azure/handlers/main.yaml b/fdio.infra.ansible/roles/azure/handlers/main.yaml
index f0d46062d9..f0d46062d9 100644
--- a/resources/tools/testbed-setup/ansible/roles/azure/handlers/main.yaml
+++ b/fdio.infra.ansible/roles/azure/handlers/main.yaml
diff --git a/resources/tools/testbed-setup/ansible/roles/azure/tasks/main.yaml b/fdio.infra.ansible/roles/azure/tasks/main.yaml
index c8d72475d8..c8d72475d8 100644
--- a/resources/tools/testbed-setup/ansible/roles/azure/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/azure/tasks/main.yaml
diff --git a/resources/tools/testbed-setup/ansible/roles/baremetal/handlers/cimc.yaml b/fdio.infra.ansible/roles/baremetal/handlers/cimc.yaml
index 0048d19032..3d244d8d19 100644
--- a/resources/tools/testbed-setup/ansible/roles/baremetal/handlers/cimc.yaml
+++ b/fdio.infra.ansible/roles/baremetal/handlers/cimc.yaml
@@ -6,7 +6,7 @@
hostname: "{{ inventory_cimc_hostname }}"
username: "{{ inventory_cimc_username }}"
password: "{{ inventory_cimc_password }}"
- validate_certs: no
+ validate_certs: false
content: |
<!-- Configure PXE boot -->
<configConfMo><inConfig>
@@ -21,7 +21,7 @@
hostname: "{{ inventory_cimc_hostname }}"
username: "{{ inventory_cimc_username }}"
password: "{{ inventory_cimc_password }}"
- validate_certs: no
+ validate_certs: false
content: |
<configConfMo><inConfig>
<lsbootStorage dn="sys/rack-unit-1/boot-policy/storage-read-write" access="read-write" order="1" type="storage"/>
@@ -35,7 +35,7 @@
hostname: "{{ inventory_cimc_hostname }}"
username: "{{ inventory_cimc_username }}"
password: "{{ inventory_cimc_password }}"
- validate_certs: no
+ validate_certs: false
content: |
<configConfMo><inConfig>
<computeRackUnit dn="sys/rack-unit-1" adminPower="up"/>
@@ -49,7 +49,7 @@
hostname: "{{ inventory_cimc_hostname }}"
username: "{{ inventory_cimc_username }}"
password: "{{ inventory_cimc_password }}"
- validate_certs: no
+ validate_certs: false
content: |
<configConfMo><inConfig>
<computeRackUnit dn="sys/rack-unit-1" adminPower="down"/>
@@ -63,7 +63,7 @@
hostname: "{{ inventory_cimc_hostname }}"
username: "{{ inventory_cimc_username }}"
password: "{{ inventory_cimc_password }}"
- validate_certs: no
+ validate_certs: false
content: |
<!-- Power cycle server -->
<configConfMo><inConfig>
diff --git a/resources/tools/testbed-setup/ansible/roles/baremetal/handlers/ipmi.yaml b/fdio.infra.ansible/roles/baremetal/handlers/ipmi.yaml
index 239b8973f7..b3cc3d0a82 100644
--- a/resources/tools/testbed-setup/ansible/roles/baremetal/handlers/ipmi.yaml
+++ b/fdio.infra.ansible/roles/baremetal/handlers/ipmi.yaml
@@ -26,7 +26,7 @@
name: "{{ inventory_ipmi_hostname }}"
user: "{{ inventory_ipmi_username }}"
password: "{{ inventory_ipmi_password }}"
- state: on
+ state: true
delegate_to: localhost
tags:
- power-up
@@ -36,7 +36,7 @@
name: "{{ inventory_ipmi_hostname }}"
user: "{{ inventory_ipmi_username }}"
password: "{{ inventory_ipmi_password }}"
- state: off
+ state: false
delegate_to: localhost
tags:
- power-down
diff --git a/fdio.infra.ansible/roles/baremetal/handlers/main.yaml b/fdio.infra.ansible/roles/baremetal/handlers/main.yaml
new file mode 100644
index 0000000000..6e8734eaa9
--- /dev/null
+++ b/fdio.infra.ansible/roles/baremetal/handlers/main.yaml
@@ -0,0 +1,30 @@
+---
+# file: roles/baremetal/handlers/main.yaml
+
+- name: IPMI specific
+ import_tasks: ipmi.yaml
+ when: inventory_ipmi_hostname is defined
+ tags:
+ - ipmi-handlers
+
+- name: CIMC specific
+ import_tasks: cimc.yaml
+ when: inventory_cimc_hostname is defined
+ tags:
+ - cimc-handlers
+
+- name: Reboot server
+ ansible.builtin.reboot:
+ reboot_timeout: 3600
+ tags:
+ - reboot-server
+
+- name: Wait for server to restart
+ ansible.builtin.wait_for:
+ host: "{{ inventory_hostname }}"
+ search_regex: OpenSSH
+ port: 22
+ delay: 60
+ timeout: 3600
+ tags:
+ - reboot-server
diff --git a/fdio.infra.ansible/roles/cadvisor/defaults/main.yaml b/fdio.infra.ansible/roles/cadvisor/defaults/main.yaml
new file mode 100644
index 0000000000..5dba8c9112
--- /dev/null
+++ b/fdio.infra.ansible/roles/cadvisor/defaults/main.yaml
@@ -0,0 +1,24 @@
+---
+# file: roles/cadvisor/defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - []
+
+packages_by_distro:
+ ubuntu:
+ - "python3-docker"
+ - "python3-dockerpty"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+image: "{{ image_by_arch[ansible_machine] }}"
+
+image_by_arch:
+ aarch64: "zcube/cadvisor:v0.37.0"
+ x86_64: "gcr.io/cadvisor/cadvisor:v0.38.7"
diff --git a/fdio.infra.ansible/roles/cadvisor/tasks/main.yaml b/fdio.infra.ansible/roles/cadvisor/tasks/main.yaml
new file mode 100644
index 0000000000..a8c3f70124
--- /dev/null
+++ b/fdio.infra.ansible/roles/cadvisor/tasks/main.yaml
@@ -0,0 +1,39 @@
+---
+# file: roles/cadvisor/tasks/main.yaml
+
+- name: Inst - Update Package Cache (APT)
+ apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - cadvisor-inst-prerequisites
+
+- name: Inst - Prerequisites
+ package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - cadvisor-inst-prerequisites
+
+- name: Inst - Start a container
+ docker_container:
+ name: "cAdvisor"
+ image: "{{ image }}"
+ state: "started"
+ restart_policy: "unless-stopped"
+ detach: true
+ devices:
+ - "/dev/kmsg"
+ ports:
+ - "8080:8080"
+ privileged: true
+ volumes:
+ - "/:/rootfs:ro"
+ - "/var/run:/var/run:ro"
+ - "/sys:/sys:ro"
+ - "/var/lib/docker/:/var/lib/docker:ro"
+ - "/dev/disk/:/dev/disk:ro"
+ tags:
+ - cadvisor-run-container
diff --git a/fdio.infra.ansible/roles/calibration/defaults/main.yaml b/fdio.infra.ansible/roles/calibration/defaults/main.yaml
new file mode 100644
index 0000000000..5dc3330e08
--- /dev/null
+++ b/fdio.infra.ansible/roles/calibration/defaults/main.yaml
@@ -0,0 +1,37 @@
+---
+# file: roles/calibration/defaults/main.yaml
+
+# Packages to install.
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - []
+
+packages_by_distro:
+ ubuntu:
+ jammy:
+ - "build-essential"
+ - "dmidecode"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+# Kernel version to check.
+kernel_version: "{{ kernel_version_by_distro_by_arch[ansible_distribution | lower][ansible_distribution_release][ansible_machine] }}"
+
+kernel_version_by_distro_by_arch:
+ ubuntu:
+ jammy:
+ x86_64:
+ - "5.15.0-46-generic" # Placeholder
+ - "5.15.0-1000-aws" # Placeholder
+ - "5.4.0-1009-aws" # Placeholder
+ aarch64:
+ - "5.15.0-46-generic" # Placeholder
+
+pma_directory: "/tmp/pma_tools"
+jitter_core: 7
+jitter_iterations: 20
diff --git a/resources/tools/testbed-setup/ansible/roles/calibration/tasks/aarch64.yaml b/fdio.infra.ansible/roles/calibration/tasks/aarch64.yaml
index ca4e75d268..ca4e75d268 100644
--- a/resources/tools/testbed-setup/ansible/roles/calibration/tasks/aarch64.yaml
+++ b/fdio.infra.ansible/roles/calibration/tasks/aarch64.yaml
diff --git a/fdio.infra.ansible/roles/calibration/tasks/main.yaml b/fdio.infra.ansible/roles/calibration/tasks/main.yaml
new file mode 100644
index 0000000000..5807d7e2a4
--- /dev/null
+++ b/fdio.infra.ansible/roles/calibration/tasks/main.yaml
@@ -0,0 +1,89 @@
+---
+# file: roles/calibration/tasks/main.yaml
+
+- name: Inst - Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - calibration-inst-prerequisites
+
+- name: Inst - Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - calibration-inst-prerequisites
+
+- name: Check CPU Power States
+ ansible.builtin.shell: "lscpu"
+ register: current_lscpu
+ changed_when: false
+ tags:
+ - check-cpu-frequency
+
+- name: Check CPU Power States
+ ansible.builtin.assert:
+ that:
+ - "'CPU min MHz' not in current_lscpu.stdout or 'Intel(R) Xeon(R)' not in ansible_processor"
+ fail_msg: "CPU configuration!"
+ success_msg: "CPU configuration match."
+ tags:
+ - check-cpu-frequency
+
+- name: Check Kernel Parameters
+ ansible.builtin.assert:
+ that:
+ - item in ansible_cmdline
+ fail_msg: "Kernel parameters!"
+ success_msg: "Kernel parameters match."
+ loop: "{{ grub.keys()|sort }}"
+ when:
+ - grub is defined
+ tags:
+ - check-kernel-params
+
+- name: Check Kernel Version
+ ansible.builtin.assert:
+ that:
+ - ansible_kernel not in kernel_version_by_distro_by_arch
+ fail_msg: "Kernel version!"
+ success_msg: "Kernel version match."
+ tags:
+ - check-kernel-version
+
+- name: Spectre Meltdown Checker Status
+ ansible.builtin.stat:
+ path: "/opt/spectre-meltdown-checker.sh"
+ register: spectre_meltdown_status
+ tags:
+ - check-spectre-meltdown
+
+- name: Get Spectre Meltdown Checker
+ ansible.builtin.get_url:
+ url: "https://meltdown.ovh"
+ dest: "/opt/spectre-meltdown-checker.sh"
+ mode: "744"
+ when:
+ - not spectre_meltdown_status.stat.exists
+ tags:
+ - check-spectre-meltdown
+
+- name: Run Spectre Meltdown Checker
+ ansible.builtin.shell: "/opt/spectre-meltdown-checker.sh --no-color --sysfs-only || true"
+ ignore_errors: true
+ register: spectre_meltdown_sync
+ tags:
+ - check-spectre-meltdown
+
+- debug: var=spectre_meltdown_sync.stdout_lines
+ tags:
+ - check-spectre-meltdown
+
+- name: "{{ ansible_machine }} Specific"
+ include_tasks: "{{ ansible_machine }}.yaml"
+ tags:
+ - check-machine-specific
+ - check-jitter-tool
diff --git a/fdio.infra.ansible/roles/calibration/tasks/x86_64.yaml b/fdio.infra.ansible/roles/calibration/tasks/x86_64.yaml
new file mode 100644
index 0000000000..2d28f92ae3
--- /dev/null
+++ b/fdio.infra.ansible/roles/calibration/tasks/x86_64.yaml
@@ -0,0 +1,35 @@
+---
+# file: roles/calibration/tasks/x86_64.yaml
+
+- name: Calibration - Clone PMA Tool
+ ansible.builtin.git:
+ repo: "https://gerrit.fd.io/r/pma_tools"
+ dest: "{{ pma_directory }}"
+ tags:
+ - check-jitter-tool
+
+- name: Calibration - Compile PMA Tool
+ ansible.builtin.raw: "cd {{ pma_directory }}/jitter && make"
+ tags:
+ - check-jitter-tool
+
+- name: Calibration - Run Jitter Tool
+ ansible.builtin.shell: "{{ pma_directory }}/jitter/jitter -c {{ jitter_core }} -i {{ jitter_iterations }} -f"
+ become: true
+ async: 60
+ poll: 0
+ ignore_errors: true
+ register: jitter_async
+ tags:
+ - check-jitter-tool
+
+- name: Check sync status
+ ansible.builtin.async_status:
+ jid: "{{ jitter_async.ansible_job_id }}"
+ register: "jitter_poll_results"
+ until: jitter_poll_results.finished
+ retries: 30
+
+- ansible.builtin.debug: var=jitter_poll_results.stdout_lines
+ tags:
+ - check-jitter-tool
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/files/reset_vppdevice.sh b/fdio.infra.ansible/roles/cleanup/files/reset_vppdevice.sh
index ede2db1273..ede2db1273 100644
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/files/reset_vppdevice.sh
+++ b/fdio.infra.ansible/roles/cleanup/files/reset_vppdevice.sh
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml b/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml
new file mode 100644
index 0000000000..76704ab50d
--- /dev/null
+++ b/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml
@@ -0,0 +1,36 @@
+---
+# file: tasks/clean_images.yaml
+
+- name: Clean Docker Images
+ block:
+ - name: Clean Images - Prefetch Docker Images
+ ansible.builtin.cron:
+ name: "Prefetch docker image {{ item }}"
+ minute: "10"
+ hour: "7"
+ job: "/usr/bin/docker pull {{ item }}"
+ loop:
+ "{{ images_to_prefetch_by_arch[ansible_machine] }}"
+ tags:
+ - prefetch-docker-images
+
+ - name: Clean Images - Remove Dangling Docker Images
+ ansible.builtin.cron:
+ name: "Remove dangling docker images"
+ minute: "10"
+ hour: "5"
+ weekday: "7"
+ job: "/usr/bin/docker rmi $(/usr/bin/docker images --filter 'dangling=true' -q)"
+ tags:
+ - remove-docker-images-dangling
+
+# TODO: Disabled until all images will be in registry
+# - name: Clean Images - Prune Docker Images
+# cron:
+# name: "Prune docker images"
+# minute: "10"
+# hour: "6"
+# weekday: 7
+# job: "/usr/bin/docker image prune --all --force"
+# tags:
+# - prune-docker-images
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml b/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml
new file mode 100644
index 0000000000..dc739eb954
--- /dev/null
+++ b/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml
@@ -0,0 +1,42 @@
+---
+# file: tasks/kill_containers.yaml
+
+- name: Kill Docker Containers
+ block:
+ - name: Get Running Docker Containers
+ ansible.builtin.shell: "docker ps -a --filter name=DUT -q"
+ register: running_containers
+ changed_when: false
+ tags:
+ - kill-containers
+
+ - name: Remove All Docker Containers
+ ansible.builtin.shell: "docker rm --force {{ item }}"
+ with_items: "{{ running_containers.stdout_lines }}"
+ tags:
+ - kill-containers
+
+ rescue:
+ - name: Restart Docker Daemon
+ ansible.builtin.systemd:
+ name: "docker"
+ state: "restarted"
+
+- name: Kill LXC Containers
+ block:
+ - name: Get Running LXC Containers
+ ansible.builtin.shell: "lxc-ls"
+ register: running_containers
+ changed_when: false
+ tags:
+ - kill-containers
+
+ - name: Remove All LXC Containers
+ ansible.builtin.shell: "lxc-destroy --force -n {{ item }}"
+ with_items: "{{ running_containers.stdout_lines }}"
+ tags:
+ - kill-containers
+
+ rescue:
+ - fail:
+ msg: "Kill LXC containers failed!"
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml b/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml
new file mode 100644
index 0000000000..9ab98a8e57
--- /dev/null
+++ b/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml
@@ -0,0 +1,38 @@
+---
+# file: tasks/kill_process.yaml
+
+- name: Kill Process - {{ process }}
+ block:
+ - name: Get PID Of {{ process }}
+ ansible.builtin.shell: "ps -ef | grep -v grep | grep -w {{ process }} | awk '{print $2}'"
+ when:
+ - process is defined and process != ""
+ register: running_processes
+ tags:
+ - kill-process
+
+ - name: Safe Kill {{ process }}
+ ansible.builtin.shell: "kill {{ item }}"
+ with_items: "{{ running_processes.stdout_lines }}"
+ ignore_errors: true
+ tags:
+ - kill-process
+
+ - wait_for:
+ path: "/proc/{{ item }}/status"
+ state: "absent"
+ with_items: "{{ running_processes.stdout_lines }}"
+ ignore_errors: true
+ register: killed_processes
+ tags:
+ - kill-process
+
+ - name: Kill Process - Force Kill {{ process }}
+ ansible.builtin.shell: "kill -9 {{ item }}"
+ with_items: "{{ killed_processes.results | select('failed') | map(attribute='item') | list }}"
+ tags:
+ - kill-process
+
+ rescue:
+ - fail:
+ msg: "Kill process {{ process }} failed!"
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/main.yaml b/fdio.infra.ansible/roles/cleanup/tasks/main.yaml
new file mode 100644
index 0000000000..c97b9c5d7e
--- /dev/null
+++ b/fdio.infra.ansible/roles/cleanup/tasks/main.yaml
@@ -0,0 +1,26 @@
+---
+# file: tasks/main.yaml
+
+- name: tg specific
+ include_tasks: tg.yaml
+ when: "'tg' in group_names"
+ tags:
+ - cleanup
+
+- name: sut specific
+ include_tasks: sut.yaml
+ when: "'sut' in group_names"
+ tags:
+ - cleanup
+
+- name: vpp_device specific
+ include_tasks: vpp_device.yaml
+ when: "'vpp_device' in group_names"
+ tags:
+ - cleanup
+
+- name: nomad specific
+ include_tasks: nomad.yaml
+ when: "'nomad' in group_names"
+ tags:
+ - cleanup
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml b/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml
new file mode 100644
index 0000000000..086a4eff7d
--- /dev/null
+++ b/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml
@@ -0,0 +1,18 @@
+---
+# file: tasks/nomad.yaml
+
+- name: Host Cleanup
+ block:
+ - name: Clean Images
+ import_tasks: clean_images.yaml
+ vars:
+ images_to_prefetch_by_arch:
+ aarch64:
+ - "fdiotools/builder-ubuntu2204:prod-aarch64"
+ - "fdiotools/builder-ubuntu2004:prod-aarch64"
+ x86_64:
+ - "fdiotools/builder-ubuntu2204:prod-x86_64"
+ - "fdiotools/builder-ubuntu2004:prod-x86_64"
+ - "fdiotools/builder-debian11:prod-x86_64"
+ tags:
+ - clean-images
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml b/fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml
new file mode 100644
index 0000000000..652729bc30
--- /dev/null
+++ b/fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml
@@ -0,0 +1,21 @@
+---
+# file: tasks/remove_package.yaml
+
+- name: Fix Corrupted APT
+ ansible.builtin.shell: "dpkg --configure -a"
+ when:
+ - ansible_distribution == 'Ubuntu'
+ tags:
+ - remove-package
+
+- name: Remove Package - {{ package }}
+ ansible.builtin.apt:
+ name: "{{ package }}"
+ force: true
+ purge: true
+ state: "absent"
+ failed_when: false
+ when:
+ - ansible_distribution == 'Ubuntu'
+ tags:
+ - remove-package \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/sut.yaml b/fdio.infra.ansible/roles/cleanup/tasks/sut.yaml
new file mode 100644
index 0000000000..22bf596369
--- /dev/null
+++ b/fdio.infra.ansible/roles/cleanup/tasks/sut.yaml
@@ -0,0 +1,97 @@
+---
+# file: tasks/sut.yaml
+
+- name: Host Cleanup
+ block:
+ - name: Kill Processes - Qemu
+ import_tasks: kill_process.yaml
+ vars:
+ process: "qemu"
+ tags:
+ - kill-process
+
+ - name: Kill Processes - L3fwd
+ import_tasks: kill_process.yaml
+ vars:
+ process: "l3fwd"
+ tags:
+ - kill-process
+
+ - name: Kill Processes - Testpmd
+ import_tasks: kill_process.yaml
+ vars:
+ process: "testpmd"
+ tags:
+ - kill-process
+
+ - name: Kill Processes - iPerf3
+ import_tasks: kill_process.yaml
+ vars:
+ process: "iperf3"
+ tags:
+ - kill-process
+
+ - name: Kill Processes - nohup
+ import_tasks: kill_process.yaml
+ vars:
+ process: "nohup"
+ tags:
+ - kill-process
+
+ - name: Kill Processes - vpp
+ import_tasks: kill_process.yaml
+ vars:
+ process: "vpp"
+ tags:
+ - kill-process
+
+ - name: Kill Processes - vpp_echo
+ import_tasks: kill_process.yaml
+ vars:
+ process: "vpp_echo"
+ tags:
+ - kill-process
+
+ - name: Find File Or Dir - Core Zip File
+ ansible.builtin.find:
+ paths: "/tmp/"
+ patterns: "*tar.lzo.lrz.xz*"
+ register: files_to_delete
+ tags:
+ - remove-file-dir
+
+ - name: Remove File Or Dir - Core Zip File
+ ansible.builtin.file:
+ path: "{{ item.path }}"
+ state: absent
+ with_items: "{{ files_to_delete.files }}"
+ tags:
+ - remove-file-dir
+
+ - name: Find File Or Dir - Core Dump File
+ ansible.builtin.find:
+ paths: "/tmp/"
+ patterns: "*core*"
+ register: files_to_delete
+ tags:
+ - remove-file-dir
+
+ - name: Remove File Or Dir - Core Dump File
+ ansible.builtin.file:
+ path: "{{ item.path }}"
+ state: absent
+ with_items: "{{ files_to_delete.files }}"
+ tags:
+ - remove-file-dir
+
+ - name: Kill Containers - Remove All Containers
+ import_tasks: kill_containers.yaml
+ tags:
+ - kill-containers
+
+ - name: Remove Packages - Remove VPP
+ import_tasks: remove_package.yaml
+ vars:
+ package: "*vpp*"
+ tags:
+ - remove-package
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml b/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml
new file mode 100644
index 0000000000..8c0162df2c
--- /dev/null
+++ b/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml
@@ -0,0 +1,13 @@
+---
+# file: tasks/tg.yaml
+
+- name: Host Cleanup
+ block:
+ - name: Kill Processes - TRex
+ import_tasks: kill_process.yaml
+ vars:
+ process: "_t-rex"
+ when:
+ - docker_tg is undefined
+ tags:
+ - kill-process
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml b/fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml
new file mode 100644
index 0000000000..c97fa0cde5
--- /dev/null
+++ b/fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml
@@ -0,0 +1,32 @@
+---
+# file: tasks/vpp_device.yaml
+
+- name: Host Cleanup
+ block:
+ - name: Reset vpp_device Binary
+ ansible.builtin.copy:
+ src: "files/reset_vppdevice.sh"
+ dest: "/usr/local/bin"
+ owner: "root"
+ group: "root"
+ mode: "744"
+ tags:
+ - reset-sriov
+
+ - name: Clean Images
+ import_tasks: clean_images.yaml
+ vars:
+ images_to_prefetch_by_arch:
+ aarch64:
+ - "fdiotools/builder-ubuntu2004:prod-aarch64"
+ - "fdiotools/builder-ubuntu1804:prod-aarch64"
+ - "fdiotools/builder-centos8:prod-aarch64"
+ x86_64:
+ - "fdiotools/builder-ubuntu2004:prod-x86_64"
+ - "fdiotools/builder-ubuntu1804:prod-x86_64"
+ - "fdiotools/builder-debian10:prod-x86_64"
+ - "fdiotools/builder-debian9:prod-x86_64"
+ - "fdiotools/builder-centos8:prod-x86_64"
+ - "fdiotools/builder-centos7:prod-x86_64"
+ tags:
+ - clean-images
diff --git a/fdio.infra.ansible/roles/common/defaults/main.yaml b/fdio.infra.ansible/roles/common/defaults/main.yaml
new file mode 100644
index 0000000000..9ded8fcba9
--- /dev/null
+++ b/fdio.infra.ansible/roles/common/defaults/main.yaml
@@ -0,0 +1,55 @@
+---
+# file: roles/common/defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - "autoconf"
+ - "ca-certificates"
+ - "cgroup-tools"
+ - "dkms"
+ - "iperf3"
+ - "linux-tools-common"
+ - "ninja-build"
+ - "numactl"
+ - "qemu-system"
+ - "socat"
+ - "unzip"
+ - "virtualenv"
+
+packages_by_distro:
+ ubuntu:
+ jammy:
+ - "build-essential"
+ - "libpcap-dev"
+ - "net-tools"
+ - "python3-all"
+ - "python3-apt"
+ - "python3-cffi"
+ - "python3-cffi-backend"
+ - "python3-dev"
+ - "python3-pip"
+ - "python3-pyelftools"
+ - "python3-setuptools"
+
+packages_by_arch:
+ aarch64:
+ - "gfortran"
+ - "libblas-dev"
+ - "libffi-dev"
+ - "liblapack-dev"
+ - "libssl-dev"
+ x86_64:
+ - []
+
+# Proxy settings: Uncomment and fill the proper values. These variables will be
+# set globally by writing into /etc/environment file on target machine.
+# proxy_env:
+# http_proxy: http://proxy.com:80
+# HTTP_PROXY: http://proxy.com:80
+# https_proxy: http://proxy.com:80
+# HTTPS_PROXY: http://proxy.com:80
+# ftp_proxy: http://proxy.com:80
+# FTP_PROXY: http://proxy.com:80
+# no_proxy: localhost,127.0.0.1,{{ ansible_default_ipv4.address }}
+# NO_PROXY: localhost,127.0.0.1,{{ ansible_default_ipv4.address }}
diff --git a/fdio.infra.ansible/roles/common/handlers/main.yaml b/fdio.infra.ansible/roles/common/handlers/main.yaml
new file mode 100644
index 0000000000..0a4944b4ca
--- /dev/null
+++ b/fdio.infra.ansible/roles/common/handlers/main.yaml
@@ -0,0 +1,8 @@
+---
+# file: roles/common/handlers/main.yaml
+
+- name: Reboot Server
+ ansible.builtin.reboot:
+ reboot_timeout: 3600
+ tags:
+ - reboot-server
diff --git a/fdio.infra.ansible/roles/common/tasks/main.yaml b/fdio.infra.ansible/roles/common/tasks/main.yaml
new file mode 100644
index 0000000000..e47a1fc7a8
--- /dev/null
+++ b/fdio.infra.ansible/roles/common/tasks/main.yaml
@@ -0,0 +1,56 @@
+---
+# file: roles/common/tasks/main.yaml
+
+- name: Conf - Add permanent proxy settings
+ ansible.builtin.lineinfile:
+ path: "/etc/environment"
+ state: "present"
+ line: "{{ item.key }}={{ item.value }}"
+ with_dict: "{{ proxy_env }}"
+ when: proxy_env is defined
+ tags:
+ - common-conf-proxy
+
+- name: Inst - Update package cache (apt)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - common-inst-prerequisites
+
+- name: Inst - Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: "latest"
+ tags:
+ - common-inst-prerequisites
+
+- name: Inst - Meson (DPDK)
+ ansible.builtin.pip:
+ name:
+ - "meson==0.64.1"
+ state: "forcereinstall"
+ tags:
+ - common-inst-meson
+
+- name: Conf - sudoers admin
+ ansible.builtin.lineinfile:
+ path: "/etc/sudoers"
+ state: "present"
+ regexp: "^%admin ALL="
+ line: "%admin ALL=(ALL) ALL"
+ validate: "/usr/sbin/visudo -cf %s"
+ tags:
+ - common-conf-sudoers
+
+- name: Conf - sudoers nopasswd
+ ansible.builtin.lineinfile:
+ path: "/etc/sudoers"
+ state: "present"
+ regexp: "^%sudo"
+ line: "%sudo ALL=(ALL:ALL) NOPASSWD: ALL"
+ validate: "/usr/sbin/visudo -cf %s"
+ tags:
+ - common-conf-sudoers
diff --git a/fdio.infra.ansible/roles/consul/defaults/main.yaml b/fdio.infra.ansible/roles/consul/defaults/main.yaml
new file mode 100644
index 0000000000..9ea38efb56
--- /dev/null
+++ b/fdio.infra.ansible/roles/consul/defaults/main.yaml
@@ -0,0 +1,87 @@
+---
+# file: defaults/main.yaml
+
+# Inst - Prerequisites.
+packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages_base:
+ - "curl"
+ - "unzip"
+packages_by_distro:
+ ubuntu:
+ - []
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+# Inst - Consul Map.
+consul_architecture_map:
+ amd64: "amd64"
+ x86_64: "amd64"
+ armv7l: "arm"
+ aarch64: "arm64"
+ 32-bit: "386"
+ 64-bit: "amd64"
+consul_architecture: "{{ consul_architecture_map[ansible_architecture] }}"
+consul_version: "1.16.1"
+consul_pkg: "consul_{{ consul_version }}_linux_{{ consul_architecture }}.zip"
+consul_zip_url: "https://releases.hashicorp.com/consul/{{ consul_version }}/{{ consul_pkg }}"
+consul_force_update: false
+
+# Inst - System paths.
+consul_bin_dir: "/usr/local/bin"
+consul_config_dir: "/etc/consul.d"
+consul_data_dir: "/var/consul"
+consul_inst_dir: "/opt"
+consul_lockfile: "/var/lock/subsys/consul"
+consul_run_dir: "/var/run/consul"
+consul_ssl_dir: "/etc/consul.d/ssl"
+
+# Conf - Service.
+consul_node_role: "both"
+consul_restart_handler_state: "restarted"
+nomad_restart_handler_state: "restarted"
+systemd_resolved_state: "stopped"
+consul_service_mgr: ""
+
+# Conf - User and group.
+consul_group: "consul"
+consul_user: "consul"
+
+# Conf - base.hcl
+consul_allow_tls: true
+consul_bind_addr: "{{ ansible_default_ipv4.address }}"
+consul_bootstrap_expect: 1
+consul_client_addr: "0.0.0.0"
+consul_datacenter: "dc1"
+consul_disable_update_check: true
+consul_enable_debug: false
+consul_enable_syslog: true
+consul_encrypt: ""
+consul_log_level: "INFO"
+consul_node_name: "{{ inventory_hostname }}"
+consul_recursors:
+ - 1.1.1.1
+ - 8.8.8.8
+consul_retry_join: false
+consul_ui_config:
+ enabled: true
+consul_verify_incoming: true
+consul_verify_outgoing: true
+consul_vefify_server_hostname: false
+consul_ca_file: "{{ consul_ssl_dir }}/ca.pem"
+consul_cert_file: "{{ consul_ssl_dir }}/consul.pem"
+consul_key_file: "{{ consul_ssl_dir }}/consul-key.pem"
+
+# Conf - ports.hcl
+consul_port_dns: 53
+consul_port_http: 8500
+consul_port_https: 8501
+consul_port_grpc: 8502
+consul_port_serf_lan: 8301
+consul_port_serf_wan: 8302
+consul_port_server: 8300
+
+# Conf - services.json
+consul_services: false
diff --git a/fdio.infra.ansible/roles/consul/handlers/main.yaml b/fdio.infra.ansible/roles/consul/handlers/main.yaml
new file mode 100644
index 0000000000..a9de4d1439
--- /dev/null
+++ b/fdio.infra.ansible/roles/consul/handlers/main.yaml
@@ -0,0 +1,16 @@
+---
+# file handlers/main.yaml
+
+- name: Restart Nomad
+ ansible.builtin.systemd:
+ daemon_reload: true
+ enabled: true
+ name: "nomad"
+ state: "{{ nomad_restart_handler_state }}"
+
+- name: Restart Consul
+ ansible.builtin.systemd:
+ daemon_reload: true
+ enabled: true
+ name: "consul"
+ state: "{{ consul_restart_handler_state }}"
diff --git a/fdio.infra.ansible/roles/consul/meta/main.yaml b/fdio.infra.ansible/roles/consul/meta/main.yaml
new file mode 100644
index 0000000000..673c3b738d
--- /dev/null
+++ b/fdio.infra.ansible/roles/consul/meta/main.yaml
@@ -0,0 +1,21 @@
+---
+# file: meta/main.yaml
+
+dependencies: []
+
+galaxy_info:
+ role_name: "consul"
+ author: "pmikus"
+ description: "Hashicorp Consul."
+ company: "none"
+ license: "license (Apache)"
+ min_ansible_version: "2.9"
+ platforms:
+ - name: "Ubuntu"
+ versions:
+ - "focal"
+ - "jammy"
+ - "kinetic"
+ galaxy_tags:
+ - "consul"
+ - "hashicorp"
diff --git a/fdio.infra.ansible/roles/consul/tasks/main.yaml b/fdio.infra.ansible/roles/consul/tasks/main.yaml
new file mode 100644
index 0000000000..6dd430754b
--- /dev/null
+++ b/fdio.infra.ansible/roles/consul/tasks/main.yaml
@@ -0,0 +1,145 @@
+---
+# file: tasks/main.yaml
+
+- name: Update Repositories Cache
+ ansible.builtin.apt:
+ update_cache: true
+ when:
+ - ansible_os_family == 'Debian'
+ tags:
+ - consul-inst-package
+
+- name: Dependencies
+ ansible.builtin.apt:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: "present"
+ cache_valid_time: 3600
+ install_recommends: false
+ when:
+ - ansible_os_family == 'Debian'
+ tags:
+ - consul-inst-dependencies
+
+- name: Add Consul Group
+ ansible.builtin.group:
+ name: "{{ consul_group }}"
+ state: "present"
+ tags:
+ - consul-conf-user
+
+- name: Add Consul user
+ ansible.builtin.user:
+ name: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ state: "present"
+ system: true
+ tags:
+ - consul-conf-user
+
+- name: Download Consul
+ ansible.builtin.get_url:
+ url: "{{ consul_zip_url }}"
+ dest: "{{ consul_inst_dir }}/{{ consul_pkg }}"
+ tags:
+ - consul-inst-package
+
+- name: Clean Consul
+ ansible.builtin.file:
+ path: "{{ consul_inst_dir }}/consul"
+ state: "absent"
+ when:
+ - consul_force_update | bool
+ tags:
+ - consul-inst-package
+
+- name: Unarchive Consul
+ ansible.builtin.unarchive:
+ src: "{{ consul_inst_dir }}/{{ consul_pkg }}"
+ dest: "{{ consul_inst_dir }}/"
+ remote_src: true
+ tags:
+ - consul-inst-package
+
+- name: Consul
+ ansible.builtin.copy:
+ src: "{{ consul_inst_dir }}/consul"
+ dest: "{{ consul_bin_dir }}"
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ force: true
+ mode: 0755
+ remote_src: true
+ tags:
+ - consul-inst-package
+
+- name: Create Directories
+ ansible.builtin.file:
+ dest: "{{ item }}"
+ state: "directory"
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ mode: 0755
+ with_items:
+ - "{{ consul_config_dir }}"
+ - "{{ consul_ssl_dir }}"
+ - "{{ consul_data_dir }}"
+ - "{{ nomad_config_dir }}"
+ - "{{ nomad_ssl_dir }}"
+ tags:
+ - consul-conf
+
+- name: Base Configuration
+ ansible.builtin.template:
+ src: "{{ item }}.hcl.j2"
+ dest: "{{ consul_config_dir }}/{{ item }}.hcl"
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ mode: 0644
+ with_items:
+ - "base"
+ - "ports"
+ - "telemetry"
+ tags:
+ - consul-conf
+
+- name: Copy Certificates And Keys
+ ansible.builtin.copy:
+ content: "{{ item.src }}"
+ dest: "{{ item.dest }}"
+ owner: "{{ consul_user }}"
+ group: "{{ consul_group }}"
+ mode: 0600
+ no_log: true
+ loop: "{{ consul_certificates | flatten(levels=1) }}"
+ when:
+ - consul_certificates is defined
+ tags:
+ - consul-conf
+
+- name: Stop Systemd-resolved
+ ansible.builtin.systemd:
+ daemon_reload: true
+ enabled: false
+ name: "systemd-resolved"
+ state: "{{ systemd_resolved_state }}"
+ when:
+ - consul_service_mgr == "systemd"
+ tags:
+ - consul-conf
+
+- name: System.d Script
+ ansible.builtin.template:
+ src: "consul_systemd.service.j2"
+ dest: "/lib/systemd/system/consul.service"
+ owner: "root"
+ group: "root"
+ mode: 0644
+ notify:
+ - "Restart Consul"
+ when:
+ - consul_service_mgr == "systemd"
+ tags:
+ - consul-conf
+
+- name: Flush handlers
+ ansible.builtin.meta: flush_handlers
diff --git a/fdio.infra.ansible/roles/consul/templates/base.hcl.j2 b/fdio.infra.ansible/roles/consul/templates/base.hcl.j2
new file mode 100644
index 0000000000..15104b2710
--- /dev/null
+++ b/fdio.infra.ansible/roles/consul/templates/base.hcl.j2
@@ -0,0 +1,56 @@
+node_name = "{{ consul_node_name }}"
+datacenter = "{{ consul_datacenter }}"
+
+bind_addr = "{{ consul_bind_addr }}"
+client_addr = "{{ consul_client_addr }}"
+data_dir = "{{ consul_data_dir }}"
+
+enable_syslog = {{ consul_enable_syslog | bool | lower }}
+enable_debug = {{ consul_enable_debug | bool | lower }}
+disable_update_check = {{ consul_disable_update_check | bool | lower }}
+log_level = "{{ consul_log_level }}"
+
+server = {{ consul_node_server | bool | lower }}
+encrypt = "{{ consul_encrypt }}"
+{% if consul_node_server | bool == True %}
+bootstrap_expect = {{ consul_bootstrap_expect }}
+verify_incoming = {{ consul_verify_incoming | bool | lower }}
+verify_outgoing = {{ consul_verify_outgoing | bool | lower }}
+verify_server_hostname = {{ consul_vefify_server_hostname | bool | lower }}
+ca_file = "{{ consul_ca_file }}"
+cert_file = "{{ consul_cert_file }}"
+key_file = "{{ consul_key_file }}"
+auto_encrypt {
+ allow_tls = {{ consul_allow_tls | bool | lower }}
+}
+{% else %}
+verify_incoming = {{ consul_verify_incoming | bool | lower }}
+verify_outgoing = {{ consul_verify_outgoing | bool | lower }}
+verify_server_hostname = {{ consul_vefify_server_hostname | bool | lower }}
+ca_file = "{{ consul_ca_file }}"
+auto_encrypt {
+ tls = {{ consul_allow_tls | bool | lower }}
+}
+{% endif %}
+{% if consul_retry_join | bool -%}
+retry_join = [ {% for ip_port in consul_retry_servers -%} "{{ ip_port }}"{% if not loop.last %}, {% endif %}{%- endfor -%} ]
+{%- endif %}
+
+{% if consul_ui_config -%}
+ui_config {
+{% for key, value in consul_ui_config.items() %}
+ {%- if value|bool %}
+ {{ key }} = {{ value | bool | lower }}
+ {%- elif value|string or value == "" %}
+ {{ key }} = "{{ value }}"
+ {%- else %}
+ {{ key }} = {{ value }}
+ {%- endif %}
+{% endfor %}
+
+}
+{%- endif %}
+
+{% if consul_recursors -%}
+recursors = [ {% for server in consul_recursors -%} "{{ server }}"{% if not loop.last %}, {% endif %}{%- endfor -%} ]
+{%- endif %} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/consul/templates/consul_systemd.service.j2 b/fdio.infra.ansible/roles/consul/templates/consul_systemd.service.j2
new file mode 100644
index 0000000000..16874f213e
--- /dev/null
+++ b/fdio.infra.ansible/roles/consul/templates/consul_systemd.service.j2
@@ -0,0 +1,18 @@
+[Unit]
+Description="HashiCorp Consul - A service mesh solution"
+Documentation=https://www.consul.io/
+Requires=network-online.target
+After=network-online.target
+
+[Service]
+User=root
+Group=root
+ExecStart={{ consul_bin_dir }}/consul agent -config-dir={{ consul_config_dir }}
+ExecReload=/bin/kill --signal HUP $MAINPID
+KillMode=process
+KillSignal=SIGTERM
+Restart=on-failure
+LimitNOFILE=infinity
+
+[Install]
+WantedBy=multi-user.target \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/ports.hcl.j2 b/fdio.infra.ansible/roles/consul/templates/ports.hcl.j2
index a658060ce8..02932bf6dc 100644
--- a/resources/tools/testbed-setup/ansible/roles/consul/templates/ports.hcl.j2
+++ b/fdio.infra.ansible/roles/consul/templates/ports.hcl.j2
@@ -2,7 +2,7 @@ ports {
dns = {{ consul_port_dns }}
http = {{ consul_port_http }}
https = {{ consul_port_https }}
- grpc = {{ consul_port_grpc }}
+ grpc_tls = {{ consul_port_grpc }}
serf_lan = {{ consul_port_serf_lan }}
serf_wan = {{ consul_port_serf_wan }}
server = {{ consul_port_server }}
diff --git a/fdio.infra.ansible/roles/consul/templates/telemetry.hcl.j2 b/fdio.infra.ansible/roles/consul/templates/telemetry.hcl.j2
new file mode 100644
index 0000000000..ec7fabc9da
--- /dev/null
+++ b/fdio.infra.ansible/roles/consul/templates/telemetry.hcl.j2
@@ -0,0 +1,3 @@
+telemetry {
+ prometheus_retention_time = "24h"
+} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/consul/vars/main.yaml b/fdio.infra.ansible/roles/consul/vars/main.yaml
new file mode 100644
index 0000000000..5d813dffc7
--- /dev/null
+++ b/fdio.infra.ansible/roles/consul/vars/main.yaml
@@ -0,0 +1,5 @@
+---
+# file: vars/main.yaml
+
+consul_node_client: "{{ (consul_node_role == 'client') or (consul_node_role == 'both') }}"
+consul_node_server: "{{ (consul_node_role == 'server') or (consul_node_role == 'both') }}"
diff --git a/fdio.infra.ansible/roles/docker/defaults/main.yaml b/fdio.infra.ansible/roles/docker/defaults/main.yaml
new file mode 100644
index 0000000000..bf97b4a192
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker/defaults/main.yaml
@@ -0,0 +1,35 @@
+---
+# file: roles/docker/defaults/main.yaml
+
+# Version options.
+docker_edition: "ce"
+docker_package: "docker-{{ docker_edition }}"
+docker_package_state: latest
+
+# Service options.
+docker_service_state: started
+docker_service_enabled: true
+docker_restart_handler_state: restarted
+docker_service_mgr: "systemd"
+
+# Used only for Debian/Ubuntu.
+docker_apt_release_channel: "stable"
+docker_apt_repository: "deb https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable"
+docker_apt_repository_state: present
+docker_apt_ignore_key_error: true
+docker_apt_gpg_key: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg"
+docker_apt_gpg_key_state: present
+
+# Used only for RedHat/CentOS/Fedora.
+docker_yum_repo_url: https://download.docker.com/linux/{{ (ansible_distribution == "Fedora") | ternary("fedora","centos") }}/docker-{{ docker_edition }}.repo
+docker_yum_repo_enable_edge: "0"
+docker_yum_repo_enable_test: "0"
+docker_yum_gpg_key: https://download.docker.com/linux/centos/gpg
+
+# Proxy settings.
+docker_daemon_environment_http:
+ - "HTTP_PROXY={{ proxy_env.http_proxy }}"
+ - "NO_PROXY={{ proxy_env.no_proxy }}"
+docker_daemon_environment_https:
+ - "HTTPS_PROXY={{ proxy_env.https_proxy }}"
+ - "NO_PROXY={{ proxy_env.no_proxy }}"
diff --git a/fdio.infra.ansible/roles/docker/handlers/main.yaml b/fdio.infra.ansible/roles/docker/handlers/main.yaml
new file mode 100644
index 0000000000..53eb8528f6
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker/handlers/main.yaml
@@ -0,0 +1,9 @@
+---
+# file roles/docker/handlers/main.yaml
+
+- name: Restart Docker
+ ansible.builtin.service:
+ name: "docker"
+ state: "{{ docker_restart_handler_state }}"
+ tags:
+ - docker-restart-service
diff --git a/fdio.infra.ansible/roles/docker/meta/main.yaml b/fdio.infra.ansible/roles/docker/meta/main.yaml
new file mode 100644
index 0000000000..7bef656eb5
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker/meta/main.yaml
@@ -0,0 +1,18 @@
+---
+# file: meta/main.yaml
+
+dependencies: []
+
+galaxy_info:
+ role_name: docker
+ author: fd.io
+ description: Docker-CE for Linux.
+ company: none
+ license: "license (Apache)"
+ min_ansible_version: 2.9
+ platforms:
+ - name: Ubuntu
+ versions:
+ - jammy
+ galaxy_tags:
+ - docker
diff --git a/fdio.infra.ansible/roles/docker/tasks/jammy.yaml b/fdio.infra.ansible/roles/docker/tasks/jammy.yaml
new file mode 100644
index 0000000000..8ec7a01ee1
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker/tasks/jammy.yaml
@@ -0,0 +1,30 @@
+---
+# file: roles/docker/tasks/ubuntu_jammy.yaml
+
+- name: Inst - Dependencies
+ ansible.builtin.apt:
+ name:
+ - "apt-transport-https"
+ - "ca-certificates"
+ - "gpg-agent"
+ - "software-properties-common"
+ state: "present"
+ cache_valid_time: 3600
+ install_recommends: false
+ tags:
+ - docker-inst-dependencies
+
+- name: Conf - Add APT Key
+ ansible.builtin.apt_key:
+ url: "{{ docker_apt_gpg_key }}"
+ state: "{{ docker_apt_gpg_key_state }}"
+ tags:
+ - docker-conf-apt
+
+- name: Conf - Install APT Repository
+ ansible.builtin.apt_repository:
+ repo: "{{ docker_apt_repository }}"
+ state: "{{ docker_apt_repository_state }}"
+ update_cache: true
+ tags:
+ - docker-conf-apt
diff --git a/fdio.infra.ansible/roles/docker/tasks/main.yaml b/fdio.infra.ansible/roles/docker/tasks/main.yaml
new file mode 100644
index 0000000000..e07b29e363
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker/tasks/main.yaml
@@ -0,0 +1,85 @@
+---
+# file: roles/docker/tasks/main.yaml
+
+- include_tasks: "{{ ansible_distribution_release }}.yaml"
+ tags:
+ - docker-inst-dependencies
+
+- name: Inst - Docker
+ ansible.builtin.package:
+ name:
+ - "{{ docker_package }}"
+ - "{{ docker_package }}-cli"
+ state: "{{ docker_package_state }}"
+ tags:
+ - docker-inst-package
+
+- name: Conf - Docker Service
+ ansible.builtin.service:
+ name: docker
+ state: "{{ docker_service_state }}"
+ enabled: "{{ docker_service_enabled }}"
+ when:
+ - docker_service_mgr == "systemd"
+ tags:
+ - docker-conf-service
+
+- name: Conf - Docker Service Directory
+ ansible.builtin.file:
+ path: "/etc/systemd/system/docker.service.d"
+ state: "directory"
+ mode: "0755"
+ when:
+ - docker_service_mgr == "systemd"
+ tags:
+ - docker-conf-service
+
+- name: Conf - Docker Daemon
+ ansible.builtin.template:
+ src: "templates/daemon.json.j2"
+ dest: "/etc/docker/daemon.json"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+ notify:
+ - "Restart Docker"
+ when: >
+ docker_daemon is defined and
+ docker_service_mgr == "systemd"
+ tags:
+ - docker-conf-daemon
+
+- name: Conf - Docker HTTP Proxy
+ ansible.builtin.template:
+ src: "templates/docker.service.proxy.http"
+ dest: "/etc/systemd/system/docker.service.d/http-proxy.conf"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+ notify:
+ - "Restart Docker"
+ when: >
+ proxy_env is defined and
+ proxy_env.http_proxy is defined and
+ docker_service_mgr == "systemd"
+ tags:
+ - docker-conf-service
+
+- name: Conf - Docker HTTPS Proxy
+ ansible.builtin.template:
+ src: "templates/docker.service.proxy.https"
+ dest: "/etc/systemd/system/docker.service.d/https-proxy.conf"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+ notify:
+ - "Restart Docker"
+ when: >
+ proxy_env is defined and
+ proxy_env.https_proxy is defined and
+ docker_service_mgr == "systemd"
+ tags:
+ - docker-conf-service
+
+- name: Meta - Flush handlers
+ ansible.builtin.meta: flush_handlers
diff --git a/fdio.infra.ansible/roles/docker/templates/daemon.json.j2 b/fdio.infra.ansible/roles/docker/templates/daemon.json.j2
new file mode 100644
index 0000000000..becc2b1af7
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker/templates/daemon.json.j2
@@ -0,0 +1 @@
+{{ docker_daemon | to_nice_json }} \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/templates/docker.service.proxy.http b/fdio.infra.ansible/roles/docker/templates/docker.service.proxy.http
index 73ceba3870..73ceba3870 100644
--- a/resources/tools/testbed-setup/ansible/roles/docker/templates/docker.service.proxy.http
+++ b/fdio.infra.ansible/roles/docker/templates/docker.service.proxy.http
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/templates/docker.service.proxy.https b/fdio.infra.ansible/roles/docker/templates/docker.service.proxy.https
index 1c2097eb9d..1c2097eb9d 100644
--- a/resources/tools/testbed-setup/ansible/roles/docker/templates/docker.service.proxy.https
+++ b/fdio.infra.ansible/roles/docker/templates/docker.service.proxy.https
diff --git a/fdio.infra.ansible/roles/docker_images/files/base/Dockerfile b/fdio.infra.ansible/roles/docker_images/files/base/Dockerfile
new file mode 100644
index 0000000000..88af96bfa8
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/files/base/Dockerfile
@@ -0,0 +1,140 @@
+FROM ubuntu:22.04
+
+# Setup the environment
+ENV DEBIAN_FRONTEND=noninteractive
+
+# Configure locales
+RUN apt-get update -qq \
+ && apt-get install -y \
+ apt-utils \
+ locales \
+ && sed -i 's/# \(en_US\.UTF-8 .*\)/\1/' /etc/locale.gen \
+ && locale-gen en_US.UTF-8 \
+ && dpkg-reconfigure --frontend=noninteractive locales \
+ && update-locale LANG=en_US.UTF-8 \
+ && TZ=Etc/UTC && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
+ && rm -r /var/lib/apt/lists/*
+ENV LANG="en_US.UTF-8" LANGUAGE="en_US" LC_ALL="en_US.UTF-8"
+
+# Install packages and Docker
+RUN apt-get -q update \
+ && apt-get install -y -qq \
+ apt-transport-https \
+ bridge-utils \
+ ca-certificates \
+ cgroup-tools \
+ cloud-init \
+ cmake \
+ curl \
+ dkms \
+ ethtool \
+ gdb \
+ gfortran \
+ libapr1 \
+ libblas-dev \
+ libffi-dev \
+ libibverbs-dev \
+ liblapack-dev \
+ libmbedcrypto7 \
+ libmbedtls14 \
+ libmbedx509-1 \
+ libnuma1 \
+ libnuma-dev \
+ libpcap-dev \
+ libpixman-1-dev \
+ libsctp-dev \
+ libssl-dev \
+ net-tools \
+ ninja-build \
+ openssh-server \
+ pciutils \
+ python3-all \
+ python3-apt \
+ python3-cffi \
+ python3-cffi-backend \
+ python3-dev \
+ python3-pip \
+ python3-pyelftools \
+ python3-setuptools \
+ python3-virtualenv \
+ qemu-system \
+ rdma-core \
+ rsyslog \
+ screen \
+ socat \
+ software-properties-common \
+ strace \
+ strongswan \
+ ssh \
+ sshpass \
+ sudo \
+ supervisor \
+ tar \
+ tcpdump \
+ unzip \
+ vim \
+ wget \
+ zlib1g-dev \
+ && ln -s -f /usr/lib/x86_64-linux-gnu/libc.a /usr/lib/x86_64-linux-gnu/liblibc.a \
+ && curl -fsSL https://get.docker.com | sh \
+ && rm -rf /var/lib/apt/lists/*
+
+# Fix permissions
+RUN chown root:syslog /var/log \
+ && chmod 755 /etc/default
+
+# Create directory structure
+RUN mkdir -p /tmp/dumps \
+ && mkdir -p /var/cache/vpp/python \
+ && mkdir -p /var/run/sshd \
+ && mkdir -p /var/log/vpp
+
+# CSIT PIP pre-cache
+RUN pip3 install \
+ ecdsa==0.18.0 \
+ paramiko==3.3.1 \
+ pycrypto==2.6.1 \
+ python-dateutil==2.8.2 \
+ PyYAML==6.0.1 \
+ requests==2.31.0 \
+ robotframework==6.1.1 \
+ scapy==2.4.5 \
+ scp==0.14.5 \
+ ansible==8.2.0 \
+ ansible-core==2.15.2 \
+ dill==0.3.7 \
+ numpy==1.25.2 \
+ scipy==1.11.1 \
+ ply==3.11 \
+ jsonschema==4.18.4 \
+ rfc3339-validator==0.1.4 \
+ rfc3987==1.3.8 \
+ attrs==23.1.0 \
+ bcrypt==4.0.1 \
+ certifi==2023.7.22 \
+ cffi==1.15.1 \
+ charset-normalizer==3.2.0 \
+ cryptography==41.0.3 \
+ idna==3.4 \
+ Jinja2==3.1.2 \
+ jsonschema-specifications==2023.7.1 \
+ MarkupSafe==2.1.3 \
+ packaging==23.1 \
+ pycparser==2.21 \
+ PyNaCl==1.5.0 \
+ referencing==0.30.0 \
+ resolvelib==1.0.1 \
+ rpds-py==0.9.2 \
+ six==1.16.0 \
+ urllib3==2.0.4 \
+ meson==0.64.1
+
+RUN groupadd -g 1000 testuser \
+ && useradd -rm -d /home/testuser -s /bin/bash -g testuser -G sudo -u 1000 testuser \
+ && echo 'testuser:Csit1234' | chpasswd
+
+RUN echo 'root:Csit1234' | chpasswd \
+ && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
+ && echo "export VISIBLE=now" >> /etc/profile
+
+RUN service ssh start \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/docker_images/files/csit-initialize-docker-sut.service b/fdio.infra.ansible/roles/docker_images/files/csit-initialize-docker-sut.service
new file mode 100644
index 0000000000..431387c95c
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/files/csit-initialize-docker-sut.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=CSIT Initialize Docker SUT
+After=network.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=True
+ExecStart=docker compose -f /opt/csit-docker-images/docker-compose-sut.yaml up --detach
+ExecStop=docker compose -f /opt/csit-docker-images/docker-compose-sut.yaml down
+
+[Install]
+WantedBy=default.target
diff --git a/fdio.infra.ansible/roles/docker_images/files/csit-initialize-docker-tg.service b/fdio.infra.ansible/roles/docker_images/files/csit-initialize-docker-tg.service
new file mode 100644
index 0000000000..2c93724a4c
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/files/csit-initialize-docker-tg.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=CSIT Initialize Docker TG
+After=network.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=True
+ExecStart=docker compose -f /opt/csit-docker-images/docker-compose-tg.yaml up --detach
+ExecStop=docker compose -f /opt/csit-docker-images/docker-compose-tg.yaml down
+
+[Install]
+WantedBy=default.target
diff --git a/fdio.infra.ansible/roles/docker_images/files/csit-sut/Dockerfile b/fdio.infra.ansible/roles/docker_images/files/csit-sut/Dockerfile
new file mode 100644
index 0000000000..85537bc32f
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/files/csit-sut/Dockerfile
@@ -0,0 +1,7 @@
+FROM base-ubuntu2204:local
+
+EXPOSE 2222
+
+COPY supervisord.conf /etc/supervisor/supervisord.conf
+
+CMD ["sh", "-c", "rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api; /usr/bin/supervisord -c /etc/supervisor/supervisord.conf; /usr/sbin/sshd -D -p 2222"] \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/supervisord.conf b/fdio.infra.ansible/roles/docker_images/files/csit-sut/supervisord.conf
index 22a36be5c6..22a36be5c6 100644
--- a/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/supervisord.conf
+++ b/fdio.infra.ansible/roles/docker_images/files/csit-sut/supervisord.conf
diff --git a/fdio.infra.ansible/roles/docker_images/handlers/main.yaml b/fdio.infra.ansible/roles/docker_images/handlers/main.yaml
new file mode 100644
index 0000000000..766eec432a
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/handlers/main.yaml
@@ -0,0 +1,18 @@
+---
+# file: handlers/main.yaml
+
+- name: "Start csit-initialize-docker-sut.service"
+ ansible.builtin.systemd:
+ enabled: true
+ state: "started"
+ name: "csit-initialize-docker-sut.service"
+ tags:
+ - docker-sut
+
+- name: "Start csit-initialize-docker-tg.service"
+ ansible.builtin.systemd:
+ enabled: true
+ state: "started"
+ name: "csit-initialize-docker-tg.service"
+ tags:
+ - docker-tg \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/docker_images/tasks/base.yaml b/fdio.infra.ansible/roles/docker_images/tasks/base.yaml
new file mode 100644
index 0000000000..69b3f6217d
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/tasks/base.yaml
@@ -0,0 +1,63 @@
+---
+# file: tasks/base.yaml
+
+- name: "Create a Directory For Docker Images"
+ ansible.builtin.file:
+ path: "/opt/csit-docker-images/"
+ state: "directory"
+ mode: 0755
+ tags:
+ - docker-base
+
+- name: "Copy Build Items"
+ ansible.builtin.copy:
+ src: "{{ item }}"
+ dest: "/opt/csit-docker-images/{{ item }}"
+ owner: "root"
+ group: "root"
+ mode: 0755
+ with_items:
+ - "base/"
+ - "csit-sut/"
+ tags:
+ - docker-base
+
+- name: "Build CSIT Base Docker Image"
+ ansible.builtin.shell: "docker build -t base-ubuntu2204:local ."
+ args:
+ chdir: "/opt/csit-docker-images/base"
+ async: 3000
+ poll: 0
+ register: "docker_built"
+ tags:
+ - docker-base
+
+- name: "Check if CSIT Base Docker Image is Built"
+ async_status:
+ jid: "{{ docker_built.ansible_job_id }}"
+ register: "docker_built"
+ until: "docker_built.finished"
+ delay: 10
+ retries: 300
+ tags:
+ - docker-base
+
+- name: "Build CSIT OLD Docker Image"
+ ansible.builtin.shell: "docker build -t csit_sut-ubuntu2204:local ."
+ args:
+ chdir: "/opt/csit-docker-images/csit-sut"
+ async: 3000
+ poll: 0
+ register: "docker_built"
+ tags:
+ - docker-base
+
+- name: "Check if CSIT OLD Docker Image is Built"
+ async_status:
+ jid: "{{ docker_built.ansible_job_id }}"
+ register: "docker_built"
+ until: "docker_built.finished"
+ delay: 10
+ retries: 300
+ tags:
+ - docker-base \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/docker_images/tasks/main.yaml b/fdio.infra.ansible/roles/docker_images/tasks/main.yaml
new file mode 100644
index 0000000000..1005e024f2
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/tasks/main.yaml
@@ -0,0 +1,21 @@
+---
+# file: tasks/main.yaml
+
+- name: "Build Base Docker Images"
+ import_tasks: "base.yaml"
+ tags:
+ - docker-base
+
+- name: "Docker Orchestration for TG"
+ import_tasks: "tg.yaml"
+ when: >
+ docker_tg is defined
+ tags:
+ - docker-tg
+
+- name: "Docker Orchestration for SUT"
+ import_tasks: "sut.yaml"
+ when: >
+ docker_sut is defined
+ tags:
+ - docker-sut \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/docker_images/tasks/sut.yaml b/fdio.infra.ansible/roles/docker_images/tasks/sut.yaml
new file mode 100644
index 0000000000..8ac179573d
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/tasks/sut.yaml
@@ -0,0 +1,28 @@
+---
+# file: tasks/sut.yaml
+
+- name: "Template Compose File"
+ ansible.builtin.template:
+ src: "{{ item }}.j2"
+ dest: "/opt/csit-docker-images/{{ item }}"
+ owner: "root"
+ group: "root"
+ mode: 0755
+ with_items:
+ - "docker-compose-sut.yaml"
+ tags:
+ - docker-sut
+
+- name: "Copy csit-initialize-docker-sut.service"
+ ansible.builtin.copy:
+ src: "files/csit-initialize-docker-sut.service"
+ dest: "/etc/systemd/system/"
+ owner: "root"
+ group: "root"
+ mode: 0644
+ notify:
+ - "Start csit-initialize-docker-sut.service"
+ tags:
+ - docker-sut
+
+- meta: flush_handlers \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/docker_images/tasks/tg.yaml b/fdio.infra.ansible/roles/docker_images/tasks/tg.yaml
new file mode 100644
index 0000000000..0623616073
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/tasks/tg.yaml
@@ -0,0 +1,28 @@
+---
+# file: tasks/tg.yaml
+
+- name: "Template Compose File"
+ ansible.builtin.template:
+ src: "{{ item }}.j2"
+ dest: "/opt/csit-docker-images/{{ item }}"
+ owner: "root"
+ group: "root"
+ mode: 0755
+ with_items:
+ - "docker-compose-tg.yaml"
+ tags:
+ - docker-tg
+
+- name: "Start csit-initialize-docker-tg.service"
+ ansible.builtin.copy:
+ src: "files/csit-initialize-docker-tg.service"
+ dest: "/etc/systemd/system/"
+ owner: "root"
+ group: "root"
+ mode: 0644
+ notify:
+ - "Start csit-initialize-docker-tg.service"
+ tags:
+ - docker-tg
+
+- meta: flush_handlers \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/docker_images/templates/docker-compose-sut.yaml.j2 b/fdio.infra.ansible/roles/docker_images/templates/docker-compose-sut.yaml.j2
new file mode 100644
index 0000000000..b4713d8552
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/templates/docker-compose-sut.yaml.j2
@@ -0,0 +1,42 @@
+version: "3"
+services:
+ numa-0:
+ build:
+ context: "base/"
+ dockerfile: "Dockerfile"
+ cap_add:
+ - NET_RAW
+ command: ["/usr/sbin/sshd","-D", "-p", "6001"]
+ expose:
+ - "6001"
+ hostname: "{{ ansible_hostname[:-1] }}1"
+ network_mode: "host"
+ privileged: true
+ restart: "always"
+ shm_size: "4G"
+ volumes:
+{% for volume in docker_volumes %}
+ - type: "bind"
+ source: "{{ volume.source }}"
+ target: "{{ volume.target }}"
+{% endfor %}
+ numa-1:
+ build:
+ context: "base/"
+ dockerfile: "Dockerfile"
+ cap_add:
+ - NET_RAW
+ command: ["/usr/sbin/sshd","-D", "-p", "6002"]
+ expose:
+ - "6002"
+ hostname: "{{ ansible_hostname[:-1] }}2"
+ network_mode: "host"
+ privileged: true
+ restart: "always"
+ shm_size: "4G"
+ volumes:
+{% for volume in docker_volumes %}
+ - type: "bind"
+ source: "{{ volume.source }}"
+ target: "{{ volume.target }}"
+{% endfor %} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/docker_images/templates/docker-compose-tg.yaml.j2 b/fdio.infra.ansible/roles/docker_images/templates/docker-compose-tg.yaml.j2
new file mode 100644
index 0000000000..2cee85e169
--- /dev/null
+++ b/fdio.infra.ansible/roles/docker_images/templates/docker-compose-tg.yaml.j2
@@ -0,0 +1,38 @@
+version: "3"
+services:
+ tg-0:
+ build:
+ context: "base/"
+ dockerfile: "Dockerfile"
+ command: ["/usr/sbin/sshd","-D", "-p", "6001"]
+ expose:
+ - "6001"
+ hostname: "{{ ansible_hostname }}"
+ network_mode: "host"
+ privileged: true
+ restart: "always"
+ shm_size: "4G"
+ volumes:
+{% for volume in docker_volumes %}
+ - type: "bind"
+ source: "{{ volume.source }}"
+ target: "{{ volume.target }}"
+{% endfor %}
+ tg-1:
+ build:
+ context: "base/"
+ dockerfile: "Dockerfile"
+ command: ["/usr/sbin/sshd","-D", "-p", "6002"]
+ expose:
+ - "6002"
+ hostname: "{{ ansible_hostname }}"
+ network_mode: "host"
+ privileged: true
+ restart: "always"
+ shm_size: "4G"
+ volumes:
+{% for volume in docker_volumes %}
+ - type: "bind"
+ source: "{{ volume.source }}"
+ target: "{{ volume.target }}"
+{% endfor %} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/dpdk/defaults/main.yaml b/fdio.infra.ansible/roles/dpdk/defaults/main.yaml
new file mode 100644
index 0000000000..d94e9ac91f
--- /dev/null
+++ b/fdio.infra.ansible/roles/dpdk/defaults/main.yaml
@@ -0,0 +1,24 @@
+---
+# file: defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - []
+
+packages_by_distro:
+ ubuntu:
+ jammy:
+ - "build-essential"
+ - "libnuma-dev"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+dpdk_target_dir: "/opt"
+dpdk_version:
+ - "23.11"
+dpdk_url: "https://fast.dpdk.org/rel"
diff --git a/resources/tools/testbed-setup/ansible/roles/dpdk/files/dpdk-mlx5.patch b/fdio.infra.ansible/roles/dpdk/files/dpdk-mlx5.patch
index a3928d70f7..a3928d70f7 100644
--- a/resources/tools/testbed-setup/ansible/roles/dpdk/files/dpdk-mlx5.patch
+++ b/fdio.infra.ansible/roles/dpdk/files/dpdk-mlx5.patch
diff --git a/fdio.infra.ansible/roles/dpdk/meta/main.yaml b/fdio.infra.ansible/roles/dpdk/meta/main.yaml
new file mode 100644
index 0000000000..3ca2918d36
--- /dev/null
+++ b/fdio.infra.ansible/roles/dpdk/meta/main.yaml
@@ -0,0 +1,18 @@
+---
+# file: meta/main.yaml
+
+dependencies: []
+
+galaxy_info:
+ role_name: "dpdk"
+ author: "fd.io"
+ description: "DPDK for Linux."
+ company: "none"
+ license: "license (Apache)"
+ min_ansible_version: 2.9
+ platforms:
+ - name: "Ubuntu"
+ versions:
+ - "jammy"
+ galaxy_tags:
+ - "dpdk"
diff --git a/fdio.infra.ansible/roles/dpdk/molecule/default/converge.yml b/fdio.infra.ansible/roles/dpdk/molecule/default/converge.yml
new file mode 100644
index 0000000000..ab8392c3dc
--- /dev/null
+++ b/fdio.infra.ansible/roles/dpdk/molecule/default/converge.yml
@@ -0,0 +1,9 @@
+---
+# file: molecule/default/converge.yaml
+
+- name: Converge
+ hosts: all
+ become: true
+
+ roles:
+ - role: csit.dpdk
diff --git a/fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml b/fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml
new file mode 100644
index 0000000000..060f842db7
--- /dev/null
+++ b/fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml
@@ -0,0 +1,21 @@
+---
+# file: molecule/default/molecule.yaml
+
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint: |
+ yamllint .
+ ansible-lint
+platforms:
+ - name: ${DISTRO:-ubuntu-22.04}
+ image: "pmikus/docker-${MOLECULE_DISTRO:-ubuntu-22.04}-ansible:latest"
+ volumes:
+ - /sys/fs/cgroup:/sys/fs/cgroup:ro
+ privileged: true
+ pre_build_image: true
+provisioner:
+ name: ansible
+ playbooks:
+ converge: ${MOLECULE_PLAYBOOK:-converge.yml}
diff --git a/fdio.infra.ansible/roles/dpdk/tasks/deploy_block.yaml b/fdio.infra.ansible/roles/dpdk/tasks/deploy_block.yaml
new file mode 100644
index 0000000000..1f972f5320
--- /dev/null
+++ b/fdio.infra.ansible/roles/dpdk/tasks/deploy_block.yaml
@@ -0,0 +1,33 @@
+---
+# file: tasks/deploy_block.yaml
+
+- name: Download Release {{ item }}
+ ansible.builtin.get_url:
+ url: "{{ dpdk_url }}/dpdk-{{ item }}.tar.xz"
+ dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
+ mode: 0644
+ register: dpdk_downloaded
+
+- name: Extract Release {{ item }}
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
+ dest: "{{ dpdk_target_dir }}/"
+ creates: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
+ when: dpdk_downloaded
+ register: dpdk_extracted
+
+- name: Compile Release I
+ ansible.builtin.command: "meson -Dexamples=l3fwd build"
+ args:
+ chdir: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
+ environment:
+ CFLAGS: "-DRTE_LIBRTE_I40E_16BYTE_RX_DESC=y"
+ register: dpdk_compiled
+
+- name: Compile Release II
+ ansible.builtin.command: "ninja -C build"
+ args:
+ chdir: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
+ environment:
+ CFLAGS: "-DRTE_LIBRTE_I40E_16BYTE_RX_DESC=y" \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/dpdk/tasks/main.yaml b/fdio.infra.ansible/roles/dpdk/tasks/main.yaml
new file mode 100644
index 0000000000..4f6c9ec9f2
--- /dev/null
+++ b/fdio.infra.ansible/roles/dpdk/tasks/main.yaml
@@ -0,0 +1,24 @@
+---
+# file: tasks/main.yaml
+
+- name: Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution == 'Ubuntu'
+ tags:
+ - dpdk-inst-prerequisites
+
+- name: Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: "latest"
+ tags:
+ - dpdk-inst-prerequisites
+
+- name: Multiple DPDK Versions
+ include_tasks: deploy_block.yaml
+ loop: "{{ dpdk_version }}"
+ tags:
+ - dpdk-inst
diff --git a/fdio.infra.ansible/roles/intel/defaults/main.yaml b/fdio.infra.ansible/roles/intel/defaults/main.yaml
new file mode 100644
index 0000000000..9a3c5c0f0c
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/defaults/main.yaml
@@ -0,0 +1,111 @@
+---
+# file: defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - []
+
+packages_by_distro:
+ ubuntu:
+ - "build-essential"
+ - "autoconf"
+ - "automake"
+ - "autotools-dev"
+ - "libtool"
+ - "pkgconf"
+ - "asciidoc"
+ - "xmlto"
+ - "uuid-dev"
+ - "libjson-c-dev"
+ - "libkeyutils-dev"
+ - "libz-dev"
+ - "libssl-dev"
+ - "debhelper"
+ - "devscripts"
+ - "debmake"
+ - "quilt"
+ - "fakeroot"
+ - "lintian"
+ - "asciidoctor"
+ - "file"
+ - "gnupg"
+ - "patch"
+ - "patchutils"
+ - "libboost-dev"
+ - "libboost-regex-dev"
+# - "libudev-dev" http://security.ubuntu.com/ubuntu/pool/main/s/systemd/
+ - "yasm"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+intel_sourceforge_download_url: "https://sourceforge.net/projects/e1000/files"
+intel_download_url: "https://downloadmirror.intel.com"
+intel_extract_dir: "/opt"
+
+intel_700_compatibility_matrix:
+ dpdk22.07:
+ # https://doc.dpdk.org/guides/rel_notes/release_22_07.html
+ i40e: "2.19.3"
+ iavf: "4.5.3"
+ nvm: "8.70"
+ dpdk23.11:
+ # https://doc.dpdk.org/guides/rel_notes/release_23_11.html
+ i40e: "2.23.17"
+ iavf: "4.9.5"
+ nvm: "9.30"
+
+intel_800_compatibility_matrix:
+ dpdk22.03:
+ # custom for vpp_device
+ ice: "1.13.7"
+ ddp: "1.3.45.0"
+ iavf: "4.9.5"
+ nvm: "4.40"
+ dpdk22.07:
+ # https://doc.dpdk.org/guides/rel_notes/release_22_07.html
+ ice: "1.9.7"
+ ddp: "1.3.37.0"
+ iavf: "4.5.3"
+ nvm: "4.00"
+ dpdk23.11:
+ # https://doc.dpdk.org/guides/rel_notes/release_23_11.html
+ ice: "1.13.7"
+ ddp: "1.3.45.0"
+ iavf: "4.9.5"
+ nvm: "4.40"
+
+intel_dsa_compatibility_matrix:
+ dsa: "4.0"
+
+intel_qat_compatibility_matrix:
+ qat2: "1.0.20-00008"
+ qat1: "4.22.0-00001"
+
+intel_i40e_url:
+ "2.19.3": "i40e%20stable/2.19.3/i40e-2.19.3.tar.gz/download"
+ "2.23.17": "i40e%20stable/2.23.17/i40e-2.23.17.tar.gz/download"
+
+intel_ice_url:
+ "1.9.7": "ice%20stable/1.9.7/ice-1.9.7.tar.gz/download"
+ "1.13.7": "ice%20stable/1.13.7/ice-1.13.7.tar.gz/download"
+
+intel_iavf_url:
+ "4.3.19": "iavf%20stable/4.3.19/iavf-4.3.19.tar.gz/download"
+ "4.5.3": "iavf%20stable/4.5.3/iavf-4.5.3.tar.gz/download"
+ "4.9.5": "iavf%20stable/4.9.5/iavf-4.9.5.tar.gz/download"
+
+intel_ddp_url:
+ "1.3.37.0": "738733/800%20Series%20DDP%20Comms%20Package%201.3.37.0.zip"
+ "1.3.45.0": "785846/738693_ice_comms-1.3.45.0.zip"
+
+intel_dsa_url:
+ "4.0": "https://github.com/intel/idxd-config/archive/refs/tags/accel-config-v4.0.tar.gz"
+
+intel_qat_url:
+ "1.0.20-00008": "777529/QAT20.L.1.0.20-00008.tar.gz"
+ "4.22.0-00001": "780675/QAT.L.4.22.0-00001.tar.gz"
diff --git a/fdio.infra.ansible/roles/intel/tasks/dsa.yaml b/fdio.infra.ansible/roles/intel/tasks/dsa.yaml
new file mode 100644
index 0000000000..2f038b0e9f
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/dsa.yaml
@@ -0,0 +1,39 @@
+---
+# file: tasks/dsa.yaml
+
+- name: Get DSA Driver
+ ansible.builtin.uri:
+ url: "{{ intel_dsa_url[dsa] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/accel-config-v{{ dsa }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Extract DSA Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/accel-config-v{{ dsa }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/"
+ creates: "{{ intel_extract_dir }}/idxd-config-accel-config-v{{ dsa }}"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install DSA Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/idxd-config-accel-config-v{{ dsa }}"
+ become: true
+ with_items:
+ - "./autogen.sh"
+ - "./configure CFLAGS='-g -O2' --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64"
+ - "make"
+ - "make check"
+ - "make install"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
diff --git a/fdio.infra.ansible/roles/intel/tasks/i40e.yaml b/fdio.infra.ansible/roles/intel/tasks/i40e.yaml
new file mode 100644
index 0000000000..8b069bf9b2
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/i40e.yaml
@@ -0,0 +1,37 @@
+---
+# file: tasks/i40e.yaml
+
+- name: Get i40e Network Adapter Driver
+ ansible.builtin.uri:
+ url: "{{ intel_sourceforge_download_url }}/{{ intel_i40e_url[i40e] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/i40e-{{ i40e }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Extract i40e Network Adapter Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/i40e-{{ i40e }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/"
+ creates: "{{ intel_extract_dir }}/i40e-{{ i40e }}"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install i40e Network Adapter Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/i40e-{{ i40e }}/src"
+ become: true
+ with_items:
+ - "make install"
+ #- "modprobe -r i40e"
+ - "modprobe i40e"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
diff --git a/fdio.infra.ansible/roles/intel/tasks/iavf.yaml b/fdio.infra.ansible/roles/intel/tasks/iavf.yaml
new file mode 100644
index 0000000000..127e31bee2
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/iavf.yaml
@@ -0,0 +1,37 @@
+---
+# file: tasks/iavf.yaml
+
+- name: Get iavf Network Adapter Driver
+ ansible.builtin.uri:
+ url: "{{ intel_sourceforge_download_url }}/{{ intel_iavf_url[iavf] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/iavf-{{ iavf }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Extract iavf Network Adapter Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/iavf-{{ iavf }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/"
+ creates: "{{ intel_extract_dir }}/iavf-{{ iavf }}"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install iavf Network Adapter Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/iavf-{{ iavf }}/src"
+ become: true
+ with_items:
+ - "make install"
+ - "modprobe -r iavf"
+ - "modprobe iavf"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
diff --git a/fdio.infra.ansible/roles/intel/tasks/ice.yaml b/fdio.infra.ansible/roles/intel/tasks/ice.yaml
new file mode 100644
index 0000000000..c773a65a34
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/ice.yaml
@@ -0,0 +1,91 @@
+---
+# file: tasks/ice.yaml
+
+- name: Get ice Network Adapter Driver
+ ansible.builtin.uri:
+ url: "{{ intel_sourceforge_download_url }}/{{ intel_ice_url[ice] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/ice-{{ ice }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Extract ice Network Adapter Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/ice-{{ ice }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/"
+ creates: "{{ intel_extract_dir }}/ice-{{ ice }}"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install ice Network Adapter Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/ice-{{ ice }}/src"
+ become: true
+ with_items:
+ - "make install"
+ #- "modprobe -r ice"
+ - "modprobe ice"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Get Dynamic Device Personalization (DDP) Package
+ ansible.builtin.get_url:
+ url: "{{ intel_download_url }}/{{ intel_ddp_url[ddp] }}"
+ dest: "{{ intel_extract_dir }}/800-Series-Comms-Binary-Package-{{ ddp }}.zip"
+ mode: 0644
+ tags:
+ - intel-inst
+
+- name: Extract Dynamic Device Personalization (DDP) Package
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/800-Series-Comms-Binary-Package-{{ ddp }}.zip"
+ dest: "{{ intel_extract_dir }}/"
+ creates: "{{ intel_extract_dir }}/ice_comms-{{ ddp }}.zip"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Extract Dynamic Device Personalization (DDP) Package
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/ice_comms-{{ ddp }}.zip"
+ dest: "{{ intel_extract_dir }}/"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Copy Dynamic Device Personalization (DDP) Package
+ ansible.builtin.copy:
+ src: "{{ intel_extract_dir }}/ice_comms-{{ ddp }}.pkg"
+ dest: "/lib/firmware/updates/intel/ice/ddp/ice-{{ ddp }}.pkg"
+ remote_src: true
+ follow: true
+ tags:
+ - intel-inst
+
+- name: Link Dynamic Device Personalization (DDP) Package
+ ansible.builtin.file:
+ src: "ice-{{ ddp }}.pkg"
+ dest: "/lib/firmware/updates/intel/ice/ddp/ice.pkg"
+ state: link
+ tags:
+ - intel-inst
+
+- name: Extract Dynamic Device Personalization (DDP) Package (cleanup)
+ ansible.builtin.file:
+ path: "{{ item }}"
+ state: absent
+ with_items:
+ - "{{ intel_extract_dir }}/E810 DDP for Comms TechGuide_Rev2.3.pdf"
+ - "{{ intel_extract_dir }}/Intel_800_series_market_segment_DDP_license.txt"
+ tags:
+ - intel-inst
diff --git a/fdio.infra.ansible/roles/intel/tasks/main.yaml b/fdio.infra.ansible/roles/intel/tasks/main.yaml
new file mode 100644
index 0000000000..d7598deca7
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/main.yaml
@@ -0,0 +1,146 @@
+---
+# file: tasks/main.yaml
+
+- name: Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - intel-inst-drivers
+
+- name: Install Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - intel-inst-drivers
+
+- name: Check Presence of Intel Ethernet 700 Series
+ ansible.builtin.shell: "lspci -d 8086:1583; lspci -d 8086:1585; lspci -d 8086:1572; lspci -d 8086:158a; lspci -d 8086:158b"
+ register: intel_700_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - intel-inst-drivers
+
+- name: Check Presence of Intel Ethernet 800 Series
+ ansible.builtin.shell: "lspci -d 8086:1592; lspci -d 8086:1891; lspci -d 8086:188c"
+ register: intel_800_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - intel-inst-drivers
+
+- name: Check Presence of Intel DSA
+ ansible.builtin.shell: "lspci -d 8086:0b25"
+ register: intel_dsa_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - intel-inst-drivers
+
+- name: Check Presence of Intel C4XXX
+ ansible.builtin.shell: "lspci -d 8086:18a0"
+ register: intel_qat1_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - intel-inst-drivers
+
+- name: Check Presence of Intel 4XXX
+ ansible.builtin.shell: "lspci -d 8086:4942"
+ register: intel_qat2_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - intel-inst-drivers
+
+- name: Get Intel Ethernet 700 Series driver versions
+ ansible.builtin.set_fact:
+ i40e: "{{ intel_700_compatibility_matrix[intel_700_matrix]['i40e'] }}"
+ iavf: "{{ intel_700_compatibility_matrix[intel_700_matrix]['iavf'] }}"
+ nvm: "{{ intel_700_compatibility_matrix[intel_700_matrix]['nvm'] }}"
+ when: >
+ intel_700_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Get Intel Ethernet 800 Series driver versions
+ ansible.builtin.set_fact:
+ ice: "{{ intel_800_compatibility_matrix[intel_800_matrix]['ice'] }}"
+ ddp: "{{ intel_800_compatibility_matrix[intel_800_matrix]['ddp'] }}"
+ iavf: "{{ intel_800_compatibility_matrix[intel_800_matrix]['iavf'] }}"
+ nvm: "{{ intel_800_compatibility_matrix[intel_800_matrix]['nvm'] }}"
+ when: >
+ intel_800_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Get Intel DSA driver versions
+ ansible.builtin.set_fact:
+ dsa: "{{ intel_dsa_compatibility_matrix['dsa'] }}"
+ when: >
+ intel_dsa_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Get Intel QAT driver versions
+ ansible.builtin.set_fact:
+ qat1: "{{ intel_qat_compatibility_matrix['qat1'] }}"
+ qat2: "{{ intel_qat_compatibility_matrix['qat2'] }}"
+ when: >
+ intel_qat_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel Ethernet 700 Series
+ import_tasks: i40e.yaml
+ when: >
+ intel_700_pcis.stdout_lines | length > 0 and
+ intel_700_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel Ethernet 800 Series
+ import_tasks: ice.yaml
+ when: >
+ intel_800_pcis.stdout_lines | length > 0 and
+ intel_800_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel iAVF
+ import_tasks: iavf.yaml
+ when: >
+ (intel_700_pcis.stdout_lines | length > 0 and
+ intel_700_matrix is defined) or
+ (intel_800_pcis.stdout_lines | length > 0 and
+ intel_800_matrix is defined)
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel DSA
+ import_tasks: dsa.yaml
+ when: >
+ intel_dsa_pcis.stdout_lines | length > 0 and
+ intel_dsa_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel QAT 1.x
+ import_tasks: qat1.yaml
+ when: >
+ intel_qat1_pcis.stdout_lines | length > 0 and
+ intel_qat_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel QAT 2.x
+ import_tasks: qat2.yaml
+ when: >
+ intel_qat2_pcis.stdout_lines | length > 0 and
+ intel_qat_matrix is defined
+ tags:
+ - intel-inst-drivers \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/intel/tasks/qat1.yaml b/fdio.infra.ansible/roles/intel/tasks/qat1.yaml
new file mode 100644
index 0000000000..701c0c1bf1
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/qat1.yaml
@@ -0,0 +1,54 @@
+---
+# file: tasks/qat1.yaml
+
+- name: Get QAT 1.x Driver
+ ansible.builtin.uri:
+ url: "{{ intel_download_url }}/{{ intel_qat_url[qat1] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Create a Directory For QAT 1.x Driver
+ ansible.builtin.file:
+ path: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}/"
+ state: "directory"
+ mode: "0755"
+ tags:
+ - intel-inst
+
+- name: Extract QAT 1.x Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}/"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install QAT1.x Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}"
+ become: true
+ with_items:
+ - "./configure --enable-icp-sriov=host --enable-icp-sym-only"
+ - "make"
+ - "make install"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Load Kernel Modules By Default
+ ansible.builtin.lineinfile:
+ path: "/etc/modules"
+ state: "present"
+ line: "{{ item }}"
+ with_items:
+ - "qat_c4xxx"
+ tags:
+ - intel-inst \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/intel/tasks/qat2.yaml b/fdio.infra.ansible/roles/intel/tasks/qat2.yaml
new file mode 100644
index 0000000000..a560f16b2c
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/qat2.yaml
@@ -0,0 +1,57 @@
+---
+# file: tasks/qat2.yaml
+
+- name: Get QAT 2.x Driver
+ ansible.builtin.uri:
+ url: "{{ intel_download_url }}/{{ intel_qat_url[qat2] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Create a Directory For QAT 2.x Driver
+ ansible.builtin.file:
+ path: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}/"
+ state: "directory"
+ mode: "0755"
+ tags:
+ - intel-inst
+
+- name: Extract QAT 2.x Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}/"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install QAT 2.x Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}"
+ become: true
+ with_items:
+ - "wget http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev-dev_249.11-0ubuntu3.7_amd64.deb"
+ - "dpkg -i ./libudev-dev_249.11-0ubuntu3.7_amd64.deb"
+ - "./configure --enable-icp-sriov=host --enable-icp-sym-only"
+ - "make"
+ - "make install"
+ - "apt remove -y libudev-dev"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Load Kernel Modules By Default
+ ansible.builtin.lineinfile:
+ path: "/etc/modules"
+ state: "present"
+ line: "{{ item }}"
+ with_items:
+ - "qat_4xxx"
+ tags:
+ - intel-inst \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/iperf/defaults/main.yaml b/fdio.infra.ansible/roles/iperf/defaults/main.yaml
new file mode 100644
index 0000000000..f757b287b7
--- /dev/null
+++ b/fdio.infra.ansible/roles/iperf/defaults/main.yaml
@@ -0,0 +1,23 @@
+---
+# file: roles/iperf/defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - []
+
+packages_by_distro:
+ ubuntu:
+ jammy:
+ - "build-essential"
+ #- "lib32z1"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+iperf_target_dir: "/opt"
+iperf_version:
+ - "3.7"
diff --git a/fdio.infra.ansible/roles/iperf/tasks/main.yaml b/fdio.infra.ansible/roles/iperf/tasks/main.yaml
new file mode 100644
index 0000000000..6184ba25f1
--- /dev/null
+++ b/fdio.infra.ansible/roles/iperf/tasks/main.yaml
@@ -0,0 +1,62 @@
+---
+# file: roles/iperf/tasks/main.yaml
+
+- name: Inst - Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - iperf-inst-prerequisites
+
+- name: Inst - Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - iperf-inst-prerequisites
+
+- name: Get Release Archive
+ ansible.builtin.get_url:
+ url: "https://downloads.es.net/pub/iperf/iperf-{{ item }}.tar.gz"
+ dest: "{{ iperf_target_dir }}/iperf-{{ item }}.tar.gz"
+ validate_certs: false
+ mode: 0644
+ loop: "{{ iperf_version }}"
+ tags:
+ - iperf-inst
+
+- name: Extract Release Archive
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ iperf_target_dir }}/iperf-{{ item }}.tar.gz"
+ dest: "{{ iperf_target_dir }}/"
+ creates: "{{ iperf_target_dir }}/iperf-{{ item }}/src"
+ loop: "{{ iperf_version }}"
+ tags:
+ - iperf-inst
+
+- name: Compile Release I
+ ansible.builtin.command: "./configure"
+ args:
+ chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
+ loop: "{{ iperf_version }}"
+ tags:
+ - iperf-inst
+
+- name: Compile Release II
+ ansible.builtin.command: "make"
+ args:
+ chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
+ loop: "{{ iperf_version }}"
+ tags:
+ - iperf-inst
+
+- name: Compile Release III
+ ansible.builtin.command: "make install"
+ args:
+ chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
+ loop: "{{ iperf_version }}"
+ tags:
+ - iperf-inst
diff --git a/fdio.infra.ansible/roles/jenkins_job_health_exporter/defaults/main.yaml b/fdio.infra.ansible/roles/jenkins_job_health_exporter/defaults/main.yaml
new file mode 100644
index 0000000000..ab54aac516
--- /dev/null
+++ b/fdio.infra.ansible/roles/jenkins_job_health_exporter/defaults/main.yaml
@@ -0,0 +1,28 @@
+---
+# file: roles/jenkins_job_health_exporter/defaults/main.yaml
+
+# Conf - Jenkins Job Health Exporter.
+jenkins_host: "jenkins.fd.io"
+poll_interval_sec: 1800
+req_timeout_sec: 30
+bind_to: "0.0.0.0:9186"
+last_builds: 10
+jobs:
+ - "vpp-csit-verify-api-crc-master-ubuntu2204-x86_64"
+ - "vpp-gcc-verify-master-ubuntu2204-x86_64"
+ - "vpp-verify-master-ubuntu2204-aarch64"
+ - "vpp-verify-master-ubuntu2204-x86_64"
+ - "vpp-debug-verify-master-ubuntu2204-x86_64"
+ - "vpp-checkstyle-verify-master-ubuntu2204-x86_64"
+ - "vpp-docs-verify-master-ubuntu2204-x86_64"
+ - "vpp-csit-verify-device-master-ubuntu2204-x86_64-1n-skx"
+ - "vpp-csit-verify-device-master-ubuntu2204-aarch64-1n-tx2"
+
+# Conf - Service.
+jenkins_job_health_exporter_restart_handler_state: "restarted"
+
+# Inst - System paths.
+jenkins_job_health_exporter_target_dir: "/usr/bin"
+jenkins_job_health_exporter_conf_dir: "/etc"
+jenkins_job_health_exporter_url: "https://github.com/ayourtch/jenkins-job-health-exporter/releases/download"
+jenkins_job_health_exporter_version: "v0.0.3"
diff --git a/fdio.infra.ansible/roles/jenkins_job_health_exporter/handlers/main.yaml b/fdio.infra.ansible/roles/jenkins_job_health_exporter/handlers/main.yaml
new file mode 100644
index 0000000000..01849fd92e
--- /dev/null
+++ b/fdio.infra.ansible/roles/jenkins_job_health_exporter/handlers/main.yaml
@@ -0,0 +1,9 @@
+---
+# file roles/jenkins_job_health_exporter/handlers/main.yaml
+
+- name: Restart Jenkins Job Health Exporter
+ ansible.builtin.systemd:
+ daemon_reload: true
+ enabled: true
+ name: "jenkins-job-health-exporter"
+ state: "{{ jenkins_job_health_exporter_restart_handler_state }}"
diff --git a/fdio.infra.ansible/roles/jenkins_job_health_exporter/tasks/main.yaml b/fdio.infra.ansible/roles/jenkins_job_health_exporter/tasks/main.yaml
new file mode 100644
index 0000000000..efdc26a6d2
--- /dev/null
+++ b/fdio.infra.ansible/roles/jenkins_job_health_exporter/tasks/main.yaml
@@ -0,0 +1,38 @@
+---
+# file: roles/jenkins_job_health_exporter/tasks/main.yaml
+
+- name: Conf - Jenkins Job Health Exporter Config
+ ansible.builtin.template:
+ src: "templates/jenkins-job-health-exporter.j2"
+ dest: "/etc/jenkins-job-health-exporter.json"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+ when:
+ - ansible_hostname == "s22-nomad"
+ tags:
+ - conf-jenkins-job-json
+
+- name: Inst - Jenkins Job Health Exporter Binary
+ ansible.builtin.get_url:
+ url: "{{ jenkins_job_health_exporter_url }}/{{ jenkins_job_health_exporter_version }}/jenkins-job-health-exporter"
+ dest: "{{ jenkins_job_health_exporter_target_dir }}/jenkins-job-health-exporter"
+ mode: "0755"
+ when:
+ - ansible_hostname == "s22-nomad"
+ tags:
+ - inst-jenkins-job-binary
+
+- name: Inst - Jenkins Job Health Exporter Service
+ ansible.builtin.template:
+ src: "templates/jenkins-job-health-exporter.service.j2"
+ dest: "/lib/systemd/system/jenkins-job-health-exporter.service"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+ when:
+ - ansible_hostname == "s22-nomad"
+ notify:
+ - "Restart Jenkins Job Health Exporter"
+ tags:
+ - inst-jenkins-job-service
diff --git a/fdio.infra.ansible/roles/jenkins_job_health_exporter/templates/jenkins-job-health-exporter.j2 b/fdio.infra.ansible/roles/jenkins_job_health_exporter/templates/jenkins-job-health-exporter.j2
new file mode 100644
index 0000000000..5942b782e0
--- /dev/null
+++ b/fdio.infra.ansible/roles/jenkins_job_health_exporter/templates/jenkins-job-health-exporter.j2
@@ -0,0 +1,16 @@
+{
+ "jenkins_host": "{{ jenkins_host }}",
+ "poll_interval_sec": {{ poll_interval_sec }},
+ "req_timeout_sec": {{ req_timeout_sec }},
+ "bind_to": "{{ bind_to }}",
+ "last_builds": {{ last_builds }},
+ "jobs": [
+{% for item in jobs %}
+ "{{ item }}"
+{%- if not loop.last %},
+{% endif %}
+{% endfor %}
+
+ ],
+ "verbose": 3
+} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/jenkins_job_health_exporter/templates/jenkins-job-health-exporter.service.j2 b/fdio.infra.ansible/roles/jenkins_job_health_exporter/templates/jenkins-job-health-exporter.service.j2
new file mode 100644
index 0000000000..38073d0a8c
--- /dev/null
+++ b/fdio.infra.ansible/roles/jenkins_job_health_exporter/templates/jenkins-job-health-exporter.service.j2
@@ -0,0 +1,13 @@
+[Unit]
+Description=Jenkins Job Health Exporter
+Documentation=https://github.com/ayourtch/jenkins-job-health-exporter
+
+[Service]
+Restart=always
+ExecStart={{ jenkins_job_health_exporter_target_dir }}/jenkins-job-health-exporter {{ jenkins_job_health_exporter_conf_dir }}/jenkins-job-health-exporter.json
+ExecReload=/bin/kill -HUP $MAINPID
+TimeoutStopSec=20s
+SendSIGKILL=no
+
+[Install]
+WantedBy=multi-user.target \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/kernel/defaults/main.yaml b/fdio.infra.ansible/roles/kernel/defaults/main.yaml
new file mode 100644
index 0000000000..ef628c93f5
--- /dev/null
+++ b/fdio.infra.ansible/roles/kernel/defaults/main.yaml
@@ -0,0 +1,31 @@
+---
+# file: roles/kernel/defaults/main.yaml
+
+# Kernel version to install (Default to any version).
+kernel_version: "{{ kernel_version_by_distro[ansible_distribution|lower][ansible_distribution_release] | join(' ') }}"
+
+kernel_version_by_distro:
+ ubuntu:
+ jammy:
+ - "5.15.0-46"
+
+kernel_packages: "{{ kernel_packages_by_distro[ansible_distribution|lower][ansible_distribution_release] | flatten(levels=1) }}"
+
+kernel_packages_by_distro:
+ ubuntu:
+ jammy:
+ - "linux-image"
+ - "linux-headers"
+ - "linux-modules"
+ - "linux-modules-extra"
+ - "linux-tools"
+
+# Packages to remove in relation to kernel upgrade.
+absent_packages: "{{ absent_packages_by_distro[ansible_distribution|lower][ansible_distribution_release] | flatten(levels=1) }}"
+
+absent_packages_by_distro:
+ ubuntu:
+ jammy:
+ - "amd64-microcode"
+ - "intel-microcode"
+ - "iucode-tool"
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/filter_plugins/main.py b/fdio.infra.ansible/roles/kernel/filter_plugins/main.py
index 7d909b90e8..7d909b90e8 100644
--- a/resources/tools/testbed-setup/ansible/roles/kernel/filter_plugins/main.py
+++ b/fdio.infra.ansible/roles/kernel/filter_plugins/main.py
diff --git a/fdio.infra.ansible/roles/kernel/handlers/main.yaml b/fdio.infra.ansible/roles/kernel/handlers/main.yaml
new file mode 100644
index 0000000000..d0be276a5b
--- /dev/null
+++ b/fdio.infra.ansible/roles/kernel/handlers/main.yaml
@@ -0,0 +1,8 @@
+---
+# file roles/kernel/handlers/main.yaml
+
+- name: Reboot Server
+ ansible.builtin.reboot:
+ reboot_timeout: 3600
+ tags:
+ - reboot-server
diff --git a/fdio.infra.ansible/roles/kernel/tasks/main.yaml b/fdio.infra.ansible/roles/kernel/tasks/main.yaml
new file mode 100644
index 0000000000..431e344fb8
--- /dev/null
+++ b/fdio.infra.ansible/roles/kernel/tasks/main.yaml
@@ -0,0 +1,9 @@
+---
+# file: roles/kernel/tasks/main.yaml
+
+- name: Inst - Prerequisites
+ include_tasks: "{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml"
+ tags:
+ - kernel-inst-prerequisites
+
+- meta: flush_handlers
diff --git a/fdio.infra.ansible/roles/kernel/tasks/ubuntu_jammy.yaml b/fdio.infra.ansible/roles/kernel/tasks/ubuntu_jammy.yaml
new file mode 100644
index 0000000000..af987d4e5a
--- /dev/null
+++ b/fdio.infra.ansible/roles/kernel/tasks/ubuntu_jammy.yaml
@@ -0,0 +1,62 @@
+---
+# file: roles/kernel/tasks/ubuntu_jammy.yaml
+
+- name: Get Available Kernel Versions
+ ansible.builtin.command: "apt-cache showpkg linux-headers-*"
+ changed_when: false
+ register: apt_kernel_list
+ tags:
+ - kernel-inst
+
+- name: Get installed packages with APT
+ ansible.builtin.command: "dpkg -l"
+ changed_when: false
+ register: apt_packages_list
+ tags:
+ - kernel-inst
+
+- name: Set target APT kernel version
+ ansible.builtin.set_fact:
+ _kernel: "{{ apt_kernel_list | deb_kernel(
+ kernel_version, ansible_kernel) }}"
+ tags:
+ - kernel-inst
+
+- name: Disable APT auto upgrade
+ ansible.builtin.lineinfile:
+ path: "/etc/apt/apt.conf.d/20auto-upgrades"
+ state: "present"
+ regexp: "APT::Periodic::Unattended-Upgrade \"[0-9]\";"
+ line: "APT::Periodic::Unattended-Upgrade \"0\";"
+ create: true
+ mode: 0644
+ tags:
+ - kernel-inst
+
+- name: Ensure Packages Versions
+ ansible.builtin.apt:
+ name: "{{ apt_kernel_list | deb_kernel_pkg(
+ kernel_version, ansible_kernel, ansible_distribution,
+ ansible_architecture, item) }}"
+ loop: "{{ kernel_packages }}"
+ tags:
+ - kernel-inst
+
+- name: Ensure Any Other Kernel Packages Are Removed
+ ansible.builtin.apt:
+ name: "{{ apt_packages_list | deb_installed_kernel(
+ apt_kernel_list, kernel_version, ansible_kernel) }}"
+ state: "absent"
+ purge: true
+ notify:
+ - "Reboot Server"
+ tags:
+ - kernel-inst
+
+- name: Ensure Any Microcode Is Absent
+ ansible.builtin.apt:
+ name: "{{ absent_packages }}"
+ state: "absent"
+ purge: true
+ tags:
+ - kernel-inst
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel_vm/files/initramfs_modules b/fdio.infra.ansible/roles/kernel_vm/files/initramfs_modules
index 00ae8e03e7..00ae8e03e7 100644
--- a/resources/tools/testbed-setup/ansible/roles/kernel_vm/files/initramfs_modules
+++ b/fdio.infra.ansible/roles/kernel_vm/files/initramfs_modules
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel_vm/files/initramfs_resume b/fdio.infra.ansible/roles/kernel_vm/files/initramfs_resume
index 820819823b..820819823b 100644
--- a/resources/tools/testbed-setup/ansible/roles/kernel_vm/files/initramfs_resume
+++ b/fdio.infra.ansible/roles/kernel_vm/files/initramfs_resume
diff --git a/fdio.infra.ansible/roles/kernel_vm/tasks/main.yaml b/fdio.infra.ansible/roles/kernel_vm/tasks/main.yaml
new file mode 100644
index 0000000000..cd8eb15c57
--- /dev/null
+++ b/fdio.infra.ansible/roles/kernel_vm/tasks/main.yaml
@@ -0,0 +1,92 @@
+---
+# file: roles/kernel_vm/tasks/main.yaml
+
+- name: Inst - Backup remote initramfs modules
+ ansible.builtin.copy:
+ src: "/etc/initramfs-tools/modules"
+ dest: "/tmp/initramfs_modules.bkp"
+ remote_src: true
+ ignore_errors: true
+ register: __initramfs_modules_backuped
+ tags:
+ - kernel-inst-image
+
+- name: Inst - Backup remote initramfs resume config
+ ansible.builtin.copy:
+ src: "/etc/initramfs-tools/conf.d/resume"
+ dest: "/tmp/initramfs-resume.bkp"
+ remote_src: true
+ ignore_errors: true
+ register: __initramfs_resume_backuped
+ tags:
+ - kernel-inst-image
+
+- name: Inst - Update remote initramfs modules
+ ansible.builtin.copy:
+ src: "../files/initramfs_modules"
+ dest: "/etc/initramfs-tools/modules"
+ tags:
+ - kernel-inst-image
+
+- name: Inst - Update remote initramfs resume config
+ ansible.builtin.copy:
+ src: "../files/initramfs_resume"
+ dest: "/etc/initramfs-tools/conf.d/resume"
+ tags:
+ - kernel-inst-image
+
+- name: Inst - Create target kernel dir
+ ansible.builtin.file:
+ path: "/opt/boot"
+ state: "directory"
+ tags:
+ - kernel-inst-image
+
+- name: Inst - Build initrd image
+ ansible.builtin.shell: "update-initramfs -k {{ ansible_kernel }} -c -b /opt/boot"
+ tags:
+ - kernel-inst-image
+
+- name: Inst - Copy corresponding kernel img
+ ansible.builtin.copy:
+ src: "/boot/vmlinuz-{{ ansible_kernel }}"
+ dest: "/opt/boot/vmlinuz-{{ ansible_kernel }}"
+ remote_src: true
+ tags:
+ - kernel-inst-image
+
+- name: Inst - Restore remote initramfs modules
+ ansible.builtin.copy:
+ src: "/tmp/initramfs_modules.bkp"
+ dest: "/etc/initramfs-tools/modules"
+ remote_src: true
+ ignore_errors: true
+ when: __initramfs_modules_backuped
+ tags:
+ - kernel-inst-image
+
+- name: Inst - Remove remote backup initramfs modules
+ ansible.builtin.file:
+ path: "/tmp/initramfs_modules.bkp"
+ state: "absent"
+ when: __initramfs_modules_backuped
+ tags:
+ - kernel-inst-image
+
+- name: Inst - Restore remote initramfs resume config
+ ansible.builtin.copy:
+ src: "/tmp/initramfs-resume.bkp"
+ dest: "/etc/initramfs-tools/conf.d/resume"
+ remote_src: true
+ ignore_errors: true
+ when: __initramfs_resume_backuped
+ tags:
+ - kernel-inst-image
+
+- name: Inst - Remove remote backup initramfs resume config
+ ansible.builtin.file:
+ path: "/tmp/initramfs-resume.bkp"
+ state: "absent"
+ when: __initramfs_resume_backuped
+ tags:
+ - kernel-inst-image
diff --git a/fdio.infra.ansible/roles/mellanox/defaults/main.yaml b/fdio.infra.ansible/roles/mellanox/defaults/main.yaml
new file mode 100644
index 0000000000..de66be2d6b
--- /dev/null
+++ b/fdio.infra.ansible/roles/mellanox/defaults/main.yaml
@@ -0,0 +1,30 @@
+---
+# file: defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - []
+
+packages_by_distro:
+ ubuntu:
+ - "build-essential"
+ - "libnl-3-dev"
+ - "libnl-route-3-dev"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+mellanox_download_url: "http://content.mellanox.com/ofed"
+mellanox_extract_dir: "/opt"
+
+mellanox_compatibility_matrix:
+ dpdk22.07:
+ # https://doc.dpdk.org/guides/rel_notes/release_22_07.html
+ ofed: "5.9-0.5.6.0"
+ dpdk23.11:
+ # https://doc.dpdk.org/guides/rel_notes/release_23_11.html
+ ofed: "23.07-0.5.0.0"
diff --git a/fdio.infra.ansible/roles/mellanox/tasks/main.yaml b/fdio.infra.ansible/roles/mellanox/tasks/main.yaml
new file mode 100644
index 0000000000..53376eb997
--- /dev/null
+++ b/fdio.infra.ansible/roles/mellanox/tasks/main.yaml
@@ -0,0 +1,43 @@
+---
+# file: tasks/main.yaml
+
+- name: Inst - Update Package Cache (APT)
+ apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - mellanox-inst-drivers
+
+- name: Inst - Prerequisites
+ package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: "latest"
+ tags:
+ - mellanox-inst-drivers
+
+- name: Inst - Check Presence of Mellanox
+ shell: "lspci | grep Mellanox | awk '{print $1}'"
+ register: mellanox_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - mellanox-inst-drivers
+
+- name: Inst - Get Mellanox OFED driver versions
+ set_fact:
+ ofed: "{{ mellanox_compatibility_matrix[mellanox_matrix]['ofed'] }}"
+ when: >
+ mellanox_pcis.stdout_lines | length > 0 and
+ mellanox_matrix is defined
+ tags:
+ - mellanox-inst-drivers
+
+- name: Inst - Driver Mellanox
+ import_tasks: ofed.yaml
+ when: >
+ mellanox_pcis.stdout_lines | length > 0 and
+ mellanox_matrix is defined
+ tags:
+ - mellanox-inst-drivers
diff --git a/fdio.infra.ansible/roles/mellanox/tasks/ofed.yaml b/fdio.infra.ansible/roles/mellanox/tasks/ofed.yaml
new file mode 100644
index 0000000000..c39975bab6
--- /dev/null
+++ b/fdio.infra.ansible/roles/mellanox/tasks/ofed.yaml
@@ -0,0 +1,37 @@
+---
+# file: tasks/ofed.yaml
+
+- name: Inst - Get OFED
+ ansible.builtin.get_url:
+ url: "{{ mellanox_download_url }}/MLNX_OFED-{{ ofed }}/MLNX_OFED_LINUX-{{ ofed }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
+ dest: "{{ mellanox_extract_dir }}/MLNX_OFED_LINUX-{{ ofed }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
+ mode: "0644"
+ when: mellanox_pcis.stdout_lines | length > 0
+ tags:
+ - mellanox-inst-drivers
+
+- name: Inst - Extract OFED
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ mellanox_extract_dir }}/MLNX_OFED_LINUX-{{ ofed }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
+ dest: "{{ mellanox_extract_dir }}/"
+ creates: "{{ mellanox_extract_dir }}/MLNX_OFED_LINUX-{{ ofed }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}"
+ register: mellanox_firmware_extracted
+ tags:
+ - mellanox-inst-drivers
+
+- name: Inst - OFED
+ ansible.builtin.command: "./mlnxofedinstall --with-mft --dpdk --force --upstream-libs" # --without-fw-update"
+ args:
+ chdir: "{{ mellanox_extract_dir }}/MLNX_OFED_LINUX-{{ ofed }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}"
+ when: mellanox_firmware_extracted
+ tags:
+ - mellanox-inst-drivers
+
+- name: Inst - Switch Infiniband to Ethernet
+ ansible.builtin.command: "mlxconfig --yes --dev {{ item }} set LINK_TYPE_P1=2 LINK_TYPE_P2=2"
+ with_items: "{{ mellanox_pcis.stdout_lines }}"
+ failed_when: false
+ changed_when: false
+ tags:
+ - mellanox-inst-drivers \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/nomad/defaults/main.yaml b/fdio.infra.ansible/roles/nomad/defaults/main.yaml
new file mode 100644
index 0000000000..535db2bb2c
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/defaults/main.yaml
@@ -0,0 +1,193 @@
+---
+# file: roles/nomad/defaults/main.yaml
+
+# Prerequisites
+packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages_base:
+ - "curl"
+ - "unzip"
+packages_by_distro:
+ ubuntu:
+ - []
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+# Package
+nomad_version: "1.4.3"
+nomad_architecture_map:
+ amd64: "amd64"
+ x86_64: "amd64"
+ armv7l: "arm"
+ aarch64: "arm64"
+ 32-bit: "386"
+ 64-bit: "amd64"
+nomad_architecture: "{{ nomad_architecture_map[ansible_architecture] }}"
+nomad_pkg: "nomad_{{ nomad_version }}_linux_{{nomad_architecture}}.zip"
+nomad_zip_url: "https://releases.hashicorp.com/nomad/{{ nomad_version }}/nomad_{{ nomad_version }}_linux_{{nomad_architecture}}.zip"
+nomad_checksum_file_url: "https://releases.hashicorp.com/nomad/{{ nomad_version }}/nomad_{{ nomad_version}}_SHA256SUMS"
+nomad_force_update: false
+
+# Paths
+nomad_inst_dir: "/opt"
+nomad_bin_dir: "/usr/local/bin"
+nomad_config_dir: "/etc/nomad.d"
+nomad_data_dir: "/var/nomad"
+nomad_plugin_dir: "{{ nomad_data_dir }}/plugins"
+nomad_lockfile: "/var/lock/subsys/nomad"
+nomad_run_dir: "/var/run/nomad"
+nomad_ssl_dir: "/etc/nomad.d/ssl"
+
+# Initialization and startup script templates
+nomad_service_mgr: ""
+
+# System user and group
+nomad_group: "nomad"
+nomad_user: "nomad"
+
+# Nomad settings
+nomad_datacenter: "dc1"
+nomad_region: "global"
+nomad_log_level: "INFO"
+nomad_syslog_enable: true
+nomad_iface: "{{ ansible_default_ipv4.interface }}"
+nomad_node_name: "{{ inventory_hostname }}"
+nomad_node_role: "server"
+nomad_leave_on_terminate: true
+nomad_leave_on_interrupt: false
+nomad_disable_update_check: true
+nomad_enable_debug: false
+
+# Server settings
+nomad_bootstrap_expect: 2
+nomad_encrypt: ""
+nomad_retry_join: true
+# Specifies how long a node must be in a terminal state before it is garbage
+# collected and purged from the system.
+nomad_node_gc_threshold: "24h"
+# Specifies the interval between the job garbage collections. Only jobs who have
+# been terminal for at least job_gc_threshold will be collected.
+nomad_job_gc_interval: "10m"
+# Specifies the minimum time a job must be in the terminal state before it is
+# eligible for garbage collection.
+nomad_job_gc_threshold: "4h"
+# Specifies the minimum time an evaluation must be in the terminal state before
+# it is eligible for garbage collection.
+nomad_eval_gc_threshold: "1h"
+# Specifies the minimum time a deployment must be in the terminal state before
+# it is eligible for garbage collection.
+nomad_deployment_gc_threshold: "1h"
+nomad_encrypt_enable: false
+nomad_raft_protocol: 2
+
+# Client settings
+nomad_node_class: "compute"
+nomad_no_host_uuid: true
+nomad_max_kill_timeout: "30s"
+nomad_gc_interval: "1m"
+nomad_gc_disk_usage_threshold: 80
+nomad_gc_inode_usage_threshold: 70
+nomad_gc_parallel_destroys: 2
+nomad_reserved:
+ cpu: "{{ nomad_reserved_cpu | default('0', true) }}"
+ memory: "{{ nomad_reserved_memory | default('0', true) }}"
+ disk: "{{ nomad_reserved_disk | default('0', true) }}"
+ ports: "{{ nomad_reserved_ports | default('22', true) }}"
+nomad_volumes: []
+nomad_options: {}
+nomad_meta: {}
+nomad_chroot_env: false
+nomad_plugins: {}
+
+# Addresses
+nomad_bind_address: "{{ hostvars[inventory_hostname]['ansible_'+ nomad_iface ]['ipv4']['address'] }}"
+nomad_advertise_address: "{{ hostvars[inventory_hostname]['ansible_' + nomad_iface]['ipv4']['address'] }}"
+
+# Ports
+nomad_ports:
+ http: "{{ nomad_ports_http | default('4646', true) }}"
+ rpc: "{{ nomad_ports_rpc | default('4647', true) }}"
+ serf: "{{ nomad_ports_serf | default('4648', true) }}"
+
+# Servers
+nomad_group_name: "nomad"
+nomad_servers: "\
+ {% if nomad_use_consul==false %}\
+ {% set _nomad_servers = [] %}\
+ {% for host in groups[nomad_group_name] %}\
+ {% set _nomad_node_role = hostvars[host]['nomad_node_role'] | default('client', true) %}\
+ {% if (_nomad_node_role == 'server' or _nomad_node_role == 'both') %}\
+ {% if _nomad_servers.append(host) %}{% endif %}\
+ {% endif %}\
+ {% endfor %}\
+ {{ _nomad_servers }}\
+ {% else %}\
+ []\
+ {% endif %}"
+nomad_gather_server_facts: false
+
+# Consul
+nomad_use_consul: true
+nomad_consul_address: "localhost:8500"
+nomad_consul_token: ""
+nomad_consul_servers_service_name: "nomad"
+nomad_consul_clients_service_name: "nomad-client"
+nomad_consul_tags: {}
+nomad_consul_use_ssl: false
+
+# ACLs
+nomad_acl_enabled: false
+nomad_acl_token_ttl: "30s"
+nomad_acl_policy_ttl: "30s"
+nomad_acl_replication_token: ""
+
+# Docker
+nomad_docker_enable: false
+nomad_docker_dmsetup: true
+
+# Autopilot
+nomad_autopilot_cleanup_dead_servers: true
+nomad_autopilot_last_contact_threshold: "200ms"
+nomad_autopilot_max_trailing_logs: 250
+nomad_autopilot_server_stabilization_time: "10s"
+
+# Telemetry.
+nomad_use_telemetry: true
+nomad_telemetry_disable_hostname: false
+nomad_telemetry_collection_interval: "1s"
+nomad_telemetry_use_node_name: false
+nomad_telemetry_publish_allocation_metrics: true
+nomad_telemetry_publish_node_metrics: true
+nomad_telemetry_prometheus_metrics: true
+
+# TLS.
+nomad_use_tls: true
+nomad_tls_ca_file: "{{ nomad_ssl_dir }}/nomad-ca.pem"
+nomad_tls_cert_file: "{{ nomad_ssl_dir }}/nomad.pem"
+nomad_tls_key_file: "{{ nomad_ssl_dir }}/nomad-key.pem"
+nomad_tls_cli_cert_file: "{{ nomad_ssl_dir }}/nomad-cli.pem"
+nomad_tls_cli_key_file: "{{ nomad_ssl_dir }}/nomad-cli-key.pem"
+nomad_tls_http: false
+nomad_tls_rpc: false
+nomad_tls_rpc_upgrade_mode: false
+nomad_tls_verify_https_client: false
+nomad_tls_verify_server_hostname: false
+
+# Vault
+nomad_use_vault: false
+nomad_vault_address: "http://vault.service.consul:8200"
+nomad_vault_allow_unauthenticated: true
+nomad_vault_enabled: false
+nomad_vault_create_from_role: ""
+nomad_vault_task_token_ttl: "72h"
+nomad_vault_use_ssl: false
+nomad_vault_ca_file: ""
+nomad_vault_ca_path: ""
+nomad_vault_cert_file: ""
+nomad_vault_key_file: ""
+nomad_vault_namespace: ""
+nomad_vault_tls_server_name: ""
+nomad_vault_tls_skip_verify: false
+nomad_vault_token: ""
diff --git a/fdio.infra.ansible/roles/nomad/handlers/main.yaml b/fdio.infra.ansible/roles/nomad/handlers/main.yaml
new file mode 100644
index 0000000000..32e5798e3e
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/handlers/main.yaml
@@ -0,0 +1,9 @@
+---
+# file handlers/main.yaml
+
+- name: Restart Nomad
+ ansible.builtin.systemd:
+ daemon_reload: true
+ enabled: true
+ name: "nomad"
+ state: "restarted"
diff --git a/fdio.infra.ansible/roles/nomad/meta/main.yaml b/fdio.infra.ansible/roles/nomad/meta/main.yaml
new file mode 100644
index 0000000000..098aafe2fb
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/meta/main.yaml
@@ -0,0 +1,21 @@
+---
+# file: meta/main.yaml
+
+dependencies: ["docker"]
+
+galaxy_info:
+ role_name: "nomad"
+ author: "pmikus"
+ description: "Hashicorp Nomad."
+ company: "none"
+ license: "license (Apache)"
+ min_ansible_version: "2.9"
+ platforms:
+ - name: "Ubuntu"
+ release:
+ - "focal"
+ - "jammy"
+ - "kinetic"
+ galaxy_tags:
+ - "nomad"
+ - "hashicorp"
diff --git a/fdio.infra.ansible/roles/nomad/tasks/main.yaml b/fdio.infra.ansible/roles/nomad/tasks/main.yaml
new file mode 100644
index 0000000000..72b78458f8
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/tasks/main.yaml
@@ -0,0 +1,151 @@
+---
+# file: tasks/main.yaml
+
+- name: Update Repositories Cache
+ ansible.builtin.apt:
+ update_cache: true
+ when:
+ - ansible_os_family == 'Debian'
+ tags:
+ - nomad-inst-package
+
+- name: Dependencies
+ ansible.builtin.apt:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: "present"
+ cache_valid_time: 3600
+ install_recommends: false
+ when:
+ - ansible_os_family == 'Debian'
+ tags:
+ - nomad-inst-dependencies
+
+- name: Add Nomad Group
+ ansible.builtin.group:
+ name: "{{ nomad_group }}"
+ state: "present"
+ tags:
+ - nomad-conf-user
+
+- name: Add Nomad user
+ ansible.builtin.user:
+ name: "{{ nomad_user }}"
+ group: "{{ nomad_group }}"
+ state: "present"
+ system: true
+ tags:
+ - nomad-conf-user
+
+- name: Download Nomad
+ ansible.builtin.get_url:
+ url: "{{ nomad_zip_url }}"
+ dest: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
+ mode: 0644
+ tags:
+ - nomad-inst-package
+
+- name: Clean Nomad
+ ansible.builtin.file:
+ path: "{{ nomad_inst_dir }}/nomad"
+ state: "absent"
+ when:
+ - nomad_force_update | bool
+ tags:
+ - nomad-inst-package
+
+- name: Unarchive Nomad
+ ansible.builtin.unarchive:
+ src: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
+ dest: "{{ nomad_inst_dir }}/"
+ remote_src: true
+ tags:
+ - nomad-inst-package
+
+- name: Nomad
+ ansible.builtin.copy:
+ src: "{{ nomad_inst_dir }}/nomad"
+ dest: "{{ nomad_bin_dir }}"
+ owner: "{{ nomad_user }}"
+ group: "{{ nomad_group }}"
+ force: true
+ mode: 0755
+ remote_src: true
+ tags:
+ - nomad-inst-package
+
+- name: Create Directories
+ ansible.builtin.file:
+ dest: "{{ item }}"
+ state: "directory"
+ owner: "{{ nomad_user }}"
+ group: "{{ nomad_group }}"
+ mode: 0755
+ with_items:
+ - "{{ nomad_data_dir }}"
+ - "{{ nomad_config_dir }}"
+ - "{{ nomad_ssl_dir }}"
+ tags:
+ - nomad-conf
+
+- name: Base Configuration
+ ansible.builtin.template:
+ src: "{{ item }}.hcl.j2"
+ dest: "{{ nomad_config_dir }}/{{ item }}.hcl"
+ owner: "{{ nomad_user }}"
+ group: "{{ nomad_group }}"
+ mode: 0644
+ with_items:
+ - "base"
+ - "consul"
+ - "client"
+ - "server"
+ - "telemetry"
+ - "tls"
+ - "vault"
+ tags:
+ - nomad-conf
+
+- name: Conf - Copy Certificates And Keys
+ ansible.builtin.copy:
+ content: "{{ item.src }}"
+ dest: "{{ item.dest }}"
+ owner: "{{ nomad_user }}"
+ group: "{{ nomad_group }}"
+ mode: 0600
+ no_log: true
+ loop: "{{ nomad_certificates | flatten(levels=1) }}"
+ when:
+ - nomad_certificates is defined
+ tags:
+ - nomad-conf
+
+- name: Nomad CLI Environment Variables
+ ansible.builtin.lineinfile:
+ path: "/etc/profile.d/nomad.sh"
+ line: "{{ item }}"
+ mode: 0644
+ create: true
+ loop:
+ - "export NOMAD_ADDR=https://nomad-server.service.consul:4646"
+ - "export NOMAD_CACERT={{ nomad_tls_ca_file }}"
+ - "export NOMAD_CLIENT_CERT={{ nomad_tls_cli_cert_file }}"
+ - "export NOMAD_CLIENT_KEY={{ nomad_tls_cli_key_file }}"
+ tags:
+ - nomad-conf
+
+- name: System.d Script
+ ansible.builtin.template:
+ src: "nomad_systemd.service.j2"
+ dest: "/lib/systemd/system/nomad.service"
+ owner: "root"
+ group: "root"
+ mode: 0644
+ notify:
+ - "Restart Nomad"
+ when:
+ - nomad_service_mgr == "systemd"
+ tags:
+ - nomad-conf
+
+- name: Meta - Flush handlers
+ ansible.builtin.meta: flush_handlers
diff --git a/fdio.infra.ansible/roles/nomad/templates/base.hcl.j2 b/fdio.infra.ansible/roles/nomad/templates/base.hcl.j2
new file mode 100644
index 0000000000..cd7fb54f9c
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/templates/base.hcl.j2
@@ -0,0 +1,26 @@
+name = "{{ nomad_node_name }}"
+region = "{{ nomad_region }}"
+datacenter = "{{ nomad_datacenter }}"
+
+enable_debug = {{ nomad_enable_debug | bool | lower }}
+disable_update_check = {{ nomad_disable_update_check | bool | lower }}
+
+bind_addr = "{{ nomad_bind_address }}"
+advertise {
+ http = "{{ nomad_advertise_address }}:{{ nomad_ports.http }}"
+ rpc = "{{ nomad_advertise_address }}:{{ nomad_ports.rpc }}"
+ serf = "{{ nomad_advertise_address }}:{{ nomad_ports.serf }}"
+}
+ports {
+ http = {{ nomad_ports['http'] }}
+ rpc = {{ nomad_ports['rpc'] }}
+ serf = {{ nomad_ports['serf'] }}
+}
+
+data_dir = "{{ nomad_data_dir }}"
+
+log_level = "{{ nomad_log_level }}"
+enable_syslog = {{ nomad_syslog_enable | bool | lower }}
+
+leave_on_terminate = {{ nomad_leave_on_terminate | bool | lower }}
+leave_on_interrupt = {{ nomad_leave_on_interrupt | bool | lower }}
diff --git a/fdio.infra.ansible/roles/nomad/templates/cfssl.json b/fdio.infra.ansible/roles/nomad/templates/cfssl.json
new file mode 100644
index 0000000000..2b603e9b84
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/templates/cfssl.json
@@ -0,0 +1,8 @@
+{
+ "signing": {
+ "default": {
+ "expiry": "87600h",
+ "usages": ["signing", "key encipherment", "server auth", "client auth"]
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/nomad/templates/client.hcl.j2 b/fdio.infra.ansible/roles/nomad/templates/client.hcl.j2
new file mode 100644
index 0000000000..f82f38a4e4
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/templates/client.hcl.j2
@@ -0,0 +1,60 @@
+client {
+ enabled = {{ nomad_node_client | bool | lower }}
+
+ node_class = "{{ nomad_node_class }}"
+ no_host_uuid = {{ nomad_no_host_uuid | bool | lower }}
+
+{% if nomad_use_consul == False %}
+ {% if nomad_servers -%}
+ servers = [ {% for ip_port in nomad_servers -%} "{{ ip_port }}" {% if not loop.last %},{% endif %}{%- endfor -%} ]
+ {% endif -%}
+{% endif %}
+
+ {% if nomad_network_interface is defined -%}
+ network_interface = "{{ nomad_network_interface }}"
+ {% endif -%}
+ {% if nomad_network_speed is defined -%}
+ network_speed = "{{ nomad_network_speed }}"
+ {% endif -%}
+ {% if nomad_cpu_total_compute is defined -%}
+ cpu_total_compute = {{ nomad_cpu_total_compute }}
+ {% endif -%}
+
+ reserved {
+ cpu = {{ nomad_reserved['cpu'] }}
+ memory = {{ nomad_reserved['memory'] }}
+ disk = {{ nomad_reserved['disk'] }}
+ }
+
+ {% for nomad_host_volume in nomad_volumes -%}
+ host_volume "{{ nomad_host_volume.name }}" {
+ path = "{{ nomad_host_volume.path }}"
+ read_only = {{ nomad_host_volume.read_only | bool | lower }}
+ }
+ {% endfor %}
+
+ {% if nomad_chroot_env != False -%}
+ chroot_env = {
+ {% for key, value in nomad_chroot_env.items() %}
+ "{{ key }}" = "{{ value }}"
+ {% endfor -%}
+ }
+ {% endif %}
+
+ {% if nomad_options -%}
+ options = {
+ {% for key, value in nomad_options.items() %}
+ "{{ key }}" = "{{ value }}"
+ {% endfor -%}
+ }
+ {% endif %}
+
+ {% if nomad_meta -%}
+ meta = {
+ {% for key, value in nomad_meta.items() %}
+ "{{ key }}" = "{{ value }}"
+ {% endfor -%}
+ }
+ {% endif %}
+
+}
diff --git a/fdio.infra.ansible/roles/nomad/templates/consul.hcl.j2 b/fdio.infra.ansible/roles/nomad/templates/consul.hcl.j2
new file mode 100644
index 0000000000..a9c1aff7b2
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/templates/consul.hcl.j2
@@ -0,0 +1,63 @@
+{% if nomad_use_consul | bool == True %}
+consul {
+ # Specifies the address to the local Consul agent, given in the format
+ # host:port.
+ address = "{{ nomad_consul_address }}"
+
+ # Specifies if Nomad should advertise its services in Consul. The services
+ # are named according to server_service_name and client_service_name. Nomad
+ # servers and clients advertise their respective services, each tagged
+ # appropriately with either http or rpc tag. Nomad servers also advertise a
+ # serf tagged service.
+ auto_advertise = true
+
+ # Specifies if the Nomad clients should automatically discover servers in
+ # the same region by searching for the Consul service name defined in the
+ # server_service_name option. The search occurs if the client is not
+ # registered with any servers or it is unable to heartbeat to the leader of
+ # the region, in which case it may be partitioned and searches for other
+ # servers.
+ client_auto_join = true
+
+ # Specifies the name of the service in Consul for the Nomad clients.
+ client_service_name = "{{ nomad_consul_clients_service_name }}"
+
+ # Specifies the name of the service in Consul for the Nomad servers.
+ server_service_name = "{{ nomad_consul_servers_service_name }}"
+
+ # Specifies if the Nomad servers should automatically discover and join
+ # other Nomad servers by searching for the Consul service name defined in
+ # the server_service_name option. This search only happens if the server
+ # does not have a leader.
+ server_auto_join = true
+
+ # Specifies optional Consul tags to be registered with the Nomad server and
+ # agent services.
+ tags = {{ nomad_consul_tags | to_json }}
+
+ # Specifies the token used to provide a per-request ACL token. This option
+ # overrides the Consul Agent's default token. If the token is not set here
+ # or on the Consul agent, it will default to Consul's anonymous policy,
+ # which may or may not allow writes.
+ token = "{{ nomad_consul_token }}"
+
+ {% if nomad_consul_use_ssl | bool == True -%}
+ # Specifies if the transport scheme should use HTTPS to communicate with the
+ # Consul agent.
+ ssl = true
+
+ # Specifies an optional path to the CA certificate used for Consul
+ # communication. This defaults to the system bundle if unspecified.
+ ca_file = "{{ nomad_ca_file }}"
+
+ # Specifies the path to the certificate used for Consul communication. If
+ # this is set then you need to also set key_file.
+ cert_file = "{{ nomad_cert_file }}"
+
+ # Specifies the path to the private key used for Consul communication. If
+ # this is set then you need to also set cert_file.
+ key_file = "{{ nomad_key_file }}"
+ {% endif %}
+
+}
+{% endif %} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/nomad/templates/nomad_systemd.service.j2 b/fdio.infra.ansible/roles/nomad/templates/nomad_systemd.service.j2
new file mode 100644
index 0000000000..564505781b
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/templates/nomad_systemd.service.j2
@@ -0,0 +1,33 @@
+[Unit]
+Description=Nomad
+Documentation=https://nomadproject.io/docs/
+Wants=network-online.target
+After=network-online.target
+
+# When using Nomad with Consul it is not necessary to start Consul first. These
+# lines start Consul before Nomad as an optimization to avoid Nomad logging
+# that Consul is unavailable at startup.
+#Wants=consul.service
+#After=consul.service
+
+[Service]
+# Nomad server should be run as the nomad user. Nomad clients
+# should be run as root
+#User=nomad
+#Group=nomad
+
+ExecReload=/bin/kill -HUP $MAINPID
+ExecStart={{ nomad_bin_dir }}/nomad agent -config {{ nomad_config_dir }}
+KillMode=process
+KillSignal=SIGINT
+LimitNOFILE=infinity
+LimitNPROC=infinity
+Restart=on-failure
+RestartSec=2
+StartLimitBurst=3
+StartLimitInterval=10
+TasksMax=infinity
+OOMScoreAdjust=-1000
+
+[Install]
+WantedBy=multi-user.target \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/nomad/templates/server.hcl.j2 b/fdio.infra.ansible/roles/nomad/templates/server.hcl.j2
new file mode 100644
index 0000000000..e19dea9e6f
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/templates/server.hcl.j2
@@ -0,0 +1,58 @@
+{% if nomad_node_server | bool == True %}
+server {
+ enabled = {{ nomad_node_server | bool | lower }}
+
+ {% if nomad_node_server | bool -%}
+ bootstrap_expect = {{ nomad_bootstrap_expect }}
+ {%- endif %}
+
+ {% if nomad_node_server | bool -%}
+ raft_protocol = 3
+ {%- endif %}
+
+ {% if nomad_authoritative_region is defined %}
+ authoritative_region = "{{ nomad_authoritative_region }}"
+ {% endif %}
+
+{% if nomad_use_consul == False %}
+ {% if nomad_retry_join | bool -%}
+ retry_join = [
+ {%- set comma = joiner(",") -%}
+ {% for server in nomad_servers -%}
+ {{ comma() }}"{{ hostvars[server]['nomad_advertise_address'] | ipwrap }}"
+ {%- endfor -%} ]
+ retry_max = {{ nomad_retry_max }}
+ retry_interval = "{{ nomad_retry_interval }}"
+ {% else -%}
+ start_join = [
+ {%- set comma = joiner(",") -%}
+ {% for server in nomad_servers -%}
+ {{ comma() }}"{{ hostvars[server]['nomad_advertise_address'] | ipwrap }}"
+ {%- endfor -%} ]
+ {%- endif %}
+{% endif %}
+
+ encrypt = "{{ nomad_encrypt | default('') }}"
+
+ {% if nomad_node_gc_threshold -%}
+ node_gc_threshold = "{{ nomad_node_gc_threshold }}"
+ {%- endif %}
+
+ {% if nomad_job_gc_interval -%}
+ job_gc_interval = "{{ nomad_job_gc_interval }}"
+ {%- endif %}
+
+ {% if nomad_job_gc_threshold -%}
+ job_gc_threshold = "{{ nomad_job_gc_threshold }}"
+ {%- endif %}
+
+ {% if nomad_eval_gc_threshold -%}
+ eval_gc_threshold = "{{ nomad_eval_gc_threshold }}"
+ {%- endif %}
+
+ {% if nomad_deployment_gc_threshold -%}
+ deployment_gc_threshold = "{{ nomad_deployment_gc_threshold }}"
+ {%- endif %}
+
+}
+{% endif %} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/nomad/templates/telemetry.hcl.j2 b/fdio.infra.ansible/roles/nomad/templates/telemetry.hcl.j2
new file mode 100644
index 0000000000..14be0d9548
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/templates/telemetry.hcl.j2
@@ -0,0 +1,26 @@
+{% if nomad_use_telemetry | bool == True %}
+telemetry {
+ # Specifies if gauge values should be prefixed with the local hostname.
+ disable_hostname = {{ nomad_telemetry_disable_hostname | bool | lower }}
+
+ # Specifies the time interval at which the Nomad agent collects telemetry
+ # data.
+ collection_interval = "{{ nomad_telemetry_collection_interval }}"
+
+ # Specifies if gauge values should be prefixed with the name of the node,
+ # instead of the hostname. If set it will override disable_hostname value.
+ use_node_name = {{ nomad_telemetry_use_node_name | bool | lower }}
+
+ # Specifies if Nomad should publish runtime metrics of allocations.
+ publish_allocation_metrics = {{ nomad_telemetry_publish_allocation_metrics | bool | lower }}
+
+ # Specifies if Nomad should publish runtime metrics of nodes.
+ publish_node_metrics = {{ nomad_telemetry_publish_node_metrics | bool | lower }}
+
+ # Specifies whether the agent should make Prometheus formatted metrics
+ # available at /v1/metrics?format=prometheus.Specifies whether the agent
+ # should make Prometheus formatted metrics available at
+ # /v1/metrics?format=prometheus.
+ prometheus_metrics = {{ nomad_telemetry_prometheus_metrics | bool | lower }}
+}
+{% endif %}
diff --git a/fdio.infra.ansible/roles/nomad/templates/tls.hcl.j2 b/fdio.infra.ansible/roles/nomad/templates/tls.hcl.j2
new file mode 100644
index 0000000000..0a1a5b20a4
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/templates/tls.hcl.j2
@@ -0,0 +1,36 @@
+{% if nomad_use_tls | bool %}
+tls {
+ # Specifies the path to the CA certificate to use for Nomad's TLS
+ # communication.
+ ca_file = "{{ nomad_tls_ca_file }}"
+
+ # Specifies the path to the certificate file used for Nomad's TLS
+ # communication.
+ cert_file = "{{ nomad_tls_cert_file }}"
+
+ # Specifies the path to the key file to use for Nomad's TLS communication.
+ key_file = "{{ nomad_tls_key_file }}"
+
+ # Specifies if TLS should be enabled on the HTTP endpoints on the Nomad
+ # agent, including the API.
+ http = {{ nomad_tls_http | bool | lower }}
+
+ # Specifies if TLS should be enabled on the RPC endpoints and Raft traffic
+ # between the Nomad servers. Enabling this on a Nomad client makes the
+ # client use TLS for making RPC requests to the Nomad servers.
+ rpc = {{ nomad_tls_rpc | bool | lower }}
+
+ # This option should be used only when the cluster is being upgraded to
+ # TLS, and removed after the migration is complete. This allows the agent
+ # to accept both TLS and plaintext traffic.
+ rpc_upgrade_mode = {{ nomad_tls_rpc_upgrade_mode | bool | lower }}
+
+ # Specifies agents should require client certificates for all incoming
+ # HTTPS requests. The client certificates must be signed by the same CA
+ # as Nomad.
+ verify_https_client = {{ nomad_tls_verify_https_client | bool | lower }}
+
+ # Specifies if outgoing TLS connections should verify the server's hostname.
+ verify_server_hostname = {{ nomad_tls_verify_server_hostname | bool | lower }}
+}
+{% endif %}
diff --git a/fdio.infra.ansible/roles/nomad/templates/vault.hcl.j2 b/fdio.infra.ansible/roles/nomad/templates/vault.hcl.j2
new file mode 100644
index 0000000000..7911cbc5c4
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/templates/vault.hcl.j2
@@ -0,0 +1,69 @@
+{% if nomad_use_tls | bool == True %}
+vault {
+ # Specifies the address to the Vault server. This must include the protocol,
+ # host/ip, and port given in the format protocol://host:port. If your Vault
+ # installation is behind a load balancer, this should be the address of the
+ # load balancer.
+ address = "{{ nomad_vault_address }}"
+
+ # Specifies if users submitting jobs to the Nomad server should be required
+ # to provide their own Vault token, proving they have access to the policies
+ # listed in the job. This option should be disabled in an untrusted
+ # environment.
+ allow_unauthenticated = {{ nomad_vault_allow_unauthenticated | bool | lower }}
+
+ # Specifies if the Vault integration should be activated.
+ enabled = {{ nomad_vault_enabled | bool | lower }}
+
+ # Specifies the role to create tokens from. The token given to Nomad does
+ # not have to be created from this role but must have "update" capability
+ # on "auth/token/create/<create_from_role>" path in Vault. If this value is
+ # unset and the token is created from a role, the value is defaulted to the
+ # role the token is from. This is largely for backwards compatibility. It
+ # is recommended to set the create_from_role field if Nomad is deriving
+ # child tokens from a role.
+ create_from_role = "{{ nomad_vault_create_from_role }}"
+
+ # Specifies the TTL of created tokens when using a root token. This is
+ # specified using a label suffix like "30s" or "1h".
+ task_token_ttl = "{{ nomad_vault_task_token_ttl }}"
+
+ {% if nomad_vault_use_ssl | bool == True -%}
+ # Specifies an optional path to the CA certificate used for Vault
+ # communication. If unspecified, this will fallback to the default system
+ # CA bundle, which varies by OS and version.
+ ca_file = "{{ nomad_vault_ca_file }}"
+
+ # Specifies an optional path to a folder containing CA certificates to be
+ # used for Vault communication. If unspecified, this will fallback to the
+ # default system CA bundle, which varies by OS and version.
+ ca_path = "{{ nomad_vault_ca_path }}"
+
+ # Specifies the path to the certificate used for Vault communication. This
+ # must be set if tls_require_and_verify_client_cert is enabled in Vault.
+ cert_file = "{{ nomad_vault_cert_file }}"
+
+ # Specifies the path to the private key used for Vault communication. If
+ # this is set then you need to also set cert_file. This must be set if
+ # tls_require_and_verify_client_cert is enabled in Vault.
+ key_file = "{{ nomad_vault_key_file }}"
+
+ # Specifies the Vault namespace used by the Vault integration. If non-empty,
+ # this namespace will be used on all Vault API calls.
+ namespace = "{{ nomad_vault_namespace }}"
+
+ # Specifies an optional string used to set the SNI host when connecting to
+ # Vault via TLS.
+ tls_server_name = "{{ nomad_vault_tls_server_name }}"
+
+ # Specifies if SSL peer validation should be enforced.
+ tls_skip_verify = {{ nomad_vault_tls_skip_verify | bool | lower }}
+ {% endif %}
+
+ # Specifies the parent Vault token to use to derive child tokens for jobs
+ # requesting tokens. Only required on Nomad servers. Nomad client agents
+ # use the allocation's token when contacting Vault. Visit the Vault
+ # Integration Guide to see how to generate an appropriate token in Vault.
+ token = "{{ nomad_vault_token }}"
+}
+{% endif %} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/nomad/vars/main.yaml b/fdio.infra.ansible/roles/nomad/vars/main.yaml
new file mode 100644
index 0000000000..791eeadb06
--- /dev/null
+++ b/fdio.infra.ansible/roles/nomad/vars/main.yaml
@@ -0,0 +1,5 @@
+---
+# file: vars/main.yaml
+
+nomad_node_client: "{{ (nomad_node_role == 'client') or (nomad_node_role == 'both') }}"
+nomad_node_server: "{{ (nomad_node_role == 'server') or (nomad_node_role == 'both') }}"
diff --git a/fdio.infra.ansible/roles/performance_tuning/defaults/main.yaml b/fdio.infra.ansible/roles/performance_tuning/defaults/main.yaml
new file mode 100644
index 0000000000..5a732e5539
--- /dev/null
+++ b/fdio.infra.ansible/roles/performance_tuning/defaults/main.yaml
@@ -0,0 +1,18 @@
+---
+# file: roles/performance_tuning/defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - "cpufrequtils"
+
+packages_by_distro:
+ ubuntu:
+ jammy:
+ - []
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/files/cpufrequtils b/fdio.infra.ansible/roles/performance_tuning/files/cpufrequtils
index 03070fefe1..03070fefe1 100644
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/files/cpufrequtils
+++ b/fdio.infra.ansible/roles/performance_tuning/files/cpufrequtils
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/files/disable-turbo-boost.service b/fdio.infra.ansible/roles/performance_tuning/files/disable-turbo-boost.service
index e04729de50..e04729de50 100644
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/files/disable-turbo-boost.service
+++ b/fdio.infra.ansible/roles/performance_tuning/files/disable-turbo-boost.service
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/files/irqbalance b/fdio.infra.ansible/roles/performance_tuning/files/irqbalance
index 861be02fb3..861be02fb3 100644
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/files/irqbalance
+++ b/fdio.infra.ansible/roles/performance_tuning/files/irqbalance
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/filter_plugins/main.py b/fdio.infra.ansible/roles/performance_tuning/filter_plugins/main.py
index d76f6fe166..d76f6fe166 100644
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/filter_plugins/main.py
+++ b/fdio.infra.ansible/roles/performance_tuning/filter_plugins/main.py
diff --git a/fdio.infra.ansible/roles/performance_tuning/handlers/main.yaml b/fdio.infra.ansible/roles/performance_tuning/handlers/main.yaml
new file mode 100644
index 0000000000..5a48fc37b4
--- /dev/null
+++ b/fdio.infra.ansible/roles/performance_tuning/handlers/main.yaml
@@ -0,0 +1,13 @@
+---
+# file handlers/main.yaml
+
+- name: Update GRUB
+ ansible.builtin.command: update-grub
+ tags:
+ - update-grub
+
+- name: Reboot Server
+ ansible.builtin.reboot:
+ reboot_timeout: 3600
+ tags:
+ - reboot-server
diff --git a/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml b/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml
new file mode 100644
index 0000000000..cc904e23e9
--- /dev/null
+++ b/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml
@@ -0,0 +1,210 @@
+---
+# file: roles/performance_tuning/tasks/main.yaml
+
+- name: Inst - Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - perf-inst-prerequisites
+
+- name: Inst - Machine Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - perf-inst-prerequisites
+
+- name: Conf - Turbo Boost
+ import_tasks: turbo_boost.yaml
+ when: >
+ cpu_microarchitecture == "skylake" or
+ cpu_microarchitecture == "cascadelake" or
+ cpu_microarchitecture == "icelake" or
+ cpu_microarchitecture == "sapphirerapids"
+ tags:
+ - perf-conf-turbo-boost
+
+- name: Conf - Adjust max_map_count
+ # this file contains the maximum number of memory map areas a process
+ # may have. memory map areas are used as a side-effect of calling
+ # malloc, directly by mmap and mprotect, and also when loading shared
+ # libraries.
+ #
+ # while most applications need less than a thousand maps, certain
+ # programs, particularly malloc debuggers, may consume lots of them,
+ # e.g., up to one or two maps per allocation.
+ # must be greater than or equal to (2 * vm.nr_hugepages).
+ ansible.builtin.sysctl:
+ name: "vm.max_map_count"
+ value: "{{ sysctl.vm.nr_hugepages * 4 }}"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - perf-conf-sysctl
+
+- name: Conf - Adjust hugetlb_shm_group
+ # hugetlb_shm_group contains group id that is allowed to create sysv
+ # shared memory segment using hugetlb page.
+ ansible.builtin.sysctl:
+ name: "vm.hugetlb_shm_group"
+ value: "1000"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - perf-conf-sysctl
+
+- name: Conf - Adjust swappiness
+ # this control is used to define how aggressive the kernel will swap
+ # memory pages. higher values will increase agressiveness, lower values
+ # decrease the amount of swap. a value of 0 instructs the kernel not to
+ # initiate swap until the amount of free and file-backed pages is less
+ # than the high water mark in a zone.
+ ansible.builtin.sysctl:
+ name: "vm.swappiness"
+ value: "0"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - perf-conf-sysctl
+
+- name: Conf - Adjust shmmax
+ # shared memory max must be greator or equal to the total size of hugepages.
+ # for 2mb pages, totalhugepagesize = vm.nr_hugepages * 2 * 1024 * 1024
+ # if the existing kernel.shmmax setting (cat /sys/proc/kernel/shmmax)
+ # is greater than the calculated totalhugepagesize then set this parameter
+ # to current shmmax value.
+ ansible.builtin.sysctl:
+ name: "kernel.shmmax"
+ value: "{{ sysctl.vm.nr_hugepages * 2 * 1024 * 1024 }}"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - perf-conf-sysctl
+
+- name: Conf - Adjust watchdog_cpumask
+ # this value can be used to control on which cpus the watchdog may run.
+ # the default cpumask is all possible cores, but if no_hz_full is
+ # enabled in the kernel config, and cores are specified with the
+ # nohz_full= boot argument, those cores are excluded by default.
+ # offline cores can be included in this mask, and if the core is later
+ # brought online, the watchdog will be started based on the mask value.
+ #
+ # typically this value would only be touched in the nohz_full case
+ # to re-enable cores that by default were not running the watchdog,
+ # if a kernel lockup was suspected on those cores.
+ ansible.builtin.sysctl:
+ name: "kernel.watchdog_cpumask"
+ value: "{{ sysctl.kernel.watchdog_cpumask }}"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - perf-conf-sysctl
+
+- name: Conf - Adjust randomize_va_space
+ # this option can be used to select the type of process address
+ # space randomization that is used in the system, for architectures
+ # that support this feature.
+ # 0 - turn the process address space randomization off. this is the
+ # default for architectures that do not support this feature anyways,
+ # and kernels that are booted with the "norandmaps" parameter.
+ ansible.builtin.sysctl:
+ name: "kernel.randomize_va_space"
+ value: "0"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - perf-conf-sysctl
+
+- name: Conf - Cpufrequtils
+ ansible.builtin.copy:
+ src: "files/cpufrequtils"
+ dest: "/etc/default/cpufrequtils"
+ owner: "root"
+ group: "root"
+ mode: 0644
+ tags:
+ - perf-conf-cpufrequtils
+
+- name: Conf - Irqbalance
+ ansible.builtin.template:
+ src: "files/irqbalance"
+ dest: "/etc/default/irqbalance"
+ owner: "root"
+ group: "root"
+ mode: 0644
+ tags:
+ - perf-conf-irqbalance
+
+- name: Conf - Kernel Parameters
+ ansible.builtin.lineinfile:
+ path: "/etc/default/grub"
+ state: "present"
+ regexp: "^GRUB_CMDLINE_LINUX="
+ line: "GRUB_CMDLINE_LINUX=\"{% for key, value in grub.items() %}{% if value is sameas true %}{{key}} {% else %}{{key}}={{value}} {% endif %}{% endfor %}\""
+ notify:
+ - "Update GRUB"
+ tags:
+ - perf-conf-grub
+
+- meta: flush_handlers
+
+- name: Conf - Load Kernel Modules By Default
+ ansible.builtin.lineinfile:
+ path: "/etc/modules"
+ state: "present"
+ line: "{{ item }}"
+ with_items:
+ - "vfio-pci"
+ notify:
+ - "Reboot Server"
+ tags:
+ - perf-conf-load-kernel-modules
+
+- name: Conf - Create a directory for 1G HugeTLBs hugepages
+ ansible.builtin.file:
+ path: "/dev/hugepages1G"
+ state: "directory"
+ mode: 0755
+ tags:
+ - perf-conf-hugepages-1g
+
+- name: Conf - Mount 1G HugeTLBs hugepages
+ ansible.builtin.mount:
+ path: "/dev/hugepages1G"
+ src: "hugetlbfs"
+ opts: "pagesize=1G"
+ boot: false
+ state: "mounted"
+ fstype: "hugetlbfs"
+ tags:
+ - perf-conf-hugepages-1g
+
+- name: Create a directory if it does not exist
+ ansible.builtin.file:
+ path: "/dev/hugepages2M"
+ state: "directory"
+ mode: 0755
+ tags:
+ - perf-conf-hugepages-2m
+
+- name: Conf - Create a directory for 2M HugeTLBs hugepages
+ ansible.builtin.mount:
+ path: "/dev/hugepages2M"
+ src: "hugetlbfs"
+ opts: "pagesize=2M"
+ boot: false
+ state: "mounted"
+ fstype: "hugetlbfs"
+ tags:
+ - perf-conf-hugepages-2m
+
+- meta: flush_handlers
diff --git a/fdio.infra.ansible/roles/performance_tuning/tasks/turbo_boost.yaml b/fdio.infra.ansible/roles/performance_tuning/tasks/turbo_boost.yaml
new file mode 100644
index 0000000000..cff71e9ce3
--- /dev/null
+++ b/fdio.infra.ansible/roles/performance_tuning/tasks/turbo_boost.yaml
@@ -0,0 +1,44 @@
+---
+# file: roles/performance_tuning/tasks/turbo_boost.yaml
+
+- name: Inst - Update Package Cache (APT)
+ apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - turbo-inst-prerequisites
+
+- name: Inst - msr-tools
+ package:
+ name:
+ - "msr-tools"
+ state: latest
+ tags:
+ - turbo-inst-prerequisites
+
+- name: Conf - Load msr By Default
+ lineinfile:
+ path: "/etc/modules"
+ state: "present"
+ line: "msr"
+ tags:
+ - turbo-conf-msr
+
+- name: Conf - Custom Startup Service Hook
+ copy:
+ src: "files/disable-turbo-boost.service"
+ dest: "/etc/systemd/system/disable-turbo-boost.service"
+ owner: "root"
+ group: "root"
+ mode: 0644
+ tags:
+ - turbo-conf-msr
+
+- name: Conf - Custom Startup Service Hook Enable
+ service:
+ name: "disable-turbo-boost"
+ enabled: true
+ tags:
+ - turbo-conf-msr
diff --git a/fdio.infra.ansible/roles/prometheus_exporter/defaults/main.yaml b/fdio.infra.ansible/roles/prometheus_exporter/defaults/main.yaml
new file mode 100644
index 0000000000..7291ce0276
--- /dev/null
+++ b/fdio.infra.ansible/roles/prometheus_exporter/defaults/main.yaml
@@ -0,0 +1,31 @@
+---
+# file: roles/prometheus_exporter/defaults/main.yaml
+
+# Inst - Exporters.
+packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - []
+
+packages_by_distro:
+ ubuntu:
+ - "python3-docker"
+ - "python3-dockerpty"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+ne_image: "{{ ne_image_by_arch[ansible_machine] }}"
+
+ne_image_by_arch:
+ aarch64: "prom/node-exporter:v1.3.1"
+ x86_64: "prom/node-exporter:v1.3.1"
+
+be_image: "{{ be_image_by_arch[ansible_machine] }}"
+
+be_image_by_arch:
+ aarch64: "prom/blackbox-exporter:v0.21.1"
+ x86_64: "prom/blackbox-exporter:v0.21.1"
diff --git a/fdio.infra.ansible/roles/prometheus_exporter/files/blackbox.yml b/fdio.infra.ansible/roles/prometheus_exporter/files/blackbox.yml
new file mode 100644
index 0000000000..526dcf5dce
--- /dev/null
+++ b/fdio.infra.ansible/roles/prometheus_exporter/files/blackbox.yml
@@ -0,0 +1,25 @@
+modules:
+ http_2xx:
+ prober: http
+ timeout: 5s
+ http:
+ valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]
+ no_follow_redirects: false
+ fail_if_ssl: false
+ fail_if_not_ssl: true
+ tls_config:
+ insecure_skip_verify: false
+ preferred_ip_protocol: "ip4"
+ icmp_v4:
+ prober: icmp
+ timeout: 5s
+ icmp:
+ preferred_ip_protocol: "ip4"
+ dns_udp:
+ prober: dns
+ timeout: 5s
+ dns:
+ query_name: "jenkins.fd.io"
+ query_type: "A"
+ valid_rcodes:
+ - NOERROR
diff --git a/fdio.infra.ansible/roles/prometheus_exporter/meta/main.yaml b/fdio.infra.ansible/roles/prometheus_exporter/meta/main.yaml
new file mode 100644
index 0000000000..7d8b861882
--- /dev/null
+++ b/fdio.infra.ansible/roles/prometheus_exporter/meta/main.yaml
@@ -0,0 +1,18 @@
+---
+# file: roles/prometheus_exporter/meta/main.yaml
+
+dependencies: [docker]
+
+galaxy_info:
+ role_name: prometheus_exporter
+ author: fd.io
+ description: Prometheus Exporters.
+ company: none
+ license: "license (Apache)"
+ min_ansible_version: 2.9
+ platforms:
+ - name: Ubuntu
+ versions:
+ - jammy
+ galaxy_tags:
+ - prometheus
diff --git a/fdio.infra.ansible/roles/prometheus_exporter/tasks/main.yaml b/fdio.infra.ansible/roles/prometheus_exporter/tasks/main.yaml
new file mode 100644
index 0000000000..ef9da40175
--- /dev/null
+++ b/fdio.infra.ansible/roles/prometheus_exporter/tasks/main.yaml
@@ -0,0 +1,72 @@
+---
+# file: roles/prometheus_exporter/tasks/main.yaml
+
+- name: Inst - Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - prometheus-inst
+
+- name: Inst - Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - prometheus-inst
+
+- name: Inst - Start a NodeExporter container
+ docker_container:
+ name: "NodeExporter"
+ image: "{{ ne_image }}"
+ state: "started"
+ restart_policy: "unless-stopped"
+ detach: true
+ ports:
+ - "9100:9100"
+ privileged: true
+ command:
+ - "--path.procfs=/host/proc"
+ - "--path.rootfs=/rootfs"
+ - "--path.sysfs=/host/sys"
+ - "--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)"
+ volumes:
+ - "/:/rootfs:ro"
+ - "/proc:/host/proc:ro"
+ - "/sys:/host/sys:ro"
+ tags:
+ - prometheus-inst
+
+- name: Inst - Create a Config Directory
+ ansible.builtin.file:
+ path: "/etc/prometheus/"
+ state: "directory"
+ mode: "0755"
+ tags:
+ - prometheus-conf-blackbox-exporter
+
+- name: Conf - Prometheus Blackbox Exporter
+ ansible.builtin.copy:
+ src: "files/blackbox.yml"
+ dest: "/etc/prometheus/blackbox.yml"
+ tags:
+ - prometheus-conf-blackbox-exporter
+
+- name: Inst - Start a BlackBoxExporter container
+ docker_container:
+ name: "BlackBoxExporter"
+ image: "{{ be_image }}"
+ state: "started"
+ restart_policy: "unless-stopped"
+ detach: true
+ ports:
+ - "9115:9115"
+ privileged: true
+ command:
+ - "--config.file=/config/blackbox.yml"
+ volumes:
+ - "/etc/prometheus/blackbox.yml:/config/blackbox.yml:ro"
+ tags:
+ - prometheus-inst
diff --git a/fdio.infra.ansible/roles/python_env/defaults/main.yaml b/fdio.infra.ansible/roles/python_env/defaults/main.yaml
new file mode 100644
index 0000000000..4b572c0dd0
--- /dev/null
+++ b/fdio.infra.ansible/roles/python_env/defaults/main.yaml
@@ -0,0 +1,25 @@
+---
+# file: defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - "virtualenv"
+
+packages_by_distro:
+ ubuntu:
+ jammy:
+ - "python3-all"
+ - "python3-apt"
+ - "python3-cffi"
+ - "python3-cffi-backend"
+ - "python3-dev"
+ - "python3-pip"
+ - "python3-pyelftools"
+ - "python3-setuptools"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
diff --git a/fdio.infra.ansible/roles/python_env/tasks/main.yaml b/fdio.infra.ansible/roles/python_env/tasks/main.yaml
new file mode 100644
index 0000000000..02850110a9
--- /dev/null
+++ b/fdio.infra.ansible/roles/python_env/tasks/main.yaml
@@ -0,0 +1,62 @@
+---
+# file: tasks/main.yaml
+
+- name: Inst - Update package cache (apt)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - common-inst-prerequisites
+
+- name: Inst - Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - common-inst-prerequisites
+
+- name: Inst - CSIT PIP requirements
+ ansible.builtin.pip:
+ name:
+ - "ecdsa==0.18.0"
+ - "paramiko==3.3.1"
+ - "pycrypto==2.6.1"
+ - "python-dateutil==2.8.2"
+ - "PyYAML==6.0.1"
+ - "requests==2.31.0"
+ - "robotframework==6.1.1"
+ - "scapy==2.4.5"
+ - "scp==0.14.5"
+ - "ansible==8.2.0"
+ - "ansible-core==2.15.2"
+ - "dill==0.3.7"
+ - "numpy==1.25.2"
+ - "scipy==1.11.1"
+ - "ply==3.11"
+ - "jsonschema==4.18.4"
+ - "rfc3339-validator==0.1.4"
+ - "rfc3987==1.3.8"
+ - "attrs==23.1.0"
+ - "bcrypt==4.0.1"
+ - "certifi==2023.7.22"
+ - "cffi==1.15.1"
+ - "charset-normalizer==3.2.0"
+ - "cryptography==41.0.3"
+ - "idna==3.4"
+ - "Jinja2==3.1.2"
+ - "jsonschema-specifications==2023.7.1"
+ - "MarkupSafe==2.1.3"
+ - "packaging==23.1"
+ - "pycparser==2.21"
+ - "PyNaCl==1.5.0"
+ - "referencing==0.30.0"
+ - "resolvelib==1.0.1"
+ - "rpds-py==0.9.2"
+ - "six==1.16.0"
+ - "urllib3==2.0.4"
+ environment:
+ ANSIBLE_SKIP_CONFLICT_CHECK: 1
+ tags:
+ - common-inst-pip
diff --git a/fdio.infra.ansible/roles/topology/tasks/main.yaml b/fdio.infra.ansible/roles/topology/tasks/main.yaml
new file mode 100644
index 0000000000..1dc704331d
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/tasks/main.yaml
@@ -0,0 +1,23 @@
+---
+# file: tasks/main.yaml
+
+- name: Create Topology File
+ ansible.builtin.template:
+ src: "templates/topology-{{ cloud_topology }}.j2"
+ dest: "../topologies/available/{{ cloud_topology }}-{{ testbed_name }}.yaml"
+ tags:
+ - create-topology-file
+
+- name: Create Inventory Folder
+ ansible.builtin.file:
+ path: "./inventories/cloud_inventory/"
+ state: directory
+ tags:
+ - create-inventory-folder-cloud
+
+- name: Create Hosts File
+ ansible.builtin.template:
+ src: "templates/hosts.j2"
+ dest: "./inventories/cloud_inventory/hosts"
+ tags:
+ - create-hosts-file-cloud
diff --git a/fdio.infra.ansible/roles/topology/templates/hosts.j2 b/fdio.infra.ansible/roles/topology/templates/hosts.j2
new file mode 100644
index 0000000000..f02586cc99
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/templates/hosts.j2
@@ -0,0 +1,9 @@
+all:
+ children:
+ tg:
+ hosts:
+ {{ tg_public_ip }}
+ sut:
+ hosts:
+ {{ dut1_public_ip | default() }}
+ {{ dut2_public_ip | default() }}
diff --git a/fdio.infra.ansible/roles/topology/templates/topology-1n-aws-c5n.j2 b/fdio.infra.ansible/roles/topology/templates/topology-1n-aws-c5n.j2
new file mode 100644
index 0000000000..649d7e746c
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/templates/topology-1n-aws-c5n.j2
@@ -0,0 +1,30 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/1_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 1-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # tg_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link1
+ model: Amazon-Nitro-50G
diff --git a/fdio.infra.ansible/roles/topology/templates/topology-1n-c6gn.j2 b/fdio.infra.ansible/roles/topology/templates/topology-1n-c6gn.j2
new file mode 100644
index 0000000000..647a40b1e7
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/templates/topology-1n-c6gn.j2
@@ -0,0 +1,30 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/1_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 1-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # tg_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link1
+ model: Amazon-Nitro-100G
diff --git a/fdio.infra.ansible/roles/topology/templates/topology-1n-c6in.j2 b/fdio.infra.ansible/roles/topology/templates/topology-1n-c6in.j2
new file mode 100644
index 0000000000..7d3f4e5318
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/templates/topology-1n-c6in.j2
@@ -0,0 +1,30 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/1_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 1-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # tg_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link1
+ model: Amazon-Nitro-200G
diff --git a/fdio.infra.ansible/roles/topology/templates/topology-2n-aws-c5n.j2 b/fdio.infra.ansible/roles/topology/templates/topology-2n-aws-c5n.j2
new file mode 100644
index 0000000000..de43291cc6
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/templates/topology-2n-aws-c5n.j2
@@ -0,0 +1,51 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # tg_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-50G
+ DUT1:
+ type: DUT
+ host: "{{ dut1_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: {{ dut1_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # dut1_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: {{ dut1_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-50G
diff --git a/fdio.infra.ansible/roles/topology/templates/topology-2n-c6gn.j2 b/fdio.infra.ansible/roles/topology/templates/topology-2n-c6gn.j2
new file mode 100644
index 0000000000..e693f6c42c
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/templates/topology-2n-c6gn.j2
@@ -0,0 +1,51 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # tg_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
+ DUT1:
+ type: DUT
+ host: "{{ dut1_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: {{ dut1_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # dut1_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: {{ dut1_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
diff --git a/fdio.infra.ansible/roles/topology/templates/topology-2n-c6in.j2 b/fdio.infra.ansible/roles/topology/templates/topology-2n-c6in.j2
new file mode 100644
index 0000000000..ef7b464967
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/templates/topology-2n-c6in.j2
@@ -0,0 +1,51 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # tg_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-200G
+ DUT1:
+ type: DUT
+ host: "{{ dut1_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: {{ dut1_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # dut1_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: {{ dut1_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-200G
diff --git a/fdio.infra.ansible/roles/topology/templates/topology-3n-aws-c5n.j2 b/fdio.infra.ansible/roles/topology/templates/topology-3n-aws-c5n.j2
new file mode 100644
index 0000000000..b353aa5ad1
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/templates/topology-3n-aws-c5n.j2
@@ -0,0 +1,73 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # tg_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-50G
+ DUT1:
+ type: DUT
+ host: "{{ dut1_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: {{ dut1_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # dut1_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: {{ dut1_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link21
+ model: Amazon-Nitro-50G
+ DUT2:
+ type: DUT
+ host: "{{ dut2_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut2_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: {{ dut2_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link21
+ model: Amazon-Nitro-50G
+ port2:
+ # dut2_instance/p2 - 50GE port1 on ENA NIC.
+ mac_address: {{ dut2_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-50G
+
diff --git a/resources/tools/testbed-setup/ansible/templates/topology_3n_azure_Fsv2.j2 b/fdio.infra.ansible/roles/topology/templates/topology-3n-azure-Fsv2.j2
index e4dd6cdbf2..e4dd6cdbf2 100644
--- a/resources/tools/testbed-setup/ansible/templates/topology_3n_azure_Fsv2.j2
+++ b/fdio.infra.ansible/roles/topology/templates/topology-3n-azure-Fsv2.j2
diff --git a/fdio.infra.ansible/roles/topology/templates/topology-3n-c6gn.j2 b/fdio.infra.ansible/roles/topology/templates/topology-3n-c6gn.j2
new file mode 100644
index 0000000000..295d457f49
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/templates/topology-3n-c6gn.j2
@@ -0,0 +1,73 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # tg_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
+ DUT1:
+ type: DUT
+ host: "{{ dut1_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: {{ dut1_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # dut1_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: {{ dut1_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link21
+ model: Amazon-Nitro-100G
+ DUT2:
+ type: DUT
+ host: "{{ dut2_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut2_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: {{ dut2_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link21
+ model: Amazon-Nitro-100G
+ port2:
+ # dut2_instance/p2 - 100GE port1 on ENA NIC.
+ mac_address: {{ dut2_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
+
diff --git a/fdio.infra.ansible/roles/topology/templates/topology-3n-c6in.j2 b/fdio.infra.ansible/roles/topology/templates/topology-3n-c6in.j2
new file mode 100644
index 0000000000..c280f4e7e1
--- /dev/null
+++ b/fdio.infra.ansible/roles/topology/templates/topology-3n-c6in.j2
@@ -0,0 +1,73 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # tg_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-200G
+ DUT1:
+ type: DUT
+ host: "{{ dut1_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: {{ dut1_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # dut1_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: {{ dut1_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link21
+ model: Amazon-Nitro-200G
+ DUT2:
+ type: DUT
+ host: "{{ dut2_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut2_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: {{ dut2_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link21
+ model: Amazon-Nitro-200G
+ port2:
+ # dut2_instance/p2 - 200GE port1 on ENA NIC.
+ mac_address: {{ dut2_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-200G
+
diff --git a/fdio.infra.ansible/roles/trex/defaults/main.yaml b/fdio.infra.ansible/roles/trex/defaults/main.yaml
new file mode 100644
index 0000000000..18a2b56bda
--- /dev/null
+++ b/fdio.infra.ansible/roles/trex/defaults/main.yaml
@@ -0,0 +1,33 @@
+---
+# file: defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - []
+
+packages_by_distro:
+ ubuntu:
+ - "build-essential"
+ - "gcc-9"
+ - "g++-9"
+ - "libmnl-dev"
+ - "libnuma-dev"
+ - "libpcap-dev"
+ - "librdmacm-dev"
+ - "librdmacm1"
+ - "libssl-dev"
+ - "pciutils"
+ - "python3-pip"
+ - "zlib1g-dev"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+trex_target_dir: "/opt"
+trex_url: "https://github.com/cisco-system-traffic-generator/trex-core/archive/"
+trex_version:
+ - "3.03"
diff --git a/resources/tools/testbed-setup/ansible/roles/trex/files/t-rex.patch b/fdio.infra.ansible/roles/trex/files/t-rex.patch
index e7db647779..e7db647779 100644
--- a/resources/tools/testbed-setup/ansible/roles/trex/files/t-rex.patch
+++ b/fdio.infra.ansible/roles/trex/files/t-rex.patch
diff --git a/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml b/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml
new file mode 100644
index 0000000000..1a747f68d5
--- /dev/null
+++ b/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml
@@ -0,0 +1,63 @@
+---
+# file: tasks/deploy_block.yaml
+
+- name: Get Release {{ item }}
+ ansible.builtin.get_url:
+ url: "{{ trex_url }}/v{{ item }}.tar.gz"
+ dest: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
+ validate_certs: false
+ mode: 0644
+ register: trex_downloaded
+
+- name: Create Directory {{ item }}
+ ansible.builtin.file:
+ path: "{{ trex_target_dir }}/trex-core-{{ item }}"
+ state: "directory"
+
+- name: Extract Release {{ item }}
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
+ dest: "{{ trex_target_dir }}/"
+ creates: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
+ register: trex_extracted
+
+- name: Compile Release {{ item }} Part I
+ ansible.builtin.command: "./b configure"
+ args:
+ chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
+ when: trex_extracted.changed
+
+- name: Compile Release {{ item }} Part II
+ ansible.builtin.command: "./b build"
+ args:
+ chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
+ async: 3000
+ poll: 0
+ register: trex_built
+ when: trex_extracted.changed
+
+- name: Check if T-Rex is Compiled
+ async_status:
+ jid: "{{ trex_built.ansible_job_id }}"
+ register: trex_built
+ until: trex_built.finished
+ delay: 10
+ retries: 300
+ when: trex_extracted.changed
+
+- name: Compile Release {{ item }} Part III
+ ansible.builtin.command: "make -j 16"
+ args:
+ chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
+ when: trex_extracted.changed
+
+- name: Compile Release {{ item }} Part IV
+ ansible.builtin.command: "make install"
+ args:
+ chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
+ when: trex_extracted.changed
+
+- name: Link libc.a to liblibc.a
+ ansible.builtin.command: "ln -s -f /usr/lib/x86_64-linux-gnu/libc.a /usr/lib/x86_64-linux-gnu/liblibc.a"
+ when: trex_extracted.changed
diff --git a/fdio.infra.ansible/roles/trex/tasks/main.yaml b/fdio.infra.ansible/roles/trex/tasks/main.yaml
new file mode 100644
index 0000000000..d0509f7544
--- /dev/null
+++ b/fdio.infra.ansible/roles/trex/tasks/main.yaml
@@ -0,0 +1,24 @@
+---
+# file: tasks/main.yaml
+
+- name: Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - trex-inst-prerequisites
+
+- name: Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - trex-inst-prerequisites
+
+- name: Multiple T-Rex Versions
+ include_tasks: deploy_block.yaml
+ loop: "{{ trex_version }}"
+ tags:
+ - trex-inst
diff --git a/fdio.infra.ansible/roles/user_add/defaults/main.yaml b/fdio.infra.ansible/roles/user_add/defaults/main.yaml
new file mode 100644
index 0000000000..643ad7dfd7
--- /dev/null
+++ b/fdio.infra.ansible/roles/user_add/defaults/main.yaml
@@ -0,0 +1,14 @@
+---
+# file: roles/user_add/defaults/main.yaml
+
+# Default shell for a user if none is specified.
+users_shell: /bin/bash
+
+# Default create home dirs for new users.
+users_create_homedirs: true
+
+# Default list of users to create.
+users: []
+
+# Default enable password login.
+sshd_disable_password_login: false
diff --git a/fdio.infra.ansible/roles/user_add/handlers/main.yaml b/fdio.infra.ansible/roles/user_add/handlers/main.yaml
new file mode 100644
index 0000000000..5f1f71a332
--- /dev/null
+++ b/fdio.infra.ansible/roles/user_add/handlers/main.yaml
@@ -0,0 +1,7 @@
+---
+# file: roles/user_add/handlers/main.yaml
+
+- name: Restart SSHd
+ ansible.builtin.service:
+ name: sshd
+ state: restarted
diff --git a/fdio.infra.ansible/roles/user_add/tasks/main.yaml b/fdio.infra.ansible/roles/user_add/tasks/main.yaml
new file mode 100644
index 0000000000..329c6abd07
--- /dev/null
+++ b/fdio.infra.ansible/roles/user_add/tasks/main.yaml
@@ -0,0 +1,39 @@
+---
+# file: roles/user_add/tasks/main.yaml
+
+- name: Conf - Add User
+ ansible.builtin.user:
+ append: "{{ item.append | default(omit) }}"
+ createhome: "{{ 'yes' if users_create_homedirs else 'no' }}"
+ generate_ssh_key: "{{ item.generate_ssh_key | default(omit) }}"
+ groups: "{{ item.groups | join(',') if 'groups' in item else '' }}"
+ name: "{{ item.username }}"
+ password: "{{ item.password if item.password is defined else '!' }}"
+ shell: "{{ item.shell if item.shell is defined else users_shell }}"
+ state: present
+ with_items: "{{ users }}"
+ tags:
+ - user-add-conf
+
+- name: Conf - SSH keys
+ ansible.builtin.authorized_key:
+ user: "{{ item.0.username }}"
+ key: "{{ item.1 }}"
+ with_subelements:
+ - "{{ users }}"
+ - ssh_key
+ - skip_missing: true
+ tags:
+ - user-add-conf
+
+- name: Conf - Disable Password Login
+ ansible.builtin.lineinfile:
+ dest: "/etc/ssh/sshd_config"
+ regexp: "^PasswordAuthentication yes"
+ line: "PasswordAuthentication no"
+ notify:
+ - "Restart SSHd"
+ when:
+ - sshd_disable_password_login
+ tags:
+ - user-add-conf
diff --git a/fdio.infra.ansible/roles/vagrant/defaults/main.yml b/fdio.infra.ansible/roles/vagrant/defaults/main.yml
new file mode 100644
index 0000000000..caa3339bb0
--- /dev/null
+++ b/fdio.infra.ansible/roles/vagrant/defaults/main.yml
@@ -0,0 +1,14 @@
+---
+# file: vagrant/defaults/main.yml
+
+# Settings for VPP Device host group
+csit:
+ home: "/home/vagrant/csit"
+ test_user:
+ name: "testuser"
+ password: "$6$/mAr/JDJc0u6/i$sLBptji85Xo/vdAv43bP4NpTaAfSBY8p3G7Uj9p4fKysrvs7XF8.FmlC56j4AzOun6nnf7PA.elytvfWoEHCL1"
+ home: "/home/testuser"
+ shell: "/bin/bash"
+ repository:
+ url: "https://gerrit.fd.io/r/csit"
+ version: "HEAD"
diff --git a/resources/tools/vagrant/ansible/roles/csit/files/99-vppdevice.yaml b/fdio.infra.ansible/roles/vagrant/files/99-vppdevice.yaml
index bcaa67099d..bcaa67099d 100644
--- a/resources/tools/vagrant/ansible/roles/csit/files/99-vppdevice.yaml
+++ b/fdio.infra.ansible/roles/vagrant/files/99-vppdevice.yaml
diff --git a/fdio.infra.ansible/roles/vagrant/tasks/main.yml b/fdio.infra.ansible/roles/vagrant/tasks/main.yml
new file mode 100644
index 0000000000..1716ebe0d5
--- /dev/null
+++ b/fdio.infra.ansible/roles/vagrant/tasks/main.yml
@@ -0,0 +1,43 @@
+---
+# file: vagrant/tasks/main.yml
+
+# General
+- name: Adjust number of hugepages
+ sysctl:
+ name: "vm.nr_hugepages"
+ value: "512"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: true
+
+- name: "Add user for running tests: {{ csit.test_user.name }}"
+ user:
+ name: "{{ csit.test_user.name }}"
+ password: "{{ csit.test_user.password }}"
+ home: "{{ csit.test_user.home }}"
+ shell: "{{ csit.test_user.shell }}"
+
+- name: Add vagrant user to docker group
+ user:
+ name: "vagrant"
+ groups:
+ - "docker"
+
+- name: Reload groups for current session
+ command: "/usr/bin/newgrp docker"
+
+# Disabling CSIT repo cloning in the VM as the repo is synced from the host
+# - name: Clone CSIT repository
+# become_user: vagrant
+# git:
+# repo: "{{ csit.repository.url }}"
+# dest: "{{ csit.home }}"
+# accept_hostkey: true
+# version: "{{ csit.repository.version }}"
+
+- name: Load csit docker image from local path if exists (/vagrant/csit-sut.tar)
+ shell: |
+ if [ -z "$(docker images -q `cat {{ csit.home }}/VPP_DEVICE_IMAGE`)" ] && [ -e /vagrant/csit-sut.tar ]; then
+ docker load -i /vagrant/csit-sut.tar;
+ fi;
+ ignore_errors: true
diff --git a/fdio.infra.ansible/roles/vault/defaults/main.yaml b/fdio.infra.ansible/roles/vault/defaults/main.yaml
new file mode 100644
index 0000000000..5dd3db63c1
--- /dev/null
+++ b/fdio.infra.ansible/roles/vault/defaults/main.yaml
@@ -0,0 +1,159 @@
+---
+# file: roles/vault/defaults/main.yaml
+
+# Inst - Prerequisites.
+packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages_base:
+ - "curl"
+ - "unzip"
+packages_by_distro:
+ ubuntu:
+ - []
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
+
+# Inst - Vault Map.
+vault_version: "1.11.0"
+vault_architecture_map:
+ amd64: "amd64"
+ x86_64: "amd64"
+ armv7l: "arm"
+ aarch64: "arm64"
+ 32-bit: "386"
+ 64-bit: "amd64"
+vault_architecture: "{{ vault_architecture_map[ansible_architecture] }}"
+vault_os: "{{ ansible_system|lower }}"
+vault_pkg: "vault_{{ vault_version }}_{{ vault_os }}_{{ vault_architecture }}.zip"
+vault_zip_url: "https://releases.hashicorp.com/vault/{{ vault_version }}/{{ vault_pkg }}"
+
+# Conf - Service.
+vault_node_role: "server"
+vault_restart_handler_state: "restarted"
+vault_systemd_service_name: "vault"
+
+# Inst - System paths.
+vault_bin_dir: "/usr/local/bin"
+vault_config_dir: "/etc/vault.d"
+vault_data_dir: "/var/vault"
+vault_inst_dir: "/opt"
+vault_run_dir: "/var/run/vault"
+vault_ssl_dir: "/etc/vault.d/ssl"
+
+# Conf - User and group.
+vault_group: "vault"
+vault_group_state: "present"
+vault_user: "vault"
+vault_user_state: "present"
+
+# Conf - Main
+vault_group_name: "vault_instances"
+vault_cluster_name: "yul1"
+vault_datacenter: "yul1"
+vault_log_level: "{{ lookup('env','VAULT_LOG_LEVEL') | default('info', true) }}"
+vault_iface: "{{ lookup('env','VAULT_IFACE') | default(ansible_default_ipv4.interface, true) }}"
+vault_address: "{{ hostvars[inventory_hostname]['ansible_'+vault_iface]['ipv4']['address'] }}"
+vault_ui: "{{ lookup('env', 'VAULT_UI') | default(true, true) }}"
+vault_port: 8200
+vault_use_config_path: false
+vault_main_config: "{{ vault_config_dir }}/vault_main.hcl"
+vault_main_configuration_template: "vault_main_configuration.hcl.j2"
+vault_listener_localhost_enable: false
+vault_http_proxy: ""
+vault_https_proxy: ""
+vault_no_proxy: ""
+
+# Conf - Listeners
+vault_tcp_listeners:
+ - vault_address: "{{ vault_address }}"
+ vault_port: "{{ vault_port }}"
+ vault_cluster_address: "{{ vault_cluster_address }}"
+ vault_tls_disable: "{{ vault_tls_disable }}"
+ vault_tls_config_path: "{{ vault_tls_config_path }}"
+ vault_tls_cert_file: "{{ vault_tls_cert_file }}"
+ vault_tls_key_file: "{{ vault_tls_key_file }}"
+ vault_tls_ca_file: "{{ vault_tls_ca_file }}"
+ vault_tls_min_version: "{{ vault_tls_min_version }}"
+ vault_tls_cipher_suites: "{{ vault_tls_cipher_suites }}"
+ vault_tls_prefer_server_cipher_suites: "{{ vault_tls_prefer_server_cipher_suites }}"
+ vault_tls_require_and_verify_client_cert: "{{ vault_tls_require_and_verify_client_cert }}"
+ vault_tls_disable_client_certs: "{{ vault_tls_disable_client_certs }}"
+ vault_disable_mlock: true
+
+# Conf - Backend
+vault_backend_consul: "vault_backend_consul.j2"
+vault_backend_file: "vault_backend_file.j2"
+vault_backend_raft: "vault_backend_raft.j2"
+vault_backend_etcd: "vault_backend_etcd.j2"
+vault_backend_s3: "vault_backend_s3.j2"
+vault_backend_dynamodb: "vault_backend_dynamodb.j2"
+vault_backend_mysql: "vault_backend_mysql.j2"
+vault_backend_gcs: "vault_backend_gcs.j2"
+
+vault_cluster_disable: false
+vault_cluster_address: "{{ hostvars[inventory_hostname]['ansible_'+vault_iface]['ipv4']['address'] }}:{{ (vault_port | int) + 1}}"
+vault_cluster_addr: "{{ vault_protocol }}://{{ vault_cluster_address }}"
+vault_api_addr: "{{ vault_protocol }}://{{ vault_redirect_address | default(hostvars[inventory_hostname]['ansible_'+vault_iface]['ipv4']['address']) }}:{{ vault_port }}"
+
+vault_max_lease_ttl: "768h"
+vault_default_lease_ttl: "768h"
+
+vault_backend_tls_src_files: "{{ vault_tls_src_files }}"
+vault_backend_tls_config_path: "{{ vault_tls_config_path }}"
+vault_backend_tls_cert_file: "{{ vault_tls_cert_file }}"
+vault_backend_tls_key_file: "{{ vault_tls_key_file }}"
+vault_backend_tls_ca_file: "{{ vault_tls_ca_file }}"
+
+vault_consul: "127.0.0.1:8500"
+vault_consul_path: "vault"
+vault_consul_service: "vault"
+vault_consul_scheme: "http"
+
+vault_backend: "consul"
+
+# Conf - Service registration
+vault_service_registration_consul_enable: true
+vault_service_registration_consul_template: "vault_service_registration_consul.hcl.j2"
+vault_service_registration_consul_check_timeout: "5s"
+vault_service_registration_consul_address: "127.0.0.1:8500"
+vault_service_registration_consul_service: "vault"
+vault_service_registration_consul_service_tags: ""
+vault_service_registration_consul_service_address:
+vault_service_registration_consul_disable_registration: false
+vault_service_registration_consul_scheme: "http"
+
+vault_service_registration_consul_tls_config_path: "{{ vault_tls_config_path }}"
+vault_service_registration_consul_tls_cert_file: "{{ vault_tls_cert_file }}"
+vault_service_registration_consul_tls_key_file: "{{ vault_tls_key_file }}"
+vault_service_registration_consul_tls_ca_file: "{{ vault_tls_ca_file }}"
+vault_service_registration_consul_tls_min_version: "{{ vault_tls_min_version }}"
+vault_service_registration_consul_tls_skip_verify: false
+
+# Conf - Telemetry
+vault_telemetry_enabled: true
+vault_telemetry_disable_hostname: false
+vault_prometheus_retention_time: 30s
+
+# Conf - TLS
+validate_certs_during_api_reachable_check: true
+
+vault_tls_config_path: "{{ lookup('env','VAULT_TLS_DIR') | default('/etc/vault/tls', true) }}"
+vault_tls_src_files: "{{ lookup('env','VAULT_TLS_SRC_FILES') | default(role_path+'/files', true) }}"
+
+vault_tls_disable: "{{ lookup('env','VAULT_TLS_DISABLE') | default(1, true) }}"
+vault_tls_gossip: "{{ lookup('env','VAULT_TLS_GOSSIP') | default(0, true) }}"
+
+vault_tls_copy_keys: true
+vault_protocol: "{% if vault_tls_disable %}http{% else %}https{% endif %}"
+vault_tls_cert_file: "{{ lookup('env','VAULT_TLS_CERT_FILE') | default('server.crt', true) }}"
+vault_tls_key_file: "{{ lookup('env','VAULT_TLS_KEY_FILE') | default('server.key', true) }}"
+vault_tls_ca_file: "{{ lookup('env','VAULT_TLS_CA_CRT') | default('ca.crt', true) }}"
+
+vault_tls_min_version: "{{ lookup('env','VAULT_TLS_MIN_VERSION') | default('tls12', true) }}"
+vault_tls_cipher_suites: ""
+vault_tls_prefer_server_cipher_suites: "{{ lookup('env','VAULT_TLS_PREFER_SERVER_CIPHER_SUITES') | default('false', true) }}"
+vault_tls_files_remote_src: false
+vault_tls_require_and_verify_client_cert: false
+vault_tls_disable_client_certs: false
diff --git a/fdio.infra.ansible/roles/vault/handlers/main.yaml b/fdio.infra.ansible/roles/vault/handlers/main.yaml
new file mode 100644
index 0000000000..ff2944f115
--- /dev/null
+++ b/fdio.infra.ansible/roles/vault/handlers/main.yaml
@@ -0,0 +1,9 @@
+---
+# file roles/vault/handlers/main.yaml
+
+- name: Restart Vault
+ ansible.builtin.systemd:
+ daemon_reload: true
+ enabled: true
+ name: "{{ vault_systemd_service_name }}"
+ state: "{{ vault_restart_handler_state }}"
diff --git a/fdio.infra.ansible/roles/vault/meta/main.yaml b/fdio.infra.ansible/roles/vault/meta/main.yaml
new file mode 100644
index 0000000000..22a62dd438
--- /dev/null
+++ b/fdio.infra.ansible/roles/vault/meta/main.yaml
@@ -0,0 +1,18 @@
+---
+# file: roles/vault/meta/main.yaml
+
+dependencies: []
+
+galaxy_info:
+ role_name: vault
+ author: fd.io
+ description: Hashicorp Vault.
+ company: none
+ license: "license (Apache)"
+ min_ansible_version: 2.9
+ platforms:
+ - name: Ubuntu
+ versions:
+ - jammy
+ galaxy_tags:
+ - vault
diff --git a/fdio.infra.ansible/roles/vault/tasks/main.yaml b/fdio.infra.ansible/roles/vault/tasks/main.yaml
new file mode 100644
index 0000000000..3fceadfb4a
--- /dev/null
+++ b/fdio.infra.ansible/roles/vault/tasks/main.yaml
@@ -0,0 +1,133 @@
+---
+# file: roles/vault/tasks/main.yaml
+
+- name: Inst - Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - vault-inst-prerequisites
+
+- name: Inst - Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - vault-inst-prerequisites
+
+- name: Conf - Add Vault Group
+ ansible.builtin.group:
+ name: "{{ vault_group }}"
+ state: "{{ vault_user_state }}"
+ tags:
+ - vault-conf-user
+
+- name: Conf - Add Vault user
+ ansible.builtin.user:
+ name: "{{ vault_user }}"
+ group: "{{ vault_group }}"
+ state: "{{ vault_group_state }}"
+ system: true
+ tags:
+ - vault-conf-user
+
+- name: Inst - Clean Vault
+ ansible.builtin.file:
+ path: "{{ vault_inst_dir }}/vault"
+ state: "absent"
+ tags:
+ - vault-inst-package
+
+- name: Inst - Download Vault
+ ansible.builtin.get_url:
+ url: "{{ vault_zip_url }}"
+ dest: "{{ vault_inst_dir }}/{{ vault_pkg }}"
+ tags:
+ - vault-inst-package
+
+- name: Inst - Unarchive Vault
+ ansible.builtin.unarchive:
+ src: "{{ vault_inst_dir }}/{{ vault_pkg }}"
+ dest: "{{ vault_inst_dir }}/"
+ creates: "{{ vault_inst_dir }}/vault"
+ remote_src: true
+ tags:
+ - vault-inst-package
+
+- name: Inst - Vault
+ ansible.builtin.copy:
+ src: "{{ vault_inst_dir }}/vault"
+ dest: "{{ vault_bin_dir }}"
+ owner: "{{ vault_user }}"
+ group: "{{ vault_group }}"
+ force: true
+ mode: 0755
+ remote_src: true
+ tags:
+ - vault-inst-package
+
+- name: Inst - Check Vault mlock capability
+ ansible.builtin.command: "setcap cap_ipc_lock=+ep {{ vault_bin_dir }}/vault"
+ changed_when: false # read-only task
+ ignore_errors: true
+ register: vault_mlock_capability
+ tags:
+ - vault-inst-package
+
+- name: Inst - Enable non root mlock capability
+ ansible.builtin.command: "setcap cap_ipc_lock=+ep {{ vault_bin_dir }}/vault"
+ when: vault_mlock_capability is failed
+ tags:
+ - vault-inst-package
+
+- name: Conf - Create directories
+ ansible.builtin.file:
+ dest: "{{ item }}"
+ state: directory
+ owner: "{{ vault_user }}"
+ group: "{{ vault_group }}"
+ mode: 0750
+ with_items:
+ - "{{ vault_data_dir }}"
+ - "{{ vault_config_dir }}"
+ - "{{ vault_ssl_dir }}"
+ tags:
+ - vault-conf
+
+- name: Conf - Vault main configuration
+ ansible.builtin.template:
+ src: "{{ vault_main_configuration_template }}"
+ dest: "{{ vault_main_config }}"
+ owner: "{{ vault_user }}"
+ group: "{{ vault_group }}"
+ mode: 0400
+ tags:
+ - vault-conf
+
+# - name: Conf - Copy Certificates And Keys
+# copy:
+# content: "{{ item.src }}"
+# dest: "{{ item.dest }}"
+# owner: "{{ vault_user }}"
+# group: "{{ vault_group }}"
+# mode: 0600
+# no_log: true
+# loop: "{{ vault_certificates | flatten(levels=1) }}"
+# tags:
+# - vault-conf
+
+- name: Conf - System.d Script
+ ansible.builtin.template:
+ src: "vault_systemd.service.j2"
+ dest: "/lib/systemd/system/vault.service"
+ owner: "root"
+ group: "root"
+ mode: 0644
+ notify:
+ - "Restart Vault"
+ tags:
+ - vault-conf
+
+- meta: flush_handlers
diff --git a/fdio.infra.ansible/roles/vault/templates/vault_backend_consul.j2 b/fdio.infra.ansible/roles/vault/templates/vault_backend_consul.j2
new file mode 100644
index 0000000000..c45498af90
--- /dev/null
+++ b/fdio.infra.ansible/roles/vault/templates/vault_backend_consul.j2
@@ -0,0 +1,15 @@
+backend "consul" {
+ address = "{{ vault_consul }}"
+ path = "{{ vault_consul_path }}"
+ service = "{{ vault_consul_service }}"
+ {% if vault_consul_token is defined and vault_consul_token -%}
+ token = "{{ vault_consul_token }}"
+ {% endif -%}
+ scheme = "{{ vault_consul_scheme }}"
+ {% if vault_tls_gossip | bool -%}
+ tls_cert_file = "{{ vault_backend_tls_config_path }}/{{ vault_backend_tls_cert_file }}"
+ tls_key_file = "{{ vault_backend_tls_config_path }}/{{ vault_backend_tls_key_file }}"
+ tls_ca_file="{{ vault_backend_tls_config_path }}/{{ vault_backend_tls_ca_file }}"
+ {% endif %}
+
+} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/vault/templates/vault_main_configuration.hcl.j2 b/fdio.infra.ansible/roles/vault/templates/vault_main_configuration.hcl.j2
new file mode 100644
index 0000000000..dec4fff8d9
--- /dev/null
+++ b/fdio.infra.ansible/roles/vault/templates/vault_main_configuration.hcl.j2
@@ -0,0 +1,93 @@
+cluster_name = "{{ vault_cluster_name }}"
+max_lease_ttl = "{{ vault_max_lease_ttl }}"
+default_lease_ttl = "{{ vault_default_lease_ttl }}"
+
+disable_clustering = "{{ vault_cluster_disable | bool | lower }}"
+cluster_addr = "{{ vault_cluster_addr }}"
+api_addr = "{{ vault_api_addr }}"
+
+{% for l in vault_tcp_listeners %}
+listener "tcp" {
+ address = "{{ l.vault_address }}:{{ l.vault_port }}"
+ cluster_address = "{{ l.vault_cluster_address }}"
+ {% if (l.vault_proxy_protocol_behavior is defined and l.vault_proxy_protocol_behavior) -%}
+ proxy_protocol_behavior = "{{ l.vault_proxy_protocol_behavior }}"
+ {% if (l.vault_proxy_protocol_authorized_addrs is defined) -%}
+ proxy_protocol_authorized_addrs = "{{ l.vault_proxy_protocol_authorized_addrs }}"
+ {% endif -%}
+ {% endif -%}
+ {% if not (l.vault_tls_disable | bool) -%}
+ tls_cert_file = "{{ l.vault_tls_config_path }}/{{ l.vault_tls_cert_file }}"
+ tls_key_file = "{{ l.vault_tls_config_path }}/{{ l.vault_tls_key_file }}"
+ tls_client_ca_file="{{ l.vault_tls_config_path }}/{{ l.vault_tls_ca_file }}"
+ tls_min_version = "{{ l.vault_tls_min_version }}"
+ {% if vault_tls_cipher_suites is defined and vault_tls_cipher_suites -%}
+ tls_cipher_suites = "{{ l.vault_tls_cipher_suites}}"
+ {% endif -%}
+ tls_prefer_server_cipher_suites = "{{ l.vault_tls_prefer_server_cipher_suites }}"
+ {% if (l.vault_tls_require_and_verify_client_cert | bool) -%}
+ tls_require_and_verify_client_cert = "{{ l.vault_tls_require_and_verify_client_cert | bool | lower}}"
+ {% endif -%}
+ {% if (l.vault_tls_disable_client_certs | bool) -%}
+ tls_disable_client_certs = "{{ l.vault_tls_disable_client_certs | bool | lower}}"
+ {% endif -%}
+ {% endif -%}
+ tls_disable = "{{ l.vault_tls_disable | bool | lower }}"
+}
+{% endfor %}
+
+{% if (vault_listener_localhost_enable | bool) -%}
+listener "tcp" {
+ address = "127.0.0.1:{{ vault_port }}"
+ cluster_address = "127.0.0.1:8201"
+ tls_disable = "true"
+}
+{% endif -%}
+
+{#
+ Select which storage backend you want generated and placed
+ in the vault configuration file.
+#}
+{%- if vault_backend == 'consul' -%}
+ {% include vault_backend_consul with context %}
+{% elif vault_backend == 'etcd' -%}
+ {% include vault_backend_etcd with context %}
+{% elif vault_backend == 'file' -%}
+ {% include vault_backend_file with context %}
+{% elif vault_backend == 's3' -%}
+ {% include vault_backend_s3 with context %}
+{% elif vault_backend == 'dynamodb' -%}
+ {% include vault_backend_dynamodb with context %}
+{% elif vault_backend == 'mysql' -%}
+ {% include vault_backend_mysql with context %}
+{% elif vault_backend == 'gcs' -%}
+ {% include vault_backend_gcs with context %}
+{% elif vault_backend == 'raft' -%}
+ {% include vault_backend_raft with context %}
+{% endif %}
+
+{% if vault_service_registration_consul_enable -%}
+ {% include vault_service_registration_consul_template with context %}
+{% endif %}
+
+{% if vault_ui %}
+ui = {{ vault_ui | bool | lower }}
+{% endif %}
+
+{% if vault_telemetry_enabled | bool -%}
+telemetry {
+ {% if vault_statsite_address is defined -%}
+ statsite_address = "{{vault_statsite_address}}"
+ {% endif -%}
+ {% if vault_statsd_address is defined -%}
+ statsd_address = "{{vault_statsd_address}}"
+ {% endif -%}
+ {% if vault_prometheus_retention_time is defined -%}
+ prometheus_retention_time = "{{ vault_prometheus_retention_time }}"
+ {% endif -%}
+ {% if vault_telemetry_disable_hostname is defined -%}
+ disable_hostname = {{vault_telemetry_disable_hostname | bool | lower }}
+ {% endif %}
+
+}
+{% endif %} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/vault/templates/vault_service_registration_consul.hcl.j2 b/fdio.infra.ansible/roles/vault/templates/vault_service_registration_consul.hcl.j2
new file mode 100644
index 0000000000..cd5da1ffb6
--- /dev/null
+++ b/fdio.infra.ansible/roles/vault/templates/vault_service_registration_consul.hcl.j2
@@ -0,0 +1,22 @@
+service_registration "consul" {
+ address = "{{ vault_service_registration_consul_address }}"
+ check_timeout = "{{ vault_service_registration_consul_check_timeout }}"
+ disable_registration = "{{ vault_service_registration_consul_disable_registration | bool | lower }}"
+ scheme = "{{ vault_service_registration_consul_scheme }}"
+ service = "{{ vault_service_registration_consul_service }}"
+ service_tags = "{{ vault_service_registration_consul_service_tags }}"
+ {% if vault_service_registration_consul_service_address is defined and vault_service_registration_consul_service_address -%}
+ service_address = "{{ vault_service_registration_consul_service_address }}"
+ {% endif -%}
+ {% if vault_service_registration_consul_token is defined and vault_service_registration_consul_token -%}
+ token = "{{ vault_service_registration_consul_token }}"
+ {% endif -%}
+ {% if vault_service_registration_consul_scheme == "https" -%}
+ tls_ca_file="{{ vault_service_registration_consul_tls_config_path }}/{{ vault_service_registration_consul_tls_ca_file }}"
+ tls_cert_file = "{{ vault_service_registration_consul_tls_config_path }}/{{ vault_service_registration_consul_tls_cert_file }}"
+ tls_key_file = "{{ vault_service_registration_consul_tls_config_path }}/{{ vault_service_registration_consul_tls_key_file }}"
+ tls_min_version = "{{ vault_service_registration_consul_tls_min_version }}"
+ tls_skip_verify = "{{ vault_service_registration_consul_tls_skip_verify }}"
+ {% endif %}
+
+} \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/vault/templates/vault_systemd.service.j2 b/fdio.infra.ansible/roles/vault/templates/vault_systemd.service.j2
new file mode 100644
index 0000000000..5d2ca78b2e
--- /dev/null
+++ b/fdio.infra.ansible/roles/vault/templates/vault_systemd.service.j2
@@ -0,0 +1,30 @@
+[Unit]
+Description=Vault
+Documentation=https://www.vaultproject.io/docs/
+Requires=network-online.target
+After=network-online.target
+
+[Service]
+User={{ vault_user }}
+Group={{ vault_group }}
+ProtectSystem=full
+ProtectHome=read-only
+PrivateTmp=yes
+PrivateDevices=yes
+NoNewPrivileges=yes
+ExecReload=/bin/kill -HUP $MAINPID
+ExecStart={{ vault_bin_dir }}/vault {{ vault_node_role }} -config={{ vault_config_dir }}
+KillMode=process
+KillSignal=SIGINT
+Restart=on-failure
+RestartSec=5
+TimeoutStopSec=30
+StartLimitInterval=60
+StartLimitBurst=3
+LimitNOFILE=524288
+LimitNPROC=524288
+LimitMEMLOCK=infinity
+LimitCORE=0
+
+[Install]
+WantedBy=multi-user.target \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/vault/vars/main.yaml b/fdio.infra.ansible/roles/vault/vars/main.yaml
new file mode 100644
index 0000000000..2b16a63fdf
--- /dev/null
+++ b/fdio.infra.ansible/roles/vault/vars/main.yaml
@@ -0,0 +1,5 @@
+---
+# file: roles/vault/vars/main.yaml
+
+vault_node_client: "{{ (vault_node_role == 'client') or (vault_node_role == 'both') }}"
+vault_node_server: "{{ (vault_node_role == 'server') or (vault_node_role == 'both') }}"
diff --git a/fdio.infra.ansible/roles/vpp/defaults/main.yaml b/fdio.infra.ansible/roles/vpp/defaults/main.yaml
new file mode 100644
index 0000000000..00c56859d0
--- /dev/null
+++ b/fdio.infra.ansible/roles/vpp/defaults/main.yaml
@@ -0,0 +1,28 @@
+---
+# file: roles/vpp/defaults/main.yaml
+
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
+
+packages_base:
+ - "gdb"
+ - "libtool"
+ - "lxc"
+ - "pkg-config"
+ - "screen"
+
+packages_by_distro:
+ ubuntu:
+ jammy:
+ - "build-essential"
+ - "libglib2.0-dev"
+ - "libmbedcrypto7"
+ - "libmbedtls14"
+ - "libmbedx509-1"
+ - "libnuma-dev"
+ - "libpixman-1-dev"
+
+packages_by_arch:
+ aarch64:
+ - []
+ x86_64:
+ - []
diff --git a/fdio.infra.ansible/roles/vpp/tasks/main.yaml b/fdio.infra.ansible/roles/vpp/tasks/main.yaml
new file mode 100644
index 0000000000..cea06b764d
--- /dev/null
+++ b/fdio.infra.ansible/roles/vpp/tasks/main.yaml
@@ -0,0 +1,27 @@
+---
+# file: roles/vpp/tasks/main.yaml
+
+- name: Inst - Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - vpp-inst-prerequisites
+
+- name: Inst - Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - vpp-inst-prerequisites
+
+- name: Conf - sysctl
+ ansible.builtin.file:
+ src: "/dev/null"
+ dest: "/etc/sysctl.d/80-vpp.conf"
+ state: "link"
+ become: true
+ tags:
+ - vpp-conf-sysctl
diff --git a/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-alt.sh b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-alt.sh
new file mode 100644
index 0000000000..cd04d61251
--- /dev/null
+++ b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-alt.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2023 PANTHEON.tech and/or its affiliates.
+# 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.
+
+# Add QLogic Corp. FastLinQ QL41000 Series 10/25/40/50GbE Controller to
+# blacklist.
+PCI_BLACKLIST=($(lspci -Dmmd ':8070:0200' | cut -f1 -d' '))
+# Add I350 Gigabit Network Connection 1521 to blacklist.
+PCI_BLACKLIST+=($(lspci -Dmmd ':1521:0200' | cut -f1 -d' '))
+# Add MT27800 Family [ConnectX-5] 1017 to blacklist.
+PCI_BLACKLIST+=($(lspci -Dmmd ':1017:0200' | cut -f1 -d' '))
+
+# Add Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ to whitelist.
+PCI_WHITELIST=($(lspci -Dmmd ':1583:0200' | cut -f1 -d' '))
+# Add MT2892 Family [ConnectX-6 Dx] 101d to whitelist.
+PCI_WHITELIST+=($(lspci -Dmmd ':101d:0200' | cut -f1 -d' '))
+
+# See http://pci-ids.ucw.cz/v2.2/pci.ids for more info.
+
+declare -A PF_INDICES
+# Intel NICs
+PF_INDICES["0000:01:00.0"]=0
+PF_INDICES["0000:01:00.1"]=1
+PF_INDICES["0003:02:00.0"]=0
+PF_INDICES["0003:02:00.1"]=1
+# Mellanox CX6
+PF_INDICES["0001:01:00.0"]=2
+PF_INDICES["0001:01:00.1"]=2 \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-default.sh b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-default.sh
new file mode 100644
index 0000000000..91c93ab882
--- /dev/null
+++ b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-default.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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.
+
+# Add Intel Corporation Ethernet Controller 10G X550T to blacklist.
+PCI_BLACKLIST=($(lspci -Dmmd ':1563:0200' | cut -f1 -d' '))
+
+# Add Intel Corporation Ethernet Controller X710 for 10GbE SFP+ to whitelist.
+PCI_WHITELIST=($(lspci -Dmmd ':1572:0200' | cut -f1 -d' '))
+# Add Intel Corporation Ethernet Controller E810-C for 100GbE QSFP to whitelist.
+PCI_WHITELIST+=($(lspci -Dmmd ':1592:0200' | cut -f1 -d' '))
+
+# See http://pci-ids.ucw.cz/v2.2/pci.ids for more info.
+
+declare -A PF_INDICES
+# Intel NICs
+PF_INDICES["0000:18:00.0"]=0
+PF_INDICES["0000:18:00.1"]=1
+PF_INDICES["0000:18:00.2"]=2
+PF_INDICES["0000:18:00.3"]=3
+PF_INDICES["0000:86:00.0"]=4
+PF_INDICES["0000:3b:00.0"]=0
+PF_INDICES["0000:3b:00.1"]=1
+PF_INDICES["0000:3b:00.2"]=2
+PF_INDICES["0000:3b:00.3"]=3
+PF_INDICES["0000:af:00.0"]=4
diff --git a/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-spr.sh b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-spr.sh
new file mode 100644
index 0000000000..b240649b4c
--- /dev/null
+++ b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-spr.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+# Add Intel Corporation Ethernet Controller 10G X550T to blacklist.
+PCI_BLACKLIST=($(lspci -Dmmd ':1563:0200' | cut -f1 -d' '))
+# Add Intel Corporation Ethernet Controller E810-C for 100GbE QSFP to whitelist.
+PCI_WHITELIST+=($(lspci -Dmmd ':1592:0200' | cut -f1 -d' '))
+
+# See http://pci-ids.ucw.cz/v2.2/pci.ids for more info.
+
+declare -A PF_INDICES
+# Intel NICs
+PF_INDICES["0000:2a:00.0"]=0
+PF_INDICES["0000:2c:00.0"]=1
+PF_INDICES["0000:3f:00.0"]=0
+PF_INDICES["0000:3d:00.0"]=1
diff --git a/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs-tx2.sh b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-tx2.sh
index b900efcf7c..6c56752ad0 100644
--- a/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs-tx2.sh
+++ b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs-tx2.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 PANTHEON.tech and/or its affiliates.
+# Copyright (c) 2021 PANTHEON.tech and/or its affiliates.
# 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:
@@ -18,11 +18,11 @@
PCI_BLACKLIST=($(lspci -Dmmd ':8070:0200' | cut -f1 -d' '))
# Add I350 Gigabit Network Connection 1521 to blacklist.
PCI_BLACKLIST+=($(lspci -Dmmd ':1521:0200' | cut -f1 -d' '))
+# Add MT27800 Family [ConnectX-5] 1017 to blacklist.
+PCI_BLACKLIST+=($(lspci -Dmmd ':1017:0200' | cut -f1 -d' '))
# Add Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ to whitelist.
PCI_WHITELIST=($(lspci -Dmmd ':1583:0200' | cut -f1 -d' '))
-# Add MT27800 Family [ConnectX-5] 1017 to whitelist.
-PCI_WHITELIST+=($(lspci -Dmmd ':1017:0200' | cut -f1 -d' '))
# See http://pci-ids.ucw.cz/v2.2/pci.ids for more info.
@@ -32,9 +32,3 @@ PF_INDICES["0000:05:00.0"]=0
PF_INDICES["0000:05:00.1"]=1
PF_INDICES["0000:91:00.0"]=0
PF_INDICES["0000:91:00.1"]=1
-
-# Mellanox NICs
-PF_INDICES["0000:0b:00.0"]=2
-PF_INDICES["0000:0b:00.1"]=3
-PF_INDICES["0000:9a:00.0"]=2
-PF_INDICES["0000:9a:00.1"]=3
diff --git a/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs.service b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs.service
index 996792ab9b..996792ab9b 100644
--- a/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs.service
+++ b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs.service
diff --git a/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs.sh b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs.sh
index 365497865e..afa84ae15a 100644
--- a/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs.sh
+++ b/fdio.infra.ansible/roles/vpp_device/files/csit-initialize-vfs.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -28,7 +28,12 @@ for pci_addr in ${PCI_WHITELIST[@]}; do
# SR-IOV initialization
case "${1:-start}" in
"start" )
- sriov_totalvfs=$(< "${pci_path}"/sriov_totalvfs)
+ if [ $(< "${pci_path}"/sriov_totalvfs) -gt 128 ]
+ then
+ sriov_totalvfs=128
+ else
+ sriov_totalvfs=$(< "${pci_path}"/sriov_totalvfs)
+ fi
;;
"stop" )
sriov_totalvfs=0
@@ -63,11 +68,10 @@ for pci_addr in ${PCI_WHITELIST[@]}; do
ip link set ${pf} vf $(( vf - 1 )) ${mac_str} ${vlan_str}
ip link set ${pf} vf $(( vf - 1 )) trust on
ip link set ${pf} vf $(( vf - 1 )) spoof off
+ sleep .5
done
pci_idx=$(( pci_idx + 1 ))
;;
esac
- rmmod i40evf
- modprobe i40evf
fi
done
diff --git a/fdio.infra.ansible/roles/vpp_device/handlers/main.yaml b/fdio.infra.ansible/roles/vpp_device/handlers/main.yaml
new file mode 100644
index 0000000000..3ac80cc16e
--- /dev/null
+++ b/fdio.infra.ansible/roles/vpp_device/handlers/main.yaml
@@ -0,0 +1,21 @@
+---
+# file: handlers/main.yaml
+
+- name: "Start csit-initialize-vfs.service"
+ ansible.builtin.systemd:
+ enabled: true
+ state: "started"
+ name: "csit-initialize-vfs.service"
+ tags:
+ - start-vf-service
+
+- name: "Update GRUB"
+ ansible.builtin.command: "update-grub"
+ tags:
+ - update-grub
+
+- name: "Reboot server"
+ ansible.builtin.reboot:
+ reboot_timeout: 3600
+ tags:
+ - reboot-server
diff --git a/fdio.infra.ansible/roles/vpp_device/tasks/main.yaml b/fdio.infra.ansible/roles/vpp_device/tasks/main.yaml
new file mode 100644
index 0000000000..91916456af
--- /dev/null
+++ b/fdio.infra.ansible/roles/vpp_device/tasks/main.yaml
@@ -0,0 +1,139 @@
+---
+# file: tasks/main.yaml
+
+- name: "Load Kernel Modules On Startup (vfio-pci)"
+ ansible.builtin.lineinfile:
+ path: "/etc/modules"
+ state: "present"
+ line: "{{ item }}"
+ with_items:
+ - "vfio-pci"
+ tags:
+ - load-kernel-modules
+
+- name: "Disable IPv6 Router Advertisement"
+ ansible.builtin.sysctl:
+ name: "net.ipv6.conf.default.accept_ra"
+ value: "0"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - set-sysctl
+
+- name: "Disable IPv6 MLDv1 interval"
+ ansible.builtin.sysctl:
+ name: "net.ipv6.conf.default.mldv1_unsolicited_report_interval"
+ value: "0"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - set-sysctl
+
+- name: "Disable IPv6 MLDv2 interval"
+ ansible.builtin.sysctl:
+ name: "net.ipv6.conf.default.mldv2_unsolicited_report_interval"
+ value: "0"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - set-sysctl
+
+- name: "Disable IPv6 Autoconf"
+ ansible.builtin.sysctl:
+ name: "net.ipv6.conf.default.autoconf"
+ value: "0"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - set-sysctl
+
+- name: "Disable IPv6 MC Forwarding"
+ ansible.builtin.sysctl:
+ name: "net.ipv6.conf.default.mc_forwarding"
+ value: "0"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - set-sysctl
+
+- name: "Disable IPv4 IGMPv2 interval"
+ ansible.builtin.sysctl:
+ name: "net.ipv4.conf.default.igmpv2_unsolicited_report_interval"
+ value: "0"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - set-sysctl
+
+- name: "Disable IPv4 IGMPv3 interval"
+ ansible.builtin.sysctl:
+ name: "net.ipv4.conf.default.igmpv3_unsolicited_report_interval"
+ value: "0"
+ state: "present"
+ sysctl_file: "/etc/sysctl.d/90-csit.conf"
+ reload: "yes"
+ tags:
+ - set-sysctl
+
+- name: "Copy csit-initialize-vfs.sh"
+ ansible.builtin.copy:
+ src: "files/csit-initialize-vfs.sh"
+ dest: "/usr/local/bin/"
+ owner: "root"
+ group: "root"
+ mode: 0744
+ tags:
+ - copy-vf-script
+
+- name: "Copy csit-initialize-vfs-data.sh"
+ ansible.builtin.copy:
+ src: "files/{{ vfs_data_file }}"
+ dest: "/usr/local/bin/csit-initialize-vfs-data.sh"
+ owner: "root"
+ group: "root"
+ mode: 0744
+ tags: copy-vf-data-script
+ when:
+ - vfs_data_file is defined
+
+- name: "Copy Default csit-initialize-vfs-data.sh"
+ ansible.builtin.copy:
+ src: "files/csit-initialize-vfs-default.sh"
+ dest: "/usr/local/bin/csit-initialize-vfs-data.sh"
+ owner: "root"
+ group: "root"
+ mode: 0744
+ tags: copy-vf-data-script
+ when:
+ - vfs_data_file is not defined
+
+- name: "Start csit-initialize-vfs.service"
+ ansible.builtin.copy:
+ src: "files/csit-initialize-vfs.service"
+ dest: "/etc/systemd/system/"
+ owner: "root"
+ group: "root"
+ mode: 0644
+ notify:
+ - "Start csit-initialize-vfs.service"
+ tags:
+ - start-vf-service
+
+- ansible.builtin.meta: "flush_handlers"
+
+- name: "Set Hugepages In GRUB"
+ ansible.builtin.lineinfile:
+ path: "/etc/default/grub"
+ state: "present"
+ regexp: "^GRUB_CMDLINE_LINUX="
+ line: "GRUB_CMDLINE_LINUX=\"{% for key, value in grub.items() %}{% if value %}{{key}}={{value}} {% else %}{{key}} {% endif %}{% endfor %}\""
+ notify:
+ - "Update GRUB"
+ tags:
+ - set-grub
diff --git a/fdio.infra.ansible/site.yaml b/fdio.infra.ansible/site.yaml
new file mode 100644
index 0000000000..45a090344e
--- /dev/null
+++ b/fdio.infra.ansible/site.yaml
@@ -0,0 +1,32 @@
+---
+# file: site.yaml
+
+- import_playbook: tg.yaml
+ tags:
+ - tg
+ - tg_aws
+ - tg_azure
+ - tg_openstack
+
+- import_playbook: sut.yaml
+ tags:
+ - sut
+ - sut_aws
+ - sut_azure
+ - sut_openstasck
+
+- import_playbook: vpp_device.yaml
+ tags:
+ - vpp-device
+
+- import_playbook: nomad.yaml
+ tags:
+ - nomad
+
+- import_playbook: dev.yaml
+ tags:
+ - dev
+
+- import_playbook: vagrant.yaml
+ tags:
+ - vagrant
diff --git a/fdio.infra.ansible/sut.yaml b/fdio.infra.ansible/sut.yaml
new file mode 100644
index 0000000000..57be961ee1
--- /dev/null
+++ b/fdio.infra.ansible/sut.yaml
@@ -0,0 +1,134 @@
+---
+# file: sut.yaml
+
+- hosts: sut
+ remote_user: testuser
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: baremetal
+ tags: baremetal
+ - role: common
+ tags: common
+ - role: python_env
+ tags: python_env
+ - role: kernel
+ tags: kernel
+ - role: mellanox
+ tags: mellanox
+ - role: intel
+ tags: intel
+ - role: docker
+ tags: docker
+ - role: vpp
+ tags: vpp
+ - role: dpdk
+ tags: dpdk
+ - role: kernel_vm
+ tags: kernel_vm
+ - role: docker_images
+ tags: docker_images
+ - role: performance_tuning
+ tags: performance_tuning
+ - role: cleanup
+ tags: cleanup
+ - role: calibration
+ tags: calibration
+
+- hosts: sut_aws
+ remote_user: testuser
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: common
+ tags: common
+ - role: python_env
+ tags: python_env
+ - role: vpp
+ tags: vpp
+ - role: iperf
+ tags: iperf
+ - role: docker
+ tags: docker
+# - role: dpdk
+# tags: dpdk
+ - role: aws
+ tags: aws
+ - role: cleanup
+ tags: cleanup
+ - role: calibration
+ tags: calibration
+
+- hosts: sut_azure
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: common
+ tags: common
+ - role: python_env
+ tags: python_env
+ - role: docker
+ tags: docker
+ - role: vpp
+ tags: vpp
+ - role: iperf
+ tags: iperf
+ - role: dpdk
+ tags: dpdk
+ - role: azure
+ tags: azure
+ - role: cleanup
+ tags: cleanup
+ - role: calibration
+ tags: calibration
+
+- hosts: sut_openstack
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: common
+ tags: common
+ - role: python_env
+ tags: python_env
+ - role: docker
+ tags: docker
+ - role: vpp
+ tags: vpp
+ - role: iperf
+ tags: iperf
+ - role: dpdk
+ tags: dpdk
+ - role: cleanup
+ tags: cleanup
+ - role: calibration
+ tags: calibration \ No newline at end of file
diff --git a/fdio.infra.ansible/tg.yaml b/fdio.infra.ansible/tg.yaml
new file mode 100644
index 0000000000..de8706ffd1
--- /dev/null
+++ b/fdio.infra.ansible/tg.yaml
@@ -0,0 +1,136 @@
+---
+# file: tg.yaml
+
+- hosts: tg
+ remote_user: testuser
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: baremetal
+ tags: baremetal
+ - role: common
+ tags: common
+ - role: python_env
+ tags: python_env
+ - role: kernel
+ tags: kernel
+ - role: mellanox
+ tags: mellanox
+ - role: intel
+ tags: intel
+ - role: docker
+ tags: docker
+ - role: docker_images
+ tags: docker_images
+ - role: iperf
+ tags: iperf
+ - role: trex
+ tags: trex
+ - role: ab
+ tags: ab
+ - role: performance_tuning
+ tags: performance_tuning
+ - role: cleanup
+ tags: cleanup
+ - role: calibration
+ tags: calibration
+
+- hosts: tg_aws
+ remote_user: testuser
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: common
+ tags: common
+ - role: python_env
+ tags: python_env
+ - role: docker
+ tags: docker
+ - role: iperf
+ tags: iperf
+# - role: dpdk
+# tags: dpdk
+ - role: aws
+ tags: aws
+ - role: trex
+ tags: trex
+ - role: ab
+ tags: ab
+ - role: cleanup
+ tags: cleanup
+ - role: calibration
+ tags: calibration
+
+- hosts: tg_azure
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: common
+ tags: common
+ - role: python_env
+ tags: python_env
+ - role: docker
+ tags: docker
+ - role: iperf
+ tags: iperf
+ - role: trex
+ tags: trex
+ - role: ab
+ tags: ab
+ - role: azure
+ tags: azure
+ - role: cleanup
+ tags: cleanup
+ - role: calibration
+ tags: calibration
+
+- hosts: tg_openstack
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: common
+ tags: common
+ - role: python_env
+ tags: python_env
+ - role: docker
+ tags: docker
+ - role: iperf
+ tags: iperf
+ - role: trex
+ tags: trex
+ - role: ab
+ tags: ab
+ - role: cleanup
+ tags: cleanup
+ - role: calibration
+ tags: calibration \ No newline at end of file
diff --git a/fdio.infra.ansible/vagrant.yaml b/fdio.infra.ansible/vagrant.yaml
new file mode 100644
index 0000000000..ad655c3926
--- /dev/null
+++ b/fdio.infra.ansible/vagrant.yaml
@@ -0,0 +1,24 @@
+---
+# file: vagrant.yaml
+
+- hosts: vagrant
+ remote_user: vagrant
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: common
+ tags: common
+ - role: python_env
+ tags: python_env
+ - role: docker
+ tags: docker
+ - role: vpp
+ tags: vpp
+ - role: vagrant
+ tags: vagrant
diff --git a/resources/tools/testbed-setup/ansible/vault.yml b/fdio.infra.ansible/vault.yml
index 2c10624d07..2c10624d07 100644
--- a/resources/tools/testbed-setup/ansible/vault.yml
+++ b/fdio.infra.ansible/vault.yml
diff --git a/resources/tools/testbed-setup/ansible/vault_pass b/fdio.infra.ansible/vault_pass
index e1d46efc1f..e1d46efc1f 100644
--- a/resources/tools/testbed-setup/ansible/vault_pass
+++ b/fdio.infra.ansible/vault_pass
diff --git a/fdio.infra.ansible/vpp_device.yaml b/fdio.infra.ansible/vpp_device.yaml
new file mode 100644
index 0000000000..21676811c7
--- /dev/null
+++ b/fdio.infra.ansible/vpp_device.yaml
@@ -0,0 +1,42 @@
+---
+# file: vpp_device.yaml
+
+- hosts: vpp_device
+ remote_user: localadmin
+ become: true
+ become_user: root
+ gather_facts: false
+ pre_tasks:
+ - name: Gathering Facts
+ gather_facts:
+ tags:
+ - always
+ roles:
+ - role: user_add
+ tags: user_add
+ - role: baremetal
+ tags: baremetal
+ - role: common
+ tags: common
+# - role: kernel
+# tags: kernel
+ - role: intel
+ tags: intel
+ - role: docker
+ tags: docker
+ - role: docker_images
+ tags: docker_images
+ - role: nomad
+ tags: nomad
+ - role: consul
+ tags: consul
+ - role: prometheus_exporter
+ tags: prometheus_exporter
+ - role: jenkins_job_health_exporter
+ tags: jenkins_job_health_exporter
+ - role: vpp_device
+ tags: vpp_device
+ - role: kernel_vm
+ tags: kernel_vm
+ - role: cleanup
+ tags: cleanup
diff --git a/fdio.infra.terraform/.gitignore b/fdio.infra.terraform/.gitignore
new file mode 100644
index 0000000000..223f2ec48c
--- /dev/null
+++ b/fdio.infra.terraform/.gitignore
@@ -0,0 +1,36 @@
+# Local .terraform directories
+**/.terraform/*
+
+# .tfstate files
+*.tfstate
+*.tfstate.*
+.terraform.lock.hcl
+.terraform.tfstate.lock.info
+
+# Crash log files
+crash.log
+
+# Exclude all .tfvars files, which are likely to contain sentitive data, such as
+# password, private keys, and other secrets. These should not be part of version
+# control as they are data points which are potentially sensitive and subject
+# to change depending on the environment.
+#
+*.tfvars
+
+# Ignore override files as they are usually used to override resources locally and so
+# are not checked in
+override.tf
+override.tf.json
+*_override.tf
+*_override.tf.json
+
+# Include override files you do wish to add to version control using negated pattern
+#
+# !example_override.tf
+
+# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
+# example: *tfplan*
+
+# Ignore CLI configuration files
+.terraformrc
+terraform.rc \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/hosts.tftpl b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/hosts.tftpl
new file mode 100644
index 0000000000..58594efe9d
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/hosts.tftpl
@@ -0,0 +1,5 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/main.tf b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/main.tf
new file mode 100644
index 0000000000..e455b6b104
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/main.tf
@@ -0,0 +1,211 @@
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault-name}-path"
+ role = "${var.vault-name}-role"
+}
+
+locals {
+ ansible_python_executable = "/usr/bin/python3"
+ availability_zone = "eu-central-1a"
+ name = "csit-vpc"
+ environment = "csit-vpc-environment"
+ key_pair_key_name = "${var.resource_prefix}-${var.testbed_name}-pk"
+ placement_group_name = "${var.resource_prefix}-${var.testbed_name}-pg"
+ security_group_name = "${var.resource_prefix}-${var.testbed_name}-sg"
+ testbed_name = "testbed1"
+ topology_name = "1n-aws-c5n"
+ tg_name = "${var.resource_prefix}-${var.testbed_name}-tg"
+ sut1_name = "${var.resource_prefix}-${var.testbed_name}-sut1"
+}
+
+# Create VPC
+module "vpc" {
+ source = "../terraform-aws-vpc"
+ security_group_name = local.security_group_name
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+}
+
+# Create Subnet
+module "subnet_b" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 2)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+# Create Private Key
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
+}
+
+# Create Key Pair
+module "key_pair" {
+ source = "pmikus/key-pair/aws"
+ version = "5.7.0"
+
+ key_pair_key_name = local.key_pair_key_name
+ key_pair_public_key = module.private_key.public_key_openssh
+
+ key_pair_tags = {
+ "Environment" = local.environment
+ }
+}
+
+# Create Placement Group
+resource "aws_placement_group" "placement_group" {
+ name = local.placement_group_name
+ strategy = var.placement_group_strategy
+}
+
+# Create Instance
+resource "aws_instance" "tg" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.tg_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.tg_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.tg_instance_initiated_shutdown_behavior
+ instance_type = var.tg_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.tg_private_ip
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "1"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ips = [var.tg_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if2" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ips = [var.tg_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "tg_if1" {
+ id = aws_network_interface.tg_if1.id
+}
+
+data "aws_network_interface" "tg_if2" {
+ id = aws_network_interface.tg_if2.id
+}
+
+resource "aws_route" "route_tg_if1" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if1
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_route" "route_tg_if2" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if2
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "null_resource" "deploy_tg" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.tg.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg
+ ]
+
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ }
+ )
+ filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+ depends_on = [
+ aws_instance.tg
+ ]
+
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = aws_instance.tg.public_ip
+ }
+ )
+ filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/output.tf b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/providers.tf b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/providers.tf
new file mode 100644
index 0000000000..2482ca2839
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = "http://10.30.51.24:8200"
+ skip_tls_verify = true
+ token = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/topology-1n-aws-c5n.tftpl b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/topology-1n-aws-c5n.tftpl
new file mode 100644
index 0000000000..c99d1f5ebc
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/topology-1n-aws-c5n.tftpl
@@ -0,0 +1,30 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/1_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 1-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # tg_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link1
+ model: Amazon-Nitro-50G \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf
new file mode 100644
index 0000000000..566a073266
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf
@@ -0,0 +1,120 @@
+variable "vault-name" {
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-central-1"
+}
+
+variable "resource_prefix" {
+ description = "Resources name prefix."
+ type = string
+ default = "csit-1n-aws-c5n"
+}
+
+variable "testbed_name" {
+ description = "Testbed name."
+ type = string
+ default = "testbed1"
+}
+
+# Variables for Private Key
+variable "private_key_algorithm" {
+ description = "The name of the algorithm to use for the key."
+ type = string
+ default = "ED25519"
+}
+
+# Variables for Placement Group
+variable "placement_group_strategy" {
+ description = "The placement strategy. Can be cluster, partition or spread."
+ type = string
+ default = "cluster"
+}
+
+# Variables for Instance
+variable "tg_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-07430bfa17fd4e597"
+}
+
+variable "tg_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "tg_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "tg_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c5n.4xlarge"
+}
+
+variable "tg_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.10"
+}
+
+variable "tg_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+# Variables for Network Interface
+variable "tg_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.254"
+}
+
+variable "tg_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.11"
+}
+
+variable "destination_cidr_block_tg_if1" {
+ description = "The destination CIDR block."
+ type = string
+ default = "10.0.0.0/16"
+}
+
+variable "destination_cidr_block_tg_if2" {
+ description = "The destination CIDR block."
+ type = string
+ default = "20.0.0.0/16"
+}
+
+# Variables for Null Resource
+variable "first_run_commands" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = list(string)
+ default = [
+ "sudo sed -i 's/^PasswordAuthentication/#PasswordAuthentication/' /etc/ssh/sshd_config",
+ "sudo systemctl restart sshd",
+ "sudo useradd --create-home -s /bin/bash provisionuser",
+ "echo 'provisionuser:Csit1234' | sudo chpasswd",
+ "echo 'provisionuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers",
+ "sudo useradd --create-home -s /bin/bash testuser",
+ "echo 'testuser:Csit1234' | sudo chpasswd",
+ "echo 'testuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers"
+ ]
+}
+
+# Variables for Null Resource
+variable "ansible_topology_path" {
+ description = "Ansible topology path."
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/versions.tf b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/versions.tf
new file mode 100644
index 0000000000..7e17bb4924
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/versions.tf
@@ -0,0 +1,20 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ null = {
+ source = "hashicorp/null"
+ version = ">= 3.2.1"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = ">= 4.0.4"
+ }
+ vault = {
+ version = ">= 3.15.2"
+ }
+ }
+ required_version = ">= 1.4.2"
+}
diff --git a/fdio.infra.terraform/terraform-aws-1n-c6in/hosts.tftpl b/fdio.infra.terraform/terraform-aws-1n-c6in/hosts.tftpl
new file mode 100644
index 0000000000..58594efe9d
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-c6in/hosts.tftpl
@@ -0,0 +1,5 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-1n-c6in/main.tf b/fdio.infra.terraform/terraform-aws-1n-c6in/main.tf
new file mode 100644
index 0000000000..94cac297c2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-c6in/main.tf
@@ -0,0 +1,206 @@
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault-name}-path"
+ role = "${var.vault-name}-role"
+}
+
+locals {
+ ansible_python_executable = "/usr/bin/python3"
+ availability_zone = "eu-central-1b"
+ name = "csit-vpc"
+ environment = "csit-vpc-environment"
+ key_pair_key_name = "${var.resource_prefix}-${var.testbed_name}-pk"
+ placement_group_name = "${var.resource_prefix}-${var.testbed_name}-pg"
+ security_group_name = "${var.resource_prefix}-${var.testbed_name}-sg"
+ testbed_name = "testbed1"
+ topology_name = "1n-c6in"
+ tg_name = "${var.resource_prefix}-${var.testbed_name}-tg"
+ sut1_name = "${var.resource_prefix}-${var.testbed_name}-sut1"
+}
+
+# Create VPC
+module "vpc" {
+ source = "../terraform-aws-vpc"
+ security_group_name = local.security_group_name
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+}
+
+# Create Subnet
+module "subnet_b" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 2)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+# Create Private Key
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
+}
+
+# Create Key Pair
+module "key_pair" {
+ source = "pmikus/key-pair/aws"
+ version = "5.7.0"
+
+ key_pair_key_name = local.key_pair_key_name
+ key_pair_public_key = module.private_key.public_key_openssh
+
+ key_pair_tags = {
+ "Environment" = local.environment
+ }
+}
+
+# Create Placement Group
+resource "aws_placement_group" "placement_group" {
+ name = local.placement_group_name
+ strategy = var.placement_group_strategy
+}
+
+# Create Instance
+resource "aws_instance" "tg" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.tg_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.tg_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.tg_instance_initiated_shutdown_behavior
+ instance_type = var.tg_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.tg_private_ip
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "1"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ips = [var.tg_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if2" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ips = [var.tg_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "tg_if1" {
+ id = aws_network_interface.tg_if1.id
+}
+
+data "aws_network_interface" "tg_if2" {
+ id = aws_network_interface.tg_if2.id
+}
+
+resource "aws_route" "route_tg_if1" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if1
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_route" "route_tg_if2" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if2
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "null_resource" "deploy_tg" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.tg.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+
+resource "null_resource" "deploy_topology" {
+ depends_on = [
+ aws_instance.tg
+ ]
+
+ provisioner "ansible" {
+ plays {
+ playbook {
+ file_path = var.ansible_topology_path
+ }
+ hosts = ["local"]
+ extra_vars = {
+ ansible_python_interpreter = local.ansible_python_executable
+ testbed_name = local.testbed_name
+ cloud_topology = local.topology_name
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ public_ip_list = "${aws_instance.tg.public_ip}"
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-1n-c6in/output.tf b/fdio.infra.terraform/terraform-aws-1n-c6in/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-c6in/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-1n-c6in/providers.tf b/fdio.infra.terraform/terraform-aws-1n-c6in/providers.tf
new file mode 100644
index 0000000000..2482ca2839
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-c6in/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = "http://10.30.51.24:8200"
+ skip_tls_verify = true
+ token = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-1n-c6in/topology-1n-c6in.tftpl b/fdio.infra.terraform/terraform-aws-1n-c6in/topology-1n-c6in.tftpl
new file mode 100644
index 0000000000..dc24577bbd
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-c6in/topology-1n-c6in.tftpl
@@ -0,0 +1,30 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/1_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 1-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # tg_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link1
+ model: Amazon-Nitro-200G \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-1n-c6in/variables.tf b/fdio.infra.terraform/terraform-aws-1n-c6in/variables.tf
new file mode 100644
index 0000000000..db0cfa89da
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-c6in/variables.tf
@@ -0,0 +1,120 @@
+variable "vault-name" {
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-central-1"
+}
+
+variable "resource_prefix" {
+ description = "Resources name prefix."
+ type = string
+ default = "csit-1n-c6in"
+}
+
+variable "testbed_name" {
+ description = "Testbed name."
+ type = string
+ default = "testbed1"
+}
+
+# Variables for Private Key
+variable "private_key_algorithm" {
+ description = "The name of the algorithm to use for the key."
+ type = string
+ default = "ED25519"
+}
+
+# Variables for Placement Group
+variable "placement_group_strategy" {
+ description = "The placement strategy. Can be cluster, partition or spread."
+ type = string
+ default = "cluster"
+}
+
+# Variables for Instance
+variable "tg_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-07430bfa17fd4e597"
+}
+
+variable "tg_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "tg_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "tg_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6in.4xlarge"
+}
+
+variable "tg_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.10"
+}
+
+variable "tg_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+# Variables for Network Interface
+variable "tg_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.254"
+}
+
+variable "tg_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.11"
+}
+
+variable "destination_cidr_block_tg_if1" {
+ description = "The destination CIDR block."
+ type = string
+ default = "10.0.0.0/16"
+}
+
+variable "destination_cidr_block_tg_if2" {
+ description = "The destination CIDR block."
+ type = string
+ default = "20.0.0.0/16"
+}
+
+# Variables for Null Resource
+variable "first_run_commands" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = list(string)
+ default = [
+ "sudo sed -i 's/^PasswordAuthentication/#PasswordAuthentication/' /etc/ssh/sshd_config",
+ "sudo systemctl restart sshd",
+ "sudo useradd --create-home -s /bin/bash provisionuser",
+ "echo 'provisionuser:Csit1234' | sudo chpasswd",
+ "echo 'provisionuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers",
+ "sudo useradd --create-home -s /bin/bash testuser",
+ "echo 'testuser:Csit1234' | sudo chpasswd",
+ "echo 'testuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers"
+ ]
+}
+
+# Variables for Null Resource
+variable "ansible_topology_path" {
+ description = "Ansible topology path."
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-aws-1n-c6in/versions.tf b/fdio.infra.terraform/terraform-aws-1n-c6in/versions.tf
new file mode 100644
index 0000000000..7e17bb4924
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-1n-c6in/versions.tf
@@ -0,0 +1,20 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ null = {
+ source = "hashicorp/null"
+ version = ">= 3.2.1"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = ">= 4.0.4"
+ }
+ vault = {
+ version = ">= 3.15.2"
+ }
+ }
+ required_version = ">= 1.4.2"
+}
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/hosts.tftpl b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/hosts.tftpl
new file mode 100644
index 0000000000..cb36dbb138
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/hosts.tftpl
@@ -0,0 +1,8 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip}
+ sut:
+ hosts:
+ ${dut1_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/main.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/main.tf
new file mode 100644
index 0000000000..a7abab1214
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/main.tf
@@ -0,0 +1,335 @@
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault-name}-path"
+ role = "${var.vault-name}-role"
+}
+
+locals {
+ ansible_python_executable = "/usr/bin/python3"
+ availability_zone = "eu-central-1a"
+ name = "csit-vpc"
+ environment = "csit-vpc-environment"
+ key_pair_key_name = "${var.resource_prefix}-${var.testbed_name}-pk"
+ placement_group_name = "${var.resource_prefix}-${var.testbed_name}-pg"
+ security_group_name = "${var.resource_prefix}-${var.testbed_name}-sg"
+ testbed_name = "testbed1"
+ topology_name = "2n-aws-c5n"
+ tg_name = "${var.resource_prefix}-${var.testbed_name}-tg"
+ sut1_name = "${var.resource_prefix}-${var.testbed_name}-sut1"
+}
+
+# Create VPC
+module "vpc" {
+ source = "../terraform-aws-vpc"
+ security_group_name = local.security_group_name
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ vpc_enable_dns_hostnames = false
+}
+
+# Create Subnet
+module "subnet_b" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 2)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_d" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.20.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 4)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+# Create Private Key
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
+}
+
+# Create Key Pair
+module "key_pair" {
+ source = "pmikus/key-pair/aws"
+ version = "5.7.0"
+
+ key_pair_key_name = local.key_pair_key_name
+ key_pair_public_key = module.private_key.public_key_openssh
+
+ key_pair_tags = {
+ "Environment" = local.environment
+ }
+}
+
+# Create Placement Group
+resource "aws_placement_group" "placement_group" {
+ name = local.placement_group_name
+ strategy = var.placement_group_strategy
+}
+
+# Create Instance
+resource "aws_instance" "tg" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.tg_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.tg_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.tg_instance_initiated_shutdown_behavior
+ instance_type = var.tg_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.tg_private_ip
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "1"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if1_private_ip
+ private_ips = [var.tg_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if2_private_ip
+ private_ips = [var.tg_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "tg_if1" {
+ id = aws_network_interface.tg_if1.id
+}
+
+data "aws_network_interface" "tg_if2" {
+ id = aws_network_interface.tg_if2.id
+}
+
+resource "aws_route" "route_tg_if1" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if1
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_route" "route_tg_if2" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if2
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_instance" "sut1" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut1_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut1_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut1_instance_initiated_shutdown_behavior
+ instance_type = var.sut1_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut1_private_ip
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.sut1
+ ]
+ private_ip = var.sut1_if1_private_ip
+ private_ips = [var.sut1_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.sut1
+ ]
+ private_ip = var.sut1_if2_private_ip
+ private_ips = [var.sut1_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut1_if1" {
+ id = aws_network_interface.sut1_if1.id
+}
+
+data "aws_network_interface" "sut1_if2" {
+ id = aws_network_interface.sut1_if2.id
+}
+
+resource "null_resource" "deploy_tg" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.tg.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut1" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut1.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1
+ ]
+
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ dut1_if1_mac = data.aws_network_interface.sut1_if1.mac_address
+ dut1_if2_mac = data.aws_network_interface.sut1_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ }
+ )
+ filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1
+ ]
+
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ }
+ )
+ filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/output.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/providers.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/providers.tf
new file mode 100644
index 0000000000..2482ca2839
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = "http://10.30.51.24:8200"
+ skip_tls_verify = true
+ token = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/topology-2n-aws-c5n.tftpl b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/topology-2n-aws-c5n.tftpl
new file mode 100644
index 0000000000..313b4b3d86
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/topology-2n-aws-c5n.tftpl
@@ -0,0 +1,51 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # tg_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-50G
+ DUT1:
+ type: DUT
+ host: ${dut1_public_ip}
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: "${dut1_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # dut1_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: "${dut1_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-50G \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf
new file mode 100644
index 0000000000..de113166e6
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf
@@ -0,0 +1,168 @@
+variable "vault-name" {
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-central-1"
+}
+
+variable "resource_prefix" {
+ description = "Resources name prefix."
+ type = string
+ default = "csit-2n-aws-c5n"
+}
+
+variable "testbed_name" {
+ description = "Testbed name."
+ type = string
+ default = "testbed1"
+}
+
+# Variables for Private Key
+variable "private_key_algorithm" {
+ description = "The name of the algorithm to use for the key."
+ type = string
+ default = "ED25519"
+}
+
+# Variables for Placement Group
+variable "placement_group_strategy" {
+ description = "The placement strategy. Can be cluster, partition or spread."
+ type = string
+ default = "cluster"
+}
+
+# Variables for Instance
+variable "tg_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-07430bfa17fd4e597"
+}
+
+variable "tg_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "tg_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "tg_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c5n.4xlarge"
+}
+
+variable "tg_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.10"
+}
+
+variable "tg_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut1_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-0a890555652963ec2"
+}
+
+variable "sut1_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut1_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut1_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c5n.4xlarge"
+}
+
+variable "sut1_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.11"
+}
+
+variable "sut1_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+# Variables for Network Interface
+variable "tg_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.254"
+}
+
+variable "tg_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.254"
+}
+
+variable "destination_cidr_block_tg_if1" {
+ description = "The destination CIDR block."
+ type = string
+ default = "10.0.0.0/24"
+}
+
+variable "destination_cidr_block_tg_if2" {
+ description = "The destination CIDR block."
+ type = string
+ default = "20.0.0.0/24"
+}
+
+variable "sut1_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.11"
+}
+
+variable "sut1_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.11"
+}
+
+# Variables for Null Resource
+variable "first_run_commands" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = list(string)
+ default = [
+ "sudo sed -i 's/^PasswordAuthentication/#PasswordAuthentication/' /etc/ssh/sshd_config",
+ "sudo systemctl restart sshd",
+ "sudo useradd --create-home -s /bin/bash provisionuser",
+ "echo 'provisionuser:Csit1234' | sudo chpasswd",
+ "echo 'provisionuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers",
+ "sudo useradd --create-home -s /bin/bash testuser",
+ "echo 'testuser:Csit1234' | sudo chpasswd",
+ "echo 'testuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers"
+ ]
+}
+
+# Variables for Null Resource
+variable "ansible_topology_path" {
+ description = "Ansible topology path."
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/versions.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/versions.tf
new file mode 100644
index 0000000000..589699691e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/versions.tf
@@ -0,0 +1,20 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ null = {
+ source = "hashicorp/null"
+ version = ">= 3.2.1"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = ">= 4.0.4"
+ }
+ vault = {
+ version = ">= 3.15.2"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6gn/hosts.tftpl b/fdio.infra.terraform/terraform-aws-2n-c6gn/hosts.tftpl
new file mode 100644
index 0000000000..cb36dbb138
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6gn/hosts.tftpl
@@ -0,0 +1,8 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip}
+ sut:
+ hosts:
+ ${dut1_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6gn/main.tf b/fdio.infra.terraform/terraform-aws-2n-c6gn/main.tf
new file mode 100644
index 0000000000..b3da06ba76
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6gn/main.tf
@@ -0,0 +1,335 @@
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault-name}-path"
+ role = "${var.vault-name}-role"
+}
+
+locals {
+ ansible_python_executable = "/usr/bin/python3"
+ availability_zone = "eu-central-1a"
+ name = "csit-vpc"
+ environment = "csit-vpc-environment"
+ key_pair_key_name = "${var.resource_prefix}-${var.testbed_name}-pk"
+ placement_group_name = "${var.resource_prefix}-${var.testbed_name}-pg"
+ security_group_name = "${var.resource_prefix}-${var.testbed_name}-sg"
+ testbed_name = "testbed1"
+ topology_name = "2n-c6gn"
+ tg_name = "${var.resource_prefix}-${var.testbed_name}-tg"
+ sut1_name = "${var.resource_prefix}-${var.testbed_name}-sut1"
+}
+
+# Create VPC
+module "vpc" {
+ source = "../terraform-aws-vpc"
+ security_group_name = local.security_group_name
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ vpc_enable_dns_hostnames = false
+}
+
+# Create Subnet
+module "subnet_b" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 2)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_d" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.20.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 4)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+# Create Private Key
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
+}
+
+# Create Key Pair
+module "key_pair" {
+ source = "pmikus/key-pair/aws"
+ version = "5.7.0"
+
+ key_pair_key_name = local.key_pair_key_name
+ key_pair_public_key = module.private_key.public_key_openssh
+
+ key_pair_tags = {
+ "Environment" = local.environment
+ }
+}
+
+# Create Placement Group
+resource "aws_placement_group" "placement_group" {
+ name = local.placement_group_name
+ strategy = var.placement_group_strategy
+}
+
+# Create Instance
+resource "aws_instance" "tg" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.tg_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.tg_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.tg_instance_initiated_shutdown_behavior
+ instance_type = var.tg_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.tg_private_ip
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "1"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if1_private_ip
+ private_ips = [var.tg_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if2_private_ip
+ private_ips = [var.tg_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "tg_if1" {
+ id = aws_network_interface.tg_if1.id
+}
+
+data "aws_network_interface" "tg_if2" {
+ id = aws_network_interface.tg_if2.id
+}
+
+resource "aws_route" "route_tg_if1" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if1
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_route" "route_tg_if2" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if2
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_instance" "sut1" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut1_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut1_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut1_instance_initiated_shutdown_behavior
+ instance_type = var.sut1_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut1_private_ip
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.sut1
+ ]
+ private_ip = var.sut1_if1_private_ip
+ private_ips = [var.sut1_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.sut1
+ ]
+ private_ip = var.sut1_if2_private_ip
+ private_ips = [var.sut1_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut1_if1" {
+ id = aws_network_interface.sut1_if1.id
+}
+
+data "aws_network_interface" "sut1_if2" {
+ id = aws_network_interface.sut1_if2.id
+}
+
+resource "null_resource" "deploy_tg" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.tg.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut1" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut1.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1
+ ]
+
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ dut1_if1_mac = data.aws_network_interface.sut1_if1.mac_address
+ dut1_if2_mac = data.aws_network_interface.sut1_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ }
+ )
+ filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1
+ ]
+
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ }
+ )
+ filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6gn/output.tf b/fdio.infra.terraform/terraform-aws-2n-c6gn/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6gn/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6gn/providers.tf b/fdio.infra.terraform/terraform-aws-2n-c6gn/providers.tf
new file mode 100644
index 0000000000..d0e7490d38
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6gn/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = "http://vault.service.consul:8200"
+ skip_tls_verify = true
+ token = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6gn/topology-2n-c6gn.tftpl b/fdio.infra.terraform/terraform-aws-2n-c6gn/topology-2n-c6gn.tftpl
new file mode 100644
index 0000000000..a0fa5fc191
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6gn/topology-2n-c6gn.tftpl
@@ -0,0 +1,51 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # tg_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
+ DUT1:
+ type: DUT
+ host: "${dut1_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: "${dut1_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # dut1_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: "${dut1_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6gn/variables.tf b/fdio.infra.terraform/terraform-aws-2n-c6gn/variables.tf
new file mode 100644
index 0000000000..fec833126d
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6gn/variables.tf
@@ -0,0 +1,180 @@
+variable "vault-name" {
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-central-1"
+}
+
+variable "resource_prefix" {
+ description = "Resources name prefix."
+ type = string
+ default = "csit-2n-c6gn"
+}
+
+variable "testbed_name" {
+ description = "Testbed name."
+ type = string
+ default = "testbed1"
+}
+
+# Variables for Private Key
+variable "private_key_algorithm" {
+ description = "The name of the algorithm to use for the key."
+ type = string
+ default = "RSA"
+}
+
+variable "private_key_ecdsa_curve" {
+ description = "When algorithm is ECDSA, the name of the elliptic curve to use."
+ type = string
+ default = "P521"
+}
+
+variable "private_key_rsa_bits" {
+ description = "When algorithm is RSA, the size of the generated RSA key in bits."
+ type = number
+ default = 4096
+}
+
+# Variables for Placement Group
+variable "placement_group_strategy" {
+ description = "The placement strategy. Can be cluster, partition or spread."
+ type = string
+ default = "cluster"
+}
+
+# Variables for Instance
+variable "tg_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-07430bfa17fd4e597"
+}
+
+variable "tg_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "tg_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "tg_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6in.4xlarge"
+}
+
+variable "tg_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.10"
+}
+
+variable "tg_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut1_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-0cebabdc14ee56909"
+}
+
+variable "sut1_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut1_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut1_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6gn.4xlarge"
+}
+
+variable "sut1_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.11"
+}
+
+variable "sut1_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+# Variables for Network Interface
+variable "tg_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.254"
+}
+
+variable "tg_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.254"
+}
+
+variable "destination_cidr_block_tg_if1" {
+ description = "The destination CIDR block."
+ type = string
+ default = "10.0.0.0/24"
+}
+
+variable "destination_cidr_block_tg_if2" {
+ description = "The destination CIDR block."
+ type = string
+ default = "20.0.0.0/24"
+}
+
+variable "sut1_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.11"
+}
+
+variable "sut1_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.11"
+}
+
+# Variables for Null Resource
+variable "first_run_commands" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = list(string)
+ default = [
+ "sudo sed -i 's/^PasswordAuthentication/#PasswordAuthentication/' /etc/ssh/sshd_config",
+ "sudo systemctl restart sshd",
+ "sudo useradd --create-home -s /bin/bash provisionuser",
+ "echo 'provisionuser:Csit1234' | sudo chpasswd",
+ "echo 'provisionuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers",
+ "sudo useradd --create-home -s /bin/bash testuser",
+ "echo 'testuser:Csit1234' | sudo chpasswd",
+ "echo 'testuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers"
+ ]
+}
+
+# Variables for Null Resource
+variable "ansible_topology_path" {
+ description = "Ansible topology path."
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6gn/versions.tf b/fdio.infra.terraform/terraform-aws-2n-c6gn/versions.tf
new file mode 100644
index 0000000000..589699691e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6gn/versions.tf
@@ -0,0 +1,20 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ null = {
+ source = "hashicorp/null"
+ version = ">= 3.2.1"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = ">= 4.0.4"
+ }
+ vault = {
+ version = ">= 3.15.2"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6in/hosts.tftpl b/fdio.infra.terraform/terraform-aws-2n-c6in/hosts.tftpl
new file mode 100644
index 0000000000..cb36dbb138
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6in/hosts.tftpl
@@ -0,0 +1,8 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip}
+ sut:
+ hosts:
+ ${dut1_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6in/main.tf b/fdio.infra.terraform/terraform-aws-2n-c6in/main.tf
new file mode 100644
index 0000000000..5edeb46ba2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6in/main.tf
@@ -0,0 +1,335 @@
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault-name}-path"
+ role = "${var.vault-name}-role"
+}
+
+locals {
+ ansible_python_executable = "/usr/bin/python3"
+ availability_zone = "eu-central-1b"
+ name = "csit-vpc"
+ environment = "csit-vpc-environment"
+ key_pair_key_name = "${var.resource_prefix}-${var.testbed_name}-pk"
+ placement_group_name = "${var.resource_prefix}-${var.testbed_name}-pg"
+ security_group_name = "${var.resource_prefix}-${var.testbed_name}-sg"
+ testbed_name = "testbed1"
+ topology_name = "2n-c6in"
+ tg_name = "${var.resource_prefix}-${var.testbed_name}-tg"
+ sut1_name = "${var.resource_prefix}-${var.testbed_name}-sut1"
+}
+
+# Create VPC
+module "vpc" {
+ source = "../terraform-aws-vpc"
+ security_group_name = local.security_group_name
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ vpc_enable_dns_hostnames = false
+}
+
+# Create Subnet
+module "subnet_b" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 2)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_d" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.20.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 4)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+# Create Private Key
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
+}
+
+# Create Key Pair
+module "key_pair" {
+ source = "pmikus/key-pair/aws"
+ version = "5.7.0"
+
+ key_pair_key_name = local.key_pair_key_name
+ key_pair_public_key = module.private_key.public_key_openssh
+
+ key_pair_tags = {
+ "Environment" = local.environment
+ }
+}
+
+# Create Placement Group
+resource "aws_placement_group" "placement_group" {
+ name = local.placement_group_name
+ strategy = var.placement_group_strategy
+}
+
+# Create Instance
+resource "aws_instance" "tg" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.tg_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.tg_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.tg_instance_initiated_shutdown_behavior
+ instance_type = var.tg_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.tg_private_ip
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "1"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if1_private_ip
+ private_ips = [var.tg_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if2_private_ip
+ private_ips = [var.tg_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "tg_if1" {
+ id = aws_network_interface.tg_if1.id
+}
+
+data "aws_network_interface" "tg_if2" {
+ id = aws_network_interface.tg_if2.id
+}
+
+resource "aws_route" "route_tg_if1" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if1
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_route" "route_tg_if2" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if2
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_instance" "sut1" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut1_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut1_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut1_instance_initiated_shutdown_behavior
+ instance_type = var.sut1_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut1_private_ip
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.sut1
+ ]
+ private_ip = var.sut1_if1_private_ip
+ private_ips = [var.sut1_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.sut1
+ ]
+ private_ip = var.sut1_if2_private_ip
+ private_ips = [var.sut1_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut1_if1" {
+ id = aws_network_interface.sut1_if1.id
+}
+
+data "aws_network_interface" "sut1_if2" {
+ id = aws_network_interface.sut1_if2.id
+}
+
+resource "null_resource" "deploy_tg" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.tg.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut1" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut1.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1
+ ]
+
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ dut1_if1_mac = data.aws_network_interface.sut1_if1.mac_address
+ dut1_if2_mac = data.aws_network_interface.sut1_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ }
+ )
+ filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1
+ ]
+
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ }
+ )
+ filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6in/output.tf b/fdio.infra.terraform/terraform-aws-2n-c6in/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6in/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6in/providers.tf b/fdio.infra.terraform/terraform-aws-2n-c6in/providers.tf
new file mode 100644
index 0000000000..d0e7490d38
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6in/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = "http://vault.service.consul:8200"
+ skip_tls_verify = true
+ token = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6in/topology-2n-c6in.tftpl b/fdio.infra.terraform/terraform-aws-2n-c6in/topology-2n-c6in.tftpl
new file mode 100644
index 0000000000..d012d335b6
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6in/topology-2n-c6in.tftpl
@@ -0,0 +1,51 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # tg_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-200G
+ DUT1:
+ type: DUT
+ host: ${dut1_public_ip}
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: "${dut1_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # dut1_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: "${dut1_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-200G \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6in/variables.tf b/fdio.infra.terraform/terraform-aws-2n-c6in/variables.tf
new file mode 100644
index 0000000000..51af9587d9
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6in/variables.tf
@@ -0,0 +1,180 @@
+variable "vault-name" {
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-central-1"
+}
+
+variable "resource_prefix" {
+ description = "Resources name prefix."
+ type = string
+ default = "csit-2n-c6in"
+}
+
+variable "testbed_name" {
+ description = "Testbed name."
+ type = string
+ default = "testbed1"
+}
+
+# Variables for Private Key
+variable "private_key_algorithm" {
+ description = "The name of the algorithm to use for the key."
+ type = string
+ default = "RSA"
+}
+
+variable "private_key_ecdsa_curve" {
+ description = "When algorithm is ECDSA, the name of the elliptic curve to use."
+ type = string
+ default = "P521"
+}
+
+variable "private_key_rsa_bits" {
+ description = "When algorithm is RSA, the size of the generated RSA key in bits."
+ type = number
+ default = 4096
+}
+
+# Variables for Placement Group
+variable "placement_group_strategy" {
+ description = "The placement strategy. Can be cluster, partition or spread."
+ type = string
+ default = "cluster"
+}
+
+# Variables for Instance
+variable "tg_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-07430bfa17fd4e597"
+}
+
+variable "tg_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "tg_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "tg_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6in.4xlarge"
+}
+
+variable "tg_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.10"
+}
+
+variable "tg_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut1_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-0a890555652963ec2"
+}
+
+variable "sut1_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut1_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut1_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6in.4xlarge"
+}
+
+variable "sut1_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.11"
+}
+
+variable "sut1_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+# Variables for Network Interface
+variable "tg_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.254"
+}
+
+variable "tg_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.254"
+}
+
+variable "destination_cidr_block_tg_if1" {
+ description = "The destination CIDR block."
+ type = string
+ default = "10.0.0.0/24"
+}
+
+variable "destination_cidr_block_tg_if2" {
+ description = "The destination CIDR block."
+ type = string
+ default = "20.0.0.0/24"
+}
+
+variable "sut1_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.11"
+}
+
+variable "sut1_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.11"
+}
+
+# Variables for Null Resource
+variable "first_run_commands" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = list(string)
+ default = [
+ "sudo sed -i 's/^PasswordAuthentication/#PasswordAuthentication/' /etc/ssh/sshd_config",
+ "sudo systemctl restart sshd",
+ "sudo useradd --create-home -s /bin/bash provisionuser",
+ "echo 'provisionuser:Csit1234' | sudo chpasswd",
+ "echo 'provisionuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers",
+ "sudo useradd --create-home -s /bin/bash testuser",
+ "echo 'testuser:Csit1234' | sudo chpasswd",
+ "echo 'testuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers"
+ ]
+}
+
+# Variables for Null Resource
+variable "ansible_topology_path" {
+ description = "Ansible topology path."
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-aws-2n-c6in/versions.tf b/fdio.infra.terraform/terraform-aws-2n-c6in/versions.tf
new file mode 100644
index 0000000000..589699691e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c6in/versions.tf
@@ -0,0 +1,20 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ null = {
+ source = "hashicorp/null"
+ version = ">= 3.2.1"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = ">= 4.0.4"
+ }
+ vault = {
+ version = ">= 3.15.2"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c7gn/hosts.tftpl b/fdio.infra.terraform/terraform-aws-2n-c7gn/hosts.tftpl
new file mode 100644
index 0000000000..cb36dbb138
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c7gn/hosts.tftpl
@@ -0,0 +1,8 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip}
+ sut:
+ hosts:
+ ${dut1_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c7gn/main.tf b/fdio.infra.terraform/terraform-aws-2n-c7gn/main.tf
new file mode 100644
index 0000000000..5d9899773b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c7gn/main.tf
@@ -0,0 +1,335 @@
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault-name}-path"
+ role = "${var.vault-name}-role"
+}
+
+locals {
+ ansible_python_executable = "/usr/bin/python3"
+ availability_zone = "${var.region}a"
+ name = "csit-vpc"
+ environment = "csit-vpc-environment"
+ key_pair_key_name = "${var.resource_prefix}-${var.testbed_name}-pk"
+ placement_group_name = "${var.resource_prefix}-${var.testbed_name}-pg"
+ security_group_name = "${var.resource_prefix}-${var.testbed_name}-sg"
+ testbed_name = "testbed1"
+ topology_name = "2n-c7gn"
+ tg_name = "${var.resource_prefix}-${var.testbed_name}-tg"
+ sut1_name = "${var.resource_prefix}-${var.testbed_name}-sut1"
+}
+
+# Create VPC
+module "vpc" {
+ source = "../terraform-aws-vpc"
+ security_group_name = local.security_group_name
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ vpc_enable_dns_hostnames = false
+}
+
+# Create Subnet
+module "subnet_b" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 2)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_d" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.20.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 4)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+# Create Private Key
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
+}
+
+# Create Key Pair
+module "key_pair" {
+ source = "pmikus/key-pair/aws"
+ version = "5.7.0"
+
+ key_pair_key_name = local.key_pair_key_name
+ key_pair_public_key = module.private_key.public_key_openssh
+
+ key_pair_tags = {
+ "Environment" = local.environment
+ }
+}
+
+# Create Placement Group
+resource "aws_placement_group" "placement_group" {
+ name = local.placement_group_name
+ strategy = var.placement_group_strategy
+}
+
+# Create Instance
+resource "aws_instance" "tg" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.tg_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.tg_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.tg_instance_initiated_shutdown_behavior
+ instance_type = var.tg_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.tg_private_ip
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "1"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if1_private_ip
+ private_ips = [var.tg_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if2_private_ip
+ private_ips = [var.tg_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "tg_if1" {
+ id = aws_network_interface.tg_if1.id
+}
+
+data "aws_network_interface" "tg_if2" {
+ id = aws_network_interface.tg_if2.id
+}
+
+resource "aws_route" "route_tg_if1" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if1
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_route" "route_tg_if2" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if2
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_instance" "sut1" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut1_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut1_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut1_instance_initiated_shutdown_behavior
+ instance_type = var.sut1_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut1_private_ip
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.sut1
+ ]
+ private_ip = var.sut1_if1_private_ip
+ private_ips = [var.sut1_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.sut1
+ ]
+ private_ip = var.sut1_if2_private_ip
+ private_ips = [var.sut1_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut1_if1" {
+ id = aws_network_interface.sut1_if1.id
+}
+
+data "aws_network_interface" "sut1_if2" {
+ id = aws_network_interface.sut1_if2.id
+}
+
+resource "null_resource" "deploy_tg" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.tg.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut1" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut1.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1
+ ]
+
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ dut1_if1_mac = data.aws_network_interface.sut1_if1.mac_address
+ dut1_if2_mac = data.aws_network_interface.sut1_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ }
+ )
+ filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1
+ ]
+
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ }
+ )
+ filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c7gn/output.tf b/fdio.infra.terraform/terraform-aws-2n-c7gn/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c7gn/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-2n-c7gn/providers.tf b/fdio.infra.terraform/terraform-aws-2n-c7gn/providers.tf
new file mode 100644
index 0000000000..d0e7490d38
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c7gn/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = "http://vault.service.consul:8200"
+ skip_tls_verify = true
+ token = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c7gn/topology-2n-c7gn.tftpl b/fdio.infra.terraform/terraform-aws-2n-c7gn/topology-2n-c7gn.tftpl
new file mode 100644
index 0000000000..a0fa5fc191
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c7gn/topology-2n-c7gn.tftpl
@@ -0,0 +1,51 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # tg_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
+ DUT1:
+ type: DUT
+ host: "${dut1_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: "${dut1_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # dut1_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: "${dut1_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-c7gn/variables.tf b/fdio.infra.terraform/terraform-aws-2n-c7gn/variables.tf
new file mode 100644
index 0000000000..2a80b86936
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c7gn/variables.tf
@@ -0,0 +1,168 @@
+variable "vault-name" {
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-west-1"
+}
+
+variable "resource_prefix" {
+ description = "Resources name prefix."
+ type = string
+ default = "csit-2n-c7gn"
+}
+
+variable "testbed_name" {
+ description = "Testbed name."
+ type = string
+ default = "testbed1"
+}
+
+# Variables for Private Key
+variable "private_key_algorithm" {
+ description = "The name of the algorithm to use for the key."
+ type = string
+ default = "ED25519"
+}
+
+# Variables for Placement Group
+variable "placement_group_strategy" {
+ description = "The placement strategy. Can be cluster, partition or spread."
+ type = string
+ default = "cluster"
+}
+
+# Variables for Instance
+variable "tg_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-0b5aa26a6e4192705"
+}
+
+variable "tg_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "tg_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "tg_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6in.4xlarge"
+}
+
+variable "tg_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.10"
+}
+
+variable "tg_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut1_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-08930f71bd0be1085"
+}
+
+variable "sut1_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut1_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut1_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c7gn.4xlarge"
+}
+
+variable "sut1_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.11"
+}
+
+variable "sut1_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+# Variables for Network Interface
+variable "tg_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.254"
+}
+
+variable "tg_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.254"
+}
+
+variable "destination_cidr_block_tg_if1" {
+ description = "The destination CIDR block."
+ type = string
+ default = "10.0.0.0/24"
+}
+
+variable "destination_cidr_block_tg_if2" {
+ description = "The destination CIDR block."
+ type = string
+ default = "20.0.0.0/24"
+}
+
+variable "sut1_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.11"
+}
+
+variable "sut1_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.11"
+}
+
+# Variables for Null Resource
+variable "first_run_commands" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = list(string)
+ default = [
+ "sudo sed -i 's/^PasswordAuthentication/#PasswordAuthentication/' /etc/ssh/sshd_config",
+ "sudo systemctl restart sshd",
+ "sudo useradd --create-home -s /bin/bash provisionuser",
+ "echo 'provisionuser:Csit1234' | sudo chpasswd",
+ "echo 'provisionuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers",
+ "sudo useradd --create-home -s /bin/bash testuser",
+ "echo 'testuser:Csit1234' | sudo chpasswd",
+ "echo 'testuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers"
+ ]
+}
+
+# Variables for Null Resource
+variable "ansible_topology_path" {
+ description = "Ansible topology path."
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-aws-2n-c7gn/versions.tf b/fdio.infra.terraform/terraform-aws-2n-c7gn/versions.tf
new file mode 100644
index 0000000000..589699691e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-2n-c7gn/versions.tf
@@ -0,0 +1,20 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ null = {
+ source = "hashicorp/null"
+ version = ">= 3.2.1"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = ">= 4.0.4"
+ }
+ vault = {
+ version = ">= 3.15.2"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/hosts.tftpl b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/hosts.tftpl
new file mode 100644
index 0000000000..e88c8ba510
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/hosts.tftpl
@@ -0,0 +1,9 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip}
+ sut:
+ hosts:
+ ${dut1_public_ip}
+ ${dut2_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/main.tf b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/main.tf
new file mode 100644
index 0000000000..c95c8a6588
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/main.tf
@@ -0,0 +1,457 @@
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault-name}-path"
+ role = "${var.vault-name}-role"
+}
+
+locals {
+ ansible_python_executable = "/usr/bin/python3"
+ availability_zone = "eu-central-1a"
+ name = "csit-vpc"
+ environment = "csit-vpc-environment"
+ key_pair_key_name = "${var.resource_prefix}-${var.testbed_name}-pk"
+ placement_group_name = "${var.resource_prefix}-${var.testbed_name}-pg"
+ security_group_name = "${var.resource_prefix}-${var.testbed_name}-sg"
+ testbed_name = "testbed1"
+ topology_name = "3n-aws-c5n"
+ tg_name = "${var.resource_prefix}-${var.testbed_name}-tg"
+ sut1_name = "${var.resource_prefix}-${var.testbed_name}-sut1"
+ sut2_name = "${var.resource_prefix}-${var.testbed_name}-sut2"
+}
+
+# Create VPC
+module "vpc" {
+ source = "../terraform-aws-vpc"
+ security_group_name = local.security_group_name
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+}
+
+# Create Subnet
+module "subnet_b" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 2)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_c" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "200.0.0.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 3)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_d" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.20.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 4)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+# Create Private Key
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
+}
+
+# Create Key Pair
+module "key_pair" {
+ source = "pmikus/key-pair/aws"
+ version = "5.7.0"
+
+ key_pair_key_name = local.key_pair_key_name
+ key_pair_public_key = module.private_key.public_key_openssh
+
+ key_pair_tags = {
+ "Environment" = local.environment
+ }
+}
+
+# Create Placement Group
+resource "aws_placement_group" "placement_group" {
+ name = local.placement_group_name
+ strategy = var.placement_group_strategy
+}
+
+# Create Instance
+resource "aws_instance" "tg" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.tg_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.tg_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.tg_instance_initiated_shutdown_behavior
+ instance_type = var.tg_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.tg_private_ip
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "1"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if1_private_ip
+ private_ips = [var.tg_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.tg
+ ]
+ private_ips = [var.tg_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "tg_if1" {
+ id = aws_network_interface.tg_if1.id
+}
+
+data "aws_network_interface" "tg_if2" {
+ id = aws_network_interface.tg_if2.id
+}
+
+resource "aws_route" "route_tg_if1" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if1
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_route" "route_tg_if2" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if2
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_instance" "sut1" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut1_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut1_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut1_instance_initiated_shutdown_behavior
+ instance_type = var.sut1_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut1_private_ip
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.sut1
+ ]
+ private_ips = [var.sut1_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if2" {
+ depends_on = [
+ module.subnet_c,
+ aws_instance.sut1
+ ]
+ private_ips = [var.sut1_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_c.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut1_if1" {
+ id = aws_network_interface.sut1_if1.id
+}
+
+data "aws_network_interface" "sut1_if2" {
+ id = aws_network_interface.sut1_if2.id
+}
+
+resource "aws_instance" "sut2" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut2_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut2_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut2_instance_initiated_shutdown_behavior
+ instance_type = var.sut2_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut2_private_ip
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut2_if1" {
+ depends_on = [
+ module.subnet_c,
+ aws_instance.sut2
+ ]
+ private_ips = [var.sut2_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.subnet_c.subnet_id
+
+ attachment {
+ instance = aws_instance.sut2.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut2_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.sut2
+ ]
+ private_ips = [var.sut2_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.sut2.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut2_if1" {
+ id = aws_network_interface.sut2_if1.id
+}
+
+data "aws_network_interface" "sut2_if2" {
+ id = aws_network_interface.sut2_if2.id
+}
+
+resource "null_resource" "deploy_tg" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.tg.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut1" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut1.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut2" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut2.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1,
+ aws_instance.sut2
+ ]
+
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ dut1_if1_mac = data.aws_network_interface.sut1_if1.mac_address
+ dut1_if2_mac = data.aws_network_interface.sut1_if2.mac_address
+ dut2_if1_mac = data.aws_network_interface.sut2_if1.mac_address
+ dut2_if2_mac = data.aws_network_interface.sut2_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ dut2_public_ip = aws_instance.sut2.public_ip
+ }
+ )
+ filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1,
+ aws_instance.sut2
+ ]
+
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ dut2_public_ip = aws_instance.sut2.public_ip
+ }
+ )
+ filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/output.tf b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/providers.tf b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/providers.tf
new file mode 100644
index 0000000000..2482ca2839
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = "http://10.30.51.24:8200"
+ skip_tls_verify = true
+ token = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/topology-3n-aws-c5n.tftpl b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/topology-3n-aws-c5n.tftpl
new file mode 100644
index 0000000000..9886b56a8d
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/topology-3n-aws-c5n.tftpl
@@ -0,0 +1,72 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # tg_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-50G
+ DUT1:
+ type: DUT
+ host: ${dut1_public_ip}
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: "${dut1_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-50G
+ port2:
+ # dut1_instance/p2 - 50GE port2 on ENA NIC.
+ mac_address: "${dut1_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link21
+ model: Amazon-Nitro-50G
+ DUT2:
+ type: DUT
+ host: ${dut2_public_ip}
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut2_instance/p1 - 50GE port1 on ENA NIC.
+ mac_address: "${dut2_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link21
+ model: Amazon-Nitro-50G
+ port2:
+ # dut2_instance/p2 - 50GE port1 on ENA NIC.
+ mac_address: "${dut2_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-50G \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/variables.tf b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/variables.tf
new file mode 100644
index 0000000000..d64dd5b241
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/variables.tf
@@ -0,0 +1,216 @@
+variable "vault-name" {
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-central-1"
+}
+
+variable "resource_prefix" {
+ description = "Resources name prefix."
+ type = string
+ default = "csit-3n-aws-c5n"
+}
+
+variable "testbed_name" {
+ description = "Testbed name."
+ type = string
+ default = "testbed1"
+}
+
+# Variables for Private Key
+variable "private_key_algorithm" {
+ description = "The name of the algorithm to use for the key."
+ type = string
+ default = "ED25519"
+}
+
+# Variables for Placement Group
+variable "placement_group_strategy" {
+ description = "The placement strategy. Can be cluster, partition or spread."
+ type = string
+ default = "cluster"
+}
+
+# Variables for Instance
+variable "tg_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-07430bfa17fd4e597"
+}
+
+variable "tg_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "tg_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "tg_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c5n.4xlarge"
+}
+
+variable "tg_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.10"
+}
+
+variable "tg_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut1_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-0a890555652963ec2"
+}
+
+variable "sut1_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut1_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut1_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c5n.4xlarge"
+}
+
+variable "sut1_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.11"
+}
+
+variable "sut1_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut2_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-07898402cb1fd6561"
+}
+
+variable "sut2_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut2_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut2_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c5n.4xlarge"
+}
+
+variable "sut2_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.12"
+}
+
+variable "sut2_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+# Variables for Network Interface
+variable "tg_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.254"
+}
+
+variable "tg_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.254"
+}
+
+variable "destination_cidr_block_tg_if1" {
+ description = "The destination CIDR block."
+ type = string
+ default = "10.0.0.0/24"
+}
+
+variable "destination_cidr_block_tg_if2" {
+ description = "The destination CIDR block."
+ type = string
+ default = "20.0.0.0/24"
+}
+
+variable "sut1_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.11"
+}
+
+variable "sut1_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "200.0.0.101"
+}
+
+variable "sut2_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "200.0.0.102"
+}
+
+variable "sut2_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.11"
+}
+
+# Variables for Null Resource
+variable "first_run_commands" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = list(string)
+ default = [
+ "sudo sed -i 's/^PasswordAuthentication/#PasswordAuthentication/' /etc/ssh/sshd_config",
+ "sudo systemctl restart sshd",
+ "sudo useradd --create-home -s /bin/bash provisionuser",
+ "echo 'provisionuser:Csit1234' | sudo chpasswd",
+ "echo 'provisionuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers",
+ "sudo useradd --create-home -s /bin/bash testuser",
+ "echo 'testuser:Csit1234' | sudo chpasswd",
+ "echo 'testuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers"
+ ]
+}
+
+# Variables for Null Resource
+variable "ansible_topology_path" {
+ description = "Ansible topology path."
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/versions.tf b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/versions.tf
new file mode 100644
index 0000000000..589699691e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/versions.tf
@@ -0,0 +1,20 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ null = {
+ source = "hashicorp/null"
+ version = ">= 3.2.1"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = ">= 4.0.4"
+ }
+ vault = {
+ version = ">= 3.15.2"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6gn/hosts.tftpl b/fdio.infra.terraform/terraform-aws-3n-c6gn/hosts.tftpl
new file mode 100644
index 0000000000..e88c8ba510
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6gn/hosts.tftpl
@@ -0,0 +1,9 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip}
+ sut:
+ hosts:
+ ${dut1_public_ip}
+ ${dut2_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6gn/main.tf b/fdio.infra.terraform/terraform-aws-3n-c6gn/main.tf
new file mode 100644
index 0000000000..dc0ad6a210
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6gn/main.tf
@@ -0,0 +1,457 @@
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault-name}-path"
+ role = "${var.vault-name}-role"
+}
+
+locals {
+ ansible_python_executable = "/usr/bin/python3"
+ availability_zone = "eu-central-1a"
+ name = "csit-vpc"
+ environment = "csit-vpc-environment"
+ key_pair_key_name = "${var.resource_prefix}-${var.testbed_name}-pk"
+ placement_group_name = "${var.resource_prefix}-${var.testbed_name}-pg"
+ security_group_name = "${var.resource_prefix}-${var.testbed_name}-sg"
+ testbed_name = "testbed1"
+ topology_name = "3n-c6gn"
+ tg_name = "${var.resource_prefix}-${var.testbed_name}-tg"
+ sut1_name = "${var.resource_prefix}-${var.testbed_name}-sut1"
+ sut2_name = "${var.resource_prefix}-${var.testbed_name}-sut2"
+}
+
+# Create VPC
+module "vpc" {
+ source = "../terraform-aws-vpc"
+ security_group_name = local.security_group_name
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+}
+
+# Create Subnet
+module "subnet_b" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 2)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_c" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "200.0.0.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 3)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_d" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.20.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 4)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+# Create Private Key
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
+}
+
+# Create Key Pair
+module "key_pair" {
+ source = "pmikus/key-pair/aws"
+ version = "5.7.0"
+
+ key_pair_key_name = local.key_pair_key_name
+ key_pair_public_key = module.private_key.public_key_openssh
+
+ key_pair_tags = {
+ "Environment" = local.environment
+ }
+}
+
+# Create Placement Group
+resource "aws_placement_group" "placement_group" {
+ name = local.placement_group_name
+ strategy = var.placement_group_strategy
+}
+
+# Create Instance
+resource "aws_instance" "tg" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.tg_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.tg_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.tg_instance_initiated_shutdown_behavior
+ instance_type = var.tg_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.tg_private_ip
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "1"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if1_private_ip
+ private_ips = [var.tg_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.tg
+ ]
+ private_ips = [var.tg_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "tg_if1" {
+ id = aws_network_interface.tg_if1.id
+}
+
+data "aws_network_interface" "tg_if2" {
+ id = aws_network_interface.tg_if2.id
+}
+
+resource "aws_route" "route_tg_if1" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if1
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_route" "route_tg_if2" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if2
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_instance" "sut1" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut1_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut1_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut1_instance_initiated_shutdown_behavior
+ instance_type = var.sut1_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut1_private_ip
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.sut1
+ ]
+ private_ips = [var.sut1_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if2" {
+ depends_on = [
+ module.subnet_c,
+ aws_instance.sut1
+ ]
+ private_ips = [var.sut1_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_c.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut1_if1" {
+ id = aws_network_interface.sut1_if1.id
+}
+
+data "aws_network_interface" "sut1_if2" {
+ id = aws_network_interface.sut1_if2.id
+}
+
+resource "aws_instance" "sut2" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut2_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut2_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut2_instance_initiated_shutdown_behavior
+ instance_type = var.sut2_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut2_private_ip
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut2_if1" {
+ depends_on = [
+ module.subnet_c,
+ aws_instance.sut2
+ ]
+ private_ips = [var.sut2_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.subnet_c.subnet_id
+
+ attachment {
+ instance = aws_instance.sut2.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut2_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.sut2
+ ]
+ private_ips = [var.sut2_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.sut2.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut2_if1" {
+ id = aws_network_interface.sut2_if1.id
+}
+
+data "aws_network_interface" "sut2_if2" {
+ id = aws_network_interface.sut2_if2.id
+}
+
+resource "null_resource" "deploy_tg" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.tg.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut1" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut1.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut2" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut2.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1,
+ aws_instance.sut2
+ ]
+
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ dut1_if1_mac = data.aws_network_interface.sut1_if1.mac_address
+ dut1_if2_mac = data.aws_network_interface.sut1_if2.mac_address
+ dut2_if1_mac = data.aws_network_interface.sut2_if1.mac_address
+ dut2_if2_mac = data.aws_network_interface.sut2_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ dut2_public_ip = aws_instance.sut2.public_ip
+ }
+ )
+ filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1,
+ aws_instance.sut2
+ ]
+
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ dut2_public_ip = aws_instance.sut2.public_ip
+ }
+ )
+ filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6gn/output.tf b/fdio.infra.terraform/terraform-aws-3n-c6gn/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6gn/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6gn/providers.tf b/fdio.infra.terraform/terraform-aws-3n-c6gn/providers.tf
new file mode 100644
index 0000000000..2482ca2839
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6gn/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = "http://10.30.51.24:8200"
+ skip_tls_verify = true
+ token = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6gn/topology-3n-c6gn.tftpl b/fdio.infra.terraform/terraform-aws-3n-c6gn/topology-3n-c6gn.tftpl
new file mode 100644
index 0000000000..dc6d869a02
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6gn/topology-3n-c6gn.tftpl
@@ -0,0 +1,73 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # tg_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
+ DUT1:
+ type: DUT
+ host: "${dut1_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: "${dut1_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # dut1_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: "${dut1_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link21
+ model: Amazon-Nitro-100G
+ DUT2:
+ type: DUT
+ host: "${dut2_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut2_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: "${dut2_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link21
+ model: Amazon-Nitro-100G
+ port2:
+ # dut2_instance/p2 - 100GE port1 on ENA NIC.
+ mac_address: "${dut2_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
+
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6gn/variables.tf b/fdio.infra.terraform/terraform-aws-3n-c6gn/variables.tf
new file mode 100644
index 0000000000..23ae7cf42a
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6gn/variables.tf
@@ -0,0 +1,216 @@
+variable "vault-name" {
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-central-1"
+}
+
+variable "resource_prefix" {
+ description = "Resources name prefix."
+ type = string
+ default = "csit-3n-c6gn"
+}
+
+variable "testbed_name" {
+ description = "Testbed name."
+ type = string
+ default = "testbed1"
+}
+
+# Variables for Private Key
+variable "private_key_algorithm" {
+ description = "The name of the algorithm to use for the key."
+ type = string
+ default = "ED25519"
+}
+
+# Variables for Placement Group
+variable "placement_group_strategy" {
+ description = "The placement strategy. Can be cluster, partition or spread."
+ type = string
+ default = "cluster"
+}
+
+# Variables for Instance
+variable "tg_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-07430bfa17fd4e597"
+}
+
+variable "tg_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "tg_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "tg_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6in.4xlarge"
+}
+
+variable "tg_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.10"
+}
+
+variable "tg_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut1_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-0cebabdc14ee56909"
+}
+
+variable "sut1_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut1_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut1_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6gn.4xlarge"
+}
+
+variable "sut1_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.11"
+}
+
+variable "sut1_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut2_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-0cebabdc14ee56909"
+}
+
+variable "sut2_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut2_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut2_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6gn.4xlarge"
+}
+
+variable "sut2_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.12"
+}
+
+variable "sut2_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+# Variables for Network Interface
+variable "tg_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.254"
+}
+
+variable "tg_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.254"
+}
+
+variable "destination_cidr_block_tg_if1" {
+ description = "The destination CIDR block."
+ type = string
+ default = "10.0.0.0/24"
+}
+
+variable "destination_cidr_block_tg_if2" {
+ description = "The destination CIDR block."
+ type = string
+ default = "20.0.0.0/24"
+}
+
+variable "sut1_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.11"
+}
+
+variable "sut1_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "200.0.0.101"
+}
+
+variable "sut2_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "200.0.0.102"
+}
+
+variable "sut2_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.11"
+}
+
+# Variables for Null Resource
+variable "first_run_commands" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = list(string)
+ default = [
+ "sudo sed -i 's/^PasswordAuthentication/#PasswordAuthentication/' /etc/ssh/sshd_config",
+ "sudo systemctl restart sshd",
+ "sudo useradd --create-home -s /bin/bash provisionuser",
+ "echo 'provisionuser:Csit1234' | sudo chpasswd",
+ "echo 'provisionuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers",
+ "sudo useradd --create-home -s /bin/bash testuser",
+ "echo 'testuser:Csit1234' | sudo chpasswd",
+ "echo 'testuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers"
+ ]
+}
+
+# Variables for Null Resource
+variable "ansible_topology_path" {
+ description = "Ansible topology path."
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6gn/versions.tf b/fdio.infra.terraform/terraform-aws-3n-c6gn/versions.tf
new file mode 100644
index 0000000000..589699691e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6gn/versions.tf
@@ -0,0 +1,20 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ null = {
+ source = "hashicorp/null"
+ version = ">= 3.2.1"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = ">= 4.0.4"
+ }
+ vault = {
+ version = ">= 3.15.2"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6in/hosts.tftpl b/fdio.infra.terraform/terraform-aws-3n-c6in/hosts.tftpl
new file mode 100644
index 0000000000..e88c8ba510
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6in/hosts.tftpl
@@ -0,0 +1,9 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip}
+ sut:
+ hosts:
+ ${dut1_public_ip}
+ ${dut2_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6in/main.tf b/fdio.infra.terraform/terraform-aws-3n-c6in/main.tf
new file mode 100644
index 0000000000..f1bb1b0f03
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6in/main.tf
@@ -0,0 +1,457 @@
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault-name}-path"
+ role = "${var.vault-name}-role"
+}
+
+locals {
+ ansible_python_executable = "/usr/bin/python3"
+ availability_zone = "eu-central-1b"
+ name = "csit-vpc"
+ environment = "csit-vpc-environment"
+ key_pair_key_name = "${var.resource_prefix}-${var.testbed_name}-pk"
+ placement_group_name = "${var.resource_prefix}-${var.testbed_name}-pg"
+ security_group_name = "${var.resource_prefix}-${var.testbed_name}-sg"
+ testbed_name = "testbed1"
+ topology_name = "3n-c6in"
+ tg_name = "${var.resource_prefix}-${var.testbed_name}-tg"
+ sut1_name = "${var.resource_prefix}-${var.testbed_name}-sut1"
+ sut2_name = "${var.resource_prefix}-${var.testbed_name}-sut2"
+}
+
+# Create VPC
+module "vpc" {
+ source = "../terraform-aws-vpc"
+ security_group_name = local.security_group_name
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+}
+
+# Create Subnet
+module "subnet_b" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 2)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_c" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "200.0.0.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 3)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_d" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.20.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 4)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+# Create Private Key
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
+}
+
+# Create Key Pair
+module "key_pair" {
+ source = "pmikus/key-pair/aws"
+ version = "5.7.0"
+
+ key_pair_key_name = local.key_pair_key_name
+ key_pair_public_key = module.private_key.public_key_openssh
+
+ key_pair_tags = {
+ "Environment" = local.environment
+ }
+}
+
+# Create Placement Group
+resource "aws_placement_group" "placement_group" {
+ name = local.placement_group_name
+ strategy = var.placement_group_strategy
+}
+
+# Create Instance
+resource "aws_instance" "tg" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.tg_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.tg_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.tg_instance_initiated_shutdown_behavior
+ instance_type = var.tg_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.tg_private_ip
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "1"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if1_private_ip
+ private_ips = [var.tg_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.tg
+ ]
+ private_ips = [var.tg_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "tg_if1" {
+ id = aws_network_interface.tg_if1.id
+}
+
+data "aws_network_interface" "tg_if2" {
+ id = aws_network_interface.tg_if2.id
+}
+
+resource "aws_route" "route_tg_if1" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if1
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_route" "route_tg_if2" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if2
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_instance" "sut1" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut1_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut1_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut1_instance_initiated_shutdown_behavior
+ instance_type = var.sut1_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut1_private_ip
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.sut1
+ ]
+ private_ips = [var.sut1_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if2" {
+ depends_on = [
+ module.subnet_c,
+ aws_instance.sut1
+ ]
+ private_ips = [var.sut1_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_c.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut1_if1" {
+ id = aws_network_interface.sut1_if1.id
+}
+
+data "aws_network_interface" "sut1_if2" {
+ id = aws_network_interface.sut1_if2.id
+}
+
+resource "aws_instance" "sut2" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut2_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut2_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut2_instance_initiated_shutdown_behavior
+ instance_type = var.sut2_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut2_private_ip
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut2_if1" {
+ depends_on = [
+ module.subnet_c,
+ aws_instance.sut2
+ ]
+ private_ips = [var.sut2_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.subnet_c.subnet_id
+
+ attachment {
+ instance = aws_instance.sut2.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut2_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.sut2
+ ]
+ private_ips = [var.sut2_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.sut2.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut2_if1" {
+ id = aws_network_interface.sut2_if1.id
+}
+
+data "aws_network_interface" "sut2_if2" {
+ id = aws_network_interface.sut2_if2.id
+}
+
+resource "null_resource" "deploy_tg" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.tg.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut1" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut1.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut2" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut2.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1,
+ aws_instance.sut2
+ ]
+
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ dut1_if1_mac = data.aws_network_interface.sut1_if1.mac_address
+ dut1_if2_mac = data.aws_network_interface.sut1_if2.mac_address
+ dut2_if1_mac = data.aws_network_interface.sut2_if1.mac_address
+ dut2_if2_mac = data.aws_network_interface.sut2_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ dut2_public_ip = aws_instance.sut2.public_ip
+ }
+ )
+ filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1,
+ aws_instance.sut2
+ ]
+
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ dut2_public_ip = aws_instance.sut2.public_ip
+ }
+ )
+ filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6in/output.tf b/fdio.infra.terraform/terraform-aws-3n-c6in/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6in/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6in/providers.tf b/fdio.infra.terraform/terraform-aws-3n-c6in/providers.tf
new file mode 100644
index 0000000000..2482ca2839
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6in/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = "http://10.30.51.24:8200"
+ skip_tls_verify = true
+ token = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6in/topology-3n-c6in.tftpl b/fdio.infra.terraform/terraform-aws-3n-c6in/topology-3n-c6in.tftpl
new file mode 100644
index 0000000000..2ec39d0ea9
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6in/topology-3n-c6in.tftpl
@@ -0,0 +1,73 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # tg_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-200G
+ DUT1:
+ type: DUT
+ host: "${dut1_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: "${dut1_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # dut1_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: "${dut1_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link21
+ model: Amazon-Nitro-200G
+ DUT2:
+ type: DUT
+ host: "${dut2_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut2_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: "${dut2_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link21
+ model: Amazon-Nitro-200G
+ port2:
+ # dut2_instance/p2 - 200GE port1 on ENA NIC.
+ mac_address: "${dut2_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-200G
+
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6in/variables.tf b/fdio.infra.terraform/terraform-aws-3n-c6in/variables.tf
new file mode 100644
index 0000000000..3255cab3f3
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6in/variables.tf
@@ -0,0 +1,216 @@
+variable "vault-name" {
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-central-1"
+}
+
+variable "resource_prefix" {
+ description = "Resources name prefix."
+ type = string
+ default = "csit-3n-c6in"
+}
+
+variable "testbed_name" {
+ description = "Testbed name."
+ type = string
+ default = "testbed1"
+}
+
+# Variables for Private Key
+variable "private_key_algorithm" {
+ description = "The name of the algorithm to use for the key."
+ type = string
+ default = "ED25519"
+}
+
+# Variables for Placement Group
+variable "placement_group_strategy" {
+ description = "The placement strategy. Can be cluster, partition or spread."
+ type = string
+ default = "cluster"
+}
+
+# Variables for Instance
+variable "tg_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-07430bfa17fd4e597"
+}
+
+variable "tg_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "tg_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "tg_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6in.4xlarge"
+}
+
+variable "tg_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.10"
+}
+
+variable "tg_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut1_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-0a890555652963ec2"
+}
+
+variable "sut1_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut1_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut1_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6in.4xlarge"
+}
+
+variable "sut1_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.11"
+}
+
+variable "sut1_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut2_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-07898402cb1fd6561"
+}
+
+variable "sut2_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut2_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut2_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6in.4xlarge"
+}
+
+variable "sut2_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.12"
+}
+
+variable "sut2_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+# Variables for Network Interface
+variable "tg_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.254"
+}
+
+variable "tg_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.254"
+}
+
+variable "destination_cidr_block_tg_if1" {
+ description = "The destination CIDR block."
+ type = string
+ default = "10.0.0.0/24"
+}
+
+variable "destination_cidr_block_tg_if2" {
+ description = "The destination CIDR block."
+ type = string
+ default = "20.0.0.0/24"
+}
+
+variable "sut1_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.11"
+}
+
+variable "sut1_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "200.0.0.101"
+}
+
+variable "sut2_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "200.0.0.102"
+}
+
+variable "sut2_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.11"
+}
+
+# Variables for Null Resource
+variable "first_run_commands" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = list(string)
+ default = [
+ "sudo sed -i 's/^PasswordAuthentication/#PasswordAuthentication/' /etc/ssh/sshd_config",
+ "sudo systemctl restart sshd",
+ "sudo useradd --create-home -s /bin/bash provisionuser",
+ "echo 'provisionuser:Csit1234' | sudo chpasswd",
+ "echo 'provisionuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers",
+ "sudo useradd --create-home -s /bin/bash testuser",
+ "echo 'testuser:Csit1234' | sudo chpasswd",
+ "echo 'testuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers"
+ ]
+}
+
+# Variables for Null Resource
+variable "ansible_topology_path" {
+ description = "Ansible topology path."
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-aws-3n-c6in/versions.tf b/fdio.infra.terraform/terraform-aws-3n-c6in/versions.tf
new file mode 100644
index 0000000000..589699691e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c6in/versions.tf
@@ -0,0 +1,20 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ null = {
+ source = "hashicorp/null"
+ version = ">= 3.2.1"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = ">= 4.0.4"
+ }
+ vault = {
+ version = ">= 3.15.2"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c7gn/hosts.tftpl b/fdio.infra.terraform/terraform-aws-3n-c7gn/hosts.tftpl
new file mode 100644
index 0000000000..e88c8ba510
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c7gn/hosts.tftpl
@@ -0,0 +1,9 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip}
+ sut:
+ hosts:
+ ${dut1_public_ip}
+ ${dut2_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c7gn/main.tf b/fdio.infra.terraform/terraform-aws-3n-c7gn/main.tf
new file mode 100644
index 0000000000..68d2dd9be2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c7gn/main.tf
@@ -0,0 +1,457 @@
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault-name}-path"
+ role = "${var.vault-name}-role"
+}
+
+locals {
+ ansible_python_executable = "/usr/bin/python3"
+ availability_zone = "${var.region}a"
+ name = "csit-vpc"
+ environment = "csit-vpc-environment"
+ key_pair_key_name = "${var.resource_prefix}-${var.testbed_name}-pk"
+ placement_group_name = "${var.resource_prefix}-${var.testbed_name}-pg"
+ security_group_name = "${var.resource_prefix}-${var.testbed_name}-sg"
+ testbed_name = "testbed1"
+ topology_name = "3n-c7gn"
+ tg_name = "${var.resource_prefix}-${var.testbed_name}-tg"
+ sut1_name = "${var.resource_prefix}-${var.testbed_name}-sut1"
+ sut2_name = "${var.resource_prefix}-${var.testbed_name}-sut2"
+}
+
+# Create VPC
+module "vpc" {
+ source = "../terraform-aws-vpc"
+ security_group_name = local.security_group_name
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+}
+
+# Create Subnet
+module "subnet_b" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 2)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_c" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "200.0.0.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 3)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+module "subnet_d" {
+ source = "../terraform-aws-subnet"
+ subnet_cidr_block = "192.168.20.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 4)
+ subnet_availability_zone = local.availability_zone
+ tags_name = local.name
+ tags_environment = local.environment
+ subnet_vpc_id = module.vpc.vpc_id
+}
+
+# Create Private Key
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
+}
+
+# Create Key Pair
+module "key_pair" {
+ source = "pmikus/key-pair/aws"
+ version = "5.7.0"
+
+ key_pair_key_name = local.key_pair_key_name
+ key_pair_public_key = module.private_key.public_key_openssh
+
+ key_pair_tags = {
+ "Environment" = local.environment
+ }
+}
+
+# Create Placement Group
+resource "aws_placement_group" "placement_group" {
+ name = local.placement_group_name
+ strategy = var.placement_group_strategy
+}
+
+# Create Instance
+resource "aws_instance" "tg" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.tg_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.tg_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.tg_instance_initiated_shutdown_behavior
+ instance_type = var.tg_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.tg_private_ip
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "1"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.tg
+ ]
+ private_ip = var.tg_if1_private_ip
+ private_ips = [var.tg_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "tg_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.tg
+ ]
+ private_ips = [var.tg_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.tg_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.tg.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.tg_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "tg_if1" {
+ id = aws_network_interface.tg_if1.id
+}
+
+data "aws_network_interface" "tg_if2" {
+ id = aws_network_interface.tg_if2.id
+}
+
+resource "aws_route" "route_tg_if1" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if1
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_route" "route_tg_if2" {
+ depends_on = [
+ aws_instance.tg
+ ]
+ destination_cidr_block = var.destination_cidr_block_tg_if2
+ network_interface_id = aws_instance.tg.primary_network_interface_id
+ route_table_id = module.vpc.vpc_main_route_table_id
+}
+
+resource "aws_instance" "sut1" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut1_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut1_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut1_instance_initiated_shutdown_behavior
+ instance_type = var.sut1_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut1_private_ip
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if1" {
+ depends_on = [
+ module.subnet_b,
+ aws_instance.sut1
+ ]
+ private_ips = [var.sut1_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_b.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut1_if2" {
+ depends_on = [
+ module.subnet_c,
+ aws_instance.sut1
+ ]
+ private_ips = [var.sut1_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut1_source_dest_check
+ subnet_id = module.subnet_c.subnet_id
+
+ attachment {
+ instance = aws_instance.sut1.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut1_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut1_if1" {
+ id = aws_network_interface.sut1_if1.id
+}
+
+data "aws_network_interface" "sut1_if2" {
+ id = aws_network_interface.sut1_if2.id
+}
+
+resource "aws_instance" "sut2" {
+ depends_on = [
+ module.vpc,
+ aws_placement_group.placement_group
+ ]
+ ami = var.sut2_ami
+ availability_zone = local.availability_zone
+ associate_public_ip_address = var.sut2_associate_public_ip_address
+ instance_initiated_shutdown_behavior = var.sut2_instance_initiated_shutdown_behavior
+ instance_type = var.sut2_instance_type
+ key_name = module.key_pair.key_pair_key_name
+ placement_group = aws_placement_group.placement_group.id
+ private_ip = var.sut2_private_ip
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.vpc.vpc_subnet_id
+ vpc_security_group_ids = [module.vpc.vpc_security_group_id]
+ # host_id = "2"
+
+ root_block_device {
+ delete_on_termination = true
+ volume_size = 50
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut2_if1" {
+ depends_on = [
+ module.subnet_c,
+ aws_instance.sut2
+ ]
+ private_ips = [var.sut2_if1_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.subnet_c.subnet_id
+
+ attachment {
+ instance = aws_instance.sut2.id
+ device_index = 1
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+resource "aws_network_interface" "sut2_if2" {
+ depends_on = [
+ module.subnet_d,
+ aws_instance.sut2
+ ]
+ private_ips = [var.sut2_if2_private_ip]
+ security_groups = [module.vpc.vpc_security_group_id]
+ source_dest_check = var.sut2_source_dest_check
+ subnet_id = module.subnet_d.subnet_id
+
+ attachment {
+ instance = aws_instance.sut2.id
+ device_index = 2
+ }
+
+ tags = {
+ "Name" = local.sut2_name
+ "Environment" = local.environment
+ }
+}
+
+data "aws_network_interface" "sut2_if1" {
+ id = aws_network_interface.sut2_if1.id
+}
+
+data "aws_network_interface" "sut2_if2" {
+ id = aws_network_interface.sut2_if2.id
+}
+
+resource "null_resource" "deploy_tg" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.tg.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut1" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut1.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "null_resource" "deploy_sut2" {
+ depends_on = [
+ aws_instance.tg,
+ aws_network_interface.tg_if1,
+ aws_network_interface.tg_if2,
+ aws_instance.sut1,
+ aws_network_interface.sut1_if1,
+ aws_network_interface.sut1_if2,
+ aws_instance.sut2,
+ aws_network_interface.sut2_if1,
+ aws_network_interface.sut2_if2
+ ]
+
+ connection {
+ user = "ubuntu"
+ host = aws_instance.sut2.public_ip
+ private_key = module.private_key.private_key_pem
+ }
+
+ provisioner "remote-exec" {
+ inline = var.first_run_commands
+ }
+}
+
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1,
+ aws_instance.sut2
+ ]
+
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
+ tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
+ dut1_if1_mac = data.aws_network_interface.sut1_if1.mac_address
+ dut1_if2_mac = data.aws_network_interface.sut1_if2.mac_address
+ dut2_if1_mac = data.aws_network_interface.sut2_if1.mac_address
+ dut2_if2_mac = data.aws_network_interface.sut2_if2.mac_address
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ dut2_public_ip = aws_instance.sut2.public_ip
+ }
+ )
+ filename = "${path.module}/../../topologies/available/${local.topology_name}-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+ depends_on = [
+ aws_instance.tg,
+ aws_instance.sut1,
+ aws_instance.sut2
+ ]
+
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = aws_instance.tg.public_ip
+ dut1_public_ip = aws_instance.sut1.public_ip
+ dut2_public_ip = aws_instance.sut2.public_ip
+ }
+ )
+ filename = "${path.module}/../../fdio.infra.ansible/inventories/cloud_inventory/hosts.yaml"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c7gn/output.tf b/fdio.infra.terraform/terraform-aws-3n-c7gn/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c7gn/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-3n-c7gn/providers.tf b/fdio.infra.terraform/terraform-aws-3n-c7gn/providers.tf
new file mode 100644
index 0000000000..2482ca2839
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c7gn/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = "http://10.30.51.24:8200"
+ skip_tls_verify = true
+ token = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c7gn/topology-3n-c7gn.tftpl b/fdio.infra.terraform/terraform-aws-3n-c7gn/topology-3n-c7gn.tftpl
new file mode 100644
index 0000000000..65106da556
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c7gn/topology-3n-c7gn.tftpl
@@ -0,0 +1,72 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # tg_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
+ DUT1:
+ type: DUT
+ host: "${dut1_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: "${dut1_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # dut1_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: "${dut1_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link21
+ model: Amazon-Nitro-100G
+ DUT2:
+ type: DUT
+ host: "${dut2_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut2_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: "${dut2_if1_mac}"
+ pci_address: "0000:00:06.0"
+ link: link21
+ model: Amazon-Nitro-100G
+ port2:
+ # dut2_instance/p2 - 100GE port1 on ENA NIC.
+ mac_address: "${dut2_if2_mac}"
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-3n-c7gn/variables.tf b/fdio.infra.terraform/terraform-aws-3n-c7gn/variables.tf
new file mode 100644
index 0000000000..3ad51afeba
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c7gn/variables.tf
@@ -0,0 +1,216 @@
+variable "vault-name" {
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-west-1"
+}
+
+variable "resource_prefix" {
+ description = "Resources name prefix."
+ type = string
+ default = "csit-3n-c7gn"
+}
+
+variable "testbed_name" {
+ description = "Testbed name."
+ type = string
+ default = "testbed1"
+}
+
+# Variables for Private Key
+variable "private_key_algorithm" {
+ description = "The name of the algorithm to use for the key."
+ type = string
+ default = "ED25519"
+}
+
+# Variables for Placement Group
+variable "placement_group_strategy" {
+ description = "The placement strategy. Can be cluster, partition or spread."
+ type = string
+ default = "cluster"
+}
+
+# Variables for Instance
+variable "tg_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-0b5aa26a6e4192705"
+}
+
+variable "tg_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "tg_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "tg_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c6in.4xlarge"
+}
+
+variable "tg_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.10"
+}
+
+variable "tg_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut1_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-08930f71bd0be1085"
+}
+
+variable "sut1_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut1_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut1_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c7gn.4xlarge"
+}
+
+variable "sut1_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.11"
+}
+
+variable "sut1_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+variable "sut2_ami" {
+ description = "AMI to use for the instance."
+ type = string
+ default = "ami-08930f71bd0be1085"
+}
+
+variable "sut2_associate_public_ip_address" {
+ description = "Whether to associate a public IP address with an instance in a VPC."
+ type = bool
+ default = true
+}
+
+variable "sut2_instance_initiated_shutdown_behavior" {
+ description = "Shutdown behavior for the instance."
+ type = string
+ default = "terminate"
+}
+
+variable "sut2_instance_type" {
+ description = "The instance type to use for the instance."
+ type = string
+ default = "c7gn.4xlarge"
+}
+
+variable "sut2_private_ip" {
+ description = "Private IP address to associate with the instance in a VPC."
+ type = string
+ default = "192.168.0.12"
+}
+
+variable "sut2_source_dest_check" {
+ description = "Controls if traffic is routed to the instance when the destination address does not match the instance."
+ type = bool
+ default = false
+}
+
+# Variables for Network Interface
+variable "tg_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.254"
+}
+
+variable "tg_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.254"
+}
+
+variable "destination_cidr_block_tg_if1" {
+ description = "The destination CIDR block."
+ type = string
+ default = "10.0.0.0/24"
+}
+
+variable "destination_cidr_block_tg_if2" {
+ description = "The destination CIDR block."
+ type = string
+ default = "20.0.0.0/24"
+}
+
+variable "sut1_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.10.11"
+}
+
+variable "sut1_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "200.0.0.101"
+}
+
+variable "sut2_if1_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "200.0.0.102"
+}
+
+variable "sut2_if2_private_ip" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = string
+ default = "192.168.20.11"
+}
+
+# Variables for Null Resource
+variable "first_run_commands" {
+ description = "List of private IPs to assign to the ENI without regard to order."
+ type = list(string)
+ default = [
+ "sudo sed -i 's/^PasswordAuthentication/#PasswordAuthentication/' /etc/ssh/sshd_config",
+ "sudo systemctl restart sshd",
+ "sudo useradd --create-home -s /bin/bash provisionuser",
+ "echo 'provisionuser:Csit1234' | sudo chpasswd",
+ "echo 'provisionuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers",
+ "sudo useradd --create-home -s /bin/bash testuser",
+ "echo 'testuser:Csit1234' | sudo chpasswd",
+ "echo 'testuser ALL = (ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers"
+ ]
+}
+
+# Variables for Null Resource
+variable "ansible_topology_path" {
+ description = "Ansible topology path."
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-aws-3n-c7gn/versions.tf b/fdio.infra.terraform/terraform-aws-3n-c7gn/versions.tf
new file mode 100644
index 0000000000..589699691e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-3n-c7gn/versions.tf
@@ -0,0 +1,20 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ null = {
+ source = "hashicorp/null"
+ version = ">= 3.2.1"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = ">= 4.0.4"
+ }
+ vault = {
+ version = ">= 3.15.2"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/README.md b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/README.md
new file mode 100644
index 0000000000..0ab18bdbb8
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/README.md
@@ -0,0 +1,38 @@
+<!-- BEGIN_TF_DOCS -->
+## Requirements
+
+| Name | Version |
+|------|---------|
+| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.4 |
+| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 4.3.0 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 4.3.0 |
+
+## Modules
+
+No modules.
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [aws_elastic_beanstalk_application_version.application_version](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/elastic_beanstalk_application_version) | resource |
+| [aws_s3_bucket.bucket](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket) | resource |
+| [aws_s3_object.object](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_object) | resource |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| <a name="input_application_description"></a> [application\_description](#input\_application\_description) | Short description of the Application Version. | `string` | `"Beanstalk Application"` | no |
+| <a name="input_application_name"></a> [application\_name](#input\_application\_name) | Name of the Beanstalk Application the version is associated. | `string` | `"Beanstalk"` | no |
+| <a name="input_application_version_name"></a> [application\_version\_name](#input\_application\_version\_name) | Unique name for the this Application Version. | `string` | `"Beanstalk Version"` | no |
+
+## Outputs
+
+No outputs.
+<!-- END_TF_DOCS --> \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/main.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/main.tf
new file mode 100644
index 0000000000..652509225f
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/main.tf
@@ -0,0 +1,4 @@
+module "elastic_beanstalk_application_version" {
+ source = "../"
+ application_description = var.application_description
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/output.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/providers.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/providers.tf
new file mode 100644
index 0000000000..5ff54f0d65
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/providers.tf
@@ -0,0 +1,3 @@
+provider "aws" {
+ region = var.region
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/variables.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/variables.tf
new file mode 100644
index 0000000000..12af1d64c6
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/variables.tf
@@ -0,0 +1,11 @@
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "us-east-1"
+}
+
+variable "application_description" {
+ description = "Short description of the application."
+ type = string
+ default = "Beanstalk Application"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/versions.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/versions.tf
new file mode 100644
index 0000000000..af1be4a4e1
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/example/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 4.3.0"
+ }
+ }
+ required_version = ">= 1.1.4"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/main.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/main.tf
new file mode 100644
index 0000000000..ace3aebbbc
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/main.tf
@@ -0,0 +1,28 @@
+locals {
+ key = "${var.application_name_version}-${uuid()}.zip"
+ tags = {
+ "Name" = "${var.application_name}"
+ "Environment" = "${var.application_name}"
+ }
+}
+
+# Create elastic beanstalk Application Version
+# resource "aws_s3_bucket" "bucket" {
+# bucket = var.application_bucket
+# tags = local.tags
+# }
+resource "aws_s3_object" "object" {
+ bucket = var.application_bucket
+ key = local.key
+ source = var.application_source
+ tags = local.tags
+}
+
+resource "aws_elastic_beanstalk_application_version" "application_version" {
+ application = var.application_name
+ description = var.application_description
+ bucket = var.application_bucket
+ key = aws_s3_object.object.id
+ name = var.application_name_version
+ tags = local.tags
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/output.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/output.tf
new file mode 100644
index 0000000000..4262bbe6cf
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/output.tf
@@ -0,0 +1,3 @@
+output "application_version" {
+ value = aws_elastic_beanstalk_application_version.application_version.name
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/variables.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/variables.tf
new file mode 100644
index 0000000000..8d7dd45755
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/variables.tf
@@ -0,0 +1,29 @@
+variable "application_bucket" {
+ description = "The name of the bucket."
+ type = string
+ default = "elasticbeanstalk-eu-central-1"
+}
+
+variable "application_description" {
+ description = "Short description of the Application Version."
+ type = string
+ default = "Beanstalk Application"
+}
+
+variable "application_name" {
+ description = "Name of the Beanstalk Application."
+ type = string
+ default = "beanstalk"
+}
+
+variable "application_name_version" {
+ description = "Version of the Beanstalk Application."
+ type = string
+ default = "beanstalk-1"
+}
+
+variable "application_source" {
+ description = "The source file with application code."
+ type = string
+ default = "app.zip"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/versions.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/versions.tf
new file mode 100644
index 0000000000..1c82745471
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ }
+ required_version = ">= 1.4.2"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/README.md b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/README.md
new file mode 100644
index 0000000000..d149d90038
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/README.md
@@ -0,0 +1,41 @@
+<!-- BEGIN_TF_DOCS -->
+## Requirements
+
+| Name | Version |
+|------|---------|
+| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.4 |
+| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 4.3.0 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 4.3.0 |
+
+## Modules
+
+No modules.
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [aws_elastic_beanstalk_application.application](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/elastic_beanstalk_application) | resource |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| <a name="input_application_description"></a> [application\_description](#input\_application\_description) | Short description of the application. | `string` | `"Beanstalk Application"` | no |
+| <a name="input_application_name"></a> [application\_name](#input\_application\_name) | The name of the application, must be unique within account. | `string` | `"Beanstalk"` | no |
+| <a name="input_appversion_lifecycle_delete_source_from_s3"></a> [appversion\_lifecycle\_delete\_source\_from\_s3](#input\_appversion\_lifecycle\_delete\_source\_from\_s3) | Whether to delete application versions from S3 source. | `bool` | `false` | no |
+| <a name="input_appversion_lifecycle_max_count"></a> [appversion\_lifecycle\_max\_count](#input\_appversion\_lifecycle\_max\_count) | The max number of application versions to keep. | `number` | `2` | no |
+| <a name="input_appversion_lifecycle_service_role_arn"></a> [appversion\_lifecycle\_service\_role\_arn](#input\_appversion\_lifecycle\_service\_role\_arn) | The service role ARN to use for application version cleanup. If left empty, the `appversion_lifecycle` block will not be created. | `string` | `""` | no |
+
+## Outputs
+
+| Name | Description |
+|------|-------------|
+| <a name="output_application_description"></a> [application\_description](#output\_application\_description) | n/a |
+| <a name="output_application_name"></a> [application\_name](#output\_application\_name) | n/a |
+<!-- END_TF_DOCS --> \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/main.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/main.tf
new file mode 100644
index 0000000000..410d1abc59
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/main.tf
@@ -0,0 +1,4 @@
+module "elastic_beanstalk_application" {
+ source = "../"
+ application_description = var.application_description
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/output.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/output.tf
new file mode 100644
index 0000000000..290e2a1c5a
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/output.tf
@@ -0,0 +1,9 @@
+output "elastic_beanstalk_application_name" {
+ value = module.elastic_beanstalk_application.application_name
+ description = "Elastic Beanstalk Application name"
+}
+
+output "elastic_beanstalk_application_description" {
+ value = module.elastic_beanstalk_application.application_description
+ description = "Elastic Beanstalk Application description"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/providers.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/providers.tf
new file mode 100644
index 0000000000..5ff54f0d65
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/providers.tf
@@ -0,0 +1,3 @@
+provider "aws" {
+ region = var.region
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/variables.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/variables.tf
new file mode 100644
index 0000000000..12af1d64c6
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/variables.tf
@@ -0,0 +1,11 @@
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "us-east-1"
+}
+
+variable "application_description" {
+ description = "Short description of the application."
+ type = string
+ default = "Beanstalk Application"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/versions.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/versions.tf
new file mode 100644
index 0000000000..af1be4a4e1
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/example/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 4.3.0"
+ }
+ }
+ required_version = ">= 1.1.4"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/main.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/main.tf
new file mode 100644
index 0000000000..909d6fca4d
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/main.tf
@@ -0,0 +1,21 @@
+locals {
+ tags = {
+ "Name" = "${var.application_name}"
+ "Environment" = "${var.application_name}"
+ }
+}
+
+resource "aws_elastic_beanstalk_application" "application" {
+ name = var.application_name
+ description = var.application_description
+ tags = local.tags
+
+ dynamic "appversion_lifecycle" {
+ for_each = var.appversion_lifecycle_service_role_arn != "" ? ["true"] : []
+ content {
+ service_role = var.appversion_lifecycle_service_role_arn
+ max_count = var.appversion_lifecycle_max_count
+ delete_source_from_s3 = var.appversion_lifecycle_delete_source_from_s3
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/output.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/output.tf
new file mode 100644
index 0000000000..ce7f978e53
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/output.tf
@@ -0,0 +1,7 @@
+output "application_name" {
+ value = aws_elastic_beanstalk_application.application.name
+}
+
+output "application_description" {
+ value = aws_elastic_beanstalk_application.application.description
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/variables.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/variables.tf
new file mode 100644
index 0000000000..38090c99b5
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/variables.tf
@@ -0,0 +1,29 @@
+variable "application_description" {
+ description = "Short description of the application."
+ type = string
+ default = "Beanstalk Application"
+}
+
+variable "application_name" {
+ description = "The name of the application, must be unique within account."
+ type = string
+ default = "Beanstalk"
+}
+
+variable "appversion_lifecycle_service_role_arn" {
+ description = "The service role ARN to use for application version cleanup. If left empty, the `appversion_lifecycle` block will not be created."
+ type = string
+ default = ""
+}
+
+variable "appversion_lifecycle_max_count" {
+ description = "The max number of application versions to keep."
+ type = number
+ default = 2
+}
+
+variable "appversion_lifecycle_delete_source_from_s3" {
+ description = "Whether to delete application versions from S3 source."
+ type = bool
+ default = false
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/versions.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/versions.tf
new file mode 100644
index 0000000000..8ad3fd72c6
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ }
+ required_version = ">= 1.5.4"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/README.md b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/README.md
new file mode 100644
index 0000000000..f3bc3e23ec
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/README.md
@@ -0,0 +1,106 @@
+<!-- BEGIN_TF_DOCS -->
+## Requirements
+
+| Name | Version |
+|------|---------|
+| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.4 |
+| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 4.3.0 |
+| <a name="requirement_vault"></a> [vault](#requirement\_vault) | >= 3.2.1 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 4.3.0 |
+
+## Modules
+
+No modules.
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [aws_elastic_beanstalk_environment.environment](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/elastic_beanstalk_environment) | resource |
+| [aws_iam_instance_profile.ec2_iam_instance_profile](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_instance_profile) | resource |
+| [aws_iam_role.ec2](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
+| [aws_iam_role.service](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
+| [aws_iam_role_policy.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
+| [aws_iam_role_policy_attachment.ecr_readonly](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
+| [aws_iam_role_policy_attachment.enhanced_health](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
+| [aws_iam_role_policy_attachment.multicontainer_docker](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
+| [aws_iam_role_policy_attachment.service](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
+| [aws_iam_role_policy_attachment.ssm_automation](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
+| [aws_iam_role_policy_attachment.ssm_ec2](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
+| [aws_iam_role_policy_attachment.web_tier](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
+| [aws_iam_role_policy_attachment.worker_tier](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
+| [aws_internet_gateway.internet_gateway](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/internet_gateway) | resource |
+| [aws_route.route](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |
+| [aws_ssm_activation.ec2](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ssm_activation) | resource |
+| [aws_subnet.subnet](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet) | resource |
+| [aws_vpc.vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc) | resource |
+| [aws_iam_policy_document.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
+| [aws_iam_policy_document.ec2](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
+| [aws_iam_policy_document.service](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| <a name="input_application_description"></a> [application\_description](#input\_application\_description) | Short description of the application. | `string` | `"Beanstalk Application"` | no |
+| <a name="input_application_name"></a> [application\_name](#input\_application\_name) | The name of the application, must be unique within account. | `string` | `"Beanstalk"` | no |
+| <a name="input_appversion_lifecycle_delete_source_from_s3"></a> [appversion\_lifecycle\_delete\_source\_from\_s3](#input\_appversion\_lifecycle\_delete\_source\_from\_s3) | Whether to delete application versions from S3 source | `bool` | `false` | no |
+| <a name="input_appversion_lifecycle_max_count"></a> [appversion\_lifecycle\_max\_count](#input\_appversion\_lifecycle\_max\_count) | The max number of application versions to keep | `number` | `2` | no |
+| <a name="input_appversion_lifecycle_service_role_arn"></a> [appversion\_lifecycle\_service\_role\_arn](#input\_appversion\_lifecycle\_service\_role\_arn) | The service role ARN to use for application version cleanup. If left empty, the `appversion_lifecycle` block will not be created. | `string` | `""` | no |
+| <a name="input_associate_public_ip_address"></a> [associate\_public\_ip\_address](#input\_associate\_public\_ip\_address) | Whether to associate public IP addresses to the instances. | `bool` | `true` | no |
+| <a name="input_autoscaling_asg_maxsize"></a> [autoscaling\_asg\_maxsize](#input\_autoscaling\_asg\_maxsize) | Maximum instances to launch | `number` | `2` | no |
+| <a name="input_autoscaling_asg_minsize"></a> [autoscaling\_asg\_minsize](#input\_autoscaling\_asg\_minsize) | Minumum instances to launch | `number` | `1` | no |
+| <a name="input_autoscaling_trigger_lower_breach_scale_increment"></a> [autoscaling\_trigger\_lower\_breach\_scale\_increment](#input\_autoscaling\_trigger\_lower\_breach\_scale\_increment) | How many Amazon EC2 instances to remove when performing a scaling activity. | `number` | `-1` | no |
+| <a name="input_autoscaling_trigger_lower_threshold"></a> [autoscaling\_trigger\_lower\_threshold](#input\_autoscaling\_trigger\_lower\_threshold) | Minimum level of autoscale metric to remove an instance | `number` | `20` | no |
+| <a name="input_autoscaling_trigger_measure_name"></a> [autoscaling\_trigger\_measure\_name](#input\_autoscaling\_trigger\_measure\_name) | Metric used for your Auto Scaling trigger | `string` | `"CPUUtilization"` | no |
+| <a name="input_autoscaling_trigger_statistic"></a> [autoscaling\_trigger\_statistic](#input\_autoscaling\_trigger\_statistic) | Statistic the trigger should use, such as Average | `string` | `"Average"` | no |
+| <a name="input_autoscaling_trigger_unit"></a> [autoscaling\_trigger\_unit](#input\_autoscaling\_trigger\_unit) | Unit for the trigger measurement, such as Bytes | `string` | `"Percent"` | no |
+| <a name="input_autoscaling_trigger_upper_breach_scale_increment"></a> [autoscaling\_trigger\_upper\_breach\_scale\_increment](#input\_autoscaling\_trigger\_upper\_breach\_scale\_increment) | How many Amazon EC2 instances to add when performing a scaling activity | `number` | `1` | no |
+| <a name="input_autoscaling_trigger_upper_threshold"></a> [autoscaling\_trigger\_upper\_threshold](#input\_autoscaling\_trigger\_upper\_threshold) | Maximum level of autoscale metric to add an instance | `number` | `80` | no |
+| <a name="input_cloudwatch_logs_delete_on_terminate"></a> [cloudwatch\_logs\_delete\_on\_terminate](#input\_cloudwatch\_logs\_delete\_on\_terminate) | Whether to delete the log groups when the environment is terminated. If false, the logs are kept RetentionInDays days | `bool` | `true` | no |
+| <a name="input_cloudwatch_logs_health_delete_on_terminate"></a> [cloudwatch\_logs\_health\_delete\_on\_terminate](#input\_cloudwatch\_logs\_health\_delete\_on\_terminate) | Whether to delete the log group when the environment is terminated. If false, the health data is kept RetentionInDays days. | `bool` | `true` | no |
+| <a name="input_cloudwatch_logs_health_health_streaming_enabled"></a> [cloudwatch\_logs\_health\_health\_streaming\_enabled](#input\_cloudwatch\_logs\_health\_health\_streaming\_enabled) | For environments with enhanced health reporting enabled, whether to create a group in CloudWatch Logs for environment health and archive Elastic Beanstalk environment health data. For information about enabling enhanced health, see aws:elasticbeanstalk:healthreporting:system. | `bool` | `true` | no |
+| <a name="input_cloudwatch_logs_health_retention_in_days"></a> [cloudwatch\_logs\_health\_retention\_in\_days](#input\_cloudwatch\_logs\_health\_retention\_in\_days) | The number of days to keep the archived health data before it expires. | `number` | `3` | no |
+| <a name="input_cloudwatch_logs_retention_in_days"></a> [cloudwatch\_logs\_retention\_in\_days](#input\_cloudwatch\_logs\_retention\_in\_days) | The number of days to keep log events before they expire. | `number` | `3` | no |
+| <a name="input_cloudwatch_logs_stream_logs"></a> [cloudwatch\_logs\_stream\_logs](#input\_cloudwatch\_logs\_stream\_logs) | Whether to create groups in CloudWatch Logs for proxy and deployment logs, and stream logs from each instance in your environment | `bool` | `true` | no |
+| <a name="input_default_listener_enabled"></a> [default\_listener\_enabled](#input\_default\_listener\_enabled) | Set to false to disable the listener. You can use this option to disable the default listener on port 80. | `bool` | `true` | no |
+| <a name="input_elb_scheme"></a> [elb\_scheme](#input\_elb\_scheme) | Specify `internal` if you want to create an internal load balancer in your Amazon VPC so that your Elastic Beanstalk application cannot be accessed from outside your Amazon VPC. | `string` | `"public"` | no |
+| <a name="input_environment_application"></a> [environment\_application](#input\_environment\_application) | The name of the application, must be unique within account. | `string` | `"Beanstalk Application"` | no |
+| <a name="input_environment_description"></a> [environment\_description](#input\_environment\_description) | Short description of the environment. | `string` | `"Beanstalk Environment"` | no |
+| <a name="input_environment_loadbalancer_type"></a> [environment\_loadbalancer\_type](#input\_environment\_loadbalancer\_type) | Load Balancer type, e.g. 'application' or 'classic'. | `string` | `"network"` | no |
+| <a name="input_environment_name"></a> [environment\_name](#input\_environment\_name) | A unique name for this Environment. This name is used in the application URL. | `string` | `"Beanstalk-env"` | no |
+| <a name="input_environment_process_default_healthcheck_interval"></a> [environment\_process\_default\_healthcheck\_interval](#input\_environment\_process\_default\_healthcheck\_interval) | The interval of time, in seconds, that Elastic Load Balancing checks the health of the Amazon EC2 instances of your application. | `number` | `10` | no |
+| <a name="input_environment_process_default_healthy_threshold_count"></a> [environment\_process\_default\_healthy\_threshold\_count](#input\_environment\_process\_default\_healthy\_threshold\_count) | The number of consecutive successful requests before Elastic Load Balancing changes the instance health status. | `number` | `3` | no |
+| <a name="input_environment_process_default_port"></a> [environment\_process\_default\_port](#input\_environment\_process\_default\_port) | Port application is listening on. | `number` | `5000` | no |
+| <a name="input_environment_process_default_unhealthy_threshold_count"></a> [environment\_process\_default\_unhealthy\_threshold\_count](#input\_environment\_process\_default\_unhealthy\_threshold\_count) | The number of consecutive unsuccessful requests before Elastic Load Balancing changes the instance health status. | `number` | `3` | no |
+| <a name="input_environment_solution_stack_name"></a> [environment\_solution\_stack\_name](#input\_environment\_solution\_stack\_name) | A solution stack to base your environment off of. | `string` | `"64bit Amazon Linux 2 v3.3.11 running Python 3.8"` | no |
+| <a name="input_environment_tier"></a> [environment\_tier](#input\_environment\_tier) | The environment tier specified. | `string` | `"WebServer"` | no |
+| <a name="input_environment_type"></a> [environment\_type](#input\_environment\_type) | Environment type, e.g. 'LoadBalanced' or 'SingleInstance'. If setting to 'SingleInstance', `rolling_update_type` must be set to 'Time', `updating_min_in_service` must be set to 0, and `loadbalancer_subnets` will be unused (it applies to the ELB, which does not exist in SingleInstance environments). | `string` | `"LoadBalanced"` | no |
+| <a name="input_environment_variables"></a> [environment\_variables](#input\_environment\_variables) | Map of custom ENV variables to be provided to the application. | `map(string)` | `{}` | no |
+| <a name="input_environment_version_label"></a> [environment\_version\_label](#input\_environment\_version\_label) | The name of the Elastic Beanstalk Application Version to use in deployment. | `string` | `""` | no |
+| <a name="input_environment_wait_for_ready_timeout"></a> [environment\_wait\_for\_ready\_timeout](#input\_environment\_wait\_for\_ready\_timeout) | The maximum duration to wait for the Elastic Beanstalk Environment to be in a ready state before timing out | `string` | `"20m"` | no |
+| <a name="input_healthreporting_system_type"></a> [healthreporting\_system\_type](#input\_healthreporting\_system\_type) | Whether to enable enhanced health reporting for this environment | `string` | `"enhanced"` | no |
+| <a name="input_hostmanager_log_publication_control"></a> [hostmanager\_log\_publication\_control](#input\_hostmanager\_log\_publication\_control) | Copy the log files for your application's Amazon EC2 instances to the Amazon S3 bucket associated with your application | `bool` | `true` | no |
+| <a name="input_instances_instance_types"></a> [instances\_instance\_types](#input\_instances\_instance\_types) | Instances type | `string` | `"t3.medium"` | no |
+| <a name="input_managedactions_managed_actions_enabled"></a> [managedactions\_managed\_actions\_enabled](#input\_managedactions\_managed\_actions\_enabled) | Enable managed platform updates. When you set this to true, you must also specify a `PreferredStartTime` and `UpdateLevel` | `bool` | `true` | no |
+| <a name="input_managedactions_platformupdate_instance_refresh_enabled"></a> [managedactions\_platformupdate\_instance\_refresh\_enabled](#input\_managedactions\_platformupdate\_instance\_refresh\_enabled) | Enable weekly instance replacement. | `bool` | `true` | no |
+| <a name="input_managedactions_platformupdate_update_level"></a> [managedactions\_platformupdate\_update\_level](#input\_managedactions\_platformupdate\_update\_level) | The highest level of update to apply with managed platform updates | `string` | `"minor"` | no |
+| <a name="input_managedactions_preferred_start_time"></a> [managedactions\_preferred\_start\_time](#input\_managedactions\_preferred\_start\_time) | Configure a maintenance window for managed actions in UTC | `string` | `"Sun:10:00"` | no |
+| <a name="input_subnet_availability_zone"></a> [subnet\_availability\_zone](#input\_subnet\_availability\_zone) | AWS availability zone | `string` | `"us-east-1a"` | no |
+| <a name="input_vpc_cidr_block"></a> [vpc\_cidr\_block](#input\_vpc\_cidr\_block) | The CIDR block for the association. | `string` | `"192.168.0.0/24"` | no |
+| <a name="input_vpc_enable_dns_hostnames"></a> [vpc\_enable\_dns\_hostnames](#input\_vpc\_enable\_dns\_hostnames) | Whether or not the VPC has DNS hostname support. | `bool` | `true` | no |
+| <a name="input_vpc_enable_dns_support"></a> [vpc\_enable\_dns\_support](#input\_vpc\_enable\_dns\_support) | Whether or not the VPC has DNS support. | `bool` | `true` | no |
+| <a name="input_vpc_instance_tenancy"></a> [vpc\_instance\_tenancy](#input\_vpc\_instance\_tenancy) | The allowed tenancy of instances launched into the selected VPC. | `string` | `"default"` | no |
+
+## Outputs
+
+| Name | Description |
+|------|-------------|
+| <a name="output_environment_cname"></a> [environment\_cname](#output\_environment\_cname) | n/a |
+| <a name="output_environment_name"></a> [environment\_name](#output\_environment\_name) | n/a |
+<!-- END_TF_DOCS --> \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/main.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/main.tf
new file mode 100644
index 0000000000..c6fcbf858b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/main.tf
@@ -0,0 +1,12 @@
+module "elastic_beanstalk_application" {
+ source = "../../terraform-aws-elastic-beanstalk-application"
+ application_description = "FD.io CSIT Results Dashboard"
+ application_name = "fdio-csit-dash-app"
+}
+
+module "elastic_beanstalk_environment" {
+ source = "../"
+ environment_application = module.elastic_beanstalk_application.application_name
+ environment_description = module.elastic_beanstalk_application.application_description
+ environment_name = "fdio-csit-dash-env"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/output.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/output.tf
new file mode 100644
index 0000000000..290e2a1c5a
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/output.tf
@@ -0,0 +1,9 @@
+output "elastic_beanstalk_application_name" {
+ value = module.elastic_beanstalk_application.application_name
+ description = "Elastic Beanstalk Application name"
+}
+
+output "elastic_beanstalk_application_description" {
+ value = module.elastic_beanstalk_application.application_description
+ description = "Elastic Beanstalk Application description"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/providers.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/providers.tf
new file mode 100644
index 0000000000..5ff54f0d65
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/providers.tf
@@ -0,0 +1,3 @@
+provider "aws" {
+ region = var.region
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/variables.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/variables.tf
new file mode 100644
index 0000000000..3c07178e06
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/variables.tf
@@ -0,0 +1,23 @@
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "us-east-1"
+}
+
+variable "environment_application" {
+ description = "The name of the application, must be unique within account."
+ type = string
+ default = "Beanstalk Application"
+}
+
+variable "application_description" {
+ description = "Short description of the application."
+ type = string
+ default = "Beanstalk Application"
+}
+
+variable "application_name" {
+ description = "The name of the application, must be unique within account."
+ type = string
+ default = "Beanstalk"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/versions.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/versions.tf
new file mode 100644
index 0000000000..af1be4a4e1
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/example/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 4.3.0"
+ }
+ }
+ required_version = ">= 1.1.4"
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/main.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/main.tf
new file mode 100644
index 0000000000..44373ed4de
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/main.tf
@@ -0,0 +1,690 @@
+locals {
+ tags = {
+ "Name" = "${var.application_name}"
+ "Environment" = "${var.application_name}"
+ }
+
+ # Settings for all loadbalancer types
+ generic_elb_settings = [
+ {
+ namespace = "aws:elasticbeanstalk:environment"
+ name = "LoadBalancerType"
+ value = var.environment_loadbalancer_type
+ }
+ ]
+
+ elb_settings = [
+ {
+ namespace = "aws:ec2:vpc"
+ name = "ELBSubnets"
+ value = join(",", [aws_subnet.subnet_a.id, aws_subnet.subnet_b.id])
+ },
+ {
+ namespace = "aws:elasticbeanstalk:environment:process:default"
+ name = "Port"
+ value = var.environment_process_default_port
+ },
+ {
+ namespace = "aws:elasticbeanstalk:environment:process:default"
+ name = "Protocol"
+ value = var.environment_loadbalancer_type == "network" ? "TCP" : "HTTP"
+ },
+ {
+ namespace = "aws:ec2:vpc"
+ name = "ELBScheme"
+ value = var.environment_type == "LoadBalanced" ? var.elb_scheme : ""
+ },
+ {
+ namespace = "aws:elasticbeanstalk:environment:process:default"
+ name = "HealthCheckInterval"
+ value = var.environment_process_default_healthcheck_interval
+ },
+ {
+ namespace = "aws:elasticbeanstalk:environment:process:default"
+ name = "HealthyThresholdCount"
+ value = var.environment_process_default_healthy_threshold_count
+ },
+ {
+ namespace = "aws:elasticbeanstalk:environment:process:default"
+ name = "UnhealthyThresholdCount"
+ value = var.environment_process_default_unhealthy_threshold_count
+ }
+ ]
+
+ generic_alb_settings = [
+ {
+ namespace = "aws:elbv2:loadbalancer"
+ name = "SecurityGroups"
+ value = join(",", sort(var.environment_loadbalancer_security_groups))
+ }
+ ]
+
+ alb_settings = [
+ {
+ namespace = "aws:elbv2:listener:default"
+ name = "ListenerEnabled"
+ value = var.default_listener_enabled || var.environment_loadbalancer_ssl_certificate_id == "" ? "true" : "false"
+ },
+ {
+ namespace = "aws:elbv2:loadbalancer"
+ name = "ManagedSecurityGroup"
+ value = var.environment_loadbalancer_managed_security_group
+ },
+ {
+ namespace = "aws:elbv2:listener:443"
+ name = "ListenerEnabled"
+ value = var.environment_loadbalancer_ssl_certificate_id == "" ? "false" : "true"
+ },
+ {
+ namespace = "aws:elbv2:listener:443"
+ name = "Protocol"
+ value = "HTTPS"
+ },
+ {
+ namespace = "aws:elbv2:listener:443"
+ name = "SSLCertificateArns"
+ value = var.environment_loadbalancer_ssl_certificate_id
+ },
+ {
+ namespace = "aws:elasticbeanstalk:environment:process:default"
+ name = "HealthCheckPath"
+ value = var.application_healthcheck_url
+ },
+ {
+ namespace = "aws:elasticbeanstalk:environment:process:default"
+ name = "MatcherHTTPCode"
+ value = join(",", sort(var.default_matcher_http_code))
+ },
+ {
+ namespace = "aws:elasticbeanstalk:environment:process:default"
+ name = "HealthCheckTimeout"
+ value = var.default_health_check_timeout
+ }
+ ]
+
+ nlb_settings = [
+ {
+ namespace = "aws:elbv2:listener:default"
+ name = "ListenerEnabled"
+ value = var.default_listener_enabled
+ }
+ ]
+
+ settings_nlb = var.environment_loadbalancer_type == "network" ? concat(local.nlb_settings, local.generic_elb_settings, local.elb_settings) : []
+ settings_alb = var.environment_loadbalancer_type == "application" ? concat(local.generic_alb_settings, local.alb_settings, local.generic_elb_settings, local.elb_settings) : []
+
+ # Full set of LoadBlanacer settings.
+ elb = var.environment_tier == "WebServer" ? concat(local.settings_nlb, local.settings_alb) : []
+}
+
+# Create elastic beanstalk VPC
+resource "aws_vpc" "vpc" {
+ assign_generated_ipv6_cidr_block = true
+ cidr_block = var.vpc_cidr_block
+ enable_dns_hostnames = var.vpc_enable_dns_hostnames
+ enable_dns_support = var.vpc_enable_dns_support
+ instance_tenancy = var.vpc_instance_tenancy
+ tags = local.tags
+}
+
+# Create elastic beanstalk Subnets
+resource "aws_subnet" "subnet_a" {
+ depends_on = [
+ aws_vpc.vpc
+ ]
+ availability_zone = var.subnet_a_availability_zone
+ assign_ipv6_address_on_creation = true
+ cidr_block = var.subnet_a_cidr_block
+ ipv6_cidr_block = cidrsubnet(aws_vpc.vpc.ipv6_cidr_block, 8, 1)
+ map_public_ip_on_launch = true
+ vpc_id = aws_vpc.vpc.id
+ tags = local.tags
+}
+
+resource "aws_subnet" "subnet_b" {
+ depends_on = [
+ aws_vpc.vpc
+ ]
+ availability_zone = var.subnet_b_availability_zone
+ assign_ipv6_address_on_creation = true
+ cidr_block = var.subnet_b_cidr_block
+ ipv6_cidr_block = cidrsubnet(aws_vpc.vpc.ipv6_cidr_block, 8, 2)
+ map_public_ip_on_launch = true
+ vpc_id = aws_vpc.vpc.id
+ tags = local.tags
+}
+
+resource "aws_internet_gateway" "internet_gateway" {
+ depends_on = [
+ aws_vpc.vpc
+ ]
+ vpc_id = aws_vpc.vpc.id
+ tags = local.tags
+}
+
+resource "aws_route" "route" {
+ depends_on = [
+ aws_vpc.vpc,
+ aws_internet_gateway.internet_gateway
+ ]
+ destination_cidr_block = "0.0.0.0/0"
+ gateway_id = aws_internet_gateway.internet_gateway.id
+ route_table_id = aws_vpc.vpc.main_route_table_id
+}
+
+# Create elastic beanstalk IAM mapping
+data "aws_iam_policy_document" "service" {
+ statement {
+ actions = [
+ "sts:AssumeRole"
+ ]
+ principals {
+ type = "Service"
+ identifiers = ["elasticbeanstalk.amazonaws.com"]
+ }
+ effect = "Allow"
+ }
+}
+
+resource "aws_iam_role" "service" {
+ assume_role_policy = data.aws_iam_policy_document.service.json
+ name = "${var.application_name}-eb-service"
+}
+
+resource "aws_iam_role_policy_attachment" "enhanced_health" {
+ policy_arn = "arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkEnhancedHealth"
+ role = aws_iam_role.service.name
+}
+
+resource "aws_iam_role_policy_attachment" "service" {
+ policy_arn = "arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkService"
+ role = aws_iam_role.service.name
+}
+
+data "aws_iam_policy_document" "ec2" {
+ statement {
+ actions = [
+ "sts:AssumeRole"
+ ]
+ principals {
+ type = "Service"
+ identifiers = ["ec2.amazonaws.com"]
+ }
+ effect = "Allow"
+ }
+ statement {
+ actions = [
+ "sts:AssumeRole",
+ ]
+ principals {
+ type = "Service"
+ identifiers = ["ssm.amazonaws.com"]
+ }
+ effect = "Allow"
+ }
+}
+
+resource "aws_iam_role" "ec2" {
+ assume_role_policy = data.aws_iam_policy_document.ec2.json
+ name = "${var.application_name}-eb-ec2"
+}
+
+resource "aws_iam_instance_profile" "ec2_iam_instance_profile" {
+ name = "${var.application_name}-iam-instance-profile"
+ role = aws_iam_role.ec2.name
+}
+
+resource "aws_iam_role_policy_attachment" "multicontainer_docker" {
+ policy_arn = "arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker"
+ role = aws_iam_role.ec2.name
+}
+
+resource "aws_iam_role_policy_attachment" "web_tier" {
+ policy_arn = "arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier"
+ role = aws_iam_role.ec2.name
+}
+
+resource "aws_iam_role_policy_attachment" "worker_tier" {
+ policy_arn = "arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier"
+ role = aws_iam_role.ec2.name
+}
+
+resource "aws_iam_role_policy_attachment" "ssm_automation" {
+ policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonSSMAutomationRole"
+ role = aws_iam_role.ec2.name
+}
+
+resource "aws_iam_role_policy_attachment" "ssm_ec2" {
+ policy_arn = "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"
+ role = aws_iam_role.ec2.name
+}
+
+resource "aws_iam_role_policy_attachment" "ecr_readonly" {
+ policy_arn = "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
+ role = aws_iam_role.ec2.name
+}
+
+resource "aws_ssm_activation" "ec2" {
+ depends_on = [
+ aws_iam_role.ec2,
+ aws_iam_role_policy_attachment.ssm_ec2
+ ]
+ name = "${var.application_name}-ec2-activation"
+ iam_role = aws_iam_role.ec2.id
+ registration_limit = 3
+}
+
+data "aws_iam_policy_document" "default" {
+ statement {
+ actions = [
+ "elasticloadbalancing:DescribeInstanceHealth",
+ "elasticloadbalancing:DescribeLoadBalancers",
+ "elasticloadbalancing:DescribeTargetHealth",
+ "ec2:DescribeInstances",
+ "ec2:DescribeInstanceStatus",
+ "ec2:GetConsoleOutput",
+ "ec2:AssociateAddress",
+ "ec2:DescribeAddresses",
+ "ec2:DescribeSecurityGroups",
+ "sqs:GetQueueAttributes",
+ "sqs:GetQueueUrl",
+ "autoscaling:DescribeAutoScalingGroups",
+ "autoscaling:DescribeAutoScalingInstances",
+ "autoscaling:DescribeScalingActivities",
+ "autoscaling:DescribeNotificationConfigurations",
+ ]
+ resources = ["*"]
+ effect = "Allow"
+ }
+
+ statement {
+ sid = "AllowOperations"
+ actions = [
+ "autoscaling:AttachInstances",
+ "autoscaling:CreateAutoScalingGroup",
+ "autoscaling:CreateLaunchConfiguration",
+ "autoscaling:DeleteLaunchConfiguration",
+ "autoscaling:DeleteAutoScalingGroup",
+ "autoscaling:DeleteScheduledAction",
+ "autoscaling:DescribeAccountLimits",
+ "autoscaling:DescribeAutoScalingGroups",
+ "autoscaling:DescribeAutoScalingInstances",
+ "autoscaling:DescribeLaunchConfigurations",
+ "autoscaling:DescribeLoadBalancers",
+ "autoscaling:DescribeNotificationConfigurations",
+ "autoscaling:DescribeScalingActivities",
+ "autoscaling:DescribeScheduledActions",
+ "autoscaling:DetachInstances",
+ "autoscaling:PutScheduledUpdateGroupAction",
+ "autoscaling:ResumeProcesses",
+ "autoscaling:SetDesiredCapacity",
+ "autoscaling:SetInstanceProtection",
+ "autoscaling:SuspendProcesses",
+ "autoscaling:TerminateInstanceInAutoScalingGroup",
+ "autoscaling:UpdateAutoScalingGroup",
+ "cloudwatch:PutMetricAlarm",
+ "ec2:AssociateAddress",
+ "ec2:AllocateAddress",
+ "ec2:AuthorizeSecurityGroupEgress",
+ "ec2:AuthorizeSecurityGroupIngress",
+ "ec2:CreateSecurityGroup",
+ "ec2:DeleteSecurityGroup",
+ "ec2:DescribeAccountAttributes",
+ "ec2:DescribeAddresses",
+ "ec2:DescribeImages",
+ "ec2:DescribeInstances",
+ "ec2:DescribeKeyPairs",
+ "ec2:DescribeSecurityGroups",
+ "ec2:DescribeSnapshots",
+ "ec2:DescribeSubnets",
+ "ec2:DescribeVpcs",
+ "ec2:DisassociateAddress",
+ "ec2:ReleaseAddress",
+ "ec2:RevokeSecurityGroupEgress",
+ "ec2:RevokeSecurityGroupIngress",
+ "ec2:TerminateInstances",
+ "ecs:CreateCluster",
+ "ecs:DeleteCluster",
+ "ecs:DescribeClusters",
+ "ecs:RegisterTaskDefinition",
+ "elasticbeanstalk:*",
+ "elasticloadbalancing:ApplySecurityGroupsToLoadBalancer",
+ "elasticloadbalancing:ConfigureHealthCheck",
+ "elasticloadbalancing:CreateLoadBalancer",
+ "elasticloadbalancing:DeleteLoadBalancer",
+ "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
+ "elasticloadbalancing:DescribeInstanceHealth",
+ "elasticloadbalancing:DescribeLoadBalancers",
+ "elasticloadbalancing:DescribeTargetHealth",
+ "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
+ "elasticloadbalancing:DescribeTargetGroups",
+ "elasticloadbalancing:RegisterTargets",
+ "elasticloadbalancing:DeregisterTargets",
+ "iam:ListRoles",
+ "iam:PassRole",
+ "logs:CreateLogGroup",
+ "logs:PutRetentionPolicy",
+ "rds:DescribeDBEngineVersions",
+ "rds:DescribeDBInstances",
+ "rds:DescribeOrderableDBInstanceOptions",
+ "s3:GetObject",
+ "s3:GetObjectAcl",
+ "s3:ListBucket",
+ "sns:CreateTopic",
+ "sns:GetTopicAttributes",
+ "sns:ListSubscriptionsByTopic",
+ "sns:Subscribe",
+ "sqs:GetQueueAttributes",
+ "sqs:GetQueueUrl",
+ "codebuild:CreateProject",
+ "codebuild:DeleteProject",
+ "codebuild:BatchGetBuilds",
+ "codebuild:StartBuild",
+ ]
+ resources = ["*"]
+ effect = "Allow"
+ }
+
+ statement {
+ sid = "AllowS3OperationsOnElasticBeanstalkBuckets"
+ actions = [
+ "s3:*"
+ ]
+ resources = [
+ "arn:aws:s3:::*"
+ ]
+ effect = "Allow"
+ }
+
+ statement {
+ sid = "AllowDeleteCloudwatchLogGroups"
+ actions = [
+ "logs:DeleteLogGroup"
+ ]
+ resources = [
+ "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk*"
+ ]
+ effect = "Allow"
+ }
+
+ statement {
+ sid = "AllowCloudformationOperationsOnElasticBeanstalkStacks"
+ actions = [
+ "cloudformation:*"
+ ]
+ resources = [
+ "arn:aws:cloudformation:*:*:stack/awseb-*",
+ "arn:aws:cloudformation:*:*:stack/eb-*"
+ ]
+ effect = "Allow"
+ }
+}
+
+resource "aws_iam_role_policy" "default" {
+ depends_on = [
+ aws_iam_role.ec2
+ ]
+ name = "${var.application_name}-eb-default"
+ policy = data.aws_iam_policy_document.default.json
+ role = aws_iam_role.ec2.id
+}
+
+# Create elastic beanstalk Environment
+resource "aws_elastic_beanstalk_environment" "environment" {
+ depends_on = [
+ aws_vpc.vpc,
+ aws_subnet.subnet_a,
+ aws_subnet.subnet_b,
+ aws_ssm_activation.ec2
+ ]
+ application = var.environment_application
+ description = var.environment_description
+ name = var.environment_name
+ solution_stack_name = var.environment_solution_stack_name
+ tier = var.environment_tier
+ wait_for_ready_timeout = var.environment_wait_for_ready_timeout
+ version_label = var.environment_version_label
+ tags = local.tags
+
+ # aws:ec2:instances
+ setting {
+ namespace = "aws:ec2:instances"
+ name = "InstanceTypes"
+ value = var.instances_instance_types
+ }
+
+ # aws:ec2:vpc
+ setting {
+ namespace = "aws:ec2:vpc"
+ name = "VPCId"
+ value = aws_vpc.vpc.id
+ }
+
+ setting {
+ namespace = "aws:ec2:vpc"
+ name = "Subnets"
+ value = join(",", [aws_subnet.subnet_a.id, aws_subnet.subnet_b.id])
+ }
+
+ setting {
+ namespace = "aws:ec2:vpc"
+ name = "AssociatePublicIpAddress"
+ value = var.associate_public_ip_address
+ }
+
+ setting {
+ namespace = "aws:elasticbeanstalk:environment"
+ name = "ServiceRole"
+ value = aws_iam_role.service.name
+ }
+
+ # aws:autoscaling:launchconfiguration
+ setting {
+ namespace = "aws:autoscaling:launchconfiguration"
+ name = "IamInstanceProfile"
+ value = aws_iam_instance_profile.ec2_iam_instance_profile.name
+ }
+
+ setting {
+ namespace = "aws:autoscaling:launchconfiguration"
+ name = "DisableIMDSv1"
+ value = true
+ }
+
+ dynamic "setting" {
+ for_each = local.elb
+ content {
+ namespace = setting.value["namespace"]
+ name = setting.value["name"]
+ value = setting.value["value"]
+ }
+ }
+
+ # aws:autoscaling:updatepolicy:rollingupdate
+ setting {
+ namespace = "aws:autoscaling:updatepolicy:rollingupdate"
+ name = "RollingUpdateEnabled"
+ value = var.autoscaling_updatepolicy_rolling_update_enabled
+ }
+
+ setting {
+ namespace = "aws:autoscaling:updatepolicy:rollingupdate"
+ name = "RollingUpdateType"
+ value = var.autoscaling_updatepolicy_rolling_update_type
+ }
+
+ setting {
+ namespace = "aws:autoscaling:updatepolicy:rollingupdate"
+ name = "MinInstancesInService"
+ value = var.autoscaling_updatepolicy_min_instance_in_service
+ }
+
+ setting {
+ namespace = "aws:elasticbeanstalk:application"
+ name = "Application Healthcheck URL"
+ value = var.application_healthcheck_url
+ }
+
+ # aws:elasticbeanstalk:command
+ setting {
+ namespace = "aws:elasticbeanstalk:command"
+ name = "DeploymentPolicy"
+ value = var.command_deployment_policy
+ }
+
+ # aws:autoscaling:updatepolicy:rollingupdate
+ setting {
+ namespace = "aws:autoscaling:updatepolicy:rollingupdate"
+ name = "MaxBatchSize"
+ value = var.updatepolicy_max_batch_size
+ }
+
+ # aws:elasticbeanstalk:healthreporting:system
+ setting {
+ namespace = "aws:elasticbeanstalk:healthreporting:system"
+ name = "SystemType"
+ value = var.healthreporting_system_type
+ }
+
+ # aws:elasticbeanstalk:managedactions
+ setting {
+ namespace = "aws:elasticbeanstalk:managedactions"
+ name = "ManagedActionsEnabled"
+ value = var.managedactions_managed_actions_enabled ? "true" : "false"
+ }
+
+ setting {
+ namespace = "aws:elasticbeanstalk:managedactions"
+ name = "PreferredStartTime"
+ value = var.managedactions_preferred_start_time
+ }
+
+ # aws:elasticbeanstalk:managedactions:platformupdate
+ setting {
+ namespace = "aws:elasticbeanstalk:managedactions:platformupdate"
+ name = "UpdateLevel"
+ value = var.managedactions_platformupdate_update_level
+ }
+
+ setting {
+ namespace = "aws:elasticbeanstalk:managedactions:platformupdate"
+ name = "InstanceRefreshEnabled"
+ value = var.managedactions_platformupdate_instance_refresh_enabled
+ }
+
+ setting {
+ namespace = "aws:elasticbeanstalk:command"
+ name = "IgnoreHealthCheck"
+ value = var.command_ignore_health_check
+ }
+
+ # aws:autoscaling:asg
+ setting {
+ namespace = "aws:autoscaling:asg"
+ name = "MinSize"
+ value = var.autoscaling_asg_minsize
+ }
+ setting {
+ namespace = "aws:autoscaling:asg"
+ name = "MaxSize"
+ value = var.autoscaling_asg_maxsize
+ }
+
+ # aws:autoscaling:trigger
+ setting {
+ namespace = "aws:autoscaling:trigger"
+ name = "MeasureName"
+ value = var.autoscaling_trigger_measure_name
+ }
+
+ setting {
+ namespace = "aws:autoscaling:trigger"
+ name = "Statistic"
+ value = var.autoscaling_trigger_statistic
+ }
+
+ setting {
+ namespace = "aws:autoscaling:trigger"
+ name = "Unit"
+ value = var.autoscaling_trigger_unit
+ }
+
+ setting {
+ namespace = "aws:autoscaling:trigger"
+ name = "LowerThreshold"
+ value = var.autoscaling_trigger_lower_threshold
+ }
+
+ setting {
+ namespace = "aws:autoscaling:trigger"
+ name = "LowerBreachScaleIncrement"
+ value = var.autoscaling_trigger_lower_breach_scale_increment
+ }
+
+ setting {
+ namespace = "aws:autoscaling:trigger"
+ name = "UpperThreshold"
+ value = var.autoscaling_trigger_upper_threshold
+ }
+
+ setting {
+ namespace = "aws:autoscaling:trigger"
+ name = "UpperBreachScaleIncrement"
+ value = var.autoscaling_trigger_upper_breach_scale_increment
+ }
+
+ # aws:elasticbeanstalk:hostmanager
+ setting {
+ namespace = "aws:elasticbeanstalk:hostmanager"
+ name = "LogPublicationControl"
+ value = var.hostmanager_log_publication_control ? "true" : "false"
+ }
+
+ # aws:elasticbeanstalk:cloudwatch:logs
+ setting {
+ namespace = "aws:elasticbeanstalk:cloudwatch:logs"
+ name = "StreamLogs"
+ value = var.cloudwatch_logs_stream_logs ? "true" : "false"
+ }
+
+ setting {
+ namespace = "aws:elasticbeanstalk:cloudwatch:logs"
+ name = "DeleteOnTerminate"
+ value = var.cloudwatch_logs_delete_on_terminate ? "true" : "false"
+ }
+
+ setting {
+ namespace = "aws:elasticbeanstalk:cloudwatch:logs"
+ name = "RetentionInDays"
+ value = var.cloudwatch_logs_retention_in_days
+ }
+
+ # aws:elasticbeanstalk:cloudwatch:logs:health
+ setting {
+ namespace = "aws:elasticbeanstalk:cloudwatch:logs:health"
+ name = "HealthStreamingEnabled"
+ value = var.cloudwatch_logs_health_health_streaming_enabled ? "true" : "false"
+ }
+
+ setting {
+ namespace = "aws:elasticbeanstalk:cloudwatch:logs:health"
+ name = "DeleteOnTerminate"
+ value = var.cloudwatch_logs_health_delete_on_terminate ? "true" : "false"
+ }
+
+ setting {
+ namespace = "aws:elasticbeanstalk:cloudwatch:logs:health"
+ name = "RetentionInDays"
+ value = var.cloudwatch_logs_health_retention_in_days
+ }
+
+ # aws:elasticbeanstalk:application:environment
+ dynamic "setting" {
+ for_each = var.environment_variables
+ content {
+ namespace = "aws:elasticbeanstalk:application:environment"
+ name = setting.key
+ value = setting.value
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/output.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/output.tf
new file mode 100644
index 0000000000..de7cdae87b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/output.tf
@@ -0,0 +1,7 @@
+output "environment_cname" {
+ value = aws_elastic_beanstalk_environment.environment.cname
+}
+
+output "environment_name" {
+ value = aws_elastic_beanstalk_environment.environment.name
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/variables.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/variables.tf
new file mode 100644
index 0000000000..a442215a9e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/variables.tf
@@ -0,0 +1,410 @@
+# Variables for elastic beanstalk VPC
+variable "vpc_cidr_block" {
+ description = "The CIDR block for the association."
+ type = string
+ default = "10.0.0.0/16"
+}
+
+variable "vpc_enable_dns_hostnames" {
+ description = "Whether or not the VPC has DNS hostname support."
+ type = bool
+ default = true
+}
+
+variable "vpc_enable_dns_support" {
+ description = "Whether or not the VPC has DNS support."
+ type = bool
+ default = true
+}
+
+variable "vpc_instance_tenancy" {
+ description = "The allowed tenancy of instances launched into the selected VPC."
+ type = string
+ default = "default"
+}
+
+# Variables for elastic beanstalk Subnet
+variable "subnet_a_availability_zone" {
+ description = "AZ for the subnet."
+ type = string
+ default = "us-east-1a"
+}
+
+variable "subnet_a_cidr_block" {
+ description = "The IPv4 CIDR block for the subnet."
+ type = string
+ default = "10.0.0.0/20"
+}
+
+variable "subnet_b_availability_zone" {
+ description = "AZ for the subnet."
+ type = string
+ default = "us-east-1b"
+}
+
+variable "subnet_b_cidr_block" {
+ description = "The IPv4 CIDR block for the subnet."
+ type = string
+ default = "10.0.16.0/20"
+}
+
+# Variables for elastic beanstalk Application
+variable "environment_application" {
+ description = "The name of the application, must be unique within account."
+ type = string
+ default = "Beanstalk Application"
+}
+
+variable "application_description" {
+ description = "Short description of the application."
+ type = string
+ default = "Beanstalk Application"
+}
+
+variable "application_name" {
+ description = "The name of the application, must be unique within account."
+ type = string
+ default = "Beanstalk"
+}
+
+variable "appversion_lifecycle_service_role_arn" {
+ description = "The service role ARN to use for application version cleanup. If left empty, the `appversion_lifecycle` block will not be created."
+ type = string
+ default = ""
+}
+
+variable "appversion_lifecycle_max_count" {
+ description = "The max number of application versions to keep"
+ type = number
+ default = 2
+}
+
+variable "appversion_lifecycle_delete_source_from_s3" {
+ description = "Whether to delete application versions from S3 source"
+ type = bool
+ default = false
+}
+
+# Variables for elastic beanstalk Environment
+variable "environment_description" {
+ description = "Short description of the environment."
+ type = string
+ default = "Beanstalk Environment"
+}
+
+variable "environment_name" {
+ description = "A unique name for this Environment. This name is used in the application URL."
+ type = string
+ default = "Beanstalk-env"
+}
+
+variable "environment_solution_stack_name" {
+ description = "A solution stack to base your environment off of."
+ type = string
+ default = "64bit Amazon Linux 2 v3.3.11 running Python 3.8"
+}
+
+variable "environment_tier" {
+ description = "The environment tier specified."
+ type = string
+ default = "WebServer"
+}
+
+variable "environment_wait_for_ready_timeout" {
+ description = "The maximum duration to wait for the Elastic Beanstalk Environment to be in a ready state before timing out"
+ type = string
+ default = "20m"
+}
+
+variable "environment_version_label" {
+ description = "The name of the Elastic Beanstalk Application Version to use in deployment."
+ type = string
+ default = ""
+}
+
+# aws:ec2:instances
+variable "instances_instance_types" {
+ description = "Instances type"
+ type = string
+ default = "t3.medium"
+}
+
+# aws:ec2:vpc
+variable "associate_public_ip_address" {
+ description = "Whether to associate public IP addresses to the instances."
+ type = bool
+ default = true
+}
+
+variable "elb_scheme" {
+ description = "Specify `internal` if you want to create an internal load balancer in your Amazon VPC so that your Elastic Beanstalk application cannot be accessed from outside your Amazon VPC."
+ type = string
+ default = "public"
+}
+
+# aws:elbv2:listener:default
+variable "default_listener_enabled" {
+ description = "Set to false to disable the listener. You can use this option to disable the default listener on port 80."
+ type = bool
+ default = true
+}
+
+# aws:elasticbeanstalk:environment
+variable "environment_loadbalancer_type" {
+ description = "Load Balancer type, e.g. 'application' or 'classic'."
+ type = string
+ default = "classic"
+}
+
+variable "environment_loadbalancer_security_groups" {
+ description = "Load balancer security groups"
+ type = list(string)
+ default = []
+}
+
+variable "environment_loadbalancer_managed_security_group" {
+ description = "Load balancer managed security group"
+ type = string
+ default = ""
+}
+
+variable "environment_loadbalancer_ssl_certificate_id" {
+ type = string
+ default = ""
+ description = "Load Balancer SSL certificate ARN. The certificate must be present in AWS Certificate Manager"
+}
+
+# aws:elasticbeanstalk:environment:process:default
+variable "environment_process_default_healthcheck_interval" {
+ description = "The interval of time, in seconds, that Elastic Load Balancing checks the health of the Amazon EC2 instances of your application."
+ type = number
+ default = 10
+}
+
+variable "environment_process_default_healthy_threshold_count" {
+ description = "The number of consecutive successful requests before Elastic Load Balancing changes the instance health status."
+ type = number
+ default = 3
+}
+
+variable "environment_process_default_port" {
+ description = "Port application is listening on."
+ type = number
+ default = 5000
+}
+
+variable "environment_process_default_unhealthy_threshold_count" {
+ description = "The number of consecutive unsuccessful requests before Elastic Load Balancing changes the instance health status."
+ type = number
+ default = 3
+}
+
+# aws:autoscaling:updatepolicy:rollingupdate
+variable "autoscaling_updatepolicy_rolling_update_enabled" {
+ description = "Whether to enable rolling update."
+ type = bool
+ default = true
+}
+
+variable "autoscaling_updatepolicy_rolling_update_type" {
+ description = "`Health` or `Immutable`. Set it to `Immutable` to apply the configuration change to a fresh group of instances."
+ type = string
+ default = "Immutable"
+}
+
+variable "autoscaling_updatepolicy_min_instance_in_service" {
+ description = "Minimum number of instances in service during update."
+ type = number
+ default = 1
+}
+
+variable "application_healthcheck_url" {
+ description = "The path where health check requests are sent to."
+ type = string
+ default = "/"
+}
+
+variable "environment_listener_ssl_policy" {
+ description = "Specify a security policy to apply to the listener. This option is only applicable to environments with an application load balancer."
+ type = string
+ default = ""
+}
+
+variable "default_matcher_http_code" {
+ description = "List of HTTP codes that indicate that an instance is healthy. Note that this option is only applicable to environments with a network or application load balancer."
+ type = list(string)
+ default = ["200"]
+}
+
+variable "default_health_check_timeout" {
+ description = "The amount of time, in seconds, to wait for a response during a health check. Note that this option is only applicable to environments with an application load balancer"
+ type = number
+ default = 5
+}
+
+# aws:elasticbeanstalk:command
+variable "command_deployment_policy" {
+ description = "Use the DeploymentPolicy option to set the deployment type. The following values are supported: `AllAtOnce`, `Rolling`, `RollingWithAdditionalBatch`, `Immutable`, `TrafficSplitting`."
+ type = string
+ default = "Rolling"
+}
+
+# aws:autoscaling:updatepolicy:rollingupdate
+variable "updatepolicy_max_batch_size" {
+ description = "Maximum number of instances to update at once."
+ type = number
+ default = 1
+}
+
+# aws:elasticbeanstalk:healthreporting:system
+variable "healthreporting_system_type" {
+ description = "Whether to enable enhanced health reporting for this environment"
+ type = string
+ default = "enhanced"
+}
+
+# aws:elasticbeanstalk:managedactions
+variable "managedactions_managed_actions_enabled" {
+ description = "Enable managed platform updates. When you set this to true, you must also specify a `PreferredStartTime` and `UpdateLevel`"
+ type = bool
+ default = true
+}
+
+variable "managedactions_preferred_start_time" {
+ description = "Configure a maintenance window for managed actions in UTC"
+ type = string
+ default = "Sun:10:00"
+}
+
+# aws:elasticbeanstalk:managedactions:platformupdate
+variable "managedactions_platformupdate_update_level" {
+ description = "The highest level of update to apply with managed platform updates"
+ type = string
+ default = "minor"
+}
+
+variable "managedactions_platformupdate_instance_refresh_enabled" {
+ description = "Enable weekly instance replacement."
+ type = bool
+ default = true
+}
+
+variable "command_ignore_health_check" {
+ description = "Do not cancel a deployment due to failed health checks"
+ type = bool
+ default = true
+}
+
+# aws:autoscaling:asg
+variable "autoscaling_asg_minsize" {
+ description = "Minumum instances to launch"
+ type = number
+ default = 1
+}
+
+variable "autoscaling_asg_maxsize" {
+ description = "Maximum instances to launch"
+ type = number
+ default = 2
+}
+
+# aws:autoscaling:trigger
+variable "autoscaling_trigger_measure_name" {
+ description = "Metric used for your Auto Scaling trigger"
+ type = string
+ default = "CPUUtilization"
+}
+
+variable "autoscaling_trigger_statistic" {
+ description = "Statistic the trigger should use, such as Average"
+ type = string
+ default = "Average"
+}
+
+variable "autoscaling_trigger_unit" {
+ description = "Unit for the trigger measurement, such as Bytes"
+ type = string
+ default = "Percent"
+}
+
+variable "autoscaling_trigger_lower_threshold" {
+ description = "Minimum level of autoscale metric to remove an instance"
+ type = number
+ default = 20
+}
+
+variable "autoscaling_trigger_lower_breach_scale_increment" {
+ description = "How many Amazon EC2 instances to remove when performing a scaling activity."
+ type = number
+ default = -1
+}
+
+variable "autoscaling_trigger_upper_threshold" {
+ description = "Maximum level of autoscale metric to add an instance"
+ type = number
+ default = 80
+}
+
+variable "autoscaling_trigger_upper_breach_scale_increment" {
+ description = "How many Amazon EC2 instances to add when performing a scaling activity"
+ type = number
+ default = 1
+}
+
+# aws:elasticbeanstalk:hostmanager
+variable "hostmanager_log_publication_control" {
+ description = "Copy the log files for your application's Amazon EC2 instances to the Amazon S3 bucket associated with your application"
+ type = bool
+ default = true
+}
+
+# aws:elasticbeanstalk:cloudwatch:logs
+variable "cloudwatch_logs_stream_logs" {
+ description = "Whether to create groups in CloudWatch Logs for proxy and deployment logs, and stream logs from each instance in your environment"
+ type = bool
+ default = true
+}
+
+variable "cloudwatch_logs_delete_on_terminate" {
+ description = "Whether to delete the log groups when the environment is terminated. If false, the logs are kept RetentionInDays days"
+ type = bool
+ default = true
+}
+
+variable "cloudwatch_logs_retention_in_days" {
+ description = "The number of days to keep log events before they expire."
+ type = number
+ default = 3
+}
+
+# aws:elasticbeanstalk:cloudwatch:logs:health
+variable "cloudwatch_logs_health_health_streaming_enabled" {
+ description = "For environments with enhanced health reporting enabled, whether to create a group in CloudWatch Logs for environment health and archive Elastic Beanstalk environment health data. For information about enabling enhanced health, see aws:elasticbeanstalk:healthreporting:system."
+ type = bool
+ default = true
+}
+
+variable "cloudwatch_logs_health_delete_on_terminate" {
+ description = "Whether to delete the log group when the environment is terminated. If false, the health data is kept RetentionInDays days."
+ type = bool
+ default = true
+}
+
+variable "cloudwatch_logs_health_retention_in_days" {
+ description = "The number of days to keep the archived health data before it expires."
+ type = number
+ default = 3
+}
+
+variable "environment_type" {
+ description = "Environment type, e.g. 'LoadBalanced' or 'SingleInstance'. If setting to 'SingleInstance', `rolling_update_type` must be set to 'Time', `updating_min_in_service` must be set to 0, and `loadbalancer_subnets` will be unused (it applies to the ELB, which does not exist in SingleInstance environments)."
+ type = string
+ default = "LoadBalanced"
+}
+
+# aws:elasticbeanstalk:application:environment
+variable "environment_variables" {
+ description = "Map of custom ENV variables to be provided to the application."
+ type = map(string)
+ default = {}
+}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/versions.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/versions.tf
new file mode 100644
index 0000000000..5aa6f2519e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/versions.tf
@@ -0,0 +1,12 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.7.0"
+ }
+ vault = {
+ version = ">= 3.2.1"
+ }
+ }
+ required_version = ">= 1.5.4"
+}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/main.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/main.tf
new file mode 100644
index 0000000000..7eb5ea59b9
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/main.tf
@@ -0,0 +1,21 @@
+locals {
+ bucket = var.application_bucket
+ description = var.application_description
+ name = var.application_name
+ name_version = "${var.application_name}-base-1.${var.application_version}"
+ source = var.application_source
+}
+
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault_name}-path"
+ role = "${var.vault_name}-role"
+}
+
+module "elastic_beanstalk_application_version" {
+ source = "../terraform-aws-elastic-beanstalk-application-version"
+ application_bucket = local.bucket
+ application_description = local.description
+ application_name = local.name
+ application_name_version = local.name_version
+ application_source = local.source
+}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/output.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/output.tf
new file mode 100644
index 0000000000..0126e7a9c7
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/output.tf
@@ -0,0 +1,3 @@
+output "application_version" {
+ value = module.elastic_beanstalk_application_version.application_version
+}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/providers.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/providers.tf
new file mode 100644
index 0000000000..7241b27c16
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = var.vault_provider_address
+ skip_tls_verify = var.vault_provider_skip_tls_verify
+ token = var.vault_provider_token
+}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/variables.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/variables.tf
new file mode 100644
index 0000000000..653a92b970
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/variables.tf
@@ -0,0 +1,58 @@
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-north-1"
+}
+
+variable "vault_provider_address" {
+ description = "Vault cluster address."
+ type = string
+ default = "http://10.30.51.24:8200"
+}
+
+variable "vault_provider_skip_tls_verify" {
+ description = "Verification of the Vault server's TLS certificate."
+ type = bool
+ default = false
+}
+
+variable "vault_provider_token" {
+ description = "Vault root token."
+ type = string
+ default = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
+}
+
+variable "vault_name" {
+ type = string
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
+
+variable "application_bucket" {
+ description = "The name of the bucket."
+ type = string
+ default = "elasticbeanstalk-eu-north-1-407116685360"
+}
+
+variable "application_description" {
+ description = "Short description of the Application Version."
+ type = string
+ default = "FD.io CDASH"
+}
+
+variable "application_name" {
+ description = "Name of the Beanstalk Application."
+ type = string
+ default = "fdio-csit-dash-app-m7g"
+}
+
+variable "application_source" {
+ description = "The source file with application code."
+ type = string
+ default = "../../csit.infra.dash/app.zip"
+}
+
+variable "application_version" {
+ description = "Application version string."
+ type = number
+ default = 1
+}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/versions.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/versions.tf
new file mode 100644
index 0000000000..cd4761e34c
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/versions.tf
@@ -0,0 +1,12 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.31.0"
+ }
+ vault = {
+ version = ">= 3.23.0"
+ }
+ }
+ required_version = ">= 1.4.2"
+}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf
new file mode 100644
index 0000000000..9f115cd6c6
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf
@@ -0,0 +1,124 @@
+data "vault_generic_secret" "fdio_docs" {
+ path = "kv/secret/data/etl/fdio_docs"
+}
+
+data "vault_aws_access_credentials" "creds" {
+ backend = "${var.vault_name}-path"
+ role = "${var.vault_name}-role"
+}
+
+module "elastic_beanstalk_application" {
+ source = "../terraform-aws-elastic-beanstalk-application"
+
+ # application
+ application_description = "FD.io CDASH M7G"
+ application_name = "fdio-csit-dash-app-m7g"
+ appversion_lifecycle_service_role_arn = "arn:aws:iam::407116685360:role/aws-service-role/elasticbeanstalk.amazonaws.com/AWSServiceRoleForElasticBeanstalk"
+ appversion_lifecycle_max_count = 10
+ appversion_lifecycle_delete_source_from_s3 = false
+}
+
+module "elastic_beanstalk_environment" {
+ source = "../terraform-aws-elastic-beanstalk-environment"
+
+ # environment
+ application_name = "fdio-csit-dash-app-m7g"
+
+ # vpc
+ vpc_cidr_block = "10.0.0.0/16"
+ vpc_enable_dns_hostnames = true
+ vpc_enable_dns_support = true
+ vpc_instance_tenancy = "default"
+
+ # subnet
+ subnet_a_availability_zone = "eu-north-1a"
+ subnet_a_cidr_block = "10.0.0.0/20"
+ subnet_b_availability_zone = "eu-north-1b"
+ subnet_b_cidr_block = "10.0.16.0/20"
+
+ # environment
+ environment_application = module.elastic_beanstalk_application.application_name
+ environment_description = module.elastic_beanstalk_application.application_description
+ environment_name = "fdio-csit-dash-env-m7g"
+ environment_solution_stack_name = "64bit Amazon Linux 2023 v4.0.6 running Python 3.11"
+ environment_tier = "WebServer"
+ environment_wait_for_ready_timeout = "25m"
+ environment_version_label = ""
+
+ # aws:ec2:instances
+ instances_instance_types = "m7g.2xlarge"
+
+ # aws:ec2:vpc
+ associate_public_ip_address = true
+ elb_scheme = "public"
+
+ # aws:elbv2:listener:default
+ default_listener_enabled = true
+
+ # aws:elasticbeanstalk:environment
+ environment_loadbalancer_type = "application"
+ environment_loadbalancer_ssl_certificate_id = "arn:aws:acm:eu-north-1:407116685360:certificate/3ef3c6ae-f1d4-49f0-a8cd-5d090991bf73"
+
+ # aws:elasticbeanstalk:environment:process:default
+ environment_process_default_healthcheck_interval = 10
+ environment_process_default_healthy_threshold_count = 3
+ environment_process_default_port = 5000
+ environment_process_default_unhealthy_threshold_count = 3
+
+ # aws:autoscaling:updatepolicy:rollingupdate
+ autoscaling_updatepolicy_rolling_update_enabled = true
+ autoscaling_updatepolicy_rolling_update_type = "Immutable"
+ autoscaling_updatepolicy_min_instance_in_service = 1
+
+ # aws:elasticbeanstalk:command
+ command_deployment_policy = "Rolling"
+
+ # aws:autoscaling:updatepolicy:rollingupdate
+ updatepolicy_max_batch_size = 1
+
+ # aws:elasticbeanstalk:healthreporting:system
+ healthreporting_system_type = "enhanced"
+
+ # aws:elasticbeanstalk:managedactions
+ managedactions_managed_actions_enabled = true
+ managedactions_preferred_start_time = "Sun:10:00"
+
+ # aws:elasticbeanstalk:managedactions:platformupdate
+ managedactions_platformupdate_update_level = "minor"
+ managedactions_platformupdate_instance_refresh_enabled = true
+
+ # aws:autoscaling:asg
+ autoscaling_asg_minsize = 1
+ autoscaling_asg_maxsize = 2
+
+ # aws:autoscaling:trigger
+ autoscaling_trigger_measure_name = "CPUUtilization"
+ autoscaling_trigger_statistic = "Average"
+ autoscaling_trigger_unit = "Percent"
+ autoscaling_trigger_lower_threshold = 20
+ autoscaling_trigger_lower_breach_scale_increment = -1
+ autoscaling_trigger_upper_threshold = 80
+ autoscaling_trigger_upper_breach_scale_increment = 1
+
+ # aws:elasticbeanstalk:hostmanager
+ hostmanager_log_publication_control = true
+
+ # aws:elasticbeanstalk:cloudwatch:logs
+ cloudwatch_logs_stream_logs = true
+ cloudwatch_logs_delete_on_terminate = true
+ cloudwatch_logs_retention_in_days = 3
+
+ # aws:elasticbeanstalk:cloudwatch:logs:health
+ cloudwatch_logs_health_health_streaming_enabled = true
+ cloudwatch_logs_health_delete_on_terminate = true
+ cloudwatch_logs_health_retention_in_days = 3
+
+ environment_type = "LoadBalanced"
+
+ # aws:elasticbeanstalk:application:environment
+ environment_variables = {
+ "AWS_ACCESS_KEY_ID" = data.vault_generic_secret.fdio_docs.data["access_key"]
+ "AWS_SECRET_ACCESS_KEY" = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ "AWS_DEFAULT_REGION" = data.vault_generic_secret.fdio_docs.data["region"]
+ }
+}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/output.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/output.tf
new file mode 100644
index 0000000000..094c8f5422
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/output.tf
@@ -0,0 +1,4 @@
+output "elastic_beanstalk_environment_hostname" {
+ description = "DNS hostname"
+ value = module.elastic_beanstalk_environment.environment_cname
+}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/providers.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/providers.tf
new file mode 100644
index 0000000000..7241b27c16
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/providers.tf
@@ -0,0 +1,11 @@
+provider "aws" {
+ region = var.region
+ access_key = data.vault_aws_access_credentials.creds.access_key
+ secret_key = data.vault_aws_access_credentials.creds.secret_key
+}
+
+provider "vault" {
+ address = var.vault_provider_address
+ skip_tls_verify = var.vault_provider_skip_tls_verify
+ token = var.vault_provider_token
+}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf
new file mode 100644
index 0000000000..d7ff1d19ff
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf
@@ -0,0 +1,28 @@
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "eu-north-1"
+}
+
+variable "vault_provider_address" {
+ description = "Vault cluster address."
+ type = string
+ default = "http://10.30.51.24:8200"
+}
+
+variable "vault_provider_skip_tls_verify" {
+ description = "Verification of the Vault server's TLS certificate."
+ type = bool
+ default = false
+}
+
+variable "vault_provider_token" {
+ description = "Vault root token."
+ type = string
+ sensitive = true
+}
+
+variable "vault_name" {
+ type = string
+ default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
diff --git a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf
new file mode 100644
index 0000000000..153890e01b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf
@@ -0,0 +1,17 @@
+terraform {
+ backend "consul" {
+ address = "10.30.51.24:8500"
+ scheme = "http"
+ path = "terraform/dash_m7g"
+ }
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.31.0"
+ }
+ vault = {
+ version = ">= 3.23.0"
+ }
+ }
+ required_version = ">= 1.4.2"
+}
diff --git a/fdio.infra.terraform/terraform-aws-subnet/README.md b/fdio.infra.terraform/terraform-aws-subnet/README.md
new file mode 100644
index 0000000000..54986d1ddb
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-subnet/README.md
@@ -0,0 +1,44 @@
+<!-- BEGIN_TF_DOCS -->
+## Requirements
+
+| Name | Version |
+|------|---------|
+| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0.4 |
+| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 4.3.0 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 4.3.0 |
+
+## Modules
+
+No modules.
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [aws_subnet.subnet](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet) | resource |
+| [aws_vpc_ipv4_cidr_block_association.ipv4_cidr_block_association](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_ipv4_cidr_block_association) | resource |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| <a name="input_subnet_assign_ipv6_address_on_creation"></a> [subnet\_assign\_ipv6\_address\_on\_creation](#input\_subnet\_assign\_ipv6\_address\_on\_creation) | Specify true to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address. | `bool` | `false` | no |
+| <a name="input_subnet_availability_zone"></a> [subnet\_availability\_zone](#input\_subnet\_availability\_zone) | AZ for the subnet. | `string` | `"us-east-1a"` | no |
+| <a name="input_subnet_cidr_block"></a> [subnet\_cidr\_block](#input\_subnet\_cidr\_block) | The IPv4 CIDR block for the subnet. | `string` | n/a | yes |
+| <a name="input_subnet_ipv6_cidr_block"></a> [subnet\_ipv6\_cidr\_block](#input\_subnet\_ipv6\_cidr\_block) | The IPv6 network range for the subnet, in CIDR notation. | `string` | n/a | yes |
+| <a name="input_subnet_map_public_ip_on_launch"></a> [subnet\_map\_public\_ip\_on\_launch](#input\_subnet\_map\_public\_ip\_on\_launch) | Specify true to indicate that instances launched into the subnet should be assigned a public IP address. | `bool` | `false` | no |
+| <a name="input_subnet_vpc_id"></a> [subnet\_vpc\_id](#input\_subnet\_vpc\_id) | The VPC ID. | `string` | n/a | yes |
+| <a name="input_tags_environment"></a> [tags\_environment](#input\_tags\_environment) | Environment used for tag. | `string` | `""` | no |
+| <a name="input_tags_name"></a> [tags\_name](#input\_tags\_name) | Name used for tag. | `string` | `""` | no |
+
+## Outputs
+
+| Name | Description |
+|------|-------------|
+| <a name="output_subnet_id"></a> [subnet\_id](#output\_subnet\_id) | The ID of the Subnet |
+<!-- END_TF_DOCS --> \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-subnet/example/main.tf b/fdio.infra.terraform/terraform-aws-subnet/example/main.tf
new file mode 100644
index 0000000000..98f8613876
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-subnet/example/main.tf
@@ -0,0 +1,17 @@
+module "vpc" {
+ source = "../../terraform-aws-vpc"
+ security_group_name = "terraform-sg"
+ subnet_availability_zone = "us-east-1a"
+ tags_name = "terraform-vpc"
+ tags_environment = "terraform-vpc-environment"
+}
+
+module "subnet" {
+ source = "../"
+ subnet_cidr_block = "192.168.10.0/24"
+ subnet_ipv6_cidr_block = cidrsubnet(module.vpc.vpc_ipv6_cidr_block, 8, 1)
+ subnet_availability_zone = "us-east-1a"
+ tags_name = "terraform-subnet"
+ tags_environment = "terraform-subnet-environment"
+ subnet_vpc_id = module.vpc.vpc_id
+}
diff --git a/fdio.infra.terraform/terraform-aws-subnet/example/output.tf b/fdio.infra.terraform/terraform-aws-subnet/example/output.tf
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-subnet/example/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-subnet/example/providers.tf b/fdio.infra.terraform/terraform-aws-subnet/example/providers.tf
new file mode 100644
index 0000000000..5ff54f0d65
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-subnet/example/providers.tf
@@ -0,0 +1,3 @@
+provider "aws" {
+ region = var.region
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-subnet/example/variables.tf b/fdio.infra.terraform/terraform-aws-subnet/example/variables.tf
new file mode 100644
index 0000000000..f75f3d547f
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-subnet/example/variables.tf
@@ -0,0 +1,5 @@
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "us-east-1"
+}
diff --git a/fdio.infra.terraform/terraform-aws-subnet/example/versions.tf b/fdio.infra.terraform/terraform-aws-subnet/example/versions.tf
new file mode 100644
index 0000000000..7afde83d1b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-subnet/example/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.1.0"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-subnet/main.tf b/fdio.infra.terraform/terraform-aws-subnet/main.tf
new file mode 100644
index 0000000000..d14aa5f827
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-subnet/main.tf
@@ -0,0 +1,26 @@
+locals {
+ tags = {
+ "Name" = "${var.tags_name}"
+ "Environment" = "${var.tags_environment}"
+ }
+}
+
+# Create VPC IPv4 CIDR Block Association
+resource "aws_vpc_ipv4_cidr_block_association" "ipv4_cidr_block_association" {
+ cidr_block = var.subnet_cidr_block
+ vpc_id = var.subnet_vpc_id
+}
+
+# Create Subnet
+resource "aws_subnet" "subnet" {
+ depends_on = [
+ aws_vpc_ipv4_cidr_block_association.ipv4_cidr_block_association
+ ]
+ assign_ipv6_address_on_creation = var.subnet_assign_ipv6_address_on_creation
+ availability_zone = var.subnet_availability_zone
+ cidr_block = var.subnet_cidr_block
+ ipv6_cidr_block = var.subnet_ipv6_cidr_block
+ map_public_ip_on_launch = var.subnet_map_public_ip_on_launch
+ tags = local.tags
+ vpc_id = var.subnet_vpc_id
+}
diff --git a/fdio.infra.terraform/terraform-aws-subnet/outputs.tf b/fdio.infra.terraform/terraform-aws-subnet/outputs.tf
new file mode 100644
index 0000000000..7f17d95717
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-subnet/outputs.tf
@@ -0,0 +1,4 @@
+output "subnet_id" {
+ value = aws_subnet.subnet.id
+ description = "The ID of the Subnet"
+}
diff --git a/fdio.infra.terraform/terraform-aws-subnet/variables.tf b/fdio.infra.terraform/terraform-aws-subnet/variables.tf
new file mode 100644
index 0000000000..c0e1fad157
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-subnet/variables.tf
@@ -0,0 +1,45 @@
+variable "tags_name" {
+ description = "Name used for tag."
+ type = string
+ default = ""
+}
+
+variable "tags_environment" {
+ description = "Environment used for tag."
+ type = string
+ default = ""
+}
+
+# Variables for Subnet
+variable "subnet_assign_ipv6_address_on_creation" {
+ description = "Specify true to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address."
+ type = bool
+ default = true
+}
+
+variable "subnet_availability_zone" {
+ description = "AZ for the subnet."
+ type = string
+ default = "us-east-1a"
+}
+
+variable "subnet_cidr_block" {
+ description = "The IPv4 CIDR block for the subnet."
+ type = string
+}
+
+variable "subnet_ipv6_cidr_block" {
+ description = "The IPv6 network range for the subnet, in CIDR notation."
+ type = string
+}
+
+variable "subnet_map_public_ip_on_launch" {
+ description = "Specify true to indicate that instances launched into the subnet should be assigned a public IP address."
+ type = bool
+ default = false
+}
+
+variable "subnet_vpc_id" {
+ description = "The VPC ID."
+ type = string
+}
diff --git a/fdio.infra.terraform/terraform-aws-subnet/versions.tf b/fdio.infra.terraform/terraform-aws-subnet/versions.tf
new file mode 100644
index 0000000000..7afde83d1b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-subnet/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.1.0"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-vpc/README.md b/fdio.infra.terraform/terraform-aws-vpc/README.md
new file mode 100644
index 0000000000..52f6d1cfc7
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-vpc/README.md
@@ -0,0 +1,58 @@
+<!-- BEGIN_TF_DOCS -->
+## Requirements
+
+| Name | Version |
+|------|---------|
+| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0.4 |
+| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 4.3.0 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 4.3.0 |
+
+## Modules
+
+No modules.
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [aws_internet_gateway.internet_gateway](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/internet_gateway) | resource |
+| [aws_route.route](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |
+| [aws_security_group.security_group](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |
+| [aws_subnet.subnet](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet) | resource |
+| [aws_vpc.vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc) | resource |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| <a name="input_security_group_description"></a> [security\_group\_description](#input\_security\_group\_description) | Security group description. | `string` | `"Allow inbound/outbound traffic"` | no |
+| <a name="input_security_group_egress"></a> [security\_group\_egress](#input\_security\_group\_egress) | Egress security group map. | `list(any)` | <pre>[<br> {<br> "cidr_blocks": [<br> "0.0.0.0/0"<br> ],<br> "from_port": 0,<br> "ipv6_cidr_blocks": [<br> "::/0"<br> ],<br> "protocol": "-1",<br> "to_port": 0<br> }<br>]</pre> | no |
+| <a name="input_security_group_ingress"></a> [security\_group\_ingress](#input\_security\_group\_ingress) | Ingress security group map. | `list(any)` | <pre>[<br> {<br> "cidr_blocks": [<br> "0.0.0.0/0"<br> ],<br> "from_port": 22,<br> "ipv6_cidr_blocks": [<br> "::/0"<br> ],<br> "protocol": "tcp",<br> "self": false,<br> "to_port": 22<br> },<br> {<br> "cidr_blocks": [<br> "0.0.0.0/0"<br> ],<br> "from_port": 0,<br> "ipv6_cidr_blocks": [<br> "::/0"<br> ],<br> "protocol": -1,<br> "self": true,<br> "to_port": 0<br> }<br>]</pre> | no |
+| <a name="input_security_group_name"></a> [security\_group\_name](#input\_security\_group\_name) | Name of the security group. | `string` | n/a | yes |
+| <a name="input_security_group_revoke_rules_on_delete"></a> [security\_group\_revoke\_rules\_on\_delete](#input\_security\_group\_revoke\_rules\_on\_delete) | Instruct Terraform to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. | `bool` | `false` | no |
+| <a name="input_subnet_assign_ipv6_address_on_creation"></a> [subnet\_assign\_ipv6\_address\_on\_creation](#input\_subnet\_assign\_ipv6\_address\_on\_creation) | Specify true to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address. | `bool` | `false` | no |
+| <a name="input_subnet_availability_zone"></a> [subnet\_availability\_zone](#input\_subnet\_availability\_zone) | AWS availability zone | `string` | `"us-east-1a"` | no |
+| <a name="input_subnet_map_public_ip_on_launch"></a> [subnet\_map\_public\_ip\_on\_launch](#input\_subnet\_map\_public\_ip\_on\_launch) | Specify true to indicate that instances launched into the subnet should be assigned a public IP address. | `bool` | `false` | no |
+| <a name="input_tags_environment"></a> [tags\_environment](#input\_tags\_environment) | Environment used for tag. | `string` | `""` | no |
+| <a name="input_tags_name"></a> [tags\_name](#input\_tags\_name) | Name used for tag. | `string` | `""` | no |
+| <a name="input_vpc_assign_generated_ipv6_cidr_block"></a> [vpc\_assign\_generated\_ipv6\_cidr\_block](#input\_vpc\_assign\_generated\_ipv6\_cidr\_block) | Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. | `bool` | `true` | no |
+| <a name="input_vpc_cidr_block"></a> [vpc\_cidr\_block](#input\_vpc\_cidr\_block) | The CIDR block for the association. | `string` | `"192.168.0.0/24"` | no |
+| <a name="input_vpc_enable_dns_hostnames"></a> [vpc\_enable\_dns\_hostnames](#input\_vpc\_enable\_dns\_hostnames) | Whether or not the VPC has DNS hostname support. | `bool` | `true` | no |
+| <a name="input_vpc_enable_dns_support"></a> [vpc\_enable\_dns\_support](#input\_vpc\_enable\_dns\_support) | Whether or not the VPC has DNS support. | `bool` | `true` | no |
+| <a name="input_vpc_instance_tenancy"></a> [vpc\_instance\_tenancy](#input\_vpc\_instance\_tenancy) | The allowed tenancy of instances launched into the selected VPC. | `string` | `"default"` | no |
+
+## Outputs
+
+| Name | Description |
+|------|-------------|
+| <a name="output_vpc_id"></a> [vpc\_id](#output\_vpc\_id) | The ID of the VPC. |
+| <a name="output_vpc_ipv6_cidr_block"></a> [vpc\_ipv6\_cidr\_block](#output\_vpc\_ipv6\_cidr\_block) | IPv6 CIDR block. |
+| <a name="output_vpc_main_route_table_id"></a> [vpc\_main\_route\_table\_id](#output\_vpc\_main\_route\_table\_id) | The ID of the Main Route Table. |
+| <a name="output_vpc_security_group_id"></a> [vpc\_security\_group\_id](#output\_vpc\_security\_group\_id) | The ID of the Security Group. |
+| <a name="output_vpc_subnet_id"></a> [vpc\_subnet\_id](#output\_vpc\_subnet\_id) | The ID of the Subnet. |
+<!-- END_TF_DOCS --> \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-vpc/example/main.tf b/fdio.infra.terraform/terraform-aws-vpc/example/main.tf
new file mode 100644
index 0000000000..9d9469754d
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-vpc/example/main.tf
@@ -0,0 +1,7 @@
+module "vpc" {
+ source = "../"
+ security_group_name = "terraform-sg"
+ subnet_availability_zone = "us-east-1a"
+ tags_name = "terraform-vpc"
+ tags_environment = "terraform-vpc-environment"
+}
diff --git a/fdio.infra.terraform/terraform-aws-vpc/example/output.tf b/fdio.infra.terraform/terraform-aws-vpc/example/output.tf
new file mode 100644
index 0000000000..c26bbaecb6
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-vpc/example/output.tf
@@ -0,0 +1,4 @@
+output "vpc_id" {
+ value = module.vpc.vpc_id
+ description = "The ID of the VPC"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-vpc/example/providers.tf b/fdio.infra.terraform/terraform-aws-vpc/example/providers.tf
new file mode 100644
index 0000000000..5ff54f0d65
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-vpc/example/providers.tf
@@ -0,0 +1,3 @@
+provider "aws" {
+ region = var.region
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-vpc/example/variables.tf b/fdio.infra.terraform/terraform-aws-vpc/example/variables.tf
new file mode 100644
index 0000000000..f75f3d547f
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-vpc/example/variables.tf
@@ -0,0 +1,5 @@
+variable "region" {
+ description = "AWS Region."
+ type = string
+ default = "us-east-1"
+}
diff --git a/fdio.infra.terraform/terraform-aws-vpc/example/versions.tf b/fdio.infra.terraform/terraform-aws-vpc/example/versions.tf
new file mode 100644
index 0000000000..7afde83d1b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-vpc/example/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.1.0"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-vpc/main.tf b/fdio.infra.terraform/terraform-aws-vpc/main.tf
new file mode 100644
index 0000000000..1b84f8e351
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-vpc/main.tf
@@ -0,0 +1,93 @@
+locals {
+ tags = {
+ "Name" = "${var.tags_name}"
+ "Environment" = "${var.tags_environment}"
+ }
+}
+
+# Create VPC
+resource "aws_vpc" "vpc" {
+ assign_generated_ipv6_cidr_block = var.vpc_assign_generated_ipv6_cidr_block
+ cidr_block = var.vpc_cidr_block
+ enable_dns_hostnames = var.vpc_enable_dns_hostnames
+ enable_dns_support = var.vpc_enable_dns_support
+ instance_tenancy = var.vpc_instance_tenancy
+ tags = local.tags
+}
+
+# Create Security Group
+resource "aws_security_group" "security_group" {
+ depends_on = [
+ aws_vpc.vpc
+ ]
+ description = var.security_group_description
+ name = var.security_group_name
+ revoke_rules_on_delete = var.security_group_revoke_rules_on_delete
+ tags = local.tags
+ vpc_id = aws_vpc.vpc.id
+
+ ingress {
+ from_port = 0
+ to_port = 0
+ protocol = -1
+ self = true
+ ipv6_cidr_blocks = ["::/0"]
+ }
+
+ dynamic "ingress" {
+ for_each = var.security_group_ingress
+ content {
+ from_port = lookup(ingress.value, "from_port", null)
+ to_port = lookup(ingress.value, "to_port", null)
+ protocol = lookup(ingress.value, "protocol", null)
+ self = lookup(ingress.value, "self", null)
+ cidr_blocks = lookup(ingress.value, "cidr_blocks", null)
+ ipv6_cidr_blocks = lookup(ingress.value, "ipv6_cidr_blocks", null)
+ }
+ }
+ dynamic "egress" {
+ for_each = var.security_group_egress
+ content {
+ from_port = lookup(egress.value, "from_port", null)
+ to_port = lookup(egress.value, "to_port", null)
+ protocol = lookup(egress.value, "protocol", null)
+ self = lookup(egress.value, "self", null)
+ cidr_blocks = lookup(egress.value, "cidr_blocks", null)
+ ipv6_cidr_blocks = lookup(egress.value, "ipv6_cidr_blocks", null)
+ }
+ }
+}
+
+# Create Internet Gateway
+resource "aws_internet_gateway" "internet_gateway" {
+ depends_on = [
+ aws_vpc.vpc
+ ]
+ tags = local.tags
+ vpc_id = aws_vpc.vpc.id
+}
+
+# Create Route
+resource "aws_route" "route" {
+ depends_on = [
+ aws_vpc.vpc,
+ aws_internet_gateway.internet_gateway
+ ]
+ destination_cidr_block = "0.0.0.0/0"
+ gateway_id = aws_internet_gateway.internet_gateway.id
+ route_table_id = aws_vpc.vpc.main_route_table_id
+}
+
+# Create Subnet
+resource "aws_subnet" "subnet" {
+ depends_on = [
+ aws_vpc.vpc
+ ]
+ assign_ipv6_address_on_creation = var.subnet_assign_ipv6_address_on_creation
+ availability_zone = var.subnet_availability_zone
+ cidr_block = aws_vpc.vpc.cidr_block
+ ipv6_cidr_block = cidrsubnet(aws_vpc.vpc.ipv6_cidr_block, 8, 1)
+ map_public_ip_on_launch = var.subnet_map_public_ip_on_launch
+ tags = local.tags
+ vpc_id = aws_vpc.vpc.id
+}
diff --git a/fdio.infra.terraform/terraform-aws-vpc/outputs.tf b/fdio.infra.terraform/terraform-aws-vpc/outputs.tf
new file mode 100644
index 0000000000..b58963917b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-vpc/outputs.tf
@@ -0,0 +1,24 @@
+output "vpc_id" {
+ value = aws_vpc.vpc.id
+ description = "The ID of the VPC."
+}
+
+output "vpc_ipv6_cidr_block" {
+ value = aws_vpc.vpc.ipv6_cidr_block
+ description = "IPv6 CIDR block."
+}
+
+output "vpc_main_route_table_id" {
+ value = aws_vpc.vpc.main_route_table_id
+ description = "The ID of the Main Route Table."
+}
+
+output "vpc_subnet_id" {
+ value = aws_subnet.subnet.id
+ description = "The ID of the Subnet."
+}
+
+output "vpc_security_group_id" {
+ value = aws_security_group.security_group.id
+ description = "The ID of the Security Group."
+}
diff --git a/fdio.infra.terraform/terraform-aws-vpc/variables.tf b/fdio.infra.terraform/terraform-aws-vpc/variables.tf
new file mode 100644
index 0000000000..a501356063
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-vpc/variables.tf
@@ -0,0 +1,108 @@
+variable "tags_name" {
+ description = "Name used for tag."
+ type = string
+ default = ""
+}
+
+variable "tags_environment" {
+ description = "Environment used for tag."
+ type = string
+ default = ""
+}
+
+# Variables for elastic beanstalk VPC
+variable "vpc_assign_generated_ipv6_cidr_block" {
+ description = "Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC."
+ type = bool
+ default = true
+}
+
+variable "vpc_cidr_block" {
+ description = "The CIDR block for the association."
+ type = string
+ default = "192.168.0.0/24"
+}
+
+variable "vpc_enable_dns_hostnames" {
+ description = "Whether or not the VPC has DNS hostname support."
+ type = bool
+ default = true
+}
+
+variable "vpc_enable_dns_support" {
+ description = "Whether or not the VPC has DNS support."
+ type = bool
+ default = true
+}
+
+variable "vpc_instance_tenancy" {
+ description = "The allowed tenancy of instances launched into the selected VPC."
+ type = string
+ default = "default"
+}
+
+# Variables for Security Group
+variable "security_group_description" {
+ description = "Security group description."
+ type = string
+ default = "Allow inbound/outbound traffic"
+}
+
+variable "security_group_name" {
+ description = "Name of the security group."
+ type = string
+}
+
+variable "security_group_revoke_rules_on_delete" {
+ description = "Instruct Terraform to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself."
+ type = bool
+ default = false
+}
+
+variable "security_group_ingress" {
+ description = "Ingress security group map."
+ type = list(any)
+ default = [
+ {
+ from_port = 22
+ to_port = 22
+ protocol = "tcp"
+ self = false
+ cidr_blocks = ["0.0.0.0/0"]
+ ipv6_cidr_blocks = ["::/0"]
+ },
+ ]
+}
+
+variable "security_group_egress" {
+ description = "Egress security group map."
+ type = list(any)
+ default = [
+ {
+ from_port = 0
+ to_port = 0
+ protocol = "-1"
+ cidr_blocks = ["0.0.0.0/0"]
+ ipv6_cidr_blocks = ["::/0"]
+ },
+ ]
+}
+
+# Variables for elastic beanstalk Subnet
+variable "subnet_assign_ipv6_address_on_creation" {
+ description = "Specify true to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address."
+ type = bool
+ default = false
+}
+
+variable "subnet_availability_zone" {
+ description = "AWS availability zone"
+ type = string
+ default = "us-east-1a"
+}
+
+variable "subnet_map_public_ip_on_launch" {
+ description = "Specify true to indicate that instances launched into the subnet should be assigned a public IP address."
+ type = bool
+ default = false
+}
diff --git a/fdio.infra.terraform/terraform-aws-vpc/versions.tf b/fdio.infra.terraform/terraform-aws-vpc/versions.tf
new file mode 100644
index 0000000000..7afde83d1b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-aws-vpc/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.1.0"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-alertmanager/README.md b/fdio.infra.terraform/terraform-nomad-alertmanager/README.md
new file mode 100644
index 0000000000..f5b1f859de
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-alertmanager/README.md
@@ -0,0 +1,57 @@
+<!-- BEGIN_TF_DOCS -->
+## Requirements
+
+| Name | Version |
+|------|---------|
+| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.4 |
+| <a name="requirement_nomad"></a> [nomad](#requirement\_nomad) | >= 1.4.16 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| <a name="provider_nomad"></a> [nomad](#provider\_nomad) | >= 1.4.16 |
+
+## Modules
+
+No modules.
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [nomad_job.nomad_job_alertmanager](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/job) | resource |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| <a name="input_am_version"></a> [am\_version](#input\_am\_version) | Alertmanager version | `string` | `"0.21.0"` | no |
+| <a name="input_auto_promote"></a> [auto\_promote](#input\_auto\_promote) | Specifies if the job should auto-promote to the canary version | `bool` | `true` | no |
+| <a name="input_auto_revert"></a> [auto\_revert](#input\_auto\_revert) | Specifies if the job should auto-revert to the last stable job | `bool` | `true` | no |
+| <a name="input_canary"></a> [canary](#input\_canary) | Equal to the count of the task group allows blue/green depl. | `number` | `1` | no |
+| <a name="input_cpu"></a> [cpu](#input\_cpu) | CPU allocation | `number` | `1000` | no |
+| <a name="input_datacenters"></a> [datacenters](#input\_datacenters) | Specifies the list of DCs to be considered placing this task | `list(string)` | <pre>[<br> "dc1"<br>]</pre> | no |
+| <a name="input_group_count"></a> [group\_count](#input\_group\_count) | Specifies the number of the task groups running under this one | `number` | `1` | no |
+| <a name="input_job_name"></a> [job\_name](#input\_job\_name) | Specifies a name for the job | `string` | `"alertmanager"` | no |
+| <a name="input_max_parallel"></a> [max\_parallel](#input\_max\_parallel) | Specifies the maximum number of updates to perform in parallel | `number` | `1` | no |
+| <a name="input_memory"></a> [memory](#input\_memory) | Specifies the memory required in MB | `number` | `1024` | no |
+| <a name="input_port"></a> [port](#input\_port) | Specifies the static TCP/UDP port to allocate | `number` | `9093` | no |
+| <a name="input_region"></a> [region](#input\_region) | Specifies the list of DCs to be considered placing this task | `string` | `"global"` | no |
+| <a name="input_service_name"></a> [service\_name](#input\_service\_name) | Specifies the name this service will be advertised in Consul | `string` | `"alertmanager"` | no |
+| <a name="input_slack_default_api_key"></a> [slack\_default\_api\_key](#input\_slack\_default\_api\_key) | Alertmanager default slack API key | `string` | `"XXXXXXXXX/XXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX"` | no |
+| <a name="input_slack_default_channel"></a> [slack\_default\_channel](#input\_slack\_default\_channel) | Alertmanager default slack channel | `string` | `"default-channel"` | no |
+| <a name="input_slack_default_receiver"></a> [slack\_default\_receiver](#input\_slack\_default\_receiver) | Alertmanager default slack receiver | `string` | `"default-slack-receiver"` | no |
+| <a name="input_slack_jenkins_api_key"></a> [slack\_jenkins\_api\_key](#input\_slack\_jenkins\_api\_key) | Alertmanager jenkins slack API key | `string` | `"XXXXXXXXX/XXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX"` | no |
+| <a name="input_slack_jenkins_channel"></a> [slack\_jenkins\_channel](#input\_slack\_jenkins\_channel) | Alertmanager jenkins slack channel | `string` | `"jenkins-channel"` | no |
+| <a name="input_slack_jenkins_receiver"></a> [slack\_jenkins\_receiver](#input\_slack\_jenkins\_receiver) | Alertmanager jenkins slack receiver | `string` | `"jenkins-slack-receiver"` | no |
+| <a name="input_use_canary"></a> [use\_canary](#input\_use\_canary) | Uses canary deployment | `bool` | `true` | no |
+| <a name="input_use_host_volume"></a> [use\_host\_volume](#input\_use\_host\_volume) | Use Nomad host volume feature | `bool` | `false` | no |
+| <a name="input_vault_secret"></a> [vault\_secret](#input\_vault\_secret) | Set of properties to be able to fetch secret from vault. | <pre>object({<br> use_vault_provider = bool,<br> vault_kv_policy_name = string,<br> vault_kv_path = string,<br> vault_kv_field_access_key = string,<br> vault_kv_field_secret_key = string<br> })</pre> | <pre>{<br> "use_vault_provider": false,<br> "vault_kv_field_access_key": "access_key",<br> "vault_kv_field_secret_key": "secret_key",<br> "vault_kv_path": "secret/data/alertmanager",<br> "vault_kv_policy_name": "kv"<br>}</pre> | no |
+| <a name="input_volume_destination"></a> [volume\_destination](#input\_volume\_destination) | Specifies where the volume should be mounted inside the task | `string` | `"/data/"` | no |
+| <a name="input_volume_source"></a> [volume\_source](#input\_volume\_source) | The name of the volume to request | `string` | `"persistence"` | no |
+
+## Outputs
+
+No outputs.
+<!-- END_TF_DOCS --> \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-alertmanager/conf/nomad/alertmanager.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-alertmanager/conf/nomad/alertmanager.hcl.tftpl
new file mode 100644
index 0000000000..87206ac5a0
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-alertmanager/conf/nomad/alertmanager.hcl.tftpl
@@ -0,0 +1,377 @@
+job "${job_name}" {
+ # The "region" parameter specifies the region in which to execute the job.
+ # If omitted, this inherits the default region name of "global".
+ # region = "${region}"
+
+ # The "datacenters" parameter specifies the list of datacenters which should
+ # be considered when placing this task. This must be provided.
+ datacenters = "${datacenters}"
+
+ # The "type" parameter controls the type of job, which impacts the scheduler's
+ # decision on placement. This configuration is optional and defaults to
+ # "service". For a full list of job types and their differences, please see
+ # the online documentation.
+ #
+ # https://www.nomadproject.io/docs/jobspec/schedulers
+ #
+ type = "service"
+
+ update {
+ # The "max_parallel" parameter specifies the maximum number of updates to
+ # perform in parallel. In this case, this specifies to update a single task
+ # at a time.
+ max_parallel = ${max_parallel}
+
+ health_check = "checks"
+
+ # The "min_healthy_time" parameter specifies the minimum time the allocation
+ # must be in the healthy state before it is marked as healthy and unblocks
+ # further allocations from being updated.
+ min_healthy_time = "10s"
+
+ # The "healthy_deadline" parameter specifies the deadline in which the
+ # allocation must be marked as healthy after which the allocation is
+ # automatically transitioned to unhealthy. Transitioning to unhealthy will
+ # fail the deployment and potentially roll back the job if "auto_revert" is
+ # set to true.
+ healthy_deadline = "3m"
+
+ # The "progress_deadline" parameter specifies the deadline in which an
+ # allocation must be marked as healthy. The deadline begins when the first
+ # allocation for the deployment is created and is reset whenever an allocation
+ # as part of the deployment transitions to a healthy state. If no allocation
+ # transitions to the healthy state before the progress deadline, the
+ # deployment is marked as failed.
+ progress_deadline = "10m"
+
+%{ if use_canary }
+ # The "canary" parameter specifies that changes to the job that would result
+ # in destructive updates should create the specified number of canaries
+ # without stopping any previous allocations. Once the operator determines the
+ # canaries are healthy, they can be promoted which unblocks a rolling update
+ # of the remaining allocations at a rate of "max_parallel".
+ #
+ # Further, setting "canary" equal to the count of the task group allows
+ # blue/green deployments. When the job is updated, a full set of the new
+ # version is deployed and upon promotion the old version is stopped.
+ canary = ${canary}
+
+ # Specifies if the job should auto-promote to the canary version when all
+ # canaries become healthy during a deployment. Defaults to false which means
+ # canaries must be manually updated with the nomad deployment promote
+ # command.
+ auto_promote = ${auto_promote}
+
+ # The "auto_revert" parameter specifies if the job should auto-revert to the
+ # last stable job on deployment failure. A job is marked as stable if all the
+ # allocations as part of its deployment were marked healthy.
+ auto_revert = ${auto_revert}
+%{ endif }
+ }
+
+ # All groups in this job should be scheduled on different hosts.
+ constraint {
+ operator = "distinct_hosts"
+ value = "true"
+ }
+
+ # The "group" stanza defines a series of tasks that should be co-located on
+ # the same Nomad client. Any task within a group will be placed on the same
+ # client.
+ #
+ # https://www.nomadproject.io/docs/job-specification/group
+ #
+ group "${job_name}-group-1" {
+ # The "count" parameter specifies the number of the task groups that should
+ # be running under this group. This value must be non-negative and defaults
+ # to 1.
+ count = ${group_count}
+
+ # The volume stanza allows the group to specify that it requires a given
+ # volume from the cluster. The key of the stanza is the name of the volume
+ # as it will be exposed to task configuration.
+ #
+ # https://www.nomadproject.io/docs/job-specification/volume
+ %{ if use_host_volume }
+ volume "${job_name}-volume-1" {
+ type = "host"
+ read_only = false
+ source = "${volume_source}"
+ }
+ %{ endif }
+
+ # The restart stanza configures a tasks's behavior on task failure. Restarts
+ # happen on the client that is running the task.
+ #
+ # https://www.nomadproject.io/docs/job-specification/restart
+ #
+ restart {
+ interval = "30m"
+ attempts = 40
+ delay = "15s"
+ mode = "delay"
+ }
+
+ # The constraint allows restricting the set of eligible nodes. Constraints
+ # may filter on attributes or client metadata.
+ #
+ # https://www.nomadproject.io/docs/job-specification/constraint
+ #
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+
+ # The network stanza specifies the networking requirements for the task
+ # group, including the network mode and port allocations. When scheduling
+ # jobs in Nomad they are provisioned across your fleet of machines along
+ # with other jobs and services. Because you don't know in advance what host
+ # your job will be provisioned on, Nomad will provide your tasks with
+ # network configuration when they start up.
+ #
+ # https://www.nomadproject.io/docs/job-specification/network
+ #
+ network {
+ port "${service_name}" {
+ static = ${port}
+ to = ${port}
+ }
+ }
+
+ # The "task" stanza creates an individual unit of work, such as a Docker
+ # container, web application, or batch processing.
+ #
+ # https://www.nomadproject.io/docs/job-specification/task
+ #
+ task "${job_name}-task-1" {
+ # The "driver" parameter specifies the task driver that should be used to
+ # run the task.
+ driver = "exec"
+
+ %{ if use_host_volume }
+ volume_mount {
+ volume = "${job_name}-volume-1"
+ destination = "${volume_destination}"
+ read_only = false
+ }
+ %{ endif }
+
+ %{ if use_vault_provider }
+ vault {
+ policies = "${vault_kv_policy_name}"
+ }
+ %{ endif }
+
+ # The "config" stanza specifies the driver configuration, which is passed
+ # directly to the driver to start the task. The details of configurations
+ # are specific to each driver, so please see specific driver
+ # documentation for more information.
+ config {
+ command = "local/alertmanager-${version}.linux-amd64/alertmanager"
+ args = [
+ "--config.file=secrets/alertmanager.yml"
+ ]
+ }
+
+ # The artifact stanza instructs Nomad to fetch and unpack a remote resource,
+ # such as a file, tarball, or binary. Nomad downloads artifacts using the
+ # popular go-getter library, which permits downloading artifacts from a
+ # variety of locations using a URL as the input source.
+ #
+ # https://www.nomadproject.io/docs/job-specification/artifact
+ #
+ artifact {
+ source = "${url}"
+ }
+
+ # The "template" stanza instructs Nomad to manage a template, such as
+ # a configuration file or script. This template can optionally pull data
+ # from Consul or Vault to populate runtime configuration data.
+ #
+ # https://www.nomadproject.io/docs/job-specification/template
+ #
+ template {
+ change_mode = "noop"
+ change_signal = "SIGINT"
+ destination = "secrets/alertmanager.yml"
+ left_delimiter = "{{{"
+ right_delimiter = "}}}"
+ data = <<EOH
+# The directory from which notification templates are read.
+templates:
+- '/etc/alertmanager/template/*.tmpl'
+
+#tls_config:
+# # CA certificate to validate the server certificate with.
+# ca_file: <filepath> ]
+#
+# # Certificate and key files for client cert authentication to the server.
+# cert_file: <filepath>
+# key_file: <filepath>
+#
+# # ServerName extension to indicate the name of the server.
+# # http://tools.ietf.org/html/rfc4366#section-3.1
+# server_name: <string>
+#
+# # Disable validation of the server certificate.
+# insecure_skip_verify: true
+
+# The root route on which each incoming alert enters.
+route:
+ receiver: '${slack_default_receiver}'
+
+ # The labels by which incoming alerts are grouped together. For example,
+ # multiple alerts coming in for cluster=A and alertname=LatencyHigh would
+ # be batched into a single group.
+ #
+ # To aggregate by all possible labels use '...' as the sole label name.
+ # This effectively disables aggregation entirely, passing through all
+ # alerts as-is. This is unlikely to be what you want, unless you have
+ # a very low alert volume or your upstream notification system performs
+ # its own grouping. Example: group_by: [...]
+ group_by: ['alertname']
+
+ # When a new group of alerts is created by an incoming alert, wait at
+ # least 'group_wait' to send the initial notification.
+ # This way ensures that you get multiple alerts for the same group that start
+ # firing shortly after another are batched together on the first
+ # notification.
+ group_wait: 30s
+
+ # When the first notification was sent, wait 'group_interval' to send a batch
+ # of new alerts that started firing for that group.
+ group_interval: 5m
+
+ # If an alert has successfully been sent, wait 'repeat_interval' to
+ # resend them.
+ repeat_interval: 3h
+
+ # All the above attributes are inherited by all child routes and can
+ # overwritten on each.
+ # The child route trees.
+ routes:
+ - match_re:
+ alertname: JenkinsJob.*
+ receiver: ${slack_jenkins_receiver}
+ routes:
+ - match:
+ severity: critical
+ receiver: '${slack_jenkins_receiver}'
+
+ - match_re:
+ service: .*
+ receiver: ${slack_default_receiver}
+ routes:
+ - match:
+ severity: critical
+ receiver: '${slack_default_receiver}'
+
+# Inhibition rules allow to mute a set of alerts given that another alert is
+# firing.
+# We use this to mute any warning-level notifications if the same alert is
+# already critical.
+inhibit_rules:
+- source_match:
+ severity: 'critical'
+ target_match:
+ severity: 'warning'
+ equal: ['alertname', 'instance']
+
+receivers:
+- name: '${slack_jenkins_receiver}'
+ slack_configs:
+ - api_url: 'https://hooks.slack.com/services/${slack_jenkins_api_key}'
+ channel: '#${slack_jenkins_channel}'
+ send_resolved: true
+ icon_url: https://avatars3.githubusercontent.com/u/3380462
+ title: |-
+ [{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }}
+ {{- if gt (len .CommonLabels) (len .GroupLabels) -}}
+ {{" "}}(
+ {{- with .CommonLabels.Remove .GroupLabels.Names }}
+ {{- range $index, $label := .SortedPairs -}}
+ {{ if $index }}, {{ end }}
+ {{- $label.Name }}="{{ $label.Value -}}"
+ {{- end }}
+ {{- end -}}
+ )
+ {{- end }}
+ text: >-
+ {{ range .Alerts -}}
+ *Alert:* {{ .Annotations.summary }}{{ if .Labels.severity }} - `{{ .Labels.severity }}`{{ end }}
+
+ *Description:* {{ .Annotations.description }}
+
+ *Details:*
+ {{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
+ {{ end }}
+ {{ end }}
+
+- name: '${slack_default_receiver}'
+ slack_configs:
+ - api_url: 'https://hooks.slack.com/services/${slack_default_api_key}'
+ channel: '#${slack_default_channel}'
+ send_resolved: true
+ icon_url: https://avatars3.githubusercontent.com/u/3380462
+ title: |-
+ [{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }}
+ {{- if gt (len .CommonLabels) (len .GroupLabels) -}}
+ {{" "}}(
+ {{- with .CommonLabels.Remove .GroupLabels.Names }}
+ {{- range $index, $label := .SortedPairs -}}
+ {{ if $index }}, {{ end }}
+ {{- $label.Name }}="{{ $label.Value -}}"
+ {{- end }}
+ {{- end -}}
+ )
+ {{- end }}
+ text: >-
+ {{ range .Alerts -}}
+ *Alert:* {{ .Annotations.summary }}{{ if .Labels.severity }} - `{{ .Labels.severity }}`{{ end }}
+
+ *Description:* {{ .Annotations.description }}
+
+ *Details:*
+ {{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
+ {{ end }}
+ {{ end }}
+EOH
+ }
+
+ # The service stanza instructs Nomad to register a service with Consul.
+ #
+ # https://www.nomadproject.io/docs/job-specification/service
+ #
+ service {
+ name = "${service_name}"
+ port = "${service_name}"
+ tags = [ "${service_name}$${NOMAD_ALLOC_INDEX}" ]
+ check {
+ name = "Alertmanager Check Live"
+ type = "http"
+ path = "/-/healthy"
+ interval = "10s"
+ timeout = "2s"
+ }
+ }
+
+ # The "resources" stanza describes the requirements a task needs to
+ # execute. Resource requirements include memory, network, cpu, and more.
+ # This ensures the task will execute on a machine that contains enough
+ # resource capacity.
+ #
+ # https://www.nomadproject.io/docs/job-specification/resources
+ #
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/main.tf b/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/main.tf
new file mode 100644
index 0000000000..745e450a8c
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/main.tf
@@ -0,0 +1,14 @@
+module "alertmanager" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ # alertmanager
+ datacenters = ["yul1"]
+ slack_jenkins_api_key = "TE07RD1V1/B01U1NV9HV3/hKZXJJ74g2JcISq4K3QC1eG9"
+ slack_jenkins_channel = "fdio-jobs-monitoring"
+ slack_default_api_key = "TE07RD1V1/B01UUK23B6C/hZTcCu42FUv8d6rtirHtcYIi"
+ slack_default_channel = "fdio-infra-monitoring"
+ am_version = "0.23.0"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/providers.tf b/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/providers.tf
new file mode 100644
index 0000000000..42a6a45ce0
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/providers.tf
@@ -0,0 +1,13 @@
+provider "nomad" {
+ address = var.nomad_provider_address
+ alias = "yul1"
+ # ca_file = var.nomad_provider_ca_file
+ # cert_file = var.nomad_provider_cert_file
+ # key_file = var.nomad_provider_key_file
+}
+
+provider "vault" {
+ address = var.vault_provider_address
+ skip_tls_verify = var.vault_provider_skip_tls_verify
+ token = var.vault_provider_token
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/variables.tf b/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/variables.tf
new file mode 100644
index 0000000000..569ba29c87
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/variables.tf
@@ -0,0 +1,47 @@
+variable "nomad_acl" {
+ description = "Nomad ACLs enabled/disabled."
+ type = bool
+ default = false
+}
+
+variable "nomad_provider_address" {
+ description = "FD.io Nomad cluster address."
+ type = string
+ default = "http://10.30.51.23:4646"
+}
+
+variable "nomad_provider_ca_file" {
+ description = "A local file path to a PEM-encoded certificate authority."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-ca.pem"
+}
+
+variable "nomad_provider_cert_file" {
+ description = "A local file path to a PEM-encoded certificate."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-cli.pem"
+}
+
+variable "nomad_provider_key_file" {
+ description = "A local file path to a PEM-encoded private key."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-cli-key.pem"
+}
+
+variable "vault_provider_address" {
+ description = "Vault cluster address."
+ type = string
+ default = "http://10.30.51.23:8200"
+}
+
+variable "vault_provider_skip_tls_verify" {
+ description = "Verification of the Vault server's TLS certificate."
+ type = bool
+ default = false
+}
+
+variable "vault_provider_token" {
+ description = "Vault root token."
+ type = string
+ sensitive = true
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/versions.tf b/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/versions.tf
new file mode 100644
index 0000000000..0cabc3c6e5
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-alertmanager/fdio/versions.tf
@@ -0,0 +1,17 @@
+terraform {
+ backend "consul" {
+ address = "consul.service.consul:8500"
+ scheme = "http"
+ path = "terraform/alertmanager"
+ }
+ required_providers {
+ nomad = {
+ source = "hashicorp/nomad"
+ version = ">= 1.4.16"
+ }
+ vault = {
+ version = ">= 3.2.1"
+ }
+ }
+ required_version = ">= 1.1.4"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-alertmanager/main.tf b/fdio.infra.terraform/terraform-nomad-alertmanager/main.tf
new file mode 100644
index 0000000000..e8a1389150
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-alertmanager/main.tf
@@ -0,0 +1,48 @@
+locals {
+ datacenters = join(",", var.datacenters)
+ url = join("",
+ [
+ "https://github.com",
+ "/prometheus/alertmanager/releases/download/",
+ "v${var.am_version}/",
+ "alertmanager-${var.am_version}.linux-amd64.tar.gz"
+ ]
+ )
+}
+
+resource "nomad_job" "nomad_job_alertmanager" {
+ jobspec = templatefile(
+ "${path.module}/conf/nomad/alertmanager.hcl.tftpl",
+ {
+ auto_promote = var.auto_promote,
+ auto_revert = var.auto_revert,
+ canary = var.canary,
+ cpu = var.cpu,
+ datacenters = local.datacenters,
+ group_count = var.group_count,
+ job_name = var.job_name,
+ max_parallel = var.max_parallel,
+ memory = var.memory
+ port = var.port,
+ region = var.region,
+ service_name = var.service_name,
+ slack_jenkins_api_key = var.slack_jenkins_api_key,
+ slack_jenkins_channel = var.slack_jenkins_channel,
+ slack_jenkins_receiver = var.slack_jenkins_receiver,
+ slack_default_api_key = var.slack_default_api_key,
+ slack_default_channel = var.slack_default_channel,
+ slack_default_receiver = var.slack_default_receiver,
+ url = local.url,
+ use_canary = var.use_canary,
+ use_host_volume = var.use_host_volume,
+ use_vault_provider = var.vault_secret.use_vault_provider,
+ vault_kv_policy_name = var.vault_secret.vault_kv_policy_name,
+ vault_kv_path = var.vault_secret.vault_kv_path,
+ vault_kv_field_access_key = var.vault_secret.vault_kv_field_access_key,
+ vault_kv_field_secret_key = var.vault_secret.vault_kv_field_secret_key,
+ version = var.am_version,
+ volume_destination = var.volume_destination,
+ volume_source = var.volume_source
+ })
+ detach = false
+}
diff --git a/fdio.infra.terraform/terraform-nomad-alertmanager/variables.tf b/fdio.infra.terraform/terraform-nomad-alertmanager/variables.tf
new file mode 100644
index 0000000000..e452598fa6
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-alertmanager/variables.tf
@@ -0,0 +1,157 @@
+# Nomad
+variable "datacenters" {
+ description = "Specifies the list of DCs to be considered placing this task"
+ type = list(string)
+ default = ["dc1"]
+}
+
+variable "region" {
+ description = "Specifies the list of DCs to be considered placing this task"
+ type = string
+ default = "global"
+}
+
+variable "volume_source" {
+ description = "The name of the volume to request"
+ type = string
+ default = "persistence"
+}
+
+# Alertmanager
+variable "am_version" {
+ description = "Alertmanager version"
+ type = string
+ default = "0.21.0"
+}
+
+variable "auto_promote" {
+ description = "Specifies if the job should auto-promote to the canary version"
+ type = bool
+ default = true
+}
+
+variable "auto_revert" {
+ description = "Specifies if the job should auto-revert to the last stable job"
+ type = bool
+ default = true
+}
+
+variable "canary" {
+ description = "Equal to the count of the task group allows blue/green depl."
+ type = number
+ default = 1
+}
+
+variable "cpu" {
+ description = "CPU allocation"
+ type = number
+ default = 1000
+}
+
+variable "group_count" {
+ description = "Specifies the number of the task groups running under this one"
+ type = number
+ default = 1
+}
+
+variable "job_name" {
+ description = "Specifies a name for the job"
+ type = string
+ default = "alertmanager"
+}
+
+variable "max_parallel" {
+ description = "Specifies the maximum number of updates to perform in parallel"
+ type = number
+ default = 1
+}
+
+variable "memory" {
+ description = "Specifies the memory required in MB"
+ type = number
+ default = 1024
+}
+
+variable "port" {
+ description = "Specifies the static TCP/UDP port to allocate"
+ type = number
+ default = 9093
+}
+
+variable "service_name" {
+ description = "Specifies the name this service will be advertised in Consul"
+ type = string
+ default = "alertmanager"
+}
+
+variable "use_canary" {
+ description = "Uses canary deployment"
+ type = bool
+ default = true
+}
+
+variable "use_host_volume" {
+ description = "Use Nomad host volume feature"
+ type = bool
+ default = false
+}
+
+variable "vault_secret" {
+ type = object({
+ use_vault_provider = bool,
+ vault_kv_policy_name = string,
+ vault_kv_path = string,
+ vault_kv_field_access_key = string,
+ vault_kv_field_secret_key = string
+ })
+ description = "Set of properties to be able to fetch secret from vault."
+ default = {
+ use_vault_provider = false
+ vault_kv_policy_name = "kv"
+ vault_kv_path = "secret/data/alertmanager"
+ vault_kv_field_access_key = "access_key"
+ vault_kv_field_secret_key = "secret_key"
+ }
+}
+
+variable "volume_destination" {
+ description = "Specifies where the volume should be mounted inside the task"
+ type = string
+ default = "/data/"
+}
+
+variable "slack_jenkins_api_key" {
+ description = "Alertmanager jenkins slack API key"
+ type = string
+ default = "XXXXXXXXX/XXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX"
+}
+
+variable "slack_jenkins_receiver" {
+ description = "Alertmanager jenkins slack receiver"
+ type = string
+ default = "jenkins-slack-receiver"
+}
+
+variable "slack_jenkins_channel" {
+ description = "Alertmanager jenkins slack channel"
+ type = string
+ default = "jenkins-channel"
+}
+
+variable "slack_default_api_key" {
+ description = "Alertmanager default slack API key"
+ type = string
+ default = "XXXXXXXXX/XXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX"
+}
+
+variable "slack_default_receiver" {
+ description = "Alertmanager default slack receiver"
+ type = string
+ default = "default-slack-receiver"
+}
+
+variable "slack_default_channel" {
+ description = "Alertmanager default slack channel"
+ type = string
+ default = "default-channel"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-alertmanager/versions.tf b/fdio.infra.terraform/terraform-nomad-alertmanager/versions.tf
new file mode 100644
index 0000000000..5f283ed4ea
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-alertmanager/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ nomad = {
+ source = "hashicorp/nomad"
+ version = ">= 1.4.16"
+ }
+ }
+ required_version = ">= 1.1.4"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/README.md b/fdio.infra.terraform/terraform-nomad-prometheus/README.md
new file mode 100644
index 0000000000..e0568c376c
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/README.md
@@ -0,0 +1,52 @@
+<!-- BEGIN_TF_DOCS -->
+## Requirements
+
+| Name | Version |
+|------|---------|
+| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.4 |
+| <a name="requirement_nomad"></a> [nomad](#requirement\_nomad) | >= 1.4.16 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| <a name="provider_nomad"></a> [nomad](#provider\_nomad) | >= 1.4.16 |
+
+## Modules
+
+No modules.
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [nomad_job.nomad_job_prometheus](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/job) | resource |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| <a name="input_auto_promote"></a> [auto\_promote](#input\_auto\_promote) | Specifies if the job should auto-promote to the canary version | `bool` | `true` | no |
+| <a name="input_auto_revert"></a> [auto\_revert](#input\_auto\_revert) | Specifies if the job should auto-revert to the last stable job | `bool` | `true` | no |
+| <a name="input_canary"></a> [canary](#input\_canary) | Equal to the count of the task group allows blue/green depl. | `number` | `1` | no |
+| <a name="input_cpu"></a> [cpu](#input\_cpu) | CPU allocation | `number` | `2000` | no |
+| <a name="input_data_dir"></a> [data\_dir](#input\_data\_dir) | Prometheus DISK allocation | `string` | `"/data"` | no |
+| <a name="input_datacenters"></a> [datacenters](#input\_datacenters) | Specifies the list of DCs to be considered placing this task | `list(string)` | <pre>[<br> "dc1"<br>]</pre> | no |
+| <a name="input_group_count"></a> [group\_count](#input\_group\_count) | Specifies the number of the task groups running under this one | `number` | `4` | no |
+| <a name="input_job_name"></a> [job\_name](#input\_job\_name) | Specifies a name for the job | `string` | `"prometheus"` | no |
+| <a name="input_max_parallel"></a> [max\_parallel](#input\_max\_parallel) | Specifies the maximum number of updates to perform in parallel | `number` | `1` | no |
+| <a name="input_memory"></a> [memory](#input\_memory) | Specifies the memory required in MB | `number` | `4096` | no |
+| <a name="input_pm_version"></a> [pm\_version](#input\_pm\_version) | Prometheus version | `string` | `"2.33.1"` | no |
+| <a name="input_port"></a> [port](#input\_port) | Specifies the static TCP/UDP port to allocate | `number` | `9090` | no |
+| <a name="input_region"></a> [region](#input\_region) | Specifies the list of DCs to be considered placing this task | `string` | `"global"` | no |
+| <a name="input_service_name"></a> [service\_name](#input\_service\_name) | Specifies the name this service will be advertised in Consul | `string` | `"prometheus"` | no |
+| <a name="input_use_canary"></a> [use\_canary](#input\_use\_canary) | Uses canary deployment | `bool` | `true` | no |
+| <a name="input_use_host_volume"></a> [use\_host\_volume](#input\_use\_host\_volume) | Use Nomad host volume feature | `bool` | `true` | no |
+| <a name="input_vault_secret"></a> [vault\_secret](#input\_vault\_secret) | Set of properties to be able to fetch secret from vault. | <pre>object({<br> use_vault_provider = bool,<br> vault_kv_policy_name = string,<br> vault_kv_path = string,<br> vault_kv_field_access_key = string,<br> vault_kv_field_secret_key = string<br> })</pre> | <pre>{<br> "use_vault_provider": false,<br> "vault_kv_field_access_key": "access_key",<br> "vault_kv_field_secret_key": "secret_key",<br> "vault_kv_path": "secret/data/prometheus",<br> "vault_kv_policy_name": "kv"<br>}</pre> | no |
+| <a name="input_volume_destination"></a> [volume\_destination](#input\_volume\_destination) | Specifies where the volume should be mounted inside the task | `string` | `"/data/"` | no |
+| <a name="input_volume_source"></a> [volume\_source](#input\_volume\_source) | The name of the volume to request | `string` | `"prod-volume-data1-1"` | no |
+
+## Outputs
+
+No outputs.
+<!-- END_TF_DOCS --> \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/conf/nomad/prometheus.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-prometheus/conf/nomad/prometheus.hcl.tftpl
new file mode 100644
index 0000000000..4eb4428988
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/conf/nomad/prometheus.hcl.tftpl
@@ -0,0 +1,676 @@
+job "${job_name}" {
+ # The "region" parameter specifies the region in which to execute the job.
+ # If omitted, this inherits the default region name of "global".
+ # region = "${region}"
+
+ # The "datacenters" parameter specifies the list of datacenters which should
+ # be considered when placing this task. This must be provided.
+ datacenters = "${datacenters}"
+
+ # The "type" parameter controls the type of job, which impacts the scheduler's
+ # decision on placement.
+ #
+ # https://www.nomadproject.io/docs/jobspec/schedulers
+ #
+ type = "service"
+
+ update {
+ # The "max_parallel" parameter specifies the maximum number of updates to
+ # perform in parallel.
+ max_parallel = ${max_parallel}
+
+ health_check = "checks"
+
+ # The "min_healthy_time" parameter specifies the minimum time the allocation
+ # must be in the healthy state before it is marked as healthy and unblocks
+ # further allocations from being updated.
+ min_healthy_time = "10s"
+
+ # The "healthy_deadline" parameter specifies the deadline in which the
+ # allocation must be marked as healthy after which the allocation is
+ # automatically transitioned to unhealthy. Transitioning to unhealthy will
+ # fail the deployment and potentially roll back the job if "auto_revert" is
+ # set to true.
+ healthy_deadline = "3m"
+
+ # The "progress_deadline" parameter specifies the deadline in which an
+ # allocation must be marked as healthy. The deadline begins when the first
+ # allocation for the deployment is created and is reset whenever an allocation
+ # as part of the deployment transitions to a healthy state. If no allocation
+ # transitions to the healthy state before the progress deadline, the
+ # deployment is marked as failed.
+ progress_deadline = "10m"
+
+%{ if use_canary }
+ # The "canary" parameter specifies that changes to the job that would result
+ # in destructive updates should create the specified number of canaries
+ # without stopping any previous allocations. Once the operator determines the
+ # canaries are healthy, they can be promoted which unblocks a rolling update
+ # of the remaining allocations at a rate of "max_parallel".
+ #
+ # Further, setting "canary" equal to the count of the task group allows
+ # blue/green deployments. When the job is updated, a full set of the new
+ # version is deployed and upon promotion the old version is stopped.
+ canary = ${canary}
+
+ # Specifies if the job should auto-promote to the canary version when all
+ # canaries become healthy during a deployment. Defaults to false which means
+ # canaries must be manually updated with the nomad deployment promote
+ # command.
+ auto_promote = ${auto_promote}
+
+ # The "auto_revert" parameter specifies if the job should auto-revert to the
+ # last stable job on deployment failure. A job is marked as stable if all the
+ # allocations as part of its deployment were marked healthy.
+ auto_revert = ${auto_revert}
+%{ endif }
+ }
+
+ # The "group" stanza defines a series of tasks that should be co-located on
+ # the same Nomad client. Any task within a group will be placed on the same
+ # client.
+ #
+ # https://www.nomadproject.io/docs/job-specification/group
+ #
+ group "${job_name}-group-1" {
+ # The "count" parameter specifies the number of the task groups that should
+ # be running under this group. This value must be non-negative.
+ count = ${group_count}
+
+ # The volume stanza allows the group to specify that it requires a given
+ # volume from the cluster. The key of the stanza is the name of the volume
+ # as it will be exposed to task configuration.
+ #
+ # https://www.nomadproject.io/docs/job-specification/volume
+ #
+ %{ if use_host_volume }
+ volume "${job_name}-volume-1" {
+ type = "host"
+ read_only = false
+ source = "${volume_source}"
+ }
+ %{ endif }
+
+ # The restart stanza configures a tasks's behavior on task failure. Restarts
+ # happen on the client that is running the task.
+ #
+ # https://www.nomadproject.io/docs/job-specification/restart
+ #
+ restart {
+ interval = "30m"
+ attempts = 40
+ delay = "15s"
+ mode = "delay"
+ }
+
+ # The constraint allows restricting the set of eligible nodes. Constraints
+ # may filter on attributes or client metadata.
+ #
+ # https://www.nomadproject.io/docs/job-specification/constraint
+ #
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+
+ # The network stanza specifies the networking requirements for the task
+ # group, including the network mode and port allocations. When scheduling
+ # jobs in Nomad they are provisioned across your fleet of machines along
+ # with other jobs and services. Because you don't know in advance what host
+ # your job will be provisioned on, Nomad will provide your tasks with
+ # network configuration when they start up.
+ #
+ # https://www.nomadproject.io/docs/job-specification/network
+ #
+ network {
+ port "${service_name}" {
+ static = ${port}
+ to = ${port}
+ }
+ }
+
+ # The "task" stanza creates an individual unit of work, such as a Docker
+ # container, web application, or batch processing.
+ #
+ # https://www.nomadproject.io/docs/job-specification/task
+ #
+ task "${job_name}-task-1" {
+ # The "driver" parameter specifies the task driver that should be used to
+ # run the task.
+ driver = "exec"
+
+ %{ if use_host_volume }
+ volume_mount {
+ volume = "${job_name}-volume-1"
+ destination = "${volume_destination}"
+ read_only = false
+ }
+ %{ endif }
+
+ %{ if use_vault_provider }
+ vault {
+ policies = "${vault_kv_policy_name}"
+ }
+ %{ endif }
+
+ # The "config" stanza specifies the driver configuration, which is passed
+ # directly to the driver to start the task. The details of configurations
+ # are specific to each driver, so please see specific driver
+ # documentation for more information.
+ config {
+ command = "local/prometheus-${version}.linux-amd64/prometheus"
+ args = [
+ "--config.file=secrets/prometheus.yml",
+ "--web.config.file=secrets/web-config.yml",
+ "--storage.tsdb.path=${volume_destination}prometheus/",
+ "--storage.tsdb.retention.time=7d"
+ ]
+ }
+
+ # The artifact stanza instructs Nomad to fetch and unpack a remote
+ # resource, such as a file, tarball, or binary. Nomad downloads artifacts
+ # using the popular go-getter library, which permits downloading artifacts
+ # from a variety of locations using a URL as the input source.
+ #
+ # https://www.nomadproject.io/docs/job-specification/artifact
+ #
+ artifact {
+ source = "${artifact_source}"
+ options {
+ checksum = "sha256:${artifact_source_checksum}"
+ }
+ }
+
+ # The "template" stanza instructs Nomad to manage a template, such as
+ # a configuration file or script. This template can optionally pull data
+ # from Consul or Vault to populate runtime configuration data.
+ #
+ # https://www.nomadproject.io/docs/job-specification/template
+ #
+ template {
+ change_mode = "noop"
+ change_signal = "SIGINT"
+ destination = "secrets/cert_file.crt"
+ left_delimiter = "{{{"
+ right_delimiter = "}}}"
+ data = <<EOH
+-----BEGIN CERTIFICATE-----
+MIIFszCCA5ugAwIBAgIUDtmFbbnYaXbXH5ddtHi9l25wM7owDQYJKoZIhvcNAQEL
+BQAwaTELMAkGA1UEBhMCU0sxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEiMCAGA1UEAwwZcHJvbWV0aGV1cy5z
+ZXJ2aWNlLmNvbnN1bDAeFw0yMjEyMzEyMDMxMDFaFw0yMzAxMzAyMDMxMDFaMGkx
+CzAJBgNVBAYTAlNLMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
+cm5ldCBXaWRnaXRzIFB0eSBMdGQxIjAgBgNVBAMMGXByb21ldGhldXMuc2Vydmlj
+ZS5jb25zdWwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCGH4Tyj+9G
+wYJNb3ubIdr5r0/DZL6XEnRIMiz88TN2QmdwAGKyQqQd7ka0IkdDHPhpRuK8IV1g
+ELQhKab7YJCa6zWuy+rQ6JFlotGC+2tIXd3MDriUd1VPVoX6fw/5zUK/2j6exBk4
+iqxPXHchQLzZ0viUXhQIBS1IUMTbfc0vjA8U0uPgpmAR7ieePWFwmUDxjOLMvJw6
++goeOfaHhW4yYgT+kg7L3rT62G+KG6Op/p7k7BNZ6G6Y6K6uJ7Z/AayAClF2sPZz
+UIGr0uEDvD4IcAsfQgpR5vK/SVBFU5+DSO68mm11m+8IH/HA6GvNSEvCRC0Wtrsm
+Dyq+9S3wZ7tNi7msjQWWKTB1GvTbCbPE1G/q5GJdoKUnioys6AMP4DTEV9o3lCSg
+0sjYnkSTKgRplnuY/7Y2qSNnD1Rw0ZneSkF+8ocgiYcTvtyOY2fkhlT2VaQLX987
+m7892ikPvoCnc/LVeREWW7hCuIQ1E1CCqg304Kd9gCgKoOGXoYmC/3wgJW0RkaM0
+x5DpNLYx0y11CPVg315dvprOuedap6J3CNhBE3fO8ymwepFTzTcWLWgSVWrRLZnx
+Lgb4SPhjxPg6cCZptkmXrPA+9SgW8iNHd/Fer6MAs82Kcp2T1C+qq9RurL/jjxTD
+JaFrwZC2lgWELToMyVDrkBJJbA/2cU9CMQIDAQABo1MwUTAdBgNVHQ4EFgQUx1Mi
+fylZExNnIz0EkrPRdXYmHmAwHwYDVR0jBBgwFoAUx1MifylZExNnIz0EkrPRdXYm
+HmAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAbvlpMg4YRTNe
+0cgqMZky/GpNjvE/zFManUGgYns8TKyZ8U0laBxRQ4XU/fASwAcOBJYtrkG7w8z+
+FaOUptaOlNGW1VWsPDJt8ZQ2gAcTwKSW2EsBWCmOUJVNH5F0f6fTSqIUIXyxhP2w
+JVniSkfarhb/Y1EDCACdr7Xpu6iF+nQo2o4/HE4Wkto4qwvlrdApYv4dl5J1TWjq
+72fO9axDlNnEGVxa3C3xvKOQqWrEUy/HqC9p4it1yCiq6IYVLyve0meVFBY9xNXU
+137AN7ks4ouuR1FZQkhLtqFuIekSZ5l4G4alwdv1NB8vohJMuMJyk9DarTLqXcYU
+1uypZSmgREn8ByYrj4ochkSpiPw7wgK4H1Aa2cy4KUuzmLLShYu6Mov7hyJDoJSe
+JsDVNoEBuhql4jENATqbWT3pIgYwBvBEXuYXqekcNmVZkKiSOlsxKFfSz21HYDgA
+lCu4SMtlRYHcm4TuoTuy/FEPxHSjFY3pMciJrnO/qUrv9LlWPe1wjKhZLRPEebTk
+r+Oh+aVWpy3ps7shPTjczOrmQykWWBGAjndZjZi4VvZNRxkGZuNwzzZcEkzt0Db7
+l83pTRD58mvLHWl2QXoBS3t7IM6sOMwQvPx1Inp7hb7UIpNsJQaUrhhfKqy0sK18
+mXs4VRtrxYycXxsLbk0SaZGh+juT53M=
+-----END CERTIFICATE-----
+EOH
+ }
+
+ template {
+ change_mode = "noop"
+ change_signal = "SIGINT"
+ destination = "secrets/key_file.key"
+ left_delimiter = "{{{"
+ right_delimiter = "}}}"
+ data = <<EOH
+-----BEGIN PRIVATE KEY-----
+MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQCGH4Tyj+9GwYJN
+b3ubIdr5r0/DZL6XEnRIMiz88TN2QmdwAGKyQqQd7ka0IkdDHPhpRuK8IV1gELQh
+Kab7YJCa6zWuy+rQ6JFlotGC+2tIXd3MDriUd1VPVoX6fw/5zUK/2j6exBk4iqxP
+XHchQLzZ0viUXhQIBS1IUMTbfc0vjA8U0uPgpmAR7ieePWFwmUDxjOLMvJw6+goe
+OfaHhW4yYgT+kg7L3rT62G+KG6Op/p7k7BNZ6G6Y6K6uJ7Z/AayAClF2sPZzUIGr
+0uEDvD4IcAsfQgpR5vK/SVBFU5+DSO68mm11m+8IH/HA6GvNSEvCRC0WtrsmDyq+
+9S3wZ7tNi7msjQWWKTB1GvTbCbPE1G/q5GJdoKUnioys6AMP4DTEV9o3lCSg0sjY
+nkSTKgRplnuY/7Y2qSNnD1Rw0ZneSkF+8ocgiYcTvtyOY2fkhlT2VaQLX987m789
+2ikPvoCnc/LVeREWW7hCuIQ1E1CCqg304Kd9gCgKoOGXoYmC/3wgJW0RkaM0x5Dp
+NLYx0y11CPVg315dvprOuedap6J3CNhBE3fO8ymwepFTzTcWLWgSVWrRLZnxLgb4
+SPhjxPg6cCZptkmXrPA+9SgW8iNHd/Fer6MAs82Kcp2T1C+qq9RurL/jjxTDJaFr
+wZC2lgWELToMyVDrkBJJbA/2cU9CMQIDAQABAoICAA5AQByT3Z07h3BZ5ZzUqpM4
+JPYCeNvNeqyHJE+WA11P7fSxHcuKGC0T+dA/Cipf5CcvgHzz4JuJ+tHBPrxcBNFp
+J5GUmjUrWPOfKrrLoxkT3DLH56Xizh45d8/ne1eUD0EaW+f7tyBSX7+o+AGBAu/0
+IjSFkIRPpIGYD2qxAcHJFHsmc08V7oRJNU1zgSx5JDTmPtz5N3Juye9vQjohG9Xf
+o183Pro7xigXIjbe+/NemhyB1waJE2NM6e6YSqRRFbafIgvF/tG+3qBWrlD6ye6U
+lSHznuwX6XgYvp43Je5JrBA/Kl1CPdIzrrjMGVQ9F8ui+dV9ggInv2d93q06IGUU
+D1o9XsZivYkn1EkLEhFXD5CYj6oR1M+MyvUrBD0bJePQCBUo+WJ2sEDt9PN2AtFL
+9j7NKK/xXX5cTdAajeIvSS1PUGAHi7r1OF/c7bn3UFNOuOBEYzLsSZGP34AVglor
+NON0ENCTuylmDSFd8vpaKFQpV5SK3M2k8dPRe7VEu2C9UlRvAq0xnabSHNxbwNLU
+KuGDMSCKDc2npf3oCeQKU2PngAcePnwWSiapAkf5OqltQ/vMbrEpROpfzXLlRxLZ
+76MDMFMQkT7m0hik6aPBHTitcWRalxHhK0ze8GvO0wesIBdyYShPKg+VDNg3qFMm
+epVXzoi8xNzW8S6yi9DJAoIBAQC2l90VF5evDsv8nwsWMIa/rFGGLitpw23+oNcZ
+xsIDMsGie06GYwzYHNRsd3sqK5TNLtl2vJGaVNbeDcC5T22NAYPRjNas7I5svIki
+SnT4K68ICIVVxtfETbh2qoXSu+O3pyWJmHqqcQrvW2DlUvs0nxk/v3GukFjTVbuU
+qmXp1KjPAVMNYoWNCJkHLEpq6e3K3q4YhEImGhMbN8suvVR9+fkKx8QvKHcqT2kn
+9AlK7t57IPqovbni9KMfMZ+wPqw6HsYTL8lQE5NaqMB5q9Pl3SnzcRR0FSadNAiD
+/W9jWyMazE0UsNDn241X81tVlU78Kx9S/IN97m/FSeDA1XudAoIBAQC8CzVeHxTw
+U+ts/fi1XEuWOph2cIm6qd4aiyGX/riux0O6GUFuIQkosP5StWJyNPLBohWHC6eq
+hPk7b0vPWmxuhttUPLA/+6+CICC0jEMWvnDAd5aJULfT0pTLZyizVu2f/GbVaiL6
+pgsqeGyKnuh9cNTW5w7Mc45fXkgyKrB4W5aPfjoHN51n+jUqaDrfrp3CoWFviNDn
+n3WNFtgrkj/jzQM8XFixhwxADfjd8+sZVmHT4GYjIDS4pCqs5gtIZYKhXDb0Dydj
+fH/HiEXC63z0SuFjGNbomC/Era7kI3+1aK2qs6dyASzZKDN6dHKYoalHReUe/Cxk
+prRcyYRWhA6lAoIBAEVrLy5Zrd1sLrl4beqdwF0W0lfFLdQj7Kml1KGEIza8EUoI
+vy3wcm2naEtkkXrS3tuzOBIgVurp3lbFu8O4Ito8/TSp6uQLe4pzk19qF1ZSpVTU
+iHy4AEgtlDfpVL9tl4G3FlpdkiVCnPmrMAd/qOm0oxDNZBcN4fdW3N4EeoKPyy4I
+Pt8T2dpormU/vXswPKuoRWAkyFFcEG+Eosa+TGUoqDolAL09ETEQx9XcvbuzXPpK
+64FDwGw8vdeaMi/7Y9ck5AFfZZYAG0GYbrTTUthNYSmgkDoh4HBb2/DyZWrMt2f0
+zElVf9bmbbJGXy8GeOT+MAaI4iT6hZvoHn6xqzECggEABoQg6k0LbbSKwPEgEDDN
+kbwgEmKd8zD1uFe/50N1ZOEU0LsVUFqmtZlEhtswOSLqkpkqQ868laUb+dpGdz37
+6eyUZxvfQ6hWEZ1JZNhDbuNUhubd+Y4pgJaYf1/owiYt/9BAQ/70jVj5pBQeNsOA
+7O/fAD9rfNw4P8fFmq9uBA2wbvKB0kQ0GSlLdFe+SogDgX4UIUhNbOlSqnvzK7da
+rWsqRIoyrJwwaXvSduZ/7BXZN/1brLXt/cP6kpk6JN0XpL3MTbLEu6bRyrlHKZT9
+dH2vx75RnCfB5//YwqEUSNYCxpqJH+M4iaHh/slQO0fG1OhwIx278BTyxRBanKDg
+3QKCAQBoVnM3PDqaSAT1g3f3neYiXyZektJganRLj5wmDXYAySM2ag/oDacswmP/
+J0BQ9KYK+dSgXldlaXtC05oxdhxY5cawbCFNfbjGDZ6zGwgLDocyFtqOBZf6UXCV
+Gtj/9r6iyD2/2wbo/lrS0d3yNcNN0nkZUxoyl+J6uGB1o8bo+cfL+mi4pkALKV8L
+Oa/fPazAQtikZBHSWtdQamyUMFSAdMUeYIhaXBfkNUZG4sz9nKD5UGBOmquLMBt6
+zBPM+4dv4x/MEAEnSC2ANW8vDGFBgG/5H5+j2F0RM6O1MlkDzrOAIvUTrMJlJDBt
+775JbZNCKpaELqxy4BNPfRDEJGBh
+-----END PRIVATE KEY-----
+EOH
+ }
+
+ # The "template" stanza instructs Nomad to manage a template, such as
+ # a configuration file or script. This template can optionally pull data
+ # from Consul or Vault to populate runtime configuration data.
+ #
+ # https://www.nomadproject.io/docs/job-specification/template
+ #
+ template {
+ change_mode = "noop"
+ change_signal = "SIGINT"
+ destination = "secrets/alerts.yml"
+ left_delimiter = "{{{"
+ right_delimiter = "}}}"
+ data = <<EOH
+---
+groups:
+- name: "Jenkins Job Health Exporter"
+ rules:
+ - alert: JenkinsJobHealthExporterFailures
+ expr: jenkins_job_failure{id=~".*"} > jenkins_job_success{id=~".*"}
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: "Jenkins Job Health detected high failure rate on jenkins jobs."
+ description: "Job: {{ $labels.id }}"
+ - alert: JenkinsJobHealthExporterUnstable
+ expr: jenkins_job_unstable{id=~".*"} > jenkins_job_success{id=~".*"}
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Jenkins Job Health detected high unstable rate on jenkins jobs."
+ description: "Job: {{ $labels.id }}"
+- name: "Consul"
+ rules:
+ - alert: ConsulServiceHealthcheckFailed
+ expr: consul_catalog_service_node_healthy == 0
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: "Consul service healthcheck failed (instance {{ $labels.instance }})."
+ description: "Service: `{{ $labels.service_name }}` Healthcheck: `{{ $labels.service_id }}`."
+ - alert: ConsulMissingMasterNode
+ expr: consul_raft_peers < 3
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: "Consul missing master node (instance {{ $labels.instance }})."
+ description: "Numbers of consul raft peers should be 3, in order to preserve quorum."
+ - alert: ConsulAgentUnhealthy
+ expr: consul_health_node_status{status="critical"} == 1
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: "Consul agent unhealthy (instance {{ $labels.instance }})."
+ description: "A Consul agent is down."
+- name: "Hosts"
+ rules:
+ - alert: NodeDown
+ expr: up == 0
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: "Prometheus target missing (instance {{ $labels.instance }})."
+ description: "A Prometheus target has disappeared. An exporter might be crashed."
+ - alert: HostOutOfMemory
+ expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10
+ for: 2m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Host out of memory (instance {{ $labels.instance }})."
+ description: "Node memory is filling up (< 10% left)."
+ - alert: HostOomKillDetected
+ expr: increase(node_vmstat_oom_kill[1m]) > 0
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Host OOM kill detected (instance {{ $labels.instance }})."
+ description: "OOM kill detected."
+ - alert: HostMemoryUnderMemoryPressure
+ expr: rate(node_vmstat_pgmajfault[1m]) > 1000
+ for: 2m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Host memory under memory pressure (instance {{ $labels.instance }})."
+ description: "The node is under heavy memory pressure. High rate of major page faults."
+ - alert: HostOutOfDiskSpace
+ expr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 and ON (instance, device, mountpoint) node_filesystem_readonly == 0
+ for: 2m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Host out of disk space (instance {{ $labels.instance }})."
+ description: "Disk is almost full (< 10% left)."
+ - alert: HostRaidDiskFailure
+ expr: node_md_disks{state="failed"} > 0
+ for: 2m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Host RAID disk failure (instance {{ $labels.instance }})."
+ description: "At least one device in RAID array on {{ $labels.instance }} failed. Array {{ $labels.md_device }} needs attention and possibly a disk swap."
+ - alert: HostConntrackLimit
+ expr: node_nf_conntrack_entries / node_nf_conntrack_entries_limit > 0.8
+ for: 5m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Host conntrack limit (instance {{ $labels.instance }})."
+ description: "The number of conntrack is approching limit."
+ - alert: HostNetworkInterfaceSaturated
+ expr: (rate(node_network_receive_bytes_total{device!~"^tap.*"}[1m]) + rate(node_network_transmit_bytes_total{device!~"^tap.*"}[1m])) / node_network_speed_bytes{device!~"^tap.*"} > 0.8
+ for: 1m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Host Network Interface Saturated (instance {{ $labels.instance }})."
+ description: "The network interface {{ $labels.interface }} on {{ $labels.instance }} is getting overloaded."
+ - alert: HostSystemdServiceCrashed
+ expr: node_systemd_unit_state{state="failed"} == 1
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Host SystemD service crashed (instance {{ $labels.instance }})."
+ description: "SystemD service crashed."
+ - alert: HostEdacCorrectableErrorsDetected
+ expr: increase(node_edac_correctable_errors_total[1m]) > 0
+ for: 0m
+ labels:
+ severity: info
+ annotations:
+ summary: "Host EDAC Correctable Errors detected (instance {{ $labels.instance }})."
+ description: '{{ $labels.instance }} has had {{ printf "%.0f" $value }} correctable memory errors reported by EDAC in the last 5 minutes.'
+ - alert: HostEdacUncorrectableErrorsDetected
+ expr: node_edac_uncorrectable_errors_total > 0
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Host EDAC Uncorrectable Errors detected (instance {{ $labels.instance }})."
+ description: '{{ $labels.instance }} has had {{ printf "%.0f" $value }} uncorrectable memory errors reported by EDAC in the last 5 minutes.'
+- name: "Prometheus"
+ rules:
+ - alert: PrometheusConfigurationReloadFailure
+ expr: prometheus_config_last_reload_successful != 1
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Prometheus configuration reload failure (instance {{ $labels.instance }})."
+ description: "Prometheus configuration reload error."
+ - alert: PrometheusTooManyRestarts
+ expr: changes(process_start_time_seconds{job=~"prometheus|pushgateway|alertmanager"}[15m]) > 2
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Prometheus too many restarts (instance {{ $labels.instance }})."
+ description: "Prometheus has restarted more than twice in the last 15 minutes. It might be crashlooping."
+ - alert: PrometheusAlertmanagerConfigurationReloadFailure
+ expr: alertmanager_config_last_reload_successful != 1
+ for: 0m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Prometheus AlertManager configuration reload failure (instance {{ $labels.instance }})."
+ description: "AlertManager configuration reload error."
+ - alert: PrometheusRuleEvaluationFailures
+ expr: increase(prometheus_rule_evaluation_failures_total[3m]) > 0
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: "Prometheus rule evaluation failures (instance {{ $labels.instance }})."
+ description: "Prometheus encountered {{ $value }} rule evaluation failures, leading to potentially ignored alerts."
+ - alert: PrometheusTargetScrapingSlow
+ expr: prometheus_target_interval_length_seconds{quantile="0.9"} > 60
+ for: 5m
+ labels:
+ severity: warning
+ annotations:
+ summary: "Prometheus target scraping slow (instance {{ $labels.instance }})."
+ description: "Prometheus is scraping exporters slowly."
+ - alert: PrometheusTsdbCompactionsFailed
+ expr: increase(prometheus_tsdb_compactions_failed_total[1m]) > 0
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: "Prometheus TSDB compactions failed (instance {{ $labels.instance }})."
+ description: "Prometheus encountered {{ $value }} TSDB compactions failures."
+ - alert: PrometheusTsdbHeadTruncationsFailed
+ expr: increase(prometheus_tsdb_head_truncations_failed_total[1m]) > 0
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: "Prometheus TSDB head truncations failed (instance {{ $labels.instance }})."
+ description: "Prometheus encountered {{ $value }} TSDB head truncation failures."
+ - alert: PrometheusTsdbWalCorruptions
+ expr: increase(prometheus_tsdb_wal_corruptions_total[1m]) > 0
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: "Prometheus TSDB WAL corruptions (instance {{ $labels.instance }})."
+ description: "Prometheus encountered {{ $value }} TSDB WAL corruptions."
+ - alert: PrometheusTsdbWalTruncationsFailed
+ expr: increase(prometheus_tsdb_wal_truncations_failed_total[1m]) > 0
+ for: 0m
+ labels:
+ severity: critical
+ annotations:
+ summary: "Prometheus TSDB WAL truncations failed (instance {{ $labels.instance }})."
+ description: "Prometheus encountered {{ $value }} TSDB WAL truncation failures."
+EOH
+ }
+
+ template {
+ change_mode = "noop"
+ change_signal = "SIGINT"
+ destination = "secrets/prometheus.yml"
+ data = <<EOH
+---
+global:
+ scrape_interval: 5s
+ scrape_timeout: 5s
+ evaluation_interval: 5s
+
+alerting:
+ alertmanagers:
+ - consul_sd_configs:
+ - server: '{{ env "NOMAD_IP_prometheus" }}:8500'
+ services: [ 'alertmanager' ]
+
+rule_files:
+ - 'alerts.yml'
+
+scrape_configs:
+ - job_name: 'Nomad Cluster'
+ consul_sd_configs:
+ - server: '{{ env "NOMAD_IP_prometheus" }}:8500'
+ services: [ 'nomad-client', 'nomad' ]
+ relabel_configs:
+ - source_labels: [__meta_consul_tags]
+ regex: '(.*)http(.*)'
+ action: keep
+ metrics_path: /v1/metrics
+ params:
+ format: [ 'prometheus' ]
+
+ - job_name: 'Consul Cluster'
+ static_configs:
+ - targets: [ '10.30.51.23:8500' ]
+ - targets: [ '10.30.51.24:8500' ]
+ - targets: [ '10.30.51.25:8500' ]
+ - targets: [ '10.30.51.26:8500' ]
+ - targets: [ '10.30.51.27:8500' ]
+ - targets: [ '10.30.51.28:8500' ]
+ - targets: [ '10.30.51.50:8500' ]
+ - targets: [ '10.30.51.51:8500' ]
+ - targets: [ '10.30.51.70:8500' ]
+ - targets: [ '10.30.51.71:8500' ]
+ - targets: [ '10.30.51.91:8500' ]
+ - targets: [ '10.30.51.92:8500' ]
+ metrics_path: /v1/agent/metrics
+ params:
+ format: [ 'prometheus' ]
+
+ - job_name: 'Jenkins Job Health Exporter'
+ static_configs:
+ - targets: [ '10.30.51.22:9186' ]
+ metric_relabel_configs:
+ - source_labels: [ __name__ ]
+ regex: '^(vpp.*|csit.*)_(success|failure|total|unstable|reqtime_ms)$'
+ action: replace
+ replacement: '$1'
+ target_label: id
+ - source_labels: [ __name__ ]
+ regex: '^(vpp.*|csit.*)_(success|failure|total|unstable|reqtime_ms)$'
+ replacement: 'jenkins_job_$2'
+ target_label: __name__
+
+ - job_name: 'Node Exporter'
+ static_configs:
+ - targets: [ '10.30.51.23:9100' ]
+ - targets: [ '10.30.51.24:9100' ]
+ - targets: [ '10.30.51.25:9100' ]
+ - targets: [ '10.30.51.26:9100' ]
+ - targets: [ '10.30.51.27:9100' ]
+ - targets: [ '10.30.51.28:9100' ]
+ - targets: [ '10.30.51.50:9100' ]
+ - targets: [ '10.30.51.51:9100' ]
+ - targets: [ '10.30.51.70:9100' ]
+ - targets: [ '10.30.51.71:9100' ]
+ - targets: [ '10.30.51.91:9100' ]
+ - targets: [ '10.30.51.92:9100' ]
+
+ - job_name: 'Alertmanager'
+ consul_sd_configs:
+ - server: '{{ env "NOMAD_IP_prometheus" }}:8500'
+ services: [ 'alertmanager' ]
+
+ - job_name: 'Prometheus'
+ honor_timestamps: true
+ params:
+ format:
+ - prometheus
+ scheme: https
+ follow_redirects: true
+ enable_http2: true
+ consul_sd_configs:
+ - server: {{ env "CONSUL_HTTP_ADDR" }}
+ services:
+ - prometheus
+ tls_config:
+ cert_file: cert_file.crt
+ key_file: key_file.key
+ insecure_skip_verify: true
+EOH
+ }
+
+ template {
+ change_mode = "noop"
+ change_signal = "SIGINT"
+ destination = "secrets/web-config.yml"
+ left_delimiter = "{{{"
+ right_delimiter = "}}}"
+ data = <<EOH
+---
+tls_server_config:
+ cert_file: cert_file.crt
+ key_file: key_file.key
+EOH
+ }
+
+ # The service stanza instructs Nomad to register a service with Consul.
+ #
+ # https://www.nomadproject.io/docs/job-specification/service
+ #
+ service {
+ name = "${service_name}"
+ port = "${service_name}"
+ tags = [ "${service_name}$${NOMAD_ALLOC_INDEX}" ]
+ check {
+ name = "Prometheus Check Live"
+ type = "http"
+ path = "/-/healthy"
+ protocol = "https"
+ tls_skip_verify = true
+ interval = "10s"
+ timeout = "2s"
+ }
+ }
+
+ # The "resources" stanza describes the requirements a task needs to
+ # execute. Resource requirements include memory, network, cpu, and more.
+ # This ensures the task will execute on a machine that contains enough
+ # resource capacity.
+ #
+ # https://www.nomadproject.io/docs/job-specification/resources
+ #
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/fdio/main.tf b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/main.tf
new file mode 100644
index 0000000000..054360c838
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/main.tf
@@ -0,0 +1,10 @@
+module "prometheus" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ # prometheus
+ datacenters = ["yul1"]
+ pm_version = "2.42.0"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/fdio/providers.tf b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/providers.tf
new file mode 100644
index 0000000000..42a6a45ce0
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/providers.tf
@@ -0,0 +1,13 @@
+provider "nomad" {
+ address = var.nomad_provider_address
+ alias = "yul1"
+ # ca_file = var.nomad_provider_ca_file
+ # cert_file = var.nomad_provider_cert_file
+ # key_file = var.nomad_provider_key_file
+}
+
+provider "vault" {
+ address = var.vault_provider_address
+ skip_tls_verify = var.vault_provider_skip_tls_verify
+ token = var.vault_provider_token
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/fdio/variables.tf b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/variables.tf
new file mode 100644
index 0000000000..569ba29c87
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/variables.tf
@@ -0,0 +1,47 @@
+variable "nomad_acl" {
+ description = "Nomad ACLs enabled/disabled."
+ type = bool
+ default = false
+}
+
+variable "nomad_provider_address" {
+ description = "FD.io Nomad cluster address."
+ type = string
+ default = "http://10.30.51.23:4646"
+}
+
+variable "nomad_provider_ca_file" {
+ description = "A local file path to a PEM-encoded certificate authority."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-ca.pem"
+}
+
+variable "nomad_provider_cert_file" {
+ description = "A local file path to a PEM-encoded certificate."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-cli.pem"
+}
+
+variable "nomad_provider_key_file" {
+ description = "A local file path to a PEM-encoded private key."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-cli-key.pem"
+}
+
+variable "vault_provider_address" {
+ description = "Vault cluster address."
+ type = string
+ default = "http://10.30.51.23:8200"
+}
+
+variable "vault_provider_skip_tls_verify" {
+ description = "Verification of the Vault server's TLS certificate."
+ type = bool
+ default = false
+}
+
+variable "vault_provider_token" {
+ description = "Vault root token."
+ type = string
+ sensitive = true
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/fdio/versions.tf b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/versions.tf
new file mode 100644
index 0000000000..97a7173a64
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/versions.tf
@@ -0,0 +1,17 @@
+terraform {
+ backend "consul" {
+ address = "10.30.51.23:8500"
+ scheme = "http"
+ path = "terraform/prometheus"
+ }
+ required_providers {
+ nomad = {
+ source = "hashicorp/nomad"
+ version = ">= 1.4.19"
+ }
+ vault = {
+ version = ">= 3.12.0"
+ }
+ }
+ required_version = ">= 1.3.7"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/main.tf b/fdio.infra.terraform/terraform-nomad-prometheus/main.tf
new file mode 100644
index 0000000000..0c609066e4
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/main.tf
@@ -0,0 +1,43 @@
+locals {
+ artifact_source = join("",
+ [
+ "https://github.com",
+ "/prometheus/prometheus/releases/download/",
+ "v${var.pm_version}/prometheus-${var.pm_version}.linux-amd64.tar.gz"
+ ]
+ )
+ datacenters = join(",", var.datacenters)
+}
+
+resource "nomad_job" "nomad_job_prometheus" {
+ jobspec = templatefile(
+ "${path.module}/conf/nomad/prometheus.hcl.tftpl",
+ {
+ artifact_source = local.artifact_source,
+ artifact_source_checksum = var.artifact_source_checksum,
+ auto_promote = var.auto_promote,
+ auto_revert = var.auto_revert,
+ canary = var.canary,
+ cpu = var.cpu,
+ constraint_value = var.constraint_value,
+ datacenters = local.datacenters,
+ group_count = var.group_count,
+ job_name = var.job_name,
+ max_parallel = var.max_parallel,
+ memory = var.memory
+ port = var.port,
+ region = var.region,
+ service_name = var.service_name,
+ use_canary = var.use_canary,
+ use_host_volume = var.use_host_volume,
+ use_vault_provider = var.vault_secret.use_vault_provider,
+ vault_kv_policy_name = var.vault_secret.vault_kv_policy_name,
+ vault_kv_path = var.vault_secret.vault_kv_path,
+ vault_kv_field_access_key = var.vault_secret.vault_kv_field_access_key,
+ vault_kv_field_secret_key = var.vault_secret.vault_kv_field_secret_key,
+ version = var.pm_version,
+ volume_destination = var.volume_destination,
+ volume_source = var.volume_source
+ })
+ detach = false
+}
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/variables.tf b/fdio.infra.terraform/terraform-nomad-prometheus/variables.tf
new file mode 100644
index 0000000000..3c8c4b7a26
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/variables.tf
@@ -0,0 +1,139 @@
+# Nomad
+variable "datacenters" {
+ description = "Specifies the list of DCs to be considered placing this task"
+ type = list(string)
+ default = ["dc1"]
+}
+
+variable "region" {
+ description = "Specifies the list of DCs to be considered placing this task"
+ type = string
+ default = "global"
+}
+
+variable "volume_source" {
+ description = "The name of the volume to request"
+ type = string
+ default = "prod-volume-data1-1"
+}
+
+# Prometheus
+variable "pm_version" {
+ description = "Prometheus version"
+ type = string
+ default = "2.42.0"
+}
+
+variable "auto_promote" {
+ description = "Specifies if the job should auto-promote to the canary version"
+ type = bool
+ default = true
+}
+
+variable "auto_revert" {
+ description = "Specifies if the job should auto-revert to the last stable job"
+ type = bool
+ default = true
+}
+
+variable "canary" {
+ description = "Equal to the count of the task group allows blue/green depl."
+ type = number
+ default = 1
+}
+
+variable "cpu" {
+ description = "CPU allocation"
+ type = number
+ default = 2000
+}
+
+variable "constraint_value" {
+ description = "The constraint allows restricting the set of eligible nodes."
+ type = string
+ default = "builder"
+}
+
+variable "data_dir" {
+ description = "Prometheus DISK allocation"
+ type = string
+ default = "/data"
+}
+
+variable "group_count" {
+ description = "Specifies the number of the task groups running under this one"
+ type = number
+ default = 4
+}
+
+variable "job_name" {
+ description = "Specifies a name for the job"
+ type = string
+ default = "prometheus"
+}
+
+variable "max_parallel" {
+ description = "Specifies the maximum number of updates to perform in parallel"
+ type = number
+ default = 1
+}
+
+variable "memory" {
+ description = "Specifies the memory required in MB"
+ type = number
+ default = 4096
+}
+
+variable "port" {
+ description = "Specifies the static TCP/UDP port to allocate"
+ type = number
+ default = 9090
+}
+
+variable "service_name" {
+ description = "Specifies the name this service will be advertised in Consul"
+ type = string
+ default = "prometheus"
+}
+
+variable "use_canary" {
+ description = "Uses canary deployment"
+ type = bool
+ default = true
+}
+
+variable "use_host_volume" {
+ description = "Use Nomad host volume feature"
+ type = bool
+ default = true
+}
+
+variable "artifact_source_checksum" {
+ description = "Prometheus release checksum"
+ type = string
+ default = "422dab055ed9c7bcaff52b718705f9192c6fac0de6b7e78dd278e70ee2663dcc"
+}
+
+variable "volume_destination" {
+ description = "Specifies where the volume should be mounted inside the task"
+ type = string
+ default = "/data/"
+}
+
+variable "vault_secret" {
+ type = object({
+ use_vault_provider = bool,
+ vault_kv_policy_name = string,
+ vault_kv_path = string,
+ vault_kv_field_access_key = string,
+ vault_kv_field_secret_key = string
+ })
+ description = "Set of properties to be able to fetch secret from vault."
+ default = {
+ use_vault_provider = false
+ vault_kv_policy_name = "kv"
+ vault_kv_path = "secret/data/prometheus"
+ vault_kv_field_access_key = "access_key"
+ vault_kv_field_secret_key = "secret_key"
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/versions.tf b/fdio.infra.terraform/terraform-nomad-prometheus/versions.tf
new file mode 100644
index 0000000000..a319c35908
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ nomad = {
+ source = "hashicorp/nomad"
+ version = ">= 1.4.19"
+ }
+ }
+ required_version = ">= 1.3.7"
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/README.md b/fdio.infra.terraform/terraform-nomad-pyspark-etl/README.md
new file mode 100644
index 0000000000..d61c8778d4
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/README.md
@@ -0,0 +1,50 @@
+<!-- BEGIN_TF_DOCS -->
+## Requirements
+
+| Name | Version |
+|------|---------|
+| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.4 |
+| <a name="requirement_nomad"></a> [nomad](#requirement\_nomad) | >= 1.4.20 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| <a name="provider_nomad"></a> [nomad](#provider\_nomad) | >= 1.4.20 |
+
+## Modules
+
+No modules.
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [nomad_job.nomad_job](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/job) | resource |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| <a name="input_aws_access_key_id"></a> [aws\_access\_key\_id](#input\_aws\_access\_key\_id) | AWS access key. | `string` | `"aws"` | no |
+| <a name="input_aws_default_region"></a> [aws\_default\_region](#input\_aws\_default\_region) | AWS region | `string` | `"aws"` | no |
+| <a name="input_aws_secret_access_key"></a> [aws\_secret\_access\_key](#input\_aws\_secret\_access\_key) | AWS secret key | `string` | `"aws"` | no |
+| <a name="input_cpu"></a> [cpu](#input\_cpu) | Specifies the CPU required to run this task in MHz. | `number` | `10000` | no |
+| <a name="input_cron"></a> [cron](#input\_cron) | Specifies a cron expression configuring the interval to launch. | `string` | `"@daily"` | no |
+| <a name="input_datacenters"></a> [datacenters](#input\_datacenters) | Specifies the list of DCs to be considered placing this task. | `list(string)` | <pre>[<br> "dc1"<br>]</pre> | no |
+| <a name="input_envs"></a> [envs](#input\_envs) | Specifies ETL environment variables. | `list(string)` | `[]` | no |
+| <a name="input_image"></a> [image](#input\_image) | Specifies the Docker image to run. | `string` | `"pmikus/docker-ubuntu-focal-aws-glue:latest"` | no |
+| <a name="input_job_name"></a> [job\_name](#input\_job\_name) | Specifies a name for the job. | `string` | `"etl"` | no |
+| <a name="input_memory"></a> [memory](#input\_memory) | Specifies the memory required in MB. | `number` | `50000` | no |
+| <a name="input_out_aws_access_key_id"></a> [out\_aws\_access\_key\_id](#input\_out\_aws\_access\_key\_id) | AWS access key. | `string` | `"aws"` | no |
+| <a name="input_out_aws_default_region"></a> [out\_aws\_default\_region](#input\_out\_aws\_default\_region) | AWS region | `string` | `"aws"` | no |
+| <a name="input_out_aws_secret_access_key"></a> [out\_aws\_secret\_access\_key](#input\_out\_aws\_secret\_access\_key) | AWS secret key | `string` | `"aws"` | no |
+| <a name="input_prohibit_overlap"></a> [prohibit\_overlap](#input\_prohibit\_overlap) | Specifies if this job should wait until previous completed. | `bool` | `true` | no |
+| <a name="input_time_zone"></a> [time\_zone](#input\_time\_zone) | Specifies the time zone to evaluate the next launch interval. | `string` | `"UTC"` | no |
+| <a name="input_type"></a> [type](#input\_type) | Specifies the Nomad scheduler to use. | `string` | `"batch"` | no |
+| <a name="input_vault_secret"></a> [vault\_secret](#input\_vault\_secret) | Set of properties to be able to fetch secret from vault. | <pre>object({<br> use_vault_provider = bool,<br> vault_kv_policy_name = string,<br> vault_kv_path = string,<br> vault_kv_field_access_key = string,<br> vault_kv_field_secret_key = string<br> })</pre> | <pre>{<br> "use_vault_provider": false,<br> "vault_kv_field_access_key": "access_key",<br> "vault_kv_field_secret_key": "secret_key",<br> "vault_kv_path": "secret/data/etl",<br> "vault_kv_policy_name": "kv"<br>}</pre> | no |
+
+## Outputs
+
+No outputs.
+<!-- END_TF_DOCS --> \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-device-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-device-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..cc0b1df8b5
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-device-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "coverage_device_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-hoststack-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-hoststack-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..95d7a4c46e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-hoststack-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "coverage_hoststack_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-mrr-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-mrr-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..3bab9264fa
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-mrr-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "coverage_mrr_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-ndrpdr-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-ndrpdr-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..6142219546
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-ndrpdr-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "coverage_ndrpdr_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-reconf-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-reconf-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..b474e75217
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-reconf-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "coverage_reconf_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-soak-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-soak-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..0352e1e879
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-coverage-soak-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "coverage_soak_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-hoststack-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-hoststack-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..74478c59f7
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-hoststack-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "iterative_hoststack_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-mrr-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-mrr-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..e6bd87b8ed
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-mrr-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "iterative_mrr_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-ndrpdr-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-ndrpdr-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..4a40321377
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-ndrpdr-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "iterative_ndrpdr_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-reconf-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-reconf-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..670dd37a11
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-reconf-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "iterative_reconf_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-soak-rls2402.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-soak-rls2402.hcl.tftpl
new file mode 100644
index 0000000000..c4ad363879
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-iterative-soak-rls2402.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "20g",
+ "--executor-memory", "20g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "iterative_soak_rls2402.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-stats.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-stats.hcl.tftpl
new file mode 100644
index 0000000000..86ca584de7
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-stats.hcl.tftpl
@@ -0,0 +1,53 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "10g",
+ "--executor-memory", "10g",
+ "stats.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-hoststack.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-hoststack.hcl.tftpl
new file mode 100644
index 0000000000..24aa4095d2
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-hoststack.hcl.tftpl
@@ -0,0 +1,53 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "30g",
+ "--executor-memory", "30g",
+ "trending_hoststack.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-mrr.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-mrr.hcl.tftpl
new file mode 100644
index 0000000000..47d6149eed
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-mrr.hcl.tftpl
@@ -0,0 +1,53 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "30g",
+ "--executor-memory", "30g",
+ "trending_mrr.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-ndrpdr.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-ndrpdr.hcl.tftpl
new file mode 100644
index 0000000000..8cd40f537e
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-ndrpdr.hcl.tftpl
@@ -0,0 +1,55 @@
+job "${job_name}" {
+ datacenters = "${datacenters}"
+ type = "${type}"
+ periodic {
+ cron = "${cron}"
+ prohibit_overlap = "${prohibit_overlap}"
+ time_zone = "${time_zone}"
+ }
+ group "${job_name}" {
+ restart {
+ mode = "fail"
+ }
+ constraint {
+ attribute = "$${attr.cpu.arch}"
+ operator = "!="
+ value = "arm64"
+ }
+ constraint {
+ attribute = "$${node.class}"
+ value = "builder"
+ }
+ task "${job_name}" {
+ artifact {
+ source = "git::https://github.com/FDio/csit"
+ destination = "local/csit"
+ }
+ driver = "docker"
+ config {
+ image = "${image}"
+ command = "gluesparksubmit"
+ args = [
+ "--driver-memory", "30g",
+ "--executor-memory", "30g",
+ "--executor-cores", "2",
+ "--master", "local[2]",
+ "trending_ndrpdr.py"
+ ]
+ work_dir = "/local/csit/csit.infra.etl"
+ }
+ env {
+ AWS_ACCESS_KEY_ID = "${aws_access_key_id}"
+ AWS_SECRET_ACCESS_KEY = "${aws_secret_access_key}"
+ AWS_DEFAULT_REGION = "${aws_default_region}"
+ OUT_AWS_ACCESS_KEY_ID = "${out_aws_access_key_id}"
+ OUT_AWS_SECRET_ACCESS_KEY = "${out_aws_secret_access_key}"
+ OUT_AWS_DEFAULT_REGION = "${out_aws_default_region}"
+ ${ envs }
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/main.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/main.tf
new file mode 100644
index 0000000000..6b5edb79b7
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/main.tf
@@ -0,0 +1,264 @@
+data "vault_generic_secret" "fdio_logs" {
+ path = "kv/secret/data/etl/fdio_logs"
+}
+
+data "vault_generic_secret" "fdio_docs" {
+ path = "kv/secret/data/etl/fdio_docs"
+}
+
+module "etl-stats" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-stats"
+}
+
+module "etl-trending-hoststack" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-trending-hoststack"
+}
+
+module "etl-trending-mrr" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-trending-mrr"
+ memory = 60000
+}
+
+module "etl-trending-ndrpdr" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-trending-ndrpdr"
+ memory = 60000
+}
+
+module "etl-iterative-hoststack-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-iterative-hoststack-rls2402"
+}
+
+module "etl-iterative-mrr-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-iterative-mrr-rls2402"
+}
+
+module "etl-iterative-ndrpdr-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-iterative-ndrpdr-rls2402"
+}
+
+module "etl-iterative-reconf-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-iterative-reconf-rls2402"
+}
+
+module "etl-iterative-soak-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-iterative-soak-rls2402"
+}
+
+module "etl-coverage-device-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-coverage-device-rls2402"
+}
+
+module "etl-coverage-hoststack-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-coverage-hoststack-rls2402"
+}
+
+module "etl-coverage-mrr-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-coverage-mrr-rls2402"
+}
+
+module "etl-coverage-ndrpdr-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-coverage-ndrpdr-rls2402"
+}
+
+module "etl-coverage-reconf-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-coverage-reconf-rls2402"
+}
+
+module "etl-coverage-soak-rls2402" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ aws_access_key_id = data.vault_generic_secret.fdio_logs.data["access_key"]
+ aws_secret_access_key = data.vault_generic_secret.fdio_logs.data["secret_key"]
+ aws_default_region = data.vault_generic_secret.fdio_logs.data["region"]
+ out_aws_access_key_id = data.vault_generic_secret.fdio_docs.data["access_key"]
+ out_aws_secret_access_key = data.vault_generic_secret.fdio_docs.data["secret_key"]
+ out_aws_default_region = data.vault_generic_secret.fdio_docs.data["region"]
+ cron = "0 30 0 * * * *"
+ datacenters = ["yul1"]
+ job_name = "etl-coverage-soak-rls2402"
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/providers.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/providers.tf
new file mode 100644
index 0000000000..c6617da02b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/providers.tf
@@ -0,0 +1,13 @@
+provider "nomad" {
+ address = var.nomad_provider_address
+ alias = "yul1"
+ # ca_file = var.nomad_provider_ca_file
+ # cert_file = var.nomad_provider_cert_file
+ # key_file = var.nomad_provider_key_file
+}
+
+provider "vault" {
+ address = var.vault_provider_address
+ skip_tls_verify = var.vault_provider_skip_tls_verify
+ token = var.vault_provider_token
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/variables.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/variables.tf
new file mode 100644
index 0000000000..db24bdf0fa
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/variables.tf
@@ -0,0 +1,47 @@
+variable "nomad_acl" {
+ description = "Nomad ACLs enabled/disabled."
+ type = bool
+ default = false
+}
+
+variable "nomad_provider_address" {
+ description = "FD.io Nomad cluster address."
+ type = string
+ default = "http://10.30.51.23:4646"
+}
+
+variable "nomad_provider_ca_file" {
+ description = "A local file path to a PEM-encoded certificate authority."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-ca.pem"
+}
+
+variable "nomad_provider_cert_file" {
+ description = "A local file path to a PEM-encoded certificate."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-cli.pem"
+}
+
+variable "nomad_provider_key_file" {
+ description = "A local file path to a PEM-encoded private key."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-cli-key.pem"
+}
+
+variable "vault_provider_address" {
+ description = "Vault cluster address."
+ type = string
+ default = "http://10.30.51.23:8200"
+}
+
+variable "vault_provider_skip_tls_verify" {
+ description = "Verification of the Vault server's TLS certificate."
+ type = bool
+ default = false
+}
+
+variable "vault_provider_token" {
+ description = "Vault root token."
+ type = string
+ sensitive = true
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/versions.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/versions.tf
new file mode 100644
index 0000000000..0c05e76d65
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/versions.tf
@@ -0,0 +1,17 @@
+terraform {
+ backend "consul" {
+ address = "10.30.51.23:8500"
+ scheme = "http"
+ path = "terraform/etl"
+ }
+ required_providers {
+ nomad = {
+ source = "hashicorp/nomad"
+ version = ">= 1.4.20"
+ }
+ vault = {
+ version = ">= 3.12.0"
+ }
+ }
+ required_version = ">= 1.5.4"
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf
new file mode 100644
index 0000000000..cd6a9a52ff
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf
@@ -0,0 +1,33 @@
+locals {
+ datacenters = join(",", var.datacenters)
+ envs = join("\n", concat([], var.envs))
+}
+
+resource "nomad_job" "nomad_job" {
+ jobspec = templatefile(
+ "${path.module}/conf/nomad/${var.job_name}.hcl.tftpl",
+ {
+ aws_access_key_id = var.aws_access_key_id,
+ aws_secret_access_key = var.aws_secret_access_key,
+ aws_default_region = var.aws_default_region
+ cpu = var.cpu,
+ cron = var.cron,
+ datacenters = local.datacenters,
+ envs = local.envs,
+ image = var.image,
+ job_name = var.job_name,
+ memory = var.memory,
+ out_aws_access_key_id = var.out_aws_access_key_id,
+ out_aws_secret_access_key = var.out_aws_secret_access_key,
+ out_aws_default_region = var.out_aws_default_region
+ prohibit_overlap = var.prohibit_overlap,
+ time_zone = var.time_zone,
+ type = var.type,
+ use_vault_provider = var.vault_secret.use_vault_provider,
+ vault_kv_policy_name = var.vault_secret.vault_kv_policy_name,
+ vault_kv_path = var.vault_secret.vault_kv_path,
+ vault_kv_field_access_key = var.vault_secret.vault_kv_field_access_key,
+ vault_kv_field_secret_key = var.vault_secret.vault_kv_field_secret_key
+ })
+ detach = false
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf
new file mode 100644
index 0000000000..f6d318e855
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf
@@ -0,0 +1,115 @@
+# Nomad
+variable "datacenters" {
+ description = "Specifies the list of DCs to be considered placing this task."
+ type = list(string)
+ default = ["dc1"]
+}
+
+# ETL
+variable "aws_access_key_id" {
+ description = "AWS access key."
+ type = string
+ default = "aws"
+}
+
+variable "aws_secret_access_key" {
+ description = "AWS secret key"
+ type = string
+ default = "aws"
+}
+
+variable "aws_default_region" {
+ description = "AWS region"
+ type = string
+ default = "aws"
+}
+
+variable "cpu" {
+ description = "Specifies the CPU required to run this task in MHz."
+ type = number
+ default = 10000
+}
+
+variable "cron" {
+ description = "Specifies a cron expression configuring the interval to launch."
+ type = string
+ default = "@daily"
+}
+
+variable "envs" {
+ description = "Specifies ETL environment variables."
+ type = list(string)
+ default = []
+}
+
+variable "image" {
+ description = "Specifies the Docker image to run."
+ type = string
+ default = "pmikus/docker-ubuntu-focal-aws-glue:latest"
+}
+
+variable "job_name" {
+ description = "Specifies a name for the job."
+ type = string
+ default = "etl"
+}
+
+variable "memory" {
+ description = "Specifies the memory required in MB."
+ type = number
+ default = 50000
+}
+
+variable "out_aws_access_key_id" {
+ description = "AWS access key."
+ type = string
+ default = "aws"
+}
+
+variable "out_aws_secret_access_key" {
+ description = "AWS secret key"
+ type = string
+ default = "aws"
+}
+
+variable "out_aws_default_region" {
+ description = "AWS region"
+ type = string
+ default = "aws"
+}
+
+variable "prohibit_overlap" {
+ description = "Specifies if this job should wait until previous completed."
+ type = bool
+ default = true
+}
+
+variable "time_zone" {
+ description = "Specifies the time zone to evaluate the next launch interval."
+ type = string
+ default = "UTC"
+}
+
+variable "type" {
+ description = "Specifies the Nomad scheduler to use."
+ type = string
+ default = "batch"
+}
+
+variable "vault_secret" {
+ type = object({
+ use_vault_provider = bool,
+ vault_kv_policy_name = string,
+ vault_kv_path = string,
+ vault_kv_field_access_key = string,
+ vault_kv_field_secret_key = string
+ })
+ description = "Set of properties to be able to fetch secret from vault."
+ default = {
+ use_vault_provider = false
+ vault_kv_policy_name = "kv"
+ vault_kv_path = "secret/data/etl"
+ vault_kv_field_access_key = "access_key"
+ vault_kv_field_secret_key = "secret_key"
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf
new file mode 100644
index 0000000000..f40435fe77
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ nomad = {
+ source = "hashicorp/nomad"
+ version = ">= 1.4.20"
+ }
+ }
+ required_version = ">= 1.5.4"
+}
diff --git a/fdio.infra.terraform/terraform-nomad-vpp-device/conf/nomad/device-shim.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-vpp-device/conf/nomad/device-shim.hcl.tftpl
new file mode 100644
index 0000000000..28e38a2d0b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-vpp-device/conf/nomad/device-shim.hcl.tftpl
@@ -0,0 +1,78 @@
+job "${job_name}" {
+ datacenters = ["${datacenters}"]
+ type = "system"
+ group "${job_name}-amd" {
+ count = ${group_count}
+ constraint {
+ attribute = "$${node.class}"
+ value = "csit"
+ }
+ restart {
+ interval = "1m"
+ attempts = 3
+ delay = "15s"
+ mode = "delay"
+ }
+ network {
+ port "ssh" {
+ static = 6022
+ }
+ port "ssh2" {
+ static = 6023
+ }
+ }
+ task "${job_name}-amd" {
+ driver = "docker"
+ config {
+ image = "${image_x86_64}"
+ network_mode = "host"
+ pid_mode = "host"
+ volumes = [
+ "/var/run/docker.sock:/var/run/docker.sock"
+ ]
+ privileged = true
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+ group "${job_name}-arm" {
+ count = ${group_count}
+ constraint {
+ attribute = "$${node.class}"
+ value = "csitarm"
+ }
+ restart {
+ interval = "1m"
+ attempts = 3
+ delay = "15s"
+ mode = "delay"
+ }
+ network {
+ port "ssh" {
+ static = 6022
+ }
+ port "ssh2" {
+ static = 6023
+ }
+ }
+ task "${job_name}-arm" {
+ driver = "docker"
+ config {
+ image = "${image_aarch64}"
+ network_mode = "host"
+ pid_mode = "host"
+ volumes = [
+ "/var/run/docker.sock:/var/run/docker.sock"
+ ]
+ privileged = true
+ }
+ resources {
+ cpu = ${cpu}
+ memory = ${memory}
+ }
+ }
+ }
+}
diff --git a/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/main.tf b/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/main.tf
new file mode 100644
index 0000000000..a6217d781f
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/main.tf
@@ -0,0 +1,16 @@
+module "vpp-device" {
+ providers = {
+ nomad = nomad.yul1
+ }
+ source = "../"
+
+ # nomad
+ datacenters = ["yul1"]
+ job_name = "device-shim"
+ group_count = 1
+ cpu = 1500
+ memory = 4096
+ image_aarch64 = "fdiotools/csit_shim-ubuntu2004:2021_03_02_143938_UTC-aarch64"
+ image_x86_64 = "fdiotools/csit_shim-ubuntu2004:2021_03_04_142103_UTC-x86_64"
+}
+
diff --git a/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/providers.tf b/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/providers.tf
new file mode 100644
index 0000000000..42a6a45ce0
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/providers.tf
@@ -0,0 +1,13 @@
+provider "nomad" {
+ address = var.nomad_provider_address
+ alias = "yul1"
+ # ca_file = var.nomad_provider_ca_file
+ # cert_file = var.nomad_provider_cert_file
+ # key_file = var.nomad_provider_key_file
+}
+
+provider "vault" {
+ address = var.vault_provider_address
+ skip_tls_verify = var.vault_provider_skip_tls_verify
+ token = var.vault_provider_token
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/variables.tf b/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/variables.tf
new file mode 100644
index 0000000000..569ba29c87
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/variables.tf
@@ -0,0 +1,47 @@
+variable "nomad_acl" {
+ description = "Nomad ACLs enabled/disabled."
+ type = bool
+ default = false
+}
+
+variable "nomad_provider_address" {
+ description = "FD.io Nomad cluster address."
+ type = string
+ default = "http://10.30.51.23:4646"
+}
+
+variable "nomad_provider_ca_file" {
+ description = "A local file path to a PEM-encoded certificate authority."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-ca.pem"
+}
+
+variable "nomad_provider_cert_file" {
+ description = "A local file path to a PEM-encoded certificate."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-cli.pem"
+}
+
+variable "nomad_provider_key_file" {
+ description = "A local file path to a PEM-encoded private key."
+ type = string
+ default = "/etc/nomad.d/ssl/nomad-cli-key.pem"
+}
+
+variable "vault_provider_address" {
+ description = "Vault cluster address."
+ type = string
+ default = "http://10.30.51.23:8200"
+}
+
+variable "vault_provider_skip_tls_verify" {
+ description = "Verification of the Vault server's TLS certificate."
+ type = bool
+ default = false
+}
+
+variable "vault_provider_token" {
+ description = "Vault root token."
+ type = string
+ sensitive = true
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/versions.tf b/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/versions.tf
new file mode 100644
index 0000000000..fc5a3ab12d
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-vpp-device/fdio/versions.tf
@@ -0,0 +1,15 @@
+terraform {
+ backend "consul" {
+ address = "10.30.51.23:8500"
+ scheme = "http"
+ path = "terraform/device-csit-shim"
+ }
+ required_providers {
+ nomad = {
+ source = "hashicorp/nomad"
+ version = ">= 1.4.20"
+ }
+ }
+ required_version = ">= 1.5.4"
+}
+
diff --git a/fdio.infra.terraform/terraform-nomad-vpp-device/main.tf b/fdio.infra.terraform/terraform-nomad-vpp-device/main.tf
new file mode 100644
index 0000000000..b176172d00
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-vpp-device/main.tf
@@ -0,0 +1,20 @@
+locals {
+ datacenters = join(",", var.datacenters)
+}
+
+resource "nomad_job" "nomad_job" {
+ jobspec = templatefile(
+ "${path.module}/conf/nomad/${var.job_name}.hcl.tftpl",
+ {
+ datacenters = local.datacenters,
+ job_name = var.job_name,
+ group_count = var.group_count,
+ cpu = var.cpu,
+ memory = var.memory,
+ image_aarch64 = var.image_aarch64,
+ image_x86_64 = var.image_x86_64
+ }
+ )
+ detach = false
+}
+
diff --git a/fdio.infra.terraform/terraform-nomad-vpp-device/variables.tf b/fdio.infra.terraform/terraform-nomad-vpp-device/variables.tf
new file mode 100644
index 0000000000..0a11e1da3b
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-vpp-device/variables.tf
@@ -0,0 +1,43 @@
+# Nomad
+variable "datacenters" {
+ description = "Specifies the list of DCs to be considered placing this task"
+ type = list(string)
+ default = ["dc1"]
+}
+
+# CSIT SHIM
+variable "job_name" {
+ description = "CSIT SHIM job name"
+ type = string
+ default = "prod-csit-shim"
+}
+
+variable "group_count" {
+ description = "Number of CSIT SHIM group instances"
+ type = number
+ default = 1
+}
+
+variable "cpu" {
+ description = "CSIT SHIM task CPU"
+ type = number
+ default = 2000
+}
+
+variable "memory" {
+ description = "CSIT SHIM task memory"
+ type = number
+ default = 10000
+}
+
+variable "image_aarch64" {
+ description = "CSIT SHIM AARCH64 docker image"
+ type = string
+ default = "fdiotools/csit_shim-ubuntu2004:prod-aarch64"
+}
+
+variable "image_x86_64" {
+ description = "CSIT SHIM X86_64 docker image"
+ type = string
+ default = "fdiotools/csit_shim-ubuntu2004:prod-x86_64"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-vpp-device/versions.tf b/fdio.infra.terraform/terraform-nomad-vpp-device/versions.tf
new file mode 100644
index 0000000000..f40435fe77
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-vpp-device/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ nomad = {
+ source = "hashicorp/nomad"
+ version = ">= 1.4.20"
+ }
+ }
+ required_version = ">= 1.5.4"
+}
diff --git a/fdio.infra.terraform/terraform-openstack-2n/README.md b/fdio.infra.terraform/terraform-openstack-2n/README.md
new file mode 100644
index 0000000000..3ddb0f3789
--- /dev/null
+++ b/fdio.infra.terraform/terraform-openstack-2n/README.md
@@ -0,0 +1,58 @@
+# terraform-openstack-2n-generic
+Terraform module to create 2n-generic topology.
+
+<!-- BEGIN_TF_DOCS -->
+## Requirements
+
+| Name | Version |
+|------|---------|
+| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.4.2 |
+| <a name="requirement_openstack"></a> [openstack](#requirement\_openstack) | ~> 1.53.0 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| <a name="provider_local"></a> [local](#provider\_local) | 2.4.1 |
+| <a name="provider_openstack"></a> [openstack](#provider\_openstack) | 1.53.0 |
+| <a name="provider_template"></a> [template](#provider\_template) | 2.2.0 |
+
+## Modules
+
+| Name | Source | Version |
+|------|--------|---------|
+| <a name="module_openstack_compute_keypair_v2"></a> [openstack\_compute\_keypair\_v2](#module\_openstack\_compute\_keypair\_v2) | pmikus/compute-keypair-v2/openstack | 1.54.1 |
+| <a name="module_openstack_images_image_v2"></a> [openstack\_images\_image\_v2](#module\_openstack\_images\_image\_v2) | pmikus/images-image-v2/openstack | 1.54.1 |
+| <a name="module_sut1"></a> [sut1](#module\_sut1) | pmikus/compute-instance-v2/openstack | 1.54.1 |
+| <a name="module_tg1"></a> [tg1](#module\_tg1) | pmikus/compute-instance-v2/openstack | 1.54.1 |
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [local_file.hosts](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.topology_file](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [openstack_networking_port_v2.port_sut1_data1](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_port_v2) | resource |
+| [openstack_networking_port_v2.port_sut1_data2](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_port_v2) | resource |
+| [openstack_networking_port_v2.port_sut1_mgmt](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_port_v2) | resource |
+| [openstack_networking_port_v2.port_tg1_data1](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_port_v2) | resource |
+| [openstack_networking_port_v2.port_tg1_data2](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_port_v2) | resource |
+| [openstack_networking_port_v2.port_tg1_mgmt](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_port_v2) | resource |
+| [template_cloudinit_config.cloudinit_config_sut1](https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/cloudinit_config) | data source |
+| [template_cloudinit_config.cloudinit_config_tg1](https://registry.terraform.io/providers/hashicorp/template/latest/docs/data-sources/cloudinit_config) | data source |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| <a name="input_flavour_name"></a> [flavour\_name](#input\_flavour\_name) | (Optional; Required if flavor\_id is empty) The name of the desired flavor for the server. Changing this resizes the existing server. | `string` | n/a | yes |
+| <a name="input_network_id_data"></a> [network\_id\_data](#input\_network\_id\_data) | (Required) The ID of the network to attach the port to. Changing this creates a new port. | `string` | n/a | yes |
+| <a name="input_network_id_mgmt"></a> [network\_id\_mgmt](#input\_network\_id\_mgmt) | (Required) The ID of the network to attach the port to. Changing this creates a new port. | `string` | n/a | yes |
+
+## Outputs
+
+| Name | Description |
+|------|-------------|
+| <a name="output_sut_id"></a> [sut\_id](#output\_sut\_id) | SUT VM ID. |
+| <a name="output_tg_id"></a> [tg\_id](#output\_tg\_id) | TG VM ID. |
+<!-- END_TF_DOCS -->
diff --git a/fdio.infra.terraform/terraform-openstack-2n/hosts.tftpl b/fdio.infra.terraform/terraform-openstack-2n/hosts.tftpl
new file mode 100644
index 0000000000..cb36dbb138
--- /dev/null
+++ b/fdio.infra.terraform/terraform-openstack-2n/hosts.tftpl
@@ -0,0 +1,8 @@
+all:
+ children:
+ tg:
+ hosts:
+ ${tg_public_ip}
+ sut:
+ hosts:
+ ${dut1_public_ip} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-openstack-2n/main.tf b/fdio.infra.terraform/terraform-openstack-2n/main.tf
new file mode 100644
index 0000000000..f306933a81
--- /dev/null
+++ b/fdio.infra.terraform/terraform-openstack-2n/main.tf
@@ -0,0 +1,211 @@
+locals {
+ image_name = "Ubuntu 22.04.2 LTS"
+ image_source_url = "http://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img"
+ resource_prefix = "csit-2n"
+ testbed_name = "xu6n"
+ topology_name = "2n"
+}
+
+# Create Cloud-Init config for TG.
+data "template_cloudinit_config" "cloudinit_config_tg1" {
+ gzip = false
+ base64_encode = false
+
+ part {
+ content_type = "text/cloud-config"
+ content = templatefile(
+ "${path.module}/user-data-tg1", {}
+ )
+ }
+}
+
+# Create Cloud-Init config for SUT1.
+data "template_cloudinit_config" "cloudinit_config_sut1" {
+ gzip = false
+ base64_encode = false
+
+ part {
+ content_type = "text/cloud-config"
+ content = templatefile(
+ "${path.module}/user-data-sut1", {}
+ )
+ }
+}
+
+# Create OpenStack Image.
+module "openstack_images_image_v2" {
+ source = "pmikus/images-image-v2/openstack"
+ version = "1.54.1"
+
+ image_source_url = local.image_source_url
+ name = local.image_name
+}
+
+# Create OpenStack Keypair.
+module "openstack_compute_keypair_v2" {
+ source = "pmikus/compute-keypair-v2/openstack"
+ version = "1.54.1"
+
+ name = "${local.resource_prefix}-keypair"
+}
+
+
+# Create management port in dedicated subnet.
+resource "openstack_networking_port_v2" "port_tg1_mgmt" {
+ admin_state_up = true
+ fixed_ip {
+ ip_address = "10.21.152.2"
+ subnet_id = "b1f9573d-4c2e-45da-bbac-cb3f191ab0f5"
+ }
+ name = "${local.resource_prefix}-tg1-mgmt-port"
+ network_id = var.network_id_mgmt
+ port_security_enabled = false
+
+ binding {
+ vnic_type = "normal"
+ }
+}
+
+# Create data port in dedicated subnet.
+resource "openstack_networking_port_v2" "port_tg1_data1" {
+ admin_state_up = false
+ name = "${local.resource_prefix}-tg1-data1-port"
+ network_id = var.network_id_data
+ port_security_enabled = false
+
+ binding {
+ vnic_type = "direct"
+ }
+}
+
+# Create data port in dedicated subnet.
+resource "openstack_networking_port_v2" "port_tg1_data2" {
+ admin_state_up = false
+ name = "${local.resource_prefix}-tg1-data2-port"
+ network_id = var.network_id_data
+ port_security_enabled = false
+
+ binding {
+ vnic_type = "direct"
+ }
+}
+
+# Create TG instance.
+module "tg1" {
+ depends_on = [
+ module.openstack_compute_keypair_v2,
+ module.openstack_images_image_v2
+ ]
+
+ source = "pmikus/compute-instance-v2/openstack"
+ version = "1.54.1"
+
+ flavour_name = var.flavour_name
+ image_id = module.openstack_images_image_v2.id
+ key_pair = module.openstack_compute_keypair_v2.name
+ name = "${local.resource_prefix}-tg1"
+ networks = {
+ "platform-shared-port" = openstack_networking_port_v2.port_tg1_mgmt.id
+ "data-playground-port1" = openstack_networking_port_v2.port_tg1_data1.id
+ "data-playground-port2" = openstack_networking_port_v2.port_tg1_data2.id
+ }
+ user_data = data.template_cloudinit_config.cloudinit_config_tg1.rendered
+}
+
+# Create management port in dedicated subnet.
+resource "openstack_networking_port_v2" "port_sut1_mgmt" {
+ admin_state_up = true
+ fixed_ip {
+ ip_address = "10.21.152.3"
+ subnet_id = "b1f9573d-4c2e-45da-bbac-cb3f191ab0f5"
+ }
+ name = "${local.resource_prefix}-sut1-mgmt-port"
+ network_id = var.network_id_mgmt
+ port_security_enabled = false
+
+ binding {
+ vnic_type = "normal"
+ }
+}
+
+# Create data port in dedicated subnet.
+resource "openstack_networking_port_v2" "port_sut1_data1" {
+ admin_state_up = false
+ name = "${local.resource_prefix}-sut1-data1-port"
+ network_id = var.network_id_data
+ port_security_enabled = false
+
+ binding {
+ vnic_type = "direct"
+ }
+}
+
+# Create data port in dedicated subnet.
+resource "openstack_networking_port_v2" "port_sut1_data2" {
+ admin_state_up = false
+ name = "${local.resource_prefix}-sut1-data2-port"
+ network_id = var.network_id_data
+ port_security_enabled = false
+
+ binding {
+ vnic_type = "direct"
+ }
+}
+
+# Create SUT instance.
+module "sut1" {
+ depends_on = [
+ module.openstack_compute_keypair_v2,
+ module.openstack_images_image_v2
+ ]
+
+ source = "pmikus/compute-instance-v2/openstack"
+ version = "1.54.1"
+
+ flavour_name = var.flavour_name
+ image_id = module.openstack_images_image_v2.id
+ key_pair = module.openstack_compute_keypair_v2.name
+ name = "${local.resource_prefix}-sut1"
+ networks = {
+ "platform-shared-port" = openstack_networking_port_v2.port_sut1_mgmt.id
+ "data-playground-port1" = openstack_networking_port_v2.port_sut1_data1.id
+ "data-playground-port2" = openstack_networking_port_v2.port_sut1_data2.id
+ }
+ user_data = data.template_cloudinit_config.cloudinit_config_sut1.rendered
+}
+
+resource "local_file" "topology_file" {
+ depends_on = [
+ module.tg1,
+ module.sut1
+ ]
+
+ content = templatefile(
+ "${path.module}/topology-${local.topology_name}.tftpl",
+ {
+ tg_if1_mac = openstack_networking_port_v2.port_tg1_data1.mac_address
+ tg_if2_mac = openstack_networking_port_v2.port_tg1_data2.mac_address
+ dut1_if1_mac = openstack_networking_port_v2.port_sut1_data1.mac_address
+ dut1_if2_mac = openstack_networking_port_v2.port_sut1_data2.mac_address
+ tg_public_ip = openstack_networking_port_v2.port_tg1_mgmt.fixed_ip[0].ip_address
+ dut1_public_ip = openstack_networking_port_v2.port_sut1_mgmt.fixed_ip[0].ip_address
+ }
+ )
+ filename = "${path.module}/${local.topology_name}-x-${local.testbed_name}.yaml"
+}
+
+resource "local_file" "hosts" {
+ depends_on = [
+ module.tg1,
+ module.sut1
+ ]
+
+ content = templatefile(
+ "${path.module}/hosts.tftpl",
+ {
+ tg_public_ip = openstack_networking_port_v2.port_tg1_mgmt.fixed_ip[0].ip_address
+ dut1_public_ip = openstack_networking_port_v2.port_sut1_mgmt.fixed_ip[0].ip_address
+ }
+ )
+ filename = "${path.module}/hosts.yaml"
+}
diff --git a/fdio.infra.terraform/terraform-openstack-2n/outputs.tf b/fdio.infra.terraform/terraform-openstack-2n/outputs.tf
new file mode 100644
index 0000000000..f8985685f0
--- /dev/null
+++ b/fdio.infra.terraform/terraform-openstack-2n/outputs.tf
@@ -0,0 +1,9 @@
+output "tg_id" {
+ description = "TG VM ID."
+ value = module.tg1.id
+}
+
+output "sut_id" {
+ description = "SUT VM ID."
+ value = module.sut1.id
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-openstack-2n/topology-2n.tftpl b/fdio.infra.terraform/terraform-openstack-2n/topology-2n.tftpl
new file mode 100644
index 0000000000..1129a6f8f3
--- /dev/null
+++ b/fdio.infra.terraform/terraform-openstack-2n/topology-2n.tftpl
@@ -0,0 +1,59 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "${tg_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 100GE port1 on E810 NIC.
+ mac_address: "${tg_if1_mac}"
+ pci_address: "0000:00:05.0"
+ ip4_address: "172.16.10.2"
+ driver: iavf
+ link: link1
+ model: Intel-E810
+ port2:
+ # tg_instance/p2 - 100GE port2 on E810 NIC.
+ mac_address: "${tg_if2_mac}"
+ pci_address: "0000:00:06.0"
+ ip4_address: "172.16.20.2"
+ driver: iavf
+ link: link2
+ model: Intel-E810
+ DUT1:
+ type: DUT
+ host: "${dut1_public_ip}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 100GE port1 on E810 NIC.
+ mac_address: "${dut1_if1_mac}"
+ pci_address: "0000:00:05.0"
+ ip4_address: "172.16.10.1"
+ driver: iavf
+ link: link1
+ model: Intel-E810
+ port2:
+ # dut1_instance/p2 - 100GE port2 on E810 NIC.
+ mac_address: "${dut1_if2_mac}"
+ pci_address: "0000:00:06.0"
+ ip4_address: "172.16.20.1"
+ driver: iavf
+ link: link2
+ model: Intel-E810 \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-openstack-2n/user-data-sut1 b/fdio.infra.terraform/terraform-openstack-2n/user-data-sut1
new file mode 100644
index 0000000000..9838f1b165
--- /dev/null
+++ b/fdio.infra.terraform/terraform-openstack-2n/user-data-sut1
@@ -0,0 +1,66 @@
+#cloud-config
+apt:
+ sources:
+ docker.list:
+ source: "deb [arch=amd64] https://download.docker.com/linux/ubuntu $RELEASE stable"
+ keyid: "9DC858229FC7DD38854AE2D88D81803C0EBFCD88"
+groups:
+ - "docker"
+hostname: "s02-t21-sut1"
+package_update: true
+packages:
+ - "apt-transport-https"
+ - "autoconf"
+ - "build-essential"
+ - "ca-certificates"
+ - "cgroup-tools"
+ - "curl"
+ - "dkms"
+ - "docker-ce"
+ - "docker-ce-cli"
+ - "gdb"
+ - "gnupg-agent"
+ - "iperf3"
+ - "libglib2.0-dev"
+ - "libmbedcrypto7"
+ - "libmbedtls14"
+ - "libmbedx509-1"
+ - "libnuma-dev"
+ - "libpixman-1-dev"
+ - "libpcap-dev"
+ - "libtool"
+ - "linux-tools-common"
+ - "lxc"
+ - "net-tools"
+ - "ninja-build"
+ - "numactl"
+ - "pkg-config"
+ - "python3-all"
+ - "python3-apt"
+ - "python3-cffi"
+ - "python3-cffi-backend"
+ - "python3-dev"
+ - "python3-pip"
+ - "python3-pyelftools"
+ - "python3-setuptools"
+ - "qemu-system"
+ - "screen"
+ - "socat"
+ - "software-properties-common"
+ - "unzip"
+ - "virtualenv"
+runcmd:
+ - sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config
+ - echo "PermitRootLogin no" >> /etc/ssh/sshd_config
+ - systemctl restart sshd
+ - systemctl start docker
+ - systemctl enable docker
+ssh_pwauth: True
+users:
+ - name: "testuser"
+ groups: users, admin, docker, sudo
+ shell: "/bin/bash"
+ sudo:
+ - ALL=(ALL) NOPASSWD:ALL
+ lock_passwd: false
+ passwd: "$6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0" \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-openstack-2n/user-data-tg1 b/fdio.infra.terraform/terraform-openstack-2n/user-data-tg1
new file mode 100644
index 0000000000..59f6a481db
--- /dev/null
+++ b/fdio.infra.terraform/terraform-openstack-2n/user-data-tg1
@@ -0,0 +1,71 @@
+#cloud-config
+apt:
+ sources:
+ docker.list:
+ source: "deb [arch=amd64] https://download.docker.com/linux/ubuntu $RELEASE stable"
+ keyid: "9DC858229FC7DD38854AE2D88D81803C0EBFCD88"
+groups:
+ - "docker"
+hostname: "s01-t21-tg"
+package_update: true
+packages:
+ - "apt-transport-https"
+ - "autoconf"
+ - "build-essential"
+ - "ca-certificates"
+ - "cgroup-tools"
+ - "curl"
+ - "dkms"
+ - "docker-ce"
+ - "docker-ce-cli"
+ - "gcc-9"
+ - "g++-9"
+ - "gnupg-agent"
+ - "iperf3"
+ - "libmnl-dev"
+ - "libnuma-dev"
+ - "libpcap-dev"
+ - "librdmacm-dev"
+ - "librdmacm1"
+ - "libssl-dev"
+ - "linux-tools-common"
+ - "net-tools"
+ - "ninja-build"
+ - "numactl"
+ - "pciutils"
+ - "python3-all"
+ - "python3-apt"
+ - "python3-cffi"
+ - "python3-cffi-backend"
+ - "python3-dev"
+ - "python3-pip"
+ - "python3-pyelftools"
+ - "python3-setuptools"
+ - "qemu-system"
+ - "socat"
+ - "software-properties-common"
+ - "unzip"
+ - "virtualenv"
+ - "zlib1g-dev"
+runcmd:
+ - sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config
+ - echo "PermitRootLogin no" >> /etc/ssh/sshd_config
+ - systemctl restart sshd
+ - systemctl start docker
+ - systemctl enable docker
+ - curl --proxy "http://[2620:0:cc8:11::1]:8888" -L http://github.com/cisco-system-traffic-generator/trex-core/archive/v3.03.tar.gz -o /opt/trex-core-v3.03.tar.gz
+ - mkdir -p /opt/trex-core-v3.03
+ - tar xzf /opt/trex-core-v3.03.tar.gz -C /opt/trex-core-v3.03 --strip-components=1
+ - cd /opt/trex-core-v3.03/linux_dpdk && ./b configure
+ - cd /opt/trex-core-v3.03/linux_dpdk && ./b build
+ - cd /opt/trex-core-v3.03/scripts/ko/src && make
+ - cd /opt/trex-core-v3.03/scripts/ko/src && make install
+ssh_pwauth: True
+users:
+ - name: "testuser"
+ groups: users, admin, docker, sudo
+ shell: "/bin/bash"
+ sudo:
+ - ALL=(ALL) NOPASSWD:ALL
+ lock_passwd: false
+ passwd: "$6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0"
diff --git a/fdio.infra.terraform/terraform-openstack-2n/variables.tf b/fdio.infra.terraform/terraform-openstack-2n/variables.tf
new file mode 100644
index 0000000000..d761016699
--- /dev/null
+++ b/fdio.infra.terraform/terraform-openstack-2n/variables.tf
@@ -0,0 +1,14 @@
+variable "flavour_name" {
+ description = "(Optional; Required if flavor_id is empty) The name of the desired flavor for the server. Changing this resizes the existing server."
+ type = string
+}
+
+variable "network_id_data" {
+ description = "(Required) The ID of the network to attach the port to. Changing this creates a new port."
+ type = string
+}
+
+variable "network_id_mgmt" {
+ description = "(Required) The ID of the network to attach the port to. Changing this creates a new port."
+ type = string
+}
diff --git a/fdio.infra.terraform/terraform-openstack-2n/versions.tf b/fdio.infra.terraform/terraform-openstack-2n/versions.tf
new file mode 100644
index 0000000000..1ad4a215b5
--- /dev/null
+++ b/fdio.infra.terraform/terraform-openstack-2n/versions.tf
@@ -0,0 +1,9 @@
+terraform {
+ required_providers {
+ openstack = {
+ source = "terraform-provider-openstack/openstack"
+ version = "~> 1.53.0"
+ }
+ }
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/README.md b/fdio.infra.terraform/terraform-vault-aws-secret-backend/README.md
new file mode 100644
index 0000000000..af0fa29334
--- /dev/null
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/README.md
@@ -0,0 +1,40 @@
+<!-- BEGIN_TF_DOCS -->
+## Requirements
+
+| Name | Version |
+|------|---------|
+| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.4 |
+| <a name="requirement_vault"></a> [vault](#requirement\_vault) | >=2.22.1 |
+
+## Providers
+
+| Name | Version |
+|------|---------|
+| <a name="provider_vault"></a> [vault](#provider\_vault) | >=2.22.1 |
+
+## Modules
+
+No modules.
+
+## Resources
+
+| Name | Type |
+|------|------|
+| [vault_aws_secret_backend.aws](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/aws_secret_backend) | resource |
+| [vault_aws_secret_backend_role.admin](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/aws_secret_backend_role) | resource |
+
+## Inputs
+
+| Name | Description | Type | Default | Required |
+|------|-------------|------|---------|:--------:|
+| <a name="input_aws_access_key"></a> [aws\_access\_key](#input\_aws\_access\_key) | AWS access key | `string` | n/a | yes |
+| <a name="input_aws_secret_key"></a> [aws\_secret\_key](#input\_aws\_secret\_key) | AWS secret key | `string` | n/a | yes |
+| <a name="input_name"></a> [name](#input\_name) | Vault path | `string` | `"dynamic-aws-creds-vault"` | no |
+
+## Outputs
+
+| Name | Description |
+|------|-------------|
+| <a name="output_backend"></a> [backend](#output\_backend) | n/a |
+| <a name="output_role"></a> [role](#output\_role) | n/a |
+<!-- END_TF_DOCS --> \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf
new file mode 100644
index 0000000000..4473dafda8
--- /dev/null
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/main.tf
@@ -0,0 +1,17 @@
+module "fdio-logs" {
+ # fdio logs iam
+ source = "../"
+ name = "dynamic-aws-creds-vault-fdio-logs"
+}
+
+module "fdio-docs" {
+ # fdio docs iam
+ source = "../"
+ name = "dynamic-aws-creds-vault-fdio-docs"
+}
+
+module "fdio-csit-jenkins" {
+ # fdio csit jenkins iam
+ source = "../"
+ name = "dynamic-aws-creds-vault-fdio-csit-jenkins"
+}
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/providers.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/providers.tf
new file mode 100644
index 0000000000..102fd31b87
--- /dev/null
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/providers.tf
@@ -0,0 +1,5 @@
+provider "vault" {
+ address = var.vault_provider_address
+ skip_tls_verify = var.vault_provider_skip_tls_verify
+ token = var.vault_provider_token
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf
new file mode 100644
index 0000000000..d3d728a49d
--- /dev/null
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf
@@ -0,0 +1,17 @@
+variable "vault_provider_address" {
+ description = "Vault cluster address."
+ type = string
+ default = "http://10.30.51.23:8200"
+}
+
+variable "vault_provider_skip_tls_verify" {
+ description = "Verification of the Vault server's TLS certificate."
+ type = bool
+ default = false
+}
+
+variable "vault_provider_token" {
+ description = "Vault root token."
+ type = string
+ sensitive = true
+}
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf
new file mode 100644
index 0000000000..4c93000093
--- /dev/null
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf
@@ -0,0 +1,13 @@
+terraform {
+ backend "consul" {
+ address = "10.30.51.23:8500"
+ scheme = "http"
+ path = "terraform/aws-secret-backend"
+ }
+ required_providers {
+ vault = {
+ version = ">= 3.12.0"
+ }
+ }
+ required_version = ">= 1.5.4"
+}
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/main.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/main.tf
new file mode 100644
index 0000000000..a65c390792
--- /dev/null
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/main.tf
@@ -0,0 +1,37 @@
+resource "vault_aws_secret_backend" "aws" {
+ access_key = var.aws_access_key
+ secret_key = var.aws_secret_key
+ path = "${var.name}-path"
+
+ default_lease_ttl_seconds = "0"
+ max_lease_ttl_seconds = "0"
+}
+
+resource "vault_aws_secret_backend_role" "admin" {
+ backend = vault_aws_secret_backend.aws.path
+ name = "${var.name}-role"
+ credential_type = "iam_user"
+
+ policy_document = <<EOF
+{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": [
+ "iam:*", "ec2:*"
+ ],
+ "Resource": "*"
+ }
+ ]
+}
+EOF
+}
+
+output "backend" {
+ value = vault_aws_secret_backend.aws.path
+}
+
+output "role" {
+ value = vault_aws_secret_backend_role.admin.name
+}
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/variables.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/variables.tf
new file mode 100644
index 0000000000..2545345185
--- /dev/null
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/variables.tf
@@ -0,0 +1,17 @@
+variable "aws_access_key" {
+ description = "AWS access key"
+ type = string
+ sensitive = true
+}
+
+variable "aws_secret_key" {
+ description = "AWS secret key"
+ type = string
+ sensitive = true
+}
+
+variable "name" {
+ default = "dynamic-aws-creds-vault"
+ description = "Vault path"
+ type = string
+}
diff --git a/fdio.infra.terraform/terraform-vault-aws-secret-backend/versions.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/versions.tf
new file mode 100644
index 0000000000..996288568d
--- /dev/null
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/versions.tf
@@ -0,0 +1,8 @@
+terraform {
+ required_providers {
+ vault = {
+ version = ">=2.22.1"
+ }
+ }
+ required_version = ">= 1.1.4"
+}
diff --git a/fdio.infra/packer-aws-sut/ubuntu_jammy_arm.pkr.hcl b/fdio.infra/packer-aws-sut/ubuntu_jammy_arm.pkr.hcl
new file mode 100644
index 0000000000..f97bd5d01b
--- /dev/null
+++ b/fdio.infra/packer-aws-sut/ubuntu_jammy_arm.pkr.hcl
@@ -0,0 +1,88 @@
+packer {
+ required_plugins {
+ amazon = {
+ version = ">= 1.2.6"
+ source = "github.com/hashicorp/amazon"
+ }
+ }
+}
+
+variable "first_run_commands" {
+ description = "Commands to run before deployment via remote-exec"
+ type = list(string)
+ default = [
+ ""
+ ]
+}
+
+variable "last_run_commands" {
+ description = "Commands to run after deployment via remote-exec"
+ type = list(string)
+ default = [
+ "sudo sed -i 's/Unattended-Upgrade \"1\"/Unattended-Upgrade \"0\"/g' /etc/apt/apt.conf.d/20auto-upgrades"
+ ]
+}
+
+variable "ansible_file_path" {
+ description = "Path to Ansible playbook"
+ type = string
+ default = "../../fdio.infra.ansible/site.yaml"
+}
+
+variable "ansible_python_executable" {
+ description = "Path to Python interpreter"
+ type = string
+ default = "/usr/bin/python3"
+}
+
+variable "ansible_topology_path" {
+ description = "Path to Ansible playbook which creates a topology file"
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
+
+variable "ansible_provision_pwd" {
+ description = "Password used for ansible provisioning (ansible_ssh_pass)"
+ type = string
+ default = "Csit1234"
+}
+
+source "amazon-ebs" "csit_ubuntu_jammy_arm_sut" {
+ ami_name = "csit_ubuntu_jammy_arm_sut"
+ ami_description = "CSIT SUT image based on Ubuntu jammy"
+ ena_support = true
+ instance_type = "c7gn.4xlarge"
+ launch_block_device_mappings {
+ device_name = "/dev/sda1"
+ volume_size = 40
+ volume_type = "gp2"
+ }
+ force_deregister = true
+ region = "eu-west-1"
+ skip_create_ami = false
+ source_ami = "ami-0a1b36900d715a3ad"
+ ssh_username = "ubuntu"
+}
+
+build {
+ name = "csit_ubuntu_jammy_arm_sut-packer"
+ sources = [
+ "source.amazon-ebs.csit_ubuntu_jammy_arm_sut"
+ ]
+ provisioner "shell" {
+ inline = var.first_run_commands
+ }
+ provisioner "ansible" {
+ playbook_file = var.ansible_file_path
+ user = "ubuntu"
+ groups = ["sut_aws"]
+ extra_arguments = [
+ "--extra-vars", "ansible_ssh_pass=${var.ansible_provision_pwd}",
+ "--extra-vars", "ansible_python_interpreter=${var.ansible_python_executable}",
+ "--extra-vars", "aws=true"
+ ]
+ }
+ provisioner "shell" {
+ inline = var.last_run_commands
+ }
+} \ No newline at end of file
diff --git a/fdio.infra/packer-aws-sut/ubuntu_jammy_x86.pkr.hcl b/fdio.infra/packer-aws-sut/ubuntu_jammy_x86.pkr.hcl
new file mode 100644
index 0000000000..7293d176e0
--- /dev/null
+++ b/fdio.infra/packer-aws-sut/ubuntu_jammy_x86.pkr.hcl
@@ -0,0 +1,128 @@
+packer {
+ required_plugins {
+ amazon = {
+ version = ">= 1.2.6"
+ source = "github.com/hashicorp/amazon"
+ }
+ }
+}
+
+variable "first_run_commands" {
+ description = "Commands to run before deployment via remote-exec"
+ type = list(string)
+ default = [
+ ""
+ ]
+}
+
+variable "last_run_commands" {
+ description = "Commands to run after deployment via remote-exec"
+ type = list(string)
+ default = [
+ "sudo sed -i 's/Unattended-Upgrade \"1\"/Unattended-Upgrade \"0\"/g' /etc/apt/apt.conf.d/20auto-upgrades"
+ ]
+}
+
+variable "ansible_file_path" {
+ description = "Path to Ansible playbook"
+ type = string
+ default = "../../fdio.infra.ansible/site.yaml"
+}
+
+variable "ansible_python_executable" {
+ description = "Path to Python interpreter"
+ type = string
+ default = "/usr/bin/python3"
+}
+
+variable "ansible_topology_path" {
+ description = "Path to Ansible playbook which creates a topology file"
+ type = string
+ default = "../../fdio.infra.ansible/cloud_topology.yaml"
+}
+
+variable "ansible_provision_pwd" {
+ description = "Password used for ansible provisioning (ansible_ssh_pass)"
+ type = string
+ default = "Csit1234"
+}
+
+source "amazon-ebs" "csit_ubuntu_jammy_x86_sut" {
+ ami_name = "csit_ubuntu_jammy_x86_sut"
+ ami_description = "CSIT SUT image based on Ubuntu Jammy"
+ ena_support = true
+ instance_type = "c5n.4xlarge"
+ launch_block_device_mappings {
+ device_name = "/dev/sda1"
+ volume_size = 40
+ volume_type = "gp2"
+ }
+ force_deregister = true
+ region = "eu-central-1"
+ skip_create_ami = false
+ source_ami = "ami-04e601abe3e1a910f"
+ ssh_username = "ubuntu"
+}
+
+source "amazon-ebs" "csit_ubuntu_jammy_x86_tg" {
+ ami_name = "csit_ubuntu_jammy_x86_tg"
+ ami_description = "CSIT TG image based on Ubuntu Jammy"
+ ena_support = true
+ instance_type = "c5n.4xlarge"
+ launch_block_device_mappings {
+ device_name = "/dev/sda1"
+ volume_size = 40
+ volume_type = "gp2"
+ }
+ force_deregister = true
+ region = "eu-central-1"
+ skip_create_ami = false
+ source_ami = "ami-04e601abe3e1a910f"
+ ssh_username = "ubuntu"
+}
+
+build {
+ name = "csit_ubuntu_jammy_x86_sut-packer"
+ sources = [
+ "source.amazon-ebs.csit_ubuntu_jammy_x86_sut"
+ ]
+ provisioner "shell" {
+ inline = var.first_run_commands
+ }
+ provisioner "ansible" {
+ playbook_file = var.ansible_file_path
+ user = "ubuntu"
+ groups = ["sut_aws"]
+ extra_arguments = [
+ "--extra-vars", "ansible_ssh_pass=${var.ansible_provision_pwd}",
+ "--extra-vars", "ansible_python_interpreter=${var.ansible_python_executable}",
+ "--extra-vars", "aws=true"
+ ]
+ }
+ provisioner "shell" {
+ inline = var.last_run_commands
+ }
+}
+
+build {
+ name = "csit_ubuntu_jammy_x86_tg-packer"
+ sources = [
+ "source.amazon-ebs.csit_ubuntu_jammy_x86_tg"
+ ]
+ provisioner "shell" {
+ inline = var.first_run_commands
+ }
+ provisioner "ansible" {
+ playbook_file = var.ansible_file_path
+ user = "ubuntu"
+ groups = ["tg_aws"]
+ extra_arguments = [
+ "--extra-vars", "ansible_ssh_pass=${var.ansible_provision_pwd}",
+ "--extra-vars", "ansible_python_interpreter=${var.ansible_python_executable}",
+ "--extra-vars", "aws=true"
+ ]
+ }
+ provisioner "shell" {
+ inline = var.last_run_commands
+ }
+}
diff --git a/fdio.infra/pxe/build.sh b/fdio.infra/pxe/build.sh
new file mode 100755
index 0000000000..bd28a4227f
--- /dev/null
+++ b/fdio.infra/pxe/build.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+# Clean.
+docker container rm --force pxe-dnsmasq
+docker image rm pxe-dnsmasq
+docker container rm --force pxe-nginx
+docker image rm pxe-nginx
+
+# Build.
+docker build \
+ --network host \
+ --build-arg HTTP_PROXY="$http_proxy" \
+ --build-arg HTTPS_PROXY="$http_proxy" \
+ --build-arg NO_PROXY="$no_proxy" \
+ --build-arg http_proxy="$http_proxy" \
+ --build-arg https_proxy="$http_proxy" \
+ --build-arg no_proxy="$no_proxy" \
+ --tag pxe-dnsmasq docker-dnsmasq/.
+
+docker build \
+ --build-arg HTTP_PROXY="$http_proxy" \
+ --build-arg HTTPS_PROXY="$http_proxy" \
+ --build-arg NO_PROXY="$no_proxy" \
+ --build-arg http_proxy="$http_proxy" \
+ --build-arg https_proxy="$http_proxy" \
+ --build-arg no_proxy="$no_proxy" \
+ --tag pxe-nginx docker-nginx/.
+
+# Run.
+docker run \
+ --rm \
+ --detach \
+ --publish 8081:80 \
+ --name pxe-nginx \
+ pxe-nginx
+
+docker run \
+ --rm \
+ --detach \
+ --net host \
+ --name pxe-dnsmasq \
+ --env "E_INT=$(ip -o -4 route show to default | awk '{print $5}')" \
+ --env "E_ADD=$(hostname -I | awk '{print $1}')" \
+ --cap-add NET_ADMIN \
+ pxe-dnsmasq \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/Dockerfile b/fdio.infra/pxe/docker-dnsmasq/Dockerfile
new file mode 100644
index 0000000000..6c7dd5a16a
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/Dockerfile
@@ -0,0 +1,53 @@
+FROM ubuntu:22.04 as ubuntu_jammy
+
+LABEL Description="ubuntu intermediate image"
+LABEL Version="2.0"
+
+RUN apt update \
+ && apt install -y wget genisoimage syslinux-common \
+ && mkdir -p /var/lib/tftpboot/grub \
+ && mkdir -p /var/lib/tftpboot/grub/fonts \
+ && mkdir -p /var/lib/tftpboot/casper/ubuntu-jammy-amd64/ \
+ && mkdir -p /var/lib/tftpboot/casper/ubuntu-jammy-arm64/
+
+ENV ISO_JAMMY_AMD64 https://old-releases.ubuntu.com/releases/22.04.1/ubuntu-22.04.1-live-server-amd64.iso
+ENV ISO_JAMMY_ARM64 https://old-releases.ubuntu.com/releases/22.04.1/ubuntu-22.04.1-live-server-arm64.iso
+ENV EFI_JAMMY_AMD64 http://archive.ubuntu.com/ubuntu/dists/jammy/main/uefi/grub2-amd64/current/grubnetx64.efi.signed
+ENV EFI_JAMMY_ARM64 http://ports.ubuntu.com/ubuntu-ports/dists/jammy/main/uefi/grub2-arm64/current/grubnetaa64.efi.signed
+
+RUN echo "Preparing Grub EFI Binary" \
+ && wget $EFI_JAMMY_AMD64 -O /var/lib/tftpboot/grubx64.efi \
+ && wget $EFI_JAMMY_ARM64 -O /var/lib/tftpboot/grubaa64.efi \
+ && apt download shim-signed \
+ && dpkg-deb --fsys-tarfile shim-signed*deb | tar x ./usr/lib/shim/shimx64.efi.signed.latest -O > /var/lib/tftpboot/bootx64.efi \
+ && apt download grub-common \
+ && dpkg-deb --fsys-tarfile grub-common*deb | tar x ./usr/share/grub/unicode.pf2 -O > /var/lib/tftpboot/grub/fonts/unicode.pf2
+
+RUN echo "Preparing Casper Kernel" \
+ && wget $ISO_JAMMY_AMD64 -O /ubuntu-22.04.1-live-server-amd64.iso \
+ && isoinfo -i /ubuntu-22.04.1-live-server-amd64.iso -x "/CASPER/INITRD.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-amd64/initrd \
+ && isoinfo -i /ubuntu-22.04.1-live-server-amd64.iso -x "/CASPER/VMLINUZ.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-amd64/vmlinuz \
+ && wget $ISO_JAMMY_ARM64 -O /ubuntu-22.04.1-live-server-arm64.iso \
+ && isoinfo -i /ubuntu-22.04.1-live-server-arm64.iso -x "/CASPER/INITRD.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-arm64/initrd \
+ && isoinfo -i /ubuntu-22.04.1-live-server-arm64.iso -x "/CASPER/VMLINUZ.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-arm64/vmlinuz
+
+FROM alpine
+
+LABEL Description="dnsmasq service image"
+LABEL Version="2.0"
+
+RUN apk add --update --no-cache dnsmasq \
+ && rm -rf /var/cache/apk/*
+
+# Extract installer from previous image.
+COPY --from=ubuntu_jammy /var/lib/tftpboot /var/lib/tftpboot
+
+# Configure PXE.
+COPY tftpboot/ /var/lib/tftpboot/
+
+# Configure DNSMASQ.
+COPY etc/ /etc/
+
+# Start dnsmasq. It picks up default configuration from /etc/dnsmasq.conf and
+# /etc/default/dnsmasq plus any command line switch
+ENTRYPOINT ["sh","-c","dnsmasq","--interface=$E_INT","--listen-address=$E_ADD"] \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/etc/dnsmasq.conf b/fdio.infra/pxe/docker-dnsmasq/etc/dnsmasq.conf
new file mode 100755
index 0000000000..5e8511a5e2
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/etc/dnsmasq.conf
@@ -0,0 +1,103 @@
+# Disable DNS.
+no-resolv
+no-daemon
+no-poll
+no-hosts
+port=0
+
+# TFTP settings.
+enable-tftp
+tftp-root=/var/lib/tftpboot
+
+# PXE settings.
+dhcp-match=set:leg-x86_64,option:client-arch,0
+dhcp-match=set:efi-x86_64,option:client-arch,7
+dhcp-match=set:efi-x86_64,option:client-arch,9
+dhcp-match=set:efi-aa64,option:client-arch,11
+
+dhcp-boot=tag:leg-x86_64,pxelinux.0
+dhcp-boot=tag:efi-x86_64,grubx64.efi
+dhcp-boot=tag:efi-x86_64,grubx64.efi
+dhcp-boot=tag:efi-aa64,grubaa64.efi
+
+# General DHCP settings.
+dhcp-authoritative
+dhcp-broadcast
+
+# DHCP ranges for yul1_1.
+dhcp-range=yul1_1,10.30.51.16,10.30.51.94,255.255.255.0,infinite
+dhcp-option=yul1_1,option:router,10.30.51.1
+dhcp-option=yul1_1,option:dns-server,1.1.1.1
+dhcp-option=yul1_1,option:dns-server,8.8.8.8
+
+# DHCP ranges for yul1_2.
+dhcp-range=yul1_2,10.32.8.18,10.32.8.25,255.255.255.0,infinite
+dhcp-option=yul1_2,option:router,10.32.8.1
+dhcp-option=yul1_2,option:dns-server,1.1.1.1
+dhcp-option=yul1_2,option:dns-server,8.8.8.8
+
+# Hosts DHCP settings yul1_1 subnet.
+dhcp-host=7c:c2:55:55:c0:74,10.30.51.21,s21-nomad,infinite # eno1
+dhcp-host=7c:c2:55:55:c0:7a,10.30.51.22,s22-nomad,infinite # eno1
+dhcp-host=ac:1f:6b:5a:6a:d4,10.30.51.23,s23-nomad,infinite # eno1
+dhcp-host=ac:1f:6b:5a:6a:b4,10.30.51.24,s24-nomad,infinite # eno1
+dhcp-host=ac:1f:6b:5a:6b:08,10.30.51.25,s25-nomad,infinite # eno1
+dhcp-host=ac:1f:6b:ac:d9:2e,10.30.51.26,s26-nomad,infinite # eno1
+dhcp-host=ac:1f:6b:8b:55:d8,10.30.51.27,s27-nomad,infinite # eno1
+dhcp-host=ac:1f:6b:8a:8d:0a,10.30.51.28,s28-nomad,infinite # eno1
+dhcp-host=7c:c2:55:55:c0:78,10.30.51.30,s30-t15-sut1,infinite # eno1
+dhcp-host=7c:c2:55:55:c0:6c,10.30.51.31,s31-t16-sut1,infinite # eno1
+dhcp-host=3c:ec:ef:d9:dd:6b,10.30.51.32,s32-t31-sut1,infinite # eno2
+dhcp-host=3c:ec:ef:d9:de:27,10.30.51.33,s33-t31-sut2,infinite # eno2
+dhcp-host=3c:ec:ef:d9:dd:77,10.30.51.34,s34-t32-sut1,infinite # eno2
+dhcp-host=3c:ec:ef:d9:dd:eb,10.30.51.35,s35-t32-sut2,infinite # eno2
+dhcp-host=a0:a3:3b:c1:14:28,10.30.51.36,s17-t33-sut1,infinite # enahisic2i0
+dhcp-host=a0:a3:3b:c1:12:fa,10.30.51.37,s18-t33-sut2,infinite # enahisic2i0
+dhcp-host=40:8d:5c:e7:b2:6e,10.30.51.38,fdio-marvell-dev,infinite # enP2p1s0v0
+dhcp-host=ac:1f:6b:8b:53:60,10.30.51.49,s19-t33t211-tg1,infinite # eno1
+dhcp-host=ac:1f:6b:8a:8c:76,10.30.51.50,s1-t11-sut1,infinite # eno1
+dhcp-host=ac:1f:6b:8b:53:96,10.30.51.51,s2-t12-sut1,infinite # eno1
+dhcp-host=7c:c2:55:27:58:36,10.30.51.52,s52-t21-sut1,infinite # eno1
+dhcp-host=7c:c2:55:25:3b:4a,10.30.51.53,s53-t21-tg1,infinite # eno1
+dhcp-host=7c:c2:55:27:58:44,10.30.51.54,s54-t22-sut1,infinite # eno1
+dhcp-host=7c:c2:55:27:58:1c,10.30.51.55,s55-t22-tg1,infinite # eno1
+dhcp-host=7c:c2:55:25:3b:4c,10.30.51.56,s56-t23-sut1,infinite # eno1
+dhcp-host=7c:c2:55:25:3b:2e,10.30.51.57,s57-t23-tg1,infinite # eno1
+dhcp-host=7c:c2:55:27:58:42,10.30.51.58,s58-t24-sut1,infinite # eno1
+dhcp-host=7c:c2:55:27:58:5c,10.30.51.59,s59-t24-tg1,infinite # eno1
+dhcp-host=e0:d5:5e:ae:70:26,10.30.51.69,s27-t211-sut1,infinite # eno1
+dhcp-host=b4:2e:99:ab:1d:e8,10.30.51.70,s55-t13-sut1,infinite # enp8s0f0
+dhcp-host=b4:2e:99:ab:1d:dc,10.30.51.71,s56-t14-sut1,infinite # enp8s0f0
+dhcp-host=90:e2:ba:55:be:32,10.30.51.72,s62-t34-sut1,infinite # enp1s0f0
+dhcp-host=90:e2:ba:49:db:b4,10.30.51.73,s63-t34-sut2,infinite # enp1s0f0
+dhcp-host=3c:ec:ef:b9:cc:56,10.30.51.74,s64-t34-tg1,infinite # eno1
+dhcp-host=3c:ec:ef:b9:a6:ba,10.30.51.75,s65-t37-sut1,infinite # eno1
+dhcp-host=3c:ec:ef:b9:a6:80,10.30.51.76,s66-t37-sut2,infinite # eno1
+dhcp-host=3c:ec:ef:b9:a6:c6,10.30.51.77,s67-t37-tg1,infinite # eno1
+dhcp-host=3c:ec:ef:bc:a0:ec,10.30.51.78,s78-t38-sut1,infinite # eno1
+dhcp-host=3c:ec:ef:bc:a0:d4,10.30.51.79,s79-t38-sut2,infinite # eno1
+dhcp-host=3c:ec:ef:bc:92:b2,10.30.51.80,s80-t38-tg1,infinite # eno1
+dhcp-host=3c:ec:ef:b9:a6:ca,10.30.51.81,s71-t212-sut1,infinite # eno1
+dhcp-host=3c:ec:ef:b9:7f:12,10.30.51.82,s72-t212-tg1,infinite # eno1
+dhcp-host=3c:ec:ef:bc:a1:ea,10.30.51.83,s83-t213-sut1,infinite # eno1
+dhcp-host=3c:ec:ef:bc:92:26,10.30.51.84,s84-t213-tg1,infinite # eno1
+dhcp-host=3c:ec:ef:b9:a6:92,10.30.51.85,s85-t214-sut1,infinite # eno1
+dhcp-host=3c:ec:ef:bc:92:e4,10.30.51.86,s86-t214-tg1,infinite # eno1
+dhcp-host=3c:ec:ef:bc:92:e8,10.30.51.87,s87-t215-sut1,infinite # eno1
+dhcp-host=3c:ec:ef:bc:a1:ac,10.30.51.88,s88-t215-tg1,infinite # eno1
+dhcp-host=3c:ec:ef:b9:cc:44,10.30.51.89,s89-t39t310-tg1,infinite # eno1
+dhcp-host=3c:ec:ef:bc:85:8a,10.30.51.90,s90-t31t32-tg1,infinite #eno1
+dhcp-host=d8:5e:d3:02:b1:bb,10.30.51.91,s91-nomad,infinite #eno1
+dhcp-host=d8:5e:d3:02:b1:9f,10.30.51.92,s92-nomad,infinite #eno1
+dhcp-host=a4:bf:01:55:ac:39,10.30.51.93,s93-t39-sut1,infinite # enp4s0
+dhcp-host=a4:bf:01:55:af:5e,10.30.51.94,s94-t39-sut2,infinite # enp4s0
+
+# Hosts DHCP settings yul1_2 subnet.
+dhcp-host=ac:1f:6b:ac:d7:d6,10.32.8.18,s33-t27-sut1,infinite # eno1
+dhcp-host=ac:1f:6b:ac:d7:8c,10.32.8.19,s34-t27-tg1,infinite # eno1
+dhcp-host=ac:1f:6b:ac:d7:c0,10.32.8.20,s35-t28-sut1,infinite # eno1
+dhcp-host=ac:1f:6b:ac:d7:56,10.32.8.21,s36-t28-tg1,infinite # eno1
+dhcp-host=ac:1f:6b:ac:d7:ba,10.32.8.22,s37-t29-sut1,infinite # eno1
+dhcp-host=ac:1f:6b:ac:d7:76,10.32.8.23,s38-t29-tg1,infinite # eno1
+dhcp-host=3c:ec:ef:43:a3:ba,10.32.8.24,s60-t210-sut1,infinite # eno1np0
+dhcp-host=3c:ec:ef:46:34:e8,10.32.8.25,s61-t210-tg1,infinite # eno1np0
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg
new file mode 100644
index 0000000000..dc4801de1d
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg
@@ -0,0 +1,10 @@
+set gfxpayload=keep
+
+set default=0
+set timeout=0
+
+set gfxmode=auto
+loadfont unicode
+
+configfile=$prefix/grub.cfg-$net_default_mac
+source "$configfile"
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:43:a3:ba b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:43:a3:ba
new file mode 100644
index 0000000000..afcaa00ea9
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:43:a3:ba
@@ -0,0 +1,4 @@
+menuentry "Install s60-t210-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:43:a3:ba url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:46:34:e8 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:46:34:e8
new file mode 100644
index 0000000000..a8270a561e
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:46:34:e8
@@ -0,0 +1,4 @@
+menuentry "Install s61-t210-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:46:34:e8 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:7f:12 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:7f:12
new file mode 100644
index 0000000000..d675fcf3b6
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:7f:12
@@ -0,0 +1,4 @@
+menuentry "Install s72-t212-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:7f:12 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:80 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:80
new file mode 100644
index 0000000000..29c86c08f8
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:80
@@ -0,0 +1,4 @@
+menuentry "Install s66-t37-sut2" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:a6:80 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:92 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:92
new file mode 100644
index 0000000000..aa7a7c8899
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:92
@@ -0,0 +1,4 @@
+menuentry "Install s85-t214-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:a6:92 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:ba b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:ba
new file mode 100644
index 0000000000..d5dc5ec258
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:ba
@@ -0,0 +1,4 @@
+menuentry "Install s65-t37-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:a6:ba url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:c6 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:c6
new file mode 100644
index 0000000000..6490a9faf0
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:c6
@@ -0,0 +1,4 @@
+menuentry "Install s67-t37-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:a6:c6 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:ca b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:ca
new file mode 100644
index 0000000000..7dce677093
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:ca
@@ -0,0 +1,4 @@
+menuentry "Install s71-t212-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:a6:ca url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:cc:44 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:cc:44
new file mode 100644
index 0000000000..bd7853b766
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:cc:44
@@ -0,0 +1,4 @@
+menuentry "Install s89-t39t310-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:cc:44 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:cc:56 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:cc:56
new file mode 100644
index 0000000000..edb8b594f6
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:cc:56
@@ -0,0 +1,4 @@
+menuentry "Install s64-t34-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:cc:56 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:85:8a b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:85:8a
new file mode 100644
index 0000000000..05771bcb5a
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:85:8a
@@ -0,0 +1,4 @@
+menuentry "Install s90-t31t32-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:26 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:26
new file mode 100644
index 0000000000..5bd776dab4
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:26
@@ -0,0 +1,4 @@
+menuentry "Install s84-t213-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:92:26 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:b2 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:b2
new file mode 100644
index 0000000000..353f9e4f63
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:b2
@@ -0,0 +1,4 @@
+menuentry "Install s80-t38-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:92:b2 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:e4 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:e4
new file mode 100644
index 0000000000..198f778b3c
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:e4
@@ -0,0 +1,4 @@
+menuentry "Install s86-t214-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:92:e4 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:e8 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:e8
new file mode 100644
index 0000000000..4c8cb9983b
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:e8
@@ -0,0 +1,4 @@
+menuentry "Install s87-t215-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:92:e8 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a0:d4 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a0:d4
new file mode 100644
index 0000000000..4f6f055885
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a0:d4
@@ -0,0 +1,4 @@
+menuentry "Install s79-t38-sut2" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:a0:d4 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a0:ec b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a0:ec
new file mode 100644
index 0000000000..d708c31b82
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a0:ec
@@ -0,0 +1,4 @@
+menuentry "Install s78-t38-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:a0:ec url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a1:ac b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a1:ac
new file mode 100644
index 0000000000..4afbd9b7b4
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a1:ac
@@ -0,0 +1,4 @@
+menuentry "Install s88-t215-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:a1:ac url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a1:ea b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a1:ea
new file mode 100644
index 0000000000..0d212940ec
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a1:ea
@@ -0,0 +1,4 @@
+menuentry "Install s83-t213-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:a1:ea url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:6b b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:6b
new file mode 100644
index 0000000000..034e53568c
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:6b
@@ -0,0 +1,4 @@
+menuentry "Install s32-t31-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno2:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:77 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:77
new file mode 100644
index 0000000000..c5acd65383
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:77
@@ -0,0 +1,4 @@
+menuentry "Install s34-t32-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno2:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:77/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:eb b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:eb
new file mode 100644
index 0000000000..5eca9ec79c
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:dd:eb
@@ -0,0 +1,4 @@
+menuentry "Install s35-t32-sut2" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno2:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:eb/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:de:27 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:de:27
new file mode 100644
index 0000000000..dbb21383db
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:d9:de:27
@@ -0,0 +1,4 @@
+menuentry "Install s33-t31-sut2" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno2:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/3c:ec:ef:d9:de:27/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-40:8d:5c:e7:b2:6e b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-40:8d:5c:e7:b2:6e
new file mode 100644
index 0000000000..62e9c34dea
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-40:8d:5c:e7:b2:6e
@@ -0,0 +1,4 @@
+menuentry "Install fdio-marvell-dev" {
+ linux /casper/ubuntu-jammy-arm64/vmlinuz ip=dhcp interface=40:8d:5c:e7:b2:6e url=http://10.30.51.24:8081/ubuntu_jammy_arm64/ubuntu-22.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/ --- console=ttyAMA0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-arm64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:2e b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:2e
new file mode 100644
index 0000000000..84c580ef35
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:2e
@@ -0,0 +1,4 @@
+menuentry "Install s57-t23-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:25:3b:2e/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:4a b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:4a
new file mode 100644
index 0000000000..fca30868b6
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:4a
@@ -0,0 +1,4 @@
+menuentry "Install s53-t21-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:25:3b:4a/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:4c b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:4c
new file mode 100644
index 0000000000..03a1b563b1
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:25:3b:4c
@@ -0,0 +1,4 @@
+menuentry "Install s56-t23-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:25:3b:4c/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:1c b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:1c
new file mode 100644
index 0000000000..65e7c11f18
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:1c
@@ -0,0 +1,4 @@
+menuentry "Install s55-t22-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:27:58:1c/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:36 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:36
new file mode 100644
index 0000000000..f18750ebd4
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:36
@@ -0,0 +1,4 @@
+menuentry "Install s52-t21-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:27:58:36/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:42 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:42
new file mode 100644
index 0000000000..40eb4d7294
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:42
@@ -0,0 +1,4 @@
+menuentry "Install s58-t24-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:27:58:42/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:44 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:44
new file mode 100644
index 0000000000..4b4ba6f19e
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:44
@@ -0,0 +1,4 @@
+menuentry "Install s54-t22-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:27:58:44/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:5c b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:5c
new file mode 100644
index 0000000000..6edb009e11
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:27:58:5c
@@ -0,0 +1,4 @@
+menuentry "Install s59-t24-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:27:58:5c/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:6c b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:6c
new file mode 100644
index 0000000000..1b54833665
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:6c
@@ -0,0 +1,4 @@
+menuentry "Install s31-t16-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:55:c0:6c/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:74 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:74
new file mode 100644
index 0000000000..4674cf1f4e
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:74
@@ -0,0 +1,4 @@
+menuentry "Install s21-nomad" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:55:c0:74/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:78 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:78
new file mode 100644
index 0000000000..20a069fecf
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:78
@@ -0,0 +1,4 @@
+menuentry "Install s30-t15-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:55:c0:78/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:7a b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:7a
new file mode 100644
index 0000000000..a89d3eb41d
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-7c:c2:55:55:c0:7a
@@ -0,0 +1,4 @@
+menuentry "Install s22-nomad" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=:::::eno1:dhcp url=https://old-releases.ubuntu.com/releases/jammy/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/7c:c2:55:55:c0:7a/ ---
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:49:db:b4 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:49:db:b4
new file mode 100644
index 0000000000..f026fde208
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:49:db:b4
@@ -0,0 +1,4 @@
+menuentry "Install s63-t34-sut2" {
+ linux /casper/ubuntu-jammy-arm64/vmlinuz ip=dhcp interface=90:e2:ba:49:db:b4 url=http://10.30.51.24:8081/ubuntu_jammy_arm64/ubuntu-22.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/ --- console=ttyAMA0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-arm64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:55:be:32 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:55:be:32
new file mode 100644
index 0000000000..bef6ab5c46
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:55:be:32
@@ -0,0 +1,4 @@
+menuentry "Install s62-t34-sut1" {
+ linux /casper/ubuntu-jammy-arm64/vmlinuz ip=dhcp interface=90:e2:ba:55:be:32 url=http://10.30.51.24:8081/ubuntu_jammy_arm64/ubuntu-22.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_arm64/90:e2:ba:55:be:32/ --- console=ttyAMA0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-arm64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a0:a3:3b:c1:12:fa b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a0:a3:3b:c1:12:fa
new file mode 100644
index 0000000000..94716b157a
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a0:a3:3b:c1:12:fa
@@ -0,0 +1,4 @@
+menuentry "Install s18-t33-sut2" {
+ linux /casper/ubuntu-jammy-arm64/vmlinuz ip=dhcp interface=a0:a3:3b:c1:12:fa url=http://10.30.51.24:8081/ubuntu_jammy_arm64/ubuntu-22.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/ --- console=ttyAMA0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-arm64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a0:a3:3b:c1:14:28 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a0:a3:3b:c1:14:28
new file mode 100644
index 0000000000..c25fb59bf6
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a0:a3:3b:c1:14:28
@@ -0,0 +1,4 @@
+menuentry "Install s17-t33-sut1" {
+ linux /casper/ubuntu-jammy-arm64/vmlinuz ip=dhcp interface=a0:a3:3b:c1:14:28 url=http://10.30.51.24:8081/ubuntu_jammy_arm64/ubuntu-22.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/ --- console=ttyAMA0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-arm64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a4:bf:01:55:ac:39 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a4:bf:01:55:ac:39
new file mode 100644
index 0000000000..462ec5fb0a
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a4:bf:01:55:ac:39
@@ -0,0 +1,4 @@
+menuentry "Install s93-t39-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=a4:bf:01:55:ac:39 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a4:bf:01:55:af:5e b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a4:bf:01:55:af:5e
new file mode 100644
index 0000000000..3c3a48d8c4
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a4:bf:01:55:af:5e
@@ -0,0 +1,4 @@
+menuentry "Install s94-t39-sut2" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=a4:bf:01:55:af:5e url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6a:b4 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6a:b4
new file mode 100644
index 0000000000..a3e33ac7b8
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6a:b4
@@ -0,0 +1,4 @@
+menuentry "Install s24-nomad" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:5a:6a:b4 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6a:d4 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6a:d4
new file mode 100644
index 0000000000..7e9cd8d42d
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6a:d4
@@ -0,0 +1,4 @@
+menuentry "Install s23-nomad" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:5a:6a:d4 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6b:08 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6b:08
new file mode 100644
index 0000000000..375d9dcfd7
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6b:08
@@ -0,0 +1,4 @@
+menuentry "Install s25-nomad" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:5a:6b:08 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8c:76 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8c:76
new file mode 100644
index 0000000000..7c3f2591e1
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8c:76
@@ -0,0 +1,4 @@
+menuentry "Install s1-t11-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8a:8c:76 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:0a b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:0a
new file mode 100644
index 0000000000..5a461fdbdc
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:0a
@@ -0,0 +1,4 @@
+menuentry "Install s28-nomad" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8a:8d:0a url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:60 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:60
new file mode 100644
index 0000000000..574aef2f0e
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:60
@@ -0,0 +1,4 @@
+menuentry "Install s19-t33t211-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:53:60 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:96 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:96
new file mode 100644
index 0000000000..ed430b3148
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:96
@@ -0,0 +1,4 @@
+menuentry "Install s2-t12-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:53:96 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:d8 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:d8
new file mode 100644
index 0000000000..feb1c0fe76
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:d8
@@ -0,0 +1,4 @@
+menuentry "Install s27-nomad" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:55:d8 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:56 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:56
new file mode 100644
index 0000000000..76f0581420
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:56
@@ -0,0 +1,4 @@
+menuentry "Install s36-t28-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:56 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:76 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:76
new file mode 100644
index 0000000000..4dabc97c40
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:76
@@ -0,0 +1,4 @@
+menuentry "Install s38-t29-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:76 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:8c b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:8c
new file mode 100644
index 0000000000..30148c1a73
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:8c
@@ -0,0 +1,4 @@
+menuentry "Install s34-t27-tg1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:8c url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:ba b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:ba
new file mode 100644
index 0000000000..b1f8028a72
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:ba
@@ -0,0 +1,4 @@
+menuentry "Install s37-t29-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:ba url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:c0 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:c0
new file mode 100644
index 0000000000..e31a4fa4f2
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:c0
@@ -0,0 +1,4 @@
+menuentry "Install s35-t28-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:c0 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:d6 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:d6
new file mode 100644
index 0000000000..cf1c4dcf64
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:d6
@@ -0,0 +1,4 @@
+menuentry "Install s33-t27-sut1" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:d6 url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d9:2e b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d9:2e
new file mode 100644
index 0000000000..c467f660df
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d9:2e
@@ -0,0 +1,4 @@
+menuentry "Install s26-nomad" {
+ linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d9:2e url=http://10.30.51.24:8081/ubuntu_jammy_amd64//ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/ --- console=ttyS0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-amd64/initrd
+}
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:02:b1:9f b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:02:b1:9f
new file mode 100644
index 0000000000..da7d0e422e
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:02:b1:9f
@@ -0,0 +1,4 @@
+menuentry "Install s92-nomad" {
+ linux /casper/ubuntu-jammy-arm64/vmlinuz ip=dhcp interface=d8:5e:d3:02:b1:9f url=http://10.30.51.24:8081/ubuntu_jammy_arm64/ubuntu-22.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/ --- console=ttyAMA0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-arm64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:02:b1:bb b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:02:b1:bb
new file mode 100644
index 0000000000..52fe44c826
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:02:b1:bb
@@ -0,0 +1,4 @@
+menuentry "Install s91-nomad" {
+ linux /casper/ubuntu-jammy-arm64/vmlinuz ip=dhcp interface=d8:5e:d3:02:b1:bb url=http://10.30.51.24:8081/ubuntu_jammy_arm64/ubuntu-22.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/ --- console=ttyAMA0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-arm64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:e7:a9:6c b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:e7:a9:6c
new file mode 100644
index 0000000000..6b6474f3e1
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:e7:a9:6c
@@ -0,0 +1,4 @@
+menuentry "Install s71-t14-sut1" {
+ linux /casper/ubuntu-jammy-arm64/vmlinuz ip=:::::eno1:dhcp url=http://10.30.51.24:8081/ubuntu_jammy_arm64/ubuntu-22.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/ ---
+ initrd /casper/ubuntu-jammy-arm64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:e7:aa:4c b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:e7:aa:4c
new file mode 100644
index 0000000000..3c2098270d
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:e7:aa:4c
@@ -0,0 +1,4 @@
+menuentry "Install s70-t13-sut1" {
+ linux /casper/ubuntu-jammy-arm64/vmlinuz ip=:::::eno1:dhcp url=http://10.30.51.24:8081/ubuntu_jammy_arm64/ubuntu-22.04.1-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_arm64/d8:5e:d3:e7:aa:4c/ ---
+ initrd /casper/ubuntu-jammy-arm64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-e0:d5:5e:ae:70:26 b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-e0:d5:5e:ae:70:26
new file mode 100644
index 0000000000..fe2f4caef5
--- /dev/null
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-e0:d5:5e:ae:70:26
@@ -0,0 +1,4 @@
+menuentry "Install s27-t211-sut1" {
+ linux /casper/ubuntu-jammy-arm64/vmlinuz ip=dhcp interface=e0:d5:5e:ae:70:26 url=http://10.30.51.24:8081/ubuntu_jammy_arm64/ubuntu-20.04.4-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.24:8081/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/ --- console=ttyAMA0,115200n8 quiet
+ initrd /casper/ubuntu-jammy-arm64/initrd
+} \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/Dockerfile b/fdio.infra/pxe/docker-nginx/Dockerfile
new file mode 100644
index 0000000000..64872e7a10
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/Dockerfile
@@ -0,0 +1,31 @@
+FROM ubuntu:22.04 as ubuntu_jammy
+
+LABEL Description="ubuntu intermediate image"
+LABEL Version="2.0"
+
+RUN apt update \
+ && apt install -y wget
+
+ENV ISO_JAMMY_AMD64 https://old-releases.ubuntu.com/releases/22.04.1/ubuntu-22.04.1-live-server-arm64.iso
+ENV ISO_JAMMY_ARM64 https://old-releases.ubuntu.com/releases/22.04.1/ubuntu-22.04.1-live-server-arm64.iso
+
+RUN echo "Preparing ISO Pre-cache" \
+ && wget $ISO_JAMMY_AMD64 -O /ubuntu-22.04.1-live-server-amd64.iso \
+ && wget $ISO_JAMMY_ARM64 -O /ubuntu-22.04.1-live-server-arm64.iso
+
+
+FROM nginx:stable-alpine
+
+LABEL Description="nginx service image"
+LABEL Version="2.0"
+
+ENV NGINX_JAMMY_AMD64 /usr/share/nginx/html/ubuntu_jammy_amd64/
+ENV NGINX_JAMMY_ARM64 /usr/share/nginx/html/ubuntu_jammy_arm64/
+
+RUN mkdir -p $NGINX_JAMMY_AMD64 \
+ && mkdir -p $NGINX_JAMMY_ARM64
+
+COPY --from=ubuntu_jammy /ubuntu-22.04.1-live-server-amd64.iso $NGINX_JAMMY_AMD64/ubuntu-22.04.1-live-server-amd64.iso
+COPY --from=ubuntu_jammy /ubuntu-22.04.1-live-server-arm64.iso $NGINX_JAMMY_ARM64/ubuntu-22.04.1-live-server-arm64.iso
+
+COPY html/ /usr/share/nginx/html/ \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/user-data
new file mode 100644
index 0000000000..abc84c418a
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s60-t210-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1np0:
+ addresses: [ 10.32.8.24/24 ]
+ dhcp4: false
+ gateway4: 10.32.8.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/user-data
new file mode 100644
index 0000000000..b2a733efd0
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s61-t210-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1np0:
+ addresses: [ 10.32.8.25/24 ]
+ dhcp4: false
+ gateway4: 10.32.8.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/user-data
new file mode 100644
index 0000000000..94e68fc526
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s72-t212-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.82/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/user-data
new file mode 100644
index 0000000000..ed8a9fca90
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s66-t37-sut2
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.76/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/user-data
new file mode 100644
index 0000000000..8dc6443604
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s85-t214-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.85/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/user-data
new file mode 100644
index 0000000000..9599e3cb09
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s65-t37-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.75/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/user-data
new file mode 100644
index 0000000000..1c0b06f9cf
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s67-t37-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.77/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/user-data
new file mode 100644
index 0000000000..18e99b2b2a
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s71-t212-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.81/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/user-data
new file mode 100644
index 0000000000..1e89ddb092
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s89-t39t310-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.89/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/user-data
new file mode 100644
index 0000000000..650857a96b
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s64-t34-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.74/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/user-data
new file mode 100644
index 0000000000..de23c5c70e
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s90-t31t32-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.90/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/user-data
new file mode 100644
index 0000000000..2ab6db73f1
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s84-t213-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.84/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/user-data
new file mode 100644
index 0000000000..9f8042de92
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s80-t38-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.80/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/user-data
new file mode 100644
index 0000000000..8e8fc04ebd
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s86-t214-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.86/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/user-data
new file mode 100644
index 0000000000..c408cf6923
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s87-t215-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.87/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/user-data
new file mode 100644
index 0000000000..5911fafcfe
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s79-t38-sut2
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.79/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/user-data
new file mode 100644
index 0000000000..4b59cb41bf
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s78-t38-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.78/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/user-data
new file mode 100644
index 0000000000..b384f124a9
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s88-t215-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.88/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/user-data
new file mode 100644
index 0000000000..412400cc4b
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s83-t213-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.83/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/user-data
new file mode 100644
index 0000000000..cce57079de
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s32-t31-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno2:
+ addresses: [ 10.30.51.32/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:77/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:77/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:77/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:77/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:77/user-data
new file mode 100644
index 0000000000..49ec854640
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:77/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s34-t32-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno2:
+ addresses: [ 10.30.51.34/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:eb/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:eb/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:eb/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:eb/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:eb/user-data
new file mode 100644
index 0000000000..28b119bd6b
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:eb/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s35-t32-sut2
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno2:
+ addresses: [ 10.30.51.35/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:de:27/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:de:27/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:de:27/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:de:27/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:de:27/user-data
new file mode 100644
index 0000000000..c2ec80cb5d
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:de:27/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s33-t31-sut2
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno2:
+ addresses: [ 10.30.51.33/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:2e/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:2e/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:2e/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:2e/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:2e/user-data
new file mode 100644
index 0000000000..125ba1e36f
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:2e/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s57-t23-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.57/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4a/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4a/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4a/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4a/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4a/user-data
new file mode 100644
index 0000000000..02a9c2d2ee
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4a/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s53-t21-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.53/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4c/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4c/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4c/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4c/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4c/user-data
new file mode 100644
index 0000000000..5547c4fbf4
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4c/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s56-t23-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.56/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:1c/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:1c/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:1c/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:1c/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:1c/user-data
new file mode 100644
index 0000000000..7734530814
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:1c/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s55-t22-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.55/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:36/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:36/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:36/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:36/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:36/user-data
new file mode 100644
index 0000000000..5f50d4ca1a
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:36/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s52-t21-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.52/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:42/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:42/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:42/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:42/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:42/user-data
new file mode 100644
index 0000000000..e149988851
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:42/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s58-t24-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.58/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:44/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:44/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:44/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:44/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:44/user-data
new file mode 100644
index 0000000000..e96d05558e
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:44/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s54-t22-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.54/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:5c/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:5c/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:5c/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:5c/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:5c/user-data
new file mode 100644
index 0000000000..7038e2ec4f
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:5c/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s59-t24-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.59/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:6c/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:6c/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:6c/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:6c/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:6c/user-data
new file mode 100644
index 0000000000..2a623a89a1
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:6c/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s31-t16-sut1
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.31/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:74/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:74/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:74/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:74/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:74/user-data
new file mode 100644
index 0000000000..b15b9a8ab5
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:74/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s21-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.21/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:78/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:78/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:78/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:78/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:78/user-data
new file mode 100644
index 0000000000..782f6c05ed
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:78/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s30-t15-sut1
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.30/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:7a/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:7a/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:7a/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:7a/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:7a/user-data
new file mode 100644
index 0000000000..5ea530ecf3
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:7a/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s22-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.22/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/user-data
new file mode 100644
index 0000000000..45cf743fed
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s93-t39-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.93/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/user-data
new file mode 100644
index 0000000000..5d33054455
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s94-t39-sut2
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.94/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/user-data
new file mode 100644
index 0000000000..f1377ea653
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s24-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.24/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/user-data
new file mode 100644
index 0000000000..f44fd70dc0
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s23-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.23/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/user-data
new file mode 100644
index 0000000000..f1ebe8eb0d
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s25-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.25/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/user-data
new file mode 100644
index 0000000000..c7c1e3ff44
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s1-t11-sut1
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.50/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/user-data
new file mode 100644
index 0000000000..a4756b3e31
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s28-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.28/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/user-data
new file mode 100644
index 0000000000..840df570ee
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s19-t33t211-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.49/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/user-data
new file mode 100644
index 0000000000..2be2225ad5
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s2-t12-sut1
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.51/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/user-data
new file mode 100644
index 0000000000..df246a2e0c
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s27-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.27/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/user-data
new file mode 100644
index 0000000000..7dda8a91a9
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s36-t28-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.32.8.21/24 ]
+ dhcp4: false
+ gateway4: 10.32.8.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/user-data
new file mode 100644
index 0000000000..c516b55e22
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s38-t29-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.32.8.23/24 ]
+ dhcp4: false
+ gateway4: 10.32.8.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/user-data
new file mode 100644
index 0000000000..b8fb31684e
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s34-t27-tg1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.32.8.19/24 ]
+ dhcp4: false
+ gateway4: 10.32.8.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/user-data
new file mode 100644
index 0000000000..0af7b187b3
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s37-t29-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.32.8.22/24 ]
+ dhcp4: false
+ gateway4: 10.32.8.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/user-data
new file mode 100644
index 0000000000..4af71c7ec8
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s35-t28-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.32.8.20/24 ]
+ dhcp4: false
+ gateway4: 10.32.8.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/user-data
new file mode 100644
index 0000000000..4e6022b9ca
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s33-t27-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.32.8.18/24 ]
+ dhcp4: false
+ gateway4: 10.32.8.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/user-data
new file mode 100644
index 0000000000..f70804134b
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s26-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.26/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/user-data
new file mode 100644
index 0000000000..90594af8cf
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: fdio-marvell-dev
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enP2p1s0v0:
+ addresses: [ 10.30.51.38/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/user-data
new file mode 100644
index 0000000000..d910c0cf0c
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s63-t34-sut2
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enP2p1s0v0:
+ addresses: [ 10.30.51.73/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/user-data
new file mode 100644
index 0000000000..69a6785d2e
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/user-data
@@ -0,0 +1,120 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s62-t34-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enP2p1s0v0:
+ addresses: [ 10.30.51.72/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - grub_device: false
+ id: disk-sdb
+ path: /dev/sdb
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ grub_device: true
+ id: partition-1
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - id: format-1
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-2
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - device: disk-sdb
+ flag: ''
+ grub_device: false
+ id: partition-3
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - name: md0
+ raidlevel: raid1
+ devices: [partition-2, partition-3]
+ spare_devices: []
+ preserve: false
+ type: raid
+ id: raid-0
+ - fstype: ext4
+ id: format-2
+ preserve: false
+ type: format
+ volume: raid-0
+ - device: format-2
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/user-data
new file mode 100644
index 0000000000..5cab627253
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s18-t33-sut2
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enahisic2i0:
+ addresses: [ 10.30.51.37/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/user-data
new file mode 100644
index 0000000000..41afad4742
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s17-t33-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enahisic2i0:
+ addresses: [ 10.30.51.36/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/user-data
new file mode 100644
index 0000000000..42de9bb956
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s92-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.92/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-nvme0n1
+ path: /dev/nvme0n1
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-nvme0n1
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-nvme0n1
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/user-data
new file mode 100644
index 0000000000..3418e78c32
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s91-nomad
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.91/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-nvme0n1
+ path: /dev/nvme0n1
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-nvme0n1
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-nvme0n1
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/user-data
new file mode 100644
index 0000000000..3d76c9b8a5
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s71-t14-sut1
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.71/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-nvme0n1
+ path: /dev/nvme0n1
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-nvme0n1
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-nvme0n1
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:aa:4c/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:aa:4c/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:aa:4c/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:aa:4c/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:aa:4c/user-data
new file mode 100644
index 0000000000..d06e4c6e33
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:aa:4c/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s70-t13-sut1
+ password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
+ realname: localadmin
+ username: localadmin
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ eno1:
+ addresses: [ 10.30.51.70/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-nvme0n1
+ path: /dev/nvme0n1
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-nvme0n1
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-nvme0n1
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/meta-data
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/meta-data
diff --git a/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/user-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/user-data
new file mode 100644
index 0000000000..7995120a60
--- /dev/null
+++ b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/user-data
@@ -0,0 +1,83 @@
+#cloud-config
+autoinstall:
+ version: 1
+ apt:
+ geoip: true
+ preserve_sources_list: false
+ primary:
+ - arches: [amd64, i386]
+ uri: http://ca.archive.ubuntu.com/ubuntu
+ - arches: [default]
+ uri: http://ports.ubuntu.com/ubuntu-ports
+ identity:
+ hostname: s27-t211-sut1
+ password: $6$Y62lhMGJD8YNzmJn$H4DSqjrwFp5WN3tOvIrF.g/G2duOV76zXHAmaA/RU8jfT8H8sDumLQe/Q.EmI5pjPv7dzgI8j9BQPWes7efBK0
+ realname: testuser
+ username: testuser
+ keyboard:
+ layout: us
+ toggle: null
+ variant: ''
+ locale: en_US.UTF-8
+ network:
+ ethernets:
+ enp5s0f0:
+ addresses: [ 10.30.51.69/24 ]
+ dhcp4: false
+ gateway4: 10.30.51.1
+ nameservers:
+ addresses: [ 1.1.1.1, 8.8.8.8 ]
+ version: 2
+ packages:
+ - python3
+ refresh-installer:
+ update: no
+ ssh:
+ allow-pw: true
+ authorized-keys: []
+ install-server: true
+ storage:
+ config:
+ - grub_device: false
+ id: disk-sda
+ path: /dev/sda
+ ptable: gpt
+ preserve: false
+ type: disk
+ wipe: superblock-recursive
+ - device: disk-sda
+ grub_device: true
+ id: partition-0
+ flag: boot
+ number: 1
+ preserve: false
+ size: 536870912
+ type: partition
+ wipe: superblock
+ - id: format-0
+ fstype: fat32
+ preserve: false
+ type: format
+ volume: partition-0
+ - device: disk-sda
+ flag: ''
+ grub_device: false
+ id: partition-1
+ number: 2
+ preserve: false
+ size: -1
+ type: partition
+ wipe: superblock
+ - fstype: ext4
+ id: format-1
+ preserve: false
+ type: format
+ volume: partition-1
+ - device: format-1
+ id: mount-1
+ path: /
+ type: mount
+ - device: format-0
+ id: mount-0
+ path: /boot/efi
+ type: mount \ No newline at end of file
diff --git a/pylint.cfg b/pylint.cfg
index 82b3a06215..400940f727 100644
--- a/pylint.cfg
+++ b/pylint.cfg
@@ -1,292 +1,639 @@
-[MASTER]
+[MAIN]
-# Specify a configuration file.
-#rcfile=
+# Analyse import fallback blocks. This can be used to support both Python 2 and
+# 3 compatible code, which means that the block might have code that exists
+# only in one or another interpreter, leading to false positives when analysed.
+analyse-fallback-blocks=no
+
+# Clear in-memory caches upon conclusion of linting. Useful if running pylint
+# in a server-like mode.
+clear-cache-post-run=no
+
+# Load and enable all available extensions. Use --list-extensions to see a list
+# all available extensions.
+#enable-all-extensions=
+
+# In error mode, messages with a category besides ERROR or FATAL are
+# suppressed, and no reports are done by default. Error mode is compatible with
+# disabling specific errors.
+#errors-only=
+
+# Always return a 0 (non-error) status code, even if lint errors are found.
+# This is primarily useful in continuous integration scripts.
+#exit-zero=
+
+# A comma-separated list of package or module names from where C extensions may
+# be loaded. Extensions are loading into the active Python interpreter and may
+# run arbitrary code.
+#extension-pkg-allow-list=
+extension-pkg-allow-list=numpy,scipy
+
+# A comma-separated list of package or module names from where C extensions may
+# be loaded. Extensions are loading into the active Python interpreter and may
+# run arbitrary code. (This is an alternative name to extension-pkg-allow-list
+# for backward compatibility.)
+extension-pkg-whitelist=
+
+# Return non-zero exit code if any of these messages/categories are detected,
+# even if score is above --fail-under value. Syntax same as enable. Messages
+# specified are enabled, while categories only check already-enabled messages.
+fail-on=
+
+# Specify a score threshold under which the program will exit with error.
+fail-under=10
+
+# Interpret the stdin as a python script, whose filename needs to be passed as
+# the module_or_package argument.
+#from-stdin=
+
+# Files or directories to be skipped. They should be base names, not paths.
+ignore=CVS
+
+# Add files or directories matching the regular expressions patterns to the
+# ignore-list. The regex matches against paths and can be in Posix or Windows
+# format. Because '\\' represents the directory delimiter on Windows systems,
+# it can't be used as an escape character.
+ignore-paths=
+
+# Files or directories matching the regular expression patterns are skipped.
+# The regex matches against base names, not paths. The default value ignores
+# Emacs file locks
+ignore-patterns=^\.#
+
+# List of module names for which member attributes should not be checked
+# (useful for modules/projects where namespaces are manipulated during runtime
+# and thus existing member attributes cannot be deduced by static analysis). It
+# supports qualified module names, as well as Unix pattern matching.
+ignored-modules=
# Python code to execute, usually for sys.path manipulation such as
# pygtk.require().
#init-hook=
-# Profiled execution.
-profile=no
+# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
+# number of processors available to use, and will cap the count on Windows to
+# avoid hangs.
+jobs=1
+# 0 would be faster, but log from that has "unsorted" modules.
-# Add files or directories to the blacklist. They should be base names, not
-# paths.
-ignore=CVS, conf.py
+# Control the amount of potential inferred values when inferring a single
+# object. This can help the performance when dealing with large functions or
+# complex, nested conditions.
+limit-inference-results=100
+
+# List of plugins (as comma separated values of python module names) to load,
+# usually to register additional checkers.
+load-plugins=
# Pickle collected data for later comparisons.
persistent=yes
-# List of plugins (as comma separated values of python modules names) to load,
-# usually to register additional checkers.
-load-plugins=
+# Minimum Python version to use for version dependent checks. Will default to
+# the version used to run pylint.
+py-version=3.10
-# A comma-separated list of package or module names from where C extensions may
-# be loaded. Extensions are loading into the active Python interpreter and may
-# run arbitrary code
-extension-pkg-whitelist=numpy, scipy
+# Discover python modules and packages in the file system subtree.
+recursive=no
-[MESSAGES CONTROL]
+# Add paths to the list of the source roots. Supports globbing patterns. The
+# source root is an absolute path or a path relative to the current working
+# directory used to determine a package namespace for modules located under the
+# source root.
+source-roots=
-# Enable the message, report, category or checker with the given id(s). You can
-# either give multiple identifier separated by comma (,) or put this option
-# multiple time. See also the "--disable" option for examples.
-#enable=
+# When enabled, pylint would attempt to guess common misconfiguration and emit
+# user-friendly hints instead of false-positive error messages.
+suggestion-mode=yes
-# Disable the message, report, category or checker with the given id(s). You
-# can either give multiple identifiers separated by comma (,) or put this
-# option multiple times (only on the command line, not in the configuration
-# file where it should appear only once).You can also use "--disable=all" to
-# disable everything first and then reenable specific checks. For example, if
-# you want to run only the similarities checker, you can use "--disable=all
-# --enable=similarities". If you want to run only the classes checker, but have
-# no Warning level messages displayed, use"--disable=all --enable=classes
-# --disable=W"
-#disable=redefined-variable-type, locally-disabled, locally-enabled
+# Allow loading of arbitrary C extensions. Extensions are imported into the
+# active Python interpreter and may run arbitrary code.
+unsafe-load-any-extension=no
-# TODO: Add explanation when disabling an id, either locally or globally.
+# In verbose mode, extra non-checker-related info will be displayed.
+#verbose=
-[REPORTS]
-# Set the output format. Available formats are text, parseable, colorized, msvs
-# (visual studio) and html. You can also give a reporter class, eg
-# mypackage.mymodule.MyReporterClass.
-output-format=parseable
+[BASIC]
-# Put messages in a separate file for each module / package specified on the
-# command line instead of printing them on stdout. Reports (if any) will be
-# written in a file name "pylint_global.[txt|html]".
-files-output=no
+# Naming style matching correct argument names.
+argument-naming-style=snake_case
-# Tells whether to display a full report or only the messages
-reports=yes
+# Regular expression matching correct argument names. Overrides argument-
+# naming-style. If left empty, argument names will be checked with the set
+# naming style.
+#argument-rgx=
-# Python expression which should return a note less than 10 (10 is the highest
-# note). You have access to the variables errors warning, statement which
-# respectively contain the number of errors / warnings messages and the total
-# number of statements analyzed. This is used by the global evaluation report
-# (RP0004).
-evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
+# Naming style matching correct attribute names.
+attr-naming-style=snake_case
-# Add a comment according to your evaluation note. This is used by the global
-# evaluation report (RP0004).
-comment=no
+# Regular expression matching correct attribute names. Overrides attr-naming-
+# style. If left empty, attribute names will be checked with the set naming
+# style.
+#attr-rgx=
-# Template used to display messages. This is a python new-style format string
-# used to format the message information. See doc for all details
-#msg-template=
+# Bad variable names which should always be refused, separated by a comma.
+bad-names=foo,
+ bar,
+ baz,
+ toto,
+ tutu,
+ tata
+
+# Bad variable names regexes, separated by a comma. If names match any regex,
+# they will always be refused
+bad-names-rgxs=
+
+# Naming style matching correct class attribute names.
+class-attribute-naming-style=any
+
+# Regular expression matching correct class attribute names. Overrides class-
+# attribute-naming-style. If left empty, class attribute names will be checked
+# with the set naming style.
+#class-attribute-rgx=
+
+# Naming style matching correct class constant names.
+class-const-naming-style=UPPER_CASE
+
+# Regular expression matching correct class constant names. Overrides class-
+# const-naming-style. If left empty, class constant names will be checked with
+# the set naming style.
+#class-const-rgx=
+
+# Naming style matching correct class names.
+class-naming-style=PascalCase
+
+# Regular expression matching correct class names. Overrides class-naming-
+# style. If left empty, class names will be checked with the set naming style.
+#class-rgx=
+
+# Naming style matching correct constant names.
+const-naming-style=UPPER_CASE
+
+# Regular expression matching correct constant names. Overrides const-naming-
+# style. If left empty, constant names will be checked with the set naming
+# style.
+#const-rgx=
+
+# Minimum line length for functions/classes that require docstrings, shorter
+# ones are exempt.
+docstring-min-length=-1
+
+# Naming style matching correct function names.
+function-naming-style=snake_case
+
+# Regular expression matching correct function names. Overrides function-
+# naming-style. If left empty, function names will be checked with the set
+# naming style.
+#function-rgx=
+
+# Good variable names which should always be accepted, separated by a comma.
+good-names=i,
+ j,
+ k,
+ ex,
+ Run,
+ _
+
+# Good variable names regexes, separated by a comma. If names match any regex,
+# they will always be accepted
+good-names-rgxs=
+
+# Include a hint for the correct naming format with invalid-name.
+include-naming-hint=no
+
+# Naming style matching correct inline iteration names.
+inlinevar-naming-style=any
+
+# Regular expression matching correct inline iteration names. Overrides
+# inlinevar-naming-style. If left empty, inline iteration names will be checked
+# with the set naming style.
+#inlinevar-rgx=
+
+# Naming style matching correct method names.
+method-naming-style=snake_case
+
+# Regular expression matching correct method names. Overrides method-naming-
+# style. If left empty, method names will be checked with the set naming style.
+#method-rgx=
+
+# Naming style matching correct module names.
+module-naming-style=snake_case
+
+# Regular expression matching correct module names. Overrides module-naming-
+# style. If left empty, module names will be checked with the set naming style.
+#module-rgx=
+
+# Colon-delimited sets of names that determine each other's naming style when
+# the name regexes allow several styles.
+name-group=
+
+# Regular expression which should only match function or class names that do
+# not require a docstring.
+no-docstring-rgx=^_
+
+# List of decorators that produce properties, such as abc.abstractproperty. Add
+# to this list to register other decorators that produce valid properties.
+# These decorators are taken in consideration only for invalid-name.
+property-classes=abc.abstractproperty
+
+# Regular expression matching correct type alias names. If left empty, type
+# alias names will be checked with the set naming style.
+#typealias-rgx=
+
+# Regular expression matching correct type variable names. If left empty, type
+# variable names will be checked with the set naming style.
+#typevar-rgx=
+
+# Naming style matching correct variable names.
+variable-naming-style=snake_case
+
+# Regular expression matching correct variable names. Overrides variable-
+# naming-style. If left empty, variable names will be checked with the set
+# naming style.
+#variable-rgx=
+
+
+[CLASSES]
+
+# Warn about protected attribute access inside special methods
+check-protected-access-in-special-methods=no
+
+# List of method names used to declare (i.e. assign) instance attributes.
+defining-attr-methods=__init__,
+ __new__,
+ setUp,
+ asyncSetUp,
+ __post_init__
+
+# List of member names, which should be excluded from the protected access
+# warning.
+exclude-protected=_asdict,_fields,_replace,_source,_make,os._exit
+
+# List of valid names for the first argument in a class method.
+valid-classmethod-first-arg=cls
+
+# List of valid names for the first argument in a metaclass class method.
+valid-metaclass-classmethod-first-arg=mcs
+
+
+[DESIGN]
+
+# List of regular expressions of class ancestor names to ignore when counting
+# public methods (see R0903)
+exclude-too-few-public-methods=
+
+# List of qualified class names to ignore when counting class parents (see
+# R0901)
+ignored-parents=
+
+# Maximum number of arguments for function / method.
+max-args=12
+
+# Maximum number of attributes for a class (see R0902).
+max-attributes=10
+
+# Maximum number of boolean expressions in an if statement (see R0916).
+max-bool-expr=5
+
+# Maximum number of branch for function / method body.
+max-branches=12
+
+# Maximum number of locals for function / method body.
+max-locals=20
+
+# Maximum number of parents for a class (see R0901).
+max-parents=7
+
+# Maximum number of public methods for a class (see R0904).
+max-public-methods=20
+
+# Maximum number of return / yield for function / method body.
+max-returns=6
+
+# Maximum number of statements in function / method body.
+max-statements=50
+
+# Minimum number of public methods for a class (see R0903).
+min-public-methods=2
+
+
+[EXCEPTIONS]
+
+# Exceptions that will emit a warning when caught.
+overgeneral-exceptions=builtins.BaseException,builtins.Exception
[FORMAT]
-# Maximum number of characters on a single line.
-max-line-length=80
+# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
+expected-line-ending-format=
# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
+# Number of spaces of indent required inside a hanging or continued line.
+indent-after-paren=4
+
+# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
+# tab).
+indent-string=' '
+
+# Maximum number of characters on a single line.
+max-line-length=88
+
+# Maximum number of lines in a module.
+max-module-lines=2000
+
+# Allow the body of a class to be on the same line as the declaration if body
+# contains single statement.
+single-line-class-stmt=no
+
# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=no
-# List of optional constructs for which whitespace checking is disabled
-no-space-check=trailing-comma,dict-separator
-# Maximum number of lines in a module
-max-module-lines=2000
+[IMPORTS]
-# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
-# tab).
-indent-string=' '
+# List of modules that can be imported at any level, not just the top level
+# one.
+allow-any-import-level=
+# Allow explicit reexports by alias from a package __init__.
+allow-reexport-from-package=no
-[VARIABLES]
+# Allow wildcard imports from modules that define __all__.
+allow-wildcard-with-all=no
-# Tells whether we should check for unused import in __init__ files.
-init-import=no
+# Deprecated modules which should not be used, separated by a comma.
+deprecated-modules=
-# A regular expression matching the beginning of the name of dummy variables
-# (i.e. not used).
-dummy-variables-rgx=_$|dummy
+# Output a graph (.gv or any supported image format) of external dependencies
+# to the given file (report RP0402 must not be disabled).
+ext-import-graph=
-# List of additional names supposed to be defined in builtins. Remember that
-# you should avoid to define new builtins when possible.
-additional-builtins=
+# Output a graph (.gv or any supported image format) of all (i.e. internal and
+# external) dependencies to the given file (report RP0402 must not be
+# disabled).
+import-graph=
+# Output a graph (.gv or any supported image format) of internal dependencies
+# to the given file (report RP0402 must not be disabled).
+int-import-graph=
-[SIMILARITIES]
+# Force import order to recognize a module as part of the standard
+# compatibility libraries.
+known-standard-library=
-# Minimum lines number of a similarity.
-min-similarity-lines=14
+# Force import order to recognize a module as part of a third party library.
+known-third-party=enchant
-# Ignore comments when computing similarities.
-ignore-comments=yes
+# Couples of modules and preferred modules, separated by a comma.
+preferred-modules=
-# Ignore docstrings when computing similarities.
-ignore-docstrings=no
-# Ignore imports when computing similarities.
-ignore-imports=no
+[LOGGING]
+# The type of string formatting that logging methods do. `old` means using %
+# formatting, `new` is for `{}` formatting.
+#logging-format-style=old
+logging-format-style=new
-[BASIC]
+# Logging modules to check that the string format arguments are in logging
+# function parameter format.
+logging-modules=logging
-# Required attributes for module, separated by a comma
-required-attributes=
-# List of builtins function names that should not be used, separated by a comma
-bad-functions=map,filter,apply,input
+[MESSAGES CONTROL]
-# Regular expression which should only match correct module names
-module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
+# Only show warnings with the listed confidence levels. Leave empty to show
+# all. Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE,
+# UNDEFINED.
+confidence=HIGH,
+ CONTROL_FLOW,
+ INFERENCE,
+ INFERENCE_FAILURE,
+ UNDEFINED
-# Regular expression which should only match correct module level names
-const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
+# Disable the message, report, category or checker with the given id(s). You
+# can either give multiple identifiers separated by comma (,) or put this
+# option multiple times (only on the command line, not in the configuration
+# file where it should appear only once). You can also use "--disable=all" to
+# disable everything first and then re-enable specific checks. For example, if
+# you want to run only the similarities checker, you can use "--disable=all
+# --enable=similarities". If you want to run only the classes checker, but have
+# no Warning level messages displayed, use "--disable=all --enable=classes
+# --disable=W".
+#disable=raw-checker-failed,
+# bad-inline-option,
+# locally-disabled,
+# file-ignored,
+# suppressed-message,
+# useless-suppression,
+# deprecated-pragma,
+# use-symbolic-message-instead,
+# use-implicit-booleaness-not-comparison-to-string,
+# use-implicit-booleaness-not-comparison-to-zero
+disable=redundant-u-string-prefix,
+ use-dict-literal,
+ use-list-literal
-# Regular expression which should only match correct class names
-class-rgx=[A-Z_][a-zA-Z0-9]+$
+# Enable the message, report, category or checker with the given id(s). You can
+# either give multiple identifier separated by comma (,) or put this option
+# multiple time (only on the command line, not in the configuration file where
+# it should appear only once). See also the "--disable" option for examples.
+enable=
-# Regular expression which should only match correct function names
-function-rgx=[a-z_][a-z0-9_]{2,30}$
-# Regular expression which should only match correct method names
-method-rgx=[a-z_][a-z0-9_]{2,50}$
+[METHOD_ARGS]
-# Regular expression which should only match correct instance attribute names
-attr-rgx=[a-z_][a-z0-9_]{2,30}$
+# List of qualified names (i.e., library.method) which require a timeout
+# parameter e.g. 'requests.api.get,requests.api.post'
+timeout-methods=requests.api.delete,requests.api.get,requests.api.head,requests.api.options,requests.api.patch,requests.api.post,requests.api.put,requests.api.request
-# Regular expression which should only match correct argument names
-argument-rgx=[a-z_][a-z0-9_]{2,30}$
-# Regular expression which should only match correct variable names
-variable-rgx=[a-z_][a-z0-9_]{2,30}$
+[MISCELLANEOUS]
-# Regular expression which should only match correct attribute names in class
-# bodies
-class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
+# List of note tags to take in consideration, separated by a comma.
+notes=FIXME
-# Regular expression which should only match correct list comprehension /
-# generator expression variable names
-inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
+# Regular expression of note tags to take in consideration.
+notes-rgx=
-# Good variable names which should always be accepted, separated by a comma
-good-names=i,j,k,ex,Run,_
-# Bad variable names which should always be refused, separated by a comma
-bad-names=foo,bar,baz,toto,tutu,tata
+[REFACTORING]
-# Regular expression which should only match function or class names that do
-# not require a docstring.
-no-docstring-rgx=__.*__
+# Maximum number of nested blocks for function / method body
+max-nested-blocks=5
-# Minimum line length for functions/classes that require docstrings, shorter
-# ones are exempt.
-docstring-min-length=-1
+# Complete name of functions that never returns. When checking for
+# inconsistent-return-statements if a never returning function is called then
+# it will be considered as an explicit return statement and no message will be
+# printed.
+never-returning-functions=sys.exit,argparse.parse_error
-[MISCELLANEOUS]
+[REPORTS]
-# List of note tags to take in consideration, separated by a comma.
-notes=FIXME
+# Python expression which should return a score less than or equal to 10. You
+# have access to the variables 'fatal', 'error', 'warning', 'refactor',
+# 'convention', and 'info' which contain the number of messages in each
+# category, as well as 'statement' which is the total number of statements
+# analyzed. This score is used by the global evaluation report (RP0004).
+evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))
+# Template used to display messages. This is a python new-style format string
+# used to format the message information. See doc for all details.
+msg-template=
-[TYPECHECK]
+# Set the output format. Available formats are: text, parseable, colorized,
+# json2 (improved json format), json (old json format) and msvs (visual
+# studio). You can also give a reporter class, e.g.
+# mypackage.mymodule.MyReporterClass.
+#output-format=
-# Tells whether missing members accessed in mixin class should be ignored. A
-# mixin class is detected if its name ends with "mixin" (case insensitive).
-ignore-mixin-members=yes
+# Tells whether to display a full report or only the messages.
+reports=no
-# List of classes names for which member attributes should not be checked
-# (useful for classes with attributes dynamically set).
-ignored-classes=SQLObject
+# Activate the evaluation score.
+score=yes
-# When zope mode is activated, add a predefined set of Zope acquired attributes
-# to generated-members.
-zope=no
-# List of members which are set dynamically and missed by pylint inference
-# system, and so shouldn't trigger E0201 when accessed. Python regular
-# expressions are accepted.
-generated-members=REQUEST,acl_users,aq_parent
+[SIMILARITIES]
+# Comments are removed from the similarity computation
+ignore-comments=yes
-[CLASSES]
+# Docstrings are removed from the similarity computation
+ignore-docstrings=yes
-# List of interface methods to ignore, separated by a comma. This is used for
-# instance to not check methods defines in Zope's Interface base class.
-ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by
+# Imports are removed from the similarity computation
+ignore-imports=yes
-# List of method names used to declare (i.e. assign) instance attributes.
-defining-attr-methods=__init__,__new__,setUp
+# Signatures are removed from the similarity computation
+ignore-signatures=yes
-# List of valid names for the first argument in a class method.
-valid-classmethod-first-arg=cls
+# Minimum lines number of a similarity.
+min-similarity-lines=4
-# List of valid names for the first argument in a metaclass class method.
-valid-metaclass-classmethod-first-arg=mcs
+[SPELLING]
-[IMPORTS]
+# Limits count of emitted suggestions for spelling mistakes.
+max-spelling-suggestions=4
-# Deprecated modules which should not be used, separated by a comma
-deprecated-modules=regsub,TERMIOS,Bastion,rexec
+# Spelling dictionary name. No available dictionaries : You need to install
+# both the python package and the system dependency for enchant to work.
+spelling-dict=
-# Create a graph of every (i.e. internal and external) dependencies in the
-# given file (report RP0402 must not be disabled)
-import-graph=
+# List of comma separated words that should be considered directives if they
+# appear at the beginning of a comment and should not be checked.
+spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:
-# Create a graph of external dependencies in the given file (report RP0402 must
-# not be disabled)
-ext-import-graph=
+# List of comma separated words that should not be checked.
+spelling-ignore-words=
-# Create a graph of internal dependencies in the given file (report RP0402 must
-# not be disabled)
-int-import-graph=
+# A path to a file that contains the private dictionary; one word per line.
+spelling-private-dict-file=
+# Tells whether to store unknown words to the private dictionary (see the
+# --spelling-private-dict-file option) instead of raising a message.
+spelling-store-unknown-words=no
-[DESIGN]
-# Maximum number of arguments for function / method
-max-args=12
+[STRING]
-# Argument names that match this expression will be ignored. Default to name
-# with leading underscore
-ignored-argument-names=_.*
+# This flag controls whether inconsistent-quotes generates a warning when the
+# character used as a quote delimiter is used inconsistently within a module.
+#check-quote-consistency=no
+check-quote-consistency=yes
-# Maximum number of locals for function / method body
-max-locals=20
+# This flag controls whether the implicit-str-concat should generate a warning
+# on implicit string concatenation in sequences defined over several lines.
+check-str-concat-over-line-jumps=no
-# Maximum number of return / yield for function / method body
-max-returns=6
-# Maximum number of branch for function / method body
-max-branches=20
+[TYPECHECK]
-# Maximum number of statements in function / method body
-max-statements=60
+# List of decorators that produce context managers, such as
+# contextlib.contextmanager. Add to this list to register other decorators that
+# produce valid context managers.
+contextmanager-decorators=contextlib.contextmanager
-# Maximum number of parents for a class (see R0901).
-max-parents=7
+# List of members which are set dynamically and missed by pylint inference
+# system, and so shouldn't trigger E1101 when accessed. Python regular
+# expressions are accepted.
+generated-members=
-# Maximum number of attributes for a class (see R0902).
-max-attributes=10
+# Tells whether to warn about missing members when the owner of the attribute
+# is inferred to be None.
+ignore-none=yes
-# Minimum number of public methods for a class (see R0903).
-min-public-methods=0
+# This flag controls whether pylint should warn about no-member and similar
+# checks whenever an opaque object is returned when inferring. The inference
+# can return multiple potential results while evaluating a Python object, but
+# some branches might not be evaluated, which results in partial inference. In
+# that case, it might be useful to still emit no-member and other checks for
+# the rest of the inferred objects.
+ignore-on-opaque-inference=yes
-# Maximum number of public methods for a class (see R0904).
-max-public-methods=60
+# List of symbolic message names to ignore for Mixin members.
+ignored-checks-for-mixins=no-member,
+ not-async-context-manager,
+ not-context-manager,
+ attribute-defined-outside-init
+# List of class names for which member attributes should not be checked (useful
+# for classes with dynamically set attributes). This supports the use of
+# qualified names.
+ignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace
-[EXCEPTIONS]
+# Show a hint with possible names when a member name was not found. The aspect
+# of finding the hint is based on edit distance.
+missing-member-hint=yes
-# Exceptions that will emit a warning when being caught. Defaults to
-# "Exception"
-overgeneral-exceptions=Exception
+# The minimum edit distance a name should have in order to be considered a
+# similar match for a missing member name.
+missing-member-hint-distance=1
+# The total number of similar names that should be taken in consideration when
+# showing a hint for a missing member.
+missing-member-max-choices=1
-[LOGGING]
+# Regex pattern to define which classes are considered mixins.
+mixin-class-rgx=.*[Mm]ixin
+
+# List of decorators that change the signature of a decorated function.
+signature-mutators=
+
+
+[VARIABLES]
+
+# List of additional names supposed to be defined in builtins. Remember that
+# you should avoid defining new builtins when possible.
+additional-builtins=
+
+# Tells whether unused global variables should be treated as a violation.
+allow-global-unused-variables=yes
+
+# List of names allowed to shadow builtins
+allowed-redefined-builtins=
+
+# List of strings which can identify a callback function by name. A callback
+# name must start or end with one of those strings.
+callbacks=cb_,
+ _cb
+
+# A regular expression matching the name of dummy variables (i.e. expected to
+# not be used).
+dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_
+
+# Argument names that match this expression will be ignored.
+ignored-argument-names=_.*|^ignored_|^unused_
+
+# Tells whether we should check for unused import in __init__ files.
+init-import=no
-# Format style used to check logging format string. `old` means using %
-# formatting, while `new` is for `{}` formatting.
-logging-format-style=fstr \ No newline at end of file
+# List of qualified module names which can have objects that can redefine
+# builtins.
+redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io
diff --git a/requirements.txt b/requirements.txt
index 8c0928206e..398d6896ed 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -17,66 +17,52 @@
# into fatal error or uncaught exceptions.
#
# CSIT Core dependencies
-ecdsa==0.13.3
-paramiko==2.6.0
+ecdsa==0.18.0
+paramiko==3.3.1
pycrypto==2.6.1
-pypcap==1.2.3
-PyYAML==5.1.1
-requests==2.22.0
-robotframework==3.1.2
-scapy==2.4.3
-scp==0.13.2
+python-dateutil==2.8.2
+PyYAML==6.0.1
+requests==2.31.0
+robotframework==6.1.1
+scapy==2.4.5
+scp==0.14.5
-# Bootstraping dependencies
-ansible==2.7.8
+# IaaC dependencies
+ansible==8.2.0
+ansible-core==2.15.2
# PLRsearch dependencies
-dill==0.2.8.2
-numpy==1.17.3
-scipy==1.1.0
-
-# PAL/DOC dependencies
-hdrhistogram==0.6.1
-pandas==0.25.3
-plotly==4.1.1
-PTable==0.9.2
-Sphinx==2.2.1
-sphinx-rtd-theme==0.4.0
-sphinxcontrib-programoutput==0.15
-sphinxcontrib-robotdoc==0.11.0
+dill==0.3.7
+numpy==1.25.2
+scipy==1.11.1
# VPP requirements
ply==3.11
-# PIP freeze dependencies
-alabaster==0.7.12
-Babel==2.7.0
-bcrypt==3.1.7
-certifi==2019.9.11
-cffi==1.13.2
-chardet==3.0.4
-cryptography==2.8
-docutils==0.15.2
-future==0.18.2
-idna==2.8
-imagesize==1.1.0
-Jinja2==2.10.3
-MarkupSafe==1.1.1
-packaging==19.2
-pbr==5.4.3
-pycparser==2.19
-Pygments==2.4.2
-PyNaCl==1.3.0
-pyparsing==2.4.4
-python-dateutil==2.8.1
-pytz==2019.3
-retrying==1.3.3
-six==1.13.0
-snowballstemmer==2.0.0
-sphinxcontrib-applehelp==1.0.1
-sphinxcontrib-devhelp==1.0.1
-sphinxcontrib-htmlhelp==1.0.2
-sphinxcontrib-jsmath==1.0.1
-sphinxcontrib-qthelp==1.0.2
-sphinxcontrib-serializinghtml==1.1.3
-urllib3==1.25.6
+# JSON schema validation
+jsonschema==4.18.4
+rfc3339-validator==0.1.4
+rfc3987==1.3.8
+
+# Dependencies for some tox checkers (not tox setup itself).
+pylint==3.0.1
+
+# Other PIP freeze dependencies.
+attrs==23.1.0
+bcrypt==4.0.1
+certifi==2023.7.22
+cffi==1.15.1
+charset-normalizer==3.2.0
+cryptography==41.0.3
+idna==3.4
+Jinja2==3.1.2
+jsonschema-specifications==2023.7.1
+MarkupSafe==2.1.3
+packaging==23.1
+pycparser==2.21
+PyNaCl==1.5.0
+referencing==0.30.0
+resolvelib==1.0.1
+rpds-py==0.9.2
+six==1.16.0
+urllib3==2.0.4
diff --git a/resources/api/vpp/supported_crcs.yaml b/resources/api/vpp/supported_crcs.yaml
index 6cb8fc402d..fb6a499d42 100644
--- a/resources/api/vpp/supported_crcs.yaml
+++ b/resources/api/vpp/supported_crcs.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -17,49 +17,441 @@
# Comment https link towards the build used to get or verify the CRC values.
# Link cannot easily be name as it is too long.
-# Prefer x86_64, Ubuntu, latest LTS.
-# Note that during flag day process, the link would point
-# to (logged artifacts of) verify job, not merge job.
-
# Note that you cannot easily avoid quotes for CRC values.
# With leading 0x, yaml interprets the values as numbers.
# Even with 0x removed, hexa CRC value may appear as decimal number.
# Trailing comments are optional, for tracking how to test the message.
+
# Please keep alphabetic order.
# Use bash command "env LC_COLLATE=C sort -u" if not clear.
-# https://logs.fd.io/production/vex-yul-rot-jenkins-1
-# /vpp-merge-master-ubuntu1804-x86_64/184/
-21.01-rc0~283:
- acl_add_replace: '0x1cabdeab' # dev
+# https://packagecloud.io/app/fdio/release
+# /search?q=24.02&filter=debs&filter=all&dist=debian
+24.02-with-srv6-bug:
+ # plugins/acl/acl.api
+ acl_add_replace: '0xee5c2f18' # dev
acl_add_replace_reply: '0xac407b0c' # dev
- acl_details: '0x7a97f21c' # perf teardown
- acl_dump: '0xef34fea4' # perf teardown
- acl_interface_list_details: '0xe695d256' # perf teardown
- acl_interface_list_dump: '0xf9e6675e' # perf teardown
- acl_interface_set_acl_list: '0x473982bd' # perf
- acl_interface_set_acl_list_reply: '0xe8d4e804' # perf
+ acl_details: '0x95babae0' # dev teardown
+ acl_dump: '0xef34fea4' # dev teardown
+ acl_interface_list_details: '0xe695d256' # dev teardown
+ acl_interface_list_dump: '0xf9e6675e' # dev teardown
+ acl_interface_set_acl_list: '0x473982bd' # dev
+ acl_interface_set_acl_list_reply: '0xe8d4e804' # dev
+
+ # vlibmemory/vlib.api
+ add_node_next: '0x2457116d' # dev
+ add_node_next_reply: '0x2ed75f32' # dev
+
+ # plugins/adl/adl.api
adl_allowlist_enable_disable: '0xea88828d' # dev
adl_allowlist_enable_disable_reply: '0xe8d4e804' # dev
adl_interface_enable_disable: '0x5501adee' # dev
adl_interface_enable_disable_reply: '0xe8d4e804' # dev
- # 6x^ tc01-64B-1c-ethip4udp-ip4base-iacl1sf-10kflows-mrr
- # tc01-64B-1c-ethip4udp-ip4base-iacl1sl-10kflows-mrr
- # ^^ ip4fwdANDiaclANDacl10AND100_flows
+
+ # plugins/af_xdp/af_xdp.api
+ af_xdp_create_v3: '0xcf4b1827' # perf
+ af_xdp_create_v3_reply: '0x5383d31f' # perf
+
+ # plugins/avf/avf.api
+ avf_create: '0xdaab8ae2' # dev
+ avf_create_reply: '0x5383d31f' # dev
+
+ # vnet/bonding/bond.api
+ bond_add_member: '0xe7d14948' # perf
+ bond_add_member_reply: '0xe8d4e804' # perf
+ bond_create2: '0x912fda76' # perf
+ bond_create2_reply: '0x5383d31f' # perf
+ # 4x^ 64B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
+ # ^ ndrpdrAND1cAND64bAND1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
+
+ # vnet/l2/l2.api
+ bridge_domain_add_del_v2: '0x600b7170' # dev
+ bridge_domain_add_del_v2_reply: '0xfcb1e980' # dev
+ # bridge_domain_dump / details # honeycomb
+
+ # vnet/classify/classify.api
+ classify_add_del_session: '0xf20879f0' # dev
+ classify_add_del_session_reply: '0xe8d4e804' # dev
+ classify_add_del_table: '0x6849e39e' # dev
+ classify_add_del_table_reply: '0x05486349' # dev
+ # classify_session_dump / details # honeycomb
+ # classify_table_by_interface / reply # honeycomb
+ # classify_table_info / reply # honeycomb
+
+ # vlibmemory/vlib.api
+ cli_inband: '0xf8377302' # dev setup
+ cli_inband_reply: '0x05879051' # dev setup
+
+ # vnet/interface.api
+ create_loopback_instance: '0xd36a3ee2' # dev
+ create_loopback_instance_reply: '0x5383d31f' # dev
+
+ # vnet/interface.api
+ create_subif: '0x790ca755' # perf
+ create_subif_reply: '0x5383d31f' # perf
+ # ^^ 64B-1c-dot1ad-l2xcbase-ndrpdr
+ # ^ ndrpdrAND1cAND64bANDdot1ad-l2xcbase
+
+ # plugins/vhost/vhost_user.api
+ create_vhost_user_if_v2: '0xdba1cc1d' # dev
+ create_vhost_user_if_v2_reply: '0x5383d31f' # dev
+
+ # vnet/interface.api
+ create_vlan_subif: '0xaf34ac8b' # dev
+ create_vlan_subif_reply: '0x5383d31f' # dev
+
+ # plugins/crypto_sw_scheduler/crypto_sw_scheduler.api
+ crypto_set_async_dispatch_v2: '0x667d2d54' # perf
+ crypto_set_async_dispatch_v2_reply: '0xe8d4e804' # perf
+ crypto_sw_scheduler_set_worker: '0xb4274502' # perf
+ crypto_sw_scheduler_set_worker_reply: '0xe8d4e804' # perf
+ # 4^ 64B-1c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+ # ^ ndrpdrAND1cAND64BANDethip4ipsec8tnlswasync-scheduler-ip4base-int-\
+ # aes128gcm-udir
+
+ # plugins/nat/det44/det44.api
+ det44_add_del_map: '0x1150a190' # dev
+ det44_add_del_map_reply: '0xe8d4e804' # dev
+ det44_interface_add_del_feature: '0xdc17a836' # dev
+ det44_interface_add_del_feature_reply: '0xe8d4e804' # dev
+ det44_interface_details: '0xe60cc5be' # dev teardown
+ det44_interface_dump: '0x51077d14' # dev teardown
+ det44_map_details: '0xad91dc83' # dev teardown
+ det44_map_dump: '0x51077d14' # dev teardown
+ det44_plugin_enable_disable: '0x617b6bf8' # dev
+ det44_plugin_enable_disable_reply: '0xe8d4e804' # dev
+ det44_session_dump: '0xe45a3af7' # dev
+ # TODO: Which test to run to verify det44_* messages?
+ # dhcp_proxy_dump / details # honeycomb
+
+ # vnet/flow/flow.api
+ flow_add_v2: '0x5b757558' # dev
+ flow_add_v2_reply: '0x8587dc85' # dev
+ flow_del: '0xb6b9b02c' # dev
+ flow_del_reply: '0xe8d4e804' # dev
+ flow_disable: '0x2024be69' # dev
+ flow_disable_reply: '0xe8d4e804' # dev
+ flow_enable: '0x2024be69' # dev
+ flow_enable_reply: '0xe8d4e804' # dev
+
+ # plugins/geneve/geneve.api
+ geneve_add_del_tunnel2: '0x8c2a9999' # dev
+ geneve_add_del_tunnel2_reply: '0x5383d31f' # dev
+ geneve_tunnel_details: '0x6b16eb24' # dev
+ geneve_tunnel_dump: '0xf9e6675e' # dev
+
+ # plugins/lisp/lisp-gpe/lisp_gpe.api
+ gpe_enable_disable: '0xc264d7bf' # dev
+ gpe_enable_disable_reply: '0xe8d4e804' # dev
+
+ # gre_tunnel_add_del / reply # unused L1 keyword: create_gre_tunnel_interface
+
+ # plugins/gtpu/gtpu.api
+ gtpu_add_del_tunnel_v2: '0xa0c30713' # perf
+ gtpu_add_del_tunnel_v2_reply: '0x62b41304' # perf
+ # ^^ 64B-1c-ethip4gtpusw-ip4base-ndrpdr
+ # ^ ndrpdrAND1cAND64BANDethip4gtpusw-ip4base
+ gtpu_offload_rx: '0xf0b08786' # perf
+ gtpu_offload_rx_reply: '0xe8d4e804' # perf
+
+ # vnet/interface.api
+ hw_interface_set_mtu: '0xe6746899' # dev
+ hw_interface_set_mtu_reply: '0xe8d4e804' # dev
+
+ # vnet/classify/classify.api
+ input_acl_set_interface: '0xde7ad708' # dev
+ input_acl_set_interface_reply: '0xe8d4e804' # dev
+
+ # vnet/ip/ip.api
+ ip_address_details: '0xee29b797' # dev
+ ip_address_dump: '0x2d033de4' # dev
+
+ # vnet/ip-neighbor/ip_neighbor.api
+ ip_neighbor_add_del: '0x0607c257' # dev
+ ip_neighbor_add_del_reply: '0x1992deab' # dev
+
+ # ip_probe_neighbor / reply # unused L1 keyword vpp_ip_probe
+
+ # vnet/ip/ip.api
+ ip_route_add_del: '0xb8ecfe0d' # dev
+ ip_route_add_del_reply: '0x1992deab' # dev
+ # ip_source_check_interface_add_del / reply # unused L1 keyword vpp_ip_source_check_setup
+ ip_table_add_del: '0x0ffdaec0' # dev
+ ip_table_add_del_reply: '0xe8d4e804' # dev
+
+ # vnet/ipip/ipip.api
+ ipip_add_tunnel: '0x2ac399f5' # dev
+ ipip_add_tunnel_reply: '0x5383d31f' # dev
+
+ # vnet/ipsec/ipsec.api
+ ipsec_interface_add_del_spd: '0x80f80cbb' # dev
+ ipsec_interface_add_del_spd_reply: '0xe8d4e804' # dev
+ ipsec_sa_v5_details: '0x3cfecfbd' # dev teardown
+ ipsec_sa_v5_dump: '0x2076c2f4' # dev teardown
+ ipsec_sad_entry_add_v2: '0x9611297a' # dev
+ ipsec_sad_entry_add_v2_reply: '0x9ffac24b' # dev
+ ipsec_select_backend: '0x5bcfd3b7' # perf
+ ipsec_select_backend_reply: '0xe8d4e804' # perf
+ # ^^ 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
+ # ^ ndrpdrAND1cAND64BANDethip4ipsec1tnlhw-ip4base-int-aes256gcm
+ ipsec_set_async_mode: '0xa6465f7c' # perf
+ ipsec_set_async_mode_reply: '0xe8d4e804' # perf
+ ipsec_spd_add_del: '0x20e89a95' # dev
+ ipsec_spd_add_del_reply: '0xe8d4e804' # dev
+ ipsec_spd_entry_add_del_v2: '0x7bfe69fc' # dev
+ ipsec_spd_entry_add_del_v2_reply: '0x9ffac24b' # dev
+ ipsec_tunnel_protect_update: '0x30d5f133' # dev
+ ipsec_tunnel_protect_update_reply: '0xe8d4e804' # dev
+ # ^^ 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
+ # ^ See ipsec_select_backend.
+
+ # vnet/l2/l2.api
+ # l2_fib_table_dump / details # honeycomb
+ l2_interface_vlan_tag_rewrite: '0x62cc0bbc' # perf
+ l2_interface_vlan_tag_rewrite_reply: '0xe8d4e804' # perf
+ # ^^ 64B-1c-dot1ad-l2xcbase-ndrpdr
+ # ^ ndrpdrAND1cAND64BANDdot1ad-l2xcbase
+ l2_patch_add_del: '0xa1f6a6f3' # dev
+ l2_patch_add_del_reply: '0xe8d4e804' # dev
+ # l2fib_add_del / reply # unused L1 keyword: vpp_add_l2fib_entry
+
+ # plugins/lb/lb.api
+ lb_add_del_as: '0x35d72500' # perf
+ lb_add_del_as_reply: '0xe8d4e804' # perf
+ lb_add_del_intf_nat4: '0x47d6e753' # perf
+ lb_add_del_intf_nat4_reply: '0xe8d4e804' # perf
+ lb_add_del_vip_v2: '0x7c520e0f' # perf
+ lb_add_del_vip_v2_reply: '0xe8d4e804' # perf
+ lb_conf: '0x56cd3261' # perf
+ lb_conf_reply: '0xe8d4e804' # perf
+ # 8x^ 64B-1c-ethip4-loadbalancer-nat4-ndrpdr
+ # ^ 2n: ndrpdrAND1cAND64BANDethip4-loadbalancer-nat4
+
+ # plugins/lisp/lisp-cp/lisp.api
+ lisp_add_del_adjacency: '0x2ce0e6f6' # dev
+ lisp_add_del_adjacency_reply: '0xe8d4e804' # dev
+ lisp_add_del_local_eid: '0x4e5a83a2' # dev
+ lisp_add_del_local_eid_reply: '0xe8d4e804' # dev
+ lisp_add_del_locator: '0xaf4d8f13' # dev
+ lisp_add_del_locator_reply: '0xe8d4e804' # dev
+ lisp_add_del_locator_set: '0x6fcd6471' # dev
+ lisp_add_del_locator_set_reply: '0xb6666db4' # dev
+ # lisp_add_del_map_resolver / reply # unused L2 keyword: Configure LISP map resolver address
+ lisp_add_del_remote_mapping: '0x6d5c789e' # dev
+ lisp_add_del_remote_mapping_reply: '0xe8d4e804' # dev
+ lisp_eid_table_add_del_map: '0x9481416b' # dev
+ lisp_eid_table_add_del_map_reply: '0xe8d4e804' # dev
+ lisp_enable_disable: '0xc264d7bf' # dev
+ lisp_enable_disable_reply: '0xe8d4e804' # dev
+
+ # plugins/acl/acl.api
+ macip_acl_add: '0xce6fbad0' # dev
+ macip_acl_add_reply: '0xac407b0c' # dev
+ macip_acl_details: '0x27135b59' # dev teardown
+ macip_acl_dump: '0xef34fea4' # dev teardown
+ macip_acl_interface_add_del: '0x4b8690b1' # dev
+ macip_acl_interface_add_del_reply: '0xe8d4e804' # dev
+ macip_acl_interface_get: '0x51077d14' # dev teardown
+ macip_acl_interface_get_reply: '0xaccf9b05' # dev teardown
+
+ # plugins/memif/memif.api
+ memif_create_v2: '0x8c7de5f7' # dev
+ memif_create_v2_reply: '0x5383d31f' # dev
+ memif_details: '0xda34feb9' # dev
+ memif_dump: '0x51077d14' # dev
+ memif_socket_filename_add_del_v2: '0x34223bdf' # dev
+ memif_socket_filename_add_del_v2_reply: '0x9f29bdb9' # dev
+
+ # plugins/nat/nat44-ed/nat44_ed.api
+ nat44_add_del_address_range: '0x6f2b8055' # dev
+ nat44_add_del_address_range_reply: '0xe8d4e804' # dev
+ nat44_address_details: '0x0d1beac1' # dev teardown
+ nat44_address_dump: '0x51077d14' # dev teardown
+ nat44_ed_plugin_enable_disable: '0xbe17f8dd' # dev
+ nat44_ed_plugin_enable_disable_reply: '0xe8d4e804' # dev
+ nat44_interface_add_del_feature: '0xf3699b83' # dev
+ nat44_interface_add_del_feature_reply: '0xe8d4e804' # dev
+ nat44_interface_addr_details: '0xe4aca9ca' # dev teardown
+ nat44_interface_addr_dump: '0x51077d14' # dev teardown
+ nat44_interface_details: '0x5d286289' # dev teardown
+ nat44_interface_dump: '0x51077d14' # dev teardown
+ nat44_show_running_config: '0x51077d14' # dev teardown
+ nat44_show_running_config_reply: '0x93d8e267' # dev teardown
+ nat44_static_mapping_details: '0x06cb40b2' # dev teardown
+ nat44_static_mapping_dump: '0x51077d14' # dev teardown
+ # nat44_user_dump and nat44_user_session_dump can be called
+ # by show_nat_user_data function
+ nat_worker_details: '0x84bf06fc' # dev teardown
+ nat_worker_dump: '0x51077d14' # dev teardown
+
+ # plugins/nsim/nsim.api
+ nsim_configure2: '0x64de8ed3' # perf
+ nsim_configure2_reply: '0xe8d4e804' # perf
+ nsim_output_feature_enable_disable: '0x3865946c' # perf
+ nsim_output_feature_enable_disable_reply: '0xe8d4e804' # perf
+ # 4x^ 1280B-1c-eth-ip4udpquicscale10cl1s-vppecho-bps
+ # ^ 1280BAND1cANDeth-ip4udpquicscale10cl1s-vppecho
+
+ # vnet/policer/policer.api
+ policer_add: '0x4d949e35' # dev
+ policer_add_reply: '0xa177cef2' # dev
+
+ # vnet/classify/classify.api
+ policer_classify_set_interface: '0xde7ad708' # dev
+ policer_classify_set_interface_reply: '0xe8d4e804' # dev
+
+ # plugins/rdma/rdma.api
+ rdma_create_v4: '0xc6287ea8' # perf
+ rdma_create_v4_reply: '0x5383d31f' # perf
+ # 2x^ Any test with drv_rdma. Currently only available on 2n-clx.
+ # - Not testable by devicetest (until we have environment with right NICs).
+
+ # vlibmemory/vlib.api
+ show_threads: '0x51077d14' # dev
+ show_threads_reply: '0xefd78e83' # dev
+
+ # vpp/api/vpe.api
+ show_version: '0x51077d14' # dev setup
+ show_version_reply: '0xc919bde1' # dev setup
+
+ # vnet/srv6/sr.api
+ sr_localsid_add_del: '0x5a36c324' # dev
+ sr_localsid_add_del_reply: '0xe8d4e804' # dev
+ sr_localsids_details: '0x2e9221b9' # dev teardown
+ sr_localsids_dump: '0x51077d14' # dev teardown
+ sr_policies_v2_details: '0x96dcb699' # dev teardown
+ sr_policies_v2_dump: '0x51077d14' # dev teardown
+ sr_policy_add_v2: '0xf6297f36' # dev
+ sr_policy_add_reply: '0xe8d4e804' # dev but wrong
+ sr_set_encap_source: '0xd3bad5e1' # dev
+ sr_set_encap_source_reply: '0xe8d4e804' # dev
+ sr_steering_add_del: '0xe46b0a0f' # dev
+ sr_steering_add_del_reply: '0xe8d4e804' # dev
+ sr_steering_pol_details: '0xd41258c9' # dev teardown
+ sr_steering_pol_dump: '0x51077d14' # dev teardown
+
+ # vnet/bonding/bond.api
+ sw_bond_interface_details: '0x9428a69c' # perf
+ sw_bond_interface_dump: '0xf9e6675e' # perf
+ # ^^ see bond_*
+
+ # vnet/interface.api
+ sw_interface_add_del_address: '0x5463d73b' # dev
+ sw_interface_add_del_address_reply: '0xe8d4e804' # dev
+ sw_interface_details: '0x6c221fc7' # dev
+ sw_interface_dump: '0xaa610c27' # dev
+ # sw_interface_get_table / reply # honeycomb
+
+ # vnet/ip6-nd/ip6_nd.api
+ sw_interface_ip6nd_ra_config: '0x3eb00b1c' # dev
+ sw_interface_ip6nd_ra_config_reply: '0xe8d4e804' # dev
+
+ # vnet/interface.api
+ sw_interface_rx_placement_details: '0x9e44a7ce' # dev
+ sw_interface_rx_placement_dump: '0xf9e6675e' # dev
+ sw_interface_set_flags: '0xf5aec1b8' # dev
+ sw_interface_set_flags_reply: '0xe8d4e804' # dev
+
+ # sw_interface_set_geneve_bypass can be called
+ # by enable_interface_geneve_bypass function
+
+ # vnet/l2/l2.api
+ sw_interface_set_l2_bridge: '0xd0678b13' # dev
+ sw_interface_set_l2_bridge_reply: '0xe8d4e804' # dev
+ sw_interface_set_l2_xconnect: '0x4fa28a85' # dev
+ sw_interface_set_l2_xconnect_reply: '0xe8d4e804' # dev
+
+ # vnet/interface.api
+ sw_interface_set_mac_address: '0xc536e7eb' # dev
+ sw_interface_set_mac_address_reply: '0xe8d4e804' # dev
+ sw_interface_set_rx_placement: '0xdb65f3c9' # dev
+ sw_interface_set_rx_placement_reply: '0xe8d4e804' # dev
+ sw_interface_set_table: '0xdf42a577' # dev
+ sw_interface_set_table_reply: '0xe8d4e804' # dev
+ sw_interface_set_unnumbered: '0x154a6439' # dev
+ sw_interface_set_unnumbered_reply: '0xe8d4e804' # dev
+
+ # plugins/vxlan/vxlan.api
+ sw_interface_set_vxlan_bypass: '0x65247409' # dev
+ sw_interface_set_vxlan_bypass_reply: '0xe8d4e804' # dev
+
+ # vnet/devices/tap/tapv2.api
+ sw_interface_tap_v2_details: '0x1e2b2a47' # dev
+ sw_interface_tap_v2_dump: '0xf9e6675e' # dev
+
+ # plugins/vhost/vhost_user.api
+ sw_interface_vhost_user_details: '0x0cee1e53' # dev teardown
+ sw_interface_vhost_user_dump: '0xf9e6675e' # dev deardown
+
+ # vnet/bonding/bond.api
+ sw_member_interface_details: '0x3c4a0e23' # perf
+ sw_member_interface_dump: '0xf9e6675e' # perf
+ # ^^ see bond_*
+
+ # vnet/devices/tap/tapv2.api
+ tap_create_v3: '0x3f3fd1df' # dev
+ tap_create_v3_reply: '0x5383d31f' # dev
+
+ # plugins/vxlan/vxlan.api
+ vxlan_add_del_tunnel_v3: '0x0072b037' # dev
+ vxlan_add_del_tunnel_v3_reply: '0x5383d31f' # dev
+ # vxlan_gpe_tunnel_dump / details # honeycomb
+ # vxlan_tunnel_dump /details # unused L2 keyword: Get VXLAN dump
+
+ # plugins/wireguard/wireguard.api
+ wireguard_interface_create: '0xa530137e'
+ wireguard_interface_create_reply: '0x5383d31f'
+ wireguard_peer_add: '0x9b8aad61'
+ wireguard_peer_add_reply: '0x084a0cd3'
+ wg_set_async_mode: '0xa6465f7c'
+ wg_set_async_mode_reply: '0xe8d4e804'
+
+ # Please keep alphabetic order.
+
+24.02-with-srv6-fix:
+ # plugins/acl/acl.api
+ acl_add_replace: '0xee5c2f18' # dev
+ acl_add_replace_reply: '0xac407b0c' # dev
+ acl_details: '0x95babae0' # dev teardown
+ acl_dump: '0xef34fea4' # dev teardown
+ acl_interface_list_details: '0xe695d256' # dev teardown
+ acl_interface_list_dump: '0xf9e6675e' # dev teardown
+ acl_interface_set_acl_list: '0x473982bd' # dev
+ acl_interface_set_acl_list_reply: '0xe8d4e804' # dev
+
+ # vlibmemory/vlib.api
add_node_next: '0x2457116d' # dev
add_node_next_reply: '0x2ed75f32' # dev
+
+ # plugins/adl/adl.api
+ adl_allowlist_enable_disable: '0xea88828d' # dev
+ adl_allowlist_enable_disable_reply: '0xe8d4e804' # dev
+ adl_interface_enable_disable: '0x5501adee' # dev
+ adl_interface_enable_disable_reply: '0xe8d4e804' # dev
+
+ # plugins/af_xdp/af_xdp.api
+ af_xdp_create_v3: '0xcf4b1827' # perf
+ af_xdp_create_v3_reply: '0x5383d31f' # perf
+
+ # plugins/avf/avf.api
avf_create: '0xdaab8ae2' # dev
avf_create_reply: '0x5383d31f' # dev
+
+ # vnet/bonding/bond.api
bond_add_member: '0xe7d14948' # perf
bond_add_member_reply: '0xe8d4e804' # perf
bond_create2: '0x912fda76' # perf
bond_create2_reply: '0x5383d31f' # perf
- # 4x^ tc01-64B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
- # ^ l2xcfwdANDlbond_1lANDnf_testpmd
- bridge_domain_add_del: '0x600b7170' # dev
- bridge_domain_add_del_reply: '0xe8d4e804' # dev
+ # 4x^ 64B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
+ # ^ ndrpdrAND1cAND64bAND1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
+
+ # vnet/l2/l2.api
+ bridge_domain_add_del_v2: '0x600b7170' # dev
+ bridge_domain_add_del_v2_reply: '0xfcb1e980' # dev
# bridge_domain_dump / details # honeycomb
+
+ # vnet/classify/classify.api
classify_add_del_session: '0xf20879f0' # dev
classify_add_del_session_reply: '0xe8d4e804' # dev
classify_add_del_table: '0x6849e39e' # dev
@@ -67,259 +459,357 @@
# classify_session_dump / details # honeycomb
# classify_table_by_interface / reply # honeycomb
# classify_table_info / reply # honeycomb
+
+ # vlibmemory/vlib.api
cli_inband: '0xf8377302' # dev setup
cli_inband_reply: '0x05879051' # dev setup
- create_loopback: '0x42bb5d22' # dev
- create_loopback_reply: '0x5383d31f' # dev
- create_subif: '0xcb371063' # perf
+
+ # vnet/interface.api
+ create_loopback_instance: '0xd36a3ee2' # dev
+ create_loopback_instance_reply: '0x5383d31f' # dev
+
+ # vnet/interface.api
+ create_subif: '0x790ca755' # perf
create_subif_reply: '0x5383d31f' # perf
- # ^^ tc01-64B-1c-dot1ad-l2xcbase-mrr
- # ^ 3n: dot1adANDl2xcfwd
- create_vhost_user_if: '0xc785c6fc' # dev
- create_vhost_user_if_reply: '0x5383d31f' # dev
+ # ^^ 64B-1c-dot1ad-l2xcbase-ndrpdr
+ # ^ ndrpdrAND1cAND64bANDdot1ad-l2xcbase
+
+ # plugins/vhost/vhost_user.api
+ create_vhost_user_if_v2: '0xdba1cc1d' # dev
+ create_vhost_user_if_v2_reply: '0x5383d31f' # dev
+
+ # vnet/interface.api
create_vlan_subif: '0xaf34ac8b' # dev
create_vlan_subif_reply: '0x5383d31f' # dev
- det44_add_del_map: '0x1150a190' # perf
- det44_interface_add_del_feature: '0xdc17a836' # perf
- det44_interface_add_del_feature_reply: '0xe8d4e804' # perf
- det44_interface_details: '0xe60cc5be' # perf teardown
- det44_interface_dump: '0x51077d14' # perf teardown
- det44_map_details: '0xad91dc83' # perf teardown
- det44_map_dump: '0x51077d14' # perf teardown
- det44_add_del_map_reply: '0xe8d4e804' # perf teardown
- det44_plugin_enable_disable: '0x617b6bf8' # perf
- det44_plugin_enable_disable_reply: '0xe8d4e804' # perf
- det44_session_dump: '0xe45a3af7' # perf teardown
+
+ # plugins/crypto_sw_scheduler/crypto_sw_scheduler.api
+ crypto_set_async_dispatch_v2: '0x667d2d54' # perf
+ crypto_set_async_dispatch_v2_reply: '0xe8d4e804' # perf
+ crypto_sw_scheduler_set_worker: '0xb4274502' # perf
+ crypto_sw_scheduler_set_worker_reply: '0xe8d4e804' # perf
+ # 4^ 64B-1c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+ # ^ ndrpdrAND1cAND64BANDethip4ipsec8tnlswasync-scheduler-ip4base-int-\
+ # aes128gcm-udir
+
+ # plugins/nat/det44/det44.api
+ det44_add_del_map: '0x1150a190' # dev
+ det44_add_del_map_reply: '0xe8d4e804' # dev
+ det44_interface_add_del_feature: '0xdc17a836' # dev
+ det44_interface_add_del_feature_reply: '0xe8d4e804' # dev
+ det44_interface_details: '0xe60cc5be' # dev teardown
+ det44_interface_dump: '0x51077d14' # dev teardown
+ det44_map_details: '0xad91dc83' # dev teardown
+ det44_map_dump: '0x51077d14' # dev teardown
+ det44_plugin_enable_disable: '0x617b6bf8' # dev
+ det44_plugin_enable_disable_reply: '0xe8d4e804' # dev
+ det44_session_dump: '0xe45a3af7' # dev
# TODO: Which test to run to verify det44_* messages?
# dhcp_proxy_dump / details # honeycomb
+
+ # vnet/flow/flow.api
+ flow_add_v2: '0x5b757558' # dev
+ flow_add_v2_reply: '0x8587dc85' # dev
+ flow_del: '0xb6b9b02c' # dev
+ flow_del_reply: '0xe8d4e804' # dev
+ flow_disable: '0x2024be69' # dev
+ flow_disable_reply: '0xe8d4e804' # dev
+ flow_enable: '0x2024be69' # dev
+ flow_enable_reply: '0xe8d4e804' # dev
+
+ # plugins/geneve/geneve.api
geneve_add_del_tunnel2: '0x8c2a9999' # dev
geneve_add_del_tunnel2_reply: '0x5383d31f' # dev
- geneve_tunnel_details: '0xe27e2748' # dev
+ geneve_tunnel_details: '0x6b16eb24' # dev
geneve_tunnel_dump: '0xf9e6675e' # dev
+
+ # plugins/lisp/lisp-gpe/lisp_gpe.api
gpe_enable_disable: '0xc264d7bf' # dev
gpe_enable_disable_reply: '0xe8d4e804' # dev
+
# gre_tunnel_add_del / reply # unused L1 keyword: create_gre_tunnel_interface
+
+ # plugins/gtpu/gtpu.api
+ gtpu_add_del_tunnel_v2: '0xa0c30713' # perf
+ gtpu_add_del_tunnel_v2_reply: '0x62b41304' # perf
+ # ^^ 64B-1c-ethip4gtpusw-ip4base-ndrpdr
+ # ^ ndrpdrAND1cAND64BANDethip4gtpusw-ip4base
+ gtpu_offload_rx: '0xf0b08786' # perf
+ gtpu_offload_rx_reply: '0xe8d4e804' # perf
+
+ # vnet/interface.api
hw_interface_set_mtu: '0xe6746899' # dev
hw_interface_set_mtu_reply: '0xe8d4e804' # dev
+
+ # vnet/classify/classify.api
input_acl_set_interface: '0xde7ad708' # dev
input_acl_set_interface_reply: '0xe8d4e804' # dev
- ip_address_details: '0xb1199745' # dev
+
+ # vnet/ip/ip.api
+ ip_address_details: '0xee29b797' # dev
ip_address_dump: '0x2d033de4' # dev
- ip_neighbor_add_del: '0x105518b6' # dev
+
+ # vnet/ip-neighbor/ip_neighbor.api
+ ip_neighbor_add_del: '0x0607c257' # dev
ip_neighbor_add_del_reply: '0x1992deab' # dev
+
# ip_probe_neighbor / reply # unused L1 keyword vpp_ip_probe
- ip_route_add_del: '0xc1ff832d' # dev
+
+ # vnet/ip/ip.api
+ ip_route_add_del: '0xb8ecfe0d' # dev
ip_route_add_del_reply: '0x1992deab' # dev
# ip_source_check_interface_add_del / reply # unused L1 keyword vpp_ip_source_check_setup
ip_table_add_del: '0x0ffdaec0' # dev
ip_table_add_del_reply: '0xe8d4e804' # dev
- ipip_add_tunnel: '0xa9decfcd' # dev
+
+ # vnet/ipip/ipip.api
+ ipip_add_tunnel: '0x2ac399f5' # dev
ipip_add_tunnel_reply: '0x5383d31f' # dev
+
+ # vnet/ipsec/ipsec.api
ipsec_interface_add_del_spd: '0x80f80cbb' # dev
ipsec_interface_add_del_spd_reply: '0xe8d4e804' # dev
- ipsec_sa_v2_details: '0xe2130051' # dev
- ipsec_sa_v2_dump: '0x2076c2f4' # dev
- ipsec_sad_entry_add_del: '0xb8def364' # dev
- ipsec_sad_entry_add_del_reply: '0x9ffac24b' # dev
- ipsec_sad_entry_add_del_v2: '0xaca78b27' # dev
- ipsec_sad_entry_add_del_v2_reply: '0x9ffac24b' # dev
+ ipsec_sa_v5_details: '0x3cfecfbd' # dev teardown
+ ipsec_sa_v5_dump: '0x2076c2f4' # dev teardown
+ ipsec_sad_entry_add_v2: '0x9611297a' # dev
+ ipsec_sad_entry_add_v2_reply: '0x9ffac24b' # dev
ipsec_select_backend: '0x5bcfd3b7' # perf
ipsec_select_backend_reply: '0xe8d4e804' # perf
- # ^^ tc01-64B-1c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-mrr
- # ^ nic_intel-xl710ANDipsechwANDipsecintANDtnl_1ANDaes_256_gcm
+ # ^^ 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
+ # ^ ndrpdrAND1cAND64BANDethip4ipsec1tnlhw-ip4base-int-aes256gcm
+ ipsec_set_async_mode: '0xa6465f7c' # perf
+ ipsec_set_async_mode_reply: '0xe8d4e804' # perf
ipsec_spd_add_del: '0x20e89a95' # dev
ipsec_spd_add_del_reply: '0xe8d4e804' # dev
- ipsec_spd_entry_add_del: '0x9f384b8d' # dev
- ipsec_spd_entry_add_del_reply: '0x9ffac24b' # dev
- ipsec_tunnel_protect_update: '0x143f155d' # dev
+ ipsec_spd_entry_add_del_v2: '0x7bfe69fc' # dev
+ ipsec_spd_entry_add_del_v2_reply: '0x9ffac24b' # dev
+ ipsec_tunnel_protect_update: '0x30d5f133' # dev
ipsec_tunnel_protect_update_reply: '0xe8d4e804' # dev
- ipsec_set_async_mode: '0xa6465f7c' #perf
- ipsec_set_async_mode_reply: '0xe8d4e804' #perf
- # ^^ tc01-64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-mrr
- # ^ See select_backend.
+ # ^^ 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
+ # ^ See ipsec_select_backend.
+
+ # vnet/l2/l2.api
# l2_fib_table_dump / details # honeycomb
- l2_interface_vlan_tag_rewrite: '0x62cc0bbc' # dev
- l2_interface_vlan_tag_rewrite_reply: '0xe8d4e804' # dev
- l2_patch_add_del: '0x522f3445' # dev
+ l2_interface_vlan_tag_rewrite: '0x62cc0bbc' # perf
+ l2_interface_vlan_tag_rewrite_reply: '0xe8d4e804' # perf
+ # ^^ 64B-1c-dot1ad-l2xcbase-ndrpdr
+ # ^ ndrpdrAND1cAND64BANDdot1ad-l2xcbase
+ l2_patch_add_del: '0xa1f6a6f3' # dev
l2_patch_add_del_reply: '0xe8d4e804' # dev
# l2fib_add_del / reply # unused L1 keyword: vpp_add_l2fib_entry
- lb_conf: '0x22ddb739' # perf
- lb_conf_reply: '0xe8d4e804' # perf
- lb_add_del_vip: '0xd15b7ddc' # perf
- lb_add_del_vip_reply: '0xe8d4e804' # perf
- lb_add_del_as: '0x78628987' # perf
+
+ # plugins/lb/lb.api
+ lb_add_del_as: '0x35d72500' # perf
lb_add_del_as_reply: '0xe8d4e804' # perf
lb_add_del_intf_nat4: '0x47d6e753' # perf
lb_add_del_intf_nat4_reply: '0xe8d4e804' # perf
- # 8x^ tc01-64B-1c-ethip4-loadbalancer-nat4
- # ^ 2n: loadbalancer_nat4
- lisp_add_del_adjacency: '0xcf5edb61' # dev
+ lb_add_del_vip_v2: '0x7c520e0f' # perf
+ lb_add_del_vip_v2_reply: '0xe8d4e804' # perf
+ lb_conf: '0x56cd3261' # perf
+ lb_conf_reply: '0xe8d4e804' # perf
+ # 8x^ 64B-1c-ethip4-loadbalancer-nat4-ndrpdr
+ # ^ 2n: ndrpdrAND1cAND64BANDethip4-loadbalancer-nat4
+
+ # plugins/lisp/lisp-cp/lisp.api
+ lisp_add_del_adjacency: '0x2ce0e6f6' # dev
lisp_add_del_adjacency_reply: '0xe8d4e804' # dev
- lisp_add_del_local_eid: '0x21f573bd' # dev
+ lisp_add_del_local_eid: '0x4e5a83a2' # dev
lisp_add_del_local_eid_reply: '0xe8d4e804' # dev
lisp_add_del_locator: '0xaf4d8f13' # dev
lisp_add_del_locator_reply: '0xe8d4e804' # dev
lisp_add_del_locator_set: '0x6fcd6471' # dev
lisp_add_del_locator_set_reply: '0xb6666db4' # dev
# lisp_add_del_map_resolver / reply # unused L2 keyword: Configure LISP map resolver address
- lisp_add_del_remote_mapping: '0xfae8ed77' # dev
+ lisp_add_del_remote_mapping: '0x6d5c789e' # dev
lisp_add_del_remote_mapping_reply: '0xe8d4e804' # dev
- lisp_eid_table_add_del_map: '0x9481416b' # perf
- lisp_eid_table_add_del_map_reply: '0xe8d4e804' # perf
- # ^^ tc01-64B-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr # currently failing before calls
- # ^ ipsecANDlispgpe
- # lisp_eid_table_dump / details # unused L2 keyword: LISP eid address should be set correctly to eid table
+ lisp_eid_table_add_del_map: '0x9481416b' # dev
+ lisp_eid_table_add_del_map_reply: '0xe8d4e804' # dev
lisp_enable_disable: '0xc264d7bf' # dev
lisp_enable_disable_reply: '0xe8d4e804' # dev
- macip_acl_add: '0xd648fd0a' # perf
- macip_acl_add_reply: '0xac407b0c' # perf
- macip_acl_details: '0x57c7482f' # perf teardown
- macip_acl_dump: '0xef34fea4' # perf teardown
- macip_acl_interface_add_del: '0x4b8690b1' # perf
- macip_acl_interface_add_del_reply: '0xe8d4e804' # perf
- macip_acl_interface_get: '0x51077d14' # perf teardown
- macip_acl_interface_get_reply: '0xaccf9b05' # perf teardown
- # 8x^ tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr
- # ^ macipANDacl1AND100_flows
- memif_create: '0xb1b25061' # dev
- memif_create_reply: '0x5383d31f' # dev
- memif_details: '0xd0382c4c' # dev
+
+ # plugins/acl/acl.api
+ macip_acl_add: '0xce6fbad0' # dev
+ macip_acl_add_reply: '0xac407b0c' # dev
+ macip_acl_details: '0x27135b59' # dev teardown
+ macip_acl_dump: '0xef34fea4' # dev teardown
+ macip_acl_interface_add_del: '0x4b8690b1' # dev
+ macip_acl_interface_add_del_reply: '0xe8d4e804' # dev
+ macip_acl_interface_get: '0x51077d14' # dev teardown
+ macip_acl_interface_get_reply: '0xaccf9b05' # dev teardown
+
+ # plugins/memif/memif.api
+ memif_create_v2: '0x8c7de5f7' # dev
+ memif_create_v2_reply: '0x5383d31f' # dev
+ memif_details: '0xda34feb9' # dev
memif_dump: '0x51077d14' # dev
- memif_socket_filename_add_del: '0xa2ce1a10' # dev
- memif_socket_filename_add_del_reply: '0xe8d4e804' # dev
- nat44_add_del_address_range: '0xd4c7568c' # dev
+ memif_socket_filename_add_del_v2: '0x34223bdf' # dev
+ memif_socket_filename_add_del_v2_reply: '0x9f29bdb9' # dev
+
+ # plugins/nat/nat44-ed/nat44_ed.api
+ nat44_add_del_address_range: '0x6f2b8055' # dev
nat44_add_del_address_range_reply: '0xe8d4e804' # dev
- nat44_address_details: '0x45410ac4' # dev teardown
+ nat44_address_details: '0x0d1beac1' # dev teardown
nat44_address_dump: '0x51077d14' # dev teardown
+ nat44_ed_plugin_enable_disable: '0xbe17f8dd' # dev
+ nat44_ed_plugin_enable_disable_reply: '0xe8d4e804' # dev
nat44_interface_add_del_feature: '0xf3699b83' # dev
nat44_interface_add_del_feature_reply: '0xe8d4e804' # dev
- nat44_interface_addr_details: '0x3e687514' # dev teardown
+ nat44_interface_addr_details: '0xe4aca9ca' # dev teardown
nat44_interface_addr_dump: '0x51077d14' # dev teardown
nat44_interface_details: '0x5d286289' # dev teardown
nat44_interface_dump: '0x51077d14' # dev teardown
- nat44_plugin_enable_disable: '0xdea0d501' # dev
- nat44_plugin_enable_disable_reply: '0xe8d4e804' # dev
nat44_show_running_config: '0x51077d14' # dev teardown
nat44_show_running_config_reply: '0x93d8e267' # dev teardown
- nat44_static_mapping_details: '0x1a433ef7' # dev teardown
+ nat44_static_mapping_details: '0x06cb40b2' # dev teardown
nat44_static_mapping_dump: '0x51077d14' # dev teardown
- nat44_user_details: '0x355896c2' # dev teardown
- nat44_user_dump: '0x51077d14' # dev teardown
- nat44_user_session_details: '0x1965fd69' # dev teardown
- nat44_user_session_dump: '0xe1899c98' # dev teardown
+ # nat44_user_dump and nat44_user_session_dump can be called
+ # by show_nat_user_data function
nat_worker_details: '0x84bf06fc' # dev teardown
nat_worker_dump: '0x51077d14' # dev teardown
- # TODO: Which test to run to verify nat* messages?
+
+ # plugins/nsim/nsim.api
nsim_configure2: '0x64de8ed3' # perf
nsim_configure2_reply: '0xe8d4e804' # perf
nsim_output_feature_enable_disable: '0x3865946c' # perf
nsim_output_feature_enable_disable_reply: '0xe8d4e804' # perf
- # 4x^ tc01-9000B-1c-eth-ip4tcp-nsim-ldpreload-iperf3-bps
- # ^ 3n: nsimAND1stream
- policer_add_del: '0xcb948f6e' # dev
- policer_add_del_reply: '0xa177cef2' # dev
+ # 4x^ 1280B-1c-eth-ip4udpquicscale10cl1s-vppecho-bps
+ # ^ 1280BAND1cANDeth-ip4udpquicscale10cl1s-vppecho
+
+ # vnet/policer/policer.api
+ policer_add: '0x4d949e35' # dev
+ policer_add_reply: '0xa177cef2' # dev
+
+ # vnet/classify/classify.api
policer_classify_set_interface: '0xde7ad708' # dev
policer_classify_set_interface_reply: '0xe8d4e804' # dev
- # 4x^ tc01-64B-ethip4-ip4base-ipolicemarkbase-dev
- rdma_create: '0x076fe418' # perf
- rdma_create_reply: '0x5383d31f' # perf
+
+ # plugins/rdma/rdma.api
+ rdma_create_v4: '0xc6287ea8' # perf
+ rdma_create_v4_reply: '0x5383d31f' # perf
# 2x^ Any test with drv_rdma. Currently only available on 2n-clx.
# - Not testable by devicetest (until we have environment with right NICs).
+
+ # vlibmemory/vlib.api
show_threads: '0x51077d14' # dev
show_threads_reply: '0xefd78e83' # dev
+
+ # vpp/api/vpe.api
show_version: '0x51077d14' # dev setup
show_version_reply: '0xc919bde1' # dev setup
- sr_localsid_add_del: '0x26fa3309' # perf
- sr_localsid_add_del_reply: '0xe8d4e804' # perf
- sr_localsids_details: '0x6a6c0265' # perf teardown
- sr_localsids_dump: '0x51077d14' # perf teardown
- sr_policies_details: '0x07ec2d93' # perf teardown
- sr_policies_dump: '0x51077d14' # perf teardown
- sr_policy_add: '0xec79ee6a' # perf
- sr_policy_add_reply: '0xe8d4e804' # perf
- sr_set_encap_source: '0xd3bad5e1' # perf
- sr_set_encap_source_reply: '0xe8d4e804' # perf
- sr_steering_add_del: '0x3711dace' # perf
- sr_steering_add_del_reply: '0xe8d4e804' # perf
- sr_steering_pol_details: '0x1c1ee786' # perf teardown
- sr_steering_pol_dump: '0x51077d14' # perf teardown
- # 14x^ tc01-78B-1c-ethip6ip6-ip6base-srv6enc1sid-mrr
- # ^ srv6_1sid
+
+ # vnet/srv6/sr.api
+ sr_localsid_add_del: '0x5a36c324' # dev
+ sr_localsid_add_del_reply: '0xe8d4e804' # dev
+ sr_localsids_details: '0x2e9221b9' # dev teardown
+ sr_localsids_dump: '0x51077d14' # dev teardown
+ sr_policies_v2_details: '0x96dcb699' # dev teardown
+ sr_policies_v2_dump: '0x51077d14' # dev teardown
+ sr_policy_add_v2: '0xf6297f36' # dev
+ sr_policy_add_v2_reply: '0xe8d4e804' # dev
+ sr_set_encap_source: '0xd3bad5e1' # dev
+ sr_set_encap_source_reply: '0xe8d4e804' # dev
+ sr_steering_add_del: '0xe46b0a0f' # dev
+ sr_steering_add_del_reply: '0xe8d4e804' # dev
+ sr_steering_pol_details: '0xd41258c9' # dev teardown
+ sr_steering_pol_dump: '0x51077d14' # dev teardown
+
+ # vnet/bonding/bond.api
sw_bond_interface_details: '0x9428a69c' # perf
sw_bond_interface_dump: '0xf9e6675e' # perf
# ^^ see bond_*
- sw_interface_add_del_address: '0x5803d5c4' # dev
+
+ # vnet/interface.api
+ sw_interface_add_del_address: '0x5463d73b' # dev
sw_interface_add_del_address_reply: '0xe8d4e804' # dev
- sw_interface_details: '0x17b69fa2' # dev setup
- sw_interface_dump: '0xaa610c27' # dev setup
+ sw_interface_details: '0x6c221fc7' # dev
+ sw_interface_dump: '0xaa610c27' # dev
# sw_interface_get_table / reply # honeycomb
+
+ # vnet/ip6-nd/ip6_nd.api
sw_interface_ip6nd_ra_config: '0x3eb00b1c' # dev
sw_interface_ip6nd_ra_config_reply: '0xe8d4e804' # dev
- sw_interface_rx_placement_details: '0xf6d7d024' # perf
- sw_interface_rx_placement_dump: '0xf9e6675e' # perf
- # ^^ tc01-64B-1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr
- # ^ dot1qANDl2bdmaclrnANDbaseANDmemif
- sw_interface_set_flags: '0x6a2b491a' # dev
+
+ # vnet/interface.api
+ sw_interface_rx_placement_details: '0x9e44a7ce' # dev
+ sw_interface_rx_placement_dump: '0xf9e6675e' # dev
+ sw_interface_set_flags: '0xf5aec1b8' # dev
sw_interface_set_flags_reply: '0xe8d4e804' # dev
- sw_interface_set_geneve_bypass: '0x65247409' # dev
- sw_interface_set_geneve_bypass_reply: '0xe8d4e804' # dev
- sw_interface_set_l2_bridge: '0x2e483cd0' # dev
+
+ # sw_interface_set_geneve_bypass can be called
+ # by enable_interface_geneve_bypass function
+
+ # vnet/l2/l2.api
+ sw_interface_set_l2_bridge: '0xd0678b13' # dev
sw_interface_set_l2_bridge_reply: '0xe8d4e804' # dev
- sw_interface_set_l2_xconnect: '0x1aaa2dbb' # dev
+ sw_interface_set_l2_xconnect: '0x4fa28a85' # dev
sw_interface_set_l2_xconnect_reply: '0xe8d4e804' # dev
- sw_interface_set_mac_address: '0x6aca746a' # perf
- sw_interface_set_mac_address_reply: '0xe8d4e804' # perf
- sw_interface_set_rx_placement: '0xdb65f3c9' # perf
- sw_interface_set_rx_placement_reply: '0xe8d4e804' # perf
- # ^^ see tc01-64B-1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr above
+
+ # vnet/interface.api
+ sw_interface_set_mac_address: '0xc536e7eb' # dev
+ sw_interface_set_mac_address_reply: '0xe8d4e804' # dev
+ sw_interface_set_rx_placement: '0xdb65f3c9' # dev
+ sw_interface_set_rx_placement_reply: '0xe8d4e804' # dev
sw_interface_set_table: '0xdf42a577' # dev
sw_interface_set_table_reply: '0xe8d4e804' # dev
- sw_interface_set_unnumbered: '0x938ef33b' # perf
- sw_interface_set_unnumbered_reply: '0xe8d4e804' # perf
- # ^^ see ipsec_tunnel_if_add_del
+ sw_interface_set_unnumbered: '0x154a6439' # dev
+ sw_interface_set_unnumbered_reply: '0xe8d4e804' # dev
+
+ # plugins/vxlan/vxlan.api
sw_interface_set_vxlan_bypass: '0x65247409' # dev
sw_interface_set_vxlan_bypass_reply: '0xe8d4e804' # dev
- # sw_interface_span_dump / details # honeycomb
+
+ # vnet/devices/tap/tapv2.api
+ sw_interface_tap_v2_details: '0x1e2b2a47' # dev
sw_interface_tap_v2_dump: '0xf9e6675e' # dev
- sw_interface_tap_v2_details: '0xe53c16de' # dev
- sw_interface_vhost_user_details: '0x98530df1' # dev
- sw_interface_vhost_user_dump: '0xf9e6675e' # dev
+
+ # plugins/vhost/vhost_user.api
+ sw_interface_vhost_user_details: '0x0cee1e53' # dev teardown
+ sw_interface_vhost_user_dump: '0xf9e6675e' # dev deardown
+
+ # vnet/bonding/bond.api
sw_member_interface_details: '0x3c4a0e23' # perf
sw_member_interface_dump: '0xf9e6675e' # perf
# ^^ see bond_*
- tap_create_v2: '0x445835fd' # dev
- tap_create_v2_reply: '0x5383d31f' # dev
- vxlan_add_del_tunnel: '0xa35dc8f5' # dev
- vxlan_add_del_tunnel_reply: '0x5383d31f' # dev
+
+ # vnet/devices/tap/tapv2.api
+ tap_create_v3: '0x3f3fd1df' # dev
+ tap_create_v3_reply: '0x5383d31f' # dev
+
+ # plugins/vxlan/vxlan.api
+ vxlan_add_del_tunnel_v3: '0x0072b037' # dev
+ vxlan_add_del_tunnel_v3_reply: '0x5383d31f' # dev
# vxlan_gpe_tunnel_dump / details # honeycomb
# vxlan_tunnel_dump /details # unused L2 keyword: Get VXLAN dump
-# Please keep alphabetic order.
-# Use bash command "env LC_COLLATE=C sort -u" if not clear.
+ # plugins/wireguard/wireguard.api
+ wireguard_interface_create: '0xa530137e'
+ wireguard_interface_create_reply: '0x5383d31f'
+ wireguard_peer_add: '0x9b8aad61'
+ wireguard_peer_add_reply: '0x084a0cd3'
+ wg_set_async_mode: '0xa6465f7c'
+ wg_set_async_mode_reply: '0xe8d4e804'
+
+ # Please keep alphabetic order.
+# Use bash command "env LC_COLLATE=C sort -u" if not clear.
# Hint to see the currently used command messages:
# $ egrep -r 'cmd[0-9]* = ["'"'"'][a-z0-9]*_[a-z0-9_]*["'"'"']' | cut -d '=' -f 2- | cut -c 3- | cut -d "'" -f 1 | cut -d '"' -f 1 | env LC_COLLATE=C sort -u | less
# Independent hint:
# $ fgrep -rn dump_and_log
+# (The rest has not been updated since 2021-09-28.)
# TODO: Create an on-demand perf verify job with a tag expression
# covering API calls used only in perf tests,
# and maintain the expression as device test gets more coverage.
# Currently 2 triggers are needed: 2n (with RDMA) vs 3n (for encaps):
# csit-3n-hsw-perftest
-# mrrAND1cAND64bANDnic_intel-x710ANDdrv_vfio_pciANDip4fwdANDiaclANDacl10AND100_flows
-# mrrAND1cAND64bANDnic_intel-x710ANDdrv_vfio_pciANDnat44NOTscaleNOTsrc_user_1
-# mrrAND1cAND64bANDnic_intel-x710ANDdrv_vfio_pciANDdot1qANDl2bdmaclrnANDbaseANDmemif
-# mrrAND1cAND64bANDnic_intel-x710ANDdrv_vfio_pciANDl2xcfwdANDlbond_1lANDnf_testpmd
-# mrrAND1cAND64bANDnic_intel-x710ANDdrv_vfio_pciANDmacipANDacl1AND100_flows
-# mrrAND1cAND78bANDnic_intel-x710ANDdrv_vfio_pciANDsrv6_1sid
-# mrrAND1cAND64bANDnic_intel-x710ANDdrv_vfio_pciANDipsecswANDtnl_1ANDaes_256_gcm
-# mrrAND1cAND64bANDnic_intel-x710ANDdrv_vfio_pciANDdot1adANDl2xcfwd
-# mrrAND1cAND64bANDnic_intel-x710ANDdrv_vfio_pciANDipsecANDlispgpe
-# nic_intel-x710ANDnsimAND1stream
+# mrrANDnic_intel-x710ANDdrv_vfio_pciAND1cAND64bAND1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
+# mrrANDnic_intel-x710ANDdrv_vfio_pciAND1cAND64bANDdot1ad-l2xcbase
+# mrrANDnic_intel-x710ANDdrv_vfio_pciAND4cAND64bANDethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# mrrANDnic_intel-x710ANDdrv_vfio_pciAND1cAND64bANDethip4gtpusw-ip4base
+# bpsANDnic_intel-x710ANDdrv_vfio_pciAND1cAND78bANDeth-ip4udpquicscale10cl1s-vppecho
# csit-2n-clx-perftest
-# mrrAND1cAND64bANDdrv_rdma_coreANDloadbalancer_nat4
-# mrrAND1cAND64bANDnic_intel-x710ANDdrv_avfANDloadbalancer_nat4
+# mrrANDdrv_rdma_coreAND1cAND64bANDloadbalancer_nat4
+# mrrANDnic_intel-x710ANDdrv_avfAND1cAND64bANDloadbalancer_nat4
# TODO: Once device job has complete API coverage,
# add a check to make sure each message was encountered;
diff --git a/resources/job_specs/hoststack_daily/vpp-2n-icx.md b/resources/job_specs/hoststack_daily/vpp-2n-icx.md
new file mode 120000
index 0000000000..c2daf3c07c
--- /dev/null
+++ b/resources/job_specs/hoststack_daily/vpp-2n-icx.md
@@ -0,0 +1 @@
+../report_iterative/2n-icx/vpp-hoststack-00.md \ No newline at end of file
diff --git a/resources/job_specs/hoststack_daily/vpp-2n-spr.md b/resources/job_specs/hoststack_daily/vpp-2n-spr.md
new file mode 120000
index 0000000000..3f4cc69a30
--- /dev/null
+++ b/resources/job_specs/hoststack_daily/vpp-2n-spr.md
@@ -0,0 +1 @@
+../report_iterative/2n-spr/vpp-hoststack-00.md \ No newline at end of file
diff --git a/resources/job_specs/hoststack_daily/vpp-3n-icx.md b/resources/job_specs/hoststack_daily/vpp-3n-icx.md
new file mode 120000
index 0000000000..7b4197a336
--- /dev/null
+++ b/resources/job_specs/hoststack_daily/vpp-3n-icx.md
@@ -0,0 +1 @@
+../report_iterative/3n-icx/vpp-hoststack-00.md \ No newline at end of file
diff --git a/resources/job_specs/hoststack_daily/vpp-3na-spr.md b/resources/job_specs/hoststack_daily/vpp-3na-spr.md
new file mode 120000
index 0000000000..3060e7ca5b
--- /dev/null
+++ b/resources/job_specs/hoststack_daily/vpp-3na-spr.md
@@ -0,0 +1 @@
+../report_iterative/3na-spr/vpp-hoststack-00.md \ No newline at end of file
diff --git a/resources/job_specs/hoststack_daily/vpp-3nb-spr.md b/resources/job_specs/hoststack_daily/vpp-3nb-spr.md
new file mode 120000
index 0000000000..443f8baefc
--- /dev/null
+++ b/resources/job_specs/hoststack_daily/vpp-3nb-spr.md
@@ -0,0 +1 @@
+../report_iterative/3nb-spr/vpp-hoststack-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_daily/vpp-2n-aws.md b/resources/job_specs/mrr_daily/vpp-2n-aws.md
new file mode 120000
index 0000000000..965e53fa4e
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-2n-aws.md
@@ -0,0 +1 @@
+../report_iterative/2n-aws/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_daily/vpp-2n-c6in.md b/resources/job_specs/mrr_daily/vpp-2n-c6in.md
new file mode 120000
index 0000000000..3074380d6d
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-2n-c6in.md
@@ -0,0 +1 @@
+../report_iterative/2n-c6in/vpp-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_daily/vpp-2n-clx.md b/resources/job_specs/mrr_daily/vpp-2n-clx.md
index 044239b6d1..044239b6d1 120000
--- a/docs/job_specs/mrr_daily/vpp-2n-clx.md
+++ b/resources/job_specs/mrr_daily/vpp-2n-clx.md
diff --git a/resources/job_specs/mrr_daily/vpp-2n-icx.md b/resources/job_specs/mrr_daily/vpp-2n-icx.md
new file mode 120000
index 0000000000..7ff928265e
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-2n-icx.md
@@ -0,0 +1 @@
+../report_iterative/2n-icx/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_daily/vpp-2n-spr.md b/resources/job_specs/mrr_daily/vpp-2n-spr.md
new file mode 120000
index 0000000000..cc3073457d
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-2n-spr.md
@@ -0,0 +1 @@
+../report_iterative/2n-spr/vpp-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_daily/vpp-2n-tx2.md b/resources/job_specs/mrr_daily/vpp-2n-tx2.md
index 14c98d957c..14c98d957c 120000
--- a/docs/job_specs/mrr_daily/vpp-2n-tx2.md
+++ b/resources/job_specs/mrr_daily/vpp-2n-tx2.md
diff --git a/resources/job_specs/mrr_daily/vpp-2n-zn2.md b/resources/job_specs/mrr_daily/vpp-2n-zn2.md
new file mode 120000
index 0000000000..73776daa0a
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-2n-zn2.md
@@ -0,0 +1 @@
+../report_iterative/2n-zn2/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_daily/vpp-3n-alt.md b/resources/job_specs/mrr_daily/vpp-3n-alt.md
new file mode 120000
index 0000000000..1b9596d9af
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-3n-alt.md
@@ -0,0 +1 @@
+../report_iterative/3n-alt/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_daily/vpp-3n-aws.md b/resources/job_specs/mrr_daily/vpp-3n-aws.md
new file mode 120000
index 0000000000..50ba8409ce
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-3n-aws.md
@@ -0,0 +1 @@
+../report_iterative/3n-aws/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_daily/vpp-3n-c6in.md b/resources/job_specs/mrr_daily/vpp-3n-c6in.md
new file mode 120000
index 0000000000..0f7dc47446
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-3n-c6in.md
@@ -0,0 +1 @@
+../report_iterative/3n-c6in/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_daily/vpp-3n-icx.md b/resources/job_specs/mrr_daily/vpp-3n-icx.md
new file mode 120000
index 0000000000..d0b496b069
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-3n-icx.md
@@ -0,0 +1 @@
+../report_iterative/3n-icx/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_daily/vpp-3n-icxd.md b/resources/job_specs/mrr_daily/vpp-3n-icxd.md
new file mode 120000
index 0000000000..2568163794
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-3n-icxd.md
@@ -0,0 +1 @@
+../report_iterative/3n-icxd/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_daily/vpp-3n-snr.md b/resources/job_specs/mrr_daily/vpp-3n-snr.md
new file mode 120000
index 0000000000..65b6a2831c
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-3n-snr.md
@@ -0,0 +1 @@
+../report_iterative/3n-snr/vpp-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_daily/vpp-3n-tsh.md b/resources/job_specs/mrr_daily/vpp-3n-tsh.md
index a558022c30..a558022c30 120000
--- a/docs/job_specs/mrr_daily/vpp-3n-tsh.md
+++ b/resources/job_specs/mrr_daily/vpp-3n-tsh.md
diff --git a/resources/job_specs/mrr_daily/vpp-3na-spr.md b/resources/job_specs/mrr_daily/vpp-3na-spr.md
new file mode 120000
index 0000000000..d43bf2e979
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-3na-spr.md
@@ -0,0 +1 @@
+../report_iterative/3na-spr/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_daily/vpp-3nb-spr.md b/resources/job_specs/mrr_daily/vpp-3nb-spr.md
new file mode 120000
index 0000000000..d609476a17
--- /dev/null
+++ b/resources/job_specs/mrr_daily/vpp-3nb-spr.md
@@ -0,0 +1 @@
+../report_iterative/3nb-spr/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/dpdk-2n-clx.md b/resources/job_specs/mrr_weekly/dpdk-2n-clx.md
new file mode 120000
index 0000000000..0d1ea215a1
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/dpdk-2n-clx.md
@@ -0,0 +1 @@
+../report_iterative/2n-clx/dpdk-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/dpdk-2n-icx.md b/resources/job_specs/mrr_weekly/dpdk-2n-icx.md
new file mode 120000
index 0000000000..71f0e84290
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/dpdk-2n-icx.md
@@ -0,0 +1 @@
+../report_iterative/2n-icx/dpdk-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/dpdk-2n-spr.md b/resources/job_specs/mrr_weekly/dpdk-2n-spr.md
new file mode 120000
index 0000000000..b2831b40b9
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/dpdk-2n-spr.md
@@ -0,0 +1 @@
+../report_iterative/2n-spr/dpdk-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_weekly/dpdk-2n-tx2.md b/resources/job_specs/mrr_weekly/dpdk-2n-tx2.md
index b1b9de6fc0..b1b9de6fc0 120000
--- a/docs/job_specs/mrr_weekly/dpdk-2n-tx2.md
+++ b/resources/job_specs/mrr_weekly/dpdk-2n-tx2.md
diff --git a/resources/job_specs/mrr_weekly/dpdk-2n-zn2.md b/resources/job_specs/mrr_weekly/dpdk-2n-zn2.md
new file mode 120000
index 0000000000..bc5be8bd8c
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/dpdk-2n-zn2.md
@@ -0,0 +1 @@
+../report_iterative/2n-zn2/dpdk-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/dpdk-3n-alt.md b/resources/job_specs/mrr_weekly/dpdk-3n-alt.md
new file mode 120000
index 0000000000..1f9d6df133
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/dpdk-3n-alt.md
@@ -0,0 +1 @@
+../report_iterative/3n-alt/dpdk-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/dpdk-3n-icx.md b/resources/job_specs/mrr_weekly/dpdk-3n-icx.md
new file mode 120000
index 0000000000..4704ed3d77
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/dpdk-3n-icx.md
@@ -0,0 +1 @@
+../report_iterative/3n-icx/dpdk-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/dpdk-3n-icxd.md b/resources/job_specs/mrr_weekly/dpdk-3n-icxd.md
new file mode 120000
index 0000000000..fed3574315
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/dpdk-3n-icxd.md
@@ -0,0 +1 @@
+../report_iterative/3n-icxd/dpdk-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/dpdk-3n-snr.md b/resources/job_specs/mrr_weekly/dpdk-3n-snr.md
new file mode 120000
index 0000000000..e1b66b30d1
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/dpdk-3n-snr.md
@@ -0,0 +1 @@
+../report_iterative/3n-snr/dpdk-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_weekly/dpdk-3n-tsh.md b/resources/job_specs/mrr_weekly/dpdk-3n-tsh.md
index 6219c500bc..6219c500bc 120000
--- a/docs/job_specs/mrr_weekly/dpdk-3n-tsh.md
+++ b/resources/job_specs/mrr_weekly/dpdk-3n-tsh.md
diff --git a/resources/job_specs/mrr_weekly/dpdk-3na-spr.md b/resources/job_specs/mrr_weekly/dpdk-3na-spr.md
new file mode 120000
index 0000000000..343d1ad403
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/dpdk-3na-spr.md
@@ -0,0 +1 @@
+../report_iterative/3na-spr/dpdk-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/dpdk-3nb-spr.md b/resources/job_specs/mrr_weekly/dpdk-3nb-spr.md
new file mode 120000
index 0000000000..255a61d7d1
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/dpdk-3nb-spr.md
@@ -0,0 +1 @@
+../report_iterative/3nb-spr/dpdk-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/vpp-2n-aws.md b/resources/job_specs/mrr_weekly/vpp-2n-aws.md
new file mode 120000
index 0000000000..965e53fa4e
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/vpp-2n-aws.md
@@ -0,0 +1 @@
+../report_iterative/2n-aws/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/vpp-2n-c6in.md b/resources/job_specs/mrr_weekly/vpp-2n-c6in.md
new file mode 120000
index 0000000000..3074380d6d
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/vpp-2n-c6in.md
@@ -0,0 +1 @@
+../report_iterative/2n-c6in/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/vpp-2n-c7gn.md b/resources/job_specs/mrr_weekly/vpp-2n-c7gn.md
new file mode 120000
index 0000000000..274f15c6df
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/vpp-2n-c7gn.md
@@ -0,0 +1 @@
+../report_iterative/2n-c7gn/vpp-mrr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mrr_weekly/vpp-2n-clx.md b/resources/job_specs/mrr_weekly/vpp-2n-clx.md
index bf807ff871..bf807ff871 120000
--- a/docs/job_specs/mrr_weekly/vpp-2n-clx.md
+++ b/resources/job_specs/mrr_weekly/vpp-2n-clx.md
diff --git a/resources/job_specs/mrr_weekly/vpp-2n-icx.md b/resources/job_specs/mrr_weekly/vpp-2n-icx.md
new file mode 120000
index 0000000000..0a77ba6cb2
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/vpp-2n-icx.md
@@ -0,0 +1 @@
+../report_iterative/2n-icx/nfv-density-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/vpp-3n-aws.md b/resources/job_specs/mrr_weekly/vpp-3n-aws.md
new file mode 120000
index 0000000000..50ba8409ce
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/vpp-3n-aws.md
@@ -0,0 +1 @@
+../report_iterative/3n-aws/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/vpp-3n-c6in.md b/resources/job_specs/mrr_weekly/vpp-3n-c6in.md
new file mode 120000
index 0000000000..0f7dc47446
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/vpp-3n-c6in.md
@@ -0,0 +1 @@
+../report_iterative/3n-c6in/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/vpp-3n-c7gn.md b/resources/job_specs/mrr_weekly/vpp-3n-c7gn.md
new file mode 120000
index 0000000000..777b65fb21
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/vpp-3n-c7gn.md
@@ -0,0 +1 @@
+../report_iterative/3n-c7gn/vpp-mrr-00.md \ No newline at end of file
diff --git a/resources/job_specs/mrr_weekly/vpp-3n-icx.md b/resources/job_specs/mrr_weekly/vpp-3n-icx.md
new file mode 120000
index 0000000000..8bdb6a47bd
--- /dev/null
+++ b/resources/job_specs/mrr_weekly/vpp-3n-icx.md
@@ -0,0 +1 @@
+../report_iterative/3n-icx/vpp-mrr-01.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/trex-1n-aws.md b/resources/job_specs/ndrpdr_weekly/trex-1n-aws.md
new file mode 120000
index 0000000000..ba37e0aeff
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/trex-1n-aws.md
@@ -0,0 +1 @@
+../report_iterative/1n-aws/trex-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/trex-2n-icx.md b/resources/job_specs/ndrpdr_weekly/trex-2n-icx.md
new file mode 120000
index 0000000000..6a5be6cc52
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/trex-2n-icx.md
@@ -0,0 +1 @@
+../report_iterative/2n-icx/trex-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/trex-2n-spr.md b/resources/job_specs/ndrpdr_weekly/trex-2n-spr.md
new file mode 120000
index 0000000000..d0e2718135
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/trex-2n-spr.md
@@ -0,0 +1 @@
+../report_iterative/2n-spr/trex-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-2n-aws.md b/resources/job_specs/ndrpdr_weekly/vpp-2n-aws.md
new file mode 120000
index 0000000000..038d104cb2
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-2n-aws.md
@@ -0,0 +1 @@
+../report_iterative/2n-aws/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-2n-c6in.md b/resources/job_specs/ndrpdr_weekly/vpp-2n-c6in.md
new file mode 120000
index 0000000000..1681d6889a
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-2n-c6in.md
@@ -0,0 +1 @@
+../report_iterative/2n-c6in/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-2n-c7gn.md b/resources/job_specs/ndrpdr_weekly/vpp-2n-c7gn.md
new file mode 120000
index 0000000000..d2acc82d97
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-2n-c7gn.md
@@ -0,0 +1 @@
+../report_iterative/2n-c7gn/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-2n-clx.md b/resources/job_specs/ndrpdr_weekly/vpp-2n-clx.md
new file mode 120000
index 0000000000..26380e3b87
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-2n-clx.md
@@ -0,0 +1 @@
+../report_iterative/2n-clx/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-2n-icx.md b/resources/job_specs/ndrpdr_weekly/vpp-2n-icx.md
new file mode 120000
index 0000000000..26bc8e79ba
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-2n-icx.md
@@ -0,0 +1 @@
+../report_iterative/2n-icx/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-2n-spr.md b/resources/job_specs/ndrpdr_weekly/vpp-2n-spr.md
new file mode 120000
index 0000000000..d3e8994d51
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-2n-spr.md
@@ -0,0 +1 @@
+../report_iterative/2n-spr/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-2n-tx2.md b/resources/job_specs/ndrpdr_weekly/vpp-2n-tx2.md
new file mode 120000
index 0000000000..4f8d1fbc05
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-2n-tx2.md
@@ -0,0 +1 @@
+../report_iterative/2n-tx2/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-2n-zn2.md b/resources/job_specs/ndrpdr_weekly/vpp-2n-zn2.md
new file mode 120000
index 0000000000..3d298e1620
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-2n-zn2.md
@@ -0,0 +1 @@
+../report_iterative/2n-zn2/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-3n-alt.md b/resources/job_specs/ndrpdr_weekly/vpp-3n-alt.md
new file mode 120000
index 0000000000..1a4724f4ba
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-3n-alt.md
@@ -0,0 +1 @@
+../report_iterative/3n-alt/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-3n-aws.md b/resources/job_specs/ndrpdr_weekly/vpp-3n-aws.md
new file mode 120000
index 0000000000..59a0c9cab8
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-3n-aws.md
@@ -0,0 +1 @@
+../report_iterative/3n-aws/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-3n-c6in.md b/resources/job_specs/ndrpdr_weekly/vpp-3n-c6in.md
new file mode 120000
index 0000000000..b2dbaf8dea
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-3n-c6in.md
@@ -0,0 +1 @@
+../report_iterative/3n-c6in/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-3n-c7gn.md b/resources/job_specs/ndrpdr_weekly/vpp-3n-c7gn.md
new file mode 120000
index 0000000000..3491794e61
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-3n-c7gn.md
@@ -0,0 +1 @@
+../report_iterative/3n-c7gn/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-3n-icx.md b/resources/job_specs/ndrpdr_weekly/vpp-3n-icx.md
new file mode 120000
index 0000000000..e573a084a3
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-3n-icx.md
@@ -0,0 +1 @@
+../report_iterative/3n-icx/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-3n-icxd.md b/resources/job_specs/ndrpdr_weekly/vpp-3n-icxd.md
new file mode 120000
index 0000000000..34536e77d4
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-3n-icxd.md
@@ -0,0 +1 @@
+../report_iterative/3n-icxd/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-3n-snr.md b/resources/job_specs/ndrpdr_weekly/vpp-3n-snr.md
new file mode 120000
index 0000000000..f8cec14fbe
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-3n-snr.md
@@ -0,0 +1 @@
+../report_iterative/3n-snr/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-3n-tsh.md b/resources/job_specs/ndrpdr_weekly/vpp-3n-tsh.md
new file mode 120000
index 0000000000..42c1e6ebf8
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-3n-tsh.md
@@ -0,0 +1 @@
+../report_iterative/3n-tsh/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-3na-spr.md b/resources/job_specs/ndrpdr_weekly/vpp-3na-spr.md
new file mode 120000
index 0000000000..2971d5e6d9
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-3na-spr.md
@@ -0,0 +1 @@
+../report_iterative/3na-spr/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/ndrpdr_weekly/vpp-3nb-spr.md b/resources/job_specs/ndrpdr_weekly/vpp-3nb-spr.md
new file mode 120000
index 0000000000..e58991fd44
--- /dev/null
+++ b/resources/job_specs/ndrpdr_weekly/vpp-3nb-spr.md
@@ -0,0 +1 @@
+../report_iterative/3nb-spr/vpp-ndrpdr-00.md \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/1n-aws/trex-00.md b/resources/job_specs/report_coverage/1n-aws/trex-00.md
new file mode 100644
index 0000000000..ba8246b2c3
--- /dev/null
+++ b/resources/job_specs/report_coverage/1n-aws/trex-00.md
@@ -0,0 +1,23 @@
+# 1n-aws
+## ./ip4
+##### ethip4-ip4base-tg
+- AND 64b AND ndrpdr AND nitro-50g AND - AND ethip4-ip4base-tg
+- AND 1518b AND ndrpdr AND nitro-50g AND - AND ethip4-ip4base-tg
+- AND 9000b AND ndrpdr AND nitro-50g AND - AND ethip4-ip4base-tg
+- AND imix AND ndrpdr AND nitro-50g AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND ndrpdr AND nitro-50g AND - AND ethip4-ip4scale20k-tg
+- AND 1518b AND ndrpdr AND nitro-50g AND - AND ethip4-ip4scale20k-tg
+- AND 9000b AND ndrpdr AND nitro-50g AND - AND ethip4-ip4scale20k-tg
+- AND imix AND ndrpdr AND nitro-50g AND - AND ethip4-ip4scale20k-tg
+## ./ip6
+##### ethip6-ip6base-tg
+- AND 78b AND ndrpdr AND nitro-50g AND - AND ethip6-ip6base-tg
+- AND 1518b AND ndrpdr AND nitro-50g AND - AND ethip6-ip6base-tg
+- AND 9000b AND ndrpdr AND nitro-50g AND - AND ethip6-ip6base-tg
+- AND imix AND ndrpdr AND nitro-50g AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND ndrpdr AND nitro-50g AND - AND ethip6-ip6scale20k-tg
+- AND 1518b AND ndrpdr AND nitro-50g AND - AND ethip6-ip6scale20k-tg
+- AND 9000b AND ndrpdr AND nitro-50g AND - AND ethip6-ip6scale20k-tg
+- AND imix AND ndrpdr AND nitro-50g AND - AND ethip6-ip6scale20k-tg \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-aws/vpp-00.md b/resources/job_specs/report_coverage/2n-aws/vpp-00.md
new file mode 100644
index 0000000000..472491c2d0
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-aws/vpp-00.md
@@ -0,0 +1,37 @@
+# 2n-aws
+## ./ip4
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip6
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-c6in/vpp-00.md b/resources/job_specs/report_coverage/2n-c6in/vpp-00.md
new file mode 100644
index 0000000000..7f3eed1dd6
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-c6in/vpp-00.md
@@ -0,0 +1,37 @@
+# 2n-c6in
+## ./ip4
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip6
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
diff --git a/resources/job_specs/report_coverage/2n-c7gn/vpp-00.md b/resources/job_specs/report_coverage/2n-c7gn/vpp-00.md
new file mode 100644
index 0000000000..27f15d638d
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-c7gn/vpp-00.md
@@ -0,0 +1,37 @@
+# 2n-c7gn
+## ./ip4
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip6
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
diff --git a/resources/job_specs/report_coverage/2n-clx/dpdk-00.md b/resources/job_specs/report_coverage/2n-clx/dpdk-00.md
new file mode 100644
index 0000000000..cfb61497bc
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/dpdk-00.md
@@ -0,0 +1,23 @@
+# 2n-clx
+### intel-xxv710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/gso-00.md b/resources/job_specs/report_coverage/2n-clx/gso-00.md
new file mode 100644
index 0000000000..7e416efdd6
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/gso-00.md
@@ -0,0 +1,23 @@
+# 2n-clx
+## ./gso
+### intel-xxv710
+#### drv_tap
+##### ethip4-ip4base-2tap-gso
+1c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+#### drv_tap
+##### ethip4-ip4base-2tap
+1c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost-gso
+1c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost
+1c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4-00.md b/resources/job_specs/report_coverage/2n-clx/ip4-00.md
new file mode 100644
index 0000000000..034b09e5e2
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4-00.md
@@ -0,0 +1,145 @@
+# 2n-clx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4-01.md b/resources/job_specs/report_coverage/2n-clx/ip4-01.md
new file mode 100644
index 0000000000..09d3fab6be
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4-01.md
@@ -0,0 +1,65 @@
+# 2n-clx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4-02.md b/resources/job_specs/report_coverage/2n-clx/ip4-02.md
new file mode 100644
index 0000000000..c0797c780f
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4-02.md
@@ -0,0 +1,45 @@
+# 2n-clx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4-03.md b/resources/job_specs/report_coverage/2n-clx/ip4-03.md
new file mode 100644
index 0000000000..a6309098c7
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4-03.md
@@ -0,0 +1,45 @@
+# 2n-clx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4-04.md b/resources/job_specs/report_coverage/2n-clx/ip4-04.md
new file mode 100644
index 0000000000..e8e682a8bc
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4-04.md
@@ -0,0 +1,45 @@
+# 2n-clx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4-05.md b/resources/job_specs/report_coverage/2n-clx/ip4-05.md
new file mode 100644
index 0000000000..d72d13e039
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4-05.md
@@ -0,0 +1,68 @@
+# 2n-clx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4-06.md b/resources/job_specs/report_coverage/2n-clx/ip4-06.md
new file mode 100644
index 0000000000..901f49e92d
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4-06.md
@@ -0,0 +1,92 @@
+# 2n-clx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h16384-p63-s1032192-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+##### ethip4udp-nat44ed-h262144-p63-s16515072-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-nat44ed-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4-07.md b/resources/job_specs/report_coverage/2n-clx/ip4-07.md
new file mode 100644
index 0000000000..48477335a1
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4-07.md
@@ -0,0 +1,36 @@
+# 2n-clx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4-08.md b/resources/job_specs/report_coverage/2n-clx/ip4-08.md
new file mode 100644
index 0000000000..7ddfb40b11
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4-08.md
@@ -0,0 +1,128 @@
+# 2n-clx
+## ./ip4
+### intel-xxv710
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+### mellanox-cx556a
+#### rdma-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+#### mlx5_core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4tun-00.md b/resources/job_specs/report_coverage/2n-clx/ip4tun-00.md
new file mode 100644
index 0000000000..40b8066c4e
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4tun-00.md
@@ -0,0 +1,64 @@
+# 2n-clx
+## ./ip4_tunnels
+### intel-e810cq
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+##### ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip4tun-01.md b/resources/job_specs/report_coverage/2n-clx/ip4tun-01.md
new file mode 100644
index 0000000000..c3667be88c
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip4tun-01.md
@@ -0,0 +1,24 @@
+# 2n-clx
+## ./ip4_tunnels
+### intel-xxv710
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip6-00.md b/resources/job_specs/report_coverage/2n-clx/ip6-00.md
new file mode 100644
index 0000000000..05cd25b740
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip6-00.md
@@ -0,0 +1,65 @@
+# 2n-clx
+## ./ip6
+### intel-e810cq
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip6-01.md b/resources/job_specs/report_coverage/2n-clx/ip6-01.md
new file mode 100644
index 0000000000..a034a7781c
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip6-01.md
@@ -0,0 +1,125 @@
+# 2n-clx
+## ./ip6
+### intel-e810cq
+#### avf
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip6-02.md b/resources/job_specs/report_coverage/2n-clx/ip6-02.md
new file mode 100644
index 0000000000..e6ba545cd8
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip6-02.md
@@ -0,0 +1,48 @@
+# 2n-clx
+## ./ip6
+### intel-xxv710
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+### mellanox-cx556a
+#### rdma-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+#### mlx5_core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/ip6-03.md b/resources/job_specs/report_coverage/2n-clx/ip6-03.md
new file mode 100644
index 0000000000..cac1baae51
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/ip6-03.md
@@ -0,0 +1,88 @@
+# 2n-clx
+## ./ip6
+### intel-xxv710
+#### avf
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+### mellanox-cx556a
+#### rdma-core
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+#### mlx5_core
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
diff --git a/resources/job_specs/report_coverage/2n-clx/l2-00.md b/resources/job_specs/report_coverage/2n-clx/l2-00.md
new file mode 100644
index 0000000000..b2743a8b92
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/l2-00.md
@@ -0,0 +1,85 @@
+# 2n-clx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/l2-01.md b/resources/job_specs/report_coverage/2n-clx/l2-01.md
new file mode 100644
index 0000000000..2431a58f83
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/l2-01.md
@@ -0,0 +1,65 @@
+# 2n-clx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+#### dpdk-vfio-pci
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/l2-02.md b/resources/job_specs/report_coverage/2n-clx/l2-02.md
new file mode 100644
index 0000000000..606535558b
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/l2-02.md
@@ -0,0 +1,128 @@
+# 2n-clx
+## ./l2
+### intel-xxv710
+#### avf
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+#### mlx5_core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/l2-03.md b/resources/job_specs/report_coverage/2n-clx/l2-03.md
new file mode 100644
index 0000000000..c922103a61
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/l2-03.md
@@ -0,0 +1,48 @@
+# 2n-clx
+## ./l2
+### intel-xxv710
+#### avf
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+#### dpdk-vfio-pci
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+#### mlx5_core
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/lb-00.md b/resources/job_specs/report_coverage/2n-clx/lb-00.md
new file mode 100644
index 0000000000..a01b0d2a0e
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/lb-00.md
@@ -0,0 +1,65 @@
+# 2n-clx
+## ./lb
+### intel-e810cq
+#### avf
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+#### dpdk-vfio-pci
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/lb-01.md b/resources/job_specs/report_coverage/2n-clx/lb-01.md
new file mode 100644
index 0000000000..b67874addd
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/lb-01.md
@@ -0,0 +1,34 @@
+# 2n-clx
+## ./lb
+### intel-xxv710
+#### avf
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/memif-00.md b/resources/job_specs/report_coverage/2n-clx/memif-00.md
new file mode 100644
index 0000000000..50b86b08df
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/memif-00.md
@@ -0,0 +1,65 @@
+# 2n-clx
+## ./container_memif
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/memif-01.md b/resources/job_specs/report_coverage/2n-clx/memif-01.md
new file mode 100644
index 0000000000..d23e041c19
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/memif-01.md
@@ -0,0 +1,45 @@
+# 2n-clx
+## ./container_memif
+### intel-xxv710
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/vhost-00.md b/resources/job_specs/report_coverage/2n-clx/vhost-00.md
new file mode 100644
index 0000000000..e3c2d77269
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/vhost-00.md
@@ -0,0 +1,125 @@
+# 2n-clx
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### dpdk-vfio-pci
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-clx/vhost-01.md b/resources/job_specs/report_coverage/2n-clx/vhost-01.md
new file mode 100644
index 0000000000..196ab63568
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-clx/vhost-01.md
@@ -0,0 +1,85 @@
+# 2n-clx
+## ./vm_vhost
+### intel-xxv710
+#### avf
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/dpdk-00.md b/resources/job_specs/report_coverage/2n-icx/dpdk-00.md
new file mode 100644
index 0000000000..26004ffa3f
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/dpdk-00.md
@@ -0,0 +1,67 @@
+# 2n-icx
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/gso-00.md b/resources/job_specs/report_coverage/2n-icx/gso-00.md
new file mode 100644
index 0000000000..f779ada7fa
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/gso-00.md
@@ -0,0 +1,23 @@
+# 2n-icx
+## ./gso
+### intel-e810cq
+#### drv_tap
+##### ethip4-ip4base-2tap-gso
+1c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+#### drv_tap
+##### ethip4-ip4base-2tap
+1c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost-gso
+1c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost
+1c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/hoststack-00.md b/resources/job_specs/report_coverage/2n-icx/hoststack-00.md
new file mode 100644
index 0000000000..388b7e5321
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/hoststack-00.md
@@ -0,0 +1,42 @@
+# 2n-icx
+## ./hoststack
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 64b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 64b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 1024b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 1024b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 2000b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 2000b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 64b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 64b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 1024b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 1024b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 2000b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 2000b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 64b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 64b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 1024b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 1024b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 2000b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 2000b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 64b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 64b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 1024b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 1024b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 2000b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 2000b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-00.md b/resources/job_specs/report_coverage/2n-icx/ip4-00.md
new file mode 100644
index 0000000000..ce5d81a750
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-00.md
@@ -0,0 +1,145 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-01.md b/resources/job_specs/report_coverage/2n-icx/ip4-01.md
new file mode 100644
index 0000000000..6dbb8b7858
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-01.md
@@ -0,0 +1,65 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-02.md b/resources/job_specs/report_coverage/2n-icx/ip4-02.md
new file mode 100644
index 0000000000..6cae363f9d
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-02.md
@@ -0,0 +1,45 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-03.md b/resources/job_specs/report_coverage/2n-icx/ip4-03.md
new file mode 100644
index 0000000000..88de917570
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-03.md
@@ -0,0 +1,45 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-04.md b/resources/job_specs/report_coverage/2n-icx/ip4-04.md
new file mode 100644
index 0000000000..f0ba7c1f55
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-04.md
@@ -0,0 +1,45 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-05.md b/resources/job_specs/report_coverage/2n-icx/ip4-05.md
new file mode 100644
index 0000000000..bd07702a78
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-05.md
@@ -0,0 +1,68 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-06.md b/resources/job_specs/report_coverage/2n-icx/ip4-06.md
new file mode 100644
index 0000000000..90e61d2d4e
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-06.md
@@ -0,0 +1,92 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h16384-p63-s1032192-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+##### ethip4udp-nat44ed-h262144-p63-s16515072-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-nat44ed-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-07.md b/resources/job_specs/report_coverage/2n-icx/ip4-07.md
new file mode 100644
index 0000000000..f9dd72b832
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-07.md
@@ -0,0 +1,36 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-10.md b/resources/job_specs/report_coverage/2n-icx/ip4-10.md
new file mode 100644
index 0000000000..f123ac3fef
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-10.md
@@ -0,0 +1,145 @@
+# 2n-icx
+## ./ip4
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip4-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# ##### ethip4-ip4scale20k
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# ##### ethip4-ip4scale20k-rnd
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+# ##### ethip4-ip4scale200k
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# ##### ethip4-ip4scale200k-rnd
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+# ##### ethip4-ip4scale2m
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# ##### ethip4-ip4scale2m-rnd
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+#### drv_mlx5_core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-11.md b/resources/job_specs/report_coverage/2n-icx/ip4-11.md
new file mode 100644
index 0000000000..3af2cdf350
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-11.md
@@ -0,0 +1,65 @@
+# 2n-icx
+## ./ip4
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip4-ip4base-adlalwlistbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# ##### ethip4-ip4base-iacldstbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# ##### ethip4-ip4base-ipolicemarkbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+#### drv_mlx5_core
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-12.md b/resources/job_specs/report_coverage/2n-icx/ip4-12.md
new file mode 100644
index 0000000000..a9da8527d5
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-12.md
@@ -0,0 +1,45 @@
+# 2n-icx
+## ./ip4
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# ##### ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+#### drv_mlx5_core
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-13.md b/resources/job_specs/report_coverage/2n-icx/ip4-13.md
new file mode 100644
index 0000000000..8e258250c1
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-13.md
@@ -0,0 +1,45 @@
+# 2n-icx
+## ./ip4
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# ##### ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+#### drv_mlx5_core
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-14.md b/resources/job_specs/report_coverage/2n-icx/ip4-14.md
new file mode 100644
index 0000000000..5f70043118
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-14.md
@@ -0,0 +1,45 @@
+# 2n-icx
+## ./ip4
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# ##### ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+#### drv_mlx5_core
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-15.md b/resources/job_specs/report_coverage/2n-icx/ip4-15.md
new file mode 100644
index 0000000000..beb4aacd71
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-15.md
@@ -0,0 +1,68 @@
+# 2n-icx
+## ./ip4
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+# ##### ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+# ##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+# ##### ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+# ##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+# ##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+# ##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+# ##### ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+# ##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+# ##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+# ##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+# ##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+# ##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+# ##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+# ##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+# ##### ethip4tcp-ip4base-h262144-p63-s16515072-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4tcp-ip4base-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-16.md b/resources/job_specs/report_coverage/2n-icx/ip4-16.md
new file mode 100644
index 0000000000..a7245f8254
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-16.md
@@ -0,0 +1,92 @@
+# 2n-icx
+## ./ip4
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip4udp-nat44det-h1024-p63-s64512
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h1024-p63-s64512
+# ##### ethip4udp-nat44det-h16384-p63-s1032192
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h16384-p63-s1032192
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h16384-p63-s1032192
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h16384-p63-s1032192
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h16384-p63-s1032192
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h16384-p63-s1032192
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h16384-p63-s1032192
+# ##### ethip4udp-nat44det-h65536-p63-s4128758
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h65536-p63-s4128758
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h65536-p63-s4128758
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h65536-p63-s4128758
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h65536-p63-s4128758
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h65536-p63-s4128758
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h65536-p63-s4128758
+# ##### ethip4udp-nat44det-h262144-p63-s16515072
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h262144-p63-s16515072
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h262144-p63-s16515072
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h262144-p63-s16515072
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h262144-p63-s16515072
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h262144-p63-s16515072
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44det-h262144-p63-s16515072
+# ##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+# ##### ethip4udp-nat44ed-h16384-p63-s1032192-udir
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+# ##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+# ##### ethip4udp-nat44ed-h262144-p63-s16515072-udir
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+# ##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+# ##### ethip4udp-nat44ed-h16384-p63-s1032192-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+# ##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+# ##### ethip4udp-nat44ed-h262144-p63-s16515072-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+# ##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+# ##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+# ##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+# ##### ethip4udp-nat44ed-h262144-p63-s16515072-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-nat44ed-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4-17.md b/resources/job_specs/report_coverage/2n-icx/ip4-17.md
new file mode 100644
index 0000000000..087cab2eae
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4-17.md
@@ -0,0 +1,36 @@
+# 2n-icx
+## ./ip4
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip4udp-ip4base-h1024-p63-s64512-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h1024-p63-s64512-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h1024-p63-s64512-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h1024-p63-s64512-cps
+# ##### ethip4udp-ip4base-h16384-p63-s1032192-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+# ##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+# ##### ethip4udp-ip4base-h262144-p63-s16515072-cps
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+# ##### ethip4udp-ip4base-h1024-p63-s64512-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h1024-p63-s64512-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h1024-p63-s64512-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h1024-p63-s64512-tput
+# ##### ethip4udp-ip4base-h16384-p63-s1032192-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+# ##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+# ##### ethip4udp-ip4base-h262144-p63-s16515072-tput
+# 1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+# 2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+# 4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4tun-00.md b/resources/job_specs/report_coverage/2n-icx/ip4tun-00.md
new file mode 100644
index 0000000000..74ebf38703
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4tun-00.md
@@ -0,0 +1,64 @@
+# 2n-icx
+## ./ip4_tunnels
+### intel-e810cq
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+##### ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip4tun-10.md b/resources/job_specs/report_coverage/2n-icx/ip4tun-10.md
new file mode 100644
index 0000000000..302481eebe
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip4tun-10.md
@@ -0,0 +1,64 @@
+# 2n-icx
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip4--ethip4udpgeneve-1tun-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+# ##### ethip4--ethip4udpgeneve-4tun-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-4tun-ip4base
+# ##### ethip4--ethip4udpgeneve-16tun-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+# ##### ethip4--ethip4udpgeneve-64tun-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-64tun-ip4base
+# ##### ethip4--ethip4udpgeneve-256tun-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+# ##### ethip4--ethip4udpgeneve-1024tun-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1024tun-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4--ethip4udpgeneve-1024tun-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip6-00.md b/resources/job_specs/report_coverage/2n-icx/ip6-00.md
new file mode 100644
index 0000000000..6dd195c2ab
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip6-00.md
@@ -0,0 +1,65 @@
+# 2n-icx
+## ./ip6
+### intel-e810cq
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip6-01.md b/resources/job_specs/report_coverage/2n-icx/ip6-01.md
new file mode 100644
index 0000000000..5ee9a5611c
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip6-01.md
@@ -0,0 +1,125 @@
+# 2n-icx
+## ./ip6
+### intel-e810cq
+#### avf
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip6-10.md b/resources/job_specs/report_coverage/2n-icx/ip6-10.md
new file mode 100644
index 0000000000..def78cc3fa
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip6-10.md
@@ -0,0 +1,65 @@
+# 2n-spr
+## ./ip6
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip6-ip6base
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# ##### ethip6-ip6base-adlalwlistbase
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# ##### ethip6-ip6base-iacldstbase
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+#### drv_mlx5_core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/ip6-11.md b/resources/job_specs/report_coverage/2n-icx/ip6-11.md
new file mode 100644
index 0000000000..8bf767d21b
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/ip6-11.md
@@ -0,0 +1,125 @@
+# 2n-icx
+## ./ip6
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip6-ip6scale20k
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# ##### ethip6-ip6scale200k
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# ##### ethip6-ip6scale2m
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# ##### ethip6-ip6scale20k-rnd
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+# ##### ethip6-ip6scale200k-rnd
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+# ##### ethip6-ip6scale2m-rnd
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+#### drv_mlx5_core
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/l2-00.md b/resources/job_specs/report_coverage/2n-icx/l2-00.md
new file mode 100644
index 0000000000..1a4c21ab3b
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/l2-00.md
@@ -0,0 +1,85 @@
+# 2n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/l2-01.md b/resources/job_specs/report_coverage/2n-icx/l2-01.md
new file mode 100644
index 0000000000..ffbdd7b41a
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/l2-01.md
@@ -0,0 +1,65 @@
+# 2n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+#### dpdk-vfio-pci
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/l2-10.md b/resources/job_specs/report_coverage/2n-icx/l2-10.md
new file mode 100644
index 0000000000..e416dfc40e
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/l2-10.md
@@ -0,0 +1,85 @@
+# 2n-icx
+## ./l2
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### eth-l2patch
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# ##### eth-l2xcbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# ##### eth-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# ##### dot1q-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+#### drv_mlx5_core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/l2-11.md b/resources/job_specs/report_coverage/2n-icx/l2-11.md
new file mode 100644
index 0000000000..6e0ae896d2
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/l2-11.md
@@ -0,0 +1,65 @@
+# 2n-icx
+## ./l2
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### eth-l2bdscale10kmaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# ##### eth-l2bdscale100kmaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# ##### eth-l2bdscale1mmaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+#### drv_mlx5_core
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/lb-00.md b/resources/job_specs/report_coverage/2n-icx/lb-00.md
new file mode 100644
index 0000000000..b593d8772b
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/lb-00.md
@@ -0,0 +1,65 @@
+# 2n-icx
+## ./lb
+### intel-e810cq
+#### avf
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+#### dpdk-vfio-pci
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/lb-10.md b/resources/job_specs/report_coverage/2n-icx/lb-10.md
new file mode 100644
index 0000000000..a6dd326aac
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/lb-10.md
@@ -0,0 +1,65 @@
+# 2n-icx
+## ./lb
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### ethip4-loadbalancer-l3dsr
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-l3dsr
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-l3dsr
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-l3dsr
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-l3dsr
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-l3dsr
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-l3dsr
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-l3dsr
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-l3dsr
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-l3dsr
+# ##### ethip4-loadbalancer-maglev
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-maglev
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-maglev
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-maglev
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-maglev
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-maglev
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-maglev
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-maglev
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-maglev
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-maglev
+# ##### ethip4-loadbalancer-nat4
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-nat4
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-nat4
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-nat4
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-nat4
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-nat4
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-nat4
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-nat4
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-nat4
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-loadbalancer-nat4
+#### drv_mlx5_core
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/memif-00.md b/resources/job_specs/report_coverage/2n-icx/memif-00.md
new file mode 100644
index 0000000000..cc3bb4fdf0
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/memif-00.md
@@ -0,0 +1,65 @@
+# 2n-icx
+## ./container_memif
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/memif-10.md b/resources/job_specs/report_coverage/2n-icx/memif-10.md
new file mode 100644
index 0000000000..df21d124cb
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/memif-10.md
@@ -0,0 +1,65 @@
+# 2n-icx
+## ./container_memif
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+# ##### eth-l2xcbase-eth-2memif-1dcr
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# ##### ethip4-ip4base-eth-2memif-1dcr
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+#### drv_mlx5_core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/trex-00.md b/resources/job_specs/report_coverage/2n-icx/trex-00.md
new file mode 100644
index 0000000000..3d9cffa447
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/trex-00.md
@@ -0,0 +1,45 @@
+# 2n-icx
+## ./ip4
+##### ethip4-ip4base-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4-ip4base-tg
+- AND 1518b AND ndrpdr AND e810cq AND - AND ethip4-ip4base-tg
+- AND 9000b AND ndrpdr AND e810cq AND - AND ethip4-ip4base-tg
+- AND imix AND ndrpdr AND e810cq AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4-ip4scale20k-tg
+- AND 1518b AND ndrpdr AND e810cq AND - AND ethip4-ip4scale20k-tg
+- AND 9000b AND ndrpdr AND e810cq AND - AND ethip4-ip4scale20k-tg
+- AND imix AND ndrpdr AND e810cq AND - AND ethip4-ip4scale20k-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+## ./ip6
+##### ethip6-ip6base-tg
+- AND 78b AND ndrpdr AND e810cq AND - AND ethip6-ip6base-tg
+- AND 1518b AND ndrpdr AND e810cq AND - AND ethip6-ip6base-tg
+- AND 9000b AND ndrpdr AND e810cq AND - AND ethip6-ip6base-tg
+- AND imix AND ndrpdr AND e810cq AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND ndrpdr AND e810cq AND - AND ethip6-ip6scale20k-tg
+- AND 1518b AND ndrpdr AND e810cq AND - AND ethip6-ip6scale20k-tg
+- AND 9000b AND ndrpdr AND e810cq AND - AND ethip6-ip6scale20k-tg
+- AND imix AND ndrpdr AND e810cq AND - AND ethip6-ip6scale20k-tg
+## ./l2
+##### eth-l2bdscale1mmaclrn-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg
+- AND 1518b AND ndrpdr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg
+- AND 9000b AND ndrpdr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg
+- AND imix AND ndrpdr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/trex-10.md b/resources/job_specs/report_coverage/2n-icx/trex-10.md
new file mode 100644
index 0000000000..4b6f52a12b
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/trex-10.md
@@ -0,0 +1,48 @@
+# 2n-icx
+## ./ip4
+### mellanox-cx7veat
+##### ethip4-ip4base-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4base-tg
+- AND 1518b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4base-tg
+- AND 9000b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4base-tg
+- AND imix AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4scale20k-tg
+- AND 1518b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4scale20k-tg
+- AND 9000b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4scale20k-tg
+- AND imix AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4scale20k-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+## ./ip6
+### mellanox-cx7veat
+##### ethip6-ip6base-tg
+- AND 78b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6base-tg
+- AND 1518b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6base-tg
+- AND 9000b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6base-tg
+- AND imix AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6scale20k-tg
+- AND 1518b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6scale20k-tg
+- AND 9000b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6scale20k-tg
+- AND imix AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6scale20k-tg
+## ./l2
+### mellanox-cx7veat
+##### eth-l2bdscale1mmaclrn-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND eth-l2bdscale1mmaclrn-tg
+- AND 1518b AND ndrpdr AND 2p1cx7veat AND - AND eth-l2bdscale1mmaclrn-tg
+- AND 9000b AND ndrpdr AND 2p1cx7veat AND - AND eth-l2bdscale1mmaclrn-tg
+- AND imix AND ndrpdr AND 2p1cx7veat AND - AND eth-l2bdscale1mmaclrn-tg \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/vhost-00.md b/resources/job_specs/report_coverage/2n-icx/vhost-00.md
new file mode 100644
index 0000000000..88e218462a
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/vhost-00.md
@@ -0,0 +1,125 @@
+# 2n-icx
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### dpdk-vfio-pci
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-icx/vhost-10.md b/resources/job_specs/report_coverage/2n-icx/vhost-10.md
new file mode 100644
index 0000000000..43525e3087
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-icx/vhost-10.md
@@ -0,0 +1,125 @@
+# 2n-icx
+## ./vm_vhost
+### mellanox-cx7veat
+#### drv_rdma_core
+# ##### eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# ##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# ##### ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# ##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### drv_mlx5_core
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/dpdk-00.md b/resources/job_specs/report_coverage/2n-spr/dpdk-00.md
new file mode 100644
index 0000000000..19a170ed6e
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/dpdk-00.md
@@ -0,0 +1,67 @@
+# 2n-spr
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/gso-00.md b/resources/job_specs/report_coverage/2n-spr/gso-00.md
new file mode 100644
index 0000000000..86c9d7ab68
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/gso-00.md
@@ -0,0 +1,23 @@
+# 2n-spr
+## ./gso
+### intel-e810cq
+#### drv_tap
+##### ethip4-ip4base-2tap-gso
+1c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+#### drv_tap
+##### ethip4-ip4base-2tap
+1c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost-gso
+1c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost
+1c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/hoststack-00.md b/resources/job_specs/report_coverage/2n-spr/hoststack-00.md
new file mode 100644
index 0000000000..74dd03e3a0
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/hoststack-00.md
@@ -0,0 +1,42 @@
+# 2n-spr
+## ./hoststack
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 64b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 64b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 1024b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 1024b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 2000b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 2000b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 64b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 64b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 1024b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 1024b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 2000b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 2000b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 64b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 64b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 1024b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 1024b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 2000b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 2000b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 64b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 64b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 1024b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 1024b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 2000b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 2000b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-00.md b/resources/job_specs/report_coverage/2n-spr/ip4-00.md
new file mode 100644
index 0000000000..93e9bee4ea
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-00.md
@@ -0,0 +1,145 @@
+# 2n-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-01.md b/resources/job_specs/report_coverage/2n-spr/ip4-01.md
new file mode 100644
index 0000000000..1cec772a21
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-01.md
@@ -0,0 +1,65 @@
+# 2n-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-02.md b/resources/job_specs/report_coverage/2n-spr/ip4-02.md
new file mode 100644
index 0000000000..dd9846add6
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-02.md
@@ -0,0 +1,45 @@
+# 2n-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-03.md b/resources/job_specs/report_coverage/2n-spr/ip4-03.md
new file mode 100644
index 0000000000..a29e67bccb
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-03.md
@@ -0,0 +1,45 @@
+# 2n-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-04.md b/resources/job_specs/report_coverage/2n-spr/ip4-04.md
new file mode 100644
index 0000000000..8245cc9a85
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-04.md
@@ -0,0 +1,45 @@
+# 2n-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-05.md b/resources/job_specs/report_coverage/2n-spr/ip4-05.md
new file mode 100644
index 0000000000..37e91c1ebe
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-05.md
@@ -0,0 +1,68 @@
+# 2n-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-06.md b/resources/job_specs/report_coverage/2n-spr/ip4-06.md
new file mode 100644
index 0000000000..90e61d2d4e
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-06.md
@@ -0,0 +1,92 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h16384-p63-s1032192-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-udir
+##### ethip4udp-nat44ed-h65536-p63-s4128768-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-udir
+##### ethip4udp-nat44ed-h262144-p63-s16515072-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-nat44ed-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-07.md b/resources/job_specs/report_coverage/2n-spr/ip4-07.md
new file mode 100644
index 0000000000..58ba2864bb
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-07.md
@@ -0,0 +1,36 @@
+# 2n-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-10.md b/resources/job_specs/report_coverage/2n-spr/ip4-10.md
new file mode 100644
index 0000000000..a91123ef0d
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-10.md
@@ -0,0 +1,74 @@
+# 2n-spr
+## ./ip4
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-11.md b/resources/job_specs/report_coverage/2n-spr/ip4-11.md
new file mode 100644
index 0000000000..cd87a993f2
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-11.md
@@ -0,0 +1,34 @@
+# 2n-spr
+## ./ip4
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-12.md b/resources/job_specs/report_coverage/2n-spr/ip4-12.md
new file mode 100644
index 0000000000..68b71d3ff5
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-12.md
@@ -0,0 +1,24 @@
+# 2n-spr
+## ./ip4
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-13.md b/resources/job_specs/report_coverage/2n-spr/ip4-13.md
new file mode 100644
index 0000000000..ea26e486c2
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-13.md
@@ -0,0 +1,24 @@
+# 2n-spr
+## ./ip4
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4-14.md b/resources/job_specs/report_coverage/2n-spr/ip4-14.md
new file mode 100644
index 0000000000..c5139b6a35
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4-14.md
@@ -0,0 +1,24 @@
+# 2n-spr
+## ./ip4
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip4tun-00.md b/resources/job_specs/report_coverage/2n-spr/ip4tun-00.md
new file mode 100644
index 0000000000..5531403617
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip4tun-00.md
@@ -0,0 +1,64 @@
+# 2n-spr
+## ./ip4_tunnels
+### intel-e810cq
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+##### ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip6-00.md b/resources/job_specs/report_coverage/2n-spr/ip6-00.md
new file mode 100644
index 0000000000..4f0d13bef1
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip6-00.md
@@ -0,0 +1,65 @@
+# 2n-spr
+## ./ip6
+### intel-e810cq
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip6-01.md b/resources/job_specs/report_coverage/2n-spr/ip6-01.md
new file mode 100644
index 0000000000..94a5d241c2
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip6-01.md
@@ -0,0 +1,125 @@
+# 2n-spr
+## ./ip6
+### intel-e810cq
+#### avf
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip6-10.md b/resources/job_specs/report_coverage/2n-spr/ip6-10.md
new file mode 100644
index 0000000000..62ee26ec22
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip6-10.md
@@ -0,0 +1,34 @@
+# 2n-icx
+## ./ip6
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/ip6-11.md b/resources/job_specs/report_coverage/2n-spr/ip6-11.md
new file mode 100644
index 0000000000..02d2d6bb4b
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/ip6-11.md
@@ -0,0 +1,64 @@
+# 2n-spr
+## ./ip6
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/l2-00.md b/resources/job_specs/report_coverage/2n-spr/l2-00.md
new file mode 100644
index 0000000000..baabce1685
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/l2-00.md
@@ -0,0 +1,85 @@
+# 2n-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/l2-01.md b/resources/job_specs/report_coverage/2n-spr/l2-01.md
new file mode 100644
index 0000000000..2aa74b4307
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/l2-01.md
@@ -0,0 +1,65 @@
+# 2n-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+#### dpdk-vfio-pci
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/l2-10.md b/resources/job_specs/report_coverage/2n-spr/l2-10.md
new file mode 100644
index 0000000000..9c92de7726
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/l2-10.md
@@ -0,0 +1,44 @@
+# 2n-spr
+## ./l2
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/l2-11.md b/resources/job_specs/report_coverage/2n-spr/l2-11.md
new file mode 100644
index 0000000000..cbcc727cd6
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/l2-11.md
@@ -0,0 +1,34 @@
+# 2n-spr
+## ./l2
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/lb-00.md b/resources/job_specs/report_coverage/2n-spr/lb-00.md
new file mode 100644
index 0000000000..07002c2b43
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/lb-00.md
@@ -0,0 +1,65 @@
+# 2n-spr
+## ./lb
+### intel-e810cq
+#### avf
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-loadbalancer-nat4
+#### dpdk-vfio-pci
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-loadbalancer-nat4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/lb-10.md b/resources/job_specs/report_coverage/2n-spr/lb-10.md
new file mode 100644
index 0000000000..e3ab16262d
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/lb-10.md
@@ -0,0 +1,34 @@
+# 2n-spr
+## ./lb
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-loadbalancer-nat4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/memif-00.md b/resources/job_specs/report_coverage/2n-spr/memif-00.md
new file mode 100644
index 0000000000..be544dd81b
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/memif-00.md
@@ -0,0 +1,93 @@
+# 2n-spr
+## ./container_memif
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/memif-10.md b/resources/job_specs/report_coverage/2n-spr/memif-10.md
new file mode 100644
index 0000000000..ac40f1cfe8
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/memif-10.md
@@ -0,0 +1,48 @@
+# 2n-spr
+## ./container_memif
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/trex-00.md b/resources/job_specs/report_coverage/2n-spr/trex-00.md
new file mode 100644
index 0000000000..4922080d1f
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/trex-00.md
@@ -0,0 +1,48 @@
+# 2n-spr
+## ./ip4
+### intel-e810cq
+##### ethip4-ip4base-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4-ip4base-tg
+- AND 1518b AND ndrpdr AND e810cq AND - AND ethip4-ip4base-tg
+- AND 9000b AND ndrpdr AND e810cq AND - AND ethip4-ip4base-tg
+- AND imix AND ndrpdr AND e810cq AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4-ip4scale20k-tg
+- AND 1518b AND ndrpdr AND e810cq AND - AND ethip4-ip4scale20k-tg
+- AND 9000b AND ndrpdr AND e810cq AND - AND ethip4-ip4scale20k-tg
+- AND imix AND ndrpdr AND e810cq AND - AND ethip4-ip4scale20k-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+## ./ip6
+### intel-e810cq
+##### ethip6-ip6base-tg
+- AND 78b AND ndrpdr AND e810cq AND - AND ethip6-ip6base-tg
+- AND 1518b AND ndrpdr AND e810cq AND - AND ethip6-ip6base-tg
+- AND 9000b AND ndrpdr AND e810cq AND - AND ethip6-ip6base-tg
+- AND imix AND ndrpdr AND e810cq AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND ndrpdr AND e810cq AND - AND ethip6-ip6scale20k-tg
+- AND 1518b AND ndrpdr AND e810cq AND - AND ethip6-ip6scale20k-tg
+- AND 9000b AND ndrpdr AND e810cq AND - AND ethip6-ip6scale20k-tg
+- AND imix AND ndrpdr AND e810cq AND - AND ethip6-ip6scale20k-tg
+## ./l2
+### intel-e810cq
+##### eth-l2bdscale1mmaclrn-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg
+- AND 1518b AND ndrpdr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg
+- AND 9000b AND ndrpdr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg
+- AND imix AND ndrpdr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/trex-10.md b/resources/job_specs/report_coverage/2n-spr/trex-10.md
new file mode 100644
index 0000000000..1229678bc2
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/trex-10.md
@@ -0,0 +1,48 @@
+# 2n-spr
+## ./ip4
+### mellanox-cx7veat
+##### ethip4-ip4base-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4base-tg
+- AND 1518b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4base-tg
+- AND 9000b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4base-tg
+- AND imix AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4scale20k-tg
+- AND 1518b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4scale20k-tg
+- AND 9000b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4scale20k-tg
+- AND imix AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4scale20k-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+## ./ip6
+### mellanox-cx7veat
+##### ethip6-ip6base-tg
+- AND 78b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6base-tg
+- AND 1518b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6base-tg
+- AND 9000b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6base-tg
+- AND imix AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6scale20k-tg
+- AND 1518b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6scale20k-tg
+- AND 9000b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6scale20k-tg
+- AND imix AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6scale20k-tg
+## ./l2
+### mellanox-cx7veat
+##### eth-l2bdscale1mmaclrn-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND eth-l2bdscale1mmaclrn-tg
+- AND 1518b AND ndrpdr AND 2p1cx7veat AND - AND eth-l2bdscale1mmaclrn-tg
+- AND 9000b AND ndrpdr AND 2p1cx7veat AND - AND eth-l2bdscale1mmaclrn-tg
+- AND imix AND ndrpdr AND 2p1cx7veat AND - AND eth-l2bdscale1mmaclrn-tg \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/vhost-00.md b/resources/job_specs/report_coverage/2n-spr/vhost-00.md
new file mode 100644
index 0000000000..6dff36fefb
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/vhost-00.md
@@ -0,0 +1,125 @@
+# 2n-spr
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### dpdk-vfio-pci
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-spr/vhost-10.md b/resources/job_specs/report_coverage/2n-spr/vhost-10.md
new file mode 100644
index 0000000000..3d92f58213
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-spr/vhost-10.md
@@ -0,0 +1,64 @@
+# 2n-spr
+## ./vm_vhost
+### mellanox-cx7veat
+#### drv_mlx5_core
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-tx2/dpdk-00.md b/resources/job_specs/report_coverage/2n-tx2/dpdk-00.md
new file mode 100644
index 0000000000..fa850c1103
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/dpdk-00.md
@@ -0,0 +1,29 @@
+# 2n-tx2
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_coverage/2n-tx2/ip4-00.md b/resources/job_specs/report_coverage/2n-tx2/ip4-00.md
new file mode 100644
index 0000000000..6a786ee37d
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/ip4-00.md
@@ -0,0 +1,109 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/ip4-01.md b/resources/job_specs/report_coverage/2n-tx2/ip4-01.md
new file mode 100644
index 0000000000..b47109bd0f
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/ip4-01.md
@@ -0,0 +1,57 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/ip4-02.md b/resources/job_specs/report_coverage/2n-tx2/ip4-02.md
new file mode 100644
index 0000000000..e2a5aed1c5
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/ip4-02.md
@@ -0,0 +1,44 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/ip4-03.md b/resources/job_specs/report_coverage/2n-tx2/ip4-03.md
new file mode 100644
index 0000000000..695446736b
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/ip4-03.md
@@ -0,0 +1,44 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/ip4-04.md b/resources/job_specs/report_coverage/2n-tx2/ip4-04.md
new file mode 100644
index 0000000000..aee115510c
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/ip4-04.md
@@ -0,0 +1,44 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/ip4-05.md b/resources/job_specs/report_coverage/2n-tx2/ip4-05.md
new file mode 100644
index 0000000000..8e2c0efc04
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/ip4-05.md
@@ -0,0 +1,50 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/ip4-06.md b/resources/job_specs/report_coverage/2n-tx2/ip4-06.md
new file mode 100644
index 0000000000..f241fcc4c5
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/ip4-06.md
@@ -0,0 +1,50 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h16384-p63-s1032192-cps
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h16384-p63-s1032192-tput
+1c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+2c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+4c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h16384-p63-s1032192-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput
+1c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+2c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+4c AND 100b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-h262144-p63-s16515072-tput
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/ip6-00.md b/resources/job_specs/report_coverage/2n-tx2/ip6-00.md
new file mode 100644
index 0000000000..ce3cba3dd9
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/ip6-00.md
@@ -0,0 +1,57 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/ip6-01.md b/resources/job_specs/report_coverage/2n-tx2/ip6-01.md
new file mode 100644
index 0000000000..912bfb7362
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/ip6-01.md
@@ -0,0 +1,57 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale2m
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/l2-00.md b/resources/job_specs/report_coverage/2n-tx2/l2-00.md
new file mode 100644
index 0000000000..a1e1821d88
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/l2-00.md
@@ -0,0 +1,70 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/l2-01.md b/resources/job_specs/report_coverage/2n-tx2/l2-01.md
new file mode 100644
index 0000000000..5028338779
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/l2-01.md
@@ -0,0 +1,57 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/l2-02.md b/resources/job_specs/report_coverage/2n-tx2/l2-02.md
new file mode 100644
index 0000000000..062c6245b3
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/l2-02.md
@@ -0,0 +1,44 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/l2-03.md b/resources/job_specs/report_coverage/2n-tx2/l2-03.md
new file mode 100644
index 0000000000..e7abbcda61
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/l2-03.md
@@ -0,0 +1,44 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-tx2/l2-04.md b/resources/job_specs/report_coverage/2n-tx2/l2-04.md
new file mode 100644
index 0000000000..e2bbd8b0c6
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-tx2/l2-04.md
@@ -0,0 +1,31 @@
+# 2n-tx2
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/2n-zn2/dpdk-00.md b/resources/job_specs/report_coverage/2n-zn2/dpdk-00.md
new file mode 100644
index 0000000000..2ea2001715
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/dpdk-00.md
@@ -0,0 +1,23 @@
+# 2n-zn2
+### intel-xxv710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/gso-00.md b/resources/job_specs/report_coverage/2n-zn2/gso-00.md
new file mode 100644
index 0000000000..567654f1f7
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/gso-00.md
@@ -0,0 +1,23 @@
+# 2n-zn2
+## ./gso
+### intel-xxv710
+#### drv_tap
+##### ethip4-ip4base-2tap-gso
+1c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+#### drv_tap
+##### ethip4-ip4base-2tap
+1c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost-gso
+1c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost
+1c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/ip4-00.md b/resources/job_specs/report_coverage/2n-zn2/ip4-00.md
new file mode 100644
index 0000000000..c71a959457
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/ip4-00.md
@@ -0,0 +1,208 @@
+# 2n-zn2
+## ./ip4
+### intel-xxv710
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+### mellanox-cx556a
+#### rdma-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale2m-rnd
+#### mlx5_core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/ip4-01.md b/resources/job_specs/report_coverage/2n-zn2/ip4-01.md
new file mode 100644
index 0000000000..9a343b3993
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/ip4-01.md
@@ -0,0 +1,65 @@
+# 2n-zn2
+## ./ip4
+### intel-xxv710
+#### avf
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/ip4-02.md b/resources/job_specs/report_coverage/2n-zn2/ip4-02.md
new file mode 100644
index 0000000000..fde114b0ac
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/ip4-02.md
@@ -0,0 +1,45 @@
+# 2n-zn2
+## ./ip4
+### intel-xxv710
+#### avf
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/ip4-03.md b/resources/job_specs/report_coverage/2n-zn2/ip4-03.md
new file mode 100644
index 0000000000..e057149175
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/ip4-03.md
@@ -0,0 +1,45 @@
+# 2n-zn2
+## ./ip4
+### intel-xxv710
+#### avf
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/ip4-04.md b/resources/job_specs/report_coverage/2n-zn2/ip4-04.md
new file mode 100644
index 0000000000..deb67cc8a2
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/ip4-04.md
@@ -0,0 +1,45 @@
+# 2n-zn2
+## ./ip4
+### intel-xxv710
+#### avf
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/ip4-05.md b/resources/job_specs/report_coverage/2n-zn2/ip4-05.md
new file mode 100644
index 0000000000..7eebfdfecc
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/ip4-05.md
@@ -0,0 +1,105 @@
+# 2n-zn2
+## ./ip4
+### intel-xxv710
+#### avf
+##### ethip4udp-nat44det-h1-p63-s63
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1-p63-s63
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+#### dpdk-vfio-pci
+##### ethip4udp-nat44det-h1-p63-s63
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1-p63-s63
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h16384-p63-s1032192
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4udp-nat44det-h262144-p63-s16515072 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/ip4tun-00.md b/resources/job_specs/report_coverage/2n-zn2/ip4tun-00.md
new file mode 100644
index 0000000000..13c25ff313
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/ip4tun-00.md
@@ -0,0 +1,64 @@
+# 2n-zn2
+## ./ip4_tunnels
+### intel-xxv710
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+##### ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1024tun-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/ip6-00.md b/resources/job_specs/report_coverage/2n-zn2/ip6-00.md
new file mode 100644
index 0000000000..7686ee3be6
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/ip6-00.md
@@ -0,0 +1,87 @@
+# 2n-zn2
+### intel-xxv710
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base-iacldstbase
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+### mellanox-cx556a
+#### rdma-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+#### mlx5_core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/ip6-01.md b/resources/job_specs/report_coverage/2n-zn2/ip6-01.md
new file mode 100644
index 0000000000..45096f2e11
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/ip6-01.md
@@ -0,0 +1,168 @@
+# 2n-zn2
+## ./ip6
+### intel-xxv710
+#### avf
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+### mellanox-cx556a
+#### rdma-core
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale2m-rnd
+#### mlx5_core
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/l2-00.md b/resources/job_specs/report_coverage/2n-zn2/l2-00.md
new file mode 100644
index 0000000000..5aa5a10307
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/l2-00.md
@@ -0,0 +1,148 @@
+# 2n-zn2
+## ./l2
+### intel-xxv710
+#### avf
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+#### mlx5_core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/l2-01.md b/resources/job_specs/report_coverage/2n-zn2/l2-01.md
new file mode 100644
index 0000000000..c792e28697
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/l2-01.md
@@ -0,0 +1,88 @@
+# 2n-zn2
+## ./l2
+### intel-xxv710
+#### avf
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale1mmaclrn
+#### dpdk-vfio-pci
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+#### mlx5_core
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/lb-00.md b/resources/job_specs/report_coverage/2n-zn2/lb-00.md
new file mode 100644
index 0000000000..be5d748070
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/lb-00.md
@@ -0,0 +1,65 @@
+# 2n-zn2
+## ./lb
+### intel-xxv710
+#### avf
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-loadbalancer-nat4
+#### dpdk-vfio-pci
+##### ethip4-loadbalancer-l3dsr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-l3dsr
+##### ethip4-loadbalancer-maglev
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-maglev
+##### ethip4-loadbalancer-nat4
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-loadbalancer-nat4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/memif-00.md b/resources/job_specs/report_coverage/2n-zn2/memif-00.md
new file mode 100644
index 0000000000..6dff4a63ca
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/memif-00.md
@@ -0,0 +1,65 @@
+# 2n-zn2
+## ./container_memif
+### intel-xxv710
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/2n-zn2/vhost-00.md b/resources/job_specs/report_coverage/2n-zn2/vhost-00.md
new file mode 100644
index 0000000000..24cb9070d0
--- /dev/null
+++ b/resources/job_specs/report_coverage/2n-zn2/vhost-00.md
@@ -0,0 +1,125 @@
+# 2n-zn2
+## ./vm_vhost
+### intel-xxv710
+#### avf
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### dpdk-vfio-pci
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-alt/dpdk-00.md b/resources/job_specs/report_coverage/3n-alt/dpdk-00.md
new file mode 100644
index 0000000000..47ba284f1d
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/dpdk-00.md
@@ -0,0 +1,11 @@
+# 3n-alt
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_coverage/3n-alt/dpdk-10.md b/resources/job_specs/report_coverage/3n-alt/dpdk-10.md
new file mode 100644
index 0000000000..8b41b67c49
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/dpdk-10.md
@@ -0,0 +1,29 @@
+# 3n-alt
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_coverage/3n-alt/ip4-00.md b/resources/job_specs/report_coverage/3n-alt/ip4-00.md
new file mode 100644
index 0000000000..ccda7031f9
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip4-00.md
@@ -0,0 +1,21 @@
+# 3n-alt
+## ./ip4
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4scale20k
diff --git a/resources/job_specs/report_coverage/3n-alt/ip4-01.md b/resources/job_specs/report_coverage/3n-alt/ip4-01.md
new file mode 100644
index 0000000000..e0da97bb62
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip4-01.md
@@ -0,0 +1,29 @@
+# 3n-alt
+## ./ip4
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+#### avf
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base-ipolicemarkbase
diff --git a/resources/job_specs/report_coverage/3n-alt/ip4-02.md b/resources/job_specs/report_coverage/3n-alt/ip4-02.md
new file mode 100644
index 0000000000..595aa42c58
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip4-02.md
@@ -0,0 +1,37 @@
+# 3n-alt
+## ./ip4
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+##### ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+##### ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+#### avf
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+##### ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+##### ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3n-alt/ip4-10.md b/resources/job_specs/report_coverage/3n-alt/ip4-10.md
new file mode 100644
index 0000000000..02a196529c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip4-10.md
@@ -0,0 +1,56 @@
+# 3n-alt
+## ./ip4
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
diff --git a/resources/job_specs/report_coverage/3n-alt/ip4-11.md b/resources/job_specs/report_coverage/3n-alt/ip4-11.md
new file mode 100644
index 0000000000..954c412c90
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip4-11.md
@@ -0,0 +1,43 @@
+# 3n-alt
+## ./ip4
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
diff --git a/resources/job_specs/report_coverage/3n-alt/ip4-12.md b/resources/job_specs/report_coverage/3n-alt/ip4-12.md
new file mode 100644
index 0000000000..88b7e53525
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip4-12.md
@@ -0,0 +1,30 @@
+# 3n-alt
+## ./ip4
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3n-alt/ip4-13.md b/resources/job_specs/report_coverage/3n-alt/ip4-13.md
new file mode 100644
index 0000000000..4e5f1f91bc
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip4-13.md
@@ -0,0 +1,30 @@
+# 3n-alt
+## ./ip4
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+##### ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3n-alt/ip4tun-00.md b/resources/job_specs/report_coverage/3n-alt/ip4tun-00.md
new file mode 100644
index 0000000000..fa199a9216
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip4tun-00.md
@@ -0,0 +1,21 @@
+# 3n-alt
+## ./ip4_tunnels
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4vxlan-l2xcbase
diff --git a/resources/job_specs/report_coverage/3n-alt/ip4tun-10.md b/resources/job_specs/report_coverage/3n-alt/ip4tun-10.md
new file mode 100644
index 0000000000..1a3ff89774
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip4tun-10.md
@@ -0,0 +1,30 @@
+# 3n-alt
+## ./ip4_tunnels
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
diff --git a/resources/job_specs/report_coverage/3n-alt/ip6-00.md b/resources/job_specs/report_coverage/3n-alt/ip6-00.md
new file mode 100644
index 0000000000..3ba9ce61e7
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip6-00.md
@@ -0,0 +1,21 @@
+# 3n-alt
+## ./ip6
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND xl710 AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND xl710 AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND xl710 AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND xl710 AND drv_avf AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND xl710 AND drv_avf AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND xl710 AND drv_avf AND ethip6-ip6scale20k
diff --git a/resources/job_specs/report_coverage/3n-alt/ip6-10.md b/resources/job_specs/report_coverage/3n-alt/ip6-10.md
new file mode 100644
index 0000000000..6cb1c99552
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip6-10.md
@@ -0,0 +1,43 @@
+# 3n-alt
+## ./ip6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
diff --git a/resources/job_specs/report_coverage/3n-alt/ip6-11.md b/resources/job_specs/report_coverage/3n-alt/ip6-11.md
new file mode 100644
index 0000000000..5f6decc6f6
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/ip6-11.md
@@ -0,0 +1,43 @@
+# 3n-alt
+## ./ip6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
diff --git a/resources/job_specs/report_coverage/3n-alt/l2-00.md b/resources/job_specs/report_coverage/3n-alt/l2-00.md
new file mode 100644
index 0000000000..0bac8b3629
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/l2-00.md
@@ -0,0 +1,45 @@
+# 3n-alt
+## ./l2
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+#### avf
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdscale10kmaclrn
diff --git a/resources/job_specs/report_coverage/3n-alt/l2-01.md b/resources/job_specs/report_coverage/3n-alt/l2-01.md
new file mode 100644
index 0000000000..b365251894
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/l2-01.md
@@ -0,0 +1,45 @@
+# 3n-alt
+## ./l2
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+#### avf
+##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3n-alt/l2-10.md b/resources/job_specs/report_coverage/3n-alt/l2-10.md
new file mode 100644
index 0000000000..5604ad18a5
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/l2-10.md
@@ -0,0 +1,56 @@
+# 3n-alt
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
diff --git a/resources/job_specs/report_coverage/3n-alt/l2-11.md b/resources/job_specs/report_coverage/3n-alt/l2-11.md
new file mode 100644
index 0000000000..c74375207d
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/l2-11.md
@@ -0,0 +1,43 @@
+# 3n-alt
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
diff --git a/resources/job_specs/report_coverage/3n-alt/l2-12.md b/resources/job_specs/report_coverage/3n-alt/l2-12.md
new file mode 100644
index 0000000000..942a609146
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/l2-12.md
@@ -0,0 +1,30 @@
+# 3n-alt
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3n-alt/l2-13.md b/resources/job_specs/report_coverage/3n-alt/l2-13.md
new file mode 100644
index 0000000000..0bd073c44e
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/l2-13.md
@@ -0,0 +1,30 @@
+# 3n-alt
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3n-alt/l2-14.md b/resources/job_specs/report_coverage/3n-alt/l2-14.md
new file mode 100644
index 0000000000..d70172965c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/l2-14.md
@@ -0,0 +1,17 @@
+# 3n-alt
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3n-alt/memif-10.md b/resources/job_specs/report_coverage/3n-alt/memif-10.md
new file mode 100644
index 0000000000..55714e3f77
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/memif-10.md
@@ -0,0 +1,20 @@
+# 3n-alt
+## ./container_memif
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
diff --git a/resources/job_specs/report_coverage/3n-alt/srv6-10.md b/resources/job_specs/report_coverage/3n-alt/srv6-10.md
new file mode 100644
index 0000000000..85f5a07e06
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/srv6-10.md
@@ -0,0 +1,43 @@
+# 3n-alt
+## ./srv6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
diff --git a/resources/job_specs/report_coverage/3n-alt/srv6-11.md b/resources/job_specs/report_coverage/3n-alt/srv6-11.md
new file mode 100644
index 0000000000..3d4d501dc7
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/srv6-11.md
@@ -0,0 +1,43 @@
+# 3n-alt
+## ./srv6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
diff --git a/resources/job_specs/report_coverage/3n-alt/vhost-10.md b/resources/job_specs/report_coverage/3n-alt/vhost-10.md
new file mode 100644
index 0000000000..e04c15e133
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/vhost-10.md
@@ -0,0 +1,82 @@
+# 3n-alt
+## ./vm_vhost
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
diff --git a/resources/job_specs/report_coverage/3n-alt/vhost-11.md b/resources/job_specs/report_coverage/3n-alt/vhost-11.md
new file mode 100644
index 0000000000..fda225d818
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-alt/vhost-11.md
@@ -0,0 +1,30 @@
+# 3n-alt
+## ./vm_vhost
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_coverage/3n-aws/vpp-00.md b/resources/job_specs/report_coverage/3n-aws/vpp-00.md
new file mode 100644
index 0000000000..b35e0f88c3
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-aws/vpp-00.md
@@ -0,0 +1,27 @@
+# 3n-aws
+## ./crypto
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+## ./ip4
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-c6in/vpp-00.md b/resources/job_specs/report_coverage/3n-c6in/vpp-00.md
new file mode 100644
index 0000000000..d29ab4e252
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-c6in/vpp-00.md
@@ -0,0 +1,27 @@
+# 3n-c6in
+## ./crypto
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+## ./ip4
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
diff --git a/resources/job_specs/report_coverage/3n-c7gn/vpp-00.md b/resources/job_specs/report_coverage/3n-c7gn/vpp-00.md
new file mode 100644
index 0000000000..9925139e7e
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-c7gn/vpp-00.md
@@ -0,0 +1,27 @@
+# 3n-c7gn
+## ./crypto
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+## ./ip4
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-00.md b/resources/job_specs/report_coverage/3n-icx/crypto-00.md
new file mode 100644
index 0000000000..0716402b8d
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-00.md
@@ -0,0 +1,145 @@
+# 3n-icx
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-01.md b/resources/job_specs/report_coverage/3n-icx/crypto-01.md
new file mode 100644
index 0000000000..4d705d7119
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-01.md
@@ -0,0 +1,57 @@
+# 3n-icx
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-02.md b/resources/job_specs/report_coverage/3n-icx/crypto-02.md
new file mode 100644
index 0000000000..6dad318b31
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-02.md
@@ -0,0 +1,49 @@
+# 3n-icx
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-03.md b/resources/job_specs/report_coverage/3n-icx/crypto-03.md
new file mode 100644
index 0000000000..3f6e0b7de0
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-03.md
@@ -0,0 +1,49 @@
+# 3n-icx
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-04.md b/resources/job_specs/report_coverage/3n-icx/crypto-04.md
new file mode 100644
index 0000000000..bd04621981
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-04.md
@@ -0,0 +1,221 @@
+# 3n-icx
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-05.md b/resources/job_specs/report_coverage/3n-icx/crypto-05.md
new file mode 100644
index 0000000000..35c93a428a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-05.md
@@ -0,0 +1,34 @@
+# 3n-icx
+## ./crypto
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-10.md b/resources/job_specs/report_coverage/3n-icx/crypto-10.md
new file mode 100644
index 0000000000..2c34efe707
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-10.md
@@ -0,0 +1,145 @@
+# 3n-icx
+## ./crypto
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# ##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+# ##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# ##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+#### mlx5-core
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-11.md b/resources/job_specs/report_coverage/3n-icx/crypto-11.md
new file mode 100644
index 0000000000..841836c986
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-11.md
@@ -0,0 +1,57 @@
+# 3n-icx
+## ./crypto
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# ##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+#### mlx5-core
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-12.md b/resources/job_specs/report_coverage/3n-icx/crypto-12.md
new file mode 100644
index 0000000000..5dbe9eaf7c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-12.md
@@ -0,0 +1,49 @@
+# 3n-icx
+## ./crypto
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+#### mlx5-core
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-13.md b/resources/job_specs/report_coverage/3n-icx/crypto-13.md
new file mode 100644
index 0000000000..988327af45
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-13.md
@@ -0,0 +1,49 @@
+# 3n-icx
+## ./crypto
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+#### mlx5-core
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/crypto-14.md b/resources/job_specs/report_coverage/3n-icx/crypto-14.md
new file mode 100644
index 0000000000..81a994b3d6
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/crypto-14.md
@@ -0,0 +1,221 @@
+# 3n-icx
+## ./crypto
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# ##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# ##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# ##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# ##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# ##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# ##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# ##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+#### mlx5-core
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/dpdk-00.md b/resources/job_specs/report_coverage/3n-icx/dpdk-00.md
new file mode 100644
index 0000000000..51950da5f5
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/dpdk-00.md
@@ -0,0 +1,67 @@
+# 3n-icx
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/hoststack-00.md b/resources/job_specs/report_coverage/3n-icx/hoststack-00.md
new file mode 100644
index 0000000000..1fb5cab06f
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/hoststack-00.md
@@ -0,0 +1,38 @@
+# 3n-icx
+## ./hoststack
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-ip4tcpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4tcpbase-ldpreload-iperf3
+##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpbase-ldpreload-iperf3
+##### eth-ip4udpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpquicbase-vppecho
+1c AND 1280b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpquicbase-vppecho
+##### eth-ip4udpquicscale1cl10s-vppecho
+1c AND 1280b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpquicscale1cl10s-vppecho
+##### eth-ip4udpquicscale10cl1s-vppecho
+1c AND 1280b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpquicscale10cl1s-vppecho
+##### eth-ip4udpquicscale10cl10s-vppecho
+1c AND 1280b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpquicscale10cl10s-vppecho
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-ip4tcpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4tcpbase-ldpreload-iperf3
+##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpbase-ldpreload-iperf3
+##### eth-ip4udpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpquicbase-vppecho
+1c AND 1280b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpquicbase-vppecho
+##### eth-ip4udpquicscale1cl10s-vppecho
+1c AND 1280b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpquicscale1cl10s-vppecho
+##### eth-ip4udpquicscale10cl1s-vppecho
+1c AND 1280b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpquicscale10cl1s-vppecho
+##### eth-ip4udpquicscale10cl10s-vppecho
+1c AND 1280b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpquicscale10cl10s-vppecho \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-00.md b/resources/job_specs/report_coverage/3n-icx/ip4-00.md
new file mode 100644
index 0000000000..6e2cf10793
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-00.md
@@ -0,0 +1,85 @@
+# 3n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-01.md b/resources/job_specs/report_coverage/3n-icx/ip4-01.md
new file mode 100644
index 0000000000..699172eff1
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-01.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-02.md b/resources/job_specs/report_coverage/3n-icx/ip4-02.md
new file mode 100644
index 0000000000..319b60c590
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-02.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-03.md b/resources/job_specs/report_coverage/3n-icx/ip4-03.md
new file mode 100644
index 0000000000..2d4be8764c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-03.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+##### ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+##### ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-04.md b/resources/job_specs/report_coverage/3n-icx/ip4-04.md
new file mode 100644
index 0000000000..13b12b10c6
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-04.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-05.md b/resources/job_specs/report_coverage/3n-icx/ip4-05.md
new file mode 100644
index 0000000000..06feb197d8
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-05.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+##### ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+##### ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-06.md b/resources/job_specs/report_coverage/3n-icx/ip4-06.md
new file mode 100644
index 0000000000..c056554c4f
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-06.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+##### ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+##### ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-07.md b/resources/job_specs/report_coverage/3n-icx/ip4-07.md
new file mode 100644
index 0000000000..7cd8f81cb9
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-07.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-10.md b/resources/job_specs/report_coverage/3n-icx/ip4-10.md
new file mode 100644
index 0000000000..9e8bedf250
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-10.md
@@ -0,0 +1,85 @@
+# 3n-icx
+## ./ip4
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4-ip4base
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base
+# ##### ethip4-ip4scale20k
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale20k
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale20k
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale20k
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale20k
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale20k
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale20k
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale20k
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale20k
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale20k
+# ##### ethip4-ip4scale200k
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale200k
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale200k
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale200k
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale200k
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale200k
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale200k
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale200k
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale200k
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale200k
+# ##### ethip4-ip4scale2m
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale2m
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale2m
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale2m
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale2m
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale2m
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale2m
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale2m
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale2m
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4scale2m
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale200k
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4scale2m \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-11.md b/resources/job_specs/report_coverage/3n-icx/ip4-11.md
new file mode 100644
index 0000000000..fda61ac6ad
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-11.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./ip4
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4-ip4base-adlalwlistbase
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# ##### ethip4-ip4base-iacldstbase
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# ##### ethip4-ip4base-ipolicemarkbase
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+#### mlx5-core
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-12.md b/resources/job_specs/report_coverage/3n-icx/ip4-12.md
new file mode 100644
index 0000000000..dd51823ea3
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-12.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# ##### ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-13.md b/resources/job_specs/report_coverage/3n-icx/ip4-13.md
new file mode 100644
index 0000000000..4848f00774
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-13.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4udp-ip4base-iacl10sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# ##### ethip4udp-ip4base-iacl10sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+##### ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-14.md b/resources/job_specs/report_coverage/3n-icx/ip4-14.md
new file mode 100644
index 0000000000..7fc5f89ee5
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-14.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# ##### ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-15.md b/resources/job_specs/report_coverage/3n-icx/ip4-15.md
new file mode 100644
index 0000000000..e649564f22
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-15.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4udp-ip4base-oacl1sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# ##### ethip4udp-ip4base-oacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+##### ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-16.md b/resources/job_specs/report_coverage/3n-icx/ip4-16.md
new file mode 100644
index 0000000000..fd0561530e
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-16.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4udp-ip4base-oacl10sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# ##### ethip4udp-ip4base-oacl10sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+##### ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4-17.md b/resources/job_specs/report_coverage/3n-icx/ip4-17.md
new file mode 100644
index 0000000000..bb30325955
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4-17.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# ##### ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4tun-00.md b/resources/job_specs/report_coverage/3n-icx/ip4tun-00.md
new file mode 100644
index 0000000000..3e196aa5e7
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4tun-00.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4_tunnels
+### intel-e810cq
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4tun-02.md b/resources/job_specs/report_coverage/3n-icx/ip4tun-02.md
new file mode 100644
index 0000000000..c78ffdabe8
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4tun-02.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4_tunnels
+### intel-e810cq
+#### avf
+##### ethip4lispip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+##### ethip4lispip6-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+#### dpdk-vfio-pci
+##### ethip4lispip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+##### ethip4lispip6-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4tun-03.md b/resources/job_specs/report_coverage/3n-icx/ip4tun-03.md
new file mode 100644
index 0000000000..478b02119b
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4tun-03.md
@@ -0,0 +1,64 @@
+# 3n-icx
+## ./ip4_tunnels
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4tun-04.md b/resources/job_specs/report_coverage/3n-icx/ip4tun-04.md
new file mode 100644
index 0000000000..374e5c442a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4tun-04.md
@@ -0,0 +1,46 @@
+# 3n-icx
+## ./ip4_tunnels
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4tun-10.md b/resources/job_specs/report_coverage/3n-icx/ip4tun-10.md
new file mode 100644
index 0000000000..84fd743550
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4tun-10.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4_tunnels
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4vxlan-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# ##### ethip4vxlan-l2xcbase
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2xcbase
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4tun-12.md b/resources/job_specs/report_coverage/3n-icx/ip4tun-12.md
new file mode 100644
index 0000000000..567bde09d6
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4tun-12.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip4_tunnels
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4lispip4-ip4base
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip4-ip4base
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip4-ip4base
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip4-ip4base
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip4-ip4base
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip4-ip4base
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip4-ip4base
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip4-ip4base
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip4-ip4base
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip4-ip4base
+# ##### ethip4lispip6-ip4base
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip6-ip4base
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip6-ip4base
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip6-ip4base
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip6-ip4base
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip6-ip4base
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip6-ip4base
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip6-ip4base
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip6-ip4base
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4lispip6-ip4base
+#### mlx5-core
+##### ethip4lispip4-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip4-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip4-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip4-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip4-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip4-ip4base
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip4-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip4-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip4-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip4-ip4base
+##### ethip4lispip6-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip6-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip6-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip6-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip6-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip6-ip4base
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip6-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip6-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip6-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4lispip6-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip4tun-13.md b/resources/job_specs/report_coverage/3n-icx/ip4tun-13.md
new file mode 100644
index 0000000000..0a74aaca66
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip4tun-13.md
@@ -0,0 +1,64 @@
+# 3n-icx
+## ./ip4_tunnels
+### mellanox-cx6dx
+#### mlx-core
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip6-00.md b/resources/job_specs/report_coverage/3n-icx/ip6-00.md
new file mode 100644
index 0000000000..691ea0559c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip6-00.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./ip6
+### intel-e810cq
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip6-01.md b/resources/job_specs/report_coverage/3n-icx/ip6-01.md
new file mode 100644
index 0000000000..322ccf257c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip6-01.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./ip6
+### intel-e810cq
+#### avf
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+#### dpdk-vfio-pci
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip6-10.md b/resources/job_specs/report_coverage/3n-icx/ip6-10.md
new file mode 100644
index 0000000000..65f1885d0f
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip6-10.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./ip6
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip6-ip6base
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base
+# ##### ethip6-ip6base-adlalwlistbase
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# ##### ethip6-ip6base-iacldstbase
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip6-11.md b/resources/job_specs/report_coverage/3n-icx/ip6-11.md
new file mode 100644
index 0000000000..84019ba921
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip6-11.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./ip6
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip6-ip6scale20k
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale20k
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale20k
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale20k
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale20k
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale20k
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale20k
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale20k
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale20k
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale20k
+# ##### ethip6-ip6scale200k
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale200k
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale200k
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale200k
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale200k
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale200k
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale200k
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale200k
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale200k
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale200k
+# ##### ethip6-ip6scale2m
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale2m
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale2m
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale2m
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale2m
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale2m
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale2m
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale2m
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale2m
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6-ip6scale2m
+#### mlx5-core
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6scale2m \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip6tun-00.md b/resources/job_specs/report_coverage/3n-icx/ip6tun-00.md
new file mode 100644
index 0000000000..5532db8723
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip6tun-00.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip6_tunnels
+### intel-e810cq
+#### avf
+##### ethip6lispip4-ip6base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+##### ethip6lispip6-ip6base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6lispip4-ip6base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+##### ethip6lispip6-ip6base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/ip6tun-10.md b/resources/job_specs/report_coverage/3n-icx/ip6tun-10.md
new file mode 100644
index 0000000000..8130a72898
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/ip6tun-10.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./ip6_tunnels
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip6lispip4-ip6base
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip4-ip6base
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip4-ip6base
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip4-ip6base
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip4-ip6base
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip4-ip6base
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip4-ip6base
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip4-ip6base
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip4-ip6base
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip4-ip6base
+# ##### ethip6lispip6-ip6base
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip6-ip6base
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip6-ip6base
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip6-ip6base
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip6-ip6base
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip6-ip6base
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip6-ip6base
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip6-ip6base
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip6-ip6base
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6lispip6-ip6base
+#### mlx5-core
+##### ethip6lispip4-ip6base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip4-ip6base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip4-ip6base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip4-ip6base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip4-ip6base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip4-ip6base
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip4-ip6base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip4-ip6base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip4-ip6base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip4-ip6base
+##### ethip6lispip6-ip6base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip6-ip6base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip6-ip6base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip6-ip6base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip6-ip6base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip6-ip6base
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip6-ip6base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip6-ip6base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip6-ip6base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6lispip6-ip6base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-00.md b/resources/job_specs/report_coverage/3n-icx/l2-00.md
new file mode 100644
index 0000000000..b0c8d7683f
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-00.md
@@ -0,0 +1,85 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-01.md b/resources/job_specs/report_coverage/3n-icx/l2-01.md
new file mode 100644
index 0000000000..70d78b9b99
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-01.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+#### dpdk-vfio-pci
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-02.md b/resources/job_specs/report_coverage/3n-icx/l2-02.md
new file mode 100644
index 0000000000..a59291188a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-02.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-03.md b/resources/job_specs/report_coverage/3n-icx/l2-03.md
new file mode 100644
index 0000000000..6e0575e77f
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-03.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+##### eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+##### eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-04.md b/resources/job_specs/report_coverage/3n-icx/l2-04.md
new file mode 100644
index 0000000000..b96f5ee911
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-04.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-05.md b/resources/job_specs/report_coverage/3n-icx/l2-05.md
new file mode 100644
index 0000000000..8d51d31084
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-05.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-06.md b/resources/job_specs/report_coverage/3n-icx/l2-06.md
new file mode 100644
index 0000000000..76d63b763a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-06.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+##### eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+##### eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-07.md b/resources/job_specs/report_coverage/3n-icx/l2-07.md
new file mode 100644
index 0000000000..080750d75e
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-07.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-08.md b/resources/job_specs/report_coverage/3n-icx/l2-08.md
new file mode 100644
index 0000000000..a9c2fe104c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-08.md
@@ -0,0 +1,25 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-09.md b/resources/job_specs/report_coverage/3n-icx/l2-09.md
new file mode 100644
index 0000000000..70bc932b36
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-09.md
@@ -0,0 +1,25 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-10.md b/resources/job_specs/report_coverage/3n-icx/l2-10.md
new file mode 100644
index 0000000000..961b43775b
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-10.md
@@ -0,0 +1,25 @@
+# 3n-icx
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-20.md b/resources/job_specs/report_coverage/3n-icx/l2-20.md
new file mode 100644
index 0000000000..85039f1546
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-20.md
@@ -0,0 +1,85 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2patch
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2patch
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2patch
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2patch
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2patch
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2patch
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2patch
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2patch
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2patch
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2patch
+# ##### eth-l2xcbase
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase
+# ##### eth-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn
+# ##### dot1q-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+#### mlx5-core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-21.md b/resources/job_specs/report_coverage/3n-icx/l2-21.md
new file mode 100644
index 0000000000..8962bcf552
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-21.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdscale10kmaclrn
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# ##### eth-l2bdscale100kmaclrn
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# ##### eth-l2bdscale1mmaclrn
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+#### mlx5-core
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-22.md b/resources/job_specs/report_coverage/3n-icx/l2-22.md
new file mode 100644
index 0000000000..8db9fb77d8
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-22.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# ##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-23.md b/resources/job_specs/report_coverage/3n-icx/l2-23.md
new file mode 100644
index 0000000000..a43b46fce5
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-23.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# ##### eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+##### eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-24.md b/resources/job_specs/report_coverage/3n-icx/l2-24.md
new file mode 100644
index 0000000000..59be5f7977
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-24.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# ##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-25.md b/resources/job_specs/report_coverage/3n-icx/l2-25.md
new file mode 100644
index 0000000000..36976099bf
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-25.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# ##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-26.md b/resources/job_specs/report_coverage/3n-icx/l2-26.md
new file mode 100644
index 0000000000..9dc66a9de8
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-26.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# ##### eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+##### eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-27.md b/resources/job_specs/report_coverage/3n-icx/l2-27.md
new file mode 100644
index 0000000000..23c227e397
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-27.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# ##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-28.md b/resources/job_specs/report_coverage/3n-icx/l2-28.md
new file mode 100644
index 0000000000..2b75b4566e
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-28.md
@@ -0,0 +1,25 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-29.md b/resources/job_specs/report_coverage/3n-icx/l2-29.md
new file mode 100644
index 0000000000..c8ada10149
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-29.md
@@ -0,0 +1,25 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/l2-30.md b/resources/job_specs/report_coverage/3n-icx/l2-30.md
new file mode 100644
index 0000000000..16f92f45a0
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/l2-30.md
@@ -0,0 +1,25 @@
+# 3n-icx
+## ./l2
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/memif-00.md b/resources/job_specs/report_coverage/3n-icx/memif-00.md
new file mode 100644
index 0000000000..6bad241158
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/memif-00.md
@@ -0,0 +1,85 @@
+# 3n-icx
+## ./container_memif
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/memif-10.md b/resources/job_specs/report_coverage/3n-icx/memif-10.md
new file mode 100644
index 0000000000..5f9b69a4df
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/memif-10.md
@@ -0,0 +1,85 @@
+# 3n-icx
+## ./container_memif
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# ##### eth-l2xcbase-eth-2memif-1dcr
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# ##### eth-l2xcbase-eth-2memif-1lxc
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# ##### ethip4-ip4base-eth-2memif-1dcr
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/srv6-00.md b/resources/job_specs/report_coverage/3n-icx/srv6-00.md
new file mode 100644
index 0000000000..40ecde5eca
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/srv6-00.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./srv6
+### intel-e810cq
+#### avf
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+#### dpdk-vfio-pci
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/srv6-01.md b/resources/job_specs/report_coverage/3n-icx/srv6-01.md
new file mode 100644
index 0000000000..161da30660
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/srv6-01.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./srv6
+### intel-e810cq
+#### avf
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+#### dpdk-vfio-pci
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/srv6-10.md b/resources/job_specs/report_coverage/3n-icx/srv6-10.md
new file mode 100644
index 0000000000..018def0bcb
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/srv6-10.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./srv6
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip6ip6-ip6base-srv6enc1sid
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# ##### ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# ##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+#### mlx5-core
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/srv6-11.md b/resources/job_specs/report_coverage/3n-icx/srv6-11.md
new file mode 100644
index 0000000000..9b969f496e
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/srv6-11.md
@@ -0,0 +1,65 @@
+# 3n-icx
+## ./srv6
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip6srhip6-srv6proxy-dyn
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# ##### ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# ##### ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+#### mlx5-core
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/vhost-00.md b/resources/job_specs/report_coverage/3n-icx/vhost-00.md
new file mode 100644
index 0000000000..92a8fadcb2
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/vhost-00.md
@@ -0,0 +1,125 @@
+# 3n-icx
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### dpdk-vfio-pci
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/vhost-01.md b/resources/job_specs/report_coverage/3n-icx/vhost-01.md
new file mode 100644
index 0000000000..a71253b71a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/vhost-01.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/vhost-10.md b/resources/job_specs/report_coverage/3n-icx/vhost-10.md
new file mode 100644
index 0000000000..2aa17c1e39
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/vhost-10.md
@@ -0,0 +1,125 @@
+# 3n-icx
+## ./vm_vhost
+### mellanox-cx6dx
+#### rdma-core
+# ##### eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# ##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# ##### ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# ##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### mlx5-core
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icx/vhost-11.md b/resources/job_specs/report_coverage/3n-icx/vhost-11.md
new file mode 100644
index 0000000000..bee98fb18a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icx/vhost-11.md
@@ -0,0 +1,45 @@
+# 3n-icx
+## ./vm_vhost
+### mellanox-cx6dx
+#### rdma-core
+# ##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/crypto-00.md b/resources/job_specs/report_coverage/3n-icxd/crypto-00.md
new file mode 100644
index 0000000000..dde0844b57
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/crypto-00.md
@@ -0,0 +1,94 @@
+# 3n-icxd
+## ./crypto
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/crypto-01.md b/resources/job_specs/report_coverage/3n-icxd/crypto-01.md
new file mode 100644
index 0000000000..2be5b4b9dd
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/crypto-01.md
@@ -0,0 +1,40 @@
+# 3n-icxd
+## ./crypto
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/crypto-02.md b/resources/job_specs/report_coverage/3n-icxd/crypto-02.md
new file mode 100644
index 0000000000..b1e2578b2e
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/crypto-02.md
@@ -0,0 +1,112 @@
+# 3n-icxd
+## ./crypto
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/dpdk-00.md b/resources/job_specs/report_coverage/3n-icxd/dpdk-00.md
new file mode 100644
index 0000000000..5fa06803ac
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/dpdk-00.md
@@ -0,0 +1,23 @@
+# 3n-icxd
+### intel-e823c
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/ip4-00.md b/resources/job_specs/report_coverage/3n-icxd/ip4-00.md
new file mode 100644
index 0000000000..32616ac139
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/ip4-00.md
@@ -0,0 +1,74 @@
+# 3n-icxd
+## ./ip4
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/ip4-01.md b/resources/job_specs/report_coverage/3n-icxd/ip4-01.md
new file mode 100644
index 0000000000..30ad972470
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/ip4-01.md
@@ -0,0 +1,34 @@
+# 3n-icxd
+## ./ip4
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/ip4tun-00.md b/resources/job_specs/report_coverage/3n-icxd/ip4tun-00.md
new file mode 100644
index 0000000000..6829ac1d40
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/ip4tun-00.md
@@ -0,0 +1,24 @@
+# 3n-icxd
+## ./ip4_tunnels
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/ip4tun-01.md b/resources/job_specs/report_coverage/3n-icxd/ip4tun-01.md
new file mode 100644
index 0000000000..e320a7347a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/ip4tun-01.md
@@ -0,0 +1,124 @@
+# 3n-icxd
+## ./ip4_tunnels
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard2tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard8tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/ip6-00.md b/resources/job_specs/report_coverage/3n-icxd/ip6-00.md
new file mode 100644
index 0000000000..f2ab8ae66f
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/ip6-00.md
@@ -0,0 +1,34 @@
+# 3n-icxd
+## ./ip6
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/ip6-01.md b/resources/job_specs/report_coverage/3n-icxd/ip6-01.md
new file mode 100644
index 0000000000..1af12d779f
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/ip6-01.md
@@ -0,0 +1,64 @@
+# 3n-icxd
+## ./ip6
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/l2-00.md b/resources/job_specs/report_coverage/3n-icxd/l2-00.md
new file mode 100644
index 0000000000..4ec849bba1
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/l2-00.md
@@ -0,0 +1,44 @@
+# 3n-icxd
+## ./l2
+### intel-e823c
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-icxd/l2-01.md b/resources/job_specs/report_coverage/3n-icxd/l2-01.md
new file mode 100644
index 0000000000..fc31fc53a7
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-icxd/l2-01.md
@@ -0,0 +1,34 @@
+# 3n-icxd
+## ./l2
+### intel-e823c
+#### dpdk-vfio-pci
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/crypto-00.md b/resources/job_specs/report_coverage/3n-snr/crypto-00.md
new file mode 100644
index 0000000000..eeaac10593
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/crypto-00.md
@@ -0,0 +1,94 @@
+# 3n-snr
+## ./crypto
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/crypto-01.md b/resources/job_specs/report_coverage/3n-snr/crypto-01.md
new file mode 100644
index 0000000000..bc04c58a58
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/crypto-01.md
@@ -0,0 +1,40 @@
+# 3n-snr
+## ./crypto
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/crypto-02.md b/resources/job_specs/report_coverage/3n-snr/crypto-02.md
new file mode 100644
index 0000000000..de289c69e4
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/crypto-02.md
@@ -0,0 +1,112 @@
+# 3n-snr
+## ./crypto
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/dpdk-00.md b/resources/job_specs/report_coverage/3n-snr/dpdk-00.md
new file mode 100644
index 0000000000..399f6581be
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/dpdk-00.md
@@ -0,0 +1,23 @@
+# 3n-snr
+### intel-e822cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/ip4-00.md b/resources/job_specs/report_coverage/3n-snr/ip4-00.md
new file mode 100644
index 0000000000..d1a98c3617
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/ip4-00.md
@@ -0,0 +1,74 @@
+# 3n-snr
+## ./ip4
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/ip4-01.md b/resources/job_specs/report_coverage/3n-snr/ip4-01.md
new file mode 100644
index 0000000000..13ba29b417
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/ip4-01.md
@@ -0,0 +1,34 @@
+# 3n-snr
+## ./ip4
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/ip4tun-00.md b/resources/job_specs/report_coverage/3n-snr/ip4tun-00.md
new file mode 100644
index 0000000000..8b84ffe790
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/ip4tun-00.md
@@ -0,0 +1,24 @@
+# 3n-snr
+## ./ip4_tunnels
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/ip4tun-01.md b/resources/job_specs/report_coverage/3n-snr/ip4tun-01.md
new file mode 100644
index 0000000000..2bcf6a03c5
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/ip4tun-01.md
@@ -0,0 +1,124 @@
+# 3n-snr
+## ./ip4_tunnels
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard2tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard8tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/ip6-00.md b/resources/job_specs/report_coverage/3n-snr/ip6-00.md
new file mode 100644
index 0000000000..ce149ae18b
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/ip6-00.md
@@ -0,0 +1,34 @@
+# 3n-snr
+## ./ip6
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/ip6-01.md b/resources/job_specs/report_coverage/3n-snr/ip6-01.md
new file mode 100644
index 0000000000..2d9a8b3380
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/ip6-01.md
@@ -0,0 +1,64 @@
+# 3n-snr
+## ./ip6
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale2m-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/l2-00.md b/resources/job_specs/report_coverage/3n-snr/l2-00.md
new file mode 100644
index 0000000000..eef4e88ac0
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/l2-00.md
@@ -0,0 +1,44 @@
+# 3n-snr
+## ./l2
+### intel-e822cq
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-snr/l2-01.md b/resources/job_specs/report_coverage/3n-snr/l2-01.md
new file mode 100644
index 0000000000..1d50d5e138
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-snr/l2-01.md
@@ -0,0 +1,34 @@
+# 3n-snr
+## ./l2
+### intel-e822cq
+#### dpdk-vfio-pci
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3n-tsh/dpdk-00.md b/resources/job_specs/report_coverage/3n-tsh/dpdk-00.md
new file mode 100644
index 0000000000..ae1cd194be
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/dpdk-00.md
@@ -0,0 +1,29 @@
+# 3n-tsh
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_coverage/3n-tsh/ip4-00.md b/resources/job_specs/report_coverage/3n-tsh/ip4-00.md
new file mode 100644
index 0000000000..5e5b55e9d5
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/ip4-00.md
@@ -0,0 +1,70 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4scale2m
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/ip4-01.md b/resources/job_specs/report_coverage/3n-tsh/ip4-01.md
new file mode 100644
index 0000000000..d0388ff9e0
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/ip4-01.md
@@ -0,0 +1,57 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/ip4-02.md b/resources/job_specs/report_coverage/3n-tsh/ip4-02.md
new file mode 100644
index 0000000000..34ac21bc4a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/ip4-02.md
@@ -0,0 +1,44 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/ip4-03.md b/resources/job_specs/report_coverage/3n-tsh/ip4-03.md
new file mode 100644
index 0000000000..035a2f53eb
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/ip4-03.md
@@ -0,0 +1,44 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+##### ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/ip4tun-00.md b/resources/job_specs/report_coverage/3n-tsh/ip4tun-00.md
new file mode 100644
index 0000000000..4fd2682dab
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/ip4tun-00.md
@@ -0,0 +1,44 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/ip6-00.md b/resources/job_specs/report_coverage/3n-tsh/ip6-00.md
new file mode 100644
index 0000000000..f26d8d93b3
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/ip6-00.md
@@ -0,0 +1,57 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/ip6-01.md b/resources/job_specs/report_coverage/3n-tsh/ip6-01.md
new file mode 100644
index 0000000000..dd395ae7e9
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/ip6-01.md
@@ -0,0 +1,57 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6scale2m
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/l2-00.md b/resources/job_specs/report_coverage/3n-tsh/l2-00.md
new file mode 100644
index 0000000000..4b4f04e168
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/l2-00.md
@@ -0,0 +1,70 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/l2-01.md b/resources/job_specs/report_coverage/3n-tsh/l2-01.md
new file mode 100644
index 0000000000..e93de3495b
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/l2-01.md
@@ -0,0 +1,57 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/l2-02.md b/resources/job_specs/report_coverage/3n-tsh/l2-02.md
new file mode 100644
index 0000000000..915a534749
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/l2-02.md
@@ -0,0 +1,44 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/l2-03.md b/resources/job_specs/report_coverage/3n-tsh/l2-03.md
new file mode 100644
index 0000000000..7209f177d1
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/l2-03.md
@@ -0,0 +1,44 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/l2-04.md b/resources/job_specs/report_coverage/3n-tsh/l2-04.md
new file mode 100644
index 0000000000..a397ce7227
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/l2-04.md
@@ -0,0 +1,31 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/memif-00.md b/resources/job_specs/report_coverage/3n-tsh/memif-00.md
new file mode 100644
index 0000000000..cf8003132f
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/memif-00.md
@@ -0,0 +1,70 @@
+# 3n-tsh
+## ./container_memif
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/srv6-00.md b/resources/job_specs/report_coverage/3n-tsh/srv6-00.md
new file mode 100644
index 0000000000..69aa1d0f28
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/srv6-00.md
@@ -0,0 +1,57 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/srv6-01.md b/resources/job_specs/report_coverage/3n-tsh/srv6-01.md
new file mode 100644
index 0000000000..4b5b1c2447
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/srv6-01.md
@@ -0,0 +1,57 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+## ./tcp
+## ./vm_vhost
diff --git a/resources/job_specs/report_coverage/3n-tsh/vhost-00.md b/resources/job_specs/report_coverage/3n-tsh/vhost-00.md
new file mode 100644
index 0000000000..9d9df00ccc
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/vhost-00.md
@@ -0,0 +1,96 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
diff --git a/resources/job_specs/report_coverage/3n-tsh/vhost-01.md b/resources/job_specs/report_coverage/3n-tsh/vhost-01.md
new file mode 100644
index 0000000000..0fa36d8dff
--- /dev/null
+++ b/resources/job_specs/report_coverage/3n-tsh/vhost-01.md
@@ -0,0 +1,44 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./srv6
+## ./tcp
+## ./vm_vhost
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_coverage/3na-spr/crypto-00.md b/resources/job_specs/report_coverage/3na-spr/crypto-00.md
new file mode 100644
index 0000000000..2eb9570139
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/crypto-00.md
@@ -0,0 +1,145 @@
+# 3na-spr
+## ./crypto
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# ##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+# ##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# ##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+#### mlx5-core
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/crypto-01.md b/resources/job_specs/report_coverage/3na-spr/crypto-01.md
new file mode 100644
index 0000000000..69365c76bf
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/crypto-01.md
@@ -0,0 +1,57 @@
+# 3na-spr
+## ./crypto
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+# ##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+#### mlx5-core
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/crypto-02.md b/resources/job_specs/report_coverage/3na-spr/crypto-02.md
new file mode 100644
index 0000000000..f42385a4ca
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/crypto-02.md
@@ -0,0 +1,49 @@
+# 3na-spr
+## ./crypto
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+#### mlx5-core
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/crypto-03.md b/resources/job_specs/report_coverage/3na-spr/crypto-03.md
new file mode 100644
index 0000000000..949e248929
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/crypto-03.md
@@ -0,0 +1,49 @@
+# 3na-spr
+## ./crypto
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+#### mlx5-core
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/crypto-04.md b/resources/job_specs/report_coverage/3na-spr/crypto-04.md
new file mode 100644
index 0000000000..d55ab57fae
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/crypto-04.md
@@ -0,0 +1,221 @@
+# 3na-spr
+## ./crypto
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+# ##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# ##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+# ##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+# ##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+# ##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+# ##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+# ##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+#### mlx5-core
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/crypto-05.md b/resources/job_specs/report_coverage/3na-spr/crypto-05.md
new file mode 100644
index 0000000000..c802eebabc
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/crypto-05.md
@@ -0,0 +1,34 @@
+# 3na-spr
+## ./crypto
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/crypto-06.md b/resources/job_specs/report_coverage/3na-spr/crypto-06.md
new file mode 100644
index 0000000000..0e2a0137da
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/crypto-06.md
@@ -0,0 +1,49 @@
+# 3na-spr
+## ./crypto
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+# ##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+# ##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+#### mlx5-core
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/dpdk-00.md b/resources/job_specs/report_coverage/3na-spr/dpdk-00.md
new file mode 100644
index 0000000000..1971438bdb
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/dpdk-00.md
@@ -0,0 +1,23 @@
+# 3na-spr
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/hoststack-00.md b/resources/job_specs/report_coverage/3na-spr/hoststack-00.md
new file mode 100644
index 0000000000..a6ab56f4d1
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/hoststack-00.md
@@ -0,0 +1,20 @@
+# 3na-spr
+## ./hoststack
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-ip4tcpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcpbase-ldpreload-iperf3
+##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpbase-ldpreload-iperf3
+##### eth-ip4udpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpquicbase-vppecho
+1c AND 1280b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpquicbase-vppecho
+##### eth-ip4udpquicscale1cl10s-vppecho
+1c AND 1280b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpquicscale1cl10s-vppecho
+##### eth-ip4udpquicscale10cl1s-vppecho
+1c AND 1280b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpquicscale10cl1s-vppecho
+##### eth-ip4udpquicscale10cl10s-vppecho
+1c AND 1280b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpquicscale10cl10s-vppecho \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4-00.md b/resources/job_specs/report_coverage/3na-spr/ip4-00.md
new file mode 100644
index 0000000000..fd731142ba
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4-00.md
@@ -0,0 +1,85 @@
+# 3na-spr
+## ./ip4
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# ##### ethip4-ip4scale20k
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale20k
+# ##### ethip4-ip4scale200k
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale200k
+# ##### ethip4-ip4scale2m
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4scale2m
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4-01.md b/resources/job_specs/report_coverage/3na-spr/ip4-01.md
new file mode 100644
index 0000000000..379c66f843
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4-01.md
@@ -0,0 +1,65 @@
+# 3na-spr
+## ./ip4
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4-ip4base-adlalwlistbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-adlalwlistbase
+# ##### ethip4-ip4base-iacldstbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-iacldstbase
+# ##### ethip4-ip4base-ipolicemarkbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-ipolicemarkbase
+#### mlx5-core
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4-02.md b/resources/job_specs/report_coverage/3na-spr/ip4-02.md
new file mode 100644
index 0000000000..1a42200f6a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4-02.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./ip4
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sf-10kflows
+# ##### ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl1sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4-03.md b/resources/job_specs/report_coverage/3na-spr/ip4-03.md
new file mode 100644
index 0000000000..cf3bd4d5fd
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4-03.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./ip4
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4udp-ip4base-iacl10sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sf-10kflows
+# ##### ethip4udp-ip4base-iacl10sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl10sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sf-10kflows
+##### ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4-04.md b/resources/job_specs/report_coverage/3na-spr/ip4-04.md
new file mode 100644
index 0000000000..8aed3df761
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4-04.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./ip4
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+# ##### ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4-05.md b/resources/job_specs/report_coverage/3na-spr/ip4-05.md
new file mode 100644
index 0000000000..8bd571cd0a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4-05.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./ip4
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4udp-ip4base-oacl1sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sf-10kflows
+# ##### ethip4udp-ip4base-oacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl1sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sf-10kflows
+##### ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4-06.md b/resources/job_specs/report_coverage/3na-spr/ip4-06.md
new file mode 100644
index 0000000000..54b45b6768
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4-06.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./ip4
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4udp-ip4base-oacl10sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sf-10kflows
+# ##### ethip4udp-ip4base-oacl10sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl10sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sf-10kflows
+##### ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4-07.md b/resources/job_specs/report_coverage/3na-spr/ip4-07.md
new file mode 100644
index 0000000000..adb3b54c12
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4-07.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./ip4
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+# ##### ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+#### mlx5-core
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4-08.md b/resources/job_specs/report_coverage/3na-spr/ip4-08.md
new file mode 100644
index 0000000000..2f4647655e
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4-08.md
@@ -0,0 +1,25 @@
+# 3na-spr
+## ./ip4
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4tun-00.md b/resources/job_specs/report_coverage/3na-spr/ip4tun-00.md
new file mode 100644
index 0000000000..56c92bd700
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4tun-00.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4vxlan-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# ##### ethip4vxlan-l2xcbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4tun-02.md b/resources/job_specs/report_coverage/3na-spr/ip4tun-02.md
new file mode 100644
index 0000000000..01a70411ff
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4tun-02.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4lispip4-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip4-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip4-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip4-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip4-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip4-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip4-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip4-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip4-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip4-ip4base
+# ##### ethip4lispip6-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip6-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip6-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip6-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip6-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip6-ip4base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip6-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip6-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip6-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4lispip6-ip4base
+#### mlx5-core
+##### ethip4lispip4-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip4-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip4-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip4-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip4-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip4-ip4base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip4-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip4-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip4-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip4-ip4base
+##### ethip4lispip6-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip6-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip6-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip6-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip6-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip6-ip4base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip6-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip6-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip6-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4lispip6-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4tun-03.md b/resources/job_specs/report_coverage/3na-spr/ip4tun-03.md
new file mode 100644
index 0000000000..54995db4de
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4tun-03.md
@@ -0,0 +1,125 @@
+# 3na-spr
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4udpwireguard1tnlsw-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1tnlsw-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1tnlsw-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1tnlsw-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1tnlsw-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1tnlsw-ip4base
+# 4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1tnlsw-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1tnlsw-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1tnlsw-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1tnlsw-ip4base
+# ##### ethip4udpwireguard2tnlsw-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard2tnlsw-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard2tnlsw-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard2tnlsw-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard2tnlsw-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard2tnlsw-ip4base
+# 4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard2tnlsw-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard2tnlsw-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard2tnlsw-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard2tnlsw-ip4base
+# ##### ethip4udpwireguard4tnlsw-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard4tnlsw-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard4tnlsw-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard4tnlsw-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard4tnlsw-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard4tnlsw-ip4base
+# 4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard4tnlsw-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard4tnlsw-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard4tnlsw-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard4tnlsw-ip4base
+# ##### ethip4udpwireguard8tnlsw-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard8tnlsw-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard8tnlsw-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard8tnlsw-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard8tnlsw-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard8tnlsw-ip4base
+# 4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard8tnlsw-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard8tnlsw-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard8tnlsw-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard8tnlsw-ip4base
+# ##### ethip4udpwireguard100tnlsw-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard100tnlsw-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard100tnlsw-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard100tnlsw-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard100tnlsw-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard100tnlsw-ip4base
+# 4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard100tnlsw-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard100tnlsw-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard100tnlsw-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard100tnlsw-ip4base
+# ##### ethip4udpwireguard1000tnlsw-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4udpwireguard1000tnlsw-ip4base
+#### mlx5-core
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4tun-04.md b/resources/job_specs/report_coverage/3na-spr/ip4tun-04.md
new file mode 100644
index 0000000000..6979ebd403
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4tun-04.md
@@ -0,0 +1,25 @@
+# 3na-spr
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4gtpusw-ip4base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4gtpusw-ip4base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4gtpusw-ip4base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4gtpusw-ip4base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4gtpusw-ip4base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4gtpusw-ip4base
+# 4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4gtpusw-ip4base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4gtpusw-ip4base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4gtpusw-ip4base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4gtpusw-ip4base
+#### mlx5-core
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip4tun-05.md b/resources/job_specs/report_coverage/3na-spr/ip4tun-05.md
new file mode 100644
index 0000000000..56c92bd700
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip4tun-05.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4vxlan-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
+# ##### ethip4vxlan-l2xcbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip6-00.md b/resources/job_specs/report_coverage/3na-spr/ip6-00.md
new file mode 100644
index 0000000000..43f65b6ac9
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip6-00.md
@@ -0,0 +1,65 @@
+# 3na-spr
+## ./ip6
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip6-ip6base
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base
+# ##### ethip6-ip6base-adlalwlistbase
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-adlalwlistbase
+# ##### ethip6-ip6base-iacldstbase
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6base-iacldstbase
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base-iacldstbase \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip6-01.md b/resources/job_specs/report_coverage/3na-spr/ip6-01.md
new file mode 100644
index 0000000000..2b9a7ad571
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip6-01.md
@@ -0,0 +1,65 @@
+# 3na-spr
+## ./ip6
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip6-ip6scale20k
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale20k
+# ##### ethip6-ip6scale200k
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale200k
+# ##### ethip6-ip6scale2m
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6-ip6scale2m
+#### mlx5-core
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip6-02.md b/resources/job_specs/report_coverage/3na-spr/ip6-02.md
new file mode 100644
index 0000000000..7ea42129ec
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip6-02.md
@@ -0,0 +1,25 @@
+# 3na-spr
+## ./ip6
+### mellanox-e810xxv
+#### rdma-core
+# ##### ethip6-ip6base
+# 1c AND 78b AND ndrpdr AND e810xxv AND drv_rdma_core AND ethip6-ip6base
+# 2c AND 78b AND ndrpdr AND e810xxv AND drv_rdma_core AND ethip6-ip6base
+# 4c AND 78b AND ndrpdr AND e810xxv AND drv_rdma_core AND ethip6-ip6base
+# 1c AND 1518b AND ndrpdr AND e810xxv AND drv_rdma_core AND ethip6-ip6base
+# 2c AND 1518b AND ndrpdr AND e810xxv AND drv_rdma_core AND ethip6-ip6base
+# 1c AND 9000b AND ndrpdr AND e810xxv AND drv_rdma_core AND ethip6-ip6base
+# 1c AND imix AND ndrpdr AND e810xxv AND drv_rdma_core AND ethip6-ip6base
+# 2c AND imix AND ndrpdr AND e810xxv AND drv_rdma_core AND ethip6-ip6base
+# 4c AND imix AND ndrpdr AND e810xxv AND drv_rdma_core AND ethip6-ip6base
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810xxv AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810xxv AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810xxv AND drv_mlx5_core AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_mlx5_core AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_mlx5_core AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_mlx5_core AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810xxv AND drv_mlx5_core AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810xxv AND drv_mlx5_core AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810xxv AND drv_mlx5_core AND ethip6-ip6base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/ip6tun-00.md b/resources/job_specs/report_coverage/3na-spr/ip6tun-00.md
new file mode 100644
index 0000000000..c8433480d8
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/ip6tun-00.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./ip6_tunnels
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip6lispip4-ip6base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip4-ip6base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip4-ip6base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip4-ip6base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip4-ip6base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip4-ip6base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip4-ip6base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip4-ip6base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip4-ip6base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip4-ip6base
+# ##### ethip6lispip6-ip6base
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip6-ip6base
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip6-ip6base
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip6-ip6base
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip6-ip6base
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip6-ip6base
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip6-ip6base
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip6-ip6base
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip6-ip6base
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6lispip6-ip6base
+#### mlx5-core
+##### ethip6lispip4-ip6base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip4-ip6base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip4-ip6base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip4-ip6base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip4-ip6base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip4-ip6base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip4-ip6base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip4-ip6base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip4-ip6base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip4-ip6base
+##### ethip6lispip6-ip6base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip6-ip6base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip6-ip6base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip6-ip6base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip6-ip6base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip6-ip6base
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip6-ip6base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip6-ip6base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip6-ip6base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6lispip6-ip6base \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-00.md b/resources/job_specs/report_coverage/3na-spr/l2-00.md
new file mode 100644
index 0000000000..19649d36ef
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-00.md
@@ -0,0 +1,85 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2patch
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# ##### eth-l2xcbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# ##### eth-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# ##### dot1q-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+#### mlx5-core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-01.md b/resources/job_specs/report_coverage/3na-spr/l2-01.md
new file mode 100644
index 0000000000..2f4a223dd1
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-01.md
@@ -0,0 +1,65 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2bdscale10kmaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+# ##### eth-l2bdscale100kmaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+# ##### eth-l2bdscale1mmaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+#### mlx5-core
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-02.md b/resources/job_specs/report_coverage/3na-spr/l2-02.md
new file mode 100644
index 0000000000..f9ada9712c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-02.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+# ##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-03.md b/resources/job_specs/report_coverage/3na-spr/l2-03.md
new file mode 100644
index 0000000000..c2122f30f0
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-03.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+# ##### eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+##### eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-04.md b/resources/job_specs/report_coverage/3na-spr/l2-04.md
new file mode 100644
index 0000000000..f1c64b1fa2
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-04.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+# ##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-05.md b/resources/job_specs/report_coverage/3na-spr/l2-05.md
new file mode 100644
index 0000000000..3785618168
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-05.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+# ##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-06.md b/resources/job_specs/report_coverage/3na-spr/l2-06.md
new file mode 100644
index 0000000000..e300bfd90c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-06.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+# ##### eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+##### eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-07.md b/resources/job_specs/report_coverage/3na-spr/l2-07.md
new file mode 100644
index 0000000000..b3251a5359
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-07.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+# #### rdma-core
+# ##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+# ##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-08.md b/resources/job_specs/report_coverage/3na-spr/l2-08.md
new file mode 100644
index 0000000000..6ebe2da8f7
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-08.md
@@ -0,0 +1,25 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-09.md b/resources/job_specs/report_coverage/3na-spr/l2-09.md
new file mode 100644
index 0000000000..78d57b742c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-09.md
@@ -0,0 +1,25 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-10.md b/resources/job_specs/report_coverage/3na-spr/l2-10.md
new file mode 100644
index 0000000000..05a7c5e3bb
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-10.md
@@ -0,0 +1,25 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+#### mlx5-core
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/l2-11.md b/resources/job_specs/report_coverage/3na-spr/l2-11.md
new file mode 100644
index 0000000000..19649d36ef
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/l2-11.md
@@ -0,0 +1,85 @@
+# 3na-spr
+## ./l2
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2patch
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2patch
+# ##### eth-l2xcbase
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase
+# ##### eth-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn
+# ##### dot1q-l2bdbasemaclrn
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+#### mlx5-core
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/memif-00.md b/resources/job_specs/report_coverage/3na-spr/memif-00.md
new file mode 100644
index 0000000000..e738215ab7
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/memif-00.md
@@ -0,0 +1,85 @@
+# 3na-spr
+## ./container_memif
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+# ##### eth-l2xcbase-eth-2memif-1dcr
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+# ##### eth-l2xcbase-eth-2memif-1lxc
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1lxc
+# ##### ethip4-ip4base-eth-2memif-1dcr
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1lxc
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/srv6-00.md b/resources/job_specs/report_coverage/3na-spr/srv6-00.md
new file mode 100644
index 0000000000..a52d1d62d2
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/srv6-00.md
@@ -0,0 +1,65 @@
+# 3na-spr
+## ./srv6
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip6ip6-ip6base-srv6enc1sid
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# ##### ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# ##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+#### mlx5-core
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/srv6-01.md b/resources/job_specs/report_coverage/3na-spr/srv6-01.md
new file mode 100644
index 0000000000..a2ed324c92
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/srv6-01.md
@@ -0,0 +1,65 @@
+# 3na-spr
+## ./srv6
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip6srhip6-srv6proxy-dyn
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# ##### ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# ##### ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+#### mlx5-core
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/srv6-02.md b/resources/job_specs/report_coverage/3na-spr/srv6-02.md
new file mode 100644
index 0000000000..a52d1d62d2
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/srv6-02.md
@@ -0,0 +1,65 @@
+# 3na-spr
+## ./srv6
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip6ip6-ip6base-srv6enc1sid
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6ip6-ip6base-srv6enc1sid
+# ##### ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids
+# ##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+#### mlx5-core
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/srv6-03.md b/resources/job_specs/report_coverage/3na-spr/srv6-03.md
new file mode 100644
index 0000000000..a2ed324c92
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/srv6-03.md
@@ -0,0 +1,65 @@
+# 3na-spr
+## ./srv6
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip6srhip6-srv6proxy-dyn
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-srv6proxy-dyn
+# ##### ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# ##### ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip6srhip6-ip6base-srv6proxy-stat
+#### mlx5-core
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/vhost-00.md b/resources/job_specs/report_coverage/3na-spr/vhost-00.md
new file mode 100644
index 0000000000..913876f6eb
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/vhost-00.md
@@ -0,0 +1,125 @@
+# 3na-spr
+## ./vm_vhost
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# ##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# ##### ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# ##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### mlx5-core
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/vhost-01.md b/resources/job_specs/report_coverage/3na-spr/vhost-01.md
new file mode 100644
index 0000000000..e36d3ba71c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/vhost-01.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./vm_vhost
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/vhost-02.md b/resources/job_specs/report_coverage/3na-spr/vhost-02.md
new file mode 100644
index 0000000000..913876f6eb
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/vhost-02.md
@@ -0,0 +1,125 @@
+# 3na-spr
+## ./vm_vhost
+### mellanox-cx7veat
+#### rdma-core
+# ##### eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+# ##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# ##### ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+# ##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### mlx5-core
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3na-spr/vhost-03.md b/resources/job_specs/report_coverage/3na-spr/vhost-03.md
new file mode 100644
index 0000000000..e36d3ba71c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3na-spr/vhost-03.md
@@ -0,0 +1,45 @@
+# 3na-spr
+## ./vm_vhost
+### mellanox-cx7veat
+#### rdma-core
+# ##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3nb-spr/crypto-00.md b/resources/job_specs/report_coverage/3nb-spr/crypto-00.md
new file mode 100644
index 0000000000..087f934a8c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/crypto-00.md
@@ -0,0 +1,145 @@
+# 3nb-spr
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
diff --git a/resources/job_specs/report_coverage/3nb-spr/crypto-01.md b/resources/job_specs/report_coverage/3nb-spr/crypto-01.md
new file mode 100644
index 0000000000..dc1f3fd2f6
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/crypto-01.md
@@ -0,0 +1,57 @@
+# 3nb-spr
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
diff --git a/resources/job_specs/report_coverage/3nb-spr/crypto-02.md b/resources/job_specs/report_coverage/3nb-spr/crypto-02.md
new file mode 100644
index 0000000000..c52b502558
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/crypto-02.md
@@ -0,0 +1,49 @@
+# 3nb-spr
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
diff --git a/resources/job_specs/report_coverage/3nb-spr/crypto-03.md b/resources/job_specs/report_coverage/3nb-spr/crypto-03.md
new file mode 100644
index 0000000000..e4aa909b0c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/crypto-03.md
@@ -0,0 +1,49 @@
+# 3nb-spr
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-ip4base-int-aes256gcm
diff --git a/resources/job_specs/report_coverage/3nb-spr/crypto-04.md b/resources/job_specs/report_coverage/3nb-spr/crypto-04.md
new file mode 100644
index 0000000000..6230c25344
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/crypto-04.md
@@ -0,0 +1,221 @@
+# 3nb-spr
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
diff --git a/resources/job_specs/report_coverage/3nb-spr/crypto-05.md b/resources/job_specs/report_coverage/3nb-spr/crypto-05.md
new file mode 100644
index 0000000000..8c009a61bc
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/crypto-05.md
@@ -0,0 +1,34 @@
+# 3nb-spr
+## ./crypto
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
diff --git a/resources/job_specs/report_coverage/3nb-spr/crypto-06.md b/resources/job_specs/report_coverage/3nb-spr/crypto-06.md
new file mode 100644
index 0000000000..e707720445
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/crypto-06.md
@@ -0,0 +1,49 @@
+# 3nb-spr
+## ./crypto
+### intel-e810xxv
+#### avf
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes256gcm
diff --git a/resources/job_specs/report_coverage/3nb-spr/crypto-07.md b/resources/job_specs/report_coverage/3nb-spr/crypto-07.md
new file mode 100644
index 0000000000..b9986cf6bf
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/crypto-07.md
@@ -0,0 +1,84 @@
+# 3nb-spr
+## ./crypto
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
+##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
diff --git a/resources/job_specs/report_coverage/3nb-spr/dpdk-00.md b/resources/job_specs/report_coverage/3nb-spr/dpdk-00.md
new file mode 100644
index 0000000000..70580fcb19
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/dpdk-00.md
@@ -0,0 +1,23 @@
+# 3nb-spr
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_coverage/3nb-spr/hoststack-00.md b/resources/job_specs/report_coverage/3nb-spr/hoststack-00.md
new file mode 100644
index 0000000000..37a570bd8d
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/hoststack-00.md
@@ -0,0 +1,20 @@
+# 3nb-spr
+## ./hoststack
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-ip4tcpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4tcpbase-ldpreload-iperf3
+##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpbase-ldpreload-iperf3
+##### eth-ip4udpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpquicbase-vppecho
+1c AND 1280b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpquicbase-vppecho
+##### eth-ip4udpquicscale1cl10s-vppecho
+1c AND 1280b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpquicscale1cl10s-vppecho
+##### eth-ip4udpquicscale10cl1s-vppecho
+1c AND 1280b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpquicscale10cl1s-vppecho
+##### eth-ip4udpquicscale10cl10s-vppecho
+1c AND 1280b AND bps AND e810xxv AND drv_vfio_pci AND eth-ip4udpquicscale10cl10s-vppecho \ No newline at end of file
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4-00.md b/resources/job_specs/report_coverage/3nb-spr/ip4-00.md
new file mode 100644
index 0000000000..5f3443f597
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4-00.md
@@ -0,0 +1,85 @@
+# 3nb-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4scale2m
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4-01.md b/resources/job_specs/report_coverage/3nb-spr/ip4-01.md
new file mode 100644
index 0000000000..c142dac679
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4-01.md
@@ -0,0 +1,65 @@
+# 3nb-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-ipolicemarkbase
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4-02.md b/resources/job_specs/report_coverage/3nb-spr/ip4-02.md
new file mode 100644
index 0000000000..a3b1aaf7f7
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4-02.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl1sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sf-10kflows
+##### ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4-03.md b/resources/job_specs/report_coverage/3nb-spr/ip4-03.md
new file mode 100644
index 0000000000..69e7519cac
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4-03.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sf-10kflows
+##### ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl10sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sf-10kflows
+##### ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl10sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4-04.md b/resources/job_specs/report_coverage/3nb-spr/ip4-04.md
new file mode 100644
index 0000000000..8517853907
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4-04.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4-05.md b/resources/job_specs/report_coverage/3nb-spr/ip4-05.md
new file mode 100644
index 0000000000..9e9b026668
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4-05.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sf-10kflows
+##### ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl1sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
+##### ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4-06.md b/resources/job_specs/report_coverage/3nb-spr/ip4-06.md
new file mode 100644
index 0000000000..0e398c6648
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4-06.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sf-10kflows
+##### ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl10sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sf-10kflows
+##### ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl10sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4-07.md b/resources/job_specs/report_coverage/3nb-spr/ip4-07.md
new file mode 100644
index 0000000000..e8d805fada
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4-07.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+#### dpdk-vfio-pci
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4-08.md b/resources/job_specs/report_coverage/3nb-spr/ip4-08.md
new file mode 100644
index 0000000000..a17f987c39
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4-08.md
@@ -0,0 +1,25 @@
+# 3nb-spr
+## ./ip4
+### intel-e810xxv
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4tun-00.md b/resources/job_specs/report_coverage/3nb-spr/ip4tun-00.md
new file mode 100644
index 0000000000..c701c4eb49
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4tun-00.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./ip4_tunnels
+### intel-e810cq
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4tun-02.md b/resources/job_specs/report_coverage/3nb-spr/ip4tun-02.md
new file mode 100644
index 0000000000..9793e5d7cc
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4tun-02.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./ip4_tunnels
+### intel-e810cq
+#### avf
+##### ethip4lispip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip4-ip4base
+##### ethip4lispip6-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4lispip6-ip4base
+#### dpdk-vfio-pci
+##### ethip4lispip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip4-ip4base
+##### ethip4lispip6-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4lispip6-ip4base
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4tun-03.md b/resources/job_specs/report_coverage/3nb-spr/ip4tun-03.md
new file mode 100644
index 0000000000..c7873c606c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4tun-03.md
@@ -0,0 +1,125 @@
+# 3nb-spr
+## ./ip4_tunnels
+### intel-e810cq
+#### avf
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4udpwireguard1000tnlsw-ip4base
+#### dpdk-vfio-pci
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4tun-04.md b/resources/job_specs/report_coverage/3nb-spr/ip4tun-04.md
new file mode 100644
index 0000000000..6db34112ac
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4tun-04.md
@@ -0,0 +1,46 @@
+# 3nb-spr
+## ./ip4_tunnels
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4tun-05.md b/resources/job_specs/report_coverage/3nb-spr/ip4tun-05.md
new file mode 100644
index 0000000000..e2b6408193
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4tun-05.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./ip4_tunnels
+### intel-e810xxv
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip4tun-06.md b/resources/job_specs/report_coverage/3nb-spr/ip4tun-06.md
new file mode 100644
index 0000000000..bf99d9c269
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip4tun-06.md
@@ -0,0 +1,64 @@
+# 3nb-spr
+## ./ip4_tunnels
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+##### ethip4udpwireguard2tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+##### ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+##### ethip4udpwireguard8tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+##### ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+##### ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip6-00.md b/resources/job_specs/report_coverage/3nb-spr/ip6-00.md
new file mode 100644
index 0000000000..3aba2d2e9a
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip6-00.md
@@ -0,0 +1,65 @@
+# 3nb-spr
+## ./ip6
+### intel-e810cq
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base-iacldstbase
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6base-adlalwlistbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip6-01.md b/resources/job_specs/report_coverage/3nb-spr/ip6-01.md
new file mode 100644
index 0000000000..5b60f6f434
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip6-01.md
@@ -0,0 +1,65 @@
+# 3nb-spr
+## ./ip6
+### intel-e810cq
+#### avf
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m
+#### dpdk-vfio-pci
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6scale2m
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale2m
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip6-02.md b/resources/job_specs/report_coverage/3nb-spr/ip6-02.md
new file mode 100644
index 0000000000..69f166aeac
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip6-02.md
@@ -0,0 +1,25 @@
+# 3nb-spr
+## ./ip6
+### intel-e810xxv
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
diff --git a/resources/job_specs/report_coverage/3nb-spr/ip6tun-00.md b/resources/job_specs/report_coverage/3nb-spr/ip6tun-00.md
new file mode 100644
index 0000000000..3ea055f957
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/ip6tun-00.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./ip6_tunnels
+### intel-e810cq
+#### avf
+##### ethip6lispip4-ip6base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip4-ip6base
+##### ethip6lispip6-ip6base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6lispip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6lispip4-ip6base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip4-ip6base
+##### ethip6lispip6-ip6base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6lispip6-ip6base
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-00.md b/resources/job_specs/report_coverage/3nb-spr/l2-00.md
new file mode 100644
index 0000000000..526457e99c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-00.md
@@ -0,0 +1,85 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-01.md b/resources/job_specs/report_coverage/3nb-spr/l2-01.md
new file mode 100644
index 0000000000..afba2bbc61
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-01.md
@@ -0,0 +1,65 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+#### dpdk-vfio-pci
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-02.md b/resources/job_specs/report_coverage/3nb-spr/l2-02.md
new file mode 100644
index 0000000000..d9025f4622
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-02.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
+##### eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-03.md b/resources/job_specs/report_coverage/3nb-spr/l2-03.md
new file mode 100644
index 0000000000..65abdb57a9
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-03.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+##### eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sf-10kflows
+##### eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl10sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-04.md b/resources/job_specs/report_coverage/3nb-spr/l2-04.md
new file mode 100644
index 0000000000..a4fe8f790c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-04.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-05.md b/resources/job_specs/report_coverage/3nb-spr/l2-05.md
new file mode 100644
index 0000000000..ecdc3c4c62
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-05.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
+##### eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-06.md b/resources/job_specs/report_coverage/3nb-spr/l2-06.md
new file mode 100644
index 0000000000..7335542d14
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-06.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+##### eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sf-10kflows
+##### eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl10sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-07.md b/resources/job_specs/report_coverage/3nb-spr/l2-07.md
new file mode 100644
index 0000000000..bd2d9f1649
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-07.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-08.md b/resources/job_specs/report_coverage/3nb-spr/l2-08.md
new file mode 100644
index 0000000000..67c3be2b7c
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-08.md
@@ -0,0 +1,25 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl1sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-09.md b/resources/job_specs/report_coverage/3nb-spr/l2-09.md
new file mode 100644
index 0000000000..f97c7ed433
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-09.md
@@ -0,0 +1,25 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl10sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-10.md b/resources/job_specs/report_coverage/3nb-spr/l2-10.md
new file mode 100644
index 0000000000..47c31ae6fa
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-10.md
@@ -0,0 +1,25 @@
+# 3nb-spr
+## ./l2
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
diff --git a/resources/job_specs/report_coverage/3nb-spr/l2-11.md b/resources/job_specs/report_coverage/3nb-spr/l2-11.md
new file mode 100644
index 0000000000..866c3f908b
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/l2-11.md
@@ -0,0 +1,85 @@
+# 3nb-spr
+## ./l2
+### intel-e810xxv
+#### avf
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2patch
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2patch
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2patch
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2patch
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2patch
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2patch
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2patch
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
diff --git a/resources/job_specs/report_coverage/3nb-spr/memif-00.md b/resources/job_specs/report_coverage/3nb-spr/memif-00.md
new file mode 100644
index 0000000000..b30de908a0
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/memif-00.md
@@ -0,0 +1,85 @@
+# 3nb-spr
+## ./container_memif
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1lxc
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1lxc
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1lxc
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
diff --git a/resources/job_specs/report_coverage/3nb-spr/srv6-00.md b/resources/job_specs/report_coverage/3nb-spr/srv6-00.md
new file mode 100644
index 0000000000..c7776cc279
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/srv6-00.md
@@ -0,0 +1,65 @@
+# 3nb-spr
+## ./srv6
+### intel-e810cq
+#### avf
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+#### dpdk-vfio-pci
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
diff --git a/resources/job_specs/report_coverage/3nb-spr/srv6-01.md b/resources/job_specs/report_coverage/3nb-spr/srv6-01.md
new file mode 100644
index 0000000000..ee3b0ae202
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/srv6-01.md
@@ -0,0 +1,65 @@
+# 3nb-spr
+## ./srv6
+### intel-e810cq
+#### avf
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+#### dpdk-vfio-pci
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
diff --git a/resources/job_specs/report_coverage/3nb-spr/srv6-02.md b/resources/job_specs/report_coverage/3nb-spr/srv6-02.md
new file mode 100644
index 0000000000..253cfeb806
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/srv6-02.md
@@ -0,0 +1,65 @@
+# 3nb-spr
+## ./srv6
+### intel-e810xxv
+#### avf
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+#### dpdk-vfio-pci
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
diff --git a/resources/job_specs/report_coverage/3nb-spr/srv6-03.md b/resources/job_specs/report_coverage/3nb-spr/srv6-03.md
new file mode 100644
index 0000000000..ee108b0e3d
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/srv6-03.md
@@ -0,0 +1,65 @@
+# 3nb-spr
+## ./srv6
+### intel-e810xxv
+#### avf
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+#### dpdk-vfio-pci
+##### ethip6srhip6-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
diff --git a/resources/job_specs/report_coverage/3nb-spr/vhost-00.md b/resources/job_specs/report_coverage/3nb-spr/vhost-00.md
new file mode 100644
index 0000000000..6995e16316
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/vhost-00.md
@@ -0,0 +1,125 @@
+# 3nb-spr
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### dpdk-vfio-pci
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
diff --git a/resources/job_specs/report_coverage/3nb-spr/vhost-01.md b/resources/job_specs/report_coverage/3nb-spr/vhost-01.md
new file mode 100644
index 0000000000..72b03659f5
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/vhost-01.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_coverage/3nb-spr/vhost-02.md b/resources/job_specs/report_coverage/3nb-spr/vhost-02.md
new file mode 100644
index 0000000000..4546e71601
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/vhost-02.md
@@ -0,0 +1,125 @@
+# 3nb-spr
+## ./vm_vhost
+### intel-e810xxv
+#### avf
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+#### dpdk-vfio-pci
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
diff --git a/resources/job_specs/report_coverage/3nb-spr/vhost-03.md b/resources/job_specs/report_coverage/3nb-spr/vhost-03.md
new file mode 100644
index 0000000000..1b95851c47
--- /dev/null
+++ b/resources/job_specs/report_coverage/3nb-spr/vhost-03.md
@@ -0,0 +1,45 @@
+# 3nb-spr
+## ./vm_vhost
+### intel-e810xxv
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_iterative/1n-aws/trex-mrr-00.md b/resources/job_specs/report_iterative/1n-aws/trex-mrr-00.md
new file mode 100644
index 0000000000..8fe2d5490b
--- /dev/null
+++ b/resources/job_specs/report_iterative/1n-aws/trex-mrr-00.md
@@ -0,0 +1,11 @@
+# 1n-aws
+## ./ip4
+##### ethip4-ip4base-tg
+- AND 64b AND mrr AND nitro-50g AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND mrr AND nitro-50g AND - AND ethip4-ip4scale20k-tg
+## ./ip6
+##### ethip6-ip6base-tg
+- AND 78b AND mrr AND nitro-50g AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND mrr AND nitro-50g AND - AND ethip6-ip6scale20k-tg
diff --git a/resources/job_specs/report_iterative/1n-aws/trex-ndrpdr-00.md b/resources/job_specs/report_iterative/1n-aws/trex-ndrpdr-00.md
new file mode 100644
index 0000000000..280fc9669f
--- /dev/null
+++ b/resources/job_specs/report_iterative/1n-aws/trex-ndrpdr-00.md
@@ -0,0 +1,11 @@
+# 1n-aws
+## ./ip4
+##### ethip4-ip4base-tg
+- AND 64b AND ndrpdr AND nitro-50g AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND ndrpdr AND nitro-50g AND - AND ethip4-ip4scale20k-tg
+## ./ip6
+##### ethip6-ip6base-tg
+- AND 78b AND ndrpdr AND nitro-50g AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND ndrpdr AND nitro-50g AND - AND ethip6-ip6scale20k-tg \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-aws/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-aws/vpp-mrr-00.md
new file mode 100644
index 0000000000..c7bd2896bd
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-aws/vpp-mrr-00.md
@@ -0,0 +1,37 @@
+# 2n-aws
+## ./ip4
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip6
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-aws/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-aws/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..472491c2d0
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-aws/vpp-ndrpdr-00.md
@@ -0,0 +1,37 @@
+# 2n-aws
+## ./ip4
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip6
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-c6in/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-c6in/vpp-mrr-00.md
new file mode 100644
index 0000000000..883e50eba2
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-c6in/vpp-mrr-00.md
@@ -0,0 +1,37 @@
+# 2n-c6in
+## ./ip4
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip6
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
diff --git a/resources/job_specs/report_iterative/2n-c6in/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-c6in/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..7f3eed1dd6
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-c6in/vpp-ndrpdr-00.md
@@ -0,0 +1,37 @@
+# 2n-c6in
+## ./ip4
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip6
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
diff --git a/resources/job_specs/report_iterative/2n-c7gn/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-c7gn/vpp-mrr-00.md
new file mode 100644
index 0000000000..6b23f879f3
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-c7gn/vpp-mrr-00.md
@@ -0,0 +1,37 @@
+# 2n-c7gn
+## ./ip4
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip6
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
diff --git a/resources/job_specs/report_iterative/2n-c7gn/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-c7gn/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..27f15d638d
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-c7gn/vpp-ndrpdr-00.md
@@ -0,0 +1,37 @@
+# 2n-c7gn
+## ./ip4
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip6
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
diff --git a/resources/job_specs/report_iterative/2n-clx/dpdk-mrr-00.md b/resources/job_specs/report_iterative/2n-clx/dpdk-mrr-00.md
new file mode 100644
index 0000000000..55c2d2c545
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-clx/dpdk-mrr-00.md
@@ -0,0 +1,11 @@
+# 2n-clx
+### intel-xxv710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/2n-clx/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-clx/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..d80f2de151
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-clx/dpdk-ndrpdr-00.md
@@ -0,0 +1,23 @@
+# 2n-clx
+### intel-xxv710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/2n-clx/nfv-density-mrr-00.md b/resources/job_specs/report_iterative/2n-clx/nfv-density-mrr-00.md
new file mode 100644
index 0000000000..f1d460c6d6
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-clx/nfv-density-mrr-00.md
@@ -0,0 +1,125 @@
+# 2n-clx
+## ./nfv_density/dcr_memif/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+## ./nfv_density/dcr_memif/pipeline
+### intel-xxv710
+#### avf
+##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+## ./nfv_density/vm_vhost/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2vh-1vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+##### eth-l2bd-1ch-4vh-2vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+##### eth-l2bd-1ch-8vh-4vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+##### eth-l2bd-1ch-12vh-6vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+##### eth-l2bd-2ch-4vh-2vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+##### eth-l2bd-2ch-8vh-4vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+##### eth-l2bd-4ch-8vh-4vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+##### eth-l2bd-6ch-12vh-6vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+### intel-xxv710
+#### avf
+##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-clx/nfv-density-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-clx/nfv-density-ndrpdr-00.md
new file mode 100644
index 0000000000..10a41f51a0
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-clx/nfv-density-ndrpdr-00.md
@@ -0,0 +1,125 @@
+# 2n-clx
+## ./nfv_density/dcr_memif/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+## ./nfv_density/dcr_memif/pipeline
+### intel-xxv710
+#### avf
+##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+## ./nfv_density/vm_vhost/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2vh-1vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+##### eth-l2bd-1ch-4vh-2vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+##### eth-l2bd-1ch-8vh-4vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+##### eth-l2bd-1ch-12vh-6vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+##### eth-l2bd-2ch-4vh-2vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+##### eth-l2bd-2ch-8vh-4vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+##### eth-l2bd-4ch-8vh-4vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+##### eth-l2bd-6ch-12vh-6vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+### intel-xxv710
+#### avf
+##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-clx/reconf-00.md b/resources/job_specs/report_iterative/2n-clx/reconf-00.md
new file mode 100644
index 0000000000..a87bea4678
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-clx/reconf-00.md
@@ -0,0 +1,20 @@
+# 2n-clx
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+### intel-xxv710
+#### avf
+##### dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+##### dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+##### dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+##### dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
+1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
+2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
+4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-clx/vpp-gso-mrr-00.md b/resources/job_specs/report_iterative/2n-clx/vpp-gso-mrr-00.md
new file mode 100644
index 0000000000..eb1d9ef28a
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-clx/vpp-gso-mrr-00.md
@@ -0,0 +1,23 @@
+# 2n-clx
+## ./gso
+### intel-xxv710
+#### drv_tap
+##### ethip4-ip4base-2tap-gso
+1c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+#### drv_tap
+##### ethip4-ip4base-2tap
+1c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost-gso
+1c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost
+1c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
diff --git a/resources/job_specs/report_iterative/2n-clx/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-clx/vpp-mrr-00.md
new file mode 100644
index 0000000000..41dffa06e9
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-clx/vpp-mrr-00.md
@@ -0,0 +1,429 @@
+# 2n-clx
+## ./container_memif
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+#### mlx5_core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./ip4
+### mellanox-cx556a
+#### rdma-core
+##### ethip4-ip4base
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+#### mlx5_core
+##### ethip4-ip4base
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+### intel-e810cq
+#### af_xdp
+##### ethip4-ip4base
+# REENABLE 1c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 2c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 4c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE ##### ethip4-ip4scale20k-rnd
+# REENABLE 1c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 2c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 4c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip4_tunnels
+### intel-e810cq
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+## ./ip6
+### mellanox-cx556a
+#### rdma-core
+##### ethip6-ip6base
+1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+#### mlx5_core
+##### ethip6-ip6base
+1c AND 78b AND mrr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND mrr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND mrr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+### intel-e810cq
+#### af_xdp
+##### ethip6-ip6base
+# REENABLE 1c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 2c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 4c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE ##### ethip6-ip6scale20k-rnd
+# REENABLE 1c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 2c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 4c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
+#### mlx5_core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2patch
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+## ./vm_vhost
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+#### mlx5_core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-clx/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-clx/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..ed31f21c7b
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-clx/vpp-ndrpdr-00.md
@@ -0,0 +1,429 @@
+# 2n-clx
+## ./container_memif
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+#### mlx5_core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./ip4
+### mellanox-cx556a
+#### rdma-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+#### mlx5_core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+### intel-e810cq
+#### af_xdp
+##### ethip4-ip4base
+# REENABLE 1c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 2c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 4c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE ##### ethip4-ip4scale20k-rnd
+# REENABLE 1c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 2c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 4c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip4_tunnels
+### intel-e810cq
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+## ./ip6
+### mellanox-cx556a
+#### rdma-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+#### mlx5_core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+### intel-e810cq
+#### af_xdp
+##### ethip6-ip6base
+# REENABLE 1c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 2c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 4c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE ##### ethip6-ip6scale20k-rnd
+# REENABLE 1c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 2c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 4c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+#### mlx5_core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2patch
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+## ./vm_vhost
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+#### mlx5_core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx556a AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-clx/vpp-soak-00.md b/resources/job_specs/report_iterative/2n-clx/vpp-soak-00.md
new file mode 100644
index 0000000000..33e92b2b5f
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-clx/vpp-soak-00.md
@@ -0,0 +1,46 @@
+# 2n-clx
+## ./container_memif
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+## ./l2
+#### avf
+##### eth-l2xcbase
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2xcbase
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+## ./vm_vhost
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# #### dpdk-vfio-pci
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_iterative/2n-icx/dpdk-mrr-00.md b/resources/job_specs/report_iterative/2n-icx/dpdk-mrr-00.md
new file mode 100644
index 0000000000..08efa7af39
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/dpdk-mrr-00.md
@@ -0,0 +1,31 @@
+# 2n-icx
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-icx/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..26004ffa3f
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/dpdk-ndrpdr-00.md
@@ -0,0 +1,67 @@
+# 2n-icx
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/nfv-density-mrr-00.md b/resources/job_specs/report_iterative/2n-icx/nfv-density-mrr-00.md
new file mode 100644
index 0000000000..40e0571643
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/nfv-density-mrr-00.md
@@ -0,0 +1,125 @@
+# 2n-icx
+## ./nfv_density/dcr_memif/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+## ./nfv_density/dcr_memif/pipeline
+### intel-xxv710
+#### avf
+##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+## ./nfv_density/vm_vhost/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2vh-1vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+##### eth-l2bd-1ch-4vh-2vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+##### eth-l2bd-1ch-8vh-4vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+##### eth-l2bd-1ch-12vh-6vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+##### eth-l2bd-2ch-4vh-2vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+##### eth-l2bd-2ch-8vh-4vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+##### eth-l2bd-4ch-8vh-4vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+##### eth-l2bd-6ch-12vh-6vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+### intel-xxv710
+#### avf
+##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/nfv-density-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-icx/nfv-density-ndrpdr-00.md
new file mode 100644
index 0000000000..b1f9106d3f
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/nfv-density-ndrpdr-00.md
@@ -0,0 +1,125 @@
+# 2n-icx
+## ./nfv_density/dcr_memif/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+## ./nfv_density/dcr_memif/pipeline
+### intel-xxv710
+#### avf
+##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+## ./nfv_density/vm_vhost/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2vh-1vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+##### eth-l2bd-1ch-4vh-2vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+##### eth-l2bd-1ch-8vh-4vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+##### eth-l2bd-1ch-12vh-6vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+##### eth-l2bd-2ch-4vh-2vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+##### eth-l2bd-2ch-8vh-4vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+##### eth-l2bd-4ch-8vh-4vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+##### eth-l2bd-6ch-12vh-6vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+### intel-xxv710
+#### avf
+##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/reconf-00.md b/resources/job_specs/report_iterative/2n-icx/reconf-00.md
new file mode 100644
index 0000000000..4855200658
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/reconf-00.md
@@ -0,0 +1,20 @@
+# 2n-icx
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+### intel-e810cq
+#### avf
+##### dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+1c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+2c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+4c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+##### dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+1c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+2c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+4c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+##### dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+1c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+2c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+4c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+##### dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
+1c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
+2c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
+4c AND imix AND reconf AND e810cq AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/trex-mrr-00.md b/resources/job_specs/report_iterative/2n-icx/trex-mrr-00.md
new file mode 100644
index 0000000000..1f0df5bfc3
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/trex-mrr-00.md
@@ -0,0 +1,33 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+##### ethip4-ip4base-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4-ip4scale20k-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND mrr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND mrr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND mrr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND mrr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+## ./ip6
+### intel-e810cq
+##### ethip6-ip6base-tg
+- AND 78b AND mrr AND e810cq AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND mrr AND e810cq AND - AND ethip6-ip6scale20k-tg
+## ./l2
+### intel-e810cq
+##### eth-l2bdscale1mmaclrn-tg
+- AND 64b AND mrr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/trex-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-icx/trex-ndrpdr-00.md
new file mode 100644
index 0000000000..f80522c96c
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/trex-ndrpdr-00.md
@@ -0,0 +1,33 @@
+# 2n-icx
+## ./ip4
+### intel-e810cq
+##### ethip4-ip4base-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4-ip4scale20k-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+## ./ip6
+### intel-e810cq
+##### ethip6-ip6base-tg
+- AND 78b AND ndrpdr AND e810cq AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND ndrpdr AND e810cq AND - AND ethip6-ip6scale20k-tg
+## ./l2
+### intel-e810cq
+##### eth-l2bdscale1mmaclrn-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/vpp-gso-mrr-00.md b/resources/job_specs/report_iterative/2n-icx/vpp-gso-mrr-00.md
new file mode 100644
index 0000000000..f779ada7fa
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/vpp-gso-mrr-00.md
@@ -0,0 +1,23 @@
+# 2n-icx
+## ./gso
+### intel-e810cq
+#### drv_tap
+##### ethip4-ip4base-2tap-gso
+1c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+#### drv_tap
+##### ethip4-ip4base-2tap
+1c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_tap AND ethip4-ip4base-2tap-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost-gso
+1c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost
+1c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+2c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+4c AND 128kb AND mrr AND e810cq AND drv_vhost AND ethip4-ip4base-2vhost-iperf3 \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/vpp-hoststack-00.md b/resources/job_specs/report_iterative/2n-icx/vpp-hoststack-00.md
new file mode 100644
index 0000000000..69b9857597
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/vpp-hoststack-00.md
@@ -0,0 +1,26 @@
+# 2n-icx
+## ./hoststack
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND cps AND e810xxv AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND cps AND e810xxv AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND rps AND e810xxv AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND rps AND e810xxv AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5 \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-icx/vpp-mrr-00.md
new file mode 100644
index 0000000000..507062f851
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/vpp-mrr-00.md
@@ -0,0 +1,516 @@
+# 2n-icx
+## ./container_memif
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./ip4
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+### intel-e810xxv
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+### intel-e810cq
+#### af_xdp
+##### ethip4-ip4base
+# REENABLE 1c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 2c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 4c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE ##### ethip4-ip4scale20k-rnd
+# REENABLE 1c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 2c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 4c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+### intel-e810cq
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+## ./ip6
+### intel-cx7veat
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+### intel-e810xxv
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6base
+2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6base
+4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+### intel-e810cq
+#### af_xdp
+##### ethip6-ip6base
+# REENABLE 1c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 2c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 4c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE ##### ethip6-ip6scale20k-rnd
+# REENABLE 1c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 2c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 4c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2patch
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2patch
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2patch
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+## ./vm_vhost
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-icx/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..4620d6b876
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/vpp-ndrpdr-00.md
@@ -0,0 +1,516 @@
+# 2n-icx
+## ./container_memif
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./ip4
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+### intel-e810xxv
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+### intel-e810cq
+#### af_xdp
+##### ethip4-ip4base
+# REENABLE 1c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 2c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 4c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE ##### ethip4-ip4scale20k-rnd
+# REENABLE 1c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 2c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 4c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+### intel-e810cq
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+## ./ip6
+### intel-cx7veat
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+### intel-e810xxv
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+### intel-e810cq
+#### af_xdp
+##### ethip6-ip6base
+# REENABLE 1c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 2c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 4c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE ##### ethip6-ip6scale20k-rnd
+# REENABLE 1c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 2c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 4c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+## ./vm_vhost
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-icx/vpp-soak-00.md b/resources/job_specs/report_iterative/2n-icx/vpp-soak-00.md
new file mode 100644
index 0000000000..55a1c81fe8
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/vpp-soak-00.md
@@ -0,0 +1,46 @@
+# 2n-icx
+## ./container_memif
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+## ./l2
+#### avf
+##### eth-l2xcbase
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2xcbase
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+## ./vm_vhost
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# #### dpdk-vfio-pci
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-spr/dpdk-mrr-00.md b/resources/job_specs/report_iterative/2n-spr/dpdk-mrr-00.md
new file mode 100644
index 0000000000..7f1a548d5a
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-spr/dpdk-mrr-00.md
@@ -0,0 +1,31 @@
+# 2n-spr
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-spr/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-spr/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..19a170ed6e
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-spr/dpdk-ndrpdr-00.md
@@ -0,0 +1,67 @@
+# 2n-spr
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-spr/trex-mrr-00.md b/resources/job_specs/report_iterative/2n-spr/trex-mrr-00.md
new file mode 100644
index 0000000000..35c418f3b6
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-spr/trex-mrr-00.md
@@ -0,0 +1,62 @@
+# 2n-spr
+## ./ip4
+### mellanox-cx7veat
+##### ethip4-ip4base-tg
+- AND 64b AND mrr AND 2p1cx7veat AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND mrr AND 2p1cx7veat AND - AND ethip4-ip4scale20k-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND mrr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND mrr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND mrr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND mrr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND mrr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND mrr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND mrr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND mrr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+### intel-e810cq
+##### ethip4-ip4base-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4-ip4scale20k-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND mrr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND mrr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND mrr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND mrr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND mrr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+## ./ip6
+### mellanox-cx7veat
+##### ethip6-ip6base-tg
+- AND 78b AND mrr AND 2p1cx7veat AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND mrr AND 2p1cx7veat AND - AND ethip6-ip6scale20k-tg
+### intel-e810cq
+##### ethip6-ip6base-tg
+- AND 78b AND mrr AND e810cq AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND mrr AND e810cq AND - AND ethip6-ip6scale20k-tg
+## ./l2
+### mellanox-cx7veat
+##### eth-l2bdscale1mmaclrn-tg
+- AND 64b AND mrr AND 2p1cx7veat AND - AND eth-l2bdscale1mmaclrn-tg
+### intel-e810cq
+##### eth-l2bdscale1mmaclrn-tg
+- AND 64b AND mrr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-spr/trex-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-spr/trex-ndrpdr-00.md
new file mode 100644
index 0000000000..8d4332a0f9
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-spr/trex-ndrpdr-00.md
@@ -0,0 +1,65 @@
+# 2n-spr
+## ./ip4
+### intel-e810cq
+### mellanox-cx7veat
+##### ethip4-ip4base-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4-ip4scale20k-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND 2p1cx7veat AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+### intel-e810cq
+##### ethip4-ip4base-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4-ip4base-tg
+##### ethip4-ip4scale20k-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4-ip4scale20k-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+- AND 100b AND ndrpdr AND e810cq AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+## ./ip6
+### intel-e810cq
+### mellanox-cx7veat
+##### ethip6-ip6base-tg
+- AND 78b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND ndrpdr AND 2p1cx7veat AND - AND ethip6-ip6scale20k-tg
+### intel-e810cq
+##### ethip6-ip6base-tg
+- AND 78b AND ndrpdr AND e810cq AND - AND ethip6-ip6base-tg
+##### ethip6-ip6scale20k-tg
+- AND 78b AND ndrpdr AND e810cq AND - AND ethip6-ip6scale20k-tg
+## ./l2
+### intel-e810cq
+### mellanox-cx7veat
+##### eth-l2bdscale1mmaclrn-tg
+- AND 64b AND ndrpdr AND 2p1cx7veat AND - AND eth-l2bdscale1mmaclrn-tg
+### intel-e810cq
+##### eth-l2bdscale1mmaclrn-tg
+- AND 64b AND ndrpdr AND e810cq AND - AND eth-l2bdscale1mmaclrn-tg \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-spr/vpp-hoststack-00.md b/resources/job_specs/report_iterative/2n-spr/vpp-hoststack-00.md
new file mode 100644
index 0000000000..6da82618e5
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-spr/vpp-hoststack-00.md
@@ -0,0 +1,18 @@
+# 2n-spr
+## ./hoststack
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND cps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND rps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+##### eth-ip4tcphttp-ldpreload-nginx-1_21_5
+1c AND 0b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5
+2c AND 0b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_21_5 \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md
new file mode 100644
index 0000000000..61e0b20196
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-spr/vpp-mrr-00.md
@@ -0,0 +1,564 @@
+# 2n-spr
+## ./container_memif
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./ip4
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+### intel-e810xxv
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+### intel-e810cq
+#### af_xdp
+##### ethip4-ip4base
+# REENABLE 1c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 2c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 4c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE ##### ethip4-ip4scale20k-rnd
+# REENABLE 1c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 2c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 4c AND 64b AND mrr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND mrr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+### intel-e810cq
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+## ./ip6
+### intel-cx7veat
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+### intel-e810xxv
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6base
+2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6base
+4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+### intel-e810cq
+#### af_xdp
+##### ethip6-ip6base
+# REENABLE 1c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 2c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 4c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE ##### ethip6-ip6scale20k-rnd
+# REENABLE 1c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 2c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 4c AND 78b AND mrr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2patch
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2patch
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2patch
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+## ./vm_vhost
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-spr/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-spr/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..631bdcd2ad
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-spr/vpp-ndrpdr-00.md
@@ -0,0 +1,564 @@
+# 2n-spr
+## ./container_memif
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./ip4
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+### intel-e810xxv
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4scale20k-rnd
+### intel-e810cq
+#### af_xdp
+##### ethip4-ip4base
+# REENABLE 1c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 2c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 4c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4base
+# REENABLE ##### ethip4-ip4scale20k-rnd
+# REENABLE 1c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 2c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+# REENABLE 4c AND 64b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip4-ip4scale20k-rnd
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4scale2m-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44ed-h1024-p63-s64512-udir
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-udir
+##### ethip4udp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-cps
+##### ethip4udp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4udp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
+##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4udp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
+##### ethip4udp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-cps
+##### ethip4udp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
+##### ethip4udp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+2c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+4c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-ip4base-h1024-p63-s64512-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
+##### ethip4tcp-ip4base-h65536-p63-s4128768-cps
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-cps
+##### ethip4tcp-ip4base-h1024-p63-s64512-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
+##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
+1c AND 100b AND ndrpdr AND e810cq AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4--ethip4udpgeneve-256tun-ip4base
+### intel-e810cq
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+## ./ip6
+### intel-cx7veat
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6scale2m-rnd
+### intel-e810xxv
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6scale20k-rnd
+### intel-e810cq
+#### af_xdp
+##### ethip6-ip6base
+# REENABLE 1c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 2c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 4c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6base
+# REENABLE ##### ethip6-ip6scale20k-rnd
+# REENABLE 1c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 2c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+# REENABLE 4c AND 78b AND ndrpdr AND e810cq AND drv_af_xdp AND ethip6-ip6scale20k-rnd
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale2m-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6scale2m-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+## ./vm_vhost
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-spr/vpp-soak-00.md b/resources/job_specs/report_iterative/2n-spr/vpp-soak-00.md
new file mode 100644
index 0000000000..829ac703fd
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-spr/vpp-soak-00.md
@@ -0,0 +1,46 @@
+# 2n-spr
+## ./container_memif
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+## ./l2
+#### avf
+##### eth-l2xcbase
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2xcbase
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+## ./vm_vhost
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# #### dpdk-vfio-pci
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_iterative/2n-tx2/dpdk-mrr-00.md b/resources/job_specs/report_iterative/2n-tx2/dpdk-mrr-00.md
new file mode 100644
index 0000000000..8db27ff77f
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-tx2/dpdk-mrr-00.md
@@ -0,0 +1,11 @@
+# 2n-tx2
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/2n-tx2/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-tx2/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..fa850c1103
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-tx2/dpdk-ndrpdr-00.md
@@ -0,0 +1,29 @@
+# 2n-tx2
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/2n-tx2/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-tx2/vpp-mrr-00.md
new file mode 100644
index 0000000000..1c1ee13369
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-tx2/vpp-mrr-00.md
@@ -0,0 +1,266 @@
+# 2n-tx2
+## ./container_memif
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./crypto
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir
+##### ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir
+##### ethip4ipsec1spe-ip4base-policy-outbound-nocrypto
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-ip4base-policy-outbound-nocrypto
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-ip4base-policy-outbound-nocrypto
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-ip4base-policy-outbound-nocrypto
+##### ethip4ipsec100spe-ip4base-policy-outbound-nocrypto
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-ip4base-policy-outbound-nocrypto
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-ip4base-policy-outbound-nocrypto
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-ip4base-policy-outbound-nocrypto
+##### ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto
+##### ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto
+##### ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto
+##### ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto
+## ./ip4
+### intel-xl710
+#### af_xdp
+##### ethip4-ip4base
+# REENABLE 1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4base
+# REENABLE ##### ethip4-ip4scale20k
+# REENABLE 1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
+# REENABLE 2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
+# REENABLE 4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
+# REENABLE ##### ethip4-ip4scale200k
+# REENABLE 1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale200k
+# REENABLE 2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale200k
+# REENABLE 4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale200k
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+## ./ip6
+### intel-xl710
+#### af_xdp
+##### ethip6-ip6base
+# REENABLE 1c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 2c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 4c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6base
+# REENABLE ##### ethip6-ip6scale20k
+# REENABLE 1c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
+# REENABLE 2c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
+# REENABLE 4c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
+# REENABLE ##### ethip6-ip6scale200k
+# REENABLE 1c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale200k
+# REENABLE 2c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale200k
+# REENABLE 4c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale200k
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND mrr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+## ./l2
+### intel-xl710
+#### af_xdp
+##### eth-l2bdbasemaclrn
+# REENABLE 1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
+# REENABLE 2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
+# REENABLE 4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
+# REENABLE ##### eth-l2bdscale10kmaclrn
+# REENABLE 1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
+# REENABLE 2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
+# REENABLE 4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
+# REENABLE ##### eth-l2bdscale100kmaclrn
+# REENABLE 1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
+# REENABLE 2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
+# REENABLE 4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
+# REENABLE ##### eth-l2xcbase
+# REENABLE 1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2xcbase
+# REENABLE 2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2xcbase
+# REENABLE 4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2xcbase
+# REENABLE ##### eth-l2patch
+# REENABLE 1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2patch
+# REENABLE 2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2patch
+# REENABLE 4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2patch
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-tx2/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-tx2/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..bb0d31f3eb
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-tx2/vpp-ndrpdr-00.md
@@ -0,0 +1,266 @@
+# 2n-tx2
+## ./container_memif
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1lxc
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./crypto
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir
+##### ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir
+##### ethip4ipsec1spe-ip4base-policy-outbound-nocrypto
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-ip4base-policy-outbound-nocrypto
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-ip4base-policy-outbound-nocrypto
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-ip4base-policy-outbound-nocrypto
+##### ethip4ipsec100spe-ip4base-policy-outbound-nocrypto
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-ip4base-policy-outbound-nocrypto
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-ip4base-policy-outbound-nocrypto
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-ip4base-policy-outbound-nocrypto
+##### ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto
+##### ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto
+##### ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto
+##### ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto
+## ./ip4
+### intel-xl710
+#### af_xdp
+##### ethip4-ip4base
+# REENABLE 1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4base
+# REENABLE 4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4base
+# REENABLE ##### ethip4-ip4scale20k
+# REENABLE 1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
+# REENABLE 2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
+# REENABLE 4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
+# REENABLE ##### ethip4-ip4scale200k
+# REENABLE 1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale200k
+# REENABLE 2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale200k
+# REENABLE 4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale200k
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4scale200k
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+## ./ip6
+### intel-xl710
+#### af_xdp
+##### ethip6-ip6base
+# REENABLE 1c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 2c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6base
+# REENABLE 4c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6base
+# REENABLE ##### ethip6-ip6scale20k
+# REENABLE 1c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
+# REENABLE 2c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
+# REENABLE 4c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
+# REENABLE ##### ethip6-ip6scale200k
+# REENABLE 1c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale200k
+# REENABLE 2c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale200k
+# REENABLE 4c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale200k
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6scale200k
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+## ./l2
+### intel-xl710
+#### af_xdp
+##### eth-l2bdbasemaclrn
+# REENABLE 1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
+# REENABLE 2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
+# REENABLE 4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
+# REENABLE ##### eth-l2bdscale10kmaclrn
+# REENABLE 1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
+# REENABLE 2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
+# REENABLE 4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
+# REENABLE ##### eth-l2bdscale100kmaclrn
+# REENABLE 1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
+# REENABLE 2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
+# REENABLE 4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
+# REENABLE ##### eth-l2xcbase
+# REENABLE 1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2xcbase
+# REENABLE 2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2xcbase
+# REENABLE 4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2xcbase
+# REENABLE ##### eth-l2patch
+# REENABLE 1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2patch
+# REENABLE 2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2patch
+# REENABLE 4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2patch
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-zn2/dpdk-mrr-00.md b/resources/job_specs/report_iterative/2n-zn2/dpdk-mrr-00.md
new file mode 100644
index 0000000000..a7dbdb1446
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-zn2/dpdk-mrr-00.md
@@ -0,0 +1,11 @@
+# 2n-zn2
+### intel-xxv710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/2n-zn2/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-zn2/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..2ea2001715
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-zn2/dpdk-ndrpdr-00.md
@@ -0,0 +1,23 @@
+# 2n-zn2
+### intel-xxv710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/2n-zn2/nfv-density-mrr-00.md b/resources/job_specs/report_iterative/2n-zn2/nfv-density-mrr-00.md
new file mode 100644
index 0000000000..8fc93af8ef
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-zn2/nfv-density-mrr-00.md
@@ -0,0 +1,138 @@
+# 2n-zn2
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+### intel-xxv710
+#### avf
+##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+## ./nfv_density/vm_vhost/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2vh-1vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+##### eth-l2bd-1ch-4vh-2vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+##### eth-l2bd-1ch-8vh-4vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+##### eth-l2bd-1ch-12vh-6vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+##### eth-l2bd-2ch-4vh-2vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+##### eth-l2bd-2ch-8vh-4vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+##### eth-l2bd-4ch-8vh-4vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+##### eth-l2bd-6ch-12vh-6vm1t-vppip4
+1c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+2c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+4c AND imix AND mrr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+### intel-xxv710
+#### avf
+##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+1c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+2c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+4c AND imix AND mrr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+## ./srv6
+## ./tcp
+## ./vm_vhost
+## ./vts
diff --git a/resources/job_specs/report_iterative/2n-zn2/nfv-density-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-zn2/nfv-density-ndrpdr-00.md
new file mode 100644
index 0000000000..285958fd87
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-zn2/nfv-density-ndrpdr-00.md
@@ -0,0 +1,138 @@
+# 2n-zn2
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2mif-1dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2mif-1dcr1t-vppip4
+##### eth-l2bd-1ch-4mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-1ch-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-1ch-12mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12mif-6dcr1t-vppip4
+##### eth-l2bd-2ch-4mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4mif-2dcr1t-vppip4
+##### eth-l2bd-2ch-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-4ch-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8mif-4dcr1t-vppip4
+##### eth-l2bd-6ch-12mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12mif-6dcr1t-vppip4
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+### intel-xxv710
+#### avf
+##### eth-l2bd-1pl-2mif-1dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-1dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-2dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-4dcr1t-vppip4
+##### eth-l2bd-1pl-2mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1pl-2mif-6dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-2dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-2dcr1t-vppip4
+##### eth-l2bd-2pl-4mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-4mif-4dcr1t-vppip4
+##### eth-l2bd-2pl-8mif-4dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2pl-8mif-4dcr1t-vppip4
+##### eth-l2bd-6pl-12mif-6dcr1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6pl-12mif-6dcr1t-vppip4
+## ./nfv_density/vm_vhost/chain
+### intel-xxv710
+#### avf
+##### eth-l2bd-1ch-2vh-1vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-2vh-1vm1t-vppip4
+##### eth-l2bd-1ch-4vh-2vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-4vh-2vm1t-vppip4
+##### eth-l2bd-1ch-8vh-4vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-8vh-4vm1t-vppip4
+##### eth-l2bd-1ch-12vh-6vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-1ch-12vh-6vm1t-vppip4
+##### eth-l2bd-2ch-4vh-2vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-4vh-2vm1t-vppip4
+##### eth-l2bd-2ch-8vh-4vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-2ch-8vh-4vm1t-vppip4
+##### eth-l2bd-4ch-8vh-4vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-4ch-8vh-4vm1t-vppip4
+##### eth-l2bd-6ch-12vh-6vm1t-vppip4
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bd-6ch-12vh-6vm1t-vppip4
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+### intel-xxv710
+#### avf
+##### dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd
+##### dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd
+##### dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd
+##### dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd
+## ./srv6
+## ./tcp
+## ./vm_vhost
+## ./vts
diff --git a/resources/job_specs/report_iterative/2n-zn2/reconf-00.md b/resources/job_specs/report_iterative/2n-zn2/reconf-00.md
new file mode 100644
index 0000000000..275ca79dc0
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-zn2/reconf-00.md
@@ -0,0 +1,36 @@
+# 2n-zn2
+## ./container_memif
+## ./crypto
+## ./ip4
+## ./ip4_tunnels
+## ./ip6
+## ./ip6_tunnels
+## ./l2
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+### intel-xxv710
+#### avf
+##### dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd
+##### dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd
+##### dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd
+##### dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
+1c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
+2c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
+4c AND imix AND reconf AND xxv710 AND drv_avf AND dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd
+## ./srv6
+## ./tcp
+## ./vm_vhost
+## ./vts
diff --git a/resources/job_specs/report_iterative/2n-zn2/soak-00.md b/resources/job_specs/report_iterative/2n-zn2/soak-00.md
new file mode 100644
index 0000000000..485563dfcf
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-zn2/soak-00.md
@@ -0,0 +1,58 @@
+# 2n-zn2
+## ./container_memif
+### intel-xxv710
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+## ./crypto
+## ./ip4
+### intel-xxv710
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND xxv710 AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+## ./ip4_tunnels
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND xxv710 AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND soak AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+## ./ip6_tunnels
+## ./l2
+#### avf
+##### eth-l2xcbase
+1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2xcbase
+1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+## ./srv6
+## ./tcp
+## ./vm_vhost
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# #### dpdk-vfio-pci
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND soak AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+## ./vts
diff --git a/resources/job_specs/report_iterative/2n-zn2/vpp-gso-mrr-00.md b/resources/job_specs/report_iterative/2n-zn2/vpp-gso-mrr-00.md
new file mode 100644
index 0000000000..7bb2bd7196
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-zn2/vpp-gso-mrr-00.md
@@ -0,0 +1,23 @@
+# 2n-zn2
+## ./gso
+### intel-xxv710
+#### drv_tap
+##### ethip4-ip4base-2tap-gso
+1c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
+#### drv_tap
+##### ethip4-ip4base-2tap
+1c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost-gso
+1c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
+#### drv_vhost
+##### ethip4-ip4base-2vhost
+1c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+2c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
+4c AND 128kb AND mrr AND xxv710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
diff --git a/resources/job_specs/report_iterative/2n-zn2/vpp-mrr-00.md b/resources/job_specs/report_iterative/2n-zn2/vpp-mrr-00.md
new file mode 100644
index 0000000000..cadd241373
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-zn2/vpp-mrr-00.md
@@ -0,0 +1,335 @@
+# 2n-zn2
+## ./container_memif
+### intel-xxv710
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+## ./ip4
+### intel-xxv710
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+### mellanox-cx556a
+#### rdma-core
+##### ethip4-ip4base
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+## ./ip4_tunnels
+### intel-xxv710
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+## ./ip6
+### intel-xxv710
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
+2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
+4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+### mellanox-cx556a
+#### rdma-core
+##### ethip6-ip6base
+1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
+2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
+4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k
+1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
+2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
+4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+2c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+4c AND 78b AND mrr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+## ./ip6_tunnels
+## ./l2
+### intel-xxv710
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2patch
+## ./vm_vhost
+### intel-xxv710
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_iterative/2n-zn2/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/2n-zn2/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..ce89f55ca5
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-zn2/vpp-ndrpdr-00.md
@@ -0,0 +1,334 @@
+# 2n-zn2
+## ./container_memif
+### intel-xxv710
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+##### eth-l2xcbase-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base-eth-2memif-1dcr
+## ./ip4
+### intel-xxv710
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-oacl50sl-10kflows
+##### ethip4udp-nat44det-h1024-p63-s64512
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h1024-p63-s64512
+##### ethip4udp-nat44det-h16384-p63-s1032192
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h16384-p63-s1032192
+##### ethip4udp-nat44det-h65536-p63-s4128758
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h65536-p63-s4128758
+##### ethip4udp-nat44det-h262144-p63-s16515072
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44det-h262144-p63-s16515072
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+### mellanox-cx556a
+#### rdma-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale200k
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4-ip4scale200k-rnd
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip4udp-ip4base-oacl50sl-10kflows
+## ./ip4_tunnels
+### intel-xxv710
+#### avf
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4--ethip4udpgeneve-4tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-4tun-ip4base
+##### ethip4--ethip4udpgeneve-16tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-16tun-ip4base
+##### ethip4--ethip4udpgeneve-64tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-64tun-ip4base
+##### ethip4--ethip4udpgeneve-256tun-ip4base
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4--ethip4udpgeneve-256tun-ip4base
+## ./ip6
+### intel-xxv710
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND xxv710 AND drv_avf AND ethip6-ip6scale20k-rnd
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+### mellanox-cx556a
+#### rdma-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale20k-rnd
+##### ethip6-ip6scale200k
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k
+##### ethip6-ip6scale200k-rnd
+1c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+2c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+4c AND 78b AND ndrpdr AND cx556a AND drv_rdma_core AND ethip6-ip6scale200k-rnd
+## ./l2
+### intel-xxv710
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdscale100kmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2patch
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale10kmaclrn
+##### eth-l2bdscale100kmaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdscale100kmaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2patch
+## ./vm_vhost
+### intel-xxv710
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx556a AND drv_rdma_core AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-alt/dpdk-mrr-00.md b/resources/job_specs/report_iterative/3n-alt/dpdk-mrr-00.md
new file mode 100644
index 0000000000..b3073bbd90
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-alt/dpdk-mrr-00.md
@@ -0,0 +1,21 @@
+# 3n-alt
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-alt/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-alt/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..06ceeb0d12
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-alt/dpdk-ndrpdr-00.md
@@ -0,0 +1,57 @@
+# 3n-alt
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 1518b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-alt/vpp-mrr-00.md b/resources/job_specs/report_iterative/3n-alt/vpp-mrr-00.md
new file mode 100644
index 0000000000..deb9246e8f
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-alt/vpp-mrr-00.md
@@ -0,0 +1,346 @@
+# 3n-alt
+## ./crypto
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+1c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+1c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+1c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 64b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND mrr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+## ./ip4
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND mrr AND xl710 AND drv_avf AND ethip4-ip4base
+2c AND 64b AND mrr AND xl710 AND drv_avf AND ethip4-ip4base
+4c AND 64b AND mrr AND xl710 AND drv_avf AND ethip4-ip4base
+## ./ip4_tunnels
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base-reassembly
+## ./ip6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn
+## ./srv6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+## ./vm_vhost
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-alt/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-alt/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..94df71af90
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-alt/vpp-ndrpdr-00.md
@@ -0,0 +1,346 @@
+# 3n-alt
+## ./crypto
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 3c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 3c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 3c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 3c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 1c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 1c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 1c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 1c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+# 1c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+# 1c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+# 1c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+# 1c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+# 1c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+# 1c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+# 1c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+# 1c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+# 1c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 3c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 3c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 3c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 3c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 3c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 3c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 3c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 3c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 3c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 3c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 64b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 3c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 2c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 3c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+# 4c AND imix AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+# 1c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+# 2c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+# 4c AND 1518b AND ndrpdr AND xl710 AND dpdk-vfio-pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+## ./ip4
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4base-iacldstbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+### intel-xl710
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND ethip4-ip4base
+## ./ip4_tunnels
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+# 4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+# 1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+# 4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base-reassembly
+## ./ip6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+##### ethip6-ip6base-iacldstbase
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+### intel-xl710
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND xl710 AND drv_avf AND eth-l2bdbasemaclrn
+## ./srv6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+# 1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+# 4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+## ./vm_vhost
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4 \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-aws/vpp-mrr-00.md b/resources/job_specs/report_iterative/3n-aws/vpp-mrr-00.md
new file mode 100644
index 0000000000..8849456a9c
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-aws/vpp-mrr-00.md
@@ -0,0 +1,27 @@
+# 3n-aws
+## ./crypto
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+## ./ip4
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND mrr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-aws/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-aws/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..b35e0f88c3
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-aws/vpp-ndrpdr-00.md
@@ -0,0 +1,27 @@
+# 3n-aws
+## ./crypto
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+## ./ip4
+### Amazon-Nitro-50G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-50g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-c6in/vpp-mrr-00.md b/resources/job_specs/report_iterative/3n-c6in/vpp-mrr-00.md
new file mode 100644
index 0000000000..eab85ffd06
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-c6in/vpp-mrr-00.md
@@ -0,0 +1,27 @@
+# 3n-c6in
+## ./crypto
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+## ./ip4
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND mrr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
diff --git a/resources/job_specs/report_iterative/3n-c6in/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-c6in/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..d29ab4e252
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-c6in/vpp-ndrpdr-00.md
@@ -0,0 +1,27 @@
+# 3n-c6in
+## ./crypto
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+## ./ip4
+### Amazon-Nitro-200G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-200g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
diff --git a/resources/job_specs/report_iterative/3n-c7gn/vpp-mrr-00.md b/resources/job_specs/report_iterative/3n-c7gn/vpp-mrr-00.md
new file mode 100644
index 0000000000..308fdca743
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-c7gn/vpp-mrr-00.md
@@ -0,0 +1,27 @@
+# 3n-c7gn
+## ./crypto
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+## ./ip4
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND mrr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
diff --git a/resources/job_specs/report_iterative/3n-c7gn/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-c7gn/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..9925139e7e
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-c7gn/vpp-ndrpdr-00.md
@@ -0,0 +1,27 @@
+# 3n-c7gn
+## ./crypto
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+## ./ip4
+### Amazon-Nitro-100G
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+1c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 1518b AND ndrpdr AND nitro-100g AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
diff --git a/resources/job_specs/report_iterative/3n-icx/dpdk-mrr-00.md b/resources/job_specs/report_iterative/3n-icx/dpdk-mrr-00.md
new file mode 100644
index 0000000000..d33ba8ee01
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icx/dpdk-mrr-00.md
@@ -0,0 +1,31 @@
+# 3n-icx
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-icx/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-icx/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..51950da5f5
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icx/dpdk-ndrpdr-00.md
@@ -0,0 +1,67 @@
+# 3n-icx
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-icx/nfv-density-00.md b/resources/job_specs/report_iterative/3n-icx/nfv-density-00.md
new file mode 100644
index 0000000000..307561d30c
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icx/nfv-density-00.md
@@ -0,0 +1,43 @@
+# 3n-icx
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+##### ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-icx/vpp-hoststack-00.md b/resources/job_specs/report_iterative/3n-icx/vpp-hoststack-00.md
new file mode 100644
index 0000000000..83415b0eea
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icx/vpp-hoststack-00.md
@@ -0,0 +1,38 @@
+# 3n-icx
+## ./hoststack
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-ip4tcpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4tcpbase-ldpreload-iperf3
+##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpbase-ldpreload-iperf3
+##### eth-ip4udpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpquicbase-vppecho
+1c AND 1280b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpquicbase-vppecho
+##### eth-ip4udpquicscale1cl10s-vppecho
+1c AND 1280b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpquicscale1cl10s-vppecho
+##### eth-ip4udpquicscale10cl1s-vppecho
+1c AND 1280b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpquicscale10cl1s-vppecho
+##### eth-ip4udpquicscale10cl10s-vppecho
+1c AND 1280b AND bps AND cx6dx AND drv_mlx5_core AND eth-ip4udpquicscale10cl10s-vppecho
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-ip4tcpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4tcpbase-ldpreload-iperf3
+##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpbase-ldpreload-iperf3
+##### eth-ip4udpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpquicbase-vppecho
+1c AND 1280b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpquicbase-vppecho
+##### eth-ip4udpquicscale1cl10s-vppecho
+1c AND 1280b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpquicscale1cl10s-vppecho
+##### eth-ip4udpquicscale10cl1s-vppecho
+1c AND 1280b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpquicscale10cl1s-vppecho
+##### eth-ip4udpquicscale10cl10s-vppecho
+1c AND 1280b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpquicscale10cl10s-vppecho \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-icx/vpp-mrr-00.md b/resources/job_specs/report_iterative/3n-icx/vpp-mrr-00.md
new file mode 100644
index 0000000000..5c8f1165a4
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icx/vpp-mrr-00.md
@@ -0,0 +1,474 @@
+# 3n-icx
+## ./crypto
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+### intel-e810cq
+#### avf
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+## ./ip4
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+## ./ip4_tunnels
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4gtpusw-ip4base
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4gtpusw-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+### intel-e810cq
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+## ./ip6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+### intel-e810cq
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND mrr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+## ./srv6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND mrr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+### intel-e810cq
+#### avf
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-icx/vpp-mrr-01.md b/resources/job_specs/report_iterative/3n-icx/vpp-mrr-01.md
new file mode 100644
index 0000000000..d041bf9735
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icx/vpp-mrr-01.md
@@ -0,0 +1,143 @@
+# 3n-icx
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+##### ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+##### ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+##### ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+##### ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+##### ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+##### ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+##### ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm
+##### ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm
+##### ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm
+##### ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-icx/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-icx/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..844d537f41
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icx/vpp-ndrpdr-00.md
@@ -0,0 +1,474 @@
+# 3n-icx
+## ./crypto
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+### intel-e810cq
+#### avf
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+## ./ip4
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+## ./ip4_tunnels
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4gtpusw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+### intel-e810cq
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+## ./ip6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+### intel-e810cq
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND cx6dx AND drv_mlx5_core AND eth-l2patch
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+## ./srv6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+### intel-e810cq
+#### avf
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-icx/vpp-soak-00.md b/resources/job_specs/report_iterative/3n-icx/vpp-soak-00.md
new file mode 100644
index 0000000000..5c347df134
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icx/vpp-soak-00.md
@@ -0,0 +1,46 @@
+# 3n-icx
+## ./container_memif
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+## ./l2
+#### avf
+##### eth-l2xcbase
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2xcbase
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+## ./vm_vhost
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# #### dpdk-vfio-pci
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND soak AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_iterative/3n-icxd/dpdk-mrr-00.md b/resources/job_specs/report_iterative/3n-icxd/dpdk-mrr-00.md
new file mode 100644
index 0000000000..78719d26e2
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icxd/dpdk-mrr-00.md
@@ -0,0 +1,11 @@
+# 3n-icxd
+### intel-e823c
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/3n-icxd/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-icxd/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..f70ef58216
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icxd/dpdk-ndrpdr-00.md
@@ -0,0 +1,23 @@
+# 3n-icxd
+### intel-e823c
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/3n-icxd/vpp-mrr-00.md b/resources/job_specs/report_iterative/3n-icxd/vpp-mrr-00.md
new file mode 100644
index 0000000000..2f225ea96a
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icxd/vpp-mrr-00.md
@@ -0,0 +1,210 @@
+# 3n-icxd
+## ./container_memif
+## ./crypto
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+## ./ip4
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip4_tunnels
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard2tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard8tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+## ./ip6
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND mrr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND mrr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND mrr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+## ./ip6_tunnels
+## ./l2
+### intel-e823c
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND mrr AND e823c AND drv_vfio_pci AND eth-l2patch
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+## ./srv6
+## ./hoststack
+## ./vm_vhost
+## ./vts
diff --git a/resources/job_specs/report_iterative/3n-icxd/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-icxd/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..cb43d338ee
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icxd/vpp-ndrpdr-00.md
@@ -0,0 +1,198 @@
+# 3n-icxd
+## ./crypto
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+## ./ip4
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip4_tunnels
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard2tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard8tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+## ./ip6
+### intel-e823c
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+## ./l2
+### intel-e823c
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e823c AND drv_vfio_pci AND eth-l2patch \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-icxd/vpp-soak-00.md b/resources/job_specs/report_iterative/3n-icxd/vpp-soak-00.md
new file mode 100644
index 0000000000..b89bfc6aab
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icxd/vpp-soak-00.md
@@ -0,0 +1,46 @@
+# 3n-icxd
+## ./container_memif
+### intel-e823c
+#### avf
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND e823c AND drv_avf AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2memif-1dcr
+1c AND 64b AND soak AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2memif-1dcr
+## ./ip4
+### intel-e823c
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND e823c AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND soak AND e823c AND drv_vfio_pci AND ethip4-ip4base
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND e823c AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND soak AND e823c AND drv_vfio_pci AND ethip6-ip6base
+## ./l2
+#### avf
+##### eth-l2xcbase
+1c AND 64b AND soak AND e823c AND drv_avf AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e823c AND drv_avf AND eth-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### eth-l2xcbase
+1c AND 64b AND soak AND e823c AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn
+## ./vm_vhost
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND soak AND e823c AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND e823c AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# #### dpdk-vfio-pci
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# 1c AND 64b AND soak AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+# ##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+# 1c AND 64b AND soak AND e823c AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_iterative/3n-snr/dpdk-mrr-00.md b/resources/job_specs/report_iterative/3n-snr/dpdk-mrr-00.md
new file mode 100644
index 0000000000..59241d3548
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-snr/dpdk-mrr-00.md
@@ -0,0 +1,11 @@
+# 3n-snr
+### intel-e822cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/3n-snr/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-snr/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..df21548724
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-snr/dpdk-ndrpdr-00.md
@@ -0,0 +1,23 @@
+# 3n-snr
+### intel-e822cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/3n-snr/vpp-mrr-00.md b/resources/job_specs/report_iterative/3n-snr/vpp-mrr-00.md
new file mode 100644
index 0000000000..82cdad9110
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-snr/vpp-mrr-00.md
@@ -0,0 +1,210 @@
+# 3n-snr
+## ./container_memif
+## ./crypto
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+## ./ip4
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip4_tunnels
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard2tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard8tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+## ./ip6
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND mrr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND mrr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND mrr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND mrr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND mrr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND mrr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+## ./ip6_tunnels
+## ./l2
+### intel-e822cq
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND mrr AND e822cq AND drv_vfio_pci AND eth-l2patch
+## ./lb
+## ./nfv_density/dcr_memif/chain
+## ./nfv_density/dcr_memif/chain_ipsec
+## ./nfv_density/dcr_memif/pipeline
+## ./nfv_density/vm_vhost/chain
+## ./nfv_density/vm_vhost/chain_dot1qip4vxlan
+## ./srv6
+## ./hoststack
+## ./vm_vhost
+## ./vts
diff --git a/resources/job_specs/report_iterative/3n-snr/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-snr/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..fa64730ba6
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-snr/vpp-ndrpdr-00.md
@@ -0,0 +1,198 @@
+# 3n-snr
+## ./crypto
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+## ./ip4
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4scale20k
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
+## ./ip4_tunnels
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard2tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard2tnlhwasync-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard8tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard8tnlhwasync-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+## ./ip6
+### intel-e822cq
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6base
+##### ethip6-ip6scale20k
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+2c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+4c AND 78b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
+## ./l2
+### intel-e822cq
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2bdscale10kmaclrn
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e822cq AND drv_vfio_pci AND eth-l2patch \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3n-tsh/dpdk-mrr-00.md b/resources/job_specs/report_iterative/3n-tsh/dpdk-mrr-00.md
new file mode 100644
index 0000000000..402186a1ae
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-tsh/dpdk-mrr-00.md
@@ -0,0 +1,11 @@
+# 3n-tsh
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/3n-tsh/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-tsh/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..ae1cd194be
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-tsh/dpdk-ndrpdr-00.md
@@ -0,0 +1,29 @@
+# 3n-tsh
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 9000b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/3n-tsh/vpp-mrr-00.md b/resources/job_specs/report_iterative/3n-tsh/vpp-mrr-00.md
new file mode 100644
index 0000000000..9dd8880a78
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-tsh/vpp-mrr-00.md
@@ -0,0 +1,231 @@
+# 3n-tsh
+## ./container_memif
+## ./crypto
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+## ./ip4
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+## ./ip4_tunnels
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+## ./ip6
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+## ./ip6_tunnels
+## ./l2
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+## ./srv6
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+## ./vm_vhost
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND mrr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/resources/job_specs/report_iterative/3n-tsh/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3n-tsh/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..fa435f10fa
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-tsh/vpp-ndrpdr-00.md
@@ -0,0 +1,229 @@
+# 3n-tsh
+## ./crypto
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+## ./ip4
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4udp-ip4base-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sf-10kflows
+##### ethip4udp-ip4base-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-iacl50sl-10kflows
+##### ethip4udp-ip4base-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sf-10kflows
+##### ethip4udp-ip4base-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4udp-ip4base-oacl50sl-10kflows
+## ./ip4_tunnels
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base-reassembly
+1c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+2c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+4c AND 1518b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4gtpusw-ip4base-reassembly
+## ./ip6
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6-ip6base
+## ./l2
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2patch
+##### eth-l2bdbasemaclrn-iacl50sf-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sf-10kflows
+##### eth-l2bdbasemaclrn-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl50sl-10kflows
+##### eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-macip-iacl50sl-10kflows
+##### eth-l2bdbasemaclrn-oacl50sf-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sf-10kflows
+##### eth-l2bdbasemaclrn-oacl50sl-10kflows
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl50sl-10kflows
+## ./srv6
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+## ./vm_vhost
+### intel-x520-da2
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+##### eth-l2xcbase-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
+##### eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
+##### ethip4-ip4base-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
+##### ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
+##### ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+2c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+4c AND 64b AND ndrpdr AND x520-da2 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3na-spr/dpdk-mrr-00.md b/resources/job_specs/report_iterative/3na-spr/dpdk-mrr-00.md
new file mode 100644
index 0000000000..9890493f66
--- /dev/null
+++ b/resources/job_specs/report_iterative/3na-spr/dpdk-mrr-00.md
@@ -0,0 +1,11 @@
+# 3na-spr
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/3na-spr/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/3na-spr/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..09ab95447a
--- /dev/null
+++ b/resources/job_specs/report_iterative/3na-spr/dpdk-ndrpdr-00.md
@@ -0,0 +1,23 @@
+# 3na-spr
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/3na-spr/vpp-hoststack-00.md b/resources/job_specs/report_iterative/3na-spr/vpp-hoststack-00.md
new file mode 100644
index 0000000000..a6ab56f4d1
--- /dev/null
+++ b/resources/job_specs/report_iterative/3na-spr/vpp-hoststack-00.md
@@ -0,0 +1,20 @@
+# 3na-spr
+## ./hoststack
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-ip4tcpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcpbase-ldpreload-iperf3
+##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpbase-ldpreload-iperf3
+##### eth-ip4udpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpquicbase-vppecho
+1c AND 1280b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpquicbase-vppecho
+##### eth-ip4udpquicscale1cl10s-vppecho
+1c AND 1280b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpquicscale1cl10s-vppecho
+##### eth-ip4udpquicscale10cl1s-vppecho
+1c AND 1280b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpquicscale10cl1s-vppecho
+##### eth-ip4udpquicscale10cl10s-vppecho
+1c AND 1280b AND bps AND 2p1cx7veat AND drv_mlx5_core AND eth-ip4udpquicscale10cl10s-vppecho \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3na-spr/vpp-mrr-00.md b/resources/job_specs/report_iterative/3na-spr/vpp-mrr-00.md
new file mode 100644
index 0000000000..b4b7bd1c2e
--- /dev/null
+++ b/resources/job_specs/report_iterative/3na-spr/vpp-mrr-00.md
@@ -0,0 +1,221 @@
+# 3na-spr
+## ./crypto
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+## ./ip4
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale60k-rnd
+3c AND 64b AND mrr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd
+6c AND 64b AND mrr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd
+12c AND 64b AND mrr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+## ./ip6
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+## ./l2
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+## ./srv6
+### mellanox-cx7veat
+#### rmda-core
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND mrr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
diff --git a/resources/job_specs/report_iterative/3na-spr/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3na-spr/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..e2a96854f7
--- /dev/null
+++ b/resources/job_specs/report_iterative/3na-spr/vpp-ndrpdr-00.md
@@ -0,0 +1,221 @@
+# 3na-spr
+## ./crypto
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+## ./ip4
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale20k-rnd
+##### ethip4-ip4scale60k-rnd
+3c AND 64b AND ndrpdr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd
+6c AND 64b AND ndrpdr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd
+12c AND 64b AND ndrpdr AND 6p3cx7veat AND drv_mlx5_core AND ethip4-ip4scale60k-rnd
+##### ethip4-ip4scale200k-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale200k-rnd
+##### ethip4-ip4scale2m-rnd
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4-ip4scale2m-rnd
+## ./ip4_tunnels
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4gtpusw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard2tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard2tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard8tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard8tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4udpwireguard1000tnlsw-ip4base
+## ./ip6
+### mellanox-cx7veat
+#### mlx5-core
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6-ip6base
+## ./l2
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND eth-l2patch
+## ./srv6
+### mellanox-cx7veat
+#### rmda-core
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
diff --git a/resources/job_specs/report_iterative/3nb-spr/dpdk-mrr-00.md b/resources/job_specs/report_iterative/3nb-spr/dpdk-mrr-00.md
new file mode 100644
index 0000000000..51136ced40
--- /dev/null
+++ b/resources/job_specs/report_iterative/3nb-spr/dpdk-mrr-00.md
@@ -0,0 +1,11 @@
+# 3nb-spr
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/3nb-spr/dpdk-ndrpdr-00.md b/resources/job_specs/report_iterative/3nb-spr/dpdk-ndrpdr-00.md
new file mode 100644
index 0000000000..8e1bc39d69
--- /dev/null
+++ b/resources/job_specs/report_iterative/3nb-spr/dpdk-ndrpdr-00.md
@@ -0,0 +1,23 @@
+# 3nb-spr
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-l2xcbase-testpmd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase-testpmd
+##### ethip4-ip4base-l3fwd
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND 9000b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base-l3fwd
diff --git a/resources/job_specs/report_iterative/3nb-spr/vpp-hoststack-00.md b/resources/job_specs/report_iterative/3nb-spr/vpp-hoststack-00.md
new file mode 100644
index 0000000000..e753e6a7d2
--- /dev/null
+++ b/resources/job_specs/report_iterative/3nb-spr/vpp-hoststack-00.md
@@ -0,0 +1,20 @@
+# 3nb-spr
+## ./hoststack
+### intel-e810cq
+#### dpdk-vfio-pci
+##### eth-ip4tcpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4tcpbase-ldpreload-iperf3
+##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpbase-ldpreload-iperf3
+1c AND 1460b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpbase-ldpreload-iperf3
+##### eth-ip4udpscale1cl10s-ldpreload-iperf3
+1c AND 1460b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpscale1cl10s-ldpreload-iperf3
+##### eth-ip4udpquicbase-vppecho
+1c AND 1280b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpquicbase-vppecho
+##### eth-ip4udpquicscale1cl10s-vppecho
+1c AND 1280b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpquicscale1cl10s-vppecho
+##### eth-ip4udpquicscale10cl1s-vppecho
+1c AND 1280b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpquicscale10cl1s-vppecho
+##### eth-ip4udpquicscale10cl10s-vppecho
+1c AND 1280b AND bps AND e810cq AND drv_vfio_pci AND eth-ip4udpquicscale10cl10s-vppecho \ No newline at end of file
diff --git a/resources/job_specs/report_iterative/3nb-spr/vpp-mrr-00.md b/resources/job_specs/report_iterative/3nb-spr/vpp-mrr-00.md
new file mode 100644
index 0000000000..ccb8aaad08
--- /dev/null
+++ b/resources/job_specs/report_iterative/3nb-spr/vpp-mrr-00.md
@@ -0,0 +1,466 @@
+# 3nb-spr
+## ./crypto
+### intel-e810xxv
+#### avf
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+### intel-e810cq
+#### avf
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+## ./ip4
+### intel-e810xxv
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+## ./ip4_tunnels
+### intel-e810xxv
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4gtpusw-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4gtpusw-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND ethip4gtpusw-ip4base
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4gtpusw-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+### intel-e810cq
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+##### ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+##### ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+##### ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 1518b AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND imix AND mrr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+## ./ip6
+### intel-e810xxv
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6base
+2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6base
+4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+### intel-e810cq
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+## ./l2
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2patch
+2c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2patch
+4c AND 64b AND mrr AND e810xxv AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND eth-l2patch
+## ./srv6
+### intel-e810xxv
+#### avf
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND mrr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+### intel-e810cq
+#### avf
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
diff --git a/resources/job_specs/report_iterative/3nb-spr/vpp-ndrpdr-00.md b/resources/job_specs/report_iterative/3nb-spr/vpp-ndrpdr-00.md
new file mode 100644
index 0000000000..d3c494affb
--- /dev/null
+++ b/resources/job_specs/report_iterative/3nb-spr/vpp-ndrpdr-00.md
@@ -0,0 +1,466 @@
+# 3nb-spr
+## ./crypto
+### intel-e810xxv
+#### avf
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+##### ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+### intel-e810cq
+#### avf
+##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+#### dpdk-vfio-pci
+##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+3c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+##### ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+## ./ip4
+### intel-e810xxv
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4-ip4base
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+## ./ip4_tunnels
+### intel-e810xxv
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND ethip4gtpusw-ip4base
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+### intel-e810xxv
+#### dpdk-vfio-pci
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+### intel-e810cq
+#### avf
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND ethip4vxlan-l2xcbase
+#### dpdk-vfio-pci
+##### ethip4vxlan-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+##### ethip4gtpusw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpusw-ip4base
+##### ethip4gtpuhw-ip4base
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4gtpuhw-ip4base
+##### ethip4udpwireguard1tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlsw-ip4base
+##### ethip4udpwireguard4tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlsw-ip4base
+##### ethip4udpwireguard100tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlsw-ip4base
+##### ethip4udpwireguard1000tnlsw-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlsw-ip4base
+##### ethip4udpwireguard1tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1tnlhwasync-ip4base
+##### ethip4udpwireguard4tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard4tnlhwasync-ip4base
+##### ethip4udpwireguard100tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard100tnlhwasync-ip4base
+##### ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND 1518b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+1c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+2c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+4c AND imix AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip4udpwireguard1000tnlhwasync-ip4base
+## ./ip6
+### intel-e810xxv
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base
+### intel-e810cq
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6-ip6base
+#### dpdk-vfio-pci
+##### ethip6-ip6base
+1c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+2c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+4c AND 78b AND ndrpdr AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+## ./l2
+### intel-e810xxv
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810xxv AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdbasemaclrn
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### dot1q-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND dot1q-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_avf AND eth-l2patch
+#### dpdk-vfio-pci
+##### eth-l2bdbasemaclrn
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2bdbasemaclrn
+##### eth-l2xcbase
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2xcbase
+##### eth-l2patch
+1c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+2c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+4c AND 64b AND ndrpdr AND e810cq AND drv_vfio_pci AND eth-l2patch
+## ./srv6
+### intel-e810xxv
+#### avf
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND e810xxv AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+### intel-e810cq
+#### avf
+##### ethip6ip6-ip6base-srv6enc1sid
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+1c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+2c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
+4c AND 78b AND ndrpdr AND e810cq AND drv_avf AND ethip6srhip6-ip6base-srv6proxy-stat
diff --git a/resources/job_specs/soak_weekly/vpp-2n-clx.md b/resources/job_specs/soak_weekly/vpp-2n-clx.md
new file mode 120000
index 0000000000..1de08259c4
--- /dev/null
+++ b/resources/job_specs/soak_weekly/vpp-2n-clx.md
@@ -0,0 +1 @@
+../report_iterative/2n-clx/vpp-soak-00.md \ No newline at end of file
diff --git a/resources/job_specs/soak_weekly/vpp-2n-icx.md b/resources/job_specs/soak_weekly/vpp-2n-icx.md
new file mode 120000
index 0000000000..28c08129d4
--- /dev/null
+++ b/resources/job_specs/soak_weekly/vpp-2n-icx.md
@@ -0,0 +1 @@
+../report_iterative/2n-icx/vpp-soak-00.md \ No newline at end of file
diff --git a/resources/job_specs/soak_weekly/vpp-2n-spr.md b/resources/job_specs/soak_weekly/vpp-2n-spr.md
new file mode 120000
index 0000000000..c11899295d
--- /dev/null
+++ b/resources/job_specs/soak_weekly/vpp-2n-spr.md
@@ -0,0 +1 @@
+../report_iterative/2n-spr/vpp-soak-00.md \ No newline at end of file
diff --git a/resources/job_specs/soak_weekly/vpp-3n-icx.md b/resources/job_specs/soak_weekly/vpp-3n-icx.md
new file mode 120000
index 0000000000..755a3659e1
--- /dev/null
+++ b/resources/job_specs/soak_weekly/vpp-3n-icx.md
@@ -0,0 +1 @@
+../report_iterative/3n-icx/vpp-soak-00.md \ No newline at end of file
diff --git a/resources/job_specs/soak_weekly/vpp-3n-icxd.md b/resources/job_specs/soak_weekly/vpp-3n-icxd.md
new file mode 120000
index 0000000000..a4fb4dd8e7
--- /dev/null
+++ b/resources/job_specs/soak_weekly/vpp-3n-icxd.md
@@ -0,0 +1 @@
+../report_iterative/3n-icxd/vpp-soak-00.md \ No newline at end of file
diff --git a/resources/job_specs/vpp_device/vpp-1n-alt.md b/resources/job_specs/vpp_device/vpp-1n-alt.md
new file mode 100644
index 0000000000..9d9c8e5bfb
--- /dev/null
+++ b/resources/job_specs/vpp_device/vpp-1n-alt.md
@@ -0,0 +1,205 @@
+# 1n-alt
+## ./container_memif
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-l2xcbase-eth-2memif-1dcr
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2xcbase-eth-2memif-1dcr
+##### ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2memif-1dcr
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase-eth-2memif-1dcr
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2xcbase-eth-2memif-1dcr
+##### ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+## ./crypto/ethip4
+### mellanox-cx6dx
+#### mlx5-core
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+##### ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+##### ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+## ./crypto/ethip6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha
+##### ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha
+## ./interfaces
+### mellanox-cx6dx
+#### mlx5-core
+##### ethicmp4-ip4base-eth-1tap
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethicmp4-ip4base-eth-1tap
+##### ethicmp4-ip4base-eth-1tap-namespace
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethicmp4-ip4base-eth-1tap-namespace
+##### ethip4-l2bdbasemaclrn-eth-2tap
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2bdbasemaclrn-eth-2tap
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-l2bdbasemaclrn-eth-2tap
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2tap
+## ./ip4
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-ip4base-adlalwlistbase
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-adlblklistbase
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-adlblklistbase
+##### ethip4-ip4base
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-ip4base
+##### ethip4-ip4base-iacldstbase
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-ipolicemarkbase
+##### ethip4tcp-nat44det
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4tcp-nat44det
+##### ethip4tcp-nat44ed
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4tcp-nat44ed
+##### ethip4udp-nat44det
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4udp-nat44det
+##### ethip4udp-nat44ed
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4udp-nat44ed
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-ip4base
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-ip4base
+### intel-x710
+#### avf
+##### ethip4-ip4base
+0c AND 64b AND scapy AND x710 AND drv_avf AND ethip4-ip4base
+## ./ip4_tunnel/lisp
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4lisp-ip4base
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4lisp-ip4base
+##### ethip4lispgpe-ip4base
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4lispgpe-ip4base
+##### ethip4lispgpe-ip6base
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4lispgpe-ip6base
+## ./ip4_tunnel
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4vxlan-l2bdbasemaclrn
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4vxlan-l2xcbase
+## ./ip6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6-ip6base-adlalwlistbase
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-adlblklistbase
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-adlblklistbase
+##### ethip6-ip6base-iacldstbase
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-iacldstbase
+##### ethip6-ip6base-ipolicemarkbase
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-ipolicemarkbase
+##### ethip6-ip6base
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6-ip6base
+## ./ip6_tunnels/lisp
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6lispgpe-ip4base
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6lispgpe-ip4base
+##### ethip6lispgpe-ip6base
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6lispgpe-ip6base
+## ./l2bd
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-l2bdbasemaclrn
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2bdbasemaclrn
+##### ethip4-l2bdbasemaclrn-iacl1sf
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2bdbasemaclrn-iacl1sf
+##### ethip4-l2bdbasemaclrn-iacl1sl
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2bdbasemaclrn-iacl1sl
+##### ethip4-l2bdbasemaclrn-macip-iacl1sl
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2bdbasemaclrn-macip-iacl1sl
+##### ethip4-l2bdbasemaclrn-oacl1sf
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2bdbasemaclrn-oacl1sf
+##### ethip4-l2bdbasemaclrn-oacl1sl
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2bdbasemaclrn-oacl1sl
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-l2bdbasemaclrn
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn
+##### ethip4-l2bdbasemaclrn-iacl1sf
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-iacl1sf
+##### ethip4-l2bdbasemaclrn-iacl1sl
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-iacl1sl
+##### ethip4-l2bdbasemaclrn-oacl1sf
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-oacl1sf
+##### ethip4-l2bdbasemaclrn-oacl1sl
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-oacl1sl
+#### avf
+##### ethip4-l2bdbasemaclrn
+0c AND 64b AND scapy AND x710 AND drv_avf AND ethip4-l2bdbasemaclrn
+## ./l2patch
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-l2patch
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2patch
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-l2patch
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2patch
+## ./l2xc
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-l2xcbase
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2xcbase
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2xcbase
+## ./srv6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6ip6-ip6base-srv6enc1sid
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6srhip6-ip6base-srv6proxy-stat
+## ./stats
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-l2xcbase-stats
+0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2xcbase-stats
+## ./vm/ethip4
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip4-ip4base-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-ip4base-eth-2vhost-1vm
+##### ethip4-l2bdbasemaclrn-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2bdbasemaclrn-eth-2vhost-1vm
+##### ethip4-l2xcbase-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND cx6dx AND drv_mlx5_core AND ethip4-l2xcbase-eth-2vhost-1vm
+## ./vm/ethip6
+### mellanox-cx6dx
+#### mlx5-core
+##### ethip6-ip6base-eth-2vhost-1vm
+# 0c AND 78b AND scapy AND cx6dx AND drv_mlx5_core AND ethip6-ip6base-eth-2vhost-1vm \ No newline at end of file
diff --git a/resources/job_specs/vpp_device/vpp-1n-skx.md b/resources/job_specs/vpp_device/vpp-1n-skx.md
new file mode 100644
index 0000000000..2b025b796c
--- /dev/null
+++ b/resources/job_specs/vpp_device/vpp-1n-skx.md
@@ -0,0 +1,208 @@
+# 1n-skx
+## ./container_memif
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase-eth-2memif-1dcr
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2xcbase-eth-2memif-1dcr
+##### ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./crypto/ethip4
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+##### ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+## ./crypto/ethip6
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha
+##### ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha
+## ./flow
+### intel-e810cq
+#### avf
+##### ethip4-flow-ip4-ipsec-ah
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-ipsec-ah
+##### ethip4-flow-ip4-ipsec-esp
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-ipsec-esp
+##### ethip4-flow-ip4-l2tpv3oip
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-l2tpv3oip
+##### ethip4-flow-ip4-ntuple-tcp
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-ntuple-tcp
+##### ethip4-flow-ip4-ntuple-udp
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-ntuple-udp
+##### ethip4-flow-ip4-tcp
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-tcp
+##### ethip4-flow-ip4-udp
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-udp
+##### ethip6-flow-ip6-ntuple-tcp
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip6-flow-ip6-ntuple-tcp
+##### ethip6-flow-ip6-ntuple-udp
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip6-flow-ip6-ntuple-udp
+##### ethip6-flow-ip6-tcp
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip6-flow-ip6-tcp
+##### ethip6-flow-ip6-udp
+0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip6-flow-ip6-udp
+#### dpdk-vfio-pci
+##### ethip4-flow-ip4-gtpu
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-gtpu
+##### ethip4-flow-ip4-ipsec-ah
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-ipsec-ah
+##### ethip4-flow-ip4-ipsec-esp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-ipsec-esp
+##### ethip4-flow-ip4-l2tpv3oip
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-l2tpv3oip
+##### ethip4-flow-ip4-ntuple-tcp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-ntuple-tcp
+##### ethip4-flow-ip4-ntuple-udp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-ntuple-udp
+##### ethip4-flow-ip4-tcp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-tcp
+##### ethip4-flow-ip4-udp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-udp
+##### ethip6-flow-ip6-ntuple-tcp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-flow-ip6-ntuple-tcp
+##### ethip6-flow-ip6-ntuple-udp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-flow-ip6-ntuple-udp
+##### ethip6-flow-ip6-tcp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-flow-ip6-tcp
+##### ethip6-flow-ip6-udp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-flow-ip6-udp
+## ./interfaces
+### intel-x710
+#### dpdk-vfio-pci
+##### ethicmp4-ip4base-eth-1tap
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethicmp4-ip4base-eth-1tap
+##### ethicmp4-ip4base-eth-1tap-namespace
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethicmp4-ip4base-eth-1tap-namespace
+##### ethip4-l2bdbasemaclrn-eth-2tap
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2tap
+## ./ip4
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-adlblklistbase
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-ip4base-adlblklistbase
+##### ethip4-ip4base
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4base-iacldstbase
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+##### ethip4tcp-nat44det
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4tcp-nat44det
+##### ethip4tcp-nat44ed
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4tcp-nat44ed
+##### ethip4udp-nat44det
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4udp-nat44det
+##### ethip4udp-nat44ed
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4udp-nat44ed
+## ./ip4_tunnel/lisp
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4lisp-ip4base
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4lisp-ip4base
+##### ethip4lispgpe-ip4base
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4lispgpe-ip4base
+##### ethip4lispgpe-ip6base
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4lispgpe-ip6base
+## ./ip4_tunnel
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4vxlan-l2bdbasemaclrn
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+## ./ip6
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip6-ip6base-adlalwlistbase
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-adlblklistbase
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6-ip6base-adlblklistbase
+##### ethip6-ip6base-iacldstbase
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+##### ethip6-ip6base-ipolicemarkbase
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6-ip6base-ipolicemarkbase
+##### ethip6-ip6base
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6-ip6base
+## ./ip6_tunnels/lisp
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip6lispgpe-ip4base
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6lispgpe-ip4base
+##### ethip6lispgpe-ip6base
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6lispgpe-ip6base
+## ./l2bd
+### intel-x710
+#### avf
+##### ethip4-l2bdbasemaclrn
+0c AND 64b AND scapy AND x710 AND drv_avf AND ethip4-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### ethip4-l2bdbasemaclrn
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn
+##### ethip4-l2bdbasemaclrn-iacl1sf
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-iacl1sf
+##### ethip4-l2bdbasemaclrn-iacl1sl
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-iacl1sl
+##### ethip4-l2bdbasemaclrn-macip-iacl1sl
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-macip-iacl1sl
+##### ethip4-l2bdbasemaclrn-oacl1sf
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-oacl1sf
+##### ethip4-l2bdbasemaclrn-oacl1sl
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-oacl1sl
+## ./l2patch
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-l2patch
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2patch
+## ./l2xc
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2xcbase
+## ./srv6
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip6ip6-ip6base-srv6enc1sid
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+## ./stats
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase-stats
+0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2xcbase-stats
+## ./vm/ethip4
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip4-ip4base-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhost-1vm
+##### ethip4-l2bdbasemaclrn-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2vhost-1vm
+##### ethip4-l2xcbase-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND x710 AND drv_vfio_pci AND ethip4-l2xcbase-eth-2vhost-1vm
+## ./vm/ethip6
+### intel-x710
+#### dpdk-vfio-pci
+##### ethip6-ip6base-eth-2vhost-1vm
+# 0c AND 78b AND scapy AND x710 AND drv_vfio_pci AND ethip6-ip6base-eth-2vhost-1vm
diff --git a/resources/job_specs/vpp_device/vpp-1n-spr.md b/resources/job_specs/vpp_device/vpp-1n-spr.md
new file mode 100644
index 0000000000..432d78a7f4
--- /dev/null
+++ b/resources/job_specs/vpp_device/vpp-1n-spr.md
@@ -0,0 +1,208 @@
+# 1n-spr
+## ./container_memif
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase-eth-2memif-1dcr
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2xcbase-eth-2memif-1dcr
+##### ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./crypto/ethip4
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+##### ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+## ./crypto/ethip6
+### intel-e810
+#### dpdk-vfio-pci
+##### ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha
+##### ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha
+## ./flow
+### intel-e810cq
+#### avf
+##### ethip4-flow-ip4-ipsec-ah
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-ipsec-ah
+##### ethip4-flow-ip4-ipsec-esp
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-ipsec-esp
+##### ethip4-flow-ip4-l2tpv3oip
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-l2tpv3oip
+##### ethip4-flow-ip4-ntuple-tcp
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-ntuple-tcp
+##### ethip4-flow-ip4-ntuple-udp
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-ntuple-udp
+##### ethip4-flow-ip4-tcp
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-tcp
+##### ethip4-flow-ip4-udp
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-flow-ip4-udp
+##### ethip6-flow-ip6-ntuple-tcp
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip6-flow-ip6-ntuple-tcp
+##### ethip6-flow-ip6-ntuple-udp
+# k0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip6-flow-ip6-ntuple-udp
+##### ethip6-flow-ip6-tcp
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip6-flow-ip6-tcp
+##### ethip6-flow-ip6-udp
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip6-flow-ip6-udp
+#### dpdk-vfio-pci
+##### ethip4-flow-ip4-gtpu
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-gtpu
+##### ethip4-flow-ip4-ipsec-ah
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-ipsec-ah
+##### ethip4-flow-ip4-ipsec-esp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-ipsec-esp
+##### ethip4-flow-ip4-l2tpv3oip
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-l2tpv3oip
+##### ethip4-flow-ip4-ntuple-tcp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-ntuple-tcp
+##### ethip4-flow-ip4-ntuple-udp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-ntuple-udp
+##### ethip4-flow-ip4-tcp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-tcp
+##### ethip4-flow-ip4-udp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-flow-ip4-udp
+##### ethip6-flow-ip6-ntuple-tcp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-flow-ip6-ntuple-tcp
+##### ethip6-flow-ip6-ntuple-udp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-flow-ip6-ntuple-udp
+##### ethip6-flow-ip6-tcp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-flow-ip6-tcp
+##### ethip6-flow-ip6-udp
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-flow-ip6-udp
+## ./interfaces
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethicmp4-ip4base-eth-1tap
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethicmp4-ip4base-eth-1tap
+##### ethicmp4-ip4base-eth-1tap-namespace
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethicmp4-ip4base-eth-1tap-namespace
+##### ethip4-l2bdbasemaclrn-eth-2tap
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2tap
+## ./ip4
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-adlblklistbase
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-ip4base-adlblklistbase
+##### ethip4-ip4base
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4base-iacldstbase
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+##### ethip4tcp-nat44det
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4tcp-nat44det
+##### ethip4tcp-nat44ed
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4tcp-nat44ed
+##### ethip4udp-nat44det
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4udp-nat44det
+##### ethip4udp-nat44ed
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4udp-nat44ed
+## ./ip4_tunnel/lisp
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4lisp-ip4base
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4lisp-ip4base
+##### ethip4lispgpe-ip4base
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4lispgpe-ip4base
+##### ethip4lispgpe-ip6base
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4lispgpe-ip6base
+## ./ip4_tunnel
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4vxlan-l2bdbasemaclrn
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+## ./ip6
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip6-ip6base-adlalwlistbase
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-adlblklistbase
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-ip6base-adlblklistbase
+##### ethip6-ip6base-iacldstbase
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+##### ethip6-ip6base-ipolicemarkbase
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-ip6base-ipolicemarkbase
+##### ethip6-ip6base
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-ip6base
+## ./ip6_tunnels/lisp
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip6lispgpe-ip4base
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6lispgpe-ip4base
+##### ethip6lispgpe-ip6base
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6lispgpe-ip6base
+## ./l2bd
+### intel-e810cq
+#### avf
+##### ethip4-l2bdbasemaclrn
+# 0c AND 64b AND scapy AND e810cq AND drv_avf AND ethip4-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### ethip4-l2bdbasemaclrn
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2bdbasemaclrn
+##### ethip4-l2bdbasemaclrn-iacl1sf
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-iacl1sf
+##### ethip4-l2bdbasemaclrn-iacl1sl
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-iacl1sl
+##### ethip4-l2bdbasemaclrn-macip-iacl1sl
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-macip-iacl1sl
+##### ethip4-l2bdbasemaclrn-oacl1sf
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-oacl1sf
+##### ethip4-l2bdbasemaclrn-oacl1sl
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-oacl1sl
+## ./l2patch
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4-l2patch
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2patch
+## ./l2xc
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2xcbase
+## ./srv6
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip6ip6-ip6base-srv6enc1sid
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+## ./stats
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase-stats
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2xcbase-stats
+## ./vm/ethip4
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip4-ip4base-eth-2vhost-1vm
+0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-ip4base-eth-2vhost-1vm
+##### ethip4-l2bdbasemaclrn-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2vhost-1vm
+##### ethip4-l2xcbase-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND e810cq AND drv_vfio_pci AND ethip4-l2xcbase-eth-2vhost-1vm
+## ./vm/ethip6
+### intel-e810cq
+#### dpdk-vfio-pci
+##### ethip6-ip6base-eth-2vhost-1vm
+# 0c AND 78b AND scapy AND e810cq AND drv_vfio_pci AND ethip6-ip6base-eth-2vhost-1vm
diff --git a/resources/job_specs/vpp_device/vpp-1n-vbox.md b/resources/job_specs/vpp_device/vpp-1n-vbox.md
new file mode 100644
index 0000000000..62e491bf6b
--- /dev/null
+++ b/resources/job_specs/vpp_device/vpp-1n-vbox.md
@@ -0,0 +1,158 @@
+# 1n-vbox
+## ./container_memif
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase-eth-2memif-1dcr
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2xcbase-eth-2memif-1dcr
+##### ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+##### ethip4-ip4base-eth-2memif-1dcr
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-ip4base-eth-2memif-1dcr
+## ./crypto/ethip4
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+##### ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+## ./crypto/ethip6
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha
+##### ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha
+## ./interfaces
+### virtual
+#### dpdk-vfio-pci
+##### ethicmp4-ip4base-eth-1tap
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethicmp4-ip4base-eth-1tap
+##### ethicmp4-ip4base-eth-1tap-namespace
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethicmp4-ip4base-eth-1tap-namespace
+##### ethip4-l2bdbasemaclrn-eth-2tap
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2tap
+## ./ip4
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip4-ip4base-adlalwlistbase
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
+##### ethip4-ip4base-adlblklistbase
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-ip4base-adlblklistbase
+##### ethip4-ip4base
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-ip4base
+##### ethip4-ip4base-iacldstbase
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
+##### ethip4-ip4base-ipolicemarkbase
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
+##### ethip4tcp-nat44det
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4tcp-nat44det
+##### ethip4tcp-nat44ed
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4tcp-nat44ed
+##### ethip4udp-nat44det
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4udp-nat44det
+##### ethip4udp-nat44ed
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4udp-nat44ed
+## ./ip4_tunnel/lisp
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip4lisp-ip4base
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4lisp-ip4base
+##### ethip4lispgpe-ip4base
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4lispgpe-ip4base
+##### ethip4lispgpe-ip6base
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4lispgpe-ip6base
+## ./ip4_tunnel
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip4--ethip4udpgeneve-1tun-ip4base
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4--ethip4udpgeneve-1tun-ip4base
+##### ethip4vxlan-l2bdbasemaclrn
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
+##### ethip4vxlan-l2xcbase
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4vxlan-l2xcbase
+## ./ip6
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip6-ip6base-adlalwlistbase
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
+##### ethip6-ip6base-adlblklistbase
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6-ip6base-adlblklistbase
+##### ethip6-ip6base-iacldstbase
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
+##### ethip6-ip6base-ipolicemarkbase
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6-ip6base-ipolicemarkbase
+##### ethip6-ip6base
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6-ip6base
+## ./ip6_tunnels/lisp
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip6lispgpe-ip4base
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6lispgpe-ip4base
+##### ethip6lispgpe-ip6base
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6lispgpe-ip6base
+## ./l2bd
+### vbox-virtual
+#### avf
+##### ethip4-l2bdbasemaclrn
+0c AND 64b AND scapy AND virtual AND drv_avf AND ethip4-l2bdbasemaclrn
+#### dpdk-vfio-pci
+##### ethip4-l2bdbasemaclrn
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2bdbasemaclrn
+##### ethip4-l2bdbasemaclrn-iacl1sf
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-iacl1sf
+##### ethip4-l2bdbasemaclrn-iacl1sl
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-iacl1sl
+##### ethip4-l2bdbasemaclrn-macip-iacl1sl
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-macip-iacl1sl
+##### ethip4-l2bdbasemaclrn-oacl1sf
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-oacl1sf
+##### ethip4-l2bdbasemaclrn-oacl1sl
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-oacl1sl
+## ./l2patch
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip4-l2patch
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2patch
+## ./l2xc
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2xcbase
+## ./srv6
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip6ip6-ip6base-srv6enc1sid
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
+##### ethip6srhip6-ip6base-srv6enc2sids
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
+##### ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+##### ethip6srhip6-ip6base-srv6proxy-dyn
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-dyn
+##### ethip6srhip6-ip6base-srv6proxy-masq
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
+##### ethip6srhip6-ip6base-srv6proxy-stat
+0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
+## ./stats
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip4-l2xcbase-stats
+0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2xcbase-stats
+## ./vm/ethip4
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip4-ip4base-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-ip4base-eth-2vhost-1vm
+##### ethip4-l2bdbasemaclrn-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2bdbasemaclrn-eth-2vhost-1vm
+##### ethip4-l2xcbase-eth-2vhost-1vm
+# 0c AND 64b AND scapy AND virtual AND drv_vfio_pci AND ethip4-l2xcbase-eth-2vhost-1vm
+## ./vm/ethip6
+### vbox-virtual
+#### dpdk-vfio-pci
+##### ethip6-ip6base-eth-2vhost-1vm
+# 0c AND 78b AND scapy AND virtual AND drv_vfio_pci AND ethip6-ip6base-eth-2vhost-1vm
diff --git a/resources/libraries/bash/config/defaults b/resources/libraries/bash/config/defaults
deleted file mode 100644
index 6a25a5f04d..0000000000
--- a/resources/libraries/bash/config/defaults
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-typeset -A cfg
-cfg=( # set default values in config array
- [K8S_CALICO]="${SCRIPT_DIR}/../../templates/kubernetes/calico_v2.6.3.yaml"
- [K8S_CONTIV_VPP]="https://raw.githubusercontent.com/contiv/vpp/master/k8s/contiv-vpp.yaml"
- [K8S_CSIT]="${SCRIPT_DIR}/../../templates/kubernetes/csit.yaml"
-)
diff --git a/resources/libraries/bash/entry/README.txt b/resources/libraries/bash/entry/README.txt
index bf7897f8a6..8757c9b013 100644
--- a/resources/libraries/bash/entry/README.txt
+++ b/resources/libraries/bash/entry/README.txt
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/bisect.sh b/resources/libraries/bash/entry/bisect.sh
new file mode 100644
index 0000000000..d5cb1d51ba
--- /dev/null
+++ b/resources/libraries/bash/entry/bisect.sh
@@ -0,0 +1,188 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+set -exuo pipefail
+
+# This entry script does not change which CSIT branch is used,
+# use "with_oper_for_vpp.sh" wrapper for that.
+#
+# This script is to be used for locating performance regressions
+# (or breakages, or progressions, or fixes).
+# It uses "git bisect" commands on the VPP repository,
+# between the triggered VPP patch and a commit specified in the first argument
+# of the gerrit comment text.
+# The other arguments are used as tag expressions for selecting tests as usual.
+# Many different result types are supported.
+#
+# Logs are present in the archive directory, but usually the main output
+# is the offending commit as identified by "git bisect", visible in console.
+#
+# While selecting just one testcase is the intended use,
+# this script should be able to deal with multiple testcases as well,
+# grouping all the values together. This usually inflates
+# the standard deviation, but it is not clear how that affects the bisection.
+#
+# For the bisection decision, jumpavg library is used,
+# deciding whether shorter description is achieved by forcefully grouping
+# the middle results with the old, or with the new ones.
+# If the shortest description is achieved with 3 separate groups,
+# bisect interval focuses on biggest relative change
+# (with respect to pairwise maximum).
+#
+# If a test fails, an artificial result is used to distinguish
+# from normal results. Currently, the value 1.0, with the multiplicity of 4.
+#
+# Note that if there was a VPP API change that affects tests in the interval,
+# there frequently is no good way for single CSIT commit to work there.
+# You can try manually reverting the CSIT changes to make tests pass,
+# possibly needing to search over multiple subintervals.
+# Using and older CSIT commit (possibly cherry-picking the bisect Change
+# if it was not present in CSIT compatible with old enough VPP builds)
+# is the fastest solution; but beware of CSIT-induced performance effects
+# (e.g. TRex settings).
+#
+# If a regression happens during a subinterval where the test fails
+# due to a bug in VPP, you may try to create a new commit chain
+# with the fix cherry-picked to the start of the interval.
+# Do not do that as a chain in Gerrit, it would be long and Gerrit will refuse
+# edits of already merged Changes.
+# Instead, add a block of bash code to do the manipulation
+# on local git history between checkout and bisect.
+#
+# At the start, the script executes first bisect iteration in an attempt
+# to avoid work if the search interval has only one commit (or is invalid).
+# Only when the work is needed, earliest and latest commits are built
+# and tested. Branches "earliest", "middle" and "latest" are temporarily created
+# as a way to remember which commits to check out.
+#
+# Test results are parsed from json files,
+# symlinks are used to tell python script which results to compare.
+#
+# Assumptions:
+# + There is a directory holding VPP repo with patch under test checked out.
+# + It contains csit subdirectory with CSIT code to use (this script is there).
+# + Everything needed to build VPP is already installed locally.
+# Consequences:
+# + Working directory is switched to the VPP repo root.
+# + At the end, VPP repo has checked out and built some commit,
+# as chosen by "git bisect".
+# + Directories build_root, build and csit are reset during the run.
+# + The following directories (relative to VPP repo) are (re)created:
+# ++ csit_{earliest,middle,latest}, build_{earliest,latest},
+# ++ archive, csit/archive, csit/download_dir.
+# + Symlinks csit_{early,late,mid} are also created.
+# Arguments:
+# - ${1} - If present, override JOB_NAME to simplify manual usage.
+
+# "set -eu" handles failures from the following two lines.
+BASH_ENTRY_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
+BASH_FUNCTION_DIR="$(readlink -e "${BASH_ENTRY_DIR}/../function")"
+source "${BASH_FUNCTION_DIR}/common.sh" || {
+ echo "Source failed." >&2
+ exit 1
+}
+source "${BASH_FUNCTION_DIR}/per_patch.sh" || die "Source failed."
+# Cleanup needs ansible.
+source "${BASH_FUNCTION_DIR}/ansible.sh" || die "Source failed."
+common_dirs || die
+check_prerequisites || die
+set_perpatch_vpp_dir || die
+get_test_code "${1-}" || die
+get_test_tag_string || die
+# Unfortunately, git bisect only works at the top of the repo.
+cd "${VPP_DIR}" || die
+
+# Save the current commit.
+git checkout -b "latest"
+# Save the lower bound commit.
+git checkout -b "earliest"
+git reset --hard "${GIT_BISECT_FROM}"
+
+# This is the place for custom code manipulating local git history.
+
+#git checkout -b "alter"
+#...
+#git checkout "latest"
+#git rebase "alter" || git rebase --skip
+#git branch -D "alter"
+
+git bisect start || die
+# TODO: Can we add a trap for "git bisect reset" or even "deactivate",
+# without affecting the inner trap for unreserve and cleanup?
+git checkout "latest"
+git status || die
+git describe || die
+git bisect new || die
+# Performing first iteration early to avoid testing or even building.
+git checkout "earliest" || die "Failed to checkout earliest commit."
+git status || die
+git describe || die
+# The first iteration.
+git bisect old | tee "git.log" || die "Invalid bisect interval?"
+git checkout -b "middle" || die "Failed to create branch: middle"
+git status || die
+git describe || die
+if head -n 1 "git.log" | cut -b -11 | fgrep -q "Bisecting:"; then
+ echo "Building and testing initial bounds."
+else
+ echo "Single commit, no work needed."
+ exit 0
+fi
+# Building latest first, good for avoiding DPDK rebuilds.
+git checkout "latest" || die "Failed to checkout latest commit."
+build_vpp_ubuntu "LATEST" || die
+set_aside_build_artifacts "latest" || die
+git checkout "earliest" || die "Failed to checkout earliest commit."
+git status || die
+git describe || die
+build_vpp_ubuntu "EARLIEST" || die
+set_aside_build_artifacts "earliest" || die
+git checkout "middle" || die "Failed to checkout middle commit."
+git branch -D "earliest" "latest" || die "Failed to remove branches."
+# Done with repo manipulation for now, testing commences.
+initialize_csit_dirs "earliest" "middle" "latest" || die
+set_perpatch_dut || die
+select_topology || die
+select_arch_os || die
+activate_virtualenv "${VPP_DIR}" || die
+generate_tests || die
+archive_tests || die
+
+# TODO: Does it matter which build is tested first?
+
+select_build "build_earliest" || die
+check_download_dir || die
+reserve_and_cleanup_testbed || die
+run_robot || die
+move_test_results "csit_earliest" || die
+ln -s -T "csit_earliest" "csit_early" || die
+
+# Explicit cleanup, in case the previous test left the testbed in a bad shape.
+ansible_playbook "cleanup"
+
+select_build "build_latest" || die
+check_download_dir || die
+run_robot || die
+move_test_results "csit_latest" || die
+ln -s -T "csit_latest" "csit_late" || die
+untrap_and_unreserve_testbed || die
+
+# See function documentation for the logic in the loop.
+main_bisect_loop || die
+# In worst case, the middle branch is still checked out.
+# TODO: Is there a way to ensure "middle" branch is always deleted?
+git branch -D "middle" || true
+# Delete symlinks to prevent duplicate archiving.
+rm -vrf "csit_early" "csit_late" "csit_mid"
diff --git a/resources/libraries/bash/entry/bootstrap_aws_eb_version_deploy.sh b/resources/libraries/bash/entry/bootstrap_aws_eb_version_deploy.sh
new file mode 100755
index 0000000000..15d6dae405
--- /dev/null
+++ b/resources/libraries/bash/entry/bootstrap_aws_eb_version_deploy.sh
@@ -0,0 +1,32 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+set -exuo pipefail
+
+# Assumptions:
+# + There is a directory holding CSIT code to use (this script is there).
+# Consequences (and specific assumptions) are multiple,
+# examine tree of functions for current description.
+
+# "set -eu" handles failures from the following two lines.
+BASH_ENTRY_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
+BASH_FUNCTION_DIR="$(readlink -e "${BASH_ENTRY_DIR}/../function")"
+source "${BASH_FUNCTION_DIR}/common.sh" || {
+ echo "Source failed." >&2
+ exit 1
+}
+source "${BASH_FUNCTION_DIR}/eb_version.sh" || die "Source failed."
+source "${BASH_FUNCTION_DIR}/hugo.sh" || die "Source failed."
+source "${BASH_FUNCTION_DIR}/terraform.sh" || die "Source failed."
+common_dirs || die
+eb_version_deploy || die
diff --git a/resources/libraries/bash/entry/bootstrap_aws_eb_version_verify.sh b/resources/libraries/bash/entry/bootstrap_aws_eb_version_verify.sh
new file mode 100755
index 0000000000..362a2f78af
--- /dev/null
+++ b/resources/libraries/bash/entry/bootstrap_aws_eb_version_verify.sh
@@ -0,0 +1,32 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+set -exuo pipefail
+
+# Assumptions:
+# + There is a directory holding CSIT code to use (this script is there).
+# Consequences (and specific assumptions) are multiple,
+# examine tree of functions for current description.
+
+# "set -eu" handles failures from the following two lines.
+BASH_ENTRY_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
+BASH_FUNCTION_DIR="$(readlink -e "${BASH_ENTRY_DIR}/../function")"
+source "${BASH_FUNCTION_DIR}/common.sh" || {
+ echo "Source failed." >&2
+ exit 1
+}
+source "${BASH_FUNCTION_DIR}/eb_version.sh" || die "Source failed."
+source "${BASH_FUNCTION_DIR}/hugo.sh" || die "Source failed."
+source "${BASH_FUNCTION_DIR}/terraform.sh" || die "Source failed."
+common_dirs || die
+eb_version_build_verify || die
diff --git a/resources/libraries/bash/entry/bootstrap_report.sh b/resources/libraries/bash/entry/bootstrap_report.sh
new file mode 100755
index 0000000000..47a9d2e3d4
--- /dev/null
+++ b/resources/libraries/bash/entry/bootstrap_report.sh
@@ -0,0 +1,32 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+set -exuo pipefail
+
+# Assumptions:
+# + There is a directory holding CSIT code to use (this script is there).
+# Consequences (and specific assumptions) are multiple,
+# examine tree of functions for current description.
+
+# "set -eu" handles failures from the following two lines.
+BASH_ENTRY_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
+BASH_FUNCTION_DIR="$(readlink -e "${BASH_ENTRY_DIR}/../function")"
+source "${BASH_FUNCTION_DIR}/common.sh" || {
+ echo "Source failed." >&2
+ exit 1
+}
+source "${BASH_FUNCTION_DIR}/eb_version.sh" || die "Source failed."
+common_dirs || die
+activate_virtualenv || die
+generate_report || die
+die_on_error || die
diff --git a/resources/libraries/bash/entry/bootstrap_verify_perf.sh b/resources/libraries/bash/entry/bootstrap_verify_perf.sh
index fc3344010b..18dfd08c39 100644..100755
--- a/resources/libraries/bash/entry/bootstrap_verify_perf.sh
+++ b/resources/libraries/bash/entry/bootstrap_verify_perf.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -32,21 +32,21 @@ source "${BASH_FUNCTION_DIR}/common.sh" || {
}
source "${BASH_FUNCTION_DIR}/gather.sh" || die "Source failed."
source "${BASH_FUNCTION_DIR}/ansible.sh" || die "Source failed."
+source "${BASH_FUNCTION_DIR}/terraform.sh" || die "Source failed."
common_dirs || die
check_prerequisites || die
get_test_code "${1-}" || die
get_test_tag_string || die
-select_topology || die
select_arch_os || die
gather_build || die
check_download_dir || die
activate_virtualenv || die
generate_tests || die
archive_tests || die
+prepare_topology || die
+select_topology || die
reserve_and_cleanup_testbed || die
-select_tags || die
-compose_pybot_arguments || die
-run_pybot || die
-untrap_and_unreserve_testbed || die
+run_robot || die
move_archives || die
-die_on_pybot_error || die
+untrap_and_unreserve_testbed || die
+die_on_robot_error || die
diff --git a/resources/libraries/bash/entry/bootstrap_vpp_device.sh b/resources/libraries/bash/entry/bootstrap_vpp_device.sh
index ef7bb08dfa..fd6279f8c7 100755
--- a/resources/libraries/bash/entry/bootstrap_vpp_device.sh
+++ b/resources/libraries/bash/entry/bootstrap_vpp_device.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -35,16 +35,15 @@ common_dirs || die
check_prerequisites || die
get_test_code "${1-}" || die
get_test_tag_string || die
-select_topology || die
select_arch_os || die
gather_build || die
check_download_dir || die
activate_virtualenv || die
generate_tests || die
archive_tests || die
+prepare_topology || die
+select_topology || die
activate_docker_topology || die
-select_vpp_device_tags || die
-compose_pybot_arguments || die
-run_pybot || die
+run_robot || die
move_archives || die
-die_on_pybot_error || die
+die_on_robot_error || die
diff --git a/resources/libraries/bash/entry/check/README.txt b/resources/libraries/bash/entry/check/README.txt
deleted file mode 100644
index a72274464c..0000000000
--- a/resources/libraries/bash/entry/check/README.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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 directory contains checker scripts and other files they need.
-Each checker script is assumed to be run from tox,
-when working directory is set to ${CSIT_DIR}.
-Each script should:
-+ Return nonzero exit code when it fails.
-++ The tox might ignore the code when the check is not blocking.
-+ Write less verbose output to stderr.
-+ Write (to stderr) PASSED or FAILED to help with debugging.
-+ Direct more verbose output to appropriately named .log file.
-+ Only the output suitable for automated processing by an external caller
- should be written to stdout.
-++ The level of "less verbose" depends on check and state of codebase.
-+ TODO: Should we carefully document which files are
- whitelisted/blacklisted for a particulat check?
diff --git a/resources/libraries/bash/entry/check/doc_verify.sh b/resources/libraries/bash/entry/check/doc_verify.sh
deleted file mode 100644
index 50b3d2db17..0000000000
--- a/resources/libraries/bash/entry/check/doc_verify.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-set -xeuo pipefail
-
-# This file should be executed from tox, as the assumend working directory
-# is different from where this file is located.
-# This file does not have executable flag nor shebang,
-# to dissuade non-tox callers.
-
-# "set -eu" handles failures from the following two lines.
-BASH_CHECKS_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
-BASH_FUNCTION_DIR="$(readlink -e "${BASH_CHECKS_DIR}/../../function")"
-source "${BASH_FUNCTION_DIR}/common.sh" || {
- echo "Source failed." >&2
- exit 1
-}
-
-common_dirs || die
-log_file="$(pwd)/doc_verify.log" || die
-
-# Pre-cleanup.
-rm -f "${log_file}" || die
-rm -f "${DOC_GEN_DIR}/csit.docs.tar.gz" || die
-rm -rf "${DOC_GEN_DIR}/_build" || die
-
-# Documentation generation.
-# Here we do store only stderr to file while stdout (inlcuding Xtrace) is
-# printed to console. This way we can track increased errors in future.
-# We do not need to do trap as the env will be closed after tox finished the
-# task.
-exec 3>&1 || die
-export BASH_XTRACEFD="3" || die
-
-pushd "${DOC_GEN_DIR}" || die
-source ./run_doc.sh ${GERRIT_BRANCH:-local} 2> ${log_file} || true
-popd || die
-
-if [[ ! -f "${log_file}" ]] || [[ -s "${log_file}" ]]; then
- # Output file not exists or is non empty.
- warn
- warn "Doc verify checker: FAIL"
- exit 1
-fi
-
-warn
-warn "Doc verify checker: PASS"
diff --git a/resources/libraries/bash/entry/check/tc_coverage.sh b/resources/libraries/bash/entry/check/tc_coverage.sh
deleted file mode 100644
index 2fda5f7d52..0000000000
--- a/resources/libraries/bash/entry/check/tc_coverage.sh
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-set -xeuo pipefail
-
-# This file should be executed from tox, as the assumend working directory
-# is different from where this file is located.
-# This file does not have executable flag nor shebang,
-# to dissuade non-tox callers.
-
-# "set -eu" handles failures from the following two lines.
-BASH_CHECKS_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
-BASH_FUNCTION_DIR="$(readlink -e "${BASH_CHECKS_DIR}/../../function")"
-source "${BASH_FUNCTION_DIR}/common.sh" || {
- echo "Source failed." >&2
- exit 1
-}
-
-# Grep of interest: We want all tc01- prefixed (skip TC variations for now).
-# Currently script assumes all variations inside to be part of either
-# auto-generation or not checked at all (VIRL derivates).
-r_grep="tc01-"
-# Parse grep of interest (learn path, learn suite, learn testcase name).
-r_parse='(.*)\/(.*).robot.*(tc[[:digit:]]{2}-.*)'
-
-rm -f "tc_coverage.log" || die
-
-# Disabling -x: Following lines are doing too much garbage output.
-set +x
-
-# Grep interest.
-grep_match=$(grep -RE "${r_grep}" tests/*) || die
-# Extract data from the grep output.
-suites_dirs=($(printf "${grep_match}" | sed -re "s/${r_parse}/\1/")) || die
-suites_names=($(printf "${grep_match}" | sed -re "s/${r_parse}/\2/")) || die
-testcases_names=($(printf "${grep_match}" | sed -re "s/${r_parse}/\3/")) || die
-
-# Extract 2N suites from the global testcase list and normalize output.
-suites_2n=($(printf '%s\n' "${suites_names[@]}" | \
- grep -E "^(2n1l|2n)-" | \
- sed -re "s/(2n1l|2n)-//"))
-# Extract 3N suites from the global testcase list.
-suites_3n=($(printf '%s\n' "${suites_names[@]}" | \
- grep -vE "^(2n1l|2n|eth2p)-"))
-# Extract vpp_device suites from the global testcase list.
-# Code will try to map the naming to perf by normalizing output.
-suites_dev=($(printf '%s\n' "${suites_names[@]}" | \
- grep -E "^eth2p-" | \
- sed -re "s/eth2p-/10ge2p1x710-/" | \
- sed -re "s/-dev/-ndrpdr/" | \
- sed -re "s/-ethicmpv/-ethip/"))
-
-# Compute intersection of arrays.
-intersection_3n2n=($(comm -12 <(printf '%s\n' "${suites_3n[@]}" | sort) \
- <(printf '%s\n' "${suites_2n[@]}" | sort)))
-intersection_3ndev=($(comm -12 <(printf '%s\n' "${suites_2n[@]}" | sort) \
- <(printf '%s\n' "${suites_dev[@]}" | sort)))
-
-# Print the results in CSV format.
-echo "Suite name;Testcase name;2n version;VPP Device version" \
- > tc_coverage.log
-for i in "${!suites_names[@]}"; do
- if [[ ! "${suites_names[i]}" =~ ^(2n1l|2n|eth2p)-.* ]]; then
- echo -n "${suites_names[i]};${testcases_names[i]}" \
- >> tc_coverage.log
- if [[ "${intersection_3n2n[@]}" =~ "${suites_names[i]}" ]]; then
- echo -n ";yes" >> tc_coverage.log
- else
- echo -n ";no" >> tc_coverage.log
- fi
- if [[ "${intersection_3ndev[@]}" =~ "${suites_names[i]}" ]]; then
- echo ";yes" >> tc_coverage.log
- else
- echo ";no" >> tc_coverage.log
- fi
- fi
-done
-
-set -x
-
-echo "Count 2n: ${#suites_2n[@]}"
-echo "Count 3n: ${#suites_3n[@]}"
-echo "Count dev: ${#suites_dev[@]}"
-echo "Coverage 2n3n: ${#intersection_3n2n[@]}"
-echo "Coverage 3ndev: ${#intersection_3ndev[@]}"
-
-warn
-warn "Testcase coverage checker: PASS"
diff --git a/resources/libraries/bash/entry/check/tc_naming.sh b/resources/libraries/bash/entry/check/tc_naming.sh
deleted file mode 100644
index e9f86fc0dd..0000000000
--- a/resources/libraries/bash/entry/check/tc_naming.sh
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-set -xeuo pipefail
-
-# This file should be executed from tox, as the assumend working directory
-# is different from where this file is located.
-# This file does not have executable flag nor shebang,
-# to dissuade non-tox callers.
-
-# "set -eu" handles failures from the following two lines.
-BASH_CHECKS_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
-BASH_FUNCTION_DIR="$(readlink -e "${BASH_CHECKS_DIR}/../../function")"
-source "${BASH_FUNCTION_DIR}/common.sh" || {
- echo "Source failed." >&2
- exit 1
-}
-
-# Grep of interest: We want all [0-9]{2,4}B- or IMIX- prefixed.
-# Currently script assumes all variations inside to be part of either
-# auto-generation or not checked at all (VIRL derivates).
-r_grep="([0-9]{2,4}B|IMIX)-"
-# Parse grep of interest (learn path, learn suite, learn testcase name).
-r_parse='(.*)\/(.*).robot.*(([0-9]{2,4}B|IMIX)-.*)'
-
-# CSIT Testcase naming convention rules.
-# https://wiki.fd.io/view/CSIT/csit-test-naming
-# Rules are defined as regular expressions in ordered array and checked in order
-# in a loop, where every iteration is catenated with previous rules. This way we
-# can detect where exactly the naming does not meet criteria and print error
-# from rule string array. This imply that rules are defined in a way of a single
-# string. First rule must start with ^ and last is terminated by $.
-# Rules are written from Left to Right.
-# Bash regular expression logic is used. Once the error is raised the checker is
-# breaked for current Testcase marking the expected fail.
-# One caveat of this solution is that we cannot proceed to check full names now
-# as majority of Testcases does not meet naming criteria.
-s_testc_rules=(
- 'packet size'
- 'core combination'
- 'NIC driver mode'
- 'packet encapsulation on L2 layer'
- 'test type'
- )
-r_testc_rules=(
- '^([[:digit:]]{2,4}B|IMIX)-'
- '([[:digit:]]+c-){0,1}'
- '(avf-|1lbvpplacp-|2lbvpplacp-){0,1}'
- '(eth|dot1q|dot1ad)'
- # TODO: Packet encapsulation (here majority of TC starts failing).
- #'(ip4|ip6|ip6ip6|icmpv4|icmpv6)'
- #'(ipsec[[:digit:]]+tnlhw|ipsec[[:digit:]]+tnlsw|'
- #'srhip6|tcp|udp|lispip6|lispip4|vxlan){0,1}'
- #'(http){0,1}-'
- '(.*)-(dev|ndrpdr|bps|cps|rps|reconf)$'
- )
-s_suite_rules=(
- 'number of SUT nodes'
- 'NIC card'
- 'NIC driver mode'
- 'packet encapsulation on L2 layer'
- 'test type'
- )
-r_suite_rules=(
- '^(2n1l|2n){0,1}-'
- '(eth2p|10ge2p1x710)-'
- '(avf-|1lbvpplacp-|2lbvpplacp-){0,1}'
- '(eth|dot1q|dot1ad)'
- # TODO: Packet encapsulation (here majority of TC starts failing).
- #'(ip4|ip6|ip6ip6|icmpv4|icmpv6)'
- #'(ipsec[[:digit:]]+tnlhw|ipsec[[:digit:]]+tnlsw|'
- #'srhip6|tcp|udp|lispip6|lispip4|vxlan){0,1}'
- #'(http){0,1}-'
- '(.*)-(dev|ndrpdr|bps|cps|rps|reconf)$'
- )
-
-rm -f "tc_naming.log" || die
-
-# Disabling -x: Following lines are doing too much garbage output.
-set +x
-
-# Grep interest.
-grep_match=$(grep -RE "${r_grep}" tests/*) || die
-# Extract data from the grep output.
-suites_dirs=($(printf "${grep_match}" | sed -re "s/${r_parse}/\1/")) || die
-suites_names=($(printf "${grep_match}" | sed -re "s/${r_parse}/\2/")) || die
-testcases_names=($(printf "${grep_match}" | sed -re "s/${r_parse}/\3/")) || die
-
-# Naming check.
-total_failed_tc=0
-total_failed_su=0
-for idx in "${!testcases_names[@]}"; do
- for pass in "${!r_suite_rules[@]}"; do
- r_rule=$(printf '%s' "${r_suite_rules[@]:1:pass}")
- if [[ ! "${suites_names[idx]}" =~ ${r_rule} ]]; then
- msg=""
- msg+="${suites_dirs[idx]}/${suites_names[idx]} / "
- msg+="${testcases_names[idx]} ${s_suite_rules[pass]} "
- msg+="is not matching suite naming rule!"
- echo "${msg}" | tee -a "tc_naming.log" || die
- total_failed_su=$((total_failed_su + 1))
- break
- fi
- done
- for pass in "${!r_testc_rules[@]}"; do
- r_rule=$(printf '%s' "${r_testc_rules[@]:1:pass}")
- if [[ ! "${testcases_names[idx]}" =~ ${r_rule} ]]; then
- msg=""
- msg+="${suites_dirs[idx]}/${suites_names[idx]} / "
- msg+="${testcases_names[idx]} ${s_testc_rules[pass]} "
- msg+="is not matching testcase naming rule!"
- echo "${msg}" | tee -a "tc_naming.log" || die
- total_failed_tc=$((total_failed_tc + 1))
- break
- fi
- done
-done
-
-set -x
-
-if [ $((total_failed_tc + total_failed_su)) != "0" ]; then
- warn
- warn "Testcase naming checker: FAIL"
- exit 1
-fi
-
-warn
-warn "Testcase naming checker: PASS"
diff --git a/resources/libraries/bash/entry/check_crc.sh b/resources/libraries/bash/entry/check_crc.sh
index 798d29a7f0..5860bcbca5 100644
--- a/resources/libraries/bash/entry/check_crc.sh
+++ b/resources/libraries/bash/entry/check_crc.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/check_l3fwd.sh b/resources/libraries/bash/entry/check_l3fwd.sh
new file mode 100755
index 0000000000..3e53b636a3
--- /dev/null
+++ b/resources/libraries/bash/entry/check_l3fwd.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+# Helper functions for starting testpmd.
+
+set -exuo pipefail
+
+# Assumptions:
+# + There is a directory holding CSIT code to use (this script is there).
+# + At least one of the following is true:
+# ++ JOB_NAME environment variable is set,
+# ++ or this entry script has access to arguments.
+# Consequences (and specific assumptions) are multiple,
+# examine tree of functions for current description.
+
+# FIXME: Define API contract (as opposed to just help) for bootstrap.
+
+# "set -eu" handles failures from the following two lines.
+BASH_ENTRY_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
+BASH_FUNCTION_DIR="$(readlink -e "${BASH_ENTRY_DIR}/../function")"
+source "${BASH_FUNCTION_DIR}/common.sh" || {
+ echo "Source failed." >&2
+ exit 1
+}
+source "${BASH_FUNCTION_DIR}/dpdk.sh" || die "Source failed."
+common_dirs || die
+dpdk_l3fwd_check || die
diff --git a/resources/libraries/bash/entry/check_testpmd.sh b/resources/libraries/bash/entry/check_testpmd.sh
new file mode 100755
index 0000000000..1622b25b70
--- /dev/null
+++ b/resources/libraries/bash/entry/check_testpmd.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+# Helper functions for starting testpmd.
+
+set -exuo pipefail
+
+# Assumptions:
+# + There is a directory holding CSIT code to use (this script is there).
+# + At least one of the following is true:
+# ++ JOB_NAME environment variable is set,
+# ++ or this entry script has access to arguments.
+# Consequences (and specific assumptions) are multiple,
+# examine tree of functions for current description.
+
+# FIXME: Define API contract (as opposed to just help) for bootstrap.
+
+# "set -eu" handles failures from the following two lines.
+BASH_ENTRY_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
+BASH_FUNCTION_DIR="$(readlink -e "${BASH_ENTRY_DIR}/../function")"
+source "${BASH_FUNCTION_DIR}/common.sh" || {
+ echo "Source failed." >&2
+ exit 1
+}
+source "${BASH_FUNCTION_DIR}/dpdk.sh" || die "Source failed."
+common_dirs || die
+dpdk_testpmd_check || die
diff --git a/resources/libraries/bash/entry/cleanup_dpdk.sh b/resources/libraries/bash/entry/cleanup_dpdk.sh
index 726f98c1a1..517e5b98f5 100755
--- a/resources/libraries/bash/entry/cleanup_dpdk.sh
+++ b/resources/libraries/bash/entry/cleanup_dpdk.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/init_dpdk.sh b/resources/libraries/bash/entry/init_dpdk.sh
index 910ade38f9..fdbb5b2bd6 100755
--- a/resources/libraries/bash/entry/init_dpdk.sh
+++ b/resources/libraries/bash/entry/init_dpdk.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/install_dpdk.sh b/resources/libraries/bash/entry/install_dpdk.sh
index d87aa5a832..f6a6d454af 100755
--- a/resources/libraries/bash/entry/install_dpdk.sh
+++ b/resources/libraries/bash/entry/install_dpdk.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/install_nginx.sh b/resources/libraries/bash/entry/install_nginx.sh
new file mode 100755
index 0000000000..3a2c8ef7eb
--- /dev/null
+++ b/resources/libraries/bash/entry/install_nginx.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2021 Intel and/or its affiliates.
+# 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.
+
+# Install the NGINX framework on the DUT node. Check prerequisites.
+
+set -exuo pipefail
+
+# Assumptions:
+# + There is a directory holding CSIT code to use (this script is there).
+# + At least one of the following is true:
+# ++ JOB_NAME environment variable is set,
+# ++ or this entry script has access to arguments.
+# Consequences (and specific assumptions) are multiple,
+# examine tree of functions for current description.
+
+BASH_ENTRY_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
+BASH_FUNCTION_DIR="$(readlink -e "${BASH_ENTRY_DIR}/../function")"
+source "${BASH_FUNCTION_DIR}/common.sh" || {
+ echo "Source failed." >&2
+ exit 1
+}
+source "${BASH_FUNCTION_DIR}/nginx.sh" || die "Source failed."
+common_dirs ${@} || die
+gather_nginx || die "Download nginx failed."
+nginx_extract || die "Extract nginx failed."
+nginx_compile || die "Compile nginx failed."
diff --git a/resources/libraries/bash/entry/patch_l3fwd.sh b/resources/libraries/bash/entry/patch_l3fwd.sh
index 0ce02a0047..88597f1da0 100755
--- a/resources/libraries/bash/entry/patch_l3fwd.sh
+++ b/resources/libraries/bash/entry/patch_l3fwd.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/patch_l3fwd_flip_routes b/resources/libraries/bash/entry/patch_l3fwd_flip_routes
index 3b35e1f930..c5eff5d3ca 100755
--- a/resources/libraries/bash/entry/patch_l3fwd_flip_routes
+++ b/resources/libraries/bash/entry/patch_l3fwd_flip_routes
@@ -1,7 +1,7 @@
#!/bin/sh
-patch --ignore-whitespace --forward l3fwd_lpm.c <<"_EOF"
-44,45c44,45
+patch --ignore-whitespace --forward main.c <<"_EOF"
+204,205c204,205
< {RTE_IPV4(198, 18, 0, 0), 24, 0},
< {RTE_IPV4(198, 18, 1, 0), 24, 1},
---
diff --git a/resources/libraries/bash/entry/per_patch_device.sh b/resources/libraries/bash/entry/per_patch_device.sh
index ba4f4bb478..88d7f13494 100644
--- a/resources/libraries/bash/entry/per_patch_device.sh
+++ b/resources/libraries/bash/entry/per_patch_device.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -39,22 +39,22 @@ source "${BASH_FUNCTION_DIR}/per_patch.sh" || die "Source failed."
common_dirs || die
check_prerequisites || die
set_perpatch_vpp_dir || die
-build_vpp_ubuntu_amd64 "CURRENT" || die
-set_aside_commit_build_artifacts || die
-initialize_csit_dirs || die
+git status || die
+git describe || die
+build_vpp_ubuntu "CURRENT" || die
+initialize_csit_dirs "current" || die
get_test_code "${1-}" || die
get_test_tag_string || die
set_perpatch_dut || die
-select_topology || die
select_arch_os || die
-select_build "build_current" || die
+select_build "build-root" || die
check_download_dir || die
activate_virtualenv "${VPP_DIR}" || die
generate_tests || die
archive_tests || die
+prepare_topology || die
+select_topology || die
activate_docker_topology || die
-select_vpp_device_tags || die
-compose_pybot_arguments || die
-run_pybot || die
+run_robot || die
move_archives || die
-die_on_pybot_error || die
+die_on_robot_error || die
diff --git a/resources/libraries/bash/entry/per_patch_perf.sh b/resources/libraries/bash/entry/per_patch_perf.sh
index 7b64aea67f..9a825a007e 100644
--- a/resources/libraries/bash/entry/per_patch_perf.sh
+++ b/resources/libraries/bash/entry/per_patch_perf.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -44,11 +44,16 @@ source "${BASH_FUNCTION_DIR}/ansible.sh" || die "Source failed."
common_dirs || die
check_prerequisites || die
set_perpatch_vpp_dir || die
-build_vpp_ubuntu_amd64 "CURRENT" || die
-set_aside_commit_build_artifacts || die
-build_vpp_ubuntu_amd64 "PARENT" || die
-set_aside_parent_build_artifacts || die
-initialize_csit_dirs || die
+git status || die
+git describe || die
+build_vpp_ubuntu "CURRENT" || die
+set_aside_build_artifacts "current" || die
+git checkout "HEAD~" || die "Failed to checkout parent commit."
+git status || die
+git describe || die
+build_vpp_ubuntu "PARENT" || die
+set_aside_build_artifacts "parent" || die
+initialize_csit_dirs "parent" "current" || die
get_test_code "${1-}" || die
get_test_tag_string || die
set_perpatch_dut || die
@@ -58,8 +63,6 @@ activate_virtualenv "${VPP_DIR}" || die
generate_tests || die
archive_tests || die
reserve_and_cleanup_testbed || die
-select_tags || die
-compose_pybot_arguments || die
# Support for interleaved measurements is kept for future.
iterations=1 # 8
for ((iter=0; iter<iterations; iter++)); do
@@ -71,16 +74,14 @@ for ((iter=0; iter<iterations; iter++)); do
# Testing current first. Good for early failures or for API changes.
select_build "build_current" || die
check_download_dir || die
- run_pybot || die
- archive_parse_test_results "csit_current/${iter}" || die
- die_on_pybot_error || die
+ run_robot || die
+ move_test_results "csit_current/${iter}" || die
# TODO: Use less heavy way to avoid apt remove failures.
ansible_playbook "cleanup" || die
select_build "build_parent" || die
check_download_dir || die
- run_pybot || die
- archive_parse_test_results "csit_parent/${iter}" || die
- die_on_pybot_error || die
+ run_robot || die
+ move_test_results "csit_parent/${iter}" || die
done
untrap_and_unreserve_testbed || die
compare_test_results # The error code becomes this script's error code.
diff --git a/resources/libraries/bash/entry/run_l3fwd.sh b/resources/libraries/bash/entry/run_l3fwd.sh
index 5716dec59a..d204e89c6f 100755
--- a/resources/libraries/bash/entry/run_l3fwd.sh
+++ b/resources/libraries/bash/entry/run_l3fwd.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/run_testpmd.sh b/resources/libraries/bash/entry/run_testpmd.sh
index 6208487774..1d6b9ee3c6 100755
--- a/resources/libraries/bash/entry/run_testpmd.sh
+++ b/resources/libraries/bash/entry/run_testpmd.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/tox.sh b/resources/libraries/bash/entry/tox.sh
index 82b7ef5307..22dfdfe05f 100755
--- a/resources/libraries/bash/entry/tox.sh
+++ b/resources/libraries/bash/entry/tox.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -29,4 +29,12 @@ source "${BASH_FUNCTION_DIR}/common.sh" || {
common_dirs || die
cd "${CSIT_DIR}" || die
activate_virtualenv "${CSIT_DIR}" "${CSIT_DIR}/tox-requirements.txt" || die
-tox # Return code is turned into Jenkins job vote.
+set +e
+# Verbosity is increased so console output shows any unwanted downloads.
+tox -vv
+TOX_EXIT_STATUS="$?"
+set -e
+mkdir -p "${CSIT_DIR}/archives" || die
+mv *.log "${CSIT_DIR}/archives" || die
+
+exit "${TOX_EXIT_STATUS}"
diff --git a/resources/libraries/bash/entry/tox/README.txt b/resources/libraries/bash/entry/tox/README.txt
new file mode 100644
index 0000000000..9ce21e93d0
--- /dev/null
+++ b/resources/libraries/bash/entry/tox/README.txt
@@ -0,0 +1,41 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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 directory contains tox scripts and other files they need.
+Generally, a tox script is either a checker (suitable for automated verify)
+or a fixer (manually started, risky as uncommitted edits can be lost).
+
+In the tox verify job we want to avoid running fixers,
+as they can affect what other checkers see
+(e.g. autogen fixer could add more too long lines).
+That is why we keep fixers separate from checkers in principle,
+even for fairly safe tasks (e.g. bumping copyright years).
+
+Each tox script is assumed to be run from tox,
+when working directory is set to ${CSIT_DIR}.
+
+Each checker script should:
++ Return nonzero exit code when it fails.
+++ The tox might ignore the code when the check is not blocking.
++ Write less verbose output to stderr.
++ Write (to stderr) PASSED or FAILED to help with debugging.
++ Direct more verbose output to appropriately named .log file.
++ Only the output suitable for automated processing by an external caller
+ should be written to stdout.
+++ The level of "less verbose" depends on check and state of codebase.
+
+Each fixer script should:
++ Perform edits on current filesystem
++ Not assume git is clean (there may be uncommitted edits).
++ Use "git diff HEAD~" to get both comitted and uncomitted edits to analyze.
++ Output whatever it wants (possibly nothing).
diff --git a/resources/libraries/bash/entry/check/autogen.sh b/resources/libraries/bash/entry/tox/autogen.sh
index 822c50c0ea..40cc2c2066 100644
--- a/resources/libraries/bash/entry/check/autogen.sh
+++ b/resources/libraries/bash/entry/tox/autogen.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -50,8 +50,8 @@ cp -rf "${CSIT_DIR}/tests"/* "${GENERATED_DIR}/tests_tmp"/
# I think archiving the diff is enough.
diff_cmd=("diff" "-dur" "${GENERATED_DIR}/tests_tmp" "${GENERATED_DIR}/tests")
-# Diff returns RC=1 if output is nonzero, so we do not die on the next line.
-lines="$("${diff_cmd[@]}" | tee "autogen.log" | wc -l)"
+# Diff returns RC=1 if output is nonzero.
+lines="$("${diff_cmd[@]}" | tee "autogen.log" | wc -l || true)"
if [ "${lines}" != "0" ]; then
# TODO: Decide which text goes to stdout and which to stderr.
warn "Autogen conflict, diff sees nonzero lines: ${lines}"
diff --git a/resources/libraries/bash/entry/check/copyright_year.sh b/resources/libraries/bash/entry/tox/copyright_year.sh
index 2f9bc1fbeb..272763100e 100644
--- a/resources/libraries/bash/entry/check/copyright_year.sh
+++ b/resources/libraries/bash/entry/tox/copyright_year.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -24,10 +24,7 @@ set -exuo pipefail
# but not the current year (in the same line).
# The offending lines are stored to copyright_year.log (overwriting).
#
-# 3 lines were chosen, because first two lines could be shebang and empty line,
-# and more than 3 lines would start failing on files with multiple copyright
-# holders. There, only the last updating entity needs to bump its year,
-# and put other copyright lines below.
+# 3 lines were chosen, because first two lines could be shebang and empty line.
# "set -eu" handles failures from the following two lines.
BASH_CHECKS_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
@@ -42,7 +39,7 @@ IFS=$'\n'
files=($(git diff --name-only HEAD~ || true))
unset IFS
truncate -s 0 "copyright_year.log" || die
-# A change can have thousands of files, supress console output in the cycle.
+# A change can have thousands of files, supress console output for the cycle.
set +x
for fil in "${files[@]}"; do
# Greps do "fail" on 0 line output, we need to ignore that
diff --git a/resources/libraries/bash/entry/tox/fix_copyright_year.sh b/resources/libraries/bash/entry/tox/fix_copyright_year.sh
new file mode 100644
index 0000000000..d822f272af
--- /dev/null
+++ b/resources/libraries/bash/entry/tox/fix_copyright_year.sh
@@ -0,0 +1,55 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+set -exuo pipefail
+
+# This file should be executed from tox, as the assumed working directory
+# is different from where this file is located.
+# This file does not have executable flag nor shebang,
+# to dissuade non-tox callers.
+
+# This is a fixer script, so be careful before starting it.
+# It is recommended to always commit your recent edits before running this,
+# and use "git diff" after running this to confirm the edits are correct.
+# Otherwise you can lose your edits and introduce bad edits.
+
+# This script runs a variant of "git diff" command
+# to get the list of edited files, and few sed commands to edit the year
+# if "20.." pattern matches in first 3 lines.
+# No detection of "copyright", so edits can apply at surprising places.
+
+# 3 lines were chosen, because first two lines could be shebang and empty line.
+
+# "set -eu" handles failures from the following two lines.
+BASH_CHECKS_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))"
+BASH_FUNCTION_DIR="$(readlink -e "${BASH_CHECKS_DIR}/../../function")"
+source "${BASH_FUNCTION_DIR}/common.sh" || {
+ echo "Source failed." >&2
+ exit 1
+}
+
+year=$(date +'%Y')
+IFS=$'\n'
+files=($(git diff --name-only HEAD~ || true))
+unset IFS
+# A change can have thousands of files, supress console output for the cycle.
+set +x
+for fil in "${files[@]}"; do
+ if [[ -f "${fil}" ]]; then
+ sed -i "1 s/20../${year}/g" "${fil}"
+ sed -i "2 s/20../${year}/g" "${fil}"
+ sed -i "3 s/20../${year}/g" "${fil}"
+ # Else the file was actually deleted and sed would fail.
+ fi
+done
+set -x
diff --git a/resources/libraries/bash/entry/check/gpl_license.sh b/resources/libraries/bash/entry/tox/gpl_license.sh
index a1c46a0e90..7112075883 100644
--- a/resources/libraries/bash/entry/check/gpl_license.sh
+++ b/resources/libraries/bash/entry/tox/gpl_license.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/check/line.sh b/resources/libraries/bash/entry/tox/line.sh
index 932f3cdbe9..a90fc22cae 100644
--- a/resources/libraries/bash/entry/check/line.sh
+++ b/resources/libraries/bash/entry/tox/line.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/check/new_line.sh b/resources/libraries/bash/entry/tox/new_line.sh
index 2e24c0256b..a8fb38f73e 100644
--- a/resources/libraries/bash/entry/check/new_line.sh
+++ b/resources/libraries/bash/entry/tox/new_line.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/entry/check/pylint.sh b/resources/libraries/bash/entry/tox/pylint.sh
index 919e140f28..a3e0f8ee14 100644
--- a/resources/libraries/bash/entry/check/pylint.sh
+++ b/resources/libraries/bash/entry/tox/pylint.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -19,7 +19,8 @@ set -exuo pipefail
# to dissuade non-tox callers.
# This script runs pylint and propagates its exit code.
-# Config is taken from pylint.cfg, and proper virtualenv is assumed to be active.
+# Config is taken from pylint.cfg,
+# and proper virtualenv is assumed to be active.
# The pylint output stored to pylint.log (overwriting).
# "set -eu" handles failures from the following two lines.
@@ -29,7 +30,7 @@ source "${BASH_FUNCTION_DIR}/common.sh" || {
echo "Source failed." >&2
exit 1
}
-pylint_args=("--rcfile=pylint.cfg" "resources/")
+pylint_args=("--rcfile=pylint.cfg" "resources/" "GPL/traffic_scripts")
if pylint "${pylint_args[@]}" > "pylint.log"; then
warn
warn "Pylint checker: PASS"
diff --git a/resources/libraries/bash/entry/with_oper_for_vpp.sh b/resources/libraries/bash/entry/with_oper_for_vpp.sh
index 23c0d8a9d1..f9d7829bd2 100644
--- a/resources/libraries/bash/entry/with_oper_for_vpp.sh
+++ b/resources/libraries/bash/entry/with_oper_for_vpp.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/bash/function/README.txt b/resources/libraries/bash/function/README.txt
deleted file mode 100644
index 5215e5085b..0000000000
--- a/resources/libraries/bash/function/README.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-Files in this directory system are to be executed indirectly,
-sourced from other scripts.
-
-In fact, the files should only define functions,
-except perhaps some minimal logic needed to import dependencies.
-The originating function calls should be executed from elsewhere,
-typically from entry scripts.
diff --git a/resources/libraries/bash/function/ansible.sh b/resources/libraries/bash/function/ansible.sh
index 1263412dd5..6cf4d16f43 100644
--- a/resources/libraries/bash/function/ansible.sh
+++ b/resources/libraries/bash/function/ansible.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -22,10 +22,23 @@ function ansible_adhoc () {
#
# Variable read:
# - ${WORKING_TOPOLOGY} - Reserved working topology.
- # - ${TOOLS_DIR} - CSIT tools directory, where testbed-setup is located.
+ # - ${CSIT_DIR} - CSIT main directory, where ansible playbooks are located.
+ # - ${FLAVOR} - Node flavor string, see common.sh
set -exuo pipefail
+ case "$FLAVOR" in
+ "aws" | "c6in" | "c6gn" | "c7gn")
+ INVENTORY_PATH="cloud_inventory"
+ ;;
+ "x-"*)
+ INVENTORY_PATH="external_inventory"
+ ;;
+ *)
+ INVENTORY_PATH="lf_inventory"
+ ;;
+ esac
+
if ! installed sshpass; then
die "Please install sshpass!"
fi
@@ -33,13 +46,14 @@ function ansible_adhoc () {
hosts=($(fgrep host "${WORKING_TOPOLOGY}" | cut -d ":" -f 2)) || {
die "Failed to read hosts from working topology!"
}
- pushd "${TOOLS_DIR}"/testbed-setup/ansible || die "Pushd failed!"
- ANSIBLE_STDOUT_CALLBACK=yaml \
- ANSIBLE_PIPELINING=true \
- ansible \
+ pushd "${CSIT_DIR}"/fdio.infra.ansible || die "Pushd failed!"
+ export ANSIBLE_HOST_KEY_CHECKING=False
+ export ANSIBLE_STDOUT_CALLBACK=yaml
+ export ANSIBLE_PIPELINING=true
+ ansible-playbook \
--vault-password-file=vault_pass \
--extra-vars '@vault.yml' \
- --inventory inventories/lf_inventory/hosts site.yaml \
+ --inventory inventories/$INVENTORY_PATH/hosts site.yaml \
--limit "$(echo ${hosts[@]//\"})" \
--module-name shell \
--args \"$(echo $@)\" || die "Failed to run ansible on host!"
@@ -53,10 +67,23 @@ function ansible_playbook () {
#
# Variable read:
# - ${WORKING_TOPOLOGY} - Reserved working topology.
- # - ${TOOLS_DIR} - CSIT tools directory, where testbed-setup is located.
+ # - ${CSIT_DIR} - CSIT main directory, where ansible playbooks are located.
+ # - ${FLAVOR} - Node flavor string, see common.sh
set -exuo pipefail
+ case "$FLAVOR" in
+ "aws" | "c6in" | "c6gn" | "c7gn")
+ INVENTORY_PATH="cloud_inventory"
+ ;;
+ "x-"*)
+ INVENTORY_PATH="external_inventory"
+ ;;
+ *)
+ INVENTORY_PATH="lf_inventory"
+ ;;
+ esac
+
if ! installed sshpass; then
die "Please install sshpass!"
fi
@@ -64,13 +91,14 @@ function ansible_playbook () {
hosts=($(fgrep host "${WORKING_TOPOLOGY}" | cut -d ":" -f 2)) || {
die "Failed to read hosts from working topology!"
}
- pushd "${TOOLS_DIR}"/testbed-setup/ansible || die "Pushd failed!"
- ANSIBLE_STDOUT_CALLBACK=yaml \
- ANSIBLE_PIPELINING=true \
- ansible-playbook \
+ pushd "${CSIT_DIR}"/fdio.infra.ansible || die "Pushd failed!"
+ export ANSIBLE_HOST_KEY_CHECKING=False
+ export ANSIBLE_STDOUT_CALLBACK=yaml
+ export ANSIBLE_PIPELINING=true
+ ansible-playbook \
--vault-password-file=vault_pass \
--extra-vars '@vault.yml' \
- --inventory inventories/lf_inventory/hosts site.yaml \
+ --inventory inventories/$INVENTORY_PATH/hosts site.yaml \
--limit "$(echo ${hosts[@]//\"})" \
--tags "$(echo $@)" || die "Failed to run ansible on host!"
popd || die "Popd failed!"
diff --git a/resources/libraries/bash/function/artifacts.sh b/resources/libraries/bash/function/artifacts.sh
index 0a08d7311e..e4d5dd6fc6 100644
--- a/resources/libraries/bash/function/artifacts.sh
+++ b/resources/libraries/bash/function/artifacts.sh
@@ -1,7 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2019 PANTHEON.tech and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,8 +25,6 @@ function download_artifacts () {
# - REPO_URL - FD.io Packagecloud repository.
# Functions conditionally called (see their documentation for side effects):
# - download_ubuntu_artifacts
- # - download_centos_artifacts
- # - download_opensuse_artifacts
set -exuo pipefail
@@ -46,10 +43,6 @@ function download_artifacts () {
if [ "${os_id}" == "ubuntu" ]; then
download_ubuntu_artifacts || die
- elif [ "${os_id}" == "centos" ]; then
- download_centos_artifacts || die
- elif [ "${os_id}" == "opensuse" ]; then
- download_opensuse_artifacts || die
else
die "${os_id} is not yet supported."
fi
@@ -86,7 +79,7 @@ function download_ubuntu_artifacts () {
repository installation was not successful."
fi
- packages=$(apt-cache -o Dir::Etc::SourceList=${apt_fdio_repo_file} \
+ pkgs=$(apt-cache -o Dir::Etc::SourceList=${apt_fdio_repo_file} \
-o Dir::Etc::SourceParts=${apt_fdio_repo_file} dumpavail \
| grep Package: | cut -d " " -f 2 | grep vpp) || {
die "Retrieval of available VPP packages failed."
@@ -102,7 +95,7 @@ function download_ubuntu_artifacts () {
fi
set +x
- for package in ${packages}; do
+ for package in ${pkgs}; do
# Filter packages with given version
pkg_info=$(apt-cache show -- ${package}) || {
die "apt-cache show on ${package} failed."
@@ -129,73 +122,3 @@ function download_ubuntu_artifacts () {
}
fi
}
-
-function download_centos_artifacts () {
-
- # Download or install CentOS VPP artifacts from packagecloud.io.
- #
- # Variables read:
- # - REPO_URL - FD.io Packagecloud repository.
- # - VPP_VERSION - VPP version.
- # - INSTALL - Whether install packages (if set to "true") or download only.
- # Default: "false".
-
- set -exuo pipefail
-
- curl -s "${REPO_URL}"/script.rpm.sh | sudo -E bash || {
- die "Packagecloud FD.io repo fetch failed."
- }
- # If version is set we will add suffix.
- artifacts=()
- packages=(vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins vpp-api-python)
- if [ -z "${VPP_VERSION-}" ]; then
- artifacts+=(${packages[@]})
- else
- artifacts+=(${packages[@]/%/-${VPP_VERSION-}})
- fi
-
- if [[ "${INSTALL:-false}" == "true" ]]; then
- sudo yum -y install "${artifacts[@]}" || {
- die "Install VPP artifact failed."
- }
- else
- sudo yum -y install --downloadonly --downloaddir=. "${artifacts[@]}" || {
- die "Download VPP artifacts failed."
- }
- fi
-}
-
-function download_opensuse_artifacts () {
-
- # Download or install OpenSuSE VPP artifacts from packagecloud.io.
- #
- # Variables read:
- # - REPO_URL - FD.io Packagecloud repository.
- # - VPP_VERSION - VPP version.
- # - INSTALL - Whether install packages (if set to "true") or download only.
- # Default: "false".
-
- set -exuo pipefail
-
- curl -s "${REPO_URL}"/script.rpm.sh | sudo -E bash || {
- die "Packagecloud FD.io repo fetch failed."
- }
- # If version is set we will add suffix.
- artifacts=()
- packages=(vpp vpp-devel vpp-lib vpp-plugins libvpp0)
- if [ -z "${VPP_VERSION-}" ]; then
- artifacts+=(${packages[@]})
- else
- artifacts+=(${packages[@]/%/-${VPP_VERSION-}})
- fi
-
- if [[ "${INSTALL:-false}" == "true" ]]; then
- sudo yum -y install "${artifacts[@]}" || {
- die "Install VPP artifact failed."
- }
- else
- sudo yum -y install --downloadonly --downloaddir=. "${artifacts[@]}" || {
- die "Download VPP artifacts failed."
- }
- fi
-}
diff --git a/resources/libraries/bash/function/branch.sh b/resources/libraries/bash/function/branch.sh
index ba9cc39c67..37900eab01 100644
--- a/resources/libraries/bash/function/branch.sh
+++ b/resources/libraries/bash/function/branch.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -57,10 +57,6 @@ function checkout_csit_for_vpp () {
set -exuo pipefail
case "${1}" in
- "stable/2009")
- # LTS branch
- branch_id="origin/${1/stable\//oper-rls}_lts"
- ;;
"stable/"*)
branch_id="origin/${1/stable\//oper-rls}"
;;
diff --git a/resources/libraries/bash/function/common.sh b/resources/libraries/bash/function/common.sh
index b0eaf6cd25..4f104dbfd3 100644
--- a/resources/libraries/bash/function/common.sh
+++ b/resources/libraries/bash/function/common.sh
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 PANTHEON.tech and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 PANTHEON.tech and/or its affiliates.
# 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:
@@ -45,7 +45,7 @@ function activate_docker_topology () {
device_image="$(< ${CSIT_DIR}/${IMAGE_VER_FILE})"
case_text="${NODENESS}_${FLAVOR}"
case "${case_text}" in
- "1n_skx" | "1n_tx2")
+ "1n_skx" | "1n_alt" | "1n_spr")
# We execute reservation over csit-shim-dcr (ssh) which runs sourced
# script's functions. Env variables are read from ssh output
# back to localhost for further processing.
@@ -79,18 +79,26 @@ function activate_docker_topology () {
die "Trap attempt failed, please cleanup manually. Aborting!"
}
+ parse_env_variables || die "Parse of environment variables failed!"
+
# Replace all variables in template with those in environment.
source <(echo 'cat <<EOF >topo.yml'; cat ${TOPOLOGIES[0]}; echo EOF;) || {
die "Topology file create failed!"
}
- WORKING_TOPOLOGY="/tmp/topology.yaml"
+ WORKING_TOPOLOGY="${CSIT_DIR}/topologies/available/vpp_device.yaml"
mv topo.yml "${WORKING_TOPOLOGY}" || {
die "Topology move failed!"
}
cat ${WORKING_TOPOLOGY} | grep -v password || {
die "Topology read failed!"
}
+
+ # Subfunctions to update data that may depend on topology reserved.
+ set_environment_variables || die
+ select_tags || die
+ compose_robot_arguments || die
+
}
@@ -116,7 +124,7 @@ function activate_virtualenv () {
env_dir="${root_path}/env"
req_path=${2-$CSIT_DIR/requirements.txt}
rm -rf "${env_dir}" || die "Failed to clean previous virtualenv."
- pip3 install virtualenv==20.0.20 || {
+ pip3 install virtualenv==20.15.1 || {
die "Virtualenv package install failed."
}
virtualenv --no-download --python=$(which python3) "${env_dir}" || {
@@ -135,19 +143,19 @@ function activate_virtualenv () {
function archive_tests () {
- # Create .tar.xz of generated/tests for archiving.
+ # Create .tar.gz of generated/tests for archiving.
# To be run after generate_tests, kept separate to offer more flexibility.
# Directory read:
# - ${GENERATED_DIR}/tests - Tree of executed suites to archive.
# File rewriten:
- # - ${ARCHIVE_DIR}/tests.tar.xz - Archive of generated tests.
+ # - ${ARCHIVE_DIR}/generated_tests.tar.gz - Archive of generated tests.
set -exuo pipefail
- tar c "${GENERATED_DIR}/tests" | xz -3 > "${ARCHIVE_DIR}/tests.tar.xz" || {
- die "Error creating archive of generated tests."
- }
+ pushd "${ARCHIVE_DIR}" || die
+ tar czf "generated_tests.tar.gz" "${GENERATED_DIR}/tests" || true
+ popd || die
}
@@ -156,7 +164,7 @@ function check_download_dir () {
# Fail if there are no files visible in ${DOWNLOAD_DIR}.
#
# Variables read:
- # - DOWNLOAD_DIR - Path to directory pybot takes the build to test from.
+ # - DOWNLOAD_DIR - Path to directory robot takes the build to test from.
# Directories read:
# - ${DOWNLOAD_DIR} - Has to be non-empty to proceed.
# Functions called:
@@ -225,7 +233,7 @@ function common_dirs () {
TOPOLOGIES_DIR=$(readlink -e "${CSIT_DIR}/topologies/available") || {
die "Readlink failed."
}
- JOB_SPECS_DIR=$(readlink -e "${CSIT_DIR}/docs/job_specs") || {
+ JOB_SPECS_DIR=$(readlink -e "${CSIT_DIR}/resources/job_specs") || {
die "Readlink failed."
}
RESOURCES_DIR=$(readlink -e "${CSIT_DIR}/resources") || {
@@ -234,9 +242,6 @@ function common_dirs () {
TOOLS_DIR=$(readlink -e "${RESOURCES_DIR}/tools") || {
die "Readlink failed."
}
- DOC_GEN_DIR=$(readlink -e "${TOOLS_DIR}/doc_gen") || {
- die "Readlink failed."
- }
PYTHON_SCRIPTS_DIR=$(readlink -e "${TOOLS_DIR}/scripts") || {
die "Readlink failed."
}
@@ -256,8 +261,12 @@ function common_dirs () {
}
-function compose_pybot_arguments () {
+function compose_robot_arguments () {
+ # This function is called by run_tests function.
+ # The reason is that some jobs (bisect) perform reservation multiple times,
+ # so WORKING_TOPOLOGY can be different each time.
+ #
# Variables read:
# - WORKING_TOPOLOGY - Path to topology yaml file of the reserved testbed.
# - DUT - CSIT test/ subdirectory, set while processing tags.
@@ -266,21 +275,23 @@ function compose_pybot_arguments () {
# - TEST_CODE - The test selection string from environment or argument.
# - SELECTION_MODE - Selection criteria [test, suite, include, exclude].
# Variables set:
- # - PYBOT_ARGS - String holding part of all arguments for pybot.
- # - EXPANDED_TAGS - Array of strings pybot arguments compiled from tags.
+ # - ROBOT_ARGS - String holding part of all arguments for robot.
+ # - EXPANDED_TAGS - Array of strings robot arguments compiled from tags.
set -exuo pipefail
# No explicit check needed with "set -u".
- PYBOT_ARGS=("--loglevel" "TRACE")
- PYBOT_ARGS+=("--variable" "TOPOLOGY_PATH:${WORKING_TOPOLOGY}")
+ ROBOT_ARGS=("--loglevel" "TRACE")
+ ROBOT_ARGS+=("--variable" "TOPOLOGY_PATH:${WORKING_TOPOLOGY}")
+ # TODO: The rest does not need to be recomputed on each reservation.
+ # Refactor TEST_CODE so this part can be called only once.
case "${TEST_CODE}" in
*"device"*)
- PYBOT_ARGS+=("--suite" "tests.${DUT}.device")
+ ROBOT_ARGS+=("--suite" "tests.${DUT}.device")
;;
- *"perf"*)
- PYBOT_ARGS+=("--suite" "tests.${DUT}.perf")
+ *"perf"* | *"bisect"*)
+ ROBOT_ARGS+=("--suite" "tests.${DUT}.perf")
;;
*)
die "Unknown specification: ${TEST_CODE}"
@@ -317,7 +328,7 @@ function deactivate_docker_topology () {
case_text="${NODENESS}_${FLAVOR}"
case "${case_text}" in
- "1n_skx" | "1n_tx2")
+ "1n_skx" | "1n_alt" | "1n_spr")
ssh="ssh root@172.17.0.1 -p 6022"
env_vars=$(env | grep CSIT_ | tr '\n' ' ' ) || die
# The "declare -f" output is long and boring.
@@ -358,19 +369,19 @@ function die () {
}
-function die_on_pybot_error () {
+function die_on_robot_error () {
# Source this fragment if you want to abort on any failed test case.
#
# Variables read:
- # - PYBOT_EXIT_STATUS - Set by a pybot running fragment.
+ # - ROBOT_EXIT_STATUS - Set by a robot running fragment.
# Functions called:
# - die - Print to stderr and exit.
set -exuo pipefail
- if [[ "${PYBOT_EXIT_STATUS}" != "0" ]]; then
- die "Test failures are present!" "${PYBOT_EXIT_STATUS}"
+ if [[ "${ROBOT_EXIT_STATUS}" != "0" ]]; then
+ die "Test failures are present!" "${ROBOT_EXIT_STATUS}"
fi
}
@@ -383,7 +394,7 @@ function generate_tests () {
# within any subdirectory after copying.
# This is a separate function, because this code is called
- # both by autogen checker and entries calling run_pybot.
+ # both by autogen checker and entries calling run_robot.
# Directories read:
# - ${CSIT_DIR}/tests - Used as templates for the generated tests.
@@ -429,54 +440,109 @@ function get_test_code () {
fi
case "${TEST_CODE}" in
- *"1n-vbox"*)
+ *"1n-vbox")
NODENESS="1n"
FLAVOR="vbox"
;;
- *"1n-skx"*)
+ *"1n-skx")
NODENESS="1n"
FLAVOR="skx"
;;
- *"1n-tx2"*)
+ *"1n-spr")
NODENESS="1n"
- FLAVOR="tx2"
+ FLAVOR="spr"
+ ;;
+ *"1n-alt")
+ NODENESS="1n"
+ FLAVOR="alt"
;;
- *"2n-skx"*)
+ *"1n-aws")
+ NODENESS="1n"
+ FLAVOR="aws"
+ ;;
+ *"2n-aws")
NODENESS="2n"
- FLAVOR="skx"
+ FLAVOR="aws"
;;
- *"2n-zn2"*)
+ *"3n-aws")
+ NODENESS="3n"
+ FLAVOR="aws"
+ ;;
+ *"2n-c7gn")
NODENESS="2n"
- FLAVOR="zn2"
+ FLAVOR="c7gn"
;;
- *"3n-skx"*)
+ *"3n-c7gn")
NODENESS="3n"
- FLAVOR="skx"
+ FLAVOR="c7gn"
;;
- *"2n-clx"*)
+ *"1n-c6in")
+ NODENESS="1n"
+ FLAVOR="c6in"
+ ;;
+ *"2n-c6in")
+ NODENESS="2n"
+ FLAVOR="c6in"
+ ;;
+ *"3n-c6in")
+ NODENESS="3n"
+ FLAVOR="c6in"
+ ;;
+ *"2n-zn2")
+ NODENESS="2n"
+ FLAVOR="zn2"
+ ;;
+ *"2n-clx")
NODENESS="2n"
FLAVOR="clx"
;;
- *"2n-dnv"*)
+ *"2n-icx")
+ NODENESS="2n"
+ FLAVOR="icx"
+ ;;
+ *"2n-spr")
NODENESS="2n"
- FLAVOR="dnv"
+ FLAVOR="spr"
+ ;;
+ *"3n-icx")
+ NODENESS="3n"
+ FLAVOR="icx"
+ ;;
+ *"3na-spr")
+ NODENESS="3na"
+ FLAVOR="spr"
+ ;;
+ *"3nb-spr")
+ NODENESS="3nb"
+ FLAVOR="spr"
+ ;;
+ *"3n-snr")
+ NODENESS="3n"
+ FLAVOR="snr"
;;
- *"3n-dnv"*)
+ *"3n-icxd")
NODENESS="3n"
- FLAVOR="dnv"
+ FLAVOR="icxd"
;;
- *"2n-tx2"*)
+ *"2n-tx2")
NODENESS="2n"
FLAVOR="tx2"
;;
- *"3n-tsh"*)
+ *"3n-tsh")
NODENESS="3n"
FLAVOR="tsh"
;;
- *)
- # Fallback to 3-node Haswell by default (backward compatibility)
+ *"3n-alt")
NODENESS="3n"
- FLAVOR="hsw"
+ FLAVOR="alt"
+ ;;
+ *"2n-x-"*)
+ NODENESS="2n"
+ FLAVOR="${TEST_CODE#*2n-}"
+ ;;
+ *"3n-x-"*)
+ NODENESS="3n"
+ FLAVOR="${TEST_CODE#*3n-}"
;;
esac
}
@@ -491,6 +557,10 @@ function get_test_tag_string () {
# Variables set:
# - TEST_TAG_STRING - The string following trigger word in gerrit comment.
# May be empty, or even not set on event types not adding comment.
+ # - GIT_BISECT_FROM - If bisecttest, the commit hash to bisect from.
+ # Else not set.
+ # Variables exported optionally:
+ # - GRAPH_NODE_VARIANT - Node variant to test with, set if found in trigger.
# TODO: ci-management scripts no longer need to perform this.
@@ -498,6 +568,10 @@ function get_test_tag_string () {
if [[ "${GERRIT_EVENT_TYPE-}" == "comment-added" ]]; then
case "${TEST_CODE}" in
+ # Order matters, bisect job contains "perf" in its name.
+ *"bisect"*)
+ trigger="bisecttest"
+ ;;
*"device"*)
trigger="devicetest"
;;
@@ -518,10 +592,23 @@ function get_test_tag_string () {
TEST_TAG_STRING=$("${cmd[@]}" <<< "${comment}" || true)
if [[ -z "${TEST_TAG_STRING-}" ]]; then
# Probably we got a base64 encoded comment.
- comment=$(base64 --decode <<< "${GERRIT_EVENT_COMMENT_TEXT}" || true)
+ comment="${GERRIT_EVENT_COMMENT_TEXT}"
+ comment=$(base64 --decode <<< "${comment}" || true)
comment=$(fgrep "${trigger}" <<< "${comment}" || true)
TEST_TAG_STRING=$("${cmd[@]}" <<< "${comment}" || true)
fi
+ if [[ "${trigger}" == "bisecttest" ]]; then
+ # Intentionally without quotes, so spaces delimit elements.
+ test_tag_array=(${TEST_TAG_STRING}) || die "How could this fail?"
+ # First "argument" of bisecttest is a commit hash.
+ GIT_BISECT_FROM="${test_tag_array[0]}" || {
+ die "Bisect job requires commit hash."
+ }
+ # Update the tag string (tag expressions only, no commit hash).
+ TEST_TAG_STRING="${test_tag_array[@]:1}" || {
+ die "Bisect job needs a single test, no default."
+ }
+ fi
if [[ -n "${TEST_TAG_STRING-}" ]]; then
test_tag_array=(${TEST_TAG_STRING})
if [[ "${test_tag_array[0]}" == "icl" ]]; then
@@ -530,9 +617,6 @@ function get_test_tag_string () {
elif [[ "${test_tag_array[0]}" == "skx" ]]; then
export GRAPH_NODE_VARIANT="skx"
TEST_TAG_STRING="${test_tag_array[@]:1}" || true
- elif [[ "${test_tag_array[0]}" == "hsw" ]]; then
- export GRAPH_NODE_VARIANT="hsw"
- TEST_TAG_STRING="${test_tag_array[@]:1}" || true
fi
fi
fi
@@ -598,12 +682,65 @@ function move_archives () {
}
+function prepare_topology () {
+
+ # Prepare virtual testbed topology if needed based on flavor.
+
+ # Variables read:
+ # - TEST_CODE - String affecting test selection, usually jenkins job name.
+ # - NODENESS - Node multiplicity of testbed, either "2n" or "3n".
+ # - FLAVOR - Node flavor string, e.g. "clx" or "skx".
+ # Variables set:
+ # - TERRAFORM_MODULE_DIR - Terraform module directory.
+ # Functions called:
+ # - die - Print to stderr and exit.
+ # - terraform_init - Terraform init topology.
+ # - terraform_apply - Terraform apply topology.
+
+ set -exuo pipefail
+
+ case_text="${NODENESS}_${FLAVOR}"
+ case "${case_text}" in
+ "1n_aws" | "2n_aws" | "3n_aws")
+ export TF_VAR_testbed_name="${TEST_CODE}"
+ TERRAFORM_MODULE_DIR="terraform-aws-${NODENESS}-${FLAVOR}-c5n"
+ terraform_init || die "Failed to call terraform init."
+ trap "terraform_destroy" ERR EXIT || {
+ die "Trap attempt failed, please cleanup manually. Aborting!"
+ }
+ terraform_apply || die "Failed to call terraform apply."
+ ;;
+ "2n_c7gn" | "3n_c7gn")
+ export TF_VAR_testbed_name="${TEST_CODE}"
+ TERRAFORM_MODULE_DIR="terraform-aws-${NODENESS}-c7gn"
+ terraform_init || die "Failed to call terraform init."
+ trap "terraform_destroy" ERR EXIT || {
+ die "Trap attempt failed, please cleanup manually. Aborting!"
+ }
+ terraform_apply || die "Failed to call terraform apply."
+ ;;
+ "1n_c6in" | "2n_c6in" | "3n_c6in")
+ export TF_VAR_testbed_name="${TEST_CODE}"
+ TERRAFORM_MODULE_DIR="terraform-aws-${NODENESS}-c6in"
+ terraform_init || die "Failed to call terraform init."
+ trap "terraform_destroy" ERR EXIT || {
+ die "Trap attempt failed, please cleanup manually. Aborting!"
+ }
+ terraform_apply || die "Failed to call terraform apply."
+ ;;
+ esac
+}
+
+
function reserve_and_cleanup_testbed () {
# Reserve physical testbed, perform cleanup, register trap to unreserve.
# When cleanup fails, remove from topologies and keep retrying
# until all topologies are removed.
#
+ # Multiple other functions are called from here,
+ # as they set variables that depend on reserved topology data.
+ #
# Variables read:
# - TOPOLOGIES - Array of paths to topology yaml to attempt reservation on.
# - PYTHON_SCRIPTS_DIR - Path to directory holding the reservation script.
@@ -641,7 +778,7 @@ function reserve_and_cleanup_testbed () {
}
die "Trap attempt failed, unreserve succeeded. Aborting."
}
- # Cleanup + calibration checks.
+ # Cleanup + calibration checks
set +e
ansible_playbook "cleanup, calibration"
result="$?"
@@ -672,42 +809,50 @@ function reserve_and_cleanup_testbed () {
echo "Sleeping ${sleep_time}"
sleep "${sleep_time}" || die "Sleep failed."
done
+
+ # Subfunctions to update data that may depend on topology reserved.
+ set_environment_variables || die
+ select_tags || die
+ compose_robot_arguments || die
}
-function run_pybot () {
+function run_robot () {
- # Run pybot with options based on input variables. Create output_info.xml
+ # Run robot with options based on input variables.
+ #
+ # Testbed has to be reserved already,
+ # as some data may have changed between reservations,
+ # for example excluded NICs.
#
# Variables read:
# - CSIT_DIR - Path to existing root of local CSIT git repository.
# - ARCHIVE_DIR - Path to store robot result files in.
- # - PYBOT_ARGS, EXPANDED_TAGS - See compose_pybot_arguments.sh
+ # - ROBOT_ARGS, EXPANDED_TAGS - See compose_robot_arguments.sh
# - GENERATED_DIR - Tests are assumed to be generated under there.
+ # - WORKING_TOPOLOGY - Path to topology yaml file of the reserved testbed.
+ # - DUT - CSIT test/ subdirectory, set while processing tags.
+ # - TAGS - Array variable holding selected tag boolean expressions.
+ # - TOPOLOGIES_TAGS - Tag boolean expression filtering tests for topology.
+ # - TEST_CODE - The test selection string from environment or argument.
# Variables set:
- # - PYBOT_EXIT_STATUS - Exit status of most recent pybot invocation.
+ # - ROBOT_ARGS - String holding part of all arguments for robot.
+ # - EXPANDED_TAGS - Array of string robot arguments compiled from tags.
+ # - ROBOT_EXIT_STATUS - Exit status of most recent robot invocation.
# Functions called:
# - die - Print to stderr and exit.
set -exuo pipefail
- all_options=("--outputdir" "${ARCHIVE_DIR}" "${PYBOT_ARGS[@]}")
- all_options+=("--noncritical" "EXPECTED_FAILING")
+ all_options=("--outputdir" "${ARCHIVE_DIR}" "${ROBOT_ARGS[@]}")
all_options+=("${EXPANDED_TAGS[@]}")
pushd "${CSIT_DIR}" || die "Change directory operation failed."
set +e
robot "${all_options[@]}" "${GENERATED_DIR}/tests/"
- PYBOT_EXIT_STATUS="$?"
+ ROBOT_EXIT_STATUS="$?"
set -e
- # Generate INFO level output_info.xml for post-processing.
- all_options=("--loglevel" "INFO")
- all_options+=("--log" "none")
- all_options+=("--report" "none")
- all_options+=("--output" "${ARCHIVE_DIR}/output_info.xml")
- all_options+=("${ARCHIVE_DIR}/output.xml")
- rebot "${all_options[@]}" || true
popd || die "Change directory operation failed."
}
@@ -723,23 +868,23 @@ function select_arch_os () {
set -exuo pipefail
- os_id=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g') || {
- die "Get OS release failed."
- }
+ source /etc/os-release || die "Get OS release failed."
- case "${os_id}" in
+ case "${ID}" in
"ubuntu"*)
- IMAGE_VER_FILE="VPP_DEVICE_IMAGE_UBUNTU"
- VPP_VER_FILE="VPP_STABLE_VER_UBUNTU_BIONIC"
- PKG_SUFFIX="deb"
- ;;
- "centos"*)
- IMAGE_VER_FILE="VPP_DEVICE_IMAGE_CENTOS"
- VPP_VER_FILE="VPP_STABLE_VER_CENTOS"
- PKG_SUFFIX="rpm"
+ case "${VERSION}" in
+ *"LTS (Jammy Jellyfish)"*)
+ IMAGE_VER_FILE="VPP_DEVICE_IMAGE_UBUNTU_JAMMY"
+ VPP_VER_FILE="VPP_STABLE_VER_UBUNTU_JAMMY"
+ PKG_SUFFIX="deb"
+ ;;
+ *)
+ die "Unsupported Ubuntu version!"
+ ;;
+ esac
;;
*)
- die "Unable to identify distro or os from ${os_id}"
+ die "Unsupported distro or OS!"
;;
esac
@@ -759,6 +904,9 @@ function select_arch_os () {
function select_tags () {
+ # Only to be called from the reservation function,
+ # as resulting tags may change based on topology data.
+ #
# Variables read:
# - WORKING_TOPOLOGY - Path to topology yaml file of the reserved testbed.
# - TEST_CODE - String affecting test selection, usually jenkins job name.
@@ -774,35 +922,69 @@ function select_tags () {
set -exuo pipefail
# NIC SELECTION
- start_pattern='^ TG:'
+ case "${TEST_CODE}" in
+ *"1n-aws"* | *"1n-c6in"*)
+ start_pattern='^ SUT:'
+ ;;
+ *)
+ start_pattern='^ TG:'
+ ;;
+ esac
end_pattern='^ \? \?[A-Za-z0-9]\+:'
- # Remove the TG section from topology file
+ # Remove the sections from topology file
sed_command="/${start_pattern}/,/${end_pattern}/d"
- # All topologies DUT NICs
+ # All topologies NICs
available=$(sed "${sed_command}" "${TOPOLOGIES_DIR}"/* \
| grep -hoP "model: \K.*" | sort -u)
- # Selected topology DUT NICs
+ # Selected topology NICs
reserved=$(sed "${sed_command}" "${WORKING_TOPOLOGY}" \
| grep -hoP "model: \K.*" | sort -u)
- # All topologies DUT NICs - Selected topology DUT NICs
+ # All topologies NICs - Selected topology NICs
exclude_nics=($(comm -13 <(echo "${reserved}") <(echo "${available}"))) || {
die "Computation of excluded NICs failed."
}
# Select default NIC tag.
case "${TEST_CODE}" in
- *"3n-dnv"* | *"2n-dnv"*)
- default_nic="nic_intel-x553"
+ *"3n-snr")
+ default_nic="nic_intel-e822cq"
;;
- *"3n-tsh"*)
+ *"3n-icxd")
+ default_nic="nic_intel-e823c"
+ ;;
+ *"3n-tsh")
default_nic="nic_intel-x520-da2"
;;
- *"3n-skx"* | *"2n-skx"* | *"2n-clx"* | *"2n-zn2"*)
+ *"3n-icx" | *"2n-icx")
+ default_nic="nic_intel-e810cq"
+ ;;
+ *"3na-spr")
+ default_nic="nic_mellanox-cx7veat"
+ ;;
+ *"3nb-spr")
+ default_nic="nic_intel-e810cq"
+ ;;
+ *"2n-spr")
+ default_nic="nic_intel-e810cq"
+ ;;
+ *"2n-clx" | *"2n-zn2")
default_nic="nic_intel-xxv710"
;;
- *"3n-hsw"* | *"2n-tx2"* | *"mrr-daily-master")
+ *"2n-tx2" | *"3n-alt")
default_nic="nic_intel-xl710"
;;
+ *"1n-aws" | *"2n-aws" | *"3n-aws")
+ default_nic="nic_amazon-nitro-50g"
+ ;;
+ *"2n-c7gn" | *"3n-c7gn")
+ default_nic="nic_amazon-nitro-100g"
+ ;;
+ *"1n-c6in" | *"2n-c6in" | *"3n-c6in")
+ default_nic="nic_amazon-nitro-200g"
+ ;;
+ *"2n-x-"* | *"3n-x-"*)
+ default_nic="nic_intel-e810cq"
+ ;;
*)
default_nic="nic_intel-x710"
;;
@@ -814,22 +996,47 @@ function select_tags () {
awk_nics_sub_cmd+='gsub("x710","10ge2p1x710");'
awk_nics_sub_cmd+='gsub("xl710","40ge2p1xl710");'
awk_nics_sub_cmd+='gsub("x520-da2","10ge2p1x520");'
- awk_nics_sub_cmd+='gsub("x553","10ge2p1x553");'
- awk_nics_sub_cmd+='gsub("cx556a","10ge2p1cx556a");'
+ awk_nics_sub_cmd+='gsub("cx556a","100ge2p1cx556a");'
+ awk_nics_sub_cmd+='gsub("2p1cx7veat","200ge2p1cx7veat");'
+ awk_nics_sub_cmd+='gsub("6p3cx7veat","200ge6p3cx7veat");'
+ awk_nics_sub_cmd+='gsub("cx6dx","100ge2p1cx6dx");'
+ awk_nics_sub_cmd+='gsub("e810cq","100ge2p1e810cq");'
+ awk_nics_sub_cmd+='gsub("e822cq","25ge2p1e822cq");'
+ awk_nics_sub_cmd+='gsub("e823c","25ge2p1e823c");'
awk_nics_sub_cmd+='gsub("vic1227","10ge2p1vic1227");'
- awk_nics_sub_cmd+='gsub("vic1385","10ge2p1vic1385");'
+ awk_nics_sub_cmd+='gsub("vic1385","40ge2p1vic1385");'
+ awk_nics_sub_cmd+='gsub("nitro-50g","50ge1p1ENA");'
+ awk_nics_sub_cmd+='gsub("nitro-100g","100ge1p1ENA");'
+ awk_nics_sub_cmd+='gsub("nitro-200g","200ge1p1ENA");'
+ awk_nics_sub_cmd+='gsub("virtual","1ge1p82540em");'
awk_nics_sub_cmd+='if ($9 =="drv_avf") drv="avf-";'
awk_nics_sub_cmd+='else if ($9 =="drv_rdma_core") drv ="rdma-";'
+ awk_nics_sub_cmd+='else if ($9 =="drv_mlx5_core") drv ="mlx5-";'
+ awk_nics_sub_cmd+='else if ($9 =="drv_af_xdp") drv ="af-xdp-";'
awk_nics_sub_cmd+='else drv="";'
- awk_nics_sub_cmd+='print "*"$7"-" drv $11"-"$5"."$3"-"$1"-" drv $11"-"$5'
+ awk_nics_sub_cmd+='if ($1 =="-") cores="";'
+ awk_nics_sub_cmd+='else cores=$1;'
+ awk_nics_sub_cmd+='print "*"$7"-" drv $11"-"$5"."$3"-" cores "-" drv $11"-"$5'
# Tag file directory shorthand.
tfd="${JOB_SPECS_DIR}"
case "${TEST_CODE}" in
# Select specific performance tests based on jenkins job type variable.
+ *"device"* )
+ readarray -t test_tag_array <<< $(grep -v "#" \
+ ${tfd}/vpp_device/${DUT}-${NODENESS}-${FLAVOR}.md |
+ awk {"$awk_nics_sub_cmd"} || echo "devicetest") || die
+ SELECTION_MODE="--test"
+ ;;
+ *"hoststack-daily"* )
+ readarray -t test_tag_array <<< $(grep -v "#" \
+ ${tfd}/hoststack_daily/${DUT}-${NODENESS}-${FLAVOR}.md |
+ awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
+ SELECTION_MODE="--test"
+ ;;
*"ndrpdr-weekly"* )
readarray -t test_tag_array <<< $(grep -v "#" \
- ${tfd}/mlr_weekly/${DUT}-${NODENESS}-${FLAVOR}.md |
+ ${tfd}/ndrpdr_weekly/${DUT}-${NODENESS}-${FLAVOR}.md |
awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
SELECTION_MODE="--test"
;;
@@ -845,6 +1052,12 @@ function select_tags () {
awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
SELECTION_MODE="--test"
;;
+ *"soak-weekly"* )
+ readarray -t test_tag_array <<< $(grep -v "#" \
+ ${tfd}/soak_weekly/${DUT}-${NODENESS}-${FLAVOR}.md |
+ awk {"$awk_nics_sub_cmd"} || echo "perftest") || die
+ SELECTION_MODE="--test"
+ ;;
*"report-iterative"* )
test_sets=(${TEST_TAG_STRING//:/ })
# Run only one test set per run
@@ -867,11 +1080,11 @@ function select_tags () {
if [[ -z "${TEST_TAG_STRING-}" ]]; then
# If nothing is specified, we will run pre-selected tests by
# following tags.
- test_tag_array=("mrrAND${default_nic}AND1cAND64bANDip4base"
- "mrrAND${default_nic}AND1cAND78bANDip6base"
- "mrrAND${default_nic}AND1cAND64bANDl2bdbase"
- "mrrAND${default_nic}AND1cAND64bANDl2xcbase"
- "!dot1q" "!drv_avf")
+ test_tag_array=("mrrAND${default_nic}AND1cAND64bANDethip4-ip4base"
+ "mrrAND${default_nic}AND1cAND78bANDethip6-ip6base"
+ "mrrAND${default_nic}AND1cAND64bANDeth-l2bdbasemaclrn"
+ "mrrAND${default_nic}AND1cAND64bANDeth-l2xcbase"
+ "!drv_af_xdp" "!drv_avf")
else
# If trigger contains tags, split them into array.
test_tag_array=(${TEST_TAG_STRING//:/ })
@@ -884,56 +1097,58 @@ function select_tags () {
#
# Reasons for blacklisting:
# - ipsechw - Blacklisted on testbeds without crypto hardware accelerator.
- # TODO: Add missing reasons here (if general) or where used (if specific).
case "${TEST_CODE}" in
- *"2n-skx"*)
- test_tag_array+=("!ipsec")
+ *"1n-vbox")
+ test_tag_array+=("!avf")
+ test_tag_array+=("!vhost")
+ test_tag_array+=("!flow")
;;
- *"3n-skx"*)
+ *"1n-alt")
+ test_tag_array+=("!flow")
+ ;;
+ *"2n-clx")
test_tag_array+=("!ipsechw")
- # Not enough nic_intel-xxv710 to support double link tests.
- test_tag_array+=("!3_node_double_link_topoANDnic_intel-xxv710")
;;
- *"2n-clx"*)
- test_tag_array+=("!ipsec")
+ *"2n-icx")
+ test_tag_array+=("!ipsechw")
;;
- *"2n-zn2"*)
- test_tag_array+=("!ipsec")
+ *"2n-spr")
;;
- *"2n-dnv"*)
+ *"2n-tx2")
test_tag_array+=("!ipsechw")
- test_tag_array+=("!memif")
- test_tag_array+=("!srv6_proxy")
- test_tag_array+=("!vhost")
- test_tag_array+=("!vts")
- test_tag_array+=("!drv_avf")
;;
- *"2n-tx2"*)
+ *"2n-zn2")
test_tag_array+=("!ipsechw")
;;
- *"3n-dnv"*)
- test_tag_array+=("!memif")
- test_tag_array+=("!srv6_proxy")
- test_tag_array+=("!vhost")
- test_tag_array+=("!vts")
- test_tag_array+=("!drv_avf")
+ *"3n-alt")
+ test_tag_array+=("!ipsechw")
;;
- *"3n-tsh"*)
- # 3n-tsh only has x520 NICs which don't work with AVF
- test_tag_array+=("!drv_avf")
+ *"3n-icx")
test_tag_array+=("!ipsechw")
+ test_tag_array+=("!3_node_double_link_topoANDnic_intel-xxv710")
;;
- *"3n-hsw"*)
- test_tag_array+=("!drv_avf")
- # All cards have access to QAT. But only one card (xl710)
- # resides in same NUMA as QAT. Other cards must go over QPI
- # which we do not want to even run.
- test_tag_array+=("!ipsechwNOTnic_intel-xl710")
+ *"3n-snr")
;;
- *)
- # Default to 3n-hsw due to compatibility.
+ *"3n-icxd")
+ ;;
+ *"3na-spr")
+ ;;
+ *"3nb-spr")
+ ;;
+ *"3n-tsh")
test_tag_array+=("!drv_avf")
- test_tag_array+=("!ipsechwNOTnic_intel-xl710")
+ test_tag_array+=("!ipsechw")
+ ;;
+ *"1n-aws" | *"2n-aws" | *"3n-aws")
+ test_tag_array+=("!ipsechw")
+ ;;
+ *"2n-c7gn" | *"3n-c7gn")
+ test_tag_array+=("!ipsechw")
+ ;;
+ *"1n-c6in" | *"2n-c6in" | *"3n-c6in")
+ test_tag_array+=("!ipsechw")
+ ;;
+ *"2n-x-"* | *"3n-x-"*)
;;
esac
@@ -942,17 +1157,17 @@ function select_tags () {
TAGS=()
prefix=""
-
- set +x
- if [[ "${TEST_CODE}" == "vpp-"* ]]; then
- # Automatic prefixing for VPP jobs to limit the NIC used and
- # traffic evaluation to MRR.
- if [[ "${TEST_TAG_STRING-}" == *"nic_"* ]]; then
- prefix="${prefix}mrrAND"
- else
- prefix="${prefix}mrrAND${default_nic}AND"
+ if [[ "${TEST_CODE}" != *"daily"* ]]; then
+ if [[ "${TEST_CODE}" == "vpp-"* ]]; then
+ if [[ "${TEST_CODE}" != *"device"* ]]; then
+ # Automatic prefixing for VPP perf jobs to limit the NIC used.
+ if [[ "${TEST_TAG_STRING-}" != *"nic_"* ]]; then
+ prefix="${default_nic}AND"
+ fi
+ fi
fi
fi
+ set +x
for tag in "${test_tag_array[@]}"; do
if [[ "${tag}" == "!"* ]]; then
# Exclude tags are not prefixed.
@@ -984,7 +1199,7 @@ function select_topology () {
# Variables read:
# - NODENESS - Node multiplicity of testbed, either "2n" or "3n".
- # - FLAVOR - Node flavor string, currently either "hsw" or "skx".
+ # - FLAVOR - Node flavor string, e.g. "clx" or "skx".
# - CSIT_DIR - Path to existing root of local CSIT git repository.
# - TOPOLOGIES_DIR - Path to existing directory with available topologies.
# Variables set:
@@ -997,54 +1212,105 @@ function select_topology () {
case_text="${NODENESS}_${FLAVOR}"
case "${case_text}" in
- # TODO: Move tags to "# Blacklisting certain tags per topology" section.
- # TODO: Double link availability depends on NIC used.
- "1n_vbox")
+ "1n_aws")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*1n-aws*.yaml )
+ TOPOLOGIES_TAGS="1_node_single_link_topo"
+ ;;
+ "1n_c6in")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*1n-c6in*.yaml )
+ TOPOLOGIES_TAGS="1_node_single_link_topo"
+ ;;
+ "1n_alt" | "1n_spr")
TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*vpp_device*.template )
TOPOLOGIES_TAGS="2_node_single_link_topo"
;;
- "1n_skx" | "1n_tx2")
+ "1n_vbox")
TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*vpp_device*.template )
TOPOLOGIES_TAGS="2_node_single_link_topo"
;;
- "2n_skx")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_skx*.yaml )
- TOPOLOGIES_TAGS="2_node_*_link_topo"
+ "2n_aws")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n-aws*.yaml )
+ TOPOLOGIES_TAGS="2_node_single_link_topo"
;;
- "2n_zn2")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_zn2*.yaml )
- TOPOLOGIES_TAGS="2_node_*_link_topo"
+ "2n_c7gn")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n-c7gn*.yaml )
+ TOPOLOGIES_TAGS="2_node_single_link_topo"
;;
- "3n_skx")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_skx*.yaml )
- TOPOLOGIES_TAGS="3_node_*_link_topo"
+ "2n_c6in")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n-c6in*.yaml )
+ TOPOLOGIES_TAGS="2_node_single_link_topo"
;;
"2n_clx")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_clx*.yaml )
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_clx_*.yaml )
+ TOPOLOGIES_TAGS="2_node_*_link_topo"
+ ;;
+ "2n_icx")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_icx_*.yaml )
+ TOPOLOGIES_TAGS="2_node_*_link_topo"
+ ;;
+ "2n_spr")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_spr_*.yaml )
TOPOLOGIES_TAGS="2_node_*_link_topo"
;;
- "2n_dnv")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_dnv*.yaml )
+ "2n_tx2")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_tx2_*.yaml )
TOPOLOGIES_TAGS="2_node_single_link_topo"
;;
- "3n_dnv")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_dnv*.yaml )
+ "2n_zn2")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_zn2_*.yaml )
+ TOPOLOGIES_TAGS="2_node_*_link_topo"
+ ;;
+ "3n_alt")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_alt_*.yaml )
TOPOLOGIES_TAGS="3_node_single_link_topo"
;;
- "3n_hsw")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_hsw*.yaml )
+ "3n_aws")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-aws*.yaml )
+ TOPOLOGIES_TAGS="3_node_single_link_topo"
+ ;;
+ "3n_c7gn")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-c7gn*.yaml )
+ TOPOLOGIES_TAGS="3_node_single_link_topo"
+ ;;
+ "3n_c6in")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-c6in*.yaml )
+ TOPOLOGIES_TAGS="3_node_single_link_topo"
+ ;;
+ "3n_icx")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_icx_*.yaml )
+ # Trailing underscore is needed to distinguish from 3n_icxd.
+ TOPOLOGIES_TAGS="3_node_*_link_topo"
+ ;;
+ "3n_icxd")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_icxd_*.yaml )
+ TOPOLOGIES_TAGS="3_node_single_link_topo"
+ ;;
+ "3n_snr")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_snr_*.yaml )
TOPOLOGIES_TAGS="3_node_single_link_topo"
;;
"3n_tsh")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_tsh*.yaml )
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_tsh_*.yaml )
TOPOLOGIES_TAGS="3_node_single_link_topo"
;;
- "2n_tx2")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_tx2*.yaml )
+ "3na_spr")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3na_spr_*.yaml )
+ TOPOLOGIES_TAGS="3_node_*_link_topo"
+ ;;
+ "3nb_spr")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3nb_spr_*.yaml )
+ TOPOLOGIES_TAGS="3_node_*_link_topo"
+ ;;
+ "2n_x"*)
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_"${FLAVOR}"*.yaml )
TOPOLOGIES_TAGS="2_node_single_link_topo"
;;
+ "3n_x"*)
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_"${FLAVOR}"*.yaml )
+ TOPOLOGIES_TAGS="3_node_single_link_topo"
+ ;;
*)
- # No falling back to 3n_hsw default, that should have been done
+ # No falling back to default, that should have been done
# by the function which has set NODENESS and FLAVOR.
die "Unknown specification: ${case_text}"
esac
@@ -1055,66 +1321,54 @@ function select_topology () {
}
-function select_vpp_device_tags () {
+function set_environment_variables () {
+ # Depending on testbed topology, overwrite defaults set in the
+ # resources/libraries/python/Constants.py file
+ #
+ # Only to be called from the reservation function,
+ # as resulting values may change based on topology data.
+ #
# Variables read:
# - TEST_CODE - String affecting test selection, usually jenkins job name.
- # - TEST_TAG_STRING - String selecting tags, from gerrit comment.
- # Can be unset.
# Variables set:
- # - TAGS - Array of processed tag boolean expressions.
+ # See specific cases
set -exuo pipefail
case "${TEST_CODE}" in
- # Select specific device tests based on jenkins job type variable.
- * )
- if [[ -z "${TEST_TAG_STRING-}" ]]; then
- # If nothing is specified, we will run pre-selected tests by
- # following tags. Items of array will be concatenated by OR
- # in Robot Framework.
- test_tag_array=()
- else
- # If trigger contains tags, split them into array.
- test_tag_array=(${TEST_TAG_STRING//:/ })
- fi
- SELECTION_MODE="--include"
+ *"1n-aws" | *"2n-aws" | *"3n-aws")
+ export TREX_RX_DESCRIPTORS_COUNT=1024
+ export TREX_EXTRA_CMDLINE="--mbuf-factor 19"
+ export TREX_CORE_COUNT=6
+ # Settings to prevent duration stretching.
+ export PERF_TRIAL_STL_DELAY=0.1
;;
- esac
-
- # Blacklisting certain tags per topology.
- #
- # Reasons for blacklisting:
- # - avf - AVF is not possible to run on enic driver of VirtualBox.
- # - vhost - VirtualBox does not support nesting virtualization on Intel CPU.
- case "${TEST_CODE}" in
- *"1n-vbox"*)
- test_tag_array+=("!avf")
- test_tag_array+=("!vhost")
+ *"2n-c7gn" | *"3n-c7gn")
+ export TREX_RX_DESCRIPTORS_COUNT=1024
+ export TREX_EXTRA_CMDLINE="--mbuf-factor 19"
+ export TREX_CORE_COUNT=6
+ # Settings to prevent duration stretching.
+ export PERF_TRIAL_STL_DELAY=0.1
;;
- *)
+ *"1n-c6in" | *"2n-c6in" | *"3n-c6in")
+ export TREX_RX_DESCRIPTORS_COUNT=1024
+ export TREX_EXTRA_CMDLINE="--mbuf-factor 19"
+ export TREX_CORE_COUNT=6
+ # Settings to prevent duration stretching.
+ export PERF_TRIAL_STL_DELAY=0.1
+ ;;
+ *"2n-zn2")
+ # Maciek's workaround for Zen2 with lower amount of cores.
+ export TREX_CORE_COUNT=14
+ ;;
+ *"2n-x-"* | *"3n-x-"* )
+ export TREX_CORE_COUNT=2
;;
esac
-
- TAGS=()
-
- # We will prefix with devicetest to prevent running other tests
- # (e.g. Functional).
- prefix="devicetestAND"
- if [[ "${TEST_CODE}" == "vpp-"* ]]; then
- # Automatic prefixing for VPP jobs to limit testing.
- prefix="${prefix}"
- fi
- for tag in "${test_tag_array[@]}"; do
- if [[ ${tag} == "!"* ]]; then
- # Exclude tags are not prefixed.
- TAGS+=("${tag}")
- else
- TAGS+=("${prefix}${tag}")
- fi
- done
}
+
function untrap_and_unreserve_testbed () {
# Use this as a trap function to ensure testbed does not remain reserved.
@@ -1129,7 +1383,8 @@ function untrap_and_unreserve_testbed () {
# Variables read (by inner function):
# - WORKING_TOPOLOGY - Path to topology yaml file of the reserved testbed.
# - PYTHON_SCRIPTS_DIR - Path to directory holding Python scripts.
- # Variables written:
+ # Variables set:
+ # - TERRAFORM_MODULE_DIR - Terraform module directory.
# - WORKING_TOPOLOGY - Set to empty string on successful unreservation.
# Trap unregistered:
# - EXIT - Failure to untrap is reported, but ignored otherwise.
@@ -1149,6 +1404,22 @@ function untrap_and_unreserve_testbed () {
python3 "${PYTHON_SCRIPTS_DIR}/topo_reservation.py" -c -t "${wt}" || {
die "${1:-FAILED TO UNRESERVE, FIX MANUALLY.}" 2
}
+ case "${TEST_CODE}" in
+ *"1n-aws" | *"2n-aws" | *"3n-aws")
+ TERRAFORM_MODULE_DIR="terraform-aws-${NODENESS}-${FLAVOR}-c5n"
+ terraform_destroy || die "Failed to call terraform destroy."
+ ;;
+ *"2n-c7gn" | *"3n-c7gn")
+ TERRAFORM_MODULE_DIR="terraform-aws-${NODENESS}-${FLAVOR}"
+ terraform_destroy || die "Failed to call terraform destroy."
+ ;;
+ *"1n-c6in" | *"2n-c6in" | *"3n-c6in")
+ TERRAFORM_MODULE_DIR="terraform-aws-${NODENESS}-${FLAVOR}"
+ terraform_destroy || die "Failed to call terraform destroy."
+ ;;
+ *)
+ ;;
+ esac
WORKING_TOPOLOGY=""
set -eu
fi
diff --git a/resources/libraries/bash/function/device.sh b/resources/libraries/bash/function/device.sh
index cd987cafd2..4d39cd2de6 100644
--- a/resources/libraries/bash/function/device.sh
+++ b/resources/libraries/bash/function/device.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -30,6 +30,7 @@ function activate_wrapper () {
enter_mutex || die
get_available_interfaces "${1}" "${2}" || die
+ bind_dut_interfaces_to_vpp_driver || die
start_topology_containers "${3}" || die
bind_interfaces_to_containers || die
set_env_variables || die
@@ -38,6 +39,29 @@ function activate_wrapper () {
}
+function bind_dut_interfaces_to_vpp_driver () {
+
+ # Bind DUT network interfaces to the driver that vpp will use
+ #
+ # Variables read:
+ # - DUT1_NETDEVS - List of network devices allocated to DUT1 container.
+ # Variables set:
+ # - NETDEV - Linux network interface.
+ # - DRIVER - Kernel driver to bind the interface to.
+ # - KRN_DRIVER - The original kernel driver of the network interface.
+
+ for NETDEV in "${DUT1_NETDEVS[@]}"; do
+ get_pci_addr || die
+ get_krn_driver || die
+ if [[ ${KRN_DRIVER} == "iavf" ]]; then
+ DRIVER="vfio-pci"
+ ADDR=${PCI_ADDR}
+ bind_interfaces_to_driver || die
+ fi
+ done
+}
+
+
function bind_interfaces_to_containers () {
# Bind linux network interface to container and create symlink for PCI
@@ -51,36 +75,42 @@ function bind_interfaces_to_containers () {
# - TG_NETDEVS - List of network devices allocated to TG container.
# Variables set:
# - NETDEV - Linux network interface.
+ # - KRN_DRIVER - Kernel driver of network device.
set -exuo pipefail
- for NETDEV in "${TG_NETDEVS[@]}"; do
- get_pci_addr || die
+ for PCI_ADDR in "${TG_PCIDEVS[@]}"; do
+ get_netdev_name || die
link_target=$(readlink -f /sys/bus/pci/devices/"${PCI_ADDR}") || {
die "Reading symlink for PCI address failed!"
}
cmd="ln -s ${link_target} /sys/bus/pci/devices/${PCI_ADDR}"
- sudo ip link set ${NETDEV} netns ${DCR_CPIDS[tg]} || {
- die "Moving interface to ${DCR_CPIDS[tg]} namespace failed!"
- }
docker exec "${DCR_UUIDS[tg]}" ${cmd} || {
die "Linking PCI address in container failed!"
}
+
+ sudo ip link set ${NETDEV} netns ${DCR_CPIDS[tg]} || {
+ die "Moving interface to ${DCR_CPIDS[tg]} namespace failed!"
+ }
done
- for NETDEV in "${DUT1_NETDEVS[@]}"; do
- get_pci_addr || die
+ for PCI_ADDR in "${DUT1_PCIDEVS[@]}"; do
link_target=$(readlink -f /sys/bus/pci/devices/"${PCI_ADDR}") || {
die "Reading symlink for PCI address failed!"
}
cmd="ln -s ${link_target} /sys/bus/pci/devices/${PCI_ADDR}"
- sudo ip link set ${NETDEV} netns ${DCR_CPIDS[dut1]} || {
- die "Moving interface to ${DCR_CPIDS[dut1]} namespace failed!"
- }
- docker exec "${DCR_UUIDS[dut1]}" ${cmd} || {
+ docker exec "${DCR_UUIDS[dut1]}" ${cmd} || {
die "Linking PCI address in container failed!"
}
+
+ get_krn_driver
+ if [[ ${KRN_DRIVER} != "vfio-pci" ]]; then
+ get_netdev_name || die
+ sudo ip link set ${NETDEV} netns ${DCR_CPIDS[dut1]} || {
+ die "Moving interface to ${DCR_CPIDS[dut1]} namespace failed!"
+ }
+ fi
done
}
@@ -99,13 +129,22 @@ function bind_interfaces_to_driver () {
pci_path="/sys/bus/pci/devices/${ADDR}"
drv_path="/sys/bus/pci/drivers/${DRIVER}"
if [ -d "${pci_path}/driver" ]; then
- echo ${ADDR} | sudo tee ${pci_path}/driver/unbind || {
+ echo ${ADDR} | sudo tee ${pci_path}/driver/unbind > /dev/null || {
die "Failed to unbind interface ${ADDR}!"
}
fi
- echo ${ADDR} | sudo tee ${drv_path}/bind || {
+
+ echo ${DRIVER} | sudo tee /sys/bus/pci/devices/${ADDR}/driver_override \
+ > /dev/null || {
+ die "Failed to override driver to ${DRIVER} for ${ADDR}!"
+ }
+
+ echo ${ADDR} | sudo tee ${drv_path}/bind > /dev/null || {
die "Failed to bind interface ${ADDR}!"
}
+
+ echo | sudo tee /sys/bus/pci/devices/${ADDR}/driver_override > /dev/null \
+ || die "Failed to reset driver override for ${ADDR}!"
}
@@ -134,13 +173,17 @@ function clean_environment () {
}
# Rebind interfaces back to kernel drivers.
+ i=0
for ADDR in ${TG_PCIDEVS[@]}; do
- DRIVER="${TG_DRIVERS[0]}"
+ DRIVER="${TG_DRIVERS[${i}]}"
bind_interfaces_to_driver || die
+ ((i++))
done
+ i=0
for ADDR in ${DUT1_PCIDEVS[@]}; do
- DRIVER="${DUT1_DRIVERS[0]}"
+ DRIVER="${DUT1_DRIVERS[${i}]}"
bind_interfaces_to_driver || die
+ ((i++))
done
}
@@ -245,16 +288,20 @@ function get_available_interfaces () {
# - DUT1_PCIDEVS - List of PCI addresses allocated to DUT1 container.
# - DUT1_NETMACS - List of MAC addresses allocated to DUT1 container.
# - DUT1_DRIVERS - List of interface drivers to DUT1 container.
+ # - DUT1_VLANS - List of interface vlans to TG container.
+ # - DUT1_MODEL - List of interface models to TG container.
# - TG_NETDEVS - List of network devices allocated to TG container.
# - TG_PCIDEVS - List of PCI addresses allocated to TG container.
# - TG_NETMACS - List of MAC addresses allocated to TG container.
# - TG_DRIVERS - List of interface drivers to TG container.
+ # - TG_VLANS - List of interface vlans to TG container.
+ # - TG_MODEL - List of interface models to TG container.
set -exuo pipefail
- # Following code is specifing VFs ID based on nodeness and flavor.
+ # Following code is specifying VFs ID based on nodeness and flavor.
# As there is great variability in hardware configuration outside LF,
- # from bootstrap architecure point of view these are considered as flavors.
+ # from bootstrap architecture point of view these are considered as flavors.
# Anyone can override flavor for its own machine and add condition here.
# See http://pci-ids.ucw.cz/v2.2/pci.ids for more info.
case_text="${1}_${2}"
@@ -262,22 +309,30 @@ function get_available_interfaces () {
"1n_skx")
# Add Intel Corporation XL710/X710 Virtual Function to the
# whitelist.
- pci_id="0x154c"
- tg_netdev=(enp24)
- dut1_netdev=(enp59)
+ # Add Intel Corporation E810 Virtual Function to the
+ # whitelist.
+ pci_id="0x154c\|0x1889"
+ tg_netdev=(ens1 enp134)
+ dut1_netdev=(ens5 enp175)
+ ports_per_nic=2
;;
- "1n_tx2")
+ "1n_alt")
# Add Intel Corporation XL710/X710 Virtual Function to the
# whitelist.
- pci_id="0x154c"
- tg_netdev=(enp5s2 enp5s3 enp5s4 enp5s5
- enp5s6 enp5s7 enp5s8 enp5s9)
- tg_netdev+=(enp5s10 enp5s11 enp5s12 enp5s13
- enp5s14 enp5s15 enp5s16 enp5s17)
- dut1_netdev=(enp145s2 enp145s3 enp145s4 enp145s5
- enp145s6 enp145s7 enp145s8 enp145s9)
- dut1_netdev+=(enp145s10 enp145s11 enp145s12 enp145s13
- enp145s14 enp145s15 enp145s16 enp145s17)
+ # Add MT2892 Family [ConnectX-6 Dx] Virtual Function to the
+ # whitelist.
+ pci_id="0x154c\|0x101e"
+ tg_netdev=(enp1s0f0 enp1s0f1 enP1p1s0f0)
+ dut1_netdev=(enP3p2s0f0 enP3p2s0f1 enP1p1s0f1)
+ ports_per_nic=2
+ ;;
+ "1n_spr")
+ # Add Intel Corporation E810 Virtual Function to the
+ # whitelist.
+ pci_id="0x1889"
+ tg_netdev=(enp42s0 enp44s0)
+ dut1_netdev=(enp63s0 enp61s0)
+ ports_per_nic=1
;;
"1n_vbox")
# Add Intel Corporation 82545EM Gigabit Ethernet Controller to the
@@ -285,43 +340,47 @@ function get_available_interfaces () {
pci_id="0x100f"
tg_netdev=(enp0s8 enp0s9)
dut1_netdev=(enp0s16 enp0s17)
+ ports_per_nic=1
;;
*)
die "Unknown specification: ${case_text}!"
esac
- device_count=2
-
# TG side of connections.
TG_NETDEVS=()
TG_PCIDEVS=()
TG_NETMACS=()
TG_DRIVERS=()
TG_VLANS=()
+ TG_MODEL=()
# DUT1 side of connections.
DUT1_NETDEVS=()
DUT1_PCIDEVS=()
DUT1_NETMACS=()
DUT1_DRIVERS=()
DUT1_VLANS=()
+ DUT1_MODEL=()
# Find the first ${device_count} number of available TG Linux network
# VF device names. Only allowed VF PCI IDs are filtered.
for netdev in ${tg_netdev[@]}
do
+ ports=0
for netdev_path in $(grep -l "${pci_id}" \
/sys/class/net/${netdev}*/device/device \
2> /dev/null)
do
- if [[ ${#TG_NETDEVS[@]} -lt ${device_count} ]]; then
+ if [[ ${ports} -lt ${ports_per_nic} ]]; then
tg_netdev_name=$(dirname ${netdev_path})
tg_netdev_name=$(dirname ${tg_netdev_name})
TG_NETDEVS+=($(basename ${tg_netdev_name}))
+ ((ports++))
else
break
fi
done
- if [[ ${#TG_NETDEVS[@]} -eq ${device_count} ]]; then
+ ports_per_device=$((${ports_per_nic}*${#tg_netdev[@]}))
+ if [[ ${#TG_NETDEVS[@]} -eq ${ports_per_device} ]]; then
break
fi
done
@@ -345,29 +404,30 @@ function get_available_interfaces () {
get_mac_addr
get_krn_driver
get_vlan_filter
+ get_csit_model
TG_PCIDEVS+=(${PCI_ADDR})
TG_NETMACS+=(${MAC_ADDR})
TG_DRIVERS+=(${KRN_DRIVER})
TG_VLANS+=(${VLAN_ID})
+ TG_MODELS+=(${MODEL})
done
for NETDEV in "${DUT1_NETDEVS[@]}"; do
get_pci_addr
get_mac_addr
get_krn_driver
get_vlan_filter
+ get_csit_model
DUT1_PCIDEVS+=(${PCI_ADDR})
DUT1_NETMACS+=(${MAC_ADDR})
DUT1_DRIVERS+=(${KRN_DRIVER})
DUT1_VLANS+=(${VLAN_ID})
+ DUT1_MODELS+=(${MODEL})
done
# We need at least two interfaces for TG/DUT1 for building topology.
- if [ "${#TG_NETDEVS[@]}" -ne 2 ] || [ "${#DUT1_NETDEVS[@]}" -ne 2 ]; then
+ if [ "${#TG_NETDEVS[@]}" -lt 2 ] || [ "${#DUT1_NETDEVS[@]}" -lt 2 ]; then
die "Not enough linux network interfaces found!"
fi
- if [ "${#TG_PCIDEVS[@]}" -ne 2 ] || [ "${#DUT1_PCIDEVS[@]}" -ne 2 ]; then
- die "Not enough pci interfaces found!"
- fi
}
@@ -408,6 +468,57 @@ function get_mac_addr () {
}
+function get_netdev_name () {
+
+ # Get Linux network device name.
+ #
+ # Variables read:
+ # - PCI_ADDR - PCI address of the device.
+ # Variables set:
+ # - NETDEV - Linux network device name.
+
+ set -exuo pipefail
+
+ if [ -d /sys/bus/pci/devices/${PCI_ADDR}/net ]; then
+ NETDEV="$(basename /sys/bus/pci/devices/${PCI_ADDR}/net/*)" || {
+ die "Failed to get Linux interface name of ${PCI_ADDR}"
+ }
+ fi
+}
+
+
+function get_csit_model () {
+
+ # Get CSIT model name from linux network device name.
+ #
+ # Variables read:
+ # - NETDEV - Linux network device name.
+ # Variables set:
+ # - MODEL - CSIT model name of network device.
+
+ set -exuo pipefail
+
+ if [ -d /sys/class/net/${NETDEV}/device ]; then
+ ID="$(</sys/class/net/${NETDEV}/device/device)" || {
+ die "Failed to get device id of linux network interface!"
+ }
+ case "${ID}" in
+ "0x1592"|"0x1889")
+ MODEL="Intel-E810CQ"
+ ;;
+ "0x1572"|"0x154c")
+ MODEL="Intel-X710"
+ ;;
+ "0x101e")
+ MODEL="Mellanox-CX6DX"
+ ;;
+ *)
+ MODEL="virtual"
+ esac
+ fi
+}
+
+
function get_pci_addr () {
# Get PCI address in <domain>:<bus:<device>.<func> format from linux network
@@ -424,13 +535,33 @@ function get_pci_addr () {
PCI_ADDR=$(basename $(readlink /sys/class/net/${NETDEV}/device)) || {
die "Failed to get PCI address of linux network interface!"
}
- fi
- if [ ! -d /sys/bus/pci/devices/${PCI_ADDR} ]; then
- die "PCI device ${NETDEV} doesn't exist!"
+ if [ ! -d /sys/bus/pci/devices/${PCI_ADDR} ]; then
+ die "PCI device ${PCI_ADDR} doesn't exist!"
+ fi
+ else
+ die "Can't get device info of interface ${NETDEV}!"
fi
}
+function get_vfio_group () {
+
+ # Get the VFIO group of a pci device.
+ #
+ # Variables read:
+ # - PCI_ADDR - PCI address of a device.
+ # Variables set:
+ # - VFIO_GROUP - The VFIO group of the PCI device.
+
+ if [[ -d /sys/bus/pci/devices/${PCI_ADDR}/iommu_group ]]; then
+ VFIO_GROUP="$(basename\
+ $(readlink /sys/bus/pci/devices/${PCI_ADDR}/iommu_group)\
+ )" || {
+ die "PCI device ${PCI_ADDR} does not have an iommu group!"
+ }
+ fi
+}
+
function get_vlan_filter () {
# Get VLAN stripping filter from PF searched by mac adress.
@@ -467,6 +598,55 @@ function installed () {
}
+function parse_env_variables () {
+
+ # Parse environment variables.
+ #
+ # Variables read, set or exported: Multiple,
+ # see the code for the current list.
+
+ set -exuo pipefail
+
+ IFS=@ read -a TG_NETMACS <<< "${CSIT_TG_INTERFACES_PORT_MAC}"
+ IFS=@ read -a TG_PCIDEVS <<< "${CSIT_TG_INTERFACES_PORT_PCI}"
+ IFS=@ read -a TG_DRIVERS <<< "${CSIT_TG_INTERFACES_PORT_DRV}"
+ IFS=@ read -a TG_VLANS <<< "${CSIT_TG_INTERFACES_PORT_VLAN}"
+ IFS=@ read -a TG_MODELS <<< "${CSIT_TG_INTERFACES_PORT_MODEL}"
+ IFS=@ read -a DUT1_NETMACS <<< "${CSIT_DUT1_INTERFACES_PORT_MAC}"
+ IFS=@ read -a DUT1_PCIDEVS <<< "${CSIT_DUT1_INTERFACES_PORT_PCI}"
+ IFS=@ read -a DUT1_DRIVERS <<< "${CSIT_DUT1_INTERFACES_PORT_DRV}"
+ IFS=@ read -a DUT1_VLANS <<< "${CSIT_DUT1_INTERFACES_PORT_VLAN}"
+ IFS=@ read -a DUT1_MODELS <<< "${CSIT_DUT1_INTERFACES_PORT_MODEL}"
+
+ for port in $(seq "${#TG_NETMACS[*]}"); do
+ CSIT_TG_INTERFACES+=$(cat << EOF
+ port$((port-1)):
+ mac_address: "${TG_NETMACS[$((port-1))]}"
+ pci_address: "${TG_PCIDEVS[$((port-1))]}"
+ link: "link$((port-1))"
+ model: ${TG_MODELS[$((port-1))]}
+ driver: "${TG_DRIVERS[$((port-1))]}"
+ vlan: ${TG_VLANS[$((port-1))]}
+EOF
+ )
+ CSIT_TG_INTERFACES+=$'\n'
+ done
+ for port in $(seq "${#DUT1_NETMACS[*]}"); do
+ CSIT_DUT1_INTERFACES+=$(cat << EOF
+ port$((port-1)):
+ mac_address: "${DUT1_NETMACS[$((port-1))]}"
+ pci_address: "${DUT1_PCIDEVS[$((port-1))]}"
+ link: "link$((port-1))"
+ model: ${DUT1_MODELS[$((port-1))]}
+ driver: "${DUT1_DRIVERS[$((port-1))]}"
+ vlan: ${DUT1_VLANS[$((port-1))]}
+EOF
+ )
+ CSIT_DUT1_INTERFACES+=$'\n'
+ done
+}
+
+
function print_env_variables () {
# Get environment variables prefixed by CSIT_.
@@ -485,7 +665,6 @@ function read_env_variables () {
# - ${@} - Variables passed as an argument.
# Variables read, set or exported: Multiple,
# see the code for the current list.
- # TODO: Do we need to list them and their meanings?
set -exuo pipefail
@@ -495,18 +674,17 @@ function read_env_variables () {
declare -gA DCR_UUIDS
DCR_UUIDS+=([tg]="${CSIT_TG_UUID}")
DCR_UUIDS+=([dut1]="${CSIT_DUT1_UUID}")
- TG_PCIDEVS=("${CSIT_TG_INTERFACES_PORT1_PCI}")
- TG_DRIVERS=("${CSIT_TG_INTERFACES_PORT1_DRV}")
- TG_VLANS+=("${CSIT_TG_INTERFACES_PORT1_VLAN}")
- TG_PCIDEVS+=("${CSIT_TG_INTERFACES_PORT2_PCI}")
- TG_DRIVERS+=("${CSIT_TG_INTERFACES_PORT2_DRV}")
- TG_VLANS+=("${CSIT_TG_INTERFACES_PORT2_VLAN}")
- DUT1_PCIDEVS=("${CSIT_DUT1_INTERFACES_PORT1_PCI}")
- DUT1_DRIVERS=("${CSIT_DUT1_INTERFACES_PORT1_DRV}")
- DUT1_VLANS+=("${CSIT_DUT1_INTERFACES_PORT1_VLAN}")
- DUT1_PCIDEVS+=("${CSIT_DUT1_INTERFACES_PORT2_PCI}")
- DUT1_DRIVERS+=("${CSIT_DUT1_INTERFACES_PORT2_DRV}")
- DUT1_VLANS+=("${CSIT_DUT1_INTERFACES_PORT2_VLAN}")
+
+ IFS=@ read -a TG_NETMACS <<< "${CSIT_TG_INTERFACES_PORT_MAC}"
+ IFS=@ read -a TG_PCIDEVS <<< "${CSIT_TG_INTERFACES_PORT_PCI}"
+ IFS=@ read -a TG_DRIVERS <<< "${CSIT_TG_INTERFACES_PORT_DRV}"
+ IFS=@ read -a TG_VLANS <<< "${CSIT_TG_INTERFACES_PORT_VLAN}"
+ IFS=@ read -a TG_MODELS <<< "${CSIT_TG_INTERFACES_PORT_MODEL}"
+ IFS=@ read -a DUT1_NETMACS <<< "${CSIT_DUT1_INTERFACES_PORT_MAC}"
+ IFS=@ read -a DUT1_PCIDEVS <<< "${CSIT_DUT1_INTERFACES_PORT_PCI}"
+ IFS=@ read -a DUT1_DRIVERS <<< "${CSIT_DUT1_INTERFACES_PORT_DRV}"
+ IFS=@ read -a DUT1_VLANS <<< "${CSIT_DUT1_INTERFACES_PORT_VLAN}"
+ IFS=@ read -a DUT1_MODELS <<< "${CSIT_DUT1_INTERFACES_PORT_MODEL}"
}
@@ -517,13 +695,18 @@ function set_env_variables () {
# Variables read:
# - DCR_UUIDS - Docker Container UUIDs.
# - DCR_PORTS - Docker Container's SSH ports.
- # - DUT1_NETMACS - List of network devices MAC addresses of DUT1 container.
- # - DUT1_PCIDEVS - List of PCI addresses of devices of DUT1 container.
+ # - DUT1_NETDEVS - List of network devices allocated to DUT1 container.
+ # - DUT1_PCIDEVS - List of PCI addresses allocated to DUT1 container.
+ # - DUT1_NETMACS - List of MAC addresses allocated to DUT1 container.
# - DUT1_DRIVERS - List of interface drivers to DUT1 container.
- # - TG_NETMACS - List of network devices MAC addresses of TG container.
- # - TG_PCIDEVS - List of PCI addresses of devices of TG container.
+ # - DUT1_VLANS - List of interface vlans to TG container.
+ # - DUT1_MODEL - List of interface models to TG container.
+ # - TG_NETDEVS - List of network devices allocated to TG container.
+ # - TG_PCIDEVS - List of PCI addresses allocated to TG container.
+ # - TG_NETMACS - List of MAC addresses allocated to TG container.
# - TG_DRIVERS - List of interface drivers to TG container.
- # Variables set: TODO.
+ # - TG_VLANS - List of interface vlans to TG container.
+ # - TG_MODEL - List of interface models to TG container.
set -exuo pipefail
@@ -531,7 +714,7 @@ function set_env_variables () {
CSIT_TG_HOST="$(hostname --all-ip-addresses | awk '{print $1}')" || {
die "Reading hostname IP address failed!"
}
- CSIT_TG_PORT="${DCR_PORTS[tg]#*:}"
+ CSIT_TG_PORT="${DCR_PORTS[tg]##*:}"
CSIT_TG_UUID="${DCR_UUIDS[tg]}"
CSIT_TG_ARCH="$(uname -i)" || {
die "Reading machine architecture failed!"
@@ -539,28 +722,25 @@ function set_env_variables () {
CSIT_DUT1_HOST="$(hostname --all-ip-addresses | awk '{print $1}')" || {
die "Reading hostname IP address failed!"
}
- CSIT_DUT1_PORT="${DCR_PORTS[dut1]#*:}"
+ CSIT_DUT1_PORT="${DCR_PORTS[dut1]##*:}"
CSIT_DUT1_UUID="${DCR_UUIDS[dut1]}"
CSIT_DUT1_ARCH="$(uname -i)" || {
die "Reading machine architecture failed!"
}
- CSIT_TG_INTERFACES_PORT1_MAC="${TG_NETMACS[0]}"
- CSIT_TG_INTERFACES_PORT1_PCI="${TG_PCIDEVS[0]}"
- CSIT_TG_INTERFACES_PORT1_DRV="${TG_DRIVERS[0]}"
- CSIT_TG_INTERFACES_PORT1_VLAN="${TG_VLANS[0]}"
- CSIT_TG_INTERFACES_PORT2_MAC="${TG_NETMACS[1]}"
- CSIT_TG_INTERFACES_PORT2_PCI="${TG_PCIDEVS[1]}"
- CSIT_TG_INTERFACES_PORT2_DRV="${TG_DRIVERS[1]}"
- CSIT_TG_INTERFACES_PORT2_VLAN="${TG_VLANS[1]}"
- CSIT_DUT1_INTERFACES_PORT1_MAC="${DUT1_NETMACS[0]}"
- CSIT_DUT1_INTERFACES_PORT1_PCI="${DUT1_PCIDEVS[0]}"
- CSIT_DUT1_INTERFACES_PORT1_DRV="${DUT1_DRIVERS[0]}"
- CSIT_DUT1_INTERFACES_PORT1_VLAN="${DUT1_VLANS[0]}"
- CSIT_DUT1_INTERFACES_PORT2_MAC="${DUT1_NETMACS[1]}"
- CSIT_DUT1_INTERFACES_PORT2_PCI="${DUT1_PCIDEVS[1]}"
- CSIT_DUT1_INTERFACES_PORT2_DRV="${DUT1_DRIVERS[1]}"
- CSIT_DUT1_INTERFACES_PORT2_VLAN="${DUT1_VLANS[1]}"
+ OIFS="$IFS" IFS=@
+ set -a
+ CSIT_TG_INTERFACES_PORT_MAC="${TG_NETMACS[*]}"
+ CSIT_TG_INTERFACES_PORT_PCI="${TG_PCIDEVS[*]}"
+ CSIT_TG_INTERFACES_PORT_DRV="${TG_DRIVERS[*]}"
+ CSIT_TG_INTERFACES_PORT_VLAN="${TG_VLANS[*]}"
+ CSIT_TG_INTERFACES_PORT_MODEL="${TG_MODELS[*]}"
+ CSIT_DUT1_INTERFACES_PORT_MAC="${DUT1_NETMACS[*]}"
+ CSIT_DUT1_INTERFACES_PORT_PCI="${DUT1_PCIDEVS[*]}"
+ CSIT_DUT1_INTERFACES_PORT_DRV="${DUT1_DRIVERS[*]}"
+ CSIT_DUT1_INTERFACES_PORT_VLAN="${DUT1_VLANS[*]}"
+ CSIT_DUT1_INTERFACES_PORT_MODEL="${DUT1_MODELS[*]}"
set +a
+ IFS="$OIFS"
}
@@ -598,9 +778,21 @@ function start_topology_containers () {
# Override access to PCI bus by attaching a filesystem mount to the
# container.
dcr_stc_params+="--mount type=tmpfs,destination=/sys/bus/pci/devices "
- # Mount vfio to be able to bind to see bound interfaces. We cannot use
- # --device=/dev/vfio as this does not see newly bound interfaces.
- dcr_stc_params+="--volume /dev/vfio:/dev/vfio "
+ # Mount vfio devices to be able to use VFs inside the container.
+ vfio_bound="false"
+ for PCI_ADDR in ${DUT1_PCIDEVS[@]}; do
+ get_krn_driver
+ if [[ ${KRN_DRIVER} == "vfio-pci" ]]; then
+ get_vfio_group
+ dcr_stc_params+="--device /dev/vfio/${VFIO_GROUP} "
+ vfio_bound="true"
+ fi
+ done
+ if ! ${vfio_bound}; then
+ dcr_stc_params+="--volume /dev/vfio:/dev/vfio "
+ fi
+ # Disable manipulation with hugepages by VPP.
+ dcr_stc_params+="--volume /dev/null:/etc/sysctl.d/80-vpp.conf "
# Mount docker.sock to be able to use docker deamon of the host.
dcr_stc_params+="--volume /var/run/docker.sock:/var/run/docker.sock "
# Mount /opt/boot/ where VM kernel and initrd are located.
diff --git a/resources/libraries/bash/function/dpdk.sh b/resources/libraries/bash/function/dpdk.sh
index 0b148aa83d..86abb84a02 100644
--- a/resources/libraries/bash/function/dpdk.sh
+++ b/resources/libraries/bash/function/dpdk.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -86,24 +86,18 @@ function dpdk_compile () {
pushd "${DPDK_DIR}" || die "Pushd failed"
- # Patch ARM.
- sed_cmd="s/'RTE_MAX_LCORE', [0-9]*/'RTE_MAX_LCORE', $(nproc --all)/"
- sed_file="config/arm/meson.build"
- sed -i "${sed_cmd}" "${sed_file}" || die "Patch failed"
+ # enable l3fwd
+ meson_options="-Dexamples=l3fwd "
- # Patch L3FWD.
- sed_rxd="s/^#define RTE_TEST_RX_DESC_DEFAULT 128/#define RTE_TEST_RX_DESC_DEFAULT 1024/g"
- sed_txd="s/^#define RTE_TEST_TX_DESC_DEFAULT 512/#define RTE_TEST_TX_DESC_DEFAULT 1024/g"
- sed_file="./main.c"
- pushd examples/l3fwd || die "Pushd failed"
- sed -i "${sed_rxd}" "${sed_file}" || die "Patch failed"
- sed -i "${sed_txd}" "${sed_file}" || die "Patch failed"
- popd || die "Popd failed"
+ # i40e specific options
+ meson_options="${meson_options} \
+ -Dc_args=-DRTE_LIBRTE_I40E_16BYTE_RX_DESC=y"
+
+ # Configure generic build - the same used by VPP
+ meson_options="${meson_options} -Dplatform=generic"
# Compile using Meson and Ninja.
- export CFLAGS=""
- CFLAGS+="-DRTE_LIBRTE_I40E_16BYTE_RX_DESC=y"
- meson -Dexamples=l3fwd build || {
+ meson setup ${meson_options} build || {
die "Failed to compile DPDK!"
}
ninja -C build || die "Failed to compile DPDK!"
@@ -196,7 +190,6 @@ function dpdk_l3fwd_compile () {
#
# Variables read:
# - DPDK_DIR - Path to DPDK framework.
- # - CSIT_DIR - Path to CSIT framework.
# Functions called:
# - die - Print to stderr and exit.
@@ -204,12 +197,7 @@ function dpdk_l3fwd_compile () {
pushd "${DPDK_DIR}" || die "Pushd failed"
# Patch L3FWD.
- sed_rxd="s/^#define RTE_TEST_RX_DESC_DEFAULT 128/#define RTE_TEST_RX_DESC_DEFAULT 2048/g"
- sed_txd="s/^#define RTE_TEST_TX_DESC_DEFAULT 512/#define RTE_TEST_TX_DESC_DEFAULT 2048/g"
- sed_file="./main.c"
pushd examples/l3fwd || die "Pushd failed"
- sed -i "${sed_rxd}" "${sed_file}" || die "Patch failed"
- sed -i "${sed_txd}" "${sed_file}" || die "Patch failed"
chmod +x ${1} && source ${1} || die "Patch failed"
popd || die "Popd failed"
@@ -238,6 +226,28 @@ function dpdk_l3fwd () {
for attempt in {1..60}; do
echo "Checking if l3fwd is alive, attempt nr ${attempt}"
if fgrep "L3FWD: entering main loop on lcore" screenlog.0; then
+ cat screenlog.0
+ exit 0
+ fi
+ sleep 1
+ done
+ cat screenlog.0
+
+ exit 1
+}
+
+
+function dpdk_l3fwd_check () {
+
+ # DPDK l3fwd check state.
+
+ set -exuo pipefail
+
+ for attempt in {1..60}; do
+ echo "Checking if l3fwd state is ok, attempt nr ${attempt}"
+ if fgrep "Link up" screenlog.0; then
+ cat screenlog.0
+ dpdk_l3fwd_pid
exit 0
fi
sleep 1
@@ -248,6 +258,16 @@ function dpdk_l3fwd () {
}
+function dpdk_l3fwd_pid () {
+ l3fwd_pid="$(pidof dpdk-l3fwd)"
+ if [ ! -z "${l3fwd_pid}" ]; then
+ echo "L3fwd process ID: ${l3fwd_pid}"
+ else
+ echo "L3fwd not running!"
+ fi
+}
+
+
function dpdk_precheck () {
# Precheck system settings (nr_hugepages, max_map_count).
@@ -292,9 +312,10 @@ function dpdk_testpmd () {
for attempt in {1..60}; do
echo "Checking if testpmd is alive, attempt nr ${attempt}"
- if fgrep "Press enter to exit" screenlog.0; then
- cat screenlog.0
- exit 0
+ if fgrep "Press enter to exit" screenlog.0; then
+ cat screenlog.0
+ dpdk_testpmd_pid
+ exit 0
fi
sleep 1
done
@@ -302,3 +323,33 @@ function dpdk_testpmd () {
exit 1
}
+
+
+function dpdk_testpmd_check () {
+
+ # DPDK testpmd check links state.
+
+ set -exuo pipefail
+
+ for attempt in {1..60}; do
+ echo "Checking if testpmd links state changed, attempt nr ${attempt}"
+ if fgrep "link state change event" screenlog.0; then
+ cat screenlog.0
+ exit 0
+ fi
+ sleep 1
+ done
+ cat screenlog.0
+
+ exit 1
+}
+
+
+function dpdk_testpmd_pid () {
+ testpmd_pid="$(pidof dpdk-testpmd)"
+ if [ ! -z "${testpmd_pid}" ]; then
+ echo "Testpmd process ID: ${testpmd_pid}"
+ else
+ echo "Testpmd not running!"
+ fi
+}
diff --git a/resources/libraries/bash/function/eb_version.sh b/resources/libraries/bash/function/eb_version.sh
new file mode 100644
index 0000000000..0393030065
--- /dev/null
+++ b/resources/libraries/bash/function/eb_version.sh
@@ -0,0 +1,159 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+set -exuo pipefail
+
+
+function die_on_error () {
+
+ # Source this fragment if you want to abort on any failure.
+ #
+ # Variables read:
+ # - ${CODE_EXIT_STATUS} - Exit status of report generation.
+ # Functions called:
+ # - die - Print to stderr and exit.
+
+ set -exuo pipefail
+
+ if [[ "${CODE_EXIT_STATUS}" != "0" ]]; then
+ die "Failed to generate docs!" "${CODE_EXIT_STATUS}"
+ fi
+}
+
+
+function eb_version_deploy () {
+
+ # Deploy Elastic Beanstalk CDash content.
+ #
+ # Variable read:
+ # - ${CSIT_DIR} - CSIT main directory.
+ # - ${TERRAFORM_OUTPUT_VAL} - Terraform output value.
+ # Variables set:
+ # - ${CODE_EXIT_STATUS} - Exit status of report generation.
+ # - ${TERRAFORM_OUTPUT_VAR} - Register Terraform output variable name.
+ # Functions called:
+ # - eb_version_verify - Build and verify EB version.
+ # - terraform_apply - Apply EB version by Terraform.
+ # - terraform_output - Get the application name string from Terraform.
+ # - die - Print to stderr and exit.
+
+ set -exuo pipefail
+
+ eb_version_build_verify || die "Failed to call Elastic Beanstalk verify!"
+ terraform_apply || die "Failed to call Terraform apply!"
+
+ TERRAFORM_OUTPUT_VAR="application_version"
+ terraform_output || die "Failed to call Terraform output!"
+
+ #aws --region eu-central-1 elasticbeanstalk update-environment \
+ # --environment-name fdio-csit-dash-env \
+ # --version-label "${TERRAFORM_OUTPUT_VAL}"
+}
+
+
+function eb_version_build_verify () {
+
+ # Build and verify Elastic Beanstalk CDash integrity.
+ #
+ # Variable read:
+ # - ${CSIT_DIR} - CSIT main directory.
+ # Variables set:
+ # - ${TERRAFORM_MODULE_DIR} - Terraform module sub-directory.
+ # Functions called:
+ # - hugo_init_modules - Initialize Hugo modules.
+ # - hugo_build_site - Build static site with Hugo.
+ # - terraform_init - Initialize Terraform modules.
+ # - terraform_validate - Validate Terraform code.
+ # - die - Print to stderr and exit.
+
+ set -exuo pipefail
+
+ if ! installed zip; then
+ die "Please install zip!"
+ fi
+
+ hugo_init_modules || die "Failed to call Hugo initialize!"
+ hugo_build_site || die "Failed to call Hugo build!"
+
+ pushd "${CSIT_DIR}"/csit.infra.dash || die "Pushd failed!"
+ pushd app || die "Pushd failed!"
+ find . -type d -name "__pycache__" -exec rm -rf "{}" \;
+ find . -type d -name ".webassets-cache" -exec rm -rf "{}" \;
+ zip -r ../app.zip . || die "Compress failed!"
+ popd || die "Popd failed!"
+ popd || die "Popd failed!"
+
+ TERRAFORM_MODULE_DIR="terraform-aws-fdio-csit-dash-app-base"
+
+ export TF_VAR_application_version="${BUILD_ID}"
+ terraform_init || die "Failed to call Terraform init!"
+ terraform_validate || die "Failed to call Terraform validate!"
+}
+
+
+function generate_report () {
+
+ # Generate report content.
+ #
+ # Variable read:
+ # - ${TOOLS_DIR} - Path to existing resources subdirectory "tools".
+ # - ${GERRIT_BRANCH} - Gerrit branch used for release tagging.
+ # Variables set:
+ # - ${CODE_EXIT_STATUS} - Exit status of report generation.
+ # Functions called:
+ # - die - Print to stderr and exit.
+
+ set -exuo pipefail
+
+ pushd "${TOOLS_DIR}"/presentation || die "Pushd failed!"
+
+ # Set default values in config array.
+ typeset -A CFG
+ typeset -A DIR
+
+ DIR[WORKING]="_tmp"
+
+ # Create working directories.
+ mkdir "${DIR[WORKING]}" || die "Mkdir failed!"
+
+ export PYTHONPATH=`pwd`:`pwd`/../../../ || die "Export failed!"
+
+ all_options=("pal.py")
+ all_options+=("--specification" "specifications/report")
+ all_options+=("--release" "${GERRIT_BRANCH:-master}")
+ all_options+=("--week" $(date "+%V"))
+ all_options+=("--logging" "INFO")
+ all_options+=("--force")
+
+ set +e
+ python "${all_options[@]}"
+ CODE_EXIT_STATUS="$?"
+ set -e
+}
+
+function installed () {
+
+ # Check if the given utility is installed. Fail if not installed.
+ #
+ # Arguments:
+ # - ${1} - Utility to check.
+ # Returns (implicitly):
+ # - 0 - If command is installed.
+ # - 1 - If command is not installed.
+
+ set -exuo pipefail
+
+ command -v "${1}"
+}
diff --git a/resources/libraries/bash/function/gather.sh b/resources/libraries/bash/function/gather.sh
index e0829400b0..e432777e32 100644
--- a/resources/libraries/bash/function/gather.sh
+++ b/resources/libraries/bash/function/gather.sh
@@ -1,5 +1,5 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# Copyright (c) 2019 PANTHEON.tech and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# Copyright (c) 2023 PANTHEON.tech and/or its affiliates.
# 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:
@@ -26,7 +26,7 @@ function gather_build () {
# Variables read:
# - TEST_CODE - String affecting test selection, usually jenkins job name.
- # - DOWNLOAD_DIR - Path to directory pybot takes the build to test from.
+ # - DOWNLOAD_DIR - Path to directory robot takes the build to test from.
# Variables set:
# - DUT - CSIT test/ subdirectory containing suites to execute.
# Directories updated:
@@ -57,6 +57,10 @@ function gather_build () {
DUT="dpdk"
gather_dpdk || die "The function should have died on error."
;;
+ *"trex"*)
+ DUT="trex"
+ gather_trex || die "The function should have died on error."
+ ;;
*)
die "Unable to identify DUT type from: ${TEST_CODE}"
;;
@@ -88,7 +92,8 @@ function gather_dpdk () {
then
echo "Downloading latest DPDK packages from repo..."
# URL is not in quotes, calling command from variable keeps them.
- wget_command=("wget" "--no-check-certificate" "-nv" "-O" "-")
+ wget_command=("wget" "--no-check-certificate" "--compression=auto")
+ wget_command+=("-nv" "-O" "-")
wget_command+=("${dpdk_repo}")
dpdk_stable_ver="$("${wget_command[@]}" | grep -v "2015"\
| grep -Eo 'dpdk-[^\"]+xz' | tail -1)" || {
@@ -110,13 +115,23 @@ function gather_dpdk () {
fi
}
+function gather_trex () {
+
+ # This function is required to bypass download dir check.
+ # Currently it creates empty file in download dir.
+ # TODO: Add required packages
+
+ set -exuo pipefail
+
+ touch trex-download-to-be-added.txt
+}
function gather_vpp () {
# Variables read:
# - BASH_FUNCTION_DIR - Bash directory with functions.
# - TEST_CODE - The test selection string from environment or argument.
- # - DOWNLOAD_DIR - Path to directory pybot takes the build to test from.
+ # - DOWNLOAD_DIR - Path to directory robot takes the build to test from.
# - CSIT_DIR - Path to existing root of local CSIT git repository.
# Variables set:
# - VPP_VERSION - VPP stable version under test.
@@ -124,7 +139,8 @@ function gather_vpp () {
# - ${CSIT_DIR}/DPDK_STABLE_VER - DPDK version to use
# by csit-vpp not-timed jobs.
# - ${CSIT_DIR}/${VPP_VER_FILE} - Ubuntu VPP version to use.
- # - ../*vpp*.deb|rpm - Relative to ${DOWNLOAD_DIR}, copied for vpp-csit jobs.
+ # - ../*vpp*.deb|rpm - Relative to ${DOWNLOAD_DIR},
+ # copied for vpp-csit jobs.
# Directories updated:
# - ${DOWNLOAD_DIR}, vpp-*.deb files are copied here for vpp-csit jobs.
# - ./ - Assumed ${DOWNLOAD_DIR}, *vpp*.deb|rpm files
@@ -157,8 +173,10 @@ function gather_vpp () {
download_artifacts || die
;;
"vpp-csit-"*)
+ # Shorten line.
+ pkgs="${PKG_SUFFIX}"
# Use locally built packages.
- mv "${DOWNLOAD_DIR}"/../*vpp*."${PKG_SUFFIX}" "${DOWNLOAD_DIR}"/ || {
+ mv "${DOWNLOAD_DIR}"/../*vpp*."${pkgs}" "${DOWNLOAD_DIR}"/ || {
die "Move command failed."
}
;;
diff --git a/resources/libraries/bash/function/hugo.sh b/resources/libraries/bash/function/hugo.sh
new file mode 100644
index 0000000000..052e8333fb
--- /dev/null
+++ b/resources/libraries/bash/function/hugo.sh
@@ -0,0 +1,113 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+set -exuo pipefail
+
+
+function go_install () {
+
+ # Install Go.
+
+ OS_ARCH=$(uname -m) || die "Failed to get arch."
+ case "${OS_ARCH}" in
+ x86_64) architecture="amd64" ;;
+ aarch64) architecture="arm64" ;;
+ esac
+
+ go_version="go1.20.2.linux-${architecture}.tar.gz"
+ go_url="https://go.dev/dl"
+ wget "${go_url}/${go_version}"
+ rm -rf "/usr/local/go"
+ tar -C "/usr/local" -xzf "go1.20.2.linux-${architecture}.tar.gz"
+ rm "go1.20.2.linux-${architecture}.tar.gz"
+ export PATH=$PATH:/usr/local/go/bin
+}
+
+
+function hugo_build_site () {
+
+ # Build site via Hugo.
+ #
+ # Variable read:
+ # - ${CSIT_DIR} - CSIT main directory.
+ # Functions called:
+ # - die - Print to stderr and exit.
+
+ if ! installed hugo; then
+ die "Please install Hugo!"
+ fi
+
+ pushd "${CSIT_DIR}"/docs || die "Pushd failed!"
+ hugo || die "Failed to run Hugo build!"
+ popd || die "Popd failed!"
+}
+
+
+function hugo_init_modules () {
+
+ # Initialize Hugo modules.
+ #
+ # Variable read:
+ # - ${CSIT_DIR} - CSIT main directory.
+ # Functions called:
+ # - die - Print to stderr and exit.
+
+ if ! installed hugo; then
+ die "Please install Hugo!"
+ fi
+
+ hugo_book_url="github.com/alex-shpak/hugo-book"
+ hugo_book_version="v0.0.0-20230424134111-d86d5e70c7c0"
+ hugo_book_link="${hugo_book_url}@${hugo_book_version}"
+ pushd "${CSIT_DIR}"/docs || die "Pushd failed!"
+ export PATH=$PATH:/usr/local/go/bin
+ hugo mod get "${hugo_book_link}" || die "Failed to run Hugo mod!"
+ popd || die "Popd failed!"
+}
+
+
+function hugo_install () {
+
+ # Install Hugo Extended.
+
+ OS_ARCH=$(uname -m) || die "Failed to get arch."
+ case "${OS_ARCH}" in
+ x86_64) architecture="amd64" ;;
+ aarch64) architecture="arm64" ;;
+ esac
+
+ hugo_version="v0.111.3/hugo_extended_0.111.3_linux-${architecture}.deb"
+ hugo_url="https://github.com/gohugoio/hugo/releases/download"
+ hugo_link="${hugo_url}/${hugo_version}"
+ wget -O "hugo.deb" "${hugo_link}" || die "Failed to install Hugo!"
+ dpkg -i "hugo.deb" || die "Failed to install Hugo!"
+ rm "hugo.deb" || die "Failed to install Hugo!"
+}
+
+
+function installed () {
+
+ # Check if the given utility is installed. Fail if not installed.
+ #
+ # Arguments:
+ # - ${1} - Utility to check.
+ # Returns (implicitly):
+ # - 0 - If command is installed.
+ # - 1 - If command is not installed.
+
+ set -exuo pipefail
+
+ command -v "${1}"
+}
diff --git a/resources/libraries/bash/function/nginx.sh b/resources/libraries/bash/function/nginx.sh
new file mode 100755
index 0000000000..a2cf8e6514
--- /dev/null
+++ b/resources/libraries/bash/function/nginx.sh
@@ -0,0 +1,136 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+set -exuo pipefail
+
+
+function gather_nginx () {
+
+ # Ensure stable NGINX archive is downloaded.
+ #
+ # Variables read:
+ # - DOWNLOAD_DIR - Path to directory robot takes the build to test from.
+ # - NGINX_VER - Version number of Nginx.
+ set -exuo pipefail
+ pushd "${DOWNLOAD_DIR}" || die "Pushd failed."
+ nginx_repo="http://nginx.org/download/"
+ # Use downloaded packages with specific version
+ echo "Downloading NGINX package of specific version from repo ..."
+ # Downloading NGINX version based on what VPP is using. Currently
+ # it is not easy way to detect from VPP version automatically.
+ nginx_stable_ver="${NGINX_VER}".tar.gz
+
+ if [[ ! -f "${nginx_stable_ver}" ]]; then
+ wget -nv --no-check-certificate \
+ "${nginx_repo}/${nginx_stable_ver}" || {
+ die "Failed to get NGINX package from: ${nginx_repo}."
+ }
+ fi
+ popd || die "Popd failed."
+}
+
+
+function common_dirs () {
+
+ # Set global variables, create some directories (without touching content).
+ # This function assumes running in remote testbed. It might override other
+ # functions if included from common.sh.
+
+ # Arguments:
+ # - ${1} - Version number of Nginx.
+ # Variables set:
+ # - BASH_FUNCTION_DIR - Path to existing directory this file is located in.
+ # - CSIT_DIR - Path to CSIT framework.
+ # - DOWNLOAD_DIR - Path to directory robot takes the build to test from.
+ # - NGINX_DIR - Path to NGINX framework.
+ # - NGINX_VER - Version number of Nginx.
+ # Functions called:
+ # - die - Print to stderr and exit.
+
+ set -exuo pipefail
+ NGINX_VER="${1}"
+ this_file=$(readlink -e "${BASH_SOURCE[0]}") || {
+ die "Some error during locating of this source file."
+ }
+ BASH_FUNCTION_DIR=$(dirname "${this_file}") || {
+ die "Some error during dirname call."
+ }
+ CSIT_DIR=$(readlink -e "/tmp/openvpp-testing") || {
+ die "Readlink failed."
+ }
+ DOWNLOAD_DIR=$(readlink -f "${CSIT_DIR}/download_dir") || {
+ die "Readlink failed."
+ }
+ mkdir -p "${CSIT_DIR}/${NGINX_VER}" || die "Mkdir failed."
+ NGINX_DIR=$(readlink -e "${CSIT_DIR}/${NGINX_VER}") || {
+ die "Readlink failed."
+ }
+}
+
+
+
+function nginx_compile () {
+
+ # Compile NGINX archive.
+ #
+ # Variables read:
+ # - NGINX_DIR - Path to NGINX framework.
+ # - CSIT_DIR - Path to CSIT framework.
+ # - NGINX_INS_PATH - Path to NGINX install path.
+ # Functions called:
+ # - die - Print to stderr and exit.
+
+ set -exuo pipefail
+ NGINX_INS_PATH="${DOWNLOAD_DIR}/${NGINX_VER}"
+ pushd "${NGINX_DIR}" || die "Pushd failed."
+
+ # Set installation prefix.
+ param="--prefix=${NGINX_INS_PATH} "
+ # Set nginx binary pathname.
+ param+="--sbin-path=${NGINX_INS_PATH}/sbin/nginx "
+ # Set nginx.conf pathname.
+ param+="--conf-path=${NGINX_INS_PATH}/conf/nginx.conf "
+ # Enable ngx_http_stub_status_module.
+ param+="--with-http_stub_status_module "
+ # Force PCRE library usage.
+ param+="--with-pcre "
+ # Enable ngx_http_realip_module.
+ param+="--with-http_realip_module "
+ params=(${param})
+ ./configure "${params[@]}" || die "Failed to configure NGINX!"
+ make -j 16;make install || die "Failed to compile NGINX!"
+}
+
+
+function nginx_extract () {
+
+ # Extract NGINX framework.
+ #
+ # Variables read:
+ # - NGINX_DIR - Path to NGINX framework.
+ # - CSIT_DIR - Path to CSIT framework.
+ # - DOWNLOAD_DIR - Path to directory robot takes the build to test from.
+ # - NGINX_VER - Version number of Nginx.
+ # Functions called:
+ # - die - Print to stderr and exit.
+
+ set -exuo pipefail
+
+ pushd "${CSIT_DIR}" || die "Pushd failed."
+ tar -xvf ${DOWNLOAD_DIR}/${NGINX_VER}.tar.gz --strip=1 \
+ --directory "${NGINX_DIR}" || {
+ die "Failed to extract NGINX!"
+ }
+}
diff --git a/resources/libraries/bash/function/per_patch.sh b/resources/libraries/bash/function/per_patch.sh
index 43a3f971bf..44bd57da80 100644
--- a/resources/libraries/bash/function/per_patch.sh
+++ b/resources/libraries/bash/function/per_patch.sh
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 PANTHEON.tech s.r.o.
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# Copyright (c) 2023 PANTHEON.tech s.r.o.
# 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:
@@ -18,59 +18,14 @@ set -exuo pipefail
# Generally, the functions assume "common.sh" library has been sourced already.
# Keep functions ordered alphabetically, please.
-function archive_test_results () {
- # Arguments:
- # - ${1}: Directory to archive to. Required. Parent has to exist.
- # Variable set:
- # - TARGET - Target directory.
- # Variables read:
- # - ARCHIVE_DIR - Path to where robot result files are created in.
- # - VPP_DIR - Path to existing directory, root for to relative paths.
- # Directories updated:
- # - ${1} - Created, and robot and parsing files are moved/created there.
- # Functions called:
- # - die - Print to stderr and exit, defined in common.sh
-
- set -exuo pipefail
-
- cd "${VPP_DIR}" || die "Change directory command failed."
- TARGET="$(readlink -f "$1")"
- mkdir -p "${TARGET}" || die "Directory creation failed."
- for filename in "output.xml" "log.html" "report.html"; do
- mv "${ARCHIVE_DIR}/${filename}" "${TARGET}/${filename}" || {
- die "Attempt to move '${filename}' failed."
- }
- done
-}
-
-
-function archive_parse_test_results () {
-
- # Arguments:
- # - ${1}: Directory to archive to. Required. Parent has to exist.
- # Variables read:
- # - TARGET - Target directory.
- # Functions called:
- # - die - Print to stderr and exit, defined in common.sh
- # - archive_test_results - Archiving results.
- # - parse_bmrr_results - See definition in this file.
-
- set -exuo pipefail
-
- archive_test_results "$1" || die
- parse_bmrr_results "${TARGET}" || {
- die "The function should have died on error."
- }
-}
-
-
-function build_vpp_ubuntu_amd64 () {
+function build_vpp_ubuntu () {
# This function is using make pkg-verify to build VPP with all dependencies
# that is ARCH/OS aware. VPP repo is SSOT for building mechanics and CSIT
# is consuming artifacts. This way if VPP will introduce change in building
# mechanics they will not be blocked by CSIT repo.
+ #
# Arguments:
# - ${1} - String identifier for echo, can be unset.
# Variables read:
@@ -96,7 +51,7 @@ function build_vpp_ubuntu_amd64 () {
"using build default ($(grep -c ^processor /proc/cpuinfo))."
fi
- make UNATTENDED=y pkg-verify || die "VPP build using make pkg-verify failed."
+ make UNATTENDED=y pkg-verify || die "VPP build with make pkg-verify failed."
echo "* VPP ${1-} BUILD SUCCESSFULLY COMPLETED" || {
die "Argument not found."
}
@@ -114,7 +69,6 @@ function compare_test_results () {
# of parent build.
# Functions called:
# - die - Print to stderr and exit, defined in common.sh
- # - parse_bmrr_results - See definition in this file.
# Exit code:
# - 0 - If the comparison utility sees no regression (nor data error).
# - 1 - If the comparison utility sees a regression (or data error).
@@ -135,50 +89,109 @@ function initialize_csit_dirs () {
# Variables read:
# - VPP_DIR - Path to WORKSPACE, parent of created directories.
# Directories created:
- # - csit_current - Holding test results of the patch under test (PUT).
- # - csit_parent - Holding test results of parent of PUT.
+ # - csit_{part} - See the caller what it is used for.
# Functions called:
# - die - Print to stderr and exit, defined in common.sh
set -exuo pipefail
cd "${VPP_DIR}" || die "Change directory operation failed."
- rm -rf "csit_current" "csit_parent" || {
- die "Directory deletion failed."
- }
- mkdir -p "csit_current" "csit_parent" || {
- die "Directory creation failed."
- }
+ while true; do
+ if [[ ${#} < 1 ]]; then
+ # All directories created.
+ break
+ fi
+ name_part="${1}" || die
+ shift || die
+ dir_name="csit_${name_part}" || die
+ rm -rf "${dir_name}" || die "Directory deletion failed."
+ mkdir -p "${dir_name}" || die "Directory creation failed."
+ done
}
-function parse_bmrr_results () {
+function main_bisect_loop () {
- # Currently "parsing" is just two greps.
- # TODO: Re-use PAL parsing code, make parsing more general and centralized.
+ # Perform the iterative part of bisect entry script.
+ #
+ # The logic is too complex to remain in the entry script.
#
+ # At the start, the loop assumes git bisect old/new has just been executed,
+ # and verified more iterations are needed.
+ # The iteration cleans the build directory and builds the new mid commit.
+ # Then, testbed is reserved, tests run, and testbed unreserved.
+ # Results are moved from default to archive location
+ # (indexed by iteration number) and analyzed.
+ # The new adjective ("old" or "new") is selected,
+ # and git bisect with the adjective is executed.
+ # The symlinks csit_early and csit_late are updated to tightest bounds.
+ # The git.log file is examined and if the bisect is finished, loop ends.
+
+ iteration=0
+ while true
+ do
+ let iteration+=1
+ git clean -dffx "build"/ "build-root"/ || die
+ build_vpp_ubuntu "MIDDLE" || die
+ select_build "build-root" || die
+ check_download_dir || die
+ reserve_and_cleanup_testbed || die
+ run_robot || die
+ move_test_results "csit_middle/${iteration}" || die
+ untrap_and_unreserve_testbed || die
+ rm -vf "csit_mid" || die
+ ln -s -T "csit_middle/${iteration}" "csit_mid" || die
+ set +e
+ python3 "${TOOLS_DIR}/integrated/compare_bisect.py"
+ bisect_rc="${?}"
+ set -e
+ if [[ "${bisect_rc}" == "3" ]]; then
+ adjective="new"
+ rm -v "csit_late" || die
+ ln -s -T "csit_middle/${iteration}" "csit_late" || die
+ elif [[ "${bisect_rc}" == "0" ]]; then
+ adjective="old"
+ rm -v "csit_early" || die
+ ln -s -T "csit_middle/${iteration}" "csit_early" || die
+ else
+ die "Unexpected return code: ${bisect_rc}"
+ fi
+ git bisect "${adjective}" | tee "git.log" || die
+ git describe || die
+ git status || die
+ if head -n 1 "git.log" | cut -b -11 | fgrep -q "Bisecting:"; then
+ echo "Still bisecting..."
+ else
+ echo "Bisecting done."
+ break
+ fi
+ done
+}
+
+
+function move_test_results () {
+
# Arguments:
- # - ${1} - Path to (existing) directory holding robot output.xml result.
- # Files read:
- # - output.xml - From argument location.
- # Files updated:
- # - results.txt - (Re)created, in argument location.
+ # - ${1}: Directory to archive to. Required. Parent has to exist.
+ # Variable set:
+ # - TARGET - Target archival directory, equivalent to the argument.
+ # Variables read:
+ # - ARCHIVE_DIR - Path to where robot result files are created in.
+ # - VPP_DIR - Path to existing directory, root for to relative paths.
+ # Directories updated:
+ # - ${1} - Created, and robot and parsing files are moved/created there.
# Functions called:
# - die - Print to stderr and exit, defined in common.sh
set -exuo pipefail
- rel_dir="$(readlink -e "${1}")" || die "Readlink failed."
- in_file="${rel_dir}/output.xml"
- out_file="${rel_dir}/results.txt"
- # TODO: Do we need to check echo exit code explicitly?
- echo "Parsing ${in_file} putting results into ${out_file}"
- echo "TODO: Re-use parts of PAL when they support subsample test parsing."
- pattern='Maximum Receive Rate trial results in packets'
- pattern+=' per second: .*\]</status>'
- grep -o "${pattern}" "${in_file}" | grep -o '\[.*\]' > "${out_file}" || {
- die "Some parsing grep command has failed."
- }
+ cd "${VPP_DIR}" || die "Change directory command failed."
+ TARGET="$(readlink -f "$1")"
+ mkdir -p "${TARGET}" || die "Directory creation failed."
+ file_list=("output.xml" "log.html" "report.html" "tests")
+ for filename in "${file_list[@]}"; do
+ mv "${ARCHIVE_DIR}/${filename}" "${TARGET}/${filename}" || die
+ done
}
@@ -207,56 +220,37 @@ function select_build () {
}
-function set_aside_commit_build_artifacts () {
+function set_aside_build_artifacts () {
- # Function is copying VPP built artifacts from actual checkout commit for
- # further use and clean git.
+ # Function used to save VPP .deb artifacts from currently finished build.
+ #
+ # After the artifacts are copied to the target directory,
+ # the main git tree is cleaned up to not interfere with next build.
+ #
+ # Arguments:
+ # - ${1} - String to derive the target directory name from. Required.
# Variables read:
# - VPP_DIR - Path to existing directory, parent to accessed directories.
# Directories read:
# - build-root - Existing directory with built VPP artifacts (also DPDK).
# Directories updated:
# - ${VPP_DIR} - A local git repository, parent commit gets checked out.
- # - build_current - Old contents removed, content of build-root copied here.
+ # - build_${1} - Old contents removed, content of build-root copied here.
# Functions called:
# - die - Print to stderr and exit, defined in common.sh
set -exuo pipefail
cd "${VPP_DIR}" || die "Change directory operation failed."
- rm -rf "build_current" || die "Remove operation failed."
- mkdir -p "build_current" || die "Directory creation failed."
- mv "build-root"/*".deb" "build_current"/ || die "Move operation failed."
+ dir_name="build_${1}" || die
+ rm -rf "${dir_name}" || die "Remove operation failed."
+ mkdir -p "${dir_name}" || die "Directory creation failed."
+ mv "build-root"/*".deb" "${dir_name}"/ || die "Move operation failed."
# The previous build could have left some incompatible leftovers,
# e.g. DPDK artifacts of different version (in build/external).
# Also, there usually is a copy of dpdk artifact in build-root.
git clean -dffx "build"/ "build-root"/ || die "Git clean operation failed."
- # Finally, check out the parent commit.
- git checkout HEAD~ || die "Git checkout operation failed."
- # Display any other leftovers.
- git status || die "Git status operation failed."
-}
-
-
-function set_aside_parent_build_artifacts () {
-
- # Function is copying VPP built artifacts from parent checkout commit for
- # further use. Checkout to parent is not part of this function.
- # Variables read:
- # - VPP_DIR - Path to existing directory, parent of accessed directories.
- # Directories read:
- # - build-root - Existing directory with built VPP artifacts (also DPDK).
- # Directories updated:
- # - build_parent - Old directory removed, build-root debs moved here.
- # Functions called:
- # - die - Print to stderr and exit, defined in common.sh
-
- set -exuo pipefail
-
- cd "${VPP_DIR}" || die "Change directory operation failed."
- rm -rf "build_parent" || die "Remove failed."
- mkdir -p "build_parent" || die "Directory creation operation failed."
- mv "build-root"/*".deb" "build_parent"/ || die "Move operation failed."
+ git status || die
}
diff --git a/resources/libraries/bash/function/terraform.sh b/resources/libraries/bash/function/terraform.sh
new file mode 100644
index 0000000000..2a0e0ed2be
--- /dev/null
+++ b/resources/libraries/bash/function/terraform.sh
@@ -0,0 +1,183 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+set -exuo pipefail
+
+
+function terraform_apply () {
+
+ # Run terraform apply command to prepare topology.
+ #
+ # Variable read:
+ # - ${CSIT_DIR} - CSIT main directory, where terraform modules are located.
+ # - ${TERRAFORM_MODULE_DIR} - Terraform module directory.
+
+ set -exuo pipefail
+
+ if ! installed terraform; then
+ die "Please install terraform!"
+ fi
+
+ pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
+ pushd "${TERRAFORM_MODULE_DIR}" || die "Pushd failed!"
+ export TF_LOG=INFO
+ terraform apply -no-color -auto-approve || die "Terraform apply failed!"
+ popd || die "Popd failed!"
+ popd || die "Popd failed!"
+}
+
+
+function terraform_destroy () {
+
+ # Run terraform destroy command to prepare module.
+ #
+ # Variable read:
+ # - ${CSIT_DIR} - CSIT main directory, where terraform modules are located.
+ # - ${TERRAFORM_MODULE_DIR} - Terraform module directory.
+
+ set -exuo pipefail
+
+ if ! installed terraform; then
+ die "Please install terraform!"
+ fi
+
+ pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
+ pushd "${TERRAFORM_MODULE_DIR}" || die "Pushd failed!"
+ export TF_LOG=INFO
+ terraform destroy -auto-approve -no-color || die "Terraform destroy failed!"
+ popd || die "Popd failed!"
+ popd || die "Popd failed!"
+}
+
+
+function terraform_init () {
+
+ # Run terraform init command to prepare module.
+ #
+ # Variable read:
+ # - ${CSIT_DIR} - CSIT main directory, where terraform modules are located.
+ # - ${TERRAFORM_MODULE_DIR} - Terraform module directory.
+
+ set -exuo pipefail
+
+ if ! installed terraform; then
+ die "Please install terraform!"
+ fi
+
+ pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
+ pushd "${TERRAFORM_MODULE_DIR}" || die "Pushd failed!"
+
+ #plugin_url="https://github.com/radekg/terraform-provisioner-ansible/"
+ #plugin_url+="releases/download/v2.5.0/"
+ #plugin_url+="terraform-provisioner-ansible-linux-amd64_v2.5.0"
+ #plugin_dir="${HOME}/.terraform.d/plugins/"
+ #plugin_path+="${plugin_dir}terraform-provisioner-ansible_v2.5.0"
+
+ #mkdir -p "${plugin_dir}" || die "Failed to create dir!"
+ #wget -O "${plugin_path}" "${plugin_url}" || die "Failed to download plugin!"
+ #chmod +x "${plugin_path}" || die "Failed to add execute rights!"
+
+ rm -f terraform.tfstate || die "Failed to clear terraform state!"
+ export TF_LOG=INFO
+ terraform init || die "Failed to run terraform init!"
+ popd || die "Popd failed!"
+ popd || die "Popd failed!"
+}
+
+
+function terraform_install () {
+
+ # Install terraform.
+
+ OS_ARCH=$(uname -m) || die "Failed to get arch."
+ case "${OS_ARCH}" in
+ x86_64) architecture="amd64" ;;
+ aarch64) architecture="arm64" ;;
+ esac
+
+ terraform_version="1.4.2/terraform_1.4.2_linux_${architecture}.zip"
+ terraform_url="https://releases.hashicorp.com/terraform"
+ terraform_link="${terraform_url}/${terraform_version}"
+ wget "${terraform_link}" || die "Failed to install Terraform!"
+ unzip "terraform_1.4.2_linux_${architecture}.zip" || {
+ die "Failed to install Terraform!"
+ }
+ mv "terraform" "/usr/local/bin" || die "Failed to install Terraform!"
+ rm "terraform_1.4.2_linux_${architecture}.zip" || {
+ die "Failed to install Terraform!"
+ }
+}
+
+
+function terraform_output () {
+
+ # Run terraform output command to prepare module.
+ #
+ # Variable read:
+ # - ${CSIT_DIR} - CSIT main directory, where terraform modules are located.
+ # - ${TERRAFORM_MODULE_DIR} - Terraform module directory.
+ # - ${TERRAFORM_OUTPUT_VAR} - Terraform variable to export.
+
+ set -exuo pipefail
+
+ if ! installed terraform; then
+ die "Please install terraform!"
+ fi
+
+ pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
+ pushd "${TERRAFORM_MODULE_DIR}" || die "Pushd failed!"
+ TERRAFORM_OUTPUT_VAL=$(terraform output --raw "${TERRAFORM_OUTPUT_VAR}")
+ popd || die "Popd failed!"
+ popd || die "Popd failed!"
+}
+
+
+function terraform_validate () {
+
+ # Run terraform validate command to prepare module.
+ #
+ # Variable read:
+ # - ${CSIT_DIR} - CSIT main directory, where terraform modules are located.
+ # - ${TERRAFORM_MODULE_DIR} - Terraform module directory.
+
+ set -exuo pipefail
+
+ if ! installed terraform; then
+ die "Please install terraform!"
+ fi
+
+ pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
+ pushd "${TERRAFORM_MODULE_DIR}" || die "Pushd failed!"
+ export TF_LOG=INFO
+ terraform validate || die "Terraform validate failed!"
+ popd || die "Popd failed!"
+ popd || die "Popd failed!"
+}
+
+
+function installed () {
+
+ # Check if the given utility is installed. Fail if not installed.
+ #
+ # Arguments:
+ # - ${1} - Utility to check.
+ # Returns (implicitly):
+ # - 0 - If command is installed.
+ # - 1 - If command is not installed.
+
+ set -exuo pipefail
+
+ command -v "${1}"
+}
diff --git a/resources/libraries/bash/k8s_setup.sh b/resources/libraries/bash/k8s_setup.sh
deleted file mode 100755
index 6ebfeecadd..0000000000
--- a/resources/libraries/bash/k8s_setup.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2018 Cisco and/or its affiliates.
-# 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.
-
-set -xo pipefail
-
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-# Include
-source ${SCRIPT_DIR}/config/defaults
-source ${SCRIPT_DIR}/shell/k8s_utils.sh
-
-trap "k8s_utils.destroy" ERR
-
-case "$1" in
- prepare)
- # Revert any changes made to this host by 'kubeadm init'
- k8s_utils.destroy
- # Sets up the Kubernetes master
- k8s_utils.prepare
- ;;
- deploy_calico)
- # Revert any changes made to this host by 'kubeadm init'
- k8s_utils.destroy
- # Load kernel modules uio/uio_pci_generic
- sudo modprobe uio
- sudo modprobe uio_pci_generic
- sudo modprobe vfio_pci
- # Sets up the Kubernetes master
- k8s_utils.prepare "--pod-network-cidr=192.168.0.0/16"
- # Apply resources
- k8s_utils.calico_deploy ${cfg[K8S_CALICO]}
- # Dump Kubernetes objects ...
- k8s_utils.dump_all
- ;;
- affinity_non_vpp)
- # Set affinity for all non VPP docker containers to CPU 0
- k8s_utils.affinity_non_vpp
- ;;
- destroy)
- # Revert any changes made to this host by 'kubeadm init'
- k8s_utils.destroy
- ;;
- *)
- echo "usage: $0 function"
- echo "function:"
- echo " prepare"
- echo " deploy_calico"
- echo " affinity_non_vpp"
- echo " destroy"
- exit 1
-esac
-shift
-
-echo Kubernetes setup finished
diff --git a/resources/libraries/bash/shell/k8s_utils.sh b/resources/libraries/bash/shell/k8s_utils.sh
deleted file mode 100644
index ac5ecfa287..0000000000
--- a/resources/libraries/bash/shell/k8s_utils.sh
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2018 Cisco and/or its affiliates.
-# 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.
-
-function k8s_utils.destroy {
- # Destroy existing Kubernetes deployment
- kubectl drain $HOSTNAME --delete-local-data --force --ignore-daemonsets
- kubectl delete node $HOSTNAME
-
- # Revert any changes made to this host by 'kubeadm init' or 'kubeadm join'
- sudo kubeadm reset --force && sudo rm -rf $HOME/.kube || \
- { echo "Failed to reset kubeadm"; exit 1; }
-}
-
-function k8s_utils.prepare {
- # Sets up the Kubernetes master
-
- # Disable swap
- sudo swapoff --all
-
- # Set up the Kubernetes master
- sudo -E kubeadm init --token-ttl 0 ${1} || \
- { echo "Failed to init kubeadm"; exit 1; }
-
- # Make cgroup non-exclusive for CPU and MEM
- sudo cgset -r cpuset.cpu_exclusive=0 /kubepods
- sudo cgset -r cpuset.mem_exclusive=0 /kubepods
-
- rm -rf $HOME/.kube
- mkdir -p $HOME/.kube
- sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
- sudo chown $(id -u):$(id -g) $HOME/.kube/config
-}
-
-function k8s_utils.taint {
- # Updates the taints
- kubectl taint nodes --all node-role.kubernetes.io/master- || \
- { echo "Failed to taint nodes"; exit 1; }
-}
-
-function k8s_utils.calico_deploy {
- # Calico yaml URL or file
- k8s_calico=$1
-
- # Apply resources
- kubectl apply -f ${k8s_calico} || \
- { echo "Failed to apply ${k8s_calico}"; exit 1; }
-
- # Update the taints
- k8s_utils.taint
-}
-
-function k8s_utils.contiv_vpp_deploy {
- # Contiv yaml URL or file
- k8s_contiv=$1
- k8s_contiv_patch="kubecon.contiv-vpp-yaml-patch.diff"
-
- # Pull the most recent Docker images
- bash <(curl -s https://raw.githubusercontent.com/contiv/vpp/master/k8s/pull-images.sh)
-
- # Apply resources
- wget ${k8s_contiv}
- patch contiv-vpp.yaml -i ${k8s_contiv_patch} -o - | kubectl apply -f - || \
- { echo "Failed to apply Contiv resources"; exit 1; }
- rm contiv-vpp.yaml
-
- # Update the taints
- k8s_utils.taint
-}
-
-function k8s_utils.cri_shim_install {
- # Install the CRI Shim on host
- sudo su root -c 'bash <(curl -s https://raw.githubusercontent.com/contiv/vpp/master/k8s/cri-install.sh)'
-}
-
-function k8s_utils.cri_shim_uninstall {
- # Uninstall the CRI Shim on host
- sudo su root -c 'bash <(curl -s https://raw.githubusercontent.com/contiv/vpp/master/k8s/cri-install.sh) --uninstall'
-}
-
-function k8s_utils.kube_proxy_install {
- # Installing custom version of Kube-Proxy to enable Kubernetes services
- bash <(curl -s https://raw.githubusercontent.com/contiv/vpp/master/k8s/proxy-install.sh)
-}
-
-function k8s_utils.apply {
- # Resource yaml URL or file
- k8s_resource=$1
-
- # Apply resources
- kubectl apply -f ${k8s_resource} || \
- { echo "Failed to apply ${k8s_resource}"; exit 1; }
-}
-
-function k8s_utils.resource_delete {
- # Resource yaml URL or file
- k8s_resource=$1
-
- # Delete resources
- kubectl delete -f ${k8s_resource} || \
- { echo "Failed to delete ${k8s_resource}"; exit 1; }
-}
-
-function k8s_utils.affinity_non_vpp {
- # Set affinity for all non VPP docker containers to CPU 0
- for i in `sudo docker ps --format "{{.ID}} {{.Names}}" | grep -v vpp | cut -d' ' -f1`; do
- sudo docker update --cpuset-cpus 0 ${i}
- done
-}
-
-function k8s_utils.dump_all {
- # Dumps the kubernetes objects
- kubectl get all --all-namespaces
- kubectl describe nodes
-}
diff --git a/resources/libraries/python/Classify.py b/resources/libraries/python/Classify.py
index 13472617f2..dd3c78f449 100644
--- a/resources/libraries/python/Classify.py
+++ b/resources/libraries/python/Classify.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -258,15 +258,15 @@ class Classify:
:param advance: For add, advance value for session. (Default value = 0)
:param action: 0: No action (by default) metadata is not used.
1: Classified IP packets will be looked up from the specified ipv4
- fib table (configured by metadata as VRF id).
- Only valid for L3 input ACL node
+ fib table (configured by metadata as VRF id).
+ Only valid for L3 input ACL node
2: Classified IP packets will be looked up from the specified ipv6
- fib table (configured by metadata as VRF id).
- Only valid for L3 input ACL node
+ fib table (configured by metadata as VRF id).
+ Only valid for L3 input ACL node
3: Classified packet will be steered to source routing policy of
- given index (in metadata).
- This is only valid for IPv6 packets redirected to a source
- routing node.
+ given index (in metadata).
+ This is only valid for IPv6 packets redirected to a source
+ routing node.
:param metadata: Valid only if action != 0. VRF id if action is 1 or 2.
SR policy index if action is 3. (Default value = 0)
:type node: dict
@@ -453,15 +453,15 @@ class Classify:
:param opaque_index: opaque_index of new session. (Default value = ~0)
:param action: 0: No action (by default) metadata is not used.
1: Classified IP packets will be looked up from the specified ipv4
- fib table (configured by metadata as VRF id).
- Only valid for L3 input ACL node
+ fib table (configured by metadata as VRF id).
+ Only valid for L3 input ACL node
2: Classified IP packets will be looked up from the specified ipv6
- fib table (configured by metadata as VRF id).
- Only valid for L3 input ACL node
+ fib table (configured by metadata as VRF id).
+ Only valid for L3 input ACL node
3: Classified packet will be steered to source routing policy of
- given index (in metadata).
- This is only valid for IPv6 packets redirected to a source
- routing node.
+ given index (in metadata).
+ This is only valid for IPv6 packets redirected to a source
+ routing node.
:param metadata: Valid only if action != 0. VRF id if action is 1 or 2.
SR policy index if action is 3. (Default value = 0)
:type node: dict
diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py
index 1a548f45d5..70452e6ff4 100644
--- a/resources/libraries/python/Constants.py
+++ b/resources/libraries/python/Constants.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -39,7 +39,7 @@ def get_str_from_env(env_var_names, default_value):
:returns: The value read, or default value.
:rtype: str
"""
- prefixes = (u"FDIO_CSIT_", u"CSIT_", u"")
+ prefixes = ("FDIO_CSIT_", "CSIT_", "")
if not isinstance(env_var_names, (list, tuple)):
env_var_names = [env_var_names]
for name in env_var_names:
@@ -62,7 +62,7 @@ def get_int_from_env(env_var_names, default_value):
:returns: The value read, or default value.
:rtype: int
"""
- env_str = get_str_from_env(env_var_names, u"")
+ env_str = get_str_from_env(env_var_names, "")
try:
return int(env_str)
except ValueError:
@@ -81,7 +81,7 @@ def get_float_from_env(env_var_names, default_value):
:returns: The value read, or default value.
:rtype: float
"""
- env_str = get_str_from_env(env_var_names, u"")
+ env_str = get_str_from_env(env_var_names, "")
try:
return float(env_str)
except ValueError:
@@ -98,8 +98,8 @@ def get_pessimistic_bool_from_env(env_var_names):
:returns: The value read, or False.
:rtype: bool
"""
- env_str = get_str_from_env(env_var_names, u"").lower()
- return bool(env_str in (u"true", u"yes", u"y", u"1"))
+ env_str = get_str_from_env(env_var_names, "").lower()
+ return bool(env_str in ("true", "yes", "y", "1"))
def get_optimistic_bool_from_env(env_var_names):
@@ -112,50 +112,54 @@ def get_optimistic_bool_from_env(env_var_names):
:returns: The value read, or True.
:rtype: bool
"""
- env_str = get_str_from_env(env_var_names, u"").lower()
- return bool(env_str not in (u"false", u"no", u"n", u"0"))
+ env_str = get_str_from_env(env_var_names, "").lower()
+ return bool(env_str not in ("false", "no", "n", "0"))
class Constants:
- """Constants used in CSIT.
+ """Constants used in CSIT."""
- TODO: Yaml files are easier for humans to edit.
- Figure out how to set the attributes by parsing a file
- that works regardless of current working directory.
- """
+ # Version for CSIT data model. See docs/model/.
+ MODEL_VERSION = "1.5.1"
+
+ # Global off-switch in case JSON export is large or slow.
+ EXPORT_JSON = get_optimistic_bool_from_env("EXPORT_JSON")
# OpenVPP testing directory location at topology nodes
- REMOTE_FW_DIR = u"/tmp/openvpp-testing"
+ REMOTE_FW_DIR = "/tmp/openvpp-testing"
# shell scripts location
- RESOURCES_LIB_SH = u"resources/libraries/bash"
+ RESOURCES_LIB_SH = "resources/libraries/bash"
- # Python API provider location
- RESOURCES_PAPI_PROVIDER = u"resources/tools/papi/vpp_papi_provider.py"
+ # python scripts location
+ RESOURCES_LIB_PY = "resources/libraries/python"
- # vat templates location
- RESOURCES_TPL_VAT = u"resources/templates/vat"
+ # shell scripts location
+ RESOURCES_TOOLS = "resources/tools"
- # Kubernetes templates location
- RESOURCES_TPL_K8S = u"resources/templates/kubernetes"
+ # Python API provider location
+ RESOURCES_PAPI_PROVIDER = "resources/tools/papi/vpp_papi_provider.py"
# Templates location
- RESOURCES_TPL = u"resources/templates"
+ RESOURCES_TPL = "resources/templates"
+
+ # Kubernetes templates location
+ RESOURCES_TPL_K8S = "resources/templates/kubernetes"
# Container templates location
- RESOURCES_TPL_CONTAINER = u"resources/templates/container"
+ RESOURCES_TPL_CONTAINER = "resources/templates/container"
# VPP Communications Library templates location
- RESOURCES_TPL_VCL = u"resources/templates/vcl"
+ RESOURCES_TPL_VCL = "resources/templates/vcl"
- # VPP Communications Library LD_PRELOAD library
- VCL_LDPRELOAD_LIBRARY = u"/usr/lib/x86_64-linux-gnu/libvcl_ldpreload.so"
+ # VPP Communications Library templates location
+ RESOURCES_TPL_TELEMETRY = "resources/templates/telemetry"
- # OpenVPP VAT binary name
- VAT_BIN_NAME = u"vpp_api_test"
+ # VPP Communications Library LD_PRELOAD library
+ VCL_LDPRELOAD_LIBRARY = "/usr/lib/x86_64-linux-gnu/libvcl_ldpreload.so"
# VPP service unit name
- VPP_UNIT = u"vpp"
+ VPP_UNIT = "vpp"
# Number of system CPU cores.
CPU_CNT_SYSTEM = 1
@@ -164,221 +168,371 @@ class Constants:
CPU_CNT_MAIN = 1
# QEMU binary path
- QEMU_BIN_PATH = u"/usr/bin"
+ QEMU_BIN_PATH = "/usr/bin"
# QEMU VM kernel image path
- QEMU_VM_KERNEL = u"/opt/boot/vmlinuz"
+ QEMU_VM_KERNEL = "/opt/boot/vmlinuz"
# QEMU VM kernel initrd path
- QEMU_VM_KERNEL_INITRD = u"/opt/boot/initrd.img"
+ QEMU_VM_KERNEL_INITRD = "/opt/boot/initrd.img"
# QEMU VM nested image path
- QEMU_VM_IMAGE = u"/var/lib/vm/image.iso"
+ QEMU_VM_IMAGE = "/var/lib/vm/image.iso"
# QEMU VM DPDK path
- QEMU_VM_DPDK = u"/opt/dpdk-20.02"
+ QEMU_VM_DPDK = "/opt/dpdk-23.11"
# Docker container SUT image
- DOCKER_SUT_IMAGE_UBUNTU = u"csit_sut-ubuntu1804:local"
+ DOCKER_SUT_IMAGE_UBUNTU = "csit_sut-ubuntu2204:local"
# Docker container arm SUT image
- DOCKER_SUT_IMAGE_UBUNTU_ARM = u"csit_sut-ubuntu1804:local"
+ DOCKER_SUT_IMAGE_UBUNTU_ARM = "csit_sut-ubuntu2204:local"
- # TRex install directory
- TREX_INSTALL_DIR = u"/opt/trex-core-2.86"
+ # TRex install directory.
+ TREX_INSTALL_DIR = "/opt/trex-core-3.03"
- # TODO: Find the right way how to use it in trex profiles
- # TRex pcap files directory
+ # TRex pcap files directory.
TREX_PCAP_DIR = f"{TREX_INSTALL_DIR}/scripts/avl"
# TRex limit memory.
- TREX_LIMIT_MEMORY = get_int_from_env(u"TREX_LIMIT_MEMORY", 8192)
+ TREX_LIMIT_MEMORY = get_int_from_env("TREX_LIMIT_MEMORY", 8192)
+
+ # TRex limit memory in case multiple dual interfaces configurations.
+ TREX_LIMIT_MEMORY_MULTI = get_int_from_env("TREX_LIMIT_MEMORY_MULTI", 16384)
+
+ # TRex number of cores.
+ TREX_CORE_COUNT = get_int_from_env("TREX_CORE_COUNT", 16)
+
+ # TRex number of cores in case multiple dual interface configurations.
+ TREX_CORE_COUNT_MULTI = get_int_from_env("TREX_CORE_COUNT_MULTI", 8)
+
+ # TRex set number of RX/TX descriptors.
+ # Set to 0 to use default values.
+ TREX_TX_DESCRIPTORS_COUNT = get_int_from_env(
+ "TREX_TX_DESCRIPTORS_COUNT", 0
+ )
- # TRex number of cores
- TREX_CORE_COUNT = get_int_from_env(u"TREX_CORE_COUNT", 8)
+ TREX_RX_DESCRIPTORS_COUNT = get_int_from_env(
+ "TREX_RX_DESCRIPTORS_COUNT", 0
+ )
- # Trex force start regardless ports state
- TREX_SEND_FORCE = get_pessimistic_bool_from_env(u"TREX_SEND_FORCE")
+ # Trex force start regardless ports state.
+ TREX_SEND_FORCE = get_pessimistic_bool_from_env("TREX_SEND_FORCE")
- # TRex extra commandline arguments
+ # TRex extra commandline arguments.
TREX_EXTRA_CMDLINE = get_str_from_env(
- u"TREX_EXTRA_CMDLINE", u"--mbuf-factor 32")
+ "TREX_EXTRA_CMDLINE", "--mbuf-factor 32"
+ )
+
+ # TRex port driver default vfio-pci or set to igb_uio.
+ TREX_PORT_DRIVER = get_str_from_env(
+ "TREX_PORT_DRIVER", "vfio-pci"
+ )
- # graph node variant value
- GRAPH_NODE_VARIANT = get_str_from_env(
- u"GRAPH_NODE_VARIANT", u"")
+ # Graph node variant value
+ GRAPH_NODE_VARIANT = get_str_from_env("GRAPH_NODE_VARIANT", "")
+
+ # Default memory page size in case multiple configured in system
+ DEFAULT_HUGEPAGE_SIZE = get_str_from_env("DEFAULT_HUGEPAGE_SIZE", "2M")
# Sysctl kernel.core_pattern
- KERNEL_CORE_PATTERN = u"/tmp/%p-%u-%g-%s-%t-%h-%e.core"
+ KERNEL_CORE_PATTERN = "/tmp/%p-%u-%g-%s-%t-%h-%e.core"
# Core dump directory
- CORE_DUMP_DIR = u"/tmp"
+ CORE_DUMP_DIR = "/tmp"
# Perf stat events (comma separated).
PERF_STAT_EVENTS = get_str_from_env(
- u"PERF_STAT_EVENTS",
- u"cpu-clock,context-switches,cpu-migrations,page-faults,"
- u"cycles,instructions,branches,branch-misses,L1-icache-load-misses")
+ "PERF_STAT_EVENTS",
+ "cpu-clock,context-switches,cpu-migrations,page-faults,"
+ "cycles,instructions,branches,branch-misses,L1-icache-load-misses")
# Equivalent to ~0 used in vpp code
BITWISE_NON_ZERO = 0xffffffff
# Default path to VPP API socket.
- SOCKSVR_PATH = u"/run/vpp/api.sock"
+ SOCKSVR_PATH = "/run/vpp/api.sock"
+
+ # Default path to VPP CLI socket.
+ SOCKCLI_PATH = "/run/vpp/cli.sock"
+
+ # Default path to VPP API Stats socket.
+ SOCKSTAT_PATH = "/run/vpp/stats.sock"
+
+ # This MTU value is used to force VPP to fragment 1518B packet into two.
+ MTU_FOR_FRAGMENTATION = 1043
# Number of trials to execute in MRR test.
- PERF_TRIAL_MULTIPLICITY = get_int_from_env(u"PERF_TRIAL_MULTIPLICITY", 10)
+ PERF_TRIAL_MULTIPLICITY = get_int_from_env("PERF_TRIAL_MULTIPLICITY", 10)
- # Duration of one trial in MRR test.
- PERF_TRIAL_DURATION = get_float_from_env(u"PERF_TRIAL_DURATION", 1.0)
+ # Duration [s] of one trial in MRR test.
+ PERF_TRIAL_DURATION = get_float_from_env("PERF_TRIAL_DURATION", 1.0)
# Whether to use latency streams in main search trials.
- PERF_USE_LATENCY = get_pessimistic_bool_from_env(u"PERF_USE_LATENCY")
+ PERF_USE_LATENCY = get_pessimistic_bool_from_env("PERF_USE_LATENCY")
# Duration of one latency-specific trial in NDRPDR test.
PERF_TRIAL_LATENCY_DURATION = get_float_from_env(
- u"PERF_TRIAL_LATENCY_DURATION", 5.0)
+ "PERF_TRIAL_LATENCY_DURATION", 5.0)
+
+ # For some testbeds TG takes longer than usual to start sending traffic.
+ # This constant [s] allows longer wait, without affecting
+ # the approximate duration. For example, use 0.098 for AWS.
+ PERF_TRIAL_STL_DELAY = get_float_from_env("PERF_TRIAL_STL_DELAY", 0.0)
+
+ # ASTF usually needs a different value for the delay.
+ PERF_TRIAL_ASTF_DELAY = get_float_from_env(
+ "PERF_TRIAL_ASTF_DELAY", 0.112
+ )
+
+ # Number of data frames in TPUT transaction, used both by TCP and UDP.
+ # The value should be 33 to keep historic continuity for UDP TPUT tests,
+ # but we are limited by TRex window of 48 KiB, so for 9000B tests
+ # it means we can send only 5 full data frames in a burst.
+ # https://github.com/cisco-system-traffic-generator/
+ # trex-core/blob/v2.88/src/44bsd/tcp_var.h#L896-L903
+ ASTF_N_DATA_FRAMES = get_int_from_env("ASTF_N_DATA_FRAMES", 5)
# Extended debug (incl. vpp packet trace, linux perf stat, ...).
# Full list is available as suite variable (__init__.robot) or is
# override by test.
- EXTENDED_DEBUG = get_pessimistic_bool_from_env(u"EXTENDED_DEBUG")
+ EXTENDED_DEBUG = get_pessimistic_bool_from_env("EXTENDED_DEBUG")
# UUID string of DUT1 /tmp volume created outside of the
# DUT1 docker in case of vpp-device test. ${EMPTY} value means that
# /tmp directory is inside the DUT1 docker.
- DUT1_UUID = get_str_from_env(u"DUT1_UUID", u"")
-
- # Default path to VPP API Stats socket.
- SOCKSTAT_PATH = u"/run/vpp/stats.sock"
+ DUT1_UUID = get_str_from_env("DUT1_UUID", "")
# Global "kill switch" for CRC checking during runtime.
FAIL_ON_CRC_MISMATCH = get_pessimistic_bool_from_env(
- u"FAIL_ON_CRC_MISMATCH"
+ "FAIL_ON_CRC_MISMATCH"
)
# Default IP4 prefix length (if not defined in topology file)
- DEFAULT_IP4_PREFIX_LENGTH = u"24"
+ DEFAULT_IP4_PREFIX_LENGTH = "24"
# Maximum number of interfaces in a data path
DATAPATH_INTERFACES_MAX = 100
# Mapping from NIC name to its bps limit.
NIC_NAME_TO_BPS_LIMIT = {
- u"Cisco-VIC-1227": 10000000000,
- u"Cisco-VIC-1385": 24500000000,
- u"Intel-X520-DA2": 10000000000,
- u"Intel-X553": 10000000000,
- u"Intel-X710": 10000000000,
- u"Intel-XL710": 24500000000,
- u"Intel-XXV710": 24500000000,
- u"Intel-E810CQ": 100000000000,
- u"Mellanox-CX556A": 100000000000,
- u"Amazon-Nitro-50G": 10000000000,
- u"virtual": 100000000,
+ "Intel-X520-DA2": 10000000000,
+ "Intel-X710": 10000000000,
+ "Intel-XL710": 24500000000,
+ "Intel-XXV710": 24500000000,
+ "Intel-E810XXV": 24500000000,
+ "Intel-E822CQ": 24500000000,
+ "Intel-E823C": 24500000000,
+ "Intel-E810CQ": 100000000000,
+ "Mellanox-CX556A": 100000000000,
+ "Mellanox-CX6DX": 100000000000,
+ "Mellanox-CX7VEAT": 200000000000,
+ "Amazon-Nitro-50G": 10000000000,
+ "Amazon-Nitro-100G": 10000000000,
+ "Amazon-Nitro-200G": 16000000000,
+ "virtual": 100000000,
}
# Mapping from NIC name to its pps limit.
NIC_NAME_TO_PPS_LIMIT = {
- u"Cisco-VIC-1227": 14880952,
- u"Cisco-VIC-1385": 18750000,
- u"Intel-X520-DA2": 14880952,
- u"Intel-X553": 14880952,
- u"Intel-X710": 14880952,
- u"Intel-XL710": 18750000,
- u"Intel-XXV710": 18750000,
- u"Intel-E810CQ": 58500000,
- # 2n-clx testbeds show duration stretching on high rates,
- # depending on encapsulation TRex has to generate.
- # 40 Mpps is still too much for dot1q (~8% stretching).
- # 36 Mpps is around the maximal VPP throughput (l2patch 4c8t).
- # Vxlan traffic will still show stretching at 36 Mpps (>12%),
- # but we do not care about those tests that much.
- u"Mellanox-CX556A": 36000000, # 148809523,
- u"Amazon-Nitro-50G": 1500000,
- u"virtual": 14880952,
+ "Intel-X520-DA2": 14880952,
+ "Intel-X710": 14880952,
+ "Intel-XL710": 18750000,
+ "Intel-XXV710": 18750000,
+ "Intel-E810XXV": 29000000,
+ "Intel-E822CQ": 29000000,
+ "Intel-E823C": 29000000,
+ "Intel-E810CQ": 58500000,
+ "Mellanox-CX556A": 148809523,
+ "Mellanox-CX6DX": 148809523,
+ "Mellanox-CX7VEAT": 297619046,
+ "Amazon-Nitro-50G": 1500000,
+ "Amazon-Nitro-100G": 3000000,
+ "Amazon-Nitro-200G": 6000000,
+ "virtual": 14880952,
}
# Suite file names use codes for NICs.
NIC_NAME_TO_CODE = {
- u"Cisco-VIC-1227": u"10ge2p1vic1227",
- u"Cisco-VIC-1385": u"40ge2p1vic1385",
- u"Intel-X520-DA2": u"10ge2p1x520",
- u"Intel-X553": u"10ge2p1x553",
- u"Intel-X710": u"10ge2p1x710",
- u"Intel-XL710": u"40ge2p1xl710",
- u"Intel-XXV710": u"25ge2p1xxv710",
- u"Intel-E810CQ": u"100ge2p1e810cq",
- u"Amazon-Nitro-50G": u"50ge1p1ENA",
- u"Mellanox-CX556A": u"100ge2p1cx556a",
+ "Intel-X520-DA2": "10ge2p1x520",
+ "Intel-X710": "10ge2p1x710",
+ "Intel-XL710": "40ge2p1xl710",
+ "Intel-XXV710": "25ge2p1xxv710",
+ "Intel-E810XXV": "25ge2p1e810xxv",
+ "Intel-E822CQ": "25ge2p1e822cq",
+ "Intel-E823C": "25ge2p1e823c",
+ "Intel-E810CQ": "100ge2p1e810cq",
+ "Amazon-Nitro-50G": "50ge1p1ena",
+ "Amazon-Nitro-100G": "100ge1p1ena",
+ "Amazon-Nitro-200G": "200ge1p1ena",
+ "Mellanox-CX556A": "100ge2p1cx556a",
+ "Mellanox-CX6DX": "100ge2p1cx6dx",
+ "Mellanox-CX7VEAT": "200ge2p1cx7veat",
+ "Mellanox-CX7VEAT": "200ge6p3cx7veat",
+ "virtual": "1ge1p82540em",
+ }
+ NIC_CODE_TO_NAME = {
+ "10ge2p1x520": "Intel-X520-DA2",
+ "10ge2p1x710": "Intel-X710",
+ "40ge2p1xl710": "Intel-XL710",
+ "25ge2p1xxv710": "Intel-XXV710",
+ "25ge2p1e810xxv": "Intel-E810XXV",
+ "25ge2p1e822cq": "Intel-E822CQ",
+ "25ge2p1e823c": "Intel-E823C",
+ "100ge2p1e810cq": "Intel-E810CQ",
+ "50ge1p1ena": "Amazon-Nitro-50G",
+ "100ge1p1ena": "Amazon-Nitro-100G",
+ "200ge1p1ena": "Amazon-Nitro-200G",
+ "100ge2p1cx556a": "Mellanox-CX556A",
+ "100ge2p1cx6dx": "Mellanox-CX6DX",
+ "200ge2p1cx7veat": "Mellanox-CX7VEAT",
+ "200ge6p3cx7veat": "Mellanox-CX7VEAT",
+ "1ge1p82540em": "virtual",
+ }
+
+ # Shortened lowercase NIC model name, useful for presentation.
+ NIC_CODE_TO_SHORT_NAME = {
+ "10ge2p1x520": "x520",
+ "10ge2p1x710": "x710",
+ "40ge2p1xl710": "xl710",
+ "25ge2p1xxv710": "xxv710",
+ "25ge2p1e810xxv": "e810xxv",
+ "25ge2p1e822cq": "e822cq",
+ "25ge2p1e823c": "e823c",
+ "100ge2p1e810cq": "e810cq",
+ "50ge1p1ena": "ena",
+ "100ge1p1ena": "ena100",
+ "200ge1p1ena": "ena200",
+ "100ge2p1cx556a": "cx556a",
+ "100ge2p1cx6dx": "cx6dx",
+ "200ge2p1cx7veat": "cx7veat",
+ "200ge6p3cx7veat": "cx7veat",
+ "1ge1p82540em": "82540em",
}
# Not each driver is supported by each NIC.
NIC_NAME_TO_DRIVER = {
- u"Cisco-VIC-1227": [u"vfio-pci"],
- u"Cisco-VIC-1385": [u"vfio-pci"],
- u"Intel-X520-DA2": [u"vfio-pci"],
- u"Intel-X553": [u"vfio-pci"],
- u"Intel-X710": [u"vfio-pci", u"avf"],
- u"Intel-XL710": [u"vfio-pci", u"avf"],
- u"Intel-XXV710": [u"vfio-pci", u"avf"],
- u"Intel-E810CQ": [u"vfio-pci", u"avf"],
- u"Amazon-Nitro-50G": [u"vfio-pci"],
- u"Mellanox-CX556A": [u"rdma-core"],
+ "Intel-X520-DA2": ["vfio-pci", "af_xdp"],
+ "Intel-X710": ["vfio-pci", "avf", "af_xdp"],
+ "Intel-XL710": ["vfio-pci", "avf", "af_xdp"],
+ "Intel-XXV710": ["vfio-pci", "avf", "af_xdp"],
+ "Intel-E810XXV": ["vfio-pci", "avf", "af_xdp"],
+ "Intel-E822CQ": ["vfio-pci", "avf", "af_xdp"],
+ "Intel-E823C": ["vfio-pci", "avf", "af_xdp"],
+ "Intel-E810CQ": ["vfio-pci", "avf", "af_xdp"],
+ "Amazon-Nitro-50G": ["vfio-pci"],
+ "Amazon-Nitro-100G": ["vfio-pci"],
+ "Amazon-Nitro-200G": ["vfio-pci"],
+ "Mellanox-CX556A": ["rdma-core", "mlx5_core", "af_xdp"],
+ "Mellanox-CX6DX": ["rdma-core", "mlx5_core", "af_xdp"],
+ "Mellanox-CX7VEAT": ["rdma-core", "mlx5_core", "af_xdp"],
+ "virtual": ["vfio-pci"],
}
- # Each driver needs different prugin to work.
+ # Each driver needs different plugin to work.
NIC_DRIVER_TO_PLUGINS = {
- u"vfio-pci": u"dpdk_plugin.so",
- u"avf": u"avf_plugin.so",
- u"rdma-core": u"rdma_plugin.so",
+ "vfio-pci": "dpdk_plugin.so",
+ "avf": "avf_plugin.so",
+ "rdma-core": "rdma_plugin.so",
+ "mlx5_core": "dpdk_plugin.so",
+ "af_xdp": "af_xdp_plugin.so",
}
# Tags to differentiate tests for different NIC driver.
NIC_DRIVER_TO_TAG = {
- u"vfio-pci": u"DRV_VFIO_PCI",
- u"avf": u"DRV_AVF",
- u"rdma-core": u"DRV_RDMA_CORE",
+ "vfio-pci": "DRV_VFIO_PCI",
+ "avf": "DRV_AVF",
+ "rdma-core": "DRV_RDMA_CORE",
+ "mlx5_core": "DRV_MLX5_CORE",
+ "af_xdp": "DRV_AF_XDP",
}
# Suite names have to be different, add prefix.
NIC_DRIVER_TO_SUITE_PREFIX = {
- u"vfio-pci": u"",
- u"avf": u"avf-",
- u"rdma-core": u"rdma-",
+ "vfio-pci": "",
+ "avf": "avf-",
+ "rdma-core": "rdma-",
+ "mlx5_core": "mlx5-",
+ "af_xdp": "af-xdp-",
}
# Number of virtual functions of physical nic.
NIC_DRIVER_TO_VFS = {
- u"vfio-pci": u"nic_vfs}= | 0",
- u"avf": u"nic_vfs}= | 1",
- u"rdma-core": u"nic_vfs}= | 0",
+ "vfio-pci": "nic_vfs}= | 0",
+ "avf": "nic_vfs}= | 1",
+ "rdma-core": "nic_vfs}= | 0",
+ "mlx5_core": "nic_vfs}= | 0",
+ "af_xdp": "nic_vfs}= | 0",
+ }
+
+ # Number of physical interfaces of physical nic.
+ NIC_CODE_TO_PFS = {
+ "10ge2p1x520": "nic_pfs}= | 2",
+ "10ge2p1x710": "nic_pfs}= | 2",
+ "40ge2p1xl710": "nic_pfs}= | 2",
+ "25ge2p1xxv710": "nic_pfs}= | 2",
+ "25ge2p1e810xxv": "nic_pfs}= | 2",
+ "25ge2p1e822cq": "nic_pfs}= | 2",
+ "25ge2p1e823c": "nic_pfs}= | 2",
+ "100ge2p1e810cq": "nic_pfs}= | 2",
+ "50ge1p1ena": "nic_pfs}= | 2",
+ "100ge1p1ena": "nic_pfs}= | 2",
+ "200ge1p1ena": "nic_pfs}= | 2",
+ "100ge2p1cx556a": "nic_pfs}= | 2",
+ "100ge2p1cx6dx": "nic_pfs}= | 2",
+ "200ge2p1cx7veat": "nic_pfs}= | 2",
+ "200ge6p3cx7veat": "nic_pfs}= | 6",
+ "1ge1p82540em": "nic_pfs}= | 2",
+ }
+
+ NIC_CODE_TO_CORESCALE = {
+ "10ge2p1x520": 1,
+ "10ge2p1x710": 1,
+ "40ge2p1xl710": 1,
+ "25ge2p1xxv710": 1,
+ "25ge2p1e810xxv": 1,
+ "25ge2p1e822cq": 1,
+ "25ge2p1e823c": 1,
+ "100ge2p1e810cq": 1,
+ "50ge1p1ena": 1,
+ "100ge1p1ena": 1,
+ "200ge1p1ena": 1,
+ "100ge2p1cx556a": 1,
+ "100ge2p1cx6dx": 1,
+ "200ge2p1cx7veat": 1,
+ "200ge6p3cx7veat": 3,
+ "1ge1p82540em": 1,
}
# Not each driver is supported by each NIC.
DPDK_NIC_NAME_TO_DRIVER = {
- u"Cisco-VIC-1227": [u"vfio-pci"],
- u"Cisco-VIC-1385": [u"vfio-pci"],
- u"Intel-X520-DA2": [u"vfio-pci"],
- u"Intel-X553": [u"vfio-pci"],
- u"Intel-X710": [u"vfio-pci"],
- u"Intel-XL710": [u"vfio-pci"],
- u"Intel-XXV710": [u"vfio-pci"],
- u"Intel-E810CQ": [u"vfio-pci"],
- u"Amazon-Nitro-50G": [u"vfio-pci"],
- u"Mellanox-CX556A": [u"mlx5_core"],
+ "Intel-X520-DA2": ["vfio-pci"],
+ "Intel-X710": ["vfio-pci"],
+ "Intel-XL710": ["vfio-pci"],
+ "Intel-XXV710": ["vfio-pci"],
+ "Intel-E810XXV": ["vfio-pci"],
+ "Intel-E822CQ": ["vfio-pci"],
+ "Intel-E823C": ["vfio-pci"],
+ "Intel-E810CQ": ["vfio-pci"],
+ "Amazon-Nitro-50G": ["vfio-pci"],
+ "Amazon-Nitro-100G": ["vfio-pci"],
+ "Amazon-Nitro-200G": ["vfio-pci"],
+ "Mellanox-CX556A": ["mlx5_core"],
+ "Mellanox-CX6DX": ["mlx5_core"],
+ "Mellanox-CX7VEAT": ["mlx5_core"],
+ "virtual": ["vfio-pci"],
}
# Tags to differentiate tests for different NIC driver.
DPDK_NIC_DRIVER_TO_TAG = {
- u"vfio-pci": u"DRV_VFIO_PCI",
- u"mlx5_core": u"DRV_MLX5_CORE",
+ "vfio-pci": "DRV_VFIO_PCI",
+ "mlx5_core": "DRV_MLX5_CORE",
}
# Suite names have to be different, add prefix.
DPDK_NIC_DRIVER_TO_SUITE_PREFIX = {
- u"vfio-pci": u"",
- u"mlx5_core": u"mlx5-",
+ "vfio-pci": "",
+ "mlx5_core": "mlx5-",
}
# Some identifiers constructed from suite names
@@ -394,37 +548,42 @@ class Constants:
# TODO CSIT-1481: Crypto HW should be read from topology file instead.
NIC_NAME_TO_CRYPTO_HW = {
- u"Intel-X553": u"HW_C3xxx",
- u"Intel-X710": u"HW_DH895xcc",
- u"Intel-XL710": u"HW_DH895xcc",
+ "Intel-E810CQ": "HW_4xxx",
+ "Intel-E822CQ": "HW_C4xxx",
+ "Intel-E823C": "HW_C4xxx",
+ "Intel-X710": "HW_DH895xcc",
+ "Intel-XL710": "HW_DH895xcc",
+ }
+
+ DEVICE_TYPE_TO_KEYWORD = {
+ "scapy": None
}
PERF_TYPE_TO_KEYWORD = {
- u"mrr": u"Traffic should pass with maximum rate",
- u"ndrpdr": u"Find NDR and PDR intervals using optimized search",
- u"soak": u"Find critical load using PLRsearch",
+ "mrr": "Traffic should pass with maximum rate",
+ "ndrpdr": "Find NDR and PDR intervals using optimized search",
+ "soak": "Find critical load using PLRsearch",
}
PERF_TYPE_TO_SUITE_DOC_VER = {
- u"mrr": u'''fication:* In MaxReceivedRate tests TG sends traffic\\
-| ... | at line rate and reports total received packets over trial period.\\''',
- # TODO: Figure out how to include the full "*[Ver] TG verification:*"
- # while keeping this readable and without breaking line length limit.
- u"ndrpdr": u'''ication:* TG finds and reports throughput NDR (Non Drop\\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\\
-| ... | of packets transmitted. NDR and PDR are discovered for different\\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\\''',
- u"soak": u'''fication:* TG sends traffic at dynamically computed\\
-| ... | rate as PLRsearch algorithm gathers data and improves its estimate\\
-| ... | of a rate at which a prescribed small fraction of packets\\
-| ... | would be lost. After set time, the serarch stops\\
-| ... | and the algorithm reports its current estimate.\\''',
+ "mrr": u'''fication:** In MaxReceivedRate tests TG sends traffic at \\
+| ... | line rate and reports total received packets over trial period. \\''',
+ "ndrpdr": u'''rification:** TG finds and reports throughput NDR (Non \\
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \\
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \\
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \\
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \\
+| ... | library.''',
+ "soak": u'''rification:** TG sends traffic at dynamically computed \\
+| ... | rate as PLRsearch algorithm gathers data and improves its estimate \\
+| ... | of a rate at which a prescribed small fraction of packets \\
+| ... | would be lost. After set time, the serarch stops \\
+| ... | and the algorithm reports its current estimate. \\''',
}
PERF_TYPE_TO_TEMPLATE_DOC_VER = {
- u"mrr": u'''Measure MaxReceivedRate for ${frame_size}B frames\\
-| | ... | using burst trials throughput test.\\''',
- u"ndrpdr": u"Measure NDR and PDR values using MLRsearch algorithm.\\",
- u"soak": u"Estimate critical rate using PLRsearch algorithm.\\",
+ "mrr": u'''Measure MaxReceivedRate for ${frame_size}B frames \\
+| | ... | using burst trials throughput test. \\''',
+ "ndrpdr": "Measure NDR and PDR values using MLRsearch algorithm.",
+ "soak": "Estimate critical rate using PLRsearch algorithm. \\",
}
diff --git a/resources/libraries/python/ContainerUtils.py b/resources/libraries/python/ContainerUtils.py
index 3d70684695..fc32248f6b 100644
--- a/resources/libraries/python/ContainerUtils.py
+++ b/resources/libraries/python/ContainerUtils.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -205,8 +205,8 @@ class ContainerManager:
dut_cnt = len(
Counter(
[
- self.containers[container].node[u"host"]
- for container in self.containers
+ f"{container.node['host']}{container.node['port']}"
+ for container in self.containers.values()
]
)
)
@@ -256,6 +256,11 @@ class ContainerManager:
self._configure_vpp_chain_ipsec(
mid1=mid1, mid2=mid2, sid1=sid1, sid2=sid2,
guest_dir=guest_dir, nf_instance=idx, **kwargs)
+ elif chain_topology == u"chain_dma":
+ self._configure_vpp_chain_dma(
+ mid1=mid1, mid2=mid2, sid1=sid1, sid2=sid2,
+ guest_dir=guest_dir, **kwargs
+ )
else:
raise RuntimeError(
f"Container topology {chain_topology} not implemented"
@@ -278,6 +283,25 @@ class ContainerManager:
f"{self.engine.container.name}-{kwargs[u'sid2']}"
)
+ def _configure_vpp_chain_dma(self, **kwargs):
+ """Configure VPP in chain topology with l2xc (dma).
+
+ :param kwargs: Named parameters.
+ :type kwargs: dict
+ """
+ dma_wqs = kwargs[f"dma_wqs"]
+ self.engine.create_vpp_startup_config_dma(dma_wqs)
+
+ self.engine.create_vpp_exec_config(
+ u"memif_create_chain_dma.exec",
+ mid1=kwargs[u"mid1"], mid2=kwargs[u"mid2"],
+ sid1=kwargs[u"sid1"], sid2=kwargs[u"sid2"],
+ socket1=f"{kwargs[u'guest_dir']}/memif-"
+ f"{self.engine.container.name}-{kwargs[u'sid1']}",
+ socket2=f"{kwargs[u'guest_dir']}/memif-"
+ f"{self.engine.container.name}-{kwargs[u'sid2']}"
+ )
+
def _configure_vpp_cross_horiz(self, **kwargs):
"""Configure VPP in cross horizontal topology (single memif).
@@ -581,14 +605,19 @@ class ContainerEngine:
def start_vpp(self, verify=True):
"""Start VPP inside a container."""
self.execute(
- u"setsid /usr/bin/vpp -c /etc/vpp/startup.conf "
- u">/tmp/vppd.log 2>&1 < /dev/null &")
+ u"/usr/bin/vpp -c /etc/vpp/startup.conf")
topo_instance = BuiltIn().get_library_instance(
u"resources.libraries.python.topology.Topology"
)
topo_instance.add_new_socket(
self.container.node,
+ SocketType.CLI,
+ self.container.name,
+ self.container.cli_socket,
+ )
+ topo_instance.add_new_socket(
+ self.container.node,
SocketType.PAPI,
self.container.name,
self.container.api_socket,
@@ -630,7 +659,7 @@ class ContainerEngine:
# Execute puts the command into single quotes,
# so inner arguments are enclosed in qouble quotes here.
self.execute(
- u'vppctl show pci 2>&1 | '
+ u'/usr/bin/vppctl show pci 2>&1 | '
u'fgrep -v "Connection refused" | '
u'fgrep -v "No such file or directory"'
)
@@ -688,7 +717,6 @@ class ContainerEngine:
vpp_config = VppConfigGenerator()
vpp_config.set_node(self.container.node)
vpp_config.add_unix_cli_listen()
- vpp_config.add_unix_nodaemon()
vpp_config.add_unix_exec(u"/tmp/running.exec")
vpp_config.add_socksvr(socket=Constants.SOCKSVR_PATH)
if cpuset_cpus:
@@ -700,10 +728,12 @@ class ContainerEngine:
vpp_config.add_buffers_per_numa(215040)
vpp_config.add_plugin(u"disable", u"default")
vpp_config.add_plugin(u"enable", u"memif_plugin.so")
+ vpp_config.add_plugin(u"enable", u"perfmon_plugin.so")
vpp_config.add_main_heap_size(u"2G")
- vpp_config.add_main_heap_page_size(u"2M")
+ vpp_config.add_main_heap_page_size(self.container.page_size)
+ vpp_config.add_default_hugepage_size(self.container.page_size)
vpp_config.add_statseg_size(u"2G")
- vpp_config.add_statseg_page_size(u"2M")
+ vpp_config.add_statseg_page_size(self.container.page_size)
vpp_config.add_statseg_per_node_counters(u"on")
return vpp_config
@@ -736,6 +766,7 @@ class ContainerEngine:
vpp_config.add_dpdk_no_tx_checksum_offload()
vpp_config.add_dpdk_dev_default_rxq(rxq)
vpp_config.add_plugin(u"enable", u"dpdk_plugin.so")
+ vpp_config.add_plugin(u"enable", u"perfmon_plugin.so")
# Apply configuration
self.execute(u"mkdir -p /etc/vpp/")
@@ -753,6 +784,23 @@ class ContainerEngine:
vpp_config.add_plugin(u"enable", u"crypto_native_plugin.so")
vpp_config.add_plugin(u"enable", u"crypto_ipsecmb_plugin.so")
vpp_config.add_plugin(u"enable", u"crypto_openssl_plugin.so")
+ vpp_config.add_plugin(u"enable", u"perfmon_plugin.so")
+
+ # Apply configuration
+ self.execute(u"mkdir -p /etc/vpp/")
+ self.execute(
+ f'echo "{vpp_config.get_config_str()}" | tee /etc/vpp/startup.conf'
+ )
+
+ def create_vpp_startup_config_dma(self, dma_devices):
+ """Create startup configuration of VPP DMA.
+
+ :param dma_devices: DMA devices list.
+ :type dma_devices: list
+ """
+ vpp_config = self.create_base_vpp_startup_config()
+ vpp_config.add_plugin(u"enable", u"dma_intel_plugin.so")
+ vpp_config.add_dma_dev(dma_devices)
# Apply configuration
self.execute(u"mkdir -p /etc/vpp/")
@@ -798,31 +846,19 @@ class ContainerEngine:
:raises RuntimeError: If applying cgroup settings via cgset failed.
"""
ret, _, _ = self.container.ssh.exec_command_sudo(
- u"cgset -r cpuset.cpu_exclusive=0 /"
- )
- if int(ret) != 0:
- raise RuntimeError(u"Failed to apply cgroup settings.")
-
- ret, _, _ = self.container.ssh.exec_command_sudo(
- u"cgset -r cpuset.mem_exclusive=0 /"
- )
- if int(ret) != 0:
- raise RuntimeError(u"Failed to apply cgroup settings.")
-
- ret, _, _ = self.container.ssh.exec_command_sudo(
f"cgcreate -g cpuset:/{name}"
)
if int(ret) != 0:
raise RuntimeError(u"Failed to copy cgroup settings from root.")
ret, _, _ = self.container.ssh.exec_command_sudo(
- f"cgset -r cpuset.cpu_exclusive=0 /{name}"
+ f"cgset -r cpuset.cpus=0 /{name}"
)
if int(ret) != 0:
raise RuntimeError(u"Failed to apply cgroup settings.")
ret, _, _ = self.container.ssh.exec_command_sudo(
- f"cgset -r cpuset.mem_exclusive=0 /{name}"
+ f"cgset -r cpuset.mems=0 /{name}"
)
if int(ret) != 0:
raise RuntimeError(u"Failed to apply cgroup settings.")
@@ -853,7 +889,7 @@ class LXC(ContainerEngine):
else u"amd64"
image = self.container.image if self.container.image \
- else f"-d ubuntu -r bionic -a {target_arch}"
+ else f"-d ubuntu -r jammy -a {target_arch}"
cmd = f"lxc-create -t download --name {self.container.name} " \
f"-- {image} --no-validate"
@@ -1118,8 +1154,8 @@ class Docker(ContainerEngine):
if self.container.mnt else u""
cmd = f"docker run --privileged --detach --interactive --tty --rm " \
- f"--cgroup-parent docker {cpuset_cpus} {cpuset_mems} {publish} " \
- f"{env} {volume} --name {self.container.name} " \
+ f"--cgroup-parent docker.slice {cpuset_cpus} {cpuset_mems} " \
+ f"{publish} {env} {volume} --name {self.container.name} " \
f"{self.container.image} {command}"
ret, _, _ = self.container.ssh.exec_command_sudo(cmd)
@@ -1273,6 +1309,7 @@ class Container:
path = f"/tmp/vpp_sockets/{value}"
self.__dict__[u"socket_dir"] = path
self.__dict__[u"api_socket"] = f"{path}/api.sock"
+ self.__dict__[u"cli_socket"] = f"{path}/cli.sock"
self.__dict__[u"stats_socket"] = f"{path}/stats.sock"
self.__dict__[attr] = value
else:
diff --git a/resources/libraries/python/CoreDumpUtil.py b/resources/libraries/python/CoreDumpUtil.py
index e1c7b65765..b70afa858e 100644
--- a/resources/libraries/python/CoreDumpUtil.py
+++ b/resources/libraries/python/CoreDumpUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -139,11 +139,11 @@ class CoreDumpUtil:
for node in nodes.values():
if node[u"type"] == NodeType.DUT:
command = (
- f"for f in {Constants.CORE_DUMP_DIR}/*.core; do "
- f"sudo gdb /usr/bin/vpp ${{f}} "
- f"-ex 'source -v {Constants.REMOTE_FW_DIR}"
- f"/resources/tools/scripts/gdb-commands' -ex quit; "
- f"sudo rm -f ${{f}}; done"
+ f"for f in {Constants.CORE_DUMP_DIR}/*.core; do"
+ f" sleep 10; sudo gdb /usr/bin/vpp ${{f}}"
+ f" -ex 'source -v {Constants.REMOTE_FW_DIR}"
+ f"/resources/tools/scripts/gdb-commands' -ex quit;"
+ f" sudo rm -f ${{f}}; done"
)
try:
exec_cmd_no_error(node, command, timeout=3600)
diff --git a/resources/libraries/python/CpuUtils.py b/resources/libraries/python/CpuUtils.py
index f261f9421e..c77d0f83b1 100644
--- a/resources/libraries/python/CpuUtils.py
+++ b/resources/libraries/python/CpuUtils.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -13,11 +13,13 @@
"""CPU utilities library."""
+from random import choice
+
from robot.libraries.BuiltIn import BuiltIn
from resources.libraries.python.Constants import Constants
from resources.libraries.python.ssh import exec_cmd_no_error
-from resources.libraries.python.topology import Topology
+from resources.libraries.python.topology import Topology, NodeType
__all__ = [u"CpuUtils"]
@@ -232,7 +234,7 @@ class CpuUtils:
cpu_list_0 = cpu_list[:cpu_list_len // CpuUtils.NR_OF_THREADS]
cpu_list_1 = cpu_list[cpu_list_len // CpuUtils.NR_OF_THREADS:]
cpu_range = f"{cpu_list_0[0]}{sep}{cpu_list_0[-1]}," \
- f"{cpu_list_1[0]}{sep}{cpu_list_1[-1]}"
+ f"{cpu_list_1[0]}{sep}{cpu_list_1[-1]}"
else:
cpu_range = f"{cpu_list[0]}{sep}{cpu_list[-1]}"
@@ -268,7 +270,7 @@ class CpuUtils:
:returns: List of CPUs allocated to NF.
:rtype: list
:raises RuntimeError: If we require more cpus than available or if
- placement is not possible due to wrong parameters.
+ placement is not possible due to wrong parameters.
"""
if not 1 <= nf_chain <= nf_chains:
raise RuntimeError(u"ChainID is out of range!")
@@ -311,6 +313,36 @@ class CpuUtils:
return result
@staticmethod
+ def get_affinity_af_xdp(
+ node, pf_key, cpu_skip_cnt=0, cpu_cnt=1):
+ """Get affinity for AF_XDP interface. Result will be used to pin IRQs.
+
+ :param node: Topology node.
+ :param pf_key: Topology interface.
+ :param cpu_skip_cnt: Amount of CPU cores to skip.
+ :param cpu_cnt: CPU threads count.
+ :type node: dict
+ :type pf_key: str
+ :type cpu_skip_cnt: int
+ :type cpu_cnt: int
+ :returns: List of CPUs allocated to AF_XDP interface.
+ :rtype: list
+ """
+ if pf_key:
+ cpu_node = Topology.get_interface_numa_node(node, pf_key)
+ else:
+ cpu_node = 0
+
+ smt_used = CpuUtils.is_smt_enabled(node[u"cpuinfo"])
+ if smt_used:
+ cpu_cnt = cpu_cnt // CpuUtils.NR_OF_THREADS
+
+ return CpuUtils.cpu_slice_of_list_per_node(
+ node, cpu_node, skip_cnt=cpu_skip_cnt, cpu_cnt=cpu_cnt,
+ smt_used=smt_used
+ )
+
+ @staticmethod
def get_affinity_nf(
nodes, node, nf_chains=1, nf_nodes=1, nf_chain=1, nf_node=1,
vs_dtc=1, nf_dtc=1, nf_mtcr=2, nf_dtcr=1):
@@ -358,25 +390,25 @@ class CpuUtils:
@staticmethod
def get_affinity_trex(
- node, if1_pci, if2_pci, tg_mtc=1, tg_dtc=1, tg_ltc=1):
+ node, if_key, tg_mtc=1, tg_dtc=1, tg_ltc=1, tg_dtc_offset=0):
"""Get affinity for T-Rex. Result will be used to pin T-Rex threads.
:param node: TG node.
- :param if1_pci: TG first interface.
- :param if2_pci: TG second interface.
+ :param if_key: TG first interface.
:param tg_mtc: TG main thread count.
:param tg_dtc: TG dataplane thread count.
:param tg_ltc: TG latency thread count.
+ :param tg_dtc_offset: TG dataplane thread offset.
:type node: dict
- :type if1_pci: str
- :type if2_pci: str
+ :type if_key: str
:type tg_mtc: int
:type tg_dtc: int
:type tg_ltc: int
+ :type tg_dtc_offset: int
:returns: List of CPUs allocated to T-Rex including numa node.
:rtype: int, int, int, list
"""
- interface_list = [if1_pci, if2_pci]
+ interface_list = [if_key]
cpu_node = Topology.get_interfaces_numa_node(node, *interface_list)
master_thread_id = CpuUtils.cpu_slice_of_list_per_node(
@@ -384,12 +416,11 @@ class CpuUtils:
smt_used=False)
threads = CpuUtils.cpu_slice_of_list_per_node(
- node, cpu_node, skip_cnt=tg_mtc, cpu_cnt=tg_dtc,
- smt_used=False)
+ node, cpu_node, skip_cnt=tg_mtc + tg_ltc + tg_dtc_offset,
+ cpu_cnt=tg_dtc, smt_used=False)
latency_thread_id = CpuUtils.cpu_slice_of_list_per_node(
- node, cpu_node, skip_cnt=tg_mtc + tg_dtc, cpu_cnt=tg_ltc,
- smt_used=False)
+ node, cpu_node, skip_cnt=tg_mtc, cpu_cnt=tg_ltc, smt_used=False)
return master_thread_id[0], latency_thread_id[0], cpu_node, threads
@@ -445,4 +476,125 @@ class CpuUtils:
return CpuUtils.cpu_slice_of_list_per_node(
node, cpu_node=cpu_node, skip_cnt=skip_cnt, cpu_cnt=cpu_cnt,
- smt_used=smt_used)
+ smt_used=False)
+
+ @staticmethod
+ def get_cpu_idle_list(node, cpu_node, smt_used, cpu_alloc_str, sep=u","):
+ """Get idle CPU List.
+
+ :param node: Node dictionary with cpuinfo.
+ :param cpu_node: Numa node number.
+ :param smt_used: True - we want to use SMT, otherwise false.
+ :param cpu_alloc_str: vpp used cores.
+ :param sep: Separator, default: ",".
+ :type node: dict
+ :type cpu_node: int
+ :type smt_used: bool
+ :type cpu_alloc_str: str
+ :type smt_used: bool
+ :type sep: str
+ :rtype: list
+ """
+ cpu_list = CpuUtils.cpu_list_per_node(node, cpu_node, smt_used)
+ cpu_idle_list = [i for i in cpu_list
+ if str(i) not in cpu_alloc_str.split(sep)]
+ return cpu_idle_list
+
+ @staticmethod
+ def get_affinity_vswitch(
+ nodes, phy_cores, rx_queues=None, rxd=None, txd=None):
+ """Get affinity for vswitch on all DUTs.
+
+ :param nodes: Topology nodes.
+ :param phy_cores: Number of physical cores to allocate.
+ :param rx_queues: Number of RX queues. (Optional, Default: None)
+ :param rxd: Number of RX descriptors. (Optional, Default: None)
+ :param txd: Number of TX descriptors. (Optional, Default: None)
+ :type nodes: dict
+ :type phy_cores: int
+ :type rx_queues: int
+ :type rxd: int
+ :type txd: int
+ :returns: Compute resource information dictionary.
+ :rtype: dict
+ """
+ compute_resource_info = dict()
+ for node_name, node in nodes.items():
+ if node["type"] != NodeType.DUT:
+ continue
+ # Number of Data Plane physical cores.
+ dp_cores_count = BuiltIn().get_variable_value(
+ "${dp_cores_count}", phy_cores
+ )
+ # Number of Feature Plane physical cores.
+ fp_cores_count = BuiltIn().get_variable_value(
+ "${fp_cores_count}", phy_cores - dp_cores_count
+ )
+ # Ratio between RX queues and data plane threads.
+ rxq_ratio = BuiltIn().get_variable_value(
+ "${rxq_ratio}", 1
+ )
+
+ dut_pf_keys = BuiltIn().get_variable_value(
+ f"${{{node_name}_pf_keys}}"
+ )
+ # SMT override in case of non standard test cases.
+ smt_used = BuiltIn().get_variable_value(
+ "${smt_used}", CpuUtils.is_smt_enabled(node["cpuinfo"])
+ )
+
+ cpu_node = Topology.get_interfaces_numa_node(node, *dut_pf_keys)
+ skip_cnt = Constants.CPU_CNT_SYSTEM
+ cpu_main = CpuUtils.cpu_list_per_node_str(
+ node, cpu_node,
+ skip_cnt=skip_cnt,
+ cpu_cnt=Constants.CPU_CNT_MAIN if phy_cores else 0,
+ smt_used=False
+ )
+ cpu_main = cpu_main if phy_cores else choice(cpu_main.split(","))
+ skip_cnt += Constants.CPU_CNT_MAIN
+ cpu_dp = CpuUtils.cpu_list_per_node_str(
+ node, cpu_node,
+ skip_cnt=skip_cnt,
+ cpu_cnt=int(dp_cores_count),
+ smt_used=smt_used
+ ) if int(dp_cores_count) else ""
+ skip_cnt = skip_cnt + int(dp_cores_count)
+ cpu_fp = CpuUtils.cpu_list_per_node_str(
+ node, cpu_node,
+ skip_cnt=skip_cnt,
+ cpu_cnt=int(fp_cores_count),
+ smt_used=smt_used
+ ) if int(fp_cores_count) else ""
+
+ fp_count_int = \
+ int(fp_cores_count) * CpuUtils.NR_OF_THREADS if smt_used \
+ else int(fp_cores_count)
+ dp_count_int = \
+ int(dp_cores_count) * CpuUtils.NR_OF_THREADS if smt_used \
+ else int(dp_cores_count)
+
+ rxq_count_int = \
+ int(rx_queues) if rx_queues \
+ else int(dp_count_int/rxq_ratio)
+ rxq_count_int = 1 if not rxq_count_int else rxq_count_int
+
+ compute_resource_info["buffers_numa"] = \
+ 215040 if smt_used else 107520
+ compute_resource_info["smt_used"] = smt_used
+ compute_resource_info[f"{node_name}_cpu_main"] = cpu_main
+ compute_resource_info[f"{node_name}_cpu_dp"] = cpu_dp
+ compute_resource_info[f"{node_name}_cpu_fp"] = cpu_fp
+ compute_resource_info[f"{node_name}_cpu_wt"] = \
+ ",".join(filter(None, [cpu_dp, cpu_fp]))
+ compute_resource_info[f"{node_name}_cpu_alloc_str"] = \
+ ",".join(filter(None, [cpu_main, cpu_dp, cpu_fp]))
+ compute_resource_info["cpu_count_int"] = \
+ int(dp_cores_count) + int(fp_cores_count)
+ compute_resource_info["rxd_count_int"] = rxd
+ compute_resource_info["txd_count_int"] = txd
+ compute_resource_info["rxq_count_int"] = rxq_count_int
+ compute_resource_info["fp_count_int"] = fp_count_int
+ compute_resource_info["dp_count_int"] = dp_count_int
+
+ return compute_resource_info
diff --git a/resources/libraries/python/DMAUtil.py b/resources/libraries/python/DMAUtil.py
new file mode 100644
index 0000000000..f904ea4e3d
--- /dev/null
+++ b/resources/libraries/python/DMAUtil.py
@@ -0,0 +1,213 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# 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.
+
+"""DMA util library."""
+
+from re import search
+from resources.libraries.python.topology import NodeType, Topology
+from resources.libraries.python.ssh import exec_cmd, exec_cmd_no_error
+
+
+class DMAUtil:
+ """Common DMA utilities"""
+
+ @staticmethod
+ def get_dma_resource(node, dma_device):
+ """Get DMA resource from DMA device.
+
+ :param node: Topology node.
+ :param dma_device: DMA device.
+ :type node: dict
+ :type dma_device: str
+ :returns: DMA resource.
+ :rtype: dict
+ """
+
+ cmd = f"grep -H . /sys/bus/pci/devices/{dma_device}/dsa*/*"
+ _, stdout, stderr = exec_cmd(node, cmd, sudo=True)
+
+ dma_info = dict()
+ dma_info["dma_device"] = dma_device
+ dma_info["engine"] = list()
+ dma_info["wq"] = list()
+ dma_info["group"] = list()
+
+ for line in stdout.split():
+ g1 = search(r"/(dsa\d+)/(.+):(.+)", line)
+ if g1 is not None:
+ dma_info["dma_name"] = g1.group(1)
+ dma_info[f"{g1.group(2)}"] = g1.group(3)
+
+ for line in stderr.split():
+ g2 = search(r"/(dsa\d+)/((engine|group|wq)\d+\.\d+)", line)
+ if g2 is not None:
+ dev_type = g2.group(3)
+ dev = g2.group(2)
+ dma_info[dev_type].append(dev)
+
+ return dma_info
+
+ @staticmethod
+ def disable_dma_device(node, dma_name):
+ """Disable DMA device.
+
+ :param node: Topology node.
+ :param dma_name: DMA name.
+ :type node: dict
+ :type dma_name: str
+ """
+ cmd = f"cat /sys/bus/dsa/devices/{dma_name}/state"
+ stdout, _ = exec_cmd_no_error(
+ node, cmd, sudo=True,
+ message="Failed to get dma state.")
+ if stdout.strip() == "disabled":
+ return
+
+ cmd = f"accel-config disable-device -f {dma_name}"
+ exec_cmd_no_error(
+ node, cmd, sudo=True,
+ message="Failed to disable DMA on DUT.")
+
+ @staticmethod
+ def enable_dma_device(node, dma_name, groups, engines, wqs, wq_size,
+ max_batch_size, max_transfer_size):
+ """Enable DMA device.
+
+ :param node: Topology node.
+ :param dma_name: DMA name.
+ :param groups: DMA groups.
+ :param engines: DMA engines.
+ :param wqs: DMA work queues.
+ :param wq_size: DMA work queue size.
+ :param max_batch_size: Wq max batch size.
+ :param max_transfer_size: Wq max transfer size.
+ :type node: dict
+ :type dma_name: str
+ :type groups: list
+ :type engines: list
+ :type wqs: list
+ :type wq_size: int
+ :type max_batch_size: int
+ :type max_transfer_size: int
+ """
+
+ # Configure Device
+ cmd = f"accel-config config-device {dma_name}"
+
+ exec_cmd_no_error(
+ node, cmd, sudo=True,
+ message="Failed to configure DMA device on DUT.")
+
+ # Configure DMA group
+ for i, group in enumerate(groups):
+ cmd = f"accel-config config-group " \
+ f"{dma_name}/{group} --read-buffers-reserved=0"
+
+ exec_cmd_no_error(
+ node, cmd, sudo=True,
+ message="Failed to configure DMA group on DUT.")
+
+ # Configure DMA engine
+ for i, engine in enumerate(engines):
+ cmd = f"accel-config config-engine " \
+ f"{dma_name}/{engine} --group-id={i}"
+
+ exec_cmd_no_error(
+ node, cmd, sudo=True,
+ message="Failed to configure DMA engine on DUT.")
+
+ # Configure DMA work queue
+ for i, wq in enumerate(wqs):
+ cmd = f"accel-config config-wq {dma_name}/{wq} " \
+ f" --group-id={i%len(engines)} --type=user " \
+ f" --priority=10 --block-on-fault=1 " \
+ f" --wq-size={wq_size} --mode=dedicated " \
+ f" --name={dma_name}_{i} " \
+ f" --max-batch-size={max_batch_size} " \
+ f" --max-transfer-size={max_transfer_size} "
+
+ exec_cmd_no_error(
+ node, cmd, sudo=True,
+ message="Failed to configure DMA work queue on DUT.")
+
+ # Enable DMA and work queues
+ cmd = f"accel-config enable-device {dma_name}"
+ exec_cmd_no_error(
+ node, cmd, sudo=True,
+ message="Failed to enable DMA device on DUT.")
+
+ dma_wqs = [f"{dma_name}/{wq}" for wq in wqs]
+ cmd = f"accel-config enable-wq {' '.join(dma_wqs)}"
+ exec_cmd_no_error(
+ node, cmd, sudo=True,
+ message="Failed to enable DMA work queue on DUT.")
+
+ @staticmethod
+ def enable_dmas_and_wqs_on_dut(node, wq_num):
+ """Enable DMAs and work queues on DUT.
+
+ :param node: Topology node.
+ :param wq_num: Number of work queues.
+ :type node: dict
+ :type wq_num: int
+ :returns: DMA work queues enabled.
+ :rtype: list
+ """
+ if node["type"] == NodeType.DUT:
+ dma_devs = Topology.get_bus(node)
+
+ enabled_wqs = list()
+
+ for dev in dma_devs.values():
+ if "Intel-DSA" not in dev["model"]:
+ continue
+
+ dev_pci = dev["pci_address"]
+ dma_info = DMAUtil.get_dma_resource(node, dev_pci)
+
+ dma_name = dma_info["dma_name"]
+ groups = dma_info["group"]
+ engines = dma_info["engine"]
+ wqs = dma_info["wq"]
+ wq_num_per_dma = wq_num//len(dma_devs) if wq_num > 1 else 1
+ max_transfer_size = \
+ int(dma_info["max_transfer_size"])//wq_num_per_dma
+ wq_size = int(dma_info["max_work_queues_size"])//wq_num_per_dma
+ max_batch_size = int(dma_info["max_batch_size"])
+
+ DMAUtil.disable_dma_device(node, dma_name)
+
+ DMAUtil.enable_dma_device(node,
+ dma_name,
+ groups[:wq_num_per_dma],
+ engines[:wq_num_per_dma],
+ wqs[:wq_num_per_dma],
+ wq_size,
+ max_batch_size,
+ max_transfer_size
+ )
+ enabled_wqs += wqs[:wq_num_per_dma]
+
+ cmd = f"lspci -vvv -s {dev_pci}"
+ exec_cmd_no_error(
+ node, cmd, sudo=True, message="Failed")
+
+ cmd = "accel-config list"
+ exec_cmd_no_error(
+ node, cmd, sudo=True, message="Failed")
+
+ cmd = "cat /proc/cmdline"
+ exec_cmd_no_error(
+ node, cmd, sudo=True, message="Failed")
+
+ return enabled_wqs
diff --git a/resources/libraries/python/DPDK/DPDKTools.py b/resources/libraries/python/DPDK/DPDKTools.py
index 9bb89968d2..83ddae8b4a 100644
--- a/resources/libraries/python/DPDK/DPDKTools.py
+++ b/resources/libraries/python/DPDK/DPDKTools.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -80,6 +80,25 @@ class DPDKTools:
exec_cmd_no_error(node, command, timeout=1200, message=message)
@staticmethod
+ def get_dpdk_version(node):
+ """Log and return the installed DPDK version.
+
+ The logged string ends with newline, the returned one is stripped.
+
+ :param node: Node from topology file.
+ :type node: dict
+ :returns: Stripped DPDK version string.
+ :rtype: str
+ :raises RuntimeError: If command returns nonzero return code.
+ """
+ command = f"cat {Constants.REMOTE_FW_DIR}/dpdk*/VERSION"
+ message = u"Get DPDK version failed!"
+ stdout, _ = exec_cmd_no_error(node, command, message=message)
+ # TODO: PAL should already tolerate stripped value in the log.
+ logger.info(f"DPDK Version: {stdout}")
+ return stdout.strip()
+
+ @staticmethod
def install_dpdk_framework(node):
"""
Prepare the DPDK framework on the DUT node.
@@ -91,13 +110,8 @@ class DPDKTools:
command = f"{Constants.REMOTE_FW_DIR}/{Constants.RESOURCES_LIB_SH}" \
f"/entry/install_dpdk.sh"
message = u"Install the DPDK failed!"
- exec_cmd_no_error(node, command, timeout=600, message=message)
-
- command = f"cat {Constants.REMOTE_FW_DIR}/dpdk*/VERSION"
- message = u"Get DPDK version failed!"
- stdout, _ = exec_cmd_no_error(node, command, message=message)
-
- logger.info(f"DPDK Version: {stdout}")
+ exec_cmd_no_error(node, command, timeout=3600, message=message)
+ DPDKTools.get_dpdk_version(node)
@staticmethod
def install_dpdk_framework_on_all_duts(nodes):
diff --git a/resources/libraries/python/DPDK/L3fwdTest.py b/resources/libraries/python/DPDK/L3fwdTest.py
index c33810348d..178c747da5 100644
--- a/resources/libraries/python/DPDK/L3fwdTest.py
+++ b/resources/libraries/python/DPDK/L3fwdTest.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -12,25 +12,100 @@
# limitations under the License.
"""
-This module exists to provide the l3fwd test for DPDK on topology nodes.
+This module exists to start l3fwd on topology nodes.
"""
+from robot.libraries.BuiltIn import BuiltIn
from resources.libraries.python.Constants import Constants
+from resources.libraries.python.CpuUtils import CpuUtils
from resources.libraries.python.DpdkUtil import DpdkUtil
from resources.libraries.python.ssh import exec_cmd_no_error, exec_cmd
from resources.libraries.python.topology import NodeType, Topology
+NB_PORTS = 2
+
class L3fwdTest:
- """Test the DPDK l3fwd performance."""
+ """This class start l3fwd on topology nodes and check if properly started.
+ """
+
+ @staticmethod
+ def start_l3fwd_on_all_duts(
+ nodes, topology_info, phy_cores, rx_queues=None, jumbo_frames=False,
+ rxd=None, txd=None):
+ """
+ Execute the l3fwd on all dut nodes.
+
+ :param nodes: All the nodes info from the topology file.
+ :param topology_info: All the info from the topology file.
+ :param phy_cores: Number of physical cores to use.
+ :param rx_queues: Number of RX queues.
+ :param jumbo_frames: Jumbo frames on/off.
+ :param rxd: Number of RX descriptors.
+ :param txd: Number of TX descriptors.
+
+ :type nodes: dict
+ :type topology_info: dict
+ :type phy_cores: int
+ :type rx_queues: int
+ :type jumbo_frames: bool
+ :type rxd: int
+ :type txd: int
+ :raises RuntimeError: If bash return code is not 0.
+ """
+ cpu_count_int = dp_count_int = int(phy_cores)
+ dp_cores = cpu_count_int+1
+ tg_flip = topology_info[f"tg_if1_pci"] > topology_info[f"tg_if2_pci"]
+ compute_resource_info = CpuUtils.get_affinity_vswitch(
+ nodes, phy_cores, rx_queues=rx_queues, rxd=rxd, txd=txd
+ )
+ for node_name, node in nodes.items():
+ if node["type"] == NodeType.DUT:
+ if dp_count_int > 1:
+ BuiltIn().set_tags('MTHREAD')
+ else:
+ BuiltIn().set_tags('STHREAD')
+ BuiltIn().set_tags(
+ f"{dp_count_int}T{cpu_count_int}C"
+ )
+
+ cpu_dp = compute_resource_info[f"{node_name}_cpu_dp"]
+ rxq_count_int = compute_resource_info["rxq_count_int"]
+ if1 = topology_info[f"{node_name}_pf1"][0]
+ if2 = topology_info[f"{node_name}_pf2"][0]
+ L3fwdTest.start_l3fwd(
+ nodes, node, if1=if1, if2=if2, lcores_list=cpu_dp,
+ nb_cores=dp_count_int, queue_nums=rxq_count_int,
+ jumbo_frames=jumbo_frames, tg_flip=tg_flip
+ )
+ for node in nodes:
+ if u"DUT" in node:
+ for i in range(3):
+ try:
+ L3fwdTest.check_l3fwd(nodes[node])
+ break
+ except RuntimeError:
+ L3fwdTest.start_l3fwd(
+ nodes, nodes[node], if1=if1, if2=if2,
+ lcores_list=cpu_dp, nb_cores=dp_count_int,
+ queue_nums=rxq_count_int, jumbo_frames=jumbo_frames,
+ tg_flip=tg_flip
+ )
+ else:
+ message = f"Failed to start l3fwd at node {node}"
+ raise RuntimeError(message)
@staticmethod
def start_l3fwd(
nodes, node, if1, if2, lcores_list, nb_cores, queue_nums,
- jumbo_frames):
+ jumbo_frames, tg_flip):
"""
Execute the l3fwd on the dut_node.
+ L3fwd uses default IP forwarding table, but sorts ports by API address.
+ When that does not match the traffic profile (depends on topology),
+ the only way to fix is is to latch and recompile l3fwd app.
+
:param nodes: All the nodes info in the topology file.
:param node: DUT node.
:param if1: The test link interface 1.
@@ -40,6 +115,7 @@ class L3fwdTest:
:param queue_nums: The queues number for the NIC
:param jumbo_frames: Indication if the jumbo frames are used (True) or
not (False).
+ :param tg_flip: Whether TG ports are reordered.
:type nodes: dict
:type node: dict
:type if1: str
@@ -48,22 +124,24 @@ class L3fwdTest:
:type nb_cores: str
:type queue_nums: str
:type jumbo_frames: bool
+ :type tg_flip: bool
"""
if node[u"type"] == NodeType.DUT:
adj_mac0, adj_mac1, if_pci0, if_pci1 = L3fwdTest.get_adj_mac(
- nodes, node, if1, if2
+ nodes, node, if1, if2, tg_flip
)
- list_cores = [int(item) for item in lcores_list.split(u",")]
+ lcores = [int(item) for item in lcores_list.split(u",")]
# prepare the port config param
nb_cores = int(nb_cores)
index = 0
port_config = ''
- for port in range(0, 2):
+ for port in range(0, NB_PORTS):
for queue in range(0, int(queue_nums)):
index = 0 if nb_cores == 1 else index
- port_config += f"({port}, {queue}, {list_cores[index]}),"
+ port_config += \
+ f"({port}, {queue}, {lcores[index % NB_PORTS]}),"
index += 1
if jumbo_frames:
@@ -77,7 +155,6 @@ class L3fwdTest:
pmd_eth_dest_0=f"\\\"0,{adj_mac0}\\\"",
pmd_eth_dest_1=f"\\\"1,{adj_mac1}\\\"",
pmd_parse_ptype=True,
- pmd_enable_jumbo=jumbo_frames,
pmd_max_pkt_len=jumbo_frames
)
else:
@@ -98,20 +175,40 @@ class L3fwdTest:
message = f"Failed to execute l3fwd test at node {node['host']}"
exec_cmd_no_error(node, command, timeout=1800, message=message)
+ @staticmethod
+ def check_l3fwd(node):
+ """
+ Execute the l3fwd check on the DUT node.
+
+ :param node: DUT node.
+ :type node: dict
+ :raises RuntimeError: If the script "check_l3fwd.sh" fails.
+ """
+ if node[u"type"] == NodeType.DUT:
+ command = f"{Constants.REMOTE_FW_DIR}/{Constants.RESOURCES_LIB_SH}"\
+ f"/entry/check_l3fwd.sh"
+ message = "L3fwd not started properly"
+ exec_cmd_no_error(node, command, timeout=1800, message=message)
@staticmethod
- def get_adj_mac(nodes, node, if1, if2):
+ def get_adj_mac(nodes, node, if1, if2, tg_flip):
"""
Get adjacency MAC addresses of the DUT node.
+ Interfaces are re-ordered according to PCI address,
+ but the need to patch and recompile also depends on TG port order.
+ "tg_flip" signals whether TG ports are reordered.
+
:param nodes: All the nodes info in the topology file.
:param node: DUT node.
:param if1: The test link interface 1.
:param if2: The test link interface 2.
+ :param tg_flip: Whether tg ports are reordered.
:type nodes: dict
:type node: dict
:type if1: str
:type if2: str
+ :type tg_flip: bool
:returns: Returns MAC addresses of adjacency DUT nodes and PCI
addresses.
:rtype: str
@@ -121,9 +218,19 @@ class L3fwdTest:
if_pci0 = Topology.get_interface_pci_addr(node, if_key0)
if_pci1 = Topology.get_interface_pci_addr(node, if_key1)
+ # Flipping routes logic:
+ # If TG and DUT ports are reordered -> flip
+ # If TG reordered and DUT not reordered -> don't flip
+ # If DUT reordered and TG not reordered -> don't flip
+ # If DUT and TG not reordered -> flip
+
# Detect which is the port 0.
- if min(if_pci0, if_pci1) != if_pci0:
+ dut_flip = if_pci0 > if_pci1
+ if dut_flip:
if_key0, if_key1 = if_key1, if_key0
+ if tg_flip:
+ L3fwdTest.patch_l3fwd(node, u"patch_l3fwd_flip_routes")
+ elif not tg_flip:
L3fwdTest.patch_l3fwd(node, u"patch_l3fwd_flip_routes")
adj_node0, adj_if_key0 = Topology.get_adjacent_node_and_interface(
diff --git a/resources/libraries/python/DPDK/TestpmdTest.py b/resources/libraries/python/DPDK/TestpmdTest.py
index dd30376fd1..3baba30715 100644
--- a/resources/libraries/python/DPDK/TestpmdTest.py
+++ b/resources/libraries/python/DPDK/TestpmdTest.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -11,18 +11,100 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-"""This module implements functionality which sets L2 forwarding for DPDK on
-DUT nodes.
+"""
+This module exists to start testpmd on topology nodes.
"""
+from robot.libraries.BuiltIn import BuiltIn
from resources.libraries.python.Constants import Constants
+from resources.libraries.python.CpuUtils import CpuUtils
from resources.libraries.python.DpdkUtil import DpdkUtil
from resources.libraries.python.ssh import exec_cmd_no_error
from resources.libraries.python.topology import NodeType, Topology
class TestpmdTest:
- """Setup the DPDK for testpmd performance test."""
+ """
+ This class start testpmd on topology nodes and check if properly started.
+ """
+
+ @staticmethod
+ def start_testpmd_on_all_duts(
+ nodes, topology_info, phy_cores, rx_queues=None, jumbo_frames=False,
+ rxd=None, txd=None, nic_rxq_size=None, nic_txq_size=None):
+ """
+ Start the testpmd with M worker threads and rxqueues N and jumbo
+ support frames on/off on all DUTs.
+
+ :param nodes: All the nodes info from the topology file.
+ :param topology_info: All the info from the topology file.
+ :param phy_cores: Number of physical cores to use.
+ :param rx_queues: Number of RX queues.
+ :param jumbo_frames: Jumbo frames on/off.
+ :param rxd: Number of RX descriptors.
+ :param txd: Number of TX descriptors.
+ :param nic_rxq_size: RX queue size.
+ :param nic_txq_size: TX queue size.
+
+ :type nodes: dict
+ :type topology_info: dict
+ :type phy_cores: int
+ :type rx_queues: int
+ :type jumbo_frames: bool
+ :type rxd: int
+ :type txd: int
+ :type nic_rxq_size: int
+ :type nic_txq_size: int
+ :raises RuntimeError: If bash return code is not 0.
+ """
+
+ cpu_count_int = dp_count_int = int(phy_cores)
+ dp_cores = cpu_count_int+1
+ compute_resource_info = CpuUtils.get_affinity_vswitch(
+ nodes, phy_cores, rx_queues=rx_queues, rxd=rxd, txd=txd
+ )
+ for node_name, node in nodes.items():
+ if node["type"] == NodeType.DUT:
+ if dp_count_int > 1:
+ BuiltIn().set_tags('MTHREAD')
+ else:
+ BuiltIn().set_tags('STHREAD')
+ BuiltIn().set_tags(
+ f"{dp_count_int}T{cpu_count_int}C"
+ )
+
+ cpu_dp = compute_resource_info[f"{node_name}_cpu_dp"]
+ rxq_count_int = compute_resource_info["rxq_count_int"]
+ if1 = topology_info[f"{node_name}_pf1"][0]
+ if2 = topology_info[f"{node_name}_pf2"][0]
+ TestpmdTest.start_testpmd(
+ node, if1=if1, if2=if2, lcores_list=cpu_dp,
+ nb_cores=dp_count_int, queue_nums=rxq_count_int,
+ jumbo_frames=jumbo_frames, rxq_size=nic_rxq_size,
+ txq_size=nic_txq_size
+ )
+ for node in nodes:
+ if u"DUT" in node:
+ for i in range(3):
+ try:
+ nic_model = nodes[node]["interfaces"][if1]["model"]
+ if "Mellanox-CX7VEAT" in nic_model:
+ break
+ if "Mellanox-CX6DX" in nic_model:
+ break
+ TestpmdTest.check_testpmd(nodes[node])
+ break
+ except RuntimeError:
+ TestpmdTest.start_testpmd(
+ nodes[node], if1=if1, if2=if2,
+ lcores_list=cpu_dp, nb_cores=dp_count_int,
+ queue_nums=rxq_count_int,
+ jumbo_frames=jumbo_frames,
+ rxq_size=nic_rxq_size, txq_size=nic_txq_size
+ )
+ else:
+ message = f"Failed to start testpmd at node {node}"
+ raise RuntimeError(message)
@staticmethod
def start_testpmd(
@@ -45,7 +127,7 @@ class TestpmdTest:
:type if1: str
:type if2: str
:type lcores_list: str
- :type nb_cores: str
+ :type nb_cores: int
:type queue_nums: str
:type jumbo_frames: bool
:type rxq_size: int
@@ -63,7 +145,7 @@ class TestpmdTest:
eal_pci_whitelist0=if_pci0,
eal_pci_whitelist1=if_pci1,
eal_in_memory=True,
- pmd_num_mbufs=16384,
+ pmd_num_mbufs=32768,
pmd_fwd_mode=u"io",
pmd_nb_ports=u"2",
pmd_portmask=u"0x3",
@@ -74,7 +156,7 @@ class TestpmdTest:
pmd_rxq=queue_nums,
pmd_txq=queue_nums,
pmd_nb_cores=nb_cores,
- pmd_disable_link_check=True,
+ pmd_disable_link_check=False,
pmd_auto_start=True,
pmd_numa=True
)
@@ -83,3 +165,18 @@ class TestpmdTest:
f"/entry/run_testpmd.sh \"{testpmd_args}\""
message = f"Failed to execute testpmd at node {node['host']}"
exec_cmd_no_error(node, command, timeout=1800, message=message)
+
+ @staticmethod
+ def check_testpmd(node):
+ """
+ Execute the testpmd check on the DUT node.
+
+ :param node: DUT node.
+ :type node: dict
+ :raises RuntimeError: If the script "check_testpmd.sh" fails.
+ """
+ if node[u"type"] == NodeType.DUT:
+ command = f"{Constants.REMOTE_FW_DIR}/{Constants.RESOURCES_LIB_SH}"\
+ f"/entry/check_testpmd.sh"
+ message = "Testpmd not started properly"
+ exec_cmd_no_error(node, command, timeout=1800, message=message)
diff --git a/resources/libraries/python/DUTSetup.py b/resources/libraries/python/DUTSetup.py
index 396029a04f..f9758c5f9f 100644
--- a/resources/libraries/python/DUTSetup.py
+++ b/resources/libraries/python/DUTSetup.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -16,8 +16,7 @@
from time import sleep
from robot.api import logger
-from resources.libraries.python.Constants import Constants
-from resources.libraries.python.ssh import SSH, exec_cmd, exec_cmd_no_error
+from resources.libraries.python.ssh import exec_cmd, exec_cmd_no_error
from resources.libraries.python.topology import NodeType, Topology
@@ -33,11 +32,12 @@ class DUTSetup:
:type node: dict
:type service: str
"""
- command = u"cat /tmp/*supervisor*.log"\
- if DUTSetup.running_in_container(node) \
- else f"journalctl --no-pager _SYSTEMD_INVOCATION_ID=$(systemctl " \
+ if DUTSetup.running_in_container(node):
+ return
+ command = (
+ f"journalctl --no-pager _SYSTEMD_INVOCATION_ID=$(systemctl "
f"show -p InvocationID --value {service})"
-
+ )
message = f"Node {node[u'host']} failed to get logs from unit {service}"
exec_cmd_no_error(
@@ -66,9 +66,10 @@ class DUTSetup:
:type node: dict
:type service: str
"""
- command = f"supervisorctl restart {service}" \
- if DUTSetup.running_in_container(node) \
- else f"service {service} restart"
+ if DUTSetup.running_in_container(node):
+ command = f"supervisorctl restart {service}"
+ else:
+ command = f"systemctl restart {service}"
message = f"Node {node[u'host']} failed to restart service {service}"
exec_cmd_no_error(
@@ -99,10 +100,10 @@ class DUTSetup:
:type node: dict
:type service: str
"""
- # TODO: change command to start once all parent function updated.
- command = f"supervisorctl restart {service}" \
- if DUTSetup.running_in_container(node) \
- else f"service {service} restart"
+ if DUTSetup.running_in_container(node):
+ command = f"supervisorctl restart {service}"
+ else:
+ command = f"systemctl restart {service}"
message = f"Node {node[u'host']} failed to start service {service}"
exec_cmd_no_error(
@@ -135,9 +136,10 @@ class DUTSetup:
"""
DUTSetup.get_service_logs(node, service)
- command = f"supervisorctl stop {service}" \
- if DUTSetup.running_in_container(node) \
- else f"service {service} stop"
+ if DUTSetup.running_in_container(node):
+ command = f"supervisorctl stop {service}"
+ else:
+ command = f"systemctl stop {service}"
message = f"Node {node[u'host']} failed to stop service {service}"
exec_cmd_no_error(
@@ -207,42 +209,25 @@ class DUTSetup:
exec_cmd_no_error(node, cmd, message=f"{program} is not installed")
@staticmethod
- def get_pid(node, process):
+ def get_pid(node, process, retries=3):
"""Get PID of running process.
:param node: DUT node.
:param process: process name.
+ :param retries: How many times to retry on failure.
:type node: dict
:type process: str
+ :type retries: int
:returns: PID
:rtype: int
:raises RuntimeError: If it is not possible to get the PID.
"""
- ssh = SSH()
- ssh.connect(node)
-
- retval = None
- for i in range(3):
- logger.trace(f"Try {i}: Get {process} PID")
- ret_code, stdout, stderr = ssh.exec_command(f"pidof {process}")
-
- if int(ret_code):
- raise RuntimeError(
- f"Not possible to get PID of {process} process on node: "
- f"{node[u'host']}\n {stdout + stderr}"
- )
-
- pid_list = stdout.split()
- if len(pid_list) == 1:
- return [int(stdout)]
- if not pid_list:
- logger.debug(f"No {process} PID found on node {node[u'host']}")
- continue
- logger.debug(f"More than one {process} PID found " \
- f"on node {node[u'host']}")
- retval = [int(pid) for pid in pid_list]
-
- return retval
+ cmd = f"pidof {process}"
+ stdout, _ = exec_cmd_no_error(
+ node, cmd, retries=retries,
+ message=f"No {process} PID found on node {node[u'host']}")
+ pid_list = stdout.split()
+ return [int(pid) for pid in pid_list]
@staticmethod
def get_vpp_pids(nodes):
@@ -260,81 +245,6 @@ class DUTSetup:
return pids
@staticmethod
- def crypto_device_verify(node, crypto_type, numvfs, force_init=False):
- """Verify if Crypto QAT device virtual functions are initialized on all
- DUTs. If parameter force initialization is set to True, then try to
- initialize or remove VFs on QAT.
-
- :param node: DUT node.
- :crypto_type: Crypto device type - HW_DH895xcc or HW_C3xxx.
- :param numvfs: Number of VFs to initialize, 0 - disable the VFs.
- :param force_init: If True then try to initialize to specific value.
- :type node: dict
- :type crypto_type: string
- :type numvfs: int
- :type force_init: bool
- :returns: nothing
- :raises RuntimeError: If QAT VFs are not created and force init is set
- to False.
- """
- pci_addr = Topology.get_cryptodev(node)
- sriov_numvfs = DUTSetup.get_sriov_numvfs(node, pci_addr)
-
- if sriov_numvfs != numvfs:
- if force_init:
- # QAT is not initialized and we want to initialize with numvfs
- DUTSetup.crypto_device_init(node, crypto_type, numvfs)
- else:
- raise RuntimeError(
- f"QAT device failed to create VFs on {node[u'host']}"
- )
-
- @staticmethod
- def crypto_device_init(node, crypto_type, numvfs):
- """Init Crypto QAT device virtual functions on DUT.
-
- :param node: DUT node.
- :crypto_type: Crypto device type - HW_DH895xcc or HW_C3xxx.
- :param numvfs: Number of VFs to initialize, 0 - disable the VFs.
- :type node: dict
- :type crypto_type: string
- :type numvfs: int
- :returns: nothing
- :raises RuntimeError: If failed to stop VPP or QAT failed to initialize.
- """
- if crypto_type == u"HW_DH895xcc":
- kernel_mod = u"qat_dh895xcc"
- kernel_drv = u"dh895xcc"
- elif crypto_type == u"HW_C3xxx":
- kernel_mod = u"qat_c3xxx"
- kernel_drv = u"c3xxx"
- else:
- raise RuntimeError(
- f"Unsupported crypto device type on {node[u'host']}"
- )
-
- pci_addr = Topology.get_cryptodev(node)
-
- # QAT device must be re-bound to kernel driver before initialization.
- DUTSetup.verify_kernel_module(node, kernel_mod, force_load=True)
-
- # Stop VPP to prevent deadlock.
- DUTSetup.stop_service(node, Constants.VPP_UNIT)
-
- current_driver = DUTSetup.get_pci_dev_driver(
- node, pci_addr.replace(u":", r"\:")
- )
- if current_driver is not None:
- DUTSetup.pci_driver_unbind(node, pci_addr)
-
- # Bind to kernel driver.
- DUTSetup.pci_driver_bind(node, pci_addr, kernel_drv)
-
- # Initialize QAT VFs.
- if numvfs > 0:
- DUTSetup.set_sriov_numvfs(node, pci_addr, numvfs)
-
- @staticmethod
def get_virtfn_pci_addr(node, pf_pci_addr, vf_id):
"""Get PCI address of Virtual Function.
@@ -388,21 +298,37 @@ class DUTSetup:
return sriov_numvfs
@staticmethod
- def set_sriov_numvfs(node, pf_pci_addr, numvfs=0):
+ def set_sriov_numvfs(node, pf_pci_addr, path="devices", numvfs=0):
"""Init or reset SR-IOV virtual functions by setting its number on PCI
device on DUT. Setting to zero removes all VFs.
:param node: DUT node.
:param pf_pci_addr: Physical Function PCI device address.
+ :param path: Either device or driver.
:param numvfs: Number of VFs to initialize, 0 - removes the VFs.
:type node: dict
:type pf_pci_addr: str
+ :type path: str
:type numvfs: int
:raises RuntimeError: Failed to create VFs on PCI.
"""
+ cmd = f"test -f /sys/bus/pci/{path}/{pf_pci_addr}/sriov_numvfs"
+ sriov_unsupported, _, _ = exec_cmd(node, cmd)
+ # if sriov_numvfs doesn't exist, then sriov_unsupported != 0
+ if int(sriov_unsupported):
+ if numvfs == 0:
+ # sriov is not supported and we want 0 VFs
+ # no need to do anything
+ return
+
+ raise RuntimeError(
+ f"Can't configure {numvfs} VFs on {pf_pci_addr} device "
+ f"on {node[u'host']} since it doesn't support SR-IOV."
+ )
+
pci = pf_pci_addr.replace(u":", r"\:")
command = f"sh -c \"echo {numvfs} | " \
- f"tee /sys/bus/pci/devices/{pci}/sriov_numvfs\""
+ f"tee /sys/bus/pci/{path}/{pci}/sriov_numvfs\""
message = f"Failed to create {numvfs} VFs on {pf_pci_addr} device " \
f"on {node[u'host']}"
@@ -430,16 +356,23 @@ class DUTSetup:
)
@staticmethod
- def pci_driver_unbind_list(node, *pci_addrs):
- """Unbind PCI devices from current driver on node.
+ def unbind_pci_devices_from_other_driver(node, driver, *pci_addrs):
+ """Unbind PCI devices from driver other than input driver on node.
:param node: DUT node.
+ :param driver: Driver to not unbind from. If None or empty string,
+ will attempt to unbind from the current driver.
:param pci_addrs: PCI device addresses.
:type node: dict
+ :type driver: str
:type pci_addrs: list
"""
for pci_addr in pci_addrs:
- DUTSetup.pci_driver_unbind(node, pci_addr)
+ cur_driver = DUTSetup.get_pci_dev_driver(node, pci_addr)
+ if not cur_driver:
+ return
+ if not driver or cur_driver != driver:
+ DUTSetup.pci_driver_unbind(node, pci_addr)
@staticmethod
def pci_driver_bind(node, pci_addr, driver):
@@ -543,61 +476,24 @@ class DUTSetup:
def get_pci_dev_driver(node, pci_addr):
"""Get current PCI device driver on node.
- .. note::
- # lspci -vmmks 0000:00:05.0
- Slot: 00:05.0
- Class: Ethernet controller
- Vendor: Red Hat, Inc
- Device: Virtio network device
- SVendor: Red Hat, Inc
- SDevice: Device 0001
- PhySlot: 5
- Driver: virtio-pci
-
:param node: DUT node.
:param pci_addr: PCI device address.
:type node: dict
:type pci_addr: str
:returns: Driver or None
- :raises RuntimeError: If PCI rescan or lspci command execution failed.
:raises RuntimeError: If it is not possible to get the interface driver
information from the node.
"""
- ssh = SSH()
- ssh.connect(node)
-
- for i in range(3):
- logger.trace(f"Try number {i}: Get PCI device driver")
-
- cmd = f"lspci -vmmks {pci_addr}"
- ret_code, stdout, _ = ssh.exec_command(cmd)
- if int(ret_code):
- raise RuntimeError(f"'{cmd}' failed on '{node[u'host']}'")
-
- for line in stdout.splitlines():
- if not line:
- continue
- name = None
- value = None
- try:
- name, value = line.split(u"\t", 1)
- except ValueError:
- if name == u"Driver:":
- return None
- if name == u"Driver:":
- return value
-
- if i < 2:
- logger.trace(
- f"Driver for PCI device {pci_addr} not found, "
- f"executing pci rescan and retrying"
- )
- cmd = u"sh -c \"echo 1 > /sys/bus/pci/rescan\""
- ret_code, _, _ = ssh.exec_command_sudo(cmd)
- if int(ret_code) != 0:
- raise RuntimeError(f"'{cmd}' failed on '{node[u'host']}'")
-
- return None
+ driver_path = f"/sys/bus/pci/devices/{pci_addr}/driver"
+ cmd = f"test -d {driver_path}"
+ ret_code, ret_val, _ = exec_cmd(node, cmd)
+ if int(ret_code):
+ # the directory doesn't exist which means the device is not bound
+ # to any driver
+ return None
+ cmd = f"basename $(readlink -f {driver_path})"
+ ret_val, _ = exec_cmd_no_error(node, cmd)
+ return ret_val.strip()
@staticmethod
def verify_kernel_module(node, module, force_load=False):
@@ -673,60 +569,6 @@ class DUTSetup:
exec_cmd_no_error(node, command, timeout=30, sudo=True, message=message)
@staticmethod
- def install_vpp_on_all_duts(nodes, vpp_pkg_dir):
- """Install VPP on all DUT nodes. Start the VPP service in case of
- systemd is not available or does not support autostart.
-
- :param nodes: Nodes in the topology.
- :param vpp_pkg_dir: Path to directory where VPP packages are stored.
- :type nodes: dict
- :type vpp_pkg_dir: str
- :raises RuntimeError: If failed to remove or install VPP.
- """
- for node in nodes.values():
- message = f"Failed to install VPP on host {node[u'host']}!"
- if node[u"type"] == NodeType.DUT:
- command = u"ln -s /dev/null /etc/sysctl.d/80-vpp.conf || true"
- exec_cmd_no_error(node, command, sudo=True)
-
- command = u". /etc/lsb-release; echo \"${DISTRIB_ID}\""
- stdout, _ = exec_cmd_no_error(node, command)
-
- if stdout.strip() == u"Ubuntu":
- exec_cmd_no_error(
- node, u"apt-get purge -y '*vpp*' || true",
- timeout=120, sudo=True
- )
- # workaround to avoid installation of vpp-api-python
- exec_cmd_no_error(
- node, u"rm -f {vpp_pkg_dir}vpp-api-python.deb",
- timeout=120, sudo=True
- )
- exec_cmd_no_error(
- node, f"dpkg -i --force-all {vpp_pkg_dir}*.deb",
- timeout=120, sudo=True, message=message
- )
- exec_cmd_no_error(node, u"dpkg -l | grep vpp", sudo=True)
- if DUTSetup.running_in_container(node):
- DUTSetup.restart_service(node, Constants.VPP_UNIT)
- else:
- exec_cmd_no_error(
- node, u"yum -y remove '*vpp*' || true",
- timeout=120, sudo=True
- )
- # workaround to avoid installation of vpp-api-python
- exec_cmd_no_error(
- node, u"rm -f {vpp_pkg_dir}vpp-api-python.rpm",
- timeout=120, sudo=True
- )
- exec_cmd_no_error(
- node, f"rpm -ivh {vpp_pkg_dir}*.rpm",
- timeout=120, sudo=True, message=message
- )
- exec_cmd_no_error(node, u"rpm -qai '*vpp*'", sudo=True)
- DUTSetup.restart_service(node, Constants.VPP_UNIT)
-
- @staticmethod
def running_in_container(node):
"""This method tests if topology node is running inside container.
@@ -736,18 +578,15 @@ class DUTSetup:
to detect.
:rtype: bool
"""
- command = u"fgrep docker /proc/1/cgroup"
- message = u"Failed to get cgroup settings."
+ command = "cat /.dockerenv"
try:
- exec_cmd_no_error(
- node, command, timeout=30, sudo=False, message=message
- )
+ exec_cmd_no_error(node, command, timeout=30)
except RuntimeError:
return False
return True
@staticmethod
- def get_docker_mergeddir(node, uuid):
+ def get_docker_mergeddir(node, uuid=None):
"""Get Docker overlay for MergedDir diff.
:param node: DUT node.
@@ -758,8 +597,15 @@ class DUTSetup:
:rtype: str
:raises RuntimeError: If getting output failed.
"""
- command = f"docker inspect " \
+ if not uuid:
+ command = 'fgrep "hostname" /proc/self/mountinfo | cut -f 4 -d" "'
+ message = "Failed to get UUID!"
+ stdout, _ = exec_cmd_no_error(node, command, message=message)
+ uuid = stdout.split(sep="/")[-2]
+ command = (
+ f"docker inspect "
f"--format='{{{{.GraphDriver.Data.MergedDir}}}}' {uuid}"
+ )
message = f"Failed to get directory of {uuid} on host {node[u'host']}"
stdout, _ = exec_cmd_no_error(node, command, sudo=True, message=message)
diff --git a/resources/libraries/python/Dhcp.py b/resources/libraries/python/Dhcp.py
index ec2c895bc3..2b4d03ec9e 100644
--- a/resources/libraries/python/Dhcp.py
+++ b/resources/libraries/python/Dhcp.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/DpdkUtil.py b/resources/libraries/python/DpdkUtil.py
index dcca73db1d..8ee0dde850 100644
--- a/resources/libraries/python/DpdkUtil.py
+++ b/resources/libraries/python/DpdkUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -37,10 +37,10 @@ class DpdkUtil:
)
# Add a PCI device in white list.
options.add_with_value_from_dict(
- u"w", u"eal_pci_whitelist0", kwargs
+ u"a", u"eal_pci_whitelist0", kwargs
)
options.add_with_value_from_dict(
- u"w", u"eal_pci_whitelist1", kwargs
+ u"a", u"eal_pci_whitelist1", kwargs
)
# Load an external driver. Multiple -d options are allowed.
options.add_with_value_if_from_dict(
@@ -126,7 +126,7 @@ class DpdkUtil:
options.add_equals_from_dict(
u"max-pkt-len", u"pmd_max_pkt_len", kwargs
)
- # Set the max packet length.
+ # Set the mbuf size.
options.add_equals_from_dict(
u"mbuf-size", u"pmd_mbuf_size", kwargs
)
@@ -161,7 +161,7 @@ class DpdkUtil:
:rtype: OptionString
"""
options = OptionString()
- options.add(u"testpmd")
+ options.add(u"dpdk-testpmd")
options.extend(DpdkUtil.get_eal_options(**kwargs))
options.add(u"--")
options.extend(DpdkUtil.get_testpmd_pmd_options(**kwargs))
@@ -219,10 +219,6 @@ class DpdkUtil:
options.add_equals_from_dict(
u"config", u"pmd_config", kwargs
)
- # Enables jumbo frames.
- options.add_if_from_dict(
- u"enable-jumbo", u"pmd_enable_jumbo", kwargs, False
- )
# Set the max packet length.
options.add_with_value_if_from_dict(
u"max-pkt-len", u"9200", u"pmd_max_pkt_len", kwargs, False
diff --git a/resources/libraries/python/DropRateSearch.py b/resources/libraries/python/DropRateSearch.py
index 49e64d9219..2417df8c41 100644
--- a/resources/libraries/python/DropRateSearch.py
+++ b/resources/libraries/python/DropRateSearch.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -426,10 +426,8 @@ class DropRateSearch(metaclass=ABCMeta):
self._search_result = SearchResults.SUCCESS
self._search_result_rate = rate
return
- else:
- raise RuntimeError(u"Unknown search result")
- else:
- raise Exception(u"Unknown search direction")
+ raise RuntimeError(u"Unknown search result")
+ raise Exception(u"Unknown search direction")
def verify_search_result(self):
"""Fail if search was not successful.
diff --git a/resources/libraries/python/FilteredLogger.py b/resources/libraries/python/FilteredLogger.py
index 3df5714837..42068ef58c 100644
--- a/resources/libraries/python/FilteredLogger.py
+++ b/resources/libraries/python/FilteredLogger.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/FlowUtil.py b/resources/libraries/python/FlowUtil.py
new file mode 100644
index 0000000000..054356b9a2
--- /dev/null
+++ b/resources/libraries/python/FlowUtil.py
@@ -0,0 +1,580 @@
+# copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+"""Flow Utilities Library."""
+
+from enum import IntEnum
+from ipaddress import ip_address
+
+from resources.libraries.python.topology import Topology
+from resources.libraries.python.ssh import exec_cmd_no_error
+from resources.libraries.python.PapiExecutor import PapiSocketExecutor
+
+class FlowType(IntEnum):
+ """Flow types."""
+ FLOW_TYPE_ETHERNET = 1
+ FLOW_TYPE_IP4 = 2
+ FLOW_TYPE_IP6 = 3
+ FLOW_TYPE_IP4_L2TPV3OIP = 4
+ FLOW_TYPE_IP4_IPSEC_ESP = 5
+ FLOW_TYPE_IP4_IPSEC_AH = 6
+ FLOW_TYPE_IP4_N_TUPLE = 7
+ FLOW_TYPE_IP6_N_TUPLE = 8
+ FLOW_TYPE_IP4_VXLAN = 11
+ FLOW_TYPE_IP6_VXLAN = 12
+ FLOW_TYPE_IP4_GTPU = 14
+
+class FlowProto(IntEnum):
+ """Flow protocols."""
+ IP_API_PROTO_TCP = 6
+ IP_API_PROTO_UDP = 17
+ IP_API_PROTO_ESP = 50
+ IP_API_PROTO_AH = 51
+ IP_API_PROTO_L2TP = 115
+
+class FlowAction(IntEnum):
+ """Flow actions."""
+ FLOW_ACTION_MARK = 2
+ FLOW_ACTION_REDIRECT_TO_QUEUE = 16
+ FLOW_ACTION_DROP = 64
+
+class FlowUtil:
+ """Utilities for flow configuration."""
+
+ @staticmethod
+ def vpp_create_ip4_n_tuple_flow(
+ node, src_ip, dst_ip, src_port, dst_port,
+ proto, action, value=0):
+ """Create IP4_N_TUPLE flow.
+
+ :param node: DUT node.
+ :param src_ip: Source IP4 address.
+ :param dst_ip: Destination IP4 address.
+ :param src_port: Source port.
+ :param dst_port: Destination port.
+ :param proto: TCP or UDP.
+ :param action: Mark, drop or redirect-to-queue.
+ :param value: Action value.
+
+ :type node: dict
+ :type src_ip: str
+ :type dst_ip: str
+ :type src_port: int
+ :type dst_port: int
+ :type proto: str
+ :type action: str
+ :type value: int
+ :returns: flow_index.
+ :rtype: int
+ """
+ flow = u"ip4_n_tuple"
+ flow_type = FlowType.FLOW_TYPE_IP4_N_TUPLE
+
+ if proto == u"TCP":
+ flow_proto = FlowProto.IP_API_PROTO_TCP
+ elif proto == u"UDP":
+ flow_proto = FlowProto.IP_API_PROTO_UDP
+ else:
+ raise ValueError(f"proto error: {proto}")
+
+ pattern = {
+ u'src_addr': {u'addr': src_ip, u'mask': u"255.255.255.255"},
+ u'dst_addr': {u'addr': dst_ip, u'mask': u"255.255.255.255"},
+ u'src_port': {u'port': src_port, u'mask': 0xFFFF},
+ u'dst_port': {u'port': dst_port, u'mask': 0xFFFF},
+ u'protocol': {u'prot': flow_proto}
+ }
+
+ flow_index = FlowUtil.vpp_flow_add(
+ node, flow, flow_type, pattern, action, value)
+
+ return flow_index
+
+ @staticmethod
+ def vpp_create_ip6_n_tuple_flow(
+ node, src_ip, dst_ip, src_port, dst_port,
+ proto, action, value=0):
+ """Create IP6_N_TUPLE flow.
+
+ :param node: DUT node.
+ :param src_ip: Source IP6 address.
+ :param dst_ip: Destination IP6 address.
+ :param src_port: Source port.
+ :param dst_port: Destination port.
+ :param proto: TCP or UDP.
+ :param action: Mark, drop or redirect-to-queue.
+ :param value: Action value.
+
+ :type node: dict
+ :type src_ip: str
+ :type dst_ip: str
+ :type src_port: int
+ :type dst_port: int
+ :type proto: str
+ :type action: str
+ :type value: int
+ :returns: flow_index.
+ :rtype: int
+ """
+ flow = u"ip6_n_tuple"
+ flow_type = FlowType.FLOW_TYPE_IP6_N_TUPLE
+
+ if proto == u"TCP":
+ flow_proto = FlowProto.IP_API_PROTO_TCP
+ elif proto == u"UDP":
+ flow_proto = FlowProto.IP_API_PROTO_UDP
+ else:
+ raise ValueError(f"proto error: {proto}")
+
+ pattern = {
+ u'src_addr': {u'addr': src_ip, \
+ u'mask': u"FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"},
+ u'dst_addr': {u'addr': dst_ip, \
+ u'mask': u"FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"},
+ u'src_port': {u'port': src_port, u'mask': 0xFFFF},
+ u'dst_port': {u'port': dst_port, u'mask': 0xFFFF},
+ u'protocol': {u'prot': flow_proto}
+ }
+
+ flow_index = FlowUtil.vpp_flow_add(
+ node, flow, flow_type, pattern, action, value)
+
+ return flow_index
+
+ @staticmethod
+ def vpp_create_ip4_flow(
+ node, src_ip, dst_ip, proto, action, value=0):
+ """Create IP4 flow.
+
+ :param node: DUT node.
+ :param src_ip: Source IP4 address.
+ :param dst_ip: Destination IP4 address.
+ :param proto: TCP or UDP.
+ :param action: Mark, drop or redirect-to-queue.
+ :param value: Action value.
+
+ :type node: dict
+ :type src_ip: str
+ :type dst_ip: str
+ :type proto: str
+ :type action: str
+ :type value: int
+ :returns: flow_index.
+ :rtype: int
+ """
+ flow = u"ip4"
+ flow_type = FlowType.FLOW_TYPE_IP4
+
+ if proto == u"TCP":
+ flow_proto = FlowProto.IP_API_PROTO_TCP
+ elif proto == u"UDP":
+ flow_proto = FlowProto.IP_API_PROTO_UDP
+ else:
+ raise ValueError(f"proto error: {proto}")
+
+ pattern = {
+ u'src_addr': {u'addr': src_ip, u'mask': u"255.255.255.255"},
+ u'dst_addr': {u'addr': dst_ip, u'mask': u"255.255.255.255"},
+ u'protocol': {u'prot': flow_proto}
+ }
+
+ flow_index = FlowUtil.vpp_flow_add(
+ node, flow, flow_type, pattern, action, value)
+
+ return flow_index
+
+ @staticmethod
+ def vpp_create_ip6_flow(
+ node, src_ip, dst_ip, proto, action, value=0):
+ """Create IP6 flow.
+
+ :param node: DUT node.
+ :param src_ip: Source IP6 address.
+ :param dst_ip: Destination IP6 address.
+ :param proto: TCP or UDP.
+ :param action: Mark, drop or redirect-to-queue.
+ :param value: Action value.
+
+ :type node: dict
+ :type src_ip: str
+ :type dst_ip: str
+ :type proto: str
+ :type action: str
+ :type value: int
+ :returns: flow_index.
+ :rtype: int
+ """
+ flow = u"ip6"
+ flow_type = FlowType.FLOW_TYPE_IP6
+
+ if proto == u"TCP":
+ flow_proto = FlowProto.IP_API_PROTO_TCP
+ elif proto == u"UDP":
+ flow_proto = FlowProto.IP_API_PROTO_UDP
+ else:
+ raise ValueError(f"proto error: {proto}")
+
+ pattern = {
+ u'src_addr': {u'addr': src_ip, \
+ u'mask': u"FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"},
+ u'dst_addr': {'addr': dst_ip, \
+ u'mask': u"FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"},
+ u'protocol': {u'prot': flow_proto}
+ }
+
+ flow_index = FlowUtil.vpp_flow_add(
+ node, flow, flow_type, pattern, action, value)
+
+ return flow_index
+
+ @staticmethod
+ def vpp_create_ip4_gtpu_flow(
+ node, src_ip, dst_ip, teid, action, value=0):
+ """Create IP4_GTPU flow.
+
+ :param node: DUT node.
+ :param src_ip: Source IP4 address.
+ :param dst_ip: Destination IP4 address.
+ :param teid: Tunnel endpoint identifier.
+ :param action: Mark, drop or redirect-to-queue.
+ :param value: Action value.
+
+ :type node: dict
+ :type src_ip: str
+ :type dst_ip: str
+ :type teid: int
+ :type action: str
+ :type value: int
+ :returns: flow_index.
+ :rtype: int
+ """
+ flow = u"ip4_gtpu"
+ flow_type = FlowType.FLOW_TYPE_IP4_GTPU
+ flow_proto = FlowProto.IP_API_PROTO_UDP
+
+ pattern = {
+ u'src_addr': {u'addr': src_ip, u'mask': u"255.255.255.255"},
+ u'dst_addr': {u'addr': dst_ip, u'mask': u"255.255.255.255"},
+ u'protocol': {u'prot': flow_proto},
+ u'teid': teid
+ }
+
+ flow_index = FlowUtil.vpp_flow_add(
+ node, flow, flow_type, pattern, action, value)
+
+ return flow_index
+
+ @staticmethod
+ def vpp_create_ip4_ipsec_flow(node, proto, spi, action, value=0):
+ """Create IP4_IPSEC flow.
+
+ :param node: DUT node.
+ :param proto: TCP or UDP.
+ :param spi: Security Parameters Index.
+ :param action: Mark, drop or redirect-to-queue.
+ :param value: Action value.
+
+ :type node: dict
+ :type proto: str
+ :type spi: int
+ :type action: str
+ :type value: int
+ :returns: flow_index.
+ :rtype: int
+ """
+ if proto == u"ESP":
+ flow = u"ip4_ipsec_esp"
+ flow_proto = FlowProto.IP_API_PROTO_ESP
+ flow_type = FlowType.FLOW_TYPE_IP4_IPSEC_ESP
+ elif proto == u"AH":
+ flow = u"ip4_ipsec_ah"
+ flow_proto = FlowProto.IP_API_PROTO_AH
+ flow_type = FlowType.FLOW_TYPE_IP4_IPSEC_AH
+ else:
+ raise ValueError(f"proto error: {proto}")
+
+ pattern = {
+ u'protocol': {u'prot': flow_proto},
+ u'spi': spi
+ }
+
+ flow_index = FlowUtil.vpp_flow_add(
+ node, flow, flow_type, pattern, action, value)
+
+ return flow_index
+
+ @staticmethod
+ def vpp_create_ip4_l2tp_flow(node, session_id, action, value=0):
+ """Create IP4_L2TPV3OIP flow.
+
+ :param node: DUT node.
+ :param session_id: PPPoE session ID
+ :param action: Mark, drop or redirect-to-queue.
+ :param value: Action value.
+
+ :type node: dict
+ :type session_id: int
+ :type action: str
+ :type value: int
+ :returns: flow_index.
+ :rtype: int
+ """
+ flow = u"ip4_l2tpv3oip"
+ flow_proto = FlowProto.IP_API_PROTO_L2TP
+ flow_type = FlowType.FLOW_TYPE_IP4_L2TPV3OIP
+
+ pattern = {
+ u'protocol': {u'prot': flow_proto},
+ u'session_id': session_id
+ }
+
+ flow_index = FlowUtil.vpp_flow_add(
+ node, flow, flow_type, pattern, action, value)
+
+ return flow_index
+
+ @staticmethod
+ def vpp_create_ip4_vxlan_flow(node, src_ip, dst_ip, vni, action, value=0):
+ """Create IP4_VXLAN flow.
+
+ :param node: DUT node.
+ :param src_ip: Source IP4 address.
+ :param dst_ip: Destination IP4 address.
+ :param vni: Virtual network instance.
+ :param action: Mark, drop or redirect-to-queue.
+ :param value: Action value.
+
+ :type node: dict
+ :type src_ip: str
+ :type dst_ip: str
+ :type vni: int
+ :type action: str
+ :type value: int
+ :returns: flow_index.
+ """
+ flow = u"ip4_vxlan"
+ flow_type = FlowType.FLOW_TYPE_IP4_VXLAN
+ flow_proto = FlowProto.IP_API_PROTO_UDP
+
+ pattern = {
+ u'src_addr': {u'addr': src_ip, u'mask': u"255.255.255.255"},
+ u'dst_addr': {u'addr': dst_ip, u'mask': u"255.255.255.255"},
+ u'dst_port': {u'port': 4789, 'mask': 0xFFFF},
+ u'protocol': {u'prot': flow_proto},
+ u'vni': vni
+ }
+
+ flow_index = FlowUtil.vpp_flow_add(
+ node, flow, flow_type, pattern, action, value)
+
+ return flow_index
+
+ @staticmethod
+ def vpp_flow_add(node, flow, flow_type, pattern, action, value=0):
+ """Flow add.
+
+ :param node: DUT node.
+ :param flow: Name of flow.
+ :param flow_type: Type of flow.
+ :param pattern: Pattern of flow.
+ :param action: Mark, drop or redirect-to-queue.
+ :param value: Action value.
+
+ :type node: dict
+ :type node: str
+ :type flow_type: str
+ :type pattern: dict
+ :type action: str
+ :type value: int
+ :returns: flow_index.
+ :rtype: int
+ :raises ValueError: If action type is not supported.
+ """
+ cmd = u"flow_add_v2"
+
+ if action == u"redirect-to-queue":
+ flow_rule = {
+ u'type': flow_type,
+ u'actions': FlowAction.FLOW_ACTION_REDIRECT_TO_QUEUE,
+ u'redirect_queue': value,
+ u'flow': {flow : pattern}
+ }
+ elif action == u"mark":
+ flow_rule = {
+ u'type': flow_type,
+ u'actions': FlowAction.FLOW_ACTION_MARK,
+ u'mark_flow_id': value,
+ u'flow': {flow : pattern}
+ }
+ elif action == u"drop":
+ flow_rule = {
+ u'type': flow_type,
+ u'actions': FlowAction.FLOW_ACTION_DROP,
+ u'flow': {flow : pattern}
+ }
+ else:
+ raise ValueError(f"Unsupported action type: {action}")
+
+ err_msg = f"Failed to create {flow} flow on host {node[u'host']}."
+ args = dict(flow=flow_rule)
+ flow_index = -1
+ with PapiSocketExecutor(node) as papi_exec:
+ reply = papi_exec.add(cmd, **args).get_reply(err_msg)
+ flow_index = reply[u"flow_index"]
+
+ return flow_index
+
+ @staticmethod
+ def vpp_flow_enable(node, interface, flow_index=0):
+ """Flow enable.
+
+ :param node: DUT node.
+ :param interface: Interface sw_if_index.
+ :param flow_index: Flow index.
+
+ :type node: dict
+ :type interface: int
+ :type flow_index: int
+ :returns: Nothing.
+ """
+ cmd = u"flow_enable"
+ sw_if_index = Topology.get_interface_sw_index(node, interface)
+ args = dict(
+ flow_index=int(flow_index),
+ hw_if_index=int(sw_if_index)
+ )
+
+ err_msg = f"Failed to enable flow on host {node[u'host']}"
+ with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
+
+ @staticmethod
+ def vpp_flow_disable(node, interface, flow_index=0):
+ """Flow disable.
+
+ :param node: DUT node.
+ :param interface: Interface sw_if_index.
+ :param flow_index: Flow index.
+
+ :type node: dict
+ :type interface: int
+ :type flow_index: int
+ :returns: Nothing.
+ """
+ cmd = u"flow_disable"
+ sw_if_index = Topology.get_interface_sw_index(node, interface)
+ args = dict(
+ flow_index=int(flow_index),
+ hw_if_index=int(sw_if_index)
+ )
+
+ err_msg = u"Failed to disable flow on host {node[u'host']}"
+ with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
+
+ @staticmethod
+ def vpp_flow_del(node, flow_index=0):
+ """Flow delete.
+
+ :param node: DUT node.
+ :param flow_index: Flow index.
+
+ :type node: dict
+ :type flow_index: int
+ :returns: Nothing.
+ """
+ cmd = u"flow_del"
+ args = dict(
+ flow_index=int(flow_index)
+ )
+
+ err_msg = u"Failed to delete flow on host {node[u'host']}"
+ with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
+
+ @staticmethod
+ def vpp_show_flow_entry(node):
+ """Show flow entry.
+
+ :param node: DUT node.
+
+ :type node: dict
+ :returns: flow entry.
+ :rtype: str
+ """
+ cmd = u"vppctl show flow entry"
+
+ err_msg = u"Failed to show flow on host {node[u'host']}"
+ stdout, _ = exec_cmd_no_error(
+ node, cmd, sudo=False, message=err_msg, retries=120
+ )
+
+ return stdout.strip()
+
+ @staticmethod
+ def vpp_verify_flow_action(
+ node, action, value,
+ src_mac=u"11:22:33:44:55:66", dst_mac=u"11:22:33:44:55:66",
+ src_ip=None, dst_ip=None):
+ """Verify the correctness of the flow action.
+
+ :param node: DUT node.
+ :param action: Action.
+ :param value: Action value.
+ :param src_mac: Source mac address.
+ :param dst_mac: Destination mac address.
+ :param src_ip: Source IP address.
+ :param dst_ip: Destination IP address.
+
+ :type node: dict
+ :type action: str
+ :type value: int
+ :type src_mac: str
+ :type dst_mac: str
+ :type src_ip: str
+ :type dst_ip: str
+ :returns: Nothing.
+ :raises RuntimeError: If the verification of flow action fails.
+ :raises ValueError: If action type is not supported.
+ """
+ err_msg = f"Failed to show trace on host {node[u'host']}"
+ cmd = u"vppctl show trace"
+ stdout, _ = exec_cmd_no_error(
+ node, cmd, sudo=False, message=err_msg, retries=120
+ )
+
+ err_info = f"Verify flow {action} failed"
+
+ if src_ip is None:
+ expected_str = f"{src_mac} -> {dst_mac}"
+ else:
+ src_ip = ip_address(src_ip)
+ dst_ip = ip_address(dst_ip)
+ expected_str = f"{src_ip} -> {dst_ip}"
+
+ if action == u"drop":
+ if expected_str in stdout:
+ raise RuntimeError(err_info)
+ elif action == u"redirect-to-queue":
+ if f"queue {value}" not in stdout \
+ and f"qid {value}" not in stdout:
+ raise RuntimeError(err_info)
+ if expected_str not in stdout:
+ raise RuntimeError(err_info)
+ elif action == u"mark":
+ if u"PKT_RX_FDIR" not in stdout and u"flow-id 1" not in stdout:
+ raise RuntimeError(err_info)
+ if expected_str not in stdout:
+ raise RuntimeError(err_info)
+ else:
+ raise ValueError(f"Unsupported action type: {action}")
diff --git a/resources/libraries/python/GeneveUtil.py b/resources/libraries/python/GeneveUtil.py
index 3c8ebeebb3..d7266f58fa 100644
--- a/resources/libraries/python/GeneveUtil.py
+++ b/resources/libraries/python/GeneveUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -18,6 +18,7 @@ from ipaddress import ip_address
from resources.libraries.python.Constants import Constants
from resources.libraries.python.InterfaceUtil import InterfaceUtil
from resources.libraries.python.IPAddress import IPAddress
+from resources.libraries.python.IPUtil import IPUtil
from resources.libraries.python.PapiExecutor import PapiSocketExecutor
from resources.libraries.python.topology import Topology
@@ -124,3 +125,72 @@ class GeneveUtil:
u"geneve_tunnel_dump",
]
PapiSocketExecutor.dump_and_log(node, cmds)
+
+ @staticmethod
+ def vpp_geneve_add_multiple_tunnels(
+ node, gen_tunnel, n_tunnels, dut_if1, dut_if2, tg_if1_ip4,
+ tg_if2_ip4, tg_pf2_mac, next_idx):
+ """Create multiple GENEVE tunnels.
+
+ :param node: DUT node.
+ :param gen_tunnel: Parameters of the GENEVE tunnel.
+ :param n_tunnels: Number of tunnels.
+ :param dut_if1: The first DUT interface.
+ :param dut_if2: The second DUT interface.
+ :param tg_if1_ip4: TG interface 1 IP address.
+ :param tg_if2_ip4: TG interface 2 IP address.
+ :param tg_pf2_mac: TG interface 2 MAC address.
+ :param next_idx: The index of the next node.
+ :type node: dict
+ :type gen_tunnel: dict
+ :type n_tunnels: int
+ :type dut_if1: str
+ :type dut_if2: str
+ :type tg_if1_ip4: str
+ :type tg_if2_ip4: str
+ :type tg_pf2_mac: str
+ :type next_idx: int
+ """
+
+ src_ip_int = IPUtil.ip_to_int(gen_tunnel[u"src_ip"])
+ dst_ip_int = IPUtil.ip_to_int(gen_tunnel[u"dst_ip"])
+ if_ip_int = IPUtil.ip_to_int(gen_tunnel[u"if_ip"])
+
+ for idx in range(n_tunnels):
+ src_ip = IPUtil.int_to_ip(src_ip_int + idx * 256)
+ dst_ip = IPUtil.int_to_ip(dst_ip_int + idx * 256)
+ if_ip = IPUtil.int_to_ip(if_ip_int + idx * 256)
+
+ IPUtil.vpp_route_add(
+ node, src_ip, gen_tunnel[u"ip_mask"],
+ gateway=tg_if1_ip4, interface=dut_if1
+ )
+ tunnel_sw_index = GeneveUtil.add_geneve_tunnel(
+ node, gen_tunnel[u"local"], gen_tunnel[u"remote"],
+ gen_tunnel[u"vni"] + idx, l3_mode=True, next_index=next_idx
+ )
+ tunnel_if_key = Topology.get_interface_by_sw_index(
+ node, tunnel_sw_index
+ )
+ tunnel_if_mac = Topology.get_interface_mac(
+ node, tunnel_if_key
+ )
+ IPUtil.vpp_interface_set_ip_address(node, tunnel_if_key, if_ip, 24)
+ IPUtil.vpp_add_ip_neighbor(
+ node, tunnel_if_key, tg_if2_ip4, tg_pf2_mac
+ )
+ IPUtil.vpp_route_add(
+ node, dst_ip, gen_tunnel[u"ip_mask"],
+ gateway=tg_if2_ip4, interface=tunnel_if_key
+ )
+ IPUtil.vpp_route_add(
+ node, gen_tunnel[u"remote"], 32,
+ gateway=tg_if2_ip4, interface=dut_if2
+ )
+ IPUtil.vpp_add_ip_neighbor(
+ node, tunnel_if_key, gen_tunnel[u"local"], tunnel_if_mac
+ )
+ IPUtil.vpp_route_add(
+ node, gen_tunnel[u"local"], 32, gateway=if_ip
+ )
+ InterfaceUtil.set_interface_state(node, tunnel_if_key, u"up")
diff --git a/resources/libraries/python/HoststackUtil.py b/resources/libraries/python/HoststackUtil.py
index c307946698..399395d41a 100644
--- a/resources/libraries/python/HoststackUtil.py
+++ b/resources/libraries/python/HoststackUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -17,9 +17,12 @@ from time import sleep
from robot.api import logger
from resources.libraries.python.Constants import Constants
-from resources.libraries.python.ssh import exec_cmd, exec_cmd_no_error
-from resources.libraries.python.PapiExecutor import PapiSocketExecutor
from resources.libraries.python.DUTSetup import DUTSetup
+from resources.libraries.python.model.ExportResult import (
+ export_hoststack_results
+)
+from resources.libraries.python.PapiExecutor import PapiSocketExecutor
+from resources.libraries.python.ssh import exec_cmd, exec_cmd_no_error
class HoststackUtil():
"""Utilities for Host Stack tests."""
@@ -35,14 +38,13 @@ class HoststackUtil():
'args' - command arguments.
:rtype: dict
"""
- # TODO: Use a python class instead of dictionary for the return type
proto = vpp_echo_attributes[u"uri_protocol"]
addr = vpp_echo_attributes[u"uri_ip4_addr"]
port = vpp_echo_attributes[u"uri_port"]
vpp_echo_cmd = {}
vpp_echo_cmd[u"name"] = u"vpp_echo"
vpp_echo_cmd[u"args"] = f"{vpp_echo_attributes[u'role']} " \
- f"socket-name {vpp_echo_attributes[u'vpp_api_socket']} " \
+ f"socket-name {vpp_echo_attributes[u'app_api_socket']} " \
f"{vpp_echo_attributes[u'json_output']} " \
f"uri {proto}://{addr}/{port} " \
f"nthreads {vpp_echo_attributes[u'nthreads']} " \
@@ -57,6 +59,8 @@ class HoststackUtil():
vpp_echo_cmd[u"args"] += u" rx-results-diff"
if vpp_echo_attributes[u"tx_results_diff"]:
vpp_echo_cmd[u"args"] += u" tx-results-diff"
+ if vpp_echo_attributes[u"use_app_socket_api"]:
+ vpp_echo_cmd[u"args"] += u" use-app-socket-api"
return vpp_echo_cmd
@staticmethod
@@ -71,7 +75,6 @@ class HoststackUtil():
'args' - command arguments.
:rtype: dict
"""
- # TODO: Use a python class instead of dictionary for the return type
iperf3_cmd = {}
iperf3_cmd[u"env_vars"] = f"VCL_CONFIG={Constants.REMOTE_FW_DIR}/" \
f"{Constants.RESOURCES_TPL_VCL}/" \
@@ -100,6 +103,13 @@ class HoststackUtil():
if u"time" in iperf3_attributes:
iperf3_cmd[u"args"] += \
f" --time {iperf3_attributes[u'time']}"
+ if iperf3_attributes[u"udp"]:
+ iperf3_cmd[u"args"] += u" --udp"
+ iperf3_cmd[u"args"] += \
+ f" --bandwidth {iperf3_attributes[u'bandwidth']}"
+ if iperf3_attributes[u"length"] > 0:
+ iperf3_cmd[u"args"] += \
+ f" --length {iperf3_attributes[u'length']}"
return iperf3_cmd
@staticmethod
@@ -146,15 +156,14 @@ class HoststackUtil():
raise
@staticmethod
- def get_hoststack_test_program_logs(node, program):
+ def _get_hoststack_test_program_logs(node, program_name):
"""Get HostStack test program stdout log.
:param node: DUT node.
- :param program: test program.
+ :param program_name: test program.
:type node: dict
- :type program: dict
+ :type program_name: str
"""
- program_name = program[u"name"]
cmd = f"sh -c \'cat /tmp/{program_name}_stdout.log\'"
stdout_log, _ = exec_cmd_no_error(node, cmd, sudo=True, \
message=f"Get {program_name} stdout log failed!")
@@ -162,9 +171,63 @@ class HoststackUtil():
cmd = f"sh -c \'cat /tmp/{program_name}_stderr.log\'"
stderr_log, _ = exec_cmd_no_error(node, cmd, sudo=True, \
message=f"Get {program_name} stderr log failed!")
+
return stdout_log, stderr_log
@staticmethod
+ def get_hoststack_test_program_logs(node, program):
+ """Get HostStack test program stdout log.
+
+ :param node: DUT node.
+ :param program: test program.
+ :type node: dict
+ :type program: dict
+ """
+ program_name = program[u"name"]
+ program_stdout_log, program_stderr_log = \
+ HoststackUtil._get_hoststack_test_program_logs(node,
+ program_name)
+ if len(program_stdout_log) == 0 and len(program_stderr_log) == 0:
+ logger.trace(f"Retrying {program_name} log retrieval")
+ program_stdout_log, program_stderr_log = \
+ HoststackUtil._get_hoststack_test_program_logs(node,
+ program_name)
+ return program_stdout_log, program_stderr_log
+
+ @staticmethod
+ def get_nginx_command(nginx_attributes, nginx_version, nginx_ins_dir):
+ """Construct the NGINX command using the specified attributes.
+
+ :param nginx_attributes: NGINX test program attributes.
+ :param nginx_version: NGINX version.
+ :param nginx_ins_dir: NGINX install dir.
+ :type nginx_attributes: dict
+ :type nginx_version: str
+ :type nginx_ins_dir: str
+ :returns: Command line components of the NGINX command
+ 'env_vars' - environment variables
+ 'name' - program name
+ 'args' - command arguments.
+ 'path' - program path.
+ :rtype: dict
+ """
+ nginx_cmd = dict()
+ nginx_cmd[u"env_vars"] = f"VCL_CONFIG={Constants.REMOTE_FW_DIR}/" \
+ f"{Constants.RESOURCES_TPL_VCL}/" \
+ f"{nginx_attributes[u'vcl_config']}"
+ if nginx_attributes[u"ld_preload"]:
+ nginx_cmd[u"env_vars"] += \
+ f" LD_PRELOAD={Constants.VCL_LDPRELOAD_LIBRARY}"
+ if nginx_attributes[u'transparent_tls']:
+ nginx_cmd[u"env_vars"] += u" LDP_ENV_TLS_TRANS=1"
+
+ nginx_cmd[u"name"] = u"nginx"
+ nginx_cmd[u"path"] = f"{nginx_ins_dir}nginx-{nginx_version}/sbin/"
+ nginx_cmd[u"args"] = f"-c {nginx_ins_dir}/" \
+ f"nginx-{nginx_version}/conf/nginx.conf"
+ return nginx_cmd
+
+ @staticmethod
def start_hoststack_test_program(node, namespace, core_list, program):
"""Start the specified HostStack test program.
@@ -194,9 +257,13 @@ class HoststackUtil():
env_vars = f"{program[u'env_vars']} " if u"env_vars" in program else u""
args = program[u"args"]
- cmd = f"nohup {shell_cmd} \'{env_vars}taskset --cpu-list {core_list} " \
- f"{program_name} {args} >/tmp/{program_name}_stdout.log " \
- f"2>/tmp/{program_name}_stderr.log &\'"
+ program_path = program.get(u"path", u"")
+ # NGINX used `worker_cpu_affinity` in configuration file
+ taskset_cmd = u"" if program_name == u"nginx" else \
+ f"taskset --cpu-list {core_list}"
+ cmd = f"nohup {shell_cmd} \'{env_vars}{taskset_cmd} " \
+ f"{program_path}{program_name} {args} >/tmp/{program_name}_" \
+ f"stdout.log 2>/tmp/{program_name}_stderr.log &\'"
try:
exec_cmd_no_error(node, cmd, sudo=True)
return DUTSetup.get_pid(node, program_name)[0]
@@ -231,22 +298,69 @@ class HoststackUtil():
exec_cmd_no_error(node, cmd, message=errmsg, sudo=True)
@staticmethod
- def hoststack_test_program_finished(node, program_pid):
+ def hoststack_test_program_finished(node, program_pid, program,
+ other_node, other_program):
"""Wait for the specified HostStack test program process to complete.
:param node: DUT node.
:param program_pid: test program pid.
+ :param program: test program
+ :param other_node: DUT node of other hoststack program
+ :param other_program: other test program
:type node: dict
:type program_pid: str
+ :type program: dict
+ :type other_node: dict
+ :type other_program: dict
:raises RuntimeError: If node subtype is not a DUT.
"""
if node[u"type"] != u"DUT":
raise RuntimeError(u"Node type is not a DUT!")
+ if other_node[u"type"] != u"DUT":
+ raise RuntimeError(u"Other node type is not a DUT!")
cmd = f"sh -c 'strace -qqe trace=none -p {program_pid}'"
- exec_cmd(node, cmd, sudo=True)
+ try:
+ exec_cmd(node, cmd, sudo=True)
+ except:
+ sleep(180)
+ if u"client" in program[u"args"]:
+ role = u"client"
+ else:
+ role = u"server"
+ program_stdout, program_stderr = \
+ HoststackUtil.get_hoststack_test_program_logs(node, program)
+ if len(program_stdout) > 0:
+ logger.debug(f"{program[u'name']} {role} stdout log:\n"
+ f"{program_stdout}")
+ else:
+ logger.debug(f"Empty {program[u'name']} {role} stdout log :(")
+ if len(program_stderr) > 0:
+ logger.debug(f"{program[u'name']} stderr log:\n"
+ f"{program_stderr}")
+ else:
+ logger.debug(f"Empty {program[u'name']} stderr log :(")
+ if u"client" in other_program[u"args"]:
+ role = u"client"
+ else:
+ role = u"server"
+ program_stdout, program_stderr = \
+ HoststackUtil.get_hoststack_test_program_logs(other_node,
+ other_program)
+ if len(program_stdout) > 0:
+ logger.debug(f"{other_program[u'name']} {role} stdout log:\n"
+ f"{program_stdout}")
+ else:
+ logger.debug(f"Empty {other_program[u'name']} "
+ f"{role} stdout log :(")
+ if len(program_stderr) > 0:
+ logger.debug(f"{other_program[u'name']} {role} stderr log:\n"
+ f"{program_stderr}")
+ else:
+ logger.debug(f"Empty {other_program[u'name']} "
+ f"{role} stderr log :(")
+ raise
# Wait a bit for stdout/stderr to be flushed to log files
- # TODO: see if sub-second sleep works e.g. sleep(0.1)
sleep(1)
@staticmethod
@@ -280,10 +394,6 @@ class HoststackUtil():
program_name = program[u"name"]
program_stdout, program_stderr = \
HoststackUtil.get_hoststack_test_program_logs(node, program)
- if len(program_stdout) == 0 and len(program_stderr) == 0:
- logger.trace(f"Retrying {program_name} log retrieval")
- program_stdout, program_stderr = \
- HoststackUtil.get_hoststack_test_program_logs(node, program)
env_vars = f"{program[u'env_vars']} " if u"env_vars" in program else u""
program_cmd = f"{env_vars}{program_name} {program[u'args']}"
@@ -303,7 +413,6 @@ class HoststackUtil():
f"bits/sec, pkt-drop-rate {nsim_attr[u'packets_per_drop']} " \
f"pkts/drop\n"
- # TODO: Incorporate show error stats into results analysis
test_results += \
f"\n{role} VPP 'show errors' on host {node[u'host']}:\n" \
f"{PapiSocketExecutor.run_cli_cmd(node, u'show error')}\n"
@@ -321,18 +430,28 @@ class HoststackUtil():
if u"JSON stats" in program_stdout and \
u'"has_failed": "0"' in program_stdout:
json_start = program_stdout.find(u"{")
- #TODO: Fix parsing once vpp_echo produces valid
- # JSON output. Truncate for now.
json_end = program_stdout.find(u',\n "closing"')
json_results = f"{program_stdout[json_start:json_end]}\n}}"
program_json = json.loads(json_results)
+ export_hoststack_results(
+ bandwidth=program_json["rx_bits_per_second"],
+ duration=float(program_json["time"])
+ )
else:
test_results += u"Invalid test data output!\n" + program_stdout
return (True, test_results)
elif program[u"name"] == u"iperf3":
test_results += program_stdout
- iperf3_json = json.loads(program_stdout)
- program_json = iperf3_json[u"intervals"][0][u"sum"]
+ program_json = json.loads(program_stdout)[u"intervals"][0][u"sum"]
+ try:
+ retransmits = program_json["retransmits"]
+ except KeyError:
+ retransmits = None
+ export_hoststack_results(
+ bandwidth=program_json["bits_per_second"],
+ duration=program_json["seconds"],
+ retransmits=retransmits
+ )
else:
test_results += u"Unknown HostStack Test Program!\n" + \
program_stdout
@@ -350,3 +469,18 @@ class HoststackUtil():
:rtype: bool
"""
return server_defer_fail and client_defer_fail
+
+ @staticmethod
+ def log_vpp_hoststack_data(node):
+ """Retrieve and log VPP HostStack data.
+
+ :param node: DUT node.
+ :type node: dict
+ :raises RuntimeError: If node subtype is not a DUT or startup failed.
+ """
+
+ if node[u"type"] != u"DUT":
+ raise RuntimeError(u"Node type is not a DUT!")
+
+ PapiSocketExecutor.run_cli_cmd(node, u"show error")
+ PapiSocketExecutor.run_cli_cmd(node, u"show interface")
diff --git a/resources/libraries/python/IPAddress.py b/resources/libraries/python/IPAddress.py
index b8a4d7443d..8f8ebbffc6 100644
--- a/resources/libraries/python/IPAddress.py
+++ b/resources/libraries/python/IPAddress.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/IPTopology.py b/resources/libraries/python/IPTopology.py
new file mode 100644
index 0000000000..3b459cd156
--- /dev/null
+++ b/resources/libraries/python/IPTopology.py
@@ -0,0 +1,177 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""IP Topology Library."""
+
+from robot.libraries.BuiltIn import BuiltIn
+
+from resources.libraries.python.IPUtil import IPUtil
+
+
+class IPTopology:
+ """IP Topology Library."""
+
+ @staticmethod
+ def initialize_ipv4_forwarding(count=1, pfs=2, route_prefix=32):
+ """
+ Custom setup of IPv4 forwarding with scalability of IP routes on all
+ DUT nodes in 2-node / 3-node circular topology.
+
+ :param count: Number of routes to configure.
+ :param pfs: Number of physical interfaces to configure.
+ :param route_prefix: Route prefix to configure.
+ :type count: int
+ :type pfs: int
+ :type route_prefix: int
+ """
+ topology = BuiltIn().get_variable_value("&{topology_info}")
+ dut = topology["duts"][-1]
+ ifl = BuiltIn().get_variable_value("${int}")
+
+ for l, i in zip(range(pfs // 2), range(1, pfs, 2)):
+ dut1_int1 = BuiltIn().get_variable_value(f"${{DUT1_{ifl}{i}}}[0]")
+ dut1_int2 = BuiltIn().get_variable_value(f"${{DUT1_{ifl}{i+1}}}[0]")
+ dut_int1 = BuiltIn().get_variable_value(f"${{{dut}_{ifl}{i}}}[0]")
+ dut_int2 = BuiltIn().get_variable_value(f"${{{dut}_{ifl}{i+1}}}[0]")
+
+ IPUtil.vpp_add_ip_neighbor(
+ topology["DUT1"], dut1_int1, f"1.{l}.1.1",
+ topology[f"TG_pf{i}_mac"][0]
+ )
+ if dut == "DUT2":
+ dut_mac1 = BuiltIn().get_variable_value(
+ f"${{{dut}_{ifl}{i}_mac}}[0]"
+ )
+ IPUtil.vpp_add_ip_neighbor(
+ topology["DUT1"], dut1_int2, f"3.{l}.3.2", dut_mac1
+ )
+ dut_mac2 = BuiltIn().get_variable_value(
+ f"${{DUT1_{ifl}{i+1}_mac}}[0]"
+ )
+ IPUtil.vpp_add_ip_neighbor(
+ topology["DUT2"], dut_int1, f"3.{l}.3.1", dut_mac2
+ )
+ IPUtil.vpp_add_ip_neighbor(
+ topology[dut], dut_int2, f"2.{l}.2.1",
+ topology[f"TG_pf{i+1}_mac"][0]
+ )
+
+ IPUtil.vpp_interface_set_ip_address(
+ topology["DUT1"], dut1_int1, f"1.{l}.1.2", 30
+ )
+ if dut == "DUT2":
+ IPUtil.vpp_interface_set_ip_address(
+ topology["DUT1"], dut1_int2, f"3.{l}.3.1", 30
+ )
+ IPUtil.vpp_interface_set_ip_address(
+ topology["DUT2"], dut_int1, f"3.{l}.3.2", 30
+ )
+ IPUtil.vpp_interface_set_ip_address(
+ topology[dut], dut_int2, f"2.{l}.2.2", 30
+ )
+
+ IPUtil.vpp_route_add(
+ topology["DUT1"], f"{i}0.0.0.0", route_prefix,
+ gateway=f"1.{l}.1.1", interface=dut1_int1, count=count
+ )
+ if dut == "DUT2":
+ IPUtil.vpp_route_add(
+ topology["DUT1"], f"{i+1}0.0.0.0", route_prefix,
+ gateway=f"3.{l}.3.2", interface=dut1_int2, count=count
+ )
+ IPUtil.vpp_route_add(
+ topology["DUT2"], f"{i}0.0.0.0", route_prefix,
+ gateway=f"3.{l}.3.1", interface=dut_int1, count=count
+ )
+ IPUtil.vpp_route_add(
+ topology[dut], f"{i+1}0.0.0.0", route_prefix,
+ gateway=f"2.{l}.2.1", interface=dut_int2, count=count
+ )
+
+
+ @staticmethod
+ def initialize_ipv6_forwarding(count=1, pfs=2, route_prefix=128):
+ """
+ Custom setup of IPv6 forwarding with scalability of IP routes on all
+ DUT nodes in 2-node / 3-node circular topology.
+
+ :param count: Number of routes to configure.
+ :param pfs: Number of physical interfaces to configure.
+ :param route_prefix: Route prefix to configure.
+ :type count: int
+ :type pfs: int
+ :type route_prefix: int
+ """
+ topology = BuiltIn().get_variable_value("&{topology_info}")
+ dut = topology["duts"][-1]
+ ifl = BuiltIn().get_variable_value("${int}")
+
+ for l, i in zip(range(pfs // 2), range(1, pfs, 2)):
+ dut1_int1 = BuiltIn().get_variable_value(f"${{DUT1_{ifl}{i}}}[0]")
+ dut1_int2 = BuiltIn().get_variable_value(f"${{DUT1_{ifl}{i+1}}}[0]")
+ dut_int1 = BuiltIn().get_variable_value(f"${{{dut}_{ifl}{i}}}[0]")
+ dut_int2 = BuiltIn().get_variable_value(f"${{{dut}_{ifl}{i+1}}}[0]")
+
+ IPUtil.vpp_add_ip_neighbor(
+ topology["DUT1"], dut1_int1, f"2001:{l}::1",
+ topology[f"TG_pf{i}_mac"][0]
+ )
+ if dut == "DUT2":
+ dut_mac1 = BuiltIn().get_variable_value(
+ f"${{{dut}_{ifl}{i}_mac}}[0]"
+ )
+ IPUtil.vpp_add_ip_neighbor(
+ topology["DUT1"], dut1_int2, f"2003:{l}::2", dut_mac1
+ )
+ dut_mac2 = BuiltIn().get_variable_value(
+ f"${{DUT1_{ifl}{i+1}_mac}}[0]"
+ )
+ IPUtil.vpp_add_ip_neighbor(
+ topology["DUT2"], dut_int1, f"2003:{l}::1", dut_mac2
+ )
+ IPUtil.vpp_add_ip_neighbor(
+ topology[dut], dut_int2, f"2002:{l}::1",
+ topology[f"TG_pf{i+1}_mac"][0]
+ )
+
+ IPUtil.vpp_interface_set_ip_address(
+ topology["DUT1"], dut1_int1, f"2001:{l}::2", 64
+ )
+ if dut == "DUT2":
+ IPUtil.vpp_interface_set_ip_address(
+ topology["DUT1"], dut1_int2, f"2003:{l}::1", 64
+ )
+ IPUtil.vpp_interface_set_ip_address(
+ topology["DUT2"], dut_int1, f"2003:{l}::2", 64
+ )
+ IPUtil.vpp_interface_set_ip_address(
+ topology[dut], dut_int2, f"2002:{l}::2", 64
+ )
+
+ IPUtil.vpp_route_add(
+ topology["DUT1"], f"2{i}00::0", route_prefix,
+ gateway=f"2001:{l}::1", interface=dut1_int1, count=count
+ )
+ if dut == "DUT2":
+ IPUtil.vpp_route_add(
+ topology["DUT1"], f"2{i+1}00::0", route_prefix,
+ gateway=f"2003:{l}::2", interface=dut1_int2, count=count
+ )
+ IPUtil.vpp_route_add(
+ topology["DUT2"], f"2{i}00::0", route_prefix,
+ gateway=f"2003:{l}::1", interface=dut_int1, count=count
+ )
+ IPUtil.vpp_route_add(
+ topology[dut], f"2{i+1}00::0", route_prefix,
+ gateway=f"2002:{l}::1", interface=dut_int2, count=count
+ )
diff --git a/resources/libraries/python/IPUtil.py b/resources/libraries/python/IPUtil.py
index 4d5753ea92..933fa34211 100644
--- a/resources/libraries/python/IPUtil.py
+++ b/resources/libraries/python/IPUtil.py
@@ -1,4 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# Copyright (c) 2023 PANTHEON.tech s.r.o.
# 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:
@@ -12,19 +13,20 @@
# limitations under the License.
"""Common IP utilities library."""
+
import re
from enum import IntEnum
-from ipaddress import ip_address
+from ipaddress import ip_address, ip_network
from resources.libraries.python.Constants import Constants
+from resources.libraries.python.IncrementUtil import ObjIncrement
from resources.libraries.python.InterfaceUtil import InterfaceUtil
from resources.libraries.python.IPAddress import IPAddress
from resources.libraries.python.PapiExecutor import PapiSocketExecutor
from resources.libraries.python.ssh import exec_cmd_no_error, exec_cmd
from resources.libraries.python.topology import Topology
-from resources.libraries.python.VatExecutor import VatTerminal
from resources.libraries.python.Namespaces import Namespaces
@@ -51,7 +53,6 @@ class FibPathType(IntEnum):
class FibPathFlags(IntEnum):
"""FIB path flags."""
FIB_PATH_FLAG_NONE = 0
- # TODO: Name too long for pylint, fix in VPP.
FIB_PATH_FLAG_RESOLVE_VIA_ATTACHED = 1
FIB_PATH_FLAG_RESOLVE_VIA_HOST = 2
@@ -67,29 +68,95 @@ class FibPathNhProto(IntEnum):
class IpDscp(IntEnum):
"""DSCP code points."""
- IP_API_DSCP_CS0 = 0,
- IP_API_DSCP_CS1 = 8,
- IP_API_DSCP_AF11 = 10,
- IP_API_DSCP_AF12 = 12,
- IP_API_DSCP_AF13 = 14,
- IP_API_DSCP_CS2 = 16,
- IP_API_DSCP_AF21 = 18,
- IP_API_DSCP_AF22 = 20,
- IP_API_DSCP_AF23 = 22,
- IP_API_DSCP_CS3 = 24,
- IP_API_DSCP_AF31 = 26,
- IP_API_DSCP_AF32 = 28,
- IP_API_DSCP_AF33 = 30,
- IP_API_DSCP_CS4 = 32,
- IP_API_DSCP_AF41 = 34,
- IP_API_DSCP_AF42 = 36,
- IP_API_DSCP_AF43 = 38,
- IP_API_DSCP_CS5 = 40,
- IP_API_DSCP_EF = 46,
- IP_API_DSCP_CS6 = 48,
+ IP_API_DSCP_CS0 = 0
+ IP_API_DSCP_CS1 = 8
+ IP_API_DSCP_AF11 = 10
+ IP_API_DSCP_AF12 = 12
+ IP_API_DSCP_AF13 = 14
+ IP_API_DSCP_CS2 = 16
+ IP_API_DSCP_AF21 = 18
+ IP_API_DSCP_AF22 = 20
+ IP_API_DSCP_AF23 = 22
+ IP_API_DSCP_CS3 = 24
+ IP_API_DSCP_AF31 = 26
+ IP_API_DSCP_AF32 = 28
+ IP_API_DSCP_AF33 = 30
+ IP_API_DSCP_CS4 = 32
+ IP_API_DSCP_AF41 = 34
+ IP_API_DSCP_AF42 = 36
+ IP_API_DSCP_AF43 = 38
+ IP_API_DSCP_CS5 = 40
+ IP_API_DSCP_EF = 46
+ IP_API_DSCP_CS6 = 48
IP_API_DSCP_CS7 = 50
+class NetworkIncrement(ObjIncrement):
+ """
+ An iterator object which accepts an IPv4Network or IPv6Network and
+ returns a new network, its address part incremented by the increment
+ number of network sizes, each time it is iterated or when inc_fmt is called.
+ The increment may be positive, negative or 0
+ (in which case the network is always the same).
+
+ Both initial and subsequent IP address can have host bits set,
+ check the initial value before creating instance if needed.
+ String formatting is configurable via constructor argument.
+ """
+ def __init__(self, initial_value, increment=1, format=u"dash"):
+ """
+ :param initial_value: The initial network. Can have host bits set.
+ :param increment: The current network will be incremented by this
+ amount of network sizes in each iteration/var_str call.
+ :param format: Type of formatting to use, "dash" or "slash" or "addr".
+ :type initial_value: Union[ipaddress.IPv4Network, ipaddress.IPv6Network]
+ :type increment: int
+ :type format: str
+ """
+ super().__init__(initial_value, increment)
+ self._prefix_len = self._value.prefixlen
+ host_len = self._value.max_prefixlen - self._prefix_len
+ self._net_increment = self._increment * (1 << host_len)
+ self._format = str(format).lower()
+
+ def _incr(self):
+ """
+ Increment the network, e.g.:
+ '30.0.0.0/24' incremented by 1 (the next network) is '30.0.1.0/24'.
+ '30.0.0.0/24' incremented by 2 is '30.0.2.0/24'.
+ """
+ self._value = ip_network(
+ f"{self._value.network_address + self._net_increment}"
+ f"/{self._prefix_len}", strict=False
+ )
+
+ def _str_fmt(self):
+ """
+ The string representation of the network depends on format.
+
+ Dash format is '<ip_address_start> - <ip_address_stop>',
+ useful for 'ipsec policy add spd' CLI.
+
+ Slash format is '<ip_address_start>/<prefix_length>',
+ useful for other CLI.
+
+ Addr format is '<ip_address_start>', useful for PAPI.
+
+ :returns: Current value converted to string according to format.
+ :rtype: str
+ :raises RuntimeError: If the format is not supported.
+ """
+ if self._format == u"dash":
+ return f"{self._value.network_address} - " \
+ f"{self._value.broadcast_address}"
+ elif self._format == u"slash":
+ return f"{self._value.network_address}/{self._prefix_len}"
+ elif self._format == u"addr":
+ return f"{self._value.network_address}"
+
+ raise RuntimeError(f"Unsupported format {self._format}")
+
+
class IPUtil:
"""Common IP utilities"""
@@ -147,9 +214,6 @@ class IPUtil:
with PapiSocketExecutor(node) as papi_exec:
details = papi_exec.add(cmd, **args).get_details(err_msg)
- # TODO: CSIT currently looks only whether the list is empty.
- # Add proper value processing if values become important.
-
return details
@staticmethod
@@ -411,8 +475,6 @@ class IPUtil:
:type namespace: str
:raises RuntimeError: IP could not be deleted.
"""
- # TODO: Refactor command execution in namespaces into central
- # methods (e.g. Namespace.exec_cmd_in_namespace)
if namespace is not None:
cmd = f"ip netns exec {namespace} ip addr del " \
f"{ip_addr}/{prefix_length} dev {interface}"
@@ -436,7 +498,7 @@ class IPUtil:
:type ip_addr: str
:type prefix_length: int
:type namespace: str
- :rtype boolean
+ :rtype: boolean
:raises RuntimeError: Request fails.
"""
ip_addr_with_prefix = f"{ip_addr}/{prefix_length}"
@@ -588,10 +650,10 @@ class IPUtil:
vrf: VRF table ID. (int)
count: number of IP addresses to add starting from network IP (int)
local: The route is local with same prefix (increment is 1).
- If None, then is not used. (bool)
+ If None, then is not used. (bool)
lookup_vrf: VRF table ID for lookup. (int)
- multipath: Enable multipath routing. (bool)
weight: Weight value for unequal cost multipath routing. (int)
+ (Multipath value enters at higher level.)
:type node: dict
:type network: str
@@ -646,68 +708,52 @@ class IPUtil:
return route
@staticmethod
- def vpp_route_add(node, network, prefix_len, **kwargs):
- """Add route to the VPP node.
+ def vpp_route_add(node, network, prefix_len, strict=True, **kwargs):
+ """Add route to the VPP node. Prefer multipath behavior.
:param node: VPP node.
:param network: Route destination network address.
:param prefix_len: Route destination network prefix length.
+ :param strict: If true, fail if address has host bits set.
:param kwargs: Optional key-value arguments:
gateway: Route gateway address. (str)
interface: Route interface. (str)
vrf: VRF table ID. (int)
count: number of IP addresses to add starting from network IP (int)
- local: The route is local with same prefix (increment is 1).
- If None, then is not used. (bool)
+ local: The route is local with same prefix (increment is 1 network)
+ If None, then is not used. (bool)
lookup_vrf: VRF table ID for lookup. (int)
- multipath: Enable multipath routing. (bool)
+ multipath: Enable multipath routing. (bool) Default: True.
weight: Weight value for unequal cost multipath routing. (int)
:type node: dict
:type network: str
:type prefix_len: int
+ :type strict: bool
:type kwargs: dict
+ :raises RuntimeError: If the argument combination is not supported.
"""
count = kwargs.get(u"count", 1)
- if count > 100:
- gateway = kwargs.get(u"gateway", '')
- interface = kwargs.get(u"interface", '')
- vrf = kwargs.get(u"vrf", None)
- multipath = kwargs.get(u"multipath", False)
-
- with VatTerminal(node, json_param=False) as vat:
-
- vat.vat_terminal_exec_cmd_from_template(
- u"vpp_route_add.vat",
- network=network,
- prefix_length=prefix_len,
- via=f"via {gateway}" if gateway else u"",
- sw_if_index=f"sw_if_index "
- f"{InterfaceUtil.get_interface_index(node, interface)}"
- if interface else u"",
- vrf=f"vrf {vrf}" if vrf else u"",
- count=f"count {count}" if count else u"",
- multipath=u"multipath" if multipath else u""
- )
- return
-
- net_addr = ip_address(network)
cmd = u"ip_route_add_del"
args = dict(
is_add=True,
- is_multipath=kwargs.get(u"multipath", False),
+ is_multipath=kwargs.get(u"multipath", True),
route=None
)
err_msg = f"Failed to add route(s) on host {node[u'host']}"
- with PapiSocketExecutor(node) as papi_exec:
- for i in range(kwargs.get(u"count", 1)):
+ netiter = NetworkIncrement(
+ ip_network(f"{network}/{prefix_len}", strict=strict),
+ format=u"addr"
+ )
+ with PapiSocketExecutor(node, is_async=True) as papi_exec:
+ for i in range(count):
args[u"route"] = IPUtil.compose_vpp_route_structure(
- node, net_addr + i, prefix_len, **kwargs
+ node, netiter.inc_fmt(), prefix_len, **kwargs
)
- history = bool(not 1 < i < kwargs.get(u"count", 1))
+ history = bool(not 0 < i < count - 1)
papi_exec.add(cmd, history=history, **args)
papi_exec.get_replies(err_msg)
diff --git a/resources/libraries/python/IPsecUtil.py b/resources/libraries/python/IPsecUtil.py
index 3c3997ab53..02c3889594 100644
--- a/resources/libraries/python/IPsecUtil.py
+++ b/resources/libraries/python/IPsecUtil.py
@@ -1,4 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
# 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:
@@ -13,27 +14,36 @@
"""IPsec utilities library."""
-import os
-
from enum import Enum, IntEnum
from io import open
+from ipaddress import ip_network, ip_address
from random import choice
from string import ascii_letters
-from ipaddress import ip_network, ip_address
+from robot.libraries.BuiltIn import BuiltIn
from resources.libraries.python.Constants import Constants
-from resources.libraries.python.InterfaceUtil import InterfaceUtil, \
- InterfaceStatusFlags
+from resources.libraries.python.IncrementUtil import ObjIncrement
+from resources.libraries.python.InterfaceUtil import (
+ InterfaceUtil,
+ InterfaceStatusFlags,
+)
from resources.libraries.python.IPAddress import IPAddress
-from resources.libraries.python.IPUtil import IPUtil, IpDscp, MPLS_LABEL_INVALID
+from resources.libraries.python.IPUtil import (
+ IPUtil,
+ IpDscp,
+ MPLS_LABEL_INVALID,
+ NetworkIncrement,
+)
from resources.libraries.python.PapiExecutor import PapiSocketExecutor
from resources.libraries.python.ssh import scp_node
-from resources.libraries.python.topology import Topology
-from resources.libraries.python.VatExecutor import VatExecutor
+from resources.libraries.python.topology import Topology, NodeType
+from resources.libraries.python.VPPUtil import VPPUtil
+from resources.libraries.python.FlowUtil import FlowUtil
-IPSEC_UDP_PORT_NONE = 0xffff
+IPSEC_UDP_PORT_DEFAULT = 4500
+IPSEC_REPLAY_WINDOW_DEFAULT = 64
def gen_key(length):
@@ -44,28 +54,36 @@ def gen_key(length):
:returns: The generated payload.
:rtype: bytes
"""
- return u"".join(
- choice(ascii_letters) for _ in range(length)
- ).encode(encoding=u"utf-8")
+ return "".join(choice(ascii_letters) for _ in range(length)).encode(
+ encoding="utf-8"
+ )
class PolicyAction(Enum):
"""Policy actions."""
- BYPASS = (u"bypass", 0)
- DISCARD = (u"discard", 1)
- PROTECT = (u"protect", 3)
+
+ BYPASS = ("bypass", 0)
+ DISCARD = ("discard", 1)
+ PROTECT = ("protect", 3)
def __init__(self, policy_name, policy_int_repr):
self.policy_name = policy_name
self.policy_int_repr = policy_int_repr
+ def __str__(self):
+ return self.policy_name
+
+ def __int__(self):
+ return self.policy_int_repr
+
class CryptoAlg(Enum):
"""Encryption algorithms."""
- AES_CBC_128 = (u"aes-cbc-128", 1, u"AES-CBC", 16)
- AES_CBC_256 = (u"aes-cbc-256", 3, u"AES-CBC", 32)
- AES_GCM_128 = (u"aes-gcm-128", 7, u"AES-GCM", 16)
- AES_GCM_256 = (u"aes-gcm-256", 9, u"AES-GCM", 32)
+
+ AES_CBC_128 = ("aes-cbc-128", 1, "AES-CBC", 16)
+ AES_CBC_256 = ("aes-cbc-256", 3, "AES-CBC", 32)
+ AES_GCM_128 = ("aes-gcm-128", 7, "AES-GCM", 16)
+ AES_GCM_256 = ("aes-gcm-256", 9, "AES-GCM", 32)
def __init__(self, alg_name, alg_int_repr, scapy_name, key_len):
self.alg_name = alg_name
@@ -76,8 +94,9 @@ class CryptoAlg(Enum):
class IntegAlg(Enum):
"""Integrity algorithm."""
- SHA_256_128 = (u"sha-256-128", 4, u"SHA2-256-128", 32)
- SHA_512_256 = (u"sha-512-256", 6, u"SHA2-512-256", 64)
+
+ SHA_256_128 = ("sha-256-128", 4, "SHA2-256-128", 32)
+ SHA_512_256 = ("sha-512-256", 6, "SHA2-512-256", 64)
def __init__(self, alg_name, alg_int_repr, scapy_name, key_len):
self.alg_name = alg_name
@@ -88,30 +107,33 @@ class IntegAlg(Enum):
class IPsecProto(IntEnum):
"""IPsec protocol."""
+
IPSEC_API_PROTO_ESP = 50
IPSEC_API_PROTO_AH = 51
class IPsecSadFlags(IntEnum):
"""IPsec Security Association Database flags."""
- IPSEC_API_SAD_FLAG_NONE = 0,
+
+ IPSEC_API_SAD_FLAG_NONE = 0
# Enable extended sequence numbers
- IPSEC_API_SAD_FLAG_USE_ESN = 0x01,
+ IPSEC_API_SAD_FLAG_USE_ESN = 0x01
# Enable Anti - replay
- IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY = 0x02,
+ IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY = 0x02
# IPsec tunnel mode if non-zero, else transport mode
- IPSEC_API_SAD_FLAG_IS_TUNNEL = 0x04,
+ IPSEC_API_SAD_FLAG_IS_TUNNEL = 0x04
# IPsec tunnel mode is IPv6 if non-zero, else IPv4 tunnel
# only valid if is_tunnel is non-zero
- IPSEC_API_SAD_FLAG_IS_TUNNEL_V6 = 0x08,
+ IPSEC_API_SAD_FLAG_IS_TUNNEL_V6 = 0x08
# Enable UDP encapsulation for NAT traversal
- IPSEC_API_SAD_FLAG_UDP_ENCAP = 0x10,
+ IPSEC_API_SAD_FLAG_UDP_ENCAP = 0x10
# IPsec SA is or inbound traffic
IPSEC_API_SAD_FLAG_IS_INBOUND = 0x40
class TunnelEncpaDecapFlags(IntEnum):
"""Flags controlling tunnel behaviour."""
+
TUNNEL_API_ENCAP_DECAP_FLAG_NONE = 0
# at encap, copy the DF bit of the payload into the tunnel header
TUNNEL_API_ENCAP_DECAP_FLAG_ENCAP_COPY_DF = 1
@@ -127,6 +149,7 @@ class TunnelEncpaDecapFlags(IntEnum):
class TunnelMode(IntEnum):
"""Tunnel modes."""
+
# point-to-point
TUNNEL_API_MODE_P2P = 0
# multi-point
@@ -243,12 +266,14 @@ class IPsecUtil:
def get_integ_alg_key_len(integ_alg):
"""Return integrity algorithm key length.
+ None argument is accepted, returning zero.
+
:param integ_alg: Integrity algorithm.
- :type integ_alg: IntegAlg
+ :type integ_alg: Optional[IntegAlg]
:returns: Key length.
:rtype: int
"""
- return integ_alg.key_len
+ return 0 if integ_alg is None else integ_alg.key_len
@staticmethod
def get_integ_alg_scapy_name(integ_alg):
@@ -292,12 +317,9 @@ class IPsecUtil:
:raises RuntimeError: If failed to select IPsec backend or if no API
reply received.
"""
- cmd = u"ipsec_select_backend"
+ cmd = "ipsec_select_backend"
err_msg = f"Failed to select IPsec backend on host {node[u'host']}"
- args = dict(
- protocol=protocol,
- index=index
- )
+ args = dict(protocol=protocol, index=index)
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
@@ -305,6 +327,8 @@ class IPsecUtil:
def vpp_ipsec_set_async_mode(node, async_enable=1):
"""Set IPsec async mode on|off.
+ Unconditionally, attempt to switch crypto dispatch into polling mode.
+
:param node: VPP node to set IPsec async mode.
:param async_enable: Async mode on or off.
:type node: dict
@@ -312,18 +336,90 @@ class IPsecUtil:
:raises RuntimeError: If failed to set IPsec async mode or if no API
reply received.
"""
- cmd = u"ipsec_set_async_mode"
- err_msg = f"Failed to set IPsec async mode on host {node[u'host']}"
- args = dict(
- async_enable=async_enable
- )
with PapiSocketExecutor(node) as papi_exec:
+ cmd = "ipsec_set_async_mode"
+ err_msg = f"Failed to set IPsec async mode on host {node[u'host']}"
+ args = dict(async_enable=async_enable)
papi_exec.add(cmd, **args).get_reply(err_msg)
+ cmd = "crypto_set_async_dispatch_v2"
+ err_msg = "Failed to set dispatch mode."
+ args = dict(mode=0, adaptive=False)
+ try:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
+ except (AttributeError, RuntimeError):
+ # Expected when VPP build does not have the _v2 yet
+ # (after and before the first CRC check).
+ # TODO: Fail here when testing of pre-23.10 builds is over.
+ pass
+
+ @staticmethod
+ def vpp_ipsec_crypto_sw_scheduler_set_worker(
+ node, workers, crypto_enable=False
+ ):
+ """Enable or disable crypto on specific vpp worker threads.
+
+ :param node: VPP node to enable or disable crypto for worker threads.
+ :param workers: List of VPP thread numbers.
+ :param crypto_enable: Disable or enable crypto work.
+ :type node: dict
+ :type workers: Iterable[int]
+ :type crypto_enable: bool
+ :raises RuntimeError: If failed to enable or disable crypto for worker
+ thread or if no API reply received.
+ """
+ for worker in workers:
+ cmd = "crypto_sw_scheduler_set_worker"
+ err_msg = (
+ f"Failed to disable/enable crypto for worker thread "
+ f"on host {node[u'host']}"
+ )
+ args = dict(worker_index=worker - 1, crypto_enable=crypto_enable)
+ with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
+
+ @staticmethod
+ def vpp_ipsec_crypto_sw_scheduler_set_worker_on_all_duts(
+ nodes, crypto_enable=False
+ ):
+ """Enable or disable crypto on specific vpp worker threads.
+
+ :param node: VPP node to enable or disable crypto for worker threads.
+ :param crypto_enable: Disable or enable crypto work.
+ :type node: dict
+ :type crypto_enable: bool
+ :raises RuntimeError: If failed to enable or disable crypto for worker
+ thread or if no API reply received.
+ """
+ for node_name, node in nodes.items():
+ if node["type"] == NodeType.DUT:
+ thread_data = VPPUtil.vpp_show_threads(node)
+ worker_cnt = len(thread_data) - 1
+ if not worker_cnt:
+ return None
+ worker_ids = list()
+ workers = BuiltIn().get_variable_value(
+ f"${{{node_name}_cpu_dp}}"
+ )
+ for item in thread_data:
+ if str(item.cpu_id) in workers.split(","):
+ worker_ids.append(item.id)
+
+ IPsecUtil.vpp_ipsec_crypto_sw_scheduler_set_worker(
+ node, workers=worker_ids, crypto_enable=crypto_enable
+ )
@staticmethod
def vpp_ipsec_add_sad_entry(
- node, sad_id, spi, crypto_alg, crypto_key, integ_alg=None,
- integ_key=u"", tunnel_src=None, tunnel_dst=None):
+ node,
+ sad_id,
+ spi,
+ crypto_alg,
+ crypto_key,
+ integ_alg=None,
+ integ_key="",
+ tunnel_src=None,
+ tunnel_dst=None,
+ ):
"""Create Security Association Database entry on the VPP node.
:param node: VPP node to add SAD entry on.
@@ -342,23 +438,17 @@ class IPsecUtil:
:type spi: int
:type crypto_alg: CryptoAlg
:type crypto_key: str
- :type integ_alg: IntegAlg
+ :type integ_alg: Optional[IntegAlg]
:type integ_key: str
:type tunnel_src: str
:type tunnel_dst: str
"""
if isinstance(crypto_key, str):
- crypto_key = crypto_key.encode(encoding=u"utf-8")
+ crypto_key = crypto_key.encode(encoding="utf-8")
if isinstance(integ_key, str):
- integ_key = integ_key.encode(encoding=u"utf-8")
- ckey = dict(
- length=len(crypto_key),
- data=crypto_key
- )
- ikey = dict(
- length=len(integ_key),
- data=integ_key if integ_key else 0
- )
+ integ_key = integ_key.encode(encoding="utf-8")
+ ckey = dict(length=len(crypto_key), data=crypto_key)
+ ikey = dict(length=len(integ_key), data=integ_key if integ_key else 0)
flags = int(IPsecSadFlags.IPSEC_API_SAD_FLAG_NONE)
if tunnel_src and tunnel_dst:
@@ -366,15 +456,18 @@ class IPsecUtil:
src_addr = ip_address(tunnel_src)
dst_addr = ip_address(tunnel_dst)
if src_addr.version == 6:
- flags = \
- flags | int(IPsecSadFlags.IPSEC_API_SAD_FLAG_IS_TUNNEL_V6)
+ flags = flags | int(
+ IPsecSadFlags.IPSEC_API_SAD_FLAG_IS_TUNNEL_V6
+ )
else:
- src_addr = u""
- dst_addr = u""
+ src_addr = ""
+ dst_addr = ""
- cmd = u"ipsec_sad_entry_add_del"
- err_msg = f"Failed to add Security Association Database entry " \
+ cmd = "ipsec_sad_entry_add_v2"
+ err_msg = (
+ f"Failed to add Security Association Database entry "
f"on host {node[u'host']}"
+ )
sad_entry = dict(
sad_id=int(sad_id),
spi=int(spi),
@@ -383,23 +476,38 @@ class IPsecUtil:
integrity_algorithm=integ_alg.alg_int_repr if integ_alg else 0,
integrity_key=ikey,
flags=flags,
- tunnel_src=str(src_addr),
- tunnel_dst=str(dst_addr),
+ tunnel=dict(
+ src=str(src_addr),
+ dst=str(dst_addr),
+ table_id=0,
+ encap_decap_flags=int(
+ TunnelEncpaDecapFlags.TUNNEL_API_ENCAP_DECAP_FLAG_NONE
+ ),
+ dscp=int(IpDscp.IP_API_DSCP_CS0),
+ ),
protocol=int(IPsecProto.IPSEC_API_PROTO_ESP),
- udp_src_port=4500, # default value in api
- udp_dst_port=4500 # default value in api
- )
- args = dict(
- is_add=True,
- entry=sad_entry
+ udp_src_port=IPSEC_UDP_PORT_DEFAULT,
+ udp_dst_port=IPSEC_UDP_PORT_DEFAULT,
+ anti_replay_window_size=IPSEC_REPLAY_WINDOW_DEFAULT,
)
+ args = dict(entry=sad_entry)
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
@staticmethod
def vpp_ipsec_add_sad_entries(
- node, n_entries, sad_id, spi, crypto_alg, crypto_key,
- integ_alg=None, integ_key=u"", tunnel_src=None, tunnel_dst=None):
+ node,
+ n_entries,
+ sad_id,
+ spi,
+ crypto_alg,
+ crypto_key,
+ integ_alg=None,
+ integ_key="",
+ tunnel_src=None,
+ tunnel_dst=None,
+ tunnel_addr_incr=True,
+ ):
"""Create multiple Security Association Database entries on VPP node.
:param node: VPP node to add SAD entry on.
@@ -416,63 +524,40 @@ class IPsecUtil:
specified ESP transport mode is used.
:param tunnel_dst: Tunnel header destination IPv4 or IPv6 address. If
not specified ESP transport mode is used.
+ :param tunnel_addr_incr: Enable or disable tunnel IP address
+ incremental step.
:type node: dict
:type n_entries: int
:type sad_id: int
:type spi: int
:type crypto_alg: CryptoAlg
:type crypto_key: str
- :type integ_alg: IntegAlg
+ :type integ_alg: Optional[IntegAlg]
:type integ_key: str
:type tunnel_src: str
:type tunnel_dst: str
+ :type tunnel_addr_incr: bool
"""
if isinstance(crypto_key, str):
- crypto_key = crypto_key.encode(encoding=u"utf-8")
+ crypto_key = crypto_key.encode(encoding="utf-8")
if isinstance(integ_key, str):
- integ_key = integ_key.encode(encoding=u"utf-8")
+ integ_key = integ_key.encode(encoding="utf-8")
if tunnel_src and tunnel_dst:
src_addr = ip_address(tunnel_src)
dst_addr = ip_address(tunnel_dst)
else:
- src_addr = u""
- dst_addr = u""
-
- addr_incr = 1 << (128 - 96) if src_addr.version == 6 \
- else 1 << (32 - 24)
+ src_addr = ""
+ dst_addr = ""
- if int(n_entries) > 10:
- tmp_filename = f"/tmp/ipsec_sad_{sad_id}_add_del_entry.script"
-
- with open(tmp_filename, 'w') as tmp_file:
- for i in range(n_entries):
- integ = f"integ-alg {integ_alg.alg_name} " \
- f"integ-key {integ_key.hex()}" \
- if integ_alg else u""
- tunnel = f"tunnel-src {src_addr + i * addr_incr} " \
- f"tunnel-dst {dst_addr + i * addr_incr}" \
- if tunnel_src and tunnel_dst else u""
- conf = f"exec ipsec sa add {sad_id + i} esp spi {spi + i} "\
- f"crypto-alg {crypto_alg.alg_name} " \
- f"crypto-key {crypto_key.hex()} " \
- f"{integ} {tunnel}\n"
- tmp_file.write(conf)
- vat = VatExecutor()
- vat.execute_script(
- tmp_filename, node, timeout=300, json_out=False,
- copy_on_execute=True
+ if tunnel_addr_incr:
+ addr_incr = (
+ 1 << (128 - 96) if src_addr.version == 6 else 1 << (32 - 24)
)
- os.remove(tmp_filename)
- return
+ else:
+ addr_incr = 0
- ckey = dict(
- length=len(crypto_key),
- data=crypto_key
- )
- ikey = dict(
- length=len(integ_key),
- data=integ_key if integ_key else 0
- )
+ ckey = dict(length=len(crypto_key), data=crypto_key)
+ ikey = dict(length=len(integ_key), data=integ_key if integ_key else 0)
flags = int(IPsecSadFlags.IPSEC_API_SAD_FLAG_NONE)
if tunnel_src and tunnel_dst:
@@ -482,9 +567,11 @@ class IPsecUtil:
IPsecSadFlags.IPSEC_API_SAD_FLAG_IS_TUNNEL_V6
)
- cmd = u"ipsec_sad_entry_add_del"
- err_msg = f"Failed to add Security Association Database entry " \
+ cmd = "ipsec_sad_entry_add_v2"
+ err_msg = (
+ f"Failed to add Security Association Database entry "
f"on host {node[u'host']}"
+ )
sad_entry = dict(
sad_id=int(sad_id),
@@ -494,32 +581,50 @@ class IPsecUtil:
integrity_algorithm=integ_alg.alg_int_repr if integ_alg else 0,
integrity_key=ikey,
flags=flags,
- tunnel_src=str(src_addr),
- tunnel_dst=str(dst_addr),
+ tunnel=dict(
+ src=str(src_addr),
+ dst=str(dst_addr),
+ table_id=0,
+ encap_decap_flags=int(
+ TunnelEncpaDecapFlags.TUNNEL_API_ENCAP_DECAP_FLAG_NONE
+ ),
+ dscp=int(IpDscp.IP_API_DSCP_CS0),
+ ),
protocol=int(IPsecProto.IPSEC_API_PROTO_ESP),
- udp_src_port=4500, # default value in api
- udp_dst_port=4500 # default value in api
- )
- args = dict(
- is_add=True,
- entry=sad_entry
+ udp_src_port=IPSEC_UDP_PORT_DEFAULT,
+ udp_dst_port=IPSEC_UDP_PORT_DEFAULT,
+ anti_replay_window_size=IPSEC_REPLAY_WINDOW_DEFAULT,
)
- with PapiSocketExecutor(node) as papi_exec:
+ args = dict(entry=sad_entry)
+ with PapiSocketExecutor(node, is_async=True) as papi_exec:
for i in range(n_entries):
- args[u"entry"][u"sad_id"] = int(sad_id) + i
- args[u"entry"][u"spi"] = int(spi) + i
- args[u"entry"][u"tunnel_src"] = str(src_addr + i * addr_incr) \
- if tunnel_src and tunnel_dst else src_addr
- args[u"entry"][u"tunnel_dst"] = str(dst_addr + i * addr_incr) \
- if tunnel_src and tunnel_dst else dst_addr
+ args["entry"]["sad_id"] = int(sad_id) + i
+ args["entry"]["spi"] = int(spi) + i
+ args["entry"]["tunnel"]["src"] = (
+ str(src_addr + i * addr_incr)
+ if tunnel_src and tunnel_dst
+ else src_addr
+ )
+ args["entry"]["tunnel"]["dst"] = (
+ str(dst_addr + i * addr_incr)
+ if tunnel_src and tunnel_dst
+ else dst_addr
+ )
history = bool(not 1 < i < n_entries - 2)
papi_exec.add(cmd, history=history, **args)
papi_exec.get_replies(err_msg)
@staticmethod
def vpp_ipsec_set_ip_route(
- node, n_tunnels, tunnel_src, traffic_addr, tunnel_dst, interface,
- raddr_range):
+ node,
+ n_tunnels,
+ tunnel_src,
+ traffic_addr,
+ tunnel_dst,
+ interface,
+ raddr_range,
+ dst_mac=None,
+ ):
"""Set IP address and route on interface.
:param node: VPP node to add config on.
@@ -531,6 +636,7 @@ class IPsecUtil:
:param raddr_range: Mask specifying range of Policy selector Remote IP
addresses. Valid values are from 1 to 32 in case of IPv4 and to 128
in case of IPv6.
+ :param dst_mac: The MAC address of destination tunnels.
:type node: dict
:type n_tunnels: int
:type tunnel_src: str
@@ -538,61 +644,76 @@ class IPsecUtil:
:type tunnel_dst: str
:type interface: str
:type raddr_range: int
+ :type dst_mac: str
"""
tunnel_src = ip_address(tunnel_src)
tunnel_dst = ip_address(tunnel_dst)
traffic_addr = ip_address(traffic_addr)
- addr_incr = 1 << (128 - raddr_range) if tunnel_src.version == 6 \
+ tunnel_dst_prefix = 128 if tunnel_dst.version == 6 else 32
+ addr_incr = (
+ 1 << (128 - raddr_range)
+ if tunnel_src.version == 6
else 1 << (32 - raddr_range)
+ )
- if int(n_tunnels) > 10:
- tmp_filename = u"/tmp/ipsec_set_ip.script"
-
- with open(tmp_filename, 'w') as tmp_file:
- if_name = Topology.get_interface_name(node, interface)
- for i in range(n_tunnels):
- conf = f"exec set interface ip address {if_name} " \
- f"{tunnel_src + i * addr_incr}/{raddr_range}\n" \
- f"exec ip route add {traffic_addr + i}/" \
- f"{128 if traffic_addr.version == 6 else 32} " \
- f"via {tunnel_dst + i * addr_incr} {if_name}\n"
- tmp_file.write(conf)
- VatExecutor().execute_script(
- tmp_filename, node, timeout=300, json_out=False,
- copy_on_execute=True
- )
- os.remove(tmp_filename)
- return
-
- cmd1 = u"sw_interface_add_del_address"
+ cmd1 = "sw_interface_add_del_address"
args1 = dict(
sw_if_index=InterfaceUtil.get_interface_index(node, interface),
is_add=True,
del_all=False,
- prefix=None
+ prefix=None,
)
- cmd2 = u"ip_route_add_del"
- args2 = dict(
- is_add=1,
- is_multipath=0,
- route=None
+ cmd2 = "ip_route_add_del"
+ args2 = dict(is_add=1, is_multipath=0, route=None)
+ cmd3 = "ip_neighbor_add_del"
+ args3 = dict(
+ is_add=True,
+ neighbor=dict(
+ sw_if_index=Topology.get_interface_sw_index(node, interface),
+ flags=0,
+ mac_address=str(dst_mac),
+ ip_address=None,
+ ),
)
- err_msg = f"Failed to configure IP addresses and IP routes " \
+ err_msg = (
+ f"Failed to configure IP addresses, IP routes and "
+ f"IP neighbor on interface {interface} on host {node[u'host']}"
+ if dst_mac
+ else f"Failed to configure IP addresses and IP routes "
f"on interface {interface} on host {node[u'host']}"
+ )
- with PapiSocketExecutor(node) as papi_exec:
+ with PapiSocketExecutor(node, is_async=True) as papi_exec:
for i in range(n_tunnels):
- args1[u"prefix"] = IPUtil.create_prefix_object(
+ tunnel_dst_addr = tunnel_dst + i * addr_incr
+ args1["prefix"] = IPUtil.create_prefix_object(
tunnel_src + i * addr_incr, raddr_range
)
- args2[u"route"] = IPUtil.compose_vpp_route_structure(
- node, traffic_addr + i,
- prefix_len=128 if traffic_addr.version == 6 else 32,
- interface=interface, gateway=tunnel_dst + i * addr_incr
+ args2["route"] = IPUtil.compose_vpp_route_structure(
+ node,
+ traffic_addr + i,
+ prefix_len=tunnel_dst_prefix,
+ interface=interface,
+ gateway=tunnel_dst_addr,
)
history = bool(not 1 < i < n_tunnels - 2)
- papi_exec.add(cmd1, history=history, **args1).\
- add(cmd2, history=history, **args2)
+ papi_exec.add(cmd1, history=history, **args1)
+ papi_exec.add(cmd2, history=history, **args2)
+
+ args2["route"] = IPUtil.compose_vpp_route_structure(
+ node,
+ tunnel_dst_addr,
+ prefix_len=tunnel_dst_prefix,
+ interface=interface,
+ gateway=tunnel_dst_addr,
+ )
+ papi_exec.add(cmd2, history=history, **args2)
+
+ if dst_mac:
+ args3["neighbor"]["ip_address"] = ip_address(
+ tunnel_dst_addr
+ )
+ papi_exec.add(cmd3, history=history, **args3)
papi_exec.get_replies(err_msg)
@staticmethod
@@ -604,13 +725,12 @@ class IPsecUtil:
:type node: dict
:type spd_id: int
"""
- cmd = u"ipsec_spd_add_del"
- err_msg = f"Failed to add Security Policy Database " \
+ cmd = "ipsec_spd_add_del"
+ err_msg = (
+ f"Failed to add Security Policy Database "
f"on host {node[u'host']}"
- args = dict(
- is_add=True,
- spd_id=int(spd_id)
)
+ args = dict(is_add=True, spd_id=int(spd_id))
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
@@ -625,406 +745,424 @@ class IPsecUtil:
:type spd_id: int
:type interface: str or int
"""
- cmd = u"ipsec_interface_add_del_spd"
- err_msg = f"Failed to add interface {interface} to Security Policy " \
+ cmd = "ipsec_interface_add_del_spd"
+ err_msg = (
+ f"Failed to add interface {interface} to Security Policy "
f"Database {spd_id} on host {node[u'host']}"
+ )
args = dict(
is_add=True,
sw_if_index=InterfaceUtil.get_interface_index(node, interface),
- spd_id=int(spd_id)
+ spd_id=int(spd_id),
)
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
@staticmethod
- def vpp_ipsec_policy_add(
- node, spd_id, priority, action, inbound=True, sa_id=None,
- laddr_range=None, raddr_range=None, proto=None, lport_range=None,
- rport_range=None, is_ipv6=False):
- """Create Security Policy Database entry on the VPP node.
+ def vpp_ipsec_create_spds_match_nth_entry(
+ node,
+ dir1_interface,
+ dir2_interface,
+ entry_amount,
+ local_addr_range,
+ remote_addr_range,
+ action=PolicyAction.BYPASS,
+ inbound=False,
+ bidirectional=True,
+ ):
+ """Create one matching SPD entry for inbound or outbound traffic on
+ a DUT for each traffic direction and also create entry_amount - 1
+ non-matching SPD entries. Create a Security Policy Database on each
+ outbound interface where these entries will be configured.
+ The matching SPD entry will have the lowest priority, input action and
+ will be configured to match the IP flow. The non-matching entries will
+ be the same, except with higher priority and non-matching IP flows.
+
+ Action Protect is currently not supported.
+
+ :param node: VPP node to configured the SPDs and their entries.
+ :param dir1_interface: The interface in direction 1 where the entries
+ will be checked.
+ :param dir2_interface: The interface in direction 2 where the entries
+ will be checked.
+ :param entry_amount: The number of SPD entries to configure. If
+ entry_amount == 1, no non-matching entries will be configured.
+ :param local_addr_range: Matching local address range in direction 1
+ in format IP/prefix or IP/mask. If no mask is provided, it's
+ considered to be /32.
+ :param remote_addr_range: Matching remote address range in
+ direction 1 in format IP/prefix or IP/mask. If no mask is
+ provided, it's considered to be /32.
+ :param action: Policy action.
+ :param inbound: If True policy is for inbound traffic, otherwise
+ outbound.
+ :param bidirectional: When True, will create SPDs in both directions
+ of traffic. When False, only in one direction.
+ :type node: dict
+ :type dir1_interface: Union[string, int]
+ :type dir2_interface: Union[string, int]
+ :type entry_amount: int
+ :type local_addr_range:
+ Union[string, ipaddress.IPv4Address, ipaddress.IPv6Address]
+ :type remote_addr_range:
+ Union[string, ipaddress.IPv4Address, ipaddress.IPv6Address]
+ :type action: IPsecUtil.PolicyAction
+ :type inbound: bool
+ :type bidirectional: bool
+ :raises NotImplementedError: When the action is PolicyAction.PROTECT.
+ """
- :param node: VPP node to add SPD entry on.
+ if action == PolicyAction.PROTECT:
+ raise NotImplementedError("Policy action PROTECT is not supported.")
+
+ spd_id_dir1 = 1
+ spd_id_dir2 = 2
+ matching_priority = 1
+
+ IPsecUtil.vpp_ipsec_add_spd(node, spd_id_dir1)
+ IPsecUtil.vpp_ipsec_spd_add_if(node, spd_id_dir1, dir1_interface)
+ # matching entry direction 1
+ IPsecUtil.vpp_ipsec_add_spd_entry(
+ node,
+ spd_id_dir1,
+ matching_priority,
+ action,
+ inbound=inbound,
+ laddr_range=local_addr_range,
+ raddr_range=remote_addr_range,
+ )
+
+ if bidirectional:
+ IPsecUtil.vpp_ipsec_add_spd(node, spd_id_dir2)
+ IPsecUtil.vpp_ipsec_spd_add_if(node, spd_id_dir2, dir2_interface)
+
+ # matching entry direction 2, the address ranges are switched
+ IPsecUtil.vpp_ipsec_add_spd_entry(
+ node,
+ spd_id_dir2,
+ matching_priority,
+ action,
+ inbound=inbound,
+ laddr_range=remote_addr_range,
+ raddr_range=local_addr_range,
+ )
+
+ # non-matching entries
+ no_match_entry_amount = entry_amount - 1
+ if no_match_entry_amount > 0:
+ # create a NetworkIncrement representation of the network,
+ # then skip the matching network
+ no_match_local_addr_range = NetworkIncrement(
+ ip_network(local_addr_range)
+ )
+ next(no_match_local_addr_range)
+
+ no_match_remote_addr_range = NetworkIncrement(
+ ip_network(remote_addr_range)
+ )
+ next(no_match_remote_addr_range)
+
+ # non-matching entries direction 1
+ IPsecUtil.vpp_ipsec_add_spd_entries(
+ node,
+ no_match_entry_amount,
+ spd_id_dir1,
+ ObjIncrement(matching_priority + 1, 1),
+ action,
+ inbound=inbound,
+ laddr_range=no_match_local_addr_range,
+ raddr_range=no_match_remote_addr_range,
+ )
+
+ if bidirectional:
+ # reset the networks so that we're using a unified config
+ # the address ranges are switched
+ no_match_remote_addr_range = NetworkIncrement(
+ ip_network(local_addr_range)
+ )
+ next(no_match_remote_addr_range)
+
+ no_match_local_addr_range = NetworkIncrement(
+ ip_network(remote_addr_range)
+ )
+ next(no_match_local_addr_range)
+ # non-matching entries direction 2
+ IPsecUtil.vpp_ipsec_add_spd_entries(
+ node,
+ no_match_entry_amount,
+ spd_id_dir2,
+ ObjIncrement(matching_priority + 1, 1),
+ action,
+ inbound=inbound,
+ laddr_range=no_match_local_addr_range,
+ raddr_range=no_match_remote_addr_range,
+ )
+
+ IPsecUtil.vpp_ipsec_show_all(node)
+
+ @staticmethod
+ def _vpp_ipsec_add_spd_entry_internal(
+ executor,
+ spd_id,
+ priority,
+ action,
+ inbound=True,
+ sa_id=None,
+ proto=None,
+ laddr_range=None,
+ raddr_range=None,
+ lport_range=None,
+ rport_range=None,
+ is_ipv6=False,
+ ):
+ """Prepare to create Security Policy Database entry on the VPP node.
+
+ This just adds one more command to the executor.
+ The call site shall get replies once all entries are added,
+ to get speed benefit from async PAPI.
+
+ :param executor: Open PAPI executor (async handling) to add commands to.
:param spd_id: SPD ID to add entry on.
:param priority: SPD entry priority, higher number = higher priority.
:param action: Policy action.
:param inbound: If True policy is for inbound traffic, otherwise
outbound.
- :param sa_id: SAD entry ID for protect action.
- :param laddr_range: Policy selector local IPv4 or IPv6 address range in
- format IP/prefix or IP/mask. If no mask is provided,
+ :param sa_id: SAD entry ID for action PolicyAction.PROTECT.
+ :param proto: Policy selector next layer protocol number.
+ :param laddr_range: Policy selector local IPv4 or IPv6 address range
+ in format IP/prefix or IP/mask. If no mask is provided,
it's considered to be /32.
- :param raddr_range: Policy selector remote IPv4 or IPv6 address range in
- format IP/prefix or IP/mask. If no mask is provided,
+ :param raddr_range: Policy selector remote IPv4 or IPv6 address range
+ in format IP/prefix or IP/mask. If no mask is provided,
it's considered to be /32.
- :param proto: Policy selector next layer protocol number.
:param lport_range: Policy selector local TCP/UDP port range in format
<port_start>-<port_end>.
:param rport_range: Policy selector remote TCP/UDP port range in format
<port_start>-<port_end>.
:param is_ipv6: True in case of IPv6 policy when IPv6 address range is
not defined so it will default to address ::/0, otherwise False.
- :type node: dict
+ :type executor: PapiSocketExecutor
:type spd_id: int
:type priority: int
- :type action: PolicyAction
+ :type action: IPsecUtil.PolicyAction
:type inbound: bool
:type sa_id: int
+ :type proto: int
:type laddr_range: string
:type raddr_range: string
- :type proto: int
:type lport_range: string
:type rport_range: string
:type is_ipv6: bool
"""
if laddr_range is None:
- laddr_range = u"::/0" if is_ipv6 else u"0.0.0.0/0"
+ laddr_range = "::/0" if is_ipv6 else "0.0.0.0/0"
if raddr_range is None:
- raddr_range = u"::/0" if is_ipv6 else u"0.0.0.0/0"
+ raddr_range = "::/0" if is_ipv6 else "0.0.0.0/0"
- cmd = u"ipsec_spd_entry_add_del"
- err_msg = f"Failed to add entry to Security Policy Database {spd_id} " \
- f"on host {node[u'host']}"
+ local_net = ip_network(laddr_range, strict=False)
+ remote_net = ip_network(raddr_range, strict=False)
+
+ cmd = "ipsec_spd_entry_add_del_v2"
spd_entry = dict(
spd_id=int(spd_id),
priority=int(priority),
is_outbound=not inbound,
sa_id=int(sa_id) if sa_id else 0,
- policy=action.policy_int_repr,
- protocol=int(proto) if proto else 0,
+ policy=int(action),
+ protocol=255 if proto is None else int(proto),
remote_address_start=IPAddress.create_ip_address_object(
- ip_network(raddr_range, strict=False).network_address
+ remote_net.network_address
),
remote_address_stop=IPAddress.create_ip_address_object(
- ip_network(raddr_range, strict=False).broadcast_address
+ remote_net.broadcast_address
),
local_address_start=IPAddress.create_ip_address_object(
- ip_network(laddr_range, strict=False).network_address
+ local_net.network_address
),
local_address_stop=IPAddress.create_ip_address_object(
- ip_network(laddr_range, strict=False).broadcast_address
+ local_net.broadcast_address
+ ),
+ remote_port_start=(
+ int(rport_range.split("-")[0]) if rport_range else 0
+ ),
+ remote_port_stop=(
+ int(rport_range.split("-")[1]) if rport_range else 65535
+ ),
+ local_port_start=(
+ int(lport_range.split("-")[0]) if lport_range else 0
+ ),
+ local_port_stop=(
+ int(lport_range.split("-")[1]) if rport_range else 65535
),
- remote_port_start=int(rport_range.split(u"-")[0]) if rport_range
- else 0,
- remote_port_stop=int(rport_range.split(u"-")[1]) if rport_range
- else 65535,
- local_port_start=int(lport_range.split(u"-")[0]) if lport_range
- else 0,
- local_port_stop=int(lport_range.split(u"-")[1]) if rport_range
- else 65535
- )
- args = dict(
- is_add=True,
- entry=spd_entry
)
- with PapiSocketExecutor(node) as papi_exec:
- papi_exec.add(cmd, **args).get_reply(err_msg)
+ args = dict(is_add=True, entry=spd_entry)
+ executor.add(cmd, **args)
@staticmethod
- def vpp_ipsec_spd_add_entries(
- node, n_entries, spd_id, priority, inbound, sa_id, raddr_ip,
- raddr_range=0):
- """Create multiple Security Policy Database entries on the VPP node.
+ def vpp_ipsec_add_spd_entry(
+ node,
+ spd_id,
+ priority,
+ action,
+ inbound=True,
+ sa_id=None,
+ proto=None,
+ laddr_range=None,
+ raddr_range=None,
+ lport_range=None,
+ rport_range=None,
+ is_ipv6=False,
+ ):
+ """Create Security Policy Database entry on the VPP node.
- :param node: VPP node to add SPD entries on.
- :param n_entries: Number of SPD entries to be added.
- :param spd_id: SPD ID to add entries on.
- :param priority: SPD entries priority, higher number = higher priority.
+ :param node: VPP node to add SPD entry on.
+ :param spd_id: SPD ID to add entry on.
+ :param priority: SPD entry priority, higher number = higher priority.
+ :param action: Policy action.
:param inbound: If True policy is for inbound traffic, otherwise
outbound.
- :param sa_id: SAD entry ID for first entry. Each subsequent entry will
- SAD entry ID incremented by 1.
- :param raddr_ip: Policy selector remote IPv4 start address for the first
- entry. Remote IPv4 end address will be calculated depending on
- raddr_range parameter. Each subsequent entry will have start address
- next after IPv4 end address of previous entry.
- :param raddr_range: Required IP addres range.
+ :param sa_id: SAD entry ID for action PolicyAction.PROTECT.
+ :param proto: Policy selector next layer protocol number.
+ :param laddr_range: Policy selector local IPv4 or IPv6 address range
+ in format IP/prefix or IP/mask. If no mask is provided,
+ it's considered to be /32.
+ :param raddr_range: Policy selector remote IPv4 or IPv6 address range
+ in format IP/prefix or IP/mask. If no mask is provided,
+ it's considered to be /32.
+ :param lport_range: Policy selector local TCP/UDP port range in format
+ <port_start>-<port_end>.
+ :param rport_range: Policy selector remote TCP/UDP port range in format
+ <port_start>-<port_end>.
+ :param is_ipv6: True in case of IPv6 policy when IPv6 address range is
+ not defined so it will default to address ::/0, otherwise False.
:type node: dict
- :type n_entries: int
:type spd_id: int
:type priority: int
+ :type action: IPsecUtil.PolicyAction
:type inbound: bool
:type sa_id: int
- :type raddr_ip: str
- :type raddr_range: int
+ :type proto: int
+ :type laddr_range: string
+ :type raddr_range: string
+ :type lport_range: string
+ :type rport_range: string
+ :type is_ipv6: bool
"""
- raddr_ip = ip_address(raddr_ip)
- if int(n_entries) > 10:
- tmp_filename = f"/tmp/ipsec_spd_{sa_id}_add_del_entry.script"
-
- with open(tmp_filename, 'w') as tmp_file:
- for i in range(n_entries):
- direction = u'inbound' if inbound else u'outbound'
- tunnel = f"exec ipsec policy add spd {spd_id} " \
- f"priority {priority} {direction} " \
- f"action protect sa {sa_id+i} " \
- f"remote-ip-range {raddr_ip + i * (raddr_range + 1)} " \
- f"- {raddr_ip + (i + 1) * raddr_range + i} " \
- f"local-ip-range 0.0.0.0 - 255.255.255.255\n"
- tmp_file.write(tunnel)
- VatExecutor().execute_script(
- tmp_filename, node, timeout=300, json_out=False,
- copy_on_execute=True
- )
- os.remove(tmp_filename)
- return
-
- laddr_range = u"::/0" if raddr_ip.version == 6 else u"0.0.0.0/0"
-
- cmd = u"ipsec_spd_entry_add_del"
- err_msg = f"ailed to add entry to Security Policy Database '{spd_id} " \
- f"on host {node[u'host']}"
-
- spd_entry = dict(
- spd_id=int(spd_id),
- priority=int(priority),
- is_outbound=not inbound,
- sa_id=int(sa_id) if sa_id else 0,
- policy=getattr(PolicyAction.PROTECT, u"policy_int_repr"),
- protocol=0,
- remote_address_start=IPAddress.create_ip_address_object(raddr_ip),
- remote_address_stop=IPAddress.create_ip_address_object(raddr_ip),
- local_address_start=IPAddress.create_ip_address_object(
- ip_network(laddr_range, strict=False).network_address
- ),
- local_address_stop=IPAddress.create_ip_address_object(
- ip_network(laddr_range, strict=False).broadcast_address
- ),
- remote_port_start=0,
- remote_port_stop=65535,
- local_port_start=0,
- local_port_stop=65535
+ err_msg = (
+ f"Failed to add entry to Security Policy Database "
+ f"{spd_id} on host {node[u'host']}"
)
- args = dict(
- is_add=True,
- entry=spd_entry
- )
-
- with PapiSocketExecutor(node) as papi_exec:
- for i in range(n_entries):
- args[u"entry"][u"remote_address_start"][u"un"] = \
- IPAddress.union_addr(raddr_ip + i)
- args[u"entry"][u"remote_address_stop"][u"un"] = \
- IPAddress.union_addr(raddr_ip + i)
- history = bool(not 1 < i < n_entries - 2)
- papi_exec.add(cmd, history=history, **args)
+ with PapiSocketExecutor(node, is_async=True) as papi_exec:
+ IPsecUtil._vpp_ipsec_add_spd_entry_internal(
+ papi_exec,
+ spd_id,
+ priority,
+ action,
+ inbound,
+ sa_id,
+ proto,
+ laddr_range,
+ raddr_range,
+ lport_range,
+ rport_range,
+ is_ipv6,
+ )
papi_exec.get_replies(err_msg)
@staticmethod
- def _ipsec_create_tunnel_interfaces_dut1_vat(
- nodes, tun_ips, if1_key, if2_key, n_tunnels, crypto_alg, integ_alg,
- raddr_ip2, addr_incr, spi_d, existing_tunnels=0):
- """Create multiple IPsec tunnel interfaces on DUT1 node using VAT.
-
- :param nodes: VPP nodes to create tunnel interfaces.
- :param tun_ips: Dictionary with VPP node 1 ipsec tunnel interface
- IPv4/IPv6 address (ip1) and VPP node 2 ipsec tunnel interface
- IPv4/IPv6 address (ip2).
- :param if1_key: VPP node 1 interface key from topology file.
- :param if2_key: VPP node 2 / TG node (in case of 2-node topology)
- interface key from topology file.
- :param n_tunnels: Number of tunnel interfaces to be there at the end.
- :param crypto_alg: The encryption algorithm name.
- :param integ_alg: The integrity algorithm name.
- :param raddr_ip2: Policy selector remote IPv4/IPv6 start address for the
- first tunnel in direction node2->node1.
- :param spi_d: Dictionary with SPIs for VPP node 1 and VPP node 2.
- :param addr_incr: IP / IPv6 address incremental step.
- :param existing_tunnels: Number of tunnel interfaces before creation.
- Useful mainly for reconf tests. Default 0.
- :type nodes: dict
- :type tun_ips: dict
- :type if1_key: str
- :type if2_key: str
- :type n_tunnels: int
- :type crypto_alg: CryptoAlg
- :type integ_alg: IntegAlg
- :type raddr_ip2: IPv4Address or IPv6Address
- :type addr_incr: int
- :type spi_d: dict
- :type existing_tunnels: int
- """
- tmp_fn1 = u"/tmp/ipsec_create_tunnel_dut1.config"
- if1_n = Topology.get_interface_name(nodes[u"DUT1"], if1_key)
-
- ckeys = [bytes()] * existing_tunnels
- ikeys = [bytes()] * existing_tunnels
-
- vat = VatExecutor()
- with open(tmp_fn1, u"w") as tmp_f1:
- rmac = Topology.get_interface_mac(nodes[u"DUT2"], if2_key) \
- if u"DUT2" in nodes.keys() \
- else Topology.get_interface_mac(nodes[u"TG"], if2_key)
- if not existing_tunnels:
- tmp_f1.write(
- f"exec create loopback interface\n"
- f"exec set interface state loop0 up\n"
- f"exec set interface ip address {if1_n} "
- f"{tun_ips[u'ip2'] - 1}/"
- f"{len(tun_ips[u'ip2'].packed)*8*3//4}\n"
- f"exec set ip neighbor {if1_n} {tun_ips[u'ip2']} {rmac} "
- f"static\n"
- )
- for i in range(existing_tunnels, n_tunnels):
- ckeys.append(
- gen_key(IPsecUtil.get_crypto_alg_key_len(crypto_alg))
- )
- if integ_alg:
- ikeys.append(
- gen_key(IPsecUtil.get_integ_alg_key_len(integ_alg))
- )
- integ = f"integ-alg {integ_alg.alg_name} " \
- f"integ-key {ikeys[i].hex()} "
- else:
- integ = u""
- tmp_f1.write(
- f"exec set interface ip address loop0 "
- f"{tun_ips[u'ip1'] + i * addr_incr}/32\n"
- f"exec create ipip tunnel "
- f"src {tun_ips[u'ip1'] + i * addr_incr} "
- f"dst {tun_ips[u'ip2']} "
- f"p2p\n"
- f"exec ipsec sa add {i} "
- f"spi {spi_d[u'spi_1'] + i} "
- f"crypto-alg {crypto_alg.alg_name} "
- f"crypto-key {ckeys[i].hex()} "
- f"{integ}"
- f"esp\n"
- f"exec ipsec sa add {100000 + i} "
- f"spi {spi_d[u'spi_2'] + i} "
- f"crypto-alg {crypto_alg.alg_name} "
- f"crypto-key {ckeys[i].hex()} "
- f"{integ}"
- f"esp\n"
- f"exec ipsec tunnel protect ipip{i} "
- f"sa-out {i} "
- f"sa-in {100000 + i} "
- f"add\n"
- )
- vat.execute_script(
- tmp_fn1, nodes[u"DUT1"], timeout=1800, json_out=False,
- copy_on_execute=True,
- history=bool(n_tunnels < 100)
- )
- os.remove(tmp_fn1)
-
- with open(tmp_fn1, 'w') as tmp_f1:
- for i in range(existing_tunnels, n_tunnels):
- tmp_f1.write(
- f"exec set interface unnumbered ipip{i} use {if1_n}\n"
- f"exec set interface state ipip{i} up\n"
- f"exec ip route add "
- f"{raddr_ip2 + i}/{len(raddr_ip2.packed)*8} "
- f"via ipip{i}\n"
- )
- vat.execute_script(
- tmp_fn1, nodes[u"DUT1"], timeout=1800, json_out=False,
- copy_on_execute=True,
- history=bool(n_tunnels < 100)
- )
- os.remove(tmp_fn1)
-
- return ckeys, ikeys
-
- @staticmethod
- def _ipsec_create_tunnel_interfaces_dut2_vat(
- nodes, tun_ips, if2_key, n_tunnels, crypto_alg, ckeys, integ_alg,
- ikeys, raddr_ip1, addr_incr, spi_d, existing_tunnels=0):
- """Create multiple IPsec tunnel interfaces on DUT2 node using VAT.
+ def vpp_ipsec_add_spd_entries(
+ node,
+ n_entries,
+ spd_id,
+ priority,
+ action,
+ inbound,
+ sa_id=None,
+ proto=None,
+ laddr_range=None,
+ raddr_range=None,
+ lport_range=None,
+ rport_range=None,
+ is_ipv6=False,
+ ):
+ """Create multiple Security Policy Database entries on the VPP node.
- :param nodes: VPP nodes to create tunnel interfaces.
- :param tun_ips: Dictionary with VPP node 1 ipsec tunnel interface
- IPv4/IPv6 address (ip1) and VPP node 2 ipsec tunnel interface
- IPv4/IPv6 address (ip2).
- :param if2_key: VPP node 2 / TG node (in case of 2-node topology)
- interface key from topology file.
- :param n_tunnels: Number of tunnel interfaces to be there at the end.
- :param crypto_alg: The encryption algorithm name.
- :param ckeys: List of encryption keys.
- :param integ_alg: The integrity algorithm name.
- :param ikeys: List of integrity keys.
- :param spi_d: Dictionary with SPIs for VPP node 1 and VPP node 2.
- :param addr_incr: IP / IPv6 address incremental step.
- :param existing_tunnels: Number of tunnel interfaces before creation.
- Useful mainly for reconf tests. Default 0.
- :type nodes: dict
- :type tun_ips: dict
- :type if2_key: str
- :type n_tunnels: int
- :type crypto_alg: CryptoAlg
- :type ckeys: list
- :type integ_alg: IntegAlg
- :type ikeys: list
- :type addr_incr: int
- :type spi_d: dict
- :type existing_tunnels: int
+ :param node: VPP node to add SPD entries on.
+ :param n_entries: Number of SPD entries to be added.
+ :param spd_id: SPD ID to add entries on.
+ :param priority: SPD entries priority, higher number = higher priority.
+ :param action: Policy action.
+ :param inbound: If True policy is for inbound traffic, otherwise
+ outbound.
+ :param sa_id: SAD entry ID for action PolicyAction.PROTECT.
+ :param proto: Policy selector next layer protocol number.
+ :param laddr_range: Policy selector local IPv4 or IPv6 address range
+ in format IP/prefix or IP/mask. If no mask is provided,
+ it's considered to be /32.
+ :param raddr_range: Policy selector remote IPv4 or IPv6 address range
+ in format IP/prefix or IP/mask. If no mask is provided,
+ it's considered to be /32.
+ :param lport_range: Policy selector local TCP/UDP port range in format
+ <port_start>-<port_end>.
+ :param rport_range: Policy selector remote TCP/UDP port range in format
+ <port_start>-<port_end>.
+ :param is_ipv6: True in case of IPv6 policy when IPv6 address range is
+ not defined so it will default to address ::/0, otherwise False.
+ :type node: dict
+ :type n_entries: int
+ :type spd_id: int
+ :type priority: IPsecUtil.ObjIncrement
+ :type action: IPsecUtil.PolicyAction
+ :type inbound: bool
+ :type sa_id: IPsecUtil.ObjIncrement
+ :type proto: int
+ :type laddr_range: IPsecUtil.NetworkIncrement
+ :type raddr_range: IPsecUtil.NetworkIncrement
+ :type lport_range: string
+ :type rport_range: string
+ :type is_ipv6: bool
"""
- tmp_fn2 = u"/tmp/ipsec_create_tunnel_dut2.config"
- if2_n = Topology.get_interface_name(nodes[u"DUT2"], if2_key)
+ if laddr_range is None:
+ laddr_range = "::/0" if is_ipv6 else "0.0.0.0/0"
+ laddr_range = NetworkIncrement(ip_network(laddr_range), 0)
- vat = VatExecutor()
- with open(tmp_fn2, 'w') as tmp_f2:
- if not existing_tunnels:
- tmp_f2.write(
- f"exec set interface ip address {if2_n}"
- f" {tun_ips[u'ip2']}/{len(tun_ips[u'ip2'].packed)*8*3/4}\n"
- )
- for i in range(existing_tunnels, n_tunnels):
- if integ_alg:
- integ = f"integ-alg {integ_alg.alg_name} " \
- f"integ-key {ikeys[i].hex()} "
- else:
- integ = u""
- tmp_f2.write(
- f"exec create ipip tunnel "
- f"src {tun_ips[u'ip2']} "
- f"dst {tun_ips[u'ip1'] + i * addr_incr} "
- f"p2p\n"
- f"exec ipsec sa add {100000 + i} "
- f"spi {spi_d[u'spi_2'] + i} "
- f"crypto-alg {crypto_alg.alg_name} "
- f"crypto-key {ckeys[i].hex()} "
- f"{integ}"
- f"esp\n"
- f"exec ipsec sa add {i} "
- f"spi {spi_d[u'spi_1'] + i} "
- f"crypto-alg {crypto_alg.alg_name} "
- f"crypto-key {ckeys[i].hex()} "
- f"{integ}"
- f"esp\n"
- f"exec ipsec tunnel protect ipip{i} "
- f"sa-out {100000 + i} "
- f"sa-in {i} "
- f"add\n"
- )
- vat.execute_script(
- tmp_fn2, nodes[u"DUT2"], timeout=1800, json_out=False,
- copy_on_execute=True,
- history=bool(n_tunnels < 100)
+ if raddr_range is None:
+ raddr_range = "::/0" if is_ipv6 else "0.0.0.0/0"
+ raddr_range = NetworkIncrement(ip_network(raddr_range), 0)
+
+ lport_range_start = 0
+ lport_range_stop = 65535
+ if lport_range:
+ lport_range_start, lport_range_stop = lport_range.split("-")
+
+ rport_range_start = 0
+ rport_range_stop = 65535
+ if rport_range:
+ rport_range_start, rport_range_stop = rport_range.split("-")
+
+ err_msg = (
+ f"Failed to add entry to Security Policy Database "
+ f"{spd_id} on host {node[u'host']}"
)
- os.remove(tmp_fn2)
-
- with open(tmp_fn2, 'w') as tmp_f2:
- if not existing_tunnels:
- tmp_f2.write(
- f"exec ip route add {tun_ips[u'ip1']}/8 "
- f"via {tun_ips[u'ip2'] - 1} {if2_n}\n"
- )
- for i in range(existing_tunnels, n_tunnels):
- tmp_f2.write(
- f"exec set interface unnumbered ipip{i} use {if2_n}\n"
- f"exec set interface state ipip{i} up\n"
- f"exec ip route add "
- f"{raddr_ip1 + i}/{len(raddr_ip1.packed)*8} "
- f"via ipip{i}\n"
+ with PapiSocketExecutor(node, is_async=True) as papi_exec:
+ for _ in range(n_entries):
+ IPsecUtil._vpp_ipsec_add_spd_entry_internal(
+ papi_exec,
+ spd_id,
+ next(priority),
+ action,
+ inbound,
+ next(sa_id) if sa_id is not None else sa_id,
+ proto,
+ next(laddr_range),
+ next(raddr_range),
+ lport_range,
+ rport_range,
+ is_ipv6,
)
- vat.execute_script(
- tmp_fn2, nodes[u"DUT2"], timeout=1800, json_out=False,
- copy_on_execute=True,
- history=bool(n_tunnels < 100)
- )
- os.remove(tmp_fn2)
+ papi_exec.get_replies(err_msg)
@staticmethod
def _ipsec_create_loopback_dut1_papi(nodes, tun_ips, if1_key, if2_key):
@@ -1043,57 +1181,63 @@ class IPsecUtil:
:type if1_key: str
:type if2_key: str
"""
- with PapiSocketExecutor(nodes[u"DUT1"]) as papi_exec:
+ with PapiSocketExecutor(nodes["DUT1"]) as papi_exec:
# Create loopback interface on DUT1, set it to up state
- cmd = u"create_loopback"
+ cmd = "create_loopback_instance"
args = dict(
- mac_address=0
+ mac_address=0,
+ is_specified=False,
+ user_instance=0,
)
- err_msg = f"Failed to create loopback interface " \
+ err_msg = (
+ f"Failed to create loopback interface "
f"on host {nodes[u'DUT1'][u'host']}"
- loop_sw_if_idx = papi_exec.add(cmd, **args). \
- get_sw_if_index(err_msg)
- cmd = u"sw_interface_set_flags"
+ )
+ papi_exec.add(cmd, **args)
+ loop_sw_if_idx = papi_exec.get_sw_if_index(err_msg)
+ cmd = "sw_interface_set_flags"
args = dict(
sw_if_index=loop_sw_if_idx,
- flags=InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value
+ flags=InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value,
)
- err_msg = f"Failed to set loopback interface state up " \
+ err_msg = (
+ f"Failed to set loopback interface state up "
f"on host {nodes[u'DUT1'][u'host']}"
+ )
papi_exec.add(cmd, **args).get_reply(err_msg)
# Set IP address on VPP node 1 interface
- cmd = u"sw_interface_add_del_address"
+ cmd = "sw_interface_add_del_address"
args = dict(
sw_if_index=InterfaceUtil.get_interface_index(
- nodes[u"DUT1"], if1_key
+ nodes["DUT1"], if1_key
),
is_add=True,
del_all=False,
prefix=IPUtil.create_prefix_object(
- tun_ips[u"ip2"] - 1, 96 if tun_ips[u"ip2"].version == 6
- else 24
- )
+ tun_ips["ip2"] - 1,
+ 96 if tun_ips["ip2"].version == 6 else 24,
+ ),
)
- err_msg = f"Failed to set IP address on interface {if1_key} " \
+ err_msg = (
+ f"Failed to set IP address on interface {if1_key} "
f"on host {nodes[u'DUT1'][u'host']}"
+ )
papi_exec.add(cmd, **args).get_reply(err_msg)
- cmd2 = u"ip_neighbor_add_del"
+ cmd2 = "ip_neighbor_add_del"
args2 = dict(
is_add=1,
neighbor=dict(
sw_if_index=Topology.get_interface_sw_index(
- nodes[u"DUT1"], if1_key
+ nodes["DUT1"], if1_key
),
flags=1,
mac_address=str(
- Topology.get_interface_mac(nodes[u"DUT2"], if2_key)
- if u"DUT2" in nodes.keys()
- else Topology.get_interface_mac(
- nodes[u"TG"], if2_key
- )
+ Topology.get_interface_mac(nodes["DUT2"], if2_key)
+ if "DUT2" in nodes.keys()
+ else Topology.get_interface_mac(nodes["TG"], if2_key)
),
- ip_address=tun_ips[u"ip2"].compressed
- )
+ ip_address=tun_ips["ip2"].compressed,
+ ),
)
err_msg = f"Failed to add IP neighbor on interface {if1_key}"
papi_exec.add(cmd2, **args2).get_reply(err_msg)
@@ -1102,10 +1246,22 @@ class IPsecUtil:
@staticmethod
def _ipsec_create_tunnel_interfaces_dut1_papi(
- nodes, tun_ips, if1_key, if2_key, n_tunnels, crypto_alg, integ_alg,
- raddr_ip2, addr_incr, spi_d, existing_tunnels=0):
+ nodes,
+ tun_ips,
+ if1_key,
+ if2_key,
+ n_tunnels,
+ crypto_alg,
+ integ_alg,
+ raddr_ip2,
+ addr_incr,
+ spi_d,
+ existing_tunnels=0,
+ ):
"""Create multiple IPsec tunnel interfaces on DUT1 node using PAPI.
+ Generate random keys and return them (so DUT2 or TG can decrypt).
+
:param nodes: VPP nodes to create tunnel interfaces.
:param tun_ips: Dictionary with VPP node 1 ipsec tunnel interface
IPv4/IPv6 address (ip1) and VPP node 2 ipsec tunnel interface
@@ -1128,11 +1284,13 @@ class IPsecUtil:
:type if2_key: str
:type n_tunnels: int
:type crypto_alg: CryptoAlg
- :type integ_alg: IntegAlg
+ :type integ_alg: Optional[IntegAlg]
:type raddr_ip2: IPv4Address or IPv6Address
:type addr_incr: int
:type spi_d: dict
:type existing_tunnels: int
+ :returns: Generated ckeys and ikeys.
+ :rtype: List[bytes], List[bytes]
"""
if not existing_tunnels:
loop_sw_if_idx = IPsecUtil._ipsec_create_loopback_dut1_papi(
@@ -1140,27 +1298,27 @@ class IPsecUtil:
)
else:
loop_sw_if_idx = InterfaceUtil.vpp_get_interface_sw_index(
- nodes[u"DUT1"], u"loop0"
+ nodes["DUT1"], "loop0"
)
- with PapiSocketExecutor(nodes[u"DUT1"]) as papi_exec:
+ with PapiSocketExecutor(nodes["DUT1"], is_async=True) as papi_exec:
# Configure IP addresses on loop0 interface
- cmd = u"sw_interface_add_del_address"
+ cmd = "sw_interface_add_del_address"
args = dict(
sw_if_index=loop_sw_if_idx,
is_add=True,
del_all=False,
- prefix=None
+ prefix=None,
)
for i in range(existing_tunnels, n_tunnels):
- args[u"prefix"] = IPUtil.create_prefix_object(
- tun_ips[u"ip1"] + i * addr_incr,
- 128 if tun_ips[u"ip1"].version == 6 else 32
+ args["prefix"] = IPUtil.create_prefix_object(
+ tun_ips["ip1"] + i * addr_incr,
+ 128 if tun_ips["ip1"].version == 6 else 32,
)
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
# Configure IPIP tunnel interfaces
- cmd = u"ipip_add_tunnel"
+ cmd = "ipip_add_tunnel"
ipip_tunnel = dict(
instance=Constants.BITWISE_NON_ZERO,
src=None,
@@ -1170,43 +1328,38 @@ class IPsecUtil:
TunnelEncpaDecapFlags.TUNNEL_API_ENCAP_DECAP_FLAG_NONE
),
mode=int(TunnelMode.TUNNEL_API_MODE_P2P),
- dscp=int(IpDscp.IP_API_DSCP_CS0)
- )
- args = dict(
- tunnel=ipip_tunnel
+ dscp=int(IpDscp.IP_API_DSCP_CS0),
)
+ args = dict(tunnel=ipip_tunnel)
ipip_tunnels = [None] * existing_tunnels
for i in range(existing_tunnels, n_tunnels):
- args[u"tunnel"][u"src"] = IPAddress.create_ip_address_object(
- tun_ips[u"ip1"] + i * addr_incr
+ ipip_tunnel["src"] = IPAddress.create_ip_address_object(
+ tun_ips["ip1"] + i * addr_incr
)
- args[u"tunnel"][u"dst"] = IPAddress.create_ip_address_object(
- tun_ips[u"ip2"]
+ ipip_tunnel["dst"] = IPAddress.create_ip_address_object(
+ tun_ips["ip2"]
)
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
- err_msg = f"Failed to add IPIP tunnel interfaces on host" \
+ err_msg = (
+ f"Failed to add IPIP tunnel interfaces on host"
f" {nodes[u'DUT1'][u'host']}"
+ )
ipip_tunnels.extend(
[
- reply[u"sw_if_index"]
+ reply["sw_if_index"]
for reply in papi_exec.get_replies(err_msg)
- if u"sw_if_index" in reply
+ if "sw_if_index" in reply
]
)
# Configure IPSec SAD entries
ckeys = [bytes()] * existing_tunnels
ikeys = [bytes()] * existing_tunnels
- cmd = u"ipsec_sad_entry_add_del_v2"
- c_key = dict(
- length=0,
- data=None
- )
- i_key = dict(
- length=0,
- data=None
- )
+ cmd = "ipsec_sad_entry_add_v2"
+ c_key = dict(length=0, data=None)
+ i_key = dict(length=0, data=None)
+ common_flags = IPsecSadFlags.IPSEC_API_SAD_FLAG_NONE
sad_entry = dict(
sad_id=None,
spi=None,
@@ -1215,145 +1368,149 @@ class IPsecUtil:
crypto_key=c_key,
integrity_algorithm=integ_alg.alg_int_repr if integ_alg else 0,
integrity_key=i_key,
- flags=None,
- tunnel_src=0,
- tunnel_dst=0,
- tunnel_flags=int(
- TunnelEncpaDecapFlags.TUNNEL_API_ENCAP_DECAP_FLAG_NONE
+ flags=common_flags,
+ tunnel=dict(
+ src=0,
+ dst=0,
+ table_id=0,
+ encap_decap_flags=int(
+ TunnelEncpaDecapFlags.TUNNEL_API_ENCAP_DECAP_FLAG_NONE
+ ),
+ dscp=int(IpDscp.IP_API_DSCP_CS0),
),
- dscp=int(IpDscp.IP_API_DSCP_CS0),
- table_id=0,
salt=0,
- udp_src_port=IPSEC_UDP_PORT_NONE,
- udp_dst_port=IPSEC_UDP_PORT_NONE
- )
- args = dict(
- is_add=True,
- entry=sad_entry
+ udp_src_port=IPSEC_UDP_PORT_DEFAULT,
+ udp_dst_port=IPSEC_UDP_PORT_DEFAULT,
+ anti_replay_window_size=IPSEC_REPLAY_WINDOW_DEFAULT,
)
+ args = dict(entry=sad_entry)
for i in range(existing_tunnels, n_tunnels):
ckeys.append(
gen_key(IPsecUtil.get_crypto_alg_key_len(crypto_alg))
)
- if integ_alg:
- ikeys.append(
- gen_key(IPsecUtil.get_integ_alg_key_len(integ_alg))
- )
+ ikeys.append(
+ gen_key(IPsecUtil.get_integ_alg_key_len(integ_alg))
+ )
# SAD entry for outband / tx path
- args[u"entry"][u"sad_id"] = i
- args[u"entry"][u"spi"] = spi_d[u"spi_1"] + i
+ sad_entry["sad_id"] = i
+ sad_entry["spi"] = spi_d["spi_1"] + i
- args[u"entry"][u"crypto_key"][u"length"] = len(ckeys[i])
- args[u"entry"][u"crypto_key"][u"data"] = ckeys[i]
+ sad_entry["crypto_key"]["length"] = len(ckeys[i])
+ sad_entry["crypto_key"]["data"] = ckeys[i]
if integ_alg:
- args[u"entry"][u"integrity_key"][u"length"] = len(ikeys[i])
- args[u"entry"][u"integrity_key"][u"data"] = ikeys[i]
- args[u"entry"][u"flags"] = int(
- IPsecSadFlags.IPSEC_API_SAD_FLAG_NONE
- )
+ sad_entry["integrity_key"]["length"] = len(ikeys[i])
+ sad_entry["integrity_key"]["data"] = ikeys[i]
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
+ sad_entry["flags"] |= IPsecSadFlags.IPSEC_API_SAD_FLAG_IS_INBOUND
+ for i in range(existing_tunnels, n_tunnels):
# SAD entry for inband / rx path
- args[u"entry"][u"sad_id"] = 100000 + i
- args[u"entry"][u"spi"] = spi_d[u"spi_2"] + i
+ sad_entry["sad_id"] = 100000 + i
+ sad_entry["spi"] = spi_d["spi_2"] + i
- args[u"entry"][u"crypto_key"][u"length"] = len(ckeys[i])
- args[u"entry"][u"crypto_key"][u"data"] = ckeys[i]
+ sad_entry["crypto_key"]["length"] = len(ckeys[i])
+ sad_entry["crypto_key"]["data"] = ckeys[i]
if integ_alg:
- args[u"entry"][u"integrity_key"][u"length"] = len(ikeys[i])
- args[u"entry"][u"integrity_key"][u"data"] = ikeys[i]
- args[u"entry"][u"flags"] = int(
- IPsecSadFlags.IPSEC_API_SAD_FLAG_NONE |
- IPsecSadFlags.IPSEC_API_SAD_FLAG_IS_INBOUND
- )
+ sad_entry["integrity_key"]["length"] = len(ikeys[i])
+ sad_entry["integrity_key"]["data"] = ikeys[i]
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
- err_msg = f"Failed to add IPsec SAD entries on host" \
+ err_msg = (
+ f"Failed to add IPsec SAD entries on host"
f" {nodes[u'DUT1'][u'host']}"
+ )
papi_exec.get_replies(err_msg)
# Add protection for tunnels with IPSEC
- cmd = u"ipsec_tunnel_protect_update"
+ cmd = "ipsec_tunnel_protect_update"
n_hop = dict(
address=0,
via_label=MPLS_LABEL_INVALID,
- obj_id=Constants.BITWISE_NON_ZERO
+ obj_id=Constants.BITWISE_NON_ZERO,
)
ipsec_tunnel_protect = dict(
- sw_if_index=None,
- nh=n_hop,
- sa_out=None,
- n_sa_in=1,
- sa_in=None
- )
- args = dict(
- tunnel=ipsec_tunnel_protect
+ sw_if_index=None, nh=n_hop, sa_out=None, n_sa_in=1, sa_in=None
)
+ args = dict(tunnel=ipsec_tunnel_protect)
for i in range(existing_tunnels, n_tunnels):
- args[u"tunnel"][u"sw_if_index"] = ipip_tunnels[i]
- args[u"tunnel"][u"sa_out"] = i
- args[u"tunnel"][u"sa_in"] = [100000 + i]
+ args["tunnel"]["sw_if_index"] = ipip_tunnels[i]
+ args["tunnel"]["sa_out"] = i
+ args["tunnel"]["sa_in"] = [100000 + i]
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
- err_msg = f"Failed to add protection for tunnels with IPSEC " \
+ err_msg = (
+ f"Failed to add protection for tunnels with IPSEC "
f"on host {nodes[u'DUT1'][u'host']}"
+ )
papi_exec.get_replies(err_msg)
# Configure unnumbered interfaces
- cmd = u"sw_interface_set_unnumbered"
+ cmd = "sw_interface_set_unnumbered"
args = dict(
is_add=True,
sw_if_index=InterfaceUtil.get_interface_index(
- nodes[u"DUT1"], if1_key
+ nodes["DUT1"], if1_key
),
- unnumbered_sw_if_index=0
+ unnumbered_sw_if_index=0,
)
for i in range(existing_tunnels, n_tunnels):
- args[u"unnumbered_sw_if_index"] = ipip_tunnels[i]
+ args["unnumbered_sw_if_index"] = ipip_tunnels[i]
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
# Set interfaces up
- cmd = u"sw_interface_set_flags"
+ cmd = "sw_interface_set_flags"
args = dict(
sw_if_index=0,
- flags=InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value
+ flags=InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value,
)
for i in range(existing_tunnels, n_tunnels):
- args[u"sw_if_index"] = ipip_tunnels[i]
+ args["sw_if_index"] = ipip_tunnels[i]
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
# Configure IP routes
- cmd = u"ip_route_add_del"
- args = dict(
- is_add=1,
- is_multipath=0,
- route=None
- )
+ cmd = "ip_route_add_del"
+ args = dict(is_add=1, is_multipath=0, route=None)
for i in range(existing_tunnels, n_tunnels):
- args[u"route"] = IPUtil.compose_vpp_route_structure(
- nodes[u"DUT1"], (raddr_ip2 + i).compressed,
+ args["route"] = IPUtil.compose_vpp_route_structure(
+ nodes["DUT1"],
+ (raddr_ip2 + i).compressed,
prefix_len=128 if raddr_ip2.version == 6 else 32,
- interface=ipip_tunnels[i]
+ interface=ipip_tunnels[i],
)
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
- err_msg = f"Failed to add IP routes on host " \
- f"{nodes[u'DUT1'][u'host']}"
+ err_msg = (
+ f"Failed to add IP routes on host " f"{nodes[u'DUT1'][u'host']}"
+ )
papi_exec.get_replies(err_msg)
return ckeys, ikeys
@staticmethod
def _ipsec_create_tunnel_interfaces_dut2_papi(
- nodes, tun_ips, if2_key, n_tunnels, crypto_alg, ckeys, integ_alg,
- ikeys, raddr_ip1, addr_incr, spi_d, existing_tunnels=0):
+ nodes,
+ tun_ips,
+ if2_key,
+ n_tunnels,
+ crypto_alg,
+ ckeys,
+ integ_alg,
+ ikeys,
+ raddr_ip1,
+ addr_incr,
+ spi_d,
+ existing_tunnels=0,
+ ):
"""Create multiple IPsec tunnel interfaces on DUT2 node using PAPI.
+ This method accesses keys generated by DUT1 method
+ and does not return anything.
+
:param nodes: VPP nodes to create tunnel interfaces.
:param tun_ips: Dictionary with VPP node 1 ipsec tunnel interface
IPv4/IPv6 address (ip1) and VPP node 2 ipsec tunnel interface
@@ -1374,33 +1531,35 @@ class IPsecUtil:
:type if2_key: str
:type n_tunnels: int
:type crypto_alg: CryptoAlg
- :type ckeys: list
- :type integ_alg: IntegAlg
- :type ikeys: list
+ :type ckeys: Sequence[bytes]
+ :type integ_alg: Optional[IntegAlg]
+ :type ikeys: Sequence[bytes]
:type addr_incr: int
:type spi_d: dict
:type existing_tunnels: int
"""
- with PapiSocketExecutor(nodes[u"DUT2"]) as papi_exec:
+ with PapiSocketExecutor(nodes["DUT2"], is_async=True) as papi_exec:
if not existing_tunnels:
# Set IP address on VPP node 2 interface
- cmd = u"sw_interface_add_del_address"
+ cmd = "sw_interface_add_del_address"
args = dict(
sw_if_index=InterfaceUtil.get_interface_index(
- nodes[u"DUT2"], if2_key
+ nodes["DUT2"], if2_key
),
is_add=True,
del_all=False,
prefix=IPUtil.create_prefix_object(
- tun_ips[u"ip2"], 96 if tun_ips[u"ip2"].version == 6
- else 24
- )
+ tun_ips["ip2"],
+ 96 if tun_ips["ip2"].version == 6 else 24,
+ ),
)
- err_msg = f"Failed to set IP address on interface {if2_key} " \
+ err_msg = (
+ f"Failed to set IP address on interface {if2_key} "
f"on host {nodes[u'DUT2'][u'host']}"
- papi_exec.add(cmd, **args).get_reply(err_msg)
+ )
+ papi_exec.add(cmd, **args).get_replies(err_msg)
# Configure IPIP tunnel interfaces
- cmd = u"ipip_add_tunnel"
+ cmd = "ipip_add_tunnel"
ipip_tunnel = dict(
instance=Constants.BITWISE_NON_ZERO,
src=None,
@@ -1410,204 +1569,199 @@ class IPsecUtil:
TunnelEncpaDecapFlags.TUNNEL_API_ENCAP_DECAP_FLAG_NONE
),
mode=int(TunnelMode.TUNNEL_API_MODE_P2P),
- dscp=int(IpDscp.IP_API_DSCP_CS0)
- )
- args = dict(
- tunnel=ipip_tunnel
+ dscp=int(IpDscp.IP_API_DSCP_CS0),
)
+ args = dict(tunnel=ipip_tunnel)
ipip_tunnels = [None] * existing_tunnels
for i in range(existing_tunnels, n_tunnels):
- args[u"tunnel"][u"src"] = IPAddress.create_ip_address_object(
- tun_ips[u"ip2"]
+ ipip_tunnel["src"] = IPAddress.create_ip_address_object(
+ tun_ips["ip2"]
)
- args[u"tunnel"][u"dst"] = IPAddress.create_ip_address_object(
- tun_ips[u"ip1"] + i * addr_incr
+ ipip_tunnel["dst"] = IPAddress.create_ip_address_object(
+ tun_ips["ip1"] + i * addr_incr
)
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
- err_msg = f"Failed to add IPIP tunnel interfaces on host" \
+ err_msg = (
+ f"Failed to add IPIP tunnel interfaces on host"
f" {nodes[u'DUT2'][u'host']}"
+ )
ipip_tunnels.extend(
[
- reply[u"sw_if_index"]
+ reply["sw_if_index"]
for reply in papi_exec.get_replies(err_msg)
- if u"sw_if_index" in reply
+ if "sw_if_index" in reply
]
)
# Configure IPSec SAD entries
- cmd = u"ipsec_sad_entry_add_del_v2"
- c_key = dict(
- length=0,
- data=None
- )
- i_key = dict(
- length=0,
- data=None
- )
+ cmd = "ipsec_sad_entry_add_v2"
+ c_key = dict(length=0, data=None)
+ i_key = dict(length=0, data=None)
+ common_flags = IPsecSadFlags.IPSEC_API_SAD_FLAG_NONE
sad_entry = dict(
sad_id=None,
spi=None,
protocol=int(IPsecProto.IPSEC_API_PROTO_ESP),
-
crypto_algorithm=crypto_alg.alg_int_repr,
crypto_key=c_key,
integrity_algorithm=integ_alg.alg_int_repr if integ_alg else 0,
integrity_key=i_key,
-
- flags=None,
- tunnel_src=0,
- tunnel_dst=0,
- tunnel_flags=int(
- TunnelEncpaDecapFlags.TUNNEL_API_ENCAP_DECAP_FLAG_NONE
+ flags=common_flags,
+ tunnel=dict(
+ src=0,
+ dst=0,
+ table_id=0,
+ encap_decap_flags=int(
+ TunnelEncpaDecapFlags.TUNNEL_API_ENCAP_DECAP_FLAG_NONE
+ ),
+ dscp=int(IpDscp.IP_API_DSCP_CS0),
),
- dscp=int(IpDscp.IP_API_DSCP_CS0),
- table_id=0,
salt=0,
- udp_src_port=IPSEC_UDP_PORT_NONE,
- udp_dst_port=IPSEC_UDP_PORT_NONE
- )
- args = dict(
- is_add=True,
- entry=sad_entry
+ udp_src_port=IPSEC_UDP_PORT_DEFAULT,
+ udp_dst_port=IPSEC_UDP_PORT_DEFAULT,
+ anti_replay_window_size=IPSEC_REPLAY_WINDOW_DEFAULT,
)
+ args = dict(entry=sad_entry)
for i in range(existing_tunnels, n_tunnels):
ckeys.append(
gen_key(IPsecUtil.get_crypto_alg_key_len(crypto_alg))
)
- if integ_alg:
- ikeys.append(
- gen_key(IPsecUtil.get_integ_alg_key_len(integ_alg))
- )
+ ikeys.append(
+ gen_key(IPsecUtil.get_integ_alg_key_len(integ_alg))
+ )
# SAD entry for outband / tx path
- args[u"entry"][u"sad_id"] = 100000 + i
- args[u"entry"][u"spi"] = spi_d[u"spi_2"] + i
+ sad_entry["sad_id"] = 100000 + i
+ sad_entry["spi"] = spi_d["spi_2"] + i
- args[u"entry"][u"crypto_key"][u"length"] = len(ckeys[i])
- args[u"entry"][u"crypto_key"][u"data"] = ckeys[i]
+ sad_entry["crypto_key"]["length"] = len(ckeys[i])
+ sad_entry["crypto_key"]["data"] = ckeys[i]
if integ_alg:
- args[u"entry"][u"integrity_key"][u"length"] = len(ikeys[i])
- args[u"entry"][u"integrity_key"][u"data"] = ikeys[i]
- args[u"entry"][u"flags"] = int(
- IPsecSadFlags.IPSEC_API_SAD_FLAG_NONE
- )
+ sad_entry["integrity_key"]["length"] = len(ikeys[i])
+ sad_entry["integrity_key"]["data"] = ikeys[i]
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
+ sad_entry["flags"] |= IPsecSadFlags.IPSEC_API_SAD_FLAG_IS_INBOUND
+ for i in range(existing_tunnels, n_tunnels):
# SAD entry for inband / rx path
- args[u"entry"][u"sad_id"] = i
- args[u"entry"][u"spi"] = spi_d[u"spi_1"] + i
+ sad_entry["sad_id"] = i
+ sad_entry["spi"] = spi_d["spi_1"] + i
- args[u"entry"][u"crypto_key"][u"length"] = len(ckeys[i])
- args[u"entry"][u"crypto_key"][u"data"] = ckeys[i]
+ sad_entry["crypto_key"]["length"] = len(ckeys[i])
+ sad_entry["crypto_key"]["data"] = ckeys[i]
if integ_alg:
- args[u"entry"][u"integrity_key"][u"length"] = len(ikeys[i])
- args[u"entry"][u"integrity_key"][u"data"] = ikeys[i]
- args[u"entry"][u"flags"] = int(
- IPsecSadFlags.IPSEC_API_SAD_FLAG_NONE |
- IPsecSadFlags.IPSEC_API_SAD_FLAG_IS_INBOUND
- )
+ sad_entry["integrity_key"]["length"] = len(ikeys[i])
+ sad_entry["integrity_key"]["data"] = ikeys[i]
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
- err_msg = f"Failed to add IPsec SAD entries on host" \
+ err_msg = (
+ f"Failed to add IPsec SAD entries on host"
f" {nodes[u'DUT2'][u'host']}"
+ )
papi_exec.get_replies(err_msg)
# Add protection for tunnels with IPSEC
- cmd = u"ipsec_tunnel_protect_update"
+ cmd = "ipsec_tunnel_protect_update"
n_hop = dict(
address=0,
via_label=MPLS_LABEL_INVALID,
- obj_id=Constants.BITWISE_NON_ZERO
+ obj_id=Constants.BITWISE_NON_ZERO,
)
ipsec_tunnel_protect = dict(
- sw_if_index=None,
- nh=n_hop,
- sa_out=None,
- n_sa_in=1,
- sa_in=None
- )
- args = dict(
- tunnel=ipsec_tunnel_protect
+ sw_if_index=None, nh=n_hop, sa_out=None, n_sa_in=1, sa_in=None
)
+ args = dict(tunnel=ipsec_tunnel_protect)
for i in range(existing_tunnels, n_tunnels):
- args[u"tunnel"][u"sw_if_index"] = ipip_tunnels[i]
- args[u"tunnel"][u"sa_out"] = 100000 + i
- args[u"tunnel"][u"sa_in"] = [i]
+ args["tunnel"]["sw_if_index"] = ipip_tunnels[i]
+ args["tunnel"]["sa_out"] = 100000 + i
+ args["tunnel"]["sa_in"] = [i]
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
- err_msg = f"Failed to add protection for tunnels with IPSEC " \
+ err_msg = (
+ f"Failed to add protection for tunnels with IPSEC "
f"on host {nodes[u'DUT2'][u'host']}"
+ )
papi_exec.get_replies(err_msg)
if not existing_tunnels:
# Configure IP route
- cmd = u"ip_route_add_del"
+ cmd = "ip_route_add_del"
route = IPUtil.compose_vpp_route_structure(
- nodes[u"DUT2"], tun_ips[u"ip1"].compressed,
- prefix_len=32 if tun_ips[u"ip1"].version == 6 else 8,
+ nodes["DUT2"],
+ tun_ips["ip1"].compressed,
+ prefix_len=32 if tun_ips["ip1"].version == 6 else 8,
interface=if2_key,
- gateway=(tun_ips[u"ip2"] - 1).compressed
- )
- args = dict(
- is_add=1,
- is_multipath=0,
- route=route
+ gateway=(tun_ips["ip2"] - 1).compressed,
)
+ args = dict(is_add=1, is_multipath=0, route=route)
papi_exec.add(cmd, **args)
# Configure unnumbered interfaces
- cmd = u"sw_interface_set_unnumbered"
+ cmd = "sw_interface_set_unnumbered"
args = dict(
is_add=True,
sw_if_index=InterfaceUtil.get_interface_index(
- nodes[u"DUT2"], if2_key
+ nodes["DUT2"], if2_key
),
- unnumbered_sw_if_index=0
+ unnumbered_sw_if_index=0,
)
for i in range(existing_tunnels, n_tunnels):
- args[u"unnumbered_sw_if_index"] = ipip_tunnels[i]
+ args["unnumbered_sw_if_index"] = ipip_tunnels[i]
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
# Set interfaces up
- cmd = u"sw_interface_set_flags"
+ cmd = "sw_interface_set_flags"
args = dict(
sw_if_index=0,
- flags=InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value
+ flags=InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value,
)
for i in range(existing_tunnels, n_tunnels):
- args[u"sw_if_index"] = ipip_tunnels[i]
+ args["sw_if_index"] = ipip_tunnels[i]
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
# Configure IP routes
- cmd = u"ip_route_add_del"
- args = dict(
- is_add=1,
- is_multipath=0,
- route=None
- )
+ cmd = "ip_route_add_del"
+ args = dict(is_add=1, is_multipath=0, route=None)
for i in range(existing_tunnels, n_tunnels):
- args[u"route"] = IPUtil.compose_vpp_route_structure(
- nodes[u"DUT1"], (raddr_ip1 + i).compressed,
+ args["route"] = IPUtil.compose_vpp_route_structure(
+ nodes["DUT1"],
+ (raddr_ip1 + i).compressed,
prefix_len=128 if raddr_ip1.version == 6 else 32,
- interface=ipip_tunnels[i]
+ interface=ipip_tunnels[i],
)
papi_exec.add(
cmd, history=bool(not 1 < i < n_tunnels - 2), **args
)
- err_msg = f"Failed to add IP routes " \
- f"on host {nodes[u'DUT2'][u'host']}"
+ err_msg = (
+ f"Failed to add IP routes " f"on host {nodes[u'DUT2'][u'host']}"
+ )
papi_exec.get_replies(err_msg)
@staticmethod
def vpp_ipsec_create_tunnel_interfaces(
- nodes, tun_if1_ip_addr, tun_if2_ip_addr, if1_key, if2_key,
- n_tunnels, crypto_alg, integ_alg, raddr_ip1, raddr_ip2, raddr_range,
- existing_tunnels=0):
+ nodes,
+ tun_if1_ip_addr,
+ tun_if2_ip_addr,
+ if1_key,
+ if2_key,
+ n_tunnels,
+ crypto_alg,
+ integ_alg,
+ raddr_ip1,
+ raddr_ip2,
+ raddr_range,
+ existing_tunnels=0,
+ return_keys=False,
+ ):
"""Create multiple IPsec tunnel interfaces between two VPP nodes.
+ Some deployments (e.g. devicetest) need to know the generated keys.
+ But other deployments (e.g. scale perf test) would get spammed
+ if we returned keys every time.
+
:param nodes: VPP nodes to create tunnel interfaces.
:param tun_if1_ip_addr: VPP node 1 ipsec tunnel interface IPv4/IPv6
address.
@@ -1628,6 +1782,7 @@ class IPsecUtil:
and to 128 in case of IPv6.
:param existing_tunnels: Number of tunnel interfaces before creation.
Useful mainly for reconf tests. Default 0.
+ :param return_keys: Whether generated keys should be returned.
:type nodes: dict
:type tun_if1_ip_addr: str
:type tun_if2_ip_addr: str
@@ -1635,51 +1790,61 @@ class IPsecUtil:
:type if2_key: str
:type n_tunnels: int
:type crypto_alg: CryptoAlg
- :type integ_alg: IntegAlg
+ :type integ_alg: Optonal[IntegAlg]
:type raddr_ip1: string
:type raddr_ip2: string
:type raddr_range: int
:type existing_tunnels: int
+ :type return_keys: bool
+ :returns: Ckeys, ikeys, spi_1, spi_2.
+ :rtype: Optional[List[bytes], List[bytes], int, int]
"""
n_tunnels = int(n_tunnels)
existing_tunnels = int(existing_tunnels)
- spi_d = dict(
- spi_1=100000,
- spi_2=200000
- )
+ spi_d = dict(spi_1=100000, spi_2=200000)
tun_ips = dict(
- ip1=ip_address(tun_if1_ip_addr),
- ip2=ip_address(tun_if2_ip_addr)
+ ip1=ip_address(tun_if1_ip_addr), ip2=ip_address(tun_if2_ip_addr)
)
raddr_ip1 = ip_address(raddr_ip1)
raddr_ip2 = ip_address(raddr_ip2)
- addr_incr = 1 << (128 - raddr_range) if tun_ips[u"ip1"].version == 6 \
+ addr_incr = (
+ 1 << (128 - raddr_range)
+ if tun_ips["ip1"].version == 6
else 1 << (32 - raddr_range)
+ )
- if n_tunnels - existing_tunnels > 10:
- ckeys, ikeys = IPsecUtil._ipsec_create_tunnel_interfaces_dut1_vat(
- nodes, tun_ips, if1_key, if2_key, n_tunnels, crypto_alg,
- integ_alg, raddr_ip2, addr_incr, spi_d, existing_tunnels
- )
- if u"DUT2" not in nodes.keys():
- return ckeys[0], ikeys[0], spi_d[u"spi_1"], spi_d[u"spi_2"]
- IPsecUtil._ipsec_create_tunnel_interfaces_dut2_vat(
- nodes, tun_ips, if2_key, n_tunnels, crypto_alg, ckeys,
- integ_alg, ikeys, raddr_ip1, addr_incr, spi_d, existing_tunnels
- )
- else:
- ckeys, ikeys = IPsecUtil._ipsec_create_tunnel_interfaces_dut1_papi(
- nodes, tun_ips, if1_key, if2_key, n_tunnels, crypto_alg,
- integ_alg, raddr_ip2, addr_incr, spi_d, existing_tunnels
- )
- if u"DUT2" not in nodes.keys():
- return ckeys[0], ikeys[0], spi_d[u"spi_1"], spi_d[u"spi_2"]
+ ckeys, ikeys = IPsecUtil._ipsec_create_tunnel_interfaces_dut1_papi(
+ nodes,
+ tun_ips,
+ if1_key,
+ if2_key,
+ n_tunnels,
+ crypto_alg,
+ integ_alg,
+ raddr_ip2,
+ addr_incr,
+ spi_d,
+ existing_tunnels,
+ )
+ if "DUT2" in nodes.keys():
IPsecUtil._ipsec_create_tunnel_interfaces_dut2_papi(
- nodes, tun_ips, if2_key, n_tunnels, crypto_alg, ckeys,
- integ_alg, ikeys, raddr_ip1, addr_incr, spi_d, existing_tunnels
+ nodes,
+ tun_ips,
+ if2_key,
+ n_tunnels,
+ crypto_alg,
+ ckeys,
+ integ_alg,
+ ikeys,
+ raddr_ip1,
+ addr_incr,
+ spi_d,
+ existing_tunnels,
)
- return None, None, None, None
+ if return_keys:
+ return ckeys, ikeys, spi_d["spi_1"], spi_d["spi_2"]
+ return None
@staticmethod
def _create_ipsec_script_files(dut, instances):
@@ -1695,12 +1860,11 @@ class IPsecUtil:
script_filename = (
f"/tmp/ipsec_create_tunnel_cnf_{dut}_{cnf + 1}.config"
)
- scripts.append(open(script_filename, 'w'))
+ scripts.append(open(script_filename, "w"))
return scripts
@staticmethod
- def _close_and_copy_ipsec_script_files(
- dut, nodes, instances, scripts):
+ def _close_and_copy_ipsec_script_files(dut, nodes, instances, scripts):
"""Close created scripts and copy them to containers
:param dut: DUT node on which to create the script files
@@ -1719,11 +1883,19 @@ class IPsecUtil:
)
scp_node(nodes[dut], script_filename, script_filename)
-
@staticmethod
def vpp_ipsec_create_tunnel_interfaces_in_containers(
- nodes, if1_ip_addr, if2_ip_addr, n_tunnels, crypto_alg, integ_alg,
- raddr_ip1, raddr_ip2, raddr_range, n_instances):
+ nodes,
+ if1_ip_addr,
+ if2_ip_addr,
+ n_tunnels,
+ crypto_alg,
+ integ_alg,
+ raddr_ip1,
+ raddr_ip2,
+ raddr_range,
+ n_instances,
+ ):
"""Create multiple IPsec tunnel interfaces between two VPP nodes.
:param nodes: VPP nodes to create tunnel interfaces.
@@ -1744,7 +1916,7 @@ class IPsecUtil:
:type if2_ip_addr: str
:type n_tunnels: int
:type crypto_alg: CryptoAlg
- :type integ_alg: IntegAlg
+ :type integ_alg: Optional[IntegAlg]
:type raddr_ip1: string
:type raddr_ip2: string
:type raddr_range: int
@@ -1754,17 +1926,12 @@ class IPsecUtil:
spi_2 = 200000
addr_incr = 1 << (32 - raddr_range)
- dut1_scripts = IPsecUtil._create_ipsec_script_files(
- u"DUT1", n_instances
- )
- dut2_scripts = IPsecUtil._create_ipsec_script_files(
- u"DUT2", n_instances
- )
+ dut1_scripts = IPsecUtil._create_ipsec_script_files("DUT1", n_instances)
+ dut2_scripts = IPsecUtil._create_ipsec_script_files("DUT2", n_instances)
for cnf in range(0, n_instances):
dut1_scripts[cnf].write(
- u"create loopback interface\n"
- u"set interface state loop0 up\n\n"
+ "create loopback interface\n" "set interface state loop0 up\n\n"
)
dut2_scripts[cnf].write(
f"ip route add {if1_ip_addr}/8 via "
@@ -1774,13 +1941,13 @@ class IPsecUtil:
for tnl in range(0, n_tunnels):
cnf = tnl % n_instances
ckey = getattr(
- gen_key(IPsecUtil.get_crypto_alg_key_len(crypto_alg)), u"hex"
+ gen_key(IPsecUtil.get_crypto_alg_key_len(crypto_alg)), "hex"
+ )
+ integ = ""
+ ikey = getattr(
+ gen_key(IPsecUtil.get_integ_alg_key_len(integ_alg)), "hex"
)
- integ = u""
if integ_alg:
- ikey = getattr(
- gen_key(IPsecUtil.get_integ_alg_key_len(integ_alg)), u"hex"
- )
integ = (
f"integ-alg {integ_alg.alg_name} "
f"local-integ-key {ikey} "
@@ -1788,7 +1955,7 @@ class IPsecUtil:
)
# Configure tunnel end point(s) on left side
dut1_scripts[cnf].write(
- u"set interface ip address loop0 "
+ "set interface ip address loop0 "
f"{ip_address(if1_ip_addr) + tnl * addr_incr}/32\n"
f"create ipsec tunnel "
f"local-ip {ip_address(if1_ip_addr) + tnl * addr_incr} "
@@ -1829,14 +1996,27 @@ class IPsecUtil:
)
IPsecUtil._close_and_copy_ipsec_script_files(
- u"DUT1", nodes, n_instances, dut1_scripts)
+ "DUT1", nodes, n_instances, dut1_scripts
+ )
IPsecUtil._close_and_copy_ipsec_script_files(
- u"DUT2", nodes, n_instances, dut2_scripts)
+ "DUT2", nodes, n_instances, dut2_scripts
+ )
@staticmethod
def vpp_ipsec_add_multiple_tunnels(
- nodes, interface1, interface2, n_tunnels, crypto_alg, integ_alg,
- tunnel_ip1, tunnel_ip2, raddr_ip1, raddr_ip2, raddr_range):
+ nodes,
+ interface1,
+ interface2,
+ n_tunnels,
+ crypto_alg,
+ integ_alg,
+ tunnel_ip1,
+ tunnel_ip2,
+ raddr_ip1,
+ raddr_ip2,
+ raddr_range,
+ tunnel_addr_incr=True,
+ ):
"""Create multiple IPsec tunnels between two VPP nodes.
:param nodes: VPP nodes to create tunnels.
@@ -1853,17 +2033,20 @@ class IPsecUtil:
first tunnel in direction node2->node1.
:param raddr_range: Mask specifying range of Policy selector Remote
IPv4 addresses. Valid values are from 1 to 32.
+ :param tunnel_addr_incr: Enable or disable tunnel IP address
+ incremental step.
:type nodes: dict
:type interface1: str or int
:type interface2: str or int
:type n_tunnels: int
:type crypto_alg: CryptoAlg
- :type integ_alg: IntegAlg
+ :type integ_alg: Optional[IntegAlg]
:type tunnel_ip1: str
:type tunnel_ip2: str
:type raddr_ip1: string
:type raddr_ip2: string
:type raddr_range: int
+ :type tunnel_addr_incr: bool
"""
spd_id = 1
p_hi = 100
@@ -1876,81 +2059,214 @@ class IPsecUtil:
crypto_key = gen_key(
IPsecUtil.get_crypto_alg_key_len(crypto_alg)
).decode()
- integ_key = gen_key(
- IPsecUtil.get_integ_alg_key_len(integ_alg)
- ).decode() if integ_alg else u""
+ integ_key = (
+ gen_key(IPsecUtil.get_integ_alg_key_len(integ_alg)).decode()
+ if integ_alg
+ else ""
+ )
- IPsecUtil.vpp_ipsec_set_ip_route(
- nodes[u"DUT1"], n_tunnels, tunnel_ip1, raddr_ip2, tunnel_ip2,
- interface1, raddr_range)
- IPsecUtil.vpp_ipsec_set_ip_route(
- nodes[u"DUT2"], n_tunnels, tunnel_ip2, raddr_ip1, tunnel_ip1,
- interface2, raddr_range)
-
- IPsecUtil.vpp_ipsec_add_spd(nodes[u"DUT1"], spd_id)
- IPsecUtil.vpp_ipsec_spd_add_if(nodes[u"DUT1"], spd_id, interface1)
- IPsecUtil.vpp_ipsec_policy_add(
- nodes[u"DUT1"], spd_id, p_hi, PolicyAction.BYPASS, inbound=False,
- proto=50, laddr_range=u"100.0.0.0/8", raddr_range=u"100.0.0.0/8"
+ rmac = (
+ Topology.get_interface_mac(nodes["DUT2"], interface2)
+ if "DUT2" in nodes.keys()
+ else Topology.get_interface_mac(nodes["TG"], interface2)
)
- IPsecUtil.vpp_ipsec_policy_add(
- nodes[u"DUT1"], spd_id, p_hi, PolicyAction.BYPASS, inbound=True,
- proto=50, laddr_range=u"100.0.0.0/8", raddr_range=u"100.0.0.0/8"
+ IPsecUtil.vpp_ipsec_set_ip_route(
+ nodes["DUT1"],
+ n_tunnels,
+ tunnel_ip1,
+ raddr_ip2,
+ tunnel_ip2,
+ interface1,
+ raddr_range,
+ rmac,
)
- IPsecUtil.vpp_ipsec_add_spd(nodes[u"DUT2"], spd_id)
- IPsecUtil.vpp_ipsec_spd_add_if(nodes[u"DUT2"], spd_id, interface2)
- IPsecUtil.vpp_ipsec_policy_add(
- nodes[u"DUT2"], spd_id, p_hi, PolicyAction.BYPASS, inbound=False,
- proto=50, laddr_range=u"100.0.0.0/8", raddr_range=u"100.0.0.0/8"
- )
- IPsecUtil.vpp_ipsec_policy_add(
- nodes[u"DUT2"], spd_id, p_hi, PolicyAction.BYPASS, inbound=True,
- proto=50, laddr_range=u"100.0.0.0/8", raddr_range=u"100.0.0.0/8"
+ IPsecUtil.vpp_ipsec_add_spd(nodes["DUT1"], spd_id)
+ IPsecUtil.vpp_ipsec_spd_add_if(nodes["DUT1"], spd_id, interface1)
+
+ addr_incr = (
+ 1 << (128 - 96)
+ if ip_address(tunnel_ip1).version == 6
+ else 1 << (32 - 24)
)
+ for i in range(n_tunnels // (addr_incr**2) + 1):
+ dut1_local_outbound_range = ip_network(
+ f"{ip_address(tunnel_ip1) + i*(addr_incr**3)}/8", False
+ ).with_prefixlen
+ dut1_remote_outbound_range = ip_network(
+ f"{ip_address(tunnel_ip2) + i*(addr_incr**3)}/8", False
+ ).with_prefixlen
+
+ IPsecUtil.vpp_ipsec_add_spd_entry(
+ nodes["DUT1"],
+ spd_id,
+ p_hi,
+ PolicyAction.BYPASS,
+ inbound=False,
+ proto=50,
+ laddr_range=dut1_local_outbound_range,
+ raddr_range=dut1_remote_outbound_range,
+ )
+ IPsecUtil.vpp_ipsec_add_spd_entry(
+ nodes["DUT1"],
+ spd_id,
+ p_hi,
+ PolicyAction.BYPASS,
+ inbound=True,
+ proto=50,
+ laddr_range=dut1_remote_outbound_range,
+ raddr_range=dut1_local_outbound_range,
+ )
IPsecUtil.vpp_ipsec_add_sad_entries(
- nodes[u"DUT1"], n_tunnels, sa_id_1, spi_1, crypto_alg, crypto_key,
- integ_alg, integ_key, tunnel_ip1, tunnel_ip2
+ nodes["DUT1"],
+ n_tunnels,
+ sa_id_1,
+ spi_1,
+ crypto_alg,
+ crypto_key,
+ integ_alg,
+ integ_key,
+ tunnel_ip1,
+ tunnel_ip2,
+ tunnel_addr_incr,
)
- IPsecUtil.vpp_ipsec_spd_add_entries(
- nodes[u"DUT1"], n_tunnels, spd_id, p_lo, False, sa_id_1, raddr_ip2
+
+ IPsecUtil.vpp_ipsec_add_spd_entries(
+ nodes["DUT1"],
+ n_tunnels,
+ spd_id,
+ priority=ObjIncrement(p_lo, 0),
+ action=PolicyAction.PROTECT,
+ inbound=False,
+ sa_id=ObjIncrement(sa_id_1, 1),
+ raddr_range=NetworkIncrement(ip_network(raddr_ip2)),
)
IPsecUtil.vpp_ipsec_add_sad_entries(
- nodes[u"DUT2"], n_tunnels, sa_id_1, spi_1, crypto_alg, crypto_key,
- integ_alg, integ_key, tunnel_ip1, tunnel_ip2
+ nodes["DUT1"],
+ n_tunnels,
+ sa_id_2,
+ spi_2,
+ crypto_alg,
+ crypto_key,
+ integ_alg,
+ integ_key,
+ tunnel_ip2,
+ tunnel_ip1,
+ tunnel_addr_incr,
)
- IPsecUtil.vpp_ipsec_spd_add_entries(
- nodes[u"DUT2"], n_tunnels, spd_id, p_lo, True, sa_id_1, raddr_ip2
+ IPsecUtil.vpp_ipsec_add_spd_entries(
+ nodes["DUT1"],
+ n_tunnels,
+ spd_id,
+ priority=ObjIncrement(p_lo, 0),
+ action=PolicyAction.PROTECT,
+ inbound=True,
+ sa_id=ObjIncrement(sa_id_2, 1),
+ raddr_range=NetworkIncrement(ip_network(raddr_ip1)),
)
- IPsecUtil.vpp_ipsec_add_sad_entries(
- nodes[u"DUT2"], n_tunnels, sa_id_2, spi_2, crypto_alg, crypto_key,
- integ_alg, integ_key, tunnel_ip2, tunnel_ip1
- )
+ if "DUT2" in nodes.keys():
+ rmac = Topology.get_interface_mac(nodes["DUT1"], interface1)
+ IPsecUtil.vpp_ipsec_set_ip_route(
+ nodes["DUT2"],
+ n_tunnels,
+ tunnel_ip2,
+ raddr_ip1,
+ tunnel_ip1,
+ interface2,
+ raddr_range,
+ rmac,
+ )
- IPsecUtil.vpp_ipsec_spd_add_entries(
- nodes[u"DUT2"], n_tunnels, spd_id, p_lo, False, sa_id_2, raddr_ip1
- )
+ IPsecUtil.vpp_ipsec_add_spd(nodes["DUT2"], spd_id)
+ IPsecUtil.vpp_ipsec_spd_add_if(nodes["DUT2"], spd_id, interface2)
+ for i in range(n_tunnels // (addr_incr**2) + 1):
+ dut2_local_outbound_range = ip_network(
+ f"{ip_address(tunnel_ip1) + i*(addr_incr**3)}/8", False
+ ).with_prefixlen
+ dut2_remote_outbound_range = ip_network(
+ f"{ip_address(tunnel_ip2) + i*(addr_incr**3)}/8", False
+ ).with_prefixlen
+
+ IPsecUtil.vpp_ipsec_add_spd_entry(
+ nodes["DUT2"],
+ spd_id,
+ p_hi,
+ PolicyAction.BYPASS,
+ inbound=False,
+ proto=50,
+ laddr_range=dut2_remote_outbound_range,
+ raddr_range=dut2_local_outbound_range,
+ )
+ IPsecUtil.vpp_ipsec_add_spd_entry(
+ nodes["DUT2"],
+ spd_id,
+ p_hi,
+ PolicyAction.BYPASS,
+ inbound=True,
+ proto=50,
+ laddr_range=dut2_local_outbound_range,
+ raddr_range=dut2_remote_outbound_range,
+ )
- IPsecUtil.vpp_ipsec_add_sad_entries(
- nodes[u"DUT1"], n_tunnels, sa_id_2, spi_2, crypto_alg, crypto_key,
- integ_alg, integ_key, tunnel_ip2, tunnel_ip1
- )
+ IPsecUtil.vpp_ipsec_add_sad_entries(
+ nodes["DUT2"],
+ n_tunnels,
+ sa_id_1,
+ spi_1,
+ crypto_alg,
+ crypto_key,
+ integ_alg,
+ integ_key,
+ tunnel_ip1,
+ tunnel_ip2,
+ tunnel_addr_incr,
+ )
+ IPsecUtil.vpp_ipsec_add_spd_entries(
+ nodes["DUT2"],
+ n_tunnels,
+ spd_id,
+ priority=ObjIncrement(p_lo, 0),
+ action=PolicyAction.PROTECT,
+ inbound=True,
+ sa_id=ObjIncrement(sa_id_1, 1),
+ raddr_range=NetworkIncrement(ip_network(raddr_ip2)),
+ )
- IPsecUtil.vpp_ipsec_spd_add_entries(
- nodes[u"DUT1"], n_tunnels, spd_id, p_lo, True, sa_id_2, raddr_ip1
- )
+ IPsecUtil.vpp_ipsec_add_sad_entries(
+ nodes["DUT2"],
+ n_tunnels,
+ sa_id_2,
+ spi_2,
+ crypto_alg,
+ crypto_key,
+ integ_alg,
+ integ_key,
+ tunnel_ip2,
+ tunnel_ip1,
+ tunnel_addr_incr,
+ )
+ IPsecUtil.vpp_ipsec_add_spd_entries(
+ nodes["DUT2"],
+ n_tunnels,
+ spd_id,
+ priority=ObjIncrement(p_lo, 0),
+ action=PolicyAction.PROTECT,
+ inbound=False,
+ sa_id=ObjIncrement(sa_id_2, 1),
+ raddr_range=NetworkIncrement(ip_network(raddr_ip1)),
+ )
@staticmethod
- def vpp_ipsec_show(node):
- """Run "show ipsec" debug CLI command.
+ def vpp_ipsec_show_all(node):
+ """Run "show ipsec all" debug CLI command.
:param node: Node to run command on.
:type node: dict
"""
- PapiSocketExecutor.run_cli_cmd(node, u"show ipsec")
+ PapiSocketExecutor.run_cli_cmd(node, "show ipsec all")
@staticmethod
def show_ipsec_security_association(node):
@@ -1959,7 +2275,58 @@ class IPsecUtil:
:param node: DUT node.
:type node: dict
"""
- cmds = [
- u"ipsec_sa_v2_dump"
- ]
- PapiSocketExecutor.dump_and_log(node, cmds)
+ cmd = "ipsec_sa_v5_dump"
+ PapiSocketExecutor.dump_and_log(node, [cmd])
+
+ @staticmethod
+ def vpp_ipsec_flow_enale_rss(node, proto, type, function="default"):
+ """Ipsec flow enable rss action.
+
+ :param node: DUT node.
+ :param proto: The flow protocol.
+ :param type: RSS type.
+ :param function: RSS function.
+
+ :type node: dict
+ :type proto: str
+ :type type: str
+ :type function: str
+ :returns: flow_index.
+ """
+ # TODO: to be fixed to use full PAPI when it is ready in VPP
+ cmd = (
+ f"test flow add src-ip any proto {proto} rss function "
+ f"{function} rss types {type}"
+ )
+ stdout = PapiSocketExecutor.run_cli_cmd(node, cmd)
+ flow_index = stdout.split()[1]
+
+ return flow_index
+
+ @staticmethod
+ def vpp_create_ipsec_flows_on_dut(
+ node, n_flows, rx_queues, spi_start, interface
+ ):
+ """Create mutiple ipsec flows and enable flows onto interface.
+
+ :param node: DUT node.
+ :param n_flows: Number of flows to create.
+ :param rx_queues: NUmber of RX queues.
+ :param spi_start: The start spi.
+ :param interface: Name of the interface.
+
+ :type node: dict
+ :type n_flows: int
+ :type rx_queues: int
+ :type spi_start: int
+ :type interface: str
+ :returns: flow_index.
+ """
+
+ for i in range(0, n_flows):
+ rx_queue = i % rx_queues
+ spi = spi_start + i
+ flow_index = FlowUtil.vpp_create_ip4_ipsec_flow(
+ node, "ESP", spi, "redirect-to-queue", value=rx_queue
+ )
+ FlowUtil.vpp_flow_enable(node, interface, flow_index)
diff --git a/resources/libraries/python/IPv6Util.py b/resources/libraries/python/IPv6Util.py
index 883304487d..b383695480 100644
--- a/resources/libraries/python/IPv6Util.py
+++ b/resources/libraries/python/IPv6Util.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/IncrementUtil.py b/resources/libraries/python/IncrementUtil.py
new file mode 100644
index 0000000000..45260ae06f
--- /dev/null
+++ b/resources/libraries/python/IncrementUtil.py
@@ -0,0 +1,74 @@
+# Copyright (c) 2021 PANTHEON.tech s.r.o.
+# 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.
+
+"""Increment utilities library."""
+
+
+class ObjIncrement():
+ """
+ An iterator class used to generate incremented values in each iteration
+ or when inc_fmt is called.
+
+ Subclasses should override:
+ _incr: when a simple '+' binary operation isn't sufficient.
+ _str_fmt: when a simple str representation of the incremented object
+ isn't the proper format.
+ """
+ def __init__(self, initial_value, increment):
+ """
+ :param initial_value: The first value to be returned.
+ :param increment: Each iteration/inc_fmt call will return the previous
+ value incremented by this.
+ :type initial_value: object supporting the '+' binary operation
+ :type increment: object supporting the '+' binary operation
+ """
+ self._value = initial_value
+ self._increment = increment
+
+ def _incr(self):
+ """
+ This function will be called in each iteration/inc_fmt call. Subclasses
+ should override this when their object is incremented differently.
+ The function must compute the next iterated value and store it in
+ self._value.
+ """
+ self._value += self._increment
+
+ def __next__(self):
+ """
+ Each iteration returns the current object and stores the incremented
+ object (which will be returned in the next iteration). The first
+ iteration returns the initial value.
+ """
+ return_value = self._value
+ self._incr()
+ return return_value
+
+ def __iter__(self):
+ return self
+
+ def _str_fmt(self):
+ """
+ The string representation is a standard string representation of the
+ incremented object. Subclasses may override this for a different
+ string representation.
+ """
+ return str(self._value)
+
+ def inc_fmt(self):
+ """
+ Return a string representation and increment the current value.
+ """
+ return_value = self._str_fmt()
+ self._incr()
+ return return_value
diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py
index 10778ed49a..ff013307bc 100644
--- a/resources/libraries/python/InterfaceUtil.py
+++ b/resources/libraries/python/InterfaceUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,18 +13,19 @@
"""Interface util library."""
+from json import loads
from time import sleep
from enum import IntEnum
from ipaddress import ip_address
from robot.api import logger
+from robot.libraries.BuiltIn import BuiltIn
from resources.libraries.python.Constants import Constants
from resources.libraries.python.DUTSetup import DUTSetup
from resources.libraries.python.IPAddress import IPAddress
from resources.libraries.python.L2Util import L2Util
from resources.libraries.python.PapiExecutor import PapiSocketExecutor
-from resources.libraries.python.parsers.JsonParser import JsonParser
from resources.libraries.python.ssh import SSH, exec_cmd, exec_cmd_no_error
from resources.libraries.python.topology import NodeType, Topology
from resources.libraries.python.VPPUtil import VPPUtil
@@ -110,6 +111,13 @@ class RdmaMode(IntEnum):
RDMA_API_MODE_DV = 2
+class AfXdpMode(IntEnum):
+ """AF_XDP interface mode."""
+ AF_XDP_API_MODE_AUTO = 0
+ AF_XDP_API_MODE_COPY = 1
+ AF_XDP_API_MODE_ZERO_COPY = 2
+
+
class InterfaceUtil:
"""General utilities for managing interfaces"""
@@ -205,6 +213,10 @@ class InterfaceUtil:
raise ValueError(f"Unknown if_type: {if_type}")
if node[u"type"] == NodeType.DUT:
+ if sw_if_index is None:
+ raise ValueError(
+ f"Interface index for {interface} not assigned by VPP."
+ )
if state == u"up":
flags = InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value
elif state == u"down":
@@ -228,6 +240,26 @@ class InterfaceUtil:
)
@staticmethod
+ def set_interface_state_pci(
+ node, pf_pcis, namespace=None, state=u"up"):
+ """Set operational state for interface specified by PCI address.
+
+ :param node: Topology node.
+ :param pf_pcis: List of node's interfaces PCI addresses.
+ :param namespace: Exec command in namespace. (Optional, Default: none)
+ :param state: Up/Down. (Optional, default: up)
+ :type nodes: dict
+ :type pf_pcis: list
+ :type namespace: str
+ :type state: str
+ """
+ for pf_pci in pf_pcis:
+ pf_eth = InterfaceUtil.pci_to_eth(node, pf_pci)
+ InterfaceUtil.set_linux_interface_state(
+ node, pf_eth, namespace=namespace, state=state
+ )
+
+ @staticmethod
def set_interface_mtu(node, pf_pcis, mtu=9200):
"""Set Ethernet MTU for specified interfaces.
@@ -245,25 +277,58 @@ class InterfaceUtil:
exec_cmd_no_error(node, cmd, sudo=True)
@staticmethod
- def set_interface_flow_control(node, pf_pcis, rx=u"off", tx=u"off"):
+ def set_interface_channels(
+ node, pf_pcis, num_queues=1, channel=u"combined"):
+ """Set interface channels for specified interfaces.
+
+ :param node: Topology node.
+ :param pf_pcis: List of node's interfaces PCI addresses.
+ :param num_queues: Number of channels. (Optional, Default: 1)
+ :param channel: Channel type. (Optional, Default: combined)
+ :type nodes: dict
+ :type pf_pcis: list
+ :type num_queues: int
+ :type channel: str
+ """
+ for pf_pci in pf_pcis:
+ pf_eth = InterfaceUtil.pci_to_eth(node, pf_pci)
+ cmd = f"ethtool --set-channels {pf_eth} {channel} {num_queues}"
+ exec_cmd_no_error(node, cmd, sudo=True)
+
+ @staticmethod
+ def set_interface_xdp_off(node, pf_pcis):
+ """Detaches any currently attached XDP/BPF program from the specified
+ interfaces.
+
+ :param node: Topology node.
+ :param pf_pcis: List of node's interfaces PCI addresses.
+ :type nodes: dict
+ :type pf_pcis: list
+ """
+ for pf_pci in pf_pcis:
+ pf_eth = InterfaceUtil.pci_to_eth(node, pf_pci)
+ cmd = f"ip link set dev {pf_eth} xdp off"
+ exec_cmd_no_error(node, cmd, sudo=True)
+
+ @staticmethod
+ def set_interface_flow_control(node, pf_pcis, rxf=u"off", txf=u"off"):
"""Set Ethernet flow control for specified interfaces.
:param node: Topology node.
:param pf_pcis: List of node's interfaces PCI addresses.
- :param rx: RX flow. Default: off.
- :param tx: TX flow. Default: off.
+ :param rxf: RX flow. (Optional, Default: off).
+ :param txf: TX flow. (Optional, Default: off).
:type nodes: dict
:type pf_pcis: list
- :type rx: str
- :type tx: str
+ :type rxf: str
+ :type txf: str
"""
for pf_pci in pf_pcis:
pf_eth = InterfaceUtil.pci_to_eth(node, pf_pci)
- cmd = f"ethtool -A {pf_eth} rx off tx off"
+ cmd = f"ethtool -A {pf_eth} rx {rxf} tx {txf}"
ret_code, _, _ = exec_cmd(node, cmd, sudo=True)
if int(ret_code) not in (0, 78):
- raise RuntimeError("Failed to set MTU on {pf_eth}!")
-
+ raise RuntimeError("Failed to set flow control on {pf_eth}!")
@staticmethod
def set_pci_parameter(node, pf_pcis, key, value):
@@ -283,11 +348,13 @@ class InterfaceUtil:
exec_cmd_no_error(node, cmd, sudo=True)
@staticmethod
- def vpp_set_interface_mtu(node, interface, mtu=9200):
- """Set Ethernet MTU on interface.
+ def vpp_set_interface_mtu(node, interface, mtu):
+ """Apply new MTU value to a VPP hardware interface.
+
+ The interface should be down when this is called.
:param node: VPP node.
- :param interface: Interface to setup MTU. Default: 9200.
+ :param interface: Interface to set MTU on.
:param mtu: Ethernet MTU size in Bytes.
:type node: dict
:type interface: str or int
@@ -297,44 +364,11 @@ class InterfaceUtil:
sw_if_index = Topology.get_interface_sw_index(node, interface)
else:
sw_if_index = interface
-
cmd = u"hw_interface_set_mtu"
err_msg = f"Failed to set interface MTU on host {node[u'host']}"
- args = dict(
- sw_if_index=sw_if_index,
- mtu=int(mtu)
- )
- try:
- with PapiSocketExecutor(node) as papi_exec:
- papi_exec.add(cmd, **args).get_reply(err_msg)
- except AssertionError as err:
- # TODO: Make failure tolerance optional.
- logger.debug(f"Setting MTU failed. Expected?\n{err}")
-
- @staticmethod
- def vpp_set_interfaces_mtu_on_node(node, mtu=9200):
- """Set Ethernet MTU on all interfaces.
-
- :param node: VPP node.
- :param mtu: Ethernet MTU size in Bytes. Default: 9200.
- :type node: dict
- :type mtu: int
- """
- for interface in node[u"interfaces"]:
- InterfaceUtil.vpp_set_interface_mtu(node, interface, mtu)
-
- @staticmethod
- def vpp_set_interfaces_mtu_on_all_duts(nodes, mtu=9200):
- """Set Ethernet MTU on all interfaces on all DUTs.
-
- :param nodes: VPP nodes.
- :param mtu: Ethernet MTU size in Bytes. Default: 9200.
- :type nodes: dict
- :type mtu: int
- """
- for node in nodes.values():
- if node[u"type"] == NodeType.DUT:
- InterfaceUtil.vpp_set_interfaces_mtu_on_node(node, mtu)
+ args = dict(sw_if_index=sw_if_index, mtu=int(mtu))
+ with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
@staticmethod
def vpp_node_interfaces_ready_wait(node, retries=15):
@@ -689,9 +723,8 @@ class InterfaceUtil:
ret_code, stdout, _ = ssh.exec_command(cmd)
if int(ret_code) != 0:
raise RuntimeError(u"Get interface name and MAC failed")
- tmp = u"{" + stdout.rstrip().replace(u"\n", u",") + u"}"
- interfaces = JsonParser().parse_data(tmp)
+ interfaces = loads("{" + stdout.rstrip().replace("\n", ",") + "}")
for interface in node[u"interfaces"].values():
name = interfaces.get(interface[u"mac_address"])
if name is None:
@@ -805,7 +838,7 @@ class InterfaceUtil:
:raises RuntimeError: if it is unable to create VxLAN interface on the
node.
"""
- cmd = u"vxlan_add_del_tunnel"
+ cmd = u"vxlan_add_del_tunnel_v3"
args = dict(
is_add=True,
instance=Constants.BITWISE_NON_ZERO,
@@ -859,7 +892,7 @@ class InterfaceUtil:
err_msg = f"Failed to set VXLAN bypass on interface " \
f"on host {node[u'host']}"
with PapiSocketExecutor(node) as papi_exec:
- papi_exec.add(cmd, **args).get_replies(err_msg)
+ papi_exec.add(cmd, **args).get_reply(err_msg)
@staticmethod
def vxlan_dump(node, interface=None):
@@ -1017,6 +1050,76 @@ class InterfaceUtil:
return ifc_name, sw_if_index
@staticmethod
+ def create_gtpu_tunnel_interface(node, teid, source_ip, destination_ip):
+ """Create GTPU interface and return sw if index of created interface.
+
+ :param node: Node where to create GTPU interface.
+ :param teid: GTPU Tunnel Endpoint Identifier.
+ :param source_ip: Source IP of a GTPU Tunnel End Point.
+ :param destination_ip: Destination IP of a GTPU Tunnel End Point.
+ :type node: dict
+ :type teid: int
+ :type source_ip: str
+ :type destination_ip: str
+ :returns: SW IF INDEX of created interface.
+ :rtype: int
+ :raises RuntimeError: if it is unable to create GTPU interface on the
+ node.
+ """
+ cmd = u"gtpu_add_del_tunnel_v2"
+ args = dict(
+ is_add=True,
+ src_address=IPAddress.create_ip_address_object(
+ ip_address(source_ip)
+ ),
+ dst_address=IPAddress.create_ip_address_object(
+ ip_address(destination_ip)
+ ),
+ mcast_sw_if_index=Constants.BITWISE_NON_ZERO,
+ encap_vrf_id=0,
+ decap_next_index=2, # ipv4
+ teid=teid,
+ # pdu_extension: Unused, false by default.
+ # qfi: Irrelevant when pdu_extension is not used.
+ )
+ err_msg = f"Failed to create GTPU tunnel interface " \
+ f"on host {node[u'host']}"
+ with PapiSocketExecutor(node) as papi_exec:
+ sw_if_index = papi_exec.add(cmd, **args).get_sw_if_index(err_msg)
+
+ if_key = Topology.add_new_port(node, u"gtpu_tunnel")
+ Topology.update_interface_sw_if_index(node, if_key, sw_if_index)
+ ifc_name = InterfaceUtil.vpp_get_interface_name(node, sw_if_index)
+ Topology.update_interface_name(node, if_key, ifc_name)
+
+ return sw_if_index
+
+ @staticmethod
+ def vpp_enable_gtpu_offload_rx(node, interface, gtpu_if_index):
+ """Enable GTPU offload RX onto interface.
+
+ :param node: Node to run command on.
+ :param interface: Name of the specific interface.
+ :param gtpu_if_index: Index of GTPU tunnel interface.
+
+ :type node: dict
+ :type interface: str
+ :type gtpu_interface: int
+ """
+ sw_if_index = Topology.get_interface_sw_index(node, interface)
+
+ cmd = u"gtpu_offload_rx"
+ args = dict(
+ hw_if_index=sw_if_index,
+ sw_if_index=gtpu_if_index,
+ enable=True
+ )
+
+ err_msg = f"Failed to enable GTPU offload RX on host {node[u'host']}"
+ with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
+
+ @staticmethod
def vpp_create_loopback(node, mac=None):
"""Create loopback interface on VPP node.
@@ -1029,9 +1132,11 @@ class InterfaceUtil:
:raises RuntimeError: If it is not possible to create loopback on the
node.
"""
- cmd = u"create_loopback"
+ cmd = u"create_loopback_instance"
args = dict(
- mac_address=L2Util.mac_to_bin(mac) if mac else 0
+ mac_address=L2Util.mac_to_bin(mac) if mac else 0,
+ is_specified=False,
+ user_instance=0,
)
err_msg = f"Failed to create loopback interface on host {node[u'host']}"
with PapiSocketExecutor(node) as papi_exec:
@@ -1169,11 +1274,74 @@ class InterfaceUtil:
txq_size=txq_size
)
err_msg = f"Failed to create AVF interface on host {node[u'host']}"
+
+ # FIXME: Remove once the fw/driver is upgraded.
+ for _ in range(10):
+ with PapiSocketExecutor(node) as papi_exec:
+ try:
+ sw_if_index = papi_exec.add(cmd, **args).get_sw_if_index(
+ err_msg
+ )
+ break
+ except AssertionError:
+ logger.error(err_msg)
+ else:
+ raise AssertionError(err_msg)
+
+ InterfaceUtil.add_eth_interface(
+ node, sw_if_index=sw_if_index, ifc_pfx=u"eth_avf",
+ host_if_key=if_key
+ )
+
+ return Topology.get_interface_by_sw_index(node, sw_if_index)
+
+ @staticmethod
+ def vpp_create_af_xdp_interface(
+ node, if_key, num_rx_queues=None, rxq_size=0, txq_size=0,
+ mode=u"auto"):
+ """Create AF_XDP interface on VPP node.
+
+ :param node: DUT node from topology.
+ :param if_key: Physical interface key from topology file of interface
+ to be bound to compatible driver.
+ :param num_rx_queues: Number of RX queues. (Optional, Default: none)
+ :param rxq_size: Size of RXQ (0 = Default API; 512 = Default VPP).
+ :param txq_size: Size of TXQ (0 = Default API; 512 = Default VPP).
+ :param mode: AF_XDP interface mode. (Optional, Default: auto).
+ :type node: dict
+ :type if_key: str
+ :type num_rx_queues: int
+ :type rxq_size: int
+ :type txq_size: int
+ :type mode: str
+ :returns: Interface key (name) in topology file.
+ :rtype: str
+ :raises RuntimeError: If it is not possible to create AF_XDP interface
+ on the node.
+ """
+ PapiSocketExecutor.run_cli_cmd(
+ node, u"set logging class af_xdp level debug"
+ )
+
+ cmd = u"af_xdp_create_v3"
+ pci_addr = Topology.get_interface_pci_addr(node, if_key)
+ args = dict(
+ name=InterfaceUtil.pci_to_eth(node, pci_addr),
+ host_if=InterfaceUtil.pci_to_eth(node, pci_addr),
+ rxq_num=int(num_rx_queues) if num_rx_queues else 0,
+ rxq_size=rxq_size,
+ txq_size=txq_size,
+ mode=getattr(AfXdpMode, f"AF_XDP_API_MODE_{mode.upper()}").value
+ )
+ err_msg = f"Failed to create AF_XDP interface on host {node[u'host']}"
with PapiSocketExecutor(node) as papi_exec:
sw_if_index = papi_exec.add(cmd, **args).get_sw_if_index(err_msg)
+ InterfaceUtil.vpp_set_interface_mac(
+ node, sw_if_index, Topology.get_interface_mac(node, if_key)
+ )
InterfaceUtil.add_eth_interface(
- node, sw_if_index=sw_if_index, ifc_pfx=u"eth_avf",
+ node, sw_if_index=sw_if_index, ifc_pfx=u"eth_af_xdp",
host_if_key=if_key
)
@@ -1207,7 +1375,7 @@ class InterfaceUtil:
node, u"set logging class rdma level debug"
)
- cmd = u"rdma_create"
+ cmd = u"rdma_create_v4"
pci_addr = Topology.get_interface_pci_addr(node, if_key)
args = dict(
name=InterfaceUtil.pci_to_eth(node, pci_addr),
@@ -1216,6 +1384,12 @@ class InterfaceUtil:
rxq_size=rxq_size,
txq_size=txq_size,
mode=getattr(RdmaMode, f"RDMA_API_MODE_{mode.upper()}").value,
+ # Note: Set True for non-jumbo packets.
+ no_multi_seg=False,
+ max_pktlen=0,
+ # TODO: Apply desired RSS flags.
+ # rss4 kept 0 (auto) as API default.
+ # rss6 kept 0 (auto) as API default.
)
err_msg = f"Failed to create RDMA interface on host {node[u'host']}"
with PapiSocketExecutor(node) as papi_exec:
@@ -1511,6 +1685,29 @@ class InterfaceUtil:
exec_cmd_no_error(node, cmd, sudo=True)
@staticmethod
+ def set_linux_interface_promisc(
+ node, interface, namespace=None, vf_id=None, state=u"on"):
+ """Set promisc state for interface in linux.
+
+ :param node: Node where to execute command.
+ :param interface: Interface in namespace.
+ :param namespace: Exec command in namespace. (Optional, Default: None)
+ :param vf_id: Virtual Function id. (Optional, Default: None)
+ :param state: State of feature. (Optional, Default: on)
+ :type node: dict
+ :type interface: str
+ :type namespace: str
+ :type vf_id: int
+ :type state: str
+ """
+ promisc_str = f"vf {vf_id} promisc {state}" if vf_id is not None \
+ else f"promisc {state}"
+ ns_str = f"ip netns exec {namespace}" if namespace else u""
+
+ cmd = f"{ns_str} ip link set dev {interface} {promisc_str}"
+ exec_cmd_no_error(node, cmd, sudo=True)
+
+ @staticmethod
def set_linux_interface_trust_on(
node, interface, namespace=None, vf_id=None):
"""Set trust on (promisc) for interface in linux.
@@ -1571,9 +1768,57 @@ class InterfaceUtil:
exec_cmd_no_error(node, cmd, sudo=True)
@staticmethod
- def init_avf_interface(node, ifc_key, numvfs=1, osi_layer=u"L2"):
- """Init PCI device by creating VIFs and bind them to vfio-pci for AVF
- driver testing on DUT.
+ def init_interface(node, ifc_key, driver, numvfs=0, osi_layer=u"L2"):
+ """Init PCI device. Check driver compatibility and bind to proper
+ drivers. Optionally create NIC VFs.
+
+ :param node: DUT node.
+ :param ifc_key: Interface key from topology file.
+ :param driver: Base driver to use.
+ :param numvfs: Number of VIFs to initialize, 0 - disable the VIFs.
+ :param osi_layer: OSI Layer type to initialize TG with.
+ Default value "L2" sets linux interface spoof off.
+ :type node: dict
+ :type ifc_key: str
+ :type driver: str
+ :type numvfs: int
+ :type osi_layer: str
+ :returns: Virtual Function topology interface keys.
+ :rtype: list
+ :raises RuntimeError: If a reason preventing initialization is found.
+ """
+ kernel_driver = Topology.get_interface_driver(node, ifc_key)
+ vf_keys = []
+ if driver == u"avf":
+ if kernel_driver not in (
+ u"ice", u"iavf", u"i40e", u"i40evf"):
+ raise RuntimeError(
+ f"AVF needs ice or i40e compatible driver, not "
+ f"{kernel_driver} at node {node[u'host']} ifc {ifc_key}"
+ )
+ vf_keys = InterfaceUtil.init_generic_interface(
+ node, ifc_key, numvfs=numvfs, osi_layer=osi_layer
+ )
+ elif driver == u"af_xdp":
+ if kernel_driver not in (
+ u"ice", u"iavf", u"i40e", u"i40evf", u"mlx5_core",
+ u"ixgbe"):
+ raise RuntimeError(
+ f"AF_XDP needs ice/i40e/rdma/ixgbe compatible driver, not "
+ f"{kernel_driver} at node {node[u'host']} ifc {ifc_key}"
+ )
+ vf_keys = InterfaceUtil.init_generic_interface(
+ node, ifc_key, numvfs=numvfs, osi_layer=osi_layer
+ )
+ elif driver == u"rdma-core":
+ vf_keys = InterfaceUtil.init_generic_interface(
+ node, ifc_key, numvfs=numvfs, osi_layer=osi_layer
+ )
+ return vf_keys
+
+ @staticmethod
+ def init_generic_interface(node, ifc_key, numvfs=0, osi_layer=u"L2"):
+ """Init PCI device. Bind to proper drivers. Optionally create NIC VFs.
:param node: DUT node.
:param ifc_key: Interface key from topology file.
@@ -1593,26 +1838,27 @@ class InterfaceUtil:
pf_mac_addr = Topology.get_interface_mac(node, ifc_key).split(":")
uio_driver = Topology.get_uio_driver(node)
kernel_driver = Topology.get_interface_driver(node, ifc_key)
- if kernel_driver not in (u"ice", u"iavf", u"i40e", u"i40evf"):
- raise RuntimeError(
- f"AVF needs ice or i40e compatible driver, not {kernel_driver}"
- f"at node {node[u'host']} ifc {ifc_key}"
- )
current_driver = DUTSetup.get_pci_dev_driver(
node, pf_pci_addr.replace(u":", r"\:"))
+ pf_dev = f"`basename /sys/bus/pci/devices/{pf_pci_addr}/net/*`"
VPPUtil.stop_vpp_service(node)
if current_driver != kernel_driver:
# PCI device must be re-bound to kernel driver before creating VFs.
DUTSetup.verify_kernel_module(node, kernel_driver, force_load=True)
# Stop VPP to prevent deadlock.
- # Unbind from current driver.
- DUTSetup.pci_driver_unbind(node, pf_pci_addr)
+ # Unbind from current driver if bound.
+ if current_driver:
+ DUTSetup.pci_driver_unbind(node, pf_pci_addr)
# Bind to kernel driver.
DUTSetup.pci_driver_bind(node, pf_pci_addr, kernel_driver)
# Initialize PCI VFs.
- DUTSetup.set_sriov_numvfs(node, pf_pci_addr, numvfs)
+ DUTSetup.set_sriov_numvfs(node, pf_pci_addr, numvfs=numvfs)
+
+ if not numvfs:
+ if osi_layer == u"L2":
+ InterfaceUtil.set_linux_interface_promisc(node, pf_dev)
vf_ifc_keys = []
# Set MAC address and bind each virtual function to uio driver.
@@ -1623,7 +1869,6 @@ class InterfaceUtil:
]
)
- pf_dev = f"`basename /sys/bus/pci/devices/{pf_pci_addr}/net/*`"
InterfaceUtil.set_linux_interface_trust_on(
node, pf_dev, vf_id=vf_id
)
@@ -1638,12 +1883,20 @@ class InterfaceUtil:
node, pf_dev, state=u"up"
)
- DUTSetup.pci_vf_driver_unbind(node, pf_pci_addr, vf_id)
- DUTSetup.pci_vf_driver_bind(node, pf_pci_addr, vf_id, uio_driver)
+ vf_pci_addr = DUTSetup.get_virtfn_pci_addr(node, pf_pci_addr, vf_id)
+ current_driver = DUTSetup.get_pci_dev_driver(
+ node, vf_pci_addr.replace(":", r"\:")
+ )
+ if current_driver:
+ DUTSetup.pci_vf_driver_unbind(
+ node, pf_pci_addr, vf_id
+ )
+ DUTSetup.pci_vf_driver_bind(
+ node, pf_pci_addr, vf_id, uio_driver
+ )
# Add newly created ports into topology file
vf_ifc_name = f"{ifc_key}_vif"
- vf_pci_addr = DUTSetup.get_virtfn_pci_addr(node, pf_pci_addr, vf_id)
vf_ifc_key = Topology.add_new_port(node, vf_ifc_name)
Topology.update_interface_name(
node, vf_ifc_key, vf_ifc_name+str(vf_id+1)
@@ -1678,6 +1931,19 @@ class InterfaceUtil:
return sorted(details, key=lambda k: k[u"sw_if_index"])
@staticmethod
+ def vpp_sw_interface_rx_placement_dump_on_all_duts(nodes):
+ """Dump VPP interface RX placement on all given nodes.
+
+ :param nodes: Nodes to run command on.
+ :type nodes: dict
+ :returns: Thread mapping information as a list of dictionaries.
+ :rtype: list
+ """
+ for node in nodes.values():
+ if node[u"type"] == NodeType.DUT:
+ InterfaceUtil.vpp_sw_interface_rx_placement_dump(node)
+
+ @staticmethod
def vpp_sw_interface_set_rx_placement(
node, sw_if_index, queue_id, worker_id):
"""Set interface RX placement to worker on node.
@@ -1706,39 +1972,74 @@ class InterfaceUtil:
papi_exec.add(cmd, **args).get_reply(err_msg)
@staticmethod
- def vpp_round_robin_rx_placement(node, prefix):
+ def vpp_round_robin_rx_placement(
+ node, prefix, workers=None):
"""Set Round Robin interface RX placement on all worker threads
on node.
+ If specified, workers limits the number of physical cores used
+ for data plane I/O work. Other cores are presumed to do something else,
+ e.g. asynchronous crypto processing.
+ None means all workers are used for data plane work.
+
:param node: Topology nodes.
:param prefix: Interface name prefix.
+ :param workers: Comma separated worker index numbers intended for
+ dataplane work.
:type node: dict
:type prefix: str
+ :type workers: str
"""
- worker_id = 0
- worker_cnt = len(VPPUtil.vpp_show_threads(node)) - 1
+ thread_data = VPPUtil.vpp_show_threads(node)
+ worker_cnt = len(thread_data) - 1
if not worker_cnt:
return
+ worker_ids = list()
+ if workers:
+ for item in thread_data:
+ if str(item.cpu_id) in workers.split(u","):
+ worker_ids.append(item.id)
+ else:
+ for item in thread_data:
+ if u"vpp_main" not in item.name:
+ worker_ids.append(item.id)
+
+ worker_idx = 0
for placement in InterfaceUtil.vpp_sw_interface_rx_placement_dump(node):
for interface in node[u"interfaces"].values():
if placement[u"sw_if_index"] == interface[u"vpp_sw_index"] \
and prefix in interface[u"name"]:
InterfaceUtil.vpp_sw_interface_set_rx_placement(
node, placement[u"sw_if_index"], placement[u"queue_id"],
- worker_id % worker_cnt
+ worker_ids[worker_idx % len(worker_ids)] - 1
)
- worker_id += 1
+ worker_idx += 1
@staticmethod
- def vpp_round_robin_rx_placement_on_all_duts(nodes, prefix):
- """Set Round Robin interface RX placement on all worker threads
+ def vpp_round_robin_rx_placement_on_all_duts(
+ nodes, prefix, use_dp_cores=False):
+ """Set Round Robin interface RX placement on worker threads
on all DUTs.
+ If specified, workers limits the number of physical cores used
+ for data plane I/O work. Other cores are presumed to do something else,
+ e.g. asynchronous crypto processing.
+ None means all cores are used for data plane work.
+
:param nodes: Topology nodes.
:param prefix: Interface name prefix.
+ :param use_dp_cores: Limit to dataplane cores.
:type nodes: dict
:type prefix: str
+ :type use_dp_cores: bool
"""
- for node in nodes.values():
- if node[u"type"] == NodeType.DUT:
- InterfaceUtil.vpp_round_robin_rx_placement(node, prefix)
+ for node_name, node in nodes.items():
+ if node["type"] == NodeType.DUT:
+ workers = None
+ if use_dp_cores:
+ workers = BuiltIn().get_variable_value(
+ f"${{{node_name}_cpu_dp}}"
+ )
+ InterfaceUtil.vpp_round_robin_rx_placement(
+ node, prefix, workers
+ )
diff --git a/resources/libraries/python/Iperf3.py b/resources/libraries/python/Iperf3.py
index ed186f0757..a881ec9f06 100644
--- a/resources/libraries/python/Iperf3.py
+++ b/resources/libraries/python/Iperf3.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -33,6 +33,29 @@ class Iperf3:
# Computed affinity for iPerf client.
self._c_affinity = None
+ @staticmethod
+ def get_iperf_type():
+ """Log and return the installed traffic generator type.
+
+ :returns: Traffic generator type string.
+ :rtype: str
+ """
+ return "IPERF"
+
+ @staticmethod
+ def get_iperf_version(node):
+ """Log and return the installed traffic generator version.
+
+ :param node: Node from topology file.
+ :type node: dict
+ :returns: Traffic generator version string.
+ :rtype: str
+ """
+ command = f"iperf3 --version | head -1"
+ message = u"Get iPerf version failed!"
+ stdout, _ = exec_cmd_no_error(node, command, message=message)
+ return stdout.strip()
+
def initialize_iperf_server(
self, node, pf_key, interface, bind, bind_gw, bind_mask,
namespace=None, cpu_skip_cnt=0, cpu_cnt=1, instances=1):
diff --git a/resources/libraries/python/IrqUtil.py b/resources/libraries/python/IrqUtil.py
new file mode 100644
index 0000000000..1ef228eeac
--- /dev/null
+++ b/resources/libraries/python/IrqUtil.py
@@ -0,0 +1,99 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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.
+
+"""IRQ handling library."""
+
+from resources.libraries.python.CpuUtils import CpuUtils
+from resources.libraries.python.InterfaceUtil import InterfaceUtil
+from resources.libraries.python.ssh import exec_cmd_no_error
+from resources.libraries.python.topology import Topology
+
+
+class IrqUtil:
+ """Contains methods for managing IRQs."""
+
+ @staticmethod
+ def get_pci_interface_irqs(node, pci_addr):
+ """Get IRQs for interface in linux specified by PCI address.
+
+ :param node: Topology node.
+ :param pci_addr: Linux interface PCI address.
+ :type node: dict
+ :type pci_addr: str
+ :returns: List of IRQs attached to specified interface.
+ :rtype: list
+ """
+ interface = InterfaceUtil.pci_to_eth(node, pci_addr)
+ return IrqUtil.get_interface_irqs(node, interface)
+
+ @staticmethod
+ def get_interface_irqs(node, interface):
+ """Get IRQs for interface in linux.
+
+ :param node: Topology node.
+ :param interface: Linux interface name.
+ :type node: dict
+ :type interface: str
+ :returns: List of IRQs attached to specified interface.
+ :rtype: list
+ """
+ irqs = []
+
+ command = f"grep '{interface}-.*TxRx' /proc/interrupts | cut -f1 -d:"
+ message = f"Failed to get IRQs for {interface} on {node['host']}!"
+ stdout, _ = exec_cmd_no_error(
+ node, command, timeout=30, sudo=True, message=message
+ )
+
+ for line in stdout.splitlines():
+ irqs.append(int(line.strip()))
+
+ return irqs
+
+ @staticmethod
+ def set_interface_irqs_affinity(node, interface, cpu_skip_cnt=0, cpu_cnt=1):
+ """Set IRQs affinity for interface in linux.
+
+ :param node: Topology node.
+ :param interface: Topology interface.
+ :param cpu_skip_cnt: Amount of CPU cores to skip.
+ :param cpu_cnt: CPU threads count. (Optional, Default: 0)
+ :param cpu_list: List of CPUs. (Optional, Default: 1)
+ :type node: dict
+ :type interface: str
+ :type cpu_skip_cnt: int
+ :type cpu_cnt: int
+ """
+ cpu_list = CpuUtils.get_affinity_af_xdp(
+ node, interface, cpu_skip_cnt=cpu_skip_cnt, cpu_cnt=cpu_cnt
+ )
+ interface = Topology.get_interface_name(node, interface)
+ irq_list = IrqUtil.get_interface_irqs(node, interface)
+
+ for irq, cpu in zip(irq_list, cpu_list):
+ if cpu < 32:
+ mask = 1 << cpu
+ mask = f"{mask:x}"
+ else:
+ groups = int(cpu/32)
+ mask_fill = u""
+ for _ in range(groups):
+ mask_fill = f"{mask_fill},00000000"
+ mask = 1 << (cpu - (32 * groups))
+ mask = f"{mask:x}{mask_fill}"
+
+ command = f"sh -c 'echo {mask} > /proc/irq/{irq}/smp_affinity'"
+ message = f"Failed to set IRQ affinity for {irq} on {node['host']}!"
+ exec_cmd_no_error(
+ node, command, timeout=30, sudo=True, message=message
+ )
diff --git a/resources/libraries/python/KubernetesUtils.py b/resources/libraries/python/KubernetesUtils.py
index d0d72a39a1..9ded0e8b9e 100644
--- a/resources/libraries/python/KubernetesUtils.py
+++ b/resources/libraries/python/KubernetesUtils.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -488,8 +488,6 @@ class KubernetesUtils:
vpp_config.add_unix_cli_listen(value=u"0.0.0.0:5002")
vpp_config.add_unix_nodaemon()
vpp_config.add_socksvr()
- vpp_config.add_heapsize(u"4G")
- vpp_config.add_ip_heap_size(u"4G")
vpp_config.add_ip6_heap_size(u"4G")
vpp_config.add_ip6_hash_buckets(u"2000000")
if not kwargs[u"jumbo"]:
diff --git a/resources/libraries/python/L2Util.py b/resources/libraries/python/L2Util.py
index eea66b82b1..92c93ed9dd 100644
--- a/resources/libraries/python/L2Util.py
+++ b/resources/libraries/python/L2Util.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -156,7 +156,7 @@ class L2Util:
:type learn: bool
:type arp_term: bool
"""
- cmd = u"bridge_domain_add_del"
+ cmd = u"bridge_domain_add_del_v2"
err_msg = f"Failed to create L2 bridge domain on host {node[u'host']}"
args = dict(
bd_id=int(bd_id),
@@ -222,7 +222,7 @@ class L2Util:
sw_if_index1 = Topology.get_interface_sw_index(node, port_1)
sw_if_index2 = Topology.get_interface_sw_index(node, port_2)
- cmd1 = u"bridge_domain_add_del"
+ cmd1 = u"bridge_domain_add_del_v2"
args1 = dict(
bd_id=int(bd_id),
flood=True,
@@ -254,8 +254,10 @@ class L2Util:
f"on host {node[u'host']}"
with PapiSocketExecutor(node) as papi_exec:
- papi_exec.add(cmd1, **args1).add(cmd2, **args2).add(cmd2, **args3)
- papi_exec.get_replies(err_msg)
+ # Cannot use get_replies due to VPP-2203.
+ papi_exec.add(cmd1, **args1).get_reply(err_msg)
+ papi_exec.add(cmd2, **args2).get_reply(err_msg)
+ papi_exec.add(cmd2, **args3).get_reply(err_msg)
@staticmethod
def vpp_setup_bidirectional_cross_connect(node, interface1, interface2):
@@ -293,7 +295,9 @@ class L2Util:
f"on host {node['host']}"
with PapiSocketExecutor(node) as papi_exec:
- papi_exec.add(cmd, **args1).add(cmd, **args2).get_replies(err_msg)
+ # Cannot use get_replies due to VPP-2203.
+ papi_exec.add(cmd, **args1).get_reply(err_msg)
+ papi_exec.add(cmd, **args2).get_reply(err_msg)
@staticmethod
def vpp_setup_bidirectional_l2_patch(node, interface1, interface2):
@@ -331,7 +335,9 @@ class L2Util:
f"on host {node['host']}"
with PapiSocketExecutor(node) as papi_exec:
- papi_exec.add(cmd, **args1).add(cmd, **args2).get_replies(err_msg)
+ # Cannot use get_replies due to VPP-2203.
+ papi_exec.add(cmd, **args1).get_reply(err_msg)
+ papi_exec.add(cmd, **args2).get_reply(err_msg)
@staticmethod
def linux_add_bridge(node, br_name, if_1, if_2, set_up=True):
diff --git a/resources/libraries/python/LimitUtil.py b/resources/libraries/python/LimitUtil.py
index c34109c2b7..6559f6aeb0 100644
--- a/resources/libraries/python/LimitUtil.py
+++ b/resources/libraries/python/LimitUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/LispSetup.py b/resources/libraries/python/LispSetup.py
index 6579764596..9e3ef97aa3 100644
--- a/resources/libraries/python/LispSetup.py
+++ b/resources/libraries/python/LispSetup.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/LoadBalancerUtil.py b/resources/libraries/python/LoadBalancerUtil.py
index 340afe50a3..471bc87e80 100644
--- a/resources/libraries/python/LoadBalancerUtil.py
+++ b/resources/libraries/python/LoadBalancerUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Intel and/or its affiliates.
+# Copyright (c) 2023 Intel and/or its affiliates.
# 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:
@@ -84,13 +84,13 @@ class LoadBalancerUtil:
protocol: tcp or udp. (int)
port: destination port. (int)
encap: encap is ip4 GRE(0) or ip6 (1GRE) or L3DSR(2) or NAT4(3) or
- NAT6(4). (int)
+ NAT6(4). (int)
dscp: dscp bit corresponding to VIP
type: service type
target_port: Pod's port corresponding to specific service
node_port: Node's port
new_len: Size of the new connections flow table used
- for this VIP
+ for this VIP
is_del: 1 if the VIP should be removed otherwise 0.
:type node: dict
@@ -108,9 +108,10 @@ class LoadBalancerUtil:
target_port = kwargs.pop(u"target_port", 0)
node_port = kwargs.pop(u"node_port", 0)
new_len = kwargs.pop(u"new_len", 1024)
+ src_ip_sticky = kwargs.pop(u"src_ip_sticky", 0)
is_del = kwargs.pop(u"is_del", 0)
- cmd = u"lb_add_del_vip"
+ cmd = u"lb_add_del_vip_v2"
err_msg = f"Failed to add vip on host {node[u'host']}"
vip_addr = ip_address(vip_addr).packed
@@ -127,7 +128,8 @@ class LoadBalancerUtil:
target_port=target_port,
node_port=node_port,
new_flows_table_length=int(new_len),
- is_del=is_del
+ src_ip_sticky=src_ip_sticky,
+ is_del=is_del,
)
with PapiSocketExecutor(node) as papi_exec:
@@ -150,7 +152,7 @@ class LoadBalancerUtil:
as_addr: The application server address. (str)
is_del: 1 if the VIP should be removed otherwise 0. (int)
is_flush: 1 if the sessions related to this AS should be flushed
- otherwise 0. (int)
+ otherwise 0. (int)
:type node: dict
:type kwargs: dict
diff --git a/resources/libraries/python/LocalExecution.py b/resources/libraries/python/LocalExecution.py
index ea40156404..98dfce1375 100644
--- a/resources/libraries/python/LocalExecution.py
+++ b/resources/libraries/python/LocalExecution.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/MLRsearch/AbstractMeasurer.py b/resources/libraries/python/MLRsearch/AbstractMeasurer.py
deleted file mode 100644
index 82116f2e43..0000000000
--- a/resources/libraries/python/MLRsearch/AbstractMeasurer.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Module defining AbstractMeasurer class."""
-
-from abc import ABCMeta, abstractmethod
-
-
-class AbstractMeasurer(metaclass=ABCMeta):
- """Abstract class defining common API for measurement providers."""
-
- @abstractmethod
- def measure(self, duration, transmit_rate):
- """Perform trial measurement and return the result.
-
- :param duration: Trial duration [s].
- :param transmit_rate: Target transmit rate [tps].
- :type duration: float
- :type transmit_rate: float
- :returns: Structure containing the result of the measurement.
- :rtype: ReceiveRateMeasurement.ReceiveRateMeasurement
- """
diff --git a/resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py b/resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py
deleted file mode 100644
index f2bf04e1b1..0000000000
--- a/resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Module defining AbstractSearchAlgorithm class."""
-
-from abc import ABCMeta, abstractmethod
-
-
-class AbstractSearchAlgorithm(metaclass=ABCMeta):
- """Abstract class defining common API for search algorithms."""
-
- def __init__(self, measurer):
- """Store the rate provider.
-
- :param measurer: Object able to perform trial or composite measurements.
- :type measurer: AbstractMeasurer.AbstractMeasurer
- """
- # TODO: Type check for AbstractMeasurer?
- self.measurer = measurer
-
- @abstractmethod
- def narrow_down_ndr_and_pdr(
- self, min_rate, max_rate, packet_loss_ratio):
- """Perform measurements to narrow down intervals, return them.
-
- This will be renamed when custom loss ratio lists are supported.
-
- :param min_rate: Minimal target transmit rate [tps].
- Usually, tests are set to fail if search reaches this or below.
- :param max_rate: Maximal target transmit rate [tps].
- Usually computed from line rate and various other limits,
- to prevent failures or duration stretching in Traffic Generator.
- :param packet_loss_ratio: Fraction of packets lost, for PDR [1].
- :type min_rate: float
- :type max_rate: float
- :type packet_loss_ratio: float
- :returns: Structure containing narrowed down intervals
- and their measurements.
- :rtype: NdrPdrResult.NdrPdrResult
- """
- # TODO: Do we agree on arguments related to precision or trial duration?
diff --git a/resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py b/resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py
deleted file mode 100644
index 87dc784cbc..0000000000
--- a/resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py
+++ /dev/null
@@ -1,645 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Module defining MultipleLossRatioSearch class."""
-
-import logging
-import math
-import time
-
-from .AbstractSearchAlgorithm import AbstractSearchAlgorithm
-from .NdrPdrResult import NdrPdrResult
-from .ReceiveRateInterval import ReceiveRateInterval
-
-
-class MultipleLossRatioSearch(AbstractSearchAlgorithm):
- """Optimized binary search algorithm for finding NDR and PDR bounds.
-
- Traditional binary search algorithm needs initial interval
- (lower and upper bound), and returns final interval after bisecting
- (until some exit condition is met).
- The exit condition is usually related to the interval width,
- (upper bound value minus lower bound value).
-
- The optimized algorithm contains several improvements
- aimed to reduce overall search time.
-
- One improvement is searching for two intervals at once.
- The intervals are for NDR (No Drop Rate) and PDR (Partial Drop Rate).
-
- Next improvement is that the initial interval does not need to be valid.
- Imagine initial interval (10, 11) where 11 is smaller
- than the searched value.
- The algorithm will try (11, 13) interval next, and if 13 is still smaller,
- (13, 17) and so on, doubling width until the upper bound is valid.
- The part when interval expands is called external search,
- the part when interval is bisected is called internal search.
-
- Next improvement is that trial measurements at small trial duration
- can be used to find a reasonable interval for full trial duration search.
- This results in more trials performed, but smaller overall duration
- in general.
-
- Next improvement is bisecting in logarithmic quantities,
- so that exit criteria can be independent of measurement units.
-
- Next improvement is basing the initial interval on receive rates.
-
- Final improvement is exiting early if the minimal value
- is not a valid lower bound.
-
- The complete search consist of several phases,
- each phase performing several trial measurements.
- Initial phase creates initial interval based on receive rates
- at maximum rate and at maximum receive rate (MRR).
- Final phase and preceding intermediate phases are performing
- external and internal search steps,
- each resulting interval is the starting point for the next phase.
- The resulting interval of final phase is the result of the whole algorithm.
-
- Each non-initial phase uses its own trial duration and width goal.
- Any non-initial phase stops searching (for NDR or PDR independently)
- when minimum is not a valid lower bound (at current duration),
- or all of the following is true:
- Both bounds are valid, bound bounds are measured at the current phase
- trial duration, interval width is less than the width goal
- for current phase.
-
- TODO: Review and update this docstring according to rst docs.
- TODO: Support configurable number of Packet Loss Ratios.
- """
-
- class ProgressState:
- """Structure containing data to be passed around in recursion."""
-
- def __init__(
- self, result, phases, duration, width_goal, packet_loss_ratio,
- minimum_transmit_rate, maximum_transmit_rate):
- """Convert and store the argument values.
-
- :param result: Current measured NDR and PDR intervals.
- :param phases: How many intermediate phases to perform
- before the current one.
- :param duration: Trial duration to use in the current phase [s].
- :param width_goal: The goal relative width for the curreent phase.
- :param packet_loss_ratio: PDR fraction for the current search.
- :param minimum_transmit_rate: Minimum target transmit rate
- for the current search [pps].
- :param maximum_transmit_rate: Maximum target transmit rate
- for the current search [pps].
- :type result: NdrPdrResult.NdrPdrResult
- :type phases: int
- :type duration: float
- :type width_goal: float
- :type packet_loss_ratio: float
- :type minimum_transmit_rate: float
- :type maximum_transmit_rate: float
- """
- self.result = result
- self.phases = int(phases)
- self.duration = float(duration)
- self.width_goal = float(width_goal)
- self.packet_loss_ratio = float(packet_loss_ratio)
- self.minimum_transmit_rate = float(minimum_transmit_rate)
- self.maximum_transmit_rate = float(maximum_transmit_rate)
-
- def __init__(
- self, measurer, final_relative_width=0.005,
- final_trial_duration=30.0, initial_trial_duration=1.0,
- number_of_intermediate_phases=2, timeout=600.0, doublings=1):
- """Store the measurer object and additional arguments.
-
- :param measurer: Rate provider to use by this search object.
- :param final_relative_width: Final lower bound transmit rate
- cannot be more distant that this multiple of upper bound [1].
- :param final_trial_duration: Trial duration for the final phase [s].
- :param initial_trial_duration: Trial duration for the initial phase
- and also for the first intermediate phase [s].
- :param number_of_intermediate_phases: Number of intermediate phases
- to perform before the final phase [1].
- :param timeout: The search will fail itself when not finished
- before this overall time [s].
- :param doublings: How many doublings to do in external search step.
- Default 1 is suitable for fairly stable tests,
- less stable tests might get better overal duration with 2 or more.
- :type measurer: AbstractMeasurer.AbstractMeasurer
- :type final_relative_width: float
- :type final_trial_duration: float
- :type initial_trial_duration: float
- :type number_of_intermediate_phases: int
- :type timeout: float
- :type doublings: int
- """
- super(MultipleLossRatioSearch, self).__init__(measurer)
- self.final_trial_duration = float(final_trial_duration)
- self.final_relative_width = float(final_relative_width)
- self.number_of_intermediate_phases = int(number_of_intermediate_phases)
- self.initial_trial_duration = float(initial_trial_duration)
- self.timeout = float(timeout)
- self.doublings = int(doublings)
-
- @staticmethod
- def double_relative_width(relative_width):
- """Return relative width corresponding to double logarithmic width.
-
- :param relative_width: The base relative width to double.
- :type relative_width: float
- :returns: The relative width of double logarithmic size.
- :rtype: float
- """
- return 1.99999 * relative_width - relative_width * relative_width
- # The number should be 2.0, but we want to avoid rounding errors,
- # and ensure half of double is not larger than the original value.
-
- @staticmethod
- def double_step_down(relative_width, current_bound):
- """Return rate of double logarithmic width below.
-
- :param relative_width: The base relative width to double.
- :param current_bound: The current target transmit rate to move [pps].
- :type relative_width: float
- :type current_bound: float
- :returns: Transmit rate smaller by logarithmically double width [pps].
- :rtype: float
- """
- return current_bound * (
- 1.0 - MultipleLossRatioSearch.double_relative_width(relative_width)
- )
-
- @staticmethod
- def expand_down(relative_width, doublings, current_bound):
- """Return rate of expanded logarithmic width below.
-
- :param relative_width: The base relative width to double.
- :param doublings: How many doublings to do for expansion.
- :param current_bound: The current target transmit rate to move [pps].
- :type relative_width: float
- :type doublings: int
- :type current_bound: float
- :returns: Transmit rate smaller by logarithmically double width [pps].
- :rtype: float
- """
- for _ in range(doublings):
- relative_width = MultipleLossRatioSearch.double_relative_width(
- relative_width
- )
- return current_bound * (1.0 - relative_width)
-
- @staticmethod
- def double_step_up(relative_width, current_bound):
- """Return rate of double logarithmic width above.
-
- :param relative_width: The base relative width to double.
- :param current_bound: The current target transmit rate to move [pps].
- :type relative_width: float
- :type current_bound: float
- :returns: Transmit rate larger by logarithmically double width [pps].
- :rtype: float
- """
- return current_bound / (
- 1.0 - MultipleLossRatioSearch.double_relative_width(relative_width)
- )
-
- @staticmethod
- def expand_up(relative_width, doublings, current_bound):
- """Return rate of expanded logarithmic width above.
-
- :param relative_width: The base relative width to double.
- :param doublings: How many doublings to do for expansion.
- :param current_bound: The current target transmit rate to move [pps].
- :type relative_width: float
- :type doublings: int
- :type current_bound: float
- :returns: Transmit rate smaller by logarithmically double width [pps].
- :rtype: float
- """
- for _ in range(doublings):
- relative_width = MultipleLossRatioSearch.double_relative_width(
- relative_width
- )
- return current_bound / (1.0 - relative_width)
-
- @staticmethod
- def half_relative_width(relative_width):
- """Return relative width corresponding to half logarithmic width.
-
- :param relative_width: The base relative width to halve.
- :type relative_width: float
- :returns: The relative width of half logarithmic size.
- :rtype: float
- """
- return 1.0 - math.sqrt(1.0 - relative_width)
-
- @staticmethod
- def half_step_up(relative_width, current_bound):
- """Return rate of half logarithmic width above.
-
- :param relative_width: The base relative width to halve.
- :param current_bound: The current target transmit rate to move [pps].
- :type relative_width: float
- :type current_bound: float
- :returns: Transmit rate larger by logarithmically half width [pps].
- :rtype: float
- """
- return current_bound / (
- 1.0 - MultipleLossRatioSearch.half_relative_width(relative_width)
- )
-
- def narrow_down_ndr_and_pdr(self, min_rate, max_rate, packet_loss_ratio):
- """Perform initial phase, create state object, proceed with next phases.
-
- :param min_rate: Minimal target transmit rate [tps].
- :param max_rate: Maximal target transmit rate [tps].
- :param packet_loss_ratio: Fraction of packets lost, for PDR [1].
- :type min_rate: float
- :type max_rate: float
- :type packet_loss_ratio: float
- :returns: Structure containing narrowed down intervals
- and their measurements.
- :rtype: NdrPdrResult.NdrPdrResult
- :raises RuntimeError: If total duration is larger than timeout.
- """
- minimum_transmit_rate = float(min_rate)
- maximum_transmit_rate = float(max_rate)
- packet_loss_ratio = float(packet_loss_ratio)
- max_measurement = self.measurer.measure(
- self.initial_trial_duration, maximum_transmit_rate)
- initial_width_goal = self.final_relative_width
- for _ in range(self.number_of_intermediate_phases):
- initial_width_goal = self.double_relative_width(initial_width_goal)
- max_lo = maximum_transmit_rate * (1.0 - initial_width_goal)
- mrr = max(minimum_transmit_rate, min(
- max_lo, max_measurement.relative_receive_rate
- ))
- mrr_measurement = self.measurer.measure(
- self.initial_trial_duration, mrr
- )
- # Attempt to get narrower width.
- if mrr_measurement.loss_fraction > 0.0:
- max2_lo = mrr * (1.0 - initial_width_goal)
- mrr2 = min(max2_lo, mrr_measurement.relative_receive_rate)
- else:
- mrr2 = mrr / (1.0 - initial_width_goal)
- if minimum_transmit_rate < mrr2 < maximum_transmit_rate:
- max_measurement = mrr_measurement
- mrr_measurement = self.measurer.measure(
- self.initial_trial_duration, mrr2)
- if mrr2 > mrr:
- max_measurement, mrr_measurement = \
- (mrr_measurement, max_measurement)
- starting_interval = ReceiveRateInterval(
- mrr_measurement, max_measurement)
- starting_result = NdrPdrResult(starting_interval, starting_interval)
- state = self.ProgressState(
- starting_result, self.number_of_intermediate_phases,
- self.final_trial_duration, self.final_relative_width,
- packet_loss_ratio, minimum_transmit_rate, maximum_transmit_rate
- )
- state = self.ndrpdr(state)
- return state.result
-
- def _measure_and_update_state(self, state, transmit_rate):
- """Perform trial measurement, update bounds, return new state.
-
- :param state: State before this measurement.
- :param transmit_rate: Target transmit rate for this measurement [pps].
- :type state: ProgressState
- :type transmit_rate: float
- :returns: State after the measurement.
- :rtype: ProgressState
- """
- # TODO: Implement https://stackoverflow.com/a/24683360
- # to avoid the string manipulation if log verbosity is too low.
- logging.info(f"result before update: {state.result}")
- logging.debug(
- f"relative widths in goals: "
- f"{state.result.width_in_goals(self.final_relative_width)}"
- )
- measurement = self.measurer.measure(state.duration, transmit_rate)
- ndr_interval = self._new_interval(
- state.result.ndr_interval, measurement, 0.0
- )
- pdr_interval = self._new_interval(
- state.result.pdr_interval, measurement, state.packet_loss_ratio
- )
- state.result = NdrPdrResult(ndr_interval, pdr_interval)
- return state
-
- @staticmethod
- def _new_interval(old_interval, measurement, packet_loss_ratio):
- """Return new interval with bounds updated according to the measurement.
-
- :param old_interval: The current interval before the measurement.
- :param measurement: The new meaqsurement to take into account.
- :param packet_loss_ratio: Fraction for PDR (or zero for NDR).
- :type old_interval: ReceiveRateInterval.ReceiveRateInterval
- :type measurement: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type packet_loss_ratio: float
- :returns: The updated interval.
- :rtype: ReceiveRateInterval.ReceiveRateInterval
- """
- old_lo, old_hi = old_interval.measured_low, old_interval.measured_high
- new_lo = new_hi = None
- # Priority zero: direct replace if the target Tr is the same.
- if measurement.target_tr in (old_lo.target_tr, old_hi.target_tr):
- if measurement.target_tr == old_lo.target_tr:
- new_lo = measurement
- else:
- new_hi = measurement
- # Priority one: invalid lower bound allows only one type of update.
- elif old_lo.loss_fraction > packet_loss_ratio:
- # We can only expand down, old bound becomes valid upper one.
- if measurement.target_tr < old_lo.target_tr:
- new_lo, new_hi = measurement, old_lo
- else:
- return old_interval
-
- # Lower bound is now valid.
- # Next priorities depend on target Tr.
- elif measurement.target_tr < old_lo.target_tr:
- # Lower external measurement, relevant only
- # if the new measurement has high loss rate.
- if measurement.loss_fraction > packet_loss_ratio:
- # Returning the broader interval as old_lo
- # would be invalid upper bound.
- new_lo = measurement
- elif measurement.target_tr > old_hi.target_tr:
- # Upper external measurement, only relevant for invalid upper bound.
- if old_hi.loss_fraction <= packet_loss_ratio:
- # Old upper bound becomes valid new lower bound.
- new_lo, new_hi = old_hi, measurement
- else:
- # Internal measurement, replaced boundary
- # depends on measured loss fraction.
- if measurement.loss_fraction > packet_loss_ratio:
- # We have found a narrow valid interval,
- # regardless of whether old upper bound was valid.
- new_hi = measurement
- else:
- # In ideal world, we would not want to shrink interval
- # if upper bound is not valid.
- # In the real world, we want to shrink it for
- # "invalid upper bound at maximal rate" case.
- new_lo = measurement
-
- return ReceiveRateInterval(
- old_lo if new_lo is None else new_lo,
- old_hi if new_hi is None else new_hi
- )
-
- def ndrpdr(self, state):
- """Perform trials for this phase. Return the new state when done.
-
- :param state: State before this phase.
- :type state: ProgressState
- :returns: The updated state.
- :rtype: ProgressState
- :raises RuntimeError: If total duration is larger than timeout.
- """
- start_time = time.time()
- if state.phases > 0:
- # We need to finish preceding intermediate phases first.
- saved_phases = state.phases
- state.phases -= 1
- # Preceding phases have shorter duration.
- saved_duration = state.duration
- duration_multiplier = state.duration / self.initial_trial_duration
- phase_exponent = float(state.phases) / saved_phases
- state.duration = self.initial_trial_duration * math.pow(
- duration_multiplier, phase_exponent
- )
- # Shorter durations do not need that narrow widths.
- saved_width = state.width_goal
- state.width_goal = self.double_relative_width(state.width_goal)
- # Recurse.
- state = self.ndrpdr(state)
- # Restore the state for current phase.
- state.duration = saved_duration
- state.width_goal = saved_width
- state.phases = saved_phases # Not needed, but just in case.
-
- logging.info(
- f"starting iterations with duration {state.duration} and relative "
- f"width goal {state.width_goal}"
- )
- while 1:
- if time.time() > start_time + self.timeout:
- raise RuntimeError(u"Optimized search takes too long.")
- # Order of priorities: invalid bounds (nl, pl, nh, ph),
- # then narrowing relative Tr widths.
- # Durations are not priorities yet,
- # they will settle on their own hopefully.
- ndr_lo = state.result.ndr_interval.measured_low
- ndr_hi = state.result.ndr_interval.measured_high
- pdr_lo = state.result.pdr_interval.measured_low
- pdr_hi = state.result.pdr_interval.measured_high
- ndr_rel_width = max(
- state.width_goal, state.result.ndr_interval.rel_tr_width
- )
- pdr_rel_width = max(
- state.width_goal, state.result.pdr_interval.rel_tr_width
- )
- # If we are hitting maximal or minimal rate, we cannot shift,
- # but we can re-measure.
- new_tr = self._ndrpdr_loss_fraction(
- state, ndr_lo, ndr_hi, pdr_lo, pdr_hi, ndr_rel_width,
- pdr_rel_width
- )
-
- if new_tr is not None:
- state = self._measure_and_update_state(state, new_tr)
- continue
-
- # If we are hitting maximum_transmit_rate,
- # it is still worth narrowing width,
- # hoping large enough loss fraction will happen.
- # But if we are hitting the minimal rate (at current duration),
- # no additional measurement will help with that,
- # so we can stop narrowing in this phase.
- if (ndr_lo.target_tr <= state.minimum_transmit_rate
- and ndr_lo.loss_fraction > 0.0):
- ndr_rel_width = 0.0
- if (pdr_lo.target_tr <= state.minimum_transmit_rate
- and pdr_lo.loss_fraction > state.packet_loss_ratio):
- pdr_rel_width = 0.0
-
- new_tr = self._ndrpdr_width_goal(
- state, ndr_lo, pdr_lo, ndr_rel_width, pdr_rel_width
- )
-
- if new_tr is not None:
- state = self._measure_and_update_state(state, new_tr)
- continue
-
- # We do not need to improve width, but there still might be
- # some measurements with smaller duration.
- new_tr = self._ndrpdr_duration(
- state, ndr_lo, ndr_hi, pdr_lo, pdr_hi, ndr_rel_width,
- pdr_rel_width
- )
-
- if new_tr is not None:
- state = self._measure_and_update_state(state, new_tr)
- continue
-
- # Widths are narrow (or lower bound minimal), bound measurements
- # are long enough, we can return.
- logging.info(u"phase done")
- break
- return state
-
- def _ndrpdr_loss_fraction(
- self, state, ndr_lo, ndr_hi, pdr_lo, pdr_hi, ndr_rel_width,
- pdr_rel_width):
- """Perform loss_fraction-based trials within a ndrpdr phase
-
- :param state: current state
- :param ndr_lo: ndr interval measured low
- :param ndr_hi: ndr interval measured high
- :param pdr_lo: pdr interval measured low
- :param pdr_hi: pdr interval measured high
- :param ndr_rel_width: ndr interval relative width
- :param pdr_rel_width: pdr interval relative width
- :type state: ProgressState
- :type ndr_lo: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type ndr_hi: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type pdr_lo: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type pdr_hi: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type ndr_rel_width: float
- :type pdr_rel_width: float
- :returns: a new transmit rate if one should be applied
- :rtype: float
- """
- result = None
- if ndr_lo.loss_fraction > 0.0:
- if ndr_lo.target_tr > state.minimum_transmit_rate:
- result = max(
- state.minimum_transmit_rate, self.expand_down(
- ndr_rel_width, self.doublings, ndr_lo.target_tr
- )
- )
- logging.info(f"ndr lo external {result}")
- elif ndr_lo.duration < state.duration:
- result = state.minimum_transmit_rate
- logging.info(u"ndr lo minimal re-measure")
-
- if result is None and pdr_lo.loss_fraction > state.packet_loss_ratio:
- if pdr_lo.target_tr > state.minimum_transmit_rate:
- result = max(
- state.minimum_transmit_rate, self.expand_down(
- pdr_rel_width, self.doublings, pdr_lo.target_tr
- )
- )
- logging.info(f"pdr lo external {result}")
- elif pdr_lo.duration < state.duration:
- result = state.minimum_transmit_rate
- logging.info(u"pdr lo minimal re-measure")
-
- if result is None and ndr_hi.loss_fraction <= 0.0:
- if ndr_hi.target_tr < state.maximum_transmit_rate:
- result = min(
- state.maximum_transmit_rate, self.expand_up(
- ndr_rel_width, self.doublings, ndr_hi.target_tr
- )
- )
- logging.info(f"ndr hi external {result}")
- elif ndr_hi.duration < state.duration:
- result = state.maximum_transmit_rate
- logging.info(u"ndr hi maximal re-measure")
-
- if result is None and pdr_hi.loss_fraction <= state.packet_loss_ratio:
- if pdr_hi.target_tr < state.maximum_transmit_rate:
- result = min(
- state.maximum_transmit_rate, self.expand_up(
- pdr_rel_width, self.doublings, pdr_hi.target_tr
- )
- )
- logging.info(f"pdr hi external {result}")
- elif pdr_hi.duration < state.duration:
- result = state.maximum_transmit_rate
- logging.info(u"ndr hi maximal re-measure")
- return result
-
- def _ndrpdr_width_goal(
- self, state, ndr_lo, pdr_lo, ndr_rel_width, pdr_rel_width):
- """Perform width_goal-based trials within a ndrpdr phase
-
- :param state: current state
- :param ndr_lo: ndr interval measured low
- :param pdr_lo: pdr interval measured low
- :param ndr_rel_width: ndr interval relative width
- :param pdr_rel_width: pdr interval relative width
- :type state: ProgressState
- :type ndr_lo: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type pdr_lo: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type ndr_rel_width: float
- :type pdr_rel_width: float
- :returns: a new transmit rate if one should be applied
- :rtype: float
- Return a new transmit rate if one should be applied.
- """
- if ndr_rel_width > state.width_goal:
- # We have to narrow NDR width first, as NDR internal search
- # can invalidate PDR (but not vice versa).
- result = self.half_step_up(ndr_rel_width, ndr_lo.target_tr)
- logging.info(f"Bisecting for NDR at {result}")
- elif pdr_rel_width > state.width_goal:
- # PDR internal search.
- result = self.half_step_up(pdr_rel_width, pdr_lo.target_tr)
- logging.info(f"Bisecting for PDR at {result}")
- else:
- result = None
- return result
-
- @staticmethod
- def _ndrpdr_duration(
- state, ndr_lo, ndr_hi, pdr_lo, pdr_hi, ndr_rel_width,
- pdr_rel_width):
- """Perform duration-based trials within a ndrpdr phase
-
- :param state: current state
- :param ndr_lo: ndr interval measured low
- :param ndr_hi: ndr interval measured high
- :param pdr_lo: pdr interval measured low
- :param pdr_hi: pdr interval measured high
- :param ndr_rel_width: ndr interval relative width
- :param pdr_rel_width: pdr interval relative width
- :type state: ProgressState
- :type ndr_lo: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type ndr_hi: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type pdr_lo: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type pdr_hi: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type ndr_rel_width: float
- :type pdr_rel_width: float
- :returns: a new transmit rate if one should be applied
- :rtype: float
- """
- # We need to re-measure with full duration, possibly
- # creating invalid bounds to resolve (thus broadening width).
- if ndr_lo.duration < state.duration:
- result = ndr_lo.target_tr
- logging.info(u"re-measuring NDR lower bound")
- elif pdr_lo.duration < state.duration:
- result = pdr_lo.target_tr
- logging.info(u"re-measuring PDR lower bound")
- # Except when lower bounds have high loss fraction, in that case
- # we do not need to re-measure _upper_ bounds.
- elif ndr_hi.duration < state.duration and ndr_rel_width > 0.0:
- result = ndr_hi.target_tr
- logging.info(u"re-measuring NDR upper bound")
- elif pdr_hi.duration < state.duration and pdr_rel_width > 0.0:
- result = pdr_hi.target_tr
- logging.info(u"re-measuring PDR upper bound")
- else:
- result = None
- return result
diff --git a/resources/libraries/python/MLRsearch/NdrPdrResult.py b/resources/libraries/python/MLRsearch/NdrPdrResult.py
deleted file mode 100644
index 3454ef1957..0000000000
--- a/resources/libraries/python/MLRsearch/NdrPdrResult.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""Module defining NdrPdrResult class."""
-
-from .ReceiveRateInterval import ReceiveRateInterval
-
-
-class NdrPdrResult:
- """Two measurement intervals, return value of search algorithms.
-
- Partial fraction is NOT part of the result. Pdr interval should be valid
- for all partial fractions implied by the interval."""
-
- def __init__(self, ndr_interval, pdr_interval):
- """Store the measured intervals after checking argument types.
-
- :param ndr_interval: Object containing data for NDR part of the result.
- :param pdr_interval: Object containing data for PDR part of the result.
- :type ndr_interval: ReceiveRateInterval.ReceiveRateInterval
- :type pdr_interval: ReceiveRateInterval.ReceiveRateInterval
- """
- # TODO: Type checking is not very pythonic,
- # perhaps users can fix wrong usage without it?
- if not isinstance(ndr_interval, ReceiveRateInterval):
- raise TypeError(
- f"ndr_interval, is not a ReceiveRateInterval: {ndr_interval!r}"
- )
- if not isinstance(pdr_interval, ReceiveRateInterval):
- raise TypeError(
- f"pdr_interval, is not a ReceiveRateInterval: {pdr_interval!r}"
- )
- self.ndr_interval = ndr_interval
- self.pdr_interval = pdr_interval
-
- def width_in_goals(self, relative_width_goal):
- """Return a debug string related to current widths in logarithmic scale.
-
- :param relative_width_goal: Upper bound times this is the goal
- difference between upper bound and lower bound.
- :type relative_width_goal: float
- :returns: Message containing NDR and PDR widths in goals.
- :rtype: str
- """
- return f"ndr {self.ndr_interval.width_in_goals(relative_width_goal)};" \
- f" pdr {self.pdr_interval.width_in_goals(relative_width_goal)}"
-
- def __str__(self):
- """Return string as tuple of named values."""
- return f"NDR={self.ndr_interval!s};PDR={self.pdr_interval!s}"
-
- def __repr__(self):
- """Return string evaluable as a constructor call."""
- return f"NdrPdrResult(ndr_interval={self.ndr_interval!r}," \
- f"pdr_interval={self.pdr_interval!r})"
diff --git a/resources/libraries/python/MLRsearch/ReceiveRateInterval.py b/resources/libraries/python/MLRsearch/ReceiveRateInterval.py
deleted file mode 100644
index eff23e8bcc..0000000000
--- a/resources/libraries/python/MLRsearch/ReceiveRateInterval.py
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""Module defining ReceiveRateInterval class."""
-
-import math
-
-from .ReceiveRateMeasurement import ReceiveRateMeasurement
-
-
-class ReceiveRateInterval:
- """Structure defining two Rr measurements, and their relation."""
-
- def __init__(self, measured_low, measured_high):
- """Store the bound measurements after checking argument types.
-
- :param measured_low: Measurement for the lower bound.
- :param measured_high: Measurement for the upper bound.
- :type measured_low: ReceiveRateMeasurement.ReceiveRateMeasurement
- :type measured_high: ReceiveRateMeasurement.ReceiveRateMeasurement
- """
- # TODO: Type checking is not very pythonic,
- # perhaps users can fix wrong usage without it?
- if not isinstance(measured_low, ReceiveRateMeasurement):
- raise TypeError(
- f"measured_low is not a ReceiveRateMeasurement: "
- f"{measured_low!r}"
- )
- if not isinstance(measured_high, ReceiveRateMeasurement):
- raise TypeError(
- f"measured_high is not a ReceiveRateMeasurement: "
- f"{measured_high!r}"
- )
- self.measured_low = measured_low
- self.measured_high = measured_high
- # Declare secondary quantities to appease pylint.
- self.abs_tr_width = None
- """Absolute width of target transmit rate. Upper minus lower."""
- self.rel_tr_width = None
- """Relative width of target transmit rate. Absolute divided by upper."""
- self.sort()
-
- def sort(self):
- """Sort bounds by target Tr, compute secondary quantities."""
- if self.measured_low.target_tr > self.measured_high.target_tr:
- self.measured_low, self.measured_high = (
- self.measured_high, self.measured_low
- )
- self.abs_tr_width = (
- self.measured_high.target_tr - self.measured_low.target_tr
- )
- self.rel_tr_width = self.abs_tr_width / self.measured_high.target_tr
-
- def width_in_goals(self, relative_width_goal):
- """Return float value.
-
- Relative width goal is some (negative) value on logarithmic scale.
- Current relative width is another logarithmic value.
- Return the latter divided by the former.
- This is useful when investigating how did surprising widths come to be.
-
- :param relative_width_goal: Upper bound times this is the goal
- difference between upper bound and lower bound.
- :type relative_width_goal: float
- :returns: Current width as logarithmic multiple of goal width [1].
- :rtype: float
- """
- return math.log(1.0 - self.rel_tr_width) / math.log(
- 1.0 - relative_width_goal)
-
- def __str__(self):
- """Return string as half-open interval."""
- return f"[{self.measured_low!s};{self.measured_high!s})"
-
- def __repr__(self):
- """Return string evaluable as a constructor call."""
- return f"ReceiveRateInterval(measured_low={self.measured_low!r}," \
- f"measured_high={self.measured_high!r})"
diff --git a/resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py b/resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py
deleted file mode 100644
index c732e66026..0000000000
--- a/resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Module defining ReceiveRateMeasurement class."""
-
-
-class ReceiveRateMeasurement:
- """Structure defining the result of single Rr measurement."""
-
- def __init__(
- self, duration, target_tr, transmit_count, loss_count,
- approximated_duration=0.0, partial_transmit_count=0):
- """Constructor, normalize primary and compute secondary quantities.
-
- If approximated_duration is nonzero, it is stored.
- If approximated_duration is zero, duration value is stored.
- Either way, additional secondary quantities are computed
- from the store value.
-
- If there is zero transmit_count, fractions are set to zero.
-
- In some cases, traffic generator does not attempt all the needed
- transactions. In that case, nonzero partial_transmit_count
- holds (an estimate of) count of the actually attempted transactions.
- This is used to populate some secondary quantities.
-
- TODO: Use None instead of zero?
-
- :param duration: Measurement duration [s].
- :param target_tr: Target transmit rate [pps].
- If bidirectional traffic is measured, this is bidirectional rate.
- :param transmit_count: Number of packets transmitted [1].
- :param loss_count: Number of packets transmitted but not received [1].
- :param approximated_duration: Estimate of the actual time of the trial.
- :param partial_transmit_count: Estimate count of actually attempted
- transactions.
- :type duration: float
- :type target_tr: float
- :type transmit_count: int
- :type loss_count: int
- :type approximated_duration: float
- :type partial_transmit_count: int
- """
- self.duration = float(duration)
- self.target_tr = float(target_tr)
- self.transmit_count = int(transmit_count)
- self.loss_count = int(loss_count)
- self.receive_count = transmit_count - loss_count
- self.transmit_rate = transmit_count / self.duration
- self.loss_rate = loss_count / self.duration
- self.receive_rate = self.receive_count / self.duration
- self.loss_fraction = (
- float(self.loss_count) / self.transmit_count
- if self.transmit_count > 0 else 1.0
- )
- self.receive_fraction = (
- float(self.receive_count) / self.transmit_count
- if self.transmit_count > 0 else 0.0
- )
- self.approximated_duration = (
- float(approximated_duration) if approximated_duration
- else self.duration
- )
- self.approximated_receive_rate = (
- self.receive_count / self.approximated_duration
- if self.approximated_duration > 0.0 else 0.0
- )
- # If the traffic generator is unreliable and sends less packets,
- # the absolute receive rate might be too low for next target.
- self.partial_transmit_count = (
- int(partial_transmit_count) if partial_transmit_count
- else self.transmit_count
- )
- self.partial_receive_fraction = (
- float(self.receive_count) / self.partial_transmit_count
- if self.partial_transmit_count > 0 else 0.0
- )
- self.partial_receive_rate = (
- self.target_tr * self.partial_receive_fraction
- )
- # We use relative packet ratios in order to support cases
- # where target_tr is in transactions per second,
- # but there are multiple packets per transaction.
- self.relative_receive_rate = (
- self.target_tr * self.receive_count / self.transmit_count
- )
-
- def __str__(self):
- """Return string reporting input and loss fraction."""
- return f"d={self.duration!s},Tr={self.target_tr!s}," \
- f"Df={self.loss_fraction!s}"
-
- def __repr__(self):
- """Return string evaluable as a constructor call."""
- return f"ReceiveRateMeasurement(duration={self.duration!r}," \
- f"target_tr={self.target_tr!r}," \
- f"transmit_count={self.transmit_count!r}," \
- f"loss_count={self.loss_count!r}," \
- f"approximated_duration={self.approximated_duration!r}," \
- f"partial_transmit_count={self.partial_transmit_count!r})"
diff --git a/resources/libraries/python/MLRsearch/__init__.py b/resources/libraries/python/MLRsearch/__init__.py
index 70c713eaa0..09ce7e6719 100644
--- a/resources/libraries/python/MLRsearch/__init__.py
+++ b/resources/libraries/python/MLRsearch/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -14,3 +14,17 @@
"""
__init__ file for Python package "MLRsearch".
"""
+
+# TODO: Move submodules to separate modules.
+# Not obvious how to do that from PyPI point of view
+# without affecting the current CSIT global "resources" package root.
+# Probably it can be done by specifying multiple directories
+# in PYTHONPATH used throughout CSIT.
+
+# Import user-facing (API) stuff, so users do not need to know submodules.
+from .config import Config
+from .goal_result import GoalResult
+from .multiple_loss_ratio_search import MultipleLossRatioSearch
+from .pep3140 import Pep3140Dict
+from .search_goal import SearchGoal
+from .trial_measurement import AbstractMeasurer, MeasurementResult
diff --git a/resources/libraries/python/MLRsearch/candidate.py b/resources/libraries/python/MLRsearch/candidate.py
new file mode 100644
index 0000000000..16bbe60bae
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/candidate.py
@@ -0,0 +1,153 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining Candidate class."""
+
+from __future__ import annotations
+
+from dataclasses import dataclass
+from functools import total_ordering
+from typing import Optional
+
+from .discrete_load import DiscreteLoad
+from .discrete_width import DiscreteWidth
+from .selector import Selector
+
+
+@total_ordering
+@dataclass(frozen=True)
+class Candidate:
+ """Class describing next trial inputs, as nominated by a selector.
+
+ As each selector is notified by the controller when its nominated load
+ becomes the winner, a reference to the selector is also included here.
+
+ The rest of the code focuses on defining the ordering between candidates.
+ When two instances are compared, the lesser has higher priority
+ for choosing which trial is actually performed next.
+
+ As Python implicitly converts values to bool in many places
+ (e.g. in "if" statement), any instance is called "truthy" if it converts
+ to True, and "falsy" if it converts to False.
+ To make such places nice and readable, __bool__ method is implemented
+ in a way that a candidate instance is falsy if its load is None.
+ As a falsy candidate never gets measured,
+ other fields of a falsy instance are irrelevant.
+ """
+
+ load: Optional[DiscreteLoad] = None
+ """Measure at this intended load. None if no load nominated by selector."""
+ duration: float = None
+ """Trial duration as chosen by the selector."""
+ width: Optional[DiscreteWidth] = None
+ """Set the global width to this when this candidate becomes the winner."""
+ selector: Selector = None
+ """Reference to the selector instance which nominated this candidate."""
+
+ def __str__(self) -> str:
+ """Convert trial inputs into a short human-readable string.
+
+ :returns: The short string.
+ :rtype: str
+ """
+ return f"d={self.duration},l={self.load}"
+
+ def __eq__(self, other: Candidate) -> bool:
+ """Return wheter self is identical to the other candidate.
+
+ This is just a pretense for total ordering wrapper to work.
+ In reality, MLRsearch shall never test equivalence,
+ so we save space by just raising RuntimeError if this is ever called.
+
+ :param other: The other instance to compare to.
+ :type other: Candidate
+ :returns: True if the instances are equivalent.
+ :rtype: bool
+ :raises RuntimeError: Always, to prevent unintended usage.
+ """
+ raise RuntimeError("Candidate equality comparison shall not be needed.")
+
+ def __lt__(self, other: Candidate) -> bool:
+ """Return whether self should be measured before other.
+
+ In the decreasing order of importance:
+ Non-None load is preferred.
+ Self is less than other when both loads are None.
+ Lower offered load is preferred.
+ Longer trial duration is preferred.
+ Non-none width is preferred.
+ Larger width is preferred.
+ Self is preferred.
+
+ The logic comes from the desire to save time and being conservative.
+
+ :param other: The other instance to compare to.
+ :type other: Candidate
+ :returns: True if self should be measured sooner.
+ :rtype: bool
+ """
+ if not self.load:
+ if other.load:
+ return False
+ return True
+ if not other.load:
+ return True
+ if self.load < other.load:
+ return True
+ if self.load > other.load:
+ return False
+ if self.duration > other.duration:
+ return True
+ if self.duration < other.duration:
+ return False
+ if not self.width:
+ if other.width:
+ return False
+ return True
+ if not other.width:
+ return True
+ return self.width >= other.width
+
+ def __bool__(self) -> bool:
+ """Does this candidate choose to perform any trial measurement?
+
+ :returns: True if yes, it does choose to perform.
+ :rtype: bool
+ """
+ return bool(self.load)
+
+ @staticmethod
+ def nomination_from(selector: Selector) -> Candidate:
+ """Call nominate on selector, wrap into Candidate instance to return.
+
+ We avoid dependency cycle while letting candidate depend on selector,
+ therefore selector cannot know how to wrap its nomination
+ into a full candidate instance.
+ This factory method finishes the wrapping.
+
+ :param selector: Selector to call.
+ :type selector: Selector
+ :returns: Newly created Candidate instance with nominated trial inputs.
+ :rtype: Candidate
+ """
+ load, duration, width = selector.nominate()
+ return Candidate(
+ load=load,
+ duration=duration,
+ width=width,
+ selector=selector,
+ )
+
+ def won(self) -> None:
+ """Inform selector its candidate became a winner."""
+ self.selector.won(self.load)
diff --git a/resources/libraries/python/MLRsearch/config.py b/resources/libraries/python/MLRsearch/config.py
new file mode 100644
index 0000000000..7aa8ed75a8
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/config.py
@@ -0,0 +1,179 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining Config class."""
+
+from collections.abc import Iterable
+from dataclasses import dataclass
+from typing import Optional
+
+from .dataclass import DataclassProperty
+from .search_goal import SearchGoal
+from .search_goal_tuple import SearchGoalTuple
+
+
+@dataclass
+class Config:
+ """Structure containing several static config items.
+
+ The main MLRsearch algorithm uses multiple customizable values.
+ Pylint complains if the values appear as long argument lists
+ or multiple local variables.
+
+ This class offers a storage for values which do not contain
+ internally mutable state and are set at an unknown time
+ before the search starts. This way users can override only some values,
+ and do it over multiple calls.
+ All "official" user inputs are contained here.
+
+ Properties are defined to enforce the requirements on allowed values.
+ All fields have default values, so instances can be created without any.
+ It is still recommended to set all values after instantiation,
+ as the defaults may change in the next version.
+
+ As some relations between values of different fields are required,
+ users must take care to set them in the correct order.
+
+ For example, min_load has to be set to a value smaller
+ than the current value of max_load.
+ """
+
+ # Externally visible "fields" (but in fact redefined as properties).
+ goals: SearchGoalTuple = SearchGoalTuple((SearchGoal(),))
+ """Container holding search goals."""
+ min_load: float = 9001.0
+ """Each trial measurement must have intended load at least this [tps]."""
+ max_load: float = 1e9
+ """Each trial measurement must have intended load at most this [tps]."""
+ search_duration_max: float = 1200.0
+ """The search will end as a failure this long [s] after it is started."""
+ warmup_duration: float = 1.0
+ """If specified, one trial at max load and this duration is performed
+ before the usual search starts. None converts to zero and means no warmup.
+ The results of that one trial are ignored."""
+
+ @DataclassProperty
+ def goals(self) -> SearchGoalTuple:
+ """Return the reference to the current container of goals.
+
+ :returns: The current container instance.
+ :rtype: SearchGoalTuple
+ """
+ return self._goals
+
+ @goals.setter
+ def goals(self, goals: Iterable[SearchGoal]) -> None:
+ """Create and store the goal container.
+
+ :param goals: Search goals to add to the container to store.
+ :type goals: Iterable[SearchGoal]
+ :raises ValueError: If there are no goals.
+ :raises TypeError: If any of the goals is not a SearchGoal.
+ """
+ self._goals = SearchGoalTuple(goals)
+
+ @DataclassProperty
+ def min_load(self) -> float:
+ """Getter for min load, no logic here.
+
+ :returns: Currently set minimal intended load [tps].
+ :rtype: float
+ """
+ return self._min_load
+
+ @min_load.setter
+ def min_load(self, load: float) -> None:
+ """Set min load after converting type and checking value.
+
+ :param load: Minimal intended load [tps] to set.
+ :type load: float
+ :raises ValueError: If the argument is found invalid.
+ """
+ load = float(load)
+ if load <= 0.0:
+ raise ValueError(f"Min load {load} must be positive.")
+ # At the time init is first called, _max_load is not set yet.
+ if hasattr(self, "_max_load") and load >= self.max_load:
+ raise ValueError(f"Min load {load} must be smaller.")
+ self._min_load = load
+
+ @DataclassProperty
+ def max_load(self) -> float:
+ """Getter for max load, no logic here.
+
+ :returns: Currently set maximal intended load [tps].
+ :rtype: float
+ """
+ return self._max_load
+
+ @max_load.setter
+ def max_load(self, load: float) -> None:
+ """Set max load after converting type and checking value.
+
+ :param load: Minimal intended load [tps] to set.
+ :type load: float
+ :raises ValueError: If the argument is found invalid.
+ """
+ load = float(load)
+ if load <= self.min_load:
+ raise ValueError(f"Max load {load} must be bigger.")
+ self._max_load = load
+
+ @DataclassProperty
+ def search_duration_max(self) -> float:
+ """Getter for max search duration, no logic here.
+
+ :returns: Currently set max search duration [s].
+ :rtype: float
+ """
+ return self._search_duration_max
+
+ @search_duration_max.setter
+ def search_duration_max(self, duration: float) -> None:
+ """Set max search duration after converting and checking value.
+
+ :param duration: Search duration maximum [s] to set.
+ :type duration: float
+ :raises ValueError: If the argument is found invalid.
+ """
+ duration = float(duration)
+ if duration <= 0.0:
+ raise ValueError(f"Search duration max too small: {duration}")
+ self._search_duration_max = duration
+
+ @DataclassProperty
+ def warmup_duration(self) -> float:
+ """Getter for warmup duration, no logic here.
+
+ :returns: Currently set max search duration [s].
+ :rtype: float
+ """
+ return self._warmup_duration
+
+ @warmup_duration.setter
+ def warmup_duration(self, duration: Optional[float]) -> None:
+ """Set warmup duration after converting and checking value.
+
+ Zero duration is treated as None, meaning no warmup trial.
+
+ :param duration: Warmup duration [s] to set.
+ :type duration: Optional(float)
+ :raises ValueError: If the argument is found invalid.
+ """
+ if duration:
+ duration = float(duration)
+ if duration < 0.0:
+ raise ValueError(f"Warmup duration too small: {duration}")
+ else:
+ duration = 0.0
+ self._warmup_duration = duration
diff --git a/resources/libraries/python/MLRsearch/dataclass/__init__.py b/resources/libraries/python/MLRsearch/dataclass/__init__.py
new file mode 100644
index 0000000000..e546b090c9
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/dataclass/__init__.py
@@ -0,0 +1,19 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""
+__init__ file for Python package "dataclass_property".
+"""
+
+from .dc_property import DataclassProperty
+from .field import secondary_field
diff --git a/resources/libraries/python/MLRsearch/dataclass/dc_property.py b/resources/libraries/python/MLRsearch/dataclass/dc_property.py
new file mode 100644
index 0000000000..7f3b49aeb8
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/dataclass/dc_property.py
@@ -0,0 +1,173 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining DataclassProperty class.
+
+The main issue that needs support is dataclasses with properties
+(including setters) and with (immutable) default values.
+
+First, this explains how property ends up passed as default constructor value:
+https://florimond.dev/en/posts/2018/10/
+/reconciling-dataclasses-and-properties-in-python/
+TL;DR: By the time __init__ is generated, original class variable (type hint)
+is replaced by property (method definition).
+
+Second, there are ways to deal with that:
+https://stackoverflow.com/a/61480946
+TL;DR: It relies on the underscored field being replaced by the value.
+
+But that does not work for field which use default_factory (or no default)
+(the underscored class field is deleted instead).
+So another way is needed to cover those cases,
+ideally without the need to define both original and underscored field.
+
+This implementation relies on a fact that decorators are executed
+when the class fields do yet exist, and decorated function
+does know its name, so the decorator can get the value stored in
+the class field, and store it as an additional attribute of the getter function.
+Then for setter, the property contains the getter (as an unbound function),
+so it can access the additional attribute to get the value.
+
+This approach circumvents the precautions dataclasses take to prevent mishaps
+when a single mutable object is shared between multiple instances.
+So it is up to setters to create an appropriate copy of the default object
+if the default value is mutable.
+
+The default value cannot be MISSING nor Field nor DataclassProperty,
+otherwise the intended logic breaks.
+"""
+
+from __future__ import annotations
+
+from dataclasses import Field, MISSING
+from functools import wraps
+from inspect import stack
+from typing import Callable, Optional, TypeVar, Union
+
+
+Self = TypeVar("Self")
+"""Type for the dataclass instances being created using properties."""
+Value = TypeVar("Value")
+"""Type for the value the property (getter, setter) handles."""
+
+
+def _calling_scope_variable(name: str) -> Value:
+ """Get a variable from a higher scope.
+
+ This feels dirty, but without this the syntactic sugar
+ would not be sweet enough.
+
+ The implementation is copied from https://stackoverflow.com/a/14694234
+ with the difference of raising RuntimeError (instead of returning None)
+ if no variable of that name is found in any of the scopes.
+
+ :param name: Name of the variable to access.
+ :type name: str
+ :returns: The value of the found variable.
+ :rtype: Value
+ :raises RuntimeError: If the variable is not found in any calling scope.
+ """
+ frame = stack()[1][0]
+ while name not in frame.f_locals:
+ frame = frame.f_back
+ if frame is None:
+ raise RuntimeError(f"Field {name} value not found.")
+ return frame.f_locals[name]
+
+
+class DataclassProperty(property):
+ """Subclass of property, handles default values for dataclass fields.
+
+ If a dataclass field does not specify a default value (nor default_factory),
+ this is not needed, and in fact it will not work (so use built-in property).
+
+ This implementation seemlessly finds and inserts the default value
+ (can be mutable) into a new attribute of the getter function.
+ Before calling a setter function in init (recognized by type),
+ the default value is retrieved and passed transparently to the setter.
+ It is the responsibilty of the setter to appropriately clone the value,
+ in order to prevent multiple instances sharing the same mutable value.
+ """
+
+ def __init__(
+ self,
+ fget: Optional[Callable[[], Value]] = None,
+ fset: Optional[Callable[[Self, Value], None]] = None,
+ fdel: Optional[Callable[[], None]] = None,
+ doc: Optional[str] = None,
+ ):
+ """Find and store the default value, construct the property.
+
+ See this for how the superclass property works:
+ https://docs.python.org/3/howto/descriptor.html#properties
+
+ :param fget: Getter (unbound) function to use, if any.
+ :param fset: Setter (unbound) function to use, if any.
+ :param fdel: Deleter (unbound) function to use, if any.
+ :param doc: Docstring to display when examining the property.
+ :type fget: Optional[Callable[[Self], Value]]
+ :type fset: Optional[Callable[[Self, Value], None]]
+ :type fdel: Optional[Callable[[Self], None]]
+ :type doc: Optional[str]
+ """
+ variable_found = _calling_scope_variable(fget.__name__)
+ if not isinstance(variable_found, DataclassProperty):
+ if isinstance(variable_found, Field):
+ if variable_found.default is not MISSING:
+ fget.default_value = variable_found.default
+ # Else do not store any default value.
+ else:
+ fget.default_value = variable_found
+ # Else this is the second time init is called (when setting setter),
+ # in which case the default is already stored into fget.
+ super().__init__(fget=fget, fset=fset, fdel=fdel, doc=doc)
+
+ def setter(
+ self,
+ fset: Optional[Callable[[Self, Value], None]],
+ ) -> DataclassProperty:
+ """Return new instance with a wrapped setter function set.
+
+ If the argument is None, call superclass method.
+
+ The wrapped function recognizes when it is called in init
+ (by the fact the value argument is of type DataclassProperty)
+ and in that case it extracts the stored default and passes that
+ to the user-defined setter function.
+
+ :param fset: Setter function to wrap and apply.
+ :type fset: Optional[Callable[[Self, Value], None]]
+ :returns: New property instance with correct setter function set.
+ :rtype: DataclassProperty
+ """
+ if fset is None:
+ return super().setter(fset)
+
+ @wraps(fset)
+ def wrapped(sel_: Self, val: Union[Value, DataclassProperty]) -> None:
+ """Extract default from getter if needed, call the user setter.
+
+ The sel_ parameter is listed explicitly, to signify
+ this is an unbound function, not a bounded method yet.
+
+ :param sel_: Instance of dataclass (not of DataclassProperty)
+ to set the value on.
+ :param val: Set this value, or the default value stored there.
+ :type sel_: Self
+ :type val: Union[Value, DataclassProperty]
+ """
+ if isinstance(val, DataclassProperty):
+ val = val.fget.default_value
+ fset(sel_, val)
+
+ return super().setter(wrapped)
diff --git a/resources/libraries/python/MLRsearch/dataclass/field.py b/resources/libraries/python/MLRsearch/dataclass/field.py
new file mode 100644
index 0000000000..55d9d0879f
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/dataclass/field.py
@@ -0,0 +1,44 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining secondary_field function.
+
+Just a shrothand for frequently repeated expression.
+
+The main point is that this dataclass field is not used in init.
+Maybe it is a derived value of a frozen dataclass.
+Maybe it is a cache to help avoiding repeated computation.
+Maybe it is a temporary value stored in one method and read in another method.
+In any case, the caller does not need to know it is here,
+so it is excluded from repr, hashing, ordering and similar.
+"""
+
+from dataclasses import Field, field
+
+
+def secondary_field() -> Field:
+ """Return newly created Field with non-default arguments
+
+ In practice, it seems to be fine to reuse the resulting Field instance
+ when defining multiple dataclass fields,
+ but we keep this as a function to improve readability.
+
+ :returns: A new Field instance useful for secondary fields.
+ :rtype: Field
+ """
+ return field(
+ default=None,
+ init=False,
+ repr=False,
+ compare=False,
+ )
diff --git a/resources/libraries/python/MLRsearch/discrete_interval.py b/resources/libraries/python/MLRsearch/discrete_interval.py
new file mode 100644
index 0000000000..0a3bf443a8
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/discrete_interval.py
@@ -0,0 +1,140 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining DiscreteInterval class."""
+
+from dataclasses import dataclass
+
+from .dataclass import secondary_field
+from .discrete_load import DiscreteLoad
+from .discrete_width import DiscreteWidth
+
+
+# TODO: Can this be frozen?
+@dataclass
+class DiscreteInterval:
+ """Interval class with more computations available.
+
+ Along discrete form of width,
+ a MLR specific way for halving the interval is also included.
+
+ The two primary field values do not have to be valid relevant bounds,
+ but at the end of the search, they usually are.
+
+ The load values must be round.
+ """
+
+ lower_bound: DiscreteLoad
+ """Value for the lower intended load (or load stats or similar)."""
+ upper_bound: DiscreteLoad
+ """Value for the higher intended load (or load stats or similar)."""
+ # Primary fields above, derived below.
+ discrete_width: DiscreteWidth = secondary_field()
+ """Discrete width between intended loads (upper_bound minus lower_bound)."""
+
+ def __post_init__(self) -> None:
+ """Sort bounds by intended load, compute secondary quantities.
+
+ :raises RuntimeError: If a result used non-rounded load.
+ """
+ if not self.lower_bound.is_round:
+ raise RuntimeError(f"Non-round lower bound: {self.lower_bound!r}")
+ if not self.upper_bound.is_round:
+ raise RuntimeError(f"Non-round upper bound: {self.upper_bound!r}")
+ if self.lower_bound > self.upper_bound:
+ tmp = self.lower_bound
+ self.lower_bound = self.upper_bound
+ self.upper_bound = tmp
+ self.discrete_width = self.upper_bound - self.lower_bound
+
+ def __str__(self) -> str:
+ """Convert to a short human-readable string.
+
+ :returns: The short string.
+ :rtype: str
+ """
+ return (
+ f"lower_bound=({self.lower_bound}),upper_bound=({self.upper_bound})"
+ )
+
+ # TODO: Use "target" instad of "goal" in argument and variable names.
+
+ def width_in_goals(self, goal: DiscreteWidth) -> float:
+ """Return relative width as a multiple of the given goal (int form).
+
+ Integer forms are used for computation, safe as loads are rounded.
+ The result is a float, as self int may not be divisible by goal int.
+
+ :param goal: A relative width amount to be used as a unit.
+ :type goal: DiscreteWidth
+ :returns: Self width in multiples of (integer form of) goal width.
+ :rtype: float
+ """
+ return int(self.discrete_width) / int(goal)
+
+ def middle(self, goal: DiscreteWidth) -> DiscreteLoad:
+ """Return new intended load (discrete form) in the middle.
+
+ All calculations are based on int forms.
+
+ One of the halfs is rounded to a power-of-two multiple of the goal.
+ The power that leads to most even split is used.
+ Lower width is the smaller one (if not exactly even).
+
+ This approach prefers lower loads (to remain conservative) and can save
+ some measurements (when all middle measurements have high loss).
+ Note that when competing with external search from above,
+ that search is already likely to produce widths that are
+ power-of-two multiples of the target width.
+
+ If the interval width is one goal (or less), RuntimeError is raised.
+ If the interval width is between one and two goals (not including),
+ a more even split is attempted (using half the goal value).
+
+ :param goal: Target width goal to use for uneven halving.
+ :type goal: DiscreteWidth
+ :returns: New load to use for bisecting.
+ :rtype: DiscreteLoad
+ :raises RuntimeError: If an internal inconsistency is detected.
+ """
+ int_self, int_goal = int(self.discrete_width), int(goal)
+ if int_self <= int_goal:
+ raise RuntimeError(f"Do not halve small enough interval: {self!r}")
+ if int_self == 2 * int_goal:
+ # Even split, return here simplifies the while loop below.
+ return self.lower_bound + goal
+ if int_self < 2 * int_goal:
+ # This can only happen when int_goal >= 2.
+ # In this case, we do not have good enough split at this width goal,
+ # but maybe this is not the final target, so we can attempt
+ # a split at half width goal.
+ if not int_goal % 2:
+ return self.middle(goal=goal.half_rounded_down())
+ # Odd int_goal, so this must by the last phase. Do even split.
+ lo_width = self.discrete_width.half_rounded_down()
+ return self.lower_bound + lo_width
+ hi_width = goal
+ lo_width = self.discrete_width - hi_width
+ # We know lo_width > hi_width because we did not do the even split.
+ while 1:
+ hi2_width = hi_width * 2
+ lo2_width = self.discrete_width - hi2_width
+ if lo2_width <= hi2_width:
+ break
+ hi_width, lo_width = hi2_width, lo2_width
+ # Which of the two options is more even? Product decides.
+ if int(hi_width) * int(lo_width) > int(hi2_width) * int(lo2_width):
+ # Previous attempt was more even, but hi_width was the smaller one.
+ lo2_width = hi_width
+ # Else lo2_width is more even and no larger than hi2_width.
+ return self.lower_bound + lo2_width
diff --git a/resources/libraries/python/MLRsearch/discrete_load.py b/resources/libraries/python/MLRsearch/discrete_load.py
new file mode 100644
index 0000000000..a75b4acf96
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/discrete_load.py
@@ -0,0 +1,316 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining DiscreteLoad class."""
+
+from __future__ import annotations
+
+from dataclasses import dataclass, field
+from functools import total_ordering
+from typing import Callable, Optional, Union
+
+from .load_rounding import LoadRounding
+from .discrete_width import DiscreteWidth
+
+
+@total_ordering
+@dataclass
+class DiscreteLoad:
+ """Structure to store load value together with its rounded integer form.
+
+ LoadRounding instance is needed to enable conversion between two forms.
+ Conversion methods and factories are added for convenience.
+
+ In general, the float form is allowed to differ from conversion from int.
+
+ Comparisons are supported, acting on the float load component.
+ Additive operations are supported, acting on int form.
+ Multiplication by a float constant is supported, acting on float form.
+
+ As for all user defined classes by default, all instances are truthy.
+ That is useful when dealing with Optional values, as None is falsy.
+
+ This dataclass is effectively frozen, but cannot be marked as such
+ as that would prevent LoadStats from being its subclass.
+ """
+
+ # For most debugs, rounding in repr just takes space.
+ rounding: LoadRounding = field(repr=False, compare=False)
+ """Rounding instance to use for conversion."""
+ float_load: float = None
+ """Float form of intended load [tps], usable for measurer."""
+ int_load: int = field(compare=False, default=None)
+ """Integer form, usable for exact computations."""
+
+ def __post_init__(self) -> None:
+ """Ensure types, compute missing information.
+
+ At this point, it is allowed for float load to differ from
+ conversion from int load. MLRsearch should round explicitly later,
+ based on its additional information.
+
+ :raises RuntimeError: If both init arguments are None.
+ """
+ if self.float_load is None and self.int_load is None:
+ raise RuntimeError("Float or int value is needed.")
+ if self.float_load is None:
+ self.int_load = int(self.int_load)
+ self.float_load = self.rounding.int2float(self.int_load)
+ else:
+ self.float_load = float(self.float_load)
+ self.int_load = self.rounding.float2int(self.float_load)
+
+ def __str__(self) -> str:
+ """Convert to a short human-readable string.
+
+ :returns: The short string.
+ :rtype: str
+ """
+ return f"int_load={int(self)}"
+
+ # Explicit comparison operators.
+ # Those generated with dataclass order=True do not allow subclass instances.
+
+ def __eq__(self, other: Optional[DiscreteLoad]) -> bool:
+ """Return whether the other instance has the same float form.
+
+ None is effectively considered to be an unequal instance.
+
+ :param other: Other instance to compare to, or None.
+ :type other: Optional[DiscreteLoad]
+ :returns: True only if float forms are exactly equal.
+ :rtype: bool
+ """
+ if other is None:
+ return False
+ return float(self) == float(other)
+
+ def __lt__(self, other: DiscreteLoad) -> bool:
+ """Return whether self has smaller float form than the other instance.
+
+ None is not supported, as MLRsearch does not need that
+ (so when None appears we want to raise).
+
+ :param other: Other instance to compare to.
+ :type other: DiscreteLoad
+ :returns: True only if float forms of self is strictly smaller.
+ :rtype: bool
+ """
+ return float(self) < float(other)
+
+ def __hash__(self) -> int:
+ """Return a hash based on the float value.
+
+ With this, the instance can be used as if it was immutable and hashable,
+ e.g. it can be a key in a dict.
+
+ :returns: Hash value for this instance.
+ :rtype: int
+ """
+ return hash(float(self))
+
+ @property
+ def is_round(self) -> bool:
+ """Return whether float load matches converted int load.
+
+ :returns: False if float load is not rounded.
+ :rtype: bool
+ """
+ expected = self.rounding.int2float(self.int_load)
+ return expected == self.float_load
+
+ def __int__(self) -> int:
+ """Return the int value.
+
+ :returns: The int field value.
+ :rtype: int
+ """
+ return self.int_load
+
+ def __float__(self) -> float:
+ """Return the float value.
+
+ :returns: The float field value [tps].
+ :rtype: float
+ """
+ return self.float_load
+
+ @staticmethod
+ def int_conver(rounding: LoadRounding) -> Callable[[int], DiscreteLoad]:
+ """Return a factory that turns an int load into a discrete load.
+
+ :param rounding: Rounding instance needed.
+ :type rounding: LoadRounding
+ :returns: Factory to use when converting from int.
+ :rtype: Callable[[int], DiscreteLoad]
+ """
+
+ def factory_int(int_load: int) -> DiscreteLoad:
+ """Use rounding and int load to create discrete load.
+
+ :param int_load: Intended load in integer form.
+ :type int_load: int
+ :returns: New discrete load instance matching the int load.
+ :rtype: DiscreteLoad
+ """
+ return DiscreteLoad(rounding=rounding, int_load=int_load)
+
+ return factory_int
+
+ @staticmethod
+ def float_conver(rounding: LoadRounding) -> Callable[[float], DiscreteLoad]:
+ """Return a factory that turns a float load into a discrete load.
+
+ :param rounding: Rounding instance needed.
+ :type rounding: LoadRounding
+ :returns: Factory to use when converting from float.
+ :rtype: Callable[[float], DiscreteLoad]
+ """
+
+ def factory_float(float_load: float) -> DiscreteLoad:
+ """Use rounding instance and float load to create discrete load.
+
+ The float form is not rounded yet.
+
+ :param int_load: Intended load in float form [tps].
+ :type int_load: float
+ :returns: New discrete load instance matching the float load.
+ :rtype: DiscreteLoad
+ """
+ return DiscreteLoad(rounding=rounding, float_load=float_load)
+
+ return factory_float
+
+ def rounded_down(self) -> DiscreteLoad:
+ """Create and return new instance with float form matching int.
+
+ :returns: New instance with same int form and float form rounded down.
+ :rtype: DiscreteLoad
+ """
+ return DiscreteLoad(rounding=self.rounding, int_load=int(self))
+
+ def hashable(self) -> DiscreteLoad:
+ """Return new equivalent instance.
+
+ This is mainly useful for conversion from unhashable subclasses,
+ such as LoadStats.
+ Rounding instance (reference) is copied from self.
+
+ :returns: New instance with values based on float form of self.
+ :rtype: DiscreteLoad
+ """
+ return DiscreteLoad(rounding=self.rounding, float_load=float(self))
+
+ def __add__(self, width: DiscreteWidth) -> DiscreteLoad:
+ """Return newly constructed instance with width added to int load.
+
+ Rounding instance (reference) is copied from self.
+
+ Argument type is checked, to avoid caller adding two loads by mistake
+ (or adding int to load and similar).
+
+ :param width: Value to add to int load.
+ :type width: DiscreteWidth
+ :returns: New instance.
+ :rtype: DiscreteLoad
+ :raises RuntimeError: When argument has unexpected type.
+ """
+ if not isinstance(width, DiscreteWidth):
+ raise RuntimeError(f"Not width: {width!r}")
+ return DiscreteLoad(
+ rounding=self.rounding,
+ int_load=self.int_load + int(width),
+ )
+
+ def __sub__(
+ self, other: Union[DiscreteWidth, DiscreteLoad]
+ ) -> Union[DiscreteLoad, DiscreteWidth]:
+ """Return result based on the argument type.
+
+ Load minus load is width, load minus width is load.
+ This allows the same operator to support both operations.
+
+ Rounding instance (reference) is copied from self.
+
+ :param other: Value to subtract from int load.
+ :type other: Union[DiscreteWidth, DiscreteLoad]
+ :returns: Resulting width or load.
+ :rtype: Union[DiscreteLoad, DiscreteWidth]
+ :raises RuntimeError: If the argument type is not supported.
+ """
+ if isinstance(other, DiscreteWidth):
+ return self._minus_width(other)
+ if isinstance(other, DiscreteLoad):
+ return self._minus_load(other)
+ raise RuntimeError(f"Unsupported type {other!r}")
+
+ def _minus_width(self, width: DiscreteWidth) -> DiscreteLoad:
+ """Return newly constructed instance, width subtracted from int load.
+
+ Rounding instance (reference) is copied from self.
+
+ :param width: Value to subtract from int load.
+ :type width: DiscreteWidth
+ :returns: New instance.
+ :rtype: DiscreteLoad
+ """
+ return DiscreteLoad(
+ rounding=self.rounding,
+ int_load=self.int_load - int(width),
+ )
+
+ def _minus_load(self, other: DiscreteLoad) -> DiscreteWidth:
+ """Return newly constructed width instance, difference of int loads.
+
+ Rounding instance (reference) is copied from self.
+
+ :param other: Value to subtract from int load.
+ :type other: DiscreteLoad
+ :returns: New instance.
+ :rtype: DiscreteWidth
+ """
+ return DiscreteWidth(
+ rounding=self.rounding,
+ int_width=self.int_load - int(other),
+ )
+
+ def __mul__(self, coefficient: float) -> DiscreteLoad:
+ """Return newly constructed instance, float load multiplied by argument.
+
+ Rounding instance (reference) is copied from self.
+
+ :param coefficient: Value to multiply float load with.
+ :type coefficient: float
+ :returns: New instance.
+ :rtype: DiscreteLoad
+ :raises RuntimeError: If argument is unsupported.
+ """
+ if not isinstance(coefficient, float):
+ raise RuntimeError(f"Not float: {coefficient!r}")
+ if coefficient <= 0.0:
+ raise RuntimeError(f"Not positive: {coefficient!r}")
+ return DiscreteLoad(
+ rounding=self.rounding,
+ float_load=self.float_load * coefficient,
+ )
+
+ def __truediv__(self, coefficient: float) -> DiscreteLoad:
+ """Call multiplication with inverse argument.
+
+ :param coefficient: Value to divide float load with.
+ :type coefficient: float
+ :returns: New instance.
+ :rtype: DiscreteLoad
+ :raises RuntimeError: If argument is unsupported.
+ """
+ return self * (1.0 / coefficient)
diff --git a/resources/libraries/python/MLRsearch/discrete_result.py b/resources/libraries/python/MLRsearch/discrete_result.py
new file mode 100644
index 0000000000..882b6081c6
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/discrete_result.py
@@ -0,0 +1,76 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining DiscreteResult class."""
+
+from __future__ import annotations
+
+from dataclasses import dataclass
+
+from .discrete_load import DiscreteLoad
+from .trial_measurement import MeasurementResult
+
+
+@dataclass
+class DiscreteResult(MeasurementResult):
+ """A measurement result where intended load is also given as discrete load.
+
+ The discrete load has to be round and has to match the intended load.
+ """
+
+ # Must have default as superclass has fields with default values.
+ discrete_load: DiscreteLoad = None
+ """Intended load [tps]; discrete, round and equal to intended load."""
+
+ def __post_init__(self) -> None:
+ """Call super, verify intended and discrete loads are the same.
+
+ :raises TypeError: If discrete load is not DiscreteLoad.
+ :raises ValueError: If the discrete load is not round.
+ :raises ValueError: If the load does not match intended load.
+ """
+ super().__post_init__()
+ if not isinstance(self.discrete_load, DiscreteLoad):
+ raise TypeError(f"Not a discrete load: {self.discrete_load!r}")
+ if not self.discrete_load.is_round:
+ raise ValueError(f"Discrete load not round: {self.discrete_load!r}")
+ if float(self.discrete_load) != self.intended_load:
+ raise ValueError(f"Load mismatch: {self!r}")
+
+ @staticmethod
+ def with_load(
+ result: MeasurementResult, load: DiscreteLoad
+ ) -> DiscreteResult:
+ """Return result with added load.
+
+ :param result: A result, possibly without discrete load.
+ :param load: Discrete load to add.
+ :type result: MeasurementResult
+ :type load: DiscreteLoad
+ :returns: Equivalent result with matching discrete load.
+ :rtype: DiscreteResult
+ :raises TypeError: If discrete load is not DiscreteLoad.
+ :raises ValueError: If the discrete load is not round.
+ :raises ValueError: If the load does not match intended load.
+ """
+ return DiscreteResult(
+ intended_duration=result.intended_duration,
+ intended_load=result.intended_load,
+ offered_count=result.offered_count,
+ loss_count=result.loss_count,
+ forwarding_count=result.forwarding_count,
+ offered_duration=result.offered_duration,
+ duration_with_overheads=result.duration_with_overheads,
+ intended_count=result.intended_count,
+ discrete_load=load,
+ )
diff --git a/resources/libraries/python/MLRsearch/discrete_width.py b/resources/libraries/python/MLRsearch/discrete_width.py
new file mode 100644
index 0000000000..8a4845a83f
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/discrete_width.py
@@ -0,0 +1,197 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining DiscreteWidth class."""
+
+from __future__ import annotations
+
+from dataclasses import dataclass, field
+
+from .load_rounding import LoadRounding
+
+
+# TODO: Make properly frozen.
+@dataclass(order=True)
+class DiscreteWidth:
+ """Structure to store float width together with its rounded integer form.
+
+ The width does not have to be positive, i.e. the computed integer width
+ does not have to be larger than zero.
+
+ LoadRounding instance is needed to enable conversion between two forms.
+
+ Conversion and arithmetic methods are added for convenience.
+ Division and non-integer multiplication are intentionally not supported,
+ as MLRsearch should not seek unround widths when round ones are available.
+
+ The instance is effectively immutable, but not hashable as it refers
+ to the rounding instance, which is implemented as mutable
+ (although the mutations are not visible).
+ """
+
+ # For most debugs, rounding in repr just takes space.
+ rounding: LoadRounding = field(repr=False, compare=False)
+ """Rounding instance to use for conversion."""
+ float_width: float = None
+ """Relative width of float intended load.
+ This is treated as a constructor argument, and does not need to match
+ the int width. Int width is computed to be no wider than this."""
+ int_width: int = field(compare=False, default=None)
+ """Integer form, difference of integer loads.
+ This is the primary quantity used by most computations."""
+
+ def __post_init__(self) -> None:
+ """Ensure types, compute missing information.
+
+ At this point, it is allowed for float width to be slightly larger
+ than the implied int width.
+
+ If both forms are specified, the float form is taken as primary
+ (thus the integer form is recomputed to match).
+
+ :raises RuntimeError: If both init arguments are None.
+ """
+ if self.float_width is None and self.int_width is None:
+ raise RuntimeError("Float or int value is needed.")
+ if self.float_width is None:
+ self.int_width = int(self.int_width)
+ min_load = self.rounding.int2float(0)
+ increased_load = self.rounding.int2float(self.int_width)
+ self.float_width = (increased_load - min_load) / increased_load
+ return
+ self.float_width = float(self.float_width)
+ min_load = self.rounding.int2float(0)
+ increased_load = min_load / (1.0 - self.float_width)
+ int_load = self.rounding.float2int(increased_load)
+ verify_load = self.rounding.int2float(int_load)
+ if verify_load > increased_load:
+ int_load -= 1
+ self.int_width = int_load
+
+ def __str__(self) -> str:
+ """Convert into a short human-readable string.
+
+ :returns: The short string.
+ :rtype: str
+ """
+ return f"int_width={int(self)}"
+
+ def __int__(self) -> int:
+ """Return the integer form.
+
+ :returns: The int field value.
+ :rtype: int
+ """
+ return self.int_width
+
+ def __float__(self) -> float:
+ """Return the float form.
+
+ :returns: The float field value.
+ :rtype: float
+ """
+ return self.float_width
+
+ def __hash__(self) -> int:
+ """Return a hash based on the float value.
+
+ With this, the instance can be used as if it was immutable and hashable,
+ e.g. it can be a key in a dict.
+
+ :returns: Hash value for this instance.
+ :rtype: int
+ """
+ return hash(float(self))
+
+ def rounded_down(self) -> DiscreteWidth:
+ """Create and return new instance with float form matching int.
+
+ :returns: New instance with same int form and float form rounded down.
+ :rtype: DiscreteWidth
+ """
+ return DiscreteWidth(rounding=self.rounding, int_width=int(self))
+
+ def __add__(self, width: DiscreteWidth) -> DiscreteWidth:
+ """Return newly constructed instance with int widths added.
+
+ Rounding instance (reference) is copied from self.
+
+ Argument type is checked, to avoid caller adding something unsupported.
+
+ :param width: Value to add to int width.
+ :type width: DiscreteWidth
+ :returns: New instance.
+ :rtype: DiscreteWidth
+ :raises RuntimeError: When argument has unexpected type.
+ """
+ if not isinstance(width, DiscreteWidth):
+ raise RuntimeError(f"Not width: {width!r}")
+ return DiscreteWidth(
+ rounding=self.rounding,
+ int_width=self.int_width + int(width),
+ )
+
+ def __sub__(self, width: DiscreteWidth) -> DiscreteWidth:
+ """Return newly constructed instance with int widths subtracted.
+
+ Rounding instance (reference) is copied from self.
+
+ Argument type is checked, to avoid caller adding something unsupported.
+ Non-positive results are disallowed by constructor.
+
+ :param width: Value to subtract to int width.
+ :type width: DiscreteWidth
+ :returns: New instance.
+ :rtype: DiscreteWidth
+ :raises RuntimeError: When argument has unexpected type.
+ """
+ if not isinstance(width, DiscreteWidth):
+ raise RuntimeError(f"Not width: {type(width)}")
+ return DiscreteWidth(
+ rounding=self.rounding,
+ int_width=self.int_width - int(width),
+ )
+
+ def __mul__(self, coefficient: int) -> DiscreteWidth:
+ """Construct new instance with int value multiplied.
+
+ Rounding instance (reference) is copied from self.
+
+ :param coefficient: Constant to multiply int width with.
+ :type coefficient: int
+ :returns: New instance with multiplied int width.
+ :rtype: DiscreteWidth
+ :raises RuntimeError: If argument value does not meet requirements.
+ """
+ if not isinstance(coefficient, int):
+ raise RuntimeError(f"Coefficient not int: {coefficient!r}")
+ if coefficient < 1:
+ raise RuntimeError(f"Coefficient not positive: {coefficient!r}")
+ return DiscreteWidth(
+ rounding=self.rounding,
+ int_width=self.int_width * coefficient,
+ )
+
+ def half_rounded_down(self) -> DiscreteWidth:
+ """Contruct new instance of half the integer width.
+
+ If the current integer width is odd, round the half width down.
+
+ :returns: New instance with half int width.
+ :rtype: DiscreteWidth
+ :raises RuntimeError: If the resulting integerl width is not positive.
+ """
+ return DiscreteWidth(
+ rounding=self.rounding,
+ int_width=self.int_width // 2,
+ )
diff --git a/resources/libraries/python/MLRsearch/expander.py b/resources/libraries/python/MLRsearch/expander.py
new file mode 100644
index 0000000000..0e6800477e
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/expander.py
@@ -0,0 +1,102 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining TargetExpander class."""
+
+
+from dataclasses import dataclass, field
+from typing import Callable, Optional
+
+from .dataclass import secondary_field
+from .discrete_load import DiscreteLoad
+from .discrete_width import DiscreteWidth
+from .global_width import GlobalWidth
+from .limit_handler import LimitHandler
+from .target_spec import TargetSpec
+
+
+@dataclass
+class TargetedExpander:
+ """Utility class to track expanding width during external search.
+
+ One instance per selector but takes into consideration global current width.
+
+ Generally, many strategies may limit next_width immediately,
+ but next_width expands only after measurement
+ when external search fails to find its bound (global width is also bumped).
+ See strategy classes for specific details on external and internal search.
+ """
+
+ target: TargetSpec
+ """The target this strategy is focusing on."""
+ global_width: GlobalWidth
+ """Reference to the global width tracking instance."""
+ initial_lower_load: Optional[DiscreteLoad]
+ """Smaller of the two loads distinguished at instance creation.
+ Can be None if initial upper bound is the min load."""
+ initial_upper_load: Optional[DiscreteLoad]
+ """Larger of the two loads distinguished at instance creation.
+ Can be None if initial lower bound is the max load."""
+ handler: LimitHandler = field(repr=False)
+ """Reference to the class used to avoid too narrow intervals."""
+ debug: Callable[[str], None] = field(repr=False)
+ """Injectable function for debug logging."""
+ # Primary above, derived below.
+ next_width: DiscreteWidth = secondary_field()
+ """This will be used in next search step if no strategy intervenes."""
+
+ def __post_init__(self) -> None:
+ """Prepare next width."""
+ self.next_width = self.target.discrete_width
+ if self.initial_lower_load and self.initial_upper_load:
+ interval_width = self.initial_upper_load - self.initial_lower_load
+ self.next_width = max(self.next_width, interval_width)
+ self.expand(bump_global=False)
+
+ def expand(self, bump_global: bool = True) -> None:
+ """Multiply next width by expansion coefficient.
+
+ The global current width should be bumped when external search
+ is done but load is not the bound we were looking for.
+
+ For global width shrinking, set the field directly.
+
+ :param bump_global: False if called from limit or post init.
+ :type bump_global: bool
+ """
+ self.next_width *= self.target.expansion_coefficient
+ if bump_global:
+ self.global_width.width = self.next_width
+
+ def get_width(self) -> DiscreteWidth:
+ """Return next width corrected by global current width.
+
+ :returns: The width to use, see GlobalWidth.
+ :rtype: DiscreteWidth
+ """
+ return self.global_width.or_larger(self.next_width)
+
+ def limit(self, last_width: DiscreteWidth) -> None:
+ """Decrease the prepared next width.
+
+ This is called by other strategies when bounds are getting narrower.
+
+ Global current width is not updated yet,
+ as the other strategy may not end up becoming the winner
+ and we want to avoid interfering with other selector strategies.
+
+ :param last_width: As applied by other strategy, smaller of two halves.
+ :type last_width: DiscreteWidth
+ """
+ self.next_width = max(last_width, self.target.discrete_width)
+ self.expand(bump_global=False)
diff --git a/resources/libraries/python/MLRsearch/global_width.py b/resources/libraries/python/MLRsearch/global_width.py
new file mode 100644
index 0000000000..6f7df8b894
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/global_width.py
@@ -0,0 +1,70 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining GlobalWidth class."""
+
+
+from __future__ import annotations
+
+from dataclasses import dataclass
+
+from .discrete_load import DiscreteLoad
+from .discrete_width import DiscreteWidth
+
+
+@dataclass
+class GlobalWidth:
+ """Primarily used to synchronize external search steps across selectors.
+
+ The full name is global current width, but that is too long for identifiers.
+
+ While each selector tracks its "local" (per goal) width using expander,
+ it is important we do not interleave upper external search for two goals.
+ That is why all selector instances refer to a singleton instance of this.
+
+ In general, this value remains constant when main loop iterates over
+ selectors and when selector iterates over strategies.
+ After winner is measured, this width is set to winner width value
+ and for some strategies that width is expanded when external search says so.
+
+ The two methods are not really worth creating a new class,
+ but the main reason is having a name for type hints
+ that distinguish this from various other "width" and "current" values.
+ """
+
+ width: DiscreteWidth
+ """Minimum width to apply at next external search step."""
+ # TODO: Add a setter, so it is easier to add debug logging.
+
+ @staticmethod
+ def from_loads(load0: DiscreteLoad, load1: DiscreteLoad) -> GlobalWidth:
+ """Initialize the value based on two loads from initial trials.
+
+ :param load0: Lower (or equal) load from the two most recent trials.
+ :param load1: Higher (or equal) load from the two most recent trials.
+ :type load0: DiscreteLoad
+ :type load1: DiscreteLoad
+ :returns: Newly created instance with computed width.
+ :rtype: GlobalWidth
+ """
+ return GlobalWidth(load1 - load0)
+
+ def or_larger(self, width: DiscreteWidth) -> DiscreteWidth:
+ """Return width from argument or self, whichever is larger.
+
+ :param width: A selector (strategy) asks if this width is large enough.
+ :type width: DiscreteWidth
+ :returns: Argument or current width.
+ :rtype: DiscreteWidth
+ """
+ return width if width > self.width else self.width
diff --git a/resources/libraries/python/MLRsearch/goal_result.py b/resources/libraries/python/MLRsearch/goal_result.py
new file mode 100644
index 0000000000..91dccec0bb
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/goal_result.py
@@ -0,0 +1,72 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining GoalResult class."""
+
+from __future__ import annotations
+
+from dataclasses import dataclass
+from typing import Optional
+
+from .discrete_load import DiscreteLoad
+from .relevant_bounds import RelevantBounds
+from .trimmed_stat import TrimmedStat
+
+
+@dataclass
+class GoalResult:
+ """Composite to be mapped for each search goal at the end of the search.
+
+ The values are stored as trimmed stats,
+ the conditional throughput is returned as a discrete loads.
+ Thus, users interested only in float values have to convert explicitly.
+
+ Irregular goal results are supported as instances with a bound missing.
+ """
+
+ relevant_lower_bound: Optional[TrimmedStat]
+ """The relevant lower bound for the search goal."""
+ relevant_upper_bound: Optional[TrimmedStat]
+ """The relevant lower upper for the search goal."""
+
+ @staticmethod
+ def from_bounds(bounds: RelevantBounds) -> GoalResult:
+ """Factory, so that the call site can be shorter.
+
+ :param bounds: The relevant bounds as found in measurement database.
+ :type bounds: RelevantBounds
+ :returns: Newly created instance based on the bounds.
+ :rtype: GoalResult
+ """
+ return GoalResult(
+ relevant_lower_bound=bounds.clo,
+ relevant_upper_bound=bounds.chi,
+ )
+
+ @property
+ def conditional_throughput(self) -> Optional[DiscreteLoad]:
+ """Compute conditional throughput from the relevant lower bound.
+
+ If the relevant lower bound is missing, None is returned.
+
+ The conditional throughput has the same semantics as load,
+ so if load is unidirectional and user wants bidirectional
+ throughput, the manager has to compensate.
+
+ :return: Conditional throughput at the relevant lower bound.
+ :rtype: Optional[DiscreteLoad]
+ """
+ if not (rlb := self.relevant_lower_bound):
+ return None
+ stat = next(iter(rlb.target_to_stat.values()))
+ return rlb * (1.0 - stat.pessimistic_loss_ratio)
diff --git a/resources/libraries/python/MLRsearch/limit_handler.py b/resources/libraries/python/MLRsearch/limit_handler.py
new file mode 100644
index 0000000000..5919f398f3
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/limit_handler.py
@@ -0,0 +1,198 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining LimitHandler class."""
+
+from dataclasses import dataclass
+from typing import Callable, Optional
+
+from .dataclass import secondary_field
+from .discrete_interval import DiscreteInterval
+from .discrete_load import DiscreteLoad
+from .discrete_width import DiscreteWidth
+from .load_rounding import LoadRounding
+
+
+@dataclass
+class LimitHandler:
+ """Encapsulated methods for logic around handling limits.
+
+ In multiple places within MLRsearch code, an intended load value
+ is only useful if it is far enough from possible known values.
+ All such places can be served with the handle method
+ with appropriate arguments.
+ """
+
+ rounding: LoadRounding
+ """Rounding instance to use."""
+ debug: Callable[[str], None]
+ """Injectable logging function."""
+ # The two fields below are derived, extracted from rounding as a shortcut.
+ min_load: DiscreteLoad = secondary_field()
+ """Minimal load, as prescribed by Config."""
+ max_load: DiscreteLoad = secondary_field()
+ """Maximal load, as prescribed by Config."""
+
+ def __post_init__(self) -> None:
+ """Initialize derived quantities."""
+ from_float = DiscreteLoad.float_conver(rounding=self.rounding)
+ self.min_load = from_float(self.rounding.min_load)
+ self.max_load = from_float(self.rounding.max_load)
+
+ def handle(
+ self,
+ load: DiscreteLoad,
+ width: DiscreteWidth,
+ clo: Optional[DiscreteLoad],
+ chi: Optional[DiscreteLoad],
+ ) -> Optional[DiscreteLoad]:
+ """Return new intended load after considering limits and bounds.
+
+ Not only we want to avoid measuring outside minmax interval,
+ we also want to avoid measuring too close to known limits and bounds.
+ We either round or return None, depending on hints from bound loads.
+
+ When rounding away from hard limits, we may end up being
+ too close to an already measured bound.
+ In this case, pick a midpoint between the bound and the limit.
+
+ The last two arguments are just loads (not full measurement results)
+ to allow callers to exclude some load without measuring them.
+ As a convenience, full results are also supported,
+ so that callers do not need to care about None when extracting load.
+
+ :param load: Intended load candidate, initial or from a load selector.
+ :param width: Relative width goal, considered narrow enough for now.
+ :param clo: Intended load of current relevant lower bound.
+ :param chi: Intended load of current relevant upper bound.
+ :type load: DiscreteLoad
+ :type width: DiscreteWidth
+ :type clo: Optional[DiscreteLoad]
+ :type chi: Optional[DiscreteLoad]
+ :return: Adjusted load to measure at, or None if narrow enough already.
+ :rtype: Optional[DiscreteLoad]
+ :raises RuntimeError: If unsupported corner case is detected.
+ """
+ if not load:
+ raise RuntimeError("Got None load to handle.")
+ load = load.rounded_down()
+ min_load, max_load = self.min_load, self.max_load
+ if clo and not clo.is_round:
+ raise RuntimeError(f"Clo {clo} should have been round.")
+ if chi and not chi.is_round:
+ raise RuntimeError(f"Chi {chi} should have been round.")
+ if not clo and not chi:
+ load = self._handle_load_with_excludes(
+ load, width, min_load, max_load, min_ex=False, max_ex=False
+ )
+ # The "return load" lines are separate from load computation,
+ # so that logging can be added more easily when debugging.
+ return load
+ if chi and not clo:
+ if chi <= min_load:
+ # Expected when hitting the min load.
+ return None
+ if load >= chi:
+ # This can happen when mrr2 forward rate is rounded to mrr2.
+ return None
+ load = self._handle_load_with_excludes(
+ load, width, min_load, chi, min_ex=False, max_ex=True
+ )
+ return load
+ if clo and not chi:
+ if clo >= max_load:
+ raise RuntimeError("Lower load expected.")
+ if load <= clo:
+ raise RuntimeError("Higher load expected.")
+ load = self._handle_load_with_excludes(
+ load, width, clo, max_load, min_ex=True, max_ex=False
+ )
+ return load
+ # We have both clo and chi defined.
+ if not clo < load < chi:
+ # Happens when bisect compares with bounded extend.
+ return None
+ load = self._handle_load_with_excludes(
+ load, width, clo, chi, min_ex=True, max_ex=True
+ )
+ return load
+
+ def _handle_load_with_excludes(
+ self,
+ load: DiscreteLoad,
+ width: DiscreteWidth,
+ minimum: DiscreteLoad,
+ maximum: DiscreteLoad,
+ min_ex: bool,
+ max_ex: bool,
+ ) -> Optional[DiscreteLoad]:
+ """Adjust load if too close to limits, respecting exclusions.
+
+ This is a reusable block.
+ Limits may come from previous bounds or from hard load limits.
+ When coming from bounds, rounding to that is not allowed.
+ When coming from hard limits, rounding to the limit value
+ is allowed in general (given by the setting the _ex flag).
+
+ :param load: The candidate intended load before accounting for limits.
+ :param width: Relative width of area around the limits to avoid.
+ :param minimum: The lower limit to round around.
+ :param maximum: The upper limit to round around.
+ :param min_ex: If false, rounding to the minimum is allowed.
+ :param max_ex: If false, rounding to the maximum is allowed.
+ :type load: DiscreteLoad
+ :type width: DiscreteWidth
+ :type minimum: DiscreteLoad
+ :type maximum: DiscreteLoad
+ :type min_ex: bool
+ :type max_ex: bool
+ :returns: Adjusted load value, or None if narrow enough.
+ :rtype: Optional[DiscreteLoad]
+ :raises RuntimeError: If internal inconsistency is detected.
+ """
+ if not minimum <= load <= maximum:
+ raise RuntimeError(
+ "Internal error: load outside limits:"
+ f" load {load} min {minimum} max {maximum}"
+ )
+ max_width = maximum - minimum
+ if width >= max_width:
+ self.debug("Warning: Handling called with wide width.")
+ if not min_ex:
+ self.debug("Minimum not excluded, rounding to it.")
+ return minimum
+ if not max_ex:
+ self.debug("Maximum not excluded, rounding to it.")
+ return maximum
+ self.debug("Both limits excluded, narrow enough.")
+ return None
+ soft_min = minimum + width
+ soft_max = maximum - width
+ if soft_min > soft_max:
+ self.debug("Whole interval is less than two goals.")
+ middle = DiscreteInterval(minimum, maximum).middle(width)
+ soft_min = soft_max = middle
+ if load < soft_min:
+ if min_ex:
+ self.debug("Min excluded, rounding to soft min.")
+ return soft_min
+ self.debug("Min not excluded, rounding to minimum.")
+ return minimum
+ if load > soft_max:
+ if max_ex:
+ self.debug("Max excluded, rounding to soft max.")
+ return soft_max
+ self.debug("Max not excluded, rounding to maximum.")
+ return maximum
+ # Far enough from all limits, no additional adjustment is needed.
+ return load
diff --git a/resources/libraries/python/MLRsearch/load_rounding.py b/resources/libraries/python/MLRsearch/load_rounding.py
new file mode 100644
index 0000000000..0ac4487be9
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/load_rounding.py
@@ -0,0 +1,205 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining LoadRounding class."""
+
+import math
+
+from dataclasses import dataclass
+from typing import List, Tuple
+
+from .dataclass import secondary_field
+
+
+@dataclass
+class LoadRounding:
+ """Class encapsulating stateful utilities that round intended load values.
+
+ For MLRsearch algorithm logic to be correct, it is important that
+ interval width expansion and narrowing are exactly reversible,
+ which is not true in general for floating point number arithmetics.
+
+ This class offers conversion to and from an integer quantity.
+ Operations in the integer realm are guaranteed to be reversible,
+ so the only risk is when converting between float and integer realm.
+
+ Which relative width corresponds to the unit integer
+ is computed in initialization from width goals,
+ striking a balance between memory requirements and precision.
+
+ There are two quality knobs. One restricts how far
+ can an integer be from the exact float value.
+ The other restrict how close it can be. That is to make sure
+ even with unpredictable rounding errors during the conversion,
+ the converted integer value is never bigger than the intended float value,
+ to ensure the intervals returned from MLRsearch will always
+ meet the relative width goal.
+
+ An instance of this class is mutable only in the sense it contains
+ a growing cache of previously computed values.
+ """
+
+ # TODO: Hide the cache and present as frozen hashable object.
+
+ min_load: float
+ """Minimal intended load [tps] to support, must be positive."""
+ max_load: float
+ """Maximal intended load [tps] to support, must be bigger than min load."""
+ float_goals: Tuple[float]
+ """Relative width goals to approximate, each must be positive
+ and smaller than one. Deduplicated and sorted in post init."""
+ quality_lower: float = 0.99
+ """Minimal multiple of each goal to be achievable."""
+ quality_upper: float = 0.999999
+ """Maximal multiple of each goal to be achievable."""
+ # Primary fields above, computed fields below.
+ max_int_load: int = secondary_field()
+ """Integer for max load (min load int is zero)."""
+ _int2load: List[Tuple[int, float]] = secondary_field()
+ """Known int values (sorted) and their float equivalents."""
+
+ def __post_init__(self) -> None:
+ """Ensure types, perform checks, initialize conversion structures.
+
+ :raises RuntimeError: If a requirement is not met.
+ """
+ self.min_load = float(self.min_load)
+ self.max_load = float(self.max_load)
+ if not 0.0 < self.min_load < self.max_load:
+ raise RuntimeError("Load limits not supported: {self}")
+ self.quality_lower = float(self.quality_lower)
+ self.quality_upper = float(self.quality_upper)
+ if not 0.0 < self.quality_lower < self.quality_upper < 1.0:
+ raise RuntimeError("Qualities not supported: {self}")
+ goals = []
+ for goal in self.float_goals:
+ goal = float(goal)
+ if not 0.0 < goal < 1.0:
+ raise RuntimeError(f"Goal width {goal} is not supported.")
+ goals.append(goal)
+ self.float_goals = tuple(sorted(set(goals)))
+ self.max_int_load = self._find_ints()
+ self._int2load = []
+ self._int2load.append((0, self.min_load))
+ self._int2load.append((self.max_int_load, self.max_load))
+
+ def _find_ints(self) -> int:
+ """Find and return value for max_int_load.
+
+ Separated out of post init, as this is less conversion and checking,
+ and more math and searching.
+
+ A dumb implementation would start with 1 and kept increasing by 1
+ until all goals are within quality limits.
+ An actual implementation is smarter with the increment,
+ so it is expected to find the resulting values somewhat faster.
+
+ :returns: Value to be stored as max_int_load.
+ :rtype: int
+ """
+ minmax_log_width = math.log(self.max_load) - math.log(self.min_load)
+ log_goals = [-math.log1p(-goal) for goal in self.float_goals]
+ candidate = 1
+ while 1:
+ log_width_unit = minmax_log_width / candidate
+ # Fallback to increment by one if rounding errors make tries bad.
+ next_tries = [candidate + 1]
+ acceptable = True
+ for log_goal in log_goals:
+ units = log_goal / log_width_unit
+ int_units = math.floor(units)
+ quality = int_units / units
+ if not self.quality_lower <= quality <= self.quality_upper:
+ acceptable = False
+ target = (int_units + 1) / self.quality_upper
+ next_try = (target / units) * candidate
+ next_tries.append(next_try)
+ # Else quality acceptable, not bumping the candidate.
+ if acceptable:
+ return candidate
+ candidate = int(math.ceil(max(next_tries)))
+
+ def int2float(self, int_load: int) -> float:
+ """Convert from int to float tps load. Expand internal table as needed.
+
+ Too low or too high ints result in min or max load respectively.
+
+ :param int_load: Integer quantity to turn back into float load.
+ :type int_load: int
+ :returns: Converted load in tps.
+ :rtype: float
+ :raises RuntimeError: If internal inconsistency is detected.
+ """
+ if int_load <= 0:
+ return self.min_load
+ if int_load >= self.max_int_load:
+ return self.max_load
+ lo_index, hi_index = 0, len(self._int2load)
+ lo_int, hi_int = 0, self.max_int_load
+ lo_load, hi_load = self.min_load, self.max_load
+ while hi_int - lo_int >= 2:
+ mid_index = (hi_index + lo_index + 1) // 2
+ if mid_index >= hi_index:
+ mid_int = (hi_int + lo_int) // 2
+ log_coeff = math.log(hi_load) - math.log(lo_load)
+ log_coeff *= (mid_int - lo_int) / (hi_int - lo_int)
+ mid_load = lo_load * math.exp(log_coeff)
+ self._int2load.insert(mid_index, (mid_int, mid_load))
+ hi_index += 1
+ mid_int, mid_load = self._int2load[mid_index]
+ if mid_int < int_load:
+ lo_index, lo_int, lo_load = mid_index, mid_int, mid_load
+ continue
+ if mid_int > int_load:
+ hi_index, hi_int, hi_load = mid_index, mid_int, mid_load
+ continue
+ return mid_load
+ raise RuntimeError("Bisect in int2float failed.")
+
+ def float2int(self, float_load: float) -> int:
+ """Convert and round from tps load to int. Maybe expand internal table.
+
+ Too low or too high load result in zero or max int respectively.
+
+ Result value is rounded down to an integer.
+
+ :param float_load: Tps quantity to convert into int.
+ :type float_load: float
+ :returns: Converted integer value suitable for halving.
+ :rtype: int
+ """
+ if float_load <= self.min_load:
+ return 0
+ if float_load >= self.max_load:
+ return self.max_int_load
+ lo_index, hi_index = 0, len(self._int2load)
+ lo_int, hi_int = 0, self.max_int_load
+ lo_load, hi_load = self.min_load, self.max_load
+ while hi_int - lo_int >= 2:
+ mid_index = (hi_index + lo_index + 1) // 2
+ if mid_index >= hi_index:
+ mid_int = (hi_int + lo_int) // 2
+ log_coeff = math.log(hi_load) - math.log(lo_load)
+ log_coeff *= (mid_int - lo_int) / (hi_int - lo_int)
+ mid_load = lo_load * math.exp(log_coeff)
+ self._int2load.insert(mid_index, (mid_int, mid_load))
+ hi_index += 1
+ mid_int, mid_load = self._int2load[mid_index]
+ if mid_load < float_load:
+ lo_index, lo_int, lo_load = mid_index, mid_int, mid_load
+ continue
+ if mid_load > float_load:
+ hi_index, hi_int, hi_load = mid_index, mid_int, mid_load
+ continue
+ return mid_int
+ return lo_int
diff --git a/resources/libraries/python/MLRsearch/load_stats.py b/resources/libraries/python/MLRsearch/load_stats.py
new file mode 100644
index 0000000000..5f4757f488
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/load_stats.py
@@ -0,0 +1,112 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining LoadStats class."""
+
+from __future__ import annotations
+
+from dataclasses import dataclass
+from typing import Dict, Tuple
+
+from .target_spec import TargetSpec
+from .target_stat import TargetStat
+from .discrete_load import DiscreteLoad
+from .discrete_result import DiscreteResult
+
+
+# The eq=False part is needed to make sure comparison is inherited properly.
+@dataclass(eq=False)
+class LoadStats(DiscreteLoad):
+ """An offered load together with stats for all possible targets.
+
+ As LoadStats is frequently passed instead of plan DiscreteLoad,
+ equality and ordering is dictated by the float load.
+ """
+
+ target_to_stat: Dict[TargetSpec, TargetStat] = None
+ """Mapping from target specification to its current stat for this load."""
+
+ def __post_init__(self) -> None:
+ """Initialize load value and check there are targets to track."""
+ super().__post_init__()
+ if not self.target_to_stat:
+ raise ValueError(f"No targets: {self.target_to_stat!r}")
+
+ def __str__(self) -> str:
+ """Convert into a short human-readable string.
+
+ This works well only for trimmed stats,
+ as only the stat for the first target present is shown.
+
+ :returns: The short string.
+ :rtype: str
+ """
+ return (
+ f"fl={self.float_load}"
+ f",s=({next(iter(self.target_to_stat.values()))})"
+ )
+
+ def __hash__(self) -> int:
+ """Raise as stats are mutable by definition.
+
+ :returns: Hash value for this instance if possible.
+ :rtype: int
+ :raises TypeError: Not immutable.
+ """
+ raise TypeError("Loadstats are mutable so constant hash is impossible.")
+
+ def add(self, result: DiscreteResult) -> None:
+ """Take into account one more trial measurement result.
+
+ :param result: The result to take into account.
+ :type result: DiscreteResult
+ :raises RuntimeError: If result load does is not equal to the self load.
+ """
+ if result.intended_load != float(self):
+ raise RuntimeError(
+ f"Attempting to add load {result.intended_load}"
+ f" to result set for {float(self)}"
+ )
+ for stat in self.target_to_stat.values():
+ stat.add(result)
+
+ @staticmethod
+ def new_empty(load: DiscreteLoad, targets: Tuple[TargetSpec]) -> LoadStats:
+ """Factory method to initialize mapping for given targets.
+
+ :param load: The intended load value for the new instance.
+ :param targets: The target specifications to track stats for.
+ :type load: DiscreteLoad
+ :type targets: Tuple[TargetSpec]
+ :returns: New instance with empty stats initialized.
+ :rtype: LoadStats
+ :raise ValueError: Is the load is not rounded.
+ """
+ if not load.is_round:
+ raise ValueError(f"Not round: {load!r}")
+ return LoadStats(
+ rounding=load.rounding,
+ int_load=int(load),
+ target_to_stat={target: TargetStat(target) for target in targets},
+ )
+
+ def estimates(self, target: TargetSpec) -> Tuple[bool, bool]:
+ """Classify this load according to given target.
+
+ :param target: According to which target this should be classified.
+ :type target: TargetSpec
+ :returns: Tuple of two estimates whether load can be lower bound.
+ (True, False) means target is not reached yet.
+ :rtype: Tuple[bool, bool]
+ """
+ return self.target_to_stat[target].estimates()
diff --git a/resources/libraries/python/MLRsearch/measurement_database.py b/resources/libraries/python/MLRsearch/measurement_database.py
new file mode 100644
index 0000000000..7a6618c0da
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/measurement_database.py
@@ -0,0 +1,126 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining MeasurementDatabase class."""
+
+from dataclasses import dataclass
+from typing import Dict, Tuple
+
+from .discrete_load import DiscreteLoad
+from .discrete_result import DiscreteResult
+from .load_stats import LoadStats
+from .relevant_bounds import RelevantBounds
+from .target_spec import TargetSpec
+from .trimmed_stat import TrimmedStat
+
+
+@dataclass
+class MeasurementDatabase:
+ """Structure holding measurement results for multiple durations and loads.
+
+ Several utility methods are added, accomplishing tasks useful for MLRsearch.
+
+ While TargetStats can decide when a single load is a lower bound (or upper),
+ it does not deal with loss inversion (higher load with less load).
+
+ This class introduces the concept of relevant bounds.
+ Relevant upper bound is simply the lowest load classified as an upper bound.
+ But relevant lower bound is only chosen from lower bound loads
+ strictly smaller than the relevant upper bound.
+ This way any higher loads with good results are ignored,
+ so relevant bound give conservative estimate of SUT true performance.
+ """
+
+ targets: Tuple[TargetSpec] = None
+ """Targets to track stats for."""
+ load_to_stats: Dict[DiscreteLoad, LoadStats] = None
+ """Mapping from loads to stats."""
+
+ def __post_init__(self) -> None:
+ """Check and sort initial values.
+
+ If no stats yet, initialize empty ones.
+
+ :raises ValueError: If there are no targets.
+ """
+ if not self.targets:
+ raise ValueError(f"Database needs targets: {self.targets!r}")
+ if not self.load_to_stats:
+ self.load_to_stats = {}
+ self._sort()
+
+ def _sort(self) -> None:
+ """Sort keys from low to high load."""
+ self.load_to_stats = dict(sorted(self.load_to_stats.items()))
+
+ def __getitem__(self, key: DiscreteLoad) -> LoadStats:
+ """Allow access to stats as if self was load_to_stats.
+
+ This also accepts LoadStats as key, so callers do not need
+ to care about hashability.
+
+ :param key: The load to get stats for.
+ :type key: DiscreteLoad
+ :returns: Stats for the given load.
+ :rtype LoadStats:
+ """
+ return self.load_to_stats[key.hashable()]
+
+ def add(self, result: DiscreteResult) -> None:
+ """Incorporate given trial measurement result.
+
+ :param result: Measurement result to add to the database.
+ :type result: DiscreteResult
+ """
+ discrete_load = result.discrete_load.hashable()
+ if not discrete_load.is_round:
+ raise ValueError(f"Not round load: {discrete_load!r}")
+ if discrete_load not in self.load_to_stats:
+ self.load_to_stats[discrete_load] = LoadStats.new_empty(
+ load=discrete_load,
+ targets=self.targets,
+ )
+ self._sort()
+ self.load_to_stats[discrete_load].add(result)
+
+ def get_relevant_bounds(self, target: TargetSpec) -> RelevantBounds:
+ """Return None or a valid trimmed stat, for the two relevant bounds.
+
+ A load is valid only if both optimistic and pessimistic estimates agree.
+
+ If some value is not available, None is returned instead.
+ The returned stats are trimmed to the argument target.
+
+ The implementation starts from low loads
+ and the search stops at lowest upper bound,
+ thus conforming to the conservative definition of relevant bounds.
+
+ :param target: Target to classify loads when finding bounds.
+ :type target: TargetSpec
+ :returns: Relevant lower bound, relevant upper bound.
+ :rtype: RelevantBounds
+ """
+ lower_bound, upper_bound = None, None
+ for load_stats in self.load_to_stats.values():
+ opt, pes = load_stats.estimates(target)
+ if opt != pes:
+ continue
+ if not opt:
+ upper_bound = load_stats
+ break
+ lower_bound = load_stats
+ if lower_bound:
+ lower_bound = TrimmedStat.for_target(lower_bound, target)
+ if upper_bound:
+ upper_bound = TrimmedStat.for_target(upper_bound, target)
+ return RelevantBounds(clo=lower_bound, chi=upper_bound)
diff --git a/resources/libraries/python/MLRsearch/multiple_loss_ratio_search.py b/resources/libraries/python/MLRsearch/multiple_loss_ratio_search.py
new file mode 100644
index 0000000000..4d3ff7c4cb
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/multiple_loss_ratio_search.py
@@ -0,0 +1,325 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining MultipleLossRatioSearch class."""
+
+import logging
+import time
+
+from dataclasses import dataclass
+from typing import Callable, Optional, Tuple
+
+from .candidate import Candidate
+from .config import Config
+from .dataclass import secondary_field
+from .discrete_load import DiscreteLoad
+from .discrete_result import DiscreteResult
+from .expander import GlobalWidth
+from .goal_result import GoalResult
+from .limit_handler import LimitHandler
+from .load_rounding import LoadRounding
+from .measurement_database import MeasurementDatabase
+from .pep3140 import Pep3140Dict
+from .search_goal import SearchGoal
+from .selector import Selector
+from .target_scaling import TargetScaling
+from .trial_measurement import AbstractMeasurer
+
+
+@dataclass
+class MultipleLossRatioSearch:
+ """Implementation of the controller part of MLRsearch algorithm.
+
+ The manager part is creating and calling this,
+ the measurer part is injected.
+
+ Traditional binary search algorithm needs initial interval
+ (lower and upper bound), and returns final narrow bounds
+ (related to its search goal) after bisecting
+ (until some exit condition is met).
+ The exit condition is usually related to the interval width,
+ (upper bound value minus lower bound value).
+
+ The optimized algorithm in this class contains several improvements
+ aimed to reduce overall search time.
+
+ One improvement is searching for bounds for multiple search goals at once.
+ Specifically, the trial measurement results influence bounds for all goals,
+ even though the selection of trial inputs for next measurement
+ focuses only on one goal. The focus can switch between goals frequently.
+
+ Next improvement is that results of trial measurements
+ with small trial duration can be used to find a reasonable starting interval
+ for full trial duration search.
+ This results in more trials performed, but smaller overall duration
+ in general.
+ Internally, such shorter trials come from "preceding targets",
+ handled in a same way as a search goal "final target".
+ Related improvement is that the "current" interval does not need to be valid
+ (e.g. one of the bounds is missing).
+ In that case, this algorithm will move and expand the interval,
+ in a process called external search. Only when both bounds are found,
+ the interval bisection (called internal search) starts making it narrow.
+
+ Next improvement is bisecting in logarithmic quantities,
+ so that target relative width is independent of measurement units.
+
+ Next improvement is basing the initial interval on forwarding rates
+ of few initial measurements, starting at max load and using forwarding rates
+ seen so far.
+
+ Next improvement is to allow the use of multiple shorter trials
+ instead one big trial, allowing a percentage of trials
+ to exceed the loss ratio target.
+ This makes the result more stable in practice.
+ Conservative behavior (single long trial, zero exceed ratio)
+ is still available using corresponding goal definitions.
+
+ Final improvement is exiting early if the minimal load
+ is not a valid lower bound (at final duration)
+ and also exiting if the overall search duration is too long.
+
+ There are also subtle optimizations related to candidate selection
+ and uneven splitting of intervals, too numerous to list here.
+
+ The return values describe performance at the relevant lower bound
+ as "conditional throughput", which is based on loss ratio of one of trials
+ selected as a quantile based on exceed ratio parameter.
+ Usually this value may be quite pessimistic, as MLRsearch stops
+ measuring a load as soon as it becomes a lower bound,
+ so conditional throughput is usually based on forwarding rate
+ of the worst on the good long trials.
+ """
+
+ config: Config
+ """Arguments required at construction time."""
+ # End of fields required at intance creation.
+ measurer: AbstractMeasurer = secondary_field()
+ """Measurer to use, set at calling search()."""
+ debug: Callable[[str], None] = secondary_field()
+ """Object to call for logging, None means logging.debug."""
+ # Fields below are computed from data above
+ rounding: LoadRounding = secondary_field()
+ """Derived from goals. Instance to use for intended load rounding."""
+ from_float: Callable[[float], DiscreteLoad] = secondary_field()
+ """Conversion method from float [tps] intended load values."""
+ limit_handler: LimitHandler = secondary_field()
+ """Load post-processing utility based on config and rounding."""
+ scaling: TargetScaling = secondary_field()
+ """Utility for creating target chains for search goals."""
+ database: MeasurementDatabase = secondary_field()
+ """Storage for (stats of) measurement results so far."""
+ stop_time: float = secondary_field()
+ """Monotonic time value at which the search should end with failure."""
+
+ def search(
+ self,
+ measurer: AbstractMeasurer,
+ debug: Optional[Callable[[str], None]] = None,
+ ) -> Pep3140Dict[SearchGoal, GoalResult]:
+ """Perform initial trials, create state object, proceed with main loop.
+
+ Stateful arguments (measurer and debug) are stored.
+ Derived objects are constructed from config.
+
+ :param measurer: Measurement provider to use by this search object.
+ :param debug: Callable to optionally use instead of logging.debug().
+ :type measurer: AbstractMeasurer
+ :type debug: Optional[Callable[[str], None]]
+ :returns: Structure containing conditional throughputs and other stats,
+ one for each search goal. If a value is None it means there is
+ no lower bound (min load turned out to be an upper bound).
+ :rtype: Pep3140Dict[SearchGoal, GoalResult]
+ :raises RuntimeError: If total duration is larger than timeout,
+ or if min load becomes an upper bound for a search goal
+ that has fail fast true.
+ """
+ self.measurer = measurer
+ self.debug = logging.debug if debug is None else debug
+ self.rounding = LoadRounding(
+ min_load=self.config.min_load,
+ max_load=self.config.max_load,
+ float_goals=[goal.relative_width for goal in self.config.goals],
+ )
+ self.from_float = DiscreteLoad.float_conver(rounding=self.rounding)
+ self.limit_handler = LimitHandler(
+ rounding=self.rounding,
+ debug=self.debug,
+ )
+ self.scaling = TargetScaling(
+ goals=self.config.goals,
+ rounding=self.rounding,
+ )
+ self.database = MeasurementDatabase(self.scaling.targets)
+ self.stop_time = time.monotonic() + self.config.search_duration_max
+ result0, result1 = self.run_initial_trials()
+ self.main_loop(result0.discrete_load, result1.discrete_load)
+ ret_dict = Pep3140Dict()
+ for goal in self.config.goals:
+ target = self.scaling.goal_to_final_target[goal]
+ bounds = self.database.get_relevant_bounds(target=target)
+ ret_dict[goal] = GoalResult.from_bounds(bounds=bounds)
+ return ret_dict
+
+ def measure(self, duration: float, load: DiscreteLoad) -> DiscreteResult:
+ """Call measurer and put the result to appropriate form in database.
+
+ Also check the argument types and load roundness,
+ and return the result to the caller.
+
+ :param duration: Intended duration for the trial measurement.
+ :param load: Intended load for the trial measurement:
+ :type duration: float
+ :type load: DiscreteLoad
+ :returns: The trial results.
+ :rtype: DiscreteResult
+ :raises RuntimeError: If an argument doed not have the required type.
+ """
+ if not isinstance(duration, float):
+ raise RuntimeError(f"Duration has to be float: {duration!r}")
+ if not isinstance(load, DiscreteLoad):
+ raise RuntimeError(f"Load has to be discrete: {load!r}")
+ if not load.is_round:
+ raise RuntimeError(f"Told to measure unrounded: {load!r}")
+ self.debug(f"Measuring at d={duration},il={int(load)}")
+ result = self.measurer.measure(
+ intended_duration=duration,
+ intended_load=float(load),
+ )
+ self.debug(f"Measured lr={result.loss_ratio}")
+ result = DiscreteResult.with_load(result=result, load=load)
+ self.database.add(result)
+ return result
+
+ def run_initial_trials(self) -> Tuple[DiscreteResult, DiscreteResult]:
+ """Perform trials to get enough data to start the selectors.
+
+ Measurements are done with all initial targets in mind,
+ based on smallest target loss ratio, largest initial trial duration,
+ and largest initial target width.
+
+ Forwarding rate is used as a hint for next intended load.
+ The relative quantity is used, as load can use different units.
+ When the smallest target loss ratio is non-zero, a correction is needed
+ (forwarding rate is only a good hint for zero loss ratio load).
+ The correction is conservative (all increase in load turns to losses).
+
+ Also, warmup trial (if configured) is performed,
+ all other trials are added to the database.
+
+ This could return the initial width, but from implementation perspective
+ it is easier to return two measurements (or the same one twice) here
+ and compute width later. The "one value twice" happens when max load
+ has small loss, or when min load has big loss.
+
+ :returns: Two last measured values, in any order. Or one value twice.
+ :rtype: Tuple[DiscreteResult, DiscreteResult]
+ """
+ max_load = self.limit_handler.max_load
+ ratio, duration, width = None, None, None
+ for target in self.scaling.targets:
+ if target.preceding:
+ continue
+ if ratio is None or ratio > target.loss_ratio:
+ ratio = target.loss_ratio
+ if not duration or duration < target.trial_duration:
+ duration = target.trial_duration
+ if not width or width < target.discrete_width:
+ width = target.discrete_width
+ self.debug(f"Init ratio {ratio} duration {duration} width {width}")
+ if self.config.warmup_duration:
+ self.debug("Warmup trial.")
+ self.measure(self.config.warmup_duration, max_load)
+ # Warmup should not affect the real results, reset the database.
+ self.database = MeasurementDatabase(self.scaling.targets)
+ self.debug(f"First trial at max rate: {max_load}")
+ result0 = self.measure(duration, max_load)
+ rfr = result0.relative_forwarding_rate
+ corrected_rfr = (self.from_float(rfr) / (1.0 - ratio)).rounded_down()
+ if corrected_rfr >= max_load:
+ self.debug("Small loss, no other initial trials are needed.")
+ return result0, result0
+ mrr = self.limit_handler.handle(corrected_rfr, width, None, max_load)
+ self.debug(f"Second trial at (corrected) mrr: {mrr}")
+ result1 = self.measure(duration, mrr)
+ # Attempt to get narrower width.
+ result_ratio = result1.loss_ratio
+ if result_ratio > ratio:
+ rfr2 = result1.relative_forwarding_rate
+ crfr2 = (self.from_float(rfr2) / (1.0 - ratio)).rounded_down()
+ mrr2 = self.limit_handler.handle(crfr2, width, None, mrr)
+ else:
+ mrr2 = mrr + width
+ mrr2 = self.limit_handler.handle(mrr2, width, mrr, max_load)
+ if not mrr2:
+ self.debug("Close enough, measuring at mrr2 is not needed.")
+ return result1, result1
+ self.debug(f"Third trial at (corrected) mrr2: {mrr2}")
+ result2 = self.measure(duration, mrr2)
+ return result1, result2
+
+ def main_loop(self, load0: DiscreteLoad, load1: DiscreteLoad) -> None:
+ """Initialize selectors and keep measuring the winning candidate.
+
+ Selectors are created, the two input loads are useful starting points.
+
+ The search ends when no selector nominates any candidate,
+ or if the search takes too long (or if a selector raises).
+
+ Winner is selected according to ordering defined in Candidate class.
+ In case of a tie, selectors for earlier goals are preferred.
+
+ As a selector is only allowed to update current width as the winner,
+ the update is done here explicitly.
+
+ :param load0: Discrete load of one of results from run_initial_trials.
+ :param load1: Discrete load of other of results from run_initial_trials.
+ :type load0: DiscreteLoad
+ :type load1: DiscreteLoad
+ :raises RuntimeError: If the search takes too long,
+ or if min load becomes an upper bound for any search goal
+ """
+ if load1 < load0:
+ load0, load1 = load1, load0
+ global_width = GlobalWidth.from_loads(load0, load1)
+ selectors = []
+ for target in self.scaling.goal_to_final_target.values():
+ selector = Selector(
+ final_target=target,
+ global_width=global_width,
+ initial_lower_load=load0,
+ initial_upper_load=load1,
+ database=self.database,
+ handler=self.limit_handler,
+ debug=self.debug,
+ )
+ selectors.append(selector)
+ while time.monotonic() < self.stop_time:
+ winner = Candidate()
+ for selector in selectors:
+ # Order of arguments is important
+ # when two targets nominate the same candidate.
+ winner = min(Candidate.nomination_from(selector), winner)
+ if not winner:
+ break
+ # We do not check duration versus stop_time here,
+ # as some measurers can be unpredictably faster
+ # than their intended duration suggests.
+ self.measure(duration=winner.duration, load=winner.load)
+ # Delayed updates.
+ if winner.width:
+ global_width.width = winner.width
+ winner.won()
+ else:
+ raise RuntimeError("Optimized search takes too long.")
+ self.debug("Search done.")
diff --git a/resources/libraries/python/MLRsearch/pep3140/__init__.py b/resources/libraries/python/MLRsearch/pep3140/__init__.py
new file mode 100644
index 0000000000..f8e2ffaa8f
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/pep3140/__init__.py
@@ -0,0 +1,24 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""
+__init__ file for Python package "pep3140".
+"""
+
+# TODO: Move submodules to separate modules.
+# Not obvious how to do that from PyPI point of view
+# without affecting the current CSIT global "resources" package root.
+# Probably it can be done by specifying multiple directories
+# in PYTHONPATH used throughout CSIT.
+
+from .classes import Pep3140Dict
diff --git a/resources/libraries/python/MLRsearch/pep3140/classes.py b/resources/libraries/python/MLRsearch/pep3140/classes.py
new file mode 100644
index 0000000000..9ab6e25c7c
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/pep3140/classes.py
@@ -0,0 +1,34 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining a subclass of dict with an alternative str method."""
+
+
+class Pep3140Dict(dict):
+ """A dict with str support as proposed in PEP 3140.
+
+ Python implemented str acting on dict such that the resulting string
+ shows both keys and values in their repr form.
+ Therefore, str() of a dict gives the same result as repr().
+
+ This class shows both keys and values their str form instead.
+ """
+
+ def __str__(self) -> str:
+ """Return comma+space separated str of items in curly brackets.
+
+ :returns: PEP 3140 string form of the dict data.
+ :rtype: str
+ """
+ body = ", ".join(f"{key}: {value}" for key, value in self.items())
+ return f"{{{body}}}"
diff --git a/resources/libraries/python/MLRsearch/relevant_bounds.py b/resources/libraries/python/MLRsearch/relevant_bounds.py
new file mode 100644
index 0000000000..4bc6796f71
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/relevant_bounds.py
@@ -0,0 +1,56 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining RelevantBounds class."""
+
+from __future__ import annotations
+
+from dataclasses import dataclass
+from typing import Optional
+
+from .trimmed_stat import TrimmedStat
+
+
+@dataclass
+class RelevantBounds:
+ """Container for the pair of relevant bounds for a target.
+
+ If there is no valid bound, None is used.
+
+ Relevant upper bound is smallest load acting as an upper bound.
+ Relevant lower bound acts as a lower bound, has to be strictly smaller
+ than the relevant upper bound, and is largest among such loads.
+
+ The short names "clo" and "chi" are also commonly used
+ in logging and technical comments.
+
+ Trimming could be done here, but it needs to known the target explicitly,
+ so it is done in MeasurementDatabase instead.
+ """
+
+ clo: Optional[TrimmedStat]
+ """The relevant lower bound (trimmed) for the current target."""
+ chi: Optional[TrimmedStat]
+ """The relevant upper bound (trimmed) for the current target."""
+
+ # TODO: Check types in post init?
+
+ def __str__(self) -> str:
+ """Convert into a short human-readable string.
+
+ :returns: The short string.
+ :rtype: str
+ """
+ clo = int(self.clo) if self.clo else None
+ chi = int(self.chi) if self.chi else None
+ return f"clo={clo},chi={chi}"
diff --git a/resources/libraries/python/MLRsearch/search_goal.py b/resources/libraries/python/MLRsearch/search_goal.py
new file mode 100644
index 0000000000..777ad5b991
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/search_goal.py
@@ -0,0 +1,119 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining SearchGoal class."""
+
+from dataclasses import dataclass
+
+
+@dataclass(frozen=True, eq=True)
+class SearchGoal:
+ """Storage class for search goal attributes.
+
+ This is the part of controller inputs that can be repeated
+ with different values. MLRsearch saves time by searching
+ for conditional throughput for each goal at the same time,
+ compared to repeated calls with separate goals.
+
+ Most fields (called attributes) of this composite
+ are relevant to the definition of conditional throughput.
+ The rest does not, but can affect the overal search time.
+ """
+
+ loss_ratio: float = 0.0
+ """The goal loss ratio.
+ A trial can satisfy the goal only when its trial loss ratio is not higher
+ than this. See MeasurementResult.loss_ratio for details.
+ A trial that does not satisfy this goal is called a bad trial."""
+ exceed_ratio: float = 0.5
+ """What portion of the duration sum can consist of bad trial seconds
+ while still being classified as lower bound (assuming no short trials)."""
+ relative_width: float = 0.005
+ """Target is achieved when the relevant lower bound
+ is no more than this (in units of the tightest upper bound) far
+ from the relevant upper bound."""
+ initial_trial_duration: float = 1.0
+ """Shortest trial duration employed when searching for this goal."""
+ final_trial_duration: float = 1.0
+ """Longest trial duration employed when searching for this goal."""
+ duration_sum: float = 21.0
+ """Minimal sum of durations of relevant trials sufficient to declare a load
+ to be upper or lower bound for this goal."""
+ preceding_targets: int = 2
+ """Number of increasingly coarser search targets to insert,
+ hoping to speed up searching for the final target of this goal."""
+ expansion_coefficient: int = 2
+ """External search multiplies width (in logarithmic space) by this."""
+ fail_fast: bool = True
+ """If true and min load is not an upper bound, raise.
+ If false, search will return None instead of lower bound."""
+
+ def __post_init__(self) -> None:
+ """Convert fields to correct types and call validate."""
+ super().__setattr__("loss_ratio", float(self.loss_ratio))
+ super().__setattr__("exceed_ratio", float(self.exceed_ratio))
+ super().__setattr__("relative_width", float(self.relative_width))
+ super().__setattr__(
+ "final_trial_duration", float(self.final_trial_duration)
+ )
+ super().__setattr__(
+ "initial_trial_duration", float(self.initial_trial_duration)
+ )
+ super().__setattr__("duration_sum", float(self.duration_sum))
+ super().__setattr__("preceding_targets", int(self.preceding_targets))
+ super().__setattr__(
+ "expansion_coefficient", int(self.expansion_coefficient)
+ )
+ super().__setattr__("fail_fast", bool(self.fail_fast))
+ self.validate()
+
+ def validate(self) -> None:
+ """Make sure the initialized values conform to requirements.
+
+ :raises ValueError: If a field value is outside allowed bounds.
+ """
+ if self.loss_ratio < 0.0:
+ raise ValueError(f"Loss ratio cannot be negative: {self}")
+ if self.loss_ratio >= 1.0:
+ raise ValueError(f"Loss ratio must be lower than 1: {self}")
+ if self.exceed_ratio < 0.0:
+ raise ValueError(f"Exceed ratio cannot be negative: {self}")
+ if self.exceed_ratio >= 1.0:
+ raise ValueError(f"Exceed ratio must be lower than 1: {self}")
+ if self.relative_width <= 0.0:
+ raise ValueError(f"Relative width must be positive: {self}")
+ if self.relative_width >= 1.0:
+ raise ValueError(f"Relative width must be less than 1: {self}")
+ if self.initial_trial_duration <= 0.0:
+ raise ValueError(f"Initial trial duration must be positive: {self}")
+ if self.final_trial_duration < self.initial_trial_duration:
+ raise ValueError(
+ f"Single duration max must be at least initial: {self}"
+ )
+ if self.duration_sum < self.final_trial_duration:
+ raise ValueError(
+ "Min duration sum cannot be smaller"
+ f" than final trial duration: {self}"
+ )
+ if self.expansion_coefficient <= 1:
+ raise ValueError(f"Expansion coefficient is too small: {self}")
+ too_small = False
+ if self.preceding_targets < 0:
+ too_small = True
+ elif self.preceding_targets < 1:
+ if self.initial_trial_duration < self.duration_sum:
+ too_small = True
+ if too_small:
+ raise ValueError(
+ f"Number of preceding targets is too small: {self}"
+ )
diff --git a/resources/libraries/python/MLRsearch/search_goal_tuple.py b/resources/libraries/python/MLRsearch/search_goal_tuple.py
new file mode 100644
index 0000000000..d40ba99b4b
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/search_goal_tuple.py
@@ -0,0 +1,60 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining SearchGoalTuple class."""
+
+from collections.abc import Iterator
+from dataclasses import dataclass
+from typing import Tuple
+
+from .search_goal import SearchGoal
+
+
+@dataclass(frozen=True)
+class SearchGoalTuple:
+ """Container class holding multiple search goals.
+
+ Just a convenience for checking their number and types.
+ """
+
+ goals: Tuple[SearchGoal, ...]
+ """Goals extracted from user-provided Iterable of search goals."""
+
+ def __post_init__(self) -> None:
+ """Check type and number of search goals.
+
+ :raises ValueError: If there are no goals.
+ :raises TypeError: If a goal is not a SearchGoal.
+ """
+ super().__setattr__("goals", tuple(self.goals))
+ if not self.goals:
+ raise ValueError(f"Cannot be empty: {self.goals}")
+ for goal in self.goals:
+ if not isinstance(goal, SearchGoal):
+ raise TypeError(f"Must be a SearchGoal instance: {goal}")
+ copied = list(self.goals)
+ deduplicated = set(self.goals)
+ for goal in copied:
+ if goal not in deduplicated:
+ raise ValueError(f"Duplicate goal: {goal}")
+ deduplicated.remove(goal)
+ if deduplicated:
+ raise ValueError(f"Error processing goals: {deduplicated}")
+
+ def __iter__(self) -> Iterator[SearchGoal]:
+ """Enable itertion over goals.
+
+ :returns: Iterator iteratinc over contained goals.
+ :rtype: Iterator[SearchGoal]
+ """
+ return iter(self.goals)
diff --git a/resources/libraries/python/MLRsearch/selector.py b/resources/libraries/python/MLRsearch/selector.py
new file mode 100644
index 0000000000..4a6d2e2574
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/selector.py
@@ -0,0 +1,183 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining Selector class."""
+
+
+from dataclasses import dataclass, field
+from typing import Callable, List, Optional, Tuple
+
+from .dataclass import secondary_field
+from .discrete_load import DiscreteLoad
+from .discrete_width import DiscreteWidth
+from .expander import TargetedExpander
+from .global_width import GlobalWidth
+from .limit_handler import LimitHandler
+from .measurement_database import MeasurementDatabase
+from .relevant_bounds import RelevantBounds
+from .target_spec import TargetSpec
+from .strategy import StrategyBase, STRATEGY_CLASSES
+
+
+@dataclass
+class Selector:
+ """A selector is an abstraction that focuses on only one of search goals.
+
+ While lower-level logic is hidden in strategy classes,
+ the code in this class is responsible for initializing strategies
+ and shifting targets towards the final target.
+
+ While the public methods have the same names and meaning as the ones
+ in strategy classes, their signature is different.
+ Selector adds the current target trial duration to the output of nominate(),
+ and adds the current bounds to the input of won().
+
+ The nominate method does not return a complete Candidate instance,
+ as we need to avoid circular dependencies
+ (candidate will refer to selector).
+ """
+
+ final_target: TargetSpec
+ """The target this selector is trying to ultimately achieve."""
+ global_width: GlobalWidth
+ """Reference to the global width tracking instance."""
+ initial_lower_load: DiscreteLoad
+ """Smaller of the two loads distinguished at instance creation.
+ During operation, this field is reused to store preceding target bound."""
+ initial_upper_load: DiscreteLoad
+ """Larger of the two loads distinguished at instance creation.
+ During operation, this field is reused to store preceding target bound."""
+ database: MeasurementDatabase = field(repr=False)
+ """Reference to the common database used by all selectors."""
+ handler: LimitHandler = field(repr=False)
+ """Reference to the class used to avoid too narrow intervals."""
+ debug: Callable[[str], None] = field(repr=False)
+ """Injectable function for debug logging."""
+ # Primary above, derived below.
+ current_target: TargetSpec = secondary_field()
+ """The target the selector is focusing on currently."""
+ target_stack: List[TargetSpec] = secondary_field()
+ """Stack of targets. When current target is achieved, next is popped."""
+ strategies: Tuple[StrategyBase] = secondary_field()
+ """Instances implementing particular selection strategies."""
+ current_strategy: Optional[StrategyBase] = secondary_field()
+ """Reference to strategy used for last nomination, needed for won()."""
+ # Cache.
+ bounds: RelevantBounds = secondary_field()
+ """New relevant bounds for this round of candidate selection."""
+
+ def __post_init__(self) -> None:
+ """Initialize derived values."""
+ self.target_stack = [self.final_target]
+ while preceding_target := self.target_stack[-1].preceding:
+ self.target_stack.append(preceding_target)
+ self.current_target = self.target_stack.pop()
+ self._recreate_strategies()
+
+ def _recreate_strategies(self) -> None:
+ """Recreate strategies after current target has changed.
+
+ Width expander is recreated as target width is now smaller.
+ For convenience, strategies get injectable debug
+ which prints also the current target.
+ """
+ expander = TargetedExpander(
+ target=self.current_target,
+ global_width=self.global_width,
+ initial_lower_load=self.initial_lower_load,
+ initial_upper_load=self.initial_upper_load,
+ handler=self.handler,
+ debug=self.debug,
+ )
+
+ def wrapped_debug(text: str) -> None:
+ """Call self debug with current target info prepended.
+
+ :param text: Message to log at debug level.
+ :type text: str
+ """
+ self.debug(f"Target {self.current_target}: {text}")
+
+ self.strategies = tuple(
+ cls(
+ target=self.current_target,
+ expander=expander,
+ initial_lower_load=self.initial_lower_load,
+ initial_upper_load=self.initial_upper_load,
+ handler=self.handler,
+ debug=wrapped_debug,
+ )
+ for cls in STRATEGY_CLASSES
+ )
+ self.current_strategy = None
+ self.debug(f"Created strategies for: {self.current_target}")
+
+ def _update_bounds(self) -> None:
+ """Before each iteration, call this to update bounds cache."""
+ self.bounds = self.database.get_relevant_bounds(self.current_target)
+
+ def nominate(
+ self,
+ ) -> Tuple[Optional[DiscreteLoad], float, Optional[DiscreteWidth]]:
+ """Find first strategy that wants to nominate, return trial inputs.
+
+ Returned load is None if no strategy wants to nominate.
+
+ Current target is shifted when (now preceding) target is reached.
+ As each strategy never becomes done before at least one
+ bound relevant to the current target becomes available,
+ it is never needed to revert to the preceding target after the shift.
+
+ As the initial trials had inputs relevant to all initial targets,
+ the only way for this not to nominate a load
+ is when the final target is reached (including hitting min or max load).
+ The case of hitting min load raises, so search fails early.
+
+ :returns: Nominated load, duration, and global width to set if winning.
+ :rtype: Tuple[Optional[DiscreteLoad], float, Optional[DiscreteWidth]]
+ :raises RuntimeError: If internal inconsistency is detected,
+ or if min load becomes an upper bound.
+ """
+ self._update_bounds()
+ self.current_strategy = None
+ while 1:
+ for strategy in self.strategies:
+ load, width = strategy.nominate(self.bounds)
+ if load:
+ self.current_strategy = strategy
+ return load, self.current_target.trial_duration, width
+ if not self.bounds.clo and not self.bounds.chi:
+ raise RuntimeError("Internal error: no clo nor chi.")
+ if not self.target_stack:
+ if not self.bounds.clo and self.current_target.fail_fast:
+ raise RuntimeError(f"No lower bound: {self.bounds.chi!r}")
+ self.debug(f"Goal {self.current_target} reached: {self.bounds}")
+ return None, self.current_target.trial_duration, None
+ # Everything is ready for next target in the chain.
+ self.current_target = self.target_stack.pop()
+ # Debug logs look better if we forget bounds are TrimmedStat.
+ # Abuse rounding (if not None) to convert to pure DiscreteLoad.
+ clo, chi = self.bounds.clo, self.bounds.chi
+ self.initial_lower_load = clo.rounded_down() if clo else clo
+ self.initial_upper_load = chi.rounded_down() if chi else chi
+ self._update_bounds()
+ self._recreate_strategies()
+
+ def won(self, load: DiscreteLoad) -> None:
+ """Update any private info when candidate became a winner.
+
+ :param load: The load previously nominated by current strategy.
+ :type load: DiscreteLoad
+ """
+ self._update_bounds()
+ self.current_strategy.won(bounds=self.bounds, load=load)
diff --git a/resources/libraries/python/MLRsearch/strategy/__init__.py b/resources/libraries/python/MLRsearch/strategy/__init__.py
new file mode 100644
index 0000000000..a1e0225a17
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/strategy/__init__.py
@@ -0,0 +1,35 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""
+__init__ file for Python package "strategy".
+"""
+
+from .base import StrategyBase
+from .bisect import BisectStrategy
+from .extend_hi import ExtendHiStrategy
+from .extend_lo import ExtendLoStrategy
+from .halve import HalveStrategy
+from .refine_hi import RefineHiStrategy
+from .refine_lo import RefineLoStrategy
+
+
+STRATEGY_CLASSES = (
+ HalveStrategy,
+ RefineLoStrategy,
+ RefineHiStrategy,
+ ExtendLoStrategy,
+ ExtendHiStrategy,
+ BisectStrategy,
+)
+"""Tuple of strategy constructors, in order of priority decreasing."""
diff --git a/resources/libraries/python/MLRsearch/strategy/base.py b/resources/libraries/python/MLRsearch/strategy/base.py
new file mode 100644
index 0000000000..0724f882bf
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/strategy/base.py
@@ -0,0 +1,132 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining StrategyBase class."""
+
+
+from abc import ABC, abstractmethod
+from dataclasses import dataclass, field
+from typing import Callable, Optional, Tuple
+
+from ..discrete_interval import DiscreteInterval
+from ..discrete_load import DiscreteLoad
+from ..discrete_width import DiscreteWidth
+from ..expander import TargetedExpander
+from ..limit_handler import LimitHandler
+from ..relevant_bounds import RelevantBounds
+from ..target_spec import TargetSpec
+
+
+@dataclass
+class StrategyBase(ABC):
+ """Abstract class encompassing data common to most strategies.
+
+ A strategy is one piece of logic a selector may use
+ when nominating a candidate according to its current target.
+
+ The two initial bound arguments may not be bounds at all.
+ For initial targets, the two values are usually mrr and mrr2.
+ For subsequent targets, the initial values are usually
+ the relevant bounds of the preceding target,
+ but one of them may be None if hitting min or max load.
+
+ The initial values are mainly used as stable alternatives
+ to relevant bounds of preceding target,
+ because those bounds may have been unpredictably altered
+ by nominations from unrelated search goals.
+ This greatly simplifies reasoning about strategies making progress.
+ """
+
+ target: TargetSpec
+ """The target this strategy is focusing on."""
+ expander: TargetedExpander
+ """Instance to track width expansion during search (if applicable)."""
+ initial_lower_load: Optional[DiscreteLoad]
+ """Smaller of the two loads distinguished at instance creation.
+ Can be None if upper bound is the min load."""
+ initial_upper_load: Optional[DiscreteLoad]
+ """Larger of the two loads distinguished at instance creation.
+ Can be None if lower bound is the max load."""
+ handler: LimitHandler = field(repr=False)
+ """Reference to the limit handler instance."""
+ debug: Callable[[str], None] = field(repr=False)
+ """Injectable function for debug logging."""
+
+ @abstractmethod
+ def nominate(
+ self, bounds: RelevantBounds
+ ) -> Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]:
+ """Nominate a load candidate if the conditions activate this strategy.
+
+ A complete candidate refers also to the nominating selector.
+ To prevent circular dependence (selector refers to nominating strategy),
+ this function returns only duration and width.
+
+ Width should only be non-None if global current width should be updated
+ when the candidate based on this becomes winner.
+ But currently all strategies return non-None width
+ if they return non-None load.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :type bounds: RelevantBounds
+ :returns: Two nones or candidate intended load and duration.
+ :rtype: Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]
+ """
+ return None, None
+
+ def won(self, bounds: RelevantBounds, load: DiscreteLoad) -> None:
+ """Notify the strategy its candidate became the winner.
+
+ Most strategies have no use for this information,
+ but some strategies may need to update their private information.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :param load: The current load, so strategy does not need to remember.
+ :type bounds: RelevantBounds
+ :type load: DiscreteLoad
+ """
+ return
+
+ def not_worth(self, bounds: RelevantBounds, load: DiscreteLoad) -> bool:
+ """A check on bounds common for multiple strategies.
+
+ The load is worth measuring only if it can create or improve
+ either relevant bound.
+
+ Each strategy is designed to create a relevant bound for current target,
+ which is only needed if that (or better) bound does not exist yet.
+ Conversely, if a strategy does not nominate, it is because
+ the load it would nominate (if any) is found not worth by this method.
+
+ :param bounds: Current relevant bounds.
+ :param load: Load of a possible candidate.
+ :type bounds: RelevantBounds
+ :type load: DiscreteLoad
+ :returns: True if the load should NOT be nominated.
+ :rtype: bool
+ """
+ if bounds.clo and bounds.clo >= load:
+ return True
+ if bounds.chi and bounds.chi <= load:
+ return True
+ if bounds.clo and bounds.chi:
+ # We are not hitting min nor max load.
+ # Measuring at this load will create or improve clo or chi.
+ # The only reason not to nominate is if interval is narrow already.
+ wig = DiscreteInterval(
+ lower_bound=bounds.clo,
+ upper_bound=bounds.chi,
+ ).width_in_goals(self.target.discrete_width)
+ if wig <= 1.0:
+ return True
+ return False
diff --git a/resources/libraries/python/MLRsearch/strategy/bisect.py b/resources/libraries/python/MLRsearch/strategy/bisect.py
new file mode 100644
index 0000000000..894544695e
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/strategy/bisect.py
@@ -0,0 +1,193 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining BisectStrategy class."""
+
+
+from dataclasses import dataclass
+from typing import Optional, Tuple
+
+from ..discrete_interval import DiscreteInterval
+from ..discrete_load import DiscreteLoad
+from ..discrete_width import DiscreteWidth
+from ..relevant_bounds import RelevantBounds
+from .base import StrategyBase
+
+
+@dataclass
+class BisectStrategy(StrategyBase):
+ """Strategy to use when both bounds relevant to curent target are present.
+
+ Primarily, this strategy is there to perform internal search.
+ As powers of two are fiendly to binary search,
+ this strategy relies on the splitting logic described in DiscreteInterval.
+
+ The main reason why this class is so long is that a mere existence
+ of a valid bound for the current target does not imply
+ that bound is a good approximation of the final conditional throughput.
+ The bound might become valid due to efforts of a strategy
+ focusing on an entirely different search goal.
+
+ On the other hand, initial bounds may be better approximations,
+ but they also may be bad approximations (for example
+ when SUT behavior strongly depends on trial duration).
+
+ Based on comparison of existing current bounds to intial bounds,
+ this strategy also mimics what would external search do
+ (if the one current bound was missing and other initial bound was current).
+ In case that load value is closer to appropriate inital bound
+ (compared to how far the simple bisect between current bounds is),
+ that load is nominated.
+
+ It turns out those "conditional" external search nominations
+ are quite different from unconditional ones,
+ at least when it comes to handling limits
+ and tracking when width expansion should be applied.
+ That is why that logic is here
+ and not in some generic external search class.
+ """
+
+ expand_on_clo: bool = False
+ """If extending up, width should be expanded when load becomes clo."""
+ expand_on_chi: bool = False
+ """If extending down, width should be expanded when load becomes chi."""
+
+ def nominate(
+ self, bounds: RelevantBounds
+ ) -> Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]:
+ """Nominate a load candidate between bounds or extending from them.
+
+ The external search logic is offloaded into private methods.
+ If they return a truthy load, that is returned from here as well.
+
+ Only if the actual bisect is selected,
+ the per-selector expander is limited to the (smaller) new width.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :type bounds: RelevantBounds
+ :returns: Two nones or candidate intended load and duration.
+ :rtype: Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]
+ """
+ if not bounds.clo or bounds.clo >= self.handler.max_load:
+ return None, None
+ if not bounds.chi or bounds.chi <= self.handler.min_load:
+ return None, None
+ interval = DiscreteInterval(bounds.clo, bounds.chi)
+ if interval.width_in_goals(self.target.discrete_width) <= 1.0:
+ return None, None
+ bisect_load = interval.middle(self.target.discrete_width)
+ load, width = self._extend_lo(bounds, bisect_load)
+ if load:
+ self.expand_on_clo, self.expand_on_chi = False, True
+ self.debug(f"Preferring to extend down: {load}")
+ return load, width
+ load, width = self._extend_hi(bounds, bisect_load)
+ if load:
+ self.expand_on_clo, self.expand_on_chi = True, False
+ self.debug(f"Preferring to extend up: {load}")
+ return load, width
+ load = bisect_load
+ if self.not_worth(bounds=bounds, load=load):
+ return None, None
+ self.expand_on_clo, self.expand_on_chi = False, False
+ self.debug(f"Preferring to bisect: {load}")
+ width_lo = DiscreteInterval(bounds.clo, load).discrete_width
+ width_hi = DiscreteInterval(load, bounds.chi).discrete_width
+ width = min(width_lo, width_hi)
+ self.expander.limit(width)
+ return load, width
+
+ def _extend_lo(
+ self, bounds: RelevantBounds, bisect_load: DiscreteLoad
+ ) -> Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]:
+ """Compute load as if extending down, return it if preferred.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :param bisect_load: Load when bisection is preferred.
+ :type bounds: RelevantBounds
+ :type bisect_load: DiscreteLoad
+ :returns: Two nones or candidate intended load and duration.
+ :rtype: Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]
+ :raises RuntimeError: If an internal inconsistency is detected.
+ """
+ # TODO: Simplify all the conditions or explain them better.
+ if not self.initial_upper_load:
+ return None, None
+ if bisect_load >= self.initial_upper_load:
+ return None, None
+ width = self.expander.get_width()
+ load = bounds.chi - width
+ load = self.handler.handle(
+ load=load,
+ width=self.target.discrete_width,
+ clo=bounds.clo,
+ chi=bounds.chi,
+ )
+ if not load:
+ return None, None
+ if load <= bisect_load:
+ return None, None
+ if load >= self.initial_upper_load:
+ return None, None
+ if self.not_worth(bounds=bounds, load=load):
+ raise RuntimeError(f"Load not worth: {load}")
+ return load, width
+
+ def _extend_hi(
+ self, bounds: RelevantBounds, bisect_load: DiscreteLoad
+ ) -> Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]:
+ """Compute load as if extending up, return it if preferred.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :param bisect_load: Load when bisection is preferred.
+ :type bounds: RelevantBounds
+ :type bisect_load: DiscreteLoad
+ :returns: Two nones or candidate intended load and duration.
+ :rtype: Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]
+ :raises RuntimeError: If an internal inconsistency is detected.
+ """
+ # TODO: Simplify all the conditions or explain them better.
+ if not self.initial_lower_load:
+ return None, None
+ if bisect_load <= self.initial_lower_load:
+ return None, None
+ width = self.expander.get_width()
+ load = bounds.clo + width
+ load = self.handler.handle(
+ load=load,
+ width=self.target.discrete_width,
+ clo=bounds.clo,
+ chi=bounds.chi,
+ )
+ if not load:
+ return None, None
+ if load >= bisect_load:
+ return None, None
+ if load <= self.initial_lower_load:
+ return None, None
+ if self.not_worth(bounds=bounds, load=load):
+ raise RuntimeError(f"Load not worth: {load}")
+ return load, width
+
+ def won(self, bounds: RelevantBounds, load: DiscreteLoad) -> None:
+ """Expand width when appropriate.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :param load: The current load, so strategy does not need to remember.
+ :type bounds: RelevantBounds
+ :type load: DiscreteLoad
+ """
+ if self.expand_on_clo and load == bounds.clo:
+ self.expander.expand()
+ elif self.expand_on_chi and load == bounds.chi:
+ self.expander.expand()
diff --git a/resources/libraries/python/MLRsearch/strategy/extend_hi.py b/resources/libraries/python/MLRsearch/strategy/extend_hi.py
new file mode 100644
index 0000000000..79c4ad7cf2
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/strategy/extend_hi.py
@@ -0,0 +1,76 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining ExtendHiStrategy class."""
+
+
+from dataclasses import dataclass
+from typing import Optional, Tuple
+
+from ..discrete_load import DiscreteLoad
+from ..discrete_width import DiscreteWidth
+from ..relevant_bounds import RelevantBounds
+from .base import StrategyBase
+
+
+@dataclass
+class ExtendHiStrategy(StrategyBase):
+ """This strategy is applied when there is no relevant upper bound.
+
+ Typically this is needed after RefineHiStrategy turned initial upper bound
+ into a current relevant lower bound.
+ """
+
+ def nominate(
+ self, bounds: RelevantBounds
+ ) -> Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]:
+ """Nominate current relevant lower bound plus expander width.
+
+ This performs external search in upwards direction,
+ until a valid upper bound for the current target is found,
+ or until max load is hit.
+ Limit handling is used to avoid nominating too close
+ (or above) the max rate.
+
+ Width expansion is only applied if the candidate becomes a lower bound,
+ so that is detected in done method.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :type bounds: RelevantBounds
+ :returns: Two nones or candidate intended load and duration.
+ :rtype: Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]
+ """
+ if bounds.chi or not bounds.clo or bounds.clo >= self.handler.max_load:
+ return None, None
+ width = self.expander.get_width()
+ load = self.handler.handle(
+ load=bounds.clo + width,
+ width=self.target.discrete_width,
+ clo=bounds.clo,
+ chi=bounds.chi,
+ )
+ if self.not_worth(bounds=bounds, load=load):
+ return None, None
+ self.debug(f"No chi, extending up: {load}")
+ return load, width
+
+ def won(self, bounds: RelevantBounds, load: DiscreteLoad) -> None:
+ """Expand width if the load became the new lower bound.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :param load: The current load, so strategy does not need to remember.
+ :type bounds: RelevantBounds
+ :type load: DiscreteLoad
+ """
+ if load == bounds.clo:
+ self.expander.expand()
diff --git a/resources/libraries/python/MLRsearch/strategy/extend_lo.py b/resources/libraries/python/MLRsearch/strategy/extend_lo.py
new file mode 100644
index 0000000000..68d20b6a6a
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/strategy/extend_lo.py
@@ -0,0 +1,76 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining ExtendLoStrategy class."""
+
+
+from dataclasses import dataclass
+from typing import Optional, Tuple
+
+from ..discrete_load import DiscreteLoad
+from ..discrete_width import DiscreteWidth
+from ..relevant_bounds import RelevantBounds
+from .base import StrategyBase
+
+
+@dataclass
+class ExtendLoStrategy(StrategyBase):
+ """This strategy is applied when there is no relevant lower bound.
+
+ Typically this is needed after RefineLoStrategy turned initial lower bound
+ into a current relevant upper bound.
+ """
+
+ def nominate(
+ self, bounds: RelevantBounds
+ ) -> Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]:
+ """Nominate current relevant upper bound minus expander width.
+
+ This performs external search in downwards direction,
+ until a valid lower bound for the current target is found,
+ or until min load is hit.
+ Limit handling is used to avoid nominating too close
+ (or below) the min rate.
+
+ Width expansion is only applied if the candidate becomes an upper bound,
+ so that is detected in done method.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :type bounds: RelevantBounds
+ :returns: Two nones or candidate intended load and duration.
+ :rtype: Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]
+ """
+ if bounds.clo or not bounds.chi or bounds.chi <= self.handler.min_load:
+ return None, None
+ width = self.expander.get_width()
+ load = self.handler.handle(
+ load=bounds.chi - width,
+ width=self.target.discrete_width,
+ clo=bounds.clo,
+ chi=bounds.chi,
+ )
+ if self.not_worth(bounds=bounds, load=load):
+ return None, None
+ self.debug(f"No clo, extending down: {load}")
+ return load, width
+
+ def won(self, bounds: RelevantBounds, load: DiscreteLoad) -> None:
+ """Expand width if the load became new upper bound.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :param load: The current load, so strategy does not need to remember.
+ :type bounds: RelevantBounds
+ :type load: DiscreteLoad
+ """
+ if load == bounds.chi:
+ self.expander.expand()
diff --git a/resources/libraries/python/MLRsearch/strategy/halve.py b/resources/libraries/python/MLRsearch/strategy/halve.py
new file mode 100644
index 0000000000..3188a041c6
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/strategy/halve.py
@@ -0,0 +1,83 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining HalveStrategy class."""
+
+
+from dataclasses import dataclass
+from typing import Optional, Tuple
+
+from ..discrete_interval import DiscreteInterval
+from ..discrete_load import DiscreteLoad
+from ..discrete_width import DiscreteWidth
+from ..relevant_bounds import RelevantBounds
+from .base import StrategyBase
+
+
+@dataclass
+class HalveStrategy(StrategyBase):
+ """First strategy to apply for a new current target.
+
+ Pick a load between initial lower bound and initial upper bound,
+ nominate it if it is (still) worth it.
+
+ In a sense, this can be viewed as an extension of preceding target's
+ bisect strategy. But as the current target may require a different
+ trial duration, it is better to do it for the new target.
+
+ Alternatively, this is a way to save one application
+ of subsequent refine strategy, thus avoiding reducing risk of triggering
+ an external search (slight time saver for highly unstable SUTs).
+ Either way, minor time save is achieved by preceding target
+ only needing to reach double of current target width.
+
+ If the distance between initial bounds is already at or below
+ current target width, the middle point is not nominated.
+ The reasoning is that in this case external search is likely
+ to get triggered by the subsequent refine strategies,
+ so attaining a relevant bound here is not as likely to help.
+ """
+
+ def nominate(
+ self, bounds: RelevantBounds
+ ) -> Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]:
+ """Nominate the middle between initial lower and upper bound.
+
+ The returned width is the target width, even if initial bounds
+ happened to be closer together.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :type bounds: RelevantBounds
+ :returns: Two nones or candidate intended load and duration.
+ :rtype: Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]
+ """
+ if not self.initial_lower_load or not self.initial_upper_load:
+ return None, None
+ interval = DiscreteInterval(
+ lower_bound=self.initial_lower_load,
+ upper_bound=self.initial_upper_load,
+ )
+ wig = interval.width_in_goals(self.target.discrete_width)
+ if wig > 2.0:
+ # Can happen for initial target.
+ return None, None
+ if wig <= 1.0:
+ # Already was narrow enough, refinements shall be sufficient.
+ return None, None
+ load = interval.middle(self.target.discrete_width)
+ if self.not_worth(bounds, load):
+ return None, None
+ self.debug(f"Halving available: {load}")
+ # TODO: Report possibly smaller width?
+ self.expander.limit(self.target.discrete_width)
+ return load, self.target.discrete_width
diff --git a/resources/libraries/python/MLRsearch/strategy/refine_hi.py b/resources/libraries/python/MLRsearch/strategy/refine_hi.py
new file mode 100644
index 0000000000..caa8fc4a7d
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/strategy/refine_hi.py
@@ -0,0 +1,55 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining RefineHiStrategy class."""
+
+
+from dataclasses import dataclass
+from typing import Optional, Tuple
+
+from ..discrete_load import DiscreteLoad
+from ..discrete_width import DiscreteWidth
+from ..relevant_bounds import RelevantBounds
+from .base import StrategyBase
+
+
+@dataclass
+class RefineHiStrategy(StrategyBase):
+ """If initial upper bound is still worth it, nominate it.
+
+ This usually happens when halving resulted in relevant lower bound,
+ or if there was no halving (and RefineLoStrategy confirmed initial
+ lower bound became a relevant lower bound for the new current target).
+
+ This either ensures a matching upper bound (target is achieved)
+ or moves the relevant lower bound higher (triggering external search).
+ """
+
+ def nominate(
+ self, bounds: RelevantBounds
+ ) -> Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]:
+ """Nominate the initial upper bound.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :type bounds: RelevantBounds
+ :returns: Two nones or candidate intended load and duration.
+ :rtype: Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]
+ """
+ if not (load := self.initial_upper_load):
+ return None, None
+ if self.not_worth(bounds=bounds, load=load):
+ return None, None
+ self.debug(f"Upperbound refinement available: {load}")
+ # TODO: Limit to possibly smaller than target width?
+ self.expander.limit(self.target.discrete_width)
+ return load, self.target.discrete_width
diff --git a/resources/libraries/python/MLRsearch/strategy/refine_lo.py b/resources/libraries/python/MLRsearch/strategy/refine_lo.py
new file mode 100644
index 0000000000..7927798505
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/strategy/refine_lo.py
@@ -0,0 +1,53 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining RefineLoStrategy class."""
+
+
+from dataclasses import dataclass
+from typing import Optional, Tuple
+
+from ..discrete_load import DiscreteLoad
+from ..discrete_width import DiscreteWidth
+from ..relevant_bounds import RelevantBounds
+from .base import StrategyBase
+
+
+@dataclass
+class RefineLoStrategy(StrategyBase):
+ """If initial lower bound is still worth it, nominate it.
+
+ This usually happens when halving resulted in relevant upper bound,
+ or if there was no halving.
+ This ensures a relevant bound (upper or lower) for the current target
+ exists.
+ """
+
+ def nominate(
+ self, bounds: RelevantBounds
+ ) -> Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]:
+ """Nominate the initial lower bound.
+
+ :param bounds: Freshly updated bounds relevant for current target.
+ :type bounds: RelevantBounds
+ :returns: Two nones or candidate intended load and duration.
+ :rtype: Tuple[Optional[DiscreteLoad], Optional[DiscreteWidth]]
+ """
+ if not (load := self.initial_lower_load):
+ return None, None
+ if self.not_worth(bounds=bounds, load=load):
+ return None, None
+ self.debug(f"Lowerbound refinement available: {load}")
+ # TODO: Limit to possibly smaller than target width?
+ self.expander.limit(self.target.discrete_width)
+ return load, self.target.discrete_width
diff --git a/resources/libraries/python/MLRsearch/target_scaling.py b/resources/libraries/python/MLRsearch/target_scaling.py
new file mode 100644
index 0000000000..25114c311c
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/target_scaling.py
@@ -0,0 +1,103 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining TargetScaling class."""
+
+from dataclasses import dataclass
+from typing import Dict, Tuple
+
+from .dataclass import secondary_field
+from .discrete_width import DiscreteWidth
+from .load_rounding import LoadRounding
+from .search_goal import SearchGoal
+from .search_goal_tuple import SearchGoalTuple
+from .target_spec import TargetSpec
+
+
+@dataclass
+class TargetScaling:
+ """Encapsulate targets derived from goals.
+
+ No default values for primaries, contructor call has to specify everything.
+ """
+
+ goals: SearchGoalTuple
+ """Set of goals to generate targets for."""
+ rounding: LoadRounding
+ """Rounding instance to use (targets have discrete width)."""
+ # Derived quantities.
+ targets: Tuple[TargetSpec] = secondary_field()
+ """The generated targets, linked into chains."""
+ goal_to_final_target: Dict[SearchGoal, TargetSpec] = secondary_field()
+ """Mapping from a goal to its corresponding final target."""
+
+ def __post_init__(self) -> None:
+ """For each goal create final, and non-final targets and link them."""
+ linked_targets = []
+ self.goal_to_final_target = {}
+ for goal in self.goals:
+ standalone_targets = []
+ # Final target.
+ width = DiscreteWidth(
+ rounding=self.rounding,
+ float_width=goal.relative_width,
+ ).rounded_down()
+ duration_sum = goal.duration_sum
+ target = TargetSpec(
+ loss_ratio=goal.loss_ratio,
+ exceed_ratio=goal.exceed_ratio,
+ discrete_width=width,
+ trial_duration=goal.final_trial_duration,
+ duration_sum=duration_sum,
+ expansion_coefficient=goal.expansion_coefficient,
+ fail_fast=goal.fail_fast,
+ preceding=None,
+ )
+ standalone_targets.append(target)
+ # Non-final targets.
+ preceding_targets = goal.preceding_targets
+ multiplier = (
+ pow(
+ goal.initial_trial_duration / duration_sum,
+ 1.0 / preceding_targets,
+ )
+ if preceding_targets
+ else 1.0
+ )
+ for count in range(preceding_targets):
+ preceding_sum = duration_sum * pow(multiplier, count + 1)
+ if count + 1 >= preceding_targets:
+ preceding_sum = goal.initial_trial_duration
+ trial_duration = min(goal.final_trial_duration, preceding_sum)
+ width *= 2
+ target = TargetSpec(
+ loss_ratio=goal.loss_ratio,
+ exceed_ratio=goal.exceed_ratio,
+ discrete_width=width,
+ trial_duration=trial_duration,
+ duration_sum=preceding_sum,
+ expansion_coefficient=goal.expansion_coefficient,
+ fail_fast=False,
+ preceding=None,
+ )
+ standalone_targets.append(target)
+ # Link preceding targets.
+ preceding_target = None
+ for target in reversed(standalone_targets):
+ linked_target = target.with_preceding(preceding_target)
+ linked_targets.append(linked_target)
+ preceding_target = linked_target
+ # Associate final target to the goal.
+ self.goal_to_final_target[goal] = linked_targets[-1]
+ # Store all targets as a tuple.
+ self.targets = tuple(linked_targets)
diff --git a/resources/libraries/python/MLRsearch/target_spec.py b/resources/libraries/python/MLRsearch/target_spec.py
new file mode 100644
index 0000000000..5279ba00a1
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/target_spec.py
@@ -0,0 +1,95 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining TargetSpec class."""
+
+from __future__ import annotations
+
+from dataclasses import dataclass, field
+from typing import Optional
+
+from .discrete_width import DiscreteWidth
+
+
+@dataclass(frozen=True, eq=True)
+class TargetSpec:
+ """Composite object holding attributes specifying one search target.
+
+ Abstractly, this has several similar meanings.
+ With discrete_width attribute this specifies when a selector is Done.
+ With expansion_coefficient attribute it tells selector how quickly
+ should it expand interval in external search.
+ With "preceding" attribute it helps selector, so it does not need to point
+ to preceding target separately from its current target.
+ Without those three attributes this object is still sufficient
+ for LoadStats to classify loads as lower bound, upper bound, or unknown.
+ """
+
+ loss_ratio: float
+ """Target loss ratio. Equal and directly analogous to goal loss ratio,
+ but applicable also for non-final targets."""
+ exceed_ratio: float
+ """Target exceed ratio. Equal and directly analogous to goal exceed ratio,
+ but applicable also for non-final targets."""
+ discrete_width: DiscreteWidth
+ """Target relative width. Analogous to goal relative width,
+ but coarser for non-final targets."""
+ trial_duration: float
+ """Duration to use for trials for this target. Shorter trials have lesser
+ (and more complicated) impact when determining upper and lower bounds."""
+ duration_sum: float
+ """Sum of trial durations sufficient to classify a load
+ as an upper or lower bound.
+ For non-final targets, this is shorter than goal duration_sum."""
+ expansion_coefficient: int = field(repr=False)
+ """Equal and directly analogous to goal expansion coefficient,
+ but applicable also for non-final targets."""
+ fail_fast: bool = field(repr=False)
+ """Copied from goal. If true and min load is not an upper bound, raise."""
+ preceding: Optional[TargetSpec] = field(repr=False)
+ """Reference to next coarser target (if any) belonging to the same goal."""
+
+ # No conversions or validations, as this is an internal structure.
+
+ def __str__(self) -> str:
+ """Convert into a short human-readable string.
+
+ :returns: The short string.
+ :rtype: str
+ """
+ return (
+ f"lr={self.loss_ratio},er={self.exceed_ratio}"
+ f",ds={self.duration_sum}"
+ )
+
+ def with_preceding(self, preceding: Optional[TargetSpec]) -> TargetSpec:
+ """Create an equivalent instance but with different preceding field.
+
+ This is useful in initialization. Create semi-initialized targets
+ starting from final one, than add references in reversed order.
+
+ :param preceding: New value for preceding field, cannot be None.
+ :type preceding: Optional[TargetSpec]
+ :returns: Instance with the new value applied.
+ :rtype: TargetSpec
+ """
+ return TargetSpec(
+ loss_ratio=self.loss_ratio,
+ exceed_ratio=self.exceed_ratio,
+ discrete_width=self.discrete_width,
+ trial_duration=self.trial_duration,
+ duration_sum=self.duration_sum,
+ expansion_coefficient=self.expansion_coefficient,
+ fail_fast=self.fail_fast,
+ preceding=preceding,
+ )
diff --git a/resources/libraries/python/MLRsearch/target_stat.py b/resources/libraries/python/MLRsearch/target_stat.py
new file mode 100644
index 0000000000..18e1ff4161
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/target_stat.py
@@ -0,0 +1,153 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining LoadStat class."""
+
+from dataclasses import dataclass, field
+from typing import Dict, Tuple
+
+from .target_spec import TargetSpec
+from .discrete_result import DiscreteResult
+
+
+@dataclass
+class TargetStat:
+ """Class for aggregating trial results for a single load and target.
+
+ Reference to the target is included for convenience.
+
+ The main usage is for load classification, done in estimates method.
+ If both estimates agree, the load is classified as either a lower bound
+ or an upper bound. For additional logic for dealing with loss inversion
+ see MeasurementDatabase.
+
+ Also, data needed for conditional throughput is gathered here,
+ exposed only as a pessimistic loss ratio
+ (as the load value is not stored here).
+ """
+
+ target: TargetSpec = field(repr=False)
+ """The target for which this instance is aggregating results."""
+ good_long: float = 0.0
+ """Sum of durations of long enough trials satisfying target loss ratio."""
+ bad_long: float = 0.0
+ """Sum of durations of long trials not satisfying target loss ratio."""
+ good_short: float = 0.0
+ """Sum of durations of shorter trials satisfying target loss ratio."""
+ bad_short: float = 0.0
+ """Sum of durations of shorter trials not satisfying target loss ratio."""
+ long_losses: Dict[float, float] = field(repr=False, default_factory=dict)
+ """If a loss ratio value occured in a long trial, map it to duration sum."""
+
+ def __str__(self) -> str:
+ """Convert into a short human-readable string.
+
+ :returns: The short string.
+ :rtype: str
+ """
+ return (
+ f"gl={self.good_long},bl={self.bad_long}"
+ f",gs={self.good_short},bs={self.bad_short}"
+ )
+
+ def add(self, result: DiscreteResult) -> None:
+ """Take into account one more trial result.
+
+ Use intended duration for deciding between long and short trials,
+ but use offered duation (with overheads) to increase the duration sums.
+
+ :param result: The trial result to add to the stats.
+ :type result: DiscreteResult
+ """
+ dwo = result.duration_with_overheads
+ rlr = result.loss_ratio
+ if result.intended_duration >= self.target.trial_duration:
+ if rlr not in self.long_losses:
+ self.long_losses[rlr] = 0.0
+ self.long_losses = dict(sorted(self.long_losses.items()))
+ self.long_losses[rlr] += dwo
+ if rlr > self.target.loss_ratio:
+ self.bad_long += dwo
+ else:
+ self.good_long += dwo
+ else:
+ if rlr > self.target.loss_ratio:
+ self.bad_short += dwo
+ else:
+ self.good_short += dwo
+
+ def estimates(self) -> Tuple[bool, bool]:
+ """Return whether this load can become a lower bound.
+
+ This returns two estimates, hence the weird nonverb name of this method.
+ One estimate assumes all following results will satisfy the loss ratio,
+ the other assumes all results will not satisfy the loss ratio.
+ The sum of durations of the assumed results
+ is the minimum to reach target duration sum, or zero if already reached.
+
+ If both estimates are the same, it means the load is a definite bound.
+ This may happen even when the sum of durations of already
+ measured trials is less than the target, when the missing measurements
+ cannot change the classification.
+
+ :returns: Tuple of two estimates whether the load can be a lower bound.
+ (True, False) means more trial results are needed.
+ :rtype: Tuple[bool, bool]
+ """
+ coeff = self.target.exceed_ratio
+ decrease = self.good_short * coeff / (1.0 - coeff)
+ short_excess = self.bad_short - decrease
+ effective_excess = self.bad_long + max(0.0, short_excess)
+ effective_dursum = max(
+ self.good_long + effective_excess,
+ self.target.duration_sum,
+ )
+ limit_dursum = effective_dursum * self.target.exceed_ratio
+ optimistic = effective_excess <= limit_dursum
+ pessimistic = (effective_dursum - self.good_long) <= limit_dursum
+ return optimistic, pessimistic
+
+ @property
+ def pessimistic_loss_ratio(self) -> float:
+ """Return the loss ratio for conditional throughput computation.
+
+ It adds missing dursum as full-loss trials to long_losses
+ and returns a quantile corresponding to exceed ratio.
+ In case of tie (as in median for even number of samples),
+ this returns the lower value (as being equal to goal exceed ratio
+ is allowed).
+
+ For loads classified as a lower bound, the return value
+ ends up being no larger than the target loss ratio.
+ This is because the excess short bad trials would only come
+ after the quantile in question (as would full-loss missing trials).
+ For other loads, anything can happen, but conditional throughput
+ should not be computed for those anyway.
+ Those two facts allow the logic here be simpler than in estimates().
+
+ :returns: Effective loss ratio based on long trial results.
+ :rtype: float
+ """
+ all_long = max(self.target.duration_sum, self.good_long + self.bad_long)
+ remaining = all_long * (1.0 - self.target.exceed_ratio)
+ ret = None
+ for ratio, dursum in self.long_losses.items():
+ if ret is None or remaining > 0.0:
+ ret = ratio
+ remaining -= dursum
+ else:
+ break
+ else:
+ if remaining > 0.0:
+ ret = 1.0
+ return ret
diff --git a/resources/libraries/python/MLRsearch/trial_measurement/__init__.py b/resources/libraries/python/MLRsearch/trial_measurement/__init__.py
new file mode 100644
index 0000000000..034ae41819
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/trial_measurement/__init__.py
@@ -0,0 +1,19 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""
+__init__ file for Python package "trial_measurement".
+"""
+
+from .abstract_measurer import AbstractMeasurer
+from .measurement_result import MeasurementResult
diff --git a/resources/libraries/python/MLRsearch/trial_measurement/abstract_measurer.py b/resources/libraries/python/MLRsearch/trial_measurement/abstract_measurer.py
new file mode 100644
index 0000000000..6fab79c8dc
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/trial_measurement/abstract_measurer.py
@@ -0,0 +1,55 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining AbstractMeasurer class."""
+
+from abc import ABCMeta, abstractmethod
+
+from .measurement_result import MeasurementResult as Result
+
+
+class AbstractMeasurer(metaclass=ABCMeta):
+ """Abstract class defining common API for trial measurement providers.
+
+ The original use of this class was in the realm of
+ RFC 2544 Throughput search, which explains the teminology
+ related to networks, frames, packets, offered load, forwarding rate
+ and similar.
+
+ But the same logic can be used in higher level networking scenarios
+ (e.g. https requests) or even outside networking (database transactions).
+
+ The current code uses language from packet forwarding,
+ docstring sometimes mention transactions as an alternative view.
+ """
+
+ @abstractmethod
+ def measure(self, intended_duration: float, intended_load: float) -> Result:
+ """Perform trial measurement and return the result.
+
+ It is assumed the measurer got already configured with anything else
+ needed to perform the measurement (e.g. traffic profile
+ or transaction limit).
+
+ Duration and load are the only values expected to vary
+ during the search.
+
+ :param intended_duration: Intended trial duration [s].
+ :param intended_load: Intended rate of transactions (packets) [tps].
+ It is a per-port rate, e.g. uni-directional for SUTs
+ with two ports.
+ :type intended_duration: float
+ :type intended_load: float
+ :returns: Structure detailing the result of the measurement.
+ :rtype: measurement_result.MeasurementResult
+ """
diff --git a/resources/libraries/python/MLRsearch/trial_measurement/measurement_result.py b/resources/libraries/python/MLRsearch/trial_measurement/measurement_result.py
new file mode 100644
index 0000000000..9dc1ccf5f1
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/trial_measurement/measurement_result.py
@@ -0,0 +1,161 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining MeasurementResult class."""
+
+from dataclasses import dataclass
+
+
+@dataclass
+class MeasurementResult:
+ """Structure defining the result of a single trial measurement.
+
+ There are few primary (required) quantities. Various secondary (derived)
+ quantities are calculated and can be queried.
+
+ The constructor allows broader argument types,
+ the post init function converts to the stricter types.
+
+ Integer quantities (counts) are preferred, as float values
+ can suffer from rounding errors, and sometimes they are measured
+ at unknown (possibly very limited) precision and accuracy.
+
+ There are relations between the counts (e.g. offered count
+ should be equal to a sum of forwarding count and loss count).
+ This implementation does not perform consistency checks, but uses them
+ for computing quantities the caller left unspecified.
+
+ In some cases, the units of intended load are different from units
+ of loss count (e.g. load in transactions but loss in packets).
+ Quantities with relative_ prefix can be used to get load candidates
+ from forwarding results.
+
+ Sometimes, the measurement provider is unable to reach the intended load,
+ and it can react by spending longer than intended duration
+ to reach its intended count. To signal irregular situations like this,
+ several optional fields can be given, and various secondary quantities
+ are populated, so the measurement consumer can query the quantity
+ it wants to rely on in these irregular situations.
+
+ The current implementation intentionally limits the secondary quantities
+ to the few that proved useful in practice.
+ """
+
+ # Required primary quantities.
+ intended_duration: float
+ """Intended trial measurement duration [s]."""
+ intended_load: float
+ """Intended load [tps]. If bidirectional (or multi-port) traffic is used,
+ most users will put unidirectional (single-port) value here,
+ as bandwidth and pps limits are usually per-port."""
+ # Two of the next three primary quantities are required.
+ offered_count: int = None
+ """Number of packets actually transmitted (transactions attempted).
+ This should be the aggregate (bidirectional, multi-port) value,
+ so that asymmetric trafic profiles are supported."""
+ loss_count: int = None
+ """Number of packets transmitted but not received (transactions failed)."""
+ forwarding_count: int = None
+ """Number of packets successfully forwarded (transactions succeeded)."""
+ # Optional primary quantities.
+ offered_duration: float = None
+ """Estimate of the time [s] the trial was actually transmitting traffic."""
+ duration_with_overheads: float = None
+ """Estimate of the time [s] it took to get the trial result
+ since the measurement started."""
+ intended_count: int = None
+ """Expected number of packets to transmit. If not known,
+ the value of offered_count is used."""
+
+ def __post_init__(self) -> None:
+ """Convert types, compute missing values.
+
+ Current caveats:
+ A failing assumption looks like a conversion error.
+ Negative counts are allowed, which can lead to errors later.
+ """
+ self.intended_duration = float(self.intended_duration)
+ if self.offered_duration is None:
+ self.offered_duration = self.intended_duration
+ else:
+ self.offered_duration = float(self.offered_duration)
+ if self.duration_with_overheads is None:
+ self.duration_with_overheads = self.offered_duration
+ else:
+ self.duration_with_overheads = float(self.duration_with_overheads)
+ self.intended_load = float(self.intended_load)
+ if self.forwarding_count is None:
+ self.forwarding_count = int(self.offered_count) - int(
+ self.loss_count
+ )
+ else:
+ self.forwarding_count = int(self.forwarding_count)
+ if self.offered_count is None:
+ self.offered_count = self.forwarding_count + int(self.loss_count)
+ else:
+ self.offered_count = int(self.offered_count)
+ if self.loss_count is None:
+ self.loss_count = self.offered_count - self.forwarding_count
+ else:
+ self.loss_count = int(self.loss_count)
+ if self.intended_count is None:
+ self.intended_count = self.offered_count
+ else:
+ self.intended_count = int(self.intended_count)
+ # TODO: Handle (somehow) situations where offered > intended?
+
+ @property
+ def unsent_count(self) -> int:
+ """How many packets were not transmitted (transactions not started).
+
+ :return: Intended count minus offered count.
+ :rtype: int
+ """
+ return self.intended_count - self.offered_count
+
+ @property
+ def loss_ratio(self) -> float:
+ """Bad count divided by overall count, zero if the latter is zero.
+
+ The bad count includes not only loss count, but also unsent count.
+ If unsent count is negative, its absolute value is used.
+ The overall count is intended count or offered count,
+ whichever is bigger.
+
+ Together, the resulting formula tends to increase loss ratio
+ (but not above 100%) in irregular situations,
+ thus guiding search algorithms towards lower loads
+ where there should be less irregularities.
+ The zero default is there to prevent search algorithms from
+ getting stuck on a too low intended load.
+
+ :returns: Bad count divided by overall count.
+ :rtype: float
+ """
+ overall = max(self.offered_count, self.intended_count)
+ bad = abs(self.loss_count) + abs(self.unsent_count)
+ return bad / overall if overall else 0.0
+
+ @property
+ def relative_forwarding_rate(self) -> float:
+ """Forwarding rate in load units as if duration and load was intended.
+
+ The result is based purely on intended load and loss ratio.
+ While the resulting value may be far from what really happened,
+ it has nice behavior with respect to common assumptions
+ of search algorithms.
+
+ :returns: Forwarding rate in load units estimated from loss ratio.
+ :rtype: float
+ """
+ return self.intended_load * (1.0 - self.loss_ratio)
diff --git a/resources/libraries/python/MLRsearch/trimmed_stat.py b/resources/libraries/python/MLRsearch/trimmed_stat.py
new file mode 100644
index 0000000000..74918d78b0
--- /dev/null
+++ b/resources/libraries/python/MLRsearch/trimmed_stat.py
@@ -0,0 +1,52 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module defining TrimmedStat class."""
+
+from __future__ import annotations
+
+from dataclasses import dataclass
+
+from .load_stats import LoadStats
+from .target_spec import TargetSpec
+
+
+@dataclass
+class TrimmedStat(LoadStats):
+ """Load stats trimmed to a single target.
+
+ Useful mainly for reporting the overall results.
+ """
+
+ def __post_init__(self) -> None:
+ """Initialize load value and check there is one target to track."""
+ super().__post_init__()
+ if len(self.target_to_stat) != 1:
+ raise ValueError(f"No single target: {self.target_to_stat!r}")
+
+ @staticmethod
+ def for_target(stats: LoadStats, target: TargetSpec) -> TrimmedStat:
+ """Return new instance with only one target in the mapping.
+
+ :param stats: The load stats instance to trim.
+ :param target: The one target which should remain in the mapping.
+ :type stats: LoadStats
+ :type target: TargetSpec
+ :return: Newly created instance.
+ :rtype: TrimmedStat
+ """
+ return TrimmedStat(
+ rounding=stats.rounding,
+ int_load=stats.int_load,
+ target_to_stat={target: stats.target_to_stat[target]},
+ )
diff --git a/resources/libraries/python/Memif.py b/resources/libraries/python/Memif.py
index 2128d30428..32096d0ca5 100644
--- a/resources/libraries/python/Memif.py
+++ b/resources/libraries/python/Memif.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -74,7 +74,7 @@ class Memif:
includes only retval.
:rtype: dict
"""
- cmd = u"memif_socket_filename_add_del"
+ cmd = u"memif_socket_filename_add_del_v2"
err_msg = f"Failed to create memif socket on host {node[u'host']}"
args = dict(
is_add=is_add,
@@ -85,7 +85,7 @@ class Memif:
return papi_exec.add(cmd, **args).get_reply(err_msg)
@staticmethod
- def _memif_create(node, mid, sid, rxq=1, txq=1, role=1):
+ def _memif_create(node, mid, sid, rxq=1, txq=1, role=1, use_dma=False):
"""Create Memif interface on the given node, return its sw_if_index.
:param node: Given node to create Memif interface on.
@@ -94,16 +94,18 @@ class Memif:
:param rxq: Number of RX queues; 0 means do not set.
:param txq: Number of TX queues; 0 means do not set.
:param role: Memif interface role [master=0|slave=1]. Default is slave.
+ :param use_dma: Use DMA acceleration. Requires hardware support.
:type node: dict
:type mid: str
:type sid: str
:type rxq: int
:type txq: int
:type role: int
+ :type use_dma: bool
:returns: sw_if_index
:rtype: int
"""
- cmd = u"memif_create"
+ cmd = u"memif_create_v2"
err_msg = f"Failed to create memif interface on host {node[u'host']}"
args = dict(
role=role,
@@ -111,7 +113,8 @@ class Memif:
tx_queues=int(txq),
socket_id=int(sid),
id=int(mid),
- secret=u""
+ secret=u"",
+ use_dma=use_dma,
)
with PapiSocketExecutor(node) as papi_exec:
@@ -119,7 +122,8 @@ class Memif:
@staticmethod
def create_memif_interface(
- node, filename, mid, sid, rxq=1, txq=1, role=u"SLAVE"):
+ node, filename, mid, sid, rxq=1, txq=1, role=u"SLAVE", use_dma=False
+ ):
"""Create Memif interface on the given node.
:param node: Given node to create Memif interface on.
@@ -129,6 +133,7 @@ class Memif:
:param rxq: Number of RX queues; 0 means do not set.
:param txq: Number of TX queues; 0 means do not set.
:param role: Memif interface role [master=0|slave=1]. Default is master.
+ :param use_dma: Use DMA acceleration. Requires hardware support.
:type node: dict
:type filename: str
:type mid: str
@@ -136,6 +141,7 @@ class Memif:
:type rxq: int
:type txq: int
:type role: str
+ :type use_dma: bool
:returns: SW interface index.
:rtype: int
:raises ValueError: If command 'create memif' fails.
@@ -147,7 +153,7 @@ class Memif:
# Create memif
sw_if_index = Memif._memif_create(
- node, mid, sid, rxq=rxq, txq=txq, role=role
+ node, mid, sid, rxq=rxq, txq=txq, role=role, use_dma=use_dma
)
# Update Topology
diff --git a/resources/libraries/python/NATUtil.py b/resources/libraries/python/NATUtil.py
index 0f8e746663..e5f530ab46 100644
--- a/resources/libraries/python/NATUtil.py
+++ b/resources/libraries/python/NATUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -62,23 +62,17 @@ class NATUtil:
pass
@staticmethod
- def enable_nat44_plugin(
- node, inside_vrf=0, outside_vrf=0, users=0, user_memory=0,
- sessions=0, session_memory=0, user_sessions=0, mode=u""):
+ def enable_nat44_ed_plugin(
+ node, inside_vrf=0, outside_vrf=0, sessions=0, session_memory=0,
+ mode=u""):
"""Enable NAT44 plugin.
:param node: DUT node.
:param inside_vrf: Inside VRF ID.
:param outside_vrf: Outside VRF ID.
- :param users: Maximum number of users. Used only in endpoint-independent
- mode.
- :param user_memory: User memory size - overwrite auto calculated hash
- allocation parameter if non-zero.
:param sessions: Maximum number of sessions.
:param session_memory: Session memory size - overwrite auto calculated
hash allocation parameter if non-zero.
- :param user_sessions: Maximum number of sessions per user. Used only in
- endpoint-independent mode.
:param mode: NAT44 mode. Valid values:
- endpoint-independent
- endpoint-dependent
@@ -88,24 +82,18 @@ class NATUtil:
:type node: dict
:type inside_vrf: str or int
:type outside_vrf: str or int
- :type users: str or int
- :type user_memory: str or int
:type sessions: str or int
:type session_memory: str or int
- :type user_sessions: str or int
:type mode: str
"""
- cmd = u"nat44_plugin_enable_disable"
+ cmd = u"nat44_ed_plugin_enable_disable"
err_msg = f"Failed to enable NAT44 plugin on the host {node[u'host']}!"
args_in = dict(
enable=True,
inside_vrf=int(inside_vrf),
outside_vrf=int(outside_vrf),
- users=int(users),
- user_memory=int(user_memory),
sessions=int(sessions),
session_memory=int(session_memory),
- user_sessions=int(user_sessions),
flags=getattr(
Nat44ConfigFlags,
f"NAT44_IS_{mode.replace(u'-', u'_').upper()}"
@@ -194,10 +182,9 @@ class NATUtil:
"""Delete and re-add the NAT range setting."""
with PapiSocketExecutor(node) as papi_exec:
args_in[u"is_add"] = False
- papi_exec.add(cmd, **args_in)
+ papi_exec.add(cmd, **args_in).get_reply(err_msg)
args_in[u"is_add"] = True
- papi_exec.add(cmd, **args_in)
- papi_exec.get_replies(err_msg)
+ papi_exec.add(cmd, **args_in).get_reply(err_msg)
return resetter
@@ -211,14 +198,8 @@ class NATUtil:
cmd = u"nat44_show_running_config"
err_msg = f"Failed to get NAT44 configuration on host {node[u'host']}"
- try:
- with PapiSocketExecutor(node) as papi_exec:
- reply = papi_exec.add(cmd).get_reply(err_msg)
- except AssertionError:
- # Perhaps VPP is an older version
- old_cmd = u"nat_show_config"
- with PapiSocketExecutor(node) as papi_exec:
- reply = papi_exec.add(old_cmd).get_reply(err_msg)
+ with PapiSocketExecutor(node) as papi_exec:
+ reply = papi_exec.add(cmd).get_reply(err_msg)
logger.debug(f"NAT44 Configuration:\n{pformat(reply)}")
@@ -288,34 +269,77 @@ class NATUtil:
:rtype: int
"""
# vpp-device tests have not dedicated physical core so
- # ${thr_count_int} == 0 but we need to use one thread
+ # ${dp_count_int} == 0 but we need to use one thread
threads = 1 if not int(threads) else int(threads)
rest, mult = modf(log2(sessions/(10*threads)))
return 2 ** (int(mult) + (1 if rest else 0)) * 10
@staticmethod
def get_nat44_sessions_number(node, proto):
- """Get number of established NAT44 sessions from actual NAT44 mapping
- data.
+ """Get number of expected NAT44 sessions from NAT44 mapping data.
+
+ This keyword uses output from a CLI command,
+ so it can start failing when VPP changes the output format.
+ TODO: Switch to API (or stat segment) when available.
+
+ The current implementation supports both 2202 and post-2202 format.
+ (The Gerrit number changing the output format is 34877.)
+
+ For TCP proto, the expected state after rampup is
+ some number of sessions in transitory state (VPP has seen the FINs),
+ and some number of sessions in established state (meaning
+ some FINs were lost in the last trial).
+ While the two states may need slightly different number of cycles
+ to process next packet, the current implementation considers
+ both of them the "fast path", so they are both counted as expected.
+
+ As the tests should fail if a session is timed-out,
+ the logic substracts timed out sessions for the returned value
+ (only available for post-2202 format).
+
+ TODO: Investigate if it is worth to insert additional rampup trials
+ in TPUT tests to ensure all sessions are transitory before next
+ measurement.
:param node: DUT node.
:param proto: Required protocol - TCP/UDP/ICMP.
:type node: dict
:type proto: str
- :returns: Number of established NAT44 sessions.
+ :returns: Number of active established NAT44 sessions.
:rtype: int
:raises ValueError: If not supported protocol.
+ :raises RuntimeError: If output is not formatted as expected.
"""
- nat44_data = dict()
- if proto in [u"UDP", u"TCP", u"ICMP"]:
- for line in NATUtil.show_nat44_summary(node).splitlines():
- sum_k, sum_v = line.split(u":") if u":" in line \
- else (line, None)
- nat44_data[sum_k] = sum_v.strip() if isinstance(sum_v, str) \
- else sum_v
- else:
+ proto_l = proto.strip().lower()
+ if proto_l not in [u"udp", u"tcp", u"icmp"]:
raise ValueError(f"Unsupported protocol: {proto}!")
- return nat44_data.get(f"total {proto.lower()} sessions", 0)
+ summary_text = NATUtil.show_nat44_summary(node)
+ summary_lines = summary_text.splitlines()
+ # Output from VPP v22.02 and before, delete when no longer needed.
+ pattern_2202 = f"total {proto_l} sessions:"
+ if pattern_2202 in summary_text:
+ for line in summary_lines:
+ if pattern_2202 not in line:
+ continue
+ return int(line.split(u":", 1)[1].strip())
+ # Post-2202, the proto info and session info are not on the same line.
+ found = False
+ for line in summary_lines:
+ if not found:
+ if f"{proto_l} sessions:" in line:
+ found = True
+ continue
+ # Proto is found, find the line we are interested in.
+ if u"total" not in line:
+ raise RuntimeError(f"show nat summary: no {proto} total.")
+ # We have the line with relevant numbers.
+ total_part, timed_out_part = line.split(u"(", 1)
+ timed_out_part = timed_out_part.split(u")", 1)[0]
+ total_count = int(total_part.split(u":", 1)[1].strip())
+ timed_out_count = int(timed_out_part.split(u":", 1)[1].strip())
+ active_count = total_count - timed_out_count
+ return active_count
+ raise RuntimeError(u"Unknown format of show nat44 summary")
# DET44 PAPI calls
# DET44 means deterministic mode of NAT44
@@ -402,10 +426,9 @@ class NATUtil:
"""Delete and re-add the deterministic NAT mapping."""
with PapiSocketExecutor(node) as papi_exec:
args_in[u"is_add"] = False
- papi_exec.add(cmd, **args_in)
+ papi_exec.add(cmd, **args_in).get_reply(err_msg)
args_in[u"is_add"] = True
- papi_exec.add(cmd, **args_in)
- papi_exec.get_replies(err_msg)
+ papi_exec.add(cmd, **args_in).get_reply(err_msg)
return resetter
diff --git a/resources/libraries/python/NGINX/NGINXTools.py b/resources/libraries/python/NGINX/NGINXTools.py
new file mode 100644
index 0000000000..941fe733e7
--- /dev/null
+++ b/resources/libraries/python/NGINX/NGINXTools.py
@@ -0,0 +1,139 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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 module implements initialization and cleanup of NGINX framework."""
+
+from robot.api import logger
+
+from resources.libraries.python.Constants import Constants
+from resources.libraries.python.ssh import exec_cmd_no_error, exec_cmd
+from resources.libraries.python.topology import NodeType
+from resources.libraries.python.NginxUtil import NginxUtil
+
+
+class NGINXTools:
+ """This class implements:
+ - Initialization of NGINX environment,
+ - Cleanup of NGINX environment.
+ """
+
+ @staticmethod
+ def cleanup_nginx_framework(node, nginx_ins_path):
+ """
+ Cleanup the NGINX framework on the DUT node.
+
+ :param node: Will cleanup the nginx on this nodes.
+ :param nginx_ins_path: NGINX install path.
+ :type node: dict
+ :type nginx_ins_path: str
+ :raises RuntimeError: If it fails to cleanup the nginx.
+ """
+ check_path_cmd = NginxUtil.get_cmd_options(path=nginx_ins_path)
+ exec_cmd_no_error(node, check_path_cmd, timeout=180,
+ message=u"Check NGINX install path failed!")
+ command = f"rm -rf {nginx_ins_path}"
+ message = u"Cleanup the NGINX failed!"
+ exec_cmd_no_error(node, command, timeout=180, message=message)
+
+ @staticmethod
+ def cleanup_nginx_framework_on_all_duts(nodes, nginx_ins_path):
+ """
+ Cleanup the NGINX framework on all DUT nodes.
+
+ :param nodes: Will cleanup the nginx on this nodes.
+ :param nginx_ins_path: NGINX install path.
+ :type nodes: dict
+ :type nginx_ins_path: str
+ :raises RuntimeError: If it fails to cleanup the nginx.
+ """
+ for node in nodes.values():
+ if node[u"type"] == NodeType.DUT:
+ NGINXTools.cleanup_nginx_framework(node, nginx_ins_path)
+
+ @staticmethod
+ def install_original_nginx_framework(node, pkg_dir, nginx_version):
+ """
+ Prepare the NGINX framework on the DUT node.
+
+ :param node: Node from topology file.
+ :param pkg_dir: Ldp NGINX install dir.
+ :param nginx_version: NGINX Version.
+ :type node: dict
+ :type pkg_dir: str
+ :type nginx_version: str
+ :raises RuntimeError: If command returns nonzero return code.
+ """
+ cmd = f"test -f {pkg_dir}/nginx-{nginx_version}/sbin/nginx"
+ ret_code, _, _ = exec_cmd(node, cmd, sudo=True)
+ if ret_code == 0:
+ return
+ command = f"{Constants.REMOTE_FW_DIR}/{Constants.RESOURCES_LIB_SH}" \
+ f"/entry/install_nginx.sh nginx-{nginx_version}"
+ message = u"Install the NGINX failed!"
+ exec_cmd_no_error(node, command, sudo=True, timeout=600,
+ message=message)
+
+ @staticmethod
+ def install_vsap_nginx_on_dut(node, pkg_dir):
+ """
+ Prepare the VSAP NGINX framework on all DUT
+
+ :param node: Node from topology file.
+ :param pkg_dir: Path to directory where packages are stored.
+ :type node: dict
+ :type pkg_dir: str
+ :raises RuntimeError: If command returns nonzero return code.
+ """
+ command = u". /etc/lsb-release; echo \"${DISTRIB_ID}\""
+ stdout, _ = exec_cmd_no_error(node, command)
+
+ if stdout.strip() == u"Ubuntu":
+ logger.console(u"NGINX install on DUT... ")
+ exec_cmd_no_error(
+ node, u"apt-get purge -y 'vsap*' || true", timeout=120,
+ sudo=True
+ )
+ exec_cmd_no_error(
+ node, f"dpkg -i --force-all {pkg_dir}vsap-nginx*.deb",
+ timeout=120, sudo=True,
+ message=u"Installation of vsap-nginx failed!"
+ )
+
+ exec_cmd_no_error(node, u"dpkg -l | grep vsap*",
+ sudo=True)
+
+ logger.console(u"Completed!\n")
+ else:
+ logger.console(u"Ubuntu need!\n")
+
+ @staticmethod
+ def install_nginx_framework_on_all_duts(nodes, pkg_dir, nginx_version=None):
+ """
+ Prepare the NGINX framework on all DUTs.
+
+ :param nodes: Nodes from topology file.
+ :param pkg_dir: Path to directory where packages are stored.
+ :param nginx_version: NGINX version.
+ :type nodes: dict
+ :type pkg_dir: str
+ :type nginx_version: str
+ """
+
+ for node in list(nodes.values()):
+ if node[u"type"] == NodeType.DUT:
+ if nginx_version:
+ NGINXTools.install_original_nginx_framework(node, pkg_dir,
+ nginx_version)
+ else:
+ NGINXTools.install_vsap_nginx_on_dut(node, pkg_dir)
diff --git a/resources/libraries/python/NGINX/__init__.py b/resources/libraries/python/NGINX/__init__.py
new file mode 100644
index 0000000000..d828cbe7cb
--- /dev/null
+++ b/resources/libraries/python/NGINX/__init__.py
@@ -0,0 +1,16 @@
+# Copyright (c) 2021 Intel and/or its affiliates.
+# 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.
+
+"""
+__init__ file for directory resources/libraries/python/NGINX
+"""
diff --git a/resources/libraries/python/Namespaces.py b/resources/libraries/python/Namespaces.py
index 4bea8b5575..d78d2f6d44 100644
--- a/resources/libraries/python/Namespaces.py
+++ b/resources/libraries/python/Namespaces.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/NginxConfigGenerator.py b/resources/libraries/python/NginxConfigGenerator.py
new file mode 100644
index 0000000000..1a0f5f077a
--- /dev/null
+++ b/resources/libraries/python/NginxConfigGenerator.py
@@ -0,0 +1,244 @@
+# Copyright (c) 2021 Intel and/or its affiliates.
+# 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.
+
+"""Nginx Configuration File Generator library.
+"""
+
+from resources.libraries.python.ssh import exec_cmd_no_error
+from resources.libraries.python.topology import NodeType
+from resources.libraries.python.NginxUtil import NginxUtil
+
+__all__ = [u"NginxConfigGenerator"]
+
+
+class NginxConfigGenerator:
+ """NGINX Configuration File Generator."""
+
+ def __init__(self):
+ """Initialize library."""
+ # VPP Node to apply configuration on
+ self._node = u""
+ # NGINX Startup config location
+ self._nginx_path = u"/usr/local/nginx/"
+ # Serialized NGinx Configuration
+ self._nginx_config = u""
+ # VPP Configuration
+ self._nodeconfig = dict()
+
+ def set_node(self, node):
+ """Set DUT node.
+
+ :param node: Node to store configuration on.
+ :type node: dict
+ :raises RuntimeError: If Node type is not DUT.
+ """
+ if node[u"type"] != NodeType.DUT:
+ raise RuntimeError(
+ u"Startup config can only be applied to DUTnode."
+ )
+ self._node = node
+
+ def set_nginx_path(self, packages_dir, nginx_version):
+ """Set NGINX Conf Name.
+
+ :param packages_dir: NGINX install path.
+ :param nginx_version: Test NGINX version.
+ :type packages_dir: str
+ :type nginx_version: str
+ :raises RuntimeError: If Node type is not DUT.
+ """
+ if nginx_version:
+ self._nginx_path = f"{packages_dir}/nginx-{nginx_version}"
+
+ def add_http_server_listen(self, value):
+ """Add Http Server listen port configuration."""
+ path = [u"http", u"server", u"listen"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_http_server_root(self, value=u"html"):
+ """Add Http Server root configuration."""
+ path = [u"http", u"server", u"root"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_http_server_index(self, value=u"index.html index.htm"):
+ """Add Http Server index configuration."""
+ path = [u"http", u"server", u"index"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_config_item(self, config, value, path):
+ """Add NGINX configuration item.
+
+ :param config: Startup configuration of node.
+ :param value: Value to insert.
+ :param path: Path where to insert item.
+ :type config: dict
+ :type value: str
+ :type path: list
+ """
+ if len(path) == 1:
+ config[path[0]] = value
+ return
+ if path[0] not in config:
+ config[path[0]] = dict()
+ elif isinstance(config[path[0]], str):
+ config[path[0]] = dict() if config[path[0]] == u"" \
+ else {config[path[0]]: u""}
+ self.add_config_item(config[path[0]], value, path[1:])
+
+ def dump_config(self, obj, level=-1):
+ """Dump the startup configuration in NGINX config format.
+
+ :param obj: Python Object to print.
+ :param level: Nested level for indentation.
+ :type obj: Obj
+ :type level: int
+ :returns: nothing
+ """
+ indent = u" "
+ if level >= 0:
+ self._nginx_config += f"{level * indent}{{\n"
+ if isinstance(obj, dict):
+ for key, val in obj.items():
+ if hasattr(val, u"__iter__") and not isinstance(val, str):
+ self._nginx_config += f"{(level + 1) * indent}{key}\n"
+ self.dump_config(val, level + 1)
+ else:
+ self._nginx_config += f"{(level + 1) * indent}" \
+ f"{key} {val};\n"
+ else:
+ for val in obj:
+ self._nginx_config += f"{(level + 1) * indent}{val};\n"
+ if level >= 0:
+ self._nginx_config += f"{level * indent}}}\n"
+
+ def write_config(self, filename=None):
+ """Generate and write NGINX startup configuration to file.
+
+ :param filename: NGINX configuration file name.
+ :type filename: str
+ """
+ if filename is None:
+ filename = f"{self._nginx_path}/conf/nginx.conf"
+ self.dump_config(self._nodeconfig)
+ cmd = f"echo \"{self._nginx_config}\" | sudo tee {filename}"
+ exec_cmd_no_error(
+ self._node, cmd, message=u"Writing config file failed!"
+ )
+
+ def add_http_server_location(self, size):
+ """Add Http Server location configuration.
+
+ :param size: File size.
+ :type size: int
+ """
+ if size == 0:
+ files = u"return"
+ elif size >= 1024:
+ files = f"{int(size / 1024)}KB.json"
+ else:
+ files = f"{size}B.json"
+ key = f"{files}"
+ size_str = size * u"x"
+ value = "200 '%s'" % size_str
+ path = [u"http", u"server", f"location /{key}", u"return"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_http_access_log(self, value=u"off"):
+ """Add Http access_log configuration."""
+ path = [u"http", u"access_log"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_http_include(self, value=u"mime.types"):
+ """Add Http include configuration."""
+ path = [u"http", u"include"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_http_default_type(self, value=u"application/octet-stream"):
+ """Add Http default_type configuration."""
+ path = [u"http", u"default_type"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_http_sendfile(self, value=u"on"):
+ """Add Http sendfile configuration."""
+ path = [u"http", u"sendfile"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_http_keepalive_timeout(self, value):
+ """Add Http keepalive alive timeout configuration."""
+ path = [u"http", u"keepalive_timeout"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_http_keepalive_requests(self, value):
+ """Add Http keepalive alive requests configuration."""
+ path = [u"http", u"keepalive_requests"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_events_use(self, value=u"epoll"):
+ """Add Events use configuration."""
+ path = [u"events", u"use"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_events_worker_connections(self, value=10240):
+ """Add Events worker connections configuration."""
+ path = [u"events", u"worker_connections"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_events_accept_mutex(self, value=u"off"):
+ """Add Events accept mutex configuration."""
+ path = [u"events", u"accept_mutex"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_events_multi_accept(self, value=u"off"):
+ """Add Events multi accept configuration."""
+ path = [u"events", u"multi_accept"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_worker_rlimit_nofile(self, value=10240):
+ """Add Events worker rlimit nofile configuration."""
+ path = [u"worker_rlimit_nofile"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_master_process(self, value=u"on"):
+ """Add master process configuration."""
+ path = [u"master_process"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_daemon(self, value=u"off"):
+ """Add daemon configuration."""
+ path = [u"daemon"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_worker_processes(self, value, smt_used):
+ """Add worker processes configuration."""
+ # nginx workers : vpp used phy workers = 2:1
+ if smt_used:
+ value = value * 4
+ else:
+ value = value * 2
+ path = [u"worker_processes"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def apply_config(self, filename=None, verify_nginx=True):
+ """Generate and write NGINX configuration to file and
+ verify configuration.
+
+ :param filename: NGINX configuration file name.
+ :param verify_nginx: Verify NGINX configuration.
+ :type filename: str
+ :type verify_nginx: bool
+ """
+ self.write_config(filename=filename)
+
+ app_path = f"{self._nginx_path}/sbin/nginx"
+ if verify_nginx:
+ NginxUtil.nginx_config_verify(self._node, app_path)
diff --git a/resources/libraries/python/NginxUtil.py b/resources/libraries/python/NginxUtil.py
new file mode 100644
index 0000000000..a19ac37291
--- /dev/null
+++ b/resources/libraries/python/NginxUtil.py
@@ -0,0 +1,124 @@
+# Copyright (c) 2021 Intel and/or its affiliates.
+# 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.
+
+"""NGINX Utilities Library."""
+
+from resources.libraries.python.OptionString import OptionString
+from resources.libraries.python.ssh import exec_cmd_no_error
+from resources.libraries.python.topology import NodeType
+from resources.libraries.python.DUTSetup import DUTSetup
+
+
+class NginxUtil:
+ """Utilities for NGINX."""
+
+ @staticmethod
+ def get_cmd_options(**kwargs):
+ """Create parameters options.
+
+ :param kwargs: Dict of cmd parameters.
+ :type kwargs: dict
+ :returns: cmd parameters.
+ :rtype: OptionString
+ """
+ cmd_options = OptionString()
+ nginx_path = kwargs.get(u"path", u"/usr/local/nginx")
+ cmd_options.add(nginx_path)
+ options = OptionString(prefix=u"-")
+ # Show Nginx Version
+ options.add(u"v")
+ # Verify Configuration
+ options.add(u"t")
+ # Send signal to a master process: stop, quit, reopen.
+ options.add_with_value_from_dict(
+ u"s", u"signal", kwargs
+ )
+ # Set prefix path (default: /usr/local/nginx/).
+ options.add_with_value_from_dict(
+ u"p", u"prefix", kwargs
+ )
+ # Set configuration file (default: conf/nginx.conf).
+ options.add_with_value_from_dict(
+ u"c", u"filename", kwargs
+ )
+ # Set global directives out of configuration file
+ options.add_with_value_from_dict(
+ u"g", u"directives", kwargs
+ )
+ cmd_options.extend(options)
+ return cmd_options
+
+ @staticmethod
+ def nginx_cmd_stop(node, path):
+ """Stop NGINX cmd app on node.
+ :param node: Topology node.
+ :param path: Nginx install path.
+ :type node: dict
+ :type path: str
+ :returns: nothing
+ """
+ cmd_options = NginxUtil.get_cmd_options(path=path, signal=u"stop")
+
+ exec_cmd_no_error(node, cmd_options, sudo=True, disconnect=True,
+ message=u"Nginx stop failed!")
+
+ @staticmethod
+ def nginx_cmd_start(node, path, filename):
+ """Start NGINX cmd app on node.
+ :param node: Topology node.
+ :param path: Nginx install path.
+ :param filename: Nginx conf name.
+ :type node: dict
+ :type path: str
+ :type filename: str
+
+ :returns: nothing
+ """
+ cmd_options = NginxUtil.get_cmd_options(path=path,
+ filename=filename)
+
+ exec_cmd_no_error(node, cmd_options, sudo=True, disconnect=True,
+ message=u"Nginx start failed!")
+
+ @staticmethod
+ def nginx_config_verify(node, path):
+ """Start NGINX cmd app on node.
+ :param node: Topology node.
+ :param path: Nginx install path.
+ :type node: dict
+ :type path: str
+ :returns: nothing
+ """
+ cmd_options = NginxUtil.get_cmd_options(path=path)
+ exec_cmd_no_error(node, cmd_options, sudo=True, disconnect=True,
+ message=u"Nginx Config failed!")
+
+ @staticmethod
+ def taskset_nginx_pid_to_idle_cores(node, cpu_idle_list):
+ """Set idle cpus to NGINX pid on node.
+
+ :param node: Topology node.
+ :param cpu_idle_list: Idle Cpus.
+ :type node: dict
+ :type cpu_idle_list: list
+ :returns: nothing
+ """
+ if node[u"type"] != NodeType.DUT:
+ raise RuntimeError(u'Node type is not a DUT!')
+ pids = DUTSetup.get_pid(node, u"nginx")
+ for index, pid in enumerate(pids):
+ cmd = f"taskset -pc {cpu_idle_list[index]} {pid}"
+ exec_cmd_no_error(
+ node, cmd, sudo=True, timeout=180,
+ message=u"taskset cores to nginx pid failed!"
+ )
diff --git a/resources/libraries/python/NodePath.py b/resources/libraries/python/NodePath.py
index 7f24b0e4fc..5b445bc593 100644
--- a/resources/libraries/python/NodePath.py
+++ b/resources/libraries/python/NodePath.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -92,7 +92,7 @@ class NodePath:
self._path = []
self._path_iter = []
- def compute_path(self, always_same_link=True):
+ def compute_path(self, always_same_link=True, topo_has_dut=True):
"""Compute path for added nodes.
.. note:: First add at least two nodes to the topology.
@@ -100,19 +100,26 @@ class NodePath:
:param always_same_link: If True use always same link between two nodes
in path. If False use different link (if available)
between two nodes if one link was used before.
+ :param topo_has_dut: If False we want to test back to back test on TG.
:type always_same_link: bool
+ :type topo_has_dut: bool
:raises RuntimeError: If not enough nodes for path.
"""
nodes = self._nodes
- if len(nodes) < 2:
+ if len(nodes) < 2 and topo_has_dut:
raise RuntimeError(u"Not enough nodes to compute path")
for idx in range(0, len(nodes) - 1):
topo = Topology()
node1 = nodes[idx]
- node2 = nodes[idx + 1]
n1_list = self._nodes_filter[idx]
- n2_list = self._nodes_filter[idx + 1]
+ if topo_has_dut:
+ node2 = nodes[idx + 1]
+ n2_list = self._nodes_filter[idx + 1]
+ else:
+ node2 = node1
+ n2_list = n1_list
+
links = topo.get_active_connecting_links(
node1, node2, filter_list_node1=n1_list,
filter_list_node2=n2_list
@@ -139,8 +146,11 @@ class NodePath:
link = l_set[0]
self._links.append(link)
+
+ use_subsequent = not topo_has_dut
interface1 = topo.get_interface_by_link_name(node1, link)
- interface2 = topo.get_interface_by_link_name(node2, link)
+ interface2 = topo.get_interface_by_link_name(node2, link,
+ use_subsequent)
self._path.append((interface1, node1))
self._path.append((interface2, node2))
@@ -207,8 +217,9 @@ class NodePath:
raise RuntimeError(u"No path for topology")
return self._path[-2]
- def compute_circular_topology(self, nodes, filter_list=None, nic_pfs=1,
- always_same_link=False, topo_has_tg=True):
+ def compute_circular_topology(
+ self, nodes, filter_list=None, nic_pfs=1,
+ always_same_link=False, topo_has_tg=True, topo_has_dut=True):
"""Return computed circular path.
:param nodes: Nodes to append to the path.
@@ -219,29 +230,44 @@ class NodePath:
between two nodes if one link was used before.
:param topo_has_tg: If True, the topology has a TG node. If False,
the topology consists entirely of DUT nodes.
+ :param topo_has_dut: If True, the topology has a DUT node(s). If False,
+ the topology consists entirely of TG nodes.
:type nodes: dict
:type filter_list: list of strings
:type nic_pfs: int
:type always_same_link: bool
:type topo_has_tg: bool
+ :type topo_has_dut: bool
:returns: Topology information dictionary.
:rtype: dict
:raises RuntimeError: If unsupported combination of parameters.
"""
t_dict = dict()
- duts = [key for key in nodes if u"DUT" in key]
- t_dict[u"duts"] = duts
- t_dict[u"duts_count"] = len(duts)
- t_dict[u"int"] = u"pf"
+ t_dict[u"hosts"] = set()
+ if topo_has_dut:
+ duts = [key for key in nodes if u"DUT" in key]
+ for host in [nodes[dut][u"host"] for dut in duts]:
+ t_dict[u"hosts"].add(host)
+ t_dict[u"duts"] = duts
+ t_dict[u"duts_count"] = len(duts)
+ t_dict[u"int"] = u"pf"
for _ in range(0, nic_pfs // 2):
if topo_has_tg:
- self.append_node(nodes[u"TG"])
- for dut in duts:
- self.append_node(nodes[dut], filter_list=filter_list)
+ if topo_has_dut:
+ self.append_node(nodes[u"TG"])
+ else:
+ self.append_node(nodes[u"TG"], filter_list=filter_list)
+ if topo_has_dut:
+ for dut in duts:
+ self.append_node(nodes[dut], filter_list=filter_list)
if topo_has_tg:
- self.append_node(nodes[u"TG"])
- self.compute_path(always_same_link)
+ t_dict[u"hosts"].add(nodes[u"TG"][u"host"])
+ if topo_has_dut:
+ self.append_node(nodes[u"TG"])
+ else:
+ self.append_node(nodes[u"TG"], filter_list=filter_list)
+ self.compute_path(always_same_link, topo_has_dut)
n_idx = 0 # node index
t_idx = 1 # TG interface index
@@ -257,7 +283,7 @@ class NodePath:
i_pfx = f"if{t_idx}" # [backwards compatible] interface prefix
n_idx = 0
t_idx = t_idx + 1
- elif topo_has_tg:
+ elif topo_has_tg and topo_has_dut:
# Each node has 2 interfaces, starting with 1
# Calculate prefixes appropriately for current
# path topology nomenclature:
diff --git a/resources/libraries/python/NsimUtil.py b/resources/libraries/python/NsimUtil.py
index 85e41a4553..757da067cb 100644
--- a/resources/libraries/python/NsimUtil.py
+++ b/resources/libraries/python/NsimUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -51,15 +51,8 @@ class NsimUtil():
packets_per_reorder=vpp_nsim_attr.get(u"packets_per_reorder", 0)
)
err_msg = f"Failed to configure NSIM on host {host}"
- try:
- with PapiSocketExecutor(node) as papi_exec:
- papi_exec.add(cmd, **args).get_reply(err_msg)
- except AssertionError:
- # Perhaps VPP is an older version
- old_cmd = u"nsim_configure"
- args.pop(u"packets_per_reorder")
- with PapiSocketExecutor(node) as papi_exec:
- papi_exec.add(old_cmd, **args).get_reply(err_msg)
+ with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
if vpp_nsim_attr[u"output_nsim_enable"]:
cmd = u"nsim_output_feature_enable_disable"
diff --git a/resources/libraries/python/OptionString.py b/resources/libraries/python/OptionString.py
index bdb5ee2b4c..35988c4b71 100644
--- a/resources/libraries/python/OptionString.py
+++ b/resources/libraries/python/OptionString.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/PLRsearch/Integrator.py b/resources/libraries/python/PLRsearch/Integrator.py
index 331bd8475b..cc8f838fe6 100644
--- a/resources/libraries/python/PLRsearch/Integrator.py
+++ b/resources/libraries/python/PLRsearch/Integrator.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -189,12 +189,15 @@ def estimate_nd(communication_pipe, scale_coeff=8.0, trace_enabled=False):
:raises numpy.linalg.LinAlgError: If the focus shape gets singular
(due to rounding errors). Try changing scale_coeff.
"""
- debug_list = list()
- trace_list = list()
+ debug_list = []
+ trace_list = []
# Block until input object appears.
- dimension, dilled_function, param_focus_tracker, max_samples = (
- communication_pipe.recv()
- )
+ (
+ dimension,
+ dilled_function,
+ param_focus_tracker,
+ max_samples,
+ ) = communication_pipe.recv()
debug_list.append(
f"Called with param_focus_tracker {param_focus_tracker!r}"
)
@@ -237,39 +240,47 @@ def estimate_nd(communication_pipe, scale_coeff=8.0, trace_enabled=False):
if max_samples and samples >= max_samples:
break
sample_point = generate_sample(
- param_focus_tracker.averages, param_focus_tracker.covariance_matrix,
- dimension, scale_coeff
+ param_focus_tracker.averages,
+ param_focus_tracker.covariance_matrix,
+ dimension,
+ scale_coeff,
)
- trace(u"sample_point", sample_point)
+ trace("sample_point", sample_point)
samples += 1
- trace(u"samples", samples)
+ trace("samples", samples)
value, log_weight = value_logweight_function(trace, *sample_point)
- trace(u"value", value)
- trace(u"log_weight", log_weight)
- trace(u"focus tracker before adding", param_focus_tracker)
+ trace("value", value)
+ trace("log_weight", log_weight)
+ trace("focus tracker before adding", param_focus_tracker)
# Update focus related statistics.
param_distance = param_focus_tracker.add_without_dominance_get_distance(
sample_point, log_weight
)
# The code above looked at weight (not importance).
# The code below looks at importance (not weight).
- log_rarity = param_distance / 2.0
- trace(u"log_rarity", log_rarity)
+ log_rarity = param_distance / 2.0 / scale_coeff
+ trace("log_rarity", log_rarity)
log_importance = log_weight + log_rarity
- trace(u"log_importance", log_importance)
+ trace("log_importance", log_importance)
value_tracker.add(value, log_importance)
# Update sampled statistics.
param_sampled_tracker.add_get_shift(sample_point, log_importance)
debug_list.append(f"integrator used {samples!s} samples")
debug_list.append(
- u" ".join([
- u"value_avg", str(value_tracker.average),
- u"param_sampled_avg", repr(param_sampled_tracker.averages),
- u"param_sampled_cov", repr(param_sampled_tracker.covariance_matrix),
- u"value_log_variance", str(value_tracker.log_variance),
- u"value_log_secondary_variance",
- str(value_tracker.secondary.log_variance)
- ])
+ " ".join(
+ [
+ "value_avg",
+ str(value_tracker.average),
+ "param_sampled_avg",
+ repr(param_sampled_tracker.averages),
+ "param_sampled_cov",
+ repr(param_sampled_tracker.covariance_matrix),
+ "value_log_variance",
+ str(value_tracker.log_variance),
+ "value_log_secondary_variance",
+ str(value_tracker.secondary.log_variance),
+ ]
+ )
)
communication_pipe.send(
(value_tracker, param_focus_tracker, debug_list, trace_list, samples)
diff --git a/resources/libraries/python/PLRsearch/PLRsearch.py b/resources/libraries/python/PLRsearch/PLRsearch.py
index 226b482d76..326aa2e2d2 100644
--- a/resources/libraries/python/PLRsearch/PLRsearch.py
+++ b/resources/libraries/python/PLRsearch/PLRsearch.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -53,8 +53,14 @@ class PLRsearch:
log_xerfcx_10 = math.log(xerfcx_limit - math.exp(10) * erfcx(math.exp(10)))
def __init__(
- self, measurer, trial_duration_per_trial, packet_loss_ratio_target,
- trial_number_offset=0, timeout=7200.0, trace_enabled=False):
+ self,
+ measurer,
+ trial_duration_per_trial,
+ packet_loss_ratio_target,
+ trial_number_offset=0,
+ timeout=7200.0,
+ trace_enabled=False,
+ ):
"""Store rate measurer and additional parameters.
The measurer must never report negative loss count.
@@ -176,7 +182,7 @@ class PLRsearch:
f"Started search with min_rate {min_rate!r}, "
f"max_rate {max_rate!r}"
)
- trial_result_list = list()
+ trial_result_list = []
trial_number = self.trial_number_offset
focus_trackers = (None, None)
transmit_rate = (min_rate + max_rate) / 2.0
@@ -186,34 +192,54 @@ class PLRsearch:
trial_number += 1
logging.info(f"Trial {trial_number!r}")
results = self.measure_and_compute(
- self.trial_duration_per_trial * trial_number, transmit_rate,
- trial_result_list, min_rate, max_rate, focus_trackers
+ self.trial_duration_per_trial * trial_number,
+ transmit_rate,
+ trial_result_list,
+ min_rate,
+ max_rate,
+ focus_trackers,
)
measurement, average, stdev, avg1, avg2, focus_trackers = results
+ # Workaround for unsent packets and other anomalies.
+ measurement.plr_loss_count = min(
+ measurement.intended_count,
+ int(measurement.intended_count * measurement.loss_ratio + 0.9),
+ )
+ logging.debug(
+ f"loss ratio {measurement.plr_loss_count}"
+ f" / {measurement.intended_count}"
+ )
zeros += 1
# TODO: Ratio of fill rate to drain rate seems to have
# exponential impact. Make it configurable, or is 4:3 good enough?
- if measurement.loss_fraction >= self.packet_loss_ratio_target:
+ if measurement.plr_loss_count >= (
+ measurement.intended_count * self.packet_loss_ratio_target
+ ):
for _ in range(4 * zeros):
- lossy_loads.append(measurement.target_tr)
- if measurement.loss_count > 0:
+ lossy_loads.append(measurement.intended_load)
+ lossy_loads.sort()
zeros = 0
- lossy_loads.sort()
+ logging.debug("High enough loss, lossy loads added.")
+ else:
+ logging.debug(
+ f"Not a high loss, zero counter bumped to {zeros}."
+ )
if stop_time <= time.time():
return average, stdev
trial_result_list.append(measurement)
if (trial_number - self.trial_number_offset) <= 1:
next_load = max_rate
elif (trial_number - self.trial_number_offset) <= 3:
- next_load = (measurement.relative_receive_rate / (
- 1.0 - self.packet_loss_ratio_target))
+ next_load = measurement.relative_forwarding_rate / (
+ 1.0 - self.packet_loss_ratio_target
+ )
else:
next_load = (avg1 + avg2) / 2.0
if zeros > 0:
if lossy_loads[0] > next_load:
diminisher = math.pow(2.0, 1 - zeros)
next_load = lossy_loads[0] + diminisher * next_load
- next_load /= (1.0 + diminisher)
+ next_load /= 1.0 + diminisher
# On zero measurement, we need to drain obsoleted low losses
# even if we did not use them to increase next_load,
# in order to get to usable loses at higher loads.
@@ -263,22 +289,22 @@ class PLRsearch:
# TODO: chi is from https://en.wikipedia.org/wiki/Nondimensionalization
chi = (load - mrr) / spread
chi0 = -mrr / spread
- trace(u"stretch: load", load)
- trace(u"mrr", mrr)
- trace(u"spread", spread)
- trace(u"chi", chi)
- trace(u"chi0", chi0)
+ trace("stretch: load", load)
+ trace("mrr", mrr)
+ trace("spread", spread)
+ trace("chi", chi)
+ trace("chi0", chi0)
if chi > 0:
log_lps = math.log(
load - mrr + (log_plus(0, -chi) - log_plus(0, chi0)) * spread
)
- trace(u"big loss direct log_lps", log_lps)
+ trace("big loss direct log_lps", log_lps)
else:
two_positive = log_plus(chi, 2 * chi0 - log_2)
two_negative = log_plus(chi0, 2 * chi - log_2)
if two_positive <= two_negative:
log_lps = log_minus(chi, chi0) + log_spread
- trace(u"small loss crude log_lps", log_lps)
+ trace("small loss crude log_lps", log_lps)
return log_lps
two = log_minus(two_positive, two_negative)
three_positive = log_plus(two_positive, 3 * chi - log_3)
@@ -286,11 +312,11 @@ class PLRsearch:
three = log_minus(three_positive, three_negative)
if two == three:
log_lps = two + log_spread
- trace(u"small loss approx log_lps", log_lps)
+ trace("small loss approx log_lps", log_lps)
else:
log_lps = math.log(log_plus(0, chi) - log_plus(0, chi0))
log_lps += log_spread
- trace(u"small loss direct log_lps", log_lps)
+ trace("small loss direct log_lps", log_lps)
return log_lps
@staticmethod
@@ -329,26 +355,26 @@ class PLRsearch:
# TODO: The stretch sign is just to have less minuses. Worth changing?
chi = (mrr - load) / spread
chi0 = mrr / spread
- trace(u"Erf: load", load)
- trace(u"mrr", mrr)
- trace(u"spread", spread)
- trace(u"chi", chi)
- trace(u"chi0", chi0)
+ trace("Erf: load", load)
+ trace("mrr", mrr)
+ trace("spread", spread)
+ trace("chi", chi)
+ trace("chi0", chi0)
if chi >= -1.0:
- trace(u"positive, b roughly bigger than m", None)
+ trace("positive, b roughly bigger than m", None)
if chi > math.exp(10):
first = PLRsearch.log_xerfcx_10 + 2 * (math.log(chi) - 10)
- trace(u"approximated first", first)
+ trace("approximated first", first)
else:
first = math.log(PLRsearch.xerfcx_limit - chi * erfcx(chi))
- trace(u"exact first", first)
+ trace("exact first", first)
first -= chi * chi
second = math.log(PLRsearch.xerfcx_limit - chi * erfcx(chi0))
second -= chi0 * chi0
intermediate = log_minus(first, second)
- trace(u"first", first)
+ trace("first", first)
else:
- trace(u"negative, b roughly smaller than m", None)
+ trace("negative, b roughly smaller than m", None)
exp_first = PLRsearch.xerfcx_limit + chi * erfcx(-chi)
exp_first *= math.exp(-chi * chi)
exp_first -= 2 * chi
@@ -359,17 +385,17 @@ class PLRsearch:
second = math.log(PLRsearch.xerfcx_limit - chi * erfcx(chi0))
second -= chi0 * chi0
intermediate = math.log(exp_first - math.exp(second))
- trace(u"exp_first", exp_first)
- trace(u"second", second)
- trace(u"intermediate", intermediate)
+ trace("exp_first", exp_first)
+ trace("second", second)
+ trace("intermediate", intermediate)
result = intermediate + math.log(spread) - math.log(erfc(-chi0))
- trace(u"result", result)
+ trace("result", result)
return result
@staticmethod
def find_critical_rate(
- trace, lfit_func, min_rate, max_rate, loss_ratio_target,
- mrr, spread):
+ trace, lfit_func, min_rate, max_rate, loss_ratio_target, mrr, spread
+ ):
"""Given ratio target and parameters, return the achieving offered load.
This is basically an inverse function to lfit_func
@@ -411,12 +437,12 @@ class PLRsearch:
loss_rate = math.exp(lfit_func(trace, rate, mrr, spread))
loss_ratio = loss_rate / rate
if loss_ratio > loss_ratio_target:
- trace(u"halving down", rate)
+ trace("halving down", rate)
rate_hi = rate
elif loss_ratio < loss_ratio_target:
- trace(u"halving up", rate)
+ trace("halving up", rate)
rate_lo = rate
- trace(u"found", rate)
+ trace("found", rate)
return rate
@staticmethod
@@ -426,14 +452,22 @@ class PLRsearch:
Integrator assumes uniform distribution, but over different parameters.
Weight and likelihood are used interchangeably here anyway.
- Each trial has an offered load, a duration and a loss count.
- Fitting function is used to compute the average loss per second.
- Poisson distribution (with average loss per trial) is used
+ Each trial has an intended load, a sent count and a loss count
+ (probably counting unsent packets as loss, as they signal
+ the load is too high for the traffic generator).
+ The fitting function is used to compute the average loss rate.
+ Geometric distribution (with average loss per trial) is used
to get likelihood of one trial result, the overal likelihood
is a product of all trial likelihoods.
As likelihoods can be extremely small, logarithms are tracked instead.
- TODO: Copy ReceiveRateMeasurement from MLRsearch.
+ The current implementation does not use direct loss rate
+ from the fitting function, as the input and output units may not match
+ (e.g. intended load in TCP transactions, loss in packets).
+ Instead, the expected average loss is scaled according to the number
+ of packets actually sent.
+
+ TODO: Copy MeasurementResult from MLRsearch.
:param trace: A multiprocessing-friendly logging function (closure).
:param lfit_func: Fitting function, typically lfit_spread or lfit_erf.
@@ -442,40 +476,47 @@ class PLRsearch:
:param spread: The spread parameter for the fitting function.
:type trace: function (str, object) -> None
:type lfit_func: Function from 3 floats to float.
- :type trial_result_list: list of MLRsearch.ReceiveRateMeasurement
+ :type trial_result_list: list of MLRsearch.MeasurementResult
:type mrr: float
:type spread: float
:returns: Logarithm of result weight for given function and parameters.
:rtype: float
"""
log_likelihood = 0.0
- trace(u"log_weight for mrr", mrr)
- trace(u"spread", spread)
+ trace("log_weight for mrr", mrr)
+ trace("spread", spread)
for result in trial_result_list:
- trace(u"for tr", result.target_tr)
- trace(u"lc", result.loss_count)
- trace(u"d", result.duration)
- # _rel_ values use units of target_tr (transactions per second).
+ trace("for tr", result.intended_load)
+ trace("plc", result.plr_loss_count)
+ trace("d", result.intended_duration)
+ # _rel_ values use units of intended_load (transactions per second).
log_avg_rel_loss_per_second = lfit_func(
- trace, result.target_tr, mrr, spread
+ trace, result.intended_load, mrr, spread
)
# _abs_ values use units of loss count (maybe packets).
# There can be multiple packets per transaction.
log_avg_abs_loss_per_trial = log_avg_rel_loss_per_second + math.log(
- result.transmit_count / result.target_tr
+ result.offered_count / result.intended_load
)
# Geometric probability computation for logarithms.
log_trial_likelihood = log_plus(0.0, -log_avg_abs_loss_per_trial)
- log_trial_likelihood *= -result.loss_count
+ log_trial_likelihood *= -result.plr_loss_count
log_trial_likelihood -= log_plus(0.0, +log_avg_abs_loss_per_trial)
log_likelihood += log_trial_likelihood
- trace(u"avg_loss_per_trial", math.exp(log_avg_abs_loss_per_trial))
- trace(u"log_trial_likelihood", log_trial_likelihood)
+ trace("avg_loss_per_trial", math.exp(log_avg_abs_loss_per_trial))
+ trace("log_trial_likelihood", log_trial_likelihood)
return log_likelihood
def measure_and_compute(
- self, trial_duration, transmit_rate, trial_result_list,
- min_rate, max_rate, focus_trackers=(None, None), max_samples=None):
+ self,
+ trial_duration,
+ transmit_rate,
+ trial_result_list,
+ min_rate,
+ max_rate,
+ focus_trackers=(None, None),
+ max_samples=None,
+ ):
"""Perform both measurement and computation at once.
High level steps: Prepare and launch computation worker processes,
@@ -516,7 +557,7 @@ class PLRsearch:
:param max_samples: Limit for integrator samples, for debugging.
:type trial_duration: float
:type transmit_rate: float
- :type trial_result_list: list of MLRsearch.ReceiveRateMeasurement
+ :type trial_result_list: list of MLRsearch.MeasurementResult
:type min_rate: float
:type max_rate: float
:type focus_trackers: 2-tuple of None or stat_trackers.VectorStatTracker
@@ -556,6 +597,20 @@ class PLRsearch:
:rtype: multiprocessing.Connection
"""
+ boss_pipe_end, worker_pipe_end = multiprocessing.Pipe()
+ # Starting the worker first. Contrary to documentation
+ # https://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection
+ # sending of large object without active listener on the other side
+ # results in a deadlock, not in a ValueError.
+ # See https://stackoverflow.com/questions/15137292/large-objects-and-multiprocessing-pipes-and-send
+ worker = multiprocessing.Process(
+ target=Integrator.try_estimate_nd,
+ args=(worker_pipe_end, 5.0, self.trace_enabled),
+ )
+ worker.daemon = True
+ worker.start()
+
+ # Only now it is safe to send the function to compute with.
def value_logweight_func(trace, x_mrr, x_spread):
"""Return log of critical rate and log of likelihood.
@@ -594,22 +649,18 @@ class PLRsearch:
)
value = math.log(
self.find_critical_rate(
- trace, fitting_function, min_rate, max_rate,
- self.packet_loss_ratio_target, mrr, spread
+ trace,
+ fitting_function,
+ min_rate,
+ max_rate,
+ self.packet_loss_ratio_target,
+ mrr,
+ spread,
)
)
return value, logweight
dilled_function = dill.dumps(value_logweight_func)
- boss_pipe_end, worker_pipe_end = multiprocessing.Pipe()
- # Do not send yet, run the worker first to avoid a deadlock.
- # See https://stackoverflow.com/a/15716500
- worker = multiprocessing.Process(
- target=Integrator.try_estimate_nd,
- args=(worker_pipe_end, 10.0, self.trace_enabled)
- )
- worker.daemon = True
- worker.start()
boss_pipe_end.send(
(dimension, dilled_function, focus_tracker, max_samples)
)
@@ -651,14 +702,18 @@ class PLRsearch:
raise RuntimeError(f"Worker {name} did not finish!")
result_or_traceback = pipe.recv()
try:
- value_tracker, focus_tracker, debug_list, trace_list, sampls = (
- result_or_traceback
- )
- except ValueError:
+ (
+ value_tracker,
+ focus_tracker,
+ debug_list,
+ trace_list,
+ sampls,
+ ) = result_or_traceback
+ except ValueError as exc:
raise RuntimeError(
f"Worker {name} failed with the following traceback:\n"
f"{result_or_traceback}"
- )
+ ) from exc
logging.info(f"Logs from worker {name!r}:")
for message in debug_list:
logging.info(message)
@@ -669,8 +724,8 @@ class PLRsearch:
)
return _PartialResult(value_tracker, focus_tracker, sampls)
- stretch_result = stop_computing(u"stretch", stretch_pipe)
- erf_result = stop_computing(u"erf", erf_pipe)
+ stretch_result = stop_computing("stretch", stretch_pipe)
+ erf_result = stop_computing("erf", erf_pipe)
result = PLRsearch._get_result(measurement, stretch_result, erf_result)
logging.info(
f"measure_and_compute finished with trial result "
@@ -692,7 +747,7 @@ class PLRsearch:
:param measurement: The trial measurement obtained during computation.
:param stretch_result: Computation output for stretch fitting function.
:param erf_result: Computation output for erf fitting function.
- :type measurement: ReceiveRateMeasurement
+ :type measurement: MeasurementResult
:type stretch_result: _PartialResult
:type erf_result: _PartialResult
:returns: Combined results.
@@ -717,7 +772,7 @@ class PLRsearch:
# Named tuples, for multiple local variables to be passed as return value.
_PartialResult = namedtuple(
- u"_PartialResult", u"value_tracker focus_tracker samples"
+ "_PartialResult", "value_tracker focus_tracker samples"
)
"""Two stat trackers and sample counter.
@@ -730,8 +785,8 @@ _PartialResult = namedtuple(
"""
_ComputeResult = namedtuple(
- u"_ComputeResult",
- u"measurement avg stdev stretch_exp_avg erf_exp_avg trackers"
+ "_ComputeResult",
+ "measurement avg stdev stretch_exp_avg erf_exp_avg trackers",
)
"""Measurement, 4 computation result values, pair of trackers.
@@ -741,7 +796,7 @@ _ComputeResult = namedtuple(
:param stretch_exp_avg: Stretch fitting function estimate average exponentiated.
:param erf_exp_avg: Erf fitting function estimate average, exponentiated.
:param trackers: Pair of focus trackers to start next iteration with.
-:type measurement: ReceiveRateMeasurement
+:type measurement: MeasurementResult
:type avg: float
:type stdev: float
:type stretch_exp_avg: float
diff --git a/resources/libraries/python/PLRsearch/__init__.py b/resources/libraries/python/PLRsearch/__init__.py
index 6d1559d5f0..22360cb182 100644
--- a/resources/libraries/python/PLRsearch/__init__.py
+++ b/resources/libraries/python/PLRsearch/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/PLRsearch/log_plus.py b/resources/libraries/python/PLRsearch/log_plus.py
index 62378f6f2c..aabefdb5be 100644
--- a/resources/libraries/python/PLRsearch/log_plus.py
+++ b/resources/libraries/python/PLRsearch/log_plus.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -76,14 +76,14 @@ def log_minus(first, second):
:raises RuntimeError: If the difference would be non-positive.
"""
if first is None:
- raise RuntimeError(u"log_minus: does not support None first")
+ raise RuntimeError("log_minus: does not support None first")
if second is None:
return first
if second >= first:
- raise RuntimeError(u"log_minus: first has to be bigger than second")
+ raise RuntimeError("log_minus: first has to be bigger than second")
factor = -math.expm1(second - first)
if factor <= 0.0:
- msg = u"log_minus: non-positive number to log"
+ msg = "log_minus: non-positive number to log"
else:
return first + math.log(factor)
raise RuntimeError(msg)
diff --git a/resources/libraries/python/PLRsearch/stat_trackers.py b/resources/libraries/python/PLRsearch/stat_trackers.py
index 2a7a05cae6..e598fd840e 100644
--- a/resources/libraries/python/PLRsearch/stat_trackers.py
+++ b/resources/libraries/python/PLRsearch/stat_trackers.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -64,8 +64,10 @@ class ScalarStatTracker:
:returns: Expression constructing an equivalent instance.
:rtype: str
"""
- return f"ScalarStatTracker(log_sum_weight={self.log_sum_weight!r}," \
+ return (
+ f"ScalarStatTracker(log_sum_weight={self.log_sum_weight!r},"
f"average={self.average!r},log_variance={self.log_variance!r})"
+ )
def copy(self):
"""Return new ScalarStatTracker instance with the same state as self.
@@ -110,7 +112,8 @@ class ScalarStatTracker:
if absolute_shift > 0.0:
log_square_shift = 2 * math.log(absolute_shift)
log_variance = log_plus(
- log_variance, log_square_shift + log_sample_ratio)
+ log_variance, log_square_shift + log_sample_ratio
+ )
if log_variance is not None:
log_variance += old_log_sum_weight - new_log_sum_weight
self.log_sum_weight = new_log_sum_weight
@@ -133,10 +136,17 @@ class ScalarDualStatTracker(ScalarStatTracker):
One typical use is for Monte Carlo integrator to decide whether
the partial sums so far are reliable enough.
"""
+
def __init__(
- self, log_sum_weight=None, average=0.0, log_variance=None,
- log_sum_secondary_weight=None, secondary_average=0.0,
- log_secondary_variance=None, max_log_weight=None):
+ self,
+ log_sum_weight=None,
+ average=0.0,
+ log_variance=None,
+ log_sum_secondary_weight=None,
+ secondary_average=0.0,
+ log_secondary_variance=None,
+ max_log_weight=None,
+ ):
"""Initialize new tracker instance, empty by default.
:param log_sum_weight: Natural logarithm of sum of weights
@@ -177,12 +187,14 @@ class ScalarDualStatTracker(ScalarStatTracker):
:rtype: str
"""
sec = self.secondary
- return f"ScalarDualStatTracker(log_sum_weight={self.log_sum_weight!r},"\
- f"average={self.average!r},log_variance={self.log_variance!r}," \
- f"log_sum_secondary_weight={sec.log_sum_weight!r}," \
- f"secondary_average={sec.average!r}," \
- f"log_secondary_variance={sec.log_variance!r}," \
+ return (
+ f"ScalarDualStatTracker(log_sum_weight={self.log_sum_weight!r},"
+ f"average={self.average!r},log_variance={self.log_variance!r},"
+ f"log_sum_secondary_weight={sec.log_sum_weight!r},"
+ f"secondary_average={sec.average!r},"
+ f"log_secondary_variance={sec.log_variance!r},"
f"max_log_weight={self.max_log_weight!r})"
+ )
def add(self, scalar_value, log_weight=0.0):
"""Return updated both stats after addition of another sample.
@@ -197,7 +209,7 @@ class ScalarDualStatTracker(ScalarStatTracker):
"""
# Using super() as copy() and add() are not expected to change
# signature, so this way diamond inheritance will be supported.
- primary = super(ScalarDualStatTracker, self)
+ primary = super()
if self.max_log_weight is None or log_weight >= self.max_log_weight:
self.max_log_weight = log_weight
self.secondary = primary.copy()
@@ -242,8 +254,12 @@ class VectorStatTracker:
"""
def __init__(
- self, dimension=2, log_sum_weight=None, averages=None,
- covariance_matrix=None):
+ self,
+ dimension=2,
+ log_sum_weight=None,
+ averages=None,
+ covariance_matrix=None,
+ ):
"""Initialize new tracker instance, two-dimensional empty by default.
If any of latter two arguments is None, it means
@@ -272,10 +288,12 @@ class VectorStatTracker:
:returns: Expression constructing an equivalent instance.
:rtype: str
"""
- return f"VectorStatTracker(dimension={self.dimension!r}," \
- f"log_sum_weight={self.log_sum_weight!r}," \
- f"averages={self.averages!r}," \
+ return (
+ f"VectorStatTracker(dimension={self.dimension!r},"
+ f"log_sum_weight={self.log_sum_weight!r},"
+ f"averages={self.averages!r},"
f"covariance_matrix={self.covariance_matrix!r})"
+ )
def copy(self):
"""Return new instance with the same state as self.
@@ -287,8 +305,10 @@ class VectorStatTracker:
:rtype: VectorStatTracker
"""
return VectorStatTracker(
- self.dimension, self.log_sum_weight, self.averages[:],
- copy.deepcopy(self.covariance_matrix)
+ self.dimension,
+ self.log_sum_weight,
+ self.averages[:],
+ copy.deepcopy(self.covariance_matrix),
)
def reset(self):
diff --git a/resources/libraries/python/PapiExecutor.py b/resources/libraries/python/PapiExecutor.py
index 6b21680526..a55638ab7c 100644
--- a/resources/libraries/python/PapiExecutor.py
+++ b/resources/libraries/python/PapiExecutor.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -12,17 +12,21 @@
# limitations under the License.
"""Python API executor library.
+
+TODO: Document sync and async handling properly.
"""
import copy
import glob
import json
+import logging
import shutil
import struct # vpp-papi can raise struct.error
import subprocess
import sys
import tempfile
import time
+from collections import deque, UserDict
from pprint import pformat
from robot.api import logger
@@ -32,15 +36,19 @@ from resources.libraries.python.LocalExecution import run
from resources.libraries.python.FilteredLogger import FilteredLogger
from resources.libraries.python.PapiHistory import PapiHistory
from resources.libraries.python.ssh import (
- SSH, SSHTimeout, exec_cmd_no_error, scp_node)
+ SSH,
+ SSHTimeout,
+ exec_cmd_no_error,
+ scp_node,
+)
from resources.libraries.python.topology import Topology, SocketType
from resources.libraries.python.VppApiCrc import VppApiCrcChecker
__all__ = [
- u"PapiExecutor",
- u"PapiSocketExecutor",
- u"Disconnector",
+ "PapiExecutor",
+ "PapiSocketExecutor",
+ "Disconnector",
]
@@ -63,47 +71,50 @@ def dictize(obj):
:param obj: Arbitrary object to dictize.
:type obj: object
:returns: Dictized object.
- :rtype: same as obj type or collections.OrderedDict
+ :rtype: same as obj type or collections.UserDict
"""
- if not hasattr(obj, u"_asdict"):
+ if not hasattr(obj, "_asdict"):
return obj
- ret = obj._asdict()
- old_get = ret.__getitem__
- new_get = lambda self, key: dictize(old_get(self, key))
- ret.__getitem__ = new_get
- return ret
+ overriden = UserDict(obj._asdict())
+ old_get = overriden.__getitem__
+ overriden.__getitem__ = lambda self, key: dictize(old_get(self, key))
+ return overriden
-class PapiSocketExecutor:
- """Methods for executing VPP Python API commands on forwarded socket.
+def dictize_and_check_retval(obj, err_msg):
+ """Make namedtuple-like object accessible as dict, check retval if exists.
- Previously, we used an implementation with single client instance
- and connection being handled by a resource manager.
- On "with" statement, the instance connected, and disconnected
- on exit from the "with" block.
- This was limiting (no nested with blocks) and mainly it was slow:
- 0.7 seconds per disconnect cycle on Skylake, more than 3 second on Taishan.
+ If the object contains "retval" field, raise when the value is non-zero.
- The currently used implementation caches the connected client instances,
- providing speedup and making "with" blocks unnecessary.
- But with many call sites, "with" blocks are still the main usage pattern.
- Documentation still lists that as the intended pattern.
+ See dictize() for what it means to dictize.
- As a downside, clients need to be explicitly told to disconnect
- before VPP restart.
- There is some amount of retries and disconnects on disconnect
- (so unresponsive VPPs do not breach test much more than needed),
- but it is hard to verify all that works correctly.
- Especially, if Robot crashes, files and ssh processes may leak.
+ :param obj: Arbitrary object to dictize.
+ :param err_msg: The (additional) text for the raised exception.
+ :type obj: object
+ :type err_msg: str
+ :returns: Dictized object.
+ :rtype: same as obj type or collections.UserDict
+ :raises AssertionError: If retval field is present with nonzero value.
+ """
+ ret = dictize(obj)
+ # *_details messages do not contain retval.
+ retval = ret.get("retval", 0)
+ if retval != 0:
+ raise AssertionError(f"{err_msg}\nRetval nonzero in object {ret!r}")
+ return ret
- Delay for accepting socket connection is 10s.
- TODO: Decrease 10s to value that is long enough for creating connection
- and short enough to not affect performance.
+
+class PapiSocketExecutor:
+ """Methods for executing VPP Python API commands on forwarded socket.
The current implementation downloads and parses .api.json files only once
and caches client instances for reuse.
Cleanup metadata is added as additional attributes
- directly to client instances.
+ directly to the client instances.
+
+ The current implementation caches the connected client instances.
+ As a downside, clients need to be explicitly told to disconnect
+ before VPP restart.
The current implementation seems to run into read error occasionally.
Not sure if the error is in Python code on Robot side, ssh forwarding,
@@ -111,14 +122,16 @@ class PapiSocketExecutor:
seems to help, hoping repeated command execution does not lead to surprises.
The reconnection is logged at WARN level, so it is prominently shown
in log.html, so we can see how frequently it happens.
+ There are similar retries cleanups in other places
+ (so unresponsive VPPs do not break test much more than needed),
+ but it is hard to verify all that works correctly.
+ Especially, if Robot crashes, files and ssh processes may leak.
- TODO: Support handling of retval!=0 without try/except in caller.
-
- Note: Use only with "with" statement, e.g.:
+ TODO: Decrease current timeout value when creating connections
+ so broken VPP does not prolong job duration too much
+ while good VPP (almost) never fails to connect.
- cmd = 'show_version'
- with PapiSocketExecutor(node) as papi_exec:
- reply = papi_exec.add(cmd).get_reply(err_msg)
+ TODO: Support handling of retval!=0 without try/except in caller.
This class processes two classes of VPP PAPI methods:
1. Simple request / reply: method='request'.
@@ -128,27 +141,37 @@ class PapiSocketExecutor:
The recommended ways of use are (examples):
- 1. Simple request / reply
-
- a. One request with no arguments:
+ 1. Simple request / reply. Example with no arguments:
- cmd = 'show_version'
+ cmd = "show_version"
with PapiSocketExecutor(node) as papi_exec:
reply = papi_exec.add(cmd).get_reply(err_msg)
- b. Three requests with arguments, the second and the third ones are the same
- but with different arguments.
+ 2. Dump functions:
+ cmd = "sw_interface_rx_placement_dump"
with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, sw_if_index=ifc["vpp_sw_index"])
+ details = papi_exec.get_details(err_msg)
+
+ 3. Multiple requests with one reply each.
+ In this example, there are three requests with arguments,
+ the second and the third ones are the same but with different arguments.
+ This example also showcases method chaining.
+
+ with PapiSocketExecutor(node, is_async=True) as papi_exec:
replies = papi_exec.add(cmd1, **args1).add(cmd2, **args2).\
add(cmd2, **args3).get_replies(err_msg)
- 2. Dump functions
+ The "is_async=True" part in the last example enables "async handling mode",
+ which imposes limitations but gains speed and saves memory.
+ This is different than async mode of VPP PAPI, as the default handling mode
+ also uses async PAPI connections.
- cmd = 'sw_interface_rx_placement_dump'
- with PapiSocketExecutor(node) as papi_exec:
- details = papi_exec.add(cmd, sw_if_index=ifc['vpp_sw_index']).\
- get_details(err_msg)
+ The implementation contains more hidden details, such as
+ support for old VPP PAPI async mode behavior, API CRC checking
+ conditional usage of control ping, and possible susceptibility to VPP-2033.
+ See docstring of methods for more detailed info.
"""
# Class cache for reuse between instances.
@@ -172,16 +195,21 @@ class PapiSocketExecutor:
conn_cache = dict()
"""Mapping from node key to connected client instance."""
- def __init__(self, node, remote_vpp_socket=Constants.SOCKSVR_PATH):
+ def __init__(
+ self, node, remote_vpp_socket=Constants.SOCKSVR_PATH, is_async=False
+ ):
"""Store the given arguments, declare managed variables.
:param node: Node to connect to and forward unix domain socket from.
:param remote_vpp_socket: Path to remote socket to tunnel to.
+ :param is_async: Whether to use async handling.
:type node: dict
:type remote_vpp_socket: str
+ :type is_async: bool
"""
self._node = node
self._remote_vpp_socket = remote_vpp_socket
+ self._is_async = is_async
# The list of PAPI commands to be executed on the node.
self._api_command_list = list()
@@ -196,32 +224,40 @@ class PapiSocketExecutor:
cls = self.__class__
if cls.api_package_path:
return
- cls.api_root_dir = tempfile.TemporaryDirectory(dir=u"/tmp")
+ # Pylint suggests to use "with" statement, which we cannot,
+ # do as the dir should stay for multiple ensure_vpp_instance calls.
+ cls.api_root_dir = tempfile.TemporaryDirectory(dir="/tmp")
root_path = cls.api_root_dir.name
# Pack, copy and unpack Python part of VPP installation from _node.
# TODO: Use rsync or recursive version of ssh.scp_node instead?
node = self._node
- exec_cmd_no_error(node, [u"rm", u"-rf", u"/tmp/papi.txz"])
+ exec_cmd_no_error(node, ["rm", "-rf", "/tmp/papi.txz"])
# Papi python version depends on OS (and time).
- # Python 2.7 or 3.4, site-packages or dist-packages.
- installed_papi_glob = u"/usr/lib/python3*/*-packages/vpp_papi"
+ # Python 3.4 or higher, site-packages or dist-packages.
+ installed_papi_glob = "/usr/lib/python3*/*-packages/vpp_papi"
# We need to wrap this command in bash, in order to expand globs,
# and as ssh does join, the inner command has to be quoted.
- inner_cmd = u" ".join([
- u"tar", u"cJf", u"/tmp/papi.txz", u"--exclude=*.pyc",
- installed_papi_glob, u"/usr/share/vpp/api"
- ])
- exec_cmd_no_error(node, [u"bash", u"-c", u"'" + inner_cmd + u"'"])
- scp_node(node, root_path + u"/papi.txz", u"/tmp/papi.txz", get=True)
- run([u"tar", u"xf", root_path + u"/papi.txz", u"-C", root_path])
- cls.api_json_path = root_path + u"/usr/share/vpp/api"
+ inner_cmd = " ".join(
+ [
+ "tar",
+ "cJf",
+ "/tmp/papi.txz",
+ "--exclude=*.pyc",
+ installed_papi_glob,
+ "/usr/share/vpp/api",
+ ]
+ )
+ exec_cmd_no_error(node, ["bash", "-c", f"'{inner_cmd}'"])
+ scp_node(node, root_path + "/papi.txz", "/tmp/papi.txz", get=True)
+ run(["tar", "xf", root_path + "/papi.txz", "-C", root_path])
+ cls.api_json_path = root_path + "/usr/share/vpp/api"
# Perform initial checks before .api.json files are gone,
# by creating the checker instance.
cls.crc_checker = VppApiCrcChecker(cls.api_json_path)
# When present locally, we finally can find the installation path.
cls.api_package_path = glob.glob(root_path + installed_papi_glob)[0]
# Package path has to be one level above the vpp_papi directory.
- cls.api_package_path = cls.api_package_path.rsplit(u"/", 1)[0]
+ cls.api_package_path = cls.api_package_path.rsplit("/", 1)[0]
def ensure_vpp_instance(self):
"""Create or reuse a closed client instance, return it.
@@ -249,14 +285,39 @@ class PapiSocketExecutor:
# It is right, we should refactor the code and move initialization
# of package outside.
from vpp_papi.vpp_papi import VPPApiClient as vpp_class
- vpp_class.apidir = cls.api_json_path
- # We need to create instance before removing from sys.path.
- vpp_instance = vpp_class(
- use_socket=True, server_address=u"TBD", async_thread=False,
- read_timeout=14, logger=FilteredLogger(logger, u"INFO")
- )
- # Cannot use loglevel parameter, robot.api.logger lacks support.
- # TODO: Stop overriding read_timeout when VPP-1722 is fixed.
+ try:
+ # The old way. Deduplicate when pre-2402 support is not needed.
+
+ vpp_class.apidir = cls.api_json_path
+ # We need to create instance before removing from sys.path.
+ # Cannot use loglevel parameter, robot.api.logger lacks the support.
+ vpp_instance = vpp_class(
+ use_socket=True,
+ server_address="TBD",
+ async_thread=False,
+ # Large read timeout was originally there for VPP-1722,
+ # it may still be helping against AVF device creation failures.
+ read_timeout=14,
+ logger=FilteredLogger(logger, "INFO"),
+ )
+ except vpp_class.VPPRuntimeError:
+ # The 39871 way.
+
+ # We need to create instance before removing from sys.path.
+ # Cannot use loglevel parameter, robot.api.logger lacks the support.
+ vpp_instance = vpp_class(
+ apidir=cls.api_json_path,
+ use_socket=True,
+ server_address="TBD",
+ async_thread=False,
+ # Large read timeout was originally there for VPP-1722,
+ # it may still be helping against AVF device creation failures.
+ read_timeout=14,
+ logger=FilteredLogger(logger, "INFO"),
+ )
+ # The following is needed to prevent union (e.g. Ip4) debug logging
+ # of VPP part of PAPI from spamming robot logs.
+ logging.getLogger("vpp_papi.serializer").setLevel(logging.INFO)
finally:
if sys.path[-1] == cls.api_package_path:
sys.path.pop()
@@ -282,8 +343,8 @@ class PapiSocketExecutor:
:rtype: tuple of str
"""
return (
- node[u"host"],
- node[u"port"],
+ node["host"],
+ node["port"],
remote_socket,
# TODO: Do we support sockets paths such as "~/vpp/api.socket"?
# If yes, add also:
@@ -300,7 +361,8 @@ class PapiSocketExecutor:
:rtype: tuple of str
"""
return self.__class__.key_for_node_and_socket(
- self._node, self._remote_vpp_socket,
+ self._node,
+ self._remote_vpp_socket,
)
def set_connected_client(self, client):
@@ -327,10 +389,11 @@ class PapiSocketExecutor:
If check_connected, RuntimeError is raised when the client is
not in cache. None is returned if client is not in cache
(and the check is disabled).
+ Successful retrieval from cache is logged only when check_connected.
This hides details of what the node key is.
- :param check_connected: Whether cache miss raises.
+ :param check_connected: Whether cache miss raises (and success logs).
:type check_connected: bool
:returns: Connected client instance, or None if uncached and no check.
:rtype: Optional[vpp_papi.VPPApiClient]
@@ -338,11 +401,9 @@ class PapiSocketExecutor:
"""
key = self.key_for_self()
ret = self.__class__.conn_cache.get(key, None)
-
- if ret is None:
- if check_connected:
+ if check_connected:
+ if ret is None:
raise RuntimeError(f"Client not cached for key: {key}")
- else:
# When reading logs, it is good to see which VPP is accessed.
logger.debug(f"Activated cached PAPI client for key: {key}")
return ret
@@ -364,6 +425,8 @@ class PapiSocketExecutor:
- This socket controls the local ssh process doing the forwarding.
csit_local_vpp_socket
- This is the forwarded socket to talk with remote VPP.
+ csit_deque
+ - Queue for responses.
The attribute names do not start with underscore,
so pylint does not complain about accessing private attribute.
@@ -378,7 +441,7 @@ class PapiSocketExecutor:
if vpp_instance is not None:
return self
# No luck, create and connect a new instance.
- time_enter = time.time()
+ time_enter = time.monotonic()
node = self._node
# Parsing takes longer than connecting, prepare instance before tunnel.
vpp_instance = self.ensure_vpp_instance()
@@ -386,44 +449,55 @@ class PapiSocketExecutor:
# If connection fails, it is better to attempt disconnect anyway.
self.set_connected_client(vpp_instance)
# Set additional attributes.
- vpp_instance.csit_temp_dir = tempfile.TemporaryDirectory(dir=u"/tmp")
+ vpp_instance.csit_temp_dir = tempfile.TemporaryDirectory(dir="/tmp")
temp_path = vpp_instance.csit_temp_dir.name
- api_socket = temp_path + u"/vpp-api.sock"
+ api_socket = temp_path + "/vpp-api.sock"
vpp_instance.csit_local_vpp_socket = api_socket
- ssh_socket = temp_path + u"/ssh.sock"
+ ssh_socket = temp_path + "/ssh.sock"
vpp_instance.csit_control_socket = ssh_socket
# Cleanup possibilities.
- ret_code, _ = run([u"ls", ssh_socket], check=False)
+ ret_code, _ = run(["ls", ssh_socket], check=False)
if ret_code != 2:
# This branch never seems to be hit in CI,
# but may be useful when testing manually.
run(
- [u"ssh", u"-S", ssh_socket, u"-O", u"exit", u"0.0.0.0"],
- check=False, log=True
+ ["ssh", "-S", ssh_socket, "-O", "exit", "0.0.0.0"],
+ check=False,
+ log=True,
)
# TODO: Is any sleep necessary? How to prove if not?
- run([u"sleep", u"0.1"])
- run([u"rm", u"-vrf", ssh_socket])
+ run(["sleep", "0.1"])
+ run(["rm", "-vrf", ssh_socket])
# Even if ssh can perhaps reuse this file,
# we need to remove it for readiness detection to work correctly.
- run([u"rm", u"-rvf", api_socket])
+ run(["rm", "-rvf", api_socket])
# We use sleep command. The ssh command will exit in 30 second,
# unless a local socket connection is established,
# in which case the ssh command will exit only when
# the ssh connection is closed again (via control socket).
# The log level is to suppress "Warning: Permanently added" messages.
ssh_cmd = [
- u"ssh", u"-S", ssh_socket, u"-M", u"-L",
- api_socket + u":" + self._remote_vpp_socket,
- u"-p", str(node[u"port"]),
- u"-o", u"LogLevel=ERROR",
- u"-o", u"UserKnownHostsFile=/dev/null",
- u"-o", u"StrictHostKeyChecking=no",
- u"-o", u"ExitOnForwardFailure=yes",
- node[u"username"] + u"@" + node[u"host"],
- u"sleep", u"30"
+ "ssh",
+ "-S",
+ ssh_socket,
+ "-M",
+ "-L",
+ f"{api_socket}:{self._remote_vpp_socket}",
+ "-p",
+ str(node["port"]),
+ "-o",
+ "LogLevel=ERROR",
+ "-o",
+ "UserKnownHostsFile=/dev/null",
+ "-o",
+ "StrictHostKeyChecking=no",
+ "-o",
+ "ExitOnForwardFailure=yes",
+ f"{node['username']}@{node['host']}",
+ "sleep",
+ "30",
]
- priv_key = node.get(u"priv_key")
+ priv_key = node.get("priv_key")
if priv_key:
# This is tricky. We need a file to pass the value to ssh command.
# And we need ssh command, because paramiko does not support sockets
@@ -432,48 +506,52 @@ class PapiSocketExecutor:
key_file.write(priv_key)
# Make sure the content is written, but do not close yet.
key_file.flush()
- ssh_cmd[1:1] = [u"-i", key_file.name]
- password = node.get(u"password")
+ ssh_cmd[1:1] = ["-i", key_file.name]
+ password = node.get("password")
if password:
# Prepend sshpass command to set password.
- ssh_cmd[:0] = [u"sshpass", u"-p", password]
- time_stop = time.time() + 10.0
+ ssh_cmd[:0] = ["sshpass", "-p", password]
+ time_stop = time.monotonic() + 10.0
# subprocess.Popen seems to be the best way to run commands
# on background. Other ways (shell=True with "&" and ssh with -f)
# seem to be too dependent on shell behavior.
# In particular, -f does NOT return values for run().
subprocess.Popen(ssh_cmd)
# Check socket presence on local side.
- while time.time() < time_stop:
+ while time.monotonic() < time_stop:
# It can take a moment for ssh to create the socket file.
- ret_code, _ = run(
- [u"ls", u"-l", api_socket], check=False
- )
+ ret_code, _ = run(["ls", "-l", api_socket], check=False)
if not ret_code:
break
- time.sleep(0.1)
+ time.sleep(0.01)
else:
- raise RuntimeError(u"Local side socket has not appeared.")
+ raise RuntimeError("Local side socket has not appeared.")
if priv_key:
# Socket up means the key has been read. Delete file by closing it.
key_file.close()
# Everything is ready, set the local socket address and connect.
vpp_instance.transport.server_address = api_socket
# It seems we can get read error even if every preceding check passed.
- # Single retry seems to help.
+ # Single retry seems to help. TODO: Confirm this is still needed.
for _ in range(2):
try:
- vpp_instance.connect_sync(u"csit_socket")
+ vpp_instance.connect("csit_socket", do_async=True)
except (IOError, struct.error) as err:
logger.warn(f"Got initial connect error {err!r}")
vpp_instance.disconnect()
else:
break
else:
- raise RuntimeError(u"Failed to connect to VPP over a socket.")
- logger.trace(
- f"Establishing socket connection took {time.time()-time_enter}s"
- )
+ raise RuntimeError("Failed to connect to VPP over a socket.")
+ # Only after rls2302 all relevant VPP builds should have do_async.
+ if hasattr(vpp_instance.transport, "do_async"):
+ deq = deque()
+ vpp_instance.csit_deque = deq
+ vpp_instance.register_event_callback(lambda x, y: deq.append(y))
+ else:
+ vpp_instance.csit_deque = None
+ duration_conn = time.monotonic() - time_enter
+ logger.trace(f"Establishing socket connection took {duration_conn}s.")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
@@ -498,10 +576,17 @@ class PapiSocketExecutor:
return
logger.debug(f"Disconnecting by key: {key}")
client_instance.disconnect()
- run([
- u"ssh", u"-S", client_instance.csit_control_socket, u"-O",
- u"exit", u"0.0.0.0"
- ], check=False)
+ run(
+ [
+ "ssh",
+ "-S",
+ client_instance.csit_control_socket,
+ "-O",
+ "exit",
+ "0.0.0.0",
+ ],
+ check=False,
+ )
# Temp dir has autoclean, but deleting explicitly
# as an error can happen.
try:
@@ -517,8 +602,8 @@ class PapiSocketExecutor:
@classmethod
def disconnect_by_node_and_socket(
- cls, node, remote_socket=Constants.SOCKSVR_PATH
- ):
+ cls, node, remote_socket=Constants.SOCKSVR_PATH
+ ):
"""Disconnect a connected client instance, noop it not connected.
Also remove the local sockets by deleting the temporary directory.
@@ -576,10 +661,8 @@ class PapiSocketExecutor:
"""Add next command to internal command list; return self.
Unless disabled, new entry to papi history is also added at this point.
- The argument name 'csit_papi_command' must be unique enough as it cannot
- be repeated in kwargs.
- The kwargs dict is deep-copied, so it is safe to use the original
- with partial modifications for subsequent commands.
+ The kwargs dict is serialized or deep-copied, so it is safe to use
+ the original with partial modifications for subsequent calls.
Any pending conflicts from .api.json processing are raised.
Then the command name is checked for known CRCs.
@@ -589,6 +672,16 @@ class PapiSocketExecutor:
Each CRC issue is raised only once, so subsequent tests
can raise other issues.
+ With async handling mode, this method also serializes and sends
+ the command, skips CRC check to gain speed, and saves memory
+ by putting a sentinel (instead of deepcopy) to api command list.
+
+ For scale tests, the call sites are responsible to set history values
+ in a way that hints what is done without overwhelming the papi history.
+
+ Note to contributors: Do not rename "csit_papi_command"
+ to anything VPP could possibly use as an API field name.
+
:param csit_papi_command: VPP API command.
:param history: Enable/disable adding command to PAPI command history.
:param kwargs: Optional key-value arguments.
@@ -601,23 +694,39 @@ class PapiSocketExecutor:
"""
self.crc_checker.report_initial_conflicts()
if history:
+ # No need for deepcopy yet, serialization isolates from edits.
PapiHistory.add_to_papi_history(
self._node, csit_papi_command, **kwargs
)
self.crc_checker.check_api_name(csit_papi_command)
- self._api_command_list.append(
- dict(
- api_name=csit_papi_command,
- api_args=copy.deepcopy(kwargs)
+ if self._is_async:
+ # Save memory but still count the number of expected replies.
+ self._api_command_list.append(0)
+ api_object = self.get_connected_client(check_connected=False).api
+ func = getattr(api_object, csit_papi_command)
+ # No need for deepcopy yet, serialization isolates from edits.
+ func(**kwargs)
+ else:
+ # No serialization, so deepcopy is needed here.
+ self._api_command_list.append(
+ dict(api_name=csit_papi_command, api_args=copy.deepcopy(kwargs))
)
- )
return self
def get_replies(self, err_msg="Failed to get replies."):
- """Get replies from VPP Python API.
+ """Get reply for each command from VPP Python API.
+
+ This method expects one reply per command,
+ and gains performance by reading replies only after
+ sending all commands.
The replies are parsed into dict-like objects,
- "retval" field is guaranteed to be zero on success.
+ "retval" field (if present) is guaranteed to be zero on success.
+
+ Do not use this for messages with variable number of replies,
+ use get_details instead.
+ Do not use for commands trigering VPP-2033,
+ use series of get_reply instead.
:param err_msg: The message used if the PAPI command(s) execution fails.
:type err_msg: str
@@ -625,15 +734,18 @@ class PapiSocketExecutor:
:rtype: list of dict
:raises RuntimeError: If retval is nonzero, parsing or ssh error.
"""
- return self._execute(err_msg=err_msg)
+ if not self._is_async:
+ raise RuntimeError("Sync handling does not suport get_replies.")
+ return self._execute(err_msg=err_msg, do_async=True)
- def get_reply(self, err_msg=u"Failed to get reply."):
- """Get reply from VPP Python API.
+ def get_reply(self, err_msg="Failed to get reply."):
+ """Get reply to single command from VPP Python API.
- The reply is parsed into dict-like object,
- "retval" field is guaranteed to be zero on success.
+ This method waits for a single reply (no control ping),
+ thus avoiding bugs like VPP-2033.
- TODO: Discuss exception types to raise, unify with inner methods.
+ The reply is parsed into a dict-like object,
+ "retval" field (if present) is guaranteed to be zero on success.
:param err_msg: The message used if the PAPI command(s) execution fails.
:type err_msg: str
@@ -641,18 +753,19 @@ class PapiSocketExecutor:
:rtype: dict
:raises AssertionError: If retval is nonzero, parsing or ssh error.
"""
- replies = self.get_replies(err_msg=err_msg)
+ if self._is_async:
+ raise RuntimeError("Async handling does not suport get_reply.")
+ replies = self._execute(err_msg=err_msg, do_async=False)
if len(replies) != 1:
raise RuntimeError(f"Expected single reply, got {replies!r}")
return replies[0]
- def get_sw_if_index(self, err_msg=u"Failed to get reply."):
+ def get_sw_if_index(self, err_msg="Failed to get reply."):
"""Get sw_if_index from reply from VPP Python API.
Frequently, the caller is only interested in sw_if_index field
- of the reply, this wrapper makes such call sites shorter.
-
- TODO: Discuss exception types to raise, unify with inner methods.
+ of the reply, this wrapper around get_reply (thus safe against VPP-2033)
+ makes such call sites shorter.
:param err_msg: The message used if the PAPI command(s) execution fails.
:type err_msg: str
@@ -660,12 +773,13 @@ class PapiSocketExecutor:
:rtype: int
:raises AssertionError: If retval is nonzero, parsing or ssh error.
"""
+ if self._is_async:
+ raise RuntimeError("Async handling does not suport get_sw_if_index")
reply = self.get_reply(err_msg=err_msg)
- logger.trace(f"Getting index from {reply!r}")
- return reply[u"sw_if_index"]
+ return reply["sw_if_index"]
def get_details(self, err_msg="Failed to get dump details."):
- """Get dump details from VPP Python API.
+ """Get details (for possibly multiple dumps) from VPP Python API.
The details are parsed into dict-like objects.
The number of details per single dump command can vary,
@@ -674,19 +788,27 @@ class PapiSocketExecutor:
logging everything at once for debugging purposes),
it is recommended to call get_details for each dump (type) separately.
+ This method uses control ping to detect end of replies,
+ so it is not suitable for commands which trigger VPP-2033
+ (but arguably no dump currently triggers it).
+
:param err_msg: The message used if the PAPI command(s) execution fails.
:type err_msg: str
:returns: Details, dict objects with fields due to API without "retval".
:rtype: list of dict
"""
- return self._execute(err_msg)
+ if self._is_async:
+ raise RuntimeError("Async handling does not suport get_details.")
+ return self._execute(err_msg, do_async=False, single_reply=False)
@staticmethod
def run_cli_cmd(
- node, cli_cmd, log=True, remote_vpp_socket=Constants.SOCKSVR_PATH):
+ node, cli_cmd, log=True, remote_vpp_socket=Constants.SOCKSVR_PATH
+ ):
"""Run a CLI command as cli_inband, return the "reply" field of reply.
Optionally, log the field value.
+ This is a convenience wrapper around get_reply.
:param node: Node to run command on.
:param cli_cmd: The CLI command to be run on the node.
@@ -699,18 +821,18 @@ class PapiSocketExecutor:
:returns: CLI output.
:rtype: str
"""
- cmd = u"cli_inband"
- args = dict(
- cmd=cli_cmd
+ cmd = "cli_inband"
+ args = dict(cmd=cli_cmd)
+ err_msg = (
+ f"Failed to run 'cli_inband {cli_cmd}' PAPI command"
+ f" on host {node['host']}"
)
- err_msg = f"Failed to run 'cli_inband {cli_cmd}' PAPI command " \
- f"on host {node[u'host']}"
with PapiSocketExecutor(node, remote_vpp_socket) as papi_exec:
reply = papi_exec.add(cmd, **args).get_reply(err_msg)["reply"]
if log:
logger.info(
- f"{cli_cmd} ({node[u'host']} - {remote_vpp_socket}):\n"
+ f"{cli_cmd} ({node['host']} - {remote_vpp_socket}):\n"
f"{reply.strip()}"
)
return reply
@@ -719,6 +841,8 @@ class PapiSocketExecutor:
def run_cli_cmd_on_all_sockets(node, cli_cmd, log=True):
"""Run a CLI command as cli_inband, on all sockets in topology file.
+ Just a run_cli_cmd, looping over sockets.
+
:param node: Node to run command on.
:param cli_cmd: The CLI command to be run on the node.
:param log: If True, the response is logged.
@@ -737,6 +861,8 @@ class PapiSocketExecutor:
def dump_and_log(node, cmds):
"""Dump and log requested information, return None.
+ Just a get_details (with logging), looping over commands.
+
:param node: DUT node.
:param cmds: Dump commands to be executed.
:type node: dict
@@ -747,64 +873,231 @@ class PapiSocketExecutor:
dump = papi_exec.add(cmd).get_details()
logger.debug(f"{cmd}:\n{pformat(dump)}")
- def _execute(self, err_msg=u"Undefined error message", exp_rv=0):
+ @staticmethod
+ def _read_internal(vpp_instance, timeout=None):
+ """Blockingly read within timeout.
+
+ This covers behaviors both before and after 37758.
+ One read attempt is guaranteed even with zero timeout.
+
+ TODO: Simplify after 2302 RCA is done.
+
+ :param vpp_instance: Client instance to read from.
+ :param timeout: How long to wait for reply (or transport default).
+ :type vpp_instance: vpp_papi.VPPApiClient
+ :type timeout: Optional[float]
+ :returns: Message read or None if nothing got read.
+ :rtype: Optional[namedtuple]
+ """
+ timeout = vpp_instance.read_timeout if timeout is None else timeout
+ if vpp_instance.csit_deque is None:
+ return vpp_instance.read_blocking(timeout=timeout)
+ time_stop = time.monotonic() + timeout
+ while 1:
+ try:
+ return vpp_instance.csit_deque.popleft()
+ except IndexError:
+ # We could busy-wait but that seems to starve the reader thread.
+ time.sleep(0.01)
+ if time.monotonic() > time_stop:
+ return None
+
+ @staticmethod
+ def _read(vpp_instance, tries=3):
+ """Blockingly read within timeout, retry on early None.
+
+ For (sometimes) unknown reasons, VPP client in async mode likes
+ to return None occasionally before time runs out.
+ This function retries in that case.
+
+ Most of the time, early None means VPP crashed (see VPP-2033),
+ but is is better to give VPP more chances to respond without failure.
+
+ TODO: Perhaps CSIT now never triggers VPP-2033,
+ so investigate and remove this layer if even more speed is needed.
+
+ :param vpp_instance: Client instance to read from.
+ :param tries: Maximum number of tries to attempt.
+ :type vpp_instance: vpp_papi.VPPApiClient
+ :type tries: int
+ :returns: Message read or None if nothing got read even with retries.
+ :rtype: Optional[namedtuple]
+ """
+ timeout = vpp_instance.read_timeout
+ for _ in range(tries):
+ time_stop = time.monotonic() + 0.9 * timeout
+ reply = PapiSocketExecutor._read_internal(vpp_instance)
+ if reply is None and time.monotonic() < time_stop:
+ logger.trace("Early None. Retry?")
+ continue
+ return reply
+ logger.trace(f"Got {tries} early Nones, probably a real None.")
+ return None
+
+ @staticmethod
+ def _drain(vpp_instance, err_msg, timeout=30.0):
+ """Keep reading with until None or timeout.
+
+ This is needed to mitigate the risk of a state with unread responses
+ (e.g. after non-zero retval in the middle of get_replies)
+ causing failures in everything subsequent (until disconnect).
+
+ The reads are done without any waiting.
+
+ It is possible some responses have not arrived yet,
+ but that is unlikely as Python is usually slower than VPP.
+
+ :param vpp_instance: Client instance to read from.
+ :param err_msg: Error message to use when overstepping timeout.
+ :param timeout: How long to try before giving up.
+ :type vpp_instance: vpp_papi.VPPApiClient
+ :type err_msg: str
+ :type timeout: float
+ :raises RuntimeError: If read keeps returning nonzero after timeout.
+ """
+ time_stop = time.monotonic() + timeout
+ while time.monotonic() < time_stop:
+ if PapiSocketExecutor._read_internal(vpp_instance, 0.0) is None:
+ return
+ raise RuntimeError(f"{err_msg}\nTimed out while draining.")
+
+ def _execute(self, err_msg, do_async, single_reply=True):
"""Turn internal command list into data and execute; return replies.
This method also clears the internal command list.
- IMPORTANT!
- Do not use this method in L1 keywords. Use:
- - get_replies()
- - get_reply()
- - get_sw_if_index()
- - get_details()
-
:param err_msg: The message used if the PAPI command(s) execution fails.
+ :param do_async: If true, assume one reply per command and do not wait
+ for each reply before sending next request.
+ Dump commands (and calls causing VPP-2033) need False.
+ :param single_reply: For sync emulation mode (cannot be False
+ if do_async is True). When false use control ping.
+ When true, wait for a single reply.
:type err_msg: str
- :returns: Papi responses parsed into a dict-like object,
+ :type do_async: bool
+ :type single_reply: bool
+ :returns: Papi replies parsed into a dict-like object,
with fields due to API (possibly including retval).
- :rtype: list of dict
+ :rtype: NoneType or list of dict
:raises RuntimeError: If the replies are not all correct.
"""
- vpp_instance = self.get_connected_client()
local_list = self._api_command_list
# Clear first as execution may fail.
self._api_command_list = list()
- replies = list()
+ if do_async:
+ if not single_reply:
+ raise RuntimeError("Async papi needs one reply per request.")
+ return self._execute_async(local_list, err_msg=err_msg)
+ return self._execute_sync(
+ local_list, err_msg=err_msg, single_reply=single_reply
+ )
+
+ def _execute_sync(self, local_list, err_msg, single_reply):
+ """Execute commands waiting for replies one by one; return replies.
+
+ This implementation either expects a single response per request,
+ or uses control ping to emulate sync PAPI calls.
+ Reliable, but slow. Required for dumps. Needed for calls
+ which trigger VPP-2033.
+
+ CRC checking is done for the replies (requests are checked in .add).
+
+ :param local_list: The list of PAPI commands to be executed on the node.
+ :param err_msg: The message used if the PAPI command(s) execution fails.
+ :param single_reply: When false use control ping.
+ When true, wait for a single reply.
+ :type local_list: list of dict
+ :type err_msg: str
+ :type single_reply: bool
+ :returns: Papi replies parsed into a dict-like object,
+ with fields due to API (possibly including retval).
+ :rtype: List[UserDict]
+ :raises AttributeError: If VPP does not know the command.
+ :raises RuntimeError: If the replies are not all correct.
+ """
+ vpp_instance = self.get_connected_client()
+ control_ping_fn = getattr(vpp_instance.api, "control_ping")
+ ret_list = list()
for command in local_list:
- api_name = command[u"api_name"]
+ api_name = command["api_name"]
papi_fn = getattr(vpp_instance.api, api_name)
+ replies = list()
try:
- try:
- reply = papi_fn(**command[u"api_args"])
- except (IOError, struct.error) as err:
- # Occasionally an error happens, try reconnect.
- logger.warn(f"Reconnect after error: {err!r}")
- vpp_instance.disconnect()
- # Testing shows immediate reconnect fails.
- time.sleep(1)
- vpp_instance.connect_sync(u"csit_socket")
- logger.trace(u"Reconnected.")
- reply = papi_fn(**command[u"api_args"])
+ # Send the command maybe followed by control ping.
+ main_context = papi_fn(**command["api_args"])
+ if single_reply:
+ replies.append(PapiSocketExecutor._read(vpp_instance))
+ else:
+ ping_context = control_ping_fn()
+ # Receive the replies.
+ while 1:
+ reply = PapiSocketExecutor._read(vpp_instance)
+ if reply is None:
+ raise RuntimeError(
+ f"{err_msg}\nSync PAPI timed out."
+ )
+ if reply.context == ping_context:
+ break
+ if reply.context != main_context:
+ raise RuntimeError(
+ f"{err_msg}\nUnexpected context: {reply!r}"
+ )
+ replies.append(reply)
except (AttributeError, IOError, struct.error) as err:
- raise AssertionError(err_msg) from err
- # *_dump commands return list of objects, convert, ordinary reply.
- if not isinstance(reply, list):
- reply = [reply]
- for item in reply:
- self.crc_checker.check_api_name(item.__class__.__name__)
- dict_item = dictize(item)
- if u"retval" in dict_item.keys():
- # *_details messages do not contain retval.
- retval = dict_item[u"retval"]
- if retval != exp_rv:
- # TODO: What exactly to log and raise here?
- raise AssertionError(
- f"Retval {retval!r} does not match expected "
- f"retval {exp_rv!r}"
- )
- replies.append(dict_item)
- return replies
+ # TODO: Add retry if it is still needed.
+ raise AssertionError(f"{err_msg}") from err
+ finally:
+ # Discard any unprocessed replies to avoid secondary failures.
+ PapiSocketExecutor._drain(vpp_instance, err_msg)
+ # Process replies for this command.
+ for reply in replies:
+ self.crc_checker.check_api_name(reply.__class__.__name__)
+ dictized_reply = dictize_and_check_retval(reply, err_msg)
+ ret_list.append(dictized_reply)
+ return ret_list
+
+ def _execute_async(self, local_list, err_msg):
+ """Read, process and return replies.
+
+ The messages were already sent by .add() in this mode,
+ local_list is used just so we know how many replies to read.
+
+ Beware: It is not clear what to do when socket read fails
+ in the middle of async processing.
+
+ The implementation assumes each command results in exactly one reply,
+ there is no reordering in either commands nor replies,
+ and context numbers increase one by one (and are matching for replies).
+
+ To speed processing up, reply CRC values are not checked.
+
+ The current implementation does not limit the number of messages
+ in-flight, we rely on VPP PAPI background thread to move replies
+ from socket to queue fast enough.
+
+ :param local_list: The list of PAPI commands to get replies for.
+ :param err_msg: The message used if the PAPI command(s) execution fails.
+ :type local_list: list
+ :type err_msg: str
+ :returns: Papi replies parsed into a dict-like object, with fields
+ according to API (possibly including retval).
+ :rtype: List[UserDict]
+ :raises RuntimeError: If the replies are not all correct.
+ """
+ vpp_instance = self.get_connected_client()
+ ret_list = list()
+ try:
+ for index, _ in enumerate(local_list):
+ # Blocks up to timeout.
+ reply = PapiSocketExecutor._read(vpp_instance)
+ if reply is None:
+ time_msg = f"PAPI async timeout: idx {index}"
+ raise RuntimeError(f"{err_msg}\n{time_msg}")
+ ret_list.append(dictize_and_check_retval(reply, err_msg))
+ finally:
+ # Discard any unprocessed replies to avoid secondary failures.
+ PapiSocketExecutor._drain(vpp_instance, err_msg)
+ return ret_list
class Disconnector:
@@ -829,8 +1122,7 @@ class Disconnector:
"""
cls = PapiSocketExecutor
# Iterate over copy of entries so deletions do not mess with iterator.
- keys_copy = list(cls.conn_cache.keys())
- for key in keys_copy:
+ for key in list(cls.conn_cache.keys()):
cls.disconnect_by_key(key)
@@ -870,6 +1162,8 @@ class PapiExecutor:
is "stats".
- the second parameter must be 'path' as it is used by PapiExecutor
method 'add'.
+ - even if the parameter contains multiple paths, there is only one
+ reply item (for each .add).
"""
def __init__(self, node):
@@ -889,17 +1183,15 @@ class PapiExecutor:
def __enter__(self):
try:
self._ssh.connect(self._node)
- except IOError:
- raise RuntimeError(
- f"Cannot open SSH connection to host {self._node[u'host']} "
- f"to execute PAPI command(s)"
- )
+ except IOError as err:
+ msg = f"PAPI: Cannot open SSH connection to {self._node['host']}"
+ raise RuntimeError(msg) from err
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self._ssh.disconnect(self._node)
- def add(self, csit_papi_command=u"vpp-stats", history=True, **kwargs):
+ def add(self, csit_papi_command="vpp-stats", history=True, **kwargs):
"""Add next command to internal command list; return self.
The argument name 'csit_papi_command' must be unique enough as it cannot
@@ -921,15 +1213,16 @@ class PapiExecutor:
self._node, csit_papi_command, **kwargs
)
self._api_command_list.append(
- dict(
- api_name=csit_papi_command, api_args=copy.deepcopy(kwargs)
- )
+ dict(api_name=csit_papi_command, api_args=copy.deepcopy(kwargs))
)
return self
def get_stats(
- self, err_msg=u"Failed to get statistics.", timeout=120,
- socket=Constants.SOCKSTAT_PATH):
+ self,
+ err_msg="Failed to get statistics.",
+ timeout=120,
+ socket=Constants.SOCKSTAT_PATH,
+ ):
"""Get VPP Stats from VPP Python API.
:param err_msg: The message used if the PAPI command(s) execution fails.
@@ -941,12 +1234,15 @@ class PapiExecutor:
:returns: Requested VPP statistics.
:rtype: list of dict
"""
- paths = [cmd[u"api_args"][u"path"] for cmd in self._api_command_list]
+ paths = [cmd["api_args"]["path"] for cmd in self._api_command_list]
self._api_command_list = list()
stdout = self._execute_papi(
- paths, method=u"stats", err_msg=err_msg, timeout=timeout,
- socket=socket
+ paths,
+ method="stats",
+ err_msg=err_msg,
+ timeout=timeout,
+ socket=socket,
)
return json.loads(stdout)
@@ -986,19 +1282,16 @@ class PapiExecutor:
api_data_processed = list()
for api in api_d:
api_args_processed = dict()
- for a_k, a_v in api[u"api_args"].items():
+ for a_k, a_v in api["api_args"].items():
api_args_processed[str(a_k)] = process_value(a_v)
api_data_processed.append(
- dict(
- api_name=api[u"api_name"],
- api_args=api_args_processed
- )
+ dict(api_name=api["api_name"], api_args=api_args_processed)
)
return api_data_processed
def _execute_papi(
- self, api_data, method=u"request", err_msg=u"", timeout=120,
- socket=None):
+ self, api_data, method="request", err_msg="", timeout=120, socket=None
+ ):
"""Execute PAPI command(s) on remote node and store the result.
:param api_data: List of APIs with their arguments.
@@ -1017,15 +1310,19 @@ class PapiExecutor:
:raises AssertionError: If PAPI command(s) execution has failed.
"""
if not api_data:
- raise RuntimeError(u"No API data provided.")
+ raise RuntimeError("No API data provided.")
- json_data = json.dumps(api_data) \
- if method in (u"stats", u"stats_request") \
+ json_data = (
+ json.dumps(api_data)
+ if method in ("stats", "stats_request")
else json.dumps(self._process_api_data(api_data))
+ )
- sock = f" --socket {socket}" if socket else u""
- cmd = f"{Constants.REMOTE_FW_DIR}/{Constants.RESOURCES_PAPI_PROVIDER}" \
+ sock = f" --socket {socket}" if socket else ""
+ cmd = (
+ f"{Constants.REMOTE_FW_DIR}/{Constants.RESOURCES_PAPI_PROVIDER}"
f" --method {method} --data '{json_data}'{sock}"
+ )
try:
ret_code, stdout, _ = self._ssh.exec_command_sudo(
cmd=cmd, timeout=timeout, log_stdout_err=False
@@ -1033,14 +1330,14 @@ class PapiExecutor:
# TODO: Fail on non-empty stderr?
except SSHTimeout:
logger.error(
- f"PAPI command(s) execution timeout on host "
- f"{self._node[u'host']}:\n{api_data}"
+ f"PAPI command(s) execution timeout on host"
+ f" {self._node['host']}:\n{api_data}"
)
raise
except Exception as exc:
raise RuntimeError(
- f"PAPI command(s) execution on host {self._node[u'host']} "
- f"failed: {api_data}"
+ f"PAPI command(s) execution on host {self._node['host']}"
+ f" failed: {api_data}"
) from exc
if ret_code != 0:
raise AssertionError(err_msg)
diff --git a/resources/libraries/python/PapiHistory.py b/resources/libraries/python/PapiHistory.py
index cacfbd6b19..18b2774908 100644
--- a/resources/libraries/python/PapiHistory.py
+++ b/resources/libraries/python/PapiHistory.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -48,7 +48,7 @@ class PapiHistory:
PapiHistory.reset_papi_history(node)
@staticmethod
- def add_to_papi_history(node, csit_papi_command, papi=True, **kwargs):
+ def add_to_papi_history(node, csit_papi_command, **kwargs):
"""Add command to PAPI command history on DUT node.
Repr strings are used for argument values.
@@ -70,29 +70,17 @@ class PapiHistory:
VPP Stats:
vpp-stats(path=['^/if', '/err/ip4-input', '/sys/node/ip4-input'])
- VAT:
- sw_interface_set_flags sw_if_index 3 admin-up link-up
-
:param node: DUT node to add command to PAPI command history for.
:param csit_papi_command: Command to be added to PAPI command history.
- :param papi: Says if the command to store is PAPi or VAT. Remove when
- VAT executor is completely removed.
:param kwargs: Optional key-value arguments.
:type node: dict
:type csit_papi_command: str
- :type papi: bool
:type kwargs: dict
"""
- if papi:
- args = list()
- for key, val in kwargs.items():
- args.append(f"{key}={val!r}")
- item = f"{csit_papi_command}({u','.join(args)})"
- else:
- # This else part is here to store VAT commands.
- # VAT history is not used.
- # TODO: Remove when VatExecutor is completely removed.
- item = f"{csit_papi_command}"
+ args = list()
+ for key, val in kwargs.items():
+ args.append(f"{key}={val!r}")
+ item = f"{csit_papi_command}({u','.join(args)})"
DICT__DUTS_PAPI_HISTORY[node[u"host"]].append(item)
@staticmethod
@@ -120,4 +108,9 @@ class PapiHistory:
PapiHistory.show_papi_history(node)
-PapiHistory.reset_papi_history_on_all_duts(DICT__nodes)
+# This module can be imported outside usual Robot test context,
+# e.g. in pylint or by tools generating docs from docstrings.
+# For the tools to work, we need to avoid processing
+# when DICT__nodes value is not usable.
+if DICT__nodes:
+ PapiHistory.reset_papi_history_on_all_duts(DICT__nodes)
diff --git a/resources/libraries/python/PerfUtil.py b/resources/libraries/python/PerfUtil.py
deleted file mode 100644
index 6444cc595f..0000000000
--- a/resources/libraries/python/PerfUtil.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Linux perf utility."""
-
-from resources.libraries.python.Constants import Constants
-from resources.libraries.python.OptionString import OptionString
-from resources.libraries.python.ssh import exec_cmd
-from resources.libraries.python.topology import NodeType
-
-__all__ = [u"PerfUtil"]
-
-
-class PerfUtil:
- """Class contains methods for perf utility."""
-
- @staticmethod
- def perf_stat(node, cpu_list=None, duration=1):
- """Get perf stat read for duration.
-
- :param node: Node in the topology.
- :param cpu_list: CPU List as a string separated by comma.
- :param duration: Measure time in seconds.
- :type node: dict
- :type cpu_list: str
- :type duration: int
- """
- if cpu_list:
- cpu_list = list(dict.fromkeys(cpu_list.split(u",")))
- cpu_list = ",".join(str(cpu) for cpu in cpu_list)
-
- cmd_opts = OptionString(prefix=u"--")
- cmd_opts.add(u"no-aggr")
- cmd_opts.add_with_value_if(
- u"cpu", cpu_list, cpu_list
- )
- cmd_opts.add_if(
- u"all-cpus", not(cpu_list)
- )
- cmd_opts.add_with_value_if(
- u"event", f"'{{{Constants.PERF_STAT_EVENTS}}}'",
- Constants.PERF_STAT_EVENTS
- )
- cmd_opts.add_with_value(
- u"interval-print", 1000
- )
- cmd_opts.add_with_value(
- u"field-separator", u"';'"
- )
-
- cmd_base = OptionString()
- cmd_base.add(f"perf stat")
- cmd_base.extend(cmd_opts)
- cmd_base.add(u"--")
- cmd_base.add_with_value(u"sleep", int(duration))
-
- exec_cmd(node, cmd_base, sudo=True)
-
- @staticmethod
- def perf_stat_on_all_duts(nodes, cpu_list=None, duration=1):
- """Get perf stat read for duration on all DUTs.
-
- :param nodes: Nodes in the topology.
- :param cpu_list: CPU List.
- :param duration: Measure time in seconds.
- :type nodes: dict
- :type cpu_list: str
- :type duration: int
- """
- for node in nodes.values():
- if node[u"type"] == NodeType.DUT:
- PerfUtil.perf_stat(node, cpu_list=cpu_list, duration=duration)
diff --git a/resources/libraries/python/Policer.py b/resources/libraries/python/Policer.py
index 37b1c7f745..28ed0b0aa9 100644
--- a/resources/libraries/python/Policer.py
+++ b/resources/libraries/python/Policer.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -72,7 +72,7 @@ class Policer:
def policer_set_configuration(
node, policer_name, cir, eir, cbs, ebs, rate_type, round_type,
policer_type, conform_action_type, exceed_action_type,
- violate_action_type, color_aware, is_add=True, conform_dscp=None,
+ violate_action_type, color_aware, conform_dscp=None,
exceed_dscp=None, violate_dscp=None):
"""Configure policer on VPP node.
@@ -89,7 +89,6 @@ class Policer:
:param exceed_action_type: Exceed action type.
:param violate_action_type: Violate action type.
:param color_aware: Color-blind (cb) or color-aware (ca).
- :param is_add: Add policer if True, else delete.
:param conform_dscp: DSCP for conform mark_and_transmit action.
:param exceed_dscp: DSCP for exceed mark_and_transmit action.
:param violate_dscp: DSCP for vilate mark_and_transmit action.
@@ -106,7 +105,6 @@ class Policer:
:type exceed_action_type: str
:type violate_action_type: str
:type color_aware: str
- :type is_add: bool
:type conform_dscp: str
:type exceed_dscp: str
:type violate_dscp: str
@@ -130,10 +128,8 @@ class Policer:
else 0
)
- cmd = u"policer_add_del"
- args = dict(
- is_add=is_add,
- name=str(policer_name),
+ cmd = u"policer_add"
+ infos = dict(
cir=int(cir),
eir=int(eir),
cb=int(cbs),
@@ -148,6 +144,10 @@ class Policer:
violate_action=violate_action,
color_aware=bool(color_aware == u"'ca'")
)
+ args = dict(
+ name=str(policer_name),
+ infos=infos,
+ )
err_msg = f"Failed to configure policer {policer_name} " \
f"on host {node['host']}"
diff --git a/resources/libraries/python/QATUtil.py b/resources/libraries/python/QATUtil.py
new file mode 100644
index 0000000000..e16221fb30
--- /dev/null
+++ b/resources/libraries/python/QATUtil.py
@@ -0,0 +1,92 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""QAT util library."""
+
+from resources.libraries.python.DUTSetup import DUTSetup
+from resources.libraries.python.topology import NodeType, Topology
+from resources.libraries.python.VPPUtil import VPPUtil
+from resources.libraries.python.ssh import exec_cmd_no_error
+
+
+class QATUtil:
+ """Contains methods for setting up QATs."""
+
+ @staticmethod
+ def crypto_device_verify_on_all_duts(nodes):
+ """Verify if Crypto QAT device and its virtual functions are initialized
+ on all DUTs.
+
+ :param nodes: Nodes in the topology.
+ :type nodes: dict
+ """
+ VPPUtil.stop_vpp_service_on_all_duts(nodes)
+
+ for node in nodes.values():
+ if node["type"] == NodeType.DUT:
+ cryptodevs = Topology.get_cryptodev(node)
+ if not cryptodevs:
+ return
+ for device in cryptodevs.values():
+ QATUtil.crypto_device_init(node, device)
+
+ @staticmethod
+ def crypto_device_init(node, device):
+ """Init Crypto QAT device virtual functions on DUT.
+
+ :param node: DUT node.
+ :device: Crypto device entry from topology file.
+ :type node: dict
+ :type device: dict
+ """
+ DUTSetup.verify_kernel_module(node, device["module"], force_load=True)
+
+ current_driver = DUTSetup.get_pci_dev_driver(
+ node, device["pci_address"].replace(":", r"\:")
+ )
+ if current_driver is not None:
+ DUTSetup.pci_driver_unbind(node, device["pci_address"])
+ # Bind to kernel driver.
+ DUTSetup.pci_driver_bind(node, device["pci_address"], device["driver"])
+
+ cmd = f"adf_ctl status | grep {device['pci_address']} | "
+ cmd += "awk '{print $1}'"
+ stdout, _ = exec_cmd_no_error(
+ node, cmd, sudo=True, message="Failed to check crypto device!"
+ )
+ if stdout.strip():
+ qat_dev = stdout.split("_")[-1]
+ conf_file = f"/etc/{device['driver']}_{qat_dev.strip()}.conf"
+ exec_cmd_no_error(
+ node, f"adf_ctl --config {conf_file} {stdout.strip()} restart",
+ sudo=True, message="Failed to restart crypto device!"
+ )
+ else:
+ raise ValueError("Crypto device error")
+
+ # Initialize QAT VFs.
+ if int(device["numvfs"]) > 0:
+ path = f"drivers/{device['driver']}"
+ DUTSetup.set_sriov_numvfs(
+ node, device["pci_address"], path=path,
+ numvfs=device["numvfs"]
+ )
+
+ if device["driver"] not in ["c4xxx"]:
+ for cvf in range(int(device["numvfs"])):
+ DUTSetup.pci_vf_driver_unbind(
+ node, device["pci_address"], cvf
+ )
+ DUTSetup.pci_vf_driver_bind(
+ node, device["pci_address"], cvf, "vfio-pci"
+ )
diff --git a/resources/libraries/python/QemuManager.py b/resources/libraries/python/QemuManager.py
index 766372ad9c..259b4c6981 100644
--- a/resources/libraries/python/QemuManager.py
+++ b/resources/libraries/python/QemuManager.py
@@ -154,7 +154,8 @@ class QemuManager:
smp=len(self.machines_affinity[name]),
mem=4096,
vnf=kwargs[u"vnf"],
- img=Constants.QEMU_VM_KERNEL
+ img=Constants.QEMU_VM_KERNEL,
+ page_size=kwargs[u"page_size"]
)
self.machines[name].add_default_params()
self.machines[name].add_kernelvm_params()
diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py
index 51fba6105e..2df89ee87c 100644
--- a/resources/libraries/python/QemuUtils.py
+++ b/resources/libraries/python/QemuUtils.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022-2023 Cisco and/or its affiliates.
# 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:
@@ -42,7 +42,7 @@ class QemuUtils:
def __init__(
self, node, qemu_id=1, smp=1, mem=512, vnf=None,
- img=Constants.QEMU_VM_IMAGE):
+ img=Constants.QEMU_VM_IMAGE, page_size=u""):
"""Initialize QemuUtil class.
:param node: Node to run QEMU on.
@@ -51,12 +51,14 @@ class QemuUtils:
:param mem: Amount of memory.
:param vnf: Network function workload.
:param img: QEMU disk image or kernel image path.
+ :param page_size: Hugepage Size.
:type node: dict
:type qemu_id: int
:type smp: int
:type mem: int
:type vnf: str
:type img: str
+ :type page_size: str
"""
self._nic_id = 0
self._node = node
@@ -65,16 +67,13 @@ class QemuUtils:
# Architecture specific options
if self._arch == u"aarch64":
- dpdk_target = u"arm64-armv8a"
self._opt[u"machine_args"] = \
u"virt,accel=kvm,usb=off,mem-merge=off,gic-version=3"
self._opt[u"console"] = u"ttyAMA0"
else:
- dpdk_target = u"x86_64-native"
self._opt[u"machine_args"] = u"pc,accel=kvm,usb=off,mem-merge=off"
self._opt[u"console"] = u"ttyS0"
- self._testpmd_path = f"{Constants.QEMU_VM_DPDK}/" \
- f"{dpdk_target}-linux-gcc/app"
+ self._testpmd_path = f"{Constants.QEMU_VM_DPDK}/build/app"
self._vm_info = {
u"host": node[u"host"],
u"type": NodeType.VM,
@@ -94,6 +93,8 @@ class QemuUtils:
self._opt[u"smp"] = int(smp)
self._opt[u"img"] = img
self._opt[u"vnf"] = vnf
+ self._opt[u"page_size"] = page_size
+
# Temporary files.
self._temp = dict()
self._temp[u"log"] = f"/tmp/serial_{qemu_id}.log"
@@ -118,6 +119,9 @@ class QemuUtils:
def add_default_params(self):
"""Set default QEMU command line parameters."""
+ mem_path = f"/dev/hugepages1G" \
+ if self._opt[u"page_size"] == u"1G" else u"/dev/hugepages"
+
self._params.add(u"daemonize")
self._params.add(u"nodefaults")
self._params.add_with_value(
@@ -136,11 +140,11 @@ class QemuUtils:
)
self._params.add_with_value(
u"object", f"memory-backend-file,id=mem,"
- f"size={self._opt.get(u'mem')}M,mem-path=/dev/hugepages,share=on"
+ f"size={self._opt.get(u'mem')}M,"
+ f"mem-path={mem_path},share=on"
)
self._params.add_with_value(u"m", f"{self._opt.get(u'mem')}M")
self._params.add_with_value(u"numa", u"node,memdev=mem")
- self._params.add_with_value(u"balloon", u"none")
def add_net_user(self, net="10.0.2.0/24"):
"""Set managment port forwarding."""
@@ -206,6 +210,8 @@ class QemuUtils:
def add_kernelvm_params(self):
"""Set KernelVM QEMU parameters."""
+ hugepages = 3 if self._opt[u"page_size"] == u"1G" else 512
+
self._params.add_with_value(
u"serial", f"file:{self._temp.get(u'log')}"
)
@@ -224,7 +230,8 @@ class QemuUtils:
self._params.add_with_value(
u"append", f"'ro rootfstype=9p rootflags=trans=virtio "
f"root=virtioroot console={self._opt.get(u'console')} "
- f"tsc=reliable hugepages=512 "
+ f"tsc=reliable hugepages={hugepages} "
+ f"hugepagesz={self._opt.get(u'page_size')} "
f"init={self._temp.get(u'ini')} fastboot'"
)
@@ -247,9 +254,11 @@ class QemuUtils:
:type virtio_feature_mask: int
"""
self._nic_id += 1
+ if jumbo_frames:
+ logger.debug(u"Jumbo frames temporarily disabled!")
self._params.add_with_value(
u"chardev", f"socket,id=char{self._nic_id},"
- f"path={socket}{u',server' if server is True else u''}"
+ f"path={socket}{u',server=on' if server is True else u''}"
)
self._params.add_with_value(
u"netdev", f"vhost-user,id=vhost{self._nic_id},"
@@ -315,9 +324,10 @@ class QemuUtils:
vpp_config.add_unix_exec(running)
vpp_config.add_socksvr()
vpp_config.add_main_heap_size(u"512M")
- vpp_config.add_main_heap_page_size(u"2M")
+ vpp_config.add_main_heap_page_size(self._opt[u"page_size"])
+ vpp_config.add_default_hugepage_size(self._opt[u"page_size"])
vpp_config.add_statseg_size(u"512M")
- vpp_config.add_statseg_page_size(u"2M")
+ vpp_config.add_statseg_page_size(self._opt[u"page_size"])
vpp_config.add_statseg_per_node_counters(u"on")
vpp_config.add_buffers_per_numa(107520)
vpp_config.add_cpu_main_core(u"0")
@@ -368,7 +378,7 @@ class QemuUtils:
eal_pci_whitelist0=u"0000:00:06.0",
eal_pci_whitelist1=u"0000:00:07.0",
eal_in_memory=True,
- pmd_num_mbufs=16384,
+ pmd_num_mbufs=32768,
pmd_fwd_mode=u"io",
pmd_nb_ports=u"2",
pmd_portmask=u"0x3",
@@ -395,7 +405,7 @@ class QemuUtils:
eal_pci_whitelist0=u"0000:00:06.0",
eal_pci_whitelist1=u"0000:00:07.0",
eal_in_memory=True,
- pmd_num_mbufs=16384,
+ pmd_num_mbufs=32768,
pmd_fwd_mode=u"mac",
pmd_nb_ports=u"2",
pmd_portmask=u"0x3",
@@ -595,7 +605,7 @@ class QemuUtils:
except AttributeError:
self._wait_default()
- def _wait_default(self, retries=60):
+ def _wait_default(self, retries=120):
"""Wait until QEMU with VPP is booted.
:param retries: Number of retries.
@@ -722,7 +732,9 @@ class QemuUtils:
message = f"QEMU: Start failed on {self._node[u'host']}!"
try:
DUTSetup.check_huge_page(
- self._node, u"/dev/hugepages", int(self._opt.get(u"mem")))
+ self._node, self._opt.get(u"mem-path"),
+ int(self._opt.get(u"mem"))
+ )
exec_cmd_no_error(
self._node, cmd_opts, timeout=300, sudo=True, message=message
diff --git a/resources/libraries/python/SRv6.py b/resources/libraries/python/SRv6.py
index 4ff8866bda..0170df5ef6 100644
--- a/resources/libraries/python/SRv6.py
+++ b/resources/libraries/python/SRv6.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -222,13 +222,14 @@ class SRv6:
:type sid_list: list
:type mode: str
"""
- cmd = u"sr_policy_add"
+ cmd = u"sr_policy_add_v2"
args = dict(
bsid_addr=IPv6Address(bsid).packed,
weight=1,
is_encap=bool(mode == u"encap"),
- is_spray=False,
- sids=SRv6.create_srv6_sid_list(sid_list)
+ type=0, # Neither SPRAY nor TEF are needed yet.
+ sids=SRv6.create_srv6_sid_list(sid_list),
+ # encap_src is optional, do not set yet.
)
err_msg = f"Failed to add SR policy for BindingSID {bsid} " \
f"on host {node[u'host']}"
@@ -243,7 +244,7 @@ class SRv6:
:param node: Given node to show SRv6 policies on.
:type node: dict
"""
- cmd = u"sr_policies_dump"
+ cmd = u"sr_policies_v2_dump"
PapiSocketExecutor.dump_and_log(node, (cmd,))
@staticmethod
diff --git a/resources/libraries/python/SchedUtils.py b/resources/libraries/python/SchedUtils.py
index bb14c29de8..cfc75344f9 100644
--- a/resources/libraries/python/SchedUtils.py
+++ b/resources/libraries/python/SchedUtils.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/SetupFramework.py b/resources/libraries/python/SetupFramework.py
index 45447e923b..95ca8a7d51 100644
--- a/resources/libraries/python/SetupFramework.py
+++ b/resources/libraries/python/SetupFramework.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -19,6 +19,7 @@ supposed to end up here.
from os import environ, remove
from tempfile import NamedTemporaryFile
import threading
+import traceback
from robot.api import logger
@@ -55,7 +56,8 @@ def pack_framework_dir():
run(
[
u"tar", u"--sparse", u"--exclude-vcs", u"--exclude=output*.xml",
- u"--exclude=./tmp", u"-zcf", file_name, u"."
+ u"--exclude=./tmp", u"--exclude=./env", u"--exclude=./.git",
+ u"-zcf", file_name, u"."
], msg=u"Could not pack testing framework"
)
@@ -104,7 +106,7 @@ def extract_tarball_at_node(tarball, node):
node, cmd,
message=f"Failed to extract {tarball} at node {node[u'type']} "
f"host {node[u'host']}, port {node[u'port']}",
- timeout=30, include_reason=True
+ timeout=600, include_reason=True
)
logger.console(
f"Extracting tarball to {con.REMOTE_FW_DIR} on {node[u'type']} "
@@ -115,9 +117,13 @@ def extract_tarball_at_node(tarball, node):
def create_env_directory_at_node(node):
"""Create fresh virtualenv to a directory, install pip requirements.
+ Return stdout and stderr of the command,
+ so we see which installs are behaving weird (e.g. attempting download).
+
:param node: Node to create virtualenv on.
:type node: dict
- :returns: nothing
+ :returns: Stdout and stderr.
+ :rtype: str, str
:raises RuntimeError: When failed to setup virtualenv.
"""
logger.console(
@@ -126,9 +132,10 @@ def create_env_directory_at_node(node):
)
cmd = f"cd {con.REMOTE_FW_DIR} && rm -rf env && virtualenv " \
f"-p $(which python3) --system-site-packages --never-download env " \
- f"&& source env/bin/activate && pip3 install -r requirements.txt"
- exec_cmd_no_error(
- node, cmd, timeout=100, include_reason=True,
+ f"&& source env/bin/activate && ANSIBLE_SKIP_CONFLICT_CHECK=1 " \
+ f"pip3 install -r requirements.txt"
+ stdout, stderr = exec_cmd_no_error(
+ node, cmd, timeout=300, include_reason=True,
message=f"Failed install at node {node[u'type']} host {node[u'host']}, "
f"port {node[u'port']}"
)
@@ -136,19 +143,22 @@ def create_env_directory_at_node(node):
f"Virtualenv setup on {node[u'type']} host {node[u'host']}, "
f"port {node[u'port']} done."
)
+ return stdout, stderr
-def setup_node(node, tarball, remote_tarball, results=None):
+def setup_node(node, tarball, remote_tarball, results=None, logs=None):
"""Copy a tarball to a node and extract it.
:param node: A node where the tarball will be copied and extracted.
:param tarball: Local path of tarball to be copied.
:param remote_tarball: Remote path of the tarball.
:param results: A list where to store the result of node setup, optional.
+ :param logs: A list where to store anything that should be logged.
:type node: dict
:type tarball: str
:type remote_tarball: str
:type results: list
+ :type logs: list
:returns: True - success, False - error
:rtype: bool
"""
@@ -156,12 +166,18 @@ def setup_node(node, tarball, remote_tarball, results=None):
copy_tarball_to_node(tarball, node)
extract_tarball_at_node(remote_tarball, node)
if node[u"type"] == NodeType.TG:
- create_env_directory_at_node(node)
- except RuntimeError as exc:
- logger.console(
- f"Node {node[u'type']} host {node[u'host']}, port {node[u'port']} "
- f"setup failed, error: {exc!r}"
- )
+ stdout, stderr = create_env_directory_at_node(node)
+ if isinstance(logs, list):
+ logs.append(f"{node[u'host']} Env stdout: {stdout}")
+ logs.append(f"{node[u'host']} Env stderr: {stderr}")
+ except Exception:
+ # any exception must result in result = False
+ # since this runs in a thread and can't be caught anywhere else
+ err_msg = f"Node {node[u'type']} host {node[u'host']}, " \
+ f"port {node[u'port']} setup failed."
+ logger.console(err_msg)
+ if isinstance(logs, list):
+ logs.append(f"{err_msg} Exception: {traceback.format_exc()}")
result = False
else:
logger.console(
@@ -199,7 +215,7 @@ def delete_framework_dir(node):
node, f"sudo rm -rf {con.REMOTE_FW_DIR}",
message=f"Framework delete failed at node {node[u'type']} "
f"host {node[u'host']}, port {node[u'port']}",
- timeout=100, include_reason=True
+ timeout=100, include_reason=True,
)
logger.console(
f"Deleting framework directory on {node[u'type']} host {node[u'host']},"
@@ -207,23 +223,26 @@ def delete_framework_dir(node):
)
-def cleanup_node(node, results=None):
+def cleanup_node(node, results=None, logs=None):
"""Delete a tarball from a node.
:param node: A node where the tarball will be delete.
:param results: A list where to store the result of node cleanup, optional.
+ :param logs: A list where to store anything that should be logged.
:type node: dict
:type results: list
+ :type logs: list
:returns: True - success, False - error
:rtype: bool
"""
try:
delete_framework_dir(node)
- except RuntimeError:
- logger.error(
- f"Cleanup of node {node[u'type']} host {node[u'host']}, "
- f"port {node[u'port']} failed."
- )
+ except Exception:
+ err_msg = f"Cleanup of node {node[u'type']} host {node[u'host']}, " \
+ f"port {node[u'port']} failed."
+ logger.console(err_msg)
+ if isinstance(logs, list):
+ logs.append(f"{err_msg} Exception: {traceback.format_exc()}")
result = False
else:
logger.console(
@@ -240,9 +259,9 @@ def cleanup_node(node, results=None):
class SetupFramework:
"""Setup suite run on topology nodes.
- Many VAT/CLI based tests need the scripts at remote hosts before executing
- them. This class packs the whole testing directory and copies it over
- to all nodes in topology under /tmp/
+ Some tests need the scripts at remote hosts before executing them.
+ This class packs the whole testing directory and copies it over
+ to all nodes in topology under /tmp/.
"""
@staticmethod
@@ -261,16 +280,17 @@ class SetupFramework:
remote_tarball = f"{tarball}"
results = list()
+ logs = list()
threads = list()
for node in nodes.values():
- args = node, tarball, remote_tarball, results
+ args = node, tarball, remote_tarball, results, logs
thread = threading.Thread(target=setup_node, args=args)
thread.start()
threads.append(thread)
logger.info(
- f"Executing node setups in parallel, waiting for threads to end"
+ u"Executing node setups in parallel, waiting for threads to end."
)
for thread in threads:
@@ -278,6 +298,9 @@ class SetupFramework:
logger.info(f"Results: {results}")
+ for log in logs:
+ logger.trace(log)
+
delete_local_tarball(tarball)
if all(results):
logger.console(u"All nodes are ready.")
@@ -303,10 +326,12 @@ class CleanupFramework:
"""
results = list()
+ logs = list()
threads = list()
for node in nodes.values():
- thread = threading.Thread(target=cleanup_node, args=(node, results))
+ thread = threading.Thread(target=cleanup_node,
+ args=(node, results, logs))
thread.start()
threads.append(thread)
@@ -319,6 +344,9 @@ class CleanupFramework:
logger.info(f"Results: {results}")
+ for log in logs:
+ logger.trace(log)
+
if all(results):
logger.console(u"All nodes cleaned up.")
else:
diff --git a/resources/libraries/python/SysctlUtil.py b/resources/libraries/python/SysctlUtil.py
index f8c169a833..6c5e9e2081 100644
--- a/resources/libraries/python/SysctlUtil.py
+++ b/resources/libraries/python/SysctlUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/TGSetup.py b/resources/libraries/python/TGSetup.py
index e105921e23..7b3cee4098 100644
--- a/resources/libraries/python/TGSetup.py
+++ b/resources/libraries/python/TGSetup.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/TRexConfigGenerator.py b/resources/libraries/python/TRexConfigGenerator.py
new file mode 100644
index 0000000000..c50b42610c
--- /dev/null
+++ b/resources/libraries/python/TRexConfigGenerator.py
@@ -0,0 +1,301 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""TRex Configuration File Generator library."""
+
+import re
+import yaml
+
+from resources.libraries.python.Constants import Constants
+from resources.libraries.python.CpuUtils import CpuUtils
+from resources.libraries.python.ssh import exec_cmd_no_error
+from resources.libraries.python.topology import NodeType, NodeSubTypeTG
+from resources.libraries.python.topology import Topology
+
+
+__all__ = ["TrexConfigGenerator", "TrexConfig"]
+
+def pci_dev_check(pci_dev):
+ """Check if provided PCI address is in correct format.
+
+ :param pci_dev: PCI address (expected format: xxxx:xx:xx.x).
+ :type pci_dev: str
+ :returns: True if PCI address is in correct format.
+ :rtype: bool
+ :raises ValueError: If PCI address is in incorrect format.
+ """
+ pattern = re.compile(
+ r"^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}\.[0-9A-Fa-f]$"
+ )
+ if not re.match(pattern, pci_dev):
+ raise ValueError(
+ f"PCI address {pci_dev} is not in valid format xxxx:xx:xx.x"
+ )
+ return True
+
+
+class TrexConfigGenerator:
+ """TRex Startup Configuration File Generator."""
+
+ def __init__(self):
+ """Initialize library.
+ """
+ self._node = ""
+ self._node_key = ""
+ self._node_config = dict()
+ self._node_serialized_config = ""
+ self._startup_configuration_path = "/etc/trex_cfg.yaml"
+
+ def set_node(self, node, node_key=None):
+ """Set topology node.
+
+ :param node: Node to store configuration on.
+ :param node_key: Topology node key.
+ :type node: dict
+ :type node_key: str
+ :raises RuntimeError: If Node type is not TG and subtype is not TREX.
+ """
+ if node.get("type") is None:
+ msg = "Node type is not defined!"
+ elif node["type"] != NodeType.TG:
+ msg = f"Node type is {node['type']!r}, not a TG!"
+ elif node.get("subtype") is None:
+ msg = "TG subtype is not defined"
+ elif node["subtype"] != NodeSubTypeTG.TREX:
+ msg = f"TG subtype {node['subtype']!r} is not supported"
+ else:
+ self._node = node
+ self._node_key = node_key
+ return
+ raise RuntimeError(msg)
+
+ def get_serialized_config(self):
+ """Get serialized startup configuration in YAML format.
+
+ :returns: Startup configuration in YAML format.
+ :rtype: str
+ """
+ self.serialize_config(self._node_config)
+ return self._node_serialized_config
+
+ def serialize_config(self, obj):
+ """Serialize the startup configuration in YAML format.
+
+ :param obj: Python Object to print.
+ :type obj: Obj
+ """
+ self._node_serialized_config = yaml.dump([obj], default_style=None)
+
+ def add_config_item(self, config, value, path):
+ """Add startup configuration item.
+
+ :param config: Startup configuration of node.
+ :param value: Value to insert.
+ :param path: Path where to insert item.
+ :type config: dict
+ :type value: str
+ :type path: list
+ """
+ if len(path) == 1:
+ config[path[0]] = value
+ return
+ if path[0] not in config:
+ config[path[0]] = dict()
+ elif isinstance(config[path[0]], str):
+ config[path[0]] = dict() if config[path[0]] == "" \
+ else {config[path[0]]: ""}
+ self.add_config_item(config[path[0]], value, path[1:])
+
+ def add_version(self, value=2):
+ """Add config file version.
+
+ :param value: Version of configuration file.
+ :type value: int
+ """
+ path = ["version"]
+ self.add_config_item(self._node_config, value, path)
+
+ def add_c(self, value):
+ """Add core count.
+
+ :param value: Core count.
+ :type value: int
+ """
+ path = ["c"]
+ self.add_config_item(self._node_config, value, path)
+
+ def add_limit_memory(self, value):
+ """Add memory limit.
+
+ :param value: Memory limit.
+ :type value: str
+ """
+ path = ["limit_memory"]
+ self.add_config_item(self._node_config, value, path)
+
+ def add_interfaces(self, devices):
+ """Add PCI device configuration.
+
+ :param devices: PCI device(s) (format xxxx:xx:xx.x).
+ :type devices: list(str)
+ """
+ for device in devices:
+ pci_dev_check(device)
+
+ path = ["interfaces"]
+ self.add_config_item(self._node_config, devices, path)
+
+ def add_rx_desc(self, value):
+ """Add RX descriptors.
+
+ :param value: RX descriptors count.
+ :type value: int
+ """
+ path = ["rx_desc"]
+ self.add_config_item(self._node_config, value, path)
+
+ def add_tx_desc(self, value):
+ """Add TX descriptors.
+
+ :param value: TX descriptors count.
+ :type value: int
+ """
+ path = ["tx_desc"]
+ self.add_config_item(self._node_config, value, path)
+
+ def add_port_info(self, value):
+ """Add port information configuration.
+
+ :param value: Port information configuration.
+ :type value: list(dict)
+ """
+ path = ["port_info"]
+ self.add_config_item(self._node_config, value, path)
+
+ def add_platform_master_thread_id(self, value):
+ """Add platform master thread ID.
+
+ :param value: Master thread ID.
+ :type value: int
+ """
+ path = ["platform", "master_thread_id"]
+ self.add_config_item(self._node_config, value, path)
+
+ def add_platform_latency_thread_id(self, value):
+ """Add platform latency thread ID.
+
+ :param value: Latency thread ID.
+ :type value: int
+ """
+ path = ["platform", "latency_thread_id"]
+ self.add_config_item(self._node_config, value, path)
+
+ def add_platform_dual_if(self, value):
+ """Add platform dual interface configuration.
+
+ :param value: Dual interface configuration.
+ :type value: list(dict)
+ """
+ path = ["platform", "dual_if"]
+ self.add_config_item(self._node_config, value, path)
+
+ def write_config(self, path=None):
+ """Generate and write TRex startup configuration to file.
+
+ :param path: Override startup configuration path.
+ :type path: str
+ """
+ self.serialize_config(self._node_config)
+
+ if path is None:
+ path = self._startup_configuration_path
+
+ command = f"echo \"{self._node_serialized_config}\" | sudo tee {path}"
+ message = "Writing TRex startup configuration failed!"
+ exec_cmd_no_error(self._node, command, message=message)
+
+
+class TrexConfig:
+ """TRex Configuration Class.
+ """
+ @staticmethod
+ def add_startup_configuration(node, tg_topology):
+ """Apply TRex startup configuration.
+
+ :param node: TRex node in the topology.
+ :param tg_topology: Ordered TRex links.
+ :type node: dict
+ :type tg_topology: list(dict)
+ """
+ pci_addresses = list()
+ dual_if = list()
+ port_info = list()
+ master_thread_id = None
+ latency_thread_id = None
+ cores = None
+ sockets = list()
+
+ for idx, link in enumerate(tg_topology):
+ pci_addresses.append(
+ Topology().get_interface_pci_addr(node, link["interface"])
+ )
+ if len(tg_topology) > 2:
+ # Multiple dual_ifs must not share the cores.
+ tg_dtc = Constants.TREX_CORE_COUNT_MULTI
+ tg_dtc_offset = Constants.TREX_CORE_COUNT_MULTI * (idx // 2)
+ else:
+ # Single dual_if can share cores.
+ tg_dtc = Constants.TREX_CORE_COUNT
+ tg_dtc_offset = 0
+ master_thread_id, latency_thread_id, socket, threads = \
+ CpuUtils.get_affinity_trex(
+ node, link["interface"], tg_dtc=tg_dtc,
+ tg_dtc_offset=tg_dtc_offset
+ )
+ dual_if.append(dict(socket=socket, threads=threads))
+ cores = len(threads)
+ port_info.append(
+ dict(
+ src_mac=Topology().get_interface_mac(
+ node, link["interface"]
+ ),
+ dest_mac=link["dst_mac"]
+ )
+ )
+ sockets.append(socket)
+
+ limit_memory = f"{Constants.TREX_LIMIT_MEMORY}"
+ if len(tg_topology) <= 2 and 0 in sockets and 1 in sockets:
+ limit_memory = (
+ f"{Constants.TREX_LIMIT_MEMORY},{Constants.TREX_LIMIT_MEMORY}"
+ )
+ if len(tg_topology) > 2:
+ limit_memory = (
+ f"{Constants.TREX_LIMIT_MEMORY_MULTI}"
+ )
+
+ trex_config = TrexConfigGenerator()
+ trex_config.set_node(node)
+ trex_config.add_version()
+ trex_config.add_interfaces(pci_addresses)
+ trex_config.add_c(cores)
+ trex_config.add_limit_memory(limit_memory)
+ trex_config.add_port_info(port_info)
+ if Constants.TREX_RX_DESCRIPTORS_COUNT != 0:
+ trex_config.add_rx_desc(Constants.TREX_RX_DESCRIPTORS_COUNT)
+ if Constants.TREX_TX_DESCRIPTORS_COUNT != 0:
+ trex_config.add_rx_desc(Constants.TREX_TX_DESCRIPTORS_COUNT)
+ trex_config.add_platform_master_thread_id(int(master_thread_id))
+ trex_config.add_platform_latency_thread_id(int(latency_thread_id))
+ trex_config.add_platform_dual_if(dual_if)
+ trex_config.write_config()
diff --git a/resources/libraries/python/Tap.py b/resources/libraries/python/Tap.py
index c729d602b1..7380344b72 100644
--- a/resources/libraries/python/Tap.py
+++ b/resources/libraries/python/Tap.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -64,7 +64,7 @@ class Tap:
:returns: Returns a interface index.
:rtype: int
"""
- cmd = u"tap_create_v2"
+ cmd = u"tap_create_v3"
args = dict(
id=Constants.BITWISE_NON_ZERO,
use_random_mac=bool(mac is None),
@@ -210,7 +210,7 @@ class TapFeatureMask:
@staticmethod
def is_feature_enabled(tap_feature_mask, tap_feature_flag):
"""Checks if concrete tap feature is enabled within
- tap_feature_mask
+ tap_feature_mask
:param tap_feature_mask: Mask of enabled tap features
:param tap_feature_flag: Checked tap feature
:type tap_feature_mask: int
diff --git a/resources/libraries/python/TelemetryUtil.py b/resources/libraries/python/TelemetryUtil.py
new file mode 100644
index 0000000000..63d0bf60a7
--- /dev/null
+++ b/resources/libraries/python/TelemetryUtil.py
@@ -0,0 +1,99 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""Telemetry utility."""
+
+from resources.libraries.python.model.ExportResult import append_telemetry
+from resources.libraries.python.Constants import Constants
+from resources.libraries.python.ssh import exec_cmd_no_error
+from resources.libraries.python.topology import NodeType
+
+__all__ = ["TelemetryUtil"]
+
+
+class TelemetryUtil:
+ """Class contains methods for telemetry utility."""
+
+ @staticmethod
+ def _run_telemetry(
+ node, profile, sid=None, spath=None, rate="", export=False):
+ """Get telemetry read on node.
+
+ :param node: Node in the topology.
+ :param profile: Telemetry configuration profile.
+ :param sid: Socket ID used to describe recipient side of socket.
+ :param spath: Socket path.
+ :param rate: Telemetry load, unique within the test (optional).
+ :param export: If false, do not attempt JSON export (default false).
+ :type node: dict
+ :type profile: str
+ :type sid: str
+ :type spath: str
+ :type rate: str
+ :type export: bool
+ """
+ config = ""
+ config += f"{Constants.REMOTE_FW_DIR}/"
+ config += f"{Constants.RESOURCES_TPL_TELEMETRY}/"
+ config += f"{profile}"
+
+ cd_cmd = ""
+ cd_cmd += f"sh -c \"cd {Constants.REMOTE_FW_DIR}/"
+ cd_cmd += f"{Constants.RESOURCES_TOOLS}"
+
+ if spath:
+ bin_cmd = f"python3 -m telemetry --config {config} --hook {spath}\""
+ else:
+ bin_cmd = f"python3 -m telemetry --config {config}\""
+ exec_cmd_no_error(node, f"{cd_cmd} && {bin_cmd}", sudo=True)
+
+ if not export:
+ return
+
+ hostname = exec_cmd_no_error(node, "hostname")[0].strip()
+ stdout, _ = exec_cmd_no_error(
+ node, "cat /tmp/metric.prom", sudo=True, log_stdout_err=False
+ )
+ prefix = "{"
+ prefix += f"hostname=\"{hostname}\","
+ if sid:
+ prefix += f"hook=\"{sid}\","
+ prefix += f"rate=\"{rate}\","
+ for line in stdout.splitlines():
+ if line and not line.startswith("#"):
+ append_telemetry(
+ prefix.join(line.rsplit("{", 1)).replace("\"", "'")
+ )
+
+ def run_telemetry_on_all_duts(self, nodes, profile, rate="", export=False):
+ """Get telemetry read on all DUTs.
+
+ :param nodes: Nodes in the topology.
+ :param profile: Telemetry configuration profile.
+ :param rate: Telemetry load, unique within the test (optional).
+ :param export: If false, do not attempt JSON export (default false).
+ :type nodes: dict
+ :type profile: str
+ :type rate: str
+ :type export: bool
+ """
+ for node in nodes.values():
+ if node["type"] == NodeType.DUT:
+ try:
+ for sid, spath in node["sockets"]["CLI"].items():
+ self._run_telemetry(
+ node, profile=profile, sid=sid, spath=spath,
+ rate=rate, export=export
+ )
+ except IndexError:
+ pass
diff --git a/resources/libraries/python/TestConfig.py b/resources/libraries/python/TestConfig.py
index 9e104e2098..eb093a4651 100644
--- a/resources/libraries/python/TestConfig.py
+++ b/resources/libraries/python/TestConfig.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -23,7 +23,6 @@ from resources.libraries.python.IPAddress import IPAddress
from resources.libraries.python.IPUtil import IPUtil
from resources.libraries.python.PapiExecutor import PapiSocketExecutor
from resources.libraries.python.topology import Topology
-from resources.libraries.python.VatExecutor import VatExecutor
class TestConfig:
@@ -117,38 +116,6 @@ class TestConfig:
src_ip_start = ip_address(src_ip_start)
dst_ip_start = ip_address(dst_ip_start)
- if vxlan_count > 10:
- commands = list()
- for i in range(0, vxlan_count):
- try:
- src_ip = src_ip_start + i * ip_step
- dst_ip = dst_ip_start + i * ip_step
- except AddressValueError:
- logger.warn(
- u"Can't do more iterations - IP address limit "
- u"has been reached."
- )
- vxlan_count = i
- break
- commands.append(
- f"sw_interface_add_del_address sw_if_index "
- f"{Topology.get_interface_sw_index(node, node_vxlan_if)} "
- f"{src_ip}/{128 if src_ip.version == 6 else 32}\n"
- )
- commands.append(
- f"vxlan_add_del_tunnel src {src_ip} dst {dst_ip} "
- f"vni {vni_start + i}\n"
- )
- commands.append(
- f"create_vlan_subif sw_if_index "
- f"{Topology.get_interface_sw_index(node, node_vlan_if)} "
- f"vlan {i + 1}\n"
- )
- VatExecutor().write_and_execute_script(
- node, u"/tmp/create_vxlan_interfaces.config", commands
- )
- return vxlan_count
-
cmd1 = u"sw_interface_add_del_address"
args1 = dict(
sw_if_index=InterfaceUtil.get_interface_index(node, node_vxlan_if),
@@ -156,7 +123,7 @@ class TestConfig:
del_all=False,
prefix=None
)
- cmd2 = u"vxlan_add_del_tunnel"
+ cmd2 = u"vxlan_add_del_tunnel_v3"
args2 = dict(
is_add=True,
instance=Constants.BITWISE_NON_ZERO,
@@ -174,7 +141,7 @@ class TestConfig:
vlan_id=None
)
- with PapiSocketExecutor(node) as papi_exec:
+ with PapiSocketExecutor(node, is_async=True) as papi_exec:
for i in range(0, vxlan_count):
try:
src_ip = src_ip_start + i * ip_step
@@ -198,9 +165,9 @@ class TestConfig:
args2[u"vni"] = int(vni_start) + i
args3[u"vlan_id"] = i + 1
history = bool(not 1 < i < vxlan_count - 1)
- papi_exec.add(cmd1, history=history, **args1).\
- add(cmd2, history=history, **args2).\
- add(cmd3, history=history, **args3)
+ papi_exec.add(cmd1, history=history, **args1)
+ papi_exec.add(cmd2, history=history, **args2)
+ papi_exec.add(cmd3, history=history, **args3)
papi_exec.get_replies()
return vxlan_count
@@ -220,50 +187,6 @@ class TestConfig:
:type node_vlan_if: str
"""
if_data = InterfaceUtil.vpp_get_interface_data(node)
- if vxlan_count > 10:
- commands = list()
- for i in range(0, vxlan_count):
- vxlan_subif_key = Topology.add_new_port(node, u"vxlan_tunnel")
- vxlan_subif_name = f"vxlan_tunnel{i}"
- founds = dict(vxlan=False, vlan=False)
- vxlan_subif_idx = None
- vlan_subif_key = Topology.add_new_port(node, u"vlan_subif")
- vlan_subif_name = \
- f"{Topology.get_interface_name(node, node_vlan_if)}.{i + 1}"
- vlan_idx = None
- for data in if_data:
- if_name = data[u"interface_name"]
- if not founds[u"vxlan"] and if_name == vxlan_subif_name:
- vxlan_subif_idx = data[u"sw_if_index"]
- founds[u"vxlan"] = True
- elif not founds[u"vlan"] and if_name == vlan_subif_name:
- vlan_idx = data[u"sw_if_index"]
- founds[u"vlan"] = True
- if founds[u"vxlan"] and founds[u"vlan"]:
- break
- Topology.update_interface_sw_if_index(
- node, vxlan_subif_key, vxlan_subif_idx)
- Topology.update_interface_name(
- node, vxlan_subif_key, vxlan_subif_name)
- commands.append(
- f"sw_interface_set_flags sw_if_index {vxlan_subif_idx} "
- f"admin-up link-up\n"
- )
- Topology.update_interface_sw_if_index(
- node, vlan_subif_key, vlan_idx
- )
- Topology.update_interface_name(
- node, vlan_subif_key, vlan_subif_name
- )
- commands.append(
- f"sw_interface_set_flags sw_if_index {vlan_idx} admin-up "
- f"link-up\n"
- )
- VatExecutor().write_and_execute_script(
- node, u"/tmp/put_subinterfaces_up.config", commands
- )
- return
-
cmd = u"sw_interface_set_flags"
args1 = dict(
sw_if_index=None,
@@ -274,7 +197,7 @@ class TestConfig:
flags=InterfaceStatusFlags.IF_STATUS_API_FLAG_ADMIN_UP.value
)
- with PapiSocketExecutor(node) as papi_exec:
+ with PapiSocketExecutor(node, is_async=True) as papi_exec:
for i in range(0, vxlan_count):
vxlan_subif_key = Topology.add_new_port(node, u"vxlan_tunnel")
vxlan_subif_name = f"vxlan_tunnel{i}"
@@ -310,9 +233,8 @@ class TestConfig:
)
args2[u"sw_if_index"] = vlan_idx
history = bool(not 1 < i < vxlan_count - 1)
- papi_exec.add(cmd, history=history, **args1). \
- add(cmd, history=history, **args2)
- papi_exec.add(cmd, **args1).add(cmd, **args2)
+ papi_exec.add(cmd, history=history, **args1)
+ papi_exec.add(cmd, history=history, **args2)
papi_exec.get_replies()
@staticmethod
@@ -344,43 +266,6 @@ class TestConfig:
"""
dst_ip_start = ip_address(dst_ip_start)
- if vxlan_count > 1:
- idx_vxlan_if = Topology.get_interface_sw_index(node, node_vxlan_if)
- commands = list()
- for i in range(0, vxlan_count):
- dst_ip = dst_ip_start + i * ip_step
- commands.append(
- f"exec ip neighbor "
- f"{Topology.get_interface_name(node, node_vxlan_if)} "
- f"{dst_ip} "
- f"{Topology.get_interface_mac(op_node, op_node_if)} static "
- f"\n"
- )
- commands.append(
- f"ip_route_add_del "
- f"{dst_ip}/{128 if dst_ip.version == 6 else 32} count 1 "
- f"via {dst_ip} sw_if_index {idx_vxlan_if}\n"
- )
- sw_idx_vxlan = Topology.get_interface_sw_index(
- node, f"vxlan_tunnel{i + 1}"
- )
- commands.append(
- f"sw_interface_set_l2_bridge sw_if_index {sw_idx_vxlan} "
- f"bd_id {bd_id_start + i} shg 0 enable\n"
- )
- sw_idx_vlan = Topology.get_interface_sw_index(
- node, f"vlan_subif{i + 1}"
- )
- commands.append(
- f"sw_interface_set_l2_bridge sw_if_index {sw_idx_vlan} "
- f"bd_id {bd_id_start + i} shg 0 enable\n"
- )
- VatExecutor().write_and_execute_script(
- node, u"/tmp/configure_routes_and_bridge_domains.config",
- commands
- )
- return
-
cmd1 = u"ip_neighbor_add_del"
neighbor = dict(
sw_if_index=Topology.get_interface_sw_index(node, node_vxlan_if),
@@ -422,7 +307,7 @@ class TestConfig:
enable=1
)
- with PapiSocketExecutor(node) as papi_exec:
+ with PapiSocketExecutor(node, is_async=True) as papi_exec:
for i in range(0, vxlan_count):
args1[u"neighbor"][u"ip_address"] = \
str(dst_ip_start + i * ip_step)
@@ -439,8 +324,9 @@ class TestConfig:
)
args4[u"bd_id"] = int(bd_id_start+i)
history = bool(not 1 < i < vxlan_count - 1)
- papi_exec.add(cmd1, history=history, **args1). \
- add(cmd2, history=history, **args2). \
- add(cmd3, history=history, **args3). \
- add(cmd3, history=history, **args4)
+ papi_exec.add(cmd1, history=history, **args1)
+ papi_exec.add(cmd2, history=history, **args2)
+ papi_exec.add(cmd3, history=history, **args3)
+ # Yes, args4 go with cmd3, there is no cmd4.
+ papi_exec.add(cmd3, history=history, **args4)
papi_exec.get_replies()
diff --git a/resources/libraries/python/Trace.py b/resources/libraries/python/Trace.py
index 9c02286b0f..f82ab95f2e 100644
--- a/resources/libraries/python/Trace.py
+++ b/resources/libraries/python/Trace.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -37,12 +37,21 @@ class Trace:
@staticmethod
def clear_packet_trace_on_all_duts(nodes):
- """Clear VPP packet trace.
+ """Clear VPP packet trace on all duts.
:param nodes: Nodes where the packet trace will be cleared.
:type nodes: dict
"""
for node in nodes.values():
if node[u"type"] == NodeType.DUT:
- PapiSocketExecutor.run_cli_cmd_on_all_sockets(
- node, u"clear trace")
+ Trace.clear_packet_trace_on_dut(node)
+
+ @staticmethod
+ def clear_packet_trace_on_dut(node):
+ """Clear VPP packet trace on dut.
+
+ :param node: Node where the packet trace will be cleared.
+ :type node: dict
+ """
+ PapiSocketExecutor.run_cli_cmd_on_all_sockets(
+ node, u"clear trace")
diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py
index 23337b2848..936cb3a06d 100644
--- a/resources/libraries/python/TrafficGenerator.py
+++ b/resources/libraries/python/TrafficGenerator.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -13,23 +13,28 @@
"""Performance testing traffic generator library."""
+import math
import time
+from typing import Callable, List, Optional, Union
+
from robot.api import logger
from robot.libraries.BuiltIn import BuiltIn
from .Constants import Constants
-from .CpuUtils import CpuUtils
from .DropRateSearch import DropRateSearch
-from .MLRsearch.AbstractMeasurer import AbstractMeasurer
-from .MLRsearch.MultipleLossRatioSearch import MultipleLossRatioSearch
-from .MLRsearch.ReceiveRateMeasurement import ReceiveRateMeasurement
+from .MLRsearch import (
+ AbstractMeasurer, Config, GoalResult, MeasurementResult,
+ MultipleLossRatioSearch, SearchGoal,
+)
from .PLRsearch.PLRsearch import PLRsearch
from .OptionString import OptionString
from .ssh import exec_cmd_no_error, exec_cmd
from .topology import NodeType
from .topology import NodeSubTypeTG
from .topology import Topology
+from .TRexConfigGenerator import TrexConfig
+from .DUTSetup import DUTSetup as DS
__all__ = [u"TGDropRateSearchImpl", u"TrafficGenerator", u"OptimizedSearch"]
@@ -127,22 +132,18 @@ class TrexMode:
STL = u"STL"
-# TODO: Pylint says too-many-instance-attributes.
class TrafficGenerator(AbstractMeasurer):
"""Traffic Generator."""
- # TODO: Remove "trex" from lines which could work with other TGs.
-
# Use one instance of TrafficGenerator for all tests in test suite
ROBOT_LIBRARY_SCOPE = u"TEST SUITE"
def __init__(self):
- # TODO: Separate into few dataclasses/dicts.
- # Pylint dislikes large unstructured state, and it is right.
self._node = None
self._mode = None
# TG interface order mapping
self._ifaces_reordered = False
+ self._ifaces = []
# Result holding fields, to be removed.
self._result = None
self._loss = None
@@ -171,9 +172,13 @@ class TrafficGenerator(AbstractMeasurer):
self.sleep_till_duration = None
self.transaction_type = None
self.duration_limit = None
+ self.ramp_up_start = None
+ self.ramp_up_stop = None
+ self.ramp_up_rate = None
+ self.ramp_up_duration = None
+ self.state_timeout = None
# Transient data needed for async measurements.
- self._xstats = (None, None)
- # TODO: Rename "xstats" to something opaque, so T-Rex is not privileged?
+ self._xstats = []
@property
def node(self):
@@ -246,101 +251,111 @@ class TrafficGenerator(AbstractMeasurer):
f"{self._node[u'subtype']} not running in {expected_mode} mode!"
)
- # TODO: pylint says disable=too-many-locals.
- def initialize_traffic_generator(
- self, tg_node, tg_if1, tg_if2, tg_if1_adj_node, tg_if1_adj_if,
- tg_if2_adj_node, tg_if2_adj_if, osi_layer, tg_if1_dst_mac=None,
- tg_if2_dst_mac=None):
- """TG initialization.
+ @staticmethod
+ def get_tg_type(tg_node):
+ """Log and return the installed traffic generator type.
- TODO: Document why do we need (and how do we use) _ifaces_reordered.
+ :param tg_node: Node from topology file.
+ :type tg_node: dict
+ :returns: Traffic generator type string.
+ :rtype: str
+ :raises RuntimeError: If command returns nonzero return code.
+ """
+ return str(check_subtype(tg_node))
- :param tg_node: Traffic generator node.
- :param tg_if1: TG - name of first interface.
- :param tg_if2: TG - name of second interface.
- :param tg_if1_adj_node: TG if1 adjecent node.
- :param tg_if1_adj_if: TG if1 adjecent interface.
- :param tg_if2_adj_node: TG if2 adjecent node.
- :param tg_if2_adj_if: TG if2 adjecent interface.
- :param osi_layer: 'L2', 'L3' or 'L7' - OSI Layer testing type.
- :param tg_if1_dst_mac: Interface 1 destination MAC address.
- :param tg_if2_dst_mac: Interface 2 destination MAC address.
+ @staticmethod
+ def get_tg_version(tg_node):
+ """Log and return the installed traffic generator version.
+
+ :param tg_node: Node from topology file.
:type tg_node: dict
- :type tg_if1: str
- :type tg_if2: str
- :type tg_if1_adj_node: dict
- :type tg_if1_adj_if: str
- :type tg_if2_adj_node: dict
- :type tg_if2_adj_if: str
- :type osi_layer: str
- :type tg_if1_dst_mac: str
- :type tg_if2_dst_mac: str
- :returns: nothing
- :raises RuntimeError: In case of issue during initialization.
+ :returns: Traffic generator version string.
+ :rtype: str
+ :raises RuntimeError: If command returns nonzero return code.
"""
subtype = check_subtype(tg_node)
if subtype == NodeSubTypeTG.TREX:
- self._node = tg_node
- self._mode = TrexMode.ASTF if osi_layer == u"L7" else TrexMode.STL
- if1 = dict()
- if2 = dict()
- if1[u"pci"] = Topology().get_interface_pci_addr(self._node, tg_if1)
- if2[u"pci"] = Topology().get_interface_pci_addr(self._node, tg_if2)
- if1[u"addr"] = Topology().get_interface_mac(self._node, tg_if1)
- if2[u"addr"] = Topology().get_interface_mac(self._node, tg_if2)
-
- if osi_layer == u"L2":
- if1[u"adj_addr"] = if2[u"addr"]
- if2[u"adj_addr"] = if1[u"addr"]
- elif osi_layer in (u"L3", u"L7"):
- if1[u"adj_addr"] = Topology().get_interface_mac(
- tg_if1_adj_node, tg_if1_adj_if
- )
- if2[u"adj_addr"] = Topology().get_interface_mac(
- tg_if2_adj_node, tg_if2_adj_if
- )
- else:
- raise ValueError(u"Unknown OSI layer!")
+ command = f"cat {Constants.TREX_INSTALL_DIR}/VERSION"
+ message = u"Get T-Rex version failed!"
+ stdout, _ = exec_cmd_no_error(tg_node, command, message=message)
+ return stdout.strip()
+ return "none"
- # in case of switched environment we can override MAC addresses
- if tg_if1_dst_mac is not None and tg_if2_dst_mac is not None:
- if1[u"adj_addr"] = tg_if1_dst_mac
- if2[u"adj_addr"] = tg_if2_dst_mac
+ def initialize_traffic_generator(self, osi_layer, pfs=2):
+ """TG initialization.
- if min(if1[u"pci"], if2[u"pci"]) != if1[u"pci"]:
- if1, if2 = if2, if1
- self._ifaces_reordered = True
+ :param osi_layer: 'L2', 'L3' or 'L7' - OSI Layer testing type.
+ :param pfs: Number of physical interfaces to configure.
+ :type osi_layer: str
+ :type pfs: int
+ :raises ValueError: If OSI layer is unknown.
+ """
+ if osi_layer not in ("L2", "L3", "L7"):
+ raise ValueError("Unknown OSI layer!")
- master_thread_id, latency_thread_id, socket, threads = \
- CpuUtils.get_affinity_trex(
- self._node, tg_if1, tg_if2,
- tg_dtc=Constants.TREX_CORE_COUNT)
+ topology = BuiltIn().get_variable_value("&{topology_info}")
+ self._node = topology["TG"]
+ subtype = check_subtype(self._node)
- if osi_layer in (u"L2", u"L3", u"L7"):
- exec_cmd_no_error(
- self._node,
- f"sh -c 'cat << EOF > /etc/trex_cfg.yaml\n"
- f"- version: 2\n"
- f" c: {len(threads)}\n"
- f" limit_memory: {Constants.TREX_LIMIT_MEMORY}\n"
- f" interfaces: [\"{if1[u'pci']}\",\"{if2[u'pci']}\"]\n"
- f" port_info:\n"
- f" - dest_mac: \'{if1[u'adj_addr']}\'\n"
- f" src_mac: \'{if1[u'addr']}\'\n"
- f" - dest_mac: \'{if2[u'adj_addr']}\'\n"
- f" src_mac: \'{if2[u'addr']}\'\n"
- f" platform :\n"
- f" master_thread_id: {master_thread_id}\n"
- f" latency_thread_id: {latency_thread_id}\n"
- f" dual_if:\n"
- f" - socket: {socket}\n"
- f" threads: {threads}\n"
- f"EOF'",
- sudo=True, message=u"T-Rex config generation!"
- )
- else:
- raise ValueError(u"Unknown OSI layer!")
+ if subtype == NodeSubTypeTG.TREX:
+ trex_topology = list()
+ self._mode = TrexMode.ASTF if osi_layer == "L7" else TrexMode.STL
+
+ for link in range(1, pfs, 2):
+ tg_if1_adj_addr = topology[f"TG_pf{link+1}_mac"][0]
+ tg_if2_adj_addr = topology[f"TG_pf{link}_mac"][0]
+ if osi_layer in ("L3", "L7") and "DUT1" in topology.keys():
+ ifl = BuiltIn().get_variable_value("${int}")
+ last = topology["duts_count"]
+ tg_if1_adj_addr = Topology().get_interface_mac(
+ topology["DUT1"],
+ BuiltIn().get_variable_value(
+ f"${{DUT1_{ifl}{link}}}[0]"
+ )
+ )
+ tg_if2_adj_addr = Topology().get_interface_mac(
+ topology[f"DUT{last}"],
+ BuiltIn().get_variable_value(
+ f"${{DUT{last}_{ifl}{link+1}}}[0]"
+ )
+ )
+
+ if1_pci = topology[f"TG_pf{link}_pci"][0]
+ if2_pci = topology[f"TG_pf{link+1}_pci"][0]
+ if min(if1_pci, if2_pci) != if1_pci:
+ self._ifaces.append(str(link))
+ self._ifaces.append(str(link-1))
+ trex_topology.append(
+ dict(
+ interface=topology[f"TG_pf{link+1}"][0],
+ dst_mac=tg_if2_adj_addr
+ )
+ )
+ trex_topology.append(
+ dict(
+ interface=topology[f"TG_pf{link}"][0],
+ dst_mac=tg_if1_adj_addr
+ )
+ )
+ else:
+ self._ifaces.append(str(link-1))
+ self._ifaces.append(str(link))
+ trex_topology.append(
+ dict(
+ interface=topology[f"TG_pf{link}"][0],
+ dst_mac=tg_if1_adj_addr
+ )
+ )
+ trex_topology.append(
+ dict(
+ interface=topology[f"TG_pf{link+1}"][0],
+ dst_mac=tg_if2_adj_addr
+ )
+ )
+ TrexConfig.add_startup_configuration(
+ self._node, trex_topology
+ )
TrafficGenerator.startup_trex(
self._node, osi_layer, subtype=subtype
)
@@ -363,32 +378,41 @@ class TrafficGenerator(AbstractMeasurer):
if subtype == NodeSubTypeTG.TREX:
for _ in range(0, 3):
# Kill TRex only if it is already running.
- cmd = u"sh -c \"pgrep t-rex && pkill t-rex && sleep 3 || true\""
+ cmd = "sh -c \"pgrep t-rex && pkill t-rex && sleep 3 || true\""
exec_cmd_no_error(
- tg_node, cmd, sudo=True, message=u"Kill TRex failed!"
+ tg_node, cmd, sudo=True, message="Kill TRex failed!"
)
- # Configure TRex.
- ports = ''
- for port in tg_node[u"interfaces"].values():
- if u'Mellanox' not in port.get(u'model'):
- ports += f" {port.get(u'pci_address')}"
-
- cmd = f"sh -c \"cd {Constants.TREX_INSTALL_DIR}/scripts/ && " \
- f"./dpdk_nic_bind.py -u {ports} || true\""
- exec_cmd_no_error(
- tg_node, cmd, sudo=True,
- message=u"Unbind PCI ports from driver failed!"
- )
+ # Prepare interfaces for TRex.
+ tg_port_drv = Constants.TREX_PORT_DRIVER
+ mlx_driver = ""
+ for port in tg_node["interfaces"].values():
+ if "Mellanox" in port.get("model"):
+ mlx_driver = port.get("driver")
+ pci_addr = port.get("pci_address")
+ cur_driver = DS.get_pci_dev_driver(tg_node, pci_addr)
+ if cur_driver == mlx_driver:
+ pass
+ elif not cur_driver:
+ DS.pci_driver_bind(tg_node, pci_addr, mlx_driver)
+ else:
+ DS.pci_driver_unbind(tg_node, pci_addr)
+ DS.pci_driver_bind(tg_node, pci_addr, mlx_driver)
+ else:
+ pci_addr = port.get("pci_address")
+ cur_driver = DS.get_pci_dev_driver(tg_node, pci_addr)
+ if cur_driver:
+ DS.pci_driver_unbind(tg_node, pci_addr)
+ DS.pci_driver_bind(tg_node, pci_addr, tg_port_drv)
# Start TRex.
cd_cmd = f"cd '{Constants.TREX_INSTALL_DIR}/scripts/'"
- trex_cmd = OptionString([u"nohup", u"./t-rex-64"])
- trex_cmd.add(u"-i")
- trex_cmd.add(u"--prefix $(hostname)")
- trex_cmd.add(u"--hdrh")
- trex_cmd.add(u"--no-scapy-server")
- trex_cmd.add_if(u"--astf", osi_layer == u"L7")
+ trex_cmd = OptionString(["nohup", "./t-rex-64"])
+ trex_cmd.add("-i")
+ trex_cmd.add("--prefix $(hostname)")
+ trex_cmd.add("--hdrh")
+ trex_cmd.add("--no-scapy-server")
+ trex_cmd.add_if("--astf", osi_layer == "L7")
# OptionString does not create double space if extra is empty.
trex_cmd.add(f"{Constants.TREX_EXTRA_CMDLINE}")
inner_command = f"{cd_cmd} && {trex_cmd} > /tmp/trex.log 2>&1 &"
@@ -396,34 +420,33 @@ class TrafficGenerator(AbstractMeasurer):
try:
exec_cmd_no_error(tg_node, cmd, sudo=True)
except RuntimeError:
- cmd = u"sh -c \"cat /tmp/trex.log\""
+ cmd = "sh -c \"cat /tmp/trex.log\""
exec_cmd_no_error(
tg_node, cmd, sudo=True,
- message=u"Get TRex logs failed!"
+ message="Get TRex logs failed!"
)
- raise RuntimeError(u"Start TRex failed!")
+ raise RuntimeError("Start TRex failed!")
# Test T-Rex API responsiveness.
- cmd = u"python3"
- cmd += f" {Constants.REMOTE_FW_DIR}/GPL/tools/trex/"
- if osi_layer in (u"L2", u"L3"):
- cmd += f"trex_stl_assert.py"
- elif osi_layer == u"L7":
- cmd += f"trex_astf_assert.py"
+ cmd = f"python3 {Constants.REMOTE_FW_DIR}/GPL/tools/trex/"
+ if osi_layer in ("L2", "L3"):
+ cmd += "trex_stl_assert.py"
+ elif osi_layer == "L7":
+ cmd += "trex_astf_assert.py"
else:
- raise ValueError(u"Unknown OSI layer!")
+ raise ValueError("Unknown OSI layer!")
try:
exec_cmd_no_error(
tg_node, cmd, sudo=True,
- message=u"T-Rex API is not responding!", retries=20
+ message="T-Rex API is not responding!", retries=20
)
except RuntimeError:
continue
return
# After max retries TRex is still not responding to API critical
# error occurred.
- exec_cmd(tg_node, u"cat /tmp/trex.log", sudo=True)
- raise RuntimeError(u"Start T-Rex failed after multiple retries!")
+ exec_cmd(tg_node, "cat /tmp/trex.log", sudo=True)
+ raise RuntimeError("Start T-Rex failed after multiple retries!")
@staticmethod
def is_trex_running(node):
@@ -434,7 +457,7 @@ class TrafficGenerator(AbstractMeasurer):
:returns: True if T-Rex is running otherwise False.
:rtype: bool
"""
- ret, _, _ = exec_cmd(node, u"pgrep t-rex", sudo=True)
+ ret, _, _ = exec_cmd(node, "pgrep t-rex", sudo=True)
return bool(int(ret) == 0)
@staticmethod
@@ -467,17 +490,17 @@ class TrafficGenerator(AbstractMeasurer):
:type node: dict
:raises RuntimeError: If stop traffic script fails.
"""
- command_line = OptionString().add(u"python3")
+ command_line = OptionString().add("python3")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
command_line.add(f"'{dirname}/trex_astf_stop.py'")
- command_line.change_prefix(u"--")
- for index, value in enumerate(self._xstats):
+ command_line.add("--xstat")
+ for value in self._xstats:
if value is not None:
- value = value.replace(u"'", u"\"")
- command_line.add_equals(f"xstat{index}", f"'{value}'")
+ value = value.replace("'", "\"")
+ command_line.add(f"'{value}'")
stdout, _ = exec_cmd_no_error(
node, command_line,
- message=u"T-Rex ASTF runtime error!"
+ message="T-Rex ASTF runtime error!"
)
self._parse_traffic_results(stdout)
@@ -491,17 +514,17 @@ class TrafficGenerator(AbstractMeasurer):
:type node: dict
:raises RuntimeError: If stop traffic script fails.
"""
- command_line = OptionString().add(u"python3")
+ command_line = OptionString().add("python3")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
command_line.add(f"'{dirname}/trex_stl_stop.py'")
- command_line.change_prefix(u"--")
- for index, value in enumerate(self._xstats):
+ command_line.add("--xstat")
+ for value in self._xstats:
if value is not None:
- value = value.replace(u"'", u"\"")
- command_line.add_equals(f"xstat{index}", f"'{value}'")
+ value = value.replace("'", "\"")
+ command_line.add(f"'{value}'")
stdout, _ = exec_cmd_no_error(
node, command_line,
- message=u"T-Rex STL runtime error!"
+ message="T-Rex STL runtime error!"
)
self._parse_traffic_results(stdout)
@@ -509,7 +532,7 @@ class TrafficGenerator(AbstractMeasurer):
"""Stop all traffic on TG.
:returns: Structure containing the result of the measurement.
- :rtype: ReceiveRateMeasurement
+ :rtype: MeasurementResult
:raises ValueError: If TG traffic profile is not supported.
"""
subtype = check_subtype(self._node)
@@ -523,7 +546,42 @@ class TrafficGenerator(AbstractMeasurer):
raise ValueError(u"Unsupported T-Rex traffic profile!")
self._stop_time = time.monotonic()
- return self.get_measurement_result()
+ return self._get_measurement_result()
+
+ def _compute_duration(self, duration, multiplier):
+ """Compute duration for profile driver.
+
+ The final result is influenced by transaction scale and duration limit.
+ It is assumed a higher level function has already set those on self.
+ The duration argument is the target value from search point of view,
+ before the overrides are applied here.
+
+ Minus one (signalling async traffic start) is kept.
+
+ Completeness flag is also included. Duration limited or async trials
+ are not considered complete for ramp-up purposes.
+
+ :param duration: Time expressed in seconds for how long to send traffic.
+ :param multiplier: Traffic rate in transactions per second.
+ :type duration: float
+ :type multiplier: float
+ :returns: New duration and whether it was a complete ramp-up candidate.
+ :rtype: float, bool
+ """
+ if duration < 0.0:
+ # Keep the async -1.
+ return duration, False
+ computed_duration = duration
+ if self.transaction_scale:
+ computed_duration = self.transaction_scale / multiplier
+ # Log the computed duration,
+ # so we can compare with what telemetry suggests
+ # the real duration was.
+ logger.debug(f"Expected duration {computed_duration}")
+ if not self.duration_limit:
+ return computed_duration, True
+ limited_duration = min(computed_duration, self.duration_limit)
+ return limited_duration, (limited_duration == computed_duration)
def trex_astf_start_remote_exec(
self, duration, multiplier, async_call=False):
@@ -571,19 +629,7 @@ class TrafficGenerator(AbstractMeasurer):
if not isinstance(duration, (float, int)):
duration = float(duration)
- # Duration logic.
- computed_duration = duration
- if duration > 0.0:
- if self.transaction_scale:
- computed_duration = self.transaction_scale / multiplier
- # Log the computed duration,
- # so we can compare with what telemetry suggests
- # the real duration was.
- logger.debug(f"Expected duration {computed_duration}")
- computed_duration += 0.1115
- # Else keep -1.
- if self.duration_limit:
- computed_duration = min(computed_duration, self.duration_limit)
+ computed_duration, _ = self._compute_duration(duration, multiplier)
command_line = OptionString().add(u"python3")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
@@ -595,6 +641,9 @@ class TrafficGenerator(AbstractMeasurer):
)
command_line.add_with_value(u"duration", f"{computed_duration!r}")
command_line.add_with_value(u"frame_size", self.frame_size)
+ command_line.add_with_value(
+ u"n_data_frames", Constants.ASTF_N_DATA_FRAMES
+ )
command_line.add_with_value(u"multiplier", multiplier)
command_line.add_with_value(u"port_0", p_0)
command_line.add_with_value(u"port_1", p_1)
@@ -604,6 +653,9 @@ class TrafficGenerator(AbstractMeasurer):
command_line.add_if(u"async_start", async_call)
command_line.add_if(u"latency", self.use_latency)
command_line.add_if(u"force", Constants.TREX_SEND_FORCE)
+ command_line.add_with_value(
+ u"delay", Constants.PERF_TRIAL_ASTF_DELAY
+ )
self._start_time = time.monotonic()
self._rate = multiplier
@@ -620,7 +672,7 @@ class TrafficGenerator(AbstractMeasurer):
self._sent = None
self._loss = None
self._latency = None
- xstats = [None, None]
+ xstats = []
self._l7_data = dict()
self._l7_data[u"client"] = dict()
self._l7_data[u"client"][u"active_flows"] = None
@@ -653,10 +705,8 @@ class TrafficGenerator(AbstractMeasurer):
index = 0
for line in stdout.splitlines():
if f"Xstats snapshot {index}: " in line:
- xstats[index] = line[19:]
+ xstats.append(line[19:])
index += 1
- if index == 2:
- break
self._xstats = tuple(xstats)
else:
self._target_duration = duration
@@ -684,38 +734,36 @@ class TrafficGenerator(AbstractMeasurer):
:raises RuntimeError: In case of T-Rex driver issue.
"""
self.check_mode(TrexMode.STL)
- p_0, p_1 = (1, 0) if self._ifaces_reordered else (0, 1)
if not isinstance(duration, (float, int)):
duration = float(duration)
- if self.duration_limit:
- duration = min(duration, self.duration_limit)
- command_line = OptionString().add(u"python3")
+ duration, _ = self._compute_duration(duration=duration, multiplier=rate)
+
+ command_line = OptionString().add("python3")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
command_line.add(f"'{dirname}/trex_stl_profile.py'")
- command_line.change_prefix(u"--")
+ command_line.change_prefix("--")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/traffic_profiles/trex"
command_line.add_with_value(
- u"profile", f"'{dirname}/{self.traffic_profile}.py'"
+ "profile", f"'{dirname}/{self.traffic_profile}.py'"
)
- command_line.add_with_value(u"duration", f"{duration!r}")
- command_line.add_with_value(u"frame_size", self.frame_size)
- command_line.add_with_value(u"rate", f"{rate!r}")
- command_line.add_with_value(u"port_0", p_0)
- command_line.add_with_value(u"port_1", p_1)
+ command_line.add_with_value("duration", f"{duration!r}")
+ command_line.add_with_value("frame_size", self.frame_size)
+ command_line.add_with_value("rate", f"{rate!r}")
+ command_line.add_with_value("ports", " ".join(self._ifaces))
command_line.add_with_value(
- u"traffic_directions", self.traffic_directions
+ "traffic_directions", self.traffic_directions
)
- command_line.add_if(u"async_start", async_call)
- command_line.add_if(u"latency", self.use_latency)
- command_line.add_if(u"force", Constants.TREX_SEND_FORCE)
+ command_line.add_if("async_start", async_call)
+ command_line.add_if("latency", self.use_latency)
+ command_line.add_if("force", Constants.TREX_SEND_FORCE)
+ command_line.add_with_value("delay", Constants.PERF_TRIAL_STL_DELAY)
- # TODO: This is ugly. Handle parsing better.
self._start_time = time.monotonic()
- self._rate = float(rate[:-3]) if u"pps" in rate else float(rate)
+ self._rate = float(rate[:-3]) if "pps" in rate else float(rate)
stdout, _ = exec_cmd_no_error(
self._node, command_line, timeout=int(duration) + 60,
- message=u"T-Rex STL runtime error"
+ message="T-Rex STL runtime error"
)
if async_call:
@@ -727,14 +775,12 @@ class TrafficGenerator(AbstractMeasurer):
self._loss = None
self._latency = None
- xstats = [None, None]
+ xstats = []
index = 0
for line in stdout.splitlines():
if f"Xstats snapshot {index}: " in line:
- xstats[index] = line[19:]
+ xstats.append(line[19:])
index += 1
- if index == 2:
- break
self._xstats = tuple(xstats)
else:
self._target_duration = duration
@@ -755,6 +801,10 @@ class TrafficGenerator(AbstractMeasurer):
transaction_type=u"packet",
duration_limit=0.0,
use_latency=False,
+ ramp_up_rate=None,
+ ramp_up_duration=None,
+ state_timeout=240.0,
+ ramp_up_only=False,
):
"""Send traffic from all configured interfaces on TG.
@@ -775,6 +825,8 @@ class TrafficGenerator(AbstractMeasurer):
Bidirectional STL profiles are treated as transactions with two packets.
+ The return value is None for async.
+
:param duration: Duration of test traffic generation in seconds.
:param rate: Traffic rate in transactions per second.
:param frame_size: Frame size (L2) in Bytes.
@@ -797,6 +849,10 @@ class TrafficGenerator(AbstractMeasurer):
duration.
:param use_latency: Whether to measure latency during the trial.
Default: False.
+ :param ramp_up_rate: Rate to use in ramp-up trials [pps].
+ :param ramp_up_duration: Duration of ramp-up trials [s].
+ :param state_timeout: Time of life of DUT state [s].
+ :param ramp_up_only: If true, do not perform main trial measurement.
:type duration: float
:type rate: float
:type frame_size: str
@@ -809,8 +865,12 @@ class TrafficGenerator(AbstractMeasurer):
:type transaction_type: str
:type duration_limit: float
:type use_latency: bool
+ :type ramp_up_rate: float
+ :type ramp_up_duration: float
+ :type state_timeout: float
+ :type ramp_up_only: bool
:returns: TG results.
- :rtype: str
+ :rtype: MeasurementResult or None
:raises ValueError: If TG traffic profile is not supported.
"""
self.set_rate_provider_defaults(
@@ -823,10 +883,19 @@ class TrafficGenerator(AbstractMeasurer):
transaction_type=transaction_type,
duration_limit=duration_limit,
use_latency=use_latency,
+ ramp_up_rate=ramp_up_rate,
+ ramp_up_duration=ramp_up_duration,
+ state_timeout=state_timeout,
+ )
+ return self._send_traffic_on_tg_with_ramp_up(
+ duration=duration,
+ rate=rate,
+ async_call=async_call,
+ ramp_up_only=ramp_up_only,
)
- self._send_traffic_on_tg_internal(duration, rate, async_call)
- def _send_traffic_on_tg_internal(self, duration, rate, async_call=False):
+ def _send_traffic_on_tg_internal(
+ self, duration, rate, async_call=False):
"""Send traffic from all configured interfaces on TG.
This is an internal function, it assumes set_rate_provider_defaults
@@ -838,6 +907,9 @@ class TrafficGenerator(AbstractMeasurer):
need to specify their own values, and we do not want the measure call
to overwrite them with defaults.
+ This function is used both for automated ramp-up trials
+ and for explicitly called trials.
+
:param duration: Duration of test traffic generation in seconds.
:param rate: Traffic rate in transactions per second.
:param async_call: Async mode.
@@ -845,7 +917,7 @@ class TrafficGenerator(AbstractMeasurer):
:type rate: float
:type async_call: bool
:returns: TG results.
- :rtype: str
+ :rtype: MeasurementResult or None
:raises ValueError: If TG traffic profile is not supported.
"""
subtype = check_subtype(self._node)
@@ -856,14 +928,108 @@ class TrafficGenerator(AbstractMeasurer):
)
elif u"trex-stl" in self.traffic_profile:
unit_rate_str = str(rate) + u"pps"
- # TODO: Suport transaction_scale et al?
self.trex_stl_start_remote_exec(
duration, unit_rate_str, async_call
)
else:
raise ValueError(u"Unsupported T-Rex traffic profile!")
- return self._result
+ return None if async_call else self._get_measurement_result()
+
+ def _send_traffic_on_tg_with_ramp_up(
+ self, duration, rate, async_call=False, ramp_up_only=False):
+ """Send traffic from all interfaces on TG, maybe after ramp-up.
+
+ This is an internal function, it assumes set_rate_provider_defaults
+ has been called to remember most values.
+ The reason why need to remember various values is that
+ the traffic can be asynchronous, and parsing needs those values.
+ The reason why this is a separate function from the one
+ which calls set_rate_provider_defaults is that some search algorithms
+ need to specify their own values, and we do not want the measure call
+ to overwrite them with defaults.
+
+ If ramp-up tracking is detected, a computation is performed,
+ and if state timeout is near, trial at ramp-up rate and duration
+ is inserted before the main trial measurement.
+
+ The ramp_up_only parameter forces a ramp-up without immediate
+ trial measurement, which is useful in case self remembers
+ a previous ramp-up trial that belongs to a different test (phase).
+
+ Return None if trial is async or ramp-up only.
+
+ :param duration: Duration of test traffic generation in seconds.
+ :param rate: Traffic rate in transactions per second.
+ :param async_call: Async mode.
+ :param ramp_up_only: If true, do not perform main trial measurement.
+ :type duration: float
+ :type rate: float
+ :type async_call: bool
+ :type ramp_up_only: bool
+ :returns: TG results.
+ :rtype: MeasurementResult or None
+ :raises ValueError: If TG traffic profile is not supported.
+ """
+ complete = False
+ if self.ramp_up_rate:
+ # Figure out whether we need to insert a ramp-up trial.
+ if ramp_up_only or self.ramp_up_start is None:
+ # We never ramped up yet (at least not in this test case).
+ ramp_up_needed = True
+ else:
+ # We ramped up before, but maybe it was too long ago.
+ # Adding a constant overhead to be safe.
+ time_now = time.monotonic() + 1.0
+ computed_duration, complete = self._compute_duration(
+ duration=duration,
+ multiplier=rate,
+ )
+ # There are two conditions for inserting ramp-up.
+ # If early sessions are expiring already,
+ # or if late sessions are to expire before measurement is over.
+ ramp_up_start_delay = time_now - self.ramp_up_start
+ ramp_up_stop_delay = time_now - self.ramp_up_stop
+ ramp_up_stop_delay += computed_duration
+ bigger_delay = max(ramp_up_start_delay, ramp_up_stop_delay)
+ # Final boolean decision.
+ ramp_up_needed = (bigger_delay >= self.state_timeout)
+ if ramp_up_needed:
+ logger.debug(
+ u"State may time out during next real trial, "
+ u"inserting a ramp-up trial."
+ )
+ self.ramp_up_start = time.monotonic()
+ self._send_traffic_on_tg_internal(
+ duration=self.ramp_up_duration,
+ rate=self.ramp_up_rate,
+ async_call=async_call,
+ )
+ self.ramp_up_stop = time.monotonic()
+ logger.debug(u"Ramp-up done.")
+ else:
+ logger.debug(
+ u"State will probably not time out during next real trial, "
+ u"no ramp-up trial needed just yet."
+ )
+ if ramp_up_only:
+ return None
+ trial_start = time.monotonic()
+ result = self._send_traffic_on_tg_internal(
+ duration=duration,
+ rate=rate,
+ async_call=async_call,
+ )
+ trial_end = time.monotonic()
+ if self.ramp_up_rate:
+ # Optimization: No loss acts as a good ramp-up, if it was complete.
+ if complete and result is not None and result.loss_ratio == 0.0:
+ logger.debug(u"Good trial acts as a ramp-up")
+ self.ramp_up_start = trial_start
+ self.ramp_up_stop = trial_end
+ else:
+ logger.debug(u"Loss or incomplete, does not act as a ramp-up.")
+ return result
def no_traffic_loss_occurred(self):
"""Fail if loss occurred in traffic run.
@@ -879,14 +1045,12 @@ class TrafficGenerator(AbstractMeasurer):
def fail_if_no_traffic_forwarded(self):
"""Fail if no traffic forwarded.
- TODO: Check number of passed transactions instead.
-
:returns: nothing
:raises Exception: If no traffic forwarded.
"""
if self._received is None:
raise RuntimeError(u"The traffic generation has not been issued")
- if self._received == u"0":
+ if self._received == 0:
raise RuntimeError(u"No traffic forwarded")
def partial_traffic_loss_accepted(
@@ -1030,22 +1194,21 @@ class TrafficGenerator(AbstractMeasurer):
self._l7_data[u"server"][u"tcp"][u"rx_bytes"] = \
int(self._result.get(u"server_tcp_rx_bytes", 0))
- def get_measurement_result(self):
- """Return the result of last measurement as ReceiveRateMeasurement.
+ def _get_measurement_result(self):
+ """Return the result of last measurement as MeasurementResult.
Separate function, as measurements can end either by time
or by explicit call, this is the common block at the end.
- The target_tr field of ReceiveRateMeasurement is in
+ The intended_load field of MeasurementResult is in
transactions per second. Transmit count and loss count units
depend on the transaction type. Usually they are in transactions
- per second, or aggregate packets per second.
-
- TODO: Fail on running or already reported measurement.
+ per second, or aggregated packets per second.
:returns: Structure containing the result of the measurement.
- :rtype: ReceiveRateMeasurement
+ :rtype: MeasurementResult
"""
+ duration_with_overheads = time.monotonic() - self._start_time
try:
# Client duration seems to include a setup period
# where TRex does not send any packets yet.
@@ -1072,18 +1235,29 @@ class TrafficGenerator(AbstractMeasurer):
if not target_duration:
target_duration = approximated_duration
transmit_rate = self._rate
+ unsent = 0
if self.transaction_type == u"packet":
partial_attempt_count = self._sent
- expected_attempt_count = self._sent
- fail_count = self._loss
+ packet_rate = transmit_rate * self.ppta
+ # We have a float. TRex way of rounding it is not obvious.
+ # The biggest source of mismatch is Inter Stream Gap.
+ # So the code tolerates 10 usec of missing packets.
+ expected_attempt_count = (target_duration - 1e-5) * packet_rate
+ expected_attempt_count = math.ceil(expected_attempt_count)
+ # TRex can send more.
+ expected_attempt_count = max(expected_attempt_count, self._sent)
+ unsent = expected_attempt_count - self._sent
+ pass_count = self._received
+ loss_count = self._loss
elif self.transaction_type == u"udp_cps":
if not self.transaction_scale:
raise RuntimeError(u"Add support for no-limit udp_cps.")
partial_attempt_count = self._l7_data[u"client"][u"sent"]
# We do not care whether TG is slow, it should have attempted all.
expected_attempt_count = self.transaction_scale
+ unsent = expected_attempt_count - partial_attempt_count
pass_count = self._l7_data[u"client"][u"received"]
- fail_count = expected_attempt_count - pass_count
+ loss_count = partial_attempt_count - pass_count
elif self.transaction_type == u"tcp_cps":
if not self.transaction_scale:
raise RuntimeError(u"Add support for no-limit tcp_cps.")
@@ -1091,17 +1265,19 @@ class TrafficGenerator(AbstractMeasurer):
partial_attempt_count = ctca
# We do not care whether TG is slow, it should have attempted all.
expected_attempt_count = self.transaction_scale
+ unsent = expected_attempt_count - partial_attempt_count
# From TCP point of view, server/connects counts full connections,
# but we are testing NAT session so client/connects counts that
# (half connections from TCP point of view).
pass_count = self._l7_data[u"client"][u"tcp"][u"connects"]
- fail_count = expected_attempt_count - pass_count
+ loss_count = partial_attempt_count - pass_count
elif self.transaction_type == u"udp_pps":
if not self.transaction_scale:
raise RuntimeError(u"Add support for no-limit udp_pps.")
partial_attempt_count = self._sent
expected_attempt_count = self.transaction_scale * self.ppta
- fail_count = self._loss + (expected_attempt_count - self._sent)
+ unsent = expected_attempt_count - self._sent
+ loss_count = self._loss
elif self.transaction_type == u"tcp_pps":
if not self.transaction_scale:
raise RuntimeError(u"Add support for no-limit tcp_pps.")
@@ -1114,26 +1290,31 @@ class TrafficGenerator(AbstractMeasurer):
# A simple workaround is to add absolute difference.
# Probability of retransmissions exactly cancelling
# packets unsent due to duration stretching is quite low.
- fail_count = self._loss + abs(expected_attempt_count - self._sent)
+ unsent = abs(expected_attempt_count - self._sent)
+ loss_count = self._loss
else:
raise RuntimeError(f"Unknown parsing {self.transaction_type!r}")
- if fail_count < 0 and not self.negative_loss:
- fail_count = 0
- measurement = ReceiveRateMeasurement(
- duration=target_duration,
- target_tr=transmit_rate,
- transmit_count=expected_attempt_count,
- loss_count=fail_count,
- approximated_duration=approximated_duration,
- partial_transmit_count=partial_attempt_count,
+ if unsent and isinstance(self._approximated_duration, float):
+ # Do not report unsent for "manual".
+ logger.debug(f"Unsent packets/transactions: {unsent}")
+ if loss_count < 0 and not self.negative_loss:
+ loss_count = 0
+ measurement = MeasurementResult(
+ intended_duration=target_duration,
+ intended_load=transmit_rate,
+ offered_count=partial_attempt_count,
+ loss_count=loss_count,
+ offered_duration=approximated_duration,
+ duration_with_overheads=duration_with_overheads,
+ intended_count=expected_attempt_count,
)
measurement.latency = self.get_latency_int()
return measurement
- def measure(self, duration, transmit_rate):
+ def measure(self, intended_duration, intended_load):
"""Run trial measurement, parse and return results.
- The input rate is for transactions. Stateles bidirectional traffic
+ The intended load is for transactions. Stateles bidirectional traffic
is understood as sequence of (asynchronous) transactions,
two packets each.
@@ -1141,36 +1322,32 @@ class TrafficGenerator(AbstractMeasurer):
the count either transactions or packets (aggregated over directions).
Optionally, this method sleeps if measurement finished before
- the time specified as duration.
+ the time specified as intended_duration (PLRsearch needs time for math).
- :param duration: Trial duration [s].
- :param transmit_rate: Target rate in transactions per second.
- :type duration: float
- :type transmit_rate: float
+ :param intended_duration: Trial duration [s].
+ :param intended_load: Target rate in transactions per second.
+ :type intended_duration: float
+ :type intended_load: float
:returns: Structure containing the result of the measurement.
- :rtype: ReceiveRateMeasurement
+ :rtype: MeasurementResult
:raises RuntimeError: If TG is not set or if node is not TG
or if subtype is not specified.
:raises NotImplementedError: If TG is not supported.
"""
- duration = float(duration)
+ intended_duration = float(intended_duration)
time_start = time.monotonic()
- time_stop = time_start + duration
+ time_stop = time_start + intended_duration
if self.resetter:
self.resetter()
- self._send_traffic_on_tg_internal(
- duration=duration,
- rate=transmit_rate,
+ result = self._send_traffic_on_tg_with_ramp_up(
+ duration=intended_duration,
+ rate=intended_load,
async_call=False,
)
- result = self.get_measurement_result()
logger.debug(f"trial measurement result: {result!r}")
# In PLRsearch, computation needs the specified time to complete.
if self.sleep_till_duration:
- sleeptime = time_stop - time.monotonic()
- if sleeptime > 0.0:
- # TODO: Sometimes we have time to do additional trials here,
- # adapt PLRsearch to accept all the results.
+ while (sleeptime := time_stop - time.monotonic()) > 0.0:
time.sleep(sleeptime)
return result
@@ -1188,6 +1365,9 @@ class TrafficGenerator(AbstractMeasurer):
negative_loss=True,
sleep_till_duration=False,
use_latency=False,
+ ramp_up_rate=None,
+ ramp_up_duration=None,
+ state_timeout=240.0,
):
"""Store values accessed by measure().
@@ -1208,7 +1388,6 @@ class TrafficGenerator(AbstractMeasurer):
:param transaction_type: An identifier specifying which counters
and formulas to use when computing attempted and failed
transactions. Default: "packet".
- TODO: Does this also specify parsing for the measured duration?
:param duration_limit: Zero or maximum limit for computed (or given)
duration.
:param negative_loss: If false, negative loss is reported as zero loss.
@@ -1216,6 +1395,9 @@ class TrafficGenerator(AbstractMeasurer):
sleep until it matches duration. Needed for PLRsearch.
:param use_latency: Whether to measure latency during the trial.
Default: False.
+ :param ramp_up_rate: Rate to use in ramp-up trials [pps].
+ :param ramp_up_duration: Duration of ramp-up trials [s].
+ :param state_timeout: Time of life of DUT state [s].
:type frame_size: str or int
:type traffic_profile: str
:type ppta: int
@@ -1228,11 +1410,14 @@ class TrafficGenerator(AbstractMeasurer):
:type negative_loss: bool
:type sleep_till_duration: bool
:type use_latency: bool
+ :type ramp_up_rate: float
+ :type ramp_up_duration: float
+ :type state_timeout: float
"""
self.frame_size = frame_size
self.traffic_profile = str(traffic_profile)
self.resetter = resetter
- self.ppta = ppta
+ self.ppta = int(ppta)
self.traffic_directions = int(traffic_directions)
self.transaction_duration = float(transaction_duration)
self.transaction_scale = int(transaction_scale)
@@ -1241,62 +1426,68 @@ class TrafficGenerator(AbstractMeasurer):
self.negative_loss = bool(negative_loss)
self.sleep_till_duration = bool(sleep_till_duration)
self.use_latency = bool(use_latency)
+ self.ramp_up_rate = float(ramp_up_rate)
+ self.ramp_up_duration = float(ramp_up_duration)
+ self.state_timeout = float(state_timeout)
class OptimizedSearch:
"""Class to be imported as Robot Library, containing search keywords.
Aside of setting up measurer and forwarding arguments,
- the main business is to translate min/max rate from unidir to aggregate.
+ the main business is to translate min/max rate from unidir to aggregated.
"""
@staticmethod
- def perform_optimized_ndrpdr_search(
- frame_size,
- traffic_profile,
- minimum_transmit_rate,
- maximum_transmit_rate,
- packet_loss_ratio=0.005,
- final_relative_width=0.005,
- final_trial_duration=30.0,
- initial_trial_duration=1.0,
- number_of_intermediate_phases=2,
- timeout=720.0,
- doublings=1,
- ppta=1,
- resetter=None,
- traffic_directions=2,
- transaction_duration=0.0,
- transaction_scale=0,
- transaction_type=u"packet",
- use_latency=False,
- ):
+ def perform_mlr_search(
+ frame_size: Union[int, str],
+ traffic_profile: str,
+ min_load: float,
+ max_load: float,
+ loss_ratio: float = 0.005,
+ relative_width: float = 0.005,
+ initial_trial_duration: float = 1.0,
+ final_trial_duration: float = 1.0,
+ duration_sum: float = 21.0,
+ expansion_coefficient: int = 2,
+ preceding_targets: int = 2,
+ search_duration_max: float = 1200.0,
+ ppta: int = 1,
+ resetter: Optional[Callable[[], None]] = None,
+ traffic_directions: int = 2,
+ transaction_duration: float = 0.0,
+ transaction_scale: int = 0,
+ transaction_type: str = "packet",
+ use_latency: bool = False,
+ ramp_up_rate: float = 0.0,
+ ramp_up_duration: float = 0.0,
+ state_timeout: float = 240.0,
+ ) -> List[GoalResult]:
"""Setup initialized TG, perform optimized search, return intervals.
- If transaction_scale is nonzero, all non-init trial durations
- are set to 2.0 (as they do not affect the real trial duration)
+ If transaction_scale is nonzero, all init and non-init trial durations
+ are set to 1.0 (as they do not affect the real trial duration)
and zero intermediate phases are used.
- The initial phase still uses 1.0 seconds, to force remeasurement.
- That makes initial phase act as a warmup.
+ This way no re-measurement happens.
+ Warmup has to be handled via resetter or ramp-up mechanisms.
:param frame_size: Frame size identifier or value [B].
:param traffic_profile: Module name as a traffic profile identifier.
See GPL/traffic_profiles/trex for implemented modules.
- :param minimum_transmit_rate: Minimal load in transactions per second.
- :param maximum_transmit_rate: Maximal load in transactions per second.
- :param packet_loss_ratio: Fraction of packets lost, for PDR [1].
- :param final_relative_width: Final lower bound transmit rate
+ :param min_load: Minimal load in transactions per second.
+ :param max_load: Maximal load in transactions per second.
+ :param loss_ratio: Ratio of packets lost, for PDR [1].
+ :param relative_width: Final lower bound intended load
cannot be more distant that this multiple of upper bound [1].
- :param final_trial_duration: Trial duration for the final phase [s].
:param initial_trial_duration: Trial duration for the initial phase
and also for the first intermediate phase [s].
- :param number_of_intermediate_phases: Number of intermediate phases
+ :param final_trial_duration: Trial duration for the final phase [s].
+ :param duration_sum: Max sum of duration for deciding [s].
+ :param expansion_coefficient: In external search multiply width by this.
+ :param preceding_targets: Number of intermediate phases
to perform before the final phase [1].
- :param timeout: The search will fail itself when not finished
- before this overall time [s].
- :param doublings: How many doublings to do in external search step.
- Default 1 is suitable for fairly stable tests,
- less stable tests might get better overal duration with 2 or more.
+ :param search_duration_max: The search will fail itself
+ when not finished before this overall time [s].
:param ppta: Packets per transaction, aggregated over directions.
Needed for udp_pps which does not have a good transaction counter,
so we need to compute expected number of packets.
@@ -1312,17 +1503,21 @@ class OptimizedSearch:
transactions. Default: "packet".
:param use_latency: Whether to measure latency during the trial.
Default: False.
+ :param ramp_up_rate: Rate to use in ramp-up trials [pps].
+ :param ramp_up_duration: Duration of ramp-up trials [s].
+ :param state_timeout: Time of life of DUT state [s].
:type frame_size: str or int
:type traffic_profile: str
- :type minimum_transmit_rate: float
- :type maximum_transmit_rate: float
- :type packet_loss_ratio: float
- :type final_relative_width: float
- :type final_trial_duration: float
+ :type min_load: float
+ :type max_load: float
+ :type loss_ratio: float
+ :type relative_width: float
:type initial_trial_duration: float
- :type number_of_intermediate_phases: int
- :type timeout: float
- :type doublings: int
+ :type final_trial_duration: float
+ :type duration_sum: float
+ :type expansion_coefficient: int
+ :type preceding_targets: int
+ :type search_duration_max: float
:type ppta: int
:type resetter: Optional[Callable[[], None]]
:type traffic_directions: int
@@ -1330,10 +1525,15 @@ class OptimizedSearch:
:type transaction_scale: int
:type transaction_type: str
:type use_latency: bool
- :returns: Structure containing narrowed down NDR and PDR intervals
- and their measurements.
- :rtype: NdrPdrResult
- :raises RuntimeError: If total duration is larger than timeout.
+ :type ramp_up_rate: float
+ :type ramp_up_duration: float
+ :type state_timeout: float
+ :returns: Goal result (based on unidirectional tps) for each goal.
+ The result contains both the offered load for stat trial,
+ and the conditional throughput for display.
+ :rtype: List[GoalResult]
+ :raises RuntimeError: If search duration exceeds search_duration_max
+ or if min load becomes an upper bound for any search goal.
"""
# we need instance of TrafficGenerator instantiated by Robot Framework
# to be able to use trex_stl-*()
@@ -1341,13 +1541,12 @@ class OptimizedSearch:
u"resources.libraries.python.TrafficGenerator"
)
# Overrides for fixed transaction amount.
- # TODO: Move to robot code? We have two call sites, so this saves space,
- # even though this is surprising for log readers.
if transaction_scale:
initial_trial_duration = 1.0
- final_trial_duration = 2.0
- number_of_intermediate_phases = 0
- timeout = 3600.0
+ final_trial_duration = 1.0
+ preceding_targets = 1
+ # TODO: Move the value to Constants.py?
+ search_duration_max += transaction_scale * 3e-4
tg_instance.set_rate_provider_defaults(
frame_size=frame_size,
traffic_profile=traffic_profile,
@@ -1359,29 +1558,47 @@ class OptimizedSearch:
transaction_scale=transaction_scale,
transaction_type=transaction_type,
use_latency=use_latency,
+ ramp_up_rate=ramp_up_rate,
+ ramp_up_duration=ramp_up_duration,
+ state_timeout=state_timeout,
)
- algorithm = MultipleLossRatioSearch(
- measurer=tg_instance,
- final_trial_duration=final_trial_duration,
- final_relative_width=final_relative_width,
- number_of_intermediate_phases=number_of_intermediate_phases,
- initial_trial_duration=initial_trial_duration,
- timeout=timeout,
- doublings=doublings,
- )
- result = algorithm.narrow_down_ndr_and_pdr(
- min_rate=minimum_transmit_rate,
- max_rate=maximum_transmit_rate,
- packet_loss_ratio=packet_loss_ratio,
- )
- return result
+ if loss_ratio:
+ loss_ratios = [0.0, loss_ratio]
+ exceed_ratio = 0.5
+ else:
+ # Happens in reconf tests.
+ loss_ratios = [0.0]
+ exceed_ratio = 0.0
+ goals = [
+ SearchGoal(
+ loss_ratio=loss_ratio,
+ exceed_ratio=exceed_ratio,
+ relative_width=relative_width,
+ initial_trial_duration=initial_trial_duration,
+ final_trial_duration=final_trial_duration,
+ duration_sum=duration_sum,
+ preceding_targets=preceding_targets,
+ expansion_coefficient=expansion_coefficient,
+ fail_fast=True,
+ )
+ for loss_ratio in loss_ratios
+ ]
+ config = Config()
+ config.goals = goals
+ config.min_load = min_load
+ config.max_load = max_load
+ config.search_duration_max = search_duration_max
+ config.warmup_duration = 1.0
+ algorithm = MultipleLossRatioSearch(config)
+ results = algorithm.search(measurer=tg_instance, debug=logger.debug)
+ return [results[goal] for goal in goals]
@staticmethod
def perform_soak_search(
frame_size,
traffic_profile,
- minimum_transmit_rate,
- maximum_transmit_rate,
+ min_load,
+ max_load,
plr_target=1e-7,
tdpt=0.1,
initial_count=50,
@@ -1394,15 +1611,18 @@ class OptimizedSearch:
transaction_scale=0,
transaction_type=u"packet",
use_latency=False,
+ ramp_up_rate=None,
+ ramp_up_duration=None,
+ state_timeout=240.0,
):
"""Setup initialized TG, perform soak search, return avg and stdev.
:param frame_size: Frame size identifier or value [B].
:param traffic_profile: Module name as a traffic profile identifier.
See GPL/traffic_profiles/trex for implemented modules.
- :param minimum_transmit_rate: Minimal load in transactions per second.
- :param maximum_transmit_rate: Maximal load in transactions per second.
- :param plr_target: Fraction of packets lost to achieve [1].
+ :param min_load: Minimal load in transactions per second.
+ :param max_load: Maximal load in transactions per second.
+ :param plr_target: Ratio of packets lost to achieve [1].
:param tdpt: Trial duration per trial.
The algorithm linearly increases trial duration with trial number,
this is the increment between succesive trials, in seconds.
@@ -1430,10 +1650,13 @@ class OptimizedSearch:
transactions. Default: "packet".
:param use_latency: Whether to measure latency during the trial.
Default: False.
+ :param ramp_up_rate: Rate to use in ramp-up trials [pps].
+ :param ramp_up_duration: Duration of ramp-up trials [s].
+ :param state_timeout: Time of life of DUT state [s].
:type frame_size: str or int
:type traffic_profile: str
- :type minimum_transmit_rate: float
- :type maximum_transmit_rate: float
+ :type min_load: float
+ :type max_load: float
:type plr_target: float
:type initial_count: int
:type timeout: float
@@ -1445,15 +1668,16 @@ class OptimizedSearch:
:type transaction_scale: int
:type transaction_type: str
:type use_latency: bool
- :returns: Average and stdev of estimated aggregate rate giving PLR.
+ :type ramp_up_rate: float
+ :type ramp_up_duration: float
+ :type state_timeout: float
+ :returns: Average and stdev of estimated aggregated rate giving PLR.
:rtype: 2-tuple of float
"""
tg_instance = BuiltIn().get_library_instance(
u"resources.libraries.python.TrafficGenerator"
)
# Overrides for fixed transaction amount.
- # TODO: Move to robot code? We have a single call site
- # but MLRsearch has two and we want the two to be used similarly.
if transaction_scale:
timeout = 7200.0
tg_instance.set_rate_provider_defaults(
@@ -1468,6 +1692,9 @@ class OptimizedSearch:
transaction_scale=transaction_scale,
transaction_type=transaction_type,
use_latency=use_latency,
+ ramp_up_rate=ramp_up_rate,
+ ramp_up_duration=ramp_up_duration,
+ state_timeout=state_timeout,
)
algorithm = PLRsearch(
measurer=tg_instance,
@@ -1478,7 +1705,7 @@ class OptimizedSearch:
trace_enabled=trace_enabled,
)
result = algorithm.search(
- min_rate=minimum_transmit_rate,
- max_rate=maximum_transmit_rate,
+ min_rate=min_load,
+ max_rate=max_load,
)
return result
diff --git a/resources/libraries/python/TrafficScriptExecutor.py b/resources/libraries/python/TrafficScriptExecutor.py
index 8faa084ca1..0a45a0b22f 100644
--- a/resources/libraries/python/TrafficScriptExecutor.py
+++ b/resources/libraries/python/TrafficScriptExecutor.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/VPPUtil.py b/resources/libraries/python/VPPUtil.py
index e343d38d2f..1ede76cdd4 100644
--- a/resources/libraries/python/VPPUtil.py
+++ b/resources/libraries/python/VPPUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -18,6 +18,9 @@ from robot.api import logger
from resources.libraries.python.Constants import Constants
from resources.libraries.python.DUTSetup import DUTSetup
from resources.libraries.python.PapiExecutor import PapiSocketExecutor
+from resources.libraries.python.model.ExportResult import (
+ export_dut_type_and_version
+)
from resources.libraries.python.ssh import exec_cmd_no_error, exec_cmd
from resources.libraries.python.topology import Topology, SocketType, NodeType
@@ -26,35 +29,6 @@ class VPPUtil:
"""General class for any VPP related methods/functions."""
@staticmethod
- def show_vpp_settings(node, *additional_cmds):
- """Print default VPP settings. In case others are needed, can be
- accepted as next parameters (each setting one parameter), preferably
- in form of a string.
-
- :param node: VPP node.
- :param additional_cmds: Additional commands that the vpp should print
- settings for.
- :type node: dict
- :type additional_cmds: tuple
- """
- def_setting_tb_displayed = {
- u"IPv6 FIB": u"ip6 fib",
- u"IPv4 FIB": u"ip fib",
- u"Interface IP": u"int addr",
- u"Interfaces": u"int",
- u"ARP": u"ip arp",
- u"Errors": u"err"
- }
-
- if additional_cmds:
- for cmd in additional_cmds:
- def_setting_tb_displayed[f"Custom Setting: {cmd}"] = cmd
-
- for _, cmd in def_setting_tb_displayed.items():
- command = f"vppctl sh {cmd}"
- exec_cmd_no_error(node, command, timeout=30, sudo=True)
-
- @staticmethod
def restart_vpp_service(node, node_key=None):
"""Restart VPP service on the specified topology node.
@@ -67,9 +41,18 @@ class VPPUtil:
"""
# Containers have a separate lifecycle, but better be safe.
PapiSocketExecutor.disconnect_all_sockets_by_node(node)
- DUTSetup.restart_service(node, Constants.VPP_UNIT)
+
+ VPPUtil.stop_vpp_service(node)
+ command = "/usr/bin/vpp -c /etc/vpp/startup.conf"
+ message = f"Node {node[u'host']} failed to start VPP!"
+ exec_cmd_no_error(
+ node, command, timeout=180, sudo=True, message=message
+ )
+
if node_key:
Topology.add_new_socket(
+ node, SocketType.CLI, node_key, Constants.SOCKCLI_PATH)
+ Topology.add_new_socket(
node, SocketType.PAPI, node_key, Constants.SOCKSVR_PATH)
Topology.add_new_socket(
node, SocketType.STATS, node_key, Constants.SOCKSTAT_PATH)
@@ -96,12 +79,19 @@ class VPPUtil:
:type node: dict
:type node_key: str
"""
- # Containers have a separate lifecycle, but better be safe.
PapiSocketExecutor.disconnect_all_sockets_by_node(node)
- DUTSetup.stop_service(node, Constants.VPP_UNIT)
+ command = "pkill -9 vpp; sleep 1"
+ exec_cmd(node, command, timeout=180, sudo=True)
+ command = (
+ "/bin/rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api"
+ )
+ exec_cmd(node, command, timeout=180, sudo=True)
+
if node_key:
- Topology.del_node_socket_id(node, SocketType.PAPI, node_key)
- Topology.del_node_socket_id(node, SocketType.STATS, node_key)
+ if Topology.get_node_sockets(node, socket_type=SocketType.PAPI):
+ Topology.del_node_socket_id(node, SocketType.PAPI, node_key)
+ if Topology.get_node_sockets(node, socket_type=SocketType.STATS):
+ Topology.del_node_socket_id(node, SocketType.STATS, node_key)
@staticmethod
def stop_vpp_service_on_all_duts(nodes):
@@ -115,6 +105,39 @@ class VPPUtil:
VPPUtil.stop_vpp_service(node, node_key)
@staticmethod
+ def install_vpp_on_all_duts(nodes, vpp_pkg_dir):
+ """Install VPP on all DUT nodes.
+
+ :param nodes: Nodes in the topology.
+ :param vpp_pkg_dir: Path to directory where VPP packages are stored.
+ :type nodes: dict
+ :type vpp_pkg_dir: str
+ """
+ VPPUtil.stop_vpp_service_on_all_duts(nodes)
+ for node in nodes.values():
+ message = f"Failed to install VPP on host {node['host']}!"
+ if node["type"] == NodeType.DUT:
+ command = "mkdir -p /var/log/vpp/"
+ exec_cmd(node, command, sudo=True)
+
+ command = "ln -s /dev/null /etc/systemd/system/vpp.service"
+ exec_cmd(node, command, sudo=True)
+
+ command = "ln -s /dev/null /etc/sysctl.d/80-vpp.conf"
+ exec_cmd(node, command, sudo=True)
+
+ command = "apt-get purge -y '*vpp*' || true"
+ exec_cmd_no_error(node, command, timeout=120, sudo=True)
+
+ command = f"dpkg -i --force-all {vpp_pkg_dir}*.deb"
+ exec_cmd_no_error(
+ node, command, timeout=120, sudo=True, message=message
+ )
+
+ command = "dpkg -l | grep vpp"
+ exec_cmd_no_error(node, command, sudo=True)
+
+ @staticmethod
def verify_vpp_installed(node):
"""Verify that VPP is installed on the specified topology node.
@@ -197,6 +220,7 @@ class VPPUtil:
"""Run "show_version" PAPI command.
Socket is configurable, so VPP inside container can be accessed.
+ The result is exported to JSON UTI output as "dut-version".
:param node: Node to run command on.
:param remote_vpp_socket: Path to remote socket to target VPP.
@@ -214,7 +238,9 @@ class VPPUtil:
reply = papi_exec.add(cmd).get_reply()
if log:
logger.info(f"VPP version: {reply[u'version']}\n")
- return f"{reply[u'version']}"
+ version = f"{reply[u'version']}"
+ export_dut_type_and_version(u"VPP", version)
+ return version
@staticmethod
def show_vpp_version_on_all_duts(nodes):
@@ -402,3 +428,20 @@ class VPPUtil:
reply = papi_exec.add(cmd, **args).get_reply()
return reply[u"next_index"]
+
+ @staticmethod
+ def vpp_set_neighbor_limit_on_all_duts(nodes, count):
+ """VPP set neighbor count limit on all DUTs in the given topology.
+
+ :param nodes: Nodes in the topology.
+ :param count: Neighbor count need to set.
+ :type nodes: dict
+ :type count: int
+ """
+ for node in nodes.values():
+ if node[u"type"] == NodeType.DUT:
+ cmd = f"set ip neighbor-config ip4 limit {count}"
+ PapiSocketExecutor.run_cli_cmd(node, cmd)
+
+ cmd = f"set ip neighbor-config ip6 limit {count}"
+ PapiSocketExecutor.run_cli_cmd(node, cmd)
diff --git a/resources/libraries/python/VatExecutor.py b/resources/libraries/python/VatExecutor.py
deleted file mode 100644
index 26d4b75781..0000000000
--- a/resources/libraries/python/VatExecutor.py
+++ /dev/null
@@ -1,397 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""VAT executor library."""
-
-import json
-
-from os import remove
-
-from paramiko.ssh_exception import SSHException
-from robot.api import logger
-
-import resources.libraries.python.DUTSetup as PidLib
-
-from resources.libraries.python.Constants import Constants
-from resources.libraries.python.PapiHistory import PapiHistory
-from resources.libraries.python.ssh import SSH, SSHTimeout
-
-__all__ = [u"VatExecutor"]
-
-
-def cleanup_vat_json_output(json_output, vat_name=None):
- """Return VAT JSON output cleaned from VAT clutter.
-
- Clean up VAT JSON output from clutter like vat# prompts and such.
-
- :param json_output: Cluttered JSON output.
- :param vat_name: Name of the VAT script.
- :type json_output: JSON
- :type vat_name: str
- :returns: Cleaned up output JSON string.
- :rtype: JSON
- """
-
- retval = json_output
- clutter = [u"vat#", u"dump_interface_table error: Misc"]
- if vat_name:
- remote_file_path = f"{Constants.REMOTE_FW_DIR}/" \
- f"{Constants.RESOURCES_TPL_VAT}/{vat_name}"
- clutter.append(f"{remote_file_path}(2):")
- for garbage in clutter:
- retval = retval.replace(garbage, u"")
- return retval
-
-
-def get_vpp_pid(node):
- """Get PID of running VPP process.
-
- :param node: DUT node.
- :type node: dict
- :returns: PID of VPP process / List of PIDs if more VPP processes are
- running on the DUT node.
- :rtype: int or list
- """
- pid = PidLib.DUTSetup.get_pid(node, u"vpp")
- return pid
-
-
-class VatExecutor:
- """Contains methods for executing VAT commands on DUTs."""
- def __init__(self):
- self._stdout = None
- self._stderr = None
- self._ret_code = None
- self._script_name = None
-
- def execute_script(
- self, vat_name, node, timeout=120, json_out=True,
- copy_on_execute=False, history=True):
- """Execute VAT script on remote node, and store the result. There is an
- option to copy script from local host to remote host before execution.
- Path is defined automatically.
-
- :param vat_name: Name of the vat script file. Only the file name of
- the script is required, the resources path is prepended
- automatically.
- :param node: Node to execute the VAT script on.
- :param timeout: Seconds to allow the script to run.
- :param json_out: Require JSON output.
- :param copy_on_execute: If true, copy the file from local host to remote
- before executing.
- :param history: If true, add command to history.
- :type vat_name: str
- :type node: dict
- :type timeout: int
- :type json_out: bool
- :type copy_on_execute: bool
- :type history: bool
- :raises SSHException: If cannot open connection for VAT.
- :raises SSHTimeout: If VAT execution is timed out.
- :raises RuntimeError: If VAT script execution fails.
- """
- ssh = SSH()
- try:
- ssh.connect(node)
- except:
- raise SSHException(
- f"Cannot open SSH connection to execute VAT command(s) "
- f"from vat script {vat_name}"
- )
-
- if copy_on_execute:
- ssh.scp(vat_name, vat_name)
- remote_file_path = vat_name
- if history:
- with open(vat_name, u"rt") as vat_file:
- for line in vat_file:
- PapiHistory.add_to_papi_history(
- node, line.replace(u"\n", u""), papi=False
- )
- else:
- remote_file_path = f"{Constants.REMOTE_FW_DIR}/" \
- f"{Constants.RESOURCES_TPL_VAT}/{vat_name}"
-
- cmd = f"{Constants.VAT_BIN_NAME}" \
- f"{u' json' if json_out is True else u''} " \
- f"in {remote_file_path} script"
- try:
- ret_code, stdout, stderr = ssh.exec_command_sudo(
- cmd=cmd, timeout=timeout
- )
- except SSHTimeout:
- logger.error(f"VAT script execution timeout: {cmd}")
- raise
- except Exception:
- raise RuntimeError(f"VAT script execution failed: {cmd}")
-
- self._ret_code = ret_code
- self._stdout = stdout
- self._stderr = stderr
- self._script_name = vat_name
-
- def write_and_execute_script(
- self, node, tmp_fn, commands, timeout=300, json_out=False):
- """Write VAT commands to the script, copy it to node and execute it.
-
- :param node: VPP node.
- :param tmp_fn: Path to temporary file script.
- :param commands: VAT command list.
- :param timeout: Seconds to allow the script to run.
- :param json_out: Require JSON output.
- :type node: dict
- :type tmp_fn: str
- :type commands: list
- :type timeout: int
- :type json_out: bool
- """
- with open(tmp_fn, u"wt") as tmp_f:
- tmp_f.writelines(commands)
-
- self.execute_script(
- tmp_fn, node, timeout=timeout, json_out=json_out,
- copy_on_execute=True
- )
- remove(tmp_fn)
-
- def execute_script_json_out(self, vat_name, node, timeout=120):
- """Pass all arguments to 'execute_script' method, then cleanup returned
- json output.
-
- :param vat_name: Name of the vat script file. Only the file name of
- the script is required, the resources path is prepended
- automatically.
- :param node: Node to execute the VAT script on.
- :param timeout: Seconds to allow the script to run.
- :type vat_name: str
- :type node: dict
- :type timeout: int
- """
- self.execute_script(vat_name, node, timeout, json_out=True)
- self._stdout = cleanup_vat_json_output(self._stdout, vat_name=vat_name)
-
- def script_should_have_failed(self):
- """Read return code from last executed script and raise exception if the
- script didn't fail."""
- if self._ret_code is None:
- raise Exception(u"First execute the script!")
- if self._ret_code == 0:
- raise AssertionError(
- f"VAT Script execution passed, but failure was expected: "
- f"{self._script_name}"
- )
-
- def script_should_have_passed(self):
- """Read return code from last executed script and raise exception if the
- script failed."""
- if self._ret_code is None:
- raise Exception(u"First execute the script!")
- if self._ret_code != 0:
- raise AssertionError(
- f"VAT Script execution failed, but success was expected: "
- f"{self._script_name}"
- )
-
- def get_script_stdout(self):
- """Returns value of stdout from last executed script."""
- return self._stdout
-
- def get_script_stderr(self):
- """Returns value of stderr from last executed script."""
- return self._stderr
-
- @staticmethod
- def cmd_from_template(node, vat_template_file, json_param=True, **vat_args):
- """Execute VAT script on specified node. This method supports
- script templates with parameters.
-
- :param node: Node in topology on witch the script is executed.
- :param vat_template_file: Template file of VAT script.
- :param json_param: Require JSON mode.
- :param vat_args: Arguments to the template file.
- :returns: List of JSON objects returned by VAT.
- """
- with VatTerminal(node, json_param=json_param) as vat:
- return vat.vat_terminal_exec_cmd_from_template(
- vat_template_file, **vat_args
- )
-
-
-class VatTerminal:
- """VAT interactive terminal.
-
- :param node: Node to open VAT terminal on.
- :param json_param: Defines if outputs from VAT are in JSON format.
- Default is True.
- :type node: dict
- :type json_param: bool
-
- """
-
- __VAT_PROMPT = (u"vat# ", )
- __LINUX_PROMPT = (u":~# ", u":~$ ", u"~]$ ", u"~]# ")
-
- def __init__(self, node, json_param=True):
- json_text = u" json" if json_param else u""
- self.json = json_param
- self._node = node
- self._ssh = SSH()
- self._ssh.connect(self._node)
- try:
- self._tty = self._ssh.interactive_terminal_open()
- except Exception:
- raise RuntimeError(
- f"Cannot open interactive terminal on node "
- f"{self._node[u'host']}"
- )
-
- for _ in range(3):
- try:
- self._ssh.interactive_terminal_exec_command(
- self._tty, f"sudo -S {Constants.VAT_BIN_NAME}{json_text}",
- self.__VAT_PROMPT
- )
- except Exception:
- continue
- else:
- break
- else:
- vpp_pid = get_vpp_pid(self._node)
- if vpp_pid:
- if isinstance(vpp_pid, int):
- logger.trace(f"VPP running on node {self._node[u'host']}")
- else:
- logger.error(
- f"More instances of VPP running "
- f"on node {self._node[u'host']}."
- )
- else:
- logger.error(f"VPP not running on node {self._node[u'host']}.")
- raise RuntimeError(
- f"Failed to open VAT console on node {self._node[u'host']}"
- )
-
- self._exec_failure = False
- self.vat_stdout = None
-
- def __enter__(self):
- return self
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- self.vat_terminal_close()
-
- def vat_terminal_exec_cmd(self, cmd):
- """Execute command on the opened VAT terminal.
-
- :param cmd: Command to be executed.
-
- :returns: Command output in python representation of JSON format or
- None if not in JSON mode.
- """
- PapiHistory.add_to_papi_history(self._node, cmd, papi=False)
- logger.debug(f"Executing command in VAT terminal: {cmd}")
- try:
- out = self._ssh.interactive_terminal_exec_command(
- self._tty, cmd, self.__VAT_PROMPT
- )
- self.vat_stdout = out
- except Exception:
- self._exec_failure = True
- vpp_pid = get_vpp_pid(self._node)
- if vpp_pid:
- if isinstance(vpp_pid, int):
- msg = f"VPP running on node {self._node[u'host']} " \
- f"but VAT command {cmd} execution failed."
- else:
- msg = f"More instances of VPP running on node " \
- f"{self._node[u'host']}. VAT command {cmd} " \
- f"execution failed."
- else:
- msg = f"VPP not running on node {self._node[u'host']}. " \
- f"VAT command {cmd} execution failed."
- raise RuntimeError(msg)
-
- logger.debug(f"VAT output: {out}")
- if self.json:
- obj_start = out.find(u"{")
- obj_end = out.rfind(u"}")
- array_start = out.find(u"[")
- array_end = out.rfind(u"]")
-
- if obj_start == -1 and array_start == -1:
- raise RuntimeError(f"VAT command {cmd}: no JSON data.")
-
- if obj_start < array_start or array_start == -1:
- start = obj_start
- end = obj_end + 1
- else:
- start = array_start
- end = array_end + 1
- out = out[start:end]
- json_out = json.loads(out)
- return json_out
-
- return None
-
- def vat_terminal_close(self):
- """Close VAT terminal."""
- # interactive terminal is dead, we only need to close session
- if not self._exec_failure:
- try:
- self._ssh.interactive_terminal_exec_command(
- self._tty, u"quit", self.__LINUX_PROMPT
- )
- except Exception:
- vpp_pid = get_vpp_pid(self._node)
- if vpp_pid:
- if isinstance(vpp_pid, int):
- logger.trace(
- f"VPP running on node {self._node[u'host']}."
- )
- else:
- logger.error(
- f"More instances of VPP running "
- f"on node {self._node[u'host']}."
- )
- else:
- logger.error(
- f"VPP not running on node {self._node[u'host']}."
- )
- raise RuntimeError(
- f"Failed to close VAT console "
- f"on node {self._node[u'host']}"
- )
- try:
- self._ssh.interactive_terminal_close(self._tty)
- except Exception:
- raise RuntimeError(
- f"Cannot close interactive terminal "
- f"on node {self._node[u'host']}"
- )
-
- def vat_terminal_exec_cmd_from_template(self, vat_template_file, **args):
- """Execute VAT script from a file.
-
- :param vat_template_file: Template file name of a VAT script.
- :param args: Dictionary of parameters for VAT script.
- :returns: List of JSON objects returned by VAT.
- """
- file_path = f"{Constants.RESOURCES_TPL_VAT}/{vat_template_file}"
-
- with open(file_path, u"rt") as template_file:
- cmd_template = template_file.readlines()
- ret = list()
- for line_tmpl in cmd_template:
- vat_cmd = line_tmpl.format(**args)
- ret.append(self.vat_terminal_exec_cmd(vat_cmd.replace(u"\n", u"")))
- return ret
diff --git a/resources/libraries/python/VatJsonUtil.py b/resources/libraries/python/VatJsonUtil.py
deleted file mode 100644
index 594d3e2f39..0000000000
--- a/resources/libraries/python/VatJsonUtil.py
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""Utilities to work with JSON data format from VAT."""
-
-from robot.api import logger
-
-from resources.libraries.python.parsers.JsonParser import JsonParser
-
-
-class VatJsonUtil:
- """Utilities to work with JSON data format from VAT."""
-
- @staticmethod
- def _convert_mac_to_number_list(mac_address):
- """Convert MAC address string to list of decimal numbers.
-
- Converts a ":" separated MAC address to decimal number list as used
- in JSON interface dump.
-
- :param mac_address: MAC address.
- :type mac_address: str
- :returns: List representation of MAC address.
- :rtype: list
- """
- list_mac = list()
- for num in mac_address.split(u":"):
- list_mac.append(int(num, 16))
- return list_mac
-
- @staticmethod
- def get_vpp_interface_by_mac(interfaces_list, mac_address):
- """Return interface dictionary from interface_list by MAC address.
-
- Extracts interface dictionary from all of the interfaces in interfaces
- list parsed from JSON according to mac_address of the interface.
-
- :param interfaces_list: Interfaces parsed from JSON.
- :param mac_address: MAC address of interface we are looking for.
- :type interfaces_list: dict
- :type mac_address: str
- :returns: Interface from JSON.
- :rtype: dict
- """
- interface_dict = dict()
- list_mac_address = VatJsonUtil._convert_mac_to_number_list(mac_address)
- logger.trace(
- f"MAC address {mac_address} converted to list {list_mac_address}."
- )
- for interface in interfaces_list:
- # TODO: create vat json integrity checking and move there
- if u"l2_address" not in interface:
- raise KeyError(
- u"key l2_address not found in interface dict."
- u"Probably input list is not parsed from correct VAT "
- u"json output."
- )
- if u"l2_address_length" not in interface:
- raise KeyError(
- u"key l2_address_length not found in interface "
- u"dict. Probably input list is not parsed from correct "
- u"VAT json output."
- )
- mac_from_json = interface[u"l2_address"][:6]
- if mac_from_json == list_mac_address:
- if interface[u"l2_address_length"] != 6:
- raise ValueError(u"l2_address_length value is not 6.")
- interface_dict = interface
- break
- return interface_dict
-
- @staticmethod
- def update_vpp_interface_data_from_json(node, interface_dump_json):
- """Update vpp node data in node__DICT from JSON interface dump.
-
- This method updates vpp interface names and sw if indexes according to
- interface MAC addresses found in interface_dump_json.
-
- :param node: Node dictionary.
- :param interface_dump_json: JSON output from dump_interface_list VAT
- command.
- :type node: dict
- :type interface_dump_json: str
- """
- interface_list = JsonParser().parse_data(interface_dump_json)
- for ifc in node[u"interfaces"].values():
- if_mac = ifc[u"mac_address"]
- interface_dict = VatJsonUtil.get_vpp_interface_by_mac(
- interface_list, if_mac
- )
- if not interface_dict:
- logger.trace(f"Interface {ifc} not found by MAC {if_mac}")
- ifc[u"vpp_sw_index"] = None
- continue
- ifc[u"name"] = interface_dict[u"interface_name"]
- ifc[u"vpp_sw_index"] = interface_dict[u"sw_if_index"]
- ifc[u"mtu"] = interface_dict[u"mtu"]
-
- @staticmethod
- def get_interface_sw_index_from_json(interface_dump_json, interface_name):
- """Get sw_if_index from given JSON output by interface name.
-
- :param interface_dump_json: JSON output from dump_interface_list VAT
- command.
- :param interface_name: Interface name.
- :type interface_dump_json: str
- :type interface_name: str
- :returns: SW interface index.
- :rtype: int
- :raises ValueError: If interface not found in interface_dump_json.
- """
- logger.trace(interface_dump_json)
- interface_list = JsonParser().parse_data(interface_dump_json)
- for interface in interface_list:
- try:
- if interface[u"interface_name"] == interface_name:
- index = interface[u"sw_if_index"]
- logger.debug(
- f"Interface with name {interface_name} "
- f"has sw_if_index {index}."
- )
- return index
- except KeyError:
- pass
- raise ValueError(f"Interface with name {interface_name} not found.")
-
- @staticmethod
- def get_interface_name_from_json(interface_dump_json, sw_if_index):
- """Get interface name from given JSON output by sw_if_index.
-
- :param interface_dump_json: JSON output from dump_interface_list VAT
- command.
- :param sw_if_index: SW interface index.
- :type interface_dump_json: str
- :type sw_if_index: int
- :returns: Interface name.
- :rtype: str
- :raises ValueError: If interface not found in interface_dump_json.
- """
- logger.trace(interface_dump_json)
- interface_list = JsonParser().parse_data(interface_dump_json)
- for interface in interface_list:
- try:
- if interface[u"sw_if_index"] == sw_if_index:
- interface_name = interface[u"interface_name"]
- logger.debug(
- f"Interface with sw_if_index {sw_if_index} "
- f"has name {interface_name}."
- )
- return interface_name
- except KeyError:
- pass
- raise ValueError(f"Interface with sw_if_index {sw_if_index} not found.")
-
- @staticmethod
- def get_interface_mac_from_json(interface_dump_json, sw_if_index):
- """Get interface MAC address from given JSON output by sw_if_index.
-
- :param interface_dump_json: JSON output from dump_interface_list VAT
- command.
- :param sw_if_index: SW interface index.
- :type interface_dump_json: str
- :type sw_if_index: int
- :returns: Interface MAC address.
- :rtype: str
- :raises ValueError: If interface not found in interface_dump_json.
- """
- logger.trace(interface_dump_json)
- interface_list = JsonParser().parse_data(interface_dump_json)
- for interface in interface_list:
- try:
- if interface[u"sw_if_index"] == sw_if_index:
- mac_from_json = interface[u"l2_address"][:6] \
- if u"l2_address" in list(interface.keys()) else u""
- mac_address = u":".join(
- f"{item:02x}" for item in mac_from_json
- )
- logger.debug(
- f"Interface with sw_if_index {sw_if_index} "
- f"has MAC address {mac_address}."
- )
- return mac_address
- except KeyError:
- pass
- raise ValueError(f"Interface with sw_if_index {sw_if_index} not found.")
-
- @staticmethod
- def verify_vat_retval(vat_out, exp_retval=0, err_msg=u"VAT cmd failed"):
- """Verify return value of VAT command.
-
- VAT command JSON output should be object (dict in python) or array. We
- are looking for something like this: { "retval": 0 }. Verification is
- skipped if VAT output does not contain return value element or root
- elemet is array.
-
- :param vat_out: VAT command output in python representation of JSON.
- :param exp_retval: Expected return value (default 0).
- :err_msg: Message to be displayed in case of error (optional).
- :type vat_out: dict or list
- :type exp_retval: int
- :type err_msg: str
- :raises RuntimeError: If VAT command return value is incorrect.
- """
- if isinstance(vat_out, dict):
- retval = vat_out.get(u"retval")
- if retval is not None:
- if retval != exp_retval:
- raise RuntimeError(err_msg)
diff --git a/resources/libraries/python/VhostUser.py b/resources/libraries/python/VhostUser.py
index c6b9185e14..b36edbf95a 100644
--- a/resources/libraries/python/VhostUser.py
+++ b/resources/libraries/python/VhostUser.py
@@ -62,7 +62,7 @@ class VhostUser:
:returns: SW interface index.
:rtype: int
"""
- cmd = u"create_vhost_user_if"
+ cmd = u"create_vhost_user_if_v2"
err_msg = f"Failed to create Vhost-user interface " \
f"on host {node[u'host']}"
if virtio_feature_mask is None:
@@ -203,7 +203,7 @@ class VirtioFeatureMask:
@staticmethod
def is_feature_enabled(virtio_feature_mask, virtio_feature_flag):
"""Checks if concrete virtio feature is enabled within
- virtio_feature_mask
+ virtio_feature_mask
:param virtio_feature_mask: Mask of enabled virtio features
:param virtio_feature_flag: Checked virtio feature
:type virtio_feature_mask: int
diff --git a/resources/libraries/python/VppApiCrc.py b/resources/libraries/python/VppApiCrc.py
index 693dac064a..a8947a18cb 100644
--- a/resources/libraries/python/VppApiCrc.py
+++ b/resources/libraries/python/VppApiCrc.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -75,8 +75,9 @@ class VppApiCrcChecker:
Starts the same as _expected, but each time an encountered api,crc pair
fits the expectation, the pair is removed from all collections
- within this mapping. Ideally, the active mappings will become empty.
- If not, it is an error, VPP removed or renamed a message CSIT needs."""
+ within this mapping. It is fine if an api is missing
+ from some collections, as long as it is not missing from all collections
+ that remained in _expected."""
self._found = dict()
"""Mapping from API name to CRC string.
@@ -84,6 +85,12 @@ class VppApiCrcChecker:
This gets populated with CRCs found in .api.json,
to serve as a hint when reporting errors."""
+ self._options = dict()
+ """Mapping from API name to options dictionary.
+
+ This gets populated with options found in .api.json,
+ to serve as a hint when reporting errors."""
+
self._reported = dict()
"""Mapping from API name to CRC string.
@@ -171,7 +178,34 @@ class VppApiCrcChecker:
return _str(crc)
raise RuntimeError(f"No CRC found for message: {msg_obj!r}")
- def _process_crc(self, api_name, crc):
+ @staticmethod
+ def _get_options(msg_obj, version):
+ """Utility function to extract API options from an intermediate json.
+
+ Empty dict is returned if options are not found,
+ so old VPP builds can be tested without spamming.
+ If version starts with "0.", add a fake option,
+ as the message is treated as "in-progress" by the API upgrade process.
+
+ :param msg_obj: Loaded json object, item of "messages" list.
+ :param version: Version string from the .api.json file.
+ :type msg_obj: list of various types
+ :type version: Optional[str]
+ :returns: Object found as value for "options" key.
+ :rtype: dict
+ """
+ options = dict()
+ for item in reversed(msg_obj):
+ if not isinstance(item, dict):
+ continue
+ options = item.get(u"options", dict())
+ if not options:
+ break
+ if version is None or version.startswith(u"0."):
+ options[u"version"] = version
+ return options
+
+ def _process_crc(self, api_name, crc, options):
"""Compare API to verified collections, update class state.
Here, API stands for (message name, CRC) pair.
@@ -195,16 +229,21 @@ class VppApiCrcChecker:
Attempts to overwrite value in _found or _reported should not happen,
so the code does not check for that, simply overwriting.
+ Options are stored, to be examined later.
+
The intended usage is to call this method multiple times,
and then raise exception listing all _reported.
:param api_name: API name to check.
:param crc: Discovered CRC to check for the name.
+ :param options: Empty dict or options value for in .api.json
:type api_name: str
:type crc: str
+ :type options: dict
"""
# Regardless of the result, remember as found.
self._found[api_name] = crc
+ self._options[api_name] = options
old_expected = self._expected
new_expected = old_expected.copy()
for collection_name, name_to_crc_mapping in old_expected.items():
@@ -244,11 +283,13 @@ class VppApiCrcChecker:
continue
with open(f"{root}/{filename}", u"rt") as file_in:
json_obj = json.load(file_in)
+ version = json_obj[u"options"].get(u"version", None)
msgs = json_obj[u"messages"]
for msg_obj in msgs:
msg_name = self._get_name(msg_obj)
msg_crc = self._get_crc(msg_obj)
- self._process_crc(msg_name, msg_crc)
+ msg_options = self._get_options(msg_obj, version)
+ self._process_crc(msg_name, msg_crc, msg_options)
logger.debug(f"Surviving collections: {self._expected.keys()!r}")
def report_initial_conflicts(self, report_missing=False):
@@ -285,16 +326,21 @@ class VppApiCrcChecker:
if not report_missing:
return
missing = {name: mapp for name, mapp in self._missing.items() if mapp}
- if missing:
- missing_indented = json.dumps(
- missing, indent=1, sort_keys=True, separators=[u",", u":"])
- self.log_and_raise(
- f"API CRCs missing from .api.json:\n{missing_indented}"
- )
+ if set(missing.keys()) < set(self._expected.keys()):
+ # There is a collection where nothing is missing.
+ return
+ missing_indented = json.dumps(
+ missing, indent=1, sort_keys=True, separators=[u",", u":"]
+ )
+ self.log_and_raise(
+ f"API CRCs missing from .api.json:\n{missing_indented}"
+ )
def check_api_name(self, api_name):
"""Fail if the api_name has no, or different from known CRC associated.
+ Print warning if options contain anything more than vat_help.
+
Do not fail if this particular failure has been already reported.
Intended use: Call during test (not in initialization),
@@ -328,9 +374,30 @@ class VppApiCrcChecker:
if name_to_crc_mapping[api_name] == crc:
matching = True
break
- if matching:
+ if not matching:
+ self._reported[api_name] = crc
+ self.log_and_raise(
+ f"No active collection has API {api_name!r} with CRC {crc!r}"
+ )
+ options = self._options.get(api_name, None)
+ if not options:
+ # None means CSIT is attempting a new API on an old VPP build.
+ # If that is an issue, the API has been reported as missing already.
return
- self._reported[api_name] = crc
- self.log_and_raise(
- f"No active collection contains API {api_name!r} with CRC {crc!r}"
- )
+ options.pop(u"vat_help", None)
+ if options:
+ self._reported[api_name] = crc
+ logger.console(f"{api_name} used but has options {options}")
+
+ def print_warnings(self):
+ """Call check_api_name for API names in surviving collections.
+
+ Useful for VPP CRC checking job.
+ The API name is only checked when it appears
+ in all surviving collections.
+ """
+ api_name_to_crc_maps = self._expected.values()
+ api_name_sets = (set(n2c.keys()) for n2c in api_name_to_crc_maps)
+ api_names = set.intersection(*api_name_sets)
+ for api_name in sorted(api_names):
+ self.check_api_name(api_name)
diff --git a/resources/libraries/python/VppConfigGenerator.py b/resources/libraries/python/VppConfigGenerator.py
index 437386d81d..5b2e883b97 100644
--- a/resources/libraries/python/VppConfigGenerator.py
+++ b/resources/libraries/python/VppConfigGenerator.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -11,12 +11,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-"""VPP Configuration File Generator library.
-
-TODO: Support initialization with default values,
-so that we do not need to have block of 6 "Add Unix" commands
-in 7 various places of CSIT code.
-"""
+"""VPP Configuration File Generator library."""
import re
@@ -26,7 +21,7 @@ from resources.libraries.python.topology import NodeType
from resources.libraries.python.topology import Topology
from resources.libraries.python.VPPUtil import VPPUtil
-__all__ = [u"VppConfigGenerator"]
+__all__ = ["VppConfigGenerator", "VppInitConfig"]
def pci_dev_check(pci_dev):
@@ -54,21 +49,17 @@ class VppConfigGenerator:
def __init__(self):
"""Initialize library."""
# VPP Node to apply configuration on
- self._node = u""
+ self._node = ""
# Topology node key
- self._node_key = u""
+ self._node_key = ""
# VPP Configuration
self._nodeconfig = dict()
# Serialized VPP Configuration
- self._vpp_config = u""
+ self._vpp_config = ""
# VPP Service name
- self._vpp_service_name = u"vpp"
- # VPP Logfile location
- self._vpp_logfile = u"/tmp/vpe.log"
+ self._vpp_service_name = "vpp"
# VPP Startup config location
- self._vpp_startup_conf = u"/etc/vpp/startup.conf"
- # VPP Startup config backup location
- self._vpp_startup_conf_backup = None
+ self._vpp_startup_conf = "/etc/vpp/startup.conf"
def set_node(self, node, node_key=None):
"""Set DUT node.
@@ -79,29 +70,13 @@ class VppConfigGenerator:
:type node_key: str
:raises RuntimeError: If Node type is not DUT.
"""
- if node[u"type"] != NodeType.DUT:
+ if node["type"] != NodeType.DUT:
raise RuntimeError(
- u"Startup config can only be applied to DUTnode."
+ "Startup config can only be applied to DUTnode."
)
self._node = node
self._node_key = node_key
- def set_vpp_logfile(self, logfile):
- """Set VPP logfile location.
-
- :param logfile: VPP logfile location.
- :type logfile: str
- """
- self._vpp_logfile = logfile
-
- def set_vpp_startup_conf_backup(self, backup=u"/etc/vpp/startup.backup"):
- """Set VPP startup configuration backup.
-
- :param backup: VPP logfile location.
- :type backup: str
- """
- self._vpp_startup_conf_backup = backup
-
def get_config_str(self):
"""Get dumped startup configuration in VPP config format.
@@ -127,8 +102,8 @@ class VppConfigGenerator:
if path[0] not in config:
config[path[0]] = dict()
elif isinstance(config[path[0]], str):
- config[path[0]] = dict() if config[path[0]] == u"" \
- else {config[path[0]]: u""}
+ config[path[0]] = dict() if config[path[0]] == "" \
+ else {config[path[0]]: ""}
self.add_config_item(config[path[0]], value, path[1:])
def dump_config(self, obj, level=-1):
@@ -140,7 +115,7 @@ class VppConfigGenerator:
:type level: int
:returns: nothing
"""
- indent = u" "
+ indent = " "
if level >= 0:
self._vpp_config += f"{level * indent}{{\n"
if isinstance(obj, dict):
@@ -156,53 +131,56 @@ class VppConfigGenerator:
if level >= 0:
self._vpp_config += f"{level * indent}}}\n"
- def add_unix_log(self, value=None):
+ def add_unix_log(self, value="/var/log/vpp/vpp.log"):
"""Add UNIX log configuration.
:param value: Log file.
:type value: str
"""
- path = [u"unix", u"log"]
- if value is None:
- value = self._vpp_logfile
+ path = ["unix", "log"]
self.add_config_item(self._nodeconfig, value, path)
- def add_unix_cli_listen(self, value=u"/run/vpp/cli.sock"):
+ def add_unix_cli_listen(self, value="/run/vpp/cli.sock"):
"""Add UNIX cli-listen configuration.
:param value: CLI listen address and port or path to CLI socket.
:type value: str
"""
- path = [u"unix", u"cli-listen"]
+ path = ["unix", "cli-listen"]
self.add_config_item(self._nodeconfig, value, path)
- def add_unix_gid(self, value=u"vpp"):
+ def add_unix_cli_no_pager(self):
+ """Add UNIX cli-no-pager configuration."""
+ path = ["unix", "cli-no-pager"]
+ self.add_config_item(self._nodeconfig, "", path)
+
+ def add_unix_gid(self, value="vpp"):
"""Add UNIX gid configuration.
:param value: Gid.
:type value: str
"""
- path = [u"unix", u"gid"]
+ path = ["unix", "gid"]
self.add_config_item(self._nodeconfig, value, path)
def add_unix_nodaemon(self):
"""Add UNIX nodaemon configuration."""
- path = [u"unix", u"nodaemon"]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["unix", "nodaemon"]
+ self.add_config_item(self._nodeconfig, "", path)
def add_unix_coredump(self):
"""Add UNIX full-coredump configuration."""
- path = [u"unix", u"full-coredump"]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["unix", "full-coredump"]
+ self.add_config_item(self._nodeconfig, "", path)
def add_unix_exec(self, value):
"""Add UNIX exec configuration."""
- path = [u"unix", u"exec"]
+ path = ["unix", "exec"]
self.add_config_item(self._nodeconfig, value, path)
def add_socksvr(self, socket=Constants.SOCKSVR_PATH):
"""Add socksvr configuration."""
- path = [u"socksvr", u"socket-name"]
+ path = ["socksvr", "socket-name"]
self.add_config_item(self._nodeconfig, socket, path)
def add_graph_node_variant(self, variant=Constants.GRAPH_NODE_VARIANT):
@@ -211,39 +189,48 @@ class VppConfigGenerator:
:param value: Graph node variant default value.
:type value: str
"""
- if variant == u"":
+ if variant == "":
return
- variant_list = [u"hsw", u"skx", u"icl"]
+ variant_list = ["hsw", "skx", "icl"]
if variant not in variant_list:
raise ValueError("Invalid graph node variant value")
- path = [u"node", u"default", u"variant"]
+ path = ["node", "default", "variant"]
self.add_config_item(self._nodeconfig, variant, path)
- def add_api_segment_gid(self, value=u"vpp"):
- """Add API-SEGMENT gid configuration.
+ def add_api_segment_gid(self, value="vpp"):
+ """Add api-segment gid configuration.
:param value: Gid.
:type value: str
"""
- path = [u"api-segment", u"gid"]
+ path = ["api-segment", "gid"]
self.add_config_item(self._nodeconfig, value, path)
def add_api_segment_global_size(self, value):
- """Add API-SEGMENT global-size configuration.
+ """Add api-segment global-size configuration.
:param value: Global size.
:type value: str
"""
- path = [u"api-segment", u"global-size"]
+ path = ["api-segment", "global-size"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_api_segment_prefix(self, value="vpp"):
+ """Add api-segment prefix configuration.
+
+ :param value: Gid.
+ :type value: str
+ """
+ path = ["api-segment", "prefix"]
self.add_config_item(self._nodeconfig, value, path)
def add_api_segment_api_size(self, value):
- """Add API-SEGMENT api-size configuration.
+ """Add api-segment api-size configuration.
:param value: API size.
:type value: str
"""
- path = [u"api-segment", u"api-size"]
+ path = ["api-segment", "api-size"]
self.add_config_item(self._nodeconfig, value, path)
def add_buffers_per_numa(self, value):
@@ -252,7 +239,7 @@ class VppConfigGenerator:
:param value: Number of buffers allocated.
:type value: int
"""
- path = [u"buffers", u"buffers-per-numa"]
+ path = ["buffers", "buffers-per-numa"]
self.add_config_item(self._nodeconfig, value, path)
def add_buffers_default_data_size(self, value):
@@ -261,7 +248,7 @@ class VppConfigGenerator:
:param value: Buffers data-size allocated.
:type value: int
"""
- path = [u"buffers", u"default data-size"]
+ path = ["buffers", "default data-size"]
self.add_config_item(self._nodeconfig, value, path)
def add_dpdk_dev(self, *devices):
@@ -272,35 +259,26 @@ class VppConfigGenerator:
"""
for device in devices:
if pci_dev_check(device):
- path = [u"dpdk", f"dev {device}"]
- self.add_config_item(self._nodeconfig, u"", path)
-
- def add_dpdk_dev_parameter(self, device, parameter, value):
- """Add parameter for DPDK device.
-
- :param device: PCI device (format xxxx:xx:xx.x).
- :param parameter: Parameter name.
- :param value: Parameter value.
- :type device: str
- :type parameter: str
- :type value: str
- """
- if pci_dev_check(device):
- path = [u"dpdk", f"dev {device}", parameter]
- self.add_config_item(self._nodeconfig, value, path)
+ path = ["dpdk", f"dev {device}"]
+ self.add_config_item(self._nodeconfig, "", path)
- def add_dpdk_cryptodev(self, count):
+ def add_dpdk_cryptodev(self, count, num_rx_queues=1):
"""Add DPDK Crypto PCI device configuration.
:param count: Number of HW crypto devices to add.
+ :param num_rx_queues: Number of RX queues per QAT interface.
:type count: int
- """
- cryptodev = Topology.get_cryptodev(self._node)
- for i in range(count):
- cryptodev_config = re.sub(r"\d.\d$", f"1.{str(i)}", cryptodev)
- path = [u"dpdk", f"dev {cryptodev_config}"]
- self.add_config_item(self._nodeconfig, u"", path)
- self.add_dpdk_uio_driver(u"vfio-pci")
+ :type num_rx_queues: int
+ """
+ cryptodevs = Topology.get_cryptodev(self._node)
+ for device in cryptodevs.values():
+ for i in range(int(count/len(cryptodevs))):
+ numvfs = device["numvfs"]
+ computed = f"{(i+1)//numvfs}.{(i+1)%numvfs}"
+ addr = re.sub(r"\d.\d$", computed, device["pci_address"])
+ path = ["dpdk", f"dev {addr}", "num-rx-queues"]
+ self.add_config_item(self._nodeconfig, num_rx_queues, path)
+ self.add_dpdk_uio_driver("vfio-pci")
def add_dpdk_sw_cryptodev(self, sw_pmd_type, socket_id, count):
"""Add DPDK SW Crypto device configuration.
@@ -315,8 +293,8 @@ class VppConfigGenerator:
for _ in range(count):
cryptodev_config = f"vdev cryptodev_{sw_pmd_type}_pmd," \
f"socket_id={str(socket_id)}"
- path = [u"dpdk", cryptodev_config]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["dpdk", cryptodev_config]
+ self.add_config_item(self._nodeconfig, "", path)
def add_dpdk_dev_default_rxq(self, value):
"""Add DPDK dev default rxq configuration.
@@ -324,7 +302,7 @@ class VppConfigGenerator:
:param value: Default number of rxqs.
:type value: str
"""
- path = [u"dpdk", u"dev default", u"num-rx-queues"]
+ path = ["dpdk", "dev default", "num-rx-queues"]
self.add_config_item(self._nodeconfig, value, path)
def add_dpdk_dev_default_txq(self, value):
@@ -333,7 +311,7 @@ class VppConfigGenerator:
:param value: Default number of txqs.
:type value: str
"""
- path = [u"dpdk", u"dev default", u"num-tx-queues"]
+ path = ["dpdk", "dev default", "num-tx-queues"]
self.add_config_item(self._nodeconfig, value, path)
def add_dpdk_dev_default_rxd(self, value):
@@ -342,7 +320,7 @@ class VppConfigGenerator:
:param value: Default number of rxds.
:type value: str
"""
- path = [u"dpdk", u"dev default", u"num-rx-desc"]
+ path = ["dpdk", "dev default", "num-rx-desc"]
self.add_config_item(self._nodeconfig, value, path)
def add_dpdk_dev_default_txd(self, value):
@@ -351,7 +329,7 @@ class VppConfigGenerator:
:param value: Default number of txds.
:type value: str
"""
- path = [u"dpdk", u"dev default", u"num-tx-desc"]
+ path = ["dpdk", "dev default", "num-tx-desc"]
self.add_config_item(self._nodeconfig, value, path)
def add_dpdk_log_level(self, value):
@@ -360,13 +338,13 @@ class VppConfigGenerator:
:param value: Log level.
:type value: str
"""
- path = [u"dpdk", u"log-level"]
+ path = ["dpdk", "log-level"]
self.add_config_item(self._nodeconfig, value, path)
def add_dpdk_no_pci(self):
"""Add DPDK no-pci."""
- path = [u"dpdk", u"no-pci"]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["dpdk", "no-pci"]
+ self.add_config_item(self._nodeconfig, "", path)
def add_dpdk_uio_driver(self, value=None):
"""Add DPDK uio-driver configuration.
@@ -378,7 +356,23 @@ class VppConfigGenerator:
"""
if value is None:
value = Topology.get_uio_driver(self._node)
- path = [u"dpdk", u"uio-driver"]
+ path = ["dpdk", "uio-driver"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_dpdk_max_simd_bitwidth(self, variant=Constants.GRAPH_NODE_VARIANT):
+ """Add DPDK max-simd-bitwidth configuration.
+
+ :param value: Graph node variant default value.
+ :type value: str
+ """
+ if variant == "icl":
+ value = 512
+ elif variant in ["skx", "hsw"]:
+ value = 256
+ else:
+ return
+
+ path = ["dpdk", "max-simd-bitwidth"]
self.add_config_item(self._nodeconfig, value, path)
def add_cpu_main_core(self, value):
@@ -387,7 +381,7 @@ class VppConfigGenerator:
:param value: Main core option.
:type value: str
"""
- path = [u"cpu", u"main-core"]
+ path = ["cpu", "main-core"]
self.add_config_item(self._nodeconfig, value, path)
def add_cpu_corelist_workers(self, value):
@@ -396,7 +390,7 @@ class VppConfigGenerator:
:param value: Corelist-workers option.
:type value: str
"""
- path = [u"cpu", u"corelist-workers"]
+ path = ["cpu", "corelist-workers"]
self.add_config_item(self._nodeconfig, value, path)
def add_main_heap_size(self, value):
@@ -405,7 +399,7 @@ class VppConfigGenerator:
:param value: Amount of heap.
:type value: str
"""
- path = [u"memory", u"main-heap-size"]
+ path = ["memory", "main-heap-size"]
self.add_config_item(self._nodeconfig, value, path)
def add_main_heap_page_size(self, value):
@@ -414,13 +408,22 @@ class VppConfigGenerator:
:param value: Heap page size.
:type value: str
"""
- path = [u"memory", u"main-heap-page-size"]
+ path = ["memory", "main-heap-page-size"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_default_hugepage_size(self, value=Constants.DEFAULT_HUGEPAGE_SIZE):
+ """Add Default Hugepage Size configuration.
+
+ :param value: Hugepage size.
+ :type value: str
+ """
+ path = ["memory", "default-hugepage-size"]
self.add_config_item(self._nodeconfig, value, path)
def add_api_trace(self):
"""Add API trace configuration."""
- path = [u"api-trace", u"on"]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["api-trace", "on"]
+ self.add_config_item(self._nodeconfig, "", path)
def add_ip6_hash_buckets(self, value):
"""Add IP6 hash buckets configuration.
@@ -428,7 +431,7 @@ class VppConfigGenerator:
:param value: Number of IP6 hash buckets.
:type value: str
"""
- path = [u"ip6", u"hash-buckets"]
+ path = ["ip6", "hash-buckets"]
self.add_config_item(self._nodeconfig, value, path)
def add_ip6_heap_size(self, value):
@@ -437,7 +440,52 @@ class VppConfigGenerator:
:param value: IP6 Heapsize amount.
:type value: str
"""
- path = [u"ip6", u"heap-size"]
+ path = ["ip6", "heap-size"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_ipsec_spd_flow_cache_ipv4_inbound(self, value):
+ """Add IPsec spd flow cache for IP4 inbound.
+
+ :param value: "on" to enable spd flow cache.
+ :type value: str
+ """
+ path = ["ipsec", "ipv4-inbound-spd-flow-cache"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_ipsec_spd_flow_cache_ipv4_outbound(self, value):
+ """Add IPsec spd flow cache for IP4 outbound.
+
+ :param value: "on" to enable spd flow cache.
+ :type value: str
+ """
+ path = ["ipsec", "ipv4-outbound-spd-flow-cache"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_ipsec_spd_fast_path_ipv4_inbound(self, value):
+ """Add IPsec spd fast path for IP4 inbound.
+
+ :param value: "on" to enable spd fast path.
+ :type value: str
+ """
+ path = [u"ipsec", u"ipv4-inbound-spd-fast-path"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_ipsec_spd_fast_path_ipv4_outbound(self, value):
+ """Add IPsec spd fast path for IP4 outbound.
+
+ :param value: "on" to enable spd fast path.
+ :type value: str
+ """
+ path = ["ipsec", "ipv4-outbound-spd-fast-path"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_ipsec_spd_fast_path_num_buckets(self, value):
+ """Add num buckets for IPsec spd fast path.
+
+ :param value: Number of buckets.
+ :type value: int
+ """
+ path = ["ipsec", "spd-fast-path-num-buckets"]
self.add_config_item(self._nodeconfig, value, path)
def add_statseg_size(self, value):
@@ -446,7 +494,7 @@ class VppConfigGenerator:
:param value: Stats heapsize amount.
:type value: str
"""
- path = [u"statseg", u"size"]
+ path = ["statseg", "size"]
self.add_config_item(self._nodeconfig, value, path)
def add_statseg_page_size(self, value):
@@ -455,7 +503,7 @@ class VppConfigGenerator:
:param value: Stats heapsize amount.
:type value: str
"""
- path = [u"statseg", u"page-size"]
+ path = ["statseg", "page-size"]
self.add_config_item(self._nodeconfig, value, path)
def add_statseg_per_node_counters(self, value):
@@ -464,7 +512,7 @@ class VppConfigGenerator:
:param value: "on" to switch the counters on.
:type value: str
"""
- path = [u"statseg", u"per-node-counters"]
+ path = ["statseg", "per-node-counters"]
self.add_config_item(self._nodeconfig, value, path)
def add_plugin(self, state, *plugins):
@@ -476,27 +524,27 @@ class VppConfigGenerator:
:type plugins: list
"""
for plugin in plugins:
- path = [u"plugins", f"plugin {plugin}", state]
- self.add_config_item(self._nodeconfig, u" ", path)
+ path = ["plugins", f"plugin {plugin}", state]
+ self.add_config_item(self._nodeconfig, " ", path)
def add_dpdk_no_multi_seg(self):
"""Add DPDK no-multi-seg configuration."""
- path = [u"dpdk", u"no-multi-seg"]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["dpdk", "no-multi-seg"]
+ self.add_config_item(self._nodeconfig, "", path)
def add_dpdk_no_tx_checksum_offload(self):
"""Add DPDK no-tx-checksum-offload configuration."""
- path = [u"dpdk", u"no-tx-checksum-offload"]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["dpdk", "no-tx-checksum-offload"]
+ self.add_config_item(self._nodeconfig, "", path)
- def add_nat(self, value=u"deterministic"):
+ def add_nat(self, value="deterministic"):
"""Add NAT mode configuration.
:param value: NAT mode.
:type value: str
"""
- path = [u"nat", value]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["nat", value]
+ self.add_config_item(self._nodeconfig, "", path)
def add_nat_max_translations_per_thread(self, value):
"""Add NAT max. translations per thread number configuration.
@@ -504,21 +552,21 @@ class VppConfigGenerator:
:param value: NAT mode.
:type value: str
"""
- path = [u"nat", u"max translations per thread"]
+ path = ["nat", "max translations per thread"]
self.add_config_item(self._nodeconfig, value, path)
def add_nsim_poll_main_thread(self):
"""Add NSIM poll-main-thread configuration."""
- path = [u"nsim", u"poll-main-thread"]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["nsim", "poll-main-thread"]
+ self.add_config_item(self._nodeconfig, "", path)
- def add_tcp_congestion_control_algorithm(self, value=u"cubic"):
+ def add_tcp_congestion_control_algorithm(self, value="cubic"):
"""Add TCP congestion control algorithm.
:param value: The congestion control algorithm to use. Example: cubic
:type value: str
"""
- path = [u"tcp", u"cc-algo"]
+ path = ["tcp", "cc-algo"]
self.add_config_item(self._nodeconfig, value, path)
def add_tcp_preallocated_connections(self, value):
@@ -527,7 +575,7 @@ class VppConfigGenerator:
:param value: The number of pre-allocated connections.
:type value: int
"""
- path = [u"tcp", u"preallocated-connections"]
+ path = ["tcp", "preallocated-connections"]
self.add_config_item(self._nodeconfig, value, path)
def add_tcp_preallocated_half_open_connections(self, value):
@@ -536,18 +584,23 @@ class VppConfigGenerator:
:param value: The number of pre-allocated half open connections.
:type value: int
"""
- path = [u"tcp", u"preallocated-half-open-connections"]
+ path = ["tcp", "preallocated-half-open-connections"]
self.add_config_item(self._nodeconfig, value, path)
def add_session_enable(self):
"""Add session enable."""
- path = [u"session", u"enable"]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["session", "enable"]
+ self.add_config_item(self._nodeconfig, "", path)
+
+ def add_session_app_socket_api(self):
+ """Use session app socket api."""
+ path = ["session", "use-app-socket-api"]
+ self.add_config_item(self._nodeconfig, "", path)
def add_session_event_queues_memfd_segment(self):
"""Add session event queue memfd segment."""
- path = [u"session", u"evt_qs_memfd_seg"]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["session", "evt_qs_memfd_seg"]
+ self.add_config_item(self._nodeconfig, "", path)
def add_session_event_queue_length(self, value):
"""Add session event queue length.
@@ -555,7 +608,7 @@ class VppConfigGenerator:
:param value: Session event queue length.
:type value: int
"""
- path = [u"session", u"event-queue-length"]
+ path = ["session", "event-queue-length"]
self.add_config_item(self._nodeconfig, value, path)
def add_session_event_queues_segment_size(self, value):
@@ -564,7 +617,7 @@ class VppConfigGenerator:
:param value: Session event queue segment size.
:type value: str
"""
- path = [u"session", u"evt_qs_seg_size"]
+ path = ["session", "evt_qs_seg_size"]
self.add_config_item(self._nodeconfig, value, path)
def add_session_preallocated_sessions(self, value):
@@ -573,7 +626,7 @@ class VppConfigGenerator:
:param value: Number of pre-allocated sessions.
:type value: int
"""
- path = [u"session", u"preallocated-sessions"]
+ path = ["session", "preallocated-sessions"]
self.add_config_item(self._nodeconfig, value, path)
def add_session_v4_session_table_buckets(self, value):
@@ -582,7 +635,7 @@ class VppConfigGenerator:
:param value: Number of v4 session table buckets.
:type value: int
"""
- path = [u"session", u"v4-session-table-buckets"]
+ path = ["session", "v4-session-table-buckets"]
self.add_config_item(self._nodeconfig, value, path)
def add_session_v4_session_table_memory(self, value):
@@ -591,7 +644,7 @@ class VppConfigGenerator:
:param value: Size of v4 session table memory.
:type value: str
"""
- path = [u"session", u"v4-session-table-memory"]
+ path = ["session", "v4-session-table-memory"]
self.add_config_item(self._nodeconfig, value, path)
def add_session_v4_halfopen_table_buckets(self, value):
@@ -600,7 +653,7 @@ class VppConfigGenerator:
:param value: Number of v4 halfopen table buckets.
:type value: int
"""
- path = [u"session", u"v4-halfopen-table-buckets"]
+ path = ["session", "v4-halfopen-table-buckets"]
self.add_config_item(self._nodeconfig, value, path)
def add_session_v4_halfopen_table_memory(self, value):
@@ -609,7 +662,7 @@ class VppConfigGenerator:
:param value: Size of v4 halfopen table memory.
:type value: str
"""
- path = [u"session", u"v4-halfopen-table-memory"]
+ path = ["session", "v4-halfopen-table-memory"]
self.add_config_item(self._nodeconfig, value, path)
def add_session_local_endpoints_table_buckets(self, value):
@@ -618,7 +671,7 @@ class VppConfigGenerator:
:param value: Number of local endpoints table buckets.
:type value: int
"""
- path = [u"session", u"local-endpoints-table-buckets"]
+ path = ["session", "local-endpoints-table-buckets"]
self.add_config_item(self._nodeconfig, value, path)
def add_session_local_endpoints_table_memory(self, value):
@@ -627,7 +680,26 @@ class VppConfigGenerator:
:param value: Size of local endpoints table memory.
:type value: str
"""
- path = [u"session", u"local-endpoints-table-memory"]
+ path = ["session", "local-endpoints-table-memory"]
+ self.add_config_item(self._nodeconfig, value, path)
+
+ def add_dma_dev(self, devices):
+ """Add DMA devices configuration.
+
+ :param devices: DMA devices or work queues.
+ :type devices: list
+ """
+ for device in devices:
+ path = ["dsa", f"dev {device}"]
+ self.add_config_item(self._nodeconfig, "", path)
+
+ def add_logging_default_syslog_log_level(self, value="debug"):
+ """Add default logging level for syslog.
+
+ :param value: Log level.
+ :type value: str
+ """
+ path = ["logging", "default-syslog-log-level"]
self.add_config_item(self._nodeconfig, value, path)
def write_config(self, filename=None):
@@ -644,15 +716,9 @@ class VppConfigGenerator:
if filename is None:
filename = self._vpp_startup_conf
- if self._vpp_startup_conf_backup is not None:
- cmd = f"cp {self._vpp_startup_conf} {self._vpp_startup_conf_backup}"
- exec_cmd_no_error(
- self._node, cmd, sudo=True, message=u"Copy config file failed!"
- )
-
cmd = f"echo \"{self._vpp_config}\" | sudo tee {filename}"
exec_cmd_no_error(
- self._node, cmd, message=u"Writing config file failed!"
+ self._node, cmd, message="Writing config file failed!"
)
def apply_config(self, filename=None, verify_vpp=True):
@@ -672,9 +738,39 @@ class VppConfigGenerator:
if verify_vpp:
VPPUtil.verify_vpp(self._node)
- def restore_config(self):
- """Restore VPP startup.conf from backup."""
- cmd = f"cp {self._vpp_startup_conf_backup} {self._vpp_startup_conf}"
- exec_cmd_no_error(
- self._node, cmd, sudo=True, message=u"Copy config file failed!"
- )
+
+class VppInitConfig:
+ """VPP Initial Configuration."""
+ @staticmethod
+ def init_vpp_startup_configuration_on_all_duts(nodes):
+ """Apply initial VPP startup configuration on all DUTs.
+
+ :param nodes: Nodes in the topology.
+ :type nodes: dict
+ """
+ huge_size = Constants.DEFAULT_HUGEPAGE_SIZE
+ for node in nodes.values():
+ if node["type"] == NodeType.DUT:
+ vpp_config = VppConfigGenerator()
+ vpp_config.set_node(node)
+ vpp_config.add_unix_log()
+ vpp_config.add_unix_cli_listen()
+ vpp_config.add_unix_cli_no_pager()
+ vpp_config.add_unix_gid()
+ vpp_config.add_unix_coredump()
+ vpp_config.add_socksvr(socket=Constants.SOCKSVR_PATH)
+ vpp_config.add_main_heap_size("2G")
+ vpp_config.add_main_heap_page_size(huge_size)
+ vpp_config.add_default_hugepage_size(huge_size)
+ vpp_config.add_statseg_size("2G")
+ vpp_config.add_statseg_page_size(huge_size)
+ vpp_config.add_statseg_per_node_counters("on")
+ vpp_config.add_plugin("disable", "default")
+ vpp_config.add_plugin("enable", "dpdk_plugin.so")
+ vpp_config.add_dpdk_dev(
+ *[node["interfaces"][interface].get("pci_address") \
+ for interface in node["interfaces"]]
+ )
+ vpp_config.add_ip6_hash_buckets(2000000)
+ vpp_config.add_ip6_heap_size("4G")
+ vpp_config.apply_config()
diff --git a/resources/libraries/python/VppCounters.py b/resources/libraries/python/VppCounters.py
index e9b607b4f1..6bd0aea4bf 100644
--- a/resources/libraries/python/VppCounters.py
+++ b/resources/libraries/python/VppCounters.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/WireGuardUtil.py b/resources/libraries/python/WireGuardUtil.py
new file mode 100644
index 0000000000..6e6237e7e7
--- /dev/null
+++ b/resources/libraries/python/WireGuardUtil.py
@@ -0,0 +1,298 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+"""WireGuard utilities library."""
+
+from ipaddress import ip_address
+from cryptography.hazmat.primitives.serialization import Encoding, \
+ PrivateFormat, PublicFormat, NoEncryption
+from cryptography.hazmat.primitives.asymmetric.x25519 import \
+ X25519PrivateKey
+
+from resources.libraries.python.InterfaceUtil import InterfaceUtil
+from resources.libraries.python.IPUtil import IPUtil
+from resources.libraries.python.PapiExecutor import PapiSocketExecutor
+
+class WireGuardUtil:
+ """This class defines the methods to set WireGuard."""
+
+ @staticmethod
+ def public_key_bytes(k):
+ """Return the public key as byte.
+
+ :param k: Generated public key.
+ :type: x25519._X25519PublicKey object
+ :returns: Public key.
+ :rtype: bytes
+ """
+ return k.public_bytes(Encoding.Raw, PublicFormat.Raw)
+
+ @staticmethod
+ def private_key_bytes(k):
+ """Return the private key as byte.
+
+ :param k: Generated private key.
+ :type: x25519._X25519PrivateKey object
+ :returns: Private key.
+ :rtype: bytes
+ """
+ return k.private_bytes(Encoding.Raw, PrivateFormat.Raw, NoEncryption())
+
+ @staticmethod
+ def generate_wireguard_privatekey_and_pubkey():
+ """Generate a pair of WireGuard Private key and Public key.
+
+ :returns: A pair of privatekey and publickey
+ :rtype: x25519._X25519PublicKey object
+ """
+ privatekey = X25519PrivateKey.generate()
+ pubkey = privatekey.public_key()
+ private_key = WireGuardUtil.private_key_bytes(privatekey)
+ public_key = WireGuardUtil.public_key_bytes(pubkey)
+ return private_key, public_key
+
+ @staticmethod
+ def vpp_wireguard_create_interface(
+ node, listen_port, wg_src, private_key):
+ """Create WireGuard interface.
+
+ :param node: VPP node to add config on.
+ :param listen_port: WireGuard interface listen port.
+ :param wg_src: WireGuard source IPv4.
+ :param private_key: WireGuard interface private key
+ :type node: dict
+ :type listen_port: int
+ :type wg_src: str
+ :type private_key: bytes
+ :returns: Wireguard interface sw_if_index.
+ :rtype: int
+ """
+ cmd = u"wireguard_interface_create"
+ err_msg = f"Failed to create wireguard interface" \
+ f"on host {node[u'host']}"
+ src_ip = ip_address(wg_src)
+ args = dict(
+ interface=dict(
+ port=int(listen_port),
+ src_ip=src_ip,
+ private_key=private_key,
+ generate_key=False
+ )
+ )
+ with PapiSocketExecutor(node) as papi_exec:
+ wg_sw_index = \
+ papi_exec.add(cmd, **args).get_sw_if_index(err_msg)
+ return wg_sw_index
+
+ @staticmethod
+ def vpp_wireguard_add_peer(
+ node, interface, peer_pubkey, endpoint_ip,
+ allowed_ips, n_allowed_ips, dst_port, keepalive_time):
+ """Add a peer for WireGuard interface.
+
+ :param node: VPP node to add config on.
+ :param interface: WireGuard interface sw_if_index.
+ :param peer_pubkey: Public key of wireguard interface peer.
+ :param endpoint_ip: Peer source IPv4.
+ :param allowed_ips: WireGuard interface allowed ips list.
+ :param n_allowed_ips: Number of allowed ips.
+ :param dst_port: WireGuard destination port.
+ :param keepaliva time: WireGuard persistent keepalive time.
+ :type node: dict
+ :type interface: int
+ :type peer_pubkey: bytes
+ :type endpoint_ip: str
+ :type allowed_ips: list
+ :type n_allowed_ips: int
+ :type dst_port: int
+ :type keepalive_time: int
+ """
+ endpoint_ip = ip_address(endpoint_ip)
+ cmd = u"wireguard_peer_add"
+ err_msg = f"Failed to add peer of wireguard interface" \
+ f"{interface} on host {node[u'host']}"
+ args = dict(
+ peer=dict(
+ public_key=peer_pubkey,
+ port=int(dst_port),
+ endpoint=endpoint_ip,
+ sw_if_index=interface,
+ persistent_keepalive=int(keepalive_time),
+ n_allowed_ips=int(n_allowed_ips),
+ allowed_ips=allowed_ips
+ )
+ )
+ with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
+
+ @staticmethod
+ def vpp_wireguard_set_async_mode(node, async_enable=1):
+ """Set wireguard async mode on or off.
+
+ :param node: VPP node to set wireguard async mode.
+ :param async_enable: Async mode on or off.
+ :type node: dict
+ :type async_enable: int
+ """
+ cmd = u"wg_set_async_mode"
+ err_msg = f"Failed to set wireguard async mode on host {node[u'host']}"
+ args = dict(
+ async_enable=async_enable
+ )
+ with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
+
+ @staticmethod
+ def _wireguard_create_tunnel_interface_on_dut(
+ node, if1_key, if2_mac_addr, src_ip, peer_endpoint_ip,
+ peer_allowed_ips, peer_n_allowed_ips, dut_wg_ip, port,
+ keepalive_time, dut_private_key, peer_pubkey):
+ """Create WireGuard tunnel interface on one DUT node using PAPI.
+
+ :param node: VPP node as DUT to create tunnel interface.
+ :param if1_key: VPP node as DUT interface key from topology file.
+ :param if2_mac_addr: Vpp node on the other end/ TG node
+ (in case of 2-node topology) interface mac address.
+ :param src_ip: WireGuard source IPv4 address.
+ :param peer_endpoint_ip: Peer source IPv4 address.
+ :param peer_allowed_ips: WireGuard peer interface allowed ip list.
+ :param peer_n_allowed ips: Number of peer allowed ips.
+ :param dut_wg_ip: WireGuard interface ip address on DUT.
+ :param port: WireGuard interface listen port or
+ Peer interface destination port.
+ :param keepalive_time: WireGuard persistent keepalive time.
+ :param dut_private_key: WireGuard interface private key of DUT.
+ :param peer_pubkey: WireGuard Peer interface public key.
+ :type nodes: dict
+ :type if1_key: str
+ :type if2_mac_addr: str
+ :type src_ip: str
+ :type peer_endpoint_ip: str
+ :type peer_allowed_ips: list
+ :type peer_n_allowed_ips: int
+ :type dut_wg_ip: str
+ :type port: int
+ :type keepalive_time: int
+ :type dut_private_key: bytes
+ :type peer_pubkey: bytes
+ """
+ #Set IP address on VPP node interface
+ IPUtil.vpp_interface_set_ip_address(node, if1_key, src_ip, 24)
+ IPUtil.vpp_add_ip_neighbor(
+ node, if1_key, peer_endpoint_ip, if2_mac_addr
+ )
+ #Create Wireguard interface on DUT
+ dut_wg_sw_index = WireGuardUtil.vpp_wireguard_create_interface(
+ node, port, src_ip, dut_private_key
+ )
+ #Add wireguard peer
+ WireGuardUtil.vpp_wireguard_add_peer(
+ node, dut_wg_sw_index, peer_pubkey, peer_endpoint_ip,
+ peer_allowed_ips, peer_n_allowed_ips, port, keepalive_time
+ )
+ #Set wireguard interface up
+ InterfaceUtil.set_interface_state(node, dut_wg_sw_index, state=u'up')
+ #Set wireguard interface IP address
+ cmd = u'sw_interface_add_del_address'
+ args = dict(
+ sw_if_index=dut_wg_sw_index,
+ is_add=True,
+ del_all=False,
+ prefix=IPUtil.create_prefix_object(ip_address(dut_wg_ip), 24)
+ )
+ err_msg = f"Failed to set IP address on wg interface " \
+ f"on host {node[u'host']}"
+ with PapiSocketExecutor(node) as papi_exec:
+ papi_exec.add(cmd, **args).get_reply(err_msg)
+ #Set route on VPP node as DUT wg interface
+ for allowed_ip in peer_allowed_ips:
+ traffic_addr = ip_address(
+ allowed_ip[u'address'][u'un'][u'ip4']
+ )
+ prefix_len = allowed_ip[u'len']
+ IPUtil.vpp_route_add(
+ node, traffic_addr, prefix_len,
+ gateway=(traffic_addr+1).compressed,
+ interface=dut_wg_sw_index
+ )
+
+ @staticmethod
+ def vpp_wireguard_create_tunnel_interfaces_on_duts(
+ nodes, if1_key, if2_key, if1_ip_addr, if2_ip_addr,
+ if1_mac_addr, if2_mac_addr, wg_if1_ip_addr, wg_if2_ip_addr,
+ n_tunnels, port, keepalive_time, raddr_ip1, raddr_ip2):
+ """Create WireGuard tunnel interfaces between two VPP nodes.
+
+ :param nodes: VPP nodes to create tunnel interfaces.
+ :param if1_key: VPP node 1 interface key from topology file.
+ :param if2_key: VPP node 2 / TG node (in case of 2-node topology)
+ :param if1_ip_addr: VPP node 1 interface IPv4/IPv6 address.
+ :param if2_ip_addr: VPP node 2 / TG node
+ (in case of 2-node topology) interface IPv4/IPv6 address.
+ :param if1_mac_addr: VPP node1 interface mac address.
+ :param if2_mac_addr: VPP node2 interface mac address.
+ :param wg_if1_ip_addr: VPP node 1 WireGuard interface IPv4 address.
+ :param wg_if2_ip_addr: VPP node 2 WireGuard interface IPv4 address.
+ :param n_tunnels: Number of wireguard tunnels.
+ :param port: WireGuard interface listen port or
+ Peer interface destination port.
+ :param keepalive_time: WireGuard persistent keepalive time.
+ :param raddr_ip1: Policy selector remote IPv4/IPv6 start address
+ for the first tunnel in direction node1->node2.
+ :param raddr_ip2: Policy selector remote IPv4/IPv6 start address
+ for the first tunnel in direction node2->node1.
+ :type nodes: dict
+ :type if1_key: str
+ :type if2_key: str
+ :type if1_ip_addr: str
+ :type if2_ip_addr: str
+ :type if1_mac_addr: str
+ :type if2_mac_addr: str
+ :type wg_if1_ip_addr: str
+ :type wg_if2_ip_addr: str
+ :type n_tunnels: int
+ :type port: int
+ :type keepalive_time: int
+ :type raddr_ip1: str
+ :type raddr_ip2: str
+ """
+ for i in range(n_tunnels):
+ if1_ipaddr = str(ip_address(if1_ip_addr) + i*256)
+ if2_ipaddr = str(ip_address(if2_ip_addr) + i*256)
+ wg_if1_ipaddr = str(ip_address(wg_if1_ip_addr) + i*256)
+ wg_if2_ipaddr = str(ip_address(wg_if2_ip_addr) + i*256)
+
+ allowed_ipaddr1 = ip_address(raddr_ip1) + i*256
+ allowed_ipaddr2 = ip_address(raddr_ip2) + i*256
+ dut1_allowed_ips = \
+ [IPUtil.create_prefix_object(allowed_ipaddr2, 24),]
+ dut2_allowed_ips = \
+ [IPUtil.create_prefix_object(allowed_ipaddr1, 24),]
+
+ dut1_privatekey, dut1_pubkey = \
+ WireGuardUtil.generate_wireguard_privatekey_and_pubkey()
+ dut2_privatekey, dut2_pubkey = \
+ WireGuardUtil.generate_wireguard_privatekey_and_pubkey()
+
+ #Configure WireGuard interface on DUT1
+ WireGuardUtil._wireguard_create_tunnel_interface_on_dut(
+ nodes[u'DUT1'], if1_key, if2_mac_addr, if1_ipaddr, if2_ipaddr,
+ dut1_allowed_ips, 1, wg_if1_ipaddr, port,
+ keepalive_time, dut1_privatekey, dut2_pubkey
+ )
+ #Configure WireGuard interface on DUT2
+ WireGuardUtil._wireguard_create_tunnel_interface_on_dut(
+ nodes[u'DUT2'], if2_key, if1_mac_addr, if2_ipaddr, if1_ipaddr,
+ dut2_allowed_ips, 1, wg_if2_ipaddr, port,
+ keepalive_time, dut2_privatekey, dut1_pubkey
+ )
diff --git a/resources/libraries/python/autogen/Regenerator.py b/resources/libraries/python/autogen/Regenerator.py
index dd2672bd7c..8d593fecca 100644
--- a/resources/libraries/python/autogen/Regenerator.py
+++ b/resources/libraries/python/autogen/Regenerator.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -17,6 +17,7 @@ TODO: How can we check each suite id is unique,
when currently the suite generation is run on each directory separately?
"""
+import copy
import sys
from glob import glob
@@ -85,7 +86,7 @@ def get_iface_and_suite_ids(filename):
# It was something like "2n1l", we need one more split.
dash_split = dash_split[1].split(u"-", 1)
nic_code = dash_split[0]
- suite_id = dash_split[1].split(u".", 1)[0]
+ suite_id = dash_split[1].split(u".robot", 1)[0]
suite_tag = suite_id.rsplit(u"-", 1)[0]
for prefix in Constants.FORBIDDEN_SUITE_PREFIX_LIST:
if suite_tag.startswith(prefix):
@@ -116,50 +117,75 @@ def check_suite_tag(suite_tag, prolog):
raise ValueError(f"Suite tag found {found} times for {suite_tag}")
-def add_default_testcases(testcase, iface, suite_id, file_out, tc_kwargs_list):
+def filter_and_edit_kwargs_for_astf(suite_id, kwargs):
+ """Return possibly edited kwargs, or None if to be skipped.
+
+ This is a code block used in few places.
+ Kwargs is (a copy of) one item from tc_kwargs_list.
+ Currently, the editable field is frame_size,
+ to be increased to for tests with data (not just CPS).
+
+ :param suite_id: Suite ID.
+ :param kwargs: Key-value pairs used to construct one testcase.
+ :type suite_id: str
+ :type tc_kwargs_list: dict
+ :returns: Edited kwargs.
+ :rtype Optional[dict]
+ """
+ if u"-cps-" in suite_id:
+ # Contrary to UDP, there is no place to affect frame size
+ # in TCP CPS tests. Actual frames are close to min size.
+ # UDP uses the min value too, for fairer comparison to TCP.
+ if kwargs[u"frame_size"] not in MIN_FRAME_SIZE_VALUES:
+ return None
+ elif (u"-pps-" in suite_id or u"-tput-" in suite_id):
+ if u"imix" in str(kwargs[u"frame_size"]).lower():
+ # ASTF does not support IMIX (yet).
+ return None
+ if kwargs[u"frame_size"] in MIN_FRAME_SIZE_VALUES:
+ # Minimal (TRex) TCP data frame is 80B for IPv4.
+ # In future, we may want to have also IPv6 TCP.
+ # UDP uses the same value, for fairer comparison to TCP.
+ kwargs[u"frame_size"] = 100
+ return kwargs
+
+
+def add_default_testcases(
+ testcase, nic_code, suite_id, file_out, tc_kwargs_list):
"""Add default testcases to file.
:param testcase: Testcase class.
- :param iface: Interface.
+ :param nic_code: NIC code.
:param suite_id: Suite ID.
:param file_out: File to write testcases to.
:param tc_kwargs_list: Key-value pairs used to construct testcases.
:type testcase: Testcase
- :type iface: str
+ :type nic_code: str
:type suite_id: str
:type file_out: file
:type tc_kwargs_list: dict
"""
- for kwargs in tc_kwargs_list:
+ for kwas in tc_kwargs_list:
+ # We may edit framesize for ASTF, the copy should be local.
+ kwargs = copy.deepcopy(kwas)
# TODO: Is there a better way to disable some combinations?
emit = True
- if kwargs[u"frame_size"] == 9000:
- if u"vic1227" in iface:
- # Not supported in HW.
- emit = False
- if u"vic1385" in iface:
- # Not supported in HW.
- emit = False
- if u"-16vm2t-" in suite_id or u"-16dcr2t-" in suite_id:
- if kwargs[u"phy_cores"] > 3:
- # CSIT lab only has 28 (physical) core processors,
- # so these test would fail when attempting to assign cores.
- emit = False
- if u"-24vm1t-" in suite_id or u"-24dcr1t-" in suite_id:
- if kwargs[u"phy_cores"] > 3:
- # CSIT lab only has 28 (physical) core processors,
- # so these test would fail when attempting to assign cores.
- emit = False
+ core_scale = Constants.NIC_CODE_TO_CORESCALE[nic_code]
if u"soak" in suite_id:
# Soak test take too long, do not risk other than tc01.
if kwargs[u"phy_cores"] != 1:
emit = False
- if kwargs[u"frame_size"] not in MIN_FRAME_SIZE_VALUES:
- emit = False
- if u"-cps-" in suite_id or u"-pps-" in suite_id:
- if kwargs[u"frame_size"] not in MIN_FRAME_SIZE_VALUES:
- emit = False
- if emit:
+ if u"reassembly" in suite_id:
+ if kwargs[u"frame_size"] != 1518:
+ emit = False
+ else:
+ if kwargs[u"frame_size"] not in MIN_FRAME_SIZE_VALUES:
+ emit = False
+
+ kwargs.update({'phy_cores': kwas['phy_cores']*core_scale})
+
+ kwargs = filter_and_edit_kwargs_for_astf(suite_id, kwargs)
+ if emit and kwargs is not None:
file_out.write(testcase.generate(**kwargs))
@@ -191,6 +217,26 @@ def add_iperf3_testcases(testcase, file_out, tc_kwargs_list):
file_out.write(testcase.generate(**kwargs))
+def add_trex_testcases(testcase, suite_id, file_out, tc_kwargs_list):
+ """Add trex testcases to file.
+
+ :param testcase: Testcase class.
+ :param suite_id: Suite ID.
+ :param file_out: File to write testcases to.
+ :param tc_kwargs_list: Key-value pairs used to construct testcases.
+ :type testcase: Testcase
+ :type suite_id: str
+ :type file_out: file
+ :type tc_kwargs_list: dict
+ """
+ for kwas in tc_kwargs_list:
+ # We may edit framesize for ASTF, the copy should be local.
+ kwargs = copy.deepcopy(kwas)
+ kwargs = filter_and_edit_kwargs_for_astf(suite_id, kwargs)
+ if kwargs is not None:
+ file_out.write(testcase.generate(**kwargs))
+
+
def write_default_files(in_filename, in_prolog, kwargs_list):
"""Using given filename and prolog, write all generated suites.
@@ -203,75 +249,75 @@ def write_default_files(in_filename, in_prolog, kwargs_list):
"""
for suite_type in Constants.PERF_TYPE_TO_KEYWORD:
tmp_filename = replace_defensively(
- in_filename, u"ndrpdr", suite_type, 1,
- u"File name should contain suite type once.", in_filename
+ in_filename, "ndrpdr", suite_type, 1,
+ "File name should contain suite type once.", in_filename
)
tmp_prolog = replace_defensively(
- in_prolog, u"ndrpdr".upper(), suite_type.upper(), 1,
- u"Suite type should appear once in uppercase (as tag).",
+ in_prolog, "ndrpdr".upper(), suite_type.upper(), 1,
+ "Suite type should appear once in uppercase (as tag).",
in_filename
)
tmp_prolog = replace_defensively(
tmp_prolog,
- u"Find NDR and PDR intervals using optimized search",
+ "Find NDR and PDR intervals using optimized search",
Constants.PERF_TYPE_TO_KEYWORD[suite_type], 1,
- u"Main search keyword should appear once in suite.",
+ "Main search keyword should appear once in suite.",
in_filename
)
tmp_prolog = replace_defensively(
tmp_prolog,
- Constants.PERF_TYPE_TO_SUITE_DOC_VER[u"ndrpdr"],
+ Constants.PERF_TYPE_TO_SUITE_DOC_VER["ndrpdr"],
Constants.PERF_TYPE_TO_SUITE_DOC_VER[suite_type],
- 1, u"Exact suite type doc not found.", in_filename
+ 1, "Exact suite type doc not found.", in_filename
)
tmp_prolog = replace_defensively(
tmp_prolog,
- Constants.PERF_TYPE_TO_TEMPLATE_DOC_VER[u"ndrpdr"],
+ Constants.PERF_TYPE_TO_TEMPLATE_DOC_VER["ndrpdr"],
Constants.PERF_TYPE_TO_TEMPLATE_DOC_VER[suite_type],
- 1, u"Exact template type doc not found.", in_filename
+ 1, "Exact template type doc not found.", in_filename
)
_, suite_id, _ = get_iface_and_suite_ids(tmp_filename)
testcase = Testcase.default(suite_id)
- for nic_name in Constants.NIC_NAME_TO_CODE:
+ for nic_code in Constants.NIC_CODE_TO_NAME:
+ nic_name = Constants.NIC_CODE_TO_NAME[nic_code]
tmp2_filename = replace_defensively(
- tmp_filename, u"10ge2p1x710",
- Constants.NIC_NAME_TO_CODE[nic_name], 1,
- u"File name should contain NIC code once.", in_filename
+ tmp_filename, "10ge2p1x710", nic_code, 1,
+ "File name should contain NIC code once.", in_filename
)
tmp2_prolog = replace_defensively(
- tmp_prolog, u"Intel-X710", nic_name, 2,
- u"NIC name should appear twice (tag and variable).",
+ tmp_prolog, "Intel-X710", nic_name, 2,
+ "NIC name should appear twice (tag and variable).",
in_filename
)
- if tmp2_prolog.count(u"HW_") == 2:
+ if tmp2_prolog.count("HW_") == 2:
# TODO CSIT-1481: Crypto HW should be read
# from topology file instead.
if nic_name in Constants.NIC_NAME_TO_CRYPTO_HW:
tmp2_prolog = replace_defensively(
- tmp2_prolog, u"HW_DH895xcc",
+ tmp2_prolog, "HW_DH895xcc",
Constants.NIC_NAME_TO_CRYPTO_HW[nic_name], 1,
- u"HW crypto name should appear.", in_filename
+ "HW crypto name should appear.", in_filename
)
iface, old_suite_id, old_suite_tag = get_iface_and_suite_ids(
tmp2_filename
)
- if u"DPDK" in in_prolog:
+ if "DPDK" in in_prolog:
for driver in Constants.DPDK_NIC_NAME_TO_DRIVER[nic_name]:
out_filename = replace_defensively(
tmp2_filename, old_suite_id,
Constants.DPDK_NIC_DRIVER_TO_SUITE_PREFIX[driver] \
+ old_suite_id,
- 1, u"Error adding driver prefix.", in_filename
+ 1, "Error adding driver prefix.", in_filename
)
out_prolog = replace_defensively(
- tmp2_prolog, u"vfio-pci", driver, 1,
- u"Driver name should appear once.", in_filename
+ tmp2_prolog, "vfio-pci", driver, 1,
+ "Driver name should appear once.", in_filename
)
out_prolog = replace_defensively(
out_prolog,
- Constants.DPDK_NIC_DRIVER_TO_TAG[u"vfio-pci"],
+ Constants.DPDK_NIC_DRIVER_TO_TAG["vfio-pci"],
Constants.DPDK_NIC_DRIVER_TO_TAG[driver], 1,
- u"Driver tag should appear once.", in_filename
+ "Driver tag should appear once.", in_filename
)
iface, suite_id, suite_tag = get_iface_and_suite_ids(
out_filename
@@ -286,36 +332,41 @@ def write_default_files(in_filename, in_prolog, kwargs_list):
check_suite_tag(suite_tag, out_prolog)
# TODO: Reorder loops so suite_id is finalized sooner.
testcase = Testcase.default(suite_id)
- with open(out_filename, u"wt") as file_out:
+ with open(out_filename, "wt") as file_out:
file_out.write(out_prolog)
add_default_testcases(
- testcase, iface, suite_id, file_out, kwargs_list
+ testcase, nic_code, suite_id, file_out, kwargs_list
)
continue
for driver in Constants.NIC_NAME_TO_DRIVER[nic_name]:
out_filename = replace_defensively(
tmp2_filename, old_suite_id,
Constants.NIC_DRIVER_TO_SUITE_PREFIX[driver] + old_suite_id,
- 1, u"Error adding driver prefix.", in_filename
+ 1, "Error adding driver prefix.", in_filename
)
out_prolog = replace_defensively(
- tmp2_prolog, u"vfio-pci", driver, 1,
- u"Driver name should appear once.", in_filename
+ tmp2_prolog, "vfio-pci", driver, 1,
+ "Driver name should appear once.", in_filename
)
out_prolog = replace_defensively(
- out_prolog, Constants.NIC_DRIVER_TO_TAG[u"vfio-pci"],
+ out_prolog, Constants.NIC_DRIVER_TO_TAG["vfio-pci"],
Constants.NIC_DRIVER_TO_TAG[driver], 1,
- u"Driver tag should appear once.", in_filename
+ "Driver tag should appear once.", in_filename
)
out_prolog = replace_defensively(
- out_prolog, Constants.NIC_DRIVER_TO_PLUGINS[u"vfio-pci"],
+ out_prolog, Constants.NIC_DRIVER_TO_PLUGINS["vfio-pci"],
Constants.NIC_DRIVER_TO_PLUGINS[driver], 1,
- u"Driver plugin should appear once.", in_filename
+ "Driver plugin should appear once.", in_filename
)
out_prolog = replace_defensively(
- out_prolog, Constants.NIC_DRIVER_TO_VFS[u"vfio-pci"],
+ out_prolog, Constants.NIC_DRIVER_TO_VFS["vfio-pci"],
Constants.NIC_DRIVER_TO_VFS[driver], 1,
- u"NIC VFs argument should appear once.", in_filename
+ "NIC VFs argument should appear once.", in_filename
+ )
+ out_prolog = replace_defensively(
+ out_prolog, Constants.NIC_CODE_TO_PFS["10ge2p1x710"],
+ Constants.NIC_CODE_TO_PFS[nic_code], 1,
+ "NIC PFs argument should appear once.", in_filename
)
iface, suite_id, suite_tag = get_iface_and_suite_ids(
out_filename
@@ -330,10 +381,10 @@ def write_default_files(in_filename, in_prolog, kwargs_list):
check_suite_tag(suite_tag, out_prolog)
# TODO: Reorder loops so suite_id is finalized sooner.
testcase = Testcase.default(suite_id)
- with open(out_filename, u"wt") as file_out:
+ with open(out_filename, "wt") as file_out:
file_out.write(out_prolog)
add_default_testcases(
- testcase, iface, suite_id, file_out, kwargs_list
+ testcase, nic_code, suite_id, file_out, kwargs_list
)
@@ -353,10 +404,10 @@ def write_reconf_files(in_filename, in_prolog, kwargs_list):
"""
_, suite_id, _ = get_iface_and_suite_ids(in_filename)
testcase = Testcase.default(suite_id)
- for nic_name in Constants.NIC_NAME_TO_CODE:
+ for nic_code in Constants.NIC_CODE_TO_NAME:
+ nic_name = Constants.NIC_CODE_TO_NAME[nic_code]
tmp_filename = replace_defensively(
- in_filename, u"10ge2p1x710",
- Constants.NIC_NAME_TO_CODE[nic_name], 1,
+ in_filename, u"10ge2p1x710", nic_code, 1,
u"File name should contain NIC code once.", in_filename
)
tmp_prolog = replace_defensively(
@@ -401,6 +452,11 @@ def write_reconf_files(in_filename, in_prolog, kwargs_list):
Constants.NIC_DRIVER_TO_VFS[driver], 1,
u"NIC VFs argument should appear once.", in_filename
)
+ out_prolog = replace_defensively(
+ out_prolog, Constants.NIC_CODE_TO_PFS["10ge2p1x710"],
+ Constants.NIC_CODE_TO_PFS[nic_code], 1,
+ "NIC PFs argument should appear once.", in_filename
+ )
iface, suite_id, suite_tag = get_iface_and_suite_ids(out_filename)
out_prolog = replace_defensively(
out_prolog, old_suite_tag, suite_tag, 1,
@@ -419,8 +475,6 @@ def write_reconf_files(in_filename, in_prolog, kwargs_list):
def write_tcp_files(in_filename, in_prolog, kwargs_list):
"""Using given filename and prolog, write all generated tcp suites.
- TODO: Suport drivers.
-
:param in_filename: Template filename to derive real filenames from.
:param in_prolog: Template content to derive real content from.
:param kwargs_list: List of kwargs for add_default_testcase.
@@ -431,10 +485,78 @@ def write_tcp_files(in_filename, in_prolog, kwargs_list):
# TODO: Generate rps from cps? There are subtle differences.
_, suite_id, suite_tag = get_iface_and_suite_ids(in_filename)
testcase = Testcase.tcp(suite_id)
- for nic_name in Constants.NIC_NAME_TO_CODE:
+ for nic_code in Constants.NIC_CODE_TO_NAME:
+ nic_name = Constants.NIC_CODE_TO_NAME[nic_code]
+ tmp_filename = replace_defensively(
+ in_filename, u"10ge2p1x710", nic_code, 1,
+ u"File name should contain NIC code once.", in_filename
+ )
+ tmp_prolog = replace_defensively(
+ in_prolog, u"Intel-X710", nic_name, 2,
+ u"NIC name should appear twice (tag and variable).",
+ in_filename
+ )
+ iface, old_suite_id, old_suite_tag = get_iface_and_suite_ids(
+ tmp_filename
+ )
+ for driver in Constants.NIC_NAME_TO_DRIVER[nic_name]:
+ out_filename = replace_defensively(
+ tmp_filename, old_suite_id,
+ Constants.NIC_DRIVER_TO_SUITE_PREFIX[driver] + old_suite_id,
+ 1, u"Error adding driver prefix.", in_filename
+ )
+ out_prolog = replace_defensively(
+ tmp_prolog, u"vfio-pci", driver, 1,
+ u"Driver name should appear once.", in_filename
+ )
+ out_prolog = replace_defensively(
+ out_prolog, Constants.NIC_DRIVER_TO_TAG[u"vfio-pci"],
+ Constants.NIC_DRIVER_TO_TAG[driver], 1,
+ u"Driver tag should appear once.", in_filename
+ )
+ out_prolog = replace_defensively(
+ out_prolog, Constants.NIC_DRIVER_TO_PLUGINS[u"vfio-pci"],
+ Constants.NIC_DRIVER_TO_PLUGINS[driver], 1,
+ u"Driver plugin should appear once.", in_filename
+ )
+ out_prolog = replace_defensively(
+ out_prolog, Constants.NIC_DRIVER_TO_VFS[u"vfio-pci"],
+ Constants.NIC_DRIVER_TO_VFS[driver], 1,
+ u"NIC VFs argument should appear once.", in_filename
+ )
+ out_prolog = replace_defensively(
+ out_prolog, Constants.NIC_CODE_TO_PFS["10ge2p1x710"],
+ Constants.NIC_CODE_TO_PFS[nic_code], 1,
+ "NIC PFs argument should appear once.", in_filename
+ )
+ iface, suite_id, suite_tag = get_iface_and_suite_ids(out_filename)
+ out_prolog = replace_defensively(
+ out_prolog, old_suite_tag, suite_tag, 1,
+ u"Perf suite tag should appear once.", in_filename
+ )
+ check_suite_tag(suite_tag, out_prolog)
+ testcase = Testcase.tcp(suite_id)
+ with open(out_filename, u"wt") as file_out:
+ file_out.write(out_prolog)
+ add_tcp_testcases(testcase, file_out, kwargs_list)
+
+
+def write_iperf3_files(in_filename, in_prolog, kwargs_list):
+ """Using given filename and prolog, write all generated iperf3 suites.
+
+ :param in_filename: Template filename to derive real filenames from.
+ :param in_prolog: Template content to derive real content from.
+ :param kwargs_list: List of kwargs for add_default_testcase.
+ :type in_filename: str
+ :type in_prolog: str
+ :type kwargs_list: list of dict
+ """
+ _, suite_id, suite_tag = get_iface_and_suite_ids(in_filename)
+ testcase = Testcase.iperf3(suite_id)
+ for nic_code in Constants.NIC_CODE_TO_NAME:
+ nic_name = Constants.NIC_CODE_TO_NAME[nic_code]
out_filename = replace_defensively(
- in_filename, u"10ge2p1x710",
- Constants.NIC_NAME_TO_CODE[nic_name], 1,
+ in_filename, u"10ge2p1x710", nic_code, 1,
u"File name should contain NIC code once.", in_filename
)
out_prolog = replace_defensively(
@@ -445,11 +567,69 @@ def write_tcp_files(in_filename, in_prolog, kwargs_list):
check_suite_tag(suite_tag, out_prolog)
with open(out_filename, u"wt") as file_out:
file_out.write(out_prolog)
- add_tcp_testcases(testcase, file_out, kwargs_list)
+ add_iperf3_testcases(testcase, file_out, kwargs_list)
-def write_iperf3_files(in_filename, in_prolog, kwargs_list):
- """Using given filename and prolog, write all generated iperf3 suites.
+def write_trex_files(in_filename, in_prolog, kwargs_list):
+ """Using given filename and prolog, write all generated trex suites.
+
+ :param in_filename: Template filename to derive real filenames from.
+ :param in_prolog: Template content to derive real content from.
+ :param kwargs_list: List of kwargs for add_trex_testcase.
+ :type in_filename: str
+ :type in_prolog: str
+ :type kwargs_list: list of dict
+ """
+ for suite_type in Constants.PERF_TYPE_TO_KEYWORD:
+ tmp_filename = replace_defensively(
+ in_filename, u"ndrpdr", suite_type, 1,
+ u"File name should contain suite type once.", in_filename
+ )
+ tmp_prolog = replace_defensively(
+ in_prolog, u"ndrpdr".upper(), suite_type.upper(), 1,
+ u"Suite type should appear once in uppercase (as tag).",
+ in_filename
+ )
+ tmp_prolog = replace_defensively(
+ tmp_prolog,
+ u"Find NDR and PDR intervals using optimized search",
+ Constants.PERF_TYPE_TO_KEYWORD[suite_type], 1,
+ u"Main search keyword should appear once in suite.",
+ in_filename
+ )
+ tmp_prolog = replace_defensively(
+ tmp_prolog,
+ Constants.PERF_TYPE_TO_SUITE_DOC_VER[u"ndrpdr"],
+ Constants.PERF_TYPE_TO_SUITE_DOC_VER[suite_type],
+ 1, u"Exact suite type doc not found.", in_filename
+ )
+ tmp_prolog = replace_defensively(
+ tmp_prolog,
+ Constants.PERF_TYPE_TO_TEMPLATE_DOC_VER[u"ndrpdr"],
+ Constants.PERF_TYPE_TO_TEMPLATE_DOC_VER[suite_type],
+ 1, u"Exact template type doc not found.", in_filename
+ )
+ _, suite_id, suite_tag = get_iface_and_suite_ids(tmp_filename)
+ testcase = Testcase.trex(suite_id)
+ for nic_code in Constants.NIC_CODE_TO_NAME:
+ nic_name = Constants.NIC_CODE_TO_NAME[nic_code]
+ out_filename = replace_defensively(
+ tmp_filename, u"10ge2p1x710", nic_code, 1,
+ u"File name should contain NIC code once.", in_filename
+ )
+ out_prolog = replace_defensively(
+ tmp_prolog, u"Intel-X710", nic_name, 2,
+ u"NIC name should appear twice (tag and variable).",
+ in_filename
+ )
+ check_suite_tag(suite_tag, out_prolog)
+ with open(out_filename, u"wt") as file_out:
+ file_out.write(out_prolog)
+ add_trex_testcases(testcase, suite_id, file_out, kwargs_list)
+
+
+def write_device_files(in_filename, in_prolog, kwargs_list):
+ """Using given filename and prolog, write all generated suites.
:param in_filename: Template filename to derive real filenames from.
:param in_prolog: Template content to derive real content from.
@@ -458,22 +638,68 @@ def write_iperf3_files(in_filename, in_prolog, kwargs_list):
:type in_prolog: str
:type kwargs_list: list of dict
"""
- _, suite_id, suite_tag = get_iface_and_suite_ids(in_filename)
- testcase = Testcase.iperf3(suite_id)
- out_filename = replace_defensively(
- in_filename, u"10ge2p1x710",
- Constants.NIC_NAME_TO_CODE[u"Intel-X710"], 1,
- u"File name should contain NIC code once.", in_filename
- )
- out_prolog = replace_defensively(
- in_prolog, u"Intel-X710", u"Intel-X710", 2,
- u"NIC name should appear twice (tag and variable).",
- in_filename
- )
- check_suite_tag(suite_tag, out_prolog)
- with open(out_filename, u"wt") as file_out:
- file_out.write(out_prolog)
- add_iperf3_testcases(testcase, file_out, kwargs_list)
+ for suite_type in Constants.DEVICE_TYPE_TO_KEYWORD:
+ tmp_filename = replace_defensively(
+ in_filename, u"scapy", suite_type, 1,
+ u"File name should contain suite type once.", in_filename
+ )
+ _, suite_id, _ = get_iface_and_suite_ids(tmp_filename)
+ testcase = Testcase.default(suite_id)
+ for nic_code in Constants.NIC_CODE_TO_NAME:
+ nic_name = Constants.NIC_CODE_TO_NAME[nic_code]
+ tmp2_filename = replace_defensively(
+ tmp_filename, u"10ge2p1x710", nic_code, 1,
+ u"File name should contain NIC code once.", in_filename
+ )
+ tmp2_prolog = replace_defensively(
+ in_prolog, u"Intel-X710", nic_name, 2,
+ u"NIC name should appear twice (tag and variable).",
+ in_filename
+ )
+ iface, old_suite_id, _ = get_iface_and_suite_ids(
+ tmp2_filename
+ )
+ for driver in Constants.NIC_NAME_TO_DRIVER[nic_name]:
+ out_filename = replace_defensively(
+ tmp2_filename, old_suite_id,
+ Constants.NIC_DRIVER_TO_SUITE_PREFIX[driver] + old_suite_id,
+ 1, u"Error adding driver prefix.", in_filename
+ )
+ out_prolog = replace_defensively(
+ tmp2_prolog, u"vfio-pci", driver, 1,
+ u"Driver name should appear once.", in_filename
+ )
+ out_prolog = replace_defensively(
+ out_prolog, Constants.NIC_DRIVER_TO_TAG[u"vfio-pci"],
+ Constants.NIC_DRIVER_TO_TAG[driver], 1,
+ u"Driver tag should appear once.", in_filename
+ )
+ out_prolog = replace_defensively(
+ out_prolog, Constants.NIC_DRIVER_TO_PLUGINS[u"vfio-pci"],
+ Constants.NIC_DRIVER_TO_PLUGINS[driver], 1,
+ u"Driver plugin should appear once.", in_filename
+ )
+ out_prolog = replace_defensively(
+ out_prolog, Constants.NIC_DRIVER_TO_VFS[u"vfio-pci"],
+ Constants.NIC_DRIVER_TO_VFS[driver], 1,
+ u"NIC VFs argument should appear once.", in_filename
+ )
+ out_prolog = replace_defensively(
+ out_prolog, Constants.NIC_CODE_TO_PFS["10ge2p1x710"],
+ Constants.NIC_CODE_TO_PFS[nic_code], 1,
+ "NIC PFs argument should appear once.", in_filename
+ )
+ iface, suite_id, suite_tag = get_iface_and_suite_ids(
+ out_filename
+ )
+ check_suite_tag(suite_tag, out_prolog)
+ # TODO: Reorder loops so suite_id is finalized sooner.
+ testcase = Testcase.default(suite_id)
+ with open(out_filename, u"wt") as file_out:
+ file_out.write(out_prolog)
+ add_default_testcases(
+ testcase, iface, suite_id, file_out, kwargs_list
+ )
class Regenerator:
@@ -497,7 +723,7 @@ class Regenerator:
Log-like prints are emitted to sys.stderr.
- :param pattern: Glob pattern to select files. Example: *-ndrpdr.robot
+ :param pattern: Glob pattern to select files. Example: \*-ndrpdr.robot
:param protocol: String determining minimal frame size. Default: "ip4"
:type pattern: str
:type protocol: str
@@ -532,6 +758,44 @@ class Regenerator:
{u"frame_size": 128000, u"phy_cores": 2},
{u"frame_size": 128000, u"phy_cores": 4}
]
+ # List for tests with one dataplane core
+ # (and variable number of other cores).
+ dp1_kwargs_list = [
+ {u"frame_size": min_frame_size, u"phy_cores": 2},
+ {u"frame_size": min_frame_size, u"phy_cores": 3},
+ {u"frame_size": min_frame_size, u"phy_cores": 4},
+ {u"frame_size": 1518, u"phy_cores": 2},
+ {u"frame_size": 1518, u"phy_cores": 3},
+ {u"frame_size": 1518, u"phy_cores": 4},
+ {u"frame_size": 9000, u"phy_cores": 2},
+ {u"frame_size": 9000, u"phy_cores": 3},
+ {u"frame_size": 9000, u"phy_cores": 4},
+ {u"frame_size": u"IMIX_v4_1", u"phy_cores": 2},
+ {u"frame_size": u"IMIX_v4_1", u"phy_cores": 3},
+ {u"frame_size": u"IMIX_v4_1", u"phy_cores": 4}
+ ]
+
+ http_kwargs_list = [
+ {u"frame_size": 0, u"phy_cores": 1},
+ {u"frame_size": 0, u"phy_cores": 2},
+ {u"frame_size": 64, u"phy_cores": 1},
+ {u"frame_size": 64, u"phy_cores": 2},
+ {u"frame_size": 1024, u"phy_cores": 1},
+ {u"frame_size": 1024, u"phy_cores": 2},
+ {u"frame_size": 2048, u"phy_cores": 1},
+ {u"frame_size": 2048, u"phy_cores": 2}
+ ]
+
+ device_kwargs_list = [
+ {u"frame_size": min_frame_size, u"phy_cores": 0}
+ ]
+
+ trex_kwargs_list = [
+ {u"frame_size": min_frame_size},
+ {u"frame_size": 1518},
+ {u"frame_size": 9000},
+ {u"frame_size": u"IMIX_v4_1"}
+ ]
for in_filename in glob(pattern):
if not self.quiet:
@@ -552,17 +816,32 @@ class Regenerator:
in_prolog = u"".join(
file_in.read().partition(u"*** Test Cases ***")[:-1]
)
+ if "-tg" in in_filename:
+ write_trex_files(in_filename, in_prolog, trex_kwargs_list)
+ continue
if in_filename.endswith(u"-ndrpdr.robot"):
- write_default_files(in_filename, in_prolog, default_kwargs_list)
+ if u"scheduler" in in_filename:
+ write_default_files(
+ in_filename, in_prolog, dp1_kwargs_list
+ )
+ else:
+ write_default_files(
+ in_filename, in_prolog, default_kwargs_list
+ )
elif in_filename.endswith(u"-reconf.robot"):
write_reconf_files(in_filename, in_prolog, default_kwargs_list)
+ elif in_filename.endswith(u"-rps.robot") \
+ or in_filename.endswith(u"-cps.robot"):
+ write_tcp_files(in_filename, in_prolog, http_kwargs_list)
elif in_filename.endswith(u"-bps.robot"):
hoststack_kwargs_list = \
hs_quic_kwargs_list if u"quic" in in_filename \
else hs_bps_kwargs_list
write_tcp_files(in_filename, in_prolog, hoststack_kwargs_list)
- elif in_filename.endswith(u"-iperf3.robot"):
+ elif in_filename.endswith(u"-iperf3-mrr.robot"):
write_iperf3_files(in_filename, in_prolog, iperf3_kwargs_list)
+ elif in_filename.endswith(u"-scapy.robot"):
+ write_device_files(in_filename, in_prolog, device_kwargs_list)
else:
raise RuntimeError(
f"Error in {in_filename}: non-primary suite type found."
diff --git a/resources/libraries/python/autogen/Testcase.py b/resources/libraries/python/autogen/Testcase.py
index 173c5919af..32fc5014cc 100644
--- a/resources/libraries/python/autogen/Testcase.py
+++ b/resources/libraries/python/autogen/Testcase.py
@@ -33,16 +33,17 @@ class Testcase:
"""
self.template = Template(template_string)
- def generate(self, frame_size, phy_cores):
+ def generate(self, frame_size, phy_cores=None):
"""Return string of test case code with placeholders filled.
Fail if there are placeholders left unfilled.
It is not required for all placeholders to be present in template.
:param frame_size: Imix string or numeric frame size. Example: 74.
- :param phy_cores: Number of physical cores to use. Example: 2.
+ :param phy_cores: Number of physical cores to use. Example: 2. It can
+ be None in n2n testcases.
:type frame_size: str or int
- :type phy_cores: int or str
+ :type phy_cores: int, str or None
:returns: Filled template, usable as test case code.
:rtype: str
"""
@@ -57,6 +58,8 @@ class Testcase:
u"frame_num": str(frame_size),
u"frame_str": u"IMIX"
}
+ if phy_cores is None:
+ return self.template.substitute(subst_dict)
cores_str = str(phy_cores)
cores_num = int(cores_str)
subst_dict.update(
@@ -100,7 +103,14 @@ class Testcase:
# TODO: Choose a better frame size identifier for streamed protocols
# (TCP, QUIC, SCTP, ...) where DUT (not TG) decides frame size.
if u"tcphttp" in suite_id:
- template_string = f'''
+ if u"rps" or u"cps" in suite_id:
+ template_string = f'''
+| ${{frame_str}}-${{cores_str}}c-{suite_id}
+| | [Tags] | ${{frame_str}} | ${{cores_str}}C
+| | frame_size=${{frame_num}} | phy_cores=${{cores_num}}
+'''
+ else:
+ template_string = f'''
| IMIX-${{cores_str}}c-{suite_id}
| | [Tags] | ${{cores_str}}C
| | phy_cores=${{cores_num}}
@@ -129,3 +139,21 @@ class Testcase:
| | frame_size=${{frame_num}} | phy_cores=${{cores_num}}
'''
return cls(template_string)
+
+ @classmethod
+ def trex(cls, suite_id):
+ """Factory method for creating "trex" testcase objects.
+
+ Testcase name will contain frame size, but not core count.
+
+ :param suite_id: Part of suite name to distinguish from other suites.
+ :type suite_id: str
+ :returns: Instance for generating testcase text of this type.
+ :rtype: Testcase
+ """
+ template_string = f'''
+| ${{frame_str}}--{suite_id}
+| | [Tags] | ${{frame_str}}
+| | frame_size=${{frame_num}}
+'''
+ return cls(template_string)
diff --git a/resources/libraries/python/autogen/__init__.py b/resources/libraries/python/autogen/__init__.py
index dfb2255a09..939824903e 100644
--- a/resources/libraries/python/autogen/__init__.py
+++ b/resources/libraries/python/autogen/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/autogen/add_suite_tag.py b/resources/libraries/python/autogen/add_suite_tag.py
index 63bfa1a385..276e6b04a4 100755
--- a/resources/libraries/python/autogen/add_suite_tag.py
+++ b/resources/libraries/python/autogen/add_suite_tag.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/python/jumpavg/AvgStdevStats.py b/resources/libraries/python/jumpavg/AvgStdevStats.py
deleted file mode 100644
index 9a8decd932..0000000000
--- a/resources/libraries/python/jumpavg/AvgStdevStats.py
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""Module holding AvgStdevStats class."""
-
-import math
-
-
-class AvgStdevStats:
- """Class for statistics which include average and stdev of a group.
-
- Contrary to other stats types, adding values to the group
- is computationally light without any caching.
-
- Instances are only statistics, the data itself is stored elsewhere.
- """
-
- def __init__(self, size=0, avg=0.0, stdev=0.0):
- """Construct the stats object by storing the values needed.
-
- Each value has to be numeric.
- The values are not sanitized depending on size, wrong initialization
- can cause delayed math errors.
-
- :param size: Number of values participating in this group.
- :param avg: Population average of the participating sample values.
- :param stdev: Population standard deviation of the sample values.
- :type size: int
- :type avg: float
- :type stdev: float
- """
- self.size = size
- self.avg = avg
- self.stdev = stdev
-
- def __str__(self):
- """Return string with human readable description of the group.
-
- :returns: Readable description.
- :rtype: str
- """
- return f"size={self.size} avg={self.avg} stdev={self.stdev}"
-
- def __repr__(self):
- """Return string executable as Python constructor call.
-
- :returns: Executable constructor call.
- :rtype: str
- """
- return (
- f"AvgStdevStats(size={self.size!r},avg={self.avg!r}"
- f",stdev={self.stdev!r})"
- )
-
- @classmethod
- def for_runs(cls, runs):
- """Return new stats instance describing the sequence of runs.
-
- If you want to append data to existing stats object,
- you can simply use the stats object as the first run.
-
- Instead of a verb, "for" is used to start this method name,
- to signify the result contains less information than the input data.
-
- Here, Run is a hypothetical abstract class, an union of float and cls.
- Defining that as a real abstract class in Python 2 is too much hassle.
-
- :param runs: Sequence of data to describe by the new metadata.
- :type runs: Iterable[Union[float, cls]]
- :returns: The new stats instance.
- :rtype: cls
- """
- # Using Welford method to be more resistant to rounding errors.
- # Adapted from code for sample standard deviation at:
- # https://www.johndcook.com/blog/standard_deviation/
- # The logic of plus operator is taken from
- # https://www.johndcook.com/blog/skewness_kurtosis/
- total_size = 0
- total_avg = 0.0
- moment_2 = 0.0
- for run in runs:
- if isinstance(run, (float, int)):
- run_size = 1
- run_avg = run
- run_stdev = 0.0
- else:
- run_size = run.size
- run_avg = run.avg
- run_stdev = run.stdev
- old_total_size = total_size
- delta = run_avg - total_avg
- total_size += run_size
- total_avg += delta * run_size / total_size
- moment_2 += run_stdev * run_stdev * run_size
- moment_2 += delta * delta * old_total_size * run_size / total_size
- if total_size < 1:
- # Avoid division by zero.
- return cls(size=0)
- # TODO: Is it worth tracking moment_2 instead, and compute and cache
- # stdev on demand, just to possibly save some sqrt calls?
- total_stdev = math.sqrt(moment_2 / total_size)
- ret_obj = cls(size=total_size, avg=total_avg, stdev=total_stdev)
- return ret_obj
diff --git a/resources/libraries/python/jumpavg/BitCountingGroup.py b/resources/libraries/python/jumpavg/BitCountingGroup.py
deleted file mode 100644
index 0c1aabba30..0000000000
--- a/resources/libraries/python/jumpavg/BitCountingGroup.py
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""Module holding BitCountingGroup class."""
-
-import copy
-
-from .AvgStdevStats import AvgStdevStats
-from .BitCountingStats import BitCountingStats
-
-
-class BitCountingGroup:
- # TODO: Inherit from collections.abc.Sequence in Python 3.
- """Group of runs which tracks bit count in an efficient manner.
-
- This class contains methods that mutate the internal state,
- use copy() method to save the previous state.
-
- The Sequence-like access is related to the list of runs,
- for example group[0] returns the first run in the list.
- Writable list-like methods are not implemented.
-
- As the group bit count depends on previous average
- and overall maximal value, those values are assumed
- to be known beforehand (and immutable).
-
- As the caller is allowed to divide runs into groups in any way,
- a method to add a single run in an efficient manner is provided.
- """
-
- def __init__(self, run_list=None, stats=None, bits=None,
- max_value=None, prev_avg=None, comment="unknown"):
- """Set the internal state and partially the stats.
-
- A "group" stands for an Iterable of runs, where "run" is either
- a float value, or a stats-like object (only size, avg and stdev
- are accessed). Run is a hypothetical abstract class,
- defining it in Python 2 is too much hassle.
-
- Only a copy of the run list argument value is stored in the instance,
- so it is not a problem if the value object is mutated afterwards.
-
- It is not verified whether the user provided values are valid,
- e.g. whether the stats and bits values reflect the runs.
-
- :param run_list: List of run to compose into this group. Default: empty.
- :param stats: Stats object used for computing bits.
- :param bits: Cached value of information content.
- :param max_value: Maximal sample value to be used for computing.
- :param prev_avg: Average of the previous group, affects bits.
- :param comment: Any string giving more info, e.g. "regression".
- :type run_list: Iterable[Run]
- :type stats: Optional[AvgStdevStats]
- :type bits: Optional[float]
- :type max_value: float
- :type prev_avg: Optional[float]
- :type comment: str
- """
- self.run_list = copy.deepcopy(run_list) if run_list else list()
- self.stats = stats
- self.cached_bits = bits
- self.max_value = max_value
- self.prev_avg = prev_avg
- self.comment = comment
- if self.stats is None:
- self.stats = AvgStdevStats.for_runs(self.run_list)
-
- def __str__(self):
- """Return string with human readable description of the group.
-
- :returns: Readable description.
- :rtype: str
- """
- return f"stats={self.stats} bits={self.cached_bits}"
-
- def __repr__(self):
- """Return string executable as Python constructor call.
-
- :returns: Executable constructor call.
- :rtype: str
- """
- return (
- f"BitCountingGroup(run_list={self.run_list!r},stats={self.stats!r}"
- f",bits={self.cached_bits!r},max_value={self.max_value!r}"
- f",prev_avg={self.prev_avg!r},comment={self.comment!r})"
- )
-
- def __getitem__(self, index):
- """Return the run at the index.
-
- :param index: Index of the run to return.
- :type index: int
- :returns: The run at the index.
- :rtype: Run
- """
- return self.run_list[index]
-
- def __len__(self):
- """Return the number of runs in the group.
-
- :returns: The Length of run_list.
- :rtype: int
- """
- return len(self.run_list)
-
- def copy(self):
- """Return a new instance with copied internal state.
-
- :returns: The copied instance.
- :rtype: BitCountingGroup
- """
- stats = AvgStdevStats.for_runs([self.stats])
- return self.__class__(
- run_list=self.run_list, stats=stats, bits=self.cached_bits,
- max_value=self.max_value, prev_avg=self.prev_avg,
- comment=self.comment)
-
- @property
- def bits(self):
- """Return overall bit content of the group list.
-
- If not cached, compute from stats and cache.
-
- :returns: The overall information content in bits.
- :rtype: float
- """
- if self.cached_bits is None:
- self.cached_bits = BitCountingStats.for_runs(
- [self.stats], self.max_value, self.prev_avg).bits
- return self.cached_bits
-
- def append(self, run):
- """Mutate to add the new run, return self.
-
- Stats are updated, but old bits value is deleted from cache.
-
- :param run: The run value to add to the group.
- :type value: Run
- :returns: The updated self.
- :rtype: BitCountingGroup
- """
- self.run_list.append(run)
- self.stats = AvgStdevStats.for_runs([self.stats, run])
- self.cached_bits = None
- return self
-
- def extend(self, runs):
- """Mutate to add the new runs, return self.
-
- This is saves small amount of computation
- compared to adding runs one by one in a loop.
-
- Stats are updated, but old bits value is deleted from cache.
-
- :param runs: The runs to add to the group.
- :type value: Iterable[Run]
- :returns: The updated self.
- :rtype: BitCountingGroup
- """
- self.run_list.extend(runs)
- self.stats = AvgStdevStats.for_runs([self.stats] + runs)
- self.cached_bits = None
- return self
diff --git a/resources/libraries/python/jumpavg/BitCountingGroupList.py b/resources/libraries/python/jumpavg/BitCountingGroupList.py
deleted file mode 100644
index bcc5e43267..0000000000
--- a/resources/libraries/python/jumpavg/BitCountingGroupList.py
+++ /dev/null
@@ -1,185 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""Module holding BitCountingGroupList class."""
-
-import copy
-
-from .BitCountingGroup import BitCountingGroup
-
-
-class BitCountingGroupList:
- # TODO: Inherit from collections.abc.Sequence in Python 3.
- """List of data groups which tracks overall bit count.
-
- The Sequence-like access is related to the list of groups,
- for example group_list[0] returns the first group in the list.
- Writable list-like methods are not implemented.
-
- The overall bit count is the sum of bit counts of each group.
- Group is a sequence of data samples accompanied by their stats.
- Different partitioning of data samples into the groups
- results in different overall bit count.
- This can be used to group samples in various contexts.
-
- As the group bit count depends on previous average
- and overall maximal value, order of groups is important.
- Having the logic encapsulated here spares the caller
- the effort to pass averages around.
-
- The data can be only added, and there is some logic to skip
- recalculations if the bit count is not needed.
- """
-
- def __init__(self, group_list=None, bits_except_last=0.0, max_value=None):
- """Set the internal state without any calculations.
-
- The group list argument is copied deeply, so it is not a problem
- if the value object is mutated afterwards.
-
- A "group" stands for an Iterable of runs, where "run" is either
- a float value, or a stats-like object (only size, avg and stdev
- are accessed). Run is a hypothetical abstract class,
- defining it in Python 2 is too much hassle.
-
- It is not verified whether the user provided values are valid,
- e.g. whether the cached bits values make sense.
-
- The max_value is required and immutable,
- it is recommended the callers find their maximum beforehand.
-
- :param group_list: List of groups to compose this group list (or empty).
- :param bits_except_last: Partial sum of all but one group bits.
- :param max_value: Maximal sample value to base bits computation on.
- :type group_list: Iterable[BitCountingGroup]
- :type bits_except_last: float
- :type max_value: float
- """
- self.group_list = copy.deepcopy(group_list) if group_list else list()
- self.bits_except_last = bits_except_last
- self.max_value = max_value
-
- def __str__(self):
- """Return string with human readable description of the group list.
-
- :returns: Readable description.
- :rtype: str
- """
- return u"group_list={self.group_list} bits={self.bits}"
-
- def __repr__(self):
- """Return string executable as Python constructor call.
-
- :returns: Executable constructor call.
- :rtype: str
- """
- return (
- f"BitCountingGroupList(group_list={self.group_list!r}"
- f",bits_except_last={self.bits_except_last!r}"
- f",max_value={self.max_value!r})"
- )
-
- def __getitem__(self, index):
- """Return the group at the index.
-
- :param index: Index of the group to return.
- :type index: int
- :returns: The group at the index.
- :rtype: BitCountingGroup
- """
- return self.group_list[index]
-
- def __len__(self):
- """Return the length of the group list.
-
- :returns: The Length of group_list.
- :rtype: int
- """
- return len(self.group_list)
-
- def copy(self):
- """Return a new instance with copied internal state.
-
- :returns: The copied instance.
- :rtype: BitCountingGroupList
- """
- return self.__class__(
- group_list=self.group_list, bits_except_last=self.bits_except_last,
- max_value=self.max_value
- )
-
- @property
- def bits(self):
- """Return overall bit content of the group list.
-
- :returns: The overall information content in bits.
- :rtype: float
- """
- if not self.group_list:
- return 0.0
- # TODO: Is it worth to cache the overall result?
- return self.bits_except_last + self.group_list[-1].bits
-
- def append_group_of_runs(self, runs):
- """Mutate to add a new group based on the runs, return self.
-
- The argument is copied before adding to the group list,
- so further edits do not affect the grup list.
- The argument can also be a group, only runs from it are used.
-
- :param runs: Runs to form the next group to be appended to self.
- :type runs: Union[Iterable[Run], BitCountingGroup]
- :returns: The updated self.
- :rtype: BitCountingGroupList
- """
- prev_avg = self.group_list[-1].stats.avg if self.group_list else None
- if isinstance(runs, BitCountingGroup):
- # It is faster to avoid stats recalculation.
- new_group = runs.copy()
- new_group.max_value = self.max_value
- new_group.prev_avg = prev_avg
- new_group.cached_bits = None
- else:
- new_group = BitCountingGroup(
- run_list=runs, max_value=self.max_value, prev_avg=prev_avg)
- self.bits_except_last = self.bits
- self.group_list.append(new_group)
- return self
-
- def append_run_to_to_last_group(self, run):
- """Mutate to add new run at the end of the last group.
-
- Basically a one-liner, only returning group list instead of last group.
-
- :param run: The run value to add to the last group.
- :type run: Run
- :returns: The updated self.
- :rtype: BitCountingGroupList
- :raises IndexError: If group list is empty, no last group to add to.
- """
- self.group_list[-1].append(run)
- return self
-
- def extend_runs_to_last_group(self, runs):
- """Mutate to add new runs to the end of the last group.
-
- A faster alternative to appending runs one by one in a loop.
-
- :param runs: The runs to add to the last group.
- :type runs: Iterable[Run]
- :returns: The updated self
- :rtype: BitCountingGroupList
- :raises IndexError: If group list is empty, no last group to add to.
- """
- self.group_list[-1].extend(runs)
- return self
diff --git a/resources/libraries/python/jumpavg/BitCountingStats.py b/resources/libraries/python/jumpavg/BitCountingStats.py
deleted file mode 100644
index 0addec013b..0000000000
--- a/resources/libraries/python/jumpavg/BitCountingStats.py
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""Module holding BitCountingStats class."""
-
-import math
-
-from .AvgStdevStats import AvgStdevStats
-
-
-class BitCountingStats(AvgStdevStats):
- """Class for statistics which include information content of a group.
-
- The information content is based on an assumption that the data
- consists of independent random values from a normal distribution.
-
- Instances are only statistics, the data itself is stored elsewhere.
-
- The coding needs to know the previous average, and a maximal value
- so both values are required as inputs.
-
- This is a subclass of AvgStdevStats, even though all methods are overriden.
- Only for_runs method calls the parent implementation, without using super().
- """
-
- def __init__(
- self, size=0, avg=None, stdev=0.0, max_value=None, prev_avg=None):
- """Construct the stats object by computing from the values needed.
-
- The values are not sanitized, faulty callers can cause math errors.
-
- The None values are allowed for stats for zero size data,
- but such stats can report arbitrary avg and max_value.
- Stats for nonzero size data cannot contain None,
- else ValueError is raised.
-
- The max_value needs to be numeric for nonzero size,
- but its relations to avg and prev_avg are not examined.
-
- The bit count is not real, as that would depend on numeric precision
- (number of significant bits in values).
- The difference is assumed to be constant per value,
- which is consistent with Gauss distribution
- (but not with floating point mechanic).
- The hope is the difference will have
- no real impact on the classification procedure.
-
- :param size: Number of values participating in this group.
- :param avg: Population average of the participating sample values.
- :param stdev: Population standard deviation of the sample values.
- :param max_value: Maximal expected value.
- TODO: This might be more optimal,
- but max-invariant algorithm will be nicer.
- :param prev_avg: Population average of the previous group.
- If None, no previous average is taken into account.
- If not None, the given previous average is used to discourage
- consecutive groups with similar averages
- (opposite triangle distribution is assumed).
- :type avg: float
- :type size: int
- :type stdev: float
- :type max_value: Union[float, NoneType]
- :type prev_avg: Union[float, NoneType]
- """
- self.avg = avg
- self.size = size
- self.stdev = stdev
- self.max_value = max_value
- self.prev_avg = prev_avg
- # Zero size should in principle have non-zero bits (coding zero size),
- # but zero allows users to add empty groups without affecting bits.
- self.bits = 0.0
- if self.size < 1:
- return
- if avg is None:
- raise ValueError(f"Avg is None: {self!r}")
- if max_value is None or max_value <= 0.0:
- raise ValueError(f"Invalid max value: {self!r}")
- # Length of the sequence must be also counted in bits,
- # otherwise the message would not be decodable.
- # Model: probability of k samples is 1/k - 1/(k+1) == 1/k/(k+1)
- # This is compatible with zero size leading to zero bits.
- self.bits += math.log(size * (size + 1), 2)
- if prev_avg is None:
- # Avg is considered to be uniformly distributed
- # from zero to max_value.
- self.bits += math.log(max_value + 1.0, 2)
- else:
- # Opposite triangle distribution with minimum.
- self.bits += math.log(
- max_value * (max_value + 1) / (abs(avg - prev_avg) + 1), 2)
- if self.size < 2:
- return
- # Stdev is considered to be uniformly distributed
- # from zero to max_value. That is quite a bad expectation,
- # but resilient to negative samples etc.
- self.bits += math.log(max_value + 1.0, 2)
- # Now we know the samples lie on sphere in size-1 dimensions.
- # So it is (size-2)-sphere, with radius^2 == stdev^2 * size.
- # https://en.wikipedia.org/wiki/N-sphere
- sphere_area_ln = math.log(2) + math.log(math.pi) * ((size - 1) / 2.0)
- sphere_area_ln -= math.lgamma((size - 1) / 2.0)
- sphere_area_ln += math.log(stdev + 1.0) * (size - 2)
- sphere_area_ln += math.log(size) * ((size - 2) / 2.0)
- self.bits += sphere_area_ln / math.log(2)
-
- def __str__(self):
- """Return string with human readable description of the group.
-
- :returns: Readable description.
- :rtype: str
- """
- return (
- f"size={self.size} avg={self.avg} stdev={self.stdev}"
- f" bits={self.bits}"
- )
-
- def __repr__(self):
- """Return string executable as Python constructor call.
-
- :returns: Executable constructor call.
- :rtype: str
- """
- return (
- f"BitCountingStats(size={self.size!r},avg={self.avg!r}"
- f",stdev={self.stdev!r},max_value={self.max_value!r}"
- f",prev_avg={self.prev_avg!r})"
- )
-
- @classmethod
- def for_runs(cls, runs, max_value=None, prev_avg=None):
- """Return new stats instance describing the sequence of runs.
-
- If you want to append data to existing stats object,
- you can simply use the stats object as the first run.
-
- Instead of a verb, "for" is used to start this method name,
- to signify the result contains less information than the input data.
-
- The two optional values can come from outside of the runs provided.
-
- The max_value cannot be None for non-zero size data.
- The implementation does not check if no datapoint exceeds max_value.
-
- TODO: Document the behavior for zero size result.
-
- :param runs: Sequence of data to describe by the new metadata.
- :param max_value: Maximal expected value.
- :param prev_avg: Population average of the previous group, if any.
- :type runs: Iterable[Union[float, AvgStdevStats]]
- :type max_value: Union[float, NoneType]
- :type prev_avg: Union[float, NoneType]
- :returns: The new stats instance.
- :rtype: cls
- """
- asd = AvgStdevStats.for_runs(runs)
- ret_obj = cls(size=asd.size, avg=asd.avg, stdev=asd.stdev,
- max_value=max_value, prev_avg=prev_avg)
- return ret_obj
diff --git a/resources/libraries/python/jumpavg/__init__.py b/resources/libraries/python/jumpavg/__init__.py
index cb8b3df43d..7f63b5ee39 100644
--- a/resources/libraries/python/jumpavg/__init__.py
+++ b/resources/libraries/python/jumpavg/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -15,8 +15,8 @@
__init__ file for "jumpavg" Python package.
"""
-from .AvgStdevStats import AvgStdevStats
-from .BitCountingStats import BitCountingStats
-from .BitCountingGroup import BitCountingGroup
-from .BitCountingGroupList import BitCountingGroupList
+from .avg_stdev_stats import AvgStdevStats
+from .bit_counting_stats import BitCountingStats
+from .bit_counting_group import BitCountingGroup
+from .bit_counting_group_list import BitCountingGroupList
from .classify import classify
diff --git a/resources/libraries/python/jumpavg/avg_stdev_stats.py b/resources/libraries/python/jumpavg/avg_stdev_stats.py
new file mode 100644
index 0000000000..c21c50c8f8
--- /dev/null
+++ b/resources/libraries/python/jumpavg/avg_stdev_stats.py
@@ -0,0 +1,91 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Module holding AvgStdevStats class."""
+
+import dataclasses
+import math
+import typing
+
+
+@dataclasses.dataclass
+class AvgStdevStats:
+ """Class for statistics which include average and stdev of a group.
+
+ Contrary to other stats types, adding values to the group
+ is computationally light without any caching.
+
+ Instances are only statistics, the data itself is stored elsewhere.
+ """
+
+ size: int = 0
+ """Number of scalar values (samples) participating in this group."""
+ avg: float = 0.0
+ """Population average of the participating sample values."""
+ stdev: float = 0.0
+ """Population standard deviation of the sample values."""
+
+ @classmethod
+ def for_runs(
+ cls,
+ runs: typing.Iterable[typing.Union[float, "AvgStdevStats"]],
+ ) -> "AvgStdevStats":
+ """Return new stats instance describing the sequence of runs.
+
+ If you want to append data to existing stats object,
+ you can simply use the stats object as the first run.
+
+ Instead of a verb, "for" is used to start this method name,
+ to signify the result contains less information than the input data.
+
+ Here, run is a hypothetical abstract class, an union of float and cls.
+ Defining that as a real abstract class in Python is too much hassle.
+
+ :param runs: Sequence of data to describe by the new metadata.
+ :type runs: Iterable[Union[float, cls]]
+ :returns: The new stats instance.
+ :rtype: cls
+ """
+ # Using Welford method to be more resistant to rounding errors.
+ # Adapted from code for sample standard deviation at:
+ # https://www.johndcook.com/blog/standard_deviation/
+ # The logic of plus operator is taken from
+ # https://www.johndcook.com/blog/skewness_kurtosis/
+ total_size = 0
+ total_avg = 0.0
+ moment_2 = 0.0
+ for run in runs:
+ if isinstance(run, (float, int)):
+ run_size = 1
+ run_avg = run
+ run_stdev = 0.0
+ else:
+ run_size = run.size
+ run_avg = run.avg
+ run_stdev = run.stdev
+ if run_size < 1:
+ continue
+ old_total_size = total_size
+ delta = run_avg - total_avg
+ total_size += run_size
+ total_avg += delta * run_size / total_size
+ moment_2 += run_stdev * run_stdev * run_size
+ moment_2 += delta * delta * old_total_size * run_size / total_size
+ if total_size < 1:
+ # Avoid division by zero.
+ return cls(size=0)
+ # TODO: Is it worth tracking moment_2 instead, and compute and cache
+ # stdev on demand, just to possibly save some sqrt calls?
+ total_stdev = math.sqrt(moment_2 / total_size)
+ ret_obj = cls(size=total_size, avg=total_avg, stdev=total_stdev)
+ return ret_obj
diff --git a/resources/libraries/python/jumpavg/bit_counting_group.py b/resources/libraries/python/jumpavg/bit_counting_group.py
new file mode 100644
index 0000000000..22c9337532
--- /dev/null
+++ b/resources/libraries/python/jumpavg/bit_counting_group.py
@@ -0,0 +1,163 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module holding BitCountingGroup class."""
+
+import collections
+import dataclasses
+import typing
+
+from .avg_stdev_stats import AvgStdevStats
+from .bit_counting_stats import BitCountingStats
+
+
+@dataclasses.dataclass
+class BitCountingGroup(collections.abc.Sequence):
+ """Group of runs which tracks bit count in an efficient manner.
+
+ This class contains methods that mutate the internal state,
+ use copy() method to save the previous state.
+
+ The Sequence-like access is related to the list of runs,
+ for example group[0] returns the first run in the list.
+ Writable list-like methods are not implemented.
+
+ As the group bit count depends on previous average
+ and overall maximal value, those values are assumed
+ to be known beforehand (and immutable).
+
+ As the caller is allowed to divide runs into groups in any way,
+ a method to add a single run in an efficient manner is provided.
+ """
+
+ run_list: typing.List[typing.Union[float, AvgStdevStats]]
+ """List of run to compose into this group.
+ The init call takes ownership of the list,
+ so the caller should clone it to avoid unexpected muations."""
+ max_value: float
+ """Maximal sample value to expect."""
+ unit: float = 1.0
+ """Typical resolution of the values"""
+ comment: str = "normal"
+ """Any string giving more info, e.g. "regression"."""
+ prev_avg: typing.Optional[float] = None
+ """Average of the previous group, if any."""
+ stats: AvgStdevStats = None
+ """Stats object used for computing bits.
+ Almost always recomputed, except when non-None in init."""
+ cached_bits: typing.Optional[float] = None
+ """Cached value of information content.
+ Noned on edit, recomputed if needed and None."""
+
+ def __post_init__(self):
+ """Recompute stats is None.
+
+ It is not verified whether the user provided values are valid,
+ e.g. whether the stats and bits values reflect the runs.
+ """
+ if self.stats is None:
+ self.stats = AvgStdevStats.for_runs(runs=self.run_list)
+
+ @property
+ def bits(self) -> float:
+ """Return overall bit content of the group list.
+
+ If not cached, compute from stats and cache.
+
+ :returns: The overall information content in bits.
+ :rtype: float
+ """
+ if self.cached_bits is None:
+ self.cached_bits = BitCountingStats.for_runs_and_params(
+ runs=[self.stats],
+ max_value=self.max_value,
+ unit=self.unit,
+ prev_avg=self.prev_avg,
+ ).bits
+ return self.cached_bits
+
+ def __getitem__(self, index: int) -> typing.Union[float, AvgStdevStats]:
+ """Return the run at the index.
+
+ :param index: Index of the run to return.
+ :type index: int
+ :returns: The run at the index.
+ :rtype: typing.Union[float, AvgStdevStats]
+ """
+ return self.run_list[index]
+
+ def __len__(self) -> int:
+ """Return the number of runs in the group.
+
+ :returns: The Length of run_list.
+ :rtype: int
+ """
+ return len(self.run_list)
+
+ def copy(self) -> "BitCountingGroup":
+ """Return a new instance with copied internal state.
+
+ Stats are preserved to avoid re-computation.
+ As both float and AvgStdevStats are effectively immutable,
+ only a shallow copy of the runs list is performed.
+
+ :returns: The copied instance.
+ :rtype: BitCountingGroup
+ """
+ stats = AvgStdevStats.for_runs([self.stats])
+ return self.__class__(
+ run_list=list(self.run_list),
+ stats=stats,
+ cached_bits=self.cached_bits,
+ max_value=self.max_value,
+ unit=self.unit,
+ prev_avg=self.prev_avg,
+ comment=self.comment,
+ )
+
+ def append(
+ self, run: typing.Union[float, AvgStdevStats]
+ ) -> "BitCountingGroup":
+ """Mutate to add the new run, return self.
+
+ Stats are updated, but old bits value is deleted from cache.
+
+ :param run: The run value to add to the group.
+ :type value: typing.Union[float, AvgStdevStats]
+ :returns: The updated self.
+ :rtype: BitCountingGroup
+ """
+ self.run_list.append(run)
+ self.stats = AvgStdevStats.for_runs([self.stats, run])
+ self.cached_bits = None
+ return self
+
+ def extend(
+ self, runs: typing.Iterable[typing.Union[float, AvgStdevStats]]
+ ) -> "BitCountingGroup":
+ """Mutate to add the new runs, return self.
+
+ This is saves small amount of computation
+ compared to adding runs one by one in a loop.
+
+ Stats are updated, but old bits value is deleted from cache.
+
+ :param runs: The runs to add to the group.
+ :type value: typing.Iterable[typing.Union[float, AvgStdevStats]]
+ :returns: The updated self.
+ :rtype: BitCountingGroup
+ """
+ self.run_list.extend(runs)
+ self.stats = AvgStdevStats.for_runs([self.stats] + runs)
+ self.cached_bits = None
+ return self
diff --git a/resources/libraries/python/jumpavg/bit_counting_group_list.py b/resources/libraries/python/jumpavg/bit_counting_group_list.py
new file mode 100644
index 0000000000..e4d33b53a2
--- /dev/null
+++ b/resources/libraries/python/jumpavg/bit_counting_group_list.py
@@ -0,0 +1,203 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module holding BitCountingGroupList class."""
+
+import collections
+import dataclasses
+import typing
+
+from .avg_stdev_stats import AvgStdevStats # Just for type hints.
+from .bit_counting_group import BitCountingGroup
+
+
+@dataclasses.dataclass
+class BitCountingGroupList(collections.abc.Sequence):
+ """List of data groups which tracks overall bit count.
+
+ The Sequence-like access is related to the list of groups,
+ for example group_list[0] returns the first group in the list.
+ Writable list-like methods are not implemented.
+
+ The overall bit count is the sum of bit counts of each group.
+ Group is a sequence of data samples accompanied by their stats.
+ Different partitioning of data samples into the groups
+ results in different overall bit count.
+ This can be used to group samples in various contexts.
+
+ As the group bit count depends on previous average
+ and overall maximal value, order of groups is important.
+ Having the logic encapsulated here spares the caller
+ the effort to pass averages around.
+
+ The data can be only added, and there is some logic to skip
+ recalculations if the bit count is not needed.
+ """
+
+ max_value: float
+ """Maximal sample value to base bits computation on."""
+ unit: float = 1.0
+ """Typical resolution of the values."""
+ group_list: typing.List[BitCountingGroup] = None
+ """List of groups to compose this group list.
+ Init also accepts None standing for an empty list.
+ This class takes ownership of the list,
+ so caller of init should clone their copy to avoid unexpected mutations.
+ """
+ bits_except_last: float = 0.0
+ """Partial sum of all but one group bits."""
+
+ def __post_init__(self):
+ """Turn possible None into an empty list.
+
+ It is not verified whether the user provided values are valid,
+ e.g. whether the cached bits values (and bits_except_last) make sense.
+ """
+ if self.group_list is None:
+ self.group_list = []
+
+ def __getitem__(self, index: int) -> BitCountingGroup:
+ """Return the group at the index.
+
+ :param index: Index of the group to return.
+ :type index: int
+ :returns: The group at the index.
+ :rtype: BitCountingGroup
+ """
+ return self.group_list[index]
+
+ def __len__(self) -> int:
+ """Return the length of the group list.
+
+ :returns: The Length of group_list.
+ :rtype: int
+ """
+ return len(self.group_list)
+
+ def copy(self) -> "BitCountingGroupList":
+ """Return a new instance with copied internal state.
+
+ :returns: The copied instance.
+ :rtype: BitCountingGroupList
+ """
+ return self.__class__(
+ max_value=self.max_value,
+ unit=self.unit,
+ group_list=[group.copy() for group in self.group_list],
+ bits_except_last=self.bits_except_last,
+ )
+
+ def copy_fast(self) -> "BitCountingGroupList":
+ """Return a new instance with minimaly copied internal state.
+
+ The assumption here is that only the last group will ever be mutated
+ (in self, probably never in the return value),
+ so all the previous groups can be "copied by reference".
+
+ :returns: The copied instance.
+ :rtype: BitCountingGroupList
+ """
+ group_list = list(self.group_list)
+ if group_list:
+ group_list[-1] = group_list[-1].copy()
+ # Further speedup is possible by keeping the last group
+ # as a singly linked (from end) list,
+ # but for CSIT sample sizes, copy of whole Python list is faster.
+ # TODO: Implement linked list as an option
+ # for users with many samples.
+ return self.__class__(
+ max_value=self.max_value,
+ unit=self.unit,
+ group_list=group_list,
+ bits_except_last=self.bits_except_last,
+ )
+
+ @property
+ def bits(self) -> float:
+ """Return overall bit content of the group list.
+
+ :returns: The overall information content in bits.
+ :rtype: float
+ """
+ if not self.group_list:
+ return 0.0
+ # TODO: Is it worth to cache the overall result?
+ return self.bits_except_last + self.group_list[-1].bits
+
+ def append_group_of_runs(
+ self,
+ runs: typing.Union[
+ BitCountingGroup, typing.List[typing.Union[float, AvgStdevStats]]
+ ],
+ ) -> "BitCountingGroupList":
+ """Mutate to add a new group based on the runs, return self.
+
+ The list argument is NOT copied before adding to the group list,
+ so further edits MAY not affect the grup list.
+ The list from BitCountingGroup is shallow copied though.
+
+ :param runs: Runs to form the next group to be appended to self.
+ :type runs: Union[Iterable[Run], BitCountingGroup]
+ :returns: The updated self.
+ :rtype: BitCountingGroupList
+ """
+ prev_avg = self.group_list[-1].stats.avg if self.group_list else None
+ if isinstance(runs, BitCountingGroup):
+ # It is faster to avoid stats recalculation.
+ new_group = runs.copy()
+ new_group.max_value = self.max_value
+ # Unit is common.
+ new_group.prev_avg = prev_avg
+ new_group.cached_bits = None
+ else:
+ new_group = BitCountingGroup(
+ run_list=runs,
+ max_value=self.max_value,
+ unit=self.unit,
+ prev_avg=prev_avg,
+ )
+ self.bits_except_last = self.bits
+ self.group_list.append(new_group)
+ return self
+
+ def append_run_to_to_last_group(
+ self, run: typing.Union[float, AvgStdevStats]
+ ) -> "BitCountingGroupList":
+ """Mutate to add new run at the end of the last group.
+
+ Basically a one-liner, only returning group list instead of last group.
+
+ :param run: The run value to add to the last group.
+ :type run: Run
+ :returns: The updated self.
+ :rtype: BitCountingGroupList
+ :raises IndexError: If group list is empty, no last group to add to.
+ """
+ self.group_list[-1].append(run)
+ return self
+
+ def extend_runs_to_last_group(
+ self, runs: typing.Iterable[typing.Union[float, AvgStdevStats]]
+ ) -> "BitCountingGroupList":
+ """Mutate to add new runs to the end of the last group.
+
+ A faster alternative to appending runs one by one in a loop.
+
+ :param runs: The runs to add to the last group.
+ :type runs: Iterable[Run]
+ :returns: The updated self
+ :rtype: BitCountingGroupList
+ :raises IndexError: If group list is empty, no last group to add to.
+ """
+ self.group_list[-1].extend(runs)
+ return self
diff --git a/resources/libraries/python/jumpavg/bit_counting_stats.py b/resources/libraries/python/jumpavg/bit_counting_stats.py
new file mode 100644
index 0000000000..3d1cb8aef0
--- /dev/null
+++ b/resources/libraries/python/jumpavg/bit_counting_stats.py
@@ -0,0 +1,160 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module holding BitCountingStats class."""
+
+import dataclasses
+import math
+import typing
+
+from .avg_stdev_stats import AvgStdevStats
+
+
+@dataclasses.dataclass
+class BitCountingStats(AvgStdevStats):
+ """Class for statistics which include information content of a group.
+
+ The information content is based on an assumption that the data
+ consists of independent random values from a normal distribution.
+
+ Instances are only statistics, the data itself is stored elsewhere.
+
+ The coding needs to know the previous average, and a maximal value
+ so both values are required as inputs.
+
+ This is a subclass of AvgStdevStats, even though all methods are overriden.
+ Only for_runs method calls the parent implementation, without using super().
+ """
+
+ max_value: float = None
+ """Maximal sample value (real or estimated).
+ Default value is there just for argument ordering reasons,
+ leaving None leads to exceptions."""
+ unit: float = 1.0
+ """Typical resolution of the values."""
+ prev_avg: typing.Optional[float] = None
+ """Population average of the previous group (if any)."""
+ bits: float = None
+ """The computed information content of the group.
+ It is formally an argument to init function, just to keep repr string
+ a valid call. ut the init value is ignored and always recomputed.
+ """
+
+ def __post_init__(self):
+ """Construct the stats object by computing from the values needed.
+
+ The None values are allowed for stats for zero size data,
+ but such stats can report arbitrary avg and max_value.
+ Stats for nonzero size data cannot contain None,
+ else ValueError is raised.
+
+ The max_value needs to be numeric for nonzero size,
+ but its relations to avg and prev_avg are not examined.
+
+ The bit count is not real, as that would depend on numeric precision
+ (number of significant bits in values).
+ The difference is assumed to be constant per value,
+ which is consistent with Gauss distribution
+ (but not with floating point mechanic).
+ The hope is the difference will have
+ no real impact on the classification procedure.
+ """
+ # Zero size should in principle have non-zero bits (coding zero size),
+ # but zero allows users to add empty groups without affecting bits.
+ self.bits = 0.0
+ if self.size < 1:
+ return
+ if self.max_value <= 0.0:
+ raise ValueError(f"Invalid max value: {self!r}")
+ max_value = self.max_value / self.unit
+ avg = self.avg / self.unit
+ # Length of the sequence must be also counted in bits,
+ # otherwise the message would not be decodable.
+ # Model: probability of k samples is 1/k - 1/(k+1) == 1/k/(k+1)
+ # This is compatible with zero size leading to zero bits.
+ self.bits += math.log(self.size * (self.size + 1), 2)
+ if self.prev_avg is None:
+ # Avg is considered to be uniformly distributed
+ # from zero to max_value.
+ self.bits += math.log(max_value + 1, 2)
+ else:
+ # Opposite triangle distribution with minimum.
+ prev_avg = self.prev_avg / self.unit
+ norm = prev_avg * prev_avg
+ norm -= (prev_avg - 1) * max_value
+ norm += max_value * max_value / 2
+ self.bits -= math.log((abs(avg - prev_avg) + 1) / norm, 2)
+ if self.size < 2:
+ return
+ stdev = self.stdev / self.unit
+ # Stdev can be anything between zero and max value.
+ # For size==2, sphere surface is 2 points regardless of radius,
+ # we need to penalize large stdev already when encoding the stdev.
+ # The simplest way is to use the same distribution as with size...
+ self.bits += math.log((stdev + 1) * (stdev + 2), 2)
+ # .. just with added normalization from the max value cut-off.
+ self.bits += math.log(1 - 1 / (max_value + 2), 2)
+ # Now we know the samples lie on sphere in size-1 dimensions.
+ # So it is (size-2)-sphere, with radius^2 == stdev^2 * size.
+ # https://en.wikipedia.org/wiki/N-sphere
+ sphere_area_ln = math.log(2)
+ sphere_area_ln += math.log(math.pi) * ((self.size - 1) / 2)
+ sphere_area_ln -= math.lgamma((self.size - 1) / 2)
+ sphere_area_ln += math.log(stdev + 1) * (self.size - 2)
+ sphere_area_ln += math.log(self.size) * ((self.size - 2) / 2)
+ self.bits += sphere_area_ln / math.log(2)
+
+ @classmethod
+ def for_runs_and_params(
+ cls,
+ runs: typing.Iterable[typing.Union[float, AvgStdevStats]],
+ max_value: float,
+ unit: float = 1.0,
+ prev_avg: typing.Optional[float] = None,
+ ):
+ """Return new stats instance describing the sequence of runs.
+
+ If you want to append data to existing stats object,
+ you can simply use the stats object as the first run.
+
+ Instead of a verb, "for" is used to start this method name,
+ to signify the result contains less information than the input data.
+
+ The two optional values can come from outside of the runs provided.
+
+ The max_value cannot be None for non-zero size data.
+ The implementation does not check if no datapoint exceeds max_value.
+
+ TODO: Document the behavior for zero size result.
+
+ :param runs: Sequence of data to describe by the new metadata.
+ :param max_value: Maximal expected value.
+ :param unit: Typical resolution of the values.
+ :param prev_avg: Population average of the previous group, if any.
+ :type runs: Iterable[Union[float, AvgStdevStats]]
+ :type max_value: Union[float, NoneType]
+ :type unit: float
+ :type prev_avg: Union[float, NoneType]
+ :returns: The new stats instance.
+ :rtype: cls
+ """
+ asd = AvgStdevStats.for_runs(runs)
+ ret_obj = cls(
+ size=asd.size,
+ avg=asd.avg,
+ stdev=asd.stdev,
+ max_value=max_value,
+ unit=unit,
+ prev_avg=prev_avg,
+ )
+ return ret_obj
diff --git a/resources/libraries/python/jumpavg/classify.py b/resources/libraries/python/jumpavg/classify.py
index 5f5ce6160c..cc3cdcceed 100644
--- a/resources/libraries/python/jumpavg/classify.py
+++ b/resources/libraries/python/jumpavg/classify.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -13,32 +13,54 @@
"""Module holding the classify function
-Classification os one of primary purposes of this package.
+Classification is one of primary purposes of this package.
Minimal message length principle is used
for grouping results into the list of groups,
assuming each group is a population of different Gaussian distribution.
"""
-from .AvgStdevStats import AvgStdevStats
-from .BitCountingGroupList import BitCountingGroupList
+from typing import Iterable, Optional, Union
+from .avg_stdev_stats import AvgStdevStats
+from .bit_counting_group_list import BitCountingGroupList
-def classify(values):
+
+def classify(
+ values: Iterable[Union[float, Iterable[float]]],
+ unit: Optional[float] = None,
+ sbps: Optional[float] = None,
+) -> BitCountingGroupList:
"""Return the values in groups of optimal bit count.
Here, a value is either a float, or an iterable of floats.
Such iterables represent an undivisible sequence of floats.
+ Int is accepted anywhere instead of float.
Internally, such sequence is replaced by AvgStdevStats
after maximal value is found.
+ If the values are smaller than expected (below one unit),
+ the underlying assumption break down and the classification is wrong.
+ Use the "unit" parameter to hint at what the input resolution is.
+
+ If the correct value of unit is not known beforehand,
+ the argument "sbps" (Significant Bits Per Sample) can be used
+ to set unit such that maximal sample value is this many ones in binary.
+ If neither "unit" nor "sbps" are given, "sbps" of 12 is used by default.
+
:param values: Sequence of runs to classify.
+ :param unit: Typical resolution of the values.
+ Zero and None means no unit given.
+ :param sbps: Significant Bits Per Sample. None on zero means 12.
+ If units is not set, this is used to compute unit from max sample value.
:type values: Iterable[Union[float, Iterable[float]]]
+ :type unit: Optional[float]
+ :type sbps: Optional[float]
:returns: Classified group list.
:rtype: BitCountingGroupList
"""
- processed_values = list()
+ processed_values = []
max_value = 0.0
for value in values:
if isinstance(value, (float, int)):
@@ -50,27 +72,27 @@ def classify(values):
if subvalue > max_value:
max_value = subvalue
processed_values.append(AvgStdevStats.for_runs(value))
- open_at = list()
- closed_before = [BitCountingGroupList(max_value=max_value)]
- for index, value in enumerate(processed_values):
- newly_open = closed_before[index].copy()
- newly_open.append_group_of_runs([value])
- open_at.append(newly_open)
- record_group_list = newly_open
- for previous_index, old_open in enumerate(open_at[:index]):
- new_open = old_open.copy().append_run_to_to_last_group(value)
- open_at[previous_index] = new_open
- if new_open.bits < record_group_list.bits:
- record_group_list = new_open
- closed_before.append(record_group_list)
- partition = closed_before[-1]
- previous_average = partition[0].stats.avg
- for group in partition:
- if group.stats.avg == previous_average:
- group.comment = u"normal"
- elif group.stats.avg < previous_average:
- group.comment = u"regression"
+ if not unit:
+ if not sbps:
+ sbps = 12.0
+ max_in_units = pow(2.0, sbps + 1.0) - 1.0
+ unit = max_value / max_in_units
+ # Glist means group list (BitCountingGroupList).
+ open_glists = []
+ record_glist = BitCountingGroupList(max_value=max_value, unit=unit)
+ for value in processed_values:
+ new_open_glist = record_glist.copy_fast().append_group_of_runs([value])
+ record_glist = new_open_glist
+ for old_open_glist in open_glists:
+ old_open_glist.append_run_to_to_last_group(value)
+ if old_open_glist.bits < record_glist.bits:
+ record_glist = old_open_glist
+ open_glists.append(new_open_glist)
+ previous_average = record_glist[0].stats.avg
+ for group in record_glist:
+ if group.stats.avg < previous_average:
+ group.comment = "regression"
elif group.stats.avg > previous_average:
- group.comment = u"progression"
+ group.comment = "progression"
previous_average = group.stats.avg
- return partition
+ return record_glist
diff --git a/resources/libraries/python/model/ExportJson.py b/resources/libraries/python/model/ExportJson.py
new file mode 100644
index 0000000000..3f923d6d0e
--- /dev/null
+++ b/resources/libraries/python/model/ExportJson.py
@@ -0,0 +1,395 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Module tracking json in-memory data and saving it to files.
+
+Each test case, suite setup (hierarchical) and teardown has its own file pair.
+
+Validation is performed for output files with available JSON schema.
+Validation is performed in data deserialized from disk,
+as serialization might have introduced subtle errors.
+"""
+
+import datetime
+import os.path
+
+from binascii import b2a_base64
+from dateutil.parser import parse
+from robot.api import logger
+from robot.libraries.BuiltIn import BuiltIn
+from zlib import compress
+
+from resources.libraries.python.Constants import Constants
+from resources.libraries.python.jumpavg import AvgStdevStats
+from resources.libraries.python.model.ExportResult import (
+ export_dut_type_and_version, export_tg_type_and_version
+)
+from resources.libraries.python.model.MemDump import write_output
+from resources.libraries.python.model.validate import (
+ get_validators, validate
+)
+
+
+class ExportJson():
+ """Class handling the json data setting and export."""
+
+ ROBOT_LIBRARY_SCOPE = "GLOBAL"
+
+ def __init__(self):
+ """Declare required fields, cache output dir.
+
+ Also memorize schema validator instances.
+ """
+ self.output_dir = BuiltIn().get_variable_value("\\${OUTPUT_DIR}", ".")
+ self.file_path = None
+ self.data = None
+ self.validators = get_validators()
+
+ def _detect_test_type(self):
+ """Return test_type, as inferred from robot test tags.
+
+ :returns: The inferred test type value.
+ :rtype: str
+ :raises RuntimeError: If the test tags does not contain expected values.
+ """
+ tags = self.data["tags"]
+ # First 5 options are specific for VPP tests.
+ if "DEVICETEST" in tags:
+ test_type = "device"
+ elif "LDP_NGINX" in tags:
+ test_type = "hoststack"
+ elif "HOSTSTACK" in tags:
+ test_type = "hoststack"
+ elif "GSO_TRUE" in tags or "GSO_FALSE" in tags:
+ test_type = "mrr"
+ elif "RECONF" in tags:
+ test_type = "reconf"
+ # The remaining 3 options could also apply to DPDK and TRex tests.
+ elif "SOAK" in tags:
+ test_type = "soak"
+ elif "NDRPDR" in tags:
+ test_type = "ndrpdr"
+ elif "MRR" in tags:
+ test_type = "mrr"
+ else:
+ raise RuntimeError(f"Unable to infer test type from tags: {tags}")
+ return test_type
+
+ def export_pending_data(self):
+ """Write the accumulated data to disk.
+
+ Create missing directories.
+ Reset both file path and data to avoid writing multiple times.
+
+ Functions which finalize content for given file are calling this,
+ so make sure each test and non-empty suite setup or teardown
+ is calling this as their last keyword.
+
+ If no file path is set, do not write anything,
+ as that is the failsafe behavior when caller from unexpected place.
+ Aso do not write anything when EXPORT_JSON constant is false.
+
+ Regardless of whether data was written, it is cleared.
+ """
+ if not Constants.EXPORT_JSON or not self.file_path:
+ self.data = None
+ self.file_path = None
+ return
+ new_file_path = write_output(self.file_path, self.data)
+ # Data is going to be cleared (as a sign that export succeeded),
+ # so this is the last chance to detect if it was for a test case.
+ is_testcase = "result" in self.data
+ self.data = None
+ # Validation for output goes here when ready.
+ self.file_path = None
+ if is_testcase:
+ validate(new_file_path, self.validators["tc_info"])
+
+ def warn_on_bad_export(self):
+ """If bad state is detected, log a warning and clean up state."""
+ if self.file_path is not None or self.data is not None:
+ logger.warn(f"Previous export not clean, path {self.file_path}")
+ self.data = None
+ self.file_path = None
+
+ def start_suite_setup_export(self):
+ """Set new file path, initialize data for the suite setup.
+
+ This has to be called explicitly at start of suite setup,
+ otherwise Robot likes to postpone initialization
+ until first call by a data-adding keyword.
+
+ File path is set based on suite.
+ """
+ self.warn_on_bad_export()
+ start_time = datetime.datetime.utcnow().strftime(
+ "%Y-%m-%dT%H:%M:%S.%fZ"
+ )
+ suite_name = BuiltIn().get_variable_value("\\${SUITE_NAME}")
+ suite_id = suite_name.lower().replace(" ", "_")
+ suite_path_part = os.path.join(*suite_id.split("."))
+ output_dir = self.output_dir
+ self.file_path = os.path.join(
+ output_dir, suite_path_part, "setup.info.json"
+ )
+ self.data = dict()
+ self.data["version"] = Constants.MODEL_VERSION
+ self.data["start_time"] = start_time
+ self.data["suite_name"] = suite_name
+ self.data["suite_documentation"] = BuiltIn().get_variable_value(
+ "\\${SUITE_DOCUMENTATION}"
+ )
+ # "end_time" and "duration" are added on flush.
+ self.data["hosts"] = set()
+ self.data["telemetry"] = list()
+
+ def start_test_export(self):
+ """Set new file path, initialize data to minimal tree for the test case.
+
+ It is assumed Robot variables DUT_TYPE and DUT_VERSION
+ are already set (in suite setup) to correct values.
+
+ This function has to be called explicitly at the start of test setup,
+ otherwise Robot likes to postpone initialization
+ until first call by a data-adding keyword.
+
+ File path is set based on suite and test.
+ """
+ self.warn_on_bad_export()
+ start_time = datetime.datetime.utcnow().strftime(
+ "%Y-%m-%dT%H:%M:%S.%fZ"
+ )
+ suite_name = BuiltIn().get_variable_value("\\${SUITE_NAME}")
+ suite_id = suite_name.lower().replace(" ", "_")
+ suite_path_part = os.path.join(*suite_id.split("."))
+ test_name = BuiltIn().get_variable_value("\\${TEST_NAME}")
+ self.file_path = os.path.join(
+ self.output_dir, suite_path_part,
+ test_name.lower().replace(" ", "_") + ".info.json"
+ )
+ self.data = dict()
+ self.data["version"] = Constants.MODEL_VERSION
+ self.data["start_time"] = start_time
+ self.data["suite_name"] = suite_name
+ self.data["test_name"] = test_name
+ test_doc = BuiltIn().get_variable_value("\\${TEST_DOCUMENTATION}", "")
+ self.data["test_documentation"] = test_doc
+ # "test_type" is added on flush.
+ # "tags" is detected and added on flush.
+ # "end_time" and "duration" is added on flush.
+ # Robot status and message are added on flush.
+ self.data["result"] = dict(type="unknown")
+ self.data["hosts"] = BuiltIn().get_variable_value("\\${hosts}")
+ self.data["telemetry"] = list()
+ export_dut_type_and_version()
+ export_tg_type_and_version()
+
+ def start_suite_teardown_export(self):
+ """Set new file path, initialize data for the suite teardown.
+
+ This has to be called explicitly at start of suite teardown,
+ otherwise Robot likes to postpone initialization
+ until first call by a data-adding keyword.
+
+ File path is set based on suite.
+ """
+ self.warn_on_bad_export()
+ start_time = datetime.datetime.utcnow().strftime(
+ "%Y-%m-%dT%H:%M:%S.%fZ"
+ )
+ suite_name = BuiltIn().get_variable_value("\\${SUITE_NAME}")
+ suite_id = suite_name.lower().replace(" ", "_")
+ suite_path_part = os.path.join(*suite_id.split("."))
+ self.file_path = os.path.join(
+ self.output_dir, suite_path_part, "teardown.info.json"
+ )
+ self.data = dict()
+ self.data["version"] = Constants.MODEL_VERSION
+ self.data["start_time"] = start_time
+ self.data["suite_name"] = suite_name
+ # "end_time" and "duration" is added on flush.
+ self.data["hosts"] = BuiltIn().get_variable_value("\\${hosts}")
+ self.data["telemetry"] = list()
+
+ def finalize_suite_setup_export(self):
+ """Add the missing fields to data. Do not write yet.
+
+ Should be run at the end of suite setup.
+ The write is done at next start (or at the end of global teardown).
+ """
+ end_time = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%fZ")
+ self.data["hosts"] = BuiltIn().get_variable_value("\\${hosts}")
+ self.data["end_time"] = end_time
+ self.export_pending_data()
+
+ def finalize_test_export(self):
+ """Add the missing fields to data. Do not write yet.
+
+ Should be at the end of test teardown, as the implementation
+ reads various Robot variables, some of them only available at teardown.
+
+ The write is done at next start (or at the end of global teardown).
+ """
+ end_time = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%fZ")
+ message = BuiltIn().get_variable_value("\\${TEST_MESSAGE}")
+ test_tags = BuiltIn().get_variable_value("\\${TEST_TAGS}")
+ self.data["end_time"] = end_time
+ start_float = parse(self.data["start_time"]).timestamp()
+ end_float = parse(self.data["end_time"]).timestamp()
+ self.data["duration"] = end_float - start_float
+ self.data["tags"] = list(test_tags)
+ self.data["message"] = message
+ self.process_passed()
+ self.process_test_name()
+ self.process_results()
+ self.export_pending_data()
+
+ def finalize_suite_teardown_export(self):
+ """Add the missing fields to data. Do not write yet.
+
+ Should be run at the end of suite teardown
+ (but before the explicit write in the global suite teardown).
+ The write is done at next start (or explicitly for global teardown).
+ """
+ end_time = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%fZ")
+ self.data["end_time"] = end_time
+ self.export_pending_data()
+
+ def process_test_name(self):
+ """Replace raw test name with short and long test name and set
+ test_type.
+
+ Perform in-place edits on the data dictionary.
+ Remove raw suite_name and test_name, they are not published.
+ Return early if the data is not for test case.
+ Insert test ID and long and short test name into the data.
+ Besides suite_name and test_name, also test tags are read.
+
+ Short test name is basically a suite tag, but with NIC driver prefix,
+ if the NIC driver used is not the default one (drv_vfio_pci for VPP
+ tests).
+
+ Long test name has the following form:
+ {nic_short_name}-{frame_size}-{threads_and_cores}-{suite_part}
+ Lookup in test tags is needed to get the threads value.
+ The threads_and_cores part may be empty, e.g. for TRex tests.
+
+ Test ID has form {suite_name}.{test_name} where the two names come from
+ Robot variables, converted to lower case and spaces replaces by
+ undescores.
+
+ Test type is set in an internal function.
+
+ :raises RuntimeError: If the data does not contain expected values.
+ """
+ suite_part = self.data.pop("suite_name").lower().replace(" ", "_")
+ if "test_name" not in self.data:
+ # There will be no test_id, provide suite_id instead.
+ self.data["suite_id"] = suite_part
+ return
+ test_part = self.data.pop("test_name").lower().replace(" ", "_")
+ self.data["test_id"] = f"{suite_part}.{test_part}"
+ tags = self.data["tags"]
+ # Test name does not contain thread count.
+ subparts = test_part.split("-")
+ if any("tg" in s for s in subparts) and subparts[1] == "":
+ # Physical core count not detected, assume it is a TRex test.
+ if "--" not in test_part:
+ raise RuntimeError(f"Invalid TG test name for: {subparts}")
+ short_name = test_part.split("--", 1)[1]
+ else:
+ short_name = "-".join(subparts[2:])
+ # Add threads to test_part.
+ core_part = subparts[1]
+ tag = list(filter(lambda t: subparts[1].upper() in t, tags))[0]
+ test_part = test_part.replace(f"-{core_part}-", f"-{tag.lower()}-")
+ # For long name we need NIC model, which is only in suite name.
+ last_suite_part = suite_part.split(".")[-1]
+ # Short name happens to be the suffix we want to ignore.
+ prefix_part = last_suite_part.split(short_name)[0]
+ # Also remove the trailing dash.
+ prefix_part = prefix_part[:-1]
+ # Throw away possible link prefix such as "1n1l-".
+ nic_code = prefix_part.split("-", 1)[-1]
+ nic_short = Constants.NIC_CODE_TO_SHORT_NAME[nic_code]
+ long_name = f"{nic_short}-{test_part}"
+ # Set test type.
+ test_type = self._detect_test_type()
+ self.data["test_type"] = test_type
+ # Remove trailing test type from names (if present).
+ short_name = short_name.split(f"-{test_type}")[0]
+ long_name = long_name.split(f"-{test_type}")[0]
+ # Store names.
+ self.data["test_name_short"] = short_name
+ self.data["test_name_long"] = long_name
+
+ def process_passed(self):
+ """Process the test status information as boolean.
+
+ Boolean is used to make post processing more efficient.
+ In case the test status is PASS, we will truncate the test message.
+ """
+ status = BuiltIn().get_variable_value("\\${TEST_STATUS}")
+ if status is not None:
+ self.data["passed"] = (status == "PASS")
+ if self.data["passed"]:
+ # Also truncate success test messages.
+ self.data["message"] = ""
+
+ def process_results(self):
+ """Process measured results.
+
+ Results are used to avoid future post processing, making it more
+ efficient to consume.
+ """
+ if self.data["telemetry"]:
+ telemetry_encode = "\n".join(self.data["telemetry"]).encode()
+ telemetry_compress = compress(telemetry_encode, level=9)
+ telemetry_base64 = b2a_base64(telemetry_compress, newline=False)
+ self.data["telemetry"] = [telemetry_base64.decode()]
+ if "result" not in self.data:
+ return
+ result_node = self.data["result"]
+ result_type = result_node["type"]
+ if result_type == "unknown":
+ # Device or something else not supported.
+ return
+
+ # Compute avg and stdev for mrr (rate and bandwidth).
+ if result_type == "mrr":
+ for node_name in ("rate", "bandwidth"):
+ node = result_node["receive_rate"].get(node_name, None)
+ if node is not None:
+ stats = AvgStdevStats.for_runs(node["values"])
+ node["avg"] = stats.avg
+ node["stdev"] = stats.stdev
+ return
+
+ # Multiple processing steps for ndrpdr.
+ if result_type != "ndrpdr":
+ return
+ # Filter out invalid latencies.
+ for which_key in ("latency_forward", "latency_reverse"):
+ if which_key not in result_node:
+ # Probably just an unidir test.
+ continue
+ for load in ("pdr_0", "pdr_10", "pdr_50", "pdr_90"):
+ if result_node[which_key][load]["max"] <= 0:
+ # One invalid number is enough to remove all loads.
+ break
+ else:
+ # No break means all numbers are ok, nothing to do here.
+ continue
+ # Break happened, something is invalid, remove all loads.
+ result_node.pop(which_key)
+ return
diff --git a/resources/libraries/python/model/ExportResult.py b/resources/libraries/python/model/ExportResult.py
new file mode 100644
index 0000000000..f155848913
--- /dev/null
+++ b/resources/libraries/python/model/ExportResult.py
@@ -0,0 +1,316 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module with keywords that publish parts of result structure."""
+
+from robot.libraries.BuiltIn import BuiltIn
+
+from resources.libraries.python.model.util import descend, get_export_data
+
+
+def export_dut_type_and_version(dut_type="unknown", dut_version="unknown"):
+ """Export the arguments as dut type and version.
+
+ Robot tends to convert "none" into None, hence the unusual default values.
+
+ If either argument is missing, the value from robot variable is used.
+ If argument is present, the value is also stored to robot suite variable.
+
+ :param dut_type: DUT type, e.g. VPP or DPDK.
+ :param dut_version: DUT version as determined by the caller.
+ :type dut_type: Optional[str]
+ :type dut_version: Optiona[str]
+ :raises RuntimeError: If value is neither in argument not robot variable.
+ """
+ if dut_type == "unknown":
+ dut_type = BuiltIn().get_variable_value("\\${DUT_TYPE}", "unknown")
+ if dut_type == "unknown":
+ raise RuntimeError("Dut type not provided.")
+ else:
+ # We want to set a variable in higher level suite setup
+ # to be available to test setup several levels lower.
+ BuiltIn().set_suite_variable(
+ "\\${DUT_TYPE}", dut_type, "children=True"
+ )
+ if dut_version == "unknown":
+ dut_version = BuiltIn().get_variable_value(
+ "\\${DUT_VERSION}", "unknown"
+ )
+ if dut_type == "unknown":
+ raise RuntimeError("Dut version not provided.")
+ else:
+ BuiltIn().set_suite_variable(
+ "\\${DUT_VERSION}", dut_version, "children=True"
+ )
+ data = get_export_data()
+ data["dut_type"] = dut_type.lower()
+ data["dut_version"] = dut_version
+
+
+def export_tg_type_and_version(tg_type="unknown", tg_version="unknown"):
+ """Export the arguments as tg type and version.
+
+ Robot tends to convert "none" into None, hence the unusual default values.
+
+ If either argument is missing, the value from robot variable is used.
+ If argument is present, the value is also stored to robot suite variable.
+
+ :param tg_type: TG type, e.g. TREX.
+ :param tg_version: TG version as determined by the caller.
+ :type tg_type: Optional[str]
+ :type tg_version: Optiona[str]
+ :raises RuntimeError: If value is neither in argument not robot variable.
+ """
+ if tg_type == "unknown":
+ tg_type = BuiltIn().get_variable_value("\\${TG_TYPE}", "unknown")
+ if tg_type == "unknown":
+ raise RuntimeError("TG type not provided!")
+ else:
+ # We want to set a variable in higher level suite setup
+ # to be available to test setup several levels lower.
+ BuiltIn().set_suite_variable(
+ "\\${TG_TYPE}", tg_type, "children=True"
+ )
+ if tg_version == "unknown":
+ tg_version = BuiltIn().get_variable_value(
+ "\\${TG_VERSION}", "unknown"
+ )
+ if tg_type == "unknown":
+ raise RuntimeError("TG version not provided!")
+ else:
+ BuiltIn().set_suite_variable(
+ "\\${TG_VERSION}", tg_version, "children=True"
+ )
+ data = get_export_data()
+ data["tg_type"] = tg_type.lower()
+ data["tg_version"] = tg_version
+
+
+def append_mrr_value(mrr_value, mrr_unit, bandwidth_value=None,
+ bandwidth_unit="bps"):
+ """Store mrr value to proper place so it is dumped into json.
+
+ The value is appended only when unit is not empty.
+
+ :param mrr_value: Forwarding rate from MRR trial.
+ :param mrr_unit: Unit of measurement for the rate.
+ :param bandwidth_value: The same value recomputed into L1 bits per second.
+ :type mrr_value: float
+ :type mrr_unit: str
+ :type bandwidth_value: Optional[float]
+ :type bandwidth_unit: Optional[str]
+ """
+ if not mrr_unit:
+ return
+ data = get_export_data()
+ data["result"]["type"] = "mrr"
+
+ for node_val, node_unit, node_name in ((mrr_value, mrr_unit, "rate"),
+ (bandwidth_value, bandwidth_unit, "bandwidth")):
+ if node_val is not None:
+ node = descend(descend(data["result"], "receive_rate"), node_name)
+ node["unit"] = str(node_unit)
+ values_list = descend(node, "values", list)
+ values_list.append(float(node_val))
+
+
+def export_search_bound(text, value, unit, bandwidth=None):
+ """Store bound value and unit.
+
+ This function works for both NDRPDR and SOAK, decided by text.
+
+ If a node does not exist, it is created.
+ If a previous value exists, it is overwritten silently.
+ Result type is set (overwritten) to ndrpdr (or soak).
+
+ Text is used to determine whether it is ndr or pdr, upper or lower bound,
+ as the Robot caller has the information only there.
+
+ :param text: Info from Robot caller to determime bound type.
+ :param value: The bound value in packets (or connections) per second.
+ :param unit: Rate unit the bound is measured (or estimated) in.
+ :param bandwidth: The same value recomputed into L1 bits per second.
+ :type text: str
+ :type value: float
+ :type unit: str
+ :type bandwidth: Optional[float]
+ """
+ value = float(value)
+ text = str(text).lower()
+ result_type = "soak" if "plrsearch" in text else "ndrpdr"
+ upper_or_lower = "upper" if "upper" in text else "lower"
+ ndr_or_pdr = "ndr" if "ndr" in text else "pdr"
+
+ result_node = get_export_data()["result"]
+ result_node["type"] = result_type
+ rate_item = dict(rate=dict(value=value, unit=unit))
+ if bandwidth:
+ rate_item["bandwidth"] = dict(value=float(bandwidth), unit="bps")
+ if result_type == "soak":
+ descend(result_node, "critical_rate")[upper_or_lower] = rate_item
+ return
+ descend(result_node, ndr_or_pdr)[upper_or_lower] = rate_item
+
+
+def _add_latency(result_node, percent, whichward, latency_string):
+ """Descend to a corresponding node and add values from latency string.
+
+ This is an internal block, moved out from export_ndrpdr_latency,
+ as it can be called up to 4 times.
+
+ :param result_node: UTI tree node to descend from.
+ :param percent: Percent value to use in node key (90, 50, 10, 0).
+ :param whichward: "forward" or "reverse".
+ :param latency_item: Unidir output from TRex utility, min/avg/max/hdrh.
+ :type result_node: dict
+ :type percent: int
+ :type whichward: str
+ :latency_string: str
+ """
+ l_min, l_avg, l_max, l_hdrh = latency_string.split("/", 3)
+ whichward_node = descend(result_node, f"latency_{whichward}")
+ percent_node = descend(whichward_node, f"pdr_{percent}")
+ percent_node["min"] = int(l_min)
+ percent_node["avg"] = int(l_avg)
+ percent_node["max"] = int(l_max)
+ percent_node["hdrh"] = l_hdrh
+ percent_node["unit"] = "us"
+
+
+def export_ndrpdr_latency(text, latency):
+ """Store NDRPDR hdrh latency data.
+
+ If "latency" node does not exist, it is created.
+ If a previous value exists, it is overwritten silently.
+
+ Text is used to determine what percentage of PDR is the load,
+ as the Robot caller has the information only there.
+
+ Reverse data may be missing, we assume the test was unidirectional.
+
+ :param text: Info from Robot caller to determime load.
+ :param latency: Output from TRex utility, min/avg/max/hdrh.
+ :type text: str
+ :type latency: 1-tuple or 2-tuple of str
+ """
+ result_node = get_export_data()["result"]
+ percent = 0
+ if "90" in text:
+ percent = 90
+ elif "50" in text:
+ percent = 50
+ elif "10" in text:
+ percent = 10
+ _add_latency(result_node, percent, "forward", latency[0])
+ # Else TRex does not support latency measurement for this traffic profile.
+ if len(latency) < 2:
+ return
+ _add_latency(result_node, percent, "reverse", latency[1])
+
+
+def export_reconf_result(packet_rate, packet_loss, bandwidth):
+ """Export the RECONF type results.
+
+ Result type is set to reconf.
+
+ :param packet_rate: Aggregate offered load in packets per second.
+ :param packet_loss: How many of the packets were dropped or unsent.
+ :param bandwidth: The offered load recomputed into L1 bits per second.
+ :type packet_rate: float
+ :type packet_loss: int
+ :type bandwidth: float
+ """
+ result_node = get_export_data()["result"]
+ result_node["type"] = "reconf"
+
+ time_loss = int(packet_loss) / float(packet_rate)
+ result_node["aggregate_rate"] = dict(
+ bandwidth=dict(
+ unit="bps",
+ value=float(bandwidth)
+ ),
+ rate=dict(
+ unit="pps",
+ value=float(packet_rate)
+ )
+ )
+ result_node["loss"] = dict(
+ packet=dict(
+ unit="packets",
+ value=int(packet_loss)
+ ),
+ time=dict(
+ unit="s",
+ value=time_loss
+ )
+ )
+
+
+def export_hoststack_results(
+ bandwidth, rate=None, rate_unit=None, latency=None,
+ failed_requests=None, completed_requests=None, retransmits=None,
+ duration=None
+):
+ """Export the HOSTSTACK type results.
+
+ Result type is set to hoststack.
+
+ :param bandwidth: Measured transfer rate using bps as a unit.
+ :param rate: Resulting rate measured by the test. [Optional]
+ :param rate_unit: CPS or RPS. [Optional]
+ :param latency: Measure latency. [Optional]
+ :param failed_requests: Number of failed requests. [Optional]
+ :param completed_requests: Number of completed requests. [Optional]
+ :param retransmits: Retransmitted TCP packets. [Optional]
+ :param duration: Measurment duration. [Optional]
+ :type bandwidth: float
+ :type rate: float
+ :type rate_unit: str
+ :type latency: float
+ :type failed_requests: int
+ :type completed_requests: int
+ :type retransmits: int
+ :type duration: float
+ """
+ result_node = get_export_data()["result"]
+ result_node["type"] = "hoststack"
+
+ result_node["bandwidth"] = dict(unit="bps", value=bandwidth)
+ if rate is not None:
+ result_node["rate"] = \
+ dict(unit=rate_unit, value=rate)
+ if latency is not None:
+ result_node["latency"] = \
+ dict(unit="ms", value=latency)
+ if failed_requests is not None:
+ result_node["failed_requests"] = \
+ dict(unit="requests", value=failed_requests)
+ if completed_requests is not None:
+ result_node["completed_requests"] = \
+ dict(unit="requests", value=completed_requests)
+ if retransmits is not None:
+ result_node["retransmits"] = \
+ dict(unit="packets", value=retransmits)
+ if duration is not None:
+ result_node["duration"] = \
+ dict(unit="s", value=duration)
+
+
+def append_telemetry(telemetry_item):
+ """Append telemetry entry to proper place so it is dumped into json.
+
+ :param telemetry_item: Telemetry entry.
+ :type telemetry_item: str
+ """
+ data = get_export_data()
+ data["telemetry"].append(telemetry_item)
diff --git a/resources/libraries/python/model/MemDump.py b/resources/libraries/python/model/MemDump.py
new file mode 100644
index 0000000000..b391569286
--- /dev/null
+++ b/resources/libraries/python/model/MemDump.py
@@ -0,0 +1,194 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module for converting in-memory data into JSON output.
+
+CSIT and VPP PAPI are using custom data types that are not directly serializable
+into JSON.
+
+Thus, before writing the output onto disk, the data is recursively converted to
+equivalent serializable types, in extreme cases replaced by string
+representation.
+
+Validation is outside the scope of this module, as it should use the JSON data
+read from disk.
+"""
+
+import json
+import os
+
+from collections.abc import Iterable, Mapping, Set
+from enum import IntFlag
+from dateutil.parser import parse
+
+
+def _pre_serialize_recursive(data):
+ """Recursively sort and convert to a more serializable form.
+
+ VPP PAPI code can give data with its own MACAddres type,
+ or various other enum and flag types.
+ The default json.JSONEncoder method raises TypeError on that.
+ First point of this function is to apply str() or repr()
+ to leaf values that need it.
+
+ Also, PAPI responses are namedtuples, which confuses
+ the json.JSONEncoder method (so it does not recurse).
+ Dictization (see PapiExecutor) helps somewhat, but it turns namedtuple
+ into a UserDict, which also confuses json.JSONEncoder.
+ Therefore, we recursively convert any Mapping into an ordinary dict.
+
+ We also convert iterables to list (sorted if the iterable was a set),
+ and prevent numbers from getting converted to strings.
+
+ As we are doing such low level operations,
+ we also convert mapping keys to strings
+ and sort the mapping items by keys alphabetically,
+ except "data" field moved to the end.
+
+ :param data: Object to make serializable, dictized when applicable.
+ :type data: object
+ :returns: Serializable equivalent of the argument.
+ :rtype: object
+ :raises ValueError: If the argument does not support string conversion.
+ """
+ # Recursion ends at scalar values, first handle irregular ones.
+ if isinstance(data, IntFlag):
+ return repr(data)
+ if isinstance(data, bytes):
+ return data.hex()
+ # The regular ones are good to go.
+ if isinstance(data, (str, int, float, bool)):
+ return data
+ # Recurse over, convert and sort mappings.
+ if isinstance(data, Mapping):
+ # Convert and sort alphabetically.
+ ret = {
+ str(key): _pre_serialize_recursive(data[key])
+ for key in sorted(data.keys())
+ }
+ # If exists, move "data" field to the end.
+ if u"data" in ret:
+ data_value = ret.pop(u"data")
+ ret[u"data"] = data_value
+ # If exists, move "type" field at the start.
+ if u"type" in ret:
+ type_value = ret.pop(u"type")
+ ret_old = ret
+ ret = dict(type=type_value)
+ ret.update(ret_old)
+ return ret
+ # Recurse over and convert iterables.
+ if isinstance(data, Iterable):
+ list_data = [_pre_serialize_recursive(item) for item in data]
+ # Additionally, sets are exported as sorted.
+ if isinstance(data, Set):
+ list_data = sorted(list_data)
+ return list_data
+ # Unknown structure, attempt str().
+ return str(data)
+
+
+def _pre_serialize_root(data):
+ """Recursively convert to a more serializable form, tweak order.
+
+ See _pre_serialize_recursive for most of changes this does.
+
+ The logic here (outside the recursive function) only affects
+ field ordering in the root mapping,
+ to make it more human friendly.
+ We are moving "version" to the top,
+ followed by start time and end time.
+ and various long fields to the bottom.
+
+ Some edits are done in-place, do not trust the argument value after calling.
+
+ :param data: Root data to make serializable, dictized when applicable.
+ :type data: dict
+ :returns: Order-tweaked version of the argument.
+ :rtype: dict
+ :raises KeyError: If the data does not contain required fields.
+ :raises TypeError: If the argument is not a dict.
+ :raises ValueError: If the argument does not support string conversion.
+ """
+ if not isinstance(data, dict):
+ raise RuntimeError(f"Root data object needs to be a dict: {data!r}")
+ data = _pre_serialize_recursive(data)
+ new_data = dict(version=data.pop(u"version"))
+ new_data[u"start_time"] = data.pop(u"start_time")
+ new_data[u"end_time"] = data.pop(u"end_time")
+ new_data.update(data)
+ return new_data
+
+
+def _merge_into_suite_info_file(teardown_path):
+ """Move setup and teardown data into a singe file, remove old files.
+
+ The caller has to confirm the argument is correct, e.g. ending in
+ "/teardown.info.json".
+
+ :param teardown_path: Local filesystem path to teardown file.
+ :type teardown_path: str
+ :returns: Local filesystem path to newly created suite file.
+ :rtype: str
+ """
+ # Manual right replace: https://stackoverflow.com/a/9943875
+ setup_path = u"setup".join(teardown_path.rsplit(u"teardown", 1))
+ with open(teardown_path, u"rt", encoding="utf-8") as file_in:
+ teardown_data = json.load(file_in)
+ # Transforming setup data into suite data.
+ with open(setup_path, u"rt", encoding="utf-8") as file_in:
+ suite_data = json.load(file_in)
+
+ end_time = teardown_data[u"end_time"]
+ suite_data[u"end_time"] = end_time
+ start_float = parse(suite_data[u"start_time"]).timestamp()
+ end_float = parse(suite_data[u"end_time"]).timestamp()
+ suite_data[u"duration"] = end_float - start_float
+ setup_telemetry = suite_data.pop(u"telemetry")
+ suite_data[u"setup_telemetry"] = setup_telemetry
+ suite_data[u"teardown_telemetry"] = teardown_data[u"telemetry"]
+
+ suite_path = u"suite".join(teardown_path.rsplit(u"teardown", 1))
+ with open(suite_path, u"wt", encoding="utf-8") as file_out:
+ json.dump(suite_data, file_out, indent=1)
+ # We moved everything useful from temporary setup/teardown info files.
+ os.remove(setup_path)
+ os.remove(teardown_path)
+
+ return suite_path
+
+
+def write_output(file_path, data):
+ """Prepare data for serialization and dump into a file.
+
+ Ancestor directories are created if needed.
+
+ :param file_path: Local filesystem path, including the file name.
+ :param data: Root data to make serializable, dictized when applicable.
+ :type file_path: str
+ :type data: dict
+ """
+ data = _pre_serialize_root(data)
+
+ # Lets move Telemetry to the end.
+ telemetry = data.pop(u"telemetry")
+ data[u"telemetry"] = telemetry
+
+ os.makedirs(os.path.dirname(file_path), exist_ok=True)
+ with open(file_path, u"wt", encoding="utf-8") as file_out:
+ json.dump(data, file_out, indent=1)
+
+ if file_path.endswith(u"/teardown.info.json"):
+ file_path = _merge_into_suite_info_file(file_path)
+
+ return file_path
diff --git a/resources/libraries/python/model/__init__.py b/resources/libraries/python/model/__init__.py
new file mode 100644
index 0000000000..36e32b89c4
--- /dev/null
+++ b/resources/libraries/python/model/__init__.py
@@ -0,0 +1,16 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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.
+
+"""
+__init__ file for directory resources/libraries/python/model
+"""
diff --git a/resources/libraries/python/model/parse.py b/resources/libraries/python/model/parse.py
new file mode 100644
index 0000000000..1e0aebfe18
--- /dev/null
+++ b/resources/libraries/python/model/parse.py
@@ -0,0 +1,112 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Library for parsing results from JSON back to python objects.
+
+This is useful for vpp-csit jobs like per-patch performance verify.
+Such jobs invoke robot multiple times, each time on a different build.
+Each robot invocation may execute several test cases.
+How exactly are the results compared depends on the job type,
+but extracting just the main results from jsons (file trees) is a common task,
+so it is placed into this library.
+
+As such, the code in this file does not directly interact
+with the code in other files in this directory
+(result comparison is done outside robot invocation),
+but all files share common assumptions about json structure.
+
+The function here expects a particular tree created on a filesystem by
+a bootstrap script, including test results
+exported as json files according to a current model schema.
+This script extracts the results (according to result type)
+and joins them mapping from test IDs to lists of floats.
+Also, the result is cached into a results.json file,
+so each tree is parsed only once.
+
+The cached result does not depend on tree placement,
+so the bootstrap script may move and copy trees around
+before or after parsing.
+"""
+
+import json
+import os
+import pathlib
+
+from typing import Dict, List
+
+
+def parse(dirpath: str, fake_value: float = 1.0) -> Dict[str, List[float]]:
+ """Look for test jsons, extract scalar results.
+
+ Files other than .json are skipped, jsons without test_id are skipped.
+ If the test failed, four fake values are used as a fake result.
+
+ Units are ignored, as both parent and current are tested
+ with the same CSIT code so the unit should be identical.
+
+ The test results are sorted by test_id,
+ as the filesystem order is not deterministic enough.
+
+ The result is also cached as results.json file.
+
+ :param dirpath: Path to the directory tree to examine.
+ :param fail_value: Fake value to use for test cases that failed.
+ :type dirpath: str
+ :type fail_falue: float
+ :returns: Mapping from test IDs to list of measured values.
+ :rtype: Dict[str, List[float]]
+ :raises RuntimeError: On duplicate test ID or unknown test type.
+ """
+ if not pathlib.Path(dirpath).is_dir():
+ # This happens when per-patch runs out of iterations.
+ return {}
+ resultpath = pathlib.Path(f"{dirpath}/results.json")
+ if resultpath.is_file():
+ with open(resultpath, "rt", encoding="utf8") as file_in:
+ return json.load(file_in)
+ results = {}
+ for root, _, files in os.walk(dirpath):
+ for filename in files:
+ if not filename.endswith(".json"):
+ continue
+ filepath = os.path.join(root, filename)
+ with open(filepath, "rt", encoding="utf8") as file_in:
+ data = json.load(file_in)
+ if "test_id" not in data:
+ continue
+ name = data["test_id"]
+ if name in results:
+ raise RuntimeError(f"Duplicate: {name}")
+ if not data["passed"]:
+ results[name] = [fake_value] * 4
+ continue
+ result_object = data["result"]
+ result_type = result_object["type"]
+ if result_type == "mrr":
+ results[name] = result_object["receive_rate"]["rate"]["values"]
+ elif result_type == "ndrpdr":
+ results[name] = [result_object["pdr"]["lower"]["rate"]["value"]]
+ elif result_type == "soak":
+ results[name] = [
+ result_object["critical_rate"]["lower"]["rate"]["value"]
+ ]
+ elif result_type == "reconf":
+ results[name] = [result_object["loss"]["time"]["value"]]
+ elif result_type == "hoststack":
+ results[name] = [result_object["bandwidth"]["value"]]
+ else:
+ raise RuntimeError(f"Unknown result type: {result_type}")
+ results = {test_id: results[test_id] for test_id in sorted(results)}
+ with open(resultpath, "wt", encoding="utf8") as file_out:
+ json.dump(results, file_out, indent=1, separators=(", ", ": "))
+ return results
diff --git a/resources/libraries/python/model/util.py b/resources/libraries/python/model/util.py
new file mode 100644
index 0000000000..db2ef14bbb
--- /dev/null
+++ b/resources/libraries/python/model/util.py
@@ -0,0 +1,69 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module hosting few utility functions useful when dealing with modelled data.
+
+This is for storing varied utility functions, which are too short and diverse
+to be put into more descriptive modules.
+"""
+
+
+from robot.libraries.BuiltIn import BuiltIn
+
+
+def descend(parent_node, key, default_factory=None):
+ """Return a sub-node, create and insert it when it does not exist.
+
+ Without this function:
+ child_node = parent_node.get(key, dict())
+ parent_node[key] = child_node
+
+ With this function:
+ child_node = descend(parent_node, key)
+
+ New code is shorter and avoids the need to type key and parent_node twice.
+
+ :param parent_node: Reference to inner node of a larger structure
+ we want to descend from.
+ :param key: Key of the maybe existing child node.
+ :param default_factory: If the key does not exist, call this
+ to create a new value to be inserted under the key.
+ None means dict. The other popular option is list.
+ :type parent_node: dict
+ :type key: str
+ :type default_factory: Optional[Callable[[], object]]
+ :returns: The reference to (maybe just created) child node.
+ :rtype: object
+ """
+ if key not in parent_node:
+ factory = dict if default_factory is None else default_factory
+ parent_node[key] = factory()
+ return parent_node[key]
+
+
+def get_export_data():
+ """Return data member of ExportJson library instance.
+
+ This assumes the data has been initialized already.
+ Return None if Robot is not running.
+
+ :returns: Current library instance's raw data field.
+ :rtype: Optional[dict]
+ :raises AttributeError: If library is not imported yet.
+ """
+ instance = BuiltIn().get_library_instance(
+ u"resources.libraries.python.model.ExportJson"
+ )
+ if instance is None:
+ return None
+ return instance.data
diff --git a/resources/libraries/python/model/validate.py b/resources/libraries/python/model/validate.py
new file mode 100644
index 0000000000..85c4b993c9
--- /dev/null
+++ b/resources/libraries/python/model/validate.py
@@ -0,0 +1,62 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+"""Module for validating JSON instances against schemas.
+
+Short module currently, as we validate only testcase info outputs.
+Structure will probably change when we start validation mode file types.
+"""
+
+import json
+import jsonschema
+import yaml
+
+
+def get_validators():
+ """Return mapping from file types to validator instances.
+
+ Uses hardcoded file types and paths to schemas on disk.
+
+ :returns: Validators, currently just for tc_info_output.
+ :rtype: Mapping[str, jsonschema.validators.Validator]
+ :raises RuntimeError: If schemas are not readable or not valid.
+ """
+ relative_path = "resources/model_schema/test_case.schema.yaml"
+ # Robot is always started when CWD is CSIT_DIR.
+ with open(relative_path, "rt", encoding="utf-8") as file_in:
+ schema = json.loads(
+ json.dumps(yaml.safe_load(file_in.read()), indent=2)
+ )
+ validator_class = jsonschema.validators.validator_for(schema)
+ validator_class.check_schema(schema)
+ fmt_checker = jsonschema.FormatChecker()
+ validator = validator_class(schema, format_checker=fmt_checker)
+
+ return dict(tc_info=validator)
+
+
+def validate(file_path, validator):
+ """Load data from disk, use validator to validate it.
+
+ :param file_path: Local filesystem path including the file name to load.
+ :param validator: Validator instance to use for validation.
+ :type file_path: str
+ :type validator: jsonschema.validators.Validator
+ :raises ValidationError: If schema validation fails.
+ """
+ with open(file_path, "rt", encoding="utf-8") as file_in:
+ instance = json.load(file_in)
+ error = jsonschema.exceptions.best_match(validator.iter_errors(instance))
+ if error is not None:
+ print(json.dumps(instance, indent=4))
+ raise error
diff --git a/resources/libraries/python/parsers/JsonParser.py b/resources/libraries/python/parsers/JsonParser.py
deleted file mode 100644
index bebe2a2407..0000000000
--- a/resources/libraries/python/parsers/JsonParser.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""Used to parse JSON files or JSON data strings to dictionaries"""
-
-import json
-
-from io import open
-
-
-class JsonParser:
- """Parses JSON data string or files containing JSON data strings"""
- def __init__(self):
- pass
-
- @staticmethod
- def parse_data(json_data):
- """Return list parsed from JSON data string.
-
- Translates JSON data into list of values/dictionaries/lists.
-
- :param json_data: Data in JSON format.
- :type json_data: str
- :returns: JSON data parsed as python list.
- :rtype: list
- """
- parsed_data = json.loads(json_data)
- return parsed_data
-
- @staticmethod
- def parse_file(json_file):
- """Return list parsed from file containing JSON string.
-
- Translates JSON data found in file into list of
- values/dictionaries/lists.
-
- :param json_file: File with JSON type data.
- :type json_file: str
- :returns: JSON data parsed as python list.
- :rtype: list
- """
- input_data = open(json_file, u"rt").read()
- parsed_data = JsonParser.parse_data(input_data)
- return parsed_data
diff --git a/resources/libraries/python/parsers/__init__.py b/resources/libraries/python/parsers/__init__.py
deleted file mode 100644
index 1b58a3cf17..0000000000
--- a/resources/libraries/python/parsers/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright (c) 2016 Cisco and/or its affiliates.
-# 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.
-
-"""
-__init__ file for resources/libraries/python/parsers
-"""
diff --git a/resources/libraries/python/ssh.py b/resources/libraries/python/ssh.py
index 5c397eeb17..437b1ad3e6 100644
--- a/resources/libraries/python/ssh.py
+++ b/resources/libraries/python/ssh.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -17,7 +17,7 @@
import socket
from io import StringIO
-from time import time, sleep
+from time import monotonic, sleep
from paramiko import RSAKey, SSHClient, AutoAddPolicy
from paramiko.ssh_exception import SSHException, NoValidConnectionsError
@@ -82,7 +82,7 @@ class SSH:
raise IOError(f"Cannot connect to {node['host']}")
else:
try:
- start = time()
+ start = monotonic()
pkey = None
if u"priv_key" in node:
pkey = RSAKey.from_private_key(StringIO(node[u"priv_key"]))
@@ -101,7 +101,7 @@ class SSH:
SSH.__existing_connections[node_hash] = self._ssh
logger.debug(
f"New SSH to {self._ssh.get_transport().getpeername()} "
- f"took {time() - start} seconds: {self._ssh}"
+ f"took {monotonic() - start} seconds: {self._ssh}"
)
except SSHException as exc:
raise IOError(f"Cannot connect to {node[u'host']}") from exc
@@ -151,6 +151,7 @@ class SSH:
:param log_stdout_err: If True, stdout and stderr are logged. stdout
and stderr are logged also if the return code is not zero
independently of the value of log_stdout_err.
+ Needed for calls outside Robot (e.g. from reservation script).
:type cmd: str or OptionString
:type timeout: int
:type log_stdout_err: bool
@@ -174,7 +175,7 @@ class SSH:
logger.trace(f"exec_command on {peer} with timeout {timeout}: {cmd}")
- start = time()
+ start = monotonic()
chan.exec_command(cmd)
while not chan.exit_status_ready() and timeout is not None:
if chan.recv_ready():
@@ -187,7 +188,8 @@ class SSH:
stderr += s_err.decode(encoding=u'utf-8', errors=u'ignore') \
if isinstance(s_err, bytes) else s_err
- if time() - start > timeout:
+ duration = monotonic() - start
+ if duration > timeout:
raise SSHTimeout(
f"Timeout exception during execution of command: {cmd}\n"
f"Current contents of stdout buffer: "
@@ -209,8 +211,8 @@ class SSH:
stderr += s_err.decode(encoding=u'utf-8', errors=u'ignore') \
if isinstance(s_err, bytes) else s_err
- end = time()
- logger.trace(f"exec_command on {peer} took {end-start} seconds")
+ duration = monotonic() - start
+ logger.trace(f"exec_command on {peer} took {duration} seconds")
logger.trace(f"return RC {return_code}")
if log_stdout_err or int(return_code):
@@ -230,6 +232,7 @@ class SSH:
:param cmd_input: Input redirected to the command.
:param timeout: Timeout.
:param log_stdout_err: If True, stdout and stderr are logged.
+ Needed for calls outside Robot (e.g. from reservation script).
:type cmd: str
:type cmd_input: str
:type timeout: int
@@ -322,7 +325,7 @@ class SSH:
:param chan: SSH channel with opened terminal.
:param cmd: Command to be executed.
:param prompt: Command prompt, sequence of characters used to
- indicate readiness to accept commands.
+ indicate readiness to accept commands.
:returns: Command output.
.. warning:: Interruptingcow is used here, and it uses
@@ -370,9 +373,9 @@ class SSH:
connect() method has to be called first!
:param local_path: Path to local file that should be uploaded; or
- path where to save remote file.
+ path where to save remote file.
:param remote_path: Remote path where to place uploaded file; or
- path to remote file which should be downloaded.
+ path to remote file which should be downloaded.
:param get: scp operation to perform. Default is put.
:param timeout: Timeout value in seconds.
:param wildcard: If path has wildcard characters. Default is false.
@@ -400,17 +403,20 @@ class SSH:
self._ssh.get_transport(), sanitize=lambda x: x,
socket_timeout=timeout
)
- start = time()
+ start = monotonic()
if not get:
scp.put(local_path, remote_path)
else:
scp.get(remote_path, local_path)
scp.close()
- end = time()
- logger.trace(f"SCP took {end-start} seconds")
+ duration = monotonic() - start
+ logger.trace(f"SCP took {duration} seconds")
-def exec_cmd(node, cmd, timeout=600, sudo=False, disconnect=False):
+def exec_cmd(
+ node, cmd, timeout=600, sudo=False, disconnect=False,
+ log_stdout_err=True
+ ):
"""Convenience function to ssh/exec/return rc, out & err.
Returns (rc, stdout, stderr).
@@ -420,13 +426,18 @@ def exec_cmd(node, cmd, timeout=600, sudo=False, disconnect=False):
:param timeout: Timeout value in seconds. Default: 600.
:param sudo: Sudo privilege execution flag. Default: False.
:param disconnect: Close the opened SSH connection if True.
+ :param log_stdout_err: If True, stdout and stderr are logged. stdout
+ and stderr are logged also if the return code is not zero
+ independently of the value of log_stdout_err.
+ Needed for calls outside Robot (e.g. from reservation script).
:type node: dict
:type cmd: str or OptionString
:type timeout: int
:type sudo: bool
:type disconnect: bool
+ :type log_stdout_err: bool
:returns: RC, Stdout, Stderr.
- :rtype: tuple(int, str, str)
+ :rtype: Tuple[int, str, str]
"""
if node is None:
raise TypeError(u"Node parameter is None")
@@ -445,10 +456,12 @@ def exec_cmd(node, cmd, timeout=600, sudo=False, disconnect=False):
try:
if not sudo:
- ret_code, stdout, stderr = ssh.exec_command(cmd, timeout=timeout)
+ ret_code, stdout, stderr = ssh.exec_command(
+ cmd, timeout=timeout, log_stdout_err=log_stdout_err
+ )
else:
ret_code, stdout, stderr = ssh.exec_command_sudo(
- cmd, timeout=timeout
+ cmd, timeout=timeout, log_stdout_err=log_stdout_err
)
except SSHException as err:
logger.error(repr(err))
@@ -462,7 +475,8 @@ def exec_cmd(node, cmd, timeout=600, sudo=False, disconnect=False):
def exec_cmd_no_error(
node, cmd, timeout=600, sudo=False, message=None, disconnect=False,
- retries=0, include_reason=False):
+ retries=0, include_reason=False, log_stdout_err=True
+ ):
"""Convenience function to ssh/exec/return out & err.
Verifies that return code is zero.
@@ -478,6 +492,10 @@ def exec_cmd_no_error(
:param disconnect: Close the opened SSH connection if True.
:param retries: How many times to retry on failure.
:param include_reason: Whether default info should be appended to message.
+ :param log_stdout_err: If True, stdout and stderr are logged. stdout
+ and stderr are logged also if the return code is not zero
+ independently of the value of log_stdout_err.
+ Needed for calls outside Robot thread (e.g. parallel framework setup).
:type node: dict
:type cmd: str or OptionString
:type timeout: int
@@ -486,13 +504,15 @@ def exec_cmd_no_error(
:type disconnect: bool
:type retries: int
:type include_reason: bool
+ :type log_stdout_err: bool
:returns: Stdout, Stderr.
:rtype: tuple(str, str)
:raises RuntimeError: If bash return code is not 0.
"""
for _ in range(retries + 1):
ret_code, stdout, stderr = exec_cmd(
- node, cmd, timeout=timeout, sudo=sudo, disconnect=disconnect
+ node, cmd, timeout=timeout, sudo=sudo, disconnect=disconnect,
+ log_stdout_err=log_stdout_err
)
if ret_code == 0:
break
diff --git a/resources/libraries/python/topology.py b/resources/libraries/python/topology.py
index c39e5afabb..22ed3666c3 100644
--- a/resources/libraries/python/topology.py
+++ b/resources/libraries/python/topology.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -71,6 +71,8 @@ class SocketType:
PAPI = u"PAPI"
# VPP PAPI Stats (legacy option until stats are migrated to Socket PAPI)
STATS = u"STATS"
+ # VPP Socket CLI
+ CLI = u"CLI"
DICT__nodes = load_topo_from_yaml()
@@ -174,7 +176,8 @@ class Topology:
port_types = (
u"subinterface", u"vlan_subif", u"memif", u"tap", u"vhost",
u"loopback", u"gre_tunnel", u"vxlan_tunnel", u"eth_bond",
- u"eth_avf", u"eth_rdma", u"geneve_tunnel"
+ u"eth_avf", u"eth_rdma", u"geneve_tunnel", u"eth_af_xdp",
+ u"gtpu_tunnel"
)
for node_data in nodes.values():
@@ -376,16 +379,19 @@ class Topology:
return links
@staticmethod
- def _get_interface_by_key_value(node, key, value):
+ def _get_interface_by_key_value(node, key, value, subsequent=False):
"""Return node interface key from topology file
according to key and value.
:param node: The node dictionary.
:param key: Key by which to select the interface.
:param value: Value that should be found using the key.
+ :param subsequent: Use second interface of the link. Useful for
+ back-to-back links. Default: False
:type node: dict
:type key: string
:type value: string
+ :type subsequent: bool
:returns: Interface key from topology file
:rtype: string
"""
@@ -395,8 +401,11 @@ class Topology:
k_val = if_val.get(key)
if k_val is not None:
if k_val == value:
- retval = if_key
- break
+ if subsequent:
+ subsequent = False
+ else:
+ retval = if_key
+ break
return retval
@staticmethod
@@ -416,7 +425,7 @@ class Topology:
return Topology._get_interface_by_key_value(node, u"name", iface_name)
@staticmethod
- def get_interface_by_link_name(node, link_name):
+ def get_interface_by_link_name(node, link_name, subsequent=False):
"""Return interface key of link on node.
This method returns the interface name associated with a given link
@@ -424,12 +433,17 @@ class Topology:
:param node: The node topology dictionary.
:param link_name: Name of the link that a interface is connected to.
+ :param subsequent: Use second interface of the link. Useful for
+ back-to-back links. Default: False
:type node: dict
:type link_name: string
+ :type subsequent: bool
:returns: Interface key of the interface connected to the given link.
:rtype: str
"""
- return Topology._get_interface_by_key_value(node, u"link", link_name)
+ return Topology._get_interface_by_key_value(
+ node, u"link", link_name, subsequent=subsequent
+ )
def get_interfaces_by_link_names(self, node, link_names):
"""Return dictionary of dictionaries {"interfaceN", interface name}.
@@ -752,7 +766,9 @@ class Topology:
# find link
for node_data in nodes_info.values():
# skip self
- if node_data[u"host"] == node[u"host"]:
+ l_hash = node_data[u"host"]+str(node_data[u"port"])
+ r_hash = node[u"host"]+str(node[u"port"])
+ if l_hash == r_hash:
continue
for if_key, if_val \
in node_data[u"interfaces"].items():
@@ -835,13 +851,15 @@ class Topology:
return None
@staticmethod
- def _get_node_active_link_names(node, filter_list=None):
+ def _get_node_active_link_names(node, filter_list=None, topo_has_dut=True):
"""Return list of link names that are other than mgmt links.
:param node: Node topology dictionary.
:param filter_list: Link filter criteria.
+ :param topo_has_dut: Whether we require back-to-back links.
:type node: dict
:type filter_list: list of strings
+ :type topo_has_dut: bool
:returns: List of link names occupied by the node.
:rtype: None or list of string
"""
@@ -861,6 +879,17 @@ class Topology:
link_names.append(interface[u"link"])
if not link_names:
link_names = None
+ if not topo_has_dut:
+ new_link_names = list()
+ for link_name in link_names:
+ count = 0
+ for interface in interfaces.values():
+ link = interface.get(u"link", None)
+ if link == link_name:
+ count += 1
+ if count == 2:
+ new_link_names.append(link_name)
+ link_names = new_link_names
return link_names
def get_active_connecting_links(
@@ -879,12 +908,19 @@ class Topology:
:rtype: list
"""
- node1_links = self._get_node_active_link_names(
- node1, filter_list=filter_list_node1
- )
- node2_links = self._get_node_active_link_names(
- node2, filter_list=filter_list_node2
- )
+ if node1 != node2:
+ node1_links = self._get_node_active_link_names(
+ node1, filter_list=filter_list_node1
+ )
+ node2_links = self._get_node_active_link_names(
+ node2, filter_list=filter_list_node2
+ )
+ else:
+ # Looking for back-to-back links.
+ node1_links = self._get_node_active_link_names(
+ node1, filter_list=filter_list_node1, topo_has_dut=False
+ )
+ node2_links = node1_links
connecting_links = None
if node1_links is None:
@@ -1051,6 +1087,19 @@ class Topology:
except KeyError:
return None
+ def get_bus(node):
+ """Return bus configuration of the node.
+
+ :param node: Node created from topology.
+ :type node: dict
+ :returns: bus configuration string.
+ :rtype: str
+ """
+ try:
+ return node[u"bus"]
+ except KeyError:
+ return None
+
@staticmethod
def get_uio_driver(node):
"""Return uio-driver configuration of the node.
diff --git a/resources/libraries/robot/crypto/ipsec.robot b/resources/libraries/robot/crypto/ipsec.robot
index 666b36277a..8403ae4516 100644
--- a/resources/libraries/robot/crypto/ipsec.robot
+++ b/resources/libraries/robot/crypto/ipsec.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -69,7 +69,7 @@
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${tg_if2_ip4} | ${TG_pf2_mac}[0]
| | Vpp Route Add
| | ... | ${dut1} | ${tg_host_ip4} | ${ip4_plen} | gateway=${tg_if1_ip4}
-| | ... | interface=${DUT1_${int}1}[0]
+| | ... | interface=${DUT1_${int}1}[0] | strict=${False}
| | Set Test Variable | ${dut_tun_ip} | ${dut_if1_ip4}
| | Set Test Variable | ${tg_tun_ip} | ${tg_if1_ip4}
| | Set Test Variable | ${tg_src_ip} | ${tg_host_ip4}
@@ -153,17 +153,17 @@
| | VPP IPsec Add SPD | ${node} | ${spd_id}
| | VPP IPsec SPD Add If | ${node} | ${spd_id} | ${interface}
| | ${action}= | Policy Action Bypass
-| | VPP IPsec Policy Add | ${node} | ${spd_id} | ${p_hi} | ${action}
+| | VPP IPsec Add SPD Entry | ${node} | ${spd_id} | ${p_hi} | ${action}
| | ... | inbound=${TRUE} | proto=${ESP_PROTO} | is_ipv6=${is_ipv6}
| | ... | laddr_range=${tg_tun_ip} | raddr_range=${dut_tun_ip}
-| | VPP IPsec Policy Add | ${node} | ${spd_id} | ${p_hi} | ${action}
+| | VPP IPsec Add SPD Entry | ${node} | ${spd_id} | ${p_hi} | ${action}
| | ... | inbound=${FALSE} | proto=${ESP_PROTO} | is_ipv6=${is_ipv6}
| | ... | laddr_range=${dut_tun_ip} | raddr_range=${tg_tun_ip}
| | ${action}= | Policy Action Protect
-| | VPP IPsec Policy Add | ${node} | ${spd_id} | ${p_lo} | ${action}
+| | VPP IPsec Add SPD Entry | ${node} | ${spd_id} | ${p_lo} | ${action}
| | ... | sa_id=${r_sa_id} | laddr_range=${l_ip}
| | ... | raddr_range=${r_ip} | inbound=${TRUE}
-| | VPP IPsec Policy Add | ${node} | ${spd_id} | ${p_lo} | ${action}
+| | VPP IPsec Add SPD Entry | ${node} | ${spd_id} | ${p_lo} | ${action}
| | ... | sa_id=${l_sa_id} | laddr_range=${l_ip}
| | ... | raddr_range=${r_ip} | inbound=${FALSE}
@@ -231,3 +231,51 @@
| | FOR | ${dut} | IN | @{duts}
| | | VPP Ipsec Set Async Mode | ${nodes['${dut}']}
| | END
+
+| Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | [Documentation]
+| | ... | Disable crypto work for specified data plane CPU cores
+| | ... | on all DUT nodes (leaving feature plane workers enabled).
+| | ... | Set Round Robin interface RX placement on data plane CPU cores
+| | ... | on all DUT nodes (leaving feature plane workers disabled).
+| |
+| | VPP Round Robin Rx Placement on all DUTs
+| | ... | ${nodes} | prefix=${EMPTY} | use_dp_cores=${True}
+| | VPP IPSec Crypto SW Scheduler Set Worker on all DUTs
+| | ... | ${nodes} | crypto_enable=${False}
+
+| Enable SPD flow cache IPv4 Inbound
+| | [Documentation]
+| | ... | Enable IPv4 Inbound SPD flow cache in VPP configuration file.
+| |
+| | FOR | ${dut} | IN | @{duts}
+| | | Run Keyword | ${dut}.Add IPsec SPD Flow cache IPv4 Inbound | on
+| | | Run Keyword | ${dut}.Add IPsec SPD Fast Path IPv4 Inbound | on
+| | END
+
+| Enable SPD flow cache IPv4 Outbound
+| | [Documentation]
+| | ... | Enable IPv4 Outbound SPD flow cache in VPP configuration file.
+| |
+| | FOR | ${dut} | IN | @{duts}
+| | | Run Keyword | ${dut}.Add IPsec SPD Flow cache IPv4 Outbound | on
+| | | Run Keyword | ${dut}.Add IPsec SPD Fast Path IPv4 Outbound | on
+| | END
+
+| Enable IPsec SPD Fast Path IPv4 Inbound and Outbound
+| | [Documentation]
+| | ... | Enable IPsec SPD fast path IPv4 Inbound and outbound in VPP
+| | ... | configuration file.
+| |
+| | ... | *Arguments:*
+| | ... | - value - The number buckets for spd fast path. Type: int
+| |
+| | [Arguments] | ${value}
+| |
+| | FOR | ${dut} | IN | @{duts}
+| | | Run Keyword | ${dut}.Add IPsec SPD Flow Cache IPv4 Outbound | off
+| | | Run Keyword | ${dut}.Add IPsec SPD Flow Cache IPv4 Inbound | off
+| | | Run Keyword | ${dut}.Add IPsec SPD Fast Path IPv4 Outbound | on
+| | | Run Keyword | ${dut}.Add IPsec SPD Fast Path IPv4 Inbound | on
+| | | Run Keyword | ${dut}.Add IPsec SPD Fast Path Num Buckets | ${value}
+| | END
diff --git a/resources/libraries/robot/dpdk/default.robot b/resources/libraries/robot/dpdk/default.robot
deleted file mode 100644
index 957a2541d8..0000000000
--- a/resources/libraries/robot/dpdk/default.robot
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Library | resources.libraries.python.InterfaceUtil
-| Library | resources.libraries.python.CpuUtils
-| Library | resources.libraries.python.DPDK.TestpmdTest
-| Library | resources.libraries.python.DPDK.L3fwdTest
-| Library | Collections
-
-*** Keywords ***
-| Start testpmd on all DUTs
-| | [Documentation] | Start the testpmd with M worker threads and rxqueues N and
-| | ... | jumbo support frames on/off on all DUTs.
-| |
-| | ... | *Arguments:*
-| | ... | - phy_cores - Number of physical cores to use. Type: integer
-| | ... | - rx_queues - Number of RX queues. Type: integer
-| | ... | - jumbo_frames - Jumbo frames on/off: boolean
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Start testpmd on all DUTs \| ${1} \| ${1} \| ${False} \|
-| |
-| | [Arguments] | ${phy_cores} | ${rx_queues}=${None} | ${jumbo_frames}=${False}
-| |
-| | ${cpu_count_int} | Convert to Integer | ${phy_cores}
-| | ${thr_count_int} | Convert to Integer | ${phy_cores}
-| | ${dp_cores}= | Evaluate | ${cpu_count_int}+1
-| | FOR | ${dut} | IN | @{duts}
-| | | ${numa}= | Get interfaces numa node | ${nodes['${dut}']}
-| | | ... | ${${dut}_pf1}[0] | ${${dut}_pf2}[0]
-| | | ${smt_used}= | Is SMT enabled | ${nodes['${dut}']['cpuinfo']}
-| | | ${cpus}= | Cpu List Per Node Str | ${nodes['${dut}']} | ${numa}
-| | | ... | skip_cnt=${2} | cpu_cnt=${cpu_count_int} | smt_used=${smt_used}
-| | | ${thr_count_int}= | Run keyword if | ${smt_used} |
-| | | ... | Evaluate | int(${cpu_count_int}*2) | ELSE | Set variable
-| | | ... | ${thr_count_int}
-| | | ${rxq_count_int}= | Run keyword if | ${rx_queues}
-| | | ... | Set variable | ${rx_queues}
-| | | ... | ELSE | Evaluate | int(${thr_count_int}/2)
-| | | ${rxq_count_int}= | Run keyword if | ${rxq_count_int} == 0
-| | | ... | Set variable | ${1}
-| | | ... | ELSE | Set variable | ${rxq_count_int}
-| | | Start testpmd
-| | | ... | ${nodes['${dut}']} | ${${dut}_pf1}[0] | ${${dut}_pf2}[0]
-| | | ... | ${cpus} | ${thr_count_int} | ${rxq_count_int} | ${jumbo_frames}
-| | | ... | ${nic_rxq_size} | ${nic_txq_size}
-| | | Run keyword if | ${thr_count_int} > 1
-| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD
-| | | Set Tags | ${thr_count_int}T${cpu_count_int}C
-| | END
-
-| Start l3fwd on all DUTs
-| | [Documentation] | Start the l3fwd with M worker threads and rxqueues N and
-| | ... | jumbo support frames on/off on all DUTs.
-| |
-| | ... | *Arguments:*
-| | ... | - phy_cores - Number of physical cores to use. Type: integer
-| | ... | - rx_queues - Number of RX queues. Type: integer
-| | ... | - jumbo_frames - Jumbo frames on/off: boolean
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Start l3fwd on all DUTs \| ${1} \| ${1} \| ${False} \|
-| |
-| | [Arguments] | ${phy_cores} | ${rx_queues}=${None} | ${jumbo_frames}=${False}
-| |
-| | ${cpu_count_int} | Convert to Integer | ${phy_cores}
-| | ${thr_count_int} | Convert to Integer | ${phy_cores}
-| | ${dp_cores}= | Evaluate | ${cpu_count_int}+1
-| | FOR | ${dut} | IN | @{duts}
-| | | ${numa}= | Get interfaces numa node | ${nodes['${dut}']}
-| | | ... | ${${dut}_pf1}[0] | ${${dut}_pf2}[0]
-| | | ${smt_used}= | Is SMT enabled | ${nodes['${dut}']['cpuinfo']}
-| | | ${cpus}= | Cpu List Per Node Str | ${nodes['${dut}']} | ${numa}
-| | | ... | skip_cnt=${2} | cpu_cnt=${cpu_count_int} | smt_used=${smt_used}
-| | | ${thr_count_int}= | Run keyword if | ${smt_used} |
-| | | ... | Evaluate | int(${cpu_count_int}*2) | ELSE | Set variable
-| | | ... | ${thr_count_int}
-| | | ${rxq_count_int}= | Run keyword if | ${rx_queues}
-| | | ... | Set variable | ${rx_queues}
-| | | ... | ELSE | Evaluate | int(${thr_count_int}/2)
-| | | ${rxq_count_int}= | Run keyword if | ${rxq_count_int} == 0
-| | | ... | Set variable | ${1}
-| | | ... | ELSE | Set variable | ${rxq_count_int}
-| | | Start l3fwd
-| | | ... | ${nodes} | ${nodes['${dut}']} | ${${dut}_pf1}[0] | ${${dut}_pf2}[0]
-| | | ... | ${cpus} | ${thr_count_int} | ${rxq_count_int} | ${jumbo_frames}
-| | | Run keyword if | ${thr_count_int} > 1
-| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD
-| | | Set Tags | ${thr_count_int}T${cpu_count_int}C
-| | END
diff --git a/resources/libraries/robot/features/acl.robot b/resources/libraries/robot/features/acl.robot
index 8621562b22..f474561a14 100644
--- a/resources/libraries/robot/features/acl.robot
+++ b/resources/libraries/robot/features/acl.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -100,10 +100,10 @@
| | Add Macip Acl Multi Entries | ${dut} | rules=${acl0}
| | Add Macip Acl Multi Entries | ${dut} | rules=${acl1}
| | ${acl_idx}= | Set Variable | 0
-| | Run Keyword Unless | '${dut_if1}' == '${NONE}'
+| | Run Keyword If | '${dut_if1}' != '${NONE}'
| | ... | Add Del Macip Acl Interface | ${dut} | ${dut_if1} | add | ${acl_idx}
| | ${acl_idx}= | Set Variable | 1
-| | Run Keyword Unless | '${dut_if2}' == '${NONE}'
+| | Run Keyword If | '${dut_if2}' != '${NONE}'
| | ... | Add Del Macip Acl Interface | ${dut} | ${dut_if2} | add | ${acl_idx}
| Configure IPv4 ACLs
diff --git a/resources/libraries/robot/features/dma.robot b/resources/libraries/robot/features/dma.robot
new file mode 100644
index 0000000000..677f39c9df
--- /dev/null
+++ b/resources/libraries/robot/features/dma.robot
@@ -0,0 +1,28 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Documentation | DMA Keywords
+|
+| Library | resources.libraries.python.DMAUtil
+| Resource | resources/libraries/robot/nginx/default.robot
+
+*** Keywords ***
+| Enable DMA WQs on all DUTs
+| | [Documentation] | Enable DMA WQs on all DUTs.
+| |
+| | FOR | ${dut} | IN | @{duts}
+| | | ${dma_wqs}= | Enable DMAs And WQs On DUT
+| | | ... | ${nodes['${dut}']} | ${cpu_count_int}
+| | | Set Test Variable | ${${dut}_dma_wqs} | ${dma_wqs}
+| | END
diff --git a/resources/libraries/robot/features/policer.robot b/resources/libraries/robot/features/policer.robot
index a9394d6c9f..84296eb79a 100644
--- a/resources/libraries/robot/features/policer.robot
+++ b/resources/libraries/robot/features/policer.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/robot/hoststack/hoststack.robot b/resources/libraries/robot/hoststack/hoststack.robot
index 075cc2b8bf..34e34b056c 100644
--- a/resources/libraries/robot/hoststack/hoststack.robot
+++ b/resources/libraries/robot/hoststack/hoststack.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -15,12 +15,15 @@
| Library | resources.libraries.python.InterfaceUtil
| Library | resources.libraries.python.IPUtil
| Library | resources.libraries.python.HoststackUtil
+| Library | resources.libraries.python.NginxUtil
| Library | resources.libraries.python.NsimUtil
+| Library | resources.tools.ab.ABTools
| Variables | resources/libraries/python/Constants.py
| Resource | resources/libraries/robot/ip/ip4.robot
| Resource | resources/libraries/robot/nsim/nsim.robot
+| Resource | resources/libraries/robot/nginx/default.robot
|
-| Documentation | L2 keywords to set up VPP to test hoststack.
+| Documentation | *L2 keywords to set up VPP to test hoststack.*
*** Variables ***
| ${quic_crypto_engine}= | nocrypto
@@ -30,11 +33,8 @@
| ... | rxd=${256}
| ... | txd=${256}
| ... | phy_cores=${1}
-| ... | vpp_api_socket=${SOCKSVR_PATH}
-| ... | api_seg_global_size=2G
-| ... | api_seg_api_size=1G
+| ... | app_api_socket=/run/vpp/app_ns_sockets/default
| ... | tcp_cc_algo=cubic
-| ... | sess_evt_q_seg_size=64M
| ... | sess_evt_q_length=16384
| ... | sess_prealloc_sess=1024
| ... | sess_v4_tbl_buckets=20000
@@ -48,7 +48,7 @@
| ... | cpu_cnt=${1}
| ... | cfg_vpp_feature=${None}
| ... | namespace=default
-| ... | vpp_api_socket=${vpp_hoststack_attr}[vpp_api_socket]
+| ... | app_api_socket=${vpp_hoststack_attr}[app_api_socket]
| ... | json_output=json
| ... | uri_protocol=quic
| ... | uri_ip4_addr=${EMPTY}
@@ -63,12 +63,13 @@
| ... | tx_bytes=0
| ... | rx_results_diff=${False}
| ... | tx_results_diff=${False}
+| ... | use_app_socket_api=${True}
| &{vpp_echo_client_attr}=
| ... | role=client
| ... | cpu_cnt=${1}
| ... | cfg_vpp_feature=${None}
| ... | namespace=default
-| ... | vpp_api_socket=${vpp_hoststack_attr}[vpp_api_socket]
+| ... | app_api_socket=${vpp_hoststack_attr}[app_api_socket]
| ... | json_output=json
| ... | uri_protocol=quic
| ... | uri_ip4_addr=${EMPTY}
@@ -83,6 +84,7 @@
| ... | tx_bytes=0
| ... | rx_results_diff=${False}
| ... | tx_results_diff=${False}
+| ... | use_app_socket_api=${True}
| &{iperf3_server_attr}=
| ... | role=server
| ... | cpu_cnt=${1}
@@ -106,6 +108,19 @@
| ... | ip_address=${EMPTY}
| ... | parallel=${1}
| ... | time=${20}
+| ... | udp=${False}
+| ... | bandwidth=10000000
+| ... | length=${0}
+| &{nginx_server_attr}=
+| ... | role=server
+| ... | cpu_cnt=${1}
+| ... | cfg_vpp_feature=${Empty}
+| ... | namespace=default
+| ... | vcl_config=vcl_nginx.conf
+| ... | ld_preload=${True}
+| ... | transparent_tls=${False}
+| ... | json=${True}
+| ... | ip_version=${4}
*** Keywords ***
| Set VPP Hoststack Attributes
@@ -117,11 +132,8 @@
| | ... | - ${rxd} - Number of Rx Descriptors Type: int
| | ... | - ${txd} - Number of Tx Descriptors Type: int
| | ... | - ${phy_cores} - Number of cores for workers Type: int
-| | ... | - ${vpp_api_socket} - Path to VPP api socket file Type: string
-| | ... | - ${api_seg_global_size} - Global API segment size Type: string
-| | ... | - ${api_seg_api_size} - API segment API fifo size Type: string
+| | ... | - ${app_api_socket} - Path to application api socket file Type: string
| | ... | - ${tcp_cc_algo} - TCP congestion control algorithm Type: string
-| | ... | - ${sess_evt_q_seg_size} - Session event queue segment size
| | ... | Type: string
| | ... | - ${sess_evt_q_length} - Session event queue length Type: string
| | ... | - ${sess_prealloc_sess} - Number of sessions to preallocate
@@ -148,11 +160,8 @@
| | ... | ${rxd}=${vpp_hoststack_attr}[rxd]
| | ... | ${txd}=${vpp_hoststack_attr}[txd]
| | ... | ${phy_cores}=${vpp_hoststack_attr}[phy_cores]
-| | ... | ${vpp_api_socket}=${vpp_hoststack_attr}[vpp_api_socket]
-| | ... | ${api_seg_global_size}=${vpp_hoststack_attr}[api_seg_global_size]
-| | ... | ${api_seg_api_size}=${vpp_hoststack_attr}[api_seg_api_size]
+| | ... | ${app_api_socket}=${vpp_hoststack_attr}[app_api_socket]
| | ... | ${tcp_cc_algo}=${vpp_hoststack_attr}[tcp_cc_algo]
-| | ... | ${sess_evt_q_seg_size}=${vpp_hoststack_attr}[sess_evt_q_seg_size]
| | ... | ${sess_evt_q_length}=${vpp_hoststack_attr}[sess_evt_q_length]
| | ... | ${sess_prealloc_sess}=${vpp_hoststack_attr}[sess_prealloc_sess]
| | ... | ${sess_v4_tbl_buckets}=${vpp_hoststack_attr}[sess_v4_tbl_buckets]
@@ -167,16 +176,10 @@
| | Set To Dictionary | ${vpp_hoststack_attr} | txd | ${txd}
| | Set To Dictionary | ${vpp_hoststack_attr} | phy_cores | ${phy_cores}
| | Set To Dictionary | ${vpp_hoststack_attr}
-| | ... | vpp_api_socket | ${vpp_api_socket}
-| | Set To Dictionary | ${vpp_hoststack_attr}
-| | ... | api_seg_global_size | ${api_seg_global_size}
-| | Set To Dictionary | ${vpp_hoststack_attr}
-| | ... | api_seg_api_size | ${api_seg_api_size}
+| | ... | app_api_socket | ${app_api_socket}
| | Set To Dictionary | ${vpp_hoststack_attr}
| | ... | tcp_cc_algo | ${tcp_cc_algo}
| | Set To Dictionary | ${vpp_hoststack_attr}
-| | ... | sess_evt_q_seg_size | ${sess_evt_q_seg_size}
-| | Set To Dictionary | ${vpp_hoststack_attr}
| | ... | sess_evt_q_length | ${sess_evt_q_length}
| | Set To Dictionary | ${vpp_hoststack_attr}
| | ... | sess_prealloc_sess | ${sess_prealloc_sess}
@@ -211,6 +214,7 @@
| | ... | - ${tx_bytes} - Number of Bytes to send Type: string
| | ... | - ${rx_results_diff} - Rx Results are different to pass Type: boolean
| | ... | - ${tx_results_diff} - Tx Results are different to pass Type: boolean
+| | ... | - ${use_app_socket_api} - Use app socket API instead of VPP API
| |
| | ... | *Example:*
| |
@@ -230,6 +234,7 @@
| | ... | ${tx_bytes}=${vpp_echo_server_attr}[tx_bytes]
| | ... | ${rx_results_diff}=${vpp_echo_server_attr}[rx_results_diff]
| | ... | ${tx_results_diff}=${vpp_echo_server_attr}[tx_results_diff]
+| | ... | ${use_app_socket_api}=${vpp_echo_server_attr}[use_app_socket_api]
| |
| | Set To Dictionary | ${vpp_echo_server_attr} | cfg_vpp_feature
| | ... | ${cfg_vpp_feature}
@@ -246,6 +251,8 @@
| | ... | ${vpp_echo_server_attr} | rx_results_diff | ${rx_results_diff}
| | Set To Dictionary
| | ... | ${vpp_echo_server_attr} | tx_results_diff | ${tx_results_diff}
+| | Set To Dictionary
+| | ... | ${vpp_echo_server_attr} | use_app_socket_api | ${use_app_socket_api}
| Set VPP Echo Client Attributes
| | [Documentation]
@@ -265,6 +272,7 @@
| | ... | - ${tx_bytes} - Number of Bytes to send Type: string
| | ... | - ${rx_results_diff} - Rx Results are different to pass Type: boolean
| | ... | - ${tx_results_diff} - Tx Results are different to pass Type: boolean
+| | ... | - ${use_app_socket_api} - Use app socket API instead of VPP API
| |
| | ... | *Example:*
| |
@@ -284,6 +292,7 @@
| | ... | ${tx_bytes}=${vpp_echo_client_attr}[tx_bytes]
| | ... | ${rx_results_diff}=${vpp_echo_client_attr}[rx_results_diff]
| | ... | ${tx_results_diff}=${vpp_echo_client_attr}[tx_results_diff]
+| | ... | ${use_app_socket_api}=${vpp_echo_client_attr}[use_app_socket_api]
| |
| | Set To Dictionary | ${vpp_echo_client_attr} | cfg_vpp_feature
| | ... | ${cfg_vpp_feature}
@@ -300,6 +309,8 @@
| | ... | ${vpp_echo_client_attr} | rx_results_diff | ${rx_results_diff}
| | Set To Dictionary
| | ... | ${vpp_echo_client_attr} | tx_results_diff | ${tx_results_diff}
+| | Set To Dictionary
+| | ... | ${vpp_echo_client_attr} | use_app_socket_api | ${use_app_socket_api}
| Set Iperf3 Server Attributes
| | [Documentation]
@@ -340,11 +351,15 @@
| | ... | - ${transparent_tls} - Use VCL Transparent-TLS mode Type: boolean
| | ... | - ${ip_version} - IP version (4 or 6) Type: int
| | ... | - ${parallel} - Number of parallel streams Type: int
+| | ... | - ${bandwidth} - Target bandwidth in bits/sec Type: int
+| | ... | - ${udp} - UDP or TCP protocol Type: boolean
+| | ... | - ${length} - Packet Length Type: int
| |
| | ... | *Example:*
| |
| | ... | \| Set Iperf3 Client Attributes \| vcl_config=${vcl_config} \|
| | ... | \| ip_version=${ip_version} \| parallel=${streams} \|
+| | ... | \| bandwidth=${bandwidth} | udp=${True} \|
| |
| | [Arguments]
| | ... | ${vcl_config}=${iperf3_client_attr}[vcl_config]
@@ -352,6 +367,9 @@
| | ... | ${transparent_tls}=${iperf3_client_attr}[transparent_tls]
| | ... | ${ip_version}=${iperf3_client_attr}[ip_version]
| | ... | ${parallel}=${iperf3_client_attr}[parallel]
+| | ... | ${bandwidth}=${iperf3_client_attr}[bandwidth]
+| | ... | ${udp}=${iperf3_client_attr}[udp]
+| | ... | ${length}=${iperf3_client_attr}[length]
| |
| | Set To Dictionary | ${iperf3_client_attr} | vcl_config | ${vcl_config}
| | Set To Dictionary | ${iperf3_client_attr} | ld_preload | ${ld_preload}
@@ -359,6 +377,9 @@
| | ... | ${transparent_tls}
| | Set To Dictionary | ${iperf3_client_attr} | ip_version | ${ip_version}
| | Set To Dictionary | ${iperf3_client_attr} | parallel | ${parallel}
+| | Set To Dictionary | ${iperf3_client_attr} | bandwidth | ${bandwidth}
+| | Set To Dictionary | ${iperf3_client_attr} | udp | ${udp}
+| | Set To Dictionary | ${iperf3_client_attr} | length | ${length}
| Run hoststack test program on DUT
| | [Documentation]
@@ -414,7 +435,7 @@
| | Set hoststack quic fifo size | ${node} | ${quic_fifo_size}
| | Set hoststack quic crypto engine | ${node} | ${quic_crypto_engine}
-| Configure VPP hoststack attributes on all DUTs
+| Configure VPP Hoststack Attributes on all DUTs
| | [Documentation]
| | ... | Configure VPP HostStack attributes on all DUTs.
| |
@@ -426,11 +447,6 @@
| | FOR | ${dut} | IN | @{duts}
| | | Import Library | resources.libraries.python.VppConfigGenerator
| | | ... | WITH NAME | ${dut}
-| | | Run keyword | ${dut}.Add socksvr | ${vpp_hoststack_attr}[vpp_api_socket]
-| | | Run keyword | ${dut}.Add api segment global size
-| | | ... | ${vpp_hoststack_attr}[api_seg_global_size]
-| | | Run keyword | ${dut}.Add api segment api size
-| | | ... | ${vpp_hoststack_attr}[api_seg_api_size]
| | | Run Keyword If
| | | ... | '${dut}' == 'DUT1' and ${vpp_nsim_attr}[output_nsim_enable]
| | | ... | ${dut}.Add Nsim poll main thread
@@ -438,9 +454,7 @@
| | | Run keyword | ${dut}.Add tcp congestion control algorithm
| | | ... | ${vpp_hoststack_attr}[tcp_cc_algo]
| | | Run keyword | ${dut}.Add session enable
-| | | Run keyword | ${dut}.Add session event queues memfd segment
-| | | Run keyword | ${dut}.Add session event queues segment size
-| | | ... | ${vpp_hoststack_attr}[sess_evt_q_seg_size]
+| | | Run keyword | ${dut}.Add session app socket api
| | | Run keyword | ${dut}.Add session event queue length
| | | ... | ${vpp_hoststack_attr}[sess_evt_q_length]
| | | Run keyword | ${dut}.Add session preallocated sessions
@@ -492,11 +506,13 @@
| | ... | ${vpp_echo_client_attr}[namespace] | ${core_list}
| | ... | ${vpp_echo_client_attr}[cfg_vpp_feature] | ${vpp_echo_client}
| | When Hoststack Test Program Finished | ${dut1} | ${client_pid}
+| | ... | ${vpp_echo_client} | ${dut2} | ${vpp_echo_server}
| | ${client_defer_fail} | ${client_output}=
| | ... | Analyze hoststack test program output | ${dut1} | Client
| | ... | ${vpp_nsim_attr} | ${vpp_echo_client}
| | Then Set test message | ${client_output}
| | And Hoststack Test Program Finished | ${dut2} | ${server_pid}
+| | ... | ${vpp_echo_server} | ${dut1} | ${vpp_echo_client}
| | ${server_defer_fail} | ${server_output}=
| | ... | Analyze hoststack test program output | ${dut2} | Server
| | ... | ${vpp_nsim_attr} | ${vpp_echo_server}
@@ -534,8 +550,109 @@
| | ... | ${iperf3_client_attr}[namespace] | ${core_list}
| | ... | ${iperf3_client_attr}[cfg_vpp_feature] | ${iperf3_client}
| | When Hoststack Test Program Finished | ${dut1} | ${client_pid}
+| | ... | ${iperf3_client} | ${dut2} | ${iperf3_server}
| | ${client_defer_fail} | ${client_output}=
| | ... | Analyze hoststack test program output | ${dut1} | Client
| | ... | ${vpp_nsim_attr} | ${iperf3_client}
| | Then Set test message | ${client_output}
| | Return From Keyword | ${client_defer_fail}
+
+| Set up LDP or VCL Nginx on DUT1 node
+| | [Documentation]
+| | ... | Setup for suites which uses VCL or LDP Nginx on DUT1.
+| |
+| | ... | Currently hardcoded to work on DUT1, assuming its node dict
+| | ... | and similar values like \${DUT1_cpu_alloc_str} are already defined.
+| |
+| | ... | *Arguments:*
+| | ... | - mode - VCL Nginx or LDP Nginx.
+| | ... | Type: string
+| | ... | - rps_cps - Test request or connect.
+| | ... | Type: string
+| | ... | - core_num - Nginx work processes number.
+| | ... | Type: int
+| | ... | - qat - Whether to use the qat engine.
+| | ... | Type: string
+| | ... | - tls_tcp - TLS or TCP.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Set up LDP or VCL NGINX on DUT1 node \| ${mode}\
+| | ... | \| ${rps_cps} \| ${phy_cores} \| ${qat} \| ${tls_tcp} \|
+| |
+| | [Arguments] | ${mode} | ${rps_cps} | ${phy_cores} | ${qat} | ${tls_tcp}
+| |
+| | Set Interface State | ${DUT1} | ${DUT1_${int}1}[0] | up
+| | VPP Interface Set IP Address | ${DUT1} | ${DUT1_${int}1}[0]
+| | ... | ${dut_ip_addrs}[0] | ${dut_ip_prefix}
+| | Vpp Node Interfaces Ready Wait | ${DUT1}
+| | ${skip_cnt}= | Evaluate
+| | ... | ${CPU_CNT_SYSTEM} + ${CPU_CNT_MAIN} + ${vpp_hoststack_attr}[phy_cores]
+| | ${numa}= | Get interfaces numa node | ${DUT1} | ${DUT1_${int}1}[0]
+| | Apply Nginx configuration on DUT | ${DUT1} | ${phy_cores}
+| | Set To Dictionary | ${nginx_server_attr} | ip_address
+| | ... | ${dut_ip_addrs}[0]
+| | ${core_list}= | Cpu list per node str | ${DUT1} | ${numa}
+| | ... | skip_cnt=${skip_cnt} | cpu_cnt=${nginx_server_attr}[cpu_cnt]
+| | ${cpu_idle_list}= | Get cpu idle list | ${DUT1} | ${numa}
+| | ... | ${smt_used} | ${DUT1_cpu_alloc_str}
+| | ${nginx_server}= | Get Nginx Command | ${nginx_server_attr}
+| | ... | ${nginx_version} | ${packages_dir}
+| | ${server_pid}= | Start Hoststack Test Program
+| | ... | ${DUT1} | ${nginx_server_attr}[namespace] | ${core_list}
+| | ... | ${nginx_server}
+| | Taskset Nginx PID to idle cores | ${DUT1} | ${cpu_idle_list}
+
+| Measure TLS requests or connections per second
+| | [Documentation]
+| | ... | Measure number of requests or connections per second using ab.
+| |
+| | ... | *Arguments:*
+| | ... | - ${ciphers} - Specify SSL/TLS cipher suite
+| | ... | - ${files} - Filename to be requested from the servers
+| | ... | - ${tls_tcp} - Test TLS or TCP.
+| | ... | - ${mode} - VCL Nginx or LDP Nginx.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Measure TLS requests or connections per second
+| | ... | \| AES128-SHA \| 64 \| tls \| rps \|
+| |
+| | [Arguments] | ${ciphers} | ${files} | ${tls_tcp} | ${mode}
+| |
+| | ${output}= | Run ab | ${tg} | ${dut_ip_addrs}[0] | ${ab_ip_addrs}[0]
+| | ... | ${tls_tcp} | ${ciphers} | ${files} | ${mode} | ${r_total} | ${c_total}
+| | ... | ${listen_port}
+| | Set test message | ${output}
+| | Log VPP Hoststack data | ${dut1}
+
+| Configure VPP startup configuration for NGINX
+| | [Documentation]
+| | ... | COnfigure VPP startup configuration for NGINX related tests
+| |
+| | [Arguments] | ${sess_prealloc_sess} | ${sess_evt_q_length}
+| | ... | ${v4_sess_tbl_buckets} | ${v4_sess_tbl_mem} | ${local_endpts_tbl_buckets}
+| | ... | ${local_endpts_tbl_mem} | ${tcp_prealloc_conns} | ${tcp_prealloc_ho_conns}
+| |
+| | FOR | ${dut} | IN | @{duts}
+| | | Import Library | resources.libraries.python.VppConfigGenerator
+| | | ... | WITH NAME | ${dut}
+| | | Run keyword | ${dut}.Add session enable
+| | | Run keyword | ${dut}.Add session app socket api
+| | | Run keyword | ${dut}.Add session preallocated sessions
+| | | ... | ${sess_prealloc_sess}
+| | | Run keyword | ${dut}.Add session event queue length
+| | | ... | ${sess_evt_q_length}
+| | | Run keyword | ${dut}.Add session v4 session table buckets
+| | | ... | ${v4_sess_tbl_buckets}
+| | | Run keyword | ${dut}.Add session v4 session table memory
+| | | ... | ${v4_sess_tbl_mem}
+| | | Run keyword | ${dut}.Add session local endpoints table buckets
+| | | ... | ${local_endpts_tbl_buckets}
+| | | Run keyword | ${dut}.Add session local endpoints table memory
+| | | ... | ${local_endpts_tbl_mem}
+| | | Run keyword | ${dut}.Add tcp preallocated connections
+| | | ... | ${tcp_prealloc_conns}
+| | | Run keyword | ${dut}.Add tcp preallocated half open connections
+| | | ... | ${tcp_prealloc_ho_conns}
+| | END
diff --git a/resources/libraries/robot/ip/geneve.robot b/resources/libraries/robot/ip/geneve.robot
index ffbd506f1d..5edf4f4c17 100644
--- a/resources/libraries/robot/ip/geneve.robot
+++ b/resources/libraries/robot/ip/geneve.robot
@@ -20,8 +20,6 @@
| Initialize GENEVE L3 mode in circular topology
| | [Documentation] | Initialization of GENEVE L3 mode on DUT1.
| |
-| | [Arguments] | ${with_bypass}=${False}
-| |
| | Set interfaces in path up
| |
| | VPP Interface Set IP Address
@@ -35,40 +33,9 @@
| | ${next_index}= | VPP Add Graph Node Next
| | ... | ${dut1} | geneve4-input | ethernet-input
| |
-| | ${src_ip_int} = | IP To Int | ${gen_tunnel.src_ip}
-| | ${dst_ip_int} = | IP To Int | ${gen_tunnel.dst_ip}
-| | ${if_ip_int} = | IP To Int | ${gen_tunnel.if_ip}
+| | VPP GENEVE Add Multiple Tunnels
+| | ... | ${dut1} | ${gen_tunnel} | ${n_tunnels} | ${DUT1_${int}1}[0]
+| | ... | ${DUT1_${int}2}[0] | ${tg_if1_ip4} | ${tg_if2_ip4}
+| | ... | ${TG_pf2_mac}[0] | ${next_index}
| |
-| | FOR | ${nr} | IN RANGE | 0 | ${n_tunnels}
-| | | ${src_ip} = | Int To IP | ${${src_ip_int} + ${nr} * 256}
-| | | ${dst_ip} = | Int To IP | ${${dst_ip_int} + ${nr} * 256}
-| | | ${if_ip} = | Int To IP | ${${if_ip_int} + ${nr} * 256}
-| | | Vpp Route Add
-| | | ... | ${dut1} | ${src_ip} | ${gen_tunnel.ip_mask}
-| | | ... | gateway=${tg_if1_ip4} | interface=${DUT1_${int}1}[0]
-| | | ${tunnel_sw_index}= | Add Geneve Tunnel
-| | | ... | ${dut1} | ${gen_tunnel.local} | ${gen_tunnel.remote}
-| | | ... | ${${gen_tunnel.vni} + ${nr}} | l3_mode=${True}
-| | | ... | next_index=${next_index}
-| | | ${tunnel_if_key}= | Get Interface By SW Index
-| | | ... | ${dut1} | ${tunnel_sw_index}
-| | | ${tunnel_if_mac}= | Get Interface MAC
-| | | ... | ${dut1} | ${tunnel_if_key}
-| | | VPP Interface Set IP Address
-| | | ... | ${dut1} | ${tunnel_if_key} | ${if_ip} | 24
-| | | VPP Add IP Neighbor
-| | | ... | ${dut1} | ${tunnel_if_key} | ${tg_if2_ip4} | ${TG_pf2_mac}[0]
-| | | Vpp Route Add
-| | | ... | ${dut1} | ${dst_ip} | ${gen_tunnel.ip_mask}
-| | | ... | gateway=${tg_if2_ip4} | interface=${tunnel_if_key}
-| | | Vpp Route Add
-| | | ... | ${dut1} | ${gen_tunnel.remote} | 32
-| | | ... | gateway=${tg_if2_ip4} | interface=${DUT1_${int}2}[0]
-| | | VPP Add IP Neighbor
-| | | ... | ${dut1} | ${tunnel_if_key} | ${gen_tunnel.local} | ${tunnel_if_mac}
-| | | Vpp Route Add
-| | | ... | ${dut1} | ${gen_tunnel.local} | 32 | gateway=${if_ip}
-| | | Set Interface State
-| | | ... | ${dut1} | ${tunnel_if_key} | up
-| | END
| | All VPP Interfaces Ready Wait | ${nodes} | retries=${60}
diff --git a/resources/libraries/robot/ip/ip4.robot b/resources/libraries/robot/ip/ip4.robot
index 0220fe29f6..e3ebd0e289 100644
--- a/resources/libraries/robot/ip/ip4.robot
+++ b/resources/libraries/robot/ip/ip4.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -12,9 +12,6 @@
# limitations under the License.
*** Settings ***
-| Library | resources.libraries.python.InterfaceUtil
-| Library | resources.libraries.python.IPUtil
-|
| Documentation | IPv4 keywords
*** Keywords ***
@@ -83,80 +80,21 @@
| | ... | Vpp Route Add | ${dut2} | 10.10.10.0 | 24 | gateway=1.1.1.1
| | ... | interface=${DUT2_${int}1}[0]
| |
-| | Run Keyword Unless | '${remote_host1_ip}' == '${NONE}'
+| | Run Keyword If | '${remote_host1_ip}' != '${NONE}'
| | ... | Vpp Route Add | ${dut1} | ${remote_host1_ip} | ${remote_host_mask}
| | ... | gateway=10.10.10.2 | interface=${DUT1_${int}1}[0]
-| | Run Keyword Unless | '${remote_host2_ip}' == '${NONE}'
+| | Run Keyword If | '${remote_host2_ip}' != '${NONE}'
| | ... | Vpp Route Add | ${dut} | ${remote_host2_ip} | ${remote_host_mask}
| | ... | gateway=20.20.20.2 | interface=${dut_if2}
-| | Run Keyword Unless | '${remote_host1_ip}' == '${NONE}'
+| | Run Keyword If | '${remote_host1_ip}' != '${NONE}'
| | ... | Run Keyword If | '${dut2_status}' == 'PASS'
| | ... | Vpp Route Add | ${dut1} | ${remote_host1_ip} | ${remote_host_mask}
| | ... | gateway=1.1.1.2 | interface=${DUT1_${int}2}[0]
-| | Run Keyword Unless | '${remote_host2_ip}' == '${NONE}'
+| | Run Keyword If | '${remote_host2_ip}' != '${NONE}'
| | ... | Run Keyword If | '${dut2_status}' == 'PASS'
| | ... | Vpp Route Add | ${dut2} | ${remote_host2_ip} | ${remote_host_mask}
| | ... | gateway=1.1.1.1 | interface=${DUT2_${int}1}[0]
-| Initialize IPv4 forwarding with scaling in circular topology
-| | [Documentation]
-| | ... | Custom setup of IPv4 topology with scalability of ip routes on all
-| | ... | DUT nodes in 2-node / 3-node circular topology
-| |
-| | ... | *Arguments:*
-| | ... | - count - IP route count. Type: integer
-| |
-| | ... | *Return:*
-| | ... | - No value returned
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Initialize IPv4 forwarding with scaling in 3-node circular \
-| | ... | topology \| 100000 \|
-| |
-| | [Arguments] | ${count}
-| |
-| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error
-| | ... | Variable Should Exist | ${dut2}
-| |
-| | Set interfaces in path up
-| |
-| | VPP Add IP Neighbor
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | 1.1.1.1 | ${TG_pf1_mac}[0]
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | VPP Add IP Neighbor
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | 2.2.2.2 | ${DUT2_${int}1_mac}[0]
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | VPP Add IP Neighbor
-| | ... | ${dut2} | ${DUT2_${int}1}[0] | 2.2.2.1 | ${DUT1_${int}2_mac}[0]
-| | ${dut}= | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | Set Variable | ${dut2}
-| | ... | ELSE | Set Variable | ${dut1}
-| | ${dut_if2}= | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | Set Variable | ${DUT2_${int}2}[0]
-| | ... | ELSE | Set Variable | ${DUT1_${int}2}[0]
-| | VPP Add IP Neighbor
-| | ... | ${dut} | ${dut_if2} | 3.3.3.1 | ${TG_pf2_mac}[0]
-| | VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | 1.1.1.2 | 30
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | VPP Interface Set IP Address | ${dut1} | ${DUT1_${int}2}[0] | 2.2.2.1
-| | ... | 30
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | VPP Interface Set IP Address | ${dut2} | ${DUT2_${int}1}[0] | 2.2.2.2
-| | ... | 30
-| | VPP Interface Set IP Address | ${dut} | ${dut_if2} | 3.3.3.2 | 30
-| | Vpp Route Add | ${dut1} | 10.0.0.0 | 32 | gateway=1.1.1.1
-| | ... | interface=${DUT1_${int}1}[0] | count=${count}
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | Vpp Route Add | ${dut1} | 20.0.0.0 | 32 | gateway=2.2.2.2
-| | ... | interface=${DUT1_${int}2}[0] | count=${count}
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | Vpp Route Add | ${dut2} | 10.0.0.0 | 32 | gateway=2.2.2.1
-| | ... | interface=${DUT2_${int}1}[0] | count=${count}
-| | Vpp Route Add | ${dut} | 20.0.0.0 | 32 | gateway=3.3.3.1
-| | ... | interface=${dut_if2} | count=${count}
-
| Initialize IPv4 routing with memif pairs
| | [Documentation]
| | ... | Create pairs of Memif interfaces on all defined VPP nodes. Put each
@@ -267,7 +205,7 @@
| | | ${memif2}= | Set Variable | ${${dut}-memif-${number}-if2}
| | | ${fib_table_1}= | Evaluate | ${fib_table_1} + ${1}
| | | ${fib_table_2}= | Evaluate | ${fib_table_1} + ${1}
-| | | Run Keyword Unless | ${number} == ${count}
+| | | Run Keyword If | ${number} != ${count}
| | | ... | Add Fib Table | ${nodes['${dut}']} | ${fib_table_2}
| | | Assign Interface To Fib Table | ${nodes['${dut}']}
| | | ... | ${memif1} | ${fib_table_1}
@@ -375,10 +313,10 @@
| | | ... | ${dut1} | ${dut1-vhost-${number}-if1} | 1.1.1.2 | 30
| | | VPP Interface Set IP Address
| | | ... | ${dut1} | ${dut1-vhost-${number}-if2} | 1.1.2.2 | 30
-| | | Run Keyword Unless | ${testpmd_mac}
+| | | Run Keyword If | not ${testpmd_mac}
| | | ... | Vpp Route Add | ${dut1} | 20.0.0.0 | 8 | gateway=1.1.1.1
| | | ... | interface=${dut1-vhost-${number}-if1} | vrf=${fib_table_1}
-| | | Run Keyword Unless | ${testpmd_mac}
+| | | Run Keyword If | not ${testpmd_mac}
| | | ... | Vpp Route Add | ${dut1} | 10.0.0.0 | 8 | gateway=1.1.2.1
| | | ... | interface=${dut1-vhost-${number}-if2} | vrf=${fib_table_2}
| | | Run Keyword If | ${testpmd_mac}
@@ -494,16 +432,16 @@
| | | ... | ${dut2} | ${dut2-vhost-${number}-if1} | 1.1.1.2 | 30
| | | VPP Interface Set IP Address
| | | ... | ${dut2} | ${dut2-vhost-${number}-if2} | 1.1.2.2 | 30
-| | | Run Keyword Unless | ${testpmd_mac}
+| | | Run Keyword If | not ${testpmd_mac}
| | | ... | Vpp Route Add | ${dut1} | 20.0.0.0 | 8 | gateway=1.1.1.1
| | | ... | interface=${dut1-vhost-${number}-if1} | vrf=${fib_table_1}
-| | | Run Keyword Unless | ${testpmd_mac}
+| | | Run Keyword If | not ${testpmd_mac}
| | | ... | Vpp Route Add | ${dut1} | 10.0.0.0 | 8 | gateway=1.1.2.1
| | | ... | interface=${dut1-vhost-${number}-if2} | vrf=${fib_table_2}
-| | | Run Keyword Unless | ${testpmd_mac}
+| | | Run Keyword If | not ${testpmd_mac}
| | | ... | Vpp Route Add | ${dut2} | 20.0.0.0 | 8 | gateway=1.1.1.1
| | | ... | interface=${dut2-vhost-${number}-if1} | vrf=${fib_table_1}
-| | | Run Keyword Unless | ${testpmd_mac}
+| | | Run Keyword If | not ${testpmd_mac}
| | | ... | Vpp Route Add | ${dut2} | 10.0.0.0 | 8 | gateway=1.1.2.1
| | | ... | interface=${dut2-vhost-${number}-if2} | vrf=${fib_table_2}
| | | Run Keyword If | ${testpmd_mac}
diff --git a/resources/libraries/robot/ip/ip6.robot b/resources/libraries/robot/ip/ip6.robot
index ec22c5511b..506e5d844a 100644
--- a/resources/libraries/robot/ip/ip6.robot
+++ b/resources/libraries/robot/ip/ip6.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -84,17 +84,17 @@
| | ... | Vpp Route Add | ${dut2} | 2001:1::0 | 64 | gateway=2001:3::1
| | ... | interface=${DUT2_${int}1}[0]
| |
-| | Run Keyword Unless | '${remote_host1_ip}' == '${NONE}'
+| | Run Keyword If | '${remote_host1_ip}' != '${NONE}'
| | ... | Vpp Route Add | ${dut1} | ${remote_host1_ip} | 128
| | ... | gateway=2001:1::2 | interface=${DUT1_${int}1}[0]
-| | Run Keyword Unless | '${remote_host2_ip}' == '${NONE}'
+| | Run Keyword If | '${remote_host2_ip}' != '${NONE}'
| | ... | Vpp Route Add | ${dut} | ${remote_host2_ip} | 128
| | ... | gateway=2001:2::2 | interface=${dut_if2}
-| | Run Keyword Unless | '${remote_host1_ip}' == '${NONE}'
+| | Run Keyword If | '${remote_host1_ip}' != '${NONE}'
| | ... | Run Keyword If | '${dut2_status}' == 'PASS'
| | ... | Vpp Route Add | ${dut1} | ${remote_host1_ip} | 128
| | ... | gateway=2001:3::2 | interface=${DUT1_${int}2}[0]
-| | Run Keyword Unless | '${remote_host2_ip}' == '${NONE}'
+| | Run Keyword If | '${remote_host2_ip}' != '${NONE}'
| | ... | Run Keyword If | '${dut2_status}' == 'PASS'
| | ... | Vpp Route Add | ${dut2} | ${remote_host2_ip} | 128
| | ... | gateway=2001:3::1 | interface=${DUT2_${int}1}[0]
diff --git a/resources/libraries/robot/ip/nat.robot b/resources/libraries/robot/ip/nat.robot
index 75b8cce7b6..c04aef0f69 100644
--- a/resources/libraries/robot/ip/nat.robot
+++ b/resources/libraries/robot/ip/nat.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -51,14 +51,15 @@
| | ... | - n_sessions - Expected number of opened sessions.
| |
| | ${max_sessions}= | Compute Max Translations Per Thread
-| | ... | ${n_sessions} | ${thr_count_int}
-| | Enable NAT44 Plugin | ${dut1} | mode=${nat_mode} | sessions=${max_sessions}
+| | ... | ${n_sessions} | ${dp_count_int}
+| | Enable NAT44 ED Plugin | ${dut1} | mode=${nat_mode}
+| | ... | sessions=${max_sessions}
| | Configure inside and outside interfaces
| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${DUT1_${int}2}[0]
| | ${resetter} = | Set NAT44 Address Range
| | ... | ${dut1} | ${out_net} | ${out_net_end}
-| | ${ramp_up_duration} = | Get Ramp Up Duration
-| | Return From Keyword If | ${ramp_up_duration}
+| | ${ramp_up_rate} = | Get Ramp Up Rate
+| | Return From Keyword If | ${ramp_up_rate}
| | Set Test Variable | \${resetter}
# TODO: Remove when 'ip4.Initialize IPv4 forwarding in circular topology' KW
@@ -221,8 +222,8 @@
| |
| | ${resetter} = | Set DET44 Mapping
| | ... | ${node} | ${ip_in} | ${subnet_in} | ${ip_out} | ${subnet_out}
-| | ${ramp_up_duration} = | Get Ramp Up Duration
-| | Return From Keyword If | ${ramp_up_duration}
+| | ${ramp_up_rate} = | Get Ramp Up Rate
+| | Return From Keyword If | ${ramp_up_rate}
| | Set Test Variable | \${resetter}
| Initialize NAT44 deterministic mode in circular topology
diff --git a/resources/libraries/robot/l2/l2_bridge_domain.robot b/resources/libraries/robot/l2/l2_bridge_domain.robot
index f54d1685c4..00044e1253 100644
--- a/resources/libraries/robot/l2/l2_bridge_domain.robot
+++ b/resources/libraries/robot/l2/l2_bridge_domain.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 PANTHEON.tech and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# Copyright (c) 2023 PANTHEON.tech and/or its affiliates.
# 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:
@@ -491,18 +491,14 @@
| | Set interfaces in path up
| | ${dut1_eth_bond_if1}= | VPP Create Bond Interface
| | ... | ${dut1} | ${bond_mode} | ${lb_mode}
-| | Set Interface State | ${dut1} | ${dut1_eth_bond_if1} | up
-| | VPP Set interface MTU | ${dut1} | ${dut1_eth_bond_if1}
| | FOR | ${pf} | IN RANGE | 1 | ${nic_pfs} + 1
| | | ${_even}= | Evaluate | ${pf} % 2
-| | | Run Keyword Unless | ${even}
+| | | Run Keyword If | not ${even}
| | | ... | VPP Add Bond Member
| | | ... | ${dut1} | ${DUT1_${int}${pf}}[0] | ${dut1_eth_bond_if1}
| | END
| | ${dut2_eth_bond_if1}= | VPP Create Bond Interface
| | ... | ${dut2} | ${bond_mode} | ${lb_mode}
-| | Set Interface State | ${dut2} | ${dut2_eth_bond_if1} | up
-| | VPP Set interface MTU | ${dut2} | ${dut2_eth_bond_if1}
| | FOR | ${pf} | IN RANGE | 1 | ${nic_pfs} + 1
| | | ${_even}= | Evaluate | ${pf} % 2
| | | Run Keyword If | ${even}
diff --git a/resources/libraries/robot/l2/l2_patch.robot b/resources/libraries/robot/l2/l2_patch.robot
index b1a53ef4e3..0a0d19c0b3 100644
--- a/resources/libraries/robot/l2/l2_patch.robot
+++ b/resources/libraries/robot/l2/l2_patch.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/robot/l2/l2_traffic.robot b/resources/libraries/robot/l2/l2_traffic.robot
index 25699b14c7..36ff3e7fe4 100644
--- a/resources/libraries/robot/l2/l2_traffic.robot
+++ b/resources/libraries/robot/l2/l2_traffic.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/robot/l2/l2_xconnect.robot b/resources/libraries/robot/l2/l2_xconnect.robot
index 2cdba5b4d2..b782602827 100644
--- a/resources/libraries/robot/l2/l2_xconnect.robot
+++ b/resources/libraries/robot/l2/l2_xconnect.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -243,18 +243,14 @@
| | Set interfaces in path up
| | ${dut1_eth_bond_if1}= | VPP Create Bond Interface
| | ... | ${dut1} | ${bond_mode} | ${lb_mode}
-| | Set Interface State | ${dut1} | ${dut1_eth_bond_if1} | up
-| | VPP Set interface MTU | ${dut1} | ${dut1_eth_bond_if1}
| | FOR | ${pf} | IN RANGE | 1 | ${nic_pfs} + 1
| | | ${_even}= | Evaluate | ${pf} % 2
-| | | Run Keyword Unless | ${even}
+| | | Run Keyword If | not ${even}
| | | ... | VPP Add Bond Member
| | | ... | ${dut1} | ${DUT1_${int}${pf}}[0] | ${dut1_eth_bond_if1}
| | END
| | ${dut2_eth_bond_if1}= | VPP Create Bond Interface
| | ... | ${dut2} | ${bond_mode} | ${lb_mode}
-| | Set Interface State | ${dut2} | ${dut2_eth_bond_if1} | up
-| | VPP Set interface MTU | ${dut2} | ${dut2_eth_bond_if1}
| | FOR | ${pf} | IN RANGE | 1 | ${nic_pfs} + 1
| | | ${_even}= | Evaluate | ${pf} % 2
| | | Run Keyword If | ${even}
diff --git a/resources/libraries/robot/l2/tagging.robot b/resources/libraries/robot/l2/tagging.robot
index 273384c5cc..843b25d958 100644
--- a/resources/libraries/robot/l2/tagging.robot
+++ b/resources/libraries/robot/l2/tagging.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -82,24 +82,24 @@
| | ... | \| ${dut1_if2} \| 10 \|
| |
| | Set Interface State | ${DUT1} | ${INT1} | up
-| | Run Keyword Unless | ${DUT2} == ${None}
+| | Run Keyword If | ${DUT2} != ${None}
| | ... | Set Interface State | ${DUT2} | ${INT2} | up
| | ${INT1_NAME}= | Get interface name | ${DUT1} | ${INT1}
-| | ${INT2_NAME}= | Run Keyword Unless | ${DUT2} == ${None}
+| | ${INT2_NAME}= | Run Keyword If | ${DUT2} != ${None}
| | ... | Get interface name | ${DUT2} | ${INT2}
| | ${subif_name_1} | ${subif_index_1}= | Create Vlan Subinterface
| | ... | ${DUT1} | ${INT1_NAME} | ${SUB_ID}
| | ${subif_name_2} | ${subif_index_2}=
-| | ... | Run Keyword Unless | ${DUT2} == ${None}
+| | ... | Run Keyword If | ${DUT2} != ${None}
| | ... | Create Vlan Subinterface | ${DUT2} | ${INT2_NAME} | ${SUB_ID}
| | Set Interface State | ${DUT1} | ${subif_index_1} | up
-| | Run Keyword Unless | ${DUT2} == ${None}
+| | Run Keyword If | ${DUT2} != ${None}
| | ... | Set Interface State | ${DUT2} | ${subif_index_2} | up
| | Set Test Variable | ${subif_name_1}
| | Set Test Variable | ${subif_index_1}
-| | Run Keyword Unless | ${DUT2} == ${None}
+| | Run Keyword If | ${DUT2} != ${None}
| | ... | Set Test Variable | ${subif_name_2}
-| | Run Keyword Unless | ${DUT2} == ${None}
+| | Run Keyword If | ${DUT2} != ${None}
| | ... | Set Test Variable | ${subif_index_2}
| Configure L2 tag rewrite method on interfaces
@@ -115,7 +115,7 @@
| | ... | - TAG_REWRITE_METHOD - Method of tag rewrite.
| |
| | L2 Vlan tag rewrite | ${DUT1} | ${SUB_INT1} | ${TAG_REWRITE_METHOD}
-| | Run Keyword Unless | ${DUT2} == ${None}
+| | Run Keyword If | ${DUT2} != ${None}
| | ... | L2 Vlan tag rewrite | ${DUT2} | ${SUB_INT2} | ${TAG_REWRITE_METHOD}
| Configure L2 tag rewrite method on interface
diff --git a/resources/libraries/robot/lb/load_balancer.robot b/resources/libraries/robot/lb/load_balancer.robot
index 4c358a47ba..a44a92d58e 100644
--- a/resources/libraries/robot/lb/load_balancer.robot
+++ b/resources/libraries/robot/lb/load_balancer.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2021 Intel and/or its affiliates.
# 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:
diff --git a/resources/libraries/robot/nginx/default.robot b/resources/libraries/robot/nginx/default.robot
new file mode 100644
index 0000000000..5126da5858
--- /dev/null
+++ b/resources/libraries/robot/nginx/default.robot
@@ -0,0 +1,61 @@
+# Copyright (c) 2021 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Library | resources.libraries.python.InterfaceUtil
+| Library | resources.libraries.python.NginxConfigGenerator
+| Library | Collections
+
+*** Keywords ***
+| Apply Nginx configuration on DUT
+| | [Documentation]
+| | ... | Setup for suites which uses VCL or LDP Nginx on DUT.
+| |
+| | ... | *Arguments:*
+| | ... | - dut - DUT node.
+| | ... | Type: string
+| | ... | - phy_cores - vpp used phy cores number.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Apply Nginx configuration on DUT \| ${dut} | ${phy_cores}
+| |
+| | [Arguments] | ${dut} | ${phy_cores}
+| |
+| | Import Library | resources.libraries.python.NginxConfigGenerator
+| | ... | WITH NAME | nc_manager
+| | Run Keyword | nc_manager.Set Node | ${dut}
+| | Run Keyword | nc_manager.Set Nginx Path | ${packages_dir} | ${nginx_version}
+| | Run Keyword | nc_manager.Add Worker Processes | ${phy_cores} | ${smt_used}
+| | Run Keyword | nc_manager.Add Master Process
+| | Run Keyword | nc_manager.Add Daemon
+| | Run Keyword | nc_manager.Add Worker Rlimit Nofile
+| | Run Keyword | nc_manager.Add Events Use
+| | Run Keyword | nc_manager.Add Events Worker Connections
+| | Run Keyword | nc_manager.Add Events Accept Mutex
+| | Run Keyword | nc_manager.Add Events Multi Accept
+| | Run Keyword | nc_manager.Add Http Access Log
+| | Run Keyword | nc_manager.Add Http Include
+| | Run Keyword | nc_manager.Add Http Default Type
+| | Run Keyword | nc_manager.Add Http Sendfile
+| | Run Keyword | nc_manager.Add Http Keepalive Timeout | ${keep_time}
+| | Run Keyword If | ${keep_time} > 0
+| | ... | nc_manager.Add Http Keepalive Requests | ${r_total}
+| | Run Keyword | nc_manager.Add Http Server Listen | ${listen_port}
+| | Run Keyword | nc_manager.Add Http Server Root
+| | Run Keyword | nc_manager.Add Http Server Index
+| | Run Keyword | nc_manager.Add Http Server Location | ${0}
+| | Run Keyword | nc_manager.Add Http Server Location | ${64}
+| | Run Keyword | nc_manager.Add Http Server Location | ${1024}
+| | Run Keyword | nc_manager.Add Http Server Location | ${2048}
+| | Run Keyword | nc_manager.Apply Config \ No newline at end of file
diff --git a/resources/libraries/robot/nsim/nsim.robot b/resources/libraries/robot/nsim/nsim.robot
index 4b5248ad94..042aedd8b0 100644
--- a/resources/libraries/robot/nsim/nsim.robot
+++ b/resources/libraries/robot/nsim/nsim.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/robot/overlay/gtpu.robot b/resources/libraries/robot/overlay/gtpu.robot
new file mode 100644
index 0000000000..be82ca0fd5
--- /dev/null
+++ b/resources/libraries/robot/overlay/gtpu.robot
@@ -0,0 +1,75 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Library | resources.libraries.python.InterfaceUtil
+| Library | resources.libraries.python.IPUtil
+|
+| Documentation | GTPU keywords.
+
+*** Keywords ***
+| Initialize IP4 forwarding with GTPU tunnel in 3-node circular topology
+| | [Documentation]
+| | ... | Set UP state on VPP interfaces in path on nodes in 3-node circular
+| | ... | topology. Create GTPU tunnel on both DUT nodes, setup IPv4 adresses
+| | ... | with /30 prefix on DUT1-DUT2 link, and set routing on both DUT nodes
+| | ... | with prefix /24 and next hop of neighbour DUT interface. Gtpu offload
+| | ... | rx will be enabled on both DUT nodes if offload is set to true.
+| |
+| | ... | *Arguments:*
+| | ... | - offload - False or True. Type: bool
+| |
+| | [Arguments] | ${offload}=${False}
+| |
+| | VPP Interface Set IP Address | ${dut1} | ${DUT1_${int}1}[0]
+| | ... | 10.10.10.1 | 24
+| | VPP Interface Set IP Address | ${dut1} | ${DUT1_${int}2}[0]
+| | ... | 1.1.1.2 | 30
+| | VPP Interface Set IP Address | ${dut2} | ${DUT2_${int}1}[0]
+| | ... | 1.1.1.1 | 30
+| | VPP Interface Set IP Address | ${dut2} | ${DUT2_${int}2}[0]
+| | ... | 20.20.20.1 | 24
+| |
+| | VPP Add IP Neighbor
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | 10.10.10.2 | ${TG_pf1_mac}[0]
+| | VPP Add IP Neighbor
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | 1.1.1.1 | ${DUT2_${int}1_mac}[0]
+| | VPP Add IP Neighbor
+| | ... | ${dut2} | ${DUT2_${int}1}[0] | 1.1.1.2 | ${DUT1_${int}2_mac}[0]
+| | VPP Add IP Neighbor
+| | ... | ${dut2} | ${DUT2_${int}2}[0] | 20.20.20.2 | ${TG_pf2_mac}[0]
+| |
+| | ${dut1_tunnel_if_index}= | Create GTPU Tunnel Interface | ${dut1}
+| | ... | source_ip=1.1.1.2 | destination_ip=1.1.1.1 | teid=${10}
+| | ${dut2_tunnel_if_index}= | Create GTPU Tunnel Interface | ${dut2}
+| | ... | source_ip=1.1.1.1 | destination_ip=1.1.1.2 | teid=${10}
+| |
+| | Set Interface State | ${dut1} | ${dut1_tunnel_if_index} | up
+| | Set Interface State | ${dut2} | ${dut2_tunnel_if_index} | up
+| |
+| | VPP Interface Set IP Address | ${dut1} | ${dut1_tunnel_if_index}
+| | ... | 10.10.1.2 | 24
+| | VPP Interface Set IP Address | ${dut2} | ${dut2_tunnel_if_index}
+| | ... | 10.10.1.1 | 24
+| |
+| | Vpp Route Add | ${dut1} | 20.20.20.0 | 24 | gateway=1.1.1.2
+| | ... | interface=${dut1_tunnel_if_index}
+| | Vpp Route Add | ${dut2} | 10.10.10.0 | 24 | gateway=1.1.1.1
+| | ... | interface=${dut2_tunnel_if_index}
+| |
+| | Run keyword if | ${offload} == ${True}
+| | ... | Vpp Enable GTPU Offload rx
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut1_tunnel_if_index}
+| | Run keyword if | ${offload} == ${True}
+| | ... | Vpp Enable GTPU Offload rx
+| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_tunnel_if_index}
diff --git a/resources/libraries/robot/overlay/lisp.robot b/resources/libraries/robot/overlay/lisp.robot
index 21036dc0c0..820a232338 100644
--- a/resources/libraries/robot/overlay/lisp.robot
+++ b/resources/libraries/robot/overlay/lisp.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -339,13 +339,13 @@
| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}1}[0] | 2001:1::2 | ${TG_pf1_mac}[0]
| | VPP Add IP Neighbor
-| | ... | ${dut2} | ${DUT2_${int}1}[0] | 2001:2::2 | ${TG_pf2_mac}[0]
-| | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_dut1_address}
| | ... | ${DUT2_${int}1_mac}[0]
| | VPP Add IP Neighbor
| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut1_dut2_address}
| | ... | ${DUT1_${int}2_mac}[0]
+| | VPP Add IP Neighbor
+| | ... | ${dut2} | ${DUT2_${int}2}[0] | 2001:2::2 | ${TG_pf2_mac}[0]
| Initialize LISP IPv4 over IPv6 forwarding in 3-node circular topology
| | [Documentation] | Custom setup of IPv4 over IPv6 topology on all DUT nodes \
diff --git a/resources/libraries/robot/overlay/lisp_api.robot b/resources/libraries/robot/overlay/lisp_api.robot
index d2245c3f9a..9d6bbeaf2d 100644
--- a/resources/libraries/robot/overlay/lisp_api.robot
+++ b/resources/libraries/robot/overlay/lisp_api.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/robot/overlay/lispgpe.robot b/resources/libraries/robot/overlay/lispgpe.robot
index 1fa84da721..53ca690621 100644
--- a/resources/libraries/robot/overlay/lispgpe.robot
+++ b/resources/libraries/robot/overlay/lispgpe.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/robot/overlay/srv6.robot b/resources/libraries/robot/overlay/srv6.robot
index 92c8220cb7..83ec8949a4 100644
--- a/resources/libraries/robot/overlay/srv6.robot
+++ b/resources/libraries/robot/overlay/srv6.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -263,7 +263,7 @@
| | ... | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_if1_ip6}
| | ... | ${DUT2_${int}1_mac}[0]
-| | Run Keyword Unless | ${dut2_status}
+| | Run Keyword If | not ${dut2_status}
| | ... | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_if1_ip6} | ${TG_pf2_mac}[0]
| | Run Keyword If | ${dut2_status}
@@ -367,16 +367,10 @@
| | Set up memif interfaces on DUT node | ${dut1} | ${sock1} | ${sock1}
| | ... | ${1} | dut1-memif-1-if1 | dut1-memif-1-if2 | ${rxq_count_int}
| | ... | ${rxq_count_int}
-| | VPP Set interface MTU | ${dut1} | ${dut1-memif-1-if1}
-| | VPP Set interface MTU | ${dut1} | ${dut1-memif-1-if2}
| | Run Keyword If | ${dut2_status}
| | ... | Set up memif interfaces on DUT node | ${dut2} | ${sock2} | ${sock2}
| | ... | ${1} | dut2-memif-1-if1 | dut2-memif-1-if2 | ${rxq_count_int}
| | ... | ${rxq_count_int}
-| | Run Keyword If | ${dut2_status}
-| | ... | VPP Set interface MTU | ${dut2} | ${dut2-memif-1-if1}
-| | Run Keyword If | ${dut2_status}
-| | ... | VPP Set interface MTU | ${dut2} | ${dut2-memif-1-if2}
| | FOR | ${dut} | IN | @{duts}
| | | Show Memif | ${nodes['${dut}']}
| | END
@@ -405,7 +399,7 @@
| | ... | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_if1_ip6}
| | ... | ${DUT2_${int}1_mac}[0]
-| | Run Keyword Unless | ${dut2_status}
+| | Run Keyword If | not ${dut2_status}
| | ... | VPP Add IP Neighbor
| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_if1_ip6} | ${TG_pf2_mac}[0]
| | Run Keyword If | ${dut2_status}
diff --git a/resources/libraries/robot/overlay/vxlan.robot b/resources/libraries/robot/overlay/vxlan.robot
index f98514e2a2..92da03eaf1 100644
--- a/resources/libraries/robot/overlay/vxlan.robot
+++ b/resources/libraries/robot/overlay/vxlan.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/robot/performance/performance_actions.robot b/resources/libraries/robot/performance/performance_actions.robot
index c28b2ebdc8..1d2ea52274 100644
--- a/resources/libraries/robot/performance/performance_actions.robot
+++ b/resources/libraries/robot/performance/performance_actions.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,23 +26,177 @@
| | Run Keyword If | ${extended_debug}==${True}
| | ... | Perf Stat On All DUTs | ${nodes} | cpu_list=${cpu_alloc_str}
-| Additional Statistics Action For clear-show-runtime-with-traffic
+| Additional Statistics Action For trex-runtime
+| | [Documentation]
+| | ... | Additional Statistics Action for T-Rex telemetry counters with
+| | ... | running traffic.
+| |
+| | ... | See documentation of the called keyword for required test variables.
+| |
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | ${ramp_up_rate} = | Get Ramp Up Rate
+| | ${runtime_duration} = | Get Runtime Duration
+| | ${runtime_rate} = | Get Runtime Rate
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | ${use_latency} = | Get Use Latency
+| | Send traffic on tg
+| | ... | duration=${-1}
+| | ... | rate=${runtime_rate}
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | async_call=${True}
+| | ... | ppta=${ppta}
+| | ... | use_latency=${use_latency}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
+| | ... | duration_limit=${0.0}
+| | ... | ramp_up_duration=${ramp_up_duration}
+| | ... | ramp_up_rate=${ramp_up_rate}
+| | Sleep | 1s
+| | Stop traffic on tg
+
+| Additional Statistics Action For vpp-runtime
| | [Documentation]
| | ... | Additional Statistics Action for clear and show runtime counters with
| | ... | running traffic.
| |
| | ... | See documentation of the called keyword for required test variables.
| |
-| | Clear and show runtime counters with running traffic
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | ${ramp_up_rate} = | Get Ramp Up Rate
+| | ${runtime_duration} = | Get Runtime Duration
+| | ${runtime_rate} = | Get Runtime Rate
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | ${use_latency} = | Get Use Latency
+| | Send traffic on tg
+| | ... | duration=${-1}
+| | ... | rate=${runtime_rate}
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | async_call=${True}
+| | ... | ppta=${ppta}
+| | ... | use_latency=${use_latency}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
+| | ... | duration_limit=${0.0}
+| | ... | ramp_up_duration=${ramp_up_duration}
+| | ... | ramp_up_rate=${ramp_up_rate}
+| | Run Telemetry On All DUTs
+| | ... | ${nodes} | profile=vppctl_runtime.yaml
+| | ... | rate=${telemetry_rate} | export=${telemetry_export}
+| | Stop traffic on tg
+
+| Additional Statistics Action For bpf-runtime
+| | [Documentation]
+| | ... | Additional Statistics Action for linux bundle counters with
+| | ... | running traffic.
+| |
+| | ... | See documentation of the called keyword for required test variables.
+| |
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | ${ramp_up_rate} = | Get Ramp Up Rate
+| | ${runtime_duration} = | Get Runtime Duration
+| | ${runtime_rate} = | Get Runtime Rate
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | ${use_latency} = | Get Use Latency
+| | Send traffic on tg
+| | ... | duration=${-1}
+| | ... | rate=${runtime_rate}
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | async_call=${True}
+| | ... | ppta=${ppta}
+| | ... | use_latency=${use_latency}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
+| | ... | duration_limit=${0.0}
+| | ... | ramp_up_duration=${ramp_up_duration}
+| | ... | ramp_up_rate=${ramp_up_rate}
+| | Run Telemetry On All DUTs
+| | ... | ${nodes} | profile=bpf_runtime.yaml
+| | ... | rate=${telemetry_rate} | export=${False}
+| | Stop traffic on tg
+
+| Additional Statistics Action For perf-stat-runtime
+| | [Documentation]
+| | ... | Additional Statistics Action for linux bundle counters with
+| | ... | running traffic.
+| |
+| | ... | See documentation of the called keyword for required test variables.
+| |
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | ${ramp_up_rate} = | Get Ramp Up Rate
+| | ${runtime_duration} = | Get Runtime Duration
+| | ${runtime_rate} = | Get Runtime Rate
+| | ${traffic_directions} = | Get Traffic Directions
+| | ${transaction_duration} = | Get Transaction Duration
+| | ${transaction_scale} = | Get Transaction Scale
+| | ${transaction_type} = | Get Transaction Type
+| | ${use_latency} = | Get Use Latency
+| | Send traffic on tg
+| | ... | duration=${-1}
+| | ... | rate=${runtime_rate}
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | async_call=${True}
+| | ... | ppta=${ppta}
+| | ... | use_latency=${use_latency}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
+| | ... | duration_limit=${0.0}
+| | ... | ramp_up_duration=${ramp_up_duration}
+| | ... | ramp_up_rate=${ramp_up_rate}
+| | Run Telemetry On All DUTs
+| | ... | ${nodes} | profile=perf_stat_runtime.yaml
+| | ... | rate=${telemetry_rate} | export=${False}
+| | Stop traffic on tg
-| Additional Statistics Action For clear-show-runtime-with-iperf3
+| Additional Statistics Action For vpp-runtime-iperf3
| | [Documentation]
| | ... | Additional Statistics Action for clear and show runtime counters with
| | ... | iPerf3 running traffic.
| |
| | ... | See documentation of the called keyword for required test variables.
| |
-| | Clear and show runtime counters with running iperf3
+| | ${runtime_duration} = | Get Runtime Duration
+| | ${pids}= | iPerf Client Start Remote Exec
+| | | ... | ${nodes['${iperf_client_node}']}
+| | | ... | duration=${-1}
+| | | ... | rate=${None}
+| | | ... | frame_size=${None}
+| | | ... | async_call=True
+| | | ... | warmup_time=0
+| | | ... | traffic_directions=${1}
+| | | ... | namespace=${iperf_client_namespace}
+| | | ... | udp=${iperf_client_udp}
+| | | ... | host=${iperf_server_bind}
+| | | ... | bind=${iperf_client_bind}
+| | | ... | affinity=${iperf_client_affinity}
+| | Run Telemetry On All DUTs
+| | ... | ${nodes} | profile=vppctl_runtime.yaml
+| | ... | rate=${telemetry_rate} | export=${telemetry_export}
+| | iPerf Client Stop Remote Exec | ${nodes['${iperf_client_node}']} | ${pids}
| Additional Statistics Action For noop
| | [Documentation]
@@ -50,23 +204,13 @@
| |
| | No operation
-| Additional Statistics Action For vpp-clear-runtime
-| | [Documentation]
-| | ... | Additional Statistics Action for clear VPP runtime.
-| |
-| | VPP Clear Runtime On All DUTs | ${nodes}
-
| Additional Statistics Action For vpp-clear-stats
| | [Documentation]
| | ... | Additional Statistics Action for clear VPP statistics.
| |
-| | Clear Statistics On All DUTs | ${nodes}
-
-| Additional Statistics Action For vpp-enable-elog
-| | [Documentation]
-| | ... | Additional Statistics Action for enable VPP elog trace.
-| |
-| | VPP Enable Elog Traces On All DUTs | ${nodes}
+| | Run Telemetry On All DUTs
+| | ... | ${nodes} | profile=vppctl_clear_stats.yaml
+| | ... | export=${False}
| Additional Statistics Action For vpp-enable-packettrace
| | [Documentation]
@@ -75,12 +219,6 @@
| | Run Keyword If | ${extended_debug}==${True}
| | ... | VPP Enable Traces On All DUTs | ${nodes} | fail_on_error=${False}
-| Additional Statistics Action For vpp-show-elog
-| | [Documentation]
-| | ... | Additional Statistics Action for show VPP elog trace.
-| |
-| | Show Event Logger On All DUTs | ${nodes}
-
| Additional Statistics Action For vpp-show-packettrace
| | [Documentation]
| | ... | Additional Statistics Action for show VPP packet trace.
@@ -88,14 +226,10 @@
| | Run Keyword If | ${extended_debug}==${True}
| | ... | Show Packet Trace On All Duts | ${nodes} | maximum=${100}
-| Additional Statistics Action For vpp-show-runtime
-| | [Documentation]
-| | ... | Additional Statistics Action for show VPP runtime.
-| |
-| | VPP Show Runtime On All DUTs | ${nodes}
-
| Additional Statistics Action For vpp-show-stats
| | [Documentation]
| | ... | Additional Statistics Action for show VPP statistics.
| |
-| | Show Statistics On All DUTs | ${nodes}
+| | Run Telemetry On All DUTs
+| | ... | ${nodes} | profile=vppctl_show_stats.yaml
+| | ... | export=${False}
diff --git a/resources/libraries/robot/performance/performance_display.robot b/resources/libraries/robot/performance/performance_display.robot
index e8dfdbbfbd..6ee493a17e 100644
--- a/resources/libraries/robot/performance/performance_display.robot
+++ b/resources/libraries/robot/performance/performance_display.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -17,34 +17,30 @@
| ... | This includes checks to fail test.
*** Keywords ***
-| Check NDRPDR interval validity
+| Compute Bandwidth
| | [Documentation]
-| | ... | Extract loss ratio of lower bound of the interval.
-| | ... | Fail if it does not reach the allowed value.
-| |
+| | ... | Compute (bidir) bandwidth from given (unidir) transaction rate.
+| | ...
+| | ... | This keyword reads \${ppta} and \${avg_aggregated_frame_size} set
+| | ... | elsewhere. The implementation should work for both pps and cps rates.
+| | ... |
| | ... | *Arguments:*
-| | ... | - interval - Measured interval. Type: ReceiveRateInterval
-| | ... | - packet_loss_ratio - Accepted loss (0.0 for NDR). Type: float
+| | ... | - tps - Transaction rate (unidirectional) [tps]. Type: float
+| | ...
+| | ... | *Returns:*
+| | ... | - Computed bandwidth in Gbps.
+| | ... | - Computed aggregated packet rate in pps.
| |
| | ... | *Example:*
| |
-| | ... | \| Check NDRPDR interval validity \| \${result.pdr_interval} \
-| | ... | \| \${0.005} \|
-| |
-| | [Arguments] | ${interval} | ${packet_loss_ratio}=${0.0}
-| |
-| | ${lower_bound} = | Set Variable | ${interval.measured_low}
-| | ${lower_bound_lf} = | Set Variable | ${lower_bound.loss_fraction}
-| | Return From Keyword If | ${lower_bound_lf} <= ${packet_loss_ratio}
-| | Set Test Variable | \${rate_for_teardown} | ${lower_bound_lf}
-| | ${message}= | Catenate | SEPARATOR=${SPACE}
-| | ... | Minimal rate loss fraction ${lower_bound_lf}
-| | ... | does not reach target ${packet_loss_ratio}.
-| | ${message_zero} = | Set Variable | Zero packets forwarded!
-| | ${message_other} = | Set Variable | ${lower_bound.loss_count} packets lost.
-| | ${message} = | Set Variable If | ${lower_bound_lf} >= 1.0
-| | ... | ${message}${\n}${message_zero} | ${message}${\n}${message_other}
-| | Fail | ${message}
+| | ... | |\ \${bandwidth} \| \${pps} = \| Compute Bandwidth \| \${12345.67} \|
+| |
+| | [Arguments] | ${tps}
+| |
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${pps} = | Evaluate | ${tps} * ${ppta}
+| | ${bandwidth} = | Evaluate | ${pps} * (${avg_aggregated_frame_size}+20)*8/1e9
+| | Return From Keyword | ${bandwidth} | ${pps}
| Display Reconfig Test Message
| | [Documentation]
@@ -52,8 +48,8 @@
| | ... | due to reconfiguration under traffic.
| |
| | ... | *Arguments:*
-| | ... | - result - Result of bidirectional measurtement.
-| | ... | Type: ReceiveRateMeasurement
+| | ... | - result - Result of MLRsearch invocation for one search goal.
+| | ... | Type: StatInterval
| |
| | ... | *Example:*
| |
@@ -61,23 +57,20 @@
| |
| | [Arguments] | ${result}
| |
-| | ${ppta} = | Get Packets Per Transaction Aggregated
-| | ${packet_rate} = | Evaluate | ${result.target_tr} * ${ppta}
+| | ${bandwidth} | ${packet_rate}= | Compute Bandwidth | ${result.intended_load}
| | ${packet_loss} = | Set Variable | ${result.loss_count}
| | ${time_loss} = | Evaluate | ${packet_loss} / ${packet_rate}
| | Set Test Message | Packets lost due to reconfig: ${packet_loss}
| | Set Test Message | ${\n}Implied time lost: ${time_loss} | append=yes
+| | Export Reconf Result | ${packet_rate} | ${packet_loss} | ${bandwidth * 1e9}
| Display result of NDRPDR search
| | [Documentation]
-| | ... | Display result of NDR+PDR search, both quantities, both bounds,
-| | ... | aggregate in units given by trasaction type, e.g. by default
-| | ... | in packet per seconds and Gbps total bandwidth
+| | ... | Display result of NDR+PDR search, both quantities, aggregated,
+| | ... | conditional throughput only, in units given by trasaction type,
+| | ... | e.g. by default in packet per seconds and Gbps total bandwidth
| | ... | (for initial packet size).
-| | ... |
-| | ... | The bound to display is encoded as target rate, it is assumed
-| | ... | it is in transactions per second. Bidirectional traffic
-| | ... | transaction is understood as having 2 packets, for this purpose.
+| | ... | The lower bounds in the result are assumed to be valid.
| | ... |
| | ... | Througput is calculated as:
| | ... | Sum of measured rate over streams
@@ -90,8 +83,8 @@
| | ... | - transaction_type - String identifier to determine how to count
| | ... | transactions. Default is "packet".
| | ... | *Arguments:*
-| | ... | - result - Measured result data. Aggregate rate, tps or pps.
-| | ... | Type: NdrPdrResult
+| | ... | - result - Measured result data Tps. Type: List[TrimmedStat]
+| | ... | *Returns:* NDR and PDR: Unidirectional intended load as tps float.
| |
| | ... | *Example:*
| |
@@ -99,21 +92,18 @@
| |
| | [Arguments] | ${result}
| |
-| | Display single bound | NDR_LOWER
-| | ... | ${result.ndr_interval.measured_low.target_tr}
-| | ... | ${result.ndr_interval.measured_low.latency}
-| | Display single bound | NDR_UPPER
-| | ... | ${result.ndr_interval.measured_high.target_tr}
-| | Display single bound | PDR_LOWER
-| | ... | ${result.pdr_interval.measured_low.target_tr}
-| | ... | ${result.pdr_interval.measured_low.latency}
-| | Display single bound | PDR_UPPER
-| | ... | ${result.pdr_interval.measured_high.target_tr}
+| | ${ndr} = | Convert To Number | ${result[0].relevant_lower_bound}
+| | ${pdr} = | Convert To Number | ${result[1].relevant_lower_bound}
+| | Display single bound | NDR | ${result[0].conditional_throughput}
+| | Display single bound | PDR | ${result[1].conditional_throughput}
+| | Return From Keyword | ${ndr} | ${pdr}
| Display result of soak search
| | [Documentation]
| | ... | Display result of soak search, avg+-stdev, as upper/lower bounds.
| | ... | See Display single bound for units used.
+| | ... | The displayed values are bidirectional, based on conditional
+| | ... | throughput. The returned
| |
| | ... | *Test (or broader scope) variables read:*
| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
@@ -123,7 +113,6 @@
| | ... | *Arguments:*
| | ... | - avg - Estimated average critical load [pps]. Type: float
| | ... | - stdev - Standard deviation of critical load [pps]. Type: float
-| |
| | ... | *Returns:*
| | ... | - Lower and upper bound of critical load [pps]. Type: 2-tuple of float
| |
@@ -144,14 +133,14 @@
| Display single bound
| | [Documentation]
| | ... | Compute and display one bound of NDR+PDR (or soak) search result.
-| | ... | If the latency string is present, it is displayed as well.
| | ... |
| | ... | The bound to display is given as target transfer rate, it is assumed
-| | ... | it is in transactions per second. Bidirectional traffic
+| | ... | valid and in transactions per second. Bidirectional traffic
| | ... | transaction is understood as having 2 packets, for this purpose.
| | ... |
-| | ... | Pps values are aggregate in packet per seconds,
+| | ... | Pps values are aggregated, in packet per seconds
| | ... | and Gbps total bandwidth (for initial packet size).
+| | ... | If the latency string is present, it is displayed as well.
| | ... |
| | ... | Througput is calculated as:
| | ... | Sum of measured rate over streams
@@ -164,22 +153,24 @@
| | ... | transactions. Default is "packet".
| | ... | *Arguments:*
| | ... | - text - Flavor text describing which bound is this. Type: string
-| | ... | - tps - Transaction rate [tps]. Type: float
+| | ... | - tps - Conditional throughput [tps]. Type: Union[float, DiscreteLoad]
| | ... | - latency - Latency data to display if non-empty. Type: string
| |
| | ... | *Example:*
| |
-| | ... | \| Display single bound \| NDR lower bound \| \${12345.67} \
+| | ... | \| Display single bound \| NDR \| \${12345.67} \
| | ... | \| latency=\${EMPTY} \|
| |
| | [Arguments] | ${text} | ${tps} | ${latency}=${EMPTY}
| |
+| | ${tps} = | Convert To Number | ${tps}
| | ${transaction_type} = | Get Transaction Type
| | Run Keyword And Return If | """_cps""" in """${transaction_type}"""
-| | ... | Display single cps bound | ${text} | ${tps} | ${latency}
-| | Display single pps bound | ${text} | ${tps} | ${latency}
+| | ... | Display Single CPS Bound | ${text} | ${tps} | ${latency}
+| | Run Keyword And Return
+| | ... | Display Single PPS Bound | ${text} | ${tps} | ${latency}
-| Display single cps bound
+| Display Single CPS Bound
| | [Documentation]
| | ... | Display one bound of NDR+PDR search for CPS tests.
| | ... | The bounds are expressed as transactions per second.
@@ -192,20 +183,21 @@
| |
| | ... | *Example:*
| |
-| | ... | \| Display single cps bound \| NDR lower bound \| \${12345.67} \
+| | ... | \| Display Single CPS Bound \| NDR lower bound \| \${12345.67} \
| | ... | \| latency=\${EMPTY} \|
| |
| | [Arguments] | ${text} | ${tps} | ${latency}=${EMPTY}
| |
| | Set Test Message | ${\n}${text}: ${tps} CPS | append=yes
-| | Return From Keyword If | not """${latency}"""
-| | Set Test Message | ${\n}LATENCY [min/avg/max/hdrh] per stream: ${latency}
-| | ... | append=yes
+| | ${bandwidth} | ${pps} = | Compute Bandwidth | ${tps}
+| | Export Search Bound | ${text} | ${tps} | cps | ${bandwidth * 1e9}
+| | Run Keyword If | """${latency}""" | Set Test Message
+| | ... | ${\n}LATENCY [min/avg/max/hdrh] per stream: ${latency} | append=yes
-| Display single pps bound
+| Display Single PPS Bound
| | [Documentation]
-| | ... | Display one pps bound of NDR+PDR search,
-| | ... | aggregate in packet per seconds and Gbps total bandwidth
+| | ... | Display one pps bound of NDR+PDR search, aggregated,
+| | ... | in packet per seconds and Gbps total bandwidth
| | ... | (for initial packet size).
| | ... |
| | ... | The bound to display is given as target transfer rate, it is assumed
@@ -225,16 +217,14 @@
| |
| | ... | *Example:*
| |
-| | ... | \| Display single pps bound \| NDR lower bound \| \${12345.67} \
+| | ... | \| Display Single PPS Bound \| NDR lower bound \| \${12345.67} \
| | ... | \| latency=\${EMPTY} \|
| |
| | [Arguments] | ${text} | ${tps} | ${latency}=${EMPTY}
| |
-| | ${ppta} = | Get Packets Per Transaction Aggregated
-| | ${pps} = | Evaluate | ${tps} * ${ppta}
-| | ${bandwidth} = | Evaluate | ${pps} * (${avg_frame_size}+20)*8 / 1e9
+| | ${bandwidth} | ${pps} = | Compute Bandwidth | ${tps}
| | Set Test Message | ${\n}${text}: ${pps} pps, | append=yes
| | Set Test Message | ${bandwidth} Gbps (initial) | append=yes
-| | Return From Keyword If | not """${latency}"""
-| | Set Test Message | ${\n}LATENCY [min/avg/max/hdrh] per stream: ${latency}
-| | ... | append=yes
+| | Export Search Bound | ${text} | ${pps} | pps | ${bandwidth * 1e9}
+| | Run Keyword If | """${latency}""" | Set Test Message
+| | ... | ${\n}LATENCY [min/avg/max/hdrh] per stream: ${latency} | append=yes
diff --git a/resources/libraries/robot/performance/performance_utils.robot b/resources/libraries/robot/performance/performance_utils.robot
index d45adc6cf9..4211486a19 100644
--- a/resources/libraries/robot/performance/performance_utils.robot
+++ b/resources/libraries/robot/performance/performance_utils.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -13,11 +13,12 @@
*** Settings ***
| Library | Collections
+| Library | resources.libraries.python.model.ExportResult
| Library | resources.libraries.python.topology.Topology
| Library | resources.libraries.python.NodePath
-| Library | resources.libraries.python.PerfUtil
| Library | resources.libraries.python.InterfaceUtil
| Library | resources.libraries.python.Iperf3
+| Library | resources.libraries.python.TelemetryUtil
| Library | resources.libraries.python.TrafficGenerator
| Library | resources.libraries.python.TrafficGenerator.OptimizedSearch
| Library | resources.libraries.python.TrafficGenerator.TGDropRateSearchImpl
@@ -38,58 +39,14 @@
| ${heap_size_mult}= | ${1}
*** Keywords ***
-| Clear and show runtime counters with running traffic
-| | [Documentation]
-| | ... | Start traffic at specified rate then clear runtime counters on all
-| | ... | DUTs. Wait for specified amount of time and capture runtime counters
-| | ... | on all DUTs. Finally stop traffic.
-| |
-| | ... | TODO: Support resetter if this is not the first trial-ish action?
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Clear and show runtime counters with running traffic \|
-| |
-| | ${ppta} = | Get Packets Per Transaction Aggregated
-| | ${runtime_duration} = | Get Runtime Duration
-| | ${runtime_rate} = | Get Runtime Rate
-| | ${traffic_directions} = | Get Traffic Directions
-| | ${transaction_duration} = | Get Transaction Duration
-| | ${transaction_scale} = | Get Transaction Scale
-| | ${transaction_type} = | Get Transaction Type
-| | ${use_latency} = | Get Use Latency
-| | # Duration of -1 means we will stop traffic manually.
-| | Send traffic on tg
-| | ... | duration=${-1}
-| | ... | rate=${runtime_rate}
-| | ... | frame_size=${frame_size}
-| | ... | traffic_profile=${traffic_profile}
-| | ... | async_call=${True}
-| | ... | ppta=${ppta}
-| | ... | use_latency=${use_latency}
-| | ... | traffic_directions=${traffic_directions}
-| | ... | transaction_duration=${transaction_duration}
-| | ... | transaction_scale=${transaction_scale}
-| | ... | transaction_type=${transaction_type}
-| | ... | duration_limit=${0.0}
-| | FOR | ${action} | IN | @{pre_run_stats}
-| | | Run Keyword | Additional Statistics Action For ${action}
-| | END
-| | Sleep | ${runtime_duration}
-| | FOR | ${action} | IN | @{post_run_stats}
-| | | Run Keyword | Additional Statistics Action For ${action}
-| | END
-| | Stop traffic on tg
-
| Find critical load using PLRsearch
| | [Documentation]
| | ... | Find boundaries for troughput (of hardcoded target loss ratio)
| | ... | using PLRsearch algorithm.
| | ... | Display results as formatted test message.
| | ... | Fail if computed lower bound is 110% of the minimal rate or less.
-| | ... | Input rates are understood as uni-directional,
-| | ... | reported result contains aggregate rates.
-| | ... | Currently, the min_rate value is hardcoded to match test teardowns.
+| | ... | Input rates are unidirectional, in transaction per second.
+| | ... | Reported result may contain aggregated pps rates, depending on test.
| | ... | Call \${resetter} (if defined) to reset DUT state before each trial.
| |
| | ... | *Test (or broader scope) variables read:*
@@ -106,19 +63,38 @@
| |
| | # Get values via performance_vars.
| | ${max_rate} = | Get Max Rate
-| | ${min_rate} = | Get Min Rate
+| | ${min_rate_soft} = | Get Min Rate Soft
| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | ${ramp_up_rate} = | Get Ramp Up Rate
| | ${resetter} = | Get Resetter
| | ${traffic_directions} = | Get Traffic Directions
| | ${transaction_duration} = | Get Transaction Duration
| | ${transaction_scale} = | Get Transaction Scale
| | ${transaction_type} = | Get Transaction Type
| | ${use_latency} = | Get Use Latency
+| | # TRex needs a warmup to avoid unsent packets at half-max rate.
+| | Send traffic on tg
+| | ... | duration=1.0
+| | ... | rate=${max_rate}
+| | ... | frame_size=${frame_size}
+| | ... | traffic_profile=${traffic_profile}
+| | ... | async_call=${False}
+| | ... | duration_limit=${1.0}
+| | ... | ppta=${ppta}
+| | ... | traffic_directions=${traffic_directions}
+| | ... | transaction_duration=${transaction_duration}
+| | ... | transaction_scale=${transaction_scale}
+| | ... | transaction_type=${transaction_type}
+| | ... | use_latency=False
+| | ... | ramp_up_duration=${0.0}
+| | ... | ramp_up_rate=${0.0}
+| | # Ready for main search.
| | ${average} | ${stdev} = | Perform soak search
| | ... | frame_size=${frame_size}
| | ... | traffic_profile=${traffic_profile}
-| | ... | minimum_transmit_rate=${min_rate}
-| | ... | maximum_transmit_rate=${max_rate}
+| | ... | min_load=${min_rate_soft}
+| | ... | max_load=${max_rate}
| | ... | plr_target=${1e-7}
| | ... | tdpt=${0.1}
| | ... | initial_count=${50}
@@ -131,35 +107,43 @@
| | ... | transaction_duration=${transaction_duration}
| | ... | transaction_type=${transaction_type}
| | ... | use_latency=${use_latency}
+| | ... | ramp_up_duration=${ramp_up_duration}
+| | ... | ramp_up_rate=${ramp_up_rate}
| | ${lower} | ${upper} = | Display result of soak search
| | ... | ${average} | ${stdev}
| | Set Test Variable | \${rate for teardown} | ${lower}
-| | Should Not Be True | 1.1 * ${min_rate} > ${lower}
-| | ... | Lower bound ${lower} too small for unidirectional minimum ${min_rate}.
+| | # Stats at the discovered critical rate.
+| | Set Test Variable | ${telemetry_rate} | plr
+| | Set Test Variable | ${telemetry_export} | ${True}
+| | Send traffic at specified rate
+| | ... | rate=${lower}
+| | ... | trial_duration=${1.0}
+| | ... | trial_multiplicity=${1}
+| | ... | use_latency=${use_latency}
+| | ... | duration_limit=${1.0}
+| | Should Not Be True | 1.1 * ${min_rate_soft} > ${lower}
+| | ... | Lower bound ${lower} too small for unidir minimum ${min_rate_soft}.
| Find NDR and PDR intervals using optimized search
| | [Documentation]
| | ... | Find boundaries for RFC2544 compatible NDR and PDR values
| | ... | using an optimized search algorithm.
| | ... | Display findings as a formatted test message.
-| | ... | Fail if a resulting lower bound has too high loss fraction.
-| | ... | Input rates are understood as uni-directional,
-| | ... | reported result contains aggregate rates.
+| | ... | Fail if a resulting lower bound has too high loss ratio.
+| | ... | Input rates are unidirectional, in transaction per second.
+| | ... | Reported result may contain aggregated pps rates, depending on test.
| | ... | Additional latency measurements are performed for smaller loads,
| | ... | even if latency stream is disabled in search. Their results
| | ... | are also displayed.
| | ... | Finally, two measurements for runtime stats are done (not displayed).
-| | ... | Currently, the min_rate value is hardcoded to 90kpps,
-| | ... | allowing measurement at 10% of the discovered rate
-| | ... | without breaking latency streams.
| | ... | Call \${resetter} (if defined) to reset DUT state before each trial.
| |
| | ... | *Test (or broader scope) variables read:*
| | ... | - traffic_profile - Name of module defining traffc for measurements.
| | ... | Type: string
| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
-| | ... | string
-| | ... | - max_rate - Calculated maximal transmit rate [tps].
+| | ... | string.
+| | ... | - max_rate - Calculated maximal unidirectional transmit rate [tps].
| | ... | Type: float
| | ... | - resetter - Callable to reset DUT state before each trial.
| | ... | - transaction_scale - Number of ASTF transaction (zero if unlimited).
@@ -175,28 +159,29 @@
| | # Get values via performance_vars.
| | ${disable_latency} = | Get Disable Latency
| | ${max_rate} = | Get Max Rate
-| | ${min_rate} = | Get Min Rate
-| | # \${packet_loss_ratio} is used twice so it is worth a variable.
-| | ${packet_loss_ratio} = | Get Packet Loss Ratio
+| | ${min_rate_soft} = | Get Min Rate Soft
+| | ${loss_ratio} = | Get Packet Loss Ratio
| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | ${ramp_up_rate} = | Get Ramp Up Rate
| | ${resetter} = | Get Resetter
| | ${traffic_directions} = | Get Traffic Directions
| | ${transaction_duration} = | Get Transaction Duration
| | ${transaction_scale} = | Get Transaction Scale
| | ${transaction_type} = | Get Transaction Type
| | ${use_latency} = | Get Use Latency
-| | ${result} = | Perform optimized ndrpdr search
+| | ${result} = | Perform MLR Search
| | ... | frame_size=${frame_size}
| | ... | traffic_profile=${traffic_profile}
-| | ... | minimum_transmit_rate=${min_rate}
-| | ... | maximum_transmit_rate=${max_rate}
-| | ... | packet_loss_ratio=${packet_loss_ratio}
-| | ... | final_relative_width=${0.005}
-| | ... | final_trial_duration=${30.0}
+| | ... | min_load=${min_rate_soft}
+| | ... | max_load=${max_rate}
+| | ... | loss_ratio=${loss_ratio}
+| | ... | relative_width=${0.005}
| | ... | initial_trial_duration=${1.0}
-| | ... | number_of_intermediate_phases=${2}
-| | ... | timeout=${720.0}
-| | ... | doublings=${2}
+| | ... | final_trial_duration=${1.0}
+| | ... | duration_sum=${21.0}
+| | ... | preceding_targets=${2}
+| | ... | search_duration_max=${1200.0}
| | ... | ppta=${ppta}
| | ... | resetter=${resetter}
| | ... | traffic_directions=${traffic_directions}
@@ -204,19 +189,20 @@
| | ... | transaction_scale=${transaction_scale}
| | ... | transaction_type=${transaction_type}
| | ... | use_latency=${use_latency}
-| | Display result of NDRPDR search | ${result}
-| | Check NDRPDR interval validity | ${result.pdr_interval}
-| | ... | ${packet_loss_ratio}
-| | Check NDRPDR interval validity | ${result.ndr_interval}
-| | ${pdr} = | Set Variable | ${result.pdr_interval.measured_low.target_tr}
-| | ${ndr} = | Set Variable | ${result.ndr_interval.measured_low.target_tr}
-| | # We expect NDR and PDR to have different-looking stats.
+| | ... | ramp_up_duration=${ramp_up_duration}
+| | ... | ramp_up_rate=${ramp_up_rate}
+| | ${ndr} | ${pdr} = | Display result of NDRPDR search | ${result}
+| | # We expect NDR and PDR to have different-looking telemetry.
+| | Set Test Variable | ${telemetry_rate} | pdr
+| | Set Test Variable | ${telemetry_export} | ${True}
| | Send traffic at specified rate
| | ... | rate=${pdr}
| | ... | trial_duration=${1.0}
| | ... | trial_multiplicity=${1}
| | ... | use_latency=${use_latency}
| | ... | duration_limit=${1.0}
+| | Set Test Variable | ${telemetry_rate} | ndr
+| | Set Test Variable | ${telemetry_export} | ${True}
| | Run Keyword If | ${ndr} != ${pdr}
| | ... | Send traffic at specified rate
| | ... | rate=${ndr}
@@ -236,9 +222,8 @@
| Find Throughput Using MLRsearch
| | [Documentation]
| | ... | Find and return lower bound NDR (zero PLR)
-| | ... | aggregate throughput using MLRsearch algorithm.
-| | ... | Input rates are understood as uni-directional.
-| | ... | Currently, the min_rate value is hardcoded to match test teardowns.
+| | ... | throughput using MLRsearch algorithm.
+| | ... | Input and output rates are understood as uni-directional, in tps.
| | ... | Call \${resetter} (if defined) to reset DUT state before each trial.
| |
| | ... | *Test (or broader scope) variables read:*
@@ -246,7 +231,7 @@
| | ... | Type: string
| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
| | ... | string
-| | ... | - max_rate - Calculated maximal transmit rate [tps].
+| | ... | - max_rate - Calculated maximal unidirectional transmit rate [tps].
| | ... | Type: float
| | ... | - resetter - Callable to reset DUT state before each trial.
| | ... | - transaction_scale - Number of ASTF transaction (zero if unlimited).
@@ -254,33 +239,36 @@
| | ... | transactions. Default is "packet".
| |
| | ... | *Returns:*
-| | ... | - Lower bound for bi-directional throughput at given PLR. Type: float
+| | ... | - Lower bound for uni-directional tps throughput at given PLR.
+| | ... | Type: float
| |
| | ... | *Example:*
| |
| | ... | \| \${throughpt}= \| Find Throughput Using MLRsearch \|
| |
| | ${max_rate} = | Get Max Rate
-| | ${min_rate} = | Get Min Rate
+| | ${min_rate_soft} = | Get Min Rate Soft
| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | ${ramp_up_rate} = | Get Ramp Up Rate
| | ${resetter} = | Get Resetter
| | ${traffic_directions} = | Get Traffic Directions
| | ${transaction_duration} = | Get Transaction Duration
| | ${transaction_scale} = | Get Transaction Scale
| | ${transaction_type} = | Get Transaction Type
| | ${use_latency} = | Get Use Latency
-| | ${result} = | Perform optimized ndrpdr search
+| | ${result} = | Perform MLR Search
| | ... | frame_size=${frame_size}
| | ... | traffic_profile=${traffic_profile}
-| | ... | minimum_transmit_rate=${min_rate}
-| | ... | maximum_transmit_rate=${max_rate}
-| | ... | packet_loss_ratio=${0.0}
-| | ... | final_relative_width=${0.001}
-| | ... | final_trial_duration=${10.0}
+| | ... | min_load=${min_rate_soft}
+| | ... | max_load=${max_rate}
+| | ... | loss_ratio=${0.0}
+| | ... | relative_width=${0.001}
| | ... | initial_trial_duration=${1.0}
-| | ... | number_of_intermediate_phases=${1}
-| | ... | timeout=${720}
-| | ... | doublings=${2}
+| | ... | final_trial_duration=${1.0}
+| | ... | duration_sum=${11.0}
+| | ... | preceding_targets=${1}
+| | ... | search_duration_max=${1200}
| | ... | ppta=${ppta}
| | ... | resetter=${resetter}
| | ... | traffic_directions=${traffic_directions}
@@ -288,21 +276,22 @@
| | ... | transaction_scale=${transaction_scale}
| | ... | transaction_type=${transaction_type}
| | ... | use_latency=${use_latency}
-| | Check NDRPDR interval validity | ${result.pdr_interval}
-| | ... | ${0.0}
-| | Return From Keyword | ${result.pdr_interval.measured_low.target_tr}
+| | ... | ramp_up_duration=${ramp_up_duration}
+| | ... | ramp_up_rate=${ramp_up_rate}
+| | ${ret} = | Convert To Number | ${result[0].relevant_lower_bound}
+| | Return From Keyword | ${ret}
| Measure and show latency at specified rate
| | [Documentation]
| | ... | Send traffic at specified rate, single trial.
| | ... | Extract latency information and append it to text message.
-| | ... | The rate argument is int, so should not include "pps".
+| | ... | The rate argument is float, so should not include "pps".
| | ... | If the given rate is too low, a safe value is used instead.
| | ... | Call \${resetter} (if defined) to reset DUT state before each trial.
| |
| | ... | *Arguments:*
| | ... | - message_prefix - Preface to test message addition. Type: string
-| | ... | - rate - Rate [tps] for sending packets.
+| | ... | - rate - Unidirectional rate [tps] for sending packets.
| | ... | Type: float
| |
| | ... | *Example:*
@@ -312,9 +301,11 @@
| |
| | [Arguments] | ${message_prefix} | ${rate}
| |
-| | ${min_rate} = | Get Min Rate
+| | ${min_rate_hard} = | Get Min Rate Hard
| | ${ppta} = | Get Packets Per Transaction Aggregated
-| | ${real_rate} = | Evaluate | max(${rate}, ${min_rate})
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | ${ramp_up_rate} = | Get Ramp Up Rate
+| | ${real_rate} = | Evaluate | max(${rate}, ${min_rate_hard})
| | ${traffic_directions} = | Get Traffic Directions
| | ${transaction_duration} = | Get Transaction Duration
| | ${transaction_scale} = | Get Transaction Scale
@@ -333,12 +324,15 @@
| | ... | transaction_scale=${transaction_scale}
| | ... | transaction_type=${transaction_type}
| | ... | use_latency=${True}
+| | ... | ramp_up_duration=${ramp_up_duration}
+| | ... | ramp_up_rate=${ramp_up_rate}
| | ${latency} = | Get Latency Int
| | Set Test Message | ${\n}${message_prefix} ${latency} | append=${True}
+| | Export Ndrpdr Latency | ${message_prefix} | ${latency}
| Send ramp-up traffic
| | [Documentation]
-| | ... | Do nothing unless positive ramp-up duration is specified.
+| | ... | Fail unless positive ramp-up rate is specified.
| | ... | Else perform one trial with appropriate rate and duration.
| | ... | This is useful for tests that set DUT state via traffic.
| | ... | Rate has to bee low enough so packets are not lost,
@@ -352,7 +346,7 @@
| | ... | string
| | ... | - ramp_up_duration - Suitable traffic duration [s].
| | ... | Type: float
-| | ... | - ramp_up_rate - Suitable transmit rate [tps].
+| | ... | - ramp_up_rate - Suitable unidirectional transmit rate [tps].
| | ... | Type: float
| | ... | - transaction_type - String identifier to determine how to count
| | ... | transactions. Default is "packet".
@@ -361,9 +355,9 @@
| |
| | ... | \| Send ramp-up traffic \|
| |
-| | ${ramp_up_duration} = | Get Ramp Up Duration
-| | Run Keyword Unless | ${ramp_up_duration} > 0.0 | Return From Keyword
| | ${ramp_up_rate} = | Get Ramp Up Rate
+| | Run Keyword If | ${ramp_up_rate} <= 0.0 | Fail | Ramp up rate missing!
+| | ${ramp_up_duration} = | Get Ramp Up Duration
| | ${ppta} = | Get Packets Per Transaction Aggregated
| | ${traffic_directions} = | Get Traffic Directions
| | ${transaction_duration} = | Get Transaction Duration
@@ -383,6 +377,9 @@
| | ... | transaction_duration=${transaction_duration}
| | ... | transaction_scale=${transaction_scale}
| | ... | transaction_type=${transaction_type}
+| | ... | ramp_up_duration=${ramp_up_duration}
+| | ... | ramp_up_rate=${ramp_up_rate}
+| | ... | ramp_up_only=${True}
| Send traffic at specified rate
| | [Documentation]
@@ -394,7 +391,7 @@
| |
| | ... | *Arguments:*
| | ... | - trial_duration - Duration of single trial [s]. Type: float
-| | ... | - rate - Target transmit rate [tps]. Type: float
+| | ... | - rate - Target unidirectional transmit rate [tps]. Type: float
| | ... | Type: string
| | ... | - trial_multiplicity - How many trials in this measurement.
| | ... | Type: boolean
@@ -402,28 +399,37 @@
| | ... | Type: boolean
| | ... | - duration_limit - Hard limit for trial duration, overriding duration
| | ... | computed from transaction_scale. Default 0.0 means no limit.
+| | ... | - export_mrr_unit - Use this unit when exporting MRR values,
+| | ... | or empty string for no export.
| |
| | ... | *Example:*
| |
| | ... | \| Send traffic at specified rate \| \${1.0} \| ${4000000.0} \
-| | ... | \| \${10} \| ${False} \| ${1.0} \|
+| | ... | \| \${10} \| ${False} \| ${1.0} \| pps \|
| |
| | [Arguments] | ${trial_duration} | ${rate} | ${trial_multiplicity}
| | ... | ${use_latency}=${False} | ${duration_limit}=${0.0}
+| | ... | ${export_mrr_unit}=${Empty}
| |
| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | ${ramp_up_rate} = | Get Ramp Up Rate
| | ${traffic_directions} = | Get Traffic Directions
| | ${transaction_duration} = | Get Transaction Duration
| | ${transaction_scale} = | Get Transaction Scale
| | ${transaction_type} = | Get Transaction Type
| | Set Test Variable | \${rate_for_teardown} | ${rate}
-| | FOR | ${action} | IN | @{pre_stats}
+| | Set Test Variable | \${runtime_rate} | ${rate}
+| | FOR | ${action} | IN | @{stat_runtime}
+| | | Run Keyword | Additional Statistics Action For ${action}
+| | END
+| | FOR | ${action} | IN | @{stat_pre_trial}
| | | Run Keyword | Additional Statistics Action For ${action}
| | END
| | ${results} = | Create List
| | FOR | ${i} | IN RANGE | ${trial_multiplicity}
| | | Call Resetter
-| | | Send traffic on tg
+| | | ${result} = | Send traffic on tg
| | | ... | duration=${trial_duration}
| | | ... | rate=${rate}
| | | ... | frame_size=${frame_size}
@@ -436,49 +442,21 @@
| | | ... | transaction_scale=${transaction_scale}
| | | ... | transaction_type=${transaction_type}
| | | ... | use_latency=${use_latency}
-| | | ${result}= | Get Measurement Result
+| | | ... | ramp_up_duration=${ramp_up_duration}
+| | | ... | ramp_up_rate=${ramp_up_rate}
| | | # Out of several quantities for aborted traffic (duration stretching),
| | | # the approximated receive rate is the best estimate we have.
-| | | Append To List | ${results} | ${result.approximated_receive_rate}
+| | | ${value} = | Set Variable | ${result.forwarding_count}
+| | | ${value} = | Evaluate | ${value} / ${result.offered_duration}
+| | | ${bandwidth} | ${pps} = | Compute Bandwidth | ${value} / ${ppta}
+| | | Append Mrr Value | ${value} | ${export_mrr_unit} | ${bandwidth * 1e9}
+| | | Append To List | ${results} | ${value}
| | END
-| | FOR | ${action} | IN | @{post_stats}
+| | FOR | ${action} | IN | @{stat_post_trial}
| | | Run Keyword | Additional Statistics Action For ${action}
| | END
| | Return From Keyword | ${results}
-| Clear and show runtime counters with running iperf3
-| | [Documentation]
-| | ... | Start traffic at specified rate then clear runtime counters on all
-| | ... | DUTs. Wait for specified amount of time and capture runtime counters
-| | ... | on all DUTs. Finally stop traffic.
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Clear and show runtime counters with running traffic \|
-| |
-| | ${runtime_duration} = | Get Runtime Duration
-| | ${pids}= | iPerf Client Start Remote Exec
-| | | ... | ${nodes['${iperf_client_node}']}
-| | | ... | duration=${-1}
-| | | ... | rate=${None}
-| | | ... | frame_size=${None}
-| | | ... | async_call=True
-| | | ... | warmup_time=0
-| | | ... | traffic_directions=${1}
-| | | ... | namespace=${iperf_client_namespace}
-| | | ... | udp=${iperf_client_udp}
-| | | ... | host=${iperf_server_bind}
-| | | ... | bind=${iperf_client_bind}
-| | | ... | affinity=${iperf_client_affinity}
-| | FOR | ${action} | IN | @{pre_run_stats}
-| | | Run Keyword | Additional Statistics Action For ${action}
-| | END
-| | Sleep | ${runtime_duration}
-| | FOR | ${action} | IN | @{post_run_stats}
-| | | Run Keyword | Additional Statistics Action For ${action}
-| | END
-| | iPerf Client Stop Remote Exec | ${nodes['${iperf_client_node}']} | ${pids}
-
| Traffic should pass with maximum rate on iPerf3
| | [Documentation]
| | ... | Send traffic at maximum rate on iPerf3.
@@ -500,9 +478,12 @@
| | ... | ${trial_multiplicity}=${trial_multiplicity}
| | ... | ${traffic_directions}=${1}
| |
+| | Set Test Variable | ${telemetry_rate} | mrr
+| | Set Test Variable | ${telemetry_export} | ${True}
| | ${results}= | Send iPerf3 traffic at specified rate
| | ... | ${trial_duration} | ${None} | ${None}
| | ... | ${trial_multiplicity} | ${traffic_directions}
+| | ... | export_mrr_unit=bps
| | Set Test Message | ${\n}iPerf3 trial results
| | Set Test Message | in Gbits per second: ${results}
| | ... | append=yes
@@ -517,7 +498,7 @@
| | ... | *Arguments:*
| | ... | - trial_duration - Duration of single trial [s].
| | ... | Type: float
-| | ... | - rate - Target aggregate transmit rate [bps] / Bits per second
+| | ... | - rate - Target aggregated transmit rate [bps] / Bits per second.
| | ... | Type: float
| | ... | - frame_size - L2 Frame Size [B].
| | ... | Type: integer or string
@@ -527,6 +508,9 @@
| | ... | Type: integer
| | ... | - extended_debug - True to enable extended debug.
| | ... | Type: boolean
+| | ... | - export_mrr_unit - Use this unit when exporting MRR values,
+| | ... | or empty string for no export.
+| | ... | Type: string
| |
| | ... | *Example:*
| |
@@ -536,6 +520,7 @@
| | [Arguments] | ${trial_duration} | ${rate} | ${frame_size}
| | ... | ${trial_multiplicity}=${trial_multiplicity}
| | ... | ${traffic_directions}=${1} | ${extended_debug}=${extended_debug}
+| | ... | ${export_mrr_unit}=${Empty}
| |
| | Set Test Variable | ${extended_debug}
| | Set Test Variable | ${rate}
@@ -544,7 +529,7 @@
| | ${smt_used}= | Is SMT enabled | ${nodes['${iperf_server_node}']['cpuinfo']}
| | ${vm_status} | ${value}= | Run Keyword And Ignore Error
| | ... | Get Library Instance | vnf_manager
-| | ${vth}= | Evaluate | (${thr_count_int} + 1)
+| | ${vth}= | Evaluate | (${dp_count_int} + 1)
| | ${cpu_skip_cnt}= | Set Variable If | '${vm_status}' == 'PASS'
| | ... | ${CPU_CNT_SYSTEM}
| | ... | ${${CPU_CNT_SYSTEM} + ${CPU_CNT_MAIN} + ${cpu_count_int} + ${vth}}
@@ -558,22 +543,26 @@
| | ... | bind_mask=${iperf_server_bind_mask}
| | ... | namespace=${iperf_server_namespace}
| | ... | cpu_skip_cnt=${cpu_skip_cnt}
-| | Run Keyword If | '${iperf_client_namespace}' is not '${None}'
+| | Run Keyword If | '${iperf_client_namespace}' != '${None}'
| | ... | Set Linux Interface IP
| | ... | ${nodes['${iperf_client_node}']}
| | ... | interface=${iperf_client_interface}
| | ... | ip_addr=${iperf_client_bind}
| | ... | prefix=${iperf_client_bind_mask}
| | ... | namespace=${iperf_client_namespace}
-| | Run Keyword If | '${iperf_client_namespace}' is not '${None}'
+| | Run Keyword If | '${iperf_client_namespace}' != '${None}'
| | ... | Add Default Route To Namespace
| | ... | ${nodes['${iperf_client_node}']}
| | ... | namespace=${iperf_client_namespace}
| | ... | default_route=${iperf_client_bind_gw}
-| | ${pre_stats}= | Create List
-| | ... | clear-show-runtime-with-iperf3
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | FOR | ${action} | IN | @{pre_stats}
+| | ${stat_runtime}= | Create List
+| | ... | vpp-runtime-iperf3
+| | ${stat_pre_trial}= | Create List
+| | ... | vpp-runtime-iperf3 | vpp-clear-stats | vpp-enable-packettrace
+| | FOR | ${action} | IN | @{stat_runtime}
+| | | Run Keyword | Additional Statistics Action For ${action}
+| | END
+| | FOR | ${action} | IN | @{stat_pre_trial}
| | | Run Keyword | Additional Statistics Action For ${action}
| | END
| | ${results} = | Create List
@@ -592,12 +581,13 @@
| | | ... | bind=${iperf_client_bind}
| | | ... | affinity=${iperf_client_affinity}
| | | ${conv} = | Convert To Number | ${rr['sum_received']['bits_per_second']}
+| | | Append Mrr Value | ${conv} | ${export_mrr_unit}
| | | ${conv} = | Evaluate | ${conv} / ${1000} / ${1000} / ${1000}
| | | ${conv} = | Evaluate | "{:.3f}".format(${conv})
| | | Append To List
| | | ... | ${results} | ${conv}
| | END
-| | FOR | ${action} | IN | @{post_stats}
+| | FOR | ${action} | IN | @{stat_post_trial}
| | | Run Keyword | Additional Statistics Action For ${action}
| | END
| | Return From Keyword | ${results}
@@ -614,7 +604,7 @@
| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
| | ... | string
| | ... | *Arguments:*
-| | ... | - rate - Rate [tps] for sending packets.
+| | ... | - rate - Unidirectional rate [tps] for sending packets.
| | ... | Type: float
| |
| | ... | *Example:*
@@ -624,6 +614,8 @@
| | [Arguments] | ${rate}
| |
| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${ramp_up_duration} = | Get Ramp Up Duration
+| | ${ramp_up_rate} = | Get Ramp Up Rate
| | ${traffic_directions} = | Get Traffic Directions
| | ${transaction_duration} = | Get Transaction Duration
| | ${transaction_scale} = | Get Transaction Scale
@@ -639,6 +631,8 @@
| | ... | async_call=${True}
| | ... | duration_limit=${0.0}
| | ... | ppta=${ppta}
+| | ... | ramp_up_duration=${ramp_up_duration}
+| | ... | ramp_up_rate=${ramp_up_rate}
| | ... | traffic_directions=${traffic_directions}
| | ... | transaction_duration=${transaction_duration}
| | ... | transaction_scale=${transaction_scale}
@@ -680,21 +674,25 @@
| |
| | ... | \| Traffic should pass with maximum rate \|
| |
+| | Set Test Variable | ${telemetry_rate} | mrr
+| | Set Test Variable | ${telemetry_export} | ${True}
| | ${max_rate} = | Get Max Rate
| | ${transaction_type} = | Get Transaction Type
| | ${trial_duration} = | Get Mrr Trial Duration
| | ${trial_multiplicity} = | Get Mrr Trial Multiplicity
| | ${use_latency} = | Get Use Latency
-| | # The following also sets \${rate_for_teardown}
+| | ${unit} = | Set Variable If | """_cps""" in """${transaction_type}"""
+| | ... | cps | pps
| | ${results} = | Send traffic at specified rate
| | ... | rate=${max_rate}
| | ... | trial_duration=${trial_duration}
| | ... | trial_multiplicity=${trial_multiplicity}
| | ... | use_latency=${use_latency}
| | ... | duration_limit=${0.0}
-| | ${unit} = | Set Variable If | """_cps""" in """${transaction_type}"""
+| | ... | export_mrr_unit=${unit}
+| | ${unit_text} = | Set Variable If | """_cps""" in """${transaction_type}"""
| | ... | estimated connections per second | packets per second
| | Set Test Message | ${\n}Maximum Receive Rate trial results
-| | Set Test Message | in ${unit}: ${results}
+| | Set Test Message | in ${unit_text}: ${results}
| | ... | append=yes
| | Fail if no traffic forwarded
diff --git a/resources/libraries/robot/performance/performance_vars.robot b/resources/libraries/robot/performance/performance_vars.robot
index 4a6d385363..a0fa277e4c 100644
--- a/resources/libraries/robot/performance/performance_vars.robot
+++ b/resources/libraries/robot/performance/performance_vars.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -60,25 +60,46 @@
| | Return From Keyword If | ${max_rate} | ${max_rate}
| | Fail | \${max_rate} is not defined. Call Set Max Rate And Jumbo keyword.
-| Get Min Rate
+| Get Min Rate Hard
| | [Documentation]
-| | ... | Return a hardcoded value. This is an abstraction, useful in case
-| | ... | we start allowing various other overrides or computations.
-| | ... | Call this just before calling a Python keyword,
-| | ... | as those have restricted access to Robot variables.
-| |
-| | ... | The return value controls the minimal unidirectional packet rate.
-| | ... | The value is also usable for minimal TPS value for ASTF tests.
+| | ... | Return a hardcoded value.
+| | ... | The return value controls the minimal unidirectional packet rate,
+| | ... | to be used anywhere, including latency measurements at 0% load.
| | ... | The current value is the smallest one permitted
| | ... | by STL profiles with latency streams.
| | ... | Return type: float.
| |
| | ... | *Example:*
| |
-| | ... | \| \${min_rate} = \| Get Min Rate \|
+| | ... | \| \${min_rate_hard} = \| Get Min Rate Hard \|
| |
| | Return From Keyword | ${9001.0}
+| Get Min Rate Soft
+| | [Documentation]
+| | ... | If ramp up rate is not defined, return the hard min value.
+| | ... | If ramp up rate is defined (and larger than hard min), return that.
+| | ... | The reason is, ramp up rate should already guarantee no loss.
+| |
+| | ... | The return value controls the minimal unidirectional packet rate,
+| | ... | to be used in various search algorithms.
+| | ... | Latency measurements may want even lower loads, use hard min for that.
+| |
+| | ... | The value is also usable for minimal TPS value for ASTF tests.
+| | ... | Return type: float.
+| |
+| | ... | Currently, undefined ramp up rate is reported as zero,
+| | ... | so we return the maximum of ramp up rate and the hard min rate.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${min_rate_soft} = \| Get Min Rate Soft \|
+| |
+| | ${min_rate_hard} = | Get Min Rate Hard
+| | ${ramp_up_rate} = | Get Ramp Up Rate
+| | ${min_rate_soft} = | Evaluate | max(${ramp_up_rate}, ${min_rate_hard})
+| | Return From Keyword | ${min_rate_soft}
+
| Get Mrr Trial Duration
| | [Documentation]
| | ... | Return value from Constants. This is an abstraction, useful in case
@@ -134,11 +155,11 @@
| Get Packets Per Transaction Aggregated
| | [Documentation]
| | ... | Return value of \${packets_per_transaction_aggregated};
-| | ... | if not defined, assume traffic is symmetric and compute
-| | ... | from unidirectional values.
+| | ... | if not defined, assume traffic is symmetric (or unidirectional)
+| | ... | and compute from unidirectional values.
| |
-| | ... | The return value is used when reporting PPS values from TPS found
-| | ... | by some search (e.g. NDRPDR).
+| | ... | The return value is used when reporting PPS (and bandwidth) values
+| | ... | from TPS found by some search (e.g. NDRPDR).
| | ... | Return type: integer.
| |
| | ... | *Example:*
@@ -148,7 +169,6 @@
| | ${ppta} = | Get Variable Value | \${packets_per_transaction_aggregated}
| | ... | ${0}
| | Return From Keyword If | "${ppta}" != "0" | ${ppta}
-| | # TODO: Insert TCP computation from packet size here.
| | ${pptad} = | Get Packets Per Transaction And Direction
| | ${traffic_directions} = | Get Traffic Directions
| | # We do not support ASTF profiles with multiple transactions, yet.
@@ -160,8 +180,9 @@
| | ... | Return value of \${packets_per_transaction_and_direction},
| | ... | or ${1} if not defined.
| |
-| | ... | The return value is used when computing max rate (TPS),
-| | ... | so for asymmetric transaction use the more numerous direction.
+| | ... | The return value is used when computing max rate (TPS)
+| | ... | from packet level (pps or bps) limits.
+| | ... | For asymmetric transactions, use the more numerous direction.
| | ... | Return type: integer.
| |
| | ... | *Example:*
@@ -179,7 +200,7 @@
| |
| | ... | The return value determines the required duration of ramp-up phase.
| | ... | Typically used to prepare a specific state on DUT.
-| | ... | If the value is zero, ramp-up phase is skipped.
+| | ... | If the value is zero, ramp-up phase is either skipped or size-limited.
| | ... | Return type: float.
| |
| | ... | *Example:*
@@ -192,12 +213,13 @@
| Get Ramp Up Rate
| | [Documentation]
| | ... | Return value of \${ramp_up_rate},
-| | ... | if not defined return \${max_rate}.
+| | ... | if not defined, return zero.
| |
| | ... | The return value determines the rate for ramp-up phase.
| | ... | Typically used to limit the rate when max rate
| | ... | would lose packets in the ramp up phase, thus not setting
| | ... | the DUT state correctly.
+| | ... | If the value is zero, ramp-up phase should be skipped.
| | ... | Return type: float.
| |
| | ... | *Example:*
@@ -205,13 +227,12 @@
| | ... | \| \${ramp_up_rate} = \| Get Ramp Up Rate \|
| |
| | ${ramp_up_rate} = | Get Variable Value | \${ramp_up_rate} | ${0.0}
-| | Return From Keyword If | ${ramp_up_rate} | ${ramp_up_rate}
-| | Run Keyword And Return | Get Max Rate
+| | Return From Keyword | ${ramp_up_rate}
| Get Rate For Teardown
| | [Documentation]
| | ... | Return value of \${rate_for_teardown},
-| | ... | if not defined (or zero) return the min rate.
+| | ... | if not defined (or zero) return the soft min rate.
| |
| | ... | The return value determines the rate for teardown trial,
| | ... | that is executed if a perf test fails.
@@ -226,7 +247,7 @@
| |
| | ${rate_for_teardown} = | Get Variable Value | \${rate_for_teardown} | ${0.0}
| | Return From Keyword If | ${rate_for_teardown} | ${rate_for_teardown}
-| | Run Keyword And Return | Get Min Rate
+| | Run Keyword And Return | Get Min Rate Soft
| Get Resetter
| | [Documentation]
@@ -371,54 +392,44 @@
| Set Jumbo
| | [Documentation]
-| | ... | For jumbo frames detection, the maximal packet size is relevant,
-| | ... | encapsulation overhead (if any) has effect.
-| |
-| | ... | This keyword computes jumbo boolean (some suites need that for
-| | ... | configuration decisions).
+| | ... | Call Set Numeric Frame Sizes and set jumbo based on max framesize.
| | ... | To streamline suite autogeneration, both input and output values
| | ... | are communicated as test (or broader scope) variables,
| | ... | instead of explicit arguments and return values.
| |
| | ... | *Test (or broader scope) variables read:*
| | ... | - overhead - Overhead in bytes; default value: 0. Type: integer
-| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
-| | ... | string
+| | ... | - frame_size - Framesize. Type: integer or string
| |
| | ... | *Test variables set:*
| | ... | - jumbo - Jumbo boolean, true if jumbo packet support has to be
| | ... | enabled. Type: boolean
+| | ... | - recommended_mtu - Resonable value (with space for encap overhead)
+| | ... | according to jumbo. Type: int
| |
| | ... | *Example:*
| |
| | ... | \| Set Jumbo \|
| |
-| | # Already called by Set Max Rate And Jumbo, but some suites (e.g. device)
-| | # are calling this directly.
+| | # Some suites (e.g. device) are not calling Set Max Rate And Jumbo.
| | Set Numeric Frame Sizes
-| | ${jumbo} = | Set Variable If | ${max_frame_size} < 1522
-| | ... | ${False} | ${True}
+| | ${jumbo} = | Evaluate | ${max_frame_size} >= 1522
| | Set Test Variable | \${jumbo}
+| | ${recommended_mtu} = | Set Variable If | ${jumbo} | ${9200} | ${1800}
+| | Set Test Variable | \${recommended_mtu}
| Set Max Rate And Jumbo
| | [Documentation]
-| | ... | Input framesize can be either integer in case of a single packet
-| | ... | in stream, or IMIX string defining mix of packets.
-| | ... | For jumbo frames detection, the maximal packet size is relevant.
-| | ... | For maximal transmit rate, the average packet size is relevant.
-| | ... | In both cases, encapsulation overhead (if any) has effect.
-| | ... | The maximal rate is computed from NIC name.
-| | ... | The implementation works by mapping from exact
-| | ... | whitelisted NIC names.
-| | ... | The mapping is hardcoded in nic_limits.yaml
-| | ... | TODO: Make the mapping from NIC names case insensistive.
-| |
-| | ... | This keyword computes maximal unidirectional transmit rate
-| | ... | and jumbo boolean (some suites need that for configuration decisions).
+| | ... | This keyword computes maximal unidirectional transmit rate,
+| | ... | jumbo boolean (some suites need that for configuration decisions),
+| | ... | and recommended MTU value (depends on jumbo).
| | ... | To streamline suite autogeneration, both input and output values
| | ... | are communicated as test (or broader scope) variables,
| | ... | instead of explicit arguments and return values.
| |
+| | ... | For correctly applying bandwidth limit, average frame size is used,
+| | ... | see Set Numeric Frame Sizes keyword documentation for details.
+| |
| | ... | If this keyword detects the test is interested in (unidirectional)
| | ... | transactons per second maximal rate (tps), that is returned (not pps).
| |
@@ -427,8 +438,13 @@
| | ... | - overhead - Overhead in bytes; default value: 0. Type: integer
| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
| | ... | string
-| | ... | - packets_per_transaction_and_direction - Pps-tps conversion.
-| | ... | Optional, default 1.
+| | ... | - ASTF_N_DATA_FRAMES - Number of data frames per transaction
+| | ... | and direction. Type: integer
+| | ... | - packets_per_transaction_and_direction - May be unset.
+| | ... | See Get Packets Per Transaction And Direction keyword. Type: integer
+| | ... | - packets_per_transaction_aggregated - May be unset.
+| | ... | See Get Packets Per Transaction Aggregated keyword. Type: integer
+| | ... | - TEST_TAGS - Robot tags of this test. Type: list of string
| |
| | ... | *Test variables set:*
| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps].
@@ -436,8 +452,13 @@
| | ... | Type: float
| | ... | - jumbo - Jumbo boolean, true if jumbo packet support has to be
| | ... | enabled. Type: boolean
-| | ... | avg_frame_size - Average frame size including overhead. Type: float
-| | ... | max_frame_size - Maximal frame size including overhead. Type: float
+| | ... | - recommended_mtu - Resonable value (with space for encap overhead)
+| | ... | according to jumbo. Type: int
+| | ... | - max_frame_size - Maximal frame size including overhead. Type: float
+| | ... | - avg_directional_frame_size - Average frame size including overhead
+| | ... | for the more loaded direction. Type: float
+| | ... | - avg_aggregated_frame_size - Average frame size including overhead
+| | ... | across both traffic directions. Type: float
| |
| | ... | *Example:*
| |
@@ -449,67 +470,192 @@
| | ... | ${NIC_NAME_TO_PPS_LIMIT} | ${nic_name}
| | ${bps_limit} = | Get From Dictionary
| | ... | ${NIC_NAME_TO_BPS_LIMIT} | ${nic_name}
-| | Set Numeric Frame Sizes
-| | # We need to add 20B (Ethernet preamble and inter-frame gap)
-| | # to avg_frame_size
-| | ${rate} = | Evaluate | ${bps_limit} / ((${avg_frame_size} + 20.0) * 8)
+| | # Set Jumbo also calls Set Numeric Frame Sizes.
+| | Set Jumbo
+| | # We need to add 20B (Ethernet preamble and inter-frame gap).
+| | ${adfs} = | Get Variable Value | \${avg_directional_frame_size}
+| | ${rate} = | Evaluate | ${bps_limit} / ((${adfs} + 20.0) * 8)
| | ${max_rate} = | Set Variable If | ${rate} > ${pps_limit}
| | ... | ${pps_limit} | ${rate}
| | ${pptad} = | Get Packets Per Transaction And Direction
| | ${max_rate} = | Evaluate | ${max_rate} / ${pptad}
| | Set Test Variable | \${max_rate}
-| | Set Jumbo
| Set Numeric Frame Sizes
| | [Documentation]
| | ... | Framesize can be either integer in case of a single packet
| | ... | in stream, or set of packets in case of IMIX type or simmilar.
| | ... | For jumbo decisions, we need a numeric size of the biggest packet.
-| | ... | For max rate decisions, we need a numeric average packet size.
-| | ... | This keyword computes both and sets them as test variables.
+| | ... | For bandwidth limit decisions, we need a numeric average packet size
+| | ... | in the more bit intensive direction if traffic is non-symmetric.
+| | ... | Computation of max_rate assumes it is also the more pps direction
+| | ... | (so it can have smaller average frame size than the aggregated one).
+| | ... | Average (across both directions) frame size is also used
+| | ... | for displaying the bidirectional bandwidth forwarded.
+| | ... | This keyword computes all three values (accounting for overheads)
+| | ... | and sets them as test variables.
| |
| | ... | Each suite sets a value named \${overhead},
| | ... | which describes by how many bytes the frames on DUT-DUT link
| | ... | are larger (due to encapsulation) than those
-| | ... | on the primary TG-DUT link. But for some suites that value
+| | ... | on the primary TG-DUT link. For some suites that value
| | ... | can be negaive (if TG-DUT is encapsulated more heavily).
| | ... | For calculations in this keyword, we need largest sizes
| | ... | across links, so zero is used if \${overhead} is negative.
| |
+| | ... | The other overhead is from TCP control packets (only IPv4 supported).
+| | ... | TCP_CPS tests have SYN frames of length 78B and other frames 70B.
+| | ... | The more loaded is client-to-server direction with 1 SYN and 3 other,
+| | ... | across both directions it is 2 SYN and 5 other.
+| | ... | TCP_PPS and TCP_TPUT tests have one other control packet less
+| | ... | (in the less loaded direction), but they do contain data frames.
+| |
| | ... | *Test variables read:*
| | ... | - frame_size - Framesize. Type: integer or string
| | ... | - overhead - Overhead in bytes; default value: ${0}. Type: integer
+| | ... | - ASTF_N_DATA_FRAMES - Number of data frames per transaction
+| | ... | and direction. Type: integer
+| | ... | - packets_per_transaction_and_direction - May be unset.
+| | ... | See Get Packets Per Transaction And Direction keyword. Type: integer
+| | ... | - packets_per_transaction_aggregated - May be unset.
+| | ... | See Get Packets Per Transaction Aggregated keyword. Type: integer
+| | ... | - TEST_TAGS - Robot tags of this test. Type: list of string
| |
| | ... | *Test variables set*
-| | ... | avg_frame_size - Average frame size including overhead. Type: float
-| | ... | max_frame_size - Maximal frame size including overhead. Type: float
+| | ... | - max_frame_size - Maximal frame size including overhead. Type: float
+| | ... | - avg_directional_frame_size - Average frame size including overhead
+| | ... | for the more loaded direction. Type: float
+| | ... | - avg_aggregated_frame_size - Average frame size including overhead
+| | ... | across both traffic directions. Type: float
| |
| | ... | *Example:*
| |
| | ... | \| Set Numeric Frame Sizes \|
| |
+| | ${bare_max_frame_size} = | Run Keyword If
+| | ... | '${frame_size}' == 'IMIX_v4_1' | Set Variable | ${1518.0}
+| | ... | ELSE | Convert To Number | ${frame_size}
+| | ${bafs} = | Run Keyword If
+| | ... | '${frame_size}' == 'IMIX_v4_1' | Set Variable | ${353.8333333333333}
+| | ... | ELSE | Convert To Number | ${frame_size}
+| | # Long boolean formula in 2 lines.
+| | ${is_cps} = | Evaluate | 'TCP_CPS' in ${TEST_TAGS}
+| | ${is_pps} = | Evaluate | 'TCP_PPS' in ${TEST_TAGS}
+| | ${is_tput} = | Evaluate | ${is_pps} or 'TCP_TPUT' in ${TEST_TAGS}
+| | # TODO: Investigate impact of values on hoststack tests.
+| | ${is_cps} = | Evaluate | ${is_cps} and 'HOSTSTACK' not in ${TEST_TAGS}
+| | ${is_tput} = | Evaluate | ${is_tput} and 'HOSTSTACK' not in ${TEST_TAGS}
+| | ${avg_dir_frame_size} | ${avg_agg_frame_size} = | Run Keyword If
+| | ... | ${is_cps} | Apply Tcp Cps Proto Overhead | ${bafs}
+| | ... | ELSE IF | ${is_tput} | Apply Tcp Tput Proto Overhead | ${bafs}
+| | ... | ELSE | Set Variable | ${bafs} | ${bafs}
| | ${max_overhead} = | Set Variable If | ${overhead} >= 0 | ${overhead} | ${0}
-| | ${bare_avg_frame_size} = | Run Keyword If | '${frame_size}' == 'IMIX_v4_1'
-| | ... | Set Variable | ${353.83333}
-| | ... | ELSE
-| | ... | Convert To Number | ${frame_size}
-| | ${avg_frame_size} = | Evaluate | $bare_avg_frame_size + $max_overhead
-| | Set Test Variable | \${avg_frame_size}
-| | ${bare_max_frame_size} = | Run Keyword If | '${frame_size}' == 'IMIX_v4_1'
-| | ... | Set Variable | ${1518}
-| | ... | ELSE
-| | ... | Convert To Number | ${frame_size}
-| | ${max_frame_size} = | Evaluate | $bare_max_frame_size + $max_overhead
-| | Set Test Variable | ${max_frame_size}
+| | ${mfs} = | Evaluate | ${bare_max_frame_size} + ${max_overhead}
+| | ${adfs} = | Evaluate | ${avg_dir_frame_size} + ${max_overhead}
+| | ${aafs} = | Evaluate | ${avg_agg_frame_size} + ${max_overhead}
+| | Set Test Variable | \${max_frame_size} | ${mfs}
+| | Set Test Variable | \${avg_directional_frame_size} | ${adfs}
+| | Set Test Variable | \${avg_aggregated_frame_size} | ${aafs}
+
+| Apply Tcp Cps Proto Overhead
+| | [Documentation]
+| | ... | Recompute average frame size for TCP CPS test cases.
+| |
+| | ... | This is contitionally called from Set Numeric Frame Sizes.
+| | ... | In Robot Framework it is more convenient to wrap such a block
+| | ... | as a standalone keyword to Run Keyword If.
+| |
+| | ... | *Test variables read:*
+| | ... | - ASTF_N_DATA_FRAMES - Number of data frames per transaction
+| | ... | and direction. Usually set globally. Type: integer
+| | ... | - packets_per_transaction_and_direction - May be unset.
+| | ... | See Get Packets Per Transaction And Direction keyword. Type: integer
+| | ... | - packets_per_transaction_aggregated - May be unset.
+| | ... | See Get Packets Per Transaction Aggregated keyword. Type: integer
+| |
+| | ... | *Arguments:*
+| | ... | - bare_avg_frame_size - Average numeric framesize without overheads.
+| |
+| | ... | *Returns:*
+| | ... | - avg_dir_frame_size - Average framesize for more loaded direction.
+| | ... | - avg_agg_frame_size - Average framesize across both directions.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${adfs} \| \${aafs} = \| Apply Tcp Cps Proto Overhead \| \${bafs}
+| |
+| | [Arguments] | ${bare_avg_frame_size}
+| |
+| | # Increase max_frame_size for TCP tests if used for more than just jumbo.
+| | Run Keyword If | ${bare_avg_frame_size} != 64
+| | ... | Fail | TCP_CPS tests are only supported for (nominal) 64B frames.
+| | # TODO: Unify with packets_per_transaction_* variables when adding PCAP.
+| | ${pptad} = | Get Packets Per Transaction And Direction
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | ${avg_dir_frame_size} = | Evaluate | (78.0 * 1 + 70.0 * 3) / (1 + 3)
+| | Run Keyword If | '${pptad}' != '4'
+| | ... | Fail | TCP CPS with pptad '${pptad}' != '4'.
+| | ${avg_agg_frame_size} = | Evaluate | (78.0 * 2 + 70.0 * 5) / (2 + 5)
+| | Run Keyword If | '${ppta}' != '7'
+| | ... | Fail | TCP CPS with ppta '${ppta}' != '7'.
+| | Return From Keyword | ${avg_dir_frame_size} | ${avg_agg_frame_size}
+
+| Apply Tcp Tput Proto Overhead
+| | [Documentation]
+| | ... | Recompute average frame size for TCP TPUT (or PPS) test cases.
+| |
+| | ... | This is contitionally called from Set Numeric Frame Sizes.
+| | ... | In Robot Framework it is more convenient to wrap such a block
+| | ... | as a standalone keyword to Run Keyword If.
+| |
+| | ... | *Test variables read:*
+| | ... | - ASTF_N_DATA_FRAMES - Number of data frames per transaction
+| | ... | and direction. Usually set globally. Type: integer
+| | ... | - packets_per_transaction_and_direction - May be unset.
+| | ... | See Get Packets Per Transaction And Direction keyword. Type: integer
+| | ... | - packets_per_transaction_aggregated - May be unset.
+| | ... | See Get Packets Per Transaction Aggregated keyword. Type: integer
+| |
+| | ... | *Arguments:*
+| | ... | - bare_framesize - Average numeric framesize without overheads.
+| |
+| | ... | *Returns:*
+| | ... | - avg_dir_frame_size - Average framesize for more loaded direction.
+| | ... | - avg_agg_frame_size - Average framesize across both directions.
+| |
+| | ... | *Example:*
+| |
+| | ... | \| \${adfs} \| \${aafs} = \| Apply Tcp Cps Proto Overhead \| \${bafs}
+| |
+| | [Arguments] | ${bare_framesize}
+| |
+| | # TODO: Unify with packets_per_transaction_* variables when adding PCAP.
+| | ${pptad} = | Get Packets Per Transaction And Direction
+| | ${ppta} = | Get Packets Per Transaction Aggregated
+| | # Long float formula in 4 lines.
+| | ${numerator} = | Evaluate | ${bare_framesize} * ${ASTF_N_DATA_FRAMES}
+| | ${numerator} = | Evaluate | 78.0 * 1 + 70.0 * 3 + ${numerator}
+| | ${denominator} = | Evaluate | 1 + 3 + ${ASTF_N_DATA_FRAMES}
+| | ${avg_dir_frame_size} = | Evaluate | ${numerator} / ${denominator}
+| | Run Keyword If | '${pptad}' != '${denominator}'
+| | ... | Fail | TCP TPUT with pptad '${pptad}' != '${denominator}'.
+| | # Long float formula in 4 lines.
+| | ${numerator} = | Evaluate | ${bare_framesize} * 2 * ${ASTF_N_DATA_FRAMES}
+| | ${numerator} = | Evaluate | 78.0 * 2 + 70.0 * 4 + ${numerator}
+| | ${denominator} = | Evaluate | 2 + 4 + 2 * ${ASTF_N_DATA_FRAMES}
+| | ${avg_agg_frame_size} = | Evaluate | ${numerator} / ${denominator}
+| | Run Keyword If | '${ppta}' != '${denominator}'
+| | ... | Fail | TCP TPUT with ppta '${ppta}' != '${denominator}'.
+| | Return From Keyword | ${avg_dir_frame_size} | ${avg_agg_frame_size}
| Set Rates For Policer
| | [Documentation]
| | ... | Policer tests need these values,
-| | ... | currently computed from \${avg_frame_size}.
+| | ... | currently computed from \${avg_directional_frame_size}.
| | ... | TODO: Verify the units match and computation is correct.
| |
| | ... | *Test (or broader scope) variables read:*
-| | ... | - avg_frame_size - Average L2 Frame Size [B]. Type: float
+| | ... | - avg_directional_frame_size - Average L2 Frame Size [B]. Type: float
| | ... | Set by Set Max Rate And Jumbo keyword.
| |
| | ... | *Test variables set:*
@@ -520,5 +666,5 @@
| |
| | ... | \| Set Rates For Policer \|
| |
-| | Set Test Variable | \${eb} | ${avg_frame_size}
-| | Set Test Variable | \${cb} | ${avg_frame_size}
+| | Set Test Variable | \${eb} | ${avg_directional_frame_size}
+| | Set Test Variable | \${cb} | ${avg_directional_frame_size}
diff --git a/resources/libraries/robot/shared/container.robot b/resources/libraries/robot/shared/container.robot
index 06ac1209e5..9f08e6b1d4 100644
--- a/resources/libraries/robot/shared/container.robot
+++ b/resources/libraries/robot/shared/container.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -84,9 +84,9 @@
| | ... | ${nf_dtc}
| | ${nf_id}= | Evaluate | (${nf_chain} - ${1}) * ${nf_nodes} + ${nf_node}
| | ${env}= | Create List | DEBIAN_FRONTEND=noninteractive
-| | ${dut1_uuid_length} = | Get Length | ${DUT1_UUID}
-| | ${root}= | Run Keyword If | ${dut1_uuid_length}
-| | ... | Get Docker Mergeddir | ${nodes['DUT1']} | ${DUT1_UUID}
+| | ${in_container}= | Running in Container | ${nodes['${dut}']}
+| | ${root}= | Run Keyword If | ${in_container}
+| | ... | Get Docker Mergeddir | ${nodes['${dut}']}
| | ... | ELSE | Set Variable | ${EMPTY}
| | ${node_arch}= | Get Node Arch | ${nodes['${dut}']}
| | ${name}= | Set Variable | ${dut}_${container_group}${nf_id}${DUT1_UUID}
@@ -106,7 +106,7 @@
| | ... | vs_dtc=${cpu_count_int} | nf_dtc=${nf_dtc} | nf_dtcr=${nf_dtcr}
| | &{cont_args}= | Create Dictionary
| | ... | name=${name} | node=${nodes['${dut}']} | mnt=${mnt} | env=${env}
-| | ... | root=${root}
+| | ... | root=${root} | page_size=${page_size}
| | Run Keyword If | ${pinning}
| | ... | Set To Dictionary | ${cont_args} | cpuset_cpus=${nf_cpus}
| | Run Keyword | ${container_group}.Construct container | &{cont_args}
@@ -240,6 +240,10 @@
| | ... | ${container_chain_topology}
| | ... | dut1_if=${DUT1_${int}2}[0]
| | ... | dut2_if=${DUT2_${int}2}[0]
+| | ... | ELSE IF | '${container_chain_topology}' == 'chain_dma'
+| | ... | ${group}.Configure VPP In All Containers
+| | ... | ${container_chain_topology}
+| | ... | dma_wqs=${DUT1_dma_wqs}
| | ... | ELSE
| | ... | ${group}.Configure VPP In All Containers
| | ... | ${container_chain_topology}
@@ -325,14 +329,15 @@
| | Acquire all '${container_group}' containers
| | Create all '${container_group}' containers
| | ${cpu_count_int} | Convert to Integer | ${phy_cores}
-| | ${thr_count_int} | Convert to Integer | ${phy_cores}
+| | ${dp_count_int} | Convert to Integer | ${phy_cores}
| | ${smt_used}= | Is SMT enabled | ${nodes['${dut}']['cpuinfo']}
-| | ${thr_count_int}= | Run keyword if | ${smt_used}
+| | ${dp_count_int}= | Run keyword if | ${smt_used}
| | ... | Evaluate | int(${cpu_count_int}*2)
-| | ... | ELSE | Set variable | ${thr_count_int}
-| | ${rxq_count_int}= | Run keyword if | ${rx_queues}
+| | ... | ELSE | Set variable | ${dp_count_int}
+| | ${rxq_ratio} = | Get Variable Value | \${rxq_ratio} | ${1}
+| | ${rxq_count_int}= | Run Keyword If | ${rx_queues}
| | ... | Set variable | ${rx_queues}
-| | ... | ELSE | Evaluate | int(${thr_count_int}/2)
+| | ... | ELSE | Evaluate | int(${dp_count_int}/${rxq_ratio})
| | ${rxq_count_int}= | Run keyword if | ${rxq_count_int} == 0
| | ... | Set variable | ${1}
| | ... | ELSE | Set variable | ${rxq_count_int}
diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot
index 853f567cf6..2dc78941b3 100644
--- a/resources/libraries/robot/shared/default.robot
+++ b/resources/libraries/robot/shared/default.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -25,13 +25,18 @@
| Library | resources.libraries.python.CpuUtils
| Library | resources.libraries.python.CoreDumpUtil
| Library | resources.libraries.python.DUTSetup
+| Library | resources.libraries.python.FlowUtil
| Library | resources.libraries.python.L2Util
| Library | resources.libraries.python.InterfaceUtil
+| Library | resources.libraries.python.IPTopology
| Library | resources.libraries.python.IPUtil
| Library | resources.libraries.python.IPv6Util
+| Library | resources.libraries.python.IrqUtil
+| Library | resources.libraries.python.model.ExportJson
| Library | resources.libraries.python.NodePath
| Library | resources.libraries.python.Namespaces
| Library | resources.libraries.python.PapiHistory
+| Library | resources.libraries.python.QATUtil
| Library | resources.libraries.python.SchedUtils
| Library | resources.libraries.python.Tap
| Library | resources.libraries.python.Tap.TapFeatureMask
@@ -40,6 +45,7 @@
| Library | resources.libraries.python.topology.Topology
| Library | resources.libraries.python.Trace
| Library | resources.libraries.python.VhostUser.VirtioFeatureMask
+| Library | resources.libraries.python.VppConfigGenerator.VppInitConfig
| Library | resources.libraries.python.VppCounters
| Library | resources.libraries.python.VPPUtil
|
@@ -72,18 +78,15 @@
*** Variables ***
| ${cpu_alloc_str}= | ${0}
+| ${page_size}= | ${DEFAULT_HUGEPAGE_SIZE}
*** Keywords ***
-# TODO: Sort keywords alphabetically.
-
| Call Resetter
| | [Documentation]
| | ... | Check for a presence of test variable \${resetter}.
| | ... | If it exists (and not None), call the resetter (as a Python callable).
| | ... | This is usually used to reset any state on DUT before next trial.
| |
-| | ... | TODO: Move to a more specific library if needed.
-| |
| | ... | *Example:*
| |
| | ... | \| Call Resetter \|
@@ -94,29 +97,6 @@
| | # Parens are there to perform the call.
| | Run Keyword If | $resetter | Evaluate | $resetter()
-| Configure crypto device on all DUTs
-| | [Documentation] | Verify if Crypto QAT device virtual functions are
-| | ... | initialized on all DUTs. If parameter force_init is set to True, then
-| | ... | try to initialize/disable.
-| |
-| | ... | *Arguments:*
-| | ... | - crypto_type - Crypto device type - HW_DH895xcc or HW_C3xxx; default
-| | ... | value: HW_DH895xcc. Type: string
-| | ... | - numvfs - Number of VFs to initialize, 0 - disable the VFs; default
-| | ... | value: ${32} Type: integer
-| | ... | - force_init - Force to initialize. Type: boolean
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Configure crypto device on all DUTs \| HW_DH895xcc \| ${32} \|
-| |
-| | [Arguments] | ${crypto_type} | ${numvfs} | ${force_init}=${False}
-| |
-| | FOR | ${dut} | IN | @{duts}
-| | | Crypto Device Verify | ${nodes['${dut}']} | ${crypto_type}
-| | | ... | ${numvfs} | force_init=${force_init}
-| | END
-
| Configure kernel module on all DUTs
| | [Documentation] | Verify if specific kernel module is loaded on all DUTs.
| | ... | If parameter force_load is set to True, then try to load.
@@ -168,18 +148,21 @@
| | | Run Keyword | ${dut}.Set Node | ${nodes['${dut}']} | node_key=${dut}
| | | Run Keyword | ${dut}.Add Unix Log
| | | Run Keyword | ${dut}.Add Unix CLI Listen
-| | | Run Keyword | ${dut}.Add Unix Nodaemon
+| | | Run Keyword | ${dut}.Add Unix CLI No Pager
+| | | Run Keyword | ${dut}.Add Unix GID
+| | | Run Keyword | ${dut}.Add API Segment Prefix | ${dut}
| | | Run Keyword | ${dut}.Add Unix Coredump
| | | Run Keyword | ${dut}.Add Socksvr | ${SOCKSVR_PATH}
-| | | Run Keyword | ${dut}.Add Main Heap Size | ${${heap_size_mult}*${2}}G
-| | | Run Keyword | ${dut}.Add Main Heap Page Size | 2M
-| | | Run Keyword | ${dut}.Add Statseg Size | 2G
-| | | Run Keyword | ${dut}.Add Statseg Page Size | 2M
+| | | Run Keyword | ${dut}.Add Main Heap Size | ${${heap_size_mult}*${3}}G
+| | | Run Keyword | ${dut}.Add Main Heap Page Size | ${page_size}
+| | | Run Keyword | ${dut}.Add Default Hugepage Size | ${page_size}
+| | | Run Keyword | ${dut}.Add Statseg Size | 3G
+| | | Run Keyword | ${dut}.Add Statseg Page Size | ${page_size}
| | | Run Keyword | ${dut}.Add Statseg Per Node Counters | on
| | | Run Keyword | ${dut}.Add Plugin | disable | default
| | | Run Keyword | ${dut}.Add Plugin | enable | @{plugins_to_enable}
| | | Run Keyword | ${dut}.Add IP6 Hash Buckets | 2000000
-| | | Run Keyword | ${dut}.Add IP6 Heap Size | 4G
+| | | Run Keyword | ${dut}.Add IP6 Heap Size | 3G
| | | Run Keyword | ${dut}.Add Graph Node Variant | ${GRAPH_NODE_VARIANT}
| | END
@@ -189,9 +172,7 @@
| | ... | automatically map also the sibling logical cores.
| | ... | Keyword will automatically set the appropriate test TAGs in format
| | ... | mTnC, where m=logical_core_count and n=physical_core_count.
-| | ... | RXQ are computed automatically by dividing thread count with number 2
-| | ... | (TODO: Add division by actual number of interfaces). User can manually
-| | ... | override RX, RXD, TXD parameters if needed.
+| | ... | User can manually override RXQ, RXD, TXD parameters if needed.
| |
| | ... | *Arguments:*
| | ... | - phy_cores - Number of physical cores to use. Type: integer
@@ -206,69 +187,46 @@
| | [Arguments] | ${phy_cores} | ${rx_queues}=${None} | ${rxd}=${None}
| | ... | ${txd}=${None}
| |
-| | ${cpu_count_int} | Convert to Integer | ${phy_cores}
-| | ${thr_count_int} | Convert to Integer | ${phy_cores}
-| | ${rxd_count_int}= | Set variable | ${rxd}
-| | ${txd_count_int}= | Set variable | ${txd}
+| | Create compute resources variables
+| | ... | ${phy_cores} | rx_queues=${rx_queues} | rxd=${rxd} | txd=${txd}
| | FOR | ${dut} | IN | @{duts}
-| | | ${numa}= | Get interfaces numa node
-| | | ... | ${nodes['${dut}']} | @{${dut}_pf_keys}
-| | | ${smt_used}= | Is SMT enabled | ${nodes['${dut}']['cpuinfo']}
-| | | ${skip_cnt}= | Set variable | ${CPU_CNT_SYSTEM}
-| | | ${cpu_main}= | Cpu list per node str | ${nodes['${dut}']} | ${numa}
-| | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${CPU_CNT_MAIN}
-| | | ${skip_cnt}= | Evaluate | ${CPU_CNT_SYSTEM} + ${CPU_CNT_MAIN}
-| | | ${cpu_wt}= | Run Keyword If | ${cpu_count_int} > 0 |
-| | | ... | Cpu list per node str | ${nodes['${dut}']} | ${numa}
-| | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${cpu_count_int}
-| | | ... | smt_used=${smt_used}
-| | | ${thr_count_int}= | Run Keyword If | ${smt_used}
-| | | ... | Evaluate | int(${cpu_count_int}*2)
-| | | ... | ELSE | Set variable | ${thr_count_int}
-| | | ${rxq_ratio} = | Get Variable Value | \${rxq_ratio} | ${2}
-| | | ${rxq_count_int}= | Run Keyword If | ${rx_queues}
-| | | ... | Set variable | ${rx_queues}
-| | | ... | ELSE | Evaluate | int(${thr_count_int}/${rxq_ratio})
-| | | ${rxq_count_int}= | Run Keyword If | ${rxq_count_int} == 0
-| | | ... | Set variable | ${1}
-| | | ... | ELSE | Set variable | ${rxq_count_int}
-| | | Run Keyword | ${dut}.Add CPU Main Core | ${cpu_main}
+| | | Run Keyword | ${dut}.Add CPU Main Core | ${${dut}_cpu_main}
| | | Run Keyword If | ${cpu_count_int} > 0
-| | | ... | ${dut}.Add CPU Corelist Workers | ${cpu_wt}
-| | | Run Keyword If | ${smt_used}
-| | | ... | Run Keyword | ${dut}.Add Buffers Per Numa | ${215040} | ELSE
-| | | ... | Run Keyword | ${dut}.Add Buffers Per Numa | ${107520}
-| | | Run Keyword If | ${thr_count_int} > 1
-| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD
-| | | Set Tags | ${thr_count_int}T${cpu_count_int}C
+| | | ... | ${dut}.Add CPU Corelist Workers | ${${dut}_cpu_wt}
+| | | Run Keyword | ${dut}.Add Buffers Per Numa | ${buffers_numa}
| | END
-| | ${cpu_alloc_str}= | Catenate | SEPARATOR=, | ${cpu_alloc_str} | ${cpu_main}
-| | ${cpu_alloc_str}= | Catenate | SEPARATOR=, | ${cpu_alloc_str} | ${cpu_wt}
-| | Set Test Variable | ${smt_used}
-| | Set Test Variable | ${cpu_alloc_str}
-| | Set Test Variable | ${cpu_count_int}
-| | Set Test Variable | ${thr_count_int}
-| | Set Test Variable | ${rxd_count_int}
-| | Set Test Variable | ${txd_count_int}
-| | Set Test Variable | ${rxq_count_int}
-| Add DPDK VLAN strip offload switch off between DUTs
+| Create compute resources variables
| | [Documentation]
-| | ... | Add VLAN Strip Offload switch off on PCI devices between DUTs to VPP
-| | ... | configuration file.
-| |
-| | FOR | ${pf} | IN RANGE | 1 | ${nic_pfs} + 1
-| | | ${_even}= | Evaluate | ${pf} % 2
-| | | Run Keyword Unless | ${even}
-| | | ... | DUT1.Add DPDK Dev Parameter | ${DUT1_${int}${pf}_pci}[0]
-| | | ... | vlan-strip-offload | off
-| | END
-| | FOR | ${pf} | IN RANGE | 1 | ${nic_pfs} + 1
-| | | ${_even}= | Evaluate | ${pf} % 2
-| | | Run Keyword If | ${even}
-| | | ... | DUT2.Add DPDK Dev Parameter | ${DUT2_${int}${pf}_pci}[0]
-| | | ... | vlan-strip-offload | off
+| | ... | Create compute resources variables
+| |
+| | ... | _NOTE:_ This KW sets various suite variables based on computed
+| | ... | resources.
+| |
+| | ... | *Arguments:*
+| | ... | - phy_cores - Number of physical cores to use. Type: integer
+| | ... | - rx_queues - Number of RX queues. Type: integer
+| | ... | - rxd - Number of RX descriptors. Type: integer
+| | ... | - txd - Number of TX descriptors. Type: integer
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Create compute resources variables \| ${1} \| ${1} \|
+| |
+| | [Arguments] | ${phy_cores} | ${rx_queues}=${None}
+| | ... | ${rxd}=${None} | ${txd}=${None}
+| |
+| | &{compute_resource_info}= | Get Affinity Vswitch
+| | ... | ${nodes} | ${phy_cores} | rx_queues=${rx_queues}
+| | ... | rxd=${rxd} | txd=${txd}
+| | ${variables}= | Get Dictionary Keys | ${compute_resource_info}
+| | FOR | ${variable} | IN | @{variables}
+| | | ${value}= | Get From Dictionary | ${compute_resource_info} | ${variable}
+| | | Set Test Variable | ${${variable}} | ${value}
| | END
+| | Run Keyword If | ${dp_count_int} > 1
+| | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD
+| | Set Tags | ${dp_count_int}T${cpu_count_int}C
| Add NAT to all DUTs
| | [Documentation] | Add NAT configuration to all DUTs.
diff --git a/resources/libraries/robot/shared/interfaces.robot b/resources/libraries/robot/shared/interfaces.robot
index a9b6440173..4af68d0e28 100644
--- a/resources/libraries/robot/shared/interfaces.robot
+++ b/resources/libraries/robot/shared/interfaces.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -22,7 +22,7 @@
| Set single interfaces in path up
| | [Documentation]
| | ... | *Set UP state on single physical VPP interfaces in path on all DUT
-| | ... | nodes and set maximal MTU.*
+| | ... | nodes.*
| |
| | ... | *Arguments:*
| | ... | - pf - NIC physical function (physical port).
@@ -41,8 +41,7 @@
| Set interfaces in path up
| | [Documentation]
-| | ... | *Set UP state on VPP interfaces in path on all DUT nodes and set
-| | ... | maximal MTU.*
+| | ... | *Set UP state on VPP interfaces in path on all DUT nodes.*
| |
| | ... | *Arguments:*
| | ... | - validate - Validate interfaces are up.
@@ -58,8 +57,7 @@
| Set interfaces in path up on node
| | [Documentation]
-| | ... | *Set UP state on VPP interfaces in path on specified DUT node and
-| | ... | set maximal MTU.*
+| | ... | *Set UP state on VPP interfaces in path on specified DUT node.*
| |
| | ... | *Arguments:*
| | ... | - dut - DUT node on which to set the interfaces up.
@@ -77,8 +75,7 @@
| Set interfaces in path up on node on PF
| | [Documentation]
-| | ... | *Set UP state on VPP interfaces in path on specified DUT node and
-| | ... | set maximal MTU.*
+| | ... | *Set UP state on VPP interfaces in path on specified DUT node.*
| |
| | ... | *Arguments:*
| | ... | - dut - DUT node on which to set the interfaces up.
@@ -97,7 +94,6 @@
| | ${_id}= | Set Variable If | '${_chains}' == 'PASS' | _1 | ${EMPTY}
| | FOR | ${if} | IN | @{${dut}_${int}${pf}${_id}}
| | | Set Interface State | ${nodes['${dut}']} | ${if} | up
-| | | VPP Set Interface MTU | ${nodes['${dut}']} | ${if}
| | END
| Pre-initialize layer driver
@@ -137,7 +133,8 @@
| | Run Keyword If | ${index} >= 0 | Return From Keyword
| | FOR | ${dut} | IN | @{duts}
| | | Stop VPP Service | ${nodes['${dut}']}
-| | | PCI Driver Unbind List | ${nodes['${dut}']} | @{${dut}_pf_pci}
+| | | Unbind PCI Devices From Other Driver | ${nodes['${dut}']} | vfio-pci |
+| | | ... | @{${dut}_pf_pci}
| | | Run keyword | ${dut}.Add DPDK Dev | @{${dut}_pf_pci}
| | | Run Keyword If | ${dpdk_no_tx_checksum_offload}
| | | ... | ${dut}.Add DPDK No Tx Checksum Offload
@@ -151,12 +148,9 @@
| | | Run Keyword If | ${nic_txq_size} > 0
| | | ... | ${dut}.Add DPDK Dev Default TXD | ${nic_txq_size}
| | | Run Keyword If | '${crypto_type}' != '${None}'
-| | | ... | ${dut}.Add DPDK Cryptodev | ${thr_count_int}
+| | | ... | ${dut}.Add DPDK Cryptodev | ${dp_count_int}
+| | | Run Keyword | ${dut}.Add DPDK Max Simd Bitwidth | ${GRAPH_NODE_VARIANT}
| | END
-| | ${_vlan_strip} | ${value}= | Run Keyword And Ignore Error
-| | ... | Variable Should Exist | ${vlan_strip_off}
-| | Run keyword If | '${_vlan_strip}' == 'PASS' and ${duts_count} == 2
-| | ... | Add DPDK VLAN strip offload switch off between DUTs
| Pre-initialize layer avf on all DUTs
| | [Documentation]
@@ -164,15 +158,29 @@
| |
| | No operation
+| Pre-initialize layer af_xdp on all DUTs
+| | [Documentation]
+| | ... | Pre-initialize af_xdp driver.
+| |
+| | FOR | ${dut} | IN | @{duts}
+| | | Set Interface State PCI
+| | | ... | ${nodes['${dut}']} | ${${dut}_pf_pci} | state=up
+| | | Set Interface XDP off
+| | | ... | ${nodes['${dut}']} | ${${dut}_pf_pci}
+| | | Set Interface Channels
+| | | ... | ${nodes['${dut}']} | ${${dut}_pf_pci} | num_queues=${rxq_count_int}
+| | | ... | channel=combined
+| | END
+
| Pre-initialize layer rdma-core on all DUTs
| | [Documentation]
| | ... | Pre-initialize rdma-core driver.
| |
| | FOR | ${dut} | IN | @{duts}
+| | | Set Interface MTU | ${nodes['${dut}']} | ${${dut}_pf_pci}
+| | | ... | mtu=${recommended_mtu}
| | | Set Interface Flow Control
-| | | ... | ${nodes['${dut}']} | ${${dut}_pf_pci} | rx="off" | tx="off"
-| | | Set PCI Parameter
-| | | ... | ${nodes['${dut}']} | ${${dut}_pf_pci} | key="68.w" | value="3BCD"
+| | | ... | ${nodes['${dut}']} | ${${dut}_pf_pci} | rxf="off" | txf="off"
| | END
| Pre-initialize layer mlx5_core on all DUTs
@@ -180,14 +188,26 @@
| | ... | Pre-initialize mlx5_core driver.
| |
| | FOR | ${dut} | IN | @{duts}
-| | | Run Keyword If | ${jumbo}
-| | | ... | Set Interface MTU | ${nodes['${dut}']} | ${${dut}_pf_pci} | mtu=9200
-| | | ... | ELSE
-| | | ... | Set Interface MTU | ${nodes['${dut}']} | ${${dut}_pf_pci} | mtu=1500
| | | Set Interface Flow Control
-| | | ... | ${nodes['${dut}']} | ${${dut}_pf_pci} | rx="off" | tx="off"
-| | | Set PCI Parameter
-| | | ... | ${nodes['${dut}']} | ${${dut}_pf_pci} | key="68.w" | value="3BCD"
+| | | ... | ${nodes['${dut}']} | ${${dut}_pf_pci} | rxf="off" | txf="off"
+| | END
+| | ${index}= | Get Index From List | ${TEST TAGS} | DPDK
+| | Run Keyword If | ${index} >= 0 | Return From Keyword
+| | FOR | ${dut} | IN | @{duts}
+| | | Run keyword | ${dut}.Add DPDK Dev | @{${dut}_pf_pci}
+| | | Run Keyword If | ${dpdk_no_tx_checksum_offload}
+| | | ... | ${dut}.Add DPDK No Tx Checksum Offload
+| | | Run Keyword | ${dut}.Add DPDK Log Level | debug
+| | | Run Keyword | ${dut}.Add DPDK Dev Default RXQ | ${rxq_count_int}
+| | | Run Keyword If | not ${jumbo}
+| | | ... | ${dut}.Add DPDK No Multi Seg
+| | | Run Keyword If | ${nic_rxq_size} > 0
+| | | ... | ${dut}.Add DPDK Dev Default RXD | ${nic_rxq_size}
+| | | Run Keyword If | ${nic_txq_size} > 0
+| | | ... | ${dut}.Add DPDK Dev Default TXD | ${nic_txq_size}
+| | | Run Keyword If | '${crypto_type}' != '${None}'
+| | | ... | ${dut}.Add DPDK Cryptodev | ${dp_count_int}
+| | | Run Keyword | ${dut}.Add DPDK Max Simd Bitwidth | ${GRAPH_NODE_VARIANT}
| | END
| Initialize layer driver
@@ -326,7 +346,7 @@
| Initialize layer vfio-pci on node
| | [Documentation]
| | ... | Initialize vfio-pci interfaces on DUT on NIC PF.
-| | ... | Currently no operation.
+| | ... | Currently just set MTU to the recommended value.
| |
| | ... | *Arguments:*
| | ... | - dut - DUT node. Type: string
@@ -338,7 +358,9 @@
| |
| | [Arguments] | ${dut} | ${pf}
| |
-| | No operation
+| | Set Interface State | ${nodes['${dut}']} | ${${dut}_pf${pf}}[0] | down
+| | VPP Set Interface MTU
+| | ... | ${nodes['${dut}']} | ${${dut}_pf${pf}}[0] | mtu=${recommended_mtu}
| Initialize layer avf on node
| | [Documentation]
@@ -377,6 +399,32 @@
| | | Set List Value | ${${dut}_vf${pf}_vlan} | ${vf} | ${_vlan}
| | END
+| Initialize layer af_xdp on node
+| | [Documentation]
+| | ... | Initialize AF_XDP (eBPF) interfaces on DUT on NIC PF.
+| |
+| | ... | *Arguments:*
+| | ... | - dut - DUT node. Type: string
+| | ... | - pf - NIC physical function (physical port). Type: integer
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Initialize layer af_xdp on node \| DUT1 \| 1 \|
+| |
+| | [Arguments] | ${dut} | ${pf}
+| |
+| | ${_af_xdp}= | VPP Create AF XDP Interface
+| | ... | ${nodes['${dut}']} | ${${dut}_vf${pf}}[0]
+| | ... | num_rx_queues=${65535}
+| | ... | rxq_size=${nic_rxq_size} | txq_size=${nic_txq_size}
+| | ${cpu_skip_cnt}= | Evaluate | ${CPU_CNT_SYSTEM}+${CPU_CNT_MAIN}
+| | ${cpu_skip_cnt}= | Evaluate | ${cpu_skip_cnt}+${cpu_count_int}
+| | ${cpu_skip_cnt}= | Evaluate | ${cpu_skip_cnt}+(${pf}-${1})*${rxq_count_int}
+| | Set Interface IRQs Affinity
+| | ... | ${nodes['${dut}']} | ${_af_xdp}
+| | ... | cpu_skip_cnt=${cpu_skip_cnt} | cpu_cnt=${rxq_count_int}
+| | Set List Value | ${${dut}_vf${pf}} | 0 | ${_af_xdp}
+
| Initialize layer rdma-core on node
| | [Documentation]
| | ... | Initialize rdma-core (Mellanox VPP) interfaces on DUT on NIC PF.
@@ -400,9 +448,21 @@
| Initialize layer mlx5_core on node
| | [Documentation]
| | ... | Initialize mlx5_core interfaces on DUT on NIC PF.
-| | ... | Currently no operation.
+| | ... | Currently just set MTU to the recommended value.
| |
-| | No operation
+| | ... | *Arguments:*
+| | ... | - dut - DUT node. Type: string
+| | ... | - pf - NIC physical function (physical port). Type: integer
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Initialize layer rdma-core on node \| DUT1 \| 1 \|
+| |
+| | [Arguments] | ${dut} | ${pf}
+| |
+| | Set Interface State | ${nodes['${dut}']} | ${${dut}_pf${pf}}[0] | down
+| | VPP Set Interface MTU
+| | ... | ${nodes['${dut}']} | ${${dut}_pf${pf}}[0] | mtu=${recommended_mtu}
| Initialize layer interface
| | [Documentation]
@@ -792,3 +852,23 @@
| |
| | ${vhost_dump}= | Vhost User Dump | ${dut}
| | Return From Keyword | ${vhost_dump}
+
+| Lower DUT1-DUT2 MTU For Fragmentation
+| | [Documentation] | Set lower MTU on both ends of DUT1-DUT2 link.
+| |
+| | ... | This should force VPP to fragment (and reassembly) packets.
+| | ... | Should be called after Initialize Layer Interface.
+| | ... | Suite variables such as \${dut2_if1} should be defined by then.
+| |
+| | ... | As VPP (at least dpdk plugin) require interface to be down
+| | ... | before MTU can be changed, interfaces are temporarily downed.
+| |
+| | # TODO: ip_reassembly_set to increase max_reassembly_length so jumbo passes.
+| | Set Interface State | ${nodes['DUT1']} | ${dut1_if2} | down
+| | Set Interface State | ${nodes['DUT2']} | ${dut2_if1} | down
+| | VPP Set Interface MTU
+| | ... | ${nodes['DUT1']} | ${dut1_if2} | ${MTU_FOR_FRAGMENTATION}
+| | VPP Set Interface MTU
+| | ... | ${nodes['DUT2']} | ${dut2_if1} | ${MTU_FOR_FRAGMENTATION}
+| | Set Interface State | ${nodes['DUT1']} | ${dut1_if2} | up
+| | Set Interface State | ${nodes['DUT2']} | ${dut2_if1} | up
diff --git a/resources/libraries/robot/shared/memif.robot b/resources/libraries/robot/shared/memif.robot
index 50051ca413..e3f3ddc793 100644
--- a/resources/libraries/robot/shared/memif.robot
+++ b/resources/libraries/robot/shared/memif.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/libraries/robot/shared/suite_setup.robot b/resources/libraries/robot/shared/suite_setup.robot
index a9e57e7024..5c92ad9f52 100644
--- a/resources/libraries/robot/shared/suite_setup.robot
+++ b/resources/libraries/robot/shared/suite_setup.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -16,12 +16,16 @@
*** Settings ***
| Library | resources.libraries.python.DPDK.DPDKTools
| Library | resources.libraries.python.InterfaceUtil
+| Library | resources.libraries.python.NGINX.NGINXTools
+| Library | resources.tools.ab.ABTools
+| Library | resources.libraries.python.Iperf3
| Library | resources.libraries.python.NodePath
| Library | resources.libraries.python.topology.Topology
| Library | resources.libraries.python.TrafficGenerator
| Variables | resources/libraries/python/Constants.py
|
| Documentation | Suite setup keywords.
+
*** Keywords ***
| Create suite topology variables
| | [Documentation]
@@ -81,12 +85,14 @@
| |
| | [Arguments] | @{actions}
| |
+| | Start Suite Setup Export
| | ${nic_model_list}= | Create list | ${nic_name}
| | &{info}= | Compute Circular Topology
| | ... | ${nodes} | filter_list=${nic_model_list} | nic_pfs=${nic_pfs}
| | ... | always_same_link=${False} | topo_has_tg=${True}
| | Set suite variable | &{topology_info} | &{info}
| | Create suite topology variables | @{actions}
+| | Finalize Suite Setup Export
| Setup suite topology interfaces with no TG
| | [Documentation]
@@ -102,17 +108,43 @@
| |
| | [Arguments] | @{actions}
| |
+| | Start Suite Setup Export
| | ${nic_model_list}= | Create list | ${nic_name}
| | &{info}= | Compute Circular Topology
| | ... | ${nodes} | filter_list=${nic_model_list} | nic_pfs=${nic_pfs}
| | ... | always_same_link=${True} | topo_has_tg=${False}
| | Set suite variable | &{topology_info} | &{info}
| | Create suite topology variables | @{actions}
+| | Finalize Suite Setup Export
+
+| Setup suite topology interfaces with no DUT
+| | [Documentation]
+| | ... | Common suite setup for single link tests with no device under test
+| | ... | node.
+| | ... |
+| | ... | Compute path for testing on given topology nodes in circular topology
+| | ... | based on interface model provided as an argument and set
+| | ... | corresponding suite variables.
+| |
+| | ... | *Arguments:*
+| | ... | - ${actions} - Additional setup action. Type: list
+| |
+| | [Arguments] | @{actions}
+| |
+| | Start Suite Setup Export
+| | ${nic_model_list}= | Create list | ${nic_name}
+| | &{info}= | Compute Circular Topology
+| | ... | ${nodes} | filter_list=${nic_model_list} | nic_pfs=${nic_pfs}
+| | ... | always_same_link=${True} | topo_has_tg=${True} | topo_has_dut=${False}
+| | Set suite variable | &{topology_info} | &{info}
+| | Create suite topology variables | @{actions}
+| | Finalize Suite Setup Export
| Additional Suite Setup Action For scapy
| | [Documentation]
| | ... | Additional Setup for suites which uses scapy as Traffic generator.
| |
+| | Export TG Type And Version | scapy | 2.4.3
| | FOR | ${dut} | IN | @{duts}
| | | Set Suite Variable | ${${dut}_vf1} | ${${dut}_${int}1}
| | | Set Suite Variable | ${${dut}_vf2} | ${${dut}_${int}2}
@@ -124,6 +156,8 @@
| | [Documentation]
| | ... | Additional Setup for suites which uses dpdk.
| |
+| | ${version} = | Get Dpdk Version | ${nodes}[DUT1]
+| | Export Dut Type And Version | dpdk | ${version}
| | FOR | ${dut} | IN | @{duts}
| | | Initialize DPDK Framework | ${nodes['${dut}']}
| | | ... | ${${dut}_${int}1}[0] | ${${dut}_${int}2}[0] | ${nic_driver}
@@ -139,15 +173,15 @@
| |
| | ... | *Example:*
| |
-| | ... | \| Additional Suite Setup Action For performance_dut \| DUT1 \|
+| | ... | \| Additional Suite Setup Action For performance vf \| DUT1 \|
| |
| | [Arguments] | ${dut}
| |
| | FOR | ${pf} | IN RANGE | 1 | ${nic_pfs} + 1
| | | ${_vf}=
-| | | ... | Run Keyword | Init ${nic_driver} interface
-| | | ... | ${nodes['${dut}']} | ${${dut}_pf${pf}}[0] | numvfs=${nic_vfs}
-| | | ... | osi_layer=${osi_layer}
+| | | ... | Run Keyword | Init interface
+| | | ... | ${nodes['${dut}']} | ${${dut}_pf${pf}}[0] | driver=${nic_driver}
+| | | ... | numvfs=${nic_vfs} | osi_layer=${osi_layer}
| | | ${_mac}=
| | | ... | Create List | ${EMPTY}
| | | ${_ip4_addr}=
@@ -174,6 +208,26 @@
| | Set Suite Variable
| | ... | ${int} | prevf
+| Additional Suite Setup Action For performance pf
+| | [Documentation]
+| | ... | Additional Setup for suites which uses performance measurement for
+| | ... | single DUT (inner loop).
+| |
+| | ... | *Arguments:*
+| | ... | - dut - DUT node. Type: string
+| |
+| | ... | *Example:*
+| |
+| | ... | \| Additional Suite Setup Action For performance pf \| DUT1 \|
+| |
+| | [Arguments] | ${dut}
+| |
+| | FOR | ${pf} | IN RANGE | 1 | ${nic_pfs} + 1
+| | | Run Keyword | Init interface
+| | | ... | ${nodes['${dut}']} | ${${dut}_pf${pf}}[0] | driver=${nic_driver}
+| | | ... | numvfs=${0} | osi_layer=${osi_layer}
+| | END
+
| Additional Suite Setup Action For performance
| | [Documentation]
| | ... | Additional Setup for suites which uses performance measurement.
@@ -181,20 +235,93 @@
| | FOR | ${dut} | IN | @{duts}
| | | Run Keyword If | ${nic_vfs} > 0
| | | ... | Additional Suite Setup Action For performance vf | ${dut}
+| | | ... | ELSE
+| | | ... | Additional Suite Setup Action For performance pf | ${dut}
| | END
-| | Initialize traffic generator
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${dut1} | ${DUT1_${int}1}[0]
-| | ... | ${dut${duts_count}} | ${DUT${duts_count}_${int}2}[0]
-| | ... | ${osi_layer}
+| | ${type} = | Get TG Type | ${nodes}[TG]
+| | ${version} = | Get TG Version | ${nodes}[TG]
+| | Export TG Type And Version | ${type} | ${version}
+| | Initialize traffic generator | ${osi_layer} | ${nic_pfs}
+
+| Additional Suite Setup Action For performance_tg_nic
+| | [Documentation]
+| | ... | Additional Setup for suites which uses performance measurement
+| | ... | for L1 cross connect tests.
+| |
+| | ${type} = | Get TG Type | ${nodes}[TG]
+| | ${version} = | Get TG Version | ${nodes}[TG]
+| | Export Dut Type And Version | ${type} | ${version}
+| | Export TG Type And Version | ${type} | ${version}
+| | Initialize traffic generator | ${osi_layer} | ${nic_pfs}
-| Additional Suite Setup Action For ipsechw
+| Additional Suite Setup Action For iPerf3
+| | [Documentation]
+| | ... | Additional Setup for suites which uses performance measurement over
+| | ... | iPerf3.
+| |
+| | ${type} = | Get iPerf Type
+| | ${version} = | Get iPerf Version | ${nodes}[TG]
+| | Export TG Type And Version | ${type} | ${version}
+
+| Additional Suite Setup Action For cryptohw
| | [Documentation]
| | ... | Additional Setup for suites which uses QAT HW.
| |
-| | ${numvfs}= | Set Variable If
-| | ... | '${crypto_type}' == 'HW_DH895xcc' | ${32}
-| | ... | '${crypto_type}' == 'HW_C3xxx' | ${16}
-| | Configure crypto device on all DUTs | ${crypto_type} | numvfs=${numvfs}
-| | ... | force_init=${True}
-| | Configure kernel module on all DUTs | vfio_pci | force_load=${True}
+| | Crypto Device Verify on all DUTs | ${nodes}
+
+| Additional Suite Setup Action For nginx
+| | [Documentation]
+| | ... | Additional Setup for suites which uses Nginx.
+| |
+| | Install NGINX framework on all DUTs | ${nodes} | ${packages_dir}
+| | ... | ${nginx_version}
+
+| Additional Suite Setup Action For vppecho
+| | [Documentation]
+| | ... | Additional Setup for suites which uses performance measurement over
+| | ... | VPP Echo.
+| |
+| | Export DUT Type And Version | ${DUT_TYPE} | ${DUT_VERSION}
+| | Export TG Type And Version | ${DUT_TYPE} | ${DUT_VERSION}
+
+| Additional Suite Setup Action For ab
+| | [Documentation]
+| | ... | Additional Setup for suites which uses ab TG.
+| |
+| | Iface update numa node | ${tg}
+| | ${running}= | Is TRex running | ${tg}
+| | Run keyword if | ${running}==${True} | Teardown traffic generator | ${tg}
+| | ${curr_driver}= | Get PCI dev driver | ${tg}
+| | ... | ${tg['interfaces']['${TG_pf1}[0]']['pci_address']}
+| | Run keyword if | '${curr_driver}'!='${None}'
+| | ... | PCI Driver Unbind | ${tg} |
+| | ... | ${tg['interfaces']['${TG_pf1}[0]']['pci_address']}
+| | ${driver}= | Get Variable Value
+| | ... | ${tg['interfaces']['${TG_pf1}[0]']['driver']}
+| | PCI Driver Bind | ${tg}
+| | ... | ${tg['interfaces']['${TG_pf1}[0]']['pci_address']} | ${driver}
+| | ${intf_name}= | Get Linux interface name | ${tg}
+| | ... | ${tg['interfaces']['${TG_pf1}[0]']['pci_address']}
+| | FOR | ${ip_addr} | IN | @{ab_ip_addrs}
+| | | ${ip_addr_on_intf}= | Linux interface has IP | ${tg} | ${intf_name}
+| | | ... | ${ip_addr} | ${ab_ip_prefix}
+| | | Run Keyword If | ${ip_addr_on_intf}==${False} | Set Linux interface IP
+| | | ... | ${tg} | ${intf_name} | ${ip_addr} | ${ab_ip_prefix}
+| | END
+| | Set Linux interface up | ${nodes}[TG] | ${intf_name}
+| | ${curr_driver}= | Get PCI dev driver | ${tg}
+| | ... | ${tg['interfaces']['${TG_pf2}[0]']['pci_address']}
+| | Run keyword if | '${curr_driver}'!='${None}'
+| | ... | PCI Driver Unbind | ${tg} |
+| | ... | ${tg['interfaces']['${TG_pf2}[0]']['pci_address']}
+| | ${driver}= | Get Variable Value
+| | ... | ${tg['interfaces']['${TG_pf2}[0]']['driver']}
+| | PCI Driver Bind | ${tg}
+| | ... | ${tg['interfaces']['${TG_pf2}[0]']['pci_address']} | ${driver}
+| | ${intf_name}= | Get Linux interface name | ${tg}
+| | ... | ${tg['interfaces']['${TG_pf2}[0]']['pci_address']}
+| | Set Linux interface up | ${nodes}[TG] | ${intf_name}
+| | Check AB | ${tg}
+| | ${type} = | Get AB Type | ${nodes}[TG]
+| | ${version} = | Get AB Version | ${nodes}[TG]
+| | Export TG Type And Version | ${type} | ${version}
diff --git a/resources/libraries/robot/shared/suite_teardown.robot b/resources/libraries/robot/shared/suite_teardown.robot
index f164b0eeb5..810c8bb066 100644
--- a/resources/libraries/robot/shared/suite_teardown.robot
+++ b/resources/libraries/robot/shared/suite_teardown.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -30,10 +30,25 @@
| |
| | [Arguments] | @{actions}
| |
+| | Start Suite Teardown Export
| | FOR | ${action} | IN | @{actions}
| | | Run Keyword | Additional Suite Tear Down Action For ${action}
| | END
| | Remove All Added VIF Ports On All DUTs From Topology | ${nodes}
+| | Finalize Suite Teardown Export
+
+| Additional Suite Tear Down Action For ab
+| | [Documentation]
+| | ... | Additional teardown for suites which uses ab.
+| |
+| | ${intf_name}= | Get Linux interface name | ${tg}
+| | ... | ${tg['interfaces']['${tg_if1}']['pci_address']}
+| | FOR | ${ip_addr} | IN | @{ab_ip_addrs}
+| | | ${ip_addr_on_intf}= | Linux Interface Has IP | ${tg} | ${intf_name}
+| | | ... | ${ip_addr} | ${ab_ip_prefix}
+| | | Run Keyword If | ${ip_addr_on_intf}==${True} | Delete Linux Interface IP
+| | | ... | ${tg} | ${intf_name} | ${ip_addr} | ${ab_ip_prefix}
+| | END
| Additional Suite Tear Down Action For performance
| | [Documentation]
@@ -58,3 +73,4 @@
| | FOR | ${dut} | IN | @{duts}
| | | Kill Program | ${nodes['${dut}']} | iperf3
| | | Kill Program | ${nodes['${dut}']} | vpp_echo
+| | END
diff --git a/resources/libraries/robot/shared/test_setup.robot b/resources/libraries/robot/shared/test_setup.robot
index b5b9e57cf7..22e017fd6f 100644
--- a/resources/libraries/robot/shared/test_setup.robot
+++ b/resources/libraries/robot/shared/test_setup.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -21,13 +21,14 @@
*** Keywords ***
| Setup test
| | [Documentation]
-| | ... | Common test setup for tests.
+| | ... | Common test setup for VPP tests.
| |
| | ... | *Arguments:*
| | ... | - ${actions} - Additional setup action. Type: list
| |
| | [Arguments] | @{actions}
| |
+| | Start Test Export
| | Reset PAPI History On All DUTs | ${nodes}
| | ${int} = | Set Variable If | ${nic_vfs} > 0 | prevf | pf
| | Create base startup configuration of VPP on all DUTs
@@ -48,4 +49,4 @@
| | ... | Additional Setup for tests which uses namespace.
| |
| | ${trex_running}= | Is Trex Running | ${tg}
-| | Run Keyword Unless | ${trex_running} | Startup Trex | ${tg} | ${osi_layer}
+| | Run Keyword If | not ${trex_running} | Startup Trex | ${tg} | ${osi_layer}
diff --git a/resources/libraries/robot/shared/test_teardown.robot b/resources/libraries/robot/shared/test_teardown.robot
index 18be67cfc5..f590e8a7cd 100644
--- a/resources/libraries/robot/shared/test_teardown.robot
+++ b/resources/libraries/robot/shared/test_teardown.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -14,7 +14,7 @@
"""Keywords used in test teardowns."""
*** Settings ***
-| Resource | resources/libraries/robot/shared/container.robot
+| Resource | resources/libraries/robot/shared/default.robot
| Library | resources.libraries.python.PapiHistory
| Library | resources.libraries.python.topology.Topology
| Variables | resources/libraries/python/Constants.py
@@ -45,6 +45,7 @@
| | | Run Keyword | Additional Test Tear Down Action For ${action}
| | END
| | Clean Sockets On All Nodes | ${nodes}
+| | Finalize Test Export
| Tear down test raw
| | [Documentation]
@@ -60,6 +61,7 @@
| | | Run Keyword | Additional Test Tear Down Action For ${action}
| | END
| | Clean Sockets On All Nodes | ${nodes}
+| | Finalize Test Export
# Additional Test Tear Down Actions in alphabetical order
| Additional Test Tear Down Action For acl
@@ -86,6 +88,14 @@
| | | Destroy all '${container_group}' containers
| | END
+| Additional Test Tear Down Action For nginx
+| | [Documentation]
+| | ... | Additional teardown for tests which uses nginx.
+| |
+| | FOR | ${dut} | IN | @{duts}
+| | | Kill Program | ${nodes['${dut}']} | nginx
+| | END
+
| Additional Test Tear Down Action For det44
| | [Documentation]
| | ... | Additional teardown for tests which uses DET44 feature.
@@ -120,6 +130,16 @@
| | | ... | Show Ipsec Security Association | ${nodes['${dut}']}
| | END
+| Additional Test Tear Down Action For ipsec_all
+| | [Documentation]
+| | ... | Additional teardown for tests which use varied IPSec configuration.
+| | ... | Databases.
+| |
+| | FOR | ${dut} | IN | @{duts}
+| | | Run Keyword If Test Failed
+| | | ... | Vpp Ipsec Show All | ${nodes['${dut}']}
+| | END
+
| Additional Test Tear Down Action For linux_bridge
| | [Documentation]
| | ... | Additional teardown for tests which uses linux_bridge.
@@ -162,18 +182,25 @@
| |
| | Show Packet Trace on All DUTs | ${nodes}
+| Additional Test Tear Down Action For telemetry
+| | [Documentation]
+| | ... | Additional teardown for tests which uses telemetry reads.
+| |
+| | Run Telemetry On All DUTs
+| | ... | ${nodes} | profile=${telemetry_profile}.yaml
+
| Additional Test Tear Down Action For performance
| | [Documentation]
| | ... | Additional teardown for tests which uses performance measurement.
| | ... | Optionally, call \${resetter} (if defined) to reset DUT state.
| |
-| | ... | TODO: Document what test variables are required or optional.
-| |
| | Run Keyword If Test Passed | Return From Keyword
| | ${use_latency} = | Get Use Latency
| | ${rate_for_teardown} = | Get Rate For Teardown
| | Call Resetter
| | Set Test Variable | \${extended_debug} | ${True}
+| | Set Test Variable | ${telemetry_rate} | ${EMPTY}
+| | Set Test Variable | ${telemetry_export} | ${False}
| | Send traffic at specified rate
| | ... | trial_duration=${1.0}
| | ... | rate=${rate_for_teardown}
@@ -207,4 +234,4 @@
| |
| | ${vnf_status} | ${value}= | Run Keyword And Ignore Error
| | ... | Keyword Should Exist | vnf_manager.Kill All VMs
-| | Run Keyword If | '${vnf_status}' == 'PASS' | vnf_manager.Kill All VMs \ No newline at end of file
+| | Run Keyword If | '${vnf_status}' == 'PASS' | vnf_manager.Kill All VMs
diff --git a/resources/libraries/robot/shared/traffic.robot b/resources/libraries/robot/shared/traffic.robot
index 08f579c9df..af348bb12e 100644
--- a/resources/libraries/robot/shared/traffic.robot
+++ b/resources/libraries/robot/shared/traffic.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -652,3 +652,58 @@
| | ... | --tun_vni ${tun_vni} | --tun_src_ip ${tun_src_ip}
| | ... | --tun_dst_ip ${tun_dst_ip}
| | Run Traffic Script On Node | geneve_tunnel.py | ${node} | ${args}
+
+| Send flow packet and verify action
+| | [Documentation] | Send packet and verify the correctness of flow action.
+| |
+| | ... | *Arguments:*
+| |
+| | ... | _NOTE:_ Arguments are based on topology:
+| | ... | TG(if1)->(if1)DUT
+| |
+| | ... | - tg_node - Node to execute scripts on (TG). Type: dictionary
+| | ... | - tx_interface - TG Interface 1. Type: string
+| | ... | - tx_dst_mac - MAC address of DUT-if1. Type: string
+| | ... | - flow_type - Flow packet type. Type: string
+| | ... | - proto - Flow packet protocol. Type: string
+| | ... | - src_ip - Source ip address. Type: string
+| | ... | - dst_ip - Destination IP address. Type: string
+| | ... | - src_port - Source port. Type: int
+| | ... | - dst_port - Destination port. Type: int
+| | ... | - value - Additional packet value. Type: integer
+| | ... | - traffic_script - Traffic script that send packet. Type: string
+| | ... | - action - drop, mark or redirect-to-queue. Type: string
+| | ... | - action_value - action value. Type: integer
+| |
+| | ... | *Return:*
+| | ... | - No value returned
+| |
+| | ... | *Example:*
+| | ... | \| Send flow packet and verify actions \| ${nodes['TG']} \| eth2 \
+| | ... | \| 08:00:27:a2:52:5b \| IP4 \| UDP \
+| | ... | \| src_ip=1.1.1.1 \| dst_ip=2.2.2.2 \
+| | ... | \| src_port=${100} \| dst_port=${200} \
+| | ... | \| traffic_script=send_flow_packet \
+| | ... | \|action=mark \| action_value=${3} \|
+| |
+| | [Arguments] | ${tg_node} | ${tx_interface} | ${tx_dst_mac}
+| | ... | ${flow_type} | ${proto}
+| | ... | ${src_ip}=${None} | ${dst_ip}=${None}
+| | ... | ${src_port}=${None} | ${dst_port}=${None}
+| | ... | ${value}=${None}
+| | ... | ${traffic_script}=send_flow_packet
+| | ... | ${action}=redirect-to-queue
+| | ... | ${action_value}=${3}
+| |
+| | ${tx_src_mac}= | Get Interface Mac | ${tg_node} | ${tx_interface}
+| | ${tx_if_name}= | Get interface name | ${tg_node} | ${tx_interface}
+| | ${args}= | Catenate
+| | ... | --tg_if1_mac ${tx_src_mac} | --dut_if1_mac ${tx_dst_mac}
+| | ... | --tx_if ${tx_if_name} | --flow_type ${flow_type} | --proto ${proto}
+| | ... | --src_ip ${src_ip} | --dst_ip ${dst_ip}
+| | ... | --src_port ${src_port} | --dst_port ${dst_port}
+| | ... | --value ${value}
+| | Run Traffic Script On Node | ${traffic_script}.py | ${tg_node} | ${args}
+| | Vpp Verify Flow action | ${dut1} | ${action} | ${action_value}
+| | ... | ${tx_src_mac} | ${tx_dst_mac}
+| | ... | ${src_ip} | ${dst_ip}
diff --git a/resources/libraries/robot/shared/vm.robot b/resources/libraries/robot/shared/vm.robot
index eb6acb371f..5b45718a03 100644
--- a/resources/libraries/robot/shared/vm.robot
+++ b/resources/libraries/robot/shared/vm.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -38,7 +38,7 @@
| |
| | ... | *Example:*
| |
-| | ... | \| Configure chains of VMs connected via vhost-user
+| | ... | \| Configure chains of NFs connected via vhost-user
| | ... | \| 1 \| 1 \| False \| 1024 \| False \| False \| vpp \| True \|
| |
| | [Arguments] | ${nf_chains}=${1} | ${nf_nodes}=${1} | ${jumbo}=${False}
@@ -59,7 +59,7 @@
| | ... | vnf=${vnf} | tg_pf1_mac=${TG_pf1_mac}[0] | tg_pf2_mac=${TG_pf2_mac}[0]
| | ... | vs_dtc=${cpu_count_int} | nf_dtc=${nf_dtc} | nf_dtcr=${nf_dtcr}
| | ... | rxq_count_int=${rxq_count_int}
-| | ... | virtio_feature_mask=${virtio_feature_mask}
+| | ... | virtio_feature_mask=${virtio_feature_mask} | page_size=${page_size}
| | ${cpu_wt}= | Run Keyword | vnf_manager.Start All VMs | pinning=${pinning}
| | ${cpu_alloc_str}= | Catenate | SEPARATOR=, | ${cpu_alloc_str} | ${cpu_wt}
| | Set Test Variable | ${cpu_alloc_str}
@@ -114,10 +114,11 @@
| | ... | vnf=${vnf} | tg_pf1_mac=${TG_pf1_mac}[0] | tg_pf2_mac=${TG_pf2_mac}[0]
| | ... | vs_dtc=${cpu_count_int} | nf_dtc=${nf_dtc} | nf_dtcr=${nf_dtcr}
| | ... | rxq_count_int=${rxq_count_int}
-| | ... | virtio_feature_mask=${virtio_feature_mask}
+| | ... | virtio_feature_mask=${virtio_feature_mask} | page_size=${page_size}
| | ${cpu_wt}= | Run Keyword | vnf_manager.Start All VMs | pinning=${pinning}
-| | ${cpu_alloc_str}= | Catenate | SEPARATOR=, | ${cpu_alloc_str} | ${cpu_wt}
-| | Set Test Variable | ${cpu_alloc_str}
+| | ${cpu_alloc_str}= | Catenate | SEPARATOR=,
+| | ... | ${${node}_cpu_alloc_str} | ${cpu_wt}
+| | Set Test Variable | ${${node}_cpu_alloc_str} | ${cpu_alloc_str}
| | Run Keyword If | ${validate}
| | ... | All VPP Interfaces Ready Wait | ${nodes} | retries=${300}
| | VPP round robin RX placement on all DUTs | ${nodes} | prefix=Virtual
@@ -143,7 +144,7 @@
| |
| | ... | *Example:*
| |
-| | ... | \| Configure chains of VMs connected via passtrough
+| | ... | \| Configure chains of NFs connected via passtrough
| | ... | \| 1 \| 1 \| False \| 1024 \| False \| False \| vpp \| True \|
| |
| | [Arguments] | ${nf_chains}=${1} | ${nf_nodes}=${1} | ${jumbo}=${False}
@@ -164,7 +165,7 @@
| | ... | vnf=${vnf} | tg_pf1_mac=${TG_pf1_mac}[0] | tg_pf2_mac=${TG_pf2_mac}[0]
| | ... | vs_dtc=${cpu_count_int} | nf_dtc=${nf_dtc} | nf_dtcr=${nf_dtcr}
| | ... | rxq_count_int=${rxq_count_int}
-| | ... | virtio_feature_mask=${virtio_feature_mask}
+| | ... | virtio_feature_mask=${virtio_feature_mask} | page_size=${page_size}
| | ... | if1=${DUT1_${int}1}[0] | if2=${DUT1_${int}2}[0]
| | ${cpu_wt}= | Run Keyword | vnf_manager.Start All VMs | pinning=${pinning}
| | ${cpu_alloc_str}= | Catenate | SEPARATOR=, | ${cpu_alloc_str} | ${cpu_wt}
diff --git a/resources/libraries/robot/wireguard/wireguard.robot b/resources/libraries/robot/wireguard/wireguard.robot
new file mode 100644
index 0000000000..f85c0eb7b1
--- /dev/null
+++ b/resources/libraries/robot/wireguard/wireguard.robot
@@ -0,0 +1,66 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Library | String
+| Library | resources.libraries.python.InterfaceUtil
+| Library | resources.libraries.python.WireGuardUtil
+| Library | resources.libraries.python.IPUtil
+| Library | resources.libraries.python.IPv6Util
+|
+| Documentation | Wireguard keywords.
+
+*** Keywords ***
+| Generate keys for WireGuard
+| | [Documentation] | Generate a pair of keys for WireGuard
+| |
+| | ... | _NOTE:_ This KW sets following test case variable:
+| | ... | - private_key - wireguard Private key. Type: bytes
+| | ... | - pub_key - wireguard public key. Type: bytes
+| |
+| | ... | *Example:*
+| | ... | \| ${private_key} | ${pub_key} |
+| | ... | \| Generate Wireguard Privatekey and Pubkey \|
+| |
+| | ${private_key} | ${pub_key} | Generate Wireguard Privatekey and Pubkey
+| | Set Test Variable | ${private_key}
+| | Set Test Variable | ${pub_key}
+
+| Initialize WireGuard in 3-node circular topology
+| | [Documentation]
+| | ... | Set UP state on VPP interfaces in path on nodes in 3-node circular
+| | ... | topology. Get the interface MAC addresses and setup ARP on VPP
+| | ... | interfaces towards TG. Setup IPv4 addresses with /24 prefix on DUT-TG
+| | ... | links. Set routing for decrypted traffic on both DUT nodes
+| | ... | with prefix /8 and next hop of neighbour TG interface IPv4 address.
+| |
+| | VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut1_if1_ip4} | 24
+| | VPP Interface Set IP Address
+| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_if2_ip4} | 24
+| | VPP Add IP Neighbor
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${tg_if1_ip4} | ${TG_pf1_mac}[0]
+| | VPP Add IP Neighbor
+| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${tg_if2_ip4} | ${TG_pf2_mac}[0]
+| | Vpp Route Add | ${dut1} | ${laddr_ip4} | 8 | gateway=${tg_if1_ip4}
+| | ... | interface=${DUT1_${int}1}[0]
+| | Vpp Route Add | ${dut2} | ${raddr_ip4} | 8 | gateway=${tg_if2_ip4}
+| | ... | interface=${DUT2_${int}2}[0]
+
+| VPP Enable Wireguard Async Mode on all VPP DUTs
+| | [Documentation]
+| | ... | Enable wireguard async mode on all DUT nodes.
+| |
+| | FOR | ${dut} | IN | @{duts}
+| | | VPP Wireguard Set Async Mode | ${nodes['${dut}']}
+| | END
diff --git a/resources/model_schema/test_case.schema.yaml b/resources/model_schema/test_case.schema.yaml
new file mode 100644
index 0000000000..f0d350e337
--- /dev/null
+++ b/resources/model_schema/test_case.schema.yaml
@@ -0,0 +1,752 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+---
+
+$id: https://fd.io/FIXME/CSIT/UTI/test_case/info/1.5.1
+$schema: https://json-schema.org/draft/2020-12/schema
+description: >-
+ Schema for output of test case.
+allOf:
+- description: >-
+ The main structure, without conditional relations between fields yet.
+ type: object
+ additionalProperties: false
+ properties:
+ duration:
+ description: >-
+ A derived quantity. Difference between start_time and end_time,
+ in seconds.
+ $ref: "#/$defs/types/nonnegative_number"
+ dut_type:
+ description: >-
+ DUT type used, e.g. VPP or DPDK.
+ type: string
+ minLength: 1
+ dut_version:
+ description: >-
+ Version string appropriate to DUT type used.
+ type: string
+ minLength: 1
+ end_time:
+ description: >-
+ UTC date and time in RFC 3339 format, specifying calendar time
+ just before test case ended (at the end of test case teardown).
+ $ref: "#/$defs/types/date_time"
+ hosts:
+ description: >-
+ Array of hosts this test interacted with.
+ This can be used for identifying testbed number.
+ Valid tests shoud interact with at least one DUT or TG.
+ The array is usually sorted, but that is not a requirement.
+ type: array
+ minItems: 1
+ items:
+ description: >-
+ Host identifier, usually numeric IPv4 address.
+ type: string
+ telemetry:
+ description: >-
+ Array of telemetry entries. Each entry represent one captured
+ metric.
+ type: array
+ minItems: 0
+ items:
+ description: >-
+ Telemetry entry.
+ type: string
+ message:
+ description: >-
+ If passed is true, this value is empty.
+ Otherwise, value taken directly from TEST_MESSAGE
+ Robot variable, read at the end of test case
+ (in test teardown, before export and validation).
+ It contains information from the exception
+ that caused the failure, probably with additional
+ exceptions from teardown keywords.
+ type: string
+ passed:
+ description: >-
+ Value set accordingly to TEST_STATUS Robot variable,
+ true if and only if the status is "PASS".
+ The status is read at the end of test case
+ (in test teardown, before export and validation).
+ type: boolean
+ result:
+ type: object
+ allOf:
+ - description: >-
+ Sub-schema common for all cases,
+ only result type identifier defined here.
+ properties:
+ type:
+ description: >-
+ Identifier of which result type case is applied.
+ type: string
+ required:
+ - type
+ - oneOf:
+ - description: >-
+ Result type for unknown case.
+ This case represents a test with no specific result
+ (outside message), e.g. device test;
+ or a test with result not parsed into
+ this version of model yet, e.g. GSO test.
+ additionalProperties: false
+ properties:
+ type:
+ const: unknown
+ - description: >-
+ Result type MRR case.
+ additionalProperties: false
+ properties:
+ type:
+ const: mrr
+ receive_rate:
+ description: >-
+ The results refer to receive rates for multiple
+ MRR trials. For PPS, these are aggregate
+ (bidirectional) rates.
+ Currently, the tests are exporting
+ approximated receive rates.
+ That means the actual trial duration
+ is measured (as opposed to trusting traffic
+ generator to honor its target duration),
+ so the resulting values contain noise
+ from time measurement, and can be lower
+ than the real performance
+ (due to various time overheads).
+ Bandwidth values are supported, but currently
+ Robot does not export them.
+ $ref: "#/$defs/types/rate_list_with_bandwidth"
+ required:
+ - type
+ - receive_rate
+ - description: >-
+ Result type NDRPDR case.
+ additionalProperties: false
+ properties:
+ type:
+ const: ndrpdr
+ ndr:
+ description: >-
+ The results refer to search for NDR
+ The accepted loss ratio for NDR is exact zero.
+ Exceed ratio is 50%.
+ For PPS, lowerbound is aggregate
+ (bidirectional) conditional throughput
+ (median forwarding rate among long trials),
+ upperbound is missing.
+ Note that packets the Traffic Generator
+ did not send are also counted as lost packets.
+ $ref: "#/$defs/macros/lower_and_maybe_upper_rate"
+ pdr:
+ description: >-
+ The results refer to search for PDR.
+ The accepted loss ratio for PDR is 0.5%.
+ Exceed ratio is 50%.
+ For PPS, lowerbound is aggregate
+ (bidirectional) conditional throughput
+ (median forwarding rate among long trials),
+ upperbound is missing.
+ Note that packets the Traffic Generator
+ did not send are also counted as lost packets.
+ $ref: "#/$defs/macros/lower_and_maybe_upper_rate"
+ latency_forward:
+ description: >-
+ Object with results related to latency part
+ of NDRPDR test, for forward traffic direction.
+ It is the direction used in unidirectional
+ traffic profiles.
+ ASTF profiles and IMIX STL profiles
+ do not support latency information,
+ so for those tests this object is missing.
+ It is also missing if Traffic Generator
+ fails to return valid latency results
+ for any other reasons,
+ e.g. latency rate is too high for CPU/NIC used.
+ $ref: "#/$defs/macros/latency_for_loads"
+ latency_reverse:
+ description: >-
+ Object with results related to latency part
+ of NDRPDR test, for reverse traffic diration.
+ This object is not present
+ when unidirectional traffic profiles are used.
+ ASTF profiles and IMIX STL profiles
+ do not support latency information,
+ so for those tests this object is missing.
+ It is also missing if Traffic Generator
+ fails to return valid latency results
+ for any other reasons,
+ e.g. latency rate is too high for CPU/NIC used.
+ $ref: "#/$defs/macros/latency_for_loads"
+ required:
+ - type
+ - ndr
+ - pdr
+ - description: >-
+ Result type SOAK case.
+ additionalProperties: false
+ properties:
+ type:
+ const: soak
+ critical_rate:
+ description: >-
+ The results refer to bayesian estimate
+ of critical rate corresponding to
+ average loss ratio of 10^-7.
+ For PPS, this is aggregate (bidirectional) rate.
+ The bounds are computed from
+ trial measurement results,
+ but are not equal to any target load used.
+ Note that packets the Traffic Generator
+ did not send are also counted as lost packets.
+ $ref: "#/$defs/macros/lower_and_maybe_upper_rate"
+ required:
+ - type
+ - critical_rate
+ - description: >-
+ Result type RECONF case.
+ additionalProperties: false
+ properties:
+ type:
+ const: reconf
+ aggregate_rate:
+ description: >-
+ Load used when reconfiguring, found as NDR lower
+ bound. This is an aggregate (bidirectional)
+ rate. Note that packets which the Traffic
+ Generator did not send, are also counted as lost
+ packets.
+ $ref: "#/$defs/types/rate_with_bandwidth"
+ loss:
+ description: >-
+ Number of packets lost during reconfiguration,
+ with the time that equals packet loss divided by
+ packet rate.
+ $ref: "#/$defs/types/packet_with_time"
+ required:
+ - type
+ - loss
+ - aggregate_rate
+ - description: >-
+ Result type HOSTSTACK case.
+ additionalProperties: false
+ properties:
+ type:
+ const: hoststack
+ bandwidth:
+ description: >-
+ Goodput measured in bits per second.
+ $ref: "#/$defs/types/bandwidth"
+ completed_requests:
+ description: >-
+ Number of completed requests.
+ $ref: "#/$defs/types/count_requests"
+ failed_requests:
+ description: >-
+ Number of failed requests.
+ $ref: "#/$defs/types/count_requests"
+ retransmits:
+ description: >-
+ Number of retransmits.
+ $ref: "#/$defs/types/count_packets"
+ latency:
+ description: >-
+ Value and unit of latency.
+ $ref: "#/$defs/types/value_with_unit"
+ duration:
+ description: >-
+ The relative time difference (in seconds)
+ between program start and end.
+ $ref: "#/$defs/types/time_quantity"
+ rate:
+ description: >-
+ RPS or CPS rate, with corresponding unit, as
+ reported by TG.
+ $ref: "#/$defs/types/rate_without_bandwidth"
+ required:
+ - type
+ - bandwidth
+ start_time:
+ description: >-
+ UTC date and time in RFC 3339 format, specifying calendar time
+ just after test case started (at the start of test setup).
+ $ref: "#/$defs/types/date_time"
+ tags:
+ description: >-
+ The list of strings comes directly
+ from Robot variable TEST_TAGS.
+ The content should include both static and dynamic tags
+ at the end of test case (teardown).
+ type: array
+ items:
+ type: string
+ test_documentation:
+ description: >-
+ Value taken directly from TEST_DOCUMENTATION Robot variable.
+ The content is what you see in suite file
+ at test case definition, which is usually empty
+ as CSIT uses data driven test cases.
+ type: string
+ test_id:
+ description: >-
+ A derived quantity.
+ It is the most complete and unique identifier for a test case.
+ This property has a value, of the following form:
+ {suite_name}.{test_name}
+ Here, suite name comes from SUITE_NAME robot variable,
+ test name comes from TEST_NAME robot variable,
+ but both are converted to lower case,
+ and spaces are replaced by underscores.
+ type: string
+ minLength: 3
+ test_name_long:
+ description: >-
+ A derived quantity.
+ This property has a value, of the following form:
+ {nic_short_name}-{frame_size}-{threads_and_cores}-{suite_part}
+ Here, suite part is very similar to suite tag,
+ but additionally may contain a prefix describing NIC driver used
+ (if it is not the default one, drv_vfio_pci for VPP tests).
+ Any space is replaced by underscore and letters are lower case.
+ type: string
+ minLength: 3
+ test_name_short:
+ description: >-
+ A derived quantity.
+ This property has a value very similar to suite tag,
+ but additionally may contain a prefix describing NIC driver used
+ (if it is not the default one, drv_vfio_pci for VPP tests).
+ Any space is replaced by underscore and letters are lower case.
+ type: string
+ minLength: 3
+ test_type:
+ description: >-
+ A derived quantity.
+ Test type identifier, PAL uses it to group similar tests,
+ e.g. for comparison tables.
+ Ideally, this information should be parseable from test name,
+ but the current naming scheme is not simple/consistent enough.
+ The current implementation queries the robot test tags.
+ The resulting value is frequently identical to result type,
+ but this schema version does not require any relation there,
+ as PAL may want to group tests differently.
+ type: string
+ enum:
+ - device
+ - gso
+ - hoststack
+ - mrr
+ - ndrpdr
+ - reconf
+ - soak
+ tg_type:
+ description: >-
+ TG type used, e.g. TREX.
+ type: string
+ minLength: 1
+ tg_version:
+ description: >-
+ Version string appropriate to TG type used.
+ type: string
+ minLength: 1
+ version:
+ description: >-
+ CSIT model version (semver format)
+ the exporting code adhered to.
+ type: string
+ const: 1.5.1
+ required:
+ - duration
+ - dut_type
+ - dut_version
+ - end_time
+ - hosts
+ - telemetry
+ - message
+ - passed
+ - result
+ - start_time
+ - tags
+ - test_documentation
+ - test_id
+ - test_name_long
+ - test_name_short
+ - test_type
+ - tg_type
+ - tg_version
+ - version
+- description: >-
+ Subschema validating relation between status and message.
+ oneOf:
+ - description: >-
+ Subschema for passing tests, message has to be empty.
+ type: object
+ properties:
+ passed:
+ const: true
+ message:
+ const: ""
+ - description: >-
+ Subschema for failing tests, mesage cannot be empty.
+ type: object
+ properties:
+ passed:
+ const: false
+ message:
+ minLength: 1
+
+$defs:
+ types:
+ nonnegative_number:
+ type: number
+ minimum: 0
+ positive_number:
+ type: number
+ minimum: 1
+ nonnegative_integer:
+ type: integer
+ minimum: 0
+ positive_integer:
+ type: integer
+ minimum: 1
+ date_time:
+ type: string
+ format: date-time
+ empty_array:
+ type: array
+ maxItems: 0
+ rate_unit:
+ description: >-
+ Packets per second (pps),
+ connections per second (cps),
+ requests per second (rps),
+ bits per second (bps).
+ type: string
+ enum:
+ - pps
+ - cps
+ - rps
+ - bps
+ bandwidth_unit:
+ description: >-
+ Unit of measurement for bandwidth values.
+ Currently a constant, but later versions of model
+ may allow more units.
+ enum:
+ - bps
+ count_packets:
+ description: >-
+ Type, for counting packets.
+ allOf:
+ - $ref: "#/$defs/types/value_with_unit"
+ - properties:
+ value:
+ description: >-
+ A number of packets of interest.
+ unit:
+ description: >-
+ Unit suitable for displaying packet counts.
+ enum:
+ - packets
+ count_requests:
+ description: >-
+ Type, for counting requests.
+ allOf:
+ - $ref: "#/$defs/types/value_with_unit"
+ - properties:
+ value:
+ description: >-
+ A number of requests of interest.
+ unit:
+ description: >-
+ Unit suitable for displaying request counts.
+ enum:
+ - requests
+ time_quantity:
+ description: >-
+ Reusable type, for various time quantites.
+ allOf:
+ - $ref: "#/$defs/types/value_with_unit"
+ - properties:
+ value:
+ description: >-
+ Unless specified otherwise, this is a duration
+ between two events.
+ unit:
+ description: >-
+ Only seconds are the unit supported for time
+ quantities.
+ enum:
+ - s
+ value_with_unit:
+ description: >-
+ Reusable composite type, value together with its
+ unit of measurement.
+ type: object
+ additionalProperties: false
+ properties:
+ value:
+ description: >-
+ Numeric value, context specified elsewhere.
+ The only assumption is that value is not negative.
+ $ref: "#/$defs/types/nonnegative_number"
+ unit:
+ description: >-
+ Unit of measurement for the value.
+ Context and allowed values are specified elsewhere.
+ type: string
+ required:
+ - value
+ - unit
+ rate_without_bandwidth:
+ description: >-
+ Reusable type, for various rate quantites.
+ allOf:
+ - $ref: "#/$defs/types/value_with_unit"
+ - properties:
+ value:
+ description: >-
+ Unless specified otherwise,
+ this is the aggregated rate
+ (sum of both traffic directions).
+ Depending on the usage, the value can express
+ intended load, offered load, receive rate,
+ and various approximations
+ or estimated bounds thereof.
+ unit:
+ description: >-
+ A transaction rate unit the value is expressed in.
+ $ref: "#/$defs/types/rate_unit"
+ bandwidth:
+ description: >-
+ Reusable type, for various bandwidth quantites.
+ allOf:
+ - $ref: "#/$defs/types/value_with_unit"
+ - properties:
+ value:
+ description: >-
+ Bandwidth value computed from the corresponding
+ rate.
+ unit:
+ $ref: "#/$defs/types/bandwidth_unit"
+ rate_with_bandwidth:
+ description: >-
+ Reusable composite type, joining primary rate
+ with optional derived bandwidth.
+ Not all test types currently compute bandwidth,
+ even if rate unit is pps.
+ type: object
+ additionalProperties: false
+ properties:
+ rate:
+ $ref: "#/$defs/types/rate_without_bandwidth"
+ bandwidth:
+ $ref: "#/$defs/types/bandwidth"
+ required:
+ - rate
+ packet_with_time:
+ description: >-
+ Reusable composite type, joining packet count with the
+ time quantity.
+ type: object
+ additionalProperties: false
+ properties:
+ packet:
+ $ref: "#/$defs/types/count_packets"
+ time:
+ $ref: "#/$defs/types/time_quantity"
+ required:
+ - packet
+ - time
+ value_list_with_unit_and_stats:
+ description: >-
+ Reusable composite type, multiple values together with their
+ unit of measurement and derived statistics.
+ type: object
+ additionalProperties: false
+ properties:
+ values:
+ description: >-
+ List of values of the same unit, useful for MRR.
+ type: array
+ minItmes: 1
+ items:
+ description: >-
+ Numeric value, context specified elsewhere. The only
+ assumption is that the value is nonnegative.
+ $ref: "#/$defs/types/nonnegative_number"
+ avg:
+ description: >-
+ A derived quantity. It is the arithmetic average of the
+ values list.
+ $ref: "#/$defs/types/nonnegative_number"
+ stdev:
+ description: >-
+ A derived quantity. It is the standard deviation for the
+ values list, as computed by jumpavg library.
+ $ref: "#/$defs/types/nonnegative_number"
+ unit:
+ description: >-
+ Unit of measurement for the values.
+ Context and allowed values are specified elsewhere.
+ type: string
+ required:
+ - values
+ - avg
+ - stdev
+ - unit
+ rate_list_without_bandwidth:
+ description: >-
+ Reusable composite type, multiple rate values.
+ allOf:
+ - $ref: "#/$defs/types/value_list_with_unit_and_stats"
+ - properties:
+ values:
+ items:
+ description: >-
+ Unless specified otherwise,
+ this is the aggregated rate
+ (sum of both traffic directions).
+ Depending on the usage, the value can express
+ intended load, offered load, receive rate,
+ and various approximations or estimated bounds
+ thereof.
+ unit:
+ $ref: "#/$defs/types/rate_unit"
+ bandwidth_list:
+ description: >-
+ Reusable composite type, multiple bandwidth values. This is a
+ derived quantity.
+ allOf:
+ - $ref: "#/$defs/types/value_list_with_unit_and_stats"
+ - properties:
+ values:
+ items:
+ description: >-
+ Unless specified otherwise,
+ this is the aggregated bandwidth
+ (sum of both traffic directions).
+ Depending on the usage, the value can express
+ intended load, offered load, receive rate,
+ and various approximations or estimated bounds
+ thereof.
+ unit:
+ $ref: "#/$defs/types/bandwidth_unit"
+ rate_list_with_bandwidth:
+ description: >-
+ Reusable composite type, joining primary rates
+ with optional derived bandwidths (and stats).
+ No test types currently computes the bandwidth part.
+ type: object
+ additionalProperties: false
+ properties:
+ rate:
+ $ref: "#/$defs/types/rate_list_without_bandwidth"
+ bandwidth:
+ $ref: "#/$defs/types/bandwidth_list"
+ required:
+ - rate
+ macros:
+ lower_and_maybe_upper_rate:
+ type: object
+ additionalProperties: false
+ properties:
+ lower:
+ description: >-
+ The lower bound (or min_rate) for the estimate
+ of a particular searched value.
+ $ref: "#/$defs/types/rate_with_bandwidth"
+ upper:
+ description: >-
+ The upper bound (or max_rate) for the estimate
+ of a particular searched value.
+ $ref: "#/$defs/types/rate_with_bandwidth"
+ required:
+ - lower
+ latency_numbers:
+ type: object
+ additionalProperties: false
+ properties:
+ min:
+ description: >-
+ Rounded minimal latency time measured in this trial.
+ See unit property for the unit of measurement.
+ $ref: "#/$defs/types/nonnegative_integer"
+ max:
+ description: >-
+ Rounded maximal latency time measured in this trial.
+ See unit property for the unit of measurement.
+ Zero value is not allowed, as that is one of symptoms
+ of Traffic Generator failing to get proper latency.
+ $ref: "#/$defs/types/positive_integer"
+ avg:
+ description: >-
+ Rounded average latency time measured in this trial.
+ See unit property for the unit of measurement.
+ $ref: "#/$defs/types/nonnegative_integer"
+ hdrh:
+ description: >-
+ Base64-encoded compressed representation of HDRHistogram
+ of all latency sample times encountered
+ in this latency trial.
+ See unit property for the unit of measurement.
+ Note that some bins can be several units wide.
+ type: string
+ unit:
+ description: >-
+ Unit of measurement for latency times.
+ Currently a constant, but later versions
+ of the model may allow more values.
+ type: string
+ enum:
+ - us
+ required:
+ - avg
+ - hdrh
+ - max
+ - min
+ - unit
+ latency_for_loads:
+ type: object
+ additionalProperties: false
+ properties:
+ pdr_0:
+ description: >-
+ Object related to latency measurement performed
+ at minimal rate (currently 9000 pps per direction).
+ $ref: "#/$defs/macros/latency_numbers"
+ pdr_10:
+ description: >-
+ Object related to latency measurement performed
+ at 10% of PDR lower bound, if needed rounded up
+ to minimal rate (currently 9000 pps per direction).
+ $ref: "#/$defs/macros/latency_numbers"
+ pdr_50:
+ description: >-
+ Object related to latency measurement performed
+ at 50% of PDR lower bound, if needed rounded up
+ to minimal rate (currently 9000 pps per direction).
+ $ref: "#/$defs/macros/latency_numbers"
+ pdr_90:
+ description: >-
+ Object related to latency measurement performed
+ at 90% of PDR lower bound, if needed rounded up
+ to minimal rate (currently 9000 pps per direction).
+ $ref: "#/$defs/macros/latency_numbers"
+ required:
+ - pdr_0
+ - pdr_10
+ - pdr_50
+ - pdr_90
diff --git a/resources/templates/container/memif_create_chain_dma.exec b/resources/templates/container/memif_create_chain_dma.exec
new file mode 100644
index 0000000000..e4dac71943
--- /dev/null
+++ b/resources/templates/container/memif_create_chain_dma.exec
@@ -0,0 +1,10 @@
+create memif socket id $sid1 filename $socket1
+create interface memif id $mid1 socket-id $sid1 master use-dma
+set int state memif$sid1/$mid1 up
+
+create memif socket id $sid2 filename $socket2
+create interface memif id $mid2 socket-id $sid2 master use-dma
+set int state memif$sid2/$mid2 up
+
+set interface l2 xconnect memif$sid2/$mid2 memif$sid1/$mid1
+set interface l2 xconnect memif$sid1/$mid1 memif$sid2/$mid2 \ No newline at end of file
diff --git a/resources/templates/telemetry/bpf_runtime.yaml b/resources/templates/telemetry/bpf_runtime.yaml
new file mode 100644
index 0000000000..e2e1fd52f1
--- /dev/null
+++ b/resources/templates/telemetry/bpf_runtime.yaml
@@ -0,0 +1,752 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 1
+ sample_period: 100
+programs:
+ - name: bundle_bpf
+ metrics:
+ counter:
+ - name: cpu_cycle
+ documentation: Cycles processed by CPUs
+ namespace: bpf
+ labelnames:
+ - name
+ - cpu
+ - pid
+ events:
+ - type: 0x4 # RAW
+ name: 0x3C # INTEL_CORE_E_CPU_CLK_UNHALTED_THREAD_P
+ target: on_cpu_cycle
+ table: cpu_cycle
+ code: |
+ #include <linux/ptrace.h>
+ #include <uapi/linux/bpf_perf_event.h>
+
+ const int max_cpus = 256;
+
+ struct key_t {
+ int cpu;
+ int pid;
+ char name[TASK_COMM_LEN];
+ };
+
+ BPF_HASH(cpu_cycle, struct key_t);
+
+ static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+ key->cpu = bpf_get_smp_processor_id();
+ key->pid = bpf_get_current_pid_tgid();
+ bpf_get_current_comm(&(key->name), sizeof(key->name));
+ }
+
+ int on_cpu_cycle(struct bpf_perf_event_data *ctx) {
+ struct key_t key = {};
+ get_key(&key);
+
+ cpu_cycle.increment(key, ctx->sample_period);
+ return 0;
+ }
+ - name: bundle_bpf
+ metrics:
+ counter:
+ - name: cpu_instruction
+ documentation: Instructions retired by CPUs
+ namespace: bpf
+ labelnames:
+ - name
+ - cpu
+ - pid
+ events:
+ - type: 0x4 # RAW
+ name: 0xC0 # INTEL_CORE_E_INST_RETIRED_ANY_P
+ target: on_cpu_instruction
+ table: cpu_instruction
+ code: |
+ #include <linux/ptrace.h>
+ #include <uapi/linux/bpf_perf_event.h>
+
+ const int max_cpus = 256;
+
+ struct key_t {
+ int cpu;
+ int pid;
+ char name[TASK_COMM_LEN];
+ };
+
+ BPF_HASH(cpu_instruction, struct key_t);
+
+ static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+ key->cpu = bpf_get_smp_processor_id();
+ key->pid = bpf_get_current_pid_tgid();
+ bpf_get_current_comm(&(key->name), sizeof(key->name));
+ }
+
+ int on_cpu_instruction(struct bpf_perf_event_data *ctx) {
+ struct key_t key = {};
+ get_key(&key);
+
+ cpu_instruction.increment(key, ctx->sample_period);
+ return 0;
+ }
+ - name: bundle_bpf
+ metrics:
+ counter:
+ - name: cache_references
+ documentation: Cache references
+ namespace: bpf
+ labelnames:
+ - name
+ - cpu
+ - pid
+ events:
+ - type: 0x0 # HARDWARE
+ name: 0x2 # PERF_COUNT_HW_CACHE_REFERENCES
+ target: on_cache_reference
+ table: cache_references
+ code: |
+ #include <linux/ptrace.h>
+ #include <uapi/linux/bpf_perf_event.h>
+
+ const int max_cpus = 256;
+
+ struct key_t {
+ int cpu;
+ int pid;
+ char name[TASK_COMM_LEN];
+ };
+
+ BPF_HASH(cache_references, struct key_t);
+
+ static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+ key->cpu = bpf_get_smp_processor_id();
+ key->pid = bpf_get_current_pid_tgid();
+ bpf_get_current_comm(&(key->name), sizeof(key->name));
+ }
+
+ int on_cache_reference(struct bpf_perf_event_data *ctx) {
+ struct key_t key = {};
+ get_key(&key);
+
+ cache_references.increment(key, ctx->sample_period);
+ return 0;
+ }
+ - name: bundle_bpf
+ metrics:
+ counter:
+ - name: cache_miss
+ documentation: Cache misses
+ namespace: bpf
+ labelnames:
+ - name
+ - cpu
+ - pid
+ events:
+ - type: 0x0 # HARDWARE
+ name: 0x3 # PERF_COUNT_HW_CACHE_MISSES
+ target: on_cache_miss
+ table: cache_miss
+ code: |
+ #include <linux/ptrace.h>
+ #include <uapi/linux/bpf_perf_event.h>
+
+ const int max_cpus = 256;
+
+ struct key_t {
+ int cpu;
+ int pid;
+ char name[TASK_COMM_LEN];
+ };
+
+ BPF_HASH(cache_miss, struct key_t);
+
+ static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+ key->cpu = bpf_get_smp_processor_id();
+ key->pid = bpf_get_current_pid_tgid();
+ bpf_get_current_comm(&(key->name), sizeof(key->name));
+ }
+
+ int on_cache_miss(struct bpf_perf_event_data *ctx) {
+ struct key_t key = {};
+ get_key(&key);
+
+ cache_miss.increment(key, ctx->sample_period);
+ return 0;
+ }
+# - name: bundle_bpf
+# metrics:
+# counter:
+# - name: branch_instruction
+# documentation: Instructions retired by branch
+# namespace: bpf
+# labelnames:
+# - name
+# - cpu
+# - pid
+# events:
+# - type: 0x0 # HARDWARE
+# name: 0x4 # PERF_COUNT_HW_BRANCH_INSTRUCTION
+# target: on_branch_instruction
+# table: branch_instruction
+# code: |
+# #include <linux/ptrace.h>
+# #include <uapi/linux/bpf_perf_event.h>
+#
+# const int max_cpus = 256;
+#
+# struct key_t {
+# int cpu;
+# int pid;
+# char name[TASK_COMM_LEN];
+# };
+#
+# BPF_HASH(branch_instruction, struct key_t);
+#
+# static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+# key->cpu = bpf_get_smp_processor_id();
+# key->pid = bpf_get_current_pid_tgid();
+# bpf_get_current_comm(&(key->name), sizeof(key->name));
+# }
+#
+# int on_branch_instruction(struct bpf_perf_event_data *ctx) {
+# struct key_t key = {};
+# get_key(&key);
+#
+# branch_instruction.increment(key, ctx->sample_period);
+# return 0;
+# }
+# - name: bundle_bpf
+# metrics:
+# counter:
+# - name: branch_misses (not supported by CPU)
+# documentation: Last level miss operations by type
+# namespace: bpf
+# labelnames:
+# - name
+# - cpu
+# - pid
+# events:
+# - type: 0x0 # HARDWARE
+# name: 0x5 # PERF_COUNT_HW_BRANCH_MISSES
+# target: on_branch_misses
+# table: branch_misses
+# code: |
+# #include <linux/ptrace.h>
+# #include <uapi/linux/bpf_perf_event.h>
+#
+# const int max_cpus = 256;
+#
+# struct key_t {
+# int cpu;
+# int pid;
+# char name[TASK_COMM_LEN];
+# };
+#
+# BPF_HASH(branch_misses, struct key_t);
+#
+# static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+# key->cpu = bpf_get_smp_processor_id();
+# key->pid = bpf_get_current_pid_tgid();
+# bpf_get_current_comm(&(key->name), sizeof(key->name));
+# }
+#
+# int on_branch_misses(struct bpf_perf_event_data *ctx) {
+# struct key_t key = {};
+# get_key(&key);
+#
+# branch_misses.increment(key, ctx->sample_period);
+# return 0;
+# }
+# - name: bundle_bpf
+# metrics:
+# counter:
+# - name: bus_cycles
+# documentation: Count of bus cycles
+# namespace: bpf
+# labelnames:
+# - name
+# - cpu
+# - pid
+# events:
+# - type: 0x0 # HARDWARE
+# name: 0x6 # PERF_COUNT_HW_BUS_CYCLES
+# target: on_bus_cycles
+# table: bus_cycles
+# code: |
+# #include <linux/ptrace.h>
+# #include <uapi/linux/bpf_perf_event.h>
+#
+# const int max_cpus = 256;
+#
+# struct key_t {
+# int cpu;
+# int pid;
+# char name[TASK_COMM_LEN];
+# };
+#
+# BPF_HASH(bus_cycles, struct key_t);
+#
+# static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+# key->cpu = bpf_get_smp_processor_id();
+# key->pid = bpf_get_current_pid_tgid();
+# bpf_get_current_comm(&(key->name), sizeof(key->name));
+# }
+# int on_bus_cycles(struct bpf_perf_event_data *ctx) {
+# struct key_t key = {};
+# get_key(&key);
+#
+# bus_cycles.increment(key, ctx->sample_period);
+# return 0;
+# }
+# - name: bundle_bpf
+# metrics:
+# counter:
+# - name: stalled_cycles_frontend (not supported by CPU)
+# documentation: Frontend stalled cycles
+# namespace: bpf
+# labelnames:
+# - name
+# - cpu
+# - pid
+# events:
+# - type: 0x0 # HARDWARE
+# name: 0x7 # PERF_COUNT_HW_STALLED_CYCLES_FRONTEND
+# target: on_stalled_cycles_frontend
+# table: stalled_cycles_frontend
+# code: |
+# #include <linux/ptrace.h>
+# #include <uapi/linux/bpf_perf_event.h>
+#
+# const int max_cpus = 256;
+#
+# struct key_t {
+# int cpu;
+# int pid;
+# char name[TASK_COMM_LEN];
+# };
+#
+# BPF_HASH(stalled_cycles_frontend, struct key_t);
+#
+# static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+# key->cpu = bpf_get_smp_processor_id();
+# key->pid = bpf_get_current_pid_tgid();
+# bpf_get_current_comm(&(key->name), sizeof(key->name));
+# }
+#
+# int on_stalled_cycles_frontend(struct bpf_perf_event_data *ctx) {
+# struct key_t key = {};
+# get_key(&key);
+#
+# stalled_cycles_frontend.increment(key, ctx->sample_period);
+# return 0;
+# }
+# - name: bundle_bpf
+# metrics:
+# counter:
+# - name: stalled_cycles_backend
+# documentation: Backend stalled cycles
+# namespace: bpf
+# labelnames:
+# - name
+# - cpu
+# - pid
+# events:
+# - type: 0x0 # HARDWARE
+# name: 0x8 # PERF_COUNT_HW_STALLED_CYCLES_BACKEND
+# target: on_stalled_cycles_backend
+# table: stalled_cycles_backend
+# code: |
+# #include <linux/ptrace.h>
+# #include <uapi/linux/bpf_perf_event.h>
+#
+# const int max_cpus = 256;
+#
+# struct key_t {
+# int cpu;
+# int pid;
+# char name[TASK_COMM_LEN];
+# };
+#
+# BPF_HASH(stalled_cycles_backend, struct key_t);
+#
+# static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+# key->cpu = bpf_get_smp_processor_id();
+# key->pid = bpf_get_current_pid_tgid();
+# bpf_get_current_comm(&(key->name), sizeof(key->name));
+# }
+#
+# int on_stalled_cycles_backend(struct bpf_perf_event_data *ctx) {
+# struct key_t key = {};
+# get_key(&key);
+#
+# stalled_cycles_backend.increment(key, ctx->sample_period);
+# return 0;
+# }
+# - name: bundle_bpf
+# metrics:
+# counter:
+# - name: referenced_cpu_cycles
+# documentation: Referenced CPU cycles
+# namespace: bpf
+# labelnames:
+# - name
+# - cpu
+# - pid
+# events:
+# - type: 0x0 # HARDWARE
+# name: 0x9 # PERF_COUNT_HW_REF_CPU_CYCLES
+# target: on_referenced_cpu_cycles
+# table: referenced_cpu_cycles
+# code: |
+# #include <linux/ptrace.h>
+# #include <uapi/linux/bpf_perf_event.h>
+#
+# const int max_cpus = 256;
+#
+# struct key_t {
+# int cpu;
+# int pid;
+# char name[TASK_COMM_LEN];
+# };
+#
+# BPF_HASH(referenced_cpu_cycles, struct key_t);
+#
+# static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+# key->cpu = bpf_get_smp_processor_id();
+# key->pid = bpf_get_current_pid_tgid();
+# bpf_get_current_comm(&(key->name), sizeof(key->name));
+# }
+#
+# int on_referenced_cpu_cycles(struct bpf_perf_event_data *ctx) {
+# struct key_t key = {};
+# get_key(&key);
+#
+# referenced_cpu_cycles.increment(key, ctx->sample_period);
+# return 0;
+# }
+# - name: bundle_bpf
+# metrics:
+# counter:
+# - name: sw_cpu_clock
+# documentation: SW CPU clock
+# namespace: bpf
+# labelnames:
+# - name
+# - cpu
+# - pid
+# events:
+# - type: 0x1 # SOFTWARE
+# name: 0x0 # PERF_COUNT_SW_CPU_CLOCK
+# target: on_sw_cpu_clock
+# table: sw_cpu_clock
+# code: |
+# #include <linux/ptrace.h>
+# #include <uapi/linux/bpf_perf_event.h>
+#
+# const int max_cpus = 256;
+#
+# struct key_t {
+# int cpu;
+# int pid;
+# char name[TASK_COMM_LEN];
+# };
+#
+# BPF_HASH(sw_cpu_clock, struct key_t);
+#
+# static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+# key->cpu = bpf_get_smp_processor_id();
+# key->pid = bpf_get_current_pid_tgid();
+# bpf_get_current_comm(&(key->name), sizeof(key->name));
+# }
+#
+# int on_sw_cpu_clock(struct bpf_perf_event_data *ctx) {
+# struct key_t key = {};
+# get_key(&key);
+#
+# sw_cpu_clock.increment(key, ctx->sample_period);
+# return 0;
+# }
+# - name: bundle_bpf
+# metrics:
+# counter:
+# - name: sw_task_clock
+# documentation: SW task clock
+# namespace: bpf
+# labelnames:
+# - name
+# - cpu
+# - pid
+# events:
+# - type: 0x1 # SOFTWARE
+# name: 0x1 # PERF_COUNT_SW_TASK_CLOCK
+# target: on_sw_task_clock
+# table: sw_task_clock
+# code: |
+# #include <linux/ptrace.h>
+# #include <uapi/linux/bpf_perf_event.h>
+#
+# const int max_cpus = 256;
+#
+# struct key_t {
+# int cpu;
+# int pid;
+# char name[TASK_COMM_LEN];
+# };
+#
+# BPF_HASH(sw_task_clock, struct key_t);
+#
+# static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+# key->cpu = bpf_get_smp_processor_id();
+# key->pid = bpf_get_current_pid_tgid();
+# bpf_get_current_comm(&(key->name), sizeof(key->name));
+# }
+#
+# int on_sw_task_clock(struct bpf_perf_event_data *ctx) {
+# struct key_t key = {};
+# get_key(&key);
+#
+# sw_task_clock.increment(key, ctx->sample_period);
+# return 0;
+# }
+# - name: bundle_bpf
+# metrics:
+# counter:
+# - name: sw_page_faults
+# documentation: SW page faults
+# namespace: bpf
+# labelnames:
+# - name
+# - cpu
+# - pid
+# events:
+# - type: 0x1 # SOFTWARE
+# name: 0x2 # PERF_COUNT_SW_PAGE_FAULTS
+# target: on_sw_page_faults
+# table: sw_page_faults
+# code: |
+# #include <linux/ptrace.h>
+# #include <uapi/linux/bpf_perf_event.h>
+#
+# const int max_cpus = 256;
+#
+# struct key_t {
+# int cpu;
+# int pid;
+# char name[TASK_COMM_LEN];
+# };
+#
+# BPF_HASH(sw_page_faults, struct key_t);
+#
+# static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+# key->cpu = bpf_get_smp_processor_id();
+# key->pid = bpf_get_current_pid_tgid();
+# bpf_get_current_comm(&(key->name), sizeof(key->name));
+# }
+#
+# int on_sw_page_faults(struct bpf_perf_event_data *ctx) {
+# struct key_t key = {};
+# get_key(&key);
+#
+# sw_page_faults.increment(key, ctx->sample_period);
+# return 0;
+# }
+ - name: bundle_bpf
+ metrics:
+ counter:
+ - name: sw_context_switches
+ documentation: SW context switches
+ namespace: bpf
+ labelnames:
+ - name
+ - cpu
+ - pid
+ events:
+ - type: 0x1 # SOFTWARE
+ name: 0x3 # PERF_COUNT_SW_CONTEXT_SWITCHES
+ target: on_sw_context_switches
+ table: sw_context_switches
+ code: |
+ #include <linux/ptrace.h>
+ #include <uapi/linux/bpf_perf_event.h>
+
+ const int max_cpus = 256;
+
+ struct key_t {
+ int cpu;
+ int pid;
+ char name[TASK_COMM_LEN];
+ };
+
+ BPF_HASH(sw_context_switches, struct key_t);
+
+ static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+ key->cpu = bpf_get_smp_processor_id();
+ key->pid = bpf_get_current_pid_tgid();
+ bpf_get_current_comm(&(key->name), sizeof(key->name));
+ }
+
+ int on_sw_context_switches(struct bpf_perf_event_data *ctx) {
+ struct key_t key = {};
+ get_key(&key);
+
+ sw_context_switches.increment(key, ctx->sample_period);
+ return 0;
+ }
+# - name: bundle_bpf
+# metrics:
+# counter:
+# - name: sw_cpu_migrations
+# documentation: SW cpu migrations
+# namespace: bpf
+# labelnames:
+# - name
+# - cpu
+# - pid
+# events:
+# - type: 0x1 # SOFTWARE
+# name: 0x4 # PERF_COUNT_SW_CPU_MIGRATIONS
+# target: on_sw_cpu_migrations
+# table: sw_cpu_migrations
+# code: |
+# #include <linux/ptrace.h>
+# #include <uapi/linux/bpf_perf_event.h>
+#
+# const int max_cpus = 256;
+#
+# struct key_t {
+# int cpu;
+# int pid;
+# char name[TASK_COMM_LEN];
+# };
+#
+# BPF_HASH(sw_cpu_migrations, struct key_t);
+#
+# static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+# key->cpu = bpf_get_smp_processor_id();
+# key->pid = bpf_get_current_pid_tgid();
+# bpf_get_current_comm(&(key->name), sizeof(key->name));
+# }
+#
+# int on_sw_cpu_migrations(struct bpf_perf_event_data *ctx) {
+# struct key_t key = {};
+# get_key(&key);
+#
+# sw_cpu_migrations.increment(key, ctx->sample_period);
+# return 0;
+# }
+ - name: bundle_bpf
+ metrics:
+ counter:
+ - name: sw_page_faults_min
+ documentation: SW page faults minor
+ namespace: bpf
+ labelnames:
+ - name
+ - cpu
+ - pid
+ events:
+ - type: 0x1 # SOFTWARE
+ name: 0x5 # PERF_COUNT_SW_PAGE_FAULTS_MIN
+ target: on_sw_page_faults_min
+ table: sw_page_faults_min
+ code: |
+ #include <linux/ptrace.h>
+ #include <uapi/linux/bpf_perf_event.h>
+
+ const int max_cpus = 256;
+
+ struct key_t {
+ int cpu;
+ int pid;
+ char name[TASK_COMM_LEN];
+ };
+
+ BPF_HASH(sw_page_faults_min, struct key_t);
+
+ static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+ key->cpu = bpf_get_smp_processor_id();
+ key->pid = bpf_get_current_pid_tgid();
+ bpf_get_current_comm(&(key->name), sizeof(key->name));
+ }
+
+ int on_sw_page_faults_min(struct bpf_perf_event_data *ctx) {
+ struct key_t key = {};
+ get_key(&key);
+
+ sw_page_faults_min.increment(key, ctx->sample_period);
+ return 0;
+ }
+ - name: bundle_bpf
+ metrics:
+ counter:
+ - name: sw_page_faults_maj
+ documentation: SW page faults major
+ namespace: bpf
+ labelnames:
+ - name
+ - cpu
+ - pid
+ events:
+ - type: 0x1 # SOFTWARE
+ name: 0x6 # PERF_COUNT_SW_PAGE_FAULTS_MAJ
+ target: on_sw_page_faults_maj
+ table: sw_page_faults_maj
+ code: |
+ #include <linux/ptrace.h>
+ #include <uapi/linux/bpf_perf_event.h>
+
+ const int max_cpus = 256;
+
+ struct key_t {
+ int cpu;
+ int pid;
+ char name[TASK_COMM_LEN];
+ };
+
+ BPF_HASH(sw_page_faults_maj, struct key_t);
+
+ static inline __attribute__((always_inline)) void get_key(struct key_t* key) {
+ key->cpu = bpf_get_smp_processor_id();
+ key->pid = bpf_get_current_pid_tgid();
+ bpf_get_current_comm(&(key->name), sizeof(key->name));
+ }
+
+ int on_sw_page_faults_maj(struct bpf_perf_event_data *ctx) {
+ struct key_t key = {};
+ get_key(&key);
+
+ sw_page_faults_maj.increment(key, ctx->sample_period);
+ return 0;
+ }
diff --git a/resources/templates/telemetry/perf_stat_runtime.yaml b/resources/templates/telemetry/perf_stat_runtime.yaml
new file mode 100644
index 0000000000..ae0f804945
--- /dev/null
+++ b/resources/templates/telemetry/perf_stat_runtime.yaml
@@ -0,0 +1,134 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 1
+programs:
+ - name: bundle_perf_stat
+ metrics:
+ counter:
+ - name: cpu_cycles
+ documentation: Cycles processed by CPUs
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events:
+ - eventcode: 0x3C # cpu-cycles
+ umask: 0x00
+ - name: bundle_perf_stat
+ metrics:
+ counter:
+ - name: instructions
+ documentation: Instructions retired by CPUs
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events:
+ - eventcode: 0xC0 # instructions
+ umask: 0x00
+ - name: bundle_perf_stat
+ metrics:
+ counter:
+ - name: mem_load_uops_retired_l1_hit
+ documentation: L1 Hit
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events:
+ - eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L1_HIT
+ umask: 0x01
+ - name: bundle_perf_stat
+ metrics:
+ counter:
+ - name: mem_load_uops_retired_l2_hit
+ documentation: L2 Hit
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events:
+ - eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L2_HIT
+ umask: 0x02
+ - name: bundle_perf_stat
+ metrics:
+ counter:
+ - name: mem_load_uops_retired_l3_hit
+ documentation: L3 Hit
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events:
+ - eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L3_HIT
+ umask: 0x04
+ - name: bundle_perf_stat
+ metrics:
+ counter:
+ - name: mem_load_uops_retired_l1_miss
+ documentation: L1 Miss
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events:
+ - eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L1_MISS
+ umask: 0x08
+ - name: bundle_perf_stat
+ metrics:
+ counter:
+ - name: mem_load_uops_retired_l2_miss
+ documentation: L2 Miss
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events:
+ - eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L2_MISS
+ umask: 0x10
+ - name: bundle_perf_stat
+ metrics:
+ counter:
+ - name: mem_load_uops_retired_l3_miss
+ documentation: L3 Miss
+ namespace: perf_stat
+ labelnames:
+ - thread
+ - pid
+ events:
+ - eventcode: 0xD1 # MEM_LOAD_UOPS_RETIRED.L3_MISS
+ umask: 0x20
diff --git a/resources/templates/telemetry/vpp_clear_stats.yaml b/resources/templates/telemetry/vpp_clear_stats.yaml
new file mode 100644
index 0000000000..72c20604ee
--- /dev/null
+++ b/resources/templates/telemetry/vpp_clear_stats.yaml
@@ -0,0 +1,272 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 1
+programs:
+ - name: bundle_vpp
+ metrics:
+ gauge:
+ - name: calls
+ documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors
+ documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: suspends
+ documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: clocks
+ documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors_calls
+ documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ code: |
+ clear runtime
+ - name: bundle_vpp
+ metrics:
+ gauge:
+ - name: rx_packets
+ documentation: Number of received packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of received bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_packets
+ documentation: Number of transitted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of transitted bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: drops
+ documentation: Number of dropped packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: punt
+ documentation: Number of punted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip4
+ documentation: Number of IPv4 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip6
+ documentation: Number of IPv6 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: mpls
+ documentation: Number of MPLS packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_no_buf
+ documentation: Number of out of buffer RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_miss
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ code: |
+ clear interfaces
+ - name: bundle_vpp
+ metrics:
+ gauge:
+ - name: rx_frames
+ documentation: Number of RX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of RX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_frames
+ documentation: Number of TX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of TX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_missed
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_missed
+ documentation: Number of missed TX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ code: |
+ clear hardware
+ - name: bundle_vpp
+ metrics:
+ gauge:
+ - name: node_counter
+ documentation: Node counter
+ namespace: vpp
+ subsystem: node
+ labelnames:
+ - name
+ - reason
+ - severity
+ - thread_name
+ - thread_id
+ code: |
+ clear node counters
+ - name: bundle_vpp
+ metrics:
+ gauge:
+ - name: calls
+ documentation: Load operations
+ namespace: vpp
+ subsystem: perfmon
+ labelnames:
+ - name
+ - thread_name
+ - thread_id
+ - name: packets
+ documentation: Load operations
+ namespace: vpp
+ subsystem: perfmon
+ labelnames:
+ - name
+ - thread_name
+ - thread_id
+ code: |
+ perfmon reset
diff --git a/resources/templates/telemetry/vpp_runtime.yaml b/resources/templates/telemetry/vpp_runtime.yaml
new file mode 100644
index 0000000000..d7beb23cc6
--- /dev/null
+++ b/resources/templates/telemetry/vpp_runtime.yaml
@@ -0,0 +1,209 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 1
+programs:
+ - name: bundle_vpp
+ metrics:
+ gauge:
+ - name: calls
+ documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors
+ documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: suspends
+ documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: clocks
+ documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors_calls
+ documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ code: |
+ clear runtime
+ wait {duration}
+ show runtime
+ - name: bundle_vpp
+ metrics:
+ gauge:
+ - name: calls
+ documentation: Instructions/packet, cycles/packet and IPC (calls)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: packets
+ documentation: Instructions/packet, cycles/packet and IPC (packets)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: packets_per_call
+ documentation: Instructions/packet, cycles/packet and IPC (packets/call)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: clocks_per_packets
+ documentation: Instructions/packet, cycles/packet and IPC (clocks/packets)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: instructions_per_packets
+ documentation: Instructions/packet, cycles/packet and IPC (clocks/packets)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: ipc
+ documentation: Instructions/packet, cycles/packet and IPC (clocks/packets)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ code: |
+ perfmon reset
+ perfmon start bundle inst-and-clock
+ wait {duration}
+ perfmon stop
+ show perfmon statistics
+ - name: bundle_vpp
+ metrics:
+ gauge:
+ - name: l1_hit
+ documentation: Cache hits and misses (L1 hit)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l1_miss
+ documentation: Cache hits and misses (L1 miss)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l2_hit
+ documentation: Cache hits and misses (L2 hit)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l2_miss
+ documentation: Cache hits and misses (L2 miss)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l3_hit
+ documentation: Cache hits and misses (L3 hit)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l3_miss
+ documentation: Cache hits and misses (L3 miss)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ code: |
+ perfmon reset
+ perfmon start bundle cache-hierarchy
+ wait {duration}
+ perfmon stop
+ show perfmon statistics
diff --git a/resources/templates/telemetry/vpp_show_stats.yaml b/resources/templates/telemetry/vpp_show_stats.yaml
new file mode 100644
index 0000000000..626839f410
--- /dev/null
+++ b/resources/templates/telemetry/vpp_show_stats.yaml
@@ -0,0 +1,251 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 1
+programs:
+ - name: bundle_vpp
+ metrics:
+ counter:
+ - name: calls
+ documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors
+ documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: suspends
+ documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: clocks
+ documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors_calls
+ documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ code: |
+ show runtime
+ - name: bundle_vpp
+ metrics:
+ counter:
+ - name: rx_packets
+ documentation: Number of received packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of received bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_packets
+ documentation: Number of transitted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of transitted bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: drops
+ documentation: Number of dropped packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: punt
+ documentation: Number of punted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip4
+ documentation: Number of IPv4 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip6
+ documentation: Number of IPv6 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: mpls
+ documentation: Number of MPLS packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_no_buf
+ documentation: Number of out of buffer RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_miss
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ code: |
+ show interface
+ - name: bundle_vpp
+ metrics:
+ gauge:
+ - name: rx_frames
+ documentation: Number of RX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of RX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_frames
+ documentation: Number of TX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of TX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_missed
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_missed
+ documentation: Number of missed TX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ code: |
+ show hardware verbose
+ - name: bundle_vpp
+ metrics:
+ counter:
+ - name: node_counter
+ documentation: Node counter
+ namespace: vpp
+ subsystem: node
+ labelnames:
+ - name
+ - reason
+ - severity
+ - thread_name
+ - thread_id
+ code: |
+ show node counters verbose
diff --git a/resources/templates/telemetry/vpp_test_teardown.yaml b/resources/templates/telemetry/vpp_test_teardown.yaml
new file mode 100644
index 0000000000..ac096526ce
--- /dev/null
+++ b/resources/templates/telemetry/vpp_test_teardown.yaml
@@ -0,0 +1,251 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 0
+programs:
+ - name: bundle_vpp
+ metrics:
+ counter:
+ - name: calls
+ documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors
+ documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: suspends
+ documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: clocks
+ documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors_calls
+ documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ code: |
+ show runtime
+ - name: bundle_vpp
+ metrics:
+ counter:
+ - name: rx_packets
+ documentation: Number of received packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of received bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_packets
+ documentation: Number of transitted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of transitted bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: drops
+ documentation: Number of dropped packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: punt
+ documentation: Number of punted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip4
+ documentation: Number of IPv4 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip6
+ documentation: Number of IPv6 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: mpls
+ documentation: Number of MPLS packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_no_buf
+ documentation: Number of out of buffer RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_miss
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ code: |
+ show interface
+ - name: bundle_vpp
+ metrics:
+ gauge:
+ - name: rx_frames
+ documentation: Number of RX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of RX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_frames
+ documentation: Number of TX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of TX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_missed
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_missed
+ documentation: Number of missed TX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ code: |
+ show hardware verbose
+ - name: bundle_vpp
+ metrics:
+ counter:
+ - name: node_counter
+ documentation: Node counter
+ namespace: vpp
+ subsystem: node
+ labelnames:
+ - name
+ - reason
+ - severity
+ - thread_name
+ - thread_id
+ code: |
+ show node counters verbose
diff --git a/resources/templates/telemetry/vppctl_clear_stats.yaml b/resources/templates/telemetry/vppctl_clear_stats.yaml
new file mode 100644
index 0000000000..b23081e4f2
--- /dev/null
+++ b/resources/templates/telemetry/vppctl_clear_stats.yaml
@@ -0,0 +1,272 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 1
+programs:
+ - name: bundle_vppctl
+ metrics:
+ gauge:
+ - name: calls
+ documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors
+ documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: suspends
+ documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: clocks
+ documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors_calls
+ documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ code: |
+ vppctl -s {socket} clear runtime
+ - name: bundle_vppctl
+ metrics:
+ gauge:
+ - name: rx_packets
+ documentation: Number of received packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of received bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_packets
+ documentation: Number of transitted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of transitted bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: drops
+ documentation: Number of dropped packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: punt
+ documentation: Number of punted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip4
+ documentation: Number of IPv4 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip6
+ documentation: Number of IPv6 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: mpls
+ documentation: Number of MPLS packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_no_buf
+ documentation: Number of out of buffer RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_miss
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ code: |
+ vppctl -s {socket} clear interfaces
+ - name: bundle_vppctl
+ metrics:
+ gauge:
+ - name: rx_frames
+ documentation: Number of RX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of RX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_frames
+ documentation: Number of TX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of TX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_missed
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_missed
+ documentation: Number of missed TX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ code: |
+ vppctl -s {socket} clear hardware
+ - name: bundle_vppctl
+ metrics:
+ gauge:
+ - name: node_counter
+ documentation: Node counter
+ namespace: vpp
+ subsystem: node
+ labelnames:
+ - name
+ - reason
+ - severity
+ - thread_name
+ - thread_id
+ code: |
+ vppctl -s {socket} clear node counters
+ - name: bundle_vppctl
+ metrics:
+ gauge:
+ - name: calls
+ documentation: Load operations
+ namespace: vpp
+ subsystem: perfmon
+ labelnames:
+ - name
+ - thread_name
+ - thread_id
+ - name: packets
+ documentation: Load operations
+ namespace: vpp
+ subsystem: perfmon
+ labelnames:
+ - name
+ - thread_name
+ - thread_id
+ code: |
+ vppctl -s {socket} perfmon reset
diff --git a/resources/templates/telemetry/vppctl_runtime.yaml b/resources/templates/telemetry/vppctl_runtime.yaml
new file mode 100644
index 0000000000..2ac72c0b8a
--- /dev/null
+++ b/resources/templates/telemetry/vppctl_runtime.yaml
@@ -0,0 +1,209 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 1
+programs:
+ - name: bundle_vppctl
+ metrics:
+ gauge:
+ - name: calls
+ documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors
+ documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: suspends
+ documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: clocks
+ documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors_calls
+ documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ code: |
+ vppctl -s {socket} clear runtime
+ sleep {duration}
+ vppctl -s {socket} show runtime
+ - name: bundle_vppctl
+ metrics:
+ gauge:
+ - name: calls
+ documentation: Instructions/packet, cycles/packet and IPC (calls)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: packets
+ documentation: Instructions/packet, cycles/packet and IPC (packets)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: packets_per_call
+ documentation: Instructions/packet, cycles/packet and IPC (packets/call)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: clocks_per_packets
+ documentation: Instructions/packet, cycles/packet and IPC (clocks/packets)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: instructions_per_packets
+ documentation: Instructions/packet, cycles/packet and IPC (clocks/packets)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: ipc
+ documentation: Instructions/packet, cycles/packet and IPC (clocks/packets)
+ namespace: vpp
+ subsystem: inst_and_clock
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ code: |
+ vppctl -s {socket} perfmon reset
+ vppctl -s {socket} perfmon start bundle inst-and-clock
+ sleep {duration}
+ vppctl -s {socket} perfmon stop
+ vppctl -s {socket} show perfmon statistics
+ - name: bundle_vppctl
+ metrics:
+ gauge:
+ - name: l1_hit
+ documentation: Cache hits and misses (L1 hit)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l1_miss
+ documentation: Cache hits and misses (L1 miss)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l2_hit
+ documentation: Cache hits and misses (L2 hit)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l2_miss
+ documentation: Cache hits and misses (L2 miss)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l3_hit
+ documentation: Cache hits and misses (L3 hit)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l3_miss
+ documentation: Cache hits and misses (L3 miss)
+ namespace: vpp
+ subsystem: cache_hierarchy
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ code: |
+ vppctl -s {socket} perfmon reset
+ vppctl -s {socket} perfmon start bundle cache-hierarchy
+ sleep {duration}
+ vppctl -s {socket} perfmon stop
+ vppctl -s {socket} show perfmon statistics
diff --git a/resources/templates/telemetry/vppctl_show_stats.yaml b/resources/templates/telemetry/vppctl_show_stats.yaml
new file mode 100644
index 0000000000..9f5a0240a1
--- /dev/null
+++ b/resources/templates/telemetry/vppctl_show_stats.yaml
@@ -0,0 +1,251 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 1
+programs:
+ - name: bundle_vppctl
+ metrics:
+ counter:
+ - name: calls
+ documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors
+ documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: suspends
+ documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: clocks
+ documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors_calls
+ documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ code: |
+ vppctl -s {socket} show runtime
+ - name: bundle_vppctl
+ metrics:
+ counter:
+ - name: rx_packets
+ documentation: Number of received packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of received bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_packets
+ documentation: Number of transitted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of transitted bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: drops
+ documentation: Number of dropped packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: punt
+ documentation: Number of punted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip4
+ documentation: Number of IPv4 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip6
+ documentation: Number of IPv6 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: mpls
+ documentation: Number of MPLS packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_no_buf
+ documentation: Number of out of buffer RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_miss
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ code: |
+ vppctl -s {socket} show interface
+ - name: bundle_vppctl
+ metrics:
+ gauge:
+ - name: rx_frames
+ documentation: Number of RX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of RX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_frames
+ documentation: Number of TX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of TX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_missed
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_missed
+ documentation: Number of missed TX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ code: |
+ vppctl -s {socket} show hardware verbose
+ - name: bundle_vppctl
+ metrics:
+ counter:
+ - name: node_counter
+ documentation: Node counter
+ namespace: vpp
+ subsystem: node
+ labelnames:
+ - name
+ - reason
+ - severity
+ - thread_name
+ - thread_id
+ code: |
+ vppctl -s {socket} show node counters verbose
diff --git a/resources/templates/telemetry/vppctl_test_teardown.yaml b/resources/templates/telemetry/vppctl_test_teardown.yaml
new file mode 100644
index 0000000000..e8458f7198
--- /dev/null
+++ b/resources/templates/telemetry/vppctl_test_teardown.yaml
@@ -0,0 +1,251 @@
+---
+logging:
+ version: 1
+ formatters:
+ console_stdout:
+ format: '%(asctime)s - %(name)s - %(message)s'
+ console_stderr:
+ format: '%(message)s'
+ prom:
+ format: '%(message)s'
+ handlers:
+ console_stdout:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: console_stdout
+ stream: ext://sys.stdout
+ console_stderr:
+ class: logging.StreamHandler
+ level: ERROR
+ formatter: console_stderr
+ stream: ext://sys.stderr
+ prom:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: prom
+ filename: /tmp/metric.prom
+ mode: w
+ loggers:
+ prom:
+ handlers: [prom]
+ level: INFO
+ propagate: False
+ root:
+ level: INFO
+ handlers: [console_stdout, console_stderr]
+scheduler:
+ duration: 0
+programs:
+ - name: bundle_vppctl
+ metrics:
+ counter:
+ - name: calls
+ documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors
+ documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: suspends
+ documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: clocks
+ documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ - name: vectors_calls
+ documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
+ labelnames:
+ - node_name
+ - state
+ - thread_name
+ - thread_id
+ - thread_lcore
+ code: |
+ vppctl -s {socket} show runtime
+ - name: bundle_vppctl
+ metrics:
+ counter:
+ - name: rx_packets
+ documentation: Number of received packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of received bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_packets
+ documentation: Number of transitted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of transitted bytes for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: tx_error
+ documentation: Number of errors on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: drops
+ documentation: Number of dropped packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: punt
+ documentation: Number of punted packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip4
+ documentation: Number of IPv4 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: ip6
+ documentation: Number of IPv6 packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: mpls
+ documentation: Number of MPLS packets for interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_no_buf
+ documentation: Number of out of buffer RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ - name: rx_miss
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: interface
+ labelnames:
+ - name
+ - index
+ code: |
+ vppctl -s {socket} show interface
+ - name: bundle_vppctl
+ metrics:
+ gauge:
+ - name: rx_frames
+ documentation: Number of RX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_bytes
+ documentation: Number of RX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_frames
+ documentation: Number of TX frames for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_bytes
+ documentation: Number of TX bytes for interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: rx_missed
+ documentation: Number of missed RX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ - name: tx_missed
+ documentation: Number of missed TX packets on interface
+ namespace: vpp
+ subsystem: hardware
+ labelnames:
+ - name
+ - index
+ code: |
+ vppctl -s {socket} show hardware verbose
+ - name: bundle_vppctl
+ metrics:
+ counter:
+ - name: node_counter
+ documentation: Node counter
+ namespace: vpp
+ subsystem: node
+ labelnames:
+ - name
+ - reason
+ - severity
+ - thread_name
+ - thread_id
+ code: |
+ vppctl -s {socket} show node counters verbose
diff --git a/resources/templates/vat/dhcp_proxy_dump.vat b/resources/templates/vat/dhcp_proxy_dump.vat
deleted file mode 100644
index 584a58b5c6..0000000000
--- a/resources/templates/vat/dhcp_proxy_dump.vat
+++ /dev/null
@@ -1 +0,0 @@
-dhcp_proxy_dump {ipv6}
diff --git a/resources/templates/vat/dump_interfaces.vat b/resources/templates/vat/dump_interfaces.vat
deleted file mode 100644
index dfc5e6939d..0000000000
--- a/resources/templates/vat/dump_interfaces.vat
+++ /dev/null
@@ -1,3 +0,0 @@
-sw_interface_dump
-dump_interface_table
-quit
diff --git a/resources/templates/vat/ipsec/ipsec_policy_add.vat b/resources/templates/vat/ipsec/ipsec_policy_add.vat
deleted file mode 100644
index db025970b6..0000000000
--- a/resources/templates/vat/ipsec/ipsec_policy_add.vat
+++ /dev/null
@@ -1 +0,0 @@
-exec ipsec policy add spd {spd_id} priority {priority} {direction} action {action} {selector}
diff --git a/resources/templates/vat/ipsec/ipsec_show.vat b/resources/templates/vat/ipsec/ipsec_show.vat
deleted file mode 100644
index 0859d878c9..0000000000
--- a/resources/templates/vat/ipsec/ipsec_show.vat
+++ /dev/null
@@ -1 +0,0 @@
-exec show ipsec
diff --git a/resources/templates/vat/lisp/add_lisp_adjacency.vat b/resources/templates/vat/lisp/add_lisp_adjacency.vat
deleted file mode 100644
index 9c33625f6b..0000000000
--- a/resources/templates/vat/lisp/add_lisp_adjacency.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_adjacency add vni {vni} reid {deid}{deid_prefix} leid {seid}{seid_prefix}
diff --git a/resources/templates/vat/lisp/add_lisp_local_eid.vat b/resources/templates/vat/lisp/add_lisp_local_eid.vat
deleted file mode 100644
index 4f57549d75..0000000000
--- a/resources/templates/vat/lisp/add_lisp_local_eid.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_local_eid vni {vni} eid {eid}/{eid_prefix} locator-set {locator_name} \ No newline at end of file
diff --git a/resources/templates/vat/lisp/add_lisp_local_eid_mac.vat b/resources/templates/vat/lisp/add_lisp_local_eid_mac.vat
deleted file mode 100644
index cf0fb3221c..0000000000
--- a/resources/templates/vat/lisp/add_lisp_local_eid_mac.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_local_eid vni {vni} eid {eid} locator-set {locator_name} \ No newline at end of file
diff --git a/resources/templates/vat/lisp/add_lisp_locator.vat b/resources/templates/vat/lisp/add_lisp_locator.vat
deleted file mode 100644
index 4d50326883..0000000000
--- a/resources/templates/vat/lisp/add_lisp_locator.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_locator locator-set {lisp_name} sw_if_index {sw_if_index} p {priority} w {weight} \ No newline at end of file
diff --git a/resources/templates/vat/lisp/add_lisp_locator_set.vat b/resources/templates/vat/lisp/add_lisp_locator_set.vat
deleted file mode 100644
index 0dccbb71c9..0000000000
--- a/resources/templates/vat/lisp/add_lisp_locator_set.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_locator_set locator-set {lisp_name} \ No newline at end of file
diff --git a/resources/templates/vat/lisp/add_lisp_map_resolver.vat b/resources/templates/vat/lisp/add_lisp_map_resolver.vat
deleted file mode 100644
index 8daa286e8e..0000000000
--- a/resources/templates/vat/lisp/add_lisp_map_resolver.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_map_resolver {address} \ No newline at end of file
diff --git a/resources/templates/vat/lisp/add_lisp_remote_mapping.vat b/resources/templates/vat/lisp/add_lisp_remote_mapping.vat
deleted file mode 100644
index 6dcb4f91cd..0000000000
--- a/resources/templates/vat/lisp/add_lisp_remote_mapping.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_remote_mapping add vni {vni} eid {deid}{deid_prefix} seid {seid}{seid_prefix} rloc {rloc}
diff --git a/resources/templates/vat/lisp/del_lisp_adjacency.vat b/resources/templates/vat/lisp/del_lisp_adjacency.vat
deleted file mode 100644
index a507adce4a..0000000000
--- a/resources/templates/vat/lisp/del_lisp_adjacency.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_adjacency del vni {vni} reid {deid}/{deid_prefix} leid {seid}/{seid_prefix}
diff --git a/resources/templates/vat/lisp/del_lisp_local_eid.vat b/resources/templates/vat/lisp/del_lisp_local_eid.vat
deleted file mode 100644
index 1df6b3ffec..0000000000
--- a/resources/templates/vat/lisp/del_lisp_local_eid.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_local_eid vni {vni} eid {eid}/{eid_prefix} locator-set {locator_name} del \ No newline at end of file
diff --git a/resources/templates/vat/lisp/del_lisp_local_eid_mac.vat b/resources/templates/vat/lisp/del_lisp_local_eid_mac.vat
deleted file mode 100644
index 1c188bc039..0000000000
--- a/resources/templates/vat/lisp/del_lisp_local_eid_mac.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_local_eid vni <vni> eid {eid} locator-set {locator_name} del \ No newline at end of file
diff --git a/resources/templates/vat/lisp/del_lisp_locator.vat b/resources/templates/vat/lisp/del_lisp_locator.vat
deleted file mode 100644
index 243e113e59..0000000000
--- a/resources/templates/vat/lisp/del_lisp_locator.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_locator locator-set {lisp_name} sw_if_index {sw_if_index} p {priority} w {weight} del
diff --git a/resources/templates/vat/lisp/del_lisp_locator_set.vat b/resources/templates/vat/lisp/del_lisp_locator_set.vat
deleted file mode 100644
index 11049f9c50..0000000000
--- a/resources/templates/vat/lisp/del_lisp_locator_set.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_locator_set locator-set {lisp_name} del \ No newline at end of file
diff --git a/resources/templates/vat/lisp/del_lisp_map_resolver.vat b/resources/templates/vat/lisp/del_lisp_map_resolver.vat
deleted file mode 100644
index 36de8a56b2..0000000000
--- a/resources/templates/vat/lisp/del_lisp_map_resolver.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_map_resolver {address} del \ No newline at end of file
diff --git a/resources/templates/vat/lisp/del_lisp_remote_mapping.vat b/resources/templates/vat/lisp/del_lisp_remote_mapping.vat
deleted file mode 100644
index 515611ffd0..0000000000
--- a/resources/templates/vat/lisp/del_lisp_remote_mapping.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_add_del_remote_mapping del vni {vni} eid {deid}/{deid_prefix} seid {seid}/{seid_prefix} rloc {rloc}
diff --git a/resources/templates/vat/lisp/lisp_eid_table_add_del_map.vat b/resources/templates/vat/lisp/lisp_eid_table_add_del_map.vat
deleted file mode 100644
index beba91c60a..0000000000
--- a/resources/templates/vat/lisp/lisp_eid_table_add_del_map.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_eid_table_add_del_map vni {vni} {bd_or_vrf} \ No newline at end of file
diff --git a/resources/templates/vat/lisp/lisp_gpe_iface.vat b/resources/templates/vat/lisp/lisp_gpe_iface.vat
deleted file mode 100644
index 1f5eaf0880..0000000000
--- a/resources/templates/vat/lisp/lisp_gpe_iface.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_gpe_add_del_iface {state} \ No newline at end of file
diff --git a/resources/templates/vat/lisp/lisp_gpe_status.vat b/resources/templates/vat/lisp/lisp_gpe_status.vat
deleted file mode 100644
index 5c4080afc5..0000000000
--- a/resources/templates/vat/lisp/lisp_gpe_status.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_gpe_enable_disable {state}
diff --git a/resources/templates/vat/lisp/lisp_status.vat b/resources/templates/vat/lisp/lisp_status.vat
deleted file mode 100644
index d7e97577d6..0000000000
--- a/resources/templates/vat/lisp/lisp_status.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_enable_disable {state}
diff --git a/resources/templates/vat/lisp/show_lisp_eid_table.vat b/resources/templates/vat/lisp/show_lisp_eid_table.vat
deleted file mode 100644
index 4a47a8fdef..0000000000
--- a/resources/templates/vat/lisp/show_lisp_eid_table.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_eid_table_dump \ No newline at end of file
diff --git a/resources/templates/vat/lisp/show_lisp_gpe_tunnel.vat b/resources/templates/vat/lisp/show_lisp_gpe_tunnel.vat
deleted file mode 100644
index 802cfbb6a0..0000000000
--- a/resources/templates/vat/lisp/show_lisp_gpe_tunnel.vat
+++ /dev/null
@@ -1 +0,0 @@
-# TODO: Implement when VPP-334 is fixed. \ No newline at end of file
diff --git a/resources/templates/vat/lisp/show_lisp_locator_set.vat b/resources/templates/vat/lisp/show_lisp_locator_set.vat
deleted file mode 100644
index 4f775ff47a..0000000000
--- a/resources/templates/vat/lisp/show_lisp_locator_set.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_locator_set_dump {filter} \ No newline at end of file
diff --git a/resources/templates/vat/lisp/show_lisp_map_register.vat b/resources/templates/vat/lisp/show_lisp_map_register.vat
deleted file mode 100644
index ea6847862e..0000000000
--- a/resources/templates/vat/lisp/show_lisp_map_register.vat
+++ /dev/null
@@ -1 +0,0 @@
-show_lisp_map_register_state \ No newline at end of file
diff --git a/resources/templates/vat/lisp/show_lisp_map_request_mode.vat b/resources/templates/vat/lisp/show_lisp_map_request_mode.vat
deleted file mode 100644
index 2c8a44ee5c..0000000000
--- a/resources/templates/vat/lisp/show_lisp_map_request_mode.vat
+++ /dev/null
@@ -1 +0,0 @@
-show_lisp_map_request_mode \ No newline at end of file
diff --git a/resources/templates/vat/lisp/show_lisp_map_resolver.vat b/resources/templates/vat/lisp/show_lisp_map_resolver.vat
deleted file mode 100644
index e74dab9e87..0000000000
--- a/resources/templates/vat/lisp/show_lisp_map_resolver.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_map_resolver_dump \ No newline at end of file
diff --git a/resources/templates/vat/lisp/show_lisp_map_server.vat b/resources/templates/vat/lisp/show_lisp_map_server.vat
deleted file mode 100644
index 3f7dd08a85..0000000000
--- a/resources/templates/vat/lisp/show_lisp_map_server.vat
+++ /dev/null
@@ -1 +0,0 @@
-lisp_map_server_dump \ No newline at end of file
diff --git a/resources/templates/vat/lisp/show_lisp_petr_config.vat b/resources/templates/vat/lisp/show_lisp_petr_config.vat
deleted file mode 100644
index e12be15f84..0000000000
--- a/resources/templates/vat/lisp/show_lisp_petr_config.vat
+++ /dev/null
@@ -1 +0,0 @@
-show_lisp_use_petr \ No newline at end of file
diff --git a/resources/templates/vat/lisp/show_lisp_pitr.vat b/resources/templates/vat/lisp/show_lisp_pitr.vat
deleted file mode 100644
index e1280d16ba..0000000000
--- a/resources/templates/vat/lisp/show_lisp_pitr.vat
+++ /dev/null
@@ -1 +0,0 @@
-show_lisp_pitr \ No newline at end of file
diff --git a/resources/templates/vat/lisp/show_lisp_rloc_config.vat b/resources/templates/vat/lisp/show_lisp_rloc_config.vat
deleted file mode 100644
index 78c58ea92e..0000000000
--- a/resources/templates/vat/lisp/show_lisp_rloc_config.vat
+++ /dev/null
@@ -1 +0,0 @@
-show_lisp_rloc_probe_state \ No newline at end of file
diff --git a/resources/templates/vat/lisp/show_lisp_status.vat b/resources/templates/vat/lisp/show_lisp_status.vat
deleted file mode 100644
index 8d4e237ecc..0000000000
--- a/resources/templates/vat/lisp/show_lisp_status.vat
+++ /dev/null
@@ -1 +0,0 @@
-show_lisp_status
diff --git a/resources/templates/vat/show_hardware_detail.vat b/resources/templates/vat/show_hardware_detail.vat
deleted file mode 100644
index e3ac7c7576..0000000000
--- a/resources/templates/vat/show_hardware_detail.vat
+++ /dev/null
@@ -1 +0,0 @@
-exec show hardware detail
diff --git a/resources/templates/vat/vpp_route_add.vat b/resources/templates/vat/vpp_route_add.vat
deleted file mode 100644
index 73bb5acf8a..0000000000
--- a/resources/templates/vat/vpp_route_add.vat
+++ /dev/null
@@ -1 +0,0 @@
-ip_route_add_del {network}/{prefix_length} {vrf} {count} {multipath} {via} {sw_if_index} \ No newline at end of file
diff --git a/resources/templates/vcl/vcl_iperf3.conf b/resources/templates/vcl/vcl_iperf3.conf
index 9e4b0571dd..adf6c181bc 100644
--- a/resources/templates/vcl/vcl_iperf3.conf
+++ b/resources/templates/vcl/vcl_iperf3.conf
@@ -1,7 +1,12 @@
vcl {
+ segment-size 4000000000
+ add-segment-size 4000000000
rx-fifo-size 4000000
tx-fifo-size 4000000
app-scope-local
app-scope-global
- api-socket-name /run/vpp/api.sock
-} \ No newline at end of file
+
+ # This must be kept in sync with vpp_hoststack_attr{app_api_socket}
+ # in .../resources/libraries/robot/hoststack/hoststack.robot
+ app-socket-api /run/vpp/app_ns_sockets/default
+}
diff --git a/resources/templates/vcl/vcl_nginx.conf b/resources/templates/vcl/vcl_nginx.conf
new file mode 100644
index 0000000000..80cf0c6808
--- /dev/null
+++ b/resources/templates/vcl/vcl_nginx.conf
@@ -0,0 +1,12 @@
+vcl {
+ segment-size 4000000000
+ add-segment-size 4000000000
+ rx-fifo-size 4000000
+ tx-fifo-size 4000000
+ use-mq-eventfd
+ event-queue-size 500000
+
+ # This must be kept in sync with vpp_hoststack_attr{app_api_socket}
+ # in .../resources/libraries/robot/hoststack/hoststack.robot
+ app-socket-api /run/vpp/app_ns_sockets/default
+} \ No newline at end of file
diff --git a/resources/templates/vm/init.sh b/resources/templates/vm/init.sh
index 8edb40f411..471b3ccba9 100644
--- a/resources/templates/vm/init.sh
+++ b/resources/templates/vm/init.sh
@@ -1,6 +1,7 @@
#!/bin/bash
mkdir /dev/pts
mkdir /dev/hugepages
+mkdir /dev/shm
mount -t devpts -o "rw,noexec,nosuid,gid=5,mode=0620" devpts /dev/pts || true
mount -t tmpfs -o "rw,noexec,nosuid,size=10%,mode=0755" tmpfs /run
mount -t tmpfs -o "rw,noexec,nosuid,size=10%,mode=0755" tmpfs /tmp
diff --git a/resources/test_data/lisp/lisp.py b/resources/test_data/lisp/lisp.py
index d52b7a9ecd..27614704f2 100644
--- a/resources/test_data/lisp/lisp.py
+++ b/resources/test_data/lisp/lisp.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/test_data/lisp/performance/lisp_static_adjacency.py b/resources/test_data/lisp/performance/lisp_static_adjacency.py
index 4351a40f55..097e5facc3 100644
--- a/resources/test_data/lisp/performance/lisp_static_adjacency.py
+++ b/resources/test_data/lisp/performance/lisp_static_adjacency.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/tools/__init__.py b/resources/tools/__init__.py
index e9d6d476eb..56935cf72b 100644
--- a/resources/tools/__init__.py
+++ b/resources/tools/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/tools/ab/ABFork.py b/resources/tools/ab/ABFork.py
new file mode 100755
index 0000000000..55288a9c92
--- /dev/null
+++ b/resources/tools/ab/ABFork.py
@@ -0,0 +1,248 @@
+#!/usr/bin/env python3
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+"""ab fork library."""
+
+from multiprocessing import Pool
+import subprocess
+import argparse
+import re
+
+REGEX_RPS = r"Requests per second:\s*" \
+ r"(\d*\.*\S*)"
+REGEX_LATENCY = r"Time per request:\s*" \
+ r"(\d*\.*\S*)"
+REGEX_PROCESS = r"Time per request:\s*" \
+ r"(\d*\.*\S*)"
+REGEX_TR = r"Transfer rate:\s*" \
+ r"(\d*\.*\S*)"
+REGEX_TT = r"Total transferred:\s*" \
+ r"(\d*)"
+REGEX_OK_NUM = r"Complete requests:\s*" \
+ r"(\d*)"
+REGEX_FAILED_NUM = r"Failed requests:\s*" \
+ r"(\d*)"
+REGEX_NUM = r"(\d*\.*\d*)(\D*)"
+
+
+def main():
+ """ main function. get option and run ab test.
+
+ :returns: Nothing.
+ """
+
+ # Get option.
+ parser = argparse.ArgumentParser(description=u"Get option and run ab test")
+
+ # Number of requests to perform.
+ parser.add_argument(u"-r", u"--requests", type=int,
+ required=True, help=u"Number of requests to perform.")
+
+ # Server port number to use.
+ parser.add_argument(u"-p", u"--port", type=int, required=True,
+ help=u"Server port number to use.")
+
+ # Number of clients being processed at the same time.
+ parser.add_argument(u"-c", u"--clients", type=int, required=True,
+ help=u"Number of clients being processed at "
+ u"the same time.")
+
+ # Filename to be requested from the servers.
+ parser.add_argument(u"-f", u"--files", type=str, required=True,
+ help="Filename to be requested from the servers.")
+
+ # Server ip address.
+ parser.add_argument(u"-i", u"--ip", type=str, required=True,
+ help=u"Server bind IP address.")
+
+ # Tg ip address.
+ parser.add_argument(u"-g", u"--tip", type=str, required=True,
+ help=u"TG bind IP address.")
+
+ # Specify SSL/TLS cipher suite.
+ parser.add_argument(u"-z", u"--cipher", type=str, default=u"0",
+ help=u"Specify SSL/TLS cipher.")
+
+ # Specify SSL/TLS protocol.
+ parser.add_argument(u"-t", u"--protocol", type=str, default=u"0",
+ help=u"Specify SSL/TLS protocol.")
+
+ # Mode: RPS or CPS.
+ parser.add_argument(u"-m", u"--mode", type=str, required=True,
+ help=u"Send requests mode:RPS/CPS.")
+
+ args = parser.parse_args()
+
+ req_num = args.requests
+ port = args.port
+ cli_num = args.clients
+ files = args.files
+ ip_address = args.ip
+ tg_address = args.tip
+ cipher = args.cipher
+ protocol = args.protocol
+ mode = args.mode
+
+ if req_num == 0:
+ print(u"Failed number of req_num!")
+ return 1
+
+ # The number of processing units available to the current process.
+ _, cpu_num = subprocess.getstatusoutput(u"nproc --all")
+ cpu_num = int(cpu_num)
+ if cpu_num > 70:
+ cpu_num = 70
+
+ # Requests and Clients are evenly distributed on each CPU.
+ per_req = round(req_num / cpu_num)
+ per_cli = round(cli_num / cpu_num)
+
+ # Revise rounding request, This will be in the first ab request
+ all_total = per_req * cpu_num
+ per_req_1st = per_req + (req_num - all_total)
+
+ results = []
+ # Start process pool.
+ pool = Pool(processes=cpu_num)
+
+ for i in range(1, cpu_num + 1):
+ results.append(
+ pool.apply_async(one, (
+ i, per_req_1st if i == 1 else per_req, per_cli, cipher,
+ protocol, ip_address, tg_address, files, port, mode)))
+
+ pool.close()
+ pool.join()
+
+ info_list = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
+
+ # Statistical test results.
+ for res in results:
+ stats = res.get()
+ if stats:
+ info_list = [a + b for a, b in zip(info_list, stats)]
+
+ # Output results.
+ print(f"Transfer Rate: {round(info_list[6], 2)} [Kbytes/sec]")
+ print(f"Latency: {round(info_list[4] / 8, 2)} ms")
+ print(f"Connection {mode} rate: {round(info_list[3], 2)} per sec")
+ print(f"Total data transferred: {round(info_list[2])} bytes")
+ print(f"Completed requests: {round(info_list[0])} ")
+ print(f"Failed requests: {round(info_list[1])} ")
+
+
+def one(cpu, requests, clients, cipher, protocol, ip_addr, tg_addr, files, port,
+ mode):
+ """Run one test.
+
+ :param cpu: Core number id.
+ :param requests: Request number.
+ :param clients: Clients number.
+ :param cipher: Specify SSL/TLS cipher suite.
+ :param protocol: Specify SSL/TLS protocol.
+ :param ip_addr: Server ip address.
+ :param tg_addr: Tg ip address.
+ :param files: Filename to be requested from the servers.
+ :param port: Server port.
+ :type cpu: int
+ :type requests: int
+ :type clients: int
+ :type cipher: str
+ :type protocol: str
+ :type ip_addr: str
+ :type tg_addr: str
+ :type files: str
+ :type port: int
+ :type mode: str
+ :returns: Test results.
+ :rtype: list
+ """
+
+ cmd = f"sudo -E -S taskset --cpu-list {cpu} ab -n {requests} -c {clients}"
+ cmd = f"{cmd} -B {tg_addr} -r "
+ if mode == u"rps":
+ cmd = f"{cmd} -k"
+
+ if port == 80:
+ cmd = f"{cmd} http://{ip_addr}:{port}/{files}"
+ else:
+ cmd = f"{cmd} -Z {cipher} -f {protocol}"
+ cmd = f"{cmd} https://{ip_addr}:{port}/{files}"
+
+ _, output = subprocess.getstatusoutput(cmd)
+ ret = _parse_output(output)
+
+ return ret
+
+
+def _parse_output(msg):
+ """Parse the stdout with the results.
+
+ :param msg: stdout of ab.
+ :type msg: str
+ :returns: Parsed results.
+ :rtype: list
+ """
+
+ msg_lst = msg.splitlines(False)
+
+ stats = []
+ for line in msg_lst:
+ if u"Requests per second" in line:
+ stats.append(
+ _float_number(re.search(REGEX_RPS, line).group(1))
+ )
+ elif u"Time per request" in line:
+ stats.append(
+ _float_number(re.search(REGEX_LATENCY, line).group(1))
+ )
+ elif u"Transfer rate" in line:
+ stats.append(
+ _float_number(re.search(REGEX_TR, line).group(1))
+ )
+ elif u"Total transferred" in line:
+ stats.append(
+ _float_number(re.search(REGEX_TT, line).group(1))
+ )
+ elif u"Complete requests" in line:
+ stats.append(
+ _float_number(re.search(REGEX_OK_NUM, line).group(1))
+ )
+ elif u"Failed requests" in line:
+ stats.append(
+ _float_number(re.search(REGEX_FAILED_NUM, line).group(1))
+ )
+
+ return stats
+
+
+def _float_number(num):
+ """float value of the number.
+
+ :param num: Number to evaluate.
+ :type num: str
+ :returns: float number.
+ :rtype: float
+ """
+
+ val = re.search(REGEX_NUM, num)
+ try:
+ val_num = float(val.group(1))
+ except ValueError:
+ raise RuntimeError(u"The output of ab does not include the results.")
+ return val_num
+
+
+if __name__ == "__main__":
+ main()
diff --git a/resources/tools/ab/ABTools.py b/resources/tools/ab/ABTools.py
new file mode 100644
index 0000000000..b929b49fdd
--- /dev/null
+++ b/resources/tools/ab/ABTools.py
@@ -0,0 +1,187 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+"""ab implementation into CSIT framework."""
+
+from re import search
+from resources.libraries.python.Constants import Constants
+from resources.libraries.python.model.ExportResult import (
+ export_hoststack_results
+)
+from resources.libraries.python.OptionString import OptionString
+from resources.libraries.python.ssh import exec_cmd_no_error
+from resources.libraries.python.topology import NodeType
+
+
+class ABTools:
+ """This class implements:
+ - Get ab command.
+ - Check ab version.
+ """
+
+ @staticmethod
+ def get_cmd_options(**kwargs):
+ """Create parameters options.
+
+ :param kwargs: Dict of cmd parameters.
+ :type kwargs: dict
+ :returns: Cmd parameters.
+ :rtype: OptionString
+ """
+ cmd = OptionString()
+ cmd.add("python3")
+ dirname = f"{Constants.REMOTE_FW_DIR}/resources/tools/ab"
+ cmd.add(f"{dirname}/ABFork.py")
+ cmd_options = OptionString(prefix="-")
+ # Number of requests to perform.
+ cmd_options.add_with_value_from_dict("r", "requests", kwargs)
+ # Server port number to use.
+ cmd_options.add_with_value_from_dict("p", "port", kwargs)
+ # Number of clients being processed at the same time.
+ cmd_options.add_with_value_from_dict("c", "clients", kwargs)
+ # Filename to be requested from the servers.
+ cmd_options.add_with_value_from_dict("f", "files", kwargs)
+ # Server ip address.
+ cmd_options.add_with_value_from_dict("i", "ip", kwargs)
+ # tg ip address.
+ cmd_options.add_with_value_from_dict("g", "tip", kwargs)
+ # Specify SSL/TLS cipher suite.
+ cmd_options.add_with_value_from_dict("z", "cipher", kwargs, default=0)
+ # Specify SSL/TLS protocol.
+ cmd_options.add_with_value_from_dict("t", "protocol", kwargs,
+ default=0)
+ # Mode: RPS or CPS.
+ cmd_options.add_with_value_from_dict("m", "mode", kwargs)
+ return cmd.extend(cmd_options)
+
+ @staticmethod
+ def check_ab(tg_node):
+ """Check if ab is installed on the TG node.
+
+ :param tg_node: Topology node.
+ :type tg_node: dict
+ :raises: RuntimeError if the given node is not a TG node or if the
+ command is not available.
+ """
+
+ if tg_node["type"] != NodeType.TG:
+ raise RuntimeError("Node type is not a TG!")
+
+ cmd = "command -v ab"
+ message = "ab not installed on TG node!"
+ exec_cmd_no_error(tg_node, cmd, message=message)
+
+ @staticmethod
+ def get_ab_type(node):
+ """Log and return the installed traffic generator type.
+
+ :param node: Node from topology file.
+ :type node: dict
+ :returns: Traffic generator type string.
+ :rtype: str
+ """
+ return "AB"
+
+ @staticmethod
+ def get_ab_version(node):
+ """Log and return the installed traffic generator version.
+
+ :param node: Node from topology file.
+ :type node: dict
+ :returns: Traffic generator version string.
+ :rtype: str
+ """
+ command = f"ab -V | head -1 | cut -d',' -f2"
+ message = "Get AB version failed!"
+ stdout, _ = exec_cmd_no_error(node, command, message=message)
+ return stdout.strip()
+
+ @staticmethod
+ def run_ab(tg_node, ip_addr, tg_addr, tls_tcp, cipher, files_num, rps_cps,
+ r_total, c_total, port, protocol="TLS1.3"):
+ """ Run ab test.
+
+ :param tg_node: Topology node.
+ :param ip_addr: Sut ip address.
+ :param tg_addr: Tg ip address.
+ :param tls_tcp: TLS or TCP.
+ :param cipher: Specify SSL/TLS cipher suite.
+ :param files_num: Filename to be requested from the servers.
+ The file is named after the file size.
+ :param rps_cps: RPS or CPS.
+ :param r_total: Requests total.
+ :param r_total: Clients total.
+ :param port: Server listen port.
+ :param protocol: TLS Protocol.
+ :type tg_node: dict
+ :type ip_addr: str
+ :type tg_addr: str
+ :type tls_tcp: str
+ :type cipher: str
+ :type files_num: int
+ :type rps_cps: str
+ :type r_total: int
+ :type c_total: int
+ :type port: int
+ :type protocol: str
+ :returns: Message with measured data.
+ :rtype: str
+ :raises: RuntimeError if node type is not a TG.
+ """
+ if files_num == 0:
+ files = "return"
+ elif files_num >= 1024:
+ files = f"{int(files_num / 1024)}KB.json"
+ else:
+ files = f"{files_num}B.json"
+
+ cmd = ABTools.get_cmd_options(
+ requests=r_total,
+ clients=c_total,
+ ip=ip_addr,
+ tip=tg_addr,
+ files=files,
+ cipher=cipher,
+ protocol=protocol,
+ port=port,
+ mode=rps_cps,
+ )
+ stdout, _ = exec_cmd_no_error(
+ tg_node, cmd, timeout=180, sudo=True, message="ab runtime error!"
+ )
+
+ rate_unit = rps_cps
+ rate = None
+ bandwidth = None
+ latency = None
+ completed_requests = None
+ failed_requests = None
+ for line in stdout.splitlines():
+ if f"Connection {rps_cps} rate:" in line:
+ rate = float(search(r":\s*(\d+\.?\d+)", line).group(1))
+ elif "Transfer Rate:" in line:
+ bandwidth = \
+ float(search(r":\s*(\d+\.?\d+)", line).group(1)) * 8000
+ elif "Latency:" in line:
+ latency = float(search(r":\s*(\d+\.?\d+)", line).group(1))
+ elif "Completed requests:" in line:
+ completed_requests = int(search(r":\s*(\d+)", line).group(1))
+ elif "Failed requests" in line:
+ failed_requests = int(search(r":\s*(\d+)", line).group(1))
+
+ export_hoststack_results(
+ bandwidth, rate, rate_unit, latency, failed_requests,
+ completed_requests
+ )
+
+ return stdout
diff --git a/resources/tools/block_replacer/apache2gpl.sh b/resources/tools/block_replacer/apache2gpl.sh
index f248393d50..67b51f200c 100644
--- a/resources/tools/block_replacer/apache2gpl.sh
+++ b/resources/tools/block_replacer/apache2gpl.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/tools/block_replacer/replace.py b/resources/tools/block_replacer/replace.py
index 02d1889331..5154c51be1 100644
--- a/resources/tools/block_replacer/replace.py
+++ b/resources/tools/block_replacer/replace.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/tools/disk-image-builder/nested/.gitignore b/resources/tools/disk-image-builder/nested/.gitignore
deleted file mode 100644
index a007feab07..0000000000
--- a/resources/tools/disk-image-builder/nested/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-build/*
diff --git a/resources/tools/disk-image-builder/nested/CHANGELOG b/resources/tools/disk-image-builder/nested/CHANGELOG
deleted file mode 100644
index b334ce2ad3..0000000000
--- a/resources/tools/disk-image-builder/nested/CHANGELOG
+++ /dev/null
@@ -1,66 +0,0 @@
-## [1.7] - 2017-08-14
-
-### Changes
-- update buildroot to 2017.05.2
-- add htop, perf, screen, msr_tools, memstat
-
-
-## [1.6] - 2017-02-20
-
-### Changes
-- replace /dev/sda to /dev/vda, to use with virtio disk driver
-- add noapic to bootloader's kernel line
-- bind igb_uio driver only to network device
-
-
-## [1.5] - 2016-11-14
-
-### Changes
-- DPDK upgrade to 16.11
-
-
-## [1.4] - 2016-10-10
-
-### Changes
-- DPDK upgrade to 16.07
-
-
-## [1.3] - 2016-06-12
-
-### Changes
-- Use Glibc instead of uClibc. Required for DPDK.
-- Include buildroot patch for DPDK. Update build.sh
- script to include that patch.
-- Update Linux kernel config to include UIO support
-
-### Added
-- Python, DPDK to image
-
-
-## [1.2] - 2016-05-25
-
-### Changes
-- Embed version in hidden file with magic string that can be read
- without actually booting the image:
- ~~~
- cat <vm image> | strings | grep NESTED_VERSION
- ~~~
-- Include both cisco/cisco credentials (for backwards compatibility)
- and csit/csit
-
-## [1.1] - 2016-05-17
-
-### Added
-- iproute2 package (for "ip" command)
-
-
-## [1.0] - 2016-05-16
-
-### First release
-- Basic script to build FD.IO VPP CSIT "nested VM" image using buildroot.
-This version is to mimic the previous, manually built image.
-- Packages installed:
- - Kernel 4.3
- - support for virtio NIC
- - bridge-utils (for brctl)
- - qemu (for qemu-ga)
diff --git a/resources/tools/disk-image-builder/nested/README.md b/resources/tools/disk-image-builder/nested/README.md
deleted file mode 100644
index 3c4968909c..0000000000
--- a/resources/tools/disk-image-builder/nested/README.md
+++ /dev/null
@@ -1,71 +0,0 @@
-# Nested VM builder
-
-## Summary
-
-The files in this directory are used to build CSIT's "nested VM" image.
-The Nested VM image is a mini Linux image that gets spun up inside the
-main CSIT test VM for selected test cases.
-
-Considering that this VM is:
-
-- Very purpose-built; the ONLY thing it needs to do is run a bridge group,
-- spun up and torn down repeatedly by an automated test case,
-- is bundled within another VM image where resources are already limited,
-
-this VM is designed to be minimalistic, small and efficient. For that reason
-it is NOT build around any established Linux distribution (Ubuntu,
-Red Hat, ...), but around "buildroot" (https://buildroot.org/) which is
-aimed at building small Linux images for embedded systems.
-
-Scripts in this directory are aimed at producing functionally identical VM
-images each time they are run. That is, a given version of this package
-will consistenly download the same buildroot version, and install the same
-packages and the same kernel version with the same config.
-
-
-### Prerequisites
-
-This scripts have been tested on Ubuntu Linux. They should run on any platform
-supported by buildroot, and where a standard bourne shell and Linux toolchain
-are available.
-
-## Files
-
-### requirements.sh
-
-(One-time) installs required Ubuntu packages for buildroot
-
-
-### build.sh
-
-Downloads all required packages source code and builds the nested VM image.
-Is NOT intended to be run as root, but requires "sudo" privileges for a
-handful of commands.
-
-### clean.sh
-
-Remove any object files and compiled files. Keep the downloaded source
-packages, both of buildroot itself as well as any packages downloaded by
-buildroot.
-
-### deepclean.sh
-
-Remove any compiled or downloaded files.
-
-### CHANGELOG
-
-A change log. This will also be copied onto the image itself.
-Versions in the changelog MUST be tagged as follows:
-
-~~~
-## [MAJOR.MINOR] YYYY-MM-DD
-~~~
-eg.
-
-~~~
-## [1.0] 2016-05-16
-~~~
-
-This format will be used for auto-extracting the version
-number, which will become part of the target image filename
-and will also be copied onto the image itself.
diff --git a/resources/tools/disk-image-builder/nested/build.sh b/resources/tools/disk-image-builder/nested/build.sh
deleted file mode 100755
index 34b96bbf62..0000000000
--- a/resources/tools/disk-image-builder/nested/build.sh
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/bin/sh -e
-
-# Copyright (c) 2016 Cisco and/or its affiliates.
-# 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.
-
-# Note: In order to limit the damage this script can do, it is recommended
-# to NOT run as root.
-
-#
-# 1. Download buildroot
-# 2. Build buildroot kernel and root file system as per
-# config files included in this package
-# 3. Create empty disk image and extract buildroot root
-# file system onto it, make it bootable
-# 4. Apply any patches/additions included in this package
-#
-BUILD_DIR="$(dirname $0)/build"
-
-BUILDROOT_NAME='buildroot-2017.05.2'
-BUILDROOT_DIR="${BUILD_DIR}/${BUILDROOT_NAME}"
-BUILDROOT_TARBALL="${BUILDROOT_NAME}.tar.gz"
-BUILDROOT_URL="https://buildroot.org/downloads/${BUILDROOT_TARBALL}"
-BUILDROOT_OUTPUT="${BUILDROOT_DIR}/output/images/rootfs.tar"
-
-DISK_FREE_SIZE=8388608 # Min. free space on disk (8 MB)
-DISK_ROUND_TO_NEAREST=16777216 # Round disk size up to nearest (16 MB)
-
-VERSION=$(cat $(dirname $0)/CHANGELOG | grep '^## ' | head -1 | sed -e 's/.*\[\(.*\)\].*/\1/')
-if [ "${VERSION}" = "" ]
-then
- echo "Unable to determine build version from CHANGELOG file. Make sure"
- echo "that there is an entry for the most recent version in CHANGELOG,"
- echo "and that the entry is formated like"
- echo
- echo "## [1.0] - 2016-05-16"
- exit 1
-fi
-
-mkdir -p ${BUILD_DIR}
-
-echo Building version: ${VERSION}
-echo $VERSION > ${BUILD_DIR}/VERSION
-echo "NESTED_VERSION=${VERSION}" > ${BUILD_DIR}/VERSION_HIDDEN
-img_name="${BUILD_DIR}/csit-nested-${VERSION}.img"
-
-# Normally no need to touch the variables below
-DISK_SECT_SIZE=512
-DISK_HEADS=16
-DISK_SECT_PER_TRACK=63
-DISK_RESERVED_SECTORS=2048
-
-MOUNT_TMPDIR="${BUILD_DIR}/tmp-mount"
-
-set -e
-
-# Download buildroot if not already there
-wget -P ${BUILD_DIR} -N $BUILDROOT_URL
-tar -C ${BUILD_DIR} -xzf ${BUILD_DIR}/$BUILDROOT_TARBALL
-
-# Apply DPDK patch to buildroot. Do not fail if this patch has already been applied.
-patch -N -d ${BUILDROOT_DIR} -p1 < buildroot-patches/dpdk.patch || /bin/true
-
-cp -p buildroot-config $BUILDROOT_DIR/.config
-cp -p kernel-defconfig $BUILDROOT_DIR/kernel-defconfig
-make -C $BUILDROOT_DIR
-
-if [ ! -f ${BUILDROOT_OUTPUT} ]
-then
- echo "Buildroot compiled OK, but root file system ${BUILDROOT_OUTPUT}"
- echo "does not exist. Somethig is wrong. Exiting."
- exit 1
-fi
-
-# If we got here, it means we downloaded (if applicable) and built (if
-# applicable) buildroot OK.
-#
-# Now let's calculate the required disk size, and build an empty disk.
-
-buildroot_size=$(stat -c%s ${BUILDROOT_OUTPUT})
-desired_size=$(( ${buildroot_size} + ${DISK_FREE_SIZE} ))
-rounded_size=$(( ((${desired_size}/${DISK_ROUND_TO_NEAREST})+1) * \
- ${DISK_ROUND_TO_NEAREST} ))
-
-echo "Actual root FS size: ${buildroot_size}"
-echo "Root FS size + desired free space (${DISK_FREE_SIZE}): ${desired_size}"
-echo "Root FS size rounded to nearest ${DISK_ROUND_TO_NEAREST}:" \
- "${rounded_size} ($(( ${rounded_size} / 1024 / 1024 )) MB)"
-
-# In a normal world, we'd be creating a full-size empty image with "dd", an
-# then use fdisk to partition it, and a tool like "kpartx" to map this into
-# individual partitions. We'd then map the partition we're interested in.
-# However, in order to avoid messing with /dev/mapper, we can also create
-# our actual partition first, and then merge it with the MBR+partition table
-# "prefix" to obtain our full disk.
-
-sectors=$(( ${rounded_size} / ${DISK_SECT_SIZE} ))
-
-disk_prefix=${img_name}.prefix
-disk_main=${img_name}.main
-
-dd if=/dev/zero of=${disk_prefix} bs=${DISK_SECT_SIZE} \
- count=${DISK_RESERVED_SECTORS}
-dd if=/dev/zero of=${disk_main} bs=${DISK_SECT_SIZE} \
- count=$(( $sectors - ${DISK_RESERVED_SECTORS} ))
-
-# Format and mount the root file system
-mkfs.ext2 -F -L root ${disk_main}
-mkdir -p ${MOUNT_TMPDIR}
-sudo mount -o loop ${disk_main} ${MOUNT_TMPDIR}
-trap "sudo umount ${MOUNT_TMPDIR}" EXIT
-
-# Extract the root filesystem
-echo "Extracting root filesystem..."
-sudo tar -C ${MOUNT_TMPDIR} -xf ${BUILDROOT_OUTPUT}
-
-# Apply any patches
-echo "Applying patches/modifications"
-mydir=$(pwd)
-cd ${MOUNT_TMPDIR}
-sudo run-parts -v ${mydir}/image-patches
-cd ${mydir}
-
-# Copy version and changelog
-sudo cp ${BUILD_DIR}/VERSION ${MOUNT_TMPDIR}/
-sudo cp ${mydir}/CHANGELOG ${MOUNT_TMPDIR}/
-# Also embed this into a hidden file that we can easily retrieve with
-# "cat <disk image> | strings | grep NESTED_VERSION"
-sudo cp ${BUILD_DIR}/VERSION_HIDDEN ${MOUNT_TMPDIR}/.VERSION.HIDDEN
-
-# Unmount root filesystem
-sudo umount ${MOUNT_TMPDIR}
-trap EXIT
-rmdir ${MOUNT_TMPDIR}
-
-# Now create our larger disk
-cat ${disk_prefix} ${disk_main} > ${img_name}
-rm -f ${disk_prefix} ${disk_main}
-
-# Create partition table on the disk
-sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << _EOF | fdisk -H ${DISK_HEADS} -S ${DISK_SECT_PER_TRACK} ${img_name}
- o # clear the in memory partition table
- n # new partition
- p # primary partition
- 1 # partition number 1
- ${DISK_RESERVED_SECTORS} # Start a few KB into the disk, leave room for GRUB
- # Default - all the way through the end of the disk
- a # make a partition bootable
- 1 # bootable partition is partition 1
- p # print the in-memory partition table
- w # write the partition table
- q # and we're done
-_EOF
-
-disk_cylinders=$(fdisk -l -H ${DISK_HEADS} -S ${DISK_SECT_PER_TRACK} ${img_name} | \
- grep cylinders | \
- sed -e 's/.* \([0-9][0-9]*\) cylinders.*/\1/')
-
-echo "Disk has ${disk_cylinders} cylinders"
-
-# Install GRUB bootloader on the disk image
-${BUILDROOT_DIR}/output/host/sbin/grub --device-map=/dev/null <<_EOF
-device (hd0) ${img_name}
-geometry (hd0)
-root (hd0,0)
-setup (hd0)
-quit
-_EOF
-
-echo
-echo
-echo
-echo "Your image should be ready in:"
-ls -l ${img_name}
diff --git a/resources/tools/disk-image-builder/nested/buildroot-config b/resources/tools/disk-image-builder/nested/buildroot-config
deleted file mode 100644
index 5fe25145c7..0000000000
--- a/resources/tools/disk-image-builder/nested/buildroot-config
+++ /dev/null
@@ -1,3132 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Buildroot 2017.05.2 Configuration
-#
-BR2_HAVE_DOT_CONFIG=y
-BR2_HOST_GCC_AT_LEAST_4_5=y
-BR2_HOST_GCC_AT_LEAST_4_6=y
-BR2_HOST_GCC_AT_LEAST_4_7=y
-BR2_HOST_GCC_AT_LEAST_4_8=y
-BR2_HOST_GCC_AT_LEAST_4_9=y
-BR2_HOST_GCC_AT_LEAST_5=y
-BR2_HOSTARCH_NEEDS_IA32_COMPILER=y
-
-#
-# Target options
-#
-BR2_ARCH_IS_64=y
-BR2_ARCH_HAS_MMU_MANDATORY=y
-# BR2_arcle is not set
-# BR2_arceb is not set
-# BR2_arm is not set
-# BR2_armeb is not set
-# BR2_aarch64 is not set
-# BR2_aarch64_be is not set
-# BR2_bfin is not set
-# BR2_csky is not set
-# BR2_i386 is not set
-# BR2_m68k is not set
-# BR2_microblazeel is not set
-# BR2_microblazebe is not set
-# BR2_mips is not set
-# BR2_mipsel is not set
-# BR2_mips64 is not set
-# BR2_mips64el is not set
-# BR2_nios2 is not set
-# BR2_or1k is not set
-# BR2_powerpc is not set
-# BR2_powerpc64 is not set
-# BR2_powerpc64le is not set
-# BR2_sh is not set
-# BR2_sparc is not set
-# BR2_sparc64 is not set
-BR2_x86_64=y
-# BR2_xtensa is not set
-BR2_ARCH="x86_64"
-BR2_ENDIAN="LITTLE"
-BR2_GCC_TARGET_ARCH="corei7"
-BR2_BINFMT_SUPPORTS_SHARED=y
-BR2_READELF_ARCH_NAME="Advanced Micro Devices X86-64"
-BR2_BINFMT_ELF=y
-BR2_X86_CPU_HAS_MMX=y
-BR2_X86_CPU_HAS_SSE=y
-BR2_X86_CPU_HAS_SSE2=y
-BR2_X86_CPU_HAS_SSE3=y
-BR2_X86_CPU_HAS_SSSE3=y
-BR2_X86_CPU_HAS_SSE4=y
-BR2_X86_CPU_HAS_SSE42=y
-# BR2_x86_nocona is not set
-# BR2_x86_core2 is not set
-BR2_x86_corei7=y
-# BR2_x86_corei7_avx is not set
-# BR2_x86_core_avx2 is not set
-# BR2_x86_atom is not set
-# BR2_x86_opteron is not set
-# BR2_x86_opteron_sse3 is not set
-# BR2_x86_barcelona is not set
-# BR2_x86_jaguar is not set
-# BR2_x86_steamroller is not set
-
-#
-# Build options
-#
-
-#
-# Commands
-#
-BR2_WGET="wget --passive-ftp -nd -t 3"
-BR2_SVN="svn"
-BR2_BZR="bzr"
-BR2_GIT="git"
-BR2_CVS="cvs"
-BR2_LOCALFILES="cp"
-BR2_SCP="scp"
-BR2_SSH="ssh"
-BR2_HG="hg"
-BR2_ZCAT="gzip -d -c"
-BR2_BZCAT="bzcat"
-BR2_XZCAT="xzcat"
-BR2_LZCAT="lzip -d -c"
-BR2_TAR_OPTIONS=""
-BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig"
-BR2_DL_DIR="$(TOPDIR)/dl"
-BR2_HOST_DIR="$(BASE_DIR)/host"
-
-#
-# Mirrors and Download locations
-#
-BR2_PRIMARY_SITE=""
-BR2_BACKUP_SITE="http://sources.buildroot.net"
-BR2_KERNEL_MIRROR="https://www.kernel.org/pub"
-BR2_GNU_MIRROR="http://ftp.gnu.org/pub/gnu"
-BR2_LUAROCKS_MIRROR="http://rocks.moonscript.org"
-BR2_CPAN_MIRROR="http://cpan.metacpan.org"
-BR2_JLEVEL=0
-# BR2_CCACHE is not set
-# BR2_ENABLE_DEBUG is not set
-BR2_STRIP_strip=y
-# BR2_STRIP_none is not set
-BR2_STRIP_EXCLUDE_FILES=""
-BR2_STRIP_EXCLUDE_DIRS=""
-# BR2_OPTIMIZE_0 is not set
-# BR2_OPTIMIZE_1 is not set
-# BR2_OPTIMIZE_2 is not set
-# BR2_OPTIMIZE_3 is not set
-# BR2_OPTIMIZE_G is not set
-BR2_OPTIMIZE_S=y
-BR2_SSP_NONE=y
-# BR2_SSP_REGULAR is not set
-# BR2_SSP_STRONG is not set
-# BR2_SSP_ALL is not set
-# BR2_STATIC_LIBS is not set
-BR2_SHARED_LIBS=y
-# BR2_SHARED_STATIC_LIBS is not set
-BR2_PACKAGE_OVERRIDE_FILE="$(CONFIG_DIR)/local.mk"
-BR2_GLOBAL_PATCH_DIR=""
-
-#
-# Advanced
-#
-# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
-# BR2_REPRODUCIBLE is not set
-
-#
-# Toolchain
-#
-BR2_TOOLCHAIN=y
-BR2_TOOLCHAIN_USES_GLIBC=y
-BR2_TOOLCHAIN_BUILDROOT=y
-# BR2_TOOLCHAIN_EXTERNAL is not set
-
-#
-# Toolchain Buildroot Options
-#
-BR2_TOOLCHAIN_BUILDROOT_VENDOR="buildroot"
-# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set
-BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
-# BR2_TOOLCHAIN_BUILDROOT_MUSL is not set
-BR2_TOOLCHAIN_BUILDROOT_LIBC="glibc"
-
-#
-# Kernel Header Options
-#
-# BR2_KERNEL_HEADERS_AS_KERNEL is not set
-# BR2_KERNEL_HEADERS_3_2 is not set
-# BR2_KERNEL_HEADERS_3_4 is not set
-# BR2_KERNEL_HEADERS_3_10 is not set
-# BR2_KERNEL_HEADERS_3_12 is not set
-# BR2_KERNEL_HEADERS_4_1 is not set
-BR2_KERNEL_HEADERS_4_4=y
-# BR2_KERNEL_HEADERS_4_9 is not set
-# BR2_KERNEL_HEADERS_4_10 is not set
-# BR2_KERNEL_HEADERS_4_11 is not set
-# BR2_KERNEL_HEADERS_VERSION is not set
-BR2_DEFAULT_KERNEL_HEADERS="4.4.78"
-BR2_PACKAGE_LINUX_HEADERS=y
-BR2_PACKAGE_GLIBC=y
-# BR2_GLIBC_VERSION_2_23 is not set
-# BR2_GLIBC_VERSION_2_24 is not set
-BR2_GLIBC_VERSION_2_25=y
-BR2_GLIBC_VERSION_STRING="2.25"
-
-#
-# Binutils Options
-#
-# BR2_BINUTILS_VERSION_2_26_X is not set
-# BR2_BINUTILS_VERSION_2_27_X is not set
-BR2_BINUTILS_VERSION_2_28_X=y
-BR2_BINUTILS_VERSION="2.28"
-BR2_BINUTILS_EXTRA_CONFIG_OPTIONS=""
-
-#
-# GCC Options
-#
-# BR2_GCC_VERSION_4_8_X is not set
-# BR2_GCC_VERSION_4_9_X is not set
-BR2_GCC_VERSION_5_X=y
-# BR2_GCC_VERSION_6_X is not set
-BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS=y
-BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE=y
-BR2_GCC_VERSION="5.4.0"
-BR2_EXTRA_GCC_CONFIG_OPTIONS=""
-# BR2_TOOLCHAIN_BUILDROOT_CXX is not set
-# BR2_TOOLCHAIN_BUILDROOT_FORTRAN is not set
-# BR2_GCC_ENABLE_LTO is not set
-# BR2_GCC_ENABLE_OPENMP is not set
-# BR2_GCC_ENABLE_GRAPHITE is not set
-
-#
-# Host GDB Options
-#
-# BR2_PACKAGE_HOST_GDB is not set
-
-#
-# Toolchain Generic Options
-#
-BR2_TOOLCHAIN_HAS_NATIVE_RPC=y
-BR2_USE_WCHAR=y
-BR2_ENABLE_LOCALE=y
-BR2_TOOLCHAIN_HAS_THREADS=y
-BR2_TOOLCHAIN_HAS_THREADS_DEBUG=y
-BR2_TOOLCHAIN_HAS_THREADS_NPTL=y
-BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS=y
-BR2_TOOLCHAIN_HAS_SSP=y
-BR2_TOOLCHAIN_SUPPORTS_PIE=y
-# BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY is not set
-BR2_USE_MMU=y
-BR2_TARGET_OPTIMIZATION=""
-BR2_TARGET_LDFLAGS=""
-# BR2_ECLIPSE_REGISTER is not set
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4=y
-BR2_TOOLCHAIN_HEADERS_AT_LEAST="4.4"
-BR2_TOOLCHAIN_GCC_AT_LEAST_4_3=y
-BR2_TOOLCHAIN_GCC_AT_LEAST_4_4=y
-BR2_TOOLCHAIN_GCC_AT_LEAST_4_5=y
-BR2_TOOLCHAIN_GCC_AT_LEAST_4_6=y
-BR2_TOOLCHAIN_GCC_AT_LEAST_4_7=y
-BR2_TOOLCHAIN_GCC_AT_LEAST_4_8=y
-BR2_TOOLCHAIN_GCC_AT_LEAST_4_9=y
-BR2_TOOLCHAIN_GCC_AT_LEAST_5=y
-BR2_TOOLCHAIN_GCC_AT_LEAST="5"
-BR2_TOOLCHAIN_HAS_SYNC_1=y
-BR2_TOOLCHAIN_HAS_SYNC_2=y
-BR2_TOOLCHAIN_HAS_SYNC_4=y
-BR2_TOOLCHAIN_HAS_SYNC_8=y
-BR2_TOOLCHAIN_HAS_LIBATOMIC=y
-BR2_TOOLCHAIN_HAS_ATOMIC=y
-BR2_TOOLCHAIN_HAS_LIBQUADMATH=y
-
-#
-# System configuration
-#
-BR2_ROOTFS_SKELETON_DEFAULT=y
-# BR2_ROOTFS_SKELETON_CUSTOM is not set
-# BR2_ROOTFS_MERGED_USR is not set
-BR2_TARGET_GENERIC_HOSTNAME="buildroot"
-BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot"
-BR2_TARGET_GENERIC_PASSWD_MD5=y
-# BR2_TARGET_GENERIC_PASSWD_SHA256 is not set
-# BR2_TARGET_GENERIC_PASSWD_SHA512 is not set
-BR2_TARGET_GENERIC_PASSWD_METHOD="md5"
-BR2_INIT_BUSYBOX=y
-# BR2_INIT_SYSV is not set
-# BR2_INIT_SYSTEMD is not set
-# BR2_INIT_NONE is not set
-# BR2_ROOTFS_DEVICE_CREATION_STATIC is not set
-BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y
-# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV is not set
-# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is not set
-BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt"
-# BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES is not set
-BR2_TARGET_ENABLE_ROOT_LOGIN=y
-BR2_TARGET_GENERIC_ROOT_PASSWD=""
-BR2_SYSTEM_BIN_SH_BUSYBOX=y
-
-#
-# bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-#
-# BR2_SYSTEM_BIN_SH_NONE is not set
-BR2_TARGET_GENERIC_GETTY=y
-BR2_TARGET_GENERIC_GETTY_PORT="console"
-BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP=y
-# BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 is not set
-# BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 is not set
-# BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 is not set
-# BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 is not set
-# BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 is not set
-BR2_TARGET_GENERIC_GETTY_BAUDRATE="0"
-BR2_TARGET_GENERIC_GETTY_TERM="vt100"
-BR2_TARGET_GENERIC_GETTY_OPTIONS=""
-BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y
-BR2_SYSTEM_DHCP=""
-# BR2_ENABLE_LOCALE_PURGE is not set
-BR2_GENERATE_LOCALE=""
-# BR2_TARGET_TZ_INFO is not set
-BR2_ROOTFS_USERS_TABLES=""
-BR2_ROOTFS_OVERLAY=""
-BR2_ROOTFS_POST_BUILD_SCRIPT=""
-BR2_ROOTFS_POST_FAKEROOT_SCRIPT=""
-BR2_ROOTFS_POST_IMAGE_SCRIPT=""
-
-#
-# Kernel
-#
-BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_LATEST_VERSION=y
-# BR2_LINUX_KERNEL_LATEST_CIP_VERSION is not set
-# BR2_LINUX_KERNEL_CUSTOM_VERSION is not set
-# BR2_LINUX_KERNEL_CUSTOM_TARBALL is not set
-# BR2_LINUX_KERNEL_CUSTOM_GIT is not set
-# BR2_LINUX_KERNEL_CUSTOM_HG is not set
-# BR2_LINUX_KERNEL_CUSTOM_SVN is not set
-BR2_LINUX_KERNEL_VERSION="4.4.78"
-BR2_LINUX_KERNEL_PATCH=""
-# BR2_LINUX_KERNEL_USE_DEFCONFIG is not set
-# BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG is not set
-BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
-BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="kernel-defconfig"
-BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES=""
-BR2_LINUX_KERNEL_BZIMAGE=y
-# BR2_LINUX_KERNEL_VMLINUX is not set
-# BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM is not set
-BR2_LINUX_KERNEL_GZIP=y
-# BR2_LINUX_KERNEL_LZ4 is not set
-# BR2_LINUX_KERNEL_LZMA is not set
-# BR2_LINUX_KERNEL_LZO is not set
-# BR2_LINUX_KERNEL_XZ is not set
-# BR2_LINUX_KERNEL_DTS_SUPPORT is not set
-BR2_LINUX_KERNEL_INSTALL_TARGET=y
-
-#
-# Linux Kernel Extensions
-#
-# BR2_LINUX_KERNEL_EXT_XENOMAI is not set
-# BR2_LINUX_KERNEL_EXT_RTAI is not set
-# BR2_LINUX_KERNEL_EXT_EV3DEV_LINUX_DRIVERS is not set
-# BR2_LINUX_KERNEL_EXT_FBTFT is not set
-# BR2_LINUX_KERNEL_EXT_AUFS is not set
-
-#
-# Linux Kernel Tools
-#
-BR2_PACKAGE_LINUX_TOOLS_CPUPOWER=y
-# BR2_PACKAGE_LINUX_TOOLS_GPIO is not set
-# BR2_PACKAGE_LINUX_TOOLS_IIO is not set
-BR2_PACKAGE_LINUX_TOOLS_PERF=y
-
-#
-# selftests needs BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
-#
-
-#
-# Target packages
-#
-BR2_PACKAGE_BUSYBOX=y
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox.config"
-BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES=""
-# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set
-# BR2_PACKAGE_BUSYBOX_SELINUX is not set
-# BR2_PACKAGE_BUSYBOX_WATCHDOG is not set
-BR2_PACKAGE_SKELETON=y
-
-#
-# Audio and video applications
-#
-# BR2_PACKAGE_ALSA_UTILS is not set
-# BR2_PACKAGE_ATEST is not set
-# BR2_PACKAGE_AUMIX is not set
-
-#
-# bellagio needs a toolchain w/ C++, threads, dynamic library
-#
-# BR2_PACKAGE_DVBLAST is not set
-# BR2_PACKAGE_DVDAUTHOR is not set
-
-#
-# dvdrw-tools needs a toolchain w/ threads, C++, wchar
-#
-
-#
-# espeak needs a toolchain w/ C++, wchar, threads, dynamic library
-#
-# BR2_PACKAGE_FAAD2 is not set
-BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS=y
-# BR2_PACKAGE_FFMPEG is not set
-# BR2_PACKAGE_FLAC is not set
-# BR2_PACKAGE_FLITE is not set
-# BR2_PACKAGE_GMRENDER_RESURRECT is not set
-# BR2_PACKAGE_GSTREAMER is not set
-# BR2_PACKAGE_GSTREAMER1 is not set
-
-#
-# jack2 needs a toolchain w/ threads, C++, dynamic library
-#
-BR2_PACKAGE_KODI_ARCH_SUPPORTS=y
-
-#
-# kodi needs python w/ .py modules, a uClibc or glibc toolchain w/ C++, locale, threads, wchar, dynamic library, gcc >= 4.8, host gcc >= 4.6
-#
-
-#
-# kodi needs an OpenGL EGL with either an openGL or an OpenGL ES backend
-#
-# BR2_PACKAGE_LAME is not set
-# BR2_PACKAGE_MADPLAY is not set
-# BR2_PACKAGE_MIMIC is not set
-
-#
-# miraclecast needs systemd and a glibc toolchain w/ threads and wchar
-#
-
-#
-# mjpegtools needs a toolchain w/ C++, threads
-#
-
-#
-# modplugtools needs a toolchain w/ C++
-#
-# BR2_PACKAGE_MOTION is not set
-
-#
-# mpd needs a toolchain w/ C++, threads, wchar, gcc >= 4.9
-#
-# BR2_PACKAGE_MPD_MPC is not set
-# BR2_PACKAGE_MPG123 is not set
-BR2_PACKAGE_MPLAYER_ARCH_SUPPORTS=y
-# BR2_PACKAGE_MPLAYER is not set
-# BR2_PACKAGE_MPV is not set
-# BR2_PACKAGE_MULTICAT is not set
-# BR2_PACKAGE_MUSEPACK is not set
-# BR2_PACKAGE_NCMPC is not set
-# BR2_PACKAGE_OPUS_TOOLS is not set
-# BR2_PACKAGE_PULSEAUDIO is not set
-# BR2_PACKAGE_SOX is not set
-# BR2_PACKAGE_SQUEEZELITE is not set
-
-#
-# tovid needs a toolchain w/ threads, C++, wchar
-#
-
-#
-# tovid depends on python or python3
-#
-# BR2_PACKAGE_TSTOOLS is not set
-# BR2_PACKAGE_TWOLAME is not set
-# BR2_PACKAGE_UDPXY is not set
-
-#
-# upmpdcli needs a toolchain w/ C++, threads, gcc >= 4.7
-#
-
-#
-# v4l2grab needs a toolchain w/ threads, dynamic library, C++ and headers >= 3.0
-#
-
-#
-# vlc needs a toolchain w/ C++, dynamic library, wchar, threads, headers >= 3.7
-#
-# BR2_PACKAGE_VORBIS_TOOLS is not set
-# BR2_PACKAGE_WAVPACK is not set
-# BR2_PACKAGE_YAVTA is not set
-# BR2_PACKAGE_YMPD is not set
-
-#
-# Compressors and decompressors
-#
-# BR2_PACKAGE_BZIP2 is not set
-# BR2_PACKAGE_LZ4 is not set
-
-#
-# lzip needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LZOP is not set
-
-#
-# p7zip needs a toolchain w/ threads, wchar, C++
-#
-
-#
-# unrar needs a toolchain w/ C++, wchar, threads
-#
-# BR2_PACKAGE_XZ is not set
-# BR2_PACKAGE_ZIP is not set
-
-#
-# Debugging, profiling and benchmark
-#
-# BR2_PACKAGE_BLKTRACE is not set
-
-#
-# bonnie++ needs a toolchain w/ C++
-#
-# BR2_PACKAGE_CACHE_CALIBRATOR is not set
-# BR2_PACKAGE_DHRYSTONE is not set
-# BR2_PACKAGE_DIEHARDER is not set
-# BR2_PACKAGE_DMALLOC is not set
-# BR2_PACKAGE_DROPWATCH is not set
-# BR2_PACKAGE_DSTAT is not set
-# BR2_PACKAGE_DT is not set
-
-#
-# duma needs a toolchain w/ C++, threads, dynamic library
-#
-# BR2_PACKAGE_FIO is not set
-# BR2_PACKAGE_FWTS is not set
-# BR2_PACKAGE_GDB is not set
-BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS=y
-
-#
-# google-breakpad requires a glibc or uClibc toolchain w/ wchar, thread, C++, gcc >= 4.8
-#
-# BR2_PACKAGE_IOZONE is not set
-# BR2_PACKAGE_KEXEC is not set
-# BR2_PACKAGE_KTAP is not set
-# BR2_PACKAGE_KVM_UNIT_TESTS is not set
-# BR2_PACKAGE_LATENCYTOP is not set
-# BR2_PACKAGE_LMBENCH is not set
-BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS=y
-# BR2_PACKAGE_LTP_TESTSUITE is not set
-# BR2_PACKAGE_LTRACE is not set
-# BR2_PACKAGE_LTTNG_BABELTRACE is not set
-# BR2_PACKAGE_LTTNG_MODULES is not set
-# BR2_PACKAGE_LTTNG_TOOLS is not set
-# BR2_PACKAGE_MCELOG is not set
-# BR2_PACKAGE_MEMSTAT is not set
-# BR2_PACKAGE_NETPERF is not set
-# BR2_PACKAGE_NETSNIFF_NG is not set
-# BR2_PACKAGE_NMON is not set
-BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS=y
-
-#
-# oprofile needs a toolchain w/ C++, wchar
-#
-# BR2_PACKAGE_PAX_UTILS is not set
-# BR2_PACKAGE_PV is not set
-
-#
-# racehound needs a uClibc or glibc toolchain w/ C++, wchar, dynamic library
-#
-# BR2_PACKAGE_RAMSMP is not set
-# BR2_PACKAGE_RAMSPEED is not set
-# BR2_PACKAGE_RT_TESTS is not set
-# BR2_PACKAGE_SPIDEV_TEST is not set
-# BR2_PACKAGE_STRACE is not set
-# BR2_PACKAGE_STRESS is not set
-# BR2_PACKAGE_STRESS_NG is not set
-
-#
-# sysdig needs a toolchain w/ C++, gcc >= 4.7, dynamic library and a Linux kernel to be built
-#
-# BR2_PACKAGE_SYSPROF is not set
-# BR2_PACKAGE_TINYMEMBENCH is not set
-# BR2_PACKAGE_TRACE_CMD is not set
-BR2_PACKAGE_TRINITY_ARCH_SUPPORTS=y
-# BR2_PACKAGE_TRINITY is not set
-# BR2_PACKAGE_UCLIBC_NG_TEST is not set
-# BR2_PACKAGE_VALGRIND is not set
-# BR2_PACKAGE_WHETSTONE is not set
-
-#
-# Development tools
-#
-# BR2_PACKAGE_BINUTILS is not set
-# BR2_PACKAGE_BSDIFF is not set
-# BR2_PACKAGE_CHECK is not set
-BR2_PACKAGE_CMAKE_ARCH_SUPPORTS=y
-
-#
-# ctest needs a toolchain w/ C++, wchar, dynamic library, gcc >= 4.7, NPTL
-#
-
-#
-# cppunit needs a toolchain w/ C++, dynamic library
-#
-# BR2_PACKAGE_CVS is not set
-
-#
-# cxxtest needs a toolchain w/ C++ support
-#
-# BR2_PACKAGE_FLEX is not set
-BR2_PACKAGE_GETTEXT=y
-# BR2_PACKAGE_GIT is not set
-
-#
-# git-crypt needs a toolchain w/ C++
-#
-
-#
-# gperf needs a toolchain w/ C++
-#
-# BR2_PACKAGE_JO is not set
-# BR2_PACKAGE_JQ is not set
-# BR2_PACKAGE_LIBTOOL is not set
-# BR2_PACKAGE_MAKE is not set
-# BR2_PACKAGE_PKGCONF is not set
-# BR2_PACKAGE_SUBVERSION is not set
-# BR2_PACKAGE_TREE is not set
-# BR2_PACKAGE_YASM is not set
-
-#
-# Filesystem and flash utilities
-#
-# BR2_PACKAGE_AUFS_UTIL is not set
-# BR2_PACKAGE_AUTOFS is not set
-# BR2_PACKAGE_BTRFS_PROGS is not set
-# BR2_PACKAGE_CIFS_UTILS is not set
-# BR2_PACKAGE_CPIO is not set
-# BR2_PACKAGE_CRAMFS is not set
-# BR2_PACKAGE_CURLFTPFS is not set
-# BR2_PACKAGE_DOSFSTOOLS is not set
-# BR2_PACKAGE_E2FSPROGS is not set
-# BR2_PACKAGE_E2TOOLS is not set
-# BR2_PACKAGE_ECRYPTFS_UTILS is not set
-# BR2_PACKAGE_EXFAT is not set
-# BR2_PACKAGE_EXFAT_UTILS is not set
-# BR2_PACKAGE_F2FS_TOOLS is not set
-# BR2_PACKAGE_FLASHBENCH is not set
-# BR2_PACKAGE_FWUP is not set
-# BR2_PACKAGE_GENEXT2FS is not set
-# BR2_PACKAGE_GENPART is not set
-# BR2_PACKAGE_GENROMFS is not set
-# BR2_PACKAGE_MMC_UTILS is not set
-# BR2_PACKAGE_MTD is not set
-# BR2_PACKAGE_MTOOLS is not set
-# BR2_PACKAGE_NFS_UTILS is not set
-# BR2_PACKAGE_NTFS_3G is not set
-# BR2_PACKAGE_SIMICSFS is not set
-# BR2_PACKAGE_SP_OOPS_EXTRACT is not set
-# BR2_PACKAGE_SQUASHFS is not set
-# BR2_PACKAGE_SSHFS is not set
-# BR2_PACKAGE_UNIONFS is not set
-# BR2_PACKAGE_XFSPROGS is not set
-
-#
-# Fonts, cursors, icons, sounds and themes
-#
-
-#
-# Cursors
-#
-# BR2_PACKAGE_COMIX_CURSORS is not set
-# BR2_PACKAGE_OBSIDIAN_CURSORS is not set
-
-#
-# Fonts
-#
-# BR2_PACKAGE_BITSTREAM_VERA is not set
-# BR2_PACKAGE_CANTARELL is not set
-# BR2_PACKAGE_DEJAVU is not set
-# BR2_PACKAGE_FONT_AWESOME is not set
-# BR2_PACKAGE_GHOSTSCRIPT_FONTS is not set
-# BR2_PACKAGE_INCONSOLATA is not set
-# BR2_PACKAGE_LIBERATION is not set
-
-#
-# Icons
-#
-# BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS is not set
-# BR2_PACKAGE_HICOLOR_ICON_THEME is not set
-
-#
-# Sounds
-#
-# BR2_PACKAGE_SOUND_THEME_BOREALIS is not set
-# BR2_PACKAGE_SOUND_THEME_FREEDESKTOP is not set
-
-#
-# Themes
-#
-
-#
-# Games
-#
-# BR2_PACKAGE_CHOCOLATE_DOOM is not set
-
-#
-# gnuchess needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_LBREAKOUT2 is not set
-# BR2_PACKAGE_LTRIS is not set
-# BR2_PACKAGE_OPENTYRIAN is not set
-# BR2_PACKAGE_PRBOOM is not set
-# BR2_PACKAGE_SL is not set
-
-#
-# stella needs a toolchain w/ dynamic library, C++, gcc >= 4.8
-#
-
-#
-# Graphic libraries and applications (graphic/text)
-#
-
-#
-# Graphic applications
-#
-
-#
-# expedite needs a toolchain w/ C++
-#
-# BR2_PACKAGE_FSWEBCAM is not set
-# BR2_PACKAGE_GHOSTSCRIPT is not set
-
-#
-# glmark2 needs a toolchain w/ C++, gcc >= 4.9
-#
-# BR2_PACKAGE_GNUPLOT is not set
-# BR2_PACKAGE_JHEAD is not set
-# BR2_PACKAGE_PNGQUANT is not set
-# BR2_PACKAGE_RRDTOOL is not set
-
-#
-# tesseract-ocr needs a toolchain w/ threads, C++, gcc >= 4.8, dynamic library, wchar
-#
-
-#
-# Graphic libraries
-#
-
-#
-# cegui06 needs a toolchain w/ C++, threads, dynamic library
-#
-
-#
-# directfb needs a glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5, dynamic library
-#
-
-#
-# efl needs a toolchain w/ C++, dynamic library, gcc >= 4.7, threads, wchar
-#
-# BR2_PACKAGE_FBDUMP is not set
-# BR2_PACKAGE_FBGRAB is not set
-# BR2_PACKAGE_FB_TEST_APP is not set
-
-#
-# fbterm needs a toolchain w/ C++, wchar, locale
-#
-# BR2_PACKAGE_FBV is not set
-
-#
-# freerdp needs a toolchain w/ wchar, dynamic library, threads, C++
-#
-# BR2_PACKAGE_IMAGEMAGICK is not set
-# BR2_PACKAGE_LINUX_FUSION is not set
-
-#
-# mesa3d needs a toolchain w/ C++, NPTL, dynamic library
-#
-
-#
-# ocrad needs a toolchain w/ C++
-#
-# BR2_PACKAGE_PSPLASH is not set
-# BR2_PACKAGE_SDL is not set
-# BR2_PACKAGE_SDL2 is not set
-
-#
-# Other GUIs
-#
-
-#
-# qt needs a toolchain w/ C++, threads
-#
-BR2_PACKAGE_QT5_JSCORE_AVAILABLE=y
-
-#
-# Qt5 needs a toolchain w/ wchar, NPTL, C++, dynamic library
-#
-
-#
-# tekui needs a Lua interpreter and a toolchain w/ threads, dynamic library
-#
-
-#
-# weston needs udev and a toolchain w/ locale, threads, dynamic library, headers >= 3.0
-#
-# BR2_PACKAGE_XORG7 is not set
-
-#
-# midori needs libgtk3 and a glibc toolchain w/ C++, gcc >= 4.9
-#
-# BR2_PACKAGE_XKEYBOARD_CONFIG is not set
-
-#
-# Hardware handling
-#
-
-#
-# Firmware
-#
-# BR2_PACKAGE_B43_FIRMWARE is not set
-# BR2_PACKAGE_LINUX_FIRMWARE is not set
-# BR2_PACKAGE_UX500_FIRMWARE is not set
-# BR2_PACKAGE_WILC1000_FIRMWARE is not set
-# BR2_PACKAGE_WILINK_BT_FIRMWARE is not set
-# BR2_PACKAGE_ZD1211_FIRMWARE is not set
-# BR2_PACKAGE_ACPICA is not set
-# BR2_PACKAGE_ACPID is not set
-
-#
-# acpitool needs a toolchain w/ threads, C++, dynamic library
-#
-# BR2_PACKAGE_AER_INJECT is not set
-# BR2_PACKAGE_AMD_CATALYST is not set
-# BR2_PACKAGE_AVRDUDE is not set
-
-#
-# bcache-tools needs udev /dev management
-#
-
-#
-# cc-tool needs a toolchain w/ C++, threads, wchar
-#
-# BR2_PACKAGE_CDRKIT is not set
-# BR2_PACKAGE_CRYPTSETUP is not set
-# BR2_PACKAGE_CWIID is not set
-# BR2_PACKAGE_DBUS is not set
-# BR2_PACKAGE_DMIDECODE is not set
-# BR2_PACKAGE_DMRAID is not set
-# BR2_PACKAGE_DTV_SCAN_TABLES is not set
-# BR2_PACKAGE_DVB_APPS is not set
-# BR2_PACKAGE_DVBSNOOP is not set
-# BR2_PACKAGE_EDID_DECODE is not set
-# BR2_PACKAGE_EEPROG is not set
-
-#
-# eudev needs eudev /dev management
-#
-# BR2_PACKAGE_EVEMU is not set
-# BR2_PACKAGE_EVTEST is not set
-# BR2_PACKAGE_FAN_CTRL is not set
-# BR2_PACKAGE_FCONFIG is not set
-# BR2_PACKAGE_FIS is not set
-# BR2_PACKAGE_FLASHROM is not set
-# BR2_PACKAGE_FMTOOLS is not set
-# BR2_PACKAGE_FXLOAD is not set
-# BR2_PACKAGE_GADGETFS_TEST is not set
-# BR2_PACKAGE_GPM is not set
-# BR2_PACKAGE_GPSD is not set
-
-#
-# gptfdisk needs a toolchain w/ C++
-#
-# BR2_PACKAGE_GVFS is not set
-# BR2_PACKAGE_HWDATA is not set
-# BR2_PACKAGE_HWLOC is not set
-# BR2_PACKAGE_I7Z is not set
-# BR2_PACKAGE_INPUT_EVENT_DAEMON is not set
-# BR2_PACKAGE_INPUT_TOOLS is not set
-# BR2_PACKAGE_INTEL_MICROCODE is not set
-# BR2_PACKAGE_IOSTAT is not set
-# BR2_PACKAGE_IPMITOOL is not set
-# BR2_PACKAGE_IPMIUTIL is not set
-# BR2_PACKAGE_IQVLINUX is not set
-# BR2_PACKAGE_IRDA_UTILS is not set
-# BR2_PACKAGE_IUCODE_TOOL is not set
-# BR2_PACKAGE_KBD is not set
-# BR2_PACKAGE_LCDPROC is not set
-# BR2_PACKAGE_LIBUIO is not set
-# BR2_PACKAGE_LINUX_BACKPORTS is not set
-
-#
-# lirc-tools needs a toolchain w/ threads, dynamic library, C++
-#
-# BR2_PACKAGE_LM_SENSORS is not set
-
-#
-# lshw needs a toolchain w/ C++, wchar
-#
-# BR2_PACKAGE_LSUIO is not set
-# BR2_PACKAGE_LVM2 is not set
-# BR2_PACKAGE_MDADM is not set
-# BR2_PACKAGE_MEMTEST86 is not set
-# BR2_PACKAGE_MEMTESTER is not set
-# BR2_PACKAGE_MEMTOOL is not set
-# BR2_PACKAGE_MINICOM is not set
-BR2_PACKAGE_MSR_TOOLS=y
-# BR2_PACKAGE_NANOCOM is not set
-# BR2_PACKAGE_NEARD is not set
-# BR2_PACKAGE_NVIDIA_DRIVER is not set
-# BR2_PACKAGE_NVME is not set
-# BR2_PACKAGE_OFONO is not set
-# BR2_PACKAGE_OPEN2300 is not set
-# BR2_PACKAGE_OPENIPMI is not set
-# BR2_PACKAGE_OPENOCD is not set
-
-#
-# openpowerlink needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_PARTED is not set
-# BR2_PACKAGE_PCIUTILS is not set
-# BR2_PACKAGE_PDBG is not set
-# BR2_PACKAGE_PICOCOM is not set
-
-#
-# powertop needs a toolchain w/ C++, threads, wchar
-#
-# BR2_PACKAGE_PPS_TOOLS is not set
-# BR2_PACKAGE_READ_EDID is not set
-# BR2_PACKAGE_RFKILL is not set
-# BR2_PACKAGE_RNG_TOOLS is not set
-# BR2_PACKAGE_RS485CONF is not set
-# BR2_PACKAGE_RTL8188EU is not set
-# BR2_PACKAGE_RTL8723BS is not set
-# BR2_PACKAGE_RTL8821AU is not set
-# BR2_PACKAGE_SANE_BACKENDS is not set
-# BR2_PACKAGE_SDPARM is not set
-# BR2_PACKAGE_SETSERIAL is not set
-# BR2_PACKAGE_SG3_UTILS is not set
-# BR2_PACKAGE_SIGROK_CLI is not set
-# BR2_PACKAGE_SISPMCTL is not set
-
-#
-# smartmontools needs a toolchain w/ C++
-#
-# BR2_PACKAGE_SMSTOOLS3 is not set
-# BR2_PACKAGE_SPI_TOOLS is not set
-# BR2_PACKAGE_SREDIRD is not set
-# BR2_PACKAGE_STATSERIAL is not set
-# BR2_PACKAGE_STM32FLASH is not set
-# BR2_PACKAGE_SYSSTAT is not set
-
-#
-# targetcli-fb depends on Python
-#
-
-#
-# ti-sgx-um needs the ti-sgx-km driver
-#
-# BR2_PACKAGE_TI_UIM is not set
-# BR2_PACKAGE_TI_UTILS is not set
-# BR2_PACKAGE_TRIGGERHAPPY is not set
-# BR2_PACKAGE_UBOOT_TOOLS is not set
-# BR2_PACKAGE_UBUS is not set
-# BR2_PACKAGE_UCCP420WLAN is not set
-
-#
-# udisks needs udev /dev management
-#
-
-#
-# upower needs udev /dev management
-#
-# BR2_PACKAGE_USB_MODESWITCH is not set
-# BR2_PACKAGE_USB_MODESWITCH_DATA is not set
-
-#
-# usbmount requires udev to be enabled
-#
-
-#
-# usbutils needs udev /dev management and toolchain w/ threads
-#
-# BR2_PACKAGE_W_SCAN is not set
-# BR2_PACKAGE_WIPE is not set
-# BR2_PACKAGE_XORRISO is not set
-
-#
-# Interpreter languages and scripting
-#
-# BR2_PACKAGE_4TH is not set
-# BR2_PACKAGE_ENSCRIPT is not set
-BR2_PACKAGE_ERLANG_ARCH_SUPPORTS=y
-# BR2_PACKAGE_ERLANG is not set
-# BR2_PACKAGE_EXECLINE is not set
-# BR2_PACKAGE_FICL is not set
-BR2_PACKAGE_GAUCHE_ARCH_SUPPORTS=y
-# BR2_PACKAGE_GAUCHE is not set
-# BR2_PACKAGE_GUILE is not set
-# BR2_PACKAGE_HASERL is not set
-# BR2_PACKAGE_JAMVM is not set
-# BR2_PACKAGE_JIMTCL is not set
-# BR2_PACKAGE_LUA is not set
-BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS=y
-# BR2_PACKAGE_LUAJIT is not set
-# BR2_PACKAGE_MICROPYTHON is not set
-# BR2_PACKAGE_MOARVM is not set
-BR2_PACKAGE_MONO_ARCH_SUPPORTS=y
-# BR2_PACKAGE_MONO is not set
-BR2_PACKAGE_NODEJS_ARCH_SUPPORTS=y
-
-#
-# nodejs needs a toolchain w/ C++, dynamic library, threads, gcc >= 4.8, wchar
-#
-# BR2_PACKAGE_PERL is not set
-# BR2_PACKAGE_PHP is not set
-# BR2_PACKAGE_PYTHON is not set
-# BR2_PACKAGE_PYTHON3 is not set
-# BR2_PACKAGE_RUBY is not set
-# BR2_PACKAGE_TCL is not set
-
-#
-# Libraries
-#
-
-#
-# Audio/Sound
-#
-# BR2_PACKAGE_ALSA_LIB is not set
-# BR2_PACKAGE_AUBIO is not set
-
-#
-# audiofile needs a toolchain w/ C++
-#
-# BR2_PACKAGE_CELT051 is not set
-BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS=y
-
-#
-# fdk-aac needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LIBAO is not set
-
-#
-# asplib needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LIBBROADVOICE is not set
-# BR2_PACKAGE_LIBCDAUDIO is not set
-# BR2_PACKAGE_LIBCDDB is not set
-# BR2_PACKAGE_LIBCDIO is not set
-# BR2_PACKAGE_LIBCODEC2 is not set
-# BR2_PACKAGE_LIBCUE is not set
-# BR2_PACKAGE_LIBCUEFILE is not set
-# BR2_PACKAGE_LIBEBUR128 is not set
-# BR2_PACKAGE_LIBG7221 is not set
-# BR2_PACKAGE_LIBGSM is not set
-# BR2_PACKAGE_LIBID3TAG is not set
-# BR2_PACKAGE_LIBILBC is not set
-# BR2_PACKAGE_LIBLO is not set
-# BR2_PACKAGE_LIBMAD is not set
-
-#
-# libmodplug needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LIBMPD is not set
-# BR2_PACKAGE_LIBMPDCLIENT is not set
-# BR2_PACKAGE_LIBREPLAYGAIN is not set
-# BR2_PACKAGE_LIBSAMPLERATE is not set
-
-#
-# libsidplay2 needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LIBSILK is not set
-# BR2_PACKAGE_LIBSNDFILE is not set
-
-#
-# libsoundtouch needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LIBSOXR is not set
-# BR2_PACKAGE_LIBVORBIS is not set
-
-#
-# mp4v2 needs a toolchain w/ C++
-#
-BR2_PACKAGE_OPENAL_ARCH_SUPPORTS=y
-
-#
-# openal needs a toolchain w/ NPTL, C++
-#
-
-#
-# opencore-amr needs a toolchain w/ C++
-#
-# BR2_PACKAGE_OPUS is not set
-# BR2_PACKAGE_OPUSFILE is not set
-# BR2_PACKAGE_PORTAUDIO is not set
-# BR2_PACKAGE_SBC is not set
-# BR2_PACKAGE_SPEEX is not set
-
-#
-# taglib needs a toolchain w/ C++, wchar
-#
-# BR2_PACKAGE_TINYALSA is not set
-# BR2_PACKAGE_TREMOR is not set
-# BR2_PACKAGE_VO_AACENC is not set
-BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS=y
-
-#
-# webrtc-audio-processing needs a toolchain w/ C++, NPTL, gcc >= 4.8
-#
-
-#
-# Compression and decompression
-#
-# BR2_PACKAGE_LIBARCHIVE is not set
-
-#
-# libsquish needs a toolchain w/ C++, dynamic library
-#
-# BR2_PACKAGE_LIBZIP is not set
-# BR2_PACKAGE_LZO is not set
-# BR2_PACKAGE_MINIZIP is not set
-
-#
-# snappy needs a toolchain w/ C++
-#
-# BR2_PACKAGE_SZIP is not set
-BR2_PACKAGE_ZLIB=y
-
-#
-# Crypto
-#
-# BR2_PACKAGE_BEECRYPT is not set
-BR2_PACKAGE_BOTAN_ARCH_SUPPORTS=y
-
-#
-# botan needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_CA_CERTIFICATES is not set
-# BR2_PACKAGE_CRYPTODEV is not set
-# BR2_PACKAGE_GCR is not set
-# BR2_PACKAGE_GNUTLS is not set
-# BR2_PACKAGE_LIBASSUAN is not set
-# BR2_PACKAGE_LIBGCRYPT is not set
-BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS=y
-# BR2_PACKAGE_LIBGPG_ERROR is not set
-BR2_PACKAGE_LIBGPG_ERROR_SYSCFG="x86_64-pc-linux-gnu"
-# BR2_PACKAGE_LIBGPGME is not set
-# BR2_PACKAGE_LIBKCAPI is not set
-# BR2_PACKAGE_LIBKSBA is not set
-# BR2_PACKAGE_LIBMCRYPT is not set
-# BR2_PACKAGE_LIBMHASH is not set
-# BR2_PACKAGE_LIBNSS is not set
-# BR2_PACKAGE_LIBSCRYPT is not set
-# BR2_PACKAGE_LIBSECRET is not set
-# BR2_PACKAGE_LIBSHA1 is not set
-# BR2_PACKAGE_LIBSODIUM is not set
-# BR2_PACKAGE_LIBSSH is not set
-# BR2_PACKAGE_LIBSSH2 is not set
-# BR2_PACKAGE_LIBTOMCRYPT is not set
-# BR2_PACKAGE_LIBUECC is not set
-# BR2_PACKAGE_MBEDTLS is not set
-# BR2_PACKAGE_NETTLE is not set
-BR2_PACKAGE_OPENSSL=y
-# BR2_PACKAGE_OPENSSL_BIN is not set
-# BR2_PACKAGE_OPENSSL_ENGINES is not set
-# BR2_PACKAGE_TINYDTLS is not set
-# BR2_PACKAGE_TROUSERS is not set
-# BR2_PACKAGE_USTREAM_SSL is not set
-
-#
-# Database
-#
-# BR2_PACKAGE_BERKELEYDB is not set
-# BR2_PACKAGE_GDBM is not set
-# BR2_PACKAGE_HIREDIS is not set
-
-#
-# kompexsqlite needs a toolchain w/ C++, wchar, threads, dynamic library
-#
-
-#
-# leveldb needs a toolchain w/ C++, threads
-#
-BR2_PACKAGE_MONGODB_ARCH_SUPPORTS=y
-
-#
-# mongodb needs a glibc toolchain w/ wchar, threads, C++, gcc >= 4.8
-#
-
-#
-# mysql needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_POSTGRESQL is not set
-# BR2_PACKAGE_REDIS is not set
-# BR2_PACKAGE_SQLCIPHER is not set
-# BR2_PACKAGE_SQLITE is not set
-# BR2_PACKAGE_UNIXODBC is not set
-
-#
-# Filesystem
-#
-# BR2_PACKAGE_GAMIN is not set
-# BR2_PACKAGE_LIBCONFIG is not set
-# BR2_PACKAGE_LIBCONFUSE is not set
-# BR2_PACKAGE_LIBFUSE is not set
-# BR2_PACKAGE_LIBLOCKFILE is not set
-# BR2_PACKAGE_LIBNFS is not set
-# BR2_PACKAGE_LIBSYSFS is not set
-# BR2_PACKAGE_LOCKDEV is not set
-
-#
-# physfs needs a toolchain w/ C++
-#
-
-#
-# Graphics
-#
-
-#
-# assimp needs a toolchain w/ C++
-#
-# BR2_PACKAGE_ATK is not set
-
-#
-# atkmm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8
-#
-
-#
-# bullet needs a toolchain w/ C++
-#
-# BR2_PACKAGE_CAIRO is not set
-
-#
-# cairomm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8
-#
-
-#
-# exiv2 needs a toolchain w/ C++, wchar, dynamic library
-#
-# BR2_PACKAGE_FONTCONFIG is not set
-# BR2_PACKAGE_FREETYPE is not set
-# BR2_PACKAGE_GD is not set
-# BR2_PACKAGE_GDK_PIXBUF is not set
-# BR2_PACKAGE_GIFLIB is not set
-
-#
-# granite needs libgtk3 and a toolchain w/ wchar, threads
-#
-
-#
-# graphite2 needs a toolchain w/ C++, dynamic library
-#
-
-#
-# gtkmm3 needs libgtk3 and a toolchain w/ C++, wchar, threads, gcc >= 4.8
-#
-
-#
-# harfbuzz needs a toolchain w/ C++
-#
-# BR2_PACKAGE_IJS is not set
-# BR2_PACKAGE_IMLIB2 is not set
-# BR2_PACKAGE_JASPER is not set
-# BR2_PACKAGE_JPEG is not set
-BR2_PACKAGE_JPEG_SIMD_SUPPORT=y
-
-#
-# kms++ needs a toolchain w/ threads, C++, gcc >= 4.8, headers >= 3.8
-#
-# BR2_PACKAGE_LCMS2 is not set
-
-#
-# lensfun needs a toolchain w/ C++, threads, wchar
-#
-# BR2_PACKAGE_LEPTONICA is not set
-# BR2_PACKAGE_LIBART is not set
-# BR2_PACKAGE_LIBDMTX is not set
-# BR2_PACKAGE_LIBDRM is not set
-
-#
-# libepoxy needs an OpenGL and/or OpenGL EGL backend
-#
-# BR2_PACKAGE_LIBEXIF is not set
-
-#
-# libfm needs X.org and a toolchain w/ wchar, threads, C++
-#
-# BR2_PACKAGE_LIBFM_EXTRA is not set
-
-#
-# libfreeglut depends on X.org and needs an OpenGL backend
-#
-
-#
-# libfreeimage needs a toolchain w/ C++, dynamic library, wchar
-#
-# BR2_PACKAGE_LIBGEOTIFF is not set
-
-#
-# libglew depends on X.org and needs an OpenGL backend
-#
-
-#
-# libglfw depends on X.org and needs an OpenGL backend
-#
-
-#
-# libglu needs an OpenGL backend
-#
-
-#
-# libgtk3 needs a toolchain w/ wchar, threads, C++
-#
-
-#
-# libgtk3 needs an OpenGL or an OpenGL-EGL/wayland backend
-#
-# BR2_PACKAGE_LIBMEDIAART is not set
-# BR2_PACKAGE_LIBMNG is not set
-# BR2_PACKAGE_LIBPNG is not set
-# BR2_PACKAGE_LIBQRENCODE is not set
-
-#
-# libraw needs a toolchain w/ C++
-#
-
-#
-# librsvg needs a toolchain w/ wchar, threads, C++
-#
-
-#
-# libsoil needs an OpenGL backend and a toolchain w/ dynamic library
-#
-# BR2_PACKAGE_LIBSVG is not set
-# BR2_PACKAGE_LIBSVG_CAIRO is not set
-# BR2_PACKAGE_LIBSVGTINY is not set
-# BR2_PACKAGE_LIBVA is not set
-# BR2_PACKAGE_LIBVA_INTEL_DRIVER is not set
-
-#
-# libvips needs a toolchain w/ wchar, threads, C++
-#
-# BR2_PACKAGE_MENU_CACHE is not set
-
-#
-# opencv needs a toolchain w/ C++, NPTL, wchar
-#
-
-#
-# opencv3 needs a toolchain w/ C++, NPTL, wchar, dynamic library
-#
-# BR2_PACKAGE_OPENJPEG is not set
-
-#
-# pango needs a toolchain w/ wchar, threads, C++
-#
-
-#
-# pangomm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8
-#
-BR2_PACKAGE_PIXMAN=y
-
-#
-# poppler needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_TIFF is not set
-# BR2_PACKAGE_WAYLAND is not set
-BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS=y
-
-#
-# webkitgtk needs libgtk3 and a glibc toolchain w/ C++, gcc >= 4.9
-#
-# BR2_PACKAGE_WEBP is not set
-
-#
-# zbar needs a toolchain w/ threads, dynamic library, C++ and headers >= 3.0
-#
-
-#
-# zxing-cpp needs a toolchain w/ C++, dynamic library
-#
-
-#
-# Hardware handling
-#
-# BR2_PACKAGE_ACSCCID is not set
-# BR2_PACKAGE_C_PERIPHERY is not set
-# BR2_PACKAGE_CCID is not set
-# BR2_PACKAGE_DTC is not set
-# BR2_PACKAGE_GNU_EFI is not set
-
-#
-# hidapi needs udev /dev management and a toolchain w/ NPTL threads
-#
-
-#
-# lcdapi needs a toolchain w/ C++, threads
-#
-BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS=y
-# BR2_PACKAGE_LIBAIO is not set
-
-#
-# libatasmart requires udev to be enabled
-#
-
-#
-# libcec needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.7
-#
-# BR2_PACKAGE_LIBFREEFARE is not set
-# BR2_PACKAGE_LIBFTDI is not set
-# BR2_PACKAGE_LIBFTDI1 is not set
-# BR2_PACKAGE_LIBGPHOTO2 is not set
-
-#
-# libgpiod needs kernel headers >= 4.8
-#
-
-#
-# libgudev needs udev /dev handling and a toolchain w/ wchar, threads
-#
-# BR2_PACKAGE_LIBHID is not set
-# BR2_PACKAGE_LIBIIO is not set
-
-#
-# libinput needs udev /dev management and a toolchain w/ locale
-#
-# BR2_PACKAGE_LIBIQRF is not set
-# BR2_PACKAGE_LIBLLCP is not set
-
-#
-# libmbim needs udev /dev management and a toolchain w/ wchar, threads
-#
-# BR2_PACKAGE_LIBNFC is not set
-# BR2_PACKAGE_LIBPCIACCESS is not set
-# BR2_PACKAGE_LIBPHIDGET is not set
-# BR2_PACKAGE_LIBQMI is not set
-# BR2_PACKAGE_LIBRAW1394 is not set
-# BR2_PACKAGE_LIBRTLSDR is not set
-
-#
-# libserial needs a toolchain w/ C++, threads, wchar
-#
-# BR2_PACKAGE_LIBSERIALPORT is not set
-# BR2_PACKAGE_LIBSIGROK is not set
-# BR2_PACKAGE_LIBSIGROKDECODE is not set
-# BR2_PACKAGE_LIBSOC is not set
-# BR2_PACKAGE_LIBUSB is not set
-# BR2_PACKAGE_LIBUSBGX is not set
-
-#
-# libv4l needs a toolchain w/ threads, dynamic library, C++ and headers >= 3.0
-#
-# BR2_PACKAGE_LIBXKBCOMMON is not set
-# BR2_PACKAGE_MRAA is not set
-# BR2_PACKAGE_MTDEV is not set
-# BR2_PACKAGE_NEARDAL is not set
-# BR2_PACKAGE_OWFS is not set
-# BR2_PACKAGE_PCSC_LITE is not set
-# BR2_PACKAGE_TSLIB is not set
-
-#
-# urg needs a toolchain w/ C++
-#
-# BR2_PACKAGE_WIRINGPI is not set
-
-#
-# Javascript
-#
-# BR2_PACKAGE_ANGULARJS is not set
-# BR2_PACKAGE_BOOTSTRAP is not set
-# BR2_PACKAGE_EXPLORERCANVAS is not set
-# BR2_PACKAGE_FLOT is not set
-# BR2_PACKAGE_JQUERY is not set
-# BR2_PACKAGE_JSMIN is not set
-# BR2_PACKAGE_JSON_JAVASCRIPT is not set
-
-#
-# JSON/XML
-#
-
-#
-# benejson needs a toolchain w/ C++
-#
-# BR2_PACKAGE_CJSON is not set
-# BR2_PACKAGE_EXPAT is not set
-# BR2_PACKAGE_EZXML is not set
-# BR2_PACKAGE_JANSSON is not set
-# BR2_PACKAGE_JSMN is not set
-# BR2_PACKAGE_JSON_C is not set
-# BR2_PACKAGE_JSON_GLIB is not set
-
-#
-# jsoncpp needs a toolchain w/ C++, gcc >= 4.7
-#
-# BR2_PACKAGE_LIBBSON is not set
-# BR2_PACKAGE_LIBFASTJSON is not set
-
-#
-# libjson needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LIBROXML is not set
-# BR2_PACKAGE_LIBUCL is not set
-# BR2_PACKAGE_LIBXML2 is not set
-
-#
-# libxml++ needs a toolchain w/ C++, wchar, threads, gcc >= 4.8
-#
-# BR2_PACKAGE_LIBXMLRPC is not set
-# BR2_PACKAGE_LIBXSLT is not set
-# BR2_PACKAGE_LIBYAML is not set
-# BR2_PACKAGE_MXML is not set
-
-#
-# pugixml needs a toolchain w/ C++
-#
-
-#
-# rapidjson needs a toolchain w/ C++
-#
-# BR2_PACKAGE_RAPIDXML is not set
-# BR2_PACKAGE_RAPTOR is not set
-
-#
-# tinyxml needs a toolchain w/ C++
-#
-
-#
-# tinyxml2 needs a toolchain w/ C++
-#
-
-#
-# valijson needs a toolchain w/ C++, threads, wchar support
-#
-
-#
-# xerces-c++ needs a toolchain w/ C++, wchar
-#
-# BR2_PACKAGE_YAJL is not set
-
-#
-# yaml-cpp needs a toolchain w/ C++, threads, wchar
-#
-
-#
-# Logging
-#
-# BR2_PACKAGE_EVENTLOG is not set
-
-#
-# glog needs a toolchain w/ C++, threads, dynamic library
-#
-# BR2_PACKAGE_LIBLOG4C_LOCALTIME is not set
-# BR2_PACKAGE_LIBLOGGING is not set
-
-#
-# log4cplus needs a toolchain w/ C++, wchar, threads
-#
-
-#
-# log4cpp needs a toolchain w/ C++, threads
-#
-
-#
-# log4cxx needs a toolchain w/ C++, threads, dynamic library
-#
-# BR2_PACKAGE_ZLOG is not set
-
-#
-# Multimedia
-#
-# BR2_PACKAGE_BITSTREAM is not set
-# BR2_PACKAGE_LIBAACS is not set
-# BR2_PACKAGE_LIBASS is not set
-# BR2_PACKAGE_LIBBDPLUS is not set
-# BR2_PACKAGE_LIBBLURAY is not set
-# BR2_PACKAGE_LIBDCADEC is not set
-# BR2_PACKAGE_LIBDVBCSA is not set
-# BR2_PACKAGE_LIBDVBPSI is not set
-
-#
-# libdvbsi++ needs a toolchain w/ C++, wchar, threads
-#
-# BR2_PACKAGE_LIBDVDCSS is not set
-# BR2_PACKAGE_LIBDVDNAV is not set
-# BR2_PACKAGE_LIBDVDREAD is not set
-
-#
-# libebml needs a toolchain w/ C++, wchar
-#
-# BR2_PACKAGE_LIBHDHOMERUN is not set
-
-#
-# libmatroska needs a toolchain w/ C++, wchar
-#
-# BR2_PACKAGE_LIBMMS is not set
-# BR2_PACKAGE_LIBMPEG2 is not set
-# BR2_PACKAGE_LIBOGG is not set
-BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS=y
-
-#
-# libopenh264 needs a toolchain w/ C++, dynamic library, threads
-#
-# BR2_PACKAGE_LIBPLAYER is not set
-# BR2_PACKAGE_LIBTHEORA is not set
-# BR2_PACKAGE_LIBVPX is not set
-
-#
-# libyuv needs a toolchain w/ C++, dynamic library
-#
-
-#
-# live555 needs a toolchain w/ C++
-#
-
-#
-# mediastreamer needs a toolchain w/ threads, C++
-#
-# BR2_PACKAGE_X264 is not set
-
-#
-# x265 needs a toolchain w/ C++, threads, dynamic library
-#
-
-#
-# Networking
-#
-
-#
-# agent++ needs a toolchain w/ threads, C++, dynamic library
-#
-
-#
-# alljoyn needs a toolchain w/ C++, threads, wchar and dynamic library
-#
-
-#
-# alljoyn-base needs a toolchain w/ C++, threads, wchar, dynamic library
-#
-# BR2_PACKAGE_ALLJOYN_TCL is not set
-# BR2_PACKAGE_ALLJOYN_TCL_BASE is not set
-# BR2_PACKAGE_BATMAN_ADV is not set
-# BR2_PACKAGE_C_ARES is not set
-BR2_PACKAGE_CANFESTIVAL_ARCH_SUPPORTS=y
-# BR2_PACKAGE_CANFESTIVAL is not set
-# BR2_PACKAGE_CGIC is not set
-
-#
-# cppzmq needs a toolchain w/ C++, threads
-#
-
-#
-# czmq needs a toolchain w/ C++, threads
-#
-BR2_PACKAGE_DPDK=y
-BR2_PACKAGE_DPDK_CONFIG="x86_64-native-linuxapp-gcc"
-# BR2_PACKAGE_DPDK_TEST is not set
-BR2_PACKAGE_DPDK_EXAMPLES=y
-
-#
-# filemq needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_FLICKCURL is not set
-# BR2_PACKAGE_FREERADIUS_CLIENT is not set
-# BR2_PACKAGE_GEOIP is not set
-# BR2_PACKAGE_GLIB_NETWORKING is not set
-# BR2_PACKAGE_GSSDP is not set
-# BR2_PACKAGE_GUPNP is not set
-# BR2_PACKAGE_GUPNP_AV is not set
-# BR2_PACKAGE_GUPNP_DLNA is not set
-
-#
-# ibrcommon needs a toolchain w/ C++, threads
-#
-
-#
-# ibrdtn needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_LIBCGI is not set
-
-#
-# libcgicc needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LIBCOAP is not set
-# BR2_PACKAGE_LIBCURL is not set
-# BR2_PACKAGE_LIBDNET is not set
-# BR2_PACKAGE_LIBEXOSIP2 is not set
-# BR2_PACKAGE_LIBFCGI is not set
-# BR2_PACKAGE_LIBGSASL is not set
-# BR2_PACKAGE_LIBHTTPPARSER is not set
-# BR2_PACKAGE_LIBIDN is not set
-# BR2_PACKAGE_LIBISCSI is not set
-# BR2_PACKAGE_LIBLDNS is not set
-# BR2_PACKAGE_LIBMAXMINDDB is not set
-# BR2_PACKAGE_LIBMBUS is not set
-
-#
-# libmemcached needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_LIBMICROHTTPD is not set
-# BR2_PACKAGE_LIBMINIUPNPC is not set
-# BR2_PACKAGE_LIBMNL is not set
-# BR2_PACKAGE_LIBMODBUS is not set
-# BR2_PACKAGE_LIBNATPMP is not set
-# BR2_PACKAGE_LIBNDP is not set
-# BR2_PACKAGE_LIBNET is not set
-# BR2_PACKAGE_LIBNETFILTER_ACCT is not set
-# BR2_PACKAGE_LIBNETFILTER_CONNTRACK is not set
-# BR2_PACKAGE_LIBNETFILTER_CTHELPER is not set
-# BR2_PACKAGE_LIBNETFILTER_CTTIMEOUT is not set
-# BR2_PACKAGE_LIBNETFILTER_LOG is not set
-# BR2_PACKAGE_LIBNETFILTER_QUEUE is not set
-# BR2_PACKAGE_LIBNFNETLINK is not set
-# BR2_PACKAGE_LIBNFTNL is not set
-# BR2_PACKAGE_LIBNICE is not set
-# BR2_PACKAGE_LIBNL is not set
-# BR2_PACKAGE_LIBOAUTH is not set
-# BR2_PACKAGE_LIBOPING is not set
-# BR2_PACKAGE_LIBOSIP2 is not set
-# BR2_PACKAGE_LIBPCAP is not set
-
-#
-# libpjsip needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_LIBRSYNC is not set
-# BR2_PACKAGE_LIBSHAIRPLAY is not set
-# BR2_PACKAGE_LIBSHOUT is not set
-# BR2_PACKAGE_LIBSOCKETCAN is not set
-# BR2_PACKAGE_LIBSOUP is not set
-# BR2_PACKAGE_LIBSRTP is not set
-# BR2_PACKAGE_LIBSTROPHE is not set
-# BR2_PACKAGE_LIBTIRPC is not set
-
-#
-# libtorrent needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_LIBUPNP is not set
-
-#
-# libupnpp needs a toolchain w/ C++, threads, gcc >= 4.6
-#
-# BR2_PACKAGE_LIBURIPARSER is not set
-# BR2_PACKAGE_LIBVNCSERVER is not set
-# BR2_PACKAGE_LIBWEBSOCK is not set
-# BR2_PACKAGE_LIBWEBSOCKETS is not set
-# BR2_PACKAGE_LKSCTP_TOOLS is not set
-# BR2_PACKAGE_MONGOOSE is not set
-# BR2_PACKAGE_NANOMSG is not set
-# BR2_PACKAGE_NEON is not set
-
-#
-# norm needs a toolchain w/ C++, threads, dynamic library
-#
-# BR2_PACKAGE_NSS_PAM_LDAPD is not set
-
-#
-# omniORB needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_OPENLDAP is not set
-
-#
-# openmpi needs a toolchain w/ dynamic library, NPTL, wchar, C++
-#
-# BR2_PACKAGE_OPENPGM is not set
-
-#
-# openzwave needs udev and a toolchain w/ C++, threads, wchar
-#
-
-#
-# ortp needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_PAHO_MQTT_C is not set
-# BR2_PACKAGE_QDECODER is not set
-# BR2_PACKAGE_QPID_PROTON is not set
-# BR2_PACKAGE_RABBITMQ_C is not set
-# BR2_PACKAGE_RTMPDUMP is not set
-# BR2_PACKAGE_SLIRP is not set
-
-#
-# snmp++ needs a toolchain w/ threads, C++, dynamic library
-#
-# BR2_PACKAGE_SOFIA_SIP is not set
-
-#
-# thrift needs a toolchain w/ C++, wchar, threads
-#
-# BR2_PACKAGE_USBREDIR is not set
-
-#
-# zeromq needs a toolchain w/ C++, threads
-#
-
-#
-# zmqpp needs a toolchain w/ C++, threads, gcc >= 4.7
-#
-
-#
-# zyre needs a toolchain w/ C++, threads
-#
-
-#
-# Other
-#
-# BR2_PACKAGE_APR is not set
-# BR2_PACKAGE_APR_UTIL is not set
-
-#
-# armadillo needs a toolchain w/ C++
-#
-
-#
-# atf needs a toolchain w/ C++
-#
-
-#
-# bctoolbox needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_BDWGC is not set
-
-#
-# boost needs a toolchain w/ C++, threads, wchar
-#
-# BR2_PACKAGE_CLAPACK is not set
-BR2_PACKAGE_CLASSPATH_ARCH_SUPPORTS=y
-# BR2_PACKAGE_CLASSPATH is not set
-
-#
-# cppcms needs a toolchain w/ C++, NPTL, wchar, dynamic library
-#
-
-#
-# dawgdic needs a toolchain w/ C++, gcc >= 4.6
-#
-# BR2_PACKAGE_DING_LIBS is not set
-
-#
-# eigen needs a toolchain w/ C++
-#
-# BR2_PACKAGE_ELFUTILS is not set
-# BR2_PACKAGE_FFTW is not set
-
-#
-# flann needs a toolchain w/ C++, dynamic library
-#
-
-#
-# gflags needs a toolchain w/ C++
-#
-
-#
-# glibmm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8
-#
-
-#
-# glm needs a toolchain w/ C++
-#
-# BR2_PACKAGE_GMP is not set
-# BR2_PACKAGE_GSL is not set
-
-#
-# gtest needs a toolchain w/ C++, wchar, threads
-#
-BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS=y
-# BR2_PACKAGE_JEMALLOC is not set
-
-#
-# lapack/blas needs a toolchain w/ fortran
-#
-# BR2_PACKAGE_LIBARGTABLE2 is not set
-BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS=y
-# BR2_PACKAGE_LIBATOMIC_OPS is not set
-BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS=y
-# BR2_PACKAGE_LIBBSD is not set
-# BR2_PACKAGE_LIBCAP is not set
-# BR2_PACKAGE_LIBCAP_NG is not set
-
-#
-# libcgroup needs a glibc toolchain w/ C++
-#
-# BR2_PACKAGE_LIBCROCO is not set
-
-#
-# libcrossguid needs a toolchain w/ C++, gcc >= 4.7
-#
-# BR2_PACKAGE_LIBCSV is not set
-# BR2_PACKAGE_LIBDAEMON is not set
-# BR2_PACKAGE_LIBEE is not set
-# BR2_PACKAGE_LIBEV is not set
-# BR2_PACKAGE_LIBEVDEV is not set
-# BR2_PACKAGE_LIBEVENT is not set
-BR2_PACKAGE_LIBFFI=y
-# BR2_PACKAGE_LIBGEE is not set
-BR2_PACKAGE_LIBGLIB2=y
-# BR2_PACKAGE_LIBGLOB is not set
-
-#
-# libical needs a toolchain w/ C++, dynamic library, wchar
-#
-# BR2_PACKAGE_LIBITE is not set
-
-#
-# liblinear needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LIBNPTH is not set
-BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT=y
-# BR2_PACKAGE_LIBNSPR is not set
-# BR2_PACKAGE_LIBPFM4 is not set
-
-#
-# libplist needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LIBPTHREAD_STUBS is not set
-# BR2_PACKAGE_LIBPTHSEM is not set
-BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS=y
-# BR2_PACKAGE_LIBSECCOMP is not set
-
-#
-# libsigc++ needs a toolchain w/ C++, gcc >= 4.8
-#
-BR2_PACKAGE_LIBSIGSEGV_ARCH_SUPPORTS=y
-# BR2_PACKAGE_LIBSIGSEGV is not set
-# BR2_PACKAGE_LIBTASN1 is not set
-# BR2_PACKAGE_LIBTOMMATH is not set
-# BR2_PACKAGE_LIBTPL is not set
-# BR2_PACKAGE_LIBUBOX is not set
-# BR2_PACKAGE_LIBUCI is not set
-BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS=y
-# BR2_PACKAGE_LIBUNWIND is not set
-BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS=y
-# BR2_PACKAGE_LIBURCU is not set
-# BR2_PACKAGE_LIBUV is not set
-# BR2_PACKAGE_LIGHTNING is not set
-# BR2_PACKAGE_LINUX_PAM is not set
-# BR2_PACKAGE_LIQUID_DSP is not set
-# BR2_PACKAGE_LTTNG_LIBUST is not set
-# BR2_PACKAGE_MPC is not set
-# BR2_PACKAGE_MPDECIMAL is not set
-# BR2_PACKAGE_MPFR is not set
-# BR2_PACKAGE_MPIR is not set
-
-#
-# msgpack needs a toolchain w/ C++
-#
-# BR2_PACKAGE_MTDEV2TUIO is not set
-BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET="NEHALEM"
-BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS=y
-# BR2_PACKAGE_OPENBLAS is not set
-# BR2_PACKAGE_ORC is not set
-# BR2_PACKAGE_P11_KIT is not set
-
-#
-# poco needs a toolchain w/ wchar, threads, C++, dynamic library
-#
-BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS=y
-
-#
-# protobuf needs a toolchain w/ C++, threads, dynamic library, host and target gcc >= 4.5
-#
-
-#
-# protobuf-c needs a toolchain w/ C++, threads, host gcc >= 4.5
-#
-
-#
-# qhull needs a toolchain w/ C++, dynamic library, gcc >= 4.4
-#
-# BR2_PACKAGE_QLIBC is not set
-
-#
-# riemann-c-client needs a toolchain w/ C++, threads, host gcc >= 4.5
-#
-# BR2_PACKAGE_SHAPELIB is not set
-# BR2_PACKAGE_SKALIBS is not set
-# BR2_PACKAGE_SPHINXBASE is not set
-# BR2_PACKAGE_TINYCBOR is not set
-
-#
-# Security
-#
-# BR2_PACKAGE_LIBSELINUX is not set
-# BR2_PACKAGE_LIBSEMANAGE is not set
-# BR2_PACKAGE_LIBSEPOL is not set
-
-#
-# Text and terminal handling
-#
-# BR2_PACKAGE_AUGEAS is not set
-
-#
-# enchant needs a toolchain w/ C++, threads, wchar
-#
-
-#
-# fmt needs a toolchain w/ C++, wchar
-#
-
-#
-# icu needs a toolchain w/ C++, wchar, threads
-#
-# BR2_PACKAGE_LIBCLI is not set
-# BR2_PACKAGE_LIBEDIT is not set
-# BR2_PACKAGE_LIBENCA is not set
-# BR2_PACKAGE_LIBESTR is not set
-# BR2_PACKAGE_LIBFRIBIDI is not set
-# BR2_PACKAGE_LIBUNISTRING is not set
-# BR2_PACKAGE_LINENOISE is not set
-BR2_PACKAGE_NCURSES=y
-BR2_PACKAGE_NCURSES_WCHAR=y
-BR2_PACKAGE_NCURSES_TARGET_PROGS=y
-# BR2_PACKAGE_NEWT is not set
-BR2_PACKAGE_PCRE=y
-# BR2_PACKAGE_PCRE_16 is not set
-# BR2_PACKAGE_PCRE_32 is not set
-BR2_PACKAGE_PCRE_UTF=y
-BR2_PACKAGE_PCRE_UCP=y
-# BR2_PACKAGE_POPT is not set
-# BR2_PACKAGE_READLINE is not set
-# BR2_PACKAGE_SLANG is not set
-
-#
-# tclap needs a toolchain w/ C++
-#
-# BR2_PACKAGE_USTR is not set
-
-#
-# Mail
-#
-# BR2_PACKAGE_DOVECOT is not set
-# BR2_PACKAGE_EXIM is not set
-# BR2_PACKAGE_FETCHMAIL is not set
-# BR2_PACKAGE_HEIRLOOM_MAILX is not set
-# BR2_PACKAGE_LIBESMTP is not set
-# BR2_PACKAGE_MSMTP is not set
-# BR2_PACKAGE_MUTT is not set
-
-#
-# Miscellaneous
-#
-# BR2_PACKAGE_AESPIPE is not set
-# BR2_PACKAGE_BC is not set
-# BR2_PACKAGE_CLAMAV is not set
-# BR2_PACKAGE_COLLECTD is not set
-
-#
-# domoticz needs lua >= 5.2 and a toolchain w/ C++, threads, wchar, dynamic library
-#
-# BR2_PACKAGE_EMPTY is not set
-
-#
-# gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library
-#
-# BR2_PACKAGE_GOOGLEFONTDIRECTORY is not set
-
-#
-# gqrx needs a toolchain w/ C++, threads, wchar
-#
-
-#
-# gqrx needs qt5, gnuradio, fftw's single precision
-#
-# BR2_PACKAGE_GSETTINGS_DESKTOP_SCHEMAS is not set
-# BR2_PACKAGE_HAVEGED is not set
-# BR2_PACKAGE_LINUX_SYSCALL_SUPPORT is not set
-# BR2_PACKAGE_MCRYPT is not set
-# BR2_PACKAGE_MOBILE_BROADBAND_PROVIDER_INFO is not set
-BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET=y
-BR2_PACKAGE_QEMU=y
-
-#
-# Emulators selection
-#
-BR2_PACKAGE_QEMU_CUSTOM_TARGETS="x86_64-softmmu"
-BR2_PACKAGE_QEMU_HAS_EMULS=y
-
-#
-# Frontends
-#
-# BR2_PACKAGE_QEMU_SDL is not set
-
-#
-# Misc. features
-#
-# BR2_PACKAGE_QEMU_FDT is not set
-# BR2_PACKAGE_QEMU_TOOLS is not set
-
-#
-# qpdf needs a toolchain w/ C++
-#
-# BR2_PACKAGE_SHARED_MIME_INFO is not set
-
-#
-# taskd needs a toolchain w/ C++, wchar, dynamic library
-#
-# BR2_PACKAGE_XUTIL_UTIL_MACROS is not set
-
-#
-# Networking applications
-#
-# BR2_PACKAGE_AICCU is not set
-
-#
-# aircrack-ng needs a toolchain w/ threads, C++
-#
-# BR2_PACKAGE_APACHE is not set
-# BR2_PACKAGE_ARGUS is not set
-# BR2_PACKAGE_ARP_SCAN is not set
-# BR2_PACKAGE_ARPTABLES is not set
-# BR2_PACKAGE_ATFTP is not set
-# BR2_PACKAGE_AUTOSSH is not set
-# BR2_PACKAGE_AVAHI is not set
-# BR2_PACKAGE_AXEL is not set
-# BR2_PACKAGE_BABELD is not set
-# BR2_PACKAGE_BANDWIDTHD is not set
-# BR2_PACKAGE_BATCTL is not set
-
-#
-# bcusdk needs a toolchain w/ C++
-#
-# BR2_PACKAGE_BIND is not set
-# BR2_PACKAGE_BLUEZ_UTILS is not set
-# BR2_PACKAGE_BLUEZ5_UTILS is not set
-# BR2_PACKAGE_BMON is not set
-# BR2_PACKAGE_BOA is not set
-BR2_PACKAGE_BRIDGE_UTILS=y
-# BR2_PACKAGE_BWM_NG is not set
-# BR2_PACKAGE_C_ICAP is not set
-# BR2_PACKAGE_CAN_UTILS is not set
-
-#
-# cannelloni needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8
-#
-# BR2_PACKAGE_CHRONY is not set
-# BR2_PACKAGE_CIVETWEB is not set
-# BR2_PACKAGE_CONNMAN is not set
-
-#
-# connman-gtk needs libgtk3 and a glibc or uClibc toolchain w/ wchar, threads, resolver, dynamic library
-#
-# BR2_PACKAGE_CONNTRACK_TOOLS is not set
-# BR2_PACKAGE_CRDA is not set
-
-#
-# ctorrent needs a toolchain w/ C++
-#
-
-#
-# cups needs a toolchain w/ C++
-#
-# BR2_PACKAGE_DANTE is not set
-# BR2_PACKAGE_DARKHTTPD is not set
-# BR2_PACKAGE_DHCPCD is not set
-# BR2_PACKAGE_DHCPDUMP is not set
-# BR2_PACKAGE_DNSMASQ is not set
-# BR2_PACKAGE_DRBD_UTILS is not set
-# BR2_PACKAGE_DROPBEAR is not set
-# BR2_PACKAGE_EBTABLES is not set
-
-#
-# ebtables needs a glibc or uClibc toolchain
-#
-
-#
-# ejabberd needs erlang, toolchain w/ C++
-#
-# BR2_PACKAGE_ETHTOOL is not set
-# BR2_PACKAGE_FAIFA is not set
-# BR2_PACKAGE_FASTD is not set
-# BR2_PACKAGE_FCGIWRAP is not set
-# BR2_PACKAGE_FLANNEL is not set
-# BR2_PACKAGE_FPING is not set
-
-#
-# freeswitch needs a toolchain w/ C++, dynamic library, threads, wchar
-#
-# BR2_PACKAGE_GESFTPSERVER is not set
-
-#
-# gupnp-tools needs libgtk3
-#
-
-#
-# hans needs a toolchain w/ C++
-#
-# BR2_PACKAGE_HIAWATHA is not set
-# BR2_PACKAGE_HOSTAPD is not set
-# BR2_PACKAGE_HTTPING is not set
-
-#
-# ibrdtn-tools needs a toolchain w/ C++, threads
-#
-
-#
-# ibrdtnd needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_IFTOP is not set
-# BR2_PACKAGE_IGD2_FOR_LINUX is not set
-# BR2_PACKAGE_IGH_ETHERCAT is not set
-# BR2_PACKAGE_IGMPPROXY is not set
-# BR2_PACKAGE_INADYN is not set
-# BR2_PACKAGE_IODINE is not set
-
-#
-# iperf needs a toolchain w/ C++
-#
-# BR2_PACKAGE_IPERF3 is not set
-BR2_PACKAGE_IPROUTE2=y
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-# BR2_PACKAGE_IPSET is not set
-# BR2_PACKAGE_IPTABLES is not set
-# BR2_PACKAGE_IPTRAF_NG is not set
-# BR2_PACKAGE_IPUTILS is not set
-# BR2_PACKAGE_IRSSI is not set
-# BR2_PACKAGE_IW is not set
-# BR2_PACKAGE_JANUS_GATEWAY is not set
-# BR2_PACKAGE_KEEPALIVED is not set
-
-#
-# kismet needs a toolchain w/ threads, C++, dynamic library
-#
-# BR2_PACKAGE_KNOCK is not set
-# BR2_PACKAGE_LEAFNODE2 is not set
-# BR2_PACKAGE_LFT is not set
-
-#
-# lftp requires a toolchain w/ C++, wchar
-#
-# BR2_PACKAGE_LIGHTTPD is not set
-
-#
-# linknx needs a toolchain w/ C++
-#
-# BR2_PACKAGE_LINKS is not set
-
-#
-# linphone needs a toolchain w/ threads, C++
-#
-# BR2_PACKAGE_LINUX_ZIGBEE is not set
-# BR2_PACKAGE_LLDPD is not set
-# BR2_PACKAGE_LRZSZ is not set
-# BR2_PACKAGE_MACCHANGER is not set
-# BR2_PACKAGE_MEMCACHED is not set
-# BR2_PACKAGE_MII_DIAG is not set
-# BR2_PACKAGE_MINIDLNA is not set
-# BR2_PACKAGE_MINISSDPD is not set
-# BR2_PACKAGE_MJPG_STREAMER is not set
-
-#
-# modemmanager needs udev /dev management and a toolchain w/ wchar, threads
-#
-BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y
-
-#
-# mongrel2 needs a uClibc or glibc toolchain w/ C++, threads, dynamic library
-#
-# BR2_PACKAGE_MONKEY is not set
-
-#
-# mosh needs a toolchain w/ C++, threads, dynamic library, wchar, host and target gcc >= 4.5
-#
-# BR2_PACKAGE_MOSQUITTO is not set
-# BR2_PACKAGE_MROUTED is not set
-# BR2_PACKAGE_MTR is not set
-# BR2_PACKAGE_NBD is not set
-# BR2_PACKAGE_NCFTP is not set
-# BR2_PACKAGE_NDISC6 is not set
-# BR2_PACKAGE_NETATALK is not set
-# BR2_PACKAGE_NETPLUG is not set
-# BR2_PACKAGE_NETSNMP is not set
-# BR2_PACKAGE_NETSTAT_NAT is not set
-
-#
-# NetworkManager needs udev /dev management and a glibc toolchain w/ headers >= 3.7, dynamic library
-#
-# BR2_PACKAGE_NFACCT is not set
-# BR2_PACKAGE_NFTABLES is not set
-# BR2_PACKAGE_NGINX is not set
-# BR2_PACKAGE_NGIRCD is not set
-# BR2_PACKAGE_NGREP is not set
-
-#
-# nload needs a toolchain w/ C++
-#
-
-#
-# nmap needs a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_NOIP is not set
-# BR2_PACKAGE_NTP is not set
-# BR2_PACKAGE_NUTTCP is not set
-# BR2_PACKAGE_ODHCP6C is not set
-# BR2_PACKAGE_ODHCPLOC is not set
-# BR2_PACKAGE_OLSR is not set
-# BR2_PACKAGE_OPEN_PLC_UTILS is not set
-# BR2_PACKAGE_OPENNTPD is not set
-# BR2_PACKAGE_OPENOBEX is not set
-BR2_PACKAGE_OPENSSH=y
-# BR2_PACKAGE_OPENSWAN is not set
-# BR2_PACKAGE_OPENVPN is not set
-# BR2_PACKAGE_P910ND is not set
-# BR2_PACKAGE_PHIDGETWEBSERVICE is not set
-# BR2_PACKAGE_PHYTOOL is not set
-# BR2_PACKAGE_POUND is not set
-# BR2_PACKAGE_PPPD is not set
-# BR2_PACKAGE_PPTP_LINUX is not set
-# BR2_PACKAGE_PRIVOXY is not set
-# BR2_PACKAGE_PROFTPD is not set
-# BR2_PACKAGE_PROXYCHAINS_NG is not set
-# BR2_PACKAGE_PTPD is not set
-# BR2_PACKAGE_PTPD2 is not set
-# BR2_PACKAGE_PURE_FTPD is not set
-# BR2_PACKAGE_PUTTY is not set
-# BR2_PACKAGE_QUAGGA is not set
-
-#
-# rabbitmq-server needs erlang
-#
-# BR2_PACKAGE_RADVD is not set
-# BR2_PACKAGE_RP_PPPOE is not set
-# BR2_PACKAGE_RPCBIND is not set
-# BR2_PACKAGE_RSH_REDONE is not set
-# BR2_PACKAGE_RSYNC is not set
-
-#
-# rtorrent needs a toolchain w/ C++, threads, wchar
-#
-# BR2_PACKAGE_RTPTOOLS is not set
-# BR2_PACKAGE_S6_DNS is not set
-# BR2_PACKAGE_S6_NETWORKING is not set
-# BR2_PACKAGE_SAMBA4 is not set
-
-#
-# sconeserver needs a toolchain with dynamic library, C++, NPTL
-#
-# BR2_PACKAGE_SER2NET is not set
-
-#
-# shairport-sync needs a toolchain w/ C++, NPTL
-#
-# BR2_PACKAGE_SHELLINABOX is not set
-# BR2_PACKAGE_SMCROUTE is not set
-# BR2_PACKAGE_SNGREP is not set
-# BR2_PACKAGE_SOCAT is not set
-# BR2_PACKAGE_SOCKETCAND is not set
-# BR2_PACKAGE_SOFTETHER is not set
-# BR2_PACKAGE_SPAWN_FCGI is not set
-# BR2_PACKAGE_SPICE is not set
-# BR2_PACKAGE_SPICE_PROTOCOL is not set
-
-#
-# squid needs a toolchain w/ C++
-#
-# BR2_PACKAGE_SSHPASS is not set
-
-#
-# sslh needs a toolchain w/ C++
-#
-# BR2_PACKAGE_STRONGSWAN is not set
-# BR2_PACKAGE_STUNNEL is not set
-# BR2_PACKAGE_TCPDUMP is not set
-# BR2_PACKAGE_TCPING is not set
-# BR2_PACKAGE_TCPREPLAY is not set
-# BR2_PACKAGE_THTTPD is not set
-# BR2_PACKAGE_TINC is not set
-# BR2_PACKAGE_TINYHTTPD is not set
-# BR2_PACKAGE_TN5250 is not set
-# BR2_PACKAGE_TOR is not set
-# BR2_PACKAGE_TRANSMISSION is not set
-# BR2_PACKAGE_TUNCTL is not set
-# BR2_PACKAGE_TVHEADEND is not set
-# BR2_PACKAGE_UDPCAST is not set
-# BR2_PACKAGE_UHTTPD is not set
-# BR2_PACKAGE_ULOGD is not set
-# BR2_PACKAGE_USHARE is not set
-# BR2_PACKAGE_USSP_PUSH is not set
-# BR2_PACKAGE_VDE2 is not set
-
-#
-# vdr needs a glibc or uClibc toolchain w/ C++, dynamic library, NPTL, wchar
-#
-# BR2_PACKAGE_VNSTAT is not set
-# BR2_PACKAGE_VPNC is not set
-# BR2_PACKAGE_VSFTPD is not set
-# BR2_PACKAGE_VTUN is not set
-# BR2_PACKAGE_WAVEMON is not set
-# BR2_PACKAGE_WIRELESS_REGDB is not set
-# BR2_PACKAGE_WIRELESS_TOOLS is not set
-# BR2_PACKAGE_WIRESHARK is not set
-# BR2_PACKAGE_WPA_SUPPLICANT is not set
-# BR2_PACKAGE_WPAN_TOOLS is not set
-# BR2_PACKAGE_XINETD is not set
-# BR2_PACKAGE_XL2TP is not set
-# BR2_PACKAGE_XTABLES_ADDONS is not set
-
-#
-# znc needs a toolchain w/ C++, dynamic library, gcc >= 4.7
-#
-
-#
-# Package managers
-#
-
-#
-# -------------------------------------------------------
-#
-
-#
-# Please note:
-#
-
-#
-# - Buildroot does *not* generate binary packages,
-#
-
-#
-# - Buildroot does *not* install any package database.
-#
-
-#
-# *
-#
-
-#
-# It is up to you to provide those by yourself if you
-#
-
-#
-# want to use any of those package managers.
-#
-
-#
-# *
-#
-
-#
-# See the manual:
-#
-
-#
-# http://buildroot.org/manual.html#faq-no-binary-packages
-#
-
-#
-# -------------------------------------------------------
-#
-# BR2_PACKAGE_OPKG is not set
-
-#
-# Real-Time
-#
-BR2_PACKAGE_XENOMAI_ARCH_SUPPORTS=y
-# BR2_PACKAGE_XENOMAI is not set
-
-#
-# Security
-#
-# BR2_PACKAGE_CHECKPOLICY is not set
-# BR2_PACKAGE_POLICYCOREUTILS is not set
-# BR2_PACKAGE_SEPOLGEN is not set
-
-#
-# setools needs a glibc toolchain w/ threads, C++, wchar, dynamic library
-#
-
-#
-# Shell and utilities
-#
-
-#
-# Shells
-#
-# BR2_PACKAGE_MKSH is not set
-
-#
-# Utilities
-#
-# BR2_PACKAGE_AT is not set
-# BR2_PACKAGE_CCRYPT is not set
-# BR2_PACKAGE_DIALOG is not set
-# BR2_PACKAGE_DTACH is not set
-# BR2_PACKAGE_FILE is not set
-# BR2_PACKAGE_GNUPG is not set
-# BR2_PACKAGE_GNUPG2 is not set
-# BR2_PACKAGE_INOTIFY_TOOLS is not set
-# BR2_PACKAGE_LOCKFILE_PROGS is not set
-# BR2_PACKAGE_LOGROTATE is not set
-# BR2_PACKAGE_LOGSURFER is not set
-# BR2_PACKAGE_PINENTRY is not set
-# BR2_PACKAGE_RANGER is not set
-BR2_PACKAGE_SCREEN=y
-BR2_PACKAGE_SUDO=y
-# BR2_PACKAGE_TMUX is not set
-# BR2_PACKAGE_XMLSTARLET is not set
-# BR2_PACKAGE_XXHASH is not set
-
-#
-# System tools
-#
-# BR2_PACKAGE_ACL is not set
-# BR2_PACKAGE_ANDROID_TOOLS is not set
-# BR2_PACKAGE_ATOP is not set
-# BR2_PACKAGE_ATTR is not set
-BR2_PACKAGE_AUDIT_ARCH_SUPPORTS=y
-# BR2_PACKAGE_AUDIT is not set
-# BR2_PACKAGE_CGROUPFS_MOUNT is not set
-
-#
-# circus needs Python and a toolchain w/ C++, threads
-#
-# BR2_PACKAGE_CPULOAD is not set
-# BR2_PACKAGE_DAEMON is not set
-# BR2_PACKAGE_DC3DD is not set
-
-#
-# ddrescue needs a toolchain w/ C++
-#
-# BR2_PACKAGE_DOCKER_CONTAINERD is not set
-# BR2_PACKAGE_DOCKER_ENGINE is not set
-# BR2_PACKAGE_EFIBOOTMGR is not set
-BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS=y
-# BR2_PACKAGE_EFIVAR is not set
-# BR2_PACKAGE_EMLOG is not set
-# BR2_PACKAGE_FTOP is not set
-# BR2_PACKAGE_GETENT is not set
-BR2_PACKAGE_HTOP=y
-BR2_PACKAGE_INITSCRIPTS=y
-
-#
-# iotop depends on python or python3
-#
-# BR2_PACKAGE_IPRUTILS is not set
-# BR2_PACKAGE_IRQBALANCE is not set
-# BR2_PACKAGE_KEYUTILS is not set
-# BR2_PACKAGE_KMOD is not set
-# BR2_PACKAGE_KVMTOOL is not set
-# BR2_PACKAGE_LXC is not set
-# BR2_PACKAGE_MONIT is not set
-# BR2_PACKAGE_NCDU is not set
-BR2_PACKAGE_NUMACTL=y
-
-#
-# nut needs a toolchain w/ C++
-#
-# BR2_PACKAGE_OPENVMTOOLS is not set
-# BR2_PACKAGE_POLKIT is not set
-# BR2_PACKAGE_PROCRANK_LINUX is not set
-# BR2_PACKAGE_PWGEN is not set
-# BR2_PACKAGE_QUOTA is not set
-# BR2_PACKAGE_RUNC is not set
-# BR2_PACKAGE_S6 is not set
-# BR2_PACKAGE_S6_LINUX_INIT is not set
-# BR2_PACKAGE_S6_LINUX_UTILS is not set
-# BR2_PACKAGE_S6_PORTABLE_UTILS is not set
-# BR2_PACKAGE_S6_RC is not set
-# BR2_PACKAGE_SCRUB is not set
-# BR2_PACKAGE_SCRYPT is not set
-# BR2_PACKAGE_SMACK is not set
-
-#
-# supervisor needs the python interpreter
-#
-# BR2_PACKAGE_SWUPDATE is not set
-BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS=y
-# BR2_PACKAGE_TPM_TOOLS is not set
-# BR2_PACKAGE_UNSCD is not set
-BR2_PACKAGE_UTIL_LINUX=y
-BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y
-# BR2_PACKAGE_UTIL_LINUX_LIBFDISK is not set
-BR2_PACKAGE_UTIL_LINUX_LIBMOUNT=y
-# BR2_PACKAGE_UTIL_LINUX_LIBSMARTCOLS is not set
-BR2_PACKAGE_UTIL_LINUX_LIBUUID=y
-# BR2_PACKAGE_UTIL_LINUX_BINARIES is not set
-# BR2_PACKAGE_UTIL_LINUX_AGETTY is not set
-# BR2_PACKAGE_UTIL_LINUX_BFS is not set
-# BR2_PACKAGE_UTIL_LINUX_CAL is not set
-# BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH is not set
-# BR2_PACKAGE_UTIL_LINUX_CRAMFS is not set
-# BR2_PACKAGE_UTIL_LINUX_EJECT is not set
-# BR2_PACKAGE_UTIL_LINUX_FALLOCATE is not set
-# BR2_PACKAGE_UTIL_LINUX_FDFORMAT is not set
-# BR2_PACKAGE_UTIL_LINUX_FSCK is not set
-# BR2_PACKAGE_UTIL_LINUX_HWCLOCK is not set
-# BR2_PACKAGE_UTIL_LINUX_IPCRM is not set
-# BR2_PACKAGE_UTIL_LINUX_IPCS is not set
-# BR2_PACKAGE_UTIL_LINUX_KILL is not set
-# BR2_PACKAGE_UTIL_LINUX_LAST is not set
-# BR2_PACKAGE_UTIL_LINUX_LINE is not set
-# BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS is not set
-# BR2_PACKAGE_UTIL_LINUX_LOGGER is not set
-# BR2_PACKAGE_UTIL_LINUX_LOSETUP is not set
-# BR2_PACKAGE_UTIL_LINUX_LSLOGINS is not set
-# BR2_PACKAGE_UTIL_LINUX_MESG is not set
-# BR2_PACKAGE_UTIL_LINUX_MINIX is not set
-# BR2_PACKAGE_UTIL_LINUX_MORE is not set
-# BR2_PACKAGE_UTIL_LINUX_MOUNT is not set
-# BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT is not set
-# BR2_PACKAGE_UTIL_LINUX_NEWGRP is not set
-# BR2_PACKAGE_UTIL_LINUX_NOLOGIN is not set
-# BR2_PACKAGE_UTIL_LINUX_NSENTER is not set
-# BR2_PACKAGE_UTIL_LINUX_PG is not set
-# BR2_PACKAGE_UTIL_LINUX_PARTX is not set
-# BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT is not set
-# BR2_PACKAGE_UTIL_LINUX_RAW is not set
-# BR2_PACKAGE_UTIL_LINUX_RENAME is not set
-# BR2_PACKAGE_UTIL_LINUX_RESET is not set
-BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y
-# BR2_PACKAGE_UTIL_LINUX_SETPRIV is not set
-# BR2_PACKAGE_UTIL_LINUX_SETTERM is not set
-# BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT is not set
-# BR2_PACKAGE_UTIL_LINUX_TUNELP is not set
-# BR2_PACKAGE_UTIL_LINUX_UL is not set
-# BR2_PACKAGE_UTIL_LINUX_UNSHARE is not set
-# BR2_PACKAGE_UTIL_LINUX_UTMPDUMP is not set
-# BR2_PACKAGE_UTIL_LINUX_UUIDD is not set
-# BR2_PACKAGE_UTIL_LINUX_VIPW is not set
-# BR2_PACKAGE_UTIL_LINUX_WALL is not set
-# BR2_PACKAGE_UTIL_LINUX_WDCTL is not set
-# BR2_PACKAGE_UTIL_LINUX_WRITE is not set
-# BR2_PACKAGE_UTIL_LINUX_ZRAMCTL is not set
-BR2_PACKAGE_XVISOR_ARCH_SUPPORTS=y
-# BR2_PACKAGE_XVISOR is not set
-
-#
-# Text editors and viewers
-#
-# BR2_PACKAGE_ED is not set
-# BR2_PACKAGE_JOE is not set
-# BR2_PACKAGE_MC is not set
-# BR2_PACKAGE_NANO is not set
-# BR2_PACKAGE_UEMACS is not set
-
-#
-# Filesystem images
-#
-# BR2_TARGET_ROOTFS_AXFS is not set
-# BR2_TARGET_ROOTFS_CLOOP is not set
-BR2_TARGET_ROOTFS_CPIO=y
-BR2_TARGET_ROOTFS_CPIO_NONE=y
-# BR2_TARGET_ROOTFS_CPIO_GZIP is not set
-# BR2_TARGET_ROOTFS_CPIO_BZIP2 is not set
-# BR2_TARGET_ROOTFS_CPIO_LZMA is not set
-# BR2_TARGET_ROOTFS_CPIO_LZO is not set
-# BR2_TARGET_ROOTFS_CPIO_XZ is not set
-# BR2_TARGET_ROOTFS_CPIO_UIMAGE is not set
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-# BR2_TARGET_ROOTFS_EXT2 is not set
-# BR2_TARGET_ROOTFS_INITRAMFS is not set
-BR2_TARGET_ROOTFS_ISO9660=y
-BR2_TARGET_ROOTFS_ISO9660_GRUB=y
-BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="fs/iso9660/menu.lst"
-BR2_TARGET_ROOTFS_ISO9660_INITRD=y
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-# BR2_TARGET_ROOTFS_ROMFS is not set
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-BR2_TARGET_ROOTFS_TAR=y
-BR2_TARGET_ROOTFS_TAR_NONE=y
-# BR2_TARGET_ROOTFS_TAR_GZIP is not set
-# BR2_TARGET_ROOTFS_TAR_BZIP2 is not set
-# BR2_TARGET_ROOTFS_TAR_LZMA is not set
-# BR2_TARGET_ROOTFS_TAR_LZO is not set
-# BR2_TARGET_ROOTFS_TAR_XZ is not set
-BR2_TARGET_ROOTFS_TAR_OPTIONS=""
-# BR2_TARGET_ROOTFS_UBIFS is not set
-# BR2_TARGET_ROOTFS_YAFFS2 is not set
-
-#
-# Bootloaders
-#
-# BR2_TARGET_BAREBOX is not set
-BR2_TARGET_GRUB=y
-# BR2_TARGET_GRUB_SPLASH is not set
-# BR2_TARGET_GRUB_DISKLESS is not set
-
-#
-# filesystem drivers
-#
-BR2_TARGET_GRUB_FS_EXT2=y
-BR2_TARGET_GRUB_FS_FAT=y
-BR2_TARGET_GRUB_FS_ISO9660=y
-# BR2_TARGET_GRUB_FS_JFS is not set
-# BR2_TARGET_GRUB_FS_REISERFS is not set
-# BR2_TARGET_GRUB_FS_XFS is not set
-
-#
-# network drivers
-#
-# BR2_TARGET_GRUB_3c595 is not set
-# BR2_TARGET_GRUB_3c90x is not set
-# BR2_TARGET_GRUB_davicom is not set
-# BR2_TARGET_GRUB_e1000 is not set
-# BR2_TARGET_GRUB_eepro100 is not set
-# BR2_TARGET_GRUB_epic100 is not set
-# BR2_TARGET_GRUB_forcedeth is not set
-# BR2_TARGET_GRUB_natsemi is not set
-# BR2_TARGET_GRUB_ns83820 is not set
-# BR2_TARGET_GRUB_ns8390 is not set
-# BR2_TARGET_GRUB_pcnet32 is not set
-# BR2_TARGET_GRUB_pnic is not set
-# BR2_TARGET_GRUB_rtl8139 is not set
-# BR2_TARGET_GRUB_r8169 is not set
-# BR2_TARGET_GRUB_sis900 is not set
-# BR2_TARGET_GRUB_tg3 is not set
-# BR2_TARGET_GRUB_tulip is not set
-# BR2_TARGET_GRUB_tlan is not set
-# BR2_TARGET_GRUB_undi is not set
-# BR2_TARGET_GRUB_via_rhine is not set
-# BR2_TARGET_GRUB_w89c840 is not set
-# BR2_TARGET_GRUB2 is not set
-# BR2_TARGET_GUMMIBOOT is not set
-# BR2_TARGET_SYSLINUX is not set
-# BR2_TARGET_UBOOT is not set
-
-#
-# Host utilities
-#
-# BR2_PACKAGE_HOST_AESPIPE is not set
-# BR2_PACKAGE_HOST_ANDROID_TOOLS is not set
-# BR2_PACKAGE_HOST_CHECKPOLICY is not set
-# BR2_PACKAGE_HOST_CRAMFS is not set
-# BR2_PACKAGE_HOST_DFU_UTIL is not set
-# BR2_PACKAGE_HOST_DOS2UNIX is not set
-# BR2_PACKAGE_HOST_DOSFSTOOLS is not set
-# BR2_PACKAGE_HOST_DTC is not set
-# BR2_PACKAGE_HOST_E2FSPROGS is not set
-# BR2_PACKAGE_HOST_E2TOOLS is not set
-# BR2_PACKAGE_HOST_FAKETIME is not set
-# BR2_PACKAGE_HOST_FWUP is not set
-# BR2_PACKAGE_HOST_GENEXT2FS is not set
-# BR2_PACKAGE_HOST_GENIMAGE is not set
-# BR2_PACKAGE_HOST_GENPART is not set
-BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS=y
-BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS=y
-# BR2_PACKAGE_HOST_GPTFDISK is not set
-# BR2_PACKAGE_HOST_JQ is not set
-# BR2_PACKAGE_HOST_JSMIN is not set
-# BR2_PACKAGE_HOST_LPC3250LOADER is not set
-# BR2_PACKAGE_HOST_LTTNG_BABELTRACE is not set
-# BR2_PACKAGE_HOST_MKE2IMG is not set
-# BR2_PACKAGE_HOST_MKPASSWD is not set
-# BR2_PACKAGE_HOST_MTD is not set
-# BR2_PACKAGE_HOST_MTOOLS is not set
-# BR2_PACKAGE_HOST_OPENOCD is not set
-# BR2_PACKAGE_HOST_OPKG_UTILS is not set
-# BR2_PACKAGE_HOST_PARTED is not set
-# BR2_PACKAGE_HOST_PATCHELF is not set
-# BR2_PACKAGE_HOST_PWGEN is not set
-# BR2_PACKAGE_HOST_PYTHON_LXML is not set
-# BR2_PACKAGE_HOST_QEMU is not set
-# BR2_PACKAGE_HOST_SAM_BA is not set
-# BR2_PACKAGE_HOST_SQUASHFS is not set
-# BR2_PACKAGE_HOST_UBOOT_TOOLS is not set
-# BR2_PACKAGE_HOST_UTIL_LINUX is not set
-# BR2_PACKAGE_HOST_VBOOT_UTILS is not set
-# BR2_PACKAGE_HOST_XORRISO is not set
-# BR2_PACKAGE_HOST_ZIP is not set
-
-#
-# Legacy config options
-#
-
-#
-# Legacy options removed in 2017.05
-#
-# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTC is not set
-# BR2_PACKAGE_SPICE_CLIENT is not set
-# BR2_PACKAGE_SPICE_GUI is not set
-# BR2_PACKAGE_SPICE_TUNNEL is not set
-# BR2_PACKAGE_SUNXI_MALI_R2P4 is not set
-# BR2_PACKAGE_NODEJS_MODULES_COFFEESCRIPT is not set
-# BR2_PACKAGE_NODEJS_MODULES_EXPRESS is not set
-# BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL is not set
-# BR2_PACKAGE_OPENOCD_FT2XXX is not set
-# BR2_PACKAGE_KODI_RTMPDUMP is not set
-# BR2_PACKAGE_KODI_VISUALISATION_FOUNTAIN is not set
-# BR2_PACKAGE_PORTMAP is not set
-# BR2_BINUTILS_VERSION_2_25_X is not set
-# BR2_TOOLCHAIN_BUILDROOT_INET_RPC is not set
-BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS=0
-# BR2_PACKAGE_SYSTEMD_KDBUS is not set
-# BR2_PACKAGE_POLARSSL is not set
-# BR2_NBD_CLIENT is not set
-# BR2_NBD_SERVER is not set
-# BR2_PACKAGE_GMOCK is not set
-# BR2_KERNEL_HEADERS_4_8 is not set
-# BR2_KERNEL_HEADERS_3_18 is not set
-# BR2_GLIBC_VERSION_2_22 is not set
-
-#
-# Legacy options removed in 2017.02
-#
-# BR2_PACKAGE_PERL_DB_FILE is not set
-# BR2_KERNEL_HEADERS_4_7 is not set
-# BR2_KERNEL_HEADERS_4_6 is not set
-# BR2_KERNEL_HEADERS_4_5 is not set
-# BR2_KERNEL_HEADERS_3_14 is not set
-# BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS is not set
-# BR2_UCLIBC_INSTALL_TEST_SUITE is not set
-# BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX is not set
-# BR2_PACKAGE_MAKEDEVS is not set
-# BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A is not set
-# BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE is not set
-# BR2_PACKAGE_SNOWBALL_HDMISERVICE is not set
-# BR2_PACKAGE_SNOWBALL_INIT is not set
-# BR2_GDB_VERSION_7_9 is not set
-
-#
-# Legacy options removed in 2016.11
-#
-# BR2_PACKAGE_PHP_SAPI_CLI_CGI is not set
-# BR2_PACKAGE_PHP_SAPI_CLI_FPM is not set
-# BR2_PACKAGE_WVSTREAMS is not set
-# BR2_PACKAGE_WVDIAL is not set
-# BR2_PACKAGE_WEBKITGTK24 is not set
-# BR2_PACKAGE_TORSMO is not set
-# BR2_PACKAGE_SSTRIP is not set
-# BR2_KERNEL_HEADERS_4_3 is not set
-# BR2_KERNEL_HEADERS_4_2 is not set
-# BR2_PACKAGE_KODI_ADDON_XVDR is not set
-# BR2_PACKAGE_IPKG is not set
-# BR2_GCC_VERSION_4_7_X is not set
-# BR2_BINUTILS_VERSION_2_24_X is not set
-# BR2_PACKAGE_WESTON_RPI is not set
-# BR2_LINUX_KERNEL_TOOL_CPUPOWER is not set
-# BR2_LINUX_KERNEL_TOOL_PERF is not set
-# BR2_LINUX_KERNEL_TOOL_SELFTESTS is not set
-# BR2_GCC_VERSION_4_8_ARC is not set
-# BR2_KERNEL_HEADERS_4_0 is not set
-# BR2_KERNEL_HEADERS_3_19 is not set
-# BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS is not set
-# BR2_PACKAGE_ELEMENTARY is not set
-# BR2_LINUX_KERNEL_CUSTOM_LOCAL is not set
-
-#
-# Legacy options removed in 2016.08
-#
-# BR2_PACKAGE_EFL_JP2K is not set
-# BR2_PACKAGE_SYSTEMD_COMPAT is not set
-# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIVEADDER is not set
-# BR2_PACKAGE_LIBFSLVPUWRAP is not set
-# BR2_PACKAGE_LIBFSLPARSER is not set
-# BR2_PACKAGE_LIBFSLCODEC is not set
-# BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT is not set
-# BR2_PTHREADS_OLD is not set
-# BR2_BINUTILS_VERSION_2_23_X is not set
-# BR2_TOOLCHAIN_BUILDROOT_EGLIBC is not set
-# BR2_GDB_VERSION_7_8 is not set
-
-#
-# Legacy options removed in 2016.05
-#
-# BR2_PACKAGE_OPENVPN_CRYPTO_POLARSSL is not set
-# BR2_PACKAGE_NGINX_HTTP_SPDY_MODULE is not set
-# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP is not set
-# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPG123 is not set
-# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC is not set
-# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2 is not set
-# BR2_x86_i386 is not set
-# BR2_PACKAGE_QT5WEBKIT_EXAMPLES is not set
-# BR2_PACKAGE_QT5QUICK1 is not set
-BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR=""
-# BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID is not set
-# BR2_KERNEL_HEADERS_3_17 is not set
-# BR2_GDB_VERSION_7_7 is not set
-# BR2_PACKAGE_FOOMATIC_FILTERS is not set
-# BR2_PACKAGE_SAMBA is not set
-# BR2_PACKAGE_KODI_WAVPACK is not set
-# BR2_PACKAGE_KODI_RSXS is not set
-# BR2_PACKAGE_KODI_GOOM is not set
-# BR2_PACKAGE_SYSTEMD_ALL_EXTRAS is not set
-# BR2_GCC_VERSION_4_5_X is not set
-# BR2_PACKAGE_SQLITE_READLINE is not set
-
-#
-# Legacy options removed in 2016.02
-#
-# BR2_PACKAGE_DOVECOT_BZIP2 is not set
-# BR2_PACKAGE_DOVECOT_ZLIB is not set
-# BR2_PACKAGE_E2FSPROGS_FINDFS is not set
-# BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL is not set
-# BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE is not set
-# BR2_PACKAGE_OPENPOWERLINK_LIBPCAP is not set
-# BR2_LINUX_KERNEL_SAME_AS_HEADERS is not set
-# BR2_PACKAGE_CUPS_PDFTOPS is not set
-# BR2_KERNEL_HEADERS_3_16 is not set
-# BR2_PACKAGE_PYTHON_PYXML is not set
-# BR2_ENABLE_SSP is not set
-# BR2_PACKAGE_DIRECTFB_CLE266 is not set
-# BR2_PACKAGE_DIRECTFB_UNICHROME is not set
-# BR2_PACKAGE_LIBELEMENTARY is not set
-# BR2_PACKAGE_LIBEINA is not set
-# BR2_PACKAGE_LIBEET is not set
-# BR2_PACKAGE_LIBEVAS is not set
-# BR2_PACKAGE_LIBECORE is not set
-# BR2_PACKAGE_LIBEDBUS is not set
-# BR2_PACKAGE_LIBEFREET is not set
-# BR2_PACKAGE_LIBEIO is not set
-# BR2_PACKAGE_LIBEMBRYO is not set
-# BR2_PACKAGE_LIBEDJE is not set
-# BR2_PACKAGE_LIBETHUMB is not set
-# BR2_PACKAGE_INFOZIP is not set
-# BR2_BR2_PACKAGE_NODEJS_0_10_X is not set
-# BR2_BR2_PACKAGE_NODEJS_0_12_X is not set
-# BR2_BR2_PACKAGE_NODEJS_4_X is not set
-
-#
-# Legacy options removed in 2015.11
-#
-# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REAL is not set
-# BR2_PACKAGE_MEDIA_CTL is not set
-# BR2_PACKAGE_SCHIFRA is not set
-# BR2_PACKAGE_ZXING is not set
-# BR2_PACKAGE_BLACKBOX is not set
-# BR2_KERNEL_HEADERS_3_0 is not set
-# BR2_KERNEL_HEADERS_3_11 is not set
-# BR2_KERNEL_HEADERS_3_13 is not set
-# BR2_KERNEL_HEADERS_3_15 is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_BLTLOAD is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_CPULOAD is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_DATABUFFER is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_DIOLOAD is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_DOK is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_DRIVERTEST is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_FIRE is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_FLIP is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_FONTS is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_INPUT is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_JOYSTICK is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_KNUCKLES is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_LAYER is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX_WATER is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_NEO is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_NETLOAD is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_PALETTE is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_PARTICLE is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_PORTER is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_STRESS is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_TEXTURE is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO_PARTICLE is not set
-# BR2_PACKAGE_DIRECTFB_EXAMPLES_WINDOW is not set
-# BR2_PACKAGE_KOBS_NG is not set
-# BR2_PACKAGE_SAWMAN is not set
-# BR2_PACKAGE_DIVINE is not set
-
-#
-# Legacy options removed in 2015.08
-#
-# BR2_PACKAGE_KODI_PVR_ADDONS is not set
-# BR2_BINUTILS_VERSION_2_23_2 is not set
-# BR2_BINUTILS_VERSION_2_24 is not set
-# BR2_BINUTILS_VERSION_2_25 is not set
-# BR2_PACKAGE_PERF is not set
-# BR2_BINUTILS_VERSION_2_22 is not set
-# BR2_PACKAGE_GPU_VIV_BIN_MX6Q is not set
-# BR2_TARGET_UBOOT_NETWORK is not set
-
-#
-# Legacy options removed in 2015.05
-#
-# BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_512_16K is not set
-# BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K is not set
-# BR2_PACKAGE_MONO_20 is not set
-# BR2_PACKAGE_MONO_40 is not set
-# BR2_PACKAGE_MONO_45 is not set
-# BR2_CIVETWEB_WITH_LUA is not set
-# BR2_PACKAGE_TIFF_TIFF2PDF is not set
-# BR2_PACKAGE_TIFF_TIFFCP is not set
-# BR2_LINUX_KERNEL_EXT_RTAI_PATCH is not set
-# BR2_TARGET_GENERIC_PASSWD_DES is not set
-# BR2_PACKAGE_GTK2_THEME_HICOLOR is not set
-# BR2_PACKAGE_VALGRIND_PTRCHECK is not set
-
-#
-# Legacy options removed in 2015.02
-#
-# BR2_PACKAGE_LIBGC is not set
-# BR2_PACKAGE_WDCTL is not set
-# BR2_PACKAGE_UTIL_LINUX_ARCH is not set
-# BR2_PACKAGE_UTIL_LINUX_DDATE is not set
-# BR2_PACKAGE_RPM_BZIP2_PAYLOADS is not set
-# BR2_PACKAGE_RPM_XZ_PAYLOADS is not set
-# BR2_PACKAGE_M4 is not set
-# BR2_PACKAGE_FLEX_BINARY is not set
-# BR2_PACKAGE_BISON is not set
-# BR2_PACKAGE_GOB2 is not set
-# BR2_PACKAGE_DISTCC is not set
-# BR2_PACKAGE_HASERL_VERSION_0_8_X is not set
-# BR2_PACKAGE_STRONGSWAN_TOOLS is not set
-# BR2_PACKAGE_XBMC_ADDON_XVDR is not set
-# BR2_PACKAGE_XBMC_PVR_ADDONS is not set
-# BR2_PACKAGE_XBMC is not set
-# BR2_PACKAGE_XBMC_ALSA_LIB is not set
-# BR2_PACKAGE_XBMC_AVAHI is not set
-# BR2_PACKAGE_XBMC_DBUS is not set
-# BR2_PACKAGE_XBMC_LIBBLURAY is not set
-# BR2_PACKAGE_XBMC_GOOM is not set
-# BR2_PACKAGE_XBMC_RSXS is not set
-# BR2_PACKAGE_XBMC_LIBCEC is not set
-# BR2_PACKAGE_XBMC_LIBMICROHTTPD is not set
-# BR2_PACKAGE_XBMC_LIBNFS is not set
-# BR2_PACKAGE_XBMC_RTMPDUMP is not set
-# BR2_PACKAGE_XBMC_LIBSHAIRPLAY is not set
-# BR2_PACKAGE_XBMC_LIBSMBCLIENT is not set
-# BR2_PACKAGE_XBMC_LIBTHEORA is not set
-# BR2_PACKAGE_XBMC_LIBUSB is not set
-# BR2_PACKAGE_XBMC_LIBVA is not set
-# BR2_PACKAGE_XBMC_WAVPACK is not set
-# BR2_PREFER_STATIC_LIB is not set
-
-#
-# Legacy options removed in 2014.11
-#
-# BR2_x86_generic is not set
-# BR2_GCC_VERSION_4_4_X is not set
-# BR2_sparc_sparchfleon is not set
-# BR2_sparc_sparchfleonv8 is not set
-# BR2_sparc_sparcsfleon is not set
-# BR2_sparc_sparcsfleonv8 is not set
-# BR2_PACKAGE_LINUX_FIRMWARE_XC5000 is not set
-# BR2_PACKAGE_LINUX_FIRMWARE_CXGB4 is not set
-# BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160_7260_7 is not set
-# BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160_7260_8 is not set
-
-#
-# Legacy options removed in 2014.08
-#
-# BR2_PACKAGE_LIBELF is not set
-# BR2_KERNEL_HEADERS_3_8 is not set
-# BR2_PACKAGE_GETTEXT_TOOLS is not set
-# BR2_PACKAGE_PROCPS is not set
-# BR2_BINUTILS_VERSION_2_20_1 is not set
-# BR2_BINUTILS_VERSION_2_21 is not set
-# BR2_BINUTILS_VERSION_2_23_1 is not set
-# BR2_UCLIBC_VERSION_0_9_32 is not set
-# BR2_GCC_VERSION_4_3_X is not set
-# BR2_GCC_VERSION_4_6_X is not set
-# BR2_GDB_VERSION_7_4 is not set
-# BR2_GDB_VERSION_7_5 is not set
-# BR2_BUSYBOX_VERSION_1_19_X is not set
-# BR2_BUSYBOX_VERSION_1_20_X is not set
-# BR2_BUSYBOX_VERSION_1_21_X is not set
-# BR2_PACKAGE_LIBV4L_DECODE_TM6000 is not set
-# BR2_PACKAGE_LIBV4L_IR_KEYTABLE is not set
-# BR2_PACKAGE_LIBV4L_V4L2_COMPLIANCE is not set
-# BR2_PACKAGE_LIBV4L_V4L2_CTL is not set
-# BR2_PACKAGE_LIBV4L_V4L2_DBG is not set
-
-#
-# Legacy options removed in 2014.05
-#
-# BR2_PACKAGE_EVTEST_CAPTURE is not set
-# BR2_KERNEL_HEADERS_3_6 is not set
-# BR2_KERNEL_HEADERS_3_7 is not set
-# BR2_PACKAGE_VALA is not set
-BR2_PACKAGE_TZDATA_ZONELIST=""
-# BR2_PACKAGE_LUA_INTERPRETER_EDITING_NONE is not set
-# BR2_PACKAGE_LUA_INTERPRETER_READLINE is not set
-# BR2_PACKAGE_LUA_INTERPRETER_LINENOISE is not set
-# BR2_PACKAGE_DVB_APPS_UTILS is not set
-# BR2_KERNEL_HEADERS_SNAP is not set
-# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV is not set
-# BR2_PACKAGE_UDEV is not set
-# BR2_PACKAGE_UDEV_RULES_GEN is not set
-# BR2_PACKAGE_UDEV_ALL_EXTRAS is not set
-
-#
-# Legacy options removed in 2014.02
-#
-# BR2_sh2 is not set
-# BR2_sh3 is not set
-# BR2_sh3eb is not set
-# BR2_KERNEL_HEADERS_3_1 is not set
-# BR2_KERNEL_HEADERS_3_3 is not set
-# BR2_KERNEL_HEADERS_3_5 is not set
-# BR2_GDB_VERSION_7_2 is not set
-# BR2_GDB_VERSION_7_3 is not set
-# BR2_PACKAGE_CCACHE is not set
-# BR2_HAVE_DOCUMENTATION is not set
-# BR2_PACKAGE_AUTOMAKE is not set
-# BR2_PACKAGE_AUTOCONF is not set
-# BR2_PACKAGE_XSTROKE is not set
-# BR2_PACKAGE_LZMA is not set
-# BR2_PACKAGE_TTCP is not set
-# BR2_PACKAGE_LIBNFC_LLCP is not set
-# BR2_PACKAGE_MYSQL_CLIENT is not set
-# BR2_PACKAGE_SQUASHFS3 is not set
-# BR2_TARGET_ROOTFS_SQUASHFS3 is not set
-# BR2_PACKAGE_NETKITBASE is not set
-# BR2_PACKAGE_NETKITTELNET is not set
-# BR2_PACKAGE_LUASQL is not set
-# BR2_PACKAGE_LUACJSON is not set
-
-#
-# Legacy options removed in 2013.11
-#
-# BR2_PACKAGE_LVM2_DMSETUP_ONLY is not set
-# BR2_PACKAGE_QT_JAVASCRIPTCORE is not set
-# BR2_PACKAGE_MODULE_INIT_TOOLS is not set
-BR2_TARGET_UBOOT_CUSTOM_GIT_REPO_URL=""
-BR2_TARGET_UBOOT_CUSTOM_GIT_VERSION=""
-BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL=""
-BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION=""
-
-#
-# Legacy options removed in 2013.08
-#
-# BR2_ARM_OABI is not set
-# BR2_PACKAGE_DOSFSTOOLS_DOSFSCK is not set
-# BR2_PACKAGE_DOSFSTOOLS_DOSFSLABEL is not set
-# BR2_PACKAGE_DOSFSTOOLS_MKDOSFS is not set
-# BR2_ELF2FLT is not set
-# BR2_VFP_FLOAT is not set
-# BR2_PACKAGE_GCC_TARGET is not set
-# BR2_HAVE_DEVFILES is not set
-
-#
-# Legacy options removed in 2013.05
-#
-# BR2_PACKAGE_LINUX_FIRMWARE_RTL_8192 is not set
-# BR2_PACKAGE_LINUX_FIRMWARE_RTL_8712 is not set
-
-#
-# Legacy options removed in 2013.02
-#
-# BR2_sa110 is not set
-# BR2_sa1100 is not set
-# BR2_PACKAGE_GDISK is not set
-# BR2_PACKAGE_GDISK_GDISK is not set
-# BR2_PACKAGE_GDISK_SGDISK is not set
-# BR2_PACKAGE_GDB_HOST is not set
-# BR2_PACKAGE_DIRECTB_DITHER_RGB16 is not set
-# BR2_PACKAGE_DIRECTB_TESTS is not set
-
-#
-# Legacy options removed in 2012.11
-#
-# BR2_PACKAGE_CUSTOMIZE is not set
-# BR2_PACKAGE_XSERVER_xorg is not set
-# BR2_PACKAGE_XSERVER_tinyx is not set
-# BR2_PACKAGE_PTHREAD_STUBS is not set
-
-#
-# Legacy options removed in 2012.08
-#
-# BR2_PACKAGE_GETTEXT_STATIC is not set
-# BR2_PACKAGE_LIBINTL is not set
-# BR2_PACKAGE_INPUT_TOOLS_EVTEST is not set
-# BR2_BFIN_FDPIC is not set
-# BR2_BFIN_FLAT is not set
diff --git a/resources/tools/disk-image-builder/nested/buildroot-patches/dpdk.patch b/resources/tools/disk-image-builder/nested/buildroot-patches/dpdk.patch
deleted file mode 100644
index be10b6524e..0000000000
--- a/resources/tools/disk-image-builder/nested/buildroot-patches/dpdk.patch
+++ /dev/null
@@ -1,220 +0,0 @@
-diff --git a/package/Config.in b/package/Config.in
-index 6fc0466..ab38a76 100644
---- a/package/Config.in
-+++ b/package/Config.in
-@@ -1095,6 +1095,7 @@ menu "Networking"
- source "package/cgic/Config.in"
- source "package/cppzmq/Config.in"
- source "package/czmq/Config.in"
-+ source "package/dpdk/Config.in"
- source "package/filemq/Config.in"
- source "package/flickcurl/Config.in"
- source "package/fmlib/Config.in"
-diff --git a/package/dpdk/Config.in b/package/dpdk/Config.in
-new file mode 100644
-index 0000000..a42271e
---- /dev/null
-+++ b/package/dpdk/Config.in
-@@ -0,0 +1,55 @@
-+config BR2_PACKAGE_DPDK
-+ bool "dpdk"
-+ depends on (BR2_i386 && !BR2_x86_i386 && !BR2_x86_i486 \
-+ && !BR2_x86_i586 && !BR2_x86_x1000) \
-+ || BR2_x86_64 || BR2_ARM_CPU_ARMV7A || BR2_aarch64 \
-+ || BR2_aarch64_be
-+ depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC
-+ depends on BR2_TOOLCHAIN_HAS_SYNC_1
-+ depends on BR2_TOOLCHAIN_HAS_SYNC_2
-+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
-+ depends on BR2_TOOLCHAIN_HAS_SYNC_8
-+ depends on BR2_PACKAGE_NUMACTL
-+ help
-+ DPDK is a set of libraries and drivers for fast packet processing. It
-+ was designed to run on any processors, however, Intel x86 has been the
-+ first CPU to be supported. Ports for other CPUs like IBM Power 8 and
-+ ARM are under progress. It runs mostly in Linux userland. A FreeBSD
-+ port is now available for a subset of DPDK features.
-+
-+ Notes:
-+ * To build the included Linux Kernel drivers, it is necessary to
-+ enable CONFIG_PCI_MSI, CONFIG_UIO.
-+ * To build the PCAP PMD properly, you need to enable the libpcap
-+ manually.
-+ * You may need to install the python2 interpreter if you want to use
-+ scripts dpdk_nic_bind.py and cpu_layout.py
-+
-+ http://www.dpdk.org/
-+
-+if BR2_PACKAGE_DPDK
-+
-+config BR2_PACKAGE_DPDK_CONFIG
-+ string "Configuration"
-+ default "i686-native-linuxapp-gcc" \
-+ if BR2_x86_i686
-+ default "x86_64-native-linuxapp-gcc" \
-+ if BR2_x86_64
-+ default "arm-armv7a-linuxapp-gcc" \
-+ if BR2_ARM_CPU_ARMV7A
-+ default "arm64-armv8a-linuxapp-gcc" \
-+ if BR2_aarch64 || BR2_aarch64_be
-+
-+config BR2_PACKAGE_DPDK_TEST
-+ bool "Install tests suite"
-+ select BR2_PACKAGE_PYTHON_PEXPECT if BR2_PACKAGE_PYTHON
-+ help
-+ Install all DPDK tests. If you want to run the tests by the included
-+ autotest.py script you need to enable python manually.
-+
-+config BR2_PACKAGE_DPDK_EXAMPLES
-+ bool "Build & install examples"
-+ help
-+ Build and install all examples selected by the current configuration.
-+
-+endif
-diff --git a/package/dpdk/dpdk.hash b/package/dpdk/dpdk.hash
-new file mode 100644
-index 0000000..1c47f19
---- /dev/null
-+++ b/package/dpdk/dpdk.hash
-@@ -0,0 +1,2 @@
-+# Locally calculated
-+sha256 3a08addbff45c636538514e9a5838fb91ea557661a4c071e03a9a6987d46e5b6 dpdk-17.08.tar.gz
-diff --git a/package/dpdk/dpdk.mk b/package/dpdk/dpdk.mk
-new file mode 100644
-index 0000000..02860fd
---- /dev/null
-+++ b/package/dpdk/dpdk.mk
-@@ -0,0 +1,133 @@
-+################################################################################
-+#
-+# dpdk
-+#
-+################################################################################
-+
-+DPDK_VERSION = 17.08
-+DPDK_SITE = http://fast.dpdk.org/rel
-+DPDK_SOURCE = dpdk-$(DPDK_VERSION).tar.gz
-+
-+DPDK_LICENSE = BSD (core), GPLv2+ (Linux drivers)
-+DPDK_LICENSE_FILES = GNUmakefile LICENSE.GPL
-+DPDK_INSTALL_STAGING = YES
-+
-+DPDK_DEPENDENCIES += linux
-+ifeq ($(BR2_PACKAGE_NUMACTL),y)
-+DPDK_DEPENDENCIES += numactl
-+endif
-+
-+ifeq ($(BR2_PACKAGE_LIBPCAP),y)
-+DPDK_DEPENDENCIES += libpcap
-+endif
-+
-+ifeq ($(BR2_SHARED_LIBS),y)
-+define DPDK_ENABLE_SHARED_LIBS
-+ $(call KCONFIG_ENABLE_OPT,CONFIG_RTE_BUILD_SHARED_LIB,\
-+ $(@D)/build/.config)
-+endef
-+
-+DPDK_POST_CONFIGURE_HOOKS += DPDK_ENABLE_SHARED_LIBS
-+endif
-+
-+# We're building a kernel module without using the kernel-module infra,
-+# so we need to tell we want module support in the kernel
-+ifeq ($(BR2_PACKAGE_DPDK),y)
-+LINUX_NEEDS_MODULES = y
-+endif
-+
-+DPDK_CONFIG = $(call qstrip,$(BR2_PACKAGE_DPDK_CONFIG))
-+
-+ifeq ($(BR2_PACKAGE_DPDK_EXAMPLES),y)
-+# Build of DPDK examples is not very straight-forward. It requires to have
-+# the SDK and runtime installed on same place to reference it by RTE_SDK.
-+# We place it locally in the build directory.
-+# In additition, some examples seem to have a dependency on the ethtool
-+# example that may not be met when building in parallel for the first
-+# time. As a (dirty) workaround, we build twice.
-+define DPDK_BUILD_EXAMPLES
-+ $(INSTALL) -m 0755 -D -d $(TARGET_DIR)/usr/bin
-+ $(INSTALL) -m 0755 -D $(@D)/build/app/testpmd $(TARGET_DIR)/usr/bin
-+# $(MAKE) -C $(@D) DESTDIR=$(@D)/examples-sdk \
-+# CROSS=$(TARGET_CROSS) install-sdk install-runtime
-+# $(MAKE) -C $(@D) RTE_KERNELDIR=$(LINUX_DIR) CROSS=$(TARGET_CROSS) \
-+# RTE_SDK=$(@D)/examples-sdk/usr/local/share/dpdk \
-+# T=$(DPDK_CONFIG) examples || echo "Failed, building again"
-+# $(MAKE) -C $(@D) RTE_KERNELDIR=$(LINUX_DIR) CROSS=$(TARGET_CROSS) \
-+# RTE_SDK=$(@D)/examples-sdk/usr/local/share/dpdk \
-+# T=$(DPDK_CONFIG) examples
-+endef
-+
-+DPDK_EXAMPLES_PATH = $(@D)/examples-sdk/usr/local/share/dpdk/examples
-+
-+# Installation of examples is not supported in DPDK so we do it explicitly
-+# here. As the binaries and libraries do not have a single or regular location
-+# where to find them after build, we search for them by find.
-+define DPDK_INSTALL_EXAMPLES
-+# $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/local/bin
-+# $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/local/lib
-+# for f in `find $(DPDK_EXAMPLES_PATH) -executable -type f \
-+# -name '[a-z]*.so*' | grep '\/lib\/.*'`; do \
-+# $(INSTALL) -m 0755 -D $$f \
-+# $(TARGET_DIR)/usr/local/lib/`basename $$f`;\
-+# done
-+# for f in `find $(DPDK_EXAMPLES_PATH) -executable -type f \
-+# ! -name '*.so*' | grep '\/app\/.*'`; do \
-+# $(INSTALL) -m 0755 -D $$f \
-+# $(TARGET_DIR)/usr/local/bin/`basename $$f`;\
-+# done
-+endef
-+
-+define DPDK_INSTALL_KMOD
-+ $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/local/kmod
-+ for f in `find $(@D)/build/kmod -name '*.ko'` ; do \
-+ $(INSTALL) -m 0755 -D $$f \
-+ $(TARGET_DIR)/usr/local/kmod/`basename $$f`; \
-+ done
-+endef
-+
-+# Build of the power example is broken (at least for 16.04).
-+define DPDK_DISABLE_POWER
-+ $(call KCONFIG_DISABLE_OPT,CONFIG_RTE_LIBRTE_POWER,\
-+ $(@D)/build/.config)
-+endef
-+
-+DPDK_POST_CONFIGURE_HOOKS += DPDK_DISABLE_POWER
-+endif
-+
-+define DPDK_CONFIGURE_CMDS
-+ $(MAKE) -C $(@D) T=$(DPDK_CONFIG) RTE_KERNELDIR=$(LINUX_DIR) \
-+ CROSS=$(TARGET_CROSS) config
-+endef
-+
-+define DPDK_BUILD_CMDS
-+ $(TARGET_MAKE_ENV) LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) \
-+ DBM_INCLUDE="$(STAGING_DIR)/usr/include" \
-+ CCOPTS="$(TARGET_CFLAGS) -D_GNU_SOURCE" \
-+ SHARED_LIBS="$(if $(BR2_STATIC_LIBS),n,y)" -C $(@D) \
-+ RTE_KERNELDIR=$(LINUX_DIR) CROSS=$(TARGET_CROSS)
-+ $(DPDK_BUILD_EXAMPLES)
-+endef
-+
-+define DPDK_INSTALL_STAGING_CMDS
-+ $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) prefix=/usr \
-+ CROSS=$(TARGET_CROSS) install-sdk
-+endef
-+
-+ifeq ($(BR2_PACKAGE_DPDK_TEST),y)
-+define DPDK_INSTALL_TARGET_TEST
-+ $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/dpdk
-+ $(INSTALL) -m 0755 -D $(@D)/build/app/test $(TARGET_DIR)/usr/dpdk
-+ $(INSTALL) -m 0755 -D $(@D)/app/test/*.py $(TARGET_DIR)/usr/dpdk
-+endef
-+endif
-+
-+define DPDK_INSTALL_TARGET_CMDS
-+ $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) prefix=/usr \
-+ CROSS=$(TARGET_CROSS) install-runtime
-+ $(DPDK_INSTALL_KMOD)
-+ $(DPDK_INSTALL_TARGET_TEST)
-+ $(DPDK_INSTALL_EXAMPLES)
-+endef
-+
-+$(eval $(generic-package))
diff --git a/resources/tools/disk-image-builder/nested/clean.sh b/resources/tools/disk-image-builder/nested/clean.sh
deleted file mode 100755
index a8912b97d3..0000000000
--- a/resources/tools/disk-image-builder/nested/clean.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-# Copyright (c) 2016 Cisco and/or its affiliates.
-# 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.
-
-BUILD_DIR="$(dirname $0)/build"
-
-make -C ${BUILD_DIR}/buildroot*/ clean
-rm -f ${BUILD_DIR}/*.img
diff --git a/resources/tools/disk-image-builder/nested/deepclean.sh b/resources/tools/disk-image-builder/nested/deepclean.sh
deleted file mode 100755
index 66c14aab2f..0000000000
--- a/resources/tools/disk-image-builder/nested/deepclean.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-# Copyright (c) 2016 Cisco and/or its affiliates.
-# 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.
-
-BUILD_DIR="$(dirname $0)/build"
-rm -fr ${BUILD_DIR}/*
diff --git a/resources/tools/disk-image-builder/nested/image-patches/01-serial-console b/resources/tools/disk-image-builder/nested/image-patches/01-serial-console
deleted file mode 100755
index 8dfede413b..0000000000
--- a/resources/tools/disk-image-builder/nested/image-patches/01-serial-console
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-patch boot/grub/menu.lst <<"_EOF"
-2c2,4
-< timeout 10
----
-> timeout 1
-> serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
-> terminal --timeout=0 serial console
-15c17
-< kernel /boot/bzImage rw root=/dev/sda1 rootwait
----
-> kernel /boot/bzImage rw root=/dev/sda1 rootwait console=ttyS0,115200n8
-_EOF
-
-patch etc/inittab <<"_EOF"
-27c27,29
-< console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL
----
-> console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL
-> # ttyS1 to be used by qemu-ga
-> ttyS2::respawn:/sbin/getty -L ttyS2 0 vt100 # Additional serial
-_EOF
diff --git a/resources/tools/disk-image-builder/nested/image-patches/02-users b/resources/tools/disk-image-builder/nested/image-patches/02-users
deleted file mode 100755
index 9b7db0969a..0000000000
--- a/resources/tools/disk-image-builder/nested/image-patches/02-users
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh -e
-
-patch etc/sudoers <<"_EOF"
-97a98,100
->
-> csit ALL=(root) NOPASSWD:ALL
-> cisco ALL=(root) NOPASSWD:ALL
-_EOF
-
-patch etc/passwd <<"_EOF"
-10a11,12
-> csit:x:1001:1001:CSIT user:/tmp:/bin/sh
-> cisco:x:1002:1002:Cisco user:/tmp:/bin/sh
-_EOF
-
-patch etc/shadow <<"_EOF"
-1c1
-< root::10933:0:99999:7:::
----
-> root:5pcUkhKEiBBfw:16892:0:99999:7:::
-10a11,12
-> csit:5pcUkhKEiBBfw:16892:0:99999:7:::
-> cisco:5piAVSAyGsbaI:16892:0:99999:7:::
-_EOF
-
-patch etc/group <<"_EOF"
-27a28,29
-> csit:x:1001:
-> cisco:x:1002:
-_EOF
-
-patch etc/ssh/sshd_config <<"_EOF"
-44c44
-< #PermitRootLogin prohibit-password
----
-> PermitRootLogin yes
-_EOF
diff --git a/resources/tools/disk-image-builder/nested/image-patches/03-network b/resources/tools/disk-image-builder/nested/image-patches/03-network
deleted file mode 100755
index e7d215c00a..0000000000
--- a/resources/tools/disk-image-builder/nested/image-patches/03-network
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-
-patch boot/grub/menu.lst <<"_EOF"
-17c17
-< kernel /boot/bzImage rw root=/dev/sda1 rootwait console=ttyS0,115200n8
----
-> kernel /boot/bzImage rw root=/dev/sda1 rootwait ipv6.disable=1 console=ttyS0,115200n8
-_EOF
-
-patch etc/network/interfaces <<"_EOF"
-4a5,7
->
-> auto mgmt0
-> iface mgmt0 inet dhcp
-_EOF
-
-patch etc/init.d/S40network <<"_EOF"
-11a12,29
->
-> # Rename interfaces. The e1000 interface is managment.
-> NUM_VIRTIO=0
-> NUM_MGMT=0
-> for dev in /sys/class/net/eth*
-> do
-> devname=`basename $dev`
-> driver=`readlink ${dev}/device/driver`
-> if test "${driver#*virtio}" != "$driver"
-> then
-> ip link set dev $devname name virtio${NUM_VIRTIO}
-> NUM_VIRTIO=$(($NUM_VIRTIO+1))
-> else
-> ip link set dev $devname name mgmt${NUM_MGMT}
-> NUM_MGMT=$((NUM_MGMT+1))
-> fi
-> done
->
-_EOF
diff --git a/resources/tools/disk-image-builder/nested/image-patches/04-qemu-ga b/resources/tools/disk-image-builder/nested/image-patches/04-qemu-ga
deleted file mode 100755
index 2897260d10..0000000000
--- a/resources/tools/disk-image-builder/nested/image-patches/04-qemu-ga
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-cat - > etc/init.d/S45qemu-ga <<"_EOF"
-#!/bin/sh
-#
-# Start QEMU guest agent
-#
-QEMU_GA_MODE="isa-serial"
-QEMU_GA_DEV="/dev/ttyS1"
-
-case "$1" in
- start)
- echo "Starting qemu guest agent..."
- /usr/bin/qemu-ga -m $QEMU_GA_MODE -p $QEMU_GA_DEV -d
- ;;
- stop)
- echo "Stopping quemu guest agent..."
- killall qemu-ga
- ;;
- restart|reload)
- "$0" stop
- "$0" start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart}"
- exit 1
-esac
-
-exit $?
-_EOF
-
-chown root.root etc/init.d/S45qemu-ga
-chmod 755 etc/init.d/S45qemu-ga
diff --git a/resources/tools/disk-image-builder/nested/image-patches/05-ssh-hostkeys b/resources/tools/disk-image-builder/nested/image-patches/05-ssh-hostkeys
deleted file mode 100755
index de8be15798..0000000000
--- a/resources/tools/disk-image-builder/nested/image-patches/05-ssh-hostkeys
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-# Generate host keys here. This will speed up first boot time ever so slightly.
-# It does however mean that keys are not unique across installations -- which
-# shouldn't be an issue for our use case though.
-
-sudo mkdir -m 0775 -p etc/ssh
-for a in rsa ecdsa ed25519 dsa
-do
- sudo ssh-keygen -f etc/ssh/ssh_host_${a}_key -N "" -t ${a}
-done
diff --git a/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support b/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support
deleted file mode 100755
index 2de4ad6962..0000000000
--- a/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/sh
-
-### This may be a temporary file. Once DPDK is working stable in the nested
-### VM, and if and when ### we decide we want to do all testing with DPDK,
-### the steps executed here may become default configuration for the image.
-###
-### For now, to give us the flexibility to work with and without DPDK, keep
-### this as a separate script.
-
-DPDK_START_FILE="start-testpmd.sh"
-DPDK_STOP_FILE="stop-testpmd.sh"
-
-cat - > ${DPDK_START_FILE} <<"_EOF"
-#!/bin/sh
-
-TARGET_DRIVER="igb_uio"
-PATH_TO_IGB_UIO_MODULE="/usr/local/kmod/igb_uio.ko"
-NUM_HUGEPAGES=512
-TESTPMD_LOG=/tmp/testpmd.log
-TESTPMD_PID=/tmp/testpmd.pid
-
-if [ -f ${TESTPMD_PID} ]
-then
- echo Testpmd is already running. Please stop running instance first.
- echo Delete PID file ${TESTPMD_PID} if you are sure this is a stale PID file.
- exit 1
-fi
-
-# Load igb_uio module if this is the driver we want to use
-if [ "${TARGET_DRIVER}" = "igb_uio" ]
-then
- insmod ${PATH_TO_IGB_UIO_MODULE}
-fi
-
-# Set up hugepages
-echo "vm.nr_hugepages = ${NUM_HUGEPAGES}" > /etc/sysctl.conf
-echo "vm.swappiness = 0" >> /etc/sysctl.conf
-echo "kernel.randomize_va_space = 0" >> /etc/sysctl.conf
-sysctl -p
-mkdir -p /mnt/huge
-grep -q hugetlbfs /etc/fstab || echo "hugetlbfs /mnt/huge hugetlbfs mode=1770,gid=2021 0 0" >> /etc/fstab
-mount -a
-
-#
-echo 1af4 1000 > /sys/bus/pci/drivers/${TARGET_DRIVER}/new_id
-#
-for dev in $(find /sys/bus/pci/drivers/virtio-pci -type l -name '*:*:*.*' | sed -e 's/.*\///')
-do
- class=$(cat /sys/bus/pci/drivers/virtio-pci/${dev}/class)
- if [ "$class" = "0x020000" ]; then
- echo Unbinding $dev from virtio-pci
- echo $dev > /sys/bus/pci/drivers/virtio-pci/unbind
- echo Binding $dev to ${TARGET_DRIVER}
- echo $dev > /sys/bus/pci/drivers/${TARGET_DRIVER}/bind
- fi
-done
-
-# RCU and IRQ affinity
-for i in $(ls /proc/irq/ | grep [0-9])
-do
- echo 1 > /proc/irq/$i/smp_affinity
-done
-echo 1 | sudo tee /sys/bus/workqueue/devices/writeback/cpumask
-
-# There is a bug causing packet loss when VM is initialized. This workaround is
-# supposed to re-initialize CPUs.
-for i in $(ls -d /sys/devices/system/cpu/cpu[1-9]/online); do
- echo 0 | sudo tee $i
- sleep 2
- echo 1 | sudo tee $i
-done
-
-# Start testpmd in the background. This looks a bit convoluted; we need to redirect stdin
-# (and keep stdin active) or else testpmd will quit.
-tail -f /dev/null | nohup testpmd $@ > ${TESTPMD_LOG} 2>&1 &
-echo $! > ${TESTPMD_PID}
-_EOF
-
-cat - > ${DPDK_STOP_FILE} <<"_EOF"
-#!/bin/sh
-
-TESTPMD_LOG=/tmp/testpmd.log
-TESTPMD_PID=/tmp/testpmd.pid
-
-if [ ! -f ${TESTPMD_PID} ]
-then
- echo Testpmd is not running.
- exit 1
-fi
-
-kill $(cat ${TESTPMD_PID})
-rm -f ${TESTPMD_PID}
-
-cat ${TESTPMD_LOG}
-_EOF
-
-chmod 755 ${DPDK_START_FILE}
-chmod 755 ${DPDK_STOP_FILE}
diff --git a/resources/tools/disk-image-builder/nested/image-patches/07-isolate-cpu b/resources/tools/disk-image-builder/nested/image-patches/07-isolate-cpu
deleted file mode 100755
index f057a51b0e..0000000000
--- a/resources/tools/disk-image-builder/nested/image-patches/07-isolate-cpu
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-patch boot/grub/menu.lst <<"_EOF"
-17c17
-< kernel /boot/bzImage rw root=/dev/sda1 rootwait ipv6.disable=1 console=ttyS0,115200n8
----
-> kernel /boot/bzImage rw root=/dev/sda1 rootwait ipv6.disable=1 console=ttyS0,115200n8 isolcpus=1,2,3,4 nohz_full=1,2,3,4 rcu_nocbs=1,2,3,4 intel_pstate=disable
-_EOF
diff --git a/resources/tools/disk-image-builder/nested/image-patches/08-virtio-disk b/resources/tools/disk-image-builder/nested/image-patches/08-virtio-disk
deleted file mode 100755
index 6e6feaecc5..0000000000
--- a/resources/tools/disk-image-builder/nested/image-patches/08-virtio-disk
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-patch boot/grub/menu.lst <<"_EOF"
-17c17
-< kernel /boot/bzImage rw root=/dev/sda1 rootwait ipv6.disable=1 console=ttyS0,115200n8 isolcpus=1,2,3,4 nohz_full=1,2,3,4 rcu_nocbs=1,2,3,4 intel_pstate=disable
----
-> kernel /boot/bzImage rw root=/dev/vda1 rootwait ipv6.disable=1 console=ttyS0,115200n8 isolcpus=1,2,3,4 nohz_full=1,2,3,4 rcu_nocbs=1,2,3,4 intel_pstate=disable noapic
-_EOF
diff --git a/resources/tools/disk-image-builder/nested/kernel-defconfig b/resources/tools/disk-image-builder/nested/kernel-defconfig
deleted file mode 100644
index 85beb9f56f..0000000000
--- a/resources/tools/disk-image-builder/nested/kernel-defconfig
+++ /dev/null
@@ -1,325 +0,0 @@
-CONFIG_EXPERIMENTAL=y
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_FHANDLE=y
-CONFIG_AUDIT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_CGROUPS=y
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CPUSETS=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_RESOURCE_COUNTERS=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_BLK_DEV_INITRD=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_OSF_PARTITION=y
-CONFIG_AMIGA_PARTITION=y
-CONFIG_MAC_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-CONFIG_UNIXWARE_DISKLABEL=y
-CONFIG_SGI_PARTITION=y
-CONFIG_SUN_PARTITION=y
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-CONFIG_SMP=y
-CONFIG_CALGARY_IOMMU=y
-CONFIG_NR_CPUS=64
-CONFIG_SCHED_SMT=y
-CONFIG_PREEMPT_VOLUNTARY=y
-CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
-CONFIG_X86_MCE=y
-CONFIG_MICROCODE=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_X86_MSR=y
-CONFIG_X86_CPUID=y
-CONFIG_NUMA=y
-CONFIG_X86_CHECK_BIOS_CORRUPTION=y
-# CONFIG_MTRR_SANITIZER is not set
-CONFIG_EFI=y
-CONFIG_HZ_1000=y
-CONFIG_KEXEC=y
-CONFIG_CRASH_DUMP=y
-# CONFIG_COMPAT_VDSO is not set
-CONFIG_HIBERNATION=y
-CONFIG_PM_DEBUG=y
-CONFIG_PM_TRACE_RTC=y
-CONFIG_ACPI_DOCK=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_X86_ACPI_CPUFREQ=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_PCCARD=y
-CONFIG_YENTA=y
-CONFIG_HOTPLUG_PCI=y
-CONFIG_BINFMT_MISC=y
-CONFIG_IA32_EMULATION=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_DIAG is not set
-CONFIG_TCP_CONG_ADVANCED=y
-# CONFIG_TCP_CONG_BIC is not set
-# CONFIG_TCP_CONG_WESTWOOD is not set
-# CONFIG_TCP_CONG_HTCP is not set
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_INET6_AH=y
-CONFIG_INET6_ESP=y
-CONFIG_NETLABEL=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_ADVANCED is not set
-CONFIG_NF_CONNTRACK=y
-CONFIG_NF_CONNTRACK_FTP=y
-CONFIG_NF_CONNTRACK_IRC=y
-CONFIG_NF_CONNTRACK_SIP=y
-CONFIG_NF_CT_NETLINK=y
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
-CONFIG_NETFILTER_XT_TARGET_NFLOG=y
-CONFIG_NETFILTER_XT_TARGET_SECMARK=y
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
-CONFIG_NETFILTER_XT_MATCH_POLICY=y
-CONFIG_NETFILTER_XT_MATCH_STATE=y
-CONFIG_NF_CONNTRACK_IPV4=y
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_IP_NF_FILTER=y
-CONFIG_IP_NF_TARGET_REJECT=y
-CONFIG_IP_NF_TARGET_ULOG=y
-CONFIG_NF_NAT=y
-CONFIG_IP_NF_TARGET_MASQUERADE=y
-CONFIG_IP_NF_MANGLE=y
-CONFIG_NF_CONNTRACK_IPV6=y
-CONFIG_IP6_NF_IPTABLES=y
-CONFIG_IP6_NF_MATCH_IPV6HEADER=y
-CONFIG_IP6_NF_FILTER=y
-CONFIG_IP6_NF_TARGET_REJECT=y
-CONFIG_IP6_NF_MANGLE=y
-CONFIG_NET_SCHED=y
-CONFIG_NET_EMATCH=y
-CONFIG_NET_CLS_ACT=y
-CONFIG_HAMRADIO=y
-CONFIG_CFG80211=y
-CONFIG_MAC80211=y
-CONFIG_MAC80211_LEDS=y
-CONFIG_RFKILL=y
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_DEBUG_DEVRES=y
-CONFIG_CONNECTOR=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_SD=y
-CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=y
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_SPI_ATTRS=y
-# CONFIG_SCSI_LOWLEVEL is not set
-CONFIG_ATA=y
-CONFIG_SATA_AHCI=y
-CONFIG_ATA_PIIX=y
-CONFIG_PATA_AMD=y
-CONFIG_PATA_OLDPIIX=y
-CONFIG_PATA_SCH=y
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_BLK_DEV_DM=y
-CONFIG_DM_MIRROR=y
-CONFIG_DM_ZERO=y
-CONFIG_MACINTOSH_DRIVERS=y
-CONFIG_MAC_EMUMOUSEBTN=y
-CONFIG_NETDEVICES=y
-CONFIG_NETCONSOLE=y
-CONFIG_TIGON3=y
-CONFIG_NET_TULIP=y
-CONFIG_E100=y
-CONFIG_E1000=y
-CONFIG_SKY2=y
-CONFIG_FORCEDETH=y
-CONFIG_8139TOO=y
-CONFIG_FDDI=y
-CONFIG_INPUT_POLLDEV=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_EVDEV=y
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_INPUT_TABLET=y
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_INPUT_MISC=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-CONFIG_SERIAL_8250_DETECT_IRQ=y
-CONFIG_SERIAL_8250_RSA=y
-CONFIG_HW_RANDOM=y
-# CONFIG_HW_RANDOM_INTEL is not set
-# CONFIG_HW_RANDOM_AMD is not set
-CONFIG_NVRAM=y
-CONFIG_HPET=y
-# CONFIG_HPET_MMAP is not set
-CONFIG_I2C_I801=y
-CONFIG_WATCHDOG=y
-CONFIG_AGP=y
-CONFIG_AGP_AMD64=y
-CONFIG_AGP_INTEL=y
-CONFIG_DRM=y
-CONFIG_DRM_I915=y
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-CONFIG_FB_EFI=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_VGACON_SOFT_SCROLLBACK=y
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_SEQUENCER=y
-CONFIG_SND_SEQ_DUMMY=y
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-CONFIG_SND_SEQUENCER_OSS=y
-CONFIG_SND_HRTIMER=y
-CONFIG_SND_HDA_INTEL=y
-CONFIG_SND_HDA_HWDEP=y
-CONFIG_HIDRAW=y
-CONFIG_HID_GYRATION=y
-CONFIG_LOGITECH_FF=y
-CONFIG_HID_NTRIG=y
-CONFIG_HID_PANTHERLORD=y
-CONFIG_PANTHERLORD_FF=y
-CONFIG_HID_PETALYNX=y
-CONFIG_HID_SAMSUNG=y
-CONFIG_HID_SONY=y
-CONFIG_HID_SUNPLUS=y
-CONFIG_HID_TOPSEED=y
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-CONFIG_USB=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-CONFIG_USB_MON=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_UHCI_HCD=y
-CONFIG_USB_PRINTER=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_LIBUSUAL=y
-CONFIG_EDAC=y
-CONFIG_RTC_CLASS=y
-# CONFIG_RTC_HCTOSYS is not set
-CONFIG_DMADEVICES=y
-CONFIG_EEEPC_LAPTOP=y
-CONFIG_AMD_IOMMU=y
-CONFIG_AMD_IOMMU_STATS=y
-CONFIG_INTEL_IOMMU=y
-# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
-CONFIG_EFI_VARS=y
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-CONFIG_QFMT_V2=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_HUGETLBFS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_ROOT_NFS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_UTF8=y
-CONFIG_PRINTK_TIME=y
-# CONFIG_ENABLE_WARN_DEPRECATED is not set
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_SCHED_DEBUG is not set
-CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-CONFIG_DEBUG_STACK_USAGE=y
-CONFIG_BLK_DEV_IO_TRACE=y
-CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
-CONFIG_EARLY_PRINTK_DBGP=y
-CONFIG_DEBUG_STACKOVERFLOW=y
-# CONFIG_DEBUG_RODATA_TEST is not set
-CONFIG_DEBUG_BOOT_PARAMS=y
-CONFIG_OPTIMIZE_INLINING=y
-CONFIG_KEYS_DEBUG_PROC_KEYS=y
-CONFIG_SECURITY=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-##
-## Our modifications
-##
-CONFIG_VIRTIO_PCI=y
-CONFIG_VIRTIO_BALLOON=y
-CONFIG_VIRTIO_BLK=y
-CONFIG_VIRTIO_NET=y
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_RING=y
-CONFIG_BRIDGE=y
-CONFIG_IP_FORWARD=y
-CONFIG_PCI_MSI=y
-CONFIG_UIO=y
-CONFIG_UIO_PCI_GENERIC=y
-# CONFIG_VFIO is not set
-# CONFIG_VFIO_PCI is not set
diff --git a/resources/tools/disk-image-builder/nested/requirements.sh b/resources/tools/disk-image-builder/nested/requirements.sh
deleted file mode 100644
index c646506c0f..0000000000
--- a/resources/tools/disk-image-builder/nested/requirements.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-# Copyright (c) 2016 Cisco and/or its affiliates.
-# 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.
-
-sudo apt-get install -y gcc-multilib bc unzip
diff --git a/resources/tools/doc_gen/.gitignore b/resources/tools/doc_gen/.gitignore
deleted file mode 100644
index 02254b9e4c..0000000000
--- a/resources/tools/doc_gen/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-_build/**
-**/*tar.gz
-/tmp
diff --git a/resources/tools/doc_gen/README.rst b/resources/tools/doc_gen/README.rst
deleted file mode 100644
index 57771e80d5..0000000000
--- a/resources/tools/doc_gen/README.rst
+++ /dev/null
@@ -1,116 +0,0 @@
-How to generate documentation
-=============================
-
-
-Requirements
-------------
-
-This tool uses Sphinx and read-the-doc theme. All required modules are listed in
-src/requirements.txt. These requirements are addition to CSIT requirements
-defined in requirements.txt.
-
-The generated documentation needs Java script to be fully functional.
-
-The generated documentation is in the directory _build.
-
-
-How to generate documentation
------------------------------
-
- - pull the last changes from git
- - run: ./run_doc.sh
-
-
-What is documented
-------------------
-
-All modules which are in these directories are documented:
- - resources/libraries/python
- - resources/libraries/robot
- - tests
-
-If you add / remove / rename a module or directory to one of these
-directories, nothing is needed to be done.
-
-
-How to add or change info in generated documentation
-----------------------------------------------------
-
-There are templates for
- - index
- - Python library documentation
- - Robot library documentation
- - Functional tests documentation
- - Performance tests documenation
-in src/ directory.
-
-You can add information you want at the beginning of the file, generated
-documentation will be appended at the end of these files.
-
-See index.rst for example. The information there was copy&pasted from fd.io
-
-
-How to document code for perfect results
-----------------------------------------
-
-Follow PEP8 and guidelines on wiki https://wiki.fd.io/view/CSIT/Documentation
-
-This is the best practice when we use Sphinx:
-
-Python code
-+++++++++++
-
-.. code:: python
-
- """Module description, start with one-short-sentence-description.
-
- Add more descriptive text.
-
- You can add a list (there must be an empty line):
-
- - item,
- - second item.
-
- or numbered list (there also must be an empty line):
-
- #. The first item,
- #. The second item.
-
- """
-
- class ExampleClass(BaseClass):
- """Start with one-short-sentence-description.
-
- Add more descriptive text.
- """
-
- def example_function(parameter, param_def="def"):
- """Start with one-short-sentence-description.
-
- Add more descriptive text, and / or example.
-
- :Example:
-
- followed by a blank line!
-
- You can use also:
- .. seealso:: blabla
- .. warnings:: blabla
- .. note:: blabla
- .. todo:: blabla
-
- :param parameter: The first parameter. Capital letter at the
- beginning, full stop at the end, 80 characters long lines.
- :param param_def: The parameter with default value.
- :type param: str, int, dict, ... Use python data types.
- :type param_def: str
- :raises: ValueError - describe when this exception is raised.
- :returns: Nice string.
- :rtype: str
- """
-
-
-Robot code
-++++++++++
-
-TBD
diff --git a/resources/tools/doc_gen/gen_rst.py b/resources/tools/doc_gen/gen_rst.py
deleted file mode 100755
index 28223e22c7..0000000000
--- a/resources/tools/doc_gen/gen_rst.py
+++ /dev/null
@@ -1,288 +0,0 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
-# 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.
-
-
-from os import walk, listdir
-from os.path import isfile, isdir, join, getsize
-
-# Temporary working directory. It is created and deleted by run_doc.sh
-WORKING_DIR = u"tmp"
-
-# Directory with resources to be documented.
-RESOURCES_DIR = u"resources"
-
-# Directory with libraries (python, robot) to be documented.
-LIB_DIR = u"libraries"
-
-# Directory with tests (func, perf) to be documented.
-TESTS_DIR = u"tests"
-
-PY_EXT = u".py"
-RF_EXT = u".robot"
-
-PATH_PY_LIBS = join(WORKING_DIR, RESOURCES_DIR, LIB_DIR, u"python")
-PATH_RF_LIBS = join(WORKING_DIR, RESOURCES_DIR, LIB_DIR, u"robot")
-PATH_TESTS = join(WORKING_DIR, TESTS_DIR)
-
-# Sections in rst files
-rst_toc = u"""
-.. toctree::
-"""
-
-rst_py_module = u"""
-.. automodule:: {}.{}
- :members:
- :undoc-members:
- :show-inheritance:
-"""
-
-rst_rf_suite_setup = u"""
-.. robot-settings::
- :source: {}
-"""
-
-rst_rf_variables = u"""
-.. robot-variables::
- :source: {}
-"""
-
-rst_rf_keywords = u"""
-.. robot-keywords::
- :source: {}
-"""
-
-rst_rf_tests = u"""
-.. robot-tests::
- :source: {}
-"""
-
-
-def get_files(path, extension):
- """Generates the list of files to process.
-
- :param path: Path to files.
- :param extension: Extension of files to process. If it is the empty string,
- all files will be processed.
- :type path: str
- :type extension: str
- :returns: List of files to process.
- :rtype: list
- """
-
- file_list = list()
- for root, dirs, files in walk(path):
- for filename in files:
- if extension:
- if filename.endswith(extension):
- file_list.append(join(root, filename))
- else:
- file_list.append(join(root, filename))
-
- return file_list
-
-
-def create_file_name(path, start):
- """Create the name of rst file.
-
- Example:
- tests.perf.rst
-
- :param path: Path to a module to be documented.
- :param start: The first directory in path which is used in the file name.
- :type path: str
- :type start: str
- :returns: File name.
- :rtype: str
- """
- dir_list = path.split(u"/")
- start_index = dir_list.index(start)
- return u".".join(dir_list[start_index:-1]) + u".rst"
-
-
-def create_rst_file_names_set(files, start):
- """Generate a set of unique rst file names.
-
- :param files: List of all files to be documented with path beginning in the
- working directory.
- :param start: The first directory in path which is used in the file name.
- :type files: list
- :type start: str
- :returns: Set of unique rst file names.
- :rtype: set
- """
- file_names = set()
- for file in files:
- file_names.add(create_file_name(file, start))
- return file_names
-
-
-def scan_dir(path):
- """Create a list of files and directories in the given directory.
-
- :param path: Path to the directory.
- :type path: str
- :returns: List of directories and list of files sorted in alphabetical
- order.
- :rtype: tuple of two lists
- """
- files = list()
- dirs = list()
- items = listdir(path)
- for item in items:
- if isfile(join(path, item)) and u"__init__" not in item:
- files.append(item)
- elif isdir(join(path, item)):
- dirs.append(item)
- return sorted(dirs), sorted(files)
-
-
-def write_toc(fh, path, dirs):
- """Write a table of contents to given rst file.
-
- :param fh: File handler of the rst file.
- :param path: Path to package.
- :param dirs: List of directories to be included in ToC.
- :type fh: BinaryIO
- :type path: str
- :type dirs: list
- """
- fh.write(rst_toc)
- for dir in dirs:
- fh.write(f" {u'.'.join(path)}.{dir}\n")
-
-
-def write_module_title(fh, module_name):
- """Write the module title to the given rst file. The title will be on the
- second level.
-
- :param fh: File handler of the rst file.
- :param module_name: The name of module used for title.
- :type fh: BinaryIO
- :type module_name: str
- """
- title = f"{module_name} suite"
- fh.write(f"\n{title}\n{u'-' * len(title)}")
-
-
-def generate_py_rst_files():
- """Generate all rst files for all python modules."""
-
- dirs_ignore_list = [u"__pycache__", ]
-
- py_libs = get_files(PATH_PY_LIBS, PY_EXT)
- file_names = create_rst_file_names_set(py_libs, RESOURCES_DIR)
-
- for file_name in file_names:
- path = join(WORKING_DIR, *file_name.split(u".")[:-1])
- dirs, files = scan_dir(path)
-
- for item in dirs_ignore_list:
- while True:
- try:
- dirs.remove(item)
- except ValueError:
- break
-
- full_path = join(WORKING_DIR, file_name)
- with open(full_path, mode="a") as fh:
- if getsize(full_path) == 0:
- package = file_name.split(u".")[-2]
- fh.write(f"{package}\n")
- fh.write(u"=" * len(f"{package}"))
- module_path = file_name.split(u".")[:-1]
- if dirs:
- write_toc(fh, module_path, dirs)
- for file in files:
- module_name = file.split(u".")[0]
- write_module_title(fh, module_name)
- fh.write(rst_py_module.format(
- u".".join(module_path), module_name)
- )
-
-
-def generate_rf_rst_files(
- file_names, incl_tests=True, incl_keywords=True, incl_suite_setup=False,
- incl_variables=False):
- """Generate rst files for the given robot modules.
-
- :param file_names: List of file names to be included in the documentation
- (rst files).
- :param incl_tests: If True, tests will be included in the documentation.
- :param incl_keywords: If True, keywords will be included in the
- documentation.
- :param incl_suite_setup: If True, the suite setup will be included in the
- documentation.
- :param incl_variables: If True, the variables will be included in the
- documentation.
- :type file_names: set
- :type incl_tests: bool
- :type incl_keywords: bool
- :type incl_suite_setup: bool
- :type incl_variables: bool
- """
-
- for file_name in file_names:
- path = join(WORKING_DIR, *file_name.split(u".")[:-1])
- dirs, files = scan_dir(path)
-
- full_path = join(WORKING_DIR, file_name)
- with open(full_path, mode="a") as fh:
- if getsize(full_path) == 0:
- package = file_name.split(u".")[-2]
- fh.write(f"{package}\n")
- fh.write(u"=" * len(f"{package}") + u"\n")
- module_path = file_name.split(u".")[:-1]
- if dirs:
- write_toc(fh, module_path, dirs)
- for file in files:
- module_name = file.split(u".")[0]
- write_module_title(fh, module_name)
- path = join(join(*module_path), module_name + RF_EXT)
- if incl_suite_setup:
- fh.write(rst_rf_suite_setup.format(path))
- if incl_variables:
- fh.write(rst_rf_variables.format(path))
- if incl_keywords:
- fh.write(rst_rf_keywords.format(path))
- if incl_tests:
- fh.write(rst_rf_tests.format(path))
-
-
-def generate_kw_rst_files():
- """Generate all rst files for all robot modules with keywords in libraries
- directory (no tests)."""
-
- rf_libs = get_files(PATH_RF_LIBS, RF_EXT)
- file_names = create_rst_file_names_set(rf_libs, RESOURCES_DIR)
-
- generate_rf_rst_files(file_names, incl_tests=False)
-
-
-def generate_tests_rst_files():
- """Generate all rst files for all robot modules with tests in tests
- directory. Include also keywords defined in these modules."""
-
- tests = get_files(PATH_TESTS, RF_EXT)
- file_names = create_rst_file_names_set(tests, TESTS_DIR)
-
- generate_rf_rst_files(
- file_names, incl_suite_setup=True, incl_variables=True
- )
-
-
-if __name__ == u"__main__":
-
- # Generate all rst files:
- generate_py_rst_files()
- generate_kw_rst_files()
- generate_tests_rst_files()
diff --git a/resources/tools/doc_gen/run_doc.sh b/resources/tools/doc_gen/run_doc.sh
deleted file mode 100755
index d50c5b852d..0000000000
--- a/resources/tools/doc_gen/run_doc.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-
-WORKING_DIR='tmp'
-BUILD_DIR='_build'
-
-# Clean-up when finished:
-trap 'rm -rf ${WORKING_DIR}; exit' EXIT
-trap 'rm -rf ${WORKING_DIR}; exit' ERR
-
-# Remove the old build:
-rm -rf ${BUILD_DIR} || true
-rm -rf ${WORKING_DIR} || true
-
-# Create working directories
-mkdir ${BUILD_DIR}
-mkdir --parents ${WORKING_DIR}/resources/libraries/python/
-mkdir --parents ${WORKING_DIR}/resources/libraries/robot/
-mkdir --parents ${WORKING_DIR}/tests/
-
-# Copy the Sphinx source files:
-cp -r src/* ${WORKING_DIR}/
-
-# Copy the source files to be processed:
-rsync -a --include '*/' --include '*.py' --exclude '*' ../../../resources/libraries/python/ ${WORKING_DIR}/resources/libraries/python/
-cp ../../../resources/__init__.py ${WORKING_DIR}/resources/
-cp ../../../resources/libraries/__init__.py ${WORKING_DIR}/resources/libraries/
-rsync -a --include '*/' --include '*.robot' --exclude '*' ../../../resources/libraries/robot/ ${WORKING_DIR}/resources/libraries/robot/
-rsync -a --include '*/' --include '*.robot' --exclude '*' ../../../tests/ ${WORKING_DIR}/tests/
-
-# Create virtual environment:
-virtualenv --python=$(which python3) ${WORKING_DIR}/env
-. ${WORKING_DIR}/env/bin/activate
-
-# Install CSIT requirements:
-pip3 install --upgrade -r ../../../requirements.txt
-
-export PYTHONPATH=`pwd`
-
-# Generate rst files:
-python3 gen_rst.py
-
-# Remove all rst files from ./${WORKING_DIR}/env directory - we do not need them
-find ./${WORKING_DIR}/env -type f -name '*.rst' | xargs rm -f
-
-# Generate the documentation:
-DATE=$(date -u '+%d-%b-%Y')
-sphinx-build -v -c ${WORKING_DIR} -a -b html -E -D release=$1 -D version="$1 documentation - $DATE" ${WORKING_DIR} ${BUILD_DIR}/
-
-find . -type d -name 'env' | xargs rm -rf
-
-echo Creating csit.doc.tar.gz ...
-tar -czvf ./csit.docs.tar.gz ${BUILD_DIR}
diff --git a/resources/tools/doc_gen/src/Makefile b/resources/tools/doc_gen/src/Makefile
deleted file mode 100644
index dc34917ca9..0000000000
--- a/resources/tools/doc_gen/src/Makefile
+++ /dev/null
@@ -1,225 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-PAPER =
-BUILDDIR = _build
-
-# Internal variables.
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-# the i18n builder cannot share the environment and doctrees with the others
-I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help
-help:
- @echo "Please use \`make <target>' where <target> is one of"
- @echo " html to make standalone HTML files"
- @echo " dirhtml to make HTML files named index.html in directories"
- @echo " singlehtml to make a single large HTML file"
- @echo " pickle to make pickle files"
- @echo " json to make JSON files"
- @echo " htmlhelp to make HTML files and a HTML help project"
- @echo " qthelp to make HTML files and a qthelp project"
- @echo " applehelp to make an Apple Help Book"
- @echo " devhelp to make HTML files and a Devhelp project"
- @echo " epub to make an epub"
- @echo " epub3 to make an epub3"
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
- @echo " latexpdf to make LaTeX files and run them through pdflatex"
- @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
- @echo " text to make text files"
- @echo " man to make manual pages"
- @echo " texinfo to make Texinfo files"
- @echo " info to make Texinfo files and run them through makeinfo"
- @echo " gettext to make PO message catalogs"
- @echo " changes to make an overview of all changed/added/deprecated items"
- @echo " xml to make Docutils-native XML files"
- @echo " pseudoxml to make pseudoxml-XML files for display purposes"
- @echo " linkcheck to check all external links for integrity"
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
- @echo " coverage to run coverage check of the documentation (if enabled)"
- @echo " dummy to check syntax errors of document sources"
-
-.PHONY: clean
-clean:
- rm -rf $(BUILDDIR)/*
-
-.PHONY: html
-html:
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-.PHONY: dirhtml
-dirhtml:
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-.PHONY: singlehtml
-singlehtml:
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
- @echo
- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-.PHONY: pickle
-pickle:
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
- @echo
- @echo "Build finished; now you can process the pickle files."
-
-.PHONY: json
-json:
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
- @echo
- @echo "Build finished; now you can process the JSON files."
-
-.PHONY: htmlhelp
-htmlhelp:
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-.PHONY: qthelp
-qthelp:
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
- @echo
- @echo "Build finished; now you can run "qcollectiongenerator" with the" \
- ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/CSIT.qhcp"
- @echo "To view the help file:"
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/CSIT.qhc"
-
-.PHONY: applehelp
-applehelp:
- $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
- @echo
- @echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
- @echo "N.B. You won't be able to view it unless you put it in" \
- "~/Library/Documentation/Help or install it in your application" \
- "bundle."
-
-.PHONY: devhelp
-devhelp:
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
- @echo
- @echo "Build finished."
- @echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/CSIT"
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/CSIT"
- @echo "# devhelp"
-
-.PHONY: epub
-epub:
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
- @echo
- @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-.PHONY: epub3
-epub3:
- $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
- @echo
- @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
-
-.PHONY: latex
-latex:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo
- @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
- @echo "Run \`make' in that directory to run these through (pdf)latex" \
- "(use \`make latexpdf' here to do that automatically)."
-
-.PHONY: latexpdf
-latexpdf:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo "Running LaTeX files through pdflatex..."
- $(MAKE) -C $(BUILDDIR)/latex all-pdf
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-.PHONY: latexpdfja
-latexpdfja:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo "Running LaTeX files through platex and dvipdfmx..."
- $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-.PHONY: text
-text:
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
- @echo
- @echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-.PHONY: man
-man:
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
- @echo
- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-.PHONY: texinfo
-texinfo:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
- @echo
- @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
- @echo "Run \`make' in that directory to run these through makeinfo" \
- "(use \`make info' here to do that automatically)."
-
-.PHONY: info
-info:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
- @echo "Running Texinfo files through makeinfo..."
- make -C $(BUILDDIR)/texinfo info
- @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
-
-.PHONY: gettext
-gettext:
- $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
- @echo
- @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-
-.PHONY: changes
-changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
- @echo
- @echo "The overview file is in $(BUILDDIR)/changes."
-
-.PHONY: linkcheck
-linkcheck:
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in $(BUILDDIR)/linkcheck/output.txt."
-
-.PHONY: doctest
-doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
- @echo "Testing of doctests in the sources finished, look at the " \
- "results in $(BUILDDIR)/doctest/output.txt."
-
-.PHONY: coverage
-coverage:
- $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
- @echo "Testing of coverage in the sources finished, look at the " \
- "results in $(BUILDDIR)/coverage/python.txt."
-
-.PHONY: xml
-xml:
- $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
- @echo
- @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
-
-.PHONY: pseudoxml
-pseudoxml:
- $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
- @echo
- @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
-
-.PHONY: dummy
-dummy:
- $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
- @echo
- @echo "Build finished. Dummy builder generates no files."
diff --git a/resources/tools/doc_gen/src/conf.py b/resources/tools/doc_gen/src/conf.py
deleted file mode 100644
index 9be0baea53..0000000000
--- a/resources/tools/doc_gen/src/conf.py
+++ /dev/null
@@ -1,344 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# CSIT documentation build configuration file, created by
-# sphinx-quickstart on Tue Nov 8 10:19:40 2016.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-import os
-import sys
-
-sys.path.insert(0, os.path.abspath(u"."))
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
- u"sphinx.ext.autodoc",
- u"sphinx.ext.doctest",
- u"sphinxcontrib_robotdoc"
-]
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = [u"_templates"]
-
-# The suffix(es) of source file names.
-# You can specify multiple suffix as a list of string:
-#
-# source_suffix = [u".rst", u".md"]
-source_suffix = u".rst"
-
-# The encoding of source files.
-#
-# source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = u"index"
-
-# General information about the project.
-project = u"CSIT"
-copyright = u"2018, FD.io"
-author = u"CSIT"
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-# version = u'master'
-# The full version, including alpha/beta/rc tags.
-# release = u'master'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#
-# today = ''
-#
-# Else, today_fmt is used as the format for a strftime call.
-#
-# today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = [u"_build", u"Thumbs.db", u".DS_Store"]
-
-# The reST default role (used for this markup: `text`) to use for all
-# documents.
-#
-# default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#
-# add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#
-# add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#
-# show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = u"sphinx"
-
-# A list of ignored prefixes for module index sorting.
-# modindex_common_prefix = []
-
-# If true, keep warnings as "system message" paragraphs in the built documents.
-# keep_warnings = False
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-# html_theme =u"alabaster"
-html_theme = u"sphinx_rtd_theme"
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-# html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-html_theme_path = [u"env/lib/python2.7/site-packages/sphinx_rtd_theme"]
-
-# The name for this set of Sphinx documents.
-# "<project> v<release> documentation" by default.
-#
-html_title = u"CSIT Documentation"
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#
-html_short_title = u"CSIT"
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#
-html_logo = u"fdio_logo.png"
-
-# The name of an image file (relative to this directory) to use as a favicon of
-# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#
-# html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = [u"_static"]
-
-# Add any extra paths that contain custom files (such as robots.txt or
-# .htaccess) here, relative to this directory. These files are copied
-# directly to the root of the documentation.
-#
-# html_extra_path = []
-
-# If not None, a 'Last updated on:' timestamp is inserted at every page
-# bottom, using the given strftime format.
-# The empty string is equivalent to '%b %d, %Y'.
-#
-# html_last_updated_fmt = None
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#
-# html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#
-# html_sidebars = {
-#
-# }
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#
-# html_additional_pages = {}
-
-# If false, no module index is generated.
-#
-# html_domain_indices = True
-
-# If false, no index is generated.
-#
-# html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#
-html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#
-html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#
-# html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#
-# html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it. The value of this option must be the
-# base URL from which the finished HTML is served.
-#
-# html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-# html_file_suffix = None
-
-# Language to be used for generating the HTML full-text search index.
-# Sphinx supports the following languages:
-# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
-# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh'
-#
-# html_search_language = 'en'
-
-# A dictionary with options for the search language support, empty by default.
-# 'ja' uses this config value.
-# 'zh' user can custom change `jieba` dictionary path.
-#
-# html_search_options = {'type': 'default'}
-
-# The name of a javascript file (relative to the configuration directory) that
-# implements a search results scorer. If empty, the default will be used.
-#
-# html_search_scorer = 'scorer.js'
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = u"csitdoc"
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, u"CSIT.tex", u"CSIT Documentation", u"CSIT", u"manual"),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#
-# latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#
-# latex_use_parts = False
-
-# If true, show page references after internal links.
-#
-# latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#
-# latex_show_urls = False
-
-# Documents to append as an appendix to all manuals.
-#
-# latex_appendices = []
-
-# It false, will not define \strong, \code, itleref, \crossref ... but only
-# \sphinxstrong, ..., \sphinxtitleref, ... To help avoid clash with user added
-# packages.
-#
-# latex_keep_old_macro_names = True
-
-# If false, no module index is generated.
-#
-# latex_domain_indices = True
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, u"CSIT", u"CSIT Documentation", [author], 1)
-]
-
-# If true, show URL addresses after external links.
-#
-# man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, u"CSIT", u"CSIT Documentation",
- author, u"CSIT", u"One line description of project.",
- u"Miscellaneous"),
-]
-
-# Documents to append as an appendix to all manuals.
-#
-# texinfo_appendices = []
-
-# If false, no module index is generated.
-#
-# texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#
-# texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-#
-# texinfo_no_detailmenu = False
diff --git a/resources/tools/doc_gen/src/fdio_logo.png b/resources/tools/doc_gen/src/fdio_logo.png
deleted file mode 100644
index 3c362b2786..0000000000
--- a/resources/tools/doc_gen/src/fdio_logo.png
+++ /dev/null
Binary files differ
diff --git a/resources/tools/doc_gen/src/index.rst b/resources/tools/doc_gen/src/index.rst
deleted file mode 100644
index 39f1d38fca..0000000000
--- a/resources/tools/doc_gen/src/index.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-Contents
---------
-
-.. toctree::
- :numbered:
- :maxdepth: 1
- :glob:
-
- overview
- resources.libraries.python
- resources.libraries.robot
- tests.dpdk.perf
- tests.vpp.device
- tests.vpp.perf
- indices
diff --git a/resources/tools/doc_gen/src/indices.rst b/resources/tools/doc_gen/src/indices.rst
deleted file mode 100644
index d46b839f66..0000000000
--- a/resources/tools/doc_gen/src/indices.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
diff --git a/resources/tools/doc_gen/src/overview.rst b/resources/tools/doc_gen/src/overview.rst
deleted file mode 100644
index 4b7ab20d87..0000000000
--- a/resources/tools/doc_gen/src/overview.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-.. |csit| replace:: Continuous System Integration and Testing
-
-CSIT Description
-================
-
-#. Development of software code for fully automated VPP code testing,
- functionality, performance, regression and new functions.
-
-#. Execution of CSIT test suites on VPP code running on LF FD.io virtual and
- physical compute environments.
-
-#. Integration with FD.io continuous integration systems (Gerrit, Jenkins and
- such).
-
-#. Identified existing FD.io project dependencies and interactions:
-
- - vpp - Vector Packet Processing.
- - ci-management - Management repo for Jenkins Job Builder, script and
- management related to the Jenkins CI configuration.
-
-Project Scope
--------------
-
-#. Automated regression testing of VPP code changes
-
- - Functionality of VPP data plane, network control plane, management plane
- against functional specifications.
- - Performance of VPP data plane including non-drop-rate packet throughput
- and delay, against established reference benchmarks.
- - Performance of network control plane against established reference
- benchmarks.
- - Performance of management plane against established reference benchmarks.
-
-#. Test case definitions driven by supported and planned VPP functionality,
- interfaces and performance:
-
- - Uni-dimensional tests: Data plane, (Network) Control plane, Management
- plane.
- - Multi-dimensional tests: Use case driven.
-
-#. Integration with FD.io Continuous Integration system including FD.io Gerrit
- and Jenkins
-
- - Automated test execution triggered by VPP-VERIFY jobs other VPP and CSIT
- project jobs.
-
-#. Integration with LF VPP test execution environment
-
- - Functional tests execution on LF hosted VM environment.
- - Performance and functional tests execution on LF hosted physical compute
- environment.
- - Subset of tests executed on LF hosted physical compute running VIRL
- (Virtual Internet Routing Lab).
diff --git a/resources/tools/doc_gen/src/resources.libraries.python.rst b/resources/tools/doc_gen/src/resources.libraries.python.rst
deleted file mode 100644
index a5ee9dd0c0..0000000000
--- a/resources/tools/doc_gen/src/resources.libraries.python.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Python Library
-==============
-
diff --git a/resources/tools/doc_gen/src/resources.libraries.robot.rst b/resources/tools/doc_gen/src/resources.libraries.robot.rst
deleted file mode 100644
index 9d93f6c42c..0000000000
--- a/resources/tools/doc_gen/src/resources.libraries.robot.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Robot Library
-=============
-
diff --git a/resources/tools/doc_gen/src/tests.dpdk.perf.rst b/resources/tools/doc_gen/src/tests.dpdk.perf.rst
deleted file mode 100644
index a528a41924..0000000000
--- a/resources/tools/doc_gen/src/tests.dpdk.perf.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-DPDK Performance Tests
-======================
-
diff --git a/resources/tools/doc_gen/src/tests.vpp.device.rst b/resources/tools/doc_gen/src/tests.vpp.device.rst
deleted file mode 100644
index c042cd57b5..0000000000
--- a/resources/tools/doc_gen/src/tests.vpp.device.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-VPP Device Tests
-================
-
diff --git a/resources/tools/doc_gen/src/tests.vpp.perf.ip4_tunnels.rst b/resources/tools/doc_gen/src/tests.vpp.perf.ip4_tunnels.rst
deleted file mode 100644
index 1c296e308f..0000000000
--- a/resources/tools/doc_gen/src/tests.vpp.perf.ip4_tunnels.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-IPv4 Tunnels
-============
-
diff --git a/resources/tools/doc_gen/src/tests.vpp.perf.ip6_tunnels.rst b/resources/tools/doc_gen/src/tests.vpp.perf.ip6_tunnels.rst
deleted file mode 100644
index 40dbbc569b..0000000000
--- a/resources/tools/doc_gen/src/tests.vpp.perf.ip6_tunnels.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-IPv6 Tunnels
-============
-
diff --git a/resources/tools/doc_gen/src/tests.vpp.perf.rst b/resources/tools/doc_gen/src/tests.vpp.perf.rst
deleted file mode 100644
index e349eafe8f..0000000000
--- a/resources/tools/doc_gen/src/tests.vpp.perf.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-VPP Performance Tests
-=====================
-
diff --git a/resources/tools/doc_gen/src/tests.vpp.perf.vm_vhost.rst b/resources/tools/doc_gen/src/tests.vpp.perf.vm_vhost.rst
deleted file mode 100644
index c669b232ea..0000000000
--- a/resources/tools/doc_gen/src/tests.vpp.perf.vm_vhost.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-VM VHOST
-========
-
diff --git a/resources/tools/integrated/__init__.py b/resources/tools/integrated/__init__.py
index a708b16817..fed3209ecf 100644
--- a/resources/tools/integrated/__init__.py
+++ b/resources/tools/integrated/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/tools/integrated/check_crc.py b/resources/tools/integrated/check_crc.py
index 1d98a467e2..01a557c30c 100644
--- a/resources/tools/integrated/check_crc.py
+++ b/resources/tools/integrated/check_crc.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -47,6 +47,7 @@ def main():
checker = VppApiCrcChecker(api_dir)
try:
checker.report_initial_conflicts(report_missing=True)
+ checker.print_warnings()
except RuntimeError as err:
stderr_lines = [
f"{err!r}",
@@ -62,8 +63,8 @@ def main():
u"",
u"In the former case, please consult the following document",
u"to see how to make CSIT accept the .api editing change.",
- u"https://github.com/FDio/csit/blob/master/docs/automating_vpp_api_flag_day.rst"
- u"",
+ u"https://github.com/FDio/csit/blob/master/docs/"
+ u"automating_vpp_api_flag_day.rst",
u"For the latter case, please rebase the patch to see",
u"if that fixes the problem. If repeated rebases do not help",
u"send and email to csit-dev@lists.fd.io asking to investigate.",
diff --git a/resources/tools/integrated/compare_bisect.py b/resources/tools/integrated/compare_bisect.py
new file mode 100644
index 0000000000..7a48bcc2af
--- /dev/null
+++ b/resources/tools/integrated/compare_bisect.py
@@ -0,0 +1,134 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+"""Script for analyzing 3 result sets for "git bisect" purposes.
+
+Jumpavg library is used for comparing description length of three groupings.
+The mid result is grouped with early or late result, or as a separate group.
+The jump we are looking for is between the mid and the smaller group
+of the grouping with less bits.
+Except when a grouping with all three sets as separate groups is the smallest.
+In that case we chose the bigger difference in averages.
+"""
+
+import sys
+
+from typing import List, Tuple
+
+from resources.libraries.python import jumpavg
+from resources.libraries.python.model.parse import parse
+
+
+def read_from_dir(dirname: str) -> Tuple[List[float], float]:
+ """Parse samples from dir, print them and stats, return them as list.
+
+ In case there are more test cases, their results are concatenated.
+
+ :param direname: The directory name (maybe with path) to parse.
+ :type dirname: str
+ :returns: The samples, deserialized from json, and the average.
+ :rtype: Tuple[List[float], float]
+ :raises RuntimeError: On parsing error.
+ """
+ results = parse(dirname)
+ samples = []
+ for result in results.values():
+ samples.extend(result)
+ print(f"Read {dirname}: {samples!r}")
+ stats = jumpavg.AvgStdevStats.for_runs(samples)
+ print(f"Stats: {stats!r}")
+ return samples, stats.avg
+
+
+def main() -> int:
+ """Execute the main logic, return the return code.
+
+ :returns: The return code, 0 or 3 depending on the comparison result.
+ :rtype: int
+ """
+ early_results, early_avg = read_from_dir("csit_early")
+ late_results, late_avg = read_from_dir("csit_late")
+ mid_results, mid_avg = read_from_dir("csit_mid")
+ max_early, abs_diff_late = max(early_avg, mid_avg), abs(late_avg - mid_avg)
+ max_late, abs_diff_early = max(late_avg, mid_avg), abs(early_avg - mid_avg)
+ rel_diff_early = abs_diff_early / max_early if max_early else 0.0
+ rel_diff_late = abs_diff_late / max_late if max_late else 0.0
+ max_value = max(early_results + mid_results + late_results)
+ # Create a common group list with just the early group.
+ common_group_list = jumpavg.BitCountingGroupList(
+ max_value=max_value
+ ).append_group_of_runs(early_results)
+ # Try grouping the mid with the early.
+ early_group_list = common_group_list.copy()
+ early_group_list.extend_runs_to_last_group(mid_results)
+ early_group_list.append_group_of_runs(late_results)
+ early_bits = early_group_list.bits
+ print(f"Early group list bits: {early_bits}")
+ # Now the same, but grouping the mid with the late.
+ late_group_list = common_group_list.copy()
+ late_group_list.append_group_of_runs(mid_results)
+ late_group_list.extend_runs_to_last_group(late_results)
+ late_bits = late_group_list.bits
+ print(f"Late group list bits: {late_bits}")
+ # Finally, group each separately, as if double anomaly happened.
+ double_group_list = common_group_list.copy()
+ double_group_list.append_group_of_runs(mid_results)
+ double_group_list.append_group_of_runs(late_results)
+ double_bits = double_group_list.bits
+ print(f"Double group list bits: {double_bits}")
+ single_bits = min(early_bits, late_bits)
+ if double_bits <= single_bits:
+ # In this case, comparing early_bits with late_bits is not the best,
+ # as that would probably select based on stdev, not based on diff.
+ # Example: mid (small stdev) is closer to early (small stdev),
+ # and farther from late (big stdev).
+ # As grouping mid with early would increase their combined stdev,
+ # it is not selected. This means a noisy late bound can affect
+ # what human perceives as the more interesting region.
+ # So we select only based on averages.
+ print("Perhaps two different anomalies. Selecting by averages only.")
+ diff = single_bits - double_bits
+ print(f"Saved {diff} ({100*diff/single_bits}%) bits.")
+ if rel_diff_early > rel_diff_late:
+ print("The mid results are considered late.")
+ print("Preferring relative difference of averages:")
+ print(f"{100*rel_diff_early}% to {100*rel_diff_late}%.")
+ # rc==1 is when command is not found.
+ # rc==2 is when python interpreter does not find the script.
+ exit_code = 3
+ else:
+ print("The mid results are considered early.")
+ print("Preferring relative difference of averages:")
+ print(f"{100*rel_diff_late}% to {100*rel_diff_early}%.")
+ exit_code = 0
+ else:
+ # When difference of averages is within stdev,
+ # we let jumpavg decide, as here difference in stdev
+ # can be the more interesting signal.
+ diff = early_bits - late_bits
+ if early_bits > late_bits:
+ print("The mid results are considered late.")
+ print(f"Saved {diff} ({100*diff/early_bits}%) bits.")
+ print(f"New relative difference is {100*rel_diff_early}%.")
+ exit_code = 3
+ else:
+ print("The mid results are considered early.")
+ print(f"Saved {-diff} ({-100*diff/late_bits}%) bits.")
+ print(f"New relative difference is {100*rel_diff_late}%.")
+ exit_code = 0
+ print(f"Exit code {exit_code}")
+ return exit_code
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/resources/tools/integrated/compare_perpatch.py b/resources/tools/integrated/compare_perpatch.py
index 62e55629f6..59ea7e5d0f 100644
--- a/resources/tools/integrated/compare_perpatch.py
+++ b/resources/tools/integrated/compare_perpatch.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,72 +13,72 @@
"""Script for determining whether per-patch perf test votes -1.
-This script assumes there exist two text files with processed BMRR results,
-located at hardcoded relative paths (subdirs thereof), having several lines
-of json-parseable lists of float values, corresponding to testcase results.
+This script expects a particular tree created on a filesystem by
+per_patch_perf.sh bootstrap script, including test results
+exported as json files according to a current model schema.
+This script extracts the results (according to result type)
+and joins them into one list of floats for parent and one for current.
+
This script then uses jumpavg library to determine whether there was
a regression, progression or no change for each testcase.
-If number of tests does not match, or there was a regression,
+
+If the set of test names does not match, or there was a regression,
this script votes -1 (by exiting with code 1), otherwise it votes +1 (exit 0).
"""
-import json
import sys
from resources.libraries.python import jumpavg
+from resources.libraries.python.model.parse import parse
+
+
+def main() -> int:
+ """Execute the main logic, return a number to return as the return code.
+ Call parse to get parent and current data.
+ Use higher fake value for parent, so changes that keep a test failing
+ are marked as regressions.
-def main():
- """Execute the main logic, return the code to return as return code.
+ If there are multiple iterations, the value lists are joined.
+ For each test, call jumpavg.classify to detect possible regression.
+
+ If there is at least one regression, return 3.
:returns: Return code, 0 or 3 based on the comparison result.
:rtype: int
"""
iteration = -1
- parent_iterations = list()
- current_iterations = list()
- num_tests = None
+ parent_aggregate = {}
+ current_aggregate = {}
+ test_names = None
while 1:
iteration += 1
- parent_lines = list()
- current_lines = list()
- filename = f"csit_parent/{iteration}/results.txt"
- try:
- with open(filename) as parent_file:
- parent_lines = parent_file.readlines()
- except IOError:
+ parent_results = {}
+ current_results = {}
+ parent_results = parse(f"csit_parent/{iteration}", fake_value=2.0)
+ parent_names = list(parent_results)
+ if test_names is None:
+ test_names = parent_names
+ if not parent_names:
+ # No more iterations.
break
- num_lines = len(parent_lines)
- filename = f"csit_current/{iteration}/results.txt"
- with open(filename) as current_file:
- current_lines = current_file.readlines()
- if num_lines != len(current_lines):
- print(
- f"Number of tests does not match within iteration {iteration}",
- file=sys.stderr
- )
- return 1
- if num_tests is None:
- num_tests = num_lines
- elif num_tests != num_lines:
- print(
- f"Number of tests does not match previous at iteration "
- f"{iteration}", file=sys.stderr
- )
- return 1
- parent_iterations.append(parent_lines)
- current_iterations.append(current_lines)
+ assert parent_names == test_names, f"{parent_names} != {test_names}"
+ current_results = parse(f"csit_current/{iteration}", fake_value=1.0)
+ current_names = list(current_results)
+ assert (
+ current_names == parent_names
+ ), f"{current_names} != {parent_names}"
+ for name in test_names:
+ if name not in parent_aggregate:
+ parent_aggregate[name] = []
+ if name not in current_aggregate:
+ current_aggregate[name] = []
+ parent_aggregate[name].extend(parent_results[name])
+ current_aggregate[name].extend(current_results[name])
exit_code = 0
- for test_index in range(num_tests):
- parent_values = list()
- current_values = list()
- for iteration_index in range(len(parent_iterations)):
- parent_values.extend(
- json.loads(parent_iterations[iteration_index][test_index])
- )
- current_values.extend(
- json.loads(current_iterations[iteration_index][test_index])
- )
+ for name in test_names:
+ parent_values = parent_aggregate[name]
+ current_values = current_aggregate[name]
print(f"Time-ordered MRR values for parent build: {parent_values}")
print(f"Time-ordered MRR values for current build: {current_values}")
parent_values = sorted(parent_values)
@@ -87,11 +87,14 @@ def main():
parent_stats = jumpavg.AvgStdevStats.for_runs(parent_values)
current_stats = jumpavg.AvgStdevStats.for_runs(current_values)
parent_group_list = jumpavg.BitCountingGroupList(
- max_value=max_value).append_group_of_runs([parent_stats])
- combined_group_list = parent_group_list.copy(
- ).extend_runs_to_last_group([current_stats])
+ max_value=max_value
+ ).append_group_of_runs([parent_stats])
+ combined_group_list = (
+ parent_group_list.copy().extend_runs_to_last_group([current_stats])
+ )
separated_group_list = parent_group_list.append_group_of_runs(
- [current_stats])
+ [current_stats]
+ )
print(f"Value-ordered MRR values for parent build: {parent_values}")
print(f"Value-ordered MRR values for current build: {current_values}")
avg_diff = (current_stats.avg - parent_stats.avg) / parent_stats.avg
@@ -103,7 +106,7 @@ def main():
f" {combined_group_list[0].stats}"
)
bits_diff = separated_group_list.bits - combined_group_list.bits
- compared = u"longer" if bits_diff >= 0 else u"shorter"
+ compared = "longer" if bits_diff >= 0 else "shorter"
print(
f"Separate groups are {compared} than single group"
f" by {abs(bits_diff)} bits"
@@ -111,17 +114,17 @@ def main():
# TODO: Version of classify that takes max_value and list of stats?
# That matters if only stats (not list of floats) are given.
classified_list = jumpavg.classify([parent_values, current_values])
- if len(classified_list) < 2:
- print(f"Test test_index {test_index}: normal (no anomaly)")
- continue
- anomaly = classified_list[1].comment
- if anomaly == u"regression":
- print(f"Test test_index {test_index}: anomaly regression")
- exit_code = 3 # 1 or 2 can be caused by other errors
- continue
- print(f"Test test_index {test_index}: anomaly {anomaly}")
+ anomaly_name = "normal (no anomaly)"
+ if len(classified_list) > 1:
+ anomaly = classified_list[1].comment
+ anomaly_name = "anomaly progression"
+ if anomaly == "regression":
+ anomaly_name = "anomaly regression"
+ exit_code = 3 # 1 or 2 can be caused by other errors
+ print(f"Test name {name}: {anomaly_name}")
print(f"Exit code: {exit_code}")
return exit_code
-if __name__ == u"__main__":
+
+if __name__ == "__main__":
sys.exit(main())
diff --git a/resources/tools/iperf/iperf_client.py b/resources/tools/iperf/iperf_client.py
index 9d9ed9b197..d719ee485f 100644
--- a/resources/tools/iperf/iperf_client.py
+++ b/resources/tools/iperf/iperf_client.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-"""This module gets a bandwith limit together with other parameters, reads
+"""This script gets a bandwith limit together with other parameters, reads
the iPerf3 configuration and sends the traffic. At the end, it measures
the packet loss and latency.
"""
@@ -44,7 +44,10 @@ def simple_burst(args):
try:
for i in range(0, args.instances):
cmd = u"exec sudo "
- cmd += f"ip netns exec {args.namespace} " if args.namespace else u""
+ cmd += (
+ f"ip netns exec {args.namespace} "
+ if args.namespace else u""
+ )
cmd += f"iperf3 "
cmd += f"--client {args.host} "
cmd += f"--bind {args.bind} "
diff --git a/resources/tools/papi/vpp_papi_provider.py b/resources/tools/papi/vpp_papi_provider.py
index bd333b1e87..ff52de501b 100755
--- a/resources/tools/papi/vpp_papi_provider.py
+++ b/resources/tools/papi/vpp_papi_provider.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -209,6 +209,8 @@ def process_json_request(args):
def process_stats(args):
"""Process the VPP Stats.
+ The reply contains single item covering all paths.
+
:param args: Command line arguments passed to VPP PAPI Provider.
:type args: ArgumentParser
:returns: JSON formatted string.
@@ -221,14 +223,9 @@ def process_stats(args):
except Exception as err:
raise RuntimeError(f"PAPI init failed:\n{err!r}")
- json_data = json.loads(args.data)
-
- reply = list()
-
- for path in json_data:
- directory = stats.ls(path)
- data = stats.dump(directory)
- reply.append(data)
+ paths = json.loads(args.data)
+ directory = stats.ls(paths)
+ reply = [stats.dump(directory)]
try:
return json.dumps(reply)
diff --git a/resources/tools/presentation/README.md b/resources/tools/presentation/README.md
deleted file mode 100644
index c8e28fe12c..0000000000
--- a/resources/tools/presentation/README.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Presentation and Analytics Layer
-
-Presentation and Analytics Layer (PAL) makes possible to present and
-analyse the test results generated by CSIT Jenkins jobs.
-
-## Using PAL in the Local mode
-
-The local mode makes possible to use:
-1. a single XML file,
-2. a directory with XML files, or
-3. a directory with directories of XML files.
-
-### Using a single XML file
-
-Run the script with the path to a local XML file, e.g.:
-
- ./run_local_report.sh --file output.xml
-
-### Using a directory of XML files
-
-Store all XML files in a directory, e.g.:
-
- csit-vpp-perf-verify-2001-3n-dnv/
- ├── csit-vpp-perf-verify-2001-3n-dnv__5__output_info.xml
- ├── csit-vpp-perf-verify-2001-3n-dnv__6__output_info.xml
- └── csit-vpp-perf-verify-2001-3n-dnv__7__output_info.xml
-
-and use:
-
- ./run_local_report.sh --directory csit-vpp-perf-verify-2001-3n-dnv/
-
-### Using a directory with directories of XML files.
-
-Store all XML files in a directory structure, e.g.:
-
- local/
- ├── csit-vpp-perf-verify-2001-2n-clx
- │   ├── csit-vpp-perf-verify-2001-2n-clx__28__output_info.xml
- │   └── csit-vpp-perf-verify-2001-2n-clx__29__output_info.xml
- └── csit-vpp-perf-verify-2001-3n-dnv
- ├── csit-vpp-perf-verify-2001-3n-dnv__5__output_info.xml
- ├── csit-vpp-perf-verify-2001-3n-dnv__6__output_info.xml
- └── csit-vpp-perf-verify-2001-3n-dnv__7__output_info.xml
-
-and use:
-
- ./run_local_report.sh --directory local/
-
-### Example
-
-For more information and for a running example see the specificaton file
-`specification_local.yaml`.
diff --git a/resources/tools/presentation/__init__.py b/resources/tools/presentation/__init__.py
deleted file mode 100644
index 67fa7230d6..0000000000
--- a/resources/tools/presentation/__init__.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""
-__init__ file for directory presentation
-
-This makes the presentation a part of the great CSIT resources package.
-"""
-
-from .pal_errors import PresentationError
-from .pal_utils import archive_input_data, classify_anomalies, \
- convert_csv_to_pretty_txt, execute_command, get_files, \
- get_last_completed_build_number, get_last_successful_build_nr, \
- get_rst_title_char, mean, relative_change, relative_change_stdev, stdev
-from .environment import Environment
-from .specification_parser import Specification
-from .input_data_parser import InputData
-from .generator_tables import generate_tables
-from .generator_plots import generate_plots
-from .generator_files import generate_files
-from .static_content import prepare_static_content
-from .generator_report import generate_report
-from .generator_cpta import generate_cpta
-from .generator_alerts import Alerting
diff --git a/resources/tools/presentation/conf.py b/resources/tools/presentation/conf.py
deleted file mode 100644
index d652cdce91..0000000000
--- a/resources/tools/presentation/conf.py
+++ /dev/null
@@ -1,275 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""CSIT report documentation build configuration file
-
-This file is execfile()d with the current directory set to its
-containing dir.
-
-Note that not all possible configuration values are present in this
-autogenerated file.
-
-All configuration values have a default; values that are commented out
-serve to show the default.
-
-If extensions (or modules to document with autodoc) are in another directory,
-add these directories to sys.path here. If the directory is relative to the
-documentation root, use os.path.abspath to make it absolute, like shown here.
-"""
-
-
-import os
-import sys
-
-sys.path.insert(0, os.path.abspath(u'.'))
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [u'sphinxcontrib.programoutput',
- u'sphinx.ext.ifconfig']
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = [u'_templates']
-
-# The suffix(es) of source file names.
-# You can specify multiple suffix as a list of string:
-#
-source_suffix = [u'.rst', u'.md']
-
-# The master toctree document.
-master_doc = u'index'
-
-# General information about the project.
-report_week = u'06'
-project = u'FD.io CSIT-2101.{week}'.format(week=report_week)
-copyright = u'2021, FD.io'
-author = u'FD.io CSIT'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-# version = u''
-# The full version, including alpha/beta/rc tags.
-# release = u''
-
-rst_epilog = u"""
-.. |release-1| replace:: {prev_release}
-.. |srelease| replace:: {srelease}
-.. |csit-release| replace:: CSIT-{csitrelease}
-.. |csit-release-1| replace:: CSIT-{csit_prev_release}
-.. |vpp-release| replace:: VPP-{vpprelease} release
-.. |vpp-release-1| replace:: VPP-{vpp_prev_release} release
-.. |dpdk-release| replace:: DPDK-{dpdkrelease}
-.. |dpdk-release-1| replace:: DPDK-{dpdk_prev_release}
-.. |trex-release| replace:: TRex {trex_version}
-
-.. _pdf version of this report: https://docs.fd.io/csit/{release}/report/_static/archive/csit_{release}.{report_week}.pdf
-.. _tag documentation rst file: https://git.fd.io/csit/tree/docs/tag_documentation.rst?h={release}
-.. _TRex driver: https://git.fd.io/csit/tree/GPL/tools/trex/trex_stl_profile.py?h={release}
-.. _CSIT DPDK Performance Tests Documentation: https://docs.fd.io/csit/{release}/doc/tests.dpdk.perf.html
-.. _CSIT VPP Performance Tests Documentation: https://docs.fd.io/csit/{release}/doc/tests.vpp.perf.html
-.. _CSIT VPP Device Tests Documentation: https://docs.fd.io/csit/{release}/doc/tests.vpp.device.html
-.. _VPP test framework documentation: https://docs.fd.io/vpp/{vpprelease}/vpp_make_test/html/
-.. _FD.io CSIT Testbeds - Xeon Haswell: https://git.fd.io/csit/tree/docs/lab/testbeds_ucs_hsw_hw_bios_cfg.md?h={release}
-.. _FD.io CSIT testbeds - Xeon Skylake, Arm, Atom: https://git.fd.io/csit/tree/docs/lab/testbeds_sm_skx_hw_bios_cfg.md?h={release}
-.. _FD.io CSIT testbeds - Xeon Cascade Lake: https://git.fd.io/csit/tree/docs/lab/testbeds_sm_clx_hw_bios_cfg.md?h={release}
-.. _Ansible inventory - hosts: https://git.fd.io/csit/tree/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars?h={release}
-.. _FD.io test executor dpdk performance job 3n-hsw: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-3n-hsw
-.. _FD.io test executor dpdk performance job 3n-skx: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-3n-skx
-.. _FD.io test executor dpdk performance job 2n-skx: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-2n-skx
-.. _FD.io test executor dpdk performance job 2n-clx: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-2n-clx
-.. _FD.io test executor dpdk performance job 2n-dnv: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-2n-dnv
-.. _FD.io test executor dpdk performance job 3n-dnv: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-3n-dnv
-.. _FD.io test executor dpdk performance job 3n-tsh: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-3n-tsh
-.. _FD.io test executor dpdk performance job 2n-tx2: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-2n-tx2
-.. _FD.io test executor dpdk performance job 2n-zn2: https://jenkins.fd.io/job/csit-dpdk-perf-report-iterative-{srelease}-2n-zn2
-.. _FD.io test executor vpp performance job 3n-hsw: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-3n-hsw
-.. _FD.io test executor vpp performance job 3n-skx: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-3n-skx
-.. _FD.io test executor vpp performance job 2n-skx: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-2n-skx
-.. _FD.io test executor vpp performance job 3n-tsh: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-3n-tsh
-.. _FD.io test executor vpp performance job 2n-tx2: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-2n-tx2
-.. _FD.io test executor vpp performance job 3n-dnv: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-3n-dnv
-.. _FD.io test executor vpp performance job 2n-dnv: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-2n-dnv
-.. _FD.io test executor vpp performance job 2n-clx: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-2n-clx
-.. _FD.io test executor vpp performance job 2n-zn2: https://jenkins.fd.io/job/csit-vpp-perf-report-iterative-{srelease}-2n-zn2
-.. _FD.io test executor vpp device jobs using Ubuntu: https://jenkins.fd.io/view/csit/job/csit-vpp-device-{srelease}-ubuntu1804-1n-skx
-.. _FD.io VPP compile job: https://jenkins.fd.io/view/vpp/job/vpp-merge-{srelease}-ubuntu1804-x86_64/
-.. _CSIT Testbed Setup: https://git.fd.io/csit/tree/resources/tools/testbed-setup/README.md?h={release}
-.. _VPP startup.conf: https://git.fd.io/vpp/tree/src/vpp/conf/startup.conf?h=stable/{srelease}&id={vpp_release_commit_id}
-""".format(release=u'rls2101',
- report_week=report_week,
- prev_release=u'rls2009',
- srelease=u'2101',
- csitrelease=u'2101',
- csit_prev_release=u'2009',
- vpprelease=u'21.01',
- vpp_prev_release=u'20.09',
- dpdkrelease=u'20.11',
- dpdk_prev_release=u'20.08',
- sdpdkrelease=u'2011',
- trex_version=u'v2.86',
- vpp_release_commit_id=u'072def4738f149a6e3f2f3884fae55690d6ad3a1')
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = u'en'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = [u'_build', u'Thumbs.db', u'.DS_Store']
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = u'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-html_theme = u'sphinx_rtd_theme'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-html_theme_options = {
- u'canonical_url': u'',
- u'analytics_id': u'',
- u'logo_only': False,
- u'display_version': True,
- u'prev_next_buttons_location': u'bottom',
- u'style_external_links': False,
- # Toc options
- u'collapse_navigation': True,
- u'sticky_navigation': True,
- u'navigation_depth': 3,
- u'includehidden': True,
- u'titles_only': False
-}
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_theme_path = [u'env/lib/python3.6/site-packages/sphinx_rtd_theme']
-
-# html_static_path = ['_build/_static']
-html_static_path = [u'_tmp/src/_static']
-
-html_context = {
- u'css_files': [
- # overrides for wide tables in RTD theme
- u'_static/theme_overrides.css'
- ]
-}
-
-# If false, no module index is generated.
-html_domain_indices = True
-
-# If false, no index is generated.
-html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-html_split_index = False
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_engine = u'pdflatex'
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- u'papersize': u'a4paper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- #'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- u'preamble': r'''
- \usepackage{pdfpages}
- \usepackage{svg}
- \usepackage{charter}
- \usepackage[defaultsans]{lato}
- \usepackage{inconsolata}
- \usepackage{csvsimple}
- \usepackage{longtable}
- \usepackage{booktabs}
- ''',
-
- # Latex figure (float) alignment
- #
- u'figure_align': u'H',
-
- # Latex font setup
- #
- u'fontpkg': r'''
- \renewcommand{\familydefault}{\sfdefault}
- ''',
-
- # Latex other setup
- #
- u'extraclassoptions': u'openany',
- u'sphinxsetup': r'''
- TitleColor={RGB}{225,38,40},
- InnerLinkColor={RGB}{62,62,63},
- OuterLinkColor={RGB}{225,38,40},
- shadowsep=0pt,
- shadowsize=0pt,
- shadowrule=0pt
- '''
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, u'csit.tex', u'CSIT REPORT', u'', u'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#
-# latex_logo = 'fdio.pdf'
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#
-# latex_use_parts = True
-
-# If true, show page references after internal links.
-#
-latex_show_pagerefs = True
-
-# If true, show URL addresses after external links.
-#
-latex_show_urls = u'footnote'
-
-# Documents to append as an appendix to all manuals.
-#
-# latex_appendices = []
-
-# It false, will not define \strong, \code, itleref, \crossref ... but only
-# \sphinxstrong, ..., \sphinxtitleref, ... To help avoid clash with user added
-# packages.
-#
-# latex_keep_old_macro_names = True
-
-# If false, no module index is generated.
-#
-# latex_domain_indices = True
diff --git a/resources/tools/presentation/conf_cpta/conf.py b/resources/tools/presentation/conf_cpta/conf.py
deleted file mode 100644
index 50531d94da..0000000000
--- a/resources/tools/presentation/conf_cpta/conf.py
+++ /dev/null
@@ -1,113 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# CSIT report documentation build configuration file
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-import os
-import sys
-
-sys.path.insert(0, os.path.abspath(u'.'))
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [u'sphinxcontrib.programoutput',
- u'sphinx.ext.ifconfig']
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = [u'_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-source_suffix = [u'.rst', u'.md']
-
-# The master toctree document.
-master_doc = u'index'
-
-# General information about the project.
-project = u'FD.io CSIT'
-copyright = u'2020, FD.io'
-author = u'FD.io CSIT'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-#version = u''
-# The full version, including alpha/beta/rc tags.
-#release = u''
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = u'en'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = [u'_build', u'Thumbs.db', u'.DS_Store']
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = u'sphinx'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = False
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-html_theme = u'sphinx_rtd_theme'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-# html_theme_options = {}
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_theme_path = [u'env/lib/python3.6/site-packages/sphinx_rtd_theme']
-
-# html_static_path = ['_build/_static']
-html_static_path = [u'../_tmp/src/_static']
-
-html_context = {
- u'css_files': [
- # overrides for wide tables in RTD theme
- u'_static/theme_overrides.css',
- ],
-}
-
-# If false, no module index is generated.
-html_domain_indices = True
-
-# If false, no index is generated.
-html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-html_split_index = False
diff --git a/resources/tools/presentation/doc/graphs_improvements.css b/resources/tools/presentation/doc/graphs_improvements.css
deleted file mode 100644
index bd0ffa6435..0000000000
--- a/resources/tools/presentation/doc/graphs_improvements.css
+++ /dev/null
@@ -1,5 +0,0 @@
-body {
- background-color: #F0FFFF;
- width: 820px;
- margin: 10px auto;
-}
diff --git a/resources/tools/presentation/doc/graphs_improvements.rst b/resources/tools/presentation/doc/graphs_improvements.rst
deleted file mode 100644
index 05db16e6bf..0000000000
--- a/resources/tools/presentation/doc/graphs_improvements.rst
+++ /dev/null
@@ -1,590 +0,0 @@
-================================
- Envisioning information by PAL
-================================
-
-Introduction
-------------
-
-This document describes possible improvements in data presentation provided by
-PAL for the `Report <https://docs.fd.io/csit/master/report/>`_ and the
-`Trending <https://docs.fd.io/csit/master/trending/>`_
-
-You can generate a standalone html version of this document using e.g.
-rst2html5 tool:
-
-.. code:: bash
-
- rst2html5 --stylesheet graphs_improvements.css graphs_improvements.rst >> graphs_improvements.html
-
-**Modifications of existing graphs**
-
-- `Speedup Multi-core`_
-- `Packet Throughput`_
-- `Packet Latency`_
-
-**New graphs to be added**
-
-- `Comparison between releases`_
-- `Comparison between processor architectures`_
-- `Comparison between 2-node and 3-node topologies`_
-- `Comparison between different physical testbed instances`_
-- `Comparison between NICs`_
-- `Other comparisons`_
-
-**Export of static images**
-
-- low priority
-- make possible to `export static images`_ which are available via link on the
- web page.
-- vector formats (svg, pdf) are preferred
-
-Priorities
-----------
-
-**Target CSIT-18.10**
-
-- `Speedup Multi-core`_
-- `Packet Throughput`_
-
-**Nice to have in CSIT-18.10**
-
-.. note::
-
- Only if above done, and target CSIT-18.10 is in time , otherwise next
- release.
-
-- `Packet Latency`_
-
-Modifications of existing graphs
---------------------------------
-
-The proposed modifications include the changes in:
-
-- the layout of the graphs,
-- the data and way how it is presented,
-- the test cases presented in the graphs.
-
-The first two points are described below, the last one will be added later as a
-separate chapter.
-
-.. _Speedup Multi-core:
-
-Speedup Multi-core
-``````````````````
-
-The "Speedup Multicore" graph will display the measured data together with
-perfect values calculated as multiples of the best value measured using one
-core. The relative difference between measured and perfect values will be
-displayed in the hover next to each data point.
-
-.. image:: pic/graph-speedup.svg
- :width: 800 px
- :scale: 50 %
- :align: center
- :alt: Graph "Speedup Multi-core: not found.
-
-**Description:**
-
-*Data displayed:*
-
-- one or more data series from the same area, keep the number of displayed
- data series as low as possible (max 6)
-- x-axis: number of cores
-- y-axis: throughput (measured and perfect) [Mpps], linear scale, beginning
- with 0
-- hover information: Throughput [Mpps], Speedup [1], Relative difference between
- measured and ideal values [%], Perfect Throughput [%]
-- Limits of ethernet links, NICs and PCIe. See `Physical performance limits`_.
-
-*Layout:*
-
-- plot type: lines with data points (plotly.graph_objs.Scatter)
-- data series format:
- - measured: solid line with data points
- - perfect: dashed line with data points, the same color as "measured"
-- title: "Speedup Multi-core: <area, scaling, features, ...>",
- top, centered, font size 18; configurable in specification file: visible /
- hidden, text
-- x-axis: integers, starting with 1 (core), linear, font size 16, bottom
-- x-axis label: "Number of cores [qty]", bottom, centered, font size 16
-- y-axis: float, starting with 0, dynamic range, linear, font size 16, left
-- y-axis label: "Packet Throughput [Mpps]", middle, left
-- legend: list of presented test cases, bottom, left, font size 16; the order
- of displayed tests is configurable in the specification file
-- annotation: text: "dashed: perfect<br>solid: measured", top, left,
- font size 16
-
-.. _Packet Throughput:
-
-Packet Throughput
-`````````````````
-
-The "Packet Throughput" graph will display the measured data using
-statistical box graph. Each data point is constructed from 10 samples.
-The statistical data are displayed as hover information.
-
-.. image:: pic/graph-throughput.svg
- :width: 800 px
- :scale: 50 %
- :align: center
- :alt: Graph "Packet Throughput" not found.
-
-**Description:**
-
-*Data displayed:*
-
-- one or more data points from the same area, keep the number of displayed
- data points as low as possible (max 6)
-- x-axis: indexed test cases
-- y-axis: throughput [Mpps], linear scale, beginning with 0
-- hover information: statistical data (min, lower fence, q1, median, q3,
- higher fence, max), test case name
-
-*Layout:*
-
-- plot type: statistical box (plotly.graph_objs.Box)
-- data series format: box
-- title: "Packet Throughput: <area, scaling, features, framesize, cores, ...>",
- top, centered, font size 18; configurable in specification file: visible /
- hidden, text
-- x-axis: integers, starting with 1, linear, font size 16, bottom; the order
- of displayed tests is configurable in the specification file
-- x-axis label: "Indices of Test Cases [Index]", bottom, centered, font size 16
-- y-axis: floats, starting with 0, dynamic range, linear, font size 16, left
-- y-axis label: "Packet Throughput [Mpps]", middle, left
-- legend: "Indexed Test Cases [idx]", bottom, left, font size 16
-
-.. _Packet Latency:
-
-Packet Latency
-``````````````
-
-The "Packet Latency" graph will display the measured data using
-statistical box graph. Each data point is constructed from 10 samples.
-The statistical data are displayed as hover information.
-
-.. image:: pic/graph-latency.svg
- :width: 800 px
- :scale: 50 %
- :align: center
- :alt: Graph "Packet Latency" not found.
-
-**Description:**
-
-*Data displayed:*
-
-- one or more data points from the same area, keep the number of displayed
- data points as low as possible (max 6)
-- x-axis: data flow directions
-- y-axis: latency min/avg/max [uSec], linear scale, beginning with 0
-- hover information: statistical data (min, avg, max), test case name, direction
-
-*Layout:*
-
-- plot type: scatter with errors (plotly.graph_objs.Scatter)
-- data series format: data point with min amd max values
-- title: "Packet Latency: <area, scaling, features, framesize, cores, ...>",
- top, centered, font size 18; configurable in specification file: visible /
- hidden, text
-- x-axis: text, font size 16, bottom; the order of displayed tests is
- configurable in the specification file
-- x-axis label: "Direction", bottom, centered
-- y-axis: integers, starting with 0, dynamic range, linear, font size 16, left
-- y-axis label: "Packet Latency min/avg/max [uSec]", middle, left
-- legend: "Indexed Test Cases [idx]", bottom, left, font size 16
-
-New graphs to be added
-----------------------
-
-- *Comparison between releases*
-
- - compare MRR, NDR, PDR between releases
- - use as many releases as available
-
-- *Comparison between processor architectures*
-
- - compare MRR, NDR, PDR between processor architectures
- - HSW vs SKX (vs ARM when available)
-
-- *Comparison between 2-node and 3-node topologies*
-
- - compare MRR, NDR, PDR between topologies
- - 3n-skx vs 2n-skx
-
-- *Comparison between different physical testbed instances*
-
- - compare the results of the same test (MRR, NDR, PDR) run on different
- instances of the same testbed, e.g. HSW
- - HSW vs HSW, SKX vs SKX
-
-- *Comparison between NICs*
-
- - compare the results of the same test (MRR, NDR, PDR) run on different NICs
- but on the same instance of a physical testbed.
- - x520 vs x710 vs xl710 on HSW
- - x710 vs xxv710 on SKX
-
-- *Other comparisons*
-
-.. note::
-
- - Partially based on the existing tables in the Report
- - Only selected TCs
-
-.. _Comparison between releases:
-
-Comparison between releases
-```````````````````````````
-
-This graph will compare the results of the same test from different releases.
-One graph can present the data from one or more tests logically grouped. See
-`Grouping of tests in graphs`_ for more information.
-Each data point is constructed from 10 samples. The statistical data are
-displayed as hover information.
-
-.. image:: pic/graph_cmp_releases.svg
- :width: 800 px
- :scale: 50 %
- :align: center
- :alt: Graph "Comparison between releases" not found.
-
-**Description:**
-
-*Data displayed:*
-
-- data: packet throughput
-- x-axis: release
-- y-axis: packet throughput [Mpps], linear scale, beginning with 0
-- hover information: statistical data (median, stdev), test case name, release
-
-*Layout:*
-
-- plot type: scatter with line
-- data series format: line with markers
-- title: "Packet Throughput: <area, scaling, features, framesize, cores, ...>",
- top, centered, font size 18
-- x-axis: strings, font size 16, bottom
-- x-axis label: "Release", bototm, centered, font size 16
-- y-axis: floats, starting with 0, dynamic range, linear, bottom, font size 16
-- y-axis label: "Packet Throughput [Mpps]", middle, left, font size 16
-- legend: "Test Cases", bottom, left, font size 16
-
-.. _Comparison between processor architectures:
-
-Comparison between processor architectures
-``````````````````````````````````````````
-
-This graph will compare the results of the same test from the same release run
-on the different processor architectures (HSW, SKX, later ARM).
-One graph can present the data from one or more tests logically grouped. See
-`Grouping of tests in graphs`_ for more information.
-Each data point is constructed from 10 samples. The statistical data are
-displayed as hover information.
-
-.. image:: pic/graph_cmp_arch.svg
- :width: 800 px
- :scale: 50 %
- :align: center
- :alt: Graph "Comparison between processor architectures" not found.
-
-**Description:**
-
-*Data displayed:*
-
-- data: packet throughput
-- x-axis: processor architecture
-- y-axis: throughput [Mpps], linear scale, beginning with 0
-- hover information: statistical data (median, stdev), test case name, processor
- architecture
-
-*Layout:*
-
-- plot type: scatter with line
-- data series format: line with markers
-- title: "Packet Throughput: <area, scaling, features, framesize, cores, ...>",
- top, centered, font size 18
-- x-axis: strings, font size 16, bottom, centered
-- x-axis label: "Processor architecture", bottom, centered, font size 16
-- y-axis: floats, starting with 0, dynamic range, linear, font size 16, left
-- y-axis label: "Packet Throughput [Mpps]", middle, left
-- legend: "Test cases", bottom, left, font size 16
-
-.. _Comparison between 2-node and 3-node topologies:
-
-Comparison between 2-node and 3-node topologies
-```````````````````````````````````````````````
-
-This graph will compare the results of the same test from the same release run
-on the same processor architecture but different topologies (3n-skx, 2n-skx).
-One graph can present the data from one or more tests logically grouped. See
-`Grouping of tests in graphs`_ for more information.
-Each data point is constructed from 10 samples. The statistical data are
-displayed as hover information.
-
-.. image:: pic/graph_cmp_topo.svg
- :width: 800 px
- :scale: 50 %
- :align: center
- :alt: Graph "Comparison between 2-node and 3-node topologies" not found.
-
-**Description:**
-
-*Data displayed:*
-
-- data: packet throughput
-- x-axis: topology
-- y-axis: throughput [Mpps], linear scale, beginning with 0
-- hover information: statistical data (median, stdev), test case name, topology
-
-*Layout:*
-
-- plot type: scatter with line
-- data series format: line with markers
-- title: "Packet Throughput: <area, scaling, features, framesize, cores, ...>",
- top, centered, font size 18
-- x-axis: strings, font size 16, bottom, centered
-- x-axis label: "Topology", bottom, centered, font size 16
-- y-axis: floats, starting with 0, dynamic range, linear, font size 16, left
-- y-axis label: "Packet Throughput [Mpps]", middle, left, font size 16
-- legend: "Test cases", bottom, left, font size 16
-
-.. _Comparison between different physical testbed instances:
-
-Comparison between different physical testbed instances
-```````````````````````````````````````````````````````
-
-This graph will compare the results of the same test from the same release run
-on the same processor architecture, the same topology but different physical
-testbed instances.
-One graph can present the data from one or more tests logically grouped. See
-`Grouping of tests in graphs`_ for more information.
-Each data point is constructed from 10 samples. The statistical data are
-displayed as hover information.
-
-
-.. image:: pic/graph_cmp_testbed.svg
- :width: 800 px
- :scale: 50 %
- :align: center
- :alt: Graph "Comparison between different physical testbed instances" not
- found.
-
-**Description:**
-
-*Data displayed:*
-
-- data: packet throughput
-- x-axis: physical testbed instances
-- y-axis: throughput [Mpps], linear scale, beginning with 0
-- hover information: statistical data (median, stdev), test case name, physical
- testbed instance
-
-*Layout:*
-
-- plot type: scatter with line
-- data series format: line with markers
-- title: "Packet Throughput: <area, scaling, features, framesize, cores, ...>",
- top, centered, font size 18
-- x-axis: strings, font size 16, bottom, centered
-- x-axis label: "Physical Testbed Instance", bottom, centered, font size 16
-- y-axis: floats, starting with 0, dynamic range, linear, font size 16, left
-- y-axis label: "Packet Throughput [Mpps]", middle, left, font size 16
-- legend: "Test cases", bottom, left, font size 16
-
-.. _Comparison between NICs:
-
-Comparison between NICs
-```````````````````````
-
-This graph will compare the results of the same test from the same release run
-on the same processor architecture, the same topology but different NICs.
-One graph can present the data from one or more tests logically grouped. See
-`Grouping of tests in graphs`_ for more information.
-Each data point is constructed from 10 samples. The statistical data are
-displayed as hover information.
-
-.. image:: pic/graph_cmp_nics.svg
- :width: 800 px
- :scale: 50 %
- :align: center
- :alt: Graph "Comparison between NICs" not found.
-
-**Description:**
-
-*Data displayed:*
-
-- data: packet throughput
-- x-axis: NICs
-- y-axis: packet throughput [Mpps], linear scale, beginning with 0
-- hover information: statistical data (median, stdev), test case name, NIC
-
-*Layout:*
-
-- plot type: scatter with line
-- data series format: line with markers
-- title: "Packet Throughput: <area, scaling, features, framesize, cores, ...>",
- top, centered, font size 18
-- x-axis: strings, font size 16, bottom
-- x-axis label: "NIC", bottom, centered, font size 16
-- y-axis: floats, starting with 0, dynamic range, linear, font size 16, left
-- y-axis label: "Packet Throughput [Mpps]", middle, left, font size 16
-- legend: "Test cases", bottom, left, font size 16
-
-.. _Other comparisons:
-
-Other comparisons
-`````````````````
-
-**Other tests results comparisons**
-
-- compare packet throughput for vhost vs memif
-
-**Other views on collected data**
-
-- per `Vratko Polak email on csit-dev <https://lists.fd.io/g/csit-dev/message/3008>`_.
-
-.. _Grouping of tests in graphs:
-
-Grouping of tests in graphs
----------------------------
-
-A graph can present results of one or more tests. The tests are grouped
-according to the defined criteria. In the ideal case, all graphs use the same
-groups of tests.
-
-The grouping of tests is described in a separate document.
-
-.. TODO: [MK], [TF]: Create the document.
-.. TODO: [TF]: Add the link.
-.. TODO: [TF]: Remove/edit the next paragraph when the document is ready.
-
-**Example of data grouping:**
-
-- ip4: ip4base, ip4scale20k, ip4scale200k, ip4scale2m
- - data presented in this order from left to right
-- ip6: similar to ip4
-- l2bd: similar to ip4.
-
-.. _Sorting of tests presented in a graph:
-
-Sorting of tests presented in a graph
--------------------------------------
-
-It is possible to specify the order of tests (suites) on the x-axis presented in
-a graph:
-
-- `Packet Throughput`_
-- `Packet Latency`_
-
-It is possible to specify the order of tests (suites) in the legend presented in
-a graph:
-
-- `Speedup Multi-core`_
-
-In both cases the order is defined in the specification file for each plot
-separately, e.g.:
-
-.. code:: yaml
-
- -
- type: "plot"
- <other parameters>
- sort:
- - "IP4BASE"
- - "FIB_20K"
- - "FIB_200K"
- - "FIB_2M"
-
-The sorting is based on tags. If more then one test has the same tag, only the
-first one is taken. The remaining tests and the tests without listed tags are
-placed at the end of the list in random order.
-
-.. _export static images:
-
-Export of static images
------------------------
-
-Not implemented yet. For more information see:
-
-- `Plotly: Static image export <https://plot.ly/python/static-image-export/>`_
-- prefered vector formats (svg, pdf)
-- requirements:
- - plotly-orca
- - `Orca <https://github.com/plotly/orca>`_
- - `Orca releases <https://github.com/plotly/orca/releases>`_
- - `Orca management in Python <https://plot.ly/python/orca-management/>`_
- - psutil
-
-.. _Physical performance limits:
-
-Physical performance limits
----------------------------
-
-+-----------------+----------------+
-| Ethernet links | pps @64B |
-+=================+================+
-| 10ge | 14,880,952.38 |
-+-----------------+----------------+
-| 25ge | 37,202,380.95 |
-+-----------------+----------------+
-| 40ge | 59,523,809.52 |
-+-----------------+----------------+
-| 100ge | 148,809,523.81 |
-+-----------------+----------------+
-
-
-+-----------------+----------------+
-| Ethernet links | bps |
-+=================+================+
-| 64B | |
-+-----------------+----------------+
-| IMIX | |
-+-----------------+----------------+
-| 1518B | |
-+-----------------+----------------+
-| 9000B | |
-+-----------------+----------------+
-
-
-+-----------------+----------------+
-| NIC | pps @64B |
-+=================+================+
-| x520 | 24,460,000 |
-+-----------------+----------------+
-| x710 | 35,800,000 |
-+-----------------+----------------+
-| xxv710 | 35,800,000 |
-+-----------------+----------------+
-| xl710 | 35,800,000 |
-+-----------------+----------------+
-
-
-+-----------------+----------------+
-| NIC | bw ??B |
-+=================+================+
-| x520 | |
-+-----------------+----------------+
-| x710 | |
-+-----------------+----------------+
-| xxv710 | |
-+-----------------+----------------+
-| xl710 | |
-+-----------------+----------------+
-
-
-+-----------------+----------------+
-| PCIe | bps |
-+=================+================+
-| PCIe Gen3 x8 | 50,000,000,000 |
-+-----------------+----------------+
-| PCIe Gen3 x16 | 100,000,000,000|
-+-----------------+----------------+
-
-
-+-----------------+----------------+
-| PCIe | pps @64B |
-+=================+================+
-| PCIe Gen3 x8 | 74,404,761.90 |
-+-----------------+----------------+
-| PCIe Gen3 x16 | 148,809,523.81 |
-+-----------------+----------------+
diff --git a/resources/tools/presentation/doc/pal_func_diagram.svg b/resources/tools/presentation/doc/pal_func_diagram.svg
deleted file mode 100644
index 14f59605f9..0000000000
--- a/resources/tools/presentation/doc/pal_func_diagram.svg
+++ /dev/null
@@ -1,1413 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<svg version="1.2" baseProfile="tiny" width="210.06mm" height="270.76mm" viewBox="0 0 21006 27076" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="21006" height="27076"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1033" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
- <glyph unicode="u" horiz-adv-x="901" d="M 314,1082 L 314,396 C 314,343 318,299 326,264 333,229 346,200 363,179 380,157 403,142 432,133 460,124 495,119 537,119 580,119 618,127 653,142 687,157 716,178 741,207 765,235 784,270 797,312 810,353 817,401 817,455 L 817,1082 997,1082 997,231 C 997,208 997,185 998,160 998,135 998,111 999,89 1000,66 1000,47 1001,31 1002,15 1002,5 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 827,116 826,136 825,155 825,172 825,185 L 822,185 C 805,154 786,125 765,100 744,75 720,53 693,36 666,18 634,4 599,-6 564,-15 523,-20 476,-20 416,-20 364,-13 321,2 278,17 242,39 214,70 186,101 166,140 153,188 140,236 133,294 133,361 L 133,1082 314,1082 Z"/>
- <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 527,1 499,-5 471,-10 442,-14 409,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 467,127 484,128 501,131 517,134 535,137 554,141 L 554,8 Z"/>
- <glyph unicode="s" horiz-adv-x="927" d="M 950,299 C 950,248 940,203 921,164 901,124 872,91 835,64 798,37 752,16 698,2 643,-13 581,-20 511,-20 448,-20 392,-15 342,-6 291,4 247,20 209,41 171,62 139,91 114,126 88,161 69,203 57,254 L 216,285 C 231,227 263,185 311,158 359,131 426,117 511,117 550,117 585,120 618,125 650,130 678,140 701,153 724,166 743,183 756,205 769,226 775,253 775,285 775,318 767,345 752,366 737,387 715,404 688,418 661,432 628,444 589,455 550,465 507,476 460,489 417,500 374,513 331,527 288,541 250,560 216,583 181,606 153,634 132,668 111,702 100,745 100,796 100,895 135,970 206,1022 276,1073 378,1099 513,1099 632,1099 727,1078 798,1036 868,994 912,927 931,834 L 769,814 C 763,842 752,866 736,885 720,904 701,919 678,931 655,942 630,951 602,956 573,961 544,963 513,963 432,963 372,951 333,926 294,901 275,864 275,814 275,785 282,761 297,742 311,723 331,707 357,694 382,681 413,669 449,660 485,650 525,640 568,629 597,622 626,614 656,606 686,597 715,587 744,576 772,564 799,550 824,535 849,519 870,500 889,478 908,456 923,430 934,401 945,372 950,338 950,299 Z"/>
- <glyph unicode="r" horiz-adv-x="556" d="M 142,0 L 142,830 C 142,853 142,876 142,900 141,923 141,946 140,968 139,990 139,1011 138,1030 137,1049 137,1067 136,1082 L 306,1082 C 307,1067 308,1049 309,1030 310,1010 311,990 312,969 313,948 313,929 314,910 314,891 314,874 314,861 L 318,861 C 331,902 344,938 359,969 373,999 390,1024 409,1044 428,1063 451,1078 478,1088 505,1097 537,1102 575,1102 590,1102 604,1101 617,1099 630,1096 641,1094 648,1092 L 648,927 C 636,930 622,933 606,935 590,936 572,937 552,937 511,937 476,928 447,909 418,890 394,865 376,832 357,799 344,759 335,714 326,668 322,618 322,564 L 322,0 142,0 Z"/>
- <glyph unicode="p" horiz-adv-x="953" d="M 1053,546 C 1053,464 1046,388 1033,319 1020,250 998,190 967,140 936,90 895,51 844,23 793,-6 730,-20 655,-20 578,-20 510,-5 452,24 394,53 350,101 319,168 L 314,168 C 315,167 315,161 316,150 316,139 316,126 317,110 317,94 317,76 318,57 318,37 318,17 318,-2 L 318,-425 138,-425 138,861 C 138,887 138,912 138,936 137,960 137,982 136,1002 135,1021 135,1038 134,1052 133,1066 133,1076 132,1082 L 306,1082 C 307,1080 308,1073 309,1061 310,1049 311,1035 312,1018 313,1001 314,982 315,963 316,944 316,925 316,908 L 320,908 C 337,943 356,972 377,997 398,1021 423,1041 450,1057 477,1072 508,1084 542,1091 575,1098 613,1101 655,1101 730,1101 793,1088 844,1061 895,1034 936,997 967,949 998,900 1020,842 1033,774 1046,705 1053,629 1053,546 Z M 864,542 C 864,609 860,668 852,720 844,772 830,816 811,852 791,888 765,915 732,934 699,953 658,962 609,962 569,962 531,956 496,945 461,934 430,912 404,880 377,848 356,804 341,748 326,691 318,618 318,528 318,451 324,387 337,334 350,281 368,238 393,205 417,172 447,149 483,135 519,120 560,113 607,113 657,113 699,123 732,142 765,161 791,189 811,226 830,263 844,308 852,361 860,414 864,474 864,542 Z"/>
- <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 490,-20 422,-9 363,14 304,37 254,71 213,118 172,165 140,223 119,294 97,364 86,447 86,542 86,915 248,1102 571,1102 655,1102 728,1090 789,1067 850,1044 900,1009 939,962 978,915 1006,857 1025,787 1044,717 1053,635 1053,542 Z M 864,542 C 864,626 858,695 845,750 832,805 813,848 788,881 763,914 732,937 696,950 660,963 619,969 574,969 528,969 487,962 450,949 413,935 381,912 355,879 329,846 309,802 296,747 282,692 275,624 275,542 275,458 282,389 297,334 312,279 332,235 358,202 383,169 414,146 449,133 484,120 522,113 563,113 609,113 651,120 688,133 725,146 757,168 783,201 809,234 829,278 843,333 857,388 864,458 864,542 Z"/>
- <glyph unicode="n" horiz-adv-x="900" d="M 825,0 L 825,686 C 825,739 821,783 814,818 806,853 793,882 776,904 759,925 736,941 708,950 679,959 644,963 602,963 559,963 521,956 487,941 452,926 423,904 399,876 374,847 355,812 342,771 329,729 322,681 322,627 L 322,0 142,0 142,851 C 142,874 142,898 142,923 141,948 141,971 140,994 139,1016 139,1035 138,1051 137,1067 137,1077 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 312,966 313,947 314,927 314,910 314,897 L 317,897 C 334,928 353,957 374,982 395,1007 419,1029 446,1047 473,1064 505,1078 540,1088 575,1097 616,1102 663,1102 723,1102 775,1095 818,1080 861,1065 897,1043 925,1012 953,981 974,942 987,894 1000,845 1006,788 1006,721 L 1006,0 825,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1456" d="M 768,0 L 768,686 C 768,739 765,783 758,818 751,853 740,882 725,904 709,925 688,941 663,950 638,959 607,963 570,963 532,963 498,956 467,941 436,926 410,904 389,876 367,847 350,812 339,771 327,729 321,681 321,627 L 321,0 142,0 142,851 C 142,874 142,898 142,923 141,948 141,971 140,994 139,1016 139,1035 138,1051 137,1067 137,1077 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 312,966 313,947 314,927 314,910 314,897 L 317,897 C 333,928 350,957 369,982 388,1007 410,1029 435,1047 460,1064 488,1078 521,1088 553,1097 590,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 946,928 964,957 984,982 1004,1007 1027,1029 1054,1047 1081,1064 1111,1078 1144,1088 1177,1097 1215,1102 1258,1102 1313,1102 1360,1095 1400,1080 1439,1065 1472,1043 1497,1012 1522,981 1541,942 1553,894 1565,845 1571,788 1571,721 L 1571,0 1393,0 1393,686 C 1393,739 1390,783 1383,818 1376,853 1365,882 1350,904 1334,925 1313,941 1288,950 1263,959 1232,963 1195,963 1157,963 1123,956 1092,942 1061,927 1035,906 1014,878 992,850 975,815 964,773 952,731 946,682 946,627 L 946,0 768,0 Z"/>
- <glyph unicode="l" horiz-adv-x="187" d="M 138,0 L 138,1484 318,1484 318,0 138,0 Z"/>
- <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/>
- <glyph unicode="g" horiz-adv-x="954" d="M 548,-425 C 486,-425 431,-419 383,-406 335,-393 294,-375 260,-352 226,-328 198,-300 177,-267 156,-234 140,-198 131,-158 L 312,-132 C 324,-182 351,-220 392,-248 433,-274 486,-288 553,-288 594,-288 631,-282 664,-271 697,-260 726,-241 749,-217 772,-191 790,-159 803,-119 816,-79 822,-30 822,27 L 822,201 820,201 C 807,174 790,148 771,123 751,98 727,75 699,56 670,37 637,21 600,10 563,-2 520,-8 472,-8 403,-8 345,4 296,27 247,50 207,84 176,130 145,176 122,233 108,302 93,370 86,449 86,539 86,626 93,704 108,773 122,842 145,901 178,950 210,998 252,1035 304,1061 355,1086 418,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,914 825,932 826,953 827,974 828,993 829,1012 830,1030 831,1046 832,1059 833,1072 835,1080 836,1082 L 1007,1082 C 1006,1076 1006,1066 1005,1052 1004,1037 1004,1020 1003,1000 1002,980 1002,958 1002,934 1001,909 1001,884 1001,858 L 1001,31 C 1001,-120 964,-234 890,-311 815,-387 701,-425 548,-425 Z M 822,541 C 822,616 814,681 798,735 781,788 760,832 733,866 706,900 676,925 642,941 607,957 572,965 536,965 490,965 451,957 418,941 385,925 357,900 336,866 314,831 298,787 288,734 277,680 272,616 272,541 272,463 277,398 288,345 298,292 314,249 335,216 356,183 383,160 416,146 449,132 488,125 533,125 569,125 604,133 639,148 673,163 704,188 731,221 758,254 780,297 797,350 814,403 822,466 822,541 Z"/>
- <glyph unicode="f" horiz-adv-x="557" d="M 361,951 L 361,0 181,0 181,951 29,951 29,1082 181,1082 181,1204 C 181,1243 185,1280 192,1314 199,1347 213,1377 233,1402 252,1427 279,1446 313,1461 347,1475 391,1482 445,1482 466,1482 489,1481 512,1479 535,1477 555,1474 572,1470 L 572,1333 C 561,1335 548,1337 533,1339 518,1340 504,1341 492,1341 465,1341 444,1337 427,1330 410,1323 396,1312 387,1299 377,1285 370,1268 367,1248 363,1228 361,1205 361,1179 L 361,1082 572,1082 572,951 361,951 Z"/>
- <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,446 282,394 294,347 305,299 323,258 348,224 372,189 403,163 441,144 479,125 525,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 1008,206 992,176 972,146 951,115 924,88 890,64 856,39 814,19 763,4 712,-12 650,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,649 100,735 125,806 150,876 185,933 229,977 273,1021 324,1053 383,1073 442,1092 504,1102 571,1102 662,1102 738,1087 799,1058 860,1029 909,988 946,937 983,885 1009,824 1025,754 1040,684 1048,608 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 538,969 507,964 474,955 441,945 410,928 382,903 354,878 330,845 311,803 292,760 281,706 278,641 L 862,641 Z"/>
- <glyph unicode="d" horiz-adv-x="954" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 C 823,921 823,931 823,946 822,960 822,975 822,991 821,1006 821,1021 821,1035 821,1049 821,1059 821,1065 L 821,1484 1001,1484 1001,223 C 1001,197 1001,172 1002,148 1002,124 1002,102 1003,82 1004,62 1004,45 1005,31 1006,16 1006,6 1007,0 L 835,0 C 834,7 833,16 832,29 831,41 830,55 829,71 828,87 827,104 826,122 825,139 825,157 825,174 L 821,174 Z M 275,542 C 275,467 280,403 289,350 298,297 313,253 334,219 355,184 381,159 413,143 445,127 484,119 530,119 577,119 619,127 656,142 692,157 722,182 747,217 771,251 789,296 802,351 815,406 821,474 821,554 821,631 815,696 802,749 789,802 771,844 746,877 721,910 691,933 656,948 620,962 579,969 532,969 488,969 450,961 418,946 386,931 359,906 338,872 317,838 301,794 291,740 280,685 275,619 275,542 Z"/>
- <glyph unicode="c" horiz-adv-x="875" d="M 275,546 C 275,484 280,427 289,375 298,323 313,278 334,241 355,203 384,174 419,153 454,132 497,122 548,122 612,122 666,139 709,173 752,206 778,258 788,328 L 970,328 C 964,283 951,239 931,197 911,155 884,118 850,86 815,54 773,28 724,9 675,-10 618,-20 553,-20 468,-20 396,-6 337,23 278,52 230,91 193,142 156,192 129,251 112,320 95,388 87,462 87,542 87,615 93,679 105,735 117,790 134,839 156,881 177,922 203,957 232,986 261,1014 293,1037 328,1054 362,1071 398,1083 436,1091 474,1098 512,1102 551,1102 612,1102 666,1094 713,1077 760,1060 801,1038 836,1009 870,980 898,945 919,906 940,867 955,824 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 495,961 452,953 418,936 383,919 355,893 334,859 313,824 298,781 289,729 280,677 275,616 275,546 Z"/>
- <glyph unicode="b" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 573,-20 505,-5 451,25 396,54 352,102 318,168 L 316,168 C 316,151 316,133 315,114 314,95 313,78 312,62 311,46 310,32 309,21 308,10 307,3 306,0 L 132,0 C 133,6 133,16 134,31 135,45 135,62 136,82 137,102 137,124 138,148 138,172 138,197 138,223 L 138,1484 318,1484 318,1061 C 318,1041 318,1022 318,1004 317,985 317,969 316,955 315,938 315,923 314,908 L 318,908 C 351,977 396,1027 451,1057 506,1087 574,1102 655,1102 792,1102 892,1056 957,964 1021,872 1053,733 1053,546 Z M 864,540 C 864,615 859,679 850,732 841,785 826,829 805,864 784,898 758,923 726,939 694,955 655,963 609,963 562,963 520,955 484,940 447,925 417,900 393,866 368,832 350,787 337,732 324,677 318,609 318,529 318,452 324,387 337,334 350,281 368,239 393,206 417,173 447,149 483,135 519,120 560,113 607,113 651,113 689,121 721,136 753,151 780,176 801,210 822,244 838,288 849,343 859,397 864,463 864,540 Z"/>
- <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,124 87,203 87,303 87,375 101,434 128,480 155,526 190,562 234,588 277,614 327,632 383,642 439,652 496,657 554,657 L 797,657 797,717 C 797,762 792,800 783,832 774,863 759,889 740,908 721,928 697,942 668,951 639,960 604,965 565,965 530,965 499,963 471,958 443,953 419,944 398,931 377,918 361,900 348,878 335,855 327,827 323,793 L 135,810 C 142,853 154,892 173,928 192,963 218,994 253,1020 287,1046 330,1066 382,1081 433,1095 496,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1090,111 1100,112 1110,113 1120,114 1130,116 1139,118 L 1139,6 C 1116,1 1094,-3 1072,-6 1049,-9 1025,-10 1000,-10 966,-10 937,-5 913,4 888,13 868,26 853,45 838,63 826,86 818,113 810,140 805,171 803,207 L 797,207 C 778,172 757,141 734,113 711,85 684,61 653,42 622,22 588,7 549,-4 510,-15 465,-20 414,-20 Z M 455,115 C 512,115 563,125 606,146 649,167 684,194 713,226 741,259 762,294 776,332 790,371 797,408 797,443 L 797,531 600,531 C 556,531 514,528 475,522 435,517 400,506 370,489 340,472 316,449 299,418 281,388 272,349 272,300 272,241 288,195 320,163 351,131 396,115 455,115 Z"/>
- <glyph unicode="_" horiz-adv-x="1191" d="M -31,-407 L -31,-277 1162,-277 1162,-407 -31,-407 Z"/>
- <glyph unicode="Y" horiz-adv-x="1244" d="M 777,584 L 777,0 587,0 587,584 45,1409 255,1409 684,738 1111,1409 1321,1409 777,584 Z"/>
- <glyph unicode="T" horiz-adv-x="1139" d="M 720,1253 L 720,0 530,0 530,1253 46,1253 46,1409 1204,1409 1204,1253 720,1253 Z"/>
- <glyph unicode="S" horiz-adv-x="1139" d="M 1272,389 C 1272,330 1261,275 1238,225 1215,175 1179,132 1131,96 1083,59 1023,31 950,11 877,-10 790,-20 690,-20 515,-20 378,11 280,72 182,133 120,222 93,338 L 278,375 C 287,338 302,305 321,275 340,245 367,219 400,198 433,176 473,159 522,147 571,135 629,129 697,129 754,129 806,134 853,144 900,153 941,168 975,188 1009,208 1036,234 1055,266 1074,297 1083,335 1083,379 1083,425 1073,462 1052,491 1031,520 1001,543 963,562 925,581 880,596 827,609 774,622 716,635 652,650 613,659 573,668 534,679 494,689 456,701 420,716 383,730 349,747 317,766 285,785 257,809 234,836 211,863 192,894 179,930 166,965 159,1006 159,1053 159,1120 173,1177 200,1225 227,1272 264,1311 312,1342 360,1373 417,1395 482,1409 547,1423 618,1430 694,1430 781,1430 856,1423 918,1410 980,1396 1032,1375 1075,1348 1118,1321 1152,1287 1178,1247 1203,1206 1224,1159 1239,1106 L 1051,1073 C 1042,1107 1028,1137 1011,1164 993,1191 970,1213 941,1231 912,1249 878,1263 837,1272 796,1281 747,1286 692,1286 627,1286 572,1280 528,1269 483,1257 448,1241 421,1221 394,1201 374,1178 363,1151 351,1124 345,1094 345,1063 345,1021 356,987 377,960 398,933 426,910 462,892 498,874 540,859 587,847 634,835 685,823 738,811 781,801 825,791 868,781 911,770 952,758 991,744 1030,729 1067,712 1102,693 1136,674 1166,650 1191,622 1216,594 1236,561 1251,523 1265,485 1272,440 1272,389 Z"/>
- <glyph unicode="R" horiz-adv-x="1218" d="M 1164,0 L 798,585 359,585 359,0 168,0 168,1409 831,1409 C 911,1409 982,1400 1044,1382 1105,1363 1157,1337 1199,1302 1241,1267 1273,1225 1295,1175 1317,1125 1328,1069 1328,1006 1328,961 1322,917 1309,874 1296,831 1275,791 1247,755 1219,719 1183,688 1140,662 1097,636 1045,618 984,607 L 1384,0 1164,0 Z M 1136,1004 C 1136,1047 1129,1084 1114,1115 1099,1146 1078,1173 1050,1194 1022,1215 988,1230 948,1241 908,1251 863,1256 812,1256 L 359,1256 359,736 820,736 C 875,736 922,743 962,757 1002,770 1035,789 1061,813 1086,837 1105,865 1118,898 1130,931 1136,966 1136,1004 Z"/>
- <glyph unicode="P" horiz-adv-x="1086" d="M 1258,985 C 1258,924 1248,867 1228,814 1207,761 1177,715 1137,676 1096,637 1046,606 985,583 924,560 854,549 773,549 L 359,549 359,0 168,0 168,1409 761,1409 C 844,1409 917,1399 979,1379 1041,1358 1093,1330 1134,1293 1175,1256 1206,1211 1227,1159 1248,1106 1258,1048 1258,985 Z M 1066,983 C 1066,1072 1039,1140 984,1187 929,1233 847,1256 738,1256 L 359,1256 359,700 746,700 C 856,700 937,724 989,773 1040,822 1066,892 1066,983 Z"/>
- <glyph unicode="M" horiz-adv-x="1324" d="M 1366,0 L 1366,940 C 1366,974 1366,1009 1367,1044 1368,1079 1369,1112 1370,1141 1371,1175 1373,1208 1375,1240 1366,1206 1356,1172 1346,1139 1337,1110 1328,1080 1318,1048 1307,1015 1297,986 1287,960 L 923,0 789,0 420,960 C 416,970 412,982 408,995 403,1008 399,1023 394,1038 389,1053 384,1068 379,1084 374,1099 369,1115 364,1130 353,1165 342,1202 331,1240 332,1203 333,1166 334,1129 335,1098 336,1065 337,1031 338,996 338,966 338,940 L 338,0 168,0 168,1409 419,1409 794,432 C 799,419 804,402 811,381 818,360 824,338 830,316 836,294 842,273 847,254 852,234 855,219 857,208 859,219 863,234 868,254 873,274 880,295 887,317 894,339 900,360 907,381 914,402 920,419 925,432 L 1293,1409 1538,1409 1538,0 1366,0 Z"/>
- <glyph unicode="L" horiz-adv-x="900" d="M 168,0 L 168,1409 359,1409 359,156 1071,156 1071,0 168,0 Z"/>
- <glyph unicode="I" horiz-adv-x="186" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
- <glyph unicode="F" horiz-adv-x="1006" d="M 359,1253 L 359,729 1145,729 1145,571 359,571 359,0 168,0 168,1409 1169,1409 1169,1253 359,1253 Z"/>
- <glyph unicode="D" horiz-adv-x="1218" d="M 1381,719 C 1381,602 1363,498 1328,409 1293,319 1244,244 1183,184 1122,123 1049,78 966,47 882,16 792,0 695,0 L 168,0 168,1409 634,1409 C 743,1409 843,1396 935,1369 1026,1342 1105,1300 1171,1244 1237,1187 1289,1116 1326,1029 1363,942 1381,839 1381,719 Z M 1189,719 C 1189,814 1175,896 1148,964 1121,1031 1082,1087 1033,1130 984,1173 925,1205 856,1226 787,1246 712,1256 630,1256 L 359,1256 359,153 673,153 C 747,153 816,165 879,189 942,213 996,249 1042,296 1088,343 1124,402 1150,473 1176,544 1189,626 1189,719 Z"/>
- <glyph unicode="A" horiz-adv-x="1350" d="M 1167,0 L 1006,412 364,412 202,0 4,0 579,1409 796,1409 1362,0 1167,0 Z M 768,1026 C 757,1053 747,1080 738,1107 728,1134 719,1159 712,1182 705,1204 699,1223 694,1238 689,1253 686,1262 685,1265 684,1262 681,1252 676,1237 671,1222 665,1203 658,1180 650,1157 641,1132 632,1105 622,1078 612,1051 602,1024 L 422,561 949,561 768,1026 Z"/>
- <glyph unicode="4" horiz-adv-x="1033" d="M 881,319 L 881,0 711,0 711,319 47,319 47,459 692,1409 881,1409 881,461 1079,461 1079,319 881,319 Z M 711,1206 C 710,1203 706,1196 701,1187 696,1177 690,1166 683,1154 676,1142 670,1130 663,1118 656,1105 649,1095 644,1087 L 283,555 C 280,550 275,543 269,534 262,525 256,517 249,508 242,499 236,490 229,481 222,472 217,466 213,461 L 711,461 711,1206 Z"/>
- <glyph unicode="3" horiz-adv-x="980" d="M 1049,389 C 1049,324 1039,267 1018,216 997,165 966,123 926,88 885,53 835,26 776,8 716,-11 648,-20 571,-20 484,-20 410,-9 351,13 291,34 242,63 203,99 164,134 135,175 116,221 97,266 84,313 78,362 L 264,379 C 269,342 279,308 294,277 308,246 327,220 352,198 377,176 407,159 443,147 479,135 522,129 571,129 662,129 733,151 785,196 836,241 862,307 862,395 862,447 851,489 828,521 805,552 776,577 742,595 707,612 670,624 630,630 589,636 552,639 518,639 L 416,639 416,795 514,795 C 548,795 583,799 620,806 657,813 690,825 721,844 751,862 776,887 796,918 815,949 825,989 825,1038 825,1113 803,1173 759,1217 714,1260 648,1282 561,1282 482,1282 418,1262 369,1221 320,1180 291,1123 283,1049 L 102,1063 C 109,1125 126,1179 153,1225 180,1271 214,1309 255,1340 296,1370 342,1393 395,1408 448,1423 504,1430 563,1430 642,1430 709,1420 766,1401 823,1381 869,1354 905,1321 941,1287 968,1247 985,1202 1002,1157 1010,1108 1010,1057 1010,1016 1004,977 993,941 982,905 964,873 940,844 916,815 886,791 849,770 812,749 767,734 715,723 L 715,719 C 772,713 821,700 863,681 905,661 940,636 967,607 994,578 1015,544 1029,507 1042,470 1049,430 1049,389 Z"/>
- <glyph unicode="2" horiz-adv-x="927" d="M 103,0 L 103,127 C 137,205 179,274 228,334 277,393 328,447 382,496 436,544 490,589 543,630 596,671 643,713 686,754 729,795 763,839 790,884 816,929 829,981 829,1038 829,1078 823,1113 811,1144 799,1174 782,1199 759,1220 736,1241 709,1256 678,1267 646,1277 611,1282 572,1282 536,1282 502,1277 471,1267 439,1257 411,1242 386,1222 361,1202 341,1177 326,1148 310,1118 300,1083 295,1044 L 111,1061 C 117,1112 131,1159 153,1204 175,1249 205,1288 244,1322 283,1355 329,1382 384,1401 438,1420 501,1430 572,1430 642,1430 704,1422 759,1405 814,1388 860,1364 898,1331 935,1298 964,1258 984,1210 1004,1162 1014,1107 1014,1044 1014,997 1006,952 989,909 972,866 949,826 921,787 892,748 859,711 822,675 785,639 746,604 705,570 664,535 623,501 582,468 541,434 502,400 466,366 429,332 397,298 368,263 339,228 317,191 301,153 L 1036,153 1036,0 103,0 Z"/>
- <glyph unicode="1" horiz-adv-x="874" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
- <glyph unicode="." horiz-adv-x="186" d="M 187,0 L 187,219 382,219 382,0 187,0 Z"/>
- <glyph unicode="-" horiz-adv-x="504" d="M 91,464 L 91,624 591,624 591,464 91,464 Z"/>
- <glyph unicode=" " horiz-adv-x="556"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template(57356)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template(57354)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template(10146)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template(10132)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template(10007)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template(10004)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template(9679)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template(8226)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template(8211)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="3069" y="1769" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4975,3040 L 3070,3040 3070,1770 6880,1770 6880,3040 4975,3040 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 4975,3040 L 3070,3040 3070,1770 6880,1770 6880,3040 4975,3040 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="3568" y="2299"/><tspan class="TextPosition" x="3568" y="2299"><tspan fill="rgb(0,0,0)" stroke="none">Specification</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="4253" y="2854"/><tspan class="TextPosition" x="4253" y="2854"><tspan fill="rgb(0,0,0)" stroke="none">.YAML</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="8146" y="1769" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10052,3040 L 8147,3040 8147,1770 11957,1770 11957,3040 10052,3040 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10052,3040 L 8147,3040 8147,1770 11957,1770 11957,3040 10052,3040 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8310" y="2299"/><tspan class="TextPosition" x="8310" y="2299"><tspan fill="rgb(0,0,0)" stroke="none">Data to process</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="9599" y="2854"/><tspan class="TextPosition" x="9599" y="2854"><tspan fill="rgb(0,0,0)" stroke="none">.xml</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="13169" y="1769" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 15075,3040 L 13170,3040 13170,1770 16980,1770 16980,3040 15075,3040 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 15075,3040 L 13170,3040 13170,1770 16980,1770 16980,3040 15075,3040 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="13568" y="2299"/><tspan class="TextPosition" x="13568" y="2299"><tspan fill="rgb(0,0,0)" stroke="none">Static content</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="14728" y="2854"/><tspan class="TextPosition" x="14728" y="2854"><tspan fill="rgb(0,0,0)" stroke="none">.rst</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="2630" y="4279" width="4703" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 4980,4280 C 6312,4280 7330,4555 7330,4915 7330,5275 6312,5550 4980,5550 3648,5550 2631,5275 2631,4915 2631,4555 3648,4280 4980,4280 Z M 2631,4280 L 2631,4280 Z M 7331,5551 L 7331,5551 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 4980,4280 C 6312,4280 7330,4555 7330,4915 7330,5275 6312,5550 4980,5550 3648,5550 2631,5275 2631,4915 2631,4555 3648,4280 4980,4280 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 2631,4280 L 2631,4280 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7331,5551 L 7331,5551 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="2980" y="5087"/><tspan class="TextPosition" x="2980" y="5087"><tspan fill="rgb(0,0,0)" stroke="none">read_specification</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="7611" y="4280" width="4830" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 10025,4281 C 11393,4281 12438,4556 12438,4916 12438,5276 11393,5551 10025,5551 8657,5551 7612,5276 7612,4916 7612,4556 8657,4281 10025,4281 Z M 7612,4281 L 7612,4281 Z M 12439,5552 L 12439,5552 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,4281 C 11393,4281 12438,4556 12438,4916 12438,5276 11393,5551 10025,5551 8657,5551 7612,5276 7612,4916 7612,4556 8657,4281 10025,4281 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7612,4281 L 7612,4281 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 12439,5552 L 12439,5552 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8910" y="5088"/><tspan class="TextPosition" x="8910" y="5088"><tspan fill="rgb(0,0,0)" stroke="none">read_data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="3069" y="6789" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4975,8060 L 3070,8060 3070,6790 6880,6790 6880,8060 4975,8060 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 4975,8060 L 3070,8060 3070,6790 6880,6790 6880,8060 4975,8060 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="3568" y="7597"/><tspan class="TextPosition" x="3568" y="7597"><tspan fill="rgb(0,0,0)" stroke="none">Specification</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="8119" y="6789" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10025,8060 L 8120,8060 8120,6790 11930,6790 11930,8060 10025,8060 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,8060 L 8120,8060 8120,6790 11930,6790 11930,8060 10025,8060 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8920" y="7597"/><tspan class="TextPosition" x="8920" y="7597"><tspan fill="rgb(0,0,0)" stroke="none">Input data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="2657" y="10199" width="4703" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 5007,10200 C 6339,10200 7357,10475 7357,10835 7357,11195 6339,11470 5007,11470 3675,11470 2658,11195 2658,10835 2658,10475 3675,10200 5007,10200 Z M 2658,10200 L 2658,10200 Z M 7358,11471 L 7358,11471 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 5007,10200 C 6339,10200 7357,10475 7357,10835 7357,11195 6339,11470 5007,11470 3675,11470 2658,11195 2658,10835 2658,10475 3675,10200 5007,10200 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 2658,10200 L 2658,10200 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7358,11471 L 7358,11471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="3918" y="11007"/><tspan class="TextPosition" x="3918" y="11007"><tspan fill="rgb(0,0,0)" stroke="none">filter_data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="7611" y="10199" width="4830" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 10025,10200 C 11393,10200 12438,10475 12438,10835 12438,11195 11393,11470 10025,11470 8657,11470 7612,11195 7612,10835 7612,10475 8657,10200 10025,10200 Z M 7612,10200 L 7612,10200 Z M 12439,11471 L 12439,11471 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,10200 C 11393,10200 12438,10475 12438,10835 12438,11195 11393,11470 10025,11470 8657,11470 7612,11195 7612,10835 7612,10475 8657,10200 10025,10200 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7612,10200 L 7612,10200 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 12439,11471 L 12439,11471 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8935" y="11007"/><tspan class="TextPosition" x="8935" y="11007"><tspan fill="rgb(0,0,0)" stroke="none">filter_data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="12817" y="16899" width="4449" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 15040,16900 C 16300,16900 17263,17175 17263,17535 17263,17895 16300,18170 15040,18170 13780,18170 12818,17895 12818,17535 12818,17175 13780,16900 15040,16900 Z M 12818,16900 L 12818,16900 Z M 17264,18171 L 17264,18171 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 15040,16900 C 16300,16900 17263,17175 17263,17535 17263,17895 16300,18170 15040,18170 13780,18170 12818,17895 12818,17535 12818,17175 13780,16900 15040,16900 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 12818,16900 L 12818,16900 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 17264,18171 L 17264,18171 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="13482" y="17707"/><tspan class="TextPosition" x="13482" y="17707"><tspan fill="rgb(0,0,0)" stroke="none">generate_files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="3069" y="14409" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4975,15680 L 3070,15680 3070,14410 6880,14410 6880,15680 4975,15680 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 4975,15680 L 3070,15680 3070,14410 6880,14410 6880,15680 4975,15680 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="4260" y="15217"/><tspan class="TextPosition" x="4260" y="15217"><tspan fill="rgb(0,0,0)" stroke="none">Tables</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="8119" y="14409" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10025,15680 L 8120,15680 8120,14410 11930,14410 11930,15680 10025,15680 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,15680 L 8120,15680 8120,14410 11930,14410 11930,15680 10025,15680 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="9473" y="15217"/><tspan class="TextPosition" x="9473" y="15217"><tspan fill="rgb(0,0,0)" stroke="none">Plots</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="13169" y="19509" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 15075,20780 L 13170,20780 13170,19510 16980,19510 16980,20780 15075,20780 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 15075,20780 L 13170,20780 13170,19510 16980,19510 16980,20780 15075,20780 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="14552" y="20317"/><tspan class="TextPosition" x="14552" y="20317"><tspan fill="rgb(0,0,0)" stroke="none">Files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="7611" y="22019" width="4830" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 10025,22020 C 11393,22020 12438,22295 12438,22655 12438,23015 11393,23290 10025,23290 8657,23290 7612,23015 7612,22655 7612,22295 8657,22020 10025,22020 Z M 7612,22020 L 7612,22020 Z M 12439,23291 L 12439,23291 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,22020 C 11393,22020 12438,22295 12438,22655 12438,23015 11393,23290 10025,23290 8657,23290 7612,23015 7612,22655 7612,22295 8657,22020 10025,22020 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7612,22020 L 7612,22020 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 12439,23291 L 12439,23291 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8262" y="22827"/><tspan class="TextPosition" x="8262" y="22827"><tspan fill="rgb(0,0,0)" stroke="none">generate_report</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="8119" y="24629" width="3813" height="1273"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10025,25900 L 8120,25900 8120,24630 11930,24630 11930,25900 10025,25900 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,25900 L 8120,25900 8120,24630 11930,24630 11930,25900 10025,25900 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="9280" y="25437"/><tspan class="TextPosition" x="9280" y="25437"><tspan fill="rgb(0,0,0)" stroke="none">Report</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="1303" y="2404" width="6310" height="20387"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3070,2405 C 1171,2405 -1037,22093 7253,22643"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 7612,22655 L 7167,22489 7157,22789 7612,22655 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="4830" y="3039" width="302" height="1242"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,3040 C 4975,3970 4979,3554 4981,3845"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 4982,4280 L 5131,3830 4831,3830 4982,4280 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="9879" y="3039" width="302" height="1243"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10052,3040 C 10052,3971 10036,3555 10029,3846"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,4281 L 10179,3832 9879,3830 10025,4281 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="4826" y="5549" width="302" height="1242"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4982,5550 C 4982,6481 4978,6066 4976,6355"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 4975,6790 L 5126,6340 4826,6340 4975,6790 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="9875" y="5550" width="301" height="1241"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,5551 L 10025,6360"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,6790 L 10175,6340 9875,6340 10025,6790 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="4857" y="8059" width="302" height="2142"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,8060 C 4975,9665 5002,8796 5008,9766"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 5009,10200 L 5158,9750 4858,9750 5009,10200 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="4974" y="8059" width="3418" height="2328"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,8060 C 4975,9665 7780,8678 8251,9972"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 8318,10386 L 8390,9917 8095,9968 8318,10386 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="4974" y="8059" width="10214" height="8842"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,8060 C 4975,10304 14789,5995 15037,16490"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 15042,16900 L 15186,16448 14886,16452 15042,16900 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="6597" y="8059" width="3430" height="2328"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,8060 C 10025,9665 7210,8678 6737,9972"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 6670,10386 L 6894,9968 6598,9917 6670,10386 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="9875" y="8059" width="301" height="2142"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,8060 L 10025,9770"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,10200 L 10175,9750 9875,9750 10025,10200 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="10024" y="8059" width="6737" height="9028"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,8060 C 10025,9957 16448,5557 16610,16654"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 16613,17086 L 16760,16635 16460,16637 16613,17086 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="4806" y="13570" width="301" height="841"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4945,13571 C 4945,14201 4952,13931 4959,13981"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 4975,14410 L 5106,13954 4806,13967 4975,14410 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="9875" y="13570" width="301" height="841"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,13571 L 10025,13980"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,14410 L 10175,13960 9875,13960 10025,14410 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="14920" y="18169" width="302" height="1342"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15042,18170 C 15042,19176 15063,18709 15072,19080"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 15075,19510 L 15221,19059 14921,19061 15075,19510 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="4974" y="15679" width="3485" height="6528"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,15680 C 4975,20435 8106,17374 8308,21746"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 8318,22206 L 8458,21753 8158,21760 8318,22206 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="9875" y="15679" width="301" height="6342"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,15680 L 10025,21590"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,22020 L 10175,21570 9875,21570 10025,22020 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="11732" y="20779" width="3345" height="1428"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15075,20780 C 15075,21710 12525,21151 11879,21832"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 11732,22206 L 12043,21848 11766,21733 11732,22206 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="12438" y="2404" width="7822" height="20393"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16980,2405 C 20904,2405 23125,22213 12786,22648"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 12438,22655 L 12891,22795 12885,22495 12438,22655 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="9875" y="23289" width="301" height="1342"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10025,23290 L 10025,24200"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10025,24630 L 10175,24180 9875,24180 10025,24630 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="2658" y="12300" width="4576" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 4945,12301 C 6241,12301 7231,12576 7231,12936 7231,13296 6241,13571 4945,13571 3649,13571 2659,13296 2659,12936 2659,12576 3649,12301 4945,12301 Z M 2659,12301 L 2659,12301 Z M 7232,13572 L 7232,13572 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 4945,12301 C 6241,12301 7231,12576 7231,12936 7231,13296 6241,13571 4945,13571 3649,13571 2659,13296 2659,12936 2659,12576 3649,12301 4945,12301 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 2659,12301 L 2659,12301 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7232,13572 L 7232,13572 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="3167" y="13108"/><tspan class="TextPosition" x="3167" y="13108"><tspan fill="rgb(0,0,0)" stroke="none">generate_tables</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="7611" y="12300" width="4830" height="1274"/>
- <path fill="rgb(207,231,245)" stroke="none" d="M 10025,12301 C 11393,12301 12438,12576 12438,12936 12438,13296 11393,13571 10025,13571 8657,13571 7612,13296 7612,12936 7612,12576 8657,12301 10025,12301 Z M 7612,12301 L 7612,12301 Z M 12439,13572 L 12439,13572 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10025,12301 C 11393,12301 12438,12576 12438,12936 12438,13296 11393,13571 10025,13571 8657,13571 7612,13296 7612,12936 7612,12576 8657,12301 10025,12301 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 7612,12301 L 7612,12301 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 12439,13572 L 12439,13572 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="8384" y="13108"/><tspan class="TextPosition" x="8384" y="13108"><tspan fill="rgb(0,0,0)" stroke="none">generate_plots</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="4797" y="11452" width="302" height="850"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4977,11871 C 4977,11387 4954,11245 4947,11868"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 4945,12301 L 5097,11852 4797,11850 4945,12301 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="9827" y="11487" width="302" height="803"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9978,11859 C 9978,11436 9977,11298 9977,11857"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 9977,12289 L 10127,11839 9827,11839 9977,12289 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="11929" y="15044" width="1671" height="2043"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11930,15045 C 12957,15045 13350,15582 13451,16658"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 13470,17086 L 13599,16629 13299,16643 13470,17086 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="4974" y="15679" width="7846" height="2006"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4975,15680 C 4975,16917 7443,17500 12382,17534"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 12819,17535 L 12370,17383 12368,17683 12819,17535 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ConnectorShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="15074" y="3039" width="3534" height="14497"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15075,3040 C 15075,3524 16775,3443 17776,6946 18777,10449 19027,16449 17651,17410"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 17264,17535 L 17738,17533 17642,17249 17264,17535 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="499" y="499" width="20003" height="6"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 500,503 L 553,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 606,503 L 659,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 712,503 L 765,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 819,503 L 872,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 925,503 L 978,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1031,503 L 1084,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1137,503 L 1190,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1243,503 L 1296,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1349,503 L 1403,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1456,503 L 1509,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1562,503 L 1615,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1668,503 L 1721,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1774,503 L 1827,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1880,503 L 1933,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1987,503 L 2040,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2093,503 L 2146,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2199,503 L 2252,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2305,503 L 2358,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2411,503 L 2464,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2517,503 L 2571,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2624,503 L 2677,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2730,503 L 2783,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2836,503 L 2889,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2942,503 L 2995,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3048,503 L 3101,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3155,503 L 3208,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3261,503 L 3314,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3367,503 L 3420,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3473,503 L 3526,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3579,503 L 3632,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3685,503 L 3739,503"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3792,503 L 3845,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3898,502 L 3951,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4004,502 L 4057,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4110,502 L 4163,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4216,502 L 4269,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4323,502 L 4376,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4429,502 L 4482,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4535,502 L 4588,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4641,502 L 4694,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4747,502 L 4800,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4854,502 L 4907,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4960,502 L 5013,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5066,502 L 5119,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5172,502 L 5225,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5278,502 L 5331,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5384,502 L 5438,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5491,502 L 5544,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5597,502 L 5650,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5703,502 L 5756,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5809,502 L 5862,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5915,502 L 5968,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6022,502 L 6075,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6128,502 L 6181,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6234,502 L 6287,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6340,502 L 6393,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6446,502 L 6499,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6552,502 L 6606,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6659,502 L 6712,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6765,502 L 6818,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6871,502 L 6924,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6977,502 L 7030,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7083,502 L 7136,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7190,502 L 7243,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7296,502 L 7349,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7402,502 L 7455,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7508,502 L 7561,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7614,502 L 7667,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7720,502 L 7774,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7827,502 L 7880,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7933,502 L 7986,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8039,502 L 8092,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8145,502 L 8198,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8251,502 L 8304,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8358,502 L 8411,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8464,502 L 8517,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8570,502 L 8623,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8676,502 L 8729,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8782,502 L 8835,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8888,502 L 8942,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8995,502 L 9048,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9101,502 L 9154,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9207,502 L 9260,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9313,502 L 9366,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9419,502 L 9472,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9526,502 L 9579,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9632,502 L 9685,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9738,502 L 9791,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9844,502 L 9897,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9950,502 L 10003,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10056,502 L 10110,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10163,502 L 10216,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10269,502 L 10322,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10375,502 L 10428,502"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10481,502 L 10534,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10587,501 L 10640,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10694,501 L 10747,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10800,501 L 10853,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10906,501 L 10959,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11012,501 L 11065,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11118,501 L 11171,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11224,501 L 11278,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11331,501 L 11384,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11437,501 L 11490,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11543,501 L 11596,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11649,501 L 11702,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11755,501 L 11808,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11862,501 L 11915,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11968,501 L 12021,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12074,501 L 12127,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12180,501 L 12233,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12286,501 L 12339,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12392,501 L 12446,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12499,501 L 12552,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12605,501 L 12658,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12711,501 L 12764,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12817,501 L 12870,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12923,501 L 12977,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13030,501 L 13083,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13136,501 L 13189,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13242,501 L 13295,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13348,501 L 13401,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13454,501 L 13507,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13561,501 L 13614,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13667,501 L 13720,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13773,501 L 13826,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13879,501 L 13932,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13985,501 L 14038,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14091,501 L 14145,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14198,501 L 14251,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14304,501 L 14357,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14410,501 L 14463,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14516,501 L 14569,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14622,501 L 14675,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14729,501 L 14782,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14835,501 L 14888,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14941,501 L 14994,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15047,501 L 15100,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15153,501 L 15206,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15259,501 L 15313,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15366,501 L 15419,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15472,501 L 15525,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15578,501 L 15631,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15684,501 L 15737,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15790,501 L 15843,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15897,501 L 15950,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16003,501 L 16056,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16109,501 L 16162,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16215,501 L 16268,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16321,501 L 16374,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16427,501 L 16481,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16534,501 L 16587,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16640,501 L 16693,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16746,501 L 16799,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16852,501 L 16905,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16958,501 L 17011,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17065,501 L 17118,501"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17171,500 L 17224,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17277,500 L 17330,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17383,500 L 17436,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17489,500 L 17542,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17595,500 L 17649,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17702,500 L 17755,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17808,500 L 17861,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17914,500 L 17967,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18020,500 L 18073,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18126,500 L 18179,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18233,500 L 18286,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18339,500 L 18392,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18445,500 L 18498,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18551,500 L 18604,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18657,500 L 18710,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18763,500 L 18817,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18870,500 L 18923,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18976,500 L 19029,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19082,500 L 19135,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19188,500 L 19241,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19294,500 L 19347,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19401,500 L 19454,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19507,500 L 19560,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19613,500 L 19666,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19719,500 L 19772,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19825,500 L 19878,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19931,500 L 19985,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20038,500 L 20091,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20144,500 L 20197,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20250,500 L 20303,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20356,500 L 20409,500"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20462,500 L 20500,500"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="499" y="3600" width="20003" height="6"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 500,3604 L 553,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 606,3604 L 659,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 712,3604 L 765,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 819,3604 L 872,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 925,3604 L 978,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1031,3604 L 1084,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1137,3604 L 1190,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1243,3604 L 1296,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1349,3604 L 1403,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1456,3604 L 1509,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1562,3604 L 1615,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1668,3604 L 1721,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1774,3604 L 1827,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1880,3604 L 1933,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1987,3604 L 2040,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2093,3604 L 2146,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2199,3604 L 2252,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2305,3604 L 2358,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2411,3604 L 2464,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2517,3604 L 2571,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2624,3604 L 2677,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2730,3604 L 2783,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2836,3604 L 2889,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2942,3604 L 2995,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3048,3604 L 3101,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3155,3604 L 3208,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3261,3604 L 3314,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3367,3604 L 3420,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3473,3604 L 3526,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3579,3604 L 3632,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3685,3604 L 3739,3604"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3792,3604 L 3845,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3898,3603 L 3951,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4004,3603 L 4057,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4110,3603 L 4163,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4216,3603 L 4269,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4323,3603 L 4376,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4429,3603 L 4482,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4535,3603 L 4588,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4641,3603 L 4694,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4747,3603 L 4800,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4854,3603 L 4907,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4960,3603 L 5013,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5066,3603 L 5119,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5172,3603 L 5225,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5278,3603 L 5331,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5384,3603 L 5438,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5491,3603 L 5544,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5597,3603 L 5650,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5703,3603 L 5756,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5809,3603 L 5862,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5915,3603 L 5968,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6022,3603 L 6075,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6128,3603 L 6181,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6234,3603 L 6287,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6340,3603 L 6393,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6446,3603 L 6499,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6552,3603 L 6606,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6659,3603 L 6712,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6765,3603 L 6818,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6871,3603 L 6924,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6977,3603 L 7030,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7083,3603 L 7136,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7190,3603 L 7243,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7296,3603 L 7349,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7402,3603 L 7455,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7508,3603 L 7561,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7614,3603 L 7667,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7720,3603 L 7774,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7827,3603 L 7880,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7933,3603 L 7986,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8039,3603 L 8092,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8145,3603 L 8198,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8251,3603 L 8304,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8358,3603 L 8411,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8464,3603 L 8517,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8570,3603 L 8623,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8676,3603 L 8729,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8782,3603 L 8835,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8888,3603 L 8942,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8995,3603 L 9048,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9101,3603 L 9154,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9207,3603 L 9260,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9313,3603 L 9366,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9419,3603 L 9472,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9526,3603 L 9579,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9632,3603 L 9685,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9738,3603 L 9791,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9844,3603 L 9897,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9950,3603 L 10003,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10056,3603 L 10110,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10163,3603 L 10216,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10269,3603 L 10322,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10375,3603 L 10428,3603"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10481,3603 L 10534,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10587,3602 L 10640,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10694,3602 L 10747,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10800,3602 L 10853,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10906,3602 L 10959,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11012,3602 L 11065,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11118,3602 L 11171,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11224,3602 L 11278,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11331,3602 L 11384,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11437,3602 L 11490,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11543,3602 L 11596,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11649,3602 L 11702,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11755,3602 L 11808,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11862,3602 L 11915,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11968,3602 L 12021,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12074,3602 L 12127,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12180,3602 L 12233,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12286,3602 L 12339,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12392,3602 L 12446,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12499,3602 L 12552,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12605,3602 L 12658,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12711,3602 L 12764,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12817,3602 L 12870,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12923,3602 L 12977,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13030,3602 L 13083,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13136,3602 L 13189,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13242,3602 L 13295,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13348,3602 L 13401,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13454,3602 L 13507,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13561,3602 L 13614,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13667,3602 L 13720,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13773,3602 L 13826,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13879,3602 L 13932,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13985,3602 L 14038,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14091,3602 L 14145,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14198,3602 L 14251,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14304,3602 L 14357,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14410,3602 L 14463,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14516,3602 L 14569,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14622,3602 L 14675,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14729,3602 L 14782,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14835,3602 L 14888,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14941,3602 L 14994,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15047,3602 L 15100,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15153,3602 L 15206,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15259,3602 L 15313,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15366,3602 L 15419,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15472,3602 L 15525,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15578,3602 L 15631,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15684,3602 L 15737,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15790,3602 L 15843,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15897,3602 L 15950,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16003,3602 L 16056,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16109,3602 L 16162,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16215,3602 L 16268,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16321,3602 L 16374,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16427,3602 L 16481,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16534,3602 L 16587,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16640,3602 L 16693,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16746,3602 L 16799,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16852,3602 L 16905,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16958,3602 L 17011,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17065,3602 L 17118,3602"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17171,3601 L 17224,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17277,3601 L 17330,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17383,3601 L 17436,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17489,3601 L 17542,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17595,3601 L 17649,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17702,3601 L 17755,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17808,3601 L 17861,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17914,3601 L 17967,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18020,3601 L 18073,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18126,3601 L 18179,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18233,3601 L 18286,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18339,3601 L 18392,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18445,3601 L 18498,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18551,3601 L 18604,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18657,3601 L 18710,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18763,3601 L 18817,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18870,3601 L 18923,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18976,3601 L 19029,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19082,3601 L 19135,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19188,3601 L 19241,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19294,3601 L 19347,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19401,3601 L 19454,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19507,3601 L 19560,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19613,3601 L 19666,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19719,3601 L 19772,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19825,3601 L 19878,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19931,3601 L 19985,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20038,3601 L 20091,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20144,3601 L 20197,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20250,3601 L 20303,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20356,3601 L 20409,3601"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20462,3601 L 20500,3601"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="499" y="11701" width="20003" height="6"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 500,11705 L 553,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 606,11705 L 659,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 712,11705 L 765,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 819,11705 L 872,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 925,11705 L 978,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1031,11705 L 1084,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1137,11705 L 1190,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1243,11705 L 1296,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1349,11705 L 1403,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1456,11705 L 1509,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1562,11705 L 1615,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1668,11705 L 1721,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1774,11705 L 1827,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1880,11705 L 1933,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1987,11705 L 2040,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2093,11705 L 2146,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2199,11705 L 2252,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2305,11705 L 2358,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2411,11705 L 2464,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2517,11705 L 2571,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2624,11705 L 2677,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2730,11705 L 2783,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2836,11705 L 2889,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2942,11705 L 2995,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3048,11705 L 3101,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3155,11705 L 3208,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3261,11705 L 3314,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3367,11705 L 3420,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3473,11705 L 3526,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3579,11705 L 3632,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3685,11705 L 3739,11705"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3792,11705 L 3845,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3898,11704 L 3951,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4004,11704 L 4057,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4110,11704 L 4163,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4216,11704 L 4269,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4323,11704 L 4376,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4429,11704 L 4482,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4535,11704 L 4588,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4641,11704 L 4694,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4747,11704 L 4800,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4854,11704 L 4907,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4960,11704 L 5013,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5066,11704 L 5119,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5172,11704 L 5225,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5278,11704 L 5331,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5384,11704 L 5438,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5491,11704 L 5544,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5597,11704 L 5650,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5703,11704 L 5756,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5809,11704 L 5862,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5915,11704 L 5968,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6022,11704 L 6075,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6128,11704 L 6181,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6234,11704 L 6287,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6340,11704 L 6393,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6446,11704 L 6499,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6552,11704 L 6606,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6659,11704 L 6712,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6765,11704 L 6818,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6871,11704 L 6924,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6977,11704 L 7030,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7083,11704 L 7136,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7190,11704 L 7243,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7296,11704 L 7349,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7402,11704 L 7455,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7508,11704 L 7561,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7614,11704 L 7667,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7720,11704 L 7774,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7827,11704 L 7880,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7933,11704 L 7986,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8039,11704 L 8092,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8145,11704 L 8198,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8251,11704 L 8304,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8358,11704 L 8411,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8464,11704 L 8517,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8570,11704 L 8623,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8676,11704 L 8729,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8782,11704 L 8835,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8888,11704 L 8942,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8995,11704 L 9048,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9101,11704 L 9154,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9207,11704 L 9260,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9313,11704 L 9366,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9419,11704 L 9472,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9526,11704 L 9579,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9632,11704 L 9685,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9738,11704 L 9791,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9844,11704 L 9897,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9950,11704 L 10003,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10056,11704 L 10110,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10163,11704 L 10216,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10269,11704 L 10322,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10375,11704 L 10428,11704"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10481,11704 L 10534,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10587,11703 L 10640,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10694,11703 L 10747,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10800,11703 L 10853,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10906,11703 L 10959,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11012,11703 L 11065,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11118,11703 L 11171,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11224,11703 L 11278,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11331,11703 L 11384,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11437,11703 L 11490,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11543,11703 L 11596,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11649,11703 L 11702,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11755,11703 L 11808,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11862,11703 L 11915,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11968,11703 L 12021,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12074,11703 L 12127,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12180,11703 L 12233,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12286,11703 L 12339,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12392,11703 L 12446,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12499,11703 L 12552,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12605,11703 L 12658,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12711,11703 L 12764,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12817,11703 L 12870,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12923,11703 L 12977,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13030,11703 L 13083,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13136,11703 L 13189,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13242,11703 L 13295,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13348,11703 L 13401,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13454,11703 L 13507,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13561,11703 L 13614,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13667,11703 L 13720,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13773,11703 L 13826,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13879,11703 L 13932,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13985,11703 L 14038,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14091,11703 L 14145,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14198,11703 L 14251,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14304,11703 L 14357,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14410,11703 L 14463,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14516,11703 L 14569,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14622,11703 L 14675,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14729,11703 L 14782,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14835,11703 L 14888,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14941,11703 L 14994,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15047,11703 L 15100,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15153,11703 L 15206,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15259,11703 L 15313,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15366,11703 L 15419,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15472,11703 L 15525,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15578,11703 L 15631,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15684,11703 L 15737,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15790,11703 L 15843,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15897,11703 L 15950,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16003,11703 L 16056,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16109,11703 L 16162,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16215,11703 L 16268,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16321,11703 L 16374,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16427,11703 L 16481,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16534,11703 L 16587,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16640,11703 L 16693,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16746,11703 L 16799,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16852,11703 L 16905,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16958,11703 L 17011,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17065,11703 L 17118,11703"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17171,11702 L 17224,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17277,11702 L 17330,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17383,11702 L 17436,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17489,11702 L 17542,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17595,11702 L 17649,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17702,11702 L 17755,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17808,11702 L 17861,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17914,11702 L 17967,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18020,11702 L 18073,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18126,11702 L 18179,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18233,11702 L 18286,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18339,11702 L 18392,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18445,11702 L 18498,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18551,11702 L 18604,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18657,11702 L 18710,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18763,11702 L 18817,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18870,11702 L 18923,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18976,11702 L 19029,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19082,11702 L 19135,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19188,11702 L 19241,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19294,11702 L 19347,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19401,11702 L 19454,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19507,11702 L 19560,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19613,11702 L 19666,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19719,11702 L 19772,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19825,11702 L 19878,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19931,11702 L 19985,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20038,11702 L 20091,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20144,11702 L 20197,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20250,11702 L 20303,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20356,11702 L 20409,11702"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20462,11702 L 20500,11702"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="499" y="21402" width="20003" height="6"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 500,21406 L 553,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 606,21406 L 659,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 712,21406 L 765,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 819,21406 L 872,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 925,21406 L 978,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1031,21406 L 1084,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1137,21406 L 1190,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1243,21406 L 1296,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1349,21406 L 1403,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1456,21406 L 1509,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1562,21406 L 1615,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1668,21406 L 1721,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1774,21406 L 1827,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1880,21406 L 1933,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1987,21406 L 2040,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2093,21406 L 2146,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2199,21406 L 2252,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2305,21406 L 2358,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2411,21406 L 2464,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2517,21406 L 2571,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2624,21406 L 2677,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2730,21406 L 2783,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2836,21406 L 2889,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2942,21406 L 2995,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3048,21406 L 3101,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3155,21406 L 3208,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3261,21406 L 3314,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3367,21406 L 3420,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3473,21406 L 3526,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3579,21406 L 3632,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3685,21406 L 3739,21406"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3792,21406 L 3845,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3898,21405 L 3951,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4004,21405 L 4057,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4110,21405 L 4163,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4216,21405 L 4269,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4323,21405 L 4376,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4429,21405 L 4482,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4535,21405 L 4588,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4641,21405 L 4694,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4747,21405 L 4800,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4854,21405 L 4907,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4960,21405 L 5013,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5066,21405 L 5119,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5172,21405 L 5225,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5278,21405 L 5331,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5384,21405 L 5438,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5491,21405 L 5544,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5597,21405 L 5650,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5703,21405 L 5756,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5809,21405 L 5862,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5915,21405 L 5968,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6022,21405 L 6075,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6128,21405 L 6181,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6234,21405 L 6287,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6340,21405 L 6393,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6446,21405 L 6499,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6552,21405 L 6606,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6659,21405 L 6712,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6765,21405 L 6818,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6871,21405 L 6924,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6977,21405 L 7030,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7083,21405 L 7136,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7190,21405 L 7243,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7296,21405 L 7349,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7402,21405 L 7455,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7508,21405 L 7561,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7614,21405 L 7667,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7720,21405 L 7774,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7827,21405 L 7880,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7933,21405 L 7986,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8039,21405 L 8092,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8145,21405 L 8198,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8251,21405 L 8304,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8358,21405 L 8411,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8464,21405 L 8517,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8570,21405 L 8623,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8676,21405 L 8729,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8782,21405 L 8835,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8888,21405 L 8942,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8995,21405 L 9048,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9101,21405 L 9154,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9207,21405 L 9260,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9313,21405 L 9366,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9419,21405 L 9472,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9526,21405 L 9579,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9632,21405 L 9685,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9738,21405 L 9791,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9844,21405 L 9897,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9950,21405 L 10003,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10056,21405 L 10110,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10163,21405 L 10216,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10269,21405 L 10322,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10375,21405 L 10428,21405"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10481,21405 L 10534,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10587,21404 L 10640,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10694,21404 L 10747,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10800,21404 L 10853,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10906,21404 L 10959,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11012,21404 L 11065,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11118,21404 L 11171,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11224,21404 L 11278,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11331,21404 L 11384,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11437,21404 L 11490,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11543,21404 L 11596,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11649,21404 L 11702,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11755,21404 L 11808,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11862,21404 L 11915,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11968,21404 L 12021,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12074,21404 L 12127,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12180,21404 L 12233,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12286,21404 L 12339,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12392,21404 L 12446,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12499,21404 L 12552,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12605,21404 L 12658,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12711,21404 L 12764,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12817,21404 L 12870,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12923,21404 L 12977,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13030,21404 L 13083,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13136,21404 L 13189,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13242,21404 L 13295,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13348,21404 L 13401,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13454,21404 L 13507,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13561,21404 L 13614,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13667,21404 L 13720,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13773,21404 L 13826,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13879,21404 L 13932,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13985,21404 L 14038,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14091,21404 L 14145,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14198,21404 L 14251,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14304,21404 L 14357,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14410,21404 L 14463,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14516,21404 L 14569,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14622,21404 L 14675,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14729,21404 L 14782,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14835,21404 L 14888,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14941,21404 L 14994,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15047,21404 L 15100,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15153,21404 L 15206,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15259,21404 L 15313,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15366,21404 L 15419,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15472,21404 L 15525,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15578,21404 L 15631,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15684,21404 L 15737,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15790,21404 L 15843,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15897,21404 L 15950,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16003,21404 L 16056,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16109,21404 L 16162,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16215,21404 L 16268,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16321,21404 L 16374,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16427,21404 L 16481,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16534,21404 L 16587,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16640,21404 L 16693,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16746,21404 L 16799,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16852,21404 L 16905,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16958,21404 L 17011,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17065,21404 L 17118,21404"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17171,21403 L 17224,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17277,21403 L 17330,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17383,21403 L 17436,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17489,21403 L 17542,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17595,21403 L 17649,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17702,21403 L 17755,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17808,21403 L 17861,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17914,21403 L 17967,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18020,21403 L 18073,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18126,21403 L 18179,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18233,21403 L 18286,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18339,21403 L 18392,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18445,21403 L 18498,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18551,21403 L 18604,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18657,21403 L 18710,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18763,21403 L 18817,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18870,21403 L 18923,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18976,21403 L 19029,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19082,21403 L 19135,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19188,21403 L 19241,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19294,21403 L 19347,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19401,21403 L 19454,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19507,21403 L 19560,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19613,21403 L 19666,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19719,21403 L 19772,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19825,21403 L 19878,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19931,21403 L 19985,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20038,21403 L 20091,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20144,21403 L 20197,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20250,21403 L 20303,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20356,21403 L 20409,21403"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20462,21403 L 20500,21403"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="499" y="26503" width="20003" height="6"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 500,26507 L 553,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 606,26507 L 659,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 712,26507 L 765,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 819,26507 L 872,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 925,26507 L 978,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1031,26507 L 1084,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1137,26507 L 1190,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1243,26507 L 1296,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1349,26507 L 1403,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1456,26507 L 1509,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1562,26507 L 1615,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1668,26507 L 1721,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1774,26507 L 1827,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1880,26507 L 1933,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 1987,26507 L 2040,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2093,26507 L 2146,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2199,26507 L 2252,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2305,26507 L 2358,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2411,26507 L 2464,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2517,26507 L 2571,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2624,26507 L 2677,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2730,26507 L 2783,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2836,26507 L 2889,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 2942,26507 L 2995,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3048,26507 L 3101,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3155,26507 L 3208,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3261,26507 L 3314,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3367,26507 L 3420,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3473,26507 L 3526,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3579,26507 L 3632,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3685,26507 L 3739,26507"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3792,26507 L 3845,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 3898,26506 L 3951,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4004,26506 L 4057,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4110,26506 L 4163,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4216,26506 L 4269,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4323,26506 L 4376,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4429,26506 L 4482,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4535,26506 L 4588,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4641,26506 L 4694,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4747,26506 L 4800,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4854,26506 L 4907,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 4960,26506 L 5013,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5066,26506 L 5119,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5172,26506 L 5225,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5278,26506 L 5331,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5384,26506 L 5438,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5491,26506 L 5544,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5597,26506 L 5650,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5703,26506 L 5756,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5809,26506 L 5862,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 5915,26506 L 5968,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6022,26506 L 6075,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6128,26506 L 6181,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6234,26506 L 6287,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6340,26506 L 6393,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6446,26506 L 6499,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6552,26506 L 6606,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6659,26506 L 6712,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6765,26506 L 6818,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6871,26506 L 6924,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 6977,26506 L 7030,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7083,26506 L 7136,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7190,26506 L 7243,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7296,26506 L 7349,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7402,26506 L 7455,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7508,26506 L 7561,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7614,26506 L 7667,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7720,26506 L 7774,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7827,26506 L 7880,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 7933,26506 L 7986,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8039,26506 L 8092,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8145,26506 L 8198,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8251,26506 L 8304,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8358,26506 L 8411,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8464,26506 L 8517,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8570,26506 L 8623,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8676,26506 L 8729,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8782,26506 L 8835,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8888,26506 L 8942,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 8995,26506 L 9048,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9101,26506 L 9154,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9207,26506 L 9260,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9313,26506 L 9366,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9419,26506 L 9472,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9526,26506 L 9579,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9632,26506 L 9685,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9738,26506 L 9791,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9844,26506 L 9897,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 9950,26506 L 10003,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10056,26506 L 10110,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10163,26506 L 10216,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10269,26506 L 10322,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10375,26506 L 10428,26506"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10481,26506 L 10534,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10587,26505 L 10640,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10694,26505 L 10747,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10800,26505 L 10853,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 10906,26505 L 10959,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11012,26505 L 11065,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11118,26505 L 11171,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11224,26505 L 11278,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11331,26505 L 11384,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11437,26505 L 11490,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11543,26505 L 11596,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11649,26505 L 11702,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11755,26505 L 11808,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11862,26505 L 11915,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 11968,26505 L 12021,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12074,26505 L 12127,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12180,26505 L 12233,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12286,26505 L 12339,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12392,26505 L 12446,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12499,26505 L 12552,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12605,26505 L 12658,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12711,26505 L 12764,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12817,26505 L 12870,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 12923,26505 L 12977,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13030,26505 L 13083,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13136,26505 L 13189,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13242,26505 L 13295,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13348,26505 L 13401,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13454,26505 L 13507,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13561,26505 L 13614,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13667,26505 L 13720,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13773,26505 L 13826,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13879,26505 L 13932,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 13985,26505 L 14038,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14091,26505 L 14145,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14198,26505 L 14251,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14304,26505 L 14357,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14410,26505 L 14463,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14516,26505 L 14569,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14622,26505 L 14675,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14729,26505 L 14782,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14835,26505 L 14888,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 14941,26505 L 14994,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15047,26505 L 15100,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15153,26505 L 15206,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15259,26505 L 15313,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15366,26505 L 15419,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15472,26505 L 15525,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15578,26505 L 15631,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15684,26505 L 15737,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15790,26505 L 15843,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 15897,26505 L 15950,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16003,26505 L 16056,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16109,26505 L 16162,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16215,26505 L 16268,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16321,26505 L 16374,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16427,26505 L 16481,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16534,26505 L 16587,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16640,26505 L 16693,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16746,26505 L 16799,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16852,26505 L 16905,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 16958,26505 L 17011,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17065,26505 L 17118,26505"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17171,26504 L 17224,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17277,26504 L 17330,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17383,26504 L 17436,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17489,26504 L 17542,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17595,26504 L 17649,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17702,26504 L 17755,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17808,26504 L 17861,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 17914,26504 L 17967,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18020,26504 L 18073,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18126,26504 L 18179,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18233,26504 L 18286,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18339,26504 L 18392,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18445,26504 L 18498,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18551,26504 L 18604,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18657,26504 L 18710,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18763,26504 L 18817,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18870,26504 L 18923,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 18976,26504 L 19029,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19082,26504 L 19135,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19188,26504 L 19241,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19294,26504 L 19347,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19401,26504 L 19454,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19507,26504 L 19560,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19613,26504 L 19666,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19719,26504 L 19772,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19825,26504 L 19878,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 19931,26504 L 19985,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20038,26504 L 20091,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20144,26504 L 20197,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20250,26504 L 20303,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20356,26504 L 20409,26504"/>
- <path fill="none" stroke="rgb(0,0,0)" d="M 20462,26504 L 20500,26504"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="500" y="554" width="5081" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="750" y="1128"/><tspan class="TextPosition" x="750" y="1128"><tspan fill="rgb(0,0,0)" stroke="none">sL1 - Data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="500" y="8554" width="4827" height="1362"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="750" y="9128"/><tspan class="TextPosition" x="750" y="9128"><tspan fill="rgb(0,0,0)" stroke="none">sL2 - Data </tspan></tspan><tspan class="TextPosition" x="750" y="9683"/><tspan class="TextPosition" x="750" y="9683"><tspan fill="rgb(0,0,0)" stroke="none">processing</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="500" y="19754" width="5081" height="1362"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="750" y="20328"/><tspan class="TextPosition" x="750" y="20328"><tspan fill="rgb(0,0,0)" stroke="none">sL3 - Data </tspan></tspan><tspan class="TextPosition" x="750" y="20883"/><tspan class="TextPosition" x="750" y="20883"><tspan fill="rgb(0,0,0)" stroke="none">presentation</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="500" y="24554" width="5081" height="1362"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="750" y="25128"/><tspan class="TextPosition" x="750" y="25128"><tspan fill="rgb(0,0,0)" stroke="none">sL4 - Report </tspan></tspan><tspan class="TextPosition" x="750" y="25683"/><tspan class="TextPosition" x="750" y="25683"><tspan fill="rgb(0,0,0)" stroke="none">generation</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/resources/tools/presentation/doc/pal_layers.svg b/resources/tools/presentation/doc/pal_layers.svg
deleted file mode 100644
index dfb05d3106..0000000000
--- a/resources/tools/presentation/doc/pal_layers.svg
+++ /dev/null
@@ -1,441 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<svg version="1.2" baseProfile="tiny" width="215.9mm" height="152.4mm" viewBox="0 0 21590 15240" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="21590" height="15240"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="→" horiz-adv-x="1218" d="M 1407,637 C 1388,660 1368,687 1349,720 1329,753 1309,791 1288,834 L 1360,834 C 1399,789 1440,747 1483,710 1526,673 1575,640 1630,612 L 1630,576 C 1575,548 1526,515 1483,478 1440,441 1399,399 1360,354 L 1288,354 C 1309,397 1329,435 1349,468 1368,501 1388,528 1407,551 L 418,551 418,637 1407,637 Z"/>
- <glyph unicode="y" horiz-adv-x="1059" d="M 604,1 C 579,-64 553,-123 527,-175 500,-227 471,-272 438,-309 405,-346 369,-374 329,-394 289,-413 243,-423 191,-423 168,-423 147,-423 128,-423 109,-423 88,-420 67,-414 L 67,-279 C 80,-282 94,-284 110,-284 126,-284 140,-284 151,-284 204,-284 253,-264 298,-225 343,-186 383,-123 417,-37 L 434,6 5,1082 197,1082 425,484 C 432,466 440,442 451,412 461,382 471,352 482,322 492,292 501,265 509,241 517,217 522,202 523,196 525,203 530,218 538,240 545,261 554,285 564,312 573,339 583,366 593,393 603,420 611,444 618,464 L 830,1082 1020,1082 604,1 Z"/>
- <glyph unicode="x" horiz-adv-x="1033" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/>
- <glyph unicode="v" horiz-adv-x="1059" d="M 613,0 L 400,0 7,1082 199,1082 437,378 C 442,363 447,346 454,325 460,304 466,282 473,259 480,236 486,215 492,194 497,173 502,155 506,141 510,155 515,173 522,194 528,215 534,236 541,258 548,280 555,302 562,323 569,344 575,361 580,376 L 826,1082 1017,1082 613,0 Z"/>
- <glyph unicode="u" horiz-adv-x="901" d="M 314,1082 L 314,396 C 314,343 318,299 326,264 333,229 346,200 363,179 380,157 403,142 432,133 460,124 495,119 537,119 580,119 618,127 653,142 687,157 716,178 741,207 765,235 784,270 797,312 810,353 817,401 817,455 L 817,1082 997,1082 997,231 C 997,208 997,185 998,160 998,135 998,111 999,89 1000,66 1000,47 1001,31 1002,15 1002,5 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 827,116 826,136 825,155 825,172 825,185 L 822,185 C 805,154 786,125 765,100 744,75 720,53 693,36 666,18 634,4 599,-6 564,-15 523,-20 476,-20 416,-20 364,-13 321,2 278,17 242,39 214,70 186,101 166,140 153,188 140,236 133,294 133,361 L 133,1082 314,1082 Z"/>
- <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 527,1 499,-5 471,-10 442,-14 409,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 467,127 484,128 501,131 517,134 535,137 554,141 L 554,8 Z"/>
- <glyph unicode="s" horiz-adv-x="927" d="M 950,299 C 950,248 940,203 921,164 901,124 872,91 835,64 798,37 752,16 698,2 643,-13 581,-20 511,-20 448,-20 392,-15 342,-6 291,4 247,20 209,41 171,62 139,91 114,126 88,161 69,203 57,254 L 216,285 C 231,227 263,185 311,158 359,131 426,117 511,117 550,117 585,120 618,125 650,130 678,140 701,153 724,166 743,183 756,205 769,226 775,253 775,285 775,318 767,345 752,366 737,387 715,404 688,418 661,432 628,444 589,455 550,465 507,476 460,489 417,500 374,513 331,527 288,541 250,560 216,583 181,606 153,634 132,668 111,702 100,745 100,796 100,895 135,970 206,1022 276,1073 378,1099 513,1099 632,1099 727,1078 798,1036 868,994 912,927 931,834 L 769,814 C 763,842 752,866 736,885 720,904 701,919 678,931 655,942 630,951 602,956 573,961 544,963 513,963 432,963 372,951 333,926 294,901 275,864 275,814 275,785 282,761 297,742 311,723 331,707 357,694 382,681 413,669 449,660 485,650 525,640 568,629 597,622 626,614 656,606 686,597 715,587 744,576 772,564 799,550 824,535 849,519 870,500 889,478 908,456 923,430 934,401 945,372 950,338 950,299 Z"/>
- <glyph unicode="r" horiz-adv-x="556" d="M 142,0 L 142,830 C 142,853 142,876 142,900 141,923 141,946 140,968 139,990 139,1011 138,1030 137,1049 137,1067 136,1082 L 306,1082 C 307,1067 308,1049 309,1030 310,1010 311,990 312,969 313,948 313,929 314,910 314,891 314,874 314,861 L 318,861 C 331,902 344,938 359,969 373,999 390,1024 409,1044 428,1063 451,1078 478,1088 505,1097 537,1102 575,1102 590,1102 604,1101 617,1099 630,1096 641,1094 648,1092 L 648,927 C 636,930 622,933 606,935 590,936 572,937 552,937 511,937 476,928 447,909 418,890 394,865 376,832 357,799 344,759 335,714 326,668 322,618 322,564 L 322,0 142,0 Z"/>
- <glyph unicode="p" horiz-adv-x="953" d="M 1053,546 C 1053,464 1046,388 1033,319 1020,250 998,190 967,140 936,90 895,51 844,23 793,-6 730,-20 655,-20 578,-20 510,-5 452,24 394,53 350,101 319,168 L 314,168 C 315,167 315,161 316,150 316,139 316,126 317,110 317,94 317,76 318,57 318,37 318,17 318,-2 L 318,-425 138,-425 138,861 C 138,887 138,912 138,936 137,960 137,982 136,1002 135,1021 135,1038 134,1052 133,1066 133,1076 132,1082 L 306,1082 C 307,1080 308,1073 309,1061 310,1049 311,1035 312,1018 313,1001 314,982 315,963 316,944 316,925 316,908 L 320,908 C 337,943 356,972 377,997 398,1021 423,1041 450,1057 477,1072 508,1084 542,1091 575,1098 613,1101 655,1101 730,1101 793,1088 844,1061 895,1034 936,997 967,949 998,900 1020,842 1033,774 1046,705 1053,629 1053,546 Z M 864,542 C 864,609 860,668 852,720 844,772 830,816 811,852 791,888 765,915 732,934 699,953 658,962 609,962 569,962 531,956 496,945 461,934 430,912 404,880 377,848 356,804 341,748 326,691 318,618 318,528 318,451 324,387 337,334 350,281 368,238 393,205 417,172 447,149 483,135 519,120 560,113 607,113 657,113 699,123 732,142 765,161 791,189 811,226 830,263 844,308 852,361 860,414 864,474 864,542 Z"/>
- <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 490,-20 422,-9 363,14 304,37 254,71 213,118 172,165 140,223 119,294 97,364 86,447 86,542 86,915 248,1102 571,1102 655,1102 728,1090 789,1067 850,1044 900,1009 939,962 978,915 1006,857 1025,787 1044,717 1053,635 1053,542 Z M 864,542 C 864,626 858,695 845,750 832,805 813,848 788,881 763,914 732,937 696,950 660,963 619,969 574,969 528,969 487,962 450,949 413,935 381,912 355,879 329,846 309,802 296,747 282,692 275,624 275,542 275,458 282,389 297,334 312,279 332,235 358,202 383,169 414,146 449,133 484,120 522,113 563,113 609,113 651,120 688,133 725,146 757,168 783,201 809,234 829,278 843,333 857,388 864,458 864,542 Z"/>
- <glyph unicode="n" horiz-adv-x="900" d="M 825,0 L 825,686 C 825,739 821,783 814,818 806,853 793,882 776,904 759,925 736,941 708,950 679,959 644,963 602,963 559,963 521,956 487,941 452,926 423,904 399,876 374,847 355,812 342,771 329,729 322,681 322,627 L 322,0 142,0 142,851 C 142,874 142,898 142,923 141,948 141,971 140,994 139,1016 139,1035 138,1051 137,1067 137,1077 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 312,966 313,947 314,927 314,910 314,897 L 317,897 C 334,928 353,957 374,982 395,1007 419,1029 446,1047 473,1064 505,1078 540,1088 575,1097 616,1102 663,1102 723,1102 775,1095 818,1080 861,1065 897,1043 925,1012 953,981 974,942 987,894 1000,845 1006,788 1006,721 L 1006,0 825,0 Z"/>
- <glyph unicode="m" horiz-adv-x="1456" d="M 768,0 L 768,686 C 768,739 765,783 758,818 751,853 740,882 725,904 709,925 688,941 663,950 638,959 607,963 570,963 532,963 498,956 467,941 436,926 410,904 389,876 367,847 350,812 339,771 327,729 321,681 321,627 L 321,0 142,0 142,851 C 142,874 142,898 142,923 141,948 141,971 140,994 139,1016 139,1035 138,1051 137,1067 137,1077 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 312,966 313,947 314,927 314,910 314,897 L 317,897 C 333,928 350,957 369,982 388,1007 410,1029 435,1047 460,1064 488,1078 521,1088 553,1097 590,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 946,928 964,957 984,982 1004,1007 1027,1029 1054,1047 1081,1064 1111,1078 1144,1088 1177,1097 1215,1102 1258,1102 1313,1102 1360,1095 1400,1080 1439,1065 1472,1043 1497,1012 1522,981 1541,942 1553,894 1565,845 1571,788 1571,721 L 1571,0 1393,0 1393,686 C 1393,739 1390,783 1383,818 1376,853 1365,882 1350,904 1334,925 1313,941 1288,950 1263,959 1232,963 1195,963 1157,963 1123,956 1092,942 1061,927 1035,906 1014,878 992,850 975,815 964,773 952,731 946,682 946,627 L 946,0 768,0 Z"/>
- <glyph unicode="l" horiz-adv-x="187" d="M 138,0 L 138,1484 318,1484 318,0 138,0 Z"/>
- <glyph unicode="k" horiz-adv-x="927" d="M 816,0 L 450,494 318,385 318,0 138,0 138,1484 318,1484 318,557 793,1082 1004,1082 565,617 1027,0 816,0 Z"/>
- <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/>
- <glyph unicode="h" horiz-adv-x="874" d="M 317,897 C 337,934 359,965 382,991 405,1016 431,1037 459,1054 487,1071 518,1083 551,1091 584,1098 622,1102 663,1102 732,1102 789,1093 834,1074 878,1055 913,1029 939,996 964,962 982,922 992,875 1001,828 1006,777 1006,721 L 1006,0 825,0 825,686 C 825,732 822,772 817,807 811,842 800,871 784,894 768,917 745,934 716,946 687,957 649,963 602,963 559,963 521,955 487,940 452,925 423,903 399,875 374,847 355,813 342,773 329,733 322,688 322,638 L 322,0 142,0 142,1484 322,1484 322,1098 C 322,1076 322,1054 321,1032 320,1010 320,990 319,971 318,952 317,937 316,924 315,911 315,902 314,897 L 317,897 Z"/>
- <glyph unicode="g" horiz-adv-x="954" d="M 548,-425 C 486,-425 431,-419 383,-406 335,-393 294,-375 260,-352 226,-328 198,-300 177,-267 156,-234 140,-198 131,-158 L 312,-132 C 324,-182 351,-220 392,-248 433,-274 486,-288 553,-288 594,-288 631,-282 664,-271 697,-260 726,-241 749,-217 772,-191 790,-159 803,-119 816,-79 822,-30 822,27 L 822,201 820,201 C 807,174 790,148 771,123 751,98 727,75 699,56 670,37 637,21 600,10 563,-2 520,-8 472,-8 403,-8 345,4 296,27 247,50 207,84 176,130 145,176 122,233 108,302 93,370 86,449 86,539 86,626 93,704 108,773 122,842 145,901 178,950 210,998 252,1035 304,1061 355,1086 418,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,914 825,932 826,953 827,974 828,993 829,1012 830,1030 831,1046 832,1059 833,1072 835,1080 836,1082 L 1007,1082 C 1006,1076 1006,1066 1005,1052 1004,1037 1004,1020 1003,1000 1002,980 1002,958 1002,934 1001,909 1001,884 1001,858 L 1001,31 C 1001,-120 964,-234 890,-311 815,-387 701,-425 548,-425 Z M 822,541 C 822,616 814,681 798,735 781,788 760,832 733,866 706,900 676,925 642,941 607,957 572,965 536,965 490,965 451,957 418,941 385,925 357,900 336,866 314,831 298,787 288,734 277,680 272,616 272,541 272,463 277,398 288,345 298,292 314,249 335,216 356,183 383,160 416,146 449,132 488,125 533,125 569,125 604,133 639,148 673,163 704,188 731,221 758,254 780,297 797,350 814,403 822,466 822,541 Z"/>
- <glyph unicode="f" horiz-adv-x="557" d="M 361,951 L 361,0 181,0 181,951 29,951 29,1082 181,1082 181,1204 C 181,1243 185,1280 192,1314 199,1347 213,1377 233,1402 252,1427 279,1446 313,1461 347,1475 391,1482 445,1482 466,1482 489,1481 512,1479 535,1477 555,1474 572,1470 L 572,1333 C 561,1335 548,1337 533,1339 518,1340 504,1341 492,1341 465,1341 444,1337 427,1330 410,1323 396,1312 387,1299 377,1285 370,1268 367,1248 363,1228 361,1205 361,1179 L 361,1082 572,1082 572,951 361,951 Z"/>
- <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,446 282,394 294,347 305,299 323,258 348,224 372,189 403,163 441,144 479,125 525,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 1008,206 992,176 972,146 951,115 924,88 890,64 856,39 814,19 763,4 712,-12 650,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,649 100,735 125,806 150,876 185,933 229,977 273,1021 324,1053 383,1073 442,1092 504,1102 571,1102 662,1102 738,1087 799,1058 860,1029 909,988 946,937 983,885 1009,824 1025,754 1040,684 1048,608 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 538,969 507,964 474,955 441,945 410,928 382,903 354,878 330,845 311,803 292,760 281,706 278,641 L 862,641 Z"/>
- <glyph unicode="d" horiz-adv-x="954" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 C 823,921 823,931 823,946 822,960 822,975 822,991 821,1006 821,1021 821,1035 821,1049 821,1059 821,1065 L 821,1484 1001,1484 1001,223 C 1001,197 1001,172 1002,148 1002,124 1002,102 1003,82 1004,62 1004,45 1005,31 1006,16 1006,6 1007,0 L 835,0 C 834,7 833,16 832,29 831,41 830,55 829,71 828,87 827,104 826,122 825,139 825,157 825,174 L 821,174 Z M 275,542 C 275,467 280,403 289,350 298,297 313,253 334,219 355,184 381,159 413,143 445,127 484,119 530,119 577,119 619,127 656,142 692,157 722,182 747,217 771,251 789,296 802,351 815,406 821,474 821,554 821,631 815,696 802,749 789,802 771,844 746,877 721,910 691,933 656,948 620,962 579,969 532,969 488,969 450,961 418,946 386,931 359,906 338,872 317,838 301,794 291,740 280,685 275,619 275,542 Z"/>
- <glyph unicode="c" horiz-adv-x="875" d="M 275,546 C 275,484 280,427 289,375 298,323 313,278 334,241 355,203 384,174 419,153 454,132 497,122 548,122 612,122 666,139 709,173 752,206 778,258 788,328 L 970,328 C 964,283 951,239 931,197 911,155 884,118 850,86 815,54 773,28 724,9 675,-10 618,-20 553,-20 468,-20 396,-6 337,23 278,52 230,91 193,142 156,192 129,251 112,320 95,388 87,462 87,542 87,615 93,679 105,735 117,790 134,839 156,881 177,922 203,957 232,986 261,1014 293,1037 328,1054 362,1071 398,1083 436,1091 474,1098 512,1102 551,1102 612,1102 666,1094 713,1077 760,1060 801,1038 836,1009 870,980 898,945 919,906 940,867 955,824 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 495,961 452,953 418,936 383,919 355,893 334,859 313,824 298,781 289,729 280,677 275,616 275,546 Z"/>
- <glyph unicode="b" horiz-adv-x="953" d="M 1053,546 C 1053,169 920,-20 655,-20 573,-20 505,-5 451,25 396,54 352,102 318,168 L 316,168 C 316,151 316,133 315,114 314,95 313,78 312,62 311,46 310,32 309,21 308,10 307,3 306,0 L 132,0 C 133,6 133,16 134,31 135,45 135,62 136,82 137,102 137,124 138,148 138,172 138,197 138,223 L 138,1484 318,1484 318,1061 C 318,1041 318,1022 318,1004 317,985 317,969 316,955 315,938 315,923 314,908 L 318,908 C 351,977 396,1027 451,1057 506,1087 574,1102 655,1102 792,1102 892,1056 957,964 1021,872 1053,733 1053,546 Z M 864,540 C 864,615 859,679 850,732 841,785 826,829 805,864 784,898 758,923 726,939 694,955 655,963 609,963 562,963 520,955 484,940 447,925 417,900 393,866 368,832 350,787 337,732 324,677 318,609 318,529 318,452 324,387 337,334 350,281 368,239 393,206 417,173 447,149 483,135 519,120 560,113 607,113 651,113 689,121 721,136 753,151 780,176 801,210 822,244 838,288 849,343 859,397 864,463 864,540 Z"/>
- <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,124 87,203 87,303 87,375 101,434 128,480 155,526 190,562 234,588 277,614 327,632 383,642 439,652 496,657 554,657 L 797,657 797,717 C 797,762 792,800 783,832 774,863 759,889 740,908 721,928 697,942 668,951 639,960 604,965 565,965 530,965 499,963 471,958 443,953 419,944 398,931 377,918 361,900 348,878 335,855 327,827 323,793 L 135,810 C 142,853 154,892 173,928 192,963 218,994 253,1020 287,1046 330,1066 382,1081 433,1095 496,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1090,111 1100,112 1110,113 1120,114 1130,116 1139,118 L 1139,6 C 1116,1 1094,-3 1072,-6 1049,-9 1025,-10 1000,-10 966,-10 937,-5 913,4 888,13 868,26 853,45 838,63 826,86 818,113 810,140 805,171 803,207 L 797,207 C 778,172 757,141 734,113 711,85 684,61 653,42 622,22 588,7 549,-4 510,-15 465,-20 414,-20 Z M 455,115 C 512,115 563,125 606,146 649,167 684,194 713,226 741,259 762,294 776,332 790,371 797,408 797,443 L 797,531 600,531 C 556,531 514,528 475,522 435,517 400,506 370,489 340,472 316,449 299,418 281,388 272,349 272,300 272,241 288,195 320,163 351,131 396,115 455,115 Z"/>
- <glyph unicode="Z" horiz-adv-x="1139" d="M 1187,0 L 65,0 65,143 923,1253 138,1253 138,1409 1140,1409 1140,1270 282,156 1187,156 1187,0 Z"/>
- <glyph unicode="Y" horiz-adv-x="1244" d="M 777,584 L 777,0 587,0 587,584 45,1409 255,1409 684,738 1111,1409 1321,1409 777,584 Z"/>
- <glyph unicode="X" horiz-adv-x="1324" d="M 1112,0 L 689,616 257,0 46,0 582,732 87,1409 298,1409 690,856 1071,1409 1282,1409 800,739 1323,0 1112,0 Z"/>
- <glyph unicode="T" horiz-adv-x="1139" d="M 720,1253 L 720,0 530,0 530,1253 46,1253 46,1409 1204,1409 1204,1253 720,1253 Z"/>
- <glyph unicode="S" horiz-adv-x="1139" d="M 1272,389 C 1272,330 1261,275 1238,225 1215,175 1179,132 1131,96 1083,59 1023,31 950,11 877,-10 790,-20 690,-20 515,-20 378,11 280,72 182,133 120,222 93,338 L 278,375 C 287,338 302,305 321,275 340,245 367,219 400,198 433,176 473,159 522,147 571,135 629,129 697,129 754,129 806,134 853,144 900,153 941,168 975,188 1009,208 1036,234 1055,266 1074,297 1083,335 1083,379 1083,425 1073,462 1052,491 1031,520 1001,543 963,562 925,581 880,596 827,609 774,622 716,635 652,650 613,659 573,668 534,679 494,689 456,701 420,716 383,730 349,747 317,766 285,785 257,809 234,836 211,863 192,894 179,930 166,965 159,1006 159,1053 159,1120 173,1177 200,1225 227,1272 264,1311 312,1342 360,1373 417,1395 482,1409 547,1423 618,1430 694,1430 781,1430 856,1423 918,1410 980,1396 1032,1375 1075,1348 1118,1321 1152,1287 1178,1247 1203,1206 1224,1159 1239,1106 L 1051,1073 C 1042,1107 1028,1137 1011,1164 993,1191 970,1213 941,1231 912,1249 878,1263 837,1272 796,1281 747,1286 692,1286 627,1286 572,1280 528,1269 483,1257 448,1241 421,1221 394,1201 374,1178 363,1151 351,1124 345,1094 345,1063 345,1021 356,987 377,960 398,933 426,910 462,892 498,874 540,859 587,847 634,835 685,823 738,811 781,801 825,791 868,781 911,770 952,758 991,744 1030,729 1067,712 1102,693 1136,674 1166,650 1191,622 1216,594 1236,561 1251,523 1265,485 1272,440 1272,389 Z"/>
- <glyph unicode="R" horiz-adv-x="1218" d="M 1164,0 L 798,585 359,585 359,0 168,0 168,1409 831,1409 C 911,1409 982,1400 1044,1382 1105,1363 1157,1337 1199,1302 1241,1267 1273,1225 1295,1175 1317,1125 1328,1069 1328,1006 1328,961 1322,917 1309,874 1296,831 1275,791 1247,755 1219,719 1183,688 1140,662 1097,636 1045,618 984,607 L 1384,0 1164,0 Z M 1136,1004 C 1136,1047 1129,1084 1114,1115 1099,1146 1078,1173 1050,1194 1022,1215 988,1230 948,1241 908,1251 863,1256 812,1256 L 359,1256 359,736 820,736 C 875,736 922,743 962,757 1002,770 1035,789 1061,813 1086,837 1105,865 1118,898 1130,931 1136,966 1136,1004 Z"/>
- <glyph unicode="P" horiz-adv-x="1086" d="M 1258,985 C 1258,924 1248,867 1228,814 1207,761 1177,715 1137,676 1096,637 1046,606 985,583 924,560 854,549 773,549 L 359,549 359,0 168,0 168,1409 761,1409 C 844,1409 917,1399 979,1379 1041,1358 1093,1330 1134,1293 1175,1256 1206,1211 1227,1159 1248,1106 1258,1048 1258,985 Z M 1066,983 C 1066,1072 1039,1140 984,1187 929,1233 847,1256 738,1256 L 359,1256 359,700 746,700 C 856,700 937,724 989,773 1040,822 1066,892 1066,983 Z"/>
- <glyph unicode="O" horiz-adv-x="1377" d="M 1495,711 C 1495,601 1479,501 1448,411 1416,321 1370,244 1310,180 1250,116 1177,67 1090,32 1003,-3 905,-20 795,-20 679,-20 577,-2 490,35 403,71 330,122 272,187 214,252 170,329 141,418 112,507 97,605 97,711 97,821 112,920 143,1009 174,1098 219,1173 278,1236 337,1298 411,1346 498,1380 585,1413 684,1430 797,1430 909,1430 1009,1413 1096,1379 1183,1345 1256,1297 1315,1234 1374,1171 1418,1096 1449,1007 1480,918 1495,820 1495,711 Z M 1300,711 C 1300,796 1289,873 1268,942 1246,1011 1214,1071 1172,1120 1129,1169 1077,1207 1014,1234 951,1261 879,1274 797,1274 713,1274 639,1261 576,1234 513,1207 460,1169 418,1120 375,1071 344,1011 323,942 302,873 291,796 291,711 291,626 302,549 324,479 345,408 377,348 420,297 462,246 515,206 578,178 641,149 713,135 795,135 883,135 959,149 1023,178 1086,207 1139,247 1180,298 1221,349 1251,409 1271,480 1290,551 1300,628 1300,711 Z"/>
- <glyph unicode="N" horiz-adv-x="1138" d="M 1082,0 L 328,1200 C 329,1167 331,1135 333,1103 334,1076 336,1047 337,1017 338,986 338,959 338,936 L 338,0 168,0 168,1409 390,1409 1152,201 C 1150,234 1148,266 1146,299 1145,327 1143,358 1142,391 1141,424 1140,455 1140,485 L 1140,1409 1312,1409 1312,0 1082,0 Z"/>
- <glyph unicode="M" horiz-adv-x="1324" d="M 1366,0 L 1366,940 C 1366,974 1366,1009 1367,1044 1368,1079 1369,1112 1370,1141 1371,1175 1373,1208 1375,1240 1366,1206 1356,1172 1346,1139 1337,1110 1328,1080 1318,1048 1307,1015 1297,986 1287,960 L 923,0 789,0 420,960 C 416,970 412,982 408,995 403,1008 399,1023 394,1038 389,1053 384,1068 379,1084 374,1099 369,1115 364,1130 353,1165 342,1202 331,1240 332,1203 333,1166 334,1129 335,1098 336,1065 337,1031 338,996 338,966 338,940 L 338,0 168,0 168,1409 419,1409 794,432 C 799,419 804,402 811,381 818,360 824,338 830,316 836,294 842,273 847,254 852,234 855,219 857,208 859,219 863,234 868,254 873,274 880,295 887,317 894,339 900,360 907,381 914,402 920,419 925,432 L 1293,1409 1538,1409 1538,0 1366,0 Z"/>
- <glyph unicode="L" horiz-adv-x="900" d="M 168,0 L 168,1409 359,1409 359,156 1071,156 1071,0 168,0 Z"/>
- <glyph unicode="J" horiz-adv-x="848" d="M 457,-20 C 343,-20 250,10 177,69 104,128 55,222 32,350 L 219,381 C 226,338 237,301 252,270 267,239 286,213 307,193 328,173 352,158 378,149 404,140 431,135 458,135 527,135 582,159 622,207 662,254 682,324 682,416 L 682,1253 411,1253 411,1409 872,1409 872,420 C 872,353 863,292 844,238 825,184 798,138 763,100 727,61 683,32 632,11 581,-10 522,-20 457,-20 Z"/>
- <glyph unicode="I" horiz-adv-x="186" d="M 189,0 L 189,1409 380,1409 380,0 189,0 Z"/>
- <glyph unicode="F" horiz-adv-x="1006" d="M 359,1253 L 359,729 1145,729 1145,571 359,571 359,0 168,0 168,1409 1169,1409 1169,1253 359,1253 Z"/>
- <glyph unicode="D" horiz-adv-x="1218" d="M 1381,719 C 1381,602 1363,498 1328,409 1293,319 1244,244 1183,184 1122,123 1049,78 966,47 882,16 792,0 695,0 L 168,0 168,1409 634,1409 C 743,1409 843,1396 935,1369 1026,1342 1105,1300 1171,1244 1237,1187 1289,1116 1326,1029 1363,942 1381,839 1381,719 Z M 1189,719 C 1189,814 1175,896 1148,964 1121,1031 1082,1087 1033,1130 984,1173 925,1205 856,1226 787,1246 712,1256 630,1256 L 359,1256 359,153 673,153 C 747,153 816,165 879,189 942,213 996,249 1042,296 1088,343 1124,402 1150,473 1176,544 1189,626 1189,719 Z"/>
- <glyph unicode="C" horiz-adv-x="1297" d="M 792,1274 C 712,1274 641,1261 580,1234 518,1207 466,1169 425,1120 383,1071 351,1011 330,942 309,873 298,796 298,711 298,626 310,549 333,479 356,408 389,348 432,297 475,246 527,207 590,179 652,151 722,137 800,137 855,137 905,144 950,159 995,173 1035,193 1072,219 1108,245 1140,276 1169,312 1198,347 1223,387 1245,430 L 1401,352 C 1376,299 1344,250 1307,205 1270,160 1226,120 1176,87 1125,54 1068,28 1005,9 941,-10 870,-20 791,-20 677,-20 577,-2 492,35 406,71 334,122 277,187 219,252 176,329 147,418 118,507 104,605 104,711 104,821 119,920 150,1009 180,1098 224,1173 283,1236 341,1298 413,1346 498,1380 583,1413 681,1430 790,1430 940,1430 1065,1401 1166,1342 1267,1283 1341,1196 1388,1081 L 1207,1021 C 1194,1054 1176,1086 1153,1117 1130,1147 1102,1174 1068,1197 1034,1220 994,1239 949,1253 903,1267 851,1274 792,1274 Z"/>
- <glyph unicode="A" horiz-adv-x="1350" d="M 1167,0 L 1006,412 364,412 202,0 4,0 579,1409 796,1409 1362,0 1167,0 Z M 768,1026 C 757,1053 747,1080 738,1107 728,1134 719,1159 712,1182 705,1204 699,1223 694,1238 689,1253 686,1262 685,1265 684,1262 681,1252 676,1237 671,1222 665,1203 658,1180 650,1157 641,1132 632,1105 622,1078 612,1051 602,1024 L 422,561 949,561 768,1026 Z"/>
- <glyph unicode="4" horiz-adv-x="1033" d="M 881,319 L 881,0 711,0 711,319 47,319 47,459 692,1409 881,1409 881,461 1079,461 1079,319 881,319 Z M 711,1206 C 710,1203 706,1196 701,1187 696,1177 690,1166 683,1154 676,1142 670,1130 663,1118 656,1105 649,1095 644,1087 L 283,555 C 280,550 275,543 269,534 262,525 256,517 249,508 242,499 236,490 229,481 222,472 217,466 213,461 L 711,461 711,1206 Z"/>
- <glyph unicode="3" horiz-adv-x="980" d="M 1049,389 C 1049,324 1039,267 1018,216 997,165 966,123 926,88 885,53 835,26 776,8 716,-11 648,-20 571,-20 484,-20 410,-9 351,13 291,34 242,63 203,99 164,134 135,175 116,221 97,266 84,313 78,362 L 264,379 C 269,342 279,308 294,277 308,246 327,220 352,198 377,176 407,159 443,147 479,135 522,129 571,129 662,129 733,151 785,196 836,241 862,307 862,395 862,447 851,489 828,521 805,552 776,577 742,595 707,612 670,624 630,630 589,636 552,639 518,639 L 416,639 416,795 514,795 C 548,795 583,799 620,806 657,813 690,825 721,844 751,862 776,887 796,918 815,949 825,989 825,1038 825,1113 803,1173 759,1217 714,1260 648,1282 561,1282 482,1282 418,1262 369,1221 320,1180 291,1123 283,1049 L 102,1063 C 109,1125 126,1179 153,1225 180,1271 214,1309 255,1340 296,1370 342,1393 395,1408 448,1423 504,1430 563,1430 642,1430 709,1420 766,1401 823,1381 869,1354 905,1321 941,1287 968,1247 985,1202 1002,1157 1010,1108 1010,1057 1010,1016 1004,977 993,941 982,905 964,873 940,844 916,815 886,791 849,770 812,749 767,734 715,723 L 715,719 C 772,713 821,700 863,681 905,661 940,636 967,607 994,578 1015,544 1029,507 1042,470 1049,430 1049,389 Z"/>
- <glyph unicode="2" horiz-adv-x="927" d="M 103,0 L 103,127 C 137,205 179,274 228,334 277,393 328,447 382,496 436,544 490,589 543,630 596,671 643,713 686,754 729,795 763,839 790,884 816,929 829,981 829,1038 829,1078 823,1113 811,1144 799,1174 782,1199 759,1220 736,1241 709,1256 678,1267 646,1277 611,1282 572,1282 536,1282 502,1277 471,1267 439,1257 411,1242 386,1222 361,1202 341,1177 326,1148 310,1118 300,1083 295,1044 L 111,1061 C 117,1112 131,1159 153,1204 175,1249 205,1288 244,1322 283,1355 329,1382 384,1401 438,1420 501,1430 572,1430 642,1430 704,1422 759,1405 814,1388 860,1364 898,1331 935,1298 964,1258 984,1210 1004,1162 1014,1107 1014,1044 1014,997 1006,952 989,909 972,866 949,826 921,787 892,748 859,711 822,675 785,639 746,604 705,570 664,535 623,501 582,468 541,434 502,400 466,366 429,332 397,298 368,263 339,228 317,191 301,153 L 1036,153 1036,0 103,0 Z"/>
- <glyph unicode="1" horiz-adv-x="874" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/>
- <glyph unicode="/" horiz-adv-x="583" d="M 0,-20 L 411,1484 569,1484 162,-20 0,-20 Z"/>
- <glyph unicode="." horiz-adv-x="186" d="M 187,0 L 187,219 382,219 382,0 187,0 Z"/>
- <glyph unicode="," horiz-adv-x="212" d="M 385,219 L 385,51 C 385,16 384,-16 381,-46 378,-74 373,-101 366,-127 359,-151 351,-175 342,-197 332,-219 320,-241 307,-262 L 184,-262 C 214,-219 237,-175 254,-131 270,-87 278,-43 278,0 L 190,0 190,219 385,219 Z"/>
- <glyph unicode=")" horiz-adv-x="557" d="M 555,528 C 555,435 548,346 534,262 520,177 498,96 468,18 438,-60 400,-136 353,-209 306,-282 251,-354 186,-424 L 12,-424 C 75,-354 129,-282 175,-209 220,-136 258,-60 287,19 316,98 338,179 353,264 367,349 374,437 374,530 374,623 367,711 353,796 338,881 316,962 287,1041 258,1119 220,1195 175,1269 129,1342 75,1414 12,1484 L 186,1484 C 251,1414 306,1342 353,1269 400,1196 438,1120 468,1042 498,964 520,883 534,798 548,713 555,625 555,532 L 555,528 Z"/>
- <glyph unicode="(" horiz-adv-x="557" d="M 127,532 C 127,625 134,713 148,798 162,883 184,964 214,1042 244,1120 282,1196 329,1269 376,1342 431,1414 496,1484 L 670,1484 C 607,1414 553,1342 508,1269 462,1195 424,1119 395,1041 366,962 344,881 330,796 315,711 308,623 308,530 308,437 315,349 330,264 344,179 366,98 395,19 424,-60 462,-136 508,-209 553,-282 607,-354 670,-424 L 496,-424 C 431,-354 376,-282 329,-209 282,-136 244,-60 214,18 184,96 162,177 148,262 134,346 127,435 127,528 L 127,532 Z"/>
- <glyph unicode=" " horiz-adv-x="556"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template(57356)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template(57354)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template(10146)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template(10132)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template(10007)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template(10004)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template(9679)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template(8226)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template(8211)" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="1748" y="12039" width="19180" height="2543"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 11338,14580 L 1749,14580 1749,12040 20926,12040 20926,14580 11338,14580 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 11338,14580 L 1749,14580 1749,12040 20926,12040 20926,14580 11338,14580 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="8426" y="12673" width="5845" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 11348,14325 L 8427,14325 8427,12674 14269,12674 14269,14325 11348,14325 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 11348,14325 L 8427,14325 8427,12674 14269,12674 14269,14325 11348,14325 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="10626" y="13277"/><tspan class="TextPosition" x="10626" y="13277"><tspan fill="rgb(255,255,255)" stroke="none">.YAML</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="9340" y="14095"/><tspan class="TextPosition" x="9340" y="14095"><tspan fill="rgb(255,255,255)" stroke="none">Specification (CSIT gerrit)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="1815" y="11940" width="1553" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="2065" y="12514"/><tspan class="TextPosition" x="2065" y="12514"><tspan fill="rgb(255,255,255)" stroke="none">Data</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="2026" y="12673" width="5845" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 4948,14325 L 2027,14325 2027,12674 7869,12674 7869,14325 4948,14325 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 4948,14325 L 2027,14325 2027,12674 7869,12674 7869,14325 4948,14325 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="4383" y="13277"/><tspan class="TextPosition" x="4383" y="13277"><tspan fill="rgb(255,255,255)" stroke="none">.RST</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="2872" y="14095"/><tspan class="TextPosition" x="2872" y="14095"><tspan fill="rgb(255,255,255)" stroke="none">Static content (CSIT gerrit)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="14826" y="12673" width="5845" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 17748,14325 L 14827,14325 14827,12674 20669,12674 20669,14325 17748,14325 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 17748,14325 L 14827,14325 14827,12674 20669,12674 20669,14325 17748,14325 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="16485" y="13277"/><tspan class="TextPosition" x="16485" y="13277"><tspan fill="rgb(255,255,255)" stroke="none">.ZIP (.XML)</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="15750" y="14095"/><tspan class="TextPosition" x="15750" y="14095"><tspan fill="rgb(255,255,255)" stroke="none">Data to process (Jenkins)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="4289" y="8239" width="11433" height="2543"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10005,10780 L 4290,10780 4290,8240 15720,8240 15720,10780 10005,10780 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10005,10780 L 4290,10780 4290,8240 15720,8240 15720,10780 10005,10780 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="4289" y="4439" width="11433" height="2543"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10005,6980 L 4290,6980 4290,4440 15720,4440 15720,6980 10005,6980 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 10005,6980 L 4290,6980 4290,4440 15720,4440 15720,6980 10005,6980 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="1749" y="639" width="13973" height="2543"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8735,3180 L 1750,3180 1750,640 15720,640 15720,3180 8735,3180 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 8735,3180 L 1750,3180 1750,640 15720,640 15720,3180 8735,3180 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="16099" y="609" width="4822" height="10173"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 18510,10780 L 16100,10780 16100,610 20919,610 20919,10780 18510,10780 Z"/>
- <path fill="none" stroke="rgb(52,101,164)" d="M 18510,10780 L 16100,10780 16100,610 20919,610 20919,10780 18510,10780 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="4525" y="8873" width="10942" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 9996,10525 L 4526,10525 4526,8874 15465,8874 15465,10525 9996,10525 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 9996,10525 L 4526,10525 4526,8874 15465,8874 15465,10525 9996,10525 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="9183" y="9477"/><tspan class="TextPosition" x="9183" y="9477"><tspan fill="rgb(255,255,255)" stroke="none">pandas</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="8393" y="9901"/><tspan class="TextPosition" x="8393" y="9901"><tspan fill="rgb(255,255,255)" stroke="none">Data model in JSON</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="6817" y="10295"/><tspan class="TextPosition" x="6817" y="10295"><tspan fill="rgb(255,255,255)" stroke="none">Specification, Input data (Pandas.Series)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="4315" y="8140" width="5437" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="4565" y="8714"/><tspan class="TextPosition" x="4565" y="8714"><tspan fill="rgb(255,255,255)" stroke="none">Data processing</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="4315" y="4340" width="5437" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="4565" y="4914"/><tspan class="TextPosition" x="4565" y="4914"><tspan fill="rgb(255,255,255)" stroke="none">Data presentation</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="4525" y="5073" width="2560" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 5805,6725 L 4526,6725 4526,5074 7083,5074 7083,6725 5805,6725 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 5805,6725 L 4526,6725 4526,5074 7083,5074 7083,6725 5805,6725 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="5252" y="5677"/><tspan class="TextPosition" x="5252" y="5677"><tspan fill="rgb(255,255,255)" stroke="none">Plots</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="4697" y="6495"/><tspan class="TextPosition" x="4697" y="6495"><tspan fill="rgb(255,255,255)" stroke="none">plot.ly → .html</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="8826" y="5073" width="2451" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 10051,6725 L 8827,6725 8827,5074 11275,5074 11275,6725 10051,6725 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 10051,6725 L 8827,6725 8827,5074 11275,5074 11275,6725 10051,6725 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="9528" y="5677"/><tspan class="TextPosition" x="9528" y="5677"><tspan fill="rgb(255,255,255)" stroke="none">Files</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="9649" y="6495"/><tspan class="TextPosition" x="9649" y="6495"><tspan fill="rgb(255,255,255)" stroke="none">.RST</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="12925" y="5073" width="2560" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 14205,6725 L 12926,6725 12926,5074 15483,5074 15483,6725 14205,6725 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 14205,6725 L 12926,6725 12926,5074 15483,5074 15483,6725 14205,6725 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="13489" y="5677"/><tspan class="TextPosition" x="13489" y="5677"><tspan fill="rgb(255,255,255)" stroke="none">Tables</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="13023" y="6495"/><tspan class="TextPosition" x="13023" y="6495"><tspan fill="rgb(255,255,255)" stroke="none">Pandas → .csv</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="1715" y="540" width="5437" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="1965" y="1114"/><tspan class="TextPosition" x="1965" y="1114"><tspan fill="rgb(255,255,255)" stroke="none">Report generation</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="2003" y="1273" width="13465" height="1654"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 8735,2925 L 2004,2925 2004,1274 15466,1274 15466,2925 8735,2925 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 8735,2925 L 2004,2925 2004,1274 15466,1274 15466,2925 8735,2925 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="7982" y="1877"/><tspan class="TextPosition" x="7982" y="1877"><tspan fill="rgb(255,255,255)" stroke="none">Sphinx</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="6163" y="2695"/><tspan class="TextPosition" x="6163" y="2695"><tspan fill="rgb(255,255,255)" stroke="none">.html / .pdf (then stored in nexus)</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="16015" y="540" width="4659" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="16265" y="1114"/><tspan class="TextPosition" x="16265" y="1114"><tspan fill="rgb(255,255,255)" stroke="none">Jenkins plots</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.CustomShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="16354" y="1243" width="4317" height="9284"/>
- <path fill="rgb(114,159,207)" stroke="none" d="M 18512,10525 L 16355,10525 16355,1244 20669,1244 20669,10525 18512,10525 Z"/>
- <path fill="none" stroke="rgb(255,255,255)" d="M 18512,10525 L 16355,10525 16355,1244 20669,1244 20669,10525 18512,10525 Z"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="17200" y="5385"/><tspan class="TextPosition" x="17200" y="5385"><tspan fill="rgb(255,255,255)" stroke="none">Jenkins plot</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="17852" y="5940"/><tspan class="TextPosition" x="17852" y="5940"><tspan fill="rgb(255,255,255)" stroke="none">plugin</tspan></tspan></tspan><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="18129" y="6758"/><tspan class="TextPosition" x="18129" y="6758"><tspan fill="rgb(255,255,255)" stroke="none">.html</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="415" y="11840" width="1303" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="665" y="12414"/><tspan class="TextPosition" x="665" y="12414"><tspan fill="rgb(0,0,0)" stroke="none">sL1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="415" y="8140" width="1303" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="665" y="8714"/><tspan class="TextPosition" x="665" y="8714"><tspan fill="rgb(0,0,0)" stroke="none">sL2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="415" y="4340" width="1303" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="665" y="4914"/><tspan class="TextPosition" x="665" y="4914"><tspan fill="rgb(0,0,0)" stroke="none">sL3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="415" y="540" width="1303" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="665" y="1114"/><tspan class="TextPosition" x="665" y="1114"><tspan fill="rgb(0,0,0)" stroke="none">sL4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="3031" y="2896" width="431" height="10007"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 3222,12548 L 3271,3439"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 3257,12528 L 3291,12537 3325,12555 3356,12579 3380,12610 3397,12645 3406,12679 3411,12714 3406,12748 3396,12784 3379,12818 3355,12847 3323,12871 3289,12888 3255,12899 3219,12902 3185,12899 3150,12887 3117,12870 3086,12846 3062,12816 3045,12782 3036,12746 3032,12712 3036,12677 3046,12643 3063,12609 3088,12578 3119,12554 3152,12537 3187,12527 3221,12523 3257,12528 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 3274,2896 L 3081,3463 3460,3466 3274,2896 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="11096" y="10516" width="411" height="2388"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 11313,12548 L 11285,11059"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 11348,12527 L 11382,12536 11416,12552 11448,12576 11473,12607 11491,12640 11501,12674 11506,12709 11502,12744 11493,12779 11477,12814 11453,12844 11422,12869 11389,12886 11355,12898 11319,12902 11285,12900 11250,12889 11216,12873 11185,12849 11160,12820 11142,12786 11132,12751 11127,12717 11131,12681 11140,12647 11156,12612 11180,12581 11210,12556 11243,12538 11278,12528 11312,12523 11348,12527 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 11275,10516 L 11096,11088 11475,11081 11275,10516 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="15000" y="10517" width="411" height="2388"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 15217,12549 L 15189,11060"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 15252,12528 L 15286,12537 15320,12553 15352,12577 15377,12608 15395,12641 15405,12675 15410,12710 15406,12745 15397,12780 15381,12815 15357,12845 15326,12870 15293,12887 15259,12899 15223,12903 15189,12901 15154,12890 15120,12874 15089,12850 15064,12821 15046,12787 15036,12752 15031,12718 15035,12682 15044,12648 15060,12613 15084,12582 15114,12557 15147,12539 15182,12529 15216,12524 15252,12528 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 15179,10517 L 15000,11089 15379,11082 15179,10517 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="18304" y="10518" width="411" height="2388"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 18521,12550 L 18493,11061"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 18556,12529 L 18590,12538 18624,12554 18656,12578 18681,12609 18699,12642 18709,12676 18714,12711 18710,12746 18701,12781 18685,12816 18661,12846 18630,12871 18597,12888 18563,12900 18527,12904 18493,12902 18458,12891 18424,12875 18393,12851 18368,12822 18350,12788 18340,12753 18335,12719 18339,12683 18348,12649 18364,12614 18388,12583 18418,12558 18451,12540 18486,12530 18520,12525 18556,12529 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 18483,10518 L 18304,11090 18683,11083 18483,10518 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="5497" y="2896" width="381" height="2414"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 5687,4955 L 5687,3439"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 5722,4934 L 5756,4944 5790,4961 5821,4985 5845,5016 5862,5051 5872,5085 5877,5120 5872,5154 5862,5190 5845,5224 5821,5254 5790,5278 5756,5295 5722,5306 5686,5309 5652,5306 5617,5295 5584,5278 5553,5254 5529,5224 5512,5190 5502,5154 5498,5120 5502,5085 5512,5051 5529,5016 5553,4985 5584,4961 5617,4944 5652,4934 5686,4930 5722,4934 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 5687,2896 L 5498,3465 5877,3465 5687,2896 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="9815" y="2896" width="381" height="2414"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 10005,4955 L 10005,3439"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 10040,4934 L 10074,4944 10108,4961 10139,4985 10163,5016 10180,5051 10190,5085 10195,5120 10190,5154 10180,5190 10163,5224 10139,5254 10108,5278 10074,5295 10040,5306 10004,5309 9970,5306 9935,5295 9902,5278 9871,5254 9847,5224 9830,5190 9820,5154 9816,5120 9820,5085 9830,5051 9847,5016 9871,4985 9902,4961 9935,4944 9970,4934 10004,4930 10040,4934 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 10005,2896 L 9816,3465 10195,3465 10005,2896 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="13999" y="2919" width="387" height="2392"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 14195,4955 L 14189,3462"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 14229,4934 L 14263,4944 14298,4961 14329,4985 14353,5016 14370,5050 14380,5084 14385,5119 14381,5153 14371,5189 14354,5223 14330,5253 14299,5277 14265,5294 14231,5306 14195,5309 14161,5306 14126,5295 14093,5278 14062,5254 14037,5224 14020,5190 14010,5155 14006,5121 14010,5086 14020,5051 14037,5017 14061,4986 14092,4962 14124,4944 14160,4934 14194,4930 14229,4934 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 14187,2919 L 14000,3488 14379,3487 14187,2919 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="6957" y="5627" width="1906" height="381"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 7311,5817 L 8319,5817"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 7332,5852 L 7322,5886 7305,5920 7281,5951 7250,5975 7215,5992 7181,6002 7146,6007 7112,6002 7076,5992 7042,5975 7012,5951 6988,5920 6971,5886 6960,5852 6957,5816 6960,5782 6971,5747 6988,5714 7012,5683 7042,5659 7076,5642 7112,5632 7146,5628 7181,5632 7215,5642 7250,5659 7281,5683 7305,5714 7322,5747 7332,5782 7336,5816 7332,5852 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 8862,5817 L 8294,5628 8294,6007 8862,5817 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="11275" y="5627" width="1779" height="381"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 12699,5817 L 11818,5817"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 12678,5782 L 12688,5748 12705,5714 12729,5683 12760,5659 12795,5642 12829,5632 12864,5628 12898,5632 12934,5642 12968,5659 12998,5683 13022,5714 13039,5748 13050,5782 13053,5818 13050,5852 13039,5887 13022,5920 12998,5951 12968,5975 12934,5992 12898,6002 12864,6007 12829,6002 12795,5992 12760,5975 12729,5951 12705,5920 12688,5887 12678,5852 12674,5818 12678,5782 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 11275,5817 L 11844,6007 11844,5628 11275,5817 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="5524" y="6706" width="381" height="2160"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 5714,7249 L 5714,8322"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 5714,6706 L 5525,7275 5904,7275 5714,6706 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 5714,8865 L 5904,8297 5525,8297 5714,8865 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="9824" y="6707" width="381" height="2160"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 10014,7250 L 10014,8323"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 10014,6707 L 9825,7276 10204,7276 10014,6707 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 10014,8866 L 10204,8298 9825,8298 10014,8866 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="14024" y="6708" width="381" height="2160"/>
- <path fill="none" stroke="rgb(0,102,204)" stroke-width="53" stroke-linejoin="round" d="M 14214,7251 L 14214,8324"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 14214,6708 L 14025,7277 14404,7277 14214,6708 Z"/>
- <path fill="rgb(0,102,204)" stroke="none" d="M 14214,8867 L 14404,8299 14025,8299 14214,8867 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="3115" y="11440" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="3365" y="11883"/><tspan class="TextPosition" x="3365" y="11883"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="11215" y="11440" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="11465" y="11883"/><tspan class="TextPosition" x="11465" y="11883"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="15115" y="11440" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="15365" y="11883"/><tspan class="TextPosition" x="15365" y="11883"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="18415" y="11440" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="18665" y="11883"/><tspan class="TextPosition" x="18665" y="11883"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="14115" y="3840" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="14365" y="4283"/><tspan class="TextPosition" x="14365" y="4283"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="9915" y="3840" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="10165" y="4283"/><tspan class="TextPosition" x="10165" y="4283"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="5615" y="3840" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="5865" y="4283"/><tspan class="TextPosition" x="5865" y="4283"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="6915" y="5140" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="7165" y="5583"/><tspan class="TextPosition" x="7165" y="5583"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="11115" y="5140" width="2065" height="807"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="11365" y="5583"/><tspan class="TextPosition" x="11365" y="5583"><tspan fill="rgb(0,69,134)" stroke="none">Read files</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="5615" y="7640" width="2613" height="718"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="5865" y="8083"/><tspan class="TextPosition" x="5865" y="8083"><tspan fill="rgb(0,69,134)" stroke="none">Python calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="9915" y="7641" width="2613" height="718"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="10165" y="8084"/><tspan class="TextPosition" x="10165" y="8084"><tspan fill="rgb(0,69,134)" stroke="none">Python calls</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="12915" y="7642" width="2613" height="718"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="353px" font-weight="400"><tspan class="TextPosition" x="13165" y="8085"/><tspan class="TextPosition" x="13165" y="8085"><tspan fill="rgb(0,69,134)" stroke="none">Python calls</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/resources/tools/presentation/doc/pal_lld.rst b/resources/tools/presentation/doc/pal_lld.rst
deleted file mode 100644
index 9569433760..0000000000
--- a/resources/tools/presentation/doc/pal_lld.rst
+++ /dev/null
@@ -1,1712 +0,0 @@
-Presentation and Analytics
-==========================
-
-Overview
---------
-
-The presentation and analytics layer (PAL) is the fourth layer of CSIT
-hierarchy. The model of presentation and analytics layer consists of four
-sub-layers, bottom up:
-
- - sL1 - Data - input data to be processed:
-
- - Static content - .rst text files, .svg static figures, and other files
- stored in the CSIT git repository.
- - Data to process - .xml files generated by Jenkins jobs executing tests,
- stored as robot results files (output.xml).
- - Specification - .yaml file with the models of report elements (tables,
- plots, layout, ...) generated by this tool. There is also the configuration
- of the tool and the specification of input data (jobs and builds).
-
- - sL2 - Data processing
-
- - The data are read from the specified input files (.xml) and stored as
- multi-indexed `pandas.Series <https://pandas.pydata.org/pandas-docs/stable/
- generated/pandas.Series.html>`_.
- - This layer provides also interface to input data and filtering of the input
- data.
-
- - sL3 - Data presentation - This layer generates the elements specified in the
- specification file:
-
- - Tables: .csv files linked to static .rst files.
- - Plots: .html files generated using plot.ly linked to static .rst files.
-
- - sL4 - Report generation - Sphinx generates required formats and versions:
-
- - formats: html, pdf
- - versions: minimal, full (TODO: define the names and scope of versions)
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/csit_framework_documentation/}}
- \includegraphics[width=0.90\textwidth]{pal_layers}
- \label{fig:pal_layers}
- \end{figure}
-
-.. only:: html
-
- .. figure:: pal_layers.svg
- :alt: PAL Layers
- :align: center
-
-Data
-----
-
-Report Specification
-````````````````````
-
-The report specification file defines which data is used and which outputs are
-generated. It is human readable and structured. It is easy to add / remove /
-change items. The specification includes:
-
- - Specification of the environment.
- - Configuration of debug mode (optional).
- - Specification of input data (jobs, builds, files, ...).
- - Specification of the output.
- - What and how is generated:
- - What: plots, tables.
- - How: specification of all properties and parameters.
- - .yaml format.
-
-Structure of the specification file
-'''''''''''''''''''''''''''''''''''
-
-The specification file is organized as a list of dictionaries distinguished by
-the type:
-
-::
-
- -
- type: "environment"
- -
- type: "configuration"
- -
- type: "debug"
- -
- type: "static"
- -
- type: "input"
- -
- type: "output"
- -
- type: "table"
- -
- type: "plot"
- -
- type: "file"
-
-Each type represents a section. The sections "environment", "debug", "static",
-"input" and "output" are listed only once in the specification; "table", "file"
-and "plot" can be there multiple times.
-
-Sections "debug", "table", "file" and "plot" are optional.
-
-Table(s), files(s) and plot(s) are referred as "elements" in this text. It is
-possible to define and implement other elements if needed.
-
-
-Section: Environment
-''''''''''''''''''''
-
-This section has the following parts:
-
- - type: "environment" - says that this is the section "environment".
- - configuration - configuration of the PAL.
- - paths - paths used by the PAL.
- - urls - urls pointing to the data sources.
- - make-dirs - a list of the directories to be created by the PAL while
- preparing the environment.
- - remove-dirs - a list of the directories to be removed while cleaning the
- environment.
- - build-dirs - a list of the directories where the results are stored.
-
-The structure of the section "Environment" is as follows (example):
-
-::
-
- -
- type: "environment"
- configuration:
- # Debug mode:
- # - Skip:
- # - Download of input data files
- # - Do:
- # - Read data from given zip / xml files
- # - Set the configuration as it is done in normal mode
- # If the section "type: debug" is missing, CFG[DEBUG] is set to 0.
- CFG[DEBUG]: 0
-
- paths:
- # Top level directories:
- ## Working directory
- DIR[WORKING]: "_tmp"
- ## Build directories
- DIR[BUILD,HTML]: "_build"
- DIR[BUILD,LATEX]: "_build_latex"
-
- # Static .rst files
- DIR[RST]: "../../../docs/report"
-
- # Working directories
- ## Input data files (.zip, .xml)
- DIR[WORKING,DATA]: "{DIR[WORKING]}/data"
- ## Static source files from git
- DIR[WORKING,SRC]: "{DIR[WORKING]}/src"
- DIR[WORKING,SRC,STATIC]: "{DIR[WORKING,SRC]}/_static"
-
- # Static html content
- DIR[STATIC]: "{DIR[BUILD,HTML]}/_static"
- DIR[STATIC,VPP]: "{DIR[STATIC]}/vpp"
- DIR[STATIC,DPDK]: "{DIR[STATIC]}/dpdk"
- DIR[STATIC,ARCH]: "{DIR[STATIC]}/archive"
-
- # Detailed test results
- DIR[DTR]: "{DIR[WORKING,SRC]}/detailed_test_results"
- DIR[DTR,PERF,DPDK]: "{DIR[DTR]}/dpdk_performance_results"
- DIR[DTR,PERF,VPP]: "{DIR[DTR]}/vpp_performance_results"
- DIR[DTR,FUNC,VPP]: "{DIR[DTR]}/vpp_functional_results"
- DIR[DTR,PERF,VPP,IMPRV]: "{DIR[WORKING,SRC]}/vpp_performance_tests/performance_improvements"
-
- # Detailed test configurations
- DIR[DTC]: "{DIR[WORKING,SRC]}/test_configuration"
- DIR[DTC,PERF,VPP]: "{DIR[DTC]}/vpp_performance_configuration"
- DIR[DTC,FUNC,VPP]: "{DIR[DTC]}/vpp_functional_configuration"
-
- # Detailed tests operational data
- DIR[DTO]: "{DIR[WORKING,SRC]}/test_operational_data"
- DIR[DTO,PERF,VPP]: "{DIR[DTO]}/vpp_performance_operational_data"
-
- # .css patch file to fix tables generated by Sphinx
- DIR[CSS_PATCH_FILE]: "{DIR[STATIC]}/theme_overrides.css"
- DIR[CSS_PATCH_FILE2]: "{DIR[WORKING,SRC,STATIC]}/theme_overrides.css"
-
- urls:
- URL[JENKINS,CSIT]: "https://jenkins.fd.io/view/csit/job"
- URL[JENKINS,HC]: "https://jenkins.fd.io/view/hc2vpp/job"
-
- make-dirs:
- # List the directories which are created while preparing the environment.
- # All directories MUST be defined in "paths" section.
- - "DIR[WORKING,DATA]"
- - "DIR[STATIC,VPP]"
- - "DIR[STATIC,DPDK]"
- - "DIR[STATIC,ARCH]"
- - "DIR[BUILD,LATEX]"
- - "DIR[WORKING,SRC]"
- - "DIR[WORKING,SRC,STATIC]"
-
- remove-dirs:
- # List the directories which are deleted while cleaning the environment.
- # All directories MUST be defined in "paths" section.
- #- "DIR[BUILD,HTML]"
-
- build-dirs:
- # List the directories where the results (build) is stored.
- # All directories MUST be defined in "paths" section.
- - "DIR[BUILD,HTML]"
- - "DIR[BUILD,LATEX]"
-
-It is possible to use defined items in the definition of other items, e.g.:
-
-::
-
- DIR[WORKING,DATA]: "{DIR[WORKING]}/data"
-
-will be automatically changed to
-
-::
-
- DIR[WORKING,DATA]: "_tmp/data"
-
-
-Section: Configuration
-''''''''''''''''''''''
-
-This section specifies the groups of parameters which are repeatedly used in the
-elements defined later in the specification file. It has the following parts:
-
- - data sets - Specification of data sets used later in element's specifications
- to define the input data.
- - plot layouts - Specification of plot layouts used later in plots'
- specifications to define the plot layout.
-
-The structure of the section "Configuration" is as follows (example):
-
-::
-
- -
- type: "configuration"
- data-sets:
- plot-vpp-throughput-latency:
- csit-vpp-perf-1710-all:
- - 11
- - 12
- - 13
- - 14
- - 15
- - 16
- - 17
- - 18
- - 19
- - 20
- vpp-perf-results:
- csit-vpp-perf-1710-all:
- - 20
- - 23
- plot-layouts:
- plot-throughput:
- xaxis:
- autorange: True
- autotick: False
- fixedrange: False
- gridcolor: "rgb(238, 238, 238)"
- linecolor: "rgb(238, 238, 238)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- tickmode: "linear"
- title: "Indexed Test Cases"
- zeroline: False
- yaxis:
- gridcolor: "rgb(238, 238, 238)'"
- hoverformat: ".4s"
- linecolor: "rgb(238, 238, 238)"
- linewidth: 1
- range: []
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- title: "Packets Per Second [pps]"
- zeroline: False
- boxmode: "group"
- boxgroupgap: 0.5
- autosize: False
- margin:
- t: 50
- b: 20
- l: 50
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- width: 700
- height: 1000
-
-The definitions from this sections are used in the elements, e.g.:
-
-::
-
- -
- type: "plot"
- title: "VPP Performance 64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc"
- algorithm: "plot_performance_box"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/64B-1t1c-l2-sel1-ndrdisc"
- data:
- "plot-vpp-throughput-latency"
- filter: "'64B' and ('BASE' or 'SCALE') and 'NDRDISC' and '1T1C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
- parameters:
- - "throughput"
- - "parent"
- traces:
- hoverinfo: "x+y"
- boxpoints: "outliers"
- whiskerwidth: 0
- layout:
- title: "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc"
- layout:
- "plot-throughput"
-
-
-Section: Debug mode
-'''''''''''''''''''
-
-This section is optional as it configures the debug mode. It is used if one
-does not want to download input data files and use local files instead.
-
-If the debug mode is configured, the "input" section is ignored.
-
-This section has the following parts:
-
- - type: "debug" - says that this is the section "debug".
- - general:
-
- - input-format - xml or zip.
- - extract - if "zip" is defined as the input format, this file is extracted
- from the zip file, otherwise this parameter is ignored.
-
- - builds - list of builds from which the data is used. Must include a job
- name as a key and then a list of builds and their output files.
-
-The structure of the section "Debug" is as follows (example):
-
-::
-
- -
- type: "debug"
- general:
- input-format: "zip" # zip or xml
- extract: "robot-plugin/output.xml" # Only for zip
- builds:
- # The files must be in the directory DIR[WORKING,DATA]
- csit-dpdk-perf-1707-all:
- -
- build: 10
- file: "csit-dpdk-perf-1707-all__10.xml"
- -
- build: 9
- file: "csit-dpdk-perf-1707-all__9.xml"
- csit-vpp-functional-1707-ubuntu1604-virl:
- -
- build: lastSuccessfulBuild
- file: "csit-vpp-functional-1707-ubuntu1604-virl-lastSuccessfulBuild.xml"
- hc2vpp-csit-integration-1707-ubuntu1604:
- -
- build: lastSuccessfulBuild
- file: "hc2vpp-csit-integration-1707-ubuntu1604-lastSuccessfulBuild.xml"
- csit-vpp-perf-1707-all:
- -
- build: 16
- file: "csit-vpp-perf-1707-all__16__output.xml"
- -
- build: 17
- file: "csit-vpp-perf-1707-all__17__output.xml"
-
-
-Section: Static
-'''''''''''''''
-
-This section defines the static content which is stored in git and will be used
-as a source to generate the report.
-
-This section has these parts:
-
- - type: "static" - says that this section is the "static".
- - src-path - path to the static content.
- - dst-path - destination path where the static content is copied and then
- processed.
-
-::
-
- -
- type: "static"
- src-path: "{DIR[RST]}"
- dst-path: "{DIR[WORKING,SRC]}"
-
-
-Section: Input
-''''''''''''''
-
-This section defines the data used to generate elements. It is mandatory
-if the debug mode is not used.
-
-This section has the following parts:
-
- - type: "input" - says that this section is the "input".
- - general - parameters common to all builds:
-
- - file-name: file to be downloaded.
- - file-format: format of the downloaded file, ".zip" or ".xml" are supported.
- - download-path: path to be added to url pointing to the file, e.g.:
- "{job}/{build}/robot/report/*zip*/{filename}"; {job}, {build} and
- {filename} are replaced by proper values defined in this section.
- - extract: file to be extracted from downloaded zip file, e.g.: "output.xml";
- if xml file is downloaded, this parameter is ignored.
-
- - builds - list of jobs (keys) and numbers of builds which output data will be
- downloaded.
-
-The structure of the section "Input" is as follows (example from 17.07 report):
-
-::
-
- -
- type: "input" # Ignored in debug mode
- general:
- file-name: "robot-plugin.zip"
- file-format: ".zip"
- download-path: "{job}/{build}/robot/report/*zip*/{filename}"
- extract: "robot-plugin/output.xml"
- builds:
- csit-vpp-perf-1707-all:
- - 9
- - 10
- - 13
- - 14
- - 15
- - 16
- - 17
- - 18
- - 19
- - 21
- - 22
- csit-dpdk-perf-1707-all:
- - 1
- - 2
- - 3
- - 4
- - 5
- - 6
- - 7
- - 8
- - 9
- - 10
- csit-vpp-functional-1707-ubuntu1604-virl:
- - lastSuccessfulBuild
- hc2vpp-csit-perf-master-ubuntu1604:
- - 8
- - 9
- hc2vpp-csit-integration-1707-ubuntu1604:
- - lastSuccessfulBuild
-
-Section: Output
-'''''''''''''''
-
-This section specifies which format(s) will be generated (html, pdf) and which
-versions will be generated for each format.
-
-This section has the following parts:
-
- - type: "output" - says that this section is the "output".
- - format: html or pdf.
- - version: defined for each format separately.
-
-The structure of the section "Output" is as follows (example):
-
-::
-
- -
- type: "output"
- format:
- html:
- - full
- pdf:
- - full
- - minimal
-
-TODO: define the names of versions
-
-
-Content of "minimal" version
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-TODO: define the name and content of this version
-
-
-Section: Table
-''''''''''''''
-
-This section defines a table to be generated. There can be 0 or more "table"
-sections.
-
-This section has the following parts:
-
- - type: "table" - says that this section defines a table.
- - title: Title of the table.
- - algorithm: Algorithm which is used to generate the table. The other
- parameters in this section must provide all information needed by the used
- algorithm.
- - template: (optional) a .csv file used as a template while generating the
- table.
- - output-file-ext: extension of the output file.
- - output-file: file which the table will be written to.
- - columns: specification of table columns:
-
- - title: The title used in the table header.
- - data: Specification of the data, it has two parts - command and arguments:
-
- - command:
-
- - template - take the data from template, arguments:
-
- - number of column in the template.
-
- - data - take the data from the input data, arguments:
-
- - jobs and builds which data will be used.
-
- - operation - performs an operation with the data already in the table,
- arguments:
-
- - operation to be done, e.g.: mean, stdev, relative_change (compute
- the relative change between two columns) and display number of data
- samples ~= number of test jobs. The operations are implemented in the
- utils.py
- TODO: Move from utils,py to e.g. operations.py
- - numbers of columns which data will be used (optional).
-
- - data: Specify the jobs and builds which data is used to generate the table.
- - filter: filter based on tags applied on the input data, if "template" is
- used, filtering is based on the template.
- - parameters: Only these parameters will be put to the output data structure.
-
-The structure of the section "Table" is as follows (example of
-"table_performance_improvements"):
-
-::
-
- -
- type: "table"
- title: "Performance improvements"
- algorithm: "table_performance_improvements"
- template: "{DIR[DTR,PERF,VPP,IMPRV]}/tmpl_performance_improvements.csv"
- output-file-ext: ".csv"
- output-file: "{DIR[DTR,PERF,VPP,IMPRV]}/performance_improvements"
- columns:
- -
- title: "VPP Functionality"
- data: "template 1"
- -
- title: "Test Name"
- data: "template 2"
- -
- title: "VPP-16.09 mean [Mpps]"
- data: "template 3"
- -
- title: "VPP-17.01 mean [Mpps]"
- data: "template 4"
- -
- title: "VPP-17.04 mean [Mpps]"
- data: "template 5"
- -
- title: "VPP-17.07 mean [Mpps]"
- data: "data csit-vpp-perf-1707-all mean"
- -
- title: "VPP-17.07 stdev [Mpps]"
- data: "data csit-vpp-perf-1707-all stdev"
- -
- title: "17.04 to 17.07 change [%]"
- data: "operation relative_change 5 4"
- data:
- csit-vpp-perf-1707-all:
- - 9
- - 10
- - 13
- - 14
- - 15
- - 16
- - 17
- - 18
- - 19
- - 21
- filter: "template"
- parameters:
- - "throughput"
-
-Example of "table_details" which generates "Detailed Test Results - VPP
-Performance Results":
-
-::
-
- -
- type: "table"
- title: "Detailed Test Results - VPP Performance Results"
- algorithm: "table_details"
- output-file-ext: ".csv"
- output-file: "{DIR[WORKING]}/vpp_performance_results"
- columns:
- -
- title: "Name"
- data: "data test_name"
- -
- title: "Documentation"
- data: "data test_documentation"
- -
- title: "Status"
- data: "data test_msg"
- data:
- csit-vpp-perf-1707-all:
- - 17
- filter: "all"
- parameters:
- - "parent"
- - "doc"
- - "msg"
-
-Example of "table_details" which generates "Test configuration - VPP Performance
-Test Configs":
-
-::
-
- -
- type: "table"
- title: "Test configuration - VPP Performance Test Configs"
- algorithm: "table_details"
- output-file-ext: ".csv"
- output-file: "{DIR[WORKING]}/vpp_test_configuration"
- columns:
- -
- title: "Name"
- data: "data name"
- -
- title: "VPP API Test (VAT) Commands History - Commands Used Per Test Case"
- data: "data show-run"
- data:
- csit-vpp-perf-1707-all:
- - 17
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "show-run"
-
-
-Section: Plot
-'''''''''''''
-
-This section defines a plot to be generated. There can be 0 or more "plot"
-sections.
-
-This section has these parts:
-
- - type: "plot" - says that this section defines a plot.
- - title: Plot title used in the logs. Title which is displayed is in the
- section "layout".
- - output-file-type: format of the output file.
- - output-file: file which the plot will be written to.
- - algorithm: Algorithm used to generate the plot. The other parameters in this
- section must provide all information needed by plot.ly to generate the plot.
- For example:
-
- - traces
- - layout
-
- - These parameters are transparently passed to plot.ly.
-
- - data: Specify the jobs and numbers of builds which data is used to generate
- the plot.
- - filter: filter applied on the input data.
- - parameters: Only these parameters will be put to the output data structure.
-
-The structure of the section "Plot" is as follows (example of a plot showing
-throughput in a chart box-with-whiskers):
-
-::
-
- -
- type: "plot"
- title: "VPP Performance 64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc"
- algorithm: "plot_performance_box"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/64B-1t1c-l2-sel1-ndrdisc"
- data:
- csit-vpp-perf-1707-all:
- - 9
- - 10
- - 13
- - 14
- - 15
- - 16
- - 17
- - 18
- - 19
- - 21
- # Keep this formatting, the filter is enclosed with " (quotation mark) and
- # each tag is enclosed with ' (apostrophe).
- filter: "'64B' and 'BASE' and 'NDRDISC' and '1T1C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
- parameters:
- - "throughput"
- - "parent"
- traces:
- hoverinfo: "x+y"
- boxpoints: "outliers"
- whiskerwidth: 0
- layout:
- title: "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc"
- xaxis:
- autorange: True
- autotick: False
- fixedrange: False
- gridcolor: "rgb(238, 238, 238)"
- linecolor: "rgb(238, 238, 238)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- tickmode: "linear"
- title: "Indexed Test Cases"
- zeroline: False
- yaxis:
- gridcolor: "rgb(238, 238, 238)'"
- hoverformat: ".4s"
- linecolor: "rgb(238, 238, 238)"
- linewidth: 1
- range: []
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- title: "Packets Per Second [pps]"
- zeroline: False
- boxmode: "group"
- boxgroupgap: 0.5
- autosize: False
- margin:
- t: 50
- b: 20
- l: 50
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- width: 700
- height: 1000
-
-The structure of the section "Plot" is as follows (example of a plot showing
-latency in a box chart):
-
-::
-
- -
- type: "plot"
- title: "VPP Latency 64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc"
- algorithm: "plot_latency_box"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/64B-1t1c-l2-sel1-ndrdisc-lat50"
- data:
- csit-vpp-perf-1707-all:
- - 9
- - 10
- - 13
- - 14
- - 15
- - 16
- - 17
- - 18
- - 19
- - 21
- filter: "'64B' and 'BASE' and 'NDRDISC' and '1T1C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
- parameters:
- - "latency"
- - "parent"
- traces:
- boxmean: False
- layout:
- title: "64B-1t1c-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc"
- xaxis:
- autorange: True
- autotick: False
- fixedrange: False
- gridcolor: "rgb(238, 238, 238)"
- linecolor: "rgb(238, 238, 238)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- tickmode: "linear"
- title: "Indexed Test Cases"
- zeroline: False
- yaxis:
- gridcolor: "rgb(238, 238, 238)'"
- hoverformat: ""
- linecolor: "rgb(238, 238, 238)"
- linewidth: 1
- range: []
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- title: "Latency min/avg/max [uSec]"
- zeroline: False
- boxmode: "group"
- boxgroupgap: 0.5
- autosize: False
- margin:
- t: 50
- b: 20
- l: 50
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- width: 700
- height: 1000
-
-The structure of the section "Plot" is as follows (example of a plot showing
-VPP HTTP server performance in a box chart with pre-defined data
-"plot-vpp-http-server-performance" set and plot layout "plot-cps"):
-
-::
-
- -
- type: "plot"
- title: "VPP HTTP Server Performance"
- algorithm: "plot_http_server_perf_box"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/http-server-performance-cps"
- data:
- "plot-vpp-httlp-server-performance"
- # Keep this formatting, the filter is enclosed with " (quotation mark) and
- # each tag is enclosed with ' (apostrophe).
- filter: "'HTTP' and 'TCP_CPS'"
- parameters:
- - "result"
- - "name"
- traces:
- hoverinfo: "x+y"
- boxpoints: "outliers"
- whiskerwidth: 0
- layout:
- title: "VPP HTTP Server Performance"
- layout:
- "plot-cps"
-
-
-Section: file
-'''''''''''''
-
-This section defines a file to be generated. There can be 0 or more "file"
-sections.
-
-This section has the following parts:
-
- - type: "file" - says that this section defines a file.
- - title: Title of the table.
- - algorithm: Algorithm which is used to generate the file. The other
- parameters in this section must provide all information needed by the used
- algorithm.
- - output-file-ext: extension of the output file.
- - output-file: file which the file will be written to.
- - file-header: The header of the generated .rst file.
- - dir-tables: The directory with the tables.
- - data: Specify the jobs and builds which data is used to generate the table.
- - filter: filter based on tags applied on the input data, if "all" is
- used, no filtering is done.
- - parameters: Only these parameters will be put to the output data structure.
- - chapters: the hierarchy of chapters in the generated file.
- - start-level: the level of the the top-level chapter.
-
-The structure of the section "file" is as follows (example):
-
-::
-
- -
- type: "file"
- title: "VPP Performance Results"
- algorithm: "file_test_results"
- output-file-ext: ".rst"
- output-file: "{DIR[DTR,PERF,VPP]}/vpp_performance_results"
- file-header: "\n.. |br| raw:: html\n\n <br />\n\n\n.. |prein| raw:: html\n\n <pre>\n\n\n.. |preout| raw:: html\n\n </pre>\n\n"
- dir-tables: "{DIR[DTR,PERF,VPP]}"
- data:
- csit-vpp-perf-1707-all:
- - 22
- filter: "all"
- parameters:
- - "name"
- - "doc"
- - "level"
- data-start-level: 2 # 0, 1, 2, ...
- chapters-start-level: 2 # 0, 1, 2, ...
-
-
-Static content
-``````````````
-
- - Manually created / edited files.
- - .rst files, static .csv files, static pictures (.svg), ...
- - Stored in CSIT git repository.
-
-No more details about the static content in this document.
-
-
-Data to process
-```````````````
-
-The PAL processes tests results and other information produced by Jenkins jobs.
-The data are now stored as robot results in Jenkins (TODO: store the data in
-nexus) either as .zip and / or .xml files.
-
-
-Data processing
----------------
-
-As the first step, the data are downloaded and stored locally (typically on a
-Jenkins slave). If .zip files are used, the given .xml files are extracted for
-further processing.
-
-Parsing of the .xml files is performed by a class derived from
-"robot.api.ResultVisitor", only necessary methods are overridden. All and only
-necessary data is extracted from .xml file and stored in a structured form.
-
-The parsed data are stored as the multi-indexed pandas.Series data type. Its
-structure is as follows:
-
-::
-
- <job name>
- <build>
- <metadata>
- <suites>
- <tests>
-
-"job name", "build", "metadata", "suites", "tests" are indexes to access the
-data. For example:
-
-::
-
- data =
-
- job 1 name:
- build 1:
- metadata: metadata
- suites: suites
- tests: tests
- ...
- build N:
- metadata: metadata
- suites: suites
- tests: tests
- ...
- job M name:
- build 1:
- metadata: metadata
- suites: suites
- tests: tests
- ...
- build N:
- metadata: metadata
- suites: suites
- tests: tests
-
-Using indexes data["job 1 name"]["build 1"]["tests"] (e.g.:
-data["csit-vpp-perf-1704-all"]["17"]["tests"]) we get a list of all tests with
-all tests data.
-
-Data will not be accessible directly using indexes, but using getters and
-filters.
-
-**Structure of metadata:**
-
-::
-
- "metadata": {
- "version": "VPP version",
- "job": "Jenkins job name"
- "build": "Information about the build"
- },
-
-**Structure of suites:**
-
-::
-
- "suites": {
- "Suite name 1": {
- "doc": "Suite 1 documentation"
- "parent": "Suite 1 parent"
- }
- "Suite name N": {
- "doc": "Suite N documentation"
- "parent": "Suite N parent"
- }
-
-**Structure of tests:**
-
-Performance tests:
-
-::
-
- "tests": {
- "ID": {
- "name": "Test name",
- "parent": "Name of the parent of the test",
- "doc": "Test documentation"
- "msg": "Test message"
- "tags": ["tag 1", "tag 2", "tag n"],
- "type": "PDR" | "NDR",
- "throughput": {
- "value": int,
- "unit": "pps" | "bps" | "percentage"
- },
- "latency": {
- "direction1": {
- "100": {
- "min": int,
- "avg": int,
- "max": int
- },
- "50": { # Only for NDR
- "min": int,
- "avg": int,
- "max": int
- },
- "10": { # Only for NDR
- "min": int,
- "avg": int,
- "max": int
- }
- },
- "direction2": {
- "100": {
- "min": int,
- "avg": int,
- "max": int
- },
- "50": { # Only for NDR
- "min": int,
- "avg": int,
- "max": int
- },
- "10": { # Only for NDR
- "min": int,
- "avg": int,
- "max": int
- }
- }
- },
- "lossTolerance": "lossTolerance" # Only for PDR
- "vat-history": "DUT1 and DUT2 VAT History"
- },
- "show-run": "Show Run"
- },
- "ID" {
- # next test
- }
-
-Functional tests:
-
-::
-
- "tests": {
- "ID": {
- "name": "Test name",
- "parent": "Name of the parent of the test",
- "doc": "Test documentation"
- "msg": "Test message"
- "tags": ["tag 1", "tag 2", "tag n"],
- "vat-history": "DUT1 and DUT2 VAT History"
- "show-run": "Show Run"
- "status": "PASS" | "FAIL"
- },
- "ID" {
- # next test
- }
- }
-
-Note: ID is the lowercase full path to the test.
-
-
-Data filtering
-``````````````
-
-The first step when generating an element is getting the data needed to
-construct the element. The data are filtered from the processed input data.
-
-The data filtering is based on:
-
- - job name(s).
- - build number(s).
- - tag(s).
- - required data - only this data is included in the output.
-
-WARNING: The filtering is based on tags, so be careful with tagging.
-
-For example, the element which specification includes:
-
-::
-
- data:
- csit-vpp-perf-1707-all:
- - 9
- - 10
- - 13
- - 14
- - 15
- - 16
- - 17
- - 18
- - 19
- - 21
- filter:
- - "'64B' and 'BASE' and 'NDRDISC' and '1T1C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
-
-will be constructed using data from the job "csit-vpp-perf-1707-all", for all
-listed builds and the tests with the list of tags matching the filter
-conditions.
-
-The output data structure for filtered test data is:
-
-::
-
- - job 1
- - build 1
- - test 1
- - parameter 1
- - parameter 2
- ...
- - parameter n
- ...
- - test n
- ...
- ...
- - build n
- ...
- - job n
-
-
-Data analytics
-``````````````
-
-Data analytics part implements:
-
- - methods to compute statistical data from the filtered input data.
- - trending.
-
-Throughput Speedup Analysis - Multi-Core with Multi-Threading
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Throughput Speedup Analysis (TSA) calculates throughput speedup ratios
-for tested 1-, 2- and 4-core multi-threaded VPP configurations using the
-following formula:
-
-::
-
- N_core_throughput
- N_core_throughput_speedup = -----------------
- 1_core_throughput
-
-Multi-core throughput speedup ratios are plotted in grouped bar graphs
-for throughput tests with 64B/78B frame size, with number of cores on
-X-axis and speedup ratio on Y-axis.
-
-For better comparison multiple test results' data sets are plotted per
-each graph:
-
- - graph type: grouped bars;
- - graph X-axis: (testcase index, number of cores);
- - graph Y-axis: speedup factor.
-
-Subset of existing performance tests is covered by TSA graphs.
-
-**Model for TSA:**
-
-::
-
- -
- type: "plot"
- title: "TSA: 64B-*-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc"
- algorithm: "plot_throughput_speedup_analysis"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/10ge2p1x520-64B-l2-tsa-ndrdisc"
- data:
- "plot-throughput-speedup-analysis"
- filter: "'NIC_Intel-X520-DA2' and '64B' and 'BASE' and 'NDRDISC' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
- parameters:
- - "throughput"
- - "parent"
- - "tags"
- layout:
- title: "64B-*-(eth|dot1q|dot1ad)-(l2xcbase|l2bdbasemaclrn)-ndrdisc"
- layout:
- "plot-throughput-speedup-analysis"
-
-
-Comparison of results from two sets of the same test executions
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-This algorithm enables comparison of results coming from two sets of the
-same test executions. It is used to quantify performance changes across
-all tests after test environment changes e.g. Operating System
-upgrades/patches, Hardware changes.
-
-It is assumed that each set of test executions includes multiple runs
-of the same tests, 10 or more, to verify test results repeatibility and
-to yield statistically meaningful results data.
-
-Comparison results are presented in a table with a specified number of
-the best and the worst relative changes between the two sets. Following table
-columns are defined:
-
- - name of the test;
- - throughput mean values of the reference set;
- - throughput standard deviation of the reference set;
- - throughput mean values of the set to compare;
- - throughput standard deviation of the set to compare;
- - relative change of the mean values.
-
-**The model**
-
-The model specifies:
-
- - type: "table" - means this section defines a table.
- - title: Title of the table.
- - algorithm: Algorithm which is used to generate the table. The other
- parameters in this section must provide all information needed by the used
- algorithm.
- - output-file-ext: Extension of the output file.
- - output-file: File which the table will be written to.
- - reference - the builds which are used as the reference for comparison.
- - compare - the builds which are compared to the reference.
- - data: Specify the sources, jobs and builds, providing data for generating
- the table.
- - filter: Filter based on tags applied on the input data, if "template" is
- used, filtering is based on the template.
- - parameters: Only these parameters will be put to the output data
- structure.
- - nr-of-tests-shown: Number of the best and the worst tests presented in the
- table. Use 0 (zero) to present all tests.
-
-*Example:*
-
-::
-
- -
- type: "table"
- title: "Performance comparison"
- algorithm: "table_perf_comparison"
- output-file-ext: ".csv"
- output-file: "{DIR[DTR,PERF,VPP,IMPRV]}/vpp_performance_comparison"
- reference:
- title: "csit-vpp-perf-1801-all - 1"
- data:
- csit-vpp-perf-1801-all:
- - 1
- - 2
- compare:
- title: "csit-vpp-perf-1801-all - 2"
- data:
- csit-vpp-perf-1801-all:
- - 1
- - 2
- data:
- "vpp-perf-comparison"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "throughput"
- nr-of-tests-shown: 20
-
-
-Advanced data analytics
-```````````````````````
-
-In the future advanced data analytics (ADA) will be added to analyze the
-telemetry data collected from SUT telemetry sources and correlate it to
-performance test results.
-
-:TODO:
-
- - describe the concept of ADA.
- - add specification.
-
-
-Data presentation
------------------
-
-Generates the plots and tables according to the report models per
-specification file. The elements are generated using algorithms and data
-specified in their models.
-
-
-Tables
-``````
-
- - tables are generated by algorithms implemented in PAL, the model includes the
- algorithm and all necessary information.
- - output format: csv
- - generated tables are stored in specified directories and linked to .rst
- files.
-
-
-Plots
-`````
-
- - `plot.ly <https://plot.ly/>`_ is currently used to generate plots, the model
- includes the type of plot and all the necessary information to render it.
- - output format: html.
- - generated plots are stored in specified directories and linked to .rst files.
-
-
-Report generation
------------------
-
-Report is generated using Sphinx and Read_the_Docs template. PAL generates html
-and pdf formats. It is possible to define the content of the report by
-specifying the version (TODO: define the names and content of versions).
-
-
-The process
-```````````
-
-1. Read the specification.
-2. Read the input data.
-3. Process the input data.
-4. For element (plot, table, file) defined in specification:
-
- a. Get the data needed to construct the element using a filter.
- b. Generate the element.
- c. Store the element.
-
-5. Generate the report.
-6. Store the report (Nexus).
-
-The process is model driven. The elements' models (tables, plots, files
-and report itself) are defined in the specification file. Script reads
-the elements' models from specification file and generates the elements.
-
-It is easy to add elements to be generated in the report. If a new type
-of an element is required, only a new algorithm needs to be implemented
-and integrated.
-
-
-Continuous Performance Measurements and Trending
-------------------------------------------------
-
-Performance analysis and trending execution sequence:
-`````````````````````````````````````````````````````
-
-CSIT PA runs performance analysis, change detection and trending using specified
-trend analysis metrics over the rolling window of last <N> sets of historical
-measurement data. PA is defined as follows:
-
- #. PA job triggers:
-
- #. By PT job at its completion.
- #. Manually from Jenkins UI.
-
- #. Download and parse archived historical data and the new data:
-
- #. New data from latest PT job is evaluated against the rolling window
- of <N> sets of historical data.
- #. Download RF output.xml files and compressed archived data.
- #. Parse out the data filtering test cases listed in PA specification
- (part of CSIT PAL specification file).
-
- #. Calculate trend metrics for the rolling window of <N> sets of historical
- data:
-
- #. Calculate quartiles Q1, Q2, Q3.
- #. Trim outliers using IQR.
- #. Calculate TMA and TMSD.
- #. Calculate normal trending range per test case based on TMA and TMSD.
-
- #. Evaluate new test data against trend metrics:
-
- #. If within the range of (TMA +/- 3*TMSD) => Result = Pass,
- Reason = Normal.
- #. If below the range => Result = Fail, Reason = Regression.
- #. If above the range => Result = Pass, Reason = Progression.
-
- #. Generate and publish results
-
- #. Relay evaluation result to job result.
- #. Generate a new set of trend analysis summary graphs and drill-down
- graphs.
-
- #. Summary graphs to include measured values with Normal,
- Progression and Regression markers. MM shown in the background if
- possible.
- #. Drill-down graphs to include MM, TMA and TMSD.
-
- #. Publish trend analysis graphs in html format on
- https://docs.fd.io/csit/master/trending/.
-
-
-Parameters to specify:
-``````````````````````
-
-*General section - parameters common to all plots:*
-
- - type: "cpta";
- - title: The title of this section;
- - output-file-type: only ".html" is supported;
- - output-file: path where the generated files will be stored.
-
-*Plots section:*
-
- - plot title;
- - output file name;
- - input data for plots;
-
- - job to be monitored - the Jenkins job which results are used as input
- data for this test;
- - builds used for trending plot(s) - specified by a list of build
- numbers or by a range of builds defined by the first and the last
- build number;
-
- - tests to be displayed in the plot defined by a filter;
- - list of parameters to extract from the data;
- - plot layout
-
-*Example:*
-
-::
-
- -
- type: "cpta"
- title: "Continuous Performance Trending and Analysis"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/cpta"
- plots:
-
- - title: "VPP 1T1C L2 64B Packet Throughput - Trending"
- output-file-name: "l2-1t1c-x520"
- data: "plot-performance-trending-vpp"
- filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '1T1C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
- parameters:
- - "result"
- layout: "plot-cpta-vpp"
-
- - title: "DPDK 4T4C IMIX MRR Trending"
- output-file-name: "dpdk-imix-4t4c-xl710"
- data: "plot-performance-trending-dpdk"
- filter: "'NIC_Intel-XL710' and 'IMIX' and 'MRR' and '4T4C' and 'DPDK'"
- parameters:
- - "result"
- layout: "plot-cpta-dpdk"
-
-The Dashboard
-`````````````
-
-Performance dashboard tables provide the latest VPP throughput trend, trend
-compliance and detected anomalies, all on a per VPP test case basis.
-The Dashboard is generated as three tables for 1t1c, 2t2c and 4t4c MRR tests.
-
-At first, the .csv tables are generated (only the table for 1t1c is shown):
-
-::
-
- -
- type: "table"
- title: "Performance trending dashboard"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c"
- data: "plot-performance-trending-all"
- filter: "'MRR' and '1T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- ignore-list:
- - "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdscale1mmaclrn-mrr.tc01-64b-1t1c-eth-l2bdscale1mmaclrn-ndrdisc"
- outlier-const: 1.5
- window: 14
- evaluated-window: 14
- long-trend-window: 180
-
-Then, html tables stored inside .rst files are generated:
-
-::
-
- -
- type: "table"
- title: "HTML performance trending dashboard 1t1c"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c.rst"
-
-Root Cause Analysis
--------------------
-
-Root Cause Analysis (RCA) by analysing archived performance results – re-analyse
-available data for specified:
-
- - range of jobs builds,
- - set of specific tests and
- - PASS/FAIL criteria to detect performance change.
-
-In addition, PAL generates trending plots to show performance over the specified
-time interval.
-
-Root Cause Analysis - Option 1: Analysing Archived VPP Results
-``````````````````````````````````````````````````````````````
-
-It can be used to speed-up the process, or when the existing data is sufficient.
-In this case, PAL uses existing data saved in Nexus, searches for performance
-degradations and generates plots to show performance over the specified time
-interval for the selected tests.
-
-Execution Sequence
-''''''''''''''''''
-
- #. Download and parse archived historical data and the new data.
- #. Calculate trend metrics.
- #. Find regression / progression.
- #. Generate and publish results:
-
- #. Summary graphs to include measured values with Progression and
- Regression markers.
- #. List the DUT build(s) where the anomalies were detected.
-
-CSIT PAL Specification
-''''''''''''''''''''''
-
- - What to test:
-
- - first build (Good); specified by the Jenkins job name and the build
- number
- - last build (Bad); specified by the Jenkins job name and the build
- number
- - step (1..n).
-
- - Data:
-
- - tests of interest; list of tests (full name is used) which results are
- used
-
-*Example:*
-
-::
-
- TODO
-
-
-API
----
-
-List of modules, classes, methods and functions
-```````````````````````````````````````````````
-
-::
-
- specification_parser.py
-
- class Specification
-
- Methods:
- read_specification
- set_input_state
- set_input_file_name
-
- Getters:
- specification
- environment
- debug
- is_debug
- input
- builds
- output
- tables
- plots
- files
- static
-
-
- input_data_parser.py
-
- class InputData
-
- Methods:
- read_data
- filter_data
-
- Getters:
- data
- metadata
- suites
- tests
-
-
- environment.py
-
- Functions:
- clean_environment
-
- class Environment
-
- Methods:
- set_environment
-
- Getters:
- environment
-
-
- input_data_files.py
-
- Functions:
- download_data_files
- unzip_files
-
-
- generator_tables.py
-
- Functions:
- generate_tables
-
- Functions implementing algorithms to generate particular types of
- tables (called by the function "generate_tables"):
- table_details
- table_performance_improvements
-
-
- generator_plots.py
-
- Functions:
- generate_plots
-
- Functions implementing algorithms to generate particular types of
- plots (called by the function "generate_plots"):
- plot_performance_box
- plot_latency_box
-
-
- generator_files.py
-
- Functions:
- generate_files
-
- Functions implementing algorithms to generate particular types of
- files (called by the function "generate_files"):
- file_test_results
-
-
- report.py
-
- Functions:
- generate_report
-
- Functions implementing algorithms to generate particular types of
- report (called by the function "generate_report"):
- generate_html_report
- generate_pdf_report
-
- Other functions called by the function "generate_report":
- archive_input_data
- archive_report
-
-
-PAL functional diagram
-``````````````````````
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/csit_framework_documentation/}}
- \includegraphics[width=0.90\textwidth]{pal_func_diagram}
- \label{fig:pal_func_diagram}
- \end{figure}
-
-.. only:: html
-
- .. figure:: pal_func_diagram.svg
- :alt: PAL functional diagram
- :align: center
-
-
-How to add an element
-`````````````````````
-
-Element can be added by adding it's model to the specification file. If
-the element is to be generated by an existing algorithm, only it's
-parameters must be set.
-
-If a brand new type of element needs to be added, also the algorithm
-must be implemented. Element generation algorithms are implemented in
-the files with names starting with "generator" prefix. The name of the
-function implementing the algorithm and the name of algorithm in the
-specification file have to be the same.
diff --git a/resources/tools/presentation/doc/pic/graph-latency.svg b/resources/tools/presentation/doc/pic/graph-latency.svg
deleted file mode 100644
index 2d2eef2ee6..0000000000
--- a/resources/tools/presentation/doc/pic/graph-latency.svg
+++ /dev/null
@@ -1,1127 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="150mm" height="150mm" viewBox="0 0 15000 15000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="15000" height="15000"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="15" y="15" width="14970" height="14970"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="DejaVuSans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="y" horiz-adv-x="1086" d="M 659,-104 C 607,-237 556,-324 507,-365 458,-406 392,-426 309,-426 L 162,-426 162,-272 270,-272 C 321,-272 360,-260 388,-236 416,-212 447,-155 481,-66 L 514,18 61,1120 256,1120 606,244 956,1120 1151,1120 659,-104 Z"/>
- <glyph unicode="x" horiz-adv-x="1086" d="M 1124,1120 L 719,575 1145,0 928,0 602,440 276,0 59,0 494,586 96,1120 313,1120 610,721 907,1120 1124,1120 Z"/>
- <glyph unicode="w" horiz-adv-x="1510" d="M 86,1120 L 270,1120 500,246 729,1120 946,1120 1176,246 1405,1120 1589,1120 1296,0 1079,0 838,918 596,0 379,0 86,1120 Z"/>
- <glyph unicode="u" horiz-adv-x="927" d="M 174,442 L 174,1120 358,1120 358,449 C 358,343 379,264 420,211 461,158 523,131 606,131 705,131 784,163 842,226 899,289 928,376 928,485 L 928,1120 1112,1120 1112,0 928,0 928,172 C 883,104 832,54 773,21 714,-12 645,-29 567,-29 438,-29 341,11 274,91 207,171 174,288 174,442 Z "/>
- <glyph unicode="t" horiz-adv-x="689" d="M 375,1438 L 375,1120 754,1120 754,977 375,977 375,369 C 375,278 388,219 413,193 438,167 488,154 565,154 L 754,154 754,0 565,0 C 423,0 325,27 271,80 217,133 190,229 190,369 L 190,977 55,977 55,1120 190,1120 190,1438 375,1438 Z"/>
- <glyph unicode="s" horiz-adv-x="848" d="M 907,1087 L 907,913 C 855,940 801,960 745,973 689,986 631,993 571,993 480,993 411,979 366,951 320,923 297,881 297,825 297,782 313,749 346,725 379,700 444,677 543,655 L 606,641 C 737,613 830,574 885,523 940,472 967,400 967,309 967,205 926,123 844,62 761,1 648,-29 504,-29 444,-29 382,-23 317,-12 252,0 183,18 111,41 L 111,231 C 179,196 246,169 312,152 378,134 443,125 508,125 595,125 661,140 708,170 755,199 778,241 778,295 778,345 761,383 728,410 694,437 620,462 506,487 L 442,502 C 328,526 246,563 195,613 144,662 119,730 119,817 119,922 156,1004 231,1061 306,1118 412,1147 549,1147 617,1147 681,1142 741,1132 801,1122 856,1107 907,1087 Z"/>
- <glyph unicode="r" horiz-adv-x="663" d="M 842,948 C 821,960 799,969 775,975 750,980 723,983 694,983 590,983 510,949 455,882 399,814 371,717 371,590 L 371,0 186,0 186,1120 371,1120 371,946 C 410,1014 460,1065 522,1098 584,1131 659,1147 748,1147 761,1147 775,1146 790,1145 805,1143 822,1140 841,1137 L 842,948 Z"/>
- <glyph unicode="p" horiz-adv-x="1007" d="M 371,168 L 371,-426 186,-426 186,1120 371,1120 371,950 C 410,1017 459,1066 518,1099 577,1131 647,1147 729,1147 865,1147 976,1093 1061,985 1146,877 1188,735 1188,559 1188,383 1146,241 1061,133 976,25 865,-29 729,-29 647,-29 577,-13 518,20 459,52 410,101 371,168 Z M 997,559 C 997,694 969,801 914,878 858,955 781,993 684,993 587,993 510,955 455,878 399,801 371,694 371,559 371,424 399,318 455,241 510,164 587,125 684,125 781,125 858,164 914,241 969,318 997,424 997,559 Z"/>
- <glyph unicode="o" horiz-adv-x="1033" d="M 627,991 C 528,991 450,953 393,876 336,799 307,693 307,559 307,425 336,320 393,243 450,166 528,127 627,127 725,127 803,166 860,243 917,320 946,426 946,559 946,692 917,797 860,875 803,952 725,991 627,991 Z M 627,1147 C 787,1147 913,1095 1004,991 1095,887 1141,743 1141,559 1141,376 1095,232 1004,128 913,23 787,-29 627,-29 466,-29 341,23 250,128 159,232 113,376 113,559 113,743 159,887 250,991 341,1095 466,1147 627,1147 Z"/>
- <glyph unicode="n" horiz-adv-x="927" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="m" horiz-adv-x="1615" d="M 1065,905 C 1111,988 1166,1049 1230,1088 1294,1127 1369,1147 1456,1147 1573,1147 1663,1106 1726,1025 1789,943 1821,827 1821,676 L 1821,0 1636,0 1636,670 C 1636,777 1617,857 1579,909 1541,961 1483,987 1405,987 1310,987 1234,955 1179,892 1124,829 1096,742 1096,633 L 1096,0 911,0 911,670 C 911,778 892,858 854,910 816,961 757,987 678,987 584,987 509,955 454,892 399,828 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 413,1015 463,1065 522,1098 581,1131 650,1147 731,1147 812,1147 882,1126 939,1085 996,1044 1038,984 1065,905 Z"/>
- <glyph unicode="l" horiz-adv-x="186" d="M 193,1556 L 377,1556 377,0 193,0 193,1556 Z"/>
- <glyph unicode="k" horiz-adv-x="980" d="M 186,1556 L 371,1556 371,637 920,1120 1155,1120 561,596 1180,0 940,0 371,547 371,0 186,0 186,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="186" d="M 193,1120 L 377,1120 377,0 193,0 193,1120 Z M 193,1556 L 377,1556 377,1323 193,1323 193,1556 Z"/>
- <glyph unicode="h" horiz-adv-x="927" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1556 371,1556 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="e" horiz-adv-x="1033" d="M 1151,606 L 1151,516 305,516 C 313,389 351,293 420,227 488,160 583,127 705,127 776,127 844,136 911,153 977,170 1043,196 1108,231 L 1108,57 C 1042,29 974,8 905,-7 836,-22 765,-29 694,-29 515,-29 374,23 270,127 165,231 113,372 113,549 113,732 163,878 262,986 361,1093 494,1147 662,1147 813,1147 932,1099 1020,1002 1107,905 1151,773 1151,606 Z M 967,659 C 966,760 938,841 883,901 828,961 755,991 664,991 561,991 479,962 418,904 356,846 320,764 311,659 L 967,659 Z"/>
- <glyph unicode="d" horiz-adv-x="1006" d="M 930,950 L 930,1556 1114,1556 1114,0 930,0 930,168 C 891,101 843,52 784,20 725,-13 654,-29 571,-29 436,-29 326,25 241,133 156,241 113,383 113,559 113,735 156,877 241,985 326,1093 436,1147 571,1147 654,1147 725,1131 784,1099 843,1066 891,1017 930,950 Z M 303,559 C 303,424 331,318 387,241 442,164 519,125 616,125 713,125 790,164 846,241 902,318 930,424 930,559 930,694 902,801 846,878 790,955 713,993 616,993 519,993 442,955 387,878 331,801 303,694 303,559 Z"/>
- <glyph unicode="c" horiz-adv-x="874" d="M 999,1077 L 999,905 C 947,934 895,955 843,970 790,984 737,991 684,991 565,991 472,953 406,878 340,802 307,696 307,559 307,422 340,316 406,241 472,165 565,127 684,127 737,127 790,134 843,149 895,163 947,184 999,213 L 999,43 C 948,19 895,1 840,-11 785,-23 726,-29 664,-29 495,-29 361,24 262,130 163,236 113,379 113,559 113,742 163,885 264,990 364,1095 501,1147 676,1147 733,1147 788,1141 842,1130 896,1118 948,1100 999,1077 Z"/>
- <glyph unicode="b" horiz-adv-x="1007" d="M 997,559 C 997,694 969,801 914,878 858,955 781,993 684,993 587,993 510,955 455,878 399,801 371,694 371,559 371,424 399,318 455,241 510,164 587,125 684,125 781,125 858,164 914,241 969,318 997,424 997,559 Z M 371,950 C 410,1017 459,1066 518,1099 577,1131 647,1147 729,1147 865,1147 976,1093 1061,985 1146,877 1188,735 1188,559 1188,383 1146,241 1061,133 976,25 865,-29 729,-29 647,-29 577,-13 518,20 459,52 410,101 371,168 L 371,0 186,0 186,1556 371,1556 371,950 Z"/>
- <glyph unicode="a" horiz-adv-x="953" d="M 702,563 C 553,563 450,546 393,512 336,478 307,420 307,338 307,273 329,221 372,183 415,144 473,125 547,125 649,125 731,161 793,234 854,306 885,402 885,522 L 885,563 702,563 Z M 1069,639 L 1069,0 885,0 885,170 C 843,102 791,52 728,20 665,-13 589,-29 498,-29 383,-29 292,3 225,68 157,132 123,218 123,326 123,452 165,547 250,611 334,675 460,707 627,707 L 885,707 885,725 C 885,810 857,875 802,922 746,968 668,991 567,991 503,991 441,983 380,968 319,953 261,930 205,899 L 205,1069 C 272,1095 338,1115 401,1128 464,1141 526,1147 586,1147 748,1147 869,1105 949,1021 1029,937 1069,810 1069,639 Z"/>
- <glyph unicode="]" horiz-adv-x="425" d="M 623,1556 L 623,-270 199,-270 199,-127 438,-127 438,1413 199,1413 199,1556 623,1556 Z"/>
- <glyph unicode="[" horiz-adv-x="425" d="M 176,1556 L 600,1556 600,1413 360,1413 360,-127 600,-127 600,-270 176,-270 176,1556 Z"/>
- <glyph unicode="W" horiz-adv-x="1880" d="M 68,1493 L 272,1493 586,231 899,1493 1126,1493 1440,231 1753,1493 1958,1493 1583,0 1329,0 1014,1296 696,0 442,0 68,1493 Z"/>
- <glyph unicode="S" horiz-adv-x="1060" d="M 1096,1444 L 1096,1247 C 1019,1284 947,1311 879,1329 811,1347 745,1356 682,1356 572,1356 487,1335 428,1292 368,1249 338,1189 338,1110 338,1044 358,994 398,961 437,927 512,900 623,879 L 745,854 C 896,825 1007,775 1079,703 1150,630 1186,533 1186,412 1186,267 1138,158 1041,83 944,8 801,-29 614,-29 543,-29 468,-21 389,-5 309,11 226,35 141,66 L 141,274 C 223,228 303,193 382,170 461,147 538,135 614,135 729,135 818,158 881,203 944,248 975,313 975,397 975,470 953,528 908,569 863,610 789,641 686,662 L 563,686 C 412,716 303,763 236,827 169,891 135,980 135,1094 135,1226 182,1330 275,1406 368,1482 496,1520 659,1520 729,1520 800,1514 873,1501 946,1488 1020,1469 1096,1444 Z"/>
- <glyph unicode="P" horiz-adv-x="954" d="M 403,1327 L 403,766 657,766 C 751,766 824,790 875,839 926,888 952,957 952,1047 952,1136 926,1205 875,1254 824,1303 751,1327 657,1327 L 403,1327 Z M 201,1493 L 657,1493 C 824,1493 951,1455 1037,1380 1122,1304 1165,1193 1165,1047 1165,900 1122,788 1037,713 951,638 824,600 657,600 L 403,600 403,0 201,0 201,1493 Z"/>
- <glyph unicode="L" horiz-adv-x="927" d="M 201,1493 L 403,1493 403,170 1130,170 1130,0 201,0 201,1493 Z"/>
- <glyph unicode="E" horiz-adv-x="954" d="M 201,1493 L 1145,1493 1145,1323 403,1323 403,881 1114,881 1114,711 403,711 403,170 1163,170 1163,0 201,0 201,1493 Z"/>
- <glyph unicode="D" horiz-adv-x="1245" d="M 403,1327 L 403,166 647,166 C 853,166 1004,213 1100,306 1195,399 1243,547 1243,748 1243,948 1195,1095 1100,1188 1004,1281 853,1327 647,1327 L 403,1327 Z M 201,1493 L 616,1493 C 905,1493 1118,1433 1253,1313 1388,1192 1456,1004 1456,748 1456,491 1388,302 1252,181 1116,60 904,0 616,0 L 201,0 201,1493 Z"/>
- <glyph unicode="7" horiz-adv-x="953" d="M 168,1493 L 1128,1493 1128,1407 586,0 375,0 885,1323 168,1323 168,1493 Z"/>
- <glyph unicode="6" horiz-adv-x="1033" d="M 676,827 C 585,827 514,796 461,734 408,672 381,587 381,479 381,372 408,287 461,225 514,162 585,131 676,131 767,131 839,162 892,225 945,287 971,372 971,479 971,587 945,672 892,734 839,796 767,827 676,827 Z M 1077,1460 L 1077,1276 C 1026,1300 975,1318 924,1331 872,1344 821,1350 770,1350 637,1350 535,1305 465,1215 394,1125 354,989 344,807 383,865 433,910 492,941 551,972 617,987 688,987 838,987 957,942 1044,851 1131,760 1174,636 1174,479 1174,326 1129,203 1038,110 947,17 827,-29 676,-29 503,-29 371,37 280,170 189,302 143,494 143,745 143,981 199,1169 311,1310 423,1450 573,1520 762,1520 813,1520 864,1515 916,1505 967,1495 1021,1480 1077,1460 Z"/>
- <glyph unicode="5" horiz-adv-x="953" d="M 221,1493 L 1014,1493 1014,1323 406,1323 406,957 C 435,967 465,975 494,980 523,985 553,987 582,987 749,987 881,941 978,850 1075,759 1124,635 1124,479 1124,318 1074,194 974,105 874,16 733,-29 551,-29 488,-29 425,-24 360,-13 295,-2 227,14 158,35 L 158,238 C 218,205 280,181 344,165 408,149 476,141 547,141 662,141 754,171 821,232 888,293 922,375 922,479 922,583 888,665 821,726 754,787 662,817 547,817 493,817 439,811 386,799 332,787 277,768 221,743 L 221,1493 Z"/>
- <glyph unicode="4" horiz-adv-x="1086" d="M 774,1317 L 264,520 774,520 774,1317 Z M 721,1493 L 975,1493 975,520 1188,520 1188,352 975,352 975,0 774,0 774,352 100,352 100,547 721,1493 Z"/>
- <glyph unicode="3" horiz-adv-x="980" d="M 831,805 C 928,784 1003,741 1058,676 1112,611 1139,530 1139,434 1139,287 1088,173 987,92 886,11 742,-29 555,-29 492,-29 428,-23 362,-11 295,2 227,20 156,45 L 156,240 C 212,207 273,183 340,166 407,149 476,141 549,141 676,141 772,166 839,216 905,266 938,339 938,434 938,522 907,591 846,641 784,690 698,715 588,715 L 414,715 414,881 596,881 C 695,881 771,901 824,941 877,980 903,1037 903,1112 903,1189 876,1248 822,1289 767,1330 689,1350 588,1350 533,1350 473,1344 410,1332 347,1320 277,1301 201,1276 L 201,1456 C 278,1477 350,1493 417,1504 484,1515 547,1520 606,1520 759,1520 881,1485 970,1416 1059,1346 1104,1252 1104,1133 1104,1050 1080,981 1033,924 986,867 918,827 831,805 Z"/>
- <glyph unicode="2" horiz-adv-x="953" d="M 393,170 L 1098,170 1098,0 150,0 150,170 C 227,249 331,356 464,490 596,623 679,709 713,748 778,821 823,882 849,933 874,983 887,1032 887,1081 887,1160 859,1225 804,1275 748,1325 675,1350 586,1350 523,1350 456,1339 386,1317 315,1295 240,1262 160,1217 L 160,1421 C 241,1454 317,1478 388,1495 459,1512 523,1520 582,1520 737,1520 860,1481 952,1404 1044,1327 1090,1223 1090,1094 1090,1033 1079,975 1056,920 1033,865 991,800 930,725 913,706 860,650 771,558 682,465 556,336 393,170 Z"/>
- <glyph unicode="1" horiz-adv-x="900" d="M 254,170 L 584,170 584,1309 225,1237 225,1421 582,1493 784,1493 784,170 1114,170 1114,0 254,0 254,170 Z"/>
- <glyph unicode="0" horiz-adv-x="1033" d="M 651,1360 C 547,1360 469,1309 417,1207 364,1104 338,950 338,745 338,540 364,387 417,285 469,182 547,131 651,131 756,131 834,182 887,285 939,387 965,540 965,745 965,950 939,1104 887,1207 834,1309 756,1360 651,1360 Z M 651,1520 C 818,1520 946,1454 1035,1322 1123,1189 1167,997 1167,745 1167,494 1123,302 1035,170 946,37 818,-29 651,-29 484,-29 356,37 268,170 179,302 135,494 135,745 135,997 179,1189 268,1322 356,1454 484,1520 651,1520 Z"/>
- <glyph unicode="." horiz-adv-x="213" d="M 219,254 L 430,254 430,0 219,0 219,254 Z"/>
- <glyph unicode="-" horiz-adv-x="530" d="M 100,643 L 639,643 639,479 100,479 100,643 Z"/>
- <glyph unicode=" " horiz-adv-x="635"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="DejaVuSans embedded" units-per-em="2048" font-weight="bold" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="y" horiz-adv-x="1271" d="M 25,1120 L 383,1120 684,360 940,1120 1298,1120 827,-106 C 780,-231 725,-318 662,-368 599,-417 515,-442 412,-442 L 205,-442 205,-207 317,-207 C 378,-207 422,-197 450,-178 477,-159 499,-124 514,-74 L 524,-43 25,1120 Z"/>
- <glyph unicode="t" horiz-adv-x="901" d="M 563,1438 L 563,1120 932,1120 932,864 563,864 563,389 C 563,337 573,302 594,284 615,265 656,256 717,256 L 901,256 901,0 594,0 C 453,0 353,30 294,89 235,148 205,248 205,389 L 205,864 27,864 27,1120 205,1120 205,1438 563,1438 Z"/>
- <glyph unicode="n" horiz-adv-x="1112" d="M 1298,682 L 1298,0 938,0 938,111 938,522 C 938,619 936,685 932,722 927,759 920,786 909,803 895,826 876,845 852,858 828,871 801,877 770,877 695,877 637,848 594,791 551,733 530,653 530,551 L 530,0 172,0 172,1120 530,1120 530,956 C 584,1021 641,1070 702,1101 763,1132 830,1147 903,1147 1032,1147 1131,1107 1198,1028 1265,949 1298,833 1298,682 Z"/>
- <glyph unicode="k" horiz-adv-x="1218" d="M 172,1556 L 530,1556 530,709 942,1120 1358,1120 811,606 1401,0 967,0 530,467 530,0 172,0 172,1556 Z"/>
- <glyph unicode="e" horiz-adv-x="1192" d="M 1290,563 L 1290,461 453,461 C 462,377 492,314 544,272 596,230 669,209 762,209 837,209 915,220 994,243 1073,265 1154,299 1237,344 L 1237,68 C 1152,36 1068,12 983,-5 898,-21 814,-29 729,-29 526,-29 369,23 257,126 144,229 88,373 88,559 88,742 143,885 254,990 364,1095 516,1147 709,1147 885,1147 1026,1094 1132,988 1237,882 1290,740 1290,563 Z M 922,682 C 922,750 902,805 863,847 823,888 771,909 707,909 638,909 581,890 538,851 495,812 468,755 457,682 L 922,682 Z"/>
- <glyph unicode="c" horiz-adv-x="980" d="M 1077,1085 L 1077,793 C 1028,826 980,851 931,867 882,883 831,891 778,891 678,891 600,862 545,804 489,745 461,664 461,559 461,454 489,373 545,315 600,256 678,227 778,227 834,227 887,235 938,252 988,269 1034,293 1077,326 L 1077,33 C 1021,12 964,-3 907,-14 849,-24 791,-29 733,-29 531,-29 373,23 259,127 145,230 88,374 88,559 88,744 145,888 259,992 373,1095 531,1147 733,1147 792,1147 850,1142 907,1132 964,1121 1020,1106 1077,1085 Z"/>
- <glyph unicode="a" horiz-adv-x="1139" d="M 674,504 C 599,504 543,491 506,466 468,441 449,403 449,354 449,309 464,273 495,248 525,222 567,209 621,209 688,209 745,233 791,282 837,330 860,390 860,463 L 860,504 674,504 Z M 1221,639 L 1221,0 860,0 860,166 C 812,98 758,49 698,18 638,-13 565,-29 479,-29 363,-29 269,5 197,73 124,140 88,228 88,336 88,467 133,564 224,625 314,686 456,717 649,717 L 860,717 860,745 C 860,802 838,843 793,870 748,896 679,909 584,909 507,909 436,901 370,886 304,871 243,848 186,817 L 186,1090 C 263,1109 340,1123 417,1133 494,1142 572,1147 649,1147 851,1147 997,1107 1087,1028 1176,948 1221,818 1221,639 Z"/>
- <glyph unicode="P" horiz-adv-x="1218" d="M 188,1493 L 827,1493 C 1017,1493 1163,1451 1265,1367 1366,1282 1417,1162 1417,1006 1417,849 1366,729 1265,645 1163,560 1017,518 827,518 L 573,518 573,0 188,0 188,1493 Z M 573,1214 L 573,797 786,797 C 861,797 918,815 959,852 1000,888 1020,939 1020,1006 1020,1073 1000,1124 959,1160 918,1196 861,1214 786,1214 L 573,1214 Z"/>
- <glyph unicode="L" horiz-adv-x="1060" d="M 188,1493 L 573,1493 573,291 1249,291 1249,0 188,0 188,1493 Z"/>
- <glyph unicode=":" horiz-adv-x="345" d="M 229,1120 L 590,1120 590,733 229,733 229,1120 Z M 229,387 L 590,387 590,0 229,0 229,387 Z"/>
- <glyph unicode=" " horiz-adv-x="714"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150 id151 id152 id153 id154 id155 id156 id157 id158 id159 id160 id161 id162 id163 id164 id165 id166 id167 id168 id169 id170 id171 id172 id173 id174 id175 id176"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="2141" y="12815" width="30295" height="487"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="7189" y="12815" width="30294" height="487"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="2141" y="13299" width="30295" height="487"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="7189" y="13299" width="30294" height="487"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="2141" y="13783" width="30295" height="487"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="7189" y="13783" width="30294" height="487"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="416" y="416" width="14233" height="14233"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 416,416 L 14648,416 14648,14648 416,14648 416,416 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="1432" width="12403" height="10167"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 2042,1432 L 14444,1432 14444,11598 2042,11598 2042,1432 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="2789" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="2779" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2789,1432 L 2789,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="3781" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="3771" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 3781,1432 L 3781,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="4772" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="4762" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 4772,1432 L 4772,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="5764" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="5754" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 5764,1432 L 5764,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="6755" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="6745" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 6755,1432 L 6755,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="7747" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="7737" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 7747,1432 L 7747,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="8739" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="8729" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 8739,1432 L 8739,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="9730" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="9720" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 9730,1432 L 9730,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="10722" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="10712" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 10722,1432 L 10722,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="11713" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="11703" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 11713,1432 L 11713,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="12705" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="12695" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 12705,1432 L 12705,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="13696" y="1432" width="1" height="10166"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="13686" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 13696,1432 L 13696,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="10058" width="12402" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="10048" width="12402" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,10058 L 14443,10058"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="8519" width="12402" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="8509" width="12402" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,8519 L 14443,8519"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="6980" width="12402" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="6970" width="12402" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,6980 L 14443,6980"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="5440" width="12402" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="5430" width="12402" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,5440 L 14443,5440"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="3901" width="12402" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="3891" width="12402" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,3901 L 14443,3901"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="2362" width="12402" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="2352" width="12402" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,2362 L 14443,2362"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="2708" y="8786" width="164" height="2641"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 2708,8786 L 2871,8786 2708,8786 Z M 2790,8786 L 2790,11425 2790,8786 Z M 2708,11425 L 2871,11425 2708,11425 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="2708" y="8766" width="164" height="2681"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 2708,8786 L 2871,8786"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 2790,8786 L 2790,11425"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 2708,11425 L 2871,11425"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="2688" y="10330" width="205" height="205"/>
- <path fill="rgb(135,206,235)" stroke="none" d="M 2892,10432 C 2892,10488 2846,10534 2789,10534 2733,10534 2688,10488 2688,10432 2688,10376 2733,10330 2789,10330 2846,10330 2892,10376 2892,10432 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="3699" y="8842" width="165" height="2584"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 3699,8842 L 3863,8842 3699,8842 Z M 3782,8842 L 3782,11425 3782,8842 Z M 3699,11425 L 3863,11425 3699,11425 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="3699" y="8822" width="165" height="2624"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 3699,8842 L 3863,8842"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 3782,8842 L 3782,11425"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 3699,11425 L 3863,11425"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="3679" y="10281" width="205" height="206"/>
- <path fill="rgb(135,206,235)" stroke="none" d="M 3883,10384 C 3883,10440 3837,10486 3781,10486 3725,10486 3679,10440 3679,10384 3679,10327 3725,10281 3781,10281 3837,10281 3883,10327 3883,10384 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="4691" y="5527" width="165" height="5857"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 4691,5527 L 4855,5527 4691,5527 Z M 4772,5527 L 4772,11383 4772,5527 Z M 4691,11383 L 4855,11383 4691,11383 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="4691" y="5507" width="165" height="5897"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 4691,5527 L 4855,5527"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 4772,5527 L 4772,11383"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 4691,11383 L 4855,11383"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="4671" y="10038" width="205" height="205"/>
- <path fill="rgb(128,128,0)" stroke="none" d="M 4875,10140 C 4875,10197 4829,10242 4772,10242 4716,10242 4671,10197 4671,10140 4671,10083 4716,10038 4772,10038 4829,10038 4875,10083 4875,10140 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="5683" y="5521" width="164" height="5817"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 5683,5521 L 5846,5521 5683,5521 Z M 5764,5521 L 5764,11337 5764,5521 Z M 5683,11337 L 5846,11337 5683,11337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="5683" y="5501" width="164" height="5857"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 5683,5521 L 5846,5521"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 5764,5521 L 5764,11337"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 5683,11337 L 5846,11337"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="5662" y="10021" width="206" height="205"/>
- <path fill="rgb(128,128,0)" stroke="none" d="M 5867,10123 C 5867,10180 5821,10225 5765,10225 5709,10225 5662,10180 5662,10123 5662,10067 5709,10021 5765,10021 5821,10021 5867,10067 5867,10123 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="6674" y="4799" width="165" height="6508"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 6674,4799 L 6838,4799 6674,4799 Z M 6755,4799 L 6755,11306 6755,4799 Z M 6674,11306 L 6838,11306 6674,11306 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="6674" y="4779" width="165" height="6548"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 6674,4799 L 6838,4799"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 6755,4799 L 6755,11306"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 6674,11306 L 6838,11306"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="6654" y="9527" width="205" height="205"/>
- <path fill="rgb(128,0,128)" stroke="none" d="M 6858,9630 C 6858,9686 6813,9731 6756,9731 6699,9731 6654,9686 6654,9630 6654,9574 6699,9527 6756,9527 6813,9527 6858,9574 6858,9630 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="7666" y="4688" width="164" height="6650"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 7666,4688 L 7829,4688 7666,4688 Z M 7747,4688 L 7747,11337 7747,4688 Z M 7666,11337 L 7829,11337 7666,11337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="7666" y="4668" width="164" height="6690"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 7666,4688 L 7829,4688"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 7747,4688 L 7747,11337"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 7666,11337 L 7829,11337"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="7645" y="9461" width="206" height="205"/>
- <path fill="rgb(128,0,128)" stroke="none" d="M 7850,9563 C 7850,9620 7804,9665 7748,9665 7691,9665 7645,9620 7645,9563 7645,9506 7691,9461 7748,9461 7804,9461 7850,9506 7850,9563 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="8657" y="5952" width="165" height="5305"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 8657,5952 L 8821,5952 8657,5952 Z M 8740,5952 L 8740,11256 8740,5952 Z M 8657,11256 L 8821,11256 8657,11256 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="8657" y="5932" width="165" height="5345"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 8657,5952 L 8821,5952"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 8740,5952 L 8740,11256"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 8657,11256 L 8821,11256"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="8637" y="8552" width="205" height="206"/>
- <path fill="rgb(255,127,80)" stroke="none" d="M 8841,8654 C 8841,8710 8796,8757 8740,8757 8682,8757 8637,8710 8637,8654 8637,8598 8682,8552 8740,8552 8796,8552 8841,8598 8841,8654 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="9649" y="5652" width="164" height="5657"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 9649,5652 L 9812,5652 9649,5652 Z M 9731,5652 L 9731,11308 9731,5652 Z M 9649,11308 L 9812,11308 9649,11308 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="9649" y="5632" width="164" height="5697"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 9649,5652 L 9812,5652"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 9731,5652 L 9731,11308"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 9649,11308 L 9812,11308"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="9628" y="8451" width="206" height="206"/>
- <path fill="rgb(255,127,80)" stroke="none" d="M 9833,8554 C 9833,8610 9787,8656 9730,8656 9674,8656 9628,8610 9628,8554 9628,8497 9674,8451 9730,8451 9787,8451 9833,8497 9833,8554 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="10640" y="2110" width="165" height="9228"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 10640,2110 L 10804,2110 10640,2110 Z M 10723,2110 L 10723,11337 10723,2110 Z M 10640,11337 L 10804,11337 10640,11337 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="10640" y="2090" width="165" height="9268"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 10640,2110 L 10804,2110"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 10723,2110 L 10723,11337"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 10640,11337 L 10804,11337"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="10620" y="8768" width="205" height="205"/>
- <path fill="rgb(75,0,130)" stroke="none" d="M 10824,8870 C 10824,8926 10779,8972 10722,8972 10665,8972 10620,8926 10620,8870 10620,8814 10665,8768 10722,8768 10779,8768 10824,8814 10824,8870 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id74">
- <rect class="BoundingBox" stroke="none" fill="none" x="11632" y="1940" width="164" height="9382"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 11632,1940 L 11795,1940 11632,1940 Z M 11714,1940 L 11714,11321 11714,1940 Z M 11632,11321 L 11795,11321 11632,11321 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id75">
- <rect class="BoundingBox" stroke="none" fill="none" x="11632" y="1920" width="164" height="9422"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 11632,1940 L 11795,1940"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 11714,1940 L 11714,11321"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 11632,11321 L 11795,11321"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id76">
- <rect class="BoundingBox" stroke="none" fill="none" x="11611" y="8730" width="206" height="205"/>
- <path fill="rgb(75,0,130)" stroke="none" d="M 11816,8832 C 11816,8888 11769,8934 11713,8934 11657,8934 11611,8888 11611,8832 11611,8776 11657,8730 11713,8730 11769,8730 11816,8776 11816,8832 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id77">
- <rect class="BoundingBox" stroke="none" fill="none" x="12623" y="2957" width="165" height="8369"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 12623,2957 L 12787,2957 12623,2957 Z M 12705,2957 L 12705,11325 12705,2957 Z M 12623,11325 L 12787,11325 12623,11325 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id78">
- <rect class="BoundingBox" stroke="none" fill="none" x="12623" y="2937" width="165" height="8409"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 12623,2957 L 12787,2957"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 12705,2957 L 12705,11325"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 12623,11325 L 12787,11325"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id79">
- <rect class="BoundingBox" stroke="none" fill="none" x="12602" y="8340" width="206" height="206"/>
- <path fill="rgb(255,192,203)" stroke="none" d="M 12807,8442 C 12807,8498 12761,8545 12705,8545 12649,8545 12603,8498 12603,8442 12603,8386 12649,8340 12705,8340 12761,8340 12807,8386 12807,8442 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id80">
- <rect class="BoundingBox" stroke="none" fill="none" x="13615" y="3018" width="165" height="8291"/>
- <path fill="rgb(0,0,0)" stroke="none" d="M 13615,3019 L 13779,3019 13615,3019 Z M 13696,3019 L 13696,11308 13696,3019 Z M 13615,11308 L 13779,11308 13615,11308 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id81">
- <rect class="BoundingBox" stroke="none" fill="none" x="13615" y="2998" width="165" height="8331"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 13615,3019 L 13779,3019"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 13696,3019 L 13696,11308"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 13615,11308 L 13779,11308"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id82">
- <rect class="BoundingBox" stroke="none" fill="none" x="13595" y="8318" width="205" height="205"/>
- <path fill="rgb(255,192,203)" stroke="none" d="M 13799,8421 C 13799,8477 13753,8522 13697,8522 13641,8522 13595,8477 13595,8421 13595,8364 13641,8318 13697,8318 13753,8318 13799,8364 13799,8421 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id83">
- <rect class="BoundingBox" stroke="none" fill="none" x="2022" y="11597" width="12422" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,11607 L 14443,11607"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id84">
- <rect class="BoundingBox" stroke="none" fill="none" x="2022" y="1432" width="21" height="10166"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2032,1432 L 2032,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id85">
- <rect class="BoundingBox" stroke="none" fill="none" x="2789" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id86">
- <rect class="BoundingBox" stroke="none" fill="none" x="2779" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2789,11618 L 2789,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id87">
- <rect class="BoundingBox" stroke="none" fill="none" x="3781" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id88">
- <rect class="BoundingBox" stroke="none" fill="none" x="3771" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 3781,11618 L 3781,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id89">
- <rect class="BoundingBox" stroke="none" fill="none" x="4772" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id90">
- <rect class="BoundingBox" stroke="none" fill="none" x="4762" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 4772,11618 L 4772,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id91">
- <rect class="BoundingBox" stroke="none" fill="none" x="5764" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id92">
- <rect class="BoundingBox" stroke="none" fill="none" x="5754" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 5764,11618 L 5764,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id93">
- <rect class="BoundingBox" stroke="none" fill="none" x="6755" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id94">
- <rect class="BoundingBox" stroke="none" fill="none" x="6745" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 6755,11618 L 6755,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id95">
- <rect class="BoundingBox" stroke="none" fill="none" x="7747" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id96">
- <rect class="BoundingBox" stroke="none" fill="none" x="7737" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 7747,11618 L 7747,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id97">
- <rect class="BoundingBox" stroke="none" fill="none" x="8739" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id98">
- <rect class="BoundingBox" stroke="none" fill="none" x="8729" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 8739,11618 L 8739,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id99">
- <rect class="BoundingBox" stroke="none" fill="none" x="9730" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id100">
- <rect class="BoundingBox" stroke="none" fill="none" x="9720" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 9730,11618 L 9730,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id101">
- <rect class="BoundingBox" stroke="none" fill="none" x="10722" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id102">
- <rect class="BoundingBox" stroke="none" fill="none" x="10712" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 10722,11618 L 10722,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id103">
- <rect class="BoundingBox" stroke="none" fill="none" x="11713" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id104">
- <rect class="BoundingBox" stroke="none" fill="none" x="11703" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 11713,11618 L 11713,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id105">
- <rect class="BoundingBox" stroke="none" fill="none" x="12705" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id106">
- <rect class="BoundingBox" stroke="none" fill="none" x="12695" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 12705,11618 L 12705,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id107">
- <rect class="BoundingBox" stroke="none" fill="none" x="13696" y="11618" width="1" height="102"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id108">
- <rect class="BoundingBox" stroke="none" fill="none" x="13686" y="11618" width="21" height="102"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 13696,11618 L 13696,11719"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id109">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="11597" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id110">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="11587" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,11597 L 1920,11597"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id111">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="10058" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id112">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="10048" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,10058 L 1920,10058"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id113">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="8519" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id114">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="8509" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,8519 L 1920,8519"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id115">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="6980" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id116">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="6970" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,6980 L 1920,6980"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id117">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="5440" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id118">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="5430" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,5440 L 1920,5440"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id119">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="3901" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id120">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="3891" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,3901 L 1920,3901"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id121">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="2362" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id122">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="2352" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,2362 L 1920,2362"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id123">
- <rect class="BoundingBox" stroke="none" fill="none" x="925" y="11410" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="925" y="11711"><tspan fill="rgb(68,68,68)" stroke="none">0.000</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id124">
- <rect class="BoundingBox" stroke="none" fill="none" x="925" y="9870" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="925" y="10171"><tspan fill="rgb(68,68,68)" stroke="none">100.0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id125">
- <rect class="BoundingBox" stroke="none" fill="none" x="925" y="8331" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="925" y="8632"><tspan fill="rgb(68,68,68)" stroke="none">200.0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id126">
- <rect class="BoundingBox" stroke="none" fill="none" x="925" y="6792" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="925" y="7093"><tspan fill="rgb(68,68,68)" stroke="none">300.0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id127">
- <rect class="BoundingBox" stroke="none" fill="none" x="925" y="5253" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="925" y="5554"><tspan fill="rgb(68,68,68)" stroke="none">400.0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id128">
- <rect class="BoundingBox" stroke="none" fill="none" x="925" y="3714" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="925" y="4015"><tspan fill="rgb(68,68,68)" stroke="none">500.0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id129">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="12613" width="12403" height="1670"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 2042,12614 L 14444,12614 14444,14282 2042,14282 2042,12614 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id130">
- <rect class="BoundingBox" stroke="none" fill="none" x="2347" y="12856" width="205" height="206"/>
- <path fill="rgb(135,206,235)" stroke="none" d="M 2551,12957 C 2551,13014 2506,13060 2450,13060 2393,13060 2347,13014 2347,12957 2347,12901 2393,12856 2450,12856 2506,12856 2551,12901 2551,12957 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id131">
- <rect class="BoundingBox" stroke="none" fill="none" x="925" y="2174" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="925" y="2475"><tspan fill="rgb(68,68,68)" stroke="none">600.0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id132">
- <rect class="BoundingBox" stroke="none" fill="none" x="7394" y="12856" width="205" height="206"/>
- <path fill="rgb(128,128,0)" stroke="none" d="M 7598,12957 C 7598,13014 7553,13060 7496,13060 7439,13060 7394,13014 7394,12957 7394,12901 7439,12856 7496,12856 7553,12856 7598,12901 7598,12957 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id133">
- <rect class="BoundingBox" stroke="none" fill="none" x="2856" y="12783" width="1870" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2856" y="13084"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2patch</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id134">
- <rect class="BoundingBox" stroke="none" fill="none" x="2347" y="13340" width="205" height="205"/>
- <path fill="rgb(128,0,128)" stroke="none" d="M 2551,13442 C 2551,13498 2506,13544 2450,13544 2393,13544 2347,13498 2347,13442 2347,13385 2393,13340 2450,13340 2506,13340 2551,13385 2551,13442 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id135">
- <rect class="BoundingBox" stroke="none" fill="none" x="7903" y="12783" width="2099" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="7903" y="13084"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2xcbase</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id136">
- <rect class="BoundingBox" stroke="none" fill="none" x="7394" y="13340" width="205" height="205"/>
- <path fill="rgb(255,127,80)" stroke="none" d="M 7598,13442 C 7598,13498 7553,13544 7496,13544 7439,13544 7394,13498 7394,13442 7394,13385 7439,13340 7496,13340 7553,13340 7598,13385 7598,13442 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id137">
- <rect class="BoundingBox" stroke="none" fill="none" x="2856" y="13267" width="3267" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2856" y="13568"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2bdbasemaclrn</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id138">
- <rect class="BoundingBox" stroke="none" fill="none" x="2347" y="13823" width="205" height="206"/>
- <path fill="rgb(75,0,130)" stroke="none" d="M 2551,13925 C 2551,13981 2506,14028 2450,14028 2393,14028 2347,13981 2347,13925 2347,13869 2393,13823 2450,13823 2506,13823 2551,13869 2551,13925 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id139">
- <rect class="BoundingBox" stroke="none" fill="none" x="7903" y="13267" width="3932" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="7903" y="13568"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2bdscale10kmaclrn</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id140">
- <rect class="BoundingBox" stroke="none" fill="none" x="7394" y="13823" width="205" height="206"/>
- <path fill="rgb(255,192,203)" stroke="none" d="M 7598,13925 C 7598,13981 7553,14028 7496,14028 7439,14028 7394,13981 7394,13925 7394,13869 7439,13823 7496,13823 7553,13823 7598,13869 7598,13925 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id141">
- <rect class="BoundingBox" stroke="none" fill="none" x="2856" y="13750" width="4139" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2856" y="14051"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2bdscale100kmaclrn</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id142">
- <rect class="BoundingBox" stroke="none" fill="none" x="7903" y="13750" width="3851" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="7903" y="14051"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2bdscale1mmaclrn</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id143">
- <rect class="BoundingBox" stroke="none" fill="none" x="1450" y="585" width="12136" height="426"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="365px" font-weight="700"><tspan class="TextPosition" x="1462" y="924"><tspan fill="rgb(68,68,68)" stroke="none">Packet Latency: </tspan><tspan font-weight="400" fill="rgb(68,68,68)" stroke="none">l2sw-3n-hsw-x710-64b-1t1c-ndr-base-and-scale</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id144">
- <rect class="BoundingBox" stroke="none" fill="none" x="7494" y="12150" width="1496" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="7505" y="12451"><tspan fill="rgb(68,68,68)" stroke="none">Direction</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id145">
- <rect class="BoundingBox" stroke="none" fill="none" x="2437" y="11607" width="715" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id146">
- <rect class="BoundingBox" stroke="none" fill="none" x="2428" y="11597" width="735" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id147">
- <rect class="BoundingBox" stroke="none" fill="none" x="501" y="4702" width="379" height="3638"/>
- <text class="TextShape" transform="translate(802,8328) rotate(-90) translate(-802,-8328)"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="802" y="8328"><tspan fill="rgb(68,68,68)" stroke="none">Packet Latency [uSec]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id148">
- <rect class="BoundingBox" stroke="none" fill="none" x="3435" y="11607" width="713" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id149">
- <rect class="BoundingBox" stroke="none" fill="none" x="3424" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id150">
- <rect class="BoundingBox" stroke="none" fill="none" x="4411" y="11607" width="713" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id151">
- <rect class="BoundingBox" stroke="none" fill="none" x="4400" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id152">
- <rect class="BoundingBox" stroke="none" fill="none" x="5407" y="11607" width="713" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id153">
- <rect class="BoundingBox" stroke="none" fill="none" x="5397" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id154">
- <rect class="BoundingBox" stroke="none" fill="none" x="3466" y="11641" width="1835" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="3466" y="11942"><tspan fill="rgb(68,68,68)" stroke="none">E-W W-E</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id155">
- <rect class="BoundingBox" stroke="none" fill="none" x="6403" y="11607" width="713" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id156">
- <rect class="BoundingBox" stroke="none" fill="none" x="6393" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id157">
- <rect class="BoundingBox" stroke="none" fill="none" x="7399" y="11607" width="714" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id158">
- <rect class="BoundingBox" stroke="none" fill="none" x="7389" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id159">
- <rect class="BoundingBox" stroke="none" fill="none" x="5400" y="11622" width="1801" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="5400" y="11923"><tspan fill="rgb(68,68,68)" stroke="none">E-W W-E</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id160">
- <rect class="BoundingBox" stroke="none" fill="none" x="8375" y="11607" width="713" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id161">
- <rect class="BoundingBox" stroke="none" fill="none" x="8365" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id162">
- <rect class="BoundingBox" stroke="none" fill="none" x="9371" y="11607" width="714" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id163">
- <rect class="BoundingBox" stroke="none" fill="none" x="9361" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id164">
- <rect class="BoundingBox" stroke="none" fill="none" x="7430" y="11641" width="1771" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="7430" y="11942"><tspan fill="rgb(68,68,68)" stroke="none">E-W W-E</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id165">
- <rect class="BoundingBox" stroke="none" fill="none" x="10367" y="11607" width="714" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id166">
- <rect class="BoundingBox" stroke="none" fill="none" x="10357" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id167">
- <rect class="BoundingBox" stroke="none" fill="none" x="11363" y="11607" width="714" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id168">
- <rect class="BoundingBox" stroke="none" fill="none" x="11353" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id169">
- <rect class="BoundingBox" stroke="none" fill="none" x="9402" y="11641" width="1899" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="9402" y="11942"><tspan fill="rgb(68,68,68)" stroke="none">E-W W-E</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id170">
- <rect class="BoundingBox" stroke="none" fill="none" x="12339" y="11607" width="714" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id171">
- <rect class="BoundingBox" stroke="none" fill="none" x="12329" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id172">
- <rect class="BoundingBox" stroke="none" fill="none" x="13335" y="11607" width="714" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id173">
- <rect class="BoundingBox" stroke="none" fill="none" x="13325" y="11597" width="734" height="470"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id174">
- <rect class="BoundingBox" stroke="none" fill="none" x="11394" y="11641" width="1807" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="11394" y="11942"><tspan fill="rgb(68,68,68)" stroke="none">E-W W-E</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id175">
- <rect class="BoundingBox" stroke="none" fill="none" x="13366" y="11641" width="651" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="13366" y="11942"><tspan fill="rgb(68,68,68)" stroke="none">E-W</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id176">
- <rect class="BoundingBox" stroke="none" fill="none" x="2469" y="11641" width="651" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2469" y="11942"><tspan fill="rgb(68,68,68)" stroke="none">W-E</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/resources/tools/presentation/doc/pic/graph-speedup.svg b/resources/tools/presentation/doc/pic/graph-speedup.svg
deleted file mode 100644
index c55e8ac548..0000000000
--- a/resources/tools/presentation/doc/pic/graph-speedup.svg
+++ /dev/null
@@ -1,1554 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="150mm" height="150mm" viewBox="0 0 15000 15000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="15000" height="15000"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="15" y="15" width="14970" height="14970"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="Courier embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1693" descent="609"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="u" horiz-adv-x="901" d="M 365,1082 L 365,396 C 365,343 369,299 377,264 384,229 397,200 415,179 432,157 455,142 484,133 512,124 547,119 589,119 632,119 670,127 705,142 739,157 768,178 793,207 817,235 836,270 849,312 862,353 868,401 868,455 L 868,1082 1049,1082 1049,228 C 1049,205 1049,181 1050,156 1050,131 1050,107 1051,85 1052,62 1052,43 1053,27 1054,11 1054,3 1055,3 L 885,3 C 884,6 884,15 883,30 882,44 882,61 881,79 880,98 879,117 878,136 877,156 877,172 877,185 L 874,185 C 857,154 838,125 817,100 796,75 772,53 745,36 718,18 686,4 651,-6 616,-15 575,-20 528,-20 468,-20 416,-13 373,2 330,17 294,39 266,70 238,101 218,140 205,189 192,237 185,294 185,361 L 185,1082 365,1082 Z"/>
- <glyph unicode="t" horiz-adv-x="821" d="M 190,940 L 190,1082 360,1082 418,1364 538,1364 538,1082 970,1082 970,940 538,940 538,288 C 538,235 552,196 581,171 609,146 655,133 720,133 747,133 774,134 803,137 831,139 858,142 885,145 911,148 936,152 959,156 982,160 1001,164 1017,167 L 1017,30 C 1002,26 983,21 960,16 937,11 911,6 882,1 853,-4 821,-8 787,-11 753,-14 718,-16 682,-16 574,-16 493,7 439,53 385,98 358,170 358,269 L 358,940 190,940 Z"/>
- <glyph unicode="s" horiz-adv-x="874" d="M 1060,309 C 1060,258 1050,213 1031,172 1011,131 982,97 945,69 908,40 862,18 808,3 753,-12 691,-20 621,-20 558,-20 502,-15 452,-7 401,3 357,17 319,38 281,59 249,86 224,121 198,155 179,197 167,248 L 326,279 C 334,242 347,213 365,192 382,170 404,153 429,142 454,131 482,123 515,120 548,116 583,114 621,114 660,114 696,117 729,123 762,128 790,138 814,152 838,165 857,183 871,205 884,226 891,253 891,285 891,318 883,345 866,366 849,386 825,403 796,417 767,431 732,443 692,453 651,463 607,474 560,487 517,498 475,511 433,524 391,537 354,555 321,577 288,598 261,626 241,659 220,692 210,735 210,786 210,884 245,961 316,1016 387,1071 489,1099 623,1099 676,1099 725,1094 771,1085 817,1075 858,1060 894,1039 930,1018 960,991 985,958 1009,925 1026,885 1035,839 L 873,819 C 868,849 858,873 843,892 828,911 809,926 787,937 764,948 739,955 711,959 683,963 654,965 623,965 460,965 378,915 378,814 378,783 385,759 400,740 414,721 434,705 460,692 486,679 517,669 553,660 589,651 629,640 672,629 715,618 760,606 806,592 851,578 893,559 931,536 968,513 999,483 1024,447 1048,410 1060,364 1060,309 Z"/>
- <glyph unicode="r" horiz-adv-x="768" d="M 1045,918 C 1014,923 981,928 947,932 912,935 874,937 833,937 777,937 727,926 682,903 637,880 600,850 569,811 538,772 515,726 499,674 482,622 474,567 474,508 L 474,0 294,0 294,701 C 294,738 292,776 288,815 284,854 279,890 274,925 269,959 263,990 257,1017 251,1044 246,1066 242,1082 L 413,1082 C 418,1066 423,1048 428,1027 433,1006 437,985 442,963 447,940 451,918 454,895 457,872 460,851 461,832 L 466,832 C 485,873 504,911 525,944 546,977 570,1006 599,1029 627,1052 660,1070 699,1083 738,1096 784,1102 839,1102 876,1102 913,1100 949,1097 985,1094 1017,1090 1045,1085 L 1045,918 Z"/>
- <glyph unicode="p" horiz-adv-x="927" d="M 1090,546 C 1090,464 1083,388 1070,319 1057,250 1035,190 1004,140 973,90 933,51 883,23 833,-6 771,-20 698,-20 661,-20 626,-17 593,-10 560,-3 529,7 500,22 471,37 446,56 424,79 401,102 382,131 367,164 L 362,164 C 363,163 363,157 364,147 364,136 364,123 365,108 365,93 365,75 366,56 366,37 366,17 366,-2 L 366,-425 185,-425 185,861 C 185,888 185,914 185,939 184,963 184,986 183,1005 182,1025 182,1042 181,1056 180,1070 180,1077 179,1077 L 354,1077 C 355,1075 356,1068 357,1056 358,1044 359,1030 360,1013 361,996 362,978 363,958 364,939 364,921 364,904 L 368,904 C 385,939 404,969 425,994 446,1019 469,1040 496,1057 523,1073 553,1085 586,1093 619,1100 657,1104 698,1104 771,1104 833,1091 883,1064 933,1037 973,1000 1004,951 1035,902 1057,843 1070,774 1083,705 1090,629 1090,546 Z M 904,546 C 904,613 900,672 892,724 884,776 870,820 851,856 831,891 805,918 773,937 740,956 700,965 651,965 612,965 575,959 540,947 505,934 475,912 450,880 424,847 404,802 389,745 374,688 366,614 366,524 366,447 372,383 385,331 397,278 415,236 439,204 463,171 493,148 528,134 563,120 604,113 649,113 698,113 738,123 771,142 804,161 830,188 850,225 869,262 883,307 892,361 900,415 904,477 904,546 Z"/>
- <glyph unicode="m" horiz-adv-x="1033" d="M 531,0 L 531,686 C 531,739 529,783 525,818 521,853 515,882 506,904 497,925 485,941 471,950 456,959 438,963 417,963 395,963 375,955 358,938 341,921 326,897 313,866 300,835 291,797 284,754 277,710 274,661 274,607 L 274,0 105,0 105,853 C 105,876 105,900 105,925 104,950 104,974 103,996 102,1019 102,1038 101,1054 100,1070 100,1078 99,1078 L 248,1078 C 249,1075 249,1066 250,1053 251,1040 251,1024 252,1007 253,990 253,972 254,954 254,936 254,920 254,907 L 256,907 C 265,933 275,958 287,982 299,1005 314,1026 331,1044 348,1062 368,1076 391,1087 414,1097 441,1102 472,1102 531,1102 575,1086 604,1054 633,1022 653,973 666,906 L 668,906 C 680,937 693,965 708,990 722,1014 738,1034 757,1051 776,1068 797,1080 821,1089 845,1098 873,1102 904,1102 945,1102 979,1095 1007,1080 1035,1065 1058,1043 1075,1012 1092,981 1105,942 1113,894 1120,846 1124,788 1124,721 L 1124,0 956,0 956,686 C 956,739 954,783 950,818 946,853 940,882 931,904 922,925 910,941 896,950 881,959 863,963 842,963 798,963 763,935 738,879 712,823 699,739 699,627 L 699,0 531,0 Z"/>
- <glyph unicode="f" horiz-adv-x="954" d="M 580,940 L 580,0 400,0 400,940 138,940 138,1082 400,1082 400,1107 C 400,1174 408,1231 423,1279 438,1326 462,1365 495,1395 528,1425 572,1447 625,1461 678,1475 742,1482 818,1482 837,1482 860,1482 887,1482 914,1482 940,1481 967,1479 994,1477 1019,1474 1043,1471 1066,1469 1085,1466 1099,1463 L 1099,1318 C 1087,1321 1069,1324 1045,1327 1021,1330 996,1331 970,1331 943,1331 918,1331 894,1331 870,1331 852,1331 839,1331 795,1331 757,1328 724,1321 691,1314 664,1302 643,1284 622,1266 606,1241 596,1210 585,1178 580,1137 580,1087 L 580,1087 1071,1087 1071,940 580,940 Z"/>
- <glyph unicode="e" horiz-adv-x="954" d="M 322,503 C 322,446 328,394 341,347 354,299 373,258 398,224 423,189 455,163 493,144 530,125 574,115 623,115 660,115 694,119 725,128 756,136 783,147 808,162 833,177 853,194 870,215 887,235 899,257 907,281 L 1065,236 C 1054,206 1038,176 1017,146 996,115 967,88 932,64 897,39 854,19 803,4 752,-12 692,-20 623,-20 546,-20 478,-8 417,16 356,40 305,76 263,123 221,170 189,230 167,301 144,372 133,454 133,548 133,652 146,739 173,810 199,881 234,938 279,981 324,1024 375,1055 434,1074 492,1093 553,1102 617,1102 704,1102 778,1088 839,1060 899,1032 948,993 986,943 1024,892 1052,832 1069,761 1086,690 1094,612 1094,527 L 1094,503 322,503 Z M 619,969 C 588,969 556,964 523,955 489,945 458,928 429,903 400,878 376,845 357,803 337,760 326,706 324,641 L 908,641 C 903,704 891,756 874,798 857,840 835,874 810,899 784,924 755,942 722,953 689,964 655,969 619,969 Z"/>
- <glyph unicode="d" horiz-adv-x="927" d="M 862,174 C 829,104 786,53 732,22 678,-10 611,-26 530,-26 395,-26 296,20 233,113 170,206 138,345 138,532 138,909 269,1098 530,1098 611,1098 678,1084 733,1055 787,1026 830,979 863,914 L 865,914 C 865,917 865,926 865,940 864,954 864,969 864,986 864,1003 864,1019 864,1034 863,1049 863,1059 863,1065 L 863,1484 1043,1484 1043,219 C 1043,193 1043,168 1044,143 1044,119 1044,97 1045,77 1046,57 1046,40 1047,26 1048,11 1048,4 1049,4 L 877,4 C 876,7 875,14 874,25 873,37 872,51 871,68 870,84 869,101 868,120 867,139 867,157 867,174 L 862,174 Z M 324,538 C 324,463 329,399 339,346 348,293 363,249 384,214 404,179 430,154 462,138 494,121 532,113 577,113 623,113 664,121 700,137 735,153 765,179 790,214 814,249 832,294 845,350 857,406 863,474 863,554 863,631 857,696 845,749 832,801 814,843 790,875 766,907 736,930 701,944 666,958 625,965 579,965 536,965 499,957 467,942 435,927 409,902 388,868 367,834 351,790 340,736 329,681 324,615 324,538 Z"/>
- <glyph unicode="c" horiz-adv-x="927" d="M 130,542 C 130,651 144,741 173,813 202,885 240,942 287,985 334,1028 387,1058 447,1076 507,1093 569,1102 632,1102 697,1102 756,1094 807,1077 858,1060 903,1038 940,1009 977,980 1007,945 1030,906 1053,867 1069,824 1078,779 L 886,765 C 875,826 849,874 806,909 763,944 703,961 624,961 567,961 519,952 480,934 441,915 409,889 386,854 362,819 345,775 335,724 324,672 319,613 319,546 319,479 324,420 335,367 345,314 362,269 386,232 409,195 441,167 480,148 519,129 566,119 623,119 695,119 755,136 802,171 849,205 879,257 890,328 L 1080,328 C 1074,283 1060,239 1037,197 1014,155 984,118 946,86 908,54 863,28 810,9 757,-10 698,-20 631,-20 540,-20 462,-6 399,23 335,52 283,91 244,142 204,192 175,251 157,320 139,388 130,462 130,542 Z"/>
- <glyph unicode="a" horiz-adv-x="1033" d="M 1101,111 C 1111,111 1121,112 1131,113 1141,114 1151,116 1160,118 L 1160,6 C 1137,1 1115,-3 1093,-6 1070,-9 1046,-10 1021,-10 987,-10 958,-5 934,4 909,13 889,26 874,45 859,63 847,86 839,113 831,140 826,171 824,207 L 818,207 C 799,172 779,141 756,113 733,85 707,61 678,42 649,22 615,7 577,-4 539,-15 495,-20 446,-20 341,-20 261,9 208,66 155,124 128,203 128,303 128,375 141,433 168,479 194,525 228,561 271,587 314,613 362,631 417,641 471,652 526,657 582,657 L 818,657 818,717 C 818,762 814,800 805,832 796,863 782,889 764,908 745,928 722,942 694,951 666,960 633,965 596,965 563,965 533,963 506,958 479,953 455,944 436,931 417,918 401,900 389,878 376,855 368,827 364,793 L 176,810 C 183,853 195,892 214,928 232,963 258,994 291,1020 324,1046 366,1066 417,1081 467,1095 528,1102 599,1102 732,1102 833,1071 900,1009 967,946 1000,856 1000,738 L 1000,272 C 1000,219 1007,179 1021,152 1035,125 1062,111 1101,111 Z M 492,117 C 547,117 595,127 636,148 677,169 711,195 738,227 765,259 785,294 798,332 811,371 818,408 818,443 L 818,531 628,531 C 591,531 555,528 518,523 481,518 447,508 418,492 388,476 364,452 345,422 326,391 317,351 317,300 317,245 332,201 362,167 391,134 435,117 492,117 Z"/>
- <glyph unicode="_" horiz-adv-x="1218" d="M -5,-220 L -5,-124 1233,-124 1233,-220 -5,-220 Z"/>
- <glyph unicode=" " horiz-adv-x="1217"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="DejaVuSans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="y" horiz-adv-x="1086" d="M 659,-104 C 607,-237 556,-324 507,-365 458,-406 392,-426 309,-426 L 162,-426 162,-272 270,-272 C 321,-272 360,-260 388,-236 416,-212 447,-155 481,-66 L 514,18 61,1120 256,1120 606,244 956,1120 1151,1120 659,-104 Z"/>
- <glyph unicode="x" horiz-adv-x="1086" d="M 1124,1120 L 719,575 1145,0 928,0 602,440 276,0 59,0 494,586 96,1120 313,1120 610,721 907,1120 1124,1120 Z"/>
- <glyph unicode="w" horiz-adv-x="1510" d="M 86,1120 L 270,1120 500,246 729,1120 946,1120 1176,246 1405,1120 1589,1120 1296,0 1079,0 838,918 596,0 379,0 86,1120 Z"/>
- <glyph unicode="u" horiz-adv-x="927" d="M 174,442 L 174,1120 358,1120 358,449 C 358,343 379,264 420,211 461,158 523,131 606,131 705,131 784,163 842,226 899,289 928,376 928,485 L 928,1120 1112,1120 1112,0 928,0 928,172 C 883,104 832,54 773,21 714,-12 645,-29 567,-29 438,-29 341,11 274,91 207,171 174,288 174,442 Z "/>
- <glyph unicode="t" horiz-adv-x="689" d="M 375,1438 L 375,1120 754,1120 754,977 375,977 375,369 C 375,278 388,219 413,193 438,167 488,154 565,154 L 754,154 754,0 565,0 C 423,0 325,27 271,80 217,133 190,229 190,369 L 190,977 55,977 55,1120 190,1120 190,1438 375,1438 Z"/>
- <glyph unicode="s" horiz-adv-x="848" d="M 907,1087 L 907,913 C 855,940 801,960 745,973 689,986 631,993 571,993 480,993 411,979 366,951 320,923 297,881 297,825 297,782 313,749 346,725 379,700 444,677 543,655 L 606,641 C 737,613 830,574 885,523 940,472 967,400 967,309 967,205 926,123 844,62 761,1 648,-29 504,-29 444,-29 382,-23 317,-12 252,0 183,18 111,41 L 111,231 C 179,196 246,169 312,152 378,134 443,125 508,125 595,125 661,140 708,170 755,199 778,241 778,295 778,345 761,383 728,410 694,437 620,462 506,487 L 442,502 C 328,526 246,563 195,613 144,662 119,730 119,817 119,922 156,1004 231,1061 306,1118 412,1147 549,1147 617,1147 681,1142 741,1132 801,1122 856,1107 907,1087 Z"/>
- <glyph unicode="r" horiz-adv-x="663" d="M 842,948 C 821,960 799,969 775,975 750,980 723,983 694,983 590,983 510,949 455,882 399,814 371,717 371,590 L 371,0 186,0 186,1120 371,1120 371,946 C 410,1014 460,1065 522,1098 584,1131 659,1147 748,1147 761,1147 775,1146 790,1145 805,1143 822,1140 841,1137 L 842,948 Z"/>
- <glyph unicode="p" horiz-adv-x="1007" d="M 371,168 L 371,-426 186,-426 186,1120 371,1120 371,950 C 410,1017 459,1066 518,1099 577,1131 647,1147 729,1147 865,1147 976,1093 1061,985 1146,877 1188,735 1188,559 1188,383 1146,241 1061,133 976,25 865,-29 729,-29 647,-29 577,-13 518,20 459,52 410,101 371,168 Z M 997,559 C 997,694 969,801 914,878 858,955 781,993 684,993 587,993 510,955 455,878 399,801 371,694 371,559 371,424 399,318 455,241 510,164 587,125 684,125 781,125 858,164 914,241 969,318 997,424 997,559 Z"/>
- <glyph unicode="o" horiz-adv-x="1033" d="M 627,991 C 528,991 450,953 393,876 336,799 307,693 307,559 307,425 336,320 393,243 450,166 528,127 627,127 725,127 803,166 860,243 917,320 946,426 946,559 946,692 917,797 860,875 803,952 725,991 627,991 Z M 627,1147 C 787,1147 913,1095 1004,991 1095,887 1141,743 1141,559 1141,376 1095,232 1004,128 913,23 787,-29 627,-29 466,-29 341,23 250,128 159,232 113,376 113,559 113,743 159,887 250,991 341,1095 466,1147 627,1147 Z"/>
- <glyph unicode="n" horiz-adv-x="927" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="m" horiz-adv-x="1615" d="M 1065,905 C 1111,988 1166,1049 1230,1088 1294,1127 1369,1147 1456,1147 1573,1147 1663,1106 1726,1025 1789,943 1821,827 1821,676 L 1821,0 1636,0 1636,670 C 1636,777 1617,857 1579,909 1541,961 1483,987 1405,987 1310,987 1234,955 1179,892 1124,829 1096,742 1096,633 L 1096,0 911,0 911,670 C 911,778 892,858 854,910 816,961 757,987 678,987 584,987 509,955 454,892 399,828 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 413,1015 463,1065 522,1098 581,1131 650,1147 731,1147 812,1147 882,1126 939,1085 996,1044 1038,984 1065,905 Z"/>
- <glyph unicode="l" horiz-adv-x="186" d="M 193,1556 L 377,1556 377,0 193,0 193,1556 Z"/>
- <glyph unicode="k" horiz-adv-x="980" d="M 186,1556 L 371,1556 371,637 920,1120 1155,1120 561,596 1180,0 940,0 371,547 371,0 186,0 186,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="186" d="M 193,1120 L 377,1120 377,0 193,0 193,1120 Z M 193,1556 L 377,1556 377,1323 193,1323 193,1556 Z"/>
- <glyph unicode="h" horiz-adv-x="927" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1556 371,1556 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="g" horiz-adv-x="1006" d="M 930,573 C 930,706 903,810 848,883 793,956 715,993 616,993 517,993 441,956 386,883 331,810 303,706 303,573 303,440 331,337 386,264 441,191 517,154 616,154 715,154 793,191 848,264 903,337 930,440 930,573 Z M 1114,139 C 1114,-52 1072,-193 987,-287 902,-379 773,-426 598,-426 533,-426 472,-421 415,-412 358,-402 302,-387 248,-367 L 248,-188 C 302,-217 355,-239 408,-253 461,-267 514,-274 569,-274 690,-274 780,-242 840,-180 900,-116 930,-21 930,106 L 930,197 C 892,131 843,82 784,49 725,16 654,0 571,0 434,0 323,52 239,157 155,262 113,400 113,573 113,746 155,885 239,990 323,1095 434,1147 571,1147 654,1147 725,1131 784,1098 843,1065 892,1016 930,950 L 930,1120 1114,1120 1114,139 Z"/>
- <glyph unicode="f" horiz-adv-x="716" d="M 760,1556 L 760,1403 584,1403 C 518,1403 472,1390 447,1363 421,1336 408,1288 408,1219 L 408,1120 711,1120 711,977 408,977 408,0 223,0 223,977 47,977 47,1120 223,1120 223,1198 C 223,1323 252,1414 310,1471 368,1528 460,1556 586,1556 L 760,1556 Z"/>
- <glyph unicode="e" horiz-adv-x="1033" d="M 1151,606 L 1151,516 305,516 C 313,389 351,293 420,227 488,160 583,127 705,127 776,127 844,136 911,153 977,170 1043,196 1108,231 L 1108,57 C 1042,29 974,8 905,-7 836,-22 765,-29 694,-29 515,-29 374,23 270,127 165,231 113,372 113,549 113,732 163,878 262,986 361,1093 494,1147 662,1147 813,1147 932,1099 1020,1002 1107,905 1151,773 1151,606 Z M 967,659 C 966,760 938,841 883,901 828,961 755,991 664,991 561,991 479,962 418,904 356,846 320,764 311,659 L 967,659 Z"/>
- <glyph unicode="d" horiz-adv-x="1006" d="M 930,950 L 930,1556 1114,1556 1114,0 930,0 930,168 C 891,101 843,52 784,20 725,-13 654,-29 571,-29 436,-29 326,25 241,133 156,241 113,383 113,559 113,735 156,877 241,985 326,1093 436,1147 571,1147 654,1147 725,1131 784,1099 843,1066 891,1017 930,950 Z M 303,559 C 303,424 331,318 387,241 442,164 519,125 616,125 713,125 790,164 846,241 902,318 930,424 930,559 930,694 902,801 846,878 790,955 713,993 616,993 519,993 442,955 387,878 331,801 303,694 303,559 Z"/>
- <glyph unicode="c" horiz-adv-x="874" d="M 999,1077 L 999,905 C 947,934 895,955 843,970 790,984 737,991 684,991 565,991 472,953 406,878 340,802 307,696 307,559 307,422 340,316 406,241 472,165 565,127 684,127 737,127 790,134 843,149 895,163 947,184 999,213 L 999,43 C 948,19 895,1 840,-11 785,-23 726,-29 664,-29 495,-29 361,24 262,130 163,236 113,379 113,559 113,742 163,885 264,990 364,1095 501,1147 676,1147 733,1147 788,1141 842,1130 896,1118 948,1100 999,1077 Z"/>
- <glyph unicode="b" horiz-adv-x="1007" d="M 997,559 C 997,694 969,801 914,878 858,955 781,993 684,993 587,993 510,955 455,878 399,801 371,694 371,559 371,424 399,318 455,241 510,164 587,125 684,125 781,125 858,164 914,241 969,318 997,424 997,559 Z M 371,950 C 410,1017 459,1066 518,1099 577,1131 647,1147 729,1147 865,1147 976,1093 1061,985 1146,877 1188,735 1188,559 1188,383 1146,241 1061,133 976,25 865,-29 729,-29 647,-29 577,-13 518,20 459,52 410,101 371,168 L 371,0 186,0 186,1556 371,1556 371,950 Z"/>
- <glyph unicode="a" horiz-adv-x="953" d="M 702,563 C 553,563 450,546 393,512 336,478 307,420 307,338 307,273 329,221 372,183 415,144 473,125 547,125 649,125 731,161 793,234 854,306 885,402 885,522 L 885,563 702,563 Z M 1069,639 L 1069,0 885,0 885,170 C 843,102 791,52 728,20 665,-13 589,-29 498,-29 383,-29 292,3 225,68 157,132 123,218 123,326 123,452 165,547 250,611 334,675 460,707 627,707 L 885,707 885,725 C 885,810 857,875 802,922 746,968 668,991 567,991 503,991 441,983 380,968 319,953 261,930 205,899 L 205,1069 C 272,1095 338,1115 401,1128 464,1141 526,1147 586,1147 748,1147 869,1105 949,1021 1029,937 1069,810 1069,639 Z"/>
- <glyph unicode="]" horiz-adv-x="425" d="M 623,1556 L 623,-270 199,-270 199,-127 438,-127 438,1413 199,1413 199,1556 623,1556 Z"/>
- <glyph unicode="[" horiz-adv-x="425" d="M 176,1556 L 600,1556 600,1413 360,1413 360,-127 600,-127 600,-270 176,-270 176,1556 Z"/>
- <glyph unicode="T" horiz-adv-x="1271" d="M -6,1493 L 1257,1493 1257,1323 727,1323 727,0 524,0 524,1323 -6,1323 -6,1493 Z"/>
- <glyph unicode="Q" horiz-adv-x="1377" d="M 807,1356 C 660,1356 544,1301 458,1192 371,1083 328,934 328,745 328,557 371,408 458,299 544,190 660,135 807,135 954,135 1070,190 1156,299 1241,408 1284,557 1284,745 1284,934 1241,1083 1156,1192 1070,1301 954,1356 807,1356 Z M 1090,27 L 1356,-264 1112,-264 891,-27 C 869,-27 852,-27 841,-27 829,-27 818,-27 807,-27 597,-27 429,43 304,183 178,323 115,511 115,746 115,982 178,1170 304,1310 429,1450 597,1520 807,1520 1016,1520 1184,1450 1309,1310 1434,1169 1497,981 1497,745 1497,572 1462,423 1393,300 1323,177 1222,86 1090,27 Z"/>
- <glyph unicode="P" horiz-adv-x="954" d="M 403,1327 L 403,766 657,766 C 751,766 824,790 875,839 926,888 952,957 952,1047 952,1136 926,1205 875,1254 824,1303 751,1327 657,1327 L 403,1327 Z M 201,1493 L 657,1493 C 824,1493 951,1455 1037,1380 1122,1304 1165,1193 1165,1047 1165,900 1122,788 1037,713 951,638 824,600 657,600 L 403,600 403,0 201,0 201,1493 Z"/>
- <glyph unicode="N" horiz-adv-x="1112" d="M 201,1493 L 473,1493 1135,244 1135,1493 1331,1493 1331,0 1059,0 397,1249 397,0 201,0 201,1493 Z"/>
- <glyph unicode="M" horiz-adv-x="1351" d="M 201,1493 L 502,1493 883,477 1266,1493 1567,1493 1567,0 1370,0 1370,1311 985,287 782,287 397,1311 397,0 201,0 201,1493 Z"/>
- <glyph unicode="L" horiz-adv-x="927" d="M 201,1493 L 403,1493 403,170 1130,170 1130,0 201,0 201,1493 Z"/>
- <glyph unicode="I" horiz-adv-x="213" d="M 201,1493 L 403,1493 403,0 201,0 201,1493 Z"/>
- <glyph unicode="C" horiz-adv-x="1191" d="M 1319,1378 L 1319,1165 C 1251,1228 1179,1276 1102,1307 1025,1338 943,1354 856,1354 685,1354 555,1302 464,1198 373,1093 328,942 328,745 328,548 373,398 464,294 555,189 685,137 856,137 943,137 1025,153 1102,184 1179,215 1251,263 1319,326 L 1319,115 C 1248,67 1174,31 1095,7 1016,-17 932,-29 844,-29 618,-29 440,40 310,179 180,317 115,506 115,745 115,985 180,1174 310,1313 440,1451 618,1520 844,1520 933,1520 1018,1508 1097,1485 1176,1461 1250,1425 1319,1378 Z"/>
- <glyph unicode=":" horiz-adv-x="213" d="M 240,254 L 451,254 451,0 240,0 240,254 Z M 240,1059 L 451,1059 451,805 240,805 240,1059 Z"/>
- <glyph unicode="9" horiz-adv-x="1033" d="M 225,31 L 225,215 C 276,191 327,173 379,160 431,147 482,141 532,141 665,141 767,186 838,276 908,365 948,501 958,684 919,627 870,583 811,552 752,521 686,506 614,506 465,506 347,551 260,642 173,732 129,855 129,1012 129,1165 174,1288 265,1381 356,1474 476,1520 627,1520 800,1520 932,1454 1023,1322 1114,1189 1159,997 1159,745 1159,510 1103,322 992,182 880,41 730,-29 541,-29 490,-29 439,-24 387,-14 335,-4 281,11 225,31 Z M 627,664 C 718,664 790,695 843,757 896,819 922,904 922,1012 922,1119 896,1204 843,1267 790,1329 718,1360 627,1360 536,1360 465,1329 412,1267 359,1204 332,1119 332,1012 332,904 359,819 412,757 465,695 536,664 627,664 Z"/>
- <glyph unicode="8" horiz-adv-x="1033" d="M 651,709 C 555,709 480,683 425,632 370,581 342,510 342,420 342,330 370,259 425,208 480,157 555,131 651,131 747,131 823,157 878,209 933,260 961,331 961,420 961,510 934,581 879,632 824,683 748,709 651,709 Z M 449,795 C 362,816 295,857 247,916 198,975 174,1048 174,1133 174,1252 217,1347 302,1416 387,1485 503,1520 651,1520 800,1520 916,1485 1001,1416 1086,1347 1128,1252 1128,1133 1128,1048 1104,975 1056,916 1007,857 940,816 854,795 951,772 1027,728 1082,662 1136,596 1163,515 1163,420 1163,275 1119,164 1031,87 942,10 816,-29 651,-29 486,-29 360,10 272,87 183,164 139,275 139,420 139,515 166,596 221,662 276,728 352,772 449,795 Z M 375,1114 C 375,1037 399,976 448,933 496,890 564,868 651,868 738,868 806,890 855,933 904,976 928,1037 928,1114 928,1191 904,1252 855,1295 806,1338 738,1360 651,1360 564,1360 496,1338 448,1295 399,1252 375,1191 375,1114 Z"/>
- <glyph unicode="7" horiz-adv-x="953" d="M 168,1493 L 1128,1493 1128,1407 586,0 375,0 885,1323 168,1323 168,1493 Z"/>
- <glyph unicode="6" horiz-adv-x="1033" d="M 676,827 C 585,827 514,796 461,734 408,672 381,587 381,479 381,372 408,287 461,225 514,162 585,131 676,131 767,131 839,162 892,225 945,287 971,372 971,479 971,587 945,672 892,734 839,796 767,827 676,827 Z M 1077,1460 L 1077,1276 C 1026,1300 975,1318 924,1331 872,1344 821,1350 770,1350 637,1350 535,1305 465,1215 394,1125 354,989 344,807 383,865 433,910 492,941 551,972 617,987 688,987 838,987 957,942 1044,851 1131,760 1174,636 1174,479 1174,326 1129,203 1038,110 947,17 827,-29 676,-29 503,-29 371,37 280,170 189,302 143,494 143,745 143,981 199,1169 311,1310 423,1450 573,1520 762,1520 813,1520 864,1515 916,1505 967,1495 1021,1480 1077,1460 Z"/>
- <glyph unicode="5" horiz-adv-x="953" d="M 221,1493 L 1014,1493 1014,1323 406,1323 406,957 C 435,967 465,975 494,980 523,985 553,987 582,987 749,987 881,941 978,850 1075,759 1124,635 1124,479 1124,318 1074,194 974,105 874,16 733,-29 551,-29 488,-29 425,-24 360,-13 295,-2 227,14 158,35 L 158,238 C 218,205 280,181 344,165 408,149 476,141 547,141 662,141 754,171 821,232 888,293 922,375 922,479 922,583 888,665 821,726 754,787 662,817 547,817 493,817 439,811 386,799 332,787 277,768 221,743 L 221,1493 Z"/>
- <glyph unicode="4" horiz-adv-x="1086" d="M 774,1317 L 264,520 774,520 774,1317 Z M 721,1493 L 975,1493 975,520 1188,520 1188,352 975,352 975,0 774,0 774,352 100,352 100,547 721,1493 Z"/>
- <glyph unicode="3" horiz-adv-x="980" d="M 831,805 C 928,784 1003,741 1058,676 1112,611 1139,530 1139,434 1139,287 1088,173 987,92 886,11 742,-29 555,-29 492,-29 428,-23 362,-11 295,2 227,20 156,45 L 156,240 C 212,207 273,183 340,166 407,149 476,141 549,141 676,141 772,166 839,216 905,266 938,339 938,434 938,522 907,591 846,641 784,690 698,715 588,715 L 414,715 414,881 596,881 C 695,881 771,901 824,941 877,980 903,1037 903,1112 903,1189 876,1248 822,1289 767,1330 689,1350 588,1350 533,1350 473,1344 410,1332 347,1320 277,1301 201,1276 L 201,1456 C 278,1477 350,1493 417,1504 484,1515 547,1520 606,1520 759,1520 881,1485 970,1416 1059,1346 1104,1252 1104,1133 1104,1050 1080,981 1033,924 986,867 918,827 831,805 Z"/>
- <glyph unicode="2" horiz-adv-x="953" d="M 393,170 L 1098,170 1098,0 150,0 150,170 C 227,249 331,356 464,490 596,623 679,709 713,748 778,821 823,882 849,933 874,983 887,1032 887,1081 887,1160 859,1225 804,1275 748,1325 675,1350 586,1350 523,1350 456,1339 386,1317 315,1295 240,1262 160,1217 L 160,1421 C 241,1454 317,1478 388,1495 459,1512 523,1520 582,1520 737,1520 860,1481 952,1404 1044,1327 1090,1223 1090,1094 1090,1033 1079,975 1056,920 1033,865 991,800 930,725 913,706 860,650 771,558 682,465 556,336 393,170 Z"/>
- <glyph unicode="1" horiz-adv-x="900" d="M 254,170 L 584,170 584,1309 225,1237 225,1421 582,1493 784,1493 784,170 1114,170 1114,0 254,0 254,170 Z"/>
- <glyph unicode="0" horiz-adv-x="1033" d="M 651,1360 C 547,1360 469,1309 417,1207 364,1104 338,950 338,745 338,540 364,387 417,285 469,182 547,131 651,131 756,131 834,182 887,285 939,387 965,540 965,745 965,950 939,1104 887,1207 834,1309 756,1360 651,1360 Z M 651,1520 C 818,1520 946,1454 1035,1322 1123,1189 1167,997 1167,745 1167,494 1123,302 1035,170 946,37 818,-29 651,-29 484,-29 356,37 268,170 179,302 135,494 135,745 135,997 179,1189 268,1322 356,1454 484,1520 651,1520 Z"/>
- <glyph unicode="." horiz-adv-x="213" d="M 219,254 L 430,254 430,0 219,0 219,254 Z"/>
- <glyph unicode="-" horiz-adv-x="530" d="M 100,643 L 639,643 639,479 100,479 100,643 Z"/>
- <glyph unicode=" " horiz-adv-x="635"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_3" horiz-adv-x="2048">
- <font-face font-family="DejaVuSans embedded" units-per-em="2048" font-weight="bold" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="u" horiz-adv-x="1112" d="M 160,436 L 160,1120 520,1120 520,1008 C 520,947 520,871 519,780 518,688 518,627 518,596 518,506 520,441 525,402 530,362 538,333 549,315 564,292 583,274 607,261 630,248 657,242 688,242 763,242 821,271 864,328 907,385 928,465 928,567 L 928,1120 1286,1120 1286,0 928,0 928,162 C 874,97 817,49 757,18 696,-13 630,-29 557,-29 428,-29 329,11 262,90 194,169 160,285 160,436 Z"/>
- <glyph unicode="t" horiz-adv-x="901" d="M 563,1438 L 563,1120 932,1120 932,864 563,864 563,389 C 563,337 573,302 594,284 615,265 656,256 717,256 L 901,256 901,0 594,0 C 453,0 353,30 294,89 235,148 205,248 205,389 L 205,864 27,864 27,1120 205,1120 205,1438 563,1438 Z"/>
- <glyph unicode="r" horiz-adv-x="821" d="M 1004,815 C 973,830 942,841 911,848 880,855 848,858 817,858 725,858 654,829 605,770 555,711 530,626 530,516 L 530,0 172,0 172,1120 530,1120 530,936 C 576,1009 629,1062 689,1095 748,1128 820,1145 903,1145 915,1145 928,1145 942,1145 956,1145 976,1143 1003,1139 L 1004,815 Z"/>
- <glyph unicode="p" horiz-adv-x="1191" d="M 530,162 L 530,-426 172,-426 172,1120 530,1120 530,956 C 579,1021 634,1070 694,1101 754,1132 823,1147 901,1147 1039,1147 1152,1092 1241,983 1330,873 1374,732 1374,559 1374,386 1330,245 1241,136 1152,26 1039,-29 901,-29 823,-29 754,-13 694,18 634,49 579,97 530,162 Z M 768,887 C 691,887 633,859 592,803 551,746 530,665 530,559 530,453 551,372 592,316 633,259 691,231 768,231 845,231 903,259 944,315 984,371 1004,452 1004,559 1004,666 984,747 944,803 903,859 845,887 768,887 Z"/>
- <glyph unicode="o" horiz-adv-x="1218" d="M 705,891 C 626,891 565,863 524,806 482,749 461,666 461,559 461,452 482,370 524,313 565,256 626,227 705,227 783,227 843,256 884,313 925,370 946,452 946,559 946,666 925,749 884,806 843,863 783,891 705,891 Z M 705,1147 C 898,1147 1048,1095 1157,991 1265,887 1319,743 1319,559 1319,375 1265,231 1157,127 1048,23 898,-29 705,-29 512,-29 361,23 252,127 143,231 88,375 88,559 88,743 143,887 252,991 361,1095 512,1147 705,1147 Z"/>
- <glyph unicode="l" horiz-adv-x="345" d="M 172,1556 L 530,1556 530,0 172,0 172,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="345" d="M 172,1120 L 530,1120 530,0 172,0 172,1120 Z M 172,1556 L 530,1556 530,1264 172,1264 172,1556 Z"/>
- <glyph unicode="e" horiz-adv-x="1192" d="M 1290,563 L 1290,461 453,461 C 462,377 492,314 544,272 596,230 669,209 762,209 837,209 915,220 994,243 1073,265 1154,299 1237,344 L 1237,68 C 1152,36 1068,12 983,-5 898,-21 814,-29 729,-29 526,-29 369,23 257,126 144,229 88,373 88,559 88,742 143,885 254,990 364,1095 516,1147 709,1147 885,1147 1026,1094 1132,988 1237,882 1290,740 1290,563 Z M 922,682 C 922,750 902,805 863,847 823,888 771,909 707,909 638,909 581,890 538,851 495,812 468,755 457,682 L 922,682 Z"/>
- <glyph unicode="d" horiz-adv-x="1192" d="M 934,956 L 934,1556 1294,1556 1294,0 934,0 934,162 C 885,96 830,48 771,17 712,-14 643,-29 565,-29 427,-29 314,26 225,136 136,245 92,386 92,559 92,732 136,873 225,983 314,1092 427,1147 565,1147 642,1147 711,1132 771,1101 830,1070 885,1021 934,956 Z M 698,231 C 775,231 833,259 874,315 914,371 934,452 934,559 934,666 914,747 874,803 833,859 775,887 698,887 622,887 564,859 524,803 483,747 463,666 463,559 463,452 483,371 524,315 564,259 622,231 698,231 Z"/>
- <glyph unicode="c" horiz-adv-x="980" d="M 1077,1085 L 1077,793 C 1028,826 980,851 931,867 882,883 831,891 778,891 678,891 600,862 545,804 489,745 461,664 461,559 461,454 489,373 545,315 600,256 678,227 778,227 834,227 887,235 938,252 988,269 1034,293 1077,326 L 1077,33 C 1021,12 964,-3 907,-14 849,-24 791,-29 733,-29 531,-29 373,23 259,127 145,230 88,374 88,559 88,744 145,888 259,992 373,1095 531,1147 733,1147 792,1147 850,1142 907,1132 964,1121 1020,1106 1077,1085 Z"/>
- <glyph unicode="S" horiz-adv-x="1165" d="M 1227,1446 L 1227,1130 C 1145,1167 1065,1194 987,1213 909,1232 835,1241 766,1241 674,1241 606,1228 562,1203 518,1178 496,1138 496,1085 496,1045 511,1014 541,992 570,969 624,950 702,934 L 866,901 C 1032,868 1150,817 1220,749 1290,681 1325,584 1325,459 1325,294 1276,172 1179,92 1081,11 932,-29 731,-29 636,-29 541,-20 446,-2 351,16 255,43 160,78 L 160,403 C 255,352 348,314 437,289 526,263 611,250 694,250 778,250 842,264 887,292 932,320 954,360 954,412 954,459 939,495 909,520 878,545 818,568 727,588 L 578,621 C 429,653 320,704 251,774 182,844 147,938 147,1057 147,1206 195,1320 291,1400 387,1480 525,1520 705,1520 787,1520 871,1514 958,1502 1045,1489 1134,1471 1227,1446 Z"/>
- <glyph unicode="M" horiz-adv-x="1642" d="M 188,1493 L 678,1493 1018,694 1360,1493 1849,1493 1849,0 1485,0 1485,1092 1141,287 897,287 553,1092 553,0 188,0 188,1493 Z"/>
- <glyph unicode=":" horiz-adv-x="345" d="M 229,1120 L 590,1120 590,733 229,733 229,1120 Z M 229,387 L 590,387 590,0 229,0 229,387 Z"/>
- <glyph unicode="-" horiz-adv-x="636" d="M 111,735 L 739,735 739,444 111,444 111,735 Z"/>
- <glyph unicode=" " horiz-adv-x="714"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92 id93 id94 id95 id96 id97 id98 id99 id100 id101 id102 id103 id104 id105 id106 id107 id108 id109 id110 id111 id112 id113 id114 id115 id116 id117 id118 id119 id120 id121 id122 id123 id124 id125 id126 id127 id128 id129 id130 id131 id132 id133 id134 id135 id136 id137 id138 id139 id140 id141 id142 id143 id144 id145 id146 id147 id148 id149 id150 id151 id152 id153 id154 id155 id156 id157 id158 id159 id160 id161 id162 id163 id164 id165 id166"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="2244" y="12978" width="30294" height="486"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="7291" y="12978" width="30294" height="486"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="2244" y="13462" width="30294" height="486"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="7291" y="13462" width="30294" height="486"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="2244" y="13946" width="30294" height="486"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="7291" y="13946" width="30294" height="486"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="316" y="316" width="14233" height="14233"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 316,316 L 14548,316 14548,14548 316,14548 316,316 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="1332" width="12301" height="9456"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 2044,1332 L 14344,1332 14344,10787 2044,10787 2044,1332 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="2786" y="1332" width="1" height="9455"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="2776" y="1332" width="21" height="9455"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2786,1332 L 2786,10786"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="6391" y="1332" width="1" height="9455"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="6381" y="1332" width="21" height="9455"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 6391,1332 L 6391,10786"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="9996" y="1332" width="1" height="9455"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="9986" y="1332" width="21" height="9455"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 9996,1332 L 9996,10786"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="13601" y="1332" width="1" height="9455"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="13591" y="1332" width="21" height="9455"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 13601,1332 L 13601,10786"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="9735" width="12300" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="9725" width="12300" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2044,9735 L 14343,9735"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="8685" width="12300" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="8675" width="12300" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2044,8685 L 14343,8685"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="7634" width="12300" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="7624" width="12300" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2044,7634 L 14343,7634"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="6584" width="12300" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="6574" width="12300" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2044,6584 L 14343,6584"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="5534" width="12300" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="5524" width="12300" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2044,5534 L 14343,5534"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="4483" width="12300" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="4473" width="12300" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2044,4483 L 14343,4483"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="3433" width="12300" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="3423" width="12300" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2044,3433 L 14343,3433"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="2383" width="12300" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="2373" width="12300" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2044,2383 L 14343,2383"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="2786" y="7015" width="10816" height="21"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 2786,7025 L 2846,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 2906,7025 L 2966,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 3026,7025 L 3086,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 3146,7025 L 3206,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 3266,7025 L 3326,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 3386,7025 L 3446,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 3506,7025 L 3566,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 3626,7025 L 3686,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 3746,7025 L 3806,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 3866,7025 L 3926,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 3986,7025 L 4046,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 4106,7025 L 4166,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 4226,7025 L 4286,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 4346,7025 L 4406,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 4466,7025 L 4526,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 4586,7025 L 4646,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 4706,7025 L 4766,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 4826,7025 L 4886,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 4946,7025 L 5006,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 5066,7025 L 5126,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 5186,7025 L 5246,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 5306,7025 L 5366,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 5426,7025 L 5486,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 5546,7025 L 5606,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 5666,7025 L 5726,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 5786,7025 L 5846,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 5906,7025 L 5966,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 6026,7025 L 6086,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 6146,7025 L 6206,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 6266,7025 L 6326,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 6386,7025 L 6446,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 6506,7025 L 6566,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 6626,7025 L 6686,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 6746,7025 L 6806,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 6866,7025 L 6926,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 6986,7025 L 7046,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 7106,7025 L 7166,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 7226,7025 L 7286,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 7346,7025 L 7406,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 7466,7025 L 7526,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 7586,7025 L 7646,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 7706,7025 L 7766,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 7826,7025 L 7886,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 7946,7025 L 8006,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 8066,7025 L 8126,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 8186,7025 L 8246,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 8306,7025 L 8366,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 8426,7025 L 8486,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 8546,7025 L 8606,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 8666,7025 L 8726,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 8786,7025 L 8846,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 8906,7025 L 8966,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 9026,7025 L 9086,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 9146,7025 L 9206,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 9266,7025 L 9326,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 9386,7025 L 9446,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 9506,7025 L 9566,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 9626,7025 L 9686,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 9746,7025 L 9806,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 9866,7025 L 9926,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 9986,7025 L 10046,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 10106,7025 L 10166,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 10226,7025 L 10286,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 10346,7025 L 10406,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 10466,7025 L 10526,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 10586,7025 L 10646,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 10706,7025 L 10766,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 10826,7025 L 10886,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 10946,7025 L 11006,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 11066,7025 L 11126,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 11186,7025 L 11246,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 11306,7025 L 11366,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 11426,7025 L 11486,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 11546,7025 L 11606,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 11666,7025 L 11726,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 11786,7025 L 11846,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 11906,7025 L 11966,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 12026,7025 L 12086,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 12146,7025 L 12206,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 12266,7025 L 12326,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 12386,7025 L 12446,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 12506,7025 L 12566,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 12626,7025 L 12686,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 12746,7025 L 12806,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 12866,7025 L 12926,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 12986,7025 L 13046,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 13106,7025 L 13166,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 13226,7025 L 13286,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 13346,7025 L 13406,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 13466,7025 L 13526,7025"/>
- <path fill="none" stroke="rgb(119,136,153)" stroke-width="20" stroke-linejoin="miter" d="M 13586,7025 L 13601,7025"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="2786" y="7649" width="10816" height="21"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 2786,7659 L 2846,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 2906,7659 L 2966,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 3026,7659 L 3086,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 3146,7659 L 3206,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 3266,7659 L 3326,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 3386,7659 L 3446,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 3506,7659 L 3566,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 3626,7659 L 3686,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 3746,7659 L 3806,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 3866,7659 L 3926,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 3986,7659 L 4046,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 4106,7659 L 4166,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 4226,7659 L 4286,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 4346,7659 L 4406,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 4466,7659 L 4526,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 4586,7659 L 4646,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 4706,7659 L 4766,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 4826,7659 L 4886,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 4946,7659 L 5006,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 5066,7659 L 5126,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 5186,7659 L 5246,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 5306,7659 L 5366,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 5426,7659 L 5486,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 5546,7659 L 5606,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 5666,7659 L 5726,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 5786,7659 L 5846,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 5906,7659 L 5966,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 6026,7659 L 6086,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 6146,7659 L 6206,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 6266,7659 L 6326,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 6386,7659 L 6446,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 6506,7659 L 6566,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 6626,7659 L 6686,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 6746,7659 L 6806,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 6866,7659 L 6926,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 6986,7659 L 7046,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 7106,7659 L 7166,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 7226,7659 L 7286,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 7346,7659 L 7406,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 7466,7659 L 7526,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 7586,7659 L 7646,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 7706,7659 L 7766,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 7826,7659 L 7886,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 7946,7659 L 8006,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 8066,7659 L 8126,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 8186,7659 L 8246,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 8306,7659 L 8366,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 8426,7659 L 8486,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 8546,7659 L 8606,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 8666,7659 L 8726,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 8786,7659 L 8846,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 8906,7659 L 8966,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 9026,7659 L 9086,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 9146,7659 L 9206,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 9266,7659 L 9326,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 9386,7659 L 9446,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 9506,7659 L 9566,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 9626,7659 L 9686,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 9746,7659 L 9806,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 9866,7659 L 9926,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 9986,7659 L 10046,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 10106,7659 L 10166,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 10226,7659 L 10286,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 10346,7659 L 10406,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 10466,7659 L 10526,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 10586,7659 L 10646,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 10706,7659 L 10766,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 10826,7659 L 10886,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 10946,7659 L 11006,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 11066,7659 L 11126,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 11186,7659 L 11246,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 11306,7659 L 11366,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 11426,7659 L 11486,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 11546,7659 L 11606,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 11666,7659 L 11726,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 11786,7659 L 11846,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 11906,7659 L 11966,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 12026,7659 L 12086,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 12146,7659 L 12206,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 12266,7659 L 12326,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 12386,7659 L 12446,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 12506,7659 L 12566,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 12626,7659 L 12686,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 12746,7659 L 12806,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 12866,7659 L 12926,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 12986,7659 L 13046,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 13106,7659 L 13166,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 13226,7659 L 13286,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 13346,7659 L 13406,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 13466,7659 L 13526,7659"/>
- <path fill="none" stroke="rgb(46,139,87)" stroke-width="20" stroke-linejoin="miter" d="M 13586,7659 L 13601,7659"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="2786" y="2960" width="10816" height="21"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 2786,2970 L 2846,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 2906,2970 L 2966,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 3026,2970 L 3086,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 3146,2970 L 3206,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 3266,2970 L 3326,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 3386,2970 L 3446,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 3506,2970 L 3566,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 3626,2970 L 3686,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 3746,2970 L 3806,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 3866,2970 L 3926,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 3986,2970 L 4046,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 4106,2970 L 4166,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 4226,2970 L 4286,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 4346,2970 L 4406,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 4466,2970 L 4526,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 4586,2970 L 4646,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 4706,2970 L 4766,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 4826,2970 L 4886,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 4946,2970 L 5006,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 5066,2970 L 5126,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 5186,2970 L 5246,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 5306,2970 L 5366,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 5426,2970 L 5486,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 5546,2970 L 5606,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 5666,2970 L 5726,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 5786,2970 L 5846,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 5906,2970 L 5966,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 6026,2970 L 6086,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 6146,2970 L 6206,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 6266,2970 L 6326,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 6386,2970 L 6446,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 6506,2970 L 6566,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 6626,2970 L 6686,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 6746,2970 L 6806,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 6866,2970 L 6926,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 6986,2970 L 7046,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 7106,2970 L 7166,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 7226,2970 L 7286,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 7346,2970 L 7406,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 7466,2970 L 7526,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 7586,2970 L 7646,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 7706,2970 L 7766,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 7826,2970 L 7886,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 7946,2970 L 8006,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 8066,2970 L 8126,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 8186,2970 L 8246,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 8306,2970 L 8366,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 8426,2970 L 8486,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 8546,2970 L 8606,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 8666,2970 L 8726,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 8786,2970 L 8846,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 8906,2970 L 8966,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 9026,2970 L 9086,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 9146,2970 L 9206,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 9266,2970 L 9326,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 9386,2970 L 9446,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 9506,2970 L 9566,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 9626,2970 L 9686,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 9746,2970 L 9806,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 9866,2970 L 9926,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 9986,2970 L 10046,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 10106,2970 L 10166,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 10226,2970 L 10286,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 10346,2970 L 10406,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 10466,2970 L 10526,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 10586,2970 L 10646,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 10706,2970 L 10766,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 10826,2970 L 10886,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 10946,2970 L 11006,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 11066,2970 L 11126,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 11186,2970 L 11246,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 11306,2970 L 11366,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 11426,2970 L 11486,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 11546,2970 L 11606,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 11666,2970 L 11726,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 11786,2970 L 11846,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 11906,2970 L 11966,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 12026,2970 L 12086,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 12146,2970 L 12206,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 12266,2970 L 12326,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 12386,2970 L 12446,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 12506,2970 L 12566,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 12626,2970 L 12686,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 12746,2970 L 12806,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 12866,2970 L 12926,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 12986,2970 L 13046,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 13106,2970 L 13166,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 13226,2970 L 13286,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 13346,2970 L 13406,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 13466,2970 L 13526,2970"/>
- <path fill="none" stroke="rgb(60,179,113)" stroke-width="20" stroke-linejoin="miter" d="M 13586,2970 L 13601,2970"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="2782" y="7983" width="10822" height="715"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 2786,8677 L 6392,8004 13602,8120"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="8575" width="205" height="205"/>
- <path fill="rgb(135,206,235)" stroke="none" d="M 2888,8677 C 2888,8733 2843,8779 2787,8779 2730,8779 2684,8733 2684,8677 2684,8620 2730,8575 2787,8575 2843,8575 2888,8620 2888,8677 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="7902" width="207" height="206"/>
- <path fill="rgb(135,206,235)" stroke="none" d="M 6494,8004 C 6494,8061 6448,8107 6391,8107 6335,8107 6289,8061 6289,8004 6289,7948 6335,7902 6391,7902 6448,7902 6494,7948 6494,8004 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="8018" width="205" height="205"/>
- <path fill="rgb(135,206,235)" stroke="none" d="M 13704,8121 C 13704,8177 13659,8222 13602,8222 13546,8222 13500,8177 13500,8121 13500,8065 13546,8018 13602,8018 13659,8018 13704,8065 13704,8121 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="2775" y="2298" width="10839" height="6390"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 2786,8669 L 2943,8577"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 3100,8485 L 3257,8392"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 3414,8300 L 3571,8208"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 3728,8116 L 3885,8024"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 4041,7932 L 4198,7839"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 4355,7747 L 4512,7655"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 4669,7563 L 4826,7471"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 4983,7379 L 5140,7286"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 5297,7194 L 5454,7102"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 5611,7010 L 5768,6918"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 5925,6825 L 6082,6733"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 6238,6641 L 6395,6549"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 6552,6457 L 6709,6365"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 6866,6272 L 7023,6180"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 7180,6088 L 7337,5996"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 7494,5904 L 7651,5812"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 7808,5719 L 7965,5627"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 8122,5535 L 8279,5443"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 8436,5351 L 8592,5258"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 8749,5166 L 8906,5074"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 9063,4982 L 9220,4890"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 9377,4798 L 9534,4705"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 9691,4613 L 9848,4521"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 10005,4429 L 10162,4337"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 10319,4245 L 10476,4152"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 10633,4060 L 10789,3968"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 10946,3876 L 11103,3784"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 11260,3691 L 11417,3599"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 11574,3507 L 11731,3415"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 11888,3323 L 12045,3231"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 12202,3138 L 12359,3046"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 12516,2954 L 12673,2862"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 12830,2770 L 12987,2678"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 13143,2585 L 13300,2493"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 13457,2401 L 13602,2316"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="8567" width="205" height="205"/>
- <path fill="rgb(135,206,235)" stroke="none" d="M 2888,8669 C 2888,8725 2843,8771 2787,8771 2730,8771 2684,8725 2684,8669 2684,8612 2730,8567 2787,8567 2843,8567 2888,8612 2888,8669 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="6449" width="207" height="206"/>
- <path fill="rgb(135,206,235)" stroke="none" d="M 6494,6551 C 6494,6608 6448,6654 6391,6654 6335,6654 6289,6608 6289,6551 6289,6495 6335,6449 6391,6449 6448,6449 6494,6495 6494,6551 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="2214" width="205" height="206"/>
- <path fill="rgb(135,206,235)" stroke="none" d="M 13704,2316 C 13704,2373 13659,2419 13602,2419 13546,2419 13500,2373 13500,2316 13500,2260 13546,2214 13602,2214 13659,2214 13704,2260 13704,2316 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="2778" y="8008" width="10826" height="1468"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 2786,9456 L 6392,8029 13602,8254"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="9354" width="205" height="205"/>
- <path fill="rgb(128,128,0)" stroke="none" d="M 2888,9456 C 2888,9513 2843,9558 2787,9558 2730,9558 2684,9513 2684,9456 2684,9399 2730,9354 2787,9354 2843,9354 2888,9399 2888,9456 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="7928" width="207" height="205"/>
- <path fill="rgb(128,128,0)" stroke="none" d="M 6494,8030 C 6494,8086 6448,8132 6391,8132 6335,8132 6289,8086 6289,8030 6289,7973 6335,7928 6391,7928 6448,7928 6494,7973 6494,8030 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="8153" width="205" height="205"/>
- <path fill="rgb(128,128,0)" stroke="none" d="M 13704,8255 C 13704,8312 13659,8357 13602,8357 13546,8357 13500,8312 13500,8255 13500,8198 13546,8153 13602,8153 13659,8153 13704,8198 13704,8255 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="2777" y="4240" width="10835" height="4935"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 2786,9155 L 2952,9080"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 3118,9005 L 3283,8930"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 3449,8855 L 3615,8780"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 3781,8705 L 3947,8630"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 4112,8555 L 4278,8480"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 4444,8404 L 4610,8329"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 4776,8254 L 4941,8179"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 5107,8104 L 5273,8029"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 5439,7954 L 5605,7879"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 5770,7804 L 5936,7729"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 6102,7654 L 6268,7579"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 6434,7504 L 6599,7429"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 6765,7354 L 6931,7279"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 7097,7204 L 7263,7129"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 7429,7054 L 7594,6978"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 7760,6903 L 7926,6828"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 8092,6753 L 8258,6678"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 8423,6603 L 8589,6528"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 8755,6453 L 8921,6378"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 9087,6303 L 9252,6228"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 9418,6153 L 9584,6078"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 9750,6003 L 9916,5928"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 10081,5853 L 10247,5778"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 10413,5703 L 10579,5627"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 10745,5552 L 10910,5477"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 11076,5402 L 11242,5327"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 11408,5252 L 11574,5177"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 11739,5102 L 11905,5027"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 12071,4952 L 12237,4877"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 12403,4802 L 12568,4727"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 12734,4652 L 12900,4577"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 13066,4502 L 13232,4427"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 13397,4352 L 13563,4277"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="9052" width="205" height="206"/>
- <path fill="rgb(128,128,0)" stroke="none" d="M 2888,9154 C 2888,9210 2843,9257 2787,9257 2730,9257 2684,9210 2684,9154 2684,9098 2730,9052 2787,9052 2843,9052 2888,9098 2888,9154 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="7421" width="207" height="205"/>
- <path fill="rgb(128,128,0)" stroke="none" d="M 6494,7522 C 6494,7578 6448,7625 6391,7625 6335,7625 6289,7578 6289,7522 6289,7466 6335,7421 6391,7421 6448,7421 6494,7466 6494,7522 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="4157" width="205" height="206"/>
- <path fill="rgb(128,128,0)" stroke="none" d="M 13704,4260 C 13704,4316 13659,4362 13602,4362 13546,4362 13500,4316 13500,4260 13500,4204 13546,4157 13602,4157 13659,4157 13704,4204 13704,4260 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="2779" y="7971" width="10826" height="1811"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 2786,9762 L 6392,8515 13602,7991"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="9660" width="205" height="205"/>
- <path fill="rgb(128,0,128)" stroke="none" d="M 2888,9761 C 2888,9818 2843,9864 2787,9864 2730,9864 2684,9818 2684,9761 2684,9705 2730,9660 2787,9660 2843,9660 2888,9705 2888,9761 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="8413" width="207" height="205"/>
- <path fill="rgb(128,0,128)" stroke="none" d="M 6494,8516 C 6494,8572 6448,8617 6391,8617 6335,8617 6289,8572 6289,8516 6289,8459 6335,8413 6391,8413 6448,8413 6494,8459 6494,8516 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="7889" width="205" height="206"/>
- <path fill="rgb(128,0,128)" stroke="none" d="M 13704,7991 C 13704,8048 13659,8094 13602,8094 13546,8094 13500,8048 13500,7991 13500,7935 13546,7889 13602,7889 13659,7889 13704,7935 13704,7991 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="2779" y="5801" width="10831" height="3764"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 2786,9545 L 2958,9486"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 3130,9426 L 3302,9367"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 3474,9308 L 3646,9249"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 3818,9189 L 3991,9130"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 4163,9071 L 4335,9012"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 4507,8952 L 4679,8893"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 4851,8834 L 5023,8775"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 5195,8715 L 5367,8656"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 5539,8597 L 5711,8538"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 5883,8478 L 6056,8419"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 6228,8360 L 6400,8300"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 6572,8241 L 6744,8182"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 6916,8123 L 7088,8063"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 7260,8004 L 7432,7945"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 7604,7886 L 7776,7826"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 7948,7767 L 8121,7708"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 8293,7649 L 8465,7589"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 8637,7530 L 8809,7471"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 8981,7411 L 9153,7352"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 9325,7293 L 9497,7234"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 9669,7174 L 9841,7115"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 10013,7056 L 10185,6997"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 10358,6937 L 10530,6878"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 10702,6819 L 10874,6760"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 11046,6700 L 11218,6641"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 11390,6582 L 11562,6523"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 11734,6463 L 11906,6404"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 12078,6345 L 12250,6285"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 12423,6226 L 12595,6167"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 12767,6108 L 12939,6048"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 13111,5989 L 13283,5930"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 13455,5871 L 13602,5820"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="9442" width="205" height="206"/>
- <path fill="rgb(128,0,128)" stroke="none" d="M 2888,9544 C 2888,9600 2843,9647 2787,9647 2730,9647 2684,9600 2684,9544 2684,9488 2730,9443 2787,9443 2843,9443 2888,9488 2888,9544 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="8201" width="207" height="205"/>
- <path fill="rgb(128,0,128)" stroke="none" d="M 6494,8304 C 6494,8360 6448,8405 6391,8405 6335,8405 6289,8360 6289,8304 6289,8248 6335,8201 6391,8201 6448,8201 6494,8248 6494,8304 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="5717" width="205" height="206"/>
- <path fill="rgb(128,0,128)" stroke="none" d="M 13704,5821 C 13704,5877 13659,5922 13602,5922 13546,5922 13500,5877 13500,5821 13500,5764 13546,5718 13602,5718 13659,5718 13704,5764 13704,5821 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="2782" y="8320" width="10824" height="1619"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 2786,9918 L 6392,9280 13602,8340"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="9815" width="205" height="205"/>
- <path fill="rgb(255,127,80)" stroke="none" d="M 2888,9918 C 2888,9974 2843,10019 2787,10019 2730,10019 2684,9974 2684,9918 2684,9862 2730,9815 2787,9815 2843,9815 2888,9862 2888,9918 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="9178" width="207" height="205"/>
- <path fill="rgb(255,127,80)" stroke="none" d="M 6494,9280 C 6494,9337 6448,9382 6391,9382 6335,9382 6289,9337 6289,9280 6289,9223 6335,9178 6391,9178 6448,9178 6494,9223 6494,9280 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="8238" width="205" height="205"/>
- <path fill="rgb(255,127,80)" stroke="none" d="M 13704,8340 C 13704,8396 13659,8442 13602,8442 13546,8442 13500,8396 13500,8340 13500,8284 13546,8238 13602,8238 13659,8238 13704,8284 13704,8340 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="2780" y="6922" width="10829" height="2925"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 2786,9826 L 2962,9779"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 3138,9732 L 3314,9685"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 3489,9638 L 3665,9592"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 3841,9545 L 4017,9498"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 4193,9451 L 4369,9404"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 4545,9357 L 4720,9310"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 4896,9263 L 5072,9216"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 5248,9170 L 5424,9123"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 5600,9076 L 5776,9029"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 5951,8982 L 6127,8935"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 6303,8888 L 6479,8841"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 6655,8794 L 6831,8748"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 7007,8701 L 7182,8654"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 7358,8607 L 7534,8560"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 7710,8513 L 7886,8466"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 8062,8419 L 8238,8372"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 8413,8326 L 8589,8279"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 8765,8232 L 8941,8185"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 9117,8138 L 9293,8091"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 9469,8044 L 9644,7997"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 9820,7950 L 9996,7903"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 10172,7857 L 10348,7810"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 10524,7763 L 10700,7716"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 10875,7669 L 11051,7622"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 11227,7575 L 11403,7528"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 11579,7481 L 11755,7435"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 11931,7388 L 12106,7341"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 12282,7294 L 12458,7247"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 12634,7200 L 12810,7153"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 12986,7106 L 13161,7059"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 13337,7013 L 13513,6966"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="9723" width="205" height="205"/>
- <path fill="rgb(255,127,80)" stroke="none" d="M 2888,9825 C 2888,9882 2843,9927 2787,9927 2730,9927 2684,9882 2684,9825 2684,9769 2730,9723 2787,9723 2843,9723 2888,9769 2888,9825 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="8762" width="207" height="206"/>
- <path fill="rgb(255,127,80)" stroke="none" d="M 6494,8865 C 6494,8921 6448,8967 6391,8967 6335,8967 6289,8921 6289,8865 6289,8808 6335,8762 6391,8762 6448,8762 6494,8808 6494,8865 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="6840" width="205" height="205"/>
- <path fill="rgb(255,127,80)" stroke="none" d="M 13704,6942 C 13704,6998 13659,7044 13602,7044 13546,7044 13500,6998 13500,6942 13500,6886 13546,6840 13602,6840 13659,6840 13704,6886 13704,6942 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyLineShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="2782" y="8264" width="10825" height="1887"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 2786,10130 L 6392,9472 13602,8284"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="10027" width="205" height="206"/>
- <path fill="rgb(75,0,130)" stroke="none" d="M 2888,10130 C 2888,10186 2843,10232 2787,10232 2730,10232 2684,10186 2684,10130 2684,10074 2730,10027 2787,10027 2843,10027 2888,10074 2888,10130 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="9370" width="207" height="205"/>
- <path fill="rgb(75,0,130)" stroke="none" d="M 6494,9473 C 6494,9529 6448,9574 6391,9574 6335,9574 6289,9529 6289,9473 6289,9416 6335,9370 6391,9370 6448,9370 6494,9416 6494,9473 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="8182" width="205" height="205"/>
- <path fill="rgb(75,0,130)" stroke="none" d="M 13704,8285 C 13704,8341 13659,8386 13602,8386 13546,8386 13500,8341 13500,8285 13500,8228 13546,8182 13602,8182 13659,8182 13704,8228 13704,8285 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id74">
- <rect class="BoundingBox" stroke="none" fill="none" x="2781" y="7467" width="10827" height="2516"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 2786,9962 L 2963,9921"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 3141,9881 L 3318,9840"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 3496,9800 L 3673,9759"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 3850,9718 L 4028,9678"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 4205,9637 L 4383,9597"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 4560,9556 L 4738,9515"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 4915,9475 L 5092,9434"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 5270,9394 L 5447,9353"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 5625,9312 L 5802,9272"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 5979,9231 L 6157,9191"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 6334,9150 L 6512,9109"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 6689,9069 L 6867,9028"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 7044,8988 L 7221,8947"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 7399,8906 L 7576,8866"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 7754,8825 L 7931,8785"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 8108,8744 L 8286,8703"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 8463,8663 L 8641,8622"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 8818,8582 L 8996,8541"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 9173,8500 L 9350,8460"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 9528,8419 L 9705,8379"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 9883,8338 L 10060,8298"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 10237,8257 L 10415,8216"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 10592,8176 L 10770,8135"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 10947,8095 L 11124,8054"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 11302,8013 L 11479,7973"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 11657,7932 L 11834,7892"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 12012,7851 L 12189,7810"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 12366,7770 L 12544,7729"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 12721,7689 L 12899,7648"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 13076,7607 L 13253,7567"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 13431,7526 L 13602,7487"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id75">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="9859" width="205" height="206"/>
- <path fill="rgb(75,0,130)" stroke="none" d="M 2888,9961 C 2888,10017 2843,10064 2787,10064 2730,10064 2684,10017 2684,9961 2684,9905 2730,9859 2787,9859 2843,9859 2888,9905 2888,9961 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id76">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="9034" width="207" height="206"/>
- <path fill="rgb(75,0,130)" stroke="none" d="M 6494,9137 C 6494,9193 6448,9239 6391,9239 6335,9239 6289,9193 6289,9137 6289,9081 6335,9035 6391,9035 6448,9035 6494,9081 6494,9137 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id77">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="7385" width="205" height="206"/>
- <path fill="rgb(75,0,130)" stroke="none" d="M 13704,7488 C 13704,7544 13659,7590 13602,7590 13546,7590 13500,7544 13500,7488 13500,7432 13546,7385 13602,7385 13659,7385 13704,7432 13704,7488 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id78">
- <rect class="BoundingBox" stroke="none" fill="none" x="2782" y="8380" width="10825" height="1718"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 2786,10077 L 13602,8400"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id79">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="9974" width="205" height="205"/>
- <path fill="rgb(255,192,203)" stroke="none" d="M 2888,10077 C 2888,10133 2843,10178 2787,10178 2730,10178 2684,10133 2684,10077 2684,10020 2730,9974 2787,9974 2843,9974 2888,10020 2888,10077 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id80">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="9414" width="207" height="206"/>
- <path fill="rgb(255,192,203)" stroke="none" d="M 6494,9517 C 6494,9573 6448,9619 6391,9619 6335,9619 6289,9573 6289,9517 6289,9461 6335,9414 6391,9414 6448,9414 6494,9461 6494,9517 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id81">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="8298" width="205" height="205"/>
- <path fill="rgb(255,192,203)" stroke="none" d="M 13704,8400 C 13704,8457 13659,8502 13602,8502 13546,8502 13500,8457 13500,8400 13500,8344 13546,8298 13602,8298 13659,8298 13704,8344 13704,8400 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id82">
- <rect class="BoundingBox" stroke="none" fill="none" x="2781" y="7603" width="10827" height="2414"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 2786,9996 L 2964,9957"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 3142,9918 L 3319,9879"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 3497,9840 L 3675,9801"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 3853,9762 L 4030,9723"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 4208,9684 L 4386,9645"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 4564,9606 L 4741,9567"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 4919,9528 L 5097,9489"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 5275,9450 L 5453,9411"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 5630,9372 L 5808,9333"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 5986,9294 L 6164,9255"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 6341,9216 L 6519,9177"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 6697,9138 L 6875,9099"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 7053,9060 L 7230,9021"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 7408,8982 L 7586,8943"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 7764,8904 L 7941,8865"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 8119,8826 L 8297,8787"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 8475,8748 L 8652,8709"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 8830,8670 L 9008,8631"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 9186,8592 L 9364,8553"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 9541,8514 L 9719,8475"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 9897,8436 L 10075,8397"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 10252,8358 L 10430,8319"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 10608,8280 L 10786,8241"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 10964,8202 L 11141,8163"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 11319,8124 L 11497,8085"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 11675,8046 L 11852,8007"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 12030,7968 L 12208,7929"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 12386,7890 L 12563,7851"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 12741,7812 L 12919,7773"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 13097,7734 L 13275,7695"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 13452,7656 L 13602,7623"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id83">
- <rect class="BoundingBox" stroke="none" fill="none" x="2684" y="9893" width="205" height="206"/>
- <path fill="rgb(255,192,203)" stroke="none" d="M 2888,9995 C 2888,10051 2843,10098 2787,10098 2730,10098 2684,10051 2684,9995 2684,9939 2730,9893 2787,9893 2843,9893 2888,9939 2888,9995 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id84">
- <rect class="BoundingBox" stroke="none" fill="none" x="6289" y="9103" width="207" height="205"/>
- <path fill="rgb(255,192,203)" stroke="none" d="M 6494,9204 C 6494,9262 6448,9307 6391,9307 6335,9307 6289,9262 6289,9204 6289,9148 6335,9103 6391,9103 6448,9103 6494,9148 6494,9204 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id85">
- <rect class="BoundingBox" stroke="none" fill="none" x="13500" y="7521" width="205" height="206"/>
- <path fill="rgb(255,192,203)" stroke="none" d="M 13704,7624 C 13704,7680 13659,7726 13602,7726 13546,7726 13500,7680 13500,7624 13500,7567 13546,7521 13602,7521 13659,7521 13704,7567 13704,7624 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id86">
- <rect class="BoundingBox" stroke="none" fill="none" x="2023" y="10786" width="12321" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,10796 L 14343,10796"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id87">
- <rect class="BoundingBox" stroke="none" fill="none" x="2024" y="1332" width="21" height="9455"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2034,1332 L 2034,10786"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id88">
- <rect class="BoundingBox" stroke="none" fill="none" x="2786" y="10806" width="1" height="103"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id89">
- <rect class="BoundingBox" stroke="none" fill="none" x="2776" y="10806" width="21" height="103"/>
- <path fill="none" stroke="rgb(238,238,238)" stroke-width="20" stroke-linejoin="miter" d="M 2786,10806 L 2786,10908"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id90">
- <rect class="BoundingBox" stroke="none" fill="none" x="6391" y="10806" width="1" height="103"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id91">
- <rect class="BoundingBox" stroke="none" fill="none" x="6381" y="10806" width="21" height="103"/>
- <path fill="none" stroke="rgb(238,238,238)" stroke-width="20" stroke-linejoin="miter" d="M 6391,10806 L 6391,10908"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id92">
- <rect class="BoundingBox" stroke="none" fill="none" x="9996" y="10806" width="1" height="103"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id93">
- <rect class="BoundingBox" stroke="none" fill="none" x="9986" y="10806" width="21" height="103"/>
- <path fill="none" stroke="rgb(238,238,238)" stroke-width="20" stroke-linejoin="miter" d="M 9996,10806 L 9996,10908"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id94">
- <rect class="BoundingBox" stroke="none" fill="none" x="13601" y="10806" width="1" height="103"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id95">
- <rect class="BoundingBox" stroke="none" fill="none" x="13591" y="10806" width="21" height="103"/>
- <path fill="none" stroke="rgb(238,238,238)" stroke-width="20" stroke-linejoin="miter" d="M 13601,10806 L 13601,10908"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id96">
- <rect class="BoundingBox" stroke="none" fill="none" x="2683" y="10996" width="325" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2683" y="11297"><tspan fill="rgb(68,68,68)" stroke="none">1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id97">
- <rect class="BoundingBox" stroke="none" fill="none" x="6288" y="10996" width="325" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="6288" y="11297"><tspan fill="rgb(68,68,68)" stroke="none">2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id98">
- <rect class="BoundingBox" stroke="none" fill="none" x="9894" y="10996" width="325" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="9894" y="11297"><tspan fill="rgb(68,68,68)" stroke="none">3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id99">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="10786" width="102" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id100">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="10776" width="102" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,10786 L 1922,10786"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id101">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="9735" width="102" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id102">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="9725" width="102" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,9735 L 1922,9735"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id103">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="8685" width="102" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id104">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="8675" width="102" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,8685 L 1922,8685"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id105">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="7634" width="102" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id106">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="7624" width="102" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,7634 L 1922,7634"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id107">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="6584" width="102" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id108">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="6574" width="102" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,6584 L 1922,6584"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id109">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="5534" width="102" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id110">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="5524" width="102" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,5534 L 1922,5534"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id111">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="4483" width="102" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id112">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="4473" width="102" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,4483 L 1922,4483"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id113">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="3433" width="102" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id114">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="3423" width="102" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,3433 L 1922,3433"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id115">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="2383" width="102" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id116">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="2373" width="102" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,2383 L 1922,2383"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id117">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="1332" width="102" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id118">
- <rect class="BoundingBox" stroke="none" fill="none" x="1922" y="1322" width="102" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2023,1332 L 1922,1332"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id119">
- <rect class="BoundingBox" stroke="none" fill="none" x="13499" y="10996" width="325" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="13499" y="11297"><tspan fill="rgb(68,68,68)" stroke="none">4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id120">
- <rect class="BoundingBox" stroke="none" fill="none" x="927" y="10598" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="927" y="10899"><tspan fill="rgb(68,68,68)" stroke="none">0.000</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id121">
- <rect class="BoundingBox" stroke="none" fill="none" x="927" y="9548" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="927" y="9849"><tspan fill="rgb(68,68,68)" stroke="none">10.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id122">
- <rect class="BoundingBox" stroke="none" fill="none" x="927" y="8497" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="927" y="8798"><tspan fill="rgb(68,68,68)" stroke="none">20.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id123">
- <rect class="BoundingBox" stroke="none" fill="none" x="927" y="7447" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="927" y="7748"><tspan fill="rgb(68,68,68)" stroke="none">30.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id124">
- <rect class="BoundingBox" stroke="none" fill="none" x="927" y="6396" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="927" y="6697"><tspan fill="rgb(68,68,68)" stroke="none">40.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id125">
- <rect class="BoundingBox" stroke="none" fill="none" x="927" y="5346" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="927" y="5647"><tspan fill="rgb(68,68,68)" stroke="none">50.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id126">
- <rect class="BoundingBox" stroke="none" fill="none" x="927" y="4296" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="927" y="4597"><tspan fill="rgb(68,68,68)" stroke="none">60.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id127">
- <rect class="BoundingBox" stroke="none" fill="none" x="927" y="3245" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="927" y="3546"><tspan fill="rgb(68,68,68)" stroke="none">70.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id128">
- <rect class="BoundingBox" stroke="none" fill="none" x="927" y="2195" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="927" y="2496"><tspan fill="rgb(68,68,68)" stroke="none">80.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id129">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="12675" width="12301" height="1670"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id130">
- <rect class="BoundingBox" stroke="none" fill="none" x="2145" y="13000" width="611" height="41"/>
- <path fill="none" stroke="rgb(135,206,235)" stroke-width="40" stroke-linejoin="miter" d="M 2145,13020 L 2755,13020"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id131">
- <rect class="BoundingBox" stroke="none" fill="none" x="2349" y="12918" width="205" height="206"/>
- <path fill="rgb(135,206,235)" stroke="none" d="M 2553,13020 C 2553,13076 2506,13123 2450,13123 2394,13123 2349,13076 2349,13020 2349,12964 2394,12918 2450,12918 2506,12918 2553,12964 2553,13020 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id132">
- <rect class="BoundingBox" stroke="none" fill="none" x="927" y="1144" width="934" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="927" y="1445"><tspan fill="rgb(68,68,68)" stroke="none">90.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id133">
- <rect class="BoundingBox" stroke="none" fill="none" x="7192" y="13000" width="611" height="41"/>
- <path fill="none" stroke="rgb(128,128,0)" stroke-width="40" stroke-linejoin="miter" d="M 7192,13020 L 7802,13020"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id134">
- <rect class="BoundingBox" stroke="none" fill="none" x="7396" y="12918" width="205" height="206"/>
- <path fill="rgb(128,128,0)" stroke="none" d="M 7600,13020 C 7600,13076 7554,13123 7498,13123 7442,13123 7396,13076 7396,13020 7396,12964 7442,12918 7498,12918 7554,12918 7600,12964 7600,13020 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id135">
- <rect class="BoundingBox" stroke="none" fill="none" x="2857" y="12845" width="1870" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2857" y="13146"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2patch</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id136">
- <rect class="BoundingBox" stroke="none" fill="none" x="2145" y="13484" width="611" height="41"/>
- <path fill="none" stroke="rgb(128,0,128)" stroke-width="40" stroke-linejoin="miter" d="M 2145,13504 L 2755,13504"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id137">
- <rect class="BoundingBox" stroke="none" fill="none" x="2349" y="13402" width="205" height="205"/>
- <path fill="rgb(128,0,128)" stroke="none" d="M 2553,13505 C 2553,13561 2506,13606 2450,13606 2394,13606 2349,13561 2349,13505 2349,13448 2394,13402 2450,13402 2506,13402 2553,13448 2553,13505 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id138">
- <rect class="BoundingBox" stroke="none" fill="none" x="7904" y="12845" width="2099" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="7904" y="13146"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2xcbase</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id139">
- <rect class="BoundingBox" stroke="none" fill="none" x="7192" y="13484" width="611" height="41"/>
- <path fill="none" stroke="rgb(255,127,80)" stroke-width="40" stroke-linejoin="miter" d="M 7192,13504 L 7802,13504"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id140">
- <rect class="BoundingBox" stroke="none" fill="none" x="7396" y="13402" width="205" height="205"/>
- <path fill="rgb(255,127,80)" stroke="none" d="M 7600,13505 C 7600,13561 7554,13606 7498,13606 7442,13606 7396,13561 7396,13505 7396,13448 7442,13402 7498,13402 7554,13402 7600,13448 7600,13505 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id141">
- <rect class="BoundingBox" stroke="none" fill="none" x="2857" y="13329" width="3267" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2857" y="13630"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2bdbasemaclrn</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id142">
- <rect class="BoundingBox" stroke="none" fill="none" x="2145" y="13968" width="611" height="41"/>
- <path fill="none" stroke="rgb(75,0,130)" stroke-width="40" stroke-linejoin="miter" d="M 2145,13988 L 2755,13988"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id143">
- <rect class="BoundingBox" stroke="none" fill="none" x="2349" y="13886" width="205" height="205"/>
- <path fill="rgb(75,0,130)" stroke="none" d="M 2553,13989 C 2553,14045 2506,14090 2450,14090 2394,14090 2349,14045 2349,13989 2349,13933 2394,13886 2450,13886 2506,13886 2553,13933 2553,13989 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id144">
- <rect class="BoundingBox" stroke="none" fill="none" x="7904" y="13329" width="3932" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="7904" y="13630"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2bdscale10kmaclrn</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id145">
- <rect class="BoundingBox" stroke="none" fill="none" x="7192" y="13968" width="611" height="41"/>
- <path fill="none" stroke="rgb(255,192,203)" stroke-width="40" stroke-linejoin="miter" d="M 7192,13988 L 7802,13988"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id146">
- <rect class="BoundingBox" stroke="none" fill="none" x="7396" y="13886" width="205" height="205"/>
- <path fill="rgb(255,192,203)" stroke="none" d="M 7600,13989 C 7600,14045 7554,14090 7498,14090 7442,14090 7396,14045 7396,13989 7396,13933 7442,13886 7498,13886 7554,13886 7600,13933 7600,13989 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id147">
- <rect class="BoundingBox" stroke="none" fill="none" x="2857" y="13813" width="4139" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2857" y="14114"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2bdscale100kmaclrn</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id148">
- <rect class="BoundingBox" stroke="none" fill="none" x="7904" y="13813" width="3851" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="7904" y="14114"><tspan fill="rgb(68,68,68)" stroke="none">eth-l2bdscale1mmaclrn</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id149">
- <rect class="BoundingBox" stroke="none" fill="none" x="1377" y="485" width="12080" height="426"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="365px" font-weight="700"><tspan class="TextPosition" x="1389" y="824"><tspan fill="rgb(68,68,68)" stroke="none">Speedup Multi-core: </tspan><tspan font-weight="400" fill="rgb(68,68,68)" stroke="none">l2sw-3n-hsw-x710-64b-ndr-base-and-scale</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id150">
- <rect class="BoundingBox" stroke="none" fill="none" x="6339" y="11663" width="3710" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="6350" y="11964"><tspan fill="rgb(68,68,68)" stroke="none">Number of Cores [Qty]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id151">
- <rect class="BoundingBox" stroke="none" fill="none" x="2054" y="11974" width="2807" height="430"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id152">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="11964" width="2828" height="450"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id153">
- <rect class="BoundingBox" stroke="none" fill="none" x="503" y="3898" width="379" height="4328"/>
- <text class="TextShape" transform="translate(804,8214) rotate(-90) translate(-804,-8214)"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="804" y="8214"><tspan fill="rgb(68,68,68)" stroke="none">Packet Throughput [Mpps]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id154">
- <rect class="BoundingBox" stroke="none" fill="none" x="2054" y="12117" width="4454" height="429"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id155">
- <rect class="BoundingBox" stroke="none" fill="none" x="2044" y="12107" width="4474" height="449"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id156">
- <rect class="BoundingBox" stroke="none" fill="none" x="2084" y="12016" width="2748" height="349"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Courier" font-size="305px" font-weight="400"><tspan class="TextPosition" x="2085" y="12270"><tspan fill="rgb(68,68,68)" stroke="none">_ _ __</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id157">
- <rect class="BoundingBox" stroke="none" fill="none" x="2805" y="6628" width="3114" height="388"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id158">
- <rect class="BoundingBox" stroke="none" fill="none" x="2796" y="6618" width="3133" height="409"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id159">
- <rect class="BoundingBox" stroke="none" fill="none" x="2000" y="12100" width="4380" height="349"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="Courier" font-size="305px" font-weight="400"><tspan class="TextPosition" x="2000" y="12354"><tspan fill="rgb(68,68,68)" stroke="none"> </tspan><tspan fill="rgb(68,68,68)" stroke="none">perfect measured</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id160">
- <rect class="BoundingBox" stroke="none" fill="none" x="2806" y="7258" width="3194" height="389"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id161">
- <rect class="BoundingBox" stroke="none" fill="none" x="2796" y="7248" width="3214" height="409"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id162">
- <rect class="BoundingBox" stroke="none" fill="none" x="2827" y="6659" width="3062" height="332"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="284px" font-weight="400"><tspan class="TextPosition" x="2837" y="6921"><tspan fill="rgb(68,68,68)" stroke="none">NIC Limit: 35.80Mpps</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id163">
- <rect class="BoundingBox" stroke="none" fill="none" x="2806" y="2582" width="3235" height="389"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id164">
- <rect class="BoundingBox" stroke="none" fill="none" x="2795" y="2572" width="3256" height="409"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id165">
- <rect class="BoundingBox" stroke="none" fill="none" x="2827" y="7290" width="3146" height="332"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="284px" font-weight="400"><tspan class="TextPosition" x="2837" y="7552"><tspan fill="rgb(68,68,68)" stroke="none">Link Limit: 29.76Mpps</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id166">
- <rect class="BoundingBox" stroke="none" fill="none" x="2827" y="2614" width="3192" height="332"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="284px" font-weight="400"><tspan class="TextPosition" x="2837" y="2876"><tspan fill="rgb(68,68,68)" stroke="none">PCIe Limit: 74.40Mpps</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/resources/tools/presentation/doc/pic/graph-throughput.svg b/resources/tools/presentation/doc/pic/graph-throughput.svg
deleted file mode 100644
index d17c93b1cc..0000000000
--- a/resources/tools/presentation/doc/pic/graph-throughput.svg
+++ /dev/null
@@ -1,645 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.2" width="150mm" height="170mm" viewBox="0 0 15000 17000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
- <defs class="ClipPathGroup">
- <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
- <rect x="0" y="0" width="15000" height="17000"/>
- </clipPath>
- <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
- <rect x="15" y="17" width="14970" height="16966"/>
- </clipPath>
- </defs>
- <defs>
- <font id="EmbeddedFont_1" horiz-adv-x="2048">
- <font-face font-family="DejaVuSans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="x" horiz-adv-x="1086" d="M 1124,1120 L 719,575 1145,0 928,0 602,440 276,0 59,0 494,586 96,1120 313,1120 610,721 907,1120 1124,1120 Z"/>
- <glyph unicode="w" horiz-adv-x="1510" d="M 86,1120 L 270,1120 500,246 729,1120 946,1120 1176,246 1405,1120 1589,1120 1296,0 1079,0 838,918 596,0 379,0 86,1120 Z"/>
- <glyph unicode="u" horiz-adv-x="927" d="M 174,442 L 174,1120 358,1120 358,449 C 358,343 379,264 420,211 461,158 523,131 606,131 705,131 784,163 842,226 899,289 928,376 928,485 L 928,1120 1112,1120 1112,0 928,0 928,172 C 883,104 832,54 773,21 714,-12 645,-29 567,-29 438,-29 341,11 274,91 207,171 174,288 174,442 Z "/>
- <glyph unicode="t" horiz-adv-x="689" d="M 375,1438 L 375,1120 754,1120 754,977 375,977 375,369 C 375,278 388,219 413,193 438,167 488,154 565,154 L 754,154 754,0 565,0 C 423,0 325,27 271,80 217,133 190,229 190,369 L 190,977 55,977 55,1120 190,1120 190,1438 375,1438 Z"/>
- <glyph unicode="s" horiz-adv-x="848" d="M 907,1087 L 907,913 C 855,940 801,960 745,973 689,986 631,993 571,993 480,993 411,979 366,951 320,923 297,881 297,825 297,782 313,749 346,725 379,700 444,677 543,655 L 606,641 C 737,613 830,574 885,523 940,472 967,400 967,309 967,205 926,123 844,62 761,1 648,-29 504,-29 444,-29 382,-23 317,-12 252,0 183,18 111,41 L 111,231 C 179,196 246,169 312,152 378,134 443,125 508,125 595,125 661,140 708,170 755,199 778,241 778,295 778,345 761,383 728,410 694,437 620,462 506,487 L 442,502 C 328,526 246,563 195,613 144,662 119,730 119,817 119,922 156,1004 231,1061 306,1118 412,1147 549,1147 617,1147 681,1142 741,1132 801,1122 856,1107 907,1087 Z"/>
- <glyph unicode="r" horiz-adv-x="663" d="M 842,948 C 821,960 799,969 775,975 750,980 723,983 694,983 590,983 510,949 455,882 399,814 371,717 371,590 L 371,0 186,0 186,1120 371,1120 371,946 C 410,1014 460,1065 522,1098 584,1131 659,1147 748,1147 761,1147 775,1146 790,1145 805,1143 822,1140 841,1137 L 842,948 Z"/>
- <glyph unicode="p" horiz-adv-x="1007" d="M 371,168 L 371,-426 186,-426 186,1120 371,1120 371,950 C 410,1017 459,1066 518,1099 577,1131 647,1147 729,1147 865,1147 976,1093 1061,985 1146,877 1188,735 1188,559 1188,383 1146,241 1061,133 976,25 865,-29 729,-29 647,-29 577,-13 518,20 459,52 410,101 371,168 Z M 997,559 C 997,694 969,801 914,878 858,955 781,993 684,993 587,993 510,955 455,878 399,801 371,694 371,559 371,424 399,318 455,241 510,164 587,125 684,125 781,125 858,164 914,241 969,318 997,424 997,559 Z"/>
- <glyph unicode="o" horiz-adv-x="1033" d="M 627,991 C 528,991 450,953 393,876 336,799 307,693 307,559 307,425 336,320 393,243 450,166 528,127 627,127 725,127 803,166 860,243 917,320 946,426 946,559 946,692 917,797 860,875 803,952 725,991 627,991 Z M 627,1147 C 787,1147 913,1095 1004,991 1095,887 1141,743 1141,559 1141,376 1095,232 1004,128 913,23 787,-29 627,-29 466,-29 341,23 250,128 159,232 113,376 113,559 113,743 159,887 250,991 341,1095 466,1147 627,1147 Z"/>
- <glyph unicode="n" horiz-adv-x="927" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="m" horiz-adv-x="1615" d="M 1065,905 C 1111,988 1166,1049 1230,1088 1294,1127 1369,1147 1456,1147 1573,1147 1663,1106 1726,1025 1789,943 1821,827 1821,676 L 1821,0 1636,0 1636,670 C 1636,777 1617,857 1579,909 1541,961 1483,987 1405,987 1310,987 1234,955 1179,892 1124,829 1096,742 1096,633 L 1096,0 911,0 911,670 C 911,778 892,858 854,910 816,961 757,987 678,987 584,987 509,955 454,892 399,828 371,742 371,633 L 371,0 186,0 186,1120 371,1120 371,946 C 413,1015 463,1065 522,1098 581,1131 650,1147 731,1147 812,1147 882,1126 939,1085 996,1044 1038,984 1065,905 Z"/>
- <glyph unicode="l" horiz-adv-x="186" d="M 193,1556 L 377,1556 377,0 193,0 193,1556 Z"/>
- <glyph unicode="k" horiz-adv-x="980" d="M 186,1556 L 371,1556 371,637 920,1120 1155,1120 561,596 1180,0 940,0 371,547 371,0 186,0 186,1556 Z"/>
- <glyph unicode="i" horiz-adv-x="186" d="M 193,1120 L 377,1120 377,0 193,0 193,1120 Z M 193,1556 L 377,1556 377,1323 193,1323 193,1556 Z"/>
- <glyph unicode="h" horiz-adv-x="927" d="M 1124,676 L 1124,0 940,0 940,670 C 940,776 919,855 878,908 837,961 775,987 692,987 593,987 514,955 457,892 400,829 371,742 371,633 L 371,0 186,0 186,1556 371,1556 371,946 C 415,1013 467,1064 527,1097 586,1130 655,1147 733,1147 862,1147 959,1107 1025,1028 1091,948 1124,831 1124,676 Z"/>
- <glyph unicode="g" horiz-adv-x="1006" d="M 930,573 C 930,706 903,810 848,883 793,956 715,993 616,993 517,993 441,956 386,883 331,810 303,706 303,573 303,440 331,337 386,264 441,191 517,154 616,154 715,154 793,191 848,264 903,337 930,440 930,573 Z M 1114,139 C 1114,-52 1072,-193 987,-287 902,-379 773,-426 598,-426 533,-426 472,-421 415,-412 358,-402 302,-387 248,-367 L 248,-188 C 302,-217 355,-239 408,-253 461,-267 514,-274 569,-274 690,-274 780,-242 840,-180 900,-116 930,-21 930,106 L 930,197 C 892,131 843,82 784,49 725,16 654,0 571,0 434,0 323,52 239,157 155,262 113,400 113,573 113,746 155,885 239,990 323,1095 434,1147 571,1147 654,1147 725,1131 784,1098 843,1065 892,1016 930,950 L 930,1120 1114,1120 1114,139 Z"/>
- <glyph unicode="f" horiz-adv-x="716" d="M 760,1556 L 760,1403 584,1403 C 518,1403 472,1390 447,1363 421,1336 408,1288 408,1219 L 408,1120 711,1120 711,977 408,977 408,0 223,0 223,977 47,977 47,1120 223,1120 223,1198 C 223,1323 252,1414 310,1471 368,1528 460,1556 586,1556 L 760,1556 Z"/>
- <glyph unicode="e" horiz-adv-x="1033" d="M 1151,606 L 1151,516 305,516 C 313,389 351,293 420,227 488,160 583,127 705,127 776,127 844,136 911,153 977,170 1043,196 1108,231 L 1108,57 C 1042,29 974,8 905,-7 836,-22 765,-29 694,-29 515,-29 374,23 270,127 165,231 113,372 113,549 113,732 163,878 262,986 361,1093 494,1147 662,1147 813,1147 932,1099 1020,1002 1107,905 1151,773 1151,606 Z M 967,659 C 966,760 938,841 883,901 828,961 755,991 664,991 561,991 479,962 418,904 356,846 320,764 311,659 L 967,659 Z"/>
- <glyph unicode="d" horiz-adv-x="1006" d="M 930,950 L 930,1556 1114,1556 1114,0 930,0 930,168 C 891,101 843,52 784,20 725,-13 654,-29 571,-29 436,-29 326,25 241,133 156,241 113,383 113,559 113,735 156,877 241,985 326,1093 436,1147 571,1147 654,1147 725,1131 784,1099 843,1066 891,1017 930,950 Z M 303,559 C 303,424 331,318 387,241 442,164 519,125 616,125 713,125 790,164 846,241 902,318 930,424 930,559 930,694 902,801 846,878 790,955 713,993 616,993 519,993 442,955 387,878 331,801 303,694 303,559 Z"/>
- <glyph unicode="c" horiz-adv-x="874" d="M 999,1077 L 999,905 C 947,934 895,955 843,970 790,984 737,991 684,991 565,991 472,953 406,878 340,802 307,696 307,559 307,422 340,316 406,241 472,165 565,127 684,127 737,127 790,134 843,149 895,163 947,184 999,213 L 999,43 C 948,19 895,1 840,-11 785,-23 726,-29 664,-29 495,-29 361,24 262,130 163,236 113,379 113,559 113,742 163,885 264,990 364,1095 501,1147 676,1147 733,1147 788,1141 842,1130 896,1118 948,1100 999,1077 Z"/>
- <glyph unicode="b" horiz-adv-x="1007" d="M 997,559 C 997,694 969,801 914,878 858,955 781,993 684,993 587,993 510,955 455,878 399,801 371,694 371,559 371,424 399,318 455,241 510,164 587,125 684,125 781,125 858,164 914,241 969,318 997,424 997,559 Z M 371,950 C 410,1017 459,1066 518,1099 577,1131 647,1147 729,1147 865,1147 976,1093 1061,985 1146,877 1188,735 1188,559 1188,383 1146,241 1061,133 976,25 865,-29 729,-29 647,-29 577,-13 518,20 459,52 410,101 371,168 L 371,0 186,0 186,1556 371,1556 371,950 Z"/>
- <glyph unicode="a" horiz-adv-x="953" d="M 702,563 C 553,563 450,546 393,512 336,478 307,420 307,338 307,273 329,221 372,183 415,144 473,125 547,125 649,125 731,161 793,234 854,306 885,402 885,522 L 885,563 702,563 Z M 1069,639 L 1069,0 885,0 885,170 C 843,102 791,52 728,20 665,-13 589,-29 498,-29 383,-29 292,3 225,68 157,132 123,218 123,326 123,452 165,547 250,611 334,675 460,707 627,707 L 885,707 885,725 C 885,810 857,875 802,922 746,968 668,991 567,991 503,991 441,983 380,968 319,953 261,930 205,899 L 205,1069 C 272,1095 338,1115 401,1128 464,1141 526,1147 586,1147 748,1147 869,1105 949,1021 1029,937 1069,810 1069,639 Z"/>
- <glyph unicode="]" horiz-adv-x="425" d="M 623,1556 L 623,-270 199,-270 199,-127 438,-127 438,1413 199,1413 199,1556 623,1556 Z"/>
- <glyph unicode="[" horiz-adv-x="425" d="M 176,1556 L 600,1556 600,1413 360,1413 360,-127 600,-127 600,-270 176,-270 176,1556 Z"/>
- <glyph unicode="T" horiz-adv-x="1271" d="M -6,1493 L 1257,1493 1257,1323 727,1323 727,0 524,0 524,1323 -6,1323 -6,1493 Z"/>
- <glyph unicode="P" horiz-adv-x="954" d="M 403,1327 L 403,766 657,766 C 751,766 824,790 875,839 926,888 952,957 952,1047 952,1136 926,1205 875,1254 824,1303 751,1327 657,1327 L 403,1327 Z M 201,1493 L 657,1493 C 824,1493 951,1455 1037,1380 1122,1304 1165,1193 1165,1047 1165,900 1122,788 1037,713 951,638 824,600 657,600 L 403,600 403,0 201,0 201,1493 Z"/>
- <glyph unicode="M" horiz-adv-x="1351" d="M 201,1493 L 502,1493 883,477 1266,1493 1567,1493 1567,0 1370,0 1370,1311 985,287 782,287 397,1311 397,0 201,0 201,1493 Z"/>
- <glyph unicode="I" horiz-adv-x="213" d="M 201,1493 L 403,1493 403,0 201,0 201,1493 Z"/>
- <glyph unicode="C" horiz-adv-x="1191" d="M 1319,1378 L 1319,1165 C 1251,1228 1179,1276 1102,1307 1025,1338 943,1354 856,1354 685,1354 555,1302 464,1198 373,1093 328,942 328,745 328,548 373,398 464,294 555,189 685,137 856,137 943,137 1025,153 1102,184 1179,215 1251,263 1319,326 L 1319,115 C 1248,67 1174,31 1095,7 1016,-17 932,-29 844,-29 618,-29 440,40 310,179 180,317 115,506 115,745 115,985 180,1174 310,1313 440,1451 618,1520 844,1520 933,1520 1018,1508 1097,1485 1176,1461 1250,1425 1319,1378 Z"/>
- <glyph unicode="8" horiz-adv-x="1033" d="M 651,709 C 555,709 480,683 425,632 370,581 342,510 342,420 342,330 370,259 425,208 480,157 555,131 651,131 747,131 823,157 878,209 933,260 961,331 961,420 961,510 934,581 879,632 824,683 748,709 651,709 Z M 449,795 C 362,816 295,857 247,916 198,975 174,1048 174,1133 174,1252 217,1347 302,1416 387,1485 503,1520 651,1520 800,1520 916,1485 1001,1416 1086,1347 1128,1252 1128,1133 1128,1048 1104,975 1056,916 1007,857 940,816 854,795 951,772 1027,728 1082,662 1136,596 1163,515 1163,420 1163,275 1119,164 1031,87 942,10 816,-29 651,-29 486,-29 360,10 272,87 183,164 139,275 139,420 139,515 166,596 221,662 276,728 352,772 449,795 Z M 375,1114 C 375,1037 399,976 448,933 496,890 564,868 651,868 738,868 806,890 855,933 904,976 928,1037 928,1114 928,1191 904,1252 855,1295 806,1338 738,1360 651,1360 564,1360 496,1338 448,1295 399,1252 375,1191 375,1114 Z"/>
- <glyph unicode="6" horiz-adv-x="1033" d="M 676,827 C 585,827 514,796 461,734 408,672 381,587 381,479 381,372 408,287 461,225 514,162 585,131 676,131 767,131 839,162 892,225 945,287 971,372 971,479 971,587 945,672 892,734 839,796 767,827 676,827 Z M 1077,1460 L 1077,1276 C 1026,1300 975,1318 924,1331 872,1344 821,1350 770,1350 637,1350 535,1305 465,1215 394,1125 354,989 344,807 383,865 433,910 492,941 551,972 617,987 688,987 838,987 957,942 1044,851 1131,760 1174,636 1174,479 1174,326 1129,203 1038,110 947,17 827,-29 676,-29 503,-29 371,37 280,170 189,302 143,494 143,745 143,981 199,1169 311,1310 423,1450 573,1520 762,1520 813,1520 864,1515 916,1505 967,1495 1021,1480 1077,1460 Z"/>
- <glyph unicode="5" horiz-adv-x="953" d="M 221,1493 L 1014,1493 1014,1323 406,1323 406,957 C 435,967 465,975 494,980 523,985 553,987 582,987 749,987 881,941 978,850 1075,759 1124,635 1124,479 1124,318 1074,194 974,105 874,16 733,-29 551,-29 488,-29 425,-24 360,-13 295,-2 227,14 158,35 L 158,238 C 218,205 280,181 344,165 408,149 476,141 547,141 662,141 754,171 821,232 888,293 922,375 922,479 922,583 888,665 821,726 754,787 662,817 547,817 493,817 439,811 386,799 332,787 277,768 221,743 L 221,1493 Z"/>
- <glyph unicode="4" horiz-adv-x="1086" d="M 774,1317 L 264,520 774,520 774,1317 Z M 721,1493 L 975,1493 975,520 1188,520 1188,352 975,352 975,0 774,0 774,352 100,352 100,547 721,1493 Z"/>
- <glyph unicode="3" horiz-adv-x="980" d="M 831,805 C 928,784 1003,741 1058,676 1112,611 1139,530 1139,434 1139,287 1088,173 987,92 886,11 742,-29 555,-29 492,-29 428,-23 362,-11 295,2 227,20 156,45 L 156,240 C 212,207 273,183 340,166 407,149 476,141 549,141 676,141 772,166 839,216 905,266 938,339 938,434 938,522 907,591 846,641 784,690 698,715 588,715 L 414,715 414,881 596,881 C 695,881 771,901 824,941 877,980 903,1037 903,1112 903,1189 876,1248 822,1289 767,1330 689,1350 588,1350 533,1350 473,1344 410,1332 347,1320 277,1301 201,1276 L 201,1456 C 278,1477 350,1493 417,1504 484,1515 547,1520 606,1520 759,1520 881,1485 970,1416 1059,1346 1104,1252 1104,1133 1104,1050 1080,981 1033,924 986,867 918,827 831,805 Z"/>
- <glyph unicode="2" horiz-adv-x="953" d="M 393,170 L 1098,170 1098,0 150,0 150,170 C 227,249 331,356 464,490 596,623 679,709 713,748 778,821 823,882 849,933 874,983 887,1032 887,1081 887,1160 859,1225 804,1275 748,1325 675,1350 586,1350 523,1350 456,1339 386,1317 315,1295 240,1262 160,1217 L 160,1421 C 241,1454 317,1478 388,1495 459,1512 523,1520 582,1520 737,1520 860,1481 952,1404 1044,1327 1090,1223 1090,1094 1090,1033 1079,975 1056,920 1033,865 991,800 930,725 913,706 860,650 771,558 682,465 556,336 393,170 Z"/>
- <glyph unicode="1" horiz-adv-x="900" d="M 254,170 L 584,170 584,1309 225,1237 225,1421 582,1493 784,1493 784,170 1114,170 1114,0 254,0 254,170 Z"/>
- <glyph unicode="0" horiz-adv-x="1033" d="M 651,1360 C 547,1360 469,1309 417,1207 364,1104 338,950 338,745 338,540 364,387 417,285 469,182 547,131 651,131 756,131 834,182 887,285 939,387 965,540 965,745 965,950 939,1104 887,1207 834,1309 756,1360 651,1360 Z M 651,1520 C 818,1520 946,1454 1035,1322 1123,1189 1167,997 1167,745 1167,494 1123,302 1035,170 946,37 818,-29 651,-29 484,-29 356,37 268,170 179,302 135,494 135,745 135,997 179,1189 268,1322 356,1454 484,1520 651,1520 Z"/>
- <glyph unicode="." horiz-adv-x="213" d="M 219,254 L 430,254 430,0 219,0 219,254 Z"/>
- <glyph unicode="-" horiz-adv-x="530" d="M 100,643 L 639,643 639,479 100,479 100,643 Z"/>
- <glyph unicode=" " horiz-adv-x="635"/>
- </font>
- </defs>
- <defs>
- <font id="EmbeddedFont_2" horiz-adv-x="2048">
- <font-face font-family="DejaVuSans embedded" units-per-em="2048" font-weight="bold" font-style="normal" ascent="1879" descent="476"/>
- <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
- <glyph unicode="u" horiz-adv-x="1112" d="M 160,436 L 160,1120 520,1120 520,1008 C 520,947 520,871 519,780 518,688 518,627 518,596 518,506 520,441 525,402 530,362 538,333 549,315 564,292 583,274 607,261 630,248 657,242 688,242 763,242 821,271 864,328 907,385 928,465 928,567 L 928,1120 1286,1120 1286,0 928,0 928,162 C 874,97 817,49 757,18 696,-13 630,-29 557,-29 428,-29 329,11 262,90 194,169 160,285 160,436 Z"/>
- <glyph unicode="t" horiz-adv-x="901" d="M 563,1438 L 563,1120 932,1120 932,864 563,864 563,389 C 563,337 573,302 594,284 615,265 656,256 717,256 L 901,256 901,0 594,0 C 453,0 353,30 294,89 235,148 205,248 205,389 L 205,864 27,864 27,1120 205,1120 205,1438 563,1438 Z"/>
- <glyph unicode="r" horiz-adv-x="821" d="M 1004,815 C 973,830 942,841 911,848 880,855 848,858 817,858 725,858 654,829 605,770 555,711 530,626 530,516 L 530,0 172,0 172,1120 530,1120 530,936 C 576,1009 629,1062 689,1095 748,1128 820,1145 903,1145 915,1145 928,1145 942,1145 956,1145 976,1143 1003,1139 L 1004,815 Z"/>
- <glyph unicode="p" horiz-adv-x="1191" d="M 530,162 L 530,-426 172,-426 172,1120 530,1120 530,956 C 579,1021 634,1070 694,1101 754,1132 823,1147 901,1147 1039,1147 1152,1092 1241,983 1330,873 1374,732 1374,559 1374,386 1330,245 1241,136 1152,26 1039,-29 901,-29 823,-29 754,-13 694,18 634,49 579,97 530,162 Z M 768,887 C 691,887 633,859 592,803 551,746 530,665 530,559 530,453 551,372 592,316 633,259 691,231 768,231 845,231 903,259 944,315 984,371 1004,452 1004,559 1004,666 984,747 944,803 903,859 845,887 768,887 Z"/>
- <glyph unicode="o" horiz-adv-x="1218" d="M 705,891 C 626,891 565,863 524,806 482,749 461,666 461,559 461,452 482,370 524,313 565,256 626,227 705,227 783,227 843,256 884,313 925,370 946,452 946,559 946,666 925,749 884,806 843,863 783,891 705,891 Z M 705,1147 C 898,1147 1048,1095 1157,991 1265,887 1319,743 1319,559 1319,375 1265,231 1157,127 1048,23 898,-29 705,-29 512,-29 361,23 252,127 143,231 88,375 88,559 88,743 143,887 252,991 361,1095 512,1147 705,1147 Z"/>
- <glyph unicode="k" horiz-adv-x="1218" d="M 172,1556 L 530,1556 530,709 942,1120 1358,1120 811,606 1401,0 967,0 530,467 530,0 172,0 172,1556 Z"/>
- <glyph unicode="h" horiz-adv-x="1112" d="M 1298,682 L 1298,0 938,0 938,111 938,520 C 938,618 936,685 932,722 927,759 920,786 909,803 895,826 876,845 852,858 828,871 801,877 770,877 695,877 637,848 594,791 551,733 530,653 530,551 L 530,0 172,0 172,1556 530,1556 530,956 C 584,1021 641,1070 702,1101 763,1132 830,1147 903,1147 1032,1147 1131,1107 1198,1028 1265,949 1298,833 1298,682 Z"/>
- <glyph unicode="g" horiz-adv-x="1192" d="M 934,190 C 885,125 830,77 771,46 712,15 643,0 565,0 428,0 315,54 226,162 137,269 92,406 92,573 92,740 137,878 226,985 315,1092 428,1145 565,1145 643,1145 712,1130 771,1099 830,1068 885,1020 934,954 L 934,1120 1294,1120 1294,113 C 1294,-67 1237,-204 1124,-300 1010,-394 845,-442 629,-442 559,-442 491,-437 426,-426 361,-415 295,-399 229,-377 L 229,-98 C 292,-134 353,-161 413,-179 473,-196 533,-205 594,-205 711,-205 797,-179 852,-128 907,-77 934,4 934,113 L 934,190 Z M 698,887 C 624,887 566,860 525,805 484,750 463,673 463,573 463,470 483,393 523,340 563,287 621,260 698,260 773,260 831,287 872,342 913,397 934,474 934,573 934,673 913,750 872,805 831,860 773,887 698,887 Z"/>
- <glyph unicode="e" horiz-adv-x="1192" d="M 1290,563 L 1290,461 453,461 C 462,377 492,314 544,272 596,230 669,209 762,209 837,209 915,220 994,243 1073,265 1154,299 1237,344 L 1237,68 C 1152,36 1068,12 983,-5 898,-21 814,-29 729,-29 526,-29 369,23 257,126 144,229 88,373 88,559 88,742 143,885 254,990 364,1095 516,1147 709,1147 885,1147 1026,1094 1132,988 1237,882 1290,740 1290,563 Z M 922,682 C 922,750 902,805 863,847 823,888 771,909 707,909 638,909 581,890 538,851 495,812 468,755 457,682 L 922,682 Z"/>
- <glyph unicode="c" horiz-adv-x="980" d="M 1077,1085 L 1077,793 C 1028,826 980,851 931,867 882,883 831,891 778,891 678,891 600,862 545,804 489,745 461,664 461,559 461,454 489,373 545,315 600,256 678,227 778,227 834,227 887,235 938,252 988,269 1034,293 1077,326 L 1077,33 C 1021,12 964,-3 907,-14 849,-24 791,-29 733,-29 531,-29 373,23 259,127 145,230 88,374 88,559 88,744 145,888 259,992 373,1095 531,1147 733,1147 792,1147 850,1142 907,1132 964,1121 1020,1106 1077,1085 Z"/>
- <glyph unicode="a" horiz-adv-x="1139" d="M 674,504 C 599,504 543,491 506,466 468,441 449,403 449,354 449,309 464,273 495,248 525,222 567,209 621,209 688,209 745,233 791,282 837,330 860,390 860,463 L 860,504 674,504 Z M 1221,639 L 1221,0 860,0 860,166 C 812,98 758,49 698,18 638,-13 565,-29 479,-29 363,-29 269,5 197,73 124,140 88,228 88,336 88,467 133,564 224,625 314,686 456,717 649,717 L 860,717 860,745 C 860,802 838,843 793,870 748,896 679,909 584,909 507,909 436,901 370,886 304,871 243,848 186,817 L 186,1090 C 263,1109 340,1123 417,1133 494,1142 572,1147 649,1147 851,1147 997,1107 1087,1028 1176,948 1221,818 1221,639 Z"/>
- <glyph unicode="T" horiz-adv-x="1377" d="M 10,1493 L 1386,1493 1386,1202 891,1202 891,0 506,0 506,1202 10,1202 10,1493 Z"/>
- <glyph unicode="P" horiz-adv-x="1218" d="M 188,1493 L 827,1493 C 1017,1493 1163,1451 1265,1367 1366,1282 1417,1162 1417,1006 1417,849 1366,729 1265,645 1163,560 1017,518 827,518 L 573,518 573,0 188,0 188,1493 Z M 573,1214 L 573,797 786,797 C 861,797 918,815 959,852 1000,888 1020,939 1020,1006 1020,1073 1000,1124 959,1160 918,1196 861,1214 786,1214 L 573,1214 Z"/>
- <glyph unicode=":" horiz-adv-x="345" d="M 229,1120 L 590,1120 590,733 229,733 229,1120 Z M 229,387 L 590,387 590,0 229,0 229,387 Z"/>
- <glyph unicode=" " horiz-adv-x="714"/>
- </font>
- </defs>
- <defs class="TextShapeIndex">
- <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86 id87 id88 id89 id90 id91 id92"/>
- </defs>
- <defs class="EmbeddedBulletChars">
- <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
- </g>
- <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
- </g>
- <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
- </g>
- <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
- </g>
- <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
- </g>
- <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
- </g>
- <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
- </g>
- <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
- </g>
- <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
- </g>
- <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
- <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
- </g>
- </defs>
- <defs class="TextEmbeddedBitmaps"/>
- <g>
- <g id="id2" class="Master_Slide">
- <g id="bg-id2" class="Background"/>
- <g id="bo-id2" class="BackgroundObjects"/>
- </g>
- </g>
- <g class="SlideGroup">
- <g>
- <g id="container-id1">
- <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
- <g class="Page">
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id3">
- <rect class="BoundingBox" stroke="none" fill="none" x="2142" y="14493" width="28017" height="485"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id4">
- <rect class="BoundingBox" stroke="none" fill="none" x="2142" y="14976" width="28017" height="486"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id5">
- <rect class="BoundingBox" stroke="none" fill="none" x="2142" y="15460" width="28017" height="486"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id6">
- <rect class="BoundingBox" stroke="none" fill="none" x="2142" y="15944" width="28017" height="487"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id7">
- <rect class="BoundingBox" stroke="none" fill="none" x="416" y="515" width="14233" height="16267"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 416,516 L 14648,516 14648,16781 416,16781 416,516 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id8">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="1532" width="12201" height="11692"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 2042,1532 L 14241,1532 14241,13223 2042,13223 2042,1532 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id9">
- <rect class="BoundingBox" stroke="none" fill="none" x="3567" y="1532" width="1" height="11691"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id10">
- <rect class="BoundingBox" stroke="none" fill="none" x="3557" y="1532" width="21" height="11691"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 3567,1532 L 3567,13222"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id11">
- <rect class="BoundingBox" stroke="none" fill="none" x="6616" y="1532" width="1" height="11691"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id12">
- <rect class="BoundingBox" stroke="none" fill="none" x="6606" y="1532" width="21" height="11691"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 6616,1532 L 6616,13222"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id13">
- <rect class="BoundingBox" stroke="none" fill="none" x="9666" y="1532" width="1" height="11691"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id14">
- <rect class="BoundingBox" stroke="none" fill="none" x="9656" y="1532" width="21" height="11691"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 9666,1532 L 9666,13222"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id15">
- <rect class="BoundingBox" stroke="none" fill="none" x="12715" y="1532" width="1" height="11691"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id16">
- <rect class="BoundingBox" stroke="none" fill="none" x="12705" y="1532" width="21" height="11691"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 12715,1532 L 12715,13222"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id17">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="11424" width="12199" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id18">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="11414" width="12199" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,11424 L 14240,11424"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id19">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="9625" width="12199" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id20">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="9615" width="12199" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,9625 L 14240,9625"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id21">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="7827" width="12199" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id22">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="7817" width="12199" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,7827 L 14240,7827"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id23">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="6028" width="12199" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id24">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="6018" width="12199" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,6028 L 14240,6028"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id25">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="4230" width="12199" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id26">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="4220" width="12199" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,4230 L 14240,4230"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id27">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="2431" width="12199" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id28">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="2421" width="12199" height="21"/>
- <path fill="none" stroke="rgb(230,230,230)" stroke-width="20" stroke-linejoin="miter" d="M 2042,2431 L 14240,2431"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id29">
- <rect class="BoundingBox" stroke="none" fill="none" x="3033" y="2308" width="1069" height="51"/>
- <path fill="rgb(31,119,180)" fill-opacity="0.502" stroke="rgb(255,255,255)" stroke-opacity="0.502" d="M 3033,2334 L 4101,2334 3033,2334 Z M 3033,2340 L 4101,2340 4101,2320 3033,2320 3033,2340 Z M 3567,2340 L 3567,2358 3567,2340 Z M 3567,2320 L 3567,2309 3567,2320 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id30">
- <rect class="BoundingBox" stroke="none" fill="none" x="3013" y="2300" width="1110" height="62"/>
- <path fill="rgb(31,119,180)" stroke="none" d="M 3033,2313 L 4101,2313 4101,2355 3033,2355 3033,2313 Z M 3033,2319 L 4101,2319 4101,2340 4081,2340 4081,2320 4101,2320 4101,2341 3033,2341 3033,2320 3053,2320 3053,2340 3033,2340 3033,2319 Z M 3013,2340 L 3013,2320 3013,2300 3033,2300 4101,2300 4122,2300 4122,2320 4122,2340 4122,2361 4101,2361 3033,2361 3013,2361 3013,2340 Z M 3587,2340 L 3587,2358 3546,2358 3546,2340 3587,2340 Z M 3546,2320 L 3546,2309 3587,2309 3587,2320 3546,2320 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id31">
- <rect class="BoundingBox" stroke="none" fill="none" x="3506" y="6951" width="125" height="124"/>
- <path fill="rgb(31,119,180)" stroke="none" d="M 3629,7013 C 3629,7046 3601,7074 3567,7074 3533,7074 3506,7046 3506,7013 3506,6979 3533,6951 3567,6951 3601,6951 3629,6979 3629,7013 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id32">
- <rect class="BoundingBox" stroke="none" fill="none" x="6083" y="3123" width="1069" height="159"/>
- <path fill="rgb(255,127,14)" fill-opacity="0.502" stroke="rgb(255,255,255)" stroke-opacity="0.502" d="M 6083,3216 L 7151,3216 6083,3216 Z M 6083,3280 L 7151,3280 7151,3194 6083,3194 6083,3280 Z M 6616,3194 L 6616,3123 6616,3194 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id33">
- <rect class="BoundingBox" stroke="none" fill="none" x="6062" y="3123" width="1110" height="178"/>
- <path fill="rgb(255,127,14)" stroke="none" d="M 6083,3194 L 7151,3194 7151,3235 6083,3235 6083,3194 Z M 6083,3259 L 7151,3259 7151,3280 7131,3280 7131,3194 7151,3194 7151,3215 6083,3215 6083,3194 6103,3194 6103,3280 6083,3280 6083,3259 Z M 6062,3280 L 6062,3194 6062,3174 6083,3174 7151,3174 7171,3174 7171,3194 7171,3280 7171,3300 7151,3300 6083,3300 6062,3300 6062,3280 Z M 6596,3194 L 6596,3123 6637,3123 6637,3194 6596,3194 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id34">
- <rect class="BoundingBox" stroke="none" fill="none" x="6555" y="12844" width="124" height="125"/>
- <path fill="rgb(255,127,14)" stroke="none" d="M 6678,12906 C 6678,12939 6651,12967 6617,12967 6583,12967 6555,12939 6555,12906 6555,12871 6583,12844 6617,12844 6651,12844 6678,12871 6678,12906 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id35">
- <rect class="BoundingBox" stroke="none" fill="none" x="6555" y="6485" width="124" height="124"/>
- <path fill="rgb(255,127,14)" stroke="none" d="M 6678,6546 C 6678,6579 6651,6608 6617,6608 6583,6608 6555,6579 6555,6546 6555,6512 6583,6485 6617,6485 6651,6485 6678,6512 6678,6546 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id36">
- <rect class="BoundingBox" stroke="none" fill="none" x="9132" y="3098" width="1071" height="173"/>
- <path fill="rgb(44,160,44)" fill-opacity="0.502" stroke="rgb(255,255,255)" stroke-opacity="0.502" d="M 9132,3226 L 10201,3226 9132,3226 Z M 9132,3267 L 10201,3267 10201,3181 9132,3181 9132,3267 Z M 9666,3267 L 9666,3270 9666,3267 Z M 9666,3181 L 9666,3098 9666,3181 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id37">
- <rect class="BoundingBox" stroke="none" fill="none" x="9112" y="3097" width="1110" height="191"/>
- <path fill="rgb(44,160,44)" stroke="none" d="M 9132,3204 L 10201,3204 10201,3245 9132,3245 9132,3204 Z M 9132,3246 L 10201,3246 10201,3266 10180,3266 10180,3180 10201,3180 10201,3201 9132,3201 9132,3180 9153,3180 9153,3266 9132,3266 9132,3246 Z M 9112,3266 L 9112,3180 9112,3160 9132,3160 10201,3160 10221,3160 10221,3180 10221,3266 10221,3287 10201,3287 9132,3287 9112,3287 9112,3266 Z M 9687,3266 L 9687,3269 9647,3269 9647,3266 9687,3266 Z M 9647,3180 L 9647,3098 9687,3098 9687,3180 9647,3180 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id38">
- <rect class="BoundingBox" stroke="none" fill="none" x="9605" y="6611" width="124" height="125"/>
- <path fill="rgb(44,160,44)" stroke="none" d="M 9728,6672 C 9728,6706 9701,6734 9667,6734 9632,6734 9605,6706 9605,6672 9605,6638 9632,6611 9667,6611 9701,6611 9728,6638 9728,6672 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id39">
- <rect class="BoundingBox" stroke="none" fill="none" x="12182" y="4613" width="1069" height="292"/>
- <path fill="rgb(214,39,40)" fill-opacity="0.502" stroke="rgb(255,255,255)" stroke-opacity="0.502" d="M 12182,4744 L 13250,4744 12182,4744 Z M 12182,4899 L 13250,4899 13250,4682 12182,4682 12182,4899 Z M 12715,4899 L 12715,4904 12715,4899 Z M 12715,4682 L 12715,4613 12715,4682 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id40">
- <rect class="BoundingBox" stroke="none" fill="none" x="12161" y="4613" width="1110" height="308"/>
- <path fill="rgb(214,39,40)" stroke="none" d="M 12182,4724 L 13250,4724 13250,4765 12182,4765 12182,4724 Z M 12182,4878 L 13250,4878 13250,4899 13230,4899 13230,4682 13250,4682 13250,4703 12182,4703 12182,4682 12202,4682 12202,4899 12182,4899 12182,4878 Z M 12161,4899 L 12161,4682 12161,4662 12182,4662 13250,4662 13270,4662 13270,4682 13270,4899 13270,4919 13250,4919 12182,4919 12161,4919 12161,4899 Z M 12737,4899 L 12737,4904 12696,4904 12696,4899 12737,4899 Z M 12696,4682 L 12696,4613 12737,4613 12737,4682 12696,4682 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.ClosedBezierShape">
- <g id="id41">
- <rect class="BoundingBox" stroke="none" fill="none" x="12654" y="6723" width="125" height="125"/>
- <path fill="rgb(214,39,40)" stroke="none" d="M 12777,6784 C 12777,6818 12750,6846 12716,6846 12683,6846 12654,6818 12654,6784 12654,6751 12683,6723 12716,6723 12750,6723 12777,6751 12777,6784 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id42">
- <rect class="BoundingBox" stroke="none" fill="none" x="2022" y="13222" width="12219" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,13232 L 14240,13232"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id43">
- <rect class="BoundingBox" stroke="none" fill="none" x="2022" y="1532" width="21" height="11691"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2032,1532 L 2032,13222"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id44">
- <rect class="BoundingBox" stroke="none" fill="none" x="3567" y="13242" width="1" height="103"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id45">
- <rect class="BoundingBox" stroke="none" fill="none" x="3557" y="13242" width="21" height="103"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 3567,13242 L 3567,13344"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id46">
- <rect class="BoundingBox" stroke="none" fill="none" x="6616" y="13242" width="1" height="103"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id47">
- <rect class="BoundingBox" stroke="none" fill="none" x="6606" y="13242" width="21" height="103"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 6616,13242 L 6616,13344"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id48">
- <rect class="BoundingBox" stroke="none" fill="none" x="9666" y="13242" width="1" height="103"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id49">
- <rect class="BoundingBox" stroke="none" fill="none" x="9656" y="13242" width="21" height="103"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 9666,13242 L 9666,13344"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id50">
- <rect class="BoundingBox" stroke="none" fill="none" x="12715" y="13242" width="1" height="103"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id51">
- <rect class="BoundingBox" stroke="none" fill="none" x="12705" y="13242" width="21" height="103"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 12715,13242 L 12715,13344"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id52">
- <rect class="BoundingBox" stroke="none" fill="none" x="3464" y="13433" width="325" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="3464" y="13734"><tspan fill="rgb(68,68,68)" stroke="none">1</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id53">
- <rect class="BoundingBox" stroke="none" fill="none" x="6514" y="13433" width="325" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="6514" y="13734"><tspan fill="rgb(68,68,68)" stroke="none">2</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id54">
- <rect class="BoundingBox" stroke="none" fill="none" x="9563" y="13433" width="325" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="9563" y="13734"><tspan fill="rgb(68,68,68)" stroke="none">3</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id55">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="13222" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id56">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="13212" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,13222 L 1920,13222"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id57">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="11424" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id58">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="11414" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,11424 L 1920,11424"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id59">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="9625" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id60">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="9615" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,9625 L 1920,9625"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id61">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="7827" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id62">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="7817" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,7827 L 1920,7827"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id63">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="6028" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id64">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="6018" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,6028 L 1920,6028"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id65">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="4230" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id66">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="4220" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,4230 L 1920,4230"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id67">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="2431" width="103" height="1"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.LineShape">
- <g id="id68">
- <rect class="BoundingBox" stroke="none" fill="none" x="1920" y="2421" width="103" height="21"/>
- <path fill="none" stroke="rgb(220,220,220)" stroke-width="20" stroke-linejoin="miter" d="M 2022,2431 L 1920,2431"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id69">
- <rect class="BoundingBox" stroke="none" fill="none" x="12613" y="13433" width="325" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="12613" y="13734"><tspan fill="rgb(68,68,68)" stroke="none">4</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id70">
- <rect class="BoundingBox" stroke="none" fill="none" x="1132" y="13034" width="727" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="1132" y="13335"><tspan fill="rgb(68,68,68)" stroke="none">0.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id71">
- <rect class="BoundingBox" stroke="none" fill="none" x="1132" y="11236" width="727" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="1132" y="11537"><tspan fill="rgb(68,68,68)" stroke="none">2.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id72">
- <rect class="BoundingBox" stroke="none" fill="none" x="1132" y="9438" width="727" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="1132" y="9739"><tspan fill="rgb(68,68,68)" stroke="none">4.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id73">
- <rect class="BoundingBox" stroke="none" fill="none" x="1132" y="7639" width="727" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="1132" y="7940"><tspan fill="rgb(68,68,68)" stroke="none">6.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id74">
- <rect class="BoundingBox" stroke="none" fill="none" x="1132" y="5841" width="727" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="1132" y="6142"><tspan fill="rgb(68,68,68)" stroke="none">8.00</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id75">
- <rect class="BoundingBox" stroke="none" fill="none" x="1132" y="4042" width="727" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="1132" y="4343"><tspan fill="rgb(68,68,68)" stroke="none">10.0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id76">
- <rect class="BoundingBox" stroke="none" fill="none" x="2042" y="14391" width="12201" height="2157"/>
- <path fill="rgb(255,255,255)" stroke="none" d="M 2042,14391 L 14241,14391 14241,16547 2042,16547 2042,14391 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id77">
- <rect class="BoundingBox" stroke="none" fill="none" x="2327" y="14613" width="247" height="247"/>
- <path fill="rgb(31,119,180)" fill-opacity="0.502" stroke="rgb(255,255,255)" stroke-opacity="0.502" d="M 2572,14858 L 2327,14858 2327,14613 2572,14613 2572,14858 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id78">
- <rect class="BoundingBox" stroke="none" fill="none" x="2306" y="14592" width="287" height="287"/>
- <path fill="rgb(31,119,180)" stroke="none" d="M 2572,14878 L 2328,14878 2306,14878 2306,14858 2306,14613 2306,14592 2328,14592 2572,14592 2592,14592 2592,14613 2592,14858 2592,14878 2572,14878 Z M 2551,14858 L 2551,14613 2572,14613 2572,14634 2328,14634 2328,14613 2348,14613 2348,14858 2328,14858 2328,14837 2572,14837 2572,14858 2551,14858 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id79">
- <rect class="BoundingBox" stroke="none" fill="none" x="1132" y="2244" width="727" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="1132" y="2545"><tspan fill="rgb(68,68,68)" stroke="none">12.0</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id80">
- <rect class="BoundingBox" stroke="none" fill="none" x="2327" y="15096" width="247" height="246"/>
- <path fill="rgb(255,127,14)" fill-opacity="0.502" stroke="rgb(255,255,255)" stroke-opacity="0.502" d="M 2572,15341 L 2327,15341 2327,15096 2572,15096 2572,15341 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id81">
- <rect class="BoundingBox" stroke="none" fill="none" x="2306" y="15076" width="287" height="287"/>
- <path fill="rgb(255,127,14)" stroke="none" d="M 2572,15362 L 2328,15362 2306,15362 2306,15341 2306,15096 2306,15076 2328,15076 2572,15076 2592,15076 2592,15096 2592,15341 2592,15362 2572,15362 Z M 2551,15341 L 2551,15096 2572,15096 2572,15117 2328,15117 2328,15096 2348,15096 2348,15341 2328,15341 2328,15321 2572,15321 2572,15341 2551,15341 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id82">
- <rect class="BoundingBox" stroke="none" fill="none" x="2856" y="14560" width="5227" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2856" y="14861"><tspan fill="rgb(68,68,68)" stroke="none">1. 10ge2p1x520-ethip4-ip4base</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id83">
- <rect class="BoundingBox" stroke="none" fill="none" x="2327" y="15580" width="247" height="247"/>
- <path fill="rgb(44,160,44)" fill-opacity="0.502" stroke="rgb(255,255,255)" stroke-opacity="0.502" d="M 2572,15825 L 2327,15825 2327,15580 2572,15580 2572,15825 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id84">
- <rect class="BoundingBox" stroke="none" fill="none" x="2306" y="15560" width="287" height="287"/>
- <path fill="rgb(44,160,44)" stroke="none" d="M 2572,15846 L 2328,15846 2306,15846 2306,15825 2306,15580 2306,15560 2328,15560 2572,15560 2592,15560 2592,15580 2592,15825 2592,15846 2572,15846 Z M 2551,15825 L 2551,15580 2572,15580 2572,15601 2328,15601 2328,15580 2348,15580 2348,15825 2328,15825 2328,15805 2572,15805 2572,15825 2551,15825 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id85">
- <rect class="BoundingBox" stroke="none" fill="none" x="2856" y="15044" width="5892" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2856" y="15345"><tspan fill="rgb(68,68,68)" stroke="none">2. 10ge2p1x520-ethip4-ip4scale20k</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id86">
- <rect class="BoundingBox" stroke="none" fill="none" x="2327" y="16064" width="247" height="246"/>
- <path fill="rgb(214,39,40)" fill-opacity="0.502" stroke="rgb(255,255,255)" stroke-opacity="0.502" d="M 2572,16309 L 2327,16309 2327,16064 2572,16064 2572,16309 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.PolyPolygonShape">
- <g id="id87">
- <rect class="BoundingBox" stroke="none" fill="none" x="2306" y="16044" width="287" height="286"/>
- <path fill="rgb(214,39,40)" stroke="none" d="M 2572,16329 L 2328,16329 2306,16329 2306,16309 2306,16065 2306,16044 2328,16044 2572,16044 2592,16044 2592,16065 2592,16309 2592,16329 2572,16329 Z M 2551,16309 L 2551,16065 2572,16065 2572,16085 2328,16085 2328,16065 2348,16065 2348,16309 2328,16309 2328,16289 2572,16289 2572,16309 2551,16309 Z"/>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id88">
- <rect class="BoundingBox" stroke="none" fill="none" x="2856" y="15528" width="6099" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2856" y="15829"><tspan fill="rgb(68,68,68)" stroke="none">3. 10ge2p1x520-ethip4-ip4scale200k</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id89">
- <rect class="BoundingBox" stroke="none" fill="none" x="2856" y="16012" width="5811" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="2856" y="16313"><tspan fill="rgb(68,68,68)" stroke="none">4. 10ge2p1x520-ethip4-ip4scale2m</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id90">
- <rect class="BoundingBox" stroke="none" fill="none" x="1177" y="685" width="12682" height="426"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="365px" font-weight="700"><tspan class="TextPosition" x="1189" y="1024"><tspan fill="rgb(68,68,68)" stroke="none">Packet Throughput: </tspan><tspan font-weight="400" fill="rgb(68,68,68)" stroke="none">ip4-3n-hsw-x520-64b-1t1c-ndr-base-and-scale</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id91">
- <rect class="BoundingBox" stroke="none" fill="none" x="5786" y="14100" width="4700" height="379"/>
- <text class="TextShape"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="5797" y="14401"><tspan fill="rgb(68,68,68)" stroke="none">Indices of Test Cases [Index]</tspan></tspan></tspan></text>
- </g>
- </g>
- <g class="com.sun.star.drawing.TextShape">
- <g id="id92">
- <rect class="BoundingBox" stroke="none" fill="none" x="708" y="5216" width="379" height="4328"/>
- <text class="TextShape" transform="translate(1009,9532) rotate(-90) translate(-1009,-9532)"><tspan class="TextParagraph" font-family="DejaVuSans, sans-serif" font-size="325px" font-weight="400"><tspan class="TextPosition" x="1009" y="9532"><tspan fill="rgb(68,68,68)" stroke="none">Packet Throughput [Mpps]</tspan></tspan></tspan></text>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
-</svg> \ No newline at end of file
diff --git a/resources/tools/presentation/doc/report_test_groups.txt b/resources/tools/presentation/doc/report_test_groups.txt
deleted file mode 100644
index c48ec45254..0000000000
--- a/resources/tools/presentation/doc/report_test_groups.txt
+++ /dev/null
@@ -1,467 +0,0 @@
-Groups of tests for graphs:
-- Packet Throughput (1c), NDR, PDR
-- Packet Latency (1c, 2c, 4c), NDR
-- Speedup Multi-Core (1c, 2c, 4c), NDR, PDR
-
-Order of chapters:
-- L2 Ethernet Switching
-- IPv4 Routing
-- IPv6 Routing
-- SRv6 Routing
-- IPv4 Tunnels
-- KVM VMs vhost-user
-- LXC/DRC Container Memif
-- IPsec with IPv4 Routing
-- Virtual Topology System
-
-Order of tests:
-- The same as they are listed below.
-
-Sub-chapters titles:
-- The same as they are listed below.
-
-# L2 Ethernet Switching
-
-## 2n-skx-xxv710
-### 64b-?t?c-l2switching-base-avf
-2n1l-25ge2p1xxv710-avf-eth-l2patch-ndrpdr
-2n1l-25ge2p1xxv710-avf-eth-l2xcbase-ndrpdr
-2n1l-25ge2p1xxv710-avf-dot1q-l2bdbasemaclrn-ndrpdr
-2n1l-25ge2p1xxv710-avf-eth-l2bdbasemaclrn-ndrpdr
-
-### 64b-?t?c-l2switching-base-i40e
-2n1l-25ge2p1xxv710-eth-l2patch-ndrpdr
-2n1l-25ge2p1xxv710-dot1q-l2xcbase-ndrpdr
-2n1l-25ge2p1xxv710-eth-l2xcbase-ndrpdr
-2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-ndrpdr
-2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-ndrpdr
-
-### 64b-?t?c-l2switching-base-scale-i40e
-2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-ndrpdr
-2n1l-25ge2p1xxv710-eth-l2bdscale10kmaclrn-ndrpdr
-2n1l-25ge2p1xxv710-eth-l2bdscale100kmaclrn-ndrpdr
-2n1l-25ge2p1xxv710-eth-l2bdscale1mmaclrn-ndrpdr
-
-## 2n-skx-x710
-### 64b-?t?c-l2switching-base-scale-avf-i40e
-2n1l-10ge2p1x710-avf-eth-l2xcbase-ndrpdr
-2n1l-10ge2p1x710-avf-dot1q-l2bdbasemaclrn-ndrpdr
-2n1l-10ge2p1x710-avf-eth-l2bdbasemaclrn-ndrpdr
-2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr
-2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr
-2n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr
-
-## 3n-skx-xxv710
-### 64b-?t?c-l2switching-base-avf
-25ge2p1xxv710-avf-eth-l2patch-ndrpdr
-25ge2p1xxv710-avf-eth-l2xcbase-ndrpdr
-25ge2p1xxv710-avf-eth-l2bdbasemaclrn-ndrpdr
-
-### 64b-?t?c-l2switching-base-i40e
-25ge2p1xxv710-dot1q-l2xcbase-ndrpdr
-25ge2p1xxv710-eth-l2xcbase-ndrpdr
-25ge2p1xxv710-dot1q-l2bdbasemaclrn-ndrpdr
-25ge2p1xxv710-eth-l2bdbasemaclrn-ndrpdr
-
-### 64b-?t?c-l2switching-base-scale-i40e
-25ge2p1xxv710-eth-l2patch-ndrpdr
-25ge2p1xxv710-eth-l2xcbase-ndrpdr
-25ge2p1xxv710-eth-l2bdbasemaclrn-ndrpdr
-25ge2p1xxv710-eth-l2bdscale10kmaclrn-ndrpdr
-25ge2p1xxv710-eth-l2bdscale100kmaclrn-ndrpdr
-25ge2p1xxv710-eth-l2bdscale1mmaclrn-ndrpdr
-
-### 64b-?t?c-features-l2switching-base-i40e
-25ge2p1xxv710-eth-l2bdbasemaclrn-ndrpdr
-25ge2p1xxv710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr
-25ge2p1xxv710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr
-25ge2p1xxv710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr
-25ge2p1xxv710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr
-25ge2p1xxv710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr
-
-## 3n-skx-x710
-### 64b-?t?c-l2switching-base-scale-avf-i40e
-10ge2p1x710-avf-eth-l2patch-ndrpdr
-10ge2p1x710-avf-eth-l2xcbase-ndrpdr
-10ge2p1x710-avf-eth-l2bdbasemaclrn-ndrpdr
-10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr
-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr
-10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr
-
-## 3n-hsw-xl710
-### 64b-?t?c-l2switching-base-scale-i40e
-40ge2p1xl710-eth-l2patch-ndrpdr
-40ge2p1xl710-dot1q-l2xcbase-ndrpdr
-40ge2p1xl710-eth-l2xcbase-ndrpdr
-40ge2p1xl710-dot1q-l2bdbasemaclrn-ndrpdr
-40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdr
-40ge2p1xl710-eth-l2bdscale1mmaclrn-ndrpdr
-
-## 3n-tsh-x520
-### 64b-?t?c-l2switching-base-ixgbe
-
-### 64b-?t?c-l2switching-base-scale-ixgbe
-
-### 64b-?t?c-features-l2switching-base-ixgbe
-
-# IPv4 Routing
-
-## 2n-skx-xxv710
-### 64b-?t?c-ip4routing-base-scale-avf
-2n1l-25ge2p1xxv710-avf-dot1q-ip4base-ndrpdr
-2n1l-25ge2p1xxv710-avf-ethip4-ip4base-ndrpdr
-2n1l-25ge2p1xxv710-avf-ethip4-ip4scale20k-ndrpdr
-2n1l-25ge2p1xxv710-avf-ethip4-ip4scale200k-ndrpdr
-2n1l-25ge2p1xxv710-avf-ethip4-ip4scale2m-ndrpdr
-
-### 64b-?t?c-ip4routing-base-scale-i40e
-2n1l-25ge2p1xxv710-dot1q-ip4base-ndrpdr
-2n1l-25ge2p1xxv710-ethip4-ip4base-ndrpdr
-2n1l-25ge2p1xxv710-ethip4-ip4scale20k-ndrpdr
-2n1l-25ge2p1xxv710-ethip4-ip4scale200k-ndrpdr
-2n1l-25ge2p1xxv710-ethip4-ip4scale2m-ndrpdr
-
-### 64b-?t?c-features-ip4routing-base-i40e
-2n1l-25ge2p1xxv710-ethip4-ip4base-ndrpdr
-2n1l-25ge2p1xxv710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
-2n1l-25ge2p1xxv710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
-2n1l-25ge2p1xxv710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr
-2n1l-25ge2p1xxv710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr
-2n1l-25ge2p1xxv710-ethip4udp-ip4base-nat44-ndrpdr
-
-## 2n-skx-x710
-### 64b-?t?c-ip4routing-base-scale-avf-i40e
-2n1l-10ge2p1x710-avf-ethip4-ip4base-ndrpdr
-2n1l-10ge2p1x710-avf-ethip4-ip4scale2m-ndrpdr
-2n1l-10ge2p1x710-dot1q-ip4base-ndrpdr
-2n1l-10ge2p1x710-ethip4-ip4base-ndrpdr
-2n1l-10ge2p1x710-ethip4-ip4scale2m-ndrpdr
-
-## 3n-skx-xxv710
-### 64b-?t?c-ip4routing-base-scale-avf
-25ge2p1xxv710-avf-eth-ip4base-ndrpdr
-25ge2p1xxv710-avf-ethip4-ip4scale20k-ndrpdr
-25ge2p1xxv710-avf-ethip4-ip4scale200k-ndrpdr
-25ge2p1xxv710-avf-ethip4-ip4scale2m-ndrpdr
-
-### 64b-?t?c-ip4routing-base-scale-i40e
-25ge2p1xxv710-dot1q-ip4base-ndrpdr
-25ge2p1xxv710-ethip4-ip4base-ndrpdr
-25ge2p1xxv710-ethip4-ip4scale20k-ndrpdr
-25ge2p1xxv710-ethip4-ip4scale200k-ndrpdr
-25ge2p1xxv710-ethip4-ip4scale2m-ndrpdr
-
-### 64b-?t?c-features-ip4routing-base-i40e
-25ge2p1xxv710-ethip4-ip4base-ndrpdr
-25ge2p1xxv710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr
-25ge2p1xxv710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr
-25ge2p1xxv710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr
-25ge2p1xxv710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr
-25ge2p1xxv710-ethip4udp-ip4base-nat44-ndrpdr
-
-## 3n-skx-x710
-### 64b-?t?c-ip4routing-base-scale-avf-i40e
-10ge2p1x710-avf-ethip4-ip4base-ndrpdr
-10ge2p1x710-avf-ethip4-ip4scale2m-ndrpdr
-10ge2p1x710-dot1q-ip4base-ndrpdr
-10ge2p1x710-ethip4-ip4base-ndrpdr
-10ge2p1x710-ethip4-ip4scale2m-ndrpdr
-
-## 3n-hsw-xl710
-### 64b-?t?c-ip4routing-base-scale-i40e
-40ge2p1xl710-dot1q-ip4base-ndrpdr
-40ge2p1xl710-ethip4-ip4base-ndrpdr
-40ge2p1xl710-ethip4-ip4scale2m-ndrpdr
-
-## 3n-tsh-x520
-### 64b-1t1c-ip4routing-base-scale-ixgbe
-
-### 64b-1t1c-feature-ip4routing-base-ixgbe
-
-# IPv6 Routing
-
-## 2n-skx-xxv710
-### 78b-?t?c-ip6routing-base-scale-i40e
-2n1l-25ge2p1xxv710-dot1q-ip6base-ndrpdr
-2n1l-25ge2p1xxv710-ethip6-ip6base-ndrpdr
-2n1l-25ge2p1xxv710-ethip6-ip6scale20k-ndrpdr
-2n1l-25ge2p1xxv710-ethip6-ip6scale200k-ndrpdr
-2n1l-25ge2p1xxv710-ethip6-ip6scale2m-ndrpdr
-
-## 2n-skx-x710
-### 78b-?t?c-ip6routing-base-scale-i40e
-2n1l-10ge2p1x710-ethip6-ip6base-ndrpdr
-2n1l-10ge2p1x710-ethip6-ip6scale2m-ndrpdr
-
-## 3n-skx-xxv710
-### 78b-?t?c-ip6routing-base-scale-i40e
-25ge2p1xxv710-dot1q-ip6base-ndrpdr
-25ge2p1xxv710-ethip6-ip6base-ndrpdr
-25ge2p1xxv710-ethip6-ip6scale20k-ndrpdr
-25ge2p1xxv710-ethip6-ip6scale200k-ndrpdr
-25ge2p1xxv710-ethip6-ip6scale2m-ndrpdr
-
-## 3n-skx-x710
-### 78b-?t?c-ip6routing-base-scale-i40e
-10ge2p1x710-ethip6-ip6base-ndrpdr
-10ge2p1x710-ethip6-ip6scale2m-ndrpdr
-
-## 3n-hsw-xl710
-### 78b-?t?c-ip6routing-base-scale-i40e
-40ge2p1xl710-dot1q-ip6base-ndrpdr
-40ge2p1xl710-ethip6-ip6base-ndrpdr
-40ge2p1xl710-ethip6-ip6scale2m-ndrpdr
-
-## 3n-tsh-x520
-### 78b-1t1c-ip6routing-base-scale-ixgbe
-
-# SRv6 Routing
-
-## 3n-skx-xxv710
-### 78b-?t?c-srv6-ip6routing-base-i40e
-25ge2p1xxv710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
-25ge2p1xxv710-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
-25ge2p1xxv710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
-25ge2p1xxv710-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
-25ge2p1xxv710-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
-25ge2p1xxv710-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
-## 3n-hsw-xl710
-### 78b-?t?c-srv6-ip6routing-base-i40e
-40ge2p1xl710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr
-40ge2p1xl710-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr
-40ge2p1xl710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr
-40ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr
-40ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr
-40ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr
-
-## 3n-tsh-x520
-### 78b-1t1c-srv6-ip6routing-base-ixgbe
-
-# IPv4 Tunnels
-
-## 3n-skx-xxv710
-### 64b-?t?c-ip4tunnel-base-scale-i40e
-25ge2p1xxv710-ethip4vxlan-l2xcbase-ndrpdr
-25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-ndrpdr
-25ge2p1xxv710-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr
-25ge2p1xxv710-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr
-
-## 3n-hsw-xl710
-### 64b-?t?c-ip4tunnel-base-i40e
-40ge2p1xl710-ethip4vxlan-l2xcbase-ndrpdr
-40ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-ndrpdr
-
-## 3n-tsh-x520
-### 64b-1t1c-ip4tunnel-base-scale-ixgbe
-
-# KVM VMs vhost-user
-
-## 2n-skx-xxv710
-### 64b-?t?c-vhost-base-i40e
-2n1l-25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-2n1l-25ge2p1xxv710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr
-
-## 3n-skx-xxv710
-### 64b-?t?c-vhost-base-i40e
-25ge2p1xxv710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr
-
-#### 64b-?t?c-link-bonding-vhost-base-i40e
-25ge2p1xxv710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-
-## 3n-skx-x710
-#### 64b-?t?c-link-bonding-vhost-base-i40e
-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-
-## 3n-hsw-xl710
-### 64b-?t?c-vhost-base-i40e
-40ge2p1xl710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-40ge2p1xl710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-40ge2p1xl710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr
-
-## 3n-tsh-x520
-### 64b-1t1c-vhost-base-ixgbe
-
-### 64b-1t1c-link-bonding-vhost-base-ixgbe
-
-
-# LXC/DRC Container Memif
-
-## 2n-skx-xxv710
-### 64b-?t?c-memif-base-i40e
-2n1l-25ge2p1xxv710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr
-2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr
-2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr
-2n1l-25ge2p1xxv710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr
-
-## 3n-skx-xxv710
-### 64b-?t?c-memif-base-i40e
-25ge2p1xxv710-eth-l2xcbase-eth-2memif-1lxc-ndrpdr
-25ge2p1xxv710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr
-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr
-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr
-25ge2p1xxv710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr
-
-## 3n-tsh-x520
-### 64b-1t1c-memif-base-ixgbe
-
-# IPsec with IPv4 Routing
-
-## 3n-skx-xxv710
-### imix-?t?c-ipsec-ip4routing-base-scale-i40e
-25ge2p1xxv710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr
-25ge2p1xxv710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-25ge2p1xxv710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr
-25ge2p1xxv710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-25ge2p1xxv710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr
-25ge2p1xxv710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
-## 3n-hsw-xl710
-### imix-?t?c-ipsec-ip4routing-base-scale-sw-i40e
-40ge2p1xl710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr
-40ge2p1xl710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-40ge2p1xl710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr
-40ge2p1xl710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-40ge2p1xl710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr
-40ge2p1xl710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
-### imix-?t?c-ipsec-ip4routing-base-scale-hw-i40e
-40ge2p1xl710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-40ge2p1xl710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-40ge2p1xl710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-40ge2p1xl710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-
-## 3n-tsh-x520
-## imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe
-
-# Virtual Topology System
-
-## 3n-skx-xxv710
-### 114b-?t?c-vts-l2switching-base-i40e
-25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr
-25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr
-
-## 3n-hsw-xl710
-### 114b-?t?c-vts-l2switching-base-i40e
-40ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr
-40ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr
-40ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr
-
-## 3n-tsh-x520
-### 114b-1t1c-vts-l2switching-base-ixgbe
-
-# 2n-skx nfv density (1c, 2c, 4c)
-
-## nfv_density/vm_vhost/chain
-
-### 2n-skx-xxv710
-#### imix-?t?c-vhost-chains-i40e
-2n-25ge2p1xxv710-eth-l2bd-10ch-20vh-10vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-10ch-40vh-20vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-16vh-8vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-20vh-10vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-16vh-8vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-24vh-12vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-32vh-16vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-40vh-20vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4ch-16vh-8vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4ch-32vh-16vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-6ch-24vh-12vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-8ch-16vh-8vm1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-8ch-32vh-16vm1t-vppip4-ndrpdr
-
-## nfv_density/vm_vhost/chain_dot1qip4vxlan
-- to be added to the Report
-
-### 2n-skx-xxv710
-#### imix-?t?c-vhost-chains-dot1qip4vxlan-i40e
-2n-25ge2p1xxv710-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr
-2n-25ge2p1xxv710-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr
-2n-25ge2p1xxv710-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr
-2n-25ge2p1xxv710-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr
-2n-25ge2p1xxv710-dot1qip4vxlan-l2bd-8ch-16vh-8vm1t-testpmd-ndrpdr
-2n-25ge2p1xxv710-dot1qip4vxlan-l2bd-10ch-20vh-10vm1t-testpmd-ndrpdr
-
-## nfv_density/dcr_memif/chain
-
-### 2n-skx-xxv710
-#### imix-?t?c-memif-chains-i40e
-2n-25ge2p1xxv710-eth-l2bd-10ch-20mif-10dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-10ch-40mif-20dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-16mif-8dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-20mif-10dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-2mif-1dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-16mif-8dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-24mif-12dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-32mif-16dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-40mif-20dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4ch-16mif-8dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4ch-32mif-16dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-6ch-24mif-12dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-8ch-16mif-8dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-8ch-32mif-16dcr1t-vppip4-ndrpdr
-
-## nfv_density/dcr_memif/pipeline
-
-### 2n-skx-xxv710
-#### imix-?t?c-memif-pipelines-i40e
-2n-25ge2p1xxv710-eth-l2bd-10pl-20mif-10dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-10pl-20mif-20dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-10dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-8dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-12dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-16dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-20dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-8dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4pl-8mif-16dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-4pl-8mif-8dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-6pl-12mif-12dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-8pl-16mif-16dcr1t-vppip4-ndrpdr
-2n-25ge2p1xxv710-eth-l2bd-8pl-16mif-8dcr1t-vppip4-ndrpdr
diff --git a/resources/tools/presentation/doc/trending_test_groups.md b/resources/tools/presentation/doc/trending_test_groups.md
deleted file mode 100644
index e272a4c7b1..0000000000
--- a/resources/tools/presentation/doc/trending_test_groups.md
+++ /dev/null
@@ -1,921 +0,0 @@
-# Test Groups for Trending
-
-## Introduction
-
-Specifications of test groups for daily Trending graphs (see
-[Trending web page]) are provided in this note.
-
-### Order of Chapters on Trending Web Page
-1. L2 Ethernet Switching
-2. IPv4 Routing
-3. IPv6 Routing
-4. SRv6 Routing
-5. IPv4 Tunnels
-6. KVM VMs vhost-user
-7. LXC/DRC Container Memif
-8. IPsec with IPv4 Routing
-9. Virtual Topology System
-10. NF Service Density
-11. DPDK
-
-### Presented Test Configurations
-
-Only tests with NICs, processor cores and frame sizes specified below
-will be presented in the Trending.
-
-#### NICs
-- See [Performance Tests Job Specifications, chapter NICs]
-- See item nr 1 in TODO list.
-
-#### Processor Cores in Trending Graphs
-- 1c (1t1c or 2t1c),
-- 2c (2t2c or 4t2c),
-- 4c (4t4c or 8t4c).
-
-See item nr 3 in TODO list.
-
-#### Frame Sizes
-- See [Performance Tests Job Specifications, chapter Frame Sizes]
-- See item nr 2 in TODO list.
-
-### Backward compatibility
-
-The new structure will not be backward compatible with the previous one.
-The old data and graphs will be stored and accessible on the link:
-<https://docs.fd.io/csit/master/trending-archive/>. A link to this page
-will be on the Trending web page.
-
-### Notes
-1. The lists of tests are based on running tests in trending jobs
- - [2n-skx]
- - [3n-skx]
- - [3n-hsw]
- - [3n-tsh]
- - [2n-dnv]
- - [3n-dnv]
- - [2n-clx]
-
- and on the lists of selected tests (test_select_list_*.md) stored in
- the [Jobs specifications] directory.
-2. The order of chapters, sub-chapters and tests in the graphs on the
- [Trending web page] will be the same as specified in this document.
-
-### TODO List
-1. Change the trending jobs to use primary and secondary NICs as they
- are defined in [Performance Tests Job Specifications, chapter NICs].
-2. Change the trending jobs to use frame sizes as they are defined in
- [Performance Tests Job Specifications, chapter Frame Sizes].
-3. Change the trending jobs to use processor cores as they are defined
- in [Performance Tests Job Specifications, chapter Processor Cores].
-
-# Test Groups
-
-## L2 Ethernet Switching
-
-### 2n-skx-xxv710
-
-#### 64b-?t?c-l2switching-base-avf
- 2n1l-25ge2p1xxv710-avf-eth-l2patch-mrr
- 2n1l-25ge2p1xxv710-avf-eth-l2xcbase-mrr
- 2n1l-25ge2p1xxv710-avf-dot1q-l2bdbasemaclrn-mrr
- 2n1l-25ge2p1xxv710-avf-eth-l2bdbasemaclrn-mrr
-
-#### 64b-?t?c-l2switching-base-i40e
- 2n1l-25ge2p1xxv710-eth-l2patch-mrr
- 2n1l-25ge2p1xxv710-dot1q-l2xcbase-mrr
- 2n1l-25ge2p1xxv710-eth-l2xcbase-mrr
- 2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-mrr
-
-#### 64b-?t?c-l2switching-base-scale-i40e
- 2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdscale10kmaclrn-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdscale100kmaclrn-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdscale1mmaclrn-mrr
-
-### 2n-skx-x710
-
-#### 64b-?t?c-l2switching-base-scale-avf-i40e
- 2n1l-10ge2p1x710-avf-eth-l2xcbase-mrr
- 2n1l-10ge2p1x710-avf-dot1q-l2bdbasemaclrn-mrr
- 2n1l-10ge2p1x710-avf-eth-l2bdbasemaclrn-mrr
- 2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-mrr
- 2n1l-10ge2p1x710-eth-l2bdbasemaclrn-mrr
- 2n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-mrr
-
-### 3n-skx-xxv710
-
-#### 64b-?t?c-l2switching-base-avf
- 25ge2p1xxv710-avf-eth-l2patch-mrr
- 25ge2p1xxv710-avf-eth-l2xcbase-mrr
- 25ge2p1xxv710-avf-eth-l2bdbasemaclrn-mrr
-
-#### 64b-?t?c-l2switching-base-i40e
- 25ge2p1xxv710-dot1q-l2xcbase-mrr
- 25ge2p1xxv710-eth-l2xcbase-mrr
- 25ge2p1xxv710-dot1q-l2bdbasemaclrn-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-mrr
-
-#### 64b-?t?c-l2switching-base-scale-i40e
- 25ge2p1xxv710-eth-l2patch-mrr
- 25ge2p1xxv710-eth-l2xcbase-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-mrr
- 25ge2p1xxv710-eth-l2bdscale10kmaclrn-mrr
- 25ge2p1xxv710-eth-l2bdscale100kmaclrn-mrr
- 25ge2p1xxv710-eth-l2bdscale1mmaclrn-mrr
-
-#### 64b-?t?c-features-l2switching-base-i40e
- 25ge2p1xxv710-eth-l2bdbasemaclrn-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr
-
-### 3n-skx-x710
-
-#### 64b-?t?c-l2switching-base-scale-avf-i40e
- 10ge2p1x710-avf-eth-l2patch-mrr
- 10ge2p1x710-avf-eth-l2xcbase-mrr
- 10ge2p1x710-avf-eth-l2bdbasemaclrn-mrr
- 10ge2p1x710-dot1q-l2bdbasemaclrn-mrr
- 10ge2p1x710-eth-l2bdbasemaclrn-mrr
- 10ge2p1x710-eth-l2bdscale1mmaclrn-mrr
-
-### 3n-hsw-xl710
-
-#### 64b-?t?c-l2switching-base-scale-i40e
- 40ge2p1xl710-eth-l2patch-mrr
- 40ge2p1xl710-dot1q-l2xcbase-mrr
- 40ge2p1xl710-eth-l2xcbase-mrr
- 40ge2p1xl710-dot1q-l2bdbasemaclrn-mrr
- 40ge2p1xl710-eth-l2bdbasemaclrn-mrr
- 40ge2p1xl710-eth-l2bdscale1mmaclrn-mrr
-
-### 3n-tsh-x520
-
-#### 64b-?t?c-l2switching-base-ixgbe
- 10ge2p1x520-dot1q-l2xcbase-mrr
- 10ge2p1x520-eth-l2xcbase-mrr
- 10ge2p1x520-dot1q-l2bdbasemaclrn-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-mrr
-
-#### 64b-?t?c-l2switching-base-scale-ixgbe
- 10ge2p1x520-eth-l2patch-mrr
- 10ge2p1x520-eth-l2xcbase-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-mrr
- 10ge2p1x520-eth-l2bdscale10kmaclrn-mrr
- 10ge2p1x520-eth-l2bdscale100kmaclrn-mrr
- 10ge2p1x520-eth-l2bdscale1mmaclrn-mrr
-
-#### 64b-?t?c-features-l2switching-base-ixgbe
- 10ge2p1x520-eth-l2bdbasemaclrn-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr
-
-### 2n-dnv-x553
-
-#### 64b-?t?c-l2switching-base-ixgbe
- 10ge2p1x553-dot1q-l2xcbase-mrr
- 10ge2p1x553-eth-l2xcbase-mrr
- 10ge2p1x553-dot1q-l2bdbasemaclrn-mrr
- 10ge2p1x553-eth-l2bdbasemaclrn-mrr
-
-#### 64b-?t?c-l2switching-base-scale-ixgbe
- 10ge2p1x553-eth-l2patch-mrr
- 10ge2p1x553-eth-l2xcbase-mrr
- 10ge2p1x553-eth-l2bdbasemaclrn-mrr
- 10ge2p1x553-eth-l2bdscale10kmaclrn-mrr
- 10ge2p1x553-eth-l2bdscale100kmaclrn-mrr
- 10ge2p1x553-eth-l2bdscale1mmaclrn-mrr
-
-### 3n-dnv-x553
-
-#### 64b-?t?c-l2switching-base-ixgbe
- 10ge2p1x553-dot1q-l2xcbase-mrr
- 10ge2p1x553-eth-l2xcbase-mrr
- 10ge2p1x553-dot1q-l2bdbasemaclrn-mrr
- 10ge2p1x553-eth-l2bdbasemaclrn-mrr
-
-#### 64b-?t?c-l2switching-base-scale-ixgbe
- 10ge2p1x553-eth-l2patch-mrr
- 10ge2p1x553-eth-l2xcbase-mrr
- 10ge2p1x553-eth-l2bdbasemaclrn-mrr
- 10ge2p1x553-eth-l2bdscale10kmaclrn-mrr
- 10ge2p1x553-eth-l2bdscale100kmaclrn-mrr
- 10ge2p1x553-eth-l2bdscale1mmaclrn-mrr
-
-#### 64b-?t?c-features-l2switching-base-ixgbe
- 10ge2p1x553-eth-l2bdbasemaclrn-mrr
- 10ge2p1x553-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr
- 10ge2p1x553-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr
- 10ge2p1x553-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr
- 10ge2p1x553-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr
- 10ge2p1x553-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr
-
-### 2n-clx-xxv710
-
-#### 64b-?t?c-l2switching-base-avf
- 2n1l-25ge2p1xxv710-avf-eth-l2patch-mrr
- 2n1l-25ge2p1xxv710-avf-eth-l2xcbase-mrr
- 2n1l-25ge2p1xxv710-avf-dot1q-l2bdbasemaclrn-mrr
- 2n1l-25ge2p1xxv710-avf-eth-l2bdbasemaclrn-mrr
-
-#### 64b-?t?c-l2switching-base-i40e
- 2n1l-25ge2p1xxv710-eth-l2patch-mrr
- 2n1l-25ge2p1xxv710-dot1q-l2xcbase-mrr
- 2n1l-25ge2p1xxv710-eth-l2xcbase-mrr
- 2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-mrr
-
-#### 64b-?t?c-l2switching-base-scale-i40e
- 2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdscale10kmaclrn-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdscale100kmaclrn-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdscale1mmaclrn-mrr
-
-### 2n-clx-x710
-
-#### 64b-?t?c-l2switching-base-scale-avf-i40e
- 2n1l-10ge2p1x710-avf-eth-l2xcbase-mrr
- 2n1l-10ge2p1x710-avf-dot1q-l2bdbasemaclrn-mrr
- 2n1l-10ge2p1x710-avf-eth-l2bdbasemaclrn-mrr
- 2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-mrr
- 2n1l-10ge2p1x710-eth-l2bdbasemaclrn-mrr
- 2n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-mrr
-
-## IPv4 Routing
-
-### 2n-skx-xxv710
-
-#### 64b-?t?c-ip4routing-base-scale-avf
- 2n1l-25ge2p1xxv710-avf-dot1q-ip4base-mrr
- 2n1l-25ge2p1xxv710-avf-ethip4-ip4base-mrr
- 2n1l-25ge2p1xxv710-avf-ethip4-ip4scale20k-mrr
- 2n1l-25ge2p1xxv710-avf-ethip4-ip4scale200k-mrr
- 2n1l-25ge2p1xxv710-avf-ethip4-ip4scale2m-mrr
-
-#### 64b-?t?c-ip4routing-base-scale-i40e
- 2n1l-25ge2p1xxv710-dot1q-ip4base-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4scale20k-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4scale200k-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4scale2m-mrr
-
-#### 64b-?t?c-features-ip4routing-base-i40e
- 2n1l-25ge2p1xxv710-ethip4-ip4base-mrr
- 2n1l-25ge2p1xxv710-ethip4udp-ip4base-iacl50sf-10kflows-mrr
- 2n1l-25ge2p1xxv710-ethip4udp-ip4base-iacl50sl-10kflows-mrr
- 2n1l-25ge2p1xxv710-ethip4udp-ip4base-oacl50sf-10kflows-mrr
- 2n1l-25ge2p1xxv710-ethip4udp-ip4base-oacl50sl-10kflows-mrr
- 2n1l-25ge2p1xxv710-ethip4udp-ip4base-nat44-mrr
-
-### 2n-skx-x710
-
-#### 64b-?t?c-ip4routing-base-scale-avf-i40e
- 2n1l-10ge2p1x710-avf-ethip4-ip4base-mrr
- 2n1l-10ge2p1x710-avf-ethip4-ip4scale2m-mrr
- 2n1l-10ge2p1x710-dot1q-ip4base-mrr
- 2n1l-10ge2p1x710-ethip4-ip4base-mrr
- 2n1l-10ge2p1x710-ethip4-ip4scale2m-mrr
-
-### 3n-skx-xxv710
-
-#### 64b-?t?c-ip4routing-base-scale-avf
- 25ge2p1xxv710-avf-eth-ip4base-mrr
- 25ge2p1xxv710-avf-ethip4-ip4scale20k-mrr
- 25ge2p1xxv710-avf-ethip4-ip4scale200k-mrr
- 25ge2p1xxv710-avf-ethip4-ip4scale2m-mrr
-
-#### 64b-?t?c-ip4routing-base-scale-i40e
- 25ge2p1xxv710-dot1q-ip4base-mrr
- 25ge2p1xxv710-ethip4-ip4base-mrr
- 25ge2p1xxv710-ethip4-ip4scale20k-mrr
- 25ge2p1xxv710-ethip4-ip4scale200k-mrr
- 25ge2p1xxv710-ethip4-ip4scale2m-mrr
-
-#### 64b-?t?c-features-ip4routing-base-i40e
- 25ge2p1xxv710-ethip4-ip4base-mrr
- 25ge2p1xxv710-ethip4udp-ip4base-iacl50sf-10kflows-mrr
- 25ge2p1xxv710-ethip4udp-ip4base-iacl50sl-10kflows-mrr
- 25ge2p1xxv710-ethip4udp-ip4base-oacl50sf-10kflows-mrr
- 25ge2p1xxv710-ethip4udp-ip4base-oacl50sl-10kflows-mrr
- 25ge2p1xxv710-ethip4udp-ip4base-nat44-mrr
-
-### 3n-skx-x710
-
-#### 64b-?t?c-ip4routing-base-scale-avf-i40e
- 10ge2p1x710-avf-ethip4-ip4base-mrr
- 10ge2p1x710-avf-ethip4-ip4scale2m-mrr
- 10ge2p1x710-dot1q-ip4base-mrr
- 10ge2p1x710-ethip4-ip4base-mrr
- 10ge2p1x710-ethip4-ip4scale2m-mrr
-
-### 3n-hsw-xl710
-
-#### 64b-?t?c-ip4routing-base-scale-i40e
- 40ge2p1xl710-dot1q-ip4base-mrr
- 40ge2p1xl710-ethip4-ip4base-mrr
- 40ge2p1xl710-ethip4-ip4scale2m-mrr
-
-### 3n-tsh-x520
-
-#### 64b-?t?c-ip4routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip4base-mrr
- 10ge2p1x520-ethip4-ip4base-mrr
- 10ge2p1x520-ethip4-ip4scale20k-mrr
- 10ge2p1x520-ethip4-ip4scale200k-mrr
- 10ge2p1x520-ethip4-ip4scale2m-mrr
-
-#### 64b-?t?c-features-ip4routing-base-ixgbe
- 10ge2p1x520-ethip4-ip4base-mrr
- 10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr
- 10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr
- 10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-mrr
- 10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-mrr
- 10ge2p1x520-ethip4udp-ip4base-nat44-mrr
-
-### 2n-dnv-x553
-
-#### 64b-?t?c-ip4routing-base-scale-ixgbe
- 10ge2p1x553-dot1q-ip4base-mrr
- 10ge2p1x553-ethip4-ip4base-mrr
- 10ge2p1x553-ethip4-ip4scale20k-mrr
- 10ge2p1x553-ethip4-ip4scale200k-mrr
- 10ge2p1x553-ethip4-ip4scale2m-mrr
-
-#### 64b-?t?c-features-ip4routing-base-ixgbe
- 10ge2p1x553-ethip4-ip4base-mrr
- 10ge2p1x553-ethip4udp-ip4base-iacl50sf-10kflows-mrr
- 10ge2p1x553-ethip4udp-ip4base-iacl50sl-10kflows-mrr
- 10ge2p1x553-ethip4udp-ip4base-oacl50sf-10kflows-mrr
- 10ge2p1x553-ethip4udp-ip4base-oacl50sl-10kflows-mrr
- 10ge2p1x553-ethip4udp-ip4base-nat44-mrr
-
-### 3n-dnv-x553
-
-#### 64b-?t?c-ip4routing-base-scale-ixgbe
- 10ge2p1x553-dot1q-ip4base-mrr
- 10ge2p1x553-ethip4-ip4base-mrr
- 10ge2p1x553-ethip4-ip4scale20k-mrr
- 10ge2p1x553-ethip4-ip4scale200k-mrr
- 10ge2p1x553-ethip4-ip4scale2m-mrr
-
-#### 64b-?t?c-features-ip4routing-base-ixgbe
- 10ge2p1x553-ethip4-ip4base-mrr
- 10ge2p1x553-ethip4udp-ip4base-iacl50sf-10kflows-mrr
- 10ge2p1x553-ethip4udp-ip4base-iacl50sl-10kflows-mrr
- 10ge2p1x553-ethip4udp-ip4base-oacl50sf-10kflows-mrr
- 10ge2p1x553-ethip4udp-ip4base-oacl50sl-10kflows-mrr
- 10ge2p1x553-ethip4udp-ip4base-nat44-mrr
-
-### 2n-clx-xxv710
-
-#### 64b-?t?c-ip4routing-base-scale-avf
- 2n1l-25ge2p1xxv710-avf-dot1q-ip4base-mrr
- 2n1l-25ge2p1xxv710-avf-ethip4-ip4base-mrr
- 2n1l-25ge2p1xxv710-avf-ethip4-ip4scale20k-mrr
- 2n1l-25ge2p1xxv710-avf-ethip4-ip4scale200k-mrr
- 2n1l-25ge2p1xxv710-avf-ethip4-ip4scale2m-mrr
-
-#### 64b-?t?c-ip4routing-base-scale-i40e
- 2n1l-25ge2p1xxv710-dot1q-ip4base-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4scale20k-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4scale200k-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4scale2m-mrr
-
-#### 64b-?t?c-features-ip4routing-base-i40e
- 2n1l-25ge2p1xxv710-ethip4-ip4base-mrr
- 2n1l-25ge2p1xxv710-ethip4udp-ip4base-iacl50sf-10kflows-mrr
- 2n1l-25ge2p1xxv710-ethip4udp-ip4base-iacl50sl-10kflows-mrr
- 2n1l-25ge2p1xxv710-ethip4udp-ip4base-oacl50sf-10kflows-mrr
- 2n1l-25ge2p1xxv710-ethip4udp-ip4base-oacl50sl-10kflows-mrr
- 2n1l-25ge2p1xxv710-ethip4udp-ip4base-nat44-mrr
-
-### 2n-clx-x710
-
-#### 64b-?t?c-ip4routing-base-scale-avf-i40e
- 2n1l-10ge2p1x710-avf-ethip4-ip4base-mrr
- 2n1l-10ge2p1x710-avf-ethip4-ip4scale2m-mrr
- 2n1l-10ge2p1x710-dot1q-ip4base-mrr
- 2n1l-10ge2p1x710-ethip4-ip4base-mrr
- 2n1l-10ge2p1x710-ethip4-ip4scale2m-mrr
-
-## IPv6 Routing
-
-### 2n-skx-xxv710
-
-#### 78b-?t?c-ip6routing-base-scale-i40e
- 2n1l-25ge2p1xxv710-dot1q-ip6base-mrr
- 2n1l-25ge2p1xxv710-ethip6-ip6base-mrr
- 2n1l-25ge2p1xxv710-ethip6-ip6scale20k-mrr
- 2n1l-25ge2p1xxv710-ethip6-ip6scale200k-mrr
- 2n1l-25ge2p1xxv710-ethip6-ip6scale2m-mrr
-
-### 2n-skx-x710
-
-#### 78b-?t?c-ip6routing-base-scale-i40e
- 2n1l-10ge2p1x710-ethip6-ip6base-mrr
- 2n1l-10ge2p1x710-ethip6-ip6scale2m-mrr
-
-### 3n-skx-xxv710
-
-#### 78b-?t?c-ip6routing-base-scale-i40e
- 25ge2p1xxv710-dot1q-ip6base-mrr
- 25ge2p1xxv710-ethip6-ip6base-mrr
- 25ge2p1xxv710-ethip6-ip6scale20k-mrr
- 25ge2p1xxv710-ethip6-ip6scale200k-mrr
- 25ge2p1xxv710-ethip6-ip6scale2m-mrr
-
-### 3n-skx-x710
-
-#### 78b-?t?c-ip6routing-base-scale-i40e
- 10ge2p1x710-ethip6-ip6base-mrr
- 10ge2p1x710-ethip6-ip6scale2m-mrr
-
-### 3n-hsw-xl710
-
-#### 78b-?t?c-ip6routing-base-scale-i40e
- 40ge2p1xl710-dot1q-ip6base-mrr
- 40ge2p1xl710-ethip6-ip6base-mrr
- 40ge2p1xl710-ethip6-ip6scale2m-mrr
-
-### 3n-tsh-x520
-
-#### 78b-?t?c-ip6routing-base-scale-ixgbe
- 10ge2p1x520-dot1q-ip6base-mrr
- 10ge2p1x520-ethip6-ip6base-mrr
- 10ge2p1x520-ethip6-ip6scale20k-mrr
- 10ge2p1x520-ethip6-ip6scale200k-mrr
- 10ge2p1x520-ethip6-ip6scale2m-mrr
-
-### 2n-dnv-x553
-
-#### 78b-?t?c-ip6routing-base-scale-ixgbe
- 10ge2p1x553-dot1q-ip6base-mrr
- 10ge2p1x553-ethip6-ip6base-mrr
- 10ge2p1x553-ethip6-ip6scale20k-mrr
- 10ge2p1x553-ethip6-ip6scale200k-mrr
- 10ge2p1x553-ethip6-ip6scale2m-mrr
-
-### 3n-dnv-x553
-
-#### 78b-?t?c-ip6routing-base-scale-ixgbe
- 10ge2p1x553-dot1q-ip6base-mrr
- 10ge2p1x553-ethip6-ip6base-mrr
- 10ge2p1x553-ethip6-ip6scale20k-mrr
- 10ge2p1x553-ethip6-ip6scale200k-mrr
- 10ge2p1x553-ethip6-ip6scale2m-mrr
-
-### 2n-clx-xxv710
-
-#### 78b-?t?c-ip6routing-base-scale-i40e
- 2n1l-25ge2p1xxv710-dot1q-ip6base-mrr
- 2n1l-25ge2p1xxv710-ethip6-ip6base-mrr
- 2n1l-25ge2p1xxv710-ethip6-ip6scale20k-mrr
- 2n1l-25ge2p1xxv710-ethip6-ip6scale200k-mrr
- 2n1l-25ge2p1xxv710-ethip6-ip6scale2m-mrr
-
-### 2n-clx-x710
-
-#### 78b-?t?c-ip6routing-base-scale-i40e
- 10ge2p1x710-ethip6-ip6base-mrr
- 10ge2p1x710-ethip6-ip6scale2m-mrr
-
-## SRv6 Routing
-
-### 3n-skx-xxv710
-
-#### 78b-?t?c-srv6-ip6routing-base-i40e
- 25ge2p1xxv710-ethip6ip6-ip6base-srv6enc1sid-mrr
- 25ge2p1xxv710-ethip6srhip6-ip6base-srv6enc2sids-mrr
- 25ge2p1xxv710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
- 25ge2p1xxv710-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
- 25ge2p1xxv710-ethip6srhip6-ip6base-srv6proxy-masq-mrr
- 25ge2p1xxv710-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-
-### 3n-hsw-xl710
-
-#### 78b-?t?c-srv6-ip6routing-base-i40e
- 40ge2p1xl710-ethip6ip6-ip6base-srv6enc1sid-mrr
- 40ge2p1xl710-ethip6srhip6-ip6base-srv6enc2sids-mrr
- 40ge2p1xl710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
- 40ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
- 40ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-masq-mrr
- 40ge2p1xl710-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-
-### 3n-tsh-x520
-
-#### 78b-?t?c-srv6-ip6routing-base-ixgbe
- 10ge2p1x520-ethip6ip6-ip6base-srv6enc1sid-mrr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-mrr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-masq-mrr
- 10ge2p1x520-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-
-### 3n-dnv-x553
-
-#### 78b-?t?c-srv6-ip6routing-base-ixgbe
- 10ge2p1x553-ethip6ip6-ip6base-srv6enc1sid-mrr
- 10ge2p1x553-ethip6srhip6-ip6base-srv6enc2sids-mrr
- 10ge2p1x553-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr
- 10ge2p1x553-ethip6srhip6-ip6base-srv6proxy-dyn-mrr
- 10ge2p1x553-ethip6srhip6-ip6base-srv6proxy-masq-mrr
- 10ge2p1x553-ethip6srhip6-ip6base-srv6proxy-stat-mrr
-
-## IPv4 Tunnels
-
-### 3n-skx-xxv710
-
-#### 64b-?t?c-ip4tunnel-base-scale-i40e
- 25ge2p1xxv710-ethip4vxlan-l2xcbase-mrr
- 25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-mrr
- 25ge2p1xxv710-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr
- 25ge2p1xxv710-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr
-
-### 3n-hsw-xl710
-
-#### 64b-?t?c-ip4tunnel-base-i40e
- 40ge2p1xl710-ethip4vxlan-l2xcbase-mrrjaja
- 40ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-mrr
-
-### 3n-tsh-x520
-
-#### 64b-?t?c-ip4tunnel-base-scale-ixgbe
- 10ge2p1x520-ethip4vxlan-l2xcbase-mrr
- 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-mrr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr
- 10ge2p1x520-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr
-
-### 3n-dnv-x553
-
-#### 64b-?t?c-ip4tunnel-base-scale-ixgbe
- 10ge2p1x553-ethip4vxlan-l2xcbase-mrr
- 10ge2p1x553-ethip4vxlan-l2bdbasemaclrn-mrr
- 10ge2p1x553-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr
- 10ge2p1x553-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr
-
-## KVM VMs vhost-user
-
-### 2n-skx-xxv710
-
-#### 64b-?t?c-vhost-base-i40e-testpmd
- 2n1l-25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-
-#### 64b-?t?c-vhost-base-i40e-vpp
- 2n1l-25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr
-
-### 3n-skx-xxv710
-
-#### 64b-?t?c-vhost-base-i40e-testpmd
- 25ge2p1xxv710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-
-#### 64b-?t?c-vhost-base-i40e-vpp
- 25ge2p1xxv710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 25ge2p1xxv710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr
-
-#### 64b-?t?c-link-bonding-vhost-base-i40e-testpmd
- 25ge2p1xxv710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-
-#### 64b-?t?c-link-bonding-vhost-base-i40e-vpp
- 25ge2p1xxv710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 25ge2p1xxv710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 25ge2p1xxv710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
-
-### 3n-skx-x710
-
-#### 64b-?t?c-link-bonding-vhost-base-i40e-testpmd
- 10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-
-#### 64b-?t?c-link-bonding-vhost-base-i40e-vpp
- 10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
-
-### 3n-hsw-xl710
-
-#### 64b-?t?c-vhost-base-i40e-testpmd
- 40ge2p1xl710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 40ge2p1xl710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 40ge2p1xl710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-
-#### 64b-?t?c-vhost-base-i40e-vpp
- 40ge2p1xl710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 40ge2p1xl710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 40ge2p1xl710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr
-
-### 3n-tsh-x520
-
-#### 64b-?t?c-vhost-base-ixgbe
- 10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-
-#### 64b-?t?c-link-bonding-vhost-base-ixgbe
- 10ge2p1x520-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x520-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-
-### 2n-clx-xxv710
-
-#### 64b-?t?c-vhost-base-i40e-testpmd
- 2n1l-25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr
- 2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr
-
-#### 64b-?t?c-vhost-base-i40e-vpp
- 2n1l-25ge2p1xxv710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr
-
-## LXC/DRC Container Memif
-
-### 2n-skx-xxv710
-
-#### 64b-?t?c-memif-base-i40e
- 2n1l-25ge2p1xxv710-eth-l2xcbase-eth-2memif-1dcr-mrr
- 2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-eth-2memif-1dcr-mrr
-
-### 3n-skx-xxv710
-
-#### 64b-?t?c-memif-base-i40e
- 25ge2p1xxv710-eth-l2xcbase-eth-2memif-1lxc-mrr
- 25ge2p1xxv710-eth-l2xcbase-eth-2memif-1dcr-mrr
- 25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr
- 25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
- 25ge2p1xxv710-ethip4-ip4base-eth-2memif-1dcr-mrr
-
-### 3n-tsh-x520
-
-#### 64b-?t?c-memif-base-ixgbe
- 10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-mrr
- 10ge2p1x520-eth-l2xcbase-eth-2memif-1dcr-mrr
- 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr
- 10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr
- 10ge2p1x520-ethip4-ip4base-eth-2memif-1dcr-mrr
-
-### 2n-clx-xxv710
-
-#### 64b-?t?c-memif-base-i40e
- 2n1l-25ge2p1xxv710-eth-l2xcbase-eth-2memif-1dcr-mrr
- 2n1l-25ge2p1xxv710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr
- 2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-eth-2memif-1dcr-mrr
-
-## IPsec with IPv4 Routing
-
-### 3n-skx-xxv710
-
-#### imix-?t?c-ipsec-ip4routing-base-scale-sw-i40e
- 25ge2p1xxv710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr
- 25ge2p1xxv710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
- 25ge2p1xxv710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr
- 25ge2p1xxv710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
- 25ge2p1xxv710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr
- 25ge2p1xxv710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
-
-### 3n-hsw-xl710
-
-#### imix-?t?c-ipsec-ip4routing-base-scale-sw-i40e
- 40ge2p1xl710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr
- 40ge2p1xl710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
- 40ge2p1xl710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr
- 40ge2p1xl710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
- 40ge2p1xl710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr
- 40ge2p1xl710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
-
-#### imix-?t?c-ipsec-ip4routing-base-scale-hw-i40e
- 40ge2p1xl710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-mrr
- 40ge2p1xl710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-mrr
- 40ge2p1xl710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-mrr
- 40ge2p1xl710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-mrr
-
-### 3n-tsh-x520
-
-#### imix-?t?c-ipsec-ip4routing-base-scale-sw-ixgbe
- 10ge2p1x520-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr
- 10ge2p1x520-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
- 10ge2p1x520-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr
- 10ge2p1x520-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
- 10ge2p1x520-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr
- 10ge2p1x520-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
-
-### 3n-dnv-x553
-
-#### imix-?t?c-ipsec-ip4routing-base-scale-sw-ixgbe
- 10ge2p1x553-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr
- 10ge2p1x553-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
- 10ge2p1x553-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr
- 10ge2p1x553-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
- 10ge2p1x553-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr
- 10ge2p1x553-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr
-
-## Virtual Topology System
-
-### 3n-skx-xxv710
-
-#### 114b-?t?c-vts-l2switching-base-i40e
- 25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr
- 25ge2p1xxv710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr
-
-### 3n-hsw-xl710
-
-#### 114b-?t?c-vts-l2switching-base-i40e
- 40ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr
- 40ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr
- 40ge2p1xl710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr
-
-### 3n-tsh-x520
-
-#### 114b-?t?c-vts-l2switching-base-ixgbe
- 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr
- 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr
- 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr
-
-## NF Service Density
-
-### VNF Service Chains
-
-#### 2n-skx-xxv710
-
-##### imix-?t?c-vhost-chains-i40e
- 2n-25ge2p1xxv710-eth-l2bd-10ch-20vh-10vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-10ch-40vh-20vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-12vh-6vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-16vh-8vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-20vh-10vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-2vh-1vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-4vh-2vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-8vh-4vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-16vh-8vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-24vh-12vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-32vh-16vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-40vh-20vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-4vh-2vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-8vh-4vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4ch-16vh-8vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4ch-32vh-16vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4ch-48vh-24vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4ch-8vh-4vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-6ch-12vh-6vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-6ch-24vh-12vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-6ch-48vh-24vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-8ch-16vh-8vm1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-8ch-32vh-16vm1t-vppip4-mrr
-
-### CNF Service Chains
-
-#### 2n-skx-xxv710
-
-##### imix-?t?c-memif-chains-i40e
- 2n-25ge2p1xxv710-eth-l2bd-10ch-20mif-10dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-10ch-40mif-20dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-12mif-6dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-16mif-8dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-20mif-10dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-2mif-1dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-4mif-2dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1ch-8mif-4dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-16mif-8dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-24mif-12dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-32mif-16dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-40mif-20dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-4mif-2dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2ch-8mif-4dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4ch-16mif-8dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4ch-32mif-16dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4ch-48mif-24dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4ch-8mif-4dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-6ch-12mif-6dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-6ch-24mif-12dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-6ch-48mif-24dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-8ch-16mif-8dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-8ch-32mif-16dcr1t-vppip4-mrr
-
-### CNF Service Pipelines
-
-#### 2n-skx-xxv710
-
-##### imix-?t?c-memif-pipelines-i40e
- 2n-25ge2p1xxv710-eth-l2bd-10pl-20mif-10dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-10pl-20mif-20dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-10dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-1dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-2dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-4dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-6dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-1pl-2mif-8dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-12dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-16dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-20dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-2dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-4dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2pl-4mif-8dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-2pl-8mif-4dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4pl-8mif-16dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4pl-8mif-24dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-4pl-8mif-8dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-6pl-12mif-12dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-6pl-12mif-24dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-6pl-12mif-6dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-8pl-16mif-16dcr1t-vppip4-mrr
- 2n-25ge2p1xxv710-eth-l2bd-8pl-16mif-8dcr1t-vppip4-mrr
-
-## DPDK
-
-### 2n-skx-xxv710
-
-#### 64b-?t?c-testpmd-l3fwd
- 2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr
- 2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr
-
-### 2n-skx-x710
-
-#### 64b-?t?c-testpmd-l3fwd
- 2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr
- 2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr
-
-### 3n-skx-xxv710
-
-#### 64b-?t?c-testpmd-l3fwd
- 25ge2p1xxv710-eth-l2xcbase-testpmd-mrr
- 25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr
-
-### 3n-skx-x710
-
-#### 64b-?t?c-testpmd-l3fwd
- 10ge2p1x710-eth-l2xcbase-testpmd-mrr
- 10ge2p1x710-ethip4-ip4base-l3fwd-mrr
-
-### 3n-hsw-xl710
-
-#### 64b-?t?c-testpmd-l3fwd
- 40ge2p1xl710-eth-l2xcbase-testpmd-mrr
- 40ge2p1xl710-ethip4-ip4base-l3fwd-mrr
-
-### 3n-hsw-x710
-
-#### 64b-?t?c-testpmd-l3fwd
- 10ge2p1x710-eth-l2xcbase-testpmd-mrr
- 10ge2p1x710-ethip4-ip4base-l3fwd-mrr
-
-[Trending web page]: https://docs.fd.io/csit/master/trending/index.html
-[2n-skx]: https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx/
-[3n-skx]: https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx/
-[3n-hsw]: https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master/
-[3n-tsh]: https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh/
-[2n-dnv]: https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv/
-[3n-dnv]: https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv/
-[2n-clx]: https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx/
-[Performance Tests Job Specifications, chapter NICs]: https://github.com/FDio/csit/blob/master/docs/job_specs/perf_tests_job_specs.md#nics
-[Performance Tests Job Specifications, chapter Frame Sizes]: https://github.com/FDio/csit/blob/master/docs/job_specs/perf_tests_job_specs.md#frame-sizes
-[Performance Tests Job Specifications, chapter Processor Cores]: https://github.com/FDio/csit/blob/master/docs/job_specs/perf_tests_job_specs.md#processor-cores
-[Jobs specifications]: https://github.com/FDio/csit/tree/master/docs/job_specs
-
-# END OF DOCUMENT
diff --git a/resources/tools/presentation/environment.py b/resources/tools/presentation/environment.py
deleted file mode 100644
index ea4d94ad70..0000000000
--- a/resources/tools/presentation/environment.py
+++ /dev/null
@@ -1,129 +0,0 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
-# 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.
-
-"""Environment
-
-Setting of the environment according to the specification specified in the
-specification YAML file.
-"""
-
-import os
-import shutil
-import logging
-
-from pal_errors import PresentationError
-
-
-class Environment:
- """Setting of the environment:
- - set environment variables,
- - create directories.
- """
-
- def __init__(self, env, force=False):
- """Initialization.
-
- :param env: Environment specification.
- :param force: If True, remove old build(s) if present.
- :type env: dict
- :type force: bool
- """
-
- self._env = env
- self._force = force
-
- @property
- def environment(self):
- """Getter.
-
- :returns: Environment settings.
- :rtype: dict
- """
- return self._env
-
- def _make_dirs(self):
- """Create the directories specified in the 'make-dirs' part of
- 'environment' section in the specification file.
-
- :raises: PresentationError if it is not possible to remove or create a
- directory.
- """
-
- if self._force:
- logging.info(u"Removing old build(s) ...")
- for directory in self._env[u"build-dirs"]:
- dir_to_remove = self._env[u"paths"][directory]
- if os.path.isdir(dir_to_remove):
- try:
- shutil.rmtree(dir_to_remove)
- logging.info(f" Removed: {dir_to_remove}")
- except OSError:
- raise PresentationError(
- f"Cannot remove the directory {dir_to_remove}"
- )
- logging.info(u"Done.")
-
- logging.info(u"Making directories ...")
-
- for directory in self._env[u"make-dirs"]:
- dir_to_make = self._env[u"paths"][directory]
- try:
- if os.path.isdir(dir_to_make):
- logging.warning(
- f"The directory {dir_to_make} exists, skipping."
- )
- else:
- os.makedirs(dir_to_make)
- logging.info(f" Created: {dir_to_make}")
- except OSError:
- raise PresentationError(
- f"Cannot make the directory {dir_to_make}"
- )
-
- logging.info(u"Done.")
-
- def set_environment(self):
- """Set the environment.
- """
-
- self._make_dirs()
-
-
-def clean_environment(env):
- """Clean the environment.
-
- :param env: Environment specification.
- :type env: dict
- """
-
- logging.info(u"Cleaning the environment ...")
-
- if not env[u"remove-dirs"]: # None or empty
- logging.info(u" No directories to remove.")
- return
-
- for directory in env[u"remove-dirs"]:
- dir_to_remove = env[u"paths"][directory]
- logging.info(f" Removing the working directory {dir_to_remove} ...")
- if os.path.isdir(dir_to_remove):
- try:
- shutil.rmtree(dir_to_remove)
- except OSError as err:
- logging.warning(
- f"Cannot remove the directory {dir_to_remove}"
- )
- logging.debug(str(err))
- else:
- logging.warning(f"The directory {dir_to_remove} does not exist.")
-
- logging.info(u"Done.")
diff --git a/resources/tools/presentation/fdio.svg b/resources/tools/presentation/fdio.svg
deleted file mode 100644
index 32dd070d36..0000000000
--- a/resources/tools/presentation/fdio.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="630px" height="394px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
-viewBox="0 0 94500000 59062500"
- xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs>
- <style type="text/css">
- <![CDATA[
- .fil2 {fill:#3C4641}
- .fil1 {fill:#3E4742}
- .fil0 {fill:#ED3341}
- ]]>
- </style>
- </defs>
- <g id="Layer_x0020_1">
- <path class="fil0" d="M42892251 15970973c234833,2555989 1402971,3784607 3633525,3195163 64614,-17483 464586,-605509 524121,-613778 100406,-13939 -325789,592397 -234951,589562 663981,-21026 1166839,235659 2703054,-1575788 -125567,2507794 385088,1931698 753047,3733577 -1039736,2409632 -1745415,307125 -1486485,4471622 -4668654,-2126 -6967721,-648979 -9839813,2159679 -1571417,1536924 -3134683,5759184 -3805515,8365022 -725760,124740 -1467939,37800 -1887401,510536 -484194,545619 -431747,1408050 35674,1833418 379890,345516 987289,308424 1519678,355793 800769,71348 1142151,473327 1136244,1236651 -6615,848964 -451001,1192826 -1631306,1191054 -3702746,-5316 -8320961,16538 -11713866,45596 -1026624,8741 -1698992,464822 -1746714,1344971 -50676,931416 521640,1260039 1499833,1295831 4286993,156988 8304069,-117653 12887201,141041 783996,103714 1189755,583183 1168256,1106004 -35201,855461 -707923,1099626 -1411594,1145104 -5730598,370440 -13969581,-91665 -19611231,141278 -797344,32839 -1694621,179786 -1702890,1222476 -6615,840459 589798,1177943 1399899,1281538 2377738,7088 5327556,1418 7519956,1890 2596151,591 5192775,4134 7788926,-118l-1007843 3222096 9601909 24334 3086606 -8484328c2943911,-111628 4325029,-862076 6023666,-2197361 944528,-742534 2909773,-3271590 3377903,-4985466l-6699578 -78081 1196016 -3619114c2873627,-19727 7980761,562984 10127447,-748913 1534089,-937440 4106970,-3980458 4422954,-6498411 -1731358,-38863 -8963443,287753 -9479649,-290469 -811991,-1588073 1028633,-2402426 1978121,-3132911 1388678,-1068441 1793846,-1560904 1785578,-3760746 230108,313386 87413,679809 294368,826048 502740,355320 1446913,224319 3038411,773010 1055447,363943 2115855,607399 3274661,404696 606218,-105958 570662,-121196 999692,-407413 -87767,-924683 -247472,-1025089 -709813,-1469003 1446086,654176 966617,1888937 966499,3676168 0,1623983 504512,3115429 -2599,4527259 -1397891,3892219 -3372351,4768234 -4125752,6086745l4834856 25043 -4320540 12061626c-2523504,20318 -10295893,-341499 -12094937,331459 -2551264,954568 -5105126,4809341 -5427844,6962878 3747398,-8151 17429226,243219 20078179,-244755 5769579,-1062534 6837902,-6323231 8783066,-11759344 1441716,-4029244 5291646,-11853371 -1699464,-14191183 -1193535,-382253 -1853145,-295667 -2077228,-395955 -216523,-96863 4489,-368078 -1209600,-1404861 -1196488,-1140379 -417690,-2367934 118716,-3662820 1265001,-3005691 3370461,-2733058 3370343,-6944096 -236,-4388934 2680611,-3141771 3022583,-4763627 307479,-1458135 -1345326,-645317 -2307336,-1215388 -794273,-470610 -170809,-694693 -1801524,-842940l-178251 -1084151c-406114,246999 -713003,925509 -824631,912870 -159705,-18191 -35083,-801478 -213216,-759780 -33075,7796 -73828,19845 -123323,42643 -162068,75009 -368668,285036 -609053,585900 -1161759,1454355 -3112358,5035433 -4642076,5789779 -3004746,1481878 -5309719,91074 -10962709,3162206 -2587056,1405451 -4703383,1914216 -7362259,348233z"/>
- <path class="fil1" d="M81444116 48006591c-917831,-4596598 5486670,-5710989 6489669,-1741753 1221649,4834502 -5678387,5805017 -6489669,1741753zm1873463 -5811986c-6608858,1801052 -4202297,11851718 2867130,10021253 6433324,-1665681 4111577,-11922947 -2867130,-10021253z"/>
- <polygon class="fil2" points="76840667,42255321 75263698,42301508 75172978,52072571 76944144,52066547 "/>
- <path class="fil1" d="M70635206 52314137c1084388,307834 2141370,-714302 1520859,-1977413 -474863,-966853 -2784797,-983627 -2488776,930589 89421,578931 388041,882158 967916,1046824z"/>
- <path class="fil1" d="M76175978 40542272c695402,-45006 1114037,-372448 1062889,-1137426 -18309,-275349 -120251,-539595 -294013,-710876 -609761,-601611 -1840151,-411548 -1952016,509001 -111628,919485 435173,1387733 1183140,1339301z"/>
- <path class="fil0" d="M14086524 36346354l15995897 0c719972,0 1308943,589089 1308943,1308943l0 0c0,719854 -589089,1308943 -1308943,1308943l-15995897 0c-719736,0 -1308943,-588971 -1308943,-1308943l0 0c0,-719972 589089,-1308943 1308943,-1308943z"/>
- <path class="fil0" d="M20652975 31242173l13718919 0c719972,0 1308943,589326 1308943,1308943l0 118c0,719618 -589208,1308943 -1308943,1308943l-13718919 0c-719736,0 -1308943,-588971 -1308943,-1308943l0 -118c0,-719972 588971,-1308943 1308943,-1308943z"/>
- <path class="fil0" d="M6885624 46609763l3154410 0c719972,0 1308943,589208 1308943,1308943l0 0c0,719736 -589326,1308943 -1308943,1308943l-3154410 0c-719736,0 -1308943,-588971 -1308943,-1308943l0 0c0,-719972 588971,-1308943 1308943,-1308943z"/>
- </g>
-</svg>
diff --git a/resources/tools/presentation/generator_alerts.py b/resources/tools/presentation/generator_alerts.py
deleted file mode 100644
index 156e99ccc0..0000000000
--- a/resources/tools/presentation/generator_alerts.py
+++ /dev/null
@@ -1,447 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""Generator of alerts:
-- failed tests
-- regressions
-- progressions
-"""
-
-
-import smtplib
-import logging
-import re
-
-from email.mime.text import MIMEText
-from email.mime.multipart import MIMEMultipart
-from os.path import isdir
-from collections import OrderedDict
-
-from pal_utils import get_last_completed_build_number
-from pal_errors import PresentationError
-
-
-class AlertingError(PresentationError):
- """Exception(s) raised by the alerting module.
-
- When raising this exception, put this information to the message in this
- order:
- - short description of the encountered problem (parameter msg),
- - relevant messages if there are any collected, e.g., from caught
- exception (optional parameter details),
- - relevant data if there are any collected (optional parameter details).
- """
-
- def __init__(self, msg, details=u'', level=u"CRITICAL"):
- """Sets the exception message and the level.
-
- :param msg: Short description of the encountered problem.
- :param details: Relevant messages if there are any collected, e.g.,
- from caught exception (optional parameter details), or relevant data
- if there are any collected (optional parameter details).
- :param level: Level of the error, possible choices are: "DEBUG", "INFO",
- "WARNING", "ERROR" and "CRITICAL".
- :type msg: str
- :type details: str
- :type level: str
- """
-
- super(AlertingError, self).__init__(f"Alerting: {msg}", details, level)
-
- def __repr__(self):
- return (
- f"AlertingError(msg={self._msg!r},details={self._details!r},"
- f"level={self._level!r})"
- )
-
-
-class Alerting:
- """Class implementing the alerting mechanism.
- """
-
- def __init__(self, spec):
- """Initialization.
-
- :param spec: The CPTA specification.
- :type spec: Specification
- """
-
- # Implemented alerts:
- self._implemented_alerts = (u"failed-tests", )
-
- self._spec = spec
-
- try:
- self._spec_alert = spec.alerting
- except KeyError as err:
- raise AlertingError(u"Alerting is not configured, skipped.",
- repr(err),
- u"WARNING")
-
- self._path_failed_tests = spec.environment[u"paths"][u"DIR[STATIC,VPP]"]
-
- # Verify and validate input specification:
- self.configs = self._spec_alert.get(u"configurations", None)
- if not self.configs:
- raise AlertingError(u"No alert configuration is specified.")
- for config_type, config_data in self.configs.items():
- if config_type == u"email":
- if not config_data.get(u"server", None):
- raise AlertingError(u"Parameter 'server' is missing.")
- if not config_data.get(u"address-to", None):
- raise AlertingError(u"Parameter 'address-to' (recipient) "
- u"is missing.")
- if not config_data.get(u"address-from", None):
- raise AlertingError(u"Parameter 'address-from' (sender) is "
- u"missing.")
- elif config_type == u"jenkins":
- if not isdir(config_data.get(u"output-dir", u"")):
- raise AlertingError(u"Parameter 'output-dir' is "
- u"missing or it is not a directory.")
- if not config_data.get(u"output-file", None):
- raise AlertingError(u"Parameter 'output-file' is missing.")
- else:
- raise AlertingError(
- f"Alert of type {config_type} is not implemented."
- )
-
- self.alerts = self._spec_alert.get(u"alerts", None)
- if not self.alerts:
- raise AlertingError(u"No alert is specified.")
- for alert_data in self.alerts.values():
- if not alert_data.get(u"title", None):
- raise AlertingError(u"Parameter 'title' is missing.")
- if not alert_data.get(u"type", None) in self._implemented_alerts:
- raise AlertingError(u"Parameter 'failed-tests' is missing or "
- u"incorrect.")
- if not alert_data.get(u"way", None) in self.configs.keys():
- raise AlertingError(u"Parameter 'way' is missing or incorrect.")
- if not alert_data.get(u"include", None):
- raise AlertingError(u"Parameter 'include' is missing or the "
- u"list is empty.")
-
- def __str__(self):
- """Return string with human readable description of the alert.
-
- :returns: Readable description.
- :rtype: str
- """
- return f"configs={self.configs}, alerts={self.alerts}"
-
- def __repr__(self):
- """Return string executable as Python constructor call.
-
- :returns: Executable constructor call.
- :rtype: str
- """
- return f"Alerting(spec={self._spec})"
-
- def generate_alerts(self):
- """Generate alert(s) using specified way(s).
- """
-
- for alert_data in self.alerts.values():
- if alert_data[u"way"] == u"jenkins":
- self._generate_email_body(alert_data)
- else:
- raise AlertingError(
- f"Alert with way {alert_data[u'way']} is not implemented."
- )
-
- @staticmethod
- def _send_email(server, addr_from, addr_to, subject, text=None, html=None):
- """Send an email using predefined configuration.
-
- :param server: SMTP server used to send email.
- :param addr_from: Sender address.
- :param addr_to: Recipient address(es).
- :param subject: Subject of the email.
- :param text: Message in the ASCII text format.
- :param html: Message in the HTML format.
- :type server: str
- :type addr_from: str
- :type addr_to: list
- :type subject: str
- :type text: str
- :type html: str
- """
-
- if not text and not html:
- raise AlertingError(u"No text/data to send.")
-
- msg = MIMEMultipart(u'alternative')
- msg[u'Subject'] = subject
- msg[u'From'] = addr_from
- msg[u'To'] = u", ".join(addr_to)
-
- if text:
- msg.attach(MIMEText(text, u'plain'))
- if html:
- msg.attach(MIMEText(html, u'html'))
-
- smtp_server = None
- try:
- logging.info(f"Trying to send alert {subject} ...")
- logging.debug(f"SMTP Server: {server}")
- logging.debug(f"From: {addr_from}")
- logging.debug(f"To: {u', '.join(addr_to)}")
- logging.debug(f"Message: {msg.as_string()}")
- smtp_server = smtplib.SMTP(server)
- smtp_server.sendmail(addr_from, addr_to, msg.as_string())
- except smtplib.SMTPException as err:
- raise AlertingError(u"Not possible to send the alert via email.",
- str(err))
- finally:
- if smtp_server:
- smtp_server.quit()
-
- def _get_compressed_failed_tests(self, alert, test_set, sort=True):
- """Return the dictionary with compressed faild tests. The compression is
- done by grouping the tests from the same area but with different NICs,
- frame sizes and number of processor cores.
-
- For example, the failed tests:
- 10ge2p1x520-64b-1c-ethip4udp-ip4scale4000-udpsrcscale15-nat44-mrr
- 10ge2p1x520-64b-2c-ethip4udp-ip4scale4000-udpsrcscale15-nat44-mrr
- 10ge2p1x520-64b-4c-ethip4udp-ip4scale4000-udpsrcscale15-nat44-mrr
- 10ge2p1x520-imix-1c-ethip4udp-ip4scale4000-udpsrcscale15-nat44-mrr
- 10ge2p1x520-imix-2c-ethip4udp-ip4scale4000-udpsrcscale15-nat44-mrr
- 10ge2p1x520-imix-4c-ethip4udp-ip4scale4000-udpsrcscale15-nat44-mrr
-
- will be represented as:
- ethip4udp-ip4scale4000-udpsrcscale15-nat44 \
- (10ge2p1x520, 64b, imix, 1c, 2c, 4c)
-
- Structure of returned data:
-
- {
- "trimmed_TC_name_1": {
- "nics": [],
- "framesizes": [],
- "cores": []
- }
- ...
- "trimmed_TC_name_N": {
- "nics": [],
- "framesizes": [],
- "cores": []
- }
- }
-
- :param alert: Files are created for this alert.
- :param test_set: Specifies which set of tests will be included in the
- result. Its name is the same as the name of file with failed tests.
- :param sort: If True, the failed tests are sorted alphabetically.
- :type alert: dict
- :type test_set: str
- :type sort: bool
- :returns: CSIT build number, VPP version, Number of passed tests,
- Number of failed tests, Compressed failed tests.
- :rtype: tuple(str, str, int, int, OrderedDict)
- """
-
- directory = self.configs[alert[u"way"]][u"output-dir"]
- failed_tests = OrderedDict()
- file_path = f"{directory}/{test_set}.txt"
- version = u""
- try:
- with open(file_path, u'r') as f_txt:
- for idx, line in enumerate(f_txt):
- if idx == 0:
- build = line[:-1]
- continue
- if idx == 1:
- version = line[:-1]
- continue
- if idx == 2:
- passed = line[:-1]
- continue
- if idx == 3:
- failed = line[:-1]
- continue
- try:
- test = line[:-1].split(u'-')
- name = u'-'.join(test[3:-1])
- except IndexError:
- continue
- if failed_tests.get(name, None) is None:
- failed_tests[name] = dict(nics=list(),
- framesizes=list(),
- cores=list())
- if test[0] not in failed_tests[name][u"nics"]:
- failed_tests[name][u"nics"].append(test[0])
- if test[1] not in failed_tests[name][u"framesizes"]:
- failed_tests[name][u"framesizes"].append(test[1])
- if test[2] not in failed_tests[name][u"cores"]:
- failed_tests[name][u"cores"].append(test[2])
- except IOError:
- logging.error(f"No such file or directory: {file_path}")
- return None, None, None, None, None
- if sort:
- sorted_failed_tests = OrderedDict()
- for key in sorted(failed_tests.keys()):
- sorted_failed_tests[key] = failed_tests[key]
- return build, version, passed, failed, sorted_failed_tests
-
- return build, version, passed, failed, failed_tests
-
- def _list_gressions(self, alert, idx, header, re_pro):
- """Create a file with regressions or progressions for the test set
- specified by idx.
-
- :param alert: Files are created for this alert.
- :param idx: Index of the test set as it is specified in the
- specification file.
- :param header: The header of the list of [re|pro]gressions.
- :param re_pro: 'regression' or 'progression'.
- :type alert: dict
- :type idx: int
- :type header: str
- :type re_pro: str
- """
-
- if re_pro not in (u"regressions", u"progressions"):
- return
-
- in_file = (
- f"{self.configs[alert[u'way']][u'output-dir']}/"
- f"{re_pro}-{alert[u'urls'][idx].split(u'/')[-1]}.txt"
- )
- out_file = (
- f"{self.configs[alert[u'way']][u'output-dir']}/"
- f"trending-{re_pro}.txt"
- )
-
- try:
- with open(in_file, u'r') as txt_file:
- file_content = txt_file.read()
- with open(out_file, u'a+') as reg_file:
- reg_file.write(header)
- if file_content:
- reg_file.write(file_content)
- else:
- reg_file.write(f"No {re_pro}")
- except IOError as err:
- logging.warning(repr(err))
-
- def _generate_email_body(self, alert):
- """Create the file which is used in the generated alert.
-
- :param alert: Files are created for this alert.
- :type alert: dict
- """
-
- if alert[u"type"] != u"failed-tests":
- raise AlertingError(
- f"Alert of type {alert[u'type']} is not implemented."
- )
-
- text = u""
- for idx, test_set in enumerate(alert.get(u"include", list())):
- test_set_short = u""
- device = u""
- try:
- groups = re.search(
- re.compile(
- r'((vpp|dpdk)-\dn-(skx|clx|hsw|tsh|dnv|zn2)-.*)'
- ),
- test_set
- )
- test_set_short = groups.group(1)
- device = groups.group(2)
- except (AttributeError, IndexError):
- logging.error(
- f"The test set {test_set} does not include information "
- f"about test bed. Using empty string instead."
- )
- build, version, passed, failed, failed_tests = \
- self._get_compressed_failed_tests(alert, test_set)
- if build is None:
- text += (
- f"\n\nNo input data available for {test_set_short}. "
- f"See CSIT job {alert[u'urls'][idx]} for more "
- f"information.\n"
- )
- continue
- text += (
- f"\n\n{test_set_short}, {failed} tests failed, {passed} tests "
- f"passed, CSIT build: {alert[u'urls'][idx]}/{build}, "
- f"{device} version: {version}\n\n"
- )
-
- class MaxLens():
- """Class to store the max lengths of strings displayed in
- failed tests list.
- """
- def __init__(self, tst_name, nics, framesizes, cores):
- """Initialisation.
-
- :param tst_name: Name of the test.
- :param nics: NICs used in the test.
- :param framesizes: Frame sizes used in the tests
- :param cores: Cores used in th test.
- """
- self.name = tst_name
- self.nics = nics
- self.frmsizes = framesizes
- self.cores = cores
-
- max_len = MaxLens(0, 0, 0, 0)
-
- for name, params in failed_tests.items():
- failed_tests[name][u"nics"] = u",".join(sorted(params[u"nics"]))
- failed_tests[name][u"framesizes"] = \
- u",".join(sorted(params[u"framesizes"]))
- failed_tests[name][u"cores"] = \
- u",".join(sorted(params[u"cores"]))
- if len(name) > max_len.name:
- max_len.name = len(name)
- if len(failed_tests[name][u"nics"]) > max_len.nics:
- max_len.nics = len(failed_tests[name][u"nics"])
- if len(failed_tests[name][u"framesizes"]) > max_len.frmsizes:
- max_len.frmsizes = len(failed_tests[name][u"framesizes"])
- if len(failed_tests[name][u"cores"]) > max_len.cores:
- max_len.cores = len(failed_tests[name][u"cores"])
-
- for name, params in failed_tests.items():
- text += (
- f"{name + u' ' * (max_len.name - len(name))} "
- f"{params[u'nics']}"
- f"{u' ' * (max_len.nics - len(params[u'nics']))} "
- f"{params[u'framesizes']}"
- f"{u' ' * (max_len.frmsizes-len(params[u'framesizes']))} "
- f"{params[u'cores']}"
- f"{u' ' * (max_len.cores - len(params[u'cores']))}\n"
- )
-
- gression_hdr = (
- f"\n\n{test_set_short}, "
- f"CSIT build: {alert[u'urls'][idx]}/{build}, "
- f"{device} version: {version}\n\n"
- )
- # Add list of regressions:
- self._list_gressions(alert, idx, gression_hdr, u"regressions")
-
- # Add list of progressions:
- self._list_gressions(alert, idx, gression_hdr, u"progressions")
-
- text += f"\nFor detailed information visit: {alert[u'url-details']}\n"
- file_name = f"{self.configs[alert[u'way']][u'output-dir']}/" \
- f"{self.configs[alert[u'way']][u'output-file']}"
- logging.info(f"Writing the file {file_name}.txt ...")
-
- try:
- with open(f"{file_name}.txt", u'w') as txt_file:
- txt_file.write(text)
- except IOError:
- logging.error(f"Not possible to write the file {file_name}.txt.")
diff --git a/resources/tools/presentation/generator_cpta.py b/resources/tools/presentation/generator_cpta.py
deleted file mode 100644
index 2f2ab970e4..0000000000
--- a/resources/tools/presentation/generator_cpta.py
+++ /dev/null
@@ -1,687 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Generation of Continuous Performance Trending and Analysis.
-"""
-
-import logging
-import csv
-
-from collections import OrderedDict
-from datetime import datetime
-from copy import deepcopy
-
-import prettytable
-import plotly.offline as ploff
-import plotly.graph_objs as plgo
-import plotly.exceptions as plerr
-
-from pal_utils import archive_input_data, execute_command, classify_anomalies
-
-
-# Command to build the html format of the report
-HTML_BUILDER = u'sphinx-build -v -c conf_cpta -a ' \
- u'-b html -E ' \
- u'-t html ' \
- u'-D version="{date}" ' \
- u'{working_dir} ' \
- u'{build_dir}/'
-
-# .css file for the html format of the report
-THEME_OVERRIDES = u"""/* override table width restrictions */
-.wy-nav-content {
- max-width: 1200px !important;
-}
-.rst-content blockquote {
- margin-left: 0px;
- line-height: 18px;
- margin-bottom: 0px;
-}
-.wy-menu-vertical a {
- display: inline-block;
- line-height: 18px;
- padding: 0 2em;
- display: block;
- position: relative;
- font-size: 90%;
- color: #d9d9d9
-}
-.wy-menu-vertical li.current a {
- color: gray;
- border-right: solid 1px #c9c9c9;
- padding: 0 3em;
-}
-.wy-menu-vertical li.toctree-l2.current > a {
- background: #c9c9c9;
- padding: 0 3em;
-}
-.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a {
- display: block;
- background: #c9c9c9;
- padding: 0 4em;
-}
-.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a {
- display: block;
- background: #bdbdbd;
- padding: 0 5em;
-}
-.wy-menu-vertical li.on a, .wy-menu-vertical li.current > a {
- color: #404040;
- padding: 0 2em;
- font-weight: bold;
- position: relative;
- background: #fcfcfc;
- border: none;
- border-top-width: medium;
- border-bottom-width: medium;
- border-top-style: none;
- border-bottom-style: none;
- border-top-color: currentcolor;
- border-bottom-color: currentcolor;
- padding-left: 2em -4px;
-}
-"""
-
-COLORS = (
- u"#1A1110",
- u"#DA2647",
- u"#214FC6",
- u"#01786F",
- u"#BD8260",
- u"#FFD12A",
- u"#A6E7FF",
- u"#738276",
- u"#C95A49",
- u"#FC5A8D",
- u"#CEC8EF",
- u"#391285",
- u"#6F2DA8",
- u"#FF878D",
- u"#45A27D",
- u"#FFD0B9",
- u"#FD5240",
- u"#DB91EF",
- u"#44D7A8",
- u"#4F86F7",
- u"#84DE02",
- u"#FFCFF1",
- u"#614051"
-)
-
-
-def generate_cpta(spec, data):
- """Generate all formats and versions of the Continuous Performance Trending
- and Analysis.
-
- :param spec: Specification read from the specification file.
- :param data: Full data set.
- :type spec: Specification
- :type data: InputData
- """
-
- logging.info(u"Generating the Continuous Performance Trending and Analysis "
- u"...")
-
- ret_code = _generate_all_charts(spec, data)
-
- cmd = HTML_BUILDER.format(
- date=datetime.utcnow().strftime(u'%Y-%m-%d %H:%M UTC'),
- working_dir=spec.environment[u'paths'][u'DIR[WORKING,SRC]'],
- build_dir=spec.environment[u'paths'][u'DIR[BUILD,HTML]'])
- execute_command(cmd)
-
- with open(spec.environment[u'paths'][u'DIR[CSS_PATCH_FILE]'], u'w') as \
- css_file:
- css_file.write(THEME_OVERRIDES)
-
- with open(spec.environment[u'paths'][u'DIR[CSS_PATCH_FILE2]'], u'w') as \
- css_file:
- css_file.write(THEME_OVERRIDES)
-
- if spec.configuration.get(u"archive-inputs", True):
- archive_input_data(spec)
-
- logging.info(u"Done.")
-
- return ret_code
-
-
-def _generate_trending_traces(in_data, job_name, build_info,
- name=u"", color=u"", incl_tests=u"MRR"):
- """Generate the trending traces:
- - samples,
- - outliers, regress, progress
- - average of normal samples (trending line)
-
- :param in_data: Full data set.
- :param job_name: The name of job which generated the data.
- :param build_info: Information about the builds.
- :param name: Name of the plot
- :param color: Name of the color for the plot.
- :param incl_tests: Included tests, accepted values: MRR, NDR, PDR
- :type in_data: OrderedDict
- :type job_name: str
- :type build_info: dict
- :type name: str
- :type color: str
- :type incl_tests: str
- :returns: Generated traces (list) and the evaluated result.
- :rtype: tuple(traces, result)
- """
-
- if incl_tests not in (u"MRR", u"NDR", u"PDR"):
- return list(), None
-
- data_x = list(in_data.keys())
- data_y_pps = list()
- data_y_mpps = list()
- data_y_stdev = list()
- for item in in_data.values():
- data_y_pps.append(float(item[u"receive-rate"]))
- data_y_stdev.append(float(item[u"receive-stdev"]) / 1e6)
- data_y_mpps.append(float(item[u"receive-rate"]) / 1e6)
-
- hover_text = list()
- xaxis = list()
- for index, key in enumerate(data_x):
- str_key = str(key)
- date = build_info[job_name][str_key][0]
- hover_str = (u"date: {date}<br>"
- u"{property} [Mpps]: {value:.3f}<br>"
- u"<stdev>"
- u"{sut}-ref: {build}<br>"
- u"csit-ref: {test}-{period}-build-{build_nr}<br>"
- u"testbed: {testbed}")
- if incl_tests == u"MRR":
- hover_str = hover_str.replace(
- u"<stdev>", f"stdev [Mpps]: {data_y_stdev[index]:.3f}<br>"
- )
- else:
- hover_str = hover_str.replace(u"<stdev>", u"")
- if u"-cps" in name:
- hover_str = hover_str.replace(u"[Mpps]", u"[Mcps]")
- if u"dpdk" in job_name:
- hover_text.append(hover_str.format(
- date=date,
- property=u"average" if incl_tests == u"MRR" else u"throughput",
- value=data_y_mpps[index],
- sut=u"dpdk",
- build=build_info[job_name][str_key][1].rsplit(u'~', 1)[0],
- test=incl_tests.lower(),
- period=u"weekly",
- build_nr=str_key,
- testbed=build_info[job_name][str_key][2]))
- elif u"vpp" in job_name:
- hover_str = hover_str.format(
- date=date,
- property=u"average" if incl_tests == u"MRR" else u"throughput",
- value=data_y_mpps[index],
- sut=u"vpp",
- build=build_info[job_name][str_key][1].rsplit(u'~', 1)[0],
- test=incl_tests.lower(),
- period=u"daily" if incl_tests == u"MRR" else u"weekly",
- build_nr=str_key,
- testbed=build_info[job_name][str_key][2])
- if u"-cps" in name:
- hover_str = hover_str.replace(u"throughput", u"connection rate")
- hover_text.append(hover_str)
-
- xaxis.append(datetime(int(date[0:4]), int(date[4:6]), int(date[6:8]),
- int(date[9:11]), int(date[12:])))
-
- data_pd = OrderedDict()
- for key, value in zip(xaxis, data_y_pps):
- data_pd[key] = value
-
- anomaly_classification, avgs_pps, stdevs_pps = classify_anomalies(data_pd)
- avgs_mpps = [avg_pps / 1e6 for avg_pps in avgs_pps]
- stdevs_mpps = [stdev_pps / 1e6 for stdev_pps in stdevs_pps]
-
- anomalies = OrderedDict()
- anomalies_colors = list()
- anomalies_avgs = list()
- anomaly_color = {
- u"regression": 0.0,
- u"normal": 0.5,
- u"progression": 1.0
- }
- if anomaly_classification:
- for index, (key, value) in enumerate(data_pd.items()):
- if anomaly_classification[index] in (u"regression", u"progression"):
- anomalies[key] = value / 1e6
- anomalies_colors.append(
- anomaly_color[anomaly_classification[index]])
- anomalies_avgs.append(avgs_mpps[index])
- anomalies_colors.extend([0.0, 0.5, 1.0])
-
- # Create traces
-
- trace_samples = plgo.Scatter(
- x=xaxis,
- y=data_y_mpps,
- mode=u"markers",
- line={
- u"width": 1
- },
- showlegend=True,
- legendgroup=name,
- name=f"{name}",
- marker={
- u"size": 5,
- u"color": color,
- u"symbol": u"circle",
- },
- text=hover_text,
- hoverinfo=u"text+name"
- )
- traces = [trace_samples, ]
-
- trend_hover_text = list()
- for idx in range(len(data_x)):
- trend_hover_str = (
- f"trend [Mpps]: {avgs_mpps[idx]:.3f}<br>"
- f"stdev [Mpps]: {stdevs_mpps[idx]:.3f}"
- )
- trend_hover_text.append(trend_hover_str)
-
- trace_trend = plgo.Scatter(
- x=xaxis,
- y=avgs_mpps,
- mode=u"lines",
- line={
- u"shape": u"linear",
- u"width": 1,
- u"color": color,
- },
- showlegend=False,
- legendgroup=name,
- name=f"{name}",
- text=trend_hover_text,
- hoverinfo=u"text+name"
- )
- traces.append(trace_trend)
-
- trace_anomalies = plgo.Scatter(
- x=list(anomalies.keys()),
- y=anomalies_avgs,
- mode=u"markers",
- hoverinfo=u"none",
- showlegend=False,
- legendgroup=name,
- name=f"{name}-anomalies",
- marker={
- u"size": 15,
- u"symbol": u"circle-open",
- u"color": anomalies_colors,
- u"colorscale": [
- [0.00, u"red"],
- [0.33, u"red"],
- [0.33, u"white"],
- [0.66, u"white"],
- [0.66, u"green"],
- [1.00, u"green"]
- ],
- u"showscale": True,
- u"line": {
- u"width": 2
- },
- u"colorbar": {
- u"y": 0.5,
- u"len": 0.8,
- u"title": u"Circles Marking Data Classification",
- u"titleside": u"right",
- u"titlefont": {
- u"size": 14
- },
- u"tickmode": u"array",
- u"tickvals": [0.167, 0.500, 0.833],
- u"ticktext": [u"Regression", u"Normal", u"Progression"],
- u"ticks": u"",
- u"ticklen": 0,
- u"tickangle": -90,
- u"thickness": 10
- }
- }
- )
- traces.append(trace_anomalies)
-
- if anomaly_classification:
- return traces, anomaly_classification[-1]
-
- return traces, None
-
-
-def _generate_all_charts(spec, input_data):
- """Generate all charts specified in the specification file.
-
- :param spec: Specification.
- :param input_data: Full data set.
- :type spec: Specification
- :type input_data: InputData
- """
-
- def _generate_chart(graph):
- """Generates the chart.
-
- :param graph: The graph to be generated
- :type graph: dict
- :returns: Dictionary with the job name, csv table with results and
- list of tests classification results.
- :rtype: dict
- """
-
- logging.info(f" Generating the chart {graph.get(u'title', u'')} ...")
-
- incl_tests = graph.get(u"include-tests", u"MRR")
-
- job_name = list(graph[u"data"].keys())[0]
-
- csv_tbl = list()
- res = dict()
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {graph.get(u'type', u'')} "
- f"{graph.get(u'title', u'')}."
- )
-
- if graph.get(u"include", None):
- data = input_data.filter_tests_by_name(
- graph,
- params=[u"type", u"result", u"throughput", u"tags"],
- continue_on_error=True
- )
- else:
- data = input_data.filter_data(
- graph,
- params=[u"type", u"result", u"throughput", u"tags"],
- continue_on_error=True)
-
- if data is None or data.empty:
- logging.error(u"No data.")
- return dict()
-
- chart_data = dict()
- chart_tags = dict()
- for job, job_data in data.items():
- if job != job_name:
- continue
- for index, bld in job_data.items():
- for test_name, test in bld.items():
- if chart_data.get(test_name, None) is None:
- chart_data[test_name] = OrderedDict()
- try:
- if incl_tests == u"MRR":
- rate = test[u"result"][u"receive-rate"]
- stdev = test[u"result"][u"receive-stdev"]
- elif incl_tests == u"NDR":
- rate = test[u"throughput"][u"NDR"][u"LOWER"]
- stdev = float(u"nan")
- elif incl_tests == u"PDR":
- rate = test[u"throughput"][u"PDR"][u"LOWER"]
- stdev = float(u"nan")
- else:
- continue
- chart_data[test_name][int(index)] = {
- u"receive-rate": rate,
- u"receive-stdev": stdev
- }
- chart_tags[test_name] = test.get(u"tags", None)
- except (KeyError, TypeError):
- pass
-
- # Add items to the csv table:
- for tst_name, tst_data in chart_data.items():
- tst_lst = list()
- for bld in builds_dict[job_name]:
- itm = tst_data.get(int(bld), dict())
- # CSIT-1180: Itm will be list, compute stats.
- try:
- tst_lst.append(str(itm.get(u"receive-rate", u"")))
- except AttributeError:
- tst_lst.append(u"")
- csv_tbl.append(f"{tst_name}," + u",".join(tst_lst) + u'\n')
-
- # Generate traces:
- traces = list()
- index = 0
- groups = graph.get(u"groups", None)
- visibility = list()
-
- if groups:
- for group in groups:
- visible = list()
- for tag in group:
- for tst_name, test_data in chart_data.items():
- if not test_data:
- logging.warning(f"No data for the test {tst_name}")
- continue
- if tag not in chart_tags[tst_name]:
- continue
- try:
- trace, rslt = _generate_trending_traces(
- test_data,
- job_name=job_name,
- build_info=build_info,
- name=u'-'.join(tst_name.split(u'.')[-1].
- split(u'-')[2:-1]),
- color=COLORS[index],
- incl_tests=incl_tests
- )
- except IndexError:
- logging.error(f"Out of colors: index: "
- f"{index}, test: {tst_name}")
- index += 1
- continue
- traces.extend(trace)
- visible.extend([True for _ in range(len(trace))])
- res[tst_name] = rslt
- index += 1
- break
- visibility.append(visible)
- else:
- for tst_name, test_data in chart_data.items():
- if not test_data:
- logging.warning(f"No data for the test {tst_name}")
- continue
- try:
- trace, rslt = _generate_trending_traces(
- test_data,
- job_name=job_name,
- build_info=build_info,
- name=u'-'.join(
- tst_name.split(u'.')[-1].split(u'-')[2:-1]),
- color=COLORS[index],
- incl_tests=incl_tests
- )
- except IndexError:
- logging.error(
- f"Out of colors: index: {index}, test: {tst_name}"
- )
- index += 1
- continue
- traces.extend(trace)
- res[tst_name] = rslt
- index += 1
-
- if traces:
- # Generate the chart:
- try:
- layout = deepcopy(graph[u"layout"])
- except KeyError as err:
- logging.error(u"Finished with error: No layout defined")
- logging.error(repr(err))
- return dict()
- if groups:
- show = list()
- for i in range(len(visibility)):
- visible = list()
- for vis_idx, _ in enumerate(visibility):
- for _ in range(len(visibility[vis_idx])):
- visible.append(i == vis_idx)
- show.append(visible)
-
- buttons = list()
- buttons.append(dict(
- label=u"All",
- method=u"update",
- args=[{u"visible": [True for _ in range(len(show[0]))]}, ]
- ))
- for i in range(len(groups)):
- try:
- label = graph[u"group-names"][i]
- except (IndexError, KeyError):
- label = f"Group {i + 1}"
- buttons.append(dict(
- label=label,
- method=u"update",
- args=[{u"visible": show[i]}, ]
- ))
-
- layout[u"updatemenus"] = list([
- dict(
- active=0,
- type=u"dropdown",
- direction=u"down",
- xanchor=u"left",
- yanchor=u"bottom",
- x=-0.12,
- y=1.0,
- buttons=buttons
- )
- ])
-
- name_file = (
- f"{spec.cpta[u'output-file']}/{graph[u'output-file-name']}"
- f"{spec.cpta[u'output-file-type']}")
-
- logging.info(f" Writing the file {name_file} ...")
- plpl = plgo.Figure(data=traces, layout=layout)
- try:
- ploff.plot(plpl, show_link=False, auto_open=False,
- filename=name_file)
- except plerr.PlotlyEmptyDataError:
- logging.warning(u"No data for the plot. Skipped.")
-
- return {u"job_name": job_name, u"csv_table": csv_tbl, u"results": res}
-
- builds_dict = dict()
- for job in spec.input[u"builds"].keys():
- if builds_dict.get(job, None) is None:
- builds_dict[job] = list()
- for build in spec.input[u"builds"][job]:
- status = build[u"status"]
- if status not in (u"failed", u"not found", u"removed", None):
- builds_dict[job].append(str(build[u"build"]))
-
- # Create "build ID": "date" dict:
- build_info = dict()
- tb_tbl = spec.environment.get(u"testbeds", None)
- for job_name, job_data in builds_dict.items():
- if build_info.get(job_name, None) is None:
- build_info[job_name] = OrderedDict()
- for build in job_data:
- testbed = u""
- tb_ip = input_data.metadata(job_name, build).get(u"testbed", u"")
- if tb_ip and tb_tbl:
- testbed = tb_tbl.get(tb_ip, u"")
- build_info[job_name][build] = (
- input_data.metadata(job_name, build).get(u"generated", u""),
- input_data.metadata(job_name, build).get(u"version", u""),
- testbed
- )
-
- anomaly_classifications = dict()
-
- # Create the table header:
- csv_tables = dict()
- for job_name in builds_dict:
- if csv_tables.get(job_name, None) is None:
- csv_tables[job_name] = list()
- header = f"Build Number:,{u','.join(builds_dict[job_name])}\n"
- csv_tables[job_name].append(header)
- build_dates = [x[0] for x in build_info[job_name].values()]
- header = f"Build Date:,{u','.join(build_dates)}\n"
- csv_tables[job_name].append(header)
- versions = [x[1] for x in build_info[job_name].values()]
- header = f"Version:,{u','.join(versions)}\n"
- csv_tables[job_name].append(header)
-
- for chart in spec.cpta[u"plots"]:
- result = _generate_chart(chart)
- if not result:
- continue
-
- csv_tables[result[u"job_name"]].extend(result[u"csv_table"])
-
- if anomaly_classifications.get(result[u"job_name"], None) is None:
- anomaly_classifications[result[u"job_name"]] = dict()
- anomaly_classifications[result[u"job_name"]].update(result[u"results"])
-
- # Write the tables:
- for job_name, csv_table in csv_tables.items():
- file_name = f"{spec.cpta[u'output-file']}/{job_name}-trending"
- with open(f"{file_name}.csv", u"wt") as file_handler:
- file_handler.writelines(csv_table)
-
- txt_table = None
- with open(f"{file_name}.csv", u"rt") as csv_file:
- csv_content = csv.reader(csv_file, delimiter=u',', quotechar=u'"')
- line_nr = 0
- for row in csv_content:
- if txt_table is None:
- txt_table = prettytable.PrettyTable(row)
- else:
- if line_nr > 1:
- for idx, item in enumerate(row):
- try:
- row[idx] = str(round(float(item) / 1000000, 2))
- except ValueError:
- pass
- try:
- txt_table.add_row(row)
- # PrettyTable raises Exception
- except Exception as err:
- logging.warning(
- f"Error occurred while generating TXT table:\n{err}"
- )
- line_nr += 1
- txt_table.align[u"Build Number:"] = u"l"
- with open(f"{file_name}.txt", u"wt") as txt_file:
- txt_file.write(str(txt_table))
-
- # Evaluate result:
- if anomaly_classifications:
- result = u"PASS"
- for job_name, job_data in anomaly_classifications.items():
- file_name = \
- f"{spec.cpta[u'output-file']}/regressions-{job_name}.txt"
- with open(file_name, u'w') as txt_file:
- for test_name, classification in job_data.items():
- if classification == u"regression":
- txt_file.write(test_name + u'\n')
- if classification in (u"regression", u"outlier"):
- result = u"FAIL"
- file_name = \
- f"{spec.cpta[u'output-file']}/progressions-{job_name}.txt"
- with open(file_name, u'w') as txt_file:
- for test_name, classification in job_data.items():
- if classification == u"progression":
- txt_file.write(test_name + u'\n')
- else:
- result = u"FAIL"
-
- logging.info(f"Partial results: {anomaly_classifications}")
- logging.info(f"Result: {result}")
-
- return result
diff --git a/resources/tools/presentation/generator_files.py b/resources/tools/presentation/generator_files.py
deleted file mode 100644
index 9ef6c0aef3..0000000000
--- a/resources/tools/presentation/generator_files.py
+++ /dev/null
@@ -1,439 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Algorithms to generate files.
-"""
-
-import re
-
-from os.path import join
-from collections import OrderedDict
-
-import logging
-
-from pal_utils import get_files, get_rst_title_char
-
-
-RST_INCLUDE_TABLE = (u"\n.. only:: html\n\n"
- u" .. csv-table::\n"
- u" :header-rows: 1\n"
- u" :widths: auto\n"
- u" :align: center\n"
- u" :file: {file_html}\n"
- u"\n.. only:: latex\n\n"
- u"\n .. raw:: latex\n\n"
- u" \\csvautolongtable{{{file_latex}}}\n\n")
-
-REGEX_NIC_SHORT = re.compile(r'(\d*ge\dp\d)(\D*\d*[a-z]*)-')
-
-
-def generate_files(spec, data):
- """Generate all files specified in the specification file.
-
- :param spec: Specification read from the specification file.
- :param data: Data to process.
- :type spec: Specification
- :type data: InputData
- """
-
- generator = {
- u"file_details_split": file_details_split,
- u"file_details_split_html": file_details_split_html,
- u"file_test_results": file_test_results,
- u"file_test_results_html": file_test_results_html
- }
-
- logging.info(u"Generating the files ...")
- for file_spec in spec.files:
- try:
- generator[file_spec[u"algorithm"]](file_spec, data)
- except (NameError, KeyError) as err:
- logging.error(
- f"Probably algorithm {file_spec[u'algorithm']} is not defined: "
- f"{repr(err)}"
- )
- logging.info(u"Done.")
-
-
-def _tests_in_suite(suite_name, tests):
- """Check if the suite includes tests.
-
- :param suite_name: Name of the suite to be checked.
- :param tests: Set of tests
- :type suite_name: str
- :type tests: pandas.Series
- :returns: True if the suite includes tests.
- :rtype: bool
- """
-
- for key in tests.keys():
- if suite_name == tests[key][u"parent"]:
- return True
- return False
-
-
-def file_details_split(file_spec, input_data, frmt=u"rst"):
- """Generate the file(s) with algorithms
- - file_details_split
- specified in the specification file.
-
- :param file_spec: File to generate.
- :param input_data: Data to process.
- :param frmt: Format can be: rst or html
- :type file_spec: pandas.Series
- :type input_data: InputData
- :type frmt: str
- """
-
- fileset_file_name = f"{file_spec[u'output-file']}"
- rst_header = (
- u"\n"
- u".. |br| raw:: html\n\n <br />\n\n\n"
- u".. |prein| raw:: html\n\n <pre>\n\n\n"
- u".. |preout| raw:: html\n\n </pre>\n\n"
- )
- start_lvl = file_spec.get(u"data-start-level", 4)
-
- logging.info(f" Generating the file set {fileset_file_name} ...")
-
- data_sets = file_spec.get(u"data", None)
- if not data_sets:
- logging.error(
- f" No data sets specified for {file_spec[u'output-file']}, exit."
- )
- return
-
- table_sets = file_spec.get(u"dir-tables", None)
- if not table_sets:
- logging.error(
- f" No table sets specified for {file_spec[u'output-file']}, exit."
- )
- return
-
- if len(data_sets) != len(table_sets):
- logging.error(
- f" The number of data sets and the number of table sets for "
- f"{file_spec[u'output-file']} are not equal, exit."
- )
- return
-
- chapters = OrderedDict()
- for data_set, table_set in zip(data_sets, table_sets):
-
- logging.info(f" Processing the table set {table_set}...")
-
- table_lst = None
- if frmt == u"html":
- table_lst = get_files(table_set, u".rst", full_path=True)
- elif frmt == u"rst":
- table_lst = get_files(table_set, u".csv", full_path=True)
-
- if not table_lst:
- logging.error(
- f" No tables to include in {table_set}. Skipping."
- )
- continue
-
- logging.info(u" Creating the test data set...")
- tests = input_data.filter_data(
- element=file_spec,
- params=[u"name", u"parent", u"doc", u"type", u"level"],
- data=data_set,
- data_set=u"tests",
- continue_on_error=True
- )
- if tests.empty:
- continue
- tests = input_data.merge_data(tests)
- tests.sort_index(inplace=True)
-
- logging.info(u" Creating the suite data set...")
- suites = input_data.filter_data(
- element=file_spec,
- data=data_set,
- continue_on_error=True,
- data_set=u"suites"
- )
- if suites.empty:
- continue
- suites = input_data.merge_data(suites)
- suites.sort_index(inplace=True)
-
- logging.info(u" Generating files...")
-
- chapter_l1 = u""
- chapter_l2 = u"-".join(table_set.split(u"_")[-2:])
- for suite_longname, suite in suites.items():
-
- suite_lvl = len(suite_longname.split(u"."))
- if suite_lvl < start_lvl:
- # Not interested in this suite
- continue
-
- if suite_lvl == start_lvl:
- # Our top-level suite
- chapter_l1 = suite_longname.split(u'.')[-1]
- if chapters.get(chapter_l1, None) is None:
- chapters[chapter_l1] = OrderedDict()
- if chapters[chapter_l1].get(chapter_l2, None) is None:
- chapters[chapter_l1][chapter_l2] = OrderedDict()
- continue
-
- if _tests_in_suite(suite[u"name"], tests):
- groups = re.search(REGEX_NIC_SHORT, suite[u"name"])
- nic = groups.group(2) if groups else None
- if nic is None:
- continue
- if chapters[chapter_l1][chapter_l2].get(nic, None) is None:
- chapters[chapter_l1][chapter_l2][nic] = dict(
- rst_file=f"{join(table_set, chapter_l1)}_{nic}.rst".
- replace(u"2n1l-", u""),
- tables=list()
- )
- for idx, tbl_file in enumerate(table_lst):
- if suite[u"name"] in tbl_file:
- chapters[chapter_l1][chapter_l2][nic][u"tables"].append(
- (
- table_lst.pop(idx),
- suite[u"doc"].replace(u'|br|', u'\n\n -')
- )
- )
- break
- titles = {
- # VPP Perf, MRR
- u"container_memif": u"LXC/DRC Container Memif",
- u"crypto": u"IPsec IPv4 Routing",
- u"hoststack": u"Hoststack Testing",
- u"ip4": u"IPv4 Routing",
- u"ip4_tunnels": u"IPv4 Tunnels",
- u"ip6": u"IPv6 Routing",
- u"ip6_tunnels": u"IPv6 Tunnels",
- u"l2": u"L2 Ethernet Switching",
- u"lb": u"LoadBalancer",
- u"nfv_density": u"NFV Service Density",
- u"srv6": u"SRv6 Routing",
- u"vm_vhost": u"KVM VMs vhost-user",
- u"vts": u"Virtual Topology System",
- # VPP Device
- u"interfaces": u"Interfaces",
- u"l2bd": u"L2 Bridge-domain",
- u"l2patch": u"L2 Patch",
- u"l2xc": u"L2 Cross-connect",
- }
-
- order_chapters = file_spec.get(u"order-chapters", None)
-
- if order_chapters:
- order_1 = order_chapters.get(u"level-1", None)
- order_2 = order_chapters.get(u"level-2", None)
- order_3 = order_chapters.get(u"level-3", None)
- if not order_1:
- order_1 = chapters.keys()
- else:
- order_1 = None
- order_2 = None
- order_3 = None
-
- for chapter_l1 in order_1:
- content_l1 = chapters.get(chapter_l1, None)
- if not content_l1:
- continue
- with open(f"{fileset_file_name}/index.rst", u"a") as file_handler:
- file_handler.write(f" {chapter_l1}\n")
- l1_file_name = f"{join(fileset_file_name, chapter_l1)}.rst"
- title = titles.get(chapter_l1, chapter_l1)
- logging.info(f" Generating {title} ...")
- with open(l1_file_name, u"w") as file_handler:
- file_handler.write(
- f"{title}\n"
- f"{get_rst_title_char(1) * len(title)}\n\n"
- f".. toctree::\n\n"
- )
-
- if not order_2:
- order_2 = chapters[chapter_l1].keys()
- for chapter_l2 in order_2:
- content_l2 = content_l1.get(chapter_l2, None)
- if not content_l2:
- continue
- if not order_3:
- order_3 = chapters[chapter_l1][chapter_l2].keys()
- for chapter_l3 in order_3:
- content_l3 = content_l2.get(chapter_l3, None)
- if not content_l3:
- continue
- with open(l1_file_name, u"a") as file_handler:
- item = u"/".join(content_l3[u'rst_file'].split(u'/')[-2:])
- file_handler.write(f" ../{item}\n")
- logging.info(f" Writing the file {content_l3[u'rst_file']}")
- with open(content_l3[u'rst_file'], u"w+") as file_handler:
- title = f"{chapter_l2}-{chapter_l3}"
- file_handler.write(
- f"{rst_header}\n"
- f"{title}\n"
- f"{get_rst_title_char(2) * len(title)}\n"
- )
- for table in content_l3[u'tables']:
- title = table[0].split(u"/")[-1].split(u".")[0]
- file_handler.write(
- f"\n{title}\n"
- f"{get_rst_title_char(3) * len(title)}\n"
- )
- file_handler.write(f"\n{table[1]}\n")
- if frmt == u"html":
- file_handler.write(
- f"\n.. include:: {table[0].split(u'/')[-1]}"
- f"\n"
- )
- elif frmt == u"rst":
- file_handler.write(
- RST_INCLUDE_TABLE.format(
- file_latex=table[0],
- file_html=table[0].split(u"/")[-1])
- )
-
-
-def file_details_split_html(file_spec, input_data):
- """Generate the file(s) with algorithms
- - file_details_split_html
- specified in the specification file.
-
- :param file_spec: File to generate.
- :param input_data: Data to process.
- :type file_spec: pandas.Series
- :type input_data: InputData
- """
- file_details_split(file_spec, input_data, frmt=u"html")
-
-
-def file_test_results(file_spec, input_data, frmt=u"rst"):
- """Generate the file(s) with algorithms
- - file_test_results
- specified in the specification file.
-
- :param file_spec: File to generate.
- :param input_data: Data to process.
- :param frmt: Format can be: rst or html
- :type file_spec: pandas.Series
- :type input_data: InputData
- :type frmt: str
- """
-
- base_file_name = f"{file_spec[u'output-file']}"
- rst_header = (
- u"\n"
- u".. |br| raw:: html\n\n <br />\n\n\n"
- u".. |prein| raw:: html\n\n <pre>\n\n\n"
- u".. |preout| raw:: html\n\n </pre>\n\n"
- )
- start_lvl = file_spec.get(u"data-start-level", 4)
-
- logging.info(f" Generating the file {base_file_name} ...")
-
- if frmt == u"html":
- table_lst = get_files(file_spec[u"dir-tables"], u".rst", full_path=True)
- elif frmt == u"rst":
- table_lst = get_files(file_spec[u"dir-tables"], u".csv", full_path=True)
- else:
- return
- if not table_lst:
- logging.error(
- f" No tables to include in {file_spec[u'dir-tables']}. Skipping."
- )
- return
-
- logging.info(
- f" Creating the tests data set for the "
- f"{file_spec.get(u'type', u'')} {file_spec.get(u'title', u'')}."
- )
-
- tests = input_data.filter_data(
- file_spec,
- params=[u"name", u"parent", u"doc", u"type", u"level"],
- continue_on_error=True
- )
- if tests.empty:
- return
- tests = input_data.merge_data(tests)
-
- suites = input_data.filter_data(
- file_spec,
- continue_on_error=True,
- data_set=u"suites"
- )
- if suites.empty:
- return
- suites = input_data.merge_data(suites)
- suites.sort_index(inplace=True)
-
- file_name = u""
- for suite_longname, suite in suites.items():
-
- suite_lvl = len(suite_longname.split(u"."))
- if suite_lvl < start_lvl:
- # Not interested in this suite
- continue
-
- if suite_lvl == start_lvl:
- # Our top-level suite
- chapter = suite_longname.split(u'.')[-1]
- file_name = f"{base_file_name}/{chapter}.rst"
- logging.info(f" Writing file {file_name}")
- with open(f"{base_file_name}/index.rst", u"a") as file_handler:
- file_handler.write(f" {chapter}\n")
- with open(file_name, u"a") as file_handler:
- file_handler.write(rst_header)
-
- title_line = get_rst_title_char(suite[u"level"] - start_lvl + 2) * \
- len(suite[u"name"])
- with open(file_name, u"a") as file_handler:
- if not (u"-ndrpdr" in suite[u"name"] or
- u"-mrr" in suite[u"name"] or
- u"-dev" in suite[u"name"]):
- file_handler.write(f"\n{suite[u'name']}\n{title_line}\n")
-
- if _tests_in_suite(suite[u"name"], tests):
- for tbl_file in table_lst:
- if suite[u"name"] in tbl_file:
- file_handler.write(
- f"\n{suite[u'name']}\n{title_line}\n"
- )
- file_handler.write(
- f"\n{suite[u'doc']}\n".replace(u'|br|', u'\n\n -')
- )
- if frmt == u"html":
- file_handler.write(
- f"\n.. include:: {tbl_file.split(u'/')[-1]}\n"
- )
- elif frmt == u"rst":
- file_handler.write(
- RST_INCLUDE_TABLE.format(
- file_latex=tbl_file,
- file_html=tbl_file.split(u"/")[-1])
- )
- break
-
- logging.info(u" Done.")
-
-
-def file_test_results_html(file_spec, input_data):
- """Generate the file(s) with algorithms
- - file_test_results_html
- specified in the specification file.
-
- :param file_spec: File to generate.
- :param input_data: Data to process.
- :type file_spec: pandas.Series
- :type input_data: InputData
- """
- file_test_results(file_spec, input_data, frmt=u"html")
diff --git a/resources/tools/presentation/generator_plots.py b/resources/tools/presentation/generator_plots.py
deleted file mode 100644
index dd00939415..0000000000
--- a/resources/tools/presentation/generator_plots.py
+++ /dev/null
@@ -1,1471 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-"""Algorithms to generate plots.
-"""
-
-
-import re
-import logging
-
-import hdrh.histogram
-import hdrh.codec
-import pandas as pd
-import plotly.offline as ploff
-import plotly.graph_objs as plgo
-
-from collections import OrderedDict
-from copy import deepcopy
-from math import log
-
-from plotly.exceptions import PlotlyError
-
-from pal_utils import mean, stdev
-
-
-COLORS = (
- u"#1A1110",
- u"#DA2647",
- u"#214FC6",
- u"#01786F",
- u"#BD8260",
- u"#FFD12A",
- u"#A6E7FF",
- u"#738276",
- u"#C95A49",
- u"#FC5A8D",
- u"#CEC8EF",
- u"#391285",
- u"#6F2DA8",
- u"#FF878D",
- u"#45A27D",
- u"#FFD0B9",
- u"#FD5240",
- u"#DB91EF",
- u"#44D7A8",
- u"#4F86F7",
- u"#84DE02",
- u"#FFCFF1",
- u"#614051"
-)
-
-REGEX_NIC = re.compile(r'(\d*ge\dp\d\D*\d*[a-z]*)-')
-
-
-def generate_plots(spec, data):
- """Generate all plots specified in the specification file.
-
- :param spec: Specification read from the specification file.
- :param data: Data to process.
- :type spec: Specification
- :type data: InputData
- """
-
- generator = {
- u"plot_nf_reconf_box_name": plot_nf_reconf_box_name,
- u"plot_perf_box_name": plot_perf_box_name,
- u"plot_tsa_name": plot_tsa_name,
- u"plot_http_server_perf_box": plot_http_server_perf_box,
- u"plot_nf_heatmap": plot_nf_heatmap,
- u"plot_hdrh_lat_by_percentile": plot_hdrh_lat_by_percentile,
- u"plot_hdrh_lat_by_percentile_x_log": plot_hdrh_lat_by_percentile_x_log
- }
-
- logging.info(u"Generating the plots ...")
- for index, plot in enumerate(spec.plots):
- try:
- logging.info(f" Plot nr {index + 1}: {plot.get(u'title', u'')}")
- plot[u"limits"] = spec.configuration[u"limits"]
- generator[plot[u"algorithm"]](plot, data)
- logging.info(u" Done.")
- except NameError as err:
- logging.error(
- f"Probably algorithm {plot[u'algorithm']} is not defined: "
- f"{repr(err)}"
- )
- logging.info(u"Done.")
-
-
-def plot_hdrh_lat_by_percentile(plot, input_data):
- """Generate the plot(s) with algorithm: plot_hdrh_lat_by_percentile
- specified in the specification file.
-
- :param plot: Plot to generate.
- :param input_data: Data to process.
- :type plot: pandas.Series
- :type input_data: InputData
- """
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {plot.get(u'type', u'')} "
- f"{plot.get(u'title', u'')}."
- )
- if plot.get(u"include", None):
- data = input_data.filter_tests_by_name(
- plot,
- params=[u"name", u"latency", u"parent", u"tags", u"type"]
- )[0][0]
- elif plot.get(u"filter", None):
- data = input_data.filter_data(
- plot,
- params=[u"name", u"latency", u"parent", u"tags", u"type"],
- continue_on_error=True
- )[0][0]
- else:
- job = list(plot[u"data"].keys())[0]
- build = str(plot[u"data"][job][0])
- data = input_data.tests(job, build)
-
- if data is None or len(data) == 0:
- logging.error(u"No data.")
- return
-
- desc = {
- u"LAT0": u"No-load.",
- u"PDR10": u"Low-load, 10% PDR.",
- u"PDR50": u"Mid-load, 50% PDR.",
- u"PDR90": u"High-load, 90% PDR.",
- u"PDR": u"Full-load, 100% PDR.",
- u"NDR10": u"Low-load, 10% NDR.",
- u"NDR50": u"Mid-load, 50% NDR.",
- u"NDR90": u"High-load, 90% NDR.",
- u"NDR": u"Full-load, 100% NDR."
- }
-
- graphs = [
- u"LAT0",
- u"PDR10",
- u"PDR50",
- u"PDR90"
- ]
-
- file_links = plot.get(u"output-file-links", None)
- target_links = plot.get(u"target-links", None)
-
- for test in data:
- try:
- if test[u"type"] not in (u"NDRPDR",):
- logging.warning(f"Invalid test type: {test[u'type']}")
- continue
- name = re.sub(REGEX_NIC, u"", test[u"parent"].
- replace(u'-ndrpdr', u'').replace(u'2n1l-', u''))
- try:
- nic = re.search(REGEX_NIC, test[u"parent"]).group(1)
- except (IndexError, AttributeError, KeyError, ValueError):
- nic = u""
- name_link = f"{nic}-{test[u'name']}".replace(u'-ndrpdr', u'')
-
- logging.info(f" Generating the graph: {name_link}")
-
- fig = plgo.Figure()
- layout = deepcopy(plot[u"layout"])
-
- for color, graph in enumerate(graphs):
- for idx, direction in enumerate((u"direction1", u"direction2")):
- previous_x = 0.0
- xaxis = list()
- yaxis = list()
- hovertext = list()
- try:
- decoded = hdrh.histogram.HdrHistogram.decode(
- test[u"latency"][graph][direction][u"hdrh"]
- )
- except hdrh.codec.HdrLengthException:
- logging.warning(
- f"No data for direction {(u'W-E', u'E-W')[idx % 2]}"
- )
- continue
-
- for item in decoded.get_recorded_iterator():
- percentile = item.percentile_level_iterated_to
- if percentile > 99.9999999:
- continue
- xaxis.append(previous_x)
- yaxis.append(item.value_iterated_to)
- hovertext.append(
- f"<b>{desc[graph]}</b><br>"
- f"Direction: {(u'W-E', u'E-W')[idx % 2]}<br>"
- f"Percentile: {previous_x:.5f}-{percentile:.5f}%<br>"
- f"Latency: {item.value_iterated_to}uSec"
- )
- xaxis.append(percentile)
- yaxis.append(item.value_iterated_to)
- hovertext.append(
- f"<b>{desc[graph]}</b><br>"
- f"Direction: {(u'W-E', u'E-W')[idx % 2]}<br>"
- f"Percentile: {previous_x:.5f}-{percentile:.5f}%<br>"
- f"Latency: {item.value_iterated_to}uSec"
- )
- previous_x = percentile
- fig.add_trace(
- plgo.Scatter(
- x=xaxis,
- y=yaxis,
- name=desc[graph],
- mode=u"lines",
- legendgroup=desc[graph],
- showlegend=bool(idx),
- line=dict(
- color=COLORS[color],
- dash=u"solid",
- width=1 if idx % 2 else 2
- ),
- hovertext=hovertext,
- hoverinfo=u"text"
- )
- )
-
- layout[u"title"][u"text"] = f"<b>Latency:</b> {name}"
- fig.update_layout(layout)
-
- # Create plot
- file_name = f"{plot[u'output-file']}-{name_link}.html"
- logging.info(f" Writing file {file_name}")
-
- try:
- # Export Plot
- ploff.plot(fig, show_link=False, auto_open=False,
- filename=file_name)
- # Add link to the file:
- if file_links and target_links:
- with open(file_links, u"a") as file_handler:
- file_handler.write(
- f"- `{name_link} "
- f"<{target_links}/{file_name.split(u'/')[-1]}>`_\n"
- )
- except FileNotFoundError as err:
- logging.error(
- f"Not possible to write the link to the file "
- f"{file_links}\n{err}"
- )
- except PlotlyError as err:
- logging.error(f" Finished with error: {repr(err)}")
-
- except hdrh.codec.HdrLengthException as err:
- logging.warning(repr(err))
- continue
-
- except (ValueError, KeyError) as err:
- logging.warning(repr(err))
- continue
-
-
-def plot_hdrh_lat_by_percentile_x_log(plot, input_data):
- """Generate the plot(s) with algorithm: plot_hdrh_lat_by_percentile_x_log
- specified in the specification file.
-
- :param plot: Plot to generate.
- :param input_data: Data to process.
- :type plot: pandas.Series
- :type input_data: InputData
- """
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {plot.get(u'type', u'')} "
- f"{plot.get(u'title', u'')}."
- )
- if plot.get(u"include", None):
- data = input_data.filter_tests_by_name(
- plot,
- params=[u"name", u"latency", u"parent", u"tags", u"type"]
- )[0][0]
- elif plot.get(u"filter", None):
- data = input_data.filter_data(
- plot,
- params=[u"name", u"latency", u"parent", u"tags", u"type"],
- continue_on_error=True
- )[0][0]
- else:
- job = list(plot[u"data"].keys())[0]
- build = str(plot[u"data"][job][0])
- data = input_data.tests(job, build)
-
- if data is None or len(data) == 0:
- logging.error(u"No data.")
- return
-
- desc = {
- u"LAT0": u"No-load.",
- u"PDR10": u"Low-load, 10% PDR.",
- u"PDR50": u"Mid-load, 50% PDR.",
- u"PDR90": u"High-load, 90% PDR.",
- u"PDR": u"Full-load, 100% PDR.",
- u"NDR10": u"Low-load, 10% NDR.",
- u"NDR50": u"Mid-load, 50% NDR.",
- u"NDR90": u"High-load, 90% NDR.",
- u"NDR": u"Full-load, 100% NDR."
- }
-
- graphs = [
- u"LAT0",
- u"PDR10",
- u"PDR50",
- u"PDR90"
- ]
-
- file_links = plot.get(u"output-file-links", None)
- target_links = plot.get(u"target-links", None)
-
- for test in data:
- try:
- if test[u"type"] not in (u"NDRPDR",):
- logging.warning(f"Invalid test type: {test[u'type']}")
- continue
- name = re.sub(REGEX_NIC, u"", test[u"parent"].
- replace(u'-ndrpdr', u'').replace(u'2n1l-', u''))
- try:
- nic = re.search(REGEX_NIC, test[u"parent"]).group(1)
- except (IndexError, AttributeError, KeyError, ValueError):
- nic = u""
- name_link = f"{nic}-{test[u'name']}".replace(u'-ndrpdr', u'')
-
- logging.info(f" Generating the graph: {name_link}")
-
- fig = plgo.Figure()
- layout = deepcopy(plot[u"layout"])
- xaxis_max = 0
-
- for color, graph in enumerate(graphs):
- for idx, direction in enumerate((u"direction1", u"direction2")):
- previous_x = 0.0
- prev_perc = 0.0
- xaxis = list()
- yaxis = list()
- hovertext = list()
- try:
- decoded = hdrh.histogram.HdrHistogram.decode(
- test[u"latency"][graph][direction][u"hdrh"]
- )
- except hdrh.codec.HdrLengthException:
- logging.warning(
- f"No data for direction {(u'W-E', u'E-W')[idx % 2]}"
- )
- continue
-
- for item in decoded.get_recorded_iterator():
- percentile = item.percentile_level_iterated_to
- if percentile > 99.9999999:
- continue
- xaxis.append(previous_x)
- yaxis.append(item.value_iterated_to)
- hovertext.append(
- f"<b>{desc[graph]}</b><br>"
- f"Direction: {(u'W-E', u'E-W')[idx % 2]}<br>"
- f"Percentile: {prev_perc:.5f}-{percentile:.5f}%<br>"
- f"Latency: {item.value_iterated_to}uSec"
- )
- next_x = 100.0 / (100.0 - percentile)
- xaxis.append(next_x)
- yaxis.append(item.value_iterated_to)
- hovertext.append(
- f"<b>{desc[graph]}</b><br>"
- f"Direction: {(u'W-E', u'E-W')[idx % 2]}<br>"
- f"Percentile: {prev_perc:.5f}-{percentile:.5f}%<br>"
- f"Latency: {item.value_iterated_to}uSec"
- )
- previous_x = next_x
- prev_perc = percentile
- fig.add_trace(
- plgo.Scatter(
- x=xaxis,
- y=yaxis,
- name=desc[graph],
- mode=u"lines",
- legendgroup=desc[graph],
- showlegend=not(bool(idx)),
- line=dict(
- color=COLORS[color],
- dash=u"solid",
- width=1 if idx % 2 else 2
- ),
- hovertext=hovertext,
- hoverinfo=u"text"
- )
- )
- xaxis_max = max(xaxis) if xaxis_max < max(
- xaxis) else xaxis_max
-
- layout[u"title"][u"text"] = f"<b>Latency:</b> {name}"
- layout[u"xaxis"][u"range"] = [0, int(log(xaxis_max, 10)) + 1]
- fig.update_layout(layout)
-
- # Create plot
- file_name = f"{plot[u'output-file']}-{name_link}.html"
- logging.info(f" Writing file {file_name}")
-
- try:
- # Export Plot
- ploff.plot(fig, show_link=False, auto_open=False,
- filename=file_name)
- # Add link to the file:
- if file_links and target_links:
- with open(file_links, u"a") as file_handler:
- file_handler.write(
- f"- `{name_link} "
- f"<{target_links}/{file_name.split(u'/')[-1]}>`_\n"
- )
- except FileNotFoundError as err:
- logging.error(
- f"Not possible to write the link to the file "
- f"{file_links}\n{err}"
- )
- except PlotlyError as err:
- logging.error(f" Finished with error: {repr(err)}")
-
- except hdrh.codec.HdrLengthException as err:
- logging.warning(repr(err))
- continue
-
- except (ValueError, KeyError) as err:
- logging.warning(repr(err))
- continue
-
-
-def plot_nf_reconf_box_name(plot, input_data):
- """Generate the plot(s) with algorithm: plot_nf_reconf_box_name
- specified in the specification file.
-
- :param plot: Plot to generate.
- :param input_data: Data to process.
- :type plot: pandas.Series
- :type input_data: InputData
- """
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {plot.get(u'type', u'')} "
- f"{plot.get(u'title', u'')}."
- )
- data = input_data.filter_tests_by_name(
- plot, params=[u"result", u"parent", u"tags", u"type"]
- )
- if data is None:
- logging.error(u"No data.")
- return
-
- # Prepare the data for the plot
- y_vals = OrderedDict()
- loss = dict()
- for job in data:
- for build in job:
- for test in build:
- if y_vals.get(test[u"parent"], None) is None:
- y_vals[test[u"parent"]] = list()
- loss[test[u"parent"]] = list()
- try:
- y_vals[test[u"parent"]].append(test[u"result"][u"time"])
- loss[test[u"parent"]].append(test[u"result"][u"loss"])
- except (KeyError, TypeError):
- y_vals[test[u"parent"]].append(None)
-
- # Add None to the lists with missing data
- max_len = 0
- nr_of_samples = list()
- for val in y_vals.values():
- if len(val) > max_len:
- max_len = len(val)
- nr_of_samples.append(len(val))
- for val in y_vals.values():
- if len(val) < max_len:
- val.extend([None for _ in range(max_len - len(val))])
-
- # Add plot traces
- traces = list()
- df_y = pd.DataFrame(y_vals)
- df_y.head()
- for i, col in enumerate(df_y.columns):
- tst_name = re.sub(REGEX_NIC, u"",
- col.lower().replace(u'-ndrpdr', u'').
- replace(u'2n1l-', u''))
-
- traces.append(plgo.Box(
- x=[str(i + 1) + u'.'] * len(df_y[col]),
- y=[y if y else None for y in df_y[col]],
- name=(
- f"{i + 1}. "
- f"({nr_of_samples[i]:02d} "
- f"run{u's' if nr_of_samples[i] > 1 else u''}, "
- f"packets lost average: {mean(loss[col]):.1f}) "
- f"{u'-'.join(tst_name.split(u'-')[3:-2])}"
- ),
- hoverinfo=u"y+name"
- ))
- try:
- # Create plot
- layout = deepcopy(plot[u"layout"])
- layout[u"title"] = f"<b>Time Lost:</b> {layout[u'title']}"
- layout[u"yaxis"][u"title"] = u"<b>Effective Blocked Time [s]</b>"
- layout[u"legend"][u"font"][u"size"] = 14
- layout[u"yaxis"].pop(u"range")
- plpl = plgo.Figure(data=traces, layout=layout)
-
- # Export Plot
- file_type = plot.get(u"output-file-type", u".html")
- logging.info(f" Writing file {plot[u'output-file']}{file_type}.")
- ploff.plot(
- plpl,
- show_link=False,
- auto_open=False,
- filename=f"{plot[u'output-file']}{file_type}"
- )
- except PlotlyError as err:
- logging.error(
- f" Finished with error: {repr(err)}".replace(u"\n", u" ")
- )
- return
-
-
-def plot_perf_box_name(plot, input_data):
- """Generate the plot(s) with algorithm: plot_perf_box_name
- specified in the specification file.
-
- :param plot: Plot to generate.
- :param input_data: Data to process.
- :type plot: pandas.Series
- :type input_data: InputData
- """
-
- # Transform the data
- logging.info(
- f" Creating data set for the {plot.get(u'type', u'')} "
- f"{plot.get(u'title', u'')}."
- )
- data = input_data.filter_tests_by_name(
- plot,
- params=[u"throughput", u"gbps", u"result", u"parent", u"tags", u"type"])
- if data is None:
- logging.error(u"No data.")
- return
-
- # Prepare the data for the plot
- plot_title = plot.get(u"title", u"").lower()
-
- if u"-gbps" in plot_title:
- value = u"gbps"
- multiplier = 1e6
- else:
- value = u"throughput"
- multiplier = 1.0
- y_vals = OrderedDict()
- test_type = u""
-
- for item in plot.get(u"include", tuple()):
- reg_ex = re.compile(str(item).lower())
- for job in data:
- for build in job:
- for test_id, test in build.iteritems():
- if not re.match(reg_ex, str(test_id).lower()):
- continue
- if y_vals.get(test[u"parent"], None) is None:
- y_vals[test[u"parent"]] = list()
- try:
- if test[u"type"] in (u"NDRPDR", u"CPS"):
- test_type = test[u"type"]
-
- if u"-pdr" in plot_title:
- ttype = u"PDR"
- elif u"-ndr" in plot_title:
- ttype = u"NDR"
- else:
- raise RuntimeError(
- u"Wrong title. No information about test "
- u"type. Add '-ndr' or '-pdr' to the test "
- u"title."
- )
-
- y_vals[test[u"parent"]].append(
- test[value][ttype][u"LOWER"] * multiplier
- )
-
- elif test[u"type"] in (u"SOAK",):
- y_vals[test[u"parent"]]. \
- append(test[u"throughput"][u"LOWER"])
- test_type = u"SOAK"
-
- elif test[u"type"] in (u"HOSTSTACK",):
- if u"LDPRELOAD" in test[u"tags"]:
- y_vals[test[u"parent"]].append(
- float(
- test[u"result"][u"bits_per_second"]
- ) / 1e3
- )
- elif u"VPPECHO" in test[u"tags"]:
- y_vals[test[u"parent"]].append(
- (float(
- test[u"result"][u"client"][u"tx_data"]
- ) * 8 / 1e3) /
- ((float(
- test[u"result"][u"client"][u"time"]
- ) +
- float(
- test[u"result"][u"server"][u"time"])
- ) / 2)
- )
- test_type = u"HOSTSTACK"
-
- else:
- continue
-
- except (KeyError, TypeError):
- y_vals[test[u"parent"]].append(None)
-
- # Add None to the lists with missing data
- max_len = 0
- nr_of_samples = list()
- for val in y_vals.values():
- if len(val) > max_len:
- max_len = len(val)
- nr_of_samples.append(len(val))
- for val in y_vals.values():
- if len(val) < max_len:
- val.extend([None for _ in range(max_len - len(val))])
-
- # Add plot traces
- traces = list()
- df_y = pd.DataFrame(y_vals)
- df_y.head()
- y_max = list()
- for i, col in enumerate(df_y.columns):
- tst_name = re.sub(REGEX_NIC, u"",
- col.lower().replace(u'-ndrpdr', u'').
- replace(u'2n1l-', u''))
- kwargs = dict(
- x=[str(i + 1) + u'.'] * len(df_y[col]),
- y=[y / 1e6 if y else None for y in df_y[col]],
- name=(
- f"{i + 1}. "
- f"({nr_of_samples[i]:02d} "
- f"run{u's' if nr_of_samples[i] > 1 else u''}) "
- f"{tst_name}"
- ),
- hoverinfo=u"y+name"
- )
- if test_type in (u"SOAK", ):
- kwargs[u"boxpoints"] = u"all"
-
- traces.append(plgo.Box(**kwargs))
-
- try:
- val_max = max(df_y[col])
- if val_max:
- y_max.append(int(val_max / 1e6) + 2)
- except (ValueError, TypeError) as err:
- logging.error(repr(err))
- continue
-
- try:
- # Create plot
- layout = deepcopy(plot[u"layout"])
- if layout.get(u"title", None):
- if test_type in (u"HOSTSTACK", ):
- layout[u"title"] = f"<b>Bandwidth:</b> {layout[u'title']}"
- elif test_type in (u"CPS", ):
- layout[u"title"] = f"<b>CPS:</b> {layout[u'title']}"
- else:
- layout[u"title"] = f"<b>Throughput:</b> {layout[u'title']}"
- if y_max:
- layout[u"yaxis"][u"range"] = [0, max(y_max)]
- plpl = plgo.Figure(data=traces, layout=layout)
-
- # Export Plot
- logging.info(f" Writing file {plot[u'output-file']}.html.")
- ploff.plot(
- plpl,
- show_link=False,
- auto_open=False,
- filename=f"{plot[u'output-file']}.html"
- )
- except PlotlyError as err:
- logging.error(
- f" Finished with error: {repr(err)}".replace(u"\n", u" ")
- )
- return
-
-
-def plot_tsa_name(plot, input_data):
- """Generate the plot(s) with algorithm:
- plot_tsa_name
- specified in the specification file.
-
- :param plot: Plot to generate.
- :param input_data: Data to process.
- :type plot: pandas.Series
- :type input_data: InputData
- """
-
- # Transform the data
- plot_title = plot.get(u"title", u"")
- logging.info(
- f" Creating data set for the {plot.get(u'type', u'')} {plot_title}."
- )
- data = input_data.filter_tests_by_name(
- plot,
- params=[u"throughput", u"gbps", u"parent", u"tags", u"type"]
- )
- if data is None:
- logging.error(u"No data.")
- return
-
- plot_title = plot_title.lower()
-
- if u"-gbps" in plot_title:
- value = u"gbps"
- h_unit = u"Gbps"
- multiplier = 1e6
- else:
- value = u"throughput"
- h_unit = u"Mpps"
- multiplier = 1.0
-
- y_vals = OrderedDict()
- for item in plot.get(u"include", tuple()):
- reg_ex = re.compile(str(item).lower())
- for job in data:
- for build in job:
- for test_id, test in build.iteritems():
- if re.match(reg_ex, str(test_id).lower()):
- if y_vals.get(test[u"parent"], None) is None:
- y_vals[test[u"parent"]] = {
- u"1": list(),
- u"2": list(),
- u"4": list()
- }
- try:
- if test[u"type"] not in (u"NDRPDR", u"CPS"):
- continue
-
- if u"-pdr" in plot_title:
- ttype = u"PDR"
- elif u"-ndr" in plot_title:
- ttype = u"NDR"
- else:
- continue
-
- if u"1C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"1"].append(
- test[value][ttype][u"LOWER"] * multiplier
- )
- elif u"2C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"2"].append(
- test[value][ttype][u"LOWER"] * multiplier
- )
- elif u"4C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"4"].append(
- test[value][ttype][u"LOWER"] * multiplier
- )
- except (KeyError, TypeError):
- pass
-
- if not y_vals:
- logging.warning(f"No data for the plot {plot.get(u'title', u'')}")
- return
-
- y_1c_max = dict()
- for test_name, test_vals in y_vals.items():
- for key, test_val in test_vals.items():
- if test_val:
- avg_val = sum(test_val) / len(test_val)
- y_vals[test_name][key] = [avg_val, len(test_val)]
- ideal = avg_val / (int(key) * 1e6)
- if test_name not in y_1c_max or ideal > y_1c_max[test_name]:
- y_1c_max[test_name] = ideal
-
- vals = OrderedDict()
- y_max = list()
- nic_limit = 0
- lnk_limit = 0
- pci_limit = 0
- for test_name, test_vals in y_vals.items():
- try:
- if test_vals[u"1"][1]:
- name = re.sub(
- REGEX_NIC,
- u"",
- test_name.replace(u'-ndrpdr', u'').replace(u'2n1l-', u'')
- )
- vals[name] = OrderedDict()
- y_val_1 = test_vals[u"1"][0] / 1e6
- y_val_2 = test_vals[u"2"][0] / 1e6 if test_vals[u"2"][0] \
- else None
- y_val_4 = test_vals[u"4"][0] / 1e6 if test_vals[u"4"][0] \
- else None
-
- vals[name][u"val"] = [y_val_1, y_val_2, y_val_4]
- vals[name][u"rel"] = [1.0, None, None]
- vals[name][u"ideal"] = [
- y_1c_max[test_name],
- y_1c_max[test_name] * 2,
- y_1c_max[test_name] * 4
- ]
- vals[name][u"diff"] = [
- (y_val_1 - y_1c_max[test_name]) * 100 / y_val_1, None, None
- ]
- vals[name][u"count"] = [
- test_vals[u"1"][1],
- test_vals[u"2"][1],
- test_vals[u"4"][1]
- ]
-
- try:
- val_max = max(vals[name][u"val"])
- except ValueError as err:
- logging.error(repr(err))
- continue
- if val_max:
- y_max.append(val_max)
-
- if y_val_2:
- vals[name][u"rel"][1] = round(y_val_2 / y_val_1, 2)
- vals[name][u"diff"][1] = \
- (y_val_2 - vals[name][u"ideal"][1]) * 100 / y_val_2
- if y_val_4:
- vals[name][u"rel"][2] = round(y_val_4 / y_val_1, 2)
- vals[name][u"diff"][2] = \
- (y_val_4 - vals[name][u"ideal"][2]) * 100 / y_val_4
- except IndexError as err:
- logging.warning(f"No data for {test_name}")
- logging.warning(repr(err))
-
- # Limits:
- if u"x520" in test_name:
- limit = plot[u"limits"][u"nic"][u"x520"]
- elif u"x710" in test_name:
- limit = plot[u"limits"][u"nic"][u"x710"]
- elif u"xxv710" in test_name:
- limit = plot[u"limits"][u"nic"][u"xxv710"]
- elif u"xl710" in test_name:
- limit = plot[u"limits"][u"nic"][u"xl710"]
- elif u"x553" in test_name:
- limit = plot[u"limits"][u"nic"][u"x553"]
- elif u"cx556a" in test_name:
- limit = plot[u"limits"][u"nic"][u"cx556a"]
- else:
- limit = 0
- if limit > nic_limit:
- nic_limit = limit
-
- mul = 2 if u"ge2p" in test_name else 1
- if u"10ge" in test_name:
- limit = plot[u"limits"][u"link"][u"10ge"] * mul
- elif u"25ge" in test_name:
- limit = plot[u"limits"][u"link"][u"25ge"] * mul
- elif u"40ge" in test_name:
- limit = plot[u"limits"][u"link"][u"40ge"] * mul
- elif u"100ge" in test_name:
- limit = plot[u"limits"][u"link"][u"100ge"] * mul
- else:
- limit = 0
- if limit > lnk_limit:
- lnk_limit = limit
-
- if u"cx556a" in test_name:
- limit = plot[u"limits"][u"pci"][u"pci-g3-x8"]
- else:
- limit = plot[u"limits"][u"pci"][u"pci-g3-x16"]
- if limit > pci_limit:
- pci_limit = limit
-
- traces = list()
- annotations = list()
- x_vals = [1, 2, 4]
-
- # Limits:
- if u"-gbps" not in plot_title and u"-cps-" not in plot_title:
- nic_limit /= 1e6
- lnk_limit /= 1e6
- pci_limit /= 1e6
- min_limit = min((nic_limit, lnk_limit, pci_limit))
- if nic_limit == min_limit:
- traces.append(plgo.Scatter(
- x=x_vals,
- y=[nic_limit, ] * len(x_vals),
- name=f"NIC: {nic_limit:.2f}Mpps",
- showlegend=False,
- mode=u"lines",
- line=dict(
- dash=u"dot",
- color=COLORS[-1],
- width=1),
- hoverinfo=u"none"
- ))
- annotations.append(dict(
- x=1,
- y=nic_limit,
- xref=u"x",
- yref=u"y",
- xanchor=u"left",
- yanchor=u"bottom",
- text=f"NIC: {nic_limit:.2f}Mpps",
- font=dict(
- size=14,
- color=COLORS[-1],
- ),
- align=u"left",
- showarrow=False
- ))
- y_max.append(nic_limit)
- elif lnk_limit == min_limit:
- traces.append(plgo.Scatter(
- x=x_vals,
- y=[lnk_limit, ] * len(x_vals),
- name=f"Link: {lnk_limit:.2f}Mpps",
- showlegend=False,
- mode=u"lines",
- line=dict(
- dash=u"dot",
- color=COLORS[-1],
- width=1),
- hoverinfo=u"none"
- ))
- annotations.append(dict(
- x=1,
- y=lnk_limit,
- xref=u"x",
- yref=u"y",
- xanchor=u"left",
- yanchor=u"bottom",
- text=f"Link: {lnk_limit:.2f}Mpps",
- font=dict(
- size=14,
- color=COLORS[-1],
- ),
- align=u"left",
- showarrow=False
- ))
- y_max.append(lnk_limit)
- elif pci_limit == min_limit:
- traces.append(plgo.Scatter(
- x=x_vals,
- y=[pci_limit, ] * len(x_vals),
- name=f"PCIe: {pci_limit:.2f}Mpps",
- showlegend=False,
- mode=u"lines",
- line=dict(
- dash=u"dot",
- color=COLORS[-1],
- width=1),
- hoverinfo=u"none"
- ))
- annotations.append(dict(
- x=1,
- y=pci_limit,
- xref=u"x",
- yref=u"y",
- xanchor=u"left",
- yanchor=u"bottom",
- text=f"PCIe: {pci_limit:.2f}Mpps",
- font=dict(
- size=14,
- color=COLORS[-1],
- ),
- align=u"left",
- showarrow=False
- ))
- y_max.append(pci_limit)
-
- # Perfect and measured:
- cidx = 0
- for name, val in vals.items():
- hovertext = list()
- try:
- for idx in range(len(val[u"val"])):
- htext = ""
- if isinstance(val[u"val"][idx], float):
- htext += (
- f"No. of Runs: {val[u'count'][idx]}<br>"
- f"Mean: {val[u'val'][idx]:.2f}{h_unit}<br>"
- )
- if isinstance(val[u"diff"][idx], float):
- htext += f"Diff: {round(val[u'diff'][idx]):.0f}%<br>"
- if isinstance(val[u"rel"][idx], float):
- htext += f"Speedup: {val[u'rel'][idx]:.2f}"
- hovertext.append(htext)
- traces.append(
- plgo.Scatter(
- x=x_vals,
- y=val[u"val"],
- name=name,
- legendgroup=name,
- mode=u"lines+markers",
- line=dict(
- color=COLORS[cidx],
- width=2),
- marker=dict(
- symbol=u"circle",
- size=10
- ),
- text=hovertext,
- hoverinfo=u"text+name"
- )
- )
- traces.append(
- plgo.Scatter(
- x=x_vals,
- y=val[u"ideal"],
- name=f"{name} perfect",
- legendgroup=name,
- showlegend=False,
- mode=u"lines",
- line=dict(
- color=COLORS[cidx],
- width=2,
- dash=u"dash"),
- text=[f"Perfect: {y:.2f}Mpps" for y in val[u"ideal"]],
- hoverinfo=u"text"
- )
- )
- cidx += 1
- except (IndexError, ValueError, KeyError) as err:
- logging.warning(f"No data for {name}\n{repr(err)}")
-
- try:
- # Create plot
- file_type = plot.get(u"output-file-type", u".html")
- logging.info(f" Writing file {plot[u'output-file']}{file_type}.")
- layout = deepcopy(plot[u"layout"])
- if layout.get(u"title", None):
- layout[u"title"] = f"<b>Speedup Multi-core:</b> {layout[u'title']}"
- layout[u"yaxis"][u"range"] = [0, int(max(y_max) * 1.1)]
- layout[u"annotations"].extend(annotations)
- plpl = plgo.Figure(data=traces, layout=layout)
-
- # Export Plot
- ploff.plot(
- plpl,
- show_link=False,
- auto_open=False,
- filename=f"{plot[u'output-file']}{file_type}"
- )
- except PlotlyError as err:
- logging.error(
- f" Finished with error: {repr(err)}".replace(u"\n", u" ")
- )
- return
-
-
-def plot_http_server_perf_box(plot, input_data):
- """Generate the plot(s) with algorithm: plot_http_server_perf_box
- specified in the specification file.
-
- :param plot: Plot to generate.
- :param input_data: Data to process.
- :type plot: pandas.Series
- :type input_data: InputData
- """
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {plot.get(u'type', u'')} "
- f"{plot.get(u'title', u'')}."
- )
- data = input_data.filter_data(plot)
- if data is None:
- logging.error(u"No data.")
- return
-
- # Prepare the data for the plot
- y_vals = dict()
- for job in data:
- for build in job:
- for test in build:
- if y_vals.get(test[u"name"], None) is None:
- y_vals[test[u"name"]] = list()
- try:
- y_vals[test[u"name"]].append(test[u"result"])
- except (KeyError, TypeError):
- y_vals[test[u"name"]].append(None)
-
- # Add None to the lists with missing data
- max_len = 0
- nr_of_samples = list()
- for val in y_vals.values():
- if len(val) > max_len:
- max_len = len(val)
- nr_of_samples.append(len(val))
- for val in y_vals.values():
- if len(val) < max_len:
- val.extend([None for _ in range(max_len - len(val))])
-
- # Add plot traces
- traces = list()
- df_y = pd.DataFrame(y_vals)
- df_y.head()
- for i, col in enumerate(df_y.columns):
- name = \
- f"{i + 1}. " \
- f"({nr_of_samples[i]:02d} " \
- f"run{u's' if nr_of_samples[i] > 1 else u''}) " \
- f"{col.lower().replace(u'-ndrpdr', u'')}"
- if len(name) > 50:
- name_lst = name.split(u'-')
- name = u""
- split_name = True
- for segment in name_lst:
- if (len(name) + len(segment) + 1) > 50 and split_name:
- name += u"<br> "
- split_name = False
- name += segment + u'-'
- name = name[:-1]
-
- traces.append(plgo.Box(x=[str(i + 1) + u'.'] * len(df_y[col]),
- y=df_y[col],
- name=name,
- **plot[u"traces"]))
- try:
- # Create plot
- plpl = plgo.Figure(data=traces, layout=plot[u"layout"])
-
- # Export Plot
- logging.info(
- f" Writing file {plot[u'output-file']}"
- f"{plot[u'output-file-type']}."
- )
- ploff.plot(
- plpl,
- show_link=False,
- auto_open=False,
- filename=f"{plot[u'output-file']}{plot[u'output-file-type']}"
- )
- except PlotlyError as err:
- logging.error(
- f" Finished with error: {repr(err)}".replace(u"\n", u" ")
- )
- return
-
-
-def plot_nf_heatmap(plot, input_data):
- """Generate the plot(s) with algorithm: plot_nf_heatmap
- specified in the specification file.
-
- :param plot: Plot to generate.
- :param input_data: Data to process.
- :type plot: pandas.Series
- :type input_data: InputData
- """
-
- regex_cn = re.compile(r'^(\d*)R(\d*)C$')
- regex_test_name = re.compile(r'^.*-(\d+ch|\d+pl)-'
- r'(\d+mif|\d+vh)-'
- r'(\d+vm\d+t|\d+dcr\d+t|\d+dcr\d+c).*$')
- vals = dict()
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {plot.get(u'type', u'')} "
- f"{plot.get(u'title', u'')}."
- )
- data = input_data.filter_data(plot, continue_on_error=True)
- if data is None or data.empty:
- logging.error(u"No data.")
- return
-
- for job in data:
- for build in job:
- for test in build:
- for tag in test[u"tags"]:
- groups = re.search(regex_cn, tag)
- if groups:
- chain = str(groups.group(1))
- node = str(groups.group(2))
- break
- else:
- continue
- groups = re.search(regex_test_name, test[u"name"])
- if groups and len(groups.groups()) == 3:
- hover_name = (
- f"{str(groups.group(1))}-"
- f"{str(groups.group(2))}-"
- f"{str(groups.group(3))}"
- )
- else:
- hover_name = u""
- if vals.get(chain, None) is None:
- vals[chain] = dict()
- if vals[chain].get(node, None) is None:
- vals[chain][node] = dict(
- name=hover_name,
- vals=list(),
- nr=None,
- mean=None,
- stdev=None
- )
- try:
- if plot[u"include-tests"] == u"MRR":
- result = test[u"result"][u"receive-rate"]
- elif plot[u"include-tests"] == u"PDR":
- result = test[u"throughput"][u"PDR"][u"LOWER"]
- elif plot[u"include-tests"] == u"NDR":
- result = test[u"throughput"][u"NDR"][u"LOWER"]
- else:
- result = None
- except TypeError:
- result = None
-
- if result:
- vals[chain][node][u"vals"].append(result)
-
- if not vals:
- logging.error(u"No data.")
- return
-
- txt_chains = list()
- txt_nodes = list()
- for key_c in vals:
- txt_chains.append(key_c)
- for key_n in vals[key_c].keys():
- txt_nodes.append(key_n)
- if vals[key_c][key_n][u"vals"]:
- vals[key_c][key_n][u"nr"] = len(vals[key_c][key_n][u"vals"])
- vals[key_c][key_n][u"mean"] = \
- round(mean(vals[key_c][key_n][u"vals"]) / 1000000, 1)
- vals[key_c][key_n][u"stdev"] = \
- round(stdev(vals[key_c][key_n][u"vals"]) / 1000000, 1)
- txt_nodes = list(set(txt_nodes))
-
- def sort_by_int(value):
- """Makes possible to sort a list of strings which represent integers.
-
- :param value: Integer as a string.
- :type value: str
- :returns: Integer representation of input parameter 'value'.
- :rtype: int
- """
- return int(value)
-
- txt_chains = sorted(txt_chains, key=sort_by_int)
- txt_nodes = sorted(txt_nodes, key=sort_by_int)
-
- chains = [i + 1 for i in range(len(txt_chains))]
- nodes = [i + 1 for i in range(len(txt_nodes))]
-
- data = [list() for _ in range(len(chains))]
- for chain in chains:
- for node in nodes:
- try:
- val = vals[txt_chains[chain - 1]][txt_nodes[node - 1]][u"mean"]
- except (KeyError, IndexError):
- val = None
- data[chain - 1].append(val)
-
- # Color scales:
- my_green = [[0.0, u"rgb(235, 249, 242)"],
- [1.0, u"rgb(45, 134, 89)"]]
-
- my_blue = [[0.0, u"rgb(236, 242, 248)"],
- [1.0, u"rgb(57, 115, 172)"]]
-
- my_grey = [[0.0, u"rgb(230, 230, 230)"],
- [1.0, u"rgb(102, 102, 102)"]]
-
- hovertext = list()
- annotations = list()
-
- text = (u"Test: {name}<br>"
- u"Runs: {nr}<br>"
- u"Thput: {val}<br>"
- u"StDev: {stdev}")
-
- for chain, _ in enumerate(txt_chains):
- hover_line = list()
- for node, _ in enumerate(txt_nodes):
- if data[chain][node] is not None:
- annotations.append(
- dict(
- x=node+1,
- y=chain+1,
- xref=u"x",
- yref=u"y",
- xanchor=u"center",
- yanchor=u"middle",
- text=str(data[chain][node]),
- font=dict(
- size=14,
- ),
- align=u"center",
- showarrow=False
- )
- )
- hover_line.append(text.format(
- name=vals[txt_chains[chain]][txt_nodes[node]][u"name"],
- nr=vals[txt_chains[chain]][txt_nodes[node]][u"nr"],
- val=data[chain][node],
- stdev=vals[txt_chains[chain]][txt_nodes[node]][u"stdev"]))
- hovertext.append(hover_line)
-
- traces = [
- plgo.Heatmap(
- x=nodes,
- y=chains,
- z=data,
- colorbar=dict(
- title=plot.get(u"z-axis", u""),
- titleside=u"right",
- titlefont=dict(
- size=16
- ),
- tickfont=dict(
- size=16,
- ),
- tickformat=u".1f",
- yanchor=u"bottom",
- y=-0.02,
- len=0.925,
- ),
- showscale=True,
- colorscale=my_green,
- text=hovertext,
- hoverinfo=u"text"
- )
- ]
-
- for idx, item in enumerate(txt_nodes):
- # X-axis, numbers:
- annotations.append(
- dict(
- x=idx+1,
- y=0.05,
- xref=u"x",
- yref=u"y",
- xanchor=u"center",
- yanchor=u"top",
- text=item,
- font=dict(
- size=16,
- ),
- align=u"center",
- showarrow=False
- )
- )
- for idx, item in enumerate(txt_chains):
- # Y-axis, numbers:
- annotations.append(
- dict(
- x=0.35,
- y=idx+1,
- xref=u"x",
- yref=u"y",
- xanchor=u"right",
- yanchor=u"middle",
- text=item,
- font=dict(
- size=16,
- ),
- align=u"center",
- showarrow=False
- )
- )
- # X-axis, title:
- annotations.append(
- dict(
- x=0.55,
- y=-0.15,
- xref=u"paper",
- yref=u"y",
- xanchor=u"center",
- yanchor=u"bottom",
- text=plot.get(u"x-axis", u""),
- font=dict(
- size=16,
- ),
- align=u"center",
- showarrow=False
- )
- )
- # Y-axis, title:
- annotations.append(
- dict(
- x=-0.1,
- y=0.5,
- xref=u"x",
- yref=u"paper",
- xanchor=u"center",
- yanchor=u"middle",
- text=plot.get(u"y-axis", u""),
- font=dict(
- size=16,
- ),
- align=u"center",
- textangle=270,
- showarrow=False
- )
- )
- updatemenus = list([
- dict(
- x=1.0,
- y=0.0,
- xanchor=u"right",
- yanchor=u"bottom",
- direction=u"up",
- buttons=list([
- dict(
- args=[
- {
- u"colorscale": [my_green, ],
- u"reversescale": False
- }
- ],
- label=u"Green",
- method=u"update"
- ),
- dict(
- args=[
- {
- u"colorscale": [my_blue, ],
- u"reversescale": False
- }
- ],
- label=u"Blue",
- method=u"update"
- ),
- dict(
- args=[
- {
- u"colorscale": [my_grey, ],
- u"reversescale": False
- }
- ],
- label=u"Grey",
- method=u"update"
- )
- ])
- )
- ])
-
- try:
- layout = deepcopy(plot[u"layout"])
- except KeyError as err:
- logging.error(f"Finished with error: No layout defined\n{repr(err)}")
- return
-
- layout[u"annotations"] = annotations
- layout[u'updatemenus'] = updatemenus
-
- try:
- # Create plot
- plpl = plgo.Figure(data=traces, layout=layout)
-
- # Export Plot
- logging.info(f" Writing file {plot[u'output-file']}.html")
- ploff.plot(
- plpl,
- show_link=False,
- auto_open=False,
- filename=f"{plot[u'output-file']}.html"
- )
- except PlotlyError as err:
- logging.error(
- f" Finished with error: {repr(err)}".replace(u"\n", u" ")
- )
- return
diff --git a/resources/tools/presentation/generator_report.py b/resources/tools/presentation/generator_report.py
deleted file mode 100644
index 142c264bcd..0000000000
--- a/resources/tools/presentation/generator_report.py
+++ /dev/null
@@ -1,267 +0,0 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
-# 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.
-
-"""Report generation.
-"""
-
-import logging
-import datetime
-
-from shutil import make_archive
-
-from pal_utils import get_files, execute_command, archive_input_data
-
-
-# .css file for the html format of the report
-THEME_OVERRIDES = u"""/* override table width restrictions */
-@media screen and (min-width: 767px) {
- .wy-table-responsive table td, .wy-table-responsive table th {
- white-space: normal !important;
- }
-
- .wy-table-responsive {
- font-size: small;
- margin-bottom: 24px;
- max-width: 100%;
- overflow: visible !important;
- }
-}
-.rst-content blockquote {
- margin-left: 0px;
- line-height: 18px;
- margin-bottom: 0px;
-}
-.wy-menu-vertical a {
- display: inline-block;
- line-height: 18px;
- padding: 0 2em;
- display: block;
- position: relative;
- font-size: 90%;
- color: #d9d9d9
-}
-.wy-menu-vertical li.current a {
- color: gray;
- border-right: solid 1px #c9c9c9;
- padding: 0 3em;
-}
-.wy-menu-vertical li.toctree-l2.current > a {
- background: #c9c9c9;
- padding: 0 3em;
-}
-.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a {
- display: block;
- background: #c9c9c9;
- padding: 0 4em;
-}
-.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a {
- display: block;
- background: #bdbdbd;
- padding: 0 5em;
-}
-.wy-menu-vertical li.on a, .wy-menu-vertical li.current > a {
- color: #404040;
- padding: 0 2em;
- font-weight: bold;
- position: relative;
- background: #fcfcfc;
- border: none;
- border-top-width: medium;
- border-bottom-width: medium;
- border-top-style: none;
- border-bottom-style: none;
- border-top-color: currentcolor;
- border-bottom-color: currentcolor;
- padding-left: 2em -4px;
-}
-"""
-
-# Command to build the html format of the report
-HTML_BUILDER = u'sphinx-build -v -c . -a ' \
- u'-b html -E ' \
- u'-t html ' \
- u'-D release={release} ' \
- u'-D version="Test Report {date}" ' \
- u'{working_dir} ' \
- u'{build_dir}/'
-
-# Command to build the pdf format of the report
-PDF_BUILDER = u'sphinx-build -v -c . -a ' \
- u'-b latex -E ' \
- u'-t latex ' \
- u'-D release={release} ' \
- u'-D version="Test Report {date}" ' \
- u'{working_dir} ' \
- u'{build_dir}'
-
-
-def generate_report(release, spec, report_week):
- """Generate all formats and versions of the report.
-
- :param release: Release string of the product.
- :param spec: Specification read from the specification file.
- :param report_week: Calendar week when the report is published.
- :type release: str
- :type spec: Specification
- :type report_week: str
- """
-
- logging.info(u"Generating the report ...")
-
- report = {
- u"html": generate_html_report,
- u"pdf": generate_pdf_report
- }
-
- for report_format in spec.output[u"format"]:
- report[report_format](release, spec, report_week)
-
- archive_input_data(spec)
-
- logging.info(u"Done.")
-
-
-def generate_html_report(release, spec, report_version):
- """Generate html format of the report.
-
- :param release: Release string of the product.
- :param spec: Specification read from the specification file.
- :param report_version: Version of the report.
- :type release: str
- :type spec: Specification
- :type report_version: str
- """
-
- _ = report_version
-
- logging.info(u" Generating the html report, give me a few minutes, please "
- u"...")
-
- working_dir = spec.environment[u"paths"][u"DIR[WORKING,SRC]"]
-
- execute_command(f"cd {working_dir} && mv -f index.html.template index.rst")
-
- cmd = HTML_BUILDER.format(
- release=release,
- date=datetime.datetime.utcnow().strftime(u'%Y-%m-%d %H:%M UTC'),
- working_dir=working_dir,
- build_dir=spec.environment[u"paths"][u"DIR[BUILD,HTML]"])
- execute_command(cmd)
-
- with open(spec.environment[u"paths"][u"DIR[CSS_PATCH_FILE]"], u"wt") as \
- css_file:
- css_file.write(THEME_OVERRIDES)
-
- with open(spec.environment[u"paths"][u"DIR[CSS_PATCH_FILE2]"], u"wt") as \
- css_file:
- css_file.write(THEME_OVERRIDES)
-
- logging.info(u" Done.")
-
-
-def generate_pdf_report(release, spec, report_week):
- """Generate html format of the report.
-
- :param release: Release string of the product.
- :param spec: Specification read from the specification file.
- :param report_week: Calendar week when the report is published.
- :type release: str
- :type spec: Specification
- :type report_week: str
- """
-
- logging.info(u" Generating the pdf report, give me a few minutes, please "
- u"...")
-
- working_dir = spec.environment[u"paths"][u"DIR[WORKING,SRC]"]
-
- execute_command(f"cd {working_dir} && mv -f index.pdf.template index.rst")
-
- _convert_all_svg_to_pdf(spec.environment[u"paths"][u"DIR[WORKING,SRC]"])
-
- # Convert PyPLOT graphs in HTML format to PDF.
- convert_plots = u"xvfb-run -a wkhtmltopdf {html} {pdf}"
- plots = get_files(spec.environment[u"paths"][u"DIR[STATIC,VPP]"], u"html")
- plots.extend(
- get_files(spec.environment[u"paths"][u"DIR[STATIC,DPDK]"], u"html")
- )
- pdf_plots = list()
- for plot in plots:
- file_name = f"{plot.rsplit(u'.', 1)[0]}.pdf"
- pdf_plots.append(file_name)
- logging.info(f"Converting {plot} to {file_name}")
- execute_command(convert_plots.format(html=plot, pdf=file_name))
-
- # Generate the LaTeX documentation
- build_dir = spec.environment[u"paths"][u"DIR[BUILD,LATEX]"]
- cmd = PDF_BUILDER.format(
- release=release,
- date=datetime.datetime.utcnow().strftime(u'%Y-%m-%d %H:%M UTC'),
- working_dir=working_dir,
- build_dir=build_dir)
- execute_command(cmd)
-
- # Build pdf documentation
- archive_dir = spec.environment[u"paths"][u"DIR[STATIC,ARCH]"]
- cmds = [
- f'cd {build_dir} && '
- f'pdflatex -shell-escape -interaction nonstopmode csit.tex || true',
- f'cd {build_dir} && '
- f'pdflatex -interaction nonstopmode csit.tex || true',
- f'cd {build_dir} && '
- f'cp csit.pdf ../{archive_dir}/csit_{release}.{report_week}.pdf &&'
- f'cp csit.pdf ../{archive_dir}/csit_{release}.pdf'
- ]
-
- for cmd in cmds:
- execute_command(cmd)
-
- # Delete temporary pdf files:
- for plot in pdf_plots:
- execute_command(f"rm {plot}")
-
- logging.info(u" Done.")
-
-
-def archive_report(spec):
- """Archive the report.
-
- :param spec: Specification read from the specification file.
- :type spec: Specification
- """
-
- logging.info(u" Archiving the report ...")
-
- make_archive(
- u"csit.report",
- u"gztar",
- base_dir=spec.environment[u"paths"][u"DIR[BUILD,HTML]"]
- )
-
- logging.info(u" Done.")
-
-
-def _convert_all_svg_to_pdf(path):
- """Convert all svg files on path "path" to pdf.
-
- :param path: Path to the root directory with svg files to convert.
- :type path: str
- """
-
- svg_files = get_files(path, u"svg", full_path=True)
- for svg_file in svg_files:
- pdf_file = f"{svg_file.rsplit(u'.', 1)[0]}.pdf"
- logging.info(f"Converting {svg_file} to {pdf_file}")
- execute_command(
- f"inkscape -D -z --file={svg_file} --export-pdf={pdf_file}"
- )
diff --git a/resources/tools/presentation/generator_tables.py b/resources/tools/presentation/generator_tables.py
deleted file mode 100644
index 0d8b27208c..0000000000
--- a/resources/tools/presentation/generator_tables.py
+++ /dev/null
@@ -1,2078 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-"""Algorithms to generate tables.
-"""
-
-
-import logging
-import csv
-import re
-
-from collections import OrderedDict
-from xml.etree import ElementTree as ET
-from datetime import datetime as dt
-from datetime import timedelta
-from copy import deepcopy
-
-import plotly.graph_objects as go
-import plotly.offline as ploff
-import pandas as pd
-
-from numpy import nan, isnan
-from yaml import load, FullLoader, YAMLError
-
-from pal_utils import mean, stdev, classify_anomalies, \
- convert_csv_to_pretty_txt, relative_change_stdev, relative_change
-
-
-REGEX_NIC = re.compile(r'(\d*ge\dp\d\D*\d*[a-z]*)')
-
-
-def generate_tables(spec, data):
- """Generate all tables specified in the specification file.
-
- :param spec: Specification read from the specification file.
- :param data: Data to process.
- :type spec: Specification
- :type data: InputData
- """
-
- generator = {
- u"table_merged_details": table_merged_details,
- u"table_soak_vs_ndr": table_soak_vs_ndr,
- u"table_perf_trending_dash": table_perf_trending_dash,
- u"table_perf_trending_dash_html": table_perf_trending_dash_html,
- u"table_last_failed_tests": table_last_failed_tests,
- u"table_failed_tests": table_failed_tests,
- u"table_failed_tests_html": table_failed_tests_html,
- u"table_oper_data_html": table_oper_data_html,
- u"table_comparison": table_comparison,
- u"table_weekly_comparison": table_weekly_comparison
- }
-
- logging.info(u"Generating the tables ...")
- for table in spec.tables:
- try:
- if table[u"algorithm"] == u"table_weekly_comparison":
- table[u"testbeds"] = spec.environment.get(u"testbeds", None)
- generator[table[u"algorithm"]](table, data)
- except NameError as err:
- logging.error(
- f"Probably algorithm {table[u'algorithm']} is not defined: "
- f"{repr(err)}"
- )
- logging.info(u"Done.")
-
-
-def table_oper_data_html(table, input_data):
- """Generate the table(s) with algorithm: html_table_oper_data
- specified in the specification file.
-
- :param table: Table to generate.
- :param input_data: Data to process.
- :type table: pandas.Series
- :type input_data: InputData
- """
-
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
- # Transform the data
- logging.info(
- f" Creating the data set for the {table.get(u'type', u'')} "
- f"{table.get(u'title', u'')}."
- )
- data = input_data.filter_data(
- table,
- params=[u"name", u"parent", u"show-run", u"type"],
- continue_on_error=True
- )
- if data.empty:
- return
- data = input_data.merge_data(data)
-
- sort_tests = table.get(u"sort", None)
- if sort_tests:
- args = dict(
- inplace=True,
- ascending=(sort_tests == u"ascending")
- )
- data.sort_index(**args)
-
- suites = input_data.filter_data(
- table,
- continue_on_error=True,
- data_set=u"suites"
- )
- if suites.empty:
- return
- suites = input_data.merge_data(suites)
-
- def _generate_html_table(tst_data):
- """Generate an HTML table with operational data for the given test.
-
- :param tst_data: Test data to be used to generate the table.
- :type tst_data: pandas.Series
- :returns: HTML table with operational data.
- :rtype: str
- """
-
- colors = {
- u"header": u"#7eade7",
- u"empty": u"#ffffff",
- u"body": (u"#e9f1fb", u"#d4e4f7")
- }
-
- tbl = ET.Element(u"table", attrib=dict(width=u"100%", border=u"0"))
-
- trow = ET.SubElement(tbl, u"tr", attrib=dict(bgcolor=colors[u"header"]))
- thead = ET.SubElement(
- trow, u"th", attrib=dict(align=u"left", colspan=u"6")
- )
- thead.text = tst_data[u"name"]
-
- trow = ET.SubElement(tbl, u"tr", attrib=dict(bgcolor=colors[u"empty"]))
- thead = ET.SubElement(
- trow, u"th", attrib=dict(align=u"left", colspan=u"6")
- )
- thead.text = u"\t"
-
- if tst_data.get(u"show-run", u"No Data") == u"No Data":
- trow = ET.SubElement(
- tbl, u"tr", attrib=dict(bgcolor=colors[u"header"])
- )
- tcol = ET.SubElement(
- trow, u"td", attrib=dict(align=u"left", colspan=u"6")
- )
- tcol.text = u"No Data"
-
- trow = ET.SubElement(
- tbl, u"tr", attrib=dict(bgcolor=colors[u"empty"])
- )
- thead = ET.SubElement(
- trow, u"th", attrib=dict(align=u"left", colspan=u"6")
- )
- font = ET.SubElement(
- thead, u"font", attrib=dict(size=u"12px", color=u"#ffffff")
- )
- font.text = u"."
- return str(ET.tostring(tbl, encoding=u"unicode"))
-
- tbl_hdr = (
- u"Name",
- u"Nr of Vectors",
- u"Nr of Packets",
- u"Suspends",
- u"Cycles per Packet",
- u"Average Vector Size"
- )
-
- for dut_data in tst_data[u"show-run"].values():
- trow = ET.SubElement(
- tbl, u"tr", attrib=dict(bgcolor=colors[u"header"])
- )
- tcol = ET.SubElement(
- trow, u"td", attrib=dict(align=u"left", colspan=u"6")
- )
- if dut_data.get(u"threads", None) is None:
- tcol.text = u"No Data"
- continue
-
- bold = ET.SubElement(tcol, u"b")
- bold.text = (
- f"Host IP: {dut_data.get(u'host', '')}, "
- f"Socket: {dut_data.get(u'socket', '')}"
- )
- trow = ET.SubElement(
- tbl, u"tr", attrib=dict(bgcolor=colors[u"empty"])
- )
- thead = ET.SubElement(
- trow, u"th", attrib=dict(align=u"left", colspan=u"6")
- )
- thead.text = u"\t"
-
- for thread_nr, thread in dut_data[u"threads"].items():
- trow = ET.SubElement(
- tbl, u"tr", attrib=dict(bgcolor=colors[u"header"])
- )
- tcol = ET.SubElement(
- trow, u"td", attrib=dict(align=u"left", colspan=u"6")
- )
- bold = ET.SubElement(tcol, u"b")
- bold.text = u"main" if thread_nr == 0 else f"worker_{thread_nr}"
- trow = ET.SubElement(
- tbl, u"tr", attrib=dict(bgcolor=colors[u"header"])
- )
- for idx, col in enumerate(tbl_hdr):
- tcol = ET.SubElement(
- trow, u"td",
- attrib=dict(align=u"right" if idx else u"left")
- )
- font = ET.SubElement(
- tcol, u"font", attrib=dict(size=u"2")
- )
- bold = ET.SubElement(font, u"b")
- bold.text = col
- for row_nr, row in enumerate(thread):
- trow = ET.SubElement(
- tbl, u"tr",
- attrib=dict(bgcolor=colors[u"body"][row_nr % 2])
- )
- for idx, col in enumerate(row):
- tcol = ET.SubElement(
- trow, u"td",
- attrib=dict(align=u"right" if idx else u"left")
- )
- font = ET.SubElement(
- tcol, u"font", attrib=dict(size=u"2")
- )
- if isinstance(col, float):
- font.text = f"{col:.2f}"
- else:
- font.text = str(col)
- trow = ET.SubElement(
- tbl, u"tr", attrib=dict(bgcolor=colors[u"empty"])
- )
- thead = ET.SubElement(
- trow, u"th", attrib=dict(align=u"left", colspan=u"6")
- )
- thead.text = u"\t"
-
- trow = ET.SubElement(tbl, u"tr", attrib=dict(bgcolor=colors[u"empty"]))
- thead = ET.SubElement(
- trow, u"th", attrib=dict(align=u"left", colspan=u"6")
- )
- font = ET.SubElement(
- thead, u"font", attrib=dict(size=u"12px", color=u"#ffffff")
- )
- font.text = u"."
-
- return str(ET.tostring(tbl, encoding=u"unicode"))
-
- for suite in suites.values:
- html_table = str()
- for test_data in data.values:
- if test_data[u"parent"] not in suite[u"name"]:
- continue
- html_table += _generate_html_table(test_data)
- if not html_table:
- continue
- try:
- file_name = f"{table[u'output-file']}{suite[u'name']}.rst"
- with open(f"{file_name}", u'w') as html_file:
- logging.info(f" Writing file: {file_name}")
- html_file.write(u".. raw:: html\n\n\t")
- html_file.write(html_table)
- html_file.write(u"\n\t<p><br><br></p>\n")
- except KeyError:
- logging.warning(u"The output file is not defined.")
- return
- logging.info(u" Done.")
-
-
-def table_merged_details(table, input_data):
- """Generate the table(s) with algorithm: table_merged_details
- specified in the specification file.
-
- :param table: Table to generate.
- :param input_data: Data to process.
- :type table: pandas.Series
- :type input_data: InputData
- """
-
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {table.get(u'type', u'')} "
- f"{table.get(u'title', u'')}."
- )
- data = input_data.filter_data(table, continue_on_error=True)
- data = input_data.merge_data(data)
-
- sort_tests = table.get(u"sort", None)
- if sort_tests:
- args = dict(
- inplace=True,
- ascending=(sort_tests == u"ascending")
- )
- data.sort_index(**args)
-
- suites = input_data.filter_data(
- table, continue_on_error=True, data_set=u"suites")
- suites = input_data.merge_data(suites)
-
- # Prepare the header of the tables
- header = list()
- for column in table[u"columns"]:
- header.append(
- u'"{0}"'.format(str(column[u"title"]).replace(u'"', u'""'))
- )
-
- for suite in suites.values:
- # Generate data
- suite_name = suite[u"name"]
- table_lst = list()
- for test in data.keys():
- if data[test][u"parent"] not in suite_name:
- continue
- row_lst = list()
- for column in table[u"columns"]:
- try:
- col_data = str(data[test][column[
- u"data"].split(u" ")[1]]).replace(u'"', u'""')
- # Do not include tests with "Test Failed" in test message
- if u"Test Failed" in col_data:
- continue
- col_data = col_data.replace(
- u"No Data", u"Not Captured "
- )
- if column[u"data"].split(u" ")[1] in (u"name", ):
- if len(col_data) > 30:
- col_data_lst = col_data.split(u"-")
- half = int(len(col_data_lst) / 2)
- col_data = f"{u'-'.join(col_data_lst[:half])}" \
- f"- |br| " \
- f"{u'-'.join(col_data_lst[half:])}"
- col_data = f" |prein| {col_data} |preout| "
- elif column[u"data"].split(u" ")[1] in (u"msg", ):
- # Temporary solution: remove NDR results from message:
- if bool(table.get(u'remove-ndr', False)):
- try:
- col_data = col_data.split(u" |br| ", 1)[1]
- except IndexError:
- pass
- col_data = f" |prein| {col_data} |preout| "
- elif column[u"data"].split(u" ")[1] in \
- (u"conf-history", u"show-run"):
- col_data = col_data.replace(u" |br| ", u"", 1)
- col_data = f" |prein| {col_data[:-5]} |preout| "
- row_lst.append(f'"{col_data}"')
- except KeyError:
- row_lst.append(u'"Not captured"')
- if len(row_lst) == len(table[u"columns"]):
- table_lst.append(row_lst)
-
- # Write the data to file
- if table_lst:
- separator = u"" if table[u'output-file'].endswith(u"/") else u"_"
- file_name = f"{table[u'output-file']}{separator}{suite_name}.csv"
- logging.info(f" Writing file: {file_name}")
- with open(file_name, u"wt") as file_handler:
- file_handler.write(u",".join(header) + u"\n")
- for item in table_lst:
- file_handler.write(u",".join(item) + u"\n")
-
- logging.info(u" Done.")
-
-
-def _tpc_modify_test_name(test_name, ignore_nic=False):
- """Modify a test name by replacing its parts.
-
- :param test_name: Test name to be modified.
- :param ignore_nic: If True, NIC is removed from TC name.
- :type test_name: str
- :type ignore_nic: bool
- :returns: Modified test name.
- :rtype: str
- """
- test_name_mod = test_name.\
- replace(u"-ndrpdrdisc", u""). \
- replace(u"-ndrpdr", u"").\
- replace(u"-pdrdisc", u""). \
- replace(u"-ndrdisc", u"").\
- replace(u"-pdr", u""). \
- replace(u"-ndr", u""). \
- replace(u"1t1c", u"1c").\
- replace(u"2t1c", u"1c"). \
- replace(u"2t2c", u"2c").\
- replace(u"4t2c", u"2c"). \
- replace(u"4t4c", u"4c").\
- replace(u"8t4c", u"4c")
-
- if ignore_nic:
- return re.sub(REGEX_NIC, u"", test_name_mod)
- return test_name_mod
-
-
-def _tpc_modify_displayed_test_name(test_name):
- """Modify a test name which is displayed in a table by replacing its parts.
-
- :param test_name: Test name to be modified.
- :type test_name: str
- :returns: Modified test name.
- :rtype: str
- """
- return test_name.\
- replace(u"1t1c", u"1c").\
- replace(u"2t1c", u"1c"). \
- replace(u"2t2c", u"2c").\
- replace(u"4t2c", u"2c"). \
- replace(u"4t4c", u"4c").\
- replace(u"8t4c", u"4c")
-
-
-def _tpc_insert_data(target, src, include_tests):
- """Insert src data to the target structure.
-
- :param target: Target structure where the data is placed.
- :param src: Source data to be placed into the target stucture.
- :param include_tests: Which results will be included (MRR, NDR, PDR).
- :type target: list
- :type src: dict
- :type include_tests: str
- """
- try:
- if include_tests == u"MRR":
- target[u"mean"] = src[u"result"][u"receive-rate"]
- target[u"stdev"] = src[u"result"][u"receive-stdev"]
- elif include_tests == u"PDR":
- target[u"data"].append(src[u"throughput"][u"PDR"][u"LOWER"])
- elif include_tests == u"NDR":
- target[u"data"].append(src[u"throughput"][u"NDR"][u"LOWER"])
- except (KeyError, TypeError):
- pass
-
-
-def _tpc_generate_html_table(header, data, out_file_name, legend=u"",
- footnote=u"", sort_data=True, title=u"",
- generate_rst=True):
- """Generate html table from input data with simple sorting possibility.
-
- :param header: Table header.
- :param data: Input data to be included in the table. It is a list of lists.
- Inner lists are rows in the table. All inner lists must be of the same
- length. The length of these lists must be the same as the length of the
- header.
- :param out_file_name: The name (relative or full path) where the
- generated html table is written.
- :param legend: The legend to display below the table.
- :param footnote: The footnote to display below the table (and legend).
- :param sort_data: If True the data sorting is enabled.
- :param title: The table (and file) title.
- :param generate_rst: If True, wrapping rst file is generated.
- :type header: list
- :type data: list of lists
- :type out_file_name: str
- :type legend: str
- :type footnote: str
- :type sort_data: bool
- :type title: str
- :type generate_rst: bool
- """
-
- try:
- idx = header.index(u"Test Case")
- except ValueError:
- idx = 0
- params = {
- u"align-hdr": (
- [u"left", u"right"],
- [u"left", u"left", u"right"],
- [u"left", u"left", u"left", u"right"]
- ),
- u"align-itm": (
- [u"left", u"right"],
- [u"left", u"left", u"right"],
- [u"left", u"left", u"left", u"right"]
- ),
- u"width": ([15, 9], [4, 24, 10], [4, 4, 32, 10])
- }
-
- df_data = pd.DataFrame(data, columns=header)
-
- if sort_data:
- df_sorted = [df_data.sort_values(
- by=[key, header[idx]], ascending=[True, True]
- if key != header[idx] else [False, True]) for key in header]
- df_sorted_rev = [df_data.sort_values(
- by=[key, header[idx]], ascending=[False, True]
- if key != header[idx] else [True, True]) for key in header]
- df_sorted.extend(df_sorted_rev)
- else:
- df_sorted = df_data
-
- fill_color = [[u"#d4e4f7" if idx % 2 else u"#e9f1fb"
- for idx in range(len(df_data))]]
- table_header = dict(
- values=[f"<b>{item.replace(u',', u',<br>')}</b>" for item in header],
- fill_color=u"#7eade7",
- align=params[u"align-hdr"][idx],
- font=dict(
- family=u"Courier New",
- size=12
- )
- )
-
- fig = go.Figure()
-
- if sort_data:
- for table in df_sorted:
- columns = [table.get(col) for col in header]
- fig.add_trace(
- go.Table(
- columnwidth=params[u"width"][idx],
- header=table_header,
- cells=dict(
- values=columns,
- fill_color=fill_color,
- align=params[u"align-itm"][idx],
- font=dict(
- family=u"Courier New",
- size=12
- )
- )
- )
- )
-
- buttons = list()
- menu_items = [f"<b>{itm}</b> (ascending)" for itm in header]
- menu_items.extend([f"<b>{itm}</b> (descending)" for itm in header])
- for idx, hdr in enumerate(menu_items):
- visible = [False, ] * len(menu_items)
- visible[idx] = True
- buttons.append(
- dict(
- label=hdr.replace(u" [Mpps]", u""),
- method=u"update",
- args=[{u"visible": visible}],
- )
- )
-
- fig.update_layout(
- updatemenus=[
- go.layout.Updatemenu(
- type=u"dropdown",
- direction=u"down",
- x=0.0,
- xanchor=u"left",
- y=1.002,
- yanchor=u"bottom",
- active=len(menu_items) - 1,
- buttons=list(buttons)
- )
- ],
- )
- else:
- fig.add_trace(
- go.Table(
- columnwidth=params[u"width"][idx],
- header=table_header,
- cells=dict(
- values=[df_sorted.get(col) for col in header],
- fill_color=fill_color,
- align=params[u"align-itm"][idx],
- font=dict(
- family=u"Courier New",
- size=12
- )
- )
- )
- )
-
- ploff.plot(
- fig,
- show_link=False,
- auto_open=False,
- filename=f"{out_file_name}_in.html"
- )
-
- if not generate_rst:
- return
-
- file_name = out_file_name.split(u"/")[-1]
- if u"vpp" in out_file_name:
- path = u"_tmp/src/vpp_performance_tests/comparisons/"
- else:
- path = u"_tmp/src/dpdk_performance_tests/comparisons/"
- logging.info(f" Writing the HTML file to {path}{file_name}.rst")
- with open(f"{path}{file_name}.rst", u"wt") as rst_file:
- rst_file.write(
- u"\n"
- u".. |br| raw:: html\n\n <br />\n\n\n"
- u".. |prein| raw:: html\n\n <pre>\n\n\n"
- u".. |preout| raw:: html\n\n </pre>\n\n"
- )
- if title:
- rst_file.write(f"{title}\n")
- rst_file.write(f"{u'`' * len(title)}\n\n")
- rst_file.write(
- u".. raw:: html\n\n"
- f' <iframe frameborder="0" scrolling="no" '
- f'width="1600" height="1200" '
- f'src="../..{out_file_name.replace(u"_build", u"")}_in.html">'
- f'</iframe>\n\n'
- )
-
- if legend:
- try:
- itm_lst = legend[1:-2].split(u"\n")
- rst_file.write(
- f"{itm_lst[0]}\n\n- " + u'\n- '.join(itm_lst[1:]) + u"\n\n"
- )
- except IndexError as err:
- logging.error(f"Legend cannot be written to html file\n{err}")
- if footnote:
- try:
- itm_lst = footnote[1:].split(u"\n")
- rst_file.write(
- f"{itm_lst[0]}\n\n- " + u'\n- '.join(itm_lst[1:]) + u"\n\n"
- )
- except IndexError as err:
- logging.error(f"Footnote cannot be written to html file\n{err}")
-
-
-def table_soak_vs_ndr(table, input_data):
- """Generate the table(s) with algorithm: table_soak_vs_ndr
- specified in the specification file.
-
- :param table: Table to generate.
- :param input_data: Data to process.
- :type table: pandas.Series
- :type input_data: InputData
- """
-
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {table.get(u'type', u'')} "
- f"{table.get(u'title', u'')}."
- )
- data = input_data.filter_data(table, continue_on_error=True)
-
- # Prepare the header of the table
- try:
- header = [
- u"Test Case",
- f"Avg({table[u'reference'][u'title']})",
- f"Stdev({table[u'reference'][u'title']})",
- f"Avg({table[u'compare'][u'title']})",
- f"Stdev{table[u'compare'][u'title']})",
- u"Diff",
- u"Stdev(Diff)"
- ]
- header_str = u";".join(header) + u"\n"
- legend = (
- u"\nLegend:\n"
- f"Avg({table[u'reference'][u'title']}): "
- f"Mean value of {table[u'reference'][u'title']} [Mpps] computed "
- f"from a series of runs of the listed tests.\n"
- f"Stdev({table[u'reference'][u'title']}): "
- f"Standard deviation value of {table[u'reference'][u'title']} "
- f"[Mpps] computed from a series of runs of the listed tests.\n"
- f"Avg({table[u'compare'][u'title']}): "
- f"Mean value of {table[u'compare'][u'title']} [Mpps] computed from "
- f"a series of runs of the listed tests.\n"
- f"Stdev({table[u'compare'][u'title']}): "
- f"Standard deviation value of {table[u'compare'][u'title']} [Mpps] "
- f"computed from a series of runs of the listed tests.\n"
- f"Diff({table[u'reference'][u'title']},"
- f"{table[u'compare'][u'title']}): "
- f"Percentage change calculated for mean values.\n"
- u"Stdev(Diff): "
- u"Standard deviation of percentage change calculated for mean "
- u"values."
- )
- except (AttributeError, KeyError) as err:
- logging.error(f"The model is invalid, missing parameter: {repr(err)}")
- return
-
- # Create a list of available SOAK test results:
- tbl_dict = dict()
- for job, builds in table[u"compare"][u"data"].items():
- for build in builds:
- for tst_name, tst_data in data[job][str(build)].items():
- if tst_data[u"type"] == u"SOAK":
- tst_name_mod = tst_name.replace(u"-soak", u"")
- if tbl_dict.get(tst_name_mod, None) is None:
- groups = re.search(REGEX_NIC, tst_data[u"parent"])
- nic = groups.group(0) if groups else u""
- name = (
- f"{nic}-"
- f"{u'-'.join(tst_data[u'name'].split(u'-')[:-1])}"
- )
- tbl_dict[tst_name_mod] = {
- u"name": name,
- u"ref-data": list(),
- u"cmp-data": list()
- }
- try:
- tbl_dict[tst_name_mod][u"cmp-data"].append(
- tst_data[u"throughput"][u"LOWER"])
- except (KeyError, TypeError):
- pass
- tests_lst = tbl_dict.keys()
-
- # Add corresponding NDR test results:
- for job, builds in table[u"reference"][u"data"].items():
- for build in builds:
- for tst_name, tst_data in data[job][str(build)].items():
- tst_name_mod = tst_name.replace(u"-ndrpdr", u"").\
- replace(u"-mrr", u"")
- if tst_name_mod not in tests_lst:
- continue
- try:
- if tst_data[u"type"] not in (u"NDRPDR", u"MRR", u"BMRR"):
- continue
- if table[u"include-tests"] == u"MRR":
- result = (tst_data[u"result"][u"receive-rate"],
- tst_data[u"result"][u"receive-stdev"])
- elif table[u"include-tests"] == u"PDR":
- result = \
- tst_data[u"throughput"][u"PDR"][u"LOWER"]
- elif table[u"include-tests"] == u"NDR":
- result = \
- tst_data[u"throughput"][u"NDR"][u"LOWER"]
- else:
- result = None
- if result is not None:
- tbl_dict[tst_name_mod][u"ref-data"].append(
- result)
- except (KeyError, TypeError):
- continue
-
- tbl_lst = list()
- for tst_name in tbl_dict:
- item = [tbl_dict[tst_name][u"name"], ]
- data_r = tbl_dict[tst_name][u"ref-data"]
- if data_r:
- if table[u"include-tests"] == u"MRR":
- data_r_mean = data_r[0][0]
- data_r_stdev = data_r[0][1]
- else:
- data_r_mean = mean(data_r)
- data_r_stdev = stdev(data_r)
- item.append(round(data_r_mean / 1e6, 1))
- item.append(round(data_r_stdev / 1e6, 1))
- else:
- data_r_mean = None
- data_r_stdev = None
- item.extend([None, None])
- data_c = tbl_dict[tst_name][u"cmp-data"]
- if data_c:
- if table[u"include-tests"] == u"MRR":
- data_c_mean = data_c[0][0]
- data_c_stdev = data_c[0][1]
- else:
- data_c_mean = mean(data_c)
- data_c_stdev = stdev(data_c)
- item.append(round(data_c_mean / 1e6, 1))
- item.append(round(data_c_stdev / 1e6, 1))
- else:
- data_c_mean = None
- data_c_stdev = None
- item.extend([None, None])
- if data_r_mean is not None and data_c_mean is not None:
- delta, d_stdev = relative_change_stdev(
- data_r_mean, data_c_mean, data_r_stdev, data_c_stdev)
- try:
- item.append(round(delta))
- except ValueError:
- item.append(delta)
- try:
- item.append(round(d_stdev))
- except ValueError:
- item.append(d_stdev)
- tbl_lst.append(item)
-
- # Sort the table according to the relative change
- tbl_lst.sort(key=lambda rel: rel[-1], reverse=True)
-
- # Generate csv tables:
- csv_file_name = f"{table[u'output-file']}.csv"
- with open(csv_file_name, u"wt") as file_handler:
- file_handler.write(header_str)
- for test in tbl_lst:
- file_handler.write(u";".join([str(item) for item in test]) + u"\n")
-
- convert_csv_to_pretty_txt(
- csv_file_name, f"{table[u'output-file']}.txt", delimiter=u";"
- )
- with open(f"{table[u'output-file']}.txt", u'a') as file_handler:
- file_handler.write(legend)
-
- # Generate html table:
- _tpc_generate_html_table(
- header,
- tbl_lst,
- table[u'output-file'],
- legend=legend,
- title=table.get(u"title", u"")
- )
-
-
-def table_perf_trending_dash(table, input_data):
- """Generate the table(s) with algorithm:
- table_perf_trending_dash
- specified in the specification file.
-
- :param table: Table to generate.
- :param input_data: Data to process.
- :type table: pandas.Series
- :type input_data: InputData
- """
-
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {table.get(u'type', u'')} "
- f"{table.get(u'title', u'')}."
- )
- data = input_data.filter_data(table, continue_on_error=True)
-
- # Prepare the header of the tables
- header = [
- u"Test Case",
- u"Trend [Mpps]",
- u"Short-Term Change [%]",
- u"Long-Term Change [%]",
- u"Regressions [#]",
- u"Progressions [#]"
- ]
- header_str = u",".join(header) + u"\n"
-
- incl_tests = table.get(u"include-tests", u"MRR")
-
- # Prepare data to the table:
- tbl_dict = dict()
- for job, builds in table[u"data"].items():
- for build in builds:
- for tst_name, tst_data in data[job][str(build)].items():
- if tst_name.lower() in table.get(u"ignore-list", list()):
- continue
- if tbl_dict.get(tst_name, None) is None:
- groups = re.search(REGEX_NIC, tst_data[u"parent"])
- if not groups:
- continue
- nic = groups.group(0)
- tbl_dict[tst_name] = {
- u"name": f"{nic}-{tst_data[u'name']}",
- u"data": OrderedDict()
- }
- try:
- if incl_tests == u"MRR":
- tbl_dict[tst_name][u"data"][str(build)] = \
- tst_data[u"result"][u"receive-rate"]
- elif incl_tests == u"NDR":
- tbl_dict[tst_name][u"data"][str(build)] = \
- tst_data[u"throughput"][u"NDR"][u"LOWER"]
- elif incl_tests == u"PDR":
- tbl_dict[tst_name][u"data"][str(build)] = \
- tst_data[u"throughput"][u"PDR"][u"LOWER"]
- except (TypeError, KeyError):
- pass # No data in output.xml for this test
-
- tbl_lst = list()
- for tst_name in tbl_dict:
- data_t = tbl_dict[tst_name][u"data"]
- if len(data_t) < 2:
- continue
-
- classification_lst, avgs, _ = classify_anomalies(data_t)
-
- win_size = min(len(data_t), table[u"window"])
- long_win_size = min(len(data_t), table[u"long-trend-window"])
-
- try:
- max_long_avg = max(
- [x for x in avgs[-long_win_size:-win_size]
- if not isnan(x)])
- except ValueError:
- max_long_avg = nan
- last_avg = avgs[-1]
- avg_week_ago = avgs[max(-win_size, -len(avgs))]
-
- if isnan(last_avg) or isnan(avg_week_ago) or avg_week_ago == 0.0:
- rel_change_last = nan
- else:
- rel_change_last = round(
- ((last_avg - avg_week_ago) / avg_week_ago) * 1e2, 2)
-
- if isnan(max_long_avg) or isnan(last_avg) or max_long_avg == 0.0:
- rel_change_long = nan
- else:
- rel_change_long = round(
- ((last_avg - max_long_avg) / max_long_avg) * 1e2, 2)
-
- if classification_lst:
- if isnan(rel_change_last) and isnan(rel_change_long):
- continue
- if isnan(last_avg) or isnan(rel_change_last) or \
- isnan(rel_change_long):
- continue
- tbl_lst.append(
- [tbl_dict[tst_name][u"name"],
- round(last_avg / 1e6, 2),
- rel_change_last,
- rel_change_long,
- classification_lst[-win_size+1:].count(u"regression"),
- classification_lst[-win_size+1:].count(u"progression")])
-
- tbl_lst.sort(key=lambda rel: rel[0])
- tbl_lst.sort(key=lambda rel: rel[3])
- tbl_lst.sort(key=lambda rel: rel[2])
-
- tbl_sorted = list()
- for nrr in range(table[u"window"], -1, -1):
- tbl_reg = [item for item in tbl_lst if item[4] == nrr]
- for nrp in range(table[u"window"], -1, -1):
- tbl_out = [item for item in tbl_reg if item[5] == nrp]
- tbl_sorted.extend(tbl_out)
-
- file_name = f"{table[u'output-file']}{table[u'output-file-ext']}"
-
- logging.info(f" Writing file: {file_name}")
- with open(file_name, u"wt") as file_handler:
- file_handler.write(header_str)
- for test in tbl_sorted:
- file_handler.write(u",".join([str(item) for item in test]) + u'\n')
-
- logging.info(f" Writing file: {table[u'output-file']}.txt")
- convert_csv_to_pretty_txt(file_name, f"{table[u'output-file']}.txt")
-
-
-def _generate_url(testbed, test_name):
- """Generate URL to a trending plot from the name of the test case.
-
- :param testbed: The testbed used for testing.
- :param test_name: The name of the test case.
- :type testbed: str
- :type test_name: str
- :returns: The URL to the plot with the trending data for the given test
- case.
- :rtype str
- """
-
- if u"x520" in test_name:
- nic = u"x520"
- elif u"x710" in test_name:
- nic = u"x710"
- elif u"xl710" in test_name:
- nic = u"xl710"
- elif u"xxv710" in test_name:
- nic = u"xxv710"
- elif u"vic1227" in test_name:
- nic = u"vic1227"
- elif u"vic1385" in test_name:
- nic = u"vic1385"
- elif u"x553" in test_name:
- nic = u"x553"
- elif u"cx556" in test_name or u"cx556a" in test_name:
- nic = u"cx556a"
- else:
- nic = u""
-
- if u"64b" in test_name:
- frame_size = u"64b"
- elif u"78b" in test_name:
- frame_size = u"78b"
- elif u"imix" in test_name:
- frame_size = u"imix"
- elif u"9000b" in test_name:
- frame_size = u"9000b"
- elif u"1518b" in test_name:
- frame_size = u"1518b"
- elif u"114b" in test_name:
- frame_size = u"114b"
- else:
- frame_size = u""
-
- if u"1t1c" in test_name or \
- (u"-1c-" in test_name and
- testbed in (u"3n-hsw", u"3n-tsh", u"2n-dnv", u"3n-dnv")):
- cores = u"1t1c"
- elif u"2t2c" in test_name or \
- (u"-2c-" in test_name and
- testbed in (u"3n-hsw", u"3n-tsh", u"2n-dnv", u"3n-dnv")):
- cores = u"2t2c"
- elif u"4t4c" in test_name or \
- (u"-4c-" in test_name and
- testbed in (u"3n-hsw", u"3n-tsh", u"2n-dnv", u"3n-dnv")):
- cores = u"4t4c"
- elif u"2t1c" in test_name or \
- (u"-1c-" in test_name and
- testbed in (u"2n-skx", u"3n-skx", u"2n-clx", u"2n-zn2")):
- cores = u"2t1c"
- elif u"4t2c" in test_name or \
- (u"-2c-" in test_name and
- testbed in (u"2n-skx", u"3n-skx", u"2n-clx", u"2n-zn2")):
- cores = u"4t2c"
- elif u"8t4c" in test_name or \
- (u"-4c-" in test_name and
- testbed in (u"2n-skx", u"3n-skx", u"2n-clx", u"2n-zn2")):
- cores = u"8t4c"
- else:
- cores = u""
-
- if u"testpmd" in test_name:
- driver = u"testpmd"
- elif u"l3fwd" in test_name:
- driver = u"l3fwd"
- elif u"avf" in test_name:
- driver = u"avf"
- elif u"rdma" in test_name:
- driver = u"rdma"
- elif u"dnv" in testbed or u"tsh" in testbed:
- driver = u"ixgbe"
- else:
- driver = u"dpdk"
-
- if u"macip-iacl1s" in test_name:
- bsf = u"features-macip-iacl1"
- elif u"macip-iacl10s" in test_name:
- bsf = u"features-macip-iacl01"
- elif u"macip-iacl50s" in test_name:
- bsf = u"features-macip-iacl50"
- elif u"iacl1s" in test_name:
- bsf = u"features-iacl1"
- elif u"iacl10s" in test_name:
- bsf = u"features-iacl10"
- elif u"iacl50s" in test_name:
- bsf = u"features-iacl50"
- elif u"oacl1s" in test_name:
- bsf = u"features-oacl1"
- elif u"oacl10s" in test_name:
- bsf = u"features-oacl10"
- elif u"oacl50s" in test_name:
- bsf = u"features-oacl50"
- elif u"nat44det" in test_name:
- bsf = u"nat44det-bidir"
- elif u"nat44ed" in test_name and u"udir" in test_name:
- bsf = u"nat44ed-udir"
- elif u"-cps" in test_name and u"ethip4udp" in test_name:
- bsf = u"udp-cps"
- elif u"-cps" in test_name and u"ethip4tcp" in test_name:
- bsf = u"tcp-cps"
- elif u"-pps" in test_name and u"ethip4udp" in test_name:
- bsf = u"udp-pps"
- elif u"-pps" in test_name and u"ethip4tcp" in test_name:
- bsf = u"tcp-pps"
- elif u"udpsrcscale" in test_name:
- bsf = u"features-udp"
- elif u"iacl" in test_name:
- bsf = u"features"
- elif u"policer" in test_name:
- bsf = u"features"
- elif u"adl" in test_name:
- bsf = u"features"
- elif u"cop" in test_name:
- bsf = u"features"
- elif u"nat" in test_name:
- bsf = u"features"
- elif u"macip" in test_name:
- bsf = u"features"
- elif u"scale" in test_name:
- bsf = u"scale"
- elif u"base" in test_name:
- bsf = u"base"
- else:
- bsf = u"base"
-
- if u"114b" in test_name and u"vhost" in test_name:
- domain = u"vts"
- elif u"nat44" in test_name or u"-pps" in test_name or u"-cps" in test_name:
- domain = u"nat44"
- if u"nat44det" in test_name:
- domain += u"-det-bidir"
- else:
- domain += u"-ed"
- if u"udir" in test_name:
- domain += u"-unidir"
- elif u"-ethip4udp-" in test_name:
- domain += u"-udp"
- elif u"-ethip4tcp-" in test_name:
- domain += u"-tcp"
- if u"-cps" in test_name:
- domain += u"-cps"
- elif u"-pps" in test_name:
- domain += u"-pps"
- elif u"testpmd" in test_name or u"l3fwd" in test_name:
- domain = u"dpdk"
- elif u"memif" in test_name:
- domain = u"container_memif"
- elif u"srv6" in test_name:
- domain = u"srv6"
- elif u"vhost" in test_name:
- domain = u"vhost"
- if u"vppl2xc" in test_name:
- driver += u"-vpp"
- else:
- driver += u"-testpmd"
- if u"lbvpplacp" in test_name:
- bsf += u"-link-bonding"
- elif u"ch" in test_name and u"vh" in test_name and u"vm" in test_name:
- domain = u"nf_service_density_vnfc"
- elif u"ch" in test_name and u"mif" in test_name and u"dcr" in test_name:
- domain = u"nf_service_density_cnfc"
- elif u"pl" in test_name and u"mif" in test_name and u"dcr" in test_name:
- domain = u"nf_service_density_cnfp"
- elif u"ipsec" in test_name:
- domain = u"ipsec"
- if u"sw" in test_name:
- bsf += u"-sw"
- elif u"hw" in test_name:
- bsf += u"-hw"
- elif u"ethip4vxlan" in test_name:
- domain = u"ip4_tunnels"
- elif u"ip4base" in test_name or u"ip4scale" in test_name:
- domain = u"ip4"
- elif u"ip6base" in test_name or u"ip6scale" in test_name:
- domain = u"ip6"
- elif u"l2xcbase" in test_name or \
- u"l2xcscale" in test_name or \
- u"l2bdbasemaclrn" in test_name or \
- u"l2bdscale" in test_name or \
- u"l2patch" in test_name:
- domain = u"l2"
- else:
- domain = u""
-
- file_name = u"-".join((domain, testbed, nic)) + u".html#"
- anchor_name = u"-".join((frame_size, cores, bsf, driver))
-
- return file_name + anchor_name
-
-
-def table_perf_trending_dash_html(table, input_data):
- """Generate the table(s) with algorithm:
- table_perf_trending_dash_html specified in the specification
- file.
-
- :param table: Table to generate.
- :param input_data: Data to process.
- :type table: dict
- :type input_data: InputData
- """
-
- _ = input_data
-
- if not table.get(u"testbed", None):
- logging.error(
- f"The testbed is not defined for the table "
- f"{table.get(u'title', u'')}. Skipping."
- )
- return
-
- test_type = table.get(u"test-type", u"MRR")
- if test_type not in (u"MRR", u"NDR", u"PDR"):
- logging.error(
- f"Test type {table.get(u'test-type', u'MRR')} is not defined. "
- f"Skipping."
- )
- return
-
- if test_type in (u"NDR", u"PDR"):
- lnk_dir = u"../ndrpdr_trending/"
- lnk_sufix = f"-{test_type.lower()}"
- else:
- lnk_dir = u"../trending/"
- lnk_sufix = u""
-
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
-
- try:
- with open(table[u"input-file"], u'rt') as csv_file:
- csv_lst = list(csv.reader(csv_file, delimiter=u',', quotechar=u'"'))
- except KeyError:
- logging.warning(u"The input file is not defined.")
- return
- except csv.Error as err:
- logging.warning(
- f"Not possible to process the file {table[u'input-file']}.\n"
- f"{repr(err)}"
- )
- return
-
- # Table:
- dashboard = ET.Element(u"table", attrib=dict(width=u"100%", border=u'0'))
-
- # Table header:
- trow = ET.SubElement(dashboard, u"tr", attrib=dict(bgcolor=u"#7eade7"))
- for idx, item in enumerate(csv_lst[0]):
- alignment = u"left" if idx == 0 else u"center"
- thead = ET.SubElement(trow, u"th", attrib=dict(align=alignment))
- thead.text = item
-
- # Rows:
- colors = {
- u"regression": (
- u"#ffcccc",
- u"#ff9999"
- ),
- u"progression": (
- u"#c6ecc6",
- u"#9fdf9f"
- ),
- u"normal": (
- u"#e9f1fb",
- u"#d4e4f7"
- )
- }
- for r_idx, row in enumerate(csv_lst[1:]):
- if int(row[4]):
- color = u"regression"
- elif int(row[5]):
- color = u"progression"
- else:
- color = u"normal"
- trow = ET.SubElement(
- dashboard, u"tr", attrib=dict(bgcolor=colors[color][r_idx % 2])
- )
-
- # Columns:
- for c_idx, item in enumerate(row):
- tdata = ET.SubElement(
- trow,
- u"td",
- attrib=dict(align=u"left" if c_idx == 0 else u"center")
- )
- # Name:
- if c_idx == 0 and table.get(u"add-links", True):
- ref = ET.SubElement(
- tdata,
- u"a",
- attrib=dict(
- href=f"{lnk_dir}"
- f"{_generate_url(table.get(u'testbed', ''), item)}"
- f"{lnk_sufix}"
- )
- )
- ref.text = item
- else:
- tdata.text = item
- try:
- with open(table[u"output-file"], u'w') as html_file:
- logging.info(f" Writing file: {table[u'output-file']}")
- html_file.write(u".. raw:: html\n\n\t")
- html_file.write(str(ET.tostring(dashboard, encoding=u"unicode")))
- html_file.write(u"\n\t<p><br><br></p>\n")
- except KeyError:
- logging.warning(u"The output file is not defined.")
- return
-
-
-def table_last_failed_tests(table, input_data):
- """Generate the table(s) with algorithm: table_last_failed_tests
- specified in the specification file.
-
- :param table: Table to generate.
- :param input_data: Data to process.
- :type table: pandas.Series
- :type input_data: InputData
- """
-
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {table.get(u'type', u'')} "
- f"{table.get(u'title', u'')}."
- )
-
- data = input_data.filter_data(table, continue_on_error=True)
-
- if data is None or data.empty:
- logging.warning(
- f" No data for the {table.get(u'type', u'')} "
- f"{table.get(u'title', u'')}."
- )
- return
-
- tbl_list = list()
- for job, builds in table[u"data"].items():
- for build in builds:
- build = str(build)
- try:
- version = input_data.metadata(job, build).get(u"version", u"")
- except KeyError:
- logging.error(f"Data for {job}: {build} is not present.")
- return
- tbl_list.append(build)
- tbl_list.append(version)
- failed_tests = list()
- passed = 0
- failed = 0
- for tst_data in data[job][build].values:
- if tst_data[u"status"] != u"FAIL":
- passed += 1
- continue
- failed += 1
- groups = re.search(REGEX_NIC, tst_data[u"parent"])
- if not groups:
- continue
- nic = groups.group(0)
- failed_tests.append(f"{nic}-{tst_data[u'name']}")
- tbl_list.append(str(passed))
- tbl_list.append(str(failed))
- tbl_list.extend(failed_tests)
-
- file_name = f"{table[u'output-file']}{table[u'output-file-ext']}"
- logging.info(f" Writing file: {file_name}")
- with open(file_name, u"wt") as file_handler:
- for test in tbl_list:
- file_handler.write(test + u'\n')
-
-
-def table_failed_tests(table, input_data):
- """Generate the table(s) with algorithm: table_failed_tests
- specified in the specification file.
-
- :param table: Table to generate.
- :param input_data: Data to process.
- :type table: pandas.Series
- :type input_data: InputData
- """
-
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {table.get(u'type', u'')} "
- f"{table.get(u'title', u'')}."
- )
- data = input_data.filter_data(table, continue_on_error=True)
-
- test_type = u"MRR"
- if u"NDRPDR" in table.get(u"filter", list()):
- test_type = u"NDRPDR"
-
- # Prepare the header of the tables
- header = [
- u"Test Case",
- u"Failures [#]",
- u"Last Failure [Time]",
- u"Last Failure [VPP-Build-Id]",
- u"Last Failure [CSIT-Job-Build-Id]"
- ]
-
- # Generate the data for the table according to the model in the table
- # specification
-
- now = dt.utcnow()
- timeperiod = timedelta(int(table.get(u"window", 7)))
-
- tbl_dict = dict()
- for job, builds in table[u"data"].items():
- for build in builds:
- build = str(build)
- for tst_name, tst_data in data[job][build].items():
- if tst_name.lower() in table.get(u"ignore-list", list()):
- continue
- if tbl_dict.get(tst_name, None) is None:
- groups = re.search(REGEX_NIC, tst_data[u"parent"])
- if not groups:
- continue
- nic = groups.group(0)
- tbl_dict[tst_name] = {
- u"name": f"{nic}-{tst_data[u'name']}",
- u"data": OrderedDict()
- }
- try:
- generated = input_data.metadata(job, build).\
- get(u"generated", u"")
- if not generated:
- continue
- then = dt.strptime(generated, u"%Y%m%d %H:%M")
- if (now - then) <= timeperiod:
- tbl_dict[tst_name][u"data"][build] = (
- tst_data[u"status"],
- generated,
- input_data.metadata(job, build).get(u"version",
- u""),
- build
- )
- except (TypeError, KeyError) as err:
- logging.warning(f"tst_name: {tst_name} - err: {repr(err)}")
-
- max_fails = 0
- tbl_lst = list()
- for tst_data in tbl_dict.values():
- fails_nr = 0
- fails_last_date = u""
- fails_last_vpp = u""
- fails_last_csit = u""
- for val in tst_data[u"data"].values():
- if val[0] == u"FAIL":
- fails_nr += 1
- fails_last_date = val[1]
- fails_last_vpp = val[2]
- fails_last_csit = val[3]
- if fails_nr:
- max_fails = fails_nr if fails_nr > max_fails else max_fails
- tbl_lst.append([
- tst_data[u"name"],
- fails_nr,
- fails_last_date,
- fails_last_vpp,
- f"{u'mrr-daily' if test_type == u'MRR' else u'ndrpdr-weekly'}"
- f"-build-{fails_last_csit}"
- ])
-
- tbl_lst.sort(key=lambda rel: rel[2], reverse=True)
- tbl_sorted = list()
- for nrf in range(max_fails, -1, -1):
- tbl_fails = [item for item in tbl_lst if item[1] == nrf]
- tbl_sorted.extend(tbl_fails)
-
- file_name = f"{table[u'output-file']}{table[u'output-file-ext']}"
- logging.info(f" Writing file: {file_name}")
- with open(file_name, u"wt") as file_handler:
- file_handler.write(u",".join(header) + u"\n")
- for test in tbl_sorted:
- file_handler.write(u",".join([str(item) for item in test]) + u'\n')
-
- logging.info(f" Writing file: {table[u'output-file']}.txt")
- convert_csv_to_pretty_txt(file_name, f"{table[u'output-file']}.txt")
-
-
-def table_failed_tests_html(table, input_data):
- """Generate the table(s) with algorithm: table_failed_tests_html
- specified in the specification file.
-
- :param table: Table to generate.
- :param input_data: Data to process.
- :type table: pandas.Series
- :type input_data: InputData
- """
-
- _ = input_data
-
- if not table.get(u"testbed", None):
- logging.error(
- f"The testbed is not defined for the table "
- f"{table.get(u'title', u'')}. Skipping."
- )
- return
-
- test_type = table.get(u"test-type", u"MRR")
- if test_type not in (u"MRR", u"NDR", u"PDR", u"NDRPDR"):
- logging.error(
- f"Test type {table.get(u'test-type', u'MRR')} is not defined. "
- f"Skipping."
- )
- return
-
- if test_type in (u"NDRPDR", u"NDR", u"PDR"):
- lnk_dir = u"../ndrpdr_trending/"
- lnk_sufix = u"-pdr"
- else:
- lnk_dir = u"../trending/"
- lnk_sufix = u""
-
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
-
- try:
- with open(table[u"input-file"], u'rt') as csv_file:
- csv_lst = list(csv.reader(csv_file, delimiter=u',', quotechar=u'"'))
- except KeyError:
- logging.warning(u"The input file is not defined.")
- return
- except csv.Error as err:
- logging.warning(
- f"Not possible to process the file {table[u'input-file']}.\n"
- f"{repr(err)}"
- )
- return
-
- # Table:
- failed_tests = ET.Element(u"table", attrib=dict(width=u"100%", border=u'0'))
-
- # Table header:
- trow = ET.SubElement(failed_tests, u"tr", attrib=dict(bgcolor=u"#7eade7"))
- for idx, item in enumerate(csv_lst[0]):
- alignment = u"left" if idx == 0 else u"center"
- thead = ET.SubElement(trow, u"th", attrib=dict(align=alignment))
- thead.text = item
-
- # Rows:
- colors = (u"#e9f1fb", u"#d4e4f7")
- for r_idx, row in enumerate(csv_lst[1:]):
- background = colors[r_idx % 2]
- trow = ET.SubElement(
- failed_tests, u"tr", attrib=dict(bgcolor=background)
- )
-
- # Columns:
- for c_idx, item in enumerate(row):
- tdata = ET.SubElement(
- trow,
- u"td",
- attrib=dict(align=u"left" if c_idx == 0 else u"center")
- )
- # Name:
- if c_idx == 0 and table.get(u"add-links", True):
- ref = ET.SubElement(
- tdata,
- u"a",
- attrib=dict(
- href=f"{lnk_dir}"
- f"{_generate_url(table.get(u'testbed', ''), item)}"
- f"{lnk_sufix}"
- )
- )
- ref.text = item
- else:
- tdata.text = item
- try:
- with open(table[u"output-file"], u'w') as html_file:
- logging.info(f" Writing file: {table[u'output-file']}")
- html_file.write(u".. raw:: html\n\n\t")
- html_file.write(str(ET.tostring(failed_tests, encoding=u"unicode")))
- html_file.write(u"\n\t<p><br><br></p>\n")
- except KeyError:
- logging.warning(u"The output file is not defined.")
- return
-
-
-def table_comparison(table, input_data):
- """Generate the table(s) with algorithm: table_comparison
- specified in the specification file.
-
- :param table: Table to generate.
- :param input_data: Data to process.
- :type table: pandas.Series
- :type input_data: InputData
- """
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {table.get(u'type', u'')} "
- f"{table.get(u'title', u'')}."
- )
-
- columns = table.get(u"columns", None)
- if not columns:
- logging.error(
- f"No columns specified for {table.get(u'title', u'')}. Skipping."
- )
- return
-
- cols = list()
- for idx, col in enumerate(columns):
- if col.get(u"data-set", None) is None:
- logging.warning(f"No data for column {col.get(u'title', u'')}")
- continue
- tag = col.get(u"tag", None)
- data = input_data.filter_data(
- table,
- params=[u"throughput", u"result", u"name", u"parent", u"tags"],
- data=col[u"data-set"],
- continue_on_error=True
- )
- col_data = {
- u"title": col.get(u"title", f"Column{idx}"),
- u"data": dict()
- }
- for builds in data.values:
- for build in builds:
- for tst_name, tst_data in build.items():
- if tag and tag not in tst_data[u"tags"]:
- continue
- tst_name_mod = \
- _tpc_modify_test_name(tst_name, ignore_nic=True).\
- replace(u"2n1l-", u"")
- if col_data[u"data"].get(tst_name_mod, None) is None:
- name = tst_data[u'name'].rsplit(u'-', 1)[0]
- if u"across testbeds" in table[u"title"].lower() or \
- u"across topologies" in table[u"title"].lower():
- name = _tpc_modify_displayed_test_name(name)
- col_data[u"data"][tst_name_mod] = {
- u"name": name,
- u"replace": True,
- u"data": list(),
- u"mean": None,
- u"stdev": None
- }
- _tpc_insert_data(
- target=col_data[u"data"][tst_name_mod],
- src=tst_data,
- include_tests=table[u"include-tests"]
- )
-
- replacement = col.get(u"data-replacement", None)
- if replacement:
- rpl_data = input_data.filter_data(
- table,
- params=[u"throughput", u"result", u"name", u"parent", u"tags"],
- data=replacement,
- continue_on_error=True
- )
- for builds in rpl_data.values:
- for build in builds:
- for tst_name, tst_data in build.items():
- if tag and tag not in tst_data[u"tags"]:
- continue
- tst_name_mod = \
- _tpc_modify_test_name(tst_name, ignore_nic=True).\
- replace(u"2n1l-", u"")
- if col_data[u"data"].get(tst_name_mod, None) is None:
- name = tst_data[u'name'].rsplit(u'-', 1)[0]
- if u"across testbeds" in table[u"title"].lower() \
- or u"across topologies" in \
- table[u"title"].lower():
- name = _tpc_modify_displayed_test_name(name)
- col_data[u"data"][tst_name_mod] = {
- u"name": name,
- u"replace": False,
- u"data": list(),
- u"mean": None,
- u"stdev": None
- }
- if col_data[u"data"][tst_name_mod][u"replace"]:
- col_data[u"data"][tst_name_mod][u"replace"] = False
- col_data[u"data"][tst_name_mod][u"data"] = list()
- _tpc_insert_data(
- target=col_data[u"data"][tst_name_mod],
- src=tst_data,
- include_tests=table[u"include-tests"]
- )
-
- if table[u"include-tests"] in (u"NDR", u"PDR"):
- for tst_name, tst_data in col_data[u"data"].items():
- if tst_data[u"data"]:
- tst_data[u"mean"] = mean(tst_data[u"data"])
- tst_data[u"stdev"] = stdev(tst_data[u"data"])
-
- cols.append(col_data)
-
- tbl_dict = dict()
- for col in cols:
- for tst_name, tst_data in col[u"data"].items():
- if tbl_dict.get(tst_name, None) is None:
- tbl_dict[tst_name] = {
- "name": tst_data[u"name"]
- }
- tbl_dict[tst_name][col[u"title"]] = {
- u"mean": tst_data[u"mean"],
- u"stdev": tst_data[u"stdev"]
- }
-
- if not tbl_dict:
- logging.warning(f"No data for table {table.get(u'title', u'')}!")
- return
-
- tbl_lst = list()
- for tst_data in tbl_dict.values():
- row = [tst_data[u"name"], ]
- for col in cols:
- row.append(tst_data.get(col[u"title"], None))
- tbl_lst.append(row)
-
- comparisons = table.get(u"comparisons", None)
- rcas = list()
- if comparisons and isinstance(comparisons, list):
- for idx, comp in enumerate(comparisons):
- try:
- col_ref = int(comp[u"reference"])
- col_cmp = int(comp[u"compare"])
- except KeyError:
- logging.warning(u"Comparison: No references defined! Skipping.")
- comparisons.pop(idx)
- continue
- if not (0 < col_ref <= len(cols) and 0 < col_cmp <= len(cols) or
- col_ref == col_cmp):
- logging.warning(f"Wrong values of reference={col_ref} "
- f"and/or compare={col_cmp}. Skipping.")
- comparisons.pop(idx)
- continue
- rca_file_name = comp.get(u"rca-file", None)
- if rca_file_name:
- try:
- with open(rca_file_name, u"r") as file_handler:
- rcas.append(
- {
- u"title": f"RCA{idx + 1}",
- u"data": load(file_handler, Loader=FullLoader)
- }
- )
- except (YAMLError, IOError) as err:
- logging.warning(
- f"The RCA file {rca_file_name} does not exist or "
- f"it is corrupted!"
- )
- logging.debug(repr(err))
- rcas.append(None)
- else:
- rcas.append(None)
- else:
- comparisons = None
-
- tbl_cmp_lst = list()
- if comparisons:
- for row in tbl_lst:
- new_row = deepcopy(row)
- for comp in comparisons:
- ref_itm = row[int(comp[u"reference"])]
- if ref_itm is None and \
- comp.get(u"reference-alt", None) is not None:
- ref_itm = row[int(comp[u"reference-alt"])]
- cmp_itm = row[int(comp[u"compare"])]
- if ref_itm is not None and cmp_itm is not None and \
- ref_itm[u"mean"] is not None and \
- cmp_itm[u"mean"] is not None and \
- ref_itm[u"stdev"] is not None and \
- cmp_itm[u"stdev"] is not None:
- delta, d_stdev = relative_change_stdev(
- ref_itm[u"mean"], cmp_itm[u"mean"],
- ref_itm[u"stdev"], cmp_itm[u"stdev"]
- )
- if delta is None:
- break
- new_row.append({
- u"mean": delta * 1e6,
- u"stdev": d_stdev * 1e6
- })
- else:
- break
- else:
- tbl_cmp_lst.append(new_row)
-
- try:
- tbl_cmp_lst.sort(key=lambda rel: rel[0], reverse=False)
- tbl_cmp_lst.sort(key=lambda rel: rel[-1][u'mean'], reverse=True)
- except TypeError as err:
- logging.warning(f"Empty data element in table\n{tbl_cmp_lst}\n{err}")
-
- tbl_for_csv = list()
- for line in tbl_cmp_lst:
- row = [line[0], ]
- for idx, itm in enumerate(line[1:]):
- if itm is None or not isinstance(itm, dict) or\
- itm.get(u'mean', None) is None or \
- itm.get(u'stdev', None) is None:
- row.append(u"NT")
- row.append(u"NT")
- else:
- row.append(round(float(itm[u'mean']) / 1e6, 3))
- row.append(round(float(itm[u'stdev']) / 1e6, 3))
- for rca in rcas:
- if rca is None:
- continue
- rca_nr = rca[u"data"].get(row[0], u"-")
- row.append(f"[{rca_nr}]" if rca_nr != u"-" else u"-")
- tbl_for_csv.append(row)
-
- header_csv = [u"Test Case", ]
- for col in cols:
- header_csv.append(f"Avg({col[u'title']})")
- header_csv.append(f"Stdev({col[u'title']})")
- for comp in comparisons:
- header_csv.append(
- f"Avg({comp.get(u'title', u'')})"
- )
- header_csv.append(
- f"Stdev({comp.get(u'title', u'')})"
- )
- for rca in rcas:
- if rca:
- header_csv.append(rca[u"title"])
-
- legend_lst = table.get(u"legend", None)
- if legend_lst is None:
- legend = u""
- else:
- legend = u"\n" + u"\n".join(legend_lst) + u"\n"
-
- footnote = u""
- if rcas and any(rcas):
- footnote += u"\nRoot Cause Analysis:\n"
- for rca in rcas:
- if rca:
- footnote += f"{rca[u'data'].get(u'footnote', u'')}\n"
-
- csv_file_name = f"{table[u'output-file']}-csv.csv"
- with open(csv_file_name, u"wt", encoding='utf-8') as file_handler:
- file_handler.write(
- u",".join([f'"{itm}"' for itm in header_csv]) + u"\n"
- )
- for test in tbl_for_csv:
- file_handler.write(
- u",".join([f'"{item}"' for item in test]) + u"\n"
- )
- if legend_lst:
- for item in legend_lst:
- file_handler.write(f'"{item}"\n')
- if footnote:
- for itm in footnote.split(u"\n"):
- file_handler.write(f'"{itm}"\n')
-
- tbl_tmp = list()
- max_lens = [0, ] * len(tbl_cmp_lst[0])
- for line in tbl_cmp_lst:
- row = [line[0], ]
- for idx, itm in enumerate(line[1:]):
- if itm is None or not isinstance(itm, dict) or \
- itm.get(u'mean', None) is None or \
- itm.get(u'stdev', None) is None:
- new_itm = u"NT"
- else:
- if idx < len(cols):
- new_itm = (
- f"{round(float(itm[u'mean']) / 1e6, 1)} "
- f"\u00B1{round(float(itm[u'stdev']) / 1e6, 1)}".
- replace(u"nan", u"NaN")
- )
- else:
- new_itm = (
- f"{round(float(itm[u'mean']) / 1e6, 1):+} "
- f"\u00B1{round(float(itm[u'stdev']) / 1e6, 1)}".
- replace(u"nan", u"NaN")
- )
- if len(new_itm.rsplit(u" ", 1)[-1]) > max_lens[idx]:
- max_lens[idx] = len(new_itm.rsplit(u" ", 1)[-1])
- row.append(new_itm)
-
- tbl_tmp.append(row)
-
- header = [u"Test Case", ]
- header.extend([col[u"title"] for col in cols])
- header.extend([comp.get(u"title", u"") for comp in comparisons])
-
- tbl_final = list()
- for line in tbl_tmp:
- row = [line[0], ]
- for idx, itm in enumerate(line[1:]):
- if itm in (u"NT", u"NaN"):
- row.append(itm)
- continue
- itm_lst = itm.rsplit(u"\u00B1", 1)
- itm_lst[-1] = \
- f"{u' ' * (max_lens[idx] - len(itm_lst[-1]))}{itm_lst[-1]}"
- itm_str = u"\u00B1".join(itm_lst)
-
- if idx >= len(cols):
- # Diffs
- rca = rcas[idx - len(cols)]
- if rca:
- # Add rcas to diffs
- rca_nr = rca[u"data"].get(row[0], None)
- if rca_nr:
- hdr_len = len(header[idx + 1]) - 1
- if hdr_len < 19:
- hdr_len = 19
- rca_nr = f"[{rca_nr}]"
- itm_str = (
- f"{u' ' * (4 - len(rca_nr))}{rca_nr}"
- f"{u' ' * (hdr_len - 4 - len(itm_str))}"
- f"{itm_str}"
- )
- row.append(itm_str)
- tbl_final.append(row)
-
- # Generate csv tables:
- csv_file_name = f"{table[u'output-file']}.csv"
- logging.info(f" Writing the file {csv_file_name}")
- with open(csv_file_name, u"wt", encoding='utf-8') as file_handler:
- file_handler.write(u";".join(header) + u"\n")
- for test in tbl_final:
- file_handler.write(u";".join([str(item) for item in test]) + u"\n")
-
- # Generate txt table:
- txt_file_name = f"{table[u'output-file']}.txt"
- logging.info(f" Writing the file {txt_file_name}")
- convert_csv_to_pretty_txt(csv_file_name, txt_file_name, delimiter=u";")
-
- with open(txt_file_name, u'a', encoding='utf-8') as file_handler:
- file_handler.write(legend)
- file_handler.write(footnote)
-
- # Generate html table:
- _tpc_generate_html_table(
- header,
- tbl_final,
- table[u'output-file'],
- legend=legend,
- footnote=footnote,
- sort_data=False,
- title=table.get(u"title", u"")
- )
-
-
-def table_weekly_comparison(table, in_data):
- """Generate the table(s) with algorithm: table_weekly_comparison
- specified in the specification file.
-
- :param table: Table to generate.
- :param in_data: Data to process.
- :type table: pandas.Series
- :type in_data: InputData
- """
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {table.get(u'type', u'')} "
- f"{table.get(u'title', u'')}."
- )
-
- incl_tests = table.get(u"include-tests", None)
- if incl_tests not in (u"NDR", u"PDR"):
- logging.error(f"Wrong tests to include specified ({incl_tests}).")
- return
-
- nr_cols = table.get(u"nr-of-data-columns", None)
- if not nr_cols or nr_cols < 2:
- logging.error(
- f"No columns specified for {table.get(u'title', u'')}. Skipping."
- )
- return
-
- data = in_data.filter_data(
- table,
- params=[u"throughput", u"result", u"name", u"parent", u"tags"],
- continue_on_error=True
- )
-
- header = [
- [u"VPP Version", ],
- [u"Start Timestamp", ],
- [u"CSIT Build", ],
- [u"CSIT Testbed", ]
- ]
- tbl_dict = dict()
- idx = 0
- tb_tbl = table.get(u"testbeds", None)
- for job_name, job_data in data.items():
- for build_nr, build in job_data.items():
- if idx >= nr_cols:
- break
- if build.empty:
- continue
-
- tb_ip = in_data.metadata(job_name, build_nr).get(u"testbed", u"")
- if tb_ip and tb_tbl:
- testbed = tb_tbl.get(tb_ip, u"")
- else:
- testbed = u""
- header[2].insert(1, build_nr)
- header[3].insert(1, testbed)
- header[1].insert(
- 1, in_data.metadata(job_name, build_nr).get(u"generated", u"")
- )
- header[0].insert(
- 1, in_data.metadata(job_name, build_nr).get(u"version", u"")
- )
-
- for tst_name, tst_data in build.items():
- tst_name_mod = \
- _tpc_modify_test_name(tst_name).replace(u"2n1l-", u"")
- if not tbl_dict.get(tst_name_mod, None):
- tbl_dict[tst_name_mod] = dict(
- name=tst_data[u'name'].rsplit(u'-', 1)[0],
- )
- try:
- tbl_dict[tst_name_mod][-idx - 1] = \
- tst_data[u"throughput"][incl_tests][u"LOWER"]
- except (TypeError, IndexError, KeyError, ValueError):
- pass
- idx += 1
-
- if idx < nr_cols:
- logging.error(u"Not enough data to build the table! Skipping")
- return
-
- cmp_dict = dict()
- for idx, cmp in enumerate(table.get(u"comparisons", list())):
- idx_ref = cmp.get(u"reference", None)
- idx_cmp = cmp.get(u"compare", None)
- if idx_ref is None or idx_cmp is None:
- continue
- header[0].append(
- f"Diff({header[0][idx_ref - idx].split(u'~')[-1]} vs "
- f"{header[0][idx_cmp - idx].split(u'~')[-1]})"
- )
- header[1].append(u"")
- header[2].append(u"")
- header[3].append(u"")
- for tst_name, tst_data in tbl_dict.items():
- if not cmp_dict.get(tst_name, None):
- cmp_dict[tst_name] = list()
- ref_data = tst_data.get(idx_ref, None)
- cmp_data = tst_data.get(idx_cmp, None)
- if ref_data is None or cmp_data is None:
- cmp_dict[tst_name].append(float(u'nan'))
- else:
- cmp_dict[tst_name].append(
- relative_change(ref_data, cmp_data)
- )
-
- tbl_lst_none = list()
- tbl_lst = list()
- for tst_name, tst_data in tbl_dict.items():
- itm_lst = [tst_data[u"name"], ]
- for idx in range(nr_cols):
- item = tst_data.get(-idx - 1, None)
- if item is None:
- itm_lst.insert(1, None)
- else:
- itm_lst.insert(1, round(item / 1e6, 1))
- itm_lst.extend(
- [
- None if itm is None else round(itm, 1)
- for itm in cmp_dict[tst_name]
- ]
- )
- if str(itm_lst[-1]) == u"nan" or itm_lst[-1] is None:
- tbl_lst_none.append(itm_lst)
- else:
- tbl_lst.append(itm_lst)
-
- tbl_lst_none.sort(key=lambda rel: rel[0], reverse=False)
- tbl_lst.sort(key=lambda rel: rel[0], reverse=False)
- tbl_lst.sort(key=lambda rel: rel[-1], reverse=False)
- tbl_lst.extend(tbl_lst_none)
-
- # Generate csv table:
- csv_file_name = f"{table[u'output-file']}.csv"
- logging.info(f" Writing the file {csv_file_name}")
- with open(csv_file_name, u"wt", encoding='utf-8') as file_handler:
- for hdr in header:
- file_handler.write(u",".join(hdr) + u"\n")
- for test in tbl_lst:
- file_handler.write(u",".join(
- [
- str(item).replace(u"None", u"-").replace(u"nan", u"-").
- replace(u"null", u"-") for item in test
- ]
- ) + u"\n")
-
- txt_file_name = f"{table[u'output-file']}.txt"
- logging.info(f" Writing the file {txt_file_name}")
- convert_csv_to_pretty_txt(csv_file_name, txt_file_name, delimiter=u",")
-
- # Reorganize header in txt table
- txt_table = list()
- with open(txt_file_name, u"rt", encoding='utf-8') as file_handler:
- for line in file_handler:
- txt_table.append(line)
- try:
- txt_table.insert(5, txt_table.pop(2))
- with open(txt_file_name, u"wt", encoding='utf-8') as file_handler:
- file_handler.writelines(txt_table)
- except IndexError:
- pass
-
- # Generate html table:
- hdr_html = [
- u"<br>".join(row) for row in zip(*header)
- ]
- _tpc_generate_html_table(
- hdr_html,
- tbl_lst,
- table[u'output-file'],
- sort_data=True,
- title=table.get(u"title", u""),
- generate_rst=False
- )
diff --git a/resources/tools/presentation/ignored_tcs.yaml b/resources/tools/presentation/ignored_tcs.yaml
deleted file mode 100644
index 3397ac83cf..0000000000
--- a/resources/tools/presentation/ignored_tcs.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-# List of ignored test cases.
-#
-# Structure:
-#
-# - TC_1
-# - TC_2
-# ...
-# - TC_n
-#
-# All TC names are the long names. The list of ignored test cases is converted
-# to lowercase when loaded.
-
-# Wrong NIC name in the long name, wrong tag used (NIC_Intel-X710 instead of
-# NIC_Intel-XL710), from build 239 changed to NIC_Intel-XL710 but data is
-# inconsistent.
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc04-IMIX-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc05-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc08-IMIX-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc09-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc12-IMIX-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc01-64B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc02-64B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc03-64B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc04-1518B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc05-1518B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc06-1518B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc07-9000B-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc08-9000B-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc09-9000B-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc10-IMIX-1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc11-IMIX-2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
-- tests.vpp.perf.vm vhost.40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.tc12-IMIX-4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr
diff --git a/resources/tools/presentation/input_data_files.py b/resources/tools/presentation/input_data_files.py
deleted file mode 100644
index 8b941f2f94..0000000000
--- a/resources/tools/presentation/input_data_files.py
+++ /dev/null
@@ -1,295 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Inputs
-Download all data.
-"""
-
-import re
-import logging
-import gzip
-
-from os import rename, mkdir
-from os.path import join
-from http.client import responses
-from zipfile import ZipFile, is_zipfile, BadZipfile
-
-import requests
-
-from requests.adapters import HTTPAdapter, Retry
-from requests.exceptions import RequestException
-from requests import codes
-
-from pal_errors import PresentationError
-
-
-# Chunk size used for file download
-CHUNK_SIZE = 512
-
-# Separator used in file names
-SEPARATOR = u"__"
-
-REGEX_RELEASE = re.compile(r'(\D*)(\d{4}|master)(\D*)')
-
-
-def _download_file(url, file_name, arch=False):
- """Download a file with input data.
-
- :param url: URL to the file to download.
- :param file_name: Name of file to download.
- :param arch: If True, also .gz file is downloaded
- :type url: str
- :type file_name: str
- :type arch: bool
- :returns: True if the download was successful, otherwise False.
- :rtype: bool
- """
-
- def requests_retry_session(retries=3,
- backoff_factor=0.3,
- status_forcelist=(500, 502, 504)):
- """
-
- :param retries: Total number of retries to allow.
- :param backoff_factor: A backoff factor to apply between attempts after
- the second try.
- :param status_forcelist: A set of integer HTTP status codes that are
- forced to retry.
- :type retries: int
- :type backoff_factor: float
- :type status_forcelist: iterable
- :returns: Session object.
- :rtype: requests.Session
- """
-
- retry = Retry(
- total=retries,
- read=retries,
- connect=retries,
- backoff_factor=backoff_factor,
- status_forcelist=status_forcelist,
- )
- adapter = HTTPAdapter(max_retries=retry)
- session = requests.Session()
- session.mount(u"http://", adapter)
- session.mount(u"https://", adapter)
- return session
-
- success = False
- session = None
- try:
- logging.info(f" Connecting to {url} ...")
- session = requests_retry_session()
- response = session.get(url, stream=True)
- code = response.status_code
- logging.info(f" {code}: {responses[code]}")
-
- if code != codes[u"OK"]:
- if session:
- session.close()
- url = url.replace(u"_info", u"")
- logging.info(f" Connecting to {url} ...")
- session = requests_retry_session()
- response = session.get(url, stream=True)
- code = response.status_code
- logging.info(f" {code}: {responses[code]}")
- if code != codes[u"OK"]:
- return False, file_name
- file_name = file_name.replace(u"_info", u"")
-
- dst_file_name = file_name.replace(u".gz", u"")
- logging.info(f" Downloading the file {url} to {dst_file_name} ...")
- with open(dst_file_name, u"wb") as file_handle:
- for chunk in response.iter_content(chunk_size=CHUNK_SIZE):
- if chunk:
- file_handle.write(chunk)
-
- if arch and u".gz" in file_name:
- if session:
- session.close()
- logging.info(f" Downloading the file {url} to {file_name} ...")
- session = requests_retry_session()
- response = session.get(url, stream=True)
- if response.status_code == codes[u"OK"]:
- with open(file_name, u"wb") as file_handle:
- file_handle.write(response.raw.read())
- else:
- logging.error(
- f"Not possible to download the file {url} to {file_name}"
- )
-
- success = True
- except RequestException as err:
- logging.error(f"HTTP Request exception:\n{repr(err)}")
- except (IOError, ValueError, KeyError) as err:
- logging.error(f"Download failed.\n{repr(err)}")
- finally:
- if session:
- session.close()
-
- logging.info(u" Download finished.")
- return success, file_name
-
-
-def _unzip_file(spec, build, pid):
- """Unzip downloaded source file.
-
- :param spec: Specification read form the specification file.
- :param build: Information about the build.
- :type spec: Specification
- :type build: dict
- :returns: True if the download was successful, otherwise False.
- :rtype: bool
- """
-
- file_name = build[u"file-name"]
- if u".zip" in file_name:
- data_file = spec.input[u"zip-extract"]
- else:
- data_file = spec.input[u"extract"]
-
- directory = spec.environment[u"paths"][u"DIR[WORKING,DATA]"]
- tmp_dir = join(directory, str(pid))
- try:
- mkdir(tmp_dir)
- except OSError:
- pass
- new_name = \
- f"{file_name.rsplit(u'.')[-2]}{SEPARATOR}{data_file.split(u'/')[-1]}"
-
- logging.info(f" Unzipping: {data_file} from {file_name}.")
- try:
- with ZipFile(file_name, u'r') as zip_file:
- zip_file.extract(data_file, tmp_dir)
- logging.info(
- f" Renaming the file {join(tmp_dir, data_file)} to {new_name}"
- )
- rename(join(tmp_dir, data_file), new_name)
- build[u"file-name"] = new_name
- return True
- except (BadZipfile, RuntimeError) as err:
- logging.error(f"Failed to unzip the file {file_name}: {repr(err)}.")
- return False
- except OSError as err:
- logging.error(f"Failed to rename the file {data_file}: {repr(err)}.")
- return False
-
-
-def download_and_unzip_data_file(spec, job, build, pid):
- """Download and unzip a source file.
-
- :param spec: Specification read form the specification file.
- :param job: Name of the Jenkins job.
- :param build: Information about the build.
- :param pid: PID of the process executing this method.
- :type spec: Specification
- :type job: str
- :type build: dict
- :type pid: int
- :returns: True if the download was successful, otherwise False.
- :rtype: bool
- """
-
- # Try to download .gz from logs.fd.io
-
- file_name = spec.input[u"file-name"]
- url = u"{0}/{1}".format(
- spec.environment[u'urls'][u'URL[NEXUS,LOG]'],
- spec.input[u'download-path'].format(
- job=job, build=build[u'build'], filename=file_name
- )
- )
- new_name = join(
- spec.environment[u"paths"][u"DIR[WORKING,DATA]"],
- f"{job}{SEPARATOR}{build[u'build']}{SEPARATOR}{file_name}"
- )
-
- logging.info(f"Trying to download {url}")
-
- arch = bool(spec.configuration.get(u"archive-inputs", True))
- success, downloaded_name = _download_file(url, new_name, arch=arch)
-
- if not success:
-
- # Try to download .gz or .zip from docs.fd.io
- file_name = (spec.input[u"file-name"], spec.input[u"zip-file-name"])
- release = re.search(REGEX_RELEASE, job).group(2)
- for idx, rls in enumerate((release, u"master", )):
- try:
- rls = f"rls{int(rls)}"
- except ValueError:
- # It is master
- pass
- url = (
- f"{spec.environment[u'urls'][u'URL[NEXUS,DOC]']}/"
- f"{rls}/"
- f"{spec.environment[u'urls'][u'DIR[NEXUS,DOC]']}/"
- f"{job}{SEPARATOR}{build[u'build']}{SEPARATOR}{file_name[idx]}"
- )
-
- logging.info(f"Downloading {url}")
-
- new_name = join(
- spec.environment[u"paths"][u"DIR[WORKING,DATA]"],
- f"{job}{SEPARATOR}{build[u'build']}{SEPARATOR}{file_name[idx]}"
- )
- success, downloaded_name = _download_file(url, new_name, arch=arch)
- if success:
- file_name = file_name[idx]
- if file_name.endswith(u".gz"):
- with gzip.open(downloaded_name[:-3], u"rb") as gzip_file:
- file_content = gzip_file.read()
- with open(downloaded_name[:-3], u"wb") as xml_file:
- xml_file.write(file_content)
- break
-
- if not success:
-
- # Try to download .zip from jenkins.fd.io
- file_name = spec.input[u"zip-file-name"]
- download_path = spec.input[u"zip-download-path"]
- if job.startswith(u"csit-"):
- url = spec.environment[u"urls"][u"URL[JENKINS,CSIT]"]
- elif job.startswith(u"hc2vpp-"):
- url = spec.environment[u"urls"][u"URL[JENKINS,HC]"]
- else:
- raise PresentationError(f"No url defined for the job {job}.")
-
- full_name = download_path.format(
- job=job, build=build[u"build"], filename=file_name
- )
- url = u"{0}/{1}".format(url, full_name)
- new_name = join(
- spec.environment[u"paths"][u"DIR[WORKING,DATA]"],
- f"{job}{SEPARATOR}{build[u'build']}{SEPARATOR}{file_name}"
- )
-
- logging.info(f"Downloading {url}")
-
- success, downloaded_name = _download_file(url, new_name)
-
- if success and downloaded_name.endswith(u".zip"):
- if not is_zipfile(downloaded_name):
- logging.error(f"Zip file {new_name} is corrupted.")
- success = False
-
- if success:
- build[u"file-name"] = downloaded_name
-
- if file_name.endswith(u".gz"):
- build[u"file-name"] = downloaded_name[:-3]
-
- if downloaded_name.endswith(u".zip"):
- success = _unzip_file(spec, build, pid)
-
- return success
diff --git a/resources/tools/presentation/input_data_parser.py b/resources/tools/presentation/input_data_parser.py
deleted file mode 100644
index 268a73620f..0000000000
--- a/resources/tools/presentation/input_data_parser.py
+++ /dev/null
@@ -1,2075 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Data pre-processing
-
-- extract data from output.xml files generated by Jenkins jobs and store in
- pandas' Series,
-- provide access to the data.
-- filter the data using tags,
-"""
-
-import re
-import copy
-import resource
-import logging
-
-from collections import OrderedDict
-from os import remove, walk, listdir
-from os.path import isfile, isdir, join
-from datetime import datetime as dt
-from datetime import timedelta
-from json import loads
-from json.decoder import JSONDecodeError
-
-import hdrh.histogram
-import hdrh.codec
-import prettytable
-import pandas as pd
-
-from robot.api import ExecutionResult, ResultVisitor
-from robot import errors
-
-from resources.libraries.python import jumpavg
-from input_data_files import download_and_unzip_data_file
-from pal_errors import PresentationError
-
-
-# Separator used in file names
-SEPARATOR = u"__"
-
-
-class ExecutionChecker(ResultVisitor):
- """Class to traverse through the test suite structure.
-
- The functionality implemented in this class generates a json structure:
-
- Performance tests:
-
- {
- "metadata": {
- "generated": "Timestamp",
- "version": "SUT version",
- "job": "Jenkins job name",
- "build": "Information about the build"
- },
- "suites": {
- "Suite long name 1": {
- "name": Suite name,
- "doc": "Suite 1 documentation",
- "parent": "Suite 1 parent",
- "level": "Level of the suite in the suite hierarchy"
- }
- "Suite long name N": {
- "name": Suite name,
- "doc": "Suite N documentation",
- "parent": "Suite 2 parent",
- "level": "Level of the suite in the suite hierarchy"
- }
- }
- "tests": {
- # NDRPDR tests:
- "ID": {
- "name": "Test name",
- "parent": "Name of the parent of the test",
- "doc": "Test documentation",
- "msg": "Test message",
- "conf-history": "DUT1 and DUT2 VAT History",
- "show-run": "Show Run",
- "tags": ["tag 1", "tag 2", "tag n"],
- "type": "NDRPDR",
- "status": "PASS" | "FAIL",
- "throughput": {
- "NDR": {
- "LOWER": float,
- "UPPER": float
- },
- "PDR": {
- "LOWER": float,
- "UPPER": float
- }
- },
- "latency": {
- "NDR": {
- "direction1": {
- "min": float,
- "avg": float,
- "max": float,
- "hdrh": str
- },
- "direction2": {
- "min": float,
- "avg": float,
- "max": float,
- "hdrh": str
- }
- },
- "PDR": {
- "direction1": {
- "min": float,
- "avg": float,
- "max": float,
- "hdrh": str
- },
- "direction2": {
- "min": float,
- "avg": float,
- "max": float,
- "hdrh": str
- }
- }
- }
- }
-
- # TCP tests:
- "ID": {
- "name": "Test name",
- "parent": "Name of the parent of the test",
- "doc": "Test documentation",
- "msg": "Test message",
- "tags": ["tag 1", "tag 2", "tag n"],
- "type": "TCP",
- "status": "PASS" | "FAIL",
- "result": int
- }
-
- # MRR, BMRR tests:
- "ID": {
- "name": "Test name",
- "parent": "Name of the parent of the test",
- "doc": "Test documentation",
- "msg": "Test message",
- "tags": ["tag 1", "tag 2", "tag n"],
- "type": "MRR" | "BMRR",
- "status": "PASS" | "FAIL",
- "result": {
- "receive-rate": float,
- # Average of a list, computed using AvgStdevStats.
- # In CSIT-1180, replace with List[float].
- }
- }
-
- "ID" {
- # next test
- }
- }
- }
-
-
- Functional tests:
-
- {
- "metadata": { # Optional
- "version": "VPP version",
- "job": "Jenkins job name",
- "build": "Information about the build"
- },
- "suites": {
- "Suite name 1": {
- "doc": "Suite 1 documentation",
- "parent": "Suite 1 parent",
- "level": "Level of the suite in the suite hierarchy"
- }
- "Suite name N": {
- "doc": "Suite N documentation",
- "parent": "Suite 2 parent",
- "level": "Level of the suite in the suite hierarchy"
- }
- }
- "tests": {
- "ID": {
- "name": "Test name",
- "parent": "Name of the parent of the test",
- "doc": "Test documentation"
- "msg": "Test message"
- "tags": ["tag 1", "tag 2", "tag n"],
- "conf-history": "DUT1 and DUT2 VAT History"
- "show-run": "Show Run"
- "status": "PASS" | "FAIL"
- },
- "ID" {
- # next test
- }
- }
- }
-
- .. note:: ID is the lowercase full path to the test.
- """
-
- REGEX_PLR_RATE = re.compile(
- r'PLRsearch lower bound::?\s(\d+.\d+).*\n'
- r'PLRsearch upper bound::?\s(\d+.\d+)'
- )
- REGEX_NDRPDR_RATE = re.compile(
- r'NDR_LOWER:\s(\d+.\d+).*\n.*\n'
- r'NDR_UPPER:\s(\d+.\d+).*\n'
- r'PDR_LOWER:\s(\d+.\d+).*\n.*\n'
- r'PDR_UPPER:\s(\d+.\d+)'
- )
- REGEX_NDRPDR_GBPS = re.compile(
- r'NDR_LOWER:.*,\s(\d+.\d+).*\n.*\n'
- r'NDR_UPPER:.*,\s(\d+.\d+).*\n'
- r'PDR_LOWER:.*,\s(\d+.\d+).*\n.*\n'
- r'PDR_UPPER:.*,\s(\d+.\d+)'
- )
- REGEX_PERF_MSG_INFO = re.compile(
- r'NDR_LOWER:\s(\d+.\d+)\s.*\s(\d+.\d+)\s.*\n.*\n.*\n'
- r'PDR_LOWER:\s(\d+.\d+)\s.*\s(\d+.\d+)\s.*\n.*\n.*\n'
- r'Latency at 90% PDR:.*\[\'(.*)\', \'(.*)\'\].*\n'
- r'Latency at 50% PDR:.*\[\'(.*)\', \'(.*)\'\].*\n'
- r'Latency at 10% PDR:.*\[\'(.*)\', \'(.*)\'\].*\n'
- )
- REGEX_CPS_MSG_INFO = re.compile(
- r'NDR_LOWER:\s(\d+.\d+)\s.*\s.*\n.*\n.*\n'
- r'PDR_LOWER:\s(\d+.\d+)\s.*\s.*\n.*\n.*'
- )
- REGEX_PPS_MSG_INFO = re.compile(
- r'NDR_LOWER:\s(\d+.\d+)\s.*\s(\d+.\d+)\s.*\n.*\n.*\n'
- r'PDR_LOWER:\s(\d+.\d+)\s.*\s(\d+.\d+)\s.*\n.*\n.*'
- )
- REGEX_MRR_MSG_INFO = re.compile(r'.*\[(.*)\]')
-
- # Needed for CPS and PPS tests
- REGEX_NDRPDR_LAT_BASE = re.compile(
- r'LATENCY.*\[\'(.*)\', \'(.*)\'\]\s\n.*\n.*\n'
- r'LATENCY.*\[\'(.*)\', \'(.*)\'\]'
- )
- REGEX_NDRPDR_LAT = re.compile(
- r'LATENCY.*\[\'(.*)\', \'(.*)\'\]\s\n.*\n.*\n'
- r'LATENCY.*\[\'(.*)\', \'(.*)\'\]\s\n.*\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]\s\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]\s\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]\s\n'
- r'Latency.*\[\'(.*)\', \'(.*)\'\]'
- )
-
- REGEX_VERSION_VPP = re.compile(
- r"(return STDOUT Version:\s*|"
- r"VPP Version:\s*|VPP version:\s*)(.*)"
- )
- REGEX_VERSION_DPDK = re.compile(
- r"(DPDK version:\s*|DPDK Version:\s*)(.*)"
- )
- REGEX_TCP = re.compile(
- r'Total\s(rps|cps|throughput):\s(\d*).*$'
- )
- REGEX_MRR = re.compile(
- r'MaxReceivedRate_Results\s\[pkts/(\d*)sec\]:\s'
- r'tx\s(\d*),\srx\s(\d*)'
- )
- REGEX_BMRR = re.compile(
- r'Maximum Receive Rate trial results .*: \[(.*)\]'
- )
- REGEX_RECONF_LOSS = re.compile(
- r'Packets lost due to reconfig: (\d*)'
- )
- REGEX_RECONF_TIME = re.compile(
- r'Implied time lost: (\d*.[\de-]*)'
- )
- REGEX_TC_TAG = re.compile(r'\d+[tT]\d+[cC]')
-
- REGEX_TC_NAME_OLD = re.compile(r'-\d+[tT]\d+[cC]-')
-
- REGEX_TC_NAME_NEW = re.compile(r'-\d+[cC]-')
-
- REGEX_TC_NUMBER = re.compile(r'tc\d{2}-')
-
- REGEX_TC_PAPI_CLI = re.compile(r'.*\((\d+.\d+.\d+.\d+.) - (.*)\)')
-
- def __init__(self, metadata, mapping, ignore):
- """Initialisation.
-
- :param metadata: Key-value pairs to be included in "metadata" part of
- JSON structure.
- :param mapping: Mapping of the old names of test cases to the new
- (actual) one.
- :param ignore: List of TCs to be ignored.
- :type metadata: dict
- :type mapping: dict
- :type ignore: list
- """
-
- # Type of message to parse out from the test messages
- self._msg_type = None
-
- # VPP version
- self._version = None
-
- # Timestamp
- self._timestamp = None
-
- # Testbed. The testbed is identified by TG node IP address.
- self._testbed = None
-
- # Mapping of TCs long names
- self._mapping = mapping
-
- # Ignore list
- self._ignore = ignore
-
- # Number of PAPI History messages found:
- # 0 - no message
- # 1 - PAPI History of DUT1
- # 2 - PAPI History of DUT2
- self._conf_history_lookup_nr = 0
-
- self._sh_run_counter = 0
-
- # Test ID of currently processed test- the lowercase full path to the
- # test
- self._test_id = None
-
- # The main data structure
- self._data = {
- u"metadata": OrderedDict(),
- u"suites": OrderedDict(),
- u"tests": OrderedDict()
- }
-
- # Save the provided metadata
- for key, val in metadata.items():
- self._data[u"metadata"][key] = val
-
- # Dictionary defining the methods used to parse different types of
- # messages
- self.parse_msg = {
- u"timestamp": self._get_timestamp,
- u"vpp-version": self._get_vpp_version,
- u"dpdk-version": self._get_dpdk_version,
- # TODO: Remove when not needed:
- u"teardown-vat-history": self._get_vat_history,
- u"teardown-papi-history": self._get_papi_history,
- u"test-show-runtime": self._get_show_run,
- u"testbed": self._get_testbed
- }
-
- @property
- def data(self):
- """Getter - Data parsed from the XML file.
-
- :returns: Data parsed from the XML file.
- :rtype: dict
- """
- return self._data
-
- def _get_data_from_mrr_test_msg(self, msg):
- """Get info from message of MRR performance tests.
-
- :param msg: Message to be processed.
- :type msg: str
- :returns: Processed message or original message if a problem occurs.
- :rtype: str
- """
-
- groups = re.search(self.REGEX_MRR_MSG_INFO, msg)
- if not groups or groups.lastindex != 1:
- return u"Test Failed."
-
- try:
- data = groups.group(1).split(u", ")
- except (AttributeError, IndexError, ValueError, KeyError):
- return u"Test Failed."
-
- out_str = u"["
- try:
- for item in data:
- out_str += f"{(float(item) / 1e6):.2f}, "
- return out_str[:-2] + u"]"
- except (AttributeError, IndexError, ValueError, KeyError):
- return u"Test Failed."
-
- def _get_data_from_cps_test_msg(self, msg):
- """Get info from message of NDRPDR CPS tests.
-
- :param msg: Message to be processed.
- :type msg: str
- :returns: Processed message or "Test Failed." if a problem occurs.
- :rtype: str
- """
-
- groups = re.search(self.REGEX_CPS_MSG_INFO, msg)
- if not groups or groups.lastindex != 2:
- return u"Test Failed."
-
- try:
- return (
- f"1. {(float(groups.group(1)) / 1e6):5.2f}\n"
- f"2. {(float(groups.group(2)) / 1e6):5.2f}"
- )
- except (AttributeError, IndexError, ValueError, KeyError):
- return u"Test Failed."
-
- def _get_data_from_pps_test_msg(self, msg):
- """Get info from message of NDRPDR PPS tests.
-
- :param msg: Message to be processed.
- :type msg: str
- :returns: Processed message or "Test Failed." if a problem occurs.
- :rtype: str
- """
-
- groups = re.search(self.REGEX_PPS_MSG_INFO, msg)
- if not groups or groups.lastindex != 4:
- return u"Test Failed."
-
- try:
- return (
- f"1. {(float(groups.group(1)) / 1e6):5.2f} "
- f"{float(groups.group(2)):5.2f}\n"
- f"2. {(float(groups.group(3)) / 1e6):5.2f} "
- f"{float(groups.group(4)):5.2f}"
- )
- except (AttributeError, IndexError, ValueError, KeyError):
- return u"Test Failed."
-
- def _get_data_from_perf_test_msg(self, msg):
- """Get info from message of NDRPDR performance tests.
-
- :param msg: Message to be processed.
- :type msg: str
- :returns: Processed message or "Test Failed." if a problem occurs.
- :rtype: str
- """
-
- groups = re.search(self.REGEX_PERF_MSG_INFO, msg)
- if not groups or groups.lastindex != 10:
- return u"Test Failed."
-
- try:
- data = {
- u"ndr_low": float(groups.group(1)),
- u"ndr_low_b": float(groups.group(2)),
- u"pdr_low": float(groups.group(3)),
- u"pdr_low_b": float(groups.group(4)),
- u"pdr_lat_90_1": groups.group(5),
- u"pdr_lat_90_2": groups.group(6),
- u"pdr_lat_50_1": groups.group(7),
- u"pdr_lat_50_2": groups.group(8),
- u"pdr_lat_10_1": groups.group(9),
- u"pdr_lat_10_2": groups.group(10),
- }
- except (AttributeError, IndexError, ValueError, KeyError):
- return u"Test Failed."
-
- def _process_lat(in_str_1, in_str_2):
- """Extract min, avg, max values from latency string.
-
- :param in_str_1: Latency string for one direction produced by robot
- framework.
- :param in_str_2: Latency string for second direction produced by
- robot framework.
- :type in_str_1: str
- :type in_str_2: str
- :returns: Processed latency string or None if a problem occurs.
- :rtype: tuple
- """
- in_list_1 = in_str_1.split('/', 3)
- in_list_2 = in_str_2.split('/', 3)
-
- if len(in_list_1) != 4 and len(in_list_2) != 4:
- return None
-
- in_list_1[3] += u"=" * (len(in_list_1[3]) % 4)
- try:
- hdr_lat_1 = hdrh.histogram.HdrHistogram.decode(in_list_1[3])
- except hdrh.codec.HdrLengthException:
- return None
-
- in_list_2[3] += u"=" * (len(in_list_2[3]) % 4)
- try:
- hdr_lat_2 = hdrh.histogram.HdrHistogram.decode(in_list_2[3])
- except hdrh.codec.HdrLengthException:
- return None
-
- if hdr_lat_1 and hdr_lat_2:
- hdr_lat = (
- hdr_lat_1.get_value_at_percentile(50.0),
- hdr_lat_1.get_value_at_percentile(90.0),
- hdr_lat_1.get_value_at_percentile(99.0),
- hdr_lat_2.get_value_at_percentile(50.0),
- hdr_lat_2.get_value_at_percentile(90.0),
- hdr_lat_2.get_value_at_percentile(99.0)
- )
-
- if all(hdr_lat):
- return hdr_lat
-
- return None
-
- try:
- out_msg = (
- f"1. {(data[u'ndr_low'] / 1e6):5.2f} "
- f"{data[u'ndr_low_b']:5.2f}"
- f"\n2. {(data[u'pdr_low'] / 1e6):5.2f} "
- f"{data[u'pdr_low_b']:5.2f}"
- )
- latency = (
- _process_lat(data[u'pdr_lat_10_1'], data[u'pdr_lat_10_2']),
- _process_lat(data[u'pdr_lat_50_1'], data[u'pdr_lat_50_2']),
- _process_lat(data[u'pdr_lat_90_1'], data[u'pdr_lat_90_2'])
- )
- if all(latency):
- max_len = len(str(max((max(item) for item in latency))))
- max_len = 4 if max_len < 4 else max_len
-
- for idx, lat in enumerate(latency):
- if not idx:
- out_msg += u"\n"
- out_msg += (
- f"\n{idx + 3}. "
- f"{lat[0]:{max_len}d} "
- f"{lat[1]:{max_len}d} "
- f"{lat[2]:{max_len}d} "
- f"{lat[3]:{max_len}d} "
- f"{lat[4]:{max_len}d} "
- f"{lat[5]:{max_len}d} "
- )
-
- return out_msg
-
- except (AttributeError, IndexError, ValueError, KeyError):
- return u"Test Failed."
-
- def _get_testbed(self, msg):
- """Called when extraction of testbed IP is required.
- The testbed is identified by TG node IP address.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
-
- if msg.message.count(u"Setup of TG node") or \
- msg.message.count(u"Setup of node TG host"):
- reg_tg_ip = re.compile(
- r'.*TG .* (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*')
- try:
- self._testbed = str(re.search(reg_tg_ip, msg.message).group(1))
- except (KeyError, ValueError, IndexError, AttributeError):
- pass
- finally:
- self._data[u"metadata"][u"testbed"] = self._testbed
- self._msg_type = None
-
- def _get_vpp_version(self, msg):
- """Called when extraction of VPP version is required.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
-
- if msg.message.count(u"return STDOUT Version:") or \
- msg.message.count(u"VPP Version:") or \
- msg.message.count(u"VPP version:"):
- self._version = str(re.search(self.REGEX_VERSION_VPP, msg.message).
- group(2))
- self._data[u"metadata"][u"version"] = self._version
- self._msg_type = None
-
- def _get_dpdk_version(self, msg):
- """Called when extraction of DPDK version is required.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
-
- if msg.message.count(u"DPDK Version:"):
- try:
- self._version = str(re.search(
- self.REGEX_VERSION_DPDK, msg.message).group(2))
- self._data[u"metadata"][u"version"] = self._version
- except IndexError:
- pass
- finally:
- self._msg_type = None
-
- def _get_timestamp(self, msg):
- """Called when extraction of timestamp is required.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
-
- self._timestamp = msg.timestamp[:14]
- self._data[u"metadata"][u"generated"] = self._timestamp
- self._msg_type = None
-
- def _get_vat_history(self, msg):
- """Called when extraction of VAT command history is required.
-
- TODO: Remove when not needed.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
- if msg.message.count(u"VAT command history:"):
- self._conf_history_lookup_nr += 1
- if self._conf_history_lookup_nr == 1:
- self._data[u"tests"][self._test_id][u"conf-history"] = str()
- else:
- self._msg_type = None
- text = re.sub(r"\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3} "
- r"VAT command history:", u"",
- msg.message, count=1).replace(u'\n', u' |br| ').\
- replace(u'"', u"'")
-
- self._data[u"tests"][self._test_id][u"conf-history"] += (
- f" |br| **DUT{str(self._conf_history_lookup_nr)}:** {text}"
- )
-
- def _get_papi_history(self, msg):
- """Called when extraction of PAPI command history is required.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
- if msg.message.count(u"PAPI command history:"):
- self._conf_history_lookup_nr += 1
- if self._conf_history_lookup_nr == 1:
- self._data[u"tests"][self._test_id][u"conf-history"] = str()
- else:
- self._msg_type = None
- text = re.sub(r"\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3} "
- r"PAPI command history:", u"",
- msg.message, count=1).replace(u'\n', u' |br| ').\
- replace(u'"', u"'")
- self._data[u"tests"][self._test_id][u"conf-history"] += (
- f" |br| **DUT{str(self._conf_history_lookup_nr)}:** {text}"
- )
-
- def _get_show_run(self, msg):
- """Called when extraction of VPP operational data (output of CLI command
- Show Runtime) is required.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
-
- if not msg.message.count(u"stats runtime"):
- return
-
- # Temporary solution
- if self._sh_run_counter > 1:
- return
-
- if u"show-run" not in self._data[u"tests"][self._test_id].keys():
- self._data[u"tests"][self._test_id][u"show-run"] = dict()
-
- groups = re.search(self.REGEX_TC_PAPI_CLI, msg.message)
- if not groups:
- return
- try:
- host = groups.group(1)
- except (AttributeError, IndexError):
- host = u""
- try:
- sock = groups.group(2)
- except (AttributeError, IndexError):
- sock = u""
-
- runtime = loads(str(msg.message).replace(u' ', u'').replace(u'\n', u'').
- replace(u"'", u'"').replace(u'b"', u'"').
- replace(u'u"', u'"').split(u":", 1)[1])
-
- try:
- threads_nr = len(runtime[0][u"clocks"])
- except (IndexError, KeyError):
- return
-
- dut = u"DUT{nr}".format(
- nr=len(self._data[u'tests'][self._test_id][u'show-run'].keys()) + 1)
-
- oper = {
- u"host": host,
- u"socket": sock,
- u"threads": OrderedDict({idx: list() for idx in range(threads_nr)})
- }
-
- for item in runtime:
- for idx in range(threads_nr):
- if item[u"vectors"][idx] > 0:
- clocks = item[u"clocks"][idx] / item[u"vectors"][idx]
- elif item[u"calls"][idx] > 0:
- clocks = item[u"clocks"][idx] / item[u"calls"][idx]
- elif item[u"suspends"][idx] > 0:
- clocks = item[u"clocks"][idx] / item[u"suspends"][idx]
- else:
- clocks = 0.0
-
- if item[u"calls"][idx] > 0:
- vectors_call = item[u"vectors"][idx] / item[u"calls"][idx]
- else:
- vectors_call = 0.0
-
- if int(item[u"calls"][idx]) + int(item[u"vectors"][idx]) + \
- int(item[u"suspends"][idx]):
- oper[u"threads"][idx].append([
- item[u"name"],
- item[u"calls"][idx],
- item[u"vectors"][idx],
- item[u"suspends"][idx],
- clocks,
- vectors_call
- ])
-
- self._data[u'tests'][self._test_id][u'show-run'][dut] = copy.copy(oper)
-
- def _get_ndrpdr_throughput(self, msg):
- """Get NDR_LOWER, NDR_UPPER, PDR_LOWER and PDR_UPPER from the test
- message.
-
- :param msg: The test message to be parsed.
- :type msg: str
- :returns: Parsed data as a dict and the status (PASS/FAIL).
- :rtype: tuple(dict, str)
- """
-
- throughput = {
- u"NDR": {u"LOWER": -1.0, u"UPPER": -1.0},
- u"PDR": {u"LOWER": -1.0, u"UPPER": -1.0}
- }
- status = u"FAIL"
- groups = re.search(self.REGEX_NDRPDR_RATE, msg)
-
- if groups is not None:
- try:
- throughput[u"NDR"][u"LOWER"] = float(groups.group(1))
- throughput[u"NDR"][u"UPPER"] = float(groups.group(2))
- throughput[u"PDR"][u"LOWER"] = float(groups.group(3))
- throughput[u"PDR"][u"UPPER"] = float(groups.group(4))
- status = u"PASS"
- except (IndexError, ValueError):
- pass
-
- return throughput, status
-
- def _get_ndrpdr_throughput_gbps(self, msg):
- """Get NDR_LOWER, NDR_UPPER, PDR_LOWER and PDR_UPPER in Gbps from the
- test message.
-
- :param msg: The test message to be parsed.
- :type msg: str
- :returns: Parsed data as a dict and the status (PASS/FAIL).
- :rtype: tuple(dict, str)
- """
-
- gbps = {
- u"NDR": {u"LOWER": -1.0, u"UPPER": -1.0},
- u"PDR": {u"LOWER": -1.0, u"UPPER": -1.0}
- }
- status = u"FAIL"
- groups = re.search(self.REGEX_NDRPDR_GBPS, msg)
-
- if groups is not None:
- try:
- gbps[u"NDR"][u"LOWER"] = float(groups.group(1))
- gbps[u"NDR"][u"UPPER"] = float(groups.group(2))
- gbps[u"PDR"][u"LOWER"] = float(groups.group(3))
- gbps[u"PDR"][u"UPPER"] = float(groups.group(4))
- status = u"PASS"
- except (IndexError, ValueError):
- pass
-
- return gbps, status
-
- def _get_plr_throughput(self, msg):
- """Get PLRsearch lower bound and PLRsearch upper bound from the test
- message.
-
- :param msg: The test message to be parsed.
- :type msg: str
- :returns: Parsed data as a dict and the status (PASS/FAIL).
- :rtype: tuple(dict, str)
- """
-
- throughput = {
- u"LOWER": -1.0,
- u"UPPER": -1.0
- }
- status = u"FAIL"
- groups = re.search(self.REGEX_PLR_RATE, msg)
-
- if groups is not None:
- try:
- throughput[u"LOWER"] = float(groups.group(1))
- throughput[u"UPPER"] = float(groups.group(2))
- status = u"PASS"
- except (IndexError, ValueError):
- pass
-
- return throughput, status
-
- def _get_ndrpdr_latency(self, msg):
- """Get LATENCY from the test message.
-
- :param msg: The test message to be parsed.
- :type msg: str
- :returns: Parsed data as a dict and the status (PASS/FAIL).
- :rtype: tuple(dict, str)
- """
- latency_default = {
- u"min": -1.0,
- u"avg": -1.0,
- u"max": -1.0,
- u"hdrh": u""
- }
- latency = {
- u"NDR": {
- u"direction1": copy.copy(latency_default),
- u"direction2": copy.copy(latency_default)
- },
- u"PDR": {
- u"direction1": copy.copy(latency_default),
- u"direction2": copy.copy(latency_default)
- },
- u"LAT0": {
- u"direction1": copy.copy(latency_default),
- u"direction2": copy.copy(latency_default)
- },
- u"PDR10": {
- u"direction1": copy.copy(latency_default),
- u"direction2": copy.copy(latency_default)
- },
- u"PDR50": {
- u"direction1": copy.copy(latency_default),
- u"direction2": copy.copy(latency_default)
- },
- u"PDR90": {
- u"direction1": copy.copy(latency_default),
- u"direction2": copy.copy(latency_default)
- },
- }
-
- groups = re.search(self.REGEX_NDRPDR_LAT, msg)
- if groups is None:
- groups = re.search(self.REGEX_NDRPDR_LAT_BASE, msg)
- if groups is None:
- return latency, u"FAIL"
-
- def process_latency(in_str):
- """Return object with parsed latency values.
-
- TODO: Define class for the return type.
-
- :param in_str: Input string, min/avg/max/hdrh format.
- :type in_str: str
- :returns: Dict with corresponding keys, except hdrh float values.
- :rtype dict:
- :throws IndexError: If in_str does not have enough substrings.
- :throws ValueError: If a substring does not convert to float.
- """
- in_list = in_str.split('/', 3)
-
- rval = {
- u"min": float(in_list[0]),
- u"avg": float(in_list[1]),
- u"max": float(in_list[2]),
- u"hdrh": u""
- }
-
- if len(in_list) == 4:
- rval[u"hdrh"] = str(in_list[3])
-
- return rval
-
- try:
- latency[u"NDR"][u"direction1"] = process_latency(groups.group(1))
- latency[u"NDR"][u"direction2"] = process_latency(groups.group(2))
- latency[u"PDR"][u"direction1"] = process_latency(groups.group(3))
- latency[u"PDR"][u"direction2"] = process_latency(groups.group(4))
- if groups.lastindex == 4:
- return latency, u"PASS"
- except (IndexError, ValueError):
- pass
-
- try:
- latency[u"PDR90"][u"direction1"] = process_latency(groups.group(5))
- latency[u"PDR90"][u"direction2"] = process_latency(groups.group(6))
- latency[u"PDR50"][u"direction1"] = process_latency(groups.group(7))
- latency[u"PDR50"][u"direction2"] = process_latency(groups.group(8))
- latency[u"PDR10"][u"direction1"] = process_latency(groups.group(9))
- latency[u"PDR10"][u"direction2"] = process_latency(groups.group(10))
- latency[u"LAT0"][u"direction1"] = process_latency(groups.group(11))
- latency[u"LAT0"][u"direction2"] = process_latency(groups.group(12))
- if groups.lastindex == 12:
- return latency, u"PASS"
- except (IndexError, ValueError):
- pass
-
- # TODO: Remove when not needed
- latency[u"NDR10"] = {
- u"direction1": copy.copy(latency_default),
- u"direction2": copy.copy(latency_default)
- }
- latency[u"NDR50"] = {
- u"direction1": copy.copy(latency_default),
- u"direction2": copy.copy(latency_default)
- }
- latency[u"NDR90"] = {
- u"direction1": copy.copy(latency_default),
- u"direction2": copy.copy(latency_default)
- }
- try:
- latency[u"LAT0"][u"direction1"] = process_latency(groups.group(5))
- latency[u"LAT0"][u"direction2"] = process_latency(groups.group(6))
- latency[u"NDR10"][u"direction1"] = process_latency(groups.group(7))
- latency[u"NDR10"][u"direction2"] = process_latency(groups.group(8))
- latency[u"NDR50"][u"direction1"] = process_latency(groups.group(9))
- latency[u"NDR50"][u"direction2"] = process_latency(groups.group(10))
- latency[u"NDR90"][u"direction1"] = process_latency(groups.group(11))
- latency[u"NDR90"][u"direction2"] = process_latency(groups.group(12))
- latency[u"PDR10"][u"direction1"] = process_latency(groups.group(13))
- latency[u"PDR10"][u"direction2"] = process_latency(groups.group(14))
- latency[u"PDR50"][u"direction1"] = process_latency(groups.group(15))
- latency[u"PDR50"][u"direction2"] = process_latency(groups.group(16))
- latency[u"PDR90"][u"direction1"] = process_latency(groups.group(17))
- latency[u"PDR90"][u"direction2"] = process_latency(groups.group(18))
- return latency, u"PASS"
- except (IndexError, ValueError):
- pass
-
- return latency, u"FAIL"
-
- @staticmethod
- def _get_hoststack_data(msg, tags):
- """Get data from the hoststack test message.
-
- :param msg: The test message to be parsed.
- :param tags: Test tags.
- :type msg: str
- :type tags: list
- :returns: Parsed data as a JSON dict and the status (PASS/FAIL).
- :rtype: tuple(dict, str)
- """
- result = dict()
- status = u"FAIL"
-
- msg = msg.replace(u"'", u'"').replace(u" ", u"")
- if u"LDPRELOAD" in tags:
- try:
- result = loads(msg)
- status = u"PASS"
- except JSONDecodeError:
- pass
- elif u"VPPECHO" in tags:
- try:
- msg_lst = msg.replace(u"}{", u"} {").split(u" ")
- result = dict(
- client=loads(msg_lst[0]),
- server=loads(msg_lst[1])
- )
- status = u"PASS"
- except (JSONDecodeError, IndexError):
- pass
-
- return result, status
-
- def visit_suite(self, suite):
- """Implements traversing through the suite and its direct children.
-
- :param suite: Suite to process.
- :type suite: Suite
- :returns: Nothing.
- """
- if self.start_suite(suite) is not False:
- suite.suites.visit(self)
- suite.tests.visit(self)
- self.end_suite(suite)
-
- def start_suite(self, suite):
- """Called when suite starts.
-
- :param suite: Suite to process.
- :type suite: Suite
- :returns: Nothing.
- """
-
- try:
- parent_name = suite.parent.name
- except AttributeError:
- return
-
- doc_str = suite.doc.\
- replace(u'"', u"'").\
- replace(u'\n', u' ').\
- replace(u'\r', u'').\
- replace(u'*[', u' |br| *[').\
- replace(u"*", u"**").\
- replace(u' |br| *[', u'*[', 1)
-
- self._data[u"suites"][suite.longname.lower().
- replace(u'"', u"'").
- replace(u" ", u"_")] = {
- u"name": suite.name.lower(),
- u"doc": doc_str,
- u"parent": parent_name,
- u"level": len(suite.longname.split(u"."))
- }
-
- suite.keywords.visit(self)
-
- def end_suite(self, suite):
- """Called when suite ends.
-
- :param suite: Suite to process.
- :type suite: Suite
- :returns: Nothing.
- """
-
- def visit_test(self, test):
- """Implements traversing through the test.
-
- :param test: Test to process.
- :type test: Test
- :returns: Nothing.
- """
- if self.start_test(test) is not False:
- test.keywords.visit(self)
- self.end_test(test)
-
- def start_test(self, test):
- """Called when test starts.
-
- :param test: Test to process.
- :type test: Test
- :returns: Nothing.
- """
-
- self._sh_run_counter = 0
-
- longname_orig = test.longname.lower()
-
- # Check the ignore list
- if longname_orig in self._ignore:
- return
-
- tags = [str(tag) for tag in test.tags]
- test_result = dict()
-
- # Change the TC long name and name if defined in the mapping table
- longname = self._mapping.get(longname_orig, None)
- if longname is not None:
- name = longname.split(u'.')[-1]
- logging.debug(
- f"{self._data[u'metadata']}\n{longname_orig}\n{longname}\n"
- f"{name}"
- )
- else:
- longname = longname_orig
- name = test.name.lower()
-
- # Remove TC number from the TC long name (backward compatibility):
- self._test_id = re.sub(
- self.REGEX_TC_NUMBER, u"", longname.replace(u"snat", u"nat")
- )
- # Remove TC number from the TC name (not needed):
- test_result[u"name"] = re.sub(
- self.REGEX_TC_NUMBER, "", name.replace(u"snat", u"nat")
- )
-
- test_result[u"parent"] = test.parent.name.lower().\
- replace(u"snat", u"nat")
- test_result[u"tags"] = tags
- test_result["doc"] = test.doc.\
- replace(u'"', u"'").\
- replace(u'\n', u' ').\
- replace(u'\r', u'').\
- replace(u'[', u' |br| [').\
- replace(u' |br| [', u'[', 1)
- test_result[u"type"] = u"FUNC"
- test_result[u"status"] = test.status
-
- if test.status == u"PASS":
- if u"NDRPDR" in tags:
- if u"TCP_PPS" in tags or u"UDP_PPS" in tags:
- test_result[u"msg"] = self._get_data_from_pps_test_msg(
- test.message).replace(u'\n', u' |br| '). \
- replace(u'\r', u'').replace(u'"', u"'")
- elif u"TCP_CPS" in tags or u"UDP_CPS" in tags:
- test_result[u"msg"] = self._get_data_from_cps_test_msg(
- test.message).replace(u'\n', u' |br| '). \
- replace(u'\r', u'').replace(u'"', u"'")
- else:
- test_result[u"msg"] = self._get_data_from_perf_test_msg(
- test.message).replace(u'\n', u' |br| ').\
- replace(u'\r', u'').replace(u'"', u"'")
- elif u"MRR" in tags or u"FRMOBL" in tags or u"BMRR" in tags:
- test_result[u"msg"] = self._get_data_from_mrr_test_msg(
- test.message).replace(u'\n', u' |br| ').\
- replace(u'\r', u'').replace(u'"', u"'")
- else:
- test_result[u"msg"] = test.message.replace(u'\n', u' |br| ').\
- replace(u'\r', u'').replace(u'"', u"'")
- else:
- test_result[u"msg"] = u"Test Failed."
-
- if u"PERFTEST" in tags:
- # Replace info about cores (e.g. -1c-) with the info about threads
- # and cores (e.g. -1t1c-) in the long test case names and in the
- # test case names if necessary.
- groups = re.search(self.REGEX_TC_NAME_OLD, self._test_id)
- if not groups:
- tag_count = 0
- tag_tc = str()
- for tag in test_result[u"tags"]:
- groups = re.search(self.REGEX_TC_TAG, tag)
- if groups:
- tag_count += 1
- tag_tc = tag
-
- if tag_count == 1:
- self._test_id = re.sub(
- self.REGEX_TC_NAME_NEW, f"-{tag_tc.lower()}-",
- self._test_id, count=1
- )
- test_result[u"name"] = re.sub(
- self.REGEX_TC_NAME_NEW, f"-{tag_tc.lower()}-",
- test_result["name"], count=1
- )
- else:
- test_result[u"status"] = u"FAIL"
- self._data[u"tests"][self._test_id] = test_result
- logging.debug(
- f"The test {self._test_id} has no or more than one "
- f"multi-threading tags.\n"
- f"Tags: {test_result[u'tags']}"
- )
- return
-
- if test.status == u"PASS":
- if u"DEVICETEST" in tags:
- test_result[u"type"] = u"DEVICETEST"
- elif u"NDRPDR" in tags:
- if u"TCP_CPS" in tags or u"UDP_CPS" in tags:
- test_result[u"type"] = u"CPS"
- else:
- test_result[u"type"] = u"NDRPDR"
- test_result[u"throughput"], test_result[u"status"] = \
- self._get_ndrpdr_throughput(test.message)
- test_result[u"gbps"], test_result[u"status"] = \
- self._get_ndrpdr_throughput_gbps(test.message)
- test_result[u"latency"], test_result[u"status"] = \
- self._get_ndrpdr_latency(test.message)
- elif u"MRR" in tags or u"FRMOBL" in tags or u"BMRR" in tags:
- if u"MRR" in tags:
- test_result[u"type"] = u"MRR"
- else:
- test_result[u"type"] = u"BMRR"
-
- test_result[u"result"] = dict()
- groups = re.search(self.REGEX_BMRR, test.message)
- if groups is not None:
- items_str = groups.group(1)
- items_float = [
- float(item.strip()) for item in items_str.split(",")
- ]
- # Use whole list in CSIT-1180.
- stats = jumpavg.AvgStdevStats.for_runs(items_float)
- test_result[u"result"][u"receive-rate"] = stats.avg
- test_result[u"result"][u"receive-stdev"] = stats.stdev
- else:
- groups = re.search(self.REGEX_MRR, test.message)
- test_result[u"result"][u"receive-rate"] = \
- float(groups.group(3)) / float(groups.group(1))
- elif u"SOAK" in tags:
- test_result[u"type"] = u"SOAK"
- test_result[u"throughput"], test_result[u"status"] = \
- self._get_plr_throughput(test.message)
- elif u"HOSTSTACK" in tags:
- test_result[u"type"] = u"HOSTSTACK"
- test_result[u"result"], test_result[u"status"] = \
- self._get_hoststack_data(test.message, tags)
- elif u"TCP" in tags:
- test_result[u"type"] = u"TCP"
- groups = re.search(self.REGEX_TCP, test.message)
- test_result[u"result"] = int(groups.group(2))
- elif u"RECONF" in tags:
- test_result[u"type"] = u"RECONF"
- test_result[u"result"] = None
- try:
- grps_loss = re.search(self.REGEX_RECONF_LOSS, test.message)
- grps_time = re.search(self.REGEX_RECONF_TIME, test.message)
- test_result[u"result"] = {
- u"loss": int(grps_loss.group(1)),
- u"time": float(grps_time.group(1))
- }
- except (AttributeError, IndexError, ValueError, TypeError):
- test_result[u"status"] = u"FAIL"
- else:
- test_result[u"status"] = u"FAIL"
- self._data[u"tests"][self._test_id] = test_result
- return
-
- self._data[u"tests"][self._test_id] = test_result
-
- def end_test(self, test):
- """Called when test ends.
-
- :param test: Test to process.
- :type test: Test
- :returns: Nothing.
- """
-
- def visit_keyword(self, keyword):
- """Implements traversing through the keyword and its child keywords.
-
- :param keyword: Keyword to process.
- :type keyword: Keyword
- :returns: Nothing.
- """
- if self.start_keyword(keyword) is not False:
- self.end_keyword(keyword)
-
- def start_keyword(self, keyword):
- """Called when keyword starts. Default implementation does nothing.
-
- :param keyword: Keyword to process.
- :type keyword: Keyword
- :returns: Nothing.
- """
- try:
- if keyword.type == u"setup":
- self.visit_setup_kw(keyword)
- elif keyword.type == u"teardown":
- self.visit_teardown_kw(keyword)
- else:
- self.visit_test_kw(keyword)
- except AttributeError:
- pass
-
- def end_keyword(self, keyword):
- """Called when keyword ends. Default implementation does nothing.
-
- :param keyword: Keyword to process.
- :type keyword: Keyword
- :returns: Nothing.
- """
-
- def visit_test_kw(self, test_kw):
- """Implements traversing through the test keyword and its child
- keywords.
-
- :param test_kw: Keyword to process.
- :type test_kw: Keyword
- :returns: Nothing.
- """
- for keyword in test_kw.keywords:
- if self.start_test_kw(keyword) is not False:
- self.visit_test_kw(keyword)
- self.end_test_kw(keyword)
-
- def start_test_kw(self, test_kw):
- """Called when test keyword starts. Default implementation does
- nothing.
-
- :param test_kw: Keyword to process.
- :type test_kw: Keyword
- :returns: Nothing.
- """
- if test_kw.name.count(u"Show Runtime On All Duts") or \
- test_kw.name.count(u"Show Runtime Counters On All Duts") or \
- test_kw.name.count(u"Vpp Show Runtime On All Duts"):
- self._msg_type = u"test-show-runtime"
- self._sh_run_counter += 1
- else:
- return
- test_kw.messages.visit(self)
-
- def end_test_kw(self, test_kw):
- """Called when keyword ends. Default implementation does nothing.
-
- :param test_kw: Keyword to process.
- :type test_kw: Keyword
- :returns: Nothing.
- """
-
- def visit_setup_kw(self, setup_kw):
- """Implements traversing through the teardown keyword and its child
- keywords.
-
- :param setup_kw: Keyword to process.
- :type setup_kw: Keyword
- :returns: Nothing.
- """
- for keyword in setup_kw.keywords:
- if self.start_setup_kw(keyword) is not False:
- self.visit_setup_kw(keyword)
- self.end_setup_kw(keyword)
-
- def start_setup_kw(self, setup_kw):
- """Called when teardown keyword starts. Default implementation does
- nothing.
-
- :param setup_kw: Keyword to process.
- :type setup_kw: Keyword
- :returns: Nothing.
- """
- if setup_kw.name.count(u"Show Vpp Version On All Duts") \
- and not self._version:
- self._msg_type = u"vpp-version"
- elif setup_kw.name.count(u"Install Dpdk Framework On All Duts") and \
- not self._version:
- self._msg_type = u"dpdk-version"
- elif setup_kw.name.count(u"Set Global Variable") \
- and not self._timestamp:
- self._msg_type = u"timestamp"
- elif setup_kw.name.count(u"Setup Framework") and not self._testbed:
- self._msg_type = u"testbed"
- else:
- return
- setup_kw.messages.visit(self)
-
- def end_setup_kw(self, setup_kw):
- """Called when keyword ends. Default implementation does nothing.
-
- :param setup_kw: Keyword to process.
- :type setup_kw: Keyword
- :returns: Nothing.
- """
-
- def visit_teardown_kw(self, teardown_kw):
- """Implements traversing through the teardown keyword and its child
- keywords.
-
- :param teardown_kw: Keyword to process.
- :type teardown_kw: Keyword
- :returns: Nothing.
- """
- for keyword in teardown_kw.keywords:
- if self.start_teardown_kw(keyword) is not False:
- self.visit_teardown_kw(keyword)
- self.end_teardown_kw(keyword)
-
- def start_teardown_kw(self, teardown_kw):
- """Called when teardown keyword starts
-
- :param teardown_kw: Keyword to process.
- :type teardown_kw: Keyword
- :returns: Nothing.
- """
-
- if teardown_kw.name.count(u"Show Vat History On All Duts"):
- # TODO: Remove when not needed:
- self._conf_history_lookup_nr = 0
- self._msg_type = u"teardown-vat-history"
- teardown_kw.messages.visit(self)
- elif teardown_kw.name.count(u"Show Papi History On All Duts"):
- self._conf_history_lookup_nr = 0
- self._msg_type = u"teardown-papi-history"
- teardown_kw.messages.visit(self)
-
- def end_teardown_kw(self, teardown_kw):
- """Called when keyword ends. Default implementation does nothing.
-
- :param teardown_kw: Keyword to process.
- :type teardown_kw: Keyword
- :returns: Nothing.
- """
-
- def visit_message(self, msg):
- """Implements visiting the message.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
- if self.start_message(msg) is not False:
- self.end_message(msg)
-
- def start_message(self, msg):
- """Called when message starts. Get required information from messages:
- - VPP version.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
- if self._msg_type:
- self.parse_msg[self._msg_type](msg)
-
- def end_message(self, msg):
- """Called when message ends. Default implementation does nothing.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
-
-
-class InputData:
- """Input data
-
- The data is extracted from output.xml files generated by Jenkins jobs and
- stored in pandas' DataFrames.
-
- The data structure:
- - job name
- - build number
- - metadata
- (as described in ExecutionChecker documentation)
- - suites
- (as described in ExecutionChecker documentation)
- - tests
- (as described in ExecutionChecker documentation)
- """
-
- def __init__(self, spec):
- """Initialization.
-
- :param spec: Specification.
- :type spec: Specification
- """
-
- # Specification:
- self._cfg = spec
-
- # Data store:
- self._input_data = pd.Series()
-
- @property
- def data(self):
- """Getter - Input data.
-
- :returns: Input data
- :rtype: pandas.Series
- """
- return self._input_data
-
- def metadata(self, job, build):
- """Getter - metadata
-
- :param job: Job which metadata we want.
- :param build: Build which metadata we want.
- :type job: str
- :type build: str
- :returns: Metadata
- :rtype: pandas.Series
- """
- return self.data[job][build][u"metadata"]
-
- def suites(self, job, build):
- """Getter - suites
-
- :param job: Job which suites we want.
- :param build: Build which suites we want.
- :type job: str
- :type build: str
- :returns: Suites.
- :rtype: pandas.Series
- """
- return self.data[job][str(build)][u"suites"]
-
- def tests(self, job, build):
- """Getter - tests
-
- :param job: Job which tests we want.
- :param build: Build which tests we want.
- :type job: str
- :type build: str
- :returns: Tests.
- :rtype: pandas.Series
- """
- return self.data[job][build][u"tests"]
-
- def _parse_tests(self, job, build):
- """Process data from robot output.xml file and return JSON structured
- data.
-
- :param job: The name of job which build output data will be processed.
- :param build: The build which output data will be processed.
- :type job: str
- :type build: dict
- :returns: JSON data structure.
- :rtype: dict
- """
-
- metadata = {
- u"job": job,
- u"build": build
- }
-
- with open(build[u"file-name"], u'r') as data_file:
- try:
- result = ExecutionResult(data_file)
- except errors.DataError as err:
- logging.error(
- f"Error occurred while parsing output.xml: {repr(err)}"
- )
- return None
- checker = ExecutionChecker(metadata, self._cfg.mapping,
- self._cfg.ignore)
- result.visit(checker)
-
- return checker.data
-
- def _download_and_parse_build(self, job, build, repeat, pid=10000):
- """Download and parse the input data file.
-
- :param pid: PID of the process executing this method.
- :param job: Name of the Jenkins job which generated the processed input
- file.
- :param build: Information about the Jenkins build which generated the
- processed input file.
- :param repeat: Repeat the download specified number of times if not
- successful.
- :type pid: int
- :type job: str
- :type build: dict
- :type repeat: int
- """
-
- logging.info(f" Processing the job/build: {job}: {build[u'build']}")
-
- state = u"failed"
- success = False
- data = None
- do_repeat = repeat
- while do_repeat:
- success = download_and_unzip_data_file(self._cfg, job, build, pid)
- if success:
- break
- do_repeat -= 1
- if not success:
- logging.error(
- f"It is not possible to download the input data file from the "
- f"job {job}, build {build[u'build']}, or it is damaged. "
- f"Skipped."
- )
- if success:
- logging.info(f" Processing data from build {build[u'build']}")
- data = self._parse_tests(job, build)
- if data is None:
- logging.error(
- f"Input data file from the job {job}, build "
- f"{build[u'build']} is damaged. Skipped."
- )
- else:
- state = u"processed"
-
- try:
- remove(build[u"file-name"])
- except OSError as err:
- logging.error(
- f"Cannot remove the file {build[u'file-name']}: {repr(err)}"
- )
-
- # If the time-period is defined in the specification file, remove all
- # files which are outside the time period.
- is_last = False
- timeperiod = self._cfg.input.get(u"time-period", None)
- if timeperiod and data:
- now = dt.utcnow()
- timeperiod = timedelta(int(timeperiod))
- metadata = data.get(u"metadata", None)
- if metadata:
- generated = metadata.get(u"generated", None)
- if generated:
- generated = dt.strptime(generated, u"%Y%m%d %H:%M")
- if (now - generated) > timeperiod:
- # Remove the data and the file:
- state = u"removed"
- data = None
- is_last = True
- logging.info(
- f" The build {job}/{build[u'build']} is "
- f"outdated, will be removed."
- )
- logging.info(u" Done.")
-
- return {
- u"data": data,
- u"state": state,
- u"job": job,
- u"build": build,
- u"last": is_last
- }
-
- def download_and_parse_data(self, repeat=1):
- """Download the input data files, parse input data from input files and
- store in pandas' Series.
-
- :param repeat: Repeat the download specified number of times if not
- successful.
- :type repeat: int
- """
-
- logging.info(u"Downloading and parsing input files ...")
-
- for job, builds in self._cfg.builds.items():
- for build in builds:
-
- result = self._download_and_parse_build(job, build, repeat)
- if result[u"last"]:
- break
- build_nr = result[u"build"][u"build"]
-
- if result[u"data"]:
- data = result[u"data"]
- build_data = pd.Series({
- u"metadata": pd.Series(
- list(data[u"metadata"].values()),
- index=list(data[u"metadata"].keys())
- ),
- u"suites": pd.Series(
- list(data[u"suites"].values()),
- index=list(data[u"suites"].keys())
- ),
- u"tests": pd.Series(
- list(data[u"tests"].values()),
- index=list(data[u"tests"].keys())
- )
- })
-
- if self._input_data.get(job, None) is None:
- self._input_data[job] = pd.Series()
- self._input_data[job][str(build_nr)] = build_data
-
- self._cfg.set_input_file_name(
- job, build_nr, result[u"build"][u"file-name"])
-
- self._cfg.set_input_state(job, build_nr, result[u"state"])
-
- mem_alloc = \
- resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / 1000
- logging.info(f"Memory allocation: {mem_alloc:.0f}MB")
-
- logging.info(u"Done.")
-
- def process_local_file(self, local_file, job=u"local", build_nr=1,
- replace=True):
- """Process local XML file given as a command-line parameter.
-
- :param local_file: The file to process.
- :param job: Job name.
- :param build_nr: Build number.
- :param replace: If True, the information about jobs and builds is
- replaced by the new one, otherwise the new jobs and builds are
- added.
- :type local_file: str
- :type job: str
- :type build_nr: int
- :type replace: bool
- :raises: PresentationError if an error occurs.
- """
- if not isfile(local_file):
- raise PresentationError(f"The file {local_file} does not exist.")
-
- try:
- build_nr = int(local_file.split(u"/")[-1].split(u".")[0])
- except (IndexError, ValueError):
- pass
-
- build = {
- u"build": build_nr,
- u"status": u"failed",
- u"file-name": local_file
- }
- if replace:
- self._cfg.builds = dict()
- self._cfg.add_build(job, build)
-
- logging.info(f"Processing {job}: {build_nr:2d}: {local_file}")
- data = self._parse_tests(job, build)
- if data is None:
- raise PresentationError(
- f"Error occurred while parsing the file {local_file}"
- )
-
- build_data = pd.Series({
- u"metadata": pd.Series(
- list(data[u"metadata"].values()),
- index=list(data[u"metadata"].keys())
- ),
- u"suites": pd.Series(
- list(data[u"suites"].values()),
- index=list(data[u"suites"].keys())
- ),
- u"tests": pd.Series(
- list(data[u"tests"].values()),
- index=list(data[u"tests"].keys())
- )
- })
-
- if self._input_data.get(job, None) is None:
- self._input_data[job] = pd.Series()
- self._input_data[job][str(build_nr)] = build_data
-
- self._cfg.set_input_state(job, build_nr, u"processed")
-
- def process_local_directory(self, local_dir, replace=True):
- """Process local directory with XML file(s). The directory is processed
- as a 'job' and the XML files in it as builds.
- If the given directory contains only sub-directories, these
- sub-directories processed as jobs and corresponding XML files as builds
- of their job.
-
- :param local_dir: Local directory to process.
- :param replace: If True, the information about jobs and builds is
- replaced by the new one, otherwise the new jobs and builds are
- added.
- :type local_dir: str
- :type replace: bool
- """
- if not isdir(local_dir):
- raise PresentationError(
- f"The directory {local_dir} does not exist."
- )
-
- # Check if the given directory includes only files, or only directories
- _, dirnames, filenames = next(walk(local_dir))
-
- if filenames and not dirnames:
- filenames.sort()
- # local_builds:
- # key: dir (job) name, value: list of file names (builds)
- local_builds = {
- local_dir: [join(local_dir, name) for name in filenames]
- }
-
- elif dirnames and not filenames:
- dirnames.sort()
- # local_builds:
- # key: dir (job) name, value: list of file names (builds)
- local_builds = dict()
- for dirname in dirnames:
- builds = [
- join(local_dir, dirname, name)
- for name in listdir(join(local_dir, dirname))
- if isfile(join(local_dir, dirname, name))
- ]
- if builds:
- local_builds[dirname] = sorted(builds)
-
- elif not filenames and not dirnames:
- raise PresentationError(f"The directory {local_dir} is empty.")
- else:
- raise PresentationError(
- f"The directory {local_dir} can include only files or only "
- f"directories, not both.\nThe directory {local_dir} includes "
- f"file(s):\n{filenames}\nand directories:\n{dirnames}"
- )
-
- if replace:
- self._cfg.builds = dict()
-
- for job, files in local_builds.items():
- for idx, local_file in enumerate(files):
- self.process_local_file(local_file, job, idx + 1, replace=False)
-
- @staticmethod
- def _end_of_tag(tag_filter, start=0, closer=u"'"):
- """Return the index of character in the string which is the end of tag.
-
- :param tag_filter: The string where the end of tag is being searched.
- :param start: The index where the searching is stated.
- :param closer: The character which is the tag closer.
- :type tag_filter: str
- :type start: int
- :type closer: str
- :returns: The index of the tag closer.
- :rtype: int
- """
- try:
- idx_opener = tag_filter.index(closer, start)
- return tag_filter.index(closer, idx_opener + 1)
- except ValueError:
- return None
-
- @staticmethod
- def _condition(tag_filter):
- """Create a conditional statement from the given tag filter.
-
- :param tag_filter: Filter based on tags from the element specification.
- :type tag_filter: str
- :returns: Conditional statement which can be evaluated.
- :rtype: str
- """
- index = 0
- while True:
- index = InputData._end_of_tag(tag_filter, index)
- if index is None:
- return tag_filter
- index += 1
- tag_filter = tag_filter[:index] + u" in tags" + tag_filter[index:]
-
- def filter_data(self, element, params=None, data=None, data_set=u"tests",
- continue_on_error=False):
- """Filter required data from the given jobs and builds.
-
- The output data structure is:
- - job 1
- - build 1
- - test (or suite) 1 ID:
- - param 1
- - param 2
- ...
- - param n
- ...
- - test (or suite) n ID:
- ...
- ...
- - build n
- ...
- - job n
-
- :param element: Element which will use the filtered data.
- :param params: Parameters which will be included in the output. If None,
- all parameters are included.
- :param data: If not None, this data is used instead of data specified
- in the element.
- :param data_set: The set of data to be filtered: tests, suites,
- metadata.
- :param continue_on_error: Continue if there is error while reading the
- data. The Item will be empty then
- :type element: pandas.Series
- :type params: list
- :type data: dict
- :type data_set: str
- :type continue_on_error: bool
- :returns: Filtered data.
- :rtype pandas.Series
- """
-
- try:
- if data_set == "suites":
- cond = u"True"
- elif element[u"filter"] in (u"all", u"template"):
- cond = u"True"
- else:
- cond = InputData._condition(element[u"filter"])
- logging.debug(f" Filter: {cond}")
- except KeyError:
- logging.error(u" No filter defined.")
- return None
-
- if params is None:
- params = element.get(u"parameters", None)
- if params:
- params.append(u"type")
-
- data_to_filter = data if data else element[u"data"]
- data = pd.Series()
- try:
- for job, builds in data_to_filter.items():
- data[job] = pd.Series()
- for build in builds:
- data[job][str(build)] = pd.Series()
- try:
- data_dict = dict(
- self.data[job][str(build)][data_set].items())
- except KeyError:
- if continue_on_error:
- continue
- return None
-
- for test_id, test_data in data_dict.items():
- if eval(cond, {u"tags": test_data.get(u"tags", u"")}):
- data[job][str(build)][test_id] = pd.Series()
- if params is None:
- for param, val in test_data.items():
- data[job][str(build)][test_id][param] = val
- else:
- for param in params:
- try:
- data[job][str(build)][test_id][param] =\
- test_data[param]
- except KeyError:
- data[job][str(build)][test_id][param] =\
- u"No Data"
- return data
-
- except (KeyError, IndexError, ValueError) as err:
- logging.error(
- f"Missing mandatory parameter in the element specification: "
- f"{repr(err)}"
- )
- return None
- except AttributeError as err:
- logging.error(repr(err))
- return None
- except SyntaxError as err:
- logging.error(
- f"The filter {cond} is not correct. Check if all tags are "
- f"enclosed by apostrophes.\n{repr(err)}"
- )
- return None
-
- def filter_tests_by_name(self, element, params=None, data_set=u"tests",
- continue_on_error=False):
- """Filter required data from the given jobs and builds.
-
- The output data structure is:
- - job 1
- - build 1
- - test (or suite) 1 ID:
- - param 1
- - param 2
- ...
- - param n
- ...
- - test (or suite) n ID:
- ...
- ...
- - build n
- ...
- - job n
-
- :param element: Element which will use the filtered data.
- :param params: Parameters which will be included in the output. If None,
- all parameters are included.
- :param data_set: The set of data to be filtered: tests, suites,
- metadata.
- :param continue_on_error: Continue if there is error while reading the
- data. The Item will be empty then
- :type element: pandas.Series
- :type params: list
- :type data_set: str
- :type continue_on_error: bool
- :returns: Filtered data.
- :rtype pandas.Series
- """
-
- include = element.get(u"include", None)
- if not include:
- logging.warning(u"No tests to include, skipping the element.")
- return None
-
- if params is None:
- params = element.get(u"parameters", None)
- if params:
- params.append(u"type")
-
- data = pd.Series()
- try:
- for job, builds in element[u"data"].items():
- data[job] = pd.Series()
- for build in builds:
- data[job][str(build)] = pd.Series()
- for test in include:
- try:
- reg_ex = re.compile(str(test).lower())
- for test_id in self.data[job][
- str(build)][data_set].keys():
- if re.match(reg_ex, str(test_id).lower()):
- test_data = self.data[job][
- str(build)][data_set][test_id]
- data[job][str(build)][test_id] = pd.Series()
- if params is None:
- for param, val in test_data.items():
- data[job][str(build)][test_id]\
- [param] = val
- else:
- for param in params:
- try:
- data[job][str(build)][
- test_id][param] = \
- test_data[param]
- except KeyError:
- data[job][str(build)][
- test_id][param] = u"No Data"
- except KeyError as err:
- if continue_on_error:
- logging.debug(repr(err))
- continue
- logging.error(repr(err))
- return None
- return data
-
- except (KeyError, IndexError, ValueError) as err:
- logging.error(
- f"Missing mandatory parameter in the element "
- f"specification: {repr(err)}"
- )
- return None
- except AttributeError as err:
- logging.error(repr(err))
- return None
-
- @staticmethod
- def merge_data(data):
- """Merge data from more jobs and builds to a simple data structure.
-
- The output data structure is:
-
- - test (suite) 1 ID:
- - param 1
- - param 2
- ...
- - param n
- ...
- - test (suite) n ID:
- ...
-
- :param data: Data to merge.
- :type data: pandas.Series
- :returns: Merged data.
- :rtype: pandas.Series
- """
-
- logging.info(u" Merging data ...")
-
- merged_data = pd.Series()
- for builds in data.values:
- for item in builds.values:
- for item_id, item_data in item.items():
- merged_data[item_id] = item_data
- return merged_data
-
- def print_all_oper_data(self):
- """Print all operational data to console.
- """
-
- tbl_hdr = (
- u"Name",
- u"Nr of Vectors",
- u"Nr of Packets",
- u"Suspends",
- u"Cycles per Packet",
- u"Average Vector Size"
- )
-
- for job in self._input_data.values:
- for build in job.values:
- for test_id, test_data in build[u"tests"].items():
- print(f"{test_id}")
- if test_data.get(u"show-run", None) is None:
- continue
- for dut_name, data in test_data[u"show-run"].items():
- if data.get(u"threads", None) is None:
- continue
- print(f"Host IP: {data.get(u'host', '')}, "
- f"Socket: {data.get(u'socket', '')}")
- for thread_nr, thread in data[u"threads"].items():
- txt_table = prettytable.PrettyTable(tbl_hdr)
- avg = 0.0
- for row in thread:
- txt_table.add_row(row)
- avg += row[-1]
- if len(thread) == 0:
- avg = u""
- else:
- avg = f", Average Vector Size per Node: " \
- f"{(avg / len(thread)):.2f}"
- th_name = u"main" if thread_nr == 0 \
- else f"worker_{thread_nr}"
- print(f"{dut_name}, {th_name}{avg}")
- txt_table.float_format = u".2"
- txt_table.align = u"r"
- txt_table.align[u"Name"] = u"l"
- print(f"{txt_table.get_string()}\n")
diff --git a/resources/tools/presentation/mapping_report.yaml b/resources/tools/presentation/mapping_report.yaml
deleted file mode 100644
index 90e10dc88f..0000000000
--- a/resources/tools/presentation/mapping_report.yaml
+++ /dev/null
@@ -1,208 +0,0 @@
-# Mapping of the old names of test cases to the new (actual) one.
-#
-# Data structure:
-#
-# old-name: new-name
-#
-# All TC names (old and new) are the long names. The mapping table is converted
-# to lowercase when loaded.
-
-# 3n, x710
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc03-64B-4c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc03-64B-4c-avf-ethip4-ip4base-mrr"
-
-# 3n, xxv710
-
-Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc03-64B-4c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc03-64B-4c-avf-ethip4-ip4base-mrr"
-
-# 3n, x553
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-# 3n, x520
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-# 3n, cx556a
-
-Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-# 2n, x710
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-# 2n, xxv710
-
-Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-# 2n, x553
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X553-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-# 2n, x520
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-10Ge2P1X520-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-# 2n, cx556a
-
-Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-ndrpdr:
- "Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-ndrpdr"
-
-Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc01-64B-1c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc01-64B-1c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc02-64B-2c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
-
-Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Eth-Ip4Base-Ndrpdr.tc03-64B-4c-avf-eth-ip4base-mrr:
- "Tests.Vpp.Perf.Ip4.2N1l-100Ge2P1Cx556A-Avf-Ethip4-Ip4Base-Ndrpdr.tc02-64B-2c-avf-ethip4-ip4base-mrr"
diff --git a/resources/tools/presentation/mapping_tc_names.yaml b/resources/tools/presentation/mapping_tc_names.yaml
deleted file mode 100644
index e87e47d814..0000000000
--- a/resources/tools/presentation/mapping_tc_names.yaml
+++ /dev/null
@@ -1,1578 +0,0 @@
-# Mapping of the old names of test cases to the new (actual) one.
-#
-# Data structure:
-#
-# old-name: new-name
-#
-# All TC names (old and new) are the long names. The mapping table is converted
-# to lowercase when loaded.
-
-
-# MRR Tests
-
-# tests.vpp.perf.l2
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.tc01-64B-1t1c-eth-l2dbscale10kmaclrn-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.tc01-64B-1t1c-eth-l2bdscale10kmaclrn-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.tc05-64B-2t2c-eth-l2dbscale10kmaclrn-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.tc02-64B-2t2c-eth-l2bdscale10kmaclrn-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.tc09-64B-4t4c-eth-l2dbscale10kmaclrn-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.tc03-64B-4t4c-eth-l2bdscale10kmaclrn-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc02-64B-2t2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc03-64B-4t4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc02-64B-2t2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc03-64B-4t4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc02-64B-2t2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc03-64B-4t4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc02-64B-2t2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc03-64B-4t4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.tc01-64B-1t1c-eth-l2dbscale10kmaclrn-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.tc01-64B-1t1c-eth-l2bdscale10kmaclrn-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.tc05-64B-2t2c-eth-l2dbscale10kmaclrn-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.tc02-64B-2t2c-eth-l2bdscale10kmaclrn-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.tc09-64B-4t4c-eth-l2dbscale10kmaclrn-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.tc03-64B-4t4c-eth-l2bdscale10kmaclrn-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc02-64B-2t2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.tc03-64B-4t4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc02-64B-2t2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.tc03-64B-4t4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc02-64B-2t2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.tc03-64B-4t4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc02-64B-2t2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.l2.10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.tc03-64B-4t4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
-
-
-# tests.vpp.perf.ip4
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc05-64b-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc02-64b-2t2c-ethip4udp-ip4base-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc09-64b-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc03-64b-4t4c-ethip4udp-ip4base-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc05-64b-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc02-64b-2t2c-ethip4udp-ip4base-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc09-64b-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc03-64b-4t4c-ethip4udp-ip4base-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc05-64b-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc02-64b-2t2c-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc09-64b-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc03-64b-4t4c-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc05-64b-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc02-64b-2t2c-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc09-64b-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc03-64b-4t4c-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Nat44-Mrr.tc01-64B-1t1c-ethip4-ip4base-snat-1u-1p-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-nat44-mrr.tc01-64B-1t1c-ethip4udp-ip4base-nat44-mrr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Nat44-Mrr.tc05-64B-2t2c-ethip4-ip4base-snat-1u-1p-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-nat44-mrr.tc02-64B-2t2c-ethip4udp-ip4base-nat44-mrr"
-
-Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Nat44-Mrr.tc09-64B-4t4c-ethip4-ip4base-snat-1u-1p-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4base-nat44-mrr.tc03-64B-4t4c-ethip4udp-ip4base-nat44-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc01-64B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc01-64b-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc05-64B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc02-64b-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc09-64B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr:
- "tests.vpp.perf.ip4.10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc03-64b-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc05-64b-2t2c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc02-64b-2t2c-ethip4udp-ip4base-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc09-64b-4t4c-ethip4udp-ip4base-iacl1-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-mrr.tc03-64b-4t4c-ethip4udp-ip4base-iacl1sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc05-64b-2t2c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc02-64b-2t2c-ethip4udp-ip4base-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc09-64b-4t4c-ethip4udp-ip4base-iacl1-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-mrr.tc03-64b-4t4c-ethip4udp-ip4base-iacl1sl-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc05-64b-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc02-64b-2t2c-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc09-64b-4t4c-ethip4udp-ip4base-iacl50-stateful-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-mrr.tc03-64b-4t4c-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc01-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc05-64b-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc02-64b-2t2c-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc09-64b-4t4c-ethip4udp-ip4base-iacl50-stateless-flows10k-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-mrr.tc03-64b-4t4c-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
-
-Tests.Vpp.Perf.Ip4.10ge2p1x710-Ethip4Udp-Ip4Base-Nat44-Mrr.tc01-64B-1t1c-ethip4-ip4base-snat-1u-1p-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-nat44-mrr.tc01-64B-1t1c-ethip4udp-ip4base-nat44-mrr"
-
-Tests.Vpp.Perf.Ip4.10ge2p1x710-Ethip4Udp-Ip4Base-Nat44-Mrr.tc05-64B-2t2c-ethip4-ip4base-snat-1u-1p-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-nat44-mrr.tc02-64B-2t2c-ethip4udp-ip4base-nat44-mrr"
-
-Tests.Vpp.Perf.Ip4.10ge2p1x710-Ethip4Udp-Ip4Base-Nat44-Mrr.tc09-64B-4t4c-ethip4-ip4base-snat-1u-1p-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4base-nat44-mrr.tc03-64B-4t4c-ethip4udp-ip4base-nat44-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc01-64B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc01-64b-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc05-64B-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc02-64b-2t2c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr"
-
-tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc09-64B-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-snat-mrr:
- "tests.vpp.perf.ip4.10ge2p1x710-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr.tc03-64b-4t4c-ethip4udp-ip4scale1000-udpsrcscale15-nat44-mrr"
-
-
-# tests.vpp.perf.ip6
-
-tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale2m-mrr.tc01-78B-1t1c-ethip6-ip6base-ip6scale2m-mrr:
- "tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale2m-mrr.tc01-78B-1t1c-ethip6-ip6scale2m-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale2m-mrr.tc05-78B-2t2c-ethip6-ip6base-ip6scale2m-mrr:
- "tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale2m-mrr.tc02-78B-2t2c-ethip6-ip6scale2m-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale2m-mrr.tc09-78B-4t4c-ethip6-ip6base-ip6scale2m-mrr:
- "tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale2m-mrr.tc03-78B-4t4c-ethip6-ip6scale2m-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale20k-mrr.tc01-78B-1t1c-ethip6-ip6base-ip6scale20k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale20k-mrr.tc01-78B-1t1c-ethip6-ip6scale20k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale20k-mrr.tc05-78B-2t2c-ethip6-ip6base-ip6scale20k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale20k-mrr.tc02-78B-2t2c-ethip6-ip6scale20k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale20k-mrr.tc09-78B-4t4c-ethip6-ip6base-ip6scale20k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale20k-mrr.tc03-78B-4t4c-ethip6-ip6scale20k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale200k-mrr.tc01-78B-1t1c-ethip6-ip6base-ip6scale200k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale200k-mrr.tc01-78B-1t1c-ethip6-ip6scale200k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale200k-mrr.tc05-78B-2t2c-ethip6-ip6base-ip6scale200k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale200k-mrr.tc02-78B-2t2c-ethip6-ip6scale200k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale200k-mrr.tc09-78B-4t4c-ethip6-ip6base-ip6scale200k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x520-ethip6-ip6scale200k-mrr.tc03-78B-4t4c-ethip6-ip6scale200k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale2m-mrr.tc01-78B-1t1c-ethip6-ip6base-ip6scale2m-mrr:
- "tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale2m-mrr.tc01-78B-1t1c-ethip6-ip6scale2m-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale2m-mrr.tc05-78B-2t2c-ethip6-ip6base-ip6scale2m-mrr:
- "tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale2m-mrr.tc02-78B-2t2c-ethip6-ip6scale2m-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale2m-mrr.tc09-78B-4t4c-ethip6-ip6base-ip6scale2m-mrr:
- "tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale2m-mrr.tc03-78B-4t4c-ethip6-ip6scale2m-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale20k-mrr.tc01-78B-1t1c-ethip6-ip6base-ip6scale20k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale20k-mrr.tc01-78B-1t1c-ethip6-ip6scale20k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale20k-mrr.tc05-78B-2t2c-ethip6-ip6base-ip6scale20k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale20k-mrr.tc02-78B-2t2c-ethip6-ip6scale20k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale20k-mrr.tc09-78B-4t4c-ethip6-ip6base-ip6scale20k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale20k-mrr.tc03-78B-4t4c-ethip6-ip6scale20k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale200k-mrr.tc01-78B-1t1c-ethip6-ip6base-ip6scale200k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale200k-mrr.tc01-78B-1t1c-ethip6-ip6scale200k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale200k-mrr.tc05-78B-2t2c-ethip6-ip6base-ip6scale200k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale200k-mrr.tc02-78B-2t2c-ethip6-ip6scale200k-mrr"
-
-tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale200k-mrr.tc09-78B-4t4c-ethip6-ip6base-ip6scale200k-mrr:
- "tests.vpp.perf.ip6.10ge2p1x710-ethip6-ip6scale200k-mrr.tc03-78B-4t4c-ethip6-ip6scale200k-mrr"
-
-
-# tests.vpp.perf.vm_vhost
-
-Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc05-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc02-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc09-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc03-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc04-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc10-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc08-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc11-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc12-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc12-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc01-64B-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc05-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc02-64B-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc09-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc03-64B-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc04-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc10-IMIX-1t1c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc08-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc11-IMIX-2t2c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc12-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-ndrdisc-mrr:
- "Tests.Vpp.Perf.Vm Vhost.10ge2p1x710-Eth-L2Xcbase-Eth-4Vhostvr1024-2Vm-Mrr.tc12-IMIX-4t4c-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr"
-
-
-# tests.vpp.perf.crypto base
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-mrr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-mrr"
-
-
-# tests.vpp.perf.crypto scale
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr. tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-mrr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc01-64B-1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc01-64B-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc02-64B-2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc02-64B-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc03-64B-4c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc03-64B-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc04-1518B-1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc04-1518B-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc05-1518B-2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc05-1518B-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc06-1518B-4c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc06-1518B-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc07-9000B-1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc07-9000B-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc08-9000B-2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc08-9000B-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc09-9000B-4c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc09-9000B-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc10-IMIX-1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc10-IMIX-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc11-IMIX-2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc11-IMIX-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr.tc12-IMIX-4c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-mrr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr.tc12-IMIX-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-mrr"
-
-
-# NDRPDR Tests
-
-# tests.vpp.perf.crypto base
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-aes128cbc-hmac256sha-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-int-aes128gcm-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-int-aes-gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-int-aes128gcm-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc01-64B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc02-64B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc03-64B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecbasetnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-
-# tests.vpp.perf.crypto scale
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr. tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-int-aes128gcm-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128cbc-hmac256sha-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnl-ip4base-tnl-aes128gcm-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-int-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-cbc-sha1-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128cbc-hmac512sha-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc01-64B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc02-64B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc03-64B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc04-1518B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc05-1518B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc06-1518B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc07-9000B-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc08-9000B-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc09-9000B-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc10-IMIX-1c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc11-IMIX-2c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes-gcm-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr.tc12-IMIX-4c-ethip4ipsecscale1000tnlsw-ip4base-tnl-aes128gcm-ndrpdr"
-
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc01-64B-1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc01-64B-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc02-64B-2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc02-64B-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc03-64B-4c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc03-64B-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc04-1518B-1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc04-1518B-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc05-1518B-2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc05-1518B-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc06-1518B-4c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc06-1518B-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc07-9000B-1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc07-9000B-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc08-9000B-2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc08-9000B-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc09-9000B-4c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc09-9000B-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc10-IMIX-1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc10-IMIX-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc11-IMIX-2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc11-IMIX-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
-
-tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr.tc12-IMIX-4c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdr:
- "tests.vpp.perf.crypto.10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.tc12-IMIX-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr"
diff --git a/resources/tools/presentation/pal.py b/resources/tools/presentation/pal.py
deleted file mode 100644
index d06cadaf99..0000000000
--- a/resources/tools/presentation/pal.py
+++ /dev/null
@@ -1,182 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""CSIT Presentation and analytics layer.
-"""
-
-import sys
-import argparse
-import logging
-
-from pal_errors import PresentationError
-from environment import Environment, clean_environment
-from specification_parser import Specification
-from input_data_parser import InputData
-from generator_tables import generate_tables
-from generator_plots import generate_plots
-from generator_files import generate_files
-from static_content import prepare_static_content
-from generator_report import generate_report
-from generator_cpta import generate_cpta
-from generator_alerts import Alerting, AlertingError
-
-
-def parse_args():
- """Parse arguments from cmd line.
-
- :returns: Parsed arguments.
- :rtype: ArgumentParser
- """
-
- parser = argparse.ArgumentParser(
- description=__doc__,
- formatter_class=argparse.RawDescriptionHelpFormatter
- )
- parser.add_argument(
- u"-s", u"--specification",
- required=True,
- type=argparse.FileType(u'r'),
- help=u"Specification YAML file."
- )
- parser.add_argument(
- u"-r", u"--release",
- default=u"master",
- type=str,
- help=u"Release string of the product."
- )
- parser.add_argument(
- u"-w", u"--week",
- default=u"1",
- type=str,
- help=u"Calendar week when the report is published."
- )
- parser.add_argument(
- u"-l", u"--logging",
- choices=[u"DEBUG", u"INFO", u"WARNING", u"ERROR", u"CRITICAL"],
- default=u"ERROR",
- help=u"Logging level."
- )
- parser.add_argument(
- u"-f", u"--force",
- action=u"store_true",
- help=u"Force removing the old build(s) if present."
- )
- parser.add_argument(
- u"-o", u"--print-all-oper-data",
- action=u"store_true",
- help=u"Print all operational data to console. Be careful, the output "
- u"can be really long."
- )
- parser.add_argument(
- u"-i", u"--input-file",
- type=str,
- default=u"",
- help=u"XML file generated by RobotFramework which will be processed "
- u"instead of downloading the data from Nexus and/or Jenkins. In "
- u"this case, the section 'input' in the specification file is "
- u"ignored."
- )
- parser.add_argument(
- u"-d", u"--input-directory",
- type=str,
- default=u"",
- help=u"Directory with XML file(s) generated by RobotFramework or with "
- u"sub-directories with XML file(s) which will be processed "
- u"instead of downloading the data from Nexus and/or Jenkins. In "
- u"this case, the section 'input' in the specification file is "
- u"ignored."
- )
-
- return parser.parse_args()
-
-
-def main():
- """Main function."""
-
- log_levels = {u"NOTSET": logging.NOTSET,
- u"DEBUG": logging.DEBUG,
- u"INFO": logging.INFO,
- u"WARNING": logging.WARNING,
- u"ERROR": logging.ERROR,
- u"CRITICAL": logging.CRITICAL}
-
- args = parse_args()
- logging.basicConfig(format=u"%(asctime)s: %(levelname)s: %(message)s",
- datefmt=u"%Y/%m/%d %H:%M:%S",
- level=log_levels[args.logging])
-
- logging.info(u"Application started.")
- try:
- spec = Specification(args.specification)
- spec.read_specification()
- except PresentationError:
- logging.critical(u"Finished with error.")
- return 1
-
- if spec.output[u"output"] not in (u"none", u"report", u"trending"):
- logging.critical(
- f"The output {spec.output[u'output']} is not supported."
- )
- return 1
-
- ret_code = 1
- try:
- env = Environment(spec.environment, args.force)
- env.set_environment()
-
- prepare_static_content(spec)
-
- data = InputData(spec)
- if args.input_file:
- data.process_local_file(args.input_file)
- elif args.input_directory:
- data.process_local_directory(args.input_directory)
- else:
- data.download_and_parse_data(repeat=1)
-
- if args.print_all_oper_data:
- data.print_all_oper_data()
-
- generate_tables(spec, data)
- generate_plots(spec, data)
- generate_files(spec, data)
-
- if spec.output[u"output"] == u"report":
- generate_report(args.release, spec, args.week)
- elif spec.output[u"output"] == u"trending":
- sys.stdout.write(generate_cpta(spec, data))
- try:
- alert = Alerting(spec)
- alert.generate_alerts()
- except AlertingError as err:
- logging.warning(repr(err))
- else:
- logging.info("No output will be generated.")
-
- logging.info(u"Successfully finished.")
- ret_code = 0
-
- except AlertingError as err:
- logging.critical(f"Finished with an alerting error.\n{repr(err)}")
- except PresentationError as err:
- logging.critical(f"Finished with a PAL error.\n{str(err)}")
- except (KeyError, ValueError) as err:
- logging.critical(f"Finished with an error.\n{repr(err)}")
- finally:
- if spec is not None:
- clean_environment(spec.environment)
- return ret_code
-
-
-if __name__ == u"__main__":
- sys.exit(main())
diff --git a/resources/tools/presentation/pal_errors.py b/resources/tools/presentation/pal_errors.py
deleted file mode 100644
index 649c86cde8..0000000000
--- a/resources/tools/presentation/pal_errors.py
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""Implementation of exceptions used in the Presentation and analytics layer.
-"""
-
-import sys
-import logging
-
-
-class PresentationError(Exception):
- """Exception(s) raised by the presentation module.
-
- When raising this exception, put this information to the message in this
- order:
- - short description of the encountered problem (parameter msg),
- - relevant messages if there are any collected, e.g., from caught
- exception (optional parameter details),
- - relevant data if there are any collected (optional parameter details).
- """
-
- log_exception = {u"DEBUG": logging.debug,
- u"INFO": logging.info,
- u"WARNING": logging.warning,
- u"ERROR": logging.error,
- u"CRITICAL": logging.critical}
-
- def __init__(self, msg, details=u'', level=u"CRITICAL"):
- """Sets the exception message and the level.
-
- :param msg: Short description of the encountered problem.
- :param details: Relevant messages if there are any collected, e.g.,
- from caught exception (optional parameter details), or relevant data
- if there are any collected (optional parameter details).
- :param level: Level of the error, possible choices are: "DEBUG", "INFO",
- "WARNING", "ERROR" and "CRITICAL".
- :type msg: str
- :type details: str
- :type level: str
- """
-
- super(PresentationError, self).__init__()
- self._msg = msg
- self._details = details
- self._level = level
-
- try:
- self.log_exception[self._level](self._msg)
- if self._details:
- self.log_exception[self._level](self._details)
- except KeyError:
- print(u"Wrong log level.")
- sys.exit(1)
-
- def __repr__(self):
- return (
- f"PresentationError(msg={self._msg!r},details={self._details!r},"
- f"level={self._level!r})"
- )
-
- def __str__(self):
- return str(self._msg)
-
- @property
- def level(self):
- """Getter - logging level.
-
- :returns: Logging level.
- :rtype: str
- """
- return self._level
diff --git a/resources/tools/presentation/pal_utils.py b/resources/tools/presentation/pal_utils.py
deleted file mode 100644
index 86a6679918..0000000000
--- a/resources/tools/presentation/pal_utils.py
+++ /dev/null
@@ -1,352 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-"""General purpose utilities.
-"""
-
-import subprocess
-import math
-import logging
-import csv
-
-from os import walk, makedirs, environ
-from os.path import join, isdir
-from shutil import move, Error
-from datetime import datetime
-
-import numpy as np
-import prettytable
-
-from pandas import Series
-
-from resources.libraries.python import jumpavg
-
-from pal_errors import PresentationError
-
-
-def mean(items):
- """Calculate mean value from the items.
-
- :param items: Mean value is calculated from these items.
- :type items: list
- :returns: MEan value.
- :rtype: float
- """
-
- return float(sum(items)) / len(items)
-
-
-def stdev(items):
- """Calculate stdev from the items.
-
- :param items: Stdev is calculated from these items.
- :type items: list
- :returns: Stdev.
- :rtype: float
- """
- return Series.std(Series(items))
-
-
-def relative_change(nr1, nr2):
- """Compute relative change of two values.
-
- :param nr1: The first number.
- :param nr2: The second number.
- :type nr1: float
- :type nr2: float
- :returns: Relative change of nr1.
- :rtype: float
- """
-
- return float(((nr2 - nr1) / nr1) * 100)
-
-
-def relative_change_stdev(mean1, mean2, std1, std2):
- """Compute relative standard deviation of change of two values.
-
- The "1" values are the base for comparison.
- Results are returned as percentage (and percentual points for stdev).
- Linearized theory is used, so results are wrong for relatively large stdev.
-
- :param mean1: Mean of the first number.
- :param mean2: Mean of the second number.
- :param std1: Standard deviation estimate of the first number.
- :param std2: Standard deviation estimate of the second number.
- :type mean1: float
- :type mean2: float
- :type std1: float
- :type std2: float
- :returns: Relative change and its stdev.
- :rtype: float
- """
- mean1, mean2 = float(mean1), float(mean2)
- quotient = mean2 / mean1
- first = std1 / mean1
- second = std2 / mean2
- std = quotient * math.sqrt(first * first + second * second)
- return (quotient - 1) * 100, std * 100
-
-
-def get_files(path, extension=None, full_path=True):
- """Generates the list of files to process.
-
- :param path: Path to files.
- :param extension: Extension of files to process. If it is the empty string,
- all files will be processed.
- :param full_path: If True, the files with full path are generated.
- :type path: str
- :type extension: str
- :type full_path: bool
- :returns: List of files to process.
- :rtype: list
- """
-
- file_list = list()
- for root, _, files in walk(path):
- for filename in files:
- if extension:
- if filename.endswith(extension):
- if full_path:
- file_list.append(join(root, filename))
- else:
- file_list.append(filename)
- else:
- file_list.append(join(root, filename))
-
- return file_list
-
-
-def get_rst_title_char(level):
- """Return character used for the given title level in rst files.
-
- :param level: Level of the title.
- :type: int
- :returns: Character used for the given title level in rst files.
- :rtype: str
- """
- chars = (u'=', u'-', u'`', u"'", u'.', u'~', u'*', u'+', u'^')
- if level < len(chars):
- return chars[level]
- return chars[-1]
-
-
-def execute_command(cmd):
- """Execute the command in a subprocess and log the stdout and stderr.
-
- :param cmd: Command to execute.
- :type cmd: str
- :returns: Return code of the executed command, stdout and stderr.
- :rtype: tuple(int, str, str)
- """
-
- env = environ.copy()
- proc = subprocess.Popen(
- [cmd],
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- shell=True,
- env=env)
-
- stdout, stderr = proc.communicate()
-
- if stdout:
- logging.info(stdout.decode())
- if stderr:
- logging.info(stderr.decode())
-
- if proc.returncode != 0:
- logging.error(u" Command execution failed.")
- return proc.returncode, stdout.decode(), stderr.decode()
-
-
-def get_last_successful_build_nr(jenkins_url, job_name):
- """Get the number of the last successful build of the given job.
-
- :param jenkins_url: Jenkins URL.
- :param job_name: Job name.
- :type jenkins_url: str
- :type job_name: str
- :returns: The build number as a string.
- :rtype: str
- """
- return execute_command(
- f"wget -qO- {jenkins_url}/{job_name}/lastSuccessfulBuild/buildNumber"
- )
-
-
-def get_last_completed_build_number(jenkins_url, job_name):
- """Get the number of the last completed build of the given job.
-
- :param jenkins_url: Jenkins URL.
- :param job_name: Job name.
- :type jenkins_url: str
- :type job_name: str
- :returns: The build number as a string.
- :rtype: str
- """
- return execute_command(
- f"wget -qO- {jenkins_url}/{job_name}/lastCompletedBuild/buildNumber"
- )
-
-
-def get_build_timestamp(jenkins_url, job_name, build_nr):
- """Get the timestamp of the build of the given job.
-
- :param jenkins_url: Jenkins URL.
- :param job_name: Job name.
- :param build_nr: Build number.
- :type jenkins_url: str
- :type job_name: str
- :type build_nr: int
- :returns: The timestamp.
- :rtype: datetime.datetime
- """
- timestamp = execute_command(
- f"wget -qO- {jenkins_url}/{job_name}/{build_nr}"
- )
- return datetime.fromtimestamp(timestamp/1000)
-
-
-def archive_input_data(spec):
- """Archive the report.
-
- :param spec: Specification read from the specification file.
- :type spec: Specification
- :raises PresentationError: If it is not possible to archive the input data.
- """
-
- logging.info(u" Archiving the input data files ...")
-
- extension = spec.input[u"arch-file-format"]
- data_files = list()
- for ext in extension:
- data_files.extend(get_files(
- spec.environment[u"paths"][u"DIR[WORKING,DATA]"], extension=ext))
- dst = spec.environment[u"paths"][u"DIR[STATIC,ARCH]"]
- logging.info(f" Destination: {dst}")
-
- try:
- if not isdir(dst):
- makedirs(dst)
-
- for data_file in data_files:
- logging.info(f" Moving the file: {data_file} ...")
- move(data_file, dst)
-
- except (Error, OSError) as err:
- raise PresentationError(
- u"Not possible to archive the input data.",
- repr(err)
- )
-
- logging.info(u" Done.")
-
-
-def classify_anomalies(data):
- """Process the data and return anomalies and trending values.
-
- Gather data into groups with average as trend value.
- Decorate values within groups to be normal,
- the first value of changed average as a regression, or a progression.
-
- :param data: Full data set with unavailable samples replaced by nan.
- :type data: OrderedDict
- :returns: Classification and trend values
- :rtype: 3-tuple, list of strings, list of floats and list of floats
- """
- # Nan means something went wrong.
- # Use 0.0 to cause that being reported as a severe regression.
- bare_data = [0.0 if np.isnan(sample) else sample
- for sample in data.values()]
- # TODO: Make BitCountingGroupList a subclass of list again?
- group_list = jumpavg.classify(bare_data).group_list
- group_list.reverse() # Just to use .pop() for FIFO.
- classification = []
- avgs = []
- stdevs = []
- active_group = None
- values_left = 0
- avg = 0.0
- stdv = 0.0
- for sample in data.values():
- if np.isnan(sample):
- classification.append(u"outlier")
- avgs.append(sample)
- stdevs.append(sample)
- continue
- if values_left < 1 or active_group is None:
- values_left = 0
- while values_left < 1: # Ignore empty groups (should not happen).
- active_group = group_list.pop()
- values_left = len(active_group.run_list)
- avg = active_group.stats.avg
- stdv = active_group.stats.stdev
- classification.append(active_group.comment)
- avgs.append(avg)
- stdevs.append(stdv)
- values_left -= 1
- continue
- classification.append(u"normal")
- avgs.append(avg)
- stdevs.append(stdv)
- values_left -= 1
- return classification, avgs, stdevs
-
-
-def convert_csv_to_pretty_txt(csv_file_name, txt_file_name, delimiter=u","):
- """Convert the given csv table to pretty text table.
-
- :param csv_file_name: The path to the input csv file.
- :param txt_file_name: The path to the output pretty text file.
- :param delimiter: Delimiter for csv file.
- :type csv_file_name: str
- :type txt_file_name: str
- :type delimiter: str
- """
-
- txt_table = None
- with open(csv_file_name, u"rt", encoding='utf-8') as csv_file:
- csv_content = csv.reader(csv_file, delimiter=delimiter, quotechar=u'"')
- for row in csv_content:
- if txt_table is None:
- txt_table = prettytable.PrettyTable(row)
- else:
- txt_table.add_row(
- [str(itm.replace(u"\u00B1", u"+-")) for itm in row]
- )
- if not txt_table:
- return
-
- txt_table.align = u"r"
- for itm in (u"Test Case", u"Build", u"Version", u"VPP Version"):
- txt_table.align[itm] = u"l"
-
- if txt_file_name.endswith(u".txt"):
- with open(txt_file_name, u"wt", encoding='utf-8') as txt_file:
- txt_file.write(str(txt_table))
- elif txt_file_name.endswith(u".rst"):
- with open(txt_file_name, u"wt") as txt_file:
- txt_file.write(
- u"\n"
- u".. |br| raw:: html\n\n <br />\n\n\n"
- u".. |prein| raw:: html\n\n <pre>\n\n\n"
- u".. |preout| raw:: html\n\n </pre>\n\n"
- )
- txt_file.write(
- u"\n.. only:: html\n\n"
- u" .. csv-table::\n"
- u" :header-rows: 1\n"
- u" :widths: auto\n"
- u" :align: center\n"
- f" :file: {csv_file_name.split(u'/')[-1]}\n"
- )
diff --git a/resources/tools/presentation/rca/rca-2n-clx-2t1c-pdr-rca1.yaml b/resources/tools/presentation/rca/rca-2n-clx-2t1c-pdr-rca1.yaml
deleted file mode 100644
index 1c52a778df..0000000000
--- a/resources/tools/presentation/rca/rca-2n-clx-2t1c-pdr-rca1.yaml
+++ /dev/null
@@ -1,68 +0,0 @@
-# CSIT progressions.
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-# CSIT regressions.
-64b-2t1c-avf-ethip4-ip4scale200k-rnd: 2
-64b-2t1c-avf-ethip4-ip4scale2m: 7
-64b-2t1c-avf-ethip4-ip4scale2m-rnd: 2
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows: 1
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows: 1
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows: 1
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows: 1
-64b-2t1c-avf-dot1q-l2xcbase: 3
-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr: 7
-64b-2t1c-ethip4-ip4scale200k-rnd: 2
-64b-2t1c-ethip4-ip4scale2m: 7
-64b-2t1c-ethip4-ip4scale2m-rnd: 2
-
-# Multiline string, empty lines (or \n) are required,
-# see https://yaml-multiline.info/
-
-footnote: "
- [1] DONE Apparent regression in ACL tests due to Gerrit 26112. With CSIT
- using changed VPP API, instead of failing, misconfigured VPP passes
- the test, albeit with reduced performance. [CSIT-1739]
-
- [2] DONE Regression in tests using random flow sequencing due to
- Gerrit 26456. Unpinned random seed to make TRex workers generate
- different sequences of packets. [CSIT-1731]
-
- [3] DONE Regression in base dot1q-l2xcbase suites due to Gerrit
- 25363. Unified dot1q handling across various tests. Previously,
- this one suite was different, using dot1q on one port only.
-
- [5] DONE Progression in tests with VPP (l2xc) inside a VM due to
- Gerrit 25309. Make VPP in VM worker placement deterministic.
- [CSIT-1738]
-
- [7] POSTPONED Possible anomaly, but stdev of results is high.
- Performance differences considered to probably be just noise.
-
- [9] OPEN Progression in all ip6 scale tests. Changes to vppinfra
- bihash may have improved code efficiency. [CSIT-1735]
-
- [10] OPEN Progression in ip6 base tests with dot1q. [CSIT-1746]
-
- [11] OPEN Progression in memif tests, mainly in
- avf-eth-l2xcbase-eth-2memif-1dcr. Two progression candidates found:
- Gerrit 24053 and Gerrit 26744. Performance results are not consistent enough
- to separate the two from other possible causes. [CSIT-1744]
-
- [12] OPEN Progression in some l2bdscale tests. [CSIT-1745]
-
- [13] DONE Stateless ACL tests have the same performance in 2005.0-4
- as in 2001.0-2. The difference shown here is inflated by an API
- change, see [1]. [CSIT-1739]
-
- [14] DONE Stateful ACL tests have better performance in 2005.0-4 as
- in 2001.0-2. The CSIT part of API change, Gerrit 26112, has fixed
- an earlier CSIT regression in the same tests. The difference shown here
- is further inflated by the API mismatch, see [1]. [CSIT-1739]
-
- [15] OPEN Progression in nat44 test (not scale ones). [CSIT-1747]
-
- [17] OPEN Progression in some vhost tests (dpdk in VM). [CSIT-1749]
-"
diff --git a/resources/tools/presentation/rca/rca-2n-clx-2t1c-pdr-rca2.yaml b/resources/tools/presentation/rca/rca-2n-clx-2t1c-pdr-rca2.yaml
deleted file mode 100644
index c6054fffd9..0000000000
--- a/resources/tools/presentation/rca/rca-2n-clx-2t1c-pdr-rca2.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-# VPP progressions.
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr: 11
-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm: 17
-64b-2t1c-avf-eth-l2bdscale100kmaclrn: 12
-64b-2t1c-avf-eth-l2bdscale10kmaclrn: 12
-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr: 11
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows: 14
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows: 13
-64b-2t1c-avf-ethip4udp-ip4base-nat44: 15
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows: 14
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows: 13
-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr: 11
-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr: 11
-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm: 17
-64b-2t1c-eth-l2bdscale100kmaclrn: 12
-64b-2t1c-eth-l2bdscale10kmaclrn: 12
-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr: 11
-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr: 11
-64b-2t1c-ethip4udp-ip4base-nat44: 15
-78b-2t1c-avf-dot1q-ip6base: 10
-78b-2t1c-avf-ethip6-ip6scale200k: 9
-78b-2t1c-avf-ethip6-ip6scale20k: 9
-78b-2t1c-avf-ethip6-ip6scale2m: 9
-78b-2t1c-ethip6-ip6scale200k: 9
-78b-2t1c-ethip6-ip6scale20k: 9
-78b-2t1c-ethip6-ip6scale2m: 9
-# VPP regressions.
-
-# Footnotes are in RCA1 file.
diff --git a/resources/tools/presentation/rca/rca-2n-skx-2t1c-ndr-rca1.yaml b/resources/tools/presentation/rca/rca-2n-skx-2t1c-ndr-rca1.yaml
deleted file mode 100644
index b2103da304..0000000000
--- a/resources/tools/presentation/rca/rca-2n-skx-2t1c-ndr-rca1.yaml
+++ /dev/null
@@ -1,79 +0,0 @@
-# CSIT progressions.
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm: 7
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm: 7
-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-eth-l2patch: 7
-64b-2t1c-avf-eth-l2xcbase: 7
-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-eth-l2xcbase: 7
-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 5
-# CSIT regressions.
-64b-2t1c-avf-dot1q-ip4base: 7
-64b-2t1c-avf-dot1q-l2xcbase: 7
-64b-2t1c-avf-eth-l2bdscale1mmaclrn: 7
-64b-2t1c-avf-ethip4-ip4scale200k: 7
-64b-2t1c-avf-ethip4-ip4scale200k-rnd: 2
-64b-2t1c-avf-ethip4-ip4scale20k-rnd: 2
-64b-2t1c-avf-ethip4-ip4scale2m: 7
-64b-2t1c-avf-ethip4-ip4scale2m-rnd: 2
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows: 1
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows: 1
-64b-2t1c-avf-ethip4udp-ip4base-nat44: 7
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows: 1
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows: 1
-64b-2t1c-ethip4-ip4scale200k-rnd: 2
-64b-2t1c-ethip4-ip4scale2m: 7
-64b-2t1c-ethip4-ip4scale2m-rnd: 2
-78b-2t1c-avf-ethip6-ip6scale20k: 7
-78b-2t1c-avf-ethip6-ip6base: 7
-
-# Multiline string, empty lines (or \n) are required,
-# see https://yaml-multiline.info/
-
-footnote: "
- [1] DONE Apparent regression in ACL tests due to Gerrit 26112. With CSIT
- using changed VPP API, instead of failing, misconfigured VPP passes
- the test, albeit with reduced performance. [CSIT-1739]
-
- [2] DONE Regression in tests using random flow sequencing due to
- Gerrit 26456. Unpinned random seed to make TRex workers generate
- different sequences of packets. [CSIT-1731]
-
- [5] DONE Progression in tests with VPP (l2xc) inside a VM due to
- Gerrit 25309. Make VPP in VM worker placement deterministic.
- [CSIT-1738]
-
- [7] POSTPONED Possible anomaly, but stdev of results is high.
- Performance differences considered to probably be just noise.
-
- [8] DONE Regressions in some tests with VPP in VM due to Gerrit
- 26744. Switch to clang-9 compiler identified as cause. Tests using
- l2xcbase as vswitch with small stdev used for bisect. [CSIT-1741]
-
- [9] OPEN Progression in all ip6 scale tests. Changes to vppinfra
- bihash may have improved code efficiency. [CSIT-1735]
-
- [11] OPEN Progression in memif tests, mainly in
- avf-eth-l2xcbase-eth-2memif-1dcr. Two progression candidates found:
- Gerrit 24053 and Gerrit 26744. Performance results are not consistent enough
- to separate the two from other possible causes. [CSIT-1744]
-
- [12] OPEN Progression in some l2bdscale tests. [CSIT-1745]
-
- [13] DONE Stateless ACL tests have the same performance in 2005.0-4
- as in 2001.0-2. The difference shown here is inflated by an API
- change, see [1]. [CSIT-1739]
-
- [14] DONE Stateful ACL tests have better performance in 2005.0-4 as
- in 2001.0-2. The CSIT part of API change, Gerrit 26112, has fixed
- an earlier CSIT regression in the same tests. The difference shown here
- is further inflated by the API mismatch, see [1]. [CSIT-1739]
-
- [15] OPEN Progression in nat44 test (not scale ones). [CSIT-1747]
-
- [17] OPEN Progression in some vhost tests (dpdk in VM). [CSIT-1749]
-"
diff --git a/resources/tools/presentation/rca/rca-2n-skx-2t1c-ndr-rca2.yaml b/resources/tools/presentation/rca/rca-2n-skx-2t1c-ndr-rca2.yaml
deleted file mode 100644
index 2a20b5ea37..0000000000
--- a/resources/tools/presentation/rca/rca-2n-skx-2t1c-ndr-rca2.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-# VPP progressions.
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr: 11
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm: 17
-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm: 7
-64b-2t1c-avf-eth-l2bdscale10kmaclrn: 12
-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr: 11
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows: 14
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows: 13
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows: 14
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows: 13
-78b-2t1c-avf-ethip6-ip6scale200k: 7
-78b-2t1c-avf-ethip6-ip6scale2m: 7
-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr: 11
-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm: 17
-64b-2t1c-eth-l2bdscale100kmaclrn: 12
-64b-2t1c-eth-l2bdscale10kmaclrn: 12
-64b-2t1c-ethip4udp-ip4base-nat44: 15
-78b-2t1c-ethip6-ip6scale200k: 9
-78b-2t1c-ethip6-ip6scale20k: 9
-78b-2t1c-ethip6-ip6scale2m: 9
-# VPP regressions.
-64b-2t1c-avf-dot1q-ip4base: 7
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 7
-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 7
-64b-2t1c-avf-eth-l2bdbasemaclrn: 7
-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 7
-64b-2t1c-avf-eth-l2bdscale1mmaclrn: 7
-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 8
-64b-2t1c-avf-ethip4-ip4scale200k: 7
-64b-2t1c-avf-ethip4-ip4scale200k-rnd: 7
-64b-2t1c-avf-ethip4-ip4scale2m: 7
-64b-2t1c-avf-ethip4-ip4scale2m-rnd: 7
-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 7
-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 7
-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 8
-
-# Footnotes are in RCA1 file.
diff --git a/resources/tools/presentation/rca/rca-2n-skx-2t1c-pdr-rca1.yaml b/resources/tools/presentation/rca/rca-2n-skx-2t1c-pdr-rca1.yaml
deleted file mode 100644
index 38d67cd539..0000000000
--- a/resources/tools/presentation/rca/rca-2n-skx-2t1c-pdr-rca1.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-# CSIT progressions.
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-eth-l2xcbase: 4
-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 5
-# CSIT regressions.
-64b-2t1c-avf-dot1q-l2xcbase: 3
-64b-2t1c-avf-ethip4-ip4scale200k-rnd: 2
-64b-2t1c-avf-ethip4-ip4scale2m-rnd: 2
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows: 1
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows: 1
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows: 1
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows: 1
-64b-2t1c-ethip4-ip4scale200k-rnd: 2
-64b-2t1c-ethip4-ip4scale2m: 7
-64b-2t1c-ethip4-ip4scale2m-rnd: 2
-
-# Multiline string, empty lines (or \n) are required,
-# see https://yaml-multiline.info/
-
-footnote: "
- [1] DONE Apparent regression in ACL tests due to Gerrit 26112. With CSIT
- using changed VPP API, instead of failing, misconfigured VPP passes
- the test, albeit with reduced performance. [CSIT-1739]
-
- [2] DONE Regression in tests using random flow sequencing due to
- Gerrit 26456. Unpinned random seed to make TRex workers generate
- different sequences of packets. [CSIT-1731]
-
- [3] DONE Regression in base dot1q-l2xcbase suites due to Gerrit
- 25363. Unified dot1q handling across various tests. Previously,
- this one suite was different, using dot1q on one port only.
-
- [4] DONE Progression in high performance tests due to Gerrit 26445.
- TRex setting improvement. [CSIT-1740]
-
- [5] DONE Progression in tests with VPP (l2xc) inside a VM due to
- Gerrit 25309. Make VPP in VM worker placement deterministic.
- [CSIT-1738]
-
- [7] POSTPONED Possible anomaly, but stdev of results is high.
- Performance differences considered to probably be just noise.
-
- [8] DONE Regressions in some tests with VPP in VM due to Gerrit
- 26744. Switch to clang-9 compiler identified as cause. Tests using
- l2xcbase as vswitch with small stdev used for bisect. [CSIT-1741]
-
- [9] OPEN Progression in all ip6 scale tests. Changes to vppinfra
- bihash may have improved code efficiency. [CSIT-1735]
-
- [11] OPEN Progression in memif tests, mainly in
- avf-eth-l2xcbase-eth-2memif-1dcr. Two progression candidates found:
- Gerrit 24053 and Gerrit 26744. Performance results are not consistent enough
- to separate the two from other possible causes. [CSIT-1744]
-
- [12] OPEN Progression in some l2bdscale tests. [CSIT-1745]
-
- [13] DONE Stateless ACL tests have the same performance in 2005.0-4
- as in 2001.0-2. The difference shown here is inflated by an API
- change, see [1]. [CSIT-1739]
-
- [14] DONE Stateful ACL tests have better performance in 2005.0-4 as
- in 2001.0-2. The CSIT part of API change, Gerrit 26112, has fixed
- an earlier CSIT regression in the same tests. The difference shown here
- is further inflated by the API mismatch, see [1]. [CSIT-1739]
-
- [15] OPEN Progression in nat44 test (not scale ones). [CSIT-1747]
-
- [17] OPEN Progression in some vhost tests (dpdk in VM). [CSIT-1749]
-"
diff --git a/resources/tools/presentation/rca/rca-2n-skx-2t1c-pdr-rca2.yaml b/resources/tools/presentation/rca/rca-2n-skx-2t1c-pdr-rca2.yaml
deleted file mode 100644
index 32c8055d6b..0000000000
--- a/resources/tools/presentation/rca/rca-2n-skx-2t1c-pdr-rca2.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-# VPP progressions.
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr: 11
-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm: 17
-64b-2t1c-avf-eth-l2bdscale100kmaclrn: 12
-64b-2t1c-avf-eth-l2bdscale10kmaclrn: 12
-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr: 11
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows: 14
-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows: 13
-64b-2t1c-avf-ethip4udp-ip4base-nat44: 15
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows: 14
-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows: 13
-64b-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr: 11
-64b-2t1c-eth-l2bdscale100kmaclrn: 12
-64b-2t1c-eth-l2bdscale10kmaclr: 12
-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr: 11
-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm: 17
-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr: 11
-64b-2t1c-ethip4udp-ip4base-nat44: 15
-78b-2t1c-avf-ethip6-ip6scale200k: 9
-78b-2t1c-avf-ethip6-ip6scale2m: 9
-78b-2t1c-ethip6-ip6scale200k: 9
-78b-2t1c-ethip6-ip6scale2m: 9
-78b-2t1c-ethip6-ip6scale20k: 9
-78b-2t1c-avf-ethip6-ip6scale20k: 9
-# VPP regressions.
-64b-2t1c-avf-ethip4-ip4scale2m: 7
-64b-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 8
-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 8
-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 7
-
-# Footnotes are in RCA1 file.
diff --git a/resources/tools/presentation/rca/rca-3n-skx-2t1c-pdr-rca1.yaml b/resources/tools/presentation/rca/rca-3n-skx-2t1c-pdr-rca1.yaml
deleted file mode 100644
index 2c55514909..0000000000
--- a/resources/tools/presentation/rca/rca-3n-skx-2t1c-pdr-rca1.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# CSIT progressions.
-64b-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 7
-64b-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 7
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-eth-l2xcbase: 4
-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 5
-64b-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4: 5
-64b-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm: 7
-# CSIT regressions.
-64b-2t1c-avf-eth-l2bdscale1mmaclrn: 7
-64b-2t1c-avf-ethip4-ip4scale2m: 7
-64b-2t1c-ethip4-ip4scale2m: 7
-imix-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm: 6
-imix-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm: 6
-imix-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm: 6
-imix-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm: 6
-imix-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm: 6
-
-# Multiline string, empty lines (or \n) are required,
-# see https://yaml-multiline.info/
-
-footnote: "
- [4] DONE Progression in high performance tests due to Gerrit 26445.
- TRex setting improvement. [CSIT-1740]
-
- [5] DONE Progression in tests with VPP (l2xc) inside a VM due to
- Gerrit 25309. Make VPP in VM worker placement deterministic.
- [CSIT-1738]
-
- [6] DONE Apparent regression in CSIT is caused by VPP renaming
- the most performant IPsec plugin, thus the current CSIT version used with
- the previous VPP version measures the less performant VPP IPsec plugin.
- [CSIT-1742]
-
- [7] POSTPONED Possible anomaly, but stdev of results is high.
- Performance differences considered to probably be just noise.
-
- [8] DONE Regressions in some tests with VPP in VM due to Gerrit
- 26744. Switch to clang-9 compiler identified as cause. Tests using
- l2xcbase as vswitch with small stdev used for bisect. [CSIT-1741]
-
- [9] OPEN Progression in all ip6 scale tests. Changes to vppinfra
- bihash may have improved code efficiency. [CSIT-1735]
-
- [10] OPEN Progression in ip6 base tests with dot1q. [CSIT-1746]
-
- [11] OPEN Progression in memif tests, mainly in
- avf-eth-l2xcbase-eth-2memif-1dcr. Two progression candidates found:
- Gerrit 24053 and Gerrit 26744. Performance results are not consistent enough
- to separate the two from other possible causes. [CSIT-1744]
-
- [12] OPEN Progression in some l2bdscale tests. [CSIT-1745]
-
- [16] OPEN Apparent progression in IPsec tests, only for aes128cbc-hmac512sha.
- Considering [6], the positive difference is not large enough,
- so there was probably a VPP regression. [CSIT-1748]
-
- [17] OPEN Progression in some vhost tests (dpdk in VM). [CSIT-1749]
-"
diff --git a/resources/tools/presentation/rca/rca-3n-skx-2t1c-pdr-rca2.yaml b/resources/tools/presentation/rca/rca-3n-skx-2t1c-pdr-rca2.yaml
deleted file mode 100644
index 25b4e65271..0000000000
--- a/resources/tools/presentation/rca/rca-3n-skx-2t1c-pdr-rca2.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-# VPP progressions.
-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha: 16
-64b-2t1c-avf-eth-l2bdscale100kmaclrn: 12
-64b-2t1c-avf-eth-l2bdscale10kmaclrn: 12
-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr: 11
-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1lxc: 11
-64b-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr: 11
-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm: 17
-64b-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm: 7
-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc: 11
-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm: 17
-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr: 11
-64b-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm: 17
-78b-2t1c-avf-dot1q-ip6base: 10
-78b-2t1c-avf-ethip6-ip6scale200k: 9
-78b-2t1c-avf-ethip6-ip6scale20k: 9
-78b-2t1c-avf-ethip6-ip6scale2m: 9
-78b-2t1c-ethip6-ip6scale2m: 9
-imix-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha: 16
-# VPP regressions.
-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc: 8
-64b-2t1c-avf-ethip4-ip4scale2m: 7
-
-# Footnotes are in RCA1 file.
diff --git a/resources/tools/presentation/requirements.txt b/resources/tools/presentation/requirements.txt
deleted file mode 100644
index 0063926a8c..0000000000
--- a/resources/tools/presentation/requirements.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Sphinx==2.2.1
-sphinx-rtd-theme==0.4.0
-sphinxcontrib-programoutput==0.15
-robotframework==3.1.2
-PyYAML==5.1
-numpy==1.17.3
-pandas==0.25.3
-plotly==4.1.1
-PTable==0.9.2
-hdrhistogram==0.6.1
diff --git a/resources/tools/presentation/run_cpta.sh b/resources/tools/presentation/run_cpta.sh
deleted file mode 100755
index 1aa5703162..0000000000
--- a/resources/tools/presentation/run_cpta.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-set -x
-
-# set default values in config array
-typeset -A DIR
-
-DIR[WORKING]=_tmp
-
-# Install system dependencies
-sudo apt-get -y update
-sudo apt-get -y install libxml2 libxml2-dev libxslt-dev build-essential \
- zlib1g-dev unzip
-
-# Create working directories
-mkdir ${DIR[WORKING]}
-
-# Create virtual environment
-virtualenv -p $(which python3) ${DIR[WORKING]}/env
-source ${DIR[WORKING]}/env/bin/activate
-
-# Install python dependencies:
-pip3 install -r requirements.txt
-
-export PYTHONPATH=`pwd`:`pwd`/../../../:`pwd`/../../libraries/python
-
-STATUS=$(python pal.py \
- --specification specification_CPTA.yaml \
- --logging INFO \
- --force)
-RETURN_STATUS=$?
-
-echo ${STATUS}
-exit ${RETURN_STATUS}
diff --git a/resources/tools/presentation/run_report.sh b/resources/tools/presentation/run_report.sh
deleted file mode 100755
index 0c11f71d26..0000000000
--- a/resources/tools/presentation/run_report.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/bash
-
-set -x
-
-RELEASE=$1
-
-# set default values in config array
-typeset -A CFG
-typeset -A DIR
-
-DIR[WORKING]=_tmp
-CFG[BLD_LATEX]=1
-
-# Install system dependencies
-sudo apt-get -y update
-sudo apt-get -y install libxml2 libxml2-dev libxslt-dev build-essential \
- zlib1g-dev unzip
-
-if [[ ${CFG[BLD_LATEX]} -eq 1 ]] ;
-then
- sudo apt-get -y install xvfb texlive-latex-recommended \
- texlive-fonts-recommended texlive-fonts-extra texlive-latex-extra latexmk wkhtmltopdf inkscape
- sudo sed -i.bak 's/^\(main_memory\s=\s\).*/\110000000/' /usr/share/texlive/texmf-dist/web2c/texmf.cnf
-fi
-
-# Create working directories
-mkdir ${DIR[WORKING]}
-
-# Create virtual environment
-virtualenv -p $(which python3) ${DIR[WORKING]}/env
-source ${DIR[WORKING]}/env/bin/activate
-
-# Install python dependencies:
-pip3 install -r requirements.txt
-
-export PYTHONPATH=`pwd`:`pwd`/../../../:`pwd`/../../libraries/python
-
-python pal.py \
- --specification specification.yaml \
- --release ${RELEASE} \
- --week "06" \
- --logging INFO \
- --force
-
-RETURN_STATUS=$(echo $?)
-exit ${RETURN_STATUS}
diff --git a/resources/tools/presentation/run_report_local.sh b/resources/tools/presentation/run_report_local.sh
deleted file mode 100755
index 6074f1dcc5..0000000000
--- a/resources/tools/presentation/run_report_local.sh
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/bin/bash
-
-# set -x
-
-usage()
-{
- cat <<EOF
-usage: run_report_local [OPTION]
-
-Options:
- -h; --help Display this help and exit.
- -f; --file Input XML file to be processed.
- -d; --directory Directory with input XML files to be processed.
- -r; --release Release string (optional).
- -w; --week Release week (optional).
- -i; --no-dependencies Do not install dependencies.
- -l; --install-latex Instal Latex.
-EOF
-}
-
-filename=""
-directoryname=""
-release="master"
-week="1"
-cfg_install_dependencies=1
-cfg_install_latex=0
-
-while [ "$1" != "" ]; do
- case $1 in
- -f | --file ) shift
- filename=$1
- ;;
- -d | --directory ) shift
- directoryname=$1
- ;;
- -r | --release ) shift
- release=$1
- ;;
- -w | --week ) shift
- week=$1
- ;;
- -i | --no-dependencies ) cfg_install_dependencies=0
- ;;
- -l | --install-latex ) cfg_install_latex=1
- ;;
- -h | --help ) usage
- exit 1
- ;;
- * ) usage
- exit 1
- esac
- shift
-done
-
-echo "Parameters:"
-echo " Input file: " ${filename}
-echo " Input directory: " ${directoryname}
-echo " Report release: " ${release}
-echo " Report week: " ${week}
-echo " Install dependencies: " ${cfg_install_dependencies}
-echo " Install Latex: " ${cfg_install_latex}
-
-if [[ $filename == "" && $directoryname == "" ]]; then
- echo "ERROR: The input directory or file is required."
- usage
- exit 1
-fi
-
-# set default values in config array
-typeset -A CFG
-typeset -A DIR
-
-DIR[WORKING]=_tmp
-
-# Install system dependencies
-if [[ ${cfg_install_dependencies} -eq 1 ]] ;
-then
-sudo apt-get -y update
-sudo apt-get -y install libxml2 libxml2-dev libxslt-dev build-essential \
- zlib1g-dev unzip
-fi
-
-if [[ ${cfg_install_latex} -eq 1 ]] ;
-then
- sudo apt-get -y install xvfb texlive-latex-recommended \
- texlive-fonts-recommended texlive-fonts-extra texlive-latex-extra latexmk wkhtmltopdf inkscape
- sudo sed -i.bak 's/^\(main_memory\s=\s\).*/\110000000/' /usr/share/texlive/texmf-dist/web2c/texmf.cnf
-fi
-
-# Create working directories
-mkdir ${DIR[WORKING]}
-
-# Create virtual environment
-virtualenv -p $(which python3) ${DIR[WORKING]}/env
-source ${DIR[WORKING]}/env/bin/activate
-
-# Install python dependencies:
-pip3 install -r requirements.txt
-
-export PYTHONPATH=`pwd`:`pwd`/../../../:`pwd`/../../libraries/python
-
-# Show help so you know the meaning of all parameters
-python pal.py --help
-
-if [[ ${filename} != "" ]]; then
- python pal.py \
- --specification specification_local.yaml \
- --release ${release} \
- --week ${week} \
- --logging INFO \
- --force \
- --input-file ${filename}
-fi
-
-if [[ ${directoryname} != "" ]]; then
- python pal.py \
- --specification specification_local.yaml \
- --release ${release} \
- --week ${week} \
- --logging INFO \
- --force \
- --input-directory ${directoryname}
-fi
-
-RETURN_STATUS=$(echo $?)
-exit ${RETURN_STATUS}
diff --git a/resources/tools/presentation/specification.yaml b/resources/tools/presentation/specification.yaml
deleted file mode 100644
index c3a51a36b2..0000000000
--- a/resources/tools/presentation/specification.yaml
+++ /dev/null
@@ -1,23349 +0,0 @@
-- type: "environment"
-
- paths:
- # Top level directories:
- ## Working directory
- DIR[WORKING]: "_tmp"
- ## Build directories
- DIR[BUILD,HTML]: "_build"
- DIR[BUILD,LATEX]: "_build_latex"
-
- # Static .rst files
- DIR[RST]: "../../../docs/report"
-
- # Working directories
- ## Input data files (.zip, .xml)
- DIR[WORKING,DATA]: "{DIR[WORKING]}/data"
- ## Static source files from git
- DIR[WORKING,SRC]: "{DIR[WORKING]}/src"
- DIR[WORKING,SRC,STATIC]: "{DIR[WORKING,SRC]}/_static"
-
- # Static html content
- DIR[STATIC]: "{DIR[BUILD,HTML]}/_static"
- DIR[STATIC,VPP]: "{DIR[STATIC]}/vpp"
- DIR[STATIC,DPDK]: "{DIR[STATIC]}/dpdk"
- DIR[STATIC,ARCH]: "{DIR[STATIC]}/archive"
-
- # Detailed test results
- DIR[DTR]: "{DIR[WORKING,SRC]}/detailed_test_results"
- DIR[DTR,PERF,DPDK,3N,HSW]: "{DIR[DTR]}/dpdk_performance_results_3n_hsw"
- DIR[DTR,PERF,DPDK,3N,SKX]: "{DIR[DTR]}/dpdk_performance_results_3n_skx"
- DIR[DTR,PERF,DPDK,2N,SKX]: "{DIR[DTR]}/dpdk_performance_results_2n_skx"
- DIR[DTR,PERF,DPDK,2N,ZN2]: "{DIR[DTR]}/dpdk_performance_results_2n_zn2"
- DIR[DTR,PERF,DPDK,2N,CLX]: "{DIR[DTR]}/dpdk_performance_results_2n_clx"
- DIR[DTR,PERF,DPDK,2N,DNV]: "{DIR[DTR]}/dpdk_performance_results_2n_dnv"
- DIR[DTR,PERF,DPDK,3N,DNV]: "{DIR[DTR]}/dpdk_performance_results_3n_dnv"
- DIR[DTR,PERF,DPDK,3N,TSH]: "{DIR[DTR]}/dpdk_performance_results_3n_tsh"
- DIR[DTR,PERF,DPDK,2N,TX2]: "{DIR[DTR]}/dpdk_performance_results_2n_tx2"
- DIR[DTR,PERF,VPP,ALL]: "{DIR[DTR]}/vpp_performance_results"
- DIR[DTR,PERF,VPP,3N,HSW]: "{DIR[DTR]}/vpp_performance_results_3n_hsw"
- DIR[DTR,PERF,VPP,3N,SKX]: "{DIR[DTR]}/vpp_performance_results_3n_skx"
- DIR[DTR,PERF,VPP,2N,SKX]: "{DIR[DTR]}/vpp_performance_results_2n_skx"
- DIR[DTR,PERF,VPP,2N,ZN2]: "{DIR[DTR]}/vpp_performance_results_2n_zn2"
- DIR[DTR,PERF,VPP,2N,CLX]: "{DIR[DTR]}/vpp_performance_results_2n_clx"
- DIR[DTR,PERF,VPP,3N,TSH]: "{DIR[DTR]}/vpp_performance_results_3n_tsh"
- DIR[DTR,PERF,VPP,2N,TX2]: "{DIR[DTR]}/vpp_performance_results_2n_tx2"
- DIR[DTR,PERF,VPP,3N,DNV]: "{DIR[DTR]}/vpp_performance_results_3n_dnv"
- DIR[DTR,PERF,VPP,2N,DNV]: "{DIR[DTR]}/vpp_performance_results_2n_dnv"
- DIR[DTR,MRR,VPP,ALL]: "{DIR[DTR]}/vpp_mrr_results"
- DIR[DTR,MRR,VPP,3N,HSW]: "{DIR[DTR]}/vpp_mrr_results_3n_hsw"
- DIR[DTR,MRR,VPP,3N,SKX]: "{DIR[DTR]}/vpp_mrr_results_3n_skx"
- DIR[DTR,MRR,VPP,2N,SKX]: "{DIR[DTR]}/vpp_mrr_results_2n_skx"
- DIR[DTR,MRR,VPP,2N,ZN2]: "{DIR[DTR]}/vpp_mrr_results_2n_zn2"
- DIR[DTR,MRR,VPP,2N,CLX]: "{DIR[DTR]}/vpp_mrr_results_2n_clx"
- DIR[DTR,MRR,VPP,3N,TSH]: "{DIR[DTR]}/vpp_mrr_results_3n_tsh"
- DIR[DTR,MRR,VPP,2N,TX2]: "{DIR[DTR]}/vpp_mrr_results_2n_tx2"
- DIR[DTR,MRR,VPP,3N,DNV]: "{DIR[DTR]}/vpp_mrr_results_3n_dnv"
- DIR[DTR,MRR,VPP,2N,DNV]: "{DIR[DTR]}/vpp_mrr_results_2n_dnv"
- DIR[DTR,FUNC,VPP,DEVICE,UBUNTU]: "{DIR[DTR]}/vpp_device_results_ubuntu"
-
- # Detailed test configurations
- DIR[DTC]: "{DIR[WORKING,SRC]}/test_configuration"
- DIR[DTC,PERF,VPP,ALL]: "{DIR[DTC]}/vpp_performance_configuration"
- DIR[DTC,PERF,VPP,3N,HSW]: "{DIR[DTC]}/vpp_performance_configuration_3n_hsw"
- DIR[DTC,PERF,VPP,3N,SKX]: "{DIR[DTC]}/vpp_performance_configuration_3n_skx"
- DIR[DTC,PERF,VPP,2N,SKX]: "{DIR[DTC]}/vpp_performance_configuration_2n_skx"
- DIR[DTC,PERF,VPP,2N,ZN2]: "{DIR[DTC]}/vpp_performance_configuration_2n_zn2"
- DIR[DTC,PERF,VPP,2N,CLX]: "{DIR[DTC]}/vpp_performance_configuration_2n_clx"
- DIR[DTC,PERF,VPP,3N,TSH]: "{DIR[DTC]}/vpp_performance_configuration_3n_tsh"
- DIR[DTC,PERF,VPP,2N,TX2]: "{DIR[DTC]}/vpp_performance_configuration_2n_tx2"
- DIR[DTC,PERF,VPP,3N,DNV]: "{DIR[DTC]}/vpp_performance_configuration_3n_dnv"
- DIR[DTC,PERF,VPP,2N,DNV]: "{DIR[DTC]}/vpp_performance_configuration_2n_dnv"
- DIR[DTC,MRR,VPP,ALL]: "{DIR[DTC]}/vpp_mrr_configuration"
- DIR[DTC,MRR,VPP,3N,HSW]: "{DIR[DTC]}/vpp_mrr_configuration_3n_hsw"
- DIR[DTC,MRR,VPP,3N,SKX]: "{DIR[DTC]}/vpp_mrr_configuration_3n_skx"
- DIR[DTC,MRR,VPP,2N,SKX]: "{DIR[DTC]}/vpp_mrr_configuration_2n_skx"
- DIR[DTC,MRR,VPP,2N,ZN2]: "{DIR[DTC]}/vpp_mrr_configuration_2n_zn2"
- DIR[DTC,MRR,VPP,2N,CLX]: "{DIR[DTC]}/vpp_mrr_configuration_2n_clx"
- DIR[DTC,MRR,VPP,3N,TSH]: "{DIR[DTC]}/vpp_mrr_configuration_3n_tsh"
- DIR[DTC,MRR,VPP,2N,TX2]: "{DIR[DTC]}/vpp_mrr_configuration_2n_tx2"
- DIR[DTC,MRR,VPP,3N,DNV]: "{DIR[DTC]}/vpp_mrr_configuration_3n_dnv"
- DIR[DTC,MRR,VPP,2N,DNV]: "{DIR[DTC]}/vpp_mrr_configuration_2n_dnv"
- DIR[DTC,FUNC,VPP,DEVICE,UBUNTU]: "{DIR[DTC]}/vpp_device_configuration_ubuntu"
-
- # Detailed tests operational data
- DIR[DTO]: "{DIR[WORKING,SRC]}/test_operational_data"
- DIR[DTO,PERF,VPP,ALL]: "{DIR[DTO]}/vpp_performance_operational_data"
- DIR[DTO,PERF,VPP,3N,HSW]: "{DIR[DTO]}/vpp_performance_operational_data_3n_hsw"
- DIR[DTO,PERF,VPP,3N,SKX]: "{DIR[DTO]}/vpp_performance_operational_data_3n_skx"
- DIR[DTO,PERF,VPP,2N,SKX]: "{DIR[DTO]}/vpp_performance_operational_data_2n_skx"
- DIR[DTO,PERF,VPP,2N,ZN2]: "{DIR[DTO]}/vpp_performance_operational_data_2n_zn2"
- DIR[DTO,PERF,VPP,2N,CLX]: "{DIR[DTO]}/vpp_performance_operational_data_2n_clx"
- DIR[DTO,PERF,VPP,3N,TSH]: "{DIR[DTO]}/vpp_performance_operational_data_3n_tsh"
- DIR[DTO,PERF,VPP,2N,TX2]: "{DIR[DTO]}/vpp_performance_operational_data_2n_tx2"
- DIR[DTO,PERF,VPP,3N,DNV]: "{DIR[DTO]}/vpp_performance_operational_data_3n_dnv"
- DIR[DTO,PERF,VPP,2N,DNV]: "{DIR[DTO]}/vpp_performance_operational_data_2n_dnv"
-
- # Latencies:
- DIR[LAT,VPP]: "{DIR[WORKING,SRC]}/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs"
- DIR[LAT,DPDK]: "{DIR[WORKING,SRC]}/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs"
-
- # .css patch file to fix tables generated by Sphinx
- DIR[CSS_PATCH_FILE]: "{DIR[STATIC]}/theme_overrides.css"
- DIR[CSS_PATCH_FILE2]: "{DIR[WORKING,SRC,STATIC]}/theme_overrides.css"
-
- urls:
- URL[JENKINS,CSIT]: "https://jenkins.fd.io/view/csit/job"
- URL[JENKINS,HC]: "https://jenkins.fd.io/view/hc2vpp/job"
- URL[NEXUS,LOG]: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- URL[NEXUS,DOC]: "https://docs.fd.io/csit"
- DIR[NEXUS,DOC]: "report/_static/archive"
-
- make-dirs:
- # List the directories which are created while preparing the environment.
- # All directories MUST be defined in "paths" section.
- - "DIR[WORKING,DATA]"
- - "DIR[STATIC,VPP]"
- - "DIR[STATIC,DPDK]"
- - "DIR[STATIC,ARCH]"
- - "DIR[BUILD,LATEX]"
- - "DIR[WORKING,SRC]"
- - "DIR[WORKING,SRC,STATIC]"
-
- remove-dirs:
- # List the directories which are deleted while cleaning the environment.
- # All directories MUST be defined in "paths" section.
- #- "DIR[BUILD,HTML]"
- - "DIR[WORKING,DATA]"
-
- build-dirs:
- # List the directories where the results (build) is stored.
- # All directories MUST be defined in "paths" section.
- - "DIR[BUILD,HTML]"
- - "DIR[BUILD,LATEX]"
-
-- type: "configuration"
-
- mapping-file: "mapping_report.yaml"
-
- limits:
- nic:
- x520: 24460000
- x553: 29761905
- x710: 35800000
- xxv710: 35800000
- xl710: 35800000
- cx556a: 148809523.81
-
- link:
- 10ge: 14880952.38
- 25ge: 37202380.95
- 40ge: 59523809.52
- 100ge: 148809523.81
-
- pci:
- pci-g3-x8: 74404761.90
- pci-g3-x16: 148809523.81
-
- data-sets:
-
- ###########################################################################
- # Plots:
-
- # 3n-hsw
-
- plot-vpp-throughput-lat-tsa-3n-hsw:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 32 # rls2101.rc2 NDRPDR iter env 6
- - 33 # rls2101.rc2 NDRPDR iter env 6
- - 34 # rls2101.rc2 NDRPDR iter env 6
- - 35 # rls2101.rc2 NDRPDR iter env 6
- - 36 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 39 # rls2101.rc2 NDRPDR iter env 6
-
- plot-vpp-hdrh-lat-3n-hsw:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 30 # rls2101.rc2 NDRPDR iter env 6
-
- plot-vpp-hoststack-3n-hsw:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 45 # rls2101.rc2 Hoststack iter env 6
- - 47 # rls2101.rc2 Hoststack iter env 6
-
- plot-dpdk-throughput-latency-3n-hsw:
- csit-dpdk-perf-report-iterative-2101-3n-hsw:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 16 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- plot-dpdk-hdrh-lat-3n-hsw:
- csit-dpdk-perf-report-iterative-2101-3n-hsw:
- - 11 # rls2101 NDRPDR iter env 6
-
- # 3n-skx
-
- plot-vpp-throughput-lat-tsa-3n-skx:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 20 # rls2101.rc2 NDRPDR iter env 6
- - 21 # rls2101.rc2 NDRPDR iter env 6
- - 22 # rls2101.rc2 NDRPDR iter env 6
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
-
- plot-vpp-hdrh-lat-3n-skx:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 21 # rls2101.rc2 NDRPDR iter env 6
-
-# plot-vpp-nfv-3n-skx-ndrpdr:
-# # No data
-# csit-vpp-perf-report-iterative-2101-3n-skx:
-
-# plot-vpp-nfv-3n-skx-mrr:
-# # No data
-# csit-vpp-perf-report-iterative-2101-3n-skx:
-
- plot-dpdk-throughput-latency-3n-skx:
- csit-dpdk-perf-report-iterative-2101-3n-skx:
- - 12 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
- - 22 # rls2101 NDRPDR iter env 6
- - 25 # rls2101 NDRPDR iter env 6
- - 26 # rls2101 NDRPDR iter env 6
-
- plot-dpdk-hdrh-lat-3n-skx:
- csit-dpdk-perf-report-iterative-2101-3n-skx:
- - 12 # rls2101 NDRPDR iter env 6
-
- # 2n-skx
-
- plot-vpp-throughput-lat-tsa-2n-skx:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 43 # rls2101.rc2 NDRPDR iter env 6
-
- plot-vpp-hdrh-lat-2n-skx:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 37 # rls2101.rc2 NDRPDR iter env 6
-
- plot-vpp-soak-2n-skx:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 35 # rls2101.rc2 soak env 6
-
- plot-vpp-nfv-2n-skx-ndrpdr:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 33 # rls2101.rc2 NDRPDR nf-density iter env 6
-
- plot-vpp-nfv-2n-skx-mrr:
- csit-vpp-perf-report-iterative-2101-2n-skx
- - 32 # rls2101.rc2 MRR nf-density iter env 6
-
- plot-vpp-nfv-reconf-2n-skx:
- csit-vpp-perf-report-iterative-2101-2n-skx
- - 34 # rls2101.rc2 NDRPDR reconf iter env 6
-
- plot-dpdk-throughput-latency-2n-skx:
- csit-dpdk-perf-report-iterative-2101-2n-skx:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- plot-dpdk-hdrh-lat-2n-skx:
- csit-dpdk-perf-report-iterative-2101-2n-skx:
- - 11 # rls2101 NDRPDR iter env 6
-
- # 2n-zn2
-
- plot-vpp-throughput-lat-tsa-2n-zn2:
- csit-vpp-perf-report-iterative-2101-2n-zn2:
- - 15 # rls2101.rc2 NDRPDR iter env 6
- - 16 # rls2101.rc2 NDRPDR iter env 6
- - 17 # rls2101.rc2 NDRPDR iter env 6
- - 18 # rls2101.rc2 NDRPDR iter env 6
- - 19 # rls2101.rc2 NDRPDR iter env 6
-
- plot-vpp-hdrh-lat-2n-zn2:
- csit-vpp-perf-report-iterative-2101-2n-zn2:
- - 15 # rls2101.rc2 NDRPDR iter env 6
-
- plot-dpdk-throughput-latency-2n-zn2:
- csit-dpdk-perf-report-iterative-2101-2n-zn2:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 16 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- plot-dpdk-hdrh-lat-2n-zn2:
- csit-dpdk-perf-report-iterative-2101-2n-zn2:
- - 11 # rls2101 NDRPDR iter env 6
-
- # 2n-clx
-
- plot-vpp-throughput-lat-tsa-2n-clx:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
-
- plot-vpp-hdrh-lat-2n-clx:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 23 # rls2101.rc2 NDRPDR iter env 6
-
- plot-vpp-nfv-2n-clx-ndrpdr:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 26 # rls2101.rc2 NDRPDR nf-density iter env 6
-
- plot-vpp-nfv-2n-clx-mrr:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 25 # rls2101.rc2 MRR nf-density iter env 6
-
- plot-vpp-nfv-reconf-2n-clx:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 27 # rls2101.rc2 NDRPDR reconf iter env 6
-
- plot-vpp-soak-2n-clx:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 28 # rls2101.rc2 soak env 6
-
- plot-dpdk-throughput-latency-2n-clx:
- csit-dpdk-perf-report-iterative-2101-2n-clx:
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 22 # rls2101 NDRPDR iter env 6
-
- plot-dpdk-hdrh-lat-2n-clx:
- csit-dpdk-perf-report-iterative-2101-2n-clx:
- - 12 # rls2101 NDRPDR iter env 6
-
- # 3n-tsh
-
- plot-vpp-throughput-lat-tsa-3n-tsh:
- csit-vpp-perf-report-iterative-2101-3n-tsh:
- - 10 # rls2101.rc2 NDRPDR iter env 6
- - 11 # rls2101.rc2 NDRPDR iter env 6
- - 12 # rls2101.rc2 NDRPDR iter env 6
-
- plot-vpp-hdrh-lat-3n-tsh:
- csit-vpp-perf-report-iterative-2101-3n-tsh:
- - 12 # rls2101.rc2 NDRPDR iter env 6
-
- plot-dpdk-throughput-latency-3n-tsh:
- csit-dpdk-perf-report-iterative-2101-3n-tsh:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 16 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- plot-dpdk-hdrh-lat-3n-tsh:
- csit-dpdk-perf-report-iterative-2101-3n-tsh:
- - 21 # rls2101 NDRPDR iter env 6
-
- # 2n-tx2
-
- plot-vpp-throughput-lat-tsa-2n-tx2:
- csit-vpp-perf-report-iterative-2101-2n-tx2:
- - 8 # rls2101.rc2 NDRPDR iter env 6
- - 10 # rls2101.rc2 NDRPDR iter env 6
- - 14 # rls2101.rc2 NDRPDR iter env 6
-
- plot-vpp-hdrh-lat-2n-tx2:
- csit-vpp-perf-report-iterative-2101-2n-tx2:
- - 8 # rls2101.rc2 NDRPDR iter env 6
-
- plot-dpdk-throughput-latency-2n-tx2:
- csit-dpdk-perf-report-iterative-2101-2n-tx2:
- - 4 # rls2101 NDRPDR iter env 6
- - 6 # rls2101 NDRPDR iter env 6
- - 7 # rls2101 NDRPDR iter env 6
- - 8 # rls2101 NDRPDR iter env 6
-
- plot-dpdk-hdrh-lat-2n-tx2:
- csit-dpdk-perf-report-iterative-2101-2n-tx2:
- - 4 # rls2101 NDRPDR iter env 6
-
- # 3n-dnv
-
- plot-vpp-throughput-lat-tsa-3n-dnv:
- csit-vpp-perf-report-iterative-2101-3n-dnv:
- - 27 # rls2101.rc2 NDRPDR iter env 6
- - 28 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
-
-# plot-dpdk-throughput-latency-3n-dnv:
-# # No data
-# csit-dpdk-perf-report-iterative-2009-3n-dnv:
-
- # 2n-dnv
-
- plot-vpp-throughput-lat-tsa-2n-dnv:
- csit-vpp-perf-report-iterative-2101-2n-dnv:
- - 26 # rls2101.rc2 NDRPDR iter env 6
- - 27 # rls2101.rc2 NDRPDR iter env 6
- - 28 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
-
-# plot-dpdk-throughput-latency-2n-dnv:
-# # No data
-# csit-dpdk-perf-report-iterative-2009-2n-dnv:
-
- ###########################################################################
- # Simple tables (only one data set):
-
- # NIC Comparisons
-
- vpp-nic-comparison-3n-skx:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 20 # rls2101.rc2 NDRPDR iter env 6
- - 21 # rls2101.rc2 NDRPDR iter env 6
- - 22 # rls2101.rc2 NDRPDR iter env 6
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-nic-comparison-2n-skx:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 43 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-nic-comparison-3n-skx-mrr:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 19 # rls2101.rc2 MRR iter env 6
-
- vpp-nic-comparison-2n-skx-mrr:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 29 # rls2101.rc2 MRR iter env 6
-
- # Results
-
- vpp-perf-results-3n-hsw:
- # csit-vpp-perf-report-coverage-2101-3n-hsw:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 30 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-perf-results-3n-skx:
- # csit-vpp-perf-report-coverage-2101-3n-skx:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 21 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-perf-results-2n-skx:
- # csit-vpp-perf-report-coverage-2101-2n-skx:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 37 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-perf-results-2n-zn2:
- csit-vpp-perf-report-iterative-2101-2n-zn2:
- - 15 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-perf-results-2n-clx:
- # csit-vpp-perf-report-coverage-2101-2n-clx:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 23 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-perf-results-3n-tsh:
- csit-vpp-perf-report-iterative-2101-3n-tsh:
- - 12 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-perf-results-2n-tx2:
- csit-vpp-perf-report-iterative-2101-2n-tx2:
- - 8 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-perf-results-3n-dnv:
- # csit-vpp-perf-report-coverage-2101-3n-dnv:
- csit-vpp-perf-report-iterative-2101-3n-dnv:
- - 29 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-perf-results-2n-dnv:
- # csit-vpp-perf-report-coverage-2101-2n-dnv:
- csit-vpp-perf-report-iterative-2101-2n-dnv:
- - 28 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-mrr-results-3n-hsw:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 29 # rls2101.rc2 MRR iter env 6
-
- vpp-mrr-results-3n-skx:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 19 # rls2101.rc2 MRR iter env 6
-
- vpp-mrr-results-2n-skx:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 29 # rls2101.rc2 MRR iter env 6
-
- vpp-mrr-results-2n-zn2:
- csit-vpp-perf-report-iterative-2101-2n-zn2:
- - 14 # rls2101.rc2 MRR iter env 6
-
- vpp-mrr-results-2n-clx:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 22 # rls2101.rc2 MRR iter env 6
-
- vpp-mrr-results-3n-tsh:
- csit-vpp-perf-report-iterative-2101-3n-tsh:
- - 9 # rls2101.rc2 MRR iter env 6
-
- vpp-mrr-results-2n-tx2:
- csit-vpp-perf-report-iterative-2101-2n-tx2:
- - 9 # rls2101.rc2 MRR iter env 6
-
- vpp-mrr-results-3n-dnv:
- csit-vpp-perf-report-iterative-2101-3n-dnv:
- - 15 # rls2101.rc2 MRR iter env 6
-
- vpp-mrr-results-2n-dnv:
- csit-vpp-perf-report-iterative-2101-2n-dnv:
- - 15 # rls2101.rc2 MRR iter env 6
-
- vpp-device-results-ubuntu:
- csit-vpp-device-2101-ubuntu1804-1n-skx:
- - 308 # rls2101.rc2 VPP DEV env 6
-
- dpdk-perf-results-3n-hsw:
- csit-dpdk-perf-report-iterative-2101-3n-hsw:
- - 11 # rls2101 NDRPDR iter env 6
-
- dpdk-perf-results-3n-skx:
- csit-dpdk-perf-report-iterative-2101-3n-skx:
- - 12 # rls2101 NDRPDR iter env 6
-
- dpdk-perf-results-2n-skx:
- csit-dpdk-perf-report-iterative-2101-2n-skx:
- - 11 # rls2101 NDRPDR iter env 6
-
- dpdk-perf-results-2n-zn2:
- csit-dpdk-perf-report-iterative-2101-2n-zn2:
- - 11 # rls2101 NDRPDR iter env 6
-
- dpdk-perf-results-2n-clx:
- csit-dpdk-perf-report-iterative-2101-2n-clx:
- - 12 # rls2101 NDRPDR iter env 6
-
-# dpdk-perf-results-2n-dnv:
-# # No data
-# csit-dpdk-perf-report-iterative-2009-2n-dnv:
-
-# dpdk-perf-results-3n-dnv:
-# # No data
-# csit-dpdk-perf-report-iterative-2009-3n-dnv:
-
- dpdk-perf-results-3n-tsh:
- csit-dpdk-perf-report-iterative-2101-3n-tsh:
- - 21 # rls2101 NDRPDR iter env 6
-
- dpdk-perf-results-2n-tx2:
- csit-dpdk-perf-report-iterative-2101-2n-tx2:
- - 4 # rls2101 NDRPDR iter env 6
-
-###########################################################################
- # Tables (more than one data set)
-
- # Performance changes
-
- vpp-performance-changes-3n-hsw-h1:
- csit-vpp-perf-report-iterative-2009-3n-hsw:
- - 9 # rls2005 NDRPDR iter env 5
- - 10 # rls2005 NDRPDR iter env 5
- - 11 # rls2005 NDRPDR iter env 5
- - 12 # rls2005 NDRPDR iter env 5
- - 13 # rls2005 NDRPDR iter env 5
- - 14 # rls2005 NDRPDR iter env 5
- - 15 # rls2005 NDRPDR iter env 5
- - 16 # rls2005 NDRPDR iter env 5
- - 17 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 NDRPDR iter env 5
- vpp-performance-changes-3n-hsw-ref-env-old:
- csit-vpp-perf-report-iterative-2009-3n-hsw:
- - 21 # rls2009 NDRPDR iter env 5
- - 22 # rls2009 NDRPDR iter env 5
- - 24 # rls2009 NDRPDR iter env 5
- - 25 # rls2009 NDRPDR iter env 5
- - 26 # rls2009 NDRPDR iter env 5
- - 27 # rls2009 NDRPDR iter env 5
- - 28 # rls2009 NDRPDR iter env 5
- - 29 # rls2009 NDRPDR iter env 5
- - 30 # rls2009 NDRPDR iter env 5
- - 31 # rls2009 NDRPDR iter env 5
- vpp-performance-changes-3n-hsw-ref-env-new:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 19 # rls2009 NDRPDR iter env 6
- - 20 # rls2009 NDRPDR iter env 6
- - 21 # rls2009 NDRPDR iter env 6
- - 22 # rls2009 NDRPDR iter env 6
- - 23 # rls2009 NDRPDR iter env 6
- - 24 # rls2009 NDRPDR iter env 6
- - 25 # rls2009 NDRPDR iter env 6
- - 26 # rls2009 NDRPDR iter env 6
- - 27 # rls2009 NDRPDR iter env 6
- - 28 # rls2009 NDRPDR iter env 6
- vpp-performance-changes-3n-hsw-cmp:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 32 # rls2101.rc2 NDRPDR iter env 6
- - 33 # rls2101.rc2 NDRPDR iter env 6
- - 34 # rls2101.rc2 NDRPDR iter env 6
- - 35 # rls2101.rc2 NDRPDR iter env 6
- - 36 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 39 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-performance-changes-3n-skx-h1:
- csit-vpp-perf-report-iterative-2009-3n-skx:
- - 13 # rls2005 NDRPDR iter env 5
- - 18 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 NDRPDR iter env 5
- - 41 # rls2005 NDRPDR iter env 5
- - 43 # rls2005 NDRPDR iter env 5
- - 44 # rls2005 NDRPDR iter env 5
- - 45 # rls2005 NDRPDR iter env 5
- - 46 # rls2005 NDRPDR iter env 5
- - 48 # rls2005 NDRPDR iter env 5
- - 49 # rls2005 NDRPDR iter env 5
- vpp-performance-changes-3n-skx-ref-env-old:
- csit-vpp-perf-report-iterative-2009-3n-skx:
- - 26 # rls2009 NDRPDR iter env 5
- - 27 # rls2009 NDRPDR iter env 5
- - 28 # rls2009 NDRPDR iter env 5
- - 29 # rls2009 NDRPDR iter env 5
- - 35 # rls2009 NDRPDR iter env 5
- - 36 # rls2009 NDRPDR iter env 5
- - 37 # rls2009 NDRPDR iter env 5
- - 38 # rls2009 NDRPDR iter env 5
- - 39 # rls2009 NDRPDR iter env 5
- - 40 # rls2009 NDRPDR iter env 5
- vpp-performance-changes-3n-skx-ref-env-new:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 14 # rls2009 NDRPDR iter env 6
- - 15 # rls2009 NDRPDR iter env 6
- - 16 # rls2009 NDRPDR iter env 6
- - 17 # rls2009 NDRPDR iter env 6
- - 18 # rls2009 NDRPDR iter env 6
- - 25 # rls2009 NDRPDR iter env 6
- - 27 # rls2009 NDRPDR iter env 6
- - 28 # rls2009 NDRPDR iter env 6
- vpp-performance-changes-3n-skx-cmp:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 20 # rls2101.rc2 NDRPDR iter env 6
- - 21 # rls2101.rc2 NDRPDR iter env 6
- - 22 # rls2101.rc2 NDRPDR iter env 6
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-performance-changes-2n-skx-h1:
- csit-vpp-perf-report-iterative-2009-2n-skx:
- - 13 # rls2005 NDRPDR iter env 5
- - 16 # rls2005 NDRPDR iter env 5
- - 17 # rls2005 NDRPDR iter env 5
- - 18 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 NDRPDR iter env 5
- - 21 # rls2005 NDRPDR iter env 5
- - 22 # rls2005 NDRPDR iter env 5
- - 23 # rls2005 NDRPDR iter env 5
- - 24 # rls2005 NDRPDR iter env 5
- - 25 # rls2005 NDRPDR iter env 5
- vpp-performance-changes-2n-skx-ref-env-old:
- csit-vpp-perf-report-iterative-2009-2n-skx:
- - 35 # rls2009 NDRPDR iter env 5
- - 36 # rls2009 NDRPDR iter env 5
- - 37 # rls2009 NDRPDR iter env 5
- - 39 # rls2009 NDRPDR iter env 5
- - 40 # rls2009 NDRPDR iter env 5
- - 42 # rls2009 NDRPDR iter env 5
- - 43 # rls2009 NDRPDR iter env 5
- - 44 # rls2009 NDRPDR iter env 5
- - 46 # rls2009 NDRPDR iter env 5
- - 48 # rls2009 NDRPDR iter env 5
- - 110 # rls2009 NDRPDR iter NAT44 env 5
- - 111 # rls2009 NDRPDR iter NAT44 env 5
- - 112 # rls2009 NDRPDR iter NAT44 env 5
- - 113 # rls2009 NDRPDR iter NAT44 env 5
- - 114 # rls2009 NDRPDR iter NAT44 env 5
- - 115 # rls2009 NDRPDR iter NAT44 env 5
- - 116 # rls2009 NDRPDR iter NAT44 env 5
- - 118 # rls2009 NDRPDR iter NAT44 env 5
- - 119 # rls2009 NDRPDR iter NAT44 env 5
- - 121 # rls2009 NDRPDR iter NAT44 env 5
- vpp-performance-changes-2n-skx-ref-env-new:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 22 # rls2009 NDRPDR iter env 6
- - 23 # rls2009 NDRPDR iter env 6
- - 24 # rls2009 NDRPDR iter env 6
- - 25 # rls2009 NDRPDR iter env 6
- - 26 # rls2009 NDRPDR iter env 6
- - 28 # rls2009 NDRPDR iter env 6
- - 39 # rls2009 NDRPDR iter env 6
- - 40 # rls2009 NDRPDR iter env 6
- - 41 # rls2009 NDRPDR iter env 6
- vpp-performance-changes-2n-skx-cmp:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 43 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-performance-changes-2n-clx-h1:
- csit-vpp-perf-report-iterative-2009-2n-clx:
- - 13 # rls2005 NDRPDR iter env 5
- - 15 # rls2005 NDRPDR iter env 5
- - 17 # rls2005 NDRPDR iter env 5
- - 18 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 NDRPDR iter env 5
- - 20 # rls2005 NDRPDR iter env 5
- - 21 # rls2005 NDRPDR iter env 5
- - 22 # rls2005 NDRPDR iter env 5
- - 23 # rls2005 NDRPDR iter env 5
- - 24 # rls2005 NDRPDR iter env 5
- vpp-performance-changes-2n-clx-ref-env-old:
- csit-vpp-perf-report-iterative-2009-2n-clx:
- - 36 # rls2009 NDRPDR iter env 5
- - 39 # rls2009 NDRPDR iter env 5
- - 40 # rls2009 NDRPDR iter env 5
- - 65 # rls2009 NDRPDR iter env 5
- - 66 # rls2009 NDRPDR iter env 5
- - 79 # rls2009 NDRPDR iter env 5
- - 82 # rls2009 NDRPDR iter env 5
- - 88 # rls2009 NDRPDR iter env 5
- - 89 # rls2009 NDRPDR iter env 5
- - 90 # rls2009 NDRPDR iter env 5
- - 114 # rls2009 NDRPDR iter NAT44 env 5
- - 115 # rls2009 NDRPDR iter NAT44 env 5
- - 116 # rls2009 NDRPDR iter NAT44 env 5
- - 117 # rls2009 NDRPDR iter NAT44 env 5
- - 118 # rls2009 NDRPDR iter NAT44 env 5
- - 119 # rls2009 NDRPDR iter NAT44 env 5
- - 121 # rls2009 NDRPDR iter NAT44 env 5
- - 122 # rls2009 NDRPDR iter NAT44 env 5
- - 123 # rls2009 NDRPDR iter NAT44 env 5
- - 126 # rls2009 NDRPDR iter NAT44 env 5
- vpp-performance-changes-2n-clx-ref-env-new:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 16 # rls2009 NDRPDR iter env 6
- - 17 # rls2009 NDRPDR iter env 6
- - 18 # rls2009 NDRPDR iter env 6
- - 19 # rls2009 NDRPDR iter env 6
- - 20 # rls2009 NDRPDR iter env 6
- - 21 # rls2009 NDRPDR iter env 6
- - 33 # rls2009 NDRPDR iter env 6
- - 35 # rls2009 NDRPDR iter env 6
- vpp-performance-changes-2n-clx-cmp:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-performance-changes-2n-zn2-ref-env-old:
- csit-vpp-perf-report-iterative-2009-2n-zn2:
- - 17 # rls2009 NDRPDR iter env 5
- - 18 # rls2009 NDRPDR iter env 5
- - 31 # rls2009 NDRPDR iter env 5
- - 33 # rls2009 NDRPDR iter env 5
- - 34 # rls2009 NDRPDR iter env 5
- vpp-performance-changes-2n-zn2-ref-env-new:
- csit-vpp-perf-report-iterative-2101-2n-zn2:
- - 9 # rls2009 NDRPDR iter env 6
- - 10 # rls2009 NDRPDR iter env 6
- - 11 # rls2009 NDRPDR iter env 6
- - 12 # rls2009 NDRPDR iter env 6
- - 13 # rls2009 NDRPDR iter env 6
- - 20 # rls2009 NDRPDR iter env 6
- vpp-performance-changes-2n-zn2-cmp:
- csit-vpp-perf-report-iterative-2101-2n-zn2:
- - 15 # rls2101.rc2 NDRPDR iter env 6
- - 16 # rls2101.rc2 NDRPDR iter env 6
- - 17 # rls2101.rc2 NDRPDR iter env 6
- - 18 # rls2101.rc2 NDRPDR iter env 6
- - 19 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-performance-changes-2n-dnv-h1:
- csit-vpp-perf-report-iterative-2009-2n-dnv:
- - 16 # rls2005 NDRPDR iter env 5
- - 17 # rls2005 NDRPDR iter env 5
- - 18 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 NDRPDR iter env 5
- - 21 # rls2005 NDRPDR iter env 5
- - 24 # rls2005 NDRPDR iter env 5
- - 27 # rls2005 NDRPDR iter env 5
- - 28 # rls2005 NDRPDR iter env 5
- - 29 # rls2005 NDRPDR iter env 5
- - 30 # rls2005 NDRPDR iter env 5
- vpp-performance-changes-2n-dnv-ref-env-old:
- csit-vpp-perf-report-iterative-2009-2n-dnv:
- - 3 # rls2009 NDRPDR iter env 5
- - 5 # rls2009 NDRPDR iter env 5
- - 6 # rls2009 NDRPDR iter env 5
- - 7 # rls2009 NDRPDR iter env 5
- - 9 # rls2009 NDRPDR iter env 5
- - 10 # rls2009 NDRPDR iter env 5
- - 11 # rls2009 NDRPDR iter env 5
- - 12 # rls2009 NDRPDR iter env 5
- - 14 # rls2009 NDRPDR iter env 5
- - 15 # rls2009 NDRPDR iter env 5
- vpp-performance-changes-2n-dnv-ref-env-new:
- # TODO: Re-test in new env
- csit-vpp-perf-report-iterative-2009-2n-dnv:
- - 3 # rls2009 NDRPDR iter env 5
- - 5 # rls2009 NDRPDR iter env 5
- - 6 # rls2009 NDRPDR iter env 5
- - 7 # rls2009 NDRPDR iter env 5
- - 9 # rls2009 NDRPDR iter env 5
- - 10 # rls2009 NDRPDR iter env 5
- - 11 # rls2009 NDRPDR iter env 5
- - 12 # rls2009 NDRPDR iter env 5
- - 14 # rls2009 NDRPDR iter env 5
- - 15 # rls2009 NDRPDR iter env 5
- vpp-performance-changes-2n-dnv-cmp:
- csit-vpp-perf-report-iterative-2101-2n-dnv:
- - 26 # rls2101.rc2 NDRPDR iter env 6
- - 27 # rls2101.rc2 NDRPDR iter env 6
- - 28 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-performance-changes-3n-dnv-h1:
- csit-vpp-perf-report-iterative-2009-3n-dnv:
- - 16 # rls2005 NDRPDR iter env 5
- - 23 # rls2005 NDRPDR iter env 5
- - 25 # rls2005 NDRPDR iter env 5
- - 26 # rls2005 NDRPDR iter env 5
- - 27 # rls2005 NDRPDR iter env 5
- - 28 # rls2005 NDRPDR iter env 5
- - 29 # rls2005 NDRPDR iter env 5
- - 30 # rls2005 NDRPDR iter env 5
- - 31 # rls2005 NDRPDR iter env 5
- - 32 # rls2005 NDRPDR iter env 5
- vpp-performance-changes-3n-dnv-ref-env-old:
- csit-vpp-perf-report-iterative-2009-3n-dnv:
- - 3 # rls2009 NDRPDR iter env 5
- - 6 # rls2009 NDRPDR iter env 5
- - 7 # rls2009 NDRPDR iter env 5
- - 8 # rls2009 NDRPDR iter env 5
- - 10 # rls2009 NDRPDR iter env 5
- - 11 # rls2009 NDRPDR iter env 5
- - 12 # rls2009 NDRPDR iter env 5
- - 14 # rls2009 NDRPDR iter env 5
- - 15 # rls2009 NDRPDR iter env 5
- - 24 # rls2009 NDRPDR iter env 5
- vpp-performance-changes-3n-dnv-ref-env-new:
- # TODO: Re-test in new env
- csit-vpp-perf-report-iterative-2009-3n-dnv:
- - 3 # rls2009 NDRPDR iter env 5
- - 6 # rls2009 NDRPDR iter env 5
- - 7 # rls2009 NDRPDR iter env 5
- - 8 # rls2009 NDRPDR iter env 5
- - 10 # rls2009 NDRPDR iter env 5
- - 11 # rls2009 NDRPDR iter env 5
- - 12 # rls2009 NDRPDR iter env 5
- - 14 # rls2009 NDRPDR iter env 5
- - 15 # rls2009 NDRPDR iter env 5
- - 24 # rls2009 NDRPDR iter env 5
- vpp-performance-changes-3n-dnv-cmp:
- csit-vpp-perf-report-iterative-2101-3n-dnv:
- - 27 # rls2101.rc2 NDRPDR iter env 6
- - 28 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-performance-changes-3n-tsh-h1:
- csit-vpp-perf-report-iterative-2009-3n-tsh:
- - 8 # rls2005 NDRPDR iter env 5
- - 11 # rls2005 NDRPDR iter env 5
- - 12 # rls2005 NDRPDR iter env 5
- - 24 # rls2005 NDRPDR iter env 5
- - 27 # rls2005 NDRPDR iter env 5
- - 29 # rls2005 NDRPDR iter env 5
- - 31 # rls2005 NDRPDR iter env 5
- - 39 # rls2005 NDRPDR iter env 5
- - 40 # rls2005 NDRPDR iter env 5
- - 42 # rls2005 NDRPDR iter env 5
- vpp-performance-changes-3n-tsh-ref-env-old:
- csit-vpp-perf-report-iterative-2009-3n-tsh:
- - 14 # rls2009 NDRPDR iter env 5
- - 20 # rls2009 NDRPDR iter env 5
- - 21 # rls2009 NDRPDR iter env 5
- - 22 # rls2009 NDRPDR iter env 5
- - 23 # rls2009 NDRPDR iter env 5
- - 28 # rls2009 NDRPDR iter env 5
- - 30 # rls2009 NDRPDR iter env 5
- - 33 # rls2009 NDRPDR iter env 5
- - 38 # rls2009 NDRPDR iter env 5
- - 41 # rls2009 NDRPDR iter env 5
- vpp-performance-changes-3n-tsh-ref-env-new:
- csit-vpp-perf-report-iterative-2101-3n-tsh:
- - 8 # rls2009 NDRPDR iter env 6
- - 13 # rls2009 NDRPDR iter env 6
- vpp-performance-changes-3n-tsh-cmp:
- csit-vpp-perf-report-iterative-2101-3n-tsh:
- - 10 # rls2101.rc2 NDRPDR iter env 6
- - 11 # rls2101.rc2 NDRPDR iter env 6
- - 12 # rls2101.rc2 NDRPDR iter env 6
-
-# vpp-performance-changes-2n-tx2-h1:
-# csit-vpp-perf-report-iterative-2009-2n-tx2:
-# -
-# vpp-performance-changes-2n-tx2-ref-env-old:
-# csit-vpp-perf-report-iterative-2009-2n-tx2:
-# -
- vpp-performance-changes-2n-tx2-ref-env-new:
- csit-vpp-perf-report-iterative-2101-2n-tx2:
- - 6 # rls2009 NDRPDR iter env 6
- - 7 # rls2009 NDRPDR iter env 6
- - 11 # rls2009 NDRPDR iter env 6
- - 12 # rls2009 NDRPDR iter env 6
- - 13 # rls2009 NDRPDR iter env 6
- vpp-performance-changes-2n-tx2-cmp:
- csit-vpp-perf-report-iterative-2101-2n-tx2:
- - 8 # rls2101.rc2 NDRPDR iter env 6
- - 10 # rls2101.rc2 NDRPDR iter env 6
- - 14 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-soak-vs-ndr-2n-skx-ref:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 43 # rls2101.rc2 NDRPDR iter env 6
- vpp-soak-vs-ndr-2n-skx-cmp:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 35 # rls2101.rc2 soak env 6
- vpp-soak-vs-ndr-2n-skx:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 43 # rls2101.rc2 NDRPDR iter env 6
- - 35 # rls2101.rc2 soak env 6
-
- vpp-soak-vs-ndr-2n-clx-ref:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
- vpp-soak-vs-ndr-2n-clx-cmp:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 28 # rls2101.rc2 soak env 6
- vpp-soak-vs-ndr-2n-clx:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 28 # rls2101.rc2 soak env 6
-
- vpp-performance-changes-3n-hsw-mrr-h1:
- csit-vpp-perf-report-iterative-2009-3n-hsw:
- - 18 # rls2005 MRR iter env 5
- vpp-performance-changes-3n-hsw-mrr-ref-env-old:
- csit-vpp-perf-report-iterative-2009-3n-hsw:
- - 23 # rls2009 MRR iter env 5
- vpp-performance-changes-3n-hsw-mrr-ref-env-new:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 17 # rls2009 MRR iter env 6
- vpp-performance-changes-3n-hsw-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 29 # rls2101.rc2 MRR iter env 6
-
- vpp-performance-changes-3n-skx-mrr-h1:
- csit-vpp-perf-report-iterative-2009-3n-skx:
- - 17 # rls2005 MRR iter env 5
- vpp-performance-changes-3n-skx-mrr-ref-env-old:
- csit-vpp-perf-report-iterative-2009-3n-skx:
- - 24 # rls2009 MRR iter env 5
- vpp-performance-changes-3n-skx-mrr-ref-env-new:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 12 # rls2009 MRR iter env 6
- vpp-performance-changes-3n-skx-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 19 # rls2101.rc2 MRR iter env 6
-
- vpp-performance-changes-2n-skx-mrr-h1:
- csit-vpp-perf-report-iterative-2009-2n-skx:
- - 20 # rls2005 MRR iter env 5
- vpp-performance-changes-2n-skx-mrr-ref-env-old:
- csit-vpp-perf-report-iterative-2009-2n-skx:
- - 120 # rls2009 MRR iter env 5
- vpp-performance-changes-2n-skx-mrr-ref-env-new:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 21 # rls2009 MRR iter env 6
- vpp-performance-changes-2n-skx-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 29 # rls2101.rc2 MRR iter env 6
-
- vpp-performance-changes-2n-clx-mrr-h1:
- csit-vpp-perf-report-iterative-2009-2n-clx:
- - 77 # rls2005 MRR iter env 5
- vpp-performance-changes-2n-clx-mrr-ref-env-old:
- csit-vpp-perf-report-iterative-2009-2n-clx:
- - 125 # rls2009 MRR iter env 5
- vpp-performance-changes-2n-clx-mrr-ref-env-new:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 15 # rls2009 MRR iter env 6
- vpp-performance-changes-2n-clx-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 22 # rls2101.rc2 MRR iter env 6
-
- vpp-performance-changes-2n-zn2-mrr-ref-env-old:
- csit-vpp-perf-report-iterative-2009-2n-zn2:
- - 15 # rls2009 MRR iter env 5
- vpp-performance-changes-2n-zn2-mrr-ref-env-new:
- csit-vpp-perf-report-iterative-2101-2n-zn2:
- - 8 # rls2009 MRR iter env6
- vpp-performance-changes-2n-zn2-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-2n-zn2:
- - 14 # rls2101.rc2 MRR iter env 6
-
- vpp-performance-changes-2n-dnv-mrr-h1:
- csit-vpp-perf-report-iterative-2009-2n-dnv:
- - 23 # rls2005 MRR iter env 5
- vpp-performance-changes-2n-dnv-mrr-ref-env-old:
- csit-vpp-perf-report-iterative-2009-2n-dnv:
- - 13 # rls2009 MRR iter env 5
- vpp-performance-changes-2n-dnv-mrr-ref-env-new:
- # TODO: Re-test in new env
- csit-vpp-perf-report-iterative-2009-2n-dnv:
- - 13 # rls2009 MRR iter env 5
- vpp-performance-changes-2n-dnv-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-2n-dnv:
- - 15 # rls2101.rc2 MRR iter env 6
-
- vpp-performance-changes-3n-dnv-mrr-h1:
- csit-vpp-perf-report-iterative-2009-3n-dnv:
- - 19 # rls2005 MRR iter env 5
- vpp-performance-changes-3n-dnv-mrr-ref-env-old:
- csit-vpp-perf-report-iterative-2009-3n-dnv:
- - 22 # rls2009 MRR iter env 5
- vpp-performance-changes-3n-dnv-mrr-ref-env-new:
- # TODO: Re-test in new env
- csit-vpp-perf-report-iterative-2009-3n-dnv:
- - 22 # rls2009 MRR iter env 5
- vpp-performance-changes-3n-dnv-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-3n-dnv:
- - 15 # rls2101.rc2 MRR iter env 6
-
- vpp-performance-changes-3n-tsh-mrr-h1:
- csit-vpp-perf-report-iterative-2009-3n-tsh:
- - 13 # rls2005 MRR iter env 5
- vpp-performance-changes-3n-tsh-mrr-ref-env-old:
- csit-vpp-perf-report-iterative-2009-3n-tsh:
- - 15 # rls2009 MRR iter env 5
- vpp-performance-changes-3n-tsh-mrr-ref-env-new:
- csit-vpp-perf-report-iterative-2101-3n-tsh:
- - 7 # rls2009 MRR iter env 6
- vpp-performance-changes-3n-tsh-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-3n-tsh:
- - 9 # rls2101.rc2 MRR iter env 6
-
-# vpp-performance-changes-2n-tx2-mrr-h1:
-# csit-vpp-perf-report-iterative-2009-2n-tx2:
-# -
-# vpp-performance-changes-2n-tx2-mrr-ref-env-old:
-# csit-vpp-perf-report-iterative-2009-2n-tx2:
-# -
- vpp-performance-changes-2n-tx2-mrr-ref-env-new:
- csit-vpp-perf-report-iterative-2101-2n-tx2:
- - 5 # rls2009 MRR iter env 6
- vpp-performance-changes-2n-tx2-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-2n-tx2:
- - 9 # rls2101.rc2 MRR iter env 6
-
- dpdk-performance-changes-3n-hsw-h1:
- csit-dpdk-perf-report-iterative-2005-3n-hsw:
- - 25 # NDRPDR iter
- - 26 # NDRPDR iter
- - 27 # NDRPDR iter
- - 28 # NDRPDR iter
- - 29 # NDRPDR iter
- - 30 # NDRPDR iter
- - 31 # NDRPDR iter
- - 32 # NDRPDR iter
- - 33 # NDRPDR iter
- - 34 # NDRPDR iter
- dpdk-performance-changes-3n-hsw-ref:
- csit-dpdk-perf-report-iterative-2009-3n-hsw:
- - 6 # NDRPDR iter env5
- - 7 # NDRPDR iter env5
- - 8 # NDRPDR iter env5
- - 9 # NDRPDR iter env5
- - 10 # NDRPDR iter env5
- - 11 # NDRPDR iter env5
- - 12 # NDRPDR iter env5
- - 13 # NDRPDR iter env5
- - 14 # NDRPDR iter env5
- - 15 # NDRPDR iter env5
- dpdk-performance-changes-3n-hsw-cmp:
- csit-dpdk-perf-report-iterative-2101-3n-hsw:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 16 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- dpdk-performance-changes-3n-skx-h1:
- csit-dpdk-perf-report-iterative-2005-3n-skx:
- - 28 # NDRPDR iter
- - 29 # NDRPDR iter
- - 30 # NDRPDR iter
- - 31 # NDRPDR iter
- - 32 # NDRPDR iter
- - 33 # NDRPDR iter
- - 34 # NDRPDR iter
- - 35 # NDRPDR iter
- - 36 # NDRPDR iter
- - 37 # NDRPDR iter
- dpdk-performance-changes-3n-skx-ref:
- csit-dpdk-perf-report-iterative-2009-3n-skx:
- - 4 # NDRPDR sel env5
- - 5 # NDRPDR sel env5
- - 6 # NDRPDR sel env5
- - 7 # NDRPDR sel env5
- - 8 # NDRPDR sel env5
- - 9 # NDRPDR sel env5
- - 14 # NDRPDR sel env5
- - 11 # NDRPDR sel env5
- - 12 # NDRPDR sel env5
- - 13 # NDRPDR sel env5
- dpdk-performance-changes-3n-skx-cmp:
- csit-dpdk-perf-report-iterative-2101-3n-skx:
- - 12 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
- - 22 # rls2101 NDRPDR iter env 6
- - 25 # rls2101 NDRPDR iter env 6
- - 26 # rls2101 NDRPDR iter env 6
-
- dpdk-performance-changes-2n-skx-h1:
- csit-dpdk-perf-report-iterative-2005-2n-skx:
- - 20 # NDRPDR iter
- - 21 # NDRPDR iter
- - 22 # NDRPDR iter
- - 23 # NDRPDR iter
- - 24 # NDRPDR iter
- - 25 # NDRPDR iter
- - 26 # NDRPDR iter
- - 27 # NDRPDR iter
- - 28 # NDRPDR iter
- - 29 # NDRPDR iter
- dpdk-performance-changes-2n-skx-ref:
- csit-dpdk-perf-report-iterative-2009-2n-skx:
- - 4 # NDRPDR iter env5
- - 5 # NDRPDR iter env5
- - 6 # NDRPDR iter env5
- - 7 # NDRPDR iter env5
- - 8 # NDRPDR iter env5
- - 9 # NDRPDR iter env5
- - 10 # NDRPDR iter env5
- - 11 # NDRPDR iter env5
- - 12 # NDRPDR iter env5
- - 13 # NDRPDR iter env5
- dpdk-performance-changes-2n-skx-cmp:
- csit-dpdk-perf-report-iterative-2101-2n-skx:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- dpdk-performance-changes-2n-clx-h1:
- csit-dpdk-perf-report-iterative-2005-2n-clx:
- - 20 # NDRPDR iter
- - 21 # NDRPDR iter
- - 22 # NDRPDR iter
- - 23 # NDRPDR iter
- - 24 # NDRPDR iter
- - 25 # NDRPDR iter
- - 26 # NDRPDR iter
- - 27 # NDRPDR iter
- - 28 # NDRPDR iter
- - 29 # NDRPDR iter
- dpdk-performance-changes-2n-clx-ref:
- csit-dpdk-perf-report-iterative-2009-2n-clx:
- - 4 # NDRPDR iter env5
- - 5 # NDRPDR iter env5
- - 6 # NDRPDR iter env5
- - 7 # NDRPDR iter env5
- - 8 # NDRPDR iter env5
- - 9 # NDRPDR iter env5
- - 10 # NDRPDR iter env5
- - 11 # NDRPDR iter env5
- - 12 # NDRPDR iter env5
- - 13 # NDRPDR iter env5
- dpdk-performance-changes-2n-clx-cmp:
- csit-dpdk-perf-report-iterative-2101-2n-clx:
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 22 # rls2101 NDRPDR iter env 6
-
- dpdk-performance-changes-2n-zn2-ref:
- csit-dpdk-perf-report-iterative-2009-2n-zn2:
- - 16 # NDRPDR iter env5
- - 21 # NDRPDR iter env5
- - 22 # NDRPDR iter env5
- - 23 # NDRPDR iter env5
- - 24 # NDRPDR iter env5
- - 25 # NDRPDR iter env5
- - 29 # NDRPDR iter env5
- dpdk-performance-changes-2n-zn2-cmp:
- csit-dpdk-perf-report-iterative-2101-2n-zn2:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 16 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
-# dpdk-performance-changes-2n-dnv-h1:
-# csit-dpdk-perf-verify-2101-2n-dnv:
-# - 9 # NDRPDR sel
-# - 10 # NDRPDR sel
-# - 11 # NDRPDR sel
-# - 12 # NDRPDR sel
-# - 13 # NDRPDR sel
-# - 14 # NDRPDR sel
-# - 15 # NDRPDR sel
-# - 16 # NDRPDR sel
-# - 17 # NDRPDR sel
-# - 18 # NDRPDR sel
-# dpdk-performance-changes-2n-dnv-ref:
-# # No data
-# dpdk-performance-changes-2n-dnv-cmp:
-# # No data
-# csit-dpdk-perf-report-iterative-2009-2n-dnv:
-
-# dpdk-performance-changes-3n-dnv-h1:
-# csit-dpdk-perf-verify-2101-3n-dnv:
-# - 12 # NDRPDR sel
-# - 13 # NDRPDR sel
-# - 14 # NDRPDR sel
-# - 15 # NDRPDR sel
-# - 16 # NDRPDR sel
-# - 17 # NDRPDR sel
-# - 18 # NDRPDR sel
-# - 19 # NDRPDR sel
-# - 20 # NDRPDR sel
-# - 22 # NDRPDR sel
-# dpdk-performance-changes-3n-dnv-ref:
-# # No data
-# dpdk-performance-changes-3n-dnv-cmp:
-# # No data
-# csit-dpdk-perf-report-iterative-2009-3n-dnv:
-
- dpdk-performance-changes-3n-tsh-h1:
- csit-dpdk-perf-report-iterative-2005-3n-tsh:
- - 5 # NDRPDR sel
- dpdk-performance-changes-3n-tsh-ref:
- csit-dpdk-perf-report-iterative-2009-3n-tsh:
- - 1 # NDRPDR iter env5
- - 2 # NDRPDR iter env5
- - 3 # NDRPDR iter env5
- - 4 # NDRPDR iter env5
- - 5 # NDRPDR iter env5
- - 6 # NDRPDR iter env5
- - 7 # NDRPDR iter env5
- - 9 # NDRPDR iter env5
- - 10 # NDRPDR iter env5
- - 11 # NDRPDR iter env5
- dpdk-performance-changes-3n-tsh-cmp:
- csit-dpdk-perf-report-iterative-2101-3n-tsh:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 16 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- # Compare testbeds
-
- vpp-compare-testbeds-ref:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 32 # rls2101.rc2 NDRPDR iter env 6
- - 33 # rls2101.rc2 NDRPDR iter env 6
- - 34 # rls2101.rc2 NDRPDR iter env 6
- - 35 # rls2101.rc2 NDRPDR iter env 6
- - 36 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 39 # rls2101.rc2 NDRPDR iter env 6
- vpp-compare-testbeds-cmp:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 20 # rls2101.rc2 NDRPDR iter env 6
- - 21 # rls2101.rc2 NDRPDR iter env 6
- - 22 # rls2101.rc2 NDRPDR iter env 6
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-compare-testbeds-skx-clx-ref:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 43 # rls2101.rc2 NDRPDR iter env 6
- vpp-compare-testbeds-skx-clx-cmp:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-compare-testbeds-hsw-clx-ref:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 32 # rls2101.rc2 NDRPDR iter env 6
- - 33 # rls2101.rc2 NDRPDR iter env 6
- - 34 # rls2101.rc2 NDRPDR iter env 6
- - 35 # rls2101.rc2 NDRPDR iter env 6
- - 36 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 39 # rls2101.rc2 NDRPDR iter env 6
- vpp-compare-testbeds-hsw-clx-cmp:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-compare-testbeds-mrr-ref:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 29 # rls2101.rc2 MRR iter env 6
- vpp-compare-testbeds-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 19 # rls2101.rc2 MRR iter env 6
-
- vpp-compare-testbeds-mrr-skx-clx-ref:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 29 # rls2101.rc2 MRR iter env 6
- vpp-compare-testbeds-mrr-skx-clx-cmp:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 22 # rls2101.rc2 MRR iter env 6
-
- vpp-compare-testbeds-mrr-hsw-clx-ref:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 29 # rls2101.rc2 MRR iter env 6
- vpp-compare-testbeds-mrr-hsw-clx-cmp:
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 22 # rls2101.rc2 MRR iter env 6
-
- dpdk-compare-testbeds-ref:
- csit-dpdk-perf-report-iterative-2101-3n-hsw:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 16 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
- dpdk-compare-testbeds-cmp:
- csit-dpdk-perf-report-iterative-2101-3n-skx:
- - 12 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
- - 22 # rls2101 NDRPDR iter env 6
- - 25 # rls2101 NDRPDR iter env 6
- - 26 # rls2101 NDRPDR iter env 6
-
- dpdk-compare-testbeds-skx-clx-ref:
- csit-dpdk-perf-report-iterative-2101-2n-skx:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
- dpdk-compare-testbeds-skx-clx-cmp:
- csit-dpdk-perf-report-iterative-2101-2n-clx:
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 22 # rls2101 NDRPDR iter env 6
-
- # Compare topologies
-
- vpp-compare-topologies-ref:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 20 # rls2101.rc2 NDRPDR iter env 6
- - 21 # rls2101.rc2 NDRPDR iter env 6
- - 22 # rls2101.rc2 NDRPDR iter env 6
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
- vpp-compare-topologies-cmp:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 43 # rls2101.rc2 NDRPDR iter env 6
-
- vpp-compare-topologies-mrr-ref:
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 19 # rls2101.rc2 MRR iter env 6
- vpp-compare-topologies-mrr-cmp:
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 29 # rls2101.rc2 MRR iter env 6
-
- dpdk-compare-topologies-ref:
- csit-dpdk-perf-report-iterative-2101-3n-skx:
- - 12 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
- - 22 # rls2101 NDRPDR iter env 6
- - 25 # rls2101 NDRPDR iter env 6
- - 26 # rls2101 NDRPDR iter env 6
- dpdk-compare-topologies-cmp:
- csit-dpdk-perf-report-iterative-2101-2n-skx:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- plot-layouts:
-
- plot-soak-throughput:
- titlefont:
- size: 16
- xaxis:
- title: "<b>Test Cases [Index]</b>"
- titlefont:
- size: 14
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 14
- zeroline: False
- yaxis:
- title: "<b>Critical Rate Lower Bound [Mpps]</b>"
- titlefont:
- size: 14
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4r"
- tickformat: ".3r"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickfont:
- size: 14
- zeroline: False
- range: [0,50]
- autosize: False
- margin:
- t: 50
- b: 0
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 14
- width: 700
- height: 900
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-service-density:
- titlefont:
- size: 16
- xaxis:
- side: "top"
- autorange: True
- fixedrange: False
- showgrid: False
- showline: False
- showticklabels: False
- ticks: ""
- ticklen: 0
- tickwidth: 0
- zeroline: False
- yaxis:
- autorange: "reversed"
- showgrid: False
- showline: False
- showticklabels: False
- ticks: ""
- ticklen: 0
- tickwidth: 0
- zeroline: False
- showlegend: False
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- width: 700
- height: 700
- hoverlabel:
- namelength: -1
-
- plot-hoststack:
- titlefont:
- size: 16
- xaxis:
- title: "<b>Test Cases [Index]</b>"
- titlefont:
- size: 14
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 14
- zeroline: False
- yaxis:
- title: "<b>Bandwidth [Gbps]</b>"
- titlefont:
- size: 14
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4s"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- rangemode: "tozero"
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(230, 230, 230)"
- tickformat: ".3s"
- tickfont:
- size: 14
- zeroline: False
- autosize: False
- margin:
- t: 50
- b: 20
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 14
- width: 700
- height: 800
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-throughput:
- titlefont:
- size: 16
- xaxis:
- title: "<b>Test Cases [Index]</b>"
- titlefont:
- size: 14
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 14
- zeroline: False
- yaxis:
- title: "<b>Packet Throughput [Mpps]</b>"
- titlefont:
- size: 14
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4r"
- tickformat: ".3r"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickfont:
- size: 14
- zeroline: False
- range: [0,50]
- autosize: False
- margin:
- t: 50
- b: 0
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 14
- width: 700
- height: 900
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-throughput-gbps:
- titlefont:
- size: 16
- xaxis:
- title: "<b>Test Cases [Index]</b>"
- titlefont:
- size: 14
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 14
- zeroline: False
- yaxis:
- title: "<b>Packet Throughput [Gbps]</b>"
- titlefont:
- size: 14
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4r"
- tickformat: ".3r"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickfont:
- size: 14
- zeroline: False
- range: [0,10]
- autosize: False
- margin:
- t: 50
- b: 0
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 14
- width: 700
- height: 900
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-cps:
- titlefont:
- size: 16
- xaxis:
- title: "<b>Test Cases [Index]</b>"
- titlefont:
- size: 14
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 14
- zeroline: False
- yaxis:
- title: "<b>Connection Rate [Mcps]</b>"
- titlefont:
- size: 14
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4r"
- tickformat: ".3s"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickfont:
- size: 14
- zeroline: False
- range: [0,10]
- autosize: False
- margin:
- t: 50
- b: 0
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 14
- width: 700
- height: 900
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-throughput-speedup-analysis:
- titlefont:
- size: 16
- xaxis:
- title: "<b>Number of Cores [Qty]</b>"
- titlefont:
- size: 14
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- tickmode: "linear"
- tickfont:
- size: 14
- zeroline: False
- yaxis:
- title: "<b>Packet Throughput [Mpps]</b>"
- titlefont:
- size: 14
- type: "linear"
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4s"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickformat: ".4s"
- tickfont:
- size: 14
- zeroline: True
- rangemode: "tozero"
- range: [0,100]
- legend:
- orientation: "h"
- font:
- size: 14
- xanchor: "left"
- yanchor: "top"
- x: 0
- y: -0.2
- bgcolor: "rgba(255, 255, 255, 0)"
- bordercolor: "rgba(255, 255, 255, 0)"
- traceorder: "normal" # "grouped" does not work: bug https://github.com/plotly/plotly.js/issues/1913
- autosize: False
- margin:
- 't': 50
- 'b': 150
- 'l': 85
- 'r': 10
- showlegend: True
- width: 700
- height: 700
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
- annotations: [
- {
- text: "_ _ __ ...",
- align: "left",
- showarrow: False,
- xref: "paper",
- yref: "paper",
- xanchor: "left",
- yanchor: "top",
- x: 0,
- y: -0.14,
- font: {
- family: "Consolas, Courier New",
- size: 13
- },
- },
- {
- text: " Perfect Measured Limit",
- align: "left",
- showarrow: False,
- xref: "paper",
- yref: "paper",
- xanchor: "left",
- yanchor: "top",
- x: 0,
- y: -0.15,
- font: {
- family: "Consolas, Courier New",
- size: 13
- },
- },
- ]
-
- plot-throughput-speedup-analysis-gbps:
- titlefont:
- size: 16
- xaxis:
- title: "<b>Number of Cores [Qty]</b>"
- titlefont:
- size: 14
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- tickmode: "linear"
- tickfont:
- size: 14
- zeroline: False
- yaxis:
- title: "<b>Packet Throughput [Gbps]</b>"
- titlefont:
- size: 14
- type: "linear"
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4s"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickformat: ".4s"
- tickfont:
- size: 14
- zeroline: True
- rangemode: "tozero"
- range: [0,100]
- legend:
- orientation: "h"
- font:
- size: 14
- xanchor: "left"
- yanchor: "top"
- x: 0
- y: -0.2
- bgcolor: "rgba(255, 255, 255, 0)"
- bordercolor: "rgba(255, 255, 255, 0)"
- traceorder: "normal" # "grouped" does not work: bug https://github.com/plotly/plotly.js/issues/1913
- autosize: False
- margin:
- 't': 50
- 'b': 150
- 'l': 85
- 'r': 10
- showlegend: True
- width: 700
- height: 700
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
- annotations: [
- {
- text: "_ _ __",
- align: "left",
- showarrow: False,
- xref: "paper",
- yref: "paper",
- xanchor: "left",
- yanchor: "top",
- x: 0,
- y: -0.13,
- font: {
- family: "Consolas, Courier New",
- size: 13
- },
- },
- {
- text: " Perfect Measured",
- align: "left",
- showarrow: False,
- xref: "paper",
- yref: "paper",
- xanchor: "left",
- yanchor: "top",
- x: 0,
- y: -0.15,
- font: {
- family: "Consolas, Courier New",
- size: 13
- },
- },
- ]
-
- plot-throughput-speedup-analysis-cps:
- titlefont:
- size: 16
- xaxis:
- title: "<b>Number of Cores [Qty]</b>"
- titlefont:
- size: 14
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- tickmode: "linear"
- tickfont:
- size: 14
- zeroline: False
- yaxis:
- title: "<b>Connection Rate [Mcps]</b>"
- titlefont:
- size: 14
- type: "linear"
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4s"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickformat: ".4s"
- tickfont:
- size: 14
- zeroline: True
- rangemode: "tozero"
- range: [0,100]
- legend:
- orientation: "h"
- font:
- size: 14
- xanchor: "left"
- yanchor: "top"
- x: 0
- y: -0.2
- bgcolor: "rgba(255, 255, 255, 0)"
- bordercolor: "rgba(255, 255, 255, 0)"
- traceorder: "normal" # "grouped" does not work: bug https://github.com/plotly/plotly.js/issues/1913
- autosize: False
- margin:
- 't': 50
- 'b': 150
- 'l': 85
- 'r': 10
- showlegend: True
- width: 700
- height: 700
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
- annotations: [
- {
- text: "_ _ __",
- align: "left",
- showarrow: False,
- xref: "paper",
- yref: "paper",
- xanchor: "left",
- yanchor: "top",
- x: 0,
- y: -0.13,
- font: {
- family: "Consolas, Courier New",
- size: 13
- },
- },
- {
- text: " Perfect Measured",
- align: "left",
- showarrow: False,
- xref: "paper",
- yref: "paper",
- xanchor: "left",
- yanchor: "top",
- x: 0,
- y: -0.15,
- font: {
- family: "Consolas, Courier New",
- size: 13
- },
- },
- ]
-
- plot-latency:
- titlefont:
- size: 16
- xaxis:
- title: "<b>Direction</b>"
- titlefont:
- size: 14
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: False
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 14
- zeroline: False
- yaxis:
- title: "<b>Packet Latency [uSec]</b>"
- titlefont:
- size: 14
- type: "linear"
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4s"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickformat: ".4s"
- tickfont:
- size: 14
- zeroline: True
- rangemode: "tozero"
- legend:
- orientation: "h"
- font:
- size: 14
- traceorder: "normal" # "grouped" does not work: bug https://github.com/plotly/plotly.js/issues/1913
- autosize: False
- margin:
- 't': 50
- 'b': 150
- 'l': 80
- 'r': 10
- showlegend: True
- width: 700
- height: 700
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-hdrh-latency:
- title:
- text: ""
- xanchor: "center"
- x: 0.5
- font:
- size: 16
- width: 700
- plot_bgcolor: "white"
- annotations:
- - font:
- size: 14
- showarrow: False
- text: "<b>Packet Latency [uSec]</b>"
- x: 1
- xanchor: "right"
- xref: "paper"
- y: -0.045
- yanchor: "top"
- yref: "paper"
- - font:
- size: 14
- showarrow: False
- text: "<b>Probability [%]</b>"
- textangle: 270
- x: -0.06
- xanchor: "center"
- xref: "paper"
- y: 0.5
- yanchor: "middle"
- yref: "paper"
- - font:
- size: 14
- showarrow: False
- text: "<b>Direction: E-W</b>"
- x: 0.24
- xanchor: "center"
- xref: "paper"
- y: 1.05
- yanchor: "bottom"
- yref: "paper"
- - font:
- size: 14
- showarrow: False
- text: "<b>Direction: W-E</b>"
- x: 0.74
- xanchor: "center"
- xref: "paper"
- y: 1.05
- yanchor: "bottom"
- yref: "paper"
-
- plot-hdrh-latency-percentile-x-log:
- title:
- text: "<b>Latency by Percentile Distribution</b>"
- xanchor: "center"
- x: 0.5
- font:
- size: 18
- showlegend: True
- legend:
- traceorder: "normal"
- orientation: "h"
- font:
- size: 16
- xanchor: "left"
- yanchor: "top"
- x: 0
- y: -0.2
- bgcolor: "rgba(255, 255, 255, 0)"
- bordercolor: "rgba(255, 255, 255, 0)"
- xaxis:
- type: "log"
- title: "<b>Percentile [%]</b>"
- titlefont:
- size: 14
- autorange: False
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickvals: [1, 2, 1e1, 20, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9]
- ticktext: [0, 50, 90, 95, 99, 99.9, 99.99, 99.999, 99.9999, 99.99999, 99.999999, 99.9999999]
- tickfont:
- size: 14
- yaxis:
- title: "<b>One-Way Latency per Direction [uSec]</b>"
- titlefont:
- size: 14
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickfont:
- size: 14
- autosize: False
- width: 700
- height: 700
- paper_bgcolor: "white"
- plot_bgcolor: "white"
-
- plot-hdrh-latency-by-percentile:
- title:
- text: "<b>Latency by Percentile Distribution</b>"
- xanchor: "center"
- x: 0.5
- font:
- size: 18
- showlegend: True
- legend:
- traceorder: "normal"
- orientation: "h"
- font:
- size: 16
- xanchor: "left"
- yanchor: "top"
- x: 0
- y: -0.2
- bgcolor: "rgba(255, 255, 255, 0)"
- bordercolor: "rgba(255, 255, 255, 0)"
- xaxis:
- type: "linear"
- title: "<b>Percentile [%]</b>"
- titlefont:
- size: 14
- autorange: False
- fixedrange: False
- range: [0, 100]
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickvals: [0, 25, 50, 75, 100]
- ticktext: [0, 25, 50, 75, 100]
- tickfont:
- size: 14
- yaxis:
- title: "<b>One-Way Latency per Direction [uSec]</b>"
- titlefont:
- size: 14
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickfont:
- size: 14
- width: 700
- height: 700
- paper_bgcolor: "white"
- plot_bgcolor: "white"
-
-- type: "static"
- src-path: "{DIR[RST]}"
- dst-path: "{DIR[WORKING,SRC]}"
-
-- type: "input"
- general:
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- arch-file-format:
- - ".gz"
- - ".zip"
- download-path: "{job}/{build}/archives/{filename}"
- extract: "output.xml"
-
- zip-file-name: "robot-plugin.zip"
- zip-file-format: ".zip"
- zip-download-path: "{job}/{build}/robot/report/*zip*/{filename}"
- zip-extract: "robot-plugin/output.xml"
-
- builds:
-
- csit-vpp-perf-report-iterative-2009-3n-hsw:
- - 18 # rls2005 MRR iter env 5
- - 9 # rls2005 NDRPDR iter env 5
- - 10 # rls2005 NDRPDR iter env 5
- - 11 # rls2005 NDRPDR iter env 5
- - 12 # rls2005 NDRPDR iter env 5
- - 13 # rls2005 NDRPDR iter env 5
- - 14 # rls2005 NDRPDR iter env 5
- - 15 # rls2005 NDRPDR iter env 5
- - 16 # rls2005 NDRPDR iter env 5
- - 17 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 NDRPDR iter env 5
- - 23 # rls2009 MRR iter env 5
- - 21 # rls2009 NDRPDR iter env 5
- - 22 # rls2009 NDRPDR iter env 5
- - 24 # rls2009 NDRPDR iter env 5
- - 25 # rls2009 NDRPDR iter env 5
- - 26 # rls2009 NDRPDR iter env 5
- - 27 # rls2009 NDRPDR iter env 5
- - 28 # rls2009 NDRPDR iter env 5
- - 29 # rls2009 NDRPDR iter env 5
- - 30 # rls2009 NDRPDR iter env 5
- - 31 # rls2009 NDRPDR iter env 5
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 17 # rls2009 MRR iter env 6
- - 19 # rls2009 NDRPDR iter env 6
- - 20 # rls2009 NDRPDR iter env 6
- - 21 # rls2009 NDRPDR iter env 6
- - 22 # rls2009 NDRPDR iter env 6
- - 23 # rls2009 NDRPDR iter env 6
- - 24 # rls2009 NDRPDR iter env 6
- - 25 # rls2009 NDRPDR iter env 6
- - 26 # rls2009 NDRPDR iter env 6
- - 27 # rls2009 NDRPDR iter env 6
- - 28 # rls2009 NDRPDR iter env 6
- - 29 # rls2101.rc2 MRR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 32 # rls2101.rc2 NDRPDR iter env 6
- - 33 # rls2101.rc2 NDRPDR iter env 6
- - 34 # rls2101.rc2 NDRPDR iter env 6
- - 35 # rls2101.rc2 NDRPDR iter env 6
- - 36 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 39 # rls2101.rc2 NDRPDR iter env 6
- - 45 # rls2101.rc2 Hoststack iter env 6
- - 47 # rls2101.rc2 Hoststack iter env 6
- # csit-vpp-perf-report-coverage-2101-3n-hsw:
-
-
- csit-vpp-perf-report-iterative-2009-3n-skx:
- - 17 # rls2005 MRR iter env 5
- - 13 # rls2005 NDRPDR iter env 5
- - 18 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 NDRPDR iter env 5
- - 41 # rls2005 NDRPDR iter env 5
- - 43 # rls2005 NDRPDR iter env 5
- - 44 # rls2005 NDRPDR iter env 5
- - 45 # rls2005 NDRPDR iter env 5
- - 46 # rls2005 NDRPDR iter env 5
- - 48 # rls2005 NDRPDR iter env 5
- - 49 # rls2005 NDRPDR iter env 5
- - 24 # rls2009 MRR iter env 5
- - 26 # rls2009 NDRPDR iter env 5
- - 27 # rls2009 NDRPDR iter env 5
- - 28 # rls2009 NDRPDR iter env 5
- - 29 # rls2009 NDRPDR iter env 5
- - 35 # rls2009 NDRPDR iter env 5
- - 36 # rls2009 NDRPDR iter env 5
- - 37 # rls2009 NDRPDR iter env 5
- - 38 # rls2009 NDRPDR iter env 5
- - 39 # rls2009 NDRPDR iter env 5
- - 40 # rls2009 NDRPDR iter env 5
- csit-vpp-perf-report-iterative-2101-3n-skx:
- - 12 # rls2009 MRR iter env 6
- - 14 # rls2009 NDRPDR iter env 6
- - 15 # rls2009 NDRPDR iter env 6
- - 16 # rls2009 NDRPDR iter env 6
- - 17 # rls2009 NDRPDR iter env 6
- - 18 # rls2009 NDRPDR iter env 6
- - 25 # rls2009 NDRPDR iter env 6
- - 27 # rls2009 NDRPDR iter env 6
- - 28 # rls2009 NDRPDR iter env 6
- - 19 # rls2101.rc2 MRR iter env 6
- - 20 # rls2101.rc2 NDRPDR iter env 6
- - 21 # rls2101.rc2 NDRPDR iter env 6
- - 22 # rls2101.rc2 NDRPDR iter env 6
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
- # csit-vpp-perf-report-coverage-2101-3n-skx:
-
-
- csit-vpp-perf-report-iterative-2009-2n-skx:
- - 20 # rls2005 MRR iter env 5
- - 13 # rls2005 NDRPDR iter env 5
- - 16 # rls2005 NDRPDR iter env 5
- - 17 # rls2005 NDRPDR iter env 5
- - 18 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 NDRPDR iter env 5
- - 21 # rls2005 NDRPDR iter env 5
- - 22 # rls2005 NDRPDR iter env 5
- - 23 # rls2005 NDRPDR iter env 5
- - 24 # rls2005 NDRPDR iter env 5
- - 25 # rls2005 NDRPDR iter env 5
- - 120 # rls2009 MRR iter env 5
- - 35 # rls2009 NDRPDR iter env 5
- - 36 # rls2009 NDRPDR iter env 5
- - 37 # rls2009 NDRPDR iter env 5
- - 39 # rls2009 NDRPDR iter env 5
- - 40 # rls2009 NDRPDR iter env 5
- - 42 # rls2009 NDRPDR iter env 5
- - 43 # rls2009 NDRPDR iter env 5
- - 44 # rls2009 NDRPDR iter env 5
- - 46 # rls2009 NDRPDR iter env 5
- - 48 # rls2009 NDRPDR iter env 5
- - 110 # rls2009 NDRPDR iter NAT44 env 5
- - 111 # rls2009 NDRPDR iter NAT44 env 5
- - 112 # rls2009 NDRPDR iter NAT44 env 5
- - 113 # rls2009 NDRPDR iter NAT44 env 5
- - 114 # rls2009 NDRPDR iter NAT44 env 5
- - 115 # rls2009 NDRPDR iter NAT44 env 5
- - 116 # rls2009 NDRPDR iter NAT44 env 5
- - 118 # rls2009 NDRPDR iter NAT44 env 5
- - 119 # rls2009 NDRPDR iter NAT44 env 5
- - 121 # rls2009 NDRPDR iter NAT44 env 5
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 21 # rls2009 MRR iter env 6
- - 22 # rls2009 NDRPDR iter env 6
- - 23 # rls2009 NDRPDR iter env 6
- - 24 # rls2009 NDRPDR iter env 6
- - 25 # rls2009 NDRPDR iter env 6
- - 26 # rls2009 NDRPDR iter env 6
- - 28 # rls2009 NDRPDR iter env 6
- - 39 # rls2009 NDRPDR iter env 6
- - 40 # rls2009 NDRPDR iter env 6
- - 41 # rls2009 NDRPDR iter env 6
- - 29 # rls2101.rc2 MRR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- - 37 # rls2101.rc2 NDRPDR iter env 6
- - 38 # rls2101.rc2 NDRPDR iter env 6
- - 43 # rls2101.rc2 NDRPDR iter env 6
- - 32 # rls2101.rc2 MRR nf-density iter env 6
- - 33 # rls2101.rc2 NDRPDR nf-density iter env 6
- - 34 # rls2101.rc2 NDRPDR reconf iter env 6
- - 35 # rls2101.rc2 soak env 6
- # csit-vpp-perf-report-coverage-2101-2n-skx:
-
-
- csit-vpp-perf-report-iterative-2009-2n-clx:
- - 77 # rls2005 MRR iter env 5
- - 13 # rls2005 NDRPDR iter env 5
- - 15 # rls2005 NDRPDR iter env 5
- - 17 # rls2005 NDRPDR iter env 5
- - 18 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 NDRPDR iter env 5
- - 20 # rls2005 NDRPDR iter env 5
- - 21 # rls2005 NDRPDR iter env 5
- - 22 # rls2005 NDRPDR iter env 5
- - 23 # rls2005 NDRPDR iter env 5
- - 24 # rls2005 NDRPDR iter env 5
- - 125 # rls2009 MRR iter env 5
- - 36 # rls2009 NDRPDR iter env 5
- - 39 # rls2009 NDRPDR iter env 5
- - 40 # rls2009 NDRPDR iter env 5
- - 65 # rls2009 NDRPDR iter env 5
- - 66 # rls2009 NDRPDR iter env 5
- - 79 # rls2009 NDRPDR iter env 5
- - 82 # rls2009 NDRPDR iter env 5
- - 88 # rls2009 NDRPDR iter env 5
- - 89 # rls2009 NDRPDR iter env 5
- - 90 # rls2009 NDRPDR iter env 5
- - 114 # rls2009 NDRPDR iter NAT44 env 5
- - 115 # rls2009 NDRPDR iter NAT44 env 5
- - 116 # rls2009 NDRPDR iter NAT44 env 5
- - 117 # rls2009 NDRPDR iter NAT44 env 5
- - 118 # rls2009 NDRPDR iter NAT44 env 5
- - 119 # rls2009 NDRPDR iter NAT44 env 5
- - 121 # rls2009 NDRPDR iter NAT44 env 5
- - 122 # rls2009 NDRPDR iter NAT44 env 5
- - 123 # rls2009 NDRPDR iter NAT44 env 5
- - 126 # rls2009 NDRPDR iter NAT44 env 5
- csit-vpp-perf-report-iterative-2101-2n-clx:
- - 15 # rls2009 MRR iter env 6
- - 16 # rls2009 NDRPDR iter env 6
- - 17 # rls2009 NDRPDR iter env 6
- - 18 # rls2009 NDRPDR iter env 6
- - 19 # rls2009 NDRPDR iter env 6
- - 20 # rls2009 NDRPDR iter env 6
- - 21 # rls2009 NDRPDR iter env 6
- - 33 # rls2009 NDRPDR iter env 6
- - 35 # rls2009 NDRPDR iter env 6
- - 22 # rls2101.rc2 MRR iter env 6
- - 23 # rls2101.rc2 NDRPDR iter env 6
- - 24 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 25 # rls2101.rc2 MRR nf-density iter env 6
- - 26 # rls2101.rc2 NDRPDR nf-density iter env 6
- - 27 # rls2101.rc2 NDRPDR reconf iter env 6
- - 28 # rls2101.rc2 soak env 6
- # csit-vpp-perf-report-coverage-2101-2n-clx:
-
-
- csit-vpp-perf-report-iterative-2009-2n-zn2:
- - 15 # rls2009 MRR iter env 5
- - 17 # rls2009 NDRPDR iter env 5
- - 18 # rls2009 NDRPDR iter env 5
- - 31 # rls2009 NDRPDR iter env 5
- - 33 # rls2009 NDRPDR iter env 5
- - 34 # rls2009 NDRPDR iter env 5
- csit-vpp-perf-report-iterative-2101-2n-zn2:
- - 8 # rls2009 MRR iter env6
- - 9 # rls2009 NDRPDR iter env 6
- - 10 # rls2009 NDRPDR iter env 6
- - 11 # rls2009 NDRPDR iter env 6
- - 12 # rls2009 NDRPDR iter env 6
- - 13 # rls2009 NDRPDR iter env 6
- - 20 # rls2009 NDRPDR iter env 6
- - 14 # rls2101.rc2 MRR iter env 6
- - 15 # rls2101.rc2 NDRPDR iter env 6
- - 16 # rls2101.rc2 NDRPDR iter env 6
- - 17 # rls2101.rc2 NDRPDR iter env 6
- - 18 # rls2101.rc2 NDRPDR iter env 6
- - 19 # rls2101.rc2 NDRPDR iter env 6
-
- csit-vpp-perf-report-iterative-2009-3n-tsh:
- - 8 # rls2005 NDRPDR iter env 5
- - 11 # rls2005 NDRPDR iter env 5
- - 12 # rls2005 NDRPDR iter env 5
- - 24 # rls2005 NDRPDR iter env 5
- - 27 # rls2005 NDRPDR iter env 5
- - 29 # rls2005 NDRPDR iter env 5
- - 31 # rls2005 NDRPDR iter env 5
- - 39 # rls2005 NDRPDR iter env 5
- - 40 # rls2005 NDRPDR iter env 5
- - 42 # rls2005 NDRPDR iter env 5
- - 13 # rls2005 MRR iter env 5
- - 14 # rls2009 NDRPDR iter env 5
- - 20 # rls2009 NDRPDR iter env 5
- - 21 # rls2009 NDRPDR iter env 5
- - 22 # rls2009 NDRPDR iter env 5
- - 23 # rls2009 NDRPDR iter env 5
- - 28 # rls2009 NDRPDR iter env 5
- - 30 # rls2009 NDRPDR iter env 5
- - 33 # rls2009 NDRPDR iter env 5
- - 38 # rls2009 NDRPDR iter env 5
- - 41 # rls2009 NDRPDR iter env 5
- - 15 # rls2009 MRR iter env 5
- csit-vpp-perf-report-iterative-2101-3n-tsh:
- - 7 # rls2009 MRR iter env 6
- - 8 # rls2009 NDRPDR iter env 6
- - 13 # rls2009 NDRPDR iter env 6
- - 9 # rls2101.rc2 MRR iter env 6
- - 10 # rls2101.rc2 NDRPDR iter env 6
- - 11 # rls2101.rc2 NDRPDR iter env 6
- - 12 # rls2101.rc2 NDRPDR iter env 6
-
- csit-vpp-perf-report-iterative-2101-2n-tx2:
- - 5 # rls2009 MRR iter env 6
- - 6 # rls2009 NDRPDR iter env 6
- - 7 # rls2009 NDRPDR iter env 6
- - 11 # rls2009 NDRPDR iter env 6
- - 12 # rls2009 NDRPDR iter env 6
- - 13 # rls2009 NDRPDR iter env 6
- - 9 # rls2101.rc2 MRR iter env 6
- - 8 # rls2101.rc2 NDRPDR iter env 6
- - 10 # rls2101.rc2 NDRPDR iter env 6
- - 14 # rls2101.rc2 NDRPDR iter env 6
-
-
- csit-vpp-perf-report-iterative-2009-3n-dnv:
- - 16 # rls2005 NDRPDR iter env 5
- - 23 # rls2005 NDRPDR iter env 5
- - 25 # rls2005 NDRPDR iter env 5
- - 26 # rls2005 NDRPDR iter env 5
- - 27 # rls2005 NDRPDR iter env 5
- - 28 # rls2005 NDRPDR iter env 5
- - 29 # rls2005 NDRPDR iter env 5
- - 30 # rls2005 NDRPDR iter env 5
- - 31 # rls2005 NDRPDR iter env 5
- - 32 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 MRR iter env 5
- - 3 # rls2009 NDRPDR iter env 5
- - 6 # rls2009 NDRPDR iter env 5
- - 7 # rls2009 NDRPDR iter env 5
- - 8 # rls2009 NDRPDR iter env 5
- - 10 # rls2009 NDRPDR iter env 5
- - 11 # rls2009 NDRPDR iter env 5
- - 12 # rls2009 NDRPDR iter env 5
- - 14 # rls2009 NDRPDR iter env 5
- - 15 # rls2009 NDRPDR iter env 5
- - 24 # rls2009 NDRPDR iter env 5
- - 22 # rls2009 MRR iter env 5
- csit-vpp-perf-report-iterative-2101-3n-dnv:
- - 15 # rls2101.rc2 MRR iter env 6
- - 27 # rls2101.rc2 NDRPDR iter env 6
- - 28 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
- - 31 # rls2101.rc2 NDRPDR iter env 6
- # csit-vpp-perf-report-coverage-2101-3n-dnv:
-
-
- csit-vpp-perf-report-iterative-2009-2n-dnv:
- - 16 # rls2005 NDRPDR iter env 5
- - 17 # rls2005 NDRPDR iter env 5
- - 18 # rls2005 NDRPDR iter env 5
- - 19 # rls2005 NDRPDR iter env 5
- - 21 # rls2005 NDRPDR iter env 5
- - 24 # rls2005 NDRPDR iter env 5
- - 27 # rls2005 NDRPDR iter env 5
- - 28 # rls2005 NDRPDR iter env 5
- - 29 # rls2005 NDRPDR iter env 5
- - 30 # rls2005 NDRPDR iter env 5
- - 23 # rls2005 MRR iter env 5
- - 3 # rls2009 NDRPDR iter env 5
- - 5 # rls2009 NDRPDR iter env 5
- - 6 # rls2009 NDRPDR iter env 5
- - 7 # rls2009 NDRPDR iter env 5
- - 9 # rls2009 NDRPDR iter env 5
- - 10 # rls2009 NDRPDR iter env 5
- - 11 # rls2009 NDRPDR iter env 5
- - 12 # rls2009 NDRPDR iter env 5
- - 14 # rls2009 NDRPDR iter env 5
- - 15 # rls2009 NDRPDR iter env 5
- - 13 # rls2009 MRR iter env 5
- csit-vpp-perf-report-iterative-2101-2n-dnv:
- - 15 # rls2101.rc2 MRR iter env 6
- - 26 # rls2101.rc2 NDRPDR iter env 6
- - 27 # rls2101.rc2 NDRPDR iter env 6
- - 28 # rls2101.rc2 NDRPDR iter env 6
- - 29 # rls2101.rc2 NDRPDR iter env 6
- - 30 # rls2101.rc2 NDRPDR iter env 6
- # csit-vpp-perf-report-coverage-2101-2n-dnv:
-
-
- csit-dpdk-perf-report-iterative-2005-3n-hsw:
- - 25 # NDRPDR iter
- - 26 # NDRPDR iter
- - 27 # NDRPDR iter
- - 28 # NDRPDR iter
- - 29 # NDRPDR iter
- - 30 # NDRPDR iter
- - 31 # NDRPDR iter
- - 32 # NDRPDR iter
- - 33 # NDRPDR iter
- - 34 # NDRPDR iter
- csit-dpdk-perf-report-iterative-2009-3n-hsw:
- - 6 # NDRPDR iter env5
- - 7 # NDRPDR iter env5
- - 8 # NDRPDR iter env5
- - 9 # NDRPDR iter env5
- - 10 # NDRPDR iter env5
- - 11 # NDRPDR iter env5
- - 12 # NDRPDR iter env5
- - 13 # NDRPDR iter env5
- - 14 # NDRPDR iter env5
- - 15 # NDRPDR iter env5
- csit-dpdk-perf-report-iterative-2101-3n-hsw:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 16 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- csit-dpdk-perf-report-iterative-2005-3n-skx:
- - 28 # NDRPDR iter
- - 29 # NDRPDR iter
- - 30 # NDRPDR iter
- - 31 # NDRPDR iter
- - 32 # NDRPDR iter
- - 33 # NDRPDR iter
- - 34 # NDRPDR iter
- - 35 # NDRPDR iter
- - 36 # NDRPDR iter
- - 37 # NDRPDR iter
- csit-dpdk-perf-report-iterative-2009-3n-skx:
- - 4 # NDRPDR sel env5
- - 5 # NDRPDR sel env5
- - 6 # NDRPDR sel env5
- - 7 # NDRPDR sel env5
- - 8 # NDRPDR sel env5
- - 9 # NDRPDR sel env5
- - 14 # NDRPDR sel env5
- - 11 # NDRPDR sel env5
- - 12 # NDRPDR sel env5
- - 13 # NDRPDR sel env5
- csit-dpdk-perf-report-iterative-2101-3n-skx:
- - 12 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
- - 22 # rls2101 NDRPDR iter env 6
- - 25 # rls2101 NDRPDR iter env 6
- - 26 # rls2101 NDRPDR iter env 6
-
- csit-dpdk-perf-report-iterative-2005-2n-skx:
- - 20 # NDRPDR iter
- - 21 # NDRPDR iter
- - 22 # NDRPDR iter
- - 23 # NDRPDR iter
- - 24 # NDRPDR iter
- - 25 # NDRPDR iter
- - 26 # NDRPDR iter
- - 27 # NDRPDR iter
- - 28 # NDRPDR iter
- - 29 # NDRPDR iter
- csit-dpdk-perf-report-iterative-2009-2n-skx:
- - 4 # NDRPDR iter env5
- - 5 # NDRPDR iter env5
- - 6 # NDRPDR iter env5
- - 7 # NDRPDR iter env5
- - 8 # NDRPDR iter env5
- - 9 # NDRPDR iter env5
- - 10 # NDRPDR iter env5
- - 11 # NDRPDR iter env5
- - 12 # NDRPDR iter env5
- - 13 # NDRPDR iter env5
- csit-dpdk-perf-report-iterative-2101-2n-skx:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- csit-dpdk-perf-report-iterative-2005-2n-clx:
- - 20 # NDRPDR iter
- - 21 # NDRPDR iter
- - 22 # NDRPDR iter
- - 23 # NDRPDR iter
- - 24 # NDRPDR iter
- - 25 # NDRPDR iter
- - 26 # NDRPDR iter
- - 27 # NDRPDR iter
- - 28 # NDRPDR iter
- - 29 # NDRPDR iter
- csit-dpdk-perf-report-iterative-2009-2n-clx:
- - 4 # NDRPDR iter env5
- - 5 # NDRPDR iter env5
- - 6 # NDRPDR iter env5
- - 7 # NDRPDR iter env5
- - 8 # NDRPDR iter env5
- - 9 # NDRPDR iter env5
- - 10 # NDRPDR iter env5
- - 11 # NDRPDR iter env5
- - 12 # NDRPDR iter env5
- - 13 # NDRPDR iter env5
- csit-dpdk-perf-report-iterative-2101-2n-clx:
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 15 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
- - 22 # rls2101 NDRPDR iter env 6
-
- csit-dpdk-perf-report-iterative-2009-2n-zn2:
- - 16 # NDRPDR iter env5
- - 21 # NDRPDR iter env5
- - 22 # NDRPDR iter env5
- - 23 # NDRPDR iter env5
- - 24 # NDRPDR iter env5
- - 25 # NDRPDR iter env5
- - 29 # NDRPDR iter env5
- csit-dpdk-perf-report-iterative-2101-2n-zn2:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 16 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
-# csit-dpdk-perf-report-iterative-2005-2n-dnv:
-# # No data
-# # csit-dpdk-perf-report-iterative-2009-2n-dnv:
-# # No data
-
-# csit-dpdk-perf-report-iterative-2005-3n-dnv:
-# # No data
-# # csit-dpdk-perf-report-iterative-2009-3n-dnv:
-# # No data
-
- csit-dpdk-perf-report-iterative-2005-3n-tsh:
- - 5 # NDRPDR sel
- csit-dpdk-perf-report-iterative-2009-3n-tsh:
- - 1 # NDRPDR iter env5
- - 2 # NDRPDR iter env5
- - 3 # NDRPDR iter env5
- - 4 # NDRPDR iter env5
- - 5 # NDRPDR iter env5
- - 6 # NDRPDR iter env5
- - 7 # NDRPDR iter env5
- - 9 # NDRPDR iter env5
- - 10 # NDRPDR iter env5
- - 11 # NDRPDR iter env5
- csit-dpdk-perf-report-iterative-2101-3n-tsh:
- - 11 # rls2101 NDRPDR iter env 6
- - 12 # rls2101 NDRPDR iter env 6
- - 13 # rls2101 NDRPDR iter env 6
- - 14 # rls2101 NDRPDR iter env 6
- - 16 # rls2101 NDRPDR iter env 6
- - 17 # rls2101 NDRPDR iter env 6
- - 18 # rls2101 NDRPDR iter env 6
- - 19 # rls2101 NDRPDR iter env 6
- - 20 # rls2101 NDRPDR iter env 6
- - 21 # rls2101 NDRPDR iter env 6
-
- csit-dpdk-perf-report-iterative-2101-2n-tx2:
- - 4 # rls2101 NDRPDR iter env 6
- - 6 # rls2101 NDRPDR iter env 6
- - 7 # rls2101 NDRPDR iter env 6
- - 8 # rls2101 NDRPDR iter env 6
-
- csit-vpp-device-2101-ubuntu1804-1n-skx:
- - 308 # rls2101.rc2 VPP DEV env 6
-
-- type: "output"
- output: "report"
- format:
- html:
- - full
-# pdf:
-# - minimal
-
-################################################################################
-### T A B L E S ###
-################################################################################
-
-# VPP Soak vs NDR - 2n-skx
-- type: "table"
- title: "VPP Soak vs NDR 2n-skx"
- algorithm: "table_soak_vs_ndr"
- output-file: "{DIR[STATIC,VPP]}/soak-vs-ndr-2n-skx"
- reference:
- title: "NDR"
- data: "vpp-soak-vs-ndr-2n-skx-ref"
- compare:
- title: "Soak"
- data: "vpp-soak-vs-ndr-2n-skx-cmp"
- data: "vpp-soak-vs-ndr-2n-skx"
- include-tests: "NDR"
- filter: "('NDRPDR' or 'SOAK') and not 'NF_DENSITY'"
- parameters:
- - "throughput"
- - "name"
- - "parent"
-
-# VPP Soak vs NDR - 2n-clx
-- type: "table"
- title: "VPP Soak vs NDR 2n-clx"
- algorithm: "table_soak_vs_ndr"
- output-file: "{DIR[STATIC,VPP]}/soak-vs-ndr-2n-clx"
- reference:
- title: "NDR"
- data: "vpp-soak-vs-ndr-2n-clx-ref"
- compare:
- title: "Soak"
- data: "vpp-soak-vs-ndr-2n-clx-cmp"
- data: "vpp-soak-vs-ndr-2n-clx"
- include-tests: "NDR"
- filter: "('NDRPDR' or 'SOAK') and not 'NF_DENSITY'"
- parameters:
- - "throughput"
- - "name"
- - "parent"
-
-################################################################################
-
-# VPP Compare NICs 3n-skx 2t1c ndr
-- type: "table"
- title: "VPP Compare NICs 3n-skx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-2t1c-nics-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-3n-skx"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-3n-skx"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 3n-skx 4t2c ndr
-- type: "table"
- title: "VPP Compare NICs 3n-skx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-4t2c-nics-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-3n-skx"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-3n-skx"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 3n-skx 2t1c pdr
-- type: "table"
- title: "VPP Compare NICs 3n-skx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-2t1c-nics-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-3n-skx"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-3n-skx"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 3n-skx 4t2c pdr
-- type: "table"
- title: "VPP Compare NICs 3n-skx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-4t2c-nics-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-3n-skx"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-3n-skx"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 3n-skx 2t1c mrr
-- type: "table"
- title: "VPP Compare NICs 3n-skx 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-2t1c-nics-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'MRR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-3n-skx-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-3n-skx-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 3n-skx 4t2c mrr
-- type: "table"
- title: "VPP Compare NICs 3n-skx 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-4t2c-nics-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'MRR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-3n-skx-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-3n-skx-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 3n-skx 8t4c mrr
-- type: "table"
- title: "VPP Compare NICs 3n-skx 8t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-8t4c-nics-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'8T4C' and 'MRR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-3n-skx-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-3n-skx-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 2n-skx 2t1c ndr
-- type: "table"
- title: "VPP Compare NICs 2n-skx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-2t1c-nics-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-2n-skx"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-2n-skx"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 2n-skx 4t2c ndr
-- type: "table"
- title: "VPP Compare NICs 2n-skx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-4t2c-nics-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-2n-skx"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-2n-skx"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 2n-skx 2t1c pdr
-- type: "table"
- title: "VPP Compare NICs 2n-skx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-2t1c-nics-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-2n-skx"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-2n-skx"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 2n-skx 4t2c pdr
-- type: "table"
- title: "VPP Compare NICs 2n-skx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-4t2c-nics-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-2n-skx"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-2n-skx"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 2n-skx 2t1c mrr
-- type: "table"
- title: "VPP Compare NICs 2n-skx 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-2t1c-nics-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'MRR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-2n-skx-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-2n-skx-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 2n-skx 4t2c mrr
-- type: "table"
- title: "VPP Compare NICs 2n-skx 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-4t2c-nics-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'MRR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-2n-skx-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-2n-skx-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-# VPP Compare NICs 2n-skx 8t4c mrr
-- type: "table"
- title: "VPP Compare NICs 2n-skx 8t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-8t4c-nics-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'8T4C' and 'MRR' and not 'NF_DENSITY'"
- columns:
- - title: "x710"
- data-set: "vpp-nic-comparison-2n-skx-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-nic-comparison-2n-skx-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "x710, xxv710 - NICs tested."
- - "Diff - difference between x710 and xxv710 NIC."
-
-################################################################################
-# VPP
-
-# VPP Performance Changes 3n-hsw 1t1c pdr
-- type: "table"
- title: "VPP Performance Changes 3n-hsw 1t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-hsw-1t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-XL710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-hsw-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-hsw-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-hsw-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-hsw-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-hsw-1t1c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-hsw-1t1c-pdr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-hsw with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-hsw 2t2c pdr
-- type: "table"
- title: "VPP Performance Changes 3n-hsw 2t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-hsw-2t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C' and 'NDRPDR' and 'NIC_Intel-XL710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-hsw-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-hsw-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-hsw-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-hsw-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-hsw-2t2c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-hsw-2t2c-pdr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-hsw with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-hsw 1t1c ndr
-- type: "table"
- title: "VPP Performance Changes 3n-hsw 1t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-hsw-1t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-XL710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-hsw-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-hsw-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-hsw-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-hsw-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-hsw-1t1c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-hsw-1t1c-ndr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-hsw with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-hsw 2t2c ndr
-- type: "table"
- title: "VPP Performance Changes 3n-hsw 2t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-hsw-2t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C' and 'NDRPDR' and 'NIC_Intel-XL710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-hsw-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-hsw-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-hsw-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-hsw-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-hsw-2t2c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-hsw-2t2c-ndr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-hsw with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-skx 2t1c pdr
-- type: "table"
- title: "VPP Performance Changes 3n-skx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-skx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-skx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-skx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-skx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-skx-2t1c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-skx-2t1c-pdr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-skx 4t2c pdr
-- type: "table"
- title: "VPP Performance Changes 3n-skx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-skx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-skx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-skx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-skx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-skx-4t2c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-skx-4t2c-pdr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-skx 2t1c ndr
-- type: "table"
- title: "VPP Performance Changes 3n-skx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-skx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-skx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-skx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-skx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-skx-2t1c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-skx-2t1c-ndr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-skx 4t2c ndr
-- type: "table"
- title: "VPP Performance Changes 3n-skx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-skx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-skx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-skx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-skx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-skx-4t2c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-skx-4t2c-ndr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-skx 2t1c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-skx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-skx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-skx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-skx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-skx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-skx-2t1c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-skx-2t1c-pdr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-skx 4t2c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-skx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-skx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-skx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-skx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-skx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-skx-4t2c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-skx-4t2c-pdr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-skx 2t1c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-skx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-skx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-skx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-skx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-skx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-skx-2t1c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-skx-2t1c-ndr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-skx 4t2c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-skx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-skx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-skx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-skx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-skx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-skx-4t2c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-skx-4t2c-ndr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-xxv710 2t1c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-xxv710 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-xxv710-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-clx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-clx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-clx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-clx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-clx-2t1c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-clx-2t1c-pdr-rca1.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-xxv710 4t2c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-xxv710 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-xxv710-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-clx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-clx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-clx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-clx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-clx-4t2c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-clx-4t2c-pdr-rca1.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-xxv710 2t1c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-xxv710 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-xxv710-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-clx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-clx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-clx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-clx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-clx-2t1c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-clx-2t1c-ndr-rca1.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-clx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-xxv710 4t2c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-xxv710 ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-xxv710-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-clx-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-clx-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-clx-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-clx-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-clx-4t2c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-clx-4t2c-ndr-rca1.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-clx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-zn2-xxv710 2t1c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-zn2-xxv710 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-zn2-xxv710-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-zn2-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-zn2-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-zn2-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-zn2-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 1 # 2
- compare: 2 # 3
-# rca-file: "rca/rca-2n-zn2-2t1c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 2 # 3
- compare: 3 # 4
-# rca-file: "rca/rca-2n-zn2-2t1c-pdr-rca1.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-zn2 with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-zn2-xxv710 4t2c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-zn2-xxv710 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-zn2-xxv710-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-zn2-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-zn2-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-zn2-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-zn2-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 1 # 2
- compare: 2 # 3
-# rca-file: "rca/rca-2n-zn2-4t2c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 2 # 3
- compare: 3 # 4
-# rca-file: "rca/rca-2n-zn2-4t2c-pdr-rca1.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-zn2 with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-zn2-xxv710 2t1c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-zn2-xxv710 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-zn2-xxv710-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-zn2-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-zn2-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-zn2-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-zn2-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 1 # 2
- compare: 2 # 3
-# rca-file: "rca/rca-2n-zn2-2t1c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 2 # 3
- compare: 3 # 4
-# rca-file: "rca/rca-2n-zn2-2t1c-ndr-rca1.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-zn2 with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-zn2-xxv710 4t2c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-zn2-xxv710 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-zn2-xxv710-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-zn2-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-zn2-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-zn2-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-zn2-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 1 # 2
- compare: 2 # 3
-# rca-file: "rca/rca-2n-zn2-4t2c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 2 # 3
- compare: 3 # 4
-# rca-file: "rca/rca-2n-zn2-4t2c-ndr-rca1.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-zn2 with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-dnv 1t1c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-dnv 1t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-dnv-1t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-dnv-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-dnv-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-2n-dnv-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-dnv-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 2n-dnv 2t2c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-dnv 2t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-dnv-2t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-dnv-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-dnv-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-2n-dnv-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-dnv-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 2n-dnv 1t1c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-dnv 1t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-dnv-1t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-dnv-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-dnv-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-2n-dnv-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-dnv-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 2n-dnv 2t2c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-dnv 2t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-dnv-2t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-dnv-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-dnv-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-2n-dnv-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-dnv-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 3n-dnv 1t1c pdr
-- type: "table"
- title: "VPP Performance Changes 3n-dnv 1t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-dnv-1t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-dnv-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-dnv-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-3n-dnv-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-dnv-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 3n-dnv 2t2c pdr
-- type: "table"
- title: "VPP Performance Changes 3n-dnv 2t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-dnv-2t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-dnv-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-dnv-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-3n-dnv-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-dnv-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 3n-dnv 1t1c ndr
-- type: "table"
- title: "VPP Performance Changes 3n-dnv 1t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-dnv-1t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-dnv-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-dnv-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-3n-dnv-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-dnv-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 3n-dnv 2t2c ndr
-- type: "table"
- title: "VPP Performance Changes 3n-dnv 2t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-dnv-2t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-dnv-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-dnv-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-3n-dnv-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-dnv-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 3n-tsh 1t1c pdr
-- type: "table"
- title: "VPP Performance Changes 3n-tsh 1t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-tsh-1t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-tsh-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-tsh-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-tsh-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-tsh-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-tsh-1t1c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-tsh-1t1c-pdr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-tsh with x520.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-tsh 2t2c pdr
-- type: "table"
- title: "VPP Performance Changes 3n-tsh 2t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-tsh-2t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-tsh-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-tsh-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-tsh-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-tsh-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-tsh-2t2c-pdr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-tsh-2t2c-pdr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-tsh with x520.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-tsh 1t1c ndr
-- type: "table"
- title: "VPP Performance Changes 3n-tsh 1t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-tsh-1t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-tsh-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-tsh-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-tsh-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-tsh-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-tsh-1t1c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-tsh-1t1c-ndr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-tsh with x520.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-tsh 2t2c ndr
-- type: "table"
- title: "VPP Performance Changes 3n-tsh 2t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-tsh-2t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-tsh-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-tsh-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-tsh-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-tsh-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-tsh-2t2c-ndr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-tsh-2t2c-ndr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-tsh with x520.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-tx2 1t1c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-tx2 1t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-tx2-1t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-h1"
-# - title: "2009.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-tx2-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-tx2-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-6"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-tx2 with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-tx2 2t2c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-tx2 2t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-tx2-2t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-h1"
-# - title: "2009.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-tx2-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-tx2-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-6"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-tx2 with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-tx2 1t1c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-tx2 1t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-tx2-1t1c-pdr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-h1"
-# - title: "2009.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-tx2-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-tx2-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-6"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-tx2 with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-tx2 2t2c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-tx2 2t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-tx2-2t2c-pdr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-h1"
-# - title: "2009.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-tx2-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-tx2-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-6"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-tx2 with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Comparison Across Testbeds 3n-hsw to 3n-skx 1c ndr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 3n-skx 1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-3n-skx-1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'NDRPDR' and '1C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-ref"
- tag: "NIC_Intel-XL710"
- - title: "3n-skx xxv710"
- data-set: "vpp-compare-testbeds-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 3n-skx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 3n-skx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 3n-skx 2c ndr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 3n-skx 2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-3n-skx-2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'NDRPDR' and '2C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-ref"
- tag: "NIC_Intel-XL710"
- - title: "3n-skx xxv710"
- data-set: "vpp-compare-testbeds-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 3n-skx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 3n-skx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 3n-skx 1c pdr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 3n-skx 1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-3n-skx-1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'NDRPDR' and '1C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-ref"
- tag: "NIC_Intel-XL710"
- - title: "3n-skx xxv710"
- data-set: "vpp-compare-testbeds-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 3n-skx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 3n-skx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 3n-skx 2c pdr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 3n-skx 2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-3n-skx-2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'NDRPDR' and '2C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-ref"
- tag: "NIC_Intel-XL710"
- - title: "3n-skx xxv710"
- data-set: "vpp-compare-testbeds-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 3n-skx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 3n-skx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 2n-skx to 2n-clx 2t1c ndr
-- type: "table"
- title: "VPP Comparison Across Testbeds 2n-skx to 2n-clx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-clx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx"
- data-set: "vpp-compare-testbeds-skx-clx-ref"
- - title: "2n-clx"
- data-set: "vpp-compare-testbeds-skx-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "2n-skx, 2n-clx - testbeds and NICs tested."
- - "Diff - difference between 2n-skx and 2n-clx testbeds."
-
-# VPP Comparison Across Testbeds 2n-skx to 2n-clx 4t2c ndr
-- type: "table"
- title: "VPP Comparison Across Testbeds 2n-skx to 2n-clx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-clx-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx"
- data-set: "vpp-compare-testbeds-skx-clx-ref"
- - title: "2n-clx"
- data-set: "vpp-compare-testbeds-skx-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "2n-skx, 2n-clx - testbeds and NICs tested."
- - "Diff - difference between 2n-skx and 2n-clx testbeds."
-
-# VPP Comparison Across Testbeds 2n-skx to 2n-clx 2t1c pdr
-- type: "table"
- title: "VPP Comparison Across Testbeds 2n-skx to 2n-clx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-clx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx"
- data-set: "vpp-compare-testbeds-skx-clx-ref"
- - title: "2n-clx"
- data-set: "vpp-compare-testbeds-skx-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "2n-skx, 2n-clx - testbeds and NICs tested."
- - "Diff - difference between 2n-skx and 2n-clx testbeds."
-
-# VPP Comparison Across Testbeds 2n-skx to 2n-clx 4t2c pdr
-- type: "table"
- title: "VPP Comparison Across Testbeds 2n-skx to 2n-clx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-clx-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx"
- data-set: "vpp-compare-testbeds-skx-clx-ref"
- - title: "2n-clx"
- data-set: "vpp-compare-testbeds-skx-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "2n-skx, 2n-clx - testbeds and NICs tested."
- - "Diff - difference between 2n-skx and 2n-clx testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 2n-clx 1c ndr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 2n-clx 1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-2n-clx-1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'NDRPDR' and '1C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-hsw-clx-ref"
- tag: "NIC_Intel-XL710"
- - title: "2n-clx xxv710"
- data-set: "vpp-compare-testbeds-hsw-clx-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 2n-clx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 2n-clx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 2n-clx 2c ndr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 2n-clx 2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-2n-clx-2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'NDRPDR' and '2C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-hsw-clx-ref"
- tag: "NIC_Intel-XL710"
- - title: "2n-clx xxv710"
- data-set: "vpp-compare-testbeds-hsw-clx-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 2n-clx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 2n-clx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 2n-clx 1c pdr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 2n-clx 1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-2n-clx-1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'NDRPDR' and '1C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-hsw-clx-ref"
- tag: "NIC_Intel-XL710"
- - title: "2n-clx xxv710"
- data-set: "vpp-compare-testbeds-hsw-clx-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 2n-clx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 2n-clx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 2n-clx 2c pdr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 2n-clx 2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-2n-clx-2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'NDRPDR' and '2C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-hsw-clx-ref"
- tag: "NIC_Intel-XL710"
- - title: "2n-clx xxv710"
- data-set: "vpp-compare-testbeds-hsw-clx-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 2n-clx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 2n-clx xxv710 testbeds."
-
-# VPP Comparison Across Topologies 3n-skx to 2n-skx 1c ndr
-- type: "table"
- title: "VPP Comparison Across Topologies 3n-skx to 2n-skx 1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-topologies-3n-skx-2n-skx-1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NDRPDR' and '1C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx"
- data-set: "vpp-compare-topologies-ref"
- - title: "2n-skx"
- data-set: "vpp-compare-topologies-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-skx, 2n-skx - topologies tested."
- - "Diff - difference between 3n-skx and 2n-skx topologies."
-
-# VPP Comparison Across Topologies 3n-skx to 2n-skx 2c ndr
-- type: "table"
- title: "VPP Comparison Across Topologies 3n-skx to 2n-skx 2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-topologies-3n-skx-2n-skx-2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NDRPDR' and '2C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx"
- data-set: "vpp-compare-topologies-ref"
- - title: "2n-skx"
- data-set: "vpp-compare-topologies-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-skx, 2n-skx - topologies tested."
- - "Diff - difference between 3n-skx and 2n-skx topologies."
-
-# VPP Comparison Across Topologies 3n-skx to 2n-skx 1c pdr
-- type: "table"
- title: "VPP Comparison Across Topologies 3n-skx to 2n-skx 1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-topologies-3n-skx-2n-skx-1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NDRPDR' and '1C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx"
- data-set: "vpp-compare-topologies-ref"
- - title: "2n-skx"
- data-set: "vpp-compare-topologies-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-skx, 2n-skx - topologies tested."
- - "Diff - difference between 3n-skx and 2n-skx topologies."
-
-# VPP Comparison Across Topologies 3n-skx to 2n-skx 2c pdr
-- type: "table"
- title: "VPP Comparison Across Topologies 3n-skx to 2n-skx 2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-topologies-3n-skx-2n-skx-2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NDRPDR' and '2C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx"
- data-set: "vpp-compare-topologies-ref"
- - title: "2n-skx"
- data-set: "vpp-compare-topologies-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-skx, 2n-skx - topologies tested."
- - "Diff - difference between 3n-skx and 2n-skx topologies."
-
-# VPP Performance Changes 3n-hsw 1t1c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-hsw 1t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-hsw-1t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C' and 'MRR' and 'NIC_Intel-XL710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-hsw-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-hsw-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-hsw-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-hsw-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-hsw-1t1c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-hsw-1t1c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-hsw with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-hsw 2t2c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-hsw 2t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-hsw-2t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C' and 'MRR' and 'NIC_Intel-XL710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-hsw-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-hsw-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-hsw-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-hsw-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-hsw-2t2c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-hsw-2t2c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-hsw with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-hsw 4t4c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-hsw 4t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-hsw-4t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T4C' and 'MRR' and 'NIC_Intel-XL710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-hsw-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-hsw-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-hsw-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-hsw-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-hsw-4t4c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-hsw-4t4c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-hsw with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-skx 2t1c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-skx 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-2t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-skx-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-skx-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-skx-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-skx-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-skx-2t1c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-skx-2t1c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-skx 4t2c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-skx 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-4t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-skx-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-skx-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-skx-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-skx-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-skx-4t2c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-skx-4t2c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-skx 8t4c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-skx 8t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-8t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'8T4C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-skx-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-skx-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-skx-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-skx-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-3n-skx-8t4c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-3n-skx-8t4c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-skx 2t1c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-skx 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-2t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-skx-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-skx-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-skx-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-skx-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-skx-2t1c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-skx-2t1c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-skx 4t2c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-skx 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-4t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-skx-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-skx-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-skx-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-skx-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-skx-4t2c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-skx-4t2c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-skx 8t4c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-skx 8t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-skx-8t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'8T4C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-skx-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-skx-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-skx-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-skx-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-skx-8t4c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-skx-8t4c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-xxv710 2t1c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-xxv710 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-xxv710-2t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-clx-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-clx-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-clx-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-clx-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-clx-2t1c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-clx-2t1c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-clx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-xxv710 4t2c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-xxv710 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-xxv710-4t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-clx-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-clx-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-clx-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-clx-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-clx-4t2c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-clx-4t2c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-clx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-xxv710 8t4c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-xxv710 8t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-xxv710-8t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'8T4C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-clx-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-clx-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-clx-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-clx-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
-# rca-file: "rca/rca-2n-clx-8t4c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
-# rca-file: "rca/rca-2n-clx-8t4c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-clx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-zn2-xxv710 2t1c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-zn2-xxv710 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-zn2-xxv710-2t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'MRR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-zn2-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-zn2-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-zn2-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-zn2-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 1 # 2
- compare: 2 # 3
-# rca-file: "rca/rca-2n-zn2-2t1c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 2 # 3
- compare: 3 # 4
-# rca-file: "rca/rca-2n-zn2-2t1c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-zn2 with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-zn2-xxv710 4t2c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-zn2-xxv710 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-zn2-xxv710-4t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'MRR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-zn2-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-zn2-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-zn2-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-zn2-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 1 # 2
- compare: 2 # 3
-# rca-file: "rca/rca-2n-zn2-4t2c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 2 # 3
- compare: 3 # 4
-# rca-file: "rca/rca-2n-zn2-4t2c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-zn2 with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-zn2-xxv710 8t4c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-zn2-xxv710 8t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-zn2-xxv710-8t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'8T4C' and 'MRR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-zn2-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-zn2-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-zn2-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-zn2-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 1 # 2
- compare: 2 # 3
-# rca-file: "rca/rca-2n-zn2-8t4c-mrr-rca1.yaml"
- - title: "2101.0-6 vs 2009.0-6"
- reference: 2 # 3
- compare: 3 # 4
-# rca-file: "rca/rca-2n-zn2-8t4c-mrr-rca2.yaml"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-zn2 with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-dnv 1t1c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-dnv 1t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-dnv-1t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-dnv-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-dnv-mrr-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-2n-dnv-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-dnv-mrr-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-dnv 2t2c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-dnv 2t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-dnv-2t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-dnv-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-dnv-mrr-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-2n-dnv-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-dnv-mrr-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-dnv 4t4c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-dnv 4t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-dnv-4t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T4C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-2n-dnv-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-2n-dnv-mrr-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-2n-dnv-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-dnv-mrr-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-dnv 1t1c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-dnv 1t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-dnv-1t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-dnv-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-dnv-mrr-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-2n-dnv-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-dnv-mrr-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-dnv 2t2c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-dnv 2t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-dnv-2t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-dnv-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-dnv-mrr-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-2n-dnv-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-dnv-mrr-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-dnv 4t4c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-dnv 4t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-dnv-4t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T4C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-dnv-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-dnv-mrr-ref-env-old"
-# - title: "2009.0-6"
-# data-set: "vpp-performance-changes-2n-dnv-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-dnv-mrr-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-dnv with x553.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-5: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-tsh 1t1c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-tsh 1t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-tsh-1t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-tsh-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-tsh-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-tsh-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-tsh-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-tsh with x520.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-tsh 2t2c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-tsh 2t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-tsh-2t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-tsh-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-tsh-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-tsh-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-tsh-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-tsh with x520.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-tsh 4t4c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-tsh 4t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-tsh-4t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T4C'"
- columns:
- - title: "2005.0-5"
- data-set: "vpp-performance-changes-3n-tsh-mrr-h1"
- - title: "2009.0-5"
- data-set: "vpp-performance-changes-3n-tsh-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-3n-tsh-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-3n-tsh-mrr-cmp"
- comparisons:
- - title: "2009.0-6 vs 2009.0-5"
- reference: 2
- compare: 3
- - title: "2101.0-6 vs 2009.0-6"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-tsh with x520.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-tx2 1t1c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-tx2 1t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-tx2-1t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-mrr-h1"
-# - title: "2009.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-tx2-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-tx2-mrr-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-6"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-tx2 with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-tx2 2t2c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-tx2 2t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-tx2-2t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-mrr-h1"
-# - title: "2009.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-tx2-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-tx2-mrr-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-6"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-tx2 with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-tx2 4t4c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-tx2 4t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-tx2-4t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T4C'"
- columns:
-# - title: "2005.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-mrr-h1"
-# - title: "2009.0-5"
-# data-set: "vpp-performance-changes-2n-tx2-mrr-ref-env-old"
- - title: "2009.0-6"
- data-set: "vpp-performance-changes-2n-tx2-mrr-ref-env-new"
- - title: "2101.0-6"
- data-set: "vpp-performance-changes-2n-tx2-mrr-cmp"
- comparisons:
-# - title: "2009.0-6 vs 2009.0-5"
-# reference: 2
-# compare: 3
- - title: "2101.0-6 vs 2009.0-6"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-tx2 with xl710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "5" for CSIT rls2009, "6" for CSIT rls2101).'
- - 'YYMM.V-E vs YYMM.V-E: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-# - '2009.0-6 vs 2009.0-5: Compares CSIT environment current vs previous with previous VPP code.'
- - '2101.0-6 vs 2009.0-6: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Comparison Across Testbeds 3n-hsw to 3n-skx 1c mrr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 3n-skx 1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-3n-skx-1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'MRR' and '1C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-mrr-ref"
- tag: "NIC_Intel-XL710"
- - title: "3n-skx xxv710"
- data-set: "vpp-compare-testbeds-mrr-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 3n-skx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 3n-skx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 3n-skx 2c mrr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 3n-skx 2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-3n-skx-2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'MRR' and '2C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-mrr-ref"
- tag: "NIC_Intel-XL710"
- - title: "3n-skx xxv710"
- data-set: "vpp-compare-testbeds-mrr-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 3n-skx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 3n-skx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 3n-skx 4c mrr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 3n-skx 4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-3n-skx-4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'MRR' and '4C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-mrr-ref"
- tag: "NIC_Intel-XL710"
- - title: "3n-skx xxv710"
- data-set: "vpp-compare-testbeds-mrr-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 3n-skx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 3n-skx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 2n-skx to 2n-clx 2t1c mrr
-- type: "table"
- title: "VPP Comparison Across Testbeds 2n-skx to 2n-clx 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-clx-2t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx"
- data-set: "vpp-compare-testbeds-mrr-skx-clx-ref"
- - title: "2n-clx"
- data-set: "vpp-compare-testbeds-mrr-skx-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "2n-skx, 2n-clx - testbeds and NICs tested."
- - "Diff - difference between 2n-skx and 2n-clx testbeds."
-
-# VPP Comparison Across Testbeds 2n-skx to 2n-clx 4t2c mrr
-- type: "table"
- title: "VPP Comparison Across Testbeds 2n-skx to 2n-clx 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-clx-4t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx"
- data-set: "vpp-compare-testbeds-mrr-skx-clx-ref"
- - title: "2n-clx"
- data-set: "vpp-compare-testbeds-mrr-skx-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "2n-skx, 2n-clx - testbeds and NICs tested."
- - "Diff - difference between 2n-skx and 2n-clx testbeds."
-
-# VPP Comparison Across Testbeds 2n-skx to 2n-clx 8t4c mrr
-- type: "table"
- title: "VPP Comparison Across Testbeds 2n-skx to 2n-clx 8t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-clx-8t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'8T4C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx"
- data-set: "vpp-compare-testbeds-mrr-skx-clx-ref"
- - title: "2n-clx"
- data-set: "vpp-compare-testbeds-mrr-skx-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "2n-skx, 2n-clx - testbeds and NICs tested."
- - "Diff - difference between 2n-skx and 2n-clx testbeds."
-
-# VPP Comparison Across Topologies 3n-skx to 2n-skx 1c mrr
-- type: "table"
- title: "VPP Comparison Across Topologies 3n-skx to 2n-skx 1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-topologies-3n-skx-2n-skx-1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'MRR' and '1C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx"
- data-set: "vpp-compare-topologies-mrr-ref"
- - title: "2n-skx"
- data-set: "vpp-compare-topologies-mrr-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-skx, 2n-skx - topologies tested."
- - "Diff - difference between 3n-skx and 2n-skx topologies."
-
-# VPP Comparison Across Topologies 3n-skx to 2n-skx 2c mrr
-- type: "table"
- title: "VPP Comparison Across Topologies 3n-skx to 2n-skx 2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-topologies-3n-skx-2n-skx-2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'MRR' and '2C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx"
- data-set: "vpp-compare-topologies-mrr-ref"
- - title: "2n-skx"
- data-set: "vpp-compare-topologies-mrr-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-skx, 2n-skx - topologies tested."
- - "Diff - difference between 3n-skx and 2n-skx topologies."
-
-# VPP Comparison Across Topologies 3n-skx to 2n-skx 4c mrr
-- type: "table"
- title: "VPP Comparison Across Topologies 3n-skx to 2n-skx 4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-topologies-3n-skx-2n-skx-4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'MRR' and '4C' and 'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx"
- data-set: "vpp-compare-topologies-mrr-ref"
- - title: "2n-skx"
- data-set: "vpp-compare-topologies-mrr-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-skx, 2n-skx - topologies tested."
- - "Diff - difference between 3n-skx and 2n-skx topologies."
-
-# VPP Comparison Across Testbeds 3n-hsw to 2n-clx 1c mrr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 2n-clx 1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-2n-clx-1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'MRR' and '1C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-mrr-hsw-clx-ref"
- tag: "NIC_Intel-XL710"
- - title: "2n-clx xxv710"
- data-set: "vpp-compare-testbeds-mrr-hsw-clx-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 2n-clx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 2n-clx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 2n-clx 2c mrr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 2n-clx 2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-2n-clx-2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'MRR' and '2C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-mrr-hsw-clx-ref"
- tag: "NIC_Intel-XL710"
- - title: "2n-clx xxv710"
- data-set: "vpp-compare-testbeds-mrr-hsw-clx-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 2n-clx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 2n-clx xxv710 testbeds."
-
-# VPP Comparison Across Testbeds 3n-hsw to 2n-clx 4c mrr
-- type: "table"
- title: "VPP Comparison Across Testbeds 3n-hsw to 2n-clx 4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-hsw-2n-clx-4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "('NIC_Intel-XXV710' or 'NIC_Intel-XL710') and 'MRR' and '4C'"
- columns:
- - title: "3n-hsw xl710"
- data-set: "vpp-compare-testbeds-mrr-hsw-clx-ref"
- tag: "NIC_Intel-XL710"
- - title: "2n-clx xxv710"
- data-set: "vpp-compare-testbeds-mrr-hsw-clx-cmp"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw xl710, 2n-clx xxv710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw xl710 and 2n-clx xxv710 testbeds."
-
-# Detailed Test Results - VPP Performance Results 3n-hsw
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 3n-hsw"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,3N,HSW]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-3n-hsw"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 3n-skx
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 3n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,3N,SKX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-3n-skx"
- filter: "all"
- remove-ndr: False
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 2n-skx
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 2n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,2N,SKX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-2n-skx"
- filter: "all"
- remove-ndr: False
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 2n-zn2
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 2n-zn2"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,2N,ZN2]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-2n-zn2"
- filter: "all"
- remove-ndr: False
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 2n-clx
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 2n-clx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,2N,CLX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-2n-clx"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 3n-tsh
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 3n-tsh"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,3N,TSH]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-3n-tsh"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 2n-tx2
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 2n-tx2"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,2N,TX2]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-2n-tx2"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 3n-dnv
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 3n-dnv"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,3N,DNV]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-3n-dnv"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 2n-dnv
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 2n-dnv"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,2N,DNV]}/vpp_performance_results_2n_dnv"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-2n-dnv"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Test configuration - VPP Performance Test Configs 3n-hsw
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 3n-hsw"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,3N,HSW]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-3n-hsw"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 3n-skx
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 3n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,3N,SKX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-3n-skx"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 2n-skx
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 2n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,2N,SKX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-2n-skx"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 2n-zn2
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 2n-zn2"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,2N,ZN2]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-2n-zn2"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 2n-clx
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 2n-clx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,2N,CLX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-2n-clx"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 3n-tsh
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 3n-tsh"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,3N,TSH]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-3n-tsh"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 2n-tx2
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 2n-tx2"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,2N,TX2]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-2n-tx2"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 3n-dnv
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 3n-dnv"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,3N,DNV]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-3n-dnv"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 2n-dnv
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 2n-dnv"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,2N,DNV]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-2n-dnv"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test Operational Data - VPP Performance Operational Data 3n-hsw
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 3n-hsw"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,3N,HSW]}/"
- data: "vpp-perf-results-3n-hsw"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 3n-skx
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 3n-skx"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,3N,SKX]}/"
- data: "vpp-perf-results-3n-skx"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 2n-skx
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 2n-skx"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,2N,SKX]}/"
- data: "vpp-perf-results-2n-skx"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 2n-zn2
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 2n-zn2"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,2N,ZN2]}/"
- data: "vpp-perf-results-2n-zn2"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 2n-clx
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 2n-clx"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,2N,CLX]}/"
- data: "vpp-perf-results-2n-clx"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 3n-tsh
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 3n-tsh"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,3N,TSH]}/"
- data: "vpp-perf-results-3n-tsh"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 2n-tx2
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 2n-tx2"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,2N,TX2]}/"
- data: "vpp-perf-results-2n-tx2"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 3n-dnv
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 3n-dnv"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,3N,DNV]}/"
- data: "vpp-perf-results-3n-dnv"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 2n-dnv
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 2n-dnv"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,2N,DNV]}/"
- data: "vpp-perf-results-2n-dnv"
- filter: "all"
-
-# Detailed Test Results - VPP MRR Results 3n-hsw
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 3n-hsw"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,3N,HSW]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-mrr-results-3n-hsw"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 3n-skx
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 3n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,3N,SKX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-mrr-results-3n-skx"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 2n-skx
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 2n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,2N,SKX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-mrr-results-2n-skx"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 2n-zn2
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 2n-zn2"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,2N,ZN2]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-mrr-results-2n-zn2"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 2n-clx
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 2n-clx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,2N,CLX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-mrr-results-2n-clx"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 3n-tsh
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 3n-tsh"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,3N,TSH]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-mrr-results-3n-tsh"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 2n-tx2
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 2n-tx2"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,2N,TX2]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-mrr-results-2n-tx2"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 3n-dnv
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 3n-dnv"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,3N,DNV]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-mrr-results-3n-dnv"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 2n-dnv
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 2n-dnv"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,2N,DNV]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-mrr-results-2n-dnv"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Test configuration - VPP MRR Test Configs 3n-hsw
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 3n-hsw"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,3N,HSW]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-mrr-results-3n-hsw"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 3n-skx
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 3n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,3N,SKX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-mrr-results-3n-skx"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 2n-skx
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 2n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,2N,SKX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-mrr-results-2n-skx"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 2n-zn2
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 2n-zn2"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,2N,ZN2]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-mrr-results-2n-zn2"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 2n-clx
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 2n-clx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,2N,CLX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-mrr-results-2n-clx"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 3n-tsh
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 3n-tsh"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,3N,TSH]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-mrr-results-3n-tsh"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 2n-tx2
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 2n-tx2"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,2N,TX2]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-mrr-results-2n-tx2"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 3n-dnv
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 3n-dnv"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,3N,DNV]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-mrr-results-3n-dnv"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 2n-dnv
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 2n-dnv"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,2N,DNV]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-mrr-results-2n-dnv"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Detailed Test Results - VPP Device Results - Ubuntu
-- type: "table"
- title: "Detailed Test Results - VPP Device Results - Ubuntu"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,FUNC,VPP,DEVICE,UBUNTU]}/vpp_device_results_ubuntu"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Status |preout| "
- data: "data status"
- data: "vpp-device-results-ubuntu"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "doc"
- - "status"
-
-# Test configuration - VPP Device Test Configs - Ubuntu
-- type: "table"
- title: "Test configuration - VPP Device Test Configs - Ubuntu"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,FUNC,VPP,DEVICE,UBUNTU]}/vpp_device_configuration_ubuntu"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-device-results-ubuntu"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-################################################################################
-
-# DPDK Performance Changes 3n-hsw 1t1c pdr
-- type: "table"
- title: "DPDK Performance Changes 3n-hsw 1t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-hsw-1t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-XL710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-hsw-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-hsw-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-hsw-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 3n-hsw 2t2c pdr
-- type: "table"
- title: "DPDK Performance Changes 3n-hsw 2t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-hsw-2t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C' and 'NDRPDR' and 'NIC_Intel-XL710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-hsw-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-hsw-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-hsw-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 3n-hsw 1t1c pdr
-- type: "table"
- title: "DPDK Performance Changes 3n-hsw 1t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-hsw-1t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-XL710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-hsw-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-hsw-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-hsw-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 3n-hsw 2t2c ndr
-- type: "table"
- title: "DPDK Performance Changes 3n-hsw 2t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-hsw-2t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C' and 'NDRPDR' and 'NIC_Intel-XL710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-hsw-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-hsw-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-hsw-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 3n-skx 2t1c pdr
-- type: "table"
- title: "DPDK Performance Changes 3n-skx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-skx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-skx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-skx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-skx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 3n-skx 4t2c pdr
-- type: "table"
- title: "DPDK Performance Changes 3n-skx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-skx-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-skx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-skx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-skx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 3n-skx 2t1c ndr
-- type: "table"
- title: "DPDK Performance Changes 3n-skx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-skx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-skx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-skx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-skx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 3n-skx 4t2c ndr
-- type: "table"
- title: "DPDK Performance Changes 3n-skx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-skx-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-skx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-skx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-skx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-skx 2t1c pdr
-- type: "table"
- title: "DPDK Performance Changes 2n-skx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-skx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-2n-skx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-skx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-skx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-skx 4t2c pdr
-- type: "table"
- title: "DPDK Performance Changes 2n-skx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-skx-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-2n-skx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-skx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-skx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-skx 2t1c ndr
-- type: "table"
- title: "DPDK Performance Changes 2n-skx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-skx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-2n-skx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-skx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-skx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-skx 4t2c ndr
-- type: "table"
- title: "DPDK Performance Changes 2n-skx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-skx-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-2n-skx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-skx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-skx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-clx 2t1c pdr
-- type: "table"
- title: "DPDK Performance Changes 2n-clx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-clx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-2n-clx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-clx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-clx 4t2c pdr
-- type: "table"
- title: "DPDK Performance Changes 2n-clx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-clx-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-2n-clx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-clx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-clx 2t1c ndr
-- type: "table"
- title: "DPDK Performance Changes 2n-clx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-clx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-2n-clx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-clx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-clx 4t2c ndr
-- type: "table"
- title: "DPDK Performance Changes 2n-clx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-clx-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-2n-clx-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-clx-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-zn2 2t1c pdr
-- type: "table"
- title: "DPDK Performance Changes 2n-zn2 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-zn2-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005"
-# data-set: "dpdk-performance-changes-2n-zn2-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-zn2-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-zn2-cmp"
- comparisons:
- - title: "Diff"
- reference: 1 # 2
- compare: 2 # 3
- legend:
- - ""
- - "2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-zn2 4t2c pdr
-- type: "table"
- title: "DPDK Performance Changes 2n-zn2 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-zn2-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005"
-# data-set: "dpdk-performance-changes-2n-zn2-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-zn2-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-zn2-cmp"
- comparisons:
- - title: "Diff"
- reference: 1 # 2
- compare: 2 # 3
- legend:
- - ""
- - "2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-zn2 2t1c ndr
-- type: "table"
- title: "DPDK Performance Changes 2n-zn2 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-zn2-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005"
-# data-set: "dpdk-performance-changes-2n-zn2-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-zn2-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-zn2-cmp"
- comparisons:
- - title: "Diff"
- reference: 1 # 2
- compare: 2 # 3
- legend:
- - ""
- - "2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 2n-zn2 4t2c ndr
-- type: "table"
- title: "DPDK Performance Changes 2n-zn2 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-zn2-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
-# - title: "2005"
-# data-set: "dpdk-performance-changes-2n-zn2-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-2n-zn2-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-2n-zn2-cmp"
- comparisons:
- - title: "Diff"
- reference: 1 # 2
- compare: 2 # 3
- legend:
- - ""
- - "2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-## DPDK Performance Changes 2n-dnv 1t1c pdr
-#- type: "table"
-# title: "DPDK Performance Changes 2n-dnv 1t1c pdr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-dnv-1t1c-pdr"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-X553'"
-# columns:
-# - title: "2001"
-# data-set: "dpdk-performance-changes-2n-dnv-h1"
-# - title: "2005"
-# data-set: "dpdk-performance-changes-2n-dnv-ref"
-# - title: "2009"
-# data-set: "dpdk-performance-changes-2n-dnv-cmp"
-# comparisons:
-# - title: "Diff"
-# reference: 2
-# compare: 3
-# legend:
-# - ""
-# - "2001, 2005, 2009 - DPDK versions tested."
-# - "Diff - difference between 2005 and 2009 DPDK version."
-#
-## DPDK Performance Changes 2n-dnv 2t2c pdr
-#- type: "table"
-# title: "DPDK Performance Changes 2n-dnv 2t2c pdr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-dnv-2t2c-pdr"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# filter: "'2T2C' and 'NDRPDR' and 'NIC_Intel-X553'"
-# columns:
-# - title: "2001"
-# data-set: "dpdk-performance-changes-2n-dnv-h1"
-# - title: "2005"
-# data-set: "dpdk-performance-changes-2n-dnv-ref"
-# - title: "2009"
-# data-set: "dpdk-performance-changes-2n-dnv-cmp"
-# comparisons:
-# - title: "Diff"
-# reference: 2
-# compare: 3
-# legend:
-# - ""
-# - "2001, 2005, 2009 - DPDK versions tested."
-# - "Diff - difference between 2005 and 2009 DPDK version."
-#
-## DPDK Performance Changes 2n-dnv 1t1c ndr
-#- type: "table"
-# title: "DPDK Performance Changes 2n-dnv 1t1c ndr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-dnv-1t1c-ndr"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-X553'"
-# columns:
-# - title: "2001"
-# data-set: "dpdk-performance-changes-2n-dnv-h1"
-# - title: "2005"
-# data-set: "dpdk-performance-changes-2n-dnv-ref"
-# - title: "2009"
-# data-set: "dpdk-performance-changes-2n-dnv-cmp"
-# comparisons:
-# - title: "Diff"
-# reference: 2
-# compare: 3
-# legend:
-# - ""
-# - "2001, 2005, 2009 - DPDK versions tested."
-# - "Diff - difference between 2005 and 2009 DPDK version."
-#
-## DPDK Performance Changes 2n-dnv 2t2c ndr
-#- type: "table"
-# title: "DPDK Performance Changes 2n-dnv 2t2c ndr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-dnv-2t2c-ndr"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# filter: "'2T2C' and 'NDRPDR' and 'NIC_Intel-X553'"
-# columns:
-# - title: "2001"
-# data-set: "dpdk-performance-changes-2n-dnv-h1"
-# - title: "2005"
-# data-set: "dpdk-performance-changes-2n-dnv-ref"
-# - title: "2009"
-# data-set: "dpdk-performance-changes-2n-dnv-cmp"
-# comparisons:
-# - title: "Diff"
-# reference: 2
-# compare: 3
-# legend:
-# - ""
-# - "2001, 2005, 2009 - DPDK versions tested."
-# - "Diff - difference between 2005 and 2009 DPDK version."
-#
-## DPDK Performance Changes 3n-dnv 1t1c pdr
-#- type: "table"
-# title: "DPDK Performance Changes 3n-dnv 1t1c pdr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-dnv-1t1c-pdr"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-X553'"
-# columns:
-# - title: "2001"
-# data-set: "dpdk-performance-changes-3n-dnv-h1"
-# - title: "2005"
-# data-set: "dpdk-performance-changes-3n-dnv-ref"
-# - title: "2009"
-# data-set: "dpdk-performance-changes-3n-dnv-cmp"
-# comparisons:
-# - title: "Diff"
-# reference: 2
-# compare: 3
-# legend:
-# - ""
-# - "2001, 2005, 2009 - DPDK versions tested."
-# - "Diff - difference between 2005 and 2009 DPDK version."
-#
-## DPDK Performance Changes 3n-dnv 2t2c pdr
-#- type: "table"
-# title: "DPDK Performance Changes 3n-dnv 2t2c pdr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-dnv-2t2c-pdr"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# filter: "'2T2C' and 'NDRPDR' and 'NIC_Intel-X553'"
-# columns:
-# - title: "2001"
-# data-set: "dpdk-performance-changes-3n-dnv-h1"
-# - title: "2005"
-# data-set: "dpdk-performance-changes-3n-dnv-ref"
-# - title: "2009"
-# data-set: "dpdk-performance-changes-3n-dnv-cmp"
-# comparisons:
-# - title: "Diff"
-# reference: 2
-# compare: 3
-# legend:
-# - ""
-# - "2001, 2005, 2009 - DPDK versions tested."
-# - "Diff - difference between 2005 and 2009 DPDK version."
-#
-## DPDK Performance Changes 3n-dnv 1t1c ndr
-#- type: "table"
-# title: "DPDK Performance Changes 3n-dnv 1t1c ndr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-dnv-1t1c-ndr"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-X553'"
-# columns:
-# - title: "2001"
-# data-set: "dpdk-performance-changes-3n-dnv-h1"
-# - title: "2005"
-# data-set: "dpdk-performance-changes-3n-dnv-ref"
-# - title: "2009"
-# data-set: "dpdk-performance-changes-3n-dnv-cmp"
-# comparisons:
-# - title: "Diff"
-# reference: 2
-# compare: 3
-# legend:
-# - ""
-# - "2001, 2005, 2009 - DPDK versions tested."
-# - "Diff - difference between 2005 and 2009 DPDK version."
-#
-## DPDK Performance Changes 3n-dnv 2t2c ndr
-#- type: "table"
-# title: "DPDK Performance Changes 3n-dnv 2t2c ndr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-dnv-2t2c-ndr"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# filter: "'2T2C' and 'NDRPDR' and 'NIC_Intel-X553'"
-# columns:
-# - title: "2001"
-# data-set: "dpdk-performance-changes-3n-dnv-h1"
-# - title: "2005"
-# data-set: "dpdk-performance-changes-3n-dnv-ref"
-# - title: "2009"
-# data-set: "dpdk-performance-changes-3n-dnv-cmp"
-# comparisons:
-# - title: "Diff"
-# reference: 2
-# compare: 3
-# legend:
-# - ""
-# - "2001, 2005, 2009 - DPDK versions tested."
-# - "Diff - difference between 2005 and 2009 DPDK version."
-
-# DPDK Performance Changes 3n-tsh 1t1c pdr
-- type: "table"
- title: "DPDK Performance Changes 3n-tsh 1t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-tsh-1t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-tsh-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-tsh-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-tsh-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 3n-tsh 2t2c pdr
-- type: "table"
- title: "DPDK Performance Changes 3n-tsh 2t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-tsh-2t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-tsh-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-tsh-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-tsh-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 3n-tsh 1t1c ndr
-- type: "table"
- title: "DPDK Performance Changes 3n-tsh 1t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-tsh-1t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-tsh-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-tsh-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-tsh-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Performance Changes 3n-tsh 2t2c ndr
-- type: "table"
- title: "DPDK Performance Changes 3n-tsh 2t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-tsh-2t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2005"
- data-set: "dpdk-performance-changes-3n-tsh-h1"
- - title: "2009"
- data-set: "dpdk-performance-changes-3n-tsh-ref"
- - title: "2101"
- data-set: "dpdk-performance-changes-3n-tsh-cmp"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ""
- - "2005, 2009, 2101 - DPDK versions tested."
- - "Diff - difference between 2009 and 2101 DPDK version."
-
-# DPDK Comparison Across Testbeds 3n-hsw to 3n-skx ndr
-- type: "table"
- title: "DPDK Comparison Across Testbeds 3n-hsw to 3n-skx ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-testbeds-3n-hsw-3n-skx-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-X710'"
- columns:
- - title: "3n-hsw x710"
- data-set: "dpdk-compare-testbeds-ref"
- - title: "3n-skx x710"
- data-set: "dpdk-compare-testbeds-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw x710, 3n-skx x710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw x710 and 3n-skx x710 testbeds."
-
-# DPDK Comparison Across Testbeds 3n-hsw to 3n-skx pdr
-- type: "table"
- title: "DPDK Comparison Across Testbeds 3n-hsw to 3n-skx pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-testbeds-3n-hsw-3n-skx-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-X710'"
- columns:
- - title: "3n-hsw x710"
- data-set: "dpdk-compare-testbeds-ref"
- - title: "3n-skx x710"
- data-set: "dpdk-compare-testbeds-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-hsw x710, 3n-skx x710 - testbeds and NICs tested."
- - "Diff - difference between 3n-hsw x710 and 3n-skx x710 testbeds."
-
-# DPDK Comparison Across Testbeds 2n-skx to 2n-clx ndr
-- type: "table"
- title: "DPDK Comparison Across Testbeds 2n-skx to 2n-clx ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-testbeds-2n-skx-2n-clx-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx"
- data-set: "dpdk-compare-testbeds-skx-clx-ref"
- - title: "2n-clx"
- data-set: "dpdk-compare-testbeds-skx-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "2n-skx, 2n-clx - testbeds and NICs tested."
- - "Diff - difference between 2n-skx and 2n-clx testbeds."
-
-# DPDK Comparison Across Testbeds 2n-skx to 2n-clx pdr
-- type: "table"
- title: "DPDK Comparison Across Testbeds 2n-skx to 2n-clx pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-testbeds-2n-skx-2n-clx-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx"
- data-set: "dpdk-compare-testbeds-skx-clx-ref"
- - title: "2n-clx"
- data-set: "dpdk-compare-testbeds-skx-clx-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "2n-skx, 2n-clx - testbeds and NICs tested."
- - "Diff - difference between 2n-skx and 2n-clx testbeds."
-
-# DPDK Comparison Across Topologies 3n-skx to 2n-skx ndr
-- type: "table"
- title: "DPDK Comparison Across Topologies 3n-skx to 2n-skx ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-topologies-3n-skx-2n-skx-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx"
- data-set: "dpdk-compare-topologies-ref"
- - title: "2n-skx"
- data-set: "dpdk-compare-topologies-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-skx, 2n-skx - topologies tested."
- - "Diff - difference between 3n-skx and 2n-skx topologies."
-
-# DPDK Comparison Across Topologies 3n-skx to 2n-skx pdr
-- type: "table"
- title: "DPDK Comparison Across Topologies 3n-skx to 2n-skx pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-topologies-3n-skx-2n-skx-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx"
- data-set: "dpdk-compare-topologies-ref"
- - title: "2n-skx"
- data-set: "dpdk-compare-topologies-cmp"
- comparisons:
- - title: "Diff"
- reference: 1
- compare: 2
- legend:
- - ""
- - "3n-skx, 2n-skx - topologies tested."
- - "Diff - difference between 3n-skx and 2n-skx topologies."
-
-# Detailed Test Results - DPDK Performance Results 3n-hsw
-- type: "table"
- title: "Detailed Test Results - DPDK Performance Results 3n-hsw"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,DPDK,3N,HSW]}/dpdk_performance_results_3n_hsw"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "dpdk-perf-results-3n-hsw"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - DPDK Performance Results 3n-skx
-- type: "table"
- title: "Detailed Test Results - DPDK Performance Results 3n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,DPDK,3N,SKX]}/dpdk_performance_results_3n_skx"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "dpdk-perf-results-3n-skx"
- filter: "all"
- remove-ndr: False
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - DPDK Performance Results 2n-skx
-- type: "table"
- title: "Detailed Test Results - DPDK Performance Results 2n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,DPDK,2N,SKX]}/dpdk_performance_results_2n_skx"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "dpdk-perf-results-2n-skx"
- filter: "all"
- remove-ndr: False
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - DPDK Performance Results 2n-zn2
-- type: "table"
- title: "Detailed Test Results - DPDK Performance Results 2n-zn2"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,DPDK,2N,SKX]}/dpdk_performance_results_2n_zn2"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "dpdk-perf-results-2n-zn2"
- filter: "all"
- remove-ndr: False
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - DPDK Performance Results 2n-clx
-- type: "table"
- title: "Detailed Test Results - DPDK Performance Results 2n-clx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,DPDK,2N,CLX]}/dpdk_performance_results_2n_clx"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "dpdk-perf-results-2n-clx"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-## Detailed Test Results - DPDK Performance Results 2n-dnv
-#- type: "table"
-# title: "Detailed Test Results - DPDK Performance Results 2n-dnv"
-# algorithm: "table_merged_details"
-# output-file: "{DIR[DTR,PERF,DPDK,2N,DNV]}/dpdk_performance_results_2n_dnv"
-# columns:
-# - title: " |prein| Test Name |preout| "
-# data: "data name"
-# - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
-# data: "data msg"
-# data: "dpdk-perf-results-2n-dnv"
-# filter: "all"
-# parameters:
-# - "name"
-# - "parent"
-# - "msg"
-#
-## Detailed Test Results - DPDK Performance Results 3n-dnv
-#- type: "table"
-# title: "Detailed Test Results - DPDK Performance Results 3n-dnv"
-# algorithm: "table_merged_details"
-# output-file: "{DIR[DTR,PERF,DPDK,3N,DNV]}/dpdk_performance_results_3n_dnv"
-# columns:
-# - title: " |prein| Test Name |preout| "
-# data: "data name"
-# - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
-# data: "data msg"
-# data: "dpdk-perf-results-3n-dnv"
-# filter: "all"
-# parameters:
-# - "name"
-# - "parent"
-# - "msg"
-
-# Detailed Test Results - DPDK Performance Results 3n-tsh
-- type: "table"
- title: "Detailed Test Results - DPDK Performance Results 3n-tsh"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,DPDK,3N,TSH]}/dpdk_performance_results_3n_tsh"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "dpdk-perf-results-3n-tsh"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - DPDK Performance Results 2n-tx2
-- type: "table"
- title: "Detailed Test Results - DPDK Performance Results 2n-tx2"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,DPDK,2N,TX2]}/dpdk_performance_results_2n_tx2"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "dpdk-perf-results-2n-tx2"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-################################################################################
-### F I L E S ###
-################################################################################
-
-# VPP Performance Results
-- type: "file"
- title: "VPP Performance Results"
- algorithm: "file_details_split"
- output-file: "{DIR[DTR,PERF,VPP,ALL]}"
- dir-tables:
- - "{DIR[DTR,PERF,VPP,2N,SKX]}"
- - "{DIR[DTR,PERF,VPP,3N,SKX]}"
- - "{DIR[DTR,PERF,VPP,2N,CLX]}"
- - "{DIR[DTR,PERF,VPP,2N,ZN2]}"
- - "{DIR[DTR,PERF,VPP,3N,HSW]}"
- - "{DIR[DTR,PERF,VPP,3N,TSH]}"
- - "{DIR[DTR,PERF,VPP,2N,TX2]}"
- - "{DIR[DTR,PERF,VPP,2N,DNV]}"
- - "{DIR[DTR,PERF,VPP,3N,DNV]}"
- data:
- - "vpp-perf-results-2n-skx"
- - "vpp-perf-results-3n-skx"
- - "vpp-perf-results-2n-clx"
- - "vpp-perf-results-2n-zn2"
- - "vpp-perf-results-3n-hsw"
- - "vpp-perf-results-3n-tsh"
- - "vpp-perf-results-2n-tx2"
- - "vpp-perf-results-2n-dnv"
- - "vpp-perf-results-3n-dnv"
- filter: "all"
- data-start-level: 4
- order-chapters:
- level-1:
- - "l2"
- - "ip4"
- - "ip6"
- - "srv6"
- - "ip4_tunnels"
- - "ip6_tunnels"
- - "vm_vhost"
- - "container_memif"
- - "crypto"
- - "vts"
- - "lb"
- - "nfv_density"
- - "hoststack"
- level-2:
- - "2n-skx"
- - "3n-skx"
- - "2n-clx"
- - "2n-zn2"
- - "3n-hsw"
- - "3n-tsh"
- - "2n-tx2"
- - "2n-dnv"
- - "3n-dnv"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
-
-# VPP Performance Configuration
-- type: "file"
- title: "VPP Performance Configuration"
- algorithm: "file_details_split"
- output-file: "{DIR[DTC,PERF,VPP,ALL]}"
- dir-tables:
- - "{DIR[DTC,PERF,VPP,2N,SKX]}"
- - "{DIR[DTC,PERF,VPP,3N,SKX]}"
- - "{DIR[DTC,PERF,VPP,2N,CLX]}"
- - "{DIR[DTC,PERF,VPP,2N,ZN2]}"
- - "{DIR[DTC,PERF,VPP,3N,HSW]}"
- - "{DIR[DTC,PERF,VPP,3N,TSH]}"
- - "{DIR[DTC,PERF,VPP,2N,TX2]}"
- - "{DIR[DTC,PERF,VPP,2N,DNV]}"
- - "{DIR[DTC,PERF,VPP,3N,DNV]}"
- data:
- - "vpp-perf-results-2n-skx"
- - "vpp-perf-results-3n-skx"
- - "vpp-perf-results-2n-clx"
- - "vpp-perf-results-2n-zn2"
- - "vpp-perf-results-3n-hsw"
- - "vpp-perf-results-3n-tsh"
- - "vpp-perf-results-2n-tx2"
- - "vpp-perf-results-2n-dnv"
- - "vpp-perf-results-3n-dnv"
- filter: "all"
- data-start-level: 4
- order-chapters:
- level-1:
- - "l2"
- - "ip4"
- - "ip6"
- - "srv6"
- - "ip4_tunnels"
- - "ip6_tunnels"
- - "vm_vhost"
- - "container_memif"
- - "crypto"
- - "vts"
- - "lb"
- - "nfv_density"
- - "hoststack"
- level-2:
- - "2n-skx"
- - "3n-skx"
- - "2n-clx"
- - "2n-zn2"
- - "3n-hsw"
- - "3n-tsh"
- - "2n-tx2"
- - "2n-dnv"
- - "3n-dnv"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
-
-# VPP Performance Operational
-- type: "file"
- title: "VPP Performance Operational"
- algorithm: "file_details_split_html"
- output-file: "{DIR[DTO,PERF,VPP,ALL]}"
- dir-tables:
- - "{DIR[DTO,PERF,VPP,2N,SKX]}"
- - "{DIR[DTO,PERF,VPP,3N,SKX]}"
- - "{DIR[DTO,PERF,VPP,2N,CLX]}"
- - "{DIR[DTO,PERF,VPP,2N,ZN2]}"
- - "{DIR[DTO,PERF,VPP,3N,HSW]}"
- - "{DIR[DTO,PERF,VPP,3N,TSH]}"
- - "{DIR[DTO,PERF,VPP,2N,TX2]}"
- - "{DIR[DTO,PERF,VPP,2N,DNV]}"
- - "{DIR[DTO,PERF,VPP,3N,DNV]}"
- data:
- - "vpp-perf-results-2n-skx"
- - "vpp-perf-results-3n-skx"
- - "vpp-perf-results-2n-clx"
- - "vpp-perf-results-2n-zn2"
- - "vpp-perf-results-3n-hsw"
- - "vpp-perf-results-3n-tsh"
- - "vpp-perf-results-2n-tx2"
- - "vpp-perf-results-2n-dnv"
- - "vpp-perf-results-3n-dnv"
- filter: "all"
- data-start-level: 4
- order-chapters:
- level-1:
- - "l2"
- - "ip4"
- - "ip6"
- - "srv6"
- - "ip4_tunnels"
- - "ip6_tunnels"
- - "vm_vhost"
- - "container_memif"
- - "crypto"
- - "vts"
- - "lb"
- - "nfv_density"
- - "hoststack"
- level-2:
- - "2n-skx"
- - "3n-skx"
- - "2n-clx"
- - "2n-zn2"
- - "3n-hsw"
- - "3n-tsh"
- - "2n-tx2"
- - "2n-dnv"
- - "3n-dnv"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
-
-# VPP MRR Results
-- type: "file"
- title: "VPP MRR Results"
- algorithm: "file_details_split"
- output-file: "{DIR[DTR,MRR,VPP,ALL]}"
- dir-tables:
- - "{DIR[DTR,MRR,VPP,2N,SKX]}"
- - "{DIR[DTR,MRR,VPP,3N,SKX]}"
- - "{DIR[DTR,MRR,VPP,2N,CLX]}"
- - "{DIR[DTR,MRR,VPP,2N,ZN2]}"
- - "{DIR[DTR,MRR,VPP,3N,HSW]}"
- - "{DIR[DTR,MRR,VPP,3N,TSH]}"
- - "{DIR[DTR,MRR,VPP,2N,TX2]}"
- - "{DIR[DTR,MRR,VPP,2N,DNV]}"
- - "{DIR[DTR,MRR,VPP,3N,DNV]}"
- data:
- - "vpp-mrr-results-2n-skx"
- - "vpp-mrr-results-3n-skx"
- - "vpp-mrr-results-2n-clx"
- - "vpp-mrr-results-2n-zn2"
- - "vpp-mrr-results-3n-hsw"
- - "vpp-mrr-results-3n-tsh"
- - "vpp-mrr-results-2n-tx2"
- - "vpp-mrr-results-2n-dnv"
- - "vpp-mrr-results-3n-dnv"
- filter: "all"
- data-start-level: 4
- order-chapters:
- level-1:
- - "l2"
- - "ip4"
- - "ip6"
- - "srv6"
- - "ip4_tunnels"
- - "ip6_tunnels"
- - "vm_vhost"
- - "container_memif"
- - "crypto"
- - "vts"
- - "lb"
- - "nfv_density"
- - "hoststack"
- level-2:
- - "2n-skx"
- - "3n-skx"
- - "2n-clx"
- - "2n-zn2"
- - "3n-hsw"
- - "3n-tsh"
- - "2n-tx2"
- - "2n-dnv"
- - "3n-dnv"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
-
-# VPP MRR Configuration
-- type: "file"
- title: "VPP MRR Configuration"
- algorithm: "file_details_split"
- output-file: "{DIR[DTC,MRR,VPP,ALL]}"
- dir-tables:
- - "{DIR[DTC,MRR,VPP,2N,SKX]}"
- - "{DIR[DTC,MRR,VPP,3N,SKX]}"
- - "{DIR[DTC,MRR,VPP,2N,CLX]}"
- - "{DIR[DTC,MRR,VPP,2N,ZN2]}"
- - "{DIR[DTC,MRR,VPP,3N,HSW]}"
- - "{DIR[DTC,MRR,VPP,3N,TSH]}"
- - "{DIR[DTC,MRR,VPP,2N,TX2]}"
- - "{DIR[DTC,MRR,VPP,2N,DNV]}"
- - "{DIR[DTC,MRR,VPP,3N,DNV]}"
- data:
- - "vpp-mrr-results-2n-skx"
- - "vpp-mrr-results-3n-skx"
- - "vpp-mrr-results-2n-clx"
- - "vpp-mrr-results-2n-zn2"
- - "vpp-mrr-results-3n-hsw"
- - "vpp-mrr-results-3n-tsh"
- - "vpp-mrr-results-2n-tx2"
- - "vpp-mrr-results-2n-dnv"
- - "vpp-mrr-results-3n-dnv"
- filter: "all"
- data-start-level: 4
- order-chapters:
- level-1:
- - "l2"
- - "ip4"
- - "ip6"
- - "srv6"
- - "ip4_tunnels"
- - "ip6_tunnels"
- - "vm_vhost"
- - "container_memif"
- - "crypto"
- - "vts"
- - "lb"
- - "nfv_density"
- - "hoststack"
- level-2:
- - "2n-skx"
- - "3n-skx"
- - "2n-clx"
- - "2n-zn2"
- - "3n-hsw"
- - "3n-tsh"
- - "2n-tx2"
- - "2n-dnv"
- - "3n-dnv"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
-
-# VPP Device Results - Ubuntu
-- type: "file"
- title: "VPP Device Results - Ubuntu"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,FUNC,VPP,DEVICE,UBUNTU]}"
- dir-tables: "{DIR[DTR,FUNC,VPP,DEVICE,UBUNTU]}"
- data: "vpp-device-results-ubuntu"
- filter: "all"
- data-start-level: 4
-
-# VPP Device Configuration - Ubuntu
-- type: "file"
- title: "VPP Device Configuration - Ubuntu"
- algorithm: "file_test_results"
- output-file: "{DIR[DTC,FUNC,VPP,DEVICE,UBUNTU]}"
- dir-tables: "{DIR[DTC,FUNC,VPP,DEVICE,UBUNTU]}"
- data: "vpp-device-results-ubuntu"
- filter: "all"
- data-start-level: 4
-
-# DPDK Performance Results 3n-hsw
-- type: "file"
- title: "DPDK Performance Results 3n-hsw"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,DPDK,3N,HSW]}"
- dir-tables: "{DIR[DTR,PERF,DPDK,3N,HSW]}"
- data: "dpdk-perf-results-3n-hsw"
- filter: "all"
- data-start-level: 4
-
-# DPDK Performance Results 3n-skx
-- type: "file"
- title: "DPDK Performance Results 3n-skx"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,DPDK,3N,SKX]}"
- dir-tables: "{DIR[DTR,PERF,DPDK,3N,SKX]}"
- data: "dpdk-perf-results-3n-skx"
- filter: "all"
- data-start-level: 4
-
-# DPDK Performance Results 2n-skx
-- type: "file"
- title: "DPDK Performance Results 2n-skx"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,DPDK,2N,SKX]}"
- dir-tables: "{DIR[DTR,PERF,DPDK,2N,SKX]}"
- data: "dpdk-perf-results-2n-skx"
- filter: "all"
- data-start-level: 4
-
-# DPDK Performance Results 2n-zn2
-- type: "file"
- title: "DPDK Performance Results 2n-zn2"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,DPDK,2N,ZN2]}"
- dir-tables: "{DIR[DTR,PERF,DPDK,2N,ZN2]}"
- data: "dpdk-perf-results-2n-zn2"
- filter: "all"
- data-start-level: 4
-
-# DPDK Performance Results 2n-clx
-- type: "file"
- title: "DPDK Performance Results 2n-clx"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,DPDK,2N,CLX]}"
- dir-tables: "{DIR[DTR,PERF,DPDK,2N,CLX]}"
- data: "dpdk-perf-results-2n-clx"
- filter: "all"
- data-start-level: 4
-
-## DPDK Performance Results 2n-dnv
-#- type: "file"
-# title: "DPDK Performance Results 2n-dnv"
-# algorithm: "file_test_results"
-# output-file: "{DIR[DTR,PERF,DPDK,2N,DNV]}"
-# dir-tables: "{DIR[DTR,PERF,DPDK,2N,DNV]}"
-# data: "dpdk-perf-results-2n-dnv"
-# filter: "all"
-# data-start-level: 4
-#
-## DPDK Performance Results 3n-dnv
-#- type: "file"
-# title: "DPDK Performance Results 3n-dnv"
-# algorithm: "file_test_results"
-# output-file: "{DIR[DTR,PERF,DPDK,3N,DNV]}"
-# dir-tables: "{DIR[DTR,PERF,DPDK,3N,DNV]}"
-# data: "dpdk-perf-results-3n-dnv"
-# filter: "all"
-# data-start-level: 4
-
-# DPDK Performance Results 3n-tsh
-- type: "file"
- title: "DPDK Performance Results 3n-tsh"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,DPDK,3N,TSH]}"
- dir-tables: "{DIR[DTR,PERF,DPDK,3N,TSH]}"
- data: "dpdk-perf-results-3n-tsh"
- filter: "all"
- data-start-level: 4
-
-# DPDK Performance Results 2n-tx2
-- type: "file"
- title: "DPDK Performance Results 2n-tx2"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,DPDK,2N,TX2]}"
- dir-tables: "{DIR[DTR,PERF,DPDK,2N,TX2]}"
- data: "dpdk-perf-results-2n-tx2"
- filter: "all"
- data-start-level: 4
-
-################################################################################
-### P L O T S ###
-################################################################################
-
-# Hoststack tests 3n-hsw
-
-- type: "plot"
- title: "Bandwidth: 3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-ldpreload-iperf3"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-ldpreload-iperf3-bps"
- data: "plot-vpp-hoststack-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Hoststack.40Ge2P1Xl710-Eth-Ip4Tcpbase-Ldpreload-Iperf3-Bps.1460B-1t1c-eth-ip4tcpbase-ldpreload-iperf3-bps"
- - "Tests.Vpp.Perf.Hoststack.40Ge2P1Xl710-Eth-Ip4Tcpscale1Cl10S-Ldpreload-Iperf3-Bps.1460B-1t1c-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps"
- layout:
- title: "3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-ldpreload-iperf3"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "Bandwidth: 3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-nsim-ldpreload-iperf3"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-nsim-ldpreload-iperf3-bps"
- data: "plot-vpp-hoststack-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Hoststack.40Ge2P1Xl710-Eth-Ip4Tcpbase-Nsim-Ldpreload-Iperf3-Bps.1460B-1t1c-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps"
- - "Tests.Vpp.Perf.Hoststack.40Ge2P1Xl710-Eth-Ip4Tcpscale1Cl10S-Nsim-Ldpreload-Iperf3-Bps.1460B-1t1c-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps"
- layout:
- title: "3n-hsw-xl710-1460b-1t1c-eth-ip4tcp-nsim-ldpreload-iperf3"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "Bandwidth: 3n-hsw-xl710-1280b-1t1c-eth-ip4udpquic-vppecho"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-1280b-1t1c-eth-ip4udpquic-vppecho-bps"
- data: "plot-vpp-hoststack-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Hoststack.40Ge2P1Xl710-Eth-Ip4Udpquicbase-Vppecho-Bps.1280B-1t1c-eth-ip4udpquicbase-vppecho-bps"
- - "Tests.Vpp.Perf.Hoststack.40Ge2P1Xl710-Eth-Ip4Udpquicscale1Cl10S-Vppecho-Bps.1280B-1t1c-eth-ip4udpquicscale1cl10s-vppecho-bps"
- - "Tests.Vpp.Perf.Hoststack.40Ge2P1Xl710-Eth-Ip4Udpquicscale10Cl1S-Vppecho-Bps.1280B-1t1c-eth-ip4udpquicscale10cl1s-vppecho-bps"
- - "Tests.Vpp.Perf.Hoststack.40Ge2P1Xl710-Eth-Ip4Udpquicscale10Cl10S-Vppecho-Bps.1280B-1t1c-eth-ip4udpquicscale10cl10s-vppecho-bps"
- layout:
- title: "3n-hsw-xl710-1280b-1t1c-eth-ip4udpquic-vppecho"
- layout: "plot-hoststack"
-
-################################################################################
-
-# Soak Test (PLRsearch), boxes - 2n-clx
-- type: "plot"
- title: "VPP Critical rate: 30 Minutes Soak Test (PLRsearch)"
- algorithm: "plot_perf_box_name"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/soak-test-1"
- data: "plot-vpp-soak-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Soak.64B-2t1c-avf-eth-l2xcbase-soak"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Soak.64B-2t1c-avf-eth-l2bdbasemaclrn-soak"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Soak.64B-2t1c-eth-l2xcbase-soak"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Soak.64B-2t1c-eth-l2bdbasemaclrn-soak"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Soak.64B-2t1c-avf-ethip4-ip4base-soak"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Soak.64B-2t1c-ethip4-ip4base-soak"
- layout:
- title: "30 Minutes Soak Test (PLRsearch)"
- layout: "plot-soak-throughput"
-
-# Soak Test (PLRsearch), boxes - 2n-clx
-- type: "plot"
- title: "VPP Critical rate: 30 Minutes Soak Test (PLRsearch)"
- algorithm: "plot_perf_box_name"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/soak-test-2"
- data: "plot-vpp-soak-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Soak.78B-2t1c-avf-ethip6-ip6base-soak"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Soak.78B-2t1c-ethip6-ip6base-soak"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Soak.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-soak"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Soak.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-soak"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Soak.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-soak"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Soak.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-soak"
- layout:
- title: "30 Minutes Soak Test (PLRsearch)"
- layout: "plot-soak-throughput"
-
-# Soak Test (PLRsearch), boxes - 2n-skx
-- type: "plot"
- title: "VPP Critical rate: 30 Minutes Soak Test (PLRsearch)"
- algorithm: "plot_perf_box_name"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/soak-test-2n-skx-1"
- data: "plot-vpp-soak-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Soak.64B-2t1c-avf-eth-l2xcbase-soak"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Soak.64B-2t1c-avf-eth-l2bdbasemaclrn-soak"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Soak.64B-2t1c-eth-l2xcbase-soak"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Soak.64B-2t1c-eth-l2bdbasemaclrn-soak"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Soak.64B-2t1c-avf-ethip4-ip4base-soak"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Soak.64B-2t1c-ethip4-ip4base-soak"
- layout:
- title: "30 Minutes Soak Test (PLRsearch)"
- layout: "plot-soak-throughput"
-
-# Soak Test (PLRsearch), boxes - 2n-skx
-- type: "plot"
- title: "VPP Critical rate: 30 Minutes Soak Test (PLRsearch)"
- algorithm: "plot_perf_box_name"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/soak-test-2n-skx-2"
- data: "plot-vpp-soak-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Soak.78B-2t1c-avf-ethip6-ip6base-soak"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Soak.78B-2t1c-ethip6-ip6base-soak"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Soak.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-soak"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Soak.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-soak"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Soak.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-soak"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Soak.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-soak"
- layout:
- title: "30 Minutes Soak Test (PLRsearch)"
- layout: "plot-soak-throughput"
-
-###############################################################################
-
-# Reconf tests 2n-skx
-
-- type: "plot"
- title: "NFV Effective Blocked Time: 2n-skx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
- algorithm: "plot_nf_reconf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf"
- data: "plot-vpp-nfv-reconf-2n-skx"
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-8Ch-1Ach-16Vh-8Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-10Ch-1Ach-20Vh-10Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf"
- layout:
- title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "NFV Effective Blocked Time: 2n-skx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
- algorithm: "plot_nf_reconf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf"
- data: "plot-vpp-nfv-reconf-2n-skx"
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-8Ch-1Ach-16Vh-8Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-10Ch-1Ach-20Vh-10Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf"
- layout:
- title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "NFV Effective Blocked Time: 2n-skx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
- algorithm: "plot_nf_reconf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf"
- data: "plot-vpp-nfv-reconf-2n-skx"
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-8Ch-1Ach-16Vh-8Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-10Ch-1Ach-20Vh-10Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf"
- layout:
- title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
- layout: "plot-throughput"
-
-###############################################################################
-
-# Reconf tests 2n-clx
-
-- type: "plot"
- title: "NFV Effective Blocked Time: 2n-clx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
- algorithm: "plot_nf_reconf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf"
- data: "plot-vpp-nfv-reconf-2n-clx"
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-2t1c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
- layout:
- title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "NFV Effective Blocked Time: 2n-clx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
- algorithm: "plot_nf_reconf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf"
- data: "plot-vpp-nfv-reconf-2n-clx"
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-4t2c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
- layout:
- title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "NFV Effective Blocked Time: 2n-clx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
- algorithm: "plot_nf_reconf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf"
- data: "plot-vpp-nfv-reconf-2n-clx"
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-1Ach-4Vh-2Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-1Ach-8Vh-4Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-1Ach-12Vh-6Vm1T-Testpmd-Reconf.IMIX-8t4c-avf-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf"
- layout:
- title: "dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-testpmd"
- layout: "plot-throughput"
-
-###############################################################################
-
-# Plots - NF Density - VSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- layout: "plot-service-density"
-
-# Plots - NF Density - VSC - NDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- layout: "plot-service-density"
-
-# Plots - NF Density - VSC - PDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - VSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '2T1C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '4T2C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '8T4C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- layout: "plot-service-density"
-
-# Plots - NF Density - VSC - NDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- layout: "plot-service-density"
-
-# Plots - NF Density - VSC - PDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-vsc-vxlan-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-vsc-vxlan-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-vsc-vxlan-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - CSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csc-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csc-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csc-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-# Plots - NF Density - CSC - NDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csc-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csc-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csc-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-# Plots - NF Density - CSC - PDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csc-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csc-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csc-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-################################################################################
-#
-## Plots - NF Density - CSC IPSEC 4tnl - MRR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-skx-mrr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '2T1C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-skx-mrr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '4T2C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-skx-mrr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '8T4C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 4tnl - NDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '2T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '4T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '8T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 4tnl - PDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-4tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '2T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-4tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '4T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-4tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '8T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# layout: "plot-service-density"
-
-###############################################################################
-
-## Plots - NF Density - CSC IPSEC 4tnl - MRR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-hsw-mrr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IMIX' and
-# 'TNL_4' and
-# '1T1C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-hsw-mrr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '2T2C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-hsw-mrr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '4T4C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-mrr"
-# layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 4tnl - NDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '1T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '2T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '4T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 4tnl - PDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-4tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '1T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-4tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '2T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-4tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_4' and
-# 'IMIX' and
-# '4T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-4tnl-vppip4-pdr"
-# layout: "plot-service-density"
-
-###############################################################################
-
-## Plots - NF Density - CSC IPSEC 1000tnl - MRR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-skx-mrr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '2T1C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-skx-mrr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '4T2C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-skx-mrr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '8T4C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 1000tnl - NDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '2T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '4T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '8T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 1000tnl - PDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-1000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '2T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-1000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '4T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-1000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '8T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-
-###############################################################################
-
-## Plots - NF Density - CSC IPSEC 1000tnl - MRR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-hsw-mrr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IMIX' and
-# 'TNL_1000' and
-# '1T1C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-hsw-mrr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '2T2C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-hsw-mrr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '4T4C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 1000tnl - NDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '1T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '2T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '4T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 1000tnl - PDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-1000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '1T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-1000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '2T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-1000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_1000' and
-# 'IMIX' and
-# '4T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-1000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-
-###############################################################################
-
-## Plots - NF Density - CSC IPSEC 10000tnl - MRR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-skx-mrr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '2T1C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-skx-mrr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '4T2C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-skx-mrr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '8T4C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 10000tnl - NDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '2T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '4T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '8T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 10000tnl - PDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-2t1c-ipsec-10000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '2T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-4t2c-ipsec-10000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '4T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-skx-xxv710-imix-8t4c-ipsec-10000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-skx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '8T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-
-###############################################################################
-
-## Plots - NF Density - CSC IPSEC 10000tnl - MRR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-hsw-mrr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IMIX' and
-# 'TNL_10000' and
-# '1T1C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-hsw-mrr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '2T2C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-mrr"
-# data: "plot-vpp-nfv-3n-hsw-mrr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '4T4C' and
-# 'MRR'"
-# parameters:
-# - "result"
-# - "name"
-# - "tags"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-mrr"
-# layout: "plot-service-density"
-
-## Plots - NF Density - CSC IPSEC 10000tnl - NDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '1T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '2T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-ndr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '4T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-ndr"
-# layout: "plot-service-density"
-#
-## Plots - NF Density - CSC IPSEC 10000tnl - PDR IMIX
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-1t1c-ipsec-10000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '1T1C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-2t2c-ipsec-10000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '2T2C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-#
-#- type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# algorithm: "plot_nf_heatmap"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-3n-hsw-xl710-imix-4t4c-ipsec-10000tnl-csc-pdr"
-# data: "plot-vpp-nfv-3n-hsw-ndrpdr"
-# filter: "'NIC_Intel-XL710' and
-# 'NF_DENSITY' and
-# 'DOCKER' and
-# 'CHAIN' and
-# 'NF_VPPIP4' and
-# 'IPSEC' and
-# 'TNL_10000' and
-# 'IMIX' and
-# '4T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = CNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-10000tnl-vppip4-pdr"
-# layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - CSP - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csp-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csp-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csp-mrr"
- data: "plot-vpp-nfv-2n-skx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-# Plots - NF Density - CSP - NDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csp-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csp-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csp-ndr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-# Plots - NF Density - CSP - PDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-2t1c-base-csp-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-4t2c-base-csp-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-8t4c-base-csp-pdr"
- data: "plot-vpp-nfv-2n-skx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-###############################################################################
-# Plots - 2n-clx NF Density - VSC - MRR IMIX
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
- layout: "plot-service-density"
-
-# Plots - NF Density - VSC - NDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
- layout: "plot-service-density"
-
-# Plots - NF Density - VSC - PDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- not 'VXLAN' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
- layout: "plot-service-density"
-
-# Plots - NF Density - VSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '2T1C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '4T2C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '8T4C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-mrr"
- layout: "plot-service-density"
-
-# Plots - NF Density - VSC - NDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
- layout: "plot-service-density"
-
-# Plots - NF Density - VSC - PDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-vsc-vxlan-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-vsc-vxlan-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'VHOST' and
- 'VXLAN' and
- 'CHAIN' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-pdr"
- layout: "plot-service-density"
-
-# Plots - NF Density - CSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csc-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csc-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csc-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-# Plots - NF Density - CSC - NDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csc-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csc-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csc-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-# Plots - NF Density - CSC - PDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csc-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csc-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csc-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'CHAIN' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-# Plots - NF Density - CSP - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csp-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csp-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csp-mrr"
- data: "plot-vpp-nfv-2n-clx-mrr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'MRR'"
- parameters:
- - "result"
- - "name"
- - "tags"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
- layout: "plot-service-density"
-
-# Plots - NF Density - CSP - NDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csp-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csp-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csp-ndr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
- layout: "plot-service-density"
-
-# Plots - NF Density - CSP - PDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-2t1c-base-csp-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '2T1C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-4t2c-base-csp-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '4T2C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- algorithm: "plot_nf_heatmap"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-csp-pdr"
- data: "plot-vpp-nfv-2n-clx-ndrpdr"
- filter: "'NIC_Intel-XXV710' and
- 'NF_DENSITY' and
- 'DOCKER' and
- 'PIPELINE' and
- 'NF_VPPIP4' and
- 'IMIX' and
- '8T4C' and
- 'NDRPDR'"
- parameters:
- - "throughput"
- - "name"
- - "tags"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
- layout: "plot-service-density"
-
-################################################################################
-
-# Packet Throughput
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-memif-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-memif-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-memif-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-memif-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-memif-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-memif-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-1t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-1t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-2t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-2t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-2t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-2t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518B-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518B-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518B-2t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518B-2t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518B-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518B-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518B-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518B-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518B-2t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518B-2t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518B-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518B-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-features-l2switching-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-features-l2switching-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-2t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-2t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-2t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-2t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-2t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-2t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-2t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-2t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-2t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-2t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-2t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-2t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-#- type: "plot"
-# title: "Throughput: 3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr"
-# data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-# include:
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
-# layout:
-# title: "3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr"
-# data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-# include:
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
-# layout:
-# title: "3n-dnv-x553-78b-1t1c-srv6-ip6routing-base-ixgbe-pdr"
-# layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr10241Vm-Vppl2Xc-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1V-m-Vppl2Xc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr10241Vm-Vppl2Xc-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1V-m-Vppl2Xc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vppl2xc-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-114b-2t1c-vts-l2switching-base-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-114b-2t1c-vts-l2switching-base-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Iacldstbase-Ndrpdr.64B-1t1c-ethip4-ip4base-iacldstbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-ip4routing-features-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Iacldstbase-Ndrpdr.64B-1t1c-ethip4-ip4base-iacldstbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-ip4routing-features-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Iacldstbase-Ndrpdr.78B-1t1c-ethip6-ip6base-iacldstbase-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Iacldstbase-Ndrpdr.78B-1t1c-ethip6-ip6base-iacldstbase-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-l2switching-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-features-l2switching-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-features-l2switching-base-pdr"
- layout: "plot-throughput"
-
-################################################################################
-
-# Packet Speedup
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-memif-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-memif-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-memif-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-memif-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-memif-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-memif-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-memif-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-memif-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-memif-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-memif-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-memif-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-memif-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-memif-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-memif-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-memif-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-memif-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-memif-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-memif-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-memif-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-memif-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-memif-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-memif-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-memif-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-memif-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-ip4routing-scale-avf-rnd-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-features-ip4routing-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-features-ip4routing-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-ip4routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-ip4routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-ip4routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-ip4routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-eth-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-eth-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-features-ip4routing-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-features-ip4routing-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-features-ip4routing-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-features-ip4routing-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-64b-ip4tunnel-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-ip4tunnel-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-ip4tunnel-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-64b-ip4tunnel-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-ip4tunnel-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-ip4tunnel-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-.t.c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-.t.c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-.t.c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-.t.c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-ip4tunnel-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-ip4tunnel-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-hsw-xl710-78b-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-78b-ip6routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-78b-ip6routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-x710-78b-ip6routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-78b-ip6routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-78b-ip6routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-x710-78b-ip6routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-ip6routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-ip6routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-sw-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-hsw-xl710-imix-ipsec-ip4routing-base-scale-hw-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-l2switching-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-l2switching-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-l2switching-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-l2switching-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-l2switching-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-l2switching-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-l2switching-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-l2switching-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-l2switching-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-l2switching-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-l2switching-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-l2switching-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-l2switching-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-l2switching-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-l2switching-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-l2switching-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-features-l2switching-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-features-l2switching-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-features-l2switching-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-features-l2switching-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-features-l2switching-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-features-l2switching-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-.t.c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-.t.c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-hsw-xl710-78b-srv6-ip6routing-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-78b-srv6-ip6routing-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-srv6-ip6routing-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-.t.c-avf-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-.t.c-avf-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-.t.c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-.t.c-avf-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-.t.c-avf-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-.t.c-avf-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-srv6-ip6routing-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-78b-srv6-ip6routing-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-srv6-ip6routing-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-.t.c-avf-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-.t.c-avf-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-.t.c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-.t.c-avf-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-.t.c-avf-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-.t.c-avf-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-srv6-ip6routing-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-vhost-base-avf-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-vhost-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-vhost-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-vhost-base-avf-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-vhost-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-vhost-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-vhost-base-avf-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-vhost-base-avf-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-vhost-base-dpdk-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-vhost-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-vhost-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-vhost-base-dpdk-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-vhost-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-vhost-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-64b-vhost-base-dpdk-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-vhost-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-vhost-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-64b-vhost-base-dpdk-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-vhost-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-vhost-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-64b-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-vhost-base-dpdk-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr10241Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1V-m-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-hsw-xl710-64b-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-hsw-xl710-64b-vhost-base-dpdk-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr10241Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1V-m-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-link-bonding-vhost-base-avf-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-link-bonding-vhost-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-link-bonding-vhost-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-link-bonding-vhost-base-avf-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-link-bonding-vhost-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-link-bonding-vhost-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-link-bonding-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-vhost-base-avf-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-vhost-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-vhost-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-vhost-base-avf-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-vhost-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-vhost-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-vhost-base-avf-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-vhost-base-avf-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-vhost-base-dpdk-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-vhost-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-vhost-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-vhost-base-dpdk-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-vhost-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-vhost-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-link-bonding-vhost-base-avf-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-link-bonding-vhost-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-link-bonding-vhost-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-link-bonding-vhost-base-avf-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-link-bonding-vhost-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-link-bonding-vhost-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-link-bonding-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-114b-vts-l2switching-base-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-114b-vts-l2switching-base-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-memif-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-memif-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-memif-base-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-memif-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-memif-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-memif-base-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-ip4routing-base-scale-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-features-ip4routing-base-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-features-ip4routing-base-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-ip4tunnel-base-scale-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-ip6routing-base-scale-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-l2switching-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-l2switching-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-l2switching-base-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-l2switching-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-l2switching-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-l2switching-base-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-l2switching-base-scale-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-l2switching-base-scale-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-features-l2switching-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-features-l2switching-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-features-l2switching-base-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-features-l2switching-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-features-l2switching-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-features-l2switching-base-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-.t.c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-.t.c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-vhost-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-vhost-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-vhost-base-ixgbe-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-vhost-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-vhost-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-vhost-base-ixgbe-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-#- type: "plot"
-# title: "Speedup: 3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-# include:
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# layout:
-# title: "3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-ndr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-3n-tsh"
-# include:
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
-# layout:
-# title: "3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-pdr"
-# layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-l2switching-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-l2switching-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-l2switching-base-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-l2switching-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-l2switching-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-l2switching-base-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-l2switching-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-l2switching-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-l2switching-base-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-l2switching-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-l2switching-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-l2switching-base-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-features-l2switching-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-features-l2switching-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-features-l2switching-base-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-features-l2switching-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-features-l2switching-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-features-l2switching-base-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-#- type: "plot"
-# title: "Speedup: 3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-# include:
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-.t.c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
-# layout:
-# title: "3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-ndr-tsa"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-3n-dnv"
-# include:
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-.t.c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.10Ge2P1X553-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-.t.c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
-# layout:
-# title: "3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-pdr-tsa"
-# layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Iacldstbase-Ndrpdr.64B-.t.c-ethip4-ip4base-iacldstbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-ip4routing-features-base-scale-dpdk-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Iacldstbase-Ndrpdr.64B-.t.c-ethip4-ip4base-iacldstbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-ip4routing-features-base-scale-dpdk-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Iacldstbase-Ndrpdr.78B-.t.c-ethip6-ip6base-iacldstbase-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Iacldstbase-Ndrpdr.78B-.t.c-ethip6-ip6base-iacldstbase-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-l2switching-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-l2switching-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-l2switching-base-dpdk-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-l2switching-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-l2switching-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-l2switching-base-dpdk-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-l2switching-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-l2switching-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-l2switching-scale-dpdk-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-l2switching-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-l2switching-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-l2switching-scale-dpdk-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-features-l2switching-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-features-l2switching-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-features-l2switching-base-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-features-l2switching-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-features-l2switching-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-tx2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-features-l2switching-base-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-################################################################################
-
-# Packet Throughput - DPDK
-
-# 2n-skx-xxv710
-
-- type: "plot"
- title: "DPDK Throughput: 2n-skx-xxv710-64b-2t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-xxv710-64b-2t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-skx-xxv710-64b-4t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-xxv710-64b-4t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-4t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-skx-xxv710-64b-2t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-xxv710-64b-2t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-2t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-skx-xxv710-64b-4t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-xxv710-64b-4t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-4t2c-base-pdr"
- layout: "plot-throughput"
-
-# 2n-skx-x710
-
-- type: "plot"
- title: "DPDK Throughput: 2n-skx-x710-64b-2t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-x710-64b-2t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-2t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-skx-x710-64b-4t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-x710-64b-4t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-4t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-skx-x710-64b-2t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-x710-64b-2t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-2t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-skx-x710-64b-4t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-x710-64b-4t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-4t2c-base-pdr"
- layout: "plot-throughput"
-
-# 3n-skx-xxv710
-
-- type: "plot"
- title: "DPDK Throughput: 3n-skx-xxv710-64b-2t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-xxv710-64b-2t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-3n-skx"
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-skx-xxv710-64b-4t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-xxv710-64b-4t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-3n-skx"
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-4t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-skx-xxv710-64b-2t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-xxv710-64b-2t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-3n-skx"
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-2t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-skx-xxv710-64b-4t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-xxv710-64b-4t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-3n-skx"
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-4t2c-base-pdr"
- layout: "plot-throughput"
-
-# 3n-skx-x710
-
-- type: "plot"
- title: "DPDK Throughput: 3n-skx-x710-64b-2t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-x710-64b-2t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-3n-skx"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-2t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-skx-x710-64b-4t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-x710-64b-4t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-3n-skx"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-4t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-skx-x710-64b-2t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-x710-64b-2t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-3n-skx"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-2t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-skx-x710-64b-4t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-x710-64b-4t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-3n-skx"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-4t2c-base-pdr"
- layout: "plot-throughput"
-
-# 3n-hsw-xl710
-
-- type: "plot"
- title: "DPDK Throughput: 3n-hsw-xl710-64b-1t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-hsw-xl710-64b-1t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-3n-hsw"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-hsw-xl710-64b-2t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-hsw-xl710-64b-2t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-3n-hsw"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-2t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-hsw-xl710-64b-1t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-hsw-xl710-64b-1t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-3n-hsw"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-1t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-hsw-xl710-64b-2t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-hsw-xl710-64b-2t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-3n-hsw"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-hsw-xl710-64b-2t2c-base-pdr"
- layout: "plot-throughput"
-
-# 3n-hsw-x710
-
-- type: "plot"
- title: "DPDK Throughput: 3n-hsw-x710-64b-1t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-hsw-x710-64b-1t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-3n-hsw"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-hsw-x710-64b-1t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-hsw-x710-64b-2t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-hsw-x710-64b-2t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-3n-hsw"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-hsw-x710-64b-2t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-hsw-x710-64b-1t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-hsw-x710-64b-1t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-3n-hsw"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-hsw-x710-64b-1t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-hsw-x710-64b-2t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-hsw-x710-64b-2t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-3n-hsw"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-hsw-x710-64b-2t2c-base-pdr"
- layout: "plot-throughput"
-
-## 2n-dnv-x553
-#
-#- type: "plot"
-# title: "DPDK Throughput: 2n-dnv-x553-64b-1t1c-base-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,DPDK]}/2n-dnv-x553-64b-1t1c-base-ndr"
-# data: "plot-dpdk-throughput-latency-2n-dnv"
-# include:
-# - "tests.dpdk.perf.2N1L-10Ge2P1X553-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
-# - "tests.dpdk.perf.2N1L-10Ge2P1X553-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
-# layout:
-# title: "2n-dnv-x553-64b-1t1c-base-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "DPDK Throughput: 2n-dnv-x553-64b-2t2c-base-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,DPDK]}/2n-dnv-x553-64b-2t2c-base-ndr"
-# data: "plot-dpdk-throughput-latency-2n-dnv"
-# include:
-# - "tests.dpdk.perf.2N1L-10Ge2P1X553-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
-# - "tests.dpdk.perf.2N1L-10Ge2P1X553-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
-# layout:
-# title: "2n-dnv-x553-64b-2t2c-base-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "DPDK Throughput: 2n-dnv-x553-64b-1t1c-base-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,DPDK]}/2n-dnv-x553-64b-1t1c-base-pdr"
-# data: "plot-dpdk-throughput-latency-2n-dnv"
-# include:
-# - "tests.dpdk.perf.2N1L-10Ge2P1X553-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
-# - "tests.dpdk.perf.2N1L-10Ge2P1X553-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
-# layout:
-# title: "2n-dnv-x553-64b-1t1c-base-pdr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "DPDK Throughput: 2n-dnv-x553-64b-2t2c-base-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,DPDK]}/2n-dnv-x553-64b-2t2c-base-pdr"
-# data: "plot-dpdk-throughput-latency-2n-dnv"
-# include:
-# - "tests.dpdk.perf.2N1L-10Ge2P1X553-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
-# - "tests.dpdk.perf.2N1L-10Ge2P1X553-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
-# layout:
-# title: "2n-dnv-x553-64b-2t2c-base-pdr"
-# layout: "plot-throughput"
-#
-## 3n-dnv-x553
-#
-#- type: "plot"
-# title: "DPDK Throughput: 3n-dnv-x553-64b-1t1c-base-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,DPDK]}/3n-dnv-x553-64b-1t1c-base-ndr"
-# data: "plot-dpdk-throughput-latency-3n-dnv"
-# include:
-# - "tests.dpdk.perf.10Ge2P1X553-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
-# - "tests.dpdk.perf.10Ge2P1X553-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
-# layout:
-# title: "3n-dnv-x553-64b-1t1c-base-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "DPDK Throughput: 3n-dnv-x553-64b-2t2c-base-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,DPDK]}/3n-dnv-x553-64b-2t2c-base-ndr"
-# data: "plot-dpdk-throughput-latency-3n-dnv"
-# include:
-# - "tests.dpdk.perf.10Ge2P1X553-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
-# - "tests.dpdk.perf.10Ge2P1X553-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
-# layout:
-# title: "3n-dnv-x553-64b-2t2c-base-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "DPDK Throughput: 3n-dnv-x553-64b-1t1c-base-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,DPDK]}/3n-dnv-x553-64b-1t1c-base-pdr"
-# data: "plot-dpdk-throughput-latency-3n-dnv"
-# include:
-# - "tests.dpdk.perf.10Ge2P1X553-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
-# - "tests.dpdk.perf.10Ge2P1X553-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
-# layout:
-# title: "3n-dnv-x553-64b-1t1c-base-pdr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "DPDK Throughput: 3n-dnv-x553-64b-2t2c-base-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,DPDK]}/3n-dnv-x553-64b-2t2c-base-pdr"
-# data: "plot-dpdk-throughput-latency-3n-dnv"
-# include:
-# - "tests.dpdk.perf.10Ge2P1X553-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
-# - "tests.dpdk.perf.10Ge2P1X553-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
-# layout:
-# title: "3n-dnv-x553-64b-2t2c-base-pdr"
-# layout: "plot-throughput"
-
-# 3n-tsh-x520
-
-- type: "plot"
- title: "DPDK Throughput: 3n-tsh-x520-64b-1t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-tsh-x520-64b-1t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-3n-tsh"
- include:
- - "tests.dpdk.perf.10ge2p1x520-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-tsh-x520-64b-2t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-tsh-x520-64b-2t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-3n-tsh"
- include:
- - "tests.dpdk.perf.10ge2p1x520-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-2t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-tsh-x520-64b-1t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-tsh-x520-64b-1t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-3n-tsh"
- include:
- - "tests.dpdk.perf.10ge2p1x520-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-1t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-tsh-x520-64b-2t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-tsh-x520-64b-2t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-3n-tsh"
- include:
- - "tests.dpdk.perf.10ge2p1x520-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-2t2c-base-pdr"
- layout: "plot-throughput"
-
-# 2n-tx2-xl710
-
-- type: "plot"
- title: "DPDK Throughput: 2n-tx2-xl710-64b-1t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-tx2-xl710-64b-1t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-tx2"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-tx2-xl710-64b-2t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-tx2-xl710-64b-2t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-tx2"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-2t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-tx2-xl710-64b-1t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-tx2-xl710-64b-1t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-tx2"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-1t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-1t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-1t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-tx2-xl710-64b-2t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-tx2-xl710-64b-2t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-tx2"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-2t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-2t2c-base-pdr"
- layout: "plot-throughput"
-
-################################################################################
-### 2n-clx ###
-################################################################################
-
-# Packet Throughput
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-memif-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-memif-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-memif-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-memif-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-memif-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-memif-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ip4base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ip4base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ip4base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ip4base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ip4base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ip4base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-2t1c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-2t1c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-114b-2t1c-vts-l2switching-base-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-114b-2t1c-vts-l2switching-base-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-################################################################################
-
-# Packet Speedup
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-memif-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-memif-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-memif-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-memif-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-memif-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-memif-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-memif-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-memif-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-memif-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-memif-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-memif-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-memif-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-features-ip4routing-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-features-ip4routing-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-features-ip4routing-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-features-ip4routing-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ip4base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ip4base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ip4base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ip4base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ip4base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ip4base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ethip4-ip4scale-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ethip4-ip4scale-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ethip4-features-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ethip4-features-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ethip4-features-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ethip4-features-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ethip4-features-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ethip4-features-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-ip6routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-ip6routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-cx556a-78b-rdma-ip6routing-base-scale-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-cx556a-78b-rdma-ip6routing-base-scale-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-l2switching-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-l2switching-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-l2switching-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-l2switching-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2switching-base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2switching-base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-.t.c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2switching-base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2switching-base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2switching-base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-.t.c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2switching-base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2switching-scale-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2switching-scale-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2switching-scale-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2switching-scale-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2switching-scale-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2switching-scale-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-avf-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-avf-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-avf-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-avf-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-avf-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-avf-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-dpdk-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-dpdk-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-vhost-base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-vhost-base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2-vhost-base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-vhost-base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-vhost-base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2-vhost-base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-l2-vhost-vppl2xc-base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-114b-vts-l2switching-base-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-114b-vts-l2switching-base-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-# Packet Throughput - DPDK
-
-# 2n-clx-xxv710
-
-- type: "plot"
- title: "DPDK Throughput: 2n-clx-xxv710-64b-2t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-xxv710-64b-2t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-clx-xxv710-64b-4t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-xxv710-64b-4t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-4t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-clx-xxv710-64b-2t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-xxv710-64b-2t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-clx-xxv710-64b-4t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-xxv710-64b-4t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-4t2c-base-pdr"
- layout: "plot-throughput"
-
-# 2n-clx-x710
-
-- type: "plot"
- title: "DPDK Throughput: 2n-clx-x710-64b-2t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-x710-64b-2t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-clx-x710-64b-4t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-x710-64b-4t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-4t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-clx-x710-64b-2t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-x710-64b-2t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-clx-x710-64b-4t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-x710-64b-4t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-4t2c-base-pdr"
- layout: "plot-throughput"
-
-###############################################################################
-
-# 2n-zn2
-
-# Packet Throughput
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-memif-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-memif-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-memif-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-memif-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-memif-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-memif-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- layout: "plot-throughput"
-
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# layout: "plot-cps"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# layout: "plot-cps"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- layout: "plot-throughput"
-
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# layout: "plot-cps"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# layout: "plot-cps"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# algorithm: "plot_perf_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ip4base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ip4base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-ip4base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ip4base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ip4base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-ip4base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-2t1c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-2t1c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-################################################################################
-
-# Packet Speedup
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-memif-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-memif-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-memif-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-memif-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-memif-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-memif-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-memif-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-memif-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-memif-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-memif-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-memif-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-memif-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-ip4routing-scale-avf-rnd-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-features-ip4routing-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-features-ip4routing-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-features-ip4routing-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis-cps"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis-cps"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
-# layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-features-ip4routing-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-features-ip4routing-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-.t.c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis-cps"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis-cps"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-.t.c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
-# layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-features-ip4routing-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-ip4base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ip4base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-ip4base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-ip4base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ip4base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-ip4base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-ethip4-ip4scale-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-ethip4-features-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ethip4-features-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-ethip4-features-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-ethip4-features-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ethip4-features-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-.t.c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-ethip4-features-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-x710-78b-ip6routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-ip6routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-ip6routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-64b-l2switching-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-l2switching-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-64b-l2switching-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-l2switching-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-l2switching-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-l2switching-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-l2switching-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-l2switching-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2switching-base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2switching-base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-.t.c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-l2switching-base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2switching-base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2switching-base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-.t.c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-l2switching-base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2switching-scale-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2switching-scale-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-l2switching-scale-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2switching-scale-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2switching-scale-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-l2switching-scale-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-avf-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-vhost-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-avf-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-vhost-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-avf-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-avf-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-vhost-base-avf-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-avf-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-avf-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-vhost-base-avf-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-dpdk-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-vhost-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-dpdk-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-vhost-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-vhost-base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-vhost-base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-l2-vhost-base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-vhost-base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-vhost-base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-l2-vhost-base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-2t1c-l2-vhost-vppl2xc-base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-rdma-l2-vhost-vppl2xc-base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-114b-vts-l2switching-base-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-114b-vts-l2switching-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-.t.c-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-114b-vts-l2switching-base-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-# Packet Throughput - DPDK
-
-# 2n-zn2-xxv710
-
-- type: "plot"
- title: "DPDK Throughput: 2n-zn2-xxv710-64b-2t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-xxv710-64b-2t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-zn2-xxv710-64b-4t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-xxv710-64b-4t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-4t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-zn2-xxv710-64b-2t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-xxv710-64b-2t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-2t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-zn2-xxv710-64b-4t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-xxv710-64b-4t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-4t2c-base-pdr"
- layout: "plot-throughput"
-
-# 2n-zn2-x710
-
-- type: "plot"
- title: "DPDK Throughput: 2n-zn2-x710-64b-2t1c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-x710-64b-2t1c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-2t1c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-zn2-x710-64b-4t2c-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-x710-64b-4t2c-base-ndr"
- data: "plot-dpdk-throughput-latency-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-4t2c-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-zn2-x710-64b-2t1c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-x710-64b-2t1c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-2t1c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-2t1c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-2t1c-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-zn2-x710-64b-4t2c-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-x710-64b-4t2c-base-pdr"
- data: "plot-dpdk-throughput-latency-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-4t2c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-4t2c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-4t2c-base-pdr"
- layout: "plot-throughput"
-
-################################################################################
-
-- type: "plot"
- title: "Latency by percentile: 2n-skx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-2n-skx"
- output-file-links: "{DIR[LAT,VPP]}/2n_skx.rst"
- target-links: "../../_static/vpp"
- data: "plot-vpp-hdrh-lat-2n-skx"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 2n-zn2"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-2n-zn2"
- output-file-links: "{DIR[LAT,VPP]}/2n_zn2.rst"
- target-links: "../../_static/vpp"
- data: "plot-vpp-hdrh-lat-2n-zn2"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 3n-skx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-3n-skx"
- output-file-links: "{DIR[LAT,VPP]}/3n_skx.rst"
- target-links: "../../_static/vpp"
- data: "plot-vpp-hdrh-lat-3n-skx"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 2n-clx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-2n-clx"
- output-file-links: "{DIR[LAT,VPP]}/2n_clx.rst"
- target-links: "../../_static/vpp"
- data: "plot-vpp-hdrh-lat-2n-clx"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 3n-hsw"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-3n-hsw"
- output-file-links: "{DIR[LAT,VPP]}/3n_hsw.rst"
- target-links: "../../_static/vpp"
- data: "plot-vpp-hdrh-lat-3n-hsw"
- filter: "'1T1C' and 'NIC_Intel-XL710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 3n-tsh"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-3n-tsh"
- output-file-links: "{DIR[LAT,VPP]}/3n_tsh.rst"
- target-links: "../../_static/vpp"
- data: "plot-vpp-hdrh-lat-3n-tsh"
- filter: "'1T1C' and 'NIC_Intel-X520-DA2'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 2n-tx2"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-2n-tx2"
- output-file-links: "{DIR[LAT,VPP]}/2n-tx2.rst"
- target-links: "../../_static/vpp"
- data: "plot-vpp-hdrh-lat-2n-tx2"
- filter: "'1T1C' and 'NIC_Intel-XL710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: DPDK 2n-skx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-2n-skx"
- output-file-links: "{DIR[LAT,DPDK]}/2n_skx.rst"
- target-links: "../../_static/dpdk"
- data: "plot-dpdk-hdrh-lat-2n-skx"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: DPDK 3n-skx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-3n-skx"
- output-file-links: "{DIR[LAT,DPDK]}/3n_skx.rst"
- target-links: "../../_static/dpdk"
- data: "plot-dpdk-hdrh-lat-3n-skx"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: DPDK 2n-clx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-2n-clx"
- output-file-links: "{DIR[LAT,DPDK]}/2n_clx.rst"
- target-links: "../../_static/dpdk"
- data: "plot-dpdk-hdrh-lat-2n-clx"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: DPDK 2n-zn2"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-2n-zn2"
- output-file-links: "{DIR[LAT,DPDK]}/2n_zn2.rst"
- target-links: "../../_static/dpdk"
- data: "plot-dpdk-hdrh-lat-2n-zn2"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: DPDK 3n-hsw"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-3n-hsw"
- output-file-links: "{DIR[LAT,DPDK]}/3n_hsw.rst"
- target-links: "../../_static/dpdk"
- data: "plot-dpdk-hdrh-lat-3n-hsw"
- filter: "'1T1C' and 'NIC_Intel-XL710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: DPDK 3n-tsh"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-3n-tsh"
- output-file-links: "{DIR[LAT,DPDK]}/3n_tsh.rst"
- target-links: "../../_static/dpdk"
- data: "plot-dpdk-hdrh-lat-3n-tsh"
- filter: "'1T1C' and 'NIC_Intel-X520-DA2'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: DPDK 2n-tx2"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-2n-tx2"
- output-file-links: "{DIR[LAT,DPDK]}/2n-tx2.rst"
- target-links: "../../_static/dpdk"
- data: "plot-dpdk-hdrh-lat-2n-tx2"
- filter: "'1T1C' and 'NIC_Intel-XL710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
diff --git a/resources/tools/presentation/specification_CPTA.yaml b/resources/tools/presentation/specification_CPTA.yaml
deleted file mode 100644
index e72392d0cb..0000000000
--- a/resources/tools/presentation/specification_CPTA.yaml
+++ /dev/null
@@ -1,10226 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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 is the specification of parameters for "Continuous Performance Trending
-# and Analysis" feature provided by PAL.
-
--
- type: "environment"
-
- paths:
- # Top level directories:
- ## Working directory
- DIR[WORKING]: "_tmp"
- ## Build directories
- DIR[BUILD,HTML]: "_build"
- ## Static .rst files
- DIR[RST]: "../../../docs/cpta"
-
- # Static html content
- DIR[STATIC]: "{DIR[BUILD,HTML]}/_static"
- DIR[STATIC,VPP]: "{DIR[STATIC]}/vpp"
- DIR[STATIC,ARCH]: "{DIR[STATIC]}/archive"
-
- # Working directories
- ## Input data files (.zip, .xml)
- DIR[WORKING,DATA]: "{DIR[WORKING]}/data"
- ## Static source files from git
- DIR[WORKING,SRC]: "{DIR[WORKING]}/src"
- DIR[WORKING,SRC,STATIC]: "{DIR[WORKING,SRC]}/_static"
-
- # .css patch file
- DIR[CSS_PATCH_FILE]: "{DIR[STATIC]}/theme_overrides.css"
- DIR[CSS_PATCH_FILE2]: "{DIR[WORKING,SRC,STATIC]}/theme_overrides.css"
-
- urls:
- URL[JENKINS,CSIT]: "https://jenkins.fd.io/view/csit/job"
- URL[NEXUS,LOG]: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- URL[NEXUS,DOC]: "https://docs.fd.io/csit"
- DIR[NEXUS,DOC]: "trending/_static/archive"
-
- make-dirs:
- # List the directories which are created while preparing the environment.
- # All directories MUST be defined in "paths" section.
- - "DIR[WORKING,DATA]"
- - "DIR[WORKING,SRC,STATIC]"
- - "DIR[BUILD,HTML]"
- - "DIR[STATIC,VPP]"
- - "DIR[STATIC,ARCH]"
- build-dirs:
- # List the directories where the results (build) is stored.
- # All directories MUST be defined in "paths" section.
- - "DIR[BUILD,HTML]"
-
- testbeds:
- "10.30.51.45": "LF-2n-SKX-21"
- "10.30.51.53": "LF-2n-SKX-22"
- "10.30.51.55": "LF-2n-SKX-23"
- "10.30.51.57": "LF-2n-SKX-24"
- "10.32.8.19": "LF-2n-CLX-27"
- "10.32.8.21": "LF-2n-CLX-28"
- "10.32.8.23": "LF-2n-CLX-29"
- "10.30.51.16": "LF-3n-HSW-01"
- "10.30.51.20": "LF-3n-HSW-02"
- "10.30.51.24": "LF-3n-HSW-03"
- "10.30.51.48": "LF-3n-SKX-31"
- "10.30.51.60": "LF-3n-SKX-32"
- "10.30.51.49": "LF-3n-TSH-33"
- "10.32.8.25": "LF-2n-ZN2-210"
- "10.32.8.10": "LF-DNV"
-
--
- type: "configuration"
-
- archive-inputs: False
-
- mapping-file: "mapping_tc_names.yaml"
-
- ignore-list: "ignored_tcs.yaml"
-
- alerting:
-
- alerts:
-
-# As Jenkins slave is not configured to send emails, this is now only as
-# a working example:
-#
-# # Send the list of failed tests vie email.
-# # Pre-requisites:
-# # - SMTP server is installed on the Jenkins slave
-# # - SMTP server is configured to send emails. Default configuration is
-# # sufficient.
-# email-failed-tests:
-# # Title is used in logs and also as the email subject.
-# title: "Trending: Failed Tests"
-# # Type of alert.
-# type: "failed-tests"
-# # How to send the alert. The used way must be specified in the
-# # configuration part.
-# way: "email"
-# # Data to be included in the alert.
-# # Here is used the list of tables generated by the function
-# # "table_failed_tests_html".
-# include:
-# - "failed-tests-3n-hsw"
-# - "failed-tests-3n-skx"
-# - "failed-tests-2n-skx"
-# # This url is used in the tables instead of the original one. The aim
-# # is to make the links usable also from the email.
-# url: "https://docs.fd.io/csit/master/trending/trending"
-
- # Jenkins job sends the email with failed tests.
- # Pre-requisites:
- # - Jenkins job is configured to send emails in "Post-build Actions" -->
- # "Editable Email Notification".
- jenkins-send-failed-tests:
- title: "Trending: Failed Tests"
- type: "failed-tests"
- way: "jenkins"
- include:
- - "last-failed-tests-vpp-2n-skx-mrr"
- - "last-failed-tests-vpp-3n-skx-mrr"
- - "last-failed-tests-vpp-2n-clx-mrr"
- - "last-failed-tests-vpp-2n-zn2-mrr"
- - "last-failed-tests-vpp-3n-hsw-mrr"
- - "last-failed-tests-vpp-3n-tsh-mrr"
- - "last-failed-tests-vpp-2n-dnv-mrr"
- - "last-failed-tests-vpp-3n-dnv-mrr"
- - "last-failed-tests-dpdk-2n-skx-mrr"
- - "last-failed-tests-dpdk-3n-skx-mrr"
- - "last-failed-tests-dpdk-2n-clx-mrr"
- - "last-failed-tests-dpdk-3n-hsw-mrr"
- - "last-failed-tests-dpdk-3n-tsh-mrr"
- - "last-failed-tests-vpp-2n-skx-ndrpdr"
- - "last-failed-tests-vpp-3n-skx-ndrpdr"
- - "last-failed-tests-vpp-2n-clx-ndrpdr"
- - "last-failed-tests-vpp-3n-hsw-ndrpdr"
- urls:
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-skx"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-skx"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-clx"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-zn2"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-tsh"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-dnv"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-dnv"
- - "https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-skx"
- - "https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-3n-skx"
- - "https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-clx"
- - "https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master"
- - "https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-3n-tsh"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-skx"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-skx"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-clx"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-hsw"
- url-details: "https://docs.fd.io/csit/master/trending/introduction/failures.html"
-
- configurations:
- # Configuration of the email notifications.
- email:
- # SMTP server
- server: "localhost"
- # List of recipients.
- address-to:
- - "csit-report@lists.fd.io"
- # Sender
- address-from: "testuser@testserver.com"
-
- # Configuration of notifications sent by Jenkins.
- jenkins:
- # The directory in the workspace where the generated data is stored and
- # then read by Jenkins job.
- output-dir: "_build/_static/vpp"
- # The name of the output files. ASCII text and HTML formats are
- # generated.
- output-file: "trending-failed-tests"
- # If defined, all output files are zipped into this file.
- zip-output: "failed-tests.tar.gz"
-
- data-sets:
-
- # Compressed failed tests (last builds)
- table-last-failed-tests-3n-hsw:
- csit-vpp-perf-mrr-daily-master:
- - "lastCompletedBuild"
- table-last-failed-tests-3n-skx:
- csit-vpp-perf-mrr-daily-master-3n-skx:
- - "lastCompletedBuild"
- table-last-failed-tests-2n-skx:
- csit-vpp-perf-mrr-daily-master-2n-skx:
- - "lastCompletedBuild"
- table-last-failed-tests-2n-clx:
- csit-vpp-perf-mrr-daily-master-2n-clx:
- - "lastCompletedBuild"
- table-last-failed-tests-2n-zn2:
- csit-vpp-perf-mrr-daily-master-2n-zn2:
- - "lastCompletedBuild"
- table-last-failed-tests-3n-tsh:
- csit-vpp-perf-mrr-daily-master-3n-tsh:
- - "lastCompletedBuild"
- table-last-failed-tests-3n-dnv:
- csit-vpp-perf-mrr-daily-master-3n-dnv:
- - "lastCompletedBuild"
- table-last-failed-tests-2n-dnv:
- csit-vpp-perf-mrr-daily-master-2n-dnv:
- - "lastCompletedBuild"
- table-last-failed-tests-3n-hsw-ndrpdr:
- csit-vpp-perf-ndrpdr-weekly-master-3n-hsw:
- - "lastCompletedBuild"
- table-last-failed-tests-3n-skx-ndrpdr:
- csit-vpp-perf-ndrpdr-weekly-master-3n-skx:
- - "lastCompletedBuild"
- table-last-failed-tests-2n-skx-ndrpdr:
- csit-vpp-perf-ndrpdr-weekly-master-2n-skx:
- - "lastCompletedBuild"
- table-last-failed-tests-2n-clx-ndrpdr:
- csit-vpp-perf-ndrpdr-weekly-master-2n-clx:
- - "lastCompletedBuild"
- table-last-failed-tests-dpdk-3n-hsw:
- csit-dpdk-perf-mrr-weekly-master:
- - "lastCompletedBuild"
- table-last-failed-tests-dpdk-3n-skx:
- csit-dpdk-perf-mrr-weekly-master-3n-skx:
- - "lastCompletedBuild"
- table-last-failed-tests-dpdk-2n-skx:
- csit-dpdk-perf-mrr-weekly-master-2n-skx:
- - "lastCompletedBuild"
- table-last-failed-tests-dpdk-2n-clx:
- csit-dpdk-perf-mrr-weekly-master-2n-clx:
- - "lastCompletedBuild"
- table-last-failed-tests-dpdk-3n-tsh:
- csit-dpdk-perf-mrr-weekly-master-3n-tsh:
- - "lastCompletedBuild"
-
- # 3n-hsw
- plot-performance-trending-all-3n-hsw:
- csit-vpp-perf-mrr-daily-master:
- start: 1100
- end: "lastCompletedBuild"
- max-builds: 180
- csit-dpdk-perf-mrr-weekly-master:
- start: 107
- end: "lastCompletedBuild"
- max-builds: 26
-
- plot-performance-trending-vpp-3n-hsw:
- csit-vpp-perf-mrr-daily-master:
- start: 1100
- end: "lastCompletedBuild"
- max-builds: 180
-
- plot-performance-trending-dpdk-3n-hsw:
- csit-dpdk-perf-mrr-weekly-master:
- start: 107
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 3n-skx
- plot-performance-trending-all-3n-skx:
- csit-vpp-perf-mrr-daily-master-3n-skx:
- start: 834
- end: "lastCompletedBuild"
- max-builds: 180
- csit-dpdk-perf-mrr-weekly-master-3n-skx:
- start: 72
- end: "lastCompletedBuild"
- max-builds: 26
-
- plot-performance-trending-vpp-3n-skx:
- csit-vpp-perf-mrr-daily-master-3n-skx:
- start: 834
- end: "lastCompletedBuild"
- max-builds: 180
-
- plot-performance-trending-dpdk-3n-skx:
- csit-dpdk-perf-mrr-weekly-master-3n-skx:
- start: 72
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 2n-skx
- plot-performance-trending-all-2n-skx:
- csit-vpp-perf-mrr-daily-master-2n-skx:
- start: 858
- end: "lastCompletedBuild"
- max-builds: 180
- csit-dpdk-perf-mrr-weekly-master-2n-skx:
- start: 78
- end: "lastCompletedBuild"
- max-builds: 26
-
- plot-performance-trending-vpp-2n-skx:
- csit-vpp-perf-mrr-daily-master-2n-skx:
- start: 858
- end: "lastCompletedBuild"
-
- plot-performance-trending-dpdk-2n-skx:
- csit-dpdk-perf-mrr-weekly-master-2n-skx:
- start: 78
- end: "lastCompletedBuild"
- max-builds: 26
-
- plot-performance-trending-vpp-nfv-2n-skx:
- csit-vpp-perf-mrr-weekly-master-2n-skx:
- start: 66
- end: "lastCompletedBuild"
- max-builds: 26
- skip:
- - 68
- - 72
- - 73
- - 75
- - 76
-
- # 2n-clx
- plot-performance-trending-vpp-2n-clx:
- csit-vpp-perf-mrr-daily-master-2n-clx:
- start: 236
- end: "lastCompletedBuild"
- max-builds: 180
-
- plot-performance-trending-vpp-nfv-2n-clx:
- csit-vpp-perf-mrr-weekly-master-2n-clx:
- start: 37
- end: "lastCompletedBuild"
- max-builds: 26
- skip:
- - 39
- - 45
- - 48
-
- plot-performance-trending-dpdk-2n-clx:
- csit-dpdk-perf-mrr-weekly-master-2n-clx:
- start: 23
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 2n-zn2
- plot-performance-trending-vpp-2n-zn2:
- csit-vpp-perf-mrr-daily-master-2n-zn2:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 180
-
- plot-performance-trending-dpdk-2n-zn2:
- csit-dpdk-perf-mrr-weekly-master-2n-zn2:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 3n-tsh
- plot-performance-trending-all-3n-tsh:
- csit-vpp-perf-mrr-daily-master-3n-tsh:
- start: 144
- end: "lastCompletedBuild"
- max-builds: 180
-
- plot-performance-trending-vpp-3n-tsh:
- csit-vpp-perf-mrr-daily-master-3n-tsh:
- start: 144
- end: "lastCompletedBuild"
-
- plot-performance-trending-dpdk-3n-tsh:
- csit-dpdk-perf-mrr-weekly-master-3n-tsh:
- start: 4
- end: "lastCompletedBuild"
-
- # 3n-dnv
- plot-performance-trending-vpp-3n-dnv:
- csit-vpp-perf-mrr-daily-master-3n-dnv:
- start: 329
- end: "lastCompletedBuild"
- max-builds: 180
-
- # 2n-dnv
- plot-performance-trending-vpp-2n-dnv:
- csit-vpp-perf-mrr-daily-master-2n-dnv:
- start: 335
- end: "lastCompletedBuild"
- max-builds: 180
-
- # NDRPDR
- plot-ndrpdr-comparison-2n-skx:
- csit-vpp-perf-ndrpdr-weekly-master-2n-skx:
- start: 76
- end: "lastCompletedBuild"
- max-builds: 26
-
- plot-ndrpdr-comparison-3n-skx:
- csit-vpp-perf-ndrpdr-weekly-master-3n-skx:
- start: 76
- end: "lastCompletedBuild"
- max-builds: 26
- skip:
- - 87
-
- plot-ndrpdr-comparison-2n-clx:
- csit-vpp-perf-ndrpdr-weekly-master-2n-clx:
- start: 21
- end: "lastCompletedBuild"
- max-builds: 26
-
- plot-ndrpdr-comparison-3n-hsw:
- csit-vpp-perf-ndrpdr-weekly-master-3n-hsw:
- start: 76
- end: "lastCompletedBuild"
- max-builds: 26
-
- table-ndrpdr-comparison-2n-skx:
- csit-vpp-perf-ndrpdr-weekly-master-2n-skx:
- start: 76
- end: "lastCompletedBuild"
- max-builds: 26
- reverse: True # Must be reversed
-
- table-ndrpdr-comparison-3n-skx:
- csit-vpp-perf-ndrpdr-weekly-master-3n-skx:
- start: 76
- end: "lastCompletedBuild"
- max-builds: 26
- reverse: True # Must be reversed
- skip:
- - 87
-
- table-ndrpdr-comparison-2n-clx:
- csit-vpp-perf-ndrpdr-weekly-master-2n-clx:
- start: 21
- end: "lastCompletedBuild"
- max-builds: 26
- reverse: True # Must be reversed
-
- table-ndrpdr-comparison-3n-hsw:
- csit-vpp-perf-ndrpdr-weekly-master-3n-hsw:
- start: 76
- end: "lastCompletedBuild"
- max-builds: 26
- reverse: True # Must be reversed
-
- plot-layouts:
-
- plot-cpta:
- title: ""
- titlefont:
- size: 16
- autosize: True
- showlegend: True
- width: 1100
- height: 800
- yaxis:
- showticklabels: True
- tickformat: ".5s"
- title: "Throughput [Mpps]"
- hoverformat: ".5s"
- gridcolor: "rgb(238, 238, 238)"
- linecolor: "rgb(238, 238, 238)"
- showline: True
- zeroline: False
- tickcolor: "rgb(238, 238, 238)"
- linewidth: 1
- showgrid: True
- xaxis:
- title: 'Date [MMDD]'
- type: "date"
- autorange: True
- fixedrange: False
- showgrid: True
- gridcolor: "rgb(238, 238, 238)"
- showline: True
- linecolor: "rgb(238, 238, 238)"
- zeroline: False
- linewidth: 1
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- tickmode: "auto"
- tickformat: "%m%d"
- rangeselector:
- buttons:
- - count: 14
- label: "2w"
- step: "day"
- stepmode: "backward"
- - count: 1
- label: "1m"
- step: "month"
- stepmode: "backward"
- - count: 2
- label: "2m"
- step: "month"
- stepmode: "backward"
- - count: 3
- label: "3m"
- step: "month"
- stepmode: "backward"
- - step: "all"
- margin:
- r: 20
- b: 5
- t: 5
- l: 70
- legend:
- orientation: "h"
- xanchor: "auto"
- traceorder: "normal" # "grouped" does not work: bug https://github.com/plotly/plotly.js/issues/1913
- bordercolor: "rgb(238, 238, 238)"
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-cpta-cps:
- title: ""
- titlefont:
- size: 16
- autosize: True
- showlegend: True
- width: 1100
- height: 800
- yaxis:
- showticklabels: True
- tickformat: ".5s"
- title: "Connection Rate [Mcps]"
- hoverformat: ".5s"
- gridcolor: "rgb(238, 238, 238)"
- linecolor: "rgb(238, 238, 238)"
- showline: True
- zeroline: False
- tickcolor: "rgb(238, 238, 238)"
- linewidth: 1
- showgrid: True
- xaxis:
- title: 'Date [MMDD]'
- type: "date"
- autorange: True
- fixedrange: False
- showgrid: True
- gridcolor: "rgb(238, 238, 238)"
- showline: True
- linecolor: "rgb(238, 238, 238)"
- zeroline: False
- linewidth: 1
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- tickmode: "auto"
- tickformat: "%m%d"
- rangeselector:
- buttons:
- - count: 14
- label: "2w"
- step: "day"
- stepmode: "backward"
- - count: 1
- label: "1m"
- step: "month"
- stepmode: "backward"
- - count: 2
- label: "2m"
- step: "month"
- stepmode: "backward"
- - count: 3
- label: "3m"
- step: "month"
- stepmode: "backward"
- - step: "all"
- margin:
- r: 20
- b: 5
- t: 5
- l: 70
- legend:
- orientation: "h"
- xanchor: "auto"
- traceorder: "normal" # "grouped" does not work: bug https://github.com/plotly/plotly.js/issues/1913
- bordercolor: "rgb(238, 238, 238)"
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
--
- type: "static"
- src-path: "{DIR[RST]}"
- dst-path: "{DIR[WORKING,SRC]}"
-
--
- type: "input"
- general:
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- download-path: "{job}/{build}/archives/{filename}"
- extract: "output.xml"
- # Number of days from now to the past. Only files generated in this
- # time period are used.
- time-period: 180
-
- zip-file-name: "robot-plugin.zip"
- zip-file-format: ".zip"
- zip-download-path: "{job}/{build}/robot/report/*zip*/{filename}"
- zip-extract: "robot-plugin/output.xml"
-
- builds:
-
- # 2n-skx ndrpdr
- csit-vpp-perf-ndrpdr-weekly-master-2n-skx:
- start: 76
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 3n-skx ndrpdr
- csit-vpp-perf-ndrpdr-weekly-master-3n-skx:
- start: 76
- end: "lastCompletedBuild"
- max-builds: 26
- skip:
- - 87
-
- # 2n-clx ndrpdr
- csit-vpp-perf-ndrpdr-weekly-master-2n-clx:
- start: 21
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 3n-hsw ndrpdr
- csit-vpp-perf-ndrpdr-weekly-master-3n-hsw:
- start: 76
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 3n-hsw
- csit-vpp-perf-mrr-daily-master:
- start: 1100
- end: "lastCompletedBuild"
- max-builds: 180 # Max nr of builds to download
- skip:
- - 1102
- - 1159
- csit-dpdk-perf-mrr-weekly-master:
- start: 113
- end: "lastCompletedBuild"
- max-builds: 26 # Max nr of builds to download
- skip:
- - 114
-
- # 3n-skx
- csit-vpp-perf-mrr-daily-master-3n-skx:
- start: 834
- end: "lastCompletedBuild"
- max-builds: 180 # Max nr of builds to download
- skip:
- - 849
- - 851
- - 862
- - 864
- - 865
- - 866
- - 867
- csit-dpdk-perf-mrr-weekly-master-3n-skx:
- start: 78
- end: "lastCompletedBuild"
- max-builds: 26 # Max nr of builds to download
- skip:
- - 79
-
- # 2n-skx
- csit-vpp-perf-mrr-daily-master-2n-skx:
- start: 858
- end: "lastCompletedBuild"
- max-builds: 180 # Max nr of builds to download
- skip:
- - 868
- - 870
- - 874
- - 889
- csit-vpp-perf-mrr-weekly-master-2n-skx:
- start: 66
- end: "lastCompletedBuild"
- max-builds: 26 # Max nr of builds to download
- skip:
- - 68
- - 72
- - 73
- - 75
- - 76
-
- csit-dpdk-perf-mrr-weekly-master-2n-skx:
- start: 78
- end: "lastCompletedBuild"
- max-builds: 26 # Max nr of builds to download
- skip:
- - 79
-
- csit-vpp-perf-mrr-daily-master-2n-clx:
- start: 236
- end: "lastCompletedBuild"
- max-builds: 180 # Max nr of builds to download
- skip:
- - 239
- - 248
- - 251
- - 252
- - 253
- - 308
- csit-vpp-perf-mrr-weekly-master-2n-clx:
- start: 37
- end: "lastCompletedBuild"
- max-builds: 26 # Max nr of builds to download
- skip:
- - 39
- - 45
- - 48
-
- csit-dpdk-perf-mrr-weekly-master-2n-clx:
- start: 23
- end: "lastCompletedBuild"
- max-builds: 26 # Max nr of builds to download
- skip:
- - 24
-
- # 2n-zn2
- csit-vpp-perf-mrr-daily-master-2n-zn2:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 180 # Max nr of builds to download
-
- csit-dpdk-perf-mrr-weekly-master-2n-zn2:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 26 # Max nr of builds to download
-
- # 3n-tsh
- csit-vpp-perf-mrr-daily-master-3n-tsh:
- start: 144
- end: "lastCompletedBuild"
- max-builds: 180 # Max nr of builds to download
- skip:
- - 149
- - 150
- - 152
- - 153
- - 154
- - 155
- - 156
- - 157
- - 192
-
- csit-dpdk-perf-mrr-weekly-master-3n-tsh:
- start: 4
- end: "lastCompletedBuild"
- max-builds: 26 # Max nr of builds to download
-
- # 3n-dnv
- csit-vpp-perf-mrr-daily-master-3n-dnv:
- start: 329
- end: "lastCompletedBuild"
- max-builds: 180 # Max nr of builds to download
- skip:
- - 343
- - 344
- - 345
- - 348
- - 350
- - 356
- - 357
- - 358
- - 360
- - 363
- - 364
- - 381
- - 387
- - 388
- - 390
- - 391
- - 392
- - 396
-
- # 2n-dnv
- csit-vpp-perf-mrr-daily-master-2n-dnv:
- start: 335
- end: "lastCompletedBuild"
- max-builds: 180 # Max nr of builds to download
- skip:
- - 344
- - 349
- - 350
- - 351
- - 354
- - 36
- - 364
- - 365
- - 366
- - 370
- - 378
- - 387
- - 394
- - 395
- - 396
- - 397
- - 402
-
--
- type: "output"
- output: "trending"
- format:
- html:
- - full
-
-################################################################################
-### T A B L E S ###
-################################################################################
-
-################################################################################
-
-# VPP NDRPDR weekly comparison 2n-skx-xxv710 2t1c ndr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 2n-skx-xxv710 2t1c ndr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-2n-skx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-2n-skx"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# VPP NDRPDR weekly comparison 2n-skx-xxv710 2t1c pdr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 2n-skx-xxv710 2t1c pdr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-2n-skx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-2n-skx"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# VPP NDRPDR weekly comparison 3n-skx-xxv710 2t1c ndr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 3n-skx-xxv710 2t1c ndr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-3n-skx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-3n-skx"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# VPP NDRPDR weekly comparison 3n-skx-xxv710 2t1c pdr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 3n-skx-xxv710 2t1c pdr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-3n-skx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-3n-skx"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# VPP NDRPDR weekly comparison 2n-clx-xxv710 2t1c ndr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 2n-clx-xxv710 2t1c ndr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-2n-clx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-2n-clx"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# VPP NDRPDR weekly comparison 2n-clx-xxv710 2t1c pdr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 2n-clx-xxv710 2t1c pdr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-2n-clx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-2n-clx"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# VPP NDRPDR weekly comparison 3n-hsw-xl710 2t1c ndr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 3n-hsw-xl710 1t1c ndr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-3n-hsw-1t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-3n-hsw"
- filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-XL710' and not 'NF_DENSITY'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# VPP NDRPDR weekly comparison 3n-hsw-xl710 2t1c pdr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 3n-hsw-xl710 1t1c pdr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-3n-hsw-1t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-3n-hsw"
- filter: "'1T1C' and 'NDRPDR' and 'NIC_Intel-XL710' and not 'NF_DENSITY'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# Compressed failed tests (last build)
--
- type: "table"
- title: "Last failed tests (last builds) VPP 3n-hsw"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-3n-hsw-mrr"
- data: "table-last-failed-tests-3n-hsw"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 3n-skx"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-3n-skx-mrr"
- data: "table-last-failed-tests-3n-skx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 2n-skx"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-2n-skx-mrr"
- data: "table-last-failed-tests-2n-skx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 2n-clx"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-2n-clx-mrr"
- data: "table-last-failed-tests-2n-clx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 2n-zn2"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-2n-zn2-mrr"
- data: "table-last-failed-tests-2n-zn2"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 3n-tsh"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-3n-tsh-mrr"
- data: "table-last-failed-tests-3n-tsh"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 3n-dnv"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-3n-dnv-mrr"
- data: "table-last-failed-tests-3n-dnv"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 2n-dnv"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-2n-dnv-mrr"
- data: "table-last-failed-tests-2n-dnv"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 3n-hsw-ndrpdr"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-3n-hsw-ndrpdr"
- data: "table-last-failed-tests-3n-hsw-ndrpdr"
- filter: "'NDRPDR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 3n-skx-ndrpdr"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-3n-skx-ndrpdr"
- data: "table-last-failed-tests-3n-skx-ndrpdr"
- filter: "'NDRPDR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 2n-skx-ndrpdr"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-2n-skx-ndrpdr"
- data: "table-last-failed-tests-2n-skx-ndrpdr"
- filter: "'NDRPDR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) VPP 2n-clx-ndrpdr"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-2n-clx-ndrpdr"
- data: "table-last-failed-tests-2n-clx-ndrpdr"
- filter: "'NDRPDR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) DPDK 3n-hsw"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-dpdk-3n-hsw-mrr"
- data: "table-last-failed-tests-dpdk-3n-hsw"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) DPDK 3n-tsh"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-dpdk-3n-tsh-mrr"
- data: "table-last-failed-tests-dpdk-3n-tsh"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) DPDK 3n-skx"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-dpdk-3n-skx-mrr"
- data: "table-last-failed-tests-dpdk-3n-skx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) DPDK 2n-skx"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-dpdk-2n-skx-mrr"
- data: "table-last-failed-tests-dpdk-2n-skx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
--
- type: "table"
- title: "Last failed tests (last builds) DPDK 2n-clx"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-dpdk-2n-clx-mrr"
- data: "table-last-failed-tests-dpdk-2n-clx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
-
-# 3n-hsw
--
- type: "table"
- title: "Performance trending dashboard 1t1c-3n-hsw"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-hsw"
- data: "plot-performance-trending-all-3n-hsw"
- filter: "'MRR' and '1T1C' and not 'NIC_Intel-XXV710'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 2t2c-3n-hsw"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-hsw"
- data: "plot-performance-trending-all-3n-hsw"
- filter: "'MRR' and '2T2C' and not 'NIC_Intel-XXV710'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 4t4c-3n-hsw"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-hsw"
- data: "plot-performance-trending-all-3n-hsw"
- filter: "'MRR' and '4T4C' and not 'NIC_Intel-XXV710'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "HTML performance trending dashboard 1t1c-3n-hsw"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-hsw.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-hsw.rst"
- testbed: "3n-hsw"
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t2c-3n-hsw"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-hsw.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-hsw.rst"
- testbed: "3n-hsw"
-
--
- type: "table"
- title: "HTML performance trending dashboard 4t4c-3n-hsw"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-hsw.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-hsw.rst"
- testbed: "3n-hsw"
-
-# 3n-hsw
--
- type: "table"
- title: "Performance trending dashboard 1t1c-3n-hsw ndr"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-hsw-ndr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- filter: "'NDRPDR' and '1T1C'"
- include-tests: "NDR"
- parameters:
- - "name"
- - "parent"
- - "throughput"
- window: 4
- long-trend-window: 12
-
--
- type: "table"
- title: "Performance trending dashboard 1t1c-3n-hsw pdr"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-hsw-pdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- filter: "'NDRPDR' and '1T1C'"
- include-tests: "PDR"
- parameters:
- - "name"
- - "parent"
- - "throughput"
- window: 4
- long-trend-window: 12
-
--
- type: "table"
- title: "HTML performance trending dashboard 1t1c-3n-hsw ndr"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-hsw-ndr.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-hsw-ndr.rst"
- testbed: "3n-hsw"
- test-type: "NDR"
- add-links: True
-
--
- type: "table"
- title: "HTML performance trending dashboard 1t1c-3n-hsw pdr"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-hsw-pdr.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-hsw-pdr.rst"
- testbed: "3n-hsw"
- test-type: "PDR"
- add-links: True
-
-# 3n-skx
--
- type: "table"
- title: "Performance trending dashboard 2t1c-3n-skx ndr"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-skx-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- filter: "'NDRPDR' and '2T1C'"
- include-tests: "NDR"
- parameters:
- - "name"
- - "parent"
- - "throughput"
- window: 4
- long-trend-window: 12
-
--
- type: "table"
- title: "Performance trending dashboard 2t1c-3n-skx pdr"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-skx-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- filter: "'NDRPDR' and '2T1C'"
- include-tests: "PDR"
- parameters:
- - "name"
- - "parent"
- - "throughput"
- window: 4
- long-trend-window: 12
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t1c-3n-skx ndr"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-skx-ndr.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-skx-ndr.rst"
- testbed: "3n-skx"
- test-type: "NDR"
- add-links: True
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t1c-3n-skx pdr"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-skx-pdr.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-skx-pdr.rst"
- testbed: "3n-skx"
- test-type: "PDR"
- add-links: True
-
-# 2n-skx
--
- type: "table"
- title: "Performance trending dashboard 2t1c-2n-skx ndr"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-skx-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- filter: "'NDRPDR' and '2T1C'"
- include-tests: "NDR"
- parameters:
- - "name"
- - "parent"
- - "throughput"
- window: 4
- long-trend-window: 12
-
--
- type: "table"
- title: "Performance trending dashboard 2t1c-2n-skx pdr"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-skx-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- filter: "'NDRPDR' and '2T1C'"
- include-tests: "PDR"
- parameters:
- - "name"
- - "parent"
- - "throughput"
- window: 4
- long-trend-window: 12
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t1c-2n-skx ndr"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-skx-ndr.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-skx-ndr.rst"
- testbed: "2n-skx"
- test-type: "NDR"
- add-links: True
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t1c-2n-skx pdr"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-skx-pdr.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-skx-pdr.rst"
- testbed: "2n-skx"
- test-type: "PDR"
- add-links: True
-
-# 2n-clx
--
- type: "table"
- title: "Performance trending dashboard 2t1c-2n-clx ndr"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-clx-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- filter: "'NDRPDR' and '2T1C'"
- include-tests: "NDR"
- parameters:
- - "name"
- - "parent"
- - "throughput"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 2t1c-2n-clx pdr"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-clx-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- filter: "'NDRPDR' and '2T1C'"
- include-tests: "PDR"
- parameters:
- - "name"
- - "parent"
- - "throughput"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t1c-2n-clx ndr"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-clx-ndr.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-clx-ndr.rst"
- testbed: "2n-clx"
- test-type: "NDR"
- add-links: True
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t1c-2n-clx pdr"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-clx-pdr.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-clx-pdr.rst"
- testbed: "2n-clx"
- test-type: "PDR"
- add-links: True
-
--
- type: "table"
- title: "Failed MRR tests 3n-hsw"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-hsw"
- data: "plot-performance-trending-all-3n-hsw"
- filter: "'MRR' and not 'NIC_Intel-XXV710'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 7 # days
-
--
- type: "table"
- title: "HTML Failed MRR tests 3n-hsw"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-3n-hsw.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-hsw.rst"
- testbed: "3n-hsw"
-
--
- type: "table"
- title: "Failed NDRPDR tests 3n-hsw"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-hsw-ndrpdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- filter: "'NDRPDR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 30 # days
-
--
- type: "table"
- title: "HTML Failed NDRPDR tests 3n-hsw"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-3n-hsw-ndrpdr.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-hsw-ndrpdr.rst"
- testbed: "3n-hsw"
- test-type: "NDRPDR"
-
-###############################################################################
-# 3n-skx
--
- type: "table"
- title: "Performance trending dashboard 2t1c-3n-skx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-skx"
- data: "plot-performance-trending-all-3n-skx"
- filter: "'MRR' and '2T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 4t2c-3n-skx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-3n-skx"
- data: "plot-performance-trending-all-3n-skx"
- filter: "'MRR' and '4T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 8t4c-3n-skx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-3n-skx"
- data: "plot-performance-trending-all-3n-skx"
- filter: "'MRR' and '8T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t1c-3n-skx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-skx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-skx.rst"
- testbed: "3n-skx"
-
--
- type: "table"
- title: "HTML performance trending dashboard 4t2c-3n-skx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-3n-skx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-3n-skx.rst"
- testbed: "3n-skx"
-
--
- type: "table"
- title: "HTML performance trending dashboard 8t4c-3n-skx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-3n-skx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-3n-skx.rst"
- testbed: "3n-skx"
-
--
- type: "table"
- title: "Failed MRR tests 3n-skx"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-skx"
- data: "plot-performance-trending-all-3n-skx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 7 # days
-
--
- type: "table"
- title: "HTML Failed MRR tests 3n-skx"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-3n-skx.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-skx.rst"
- testbed: "3n-skx"
-
--
- type: "table"
- title: "Failed NDRPDR tests 3n-skx"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-skx-ndrpdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- filter: "'NDRPDR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 30 # days
-
--
- type: "table"
- title: "HTML Failed NDRPDR tests 3n-skx"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-3n-skx-ndrpdr.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-skx-ndrpdr.rst"
- testbed: "3n-skx"
- test-type: "NDRPDR"
-
-################################################################################
-# 2n-skx
--
- type: "table"
- title: "Performance trending dashboard 2t1c-2n-skx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-skx"
- data: "plot-performance-trending-all-2n-skx"
- filter: "'MRR' and '2T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 4t2c-2n-skx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-skx"
- data: "plot-performance-trending-all-2n-skx"
- filter: "'MRR' and '4T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 8t4c-2n-skx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-skx"
- data: "plot-performance-trending-all-2n-skx"
- filter: "'MRR' and '8T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t1c-2n-skx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-skx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-skx.rst"
- testbed: "2n-skx"
-
--
- type: "table"
- title: "HTML performance trending dashboard 4t2c-2n-skx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-skx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-skx.rst"
- testbed: "2n-skx"
-
--
- type: "table"
- title: "HTML performance trending dashboard 8t4c-2n-skx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-skx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-skx.rst"
- testbed: "2n-skx"
-
--
- type: "table"
- title: "Failed MRR tests 2n-skx"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-skx"
- data: "plot-performance-trending-all-2n-skx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 7 # days
-
--
- type: "table"
- title: "HTML Failed MRR tests 2n-skx"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-2n-skx.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-skx.rst"
- testbed: "2n-skx"
-
--
- type: "table"
- title: "Failed NDRPDR tests 2n-skx"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-skx-ndrpdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- filter: "'NDRPDR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 30 # days
-
--
- type: "table"
- title: "HTML Failed NDRPDR tests 2n-skx"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-2n-skx-ndrpdr.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-skx-ndrpdr.rst"
- testbed: "2n-skx"
- test-type: "NDRPDR"
-
-################################################################################
-# 2n-clx
--
- type: "table"
- title: "Performance trending dashboard 2t1c-2n-clx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-clx"
- data: "plot-performance-trending-vpp-2n-clx"
- filter: "'MRR' and '2T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 4t2c-2n-clx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-clx"
- data: "plot-performance-trending-vpp-2n-clx"
- filter: "'MRR' and '4T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 8t4c-2n-clx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-clx"
- data: "plot-performance-trending-vpp-2n-clx"
- filter: "'MRR' and '8T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t1c-2n-clx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-clx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-clx.rst"
- testbed: "2n-clx"
-
--
- type: "table"
- title: "HTML performance trending dashboard 4t2c-2n-clx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-clx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-clx.rst"
- testbed: "2n-clx"
-
--
- type: "table"
- title: "HTML performance trending dashboard 8t4c-2n-clx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-clx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-clx.rst"
- testbed: "2n-clx"
-
--
- type: "table"
- title: "Failed MRR tests 2n-clx"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-clx"
- data: "plot-performance-trending-vpp-2n-clx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 7 # days
-
--
- type: "table"
- title: "HTML Failed MRR tests 2n-clx"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-2n-clx.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-clx.rst"
- testbed: "2n-clx"
-
--
- type: "table"
- title: "Failed NDRPDR tests 2n-clx"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-clx-ndrpdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- filter: "'NDRPDR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 30 # days
-
--
- type: "table"
- title: "HTML Failed NDRPDR tests 2n-clx"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-2n-clx-ndrpdr.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-clx-ndrpdr.rst"
- testbed: "2n-clx"
- test-type: "NDRPDR"
-
-################################################################################
-# 2n-zn2
--
- type: "table"
- title: "Performance trending dashboard 2t1c-2n-zn2"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-zn2"
- data: "plot-performance-trending-vpp-2n-zn2"
- filter: "'MRR' and '2T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 4t2c-2n-zn2"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-zn2"
- data: "plot-performance-trending-vpp-2n-zn2"
- filter: "'MRR' and '4T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 8t4c-2n-zn2"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-zn2"
- data: "plot-performance-trending-vpp-2n-zn2"
- filter: "'MRR' and '8T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t1c-2n-zn2"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-zn2.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-zn2.rst"
- testbed: "2n-zn2"
-
--
- type: "table"
- title: "HTML performance trending dashboard 4t2c-2n-zn2"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-zn2.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-zn2.rst"
- testbed: "2n-zn2"
-
--
- type: "table"
- title: "HTML performance trending dashboard 8t4c-2n-zn2"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-zn2.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-zn2.rst"
- testbed: "2n-zn2"
-
--
- type: "table"
- title: "Failed MRR tests 2n-zn2"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-zn2"
- data: "plot-performance-trending-vpp-2n-zn2"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 7 # days
-
--
- type: "table"
- title: "HTML Failed MRR tests 2n-zn2"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-2n-zn2.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-zn2.rst"
- testbed: "2n-zn2"
-
-################################################################################
-# 3n-tsh
--
- type: "table"
- title: "Performance trending dashboard 1t1c-3n-tsh"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-tsh"
- data: "plot-performance-trending-all-3n-tsh"
- filter: "'MRR' and '1T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 2t2c-3n-tsh"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-tsh"
- data: "plot-performance-trending-all-3n-tsh"
- filter: "'MRR' and '2T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 4t4c-3n-tsh"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-tsh"
- data: "plot-performance-trending-all-3n-tsh"
- filter: "'MRR' and '4T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "HTML performance trending dashboard 1t1c-3n-tsh"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-tsh.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-tsh.rst"
- testbed: "3n-tsh"
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t2c-3n-tsh"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-tsh.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-tsh.rst"
- testbed: "3n-tsh"
-
--
- type: "table"
- title: "HTML performance trending dashboard 4t4c-3n-tsh"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-tsh.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-tsh.rst"
- testbed: "3n-tsh"
-
--
- type: "table"
- title: "Failed MRR tests 3n-tsh"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-tsh"
- data: "plot-performance-trending-all-3n-tsh"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 7 # days
-
--
- type: "table"
- title: "HTML Failed MRR tests 3n-tsh"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-3n-tsh.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-tsh.rst"
- testbed: "3n-tsh"
-
-################################################################################
-# 3n-dnv
--
- type: "table"
- title: "Performance trending dashboard 1t1c-3n-dnv"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-dnv"
- data: "plot-performance-trending-vpp-3n-dnv"
- filter: "'MRR' and '1T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 2t2c-3n-dnv"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-dnv"
- data: "plot-performance-trending-vpp-3n-dnv"
- filter: "'MRR' and '2T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 4t4c-3n-dnv"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-dnv"
- data: "plot-performance-trending-vpp-3n-dnv"
- filter: "'MRR' and '4T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "HTML performance trending dashboard 1t1c-3n-dnv"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-dnv.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-dnv.rst"
- testbed: "3n-dnv"
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t2c-3n-dnv"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-dnv.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-dnv.rst"
- testbed: "3n-dnv"
-
--
- type: "table"
- title: "HTML performance trending dashboard 4t4c-3n-dnv"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-dnv.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-dnv.rst"
- testbed: "3n-dnv"
-
--
- type: "table"
- title: "Failed MRR tests 3n-dnv"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-dnv"
- data: "plot-performance-trending-vpp-3n-dnv"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 7 # days
-
--
- type: "table"
- title: "HTML Failed MRR tests 3n-dnv"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-3n-dnv.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-dnv.rst"
- testbed: "3n-dnv"
-
-################################################################################
-# 2n-dnv
--
- type: "table"
- title: "Performance trending dashboard 1t1c-2n-dnv"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-2n-dnv"
- data: "plot-performance-trending-vpp-2n-dnv"
- filter: "'MRR' and '1T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 2t2c-2n-dnv"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-2n-dnv"
- data: "plot-performance-trending-vpp-2n-dnv"
- filter: "'MRR' and '2T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "Performance trending dashboard 4t4c-2n-dnv"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-2n-dnv"
- data: "plot-performance-trending-vpp-2n-dnv"
- filter: "'MRR' and '4T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
--
- type: "table"
- title: "HTML performance trending dashboard 1t1c-2n-dnv"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-2n-dnv.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-2n-dnv.rst"
- testbed: "2n-dnv"
-
--
- type: "table"
- title: "HTML performance trending dashboard 2t2c-2n-dnv"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-2n-dnv.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-2n-dnv.rst"
- testbed: "2n-dnv"
-
--
- type: "table"
- title: "HTML performance trending dashboard 4t4c-2n-dnv"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-2n-dnv.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-2n-dnv.rst"
- testbed: "2n-dnv"
-
--
- type: "table"
- title: "Failed MRR tests 2n-dnv"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-dnv"
- data: "plot-performance-trending-vpp-2n-dnv"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- window: 7 # days
-
--
- type: "table"
- title: "HTML Failed MRR tests 2n-dnv"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-2n-dnv.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-dnv.rst"
- testbed: "2n-dnv"
-
-################################################################################
-### C P T A ###
-################################################################################
-
-# Plots VPP Continuous Performance Trending and Analysis
-
--
- type: "cpta"
- title: "Continuous Performance Trending and Analysis"
- output-file-type: ".html"
- output-file: "{DIR[STATIC,VPP]}"
-
- plots:
-
-################################################################################
-# NFV
-
-# 2n-skx
-
- - title: "VPP 2T1C NF Service Density VNFc IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-2t1c-vhost-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '2T1C' and 'L2BDMACLRN' and not 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 4T2C NF Service Density VNFc IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-4t2c-vhost-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '4T2C' and 'L2BDMACLRN' and not 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 8T4C NF Service Density VNFc IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-8t4c-vhost-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '8T4C' and 'L2BDMACLRN' and not 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 2T1C NF Service Density VNFc VXLAN IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-2t1c-vhost-chains-vxlan-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '2T1C' and 'L2BDMACLRN' and 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", ]
- - ["2R1C", ]
- - ["4R1C", ]
- - ["6R1C", ]
- - ["8R1C", ]
- - ["10R1C", ]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 4T2C NF Service Density VNFc VXLAN IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-4t2c-vhost-chains-vxlan-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '4T2C' and 'L2BDMACLRN' and 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", ]
- - ["2R1C", ]
- - ["4R1C", ]
- - ["6R1C", ]
- - ["8R1C", ]
- - ["10R1C", ]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 8T4C NF Service Density VNFc VXLAN IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-8t4c-vhost-chains-vxlan-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '8T4C' and 'L2BDMACLRN' and 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", ]
- - ["2R1C", ]
- - ["4R1C", ]
- - ["6R1C", ]
- - ["8R1C", ]
- - ["10R1C", ]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 2T1C NF Service Density CNFc IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-2t1c-memif-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'CHAIN' and 'MRR' and 'IMIX' and '2T1C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 4T2C NF Service Density CNFc IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-4t2c-memif-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'CHAIN' and 'MRR' and 'IMIX' and '4T2C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 8T4C NF Service Density CNFc IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-8t4c-memif-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'CHAIN' and 'MRR' and 'IMIX' and '8T4C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 2T1C NF Service Density CNFp IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-2t1c-memif-pipelines-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'PIPELINE' and 'MRR' and 'IMIX' and '2T1C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Pipe"
- - "2 Pipes"
- - "4 Pipes"
- - "6 Pipes"
- - "8 Pipes"
- - "10 Pipes"
- layout: "plot-cpta"
-
- - title: "VPP 4T2C NF Service Density CNFp IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-4t2c-memif-pipelines-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'PIPELINE' and 'MRR' and 'IMIX' and '4T2C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Pipe"
- - "2 Pipes"
- - "4 Pipes"
- - "6 Pipes"
- - "8 Pipes"
- - "10 Pipes"
- layout: "plot-cpta"
-
- - title: "VPP 8T4C NF Service Density CNFp IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-8t4c-memif-pipelines-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'PIPELINE' and 'MRR' and 'IMIX' and '8T4C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Pipe"
- - "2 Pipes"
- - "4 Pipes"
- - "6 Pipes"
- - "8 Pipes"
- - "10 Pipes"
- layout: "plot-cpta"
-
-# 2n-clx
-
- - title: "VPP 2T1C NF Service Density VNFc IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-2t1c-vhost-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '2T1C' and 'L2BDMACLRN' and not 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 4T2C NF Service Density VNFc IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-4t2c-vhost-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '4T2C' and 'L2BDMACLRN' and not 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 8T4C NF Service Density VNFc IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-8t4c-vhost-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '8T4C' and 'L2BDMACLRN' and not 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 2T1C NF Service Density VNFc VXLAN IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-2t1c-vhost-chains-vxlan-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '2T1C' and 'L2BDMACLRN' and 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", ]
- - ["2R1C", ]
- - ["4R1C", ]
- - ["6R1C", ]
- - ["8R1C", ]
- - ["10R1C", ]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 4T2C NF Service Density VNFc VXLAN IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-4t2c-vhost-chains-vxlan-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '4T2C' and 'L2BDMACLRN' and 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", ]
- - ["2R1C", ]
- - ["4R1C", ]
- - ["6R1C", ]
- - ["8R1C", ]
- - ["10R1C", ]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 8T4C NF Service Density VNFc VXLAN IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-8t4c-vhost-chains-vxlan-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'VM' and 'CHAIN' and 'MRR' and 'IMIX' and '8T4C' and 'L2BDMACLRN' and 'VXLAN' and 'DRV_AVF'"
- groups:
- - ["1R1C", ]
- - ["2R1C", ]
- - ["4R1C", ]
- - ["6R1C", ]
- - ["8R1C", ]
- - ["10R1C", ]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 2T1C NF Service Density CNFc IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-2t1c-memif-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'CHAIN' and 'MRR' and 'IMIX' and '2T1C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 4T2C NF Service Density CNFc IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-4t2c-memif-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'CHAIN' and 'MRR' and 'IMIX' and '4T2C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 8T4C NF Service Density CNFc IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-8t4c-memif-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'CHAIN' and 'MRR' and 'IMIX' and '8T4C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- - "8 Chains"
- - "10 Chains"
- layout: "plot-cpta"
-
- - title: "VPP 2T1C NF Service Density CNFp IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-2t1c-memif-pipelines-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'PIPELINE' and 'MRR' and 'IMIX' and '2T1C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Pipe"
- - "2 Pipes"
- - "4 Pipes"
- - "6 Pipes"
- - "8 Pipes"
- - "10 Pipes"
- layout: "plot-cpta"
-
- - title: "VPP 4T2C NF Service Density CNFp IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-4t2c-memif-pipelines-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'PIPELINE' and 'MRR' and 'IMIX' and '4T2C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Pipe"
- - "2 Pipes"
- - "4 Pipes"
- - "6 Pipes"
- - "8 Pipes"
- - "10 Pipes"
- layout: "plot-cpta"
-
- - title: "VPP 8T4C NF Service Density CNFp IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-8t4c-memif-pipelines-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- filter: "'NIC_Intel-XXV710' and 'NF_DENSITY' and 'DOCKER' and 'PIPELINE' and 'MRR' and 'IMIX' and '8T4C' and 'L2BDMACLRN' and 'DRV_AVF'"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- - ["8R1C", "8R2C"]
- - ["10R1C", "10R2C"]
- group-names:
- - "1 Pipe"
- - "2 Pipes"
- - "4 Pipes"
- - "6 Pipes"
- - "8 Pipes"
- - "10 Pipes"
- layout: "plot-cpta"
-
-################################################################################
-
- - title: "2n-clx-xxv710-64b-2t1c-memif-base-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-memif-base-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-memif-base-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-memif-base-dpdk"
- output-file-name: "2n-clx-xxv710-64b-2t1c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-memif-base-dpdk"
- output-file-name: "2n-clx-xxv710-64b-4t2c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-4t2c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-4t2c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-memif-base-dpdk"
- output-file-name: "2n-clx-xxv710-64b-8t4c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-8t4c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-8t4c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-4t2c-rdma-l2-eth-2memif-1dcr"
- output-file-name: "2n-clx-cx556a-64b-4t2c-rdma-l2-eth-2memif-1dcr"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-4t2c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-4t2c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-4t2c-rdma-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-4t2c-rdma-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-8t4c-rdma-l2-eth-2memif-1dcr"
- output-file-name: "2n-clx-cx556a-64b-8t4c-rdma-l2-eth-2memif-1dcr"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-8t4c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-8t4c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-8t4c-rdma-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-8t4c-rdma-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-memif-base-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-memif-base-avf"
- output-file-name: "2n-skx-xxv710-64b-4t2c-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-memif-base-avf"
- output-file-name: "2n-skx-xxv710-64b-8t4c-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-memif-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-2t1c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-memif-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-4t2c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-4t2c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-4t2c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-memif-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-8t4c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-8t4c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-8t4c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-memif-base-avf"
- output-file-name: "3n-skx-xxv710-64b-2t1c-memif-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-memif-base-avf"
- output-file-name: "3n-skx-xxv710-64b-4t2c-memif-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-4t2c-avf-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-memif-base-avf"
- output-file-name: "3n-skx-xxv710-64b-8t4c-memif-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-8t4c-avf-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-memif-base-dpdk"
- output-file-name: "3n-skx-xxv710-64b-2t1c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-2t1c-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-memif-base-dpdk"
- output-file-name: "3n-skx-xxv710-64b-4t2c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-4t2c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-4t2c-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-4t2c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-memif-base-dpdk"
- output-file-name: "3n-skx-xxv710-64b-8t4c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-8t4c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-8t4c-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-8t4c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-xxv710-64b-1t1c-memif-base-dpdk"
- output-file-name: "3n-tsh-xxv710-64b-1t1c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-1t1c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-1t1c-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-1t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-1t1c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-xxv710-64b-2t2c-memif-base-dpdk"
- output-file-name: "3n-tsh-xxv710-64b-2t2c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-2t2c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-2t2c-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t2c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-2t2c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-2t2c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-xxv710-64b-4t4c-memif-base-dpdk"
- output-file-name: "3n-tsh-xxv710-64b-4t4c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-4t4c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-4t4c-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t4c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-4t4c-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-4t4c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-2t1c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-64b-2t1c-ip4-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-2t1c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-2t1c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-2t1c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-4t2c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-64b-4t2c-ip4-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-4t2c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-4t2c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-4t2c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-8t4c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-64b-8t4c-ip4-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-8t4c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-8t4c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-8t4c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4routing-base-avf-dpdk"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-2t1c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-2t1c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-2t1c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-ip4routing-base-avf-dpdk"
- output-file-name: "2n-clx-xxv710-64b-4t2c-ip4-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-4t2c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-4t2c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-4t2c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-ip4routing-base-avf-dpdk"
- output-file-name: "2n-clx-xxv710-64b-8t4c-ip4-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-8t4c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-8t4c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-8t4c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-2t1c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-2t1c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-2t1c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-ip4routing-scale-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-ip4-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-4t2c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-4t2c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-4t2c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-ip4routing-scale-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-ip4-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-8t4c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-8t4c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-8t4c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-2t1c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-2t1c-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-2t1c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-2t1c-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-2t1c-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-ip4routing-scale-dpdk"
- output-file-name: "2n-clx-xxv710-64b-4t2c-ip4-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-4t2c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-4t2c-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-4t2c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-4t2c-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-4t2c-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-ip4routing-scale-dpdk"
- output-file-name: "2n-clx-xxv710-64b-8t4c-ip4-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-8t4c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-8t4c-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-8t4c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-8t4c-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-8t4c-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-features-ip4routing-base-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-features-ip4routing-base-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-4t2c-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-4t2c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-features-ip4routing-base-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-8t4c-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-8t4c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-4t2c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-4t2c-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-4t2c-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-4t2c-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-4t2c-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-8t4c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-8t4c-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-8t4c-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-8t4c-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-8t4c-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-nat44ed-ip4routing-stl-unidir-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-nat44ed-ip4routing-stl-unidir-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-nat44ed-ip4routing-stl-unidir-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-nat44ed-ip4routing-stl-unidir-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-cps-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-cps-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-pps-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-pps-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-cps-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-cps-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-pps-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-pps-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-rdma-ip4base"
- output-file-name: "2n-clx-cx556a-64b-2t1c-rdma-ip4base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Mrr.64B-2t1c-rdma-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Mrr.64B-2t1c-rdma-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-4t2c-rdma-ip4base"
- output-file-name: "2n-clx-cx556a-64b-4t2c-rdma-ip4base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Mrr.64B-4t2c-rdma-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Mrr.64B-4t2c-rdma-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-8t4c-rdma-ip4base"
- output-file-name: "2n-clx-cx556a-64b-8t4c-rdma-ip4base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Mrr.64B-8t4c-rdma-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Mrr.64B-8t4c-rdma-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale"
- output-file-name: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Mrr.64B-2t1c-rdma-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Mrr.64B-2t1c-rdma-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Mrr.64B-2t1c-rdma-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-4t2c-rdma-ethip4-ip4scale"
- output-file-name: "2n-clx-cx556a-64b-4t2c-rdma-ethip4-ip4scale"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Mrr.64B-4t2c-rdma-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-4t2c-rdma-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Mrr.64B-4t2c-rdma-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-4t2c-rdma-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Mrr.64B-4t2c-rdma-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-rdma-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-8t4c-rdma-ethip4-ip4scale"
- output-file-name: "2n-clx-cx556a-64b-8t4c-rdma-ethip4-ip4scale"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Mrr.64B-8t4c-rdma-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-8t4c-rdma-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Mrr.64B-8t4c-rdma-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-8t4c-rdma-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Mrr.64B-8t4c-rdma-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-rdma-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-features"
- output-file-name: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-features"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Mrr.64B-2t1c-rdma-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-2t1c-rdma-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-4t2c-rdma-ethip4-features"
- output-file-name: "2n-clx-cx556a-64b-4t2c-rdma-ethip4-features"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-4t2c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-4t2c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-4t2c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-4t2c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Mrr.64B-4t2c-rdma-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-4t2c-rdma-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-8t4c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-clx-cx556a-64b-8t4c-rdma-ethip4-features"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-8t4c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-8t4c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-8t4c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-8t4c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Mrr.64B-8t4c-rdma-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-8t4c-rdma-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-64b-1t1c-ip4-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-mrr.64B-1t1c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-mrr.64B-1t1c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-mrr.64B-1t1c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-mrr.64B-1t1c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-mrr.64B-1t1c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-64b-2t2c-ip4routing-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-64b-2t2c-ip4-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-mrr.64B-2t2c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-mrr.64B-2t2c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-mrr.64B-2t2c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-mrr.64B-2t2c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-mrr.64B-2t2c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-64b-4t4c-ip4routing-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-64b-4t4c-ip4-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-mrr.64B-4t4c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-mrr.64B-4t4c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-mrr.64B-4t4c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-mrr.64B-4t4c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-mrr.64B-4t4c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-2t1c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-skx-x710-64b-2t1c-ip4-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-2t1c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-2t1c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-2t1c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-4t2c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-skx-x710-64b-4t2c-ip4-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-4t2c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-4t2c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-4t2c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-8t4c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-skx-x710-64b-8t4c-ip4-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-8t4c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-8t4c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-8t4c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-2t1c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-2t1c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-2t1c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-2t1c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-2t1c-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-ip4routing-base-scale-avf"
- output-file-name: "2n-skx-xxv710-64b-4t2c-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-4t2c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-4t2c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-4t2c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-4t2c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-4t2c-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-ip4routing-base-scale-avf"
- output-file-name: "2n-skx-xxv710-64b-8t4c-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-8t4c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-8t4c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-8t4c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-8t4c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-8t4c-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf-rnd"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-base-scale-avf-rnd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-ip4routing-base-scale-avf-rnd"
- output-file-name: "2n-skx-xxv710-64b-4t2c-ip4-base-scale-avf-rnd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-ip4routing-base-scale-avf-rnd"
- output-file-name: "2n-skx-xxv710-64b-8t4c-ip4-base-scale-avf-rnd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-mrr.64B-2t1c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-2t1c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-2t1c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-2t1c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-2t1c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-ip4routing-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-64b-4t2c-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-mrr.64B-4t2c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-4t2c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-4t2c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-4t2c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-4t2c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-ip4routing-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-64b-8t4c-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-mrr.64B-8t4c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-8t4c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-8t4c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-8t4c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-8t4c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-rnd"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk-rnd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-2t1c-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-2t1c-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-ip4routing-base-scale-dpdk-rnd"
- output-file-name: "2n-skx-xxv710-64b-4t2c-ip4-base-scale-dpdk-rnd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-4t2c-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-4t2c-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-ip4routing-base-scale-dpdk-rnd"
- output-file-name: "2n-skx-xxv710-64b-8t4c-ip4-base-scale-dpdk-rnd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-8t4c-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-8t4c-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-features-ip4routing-base-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-features-ip4routing-base-avf"
- output-file-name: "2n-skx-xxv710-64b-4t2c-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-4t2c-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-4t2c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-features-ip4routing-base-avf"
- output-file-name: "2n-skx-xxv710-64b-8t4c-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-8t4c-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-8t4c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-skx-xxv710-64b-4t2c-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-4t2c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-4t2c-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-4t2c-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-4t2c-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-4t2c-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-skx-xxv710-64b-8t4c-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-8t4c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-8t4c-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-8t4c-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-8t4c-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-8t4c-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-nat44ed-ip4routing-stl-unidir-avf"
- output-file-name: "2n-skx-xxv710-64b-4t2c-nat44ed-ip4routing-stl-unidir-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-nat44ed-ip4routing-stl-unidir-avf"
- output-file-name: "2n-skx-xxv710-64b-8t4c-nat44ed-ip4routing-stl-unidir-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-cps-avf"
- output-file-name: "2n-skx-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-cps-avf"
- output-file-name: "2n-skx-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-pps-avf"
- output-file-name: "2n-skx-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-pps-avf"
- output-file-name: "2n-skx-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-cps-avf"
- output-file-name: "2n-skx-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-cps-avf"
- output-file-name: "2n-skx-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-features-ip4routing-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-features-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-2t1c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-mrr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-features-ip4routing-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-4t2c-ip4-features-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-4t2c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-mrr.64B-4t2c-ethip4udp-nat44det-h1-p1-s1-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-features-ip4routing-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-8t4c-ip4-features-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-8t4c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-mrr.64B-8t4c-ethip4udp-nat44det-h1-p1-s1-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-1t1c-ip4-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-mrr.64B-1t1c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-mrr.64B-1t1c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-mrr.64B-1t1c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-mrr.64B-1t1c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-mrr.64B-1t1c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-2t2c-ip4routing-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-2t2c-ip4-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-mrr.64B-2t2c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-mrr.64B-2t2c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-mrr.64B-2t2c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-mrr.64B-2t2c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-mrr.64B-2t2c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-4t4c-ip4routing-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-4t4c-ip4-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-mrr.64B-4t4c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-mrr.64B-4t4c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-mrr.64B-4t4c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-mrr.64B-4t4c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-mrr.64B-4t4c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-ip4routing-base-scale-dpdk"
- output-file-name: "3n-hsw-xl710-64b-1t1c-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-mrr.64B-1t1c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-mrr.64B-1t1c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-mrr.64B-1t1c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-2t2c-ip4routing-base-scale-dpdk"
- output-file-name: "3n-hsw-xl710-64b-2t2c-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-mrr.64B-2t2c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-mrr.64B-2t2c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-mrr.64B-2t2c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-4t4c-ip4routing-base-scale-dpdk"
- output-file-name: "3n-hsw-xl710-64b-4t4c-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-mrr.64B-4t4c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-mrr.64B-4t4c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-mrr.64B-4t4c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-2t1c-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-x710-64b-2t1c-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Mrr.64B-2t1c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Mrr.64B-2t1c-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-4t2c-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-x710-64b-4t2c-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Mrr.64B-4t2c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Mrr.64B-4t2c-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-8t4c-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-x710-64b-8t4c-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Mrr.64B-8t4c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Mrr.64B-8t4c-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-2t1c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Mrr.64B-2t1c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-2t1c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-2t1c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-2t1c-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-64b-4t2c-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-4t2c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Mrr.64B-4t2c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-4t2c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-4t2c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-4t2c-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-64b-8t4c-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-8t4c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Mrr.64B-8t4c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-8t4c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-8t4c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-8t4c-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-2t1c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-2t1c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-64b-4t2c-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-4t2c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-4t2c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-64b-8t4c-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-8t4c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-8t4c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-1t1c-ip4routing-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-1t1c-ip4-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Dot1Q-Ip4Base-mrr.64B-1t1c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-mrr.64B-1t1c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale20K-mrr.64B-1t1c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale200K-mrr.64B-1t1c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale2M-mrr.64B-1t1c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-2t2c-ip4routing-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-2t2c-ip4-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Dot1Q-Ip4Base-mrr.64B-2t2c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-mrr.64B-2t2c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale20K-mrr.64B-2t2c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale200K-mrr.64B-2t2c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale2M-mrr.64B-2t2c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-4t4c-ip4routing-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-4t4c-ip4-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Dot1Q-Ip4Base-mrr.64B-4t4c-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-mrr.64B-4t4c-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale20K-mrr.64B-4t4c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale200K-mrr.64B-4t4c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale2M-mrr.64B-4t4c-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-1t1c-ip4routing-features-ixgbe"
- output-file-name: "3n-tsh-x520-64b-1t1c-ip4-features-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-2t2c-ip4routing-features-ixgbe"
- output-file-name: "3n-tsh-x520-64b-2t2c-ip4-features-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-2t2c-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-2t2c-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-2t2c-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-2t2c-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-4t4c-ip4routing-features-ixgbe"
- output-file-name: "3n-tsh-x520-64b-4t4c-ip4-features-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-4t4c-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-4t4c-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-4t4c-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-4t4c-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-1t1c-ip4-tunnels-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-mrr.64B-1t1c-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-mrr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-mrr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-2t2c-ip4tunnel-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-2t2c-ip4-tunnels-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-mrr.64B-2t2c-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-mrr.64B-2t2c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-mrr.64B-2t2c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-4t4c-ip4tunnel-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-4t4c-ip4-tunnels-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-mrr.64B-4t4c-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-mrr.64B-4t4c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-mrr.64B-4t4c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk"
- output-file-name: "3n-hsw-xl710-64b-1t1c-ip4-tunnels-base-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-mrr.64B-1t1c-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-2t2c-ip4tunnel-base-dpdk"
- output-file-name: "3n-hsw-xl710-64b-2t2c-ip4-tunnels-base-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-mrr.64B-2t2c-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-4t4c-ip4tunnel-base-dpdk"
- output-file-name: "3n-hsw-xl710-64b-4t4c-ip4-tunnels-base-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-mrr.64B-4t4c-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4tunnel-base-scale-avf-dpdk"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Mrr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Mrr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Mrr.64B-2t1c-avf-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Mrr.64B-2t1c-ethip4vxlan-l2xcbase-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-ip4tunnel-base-scale-avf-dpdk"
- output-file-name: "3n-skx-xxv710-64b-4t2c-ip4-tunnels-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Mrr.64B-4t2c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Mrr.64B-4t2c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Mrr.64B-4t2c-avf-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-4t2c-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Mrr.64B-4t2c-ethip4vxlan-l2xcbase-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-ip4tunnel-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-64b-8t4c-ip4-tunnels-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Mrr.64B-8t4c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Mrr.64B-8t4c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Mrr.64B-8t4c-avf-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-8t4c-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Mrr.64B-8t4c-ethip4vxlan-l2xcbase-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-1t1c-ip4tunnel-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-1t1c-ip4-tunnels-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-mrr.64B-1t1c-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-mrr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-mrr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-2t2c-ip4tunnel-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-2t2c-ip4-tunnels-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-mrr.64B-2t2c-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-2t2c-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-mrr.64B-2t2c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-mrr.64B-2t2c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-4t4c-ip4tunnel-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-4t4c-ip4-tunnels-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-mrr.64B-4t4c-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-4t4c-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-mrr.64B-4t4c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-mrr.64B-1t1c-4t4c--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-78b-2t1c-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-78b-2t1c-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-2t1c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-2t1c-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-2t1c-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-78b-4t2c-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-78b-4t2c-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-4t2c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-4t2c-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-4t2c-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-78b-8t4c-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-78b-8t4c-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-8t4c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-8t4c-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-8t4c-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-avf"
- output-file-name: "2n-clx-xxv710-78b-2t1c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-mrr.78B-2t1c-avf-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-2t1c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-2t1c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-2t1c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-2t1c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-4t2c-ip6routing-base-scale-avf"
- output-file-name: "2n-clx-xxv710-78b-4t2c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-mrr.78B-4t2c-avf-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-4t2c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-4t2c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-4t2c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-4t2c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-8t4c-ip6routing-base-scale-avf"
- output-file-name: "2n-clx-xxv710-78b-8t4c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-mrr.78B-8t4c-avf-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-8t4c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-8t4c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-8t4c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-8t4c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk"
- output-file-name: "2n-clx-xxv710-78b-2t1c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-2t1c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-2t1c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-2t1c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-2t1c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-4t2c-ip6routing-base-scale-dpdk"
- output-file-name: "2n-clx-xxv710-78b-4t2c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-4t2c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-4t2c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-4t2c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-4t2c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-8t4c-ip6routing-base-scale-dpdk"
- output-file-name: "2n-clx-xxv710-78b-8t4c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-8t4c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-8t4c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-8t4c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-8t4c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale"
- output-file-name: "2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Mrr.78B-2t1c-rdma-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Mrr.78B-2t1c-rdma-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Mrr.78B-2t1c-rdma-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Mrr.78B-2t1c-rdma-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Mrr.78B-2t1c-rdma-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-78b-4t2c-rdma-ip6routing-base-scale"
- output-file-name: "2n-clx-cx556a-78b-4t2c-rdma-ip6routing-base-scale"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Mrr.78B-4t2c-rdma-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Mrr.78B-4t2c-rdma-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Mrr.78B-4t2c-rdma-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Mrr.78B-4t2c-rdma-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Mrr.78B-4t2c-rdma-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-78b-8t4c-rdma-ip6routing-base-scale"
- output-file-name: "2n-clx-cx556a-78b-8t4c-rdma-ip6routing-base-scale"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Mrr.78B-8t4c-rdma-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Mrr.78B-8t4c-rdma-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Mrr.78B-8t4c-rdma-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Mrr.78B-8t4c-rdma-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Mrr.78B-8t4c-rdma-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-78b-1t1c-ip6-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-78b-1t1c-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-mrr.78B-1t1c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-mrr.78B-1t1c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-mrr.78B-1t1c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-mrr.78B-1t1c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-mrr.78B-1t1c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-78b-2t2c-ip6-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-78b-2t2c-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-mrr.78B-2t2c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-mrr.78B-2t2c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-mrr.78B-2t2c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-mrr.78B-2t2c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-mrr.78B-2t2c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-78b-4t4c-ip6-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-78b-4t4c-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Dot1Q-Ip6Base-mrr.78B-4t4c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-mrr.78B-4t4c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-mrr.78B-4t4c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-mrr.78B-4t4c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-mrr.78B-4t4c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-78b-2t1c-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-skx-x710-78b-2t1c-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-2t1c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-2t1c-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-2t1c-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-78b-4t2c-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-skx-x710-78b-4t2c-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-4t2c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-4t2c-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-4t2c-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-78b-8t4c-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-skx-x710-78b-8t4c-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-8t4c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-8t4c-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-8t4c-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf"
- output-file-name: "2n-skx-xxv710-78b-2t1c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-2t1c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-2t1c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-2t1c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-2t1c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-4t2c-ip6routing-base-scale-avf"
- output-file-name: "2n-skx-xxv710-78b-4t2c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-4t2c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-4t2c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-4t2c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-4t2c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-8t4c-ip6routing-base-scale-avf"
- output-file-name: "2n-skx-xxv710-78b-8t4c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-8t4c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-8t4c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-8t4c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-8t4c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-2t1c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-2t1c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-2t1c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-2t1c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-4t2c-ip6routing-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-78b-4t2c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-4t2c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-4t2c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-4t2c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-4t2c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-8t4c-ip6routing-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-78b-8t4c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-8t4c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-8t4c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-8t4c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-8t4c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-78b-1t1c-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-mrr.78B-1t1c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-mrr.78B-1t1c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-mrr.78B-1t1c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-mrr.78B-1t1c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-mrr.78B-1t1c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-78b-2t2c-ip6routing-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-78b-2t2c-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-mrr.78B-2t2c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-mrr.78B-2t2c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-mrr.78B-2t2c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-mrr.78B-2t2c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-mrr.78B-2t2c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-78b-4t4c-ip6routing-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-78b-4t4c-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-mrr.78B-4t4c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-mrr.78B-4t4c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-mrr.78B-4t4c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-mrr.78B-4t4c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-mrr.78B-4t4c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk"
- output-file-name: "3n-hsw-xl710-78b-1t1c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-mrr.78B-1t1c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-mrr.78B-1t1c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-mrr.78B-1t1c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-78b-2t2c-ip6routing-base-scale-dpdk"
- output-file-name: "3n-hsw-xl710-78b-2t2c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-mrr.78B-2t2c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-mrr.78B-2t2c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-mrr.78B-2t2c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-78b-4t4c-ip6routing-base-scale-dpdk"
- output-file-name: "3n-hsw-xl710-78b-4t4c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-mrr.78B-4t4c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-mrr.78B-4t4c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-mrr.78B-4t4c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-78b-2t1c-ip6routing-base-scale-avf"
- output-file-name: "3n-skx-x710-78b-2t1c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-mrr.78B-2t1c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-mrr.78B-2t1c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-78b-4t2c-ip6routing-base-scale-avf"
- output-file-name: "3n-skx-x710-78b-4t2c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-mrr.78B-4t2c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-mrr.78B-4t2c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-78b-8t4c-ip6routing-base-scale-avf"
- output-file-name: "3n-skx-x710-78b-8t4c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-mrr.78B-8t4c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-mrr.78B-8t4c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-78b-2t1c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-mrr.78B-2t1c-avf-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-2t1c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-2t1c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-2t1c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-2t1c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-4t2c-ip6routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-78b-4t2c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-mrr.78B-4t2c-avf-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-4t2c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-4t2c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-4t2c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-4t2c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-8t4c-ip6routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-78b-8t4c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-mrr.78B-8t4c-avf-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-8t4c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-8t4c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-8t4c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-8t4c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-2t1c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-2t1c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-4t2c-ip6routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-78b-4t2c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-4t2c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-4t2c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-8t4c-ip6routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-78b-8t4c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-8t4c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-8t4c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-78b-1t1c-ip6routing-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-78b-1t1c-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-mrr.78B-1t1c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-mrr.78B-1t1c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-mrr.78B-1t1c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-mrr.78B-1t1c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-mrr.78B-1t1c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-78b-2t2c-ip6routing-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-78b-2t2c-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-mrr.78B-2t2c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-mrr.78B-2t2c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-mrr.78B-2t2c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-mrr.78B-2t2c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-mrr.78B-2t2c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-78b-4t4c-ip6routing-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-78b-4t4c-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Dot1Q-Ip6Base-mrr.78B-4t4c-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-mrr.78B-4t4c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-mrr.78B-4t4c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-mrr.78B-4t4c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-mrr.78B-4t4c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-imix-1t1c-ipsec-base-scale-sw-ixgbe"
- output-file-name: "3n-dnv-x553-imix-1t1c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-imix-2t2c-ipsec-base-scale-sw-ixgbe"
- output-file-name: "3n-dnv-x553-imix-2t2c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-imix-4t4c-ipsec-base-scale-sw-ixgbe"
- output-file-name: "3n-dnv-x553-imix-4t4c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-1518b-1t1c-ipsec-base-scale-sw-ixgbe"
- output-file-name: "3n-dnv-x553-1518b-1t1c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-1518b-2t2c-ipsec-base-scale-sw-ixgbe"
- output-file-name: "3n-dnv-x553-1518b-2t2c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-2t2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-2t2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-2t2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-1518b-4t4c-ipsec-base-scale-sw-ixgbe"
- output-file-name: "3n-dnv-x553-1518b-4t4c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-4t4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-4t4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t4c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-4t4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk"
- output-file-name: "3n-hsw-xl710-imix-1t1c-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-imix-2t2c-ipsec-ip4routing-base-scale-sw-dpdk"
- output-file-name: "3n-hsw-xl710-imix-2t2c-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-imix-4t4c-ipsec-ip4routing-base-scale-sw-dpdk"
- output-file-name: "3n-hsw-xl710-imix-4t4c-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk"
- output-file-name: "3n-hsw-xl710-imix-1t1c-ipsec-base-scale-hw-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-imix-2t2c-ipsec-ip4routing-base-scale-hw-dpdk"
- output-file-name: "3n-hsw-xl710-imix-2t2c-ipsec-base-scale-hw-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-imix-4t4c-ipsec-ip4routing-base-scale-hw-dpdk"
- output-file-name: "3n-hsw-xl710-imix-4t4c-ipsec-base-scale-hw-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-4t2c-ipsec-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-imix-4t2c-ipsec-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t2c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t2c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t2c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t2c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t2c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t2c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-8t4c-ipsec-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-imix-8t4c-ipsec-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-8t4c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-8t4c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-8t4c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-8t4c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.8t4c-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-8t4c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-4t2c-ipsec-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-imix-4t2c-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-8t4c-ipsec-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-imix-8t4c-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-8t4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.8t4c-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-4t2c-ipsec-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-1518b-4t2c-ipsec-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t2c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-4t2c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t2c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-4t2c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t2c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-4t2c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-8t4c-ipsec-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-1518b-8t4c-ipsec-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-8t4c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-8t4c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-8t4c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-8t4c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.8t4c-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-8t4c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-4t2c-ipsec-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-1518b-4t2c-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-8t4c-ipsec-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-1518b-8t4c-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-8t4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.8t4c-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe"
- output-file-name: "3n-tsh-x520-imix-1t1c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-imix-2t2c-ipsec-ip4routing-base-scale-sw-ixgbe"
- output-file-name: "3n-tsh-x520-imix-2t2c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-2t2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-2t2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-imix-4t4c-ipsec-ip4routing-base-scale-sw-ixgbe"
- output-file-name: "3n-tsh-x520-imix-4t4c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-4t4c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-4t4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-1518b-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe"
- output-file-name: "3n-tsh-x520-1518b-1t1c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-1518b-2t2c-ipsec-ip4routing-base-scale-sw-ixgbe"
- output-file-name: "3n-tsh-x520-1518b-2t2c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-2t2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-2t2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-2t2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-2t2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-1518b-4t4c-ipsec-ip4routing-base-scale-sw-ixgbe"
- output-file-name: "3n-tsh-x520-1518b-4t4c-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-4t4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-4t4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-4t4c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-4t4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-2t1c-l2switching-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-64b-2t1c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-4t2c-l2switching-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-64b-4t2c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-4t2c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-8t4c-l2switching-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-64b-8t4c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-8t4c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-l2switching-base-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-2t1c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-2t1c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-mrr.64B-2t1c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-l2switching-base-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-4t2c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-4t2c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-mrr.64B-4t2c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-l2switching-base-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-8t4c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-8t4c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-mrr.64B-8t4c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk"
- output-file-name: "2n-clx-xxv710-64b-2t1c-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-2t1c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-2t1c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-l2switching-base-dpdk"
- output-file-name: "2n-clx-xxv710-64b-4t2c-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-4t2c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-4t2c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-l2switching-base-dpdk"
- output-file-name: "2n-clx-xxv710-64b-8t4c-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-8t4c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-8t4c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf"
- output-file-name: "2n-clx-xxv710-64b-2t1c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-l2switching-base-scale-avf"
- output-file-name: "2n-clx-xxv710-64b-4t2c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-4t2c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-4t2c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t2c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-l2switching-base-scale-avf"
- output-file-name: "2n-clx-xxv710-64b-8t4c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-8t4c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-8t4c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-8t4c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk"
- output-file-name: "2n-clx-xxv710-64b-2t1c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-2t1c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-2t1c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t1c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-l2switching-base-scale-dpdk"
- output-file-name: "2n-clx-xxv710-64b-4t2c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-4t2c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-4t2c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t2c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-l2switching-base-scale-dpdk"
- output-file-name: "2n-clx-xxv710-64b-8t4c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-8t4c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-8t4c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-8t4c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-base"
- output-file-name: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Mrr.64B-2t1c-rdma-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Mrr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Mrr.64B-2t1c-rdma-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Mrr.64B-2t1c-rdma-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-2t1c-rdma-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-4t2c-rdma-l2switching-base"
- output-file-name: "2n-clx-cx556a-64b-4t2c-rdma-l2switching-base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Mrr.64B-4t2c-rdma-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Mrr.64B-4t2c-rdma-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Mrr.64B-4t2c-rdma-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Mrr.64B-4t2c-rdma-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-4t2c-rdma-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-8t4c-rdma-l2switching-base"
- output-file-name: "2n-clx-cx556a-64b-8t4c-rdma-l2switching-base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Mrr.64B-8t4c-rdma-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Mrr.64B-8t4c-rdma-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Mrr.64B-8t4c-rdma-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Mrr.64B-8t4c-rdma-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-8t4c-rdma-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale"
- output-file-name: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-2t1c-rdma-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Mrr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Mrr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Mrr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-4t2c-rdma-l2switching-scale"
- output-file-name: "2n-clx-cx556a-64b-4t2c-rdma-l2switching-scale"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-4t2c-rdma-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Mrr.64B-4t2c-rdma-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Mrr.64B-4t2c-rdma-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Mrr.64B-4t2c-rdma-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-8t4c-rdma-l2switching-scale"
- output-file-name: "2n-clx-cx556a-64b-8t4c-rdma-l2switching-scale"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-8t4c-rdma-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Mrr.64B-8t4c-rdma-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Mrr.64B-8t4c-rdma-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Mrr.64B-8t4c-rdma-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-64b-1t1c-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Patch-mrr.64B-1t1c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-mrr.64B-1t1c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-mrr.64B-1t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-mrr.64B-1t1c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-mrr.64B-1t1c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-mrr.64B-1t1c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-64b-2t2c-l2switching-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-64b-2t2c-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Patch-mrr.64B-2t2c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-mrr.64B-2t2c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-mrr.64B-2t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-mrr.64B-2t2c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-mrr.64B-2t2c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t2c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-64b-4t4c-l2switching-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-64b-4t4c-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Patch-mrr.64B-4t4c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-mrr.64B-4t4c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-mrr.64B-4t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-mrr.64B-4t4c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-mrr.64B-4t4c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t4c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-2t1c-l2switching-base-scale-avf"
- output-file-name: "2n-skx-x710-64b-2t1c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Mrr.64B-2t1c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-mrr.64B-2t1c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-4t2c-l2switching-base-scale-avf"
- output-file-name: "2n-skx-x710-64b-4t2c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Mrr.64B-4t2c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-mrr.64B-4t2c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-4t2c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-8t4c-l2switching-base-scale-avf"
- output-file-name: "2n-skx-x710-64b-8t4c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Mrr.64B-8t4c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-mrr.64B-8t4c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-8t4c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-2t1c-l2switching-base-scale-dpdk"
- output-file-name: "2n-skx-x710-64b-2t1c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Mrr.64B-2t1c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Mrr.64B-2t1c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t1c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-4t2c-l2switching-base-scale-dpdk"
- output-file-name: "2n-skx-x710-64b-4t2c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Mrr.64B-4t2c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Mrr.64B-4t2c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t2c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-8t4c-l2switching-base-scale-dpdk"
- output-file-name: "2n-skx-x710-64b-8t4c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Mrr.64B-8t4c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Mrr.64B-8t4c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-mrr.64B-8t4c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2switching-base-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Mrr.64B-2t1c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-2t1c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-2t1c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-l2switching-base-avf"
- output-file-name: "2n-skx-xxv710-64b-4t2c-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Mrr.64B-4t2c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-4t2c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-4t2c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-l2switching-base-avf"
- output-file-name: "2n-skx-xxv710-64b-8t4c-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Mrr.64B-8t4c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-8t4c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-8t4c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2switching-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-2t1c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-2t1c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-l2switching-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-4t2c-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-4t2c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-4t2c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-l2switching-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-8t4c-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-8t4c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-8t4c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-l2switching-base-scale-avf"
- output-file-name: "2n-skx-xxv710-64b-4t2c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-4t2c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-4t2c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t2c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-l2switching-base-scale-avf"
- output-file-name: "2n-skx-xxv710-64b-8t4c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-8t4c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-8t4c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-8t4c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2switching-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-2t1c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-2t1c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t1c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-l2switching-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-64b-4t2c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-4t2c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-4t2c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t2c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-l2switching-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-64b-8t4c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-8t4c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-8t4c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-8t4c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-1t1c-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-mrr.64B-1t1c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-mrr.64B-1t1c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-mrr.64B-1t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-mrr.64B-1t1c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-mrr.64B-1t1c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-mrr.64B-1t1c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-2t2c-l2switching-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-2t2c-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-mrr.64B-2t2c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-mrr.64B-2t2c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-mrr.64B-2t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-mrr.64B-2t2c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-mrr.64B-2t2c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t2c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-4t4c-l2switching-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-4t4c-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-mrr.64B-4t4c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-mrr.64B-4t4c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-mrr.64B-4t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-mrr.64B-4t4c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-mrr.64B-4t4c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t4c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-l2switching-base-scale-dpdk"
- output-file-name: "3n-hsw-xl710-64b-1t1c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-mrr.64B-1t1c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Xcbase-mrr.64B-1t1c-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-mrr.64B-1t1c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-mrr.64B-1t1c-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-mrr.64B-1t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-mrr.64B-1t1c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-2t2c-l2switching-base-scale-dpdk"
- output-file-name: "3n-hsw-xl710-64b-2t2c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-mrr.64B-2t2c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Xcbase-mrr.64B-2t2c-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-mrr.64B-2t2c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-mrr.64B-2t2c-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-mrr.64B-2t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t2c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-4t4c-l2switching-base-scale-dpdk"
- output-file-name: "3n-hsw-xl710-64b-4t4c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-mrr.64B-4t4c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Xcbase-mrr.64B-4t4c-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-mrr.64B-4t4c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-mrr.64B-4t4c-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-mrr.64B-4t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t4c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-2t1c-l2switching-base-scale-avf"
- output-file-name: "3n-skx-x710-64b-2t1c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Mrr.64B-2t1c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Mrr.64B-2t1c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-4t2c-l2switching-base-scale-avf"
- output-file-name: "3n-skx-x710-64b-4t2c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Mrr.64B-4t2c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Mrr.64B-4t2c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-4t2c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-8t4c-l2switching-base-scale-avf"
- output-file-name: "3n-skx-x710-64b-8t4c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Mrr.64B-8t4c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Mrr.64B-8t4c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-8t4c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-l2switching-base-avf"
- output-file-name: "3n-skx-xxv710-64b-2t1c-l2-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Mrr.64B-2t1c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Mrr.64B-2t1c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Mrr.64B-2t1c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-l2switching-base-avf"
- output-file-name: "3n-skx-xxv710-64b-4t2c-l2-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Mrr.64B-4t2c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Mrr.64B-4t2c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Mrr.64B-4t2c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-l2switching-base-avf"
- output-file-name: "3n-skx-xxv710-64b-8t4c-l2-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Mrr.64B-8t4c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Mrr.64B-8t4c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Mrr.64B-8t4c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf"
- output-file-name: "3n-skx-xxv710-64b-2t1c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Mrr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Mrr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-l2switching-base-scale-avf"
- output-file-name: "3n-skx-xxv710-64b-4t2c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Mrr.64B-4t2c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Mrr.64B-4t2c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-4t2c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-l2switching-base-scale-avf"
- output-file-name: "3n-skx-xxv710-64b-8t4c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Mrr.64B-8t4c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Mrr.64B-8t4c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-8t4c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-l2switching-base-scale-avf-dpdk"
- output-file-name: "3n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-2t1c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-2t1c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t1c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-l2switching-base-scale-avf-dpdk"
- output-file-name: "3n-skx-xxv710-64b-4t2c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-4t2c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-4t2c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t2c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-l2switching-base-scale-avf-dpdk"
- output-file-name: "3n-skx-xxv710-64b-8t4c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-8t4c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-8t4c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-8t4c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-1t1c-l2switching-base-ixgbe"
- output-file-name: "3n-tsh-x520-64b-1t1c-l2-base-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Xcbase-mrr.64B-1t1c-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-mrr.64B-1t1c-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Mrr.64B-1t1c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-mrr.64B-1t1c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-1t1c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-2t2c-l2switching-base-ixgbe"
- output-file-name: "3n-tsh-x520-64b-2t2c-l2-base-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Xcbase-mrr.64B-2t2c-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-mrr.64B-2t2c-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Mrr.64B-2t2c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-mrr.64B-2t2c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-2t2c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-4t4c-l2switching-base-ixgbe"
- output-file-name: "3n-tsh-x520-64b-4t4c-l2-base-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Xcbase-mrr.64B-4t4c-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-mrr.64B-4t4c-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Mrr.64B-4t4c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-mrr.64B-4t4c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-4t4c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-1t1c-l2switching-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-1t1c-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-mrr.64B-1t1c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-mrr.64B-1t1c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-1t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale10Kmaclrn-mrr.64B-1t1c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale100Kmaclrn-mrr.64B-1t1c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale1Mmaclrn-mrr.64B-1t1c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-2t2c-l2switching-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-2t2c-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-mrr.64B-2t2c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-mrr.64B-2t2c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-2t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale10Kmaclrn-mrr.64B-2t2c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale100Kmaclrn-mrr.64B-2t2c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t2c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-4t4c-l2switching-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-4t4c-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-mrr.64B-4t4c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-mrr.64B-4t4c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-4t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale10Kmaclrn-mrr.64B-4t4c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale100Kmaclrn-mrr.64B-4t4c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t4c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-1t1c-features-l2switching-base-ixgbe"
- output-file-name: "3n-tsh-x520-64b-1t1c-l2-features-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-1t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-mrr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-mrr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-mrr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-mrr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-mrr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-2t2c-features-l2switching-base-ixgbe"
- output-file-name: "3n-tsh-x520-64b-2t2c-l2-features-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-2t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-mrr.64B-2t2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-mrr.64B-2t2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-mrr.64B-2t2c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-mrr.64B-2t2c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-mrr.64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-4t4c-features-l2switching-base-ixgbe"
- output-file-name: "3n-tsh-x520-64b-4t4c-l2-features-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-4t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-mrr.64B-4t4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-mrr.64B-4t4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-mrr.64B-4t4c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-mrr.64B-4t4c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-mrr.64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-78b-1t1c-srv6-ip6routing-base-dpdk"
- output-file-name: "3n-hsw-xl710-78b-1t1c-srv6-base-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-78b-2t2c-srv6-ip6routing-base-dpdk"
- output-file-name: "3n-hsw-xl710-78b-2t2c-srv6-base-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-2t2c-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-2t2c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-2t2c-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-2t2c-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-78b-4t4c-srv6-ip6routing-base-dpdk"
- output-file-name: "3n-hsw-xl710-78b-4t4c-srv6-base-dpdk"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-4t4c-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-4t4c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-4t4c-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-4t4c-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-2t1c-srv6-ip6routing-base-avf"
- output-file-name: "3n-skx-xxv710-78b-2t1c-srv6-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-4t2c-srv6-ip6routing-base-avf"
- output-file-name: "3n-skx-xxv710-78b-4t2c-srv6-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-4t2c-avf-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-4t2c-avf-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-4t2c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-4t2c-avf-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-4t2c-avf-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-4t2c-avf-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-8t4c-srv6-ip6routing-base-avf"
- output-file-name: "3n-skx-xxv710-78b-8t4c-srv6-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-8t4c-avf-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-8t4c-avf-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-8t4c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-8t4c-avf-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-8t4c-avf-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-8t4c-avf-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-78b-1t1c-srv6-ip6routing-base-ixgbe"
- output-file-name: "3n-tsh-x520-78b-1t1c-srv6-base-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-78b-2t2c-srv6-ip6routing-base-ixgbe"
- output-file-name: "3n-tsh-x520-78b-2t2c-srv6-base-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-2t2c-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-2t2c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-2t2c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-2t2c-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-2t2c-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-78b-4t4c-srv6-ip6routing-base-ixgbe"
- output-file-name: "3n-tsh-x520-78b-4t4c-srv6-base-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-4t4c-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-4t4c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-4t4c-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-4t4c-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-4t4c-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-testpmd"
- output-file-name: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-vhost-base-avf-testpmd"
- output-file-name: "2n-clx-xxv710-64b-4t2c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-vhost-base-avf-testpmd"
- output-file-name: "2n-clx-xxv710-64b-8t4c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp"
- output-file-name: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-vhost-base-avf-vpp"
- output-file-name: "2n-clx-xxv710-64b-4t2c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-vhost-base-avf-vpp"
- output-file-name: "2n-clx-xxv710-64b-8t4c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd"
- output-file-name: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-vhost-base-dpdk-testpmd"
- output-file-name: "2n-clx-xxv710-64b-4t2c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-vhost-base-dpdk-testpmd"
- output-file-name: "2n-clx-xxv710-64b-8t4c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp"
- output-file-name: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-vhost-base-dpdk-vpp"
- output-file-name: "2n-clx-xxv710-64b-4t2c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-vhost-base-dpdk-vpp"
- output-file-name: "2n-clx-xxv710-64b-8t4c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base"
- output-file-name: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-4t2c-rdma-l2-vhost-base"
- output-file-name: "2n-clx-cx556a-64b-4t2c-rdma-l2-vhost-base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-8t4c-rdma-l2-vhost-base"
- output-file-name: "2n-clx-cx556a-64b-8t4c-rdma-l2-vhost-base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base"
- output-file-name: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-4t2c-rdma-l2-vhost-vppl2xc-base"
- output-file-name: "2n-clx-cx556a-64b-4t2c-rdma-l2-vhost-vppl2xc-base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-8t4c-rdma-l2-vhost-vppl2xc-base"
- output-file-name: "2n-clx-cx556a-64b-8t4c-rdma-l2-vhost-vppl2xc-base"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-114b-2t1c-vts-l2switching-base-avf-dpdk"
- output-file-name: "2n-clx-xxv710-114b-2t1c-vts-l2switching-base-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-mrr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-mrr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-114b-4t2c-vts-l2switching-base-avf-dpdk"
- output-file-name: "2n-clx-xxv710-114b-4t2c-vts-l2switching-base-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-mrr.114B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-mrr.114B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-114b-8t4c-vts-l2switching-base-avf-dpdk"
- output-file-name: "2n-clx-xxv710-114b-8t4c-vts-l2switching-base-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-mrr.114B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-mrr.114B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-vhost-base-avf-testpmd"
- output-file-name: "2n-skx-xxv710-64b-4t2c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-vhost-base-avf-testpmd"
- output-file-name: "2n-skx-xxv710-64b-8t4c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-vhost-base-avf-vpp"
- output-file-name: "2n-skx-xxv710-64b-4t2c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t2c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-vhost-base-avf-vpp"
- output-file-name: "2n-skx-xxv710-64b-8t4c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-8t4c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-vhost-base-dpdk-testpmd"
- output-file-name: "2n-skx-xxv710-64b-4t2c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-vhost-base-dpdk-testpmd"
- output-file-name: "2n-skx-xxv710-64b-8t4c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-vhost-base-dpdk-vpp"
- output-file-name: "2n-skx-xxv710-64b-4t2c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-vhost-base-dpdk-vpp"
- output-file-name: "2n-skx-xxv710-64b-8t4c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-8t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-8t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-testpmd"
- output-file-name: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-2t2c-vhost-base-dpdk-testpmd"
- output-file-name: "3n-hsw-xl710-64b-2t2c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-4t4c-vhost-base-dpdk-testpmd"
- output-file-name: "3n-hsw-xl710-64b-4t4c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp"
- output-file-name: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr10241Vm-Vppl2Xc-mrr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1V-m-Vppl2Xc-mrr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-mrr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-2t2c-vhost-base-dpdk-vpp"
- output-file-name: "3n-hsw-xl710-64b-2t2c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr10241Vm-Vppl2Xc-mrr.64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1V-m-Vppl2Xc-mrr.64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-mrr.64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-4t4c-vhost-base-dpdk-vpp"
- output-file-name: "3n-hsw-xl710-64b-4t4c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-3n-hsw"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr10241Vm-Vppl2Xc-mrr.64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1V-m-Vppl2Xc-mrr.64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-mrr.64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-4t2c-link-bonding-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-x710-64b-4t2c-link-bonding-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-8t4c-link-bonding-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-x710-64b-8t4c-link-bonding-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp"
- output-file-name: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t1c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t1c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-4t2c-link-bonding-vhost-base-avf-vpp"
- output-file-name: "3n-skx-x710-64b-4t2c-link-bonding-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t2c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t2c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-8t4c-link-bonding-vhost-base-avf-vpp"
- output-file-name: "3n-skx-x710-64b-8t4c-link-bonding-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-8t4c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-8t4c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd"
- output-file-name: "3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-vhost-base-dpdk-testpmd"
- output-file-name: "3n-skx-xxv710-64b-4t2c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-vhost-base-dpdk-testpmd"
- output-file-name: "3n-skx-xxv710-64b-8t4c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-xxv710-64b-4t2c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-xxv710-64b-8t4c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp"
- output-file-name: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-vhost-base-avf-vpp"
- output-file-name: "3n-skx-xxv710-64b-4t2c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-vhost-base-avf-vpp"
- output-file-name: "3n-skx-xxv710-64b-8t4c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-link-bonding-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-xxv710-64b-4t2c-link-bonding-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t2c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-link-bonding-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-xxv710-64b-8t4c-link-bonding-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-8t4c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp"
- output-file-name: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-link-bonding-vhost-base-avf-vpp"
- output-file-name: "3n-skx-xxv710-64b-4t2c-link-bonding-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t2c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-4t2c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-link-bonding-vhost-base-avf-vpp"
- output-file-name: "3n-skx-xxv710-64b-8t4c-link-bonding-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-8t4c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-8t4c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-testpmd"
- output-file-name: "3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-testpmd"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-2t2c-vhost-base-ixgbe-testpmd"
- output-file-name: "3n-tsh-x520-64b-2t2c-vhost-base-ixgbe-testpmd"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-4t4c-vhost-base-ixgbe-testpmd"
- output-file-name: "3n-tsh-x520-64b-4t4c-vhost-base-ixgbe-testpmd"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vpp"
- output-file-name: "3n-tsh-x520-64b-1t1c-vhost-base-ixgbe-vpp"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-2t2c-vhost-base-ixgbe-vpp"
- output-file-name: "3n-tsh-x520-64b-2t2c-vhost-base-ixgbe-vpp"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t2c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t2c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t2c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-4t4c-vhost-base-ixgbe-vpp"
- output-file-name: "3n-tsh-x520-64b-4t4c-vhost-base-ixgbe-vpp"
- data: "plot-performance-trending-vpp-3n-tsh"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t4c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t4c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t4c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-114b-2t1c-vts-l2switching-base-avf"
- output-file-name: "2n-skx-xxv710-114b-2t1c-vts-l2switching-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-mrr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-mrr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-114b-4t2c-vts-l2switching-base-avf"
- output-file-name: "2n-skx-xxv710-114b-4t2c-vts-l2switching-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-mrr.114B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-mrr.114B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-114b-8t4c-vts-l2switching-base-avf"
- output-file-name: "2n-skx-xxv710-114b-8t4c-vts-l2switching-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-mrr.114B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-mrr.114B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-2t1c-dpdk"
- output-file-name: "2n-skx-x710-64b-2t1c-dpdk"
- data: "plot-performance-trending-dpdk-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-2t1c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-2t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-4t2c-dpdk"
- output-file-name: "2n-skx-x710-64b-4t2c-dpdk"
- data: "plot-performance-trending-dpdk-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-4t2c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-4t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-8t4c-dpdk"
- output-file-name: "2n-skx-x710-64b-8t4c-dpdk"
- data: "plot-performance-trending-dpdk-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-8t4c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-8t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-dpdk"
- output-file-name: "2n-skx-xxv710-64b-2t1c-dpdk"
- data: "plot-performance-trending-dpdk-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-2t1c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-2t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-4t2c-dpdk"
- output-file-name: "2n-skx-xxv710-64b-4t2c-dpdk"
- data: "plot-performance-trending-dpdk-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-4t2c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-4t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-8t4c-dpdk"
- output-file-name: "2n-skx-xxv710-64b-8t4c-dpdk"
- data: "plot-performance-trending-dpdk-2n-skx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-8t4c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-8t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-2t1c-dpdk"
- output-file-name: "2n-clx-x710-64b-2t1c-dpdk"
- data: "plot-performance-trending-dpdk-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-2t1c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-2t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-4t2c-dpdk"
- output-file-name: "2n-clx-x710-64b-4t2c-dpdk"
- data: "plot-performance-trending-dpdk-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-4t2c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-4t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-8t4c-dpdk"
- output-file-name: "2n-clx-x710-64b-8t4c-dpdk"
- data: "plot-performance-trending-dpdk-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-8t4c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-8t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-dpdk"
- output-file-name: "2n-clx-xxv710-64b-2t1c-dpdk"
- data: "plot-performance-trending-dpdk-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-2t1c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-2t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-4t2c-dpdk"
- output-file-name: "2n-clx-xxv710-64b-4t2c-dpdk"
- data: "plot-performance-trending-dpdk-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-4t2c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-4t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-8t4c-dpdk"
- output-file-name: "2n-clx-xxv710-64b-8t4c-dpdk"
- data: "plot-performance-trending-dpdk-2n-clx"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-8t4c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-8t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-x710-64b-1t1c-dpdk"
- output-file-name: "3n-hsw-x710-64b-1t1c-dpdk"
- data: "plot-performance-trending-dpdk-3n-hsw"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-1t1c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-1t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-x710-64b-2t2c-dpdk"
- output-file-name: "3n-hsw-x710-64b-2t2c-dpdk"
- data: "plot-performance-trending-dpdk-3n-hsw"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-2t2c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-2t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-x710-64b-4t4c-dpdk"
- output-file-name: "3n-hsw-x710-64b-4t4c-dpdk"
- data: "plot-performance-trending-dpdk-3n-hsw"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-4t4c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-4t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-dpdk"
- output-file-name: "3n-hsw-xl710-64b-1t1c-dpdk"
- data: "plot-performance-trending-dpdk-3n-hsw"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-mrr.64b-1t1c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-mrr.64b-1t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-2t2c-dpdk"
- output-file-name: "3n-hsw-xl710-64b-2t2c-dpdk"
- data: "plot-performance-trending-dpdk-3n-hsw"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-mrr.64b-2t2c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-mrr.64b-2t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-4t4c-dpdk"
- output-file-name: "3n-hsw-xl710-64b-4t4c-dpdk"
- data: "plot-performance-trending-dpdk-3n-hsw"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-mrr.64b-4t4c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-mrr.64b-4t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-2t1c-dpdk"
- output-file-name: "3n-skx-x710-64b-2t1c-dpdk"
- data: "plot-performance-trending-dpdk-3n-skx"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-2t1c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-2t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-4t2c-dpdk"
- output-file-name: "3n-skx-x710-64b-4t2c-dpdk"
- data: "plot-performance-trending-dpdk-3n-skx"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-4t2c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-4t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-8t4c-dpdk"
- output-file-name: "3n-skx-x710-64b-8t4c-dpdk"
- data: "plot-performance-trending-dpdk-3n-skx"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-8t4c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-8t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-dpdk"
- output-file-name: "3n-skx-xxv710-64b-2t1c-dpdk"
- data: "plot-performance-trending-dpdk-3n-skx"
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-2t1c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-2t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-4t2c-dpdk"
- output-file-name: "3n-skx-xxv710-64b-4t2c-dpdk"
- data: "plot-performance-trending-dpdk-3n-skx"
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-4t2c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-4t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-8t4c-dpdk"
- output-file-name: "3n-skx-xxv710-64b-8t4c-dpdk"
- data: "plot-performance-trending-dpdk-3n-skx"
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-8t4c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-8t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-1t1c-dpdk"
- output-file-name: "3n-tsh-x520-64b-1t1c-dpdk"
- data: "plot-performance-trending-dpdk-3n-tsh"
- include:
- - "Tests.Dpdk.Perf.10Ge2P1X520-Eth-L2Xcbase-Testpmd-Mrr.64B-1t1c-eth-l2xcbase-testpmd-mrr"
- - "Tests.Dpdk.Perf.10Ge2P1X520-Ethip4-Ip4Base-L3Fwd-Mrr.64B-1t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-2t2c-dpdk"
- output-file-name: "3n-tsh-x520-64b-2t2c-dpdk"
- data: "plot-performance-trending-dpdk-3n-tsh"
- include:
- - "Tests.Dpdk.Perf.10Ge2P1X520-Eth-L2Xcbase-Testpmd-Mrr.64B-2t2c-eth-l2xcbase-testpmd-mrr"
- - "Tests.Dpdk.Perf.10Ge2P1X520-Ethip4-Ip4Base-L3Fwd-Mrr.64B-2t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-4t4c-dpdk"
- output-file-name: "3n-tsh-x520-64b-4t4c-dpdk"
- data: "plot-performance-trending-dpdk-3n-tsh"
- include:
- - "Tests.Dpdk.Perf.10Ge2P1X520-Eth-L2Xcbase-Testpmd-Mrr.64B-4t4c-eth-l2xcbase-testpmd-mrr"
- - "Tests.Dpdk.Perf.10Ge2P1X520-Ethip4-Ip4Base-L3Fwd-Mrr.64B-4t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
-################################################################################
-
-# NDRPDR Trending
-
-# 2n-clx memif
-
- - title: "2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-memif-base-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-memif-base-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-memif-base-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-memif-base-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-clx ip4
-
- - title: "2n-clx-x710-64b-2t1c-ip4-base-avf-dpdk-ndr"
- output-file-name: "2n-clx-x710-64b-2t1c-ip4-base-avf-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-2t1c-ip4-base-avf-dpdk-pdr"
- output-file-name: "2n-clx-x710-64b-2t1c-ip4-base-avf-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-ip4-base-rdma-ndr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-ip4-base-rdma-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-ip4-scale-rdma-ndr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-ip4-scale-rdma-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-ip4-features-rdma-ndr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-ip4-features-rdma-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-ip4-base-rdma-pdr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-ip4-base-rdma-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-ip4-scale-rdma-pdr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-ip4-scale-rdma-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-ip4-features-rdma-pdr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-ip4-features-rdma-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-base-scale-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-base-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-scale-avf-rnd-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-scale-avf-rnd-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-features-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-features-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-base-scale-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-base-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-scale-avf-rnd-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-scale-avf-rnd-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-features-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-features-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-base-scale-dpdk-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-scale-dpdk-rnd-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-scale-dpdk-rnd-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-base-features-dpdk-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-base-features-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ip4base-nat44-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-base-scale-dpdk-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-scale-dpdk-rnd-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-scale-dpdk-rnd-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-ip4-base-features-dpdk-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-ip4-base-features-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ip4base-nat44-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-clx ip6
-
- - title: "2n-clx-cx556a-78b-2t1c-ip6-base-scale-rdma-ndr"
- output-file-name: "2n-clx-cx556a-78b-2t1c-ip6-base-scale-rdma-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-78b-2t1c-ip6-base-scale-rdma-pdr"
- output-file-name: "2n-clx-cx556a-78b-2t1c-ip6-base-scale-rdma-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-78b-2t1c-ip6-base-scale-avf-dpdk-ndr"
- output-file-name: "2n-clx-x710-78b-2t1c-ip6-base-scale-avf-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-78b-2t1c-ip6-base-scale-avf-dpdk-pdr"
- output-file-name: "2n-clx-x710-78b-2t1c-ip6-base-scale-avf-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-2t1c-ip6-base-scale-avf-ndr"
- output-file-name: "2n-clx-xxv710-78b-2t1c-ip6-base-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-2t1c-ip6-base-scale-avf-pdr"
- output-file-name: "2n-clx-xxv710-78b-2t1c-ip6-base-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-2t1c-ip6-base-scale-dpdk-ndr"
- output-file-name: "2n-clx-xxv710-78b-2t1c-ip6-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr"
- output-file-name: "2n-clx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-clx L2
-
- - title: "2n-clx-cx556a-64b-2t1c-l2-base-rdma-ndr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-l2-base-rdma-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-2t1c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-l2-base-scale-rdma-ndr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-l2-base-scale-rdma-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-l2-base-rdma-pdr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-l2-base-rdma-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-2t1c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-l2-base-scale-rdma-pdr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-l2-base-scale-rdma-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-2t1c-l2-base-scale-avf-dpdk-ndr"
- output-file-name: "2n-clx-x710-64b-2t1c-l2-base-scale-avf-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-2t1c-l2-base-scale-avf-dpdk-pdr"
- output-file-name: "2n-clx-x710-64b-2t1c-l2-base-scale-avf-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-l2-base-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-l2-base-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-l2-base-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-l2-base-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-l2-base-scale-avf-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-l2-base-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-l2-base-scale-avf-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-l2-base-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-l2-base-scale-dpdk-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-l2-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-l2-base-scale-dpdk-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-l2-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-clx VHost
-
- - title: "2n-clx-cx556a-64b-2t1c-vhost-base-rdma-testpmd-ndr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-vhost-base-rdma-testpmd-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-vhost-base-rdma-vpp-ndr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-vhost-base-rdma-vpp-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-vhost-base-rdma-testpmd-pdr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-vhost-base-rdma-testpmd-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-2t1c-vhost-base-rdma-vpp-pdr"
- output-file-name: "2n-clx-cx556a-64b-2t1c-vhost-base-rdma-vpp-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-testpmd-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-testpmd-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-vpp-ndr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-vpp-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-testpmd-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-testpmd-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-vpp-pdr"
- output-file-name: "2n-clx-xxv710-64b-2t1c-vhost-base-avf-dpdk-vpp-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-114b-2t1c-vts-l2switching-base-avf-ndr"
- output-file-name: "2n-clx-xxv710-114b-2t1c-vts-l2switching-base-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-114b-2t1c-vts-l2switching-base-avf-pdr"
- output-file-name: "2n-clx-xxv710-114b-2t1c-vts-l2switching-base-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-Ndrpdr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-skx memif
-
- - title: "2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-skx ip4
-
- - title: "2n-skx-x710-64b-2t1c-ip4-base-scale-avf-dpdk-ndr"
- output-file-name: "2n-skx-x710-64b-2t1c-ip4-base-scale-avf-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-2t1c-ip4-base-scale-avf-dpdk-pdr"
- output-file-name: "2n-skx-x710-64b-2t1c-ip4-base-scale-avf-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4-base-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-base-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4-scale-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4-features-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-features-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4-base-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-base-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4-scale-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4-features-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-features-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4-base-features-dpdk-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-base-features-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4-scale-dpdk-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4-base-features-dpdk-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-base-features-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-2t1c-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-ip4-scale-dpdk-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-ip4-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-skx ip6
-
- - title: "2n-skx-x710-78b-2t1c-ip6-base-scale-avf-dpdk-ndr"
- output-file-name: "2n-skx-x710-78b-2t1c-ip6-base-scale-avf-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-78b-2t1c-ip6-base-scale-avf-dpdk-pdr"
- output-file-name: "2n-skx-x710-78b-2t1c-ip6-base-scale-avf-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-ndr"
- output-file-name: "2n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-pdr"
- output-file-name: "2n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-ndr"
- output-file-name: "2n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr"
- output-file-name: "2n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-skx L2
-
- - title: "2n-skx-x710-64b-2t1c-l2-base-scale-avf-ndr"
- output-file-name: "2n-skx-x710-64b-2t1c-l2-base-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-2t1c-l2-base-scale-dpdk-ndr"
- output-file-name: "2n-skx-x710-64b-2t1c-l2-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-2t1c-l2-base-scale-avf-pdr"
- output-file-name: "2n-skx-x710-64b-2t1c-l2-base-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-2t1c-l2-base-scale-dpdk-pdr"
- output-file-name: "2n-skx-x710-64b-2t1c-l2-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2-base-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2-base-scale-avf-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2-base-dpdk-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2-base-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2-base-scale-avf-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2-base-dpdk-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-skx VHost
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- output-file-name: "2n-skx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx memif
-
- - title: "3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-memif-base-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-memif-base-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx ipsec
-
- - title: "3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-avf-ndr"
- output-file-name: "3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-avf-ndr"
- output-file-name: "3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-avf-pdr"
- output-file-name: "3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-avf-pdr"
- output-file-name: "3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-dpdk-ndr"
- output-file-name: "3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-dpdk-ndr"
- output-file-name: "3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-dpdk-pdr"
- output-file-name: "3n-skx-xxv710-imix-2t1c-ipsec-base-scale-sw-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-dpdk-pdr"
- output-file-name: "3n-skx-xxv710-1518b-2t1c-ipsec-base-scale-sw-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx ip4
-
- - title: "3n-skx-x710-64b-2t1c-ip4-base-scale-avf-ndr"
- output-file-name: "3n-skx-x710-64b-2t1c-ip4-base-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-2t1c-ip4-base-scale-avf-pdr"
- output-file-name: "3n-skx-x710-64b-2t1c-ip4-base-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4-base-scale-avf-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-base-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4-base-scale-avf-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-base-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-avf-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx ip4 tunnels
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-avf-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-dpdk-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-avf-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-2t1c-avf-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-dpdk-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-ip4-tunnels-base-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-2t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx ip6
-
- - title: "3n-skx-x710-78b-2t1c-ip6-base-scale-dpdk-ndr"
- output-file-name: "3n-skx-x710-78b-2t1c-ip6-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-78b-2t1c-ip6-base-scale-dpdk-pdr"
- output-file-name: "3n-skx-x710-78b-2t1c-ip6-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-ndr"
- output-file-name: "3n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - " Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - " Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-ndr"
- output-file-name: "3n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - " Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-pdr"
- output-file-name: "3n-skx-xxv710-78b-2t1c-ip6-base-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-avf-ethip6-ip6base-ndrpdr"
- - " Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale200k-ndrpdr"
- - " Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr"
- output-file-name: "3n-skx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - " Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx L2
-
- - title: "3n-skx-x710-64b-2t1c-l2-base-scale-avf-ndr"
- output-file-name: "3n-skx-x710-64b-2t1c-l2-base-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-2t1c-l2-base-scale-avf-pdr"
- output-file-name: "3n-skx-x710-64b-2t1c-l2-base-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-l2-base-avf-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-l2-base-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-l2-scale-avf-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-l2-scale-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-l2-base-avf-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-l2-base-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-l2-scale-avf-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-l2-scale-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-l2-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx srv6
-
- - title: "3n-skx-xxv710-78b-2t1c-srv6-base-avf-ndr"
- output-file-name: "3n-skx-xxv710-78b-2t1c-srv6-base-avf-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-2t1c-srv6-base-avf-pdr"
- output-file-name: "3n-skx-xxv710-78b-2t1c-srv6-base-avf-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-2t1c-avf-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx VHost
-
- - title: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-ndr"
- output-file-name: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr"
- output-file-name: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-pdr"
- output-file-name: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr"
- output-file-name: "3n-skx-x710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-vhost-base-dpdk-testpmd-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-testpmd-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-link-bonding-vhost-base-avf-vpp-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-ndr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-testpmd-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- output-file-name: "3n-skx-xxv710-64b-2t1c-vhost-base-avf-vpp-pdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-hsw ipsec
-
- - title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr"
- output-file-name: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr"
- output-file-name: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr"
- output-file-name: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-pdr"
- output-file-name: "3n-hsw-xl710-imix-1t1c-ipsec-ip4routing-base-scale-hw-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlhw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-hsw ip4
-
- - title: "3n-hsw-xl710-64b-1t1c-ip4-base-scale-dpdk-ndr"
- output-file-name: "3n-hsw-xl710-64b-1t1c-ip4-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-ip4-base-scale-dpdk-pdr"
- output-file-name: "3n-hsw-xl710-64b-1t1c-ip4-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-hsw ip4 tunnels
-
- - title: "3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr"
- output-file-name: "3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr"
- output-file-name: "3n-hsw-xl710-64b-1t1c-ip4tunnel-base-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-hsw ip6
-
- - title: "3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr"
- output-file-name: "3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr"
- output-file-name: "3n-hsw-xl710-78b-1t1c-ip6routing-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-hsw l2
-
- - title: "3n-hsw-xl710-64b-1t1c-l2-base-scale-dpdk-ndr"
- output-file-name: "3n-hsw-xl710-64b-1t1c-l2-base-scale-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-l2-base-scale-dpdk-pdr"
- output-file-name: "3n-hsw-xl710-64b-1t1c-l2-base-scale-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-hsw srv6
-
- - title: "3n-hsw-xl710-78b-1t1c-srv6-base-dpdk-ndr"
- output-file-name: "3n-hsw-xl710-78b-1t1c-srv6-base-dpdk-ndr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-78b-1t1c-srv6-base-dpdk-pdr"
- output-file-name: "3n-hsw-xl710-78b-1t1c-srv6-base-dpdk-pdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-1t1c-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.40Ge2P1Xl710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-1t1c-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-hsw vhost
-
- - title: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-testpmd-ndr"
- output-file-name: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-testpmd-ndr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-ndr"
- output-file-name: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-ndr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "NDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr10241Vm-Vppl2Xc-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1V-m-Vppl2Xc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-testpmd-pdr"
- output-file-name: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-testpmd-pdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-pdr"
- output-file-name: "3n-hsw-xl710-64b-1t1c-vhost-base-dpdk-vpp-pdr"
- data: "plot-ndrpdr-comparison-3n-hsw"
- include-tests: "PDR"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-1t1c-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr10241Vm-Vppl2Xc-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-1t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1V-m-Vppl2Xc-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout: "plot-cpta"
-
-################################################################################
-
-# 2n-zn2
-
- - title: "2n-zn2-xxv710-64b-2t1c-memif-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-memif-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-4t2c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-memif-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-8t4c-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-memif-base-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-memif-base-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-4t2c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-4t2c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-memif-base-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-8t4c-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-8t4c-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr"
- output-file-name: "2n-zn2-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-4t2c-rdma-l2-eth-2memif-1dcr"
- output-file-name: "2n-zn2-cx556a-64b-4t2c-rdma-l2-eth-2memif-1dcr"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-4t2c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-4t2c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-4t2c-rdma-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-4t2c-rdma-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-8t4c-rdma-l2-eth-2memif-1dcr"
- output-file-name: "2n-zn2-cx556a-64b-8t4c-rdma-l2-eth-2memif-1dcr"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-8t4c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-8t4c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-8t4c-rdma-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-8t4c-rdma-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-64b-2t1c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-64b-2t1c-ip4-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-2t1c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-2t1c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-2t1c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-64b-4t2c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-64b-4t2c-ip4-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-4t2c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-4t2c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-4t2c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-64b-8t4c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-64b-8t4c-ip4-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-8t4c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-8t4c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-8t4c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-ip4routing-base-avf-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-ip4-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-2t1c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-2t1c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-2t1c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-ip4routing-base-avf-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-ip4-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-4t2c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-4t2c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-4t2c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-ip4routing-base-avf-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-ip4-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip4Base-Mrr.64B-8t4c-avf-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-8t4c-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-8t4c-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-ip4routing-scale-avf"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-ip4-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-2t1c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-2t1c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-2t1c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-ip4routing-scale-avf"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-ip4-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-4t2c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-4t2c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-4t2c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-ip4routing-scale-avf"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-ip4-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-8t4c-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-8t4c-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-8t4c-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-ip4routing-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-ip4-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-2t1c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-2t1c-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-2t1c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-2t1c-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-2t1c-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-ip4routing-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-ip4-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-4t2c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-4t2c-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-4t2c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-4t2c-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-4t2c-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-ip4routing-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-ip4-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-8t4c-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-8t4c-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-8t4c-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-8t4c-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-8t4c-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-features-ip4routing-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-2t1c-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-features-ip4routing-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-4t2c-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-4t2c-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-4t2c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-features-ip4routing-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-8t4c-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-8t4c-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-8t4c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-2t1c-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-2t1c-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-4t2c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-4t2c-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-4t2c-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-4t2c-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-4t2c-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-8t4c-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-8t4c-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-8t4c-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-8t4c-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-8t4c-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
-# - title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf"
-# output-file-name: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
-# layout: "plot-cpta"
-#
-# - title: "2n-zn2-xxv710-64b-4t2c-nat44ed-ip4routing-stl-unidir-avf"
-# output-file-name: "2n-zn2-xxv710-64b-4t2c-nat44ed-ip4routing-stl-unidir-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
-# layout: "plot-cpta"
-#
-# - title: "2n-zn2-xxv710-64b-8t4c-nat44ed-ip4routing-stl-unidir-avf"
-# output-file-name: "2n-zn2-xxv710-64b-8t4c-nat44ed-ip4routing-stl-unidir-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
-# layout: "plot-cpta"
-#
-# - title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
-# layout: "plot-cpta-cps"
-#
-# - title: "2n-zn2-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-cps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-cps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
-# layout: "plot-cpta-cps"
-#
-# - title: "2n-zn2-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-cps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-cps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
-# layout: "plot-cpta-cps"
-#
-# - title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-pps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
-# layout: "plot-cpta"
-#
-# - title: "2n-zn2-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-pps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-4t2c-nat44ed-ip4routing-udp-stf-pps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
-# layout: "plot-cpta"
-#
-# - title: "2n-zn2-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-pps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-8t4c-nat44ed-ip4routing-udp-stf-pps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
-# layout: "plot-cpta"
-#
-# - title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
-# layout: "plot-cpta-cps"
-#
-# - title: "2n-zn2-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-cps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-cps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
-# layout: "plot-cpta-cps"
-#
-# - title: "2n-zn2-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-cps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-cps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
-# layout: "plot-cpta-cps"
-#
-# - title: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-pps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-2t1c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
-# layout: "plot-cpta"
-#
-# - title: "2n-zn2-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-pps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-stf-pps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-4t2c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
-# layout: "plot-cpta"
-#
-# - title: "2n-zn2-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-pps-avf"
-# output-file-name: "2n-zn2-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-stf-pps-avf"
-# data: "plot-performance-trending-vpp-2n-zn2"
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-8t4c-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
-# layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-2t1c-rdma-ip4base"
- output-file-name: "2n-zn2-cx556a-64b-2t1c-rdma-ip4base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Mrr.64B-2t1c-rdma-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Mrr.64B-2t1c-rdma-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-4t2c-rdma-ip4base"
- output-file-name: "2n-zn2-cx556a-64b-4t2c-rdma-ip4base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Mrr.64B-4t2c-rdma-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Mrr.64B-4t2c-rdma-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-8t4c-rdma-ip4base"
- output-file-name: "2n-zn2-cx556a-64b-8t4c-rdma-ip4base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Mrr.64B-8t4c-rdma-dot1q-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Mrr.64B-8t4c-rdma-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale"
- output-file-name: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-ip4scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Mrr.64B-2t1c-rdma-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Mrr.64B-2t1c-rdma-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Mrr.64B-2t1c-rdma-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-4t2c-rdma-ethip4-ip4scale"
- output-file-name: "2n-zn2-cx556a-64b-4t2c-rdma-ethip4-ip4scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Mrr.64B-4t2c-rdma-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-4t2c-rdma-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Mrr.64B-4t2c-rdma-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-4t2c-rdma-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Mrr.64B-4t2c-rdma-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-4t2c-rdma-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-8t4c-rdma-ethip4-ip4scale"
- output-file-name: "2n-zn2-cx556a-64b-8t4c-rdma-ethip4-ip4scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Mrr.64B-8t4c-rdma-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-8t4c-rdma-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Mrr.64B-8t4c-rdma-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-8t4c-rdma-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Mrr.64B-8t4c-rdma-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-8t4c-rdma-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features"
- output-file-name: "2n-zn2-cx556a-64b-2t1c-rdma-ethip4-features"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Mrr.64B-2t1c-rdma-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-2t1c-rdma-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-4t2c-rdma-ethip4-features"
- output-file-name: "2n-zn2-cx556a-64b-4t2c-rdma-ethip4-features"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-4t2c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-4t2c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-4t2c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-4t2c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Mrr.64B-4t2c-rdma-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-4t2c-rdma-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-8t4c-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-cx556a-64b-8t4c-rdma-ethip4-features"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-8t4c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-8t4c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-8t4c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-8t4c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Mrr.64B-8t4c-rdma-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-8t4c-rdma-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-78b-2t1c-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-78b-2t1c-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-2t1c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-2t1c-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-2t1c-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-78b-4t2c-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-78b-4t2c-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-4t2c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-4t2c-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-4t2c-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-78b-8t4c-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-78b-8t4c-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-8t4c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-8t4c-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-8t4c-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-avf"
- output-file-name: "2n-zn2-xxv710-78b-2t1c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-mrr.78B-2t1c-avf-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-2t1c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-2t1c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-2t1c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-2t1c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-4t2c-ip6routing-base-scale-avf"
- output-file-name: "2n-zn2-xxv710-78b-4t2c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-mrr.78B-4t2c-avf-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-4t2c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-4t2c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-4t2c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-4t2c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-8t4c-ip6routing-base-scale-avf"
- output-file-name: "2n-zn2-xxv710-78b-8t4c-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-Ip6Base-mrr.78B-8t4c-avf-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-8t4c-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-8t4c-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-8t4c-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-8t4c-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-2t1c-ip6routing-base-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-78b-2t1c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-2t1c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-2t1c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-2t1c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-2t1c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-4t2c-ip6routing-base-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-78b-4t2c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-4t2c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-4t2c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-4t2c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-4t2c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-8t4c-ip6routing-base-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-78b-8t4c-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-8t4c-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-8t4c-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-8t4c-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-8t4c-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale"
- output-file-name: "2n-zn2-cx556a-78b-2t1c-rdma-ip6routing-base-scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Mrr.78B-2t1c-rdma-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Mrr.78B-2t1c-rdma-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Mrr.78B-2t1c-rdma-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Mrr.78B-2t1c-rdma-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Mrr.78B-2t1c-rdma-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-78b-4t2c-rdma-ip6routing-base-scale"
- output-file-name: "2n-zn2-cx556a-78b-4t2c-rdma-ip6routing-base-scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Mrr.78B-4t2c-rdma-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Mrr.78B-4t2c-rdma-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Mrr.78B-4t2c-rdma-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Mrr.78B-4t2c-rdma-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Mrr.78B-4t2c-rdma-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-78b-8t4c-rdma-ip6routing-base-scale"
- output-file-name: "2n-zn2-cx556a-78b-8t4c-rdma-ip6routing-base-scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Mrr.78B-8t4c-rdma-dot1q-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Mrr.78B-8t4c-rdma-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Mrr.78B-8t4c-rdma-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Mrr.78B-8t4c-rdma-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Mrr.78B-8t4c-rdma-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-64b-2t1c-l2switching-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-64b-2t1c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-64b-4t2c-l2switching-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-64b-4t2c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-4t2c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-64b-8t4c-l2switching-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-64b-8t4c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-8t4c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-2t1c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-2t1c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-mrr.64B-2t1c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-l2switching-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-4t2c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-4t2c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-mrr.64B-4t2c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-l2switching-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-8t4c-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-8t4c-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-mrr.64B-8t4c-avf-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-2t1c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-2t1c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-l2switching-base-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-4t2c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-4t2c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-l2switching-base-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-8t4c-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-8t4c-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-avf"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-l2switching-base-scale-avf"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-4t2c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-4t2c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t2c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-l2switching-base-scale-avf"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-8t4c-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-8t4c-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-8t4c-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-l2switching-base-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-2t1c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-2t1c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-2t1c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-2t1c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-l2switching-base-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-4t2c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-4t2c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-4t2c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-4t2c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-l2switching-base-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-8t4c-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-8t4c-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-8t4c-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-8t4c-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base"
- output-file-name: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Mrr.64B-2t1c-rdma-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Mrr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Mrr.64B-2t1c-rdma-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Mrr.64B-2t1c-rdma-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-2t1c-rdma-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-4t2c-rdma-l2switching-base"
- output-file-name: "2n-zn2-cx556a-64b-4t2c-rdma-l2switching-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Mrr.64B-4t2c-rdma-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Mrr.64B-4t2c-rdma-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Mrr.64B-4t2c-rdma-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Mrr.64B-4t2c-rdma-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-4t2c-rdma-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-8t4c-rdma-l2switching-base"
- output-file-name: "2n-zn2-cx556a-64b-8t4c-rdma-l2switching-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Mrr.64B-8t4c-rdma-dot1q-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Mrr.64B-8t4c-rdma-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Mrr.64B-8t4c-rdma-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Mrr.64B-8t4c-rdma-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-8t4c-rdma-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale"
- output-file-name: "2n-zn2-cx556a-64b-2t1c-rdma-l2switching-scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-2t1c-rdma-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Mrr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Mrr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Mrr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-4t2c-rdma-l2switching-scale"
- output-file-name: "2n-zn2-cx556a-64b-4t2c-rdma-l2switching-scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-4t2c-rdma-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Mrr.64B-4t2c-rdma-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Mrr.64B-4t2c-rdma-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Mrr.64B-4t2c-rdma-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-8t4c-rdma-l2switching-scale"
- output-file-name: "2n-zn2-cx556a-64b-8t4c-rdma-l2switching-scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-8t4c-rdma-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Mrr.64B-8t4c-rdma-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Mrr.64B-8t4c-rdma-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Mrr.64B-8t4c-rdma-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-testpmd"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-vhost-base-avf-testpmd"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-vhost-base-avf-testpmd"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-vhost-base-avf-vpp"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-vhost-base-avf-vpp"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-testpmd"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-vhost-base-dpdk-testpmd"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-vhost-base-dpdk-testpmd"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-vhost-base-dpdk-vpp"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-vhost-base-dpdk-vpp"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base"
- output-file-name: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-4t2c-rdma-l2-vhost-base"
- output-file-name: "2n-zn2-cx556a-64b-4t2c-rdma-l2-vhost-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-4t2c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-8t4c-rdma-l2-vhost-base"
- output-file-name: "2n-zn2-cx556a-64b-8t4c-rdma-l2-vhost-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-8t4c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base"
- output-file-name: "2n-zn2-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-4t2c-rdma-l2-vhost-vppl2xc-base"
- output-file-name: "2n-zn2-cx556a-64b-4t2c-rdma-l2-vhost-vppl2xc-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-4t2c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-8t4c-rdma-l2-vhost-vppl2xc-base"
- output-file-name: "2n-zn2-cx556a-64b-8t4c-rdma-l2-vhost-vppl2xc-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-8t4c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-avf-dpdk"
- output-file-name: "2n-zn2-xxv710-114b-2t1c-vts-l2switching-base-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-mrr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-mrr.114B-2t1c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-114b-4t2c-vts-l2switching-base-avf-dpdk"
- output-file-name: "2n-zn2-xxv710-114b-4t2c-vts-l2switching-base-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-mrr.114B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-mrr.114B-4t2c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-114b-8t4c-vts-l2switching-base-avf-dpdk"
- output-file-name: "2n-zn2-xxv710-114b-8t4c-vts-l2switching-base-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-mrr.114B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermitreflect-2Vhostvr1024-1Vm-mrr.114B-8t4c-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
-# 2n-zn2 DPDK
-
- - title: "2n-zn2-x710-64b-2t1c-dpdk"
- output-file-name: "2n-zn2-x710-64b-2t1c-dpdk"
- data: "plot-performance-trending-dpdk-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-2t1c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-2t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-64b-4t2c-dpdk"
- output-file-name: "2n-zn2-x710-64b-4t2c-dpdk"
- data: "plot-performance-trending-dpdk-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-4t2c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-4t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-64b-8t4c-dpdk"
- output-file-name: "2n-zn2-x710-64b-8t4c-dpdk"
- data: "plot-performance-trending-dpdk-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-8t4c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-8t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-2t1c-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-2t1c-dpdk"
- data: "plot-performance-trending-dpdk-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-2t1c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-2t1c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-4t2c-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-4t2c-dpdk"
- data: "plot-performance-trending-dpdk-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-4t2c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-4t2c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-8t4c-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-8t4c-dpdk"
- data: "plot-performance-trending-dpdk-2n-zn2"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-8t4c-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-8t4c-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
diff --git a/resources/tools/presentation/specification_local.yaml b/resources/tools/presentation/specification_local.yaml
deleted file mode 100644
index 393228c1a5..0000000000
--- a/resources/tools/presentation/specification_local.yaml
+++ /dev/null
@@ -1,3386 +0,0 @@
-###############################################################################
-#
-# This specification is an example, but it fully works and can be used as a
-# base.
-#
-###############################################################################
-
-###############################################################################
-# Section: Environment
-#
-# Specifies paths and urls used by PAL and/or elements.
-# In general, you do not need to edit this section.
-#
-- type: "environment"
-
- paths:
- # Top level directories:
- ## Working directory
- DIR[WORKING]: "_tmp"
- ## Build directories
- DIR[BUILD,HTML]: "_build"
- DIR[BUILD,LATEX]: "_build_latex"
-
- # Static .rst files in CSIT repo
- DIR[RST]: "../../../docs/report"
-
- # Working directories
- ## Input data files (.zip, .xml)
- DIR[WORKING,DATA]: "{DIR[WORKING]}/data"
- ## Static source files from CSIT repo
- DIR[WORKING,SRC]: "{DIR[WORKING]}/src"
- DIR[WORKING,SRC,STATIC]: "{DIR[WORKING,SRC]}/_static"
-
- # Static html content
- DIR[STATIC]: "{DIR[BUILD,HTML]}/_static"
- DIR[STATIC,VPP]: "{DIR[STATIC]}/vpp"
- DIR[STATIC,DPDK]: "{DIR[STATIC]}/dpdk"
- DIR[STATIC,ARCH]: "{DIR[STATIC]}/archive"
-
- # Detailed test results
- DIR[DTR]: "{DIR[WORKING,SRC]}/detailed_test_results"
- DIR[DTR,PERF,DPDK,3N,HSW]: "{DIR[DTR]}/dpdk_performance_results_3n_hsw"
- DIR[DTR,PERF,DPDK,3N,SKX]: "{DIR[DTR]}/dpdk_performance_results_3n_skx"
- DIR[DTR,PERF,DPDK,2N,SKX]: "{DIR[DTR]}/dpdk_performance_results_2n_skx"
- DIR[DTR,PERF,DPDK,2N,CLX]: "{DIR[DTR]}/dpdk_performance_results_2n_clx"
- DIR[DTR,PERF,DPDK,2N,DNV]: "{DIR[DTR]}/dpdk_performance_results_2n_dnv"
- DIR[DTR,PERF,DPDK,3N,DNV]: "{DIR[DTR]}/dpdk_performance_results_3n_dnv"
- DIR[DTR,PERF,DPDK,3N,TSH]: "{DIR[DTR]}/dpdk_performance_results_3n_tsh"
- DIR[DTR,PERF,VPP,ALL]: "{DIR[DTR]}/vpp_performance_results"
- DIR[DTR,PERF,VPP,3N,HSW]: "{DIR[DTR]}/vpp_performance_results_3n_hsw"
- DIR[DTR,PERF,VPP,3N,SKX]: "{DIR[DTR]}/vpp_performance_results_3n_skx"
- DIR[DTR,PERF,VPP,2N,SKX]: "{DIR[DTR]}/vpp_performance_results_2n_skx"
- DIR[DTR,PERF,VPP,2N,CLX]: "{DIR[DTR]}/vpp_performance_results_2n_clx"
- DIR[DTR,PERF,VPP,3N,TSH]: "{DIR[DTR]}/vpp_performance_results_3n_tsh"
- DIR[DTR,PERF,VPP,3N,DNV]: "{DIR[DTR]}/vpp_performance_results_3n_dnv"
- DIR[DTR,PERF,VPP,2N,DNV]: "{DIR[DTR]}/vpp_performance_results_2n_dnv"
- DIR[DTR,MRR,VPP,ALL]: "{DIR[DTR]}/vpp_mrr_results"
- DIR[DTR,MRR,VPP,3N,HSW]: "{DIR[DTR]}/vpp_mrr_results_3n_hsw"
- DIR[DTR,MRR,VPP,3N,SKX]: "{DIR[DTR]}/vpp_mrr_results_3n_skx"
- DIR[DTR,MRR,VPP,2N,SKX]: "{DIR[DTR]}/vpp_mrr_results_2n_skx"
- DIR[DTR,MRR,VPP,2N,CLX]: "{DIR[DTR]}/vpp_mrr_results_2n_clx"
- DIR[DTR,MRR,VPP,3N,TSH]: "{DIR[DTR]}/vpp_mrr_results_3n_tsh"
- DIR[DTR,MRR,VPP,3N,DNV]: "{DIR[DTR]}/vpp_mrr_results_3n_dnv"
- DIR[DTR,MRR,VPP,2N,DNV]: "{DIR[DTR]}/vpp_mrr_results_2n_dnv"
- DIR[DTR,FUNC,VPP,DEVICE,UBUNTU]: "{DIR[DTR]}/vpp_device_results_ubuntu"
-
- # Detailed test configurations
- DIR[DTC]: "{DIR[WORKING,SRC]}/test_configuration"
- DIR[DTC,PERF,VPP,ALL]: "{DIR[DTC]}/vpp_performance_configuration"
- DIR[DTC,PERF,VPP,3N,HSW]: "{DIR[DTC]}/vpp_performance_configuration_3n_hsw"
- DIR[DTC,PERF,VPP,3N,SKX]: "{DIR[DTC]}/vpp_performance_configuration_3n_skx"
- DIR[DTC,PERF,VPP,2N,SKX]: "{DIR[DTC]}/vpp_performance_configuration_2n_skx"
- DIR[DTC,PERF,VPP,2N,CLX]: "{DIR[DTC]}/vpp_performance_configuration_2n_clx"
- DIR[DTC,PERF,VPP,3N,TSH]: "{DIR[DTC]}/vpp_performance_configuration_3n_tsh"
- DIR[DTC,PERF,VPP,3N,DNV]: "{DIR[DTC]}/vpp_performance_configuration_3n_dnv"
- DIR[DTC,PERF,VPP,2N,DNV]: "{DIR[DTC]}/vpp_performance_configuration_2n_dnv"
- DIR[DTC,MRR,VPP,ALL]: "{DIR[DTC]}/vpp_mrr_configuration"
- DIR[DTC,MRR,VPP,3N,HSW]: "{DIR[DTC]}/vpp_mrr_configuration_3n_hsw"
- DIR[DTC,MRR,VPP,3N,SKX]: "{DIR[DTC]}/vpp_mrr_configuration_3n_skx"
- DIR[DTC,MRR,VPP,2N,SKX]: "{DIR[DTC]}/vpp_mrr_configuration_2n_skx"
- DIR[DTC,MRR,VPP,2N,CLX]: "{DIR[DTC]}/vpp_mrr_configuration_2n_clx"
- DIR[DTC,MRR,VPP,3N,TSH]: "{DIR[DTC]}/vpp_mrr_configuration_3n_tsh"
- DIR[DTC,MRR,VPP,3N,DNV]: "{DIR[DTC]}/vpp_mrr_configuration_3n_dnv"
- DIR[DTC,MRR,VPP,2N,DNV]: "{DIR[DTC]}/vpp_mrr_configuration_2n_dnv"
- DIR[DTC,FUNC,VPP,DEVICE,UBUNTU]: "{DIR[DTC]}/vpp_device_configuration_ubuntu"
-
- # Detailed tests operational data
- DIR[DTO]: "{DIR[WORKING,SRC]}/test_operational_data"
- DIR[DTO,PERF,VPP,ALL]: "{DIR[DTO]}/vpp_performance_operational_data"
- DIR[DTO,PERF,VPP,3N,HSW]: "{DIR[DTO]}/vpp_performance_operational_data_3n_hsw"
- DIR[DTO,PERF,VPP,3N,SKX]: "{DIR[DTO]}/vpp_performance_operational_data_3n_skx"
- DIR[DTO,PERF,VPP,2N,SKX]: "{DIR[DTO]}/vpp_performance_operational_data_2n_skx"
- DIR[DTO,PERF,VPP,2N,CLX]: "{DIR[DTO]}/vpp_performance_operational_data_2n_clx"
- DIR[DTO,PERF,VPP,3N,TSH]: "{DIR[DTO]}/vpp_performance_operational_data_3n_tsh"
- DIR[DTO,PERF,VPP,3N,DNV]: "{DIR[DTO]}/vpp_performance_operational_data_3n_dnv"
- DIR[DTO,PERF,VPP,2N,DNV]: "{DIR[DTO]}/vpp_performance_operational_data_2n_dnv"
-
- # Latencies:
- DIR[LAT,VPP]: "{DIR[WORKING,SRC]}/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs"
- DIR[LAT,DPDK]: "{DIR[WORKING,SRC]}/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs"
-
- # .css patch file to fix tables generated by Sphinx
- DIR[CSS_PATCH_FILE]: "{DIR[STATIC]}/theme_overrides.css"
- DIR[CSS_PATCH_FILE2]: "{DIR[WORKING,SRC,STATIC]}/theme_overrides.css"
-
- urls:
- # Urls where the input files are downloaded from
- URL[JENKINS,CSIT]: "https://jenkins.fd.io/view/csit/job"
- URL[JENKINS,HC]: "https://jenkins.fd.io/view/hc2vpp/job"
- URL[NEXUS,LOG]: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- URL[NEXUS,DOC]: "https://docs.fd.io/csit"
- DIR[NEXUS,DOC]: "report/_static/archive"
-
- make-dirs:
- # List the directories which are created while preparing the environment.
- # All directories MUST be defined in "paths" section.
- - "DIR[WORKING,DATA]"
- - "DIR[STATIC,VPP]"
- - "DIR[STATIC,DPDK]"
- - "DIR[STATIC,ARCH]"
- - "DIR[BUILD,LATEX]"
- - "DIR[WORKING,SRC]"
- - "DIR[WORKING,SRC,STATIC]"
-
- remove-dirs:
- # List the directories which are deleted while cleaning the environment.
- # All directories MUST be defined in "paths" section.
- #- "DIR[BUILD,HTML]"
- - "DIR[WORKING,DATA]"
-
- build-dirs:
- # List the directories where the results (build) is stored.
- # All directories MUST be defined in "paths" section.
- - "DIR[BUILD,HTML]"
- - "DIR[BUILD,LATEX]"
-
-###############################################################################
-#
-# Section: Configuration
-#
-# Specifies:
-# - Limits of NICs, links and PCI buses used by CSIT.
-# - Data sets used by elements specified in this file.
-# - Layouts of plots specified in this file.
-#
-- type: "configuration"
-
- # Limits of NICs, links and PCI buses used by CSIT.
- limits:
- # NIC limits [pps] for 64B packets
- nic:
- x520: 24460000
- x553: 29761905
- x710: 35800000
- xxv710: 35800000
- xl710: 35800000
- cx556a: 60000000
-
- # Link limits [pps] for 64B packets
- link:
- 10ge: 14880952.38
- 25ge: 37202380.95
- 40ge: 59523809.52
- 100ge: 148809523.81
-
- # PCI limits [pps] for 64B packets
- pci:
- pci-g3-x8: 74404761.90
- pci-g3-x16: 148809523.81
-
- # Data sets used by elements specified in this file
- #
- # The structure of a simple data set for a plot is:
- #
- # <name-of-a-data-set>:
- # <jenkins-job>:
- # - <build_1>
- # - <build_2>
- # - ...
- # - <build_n>
- #
- # For example plot using data from three builds:
- #
- # plot-vpp-throughput-lat-tsa-3n-dnv:
- # csit-vpp-perf-verify-2001-3n-dnv:
- # - 5 # NDRPDR sel
- # - 6 # NDRPDR sel
- # - 13 # NDRPDR sel
- #
- # Simple table with one data set is similar to the previous example:
- #
- # vpp-perf-results-3n-hsw:
- # csit-vpp-perf-verify-2001-3n-hsw:
- # - 18 # NDRPDR full
- # - 20 # NDRPDR full
- # - 28 # NDRPDR full
- # - 35 # NDRPDR full
- # - 42 # NDRPDR full
- # - 46 # NDRPDR full
- # - 47 # NDRPDR full
- #
- # Tables with more than one data set:
- #
- # There are three data sub-sets defined in this example:
- # - vpp-performance-changes-3n-hsw-h1
- # - vpp-performance-changes-3n-hsw-ref
- # - vpp-performance-changes-3n-hsw-cmp
- # And then a fourth one:
- # - vpp-performance-changes-3n-hsw
- # which includes the previous three sub-sets.
- # These data sets are used for tables which compares performance of current
- # released version (2001) to the previous one (1908) and adds one old
- # version (1904).
- #
- # vpp-performance-changes-3n-hsw-h1:
- # csit-vpp-perf-verify-1904-3n-hsw:
- # - 11 # NDRPDR sel
- # - 12 # NDRPDR sel
- # - 20 # NDRPDR sel
- # - 21 # NDRPDR sel
- # - 23 # NDRPDR sel
- # - 24 # NDRPDR sel
- # - 25 # NDRPDR sel
- # - 26 # NDRPDR sel
- # - 29 # NDRPDR sel
- # - 30 # NDRPDR sel
- # vpp-performance-changes-3n-hsw-ref:
- # csit-vpp-perf-verify-1908-3n-hsw:
- # - 12 # NDRPDR sel
- # - 13 # NDRPDR sel
- # - 14 # NDRPDR sel
- # - 15 # NDRPDR sel
- # - 16 # NDRPDR sel
- # - 17 # NDRPDR sel
- # - 18 # NDRPDR sel
- # - 19 # NDRPDR sel
- # - 20 # NDRPDR sel
- # - 21 # NDRPDR sel
- # vpp-performance-changes-3n-hsw-cmp:
- # csit-vpp-perf-verify-2001-3n-hsw:
- # - 21 # NDRPDR sel
- # - 22 # NDRPDR sel
- # - 23 # NDRPDR sel
- # - 24 # NDRPDR sel
- # - 25 # NDRPDR sel
- # - 29 # NDRPDR sel
- # - 30 # NDRPDR sel
- # - 31 # NDRPDR sel
- # - 32 # NDRPDR sel
- # - 34 # NDRPDR sel
- # vpp-performance-changes-3n-hsw:
- # - "vpp-performance-changes-3n-hsw-h1"
- # - "vpp-performance-changes-3n-hsw-ref"
- # - "vpp-performance-changes-3n-hsw-cmp"
- #
- data-sets:
-
- # Data sets used in the examples below:
- plot-vpp-throughput-lat-tsa-3n-dnv:
- csit-vpp-perf-verify-2001-3n-dnv:
- - 1 # NDRPDR sel
- - 2 # NDRPDR sel
- - 3 # NDRPDR sel
-
- vpp-perf-results-3n-dnv:
- csit-vpp-perf-verify-2001-3n-dnv:
- - 1 # NDRPDR sel
-
- plot-vpp-throughput-lat-tsa-2n-clx:
- csit-vpp-perf-verify-2001-2n-clx:
- - 1 # NDRPDR sel
- - 2 # NDRPDR sel
-
- vpp-perf-results-2n-clx:
- csit-vpp-perf-verify-2001-2n-clx:
- - 1 # NDRPDR sel
-
- plot-vpp-hdrh-lat-2n-clx:
- csit-vpp-perf-verify-2001-2n-clx:
- - 1 # NDRPDR sel
-
- # Layouts of plots specified in this file.
- #
- # There are defined layouts fro plots generated by plot.ly
- # The layouts are created using information from plot.ly reference:
- # https://plot.ly/python/reference/
- # These layout are directly used, however, in some cases are changed
- # or added some of their parts, e.g.:
- # - titles (graph title, axes,...),
- # - ranges,
- # - legends,
- # - annotations, ...
- #
- # For more information see plot.ly web pages.
- #
- plot-layouts:
-
- plot-soak-throughput:
- titlefont:
- size: 18
- xaxis:
- title: "<b>Test Cases [Index]</b>"
- titlefont:
- size: 16
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 16
- zeroline: False
- yaxis:
- title: "<b>Critical Rate Lower Bound [Mpps]</b>"
- titlefont:
- size: 16
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4r"
- tickformat: ".3r"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickfont:
- size: 16
- zeroline: False
- range: [0,50]
- autosize: False
- margin:
- t: 50
- b: 0
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 16
- width: 700
- height: 900
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-service-density:
- titlefont:
- size: 18
- xaxis:
- side: "top"
- autorange: True
- fixedrange: False
- showgrid: False
- showline: False
- showticklabels: False
- ticks: ""
- ticklen: 0
- tickwidth: 0
- zeroline: False
- yaxis:
- autorange: "reversed"
- showgrid: False
- showline: False
- showticklabels: False
- ticks: ""
- ticklen: 0
- tickwidth: 0
- zeroline: False
- showlegend: False
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- width: 700
- height: 700
- hoverlabel:
- namelength: -1
-
- plot-cps:
- titlefont:
- size: 18
- xaxis:
- title: "<b>Test Cases [Index]</b>"
- titlefont:
- size: 16
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 16
- zeroline: False
- yaxis:
- title: "<b>Connections Per Second [cps]</b>"
- titlefont:
- size: 16
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4s"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- rangemode: "tozero"
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickformat: ".3s"
- tickfont:
- size: 16
- zeroline: False
- boxmode: "group"
- boxgroupgap: 0.5
- autosize: False
- margin:
- t: 50
- b: 20
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 16
- width: 700
- height: 800
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-rps:
- titlefont:
- size: 18
- xaxis:
- title: "<b>Test Cases [Index]</b>"
- titlefont:
- size: 16
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 16
- zeroline: False
- yaxis:
- title: "<b>Requests Per Second [rps]</b>"
- titlefont:
- size: 16
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4s"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- rangemode: "tozero"
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(230, 230, 230)"
- tickformat: ".3s"
- tickfont:
- size: 16
- zeroline: False
- boxmode: "group"
- boxgroupgap: 0.5
- autosize: False
- margin:
- t: 50
- b: 20
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 16
- width: 700
- height: 800
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-throughput:
- titlefont:
- size: 18
- xaxis:
- title: "<b>Test Cases [Index]</b>"
- titlefont:
- size: 16
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 16
- zeroline: False
- yaxis:
- title: "<b>Packet Throughput [Mpps]</b>"
- titlefont:
- size: 16
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4r"
- tickformat: ".3r"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickfont:
- size: 16
- zeroline: False
- range: [0,50]
- autosize: False
- margin:
- t: 50
- b: 0
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 16
- width: 700
- height: 900
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-throughput-speedup-analysis:
- titlefont:
- size: 18
- xaxis:
- title: "<b>Number of Cores [Qty]</b>"
- titlefont:
- size: 16
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(238, 238, 238)"
- tickmode: "linear"
- tickfont:
- size: 16
- zeroline: False
- yaxis:
- title: "<b>Packet Throughput [Mpps]</b>"
- titlefont:
- size: 16
- type: "linear"
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4s"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickformat: ".4s"
- tickfont:
- size: 16
- zeroline: True
- rangemode: "tozero"
- range: [0,100]
- legend:
- orientation: "h"
- font:
- size: 16
- xanchor: "left"
- yanchor: "top"
- x: 0
- y: -0.2
- bgcolor: "rgba(255, 255, 255, 0)"
- bordercolor: "rgba(255, 255, 255, 0)"
- traceorder: "normal" # "grouped" does not work: bug https://github.com/plotly/plotly.js/issues/1913
- autosize: False
- margin:
- 't': 50
- 'b': 150
- 'l': 85
- 'r': 10
- showlegend: True
- width: 700
- height: 700
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
- annotations: [
- {
- text: "_ _ __ ...",
- align: "left",
- showarrow: False,
- xref: "paper",
- yref: "paper",
- xanchor: "left",
- yanchor: "top",
- x: 0,
- y: -0.13,
- font: {
- family: "Consolas, Courier New",
- size: 15
- },
- },
- {
- text: " Perfect Measured Limit",
- align: "left",
- showarrow: False,
- xref: "paper",
- yref: "paper",
- xanchor: "left",
- yanchor: "top",
- x: 0,
- y: -0.15,
- font: {
- family: "Consolas, Courier New",
- size: 15
- },
- },
- ]
-
- plot-latency:
- titlefont:
- size: 18
- xaxis:
- title: "<b>Direction</b>"
- titlefont:
- size: 16
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: False
- tickcolor: "rgb(220, 220, 220)"
- tickmode: "linear"
- tickfont:
- size: 16
- zeroline: False
- yaxis:
- title: "<b>Packet Latency [uSec]</b>"
- titlefont:
- size: 16
- type: "linear"
- gridcolor: "rgb(230, 230, 230)"
- hoverformat: ".4s"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickformat: ".4s"
- tickfont:
- size: 16
- zeroline: True
- rangemode: "tozero"
- legend:
- orientation: "h"
- font:
- size: 16
- traceorder: "normal" # "grouped" does not work: bug https://github.com/plotly/plotly.js/issues/1913
- autosize: False
- margin:
- 't': 50
- 'b': 150
- 'l': 80
- 'r': 10
- showlegend: True
- width: 700
- height: 700
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
- plot-hdrh-latency:
- title:
- text: ""
- xanchor: "center"
- x: 0.5
- font:
- size: 16
- width: 700
- plot_bgcolor: "white"
- annotations:
- - font:
- size: 14
- showarrow: False
- text: "<b>Packet Latency [uSec]</b>"
- x: 1
- xanchor: "right"
- xref: "paper"
- y: -0.045
- yanchor: "top"
- yref: "paper"
- - font:
- size: 14
- showarrow: False
- text: "<b>Probability [%]</b>"
- textangle: 270
- x: -0.06
- xanchor: "center"
- xref: "paper"
- y: 0.5
- yanchor: "middle"
- yref: "paper"
- - font:
- size: 14
- showarrow: False
- text: "<b>Direction: E-W</b>"
- x: 0.24
- xanchor: "center"
- xref: "paper"
- y: 1.05
- yanchor: "bottom"
- yref: "paper"
- - font:
- size: 14
- showarrow: False
- text: "<b>Direction: W-E</b>"
- x: 0.74
- xanchor: "center"
- xref: "paper"
- y: 1.05
- yanchor: "bottom"
- yref: "paper"
-
- plot-hdrh-latency-percentile:
- title:
- text: ""
- xanchor: "center"
- x: 0.5
- font:
- size: 18
- xaxis:
- type: "log"
- title: "<b>Percentile [%]</b>"
- titlefont:
- size: 16
- autorange: True
- fixedrange: False
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickvals: [1, 2, 1e1, 20, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8]
- ticktext: [0, 50, 90, 95, 99, 99.9, 99.99, 99.999, 99.9999, 99.99999, 99.999999]
- tickfont:
- size: 16
- yaxis:
- title: "<b>Packet Latency [uSec]</b>"
- titlefont:
- size: 16
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickfont:
- size: 16
- autosize: False
- showlegend: True
- legend:
- traceorder: "normal"
- orientation: "h"
- font:
- size: 16
- xanchor: "left"
- yanchor: "top"
- x: 0
- y: -0.15
- bgcolor: "rgba(255, 255, 255, 0)"
- bordercolor: "rgba(255, 255, 255, 0)"
- width: 700
- height: 700
- paper_bgcolor: "white"
- plot_bgcolor: "white"
-
- plot-hdrh-latency-by-percentile:
- title:
- text: "<b>Latency by Percentile Distribution</b>"
- xanchor: "center"
- x: 0.5
- font:
- size: 18
- showlegend: True
- legend:
- traceorder: "normal"
- orientation: "h"
- font:
- size: 16
- xanchor: "left"
- yanchor: "top"
- x: 0
- y: -0.2
- bgcolor: "rgba(255, 255, 255, 0)"
- bordercolor: "rgba(255, 255, 255, 0)"
- xaxis:
- type: "linear"
- title: "<b>Percentile [%]</b>"
- titlefont:
- size: 14
- autorange: False
- fixedrange: False
- range: [0, 100]
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickvals: [0, 25, 50, 75, 100]
- ticktext: [0, 25, 50, 75, 100]
- tickfont:
- size: 14
- yaxis:
- title: "<b>One-Way Latency per Direction [uSec]</b>"
- titlefont:
- size: 14
- gridcolor: "rgb(230, 230, 230)"
- linecolor: "rgb(220, 220, 220)"
- linewidth: 1
- showgrid: True
- showline: True
- showticklabels: True
- tickcolor: "rgb(220, 220, 220)"
- tickfont:
- size: 14
- width: 700
- height: 700
- paper_bgcolor: "white"
- plot_bgcolor: "white"
-
-###############################################################################
-#
-# Section: Static content
-#
-# Specifies the source of the static content. PAL copies it from source
-# directory to the destination directory and then modifies only the copy.
-#
-- type: "static"
- src-path: "{DIR[RST]}"
- dst-path: "{DIR[WORKING,SRC]}"
-
-###############################################################################
-#
-# Section: Inputs
-#
-# Specifies the data sources.
-#
-- type: "input"
- general:
- # Specifies the primary source - nexus
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- arch-file-format:
- - ".gz"
- - ".zip"
- download-path: "{job}/{build}/archives/{filename}"
- extract: "output.xml"
-
- # Specifies the secondary source - Jenkins, it is used if the source file
- # is not found in the primary source
- zip-file-name: "robot-plugin.zip"
- zip-file-format: ".zip"
- zip-download-path: "{job}/{build}/robot/report/*zip*/{filename}"
- zip-extract: "robot-plugin/output.xml"
-
- builds:
-
- # Build to be downloaded.
- #
- # The structure is:
- #
- # jenkins-job-1:
- # - build_1
- # - build_2
- # - ...
- # - build_n
- #
- # jenkins-job-m:
- # - build_1
- # - build_2
- # - ...
- # - build_n
- #
- # You can specify as many jobs and builds as needed.
- # This section is ignored when local sources (files and/or directories)
- # are specified from the command line.
-
- csit-vpp-perf-verify-2001-2n-clx:
- - 1 # NDRPDR sel
- - 2 # NDRPDR sel
-
- csit-vpp-perf-verify-2001-3n-dnv:
- - 1 # NDRPDR sel
- - 2 # NDRPDR sel
- - 3 # NDRPDR sel
-
-###############################################################################
-#
-# Section: Outputs
-#
-# Specification of outputs.
-#
-# Possible outputs are:
-# - report - a CSIT Report is generated
-# - trending -a CSIT Trending is generated
-# - none - nothing is generated, only element specified in the following
-# section.
-#
-# format:
-# - html - html version is generated using sphinx
-# - pdf - pdf version is generated using Latex (only report)
-#
-- type: "output"
- output: "report"
- format:
- html:
- - full
-# pdf:
-# - minimal
-
-###############################################################################
-#
-# Section: Specifications of elements
-#
-# These elements can be specified:
-# - table
-# - file
-# - plot
-#
-# The configuration of elements depends on the ALGORITHM used to generate it.
-# See examples below:
-#
-# Plots
-#
-# - type: "plot"
- # title: a string used in logs to identify the element, there must be
- # specified the type of data to be presented at the end: ndr/pdr/mrr
-# title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- # algorithm: The algorithm used to generate this element.
-# algorithm: "plot_perf_box_name"
- # output-file: The result is written to this file.
-# output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- # data: The data set, it must be specified in configuration --> data-sets
-# data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- # include: A List of tests to publish in the graph
- # the number of test (e.g. tc01-) is removed and information about nr of
- # threads is added (e.g. -1c- --> -1t1c-), see below.
-# include:
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
-# layout:
- # The title displayed in the generated graph
-# title: "3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- # The layout used to generate the plot.ly graph. It must be specified in
- # configuration --> plot-layouts
-# layout: "plot-throughput"
-#
-#
-# - type: "plot"
- # title: a string used in logs to identify the element, there must be
- # specified the type of data to be presented at the end: ndr/pdr/mrr
-# title: "Speedup: 3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- # algorithm: The algorithm used to generate this element.
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
-# data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- # include: A List of tests to publish in the graph
- # As all threads/cores combinations are used, the info about it is
- # specified this way: -.t.c-
-# include:
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
-# layout:
-# title: "3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
-# layout: "plot-throughput-speedup-analysis"
-#
-#
-# - type: "plot"
-# title: "Latency by percentile: DPDK 3n-tsh"
- # algorithm: The algorithm used to generate this element.
- # This algorithm generates graphs for all tests in the data set specified
- # by filter.
-# algorithm: "plot_hdrh_lat_by_percentile"
-# output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-3n-tsh"
- # output-file-links: here are written links to all generated plots
-# output-file-links: "{DIR[LAT,DPDK]}/3n_tsh.rst"
- # target-links: the prefix added to links
-# target-links: "../../_static/dpdk"
-# data: "plot-dpdk-hdrh-lat-3n-tsh"
- # The logical expression defining the tests to be used. It consists of
- # tags enclosed in apostrophes and logical operators.
-# filter: "'1T1C' and 'NIC_Intel-X520-DA2'"
-# layout:
-# layout: "plot-hdrh-latency-by-percentile"
-#
-#
-# - type: "plot"
-# title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
-# algorithm: "plot_nf_heatmap"
-# output-file-type: ".html"
-# output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-8t4c-base-vsc-vxlan-ndr"
-# data: "plot-vpp-nfv-2n-clx-ndrpdr"
-# filter: "'NIC_Intel-XXV710' and
-# 'NF_DENSITY' and
-# 'VHOST' and
-# 'VXLAN' and
-# 'CHAIN' and
-# 'IMIX' and
-# '8T4C' and
-# 'NDRPDR'"
-# parameters:
-# - "throughput"
-# - "name"
-# - "tags"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# x-axis: "X = VNFs per Service Chain"
-# y-axis: "Y = Number of Service Chains"
-# z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
-# layout:
-# title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-ndr"
-# layout: "plot-service-density"
-#
-#
-# Tables
-#
-# - type: "table"
-# title: "Detailed Test Results - VPP Performance Results 3n-dnv"
- # algorithm: The algorithm used to generate this element.
-# algorithm: "table_merged_details"
-# output-file: "{DIR[DTR,PERF,VPP,3N,DNV]}/vpp_performance_results_3n_dnv"
- # columns: Specification of columns
- # title: column title
- # data: string with two parts, 'data' means use data from data set, the second
- # part specifies which data - name: test name, msg - test message,
- # conf-history - configuration history,
-# columns:
-# - title: " |prein| Test Name |preout| "
-# data: "data name"
-# - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
-# data: "data msg"
-# data: "vpp-perf-results-3n-dnv"
-# filter: "all"
-# # parameters: test parameters from the source file used to generate this
- # element.
-# parameters:
-# - "name"
-# - "parent"
-# - "msg"
-#
-#
-# - type: "table"
-# title: "Test Operational Data - VPP Performance Operational Data 3n-dnv"
- # algorithm: The algorithm used to generate this element.
-# algorithm: "table_oper_data_html"
-# output-file: "{DIR[DTO,PERF,VPP,3N,DNV]}/vpp_test_operational_3n_dnv"
-# data: "vpp-perf-results-3n-dnv"
-# filter: "all"
-#
-#
-# Files
-#
-# VPP Performance Results 3n-dnv
-# - type: "file"
-# title: "VPP Performance Results 3n-dnv"
- # algorithm: The algorithm used to generate this element.
-# algorithm: "file_test_results"
-# output-file: "{DIR[DTR,PERF,VPP,3N,DNV]}"
- # dir-tables: The directory where the tables for file(s) are stored.
-# dir-tables: "{DIR[DTR,PERF,VPP,3N,DNV]}"
-# data: "vpp-perf-results-3n-dnv"
-# filter: "all"
- # data-start-level: The starting level in RF output.xml file.
- # E.g.: the top level chapter for
- # Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr
- # is Ip6
-# data-start-level: 4
-#
-#
-# - type: "file"
-# title: "VPP Performance Results"
- # algorithm: The algorithm used to generate this element.
-# algorithm: "file_details_split"
-# output-file: "{DIR[DTR,PERF,VPP,ALL]}"
- # dir-tables: The list of directories where the tables for files are
- # stored.
-# dir-tables:
-# - "{DIR[DTR,PERF,VPP,2N,SKX]}"
-# - "{DIR[DTR,PERF,VPP,3N,SKX]}"
-# - "{DIR[DTR,PERF,VPP,2N,CLX]}"
-# - "{DIR[DTR,PERF,VPP,3N,HSW]}"
-# - "{DIR[DTR,PERF,VPP,3N,TSH]}"
-# - "{DIR[DTR,PERF,VPP,2N,DNV]}"
-# - "{DIR[DTR,PERF,VPP,3N,DNV]}"
- # data: Data used to generate the files
- # The order of these data sets must be the same as the order in
- # 'dir-tables'.
-# data:
-# - "vpp-perf-results-2n-skx"
-# - "vpp-perf-results-3n-skx"
-# - "vpp-perf-results-2n-clx"
-# - "vpp-perf-results-3n-hsw"
-# - "vpp-perf-results-3n-tsh"
-# - "vpp-perf-results-2n-dnv"
-# - "vpp-perf-results-3n-dnv"
-# filter: "all"
-# data-start-level: 4
- # order-chapters: The order of chapters in generated file structure.
- # There are three levels and each has its own order of chapters.
-# order-chapters:
-# level-1:
-# - "l2"
-# - "ip4"
-# - "ip6"
-# - "srv6"
-# - "ip4_tunnels"
-# - "ip6_tunnels"
-# - "vm_vhost"
-# - "container_memif"
-# - "crypto"
-# - "vts"
-# - "lb"
-# - "nfv_density"
-# - "hoststack"
-# level-2:
-# - "2n-skx"
-# - "3n-skx"
-# - "2n-clx"
-# - "3n-hsw"
-# - "3n-tsh"
-# - "2n-dnv"
-# - "3n-dnv"
-# level-3:
-# - "xl710"
-# - "x520"
-# - "xxv710"
-# - "x710"
-# - "x553"
-# - "cx556a"
-# - "vic1227"
-# - "vic1385"
-
-###############################################################################
-# Example:
-#
-# We have this directory structure of input XML files:
-#
-# local
-# ├── csit-vpp-perf-verify-2001-2n-clx
-# │   ├── csit-vpp-perf-verify-2001-2n-clx__28__output_info.xml
-# │   └── csit-vpp-perf-verify-2001-2n-clx__29__output_info.xml
-# └── csit-vpp-perf-verify-2001-3n-dnv
-# ├── csit-vpp-perf-verify-2001-3n-dnv__5__output_info.xml
-# ├── csit-vpp-perf-verify-2001-3n-dnv__6__output_info.xml
-# └── csit-vpp-perf-verify-2001-3n-dnv__7__output_info.xml
-#
-# We created the data sets which you can find in configuration --> data-sets
-# section.
-#
-# Using models below, we generate tables, files and plots. Then we generate
-# the report. It is specified in the output section.
-#
-# Use this command to run it:
-# ./run_report_local.sh --directory local/
-#
-
-# Tables:
-
-# Detailed Test Results - VPP Performance Results 3n-dnv
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 3n-dnv"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,3N,DNV]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-3n-dnv"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Test configuration - VPP Performance Test Configs 3n-dnv
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 3n-dnv"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,3N,DNV]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-3n-dnv"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test Operational Data - VPP Performance Operational Data 3n-dnv
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 3n-dnv"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,3N,DNV]}/"
- data: "vpp-perf-results-3n-dnv"
- filter: "all"
-
-# Detailed Test Results - VPP Performance Results 2n-clx
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 2n-clx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,2N,CLX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Throughput: |br| 1. Mpps Gbps (NDR) |br| 2. Mpps Gbps (PDR) |br| |br| One-Way Latency Percentiles in uSec at %PDR load, |br| one set per each direction: |br| 3. P50 P90 P99 P50 P90 P99 (10% PDR) |br| 4. P50 P90 P99 P50 P90 P99 (50% PDR) |br| 5. P50 P90 P99 P50 P90 P99 (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-perf-results-2n-clx"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Test configuration - VPP Performance Test Configs 2n-clx
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 2n-clx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,2N,CLX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| VPP API Test Commands History - Commands Used Per Test Case |preout| "
- data: "data conf-history"
- data: "vpp-perf-results-2n-clx"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test Operational Data - VPP Performance Operational Data 2n-clx
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 2n-clx"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,2N,CLX]}/"
- data: "vpp-perf-results-2n-clx"
- filter: "all"
-
-
-# Files:
-
-# VPP Performance Results
-- type: "file"
- title: "VPP Performance Results"
- algorithm: "file_details_split"
- output-file: "{DIR[DTR,PERF,VPP,ALL]}"
- dir-tables:
- - "{DIR[DTR,PERF,VPP,2N,CLX]}"
- - "{DIR[DTR,PERF,VPP,3N,DNV]}"
- data:
- - "vpp-perf-results-2n-clx"
- - "vpp-perf-results-3n-dnv"
- filter: "all"
- data-start-level: 4
- order-chapters:
- level-1:
- - "l2"
- - "ip4"
- - "ip6"
- - "srv6"
- - "ip4_tunnels"
- - "ip6_tunnels"
- - "vm_vhost"
- - "container_memif"
- - "crypto"
- - "vts"
- - "lb"
- - "nfv_density"
- - "hoststack"
- level-2:
- - "2n-skx"
- - "3n-skx"
- - "2n-clx"
- - "3n-hsw"
- - "3n-tsh"
- - "2n-dnv"
- - "3n-dnv"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
-
-# VPP Performance Configuration
-- type: "file"
- title: "VPP Performance Configuration"
- algorithm: "file_details_split"
- output-file: "{DIR[DTC,PERF,VPP,ALL]}"
- dir-tables:
- - "{DIR[DTC,PERF,VPP,2N,CLX]}"
- - "{DIR[DTC,PERF,VPP,3N,DNV]}"
- data:
- - "vpp-perf-results-2n-clx"
- - "vpp-perf-results-3n-dnv"
- filter: "all"
- data-start-level: 4
- order-chapters:
- level-1:
- - "l2"
- - "ip4"
- - "ip6"
- - "srv6"
- - "ip4_tunnels"
- - "ip6_tunnels"
- - "vm_vhost"
- - "container_memif"
- - "crypto"
- - "vts"
- - "lb"
- - "nfv_density"
- - "hoststack"
- level-2:
- - "2n-skx"
- - "3n-skx"
- - "2n-clx"
- - "3n-hsw"
- - "3n-tsh"
- - "2n-dnv"
- - "3n-dnv"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
-
-# VPP Performance Operational
-- type: "file"
- title: "VPP Performance Operational"
- algorithm: "file_details_split_html"
- output-file: "{DIR[DTO,PERF,VPP,ALL]}"
- dir-tables:
- - "{DIR[DTO,PERF,VPP,2N,CLX]}"
- - "{DIR[DTO,PERF,VPP,3N,DNV]}"
- data:
- - "vpp-perf-results-2n-clx"
- - "vpp-perf-results-3n-dnv"
- filter: "all"
- data-start-level: 4
- order-chapters:
- level-1:
- - "l2"
- - "ip4"
- - "ip6"
- - "srv6"
- - "ip4_tunnels"
- - "ip6_tunnels"
- - "vm_vhost"
- - "container_memif"
- - "crypto"
- - "vts"
- - "lb"
- - "nfv_density"
- - "hoststack"
- level-2:
- - "2n-skx"
- - "3n-skx"
- - "2n-clx"
- - "3n-hsw"
- - "3n-tsh"
- - "2n-dnv"
- - "3n-dnv"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
-
-
-# Plots:
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-1t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-1t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-1t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-1t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-ip4routing-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-1t1c-ethip4udp-ip4base-nat44-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-1t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-1t1c-ethip4udp-ip4base-nat44-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-features-ip4routing-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-1t1c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-1t1c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-ip4tunnel-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-1t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-1t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-1t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-1t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-1t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-78b-1t1c-ip6routing-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-dnv-x553-imix-1t1c-ipsec-ip4routing-base-scale-sw-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-1t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-l2switching-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-1t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-1t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-l2switching-base-scale-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-ndr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-pdr"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-1t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-1t1c-features-l2switching-base-ixgbe-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-.t.c-ethip4udp-ip4base-nat44-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-features-ip4routing-base-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-.t.c-ethip4udp-ip4base-nat44-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-features-ip4routing-base-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale1L2Bd1Vlan1Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Dot1Q--Ethip4Vxlan-L2Bdscale100L2Bd100Vlan100Vxlan-Ndrpdr.64B-.t.c-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-ip4tunnel-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-l2switching-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-l2switching-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-l2switching-base-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-l2switching-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-l2switching-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-l2switching-base-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-l2switching-base-scale-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-l2switching-base-scale-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-features-l2switching-base-ixgbe-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-features-l2switching-base-ixgbe-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-features-l2switching-base-ixgbe-ndr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-features-l2switching-base-ixgbe-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-features-l2switching-base-ixgbe-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-3n-dnv"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-features-l2switching-base-ixgbe-pdr-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-memif-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-memif-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-eth-2memif-1dcr-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-scale-avf-rnd-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-ip4routing-scale-dpdk-rnd-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-2t1c-ethip4udp-ip4base-nat44-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-2t1c-ethip4udp-ip4base-nat44-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-features-ip4routing-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ip4base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ip4base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ip4base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ip4base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ip4base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-2t1c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-2t1c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ip4base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-2t1c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-ip4scale-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-nat44-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Scale1000-Udpsrcscale15-Nat44-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4base-nat44-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Scale1000-Udpsrcscale15-Nat44-Ndrpdr.64B-2t1c-rdma-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-ethip4-features-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-2t1c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-2t1c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-2t1c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-cx556a-78b-2t1c-rdma-ip6routing-base-scale-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-2t1c-l2switching-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-2t1c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-2t1c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-2t1c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-2t1c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-2t1c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-2t1c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-2t1c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2switching-scale-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-2t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-2t1c-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-base-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-ndr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-rdma-l2-vhost-vppl2xc-base-pdr"
- layout: "plot-throughput"
-
-################################################################################
-
-# Packet Speedup
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-memif-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-memif-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-memif-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-memif-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-memif-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-memif-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-scale-avf-rnd-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-scale-dpdk-rnd-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-features-ip4routing-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-.t.c-ethip4udp-ip4base-nat44-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-features-ip4routing-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-features-ip4routing-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-.t.c-ethip4udp-ip4base-nat44-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-features-ip4routing-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ip4base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ip4base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ip4base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ip4base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ip4base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-.t.c-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-rdma-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ip4base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ethip4-ip4scale-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ethip4-ip4scale-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ethip4-ip4scale-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ethip4-ip4scale-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ethip4-features-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ethip4-features-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-nat44-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Scale1000-Udpsrcscale15-Nat44-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ethip4-features-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ethip4-features-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ethip4-features-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Nat44-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4base-nat44-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Scale1000-Udpsrcscale15-Nat44-Ndrpdr.64B-.t.c-rdma-ethip4udp-ip4scale1000-udpsrcscale15-nat44-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-ethip4-features-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-78b-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-x710-78b-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-78b-rdma-ip6routing-base-scale-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-cx556a-78b-rdma-ip6routing-base-scale-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-78b-rdma-ip6routing-base-scale-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-.t.c-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-clx-cx556a-78b-rdma-ip6routing-base-scale-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-l2switching-base-scale-[avf,dpdk]-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-l2switching-base-scale-[avf,dpdk]-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-l2switching-base-scale-[avf,dpdk]-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-l2switching-base-scale-[avf,dpdk]-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-l2switching-base-scale-[avf,dpdk]-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-l2switching-base-scale-[avf,dpdk]-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-scale-avf-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-scale-avf-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-scale-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-l2switching-base-scale-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2switching-base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2switching-base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-.t.c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2switching-base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2switching-base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2switching-base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-.t.c-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2switching-base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2switching-scale-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2switching-scale-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2switching-scale-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2switching-scale-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2switching-scale-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2switching-scale-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-dpdk-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-dpdk-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-dpdk-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-dpdk-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-dpdk-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-dpdk-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-dpdk-vpp-ndr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-dpdk-vpp-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-dpdk-vpp-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-dpdk-vpp-pdr"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-dpdk-vpp-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-dpdk-vpp-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-vhost-base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-vhost-base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2-vhost-base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-vhost-base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-vhost-base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-rdma-l2-vhost-base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-vhost-vppl2xc-base-ndr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-2t1c-l2-vhost-vppl2xc-base-ndr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-l2-vhost-vppl2xc-base-pdr-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-l2-vhost-vppl2xc-base-pdr-tsa"
- data: "plot-vpp-throughput-lat-tsa-2n-clx"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-.t.c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-l2-vhost-vppl2xc-base-pdr"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Latency by percentile: 2n-clx"
- algorithm: "plot_hdrh_lat_by_percentile"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-2n-clx"
- output-file-links: "{DIR[LAT,VPP]}/2n_clx.rst"
- target-links: "../../_static/vpp"
- data: "plot-vpp-hdrh-lat-2n-clx"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-by-percentile"
diff --git a/resources/tools/presentation/specification_parser.py b/resources/tools/presentation/specification_parser.py
deleted file mode 100644
index 5a88a7ba0d..0000000000
--- a/resources/tools/presentation/specification_parser.py
+++ /dev/null
@@ -1,911 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Specification
-
-Parsing of the specification YAML file.
-"""
-
-
-import logging
-from pprint import pformat
-
-from yaml import load, FullLoader, YAMLError
-
-from pal_errors import PresentationError
-from pal_utils import (
- get_last_successful_build_nr, get_last_completed_build_number
-)
-
-
-class Specification:
- """Specification of Presentation and analytics layer.
-
- - based on specification specified in the specification YAML file
- - presentation and analytics layer is model driven
- """
-
- # Tags are used in specification YAML file and replaced while the file is
- # parsed.
- TAG_OPENER = u"{"
- TAG_CLOSER = u"}"
-
- def __init__(self, cfg_file):
- """Initialization.
-
- :param cfg_file: File handler for the specification YAML file.
- :type cfg_file: BinaryIO
- """
- self._cfg_file = cfg_file
- self._cfg_yaml = None
-
- self._specification = {
- u"environment": dict(),
- u"configuration": dict(),
- u"static": dict(),
- u"input": dict(),
- u"output": dict(),
- u"tables": list(),
- u"plots": list(),
- u"files": list(),
- u"cpta": dict()
- }
-
- @property
- def specification(self):
- """Getter - specification.
-
- :returns: Specification.
- :rtype: dict
- """
- return self._specification
-
- @property
- def environment(self):
- """Getter - environment.
-
- :returns: Environment specification.
- :rtype: dict
- """
- return self._specification[u"environment"]
-
- @property
- def configuration(self):
- """Getter - configuration.
-
- :returns: Configuration of PAL.
- :rtype: dict
- """
- return self._specification[u"configuration"]
-
- @property
- def static(self):
- """Getter - static content.
-
- :returns: Static content specification.
- :rtype: dict
- """
- return self._specification[u"static"]
-
- @property
- def mapping(self):
- """Getter - Mapping.
-
- :returns: Mapping of the old names of test cases to the new (actual)
- one.
- :rtype: dict
- """
- return self._specification[u"configuration"][u"mapping"]
-
- @property
- def ignore(self):
- """Getter - Ignore list.
-
- :returns: List of ignored test cases.
- :rtype: list
- """
- return self._specification[u"configuration"][u"ignore"]
-
- @property
- def alerting(self):
- """Getter - Alerting.
-
- :returns: Specification of alerts.
- :rtype: dict
- """
- return self._specification[u"configuration"][u"alerting"]
-
- @property
- def input(self):
- """Getter - specification - inputs.
- - jobs and builds.
-
- :returns: Inputs.
- :rtype: dict
- """
- return self._specification[u"input"]
-
- @input.setter
- def input(self, new_value):
- """Setter - specification - inputs.
-
- :param new_value: New value to be set.
- :type new_value: dict
- """
- self._specification[u"input"] = new_value
-
- @property
- def builds(self):
- """Getter - builds defined in specification.
-
- :returns: Builds defined in the specification.
- :rtype: dict
- """
- return self.input[u"builds"]
-
- @builds.setter
- def builds(self, new_value):
- """Setter - builds defined in specification.
-
- :param new_value: New value to be set.
- :type new_value: dict
- """
- self.input[u"builds"] = new_value
-
- def add_build(self, job, build):
- """Add a build to the specification.
-
- :param job: The job which run the build.
- :param build: The build to be added.
- :type job: str
- :type build: dict
- """
- if self._specification[u"input"][u"builds"].get(job, None) is None:
- self._specification[u"input"][u"builds"][job] = list()
- self._specification[u"input"][u"builds"][job].append(build)
-
- @property
- def output(self):
- """Getter - specification - output formats and versions to be generated.
- - formats: html, pdf
- - versions: full, ...
-
- :returns: Outputs to be generated.
- :rtype: dict
- """
- return self._specification[u"output"]
-
- @property
- def tables(self):
- """Getter - tables to be generated.
-
- :returns: List of specifications of tables to be generated.
- :rtype: list
- """
- return self._specification[u"tables"]
-
- @property
- def plots(self):
- """Getter - plots to be generated.
-
- :returns: List of specifications of plots to be generated.
- :rtype: list
- """
- return self._specification[u"plots"]
-
- @property
- def files(self):
- """Getter - files to be generated.
-
- :returns: List of specifications of files to be generated.
- :rtype: list
- """
- return self._specification[u"files"]
-
- @property
- def cpta(self):
- """Getter - Continuous Performance Trending and Analysis to be
- generated.
-
- :returns: List of specifications of Continuous Performance Trending and
- Analysis to be generated.
- :rtype: list
- """
- return self._specification[u"cpta"]
-
- def set_input_state(self, job, build_nr, state):
- """Set the state of input
-
- :param job: Job name.
- :param build_nr: Build number.
- :param state: The new input state.
- :type job: str
- :type build_nr: int
- :type state: str
- :raises: PresentationError if wrong job and/or build is provided.
- """
-
- try:
- for build in self._specification[u"input"][u"builds"][job]:
- if build[u"build"] == build_nr:
- build[u"status"] = state
- break
- else:
- raise PresentationError(
- f"Build {build_nr} is not defined for job {job} in "
- f"specification file."
- )
- except KeyError:
- raise PresentationError(
- f"Job {job} and build {build_nr} is not defined in "
- f"specification file."
- )
-
- def set_input_file_name(self, job, build_nr, file_name):
- """Set the state of input
-
- :param job: Job name.
- :param build_nr: Build number.
- :param file_name: The new file name.
- :type job: str
- :type build_nr: int
- :type file_name: str
- :raises: PresentationError if wrong job and/or build is provided.
- """
-
- try:
- for build in self._specification[u"input"][u"builds"][job]:
- if build[u"build"] == build_nr:
- build[u"file-name"] = file_name
- break
- else:
- raise PresentationError(
- f"Build {build_nr} is not defined for job {job} in "
- f"specification file."
- )
- except KeyError:
- raise PresentationError(
- f"Job {job} and build {build_nr} is not defined in "
- f"specification file."
- )
-
- def _get_build_number(self, job, build_type):
- """Get the number of the job defined by its name:
- - lastSuccessfulBuild
- - lastCompletedBuild
-
- :param job: Job name.
- :param build_type: Build type:
- - lastSuccessfulBuild
- - lastCompletedBuild
- :type job" str
- :raises PresentationError: If it is not possible to get the build
- number.
- :returns: The build number.
- :rtype: int
- """
-
- # defined as a range <start, end>
- if build_type == u"lastSuccessfulBuild":
- # defined as a range <start, lastSuccessfulBuild>
- ret_code, build_nr, _ = get_last_successful_build_nr(
- self.environment[u"urls"][u"URL[JENKINS,CSIT]"], job)
- elif build_type == u"lastCompletedBuild":
- # defined as a range <start, lastCompletedBuild>
- ret_code, build_nr, _ = get_last_completed_build_number(
- self.environment[u"urls"][u"URL[JENKINS,CSIT]"], job)
- else:
- raise PresentationError(f"Not supported build type: {build_type}")
- if ret_code != 0:
- raise PresentationError(
- f"Not possible to get the build number of {job}."
- )
- try:
- build_nr = int(build_nr)
- return build_nr
- except ValueError as err:
- raise PresentationError(
- f"Not possible to get the build number of {job}. Reason:\n"
- f"{repr(err)}"
- )
-
- def _get_type_index(self, item_type):
- """Get index of item type (environment, input, output, ...) in
- specification YAML file.
-
- :param item_type: Item type: Top level items in specification YAML file,
- e.g.: environment, input, output.
- :type item_type: str
- :returns: Index of the given item type.
- :rtype: int
- """
-
- index = 0
- for item in self._cfg_yaml:
- if item[u"type"] == item_type:
- return index
- index += 1
- return None
-
- def _find_tag(self, text):
- """Find the first tag in the given text. The tag is enclosed by the
- TAG_OPENER and TAG_CLOSER.
-
- :param text: Text to be searched.
- :type text: str
- :returns: The tag, or None if not found.
- :rtype: str
- """
- try:
- start = text.index(self.TAG_OPENER)
- end = text.index(self.TAG_CLOSER, start + 1) + 1
- return text[start:end]
- except ValueError:
- return None
-
- def _replace_tags(self, data, src_data=None):
- """Replace tag(s) in the data by their values.
-
- :param data: The data where the tags will be replaced by their values.
- :param src_data: Data where the tags are defined. It is dictionary where
- the key is the tag and the value is the tag value. If not given,
- 'data' is used instead.
- :type data: str, list or dict
- :type src_data: dict
- :returns: Data with the tags replaced.
- :rtype: str, list or dict
- :raises: PresentationError if it is not possible to replace the tag or
- the data is not the supported data type (str, list or dict).
- """
-
- if src_data is None:
- src_data = data
-
- if isinstance(data, str):
- tag = self._find_tag(data)
- if tag is not None:
- data = data.replace(tag, src_data[tag[1:-1]])
- return data
-
- if isinstance(data, list):
- new_list = list()
- for item in data:
- new_list.append(self._replace_tags(item, src_data))
- return new_list
-
- if isinstance(data, dict):
- counter = 0
- for key, value in data.items():
- tag = self._find_tag(value)
- if tag is not None:
- try:
- data[key] = value.replace(tag, src_data[tag[1:-1]])
- counter += 1
- except KeyError:
- raise PresentationError(
- f"Not possible to replace the tag {tag}"
- )
- if counter:
- self._replace_tags(data, src_data)
- return data
-
- raise PresentationError(u"Replace tags: Not supported data type.")
-
- def _parse_env(self):
- """Parse environment specification in the specification YAML file.
- """
-
- logging.info(u"Parsing specification file: environment ...")
-
- idx = self._get_type_index(u"environment")
- if idx is None:
- return
-
- try:
- self._specification[u"environment"][u"configuration"] = \
- self._cfg_yaml[idx][u"configuration"]
- except KeyError:
- self._specification[u"environment"][u"configuration"] = None
-
- try:
- self._specification[u"environment"][u"paths"] = \
- self._replace_tags(self._cfg_yaml[idx][u"paths"])
- except KeyError:
- self._specification[u"environment"][u"paths"] = None
-
- try:
- self._specification[u"environment"][u"urls"] = \
- self._cfg_yaml[idx][u"urls"]
- except KeyError:
- self._specification[u"environment"][u"urls"] = None
-
- try:
- self._specification[u"environment"][u"make-dirs"] = \
- self._cfg_yaml[idx][u"make-dirs"]
- except KeyError:
- self._specification[u"environment"][u"make-dirs"] = None
-
- try:
- self._specification[u"environment"][u"remove-dirs"] = \
- self._cfg_yaml[idx][u"remove-dirs"]
- except KeyError:
- self._specification[u"environment"][u"remove-dirs"] = None
-
- try:
- self._specification[u"environment"][u"build-dirs"] = \
- self._cfg_yaml[idx][u"build-dirs"]
- except KeyError:
- self._specification[u"environment"][u"build-dirs"] = None
-
- try:
- self._specification[u"environment"][u"testbeds"] = \
- self._cfg_yaml[idx][u"testbeds"]
- except KeyError:
- self._specification[u"environment"][u"testbeds"] = None
-
- logging.info(u"Done.")
-
- def _load_mapping_table(self):
- """Load a mapping table if it is specified. If not, use empty list.
- """
-
- mapping_file_name = self._specification[u"configuration"].\
- get(u"mapping-file", None)
- if mapping_file_name:
- try:
- with open(mapping_file_name, u'r') as mfile:
- mapping = load(mfile, Loader=FullLoader)
- # Make sure everything is lowercase
- self._specification[u"configuration"][u"mapping"] = \
- {key.lower(): val.lower() for key, val in
- mapping.items()}
- logging.debug(f"Loaded mapping table:\n{mapping}")
- except (YAMLError, IOError) as err:
- raise PresentationError(
- msg=f"An error occurred while parsing the mapping file "
- f"{mapping_file_name}",
- details=repr(err)
- )
- else:
- self._specification[u"configuration"][u"mapping"] = dict()
-
- def _load_ignore_list(self):
- """Load an ignore list if it is specified. If not, use empty list.
- """
-
- ignore_list_name = self._specification[u"configuration"].\
- get(u"ignore-list", None)
- if ignore_list_name:
- try:
- with open(ignore_list_name, u'r') as ifile:
- ignore = load(ifile, Loader=FullLoader)
- # Make sure everything is lowercase
- self._specification[u"configuration"][u"ignore"] = \
- [item.lower() for item in ignore]
- logging.debug(f"Loaded ignore list:\n{ignore}")
- except (YAMLError, IOError) as err:
- raise PresentationError(
- msg=f"An error occurred while parsing the ignore list file "
- f"{ignore_list_name}.",
- details=repr(err)
- )
- else:
- self._specification[u"configuration"][u"ignore"] = list()
-
- def _parse_configuration(self):
- """Parse configuration of PAL in the specification YAML file.
- """
-
- logging.info(u"Parsing specification file: configuration ...")
-
- idx = self._get_type_index("configuration")
- if idx is None:
- logging.warning(
- u"No configuration information in the specification file."
- )
- return
-
- try:
- self._specification[u"configuration"] = self._cfg_yaml[idx]
- except KeyError:
- raise PresentationError(u"No configuration defined.")
-
- # Data sets: Replace ranges by lists
- for set_name, data_set in self.configuration[u"data-sets"].items():
- if not isinstance(data_set, dict):
- continue
- for job, builds in data_set.items():
- if not builds:
- continue
- if isinstance(builds, dict):
- build_end = builds.get(u"end", None)
- max_builds = builds.get(u"max-builds", None)
- reverse = builds.get(u"reverse", False)
- try:
- build_end = int(build_end)
- except ValueError:
- # defined as a range <start, build_type>
- build_end = self._get_build_number(job, build_end)
- builds = list(range(builds[u"start"], build_end + 1))
- if max_builds and max_builds < len(builds):
- builds = builds[-max_builds:]
- if reverse:
- builds.reverse()
- self.configuration[u"data-sets"][set_name][job] = builds
- elif isinstance(builds, list):
- for idx, item in enumerate(builds):
- try:
- builds[idx] = int(item)
- except ValueError:
- # defined as a range <build_type>
- builds[idx] = self._get_build_number(job, item)
-
- # Data sets: add sub-sets to sets (only one level):
- for set_name, data_set in self.configuration[u"data-sets"].items():
- if isinstance(data_set, list):
- new_set = dict()
- for item in data_set:
- try:
- for key, val in self.configuration[u"data-sets"][item].\
- items():
- new_set[key] = val
- except KeyError:
- raise PresentationError(
- f"Data set {item} is not defined in "
- f"the configuration section."
- )
- self.configuration[u"data-sets"][set_name] = new_set
-
- # Mapping table:
- self._load_mapping_table()
-
- # Ignore list:
- self._load_ignore_list()
-
- logging.info(u"Done.")
-
- def _parse_input(self):
- """Parse input specification in the specification YAML file.
-
- :raises: PresentationError if there are no data to process.
- """
-
- logging.info(u"Parsing specification file: input ...")
-
- idx = self._get_type_index(u"input")
- if idx is None:
- raise PresentationError(u"No data to process.")
-
- try:
- for key, value in self._cfg_yaml[idx][u"general"].items():
- self._specification[u"input"][key] = value
- self._specification[u"input"][u"builds"] = dict()
-
- for job, builds in self._cfg_yaml[idx][u"builds"].items():
- if builds:
- if isinstance(builds, dict):
- build_end = builds.get(u"end", None)
- max_builds = builds.get(u"max-builds", None)
- reverse = bool(builds.get(u"reverse", False))
- try:
- build_end = int(build_end)
- except ValueError:
- # defined as a range <start, build_type>
- if build_end in (u"lastCompletedBuild",
- u"lastSuccessfulBuild"):
- reverse = True
- build_end = self._get_build_number(job, build_end)
- builds = [x for x in range(builds[u"start"],
- build_end + 1)
- if x not in builds.get(u"skip", list())]
- if reverse:
- builds.reverse()
- if max_builds and max_builds < len(builds):
- builds = builds[:max_builds]
- self._specification[u"input"][u"builds"][job] = list()
- for build in builds:
- self._specification[u"input"][u"builds"][job]. \
- append({u"build": build, u"status": None})
-
- else:
- logging.warning(
- f"No build is defined for the job {job}. Trying to "
- f"continue without it."
- )
-
- except KeyError:
- raise PresentationError(u"No data to process.")
-
- logging.info(u"Done.")
-
- def _parse_output(self):
- """Parse output specification in the specification YAML file.
-
- :raises: PresentationError if there is no output defined.
- """
-
- logging.info(u"Parsing specification file: output ...")
-
- idx = self._get_type_index(u"output")
- if idx is None:
- raise PresentationError(u"No output defined.")
-
- try:
- self._specification[u"output"] = self._cfg_yaml[idx]
- except (KeyError, IndexError):
- raise PresentationError(u"No output defined.")
-
- logging.info(u"Done.")
-
- def _parse_static(self):
- """Parse specification of the static content in the specification YAML
- file.
- """
-
- logging.info(u"Parsing specification file: static content ...")
-
- idx = self._get_type_index(u"static")
- if idx is None:
- logging.warning(u"No static content specified.")
-
- for key, value in self._cfg_yaml[idx].items():
- if isinstance(value, str):
- try:
- self._cfg_yaml[idx][key] = self._replace_tags(
- value, self._specification[u"environment"][u"paths"])
- except KeyError:
- pass
-
- self._specification[u"static"] = self._cfg_yaml[idx]
-
- logging.info(u"Done.")
-
- def _parse_elements_tables(self, table):
- """Parse tables from the specification YAML file.
-
- :param table: Table to be parsed from the specification file.
- :type table: dict
- :raises PresentationError: If wrong data set is used.
- """
-
- try:
- table[u"template"] = self._replace_tags(
- table[u"template"],
- self._specification[u"environment"][u"paths"])
- except KeyError:
- pass
-
- # Add data sets
- try:
- for item in (u"reference", u"compare"):
- if table.get(item, None):
- data_set = table[item].get(u"data", None)
- if isinstance(data_set, str):
- table[item][u"data"] = \
- self.configuration[u"data-sets"][data_set]
- data_set = table[item].get(u"data-replacement", None)
- if isinstance(data_set, str):
- table[item][u"data-replacement"] = \
- self.configuration[u"data-sets"][data_set]
-
- if table.get(u"history", None):
- for i in range(len(table[u"history"])):
- data_set = table[u"history"][i].get(u"data", None)
- if isinstance(data_set, str):
- table[u"history"][i][u"data"] = \
- self.configuration[u"data-sets"][data_set]
- data_set = table[u"history"][i].get(
- u"data-replacement", None)
- if isinstance(data_set, str):
- table[u"history"][i][u"data-replacement"] = \
- self.configuration[u"data-sets"][data_set]
-
- if table.get(u"columns", None):
- for i in range(len(table[u"columns"])):
- data_set = table[u"columns"][i].get(u"data-set", None)
- if isinstance(data_set, str):
- table[u"columns"][i][u"data-set"] = \
- self.configuration[u"data-sets"][data_set]
- data_set = table[u"columns"][i].get(
- u"data-replacement", None)
- if isinstance(data_set, str):
- table[u"columns"][i][u"data-replacement"] = \
- self.configuration[u"data-sets"][data_set]
-
- except KeyError:
- raise PresentationError(
- f"Wrong data set used in {table.get(u'title', u'')}."
- )
-
- self._specification[u"tables"].append(table)
-
- def _parse_elements_plots(self, plot):
- """Parse plots from the specification YAML file.
-
- :param plot: Plot to be parsed from the specification file.
- :type plot: dict
- :raises PresentationError: If plot layout is not defined.
- """
-
- # Add layout to the plots:
- layout = plot[u"layout"].get(u"layout", None)
- if layout is not None:
- plot[u"layout"].pop(u"layout")
- try:
- for key, val in (self.configuration[u"plot-layouts"]
- [layout].items()):
- plot[u"layout"][key] = val
- except KeyError:
- raise PresentationError(
- f"Layout {layout} is not defined in the "
- f"configuration section."
- )
- self._specification[u"plots"].append(plot)
-
- def _parse_elements_files(self, file):
- """Parse files from the specification YAML file.
-
- :param file: File to be parsed from the specification file.
- :type file: dict
- """
-
- try:
- file[u"dir-tables"] = self._replace_tags(
- file[u"dir-tables"],
- self._specification[u"environment"][u"paths"])
- except KeyError:
- pass
- self._specification[u"files"].append(file)
-
- def _parse_elements_cpta(self, cpta):
- """Parse cpta from the specification YAML file.
-
- :param cpta: cpta to be parsed from the specification file.
- :type cpta: dict
- :raises PresentationError: If wrong data set is used or if plot layout
- is not defined.
- """
-
- for plot in cpta[u"plots"]:
- # Add layout to the plots:
- layout = plot.get(u"layout", None)
- if layout is not None:
- try:
- plot[u"layout"] = \
- self.configuration[u"plot-layouts"][layout]
- except KeyError:
- raise PresentationError(
- f"Layout {layout} is not defined in the "
- f"configuration section."
- )
- # Add data sets:
- if isinstance(plot.get(u"data", None), str):
- data_set = plot[u"data"]
- try:
- plot[u"data"] = \
- self.configuration[u"data-sets"][data_set]
- except KeyError:
- raise PresentationError(
- f"Data set {data_set} is not defined in "
- f"the configuration section."
- )
- self._specification[u"cpta"] = cpta
-
- def _parse_elements(self):
- """Parse elements (tables, plots, ..) specification in the specification
- YAML file.
- """
-
- logging.info(u"Parsing specification file: elements ...")
-
- count = 1
- for element in self._cfg_yaml:
-
- # Replace tags:
- try:
- element[u"output-file"] = self._replace_tags(
- element[u"output-file"],
- self._specification[u"environment"][u"paths"])
- except KeyError:
- pass
-
- try:
- element[u"input-file"] = self._replace_tags(
- element[u"input-file"],
- self._specification[u"environment"][u"paths"])
- except KeyError:
- pass
-
- try:
- element[u"output-file-links"] = self._replace_tags(
- element[u"output-file-links"],
- self._specification[u"environment"][u"paths"])
- except KeyError:
- pass
-
- # Add data sets to the elements:
- if isinstance(element.get(u"data", None), str):
- data_set = element[u"data"]
- try:
- element[u"data"] = \
- self.configuration[u"data-sets"][data_set]
- except KeyError:
- raise PresentationError(
- f"Data set {data_set} is not defined in the "
- f"configuration section."
- )
- elif isinstance(element.get(u"data", None), list):
- new_list = list()
- for item in element[u"data"]:
- try:
- new_list.append(
- self.configuration[u"data-sets"][item]
- )
- except KeyError:
- raise PresentationError(
- f"Data set {item} is not defined in the "
- f"configuration section."
- )
- element[u"data"] = new_list
-
- # Parse elements:
- if element[u"type"] == u"table":
-
- logging.info(f" {count:3d} Processing a table ...")
- self._parse_elements_tables(element)
- count += 1
-
- elif element[u"type"] == u"plot":
-
- logging.info(f" {count:3d} Processing a plot ...")
- self._parse_elements_plots(element)
- count += 1
-
- elif element[u"type"] == u"file":
-
- logging.info(f" {count:3d} Processing a file ...")
- self._parse_elements_files(element)
- count += 1
-
- elif element[u"type"] == u"cpta":
-
- logging.info(
- f" {count:3d} Processing Continuous Performance Trending "
- f"and Analysis ..."
- )
- self._parse_elements_cpta(element)
- count += 1
-
- logging.info(u"Done.")
-
- def read_specification(self):
- """Parse specification in the specification YAML file.
-
- :raises: PresentationError if an error occurred while parsing the
- specification file.
- """
- try:
- self._cfg_yaml = load(self._cfg_file, Loader=FullLoader)
- except YAMLError as err:
- raise PresentationError(msg=u"An error occurred while parsing the "
- u"specification file.",
- details=repr(err))
-
- self._parse_env()
- self._parse_configuration()
- self._parse_input()
- self._parse_output()
- self._parse_static()
- self._parse_elements()
-
- logging.debug(f"Specification: \n{pformat(self._specification)}")
diff --git a/resources/tools/presentation/static_content.py b/resources/tools/presentation/static_content.py
deleted file mode 100644
index 0fb81d1cbe..0000000000
--- a/resources/tools/presentation/static_content.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright (c) 2017 Cisco and/or its affiliates.
-# 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.
-
-"""Static content
-
-Process the static content stored in the git.
-"""
-
-import logging
-
-from os import makedirs
-from os.path import isdir
-from shutil import rmtree, copytree, Error
-
-from pal_errors import PresentationError
-
-
-def prepare_static_content(spec):
- """Prepare the static content which is stored in the git.
-
- :param spec: Specification read from the specification file.
- :type spec: Specification
- :raises PresentationError: If it is not possible to process the static
- content.
- """
-
- src = spec.static.get(u"src-path", None)
- dst = spec.static.get(u"dst-path", None)
- if src is None or dst is None:
- logging.warning(u"No static content specified, skipping")
- return
-
- # Copy all the static content to the build directory:
- logging.info(u"Copying the static content ...")
- logging.info(f" Source: {src}")
- logging.info(f" Destination: {dst}")
-
- try:
- if isdir(dst):
- rmtree(dst)
-
- copytree(src, dst)
-
- makedirs(spec.environment[u"paths"][u"DIR[WORKING,SRC,STATIC]"])
-
- except (Error, OSError) as err:
- raise PresentationError(
- u"Not possible to process the static content.",
- repr(err)
- )
-
- logging.info(u"Done.")
diff --git a/resources/tools/scripts/gdb-commands b/resources/tools/scripts/gdb-commands
index 419dca934b..b9acc864f1 100644
--- a/resources/tools/scripts/gdb-commands
+++ b/resources/tools/scripts/gdb-commands
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/tools/scripts/topo_reservation.py b/resources/tools/scripts/topo_reservation.py
index 021c60a6b6..f2d18bcafd 100755
--- a/resources/tools/scripts/topo_reservation.py
+++ b/resources/tools/scripts/topo_reservation.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
diff --git a/resources/tools/telemetry/__init__.py b/resources/tools/telemetry/__init__.py
new file mode 100644
index 0000000000..284a1ce972
--- /dev/null
+++ b/resources/tools/telemetry/__init__.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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.
diff --git a/resources/tools/telemetry/__main__.py b/resources/tools/telemetry/__main__.py
new file mode 100755
index 0000000000..7a612b8eea
--- /dev/null
+++ b/resources/tools/telemetry/__main__.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""Telemetry Exporter."""
+
+from argparse import ArgumentParser, RawDescriptionHelpFormatter
+
+from .executor import Executor
+
+
+def main():
+ """
+ Main entry function when called from cli
+ """
+ parser = ArgumentParser(
+ description=u"Telemetry Exporter.",
+ formatter_class=RawDescriptionHelpFormatter
+ )
+ parser.add_argument(
+ u"--config", required=True, type=str,
+ help=u"YAML configuration file."
+ )
+ parser.add_argument(
+ u"--hook", required=False, type=str,
+ help=u"Process ID or socket."
+ )
+ parser.add_argument(
+ u"--daemon", required=False, type=bool,
+ help=u"Run as daemon."
+ )
+ args = parser.parse_args()
+ if args.daemon:
+ Executor(args.config).execute_daemon(args.hook)
+ else:
+ Executor(args.config).execute(args.hook)
+
+
+if __name__ == u"__main__":
+ main()
diff --git a/resources/tools/telemetry/bundle_bpf.py b/resources/tools/telemetry/bundle_bpf.py
new file mode 100644
index 0000000000..58cfd5d0b6
--- /dev/null
+++ b/resources/tools/telemetry/bundle_bpf.py
@@ -0,0 +1,161 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""BPF performance bundle."""
+
+from logging import getLogger
+import sys
+
+from bcc import BPF
+from .constants import Constants
+
+
+class BundleBpf:
+ """
+ Creates a BPF object. This is the main object for defining a BPF program,
+ and interacting with its output.
+
+ Syntax: BPF({text=BPF_program | src_file=filename}
+ [, usdt_contexts=[USDT_object, ...]]
+ [, cflags=[arg1, ...]] [, debug=int]
+ )
+
+ Exactly one of text or src_file must be supplied (not both).
+ """
+ def __init__(self, program, serializer, hook):
+ """Initialize Bundle BPF Perf event class.
+
+ :param program: BPF C code.
+ :param serializer: Metric serializer.
+ :param hook: Process ID.
+ :type program: dict
+ :type serializer: Serializer
+ :type hook: int
+ """
+ self.obj = None
+ self.code = program[u"code"]
+ self.metrics = program[u"metrics"]
+ self.events = program[u"events"]
+ self.api_replies_list = list()
+ self.serializer = serializer
+ self.hook = hook
+
+ self.obj = BPF(text=self.code)
+
+
+ def attach(self, sample_period):
+ """
+ Attach events to BPF.
+
+ :param sample_period: A "sampling" event is one that generates
+ an overflow notification every N events, where N is given by
+ sample_period.
+ :type sample_period: int
+ """
+ try:
+ for event in self.events:
+ self.obj.attach_perf_event(
+ ev_type=event[u"type"],
+ ev_config=event[u"name"],
+ fn_name=event[u"target"],
+ sample_period=sample_period
+ )
+ except AttributeError:
+ getLogger("console_stderr").error(f"Could not attach BPF event: "
+ f"{event[u'name']}")
+ sys.exit(Constants.err_linux_attach)
+
+ def detach(self):
+ """
+ Detach events from BPF.
+ """
+ try:
+ for event in self.events:
+ self.obj.detach_perf_event(
+ ev_type=event[u"type"],
+ ev_config=event[u"name"]
+ )
+ except AttributeError:
+ getLogger("console_stderr").error(u"Could not detach BPF events!")
+ sys.exit(Constants.err_linux_detach)
+
+ def fetch_data(self):
+ """
+ Fetch data by invoking API calls to BPF.
+ """
+ self.serializer.create(metrics=self.metrics)
+
+ max_len = {"cpu": 3, "pid": 3, "name": 4, "value": 5}
+ text = ""
+ table_name = ""
+ item_list = []
+
+ for _, metric_list in self.metrics.items():
+ for metric in metric_list:
+ if table_name != metric[u"name"]:
+ table_name = metric[u"name"]
+ text += f"{table_name}\n"
+ for (key, val) in self.obj.get_table(metric[u"name"]).items():
+ item = dict()
+ labels = dict()
+ item[u"name"] = metric[u"name"]
+ item[u"value"] = val.value
+ for label in metric[u"labelnames"]:
+ labels[label] = getattr(key, label)
+ item[u"labels"] = labels
+ item[u'labels'][u'name'] = \
+ item[u'labels'][u'name'].decode(u'utf-8')
+ if item[u"labels"][u"name"] == u"python3":
+ continue
+ if len(str(item[u'labels'][u'cpu'])) > max_len["cpu"]:
+ max_len["cpu"] = len(str(item[u'labels'][u'cpu']))
+ if len(str(item[u'labels'][u'pid'])) > max_len[u"pid"]:
+ max_len[u"pid"] = len(str(item[u'labels'][u'pid']))
+ if len(str(item[u'labels'][u'name'])) > max_len[u"name"]:
+ max_len[u"name"] = len(str(item[u'labels'][u'name']))
+ if len(str(item[u'value'])) > max_len[u"value"]:
+ max_len[u"value"] = len(str(item[u'value']))
+
+ self.api_replies_list.append(item)
+ item_list.append(item)
+
+ item_list = sorted(item_list, key=lambda x: x['labels']['cpu'])
+ item_list = sorted(item_list, key=lambda x: x['name'])
+
+ for itl in item_list:
+ if table_name != itl[u"name"]:
+ table_name = itl[u"name"]
+ text += f"\n==={table_name}===\n" \
+ f"cpu {u' ' * (max_len[u'cpu'] - 3)} " \
+ f"pid {u' ' * (max_len[u'pid'] - 3)} " \
+ f"name {u' ' * (max_len[u'name'] - 4)} " \
+ f"value {u' ' * (max_len[u'value'] - 5)}\n"
+ text += (
+ f"""{str(itl[u'labels'][u'cpu']) + u' ' *
+ (max_len[u"cpu"] - len(str(itl[u'labels'][u'cpu'])))} """
+ f"""{str(itl[u'labels'][u'pid']) + u' ' *
+ (max_len[u"pid"] - len(str(itl[u'labels'][u'pid'])))} """
+ f"""{str(itl[u'labels'][u'name']) + u' ' *
+ (max_len[u"name"] - len(str(itl[u'labels'][u'name'])))} """
+ f"""{str(itl[u'value']) + u' ' *
+ (max_len[u"value"] - len(str(itl[u'value'])))}\n""")
+ getLogger(u"console_stdout").info(text)
+
+ def process_data(self):
+ """
+ Post process API replies.
+ """
+ for item in self.api_replies_list:
+ self.serializer.serialize(
+ metric=item[u"name"], labels=item[u"labels"], item=item
+ )
diff --git a/resources/tools/telemetry/bundle_perf_stat.py b/resources/tools/telemetry/bundle_perf_stat.py
new file mode 100644
index 0000000000..471dd07b18
--- /dev/null
+++ b/resources/tools/telemetry/bundle_perf_stat.py
@@ -0,0 +1,112 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""Perf Stat performance bundle."""
+
+from logging import getLogger
+import sys
+import subprocess
+
+from .constants import Constants
+
+
+class BundlePerfStat:
+ """
+ Creates a Perf stat object. This is the main object for defining a Perf Stat
+ program and interacting with its output.
+
+ Syntax: perf stat [-e <EVENT> | --event=EVENT] [-a] — <command> [<options>]
+ """
+ def __init__(self, program, serializer, hook):
+ """Initialize Bundle Perf Stat event class.
+
+ :param program: events
+ :param serializer: Metric serializer.
+ :param hook: Process ID.
+ :type program: dict
+ :type serializer: Serializer
+ :type hook: int
+ """
+ self.metrics = program[u"metrics"]
+ self.events = program[u"events"]
+ self.api_replies_list = list()
+ self.serializer = serializer
+ self.hook = hook
+
+ def attach(self, duration=1):
+ """
+ Performs perf stat.
+
+ :param duration: Time how long perf stat is collecting data (in
+ seconds). Default value is 1 second.
+ :type duration: int
+ """
+ try:
+ self.serializer.create(metrics=self.metrics)
+ event = self.events[0]
+ text = subprocess.getoutput(
+ f"""sudo perf stat -x\; -e\
+ '{{cpu/event={hex(event[u"eventcode"])},\
+ umask={hex(event[u"umask"])}/u}}'\
+ -a --per-thread\
+ sleep {duration}"""
+ )
+ except subprocess.CalledProcessError:
+ getLogger("console_stderr").error(f"Could not successfully run "
+ f"perf stat command.")
+ sys.exit(Constants.err_linux_perf_stat)
+
+ if text == u"":
+ getLogger("console_stdout").info(event[u"eventcode"])
+ else:
+ for line in text.splitlines():
+ if line.count(u";") < 6:
+ getLogger("console_stdout").info(
+ f"Could not get counters for current thread."
+ f"{line}"
+ )
+ continue
+ item = dict()
+ labels = dict()
+ item[u"name"] = self.metrics['counter'][0]['name']
+ item[u"value"] = line.split(";")[1]
+ labels["thread"] = u"-".join(
+ line.split(";")[0].split("-")[0:-1]
+ )
+ labels["pid"] = line.split(";")[0].split("-")[-1]
+ item[u"labels"] = labels
+
+ getLogger("console_stdout").info(item)
+ self.api_replies_list.append(item)
+
+
+ def detach(self):
+ """
+ Detach function.
+ """
+ pass
+
+ def fetch_data(self):
+ """
+ Fetch data function.
+ """
+ pass
+
+ def process_data(self):
+ """
+ Post process API replies.
+ """
+ for item in self.api_replies_list:
+ self.serializer.serialize(
+ metric=item[u"name"], labels=item[u"labels"], item=item
+ )
diff --git a/resources/tools/telemetry/bundle_vpp.py b/resources/tools/telemetry/bundle_vpp.py
new file mode 100644
index 0000000000..963690bb5d
--- /dev/null
+++ b/resources/tools/telemetry/bundle_vpp.py
@@ -0,0 +1,465 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""VPP execution bundle."""
+
+from copy import deepcopy
+from logging import getLogger
+from re import fullmatch, sub
+import struct
+import sys
+
+from vpp_papi.vpp_papi import VPPApiClient as vpp_class
+from .constants import Constants
+
+M_RUN_THREAD = (
+ r"Thread\s"
+ r"(?P<thread_id>\d+)\s"
+ r"(?P<thread_name>\S+)\s.*"
+ r"(?P<thread_lcore>\d+).*"
+)
+M_RUN_SEPARATOR = (
+ r"(-)+"
+)
+M_RUN_NODES = (
+ r"(?P<name>\S+)\s+"
+ r"(?P<state>\S+\s\S+|\S+)\s+"
+ r"(?P<calls>\d+)\s+"
+ r"(?P<vectors>\d+)\s+"
+ r"(?P<suspends>\d+)\s+"
+ r"(?P<clocks>\S+)\s+"
+ r"(?P<vectors_calls>\S+)"
+)
+M_RUN_TIME = (
+ r"Time\s\S+,\s\d+\ssec\sinternal\snode\svector\srate\s"
+ r"(?P<rate>\S+)\sloops/sec\s"
+ r"(?P<loops>\S+)"
+)
+M_INT_BEGIN = (
+ r"(?P<name>\S+)\s+"
+ r"(?P<index>\S+)\s+"
+ r"(?P<state>\S+)\s+"
+ r"(?P<mtu>\S+)\s+"
+ r"(?P<counter>\S+\s\S+|\S+)\s+"
+ r"(?P<count>\d+)"
+)
+M_INT_CONT = (
+ r"\s+"
+ r"(?P<counter>\S+\s\S+|\S+)\s+"
+ r"(?P<count>\d+)"
+)
+M_NODE_COUNTERS_THREAD = (
+ r"Thread\s"
+ r"(?P<thread_id>\d+)\s\("
+ r"(?P<thread_name>\S+)\):\s*"
+)
+M_NODE_COUNTERS = (
+ r"\s*"
+ r"(?P<count>\d+)\s+"
+ r"(?P<name>\S+)\s+"
+ r"(?P<reason>(\S+\s)+)\s+"
+ r"(?P<severity>\S+)\s+"
+ r"(?P<index>\d+)\s*"
+)
+M_PMB_CS_HEADER = (
+ r"\s*per-thread\s+context\s+switches.*"
+)
+M_PMB_CS = (
+ r"(?P<thread_name>\S+)\s+\("
+ r"(?P<thread_id>\S+)\)\s+\S+\s+"
+ r"(?P<context_switches>[\d\.]+)"
+)
+M_PMB_PF_HEADER = (
+ r"\s*per-thread\s+page\s+faults.*"
+)
+M_PMB_PF = (
+ r"(?P<thread_name>\S+)\s+\("
+ r"(?P<thread_id>\S+)\)\s+\S+\s+"
+ r"(?P<minor_page_faults>[\d\.]+)\s+"
+ r"(?P<major_page_faults>[\d\.]+)"
+)
+M_PMB_THREAD = (
+ r"\s*"
+ r"(?P<thread_name>\S+)\s+\("
+ r"(?P<thread_id>\d+)\)\s*"
+)
+M_PMB_IC_HEADER = (
+ r"\s*instructions/packet,\s+cycles/packet\s+and\s+IPC.*"
+)
+M_PMB_IC_NODE = (
+ r"\s*"
+ r"(?P<node_name>\S+)\s+"
+ r"(?P<calls>[\d\.]+)\s+"
+ r"(?P<packets>[\d\.]+)\s+"
+ r"(?P<packets_per_call>[\d\.]+)\s+"
+ r"(?P<clocks_per_packets>[\d\.]+)\s+"
+ r"(?P<instructions_per_packets>[\d\.]+)\s+"
+ r"(?P<ipc>[\d\.]+)"
+)
+M_PMB_CM_HEADER = (
+ r"\s*cache\s+hits\s+and\s+misses.*"
+)
+M_PMB_CM_NODE = (
+ r"\s*"
+ r"(?P<node_name>\S+)\s+"
+ r"(?P<l1_hit>[\d\.]+)\s+"
+ r"(?P<l1_miss>[\d\.]+)\s+"
+ r"(?P<l2_hit>[\d\.]+)\s+"
+ r"(?P<l2_miss>[\d\.]+)\s+"
+ r"(?P<l3_hit>[\d\.]+)\s+"
+ r"(?P<l3_miss>[\d\.]+)"
+)
+M_PMB_LO_HEADER = (
+ r"\s*load\s+operations.*"
+)
+M_PMB_LO_NODE = (
+ r"\s*"
+ r"(?P<node_name>\S+)\s+"
+ r"(?P<calls>[\d\.]+)\s+"
+ r"(?P<packets>[\d\.]+)\s+"
+ r"(?P<one>[\d\.]+)\s+"
+ r"(?P<two>[\d\.]+)\s+"
+ r"(?P<three>[\d\.]+)"
+)
+M_PMB_BM_HEADER = (
+ r"\s*Branches,\s+branches\s+taken\s+and\s+mis-predictions.*"
+)
+M_PMB_BM_NODE = (
+ r"\s*"
+ r"(?P<node_name>\S+)\s+"
+ r"(?P<branches_per_call>[\d\.]+)\s+"
+ r"(?P<branches_per_packet>[\d\.]+)\s+"
+ r"(?P<taken_per_call>[\d\.]+)\s+"
+ r"(?P<taken_per_packet>[\d\.]+)\s+"
+ r"(?P<mis_predictions>[\d\.]+)"
+)
+M_PMB_PL_HEADER = (
+ r"\s*Thread\s+power\s+licensing.*"
+)
+M_PMB_PL_NODE = (
+ r"\s*"
+ r"(?P<node_name>\S+)\s+"
+ r"(?P<lvl0>[\d\.]+)\s+"
+ r"(?P<lvl1>[\d\.]+)\s+"
+ r"(?P<lvl2>[\d\.]+)\s+"
+ r"(?P<throttle>[\d\.]+)"
+)
+M_PMB_MB_HEADER = (
+ r"\s*memory\s+reads\s+and\s+writes\s+per\s+memory\s+controller.*"
+)
+M_PMB_MB = (
+ r"\s*"
+ r"(?P<name>\S+)\s+"
+ r"(?P<runtime>[\d\.]+)\s+"
+ r"(?P<reads_mbs>[\d\.]+)\s+"
+ r"(?P<writes_mbs>[\d\.]+)\s+"
+ r"(?P<total_mbs>[\d\.]+)"
+)
+
+
+class BundleVpp:
+ """
+ Creates a VPP object. This is the main object for defining a VPP program,
+ and interacting with its output.
+ """
+ def __init__(self, program, serializer, hook):
+ """
+ Initialize Bundle VPP class.
+
+ :param program: VPP instructions.
+ :param serializer: Metric serializer.
+ :param hook: VPP API socket.
+ :type program: dict
+ :type serializer: Serializer
+ :type hook: int
+ """
+ self.obj = None
+ self.code = program[u"code"]
+ self.metrics = program[u"metrics"]
+ self.api_command_list = list()
+ self.api_replies_list = list()
+ self.serializer = serializer
+
+ vpp_class.apidir = u"/usr/share/vpp/api"
+ self.obj = vpp_class(
+ use_socket=True,
+ server_address=hook,
+ async_thread=False,
+ read_timeout=14,
+ logger=getLogger(__name__)
+ )
+
+ def attach(self, duration):
+ """
+ Attach events to VPP.
+
+ :param duration: Trial duration.
+ :type duration: int
+ """
+ try:
+ self.obj.connect(name=u"telemetry")
+ except (ConnectionRefusedError, OSError):
+ getLogger("console_stderr").error(u"Could not connect to VPP!")
+ sys.exit(Constants.err_vpp_connect)
+
+ for command in self.code.splitlines():
+ api_name = u"cli_inband"
+ api_args = dict(cmd=command.format(duration=duration))
+ self.api_command_list.append(
+ dict(api_name=api_name, api_args=deepcopy(api_args))
+ )
+
+ def detach(self):
+ """
+ Detach from VPP.
+ """
+ try:
+ self.obj.disconnect()
+ except (ConnectionRefusedError, OSError):
+ getLogger("console_stderr").error(u"Could not disconnect from VPP!")
+ sys.exit(Constants.err_vpp_disconnect)
+
+ def fetch_data(self):
+ """
+ Fetch data by invoking API calls to VPP socket.
+ """
+ for command in self.api_command_list:
+ try:
+ papi_fn = getattr(self.obj.api, command[u"api_name"])
+ getLogger(__name__).info(command[u"api_args"][u"cmd"])
+ replies = papi_fn(**command[u"api_args"])
+ except (AssertionError, AttributeError, IOError, struct.error):
+ getLogger("console_stderr").error(
+ f"Failed when executing command: "
+ f"{command['api_args']['cmd']}"
+ )
+ sys.exit(Constants.err_vpp_execute)
+
+ if not isinstance(replies, list):
+ replies = [replies]
+ for reply in replies:
+ self.api_replies_list.append(reply)
+ reply = sub(r"\x1b[^m]*m", u"", reply.reply)
+ if reply:
+ getLogger(__name__).info(reply)
+ else:
+ getLogger(__name__).info(u"<no reply>")
+ self.serializer.create(metrics=self.metrics)
+
+ def process_data(self):
+ """
+ Post process command reply.
+ """
+ for command in zip(self.api_command_list, self.api_replies_list):
+ self_fn = command[0][u"api_args"][u"cmd"].replace(u" ", u"_")
+ self_method_list = [meth for meth in dir(self)
+ if callable(getattr(self, meth)) and
+ meth.startswith('__') is False]
+ if self_fn not in self_method_list:
+ continue
+ try:
+ self_fn = getattr(self, self_fn)
+ self_fn(command[1].reply)
+ except AttributeError:
+ pass
+ except (KeyError, ValueError, TypeError) as exc:
+ getLogger("console_stderr").error(
+ f"Failed when processing data. Error message {exc}"
+ )
+ sys.exit(Constants.err_telemetry_process)
+
+ def show_interface(self, reply):
+ """
+ Parse the show interface output.
+
+ :param reply: API reply.
+ :type reply: str
+ """
+ for line in reply.splitlines():
+ item = dict()
+ labels = dict()
+ if fullmatch(M_INT_BEGIN, line):
+ ifc = fullmatch(M_INT_BEGIN, line).groupdict()
+ metric = ifc[u"counter"].replace(" ", "_").replace("-", "_")
+ item[u"name"] = metric
+ item[u"value"] = ifc[u"count"]
+ if fullmatch(M_INT_CONT, line):
+ ifc_cnt = fullmatch(M_INT_CONT, line).groupdict()
+ metric = ifc_cnt[u"counter"].replace(" ", "_").replace("-", "_")
+ item[u"name"] = metric
+ item[u"value"] = ifc_cnt[u"count"]
+ if fullmatch(M_INT_BEGIN, line) or fullmatch(M_INT_CONT, line):
+ labels[u"name"] = ifc[u"name"]
+ labels[u"index"] = ifc[u"index"]
+ item[u"labels"] = labels
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ def show_runtime(self, reply):
+ """
+ Parse the show runtime output.
+
+ :param reply: API reply.
+ :type reply: str
+ """
+ for line in reply.splitlines():
+ if fullmatch(M_RUN_THREAD, line):
+ thread = fullmatch(M_RUN_THREAD, line).groupdict()
+ if fullmatch(M_RUN_NODES, line):
+ nodes = fullmatch(M_RUN_NODES, line).groupdict()
+ for metric in self.serializer.metric_registry:
+ item = dict()
+ labels = dict()
+ item[u"name"] = metric
+ labels[u"name"] = nodes[u"name"]
+ labels[u"state"] = nodes[u"state"]
+ try:
+ labels[u"thread_name"] = thread[u"thread_name"]
+ labels[u"thread_id"] = thread[u"thread_id"]
+ labels[u"thread_lcore"] = thread[u"thread_lcore"]
+ except UnboundLocalError:
+ labels[u"thread_name"] = u"vpp_main"
+ labels[u"thread_id"] = u"0"
+ labels[u"thread_lcore"] = u"0"
+ item[u"labels"] = labels
+ item[u"value"] = nodes[metric]
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ def show_node_counters_verbose(self, reply):
+ """
+ Parse the show node conuter output.
+
+ :param reply: API reply.
+ :type reply: str
+ """
+ for line in reply.splitlines():
+ if fullmatch(M_NODE_COUNTERS_THREAD, line):
+ thread = fullmatch(M_NODE_COUNTERS_THREAD, line).groupdict()
+ if fullmatch(M_NODE_COUNTERS, line):
+ nodes = fullmatch(M_NODE_COUNTERS, line).groupdict()
+ for metric in self.serializer.metric_registry_registry:
+ item = dict()
+ labels = dict()
+ item[u"name"] = metric
+ labels[u"name"] = nodes[u"name"]
+ labels[u"reason"] = nodes[u"reason"]
+ labels[u"severity"] = nodes[u"severity"]
+ try:
+ labels[u"thread_name"] = thread[u"thread_name"]
+ labels[u"thread_id"] = thread[u"thread_id"]
+ except UnboundLocalError:
+ labels[u"thread_name"] = u"vpp_main"
+ labels[u"thread_id"] = u"0"
+ item[u"labels"] = labels
+ item[u"value"] = nodes[u"count"]
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ def show_perfmon_statistics(self, reply):
+ """
+ Parse the permon output.
+
+ :param reply: API reply.
+ :type reply: str
+ """
+ def perfmon_threads(reply, regex_threads):
+ for line in reply.splitlines():
+ if fullmatch(regex_threads, line):
+ threads = fullmatch(regex_threads, line).groupdict()
+ for metric in self.serializer.metric_registry:
+ item = dict()
+ labels = dict()
+ item[u"name"] = metric
+ labels[u"name"] = threads[u"thread_name"]
+ labels[u"id"] = threads[u"thread_id"]
+ item[u"labels"] = labels
+ item[u"value"] = threads[metric]
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ def perfmon_nodes(reply, regex_threads, regex_nodes):
+ for line in reply.splitlines():
+ if fullmatch(regex_threads, line):
+ thread = fullmatch(regex_threads, line).groupdict()
+ if fullmatch(regex_nodes, line):
+ node = fullmatch(regex_nodes, line).groupdict()
+ for metric in self.serializer.metric_registry:
+ item = dict()
+ labels = dict()
+ item[u"name"] = metric
+ labels[u"name"] = node[u"node_name"]
+ labels[u"thread_name"] = thread[u"thread_name"]
+ labels[u"thread_id"] = thread[u"thread_id"]
+ item[u"labels"] = labels
+ item[u"value"] = node[metric]
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ def perfmon_system(reply, regex_line):
+ for line in reply.splitlines():
+ if fullmatch(regex_line, line):
+ name = fullmatch(regex_line, line).groupdict()
+ for metric in self.serializer.metric_registry:
+ item = dict()
+ labels = dict()
+ item[u"name"] = metric
+ labels[u"name"] = name[u"name"]
+ item[u"labels"] = labels
+ item[u"value"] = name[metric]
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ reply = sub(r"\x1b[^m]*m", u"", reply)
+
+ if fullmatch(M_PMB_CS_HEADER, reply.splitlines()[0]):
+ perfmon_threads(reply, M_PMB_CS)
+ if fullmatch(M_PMB_PF_HEADER, reply.splitlines()[0]):
+ perfmon_threads(reply, M_PMB_PF)
+ if fullmatch(M_PMB_IC_HEADER, reply.splitlines()[0]):
+ perfmon_nodes(reply, M_PMB_THREAD, M_PMB_IC_NODE)
+ if fullmatch(M_PMB_CM_HEADER, reply.splitlines()[0]):
+ perfmon_nodes(reply, M_PMB_THREAD, M_PMB_CM_NODE)
+ if fullmatch(M_PMB_LO_HEADER, reply.splitlines()[0]):
+ perfmon_nodes(reply, M_PMB_THREAD, M_PMB_LO_NODE)
+ if fullmatch(M_PMB_BM_HEADER, reply.splitlines()[0]):
+ perfmon_nodes(reply, M_PMB_THREAD, M_PMB_BM_NODE)
+ if fullmatch(M_PMB_PL_HEADER, reply.splitlines()[0]):
+ perfmon_nodes(reply, M_PMB_THREAD, M_PMB_PL_NODE)
+ if fullmatch(M_PMB_MB_HEADER, reply.splitlines()[0]):
+ perfmon_system(reply, M_PMB_MB)
+
+ def show_version(self, reply):
+ """
+ Parse the version output.
+
+ :param reply: API reply.
+ :type reply: str
+ """
+ for metric in self.serializer.metric_registry:
+ version = reply.split()[1]
+ item = dict()
+ labels = dict()
+ item[u"name"] = metric
+ labels[u"version"] = version
+ item[u"labels"] = labels
+ item[u"value"] = {}
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
diff --git a/resources/tools/telemetry/bundle_vppctl.py b/resources/tools/telemetry/bundle_vppctl.py
new file mode 100644
index 0000000000..d0ee3754c7
--- /dev/null
+++ b/resources/tools/telemetry/bundle_vppctl.py
@@ -0,0 +1,425 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""VPP execution bundle."""
+
+from logging import getLogger
+from re import fullmatch, sub
+import subprocess
+import sys
+
+from .constants import Constants
+
+M_RUN_THREAD = (
+ r"Thread\s"
+ r"(?P<thread_id>\d+)\s"
+ r"(?P<thread_name>\S+)\s.*"
+ r"(?P<thread_lcore>\d+).*"
+)
+M_RUN_SEPARATOR = (
+ r"(-)+"
+)
+M_RUN_NODES = (
+ r"(?P<node_name>\S+)\s+"
+ r"(?P<state>\S+\s\S+|\S+)\s+"
+ r"(?P<calls>\d+)\s+"
+ r"(?P<vectors>\d+)\s+"
+ r"(?P<suspends>\d+)\s+"
+ r"(?P<clocks>\S+)\s+"
+ r"(?P<vectors_calls>\S+)"
+)
+M_RUN_TIME = (
+ r"Time\s\S+,\s\d+\ssec\sinternal\snode\svector\srate\s"
+ r"(?P<rate>\S+)\sloops/sec\s"
+ r"(?P<loops>\S+)"
+)
+M_INT_BEGIN = (
+ r"(?P<name>\S+)\s+"
+ r"(?P<index>\S+)\s+"
+ r"(?P<state>\S+)\s+"
+ r"(?P<mtu>\S+)\s+"
+ r"(?P<counter>\S+\s\S+|\S+)\s+"
+ r"(?P<count>\d+)"
+)
+M_INT_CONT = (
+ r"\s+"
+ r"(?P<counter>\S+\s\S+|\S+)\s+"
+ r"(?P<count>\d+)"
+)
+M_NODE_COUNTERS_THREAD = (
+ r"Thread\s"
+ r"(?P<thread_id>\d+)\s\("
+ r"(?P<thread_name>\S+)\):\s*"
+)
+M_NODE_COUNTERS = (
+ r"\s*"
+ r"(?P<count>\d+)\s+"
+ r"(?P<name>\S+)\s+"
+ r"(?P<reason>(\S+\s)+)\s+"
+ r"(?P<severity>\S+)\s+"
+ r"(?P<index>\d+)\s*"
+)
+M_PMB_CS_HEADER = (
+ r"\s*per-thread\s+context\s+switches.*"
+)
+M_PMB_CS = (
+ r"(?P<thread_name>\S+)\s+\("
+ r"(?P<thread_id>\S+)\)\s+\S+\s+"
+ r"(?P<context_switches>[\d\.]+)"
+)
+M_PMB_PF_HEADER = (
+ r"\s*per-thread\s+page\s+faults.*"
+)
+M_PMB_PF = (
+ r"(?P<thread_name>\S+)\s+\("
+ r"(?P<thread_id>\S+)\)\s+\S+\s+"
+ r"(?P<minor_page_faults>[\d\.]+)\s+"
+ r"(?P<major_page_faults>[\d\.]+)"
+)
+M_PMB_THREAD = (
+ r"\s*"
+ r"(?P<thread_name>\S+)\s+\("
+ r"(?P<thread_id>\d+)\)\s*"
+)
+M_PMB_IC_HEADER = (
+ r"\s*instructions/packet,\s+cycles/packet\s+and\s+IPC.*"
+)
+M_PMB_IC_NODE = (
+ r"\s*"
+ r"(?P<node_name>\S+)\s+"
+ r"(?P<calls>[\d\.]+)\s+"
+ r"(?P<packets>[\d\.]+)\s+"
+ r"(?P<packets_per_call>[\d\.]+)\s+"
+ r"(?P<clocks_per_packets>[\d\.]+)\s+"
+ r"(?P<instructions_per_packets>[\d\.]+)\s+"
+ r"(?P<ipc>[\d\.]+)"
+)
+M_PMB_CM_HEADER = (
+ r"\s*cache\s+hits\s+and\s+misses.*"
+)
+M_PMB_CM_NODE = (
+ r"\s*"
+ r"(?P<node_name>\S+)\s+"
+ r"(?P<l1_hit>[\d\.]+)\s+"
+ r"(?P<l1_miss>[\d\.]+)\s+"
+ r"(?P<l2_hit>[\d\.]+)\s+"
+ r"(?P<l2_miss>[\d\.]+)\s+"
+ r"(?P<l3_hit>[\d\.]+)\s+"
+ r"(?P<l3_miss>[\d\.]+)"
+)
+M_PMB_LO_HEADER = (
+ r"\s*load\s+operations.*"
+)
+M_PMB_LO_NODE = (
+ r"\s*"
+ r"(?P<node_name>\S+)\s+"
+ r"(?P<calls>[\d\.]+)\s+"
+ r"(?P<packets>[\d\.]+)\s+"
+ r"(?P<one>[\d\.]+)\s+"
+ r"(?P<two>[\d\.]+)\s+"
+ r"(?P<three>[\d\.]+)"
+)
+M_PMB_BM_HEADER = (
+ r"\s*Branches,\s+branches\s+taken\s+and\s+mis-predictions.*"
+)
+M_PMB_BM_NODE = (
+ r"\s*"
+ r"(?P<node_name>\S+)\s+"
+ r"(?P<branches_per_call>[\d\.]+)\s+"
+ r"(?P<branches_per_packet>[\d\.]+)\s+"
+ r"(?P<taken_per_call>[\d\.]+)\s+"
+ r"(?P<taken_per_packet>[\d\.]+)\s+"
+ r"(?P<mis_predictions>[\d\.]+)"
+)
+M_PMB_MB_HEADER = (
+ r"\s*memory\s+reads\s+and\s+writes\s+per\s+memory\s+controller.*"
+)
+M_PMB_MB = (
+ r"\s*"
+ r"(?P<name>\S+)\s+"
+ r"(?P<runtime>[\d\.]+)\s+"
+ r"(?P<reads_mbs>[\d\.]+)\s+"
+ r"(?P<writes_mbs>[\d\.]+)\s+"
+ r"(?P<total_mbs>[\d\.]+)"
+)
+
+
+class BundleVppctl:
+ """
+ Creates a VPP object. This is the main object for defining a VPP program,
+ and interacting with its output.
+ """
+ def __init__(self, program, serializer, hook):
+ """
+ Initialize Bundle VPP class.
+
+ :param program: VPP instructions.
+ :param serializer: Metric serializer.
+ :param hook: VPP CLI socket.
+ :type program: dict
+ :type serializer: Serializer
+ :type hook: int
+ """
+ self.obj = None
+ self.code = program["code"]
+ self.metrics = program["metrics"]
+ self.cli_command_list = list()
+ self.cli_replies_list = list()
+ self.serializer = serializer
+ self.hook = hook
+
+ def attach(self, duration):
+ """
+ Attach events to VPP.
+
+ :param duration: Trial duration.
+ :type duration: int
+ """
+ for command in self.code.splitlines():
+ self.cli_command_list.append(
+ command.format(duration=duration, socket=self.hook)
+ )
+
+ def detach(self):
+ """
+ Detach from VPP.
+ """
+
+ def fetch_data(self):
+ """
+ Fetch data by invoking subprocess calls.
+ """
+ for command in self.cli_command_list:
+ try:
+ getLogger(__name__).info(command)
+ replies = subprocess.getoutput(command)
+ except (AssertionError, AttributeError):
+ getLogger("console_stderr").error(
+ f"Failed when executing command: {command}"
+ )
+ sys.exit(Constants.err_vpp_execute)
+
+ self.cli_replies_list.append(replies)
+ replies = sub(r"\x1b[^m]*m", "", replies)
+ if replies:
+ getLogger(__name__).info(replies)
+ else:
+ getLogger(__name__).info("<no reply>")
+ self.serializer.create(metrics=self.metrics)
+
+ def process_data(self):
+ """
+ Post process command reply.
+ """
+ for command in zip(self.cli_command_list, self.cli_replies_list):
+ self_fn = command[0].replace(
+ f"-s {self.hook} ", "").replace(" ", "_")
+ self_method_list = [meth for meth in dir(self)
+ if callable(getattr(self, meth)) and
+ meth.startswith('__') is False]
+ if self_fn not in self_method_list:
+ continue
+ try:
+ self_fn = getattr(self, self_fn)
+ self_fn(command[1])
+ except AttributeError:
+ pass
+ except (KeyError, ValueError, TypeError) as exc:
+ getLogger("console_stderr").error(
+ f"Failed when processing data. Error message {exc}"
+ )
+ sys.exit(Constants.err_telemetry_process)
+
+ def vppctl_show_interface(self, reply):
+ """
+ Parse the show interface output.
+
+ :param reply: VPP reply.
+ :type reply: str
+ """
+ for line in reply.splitlines():
+ item = dict()
+ labels = dict()
+ if fullmatch(M_INT_BEGIN, line):
+ ifc = fullmatch(M_INT_BEGIN, line).groupdict()
+ metric = ifc["counter"].replace(" ", "_").replace("-", "_")
+ item["name"] = metric
+ item["value"] = ifc["count"]
+ if fullmatch(M_INT_CONT, line):
+ ifc_cnt = fullmatch(M_INT_CONT, line).groupdict()
+ metric = ifc_cnt["counter"].replace(" ", "_").replace("-", "_")
+ item["name"] = metric
+ item["value"] = ifc_cnt["count"]
+ if fullmatch(M_INT_BEGIN, line) or fullmatch(M_INT_CONT, line):
+ labels["name"] = ifc["name"]
+ labels["index"] = ifc["index"]
+ item["labels"] = labels
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ def vppctl_show_runtime(self, reply):
+ """
+ Parse the show runtime output.
+
+ :param reply: VPP reply.
+ :type reply: str
+ """
+ for line in reply.splitlines():
+ if fullmatch(M_RUN_THREAD, line):
+ thread = fullmatch(M_RUN_THREAD, line).groupdict()
+ if fullmatch(M_RUN_NODES, line):
+ nodes = fullmatch(M_RUN_NODES, line).groupdict()
+ for metric in self.serializer.metric_registry:
+ item = dict()
+ labels = dict()
+ item["name"] = metric
+ labels["node_name"] = nodes["node_name"]
+ labels["state"] = nodes["state"]
+ try:
+ labels["thread_name"] = thread["thread_name"]
+ labels["thread_id"] = thread["thread_id"]
+ labels["thread_lcore"] = thread["thread_lcore"]
+ except UnboundLocalError:
+ labels["thread_name"] = "vpp_main"
+ labels["thread_id"] = "0"
+ labels["thread_lcore"] = "0"
+ item["labels"] = labels
+ item["value"] = nodes[metric]
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ def vppctl_show_node_counters_verbose(self, reply):
+ """
+ Parse the show node conuter output.
+
+ :param reply: VPP reply.
+ :type reply: str
+ """
+ for line in reply.splitlines():
+ if fullmatch(M_NODE_COUNTERS_THREAD, line):
+ thread = fullmatch(M_NODE_COUNTERS_THREAD, line).groupdict()
+ if fullmatch(M_NODE_COUNTERS, line):
+ nodes = fullmatch(M_NODE_COUNTERS, line).groupdict()
+ for metric in self.serializer.metric_registry_registry:
+ item = dict()
+ labels = dict()
+ item["name"] = metric
+ labels["name"] = nodes["name"]
+ labels["reason"] = nodes["reason"]
+ labels["severity"] = nodes["severity"]
+ try:
+ labels["thread_name"] = thread["thread_name"]
+ labels["thread_id"] = thread["thread_id"]
+ except UnboundLocalError:
+ labels["thread_name"] = "vpp_main"
+ labels["thread_id"] = "0"
+ item["labels"] = labels
+ item["value"] = nodes["count"]
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ def vppctl_show_perfmon_statistics(self, reply):
+ """
+ Parse the perfmon output.
+
+ :param reply: VPP reply.
+ :type reply: str
+ """
+ def perfmon_threads(reply, regex_threads):
+ for line in reply.splitlines():
+ if fullmatch(regex_threads, line):
+ threads = fullmatch(regex_threads, line).groupdict()
+ for metric in self.serializer.metric_registry:
+ item = dict()
+ labels = dict()
+ item["name"] = metric
+ labels["name"] = threads["thread_name"]
+ labels["id"] = threads["thread_id"]
+ item["labels"] = labels
+ item["value"] = threads[metric]
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ def perfmon_nodes(reply, regex_threads, regex_nodes):
+ for line in reply.splitlines():
+ if fullmatch(regex_threads, line):
+ thread = fullmatch(regex_threads, line).groupdict()
+ if fullmatch(regex_nodes, line):
+ node = fullmatch(regex_nodes, line).groupdict()
+ for metric in self.serializer.metric_registry:
+ item = dict()
+ labels = dict()
+ item["name"] = metric
+ labels["node_name"] = node["node_name"]
+ labels["thread_name"] = thread["thread_name"]
+ labels["thread_id"] = thread["thread_id"]
+ item["labels"] = labels
+ item["value"] = node[metric]
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ def perfmon_system(reply, regex_line):
+ for line in reply.splitlines():
+ if fullmatch(regex_line, line):
+ name = fullmatch(regex_line, line).groupdict()
+ for metric in self.serializer.metric_registry:
+ item = dict()
+ labels = dict()
+ item["name"] = metric
+ labels["name"] = name["name"]
+ item["labels"] = labels
+ item["value"] = name[metric]
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
+
+ reply = sub(r"\x1b[^m]*m", "", reply)
+
+ if fullmatch(M_PMB_CS_HEADER, reply.splitlines()[0]):
+ perfmon_threads(reply, M_PMB_CS)
+ if fullmatch(M_PMB_PF_HEADER, reply.splitlines()[0]):
+ perfmon_threads(reply, M_PMB_PF)
+ if fullmatch(M_PMB_IC_HEADER, reply.splitlines()[0]):
+ perfmon_nodes(reply, M_PMB_THREAD, M_PMB_IC_NODE)
+ if fullmatch(M_PMB_CM_HEADER, reply.splitlines()[0]):
+ perfmon_nodes(reply, M_PMB_THREAD, M_PMB_CM_NODE)
+ if fullmatch(M_PMB_LO_HEADER, reply.splitlines()[0]):
+ perfmon_nodes(reply, M_PMB_THREAD, M_PMB_LO_NODE)
+ if fullmatch(M_PMB_BM_HEADER, reply.splitlines()[0]):
+ perfmon_nodes(reply, M_PMB_THREAD, M_PMB_BM_NODE)
+ if fullmatch(M_PMB_MB_HEADER, reply.splitlines()[0]):
+ perfmon_system(reply, M_PMB_MB)
+
+ def vppctl_show_version(self, reply):
+ """
+ Parse the version output.
+
+ :param reply: VPP reply.
+ :type reply: str
+ """
+ for metric in self.serializer.metric_registry:
+ version = reply.split()[1]
+ item = dict()
+ labels = dict()
+ item["name"] = metric
+ labels["version"] = version
+ item["labels"] = labels
+ item["value"] = {}
+ self.serializer.serialize(
+ metric=metric, labels=labels, item=item
+ )
diff --git a/resources/tools/telemetry/constants.py b/resources/tools/telemetry/constants.py
new file mode 100644
index 0000000000..d5641ede2d
--- /dev/null
+++ b/resources/tools/telemetry/constants.py
@@ -0,0 +1,52 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""Constants used in telemetry.
+
+"Constant" means a value that keeps its value since initialization. The value
+does not need to be hard coded here, but can be read from environment variables.
+"""
+
+
+class Constants:
+ """Constants used in telemetry.
+ 1-10: Telemetry errors
+ 11-50: VPP bundle error
+ 51-100: Linux bundle errors"""
+
+ # Failed when processing data
+ err_telemetry_process = 1
+
+ # Failed to read YAML file
+ err_telemetry_yaml = 2
+
+ # Error executing bundle
+ err_telemetry_bundle = 3
+
+ # Could not connect to VPP
+ err_vpp_connect = 11
+
+ # Could not disconnect from VPP
+ err_vpp_disconnect = 12
+
+ # Failed when executing command
+ err_vpp_execute = 13
+
+ # Could not attach BPF events
+ err_linux_attach = 51
+
+ # Could not detach BPF events
+ err_linux_detach = 52
+
+ # Could not successfuly run perf stat command
+ err_linux_perf_stat = 53
diff --git a/resources/tools/telemetry/executor.py b/resources/tools/telemetry/executor.py
new file mode 100644
index 0000000000..4d335c187d
--- /dev/null
+++ b/resources/tools/telemetry/executor.py
@@ -0,0 +1,108 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""Config executor library."""
+
+from importlib import import_module
+from logging.config import dictConfig
+from logging import getLogger
+import sys
+
+from .parser import Parser
+from .serializer import Serializer
+from .constants import Constants
+
+
+class Executor:
+ """
+ Executor class reponsible for executing configuration.
+ """
+ def __init__(self, configuration_file):
+ """
+ Config Executor init.
+
+ :param configuration_file: Telemetry configuration file path.
+ :type configuration_file: str
+ """
+ self.parser = Parser(configuration_file)
+ self.log = self.parser.config[u"logging"]
+ self.programs = self.parser.config[u"programs"]
+ self.scheduler = self.parser.config[u"scheduler"]
+
+ dictConfig(self.log)
+
+ def execute(self, hook=None):
+ """
+ Main executor function will run programs from all bundles in a loop.
+
+ Function call:
+ attach(duration)
+ fetch_data()
+ process_data()
+ detach()
+
+ :param hook: Process ID or socket to attach. None by default.
+ :type hook: int
+ """
+ for program in self.programs:
+ serializer = Serializer()
+ try:
+ package = program[u"name"]
+ name = f"telemetry.{package}"
+ package = package.replace("_", " ").title().replace(" ", "")
+ module = import_module(
+ name=name,
+ package=package
+ )
+ bundle = getattr(module, package)(
+ program=program,
+ serializer=serializer,
+ hook=hook
+ )
+ bundle.attach(duration=self.scheduler[u"duration"])
+ bundle.fetch_data()
+ bundle.process_data()
+ bundle.detach()
+ except (ImportError, AttributeError) as exc:
+ raise ExecutorError(
+ f"Error executing bundle {package!r}! - {exc}"
+ )
+ serializer.publish()
+
+ def execute_daemon(self, hook=None):
+ """
+ Daemon executor will execute endless loop.
+
+ :param hook: Process ID to attach. None by default.
+ :type hook: int
+ """
+ while True:
+ self.execute(hook=hook)
+
+
+class ExecutorError(Exception):
+ """
+ Creates a Executor Error Exception. This exception is supposed to handle
+ all the errors raised during executing.
+ """
+ def __init__(self, message):
+ """
+ Execute Error Excpetion init.
+
+ :param message: Exception error message.
+ :type message: str
+ """
+ super().__init__()
+ self.message = message
+ getLogger("console_stderr").error(message)
+ sys.exit(Constants.err_telemetry_bundle)
diff --git a/resources/tools/telemetry/metrics.py b/resources/tools/telemetry/metrics.py
new file mode 100644
index 0000000000..27fad89a5c
--- /dev/null
+++ b/resources/tools/telemetry/metrics.py
@@ -0,0 +1,625 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""Metric library.
+
+Time measurements are done by time.time().
+Although time.time() is susceptible to big (or even negative) jumps
+when a system is badly synchronized, it is still better
+than time.monotonic(), as that value has no relation to epoch time.
+"""
+
+from collections import namedtuple
+from threading import Lock
+from time import time
+import re
+
+
+class Value:
+ """
+ A value storage protected by a mutex.
+ """
+ def __init__(self):
+ """
+ Initialize value to default and create a lock.
+ """
+ self._value = 0.0
+ self._lock = Lock()
+ self._timestamp = None
+
+ def inc(self, amount):
+ """
+ Increment value by amount under mutex.
+ Add a timestamp of capturing value.
+
+ :param amount: Amount of increment.
+ :type amount: int or float
+ """
+ with self._lock:
+ self._value += amount
+ self._timestamp = time()
+
+ def set(self, value):
+ """
+ Set to a specific value under mutex.
+ Add a timestamp of capturing value.
+
+ :param value: Amount of increment.
+ :type value: int or float
+ """
+ with self._lock:
+ self._value = value
+ self._timestamp = time()
+
+ def get(self):
+ """
+ Get a value under mutex.
+
+ :returns: Stored value.
+ :rtype: int or float
+ """
+ with self._lock:
+ return self._value
+
+ def get_timestamp(self):
+ """
+ Get a timestamp under mutex.
+
+ :returns: Stored timestamp.
+ :rtype: str
+ """
+ with self._lock:
+ return self._timestamp
+
+
+class Metric:
+ """
+ A single metric parent and its samples.
+ """
+ def __init__(self, name, documentation, typ):
+ """
+ Initialize class and do basic sanitize.
+
+ :param name: Full metric name.
+ :param documentation: Metric HELP string.
+ :param typ: Metric type [counter|gauge|info].
+ :type name: str
+ :type documentation: str
+ :type typ: str
+ """
+ self.metric_types = (
+ u"counter", u"gauge", u"info"
+ )
+ self.metric_sample = namedtuple(
+ u"Sample", [u"name", u"labels", u"value", u"timestamp"]
+ )
+
+ if not re.compile(r"^[a-zA-Z._:][a-zA-Z0-9._:]*$").match(name):
+ raise ValueError(f"Invalid metric name: {name}!")
+ if typ not in self.metric_types:
+ raise ValueError(f"Invalid metric type: {typ}!")
+
+ self.name = name
+ self.documentation = documentation
+ self.type = typ
+ self.samples = []
+
+ def add_sample(self, name, labels, value, timestamp):
+ """
+ Add a sample (entry) to the metric.
+
+ :param name: Full metric name.
+ :param labels: Metric labels.
+ :param value: Metric value.
+ :param timestamp: Timestamp. Default to be when accessed.
+ :type name: str
+ :type lables: tuple
+ :type value: int or float
+ :type timestamp: float
+ """
+ self.samples.append(
+ self.metric_sample(name, labels, value, timestamp)
+ )
+
+ def __eq__(self, other):
+ """
+ Check equality of added metric.
+
+ :param other: Metric to compare.
+ :type other: Metric
+ """
+ return (isinstance(other, Metric)
+ and self.name == other.name
+ and self.documentation == other.documentation
+ and self.type == other.type
+ and self.samples == other.samples)
+
+ def __repr__(self):
+ """
+ Represantation as a string for a debug print.
+ """
+ return (
+ f"Metric({self.name}, "
+ f"{self.documentation}, "
+ f"{self.type}, "
+ f"{self.samples})"
+ )
+
+
+class MetricBase:
+ """
+ Abstract class for Metric implementation.
+ """
+ _type = None
+
+ def __init__(
+ self, name, documentation, labelnames=(), namespace="",
+ subsystem="", labelvalues=None,
+ ):
+ """
+ Metric initialization.
+
+ :param name: Metric name.
+ :param documentation: Metric HELP string.
+ :param labelnames: Metric label list.
+ :param namespace: Metric namespace (will be added as prefix).
+ :param subsystem: Metric susbsystem (will be added as prefix).
+ :param labelvalues: Metric label values.
+ :type name: str
+ :type documentation: str
+ :type labelnames: list
+ :type namespace: str
+ :type subsystem: str
+ :type labelvalues: list
+ """
+ self._name = self.validate_name(name, namespace, subsystem)
+ self._labelnames = self.validate_labelnames(labelnames)
+ self._labelvalues = tuple(labelvalues or ())
+ self._documentation = documentation
+
+ if self._is_parent():
+ self._lock = Lock()
+ self._metrics = {}
+
+ if self._is_observable():
+ self._metric_init()
+
+ @staticmethod
+ def validate_name(name, namespace, subsystem):
+ """
+ Construct metric full name and validate naming convention.
+
+ :param name: Metric name.
+ :param namespace: Metric namespace (will be added as prefix).
+ :param subsystem: Metric susbsystem (will be added as prefix).
+ :type name: str
+ :type namespace: str
+ :type subsystem: str
+ :returns: Metric full name.
+ :rtype: str
+ :rasies ValueError: If name does not conform with naming conventions.
+ """
+ full_name = u""
+ full_name += f"{namespace}." if namespace else u""
+ full_name += f"{subsystem}." if subsystem else u""
+ full_name += name
+
+ if not re.compile(r"^[a-zA-Z._:][a-zA-Z0-9._:]*$").match(full_name):
+ raise ValueError(
+ f"Invalid metric name: {full_name}!"
+ )
+ return full_name
+
+ @staticmethod
+ def validate_labelnames(labelnames):
+ """
+ Create label tuple and validate naming convention.
+
+ :param labelnames: Metric label list.
+ :type labelnames: list
+ :returns: Label names.
+ :rtype: tuple
+ :rasies ValueError: If name does not conform with naming conventions.
+ """
+ labelnames = tuple(labelnames)
+ for label in labelnames:
+ if not re.compile(r"^[a-zA-Z_][a-zA-Z0-9_]*$").match(label):
+ raise ValueError(f"Invalid label metric name: {label}!")
+ if re.compile(r"^__.*$").match(label):
+ raise ValueError(f"Reserved label metric name: {label}!")
+ return labelnames
+
+ def _is_observable(self):
+ """
+ Check whether this metric is observable, i.e.
+ * a metric without label names and values, or
+ * the child of a labelled metric.
+
+ :return: Observable
+ :rtype: bool
+ """
+ return not self._labelnames or (self._labelnames and self._labelvalues)
+
+ def _is_parent(self):
+ """
+ Check whether metric is parent, i.e.
+ * a metric with label names but not its values.
+
+ :return: Parent
+ :rtype: bool
+ """
+ return self._labelnames and not self._labelvalues
+
+ def _get_metric(self):
+ """
+ Returns metric that will handle samples.
+
+ :returns: Metric object.
+ :rtype: Metric
+ """
+ return Metric(self._name, self._documentation, self._type)
+
+ def describe(self):
+ """
+ Returns metric that will handle samples.
+
+ :returns: List of metric objects.
+ :rtype: list
+ """
+ return [self._get_metric()]
+
+ def collect(self):
+ """
+ Returns metric with samples.
+
+ :returns: List with metric object.
+ :rtype: list
+ """
+ metric = self._get_metric()
+ for suffix, labels, value, timestamp in self.samples():
+ metric.add_sample(self._name + suffix, labels, value, timestamp)
+ return [metric]
+
+ def labels(self, *labelvalues, **labelkwargs):
+ """
+ Return the child for the given labelset.
+
+ :param labelvalues: Label values.
+ :param labelkwargs: Dictionary with label names and values.
+ :type labelvalues: list
+ :type labelkwargs: dict
+ :returns: Metric with labels and values.
+ :rtype: Metric
+ :raises ValueError: If labels were not initialized.
+ :raises ValueError: If labels are already set (chaining).
+ :raises ValueError: If both parameters are passed.
+ :raises ValueError: If label values are not matching label names.
+ """
+ if not self._labelnames:
+ raise ValueError(
+ f"No label names were set when constructing {self}!"
+ )
+
+ if self._labelvalues:
+ raise ValueError(
+ f"{self} already has labels set; can not chain .labels() calls!"
+ )
+
+ if labelvalues and labelkwargs:
+ raise ValueError(
+ u"Can't pass both *args and **kwargs!"
+ )
+
+ if labelkwargs:
+ if sorted(labelkwargs) != sorted(self._labelnames):
+ raise ValueError(u"Incorrect label names!")
+ labelvalues = tuple(labelkwargs[l] for l in self._labelnames)
+ else:
+ if len(labelvalues) != len(self._labelnames):
+ raise ValueError(u"Incorrect label count!")
+ labelvalues = tuple(l for l in labelvalues)
+ with self._lock:
+ if labelvalues not in self._metrics:
+ self._metrics[labelvalues] = self.__class__(
+ self._name,
+ documentation=self._documentation,
+ labelnames=self._labelnames,
+ labelvalues=labelvalues
+ )
+ return self._metrics[labelvalues]
+
+ def samples(self):
+ """
+ Returns samples whether an object is parent or child.
+
+ :returns: List of Metric objects with values.
+ :rtype: list
+ """
+ if self._is_parent():
+ return self._multi_samples()
+ return self._child_samples()
+
+ def _multi_samples(self):
+ """
+ Returns parent and its childs with its values.
+
+ :returns: List of Metric objects with values.
+ :rtype: list
+ """
+ with self._lock:
+ metrics = self._metrics.copy()
+ for labels, metric in metrics.items():
+ series_labels = list(zip(self._labelnames, labels))
+ for suffix, sample_labels, value, timestamp in metric.samples():
+ yield (
+ suffix, dict(series_labels + list(sample_labels.items())),
+ value, timestamp
+ )
+
+ def _child_samples(self):
+ """
+ Returns child with its values. Should be implemented by child class.
+
+ :raises NotImplementedError: If implementation in not in subclass.
+ """
+ raise NotImplementedError(
+ f"_child_samples() must be implemented by {self}!"
+ )
+
+ def _metric_init(self):
+ """
+ Initialize the metric object as a child.
+
+ :raises NotImplementedError: If implementation in not in subclass.
+ """
+ raise NotImplementedError(
+ f"_metric_init() must be implemented by {self}!"
+ )
+
+ def __str__(self):
+ """
+ String for a debug print.
+ """
+ return f"{self._type}:{self._name}"
+
+ def __repr__(self):
+ """
+ Represantation as a string for a debug print.
+ """
+ metric_type = type(self)
+ return f"{metric_type.__module__}.{metric_type.__name__}({self._name})"
+
+
+class Counter(MetricBase):
+ """
+ A Counter tracks counts of events or running totals.
+ """
+ _type = u"counter"
+
+ def __init__(self,
+ name,
+ documentation,
+ labelnames=(),
+ namespace=u"",
+ subsystem=u"",
+ labelvalues=None
+ ):
+ """
+ Initialize the Counter metric object.
+
+ :param name: Metric name.
+ :param documentation: Metric HELP string.
+ :param labelnames: Metric label list.
+ :param namespace: Metric namespace (will be added as prefix).
+ :param subsystem: Metric susbsystem (will be added as prefix).
+ :param labelvalues: Metric label values.
+ :type name: str
+ :type documentation: str
+ :type labelnames: list
+ :type namespace: str
+ :type subsystem: str
+ :type labelvalues: list
+ """
+ super(Counter, self).__init__(
+ name=name,
+ documentation=documentation,
+ labelnames=labelnames,
+ namespace=namespace,
+ subsystem=subsystem,
+ labelvalues=labelvalues,
+ )
+
+ def _metric_init(self):
+ """
+ Initialize counter value.
+ """
+ self._value = Value()
+
+ def inc(self, amount=1):
+ """
+ Increment counter by the given amount.
+
+ :param amount: Amount to increment.
+ :type amount: int or float
+ :raises ValueError: If amout is not positive.
+ """
+ if amount < 0:
+ raise ValueError(
+ u"Counters can only be incremented by non-negative amounts."
+ )
+ self._value.inc(amount)
+
+ def _child_samples(self):
+ """
+ Returns list of child samples.
+
+ :returns: List of child samples.
+ :rtype: tuple
+ """
+ return ((u"", {}, self._value.get(), self._value.get_timestamp()),)
+
+
+class Gauge(MetricBase):
+ """
+ Gauge metric, to report instantaneous values.
+ """
+ _type = u"gauge"
+
+ def __init__(self,
+ name,
+ documentation,
+ labelnames=(),
+ namespace=u"",
+ subsystem=u"",
+ labelvalues=None
+ ):
+ """
+ Initialize the Gauge metric object.
+
+ :param name: Metric name.
+ :param documentation: Metric HELP string.
+ :param labelnames: Metric label list.
+ :param namespace: Metric namespace (will be added as prefix).
+ :param subsystem: Metric susbsystem (will be added as prefix).
+ :param labelvalues: Metric label values.
+ :type name: str
+ :type documentation: str
+ :type labelnames: list
+ :type namespace: str
+ :type subsystem: str
+ :type labelvalues: list
+ """
+ super(Gauge, self).__init__(
+ name=name,
+ documentation=documentation,
+ labelnames=labelnames,
+ namespace=namespace,
+ subsystem=subsystem,
+ labelvalues=labelvalues,
+ )
+
+ def _metric_init(self):
+ """
+ Initialize gauge value.
+ """
+ self._value = Value()
+
+ def inc(self, amount=1):
+ """
+ Increment gauge by the given amount.
+
+ :param amount: Amount to increment.
+ :type amount: int or float
+ """
+ self._value.inc(amount)
+
+ def dec(self, amount=1):
+ """
+ Decrement gauge by the given amount.
+
+ :param amount: Amount to decrement.
+ :type amount: int or float
+ """
+ self._value.inc(-amount)
+
+ def set(self, value):
+ """
+ Set gauge to the given value.
+
+ :param amount: Value to set.
+ :type amount: int or float
+ """
+ self._value.set(float(value))
+
+ def _child_samples(self):
+ """
+ Returns list of child samples.
+
+ :returns: List of child samples.
+ :rtype: tuple
+ """
+ return ((u"", {}, self._value.get(), self._value.get_timestamp()),)
+
+
+class Info(MetricBase):
+ """
+ Info metric, key-value pairs.
+ """
+ _type = u"info"
+
+ def __init__(self,
+ name,
+ documentation,
+ labelnames=(),
+ namespace=u"",
+ subsystem=u"",
+ labelvalues=None
+ ):
+ """
+ Initialize the Info metric object.
+
+ :param name: Metric name.
+ :param documentation: Metric HELP string.
+ :param labelnames: Metric label list.
+ :param namespace: Metric namespace (will be added as prefix).
+ :param subsystem: Metric susbsystem (will be added as prefix).
+ :param labelvalues: Metric label values.
+ :type name: str
+ :type documentation: str
+ :type labelnames: list
+ :type namespace: str
+ :type subsystem: str
+ :type labelvalues: list
+ """
+ super(Info, self).__init__(
+ name=name,
+ documentation=documentation,
+ labelnames=labelnames,
+ namespace=namespace,
+ subsystem=subsystem,
+ labelvalues=labelvalues,
+ )
+
+ def _metric_init(self):
+ """
+ Initialize gauge value and time it was created.
+ """
+ self._labelname_set = set(self._labelnames)
+ self._lock = Lock()
+ self._value = {}
+
+ def info(self, value):
+ """
+ Set info to the given value.
+
+ :param value: Value to set.
+ :type value: int or float
+ :raises ValueError: If labels are overlapping.
+ """
+ if self._labelname_set.intersection(value.keys()):
+ raise ValueError(
+ u"Overlapping labels for Info metric, "
+ f"metric: {self._labelnames} child: {value}!"
+ )
+ with self._lock:
+ self._value = dict(value)
+
+ def _child_samples(self):
+ """
+ Returns list of child samples.
+
+ :returns: List of child samples.
+ :rtype: tuple
+ """
+ with self._lock:
+ return ((u"_info", self._value, 1.0, time()),)
diff --git a/resources/tools/telemetry/parser.py b/resources/tools/telemetry/parser.py
new file mode 100644
index 0000000000..1570a4f047
--- /dev/null
+++ b/resources/tools/telemetry/parser.py
@@ -0,0 +1,108 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""Configuration parsing library."""
+
+from logging import getLogger
+from pathlib import Path
+import sys
+
+from yaml import safe_load, YAMLError
+from .constants import Constants
+
+
+class Parser:
+ """
+ Parser class reponsible for loading configuration.
+ """
+ def __init__(self, configuration_file):
+ """
+ Config Parser init.
+
+ :param configuration_file: Telemetry configuration file path.
+ :type configuration_file: str
+ """
+ self.instance = None
+ self.config = None
+ self.suffix = Path(configuration_file).suffix[1:].capitalize()
+
+ try:
+ self.instance = globals()[self.suffix+"Loader"](configuration_file)
+ except KeyError:
+ raise ParserError(u"Unsupported file format!")
+
+ self.config = FileLoader(self.instance).load()
+
+
+class FileLoader:
+ """
+ Creates a File Loader object. This is the main object for interacting
+ with configuration file.
+ """
+ def __init__(self, loader):
+ """
+ File Loader class init.
+
+ :param loader: Loader object responsible for handling file type.
+ :type loader: obj
+ """
+ self.loader = loader
+
+ def load(self):
+ """
+ File format parser.
+ """
+ return self.loader.load()
+
+
+class YamlLoader:
+ """
+ Creates a YAML Loader object. This is the main object for interacting
+ with YAML file.
+ """
+ def __init__(self, configuration_file):
+ """
+ YAML Loader class init.
+
+ :param configuration_file: YAML configuration file path.
+ :type configuration_file: str
+ """
+ self.configuration_file = configuration_file
+
+ def load(self):
+ """
+ YAML format parser.
+ """
+ with open(self.configuration_file, u"r") as stream:
+ try:
+ return safe_load(stream)
+ except YAMLError as exc:
+ raise ParserError(str(exc))
+
+
+class ParserError(Exception):
+ """
+ Creates a Parser Error Exception. This exception is supposed to handle
+ all the errors raised during processing.
+ """
+ def __init__(self, message):
+ """
+ Parser Error Excpetion init.
+
+ :param message: Exception error message.
+ :type message: str
+ """
+ super().__init__()
+ self.message = message
+ getLogger("console_stderr").error(self.message)
+ sys.exit(Constants.err_telemetry_yaml)
diff --git a/resources/tools/telemetry/serializer.py b/resources/tools/telemetry/serializer.py
new file mode 100644
index 0000000000..e28454fc8b
--- /dev/null
+++ b/resources/tools/telemetry/serializer.py
@@ -0,0 +1,111 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+"""Config executor library."""
+
+from importlib import import_module
+from logging import getLogger
+
+
+class Serializer:
+ """
+ Executor class responsible for executing configuration.
+ """
+ def __init__(self):
+ """
+ Config Executor init.=
+ """
+ self.metric_registry = dict()
+
+ def create(self, metrics):
+ """
+ Create metrics based on input configuration.
+
+ :param metrics: Metric list to create.
+ :type metrics: list
+ """
+ for metric_type, metric_list in metrics.items():
+ for metric in metric_list:
+ module = import_module(
+ name=u"telemetry.metrics", package=metric_type.capitalize()
+ )
+ self.metric_registry[metric[u"name"]] = getattr(
+ module, metric_type.capitalize()
+ )(**metric)
+
+ def serialize(self, metric, labels, item):
+ """
+ Serialize metric into destination format.
+
+ :param metrics: Metric name.
+ :param labels: Metric labels.
+ :param item: Metric dict.
+ :type metrics: str
+ :type labels: dict
+ :type item: dict
+ """
+ if type(self.metric_registry[metric]).__name__ == u"Counter":
+ self.metric_registry[metric].labels(**labels).inc(
+ float(item[u"value"])
+ )
+ if type(self.metric_registry[metric]).__name__ == u"Gauge":
+ self.metric_registry[metric].labels(**labels).set(
+ float(item[u"value"])
+ )
+ if type(self.metric_registry[metric]).__name__ == u"Info":
+ self.metric_registry[metric].labels(**labels).info(
+ item[u"value"]
+ )
+
+ def publish(self):
+ """
+ Publish metric into logger.
+ """
+ output = []
+ for _, metric_list in self.metric_registry.items():
+ for metric in metric_list.collect():
+ mname = metric.name
+ mtype = metric.type
+
+ # Adjust from OpenMetrics into Prometheus format.
+ mname = f"{mname}_total" if mtype == u"counter" else mname
+ mname = f"{mname}_info" if mtype == u"info" else mname
+ if mtype in (u"info", u"stateset"):
+ mtype = u"gauge"
+ if mtype in (u"gaugehistogram", u"histogram"):
+ mtype = u"histogram"
+
+ mdocumentation = metric.documentation.replace(u"\\", r"\\")
+ mdocumentation = mdocumentation.replace(u"\n", r"\n")
+ output.append(f"# HELP {mname} {mdocumentation}\n")
+ output.append(f"# TYPE {mname} {mtype}\n")
+
+ for line in metric.samples:
+ if line.labels:
+ llabel = []
+ for k, value in sorted(line.labels.items()):
+ value = str(value)
+ value = value.replace(u"\\", r"\\")
+ value = value.replace(u"\n", r"\n")
+ value = value.replace(u'"', r'\"')
+ llabel.append(f'{k}="{value}"')
+ labelstr = f"{{{','.join(llabel)}}}"
+ else:
+ labelstr = u""
+
+ timestamp = f" {int(float(line.timestamp) * 1000):d}" \
+ if line.timestamp else u""
+ output.append(
+ f"{line.name}{labelstr} {line.value}{timestamp}\n"
+ )
+ getLogger(u"prom").info(u"".join(output))
diff --git a/resources/tools/testbed-setup/README.rst b/resources/tools/testbed-setup/README.rst
deleted file mode 100644
index 9059e28500..0000000000
--- a/resources/tools/testbed-setup/README.rst
+++ /dev/null
@@ -1,152 +0,0 @@
-Testbed Setup
-=============
-
-Introduction
-------------
-
-This directory contains the *high-level* process to set up a hardware machine
-as a CSIT testbed, either for use as a physical performance testbed host or as
-a vpp_device host.
-
-Code in this directory is NOT executed as part of a regular CSIT test case
-but is stored here for ad-hoc installation of HW, archiving and documentation
-purposes.
-
-Documentation below is step by step tutorial and assumes an understanding of PXE
-boot and `Ansible <https://www.ansible.com/>`_ and managing physical hardware
-via CIMC or IPMI.
-
-This process is not specific for Linux Foundation lab, but associated files and
-code, is based on the assumption that it runs in Linux Foundation environment.
-If run elsewhere, changes will be required in following files:
-
-#. Inventory directory: `ansible/inventories/sample_inventory/`
-#. Inventory files: `ansible/inventories/sample_inventory/hosts`
-
-The process below assumes that there is a host used for bootstrapping (referred
-to as a "Cobbler provision host" below), with reachable DHCP service.
-
-Ansible host
-------------
-
-Prerequisities for running Ansible
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- CIMC/IPMI address, username, password are set in BIOS.
-- Ansible can be invoked on any host that has direct SSH connectivity to
- the remote hosts that will be provisioned (does not need to be Cobbler
- provision host). This may require installed ssh_keys `ssh-copy-id` on remote
- host or disabled StrictHostChecking on host running Ansible:
-
- ::
-
- Host <host_ip or host subnet_ip>
- StrictHostKeyChecking no
- UserKnownHostsFile=/dev/null
-
-- Ansible version 2.7+ is installed via PIP or via standard package
- distribution (apt, yum, dnf).
-- User `testuser` with password `Csit1234` is created with home folder
- initialized on all remote machines that will be provisioned.
-- Inventory directory is created with same or similar content as
- `inventories/lf_inventory` in `inventories/` directory (`sample_inventory`
- can be used).
-- Group variables in `ansible/inventories/<inventory>/group_vars/all.yaml` are
- adjusted per environment with special attention to `proxy_env` variable.
-- Host variables in `ansible/inventories/<inventory>/host_vars/x.x.x.x.yaml` are
- defined.
-
-Ansible structure
-~~~~~~~~~~~~~~~~~
-
-Ansible is defining roles `tg` (Traffic Generator), `sut` (System Under Test),
-`vpp_device` (vpp_device host for functional device testing), `common`
-(Applicable for all hosts in inventory) and `cobbler` (Cobbler provision host).
-
-Each host has corresponding Ansible role mapped and is applied only if a host
-with that role is present in inventory file. As a part of optimization the role
-`common` contains Ansible tasks applied for all hosts.
-
-.. note::
-
- You may see `[WARNING]: Could not match supplied host pattern, ignoring:
- <role>` in case you have not define hosts for that particular role.
-
-Ansible structure is described below:
-
-.. code-block:: bash
-
- .
- ├── inventories # Contains all inventories.
- │   ├── sample_inventory # Sample, free for edits outside of LF.
- │   │   ├── group_vars # Variables applied for all hosts.
- │   │   │   └── all.yaml
- │   │   ├── hosts # Inventory list with sample hosts.
- │   │   └── host_vars # Variables applied for single host only.
- │   │   └── 1.1.1.1.yaml # Sample host with IP 1.1.1.1
- │   └── lf_inventory # Linux Foundation inventory.
- │   ├── group_vars
- │   │   └── all.yaml
- │   ├── hosts
- │   └── host_vars
- ├── roles # CSIT roles.
- │   ├── cobbler # Role applied for Cobbler host only.
- │   ├── common # Role applied for all hosts.
- │   ├── sut # Role applied for all SUTs only.
- │   ├── tg # Role applied for all TGs only.
- │   ├── tg_sut # Role applied for TGs and SUTs only.
- │   └── vpp_device # Role applied for vpp_device only.
- ├── site.yaml # Main playbook.
- ├── sut.yaml # SUT playbook.
- ├── tg.yaml # TG playbook.
- ├── vault_pass # Main password for vault.
- ├── vault.yml # Ansible vault storage.
- └── vpp_device.yaml # vpp_device playbook.
-
-Tagging
-~~~~~~~
-
-Every task, handler, role or playbook is tagged with self-explanatory tag(s)
-that could be used to limit which Ansible objects are applied to target systems.
-
-You can see what tags are applied to tasks, roles, and static imports by
-running `ansible-playbook` with the `--list-tasks` option. You can display all
-tags applied to the tasks with the `--list-tags` option.
-
-Running Ansible
-~~~~~~~~~~~~~~~
-
-#. Go to ansible directory: `$ cd csit/resources/tools/testbed-setup/ansible`
-#. Run ansible on selected hosts:
- `$ ansible-playbook --vault-password-file=vault_pass --extra-vars
- '@vault.yml' --inventory <inventory_file> site.yaml --limit <host_ip>`
-#. (Optional) Run ansible on selected hosts with selected tags:
- `$ ansible-playbook --vault-password-file=vault_pass --extra-vars
- '@vault.yml' --inventory <inventory_file> site.yaml --limit <host_ip>
- --tags 'copy-90-csit'`
-
-.. note::
-
- In case you want to provision only particular role. You can use tags: `tg`,
- `sut`, `vpp_device`.
-
-Baremetal provisioning of host via Ansible Cobbler module
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Baremetal provisioning of the host with Ansible is done via `Cobbler
-<https://cobbler.github.io/>`_. Ansible contains a role `cobbler` that includes
-a set of tasks for deploying Cobbler in a container on dedicated host.
-Container is built during Ansible run of `cobbler` role and it provides DHCPD,
-TFTPD, HTTTP and Cobbler services.
-
-There is a special set of tasks and handlers in `common` role that does include
-a system into Cobbler and reboots provisioned host.
-
-#. Go to Ansible directory: `$ cd csit/resources/tools/testbed-setup/ansible`
-#. Prepare Cobbler provision host via Ansible on dedicated hosts:
- `$ ansible-playbook --vault-password-file=vault_pass --extra-vars
- '@vault.yml' --inventory <inventory_file> site.yaml --limit <cobbler_ip>`
-#. Run Ansible on selected hosts with selected tags:
- `$ ansible-playbook --vault-password-file=vault_pass --extra-vars
- '@vault.yml' --inventory <inventory_file> site.yaml --limit <host_ip>
- --tags 'provision'`
diff --git a/resources/tools/testbed-setup/ansible/dev.yaml b/resources/tools/testbed-setup/ansible/dev.yaml
deleted file mode 100644
index 48ec6b21c5..0000000000
--- a/resources/tools/testbed-setup/ansible/dev.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
----
-# file: dev.yaml
-
-- hosts: dev
- remote_user: testuser
- become: yes
- become_user: root
- roles:
- - role: user_add
- tags: user_add
- - role: docker
- tags: docker
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/group_vars/all.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/group_vars/all.yaml
deleted file mode 100644
index 0756621eef..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/group_vars/all.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-# file: lf_inventory/group_vars/all.yaml
-
-# Ansible interpreter (for PIP)
-ansible_python_interpreter: "/usr/bin/python3"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml
deleted file mode 100644
index 660e33ee53..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.16.yaml
-
-hostname: "t1-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-17,19-35"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-17,19-35"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-17,19-35"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,18"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_cimc_hostname: '10.30.50.16'
-cpu_microarchitecture: "haswell"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml
deleted file mode 100644
index 48e5083332..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.17.yaml
-
-hostname: "t1-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-17,19-35"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-17,19-35"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-17,19-35"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,18"
- vm:
- nr_hugepages: 36864
- max_map_count: 20000
-
-inventory_cimc_hostname: '10.30.50.17'
-cpu_microarchitecture: "haswell"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml
deleted file mode 100644
index f823ed6406..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.18.yaml
-
-hostname: "t1-sut2"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-17,19-35"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-17,19-35"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-17,19-35"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,18"
- vm:
- nr_hugepages: 36864
- max_map_count: 20000
-
-inventory_cimc_hostname: '10.30.50.18'
-cpu_microarchitecture: "haswell"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml
deleted file mode 100644
index 68af6e81f7..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.20.yaml
-
-hostname: "t2-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-17,19-35"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-17,19-35"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-17,19-35"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,18"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_cimc_hostname: '10.30.50.20'
-cpu_microarchitecture: "haswell"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml
deleted file mode 100644
index 0d43874ae3..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.21.yaml
-
-hostname: "t2-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-17,19-35"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-17,19-35"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-17,19-35"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,18"
- vm:
- nr_hugepages: 36864
- max_map_count: 20000
-
-inventory_cimc_hostname: '10.30.50.21'
-cpu_microarchitecture: "haswell"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml
deleted file mode 100644
index 797606a353..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.22.yaml
-
-hostname: "t2-sut2"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-17,19-35"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-17,19-35"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-17,19-35"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,18"
- vm:
- nr_hugepages: 36864
- max_map_count: 20000
-
-inventory_cimc_hostname: '10.30.50.22'
-cpu_microarchitecture: "haswell"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml
deleted file mode 100644
index 25bb536f81..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.24.yaml
-
-hostname: "t3-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-17,19-35"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-17,19-35"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-17,19-35"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,18"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_cimc_hostname: '10.30.50.24'
-cpu_microarchitecture: "haswell"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml
deleted file mode 100644
index db02aa7816..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.25.yaml
-
-hostname: "t3-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-17,19-35"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-17,19-35"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-17,19-35"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,18"
- vm:
- nr_hugepages: 36864
- max_map_count: 20000
-
-inventory_cimc_hostname: '10.30.50.25'
-cpu_microarchitecture: "haswell"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml
deleted file mode 100644
index 0e97bd0fd2..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.26.yaml
-
-hostname: "t3-sut2"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-17,19-35"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-17,19-35"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-17,19-35"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,18"
- vm:
- nr_hugepages: 36864
- max_map_count: 20000
-
-inventory_cimc_hostname: '10.30.50.26'
-cpu_microarchitecture: "haswell"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
deleted file mode 100644
index 617304aef6..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
----
-# file: host_vars/10.30.51.28.yaml
-
-hostname: "s41-nomad"
-inventory_cimc_hostname: "10.30.50.28"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v2_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v2_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v2_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
- fingerprint.network.disallow_link_local: true
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml
deleted file mode 100644
index 0cc15e23b7..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
----
-# file: host_vars/10.30.51.29.yaml
-
-hostname: "s39-nomad"
-inventory_cimc_hostname: "10.30.50.29"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
deleted file mode 100644
index 75f43beba2..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
----
-# file: host_vars/10.30.51.30.yaml
-
-hostname: "s40-nomad"
-inventory_cimc_hostname: "10.30.50.30"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v2_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v2_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v2_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "both"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
- fingerprint.network.disallow_link_local: true
-nomad_retry_servers: [ "10.30.51.32", "10.30.51.33" ]
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "both"
-consul_retry_servers:
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml
deleted file mode 100644
index f8662eac43..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.32.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
----
-# file: host_vars/10.30.51.32.yaml
-
-hostname: "s42-nomad"
-inventory_cimc_hostname: "10.30.50.32"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v2_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v2_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v2_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "both"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_retry_servers: [ "10.30.51.33", "10.30.51.30" ]
-nomad_servers: [ "10.30.51.32:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "both"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml
deleted file mode 100644
index ae47f9f23a..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.33.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
----
-# file: host_vars/10.30.51.33.yaml
-
-hostname: "s43-nomad"
-inventory_cimc_hostname: "10.30.50.33"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v2_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v2_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v2_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "both"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_retry_servers: [ "10.30.51.32", "10.30.51.30" ]
-nomad_servers: [ "10.30.51.33:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "both"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml
deleted file mode 100644
index 50981b8d2e..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.34.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
----
-# file: host_vars/10.30.51.34.yaml
-
-hostname: "s44-nomad"
-inventory_cimc_hostname: "10.30.50.34"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v2_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v2_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v2_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_retry_servers: [ "10.30.51.32", "10.30.51.33" ]
-nomad_servers: [ "10.30.51.33:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml
deleted file mode 100644
index 48402542ce..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.35.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
----
-# file: host_vars/10.30.51.35.yaml
-
-hostname: "s45-nomad"
-inventory_cimc_hostname: "10.30.50.35"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v2_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v2_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v2_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_retry_servers: [ "10.30.51.32", "10.30.51.33" ]
-nomad_servers: [ "10.30.51.33:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml
deleted file mode 100644
index f57c8df45f..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-# file: host_vars/10.30.51.36.yaml
-
-hostname: "s17-t33-sut1"
-grub:
- audit: "0"
- intel_iommu: "on"
- isolcpus: "1-15,17-31,33-47,49-63"
- nmi_watchdog: "0"
- nohz_full: "1-15,17-31,33-47,49-63"
- nosoftlockup: True
- processor.max_cstate: "1"
- rcu_nocbs: "1-15,17-31,33-47,49-63"
-sysctl:
- kernel:
- watchdog_cpumask: "0,16,32,48"
- vm:
- nr_hugepages: 32768
-
-inventory_ipmi_hostname: '10.30.50.36'
-cpu_microarchitecture: "taishan"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
deleted file mode 100644
index 90fe27e275..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-# file: host_vars/10.30.51.37.yaml
-
-hostname: "s18-t33-sut2"
-grub:
- audit: "0"
- intel_iommu: "on"
- isolcpus: "1-15,17-31,33-47,49-63"
- nmi_watchdog: "0"
- nohz_full: "1-15,17-31,33-47,49-63"
- nosoftlockup: True
- processor.max_cstate: "1"
- rcu_nocbs: "1-15,17-31,33-47,49-63"
-sysctl:
- kernel:
- watchdog_cpumask: "0,16,32,48"
- vm:
- nr_hugepages: 32768
-
-inventory_ipmi_hostname: '10.30.50.37'
-cpu_microarchitecture: "taishan"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.38.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.38.yaml
deleted file mode 100644
index 77fee7377b..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.38.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
----
-# file: host_vars/10.30.51.38.yaml
-
-hostname: "fdio-marvell-dev"
-inventory_ipmi_hostname: "10.30.50.38"
-cpu_microarchitecture: "thunderx"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: vppdev
- groups: [adm, sudo]
- password: "$6$C5R6nFQlJ9Vu$l.Q6BDOMSgUFQv5OQw4viZVz8LCHziubXAwThaJXo/xVaAkqTGupPTvdMlK5r4ArDvDMPgD0AeO8/L.ciPl.g."
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.39.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.39.yaml
deleted file mode 100644
index aebc8b3907..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.39.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
----
-# file: host_vars/10.30.51.39.yaml
-
-hostname: "s53-nomad"
-inventory_ipmi_hostname: "10.30.50.39"
-cpu_microarchitecture: "thunderx"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 0
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-nomad_cpu_total_compute: "40000"
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33"
- - "10.32.8.14"
- - "10.32.8.15"
- - "10.32.8.16" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml
deleted file mode 100644
index 5f82e294a6..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.40.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
----
-# file: host_vars/10.30.51.40.yaml
-
-hostname: "s54-nomad"
-inventory_ipmi_hostname: "10.30.50.40"
-cpu_microarchitecture: "thunderx"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 0
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-nomad_cpu_total_compute: "40000"
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33"
- - "10.32.8.14"
- - "10.32.8.15"
- - "10.32.8.16" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml
deleted file mode 100644
index 2b06831186..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.44.yaml
-
-hostname: "s3-t21-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 65536
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.41'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml
deleted file mode 100644
index 9818f826c9..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.45.yaml
-
-hostname: "s4-t21-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.42'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml
deleted file mode 100644
index 24be5e2e54..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.46.yaml
-
-hostname: "s11-t31-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 36864
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.43'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml
deleted file mode 100644
index 7b59ff1606..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.47.yaml
-
-hostname: "s12-t31-sut2"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 36864
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.44'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml
deleted file mode 100644
index d69fd03edc..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.48.yaml
-
-hostname: "s13-t31-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.45'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml
deleted file mode 100644
index 62ef6da2ce..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.49.yaml
-
-hostname: "s19-t33t34-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.46'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
deleted file mode 100644
index c2a7bd782c..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
----
-# file: host_vars/10.30.51.50.yaml
-
-hostname: "s1-t11-sut1"
-grub:
- hugepagesz: "2M"
- nr_hugepages: 65536
-inventory_ipmi_hostname: "10.30.50.47"
-cpu_microarchitecture: "skylake"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "csit"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- docker.volumes.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
deleted file mode 100644
index fb10e11c76..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
----
-# file: host_vars/10.30.51.51.yaml
-
-hostname: "s2-t12-sut1"
-grub:
- hugepagesz: "2M"
- nr_hugepages: 65536
-inventory_ipmi_hostname: "10.30.50.48"
-cpu_microarchitecture: "skylake"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "csit"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- docker.volumes.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
deleted file mode 100644
index 4a4ccc0d91..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.52.yaml
-
-hostname: "s5-t22-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 65536
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.49'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
deleted file mode 100644
index f0a50bfb71..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.53.yaml
-
-hostname: "s6-t22-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.50'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
deleted file mode 100644
index b51eed468f..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.54.yaml
-
-hostname: "s7-t23-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 65536
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.51'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
deleted file mode 100644
index 4b144fa69b..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.55.yaml
-
-hostname: "s8-t23-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.52'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml
deleted file mode 100644
index 613c9b110c..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.56.yaml
-
-hostname: "s9-t24-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 65536
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.53'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
deleted file mode 100644
index 52ec3d9911..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.57.yaml
-
-hostname: "s10-t24-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.54'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml
deleted file mode 100644
index 8971b4a7bb..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.58.yaml
-
-hostname: "s14-t32-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 36864
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.55'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
deleted file mode 100644
index ed39581e30..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.59.yaml
-
-hostname: "s15-t32-sut2"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 36864
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.56'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml
deleted file mode 100644
index 1e3a49cf1d..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.30.51.60.yaml
-
-hostname: "s16-t32-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.50.57'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.65.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.65.yaml
deleted file mode 100644
index 5889b1e8b8..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.65.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
----
-# file: host_vars/10.30.51.65.yaml
-
-hostname: "s52-nomad"
-inventory_ipmi_hostname: "10.30.50.65"
-cpu_microarchitecture: "thunderx"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 0
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-nomad_cpu_total_compute: "40000"
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.66.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.66.yaml
deleted file mode 100644
index 419403890b..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.66.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
----
-# file: host_vars/10.30.51.66.yaml
-
-hostname: "s51-nomad"
-inventory_ipmi_hostname: "10.30.50.66"
-cpu_microarchitecture: "thunderx"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 0
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-nomad_cpu_total_compute: "40000"
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.67.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.67.yaml
deleted file mode 100644
index 05e3b2a3af..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.67.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
----
-# file: host_vars/10.30.51.67.yaml
-
-hostname: "s49-nomad"
-inventory_ipmi_hostname: "10.30.50.67"
-cpu_microarchitecture: "thunderx"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 0
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-nomad_cpu_total_compute: "40000"
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.68.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.68.yaml
deleted file mode 100644
index b1df9cc69c..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.68.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
----
-# file: host_vars/10.30.51.68.yaml
-
-hostname: "s50-nomad"
-inventory_ipmi_hostname: "10.30.50.68"
-cpu_microarchitecture: "thunderx"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-nomad_cpu_total_compute: "40000"
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml
deleted file mode 100644
index 0ebda86285..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
----
-# file: host_vars/10.30.51.69.yaml
-
-hostname: "s27-t34-sut1"
-grub:
- audit: "0"
- intel_iommu: "on"
- isolcpus: "1-27,29-55"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55"
- nosoftlockup: True
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28"
- vm:
- nr_hugepages: 57344
- max_map_count: 20000
-
-inventory_ipmi_hostname: "10.30.50.69"
-cpu_microarchitecture: "thunderx2"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml
deleted file mode 100644
index 22107c4f1a..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
----
-# file: host_vars/10.30.51.70.yaml
-
-hostname: "s55-t36-sut1"
-inventory_ipmi_hostname: "10.30.50.70"
-vfs_data_file: "csit-initialize-vfs-tx2.sh"
-grub:
- hugepagesz: "2M"
- nr_hugepages: 65536
-cpu_microarchitecture: "thunderx2"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "csitarm"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- docker.volumes.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-nomad_cpu_total_compute: "40000"
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml
deleted file mode 100644
index f8b7c92df4..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
----
-# file: host_vars/10.30.51.71.yaml
-
-hostname: "s56-t37-sut1"
-inventory_ipmi_hostname: "10.30.50.71"
-vfs_data_file: "csit-initialize-vfs-tx2.sh"
-grub:
- hugepagesz: "2M"
- nr_hugepages: 65536
-cpu_microarchitecture: "thunderx2"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXUbbhesOpvPF+KI8nq4TXvEO/Un1aU/ehZ9clCyw9C40xjDkX2BlcX8WeHxFHe7fjFaCd07Vg73rn/3M9uNDnDxvjH1GQ0twvi3iBTO4PkHBBfGF9qnE8MYzno6FvlsVKLuUuPbfm8kbOQ+ZDfdXq6gdtXh0hSYYkqC1heNPCNsqaakkB99Edyle+Ot0V7cpW+Yo2wo98KuX/cgUEhVoA8QnNVE7zaWcjSXBZEteoA4gLpAbV6p67/d6H/2ykHTidBViYTEsHco56tJoA4nTPuAupDOLBcWXgF5TAN6z1aCn2JA1DDfniLakgrZ5oVj2qHhUmbxQAtnKQfHADjqzV jlinkes@jlinkes"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v1_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v1_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v1_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "csitarm"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: false
- docker.privileged.enabled: true
- docker.volumes.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-nomad_cpu_total_compute: "40000"
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml
deleted file mode 100644
index 05f1a19576..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# file: host_vars/10.32.8.10.yaml
-
-hostname: "s28-t26t35-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 16384
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.55.10'
-cpu_microarchitecture: "skylake"
-docker_tg: true
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml
deleted file mode 100644
index c6cb68cb5d..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.32.8.11.yaml
-
-hostname: "s29-t26-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-5"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-5"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-5"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.55.11'
-cpu_microarchitecture: "denverton"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml
deleted file mode 100644
index 5d350647a9..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.32.8.12.yaml
-
-hostname: "s30-t35-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-5"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-5"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-5"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.55.12'
-cpu_microarchitecture: "denverton"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml
deleted file mode 100644
index aff600265c..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.32.8.13.yaml
-
-hostname: "s31-t35-sut2"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-5"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-5"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-5"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.55.13'
-cpu_microarchitecture: "denverton"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml
deleted file mode 100644
index dd2a2f5b95..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.14.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
----
-# file: host_vars/10.32.8.14.yaml
-
-hostname: "s46-nomad"
-inventory_ipmi_hostname: "10.30.55.14"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v3_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v3_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v3_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "s5ci"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: true
- docker.privileged.enabled: true
- docker.volumes.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
- fingerprint.network.disallow_link_local: true
-nomad_retry_servers: [ "10.30.51.30", "10.30.51.32", "10.30.51.33" ]
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-nomad_volumes:
- - name: "prod-volume-data1-1"
- path: "/data"
- read_only: false
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml
deleted file mode 100644
index 7e103cf8c7..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.15.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
----
-# file: host_vars/10.32.8.15.yaml
-
-hostname: "s47-nomad"
-inventory_ipmi_hostname: "10.30.55.15"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v3_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v3_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v3_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: true
- docker.privileged.enabled: true
- docker.volumes.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
- fingerprint.network.disallow_link_local: true
-nomad_retry_servers: [ "10.30.51.30", "10.30.51.32", "10.30.51.33" ]
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647" ]
-nomad_volumes:
- - name: "prod-volume-data2-1"
- path: "/data"
- read_only: false
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.16.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.16.yaml
deleted file mode 100644
index e1b47cae15..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.16.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
----
-# file: host_vars/10.32.8.16.yaml
-
-hostname: "s48-nomad"
-inventory_ipmi_hostname: "10.30.55.16"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v3_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v3_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v3_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: true
- docker.privileged.enabled: true
- docker.volumes.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
- fingerprint.network.disallow_link_local: true
-nomad_retry_servers: [ "10.30.51.30", "10.30.51.32", "10.30.51.33" ]
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647", "10.30.51.30:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.17.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.17.yaml
deleted file mode 100644
index 6a4e238bdc..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.17.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
----
-# file: host_vars/10.32.8.17.yaml
-
-hostname: "s57-nomad"
-inventory_ipmi_hostname: "10.30.55.17"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
- - username: testuser
- groups: [adm, sudo]
- password: "$6$zpBUdQ4q$P2zKclumvCndWujgP/qQ8eMk3YZk7ESAom04Fqp26hJH2jWkMXEX..jqxzMdDLJKiDaDHIaSkQMVjHzd3cRLs1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ vault_nomad_v3_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_v3_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_v3_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_datacenter: "yul1"
-nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-nomad_name: "{{ hostname }}-{{ ansible_architecture }}"
-nomad_node_role: "client"
-nomad_node_class: "builder"
-nomad_options:
- driver.raw_exec.enable: 1
- docker.cleanup.image: true
- docker.privileged.enabled: true
- docker.volumes.enabled: true
- driver.whitelist: "docker,raw_exec,exec"
- fingerprint.network.disallow_link_local: true
-nomad_retry_servers: [ "10.30.51.30", "10.30.51.32", "10.30.51.33" ]
-nomad_servers: [ "10.30.51.32:4647", "10.30.51.33:4647", "10.30.51.30:4647" ]
-
-# Consul settigs.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.30"
- - "10.30.51.32"
- - "10.30.51.33" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml
deleted file mode 100644
index 6fe0dbc14d..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.32.8.18.yaml
-
-hostname: "s33-t27-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-23,25-47,49-71,73-95"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-23,25-47,49-71,73-95"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-23,25-47,49-71,73-95"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,24,48,72"
- vm:
- nr_hugepages: 65536
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.55.18'
-cpu_microarchitecture: "cascadelake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml
deleted file mode 100644
index f963d4b888..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.32.8.19.yaml
-
-hostname: "s34-t27-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.55.19'
-cpu_microarchitecture: "cascadelake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml
deleted file mode 100644
index 6913550686..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.32.8.20.yaml
-
-hostname: "s35-t28-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-23,25-47,49-71,73-95"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-23,25-47,49-71,73-95"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-23,25-47,49-71,73-95"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,24,48,72"
- vm:
- nr_hugepages: 65536
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.55.20'
-cpu_microarchitecture: "cascadelake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml
deleted file mode 100644
index 98cffb3392..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.32.8.21.yaml
-
-hostname: "s36-t28-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.55.21'
-cpu_microarchitecture: "cascadelake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml
deleted file mode 100644
index f58b2ce07d..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.32.8.22.yaml
-
-hostname: "s37-t29-sut1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-23,25-47,49-71,73-95"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-23,25-47,49-71,73-95"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-23,25-47,49-71,73-95"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,24,48,72"
- vm:
- nr_hugepages: 65536
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.55.22'
-cpu_microarchitecture: "cascadelake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml
deleted file mode 100644
index 364ab8b295..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: host_vars/10.32.8.23.yaml
-
-hostname: "s38-t29-tg1"
-grub:
- audit: "0"
- hpet: "disable"
- intel_idle.max_cstate: "1"
- intel_iommu: "on"
- intel_pstate: "disable"
- iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
- mce: "off"
- nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,28,56,84"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: '10.30.55.23'
-cpu_microarchitecture: "cascadelake"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml
deleted file mode 100644
index dc8a060cc0..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-# file: host_vars/10.32.8.24.yaml
-
-hostname: "s60-t210-sut1"
-grub:
- amd_iommu: "on"
- audit: "0"
- hpet: "disable"
- iommu: "pt"
- isolcpus: "1-15,17-31,33-47,49-63"
- nmi_watchdog: "0"
- nohz_full: "off"
- nosoftlockup: True
- numa_balancing: "disable"
- processor.max_cstate: "0"
- rcu_nocbs: "1-15,17-31,33-47,49-63"
- tsc: "reliable"
-sysctl:
- kernel:
- watchdog_cpumask: "0,16,32,48"
- vm:
- nr_hugepages: 8192
- max_map_count: 20000
-
-inventory_ipmi_hostname: "10.30.55.24"
-cpu_microarchitecture: "epyc"
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts
deleted file mode 100644
index cc0e0b3986..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts
+++ /dev/null
@@ -1,74 +0,0 @@
-all:
- children:
- tg:
- hosts:
- 10.30.51.16: #t1-tg1 - haswell
- 10.30.51.20: #t2-tg1 - haswell
- 10.30.51.24: #t3-tg1 - haswell
- 10.30.51.45: #s4-t21-tg1 - skylake
- 10.30.51.48: #s13-t31-tg1 - skylake
- 10.30.51.49: #s19-t33t34-tg1 - skylake
- 10.30.51.53: #s6-t22-tg1 - skylake
- 10.30.51.55: #s8-t23-tg1 - skylake
- 10.30.51.57: #s10-t24-tg1 - skylake
- 10.30.51.60: #s16-t32-tg1 - skylake
- 10.32.8.10: #s28-t26t35-tg1 - skylake
- 10.32.8.19: #s34-t27-tg1 - cascadelake
- 10.32.8.21: #s36-t28-tg1 - cascadelake
- 10.32.8.23: #s38-t29-tg1 - cascadelake
- 10.32.8.25: #s61-t210-tg1 - epyc
- sut:
- hosts:
- 10.30.51.17: #t1-sut1 - haswell
- 10.30.51.18: #t1-sut2 - haswell
- 10.30.51.21: #t2-sut1 - haswell
- 10.30.51.22: #t2-sut2 - haswell
- 10.30.51.25: #t3-sut1 - haswell
- 10.30.51.26: #t3-sut2 - haswell
- 10.30.51.36: #s17-t33-sut1 - taishan
- 10.30.51.37: #s18-t33-sut2 - taishan
- 10.30.51.44: #s3-t21-sut1 - skylake
- 10.30.51.46: #s11-t31-sut1 - skylake
- 10.30.51.47: #s12-t31-sut2 - skylake
- 10.30.51.52: #s5-t22-sut1 - skylake
- 10.30.51.54: #s7-t23-sut1 - skylake
- 10.30.51.56: #s9-t24-sut1 - skylake
- 10.30.51.58: #s14-t32-sut1 - skylake
- 10.30.51.59: #s15-t32-sut2 - skylake
- 10.32.8.11: #s29-t26-sut1 - denverton
- 10.32.8.12: #s30-t35-sut1 - denverton
- 10.32.8.13: #s31-t35-sut2 - denverton
- 10.32.8.18: #s33-t27-sut1 - cascadelake
- 10.32.8.20: #s35-t28-sut1 - cascadelake
- 10.32.8.22: #s37-t29-sut1 - cascadelake
- 10.32.8.24: #s60-t210-sut1 - epyc
- 10.30.51.69: #s27-t34-sut1 - thunderx2 9975
- vpp_device:
- # Note: vpp_device hosts are also nomad client hosts
- hosts:
- 10.30.51.50: #s1-t11-sut1 - skylake
- 10.30.51.51: #s2-t12-sut1 - skylake
- 10.30.51.70: #s55-t36-sut1 - thunderx2 9980
- 10.30.51.71: #s56-t37-sut1 - thunderx2 9980
- nomad:
- hosts:
- 10.30.51.28: #s41-nomad - haswell
- 10.30.51.29: #s39-nomad - haswell
- 10.30.51.30: #s40-nomad - haswell
- 10.30.51.32: #s42-nomad - ivy bridge
- 10.30.51.33: #s43-nomad - ivy bridge
- 10.30.51.34: #s44-nomad - ivy bridge
- 10.30.51.35: #s45-nomad - ivy bridge
- 10.32.8.14: #s46-nomad - skylake
- 10.32.8.15: #s47-nomad - skylake
- 10.32.8.16: #s48-nomad - skylake
- 10.32.8.17: #s57-nomad - skylake
- 10.30.51.39: #s53-nomad - thunderx 88xx
- 10.30.51.40: #s54-nomad - thunderx 88xx
- 10.30.51.65: #s52-nomad - thunderx 88xx
- 10.30.51.66: #s51-nomad - thunderx 88xx
- 10.30.51.67: #s49-nomad - thunderx 88xx
- 10.30.51.68: #s50-nomad - thunderx 88xx
- dev:
- hosts:
- 10.30.51.38: #fdio-marvell-dev - thunderx 88xx
diff --git a/resources/tools/testbed-setup/ansible/inventories/sample_inventory/group_vars/all.yaml b/resources/tools/testbed-setup/ansible/inventories/sample_inventory/group_vars/all.yaml
deleted file mode 100644
index f9938d20da..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/sample_inventory/group_vars/all.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-# file: sample_inventory/group_vars/all.yaml
-
-# Ansible interpreter (for PIP)
-ansible_python_interpreter: "python3"
diff --git a/resources/tools/testbed-setup/ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml b/resources/tools/testbed-setup/ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml
deleted file mode 100644
index fc4a8af1a8..0000000000
--- a/resources/tools/testbed-setup/ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# file: host_vars/x.x.x.x.yaml
-
-hostname: 't1-tg1'
-grub:
- - isolcpus: '1-27,29-55,57-83,85-111'
- - nohz_full: '1-27,29-55,57-83,85-111'
- - rcu_nocbs: '1-27,29-55,57-83,85-111'
-sysctl:
- - kernel:
- - watchdog_cpumask: '0,28,56,84'
- - vm:
- - nr_hugepages: 4096
- - max_map_count: 20000
-
-inventory_ipmi_hostname: 'x.x.x.x'
-cpu_microarchitecture: "skylake"
diff --git a/resources/tools/testbed-setup/ansible/nomad.yaml b/resources/tools/testbed-setup/ansible/nomad.yaml
deleted file mode 100644
index 653215651a..0000000000
--- a/resources/tools/testbed-setup/ansible/nomad.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-# file: nomad.yaml
-
-- hosts: nomad
- remote_user: testuser
- become: yes
- become_user: root
- roles:
- - role: user_add
- tags: user_add
- - role: baremetal
- tags: baremetal
- - role: docker
- tags: docker
- - role: nomad
- tags: nomad
- - role: consul
- tags: consul \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/ab/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/ab/defaults/main.yaml
deleted file mode 100644
index 0609b06855..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/ab/defaults/main.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# file: roles/wrk/defaults/main.yaml
-
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - []
-
-packages_by_distro:
- ubuntu:
- - "apache2-utils"
-
-packages_by_arch:
- aarch64:
- - []
- x86_64:
- - []
diff --git a/resources/tools/testbed-setup/ansible/roles/ab/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/ab/tasks/main.yaml
deleted file mode 100644
index 9153198cfb..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/ab/tasks/main.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-# file: roles/ab/tasks/main.yaml
-
-- name: Install Apache ab tools
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: present
- update_cache: true
- tags: install-ab
diff --git a/resources/tools/testbed-setup/ansible/roles/aws/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/aws/defaults/main.yaml
deleted file mode 100644
index 706e552f96..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/aws/defaults/main.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-# file: roles/aws/defaults/main.yaml
-
diff --git a/resources/tools/testbed-setup/ansible/roles/aws/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/aws/handlers/main.yaml
deleted file mode 100644
index 7363dc2c34..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/aws/handlers/main.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# file: roles/aws/handlers/main.yaml
-
-- name: Reboot server
- reboot:
- reboot_timeout: 3600
- tags:
- - reboot-server
-
-- name: AWS - Reload systemd-modules
- systemd:
- name: "systemd-modules-load"
- state: "restarted"
- tags:
- - reload-systemd-modules
diff --git a/resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml
deleted file mode 100644
index 7b7a7fbb1a..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
----
-# file: roles/aws/tasks/main.yaml
-
-- name: AWS - Edit repositories
- include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml'
- tags: edit-repo
-
-- name: AWS - Get vfio-pci Patcher Script
- get_url:
- url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/vfio-wc-patch.sh"
- dest: "/opt/vfio-wc-patch.sh"
- mode: "744"
- register: "vfio_patch_downloaded"
- tags:
- - vfio-aws-patch
-
-- name: AWS - Patch vfio-pci
- shell: "/bin/bash /opt/vfio-wc-patch.sh"
- when: "vfio_patch_downloaded"
- tags:
- - vfio-aws-patch
-
-- name: AWS - Load Kernel Modules By Default
- lineinfile:
- path: "/etc/modules"
- state: "present"
- line: "{{ item }}"
- with_items:
- - "vfio-pci"
- - "igb_uio"
- register: "modules_added"
- tags:
- - load-kernel-modules
-
-- name: AWS - Add Kernel Modules Options
- lineinfile:
- path: "/etc/modprobe.d/igb_uio.conf"
- state: "present"
- line: "{{ item }}"
- create: "yes"
- with_items:
- - "options igb_uio wc_activate=1"
- when: "modules_added"
- register: "modules_added"
- tags:
- - load-kernel-modules
-
-- name: AWS - Reload systemd-modules
- systemd:
- name: "systemd-modules-load"
- state: "restarted"
- when: "modules_added"
- tags:
- - reload-systemd-modules
-
-- name: AWS - Performance Tuning - Adjust nr_hugepages
- sysctl:
- name: "vm.nr_hugepages"
- value: "8192"
- state: "present"
- sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
- tags:
- - set-sysctl
diff --git a/resources/tools/testbed-setup/ansible/roles/aws/tasks/ubuntu_bionic.yaml b/resources/tools/testbed-setup/ansible/roles/aws/tasks/ubuntu_bionic.yaml
deleted file mode 100644
index 75e4a3ae57..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/aws/tasks/ubuntu_bionic.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-# file: roles/aws/tasks/ubuntu_bionic.yaml
-
-- name: AWS - Enable deb-src APT Repositories
- replace:
- path: "/etc/apt/sources.list"
- regexp: "^# deb-src "
- replace: "deb-src "
- tags:
- - enable-src-repo
diff --git a/resources/tools/testbed-setup/ansible/roles/azure/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/azure/defaults/main.yaml
deleted file mode 100644
index 8c48c307bc..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/azure/defaults/main.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-# file: roles/azure/defaults/main.yaml
-
diff --git a/resources/tools/testbed-setup/ansible/roles/baremetal/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/baremetal/handlers/main.yaml
deleted file mode 100644
index d8dabeb222..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/baremetal/handlers/main.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# file: roles/baremetal/handlers/main.yaml
-
-- name: IPMI specific
- import_tasks: ipmi.yaml
- when: inventory_ipmi_hostname is defined
- tags:
- - ipmi-handlers
-
-- name: CIMC specific
- import_tasks: cimc.yaml
- when: inventory_cimc_hostname is defined
- tags:
- - cimc-handlers
-
-- name: Reboot server
- reboot:
- reboot_timeout: 3600
- tags:
- - reboot-server
-
-- name: Wait for server to restart
- wait_for:
- host: "{{ inventory_hostname }}"
- search_regex: OpenSSH
- port: 22
- delay: 60
- timeout: 3600
- tags:
- - reboot-server
diff --git a/resources/tools/testbed-setup/ansible/roles/calibration/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/calibration/defaults/main.yaml
deleted file mode 100644
index c639f11088..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/calibration/defaults/main.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
----
-# file: roles/calibration/defaults/main.yaml
-
-# Packages to install.
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - []
-
-packages_by_distro:
- ubuntu:
- - "build-essential"
- - "dmidecode"
-
-packages_by_arch:
- aarch64:
- - []
- x86_64:
- - []
-
-# Kernel version to check.
-kernel_version: "{{ kernel_version_by_distro_by_arch[ansible_distribution | lower][ansible_machine] }}"
-
-kernel_version_by_distro_by_arch:
- ubuntu:
- x86_64:
- - "4.15.0-72-generic"
- - "5.3.0-1020-azure"
- - "5.3.0-1017-aws"
- aarch64:
- - "4.15.0-54-generic"
-
-pma_directory: "/tmp/pma_tools"
-jitter_core: 7
-jitter_iterations: 20
diff --git a/resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml
deleted file mode 100644
index a6e8898f9d..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml
+++ /dev/null
@@ -1,79 +0,0 @@
----
-# file: roles/calibration/tasks/main.yaml
-
-- name: Install Distribution - Release - Machine Prerequisites
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: latest
- update_cache: true
- tags:
- - install-dependencies
-
-- name: Check CPU Power States
- shell: "lscpu"
- register: current_lscpu
- changed_when: false
- tags:
- - check-cpu-frequency
-
-- name: Check CPU Power States
- assert:
- that:
- - "'CPU min MHz' not in current_lscpu.stdout or 'Intel(R) Xeon(R)' not in ansible_processor"
- fail_msg: "CPU configuration!"
- success_msg: "CPU configuration match."
- tags:
- - check-cpu-frequency
-
-- name: Check Kernel Parameters
- assert:
- that:
- - item in ansible_cmdline and grub[item] == ansible_cmdline[item]
- fail_msg: "Kernel parameters!"
- success_msg: "Kernel parameters match."
- loop: "{{ grub.keys()|sort }}"
- tags:
- - check-kernel-params
-
-- name: Check Kernel Version
- assert:
- that:
- - ansible_kernel not in kernel_version_by_distro_by_arch
- fail_msg: "Kernel version!"
- success_msg: "Kernel version match."
- tags:
- - check-kernel-version
-
-- name: Get Spectre Meltdown Checker
- get_url:
- url: "https://meltdown.ovh"
- dest: "/opt/spectre-meltdown-checker.sh"
- mode: "744"
- tags:
- - check-spectre-meltdown
-
-- name: Run Spectre Meltdown Checker
- shell: "/opt/spectre-meltdown-checker.sh --no-color || true"
- async: 60
- poll: 0
- ignore_errors: true
- register: spectre_meltdown_async
- tags:
- - check-spectre-meltdown
-
-- name: "{{ ansible_machine }} Specific"
- include_tasks: "{{ ansible_machine }}.yaml"
- tags:
- - check-machine-specific
- - check-jitter-tool
-
-- name: Check Sync Status
- async_status:
- jid: "{{ spectre_meltdown_async.ansible_job_id }}"
- register: "spectre_meltdown_poll_results"
- until: spectre_meltdown_poll_results.finished
- retries: 30
-
-- debug: var=spectre_meltdown_poll_results.stdout_lines
- tags:
- - check-spectre-meltdown
diff --git a/resources/tools/testbed-setup/ansible/roles/calibration/tasks/x86_64.yaml b/resources/tools/testbed-setup/ansible/roles/calibration/tasks/x86_64.yaml
deleted file mode 100644
index 90b1c954b5..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/calibration/tasks/x86_64.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
----
-# file: roles/calibration/tasks/x86_64.yaml
-
-- name: Calibration - Clone PMA Tool
- git:
- repo: "https://gerrit.fd.io/r/pma_tools"
- dest: "{{ pma_directory }}"
- tags:
- - check-jitter-tool
-
-- name: Calibration - Compile PMA Tool
- raw: "cd {{ pma_directory }}/jitter && make"
- tags:
- - check-jitter-tool
-
-- name: Calibration - Run Jitter Tool
- shell: "{{ pma_directory }}/jitter/jitter -c {{ jitter_core }} -i {{ jitter_iterations }} -f"
- become: yes
- async: 60
- poll: 0
- ignore_errors: yes
- register: jitter_async
- tags:
- - check-jitter-tool
-
-- name: Check sync status
- async_status:
- jid: "{{ jitter_async.ansible_job_id }}"
- register: "jitter_poll_results"
- until: jitter_poll_results.finished
- retries: 30
-
-- debug: var=jitter_poll_results.stdout_lines
- tags:
- - check-jitter-tool
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_containers.yaml b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_containers.yaml
deleted file mode 100644
index ad4fb37681..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_containers.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
----
-# file: roles/cleanup/tasks/kill_containers.yaml
-
-- name: Kill Docker Containers
- block:
- - name: Kill container - Get Running Docker Containers
- shell: "docker ps -aq"
- register: running_containers
- changed_when: no
- tags: kill-containers
-
- - name: Kill container - Remove All Docker Containers
- shell: "docker rm --force {{ item }}"
- with_items: "{{ running_containers.stdout_lines }}"
- tags: kill-containers
-
- rescue:
- - name: Restart Docker Daemon
- systemd:
- name: "docker"
- state: "restarted"
-
-- name: Kill LXC Containers
- block:
- - name: Kill container - Get Running LXC Containers
- shell: "lxc-ls"
- register: running_containers
- changed_when: no
- tags: kill-containers
-
- - name: Kill container - Remove All LXC Containers
- shell: "lxc-destroy --force -n {{ item }}"
- with_items: "{{ running_containers.stdout_lines }}"
- tags: kill-containers
-
- rescue:
- - fail:
- msg: "Kill LXC containers failed!" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_process.yaml b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_process.yaml
deleted file mode 100644
index 30a9f459b5..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/kill_process.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
----
-# file: roles/cleanup/tasks/kill_process.yaml
-
-- name: Kill process - {{ process }}
- block:
- - name: Kill process - Get pid of {{ process }}
- shell: "ps -ef | grep -v grep | grep -w {{ process }} | awk '{print $2}'"
- when: >
- process is defined and process != ""
- register: running_processes
- tags: kill-process
-
- - name: Kill process - Safe kill {{ process }}
- shell: "kill {{ item }}"
- with_items: "{{ running_processes.stdout_lines }}"
- tags: kill-process
-
- - wait_for:
- path: "/proc/{{ item }}/status"
- state: absent
- with_items: "{{ running_processes.stdout_lines }}"
- ignore_errors: yes
- register: killed_processes
- tags: kill-process
-
- - name: Kill process - Force kill {{ process }}
- shell: "kill -9 {{ item }}"
- with_items: "{{ killed_processes.results | select('failed') | map(attribute='item') | list }}"
- tags: kill-process
-
- rescue:
- - fail:
- msg: "Kill process {{ process }} failed!"
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/main.yaml
deleted file mode 100644
index 64a55c4672..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/main.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
----
-# file: roles/cleanup/tasks/main.yaml
-# purpose: Structured per server cleanup tasks.
-# - main:
-# - tg:
-# - Run tasks on TG servers only.
-# - Cleanup processes (T-Rex).
-# - sut:
-# - Run tasks on SUT servers only.
-# - Cleanup file leftovers (logs).
-# - Cleanup packages (VPP, Honeycomb).
-# - Cleanup processes (qemu, l3fwd, testpmd, docker, kubernetes)
-# - Cleanup interfaces.
-# - vpp_device
-# - Run tasks on vpp_device servers only.
-# - Reset SRIOV
-
-- name: tg specific
- include_tasks: tg.yaml
- when: "'tg' in group_names"
- tags: cleanup
-
-- name: sut specific
- include_tasks: sut.yaml
- when: "'sut' in group_names"
- tags: cleanup
-
-- name: vpp_device specific
- include_tasks: vpp_device.yaml
- when: "'vpp_device' in group_names"
- tags: cleanup
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/remove_package.yaml b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/remove_package.yaml
deleted file mode 100644
index 0c8816fe29..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/remove_package.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-# file: roles/cleanup/tasks/remove_package.yaml
-
-- name: Remove package - Fix corrupted apt
- shell: 'dpkg --configure -a'
- when: >
- ansible_distribution == 'Ubuntu'
- tags: remove-package
-
-- name: Remove package - {{ package }}
- apt:
- name: '{{ package }}'
- force: yes
- purge: yes
- state: absent
- failed_when: no
- when: >
- ansible_distribution == 'Ubuntu'
- tags: remove-package
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/sut.yaml b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/sut.yaml
deleted file mode 100644
index 53a65dd608..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/sut.yaml
+++ /dev/null
@@ -1,72 +0,0 @@
----
-# file: roles/cleanup/tasks/sut.yaml
-
-- name: Host cleanup
- block:
- - name: Kill processes - qemu
- import_tasks: kill_process.yaml
- vars:
- process: "qemu"
- tags: kill-process
-
- - name: Kill processes - l3fwd
- import_tasks: kill_process.yaml
- vars:
- process: "l3fwd"
- tags: kill-process
-
- - name: Kill processes - testpmd
- import_tasks: kill_process.yaml
- vars:
- process: "testpmd"
- tags: kill-process
-
- - name: Kill processes - iperf3
- import_tasks: kill_process.yaml
- vars:
- process: "iperf3"
- tags: kill-process
-
- - name: Kill processes - vpp_echo
- import_tasks: kill_process.yaml
- vars:
- process: "vpp_echo"
- tags: kill-process
-
- - name: Find file or dir - Core zip file
- find:
- paths: "/tmp/"
- patterns: "*tar.lzo.lrz.xz*"
- register: files_to_delete
- tags: remove-file-dir
-
- - name: Remove file or dir - Core zip file
- file:
- path: "{{ item.path }}"
- state: absent
- with_items: "{{ files_to_delete.files }}"
- tags: remove-file-dir
-
- - name: Find file or dir - Core dump file
- find:
- paths: "/tmp/"
- patterns: "*core*"
- register: files_to_delete
- tags: remove-file-dir
-
- - name: Remove file or dir - Core dump file
- file:
- path: "{{ item.path }}"
- state: absent
- with_items: "{{ files_to_delete.files }}"
- tags: remove-file-dir
-
- - name: Kill containers - Remove all containers
- import_tasks: kill_containers.yaml
- tags: kill-containers
-
- - name: Remove packages - Remove VPP
- import_tasks: remove_package.yaml
- vars:
- package: "*vpp*"
- tags: remove-package
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/tg.yaml b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/tg.yaml
deleted file mode 100644
index 9ac83bc9fc..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/tg.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-# file: roles/cleanup/tasks/tg.yaml
-
-- name: Kill processes - TRex
- import_tasks: kill_process.yaml
- vars:
- process: "_t-rex"
- when: docker_tg is undefined
- tags: kill-process
diff --git a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/vpp_device.yaml b/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/vpp_device.yaml
deleted file mode 100644
index f5e6ea5488..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/cleanup/tasks/vpp_device.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# file: roles/cleanup/tasks/vpp_device.yaml
-
-- name: Reset vpp_device binary
- copy:
- src: 'files/reset_vppdevice.sh'
- dest: '/usr/local/bin'
- owner: 'root'
- group: 'root'
- mode: '744'
- tags: reset-sriov
-
-- name: Reset vpp_device
- raw: 'reset_vppdevice.sh --force'
- tags: reset-sriov
diff --git a/resources/tools/testbed-setup/ansible/roles/common/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/common/defaults/main.yaml
deleted file mode 100644
index 5517b20e1f..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/common/defaults/main.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
----
-# file: roles/common/defaults/main.yaml
-
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - "autoconf"
- - "cgroup-tools"
- - "dkms"
- - "iperf3"
- - "linux-tools-common"
- - "ninja-build"
- - "qemu-system"
- - "socat"
- - "unzip"
- - "virtualenv"
-
-packages_by_distro:
- ubuntu:
- - "build-essential"
- - "libpcap-dev"
- - "net-tools"
- - "python-all"
- - "python-apt"
- - "python-cffi"
- - "python-cffi-backend"
- - "python-dev"
- - "python-pip"
- - "python-setuptools"
- - "python3-all"
- - "python3-apt"
- - "python3-cffi"
- - "python3-cffi-backend"
- - "python3-dev"
- - "python3-pip"
- - "python3-setuptools"
-
-packages_by_arch:
- aarch64:
- - "gfortran"
- - "libblas-dev"
- - "libffi-dev"
- - "liblapack-dev"
- - "libssl-dev"
- x86_64:
- - []
-
-# Proxy settings: Uncomment and fill the proper values. These variables will be
-# set globally by writing into /etc/environment file on target machine.
-#proxy_env:
-# http_proxy: http://proxy.com:80
-# HTTP_PROXY: http://proxy.com:80
-# https_proxy: http://proxy.com:80
-# HTTPS_PROXY: http://proxy.com:80
-# ftp_proxy: http://proxy.com:80
-# FTP_PROXY: http://proxy.com:80
-# no_proxy: localhost,127.0.0.1,{{ ansible_default_ipv4.address }}
-# NO_PROXY: localhost,127.0.0.1,{{ ansible_default_ipv4.address }}
-
diff --git a/resources/tools/testbed-setup/ansible/roles/common/files/grub_aarch64 b/resources/tools/testbed-setup/ansible/roles/common/files/grub_aarch64
deleted file mode 100644
index 38a2cc38e0..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/common/files/grub_aarch64
+++ /dev/null
@@ -1,34 +0,0 @@
-# If you change this file, run 'update-grub' afterwards to update
-# /boot/grub/grub.cfg.
-# For full documentation of the options in this file, see:
-# info -f grub -n 'Simple configuration'
-
-GRUB_DEFAULT=0
-GRUB_TIMEOUT=10
-GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
-GRUB_CMDLINE_LINUX_DEFAULT="console=ttyAMA0,115200n8"
-GRUB_CMDLINE_LINUX=""
-
-# Uncomment to enable BadRAM filtering, modify to suit your needs
-# This works with Linux (no patch required) and with any kernel that obtains
-# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
-#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
-
-# Uncomment to disable graphical terminal (grub-pc only)
-#GRUB_TERMINAL=console
-GRUB_TERMINAL=serial
-GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
-
-# The resolution used on graphical terminal
-# note that you can use only modes which your graphic card supports via VBE
-# you can see them in real GRUB with the command `vbeinfo'
-#GRUB_GFXMODE=640x480
-
-# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
-#GRUB_DISABLE_LINUX_UUID=true
-
-# Uncomment to disable generation of recovery mode menu entries
-#GRUB_DISABLE_RECOVERY="true"
-
-# Uncomment to get a beep at grub start
-#GRUB_INIT_TUNE="480 440 1"
diff --git a/resources/tools/testbed-setup/ansible/roles/common/files/grub_x86_64 b/resources/tools/testbed-setup/ansible/roles/common/files/grub_x86_64
deleted file mode 100644
index d4e27b3f0f..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/common/files/grub_x86_64
+++ /dev/null
@@ -1,34 +0,0 @@
-# If you change this file, run 'update-grub' afterwards to update
-# /boot/grub/grub.cfg.
-# For full documentation of the options in this file, see:
-# info -f grub -n 'Simple configuration'
-
-GRUB_DEFAULT=0
-GRUB_TIMEOUT=10
-GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
-GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
-GRUB_CMDLINE_LINUX=""
-
-# Uncomment to enable BadRAM filtering, modify to suit your needs
-# This works with Linux (no patch required) and with any kernel that obtains
-# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
-#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
-
-# Uncomment to disable graphical terminal (grub-pc only)
-#GRUB_TERMINAL=console
-GRUB_TERMINAL=serial
-GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
-
-# The resolution used on graphical terminal
-# note that you can use only modes which your graphic card supports via VBE
-# you can see them in real GRUB with the command `vbeinfo'
-#GRUB_GFXMODE=640x480
-
-# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
-#GRUB_DISABLE_LINUX_UUID=true
-
-# Uncomment to disable generation of recovery mode menu entries
-#GRUB_DISABLE_RECOVERY="true"
-
-# Uncomment to get a beep at grub start
-#GRUB_INIT_TUNE="480 440 1"
diff --git a/resources/tools/testbed-setup/ansible/roles/common/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/common/handlers/main.yaml
deleted file mode 100644
index e7327d3944..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/common/handlers/main.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# file: roles/common/handlers/main.yaml
-
-- name: Reboot server
- reboot:
- reboot_timeout: 3600
- tags:
- - reboot-server
diff --git a/resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml
deleted file mode 100644
index e60b32ae2a..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml
+++ /dev/null
@@ -1,113 +0,0 @@
----
-# file: roles/common/tasks/main.yaml
-
-- name: Add permanent proxy settings
- lineinfile:
- path: "/etc/environment"
- state: "present"
- line: "{{ item.key }}={{ item.value }}"
- with_dict: "{{ proxy_env }}"
- when: proxy_env is defined
- tags:
- - set-proxy
-
-- name: Install Distribution - Release - Machine Prerequisites
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: latest
- update_cache: true
- tags:
- - install-dependencies
-
-- name: Install CSIT PIP requirements
- pip:
- name:
- - "ecdsa==0.13.3"
- - "paramiko==2.6.0"
- - "pycrypto==2.6.1"
- - "pypcap==1.2.3"
- - "PyYAML==5.1.1"
- - "requests==2.22.0"
- - "robotframework==3.1.2"
- - "scapy==2.4.3"
- - "scp==0.13.2"
- - "ansible==2.7.8"
- - "dill==0.2.8.2"
- - "numpy==1.17.3"
- - "hdrhistogram==0.6.1"
- - "plotly==4.1.1"
- - "PTable==0.9.2"
- - "Sphinx==2.2.1"
- - "sphinx-rtd-theme==0.4.0"
- - "sphinxcontrib-programoutput==0.15"
- - "sphinxcontrib-robotdoc==0.11.0"
- - "alabaster==0.7.12"
- - "Babel==2.7.0"
- - "bcrypt==3.1.7"
- - "certifi==2019.9.11"
- - "cffi==1.13.2"
- - "chardet==3.0.4"
- - "cryptography==2.8"
- - "docutils==0.15.2"
- - "future==0.18.2"
- - "idna==2.8"
- - "imagesize==1.1.0"
- - "Jinja2==2.10.3"
- - "MarkupSafe==1.1.1"
- - "packaging==19.2"
- - "pbr==5.4.3"
- - "pycparser==2.19"
- - "Pygments==2.4.2"
- - "PyNaCl==1.3.0"
- - "pyparsing==2.4.4"
- - "python-dateutil==2.8.1"
- - "pytz==2019.3"
- - "retrying==1.3.3"
- - "six==1.13.0"
- - "snowballstemmer==2.0.0"
- - "sphinxcontrib-applehelp==1.0.1"
- - "sphinxcontrib-devhelp==1.0.1"
- - "sphinxcontrib-htmlhelp==1.0.2"
- - "sphinxcontrib-jsmath==1.0.1"
- - "sphinxcontrib-qthelp==1.0.2"
- - "sphinxcontrib-serializinghtml==1.1.3"
- - "urllib3==1.25.6"
- tags:
- - install-pip
-
-- name: Install CSIT PIP requirements - Pandas and SciPy workaround
- pip:
- name:
- - "pandas==0.25.3"
- - "scipy==1.1.0"
- tags:
- - install-pip
-
-- name: Install Meson (repository version is too old)
- pip:
- name:
- - "meson==0.47.1"
- tags:
- - install-meson
-
-- name: Set sudoers admin
- lineinfile:
- path: "/etc/sudoers"
- state: "present"
- regexp: "^%admin ALL="
- line: "%admin ALL=(ALL) ALL"
- validate: "/usr/sbin/visudo -cf %s"
- tags:
- - set-sudoers
-
-- name: Set sudoers sudo
- lineinfile:
- path: "/etc/sudoers"
- state: "present"
- regexp: "^%sudo"
- line: "%sudo ALL=(ALL:ALL) NOPASSWD: ALL"
- validate: "/usr/sbin/visudo -cf %s"
- tags:
- - set-sudoers
-
-- meta: flush_handlers
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/consul/defaults/main.yaml
deleted file mode 100644
index 786554eb58..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/consul/defaults/main.yaml
+++ /dev/null
@@ -1,110 +0,0 @@
----
-# file: roles/consul/defaults/main.yaml
-
-# Inst - Prerequisites.
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - "cgroup-bin"
- - "curl"
- - "git"
- - "libcgroup1"
- - "unzip"
- - "htop"
-packages_by_distro:
- ubuntu:
- - []
-packages_by_arch:
- aarch64:
- - []
- x86_64:
- - []
-
-# Inst - Download Consul.
-consul_architecture_map:
- amd64: "amd64"
- x86_64: "amd64"
- armv7l: "arm"
- aarch64: "arm64"
- 32-bit: "386"
- 64-bit: "amd64"
-consul_architecture: "{{ consul_architecture_map[ansible_architecture] }}"
-consul_version: "1.8.6"
-consul_pkg: "consul_{{ consul_version }}_linux_{{ consul_architecture }}.zip"
-consul_zip_url: "https://releases.hashicorp.com/consul/{{ consul_version }}/{{ consul_pkg }}"
-
-# Inst - System paths.
-consul_bin_dir: "/usr/local/bin"
-consul_config_dir: "/etc/consul.d"
-consul_data_dir: "/var/consul"
-consul_inst_dir: "/opt"
-consul_lockfile: "/var/lock/subsys/consul"
-consul_run_dir: "/var/run/consul"
-consul_ssl_dir: "/etc/consul.d/ssl"
-nomad_config_dir: "/etc/nomad.d"
-
-# Conf - Service.
-consul_node_role: "both"
-consul_restart_handler_state: "restarted"
-nomad_restart_handler_state: "restarted"
-systemd_resolved_state: "stopped"
-
-# Conf - User and group.
-consul_group: "consul"
-consul_group_state: "present"
-consul_manage_group: true
-consul_manage_user: true
-consul_user: "consul"
-consul_user_groups: [ docker, nomad, consul, root ]
-consul_user_state: "present"
-
-# Conf - nomad.d/consul.hcl
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ vault_consul_v1_ca_file }}"
- dest: "{{ consul_ca_file }}"
- - src: "{{ vault_consul_v1_cert_file }}"
- dest: "{{ consul_cert_file }}"
- - src: "{{ vault_consul_v1_key_file }}"
- dest: "{{ consul_key_file }}"
-
-consul_auto_advertise: true
-consul_checks_use_advertise: true
-consul_server_service_name: "nomad"
-consul_client_service_name: "nomad-client"
-consul_server_auto_join: false
-consul_client_auto_join: true
-consul_ACL_token_set: false
-consul_token: "consul_token_default"
-
-# Conf - base.hcl
-consul_bind_addr: "{{ ansible_default_ipv4.address }}"
-consul_client_addr: "0.0.0.0"
-consul_datacenter: "dc1"
-consul_disable_update_check: true
-consul_enable_debug: false
-consul_enable_syslog: true
-consul_log_level: "INFO"
-consul_node_name: "{{ inventory_hostname }}"
-consul_retry_join: true
-consul_bootstrap_expect: 2
-consul_encrypt: ""
-consul_ca_file: "{{ consul_ssl_dir }}/ca.pem"
-consul_cert_file: "{{ consul_ssl_dir }}/consul.pem"
-consul_key_file: "{{ consul_ssl_dir }}/consul-key.pem"
-consul_ui: true
-consul_recursors:
- - 1.1.1.1
- - 8.8.8.8
-
-# Conf - ports.hcl
-consul_port_dns: 53
-consul_port_http: 8500
-consul_port_https: 8501
-consul_port_grpc: 8502
-consul_port_serf_lan: 8301
-consul_port_serf_wan: 8302
-consul_port_server: 8300
-
-# Conf - services.json
-consul_services: false \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/consul/handlers/main.yaml
deleted file mode 100644
index 338baea74e..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/consul/handlers/main.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
----
-# file roles/consul/handlers/main.yaml
-
-- name: Restart Nomad
- systemd:
- daemon_reload: true
- enabled: true
- name: "nomad"
- state: "{{ nomad_restart_handler_state }}"
-
-- name: Restart Consul
- systemd:
- daemon_reload: true
- enabled: true
- name: "consul"
- state: "{{ consul_restart_handler_state }}"
-
-- name: Stop Systemd-resolved
- systemd:
- daemon_reload: true
- enabled: false
- name: "systemd-resolved"
- state: "{{ systemd_resolved_state }}" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/meta/main.yaml b/resources/tools/testbed-setup/ansible/roles/consul/meta/main.yaml
deleted file mode 100644
index 4ada8efad6..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/consul/meta/main.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-# file: roles/consul/meta/main.yaml
-
-# desc: Install consul from stable branch and configure service.
-# inst: Consul
-# conf: ?
-# info: 1.0 - added role
-
-dependencies: [ ]
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/consul/tasks/main.yaml
deleted file mode 100644
index 9d1ca1980d..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/consul/tasks/main.yaml
+++ /dev/null
@@ -1,164 +0,0 @@
----
-# file: roles/consul/tasks/main.yaml
-
-- name: Inst - Prerequisites
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: latest
- update_cache: true
- tags:
- - consul-inst-prerequisites
-
-- name: Conf - Add Consul Group
- group:
- name: "{{ consul_group }}"
- state: "{{ consul_group_state }}"
- when:
- - consul_manage_group | bool
- tags:
- - consul-conf-user
-
-- name: Conf - Add Consul user
- user:
- name: "{{ consul_user }}"
- group: "{{ consul_group }}"
- groups: "{{ consul_user_groups }}"
- state: "{{ consul_user_state }}"
- system: true
- when:
- - consul_manage_user | bool
- tags:
- - consul-conf-user
-
-- name: Inst - Clean Consul
- file:
- path: "{{ consul_inst_dir }}/consul"
- state: "absent"
- tags:
- - consul-inst-package
-
-- name: Inst - Download Consul
- get_url:
- url: "{{ consul_zip_url }}"
- dest: "{{ consul_inst_dir }}/{{ consul_pkg }}"
- tags:
- - consul-inst-package
-
-- name: Inst - Unarchive Consul
- unarchive:
- src: "{{ consul_inst_dir }}/{{ consul_pkg }}"
- dest: "{{ consul_inst_dir }}/"
- creates: "{{ consul_inst_dir }}/consul"
- remote_src: true
- tags:
- - consul-inst-package
-
-- name: Inst - Consul
- copy:
- src: "{{ consul_inst_dir }}/consul"
- dest: "{{ consul_bin_dir }}"
- owner: "{{ consul_user }}"
- group: "{{ consul_group }}"
- force: true
- mode: 0755
- remote_src: true
- tags:
- - consul-inst-package
-
-- name: Conf - Create Directories "{{ consul_data_dir }}"
- file:
- dest: "{{ consul_data_dir }}"
- state: directory
- owner: "{{ consul_user }}"
- group: "{{ consul_group }}"
- tags:
- - consul-conf
-
-- name: Conf - Create Directories "{{ consul_ssl_dir }}"
- file:
- dest: "{{ consul_ssl_dir }}"
- state: directory
- owner: "{{ consul_user }}"
- group: "{{ consul_group }}"
- tags:
- - consul-conf
-
-- name: Conf - Create Config Directory
- file:
- dest: "{{ consul_config_dir }}"
- state: directory
- owner: "{{ consul_user }}"
- group: "{{ consul_group }}"
- mode: 0755
- tags:
- - consul-conf
-
-- name: Conf - Nomad integration Consul Configuration
- template:
- src: consul.hcl.j2
- dest: "{{ nomad_config_dir }}/consul.hcl"
- owner: "nomad"
- group: "nomad"
- mode: 0644
- when:
- - consul_nomad_integration | bool
- tags:
- - consul-conf
-
-- name: Conf - Base Configuration
- template:
- src: base.hcl.j2
- dest: "{{ consul_config_dir }}/base.hcl"
- owner: "{{ consul_user }}"
- group: "{{ consul_group }}"
- mode: 0644
- tags:
- - consul-conf
-
-- name: Conf - Ports Configuration
- template:
- src: ports.hcl.j2
- dest: "{{ consul_config_dir }}/ports.hcl"
- owner: "{{ consul_user }}"
- group: "{{ consul_group }}"
- mode: 0644
- tags:
- - consul-conf
-
-- name: Conf - Services Configuration
- template:
- src: services.json.j2
- dest: "{{ consul_config_dir }}/services.json"
- owner: "{{ consul_user }}"
- group: "{{ consul_group }}"
- mode: 0644
- when:
- - consul_services
- tags:
- - consul-conf
-
-- name: Conf - Copy Certificates And Keys
- copy:
- content: "{{ item.src }}"
- dest: "{{ item.dest }}"
- owner: "{{ consul_user }}"
- group: "{{ consul_group }}"
- mode: 0600
- no_log: true
- loop: "{{ consul_certificates | flatten(levels=1) }}"
- tags:
- - consul-conf
-
-- name: Conf - System.d Script
- template:
- src: "consul_systemd.service.j2"
- dest: "/lib/systemd/system/consul.service"
- owner: "root"
- group: "root"
- mode: 0644
- notify:
- - "Restart Consul"
-# - "Stop Systemd-resolved"
-# - "Restart Nomad"
- tags:
- - consul-conf
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/base.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/consul/templates/base.hcl.j2
deleted file mode 100644
index e220c8f687..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/consul/templates/base.hcl.j2
+++ /dev/null
@@ -1,43 +0,0 @@
-node_name = "{{ consul_node_name }}"
-datacenter = "{{ consul_datacenter }}"
-
-bind_addr = "{{ consul_bind_addr }}"
-client_addr = "{{ consul_client_addr }}"
-data_dir = "{{ consul_data_dir }}"
-
-enable_syslog = {{ consul_enable_syslog | bool | lower }}
-enable_debug = {{ consul_enable_debug | bool | lower }}
-disable_update_check = {{ consul_disable_update_check | bool | lower }}
-log_level = "{{ consul_log_level }}"
-
-server = {{ consul_node_server | bool | lower }}
-encrypt = "{{ consul_encrypt }}"
-{% if consul_node_server | bool == True %}
-bootstrap_expect = {{ consul_bootstrap_expect }}
-verify_incoming = true
-verify_outgoing = true
-verify_server_hostname = true
-ca_file = "{{ consul_ca_file }}"
-cert_file = "{{ consul_cert_file }}"
-key_file = "{{ consul_key_file }}"
-auto_encrypt {
- allow_tls = true
-}
-{% else %}
-verify_incoming = false
-verify_outgoing = true
-verify_server_hostname = true
-ca_file = "{{ consul_ca_file }}"
-auto_encrypt {
- tls = true
-}
-{% endif %}
-{% if consul_retry_join | bool -%}
-retry_join = [ {% for ip_port in consul_retry_servers -%} "{{ ip_port }}"{% if not loop.last %}, {% endif %}{%- endfor -%} ]
-{%- endif %}
-
-ui = {{ consul_ui | bool | lower }}
-
-{% if consul_recursors -%}
-recursors = [ {% for server in consul_recursors -%} "{{ server }}"{% if not loop.last %}, {% endif %}{%- endfor -%} ]
-{%- endif %} \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/consul.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/consul/templates/consul.hcl.j2
deleted file mode 100644
index c78e5e1ce5..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/consul/templates/consul.hcl.j2
+++ /dev/null
@@ -1,12 +0,0 @@
-consul {
- auto_advertise = {{ consul_auto_advertise | bool | lower }}
- checks_use_advertise = {{ consul_checks_use_advertise | bool | lower }}
- client_auto_join = {{ consul_client_auto_join | bool | lower }}
- client_service_name = "{{ consul_client_service_name }}"
- server_service_name = "{{ consul_server_service_name }}"
- server_auto_join = {{ consul_server_auto_join | bool | lower }}
-{% if consul_ACL_token_set == True %}
- token = "{{ consul_token }}"
-{% endif %}
-
-} \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/consul_systemd.service.j2 b/resources/tools/testbed-setup/ansible/roles/consul/templates/consul_systemd.service.j2
deleted file mode 100644
index 8e1ef1310d..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/consul/templates/consul_systemd.service.j2
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Consul Service
-Documentation=https://www.nomadproject.io/docs/
-Wants=network-online.target
-After=network-online.target
-
-[Service]
-# TODO: Decrease privilege
-ExecReload=/bin/kill -SIGHUP $MAINPID
-ExecStart={{ consul_bin_dir }}/consul agent -config-dir {{ consul_config_dir }}
-KillSignal=SIGTERM
-LimitNOFILE=infinity
-LimitNPROC=infinity
-Restart=on-failure
-RestartSec=1
-User=root
-Group=root
-Environment="GOMAXPROCS=2"
-
-[Install]
-WantedBy=multi-user.target
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/templates/services.json.j2 b/resources/tools/testbed-setup/ansible/roles/consul/templates/services.json.j2
deleted file mode 100644
index 3245ba92a4..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/consul/templates/services.json.j2
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "services": [
-{% for item in consul_services %}
- {
- "name": "{{ item.name }}",
- "port": {{ item.port }}
- }
-{%- if not loop.last %},
-{% endif %}
-{% endfor %}
-
- ]
-} \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/consul/vars/main.yaml b/resources/tools/testbed-setup/ansible/roles/consul/vars/main.yaml
deleted file mode 100644
index b46333a7a7..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/consul/vars/main.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-# file: roles/consul/vars/main.yaml
-
-consul_node_client: "{{ (consul_node_role == 'client') or (consul_node_role == 'both') }}"
-consul_node_server: "{{ (consul_node_role == 'server') or (consul_node_role == 'both') }}"
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/Dockerfile b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/Dockerfile
deleted file mode 100644
index 2b2e1eae55..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/Dockerfile
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-FROM ubuntu:18.04
-LABEL Description="CSIT vpp-device ubuntu 18.04 shim image"
-LABEL Version="master"
-
-# Setup the environment
-ENV DEBIAN_FRONTEND=noninteractive
-ENV NOTVISIBLE "in users profile"
-RUN echo "export VISIBLE=now" >> /etc/profile
-
-ADD files/wrapdocker /usr/local/bin/wrapdocker
-RUN chmod +x /usr/local/bin/wrapdocker
-
-# Install packages and Docker
-RUN apt-get -q update \
- && apt-get install -y -qq \
- bash \
- curl \
- iproute2 \
- locales \
- ssh \
- sudo \
- tzdata \
- uuid-runtime \
- && curl -fsSL https://get.docker.com | sh \
- && rm -rf /var/lib/apt/lists/*
-
-# Configure locales
-RUN locale-gen en_US
-
-RUN mkdir /var/run/sshd
-RUN echo 'root:Csit1234' | chpasswd
-RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
-
-# SSH login fix. Otherwise user is kicked off after login
-RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
-
-# Need volume for sidecar docker launches
-VOLUME /var/lib/docker
-
-# SSH to listen on port 6022 in shim
-RUN echo 'Port 6022' >>/etc/ssh/sshd_config
-RUN echo 'Port 6023' >>/etc/ssh/sshd_config
-ADD files/badkeypub /root/.ssh/authorized_keys
-ADD files/sshconfig /root/.ssh/config
-
-# Start sshd by default
-EXPOSE 22
-CMD ["/usr/sbin/sshd", "-D"] \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/badkeypub b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/badkeypub
deleted file mode 100644
index 4530b66b05..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/badkeypub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyUNd/iRk5Ajw4ZBB0gXyjzecEzQHh/MctgvHGJjasqJDkwYyZBrunUorOZ3n82W8VGdd5+eNINCWOM/ERjuaHjnutfade+ocPgZRdk+kEgTvetDVNWIgBd0PMVcnp57jJfx7CZVqTNgGeVQ8OJ2RbJGeOb/EKApQI74IPkAfc0PSieSw5gC0eqEOHb39Awgp0ycrzsUHF/OEicfCmo+6vvrMGenDe7frKUoTKYMWs7l3DOyFC8NaOxhGD3J1Ne5u3A/r4w6mN1HVI0rFwIcoms+t0B4lb2ODWKZiZikQdn8/eqwsmbSEZZsWN3FkshgjPS83+dNqVwB6pPY5Yqte7 ejk@bhima.local \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/sshconfig b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/sshconfig
deleted file mode 100644
index e7bd90757e..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/sshconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-Host 172.17.0.*
- StrictHostKeyChecking no
- UserKnownHostsFile=/dev/null \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/wrapdocker b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/wrapdocker
deleted file mode 100644
index d13f8b7c5e..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/files/files/wrapdocker
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/bash
-
-# Ensure that all nodes in /dev/mapper correspond to mapped devices currently loaded by the device-mapper kernel driver
-dmsetup mknodes
-
-# First, make sure that cgroups are mounted correctly.
-CGROUP=/sys/fs/cgroup
-: {LOG:=stdio}
-
-[ -d $CGROUP ] ||
- mkdir $CGROUP
-
-mountpoint -q $CGROUP ||
- mount -n -t tmpfs -o uid=0,gid=0,mode=0755 cgroup $CGROUP || {
- echo "Could not make a tmpfs mount. Did you use --privileged?"
- exit 1
- }
-
-if [ -d /sys/kernel/security ] && ! mountpoint -q /sys/kernel/security
-then
- mount -t securityfs none /sys/kernel/security || {
- echo "Could not mount /sys/kernel/security."
- echo "AppArmor detection and --privileged mode might break."
- }
-fi
-
-# Mount the cgroup hierarchies exactly as they are in the parent system.
-for SUBSYS in $(cut -d: -f2 /proc/1/cgroup)
-do
- [ -d $CGROUP/$SUBSYS ] || mkdir $CGROUP/$SUBSYS
- mountpoint -q $CGROUP/$SUBSYS ||
- mount -n -t cgroup -o $SUBSYS cgroup $CGROUP/$SUBSYS
-
- # The two following sections address a bug which manifests itself
- # by a cryptic "lxc-start: no ns_cgroup option specified" when
- # trying to start containers withina container.
- # The bug seems to appear when the cgroup hierarchies are not
- # mounted on the exact same directories in the host, and in the
- # container.
-
- # Named, control-less cgroups are mounted with "-o name=foo"
- # (and appear as such under /proc/<pid>/cgroup) but are usually
- # mounted on a directory named "foo" (without the "name=" prefix).
- # Systemd and OpenRC (and possibly others) both create such a
- # cgroup. To avoid the aforementioned bug, we symlink "foo" to
- # "name=foo". This shouldn't have any adverse effect.
- echo $SUBSYS | grep -q ^name= && {
- NAME=$(echo $SUBSYS | sed s/^name=//)
- ln -s $SUBSYS $CGROUP/$NAME
- }
-
- # Likewise, on at least one system, it has been reported that
- # systemd would mount the CPU and CPU accounting controllers
- # (respectively "cpu" and "cpuacct") with "-o cpuacct,cpu"
- # but on a directory called "cpu,cpuacct" (note the inversion
- # in the order of the groups). This tries to work around it.
- [ $SUBSYS = cpuacct,cpu ] && ln -s $SUBSYS $CGROUP/cpu,cpuacct
-done
-
-# Note: as I write those lines, the LXC userland tools cannot setup
-# a "sub-container" properly if the "devices" cgroup is not in its
-# own hierarchy. Let's detect this and issue a warning.
-grep -q :devices: /proc/1/cgroup ||
- echo "WARNING: the 'devices' cgroup should be in its own hierarchy."
-grep -qw devices /proc/1/cgroup ||
- echo "WARNING: it looks like the 'devices' cgroup is not mounted."
-
-# Now, close extraneous file descriptors.
-pushd /proc/self/fd >/dev/null
-for FD in *
-do
- case "$FD" in
- # Keep stdin/stdout/stderr
- [012])
- ;;
- # Nuke everything else
- *)
- eval exec "$FD>&-"
- ;;
- esac
-done
-popd >/dev/null
-
-
-# If a pidfile is still around (for example after a container restart),
-# delete it so that docker can start.
-rm -rf /var/run/docker.pid
-
-# If we were given a PORT environment variable, start as a simple daemon;
-# otherwise, spawn a shell as well
-if [ "$PORT" ]
-then
- exec dockerd -H 0.0.0.0:$PORT -H unix:///var/run/docker.sock \
- $DOCKER_DAEMON_ARGS
-else
- if [ "$LOG" == "file" ]
- then
- dockerd $DOCKER_DAEMON_ARGS &>/var/log/docker.log &
- else
- dockerd $DOCKER_DAEMON_ARGS &
- fi
- (( timeout = 60 + SECONDS ))
- until docker info >/dev/null 2>&1
- do
- if (( SECONDS >= timeout )); then
- echo 'Timed out trying to connect to internal docker host.' >&2
- break
- fi
- sleep 1
- done
- [[ $1 ]] && exec "$@"
- exec bash --login
-fi \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/csit_shim_image/tasks/main.yaml
deleted file mode 100644
index bdba4f6563..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/csit_shim_image/tasks/main.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-# file: roles/csit_shim_image/tasks/main.yaml
-
-- name: Create a directory if it does not exist
- file:
- path: "{{ item }}"
- state: "directory"
- mode: 0755
- with_items:
- - "/opt/csit-shim/"
- - "/opt/csit-shim/files"
- tags: csit-shim-image
-
-- name: Copy Build Items
- copy:
- src: "{{ item }}"
- dest: "/opt/csit-shim/{{ item }}"
- owner: "root"
- group: "root"
- mode: 0655
- with_items:
- - "Dockerfile"
- - "files/badkeypub"
- - "files/sshconfig"
- - "files/wrapdocker"
- tags: csit-shim-image
-
-- name: Build CSIT shim Docker Image
- shell: "docker build -t csit_shim-ubuntu1804:local ."
- args:
- chdir: "/opt/csit-shim"
- tags: csit-shim-image \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/Dockerfile b/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/Dockerfile
deleted file mode 100644
index 6dddad6ebb..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/csit_sut_image/files/Dockerfile
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-FROM ubuntu:18.04
-LABEL Description="CSIT vpp-device ubuntu 18.04 SUT image"
-LABEL Version="master"
-
-# Setup the environment
-ENV DEBIAN_FRONTEND=noninteractive
-ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
-ENV NOTVISIBLE "in users profile"
-ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python
-
-# Install packages and Docker
-RUN apt-get -q update \
- && apt-get install -y -qq \
- # general tools
- apt-transport-https \
- bridge-utils \
- cloud-init \
- curl \
- gdb \
- locales \
- net-tools \
- openssh-server \
- pciutils \
- rsyslog \
- software-properties-common \
- ssh \
- sudo \
- supervisor \
- tar \
- vim \
- wget \
- # csit requirements
- cmake \
- dkms \
- gfortran \
- libblas-dev \
- libffi-dev \
- liblapack-dev \
- libpcap-dev \
- libssl-dev \
- python-all \
- python-apt \
- python-cffi \
- python-cffi-backend \
- python-dev \
- python-enum34 \
- python-pip \
- python-setuptools \
- python-virtualenv \
- python3-all \
- python3-apt \
- python3-cffi \
- python3-cffi-backend \
- python3-dev \
- python3-pip \
- python3-setuptools \
- python3-virtualenv \
- qemu-system \
- socat \
- strongswan \
- unzip \
- tcpdump \
- zlib1g-dev \
- # vpp requirements
- ca-certificates \
- libapr1 \
- libmbedcrypto1 \
- libmbedtls10 \
- libmbedx509-0 \
- libnuma1 \
- sshpass \
- && curl -L https://packagecloud.io/fdio/master/gpgkey | sudo apt-key add - \
- && curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | sudo bash \
- # temp hack due to build.sh
- && apt-get install -y -qq vpp-ext-deps \
- && curl -fsSL https://get.docker.com | sh \
- && rm -rf /var/lib/apt/lists/*
-
-# Configure locales
-RUN locale-gen en_US.UTF-8 \
- && dpkg-reconfigure locales
-
-# Fix permissions
-RUN chown root:syslog /var/log \
- && chmod 755 /etc/default
-
-# Create directory structure
-RUN mkdir -p /tmp/dumps \
- && mkdir -p /var/cache/vpp/python \
- && mkdir -p /var/run/sshd
-
-# CSIT PIP pre-cache
-RUN pip3 install \
- ecdsa==0.13.3 \
- paramiko==2.6.0 \
- pycrypto==2.6.1 \
- pypcap==1.2.3 \
- PyYAML==5.1.1 \
- requests==2.22.0 \
- robotframework==3.1.2 \
- scapy==2.4.3 \
- scp==0.13.2 \
- ansible==2.7.8 \
- dill==0.2.8.2 \
- numpy==1.17.3 \
- hdrhistogram==0.6.1 \
- plotly==4.1.1 \
- PTable==0.9.2 \
- Sphinx==2.2.1 \
- sphinx-rtd-theme==0.4.0 \
- sphinxcontrib-programoutput==0.15 \
- sphinxcontrib-robotdoc==0.11.0 \
- alabaster==0.7.12 \
- Babel==2.7.0 \
- bcrypt==3.1.7 \
- certifi==2019.9.11 \
- cffi==1.13.2 \
- chardet==3.0.4 \
- cryptography==2.8 \
- docutils==0.15.2 \
- future==0.18.2 \
- idna==2.8 \
- imagesize==1.1.0 \
- Jinja2==2.10.3 \
- MarkupSafe==1.1.1 \
- packaging==19.2 \
- pbr==5.4.3 \
- pycparser==2.19 \
- Pygments==2.4.2 \
- PyNaCl==1.3.0 \
- pyparsing==2.4.4 \
- python-dateutil==2.8.1 \
- pytz==2019.3 \
- retrying==1.3.3 \
- six==1.13.0 \
- snowballstemmer==2.0.0 \
- sphinxcontrib-applehelp==1.0.1 \
- sphinxcontrib-devhelp==1.0.1 \
- sphinxcontrib-htmlhelp==1.0.2 \
- sphinxcontrib-jsmath==1.0.1 \
- sphinxcontrib-qthelp==1.0.2 \
- sphinxcontrib-serializinghtml==1.1.3 \
- urllib3==1.25.6
-
-# ARM workaround
-RUN pip3 install \
- pandas==0.25.3 \
- scipy==1.1.0
-
-# SSH settings
-RUN echo 'root:Csit1234' | chpasswd \
- && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
- && sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd \
- && echo "export VISIBLE=now" >> /etc/profile
-
-EXPOSE 2222
-
-COPY supervisord.conf /etc/supervisor/supervisord.conf
-
-CMD ["sh", "-c", "rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api; /usr/bin/supervisord -c /etc/supervisor/supervisord.conf; /usr/sbin/sshd -D -p 2222"] \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/csit_sut_image/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/csit_sut_image/tasks/main.yaml
deleted file mode 100644
index 7b41be8a64..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/csit_sut_image/tasks/main.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-# file: roles/csit_sut_image/tasks/main.yaml
-
-- name: Create a directory if it does not exist
- file:
- path: "/opt/csit-sut/"
- state: "directory"
- mode: 0755
- tags: csit-sut-image
-
-- name: Copy Build Items
- copy:
- src: "{{ item }}"
- dest: "/opt/csit-sut/"
- owner: "root"
- group: "root"
- mode: 0755
- with_items:
- - Dockerfile
- - supervisord.conf
- tags: csit-sut-image
-
-- name: Build CSIT SUT Docker Image
- shell: "docker build -t csit_sut-ubuntu1804:local ."
- args:
- chdir: "/opt/csit-sut"
- tags: csit-sut-image \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/docker/defaults/main.yaml
deleted file mode 100644
index 9b182de4c4..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/docker/defaults/main.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
----
-# file: roles/docker/defaults/main.yaml
-
-# Version options.
-docker_edition: "ce"
-docker_package: "docker-{{ docker_edition }}"
-docker_package_state: latest
-
-# Service options.
-docker_service_state: started
-docker_service_enabled: true
-docker_restart_handler_state: restarted
-
-# Used only for Debian/Ubuntu.
-docker_apt_release_channel: "stable"
-docker_apt_repository: "deb https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
-docker_apt_repository_state: present
-docker_apt_ignore_key_error: true
-docker_apt_gpg_key: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg"
-docker_apt_gpg_key_state: present
-
-# Used only for RedHat/CentOS/Fedora.
-docker_yum_repo_url: https://download.docker.com/linux/{{ (ansible_distribution == "Fedora") | ternary("fedora","centos") }}/docker-{{ docker_edition }}.repo
-docker_yum_repo_enable_edge: '0'
-docker_yum_repo_enable_test: '0'
-docker_yum_gpg_key: https://download.docker.com/linux/centos/gpg
-
-# A list of users who will be added to the docker group.
-docker_users:
- - "testuser"
-
-# Proxy settings.
-docker_daemon_environment_http:
- - "HTTP_PROXY={{ proxy_env.http_proxy }}"
- - "NO_PROXY={{ proxy_env.no_proxy }}"
-docker_daemon_environment_https:
- - "HTTPS_PROXY={{ proxy_env.https_proxy }}"
- - "NO_PROXY={{ proxy_env.no_proxy }}" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/docker/handlers/main.yaml
deleted file mode 100644
index 4dfcd0b867..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/docker/handlers/main.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-# file roles/docker/handlers/main.yaml
-
-- name: Restart Docker
- service:
- name: "docker"
- state: "{{ docker_restart_handler_state }}"
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/meta/main.yaml b/resources/tools/testbed-setup/ansible/roles/docker/meta/main.yaml
deleted file mode 100644
index ab3d197791..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/docker/meta/main.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
----
-# file: roles/docker/meta/main.yaml
-
-dependencies: [] \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/docker/tasks/main.yaml
deleted file mode 100644
index 8158af51b4..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/docker/tasks/main.yaml
+++ /dev/null
@@ -1,70 +0,0 @@
----
-# file: roles/docker/tasks/main.yaml
-
-- include_tasks: "{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml"
- tags:
- - docker-inst-dependencies
-
-- name: Inst - Docker
- package:
- name:
- - "{{ docker_package }}"
- - "{{ docker_package }}-cli"
- state: "{{ docker_package_state }}"
- tags:
- - docker-inst-package
-
-- name: Conf - Docker Service
- service:
- name: docker
- state: "{{ docker_service_state }}"
- enabled: "{{ docker_service_enabled }}"
- tags:
- - docker-conf-service
-
-- name: Conf - Docker Service Directory
- file:
- path: "/etc/systemd/system/docker.service.d"
- state: "directory"
- tags:
- - docker-conf-service
-
-- name: Conf - Docker HTTP Proxy
- template:
- src: "templates/docker.service.proxy.http"
- dest: "/etc/systemd/system/docker.service.d/http-proxy.conf"
- owner: "root"
- group: "root"
- mode: "0644"
- notify:
- - "Restart Docker"
- when: >
- proxy_env is defined and
- proxy_env.http_proxy is defined
- tags:
- - docker-conf-service
-
-- name: Conf - Docker HTTPS Proxy
- template:
- src: "templates/docker.service.proxy.https"
- dest: "/etc/systemd/system/docker.service.d/https-proxy.conf"
- owner: "root"
- group: "root"
- mode: "0644"
- notify:
- - "Restart Docker"
- when: >
- proxy_env is defined and
- proxy_env.https_proxy is defined
- tags:
- - docker-conf-service
-
-- name: Conf - Users to Docker Group
- user:
- name: "{{ item }}"
- groups: "docker"
- append: True
- loop: "{{ docker_users }}"
- when: docker_users
- tags:
- - docker-conf-user
diff --git a/resources/tools/testbed-setup/ansible/roles/docker/tasks/ubuntu_bionic.yaml b/resources/tools/testbed-setup/ansible/roles/docker/tasks/ubuntu_bionic.yaml
deleted file mode 100644
index 2e82c552be..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/docker/tasks/ubuntu_bionic.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-# file: roles/docker/tasks/ubuntu_bionic.yaml
-
-- name: Inst - Dependencies
- apt:
- name:
- - "apt-transport-https"
- - "ca-certificates"
- - "gpg-agent"
- - "software-properties-common"
- state: "present"
- cache_valid_time: 3600
- install_recommends: False
- tags: docker-inst-dependencies
-
-- name: Conf - Add APT Key
- apt_key:
- url: "{{ docker_apt_gpg_key }}"
- state: "{{ docker_apt_gpg_key_state }}"
- tags: docker-conf-apt
-
-- name: Conf - Install APT Repository
- apt_repository:
- repo: "{{ docker_apt_repository }}"
- state: "{{ docker_apt_repository_state }}"
- update_cache: True
- tags: docker-conf-apt
diff --git a/resources/tools/testbed-setup/ansible/roles/dpdk/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/dpdk/defaults/main.yaml
deleted file mode 100644
index e43c28403b..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/dpdk/defaults/main.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
----
-# file: roles/dpdk/defaults/main.yaml
-
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - []
-
-packages_by_distro:
- ubuntu:
- - "build-essential"
- - "libnuma-dev"
-
-packages_by_arch:
- aarch64:
- - []
- x86_64:
- - []
-
-dpdk_target_dir: "/opt"
-dpdk_version:
- - "19.02"
- - "20.02"
-dpdk_url: "https://fast.dpdk.org/rel"
-dpdk_build_targets:
- "19.02":
- aarch64: "arm64-armv8a-linuxapp-gcc"
- x86_64: "x86_64-native-linuxapp-gcc"
- "20.02":
- aarch64: "arm64-armv8a-linux-gcc"
- x86_64: "x86_64-native-linux-gcc"
diff --git a/resources/tools/testbed-setup/ansible/roles/dpdk/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/dpdk/tasks/main.yaml
deleted file mode 100644
index 1b4e398e26..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/dpdk/tasks/main.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
----
-# file: roles/dpdk/tasks/main.yaml
-
-- name: DPDK - Install Distribution - Release - Machine Prerequisites
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: latest
- update_cache: true
- tags:
- - install-dependencies
-
-- name: DPDK - Download Release Archive
- get_url:
- url: "{{ dpdk_url }}/dpdk-{{ item }}.tar.xz"
- dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
- mode: 0644
- loop: "{{ dpdk_version }}"
- register: "dpdk_downloaded"
- tags:
- - install-dpdk
-
-- name: DPDK - Extract Release Archive
- unarchive:
- remote_src: true
- src: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
- dest: "{{ dpdk_target_dir }}/"
- creates: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
- loop: "{{ dpdk_version }}"
- when: "dpdk_downloaded"
- register: "dpdk_extracted"
- tags:
- - install-dpdk
-
-- name: DPDK - Build igb_uio by default
- lineinfile:
- dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}/config/common_base"
- regexp: "^CONFIG_RTE_EAL_IGB_UIO"
- line: "CONFIG_RTE_EAL_IGB_UIO=y"
- loop: "{{ dpdk_version }}"
- when: "dpdk_extracted"
- register: "dpdk_configured"
- tags:
- - install-dpdk
-
-- name: DPDK - Compile Release I
- become: yes
- command: "make install T={{ dpdk_build_targets[item][ansible_machine] }} DESTDIR={{ dpdk_target_dir }}/dpdk-{{ item }} chdir={{ dpdk_target_dir }}/dpdk-{{ item }}"
- loop: "{{ dpdk_version }}"
- when: "dpdk_configured"
- register: "dpdk_compiled"
- tags:
- - install-dpdk
-
-- name: DPDK - Link igb_uio Module
- shell: "ln -fs {{ dpdk_target_dir }}/dpdk-{{ item }}/{{ dpdk_build_targets[item][ansible_machine] }}/kmod/igb_uio.ko /lib/modules/`uname -r`/igb_uio.ko && depmod -a"
- ignore_errors: "yes"
- loop: "{{ dpdk_version }}"
- when: "dpdk_compiled"
- tags:
- - install-dpdk
diff --git a/resources/tools/testbed-setup/ansible/roles/iperf/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/iperf/defaults/main.yaml
deleted file mode 100644
index 50210660f4..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/iperf/defaults/main.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
----
-# file: roles/iperf/defaults/main.yaml
-
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - []
-
-packages_by_distro:
- ubuntu:
- - "build-essential"
- - "lib32z1"
-
-packages_by_arch:
- aarch64:
- - []
- x86_64:
- - []
-
-iperf_target_dir: "/opt"
-iperf_version:
- - "3.7"
diff --git a/resources/tools/testbed-setup/ansible/roles/iperf/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/iperf/tasks/main.yaml
deleted file mode 100644
index 8233ba7113..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/iperf/tasks/main.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
----
-# file: roles/iperf/tasks/main.yaml
-
-- name: iPerf - Install Distribution - Release - Machine Prerequisites
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: latest
- update_cache: true
- tags:
- - install-dependencies
-
-- name: iPerf - Get Release Archive
- get_url:
- url: "https://downloads.es.net/pub/iperf/iperf-{{ item }}.tar.gz"
- dest: "{{ iperf_target_dir }}/iperf-{{ item }}.tar.gz"
- validate_certs: false
- mode: 0644
- loop: "{{ iperf_version }}"
- tags:
- - install-iperf
-
-- name: iPerf - Extract Release Archive
- unarchive:
- remote_src: true
- src: "{{ iperf_target_dir }}/iperf-{{ item }}.tar.gz"
- dest: "{{ iperf_target_dir }}/"
- creates: "{{ iperf_target_dir }}/iperf-{{ item }}/src"
- loop: "{{ iperf_version }}"
- tags:
- - install-iperf
-
-- name: iPerf - Compile Release I
- command: "./configure"
- args:
- chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
- loop: "{{ iperf_version }}"
- tags:
- - install-iperf
-
-- name: iPerf - Compile Release II
- command: "make"
- args:
- chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
- loop: "{{ iperf_version }}"
- tags:
- - install-iperf
-
-- name: iPerf - Compile Release III
- command: "make install"
- args:
- chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
- loop: "{{ iperf_version }}"
- tags:
- - install-iperf
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/kernel/defaults/main.yaml
deleted file mode 100644
index d84a163487..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel/defaults/main.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
----
-# file: roles/kernel/defaults/main.yaml
-
-# Kernel version to install (Default to any version).
-kernel_version: "{{ kernel_version_by_distro[ansible_distribution | lower] | join(' ') }}"
-
-kernel_version_by_distro:
- ubuntu:
- - "4.15.0-72"
-
-kernel_packages: "{{ kernel_packages_by_distro[ansible_distribution | lower] | flatten(levels=1) }}"
-
-kernel_packages_by_distro:
- ubuntu:
- - "linux-image"
- - "linux-headers"
- - "linux-modules"
- - "linux-modules-extra"
- - "linux-tools"
-
-# Packages to remove in relation to kernel upgrade.
-absent_packages: "{{ absent_packages_by_distro[ansible_distribution | lower] | flatten(levels=1) }}"
-
-absent_packages_by_distro:
- ubuntu:
- - "amd64-microcode"
- - "intel-microcode"
- - "iucode-tool"
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/kernel/handlers/main.yaml
deleted file mode 100644
index 3d30a0973c..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel/handlers/main.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-# file roles/kernel/handlers/main.yaml
-
-- name: Reboot Server
- reboot:
- reboot_timeout: 3600
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/kernel/tasks/main.yaml
deleted file mode 100644
index 4c63c709a6..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/main.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# file: roles/kernel/tasks/main.yaml
-
-- name: Kernel - Install distribution - release
- include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml'
- tags: install-kernel
-
-- meta: flush_handlers
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_bionic.yaml b/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_bionic.yaml
deleted file mode 100644
index 3cb79352ee..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_bionic.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
----
-# file: roles/kernel/tasks/ubuntu_bionic.yaml
-
-- name: Kernel - Get Available Kernel Versions
- command: "apt-cache showpkg linux-headers-*"
- changed_when: false
- register: apt_kernel_list
- tags: install-kernel
-
-- name: Kernel - Get installed packages with APT
- command: "dpkg -l"
- changed_when: false
- register: apt_packages_list
- tags: install-kernel
-
-- name: Kernel - Set target APT kernel version
- set_fact:
- _kernel: "{{ apt_kernel_list | deb_kernel(
- kernel_version, ansible_kernel) }}"
- tags: install-kernel
-
-- name: Kernel - Ensure Packages Versions
- apt:
- name: "{{ apt_kernel_list | deb_kernel_pkg(
- kernel_version, ansible_kernel, ansible_distribution,
- ansible_architecture, item) }}"
- loop: "{{ kernel_packages }}"
- tags: install-kernel
-
-- name: Kernel - Ensure Any Other Kernel Packages Are Removed
- apt:
- name: "{{ apt_packages_list | deb_installed_kernel(
- apt_kernel_list, kernel_version, ansible_kernel) }}"
- state: absent
- purge: true
- notify:
- - "Reboot Server"
- tags: install-kernel
-
-- name: Kernel - Ensure Any Microcode Is Absent
- apt:
- name: "{{ absent_packages }}"
- state: absent
- purge: true
- tags: install-kernel
-
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel_vm/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/kernel_vm/tasks/main.yaml
deleted file mode 100644
index ba9426a55f..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel_vm/tasks/main.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
----
-# file: roles/kernel_vm/tasks/main.yaml
-
-- name: Kernel VM - Backup remote initramfs modules
- copy:
- src: "/etc/initramfs-tools/modules"
- dest: "/tmp/initramfs_modules.bkp"
- remote_src: yes
- ignore_errors: yes
- register: __initramfs_modules_backuped
- tags:
- - install-kernel-image
-
-- name: Kernel VM - Backup remote initramfs resume config
- copy:
- src: "/etc/initramfs-tools/conf.d/resume"
- dest: "/tmp/initramfs-resume.bkp"
- remote_src: yes
- ignore_errors: yes
- register: __initramfs_resume_backuped
- tags:
- - install-kernel-image
-
-- name: Kernel VM - Update remote initramfs modules
- copy:
- src: "../files/initramfs_modules"
- dest: "/etc/initramfs-tools/modules"
- tags:
- - install-kernel-image
-
-- name: Kernel VM - Update remote initramfs resume config
- copy:
- src: "../files/initramfs_resume"
- dest: "/etc/initramfs-tools/conf.d/resume"
- tags:
- - install-kernel-image
-
-- name: Kernel VM - Create target kernel dir
- file:
- path: "/opt/boot"
- state: "directory"
- tags:
- - install-kernel-image
-
-- name: Kernel VM - Build initrd image
- shell: "update-initramfs -k {{ ansible_kernel }} -c -b /opt/boot"
- tags:
- - install-kernel-image
-
-- name: Kernel VM - Copy corresponding kernel img
- copy:
- src: "/boot/vmlinuz-{{ ansible_kernel }}"
- dest: "/opt/boot/vmlinuz-{{ ansible_kernel }}"
- remote_src: yes
- tags:
- - install-kernel-image
-
-- name: Kernel VM - Restore remote initramfs modules
- copy:
- src: "/tmp/initramfs_modules.bkp"
- dest: "/etc/initramfs-tools/modules"
- remote_src: yes
- ignore_errors: yes
- when: __initramfs_modules_backuped
- tags:
- - install-kernel-image
-
-- name: Kernel VM - Remove remote backup initramfs modules
- file:
- path: "/tmp/initramfs_modules.bkp"
- state: "absent"
- when: __initramfs_modules_backuped
- tags:
- - install-kernel-image
-
-- name: Kernel VM - Restore remote initramfs resume config
- copy:
- src: "/tmp/initramfs-resume.bkp"
- dest: "/etc/initramfs-tools/conf.d/resume"
- remote_src: yes
- ignore_errors: yes
- when: __initramfs_resume_backuped
- tags:
- - install-kernel-image
-
-- name: Kernel VM - Remove remote backup initramfs resume config
- file:
- path: "/tmp/initramfs-resume.bkp"
- state: "absent"
- when: __initramfs_resume_backuped
- tags:
- - install-kernel-image
diff --git a/resources/tools/testbed-setup/ansible/roles/kubernetes/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/kubernetes/defaults/main.yaml
deleted file mode 100644
index 1a2f773950..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kubernetes/defaults/main.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# file: roles/kubernetes/defaults/main.yaml
-
-# Version options.
-kubernetes_version: "1.11.0-00"
-kubernetes_apt_package_state: present
-
-# Service options.
-kubernetes_service_state: started
-kubernetes_service_enabled: true
-kubernetes_restart_handler_state: restarted
-
-# APT options.
-kubernetes_apt_repository: "deb http://apt.kubernetes.io/ kubernetes-xenial main"
-kubernetes_apt_repository_state: present
diff --git a/resources/tools/testbed-setup/ansible/roles/kubernetes/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/kubernetes/tasks/main.yaml
deleted file mode 100644
index 160ffb8c06..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kubernetes/tasks/main.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-# file: roles/kubernetes/tasks/main.yaml
-
-- name: Kubernetes - Install distribution - release - machine prerequisites
- include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml'
- tags: install-kubernetes
-
-- name: Kubernetes - Apply kubelet parameter
- lineinfile:
- path: '/etc/default/kubelet'
- state: 'present'
- regexp: '^KUBELET_EXTRA_ARGS=*'
- line: 'KUBELET_EXTRA_ARGS=--feature-gates HugePages=false'
- tags: install-kubernetes
diff --git a/resources/tools/testbed-setup/ansible/roles/kubernetes/tasks/ubuntu_bionic.yaml b/resources/tools/testbed-setup/ansible/roles/kubernetes/tasks/ubuntu_bionic.yaml
deleted file mode 100644
index ddb885f6ee..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kubernetes/tasks/ubuntu_bionic.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
----
-# file: roles/kubernetes/tasks/ubuntu_bionic.yaml
-
-- name: Kubernetes repository - Dependencies
- apt:
- name:
- - 'apt-transport-https'
- - 'ca-certificates'
- - 'software-properties-common'
- state: 'present'
- cache_valid_time: 3600
- install_recommends: False
- tags: install-kubernetes
-
-- name: Kubernetes repository - Add an Apt signing key
- apt_key:
- url: 'https://packages.cloud.google.com/apt/doc/apt-key.gpg'
- state: 'present'
- tags: install-kubernetes
-
-- name: Kubernetes repository - Install APT repository
- apt_repository:
- repo: '{{ kubernetes_apt_repository }}'
- state: '{{ kubernetes_apt_repository_state }}'
- update_cache: True
- tags: install-kubernetes
-
-- name: Kubernetes - Install
- apt:
- name:
- - 'kubernetes-cni=0.6.0-00'
- - 'kubeadm={{ kubernetes_version }}'
- - 'kubectl={{ kubernetes_version }}'
- - 'kubelet={{ kubernetes_version }}'
- state: '{{ kubernetes_apt_package_state }}'
- force: True
- tags: install-kubernetes
diff --git a/resources/tools/testbed-setup/ansible/roles/mellanox/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/mellanox/defaults/main.yaml
deleted file mode 100644
index a77bc67ec7..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/mellanox/defaults/main.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-# file: roles/mellanox/defaults/main.yaml
-
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - []
-
-packages_by_distro:
- ubuntu:
- - "build-essential"
- - "libnl-3-dev"
- - "libnl-route-3-dev"
-
-packages_by_arch:
- aarch64:
- - []
- x86_64:
- - []
-
-mellanox_version: "4.6-1.0.1.1"
diff --git a/resources/tools/testbed-setup/ansible/roles/mellanox/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/mellanox/tasks/main.yaml
deleted file mode 100644
index 2fb6e2e213..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/mellanox/tasks/main.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
----
-# file: roles/mellanox/tasks/main.yaml
-
-- name: Mellanox Install - Install Distribution - Release - Machine Prerequisites
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: latest
- update_cache: true
- tags:
- - install-dependencies
-
-- name: Mellanox Install - Check Presence of Mellanox Hardware
- shell: "lspci | grep Mellanox | awk '{print $1}'"
- register: mellanox_pcis
- failed_when: no
- changed_when: no
- tags:
- - install-mellanox
-
-- name: Mellanox Install - Get OFED
- get_url:
- url: "http://content.mellanox.com/ofed/MLNX_OFED-{{ mellanox_version }}/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
- dest: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
- mode: 0644
- when: mellanox_pcis.stdout_lines | length > 0
- tags:
- - install-mellanox
-
-- name: Mellanox Install - Extract OFED
- unarchive:
- remote_src: true
- src: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
- dest: "/opt/"
- creates: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}"
- register: mellanox_firmware_extracted
- when: mellanox_pcis.stdout_lines | length > 0
- tags:
- - install-mellanox
-
-- name: Mellanox Install - Install OFED
- command: "./mlnxofedinstall --with-mft --dpdk --force --upstream-libs"
- args:
- chdir: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}"
- when: mellanox_pcis.stdout_lines | length > 0 and mellanox_firmware_extracted
- tags:
- - install-mellanox
-
-- name: Mellanox Install - Switch Infiniband to Ethernet
- command: "mlxconfig --yes --dev {{ item }} set LINK_TYPE_P1=2 LINK_TYPE_P2=2"
- with_items: "{{ mellanox_pcis.stdout_lines }}"
- tags:
- - install-mellanox
-
-- name: Mellanox Install - FIX qemu-system removal
- package:
- name: "qemu-system"
- state: latest
- update_cache: true
- tags:
- - install-mellanox
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/nomad/defaults/main.yaml
deleted file mode 100644
index 864890c11e..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/defaults/main.yaml
+++ /dev/null
@@ -1,105 +0,0 @@
----
-# file: roles/nomad/defaults/main.yaml
-
-# Inst - Prerequisites.
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - "cgroup-bin"
- - "curl"
- - "git"
- - "libcgroup1"
- - "unzip"
- - "htop"
-packages_by_distro:
- ubuntu:
- - []
-packages_by_arch:
- aarch64:
- - []
- x86_64:
- - []
-
-# Inst - Download Nomad.
-nomad_architecture_map:
- amd64: "amd64"
- x86_64: "amd64"
- armv7l: "arm"
- aarch64: "arm64"
- 32-bit: "386"
- 64-bit: "amd64"
-nomad_architecture: "{{ nomad_architecture_map[ansible_architecture] }}"
-nomad_version: "0.12.0"
-nomad_pkg: "nomad_{{ nomad_version }}_linux_{{ nomad_architecture }}.zip"
-nomad_zip_url: "https://releases.hashicorp.com/nomad/{{ nomad_version }}/{{ nomad_pkg }}"
-
-# Inst - System paths.
-nomad_bin_dir: "/usr/local/bin"
-nomad_config_dir: "/etc/nomad.d"
-nomad_data_dir: "/var/nomad"
-nomad_inst_dir: "/opt"
-nomad_lockfile: "/var/lock/subsys/nomad"
-nomad_run_dir: "/var/run/nomad"
-nomad_ssl_dir: "/etc/nomad.d/ssl"
-
-# Conf - Service.
-nomad_node_role: "both"
-nomad_restart_handler_state: "restarted"
-
-# Conf - User and group.
-nomad_group: "nomad"
-nomad_group_state: "present"
-nomad_manage_group: true
-nomad_manage_user: true
-nomad_user: "nomad"
-nomad_user_groups: [ docker, nomad, root ]
-nomad_user_state: "present"
-
-# Conf - base.hcl
-nomad_bind_addr: "0.0.0.0"
-nomad_datacenter: "dc1"
-nomad_disable_update_check: true
-nomad_enable_debug: false
-nomad_log_level: "INFO"
-nomad_name: "{{ inventory_hostname }}"
-nomad_region: "global"
-nomad_syslog_enable: true
-
-# Conf - tls.hcl
-nomad_ca_file: "{{ nomad_ssl_dir }}/ca.pem"
-nomad_cert_file: "{{ nomad_ssl_dir }}/nomad.pem"
-nomad_http: false
-nomad_key_file: "{{ nomad_ssl_dir }}/nomad-key.pem"
-nomad_rpc: false
-
-# Conf - client.hcl
-nomad_certificates:
- - src: "{{ vault_nomad_ca_file }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ vault_nomad_cert_file }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ vault_nomad_key_file }}"
- dest: "{{ nomad_key_file }}"
-nomad_node_class: ""
-nomad_no_host_uuid: true
-nomad_options: {}
-nomad_servers: []
-nomad_volumes: []
-
-# Conf - server.hcl
-nomad_bootstrap_expect: 2
-nomad_encrypt: ""
-nomad_retry_join: true
-
-# Conf - telemetry.hcl
-nomad_disable_hostname: false
-nomad_collection_interval: 60s
-nomad_use_node_name: false
-nomad_publish_allocation_metrics: true
-nomad_publish_node_metrics: true
-nomad_backwards_compatible_metrics: false
-nomad_telemetry_provider_parameters:
- prometheus_metrics: true
-
-# Conf - custom.hcl
-# empty
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/nomad/handlers/main.yaml
deleted file mode 100644
index f0bcee9142..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/handlers/main.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-# file roles/nomad/handlers/main.yaml
-
-- name: Restart Nomad
- systemd:
- daemon_reload: true
- enabled: true
- name: "nomad"
- state: "{{ nomad_restart_handler_state }}"
-
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/meta/main.yaml b/resources/tools/testbed-setup/ansible/roles/nomad/meta/main.yaml
deleted file mode 100644
index 9fc40d9ae1..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/meta/main.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-# file: roles/nomad/meta/main.yaml
-
-# desc: Install nomad from stable branch and configure service.
-# inst: Nomad
-# conf: ?
-# info: 1.0 - added role
-
-dependencies: [ docker ]
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/nomad/tasks/main.yaml
deleted file mode 100644
index e1341b3361..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/tasks/main.yaml
+++ /dev/null
@@ -1,184 +0,0 @@
----
-# file: roles/nomad/tasks/main.yaml
-
-- name: Inst - Prerequisites
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: latest
- update_cache: true
- tags:
- - nomad-inst-prerequisites
-
-- name: Conf - Add Nomad Group
- group:
- name: "{{ nomad_group }}"
- state: "{{ nomad_group_state }}"
- when:
- - nomad_manage_group | bool
- tags:
- - nomad-conf-user
-
-- name: Conf - Add Nomad user
- user:
- name: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- groups: "{{ nomad_user_groups }}"
- state: "{{ nomad_user_state }}"
- system: true
- when:
- - nomad_manage_user | bool
- tags:
- - nomad-conf-user
-
-- name: Inst - Clean Nomad
- file:
- path: "{{ nomad_inst_dir }}/nomad"
- state: "absent"
- tags:
- - nomad-inst-package
-
-- name: Inst - Download Nomad
- get_url:
- url: "{{ nomad_zip_url }}"
- dest: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
- tags:
- - nomad-inst-package
-
-- name: Inst - Unarchive Nomad
- unarchive:
- src: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
- dest: "{{ nomad_inst_dir }}/"
- creates: "{{ nomad_inst_dir }}/nomad"
- remote_src: true
- tags:
- - nomad-inst-package
-
-- name: Inst - Nomad
- copy:
- src: "{{ nomad_inst_dir }}/nomad"
- dest: "{{ nomad_bin_dir }}"
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- force: true
- mode: 0755
- remote_src: true
- tags:
- - nomad-inst-package
-
-- name: Conf - Create Directories "{{ nomad_data_dir }}"
- file:
- dest: "{{ nomad_data_dir }}"
- state: directory
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- tags:
- - nomad-conf
-
-- name: Conf - Create Directories "{{ nomad_ssl_dir }}"
- file:
- dest: "{{ nomad_ssl_dir }}"
- state: directory
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- tags:
- - nomad-conf
-
-- name: Conf - Create Config Directory
- file:
- dest: "{{ nomad_config_dir }}"
- state: directory
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0755
- tags:
- - nomad-conf
-
-- name: Conf - Base Configuration
- template:
- src: base.hcl.j2
- dest: "{{ nomad_config_dir }}/base.hcl"
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0644
- tags:
- - nomad-conf
-
-- name: Conf - Server Configuration
- template:
- src: server.hcl.j2
- dest: "{{ nomad_config_dir }}/server.hcl"
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0644
- when:
- - nomad_node_server | bool
- tags:
- - nomad-conf
-
-- name: Conf - Client Configuration
- template:
- src: client.hcl.j2
- dest: "{{ nomad_config_dir }}/client.hcl"
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0644
- when:
- - nomad_node_client | bool
- tags:
- - nomad-conf
-
-- name: Conf - TLS Configuration
- template:
- src: tls.hcl.j2
- dest: "{{ nomad_config_dir }}/tls.hcl"
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0644
- tags:
- - nomad-conf
-
-- name: Conf - Telemetry Configuration
- template:
- src: telemetry.hcl.j2
- dest: "{{ nomad_config_dir }}/telemetry.hcl"
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0644
- tags:
- - nomad-conf
-
-- name: Conf - Custom Configuration
- template:
- src: custom.json.j2
- dest: "{{ nomad_config_dir }}/custom.json"
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0644
- when:
- - nomad_config_custom is defined
- tags:
- - nomad-conf
-
-- name: Conf - Copy Certificates And Keys
- copy:
- content: "{{ item.src }}"
- dest: "{{ item.dest }}"
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0600
- no_log: true
- loop: "{{ nomad_certificates | flatten(levels=1) }}"
- tags:
- - nomad-conf
-
-- name: Conf - System.d Script
- template:
- src: "nomad_systemd.service.j2"
- dest: "/lib/systemd/system/nomad.service"
- owner: "root"
- group: "root"
- mode: 0644
-# notify:
-# - "Restart Nomad"
- tags:
- - nomad-conf
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/templates/base.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/nomad/templates/base.hcl.j2
deleted file mode 100644
index 7badecf9e0..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/templates/base.hcl.j2
+++ /dev/null
@@ -1,11 +0,0 @@
-name = "{{ nomad_name }}"
-region = "{{ nomad_region }}"
-datacenter = "{{ nomad_datacenter }}"
-
-bind_addr = "{{ nomad_bind_addr }}"
-data_dir = "{{ nomad_data_dir }}"
-
-enable_syslog = {{ nomad_syslog_enable | bool | lower }}
-enable_debug = {{ nomad_enable_debug | bool | lower }}
-disable_update_check = {{ nomad_disable_update_check | bool | lower }}
-log_level = "{{ nomad_log_level }}"
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/templates/client.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/nomad/templates/client.hcl.j2
deleted file mode 100644
index f245697a22..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/templates/client.hcl.j2
+++ /dev/null
@@ -1,31 +0,0 @@
-client {
- enabled = {{ nomad_node_client | bool | lower }}
- no_host_uuid = {{ nomad_no_host_uuid | bool | lower }}
- node_class = "{{ nomad_node_class }}"
-
- {% if nomad_cpu_total_compute is defined -%}
- cpu_total_compute = {{ nomad_cpu_total_compute }}
- {% endif -%}
-
- {% if nomad_servers -%}
- servers = [ {% for ip_port in nomad_servers -%} "{{ ip_port }}" {% if not loop.last %},{% endif %}{%- endfor -%} ]
- {% endif %}
-
- {% if nomad_options -%}
- options = {
- {% for key, value in nomad_options.items() %}
- "{{ key }}" = "{{ value }}"
- {% endfor -%}
- }
- {% endif %}
-
- {% if nomad_volumes -%}
- {% for volume in nomad_volumes -%}
- host_volume "{{ volume.name }}" {
- path = "{{ volume.path }}"
- read_only = {{ volume.read_only | bool | lower }}
- }
- {% endfor -%}
- {% endif %}
-
-}
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/templates/custom.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/nomad/templates/custom.hcl.j2
deleted file mode 100644
index 37ff6f3496..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/templates/custom.hcl.j2
+++ /dev/null
@@ -1,5 +0,0 @@
-{% if nomad_config_custom -%}
-{{ nomad_config_custom | to_nice_json }}
-{% else %}
-{}
-{% endif %}
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/templates/nomad_systemd.service.j2 b/resources/tools/testbed-setup/ansible/roles/nomad/templates/nomad_systemd.service.j2
deleted file mode 100644
index 2a87c65063..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/templates/nomad_systemd.service.j2
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Nomad Service
-Documentation=https://www.nomadproject.io/docs/
-Wants=network-online.target
-After=network-online.target
-
-[Service]
-# TODO: Decrease privilege
-ExecReload=/bin/kill -SIGHUP $MAINPID
-ExecStart={{ nomad_bin_dir }}/nomad agent -config={{ nomad_config_dir }}
-KillSignal=SIGTERM
-LimitNOFILE=infinity
-LimitNPROC=infinity
-Restart=on-failure
-RestartSec=1
-User=root
-Group=root
-Environment="GOMAXPROCS=2"
-
-[Install]
-WantedBy=multi-user.target
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/templates/server.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/nomad/templates/server.hcl.j2
deleted file mode 100644
index b581de9ad0..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/templates/server.hcl.j2
+++ /dev/null
@@ -1,16 +0,0 @@
-server {
- enabled = {{ nomad_node_server | bool | lower }}
-
- {% if nomad_node_server | bool -%}
- bootstrap_expect = {{ nomad_bootstrap_expect }}
- {%- endif %}
-
- encrypt = "{{ nomad_encrypt }}"
-
- {% if nomad_retry_join | bool -%}
- server_join {
- retry_join = [ {% for ip_port in nomad_retry_servers -%} "{{ ip_port }}" {% if not loop.last %},{% endif %}{%- endfor -%} ]
- }
- {%- endif %}
-
-}
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/templates/telemetry.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/nomad/templates/telemetry.hcl.j2
deleted file mode 100644
index 256c6999e9..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/templates/telemetry.hcl.j2
+++ /dev/null
@@ -1,20 +0,0 @@
-telemetry {
- # Telemetry provider parameters
- {% for key, value in nomad_telemetry_provider_parameters.items() -%}
- {% if value|bool -%}
- {{ key }} = {{ value | bool | lower }}
- {% elif value|string or value == "" -%}
- {{ key }} = "{{ value }}"
- {% else %}
- {{ key }} = {{ value }}
- {% endif -%}
- {% endfor -%}
-
- # Common parameters
- disable_hostname = {{ nomad_disable_hostname | bool | lower }}
- collection_interval = "{{ nomad_collection_interval }}"
- use_node_name = {{ nomad_use_node_name | bool | lower }}
- publish_allocation_metrics = {{ nomad_publish_allocation_metrics | bool | lower }}
- publish_node_metrics = {{ nomad_publish_node_metrics | bool | lower }}
- backwards_compatible_metrics = {{ nomad_backwards_compatible_metrics | bool | lower }}
-}
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/templates/tls.hcl.j2 b/resources/tools/testbed-setup/ansible/roles/nomad/templates/tls.hcl.j2
deleted file mode 100644
index 650765f1b1..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/templates/tls.hcl.j2
+++ /dev/null
@@ -1,12 +0,0 @@
-{% if ( nomad_ca_file ) and
- ( nomad_cert_file ) and
- ( nomad_key_file )
-%}
-tls {
- http = {{ nomad_http | bool | lower }}
- rpc = {{ nomad_rpc | bool | lower }}
- ca_file = "{{ nomad_ca_file }}"
- cert_file = "{{ nomad_cert_file }}"
- key_file = "{{ nomad_key_file }}"
-}
-{% endif %}
diff --git a/resources/tools/testbed-setup/ansible/roles/nomad/vars/main.yaml b/resources/tools/testbed-setup/ansible/roles/nomad/vars/main.yaml
deleted file mode 100644
index a72222c992..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/nomad/vars/main.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-# file: roles/nomad/vars/main.yaml
-
-nomad_node_client: "{{ (nomad_node_role == 'client') or (nomad_node_role == 'both') }}"
-nomad_node_server: "{{ (nomad_node_role == 'server') or (nomad_node_role == 'both') }}"
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/performance_tuning/defaults/main.yaml
deleted file mode 100644
index 612bc5a946..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/defaults/main.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# file: roles/performance_tuning/defaults/main.yaml
-
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - "cpufrequtils"
-
-packages_by_distro:
- ubuntu:
- - []
-
-packages_by_arch:
- aarch64:
- - []
- x86_64:
- - [] \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/performance_tuning/handlers/main.yaml
deleted file mode 100644
index fa2876b7ac..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/handlers/main.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-# file roles/performance_tuning/handlers/main.yaml
-
-- name: Update GRUB
- command: update-grub
- tags:
- - update-grub
-
-- name: Reboot server
- reboot:
- reboot_timeout: 3600
- tags:
- - reboot-server
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml
deleted file mode 100644
index c437b40f86..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml
+++ /dev/null
@@ -1,186 +0,0 @@
----
-# file: roles/performance_tuning/tasks/main.yaml
-
-- name: Performance Tuning - Install Distribution - Release - Machine Prerequisites
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: latest
- update_cache: true
- tags:
- - install-dependencies
-
-- name: Performance Tuning - Distribution - release - machine optimizations
- include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml'
- tags:
- - machine-optimizations
-
-- name: Performance Tuning - Configure {{ ansible_machine }} Kernel Parameters
- lineinfile:
- path: "/etc/default/grub"
- state: "present"
- regexp: "^GRUB_CMDLINE_LINUX="
- line: "GRUB_CMDLINE_LINUX=\"{% for key, value in grub.items() %}{% if value %}{{key}}={{value}} {% else %}{{key}} {% endif %}{% endfor %}\""
- notify:
- - "Update GRUB"
- tags:
- - set-grub
-
-- meta: flush_handlers
-
-- name: Performance Tuning - Turbo Boost
- import_tasks: turbo_boost.yaml
- when: >
- cpu_microarchitecture == "skylake" or
- cpu_microarchitecture == "cascadelake"
- tags:
- - turbo-boost
-
-- name: Performance Tuning - Adjust nr_hugepages
- # change the minimum size of the hugepage pool.
- # 2G VPP, 4GB per VNF/CNF, 2G reserve
- sysctl:
- name: "vm.nr_hugepages"
- value: "{{ sysctl.vm.nr_hugepages }}"
- state: "present"
- sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
- tags:
- - set-sysctl
-
-- name: Performance Tuning - Adjust max_map_count
- # this file contains the maximum number of memory map areas a process
- # may have. memory map areas are used as a side-effect of calling
- # malloc, directly by mmap and mprotect, and also when loading shared
- # libraries.
- #
- # while most applications need less than a thousand maps, certain
- # programs, particularly malloc debuggers, may consume lots of them,
- # e.g., up to one or two maps per allocation.
- # must be greater than or equal to (2 * vm.nr_hugepages).
- sysctl:
- name: "vm.max_map_count"
- value: "{{ sysctl.vm.nr_hugepages * 4 }}"
- state: "present"
- sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
- tags:
- - set-sysctl
-
-- name: Performance Tuning - Adjust hugetlb_shm_group
- # hugetlb_shm_group contains group id that is allowed to create sysv
- # shared memory segment using hugetlb page.
- sysctl:
- name: "vm.hugetlb_shm_group"
- value: "1000"
- state: "present"
- sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
- tags:
- - set-sysctl
-
-- name: Performance Tuning - Adjust swappiness
- # this control is used to define how aggressive the kernel will swap
- # memory pages. higher values will increase agressiveness, lower values
- # decrease the amount of swap. a value of 0 instructs the kernel not to
- # initiate swap until the amount of free and file-backed pages is less
- # than the high water mark in a zone.
- sysctl:
- name: "vm.swappiness"
- value: "0"
- state: "present"
- sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
- tags:
- - set-sysctl
-
-- name: Performance Tuning - Adjust shmmax
- # shared memory max must be greator or equal to the total size of hugepages.
- # for 2mb pages, totalhugepagesize = vm.nr_hugepages * 2 * 1024 * 1024
- # if the existing kernel.shmmax setting (cat /sys/proc/kernel/shmmax)
- # is greater than the calculated totalhugepagesize then set this parameter
- # to current shmmax value.
- sysctl:
- name: "kernel.shmmax"
- value: "{{ sysctl.vm.nr_hugepages * 2 * 1024 * 1024 }}"
- state: "present"
- sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
- tags:
- - set-sysctl
-
-- name: Performance Tuning - Adjust watchdog_cpumask
- # this value can be used to control on which cpus the watchdog may run.
- # the default cpumask is all possible cores, but if no_hz_full is
- # enabled in the kernel config, and cores are specified with the
- # nohz_full= boot argument, those cores are excluded by default.
- # offline cores can be included in this mask, and if the core is later
- # brought online, the watchdog will be started based on the mask value.
- #
- # typically this value would only be touched in the nohz_full case
- # to re-enable cores that by default were not running the watchdog,
- # if a kernel lockup was suspected on those cores.
- sysctl:
- name: "kernel.watchdog_cpumask"
- value: "{{ sysctl.kernel.watchdog_cpumask }}"
- state: "present"
- sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
- tags:
- - set-sysctl
-
-- name: Performance Tuning - Adjust randomize_va_space
- # this option can be used to select the type of process address
- # space randomization that is used in the system, for architectures
- # that support this feature.
- # 0 - turn the process address space randomization off. this is the
- # default for architectures that do not support this feature anyways,
- # and kernels that are booted with the "norandmaps" parameter.
- sysctl:
- name: "kernel.randomize_va_space"
- value: "0"
- state: "present"
- sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
- tags:
- - set-sysctl
-
-- name: Performance Tuning - Copy Cpufrequtils File
- copy:
- src: "files/cpufrequtils"
- dest: "/etc/default/cpufrequtils"
- owner: "root"
- group: "root"
- mode: "0644"
- tags:
- - copy-cpufrequtils
-
-- name: Performance Tuning - Copy Irqbalance File
- template:
- src: "files/irqbalance"
- dest: "/etc/default/irqbalance"
- owner: "root"
- group: "root"
- mode: "0644"
- notify:
- - "Update GRUB"
- tags:
- - copy-irqbalance
-
-- name: Performance Tuning - Set Ondemand Service To Disable
- service:
- name: "ondemand"
- enabled: "no"
- tags:
- - set-ondemand
-
-- name: Performance Tuning - Load Kernel Modules By Default
- lineinfile:
- path: "/etc/modules"
- state: "present"
- line: "{{ item }}"
- with_items:
- - "vfio-pci"
- tags:
- - load-kernel-modules
-
-- meta: flush_handlers
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/turbo_boost.yaml b/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/turbo_boost.yaml
deleted file mode 100644
index 310803ca5b..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/turbo_boost.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
----
-# file: roles/performance_tuning/tasks/turbo_boost.yaml
-
-- name: Turbo Boost - Install msr-tools
- package:
- name:
- - "msr-tools"
- state: latest
- update_cache: true
- tags:
- - turbo-boost
-
-- name: Turbo Boost - Load msr By Default
- lineinfile:
- path: "/etc/modules"
- state: "present"
- line: "msr"
- tags:
- - turbo-boost
-
-- name: Turbo Boost - Custom Startup Service Hook
- copy:
- src: "files/disable-turbo-boost.service"
- dest: "/etc/systemd/system/disable-turbo-boost.service"
- owner: "root"
- group: "root"
- mode: "0644"
- tags:
- - turbo-boost
-
-- name: Turbo Boost - Custom Startup Service Hook Enable
- service:
- name: "disable-turbo-boost"
- enabled: yes
- tags:
- - turbo-boost
diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/ubuntu_bionic.yaml b/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/ubuntu_bionic.yaml
deleted file mode 100644
index 273ad53f25..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/ubuntu_bionic.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-# file: roles/performance_tuning/tasks/ubuntu_bionic.yaml
-
-- name: Ubuntu Bionic - Mount /tmp as tmpfs I
- copy:
- src: "/usr/share/systemd/tmp.mount"
- dest: "/etc/systemd/system/tmp.mount"
- remote_src: yes
- tags:
- - machine-optimizations
-
-- name: Ubuntu Bionic - Mount /tmp as tmpfs II
- systemd:
- name: "tmp.mount"
- daemon_reload: yes
- enabled: yes
- tags:
- - machine-optimizations
diff --git a/resources/tools/testbed-setup/ansible/roles/tg/files/csit-initialize-docker-tg.service b/resources/tools/testbed-setup/ansible/roles/tg/files/csit-initialize-docker-tg.service
deleted file mode 100644
index 11911201d5..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/tg/files/csit-initialize-docker-tg.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=CSIT Initialize Docker TG
-After=network.target
-
-[Service]
-Type=oneshot
-RemainAfterExit=True
-ExecStart=/usr/local/bin/csit-initialize-docker-tg.sh start 2
-ExecStop=/usr/local/bin/csit-initialize-docker-tg.sh stop
-
-[Install]
-WantedBy=default.target
diff --git a/resources/tools/testbed-setup/ansible/roles/tg/files/csit-initialize-docker-tg.sh b/resources/tools/testbed-setup/ansible/roles/tg/files/csit-initialize-docker-tg.sh
deleted file mode 100755
index 7b90d20bda..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/tg/files/csit-initialize-docker-tg.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-# CSIT SRIOV VF initialization and isolation.
-
-set -euo pipefail
-
-case "${1:-start}" in
- "start" )
- # Run TG
- for cnt in $(seq 1 ${2:-1}); do
- docker network create --driver bridge csit-nw-tg${cnt} || true
- # If the IMAGE is not already loaded then docker run will pull the
- # IMAGE, and all image dependencies, before it starts the container.
- dcr_image="snergster/csit-sut:latest"
- # Run the container in the background and print the new container
- # ID.
- dcr_stc_params="--detach=true "
- # Give extended privileges to this container. A "privileged"
- # container is given access to all devices and able to run nested
- # containers.
- dcr_stc_params+="--privileged "
- # Publish all exposed ports to random ports on the host interfaces.
- dcr_stc_params+="--publish 600${cnt}:22 "
- # Automatically remove the container when it exits.
- dcr_stc_params+="--rm "
- # Size of /dev/shm.
- dcr_stc_params+="--shm-size 4G "
- # Mount vfio to be able to bind to see binded interfaces. We cannot
- # use --device=/dev/vfio as this does not see newly binded
- # interfaces.
- dcr_stc_params+="--volume /dev:/dev "
- # Mount /opt/boot/ where VM kernel and initrd are located.
- dcr_stc_params+="--volume /opt:/opt "
- # Mount host hugepages for VMs.
- dcr_stc_params+="--volume /dev/hugepages:/dev/hugepages "
-
- params=(${dcr_stc_params} --name csit-tg-"${cnt}" "${dcr_image}")
- docker run --network=csit-nw-tg${cnt} "${params[@]}"
- done
- ;;
- "stop" )
- docker rm --force $(docker ps --all --quiet --filter name=csit)
- docker network rm $(docker network ls --filter name=csit --quiet)
- ;;
-esac
diff --git a/resources/tools/testbed-setup/ansible/roles/tg/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/tg/handlers/main.yaml
deleted file mode 100644
index e13e67b2c1..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/tg/handlers/main.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-# file: roles/tg/handlers/main.yaml
-
-- name: Start csit-initialize-docker-tg.service
- systemd:
- enabled: yes
- state: "started"
- name: "csit-initialize-docker-tg.service"
- tags:
- - docker-tg
diff --git a/resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml
deleted file mode 100644
index d7a9ed882d..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
----
-# file: roles/tg/tasks/main.yaml
-
-- name: TG - Copy csit-initialize-docker-tg.sh
- copy:
- src: "files/csit-initialize-docker-tg.sh"
- dest: "/usr/local/bin/csit-initialize-docker-tg.sh"
- owner: "root"
- group: "root"
- mode: "744"
- when: docker_tg is defined
- tags:
- - docker-tg
-
-- name: TG - Start csit-initialize-docker-tg.service
- copy:
- src: "files/csit-initialize-docker-tg.service"
- dest: "/etc/systemd/system/"
- owner: "root"
- group: "root"
- mode: "644"
- notify:
- - "Start csit-initialize-docker-tg.service"
- when: docker_tg is defined
- tags:
- - docker-tg
-
-- meta: flush_handlers
diff --git a/resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml
deleted file mode 100644
index 9efdc71759..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-# file: roles/topology/tasks/main.yaml
-
-- name: Create topology file
- template:
- src: 'templates/topology_{{ cloud_topology }}.j2'
- dest: '../../../../topologies/available/{{ cloud_topology }}_testbed.yaml'
- tags:
- - create-topology-file
diff --git a/resources/tools/testbed-setup/ansible/roles/trex/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/trex/defaults/main.yaml
deleted file mode 100644
index c3caf52d76..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/trex/defaults/main.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
----
-# file: roles/trex/defaults/main.yaml
-
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - []
-
-packages_by_distro:
- ubuntu:
- - "build-essential"
- - "libmnl-dev"
- - "libnuma-dev"
- - "libpcap-dev"
- - "librdmacm-dev"
- - "librdmacm1"
- - "libssl-dev"
- - "pciutils"
- - "python3-pip"
- - "zlib1g-dev"
-
-packages_by_arch:
- aarch64:
- - []
- x86_64:
- - []
-
-trex_target_dir: "/opt"
-trex_url: "https://github.com/cisco-system-traffic-generator/trex-core/archive/"
-trex_version:
- # rls1908
- - "2.54"
- # rls2001
- # rls2005
- - "2.73"
- # rls2009
- - "2.82"
- # rls2101
- - "2.86"
diff --git a/resources/tools/testbed-setup/ansible/roles/trex/tasks/deploy_block.yaml b/resources/tools/testbed-setup/ansible/roles/trex/tasks/deploy_block.yaml
deleted file mode 100644
index 1513a0a617..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/trex/tasks/deploy_block.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
----
-# file: roles/trex/tasks/deploy_block.yaml
-
-- name: "Get Release {{ item }}"
- get_url:
- url: "{{ trex_url }}/v{{ item }}.tar.gz"
- dest: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
- validate_certs: False
- mode: 0644
- register: trex_downloaded
-
-- name: "Create Directory {{ item }}"
- file:
- path: "{{ trex_target_dir }}/trex-core-{{ item }}"
- state: "directory"
-
-- name: "Extract Release {{ item }}"
- unarchive:
- remote_src: true
- src: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
- dest: "{{ trex_target_dir }}/"
- creates: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
- register: trex_extracted
-
-- name: Patch Azure
- patch:
- src: "files/t-rex.patch"
- basedir: "{{ trex_target_dir }}/trex-core-{{ item }}"
- strip: 1
- when:
- - azure is defined and item == "2.73"
-
-- name: "Compile Release {{ item }} Part I"
- command: "./b configure"
- args:
- chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
- when: trex_extracted.changed
-
-- name: "Compile Release {{ item }} Part II"
- command: "./b build"
- args:
- chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
- when: trex_extracted.changed
-
-- name: "Compile Release {{ item }} Part III"
- command: "make -j 16"
- args:
- chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
- when: trex_extracted.changed
-
-- name: "Compile Release {{ item }} Part IV"
- command: "make install"
- args:
- chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
- when: trex_extracted.changed \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/trex/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/trex/tasks/main.yaml
deleted file mode 100644
index 019a27f79d..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/trex/tasks/main.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-# file: roles/trex/tasks/main.yaml
-
-- name: Install Distribution - Release - Machine Prerequisites
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: latest
- update_cache: true
- tags:
- - install-dependencies
-
-- name: Deploy Multiple T-Rex Versions
- include_tasks: deploy_block.yaml
- loop: "{{ trex_version }}"
- tags:
- - install-trex \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/user_add/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/user_add/defaults/main.yaml
deleted file mode 100644
index 56f5098f12..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/user_add/defaults/main.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
----
-# file: roles/user_add/defaults/main.yaml
-
-# Default shell for a user if none is specified.
-users_shell: /bin/bash
-
-# Default create home dirs for new users.
-users_create_homedirs: true
-
-# Default list of users to create.
-users: []
diff --git a/resources/tools/testbed-setup/ansible/roles/user_add/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/user_add/handlers/main.yaml
deleted file mode 100644
index 960f573b48..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/user_add/handlers/main.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-# file: roles/user_add/handlers/main.yaml
-
-- name: Restart SSHd
- service:
- name: sshd
- state: restarted
diff --git a/resources/tools/testbed-setup/ansible/roles/user_add/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/user_add/tasks/main.yaml
deleted file mode 100644
index f980aff84d..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/user_add/tasks/main.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
----
-# file: roles/user_add/tasks/main.yaml
-
-- name: Conf - Add User
- user:
- append: "{{ item.append | default(omit) }}"
- createhome: "{{ 'yes' if users_create_homedirs else 'no' }}"
- generate_ssh_key: "{{ item.generate_ssh_key | default(omit) }}"
- groups: "{{ item.groups | join(',') if 'groups' in item else '' }}"
- name: "{{ item.username }}"
- password: "{{ item.password if item.password is defined else '!' }}"
- shell: "{{ item.shell if item.shell is defined else users_shell }}"
- state: present
- with_items: "{{ users }}"
- tags:
- - user-add-conf
-
-- name: Conf - SSH keys
- authorized_key:
- user: "{{ item.0.username }}"
- key: "{{ item.1 }}"
- with_subelements:
- - "{{ users }}"
- - ssh_key
- - skip_missing: yes
- tags:
- - user-add-conf
-
-- name: Conf - Allow Password Login
- lineinfile:
- dest: "/etc/ssh/sshd_config"
- regexp: "^PasswordAuthentication no"
- line: "PasswordAuthentication yes"
- notify:
- - "Restart SSHd"
- tags:
- - user-add-conf
-
-- name: Conf - Add Visudo Entry
- lineinfile:
- dest: "/etc/sudoers"
- state: present
- line: "{{ item.username }} ALL=(ALL) NOPASSWD: ALL"
- validate: "visudo -cf %s"
- with_items: "{{ users }}"
- tags:
- - user-add-conf
-
diff --git a/resources/tools/testbed-setup/ansible/roles/vpp/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/vpp/defaults/main.yaml
deleted file mode 100644
index 323d00cf29..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/vpp/defaults/main.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-# file: roles/vpp/defaults/main.yaml
-
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
-
-packages_base:
- - "gdb"
- - "libtool"
- - "lxc"
- - "pkg-config"
- - "screen"
-
-packages_by_distro:
- ubuntu:
- - "build-essential"
- - "libglib2.0-dev"
- - "libmbedcrypto1"
- - "libmbedtls10"
- - "libmbedx509-0"
- - "libnuma-dev"
- - "libpixman-1-dev"
-
-packages_by_arch:
- aarch64:
- - []
- x86_64:
- - []
diff --git a/resources/tools/testbed-setup/ansible/roles/vpp/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/vpp/tasks/main.yaml
deleted file mode 100644
index 174373c110..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/vpp/tasks/main.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-# file: roles/sut/tasks/main.yaml
-
-- name: SUT - Install Distribution - Release - Machine Prerequisites
- package:
- name: "{{ packages | flatten(levels=1) }}"
- state: latest
- update_cache: true
- tags:
- - install-dependencies
-
-- name: SUT - Install VPP 19.08 PIP requirements
- pip:
- name:
- - "aenum==2.1.2"
- executable: pip2
- tags:
- - install-pip
-
-- name: SUT - Copy 80-vpp.conf
- file:
- src: "/dev/null"
- dest: "/etc/sysctl.d/80-vpp.conf"
- state: "link"
- become: yes
- tags:
- - create-80-vpp
diff --git a/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs-default.sh b/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs-default.sh
deleted file mode 100644
index becc18f1a8..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs-default.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# 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.
-
-# Add Intel Corporation Ethernet Controller 10G X550T to blacklist.
-PCI_BLACKLIST=($(lspci -Dmmd ':1563:0200' | cut -f1 -d' '))
-
-# Add Intel Corporation Ethernet Controller X710 for 10GbE SFP+ to whitelist.
-PCI_WHITELIST=($(lspci -Dmmd ':1572:0200' | cut -f1 -d' '))
-
-# See http://pci-ids.ucw.cz/v2.2/pci.ids for more info.
diff --git a/resources/tools/testbed-setup/ansible/roles/vpp_device/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/vpp_device/handlers/main.yaml
deleted file mode 100644
index ee9d368638..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/vpp_device/handlers/main.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-# file: roles/vpp_device/handlers/main.yaml
-
-- name: Start csit-initialize-vfs.service
- systemd:
- enabled: yes
- state: started
- name: csit-initialize-vfs.service
- tags:
- - start-vf-service
-
-- name: Update GRUB
- command: update-grub
- tags:
- - update-grub
-
-- name: Reboot server
- reboot:
- reboot_timeout: 3600
- tags:
- - reboot-server
diff --git a/resources/tools/testbed-setup/ansible/roles/vpp_device/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/vpp_device/tasks/main.yaml
deleted file mode 100644
index 33b551715f..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/vpp_device/tasks/main.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
----
-# file: roles/vpp_device/tasks/main.yaml
-
-- name: VPP_device - Load Kernel Modules By Default
- lineinfile:
- path: "/etc/modules"
- state: "present"
- line: "{{ item }}"
- with_items:
- - "vfio-pci"
- tags:
- - load-kernel-modules
-
-- name: VPP_device - Disable ipv6 router advertisement
- sysctl:
- name: "net.ipv6.conf.default.accept_ra"
- value: "0"
- state: "present"
- sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
- tags:
- - set-sysctl
-
-- name: VPP_device - Disable ipv6 router advertisement
- sysctl:
- name: "net.ipv6.conf.all.accept_ra"
- value: "0"
- state: "present"
- sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
- tags:
- - set-sysctl
-
-- name: VPP_device - Copy csit-initialize-vfs.sh
- copy:
- src: "files/csit-initialize-vfs.sh"
- dest: "/usr/local/bin/"
- owner: "root"
- group: "root"
- mode: "744"
- tags:
- - copy-vf-script
-
-- name: VPP_device - Copy csit-initialize-vfs-data.sh
- copy:
- src: "files/{{ vfs_data_file }}"
- dest: "/usr/local/bin/csit-initialize-vfs-data.sh"
- owner: "root"
- group: "root"
- mode: "744"
- tags: copy-vf-data-script
- when:
- - vfs_data_file is defined
-
-- name: VPP_device - Copy default csit-initialize-vfs-data.sh
- copy:
- src: "files/csit-initialize-vfs-default.sh"
- dest: "/usr/local/bin/csit-initialize-vfs-data.sh"
- owner: "root"
- group: "root"
- mode: "744"
- tags: copy-vf-data-script
- when:
- - vfs_data_file is not defined
-
-- name: VPP_device - Start csit-initialize-vfs.service
- copy:
- src: "files/csit-initialize-vfs.service"
- dest: "/etc/systemd/system/"
- owner: "root"
- group: "root"
- mode: "644"
- notify:
- - "Start csit-initialize-vfs.service"
- tags:
- - start-vf-service
-
-- meta: flush_handlers
-
-- name: VPP_device - Set hugepages in GRUB
- lineinfile:
- path: "/etc/default/grub"
- state: "present"
- regexp: "^GRUB_CMDLINE_LINUX="
- line: "GRUB_CMDLINE_LINUX=\"{% for key, value in grub.items() %}{% if value %}{{key}}={{value}} {% else %}{{key}} {% endif %}{% endfor %}\""
- notify:
- - "Update GRUB"
- - "Reboot server"
- tags:
- - set-grub
-
-- meta: flush_handlers
diff --git a/resources/tools/testbed-setup/ansible/site.yaml b/resources/tools/testbed-setup/ansible/site.yaml
deleted file mode 100644
index 5ac76ca340..0000000000
--- a/resources/tools/testbed-setup/ansible/site.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# file: site.yaml
-
-- import_playbook: tg.yaml
- tags: tg
-
-- import_playbook: sut.yaml
- tags: sut
-
-- import_playbook: vpp_device.yaml
- tags: vpp-device
-
-- import_playbook: nomad.yaml
- tags: nomad
-
-- import_playbook: dev.yaml
- tags: dev
diff --git a/resources/tools/testbed-setup/ansible/site_aws.yaml b/resources/tools/testbed-setup/ansible/site_aws.yaml
deleted file mode 100644
index 4e23a97f85..0000000000
--- a/resources/tools/testbed-setup/ansible/site_aws.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# file: site_aws.yaml
-
-- import_playbook: tg_aws.yaml
- tags: tg
-
-- import_playbook: sut_aws.yaml
- tags: sut
diff --git a/resources/tools/testbed-setup/ansible/site_azure.yaml b/resources/tools/testbed-setup/ansible/site_azure.yaml
deleted file mode 100644
index c60e8b8f30..0000000000
--- a/resources/tools/testbed-setup/ansible/site_azure.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# file: site_azure.yaml
-
-- import_playbook: tg_azure.yaml
- tags: tg
-
-- import_playbook: sut_azure.yaml
- tags: sut
diff --git a/resources/tools/testbed-setup/ansible/sut.yaml b/resources/tools/testbed-setup/ansible/sut.yaml
deleted file mode 100644
index 302fa1b78d..0000000000
--- a/resources/tools/testbed-setup/ansible/sut.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
----
-# file: sut.yaml
-
-- hosts: sut
- remote_user: testuser
- become: yes
- become_user: root
- roles:
- - role: baremetal
- tags: baremetal
- - role: common
- tags: common
- - role: kernel
- tags: kernel
- - role: mellanox
- tags: mellanox
- - role: vpp
- tags: vpp
- - role: dpdk
- tags: dpdk
- - role: docker
- tags: docker
- - role: kubernetes
- tags: kubernetes
- - role: kernel_vm
- tags: kernel_vm
- - role: csit_sut_image
- tags: csit_sut_image
- - role: performance_tuning
- tags: performance_tuning
- - role: cleanup
- tags: cleanup
- - role: calibration
- tags: calibration
diff --git a/resources/tools/testbed-setup/ansible/sut_aws.yaml b/resources/tools/testbed-setup/ansible/sut_aws.yaml
deleted file mode 100644
index a7642abfef..0000000000
--- a/resources/tools/testbed-setup/ansible/sut_aws.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-# file: sut_aws.yaml
-
-- hosts: sut
- become: yes
- become_user: root
- roles:
- - role: user_add
- tags: user_add
- - role: common
- tags: common
- - role: vpp
- tags: vpp
- - role: dpdk
- tags: dpdk
- - role: aws
- tags: aws
- - role: iperf
- tags: iperf
- - role: docker
- tags: docker
- - role: cleanup
- tags: cleanup
-# - role: calibration
-# tags: calibration
diff --git a/resources/tools/testbed-setup/ansible/sut_azure.yaml b/resources/tools/testbed-setup/ansible/sut_azure.yaml
deleted file mode 100644
index 835ab63d83..0000000000
--- a/resources/tools/testbed-setup/ansible/sut_azure.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-# file: sut_azure.yaml
-
-- hosts: sut
- become: yes
- become_user: root
- roles:
- - role: user_add
- tags: user_add
- - role: common
- tags: common
- - role: vpp
- tags: vpp
- - role: azure
- tags: azure
- - role: iperf
- tags: iperf
- - role: docker
- tags: docker
- - role: dpdk
- tags: dpdk
- - role: cleanup
- tags: cleanup
-# - role: calibration
-# tags: calibration
diff --git a/resources/tools/testbed-setup/ansible/templates/topology_2n_aws_c5n.j2 b/resources/tools/testbed-setup/ansible/templates/topology_2n_aws_c5n.j2
deleted file mode 100644
index 1d99a34994..0000000000
--- a/resources/tools/testbed-setup/ansible/templates/topology_2n_aws_c5n.j2
+++ /dev/null
@@ -1,56 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/2_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 2-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "{{ tg_public_ip }}"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # tg_instance/p1 - 50GE port1 on ENA NIC.
- mac_address: {{ tg_if1_mac }}
- pci_address: "0000:00:06.0"
- link: link1
- model: Amazon-Nitro-50G
- port2:
- # tg_instance/p2 - 50GE port2 on ENA NIC.
- mac_address: {{ tg_if2_mac }}
- pci_address: "0000:00:07.0"
- link: link2
- model: Amazon-Nitro-50G
- DUT1:
- type: DUT
- host: "{{ dut1_public_ip }}"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # dut1_instance/p1 - 50GE port1 on ENA NIC.
- mac_address: {{ dut1_if1_mac }}
- pci_address: "0000:00:06.0"
- link: link1
- model: Amazon-Nitro-50G
- port2:
- # dut1_instance/p2 - 50GE port2 on ENA NIC.
- mac_address: {{ dut1_if2_mac }}
- pci_address: "0000:00:07.0"
- link: link2
- model: Amazon-Nitro-50G
diff --git a/resources/tools/testbed-setup/ansible/templates/topology_3n_aws_c5n.j2 b/resources/tools/testbed-setup/ansible/templates/topology_3n_aws_c5n.j2
deleted file mode 100644
index 631b0be63b..0000000000
--- a/resources/tools/testbed-setup/ansible/templates/topology_3n_aws_c5n.j2
+++ /dev/null
@@ -1,83 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/3_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 3-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "{{ tg_public_ip }}"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # tg_instance/p1 - 50GE port1 on ENA NIC.
- mac_address: {{ tg_if1_mac }}
- pci_address: "0000:00:06.0"
- link: link1
- model: Amazon-Nitro-50G
- port2:
- # tg_instance/p2 - 50GE port2 on ENA NIC.
- mac_address: {{ tg_if2_mac }}
- pci_address: "0000:00:07.0"
- link: link2
- model: Amazon-Nitro-50G
- DUT1:
- type: DUT
- host: "{{ dut1_public_ip }}"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # dut1_instance/p1 - 50GE port1 on ENA NIC.
- mac_address: {{ dut1_if1_mac }}
- pci_address: "0000:00:06.0"
- link: link1
- model: Amazon-Nitro-50G
- port2:
- # dut1_instance/p2 - 50GE port2 on ENA NIC.
- mac_address: {{ dut1_if2_mac }}
- pci_address: "0000:00:07.0"
- link: link21
- model: Amazon-Nitro-50G
- DUT2:
- type: DUT
- host: "{{ dut2_public_ip }}"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # dut2_instance/p1 - 50GE port1 on ENA NIC.
- mac_address: {{ dut2_if1_mac }}
- pci_address: "0000:00:06.0"
- link: link21
- model: Amazon-Nitro-50G
- port2:
- # dut2_instance/p2 - 50GE port1 on ENA NIC.
- mac_address: {{ dut2_if2_mac }}
- pci_address: "0000:00:07.0"
- link: link2
- model: Amazon-Nitro-50G
-
diff --git a/resources/tools/testbed-setup/ansible/tg.yaml b/resources/tools/testbed-setup/ansible/tg.yaml
deleted file mode 100644
index fc18038686..0000000000
--- a/resources/tools/testbed-setup/ansible/tg.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-# file: tg.yaml
-
-- hosts: tg
- remote_user: testuser
- become: yes
- become_user: root
- roles:
- - role: baremetal
- tags: baremetal
- - role: common
- tags: common
- - role: kernel
- tags: kernel
- - role: mellanox
- tags: mellanox
- - role: tg
- tags: tg
- - role: iperf
- tags: iperf
- - role: trex
- tags: trex
- - role: ab
- tags: ab
- - role: docker
- tags: docker
- - role: performance_tuning
- tags: performance_tuning
- - role: cleanup
- tags: cleanup
- - role: calibration
- tags: calibration
diff --git a/resources/tools/testbed-setup/ansible/tg_aws.yaml b/resources/tools/testbed-setup/ansible/tg_aws.yaml
deleted file mode 100644
index db0b574d15..0000000000
--- a/resources/tools/testbed-setup/ansible/tg_aws.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# file: tg_aws.yaml
-
-- hosts: tg
- become: yes
- become_user: root
- roles:
- - role: user_add
- tags: user_add
- - role: common
- tags: common
- - role: dpdk
- tags: dpdk
- - role: aws
- tags: aws
- - role: tg
- tags: tg
- - role: iperf
- tags: iperf
- - role: trex
- tags: trex
- - role: ab
- tags: ab
- - role: docker
- tags: docker
- - role: cleanup
- tags: cleanup
-# - role: calibration
-# tags: calibration
diff --git a/resources/tools/testbed-setup/ansible/tg_azure.yaml b/resources/tools/testbed-setup/ansible/tg_azure.yaml
deleted file mode 100644
index e6940a7c36..0000000000
--- a/resources/tools/testbed-setup/ansible/tg_azure.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-# file: tg_azure.yaml
-
-- hosts: tg
- become: yes
- become_user: root
- roles:
- - role: user_add
- tags: user_add
- - role: common
- tags: common
- - role: azure
- tags: azure
- - role: tg
- tags: tg
- - role: iperf
- tags: iperf
- - role: trex
- tags: trex
- - role: ab
- tags: ab
- - role: docker
- tags: docker
- - role: cleanup
- tags: cleanup
-# - role: calibration
-# tags: calibration
diff --git a/resources/tools/testbed-setup/ansible/vpp_device.yaml b/resources/tools/testbed-setup/ansible/vpp_device.yaml
deleted file mode 100644
index ac42b8cafe..0000000000
--- a/resources/tools/testbed-setup/ansible/vpp_device.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# file: vpp_device.yaml
-
-- hosts: vpp_device
- remote_user: testuser
- become: yes
- become_user: root
- roles:
- - role: user_add
- tags: user_add
- - role: baremetal
- tags: baremetal
- - role: common
- tags: common
- - role: docker
- tags: docker
- - role: nomad
- tags: nomad
- - role: consul
- tags: consul
- - role: vpp_device
- tags: vpp_device
- - role: kernel_vm
- tags: kernel_vm
- - role: csit_sut_image
- tags: csit_sut_image
- - role: csit_shim_image
- tags: csit_shim_image
- - role: cleanup
- tags: cleanup
diff --git a/resources/tools/vagrant/Vagrantfile b/resources/tools/vagrant/Vagrantfile
deleted file mode 100644
index 1c3071931c..0000000000
--- a/resources/tools/vagrant/Vagrantfile
+++ /dev/null
@@ -1,107 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-
-Vagrant.configure("2") do |config|
-
- # Configure cached packages to be shared between instances of the
- # same base box.
- if Vagrant.has_plugin?("vagrant-cachier")
- config.cache.scope = :box
- end
-
- # Configure proxy if needed.
- if Vagrant.has_plugin?("vagrant-proxyconf")
- config.proxy.http = "http://192.168.0.2:3128/"
- config.proxy.https = "http://192.168.0.2:3128/"
- config.proxy.ftp = "http://192.168.0.2:3128/"
- config.proxy.no_proxy = "localhost,127.0.0.1"
- end
-
- # Configure testing network interfaces (tg).
- config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link1", nic_type: "82545em", mac: "0800270fe04d"
- config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link2", nic_type: "82545em", mac: "08002761f7ad"
- config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link3", nic_type: "82545em", mac: "080027dc5da4"
-
- # Configure testing network interfaces (sut).
- config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link1", nic_type: "82545em", mac: "080027385e58"
- config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link2", nic_type: "82545em", mac: "080027e3f542"
- config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link3", nic_type: "82545em", mac: "0800274f7c63"
-
- # Provision the box using ansible local (no Ansible installation needed
- # on host).
- config.vm.provision "ansible_local" do |ansible|
- ansible.version = "latest"
- ansible.compatibility_mode = "2.0"
- ansible.become = true
- ansible.verbose = false
- ansible.limit = "all"
- ansible.inventory_path = "ansible/vppdevice"
- ansible.playbook = "ansible/master.yml"
- end
-
- config.vm.post_up_message = <<-MESSAGE
- Your virtual machine is configured!
-
- Login to the box using command:
- vagrant ssh
-
- To run some tests use the VPP Device bootstrap script, eg:
- cd /home/vagrant/csit/resources/libraries/bash/entry
- ./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu1804-1n-vbox
-
- To run only selected tests based on TAGS, export environment variables
- before running the test suite:
- export GERRIT_EVENT_TYPE="comment-added"
- export GERRIT_EVENT_COMMENT_TEXT="devicetest memif"
- ./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu1804-1n-vbox
-
- For more information please visit:
- https://docs.fd.io/csit/rls1908/report/index.html
- https://docs.fd.io/csit/master/trending/
-
- MESSAGE
-
- config.vm.define "bionic", primary: true do |bionic|
- # Base box definition, currently using
- # Official Ubuntu 18.04 LTS (Bionic Beaver) Daily Build
- bionic.vm.box = "ubuntu/bionic64"
- bionic.vm.box_version = "20190724.1.0"
- bionic.vm.box_check_update = false
-
- # Virtualbox machine configuration
- bionic.vm.provider "virtualbox" do |vb|
- vb.name = "vppdevice-bionic"
- vb.gui = false
- vb.memory = "8192"
- vb.cpus = "4"
- vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"]
- vb.customize ["modifyvm", :id, "--nicpromisc3", "allow-all"]
- vb.customize ["modifyvm", :id, "--nicpromisc4", "allow-all"]
- vb.customize ["modifyvm", :id, "--nicpromisc5", "allow-all"]
- vb.customize ["modifyvm", :id, "--nicpromisc6", "allow-all"]
- vb.customize ["modifyvm", :id, "--nicpromisc7", "allow-all"]
- end
- end
-
- config.vm.define "centos8", autostart: false do |centos8|
- # Base box definition, currently using
- # Official CentOS8 v1905.1
- centos8.vm.box = "centos/8"
- centos8.vm.box_version = "1905.1"
- centos8.vm.box_check_update = false
-
- # Virtualbox machine configuration
- centos8.vm.provider "virtualbox" do |vb|
- vb.name = "vppdevice-centos8"
- vb.gui = false
- vb.memory = "8192"
- vb.cpus = "4"
- vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"]
- vb.customize ["modifyvm", :id, "--nicpromisc3", "allow-all"]
- vb.customize ["modifyvm", :id, "--nicpromisc4", "allow-all"]
- vb.customize ["modifyvm", :id, "--nicpromisc5", "allow-all"]
- vb.customize ["modifyvm", :id, "--nicpromisc6", "allow-all"]
- vb.customize ["modifyvm", :id, "--nicpromisc7", "allow-all"]
- end
- end
-end
diff --git a/resources/tools/vagrant/ansible/group_vars/vppdevice.yml b/resources/tools/vagrant/ansible/group_vars/vppdevice.yml
deleted file mode 100644
index b920c3be18..0000000000
--- a/resources/tools/vagrant/ansible/group_vars/vppdevice.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-# Ansible interpreter (for PIP)
-ansible_python_interpreter: 'python3'
-# Settings for VPP Device host group
-csit:
- home: '/home/vagrant/csit'
- test_user:
- name: 'testuser'
- password: '$6$/mAr/JDJc0u6/i$sLBptji85Xo/vdAv43bP4NpTaAfSBY8p3G7Uj9p4fKysrvs7XF8.FmlC56j4AzOun6nnf7PA.elytvfWoEHCL1'
- home: '/home/testuser'
- shell: '/bin/bash'
- repository:
- url: 'https://gerrit.fd.io/r/csit'
- version: 'HEAD'
diff --git a/resources/tools/vagrant/ansible/master.yml b/resources/tools/vagrant/ansible/master.yml
deleted file mode 100644
index ffce5bc6fc..0000000000
--- a/resources/tools/vagrant/ansible/master.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-# file: master.yml
-- import_playbook: vppdevice.yml
diff --git a/resources/tools/vagrant/ansible/roles/common/tasks/main.yml b/resources/tools/vagrant/ansible/roles/common/tasks/main.yml
deleted file mode 100644
index 1d4d273971..0000000000
--- a/resources/tools/vagrant/ansible/roles/common/tasks/main.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# file: common/tasks/main.yml
-
-- name: Set /bin/sh to bash instead of dash
- alternatives:
- name: sh
- link: /bin/sh
- path: /bin/bash
diff --git a/resources/tools/vagrant/ansible/roles/csit/defaults/main.yml b/resources/tools/vagrant/ansible/roles/csit/defaults/main.yml
deleted file mode 100644
index 7a8999c4cb..0000000000
--- a/resources/tools/vagrant/ansible/roles/csit/defaults/main.yml
+++ /dev/null
@@ -1,38 +0,0 @@
----
-# file: csit/defaults/main.yml
-
-csit_packages: "{{ csit_packages_base + csit_packages_by_distro[ansible_distribution|lower] }}"
-
-csit_packages_base:
- - 'curl'
- - 'python3-cffi'
- - 'python3-pip'
- - 'python3-setuptools'
- - 'virtualenv'
- - 'wget'
-
-csit_packages_by_distro:
- centos:
- - 'autoconf'
- - 'automake'
- - 'binutils'
- - 'bison'
- - 'flex'
- - 'gcc'
- - 'gcc-c++'
- - 'gdb'
- - 'git'
- - 'glibc-devel'
- - 'libpcap-devel'
- - 'libtool'
- - 'make'
- - 'pkgconf'
- - 'pkgconf-m4'
- - 'pkgconf-pkg-config'
- - 'redhat-rpm-config'
- - 'rpm-build'
- - 'rpm-sign'
- - 'strace'
- ubuntu:
- - 'build-essential'
- - 'libpcap-dev'
diff --git a/resources/tools/vagrant/ansible/roles/csit/tasks/main.yml b/resources/tools/vagrant/ansible/roles/csit/tasks/main.yml
deleted file mode 100644
index 6f226fd54d..0000000000
--- a/resources/tools/vagrant/ansible/roles/csit/tasks/main.yml
+++ /dev/null
@@ -1,143 +0,0 @@
----
-# file: csit/tasks/main.yml
-
-# CentOS 8 specific
-- name: CentOS - Install epel repositories
- dnf:
- name:
- - 'epel-release'
- when:
- - ansible_distribution|lower == 'centos'
-
-- name: CentOS - Enable PowerTools
- command: >
- dnf config-manager
- --set-enabled PowerTools
- when:
- - ansible_distribution|lower == 'centos'
-
-# NOTE: containerd.io >1.2.0-3 requirement disabled by RH
-# Unable to install current docker version as of now
-# Using docker-ce-3:18.09.1-3.el7
-- name: CentOS - Add docker-ce repo
- command: >
- dnf config-manager
- --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
- when:
- - ansible_distribution|lower == 'centos'
-
-- name: CentOS - Install docker-ce
- dnf:
- name:
- - 'docker-ce-3:18.09.1-3.el7'
- when:
- - ansible_distribution|lower == 'centos'
-
-# Ubuntu specific
-- name: Ubuntu - Add docker-ce GPG key
- apt_key:
- url: 'https://download.docker.com/linux/ubuntu/gpg'
- when:
- - ansible_distribution|lower == 'ubuntu'
-
-- name: Ubuntu - Add docker-ce repo
- apt_repository:
- repo: 'deb https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable'
- filename: 'docker'
- mode: 644
- when:
- - ansible_distribution|lower == 'ubuntu'
-
-- name: Ubuntu - Install docker-ce
- apt:
- name:
- - 'docker-ce'
- - 'containerd.io'
- - 'docker-ce-cli'
- when:
- - ansible_distribution|lower == 'ubuntu'
-
-# General
-- name: Install required system tools and packages
- package:
- name: "{{ csit_packages | join(',') }}"
- state: 'latest'
- update_cache: 'yes'
-
-- name: Adjust number of hugepages
- sysctl:
- name: 'vm.nr_hugepages'
- value: '512'
- state: 'present'
- sysctl_file: '/etc/sysctl.d/90-csit.conf'
- reload: 'yes'
-
-- name: "Add user for running tests: {{ csit.test_user.name }}"
- user:
- name: '{{ csit.test_user.name }}'
- password: '{{ csit.test_user.password }}'
- home: '{{ csit.test_user.home }}'
- shell: '{{ csit.test_user.shell }}'
-
-- name: "Allow passwordless sudo for user: {{ csit.test_user.name }}"
- lineinfile:
- path: '/etc/sudoers.d/{{ csit.test_user.name }}'
- line: '{{ csit.test_user.name }} ALL=(ALL) NOPASSWD:ALL'
- create: 'yes'
- mode: 660
-
-- name: Add vagrant user to docker group
- user:
- name: 'vagrant'
- groups:
- - 'docker'
-
-- name: Reload groups for current session
- command: '/usr/bin/newgrp docker'
-
-- name: Load required kernel modules
- modprobe:
- name: '{{ item }}'
- state: 'present'
- with_items:
- - vfio-pci
-
-- name: Enable required kernel modules on boot
- lineinfile:
- path: '/etc/modules'
- line: '{{ item }}'
- create: 'yes'
- state: 'present'
- insertafter: EOF
- with_items:
- - vfio-pci
-
-- name: Clone CSIT repository
- become_user: vagrant
- git:
- repo: '{{ csit.repository.url }}'
- dest: '{{ csit.home }}'
- accept_hostkey: yes
- version: '{{ csit.repository.version }}'
-
-- name: Prepare python virtual environmant for CSIT
- become_user: vagrant
- command: '/usr/bin/virtualenv --python=/usr/bin/python3 {{ csit.home }}/env'
- args:
- chdir: '{{ csit.home }}'
- creates: '{{ csit.home }}/env/bin/activate'
-
-- name: Install python dependencies (from {{ csit.home }}/requirements.txt)
- become_user: vagrant
- shell: |
- source '{{ csit.home }}/env/bin/activate' &&
- pip3 install --timeout 300 -r '{{ csit.home }}/requirements.txt'
- args:
- executable: '/bin/bash'
-
-- name: Load csit docker image from local drive if it exists (/vagrant/csit-sut.tar)
- shell: |
- if [ -z "$(docker images -q `cat {{ csit.home }}/VPP_DEVICE_IMAGE`)" ] && [ -e /vagrant/csit-sut.tar ]; then
- docker load -i /vagrant/csit-sut.tar;
- fi;
- ignore_errors: yes
diff --git a/resources/tools/vagrant/ansible/vppdevice b/resources/tools/vagrant/ansible/vppdevice
deleted file mode 100644
index 3273c644a0..0000000000
--- a/resources/tools/vagrant/ansible/vppdevice
+++ /dev/null
@@ -1,4 +0,0 @@
-# Inventory file for VPP Device box environment
-
-[vppdevice]
-localhost ansible_connection=local
diff --git a/resources/tools/vagrant/ansible/vppdevice.yml b/resources/tools/vagrant/ansible/vppdevice.yml
deleted file mode 100644
index 7c3992cf26..0000000000
--- a/resources/tools/vagrant/ansible/vppdevice.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-# file: vppdevice.yml
-- hosts: vppdevice
- roles:
- - common
- - csit \ No newline at end of file
diff --git a/resources/topology_schemas/2_node_topology.sch.yaml b/resources/topology_schemas/2_node_topology.sch.yaml
index 8de397106a..fac67d5e47 100644
--- a/resources/topology_schemas/2_node_topology.sch.yaml
+++ b/resources/topology_schemas/2_node_topology.sch.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/resources/topology_schemas/topology.sch.yaml b/resources/topology_schemas/topology.sch.yaml
index 37478058fe..edf52483d6 100644
--- a/resources/topology_schemas/topology.sch.yaml
+++ b/resources/topology_schemas/topology.sch.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/terraform-ci-infra/1n_nmd/.gitignore b/terraform-ci-infra/1n_nmd/.gitignore
deleted file mode 100644
index 8b1a7baa3e..0000000000
--- a/terraform-ci-infra/1n_nmd/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-.terraform/ \ No newline at end of file
diff --git a/terraform-ci-infra/1n_nmd/.terraform.lock.hcl b/terraform-ci-infra/1n_nmd/.terraform.lock.hcl
deleted file mode 100755
index 3a2e4ef85f..0000000000
--- a/terraform-ci-infra/1n_nmd/.terraform.lock.hcl
+++ /dev/null
@@ -1,58 +0,0 @@
-# This file is maintained automatically by "terraform init".
-# Manual edits may be lost in future updates.
-
-provider "registry.terraform.io/hashicorp/nomad" {
- version = "1.4.11"
- constraints = "~> 1.4.9"
- hashes = [
- "h1:ElEvgyMfWoWyQbB6c51rGTjQlZKWf3QOvf5NhX/Vuyw=",
- "zh:150d0ab25241a42f2ac5008878e0106c0887eec15181a40bee1433b87f01b8ed",
- "zh:1d4ccda0729f12060e7f4ce5c6d83042d6d38ba2e546b68722ccb74832793b0c",
- "zh:2964652181f59097aa1126f4b215b9232702b1a56df3e017e6b5683d5615714b",
- "zh:42843e68bca24280e84ec600ae5d8f085fb26bdcdb4c0ccff2139ed81e1cb8c1",
- "zh:4c6d90d40a360d84bc84c9af35c64056237537fa0f8118bf890fcf4e71f7b0f6",
- "zh:51771ce42a99d7d4f5a4306367eee4cea72391c07f1f1c55c3c4a5c6a9eca53d",
- "zh:6ab2389f1be6bb39d4966c253bf4fc77348e90f7e07ed2abb5ec5c90a4bbb615",
- "zh:9b109254ea7ca6a5b0ede33b406cf5fed779f05672891bbd1cc3255c9cb17663",
- "zh:a38c929d4fd03193cce94178c0fbaa1f7f09e93223ac71dc77c834d429b1c7c9",
- "zh:bdc9bc10a1ecb5ae3da651df1709bf9d5474f25e310b73bdf32c86417674d32b",
- ]
-}
-
-provider "registry.terraform.io/hashicorp/template" {
- version = "2.1.2"
- constraints = "~> 2.1.2"
- hashes = [
- "h1:8NcPRk3yxQtUlAT/YGfjBEJ76rQI2ljARYeIEjhtWho=",
- "zh:149e4bf47ac21b67f6567767afcd29caaf0b0ca43714748093a00a2a98cd17a8",
- "zh:2ff61a5eb7550e0df2baefccea78a8b621faef76154aad7ddf9c85c1d69f7ebf",
- "zh:3b2d9a9f80754eb0a250a80e0dfdef385501697850a54ead744d1615e60fe648",
- "zh:545b93c818035aac59f4a821644276c123a74aa210b1221974d832a6009df201",
- "zh:5508512a522152a302591b399512fa736d8f57088c85ca74f7e00014db3a8c26",
- "zh:701b56016a6db814ade171877375a2429b45979f97c2d112e4f2103f0433eb08",
- "zh:90fc08165958538d8a099f17282c615d5b13f86bb215af33e2ca7551bf81996f",
- "zh:affa6d409060c01a610854a395970d76701d0b07696e1ed6776b3f3b58014104",
- "zh:b66ffed670bf0ed6714fa4ac26444a8e22f71ec6da134faf0b1f77fb2c13c666",
- "zh:bb3d87db22f0ac56717eadde39690e3e27c1c01b10d0ecbe2e6e39f1e5c4d808",
- "zh:c54b9693c9f348591432aabc808cbe1786bcda1cb70d312ef62a24545a14f945",
- "zh:e7c8f8506cee5fa28f842714857d412a2b09e61127a0efe2a164c2f3d9bf2619",
- ]
-}
-
-provider "registry.terraform.io/hashicorp/vault" {
- version = "2.16.0"
- constraints = ">= 2.14.0"
- hashes = [
- "h1:h27r8aZ5nwRfEelTQnJoA8s3TndJYPI7+3Df1DXIhXk=",
- "zh:13dde74fac618ee0281bad60a60966a85d4a59c8420b15fd6499996fa1bc99b3",
- "zh:1daad9da6c82f43cbd07bf1cfedf3c6960fb2f96bc59f94fd75d361065b8c51a",
- "zh:68075d8e1824b745267ce9e4ef693b202b9282561811de6ccf7298935f482128",
- "zh:86df4a4405413d575cd72985483163e62539afbd659fddef59fc637875b707e2",
- "zh:8f8306ada4c1c44945ce5205e4f1cfbf5e3d46a9da2f3a1d0be17d32e4935845",
- "zh:9eb75febcd6fcca9885a6f5e93293a200b2effbe31f47d265cc4d1346d42d29e",
- "zh:a658b55b239bc7ad59a2bf55e7abbfe5f0111d37dd68b5d4bb947eee93969092",
- "zh:af10679c241bd0e0168f57c24e839fd24c747f3e84b7bb6de3cd791471709249",
- "zh:ee3030f36846de45450be088aa4c2b1f69246b2ecf40d7ea6a15a7f09ac5e5d0",
- "zh:efe6cc23f77336604358e627b0b565c1421a97376e510a9cdaaf849524944713",
- ]
-}
diff --git a/terraform-ci-infra/1n_nmd/main.tf b/terraform-ci-infra/1n_nmd/main.tf
deleted file mode 100644
index 4da8929e8d..0000000000
--- a/terraform-ci-infra/1n_nmd/main.tf
+++ /dev/null
@@ -1,67 +0,0 @@
-# For convenience in simple configurations, a child module automatically
-# inherits default (un-aliased) provider configurations from its parent.
-# This means that explicit provider blocks appear only in the root module,
-# and downstream modules can simply declare resources for that provider
-# and have them automatically associated with the root provider
-# configurations.
-module "minio" {
- source = "./minio"
- providers = {
- nomad = nomad.yul1
- }
-
- # nomad
- nomad_datacenters = [ "yul1" ]
- nomad_host_volume = "prod-volume-data1-1"
-
- # minio
- minio_job_name = "prod-minio"
- minio_group_count = 4
- minio_service_name = "storage"
- minio_host = "http://10.32.8.1{4...7}"
- minio_port = 9000
- minio_container_image = "minio/minio:RELEASE.2020-12-03T05-49-24Z"
- minio_vault_secret = {
- use_vault_provider = false,
- vault_kv_policy_name = "kv-secret",
- vault_kv_path = "secret/data/minio",
- vault_kv_field_access_key = "access_key",
- vault_kv_field_secret_key = "secret_key"
- }
- minio_data_dir = "/data/"
- minio_use_host_volume = true
- minio_use_canary = true
- minio_envs = [ "MINIO_BROWSER=\"off\"" ]
-
- # minio client
- mc_job_name = "prod-mc"
- mc_container_image = "minio/mc:RELEASE.2020-12-10T01-26-17Z"
- mc_extra_commands = [
- "mc policy set public LOCALMINIO/logs.fd.io",
- "mc policy set public LOCALMINIO/docs.fd.io",
- "mc ilm add --expiry-days '180' LOCALMINIO/logs.fd.io",
- "mc admin user add LOCALMINIO storage Storage1234",
- "mc admin policy set LOCALMINIO writeonly user=storage"
- ]
- minio_buckets = [ "logs.fd.io", "docs.fd.io" ]
-}
-
-module "nginx" {
- source = "./nginx"
- providers = {
- nomad = nomad.yul1
- }
-
- # nomad
- nomad_datacenters = [ "yul1" ]
-
- # nginx
- nginx_job_name = "prod-nginx"
-}
-
-#module "vpp_device" {
-# source = "./vpp_device"
-# providers = {
-# nomad = nomad.yul1
-# }
-#} \ No newline at end of file
diff --git a/terraform-ci-infra/1n_nmd/minio/conf/nomad/mc.hcl b/terraform-ci-infra/1n_nmd/minio/conf/nomad/mc.hcl
deleted file mode 100644
index 238003bb00..0000000000
--- a/terraform-ci-infra/1n_nmd/minio/conf/nomad/mc.hcl
+++ /dev/null
@@ -1,73 +0,0 @@
-job "${job_name}" {
- # The "region" parameter specifies the region in which to execute the job.
- # If omitted, this inherits the default region name of "global".
- # region = "global"
- #
- # The "datacenters" parameter specifies the list of datacenters which should
- # be considered when placing this task. This must be provided.
- datacenters = "${datacenters}"
-
- # The "type" parameter controls the type of job, which impacts the scheduler's
- # decision on placement. This configuration is optional and defaults to
- # "service". For a full list of job types and their differences, please see
- # the online documentation.
- #
- # For more information, please see the online documentation at:
- #
- # https://www.nomadproject.io/docs/jobspec/schedulers.html
- #
- type = "batch"
-
- # The "group" stanza defines a series of tasks that should be co-located on
- # the same Nomad client. Any task within a group will be placed on the same
- # client.
- #
- # For more information and examples on the "group" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/group.html
- #
- group "prod-group1-mc" {
- task "prod-task1-create-buckets" {
- # The "driver" parameter specifies the task driver that should be used to
- # run the task.
- driver = "docker"
-
- %{ if use_vault_provider }
- vault {
- policies = "${vault_kv_policy_name}"
- }
- %{ endif }
-
- # The "config" stanza specifies the driver configuration, which is passed
- # directly to the driver to start the task. The details of configurations
- # are specific to each driver, so please see specific driver
- # documentation for more information.
- config {
- image = "${image}"
- entrypoint = [
- "/bin/sh",
- "-c",
- "${command}"
- ]
- dns_servers = [ "$${attr.unique.network.ip-address}" ]
- privileged = false
- }
-
- # The env stanza configures a list of environment variables to populate
- # the task's environment before starting.
- env {
- %{ if use_vault_provider }
- {{ with secret "${vault_kv_path}" }}
- MINIO_ACCESS_KEY = "{{ .Data.data.${vault_kv_field_access_key} }}"
- MINIO_SECRET_KEY = "{{ .Data.data.${vault_kv_field_secret_key} }}"
- {{ end }}
- %{ else }
- MINIO_ACCESS_KEY = "${access_key}"
- MINIO_SECRET_KEY = "${secret_key}"
- %{ endif }
- ${ envs }
- }
- }
- }
-}
diff --git a/terraform-ci-infra/1n_nmd/minio/conf/nomad/minio.hcl b/terraform-ci-infra/1n_nmd/minio/conf/nomad/minio.hcl
deleted file mode 100644
index a2df44f666..0000000000
--- a/terraform-ci-infra/1n_nmd/minio/conf/nomad/minio.hcl
+++ /dev/null
@@ -1,228 +0,0 @@
-job "${job_name}" {
- # The "region" parameter specifies the region in which to execute the job.
- # If omitted, this inherits the default region name of "global".
- # region = "global"
- #
- # The "datacenters" parameter specifies the list of datacenters which should
- # be considered when placing this task. This must be provided.
- datacenters = "${datacenters}"
-
- # The "type" parameter controls the type of job, which impacts the scheduler's
- # decision on placement. This configuration is optional and defaults to
- # "service". For a full list of job types and their differences, please see
- # the online documentation.
- #
- # For more information, please see the online documentation at:
- #
- # https://www.nomadproject.io/docs/jobspec/schedulers.html
- #
- type = "service"
-
- update {
- # The "max_parallel" parameter specifies the maximum number of updates to
- # perform in parallel. In this case, this specifies to update a single task
- # at a time.
- max_parallel = 1
-
- health_check = "checks"
-
- # The "min_healthy_time" parameter specifies the minimum time the allocation
- # must be in the healthy state before it is marked as healthy and unblocks
- # further allocations from being updated.
- min_healthy_time = "10s"
-
- # The "healthy_deadline" parameter specifies the deadline in which the
- # allocation must be marked as healthy after which the allocation is
- # automatically transitioned to unhealthy. Transitioning to unhealthy will
- # fail the deployment and potentially roll back the job if "auto_revert" is
- # set to true.
- healthy_deadline = "3m"
-
- # The "progress_deadline" parameter specifies the deadline in which an
- # allocation must be marked as healthy. The deadline begins when the first
- # allocation for the deployment is created and is reset whenever an allocation
- # as part of the deployment transitions to a healthy state. If no allocation
- # transitions to the healthy state before the progress deadline, the
- # deployment is marked as failed.
- progress_deadline = "10m"
-
-%{ if use_canary }
- # The "canary" parameter specifies that changes to the job that would result
- # in destructive updates should create the specified number of canaries
- # without stopping any previous allocations. Once the operator determines the
- # canaries are healthy, they can be promoted which unblocks a rolling update
- # of the remaining allocations at a rate of "max_parallel".
- #
- # Further, setting "canary" equal to the count of the task group allows
- # blue/green deployments. When the job is updated, a full set of the new
- # version is deployed and upon promotion the old version is stopped.
- canary = 1
-
- # Specifies if the job should auto-promote to the canary version when all
- # canaries become healthy during a deployment. Defaults to false which means
- # canaries must be manually updated with the nomad deployment promote
- # command.
- auto_promote = true
-
- # The "auto_revert" parameter specifies if the job should auto-revert to the
- # last stable job on deployment failure. A job is marked as stable if all the
- # allocations as part of its deployment were marked healthy.
- auto_revert = true
-%{ endif }
- }
-
- # All groups in this job should be scheduled on different hosts.
- constraint {
- operator = "distinct_hosts"
- value = "true"
- }
-
- # The "group" stanza defines a series of tasks that should be co-located on
- # the same Nomad client. Any task within a group will be placed on the same
- # client.
- #
- # For more information and examples on the "group" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/group.html
- #
- group "prod-group1-minio" {
- # The "count" parameter specifies the number of the task groups that should
- # be running under this group. This value must be non-negative and defaults
- # to 1.
- count = ${group_count}
-
- # https://www.nomadproject.io/docs/job-specification/volume
- %{ if use_host_volume }
- volume "prod-volume1-minio" {
- type = "host"
- read_only = false
- source = "${host_volume}"
- }
- %{ endif }
-
- # The "task" stanza creates an individual unit of work, such as a Docker
- # container, web application, or batch processing.
- #
- # For more information and examples on the "task" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/task.html
- #
- task "prod-task1-minio" {
- # The "driver" parameter specifies the task driver that should be used to
- # run the task.
- driver = "docker"
-
- %{ if use_host_volume }
- volume_mount {
- volume = "prod-volume1-minio"
- destination = "${data_dir}"
- read_only = false
- }
- %{ endif }
-
- %{ if use_vault_provider }
- vault {
- policies = "${vault_kv_policy_name}"
- }
- %{ endif }
-
- # The "config" stanza specifies the driver configuration, which is passed
- # directly to the driver to start the task. The details of configurations
- # are specific to each driver, so please see specific driver
- # documentation for more information.
- config {
- image = "${image}"
- dns_servers = [ "$${attr.unique.network.ip-address}" ]
- network_mode = "host"
- command = "server"
- args = [ "${host}:${port}${data_dir}" ]
- port_map {
- http = ${port}
- }
- privileged = false
- }
-
- # The env stanza configures a list of environment variables to populate
- # the task's environment before starting.
- env {
-%{ if use_vault_provider }
-{{ with secret "${vault_kv_path}" }}
- MINIO_ACCESS_KEY = "{{ .Data.data.${vault_kv_field_access_key} }}"
- MINIO_SECRET_KEY = "{{ .Data.data.${vault_kv_field_secret_key} }}"
-{{ end }}
-%{ else }
- MINIO_ACCESS_KEY = "${access_key}"
- MINIO_SECRET_KEY = "${secret_key}"
-%{ endif }
- ${ envs }
- }
-
- # The service stanza instructs Nomad to register a service with Consul.
- #
- # For more information and examples on the "task" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/service.html
- #
- service {
- name = "${service_name}"
- port = "http"
- tags = [ "storage$${NOMAD_ALLOC_INDEX}" ]
- check {
- name = "Min.io Server HTTP Check Live"
- type = "http"
- port = "http"
- protocol = "http"
- method = "GET"
- path = "/minio/health/live"
- interval = "10s"
- timeout = "2s"
- }
- check {
- name = "Min.io Server HTTP Check Ready"
- type = "http"
- port = "http"
- protocol = "http"
- method = "GET"
- path = "/minio/health/ready"
- interval = "10s"
- timeout = "2s"
- }
- }
-
- # The "resources" stanza describes the requirements a task needs to
- # execute. Resource requirements include memory, network, cpu, and more.
- # This ensures the task will execute on a machine that contains enough
- # resource capacity.
- #
- # For more information and examples on the "resources" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/resources.html
- #
- resources {
- cpu = ${cpu}
- memory = ${memory}
- # The network stanza specifies the networking requirements for the task
- # group, including the network mode and port allocations. When scheduling
- # jobs in Nomad they are provisioned across your fleet of machines along
- # with other jobs and services. Because you don't know in advance what host
- # your job will be provisioned on, Nomad will provide your tasks with
- # network configuration when they start up.
- #
- # For more information and examples on the "template" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/network.html
- #
- network {
- port "http" {
- static = ${port}
- }
- }
- }
- }
- }
-}
diff --git a/terraform-ci-infra/1n_nmd/minio/main.tf b/terraform-ci-infra/1n_nmd/minio/main.tf
deleted file mode 100644
index 6877211e6a..0000000000
--- a/terraform-ci-infra/1n_nmd/minio/main.tf
+++ /dev/null
@@ -1,82 +0,0 @@
-locals {
- datacenters = join(",", var.nomad_datacenters)
- minio_env_vars = join("\n",
- concat([
- ], var.minio_envs)
- )
- mc_env_vars = join("\n",
- concat([
- ], var.mc_envs)
- )
- mc_formatted_bucket_list = formatlist("LOCALMINIO/%s", var.minio_buckets)
- mc_add_config_command = concat(
- [
- "mc",
- "config",
- "host",
- "add",
- "LOCALMINIO",
- "http://${var.minio_service_name}.service.consul:${var.minio_port}",
- "$MINIO_ACCESS_KEY",
- "$MINIO_SECRET_KEY",
- ])
- mc_create_bucket_command = concat(["mc", "mb", "-p"], local.mc_formatted_bucket_list)
- command = join(" ", concat(local.mc_add_config_command, ["&&"], local.mc_create_bucket_command, [";"], concat(var.mc_extra_commands)))
-}
-
-data "template_file" "nomad_job_minio" {
- template = file("${path.module}/conf/nomad/minio.hcl")
- vars = {
- job_name = var.minio_job_name
- datacenters = local.datacenters
- use_canary = var.minio_use_canary
- group_count = var.minio_group_count
- use_host_volume = var.minio_use_host_volume
- host_volume = var.nomad_host_volume
- service_name = var.minio_service_name
- host = var.minio_host
- port = var.minio_port
- upstreams = jsonencode(var.minio_upstreams)
- cpu_proxy = var.minio_resource_proxy.cpu
- memory_proxy = var.minio_resource_proxy.memory
- use_vault_provider = var.minio_vault_secret.use_vault_provider
- image = var.minio_container_image
- access_key = var.minio_access_key
- secret_key = var.minio_secret_key
- data_dir = var.minio_data_dir
- envs = local.minio_env_vars
- cpu = var.minio_cpu
- memory = var.minio_memory
- }
-}
-
-data "template_file" "nomad_job_mc" {
- template = file("${path.module}/conf/nomad/mc.hcl")
- vars = {
- job_name = var.mc_job_name
- service_name = var.mc_service_name
- datacenters = local.datacenters
- minio_service_name = var.minio_service_name
- minio_port = var.minio_port
- image = var.mc_container_image
- access_key = var.minio_access_key
- secret_key = var.minio_secret_key
- use_vault_provider = var.minio_vault_secret.use_vault_provider
- envs = local.mc_env_vars
- command = local.command
- }
-}
-
-resource "nomad_job" "nomad_job_minio" {
- jobspec = data.template_file.nomad_job_minio.rendered
- detach = false
-}
-
-resource "nomad_job" "nomad_job_mc" {
- jobspec = data.template_file.nomad_job_mc.rendered
- detach = false
-
- depends_on = [
- nomad_job.nomad_job_minio
- ]
-} \ No newline at end of file
diff --git a/terraform-ci-infra/1n_nmd/minio/outputs.tf b/terraform-ci-infra/1n_nmd/minio/outputs.tf
deleted file mode 100644
index c3d7f15af6..0000000000
--- a/terraform-ci-infra/1n_nmd/minio/outputs.tf
+++ /dev/null
@@ -1,21 +0,0 @@
-output "minio_service_name" {
- description = "Minio service name"
- value = data.template_file.nomad_job_minio.vars.service_name
-}
-
-output "minio_access_key" {
- description = "Minio access key"
- value = data.template_file.nomad_job_minio.vars.access_key
- sensitive = true
-}
-
-output "minio_secret_key" {
- description = "Minio secret key"
- value = data.template_file.nomad_job_minio.vars.secret_key
- sensitive = true
-}
-
-output "minio_port" {
- description = "Minio port number"
- value = data.template_file.nomad_job_minio.vars.port
-}
diff --git a/terraform-ci-infra/1n_nmd/minio/variables.tf b/terraform-ci-infra/1n_nmd/minio/variables.tf
deleted file mode 100644
index dbac3465ee..0000000000
--- a/terraform-ci-infra/1n_nmd/minio/variables.tf
+++ /dev/null
@@ -1,170 +0,0 @@
-# Nomad
-variable "nomad_datacenters" {
- description = "Nomad data centers"
- type = list(string)
- default = [ "dc1" ]
-}
-
-variable "nomad_host_volume" {
- description = "Nomad Host Volume"
- type = string
- default = "persistence"
-}
-
-# Minio
-variable "minio_job_name" {
- description = "Minio job name"
- type = string
- default = "minio"
-}
-
-variable "minio_service_name" {
- description = "Minio service name"
- type = string
- default = "minio"
-}
-
-variable "minio_group_count" {
- description = "Number of Minio group instances"
- type = number
- default = 1
-}
-
-variable "minio_host" {
- description = "Minio host"
- type = string
- default = "127.0.0.1"
-}
-
-variable "minio_port" {
- description = "Minio port"
- type = number
- default = 9000
-}
-
-variable "minio_cpu" {
- description = "CPU allocation for Minio"
- type = number
- default = 40000
-}
-
-variable "minio_memory" {
- description = "Memory allocation for Minio"
- type = number
- default = 40000
-}
-
-variable "minio_container_image" {
- description = "Minio docker image"
- type = string
- default = "minio/minio:latest"
-}
-
-variable "minio_envs" {
- description = "Minio environment variables"
- type = list(string)
- default = []
-}
-
-variable "minio_access_key" {
- description = "Minio access key"
- type = string
- default = "minio"
-}
-
-variable "minio_secret_key" {
- description = "Minio secret key"
- type = string
- default = "minio123"
-}
-
-variable "minio_data_dir" {
- description = "Minio server data dir"
- type = string
- default = "/data/"
-}
-
-variable "minio_use_host_volume" {
- description = "Use Nomad host volume feature"
- type = bool
- default = false
-}
-
-variable "minio_use_canary" {
- description = "Uses canary deployment for Minio"
- type = bool
- default = false
-}
-
-variable "minio_vault_secret" {
- description = "Set of properties to be able to fetch secret from vault"
- type = object({
- use_vault_provider = bool,
- vault_kv_policy_name = string,
- vault_kv_path = string,
- vault_kv_field_access_key = string,
- vault_kv_field_secret_key = string
- })
-}
-
-variable "minio_resource_proxy" {
- description = "Minio proxy resources"
- type = object({
- cpu = number,
- memory = number
- })
- default = {
- cpu = 200,
- memory = 128
- }
- validation {
- condition = var.minio_resource_proxy.cpu >= 200 && var.minio_resource_proxy.memory >= 128
- error_message = "Proxy resource must be at least: cpu=200, memory=128."
- }
-}
-
-# MC
-variable "mc_job_name" {
- description = "Minio client job name"
- type = string
- default = "mc"
-}
-
-variable "mc_service_name" {
- description = "Minio client service name"
- type = string
- default = "mc"
-}
-
-variable "mc_container_image" {
- description = "Minio client docker image"
- type = string
- default = "minio/mc:latest"
-}
-
-variable "mc_envs" {
- description = "Minio client environment variables"
- type = list(string)
- default = []
-}
-
-variable "minio_buckets" {
- description = "List of buckets to create on startup"
- type = list(string)
- default = []
-}
-
-variable "minio_upstreams" {
- description = "List of upstream services (list of object with service_name, port)"
- type = list(object({
- service_name = string,
- port = number,
- }))
- default = []
-}
-
-variable "mc_extra_commands" {
- description = "Extra commands to run in MC container after creating buckets"
- type = list(string)
- default = [""]
-} \ No newline at end of file
diff --git a/terraform-ci-infra/1n_nmd/minio/versions.tf b/terraform-ci-infra/1n_nmd/minio/versions.tf
deleted file mode 100644
index 960bd4bba6..0000000000
--- a/terraform-ci-infra/1n_nmd/minio/versions.tf
+++ /dev/null
@@ -1,13 +0,0 @@
-terraform {
- required_providers {
- nomad = {
- source = "hashicorp/nomad"
- version = "~> 1.4.9"
- }
- template = {
- source = "hashicorp/template"
- version = "~> 2.1.2"
- }
- }
- required_version = ">= 0.13"
-}
diff --git a/terraform-ci-infra/1n_nmd/nginx/conf/nomad/nginx.hcl b/terraform-ci-infra/1n_nmd/nginx/conf/nomad/nginx.hcl
deleted file mode 100644
index 9cb5f8ef45..0000000000
--- a/terraform-ci-infra/1n_nmd/nginx/conf/nomad/nginx.hcl
+++ /dev/null
@@ -1,273 +0,0 @@
-job "${job_name}" {
- # The "region" parameter specifies the region in which to execute the job.
- # If omitted, this inherits the default region name of "global".
- # region = "global"
- #
- # The "datacenters" parameter specifies the list of datacenters which should
- # be considered when placing this task. This must be provided.
- datacenters = "${datacenters}"
-
- # The "type" parameter controls the type of job, which impacts the scheduler's
- # decision on placement. This configuration is optional and defaults to
- # "service". For a full list of job types and their differences, please see
- # the online documentation.
- #
- # For more information, please see the online documentation at:
- #
- # https://www.nomadproject.io/docs/jobspec/schedulers.html
- #
- type = "service"
-
- update {
- # The "max_parallel" parameter specifies the maximum number of updates to
- # perform in parallel. In this case, this specifies to update a single task
- # at a time.
- max_parallel = 0
-
- # The "min_healthy_time" parameter specifies the minimum time the allocation
- # must be in the healthy state before it is marked as healthy and unblocks
- # further allocations from being updated.
- min_healthy_time = "10s"
-
- # The "healthy_deadline" parameter specifies the deadline in which the
- # allocation must be marked as healthy after which the allocation is
- # automatically transitioned to unhealthy. Transitioning to unhealthy will
- # fail the deployment and potentially roll back the job if "auto_revert" is
- # set to true.
- healthy_deadline = "3m"
-
- # The "progress_deadline" parameter specifies the deadline in which an
- # allocation must be marked as healthy. The deadline begins when the first
- # allocation for the deployment is created and is reset whenever an allocation
- # as part of the deployment transitions to a healthy state. If no allocation
- # transitions to the healthy state before the progress deadline, the
- # deployment is marked as failed.
- progress_deadline = "10m"
-
- # The "auto_revert" parameter specifies if the job should auto-revert to the
- # last stable job on deployment failure. A job is marked as stable if all the
- # allocations as part of its deployment were marked healthy.
- auto_revert = false
-
- # The "canary" parameter specifies that changes to the job that would result
- # in destructive updates should create the specified number of canaries
- # without stopping any previous allocations. Once the operator determines the
- # canaries are healthy, they can be promoted which unblocks a rolling update
- # of the remaining allocations at a rate of "max_parallel".
- #
- # Further, setting "canary" equal to the count of the task group allows
- # blue/green deployments. When the job is updated, a full set of the new
- # version is deployed and upon promotion the old version is stopped.
- canary = 0
- }
-
- # The reschedule stanza specifies the group's rescheduling strategy. If
- # specified at the job level, the configuration will apply to all groups
- # within the job. If the reschedule stanza is present on both the job and the
- # group, they are merged with the group stanza taking the highest precedence
- # and then the job.
- reschedule {
- delay = "30s"
- delay_function = "constant"
- unlimited = true
- }
-
- # The "group" stanza defines a series of tasks that should be co-located on
- # the same Nomad client. Any task within a group will be placed on the same
- # client.
- #
- # For more information and examples on the "group" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/group.html
- #
- group "prod-group1-nginx" {
- # The "count" parameter specifies the number of the task groups that should
- # be running under this group. This value must be non-negative and defaults
- # to 1.
- count = 1
-
- # The restart stanza configures a tasks's behavior on task failure. Restarts
- # happen on the client that is running the task.
- restart {
- interval = "10m"
- attempts = 2
- delay = "15s"
- mode = "fail"
- }
-
- # The "task" stanza creates an individual unit of work, such as a Docker
- # container, web application, or batch processing.
- #
- # For more information and examples on the "task" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/task.html
- #
- task "prod-task1-nginx" {
- # The "driver" parameter specifies the task driver that should be used to
- # run the task.
- driver = "docker"
-
- # The "config" stanza specifies the driver configuration, which is passed
- # directly to the driver to start the task. The details of configurations
- # are specific to each driver, so please see specific driver
- # documentation for more information.
- config {
- image = "nginx:stable"
- dns_servers = [ "$${attr.unique.network.ip-address}" ]
- port_map {
- https = 443
- }
- privileged = false
- volumes = [
- "/etc/consul.d/ssl/consul.pem:/etc/ssl/certs/nginx-cert.pem",
- "/etc/consul.d/ssl/consul-key.pem:/etc/ssl/private/nginx-key.pem",
- "custom/upstream.conf:/etc/nginx/conf.d/upstream.conf",
- "custom/logs.conf:/etc/nginx/conf.d/logs.conf",
- "custom/docs.conf:/etc/nginx/conf.d/docs.conf"
- ]
- }
-
- # The "template" stanza instructs Nomad to manage a template, such as
- # a configuration file or script. This template can optionally pull data
- # from Consul or Vault to populate runtime configuration data.
- #
- # For more information and examples on the "template" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/template.html
- #
- template {
- data = <<EOH
- upstream storage {
- server storage0.storage.service.consul:9000;
- server storage1.storage.service.consul:9000;
- server storage2.storage.service.consul:9000;
- server storage3.storage.service.consul:9000;
- }
- EOH
- destination = "custom/upstream.conf"
- }
- template {
- data = <<EOH
- server {
- listen 443 ssl default_server;
- server_name logs.nginx.service.consul;
- keepalive_timeout 70;
- ssl_session_cache shared:SSL:10m;
- ssl_session_timeout 10m;
- ssl_protocols TLSv1.2;
- ssl_prefer_server_ciphers on;
- ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384";
- ssl_certificate /etc/ssl/certs/nginx-cert.pem;
- ssl_certificate_key /etc/ssl/private/nginx-key.pem;
- location / {
- chunked_transfer_encoding off;
- proxy_connect_timeout 300;
- proxy_http_version 1.1;
- proxy_set_header Host $host:$server_port;
- proxy_set_header Connection "";
- proxy_pass http://storage/logs.fd.io/;
- server_name_in_redirect off;
- }
- location ~ (.*html.gz)$ {
- add_header Content-Encoding gzip;
- add_header Content-Type text/html;
- chunked_transfer_encoding off;
- proxy_connect_timeout 300;
- proxy_http_version 1.1;
- proxy_set_header Host $host:$server_port;
- proxy_set_header Connection "";
- proxy_pass http://storage/logs.fd.io/$1;
- server_name_in_redirect off;
- }
- location ~ (.*txt.gz|.*log.gz)$ {
- add_header Content-Encoding gzip;
- add_header Content-Type text/plain;
- chunked_transfer_encoding off;
- proxy_connect_timeout 300;
- proxy_http_version 1.1;
- proxy_set_header Host $host:$server_port;
- proxy_set_header Connection "";
- proxy_pass http://storage/logs.fd.io/$1;
- server_name_in_redirect off;
- }
- location ~ (.*xml.gz)$ {
- add_header Content-Encoding gzip;
- add_header Content-Type application/xml;
- chunked_transfer_encoding off;
- proxy_connect_timeout 300;
- proxy_http_version 1.1;
- proxy_set_header Host $host:$server_port;
- proxy_set_header Connection "";
- proxy_pass http://storage/logs.fd.io/$1;
- server_name_in_redirect off;
- }
- }
- EOH
- destination = "custom/logs.conf"
- }
- template {
- data = <<EOH
- server {
- listen 443 ssl;
- server_name docs.nginx.service.consul;
- keepalive_timeout 70;
- ssl_session_cache shared:SSL:10m;
- ssl_session_timeout 10m;
- ssl_protocols TLSv1.2;
- ssl_prefer_server_ciphers on;
- ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384";
- ssl_certificate /etc/ssl/certs/nginx-cert.pem;
- ssl_certificate_key /etc/ssl/private/nginx-key.pem;
- location / {
- chunked_transfer_encoding off;
- proxy_connect_timeout 300;
- proxy_http_version 1.1;
- proxy_set_header Host $host:$server_port;
- proxy_set_header Connection "";
- proxy_pass http://storage/docs.fd.io/;
- server_name_in_redirect off;
- }
- }
- EOH
- destination = "custom/docs.conf"
- }
-
- # The service stanza instructs Nomad to register a service with Consul.
- #
- # For more information and examples on the "task" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/service.html
- #
- service {
- name = "nginx"
- port = "https"
- tags = [ "docs", "logs" ]
- }
-
- # The "resources" stanza describes the requirements a task needs to
- # execute. Resource requirements include memory, network, cpu, and more.
- # This ensures the task will execute on a machine that contains enough
- # resource capacity.
- #
- # For more information and examples on the "resources" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/resources.html
- #
- resources {
- cpu = 1000
- memory = 1024
- network {
- mode = "bridge"
- port "https" {
- static = 443
- }
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/terraform-ci-infra/1n_nmd/nginx/main.tf b/terraform-ci-infra/1n_nmd/nginx/main.tf
deleted file mode 100644
index 96696922ff..0000000000
--- a/terraform-ci-infra/1n_nmd/nginx/main.tf
+++ /dev/null
@@ -1,16 +0,0 @@
-locals {
- datacenters = join(",", var.nomad_datacenters)
-}
-
-data "template_file" "nomad_job_nginx" {
- template = file("${path.module}/conf/nomad/nginx.hcl")
- vars = {
- job_name = var.nginx_job_name
- datacenters = local.datacenters
- }
-}
-
-resource "nomad_job" "nomad_job_nginx" {
- jobspec = data.template_file.nomad_job_nginx.rendered
- detach = false
-} \ No newline at end of file
diff --git a/terraform-ci-infra/1n_nmd/nginx/variables.tf b/terraform-ci-infra/1n_nmd/nginx/variables.tf
deleted file mode 100644
index 1a1e45f89f..0000000000
--- a/terraform-ci-infra/1n_nmd/nginx/variables.tf
+++ /dev/null
@@ -1,13 +0,0 @@
-# Nomad
-variable "nomad_datacenters" {
- description = "Nomad data centers"
- type = list(string)
- default = [ "dc1" ]
-}
-
-# Nginx
-variable "nginx_job_name" {
- description = "Nginx job name"
- type = string
- default = "nginx"
-} \ No newline at end of file
diff --git a/terraform-ci-infra/1n_nmd/nginx/versions.tf b/terraform-ci-infra/1n_nmd/nginx/versions.tf
deleted file mode 100644
index 960bd4bba6..0000000000
--- a/terraform-ci-infra/1n_nmd/nginx/versions.tf
+++ /dev/null
@@ -1,13 +0,0 @@
-terraform {
- required_providers {
- nomad = {
- source = "hashicorp/nomad"
- version = "~> 1.4.9"
- }
- template = {
- source = "hashicorp/template"
- version = "~> 2.1.2"
- }
- }
- required_version = ">= 0.13"
-}
diff --git a/terraform-ci-infra/1n_nmd/providers.tf b/terraform-ci-infra/1n_nmd/providers.tf
deleted file mode 100644
index c7e0ad8bf3..0000000000
--- a/terraform-ci-infra/1n_nmd/providers.tf
+++ /dev/null
@@ -1,21 +0,0 @@
-terraform {
- required_providers {
- nomad = {
- source = "hashicorp/nomad"
- version = "~> 1.4.9"
- }
- template = {
- source = "hashicorp/template"
- version = "~> 2.1.2"
- }
- vault = {
- version = ">=2.14.0"
- }
- }
- required_version = ">= 0.13"
-}
-
-provider "nomad" {
- address = var.nomad_provider_address
- alias = "yul1"
-} \ No newline at end of file
diff --git a/terraform-ci-infra/1n_nmd/terraform.tfstate b/terraform-ci-infra/1n_nmd/terraform.tfstate
deleted file mode 100644
index 21cc9738db..0000000000
--- a/terraform-ci-infra/1n_nmd/terraform.tfstate
+++ /dev/null
@@ -1,292 +0,0 @@
-{
- "version": 4,
- "terraform_version": "0.14.2",
- "serial": 223,
- "lineage": "e4e7f30a-652d-7a31-e31c-5e3a3388c9b9",
- "outputs": {},
- "resources": [
- {
- "module": "module.minio",
- "mode": "data",
- "type": "template_file",
- "name": "nomad_job_mc",
- "provider": "provider[\"registry.terraform.io/hashicorp/template\"]",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "filename": null,
- "id": "ca0c95bbe91c4ac393d5cd5bef8efb90fb5f176f266ba233542fd4338b51c6cc",
- "rendered": "job \"prod-mc\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"batch\"\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-mc\" {\n task \"prod-task1-create-buckets\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n \n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"minio/mc:RELEASE.2020-12-10T01-26-17Z\"\n entrypoint = [\n \"/bin/sh\",\n \"-c\",\n \"mc config host add LOCALMINIO http://storage.service.consul:9000 $MINIO_ACCESS_KEY $MINIO_SECRET_KEY \u0026\u0026 mc mb -p LOCALMINIO/logs.fd.io LOCALMINIO/docs.fd.io ; mc policy set public LOCALMINIO/logs.fd.io mc policy set public LOCALMINIO/docs.fd.io mc ilm add --expiry-days '180' LOCALMINIO/logs.fd.io mc admin user add LOCALMINIO storage Storage1234 mc admin policy set LOCALMINIO writeonly user=storage\"\n ]\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n \n MINIO_ACCESS_KEY = \"minio\"\n MINIO_SECRET_KEY = \"minio123\"\n \n \n }\n }\n }\n}\n",
- "template": "job \"${job_name}\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"${datacenters}\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"batch\"\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-mc\" {\n task \"prod-task1-create-buckets\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n %{ if use_vault_provider }\n vault {\n policies = \"${vault_kv_policy_name}\"\n }\n %{ endif }\n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"${image}\"\n entrypoint = [\n \"/bin/sh\",\n \"-c\",\n \"${command}\"\n ]\n dns_servers = [ \"$${attr.unique.network.ip-address}\" ]\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n %{ if use_vault_provider }\n {{ with secret \"${vault_kv_path}\" }}\n MINIO_ACCESS_KEY = \"{{ .Data.data.${vault_kv_field_access_key} }}\"\n MINIO_SECRET_KEY = \"{{ .Data.data.${vault_kv_field_secret_key} }}\"\n {{ end }}\n %{ else }\n MINIO_ACCESS_KEY = \"${access_key}\"\n MINIO_SECRET_KEY = \"${secret_key}\"\n %{ endif }\n ${ envs }\n }\n }\n }\n}\n",
- "vars": {
- "access_key": "minio",
- "command": "mc config host add LOCALMINIO http://storage.service.consul:9000 $MINIO_ACCESS_KEY $MINIO_SECRET_KEY \u0026\u0026 mc mb -p LOCALMINIO/logs.fd.io LOCALMINIO/docs.fd.io ; mc policy set public LOCALMINIO/logs.fd.io mc policy set public LOCALMINIO/docs.fd.io mc ilm add --expiry-days '180' LOCALMINIO/logs.fd.io mc admin user add LOCALMINIO storage Storage1234 mc admin policy set LOCALMINIO writeonly user=storage",
- "datacenters": "yul1",
- "envs": "",
- "image": "minio/mc:RELEASE.2020-12-10T01-26-17Z",
- "job_name": "prod-mc",
- "minio_port": "9000",
- "minio_service_name": "storage",
- "secret_key": "minio123",
- "service_name": "mc",
- "use_vault_provider": "false"
- }
- },
- "sensitive_attributes": []
- }
- ]
- },
- {
- "module": "module.minio",
- "mode": "data",
- "type": "template_file",
- "name": "nomad_job_minio",
- "provider": "provider[\"registry.terraform.io/hashicorp/template\"]",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "filename": null,
- "id": "e35f54f403b11159fde986f73d67cf4a4e4ab3cd53b4916f28fe0e8ec935823c",
- "rendered": "job \"prod-minio\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 1\n\n health_check = \"checks\"\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 1\n\n # Specifies if the job should auto-promote to the canary version when all\n # canaries become healthy during a deployment. Defaults to false which means\n # canaries must be manually updated with the nomad deployment promote\n # command.\n auto_promote = true\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = true\n\n }\n\n # All groups in this job should be scheduled on different hosts.\n constraint {\n operator = \"distinct_hosts\"\n value = \"true\"\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-minio\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = 4\n\n # https://www.nomadproject.io/docs/job-specification/volume\n \n volume \"prod-volume1-minio\" {\n type = \"host\"\n read_only = false\n source = \"prod-volume-data1-1\"\n }\n \n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-minio\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n \n volume_mount {\n volume = \"prod-volume1-minio\"\n destination = \"/data/\"\n read_only = false\n }\n \n\n \n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"minio/minio:RELEASE.2020-12-03T05-49-24Z\"\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n network_mode = \"host\"\n command = \"server\"\n args = [ \"http://10.32.8.1{4...7}:9000/data/\" ]\n port_map {\n http = 9000\n }\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n\n MINIO_ACCESS_KEY = \"minio\"\n MINIO_SECRET_KEY = \"minio123\"\n\n MINIO_BROWSER=\"off\"\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"storage\"\n port = \"http\"\n tags = [ \"storage${NOMAD_ALLOC_INDEX}\" ]\n check {\n name = \"Min.io Server HTTP Check Live\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/live\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n check {\n name = \"Min.io Server HTTP Check Ready\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/ready\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n # The network stanza specifies the networking requirements for the task\n # group, including the network mode and port allocations. When scheduling\n # jobs in Nomad they are provisioned across your fleet of machines along\n # with other jobs and services. Because you don't know in advance what host\n # your job will be provisioned on, Nomad will provide your tasks with\n # network configuration when they start up.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/network.html\n #\n cpu = 40000\n memory = 40000\n network {\n port \"http\" {\n static = 9000\n }\n }\n }\n }\n }\n}\n",
- "template": "job \"${job_name}\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"${datacenters}\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 1\n\n health_check = \"checks\"\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n%{ if use_canary }\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 1\n\n # Specifies if the job should auto-promote to the canary version when all\n # canaries become healthy during a deployment. Defaults to false which means\n # canaries must be manually updated with the nomad deployment promote\n # command.\n auto_promote = true\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = true\n%{ endif }\n }\n\n # All groups in this job should be scheduled on different hosts.\n constraint {\n operator = \"distinct_hosts\"\n value = \"true\"\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-minio\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = ${group_count}\n\n # https://www.nomadproject.io/docs/job-specification/volume\n %{ if use_host_volume }\n volume \"prod-volume1-minio\" {\n type = \"host\"\n read_only = false\n source = \"${host_volume}\"\n }\n %{ endif }\n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-minio\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n %{ if use_host_volume }\n volume_mount {\n volume = \"prod-volume1-minio\"\n destination = \"${data_dir}\"\n read_only = false\n }\n %{ endif }\n\n %{ if use_vault_provider }\n vault {\n policies = \"${vault_kv_policy_name}\"\n }\n %{ endif }\n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"${image}\"\n dns_servers = [ \"$${attr.unique.network.ip-address}\" ]\n network_mode = \"host\"\n command = \"server\"\n args = [ \"${host}:${port}${data_dir}\" ]\n port_map {\n http = ${port}\n }\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n%{ if use_vault_provider }\n{{ with secret \"${vault_kv_path}\" }}\n MINIO_ACCESS_KEY = \"{{ .Data.data.${vault_kv_field_access_key} }}\"\n MINIO_SECRET_KEY = \"{{ .Data.data.${vault_kv_field_secret_key} }}\"\n{{ end }}\n%{ else }\n MINIO_ACCESS_KEY = \"${access_key}\"\n MINIO_SECRET_KEY = \"${secret_key}\"\n%{ endif }\n ${ envs }\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"${service_name}\"\n port = \"http\"\n tags = [ \"storage$${NOMAD_ALLOC_INDEX}\" ]\n check {\n name = \"Min.io Server HTTP Check Live\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/live\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n check {\n name = \"Min.io Server HTTP Check Ready\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/ready\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n # The network stanza specifies the networking requirements for the task\n # group, including the network mode and port allocations. When scheduling\n # jobs in Nomad they are provisioned across your fleet of machines along\n # with other jobs and services. Because you don't know in advance what host\n # your job will be provisioned on, Nomad will provide your tasks with\n # network configuration when they start up.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/network.html\n #\n cpu = 40000\n memory = 40000\n network {\n port \"http\" {\n static = ${port}\n }\n }\n }\n }\n }\n}\n",
- "vars": {
- "access_key": "minio",
- "cpu": "200",
- "cpu_proxy": "200",
- "data_dir": "/data/",
- "datacenters": "yul1",
- "envs": "MINIO_BROWSER=\"off\"",
- "group_count": "4",
- "host": "http://10.32.8.1{4...7}",
- "host_volume": "prod-volume-data1-1",
- "image": "minio/minio:RELEASE.2020-12-03T05-49-24Z",
- "job_name": "prod-minio",
- "memory": "1024",
- "memory_proxy": "128",
- "port": "9000",
- "secret_key": "minio123",
- "service_name": "storage",
- "upstreams": "[]",
- "use_canary": "true",
- "use_host_volume": "true",
- "use_vault_provider": "false"
- }
- },
- "sensitive_attributes": []
- }
- ]
- },
- {
- "module": "module.minio",
- "mode": "managed",
- "type": "nomad_job",
- "name": "nomad_job_mc",
- "provider": "provider[\"registry.terraform.io/hashicorp/nomad\"].yul1",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "allocation_ids": [
- "df5ed2e3-2484-93bd-1bd2-f949d5a6ec8f"
- ],
- "datacenters": [
- "yul1"
- ],
- "deployment_id": "",
- "deployment_status": "",
- "deregister_on_destroy": true,
- "deregister_on_id_change": true,
- "detach": false,
- "id": "prod-mc",
- "jobspec": "job \"prod-mc\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"batch\"\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-mc\" {\n task \"prod-task1-create-buckets\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n \n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"minio/mc:RELEASE.2020-12-10T01-26-17Z\"\n entrypoint = [\n \"/bin/sh\",\n \"-c\",\n \"mc config host add LOCALMINIO http://storage.service.consul:9000 $MINIO_ACCESS_KEY $MINIO_SECRET_KEY \u0026\u0026 mc mb -p LOCALMINIO/logs.fd.io LOCALMINIO/docs.fd.io ; mc policy set public LOCALMINIO/logs.fd.io mc policy set public LOCALMINIO/docs.fd.io mc ilm add --expiry-days '180' LOCALMINIO/logs.fd.io mc admin user add LOCALMINIO storage Storage1234 mc admin policy set LOCALMINIO writeonly user=storage\"\n ]\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n \n MINIO_ACCESS_KEY = \"minio\"\n MINIO_SECRET_KEY = \"minio123\"\n \n \n }\n }\n }\n}\n",
- "json": null,
- "modify_index": "5933670",
- "name": "prod-mc",
- "namespace": "default",
- "policy_override": null,
- "purge_on_destroy": null,
- "region": "global",
- "task_groups": [
- {
- "count": 1,
- "meta": {},
- "name": "prod-group1-mc",
- "task": [
- {
- "driver": "docker",
- "meta": {},
- "name": "prod-task1-create-buckets",
- "volume_mounts": null
- }
- ],
- "volumes": null
- }
- ],
- "type": "batch"
- },
- "sensitive_attributes": [],
- "private": "bnVsbA==",
- "dependencies": [
- "module.minio.data.template_file.nomad_job_mc",
- "module.minio.data.template_file.nomad_job_minio",
- "module.minio.nomad_job.nomad_job_minio"
- ]
- }
- ]
- },
- {
- "module": "module.minio",
- "mode": "managed",
- "type": "nomad_job",
- "name": "nomad_job_minio",
- "provider": "provider[\"registry.terraform.io/hashicorp/nomad\"].yul1",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "allocation_ids": [
- "322e6ea5-acc7-2f37-3022-cd0a31c2f3db",
- "619833b9-dd70-46ae-f576-75c3cd058a13",
- "0510561a-c828-dd23-5910-b92d9f2c41ef",
- "504924c8-387b-abe2-c4d5-d6a7424a4689",
- "4f12caf3-8ca8-b697-13c0-8f35d21dcba1"
- ],
- "datacenters": [
- "yul1"
- ],
- "deployment_id": "cd6d79cf-6e6f-289d-a0bb-6b2bb8da769a",
- "deployment_status": "successful",
- "deregister_on_destroy": true,
- "deregister_on_id_change": true,
- "detach": false,
- "id": "prod-minio",
- "jobspec": "job \"prod-minio\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 1\n\n health_check = \"checks\"\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 1\n\n # Specifies if the job should auto-promote to the canary version when all\n # canaries become healthy during a deployment. Defaults to false which means\n # canaries must be manually updated with the nomad deployment promote\n # command.\n auto_promote = true\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = true\n\n }\n\n # All groups in this job should be scheduled on different hosts.\n constraint {\n operator = \"distinct_hosts\"\n value = \"true\"\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-minio\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = 4\n\n # https://www.nomadproject.io/docs/job-specification/volume\n \n volume \"prod-volume1-minio\" {\n type = \"host\"\n read_only = false\n source = \"prod-volume-data1-1\"\n }\n \n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-minio\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n \n volume_mount {\n volume = \"prod-volume1-minio\"\n destination = \"/data/\"\n read_only = false\n }\n \n\n \n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"minio/minio:RELEASE.2020-12-03T05-49-24Z\"\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n network_mode = \"host\"\n command = \"server\"\n args = [ \"http://10.32.8.1{4...7}:9000/data/\" ]\n port_map {\n http = 9000\n }\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n\n MINIO_ACCESS_KEY = \"minio\"\n MINIO_SECRET_KEY = \"minio123\"\n\n MINIO_BROWSER=\"off\"\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"storage\"\n port = \"http\"\n tags = [ \"storage${NOMAD_ALLOC_INDEX}\" ]\n check {\n name = \"Min.io Server HTTP Check Live\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/live\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n check {\n name = \"Min.io Server HTTP Check Ready\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/ready\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n # The network stanza specifies the networking requirements for the task\n # group, including the network mode and port allocations. When scheduling\n # jobs in Nomad they are provisioned across your fleet of machines along\n # with other jobs and services. Because you don't know in advance what host\n # your job will be provisioned on, Nomad will provide your tasks with\n # network configuration when they start up.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/network.html\n #\n cpu = 40000\n memory = 40000\n network {\n port \"http\" {\n static = 9000\n }\n }\n }\n }\n }\n}\n",
- "json": null,
- "modify_index": "5933603",
- "name": "prod-minio",
- "namespace": "default",
- "policy_override": null,
- "purge_on_destroy": null,
- "region": "global",
- "task_groups": [
- {
- "count": 4,
- "meta": {},
- "name": "prod-group1-minio",
- "task": [
- {
- "driver": "docker",
- "meta": {},
- "name": "prod-task1-minio",
- "volume_mounts": [
- {
- "destination": "/data/",
- "read_only": false,
- "volume": "prod-volume1-minio"
- }
- ]
- }
- ],
- "volumes": [
- {
- "name": "prod-volume1-minio",
- "read_only": false,
- "source": "prod-volume-data1-1",
- "type": "host"
- }
- ]
- }
- ],
- "type": "service"
- },
- "sensitive_attributes": [],
- "private": "bnVsbA==",
- "dependencies": [
- "module.minio.data.template_file.nomad_job_minio"
- ]
- }
- ]
- },
- {
- "module": "module.nginx",
- "mode": "data",
- "type": "template_file",
- "name": "nomad_job_nginx",
- "provider": "provider[\"registry.terraform.io/hashicorp/template\"]",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "filename": null,
- "id": "2816603491214d9abe10981b9f9cc6a4cb806acbc6981b952653847fec86e9ff",
- "rendered": "job \"prod-nginx\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 0\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = false\n\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 0\n }\n\n # The reschedule stanza specifies the group's rescheduling strategy. If\n # specified at the job level, the configuration will apply to all groups\n # within the job. If the reschedule stanza is present on both the job and the\n # group, they are merged with the group stanza taking the highest precedence\n # and then the job.\n reschedule {\n delay = \"30s\"\n delay_function = \"constant\"\n unlimited = true\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-nginx\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = 1\n\n # The restart stanza configures a tasks's behavior on task failure. Restarts\n # happen on the client that is running the task.\n restart {\n interval = \"10m\"\n attempts = 2\n delay = \"15s\"\n mode = \"fail\"\n }\n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-nginx\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"nginx:stable\"\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n port_map {\n https = 443\n }\n privileged = false\n volumes = [\n \"/etc/consul.d/ssl/consul.pem:/etc/ssl/certs/nginx-cert.pem\",\n \"/etc/consul.d/ssl/consul-key.pem:/etc/ssl/private/nginx-key.pem\",\n \"custom/upstream.conf:/etc/nginx/conf.d/upstream.conf\",\n \"custom/logs.conf:/etc/nginx/conf.d/logs.conf\",\n \"custom/docs.conf:/etc/nginx/conf.d/docs.conf\"\n ]\n }\n\n # The \"template\" stanza instructs Nomad to manage a template, such as\n # a configuration file or script. This template can optionally pull data\n # from Consul or Vault to populate runtime configuration data.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/template.html\n #\n template {\n data = \u003c\u003cEOH\n upstream storage {\n server storage0.storage.service.consul:9000;\n server storage1.storage.service.consul:9000;\n server storage2.storage.service.consul:9000;\n server storage3.storage.service.consul:9000;\n }\n EOH\n destination = \"custom/upstream.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl default_server;\n server_name logs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/;\n server_name_in_redirect off;\n }\n location ~ (.*html.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/html;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*txt.gz|.*log.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/plain;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*xml.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type application/xml;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/logs.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl;\n server_name docs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/docs.fd.io/;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/docs.conf\"\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"nginx\"\n port = \"https\"\n tags = [ \"docs\", \"logs\" ]\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n cpu = 1000\n memory = 1024\n network {\n mode = \"bridge\"\n port \"https\" {\n static = 443\n }\n }\n }\n }\n }\n}",
- "template": "job \"${job_name}\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"${datacenters}\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 0\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = false\n\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 0\n }\n\n # The reschedule stanza specifies the group's rescheduling strategy. If\n # specified at the job level, the configuration will apply to all groups\n # within the job. If the reschedule stanza is present on both the job and the\n # group, they are merged with the group stanza taking the highest precedence\n # and then the job.\n reschedule {\n delay = \"30s\"\n delay_function = \"constant\"\n unlimited = true\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-nginx\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = 1\n\n # The restart stanza configures a tasks's behavior on task failure. Restarts\n # happen on the client that is running the task.\n restart {\n interval = \"10m\"\n attempts = 2\n delay = \"15s\"\n mode = \"fail\"\n }\n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-nginx\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"nginx:stable\"\n dns_servers = [ \"$${attr.unique.network.ip-address}\" ]\n port_map {\n https = 443\n }\n privileged = false\n volumes = [\n \"/etc/consul.d/ssl/consul.pem:/etc/ssl/certs/nginx-cert.pem\",\n \"/etc/consul.d/ssl/consul-key.pem:/etc/ssl/private/nginx-key.pem\",\n \"custom/upstream.conf:/etc/nginx/conf.d/upstream.conf\",\n \"custom/logs.conf:/etc/nginx/conf.d/logs.conf\",\n \"custom/docs.conf:/etc/nginx/conf.d/docs.conf\"\n ]\n }\n\n # The \"template\" stanza instructs Nomad to manage a template, such as\n # a configuration file or script. This template can optionally pull data\n # from Consul or Vault to populate runtime configuration data.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/template.html\n #\n template {\n data = \u003c\u003cEOH\n upstream storage {\n server storage0.storage.service.consul:9000;\n server storage1.storage.service.consul:9000;\n server storage2.storage.service.consul:9000;\n server storage3.storage.service.consul:9000;\n }\n EOH\n destination = \"custom/upstream.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl default_server;\n server_name logs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/;\n server_name_in_redirect off;\n }\n location ~ (.*html.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/html;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*txt.gz|.*log.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/plain;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*xml.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type application/xml;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/logs.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl;\n server_name docs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/docs.fd.io/;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/docs.conf\"\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"nginx\"\n port = \"https\"\n tags = [ \"docs\", \"logs\" ]\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n cpu = 1000\n memory = 1024\n network {\n mode = \"bridge\"\n port \"https\" {\n static = 443\n }\n }\n }\n }\n }\n}",
- "vars": {
- "datacenters": "yul1",
- "job_name": "prod-nginx"
- }
- },
- "sensitive_attributes": []
- }
- ]
- },
- {
- "module": "module.nginx",
- "mode": "managed",
- "type": "nomad_job",
- "name": "nomad_job_nginx",
- "provider": "provider[\"registry.terraform.io/hashicorp/nomad\"].yul1",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "allocation_ids": [
- "de9af589-8f0b-6634-7199-c661f8f17df0"
- ],
- "datacenters": [
- "yul1"
- ],
- "deployment_id": "",
- "deployment_status": "",
- "deregister_on_destroy": true,
- "deregister_on_id_change": true,
- "detach": false,
- "id": "prod-nginx",
- "jobspec": "job \"prod-nginx\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 0\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = false\n\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 0\n }\n\n # The reschedule stanza specifies the group's rescheduling strategy. If\n # specified at the job level, the configuration will apply to all groups\n # within the job. If the reschedule stanza is present on both the job and the\n # group, they are merged with the group stanza taking the highest precedence\n # and then the job.\n reschedule {\n delay = \"30s\"\n delay_function = \"constant\"\n unlimited = true\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-nginx\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = 1\n\n # The restart stanza configures a tasks's behavior on task failure. Restarts\n # happen on the client that is running the task.\n restart {\n interval = \"10m\"\n attempts = 2\n delay = \"15s\"\n mode = \"fail\"\n }\n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-nginx\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"nginx:stable\"\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n port_map {\n https = 443\n }\n privileged = false\n volumes = [\n \"/etc/consul.d/ssl/consul.pem:/etc/ssl/certs/nginx-cert.pem\",\n \"/etc/consul.d/ssl/consul-key.pem:/etc/ssl/private/nginx-key.pem\",\n \"custom/upstream.conf:/etc/nginx/conf.d/upstream.conf\",\n \"custom/logs.conf:/etc/nginx/conf.d/logs.conf\",\n \"custom/docs.conf:/etc/nginx/conf.d/docs.conf\"\n ]\n }\n\n # The \"template\" stanza instructs Nomad to manage a template, such as\n # a configuration file or script. This template can optionally pull data\n # from Consul or Vault to populate runtime configuration data.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/template.html\n #\n template {\n data = \u003c\u003cEOH\n upstream storage {\n server storage0.storage.service.consul:9000;\n server storage1.storage.service.consul:9000;\n server storage2.storage.service.consul:9000;\n server storage3.storage.service.consul:9000;\n }\n EOH\n destination = \"custom/upstream.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl default_server;\n server_name logs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/;\n server_name_in_redirect off;\n }\n location ~ (.*html.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/html;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*txt.gz|.*log.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/plain;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*xml.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type application/xml;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/logs.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl;\n server_name docs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/docs.fd.io/;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/docs.conf\"\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"nginx\"\n port = \"https\"\n tags = [ \"docs\", \"logs\" ]\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n cpu = 1000\n memory = 1024\n network {\n mode = \"bridge\"\n port \"https\" {\n static = 443\n }\n }\n }\n }\n }\n}",
- "json": null,
- "modify_index": "5922474",
- "name": "prod-nginx",
- "namespace": "default",
- "policy_override": null,
- "purge_on_destroy": null,
- "region": "global",
- "task_groups": [
- {
- "count": 1,
- "meta": {},
- "name": "prod-group1-nginx",
- "task": [
- {
- "driver": "docker",
- "meta": {},
- "name": "prod-task1-nginx",
- "volume_mounts": []
- }
- ],
- "volumes": []
- }
- ],
- "type": "service"
- },
- "sensitive_attributes": [],
- "private": "bnVsbA==",
- "dependencies": [
- "module.nginx.data.template_file.nomad_job_nginx"
- ]
- }
- ]
- }
- ]
-}
diff --git a/terraform-ci-infra/1n_nmd/terraform.tfstate.backup b/terraform-ci-infra/1n_nmd/terraform.tfstate.backup
deleted file mode 100644
index 3290919ac6..0000000000
--- a/terraform-ci-infra/1n_nmd/terraform.tfstate.backup
+++ /dev/null
@@ -1,233 +0,0 @@
-{
- "version": 4,
- "terraform_version": "0.14.2",
- "serial": 220,
- "lineage": "e4e7f30a-652d-7a31-e31c-5e3a3388c9b9",
- "outputs": {},
- "resources": [
- {
- "module": "module.minio",
- "mode": "data",
- "type": "template_file",
- "name": "nomad_job_mc",
- "provider": "provider[\"registry.terraform.io/hashicorp/template\"]",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "filename": null,
- "id": "ca0c95bbe91c4ac393d5cd5bef8efb90fb5f176f266ba233542fd4338b51c6cc",
- "rendered": "job \"prod-mc\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"batch\"\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-mc\" {\n task \"prod-task1-create-buckets\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n \n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"minio/mc:RELEASE.2020-12-10T01-26-17Z\"\n entrypoint = [\n \"/bin/sh\",\n \"-c\",\n \"mc config host add LOCALMINIO http://storage.service.consul:9000 $MINIO_ACCESS_KEY $MINIO_SECRET_KEY \u0026\u0026 mc mb -p LOCALMINIO/logs.fd.io LOCALMINIO/docs.fd.io ; mc policy set public LOCALMINIO/logs.fd.io mc policy set public LOCALMINIO/docs.fd.io mc ilm add --expiry-days '180' LOCALMINIO/logs.fd.io mc admin user add LOCALMINIO storage Storage1234 mc admin policy set LOCALMINIO writeonly user=storage\"\n ]\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n \n MINIO_ACCESS_KEY = \"minio\"\n MINIO_SECRET_KEY = \"minio123\"\n \n \n }\n }\n }\n}\n",
- "template": "job \"${job_name}\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"${datacenters}\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"batch\"\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-mc\" {\n task \"prod-task1-create-buckets\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n %{ if use_vault_provider }\n vault {\n policies = \"${vault_kv_policy_name}\"\n }\n %{ endif }\n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"${image}\"\n entrypoint = [\n \"/bin/sh\",\n \"-c\",\n \"${command}\"\n ]\n dns_servers = [ \"$${attr.unique.network.ip-address}\" ]\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n %{ if use_vault_provider }\n {{ with secret \"${vault_kv_path}\" }}\n MINIO_ACCESS_KEY = \"{{ .Data.data.${vault_kv_field_access_key} }}\"\n MINIO_SECRET_KEY = \"{{ .Data.data.${vault_kv_field_secret_key} }}\"\n {{ end }}\n %{ else }\n MINIO_ACCESS_KEY = \"${access_key}\"\n MINIO_SECRET_KEY = \"${secret_key}\"\n %{ endif }\n ${ envs }\n }\n }\n }\n}\n",
- "vars": {
- "access_key": "minio",
- "command": "mc config host add LOCALMINIO http://storage.service.consul:9000 $MINIO_ACCESS_KEY $MINIO_SECRET_KEY \u0026\u0026 mc mb -p LOCALMINIO/logs.fd.io LOCALMINIO/docs.fd.io ; mc policy set public LOCALMINIO/logs.fd.io mc policy set public LOCALMINIO/docs.fd.io mc ilm add --expiry-days '180' LOCALMINIO/logs.fd.io mc admin user add LOCALMINIO storage Storage1234 mc admin policy set LOCALMINIO writeonly user=storage",
- "datacenters": "yul1",
- "envs": "",
- "image": "minio/mc:RELEASE.2020-12-10T01-26-17Z",
- "job_name": "prod-mc",
- "minio_port": "9000",
- "minio_service_name": "storage",
- "secret_key": "minio123",
- "service_name": "mc",
- "use_vault_provider": "false"
- }
- },
- "sensitive_attributes": []
- }
- ]
- },
- {
- "module": "module.minio",
- "mode": "data",
- "type": "template_file",
- "name": "nomad_job_minio",
- "provider": "provider[\"registry.terraform.io/hashicorp/template\"]",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "filename": null,
- "id": "7e4a32e6a9a032751c28bef6abffe54b7bee9b98b5bb80c9ba5fe18913a1afa7",
- "rendered": "job \"prod-minio\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 1\n\n health_check = \"checks\"\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 1\n\n # Specifies if the job should auto-promote to the canary version when all\n # canaries become healthy during a deployment. Defaults to false which means\n # canaries must be manually updated with the nomad deployment promote\n # command.\n auto_promote = true\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = true\n\n }\n\n # All groups in this job should be scheduled on different hosts.\n constraint {\n operator = \"distinct_hosts\"\n value = \"true\"\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-minio\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = 4\n\n # https://www.nomadproject.io/docs/job-specification/volume\n \n volume \"prod-volume1-minio\" {\n type = \"host\"\n read_only = false\n source = \"prod-volume-data1-1\"\n }\n \n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-minio\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n \n volume_mount {\n volume = \"prod-volume1-minio\"\n destination = \"/data/\"\n read_only = false\n }\n \n\n \n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"minio/minio:RELEASE.2020-12-03T05-49-24Z\"\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n network_mode = \"host\"\n command = \"server\"\n args = [ \"http://10.32.8.1{4...7}:9000/data/\" ]\n port_map {\n http = 9000\n }\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n\n MINIO_ACCESS_KEY = \"minio\"\n MINIO_SECRET_KEY = \"minio123\"\n\n MINIO_BROWSER=\"off\"\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"storage\"\n port = \"http\"\n tags = [ \"storage${NOMAD_ALLOC_INDEX}\" ]\n check {\n name = \"Min.io Server HTTP Check Live\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/live\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n check {\n name = \"Min.io Server HTTP Check Ready\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/ready\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n # The network stanza specifies the networking requirements for the task\n # group, including the network mode and port allocations. When scheduling\n # jobs in Nomad they are provisioned across your fleet of machines along\n # with other jobs and services. Because you don't know in advance what host\n # your job will be provisioned on, Nomad will provide your tasks with\n # network configuration when they start up.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/network.html\n #\n network {\n port \"http\" {\n static = 9000\n }\n }\n }\n }\n }\n}\n",
- "template": "job \"${job_name}\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"${datacenters}\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 1\n\n health_check = \"checks\"\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n%{ if use_canary }\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 1\n\n # Specifies if the job should auto-promote to the canary version when all\n # canaries become healthy during a deployment. Defaults to false which means\n # canaries must be manually updated with the nomad deployment promote\n # command.\n auto_promote = true\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = true\n%{ endif }\n }\n\n # All groups in this job should be scheduled on different hosts.\n constraint {\n operator = \"distinct_hosts\"\n value = \"true\"\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-minio\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = ${group_count}\n\n # https://www.nomadproject.io/docs/job-specification/volume\n %{ if use_host_volume }\n volume \"prod-volume1-minio\" {\n type = \"host\"\n read_only = false\n source = \"${host_volume}\"\n }\n %{ endif }\n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-minio\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n %{ if use_host_volume }\n volume_mount {\n volume = \"prod-volume1-minio\"\n destination = \"${data_dir}\"\n read_only = false\n }\n %{ endif }\n\n %{ if use_vault_provider }\n vault {\n policies = \"${vault_kv_policy_name}\"\n }\n %{ endif }\n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"${image}\"\n dns_servers = [ \"$${attr.unique.network.ip-address}\" ]\n network_mode = \"host\"\n command = \"server\"\n args = [ \"${host}:${port}${data_dir}\" ]\n port_map {\n http = ${port}\n }\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n%{ if use_vault_provider }\n{{ with secret \"${vault_kv_path}\" }}\n MINIO_ACCESS_KEY = \"{{ .Data.data.${vault_kv_field_access_key} }}\"\n MINIO_SECRET_KEY = \"{{ .Data.data.${vault_kv_field_secret_key} }}\"\n{{ end }}\n%{ else }\n MINIO_ACCESS_KEY = \"${access_key}\"\n MINIO_SECRET_KEY = \"${secret_key}\"\n%{ endif }\n ${ envs }\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"${service_name}\"\n port = \"http\"\n tags = [ \"storage$${NOMAD_ALLOC_INDEX}\" ]\n check {\n name = \"Min.io Server HTTP Check Live\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/live\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n check {\n name = \"Min.io Server HTTP Check Ready\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/ready\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n # The network stanza specifies the networking requirements for the task\n # group, including the network mode and port allocations. When scheduling\n # jobs in Nomad they are provisioned across your fleet of machines along\n # with other jobs and services. Because you don't know in advance what host\n # your job will be provisioned on, Nomad will provide your tasks with\n # network configuration when they start up.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/network.html\n #\n network {\n port \"http\" {\n static = ${port}\n }\n }\n }\n }\n }\n}\n",
- "vars": {
- "access_key": "minio",
- "cpu": "200",
- "cpu_proxy": "200",
- "data_dir": "/data/",
- "datacenters": "yul1",
- "envs": "MINIO_BROWSER=\"off\"",
- "group_count": "4",
- "host": "http://10.32.8.1{4...7}",
- "host_volume": "prod-volume-data1-1",
- "image": "minio/minio:RELEASE.2020-12-03T05-49-24Z",
- "job_name": "prod-minio",
- "memory": "1024",
- "memory_proxy": "128",
- "port": "9000",
- "secret_key": "minio123",
- "service_name": "storage",
- "upstreams": "[]",
- "use_canary": "true",
- "use_host_volume": "true",
- "use_vault_provider": "false"
- }
- },
- "sensitive_attributes": []
- }
- ]
- },
- {
- "module": "module.minio",
- "mode": "managed",
- "type": "nomad_job",
- "name": "nomad_job_minio",
- "provider": "provider[\"registry.terraform.io/hashicorp/nomad\"].yul1",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "allocation_ids": [
- "50aa74ba-c8fa-3523-aa88-ba7c7404b96b",
- "fd433635-9fdf-61aa-6069-2fb2f80709d8",
- "62d6aaf9-d9a7-395b-c8a3-c7998882b2d7",
- "c9db0a63-c624-07a7-d9ed-1972a61d865d"
- ],
- "datacenters": [
- "yul1"
- ],
- "deployment_id": "d5b25946-c510-1017-3a50-f83c3616f718",
- "deployment_status": "successful",
- "deregister_on_destroy": true,
- "deregister_on_id_change": true,
- "detach": false,
- "id": "prod-minio",
- "jobspec": "job \"prod-minio\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 1\n\n health_check = \"checks\"\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 1\n\n # Specifies if the job should auto-promote to the canary version when all\n # canaries become healthy during a deployment. Defaults to false which means\n # canaries must be manually updated with the nomad deployment promote\n # command.\n auto_promote = true\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = true\n\n }\n\n # All groups in this job should be scheduled on different hosts.\n constraint {\n operator = \"distinct_hosts\"\n value = \"true\"\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-minio\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = 4\n\n # https://www.nomadproject.io/docs/job-specification/volume\n \n volume \"prod-volume1-minio\" {\n type = \"host\"\n read_only = false\n source = \"prod-volume-data1-1\"\n }\n \n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-minio\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n \n volume_mount {\n volume = \"prod-volume1-minio\"\n destination = \"/data/\"\n read_only = false\n }\n \n\n \n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"minio/minio:RELEASE.2020-12-03T05-49-24Z\"\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n network_mode = \"host\"\n command = \"server\"\n args = [ \"http://10.32.8.1{4...7}:9000/data/\" ]\n port_map {\n http = 9000\n }\n privileged = false\n }\n\n # The env stanza configures a list of environment variables to populate\n # the task's environment before starting.\n env {\n\n MINIO_ACCESS_KEY = \"minio\"\n MINIO_SECRET_KEY = \"minio123\"\n\n MINIO_BROWSER=\"off\"\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"storage\"\n port = \"http\"\n tags = [ \"storage${NOMAD_ALLOC_INDEX}\" ]\n check {\n name = \"Min.io Server HTTP Check Live\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/live\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n check {\n name = \"Min.io Server HTTP Check Ready\"\n type = \"http\"\n port = \"http\"\n protocol = \"http\"\n method = \"GET\"\n path = \"/minio/health/ready\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n # The network stanza specifies the networking requirements for the task\n # group, including the network mode and port allocations. When scheduling\n # jobs in Nomad they are provisioned across your fleet of machines along\n # with other jobs and services. Because you don't know in advance what host\n # your job will be provisioned on, Nomad will provide your tasks with\n # network configuration when they start up.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/network.html\n #\n network {\n port \"http\" {\n static = 9000\n }\n }\n }\n }\n }\n}\n",
- "json": null,
- "modify_index": "5922473",
- "name": "prod-minio",
- "namespace": "default",
- "policy_override": null,
- "purge_on_destroy": null,
- "region": "global",
- "task_groups": [
- {
- "count": 4,
- "meta": {},
- "name": "prod-group1-minio",
- "task": [
- {
- "driver": "docker",
- "meta": {},
- "name": "prod-task1-minio",
- "volume_mounts": [
- {
- "destination": "/data/",
- "read_only": false,
- "volume": "prod-volume1-minio"
- }
- ]
- }
- ],
- "volumes": [
- {
- "name": "prod-volume1-minio",
- "read_only": false,
- "source": "prod-volume-data1-1",
- "type": "host"
- }
- ]
- }
- ],
- "type": "service"
- },
- "sensitive_attributes": [],
- "private": "bnVsbA==",
- "dependencies": [
- "module.minio.data.template_file.nomad_job_minio"
- ]
- }
- ]
- },
- {
- "module": "module.nginx",
- "mode": "data",
- "type": "template_file",
- "name": "nomad_job_nginx",
- "provider": "provider[\"registry.terraform.io/hashicorp/template\"]",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "filename": null,
- "id": "2816603491214d9abe10981b9f9cc6a4cb806acbc6981b952653847fec86e9ff",
- "rendered": "job \"prod-nginx\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 0\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = false\n\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 0\n }\n\n # The reschedule stanza specifies the group's rescheduling strategy. If\n # specified at the job level, the configuration will apply to all groups\n # within the job. If the reschedule stanza is present on both the job and the\n # group, they are merged with the group stanza taking the highest precedence\n # and then the job.\n reschedule {\n delay = \"30s\"\n delay_function = \"constant\"\n unlimited = true\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-nginx\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = 1\n\n # The restart stanza configures a tasks's behavior on task failure. Restarts\n # happen on the client that is running the task.\n restart {\n interval = \"10m\"\n attempts = 2\n delay = \"15s\"\n mode = \"fail\"\n }\n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-nginx\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"nginx:stable\"\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n port_map {\n https = 443\n }\n privileged = false\n volumes = [\n \"/etc/consul.d/ssl/consul.pem:/etc/ssl/certs/nginx-cert.pem\",\n \"/etc/consul.d/ssl/consul-key.pem:/etc/ssl/private/nginx-key.pem\",\n \"custom/upstream.conf:/etc/nginx/conf.d/upstream.conf\",\n \"custom/logs.conf:/etc/nginx/conf.d/logs.conf\",\n \"custom/docs.conf:/etc/nginx/conf.d/docs.conf\"\n ]\n }\n\n # The \"template\" stanza instructs Nomad to manage a template, such as\n # a configuration file or script. This template can optionally pull data\n # from Consul or Vault to populate runtime configuration data.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/template.html\n #\n template {\n data = \u003c\u003cEOH\n upstream storage {\n server storage0.storage.service.consul:9000;\n server storage1.storage.service.consul:9000;\n server storage2.storage.service.consul:9000;\n server storage3.storage.service.consul:9000;\n }\n EOH\n destination = \"custom/upstream.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl default_server;\n server_name logs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/;\n server_name_in_redirect off;\n }\n location ~ (.*html.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/html;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*txt.gz|.*log.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/plain;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*xml.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type application/xml;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/logs.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl;\n server_name docs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/docs.fd.io/;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/docs.conf\"\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"nginx\"\n port = \"https\"\n tags = [ \"docs\", \"logs\" ]\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n cpu = 1000\n memory = 1024\n network {\n mode = \"bridge\"\n port \"https\" {\n static = 443\n }\n }\n }\n }\n }\n}",
- "template": "job \"${job_name}\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"${datacenters}\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 0\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = false\n\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 0\n }\n\n # The reschedule stanza specifies the group's rescheduling strategy. If\n # specified at the job level, the configuration will apply to all groups\n # within the job. If the reschedule stanza is present on both the job and the\n # group, they are merged with the group stanza taking the highest precedence\n # and then the job.\n reschedule {\n delay = \"30s\"\n delay_function = \"constant\"\n unlimited = true\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-nginx\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = 1\n\n # The restart stanza configures a tasks's behavior on task failure. Restarts\n # happen on the client that is running the task.\n restart {\n interval = \"10m\"\n attempts = 2\n delay = \"15s\"\n mode = \"fail\"\n }\n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-nginx\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"nginx:stable\"\n dns_servers = [ \"$${attr.unique.network.ip-address}\" ]\n port_map {\n https = 443\n }\n privileged = false\n volumes = [\n \"/etc/consul.d/ssl/consul.pem:/etc/ssl/certs/nginx-cert.pem\",\n \"/etc/consul.d/ssl/consul-key.pem:/etc/ssl/private/nginx-key.pem\",\n \"custom/upstream.conf:/etc/nginx/conf.d/upstream.conf\",\n \"custom/logs.conf:/etc/nginx/conf.d/logs.conf\",\n \"custom/docs.conf:/etc/nginx/conf.d/docs.conf\"\n ]\n }\n\n # The \"template\" stanza instructs Nomad to manage a template, such as\n # a configuration file or script. This template can optionally pull data\n # from Consul or Vault to populate runtime configuration data.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/template.html\n #\n template {\n data = \u003c\u003cEOH\n upstream storage {\n server storage0.storage.service.consul:9000;\n server storage1.storage.service.consul:9000;\n server storage2.storage.service.consul:9000;\n server storage3.storage.service.consul:9000;\n }\n EOH\n destination = \"custom/upstream.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl default_server;\n server_name logs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/;\n server_name_in_redirect off;\n }\n location ~ (.*html.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/html;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*txt.gz|.*log.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/plain;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*xml.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type application/xml;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/logs.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl;\n server_name docs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/docs.fd.io/;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/docs.conf\"\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"nginx\"\n port = \"https\"\n tags = [ \"docs\", \"logs\" ]\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n cpu = 1000\n memory = 1024\n network {\n mode = \"bridge\"\n port \"https\" {\n static = 443\n }\n }\n }\n }\n }\n}",
- "vars": {
- "datacenters": "yul1",
- "job_name": "prod-nginx"
- }
- },
- "sensitive_attributes": []
- }
- ]
- },
- {
- "module": "module.nginx",
- "mode": "managed",
- "type": "nomad_job",
- "name": "nomad_job_nginx",
- "provider": "provider[\"registry.terraform.io/hashicorp/nomad\"].yul1",
- "instances": [
- {
- "schema_version": 0,
- "attributes": {
- "allocation_ids": [
- "de9af589-8f0b-6634-7199-c661f8f17df0"
- ],
- "datacenters": [
- "yul1"
- ],
- "deployment_id": "",
- "deployment_status": "",
- "deregister_on_destroy": true,
- "deregister_on_id_change": true,
- "detach": false,
- "id": "prod-nginx",
- "jobspec": "job \"prod-nginx\" {\n # The \"region\" parameter specifies the region in which to execute the job.\n # If omitted, this inherits the default region name of \"global\".\n # region = \"global\"\n #\n # The \"datacenters\" parameter specifies the list of datacenters which should\n # be considered when placing this task. This must be provided.\n datacenters = \"yul1\"\n\n # The \"type\" parameter controls the type of job, which impacts the scheduler's\n # decision on placement. This configuration is optional and defaults to\n # \"service\". For a full list of job types and their differences, please see\n # the online documentation.\n #\n # For more information, please see the online documentation at:\n #\n # https://www.nomadproject.io/docs/jobspec/schedulers.html\n #\n type = \"service\"\n\n update {\n # The \"max_parallel\" parameter specifies the maximum number of updates to\n # perform in parallel. In this case, this specifies to update a single task\n # at a time.\n max_parallel = 0\n\n # The \"min_healthy_time\" parameter specifies the minimum time the allocation\n # must be in the healthy state before it is marked as healthy and unblocks\n # further allocations from being updated.\n min_healthy_time = \"10s\"\n\n # The \"healthy_deadline\" parameter specifies the deadline in which the\n # allocation must be marked as healthy after which the allocation is\n # automatically transitioned to unhealthy. Transitioning to unhealthy will\n # fail the deployment and potentially roll back the job if \"auto_revert\" is\n # set to true.\n healthy_deadline = \"3m\"\n\n # The \"progress_deadline\" parameter specifies the deadline in which an\n # allocation must be marked as healthy. The deadline begins when the first\n # allocation for the deployment is created and is reset whenever an allocation\n # as part of the deployment transitions to a healthy state. If no allocation\n # transitions to the healthy state before the progress deadline, the\n # deployment is marked as failed.\n progress_deadline = \"10m\"\n\n # The \"auto_revert\" parameter specifies if the job should auto-revert to the\n # last stable job on deployment failure. A job is marked as stable if all the\n # allocations as part of its deployment were marked healthy.\n auto_revert = false\n\n # The \"canary\" parameter specifies that changes to the job that would result\n # in destructive updates should create the specified number of canaries\n # without stopping any previous allocations. Once the operator determines the\n # canaries are healthy, they can be promoted which unblocks a rolling update\n # of the remaining allocations at a rate of \"max_parallel\".\n #\n # Further, setting \"canary\" equal to the count of the task group allows\n # blue/green deployments. When the job is updated, a full set of the new\n # version is deployed and upon promotion the old version is stopped.\n canary = 0\n }\n\n # The reschedule stanza specifies the group's rescheduling strategy. If\n # specified at the job level, the configuration will apply to all groups\n # within the job. If the reschedule stanza is present on both the job and the\n # group, they are merged with the group stanza taking the highest precedence\n # and then the job.\n reschedule {\n delay = \"30s\"\n delay_function = \"constant\"\n unlimited = true\n }\n\n # The \"group\" stanza defines a series of tasks that should be co-located on\n # the same Nomad client. Any task within a group will be placed on the same\n # client.\n #\n # For more information and examples on the \"group\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/group.html\n #\n group \"prod-group1-nginx\" {\n # The \"count\" parameter specifies the number of the task groups that should\n # be running under this group. This value must be non-negative and defaults\n # to 1.\n count = 1\n\n # The restart stanza configures a tasks's behavior on task failure. Restarts\n # happen on the client that is running the task.\n restart {\n interval = \"10m\"\n attempts = 2\n delay = \"15s\"\n mode = \"fail\"\n }\n\n # The \"task\" stanza creates an individual unit of work, such as a Docker\n # container, web application, or batch processing.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/task.html\n #\n task \"prod-task1-nginx\" {\n # The \"driver\" parameter specifies the task driver that should be used to\n # run the task.\n driver = \"docker\"\n\n # The \"config\" stanza specifies the driver configuration, which is passed\n # directly to the driver to start the task. The details of configurations\n # are specific to each driver, so please see specific driver\n # documentation for more information.\n config {\n image = \"nginx:stable\"\n dns_servers = [ \"${attr.unique.network.ip-address}\" ]\n port_map {\n https = 443\n }\n privileged = false\n volumes = [\n \"/etc/consul.d/ssl/consul.pem:/etc/ssl/certs/nginx-cert.pem\",\n \"/etc/consul.d/ssl/consul-key.pem:/etc/ssl/private/nginx-key.pem\",\n \"custom/upstream.conf:/etc/nginx/conf.d/upstream.conf\",\n \"custom/logs.conf:/etc/nginx/conf.d/logs.conf\",\n \"custom/docs.conf:/etc/nginx/conf.d/docs.conf\"\n ]\n }\n\n # The \"template\" stanza instructs Nomad to manage a template, such as\n # a configuration file or script. This template can optionally pull data\n # from Consul or Vault to populate runtime configuration data.\n #\n # For more information and examples on the \"template\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/template.html\n #\n template {\n data = \u003c\u003cEOH\n upstream storage {\n server storage0.storage.service.consul:9000;\n server storage1.storage.service.consul:9000;\n server storage2.storage.service.consul:9000;\n server storage3.storage.service.consul:9000;\n }\n EOH\n destination = \"custom/upstream.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl default_server;\n server_name logs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/;\n server_name_in_redirect off;\n }\n location ~ (.*html.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/html;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*txt.gz|.*log.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type text/plain;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n location ~ (.*xml.gz)$ {\n add_header Content-Encoding gzip;\n add_header Content-Type application/xml;\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/logs.fd.io/$1;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/logs.conf\"\n }\n template {\n data = \u003c\u003cEOH\n server {\n listen 443 ssl;\n server_name docs.nginx.service.consul;\n keepalive_timeout 70;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n ssl_protocols TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers \"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384\";\n ssl_certificate /etc/ssl/certs/nginx-cert.pem;\n ssl_certificate_key /etc/ssl/private/nginx-key.pem;\n location / {\n chunked_transfer_encoding off;\n proxy_connect_timeout 300;\n proxy_http_version 1.1;\n proxy_set_header Host $host:$server_port;\n proxy_set_header Connection \"\";\n proxy_pass http://storage/docs.fd.io/;\n server_name_in_redirect off;\n }\n }\n EOH\n destination = \"custom/docs.conf\"\n }\n\n # The service stanza instructs Nomad to register a service with Consul.\n #\n # For more information and examples on the \"task\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/service.html\n #\n service {\n name = \"nginx\"\n port = \"https\"\n tags = [ \"docs\", \"logs\" ]\n }\n\n # The \"resources\" stanza describes the requirements a task needs to\n # execute. Resource requirements include memory, network, cpu, and more.\n # This ensures the task will execute on a machine that contains enough\n # resource capacity.\n #\n # For more information and examples on the \"resources\" stanza, please see\n # the online documentation at:\n #\n # https://www.nomadproject.io/docs/job-specification/resources.html\n #\n resources {\n cpu = 1000\n memory = 1024\n network {\n mode = \"bridge\"\n port \"https\" {\n static = 443\n }\n }\n }\n }\n }\n}",
- "json": null,
- "modify_index": "5922474",
- "name": "prod-nginx",
- "namespace": "default",
- "policy_override": null,
- "purge_on_destroy": null,
- "region": "global",
- "task_groups": [
- {
- "count": 1,
- "meta": {},
- "name": "prod-group1-nginx",
- "task": [
- {
- "driver": "docker",
- "meta": {},
- "name": "prod-task1-nginx",
- "volume_mounts": []
- }
- ],
- "volumes": []
- }
- ],
- "type": "service"
- },
- "sensitive_attributes": [],
- "private": "bnVsbA==",
- "dependencies": [
- "module.nginx.data.template_file.nomad_job_nginx"
- ]
- }
- ]
- }
- ]
-}
diff --git a/terraform-ci-infra/1n_nmd/tools/artifacts.py b/terraform-ci-infra/1n_nmd/tools/artifacts.py
deleted file mode 100755
index 36bef7c5c6..0000000000
--- a/terraform-ci-infra/1n_nmd/tools/artifacts.py
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-"""Storage utilities library."""
-
-import argparse
-import gzip
-import os
-from mimetypes import MimeTypes
-
-from boto3 import resource
-from botocore.client import Config
-
-
-ENDPOINT_URL = u"http://storage.service.consul:9000"
-AWS_ACCESS_KEY_ID = u"storage"
-AWS_SECRET_ACCESS_KEY = u"Storage1234"
-REGION_NAME = u"yul1"
-COMPRESS_MIME = (
- u"text/html",
- u"text/xml",
- u"application/octet-stream"
-)
-
-
-def compress(src_fpath):
- """Compress a single file.
-
- :param src_fpath: Input file path.
- :type src_fpath: str
- """
- with open(src_fpath, u"rb") as orig_file:
- with gzip.open(f"{src_fpath}.gz", u"wb") as zipped_file:
- zipped_file.writelines(orig_file)
-
-
-def upload(storage, bucket, src_fpath, dst_fpath):
- """Upload single file to destination bucket.
-
- :param storage: S3 storage resource.
- :param bucket: S3 bucket name.
- :param src_fpath: Input file path.
- :param dst_fpath: Destination file path on remote storage.
- :type storage: Object
- :type bucket: str
- :type src_fpath: str
- :type dst_fpath: str
- """
- mime = MimeTypes().guess_type(src_fpath)[0]
- if not mime:
- mime = "application/octet-stream"
-
- if mime in COMPRESS_MIME and bucket in "logs":
- compress(src_fpath)
- src_fpath = f"{src_fpath}.gz"
- dst_fpath = f"{dst_fpath}.gz"
-
- storage.Bucket(f"{bucket}.fd.io").upload_file(
- src_fpath,
- dst_fpath,
- ExtraArgs={
- u"ContentType": mime
- }
- )
- print(f"https://{bucket}.nginx.service.consul/{dst_fpath}")
-
-
-def upload_recursive(storage, bucket, src_fpath):
- """Recursively uploads input folder to destination.
-
- Example:
- - bucket: logs
- - src_fpath: /home/user
- - dst_fpath: logs.fd.io/home/user
-
- :param storage: S3 storage resource.
- :param bucket: S3 bucket name.
- :param src_fpath: Input folder path.
- :type storage: Object
- :type bucket: str
- :type src_fpath: str
- """
- for path, _, files in os.walk(src_fpath):
- for file in files:
- _path = path.replace(src_fpath, u"")
- _dir = src_fpath[1:] if src_fpath[0] == "/" else src_fpath
- _dst_fpath = os.path.normpath(f"{_dir}/{_path}/{file}")
- _src_fpath = os.path.join(path, file)
- upload(storage, bucket, _src_fpath, _dst_fpath)
-
-
-def main():
- """Main function for storage manipulation."""
-
- parser = argparse.ArgumentParser()
- parser.add_argument(
- u"-d", u"--dir", required=True, type=str,
- help=u"Directory to upload to storage."
- )
- parser.add_argument(
- u"-b", u"--bucket", required=True, type=str,
- help=u"Target bucket on storage."
- )
- args = parser.parse_args()
-
- # Create main storage resource.
- storage = resource(
- u"s3",
- endpoint_url=ENDPOINT_URL,
- aws_access_key_id=AWS_ACCESS_KEY_ID,
- aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
- config=Config(
- signature_version=u"s3v4"
- ),
- region_name=REGION_NAME
- )
-
- upload_recursive(
- storage=storage,
- bucket=args.bucket,
- src_fpath=args.dir
- )
-
-
-if __name__ == u"__main__":
- main()
diff --git a/terraform-ci-infra/1n_nmd/variables.tf b/terraform-ci-infra/1n_nmd/variables.tf
deleted file mode 100644
index a575d0b51d..0000000000
--- a/terraform-ci-infra/1n_nmd/variables.tf
+++ /dev/null
@@ -1,11 +0,0 @@
-variable "nomad_provider_address" {
- description = "FD.io Nomad cluster address."
- type = string
- default = "http://nomad.service.consul:4646"
-}
-
-variable "nomad_acl" {
- description = "Nomad ACLs enabled/disabled"
- type = bool
- default = false
-} \ No newline at end of file
diff --git a/terraform-ci-infra/1n_nmd/vpp_device/prod_csit_shim.nomad b/terraform-ci-infra/1n_nmd/vpp_device/prod_csit_shim.nomad
deleted file mode 100644
index 328f503a0b..0000000000
--- a/terraform-ci-infra/1n_nmd/vpp_device/prod_csit_shim.nomad
+++ /dev/null
@@ -1,171 +0,0 @@
-job "prod-csit-shim" {
- # The "region" parameter specifies the region in which to execute the job.
- # If omitted, this inherits the default region name of "global".
- # region = "global"
- #
- # The "datacenters" parameter specifies the list of datacenters which should
- # be considered when placing this task. This must be provided.
- datacenters = [ "yul1" ]
-
- # The "type" parameter controls the type of job, which impacts the scheduler's
- # decision on placement. This configuration is optional and defaults to
- # "service". For a full list of job types and their differences, please see
- # the online documentation.
- #
- # For more information, please see the online documentation at:
- #
- # https://www.nomadproject.io/docs/jobspec/schedulers.html
- #
- type = "system"
-
- # The "group" stanza defines a series of tasks that should be co-located on
- # the same Nomad client. Any task within a group will be placed on the same
- # client.
- #
- # For more information and examples on the "group" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/group.html
- #
- group "prod-group1-csit-shim-amd" {
- # The "count" parameter specifies the number of the task groups that should
- # be running under this group. This value must be non-negative and defaults
- # to 1.
- count = 1
-
- constraint {
- attribute = "${node.class}"
- value = "csit"
- }
-
- restart {
- interval = "1m"
- attempts = 3
- delay = "15s"
- mode = "delay"
- }
-
- # The "task" stanza creates an individual unit of work, such as a Docker
- # container, web application, or batch processing.
- #
- # For more information and examples on the "task" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/task.html
- #
- task "prod-task1-csit-shim-amd" {
- # The "driver" parameter specifies the task driver that should be used to
- # run the task.
- driver = "docker"
-
- # The "config" stanza specifies the driver configuration, which is passed
- # directly to the driver to start the task. The details of configurations
- # are specific to each driver, so please see specific driver
- # documentation for more information.
- config {
- image = "csit_shim-ubuntu1804:local"
- network_mode = "host"
- pid_mode = "host"
- volumes = [
- "/var/run/docker.sock:/var/run/docker.sock"
- ]
- privileged = true
- }
-
- # The "resources" stanza describes the requirements a task needs to
- # execute. Resource requirements include memory, network, cpu, and more.
- # This ensures the task will execute on a machine that contains enough
- # resource capacity.
- #
- # For more information and examples on the "resources" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/resources.html
- #
- resources {
- cpu = 100
- memory = 128
- network {
- mbits = 10
- port "ssh" {
- static = 6022
- }
- port "ssh2" {
- static = 6023
- }
- }
- }
- }
- }
-
- group "prod-group1-csit-shim-arm" {
- # The "count" parameter specifies the number of the task groups that should
- # be running under this group. This value must be non-negative and defaults
- # to 1.
- count = 1
-
- constraint {
- attribute = "${node.class}"
- value = "csitarm"
- }
-
- restart {
- interval = "1m"
- attempts = 3
- delay = "15s"
- mode = "delay"
- }
-
- # The "task" stanza creates an individual unit of work, such as a Docker
- # container, web application, or batch processing.
- #
- # For more information and examples on the "task" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/task.html
- #
- task "prod-task1-csit-shim-arm" {
- # The "driver" parameter specifies the task driver that should be used to
- # run the task.
- driver = "docker"
-
- # The "config" stanza specifies the driver configuration, which is passed
- # directly to the driver to start the task. The details of configurations
- # are specific to each driver, so please see specific driver
- # documentation for more information.
- config {
- image = "csit_shim-ubuntu1804:local"
- network_mode = "host"
- pid_mode = "host"
- volumes = [
- "/var/run/docker.sock:/var/run/docker.sock"
- ]
- privileged = true
- }
-
- # The "resources" stanza describes the requirements a task needs to
- # execute. Resource requirements include memory, network, cpu, and more.
- # This ensures the task will execute on a machine that contains enough
- # resource capacity.
- #
- # For more information and examples on the "resources" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/resources.html
- #
- resources {
- cpu = 100
- memory = 128
- network {
- mbits = 10
- port "ssh" {
- static = 6022
- }
- port "ssh2" {
- static = 6023
- }
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/terraform-ci-infra/1n_nmd/vpp_device/resources.tf b/terraform-ci-infra/1n_nmd/vpp_device/resources.tf
deleted file mode 100644
index dace9094f2..0000000000
--- a/terraform-ci-infra/1n_nmd/vpp_device/resources.tf
+++ /dev/null
@@ -1,4 +0,0 @@
-resource "nomad_job" "prod_csit_shim" {
- provider = nomad
- jobspec = file("${path.module}/prod_csit_shim.nomad")
-} \ No newline at end of file
diff --git a/terraform-ci-infra/2n_aws_c5n/.gitignore b/terraform-ci-infra/2n_aws_c5n/.gitignore
deleted file mode 100644
index fc64f0039f..0000000000
--- a/terraform-ci-infra/2n_aws_c5n/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.terraform/
-.terraform.tfstate.lock.info
-terraform.tfstate
-terraform.tfstate.backup
diff --git a/terraform-ci-infra/2n_aws_c5n/main.tf b/terraform-ci-infra/2n_aws_c5n/main.tf
deleted file mode 100644
index c0da7a487e..0000000000
--- a/terraform-ci-infra/2n_aws_c5n/main.tf
+++ /dev/null
@@ -1,304 +0,0 @@
-provider "aws" {
- region = "eu-central-1"
-}
-
-variable "avail_zone" {
- type = string
- default = "eu-central-1a"
-}
-# Base VPC CIDRs
-variable "vpc_cidr_mgmt" {
- type = string
- default = "192.168.0.0/24"
-}
-variable "vpc_cidr_b" {
- type = string
- default = "192.168.10.0/24"
-}
-variable "vpc_cidr_c" {
- type = string
- default = "200.0.0.0/24"
-}
-variable "vpc_cidr_d" {
- type = string
- default = "192.168.20.0/24"
-}
-
-# Trex Dummy CIDRs
-variable "trex_dummy_cidr_port_0" {
- type = string
- default = "10.0.0.0/24"
-}
-variable "trex_dummy_cidr_port_1" {
- type = string
- default = "20.0.0.0/24"
-}
-
-# IPs
-variable "tg_if1_ip" {
- type = string
- default = "192.168.10.254"
-}
-variable "tg_if2_ip" {
- type = string
- default = "192.168.20.254"
-}
-variable "dut1_if1_ip" {
- type = string
- default = "192.168.10.11"
-}
-variable "dut1_if2_ip" {
- type = string
- default = "192.168.20.11"
-}
-variable "tg_mgmt_ip" {
- type = string
- default = "192.168.0.10"
-}
-variable "dut1_mgmt_ip" {
- type = string
- default = "192.168.0.11"
-}
-
-# Instance Type
-variable "instance_type" {
- type = string
- default = "c5n.2xlarge"
-}
-
-resource "aws_vpc" "CSIT" {
- cidr_block = var.vpc_cidr_mgmt
-}
-
-resource "aws_security_group" "CSIT" {
- name = "CSIT"
- description = "Allow inbound traffic"
- vpc_id = aws_vpc.CSIT.id
-
- ingress {
- from_port = 22
- to_port = 22
- protocol = "tcp"
- cidr_blocks = ["0.0.0.0/0"]
- }
-
- ingress {
- from_port = 0
- to_port = 0
- protocol = -1
- self = true
- }
-
- egress {
- from_port = 0
- to_port = 0
- protocol = "-1"
- cidr_blocks = ["0.0.0.0/0"]
- }
-
- depends_on = [aws_vpc.CSIT]
-}
-
-resource "aws_vpc_ipv4_cidr_block_association" "b" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_b
- depends_on = [aws_vpc.CSIT]
-}
-resource "aws_vpc_ipv4_cidr_block_association" "c" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_c
- depends_on = [aws_vpc.CSIT]
-}
-resource "aws_vpc_ipv4_cidr_block_association" "d" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_d
- depends_on = [aws_vpc.CSIT]
-}
-
-resource "aws_subnet" "mgmt" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_mgmt
- availability_zone = var.avail_zone
- depends_on = [aws_vpc.CSIT]
-}
-
-resource "aws_subnet" "b" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_b
- availability_zone = var.avail_zone
- depends_on = [aws_vpc.CSIT, aws_vpc_ipv4_cidr_block_association.b]
-}
-
-resource "aws_subnet" "c" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_c
- availability_zone = var.avail_zone
- depends_on = [aws_vpc.CSIT, aws_vpc_ipv4_cidr_block_association.c]
-}
-
-resource "aws_subnet" "d" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_d
- availability_zone = var.avail_zone
- depends_on = [aws_vpc.CSIT, aws_vpc_ipv4_cidr_block_association.d]
-}
-
-resource "aws_internet_gateway" "CSIT" {
- vpc_id = aws_vpc.CSIT.id
- depends_on = [aws_vpc.CSIT]
-}
-
-resource "aws_key_pair" "CSIT" {
- key_name = "CSIT"
- public_key = file("~/.ssh/id_rsa.pub")
-}
-
-data "aws_ami" "ubuntu" {
- most_recent = true
-
- filter {
- name = "name"
- values = ["*hvm-ssd/ubuntu-bionic-18.04-amd64*"]
- }
-
- filter {
- name = "virtualization-type"
- values = ["hvm"]
- }
-
- owners = ["099720109477"] # Canonical
-}
-
-resource "aws_placement_group" "CSIT" {
- name = "CSIT"
- strategy = "cluster"
-}
-
-resource "aws_instance" "tg" {
- ami = data.aws_ami.ubuntu.id
- instance_type = var.instance_type
-# cpu_threads_per_core = 1
-# cpu_core_count = 18
- key_name = aws_key_pair.CSIT.key_name
- associate_public_ip_address = true
- subnet_id = aws_subnet.mgmt.id
- root_block_device {
- volume_size = 50
- }
- private_ip = var.tg_mgmt_ip
- vpc_security_group_ids = [aws_security_group.CSIT.id]
- depends_on = [aws_vpc.CSIT, aws_placement_group.CSIT]
- placement_group = aws_placement_group.CSIT.id
- source_dest_check = false
-}
-
-resource "aws_instance" "dut1" {
- ami = data.aws_ami.ubuntu.id
-# cpu_threads_per_core = 1
-# cpu_core_count = 18
- instance_type = var.instance_type
- key_name = aws_key_pair.CSIT.key_name
- associate_public_ip_address = true
- subnet_id = aws_subnet.mgmt.id
- root_block_device {
- volume_size = 50
- }
- private_ip = var.dut1_mgmt_ip
- vpc_security_group_ids = [aws_security_group.CSIT.id]
- depends_on = [aws_vpc.CSIT, aws_placement_group.CSIT]
- placement_group = aws_placement_group.CSIT.id
- source_dest_check = false
-}
-
-resource "aws_route" "CSIT-igw" {
- route_table_id = aws_vpc.CSIT.main_route_table_id
- gateway_id = aws_internet_gateway.CSIT.id
- destination_cidr_block = "0.0.0.0/0"
- depends_on = [aws_vpc.CSIT, aws_internet_gateway.CSIT]
-}
-resource "aws_route" "dummy-trex-port-0" {
- route_table_id = aws_vpc.CSIT.main_route_table_id
- network_interface_id = aws_instance.tg.primary_network_interface_id
- destination_cidr_block = var.trex_dummy_cidr_port_0
- depends_on = [aws_vpc.CSIT, aws_instance.dut1]
-}
-resource "aws_route" "dummy-trex-port-1" {
- route_table_id = aws_vpc.CSIT.main_route_table_id
- network_interface_id = aws_instance.tg.primary_network_interface_id
- destination_cidr_block = var.trex_dummy_cidr_port_1
- depends_on = [aws_vpc.CSIT, aws_instance.dut1]
-}
-
-resource "null_resource" "deploy_tg" {
- depends_on = [ aws_instance.tg ]
- connection {
- user = "ubuntu"
- host = aws_instance.tg.public_ip
- private_key = file("~/.ssh/id_rsa")
- }
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/site_aws.yaml"
- force_handlers = true
- }
- hosts = ["tg"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- aws = true
- }
- }
- }
-}
-resource "null_resource" "deploy_dut1" {
- depends_on = [ aws_instance.dut1 ]
- connection {
- user = "ubuntu"
- host = aws_instance.dut1.public_ip
- private_key = file("~/.ssh/id_rsa")
- }
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/site_aws.yaml"
- force_handlers = true
- }
- hosts = ["sut"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- aws = true
- }
- }
- }
-}
-
-resource "null_resource" "deploy_topology" {
- depends_on = [ aws_instance.tg, aws_instance.dut1 ]
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/cloud_topology.yaml"
- }
- hosts = ["local"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- cloud_topology = "2n_aws_c5n"
- tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
- tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
- dut1_if1_mac = data.aws_network_interface.dut1_if1.mac_address
- dut1_if2_mac = data.aws_network_interface.dut1_if2.mac_address
- tg_public_ip = aws_instance.tg.public_ip
- dut1_public_ip = aws_instance.dut1.public_ip
- }
- }
- }
-}
-
-output "dbg_tg" {
- value = "TG IP: ${aws_instance.tg.public_ip}"
-}
-
-output "dbg_dut1" {
- value = "DUT1 IP: ${aws_instance.dut1.public_ip}"
-}
-
diff --git a/terraform-ci-infra/2n_aws_c5n/nic.tf b/terraform-ci-infra/2n_aws_c5n/nic.tf
deleted file mode 100644
index b0a54e9b98..0000000000
--- a/terraform-ci-infra/2n_aws_c5n/nic.tf
+++ /dev/null
@@ -1,67 +0,0 @@
-resource "aws_network_interface" "dut1_if1" {
- subnet_id = aws_subnet.b.id
- source_dest_check = false
- private_ip = var.dut1_if1_ip
- private_ips = [var.dut1_if1_ip]
- security_groups = [aws_security_group.CSIT.id]
- attachment {
- instance = aws_instance.dut1.id
- device_index = 1
- }
- depends_on = [aws_vpc.CSIT, aws_subnet.b]
-}
-
-data "aws_network_interface" "dut1_if1" {
- id = aws_network_interface.dut1_if1.id
-}
-
-resource "aws_network_interface" "dut1_if2" {
- subnet_id = aws_subnet.d.id
- source_dest_check = false
- private_ip = var.dut1_if2_ip
- private_ips = [var.dut1_if2_ip]
- security_groups = [aws_security_group.CSIT.id]
- attachment {
- instance = aws_instance.dut1.id
- device_index = 2
- }
- depends_on = [aws_vpc.CSIT]
-}
-
-data "aws_network_interface" "dut1_if2" {
- id = aws_network_interface.dut1_if2.id
-}
-
-resource "aws_network_interface" "tg_if1" {
- subnet_id = aws_subnet.b.id
- source_dest_check = false
- private_ip = var.tg_if1_ip
- private_ips = [var.tg_if1_ip]
- security_groups = [aws_security_group.CSIT.id]
- attachment {
- instance = aws_instance.tg.id
- device_index = 1
- }
- depends_on = [aws_vpc.CSIT, aws_subnet.b]
-}
-
-data "aws_network_interface" "tg_if1" {
- id = aws_network_interface.tg_if1.id
-}
-
-resource "aws_network_interface" "tg_if2" {
- subnet_id = aws_subnet.d.id
- source_dest_check = false
- private_ip = var.tg_if2_ip
- private_ips = [var.tg_if2_ip]
- security_groups = [aws_security_group.CSIT.id]
- attachment {
- instance = aws_instance.tg.id
- device_index = 2
- }
- depends_on = [aws_vpc.CSIT, aws_subnet.d]
-}
-
-data "aws_network_interface" "tg_if2" {
- id = aws_network_interface.tg_if2.id
-}
diff --git a/terraform-ci-infra/3n_aws_c5n/.gitignore b/terraform-ci-infra/3n_aws_c5n/.gitignore
deleted file mode 100644
index fc64f0039f..0000000000
--- a/terraform-ci-infra/3n_aws_c5n/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.terraform/
-.terraform.tfstate.lock.info
-terraform.tfstate
-terraform.tfstate.backup
diff --git a/terraform-ci-infra/3n_aws_c5n/main.tf b/terraform-ci-infra/3n_aws_c5n/main.tf
deleted file mode 100644
index 9ba2b19abe..0000000000
--- a/terraform-ci-infra/3n_aws_c5n/main.tf
+++ /dev/null
@@ -1,361 +0,0 @@
-provider "aws" {
- region = "eu-central-1"
-}
-
-variable "avail_zone" {
- type = string
- default = "eu-central-1a"
-}
-# Base VPC CIDRs
-variable "vpc_cidr_mgmt" {
- type = string
- default = "192.168.0.0/24"
-}
-variable "vpc_cidr_b" {
- type = string
- default = "192.168.10.0/24"
-}
-variable "vpc_cidr_c" {
- type = string
- default = "200.0.0.0/24"
-}
-variable "vpc_cidr_d" {
- type = string
- default = "192.168.20.0/24"
-}
-
-# Trex Dummy CIDRs
-variable "trex_dummy_cidr_port_0" {
- type = string
- default = "10.0.0.0/24"
-}
-variable "trex_dummy_cidr_port_1" {
- type = string
- default = "20.0.0.0/24"
-}
-
-# IPs
-variable "tg_if1_ip" {
- type = string
- default = "192.168.10.254"
-}
-variable "tg_if2_ip" {
- type = string
- default = "192.168.20.254"
-}
-variable "dut1_if1_ip" {
- type = string
- default = "192.168.10.11"
-}
-variable "dut1_if2_ip" {
- type = string
- default = "200.0.0.101"
-}
-variable "dut2_if1_ip" {
- type = string
- default = "200.0.0.102"
-}
-variable "dut2_if2_ip" {
- type = string
- default = "192.168.20.11"
-}
-variable "tg_mgmt_ip" {
- type = string
- default = "192.168.0.10"
-}
-variable "dut1_mgmt_ip" {
- type = string
- default = "192.168.0.11"
-}
-variable "dut2_mgmt_ip" {
- type = string
- default = "192.168.0.12"
-}
-
-# Instance Type
-variable "instance_type" {
- type = string
- default = "c5n.9xlarge"
-}
-
-resource "aws_vpc" "CSIT" {
- cidr_block = var.vpc_cidr_mgmt
-}
-
-resource "aws_security_group" "CSIT" {
- name = "CSIT"
- description = "Allow inbound traffic"
- vpc_id = aws_vpc.CSIT.id
-
- ingress {
- from_port = 22
- to_port = 22
- protocol = "tcp"
- cidr_blocks = ["0.0.0.0/0"]
- }
-
- ingress {
- from_port = 0
- to_port = 0
- protocol = -1
- self = true
- }
-
- egress {
- from_port = 0
- to_port = 0
- protocol = "-1"
- cidr_blocks = ["0.0.0.0/0"]
- }
-
- depends_on = [aws_vpc.CSIT]
-}
-
-resource "aws_vpc_ipv4_cidr_block_association" "b" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_b
- depends_on = [aws_vpc.CSIT]
-}
-resource "aws_vpc_ipv4_cidr_block_association" "c" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_c
- depends_on = [aws_vpc.CSIT]
-}
-resource "aws_vpc_ipv4_cidr_block_association" "d" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_d
- depends_on = [aws_vpc.CSIT]
-}
-
-resource "aws_subnet" "mgmt" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_mgmt
- availability_zone = var.avail_zone
- depends_on = [aws_vpc.CSIT]
-}
-
-resource "aws_subnet" "b" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_b
- availability_zone = var.avail_zone
- depends_on = [aws_vpc.CSIT, aws_vpc_ipv4_cidr_block_association.b]
-}
-
-resource "aws_subnet" "c" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_c
- availability_zone = var.avail_zone
- depends_on = [aws_vpc.CSIT, aws_vpc_ipv4_cidr_block_association.c]
-}
-
-resource "aws_subnet" "d" {
- vpc_id = aws_vpc.CSIT.id
- cidr_block = var.vpc_cidr_d
- availability_zone = var.avail_zone
- depends_on = [aws_vpc.CSIT, aws_vpc_ipv4_cidr_block_association.d]
-}
-
-resource "aws_internet_gateway" "CSIT" {
- vpc_id = aws_vpc.CSIT.id
- depends_on = [aws_vpc.CSIT]
-}
-
-resource "aws_key_pair" "CSIT" {
- key_name = "CSIT"
- public_key = file("~/.ssh/id_rsa.pub")
-}
-
-data "aws_ami" "ubuntu" {
- most_recent = true
-
- filter {
- name = "name"
- values = ["*hvm-ssd/ubuntu-bionic-18.04-amd64*"]
- }
-
- filter {
- name = "virtualization-type"
- values = ["hvm"]
- }
-
- owners = ["099720109477"] # Canonical
-}
-
-resource "aws_placement_group" "CSIT" {
- name = "CSIT"
- strategy = "cluster"
-}
-
-resource "aws_instance" "tg" {
- ami = data.aws_ami.ubuntu.id
- instance_type = var.instance_type
-# cpu_threads_per_core = 1
-# cpu_core_count = 18
- key_name = aws_key_pair.CSIT.key_name
- associate_public_ip_address = true
- subnet_id = aws_subnet.mgmt.id
- root_block_device {
- volume_size = 50
- }
- private_ip = var.tg_mgmt_ip
- vpc_security_group_ids = [aws_security_group.CSIT.id]
- depends_on = [aws_vpc.CSIT, aws_placement_group.CSIT]
- placement_group = aws_placement_group.CSIT.id
- source_dest_check = false
-}
-
-resource "aws_instance" "dut1" {
- ami = data.aws_ami.ubuntu.id
-# cpu_threads_per_core = 1
-# cpu_core_count = 18
- instance_type = var.instance_type
- key_name = aws_key_pair.CSIT.key_name
- associate_public_ip_address = true
- subnet_id = aws_subnet.mgmt.id
- root_block_device {
- volume_size = 50
- }
- private_ip = var.dut1_mgmt_ip
- vpc_security_group_ids = [aws_security_group.CSIT.id]
- depends_on = [aws_vpc.CSIT, aws_placement_group.CSIT]
- placement_group = aws_placement_group.CSIT.id
- source_dest_check = false
-}
-
-resource "aws_instance" "dut2" {
- ami = data.aws_ami.ubuntu.id
-# cpu_threads_per_core = 1
-# cpu_core_count = 18
- instance_type = var.instance_type
- key_name = aws_key_pair.CSIT.key_name
- associate_public_ip_address = true
- subnet_id = aws_subnet.mgmt.id
- root_block_device {
- volume_size = 50
- }
- private_ip = var.dut2_mgmt_ip
- vpc_security_group_ids = [aws_security_group.CSIT.id]
- depends_on = [aws_vpc.CSIT, aws_placement_group.CSIT]
- placement_group = aws_placement_group.CSIT.id
- source_dest_check = false
-}
-
-resource "aws_route" "CSIT-igw" {
- route_table_id = aws_vpc.CSIT.main_route_table_id
- gateway_id = aws_internet_gateway.CSIT.id
- destination_cidr_block = "0.0.0.0/0"
- depends_on = [aws_vpc.CSIT, aws_internet_gateway.CSIT]
-}
-resource "aws_route" "dummy-trex-port-0" {
- route_table_id = aws_vpc.CSIT.main_route_table_id
- network_interface_id = aws_instance.tg.primary_network_interface_id
- destination_cidr_block = var.trex_dummy_cidr_port_0
- depends_on = [aws_vpc.CSIT, aws_instance.dut1]
-}
-resource "aws_route" "dummy-trex-port-1" {
- route_table_id = aws_vpc.CSIT.main_route_table_id
- network_interface_id = aws_instance.tg.primary_network_interface_id
- destination_cidr_block = var.trex_dummy_cidr_port_1
- depends_on = [aws_vpc.CSIT, aws_instance.dut2]
-}
-
-resource "null_resource" "deploy_tg" {
- depends_on = [ aws_instance.tg ]
- connection {
- user = "ubuntu"
- host = aws_instance.tg.public_ip
- private_key = file("~/.ssh/id_rsa")
- }
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/site_aws.yaml"
- force_handlers = true
- }
- hosts = ["tg"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- aws = true
- }
- }
- }
-}
-resource "null_resource" "deploy_dut1" {
- depends_on = [ aws_instance.dut1 ]
- connection {
- user = "ubuntu"
- host = aws_instance.dut1.public_ip
- private_key = file("~/.ssh/id_rsa")
- }
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/site_aws.yaml"
- force_handlers = true
- }
- hosts = ["sut"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- aws = true
- }
- }
- }
-}
-resource "null_resource" "deploy_dut2" {
- depends_on = [ aws_instance.dut2 ]
- connection {
- user = "ubuntu"
- host = aws_instance.dut2.public_ip
- private_key = file("~/.ssh/id_rsa")
- }
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/site_aws.yaml"
- force_handlers = true
- }
- hosts = ["sut"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- aws = true
- }
- }
- }
-}
-
-resource "null_resource" "deploy_topology" {
- depends_on = [ aws_instance.tg, aws_instance.dut1, aws_instance.dut2 ]
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/cloud_topology.yaml"
- }
- hosts = ["local"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- cloud_topology = "3n_aws_c5n"
- tg_if1_mac = data.aws_network_interface.tg_if1.mac_address
- tg_if2_mac = data.aws_network_interface.tg_if2.mac_address
- dut1_if1_mac = data.aws_network_interface.dut1_if1.mac_address
- dut1_if2_mac = data.aws_network_interface.dut1_if2.mac_address
- dut2_if1_mac = data.aws_network_interface.dut2_if1.mac_address
- dut2_if2_mac = data.aws_network_interface.dut2_if2.mac_address
- tg_public_ip = aws_instance.tg.public_ip
- dut1_public_ip = aws_instance.dut1.public_ip
- dut2_public_ip = aws_instance.dut2.public_ip
- }
- }
- }
-}
-
-output "dbg_tg" {
- value = "TG IP: ${aws_instance.tg.public_ip}"
-}
-
-output "dbg_dut1" {
- value = "DUT1 IP: ${aws_instance.dut1.public_ip}"
-}
-
-output "dbg_dut2" {
- value = "DUT2 IP: ${aws_instance.dut2.public_ip}"
-}
diff --git a/terraform-ci-infra/3n_aws_c5n/nic.tf b/terraform-ci-infra/3n_aws_c5n/nic.tf
deleted file mode 100644
index 3efd74fc14..0000000000
--- a/terraform-ci-infra/3n_aws_c5n/nic.tf
+++ /dev/null
@@ -1,101 +0,0 @@
-resource "aws_network_interface" "dut1_if1" {
- subnet_id = aws_subnet.b.id
- source_dest_check = false
- private_ip = var.dut1_if1_ip
- private_ips = [var.dut1_if1_ip]
- security_groups = [aws_security_group.CSIT.id]
- attachment {
- instance = aws_instance.dut1.id
- device_index = 1
- }
- depends_on = [aws_vpc.CSIT, aws_subnet.b]
-}
-
-data "aws_network_interface" "dut1_if1" {
- id = aws_network_interface.dut1_if1.id
-}
-
-resource "aws_network_interface" "dut1_if2" {
- subnet_id = aws_subnet.c.id
- source_dest_check = false
- private_ip = var.dut1_if2_ip
- private_ips = [var.dut1_if2_ip]
- security_groups = [aws_security_group.CSIT.id]
- attachment {
- instance = aws_instance.dut1.id
- device_index = 2
- }
- depends_on = [aws_vpc.CSIT]
-}
-
-data "aws_network_interface" "dut1_if2" {
- id = aws_network_interface.dut1_if2.id
-}
-
-resource "aws_network_interface" "dut2_if1" {
- subnet_id = aws_subnet.c.id
- source_dest_check = false
- private_ip = var.dut2_if1_ip
- private_ips = [var.dut2_if1_ip]
- security_groups = [aws_security_group.CSIT.id]
- attachment {
- instance = aws_instance.dut2.id
- device_index = 1
- }
- depends_on = [aws_vpc.CSIT, aws_subnet.c]
-}
-
-data "aws_network_interface" "dut2_if1" {
- id = aws_network_interface.dut2_if1.id
-}
-
-resource "aws_network_interface" "dut2_if2" {
- subnet_id = aws_subnet.d.id
- source_dest_check = false
- private_ip = var.dut2_if2_ip
- private_ips = [var.dut2_if2_ip]
- security_groups = [aws_security_group.CSIT.id]
- attachment {
- instance = aws_instance.dut2.id
- device_index = 2
- }
- depends_on = [aws_vpc.CSIT, aws_subnet.d]
-}
-
-data "aws_network_interface" "dut2_if2" {
- id = aws_network_interface.dut2_if2.id
-}
-
-resource "aws_network_interface" "tg_if1" {
- subnet_id = aws_subnet.b.id
- source_dest_check = false
- private_ip = var.tg_if1_ip
- private_ips = [var.tg_if1_ip]
- security_groups = [aws_security_group.CSIT.id]
- attachment {
- instance = aws_instance.tg.id
- device_index = 1
- }
- depends_on = [aws_vpc.CSIT, aws_subnet.b]
-}
-
-data "aws_network_interface" "tg_if1" {
- id = aws_network_interface.tg_if1.id
-}
-
-resource "aws_network_interface" "tg_if2" {
- subnet_id = aws_subnet.d.id
- source_dest_check = false
- private_ip = var.tg_if2_ip
- private_ips = [var.tg_if2_ip]
- security_groups = [aws_security_group.CSIT.id]
- attachment {
- instance = aws_instance.tg.id
- device_index = 2
- }
- depends_on = [aws_vpc.CSIT, aws_subnet.d]
-}
-
-data "aws_network_interface" "tg_if2" {
- id = aws_network_interface.tg_if2.id
-}
diff --git a/terraform-ci-infra/3n_azure_fsv2/.gitignore b/terraform-ci-infra/3n_azure_fsv2/.gitignore
deleted file mode 100644
index fc64f0039f..0000000000
--- a/terraform-ci-infra/3n_azure_fsv2/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.terraform/
-.terraform.tfstate.lock.info
-terraform.tfstate
-terraform.tfstate.backup
diff --git a/terraform-ci-infra/3n_azure_fsv2/main.tf b/terraform-ci-infra/3n_azure_fsv2/main.tf
deleted file mode 100644
index 9f6739e676..0000000000
--- a/terraform-ci-infra/3n_azure_fsv2/main.tf
+++ /dev/null
@@ -1,593 +0,0 @@
-provider "azurerm" {
- version = ">= 1.4.0"
-}
-
-# Variables
-
-variable "vpc_addr_space_a" {
- type = string
- default = "172.16.0.0/16"
-}
-
-variable "vpc_cidr_a" {
- type = string
- default = "172.16.0.0/24"
-}
-
-variable "vpc_cidr_b" {
- type = string
- default = "172.16.10.0/24"
-}
-
-variable "vpc_cidr_c" {
- type = string
- default = "172.16.200.0/24"
-}
-
-variable "vpc_cidr_d" {
- type = string
- default = "172.16.20.0/24"
-}
-
-variable "trex_dummy_cidr_port_0" {
- type = string
- default = "172.16.11.0/24"
-}
-
-variable "trex_dummy_cidr_port_1" {
- type = string
- default = "172.16.21.0/24"
-}
-
-# Create resource group and resources
-
-resource "azurerm_resource_group" "CSIT" {
- name = "CSIT"
- #location = "East US"
- location = "UK South"
-}
-
-resource "azurerm_virtual_network" "CSIT" {
- name = "CSIT-network"
- resource_group_name = azurerm_resource_group.CSIT.name
- location = azurerm_resource_group.CSIT.location
- address_space = [ var.vpc_addr_space_a ]
- depends_on = [ azurerm_resource_group.CSIT ]
-}
-
-resource "azurerm_subnet" "a" {
- name = "subnet_a"
- resource_group_name = azurerm_resource_group.CSIT.name
- virtual_network_name = azurerm_virtual_network.CSIT.name
- address_prefix = var.vpc_cidr_a
- depends_on = [ azurerm_resource_group.CSIT ]
-}
-
-resource "azurerm_subnet" "b" {
- name = "subnet_b"
- resource_group_name = azurerm_resource_group.CSIT.name
- virtual_network_name = azurerm_virtual_network.CSIT.name
- address_prefix = var.vpc_cidr_b
- depends_on = [ azurerm_resource_group.CSIT ]
-}
-
-resource "azurerm_subnet" "c" {
- name = "subnet_c"
- resource_group_name = azurerm_resource_group.CSIT.name
- virtual_network_name = azurerm_virtual_network.CSIT.name
- address_prefix = var.vpc_cidr_c
- depends_on = [ azurerm_resource_group.CSIT ]
-}
-
-resource "azurerm_subnet" "d" {
- name = "subnet_d"
- resource_group_name = azurerm_resource_group.CSIT.name
- virtual_network_name = azurerm_virtual_network.CSIT.name
- address_prefix = var.vpc_cidr_d
- depends_on = [ azurerm_resource_group.CSIT ]
-}
-
-# Create a security group of the Kiknos instances
-
-resource "azurerm_network_security_group" "CSIT" {
- name = "CSIT"
- resource_group_name = azurerm_resource_group.CSIT.name
- location = azurerm_resource_group.CSIT.location
- security_rule {
- name = "IpSec"
- priority = 100
- direction = "Inbound"
- access = "Allow"
- protocol = "Udp"
- source_port_range = "*"
- destination_port_range = "500"
- source_address_prefix = "*"
- destination_address_prefix = "*"
- }
- security_rule {
- name = "IpSec-NAT"
- priority = 101
- direction = "Inbound"
- access = "Allow"
- protocol = "Udp"
- source_port_range = "*"
- destination_port_range = "4500"
- source_address_prefix = "*"
- destination_address_prefix = "*"
- }
- security_rule {
- name = "SSH"
- priority = 102
- direction = "Inbound"
- access = "Allow"
- protocol = "Tcp"
- source_port_range = "*"
- destination_port_range = "22"
- source_address_prefix = "*"
- destination_address_prefix = "*"
- }
- security_rule {
- name = "InboundAll"
- priority = 103
- direction = "Inbound"
- access = "Allow"
- protocol = "*"
- source_port_range = "*"
- destination_port_range = "*"
- source_address_prefix = "*"
- destination_address_prefix = "*"
- }
- security_rule {
- name = "Outbound"
- priority = 104
- direction = "Outbound"
- access = "Allow"
- protocol = "*"
- source_port_range = "*"
- destination_port_range = "*"
- source_address_prefix = "*"
- destination_address_prefix = "*"
- }
- depends_on = [azurerm_virtual_network.CSIT]
-}
-
-# Create public IPs
-
-resource "azurerm_public_ip" "tg_public_ip" {
- name = "tg_public_ip"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- allocation_method = "Dynamic"
- depends_on = [ azurerm_resource_group.CSIT ]
-}
-
-resource "azurerm_public_ip" "dut1_public_ip" {
- name = "dut1_public_ip"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- allocation_method = "Dynamic"
- depends_on = [ azurerm_resource_group.CSIT ]
-}
-
-resource "azurerm_public_ip" "dut2_public_ip" {
- name = "dut2_public_ip"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- allocation_method = "Dynamic"
- depends_on = [ azurerm_resource_group.CSIT ]
-}
-
-# Create network interface
-
-resource "azurerm_network_interface" "tg_mng" {
- name = "tg_mng"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- network_security_group_id = azurerm_network_security_group.CSIT.id
- ip_configuration {
- primary = "true"
- name = "tg_mng_ip"
- subnet_id = azurerm_subnet.a.id
- private_ip_address_allocation = "Static"
- private_ip_address = "172.16.0.10"
- public_ip_address_id = azurerm_public_ip.tg_public_ip.id
- }
- depends_on = [ azurerm_resource_group.CSIT,
- azurerm_subnet.a,
- azurerm_public_ip.tg_public_ip ]
-}
-
-resource "azurerm_network_interface" "dut1_mng" {
- name = "dut1_mng"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- network_security_group_id = azurerm_network_security_group.CSIT.id
- ip_configuration {
- primary = "true"
- name = "dut1_mng_ip"
- subnet_id = azurerm_subnet.a.id
- private_ip_address_allocation = "Static"
- private_ip_address = "172.16.0.11"
- public_ip_address_id = azurerm_public_ip.dut1_public_ip.id
- }
- depends_on = [ azurerm_resource_group.CSIT,
- azurerm_subnet.a,
- azurerm_public_ip.dut1_public_ip ]
-}
-
-resource "azurerm_network_interface" "dut2_mng" {
- name = "dut2_mng"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- network_security_group_id = azurerm_network_security_group.CSIT.id
- ip_configuration {
- primary = "true"
- name = "dut2_mng_ip"
- subnet_id = azurerm_subnet.a.id
- private_ip_address_allocation = "Static"
- private_ip_address = "172.16.0.12"
- public_ip_address_id = azurerm_public_ip.dut2_public_ip.id
- }
- depends_on = [ azurerm_resource_group.CSIT,
- azurerm_subnet.a,
- azurerm_public_ip.dut2_public_ip ]
-}
-
-resource "azurerm_route_table" "b" {
- name = "b"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_resource_group.CSIT,
- azurerm_subnet.b ]
- disable_bgp_route_propagation = false
- route {
- name = "route-10"
- address_prefix = var.trex_dummy_cidr_port_0
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.tg_if1.private_ip_address
- }
- route {
- name = "route-20"
- address_prefix = var.trex_dummy_cidr_port_1
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.dut1_if1.private_ip_address
- }
- route {
- name = "tg2"
- address_prefix = var.vpc_cidr_d
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.dut1_if1.private_ip_address
- }
-}
-
-resource "azurerm_route_table" "c" {
- name = "c"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_resource_group.CSIT,
- azurerm_subnet.c ]
- disable_bgp_route_propagation = false
- route {
- name = "route-10"
- address_prefix = var.trex_dummy_cidr_port_0
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.dut1_if2.private_ip_address
- }
- route {
- name = "route-100"
- address_prefix = "100.0.0.0/8"
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.dut1_if2.private_ip_address
- }
- route {
- name = "route-20"
- address_prefix = var.trex_dummy_cidr_port_1
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.dut2_if1.private_ip_address
- }
- route {
- name = "tg1"
- address_prefix = var.vpc_cidr_b
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.dut1_if2.private_ip_address
- }
- route {
- name = "tg2"
- address_prefix = var.vpc_cidr_d
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.dut2_if1.private_ip_address
- }
-}
-
-resource "azurerm_route_table" "d" {
- name = "d"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_resource_group.CSIT,
- azurerm_subnet.d ]
- disable_bgp_route_propagation = false
- route {
- name = "route-10"
- address_prefix = var.trex_dummy_cidr_port_0
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.dut2_if2.private_ip_address
- }
- route {
- name = "route-20"
- address_prefix = var.trex_dummy_cidr_port_1
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.tg_if2.private_ip_address
- }
- route {
- name = "tg1"
- address_prefix = var.vpc_cidr_b
- next_hop_type = "VirtualAppliance"
- next_hop_in_ip_address = data.azurerm_network_interface.dut2_if2.private_ip_address
- }
-}
-
-resource "azurerm_subnet_route_table_association" "b" {
- subnet_id = azurerm_subnet.b.id
- route_table_id = azurerm_route_table.b.id
-}
-
-resource "azurerm_subnet_route_table_association" "c" {
- subnet_id = azurerm_subnet.c.id
- route_table_id = azurerm_route_table.c.id
-}
-
-resource "azurerm_subnet_route_table_association" "d" {
- subnet_id = azurerm_subnet.d.id
- route_table_id = azurerm_route_table.d.id
-}
-
-resource "azurerm_virtual_machine" "tg" {
- name = "tg"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- primary_network_interface_id = azurerm_network_interface.tg_mng.id
- network_interface_ids = [ azurerm_network_interface.tg_mng.id,
- azurerm_network_interface.tg_if1.id,
- azurerm_network_interface.tg_if2.id ]
- vm_size = "Standard_F32s_v2"
- delete_os_disk_on_termination = true
- delete_data_disks_on_termination = true
- storage_os_disk {
- name = "OsDiskTG"
- caching = "ReadWrite"
- create_option = "FromImage"
- managed_disk_type = "StandardSSD_LRS"
- }
- storage_image_reference {
- publisher = "Canonical"
- offer = "UbuntuServer"
- sku = "18.04-LTS"
- version = "latest"
- }
- os_profile {
- computer_name = "tg"
- admin_username = "ubuntu"
- }
- os_profile_linux_config {
- disable_password_authentication = true
- ssh_keys {
- path = "/home/ubuntu/.ssh/authorized_keys"
- key_data = file("~/.ssh/id_rsa.pub")
- }
- }
- depends_on = [ azurerm_resource_group.CSIT,
- azurerm_network_interface.tg_mng ]
-}
-
-resource "azurerm_virtual_machine" "dut1" {
- name = "dut1"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- primary_network_interface_id = azurerm_network_interface.dut1_mng.id
- network_interface_ids = [ azurerm_network_interface.dut1_mng.id,
- azurerm_network_interface.dut1_if1.id,
- azurerm_network_interface.dut1_if2.id ]
- vm_size = "Standard_F32s_v2"
- delete_os_disk_on_termination = true
- delete_data_disks_on_termination = true
- storage_os_disk {
- name = "OsDiskDUT1"
- caching = "ReadWrite"
- create_option = "FromImage"
- managed_disk_type = "StandardSSD_LRS"
- }
- storage_image_reference {
- publisher = "Canonical"
- offer = "UbuntuServer"
- sku = "18.04-LTS"
- version = "latest"
- }
- os_profile {
- computer_name = "dut1"
- admin_username = "ubuntu"
- }
- os_profile_linux_config {
- disable_password_authentication = true
- ssh_keys {
- path = "/home/ubuntu/.ssh/authorized_keys"
- key_data = file("~/.ssh/id_rsa.pub")
- }
- }
- depends_on = [ azurerm_resource_group.CSIT,
- azurerm_network_interface.dut1_mng ]
-}
-
-resource "azurerm_virtual_machine" "dut2" {
- name = "dut2"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- primary_network_interface_id = azurerm_network_interface.dut2_mng.id
- network_interface_ids = [ azurerm_network_interface.dut2_mng.id,
- azurerm_network_interface.dut2_if1.id,
- azurerm_network_interface.dut2_if2.id ]
- vm_size = "Standard_F32s_v2"
- delete_os_disk_on_termination = true
- delete_data_disks_on_termination = true
- storage_os_disk {
- name = "OsDiskDUT2"
- caching = "ReadWrite"
- create_option = "FromImage"
- managed_disk_type = "StandardSSD_LRS"
- }
- storage_image_reference {
- publisher = "Canonical"
- offer = "UbuntuServer"
- sku = "18.04-LTS"
- version = "latest"
- }
- os_profile {
- computer_name = "dut2"
- admin_username = "ubuntu"
- }
- os_profile_linux_config {
- disable_password_authentication = true
- ssh_keys {
- path = "/home/ubuntu/.ssh/authorized_keys"
- key_data = file("~/.ssh/id_rsa.pub")
- }
- }
- depends_on = [ azurerm_resource_group.CSIT,
- azurerm_network_interface.dut2_mng ]
-}
-
-data "azurerm_public_ip" "tg_public_ip" {
- name = "tg_public_ip"
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_virtual_machine.tg ]
-}
-
-data "azurerm_public_ip" "dut1_public_ip" {
- name = "dut1_public_ip"
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_virtual_machine.dut1 ]
-}
-
-data "azurerm_public_ip" "dut2_public_ip" {
- name = "dut2_public_ip"
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_virtual_machine.dut2 ]
-}
-
-# Provisioning
-
-resource "null_resource" "deploy_tg" {
- depends_on = [ azurerm_virtual_machine.tg,
- azurerm_network_interface.tg_if1,
- azurerm_network_interface.tg_if2 ]
- connection {
- user = "ubuntu"
- host = data.azurerm_public_ip.tg_public_ip.ip_address
- private_key = file("~/.ssh/id_rsa")
- }
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/site_azure.yaml"
- force_handlers = true
- }
- hosts = ["tg"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- azure = true
- }
- }
- }
-}
-
-resource "null_resource" "deploy_dut1" {
- depends_on = [ azurerm_virtual_machine.dut1,
- azurerm_network_interface.dut1_if1,
- azurerm_network_interface.dut1_if2 ]
- connection {
- user = "ubuntu"
- host = data.azurerm_public_ip.dut1_public_ip.ip_address
- private_key = file("~/.ssh/id_rsa")
- }
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/site_azure.yaml"
- force_handlers = true
- }
- hosts = ["sut"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- azure = true
- }
- }
- }
-}
-
-resource "null_resource" "deploy_dut2" {
- depends_on = [ azurerm_virtual_machine.dut2,
- azurerm_network_interface.dut2_if1,
- azurerm_network_interface.dut2_if2 ]
- connection {
- user = "ubuntu"
- host = data.azurerm_public_ip.dut2_public_ip.ip_address
- private_key = file("~/.ssh/id_rsa")
- }
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/site_azure.yaml"
- force_handlers = true
- }
- hosts = ["sut"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- azure = true
- }
- }
- }
-}
-
-resource "null_resource" "deploy_topology" {
- depends_on = [ azurerm_virtual_machine.tg,
- azurerm_network_interface.tg_if1,
- azurerm_network_interface.tg_if2,
- azurerm_virtual_machine.dut1,
- azurerm_network_interface.dut1_if1,
- azurerm_network_interface.dut1_if2,
- azurerm_virtual_machine.dut2,
- azurerm_network_interface.dut2_if1,
- azurerm_network_interface.dut2_if2 ]
- provisioner "ansible" {
- plays {
- playbook {
- file_path = "../../testbed-setup/ansible/cloud_topology.yaml"
- }
- hosts = ["local"]
- extra_vars = {
- ansible_python_interpreter = "/usr/bin/python3"
- cloud_topology = "3n_azure_Fsv2"
- tg_if1_mac = data.azurerm_network_interface.tg_if1.mac_address
- tg_if2_mac = data.azurerm_network_interface.tg_if2.mac_address
- dut1_if1_mac = data.azurerm_network_interface.dut1_if1.mac_address
- dut1_if2_mac = data.azurerm_network_interface.dut1_if2.mac_address
- dut2_if1_mac = data.azurerm_network_interface.dut2_if1.mac_address
- dut2_if2_mac = data.azurerm_network_interface.dut2_if2.mac_address
- tg_public_ip = data.azurerm_public_ip.tg_public_ip.ip_address
- dut1_public_ip = data.azurerm_public_ip.dut1_public_ip.ip_address
- dut2_public_ip = data.azurerm_public_ip.dut2_public_ip.ip_address
- }
- }
- }
-}
-
-output "dbg_tg" {
- value = "TG IP: ${data.azurerm_public_ip.tg_public_ip.ip_address}"
-}
-
-output "dbg_dut1" {
- value = "DUT1 IP: ${data.azurerm_public_ip.dut1_public_ip.ip_address}"
-}
-
-output "dbg_dut2" {
- value = "DUT2 IP: ${data.azurerm_public_ip.dut2_public_ip.ip_address}"
-}
diff --git a/terraform-ci-infra/3n_azure_fsv2/nic.tf b/terraform-ci-infra/3n_azure_fsv2/nic.tf
deleted file mode 100644
index 51692593c6..0000000000
--- a/terraform-ci-infra/3n_azure_fsv2/nic.tf
+++ /dev/null
@@ -1,133 +0,0 @@
-# Create a network interface for the data-plane traffic
-
-resource "azurerm_network_interface" "dut1_if2" {
- name = "dut1_if2"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- network_security_group_id = azurerm_network_security_group.CSIT.id
- enable_ip_forwarding = "true"
- enable_accelerated_networking = "true"
-
- ip_configuration {
- name = "dut1_if2"
- subnet_id = azurerm_subnet.c.id
- private_ip_address_allocation = "Static"
- private_ip_address = "172.16.200.101"
- }
-}
-
-data "azurerm_network_interface" "dut1_if2" {
- name = "dut1_if2"
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_virtual_machine.dut1 ]
-}
-
-resource "azurerm_network_interface" "dut2_if1" {
- name = "dut2_if1"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- network_security_group_id = azurerm_network_security_group.CSIT.id
- enable_ip_forwarding = "true"
- enable_accelerated_networking = "true"
-
- ip_configuration {
- name = "dut2_if1"
- subnet_id = azurerm_subnet.c.id
- private_ip_address_allocation = "Static"
- private_ip_address = "172.16.200.102"
- }
-}
-
-data "azurerm_network_interface" "dut2_if1" {
- name = "dut2_if1"
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_virtual_machine.dut2 ]
-}
-
-resource "azurerm_network_interface" "dut1_if1" {
- name = "dut1_if1"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- network_security_group_id = azurerm_network_security_group.CSIT.id
- enable_ip_forwarding = "true"
- enable_accelerated_networking = "true"
-
- ip_configuration {
- name = "dut1_if1"
- subnet_id = azurerm_subnet.b.id
- private_ip_address_allocation = "Static"
- private_ip_address = "172.16.10.11"
- }
-}
-
-data "azurerm_network_interface" "dut1_if1" {
- name = "dut1_if1"
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_virtual_machine.dut1 ]
-}
-
-resource "azurerm_network_interface" "dut2_if2" {
- name = "dut2_if2"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- network_security_group_id = azurerm_network_security_group.CSIT.id
- enable_ip_forwarding = "true"
- enable_accelerated_networking = "true"
-
- ip_configuration {
- name = "dut2_if2"
- subnet_id = azurerm_subnet.d.id
- private_ip_address_allocation = "Static"
- private_ip_address = "172.16.20.11"
- }
-}
-
-data "azurerm_network_interface" "dut2_if2" {
- name = "dut2_if2"
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_virtual_machine.dut2 ]
-}
-
-resource "azurerm_network_interface" "tg_if1" {
- name = "tg_if1"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- network_security_group_id = azurerm_network_security_group.CSIT.id
- enable_ip_forwarding = "true"
- enable_accelerated_networking = "true"
-
- ip_configuration {
- name = "tg1"
- subnet_id = azurerm_subnet.b.id
- private_ip_address_allocation = "Static"
- private_ip_address = "172.16.10.250"
- }
-}
-
-data "azurerm_network_interface" "tg_if1" {
- name = "tg_if1"
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_virtual_machine.tg ]
-}
-
-resource "azurerm_network_interface" "tg_if2" {
- name = "tg_if2"
- location = azurerm_resource_group.CSIT.location
- resource_group_name = azurerm_resource_group.CSIT.name
- network_security_group_id = azurerm_network_security_group.CSIT.id
- enable_ip_forwarding = "true"
- enable_accelerated_networking = "true"
-
- ip_configuration {
- name = "tg2"
- subnet_id = azurerm_subnet.d.id
- private_ip_address_allocation = "Static"
- private_ip_address = "172.16.20.250"
- }
-}
-
-data "azurerm_network_interface" "tg_if2" {
- name = "tg_if2"
- resource_group_name = azurerm_resource_group.CSIT.name
- depends_on = [ azurerm_virtual_machine.tg ]
-}
diff --git a/tests/__init__.robot b/tests/__init__.robot
new file mode 100644
index 0000000000..b610a511a2
--- /dev/null
+++ b/tests/__init__.robot
@@ -0,0 +1,37 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Library | resources.libraries.python.model.ExportJson
+|
+| Suite Setup | Global Suite Setup
+| Suite Teardown | Global Suite Teardown
+
+*** Keywords ***
+| Global Suite Setup
+| | [Documentation]
+| | ... | Perform initializations needed for any subsequent suite.
+| | ... | Currently only a minimal JSON export of time.
+| |
+| | Start Suite Setup Export
+| | # Nothing explicit here, implicitly a place to find global start timestamp.
+| | Finalize Suite Setup Export
+
+| Global Suite Teardown
+| | [Documentation]
+| | ... | Perform cleanup needed after any preceding suite.
+| | ... | Currently only a minimal JSON export of time.
+| |
+| | Start Suite Teardown Export
+| | # Nothing explicit here, implicitly a place to find global end timestamp.
+| | Finalize Suite Teardown Export
diff --git a/tests/dpdk/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot b/tests/dpdk/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot
index 3cab124b37..4a041c1692 100644
--- a/tests/dpdk/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot
+++ b/tests/dpdk/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -13,8 +13,8 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/dpdk/default.robot
| Library | resources.libraries.python.DPDK.DPDKTools
+| Library | resources.libraries.python.DPDK.TestpmdTest
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | HW_ENV | PERFTEST | NDRPDR | 1NUMA
| ... | NIC_Intel-X710 | DPDK | ETH | L2XCFWD | BASE
@@ -24,25 +24,32 @@
|
| Suite Setup | Setup suite topology interfaces | performance | dpdk
| Suite Teardown | Tear down suite | performance | dpdk
+| Test Setup | Start Test Export
+| Test Teardown | Finalize Test Export
|
| Test Template | Local Template
|
-| Documentation | *Raw results L2 routing test cases*
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 frame forwarding.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 run the DPDK testpmd\
-| ... | application and use the io forwarding mode. DUT1 and DUT2 tested with\
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv4 header with static payload.\
+| Documentation | **Raw results L2 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 frame forwarding.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 run the DPDK testpmd \
+| ... | application and use the io forwarding mode. DUT1 and DUT2 are tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all \
+| ... | packets containing Ethernet header, IPv4 header with static payload \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
*** Variables ***
@@ -56,14 +63,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2 frame forwarding config.\
+| | ... | - **[Cfg]** DUT runs L2 frame forwarding config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
| |
@@ -71,7 +78,8 @@
| |
| | Given Set Max Rate And Jumbo
| | And Pre-initialize layer driver | ${nic_driver}
-| | When Start testpmd on all DUTs | ${phy_cores} | ${rxq} | ${jumbo}
+| | When Start testpmd on all DUTs | ${nodes} | ${topology_info}
+| | ... | ${phy_cores} | ${rxq} | ${jumbo}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/dpdk/perf/10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot b/tests/dpdk/perf/10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot
index fc3b3060cc..d822e24f00 100644
--- a/tests/dpdk/perf/10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot
+++ b/tests/dpdk/perf/10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -13,8 +13,8 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/dpdk/default.robot
| Library | resources.libraries.python.DPDK.DPDKTools
+| Library | resources.libraries.python.DPDK.L3fwdTest
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | 1NUMA
| ... | NIC_Intel-X710 | DPDK | IP4FWD | BASE | ETH
@@ -24,25 +24,32 @@
|
| Suite Setup | Setup suite topology interfaces | performance | dpdk
| Suite Teardown | Tear down suite | performance | dpdk
+| Test Setup | Start Test Export
+| Test Teardown | Finalize Test Export
|
| Test Template | Local Template
|
-| Documentation | *Raw results IPv4 routing test cases*
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L3 IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 run the DPDK l3fwd application\
-| ... | DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| Documentation | **Raw results IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L3 IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 run the DPDK l3fwd \
+| ... | application. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
*** Variables ***
@@ -56,14 +63,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst253_l3fwd
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst253_l3fwd
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L3 IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs L3 IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
| |
@@ -71,7 +78,8 @@
| |
| | Given Set Max Rate And Jumbo
| | And Pre-initialize layer driver | ${nic_driver}
-| | When Start L3FWD on all DUTs | ${phy_cores} | ${rxq} | ${jumbo}
+| | When Start l3fwd on all DUTs | ${nodes} | ${topology_info}
+| | ... | ${phy_cores} | ${rxq} | ${jumbo}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/dpdk/perf/2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot b/tests/dpdk/perf/2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot
index 1c345950e7..b788f95af1 100644
--- a/tests/dpdk/perf/2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot
+++ b/tests/dpdk/perf/2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -13,8 +13,8 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/dpdk/default.robot
| Library | resources.libraries.python.DPDK.DPDKTools
+| Library | resources.libraries.python.DPDK.TestpmdTest
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | HW_ENV | PERFTEST | NDRPDR | 1NUMA
| ... | NIC_Intel-X710 | DPDK | ETH | L2XCFWD | BASE
@@ -24,25 +24,32 @@
|
| Suite Setup | Setup suite topology interfaces | performance | dpdk
| Suite Teardown | Tear down suite | performance | dpdk
+| Test Setup | Start Test Export
+| Test Teardown | Finalize Test Export
|
| Test Template | Local Template
|
-| Documentation | *Raw results L2 routing test cases*
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **Raw results L2 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 frame forwarding.
-| ... | *[Cfg] DUT configuration:* DUT1 run the DPDK testpmd\
-| ... | application and use the io forwarding mode. DUT1 tested with\
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv4 header with static payload.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 frame forwarding.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 run the DPDK testpmd \
+| ... | application and use the io forwarding mode. DUT1 tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all \
+| ... | packets containing Ethernet header, IPv4 header with static payload \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
*** Variables ***
@@ -56,14 +63,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2 frame forwarding config.\
+| | ... | - **[Cfg]** DUT runs L2 frame forwarding config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
| |
@@ -71,7 +78,8 @@
| |
| | Given Set Max Rate And Jumbo
| | And Pre-initialize layer driver | ${nic_driver}
-| | When Start testpmd on all DUTs | ${phy_cores} | ${rxq} | ${jumbo}
+| | When Start testpmd on all DUTs | ${nodes} | ${topology_info}
+| | ... | ${phy_cores} | ${rxq} | ${jumbo}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/dpdk/perf/2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot b/tests/dpdk/perf/2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot
index 6e3106d84c..182f272641 100644
--- a/tests/dpdk/perf/2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot
+++ b/tests/dpdk/perf/2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -13,8 +13,8 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/dpdk/default.robot
| Library | resources.libraries.python.DPDK.DPDKTools
+| Library | resources.libraries.python.DPDK.L3fwdTest
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | 1NUMA
| ... | NIC_Intel-X710 | DPDK | IP4FWD | BASE | ETH
@@ -24,25 +24,32 @@
|
| Suite Setup | Setup suite topology interfaces | performance | dpdk
| Suite Teardown | Tear down suite | performance | dpdk
+| Test Setup | Start Test Export
+| Test Teardown | Finalize Test Export
|
| Test Template | Local Template
|
-| Documentation | *Raw results IPv4 routing test cases*
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 3-node circular topology\
+| Documentation | **Raw results IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 3-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L3 IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 run the DPDK l3fwd application\
-| ... | DUT1 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L3 IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 run the DPDK l3fwd application \
+| ... | DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
*** Variables ***
@@ -56,14 +63,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst253_l3fwd
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst253_l3fwd
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L3 IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs L3 IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
| |
@@ -71,7 +78,8 @@
| |
| | Given Set Max Rate And Jumbo
| | And Pre-initialize layer driver | ${nic_driver}
-| | When Start L3FWD on all DUTs | ${phy_cores} | ${rxq} | ${jumbo}
+| | When Start l3fwd on all DUTs | ${nodes} | ${topology_info}
+| | ... | ${phy_cores} | ${rxq} | ${jumbo}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/dpdk/perf/__init__.robot b/tests/dpdk/perf/__init__.robot
index 0161b4cff1..2945936116 100644
--- a/tests/dpdk/perf/__init__.robot
+++ b/tests/dpdk/perf/__init__.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
@@ -19,14 +19,18 @@
| Library | resources.libraries.python.SetupFramework.CleanupFramework
| Library | resources.libraries.python.DPDK.DPDKTools
|
-| Suite Setup | Run Keywords | Setup performance global Variables
+| Suite Setup | Run Keywords | Start Suite Setup Export
+| ... | AND | Setup performance global Variables
| ... | AND | Setup Framework | ${nodes}
| ... | AND | Install DPDK framework on all DUTs | ${nodes}
| ... | AND | Get CPU Info from All Nodes | ${nodes}
| ... | AND | Update All Interface Data on All Nodes | ${nodes}
| ... | skip_tg=${True} | skip_vpp=${True}
+| ... | AND | Finalize Suite Setup Export
|
-| Suite Teardown | Cleanup Framework | ${nodes}
+| Suite Teardown | Run Keywords | Start Suite Teardown Export
+| ... | AND | Cleanup Framework | ${nodes}
+| ... | AND | Finalize Suite Teardown Export
*** Keywords ***
| Setup performance global Variables
@@ -34,18 +38,14 @@
| | ... | Setup suite Variables. Variables are used across performance testing.
| |
| | ... | _NOTE:_ This KW sets following suite variables:
-| | ... | - pre_stats - Statistics actions before traffic.
-| | ... | - post_stats - Statistics actions after traffic.
-| | ... | - pre_run_stats - Statistics actions during traffic before timer.
-| | ... | - post_run_stats - Statistics actions during traffic after timer.
+| | ... | - stat_runtime - Statistics actions within traffic trial.
+| | ... | - stat_pre_trial - Statistics actions before traffic trials.
+| | ... | - stat_post_trial - Statistics actions after traffic trials.
| |
-| | ${pre_stats}= | Create List
-| | ... | clear-show-runtime-with-traffic
-| | ${post_stats}= | Create List | noop
-| | ${pre_run_stats}= | Create List | noop
-| | ${post_run_stats}= | Create List | noop
-| | Set Global Variable | ${pre_stats}
-| | Set Global Variable | ${post_stats}
-| | Set Global Variable | ${pre_run_stats}
-| | Set Global Variable | ${post_run_stats}
+| | ${stat_runtime}= | Create List | noop
+| | ${stat_pre_trial}= | Create List | noop
+| | ${stat_post_trial}= | Create List | noop
+| | Set Global Variable | ${stat_runtime}
+| | Set Global Variable | ${stat_pre_trial}
+| | Set Global Variable | ${stat_post_trial}
| | Set Global Variable | ${nodes}
diff --git a/tests/dpdk/perf/regenerate_testcases.py b/tests/dpdk/perf/regenerate_testcases.py
index 190213fb3d..5059df90bf 100755
--- a/tests/dpdk/perf/regenerate_testcases.py
+++ b/tests/dpdk/perf/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/tests/trex/perf/__init__.robot b/tests/trex/perf/__init__.robot
new file mode 100644
index 0000000000..654f23362a
--- /dev/null
+++ b/tests/trex/perf/__init__.robot
@@ -0,0 +1,45 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/shared/interfaces.robot
+|
+| Library | resources.libraries.python.SetupFramework
+| Library | resources.libraries.python.SetupFramework.CleanupFramework
+| Library | resources.libraries.python.CpuUtils
+|
+| Suite Setup | Run Keywords | Start Suite Setup Export
+| ... | AND | Setup Global Variables
+| ... | AND | Setup Framework | ${nodes}
+| ... | AND | Get CPU Info from All Nodes | ${nodes}
+| ... | AND | Update All Interface Data on All Nodes | ${nodes}
+| ... | skip_tg=${True} | skip_vpp=${True}
+| ... | AND | Finalize Suite Setup Export
+|
+| Suite Teardown | Run Keywords | Start Suite Teardown Export
+| ... | AND | Cleanup Framework | ${nodes}
+| ... | AND | Finalize Suite Teardown Export
+
+*** Keywords ***
+| Setup Global Variables
+| | [Documentation]
+| | ... | Setup suite Variables. Variables are used across performance testing.
+| |
+| | ${stat_runtime}= | Create List | trex-runtime
+| | ${stat_pre_trial}= | Create List | noop
+| | ${stat_post_trial}= | Create List | noop
+| | Set Global Variable | ${stat_runtime}
+| | Set Global Variable | ${stat_pre_trial}
+| | Set Global Variable | ${stat_post_trial}
+| | Set Global Variable | ${nodes}
diff --git a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4base-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4base-tg-ndrpdr.robot
new file mode 100644
index 0000000000..3223bdeb7c
--- /dev/null
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4base-tg-ndrpdr.robot
@@ -0,0 +1,92 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | BASE | IP4BASE | TG_DRV_IGB_UIO
+| ... | ethip4-ip4base-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput for cross connected NICs with \
+| ... | IPv4 traffic profile.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contains two L3 flow-groups (flow-group per \
+| ... | direction, 254 flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L2
+| ${overhead}= | ${0}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B--ethip4-ip4base-tg-ndrpdr
+| | [Tags] | 64B
+| | frame_size=${64}
+
+| 1518B--ethip4-ip4base-tg-ndrpdr
+| | [Tags] | 1518B
+| | frame_size=${1518}
+
+| 9000B--ethip4-ip4base-tg-ndrpdr
+| | [Tags] | 9000B
+| | frame_size=${9000}
+
+| IMIX--ethip4-ip4base-tg-ndrpdr
+| | [Tags] | IMIX
+| | frame_size=IMIX_v4_1
diff --git a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4scale20k-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4scale20k-tg-ndrpdr.robot
new file mode 100644
index 0000000000..117aba81da
--- /dev/null
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4scale20k-tg-ndrpdr.robot
@@ -0,0 +1,93 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | SCALE | IP4SCALE20K | TG_DRV_IGB_UIO
+| ... | ethip4-ip4scale20k-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput for cross connected NICs with \
+| ... | IPv4 traffic profile.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single links between.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contains two L3 flow-groups (flow-group per \
+| ... | direction, 10k flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L2
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${10000}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B--ethip4-ip4scale20k-tg-ndrpdr
+| | [Tags] | 64B
+| | frame_size=${64}
+
+| 1518B--ethip4-ip4scale20k-tg-ndrpdr
+| | [Tags] | 1518B
+| | frame_size=${1518}
+
+| 9000B--ethip4-ip4scale20k-tg-ndrpdr
+| | [Tags] | 9000B
+| | frame_size=${9000}
+
+| IMIX--ethip4-ip4scale20k-tg-ndrpdr
+| | [Tags] | IMIX
+| | frame_size=IMIX_v4_1
diff --git a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr.robot
new file mode 100644
index 0000000000..9502516509
--- /dev/null
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr.robot
@@ -0,0 +1,87 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | IP4BASE | TCP | TCP_CPS | TG_DRV_IGB_UIO | SCALE | HOSTS_1024
+| ... | ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **CPS on empty TCP transactions with L1 cross connect**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contain L7 flows (${cps} bi-directional TCP flows) \
+| ... | with all packets containing Ethernet header, IPv4 header with TCP \
+| ... | header and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${1024}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${4}
+| ${packets_per_transaction_aggregated}= | ${7}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h
+| ${transaction_type}= | tcp_cps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B--ethip4tcp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr
+| | [Tags] | 64B
+| | frame_size=${64}
diff --git a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr.robot
new file mode 100644
index 0000000000..033fdbc935
--- /dev/null
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr.robot
@@ -0,0 +1,96 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | IP4BASE | TCP | TCP_TPUT | TG_DRV_IGB_UIO | SCALE | HOSTS_1024
+| ... | ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with L1 cross connect**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contains client and server ASTF programs, \
+| ... | generating packets containing Ethernet header, IPv4 header, \
+| ... | TCP header and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${1024}
+| ${n_ports}= | ${63}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B--ethip4tcp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr
+| | [Tags] | 100B
+| | frame_size=${100}
+
+| 1518B--ethip4tcp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr
+| | [Tags] | 1518B
+| | frame_size=${1518}
+
+| 9000B--ethip4tcp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr
+| | [Tags] | 9000B
+| | frame_size=${9000}
diff --git a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr.robot
new file mode 100644
index 0000000000..9258e38c10
--- /dev/null
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr.robot
@@ -0,0 +1,87 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | IP4BASE | TCP | TCP_CPS | TG_DRV_IGB_UIO | SCALE | HOSTS_262144
+| ... | ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **CPS on empty TCP transactions with L1 cross connect**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contain L7 flows (${cps} bi-directional TCP flows) \
+| ... | with all packets containing Ethernet header, IPv4 header with TCP \
+| ... | header and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${262144}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${4}
+| ${packets_per_transaction_aggregated}= | ${7}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h
+| ${transaction_type}= | tcp_cps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B--ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr
+| | [Tags] | 64B
+| | frame_size=${64}
diff --git a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr.robot
new file mode 100644
index 0000000000..4fccf364a5
--- /dev/null
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr.robot
@@ -0,0 +1,96 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | IP4BASE | TCP | TCP_TPUT | TG_DRV_IGB_UIO | SCALE | HOSTS_262144
+| ... | ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with L1 cross connect**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contains client and server ASTF programs, \
+| ... | generating packets containing Ethernet header, IPv4 header, \
+| ... | TCP header and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${262144}
+| ${n_ports}= | ${63}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B--ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr
+| | [Tags] | 100B
+| | frame_size=${100}
+
+| 1518B--ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr
+| | [Tags] | 1518B
+| | frame_size=${1518}
+
+| 9000B--ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr
+| | [Tags] | 9000B
+| | frame_size=${9000}
diff --git a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr.robot
new file mode 100644
index 0000000000..3c98bb799f
--- /dev/null
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr.robot
@@ -0,0 +1,85 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | IP4BASE | UDP | UDP_CPS | TG_DRV_IGB_UIO | SCALE | HOSTS_1024
+| ... | ethip4udp-ip4base-h1024-p63-s64512-cps-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **CPS on empty UDP transactions with L1 cross connect**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contain L7 flows (${cps} bi-directional UDP flows) \
+| ... | with all packets containing Ethernet header, IPv4 header with UDP \
+| ... | header and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${1024}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h
+| ${transaction_type}= | udp_cps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B--ethip4udp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr
+| | [Tags] | 64B
+| | frame_size=${64}
diff --git a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr.robot
new file mode 100644
index 0000000000..22d6a20535
--- /dev/null
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr.robot
@@ -0,0 +1,95 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | IP4BASE | UDP | UDP_TPUT | TG_DRV_IGB_UIO | SCALE | HOSTS_1024
+| ... | ethip4udp-ip4base-h1024-p63-s64512-tput-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight UDP transactions with L1 cross connect**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contains client and server ASTF programs, \
+| ... | generating packets containing Ethernet header, IPv4 header, \
+| ... | UDP header and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${1024}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B--ethip4udp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr
+| | [Tags] | 100B
+| | frame_size=${100}
+
+| 1518B--ethip4udp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr
+| | [Tags] | 1518B
+| | frame_size=${1518}
+
+| 9000B--ethip4udp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr
+| | [Tags] | 9000B
+| | frame_size=${9000}
diff --git a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr.robot
new file mode 100644
index 0000000000..0d68ebf5fa
--- /dev/null
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr.robot
@@ -0,0 +1,85 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | IP4BASE | UDP | UDP_CPS | TG_DRV_IGB_UIO | SCALE | HOSTS_262144
+| ... | ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **CPS on empty UDP transactions with L1 cross connect**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contain L7 flows (${cps} bi-directional UDP flows) \
+| ... | with all packets containing Ethernet header, IPv4 header with UDP \
+| ... | header and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${262144}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h
+| ${transaction_type}= | udp_cps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B--ethip4udp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr
+| | [Tags] | 64B
+| | frame_size=${64}
diff --git a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr.robot
new file mode 100644
index 0000000000..dcf153b1ba
--- /dev/null
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr.robot
@@ -0,0 +1,94 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | IP4BASE | UDP | UDP_TPUT | TG_DRV_IGB_UIO | SCALE | HOSTS_262144
+| ... | ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **TPUT on lightweight UDP transactions with L1 cross connect**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contains client and server ASTF programs, \
+| ... | generating packets containing Ethernet header, IPv4 header, \
+| ... | TCP header and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${262144}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B--ethip4udp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr
+| | [Tags] | 100B
+| | frame_size=${100}
+
+| 1518B--ethip4udp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr
+| | [Tags] | 1518B
+| | frame_size=${1518}
+
+| 9000B--ethip4udp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr
+| | [Tags] | 9000B
+| | frame_size=${9000}
diff --git a/tests/trex/perf/ip4/regenerate_testcases.py b/tests/trex/perf/ip4/regenerate_testcases.py
new file mode 100755
index 0000000000..87521e662d
--- /dev/null
+++ b/tests/trex/perf/ip4/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6base-tg-ndrpdr.robot b/tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6base-tg-ndrpdr.robot
new file mode 100644
index 0000000000..14b1744f77
--- /dev/null
+++ b/tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6base-tg-ndrpdr.robot
@@ -0,0 +1,92 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | BASE | IP6BASE | TG_DRV_IGB_UIO
+| ... | ethip6-ip6base-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput for cross connected NICs with IPv6 \
+| ... | traffic profile.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single link between.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contains two L3 flow-groups (flow-group per \
+| ... | direction, 1M flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv6 header with static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 78B--ethip6-ip6base-tg-ndrpdr
+| | [Tags] | 78B
+| | frame_size=${78}
+
+| 1518B--ethip6-ip6base-tg-ndrpdr
+| | [Tags] | 1518B
+| | frame_size=${1518}
+
+| 9000B--ethip6-ip6base-tg-ndrpdr
+| | [Tags] | 9000B
+| | frame_size=${9000}
+
+| IMIX--ethip6-ip6base-tg-ndrpdr
+| | [Tags] | IMIX
+| | frame_size=IMIX_v4_1
diff --git a/tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6scale20k-tg-ndrpdr.robot b/tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6scale20k-tg-ndrpdr.robot
new file mode 100644
index 0000000000..445e8166a7
--- /dev/null
+++ b/tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6scale20k-tg-ndrpdr.robot
@@ -0,0 +1,93 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | N2N
+| ... | SCALE | IP6SCALE20K | TG_DRV_IGB_UIO
+| ... | ethip6-ip6scale20k-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput for cross connected NICs with IPv6 \
+| ... | traffic profile.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single link between.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contains two L3 flow-groups (flow-group per \
+| ... | direction, 10k flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv6 header with static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${10000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 78B--ethip6-ip6scale20k-tg-ndrpdr
+| | [Tags] | 78B
+| | frame_size=${78}
+
+| 1518B--ethip6-ip6scale20k-tg-ndrpdr
+| | [Tags] | 1518B
+| | frame_size=${1518}
+
+| 9000B--ethip6-ip6scale20k-tg-ndrpdr
+| | [Tags] | 9000B
+| | frame_size=${9000}
+
+| IMIX--ethip6-ip6scale20k-tg-ndrpdr
+| | [Tags] | IMIX
+| | frame_size=IMIX_v4_1
diff --git a/tests/trex/perf/ip6/regenerate_testcases.py b/tests/trex/perf/ip6/regenerate_testcases.py
new file mode 100755
index 0000000000..b1c6336c72
--- /dev/null
+++ b/tests/trex/perf/ip6/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot", protocol=u"ip6")
diff --git a/tests/trex/perf/l2/1n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-tg-ndrpdr.robot b/tests/trex/perf/l2/1n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-tg-ndrpdr.robot
new file mode 100644
index 0000000000..86854c042e
--- /dev/null
+++ b/tests/trex/perf/l2/1n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-tg-ndrpdr.robot
@@ -0,0 +1,96 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
+| ... | 3_NODE_SINGLE_LINK_TOPO
+| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | L2BDMACLRN
+| ... | N2N | SCALE | L2BDSCALE | FIB_1M | TG_DRV_IGB_UIO
+| ... | eth-l2bdscale1mmaclrn-tg
+|
+| Suite Setup | Setup suite topology interfaces with no DUT | performance_tg_nic
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Start Test Export
+| Test Teardown | Tear down test raw | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput for cross connected NICs with \
+| ... | IPv4 traffic profile.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-TG 1-node circular topology \
+| ... | with single link between.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L1 cross connect patch.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to TG. \
+| ... | TG traffic profile contains two L3 flow-groups (flow-group per \
+| ... | direction, 500k flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses ranges are incremented as follows:
+| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
+| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
+| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
+| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| ${nic_name}= | Intel-X710
+| ${nic_pfs}= | 2
+| ${osi_layer}= | L2
+| ${overhead}= | ${0}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-macsrc500kdst500k
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** TG runs L1 cross connect config.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| |
+| | [Arguments] | ${frame_size}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B--eth-l2bdscale1mmaclrn-tg-ndrpdr
+| | [Tags] | 64B
+| | frame_size=${64}
+
+| 1518B--eth-l2bdscale1mmaclrn-tg-ndrpdr
+| | [Tags] | 1518B
+| | frame_size=${1518}
+
+| 9000B--eth-l2bdscale1mmaclrn-tg-ndrpdr
+| | [Tags] | 9000B
+| | frame_size=${9000}
+
+| IMIX--eth-l2bdscale1mmaclrn-tg-ndrpdr
+| | [Tags] | IMIX
+| | frame_size=IMIX_v4_1
diff --git a/tests/trex/perf/l2/regenerate_testcases.py b/tests/trex/perf/l2/regenerate_testcases.py
new file mode 100755
index 0000000000..87521e662d
--- /dev/null
+++ b/tests/trex/perf/l2/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/__init__.robot b/tests/vpp/device/__init__.robot
index 1a669e67fd..e8cbd1ade4 100644
--- a/tests/vpp/device/__init__.robot
+++ b/tests/vpp/device/__init__.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -20,16 +20,21 @@
| Library | resources.libraries.python.SetupFramework.CleanupFramework
| Library | resources.libraries.python.CpuUtils
|
-| Suite Setup | Run Keywords | Setup Global Variables
+| Suite Setup | Run Keywords | Start Suite Setup Export
+| ... | AND | Setup Global Variables
| ... | AND | Setup Framework | ${nodes}
| ... | AND | Setup Corekeeper on All Nodes | ${nodes}
| ... | AND | Install Vpp on All Duts | ${nodes} | ${packages_dir}
-| ... | AND | Verify Vpp on All Duts | ${nodes}
+| ... | AND | Init Vpp Startup Configuration on All Duts | ${nodes}
+| ... | AND | Show Vpp Version on All Duts | ${nodes}
| ... | AND | Get CPU Info from All Nodes | ${nodes}
| ... | AND | Update All Interface Data on All Nodes | ${nodes}
+| ... | AND | Finalize Suite Setup Export
|
-| Suite Teardown | Run Keywords | Disconnect All Papi Connections
+| Suite Teardown | Run Keywords | Start Suite Teardown Export
+| ... | AND | Disconnect All Papi Connections
| ... | AND | Cleanup Framework | ${nodes}
+| ... | AND | Finalize Suite Teardown Export
*** Keywords ***
| Setup Global Variables
@@ -37,23 +42,19 @@
| | ... | Setup suite Variables. Variables are used across device testing.
| |
| | ... | _NOTE:_ This KW sets following suite variables:
-| | ... | - pre_stats - Statistics actions before traffic.
-| | ... | - post_stats - Statistics actions after traffic.
-| | ... | - pre_run_stats - Statistics actions during traffic before timer.
-| | ... | - post_run_stats - Statistics actions during traffic after timer.
+| | ... | - stat_runtime - Statistics actions within traffic trial.
+| | ... | - stat_pre_trial - Statistics actions before traffic trials.
+| | ... | - stat_post_trial - Statistics actions after traffic trials.
| | ... | - packages_dir - Path to directory where VPP packages are stored.
| |
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ${pre_run_stats}= | Create List
-| | ... | vpp-clear-runtime
-| | ${post_run_stats}= | Create List
-| | ... | vpp-show-runtime | bash-perf-stat
-| | Set Global Variable | ${pre_stats}
-| | Set Global Variable | ${post_stats}
-| | Set Global Variable | ${pre_run_stats}
-| | Set Global Variable | ${post_run_stats}
+| | ${stat_runtime}= | Create List
+| | ... | vpp-runtime
+| | ${stat_pre_trial}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace
+| | ${stat_post_trial}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace
+| | Set Global Variable | ${stat_runtime}
+| | Set Global Variable | ${stat_pre_trial}
+| | Set Global Variable | ${stat_post_trial}
| | Set Global Variable | ${packages_dir} | /tmp/openvpp-testing/download_dir/
| | Set Global Variable | ${nodes}
diff --git a/tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-scapy.robot b/tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-scapy.robot
new file mode 100644
index 0000000000..29f6993095
--- /dev/null
+++ b/tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-scapy.robot
@@ -0,0 +1,96 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | BASE | MEMIF | DOCKER | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4base-eth-2memif-1dcr
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | container
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 routing test cases with memif interface**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing on both \
+| ... | links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and two static IPv4 /24 route entries. Container is connected to VPP \
+| ... | via Memif interface. Container is running same VPP version as running \
+| ... | on DUT.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets with IP protocol=61 are \
+| ... | sent in one direction by TG on links to DUT1 and via container; on \
+| ... | receive TG verifies packets for correctness and their IPv4 src-addr, \
+| ... | dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC791, RFC826, RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Container
+| ${container_engine}= | Docker
+| ${container_chain_topology}= | chain_functional
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv4 packet in both directions between two \
+| | ... | of its interfaces to be routed by DUT to and from docker; verify \
+| | ... | all packets are received.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Start containers for test | auto_scale=${False} | pinning=${False}
+| | And Initialize IPv4 routing with memif pairs
+| | Then Send packet and verify headers
+| | ... | ${tg} | 10.10.10.1 | 20.20.20.1
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-ip4base-eth-2memif-1dcr-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2memif-1dcr-scapy.robot b/tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2memif-1dcr-scapy.robot
new file mode 100644
index 0000000000..ff33ab8475
--- /dev/null
+++ b/tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2memif-1dcr-scapy.robot
@@ -0,0 +1,94 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE | MEMIF | DOCKER | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2bdbasemaclrn-eth-2memif-1dcr
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | container
+|
+| Test Template | Local Template
+|
+| Documentation | **L2 bridge-domain test cases with memif interface**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | Both apply to all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | bridge-domain switching. Container is connected to VPP via Memif \
+| ... | interface. Container is running same VPP version as running on DUT.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets with IP protocol=61 \
+| ... | are sent in both directions by TG on links to DUT1 and via container; \
+| ... | on receive TG verifies packets for correctness and their IPv4. \
+| ... | src-addr, dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Container
+| ${container_engine}= | Docker
+| ${container_chain_topology}= | chain_functional
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv4 packets in both directions between two \
+| | ... | of its interfaces to be switched by DUT to and from docker; verify \
+| | ... | all packets are received.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Start containers for test | auto_scale=${False} | pinning=${False}
+| | And Initialize L2 Bridge Domain for multiple chains with memif pairs
+| | ... | auto_scale=${False}
+| | Then Send IPv4 bidirectionally and verify received packets
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2bdbasemaclrn-eth-2memif-1dcr-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2memif-1dcr-scapy.robot b/tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2memif-1dcr-scapy.robot
new file mode 100644
index 0000000000..75d8fa0ba4
--- /dev/null
+++ b/tests/vpp/device/container_memif/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2memif-1dcr-scapy.robot
@@ -0,0 +1,92 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | MEMIF | DOCKER | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2xcbase-eth-2memif-1dcr
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | container
+|
+| Test Template | Local Template
+|
+| Documentation | **L2 cross-connect test cases with memif interface**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 cross-\
+| ... | connect (L2XC) switching. Container is connected to VPP via Memif \
+| ... | interface. Container is running same VPP version as running on DUT.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets with IP protocol=61 \
+| ... | are sent in both directions by TG on links to DUT1 and via container; \
+| ... | on receive TG verifies packets for correctness and their IPv4. \
+| ... | src-addr, dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Container
+| ${container_engine}= | Docker
+| ${container_chain_topology}= | chain_functional
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv4 packets in both directions between two \
+| | ... | of its interfaces to be switched by DUT to and from docker; verify \
+| | ... | all packets are received.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Start containers for test | auto_scale=${False} | pinning=${False}
+| | And Initialize L2 xconnect with memif pairs
+| | Then Send IPv4 bidirectionally and verify received packets
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2xcbase-eth-2memif-1dcr-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/container_memif/eth2p-ethipv4-ip4base-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-ethipv4-ip4base-eth-2memif-1dcr-dev.robot
deleted file mode 100644
index e1773b0351..0000000000
--- a/tests/vpp/device/container_memif/eth2p-ethipv4-ip4base-eth-2memif-1dcr-dev.robot
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | BASE | MEMIF | DOCKER | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-ip4base-eth-2memif-1dcr
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | container
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 routing test cases with memif interface*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with \
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing on both links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
-| ... | two static IPv4 /24 route entries. Container is connected to VPP via \
-| ... | Memif interface. Container is running same VPP version as running on \
-| ... | DUT.
-| ... | *[Ver] TG verification:* Test IPv4 packets with IP protocol=61 are \
-| ... | sent in one direction by TG on links to DUT1 and via container; on \
-| ... | receive TG verifies packets for correctness and their IPv4 src-addr, \
-| ... | dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_functional
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 packet in both directions between two\
-| | ... | of its interfaces to be routed by DUT to and from docker; verify\
-| | ... | all packets are received.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Start containers for test | auto_scale=${False} | pinning=${False}
-| | And Initialize IPv4 routing with memif pairs
-| | Then Send packet and verify headers
-| | ... | ${tg} | 10.10.10.1 | 20.20.20.1
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-ip4base-eth-2memif-1dcr-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/container_memif/eth2p-ethipv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-ethipv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot
deleted file mode 100644
index 5fbf2d2d4c..0000000000
--- a/tests/vpp/device/container_memif/eth2p-ethipv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2BDMACLRN | BASE | MEMIF | DOCKER | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2bdbasemaclrn-eth-2memif-1dcr
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | container
-|
-| Test Template | Local Template
-|
-| Documentation | *L2 bridge-domain test cases with memif interface*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.\
-| ... | Both apply to all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain \
-| ... | switching. Container is connected to VPP via Memif interface. \
-| ... | Container is running same VPP version as running on DUT.
-| ... | *[Ver] TG verification:* Test IPv4 packets with IP protocol=61\
-| ... | are sent in both directions by TG on links to DUT1 and via container; \
-| ... | on receive TG verifies packets for correctness and their IPv4 \
-| ... | src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_functional
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 packets in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Start containers for test | auto_scale=${False} | pinning=${False}
-| | And Initialize L2 Bridge Domain for multiple chains with memif pairs
-| | ... | auto_scale=${False}
-| | Then Send IPv4 bidirectionally and verify received packets
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2bdbasemaclrn-eth-2memif-1dcr-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/container_memif/eth2p-ethipv4-l2xcbase-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-ethipv4-l2xcbase-eth-2memif-1dcr-dev.robot
deleted file mode 100644
index ea46e7d2dd..0000000000
--- a/tests/vpp/device/container_memif/eth2p-ethipv4-l2xcbase-eth-2memif-1dcr-dev.robot
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2XCFWD | BASE | MEMIF | DOCKER | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2xcbase-eth-2memif-1dcr
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | container
-|
-| Test Template | Local Template
-|
-| Documentation | *L2 cross-connect test cases with memif interface*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with \
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect \
-| ... | (L2XC) switching. Container is connected to VPP via Memif interface. \
-| ... | Container is running same VPP version as running on DUT.
-| ... | *[Ver] TG verification:* Test IPv4 packets with IP protocol=61 \
-| ... | are sent in both directions by TG on links to DUT1 and via container; \
-| ... | on receive TG verifies packets for correctness and their IPv4 \
-| ... | src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_functional
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 packets in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Start containers for test | auto_scale=${False} | pinning=${False}
-| | And Initialize L2 xconnect with memif pairs
-| | Then Send IPv4 bidirectionally and verify received packets
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2xcbase-eth-2memif-1dcr-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/container_memif/eth2p-ethipv6-ip6base-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-ethipv6-ip6base-eth-2memif-1dcr-dev.robot
deleted file mode 100644
index 56e1cddc6f..0000000000
--- a/tests/vpp/device/container_memif/eth2p-ethipv6-ip6base-eth-2memif-1dcr-dev.robot
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | BASE | MEMIF | DOCKER | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv6-ip6base-eth-2memif-1dcr
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | container
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 routing test cases with memif interface*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with \
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing on \
-| ... | both links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
-| ... | two static IPv6 /64 route entries. Container is connected to VPP via \
-| ... | Memif interface. Container is running same VPP version as running on \
-| ... | DUT.
-| ... | *[Ver] TG verification:* Test IPv6 packets are sent in one direction \
-| ... | by TG on links to DUT1 and via container; on receive TG verifies \
-| ... | packets for correctness and their IPv6 src-addr, dst-addr and \
-| ... | MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_functional
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv6 packets in both directions between two\
-| | ... | of its interfaces to be routed by DUT to and from docker; verify\
-| | ... | all packets are received.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Start containers for test | auto_scale=${False} | pinning=${False}
-| | And Set up memif interfaces on DUT node
-| | ... | ${dut1} | memif-DUT1_CNF | memif-DUT1_CNF
-| | ... | memif_if1=memif_if1 | memif_if2=memif_if2
-| | ... | rxq=${rxq_count_int} | txq=${rxq_count_int}
-| | # It takes some time for memifs to go up.
-| | And Set interfaces in path up
-| | And Add Fib Table | ${dut1} | 20 | ipv6=${True}
-| | And Assign Interface To Fib Table
-| | ... | ${dut1} | ${memif_if2} | 20 | ipv6=${True}
-| | And Assign Interface To Fib Table
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | 20 | ipv6=${True}
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | 2001:1::1 | 64
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${memif_if1} | 2001:2::1 | 64
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${memif_if2} | 2001:2::2 | 64
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | 2001:3::1 | 64
-| | ${memif_if2_key}= | Get interface by sw index | ${nodes['DUT1']}
-| | ... | ${memif_if2}
-| | ${memif_if2_mac}= | Get interface MAC | ${nodes['DUT1']} | ${memif_if2_key}
-| | And Vpp Route Add
-| | ... | ${dut1} | 2001:3::0 | 64 | gateway=2001:2::2 | interface=${memif_if1}
-| | And Vpp Route Add
-| | ... | ${dut1} | 2001:1::0 | 64 | gateway=2001:2::2 | interface=${memif_if2}
-| | ... | vrf=20
-| | VPP Add IP Neighbor
-| | ... | ${dut1} | ${memif_if1} | 2001:2::2 | ${memif_if2_mac}
-| | VPP Add IP Neighbor
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | 2001:3::2 | ${TG_pf2_mac}[0]
-| | Then Send packet and verify headers
-| | ... | ${tg} | 2001:1::1 | 2001:3::2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 78B-ethipv6-ip6base-eth-2memif-1dcr-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/container_memif/regenerate_testcases.py b/tests/vpp/device/container_memif/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/container_memif/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/crypto/eth2p-ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha-dev.robot b/tests/vpp/device/crypto/eth2p-ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha-dev.robot
deleted file mode 100644
index 4338fa35b5..0000000000
--- a/tests/vpp/device/crypto/eth2p-ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha-dev.robot
+++ /dev/null
@@ -1,101 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP4FWD | IPSEC | IPSECSW | IPSECINT | IP4BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode test suite.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure\
-| ... | loopback an physical interface IPv4 addresses, static ARP record, route\
-| ... | and IPsec manual keyed connection in tunnel mode.
-| ... | *[Ver] TG verification:* ETH-IP4 packet is sent from TG to DUT1. Packet\
-| ... | is received on TG from DUT1.
-| ... | *[Ref] Applicable standard specifications:* RFC4303.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${90}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${tun_if1_ip4}= | 100.0.0.1
-| ${tun_if2_ip4}= | 200.0.0.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${11}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure IPsec tunnel interfaces with encryption\
-| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in tunnel\
-| | ... | mode.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg} = | Crypto Alg AES CBC 128
-| | ${auth_alg} = | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 2-node circular topology
-| | ${encr_key} | ${auth_key} | ${dut_spi} | ${tg_spi} =
-| | ... | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Send IP Packet and verify ESP encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
-| | ... | ${DUT1_${int}2_mac}[0] | ${encr_alg} | ${encr_key} | ${auth_alg}
-| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${tun_if1_ip4} | ${tun_if2_ip4}
-
-*** Test Cases ***
-| 154B-ethip4ipsec11tnlsw-ip4base-int-aes-128-cbc-sha-512-256-dev
-| | [Tags] | 154B
-| | frame_size=${154} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-dev.robot b/tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-dev.robot
deleted file mode 100644
index f8ab71565b..0000000000
--- a/tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-dev.robot
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP4FWD | IPSEC | IPSECSW | IPSECINT | IP4BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode test suite.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure\
-| ... | loopback an physical interface IPv4 addresses, static ARP record, route\
-| ... | and IPsec manual keyed connection in tunnel mode.
-| ... | *[Ver] TG verification:* ETH-IP4 packet is sent from TG to DUT1. Packet\
-| ... | is received on TG from DUT1.
-| ... | *[Ref] Applicable standard specifications:* RFC4303.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${90}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${tun_if1_ip4}= | 100.0.0.1
-| ${tun_if2_ip4}= | 200.0.0.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure IPsec tunnel interface with encryption\
-| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in tunnel\
-| | ... | mode.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg} = | Crypto Alg AES CBC 128
-| | ${auth_alg} = | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 2-node circular topology
-| | ${encr_key} | ${auth_key} | ${dut_spi} | ${tg_spi} =
-| | ... | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Send IP Packet and verify ESP encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
-| | ... | ${DUT1_${int}2_mac}[0] | ${encr_alg} | ${encr_key} | ${auth_alg}
-| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${tun_if1_ip4} | ${tun_if2_ip4}
-| | And Show Ipsec Security Association | ${dut1}
-
-*** Test Cases ***
-| 154B-ethip4ipsec1tnlsw-ip4base-int-aes-128-cbc-sha-512-256-dev
-| | [Tags] | 154B
-| | frame_size=${154} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot b/tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot
deleted file mode 100644
index ccce5f0511..0000000000
--- a/tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP4FWD | IPSEC | IPSECSW | IPSECTUN | IP4BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode test suite.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure\
-| ... | loopback an physical interface IPv4 addresses, static ARP record, route\
-| ... | and IPsec manual keyed connection in tunnel mode.
-| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet\
-| ... | is received on TG from DUT1.
-| ... | *[Ref] Applicable standard specifications:* RFC4303.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${54}
-| ${tg_spi}= | ${1000}
-| ${dut_spi}= | ${1001}
-| ${ESP_PROTO}= | ${50}
-| ${tg_if1_ip4}= | 192.168.100.2
-| ${tg_if2_ip4}= | 192.168.4.4
-| ${dut_if1_ip4}= | 192.168.100.3
-| ${dut_if2_ip4}= | 192.168.4.3
-| ${tg_host_ip4}= | 192.168.3.3
-| ${ip4_plen}= | ${24}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in tunnel\
-| | ... | mode.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Configure topology for IPv4 IPsec testing
-| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
-| | And Configure manual keyed connection for IPSec
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${encr_alg} | ${encr_key} | ${auth_alg}
-| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${tg_dst_ip} | ${tg_src_ip}
-| | ... | ${dut_tun_ip} | ${tg_tun_ip}
-| | Then Send IPsec Packet and verify ESP encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${DUT1_vf1_mac}[0] | ${DUT1_vf2_mac}[0]
-| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
-| | ... | ${dut_spi} | ${tg_src_ip} | ${tg_dst_ip} | ${tg_tun_ip}
-| | ... | ${dut_tun_ip}
-
-*** Test Cases ***
-| 110B-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev
-| | [Tags] | 110B
-| | frame_size=${110} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot b/tests/vpp/device/crypto/eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot
deleted file mode 100644
index a5961ebb63..0000000000
--- a/tests/vpp/device/crypto/eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot
+++ /dev/null
@@ -1,101 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP4FWD | IPSEC | IPSECSW | IPSECTPT | IP4BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec transport mode test suite.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure\
-| ... | loopback an physical interface IPv4 addresses, static ARP record, route\
-| ... | and IPsec manual keyed connection in transport mode.
-| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet\
-| ... | is received on TG from DUT1.
-| ... | *[Ref] Applicable standard specifications:* RFC4303.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${54}
-| ${tg_spi}= | ${1000}
-| ${dut_spi}= | ${1001}
-| ${ESP_PROTO}= | ${50}
-| ${tg_if1_ip4}= | 192.168.100.2
-| ${tg_if2_ip4}= | 192.168.4.4
-| ${dut_if1_ip4}= | 192.168.100.3
-| ${dut_if2_ip4}= | 192.168.4.3
-| ${tg_host_ip4}= | 192.168.3.3
-| ${ip4_plen}= | ${24}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in\
-| | ... | transport mode.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Configure topology for IPv4 IPsec testing
-| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
-| | And Configure manual keyed connection for IPSec
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${encr_alg} | ${encr_key} | ${auth_alg}
-| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${tg_dst_ip} | ${tg_src_ip}
-| | Then Send IPsec Packet and verify ESP encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${DUT1_vf1_mac}[0] | ${DUT1_vf2_mac}[0]
-| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
-| | ... | ${dut_spi} | ${tg_src_ip} | ${tg_dst_ip}
-
-*** Test Cases ***
-| 110B-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev
-| | [Tags] | 110B
-| | frame_size=${110} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot b/tests/vpp/device/crypto/eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot
deleted file mode 100644
index 08d867fe55..0000000000
--- a/tests/vpp/device/crypto/eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP6FWD | IPSEC | IPSECSW | IPSECTUN | IP6BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv6 IPsec tunnel mode test suite.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure
-| ... | loopback an physical interface IPv6 addresses, static ARP record, route
-| ... | and IPsec manual keyed connection in tunnel mode.
-| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet
-| ... | is received on TG from DUT1.
-| ... | *[Ref] Applicable standard specifications:* RFC4303.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${54}
-| ${tg_spi}= | ${1000}
-| ${dut_spi}= | ${1001}
-| ${ESP_PROTO}= | ${50}
-| ${tg_if1_ip6}= | 3ffe:5f::1
-| ${tg_if2_ip6}= | 3ffe:60::4
-| ${dut_if1_ip6}= | 3ffe:5f::2
-| ${dut_if2_ip6}= | 3ffe:60::3
-| ${tg_host_ip6}= | 3ffe:61::3
-| ${ip6_plen}= | ${64}
-| ${ip6_plen_rt}= | ${128}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in tunnel\
-| | ... | mode.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Configure topology for IPv6 IPsec testing
-| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
-| | And Configure manual keyed connection for IPSec
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${encr_alg} | ${encr_key} | ${auth_alg}
-| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${tg_dst_ip} | ${tg_src_ip}
-| | ... | ${dut_tun_ip} | ${tg_tun_ip} | is_ipv6=${TRUE}
-| | Then Send IPsec Packet and verify ESP encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${DUT1_vf1_mac}[0] | ${DUT1_vf2_mac}[0]
-| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
-| | ... | ${dut_spi} | ${tg_src_ip} | ${tg_dst_ip} | ${tg_tun_ip}
-| | ... | ${dut_tun_ip}
-
-*** Test Cases ***
-| 124B-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev
-| | [Tags] | 124B
-| | frame_size=${124} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/eth2p-ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot b/tests/vpp/device/crypto/eth2p-ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot
deleted file mode 100644
index 9dba04e816..0000000000
--- a/tests/vpp/device/crypto/eth2p-ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP6FWD | IPSEC | IPSECSW | IPSECTPT | IP6BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv6 IPsec transport mode test suite.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure
-| ... | loopback an physical interface IPv6 addresses, static ARP record, route
-| ... | and IPsec manual keyed connection in transport mode.
-| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet
-| ... | is received on TG from DUT1.
-| ... | *[Ref] Applicable standard specifications:* RFC4303.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${58}
-| ${tg_spi}= | ${1000}
-| ${dut_spi}= | ${1001}
-| ${ESP_PROTO}= | ${50}
-| ${tg_if1_ip6}= | 3ffe:5f::1
-| ${tg_if2_ip6}= | 3ffe:60::4
-| ${dut_if1_ip6}= | 3ffe:5f::2
-| ${dut_if2_ip6}= | 3ffe:60::3
-| ${tg_host_ip6}= | 3ffe:61::3
-| ${ip6_plen}= | ${64}
-| ${ip6_plen_rt}= | ${128}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in\
-| | ... | transport mode.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Configure topology for IPv6 IPsec testing
-| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
-| | And Configure manual keyed connection for IPSec
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${encr_alg} | ${encr_key} | ${auth_alg}
-| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${tg_dst_ip} | ${tg_src_ip}
-| | ... | is_ipv6=${TRUE}
-| | Then Send IPsec Packet and verify ESP encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${DUT1_vf1_mac}[0] | ${DUT1_vf2_mac}[0]
-| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
-| | ... | ${dut_spi} | ${tg_src_ip} | ${tg_dst_ip}
-
-*** Test Cases ***
-| 124B-ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256-dev
-| | [Tags] | 124B
-| | frame_size=${124} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy.robot b/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy.robot
new file mode 100644
index 0000000000..c91ae637ee
--- /dev/null
+++ b/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy.robot
@@ -0,0 +1,107 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP4FWD | IPSEC | IPSECSW | IPSECINT | IP4BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode test suite.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 create loopback interface, \
+| ... | configure loopback an physical interface IPv4 addresses, static ARP \
+| ... | record, route and IPsec manual keyed connection in tunnel mode.
+| ... |
+| ... | - **[Ver] TG verification:** ETH-IP4 packet is sent from TG to DUT1. \
+| ... | Packet is received on TG from DUT1.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${90}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${11}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure IPsec tunnel interfaces with \
+| | ... | encryption algorithm AES_128_CBC and integrity algorithm \
+| | ... | HMAC_SHA_512 in tunnel mode.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES CBC 128
+| | ${auth_alg} = | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | ${encr_keys} | ${auth_keys} | ${dut_spi} | ${tg_spi} =
+| | ... | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | return_keys=${True}
+| | Then Send IP Packet and verify ESP encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | ${DUT1_${int}2_mac}[0] | ${encr_alg} | ${encr_keys}[0] | ${auth_alg}
+| | ... | ${auth_keys}[0] | ${dut_spi} | ${tg_spi} | ${laddr_ip4} | ${raddr_ip4}
+| | ... | ${tun_if1_ip4} | ${tun_if2_ip4}
+
+*** Test Cases ***
+| 64B-0c-ethip4ipsec11tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy.robot b/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy.robot
new file mode 100644
index 0000000000..d424ee4727
--- /dev/null
+++ b/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy.robot
@@ -0,0 +1,107 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP4FWD | IPSEC | IPSECSW | IPSECINT | IP4BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode test suite.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 create loopback interface, \
+| ... | configure loopback an physical interface IPv4 addresses, static ARP \
+| ... | irecord, route and IPsec manual keyed connection in tunnel mode.
+| ... |
+| ... | - **[Ver] TG verification:** ETH-IP4 packet is sent from TG to DUT1. \
+| ... | Packet is received on TG from DUT1.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${90}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure IPsec tunnel interface with encryption \
+| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in \
+| | ... | tunnel mode.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES CBC 128
+| | ${auth_alg} = | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | ${encr_keys} | ${auth_keys} | ${dut_spi} | ${tg_spi} =
+| | ... | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | return_keys=${True}
+| | Then Send IP Packet and verify ESP encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | ${DUT1_${int}2_mac}[0] | ${encr_alg} | ${encr_keys}[0] | ${auth_alg}
+| | ... | ${auth_keys}[0] | ${dut_spi} | ${tg_spi} | ${laddr_ip4} | ${raddr_ip4}
+| | ... | ${tun_if1_ip4} | ${tun_if2_ip4}
+
+*** Test Cases ***
+| 64B-0c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-scapy.robot b/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-scapy.robot
new file mode 100644
index 0000000000..88e769a2e1
--- /dev/null
+++ b/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-scapy.robot
@@ -0,0 +1,109 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP4FWD | IPSEC | IPSECSW | IPSECTUN | IP4BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode test suite.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 create loopback interface, \
+| ... | configure loopback an physical interface IPv4 addresses, static ARP \
+| ... | record, route and IPsec manual keyed connection in tunnel mode.
+| ... |
+| ... | - **[Ver] TG verification:** ESP packet is sent from TG to DUT1. ESP \
+| ... | packet is received on TG from DUT1.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${54}
+| ${tg_spi}= | ${1000}
+| ${dut_spi}= | ${1001}
+| ${ESP_PROTO}= | ${50}
+| ${tg_if1_ip4}= | 192.168.100.2
+| ${tg_if2_ip4}= | 192.168.4.4
+| ${dut_if1_ip4}= | 192.168.100.3
+| ${dut_if2_ip4}= | 192.168.4.3
+| ${tg_host_ip4}= | 192.168.3.3
+| ${ip4_plen}= | ${24}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure IPsec manual keyed connection with \
+| | ... | encryption algorithm AES_128_CBC and integrity algorithm \
+| | ... | HMAC_SHA_512 in tunnel mode.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Configure topology for IPv4 IPsec testing
+| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
+| | And Configure manual keyed connection for IPSec
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${encr_alg} | ${encr_key} | ${auth_alg}
+| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${tg_dst_ip} | ${tg_src_ip}
+| | ... | ${dut_tun_ip} | ${tg_tun_ip}
+| | Then Send IPsec Packet and verify ESP encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+| | ... | ${DUT1_vf1_mac}[0] | ${DUT1_vf2_mac}[0]
+| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
+| | ... | ${dut_spi} | ${tg_src_ip} | ${tg_dst_ip} | ${tg_tun_ip}
+| | ... | ${dut_tun_ip}
+
+*** Test Cases ***
+| 64B-0c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha-scapy.robot b/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha-scapy.robot
new file mode 100644
index 0000000000..ca456cef1c
--- /dev/null
+++ b/tests/vpp/device/crypto/ethip4/2n1l-10ge2p1x710-ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha-scapy.robot
@@ -0,0 +1,107 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP4FWD | IPSEC | IPSECSW | IPSECTPT | IP4BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec transport mode test suite.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 create loopback interface, \
+| ... | configure loopback an physical interface IPv4 addresses, static ARP \
+| ... | record, route and IPsec manual keyed connection in transport mode.
+| ... |
+| ... | - **[Ver] TG verification:** ESP packet is sent from TG to DUT1. ESP \
+| ... | packet is received on TG from DUT1.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${54}
+| ${tg_spi}= | ${1000}
+| ${dut_spi}= | ${1001}
+| ${ESP_PROTO}= | ${50}
+| ${tg_if1_ip4}= | 192.168.100.2
+| ${tg_if2_ip4}= | 192.168.4.4
+| ${dut_if1_ip4}= | 192.168.100.3
+| ${dut_if2_ip4}= | 192.168.4.3
+| ${tg_host_ip4}= | 192.168.3.3
+| ${ip4_plen}= | ${24}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure IPsec manual keyed connection with \
+| | ... | encryption algorithm AES_128_CBC and integrity algorithm \
+| | ... | HMAC_SHA_512 in transport mode.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Configure topology for IPv4 IPsec testing
+| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
+| | And Configure manual keyed connection for IPSec
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${encr_alg} | ${encr_key} | ${auth_alg}
+| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${tg_dst_ip} | ${tg_src_ip}
+| | Then Send IPsec Packet and verify ESP encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+| | ... | ${DUT1_vf1_mac}[0] | ${DUT1_vf2_mac}[0]
+| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
+| | ... | ${dut_spi} | ${tg_src_ip} | ${tg_dst_ip}
+
+*** Test Cases ***
+| 64B-0c-ethip4ipsec1tptsw-ip4base-policy-aes128cbc-hmac512sha-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/ethip4/regenerate_testcases.py b/tests/vpp/device/crypto/ethip4/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/crypto/ethip4/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/crypto/ethip6/2n1l-10ge2p1x710-ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha-scapy.robot b/tests/vpp/device/crypto/ethip6/2n1l-10ge2p1x710-ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha-scapy.robot
new file mode 100644
index 0000000000..3b417ab15e
--- /dev/null
+++ b/tests/vpp/device/crypto/ethip6/2n1l-10ge2p1x710-ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha-scapy.robot
@@ -0,0 +1,110 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP6FWD | IPSEC | IPSECSW | IPSECTUN | IP6BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv6 IPsec tunnel mode test suite.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 create loopback interface, \
+| ... | configure loopback an physical interface IPv6 addresses, static ARP \
+| ... | record, route and IPsec manual keyed connection in tunnel mode.
+| ... |
+| ... | - **[Ver] TG verification:** ESP packet is sent from TG to DUT1. ESP \
+| ... | packet is received on TG from DUT1.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${54}
+| ${tg_spi}= | ${1000}
+| ${dut_spi}= | ${1001}
+| ${ESP_PROTO}= | ${50}
+| ${tg_if1_ip6}= | 3ffe:5f::1
+| ${tg_if2_ip6}= | 3ffe:60::4
+| ${dut_if1_ip6}= | 3ffe:5f::2
+| ${dut_if2_ip6}= | 3ffe:60::3
+| ${tg_host_ip6}= | 3ffe:61::3
+| ${ip6_plen}= | ${64}
+| ${ip6_plen_rt}= | ${128}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure IPsec manual keyed connection with \
+| | ... | encryption algorithm AES_128_CBC and integrity algorithm \
+| | ... | HMAC_SHA_512 in tunnel mode.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Configure topology for IPv6 IPsec testing
+| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
+| | And Configure manual keyed connection for IPSec
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${encr_alg} | ${encr_key} | ${auth_alg}
+| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${tg_dst_ip} | ${tg_src_ip}
+| | ... | ${dut_tun_ip} | ${tg_tun_ip} | is_ipv6=${TRUE}
+| | Then Send IPsec Packet and verify ESP encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+| | ... | ${DUT1_vf1_mac}[0] | ${DUT1_vf2_mac}[0]
+| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
+| | ... | ${dut_spi} | ${tg_src_ip} | ${tg_dst_ip} | ${tg_tun_ip}
+| | ... | ${dut_tun_ip}
+
+*** Test Cases ***
+| 78B-0c-ethip6ipsec1tnlsw-ip6base-policy-aes128cbc-hmac512sha-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/ethip6/2n1l-10ge2p1x710-ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha-scapy.robot b/tests/vpp/device/crypto/ethip6/2n1l-10ge2p1x710-ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha-scapy.robot
new file mode 100644
index 0000000000..71e92f80f0
--- /dev/null
+++ b/tests/vpp/device/crypto/ethip6/2n1l-10ge2p1x710-ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha-scapy.robot
@@ -0,0 +1,109 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP6FWD | IPSEC | IPSECSW | IPSECTPT | IP6BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv6 IPsec transport mode test suite.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 create loopback interface, \
+| ... | configure loopback an physical interface IPv6 addresses, static ARP \
+| ... | record, route and IPsec manual keyed connection in transport mode.
+| ... |
+| ... | - **[Ver] TG verification:** ESP packet is sent from TG to DUT1. ESP \
+| ... | packet is received on TG from DUT1.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${58}
+| ${tg_spi}= | ${1000}
+| ${dut_spi}= | ${1001}
+| ${ESP_PROTO}= | ${50}
+| ${tg_if1_ip6}= | 3ffe:5f::1
+| ${tg_if2_ip6}= | 3ffe:60::4
+| ${dut_if1_ip6}= | 3ffe:5f::2
+| ${dut_if2_ip6}= | 3ffe:60::3
+| ${tg_host_ip6}= | 3ffe:61::3
+| ${ip6_plen}= | ${64}
+| ${ip6_plen_rt}= | ${128}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure IPsec manual keyed connection with \
+| | ... | encryption algorithm AES_128_CBC and integrity algorithm \
+| | ... | HMAC_SHA_512 in transport mode.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Configure topology for IPv6 IPsec testing
+| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
+| | And Configure manual keyed connection for IPSec
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${encr_alg} | ${encr_key} | ${auth_alg}
+| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${tg_dst_ip} | ${tg_src_ip}
+| | ... | is_ipv6=${TRUE}
+| | Then Send IPsec Packet and verify ESP encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+| | ... | ${DUT1_vf1_mac}[0] | ${DUT1_vf2_mac}[0]
+| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
+| | ... | ${dut_spi} | ${tg_src_ip} | ${tg_dst_ip}
+
+*** Test Cases ***
+| 78B-0c-ethip6ipsec1tptsw-ip6base-policy-aes128cbc-hmac512sha-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/crypto/ethip6/regenerate_testcases.py b/tests/vpp/device/crypto/ethip6/regenerate_testcases.py
new file mode 100755
index 0000000000..2cae24e087
--- /dev/null
+++ b/tests/vpp/device/crypto/ethip6/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot", protocol=u"ip6")
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-gtpu-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-gtpu-scapy.robot
new file mode 100644
index 0000000000..ac9d15efb9
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-gtpu-scapy.robot
@@ -0,0 +1,127 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FLOW | GTPU | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-flow-ip4-gtpu
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP4_GTPU flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP4-GTPU.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP4_GTPU flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 1.1.1.1
+| ${dst_ip}= | 2.2.2.2
+| ${teid}= | ${12345}
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP4-GTPU packet routed over DUT1 \
+| | ... | interfaces. Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 Gtpu Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | teid=${teid}
+| | ... | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=GTPU
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${teid}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 Gtpu Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | teid=${teid}
+| | ... | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=GTPU
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${teid}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 Gtpu Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | teid=${teid}
+| | ... | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=GTPU
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${teid}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip4-flow-ip4-gtpu-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ipsec-ah-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ipsec-ah-scapy.robot
new file mode 100644
index 0000000000..1856684de1
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ipsec-ah-scapy.robot
@@ -0,0 +1,127 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FLOW | IPSEC | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-flow-ip4-ipsec-ah
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP4_IPSEC flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP4-AH.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP4_IPSEC flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 1.1.1.1
+| ${dst_ip}= | 2.2.2.2
+| ${spi}= | ${12345}
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP4-IPSEC packet routed over DUT1 \
+| | ... | interfaces. Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create IP4 Ipsec Flow | ${dut1}
+| | ... | proto=AH | spi=${spi}
+| | ... | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=AH
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${spi}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create IP4 Ipsec Flow | ${dut1}
+| | ... | proto=AH | spi=${spi}
+| | ... | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=AH
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${spi}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create IP4 Ipsec Flow | ${dut1}
+| | ... | proto=AH | spi=${spi}
+| | ... | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=AH
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${spi}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip4-flow-ip4-ipsec-ah-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ipsec-esp-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ipsec-esp-scapy.robot
new file mode 100644
index 0000000000..313b084377
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ipsec-esp-scapy.robot
@@ -0,0 +1,127 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FLOW | IPSEC | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-flow-ip4-ipsec-esp
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP4_IPSEC flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP4-ESP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP4_IPSEC flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 1.1.1.1
+| ${dst_ip}= | 2.2.2.2
+| ${spi}= | ${12345}
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP4-IPSEC packet routed over DUT1 \
+| | ... | interfaces. Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create IP4 Ipsec Flow | ${dut1}
+| | ... | proto=ESP | spi=${spi}
+| | ... | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=ESP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${spi}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create IP4 Ipsec Flow | ${dut1}
+| | ... | proto=ESP | spi=${spi}
+| | ... | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=ESP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${spi}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create IP4 Ipsec Flow | ${dut1}
+| | ... | proto=ESP | spi=${spi}
+| | ... | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=ESP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${spi}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip4-flow-ip4-ipsec-esp-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-l2tpv3oip-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-l2tpv3oip-scapy.robot
new file mode 100644
index 0000000000..c545ce2d09
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-l2tpv3oip-scapy.robot
@@ -0,0 +1,128 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FLOW | L2TPV3 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-flow-ip4-l2tpv3oip
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP4_L2TPV3OIP flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP4-L2TPV3.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP4_L2TPV3OIP \
+| ... | flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 1.1.1.1
+| ${dst_ip}= | 2.2.2.2
+| ${session_id}= | ${12345}
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP4-L2TPV3OIP packet routed over DUT1 \
+| | ... | interfaces. Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create IP4 L2tp Flow | ${dut1}
+| | ... | session_id=${session_id}
+| | ... | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=L2TPV3
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${session_id}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create IP4 L2tp Flow | ${dut1}
+| | ... | session_id=${session_id}
+| | ... | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=L2TPV3
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${session_id}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create IP4 L2tp Flow | ${dut1}
+| | ... | session_id=${session_id}
+| | ... | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=L2TPV3
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | value=${session_id}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip4-flow-ip4-l2tpv3oip-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ntuple-tcp-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ntuple-tcp-scapy.robot
new file mode 100644
index 0000000000..a2b0774d1e
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ntuple-tcp-scapy.robot
@@ -0,0 +1,128 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FLOW | NTUPLE | TCP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-flow-ip4-ntuple-tcp
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP4_N_TUPLE flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP4-TCP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP4_N_TUPLE flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 1.1.1.1
+| ${dst_ip}= | 2.2.2.2
+| ${src_port}= | ${100}
+| ${dst_port}= | ${200}
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP4 packet routed over DUT1 interfaces. \
+| | ... | Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=TCP | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=TCP | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=TCP | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip4-flow-ip4-ntuple-tcp-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ntuple-udp-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ntuple-udp-scapy.robot
new file mode 100644
index 0000000000..27bfc98ed5
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-ntuple-udp-scapy.robot
@@ -0,0 +1,128 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FLOW | NTUPLE | UDP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-flow-ip4-ntuple-udp
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP4_N_TUPLE flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP4-UDP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP4_N_TUPLE flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 1.1.1.1
+| ${dst_ip}= | 2.2.2.2
+| ${src_port}= | ${100}
+| ${dst_port}= | ${200}
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP4 packet routed over DUT1 interfaces. \
+| | ... | Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=UDP | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=UDP | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=UDP | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip4-flow-ip4-ntuple-udp-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-tcp-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-tcp-scapy.robot
new file mode 100644
index 0000000000..8abab2a324
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-tcp-scapy.robot
@@ -0,0 +1,123 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FLOW | TCP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-flow-ip4-tcp
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP4 flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP4-TCP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP4 flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 1.1.1.1
+| ${dst_ip}= | 2.2.2.2
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP4 packet routed over DUT1 interfaces. \
+| | ... | Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=TCP
+| | ... | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=TCP
+| | ... | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=TCP
+| | ... | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip4-flow-ip4-tcp-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-udp-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-udp-scapy.robot
new file mode 100644
index 0000000000..44e89555aa
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip4-flow-ip4-udp-scapy.robot
@@ -0,0 +1,123 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FLOW | UDP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-flow-ip4-udp
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP4 flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP4-UDP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP4 flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 1.1.1.1
+| ${dst_ip}= | 2.2.2.2
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP4 packet routed over DUT1 interfaces. \
+| | ... | Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=UDP
+| | ... | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=UDP
+| | ... | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip4 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=UDP
+| | ... | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP4 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip4-flow-ip4-udp-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-ntuple-tcp-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-ntuple-tcp-scapy.robot
new file mode 100644
index 0000000000..993428ee9d
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-ntuple-tcp-scapy.robot
@@ -0,0 +1,128 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FLOW | NTUPLE | TCP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-flow-ip6-ntuple-tcp
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP6_N_TUPLE flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP6-TCP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP6_N_TUPLE flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b
+| ${dst_ip}= | 1011:2022:3033:4044:5055:6066:7077:8088
+| ${src_port}= | ${100}
+| ${dst_port}= | ${200}
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP6 packet routed over DUT1 interfaces. \
+| | ... | Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=TCP | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=TCP | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=TCP | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip6-flow-ip6-ntuple-tcp-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-ntuple-udp-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-ntuple-udp-scapy.robot
new file mode 100644
index 0000000000..e338750711
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-ntuple-udp-scapy.robot
@@ -0,0 +1,128 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FLOW | NTUPLE | UDP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-flow-ip6-ntuple-udp
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP6_N_TUPLE flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP6-UDP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP6_N_TUPLE flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b
+| ${dst_ip}= | 1011:2022:3033:4044:5055:6066:7077:8088
+| ${src_port}= | ${100}
+| ${dst_port}= | ${200}
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP6 packet routed over DUT1 interfaces. \
+| | ... | Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=UDP | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=UDP | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 N Tuple Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | ${src_port} | ${dst_port}
+| | ... | proto=UDP | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | src_port=${src_port} | dst_port=${dst_port}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip6-flow-ip6-ntuple-udp-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-tcp-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-tcp-scapy.robot
new file mode 100644
index 0000000000..09ddbe40a2
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-tcp-scapy.robot
@@ -0,0 +1,123 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FLOW | TCP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-flow-ip6-tcp
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP6 flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP6-TCP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP6 flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b
+| ${dst_ip}= | 1011:2022:3033:4044:5055:6066:7077:8088
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP6 packet routed over DUT1 interfaces. \
+| | ... | Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=TCP
+| | ... | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=TCP
+| | ... | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=TCP
+| | ... | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=TCP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip6-flow-ip6-tcp-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-udp-scapy.robot b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-udp-scapy.robot
new file mode 100644
index 0000000000..089436413c
--- /dev/null
+++ b/tests/vpp/device/flow/2n1l-10ge2p1x710-ethip6-flow-ip6-udp-scapy.robot
@@ -0,0 +1,123 @@
+# Copyright (c) 2022 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FLOW | UDP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-flow-ip6-udp
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IP6 flow test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IP6-UDP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IP6 flow.
+| ... |
+| ... | - **[Ver] TG verification:** Verify if the flow action is correct.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${src_ip}= | 2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b
+| ${dst_ip}= | 1011:2022:3033:4044:5055:6066:7077:8088
+| ${rxq}= | ${4}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IP6 packet routed over DUT1 interfaces. \
+| | ... | Make VPP verify flow packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${rxq}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=UDP
+| | ... | action=redirect-to-queue | value=${${rxq}-1}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=redirect-to-queue | action_value=${${rxq}-1}
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=UDP
+| | ... | action=drop
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=drop
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+| |
+| | Clear Packet Trace On Dut | ${dut1}
+| | Vpp Enable Traces On Dut | ${dut1}
+| | ${flow_index} = | And Vpp Create Ip6 Flow | ${dut1}
+| | ... | ${src_ip} | ${dst_ip} | proto=UDP
+| | ... | action=mark | value=${7}
+| | And Vpp Flow Enable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | Then Send flow packet and verify action
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | flow_type=IP6 | proto=UDP
+| | ... | src_ip=${src_ip} | dst_ip=${dst_ip}
+| | ... | action=mark
+| | And Vpp Flow Disable | ${dut1} | ${DUT1_${int}1}[0] | ${flow_index}
+| | And Vpp Flow Del | ${dut1} | ${flow_index}
+
+*** Test Cases ***
+| 64B-0c-ethip6-flow-ip6-udp-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/flow/regenerate_testcases.py b/tests/vpp/device/flow/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/flow/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethicmp4-ip4base-eth-1tap-namespace-scapy.robot b/tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethicmp4-ip4base-eth-1tap-namespace-scapy.robot
new file mode 100644
index 0000000000..453b774a7f
--- /dev/null
+++ b/tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethicmp4-ip4base-eth-1tap-namespace-scapy.robot
@@ -0,0 +1,117 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | BASE | IP4BASE | 1TAP | NAMESPACE
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethicmp4-ip4base-eth-1tap-namespace
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test | namespace
+| Test Teardown | Tear down test | packet_trace | telemetry | namespace
+|
+| Test Template | Local Template
+|
+| Documentation | **Tap Interface Traffic Tests**
+| ... |
+| ... | - **[Top] Network Topologies:** TG=DUT1 2-node topology with two links \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-ICMPv4 for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-domain (L2BD) MAC learning enabled; Split Horizon Groups (SHG) \
+| ... | are set depending on test case; Namespaces (NM) \
+| ... | are set on DUT1 with attached linux-TAP.
+| ... |
+| ... | - **[Ver] TG verification:** Test ICMPv4 Echo Request packets \
+| ... | are sent by TG on link to DUT1; On receipt TG verifies packets \
+| ... | for correctness and their IPv4 src-addr, dst-addr, and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${tap1_VPP_ip}= | 16.0.10.1
+| ${tap1_NM_ip}= | 16.0.10.2
+| ${tap1_NM_mac}= | 02:00:00:00:00:02
+| ${dut_ip_address}= | 192.168.0.1
+| ${tg_ip_address}= | 192.168.0.2
+| ${tg_ip_address_GW}= | 192.168.0.0
+| ${prefix}= | 24
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure two interface addresses with IPv4 of \
+| | ... | which one is TAP interface (dut_to_tg_if and TAP) and one is \
+| | ... | linux-TAP in namespace.
+| | ... | - **[Ver]** Packet sent from TG gets to the destination and \
+| | ... | ICMP-reply is received on TG.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | ${int1}= | And Add Tap Interface | ${dut1} | tap0
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${int1} | ${tap1_VPP_ip} | ${prefix}
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut_ip_address} | ${prefix}
+| | And Set Interface State | ${dut1} | ${int1} | up
+| | And Create Namespace | ${dut1} | nmspace1
+| | And Attach Interface To Namespace | ${dut1} | nmspace1 | tap0
+| | And Set Linux Interface MAC
+| | ... | ${dut1} | tap0 | ${tap1_NM_mac} | nmspace1
+| | And Set Linux Interface IP
+| | ... | ${dut1} | tap0 | ${tap1_NM_ip} | ${prefix} | nmspace1
+| | And VPP Add IP Neighbor
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${tg_ip_address} | ${TG_pf1_mac}[0]
+| | And VPP Add IP Neighbor
+| | ... | ${dut1} | ${int1} | ${tap1_NM_ip} | ${tap1_NM_mac}
+| | And Add Linux Route
+| | ... | ${dut1} | ${tg_ip_address_GW} | ${prefix} | ${tap1_VPP_ip} | nmspace1
+| | Then Send ICMP echo request and verify answer
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_vf1_mac}[0] | ${TG_pf1_mac}[0]
+| | ... | ${tap1_NM_ip} | ${tg_ip_address}
+
+*** Test Cases ***
+| 64B-0c-ethicmp4-ip4base-eth-1tap-namespace-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethicmp4-ip4base-eth-1tap-scapy.robot b/tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethicmp4-ip4base-eth-1tap-scapy.robot
new file mode 100644
index 0000000000..eb654109ea
--- /dev/null
+++ b/tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethicmp4-ip4base-eth-1tap-scapy.robot
@@ -0,0 +1,112 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | BASE | IP4BASE | 1TAP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethicmp4-ip4base-eth-1tap
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test | namespace
+| Test Teardown | Tear down test | packet_trace | telemetry | namespace
+|
+| Test Template | Local Template
+|
+| Documentation | **Tap Interface Traffic Tests**
+| ... |
+| ... | - **[Top] Network Topologies:** TG=DUT1 2-node topology with two links \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-ICMPv4 for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-domain (L2BD) MAC learning enabled; Split Horizon Groups (SHG) \
+| ... | are set depending on test case; Namespaces (NM) \
+| ... | are set on DUT1 with attached linux-TAP.
+| ... |
+| ... | - **[Ver] TG verification:** Test ICMPv4 Echo Request packets \
+| ... | are sent by TG on link to DUT1; On receipt TG verifies packets \
+| ... | for correctness and their IPv4 src-addr, dst-addr, and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${tap1_VPP_ip}= | 16.0.10.1
+| ${tap1_NM_ip}= | 16.0.10.2
+| ${tap1_NM_mac}= | 02:00:00:00:00:02
+| ${dut_ip_address}= | 192.168.0.1
+| ${tg_ip_address}= | 192.168.0.2
+| ${tg_ip_address_GW}= | 192.168.0.0
+| ${prefix}= | 24
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure two interface addresses with IPv4 of \
+| | ... | which one is TAP interface (dut_to_tg_if and TAP) and one is \
+| | ... | linux-TAP.
+| | ... | - **[Ver]** Packet sent from TG gets to the destination and \
+| | ... | ICMP-reply is received on TG.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | ${int1}= | And Add Tap Interface | ${dut1} | tap0
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${int1} | ${tap1_VPP_ip} | ${prefix}
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut_ip_address} | ${prefix}
+| | And Set Interface State | ${dut1} | ${int1} | up
+| | And Set Linux Interface MAC | ${dut1} | tap0 | ${tap1_NM_mac}
+| | And Set Linux Interface IP | ${dut1} | tap0 | ${tap1_NM_ip} | ${prefix}
+| | And Add Linux Route
+| | ... | ${dut1} | ${tg_ip_address_GW} | ${prefix} | ${tap1_VPP_ip}
+| | And VPP Add IP Neighbor
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${tg_ip_address} | ${TG_pf1_mac}[0]
+| | And VPP Add IP Neighbor
+| | ... | ${dut1} | ${int1} | ${tap1_NM_ip} | ${tap1_NM_mac}
+| | Then Send ICMP echo request and verify answer
+| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_vf1_mac}[0] | ${TG_pf1_mac}[0]
+| | ... | ${tap1_NM_ip} | ${tg_ip_address}
+
+*** Test Cases ***
+| 64B-0c-ethicmp4-ip4base-eth-1tap-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2tap-scapy.robot b/tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2tap-scapy.robot
new file mode 100644
index 0000000000..21cad9a38b
--- /dev/null
+++ b/tests/vpp/device/interfaces/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2tap-scapy.robot
@@ -0,0 +1,100 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2BD | BASE | 2TAP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2bdbasemaclrn-eth-2tap
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test | namespace
+| Test Teardown | Tear down test | packet_trace | telemetry | namespace
+| ... | linux_bridge
+|
+| Test Template | Local Template
+|
+| Documentation | **Tap Interface Traffic Tests**
+| ... |
+| ... | - **[Top] Network Topologies:** TG=DUT1 2-node topology with two links \
+| ... | between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-domain (L2BD) MAC learning enabled; Split Horizon Groups (SHG) \
+| ... | are set depending on test case; Namespaces (NM) \
+| ... | are set on DUT1 with attached linux-TAP.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets with IP protocol=61 \
+| ... | are sent by TG on link to DUT1; On receipt TG verifies packets \
+| ... | for correctness and their IPv4 src-addr, dst-addr, and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${bid_TAP}= | tapBr
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Packet sent from TG is passed through all L2BD and \
+| | ... | received back on TG. Then src_ip, dst_ip and MAC are checked.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | ${int1}= | And Add Tap Interface | ${dut1} | tap0
+| | ${int2}= | And Add Tap Interface | ${dut1} | tap1
+| | And Set Interface State | ${dut1} | ${int1} | up
+| | And Set Interface State | ${dut1} | ${int2} | up
+| | And Create L2 BD | ${dut1} | 19 | learn=${TRUE}
+| | And Create L2 BD | ${dut1} | 20 | learn=${TRUE}
+| | And Linux Add Bridge | ${dut1} | ${bid_TAP} | tap0 | tap1
+| | And Add interface to bridge domain | ${dut1} | ${int1} | 20 | 0
+| | And Add interface to bridge domain | ${dut1} | ${DUT1_${int}1}[0] | 20 | 0
+| | And Add interface to bridge domain | ${dut1} | ${int2} | 19 | 0
+| | And Add interface to bridge domain | ${dut1} | ${DUT1_${int}2}[0] | 19 | 0
+| | Then Send IP packet and verify received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2bdbasemaclrn-eth-2tap-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot b/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot
deleted file mode 100644
index 6e86a70ba1..0000000000
--- a/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE | 1TAP | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethicmpv4-ip4base-eth-1tap
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test | namespace
-| Test Teardown | Tear down test | packet_trace | namespace
-|
-| Test Template | Local Template
-|
-| Documentation | *Tap Interface Traffic Tests*
-| ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links
-| ... | between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for L2 switching of
-| ... | IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2
-| ... | bridge-domain (L2BD) MAC learning enabled; Split Horizon Groups (SHG)
-| ... | are set depending on test case; Namespaces (NM)
-| ... | are set on DUT1 with attached linux-TAP.
-| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets
-| ... | are sent by TG on link to DUT1; On receipt TG verifies packets
-| ... | for correctness and their IPv4 src-addr, dst-addr, and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-| ${tap1_VPP_ip}= | 16.0.10.1
-| ${tap1_NM_ip}= | 16.0.10.2
-| ${tap1_NM_mac}= | 02:00:00:00:00:02
-| ${dut_ip_address}= | 192.168.0.1
-| ${tg_ip_address}= | 192.168.0.2
-| ${tg_ip_address_GW}= | 192.168.0.0
-| ${prefix}= | 24
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure two interface addresses with IPv4 of which\
-| | ... | one is TAP interface (dut_to_tg_if and TAP) and one is linux-TAP.
-| | ... | [Ver] Packet sent from TG gets to the destination and ICMP-reply is\
-| | ... | received on TG.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | ${int1}= | And Add Tap Interface | ${dut1} | tap0
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${int1} | ${tap1_VPP_ip} | ${prefix}
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut_ip_address} | ${prefix}
-| | And Set Interface State | ${dut1} | ${int1} | up
-| | And Set Linux Interface MAC | ${dut1} | tap0 | ${tap1_NM_mac}
-| | And Set Linux Interface IP | ${dut1} | tap0 | ${tap1_NM_ip} | ${prefix}
-| | And Add Linux Route
-| | ... | ${dut1} | ${tg_ip_address_GW} | ${prefix} | ${tap1_VPP_ip}
-| | And VPP Add IP Neighbor
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${tg_ip_address} | ${TG_pf1_mac}[0]
-| | And VPP Add IP Neighbor
-| | ... | ${dut1} | ${int1} | ${tap1_NM_ip} | ${tap1_NM_mac}
-| | Then Send ICMP echo request and verify answer
-| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_vf1_mac}[0] | ${TG_pf1_mac}[0]
-| | ... | ${tap1_NM_ip} | ${tg_ip_address}
-
-*** Test Cases ***
-| 64B-ethicmpv4-ip4base-eth-1tap-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-namespace-dev.robot b/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-namespace-dev.robot
deleted file mode 100644
index 88bd61e25d..0000000000
--- a/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-namespace-dev.robot
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE | 1TAP | NAMESPACE
-| ... | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethicmpv4-ip4base-eth-1tap-namespace
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test | namespace
-| Test Teardown | Tear down test | packet_trace | namespace
-|
-| Test Template | Local Template
-|
-| Documentation | *Tap Interface Traffic Tests*
-| ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links
-| ... | between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for L2 switching of
-| ... | IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2
-| ... | bridge-domain (L2BD) MAC learning enabled; Split Horizon Groups (SHG)
-| ... | are set depending on test case; Namespaces (NM)
-| ... | are set on DUT1 with attached linux-TAP.
-| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets
-| ... | are sent by TG on link to DUT1; On receipt TG verifies packets
-| ... | for correctness and their IPv4 src-addr, dst-addr, and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-| ${tap1_VPP_ip}= | 16.0.10.1
-| ${tap1_NM_ip}= | 16.0.10.2
-| ${tap1_NM_mac}= | 02:00:00:00:00:02
-| ${dut_ip_address}= | 192.168.0.1
-| ${tg_ip_address}= | 192.168.0.2
-| ${tg_ip_address_GW}= | 192.168.0.0
-| ${prefix}= | 24
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure two interface addresses with IPv4 of which\
-| | ... | one is TAP interface (dut_to_tg_if and TAP) and one is linux-TAP in\
-| | ... | namespace.
-| | ... | [Ver] Packet sent from TG gets to the destination and ICMP-reply is\
-| | ... | received on TG.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | ${int1}= | And Add Tap Interface | ${dut1} | tap0
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${int1} | ${tap1_VPP_ip} | ${prefix}
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut_ip_address} | ${prefix}
-| | And Set Interface State | ${dut1} | ${int1} | up
-| | And Create Namespace | ${dut1} | nmspace1
-| | And Attach Interface To Namespace | ${dut1} | nmspace1 | tap0
-| | And Set Linux Interface MAC
-| | ... | ${dut1} | tap0 | ${tap1_NM_mac} | nmspace1
-| | And Set Linux Interface IP
-| | ... | ${dut1} | tap0 | ${tap1_NM_ip} | ${prefix} | nmspace1
-| | And VPP Add IP Neighbor
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${tg_ip_address} | ${TG_pf1_mac}[0]
-| | And VPP Add IP Neighbor
-| | ... | ${dut1} | ${int1} | ${tap1_NM_ip} | ${tap1_NM_mac}
-| | And Add Linux Route
-| | ... | ${dut1} | ${tg_ip_address_GW} | ${prefix} | ${tap1_VPP_ip} | nmspace1
-| | Then Send ICMP echo request and verify answer
-| | ... | ${tg} | ${TG_pf1}[0] | ${DUT1_vf1_mac}[0] | ${TG_pf1_mac}[0]
-| | ... | ${tap1_NM_ip} | ${tg_ip_address}
-
-*** Test Cases ***
-| 64B-ethicmpv4-ip4base-eth-1tap-namespace-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/interfaces/eth2p-ethipv4-l2bdbasemaclrn-eth-2tap-dev.robot b/tests/vpp/device/interfaces/eth2p-ethipv4-l2bdbasemaclrn-eth-2tap-dev.robot
deleted file mode 100644
index 93c6d8d73e..0000000000
--- a/tests/vpp/device/interfaces/eth2p-ethipv4-l2bdbasemaclrn-eth-2tap-dev.robot
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2BD | BASE | 2TAP | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2bdbasemaclrn-eth-2tap
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test | namespace
-| Test Teardown | Tear down test | packet_trace | namespace | linux_bridge
-|
-| Test Template | Local Template
-|
-| Documentation | *Tap Interface Traffic Tests*
-|
-| ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links
-| ... | between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of
-| ... | IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2
-| ... | bridge-domain (L2BD) MAC learning enabled; Split Horizon Groups (SHG)
-| ... | are set depending on test case; Namespaces (NM)
-| ... | are set on DUT1 with attached linux-TAP.
-| ... | *[Ver] TG verification:* Test IPv4 packets with IP protocol=61
-| ... | are sent by TG on link to DUT1; On receipt TG verifies packets
-| ... | for correctness and their IPv4 src-addr, dst-addr, and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-| ${bid_TAP}= | tapBr
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Packet sent from TG is passed through all L2BD and received\
-| | ... | back on TG. Then src_ip, dst_ip and MAC are checked.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | ${int1}= | And Add Tap Interface | ${dut1} | tap0
-| | ${int2}= | And Add Tap Interface | ${dut1} | tap1
-| | And Set Interface State | ${dut1} | ${int1} | up
-| | And Set Interface State | ${dut1} | ${int2} | up
-| | And Create L2 BD | ${dut1} | 19 | learn=${TRUE}
-| | And Create L2 BD | ${dut1} | 20 | learn=${TRUE}
-| | And Linux Add Bridge | ${dut1} | ${bid_TAP} | tap0 | tap1
-| | And Add interface to bridge domain | ${dut1} | ${int1} | 20 | 0
-| | And Add interface to bridge domain | ${dut1} | ${DUT1_${int}1}[0] | 20 | 0
-| | And Add interface to bridge domain | ${dut1} | ${int2} | 19 | 0
-| | And Add interface to bridge domain | ${dut1} | ${DUT1_${int}2}[0] | 19 | 0
-| | Then Send IP packet and verify received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2bdbasemaclrn-eth-2tap-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/interfaces/regenerate_testcases.py b/tests/vpp/device/interfaces/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/interfaces/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-scapy.robot b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-scapy.robot
new file mode 100644
index 0000000000..2dfa607276
--- /dev/null
+++ b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-scapy.robot
@@ -0,0 +1,92 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | ADLALWLIST | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4base-adlalwlistbase
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **ADL Security IPv4 allowlist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and static routes. ADL security allowlist are applied on DUT1 ingress \
+| ... | interface from TG.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | adl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv4 on its interface to DUT1; \
+| | ... | verify received IPv4 pkts are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And Add Fib Table | ${dut1} | 1
+| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
+| | And ADL Add allowlist Entry | ${dut1} | ${DUT1_${int}1}[0] | ip4 | 1
+| | And ADL interface enable or disable | ${dut1} | ${DUT1_${int}1}[0] | enable
+| | Then Send packet and verify headers
+| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-ip4base-adlalwlistbase-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlblklistbase-scapy.robot b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlblklistbase-scapy.robot
new file mode 100644
index 0000000000..2ebb0e67a9
--- /dev/null
+++ b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlblklistbase-scapy.robot
@@ -0,0 +1,92 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | ADLBLKLIST | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4base-adlblklistbase
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **ADL Security IPv4 allowlist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and static routes. ADL security allowlist are applied on DUT1 ingress \
+| ... | interface from TG.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | adl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv4 on its interface to DUT1; \
+| | ... | verify received IPv4 pkts are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And Add Fib Table | ${dut1} | 1
+| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
+| | And ADL Add allowlist Entry | ${dut1} | ${DUT1_${int}1}[0] | ip4 | 1
+| | And ADL interface enable or disable | ${dut1} | ${DUT1_${int}1}[0] | enable
+| | Then Packet transmission from port to port should fail
+| | ... | ${tg} | 100.0.0.2 | 200.0.0.2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-ip4base-adlblklistbase-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-scapy.robot b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-scapy.robot
new file mode 100644
index 0000000000..1c39e866f8
--- /dev/null
+++ b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-scapy.robot
@@ -0,0 +1,96 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | IACLDST | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4base-iacldstbase
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | classify
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 iAcl whitelist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and static routes. IPv4 iAcl security whitelist is applied on DUT1 \
+| ... | ingress interface from TG.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv4 on its interface to DUT1; \
+| | ... | verify received IPv4 pkts are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
+| | ... | ${dut1} | ip4 | dst | 255.255.255.255
+| | And Vpp Configures Classify Session L3
+| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n} | ip4 | dst
+| | ... | 20.20.20.2
+| | And Vpp Enable Input Acl Interface
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ip4 | ${table_idx}
+| | Then Send packet and verify headers
+| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-ip4base-iacldstbase-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-scapy.robot b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-scapy.robot
new file mode 100644
index 0000000000..2899393b9e
--- /dev/null
+++ b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-scapy.robot
@@ -0,0 +1,92 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | POLICE_MARK | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4base-ipolicemarkbase
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | classify
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 policer test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 configure interfaces IPv4 \
+| ... | addresses and static ARP record on the second interface. On DUT1 \
+| ... | configure 2R3C color-aware policer on the first interface.
+| ... |
+| ... | - **[Ver] TG verification:** Test packet is sent from TG on the first \
+| ... | link to DUT1. Packet is received on TG on the second link from DUT1.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2474, RFC2697, \
+| ... | RFC2698.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${cir}= | ${100}
+| ${eir}= | ${150}
+| ${dscp}= | AF22
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Test packet is sent from TG on the first link to DUT1. \
+| | ... | Packet is received on TG on the second link from DUT1.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | Given Set Max Rate And Jumbo
+| | And Set Rates For Policer
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And Initialize IPv4 policer 2r3c-'ca' in circular topology
+| | Then Send packet and verify marking
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+| | ... | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | 10.10.10.2 | 20.20.20.2
+
+*** Test Cases ***
+| 64B-0c-ethip4-ip4base-ipolicemarkbase-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-scapy.robot b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-scapy.robot
new file mode 100644
index 0000000000..399f780940
--- /dev/null
+++ b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4-ip4base-scapy.robot
@@ -0,0 +1,91 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | BASE | IP4BASE | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 routing test cases**
+| ...
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing on both \
+| ... | links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and two static IPv4 /24 route entries.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packet with IP protocol=61 is \
+| ... | sent in one direction by TG on links to DUT1; on receive TG verifies \
+| ... | packet for correctness and their IPv4 src-addr, dst-addr and MAC \
+| ... | addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC791, RFC826, RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv4 packet routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv4 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | remote_host1_ip=192.168.0.1 | remote_host2_ip=192.168.0.2
+| | Then Send packet and verify headers
+| | ... | ${tg} | 192.168.0.1 | 192.168.0.2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-ip4base-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44det-scapy.robot b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44det-scapy.robot
new file mode 100644
index 0000000000..bc641af789
--- /dev/null
+++ b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44det-scapy.robot
@@ -0,0 +1,117 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/ip/nat.robot
+| Resource | resources/libraries/robot/shared/traffic.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | NAT44 | NAT44_DETERMINISTIC
+| ... | BASE | TCP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44det
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | det44
+|
+| Test Template | Local Template
+|
+| Documentation | **NAT44 deterministic mode test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** Eth-IPv4-TCP packet is sent from TG to \
+| ... | DUT1 in one direction. Packet is received and verified for correctness \
+| ... | on TG. Then Eth-IPv4-TCP packet is sent from TG in opposite direction. \
+| ... | Packet is received and verified for correctness on TG.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC791, RFC793, \
+| ... | RFC3022 and RFC4787.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | det44_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# IP addresing
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${20}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${20}
+| ${dest_net}= | 30.0.0.0
+| ${dest_mask}= | ${24}
+# proto layer settings
+| ${protocol}= | TCP
+| ${src_port_in}= | 1024
+| ${dst_port}= | 8080
+# NAT settings
+| ${nat_mode}= | deterministic
+| ${in_net}= | 20.0.0.0
+| ${in_mask}= | ${32}
+| ${out_net}= | 200.0.0.0
+| ${out_mask}= | ${32}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Ver]** Make TG send IPv4 packet routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv4 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 deterministic mode in circular topology
+| | Then Send TCP or UDP packet and verify network address translations
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${DUT1_vf2_mac}[0] | ${in_net} | ${out_net} | ${dest_net}
+| | ... | ${protocol} | ${src_port_in} | ${dst_port}
+
+*** Test Cases ***
+| 64B-0c-ethip4tcp-nat44det-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-scapy.robot b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-scapy.robot
new file mode 100644
index 0000000000..2f6ed76f36
--- /dev/null
+++ b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-scapy.robot
@@ -0,0 +1,120 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/ip/nat.robot
+| Resource | resources/libraries/robot/shared/traffic.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | NAT44
+| ... | NAT44_ENDPOINT_DEPENDENT | BASE | TCP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | nat-ed
+|
+| Test Template | Local Template
+|
+| Documentation | **Connections per second NAT44 endpoint-dependent mode
+| ... | performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /18 route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** Eth-IPv4-TCP packet is sent from TG to \
+| ... | DUT1 in one direction. Packet is received and verified for correctness \
+| ... | on TG. Then Eth-IPv4-TCP packet is sent from TG in opposite direction. \
+| ... | Packet is received and verified for correctness on TG.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC791, RFC793, \
+| ... | RFC3022 and RFC4787.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${22}
+# proto layer settings
+| ${protocol}= | TCP
+| ${src_port_in}= | 1024
+| ${dst_port}= | 8080
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${n_sessions}= | ${64512}
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${22}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.0
+| ${out_mask}= | ${32}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Ver]** Make TG send IPv4 packet routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv4 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send TCP or UDP packet and verify network address translations
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${DUT1_vf2_mac}[0] | ${in_net} | ${out_net} | ${dest_net}
+| | ... | ${protocol} | ${src_port_in} | ${dst_port}
+
+*** Test Cases ***
+| 64B-0c-ethip4tcp-nat44ed-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-scapy.robot b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-scapy.robot
new file mode 100644
index 0000000000..56ea25f313
--- /dev/null
+++ b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-scapy.robot
@@ -0,0 +1,117 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/ip/nat.robot
+| Resource | resources/libraries/robot/shared/traffic.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | NAT44 | NAT44_DETERMINISTIC
+| ... | BASE | UDP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44det
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | det44
+|
+| Test Template | Local Template
+|
+| Documentation | **NAT44 deterministic mode test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** Eth-IPv4-UDP packet is sent from TG to \
+| ... | DUT1 in one direction. Packet is received and verified for correctness \
+| ... | on TG. Then Eth-IPv4-UDP packet is sent from TG in opposite direction. \
+| ... | Packet is received and verified for correctness on TG.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC791, RFC768, \
+| ... | RFC3022 and RFC4787.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | det44_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# IP addresing
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${20}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${20}
+| ${dest_net}= | 30.0.0.0
+| ${dest_mask}= | ${24}
+# proto layer settings
+| ${protocol}= | UDP
+| ${src_port_in}= | 1024
+| ${dst_port}= | 8080
+# NAT settings
+| ${nat_mode}= | deterministic
+| ${in_net}= | 20.0.0.0
+| ${in_mask}= | ${32}
+| ${out_net}= | 200.0.0.0
+| ${out_mask}= | ${32}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Ver]** Make TG send IPv4 packet routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv4 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 deterministic mode in circular topology
+| | Then Send TCP or UDP packet and verify network address translations
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${DUT1_vf2_mac}[0] | ${in_net} | ${out_net} | ${dest_net}
+| | ... | ${protocol} | ${src_port_in} | ${dst_port}
+
+*** Test Cases ***
+| 64B-0c-ethip4udp-nat44det-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-scapy.robot b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-scapy.robot
new file mode 100644
index 0000000000..9c84afabce
--- /dev/null
+++ b/tests/vpp/device/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-scapy.robot
@@ -0,0 +1,120 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/ip/nat.robot
+| Resource | resources/libraries/robot/shared/traffic.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | NAT44
+| ... | NAT44_ENDPOINT_DEPENDENT | BASE | UDP | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | nat-ed
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput NAT44 endpoint-dependent mode
+| ... | performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** Eth-IPv4-UDP packet is sent from TG to \
+| ... | DUT1 in one direction. Packet is received and verified for correctness \
+| ... | on TG. Then Eth-IPv4-UDP packet is sent from TG in opposite direction. \
+| ... | Packet is received and verified for correctness on TG.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC791, RFC768, \
+| ... | RFC3022 and RFC4787.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${22}
+# proto layer settings
+| ${protocol}= | UDP
+| ${src_port_in}= | 1024
+| ${dst_port}= | 8080
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${n_sessions}= | ${64512}
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${22}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.0
+| ${out_mask}= | ${32}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Ver]** Make TG send IPv4 packet routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv4 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send TCP or UDP packet and verify network address translations
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${DUT1_vf2_mac}[0] | ${in_net} | ${out_net} | ${dest_net}
+| | ... | ${protocol} | ${src_port_in} | ${dst_port}
+
+*** Test Cases ***
+| 64B-0c-ethip4udp-nat44ed-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-adlalwlistbase-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-adlalwlistbase-dev.robot
deleted file mode 100644
index b839bed5a3..0000000000
--- a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-adlalwlistbase-dev.robot
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | FEATURE | ADLALWLIST | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4-ip4base-adlalwlistbase
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *ADL Security IPv4 allowlist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
-| ... | static routes. ADL security allowlist are applied on DUT1 ingress \
-| ... | interface from TG.
-| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | adl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 on its interface to DUT1; \
-| | ... | verify received IPv4 pkts are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And ADL Add allowlist Entry | ${dut1} | ${DUT1_${int}1}[0] | ip4 | 1
-| | And ADL interface enable or disable | ${dut1} | ${DUT1_${int}1}[0] | enable
-| | Then Send packet and verify headers
-| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 64B-ethip4-ip4base-adlalwlistbase-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-adlblklistbase-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-adlblklistbase-dev.robot
deleted file mode 100644
index bd35ccd623..0000000000
--- a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-adlblklistbase-dev.robot
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | FEATURE | ADLBLKLIST | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4-ip4base-adlblklistbase
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *ADL Security IPv4 allowlist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
-| ... | static routes. ADL security allowlist are applied on DUT1 ingress \
-| ... | interface from TG.
-| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | adl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 on its interface to DUT1; \
-| | ... | verify received IPv4 pkts are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | And Add Fib Table | ${dut1} | 1
-| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE}
-| | And ADL Add allowlist Entry | ${dut1} | ${DUT1_${int}1}[0] | ip4 | 1
-| | And ADL interface enable or disable | ${dut1} | ${DUT1_${int}1}[0] | enable
-| | Then Packet transmission from port to port should fail
-| | ... | ${tg} | 100.0.0.2 | 200.0.0.2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 64B-ethip4-ip4base-adlblklistbase-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-iacldstbase-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-iacldstbase-dev.robot
deleted file mode 100644
index b34ad495ee..0000000000
--- a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-iacldstbase-dev.robot
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | FEATURE | IACLDST | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4-ip4base-iacldstbase
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | classify
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 iAcl whitelist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
-| ... | static routes. IPv4 iAcl security whitelist is applied on DUT1 ingress \
-| ... | interface from TG.
-| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 on its interface to DUT1; \
-| | ... | verify received IPv4 pkts are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip4 | dst | 255.255.255.255
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n} | ip4 | dst
-| | ... | 20.20.20.2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | ip4 | ${table_idx}
-| | Then Send packet and verify headers
-| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 64B-ethip4-ip4base-iacldstbase-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-dev.robot
deleted file mode 100644
index 5c1122211c..0000000000
--- a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-dev.robot
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | FEATURE | POLICE_MARK | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4-ip4base-ipolicemarkbase
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | classify
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 policer test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links.
-| ... | *[Cfg] DUT configuration:* On DUT1 configure interfaces IPv4 adresses, \
-| ... | and static ARP record on the second interface. On DUT1 configure 2R3C \
-| ... | color-aware policer on the first interface.
-| ... | *[Ver] TG verification:* Test packet is sent from TG on the first link \
-| ... | to DUT1. Packet is received on TG on the second link from DUT1.
-| ... | *[Ref] Applicable standard specifications:* RFC2474, RFC2697, RFC2698.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-| ${cir}= | ${100}
-| ${eir}= | ${150}
-| ${dscp}= | AF22
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Test packet is sent from TG on the first link to DUT1. \
-| | ... | Packet is received on TG on the second link from DUT1.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | Given Set Max Rate And Jumbo
-| | And Set Rates For Policer
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | And Initialize IPv4 policer 2r3c-'ca' in circular topology
-| | Then Send packet and verify marking
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | 10.10.10.2 | 20.20.20.2
-
-*** Test Cases ***
-| 64B-ethip4-ip4base-ipolicemarkbase-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethip4tcp-nat44det-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4tcp-nat44det-dev.robot
deleted file mode 100644
index d564c8c398..0000000000
--- a/tests/vpp/device/ip4/eth2p-ethip4tcp-nat44det-dev.robot
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/ip/nat.robot
-| Resource | resources/libraries/robot/shared/traffic.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | FEATURE | NAT44 | NAT44_DETERMINISTIC
-| ... | BASE | TCP | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-nat44det-dev
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | det44
-|
-| Test Template | Local Template
-|
-| Documentation | *NAT44 deterministic mode test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /${dest_mask} route entries.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* Eth-IPv4-TCP packet is sent from TG to DUT1 in\
-| ... | one direction. Packet is received and verified for correctness on TG.\
-| ... | Then Eth-IPv4-TCP packet is sent from TG in opposite direction. Packet\
-| ... | is received and verified for correctness on TG.
-| ... | *[Ref] Applicable standard specifications:* RFC791, RFC793, RFC3022,
-| ... | RFC4787.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | det44_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# IP addresing
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${20}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${20}
-| ${dest_net}= | 30.0.0.0
-| ${dest_mask}= | ${24}
-# proto layer settings
-| ${protocol}= | TCP
-| ${src_port_in}= | 1024
-| ${dst_port}= | 8080
-# NAT settings
-| ${nat_mode}= | deterministic
-| ${in_net}= | 20.0.0.0
-| ${in_mask}= | ${32}
-| ${out_net}= | 200.0.0.0
-| ${out_mask}= | ${32}
-
-*** Keywords ***
-| Local Template
-| |
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
-| | ... | [Ver] Make TG send IPv4 packet routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv4 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 deterministic mode in circular topology
-| | Then Send TCP or UDP packet and verify network address translations
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${DUT1_vf2_mac}[0] | ${in_net} | ${out_net} | ${dest_net}
-| | ... | ${protocol} | ${src_port_in} | ${dst_port}
-
-*** Test Cases ***
-| 64B-ethip4tcp-nat44det-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethip4tcp-nat44ed-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4tcp-nat44ed-dev.robot
deleted file mode 100644
index c72fae1870..0000000000
--- a/tests/vpp/device/ip4/eth2p-ethip4tcp-nat44ed-dev.robot
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/ip/nat.robot
-| Resource | resources/libraries/robot/shared/traffic.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | FEATURE | NAT44 | NAT44_ENDPOINT_DEPENDENT
-| ... | BASE | TCP | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-nat44ed-dev
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | nat-ed
-|
-| Test Template | Local Template
-|
-| Documentation | *Connections per second NAT44 endpoint-dependent mode
-| ... | performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /18 route entries.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* Eth-IPv4-TCP packet is sent from TG to DUT1 in\
-| ... | one direction. Packet is received and verified for correctness on TG.\
-| ... | Then Eth-IPv4-TCP packet is sent from TG in opposite direction. Packet\
-| ... | is received and verified for correctness on TG.
-| ... | *[Ref] Applicable standard specifications:* RFC791, RFC793, RFC3022,
-| ... | RFC4787.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.0.0.0
-| ${dest_mask}= | ${22}
-# proto layer settings
-| ${protocol}= | TCP
-| ${src_port_in}= | 1024
-| ${dst_port}= | 8080
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${n_sessions}= | ${64512}
-| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${22}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.0
-| ${out_mask}= | ${32}
-
-*** Keywords ***
-| Local Template
-| |
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
-| | ... | [Ver] Make TG send IPv4 packet routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv4 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Send TCP or UDP packet and verify network address translations
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${DUT1_vf2_mac}[0] | ${in_net} | ${out_net} | ${dest_net}
-| | ... | ${protocol} | ${src_port_in} | ${dst_port}
-
-*** Test Cases ***
-| 64B-ethip4tcp-nat44ed-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethip4udp-nat44det-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4udp-nat44det-dev.robot
deleted file mode 100644
index 5803b4e590..0000000000
--- a/tests/vpp/device/ip4/eth2p-ethip4udp-nat44det-dev.robot
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/ip/nat.robot
-| Resource | resources/libraries/robot/shared/traffic.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | FEATURE | NAT44 | NAT44_DETERMINISTIC
-| ... | BASE | UDP | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-nat44det-dev
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | det44
-|
-| Test Template | Local Template
-|
-| Documentation | *NAT44 deterministic mode test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /${dest_mask} route entries.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* Eth-IPv4-UDP packet is sent from TG to DUT1 in\
-| ... | one direction. Packet is received and verified for correctness on TG.\
-| ... | Then Eth-IPv4-UDP packet is sent from TG in opposite direction. Packet\
-| ... | is received and verified for correctness on TG.
-| ... | *[Ref] Applicable standard specifications:* RFC791, RFC768, RFC3022,
-| ... | RFC4787.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | det44_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# IP addresing
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${20}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${20}
-| ${dest_net}= | 30.0.0.0
-| ${dest_mask}= | ${24}
-# proto layer settings
-| ${protocol}= | UDP
-| ${src_port_in}= | 1024
-| ${dst_port}= | 8080
-# NAT settings
-| ${nat_mode}= | deterministic
-| ${in_net}= | 20.0.0.0
-| ${in_mask}= | ${32}
-| ${out_net}= | 200.0.0.0
-| ${out_mask}= | ${32}
-
-*** Keywords ***
-| Local Template
-| |
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
-| | ... | [Ver] Make TG send IPv4 packet routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv4 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 deterministic mode in circular topology
-| | Then Send TCP or UDP packet and verify network address translations
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${DUT1_vf2_mac}[0] | ${in_net} | ${out_net} | ${dest_net}
-| | ... | ${protocol} | ${src_port_in} | ${dst_port}
-
-*** Test Cases ***
-| 64B-ethip4udp-nat44det-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethip4udp-nat44ed-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4udp-nat44ed-dev.robot
deleted file mode 100644
index 18f648f2dc..0000000000
--- a/tests/vpp/device/ip4/eth2p-ethip4udp-nat44ed-dev.robot
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/ip/nat.robot
-| Resource | resources/libraries/robot/shared/traffic.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | FEATURE | NAT44 | NAT44_ENDPOINT_DEPENDENT
-| ... | BASE | UDP | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-nat44ed-dev
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | nat-ed
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput NAT44 endpoint-dependent mode
-| ... | performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /${dest_mask} route entries.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* Eth-IPv4-UDP packet is sent from TG to DUT1 in\
-| ... | one direction. Packet is received and verified for correctness on TG.\
-| ... | Then Eth-IPv4-UDP packet is sent from TG in opposite direction. Packet\
-| ... | is received and verified for correctness on TG.
-| ... | *[Ref] Applicable standard specifications:* RFC791, RFC768, RFC3022,
-| ... | RFC4787.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.0.0.0
-| ${dest_mask}= | ${22}
-# proto layer settings
-| ${protocol}= | UDP
-| ${src_port_in}= | 1024
-| ${dst_port}= | 8080
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${n_sessions}= | ${64512}
-| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${22}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.0
-| ${out_mask}= | ${32}
-
-*** Keywords ***
-| Local Template
-| |
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
-| | ... | [Ver] Make TG send IPv4 packet routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv4 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Send TCP or UDP packet and verify network address translations
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${DUT1_vf2_mac}[0] | ${in_net} | ${out_net} | ${dest_net}
-| | ... | ${protocol} | ${src_port_in} | ${dst_port}
-
-*** Test Cases ***
-| 64B-ethip4udp-nat44ed-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethipv4-ip4base-dev.robot b/tests/vpp/device/ip4/eth2p-ethipv4-ip4base-dev.robot
deleted file mode 100644
index 8e4997ab67..0000000000
--- a/tests/vpp/device/ip4/eth2p-ethipv4-ip4base-dev.robot
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-ip4base
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 routing test cases*
-| ...
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing on both \
-| ... | links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
-| ... | two static IPv4 /24 route entries.
-| ... | *[Ver] TG verification:* Test IPv4 packet with IP protocol=61 is sent \
-| ... | in one direction by TG on links to DUT1; on receive TG verifies packet \
-| ... | for correctness and their IPv4 src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 packet routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv4 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | remote_host1_ip=192.168.0.1 | remote_host2_ip=192.168.0.2
-| | Then Send packet and verify headers
-| | ... | ${tg} | 192.168.0.1 | 192.168.0.2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-ip4base-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/regenerate_testcases.py b/tests/vpp/device/ip4/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/ip4/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-scapy.robot b/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-scapy.robot
new file mode 100644
index 0000000000..926c0296ac
--- /dev/null
+++ b/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-scapy.robot
@@ -0,0 +1,112 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/ip/geneve.robot
+| Resource | resources/libraries/robot/shared/traffic.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | ENCAP | GENEVE
+| ... | GENEVE_L3MODE | GENEVE4_1TUN | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4--ethip4udpgeneve-1tun-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | geneve4
+|
+| Test Template | Local Template
+|
+| Documentation | **L2BD with GENEVE L3 mode test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 between TG-if1 and \
+| ... | DUT1-if1 and Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 \
+| ... | for IPv4 routing over GENEVE tunnel.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | over GENEVE tunnel and 4 static IPv4 /24 route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** Test Eth-IPv4 packet is sent by TG-if1 on \
+| ... | link to DUT1-if1; on receive by TG-if2 the encapsulated packet is \
+| ... | verified for correctness and its outer and inner IPv4 and MAC \
+| ... | addresses, UDP ports and GENEVE vni and protocol number. Then test. \
+| ... | Eth-IPv4-UDP-GENEVE-Eth-IPv4 packet is sent by TG-if2 on link to \
+| ... | DUT1-if2; on receive by TG-if1 decapsulated packet is verified for \
+| ... | correctness and its IPv4 and MAC addresses
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC791, RFC768, RFC8926.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | geneve_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# IP settings
+| ${dut1_if1_ip4}= | 20.0.0.1
+| ${dut1_if2_ip4}= | 30.0.0.1
+| ${tg_if1_ip4}= | 20.0.0.2
+| ${tg_if2_ip4}= | 30.0.0.2
+# GENEVE settings
+| ${gen_mode}= | L3
+| ${n_tunnels}= | ${1}
+| &{gen_tunnel}=
+| ... | local=1.1.1.2 | remote=1.1.1.1 | vni=${1}
+| ... | src_ip=10.128.1.0 | dst_ip=10.0.1.0 | ip_mask=${24} | if_ip=11.0.1.2
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs GENEVE ${gen_mode} mode configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize GENEVE L3 mode in circular topology
+| | Then Send IP packet and verify GENEVE encapsulation in received packets
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+| | ... | ${DUT1_vf1_mac}[0] | ${DUT1_vf2_mac}[0]
+| | ... | ${gen_tunnel}[local] | ${gen_tunnel}[remote] | ${gen_tunnel}[vni]
+| | ... | ${gen_tunnel}[src_ip] | ${gen_tunnel}[dst_ip]
+
+*** Test Cases ***
+| 64B-0c-ethip4--ethip4udpgeneve-1tun-ip4base-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-scapy.robot b/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-scapy.robot
new file mode 100644
index 0000000000..a8c9246ec3
--- /dev/null
+++ b/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-scapy.robot
@@ -0,0 +1,91 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | L2BDMACLRN | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4vxlan-l2bdbasemaclrn
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **L2BD with VXLANoIPv4 test cases**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet encapsulations:** Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 on \
+| ... | TG-DUT.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | cross-connect switching.combined with MAC learning enable. \
+| ... | VXLAN tunnels are configured on links betwen TG and DUT.
+| ... |
+| ... | - **[Ver] TG verification:** Test Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 \
+| ... | packet is sent by TG on link to DUT1; on receive TG verifies packets \
+| ... | for correctness and their IPv4 src-addr, dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC7348.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vxlan_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${50}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send VXLAN encapsulated Ethernet frame; verify \
+| | ... | all packets are received.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize layer ip4vxlan
+| | And Initialize L2 bridge domain
+| | Then Send VXLAN encapsulated packet and verify received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+| | ... | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | 172.17.0.2 | 172.16.0.1 | ${0} | 172.26.0.1 | 172.27.0.2 | ${0}
+
+*** Test Cases ***
+| 64B-0c-ethip4vxlan-l2bdbasemaclrn-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2xcbase-scapy.robot b/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2xcbase-scapy.robot
new file mode 100644
index 0000000000..7b84de1af0
--- /dev/null
+++ b/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2xcbase-scapy.robot
@@ -0,0 +1,90 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | L2XCBASE | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4vxlan-l2xcbase
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **L2XC with VXLANoIPv4 test cases**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet encapsulations:** Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 on \
+| ... | TG-DUT.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | VXLAN tunnels are configured on links betwen TG and DUT.
+| ... |
+| ... | - **[Ver] TG verification:** Test Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 \
+| ... | packet is sent by TG on link to DUT1; on receive TG verifies packets \
+| ... | for correctness and their IPv4 src-addr, dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC7348.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vxlan_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${50}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send VXLAN encapsulated Ethernet frame; verify \
+| | ... | all packets are received.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize layer ip4vxlan
+| | And Initialize L2 cross connect
+| | Then Send VXLAN encapsulated packet and verify received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+| | ... | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | 172.17.0.2 | 172.16.0.1 | ${0} | 172.26.0.1 | 172.27.0.2 | ${0}
+
+*** Test Cases ***
+| 64B-0c-ethip4vxlan-l2xcbase-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/eth2p-ethip4--ethip4udpgeneve-1tun-ip4base-dev.robot b/tests/vpp/device/ip4_tunnels/eth2p-ethip4--ethip4udpgeneve-1tun-ip4base-dev.robot
deleted file mode 100644
index fe20d6dd6d..0000000000
--- a/tests/vpp/device/ip4_tunnels/eth2p-ethip4--ethip4udpgeneve-1tun-ip4base-dev.robot
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/ip/geneve.robot
-| Resource | resources/libraries/robot/shared/traffic.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | IP4BASE | UDP | ENCAP | GENEVE
-| ... | GENEVE_L3MODE | GENEVE4_1TUN | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4--ethip4udpgeneve-1tun-ip4base
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | geneve4
-|
-| Test Template | Local Template
-|
-| Documentation | *L2BD with GENEVE L3 mode test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 between TG-if1 and DUT1-if1 and\
-| ... | Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 for IPv4\
-| ... | routing over GENEVE tunnel.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing over\
-| ... | GENEVE tunnel and 4 static IPv4 /24 route entries.\
-| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* Test Eth-IPv4 packet is sent by TG-if1 on link\
-| ... | to DUT1-if1; on receive by TG-if2 the encapsulated packet is verified\
-| ... | for correctness and its outer and inner IPv4 and MAC addresses, UDP\
-| ... | ports and GENEVE vni and protocol number. Then test\
-| ... | Eth-IPv4-UDP-GENEVE-Eth-IPv4 packet is sent by TG-if2 on link to\
-| ... | DUT1-if2; on receive by TG-if1 decapsulated packet is verified for\
-| ... | correctness and its IPv4 and MAC addresses
-| ... | *[Ref] Applicable standard specifications:* RFC791, RFC768, RFC8926.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | geneve_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# IP settings
-| ${dut1_if1_ip4}= | 20.0.0.1
-| ${dut1_if2_ip4}= | 30.0.0.1
-| ${tg_if1_ip4}= | 20.0.0.2
-| ${tg_if2_ip4}= | 30.0.0.2
-# GENEVE settings
-| ${gen_mode}= | L3
-| ${n_tunnels}= | ${1}
-| &{gen_tunnel}=
-| ... | local=1.1.1.2 | remote=1.1.1.1 | vni=${1}
-| ... | src_ip=10.128.1.0 | dst_ip=10.0.1.0 | ip_mask=${24} | if_ip=11.0.1.2
-
-*** Keywords ***
-| Local Template
-| |
-| | [Documentation]
-| | ... | [Cfg] DUT runs GENEVE ${gen_mode} mode configuration.
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize GENEVE L3 mode in circular topology
-| | Then Send IP packet and verify GENEVE encapsulation in received packets
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${DUT1_vf1_mac}[0] | ${DUT1_vf2_mac}[0]
-| | ... | ${gen_tunnel}[local] | ${gen_tunnel}[remote] | ${gen_tunnel}[vni]
-| | ... | ${gen_tunnel}[src_ip] | ${gen_tunnel}[dst_ip]
-| | And Show Geneve Tunnel Data | ${nodes['DUT1']}
-
-*** Test Cases ***
-| 64B-ethip4--ethip4udpgeneve-1tun-ip4base-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/eth2p-ethip4vxlan-l2bdbasemaclrn-dev.robot b/tests/vpp/device/ip4_tunnels/eth2p-ethip4vxlan-l2bdbasemaclrn-dev.robot
deleted file mode 100644
index 0d9607129a..0000000000
--- a/tests/vpp/device/ip4_tunnels/eth2p-ethip4vxlan-l2bdbasemaclrn-dev.robot
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | L2BDMACLRN | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY
-| ... | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4vxlan-l2bdbasemaclrn
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *L2BD with VXLANoIPv4 test cases*
-|
-| ... | *[Top] Network topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet encapsulations:* Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 on\
-| ... | TG-DUT.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain\
-| ... | switching combined with MAC learning enable.\
-| ... | VXLAN tunnels are configured on links betwen TG and DUT.
-| ... | *[Ver] TG verification:* Test Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 packet is\
-| ... | sent by TG on link to DUT1; on receive TG verifies packets for\
-| ... | correctness and their IPv4 src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC7348.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${50}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send VXLAN encapsulated Ethernet frame; verify\
-| | ... | all packets are received.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize layer ip4vxlan
-| | And Initialize L2 bridge domain
-| | Then Send VXLAN encapsulated packet and verify received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | 172.17.0.2 | 172.16.0.1 | ${0} | 172.26.0.1 | 172.27.0.2 | ${0}
-
-*** Test Cases ***
-| 114B-ethip4vxlan-l2bdbasemaclrn-dev
-| | [Tags] | 114B
-| | frame_size=${114} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/eth2p-ethip4vxlan-l2xcbase-dev.robot b/tests/vpp/device/ip4_tunnels/eth2p-ethip4vxlan-l2xcbase-dev.robot
deleted file mode 100644
index beff215e8f..0000000000
--- a/tests/vpp/device/ip4_tunnels/eth2p-ethip4vxlan-l2xcbase-dev.robot
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | L2XCBASE | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY
-| ... | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4vxlan-l2xcbase
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *L2XC with VXLANoIPv4 test cases*
-|
-| ... | *[Top] Network topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet encapsulations:* Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 on\
-| ... | TG-DUT.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect.\
-| ... | VXLAN tunnels are configured on links betwen TG and DUT.
-| ... | *[Ver] TG verification:* Test Eth-IPv4-VXLAN-Eth-IPv4-ICMPv4 packet is\
-| ... | sent by TG on link to DUT1; on receive TG verifies packets for\
-| ... | correctness and their IPv4 src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC7348.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${50}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send VXLAN encapsulated Ethernet frame; verify\
-| | ... | all packets are received.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize layer ip4vxlan
-| | And Initialize L2 cross connect
-| | Then Send VXLAN encapsulated packet and verify received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | 172.17.0.2 | 172.16.0.1 | ${0} | 172.26.0.1 | 172.27.0.2 | ${0}
-
-*** Test Cases ***
-| 114B-ethip4vxlan-l2xcbase-dev
-| | [Tags] | 114B
-| | frame_size=${114} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lisp-ip4base-scapy.robot b/tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lisp-ip4base-scapy.robot
new file mode 100644
index 0000000000..a3f2c60a8e
--- /dev/null
+++ b/tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lisp-ip4base-scapy.robot
@@ -0,0 +1,97 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Variables | resources/test_data/lisp/lisp.py
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP4FWD | LISP | LISP_IP4o4 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4lisp-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **ip4-lisp-ip4 encapsulation test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node \
+| ... | circular with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-LISP-IPv4-ICMPv4 \
+| ... | on DUT1-TG, Eth-IPv4-ICMPv4 on TG-DUTn for IPv4 routing \
+| ... | over LISPoIPv4 tunnel.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT is configured with IPv4. \
+| ... | routing and static routes. LISPoIPv4 tunnel is \
+| ... | configured between DUT1 and TG2.
+| ... |
+| ... | - **[Ver] TG verification:** Test ICMPv4 Echo Request packets \
+| ... | are sent by TG on if1 link to DUT1; on receive TG verifies \
+| ... | packets for correctness and their IPv4 src-addr, dst-addr \
+| ... | and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC6830.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lisp_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${54}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure LISP.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Configure topology for IPv4 LISP testing
+| | And Configure LISP in 2-node circular topology
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
+| | ... | ${duts_locator_set} | ${dut1_ip4_eid}
+| | ... | ${dut1_to_tg_ip4_static_adjacency}
+| | Then Send packet and verify LISP encap
+| | ... | ${tg} | ${tg_if1_ip4} | ${dst_ip4}
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+| | ... | ${src_rloc4} | ${dst_rloc4}
+
+*** Test Cases ***
+| 64B-0c-ethip4lisp-ip4base-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lispgpe-ip4base-scapy.robot b/tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lispgpe-ip4base-scapy.robot
new file mode 100644
index 0000000000..e77829a07c
--- /dev/null
+++ b/tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lispgpe-ip4base-scapy.robot
@@ -0,0 +1,98 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Variables | resources/test_data/lisp/lisp.py
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP4FWD | LISP | LISPGPE_IP4o4 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4lispgpe-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **ip4-lispgpe-ip4 encapsulation test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node \
+| ... | circular with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-LISPGPE-IPv4-ICMPv4 \
+| ... | on DUT1-TG, Eth-IPv4-ICMPv4 on TG-DUTn for IPv4. \
+| ... | routing over LISPoIPv4 tunnel.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and TG(if2) are configured \
+| ... | with IPv4 routing and static routes. LISPoIPv4 tunnel is \
+| ... | configured between DUT1 and TG.
+| ... |
+| ... | - **[Ver] TG verification:** Test ICMPv4 Echo Request packets \
+| ... | are sent in TG->DUT(if1); On receive TG(if2) verifies packets \
+| ... | for correctness and their IPv4 src-addr, dst-addr and \
+| ... | MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC6830.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lisp_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${54}
+| ${is_gpe}= | ${1}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure LISP.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Configure topology for IPv4 LISP testing
+| | And Configure LISP in 2-node circular topology
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
+| | ... | ${duts_locator_set} | ${dut1_ip4_eid}
+| | ... | ${dut1_to_tg_ip4_static_adjacency} | ${is_gpe}
+| | Then Send packet and verify LISP GPE encap
+| | ... | ${tg} | ${tg_if1_ip4} | ${dst_ip4}
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+| | ... | ${src_rloc4} | ${dst_rloc4}
+
+*** Test Cases ***
+| 64B-0c-ethip4lispgpe-ip4base-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lispgpe-ip6base-scapy.robot b/tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lispgpe-ip6base-scapy.robot
new file mode 100644
index 0000000000..741244712a
--- /dev/null
+++ b/tests/vpp/device/ip4_tunnels/lisp/2n1l-10ge2p1x710-ethip4lispgpe-ip6base-scapy.robot
@@ -0,0 +1,100 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Variables | resources/test_data/lisp/lisp.py
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP4FWD | LISP | LISPGPE_IP6o4 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4lispgpe-ip6base
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **ip4-lispgpe-ip6 encapsulation test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG(if1)-DUT1-TG(if2) 2-node \
+| ... | circular with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-LISPGPE-IPv6-ICMPv6 \
+| ... | on DUT1-TG(if2),Eth-IPv6-ICMPv6 on TG-DUTn for IPv6 \
+| ... | routing over LISPoIPv4 tunnel.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and TG(if2) are configured \
+| ... | with IPv6 routing and static routes. LISPoIPv4 tunnel is \
+| ... | configured between DUT1 and TG(if2).
+| ... |
+| ... | - **[Ver] TG verification:** Test ICMPv6 Echo Request packets \
+| ... | are sent in if1 by TG on links to DUT1; on receive \
+| ... | TG verifies packets for correctness and their IPv6 src-addr, \
+| ... | dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC6830.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lisp_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${54}
+| ${ot_mode}= | 6to4
+| ${is_gpe}= | ${1}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure LISPGPE.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Configure topology for IPv6 LISPoIP4 testing
+| | And Vpp Interfaces RA Suppress On All Nodes | ${nodes}
+| | And Configure LISP in 2-node circular topology
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
+| | ... | ${duts_locator_set} | ${dut1_ip6o4_eid}
+| | ... | ${dut1_ip6o4_static_adjacency} | ${is_gpe}
+| | Then Send packet and verify LISPoTunnel encap
+| | ... | ${tg} | ${tg_if1_ip6} | ${dst_ip6}
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+| | ... | ${src_rloc4} | ${dst_rloc4} | ${ot_mode}
+
+*** Test Cases ***
+| 64B-0c-ethip4lispgpe-ip6base-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lisp-ip4base-dev.robot b/tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lisp-ip4base-dev.robot
deleted file mode 100644
index ed2efca8f2..0000000000
--- a/tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lisp-ip4base-dev.robot
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Variables | resources/test_data/lisp/lisp.py
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP4FWD | LISP | LISP_IP4o4 | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4lisp-ip4base
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *ip4-lisp-ip4 encapsulation test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node\
-| ... | circular topology with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-LISP-IPv4-ICMPv4\
-| ... | on DUT1-TG, Eth-IPv4-ICMPv4 on TG-DUTn for IPv4 routing\
-| ... | over LISPoIPv4 tunnel.
-| ... | *[Cfg] DUT configuration:* DUT is configured with IPv4\
-| ... | routing and static routes. LISPoIPv4 tunnel is\
-| ... | configured between DUT1 and TG2.
-| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets\
-| ... | are sent by TG on if1 link to DUT1; on receive TG verifies\
-| ... | packets for correctness and their IPv4 src-addr, dst-addr\
-| ... | and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC6830.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lisp_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${54}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure LISP.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Configure topology for IPv4 LISP testing
-| | And Configure LISP in 2-node circular topology
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
-| | ... | ${duts_locator_set} | ${dut1_ip4_eid}
-| | ... | ${dut1_to_tg_ip4_static_adjacency}
-| | Then Send packet and verify LISP encap
-| | ... | ${tg} | ${tg_if1_ip4} | ${dst_ip4}
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-| | ... | ${src_rloc4} | ${dst_rloc4}
-
-*** Test Cases ***
-| 46B-ethip4lisp-ip4base-dev
-| | [Tags] | 46B
-| | frame_size=${46} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lispgpe-ip4base-dev.robot b/tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lispgpe-ip4base-dev.robot
deleted file mode 100644
index f74fe75ca3..0000000000
--- a/tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lispgpe-ip4base-dev.robot
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Variables | resources/test_data/lisp/lisp.py
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP4FWD | LISP | LISPGPE_IP4o4 | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4lispgpe-ip4base
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *ip4-lispgpe-ip4 encapsulation test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node\
-| ... | circular topology with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-LISPGPE-IPv4-ICMPv4\
-| ... | on DUT1-TG, Eth-IPv4-ICMPv4 on TG-DUTn for IPv4\
-| ... | routing over LISPoIPv4 tunnel.
-| ... | *[Cfg] DUT configuration:* DUT1 and TG(if2) are configured\
-| ... | with IPv4 routing and static routes. LISPoIPv4 tunnel is\
-| ... | configured between DUT1 and TG.
-| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets\
-| ... | are sent in TG->DUT(if1); On receive TG(if2) verifies packets\
-| ... | for correctness and their IPv4 src-addr, dst-addr and\
-| ... | MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC6830.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lisp_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${54}
-| ${is_gpe}= | ${1}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure LISP.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Configure topology for IPv4 LISP testing
-| | And Configure LISP in 2-node circular topology
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
-| | ... | ${duts_locator_set} | ${dut1_ip4_eid}
-| | ... | ${dut1_to_tg_ip4_static_adjacency} | ${is_gpe}
-| | Then Send packet and verify LISP GPE encap
-| | ... | ${tg} | ${tg_if1_ip4} | ${dst_ip4}
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-| | ... | ${src_rloc4} | ${dst_rloc4}
-
-*** Test Cases ***
-| 46B-ethip4lispgpe-ip4base-dev
-| | [Tags] | 46B
-| | frame_size=${46} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lispgpe-ip6base-dev.robot b/tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lispgpe-ip6base-dev.robot
deleted file mode 100644
index 263b74890f..0000000000
--- a/tests/vpp/device/ip4_tunnels/lisp/eth2p-ethip4lispgpe-ip6base-dev.robot
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Variables | resources/test_data/lisp/lisp.py
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP4FWD | LISP | LISPGPE_IP6o4 | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4lispgpe-ip6base
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *ip4-lispgpe-ip6 encapsulation test cases*
-|
-| ... | *[Top] Network Topologies:* TG(if1)-DUT1-TG(if2) 2-node\
-| ... | circular topology with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-LISPGPE-IPv6-ICMPv6\
-| ... | on DUT1-TG(if2),Eth-IPv6-ICMPv6 on TG-DUTn for IPv6\
-| ... | routing over LISPoIPv4 tunnel.
-| ... | *[Cfg] DUT configuration:* DUT1 and TG(if2) are configured\
-| ... | with IPv6 routing and static routes. LISPoIPv4 tunnel is\
-| ... | configured between DUT1 and TG(if2).
-| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets\
-| ... | are sent in if1 by TG on links to DUT1; on receive\
-| ... | TG verifies packets for correctness and their IPv6 src-addr,\
-| ... | dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC6830.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lisp_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${54}
-| ${ot_mode}= | 6to4
-| ${is_gpe}= | ${1}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure LISPGPE\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Configure topology for IPv6 LISPoIP4 testing
-| | And Vpp Interfaces RA Suppress On All Nodes | ${nodes}
-| | And Configure LISP in 2-node circular topology
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
-| | ... | ${duts_locator_set} | ${dut1_ip6o4_eid}
-| | ... | ${dut1_ip6o4_static_adjacency} | ${is_gpe}
-| | Then Send packet and verify LISPoTunnel encap
-| | ... | ${tg} | ${tg_if1_ip6} | ${dst_ip6}
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-| | ... | ${src_rloc4} | ${dst_rloc4} | ${ot_mode}
-
-*** Test Cases ***
-| 62B-ethip4lispgpe-ip6base-dev
-| | [Tags] | 62B
-| | frame_size=${62} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4_tunnels/lisp/regenerate_testcases.py b/tests/vpp/device/ip4_tunnels/lisp/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/ip4_tunnels/lisp/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/ip4_tunnels/regenerate_testcases.py b/tests/vpp/device/ip4_tunnels/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/ip4_tunnels/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-scapy.robot b/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-scapy.robot
new file mode 100644
index 0000000000..1b1f759ae5
--- /dev/null
+++ b/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-scapy.robot
@@ -0,0 +1,92 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | ADLALWLIST | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6base-adlalwlistbase
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **ADL Security IPv6 allowlist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | and static routes. ADL security allowlists are applied on DUT1 ingress \
+| ... | interface from TG.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv6 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | adl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv6 on its interface to DUT1; \
+| | ... | verify received IPv6 pkts are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv6 forwarding in circular topology
+| | And Add Fib Table | ${dut1} | 1 | ipv6=${TRUE}
+| | And Vpp Route Add | ${dut1} | 2001:1:: | 64 | vrf=1 | local=${TRUE}
+| | And ADL Add allowlist Entry | ${dut1} | ${DUT1_${int}1}[0] | ip6 | 1
+| | And ADL interface enable or disable | ${dut1} | ${DUT1_${int}1}[0] | enable
+| | Then Send packet and verify headers
+| | ... | ${tg} | 2001:1::2 | 2001:2::2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 78B-0c-ethip6-ip6base-adlalwlistbase-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlblklistbase-scapy.robot b/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlblklistbase-scapy.robot
new file mode 100644
index 0000000000..ea70db0dd9
--- /dev/null
+++ b/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlblklistbase-scapy.robot
@@ -0,0 +1,92 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | ADLBLKLIST | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6base-adlblklistbase
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **ADL Security IPv6 allowlist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | and static routes. ADL security allowlists are applied on DUT1 ingress \
+| ... | interface from TG.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv6 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | adl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv6 on its interface to DUT1; \
+| | ... | verify received IPv6 pkts are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv6 forwarding in circular topology
+| | And Add Fib Table | ${dut1} | 1 | ipv6=${True}
+| | And Vpp Route Add | ${dut1} | 2002:1::0 | 64 | vrf=1 | local=${True}
+| | And ADL Add allowlist Entry | ${dut1} | ${DUT1_${int}1}[0] | ip6 | 1
+| | And ADL interface enable or disable | ${dut1} | ${DUT1_${int}1}[0] | enable
+| | Then Packet transmission from port to port should fail
+| | ... | ${tg} | 2002:1::2 | 2002:2::2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 78B-0c-ethip6-ip6base-adlblklistbase-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-scapy.robot b/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-scapy.robot
new file mode 100644
index 0000000000..2b000d998e
--- /dev/null
+++ b/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-scapy.robot
@@ -0,0 +1,96 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | IACLDST | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6base-iacldstbase
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | classify
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv6 iAcl whitelist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | static routes. IPv6 iAcl security whitelist is applied on DUT1 ingress \
+| ... | interface from TG.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv6 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv6 on its interface to DUT1; \
+| | ... | verify received IPv6 pkts are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv6 forwarding in circular topology
+| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
+| | ... | ${dut1} | ip6 | dst | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+| | And Vpp Configures Classify Session L3
+| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n} | ip6 | dst
+| | ... | 2001:2::2
+| | And Vpp Enable Input Acl Interface
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | ip6 | ${table_idx}
+| | Then Send packet and verify headers
+| | ... | ${tg} | 2001:1::2 | 2001:2::2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 78B-0c-ethip6-ip6base-iacldstbase-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ipolicemarkbase-scapy.robot b/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ipolicemarkbase-scapy.robot
new file mode 100644
index 0000000000..bfd7d541c4
--- /dev/null
+++ b/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ipolicemarkbase-scapy.robot
@@ -0,0 +1,93 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | POLICE_MARK | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6base-ipolicemarkbase
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | classify
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 policer test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 configure interfaces IPv6 \
+| ... | addresses and static ARP record on the second interface. On DUT1 \
+| ... | configure 2R3C color-aware policer on the first interface.
+| ... |
+| ... | - **[Ver] TG verification:** Test packet is sent from TG on the first \
+| ... | link to DUT1. Packet is received on TG on the second link from DUT1.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2474, RFC2697, \
+| ... | RFC2698.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${cir}= | ${100}
+| ${eir}= | ${150}
+| ${dscp}= | AF22
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Test packet is sent from TG on the first link to DUT1. \
+| | ... | Packet is received on TG on the second link from DUT1.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Set Rates For Policer
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv6 forwarding in circular topology
+| | And Initialize IPv6 policer 2r3c-'ca' in circular topology
+| | Then Send packet and verify marking
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+| | ... | ${TG_pf1_mac}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | 2001:1::2 | 2001:2::2
+
+*** Test Cases ***
+| 78B-0c-ethip6-ip6base-ipolicemarkbase-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-scapy.robot b/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-scapy.robot
new file mode 100644
index 0000000000..fe689ae680
--- /dev/null
+++ b/tests/vpp/device/ip6/2n1l-10ge2p1x710-ethip6-ip6base-scapy.robot
@@ -0,0 +1,90 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | BASE | IP6BASE | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6base
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing on \
+| ... | both links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | two static IPv6 /64 route entries.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv6 packet is sent in one \
+| ... | direction by TG on links to DUT1; on receive TG verifies packet for \
+| ... | correctness and their IPv6 src-addr, dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2460, RFC4443, \
+| ... | RFC4861.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv6 packet routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv6 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv6 forwarding in circular topology
+| | ... | remote_host1_ip=3ffe:5f::1 | remote_host2_ip=3ffe:5f::2
+| | Then Send packet and verify headers
+| | ... | ${tg} | 3ffe:5f::1 | 3ffe:5f::2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 78B-0c-ethip6-ip6base-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-adlalwlistbase-dev.robot b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-adlalwlistbase-dev.robot
deleted file mode 100644
index eb9616d751..0000000000
--- a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-adlalwlistbase-dev.robot
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | FEATURE | ADLALWLIST | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6-ip6base-adlalwlistbase
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *ADL Security IPv6 allowlist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
-| ... | static routes. ADL security allowlists are applied on DUT1 ingress \
-| ... | interface from TG.
-| ... | *[Ver] TG verification:* Test IPv6 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | adl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv6 on its interface to DUT1; \
-| | ... | verify received IPv6 pkts are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv6 forwarding in circular topology
-| | And Add Fib Table | ${dut1} | 1 | ipv6=${TRUE}
-| | And Vpp Route Add | ${dut1} | 2001:1:: | 64 | vrf=1 | local=${TRUE}
-| | And ADL Add allowlist Entry | ${dut1} | ${DUT1_${int}1}[0] | ip6 | 1
-| | And ADL interface enable or disable | ${dut1} | ${DUT1_${int}1}[0] | enable
-| | Then Send packet and verify headers
-| | ... | ${tg} | 2001:1::2 | 2001:2::2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 78B-ethip6-ip6base-adlalwlistbase-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-adlblklistbase-dev.robot b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-adlblklistbase-dev.robot
deleted file mode 100644
index 7640521677..0000000000
--- a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-adlblklistbase-dev.robot
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | FEATURE | ADLBLKLIST | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6-ip6base-adlblklistbase
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *ADL Security IPv6 allowlist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
-| ... | static routes. ADL security allowlists are applied on DUT1 ingress \
-| ... | interface from TG.
-| ... | *[Ver] TG verification:* Test IPv6 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | adl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv6 on its interface to DUT1; \
-| | ... | verify received IPv6 pkts are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv6 forwarding in circular topology
-| | And Add Fib Table | ${dut1} | 1 | ipv6=${True}
-| | And Vpp Route Add | ${dut1} | 2002:1::0 | 64 | vrf=1 | local=${True}
-| | And ADL Add allowlist Entry | ${dut1} | ${DUT1_${int}1}[0] | ip6 | 1
-| | And ADL interface enable or disable | ${dut1} | ${DUT1_${int}1}[0] | enable
-| | Then Packet transmission from port to port should fail
-| | ... | ${tg} | 2002:1::2 | 2002:2::2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 78B-ethip6-ip6base-adlblklistbase-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-iacldstbase-dev.robot b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-iacldstbase-dev.robot
deleted file mode 100644
index 7d64477be5..0000000000
--- a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-iacldstbase-dev.robot
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | FEATURE | IACLDST | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6-ip6base-iacldstbase
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | classify
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv6 iAcl whitelist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
-| ... | static routes. IPv6 iAcl security whitelist is applied on DUT1 ingress \
-| ... | interface from TG.
-| ... | *[Ver] TG verification:* Test IPv6 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv6 on its interface to DUT1; \
-| | ... | verify received IPv6 pkts are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv6 forwarding in circular topology
-| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3
-| | ... | ${dut1} | ip6 | dst | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
-| | And Vpp Configures Classify Session L3
-| | ... | ${dut1} | permit | ${table_idx} | ${skip_n} | ${match_n} | ip6 | dst
-| | ... | 2001:2::2
-| | And Vpp Enable Input Acl Interface
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | ip6 | ${table_idx}
-| | Then Send packet and verify headers
-| | ... | ${tg} | 2001:1::2 | 2001:2::2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 78B-ethip6-ip6base-iacldstbase-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-dev.robot b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-dev.robot
deleted file mode 100644
index 688e912767..0000000000
--- a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-dev.robot
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | FEATURE | POLICE_MARK | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6-ip6base-ipolicemarkbase
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | classify
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 policer test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 on all links.
-| ... | *[Cfg] DUT configuration:* On DUT1 configure interfaces IPv6 adresses, \
-| ... | and static ARP record on the second interface. On DUT1 configure 2R3C \
-| ... | color-aware policer on the first interface.
-| ... | *[Ver] TG verification:* Test packet is sent from TG on the first link \
-| ... | to DUT1. Packet is received on TG on the second link from DUT1.
-| ... | *[Ref] Applicable standard specifications:* RFC2474, RFC2697, RFC2698.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-| ${cir}= | ${100}
-| ${eir}= | ${150}
-| ${dscp}= | AF22
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Test packet is sent from TG on the first link to DUT1. \
-| | ... | Packet is received on TG on the second link from DUT1.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Set Rates For Policer
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv6 forwarding in circular topology
-| | And Initialize IPv6 policer 2r3c-'ca' in circular topology
-| | Then Send packet and verify marking
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${TG_pf1_mac}[0] | ${DUT1_${int}1_mac}[0]
-| | ... | 2001:1::2 | 2001:2::2
-
-*** Test Cases ***
-| 78B-ethip6-ip6base-ipolicemarkbase-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/eth2p-ethipv6-ip6base-dev.robot b/tests/vpp/device/ip6/eth2p-ethipv6-ip6base-dev.robot
deleted file mode 100644
index 752cc80f1d..0000000000
--- a/tests/vpp/device/ip6/eth2p-ethipv6-ip6base-dev.robot
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | BASE | IP6BASE | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv6-ip6base
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing on \
-| ... | both links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
-| ... | two static IPv6 /64 route entries.
-| ... | *[Ver] TG verification:* Test IPv6 packet is sent in one direction \
-| ... | by TG on links to DUT1; on receive TG verifies packet for correctness \
-| ... | and their IPv6 src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC2460, RFC4443, RFC4861
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv6 packet routed over DUT1 interfaces;\
-| | ... | Make TG verify IPv6 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv6 forwarding in circular topology
-| | ... | remote_host1_ip=3ffe:5f::1 | remote_host2_ip=3ffe:5f::2
-| | Then Send packet and verify headers
-| | ... | ${tg} | 3ffe:5f::1 | 3ffe:5f::2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 78B-ethipv6-ip6base-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/regenerate_testcases.py b/tests/vpp/device/ip6/regenerate_testcases.py
new file mode 100755
index 0000000000..2cae24e087
--- /dev/null
+++ b/tests/vpp/device/ip6/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot", protocol=u"ip6")
diff --git a/tests/vpp/device/ip6_tunnels/lisp/2n1l-10ge2p1x710-ethip6lispgpe-ip4base-scapy.robot b/tests/vpp/device/ip6_tunnels/lisp/2n1l-10ge2p1x710-ethip6lispgpe-ip4base-scapy.robot
new file mode 100644
index 0000000000..20e11e801c
--- /dev/null
+++ b/tests/vpp/device/ip6_tunnels/lisp/2n1l-10ge2p1x710-ethip6lispgpe-ip4base-scapy.robot
@@ -0,0 +1,99 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Variables | resources/test_data/lisp/lisp.py
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP6FWD | LISP | LISPGPE_IP4o6 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6lispgpe-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **ip6-lispgpe-ip4 encapsulation test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6-LISPGPE-IPv4-ICMPv4 \
+| ... | on DUT1-TG, Eth-IPv4-ICMPv4 on TG-DUTn for IPv6 routing \
+| ... | over LISPoIPv6 tunnel.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and TG(if2) are configured \
+| ... | with IPv6 routing and static routes. LISPoIPv6 tunnel is \
+| ... | configured between DUT1 and TG.
+| ... |
+| ... | - **[Ver] TG verification:** Test ICMPv4 Echo Request packets are \
+| ... | sent in TG->DUT(if1); On receive TG(if2) verifies packets for \
+| ... | correctness and their IPv4 src-addr, dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC6830.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lisp_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${54}
+| ${ot_mode}= | 4to6
+| ${is_gpe}= | ${1}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure LISP. \
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Configure topology for IPv4 LISPoIP6 testing
+| | And Vpp Interfaces RA Suppress On All Nodes | ${nodes}
+| | And Configure LISP in 2-node circular topology
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
+| | ... | ${duts_locator_set} | ${dut1_ip4o6_eid}
+| | ... | ${dut1_ip4o6_static_adjacency} | ${is_gpe}
+| | Then Send packet and verify LISPoTunnel encap
+| | ... | ${tg} | ${tg_if1_ip4} | ${dst_ip4}
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+| | ... | ${src_rloc6} | ${dst_rloc6} | ${ot_mode}
+
+*** Test Cases ***
+| 78B-0c-ethip6lispgpe-ip4base-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6_tunnels/lisp/2n1l-10ge2p1x710-ethip6lispgpe-ip6base-scapy.robot b/tests/vpp/device/ip6_tunnels/lisp/2n1l-10ge2p1x710-ethip6lispgpe-ip6base-scapy.robot
new file mode 100644
index 0000000000..937bd3c5fe
--- /dev/null
+++ b/tests/vpp/device/ip6_tunnels/lisp/2n1l-10ge2p1x710-ethip6lispgpe-ip6base-scapy.robot
@@ -0,0 +1,98 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Variables | resources/test_data/lisp/lisp.py
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | IP6FWD | LISP | LISPGPE_IP6o6 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6lispgpe-ip6base
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **ip6-lispgpe-ip6 encapsulation test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node \
+| ... | circular with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6-LISPGPE-IPv6-ICMPv6 \
+| ... | on DUT1-TG, Eth-IPv6-ICMPv6 on TG-DUTn for IPv6 routing \
+| ... | over LISPoIPv6 tunnel.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and TG(if2) are configured \
+| ... | with IPv6 routing and static routes. LISPoIPv6 tunnel is \
+| ... | configured between DUT1 and TG.
+| ... |
+| ... | - **[Ver] TG verification:** Test ICMPv6 Echo Request packets \
+| ... | are sent in TG->DUT(if1); On receive TG(if2) verifies \
+| ... | packets for correctness and their IPv6 src-addr, \
+| ... | dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC6830.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lisp_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${54}
+| ${is_gpe}= | ${1}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** On DUT1 configure LISP.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Configure topology for IPv6 LISP testing
+| | And Configure LISP in 2-node circular topology
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
+| | ... | ${duts_locator_set} | ${dut1_ip6_eid}
+| | ... | ${dut1_to_tg_ip6_static_adjacency} | ${is_gpe}
+| | Then Send packet and verify LISP GPE encap
+| | ... | ${tg} | ${tg_if1_ip6} | ${dst_ip6}
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+| | ... | ${src_rloc6} | ${dst_rloc6}
+
+*** Test Cases ***
+| 78B-0c-ethip6lispgpe-ip6base-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6_tunnels/lisp/eth2p-ethip6lispgpe-ip4base-dev.robot b/tests/vpp/device/ip6_tunnels/lisp/eth2p-ethip6lispgpe-ip4base-dev.robot
deleted file mode 100644
index fe9ea06e05..0000000000
--- a/tests/vpp/device/ip6_tunnels/lisp/eth2p-ethip6lispgpe-ip4base-dev.robot
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Variables | resources/test_data/lisp/lisp.py
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP6FWD | LISP | LISPGPE_IP4o6 | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6lispgpe-ip4base
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *ip6-lispgpe-ip4 encapsulation test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular\
-| ... | topology with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-LISPGPE-IPv4-ICMPv4\
-| ... | on DUT1-TG, Eth-IPv4-ICMPv4 on TG-DUTn for IPv6 routing\
-| ... | over LISPoIPv6 tunnel.
-| ... | *[Cfg] DUT configuration:* DUT1 and TG(if2) are configured\
-| ... | with IPv6 routing and static routes. LISPoIPv6 tunnel is\
-| ... | configured between DUT1 and TG.
-| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are\
-| ... | sent in TG->DUT(if1); On receive TG(if2) verifies packets for\
-| ... | correctness and their IPv4 src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC6830.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lisp_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${54}
-| ${ot_mode}= | 4to6
-| ${is_gpe}= | ${1}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure LISP.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Configure topology for IPv4 LISPoIP6 testing
-| | And Vpp Interfaces RA Suppress On All Nodes | ${nodes}
-| | And Configure LISP in 2-node circular topology
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
-| | ... | ${duts_locator_set} | ${dut1_ip4o6_eid}
-| | ... | ${dut1_ip4o6_static_adjacency} | ${is_gpe}
-| | Then Send packet and verify LISPoTunnel encap
-| | ... | ${tg} | ${tg_if1_ip4} | ${dst_ip4}
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-| | ... | ${src_rloc6} | ${dst_rloc6} | ${ot_mode}
-
-*** Test Cases ***
-| 46B-ethip6lispgpe-ip4base-dev
-| | [Tags] | 46B
-| | frame_size=${46} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6_tunnels/lisp/eth2p-ethip6lispgpe-ip6base-dev.robot b/tests/vpp/device/ip6_tunnels/lisp/eth2p-ethip6lispgpe-ip6base-dev.robot
deleted file mode 100644
index cf4957b9fd..0000000000
--- a/tests/vpp/device/ip6_tunnels/lisp/eth2p-ethip6lispgpe-ip6base-dev.robot
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Variables | resources/test_data/lisp/lisp.py
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP6FWD | LISP | LISPGPE_IP6o6 | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6lispgpe-ip6base
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *ip6-lispgpe-ip6 encapsulation test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node\
-| ... | circular topology with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-LISPGPE-IPv6-ICMPv6\
-| ... | on DUT1-TG, Eth-IPv6-ICMPv6 on TG-DUTn for IPv6 routing\
-| ... | over LISPoIPv6 tunnel.
-| ... | *[Cfg] DUT configuration:* DUT1 and TG(if2) are configured\
-| ... | with IPv6 routing and static routes. LISPoIPv6 tunnel is\
-| ... | configured between DUT1 and TG.
-| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets\
-| ... | are sent in TG->DUT(if1); On receive TG(if2) verifies\
-| ... | packets for correctness and their IPv6 src-addr,\
-| ... | dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC6830.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lisp_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${54}
-| ${is_gpe}= | ${1}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure LISP.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Configure topology for IPv6 LISP testing
-| | And Configure LISP in 2-node circular topology
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${NONE}
-| | ... | ${duts_locator_set} | ${dut1_ip6_eid}
-| | ... | ${dut1_to_tg_ip6_static_adjacency} | ${is_gpe}
-| | Then Send packet and verify LISP GPE encap
-| | ... | ${tg} | ${tg_if1_ip6} | ${dst_ip6}
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-| | ... | ${src_rloc6} | ${dst_rloc6}
-
-*** Test Cases ***
-| 62B-ethip6lispgpe-ip6base-dev
-| | [Tags] | 62B
-| | frame_size=${62} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6_tunnels/lisp/regenerate_testcases.py b/tests/vpp/device/ip6_tunnels/lisp/regenerate_testcases.py
new file mode 100755
index 0000000000..2cae24e087
--- /dev/null
+++ b/tests/vpp/device/ip6_tunnels/lisp/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot", protocol=u"ip6")
diff --git a/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-iacl1sf-scapy.robot b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-iacl1sf-scapy.robot
new file mode 100644
index 0000000000..81612d2739
--- /dev/null
+++ b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-iacl1sf-scapy.robot
@@ -0,0 +1,104 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL
+| ... | IACL | ACL1 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2bdbasemaclrn-iacl1sf
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | acl
+|
+| Test Template | Local Template
+|
+| Documentation | **L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. Required ACL rules are applied to \
+| ... | input paths of both DUT1 intefaces.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# ACL test setup
+| ${acl_action}= | permit+reflect
+| ${acl_apply_type}= | input
+| ${no_hit_aces_number}= | 1
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs.
+| | ... | - **[Ver]** Make TG send IPv4 packet in one direction between two \
+| | ... | of its interfaces to be switched by DUT to and from docker. \
+| | ... | Make TG verify IPv4 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply Startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize L2 bridge domain with IPv4 ACLs in circular topology
+| | Then Send packet and verify headers
+| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
+| | ... | ${TG_pf2}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2bdbasemaclrn-iacl1sf-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-iacl1sl-scapy.robot b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-iacl1sl-scapy.robot
new file mode 100644
index 0000000000..bfabea5a8c
--- /dev/null
+++ b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-iacl1sl-scapy.robot
@@ -0,0 +1,104 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS
+| ... | IACL | ACL1 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2bdbasemaclrn-iacl1sl
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | acl
+|
+| Test Template | Local Template
+|
+| Documentation | **L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled.Required ACL rules are applied to \
+| ... | input paths of both DUT1 intefaces.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# ACL test setup
+| ${acl_action}= | permit
+| ${acl_apply_type}= | input
+| ${no_hit_aces_number}= | 1
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs.
+| | ... | - **[Ver]** Make TG send IPv4 packet in one direction between two \
+| | ... | of its interfaces to be switched by DUT to and from docker. \
+| | ... | Make TG verify IPv4 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply Startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize L2 bridge domain with IPv4 ACLs in circular topology
+| | Then Send packet and verify headers
+| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
+| | ... | ${TG_pf2}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2bdbasemaclrn-iacl1sl-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-macip-iacl1sl-scapy.robot b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-macip-iacl1sl-scapy.robot
new file mode 100644
index 0000000000..3efe9aac36
--- /dev/null
+++ b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-macip-iacl1sl-scapy.robot
@@ -0,0 +1,105 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS
+| ... | IACL | ACL1 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2bdbasemaclrn-macip-iacl1sl
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | macipacl
+|
+| Test Template | Local Template
+|
+| Documentation | **L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. Required ACL rules are applied to \
+| ... | input paths of both DUT1 intefaces.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# ACL test setup
+| ${acl_action}= | permit
+| ${no_hit_aces_number}= | 1
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${ip_step}= | ${1}
+| ${src_mac_start}= | 01:02:03:04:05:06
+| ${src_mac_step}= | ${1000}
+| ${src_mac_mask}= | 00:00:00:00:00:00
+| ${tg_stream1_mac}= | ca:fe:00:00:00:00
+| ${tg_stream2_mac}= | fa:ce:00:00:00:00
+| ${tg_mac_mask}= | ff:ff:ff:ff:c0:00
+| ${tg_stream1_subnet}= | 10.0.0.0/18
+| ${tg_stream2_subnet}= | 20.0.0.0/18
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs.
+| | ... | - **[Ver]** Make TG send IPv4 packet in one direction between two \
+| | ... | of its interfaces to be switched by DUT to and from docker. \
+| | ... | Make TG verify IPv4 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply Startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize L2 bridge domain with MACIP ACLs in circular topology
+| | Then Send packet and verify headers
+| | ... | ${tg} | 10.0.0.2 | 20.0.0.2
+| | ... | ${TG_pf1}[0] | ${tg_stream1_mac} | ${tg_stream2_mac}
+| | ... | ${TG_pf2}[0] | ${tg_stream1_mac} | ${tg_stream2_mac}
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2bdbasemaclrn-macip-iacl1sl-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-oacl1sf-scapy.robot b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-oacl1sf-scapy.robot
new file mode 100644
index 0000000000..f17d4103e3
--- /dev/null
+++ b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-oacl1sf-scapy.robot
@@ -0,0 +1,104 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL
+| ... | OACL | ACL1 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2bdbasemaclrn-oacl1sf
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | acl
+|
+| Test Template | Local Template
+|
+| Documentation | **L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled.Required ACL rules are applied to \
+| ... | input paths of both DUT1 intefaces.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# ACL test setup
+| ${acl_action}= | permit+reflect
+| ${acl_apply_type}= | output
+| ${no_hit_aces_number}= | 1
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs.
+| | ... | - **[Ver]** Make TG send IPv4 packet in one direction between two \
+| | ... | of its interfaces to be switched by DUT to and from docker. \
+| | ... | Make TG verify IPv4 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply Startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize L2 bridge domain with IPv4 ACLs in circular topology
+| | Then Send packet and verify headers
+| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
+| | ... | ${TG_pf2}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2bdbasemaclrn-oacl1sf-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-oacl1sl-scapy.robot b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-oacl1sl-scapy.robot
new file mode 100644
index 0000000000..fd33e16202
--- /dev/null
+++ b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-oacl1sl-scapy.robot
@@ -0,0 +1,104 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS
+| ... | OACL | ACL1 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2bdbasemaclrn-oacl1sl
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | acl
+|
+| Test Template | Local Template
+|
+| Documentation | **L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled.Required ACL rules are applied to \
+| ... | input paths of both DUT1 intefaces.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets are sent in one \
+| ... | direction by TG on link to DUT1; on receive TG verifies packets for \
+| ... | correctness and drops as applicable.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# ACL test setup
+| ${acl_action}= | permit
+| ${acl_apply_type}= | output
+| ${no_hit_aces_number}= | 1
+# starting points for non-hitting ACLs
+| ${src_ip_start}= | 30.30.30.1
+| ${dst_ip_start}= | 40.40.40.1
+| ${ip_step}= | ${1}
+| ${sport_start}= | ${1000}
+| ${dport_start}= | ${1000}
+| ${port_step}= | ${1}
+| ${trex_stream1_subnet}= | 10.10.10.0/24
+| ${trex_stream2_subnet}= | 20.20.20.0/24
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs.
+| | ... | - **[Ver]** Make TG send IPv4 packet in one direction between two \
+| | ... | of its interfaces to be switched by DUT to and from docker. \
+| | ... | Make TG verify IPv4 packet is correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply Startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize L2 bridge domain with IPv4 ACLs in circular topology
+| | Then Send packet and verify headers
+| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
+| | ... | ${TG_pf2}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2bdbasemaclrn-oacl1sl-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-scapy.robot b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-scapy.robot
new file mode 100644
index 0000000000..0a18369fbe
--- /dev/null
+++ b/tests/vpp/device/l2bd/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-scapy.robot
@@ -0,0 +1,88 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2bdbasemaclrn
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **L2 bridge-domain test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | Both apply to all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | cross-connect switching.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets with IP protocol=61 \
+| ... | are sent in both directions by TG on links to DUT1; on receive TG. \
+| ... | verifies packets for correctness and their IPv4 src-addr, \
+| ... | dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv4 packets in both directions between two \
+| | ... | of its interfaces to be switched by DUT to and from docker; verify \
+| | ... | all packets are received.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize L2 bridge domain
+| | Then Send IPv4 bidirectionally and verify received packets
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2bdbasemaclrn-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/eth2p-avf-dot1qip4-l2bdbasemaclrn-dev.robot b/tests/vpp/device/l2bd/eth2p-avf-dot1qip4-l2bdbasemaclrn-dev.robot
deleted file mode 100644
index e9c062a4a8..0000000000
--- a/tests/vpp/device/l2bd/eth2p-avf-dot1qip4-l2bdbasemaclrn-dev.robot
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | BASE | DOT1Q | IP4BASE | DRV_AVF
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | avf-dot1qip4-l2bdbasemaclrn
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Suite Teardown | Tear down suite
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 routing with IEEE 802.1Q test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing. IEEE 802.1Q\
-| ... | tagging is applied on links between TG-DUT1.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | two static IPv4 /30 route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:* IEEE 802.1q.
-
-*** Variables ***
-| @{plugins_to_enable}= | avf_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | avf
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 1
-| ${overhead}= | ${4}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 packets in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize layer dot1q
-| | And Initialize L2 bridge domain
-| | Then Send IPv4 bidirectionally and verify received packets
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-
-*** Test Cases ***
-| 68B-avf-dot1qip4-l2bdbasemaclrn-dev
-| | [Tags] | 68B
-| | frame_size=${68} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-dev.robot b/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-dev.robot
deleted file mode 100644
index 1735742f28..0000000000
--- a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-dev.robot
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2BDMACLRN | BASE | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2bdbasemaclrn
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *L2 bridge-domain test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.\
-| ... | Both apply to all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain \
-| ... | switching.
-| ... | *[Ver] TG verification:* Test IPv4 packets with IP protocol=61 \
-| ... | are sent in both directions by TG on links to DUT1; on receive TG \
-| ... | verifies packets for correctness and their IPv4 src-addr, \
-| ... | dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 packets in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize L2 bridge domain
-| | Then Send IPv4 bidirectionally and verify received packets
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2bdbasemaclrn-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-iacl1sf-dev.robot b/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-iacl1sf-dev.robot
deleted file mode 100644
index f205412910..0000000000
--- a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-iacl1sf-dev.robot
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL
-| ... | IACL | ACL1 | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2bdmaclrn-iacl1sf
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | acl | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled.Required ACL rules are applied to input\
-| ... | paths of both DUT1 intefaces.\
-| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# ACL test setup
-| ${acl_action}= | permit+reflect
-| ${acl_apply_type}= | input
-| ${no_hit_aces_number}= | 1
-# starting points for non-hitting ACLs
-| ${src_ip_start}= | 30.30.30.1
-| ${dst_ip_start}= | 40.40.40.1
-| ${ip_step}= | ${1}
-| ${sport_start}= | ${1000}
-| ${dport_start}= | ${1000}
-| ${port_step}= | ${1}
-| ${trex_stream1_subnet}= | 10.10.10.0/24
-| ${trex_stream2_subnet}= | 20.20.20.0/24
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs.
-| | ... | [Ver] Make TG send IPv4 packet in one direction between two\
-| | ... | of its interfaces to be switched by DUT to and from docker.\
-| | ... | Make TG verify IPv4 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply Startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize L2 bridge domain with IPv4 ACLs in circular topology
-| | Then Send packet and verify headers
-| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
-| | ... | ${TG_pf2}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2bdmaclrn-iacl1sf-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-iacl1sl-dev.robot b/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-iacl1sl-dev.robot
deleted file mode 100644
index eedb5a35dc..0000000000
--- a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-iacl1sl-dev.robot
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS
-| ... | IACL | ACL1 | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2bdmaclrn-iacl1sl
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | acl | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled.Required ACL rules are applied to input\
-| ... | paths of both DUT1 intefaces.\
-| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# ACL test setup
-| ${acl_action}= | permit
-| ${acl_apply_type}= | input
-| ${no_hit_aces_number}= | 1
-# starting points for non-hitting ACLs
-| ${src_ip_start}= | 30.30.30.1
-| ${dst_ip_start}= | 40.40.40.1
-| ${ip_step}= | ${1}
-| ${sport_start}= | ${1000}
-| ${dport_start}= | ${1000}
-| ${port_step}= | ${1}
-| ${trex_stream1_subnet}= | 10.10.10.0/24
-| ${trex_stream2_subnet}= | 20.20.20.0/24
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs.
-| | ... | [Ver] Make TG send IPv4 packet in one direction between two\
-| | ... | of its interfaces to be switched by DUT to and from docker.\
-| | ... | Make TG verify IPv4 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply Startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize L2 bridge domain with IPv4 ACLs in circular topology
-| | Then Send packet and verify headers
-| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
-| | ... | ${TG_pf2}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2bdmaclrn-iacl1sl-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-macip-iacl1sl-dev.robot b/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-macip-iacl1sl-dev.robot
deleted file mode 100644
index cc3507b7fb..0000000000
--- a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-macip-iacl1sl-dev.robot
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS
-| ... | IACL | ACL1 | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2bdmaclrn-macip-iacl1sl
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | macipacl | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled.Required MACIP ACL rules are applied to input\
-| ... | paths of both DUT1 intefaces.\
-| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# ACL test setup
-| ${acl_action}= | permit
-| ${no_hit_aces_number}= | 1
-# starting points for non-hitting ACLs
-| ${src_ip_start}= | 30.30.30.1
-| ${ip_step}= | ${1}
-| ${src_mac_start}= | 01:02:03:04:05:06
-| ${src_mac_step}= | ${1000}
-| ${src_mac_mask}= | 00:00:00:00:00:00
-| ${tg_stream1_mac}= | ca:fe:00:00:00:00
-| ${tg_stream2_mac}= | fa:ce:00:00:00:00
-| ${tg_mac_mask}= | ff:ff:ff:ff:c0:00
-| ${tg_stream1_subnet}= | 10.0.0.0/18
-| ${tg_stream2_subnet}= | 20.0.0.0/18
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs.
-| | ... | [Ver] Make TG send IPv4 packet in one direction between two\
-| | ... | of its interfaces to be switched by DUT to and from docker.\
-| | ... | Make TG verify IPv4 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply Startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize L2 bridge domain with MACIP ACLs in circular topology
-| | Then Send packet and verify headers
-| | ... | ${tg} | 10.0.0.2 | 20.0.0.2
-| | ... | ${TG_pf1}[0] | ${tg_stream1_mac} | ${tg_stream2_mac}
-| | ... | ${TG_pf2}[0] | ${tg_stream1_mac} | ${tg_stream2_mac}
-
-*** Test Cases ***
-| 64B-ethipv4-l2bdbasemaclrn-iacl1sl-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-oacl1sf-dev.robot b/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-oacl1sf-dev.robot
deleted file mode 100644
index 5c9b0dcc57..0000000000
--- a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-oacl1sf-dev.robot
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL
-| ... | OACL | ACL1 | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2bdmaclrn-oacl1sf
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | acl | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled.Required ACL rules are applied to input\
-| ... | paths of both DUT1 intefaces.\
-| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# ACL test setup
-| ${acl_action}= | permit+reflect
-| ${acl_apply_type}= | output
-| ${no_hit_aces_number}= | 1
-# starting points for non-hitting ACLs
-| ${src_ip_start}= | 30.30.30.1
-| ${dst_ip_start}= | 40.40.40.1
-| ${ip_step}= | ${1}
-| ${sport_start}= | ${1000}
-| ${dport_start}= | ${1000}
-| ${port_step}= | ${1}
-| ${trex_stream1_subnet}= | 10.10.10.0/24
-| ${trex_stream2_subnet}= | 20.20.20.0/24
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs.
-| | ... | [Ver] Make TG send IPv4 packet in one direction between two\
-| | ... | of its interfaces to be switched by DUT to and from docker.\
-| | ... | Make TG verify IPv4 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply Startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize L2 bridge domain with IPv4 ACLs in circular topology
-| | Then Send packet and verify headers
-| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
-| | ... | ${TG_pf2}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2bdmaclrn-oacl1sf-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-oacl1sl-dev.robot b/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-oacl1sl-dev.robot
deleted file mode 100644
index b1a4519235..0000000000
--- a/tests/vpp/device/l2bd/eth2p-ethipv4-l2bdbasemaclrn-oacl1sl-dev.robot
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS
-| ... | OACL | ACL1 | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2bdmaclrn-oacl1sl
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | acl | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled.Required ACL rules are applied to input\
-| ... | paths of both DUT1 intefaces.\
-| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \
-| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \
-| ... | and drops as applicable.
-| ... | *[Ref] Applicable standard specifications:*
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-# ACL test setup
-| ${acl_action}= | permit
-| ${acl_apply_type}= | output
-| ${no_hit_aces_number}= | 1
-# starting points for non-hitting ACLs
-| ${src_ip_start}= | 30.30.30.1
-| ${dst_ip_start}= | 40.40.40.1
-| ${ip_step}= | ${1}
-| ${sport_start}= | ${1000}
-| ${dport_start}= | ${1000}
-| ${port_step}= | ${1}
-| ${trex_stream1_subnet}= | 10.10.10.0/24
-| ${trex_stream2_subnet}= | 20.20.20.0/24
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs.
-| | ... | [Ver] Make TG send IPv4 packet in one direction between two\
-| | ... | of its interfaces to be switched by DUT to and from docker.\
-| | ... | Make TG verify IPv4 packet is correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply Startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize L2 bridge domain with IPv4 ACLs in circular topology
-| | Then Send packet and verify headers
-| | ... | ${tg} | 10.10.10.2 | 20.20.20.2
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
-| | ... | ${TG_pf2}[0] | ${TG_pf1_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2bdmaclrn-oacl1sl-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2bd/regenerate_testcases.py b/tests/vpp/device/l2bd/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/l2bd/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/l2patch/2n1l-10ge2p1x710-ethip4-l2patch-scapy.robot b/tests/vpp/device/l2patch/2n1l-10ge2p1x710-ethip4-l2patch-scapy.robot
new file mode 100644
index 0000000000..4df0c0aecb
--- /dev/null
+++ b/tests/vpp/device/l2patch/2n1l-10ge2p1x710-ethip4-l2patch-scapy.robot
@@ -0,0 +1,88 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2PATCH | BASE | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2patch
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **L2 cross-connect test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of \
+| ... | IPv4. Both apply to all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 patch \
+| ... | switching.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets with IP protocol=61 \
+| ... | are sent in both directions by TG on links to DUT1; on receive TG. \
+| ... | verifies packets for correctness and their IPv4 src-addr, \
+| ... | dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv4 packets in both directions between two \
+| | ... | of its interfaces to be switched by DUT to and from docker; verify \
+| | ... | all packets are received.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize L2 patch
+| | Then Send IPv4 bidirectionally and verify received packets
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2patch-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2patch/eth2p-ethip4-l2patch-dev.robot b/tests/vpp/device/l2patch/eth2p-ethip4-l2patch-dev.robot
deleted file mode 100644
index 8d5c679d53..0000000000
--- a/tests/vpp/device/l2patch/eth2p-ethip4-l2patch-dev.robot
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2PATCH | BASE | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4-l2patch
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *L2 cross-connect test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of \
-| ... | IPv4. Both apply to all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 patch switching.
-| ... | *[Ver] TG verification:* Test IPv4 packets with IP protocol=61 \
-| ... | are sent in both directions by TG on links to DUT1; on receive TG \
-| ... | verifies packets for correctness and their IPv4 src-addr, \
-| ... | dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 packets in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize L2 patch
-| | Then Send IPv4 bidirectionally and verify received packets
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-
-*** Test Cases ***
-| 64B-ethip4-l2patch-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2patch/regenerate_testcases.py b/tests/vpp/device/l2patch/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/l2patch/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/l2xc/2n1l-10ge2p1x710-ethip4-l2xcbase-scapy.robot b/tests/vpp/device/l2xc/2n1l-10ge2p1x710-ethip4-l2xcbase-scapy.robot
new file mode 100644
index 0000000000..f5d781a4f5
--- /dev/null
+++ b/tests/vpp/device/l2xc/2n1l-10ge2p1x710-ethip4-l2xcbase-scapy.robot
@@ -0,0 +1,88 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2xcbase
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry
+|
+| Test Template | Local Template
+|
+| Documentation | **L2 cross-connect test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | Both apply to all links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | cross-connect switching.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets with IP protocol=61 \
+| ... | are sent in both directions by TG on links to DUT1; on receive TG. \
+| ... | verifies packets for correctness and their IPv4 src-addr, \
+| ... | dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Ver]** Make TG send IPv4 packets in both directions between two \
+| | ... | of its interfaces to be switched by DUT to and from docker; verify \
+| | ... | all packets are received.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize L2 cross connect
+| | Then Send IPv4 bidirectionally and verify received packets
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2xcbase-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2xc/eth2p-ethipv4-l2xcbase-dev.robot b/tests/vpp/device/l2xc/eth2p-ethipv4-l2xcbase-dev.robot
deleted file mode 100644
index fbaeb0b20a..0000000000
--- a/tests/vpp/device/l2xc/eth2p-ethipv4-l2xcbase-dev.robot
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2XCFWD | BASE | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2xcbase
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *L2 cross-connect test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.\
-| ... | Both apply to all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect \
-| ... | switching.
-| ... | *[Ver] TG verification:* Test IPv4 packets with IP protocol=61 \
-| ... | are sent in both directions by TG on links to DUT1; on receive TG \
-| ... | verifies packets for correctness and their IPv4 src-addr, \
-| ... | dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 packets in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize L2 cross connect
-| | Then Send IPv4 bidirectionally and verify received packets
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2xcbase-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/l2xc/regenerate_testcases.py b/tests/vpp/device/l2xc/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/l2xc/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-scapy.robot b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-scapy.robot
new file mode 100644
index 0000000000..2eb255e140
--- /dev/null
+++ b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-scapy.robot
@@ -0,0 +1,108 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | SRv6 | SRv6_1SID
+| ... | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6ip6-ip6base-srv6enc1sid
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | srv6
+|
+| Test Template | Local Template
+|
+| Documentation | **Segment routing over IPv6 dataplane with one SID \
+| ... | (SRH not inserted) test suite.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 configure physical interface \
+| ... | IPv6 addresses, static ARP record, route and IPv6 forwarding over SRv6 \
+| ... | with one SID - Segment Routing Header not inserted.
+| ... |
+| ... | - **[Ver] TG verification:** ETH-IP6 packet is sent from TG to DUT1 in \
+| ... | one direction. Packet is received and verified for correctness on TG. \
+| ... | Then ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet \
+| ... | is received and verified for correctness on TG.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${40}
+# SIDs
+| ${dut1_sid1}= | 2002:1::
+| ${dut1_sid2}= | 2003:2::
+| ${dut1_bsid}= | 2002:1::1
+| ${dut2_sid1}= | 2002:2::
+| ${dut2_sid2}= | 2003:1::
+| ${sid_prefix}= | ${64}
+# IP settings
+| ${tg_if1_ip6_subnet}= | 2001:1::
+| ${tg_if2_ip6_subnet}= | 2001:2::
+| ${dst_addr_nr}= | ${1}
+| ${dut1_if1_ip6}= | 2001:1::1
+| ${dut1_if2_ip6}= | 2001:3::1
+| ${dut2_if1_ip6}= | 2001:3::2
+| ${dut2_if2_ip6}= | 2001:2::1
+| ${prefix}= | ${64}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT1 is configured with IPv6 routing and static route, \
+| | ... | SR policy and steering policy for one direction and one SR \
+| | ... | behaviour (function) - End.DX6 - for other direction.
+| | ... | - **[Ver]** Make TG send IPv6 packets routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv6 packets are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize SRv6 encapsulation with '1' x SID 'with' decapsulation
+| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
+| | ... | ${dut1_sid1} | ${dut1_sid2} | ${dut2_sid2} | ${dut2_sid1}
+
+*** Test Cases ***
+| 78B-0c-ethip6ip6-ip6base-srv6enc1sid-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-scapy.robot b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-scapy.robot
new file mode 100644
index 0000000000..a8e5674271
--- /dev/null
+++ b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-scapy.robot
@@ -0,0 +1,112 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | SRv6 | SRv6_2SID_NODECAP
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6srhip6-ip6base-srv6enc2sids-nodecaps
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | srv6
+|
+| Test Template | Local Template
+|
+| Documentation | **Segment routing over IPv6 dataplane with two SIDs \
+| ... | (SRH inserted) test suite.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 configure physical interface \
+| ... | IPv6 addresses, static ARP record, route and IPv6 forwarding over SRv6 \
+| ... | with two SIDs - Segment Routing Header inserted.
+| ... |
+| ... | - **[Ver] TG verification:** ETH-IP6 packet is sent from TG to DUT1 in \
+| ... | one direction. Packet is received and verified for correctness on TG. \
+| ... | Then ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet \
+| ... | is received and verified for correctness on TG.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${80}
+# SIDs
+| ${dut1_sid1}= | 2002:1::
+| ${dut1_sid2_1}= | 2003:2::
+| ${dut1_sid2_2}= | 2003:3::
+| ${dut1_bsid}= | 2002:1::1
+| ${dut2_sid1_1}= | 2002:2::
+| ${dut2_sid1_2}= | 2002:3::
+| ${dut2_sid2}= | 2003:1::
+| ${sid_prefix}= | ${64}
+# IP settings
+| ${tg_if1_ip6_subnet}= | 2001:1::
+| ${tg_if2_ip6_subnet}= | 2001:2::
+| ${dst_addr_nr}= | ${1}
+| ${dut1_if1_ip6}= | 2001:1::1
+| ${dut1_if2_ip6}= | 2001:3::1
+| ${dut2_if1_ip6}= | 2001:3::2
+| ${dut2_if2_ip6}= | 2001:2::1
+| ${prefix}= | ${64}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT1 is configured with IPv6 routing and static route, \
+| | ... | SR policy and steering policy for one direction and one SR \
+| | ... | behaviour (function) - End - for other direction.
+| | ... | - **[Ver]** Make TG send IPv6 packets routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv6 packets are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize SRv6 encapsulation with '2' x SID 'without' decapsulation
+| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
+| | ... | ${dut1_sid1} | ${dut1_sid2_1} | ${dut2_sid2} | ${dut2_sid1_1}
+| | ... | ${dut1_sid2_2} | ${dut2_sid1_2} | decap=${False}
+
+*** Test Cases ***
+| 78B-0c-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-scapy.robot b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-scapy.robot
new file mode 100644
index 0000000000..a6972e5e10
--- /dev/null
+++ b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-scapy.robot
@@ -0,0 +1,112 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | SRv6 | SRv6_2SID_DECAP
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6srhip6-ip6base-srv6enc2sids
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | srv6
+|
+| Test Template | Local Template
+|
+| Documentation | **Segment routing over IPv6 dataplane with two SIDs \
+| ... | (SRH inserted) test suite.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 configure physical interface \
+| ... | IPv6 addresses, static ARP record, route and IPv6 forwarding over SRv6 \
+| ... | with two SIDs - Segment Routing Header inserted.
+| ... |
+| ... | - **[Ver] TG verification:** ETH-IP6 packet is sent from TG to DUT1 in \
+| ... | one direction. Packet is received and verified for correctness on TG. \
+| ... | Then ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet \
+| ... | is received and verified for correctness on TG.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${80}
+# SIDs
+| ${dut1_sid1}= | 2002:1::
+| ${dut1_sid2_1}= | 2003:2::
+| ${dut1_sid2_2}= | 2003:3::
+| ${dut1_bsid}= | 2002:1::1
+| ${dut2_sid1_1}= | 2002:2::
+| ${dut2_sid1_2}= | 2002:3::
+| ${dut2_sid2}= | 2003:1::
+| ${sid_prefix}= | ${64}
+# IP settings
+| ${tg_if1_ip6_subnet}= | 2001:1::
+| ${tg_if2_ip6_subnet}= | 2001:2::
+| ${dst_addr_nr}= | ${1}
+| ${dut1_if1_ip6}= | 2001:1::1
+| ${dut1_if2_ip6}= | 2001:3::1
+| ${dut2_if1_ip6}= | 2001:3::2
+| ${dut2_if2_ip6}= | 2001:2::1
+| ${prefix}= | ${64}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT1 is configured with IPv6 routing and static route, \
+| | ... | SR policy and steering policy for one direction and two SR \
+| | ... | behaviours (functions) - End and End.DX6 - for other direction.
+| | ... | - **[Ver]** Make TG send IPv6 packets routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv6 packets are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize SRv6 encapsulation with '2' x SID 'with' decapsulation
+| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
+| | ... | ${dut1_sid1} | ${dut1_sid2_1} | ${dut2_sid2} | ${dut2_sid1_1}
+| | ... | ${dut1_sid2_2} | ${dut2_sid1_2}
+
+*** Test Cases ***
+| 78B-0c-ethip6srhip6-ip6base-srv6enc2sids-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-scapy.robot b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-scapy.robot
new file mode 100644
index 0000000000..f0466ea8a7
--- /dev/null
+++ b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-scapy.robot
@@ -0,0 +1,127 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | SRv6 | SRv6_PROXY
+| ... | SRv6_PROXY_DYN | MEMIF | DOCKER | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6srhip6-ip6base-srv6proxy-dyn
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | container | srv6
+|
+| Test Template | Local Template
+|
+| Documentation | **Segment routing over IPv6 dataplane with Dynamic \
+| ... | SRv6 proxy test suite.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 configure physical interface \
+| ... | IPv6 addresses, static ARP record, route and IPv6 forwarding over SRv6 \
+| ... | with three SIDs - Segment Routing Header inserted.
+| ... |
+| ... | - **[Ver] TG verification:** ETH-IP6 packet is sent from TG to DUT1 in \
+| ... | one direction. Packet is received and verified for correctness on TG. \
+| ... | Then ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet \
+| ... | is received and verified for correctness on TG.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ... | srv6ad_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${80}
+# SIDs
+| ${dut1_sid1}= | 2002:1::
+| ${dut1_sid2}= | 2003:2::
+| ${dut1_bsid}= | 2002:1::1
+| ${dut2_sid1}= | 2002:2::
+| ${dut2_sid2}= | 2003:1::
+| ${out_sid1_1}= | 2002:3::
+| ${out_sid1_2}= | 2002:4::
+| ${out_sid2_1}= | 2003:3::
+| ${out_sid2_2}= | 2003:4::
+| ${sid_prefix}= | ${64}
+# IP settings
+| ${tg_if1_ip6_subnet}= | 2001:1::
+| ${tg_if2_ip6_subnet}= | 2001:2::
+| ${dst_addr_nr}= | ${1}
+| ${dut1_if1_ip6}= | 2001:1::1
+| ${dut1_if2_ip6}= | 2001:3::1
+| ${dut1-memif-1-if1_ip6}= | 3001:1::1
+| ${dut1-memif-1-if2_ip6}= | 3001:1::2
+| ${dut1_nh}= | 4002::
+| ${dut2_if1_ip6}= | 2001:3::2
+| ${dut2_if2_ip6}= | 2001:2::1
+| ${dut2-memif-1-if1_ip6}= | 3002:1::1
+| ${dut2-memif-1-if2_ip6}= | 3002:1::2
+| ${dut2_nh}= | 4001::
+| ${prefix}= | ${64}
+| ${mem_prefix}= | ${128}
+# Container
+| ${container_engine}= | Docker
+| ${container_chain_topology}= | chain_functional
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT1 is configured with IPv6 routing and static route, \
+| | ... | SR policy and steering policy for one direction and one SR \
+| | ... | behaviour (function) - End.AD - for other direction.
+| | ... | - **[Ver]** Make TG send IPv6 packets routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv6 packets are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Start containers for test | auto_scale=${False} | pinning=${False}
+| | And Initialize SRv6 with 'dynamic_proxy' SR-unaware Service Function
+| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
+| | ... | ${dut1_sid1} | ${dut1_sid2} | ${dut2_sid2} | ${dut2_sid1}
+| | ... | ${out_sid2_1} | ${out_sid1_1} | decap=${False}
+| | ... | tg_dstsid3=${out_sid1_2} | dut_dstsid3=${out_sid2_2}
+
+*** Test Cases ***
+| 78B-0c-ethip6srhip6-ip6base-srv6proxy-dyn-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-scapy.robot b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-scapy.robot
new file mode 100644
index 0000000000..106bce9d1e
--- /dev/null
+++ b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-scapy.robot
@@ -0,0 +1,127 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | SRv6 | SRv6_PROXY
+| ... | SRv6_PROXY_MASQ | MEMIF | DOCKER | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6srhip6-ip6base-srv6proxy-masq
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | container | srv6
+|
+| Test Template | Local Template
+|
+| Documentation | **Segment routing over IPv6 dataplane with Masquerading \
+| ... | SRv6 proxy test cases**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 configure physical interface \
+| ... | IPv6 addresses, static ARP record, route and IPv6 forwarding over SRv6 \
+| ... | with three SIDs - Segment Routing Header inserted.
+| ... |
+| ... | - **[Ver] TG verification:** ETH-IP6 packet is sent from TG to DUT1 in \
+| ... | one direction. Packet is received and verified for correctness on TG. \
+| ... | Then ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet \
+| ... | is received and verified for correctness on TG.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ... | srv6am_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${80}
+# SIDs
+| ${dut1_sid1}= | 2002:1::
+| ${dut1_sid2}= | 2003:2::
+| ${dut1_bsid}= | 2002:1::1
+| ${dut2_sid1}= | 2002:2::
+| ${dut2_sid2}= | 2003:1::
+| ${out_sid1_1}= | 2002:3::
+| ${out_sid1_2}= | 2002:4::
+| ${out_sid2_1}= | 2003:3::
+| ${out_sid2_2}= | 2003:4::
+| ${sid_prefix}= | ${64}
+# IP settings
+| ${tg_if1_ip6_subnet}= | 2001:1::
+| ${tg_if2_ip6_subnet}= | 2001:2::
+| ${dst_addr_nr}= | ${1}
+| ${dut1_if1_ip6}= | 2001:1::1
+| ${dut1_if2_ip6}= | 2001:3::1
+| ${dut1-memif-1-if1_ip6}= | 3001:1::1
+| ${dut1-memif-1-if2_ip6}= | 3001:1::2
+| ${dut1_nh}= | 4002::
+| ${dut2_if1_ip6}= | 2001:3::2
+| ${dut2_if2_ip6}= | 2001:2::1
+| ${dut2-memif-1-if1_ip6}= | 3002:1::1
+| ${dut2-memif-1-if2_ip6}= | 3002:1::2
+| ${dut2_nh}= | 4001::
+| ${prefix}= | ${64}
+| ${mem_prefix}= | ${128}
+# Container
+| ${container_engine}= | Docker
+| ${container_chain_topology}= | chain_functional
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT1 is configured with IPv6 routing and static route, \
+| | ... | SR policy and steering policy for one direction and one SR \
+| | ... | behaviour (function) - End.AM - for other direction.
+| | ... | - **[Ver]** Make TG send IPv6 packets routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv6 packets are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Start containers for test | auto_scale=${False} | pinning=${False}
+| | And Initialize SRv6 with 'masquerading' SR-unaware Service Function
+| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
+| | ... | ${dut1_sid1} | ${dut1_sid2} | ${dut2_sid2} | ${dut2_sid1}
+| | ... | ${out_sid2_1} | ${out_sid1_1} | decap=${False}
+| | ... | tg_dstsid3=${out_sid1_2} | dut_dstsid3=${out_sid2_2}
+
+*** Test Cases ***
+| 78B-0c-ethip6srhip6-ip6base-srv6proxy-masq-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-scapy.robot b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-scapy.robot
new file mode 100644
index 0000000000..34c2ff940a
--- /dev/null
+++ b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-scapy.robot
@@ -0,0 +1,128 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | SRv6 | SRv6_PROXY
+| ... | SRv6_PROXY_STAT | MEMIF | DOCKER | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6srhip6-ip6base-srv6proxy-stat
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | container | srv6
+|
+| Test Template | Local Template
+|
+| Documentation | **Segment routing over IPv6 dataplane with Static \
+| ... | SRv6 proxy test cases.**
+| ... |
+| ... | - **[Top] Network topologies:** TG-DUT1 2-node topology with one link \
+| ... | between nodes.
+| ... |
+| ... | - **[Cfg] DUT configuration:** On DUT1 configure physical interface \
+| ... | IPv6 addresses, static ARP record, route and IPv6 forwarding over SRv6 \
+| ... | with three SIDs - Segment Routing Header inserted.
+| ... |
+| ... | - **[Ver] TG verification:** ETH-IP6 packet is sent from TG to DUT1 in \
+| ... | one direction. Packet is received and verified for correctness on TG. \
+| ... | Then ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet \
+| ... | is received and verified for correctness on TG.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ... | srv6as_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${80}
+# SIDs
+| ${dut1_sid1}= | 2002:1::
+| ${dut1_sid2}= | 2003:2::
+| ${dut1_bsid}= | 2002:1::1
+| ${dut2_sid1}= | 2002:2::
+| ${dut2_sid2}= | 2003:1::
+| ${out_sid1_1}= | 2002:3::
+| ${out_sid1_2}= | 2002:4::
+| ${out_sid2_1}= | 2003:3::
+| ${out_sid2_2}= | 2003:4::
+| ${sid_prefix}= | ${64}
+# IP settings
+| ${tg_if1_ip6_subnet}= | 2001:1::
+| ${tg_if2_ip6_subnet}= | 2001:2::
+| ${dst_addr_nr}= | ${1}
+| ${dut1_if1_ip6}= | 2001:1::1
+| ${dut1_if2_ip6}= | 2001:3::1
+| ${dut1-memif-1-if1_ip6}= | 3001:1::1
+| ${dut1-memif-1-if2_ip6}= | 3001:1::2
+| ${dut1_nh}= | 4002::
+| ${dut2_if1_ip6}= | 2001:3::2
+| ${dut2_if2_ip6}= | 2001:2::1
+| ${dut2-memif-1-if1_ip6}= | 3002:1::1
+| ${dut2-memif-1-if2_ip6}= | 3002:1::2
+| ${dut2_nh}= | 4001::
+| ${prefix}= | ${64}
+| ${mem_prefix}= | ${128}
+# Container
+| ${container_engine}= | Docker
+| ${container_chain_topology}= | chain_functional
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT1 is configured with IPv6 routing and static route, \
+| | ... | SR policy and steering policy for one direction and one SR \
+| | ... | behaviour (function) - End.AS - for other direction.
+| | ... | - **[Ver]** Make TG send IPv6 packets routed over DUT1 interfaces. \
+| | ... | Make TG verify IPv6 packets are correct.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Start containers for test | auto_scale=${False} | pinning=${False}
+| | And Initialize SRv6 with 'static_proxy' SR-unaware Service Function
+| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
+| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
+| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
+| | ... | ${dut1_sid1} | ${dut1_sid2} | ${dut2_sid2} | ${dut2_sid1}
+| | ... | ${out_sid2_1} | ${out_sid1_1} | decap=${False}
+| | ... | tg_dstsid3=${out_sid1_2} | dut_dstsid3=${out_sid2_2}
+| | ... | static_proxy=${True}
+
+*** Test Cases ***
+| 78B-0c-ethip6srhip6-ip6base-srv6proxy-stat-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/eth2p-ethip6ip6-ip6base-srv6enc1sid-dev.robot b/tests/vpp/device/srv6/eth2p-ethip6ip6-ip6base-srv6enc1sid-dev.robot
deleted file mode 100644
index 7c9b37b954..0000000000
--- a/tests/vpp/device/srv6/eth2p-ethip6ip6-ip6base-srv6enc1sid-dev.robot
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | FEATURE | SRv6 | SRv6_1SID | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6ip6-ip6base-srv6enc1sid
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *Segment routing over IPv6 dataplane with one SID\
-| ... | (SRH not inserted) test suite.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 configure physical interface IPv6\
-| ... | addresses, static ARP record, route and IPv6 forwarding over SRv6\
-| ... | with one SID - Segment Routing Header not inserted.
-| ... | *[Ver] TG verification:* ETH-IP6 packet is sent from TG to DUT1 in one\
-| ... | direction. Packet is received and verified for correctness on TG. Then\
-| ... | ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet is\
-| ... | received and verified for correctness on TG.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${40}
-# SIDs
-| ${dut1_sid1}= | 2002:1::
-| ${dut1_sid2}= | 2003:2::
-| ${dut1_bsid}= | 2002:1::1
-| ${dut2_sid1}= | 2002:2::
-| ${dut2_sid2}= | 2003:1::
-| ${sid_prefix}= | ${64}
-# IP settings
-| ${tg_if1_ip6_subnet}= | 2001:1::
-| ${tg_if2_ip6_subnet}= | 2001:2::
-| ${dst_addr_nr}= | ${1}
-| ${dut1_if1_ip6}= | 2001:1::1
-| ${dut1_if2_ip6}= | 2001:3::1
-| ${dut2_if1_ip6}= | 2001:3::2
-| ${dut2_if2_ip6}= | 2001:2::1
-| ${prefix}= | ${64}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT1 is configured with IPv6 routing and static route,\
-| | ... | SR policy and steering policy for one direction and one SR\
-| | ... | behaviour (function) - End.DX6 - for other direction.
-| | ... | [Ver] Make TG send IPv6 packets routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv6 packets are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize SRv6 encapsulation with '1' x SID 'with' decapsulation
-| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
-| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
-| | ... | ${dut1_sid1} | ${dut1_sid2} | ${dut2_sid2} | ${dut2_sid1}
-
-*** Test Cases ***
-| 78B-ethip6ip6-ip6base-srv6enc1sid-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6enc2sids-dev.robot b/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6enc2sids-dev.robot
deleted file mode 100644
index 38ce990d90..0000000000
--- a/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6enc2sids-dev.robot
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | FEATURE | SRv6 | SRv6_2SID_DECAP
-| ... | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6srhip6-ip6base-srv6enc2sids
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *Segment routing over IPv6 dataplane with two SIDs\
-| ... | (SRH inserted) test suite.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 configure physical interface IPv6\
-| ... | addresses, static ARP record, route and IPv6 forwarding over SRv6\
-| ... | with two SIDs - Segment Routing Header inserted.
-| ... | *[Ver] TG verification:* ETH-IP6 packet is sent from TG to DUT1 in one\
-| ... | direction. Packet is received and verified for correctness on TG. Then\
-| ... | ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet is\
-| ... | received and verified for correctness on TG.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${80}
-# SIDs
-| ${dut1_sid1}= | 2002:1::
-| ${dut1_sid2_1}= | 2003:2::
-| ${dut1_sid2_2}= | 2003:3::
-| ${dut1_bsid}= | 2002:1::1
-| ${dut2_sid1_1}= | 2002:2::
-| ${dut2_sid1_2}= | 2002:3::
-| ${dut2_sid2}= | 2003:1::
-| ${sid_prefix}= | ${64}
-# IP settings
-| ${tg_if1_ip6_subnet}= | 2001:1::
-| ${tg_if2_ip6_subnet}= | 2001:2::
-| ${dst_addr_nr}= | ${1}
-| ${dut1_if1_ip6}= | 2001:1::1
-| ${dut1_if2_ip6}= | 2001:3::1
-| ${dut2_if1_ip6}= | 2001:3::2
-| ${dut2_if2_ip6}= | 2001:2::1
-| ${prefix}= | ${64}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT1 is configured with IPv6 routing and static route,\
-| | ... | SR policy and steering policy for one direction and two SR\
-| | ... | behaviours (functions) - End and End.DX6 - for other direction.
-| | ... | [Ver] Make TG send IPv6 packets routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv6 packets are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize SRv6 encapsulation with '2' x SID 'with' decapsulation
-| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
-| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
-| | ... | ${dut1_sid1} | ${dut1_sid2_1} | ${dut2_sid2} | ${dut2_sid1_1}
-| | ... | ${dut1_sid2_2} | ${dut2_sid1_2}
-
-*** Test Cases ***
-| 78B-ethip6srhip6-ip6base-srv6enc2sids-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-dev.robot b/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-dev.robot
deleted file mode 100644
index d78b9a0800..0000000000
--- a/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-dev.robot
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | FEATURE | SRv6 | SRv6_2SID_NODECAP
-| ... | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *Segment routing over IPv6 dataplane with two SIDs\
-| ... | (SRH inserted) test suite.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 configure physical interface IPv6\
-| ... | addresses, static ARP record, route and IPv6 forwarding over SRv6\
-| ... | with two SIDs - Segment Routing Header inserted.
-| ... | *[Ver] TG verification:* ETH-IP6 packet is sent from TG to DUT1 in one\
-| ... | direction. Packet is received and verified for correctness on TG. Then\
-| ... | ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet is\
-| ... | received and verified for correctness on TG.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${80}
-# SIDs
-| ${dut1_sid1}= | 2002:1::
-| ${dut1_sid2_1}= | 2003:2::
-| ${dut1_sid2_2}= | 2003:3::
-| ${dut1_bsid}= | 2002:1::1
-| ${dut2_sid1_1}= | 2002:2::
-| ${dut2_sid1_2}= | 2002:3::
-| ${dut2_sid2}= | 2003:1::
-| ${sid_prefix}= | ${64}
-# IP settings
-| ${tg_if1_ip6_subnet}= | 2001:1::
-| ${tg_if2_ip6_subnet}= | 2001:2::
-| ${dst_addr_nr}= | ${1}
-| ${dut1_if1_ip6}= | 2001:1::1
-| ${dut1_if2_ip6}= | 2001:3::1
-| ${dut2_if1_ip6}= | 2001:3::2
-| ${dut2_if2_ip6}= | 2001:2::1
-| ${prefix}= | ${64}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT1 is configured with IPv6 routing and static route,\
-| | ... | SR policy and steering policy for one direction and one SR\
-| | ... | behaviour (function) - End - for other direction.
-| | ... | [Ver] Make TG send IPv6 packets routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv6 packets are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize SRv6 encapsulation with '2' x SID 'without' decapsulation
-| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
-| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
-| | ... | ${dut1_sid1} | ${dut1_sid2_1} | ${dut2_sid2} | ${dut2_sid1_1}
-| | ... | ${dut1_sid2_2} | ${dut2_sid1_2} | decap=${False}
-
-*** Test Cases ***
-| 78B-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-dyn-dev.robot b/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-dyn-dev.robot
deleted file mode 100644
index 0e62ae3ad3..0000000000
--- a/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-dyn-dev.robot
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | FEATURE | SRv6 | SRv6_PROXY
-| ... | SRv6_PROXY_DYN | MEMIF | DOCKER | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6srhip6-ip6base-srv6proxy-dyn
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | container
-|
-| Test Template | Local Template
-|
-| Documentation | *Segment routing over IPv6 dataplane with Dynamic\
-| ... | SRv6 proxy test suite.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 configure physical interface IPv6\
-| ... | addresses, static ARP record, route and IPv6 forwarding over SRv6\
-| ... | with three SIDs - Segment Routing Header inserted.
-| ... | *[Ver] TG verification:* ETH-IP6 packet is sent from TG to DUT1 in one\
-| ... | direction. Packet is received and verified for correctness on TG. Then\
-| ... | ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet is\
-| ... | received and verified for correctness on TG.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so | srv6ad_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${80}
-# SIDs
-| ${dut1_sid1}= | 2002:1::
-| ${dut1_sid2}= | 2003:2::
-| ${dut1_bsid}= | 2002:1::1
-| ${dut2_sid1}= | 2002:2::
-| ${dut2_sid2}= | 2003:1::
-| ${out_sid1_1}= | 2002:3::
-| ${out_sid1_2}= | 2002:4::
-| ${out_sid2_1}= | 2003:3::
-| ${out_sid2_2}= | 2003:4::
-| ${sid_prefix}= | ${64}
-# IP settings
-| ${tg_if1_ip6_subnet}= | 2001:1::
-| ${tg_if2_ip6_subnet}= | 2001:2::
-| ${dst_addr_nr}= | ${1}
-| ${dut1_if1_ip6}= | 2001:1::1
-| ${dut1_if2_ip6}= | 2001:3::1
-| ${dut1-memif-1-if1_ip6}= | 3001:1::1
-| ${dut1-memif-1-if2_ip6}= | 3001:1::2
-| ${dut1_nh}= | 4002::
-| ${dut2_if1_ip6}= | 2001:3::2
-| ${dut2_if2_ip6}= | 2001:2::1
-| ${dut2-memif-1-if1_ip6}= | 3002:1::1
-| ${dut2-memif-1-if2_ip6}= | 3002:1::2
-| ${dut2_nh}= | 4001::
-| ${prefix}= | ${64}
-| ${mem_prefix}= | ${128}
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_functional
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT1 is configured with IPv6 routing and static route,\
-| | ... | SR policy and steering policy for one direction and one SR\
-| | ... | behaviour (function) - End.AD - for other direction.
-| | ... | [Ver] Make TG send IPv6 packets routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv6 packets are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Start containers for test | auto_scale=${False} | pinning=${False}
-| | And Initialize SRv6 with 'dynamic_proxy' SR-unaware Service Function
-| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
-| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
-| | ... | ${dut1_sid1} | ${dut1_sid2} | ${dut2_sid2} | ${dut2_sid1}
-| | ... | ${out_sid2_1} | ${out_sid1_1} | decap=${False}
-| | ... | tg_dstsid3=${out_sid1_2} | dut_dstsid3=${out_sid2_2}
-
-*** Test Cases ***
-| 78B-ethip6srhip6-ip6base-srv6proxy-dyn-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-masq-dev.robot b/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-masq-dev.robot
deleted file mode 100644
index f751b73016..0000000000
--- a/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-masq-dev.robot
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | FEATURE | SRv6 | SRv6_PROXY
-| ... | SRv6_PROXY_MASQ | MEMIF | DOCKER | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6srhip6-ip6base-srv6proxy-masq
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | container
-|
-| Test Template | Local Template
-|
-| Documentation | *Segment routing over IPv6 dataplane with Masquerading\
-| ... | SRv6 proxy test cases*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 configure physical interface IPv6\
-| ... | addresses, static ARP record, route and IPv6 forwarding over SRv6\
-| ... | with three SIDs - Segment Routing Header inserted.
-| ... | *[Ver] TG verification:* ETH-IP6 packet is sent from TG to DUT1 in one\
-| ... | direction. Packet is received and verified for correctness on TG. Then\
-| ... | ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet is\
-| ... | received and verified for correctness on TG.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so | srv6am_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${80}
-# SIDs
-| ${dut1_sid1}= | 2002:1::
-| ${dut1_sid2}= | 2003:2::
-| ${dut1_bsid}= | 2002:1::1
-| ${dut2_sid1}= | 2002:2::
-| ${dut2_sid2}= | 2003:1::
-| ${out_sid1_1}= | 2002:3::
-| ${out_sid1_2}= | 2002:4::
-| ${out_sid2_1}= | 2003:3::
-| ${out_sid2_2}= | 2003:4::
-| ${sid_prefix}= | ${64}
-# IP settings
-| ${tg_if1_ip6_subnet}= | 2001:1::
-| ${tg_if2_ip6_subnet}= | 2001:2::
-| ${dst_addr_nr}= | ${1}
-| ${dut1_if1_ip6}= | 2001:1::1
-| ${dut1_if2_ip6}= | 2001:3::1
-| ${dut1-memif-1-if1_ip6}= | 3001:1::1
-| ${dut1-memif-1-if2_ip6}= | 3001:1::2
-| ${dut1_nh}= | 4002::
-| ${dut2_if1_ip6}= | 2001:3::2
-| ${dut2_if2_ip6}= | 2001:2::1
-| ${dut2-memif-1-if1_ip6}= | 3002:1::1
-| ${dut2-memif-1-if2_ip6}= | 3002:1::2
-| ${dut2_nh}= | 4001::
-| ${prefix}= | ${64}
-| ${mem_prefix}= | ${128}
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_functional
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT1 is configured with IPv6 routing and static route,\
-| | ... | SR policy and steering policy for one direction and one SR\
-| | ... | behaviour (function) - End.AM - for other direction.
-| | ... | [Ver] Make TG send IPv6 packets routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv6 packets are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Start containers for test | auto_scale=${False} | pinning=${False}
-| | And Initialize SRv6 with 'masquerading' SR-unaware Service Function
-| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
-| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
-| | ... | ${dut1_sid1} | ${dut1_sid2} | ${dut2_sid2} | ${dut2_sid1}
-| | ... | ${out_sid2_1} | ${out_sid1_1} | decap=${False}
-| | ... | tg_dstsid3=${out_sid1_2} | dut_dstsid3=${out_sid2_2}
-
-*** Test Cases ***
-| 78B-ethip6srhip6-ip6base-srv6proxy-masq-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-stat-dev.robot b/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-stat-dev.robot
deleted file mode 100644
index 56b43a527e..0000000000
--- a/tests/vpp/device/srv6/eth2p-ethip6srhip6-ip6base-srv6proxy-stat-dev.robot
+++ /dev/null
@@ -1,122 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | FEATURE | SRv6 | SRv6_PROXY
-| ... | SRv6_PROXY_STAT | MEMIF | DOCKER | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip6srhip6-ip6base-srv6proxy-stat
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | container
-|
-| Test Template | Local Template
-|
-| Documentation | *Segment routing over IPv6 dataplane with Static\
-| ... | SRv6 proxy test cases.*
-|
-| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
-| ... | between nodes.
-| ... | *[Cfg] DUT configuration:* On DUT1 configure physical interface IPv6\
-| ... | addresses, static ARP record, route and IPv6 forwarding over SRv6\
-| ... | with three SIDs - Segment Routing Header inserted.
-| ... | *[Ver] TG verification:* ETH-IP6 packet is sent from TG to DUT1 in one\
-| ... | direction. Packet is received and verified for correctness on TG. Then\
-| ... | ETH-IP6-IP6 packet is sent from TG in opposite direction. Packet is\
-| ... | received and verified for correctness on TG.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so | srv6as_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${80}
-# SIDs
-| ${dut1_sid1}= | 2002:1::
-| ${dut1_sid2}= | 2003:2::
-| ${dut1_bsid}= | 2002:1::1
-| ${dut2_sid1}= | 2002:2::
-| ${dut2_sid2}= | 2003:1::
-| ${out_sid1_1}= | 2002:3::
-| ${out_sid1_2}= | 2002:4::
-| ${out_sid2_1}= | 2003:3::
-| ${out_sid2_2}= | 2003:4::
-| ${sid_prefix}= | ${64}
-# IP settings
-| ${tg_if1_ip6_subnet}= | 2001:1::
-| ${tg_if2_ip6_subnet}= | 2001:2::
-| ${dst_addr_nr}= | ${1}
-| ${dut1_if1_ip6}= | 2001:1::1
-| ${dut1_if2_ip6}= | 2001:3::1
-| ${dut1-memif-1-if1_ip6}= | 3001:1::1
-| ${dut1-memif-1-if2_ip6}= | 3001:1::2
-| ${dut1_nh}= | 4002::
-| ${dut2_if1_ip6}= | 2001:3::2
-| ${dut2_if2_ip6}= | 2001:2::1
-| ${dut2-memif-1-if1_ip6}= | 3002:1::1
-| ${dut2-memif-1-if2_ip6}= | 3002:1::2
-| ${dut2_nh}= | 4001::
-| ${prefix}= | ${64}
-| ${mem_prefix}= | ${128}
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_functional
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT1 is configured with IPv6 routing and static route,\
-| | ... | SR policy and steering policy for one direction and one SR\
-| | ... | behaviour (function) - End.AS - for other direction.
-| | ... | [Ver] Make TG send IPv6 packets routed over DUT1 interfaces.\
-| | ... | Make TG verify IPv6 packets are correct.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Start containers for test | auto_scale=${False} | pinning=${False}
-| | And Initialize SRv6 with 'static_proxy' SR-unaware Service Function
-| | Then Send IPv6 Packet and verify SRv6 encapsulation in received packet
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0] | ${DUT1_${int}1_mac}[0]
-| | ... | ${DUT1_${int}2_mac}[0] | ${tg_if1_ip6_subnet}2 | ${tg_if2_ip6_subnet}2
-| | ... | ${dut1_sid1} | ${dut1_sid2} | ${dut2_sid2} | ${dut2_sid1}
-| | ... | ${out_sid2_1} | ${out_sid1_1} | decap=${False}
-| | ... | tg_dstsid3=${out_sid1_2} | dut_dstsid3=${out_sid2_2}
-| | ... | static_proxy=${True}
-
-*** Test Cases ***
-| 78B-ethip6srhip6-ip6base-srv6proxy-stat-dev
-| | [Tags] | 78B
-| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/srv6/regenerate_testcases.py b/tests/vpp/device/srv6/regenerate_testcases.py
new file mode 100755
index 0000000000..2cae24e087
--- /dev/null
+++ b/tests/vpp/device/srv6/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot", protocol=u"ip6")
diff --git a/tests/vpp/device/stats/eth2p-ethipv4-l2xcbase-stats-dev.robot b/tests/vpp/device/stats/eth2p-ethipv4-l2xcbase-stats-dev.robot
deleted file mode 100644
index b37836ea05..0000000000
--- a/tests/vpp/device/stats/eth2p-ethipv4-l2xcbase-stats-dev.robot
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2XCFWD | BASE | STATS | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2xcbase-stats
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-|
-| Test Template | Local Template
-|
-| Documentation | *VPP statistic commands test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.\
-| ... | Both apply to all links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect \
-| ... | switching.
-| ... | *[Ver] TG verification:* Test IPv4 packets with IP protocol=61 \
-| ... | are sent in both directions by TG on links to DUT1; on receive TG \
-| ... | verifies packets for correctness and their IPv4 src-addr, dst-addr \
-| ... | and MAC addresses. Run VPP statistic commands used in performance tests.
-| ... | *[Ref] Applicable standard specifications:* RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Ver] Make TG send IPv4 packets in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received. Run VPP statistic commands.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize L2 cross connect
-| | VPP Enable Elog Traces On All DUTs | ${nodes}
-| | Then Send IPv4 bidirectionally and verify received packets
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | And Verify statistic commands
-
-| Verify statistic commands
-| | ${results}= | Create List
-| | ${status} | ${value}= | Run Keyword And Ignore Error
-| | ... | VPP Show Runtime On All DUTs | ${nodes}
-| | Append To List | ${results} | ${status}
-| | ${status} | ${value}= | Run Keyword And Ignore Error
-| | ... | Show Statistics On All DUTs | ${nodes}
-| | Append To List | ${results} | ${status}
-| | ${status} | ${value}= | Run Keyword And Ignore Error
-| | ... | Show Event Logger On All DUTs | ${nodes}
-| | Append To List | ${results} | ${status}
-| | ${status} | ${value}= | Run Keyword And Ignore Error
-| | ... | VPP Clear Runtime On All DUTs | ${nodes}
-| | Append To List | ${results} | ${status}
-| | ${status} | ${value}= | Run Keyword And Ignore Error
-| | ... | Clear Statistics On All DUTs | ${nodes}
-| | Append To List | ${results} | ${status}
-| | Should Not Contain Match | ${results} | FAIL
-| | ... | msg=At least one of statistic commands failed!
-
-*** Test Cases ***
-| 64B-ethipv4-l2xcbase-stats-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhost-1vm-scapy.robot b/tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhost-1vm-scapy.robot
new file mode 100644
index 0000000000..24ea26aadf
--- /dev/null
+++ b/tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhost-1vm-scapy.robot
@@ -0,0 +1,103 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP4FWD | BASE | VHOST | 1VM | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4base-eth-2vhost-1vm
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | vhost
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 routing test cases with vhost user interface**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with VM and single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing on both \
+| ... | links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and two static IPv4 /24 route entries. Qemu Guest is connected to VPP \
+| ... | via vhost-user interfaces. Guest is running VPP ip4 interconnecting \
+| ... | vhost-user interfaces.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packet with IP protocol=61 is \
+| ... | sent in one direction by TG on links to DUT1; on receive TG verifies \
+| ... | packet for correctness and their IPv4 src-addr, dst-addr and MAC \
+| ... | addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC791, RFC826, RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${nf_chains}= | ${1}
+| ${nf_nodes}= | ${1}
+| ${nf_dtc} | ${1}
+| ${nf_dtcr} | ${1}
+| ${tg_if1_ip}= | 10.10.10.2
+| ${tg_if2_ip}= | 20.20.20.2
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | Test uses two VRFs to route IPv4 traffic through two vhost-user \
+| | ... | nterfaces. Both interfaces are configured with IP addresses from \
+| | ... | the same network. The VM is running VPP IPv4 forwarding to pass \
+| | ... | packet from one vhost-user interface to the other one.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding with vhost in 2-node circular topology
+| | ... | nf_nodes=${nf_nodes}
+| | And Configure chains of NFs connected via vhost-user
+| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes}
+| | ... | vnf=vppip4noarp_2vhostvr1024 | pinning=${False}
+| | Then Send packet and verify headers
+| | ... | ${tg} | ${tg_if1_ip} | ${tg_if2_ip}
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-ip4base-eth-2vhost-1vm-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2vhost-1vm-scapy.robot b/tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2vhost-1vm-scapy.robot
new file mode 100644
index 0000000000..c6f6fd474a
--- /dev/null
+++ b/tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2vhost-1vm-scapy.robot
@@ -0,0 +1,104 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE | VHOST | 1VM
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2bdbasemaclrn-eth-2vhost-1vm
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | vhost
+|
+| Test Template | Local Template
+|
+| Documentation | **L2 bridge-domain test cases with vhost user interface**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with VM and single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 \
+| ... | bridge-domains (L2BD) switching combined with MAC learning enabled. \
+| ... | Qemu Guest is connected to VPP via vhost-user interfaces. Guest is \
+| ... | configured with VPP l2 cross-connect interconnecting vhost-user \
+| ... | interfaces.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets with IP protocol=61 are \
+| ... | sent in both directions by TG on links to DUT1 via VM; on receive TG. \
+| ... | verifies packets for correctness and their IPv4 src-addr, dst-addr \
+| ... | and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${nf_chains}= | ${1}
+| ${nf_nodes}= | ${1}
+| ${nf_dtc} | ${1}
+| ${nf_dtcr} | ${1}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Top]** TG=DUT=VM.
+| | ... | - **[Enc]** Eth-IPv4.
+| | ... | - **[Cfg]** On DUT1 configure \
+| | ... | two L2BDs with MAC learning, each with vhost-user i/f to local \
+| | ... | VM and i/f to TG; configure VPP in VM to loop pkts back betwen its \
+| | ... | two virtio i/fs.
+| | ... | - **[Ver]** Make TG verify IPv4 packets are switched \
+| | ... | thru DUT1 and VM in both directions and are correct on receive.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | ... | count=${nf_chains}
+| | And Initialize L2 bridge domains with Vhost-User | nf_nodes=${nf_nodes}
+| | And Configure chains of NFs connected via vhost-user
+| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes}
+| | ... | vnf=vppl2xc_2vhostvr1024 | pinning=${False}
+| | Then Send IPv4 bidirectionally and verify received packets | ${tg}
+| | ... | ${TG_pf1}[0] | ${TG_pf2}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2bdbasemaclrn-eth-2vhost-1vm-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2vhost-1vm-scapy.robot b/tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2vhost-1vm-scapy.robot
new file mode 100644
index 0000000000..bcd8f46774
--- /dev/null
+++ b/tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2vhost-1vm-scapy.robot
@@ -0,0 +1,102 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | VHOST | 1VM | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-l2xcbase-eth-2vhost-1vm
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | vhost
+|
+| Test Template | Local Template
+|
+| Documentation | **L2 cross-connect test cases with vhost user interface**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with VM and single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | (L2XC) switching. Qemu Guest is connected to VPP via vhost-user \
+| ... | interfaces. Guest is configured with VPP l2 cross-connect. \
+| ... | interconnecting vhost-user interfaces.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv4 packets with IP protocol=61 are \
+| ... | sent in both directions by TG on links to DUT1 via VM; on receive TG. \
+| ... | verifies packets for correctness and their IPv4 src-addr, dst-addr \
+| ... | and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${nf_chains}= | ${1}
+| ${nf_nodes}= | ${1}
+| ${nf_dtc} | ${1}
+| ${nf_dtcr} | ${1}
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Top]** TG=DUT=VM.
+| | ... | - **[Enc]** Eth-IPv4.
+| | ... | - **[Cfg]** On DUT configure \
+| | ... | two L2 cross-connects (L2XC), each with one untagged interface \
+| | ... | to TG and untagged i/f to local VM over vhost-user.
+| | ... | - **[Ver]** Make \
+| | ... | TG send IPv4 packets in both directions between two of its \
+| | ... | i/fs to be switched by DUT to and from VM; verify all packets \
+| | ... | are received. [Ref]
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize L2 xconnect with Vhost-User | nf_nodes=${nf_nodes}
+| | And Configure chains of NFs connected via vhost-user
+| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes}
+| | ... | vnf=vppl2xc_2vhostvr1024 | pinning=${False}
+| | Then Send IPv4 bidirectionally and verify received packets | ${tg}
+| | ... | ${TG_pf1}[0] | ${TG_pf2}[0]
+
+*** Test Cases ***
+| 64B-0c-ethip4-l2xcbase-eth-2vhost-1vm-scapy
+| | [Tags] | 64B | 0C
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/vm_vhost/ethip4/regenerate_testcases.py b/tests/vpp/device/vm_vhost/ethip4/regenerate_testcases.py
new file mode 100755
index 0000000000..51070e4864
--- /dev/null
+++ b/tests/vpp/device/vm_vhost/ethip4/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot")
diff --git a/tests/vpp/device/vm_vhost/ethip6/2n1l-10ge2p1x710-ethip6-ip6base-eth-2vhost-1vm-scapy.robot b/tests/vpp/device/vm_vhost/ethip6/2n1l-10ge2p1x710-ethip6-ip6base-eth-2vhost-1vm-scapy.robot
new file mode 100644
index 0000000000..9fd6f69b0a
--- /dev/null
+++ b/tests/vpp/device/vm_vhost/ethip6/2n1l-10ge2p1x710-ethip6-ip6base-eth-2vhost-1vm-scapy.robot
@@ -0,0 +1,103 @@
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Intel-X710 | ETH | IP6FWD | BASE | VHOST | 1VM | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | EXPECTED_FAILING
+| ... | ethip6-ip6base-eth-2vhost-1vm
+|
+| Suite Setup | Setup suite topology interfaces | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace | telemetry | vhost
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 routing test cases with vhost user interface**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with VM and single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing on both \
+| ... | links.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | two static IPv6 /64 route entries. Qemu Guest is connected to VPP via \
+| ... | vhost-user interfaces. Guest is running VPP ip6 interconnecting \
+| ... | vhost-user interfaces.
+| ... |
+| ... | - **[Ver] TG verification:** Test IPv6 packets are sent in one \
+| ... | direction by TG on links to DUT1; on receive TG verifies packets for \
+| ... | correctness and their IPv6 src-addr, dst-addr and MAC addresses.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2460, RFC4443, \
+| ... | RFC4861.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${nf_chains}= | ${1}
+| ${nf_nodes}= | ${1}
+| ${nf_dtc} | ${1}
+| ${nf_dtcr} | ${1}
+| ${tg_if1_ip}= | 2001:1::2
+| ${tg_if2_ip}= | 2001:2::2
+# Telemetry
+| ${telemetry_profile}= | vppctl_test_teardown
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | Test uses two VRFs to route IPv6 traffic through two vhost-user \
+| | ... | interfaces. Both interfaces are configured with IP addresses from \
+| | ... | the same network. The VM is running VPP IPv6 forwarding to pass \
+| | ... | packet from one vhost-user interface to the other one.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv6 forwarding with vhost in 2-node circular topology
+| | ... | nf_nodes=${nf_nodes}
+| | And Configure chains of NFs connected via vhost-user
+| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes}
+| | ... | vnf=vppip6_2vhostvr1024 | pinning=${False}
+| | Then Send packet and verify headers
+| | ... | ${tg} | ${tg_if1_ip} | ${tg_if2_ip}
+| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
+| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
+
+*** Test Cases ***
+| 78B-0c-ethip6-ip6base-eth-2vhost-1vm-scapy
+| | [Tags] | 78B | 0C
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/vm_vhost/ethip6/regenerate_testcases.py b/tests/vpp/device/vm_vhost/ethip6/regenerate_testcases.py
new file mode 100755
index 0000000000..2cae24e087
--- /dev/null
+++ b/tests/vpp/device/vm_vhost/ethip6/regenerate_testcases.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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.
+
+from resources.libraries.python.autogen.Regenerator import Regenerator
+
+Regenerator().regenerate_glob(u"*.robot", protocol=u"ip6")
diff --git a/tests/vpp/device/vm_vhost/ip4/eth2p-ethipv4-ip4base-eth-2vhost-1vm-dev.robot b/tests/vpp/device/vm_vhost/ip4/eth2p-ethipv4-ip4base-eth-2vhost-1vm-dev.robot
deleted file mode 100644
index de34c1e19c..0000000000
--- a/tests/vpp/device/vm_vhost/ip4/eth2p-ethipv4-ip4base-eth-2vhost-1vm-dev.robot
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | BASE | VHOST | 1VM | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-ip4base-eth-2vhost-1vm
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | vhost
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 routing test cases with vhost user interface*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with \
-| ... | VM and single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing on both links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
-| ... | two static IPv4 /24 route entries. Qemu Guest is connected to VPP via \
-| ... | vhost-user interfaces. Guest is running VPP ip4 interconnecting \
-| ... | vhost-user interfaces.
-| ... | *[Ver] TG verification:* Test IPv4 packet with IP protocol=61 is sent \
-| ... | in one direction by TG on links to DUT1; on receive TG verifies packet \
-| ... | for correctness and their IPv4 src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-| ${nf_chains}= | ${1}
-| ${nf_nodes}= | ${1}
-| ${nf_dtc} | ${1}
-| ${nf_dtcr} | ${1}
-| ${tg_if1_ip}= | 10.10.10.2
-| ${tg_if2_ip}= | 20.20.20.2
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | Test uses two VRFs to route IPv4 traffic through two vhost-user \
-| | ... | nterfaces. Both interfaces are configured with IP addresses from \
-| | ... | the same network. The VM is running VPP IPv4 forwarding to pass \
-| | ... | packet from one vhost-user interface to the other one.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with vhost in 2-node circular topology
-| | ... | nf_nodes=${nf_nodes}
-| | And Configure chains of NFs connected via vhost-user
-| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes}
-| | ... | vnf=vppip4noarp_2vhostvr1024 | pinning=${False}
-| | Then Send packet and verify headers
-| | ... | ${tg} | ${tg_if1_ip} | ${tg_if2_ip}
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-*** Test Cases ***
-| 64B-ethip4-ip4base-eth-2vhost-1vm-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/vm_vhost/ip6/eth2p-ethipv6-ip6base-eth-2vhost-1vm-dev.robot b/tests/vpp/device/vm_vhost/ip6/eth2p-ethipv6-ip6base-eth-2vhost-1vm-dev.robot
deleted file mode 100644
index 6db832f7f9..0000000000
--- a/tests/vpp/device/vm_vhost/ip6/eth2p-ethipv6-ip6base-eth-2vhost-1vm-dev.robot
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | BASE | VHOST | 1VM | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv6-ip6base-eth-2vhost-1vm
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | vhost
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 routing test cases with vhost user interface*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with \
-| ... | VM and single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing on both links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
-| ... | two static IPv6 /64 route entries. Qemu Guest is connected to VPP via \
-| ... | vhost-user interfaces. Guest is running VPP ip6 interconnecting \
-| ... | vhost-user interfaces.
-| ... | *[Ver] TG verification:* Test IPv6 packets are sent in one direction \
-| ... | by TG on links to DUT1; on receive TG verifies packets for correctness \
-| ... | and their IPv6 src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC2460, RFC4443, RFC4861
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-| ${nf_chains}= | ${1}
-| ${nf_nodes}= | ${1}
-| ${nf_dtc} | ${1}
-| ${nf_dtcr} | ${1}
-| ${tg_if1_ip}= | 2001:1::2
-| ${tg_if2_ip}= | 2001:2::2
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | Test uses two VRFs to route IPv6 traffic through two vhost-user \
-| | ... | interfaces. Both interfaces are configured with IP addresses from \
-| | ... | the same network. The VM is running VPP IPv6 forwarding to pass \
-| | ... | packet from one vhost-user interface to the other one.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with vhost in 2-node circular topology
-| | ... | nf_nodes=${nf_nodes}
-| | And Configure chains of NFs connected via vhost-user
-| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes}
-| | ... | vnf=vppip6_2vhostvr1024 | pinning=${False}
-| | Then Send packet and verify headers
-| | ... | ${tg} | ${tg_if1_ip} | ${tg_if2_ip}
-| | ... | ${TG_pf1}[0] | ${TG_pf1_mac}[0] | ${DUT1_vf1_mac}[0]
-| | ... | ${TG_pf2}[0] | ${DUT1_vf2_mac}[0] | ${TG_pf2_mac}[0]
-
-
-*** Test Cases ***
-| 64B-ethipv6-ip6base-eth-2vhost-1vm-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/vm_vhost/l2bd/eth2p-ethipv4-l2bdbasemaclrn-eth-2vhost-1vm-dev.robot b/tests/vpp/device/vm_vhost/l2bd/eth2p-ethipv4-l2bdbasemaclrn-eth-2vhost-1vm-dev.robot
deleted file mode 100644
index 2f3eb28d32..0000000000
--- a/tests/vpp/device/vm_vhost/l2bd/eth2p-ethipv4-l2bdbasemaclrn-eth-2vhost-1vm-dev.robot
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2BDMACLRN | BASE | VHOST | 1VM
-| ... | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2bdbasemaclrn-eth-2vhost-1vm
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | vhost
-|
-| Test Template | Local Template
-|
-| Documentation | *L2 bridge-domain test cases with vhost user interface*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with \
-| ... | VM and single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 \
-| ... | bridge-domains (L2BD) switching combined with MAC learning enabled. \
-| ... | Qemu Guest is connected to VPP via vhost-user interfaces. Guest is \
-| ... | configured with VPP l2 cross-connect interconnecting vhost-user \
-| ... | interfaces.
-| ... | *[Ver] TG verification:* Test IPv4 packets with IP protocol=61 are \
-| ... | sent in both directions by TG on links to DUT1 via VM; on receive TG \
-| ... | verifies packets for correctness and their IPv4 src-addr, dst-addr \
-| ... | and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-| ${nf_chains}= | ${1}
-| ${nf_nodes}= | ${1}
-| ${nf_dtc} | ${1}
-| ${nf_dtcr} | ${1}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Top] TG=DUT=VM. [Enc] Eth-IPv4. [Cfg] On DUT1 configure \
-| | ... | two L2BDs with MAC learning, each with vhost-user i/f to local \
-| | ... | VM and i/f to TG; configure VPP in VM to loop pkts back betwen its \
-| | ... | two virtio i/fs. [Ver] Make TG verify IPv4 packets are switched \
-| | ... | thru DUT1 and VM in both directions and are correct on receive.
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | ... | count=${nf_chains}
-| | And Initialize L2 bridge domains with Vhost-User | nf_nodes=${nf_nodes}
-| | And Configure chains of NFs connected via vhost-user
-| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes}
-| | ... | vnf=vppl2xc_2vhostvr1024 | pinning=${False}
-| | Then Send IPv4 bidirectionally and verify received packets | ${tg}
-| | ... | ${TG_pf1}[0] | ${TG_pf2}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2bdbasemaclrn-eth-2vhost-1vm-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/vm_vhost/l2xc/eth2p-ethipv4-l2xcbase-eth-2vhost-1vm-dev.robot b/tests/vpp/device/vm_vhost/l2xc/eth2p-ethipv4-l2xcbase-eth-2vhost-1vm-dev.robot
deleted file mode 100644
index d84fe18f0f..0000000000
--- a/tests/vpp/device/vm_vhost/l2xc/eth2p-ethipv4-l2xcbase-eth-2vhost-1vm-dev.robot
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2XCFWD | BASE | VHOST | 1VM | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethipv4-l2xcbase-eth-2vhost-1vm
-|
-| Suite Setup | Setup suite topology interfaces | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | vhost
-|
-| Test Template | Local Template
-|
-| Documentation | *L2 cross-connect test cases with vhost user interface*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with \
-| ... | VM and single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect \
-| ... | (L2XC) switching. Qemu Guest is connected to VPP via vhost-user \
-| ... | interfaces. Guest is configured with VPP l2 cross-connect \
-| ... | interconnecting vhost-user interfaces.
-| ... | *[Ver] TG verification:* Test IPv4 packets with IP protocol=61 are \
-| ... | sent in both directions by TG on links to DUT1 via VM; on receive TG \
-| ... | verifies packets for correctness and their IPv4 src-addr, dst-addr \
-| ... | and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | virtual
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${overhead}= | ${0}
-| ${nf_chains}= | ${1}
-| ${nf_nodes}= | ${1}
-| ${nf_dtc} | ${1}
-| ${nf_dtcr} | ${1}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Top] TG=DUT=VM. [Enc] Eth-IPv4. [Cfg] On DUT configure \
-| | ... | two L2 cross-connects (L2XC), each with one untagged interface \
-| | ... | to TG and untagged i/f to local VM over vhost-user. [Ver] Make \
-| | ... | TG send IPv4 packets in both directions between two of its \
-| | ... | i/fs to be switched by DUT to and from VM; verify all packets \
-| | ... | are received. [Ref]
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize L2 xconnect with Vhost-User | nf_nodes=${nf_nodes}
-| | And Configure chains of NFs connected via vhost-user
-| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes}
-| | ... | vnf=vppl2xc_2vhostvr1024 | pinning=${False}
-| | Then Send IPv4 bidirectionally and verify received packets | ${tg}
-| | ... | ${TG_pf1}[0] | ${TG_pf2}[0]
-
-*** Test Cases ***
-| 64B-ethipv4-l2xcbase-eth-2vhost-1vm-dev
-| | [Tags] | 64B
-| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/perf/__init__.robot b/tests/vpp/perf/__init__.robot
index 2b38b2a4ee..04b47f9746 100644
--- a/tests/vpp/perf/__init__.robot
+++ b/tests/vpp/perf/__init__.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -18,21 +18,23 @@
| Library | resources.libraries.python.PapiExecutor.Disconnector
| Library | resources.libraries.python.SetupFramework
| Library | resources.libraries.python.SetupFramework.CleanupFramework
-| Library | resources.libraries.python.CpuUtils
|
-| Suite Setup | Run Keywords | Setup Global Variables
+| Suite Setup | Run Keywords | Start Suite Setup Export
+| ... | AND | Setup Global Variables
| ... | AND | Setup Framework | ${nodes}
| ... | AND | Setup Corekeeper on All Nodes | ${nodes}
| ... | AND | Install Vpp on All Duts | ${nodes} | ${packages_dir}
-| ... | AND | Verify Vpp on All Duts | ${nodes}
-| ... | AND | Verify UIO Driver on all DUTs | ${nodes}
+| ... | AND | Init Vpp Startup Configuration on All Duts | ${nodes}
| ... | AND | Show Vpp Version on All Duts | ${nodes}
| ... | AND | Get CPU Info from All Nodes | ${nodes}
| ... | AND | Update All Interface Data on All Nodes | ${nodes}
| ... | skip_tg=${True}
+| ... | AND | Finalize Suite Setup Export
|
-| Suite Teardown | Run Keywords | Disconnect All Papi Connections
+| Suite Teardown | Run Keywords | Start Suite Teardown Export
+| ... | AND | Disconnect All Papi Connections
| ... | AND | Cleanup Framework | ${nodes}
+| ... | AND | Finalize Suite Teardown Export
*** Keywords ***
| Setup Global Variables
@@ -40,24 +42,19 @@
| | ... | Setup suite Variables. Variables are used across performance testing.
| |
| | ... | _NOTE:_ This KW sets following suite variables:
-| | ... | - pre_stats - Statistics actions before traffic.
-| | ... | - post_stats - Statistics actions after traffic.
-| | ... | - pre_run_stats - Statistics actions during traffic before timer.
-| | ... | - post_run_stats - Statistics actions during traffic after timer.
+| | ... | - stat_runtime - Statistics actions within traffic trial.
+| | ... | - stat_pre_trial - Statistics actions before traffic trials.
+| | ... | - stat_post_trial - Statistics actions after traffic trials.
| | ... | - packages_dir - Path to directory where VPP packages are stored.
| |
-| | ${pre_stats}= | Create List
-| | ... | clear-show-runtime-with-traffic | vpp-clear-stats
-| | ... | vpp-enable-packettrace | vpp-enable-elog
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ${pre_run_stats}= | Create List
-| | ... | vpp-clear-runtime
-| | ${post_run_stats}= | Create List
-| | ... | vpp-show-runtime | bash-perf-stat
-| | Set Global Variable | ${pre_stats}
-| | Set Global Variable | ${post_stats}
-| | Set Global Variable | ${pre_run_stats}
-| | Set Global Variable | ${post_run_stats}
+| | ${stat_runtime}= | Create List
+| | ... | vpp-runtime | perf-stat-runtime
+| | ${stat_pre_trial}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace
+| | ${stat_post_trial}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace
+| | Set Global Variable | ${stat_runtime}
+| | Set Global Variable | ${stat_pre_trial}
+| | Set Global Variable | ${stat_post_trial}
| | Set Global Variable | ${packages_dir} | /tmp/openvpp-testing/download_dir/
| | Set Global Variable | ${nodes}
diff --git a/tests/vpp/perf/container_memif/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot
index c03f90cf47..26b41b124f 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,34 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with memif and IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain. IEEE\
+| Documentation | **RFC2544: Pkt throughput L2BD with memif and IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain. IEEE \
| ... | 802.1Q tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with two L2\
-| ... | bridge domains and MAC learning enabled. Container is connected to VPP\
-| ... | via Memif interface. Container is running same VPP version as running\
-| ... | on DUT. Container is limited via cgroup to use 3 cores allocated from\
-| ... | pool of isolated CPUs. There are no memory constraints. DUT1 and DUT2\
-| ... | tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUTs. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP\
-| ... | protocol=61 and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with two \
+| ... | L2 bridge domains and MAC learning enabled. Container is connected to \
+| ... | VPP via Memif interface. Container is running same VPP version as \
+| ... | running on DUT. Container is limited via cgroup to use 3 cores \
+| ... | allocated from pool of isolated CPUs. There are no memory constraints. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUTs. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -69,7 +74,7 @@
| ${bd_id1}= | 1
| ${bd_id2}= | 2
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain
@@ -77,9 +82,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD switching with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr.robot b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr.robot
index 48e2493cb1..628a264655 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with two L2
-| ... | bridge domains and MAC learning enabled. LXC is connected to VPP via
-| ... | Memif interface. LXC is running same VPP version as running on DUT. LXC
-| ... | is limited via cgroup to use 3 cores allocated from pool of isolated
-| ... | CPUs. There are no memory constraints. DUT1 and DUT2 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with two \
+| ... | L2 bridge domains and MAC learning enabled. LXC is connected to VPP \
+| ... | via Memif interface. LXC is running same VPP version as running on \
+| ... | DUT. LXC is limited via cgroup to use 3 cores allocated from pool of \
+| ... | isolated CPUs. There are no memory constraints. DUT1 and DUT2 are \
+| ... | tested with with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -61,7 +65,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
# Container
| ${container_engine}= | LXC
| ${container_chain_topology}= | chain
@@ -69,9 +73,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot
index bc35fd9a74..12263ff0aa 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
-| ... | connect. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use 3 cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2XC test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | cross-connect. DUT1 and DUT2 tested with ${nic_name}.
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | use 3 cores allocated from pool of isolated CPUs. There are no memory \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -61,7 +65,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain
@@ -69,9 +73,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-ndrpdr.robot b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-ndrpdr.robot
index 5662346013..856ae1c8ae 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-ndrpdr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
-| ... | connect. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | LXC is connected to VPP via Memif interface. LXC is running same VPP
-| ... | version as running on DUT. LXC is limited via cgroup to use 3 cores
+| Documentation | **RFC2544: Pkt throughput L2XC test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | cross-connect. DUT1 and DUT2 tested with ${nic_name}.
+| ... | LXC is connected to VPP via Memif interface. LXC is running same VPP \
+| ... | version as running on DUT. LXC is limited via cgroup to use 3 cores \
| ... | allocated from pool of isolated CPUs. There are no memory contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,7 +64,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
# Container
| ${container_engine}= | LXC
| ${container_chain_topology}= | chain
@@ -68,9 +72,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/container_memif/10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot
index f0cb26cf6e..8df1e82e68 100644
--- a/tests/vpp/perf/container_memif/10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot
+++ b/tests/vpp/perf/container_memif/10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,30 +26,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
-| ... | routing with two FIB tables and two static IPv4 /24 route entries per
-| ... | FIB table. Container is connected to VPP via Memif interface. Container
-| ... | is running same VPP version as running on DUT. Container is limited via
-| ... | cgroup to use cores allocated from pool of isolated CPUs. There are no
-| ... | memory contraints. DUTs are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing with two FIB tables and two static IPv4 /24 route entries per \
+| ... | FIB table. Container is connected to VPP via Memif interface. \
+| ... | Container is running same VPP version as running on DUT. Container is \
+| ... | limited via cgroup to use cores allocated from pool of isolated CPUs. \
+| ... | There are no memory contraints. DUTs are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,7 +64,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain
@@ -68,9 +72,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot
index 6760dea27d..ee2f7a6e06 100644
--- a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot
+++ b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,34 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with memif and IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain. IEEE\
+| Documentation | **RFC2544: Pkt throughput L2BD with memif and IEEE 802.1Q
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain. IEEE \
| ... | 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge\
-| ... | domains and MAC learning enabled. Container is connected to VPP via\
-| ... | Memif interface. Container is running same VPP version as running\
-| ... | on DUT. Container is limited via cgroup to use 3 cores allocated from\
-| ... | pool of isolated CPUs. There are no memory constraints. DUT1 is tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUT1. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP\
-| ... | protocol=61 and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. Container is connected to VPP via \
+| ... | Memif interface. Container is running same VPP version as running \
+| ... | on DUT. Container is limited via cgroup to use 3 cores allocated from \
+| ... | pool of isolated CPUs. There are no memory constraints. DUT1 is tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUT1. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -69,7 +74,7 @@
| ${bd_id1}= | 1
| ${bd_id2}= | 2
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain
@@ -77,9 +82,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD switching with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr.robot
new file mode 100644
index 0000000000..8b64f858a2
--- /dev/null
+++ b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr.robot
@@ -0,0 +1,163 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/features/dma.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | DOT1Q | L2BDMACLRN | BASE | MEMIF | DOCKER | DMA
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | container
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput L2BD with memif and IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain. IEEE \
+| ... | 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. Container is connected to VPP via \
+| ... | Memif interface. Container is running same VPP version as running \
+| ... | on DUT. Container is limited via cgroup to use 3 cores allocated from \
+| ... | pool of isolated CPUs. There are no memory constraints. DUT1 is tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUT1. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L2
+| ${overhead}= | ${4}
+| ${subid}= | 10
+| ${tag_rewrite}= | pop-1
+| ${bd_id1}= | 1
+| ${bd_id2}= | 2
+| ${heap_size_mult}= | ${2}
+#| ${page_size}= | 1G
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
+# Container
+| ${container_engine}= | Docker
+| ${container_chain_topology}= | chain_dma
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** Each DUT runs L2BD switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable DMA WQs on all DUTs
+| | And Start containers for test
+| | ... | nf_chains=${1} | nf_nodes=${1} | auto_scale=${True}
+| | ... | pinning=${True}
+| | Initialize L2 Bridge Domain with memif pairs and VLAN in circular topology
+| | ... | ${bd_id1} | ${bd_id2} | ${subid} | ${tag_rewrite}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-dot1q-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot
index 8bbeb9bbe5..5ee6e1b5f5 100644
--- a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot
+++ b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -61,7 +65,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain
@@ -69,9 +73,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr.robot
new file mode 100644
index 0000000000..4996795c0c
--- /dev/null
+++ b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr.robot
@@ -0,0 +1,153 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/features/dma.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE | MEMIF | DOCKER | DMA
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | eth-l2bdbasemaclrn-eth-2memif-dma-1dcr
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | container
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L2
+| ${overhead}= | ${0}
+| ${heap_size_mult}= | ${2}
+#| ${page_size}= | 1G
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
+# Container
+| ${container_engine}= | Docker
+| ${container_chain_topology}= | chain_dma
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable DMA WQs on all DUTs
+| | And Start containers for test
+| | ... | nf_chains=${1} | nf_nodes=${1} | auto_scale=${True}
+| | ... | pinning=${True}
+| | And Initialize L2 Bridge Domain for multiple chains with memif pairs
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bdbasemaclrn-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot
index f91ef96ee7..51defa7d47 100644
--- a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot
+++ b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect.
-| ... | DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2XC test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | DUT1 tested with ${nic_name}.
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -61,7 +65,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain
@@ -69,9 +73,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr.robot
new file mode 100644
index 0000000000..7443c1015e
--- /dev/null
+++ b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr.robot
@@ -0,0 +1,153 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/features/dma.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | MEMIF | DOCKER | DMA
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | eth-l2xcbase-eth-2memif-dma-1dcr
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | container
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput L2XC test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | DUT1 tested with ${nic_name}.
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L2
+| ${overhead}= | ${0}
+| ${heap_size_mult}= | ${2}
+#| ${page_size}= | 1G
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
+# Container
+| ${container_engine}= | Docker
+| ${container_chain_topology}= | chain_dma
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable DMA WQs on all DUTs
+| | And Start containers for test
+| | ... | nf_chains=${1} | nf_nodes=${1} | auto_scale=${True}
+| | ... | pinning=${True}
+| | And Initialize L2 xconnect with memif pairs
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2xcbase-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot
index c474555e67..44d19c08f9 100644
--- a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot
+++ b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing with
-| ... | two FIB tables and two static IPv4 /24 route entries per FIB table.
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints. DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | with two FIB tables and two static IPv4 /24 route entries per FIB \
+| ... | table. Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -61,7 +65,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain
@@ -69,9 +73,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr.robot b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr.robot
new file mode 100644
index 0000000000..2a50bd158c
--- /dev/null
+++ b/tests/vpp/perf/container_memif/2n1l-10ge2p1x710-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr.robot
@@ -0,0 +1,153 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/features/dma.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | BASE | MEMIF | DOCKER | DMA
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4base-eth-2memif-dma-1dcr
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | container
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | with two FIB tables and two static IPv4 /24 route entries per FIB \
+| ... | table. Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${heap_size_mult}= | ${2}
+#| ${page_size}= | 1G
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
+# Container
+| ${container_engine}= | Docker
+| ${container_chain_topology}= | chain_dma
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable DMA WQs on all DUTs
+| | And Start containers for test
+| | ... | nf_chains=${1} | nf_nodes=${1} | auto_scale=${True}
+| | ... | pinning=${True}
+| | And Initialize IPv4 routing with memif pairs
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4-ip4base-eth-2memif-dma-1dcr-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/container_memif/regenerate_testcases.py b/tests/vpp/perf/container_memif/regenerate_testcases.py
index ec754aa261..e22f6de5c3 100755
--- a/tests/vpp/perf/container_memif/regenerate_testcases.py
+++ b/tests/vpp/perf/container_memif/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..570019efb3
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot
@@ -0,0 +1,177 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_100000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | FASTPATH | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${100000}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable IPsec SPD Fast Path IPv4 Inbound And Outbound
+| | ... | ${${n_tunnels}*10}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And VPP Set Neighbor Limit on all DUTs | ${nodes} | ${${n_tunnels}*2}
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec100000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..91ece3f5c4
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
@@ -0,0 +1,169 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_10000
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${10000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..36e35fd3d7
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | TNL_10000
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${10000}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${2}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUTs runs IPsec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..36133407b8
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot
@@ -0,0 +1,173 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | TNL_10000
+| ... | FASTPATH | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${10000}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${2}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUTs runs IPsec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable IPsec SPD Fast Path IPv4 Inbound And Outbound
+| | ... | ${${n_tunnels}*10}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10000tnlhwasync-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
deleted file mode 100644
index 71f05cc075..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_10000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${10000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
deleted file mode 100644
index 35c3e5a7e8..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_10000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${10000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
deleted file mode 100644
index 6bd4e5f9ad..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_10000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${10000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
deleted file mode 100644
index 079378099b..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_10000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${10000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec10000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index b710512883..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${10000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index e20952c052..92fa3ec088 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${10000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
index ce8d606852..43be8b69d0 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${10000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
index 0b8239bdc8..f698dc3224 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${10000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..a2ad1c8b10
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${10000}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${2}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10000tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..ea252c70cf
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot
@@ -0,0 +1,176 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | FASTPATH | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${10000}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${2}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable IPsec SPD Fast Path IPv4 Inbound And Outbound
+| | ... | ${${n_tunnels}*10}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..7c96ba7cd0
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr.robot
@@ -0,0 +1,176 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | SPD_FLOW_CACHE | NIC_Intel-X710
+| ... | SCALE | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them with SPD flow cache enabled \
+| ... | on both inbound and outbound traffic. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${10000}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${2}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable SPD flow cache IPv4 Inbound
+| | And Enable SPD flow cache IPv4 Outbound
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10000tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..3734288de1
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,154 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
+| ... | SPE_1000 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. SPD flow-cache for IPv4 outbound traffic is enabled. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${1000}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable SPD flow cache IPv4 Outbound
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..f29a37dfbd
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,151 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_1000 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${1000}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 8b4de20ad2..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | TNL_1000
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index 42423b2e5f..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | TNL_1000
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr.robot
deleted file mode 100644
index 093ddc31fb..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | TNL_1000
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhw-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto}= | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1}
-| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1}
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr.robot
deleted file mode 100644
index f8c25c1bc3..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | TNL_1000
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhw-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto}= | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1}
-| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1}
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 2c5ac80d10..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | TNL_1000
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index a883c25219..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | TNL_1000
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr.robot
deleted file mode 100644
index 6ec0e83392..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | TNL_1000
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto}= | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1}
-| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1}
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot
deleted file mode 100644
index 70cdafda5a..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | TNL_1000
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto}= | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1}
-| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1}
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index dc1ea3a3db..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
-| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Enable IPSec Async Mode on all VPP DUTs
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index efcabbdf63..99369e7d68 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -22,39 +21,46 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | ipsec_sa
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +71,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot
index 5f09b970c5..3bea17d5c6 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_1000
@@ -22,39 +21,46 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | ipsec_sa
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +71,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
index 086b9ba511..b9432870e6 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_1000
@@ -22,39 +21,46 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | ipsec_sa
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +71,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 258b6e28e0..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | TNL_1000
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Enable IPSec Async Mode on all VPP DUTs
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index a20c0d1375..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | TNL_1000
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Enable IPSec Async Mode on all VPP DUTs
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr.robot
deleted file mode 100644
index 35e3addd09..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
-| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | TNL_1000
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Enable IPSec Async Mode on all VPP DUTs
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot
index 774a645fb3..33fec47757 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | TNL_1000
@@ -22,39 +21,46 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
+| Test Teardown | Tear down test | performance | ipsec_all
|
| Test Template | Local Template
|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +71,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUTs runs IPsec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
deleted file mode 100644
index 00e0bd7155..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_1000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
deleted file mode 100644
index d2616a9f9c..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_1000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
deleted file mode 100644
index 729c4ae8ca..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_1000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
deleted file mode 100644
index bc2dada640..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_1000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..56af1531fa
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -0,0 +1,172 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels which shared same tunnel src and dst ip \
+| ... | address. DUTs get IPv4 traffic from TG, encrypt it and send to \
+| ... | another DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${False}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..e6019e8803
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr.robot
@@ -0,0 +1,181 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | FLOW_DIR | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels which shared same tunnel src and dst ip \
+| ... | address, enabled IPsec_ESP flow director between them.\
+| ... | DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${dut1_spi}= | ${400000}
+| ${dut2_spi}= | ${300000}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP Create Ipsec Flows On Dut
+| | ... | ${dut1} | ${n_tunnels} | ${rxq_count_int} | ${dut1_spi}
+| | ... | ${DUT1_${int}2}[0]
+| | And VPP Create Ipsec Flows On Dut
+| | ... | ${dut2} | ${n_tunnels} | ${rxq_count_int} | ${dut2_spi}
+| | ... | ${DUT2_${int}1}[0]
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${False}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..e117a416e2
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr.robot
@@ -0,0 +1,179 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | FLOW_RSS | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels which shared same tunnel src and dst ip \
+| ... | address, enabled flow rss action between them.\
+| ... | DUTs get IPv4 traffic from TG, encrypt it and send to another DUT, \
+| ... | where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 3-node circular topology
+| | ${flow_index} = | And VPP Ipsec Flow Enale Rss
+| | ... | ${dut1} | IPSEC_ESP | esp | default
+| | And VPP Flow Enable | ${dut1} | ${DUT1_${int}2}[0] | ${flow_index}
+| | ${flow_index} = | And VPP Ipsec Flow Enale Rss
+| | ... | ${dut2} | IPSEC_ESP | esp | default
+| | And VPP Flow Enable | ${dut2} | ${DUT2_${int}1}[0] | ${flow_index}
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${False}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index c2eb1946cc..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index c0240724a3..50f10cf291 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr.robot
new file mode 100644
index 0000000000..949b6e16f3
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | REASSEMBLY | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG. The MTU on DUT-DUT link is lowered to induce packet \
+| ... | fragmentation and reassembly.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Lower DUT1-DUT2 MTU For Fragmentation
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
index 19a9f19f07..7af42b2898 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
index 8c60fcc2cb..d25982f5be 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr.robot
new file mode 100644
index 0000000000..ca4c96f57b
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | REASSEMBLY | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG. The MTU on DUT-DUT link is lowered to induce packet \
+| ... | fragmentation and reassembly.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Lower DUT1-DUT2 MTU For Fragmentation
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index ba11e06e34..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - search_type - NDR or PDR. Type: string
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
-| | ... | Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index 64fa889d18..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - search_type - NDR or PDR. Type: string
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
-| | ... | Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr.robot
deleted file mode 100644
index 172a911b3c..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,165 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - search_type - NDR or PDR. Type: string
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
-| | ... | Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto}= | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
index 82a861f6bd..dfae17c01b 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE
@@ -24,36 +23,43 @@
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
+| Test Teardown | Tear down test | performance | ipsec_all
|
| Test Template | Local Template
|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr.robot
new file mode 100644
index 0000000000..28625236c0
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr.robot
@@ -0,0 +1,173 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | REASSEMBLY | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG. The MTU on DUT-DUT link is lowered to induce packet \
+| ... | fragmentation and reassembly.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Lower DUT1-DUT2 MTU For Fragmentation
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..55a95344d5
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,154 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
+| ... | SPE_100 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. SPD flow-cache for IPv4 outbound traffic is enabled. \
+| ... | DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${100}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable SPD flow cache IPv4 Outbound
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..da0bb0edfc
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,151 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_100 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec100spe-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${100}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..3e665a2fe7
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,154 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
+| ... | SPE_10 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. SPD flow-cache for IPv4 outbound traffic is enabled. \
+| ... | DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${10}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable SPD flow cache IPv4 Outbound
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..3bb23bbeca
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,151 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_10 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10spe-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${10}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..1fb6841428
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,154 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | BASE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
+| ... | SPE_1 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. SPD flow-cache for IPv4 outbound traffic is enabled. \
+| ... | DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${1}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable SPD flow cache IPv4 Outbound
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..39ac669b91
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,151 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | BASE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_1 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1spe-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${1}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 3ead61307b..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index 96241180c1..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr.robot
deleted file mode 100644
index dfacf924d6..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | BASE
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhw-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto}= | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1}
-| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1}
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr.robot
deleted file mode 100644
index a4eeed0da4..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | BASE
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhw-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto}= | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1}
-| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1}
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 681e1e448f..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_CBC_128 / HMAC_256_SHA config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index a9f822e70f..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_CBC_128 / HMAC_512_SHA config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr.robot
deleted file mode 100644
index 01879c8140..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | BASE
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhw-ip4base-policy-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto}= | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1}
-| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1}
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot
deleted file mode 100644
index 02e37038c1..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | BASE
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhw-ip4base-policy-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto}= | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And VPP IPsec Select Backend | ${dut1} | ${ipsec_proto} | index=${1}
-| | And VPP IPsec Select Backend | ${dut2} | ${ipsec_proto} | index=${1}
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 1e0fd92b05..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Enable IPSec Async Mode on all VPP DUTs
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index 0923936c69..dd32df2c40 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
@@ -22,39 +21,46 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | ipsec_sa
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +71,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot
index 17c1015abb..bdeb172ecc 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
@@ -22,39 +21,46 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | ipsec_sa
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +71,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
index 3112cca147..473eed15b3 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
@@ -22,39 +21,47 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | ipsec_sa
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +72,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index b90d0fb20b..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_CBC_128 / HMAC_256_SHA config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Enable IPSec Async Mode on all VPP DUTs
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index bec8975e67..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_CBC_128 / HMAC_512_SHA config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Enable IPSec Async Mode on all VPP DUTs
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr.robot
deleted file mode 100644
index dbb00b6db8..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | BASE
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Enable IPSec Async Mode on all VPP DUTs
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot
index 95070aab6d..df3114048f 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | BASE
@@ -22,39 +21,46 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
+| Test Teardown | Tear down test | performance | ipsec_all
|
| Test Template | Local Template
|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +71,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUTs runs IPsec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUTs runs IPsec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
deleted file mode 100644
index e802692e61..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_1
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
deleted file mode 100644
index d5e3a0f22f..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_1
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
deleted file mode 100644
index 1a24c6a3f1..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_1
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE
-| ... | AES_128_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
deleted file mode 100644
index d0c235ee99..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_1
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE
-| ... | AES_256_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 2b95b50535..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index f91e2b430c..dfd3bdb674 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr.robot
new file mode 100644
index 0000000000..6d20449f98
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | REASSEMBLY | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG. The MTU on DUT-DUT link is lowered to induce packet \
+| ... | fragmentation and reassembly.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Lower DUT1-DUT2 MTU For Fragmentation
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-reassembly-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
index c1ff5766a7..b6b5d6cabc 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
index ac103420d0..a5cdd82761 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.\
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr.robot
new file mode 100644
index 0000000000..10e8dab25f
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE
+| ... | AES_256_GCM | AES | REASSEMBLY | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG. The MTU on DUT-DUT link is lowered to induce packet \
+| ... | fragmentation and reassembly.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Lower DUT1-DUT2 MTU For Fragmentation
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 900d476cf1..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index b20bc06d0e..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | BASE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr.robot
deleted file mode 100644
index f225511a9c..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | BASE
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1tnlsw-ip4base-policy-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto}= | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply Startup configuration on all VPP DUTs
-| | And Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Add Multiple Tunnels
-| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1tnlsw-ip4base-policy-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
index cfd8aa17a5..a52ce922d3 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | BASE
@@ -24,36 +23,43 @@
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
+| Test Teardown | Tear down test | performance | ipsec_all
|
| Test Template | Local Template
|
-| Documentation | *IPv4 IPsec tunnel mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 100.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr.robot
new file mode 100644
index 0000000000..4b67c07e89
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | BASE
+| ... | AES_256_GCM | AES | REASSEMBLY | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG. The MTU on DUT-DUT link is lowered to induce packet \
+| ... | fragmentation and reassembly.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Lower DUT1-DUT2 MTU For Fragmentation
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-reassembly-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
new file mode 100644
index 0000000000..26675c4505
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
+| ... | SCHEDULER | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot
new file mode 100644
index 0000000000..d8d091ee0a
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
+| ... | SCHEDULER | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..88ed9d70c8
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | BASE | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_1
+| ... | SCHEDULER | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
deleted file mode 100644
index c712e49fa2..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_20000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${20000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
deleted file mode 100644
index 9f6eda436b..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_20000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${20000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
deleted file mode 100644
index 6fee5fb803..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_20000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${20000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
deleted file mode 100644
index ba0b6bcf24..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_20000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${20000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 797ec06cb0..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_20000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${20000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index 366684858e..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_20000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${20000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
deleted file mode 100644
index 54448105c7..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_20000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${20000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
deleted file mode 100644
index 347a916210..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_20000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${20000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
new file mode 100644
index 0000000000..e9b966ff00
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_2
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${2}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot
new file mode 100644
index 0000000000..ced1024fb3
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_2
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${2}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..61b576e013
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_2
+| ... | SCHEDULER | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${2}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
deleted file mode 100644
index 18ea04a2e9..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_40000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${40000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
deleted file mode 100644
index 83b8746530..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_40000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${40000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
deleted file mode 100644
index 5d21180735..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_40000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${40000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
deleted file mode 100644
index e4cfe4d478..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_40000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${40000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 7d45056f0b..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${40000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index 8c981aac8f..bc4c0aec53 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40000
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
index 735cdf9049..6317aba965 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40000
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
index 6fcbacc22e..4eb838683f 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40000
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..73f01a0958
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot
@@ -0,0 +1,176 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40000
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | FASTPATH | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40000}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable IPsec SPD Fast Path IPv4 Inbound And Outbound
+| | ... | ${${n_tunnels}*10}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
deleted file mode 100644
index 2e234745bc..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_400
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${400}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
deleted file mode 100644
index bbdb57f9f7..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_400
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${400}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
deleted file mode 100644
index aa27e1c337..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_400
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${400}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
deleted file mode 100644
index 08da271ac3..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_400
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${400}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 58df85574c..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_400
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${400}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index 9caa35be96..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_400
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${400}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
deleted file mode 100644
index ba8f2f3ea0..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_400
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${400}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
deleted file mode 100644
index 2c2557e331..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_400
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${400}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
deleted file mode 100644
index b387a4e131..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_40
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${40}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
index 1d89410bf9..9dac092cbf 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_40
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Packet loss IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds throughput NDR (Non Drop Rate) \
+| ... | with zero packet loss tolerance, then measures loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -62,26 +67,27 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40}
| ${n_added_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -109,8 +115,7 @@
| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And VPP IPsec Create Tunnel Interfaces
| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
index 97a7842348..ec6bbd133a 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_40
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Packet loss IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds throughput NDR (Non Drop Rate) \
+| ... | with zero packet loss tolerance, then measures loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -62,26 +67,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40}
| ${n_added_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,8 +115,7 @@
| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And VPP IPsec Create Tunnel Interfaces
| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
index 368c758924..b3d57fc0f5 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_40
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Packet loss IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds throughput NDR (Non Drop Rate) \
+| ... | with zero packet loss tolerance, then measures loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -62,26 +67,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40}
| ${n_added_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,8 +115,7 @@
| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And VPP IPsec Create Tunnel Interfaces
| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 9e1b6b83b9..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${40}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index 65a2ae55a7..b126c27372 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
index 3268ab595b..cdcd4f782b 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
index b2b80c6d87..ecb3d9de96 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..a82851e988
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -0,0 +1,168 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index f325c53ade..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
-| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${4}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Enable IPSec Async Mode on all VPP DUTs
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index c4129c4060..7d4f02b8d3 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -22,39 +21,46 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | ipsec_sa
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +71,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot
index e424b1e1a9..7b569991c0 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -22,39 +21,46 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | ipsec_sa
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +71,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
index 2858a309ea..6ade1d4da7 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot
@@ -1,5 +1,5 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -22,39 +21,46 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
|
-| Suite Setup | Setup suite topology interfaces | performance | ipsechw
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
| Suite Teardown | Tear down suite | performance
| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | ipsec_sa
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | HW_DH895xcc
| ${nic_name}= | Intel-X710
@@ -65,25 +71,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..a78b4e615d
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -0,0 +1,169 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# Copyright (c) 2024 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | ASYNC | IPSECTUN | NIC_Intel-X710 | TNL_4
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUTs runs IPsec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
deleted file mode 100644
index 2c16245e9f..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_4
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${4}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
deleted file mode 100644
index 122e24e699..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_4
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${4}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
deleted file mode 100644
index f2c4319287..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_4
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${4}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
deleted file mode 100644
index 39752a9b12..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_4
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${4}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec4tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 60f5f2fb33..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${4}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index 741d38e887..c7f90fb9f9 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,26 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
index 76293751da..724fdc23a4 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
index 38e1eb0b02..5515eb9d1f 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
@@ -28,32 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
@@ -64,25 +70,25 @@
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..1f559c9832
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -0,0 +1,168 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlsw-ip4base-policy-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..6a0884ffeb
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr.robot
@@ -0,0 +1,176 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | SPD_FLOW_CACHE | NIC_Intel-X710
+| ... | SCALE | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **IPv4 IPsec tunnel mode performance test suite.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them with SPD flow cache enabled \
+| ... | on both inbound and outbound traffic. DUTs get IPv4 traffic from TG, \
+| ... | encrypt it and send to another DUT, where packets are decrypted and \
+| ... | sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${2}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - search_type - NDR or PDR. Type: string
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ... | - min_rate - Min rate for binary search, default value: ${50000}.
+| | ... | Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable SPD flow cache IPv4 Inbound
+| | And Enable SPD flow cache IPv4 Outbound
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${dut1_if2_ip4} | ${dut2_if1_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec4tnlsw-ip4base-policy-flow-cache-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
new file mode 100644
index 0000000000..372e4086e0
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot
new file mode 100644
index 0000000000..6e0b68c358
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..f704fd4b38
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_4
+| ... | SCHEDULER | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
deleted file mode 100644
index ab49221762..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_5000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${5000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
deleted file mode 100644
index 6d76d08d8c..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_5000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${5000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
deleted file mode 100644
index d009ad6f23..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_5000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${5000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
deleted file mode 100644
index a5a15da372..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_5000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${5000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index 7346affb00..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_5000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${5000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index 89331cf111..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_5000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${5000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
deleted file mode 100644
index 6cda1c7239..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_5000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${5000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
deleted file mode 100644
index 2386612c68..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_5000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${5000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
deleted file mode 100644
index fbfb631984..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_60000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${60000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac256sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
deleted file mode 100644
index f3569b8d46..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_60000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${60000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
deleted file mode 100644
index 08fba2fa13..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_60000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${60000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes128gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
deleted file mode 100644
index 6afea0d023..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | RECONF | TNL_60000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Packet loss IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds throughput NDR (Non Drop Rate)\
-| ... | with zero packet loss tolerance, then measures loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${60000}
-| ${n_added_tunnels}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
-| | Start Traffic on Background | ${unidirectional_throughput}
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
-| | ${result}= | Stop Running Traffic
-| | Display Reconfig Test Message | ${result}
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-1atnl-ip4base-int-aes256gcm-reconf
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index c4e2a4cb20..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_60000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${62}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${60000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_256 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
deleted file mode 100644
index e3eb5c470b..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_60000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${78}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${60000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 512 256
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
deleted file mode 100644
index f23e3c6f8e..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_60000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_128_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-ip4base-int-aes128gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${60000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_128_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 128
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-ip4base-int-aes128gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
deleted file mode 100644
index 93ab652954..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-|
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_60000
-| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-ip4base-int-aes256gcm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | ipsec_sa
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 IPsec tunnel mode.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,
-| ... | Eth-IPv4-IPSec on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with multiple\
-| ... | IPsec tunnels between them. DUTs get IPv4 traffic from TG, encrypt it\
-| ... | and send to another DUT, where packets are decrypted and sent back to TG
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, number of flows per flow-group equals to
-| ... | number of IPSec tunnels) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field
-| ... | is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.2
-| ${dut1_if1_ip4}= | 192.168.10.1
-| ${dut1_if2_ip4}= | 100.0.0.1
-| ${dut2_if1_ip4}= | 200.0.0.2
-| ${dut2_if2_ip4}= | 192.168.20.1
-| ${tg_if2_ip4}= | 192.168.20.2
-| ${raddr_ip4}= | 20.0.0.0
-| ${laddr_ip4}= | 10.0.0.0
-| ${addr_range}= | ${24}
-| ${n_tunnels}= | ${60000}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPSec tunneling AES_256_GCM config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES GCM 256
-| | ${auth_alg}= | Set Variable | ${NONE}
-| | ${ipsec_proto} = | IPsec Proto ESP
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPSec in 3-node circular topology
-| | And VPP IPsec Create Tunnel Interfaces
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
-| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
-| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-ip4base-int-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
new file mode 100644
index 0000000000..15ea9311ed
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_8
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${8}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot
new file mode 100644
index 0000000000..cf46405ed9
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_8
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${8}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot
new file mode 100644
index 0000000000..feb641d898
--- /dev/null
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot
@@ -0,0 +1,174 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | SCALE | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_8
+| ... | SCHEDULER | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-IPSec on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple IPsec tunnels between them, run with IPsec async mode and \
+| ... | use crypto sw scheduler engine to schedule crypto work to crypto \
+| ... | cores. DUTs get IPv4 traffic from TG, encrypt it and send to another \
+| ... | DUT, where packets are decrypted and sent back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.254
+| ${dut1_if1_ip4}= | 192.168.10.11
+| ${dut1_if2_ip4}= | 100.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.102
+| ${dut2_if2_ip4}= | 192.168.20.11
+| ${tg_if2_ip4}= | 192.168.20.254
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${8}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 3-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${DUT2_${int}1}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.robot
deleted file mode 100644
index cdb9977712..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr.robot
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
-| Resource | resources/libraries/robot/overlay/lispgpe.robot
-|
-| Variables | resources/test_data/lisp/performance/lisp_static_adjacency.py
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
-| ... | LISPGPE | IPSEC | IPSECHW | IPSECTRAN | ENCAP | IP4UNRLAY | IP4OVRLAY
-| ... | NIC_Intel-X710 | AES_128_CBC | HMAC_SHA_256 | HMAC | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| Documentation | *IPv4 IPsec transport mode performance test suite.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on TG-DUTn,\
-| ... | Eth-IPv4-IPSec-LISPGPE-IPv4 on DUT1-DUT2
-| ... | *[Cfg] DUT configuration:* Each DUT is configured with LISP and IPsec\
-| ... | in each direction. IPsec is in transport mode. DUTs get IPv4 traffic\
-| ... | from TG, encrypt it and send to another DUT, where packets are\
-| ... | decrypted and sent back to TG.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, number of flows per flow-group equals to\
-| ... | number of IPSec tunnels) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address)\
-| ... | field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC6830, RFC4303 and\
-| ... | RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | crypto_native_plugin.so
-| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
-| ${crypto_type}= | HW_DH895xcc
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L3
-| ${overhead}= | ${58}
-| ${dut2_spi}= | ${1000}
-| ${dut1_spi}= | ${1001}
-| ${ESP_PROTO}= | ${50}
-| ${tg_if_ip4}= | 192.168.100.2
-| ${dut_if_ip4}= | 192.168.100.3
-| ${tg_lo_ip4}= | 192.168.3.3
-| ${dut_lo_ip4}= | 192.168.4.4
-| ${ip4_plen}= | ${24}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] Each DUT is configured with LISP and IPsec in each direction.\
-| | ... | IPsec is in transport mode.
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| |
-| | # These are enums (not strings) so they cannot be in Variables table.
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
-| | And Initialize LISP GPE IPv4 over IPsec in 3-node circular topology
-| | ... | ${encr_alg} | ${auth_alg}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsectptlispgpe-ip4base-aes128cbc-hmac256sha-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..a85f6447b6
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_10000
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${10000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..cca185038e
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_10000
+| ... | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${10000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 128
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..f7901e19c8
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_10000
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${10000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..714de836a1
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,154 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
+| ... | SPE_1000 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. SPD flow-cache for IPv4 outbound traffic is enabled. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${1000}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable SPD flow cache IPv4 Outbound
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..e34705e8cf
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,151 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_1000 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${1000}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..25ef11f4ab
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..ef06f9952c
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
+| ... | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..9f48c83647
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..3714f9406b
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | SCALE | TNL_1000
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 100.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${TG_pf2}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${tun_if1_ip4} | ${tun_if2_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..52a9480de8
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..2f967f5f68
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
+| ... | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 128
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..1c4382007c
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..6024e8f6e5
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE | TNL_1000
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 100.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${TG_pf2}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${tun_if1_ip4} | ${tun_if2_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..e65dbe7d20
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,154 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
+| ... | SPE_100 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. SPD flow-cache for IPv4 outbound traffic is enabled. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${100}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable SPD flow cache IPv4 Outbound
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..315e86876f
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,151 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_100 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec100spe-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${100}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..37d90181a5
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,154 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
+| ... | SPE_10 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. SPD flow-cache for IPv4 outbound traffic is enabled. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${10}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable SPD flow cache IPv4 Outbound
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..f1bbcf6cc6
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,151 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_10 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec10spe-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${10}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..690cad3de1
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,154 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | BASE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
+| ... | SPE_1 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. SPD flow-cache for IPv4 outbound traffic is enabled. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${1}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Enable SPD flow cache IPv4 Outbound
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
new file mode 100644
index 0000000000..0ad4fd3c57
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot
@@ -0,0 +1,151 @@
+# Copyright (c) 2024 PANTHEON.tech s.r.o.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
+| ... | BASE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_1 | NOCRYPTO
+| ... | NIC_Intel-X710 | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1spe-ip4base-policy-outbound-nocrypto
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC4301: SPD lookup performance**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing, \
+| ... | two static IPv4 /24 route entries, one SPD on each outbound interface \
+| ... | in each direction and ${rule amount} SPD entry(ies) in each SPD. Only \
+| ... | outbound traffic is matched and only the last rule is the matching \
+| ... | rule. DUT1 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces. The DUT does SPD lookup with only \
+| ... | the lowest priority rule matching the traffic. The action of the \
+| ... | matching rule is BYPASS. No encryption or authentication is done.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4301 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${remote_addr_range_ip4}= | 20.20.20.0/24
+| ${local_addr_range_ip4}= | 10.10.10.0/24
+| ${rule_amount}= | ${1}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config with IPsec SPD rules. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | And VPP IPsec create SPDs match nth entry
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${DUT1_${int}1}[0] | ${rule_amount}
+| | ... | ${local_addr_range_ip4} | ${remote_addr_range_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..64e073c84a
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | BASE | TNL_1
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..ddd2aa253f
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR | TNL_1
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | BASE
+| ... | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..4455b8c6cf
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | BASE | TNL_1
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..f95733dd97
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | BASE | TNL_1
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 100.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${TG_pf2}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${tun_if1_ip4} | ${tun_if2_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..054b205ec9
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE | TNL_1
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..4e788704f3
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE | TNL_1
+| ... | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 128
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..e569935659
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE | TNL_1
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..a700a87ad8
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | BASE | TNL_1
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 100.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${TG_pf2}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${tun_if1_ip4} | ${tun_if2_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..39a5291304
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
+| ... | SCHEDULER | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_1
+| ... | ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..01834cd466
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
+| ... | SCHEDULER | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_1
+| ... | ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..95e9eb6afc
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
+| ... | SCHEDULER | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_1
+| ... | ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${1}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..ccca2c592c
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_2
+| ... | ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${2}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..ecb457b5d9
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_2
+| ... | ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${2}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..a9c8f3b2e4
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_2
+| ... | ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${2}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..3d5bfa20fe
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40000
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..f20e782d4d
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40000
+| ... | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 128
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..dd7a0fe2f9
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40000
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf.robot
new file mode 100644
index 0000000000..9b6adb3647
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf.robot
@@ -0,0 +1,172 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | RECONF
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Packet loss IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds throughput NDR (Non Drop Rate) \
+| ... | with zero packet loss tolerance, then measures loss at this load \
+| ... | while additional tunnels are configured. \
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains one L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40}
+| ${n_added_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
+| | Start Traffic on Background | ${unidirectional_throughput}
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
+| | ${result}= | Stop Running Traffic
+| | Display Reconfig Test Message | ${result}
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf.robot
new file mode 100644
index 0000000000..db57d81c84
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf.robot
@@ -0,0 +1,172 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | RECONF
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
+| ... | AES_128_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Packet loss IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds throughput NDR (Non Drop Rate) \
+| ... | with zero packet loss tolerance, then measures loss at this load \
+| ... | while additional tunnels are configured. \
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains one L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40}
+| ${n_added_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
+| | Start Traffic on Background | ${unidirectional_throughput}
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
+| | ${result}= | Stop Running Traffic
+| | Display Reconfig Test Message | ${result}
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf.robot
new file mode 100644
index 0000000000..00f844d6d4
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf.robot
@@ -0,0 +1,172 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | RECONF
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
+| ... | AES_256_GCM | AES | 1_ADDED_TUNNEL | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Packet loss IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds throughput NDR (Non Drop Rate) \
+| ... | with zero packet loss tolerance, then measures loss at this load \
+| ... | while additional tunnels are configured. \
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains one L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40}
+| ${n_added_tunnels}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | ${n_total_tunnels} = | Evaluate | ${n_tunnels} + ${n_added_tunnels}
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
+| | Start Traffic on Background | ${unidirectional_throughput}
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_total_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range} | ${n_tunnels}
+| | ${result}= | Stop Running Traffic
+| | Display Reconfig Test Message | ${result}
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..b5ae2d1702
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..141f346b89
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
+| ... | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 128
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..e1c3af4231
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..3b74b44fd7
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE | TNL_40
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 100.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${40}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${TG_pf2}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${tun_if1_ip4} | ${tun_if2_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..19c75a83e6
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..6012fc3c9b
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
+| ... | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..0e2f100963
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,166 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| | ${ipsec_proto}= | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..30e2c0cb9d
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..6400cc9edb
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
+| ... | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 128
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..b88a945bd7
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..a6cba480ab
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,165 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE | TNL_4
+| ... | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_all
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG. DUT gets IPv4 traffic from TG, encrypts it \
+| ... | and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 100.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg} = | Crypto Alg AES GCM 256
+| | ${auth_alg} = | Set Variable | ${NONE}
+| | ${ipsec_proto} = | IPsec Proto ESP
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Add Multiple Tunnels
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${TG_pf2}[0] | ${n_tunnels}
+| | ... | ${encr_alg} | ${auth_alg} | ${tun_if1_ip4} | ${tun_if2_ip4}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..f7c98c92d4
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_4
+| ... | ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..66be7722b3
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_4
+| ... | ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..4e8344aeae
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_4
+| ... | ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${4}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
new file mode 100644
index 0000000000..fe4e9e5e37
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_CBC | HMAC_SHA_512 | HMAC | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_8
+| ... | ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${78}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${8}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_CBC / HMAC_SHA_512 \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES CBC 128
+| | ${auth_alg}= | Integ Alg SHA 512 256
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..82648f626e
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_128_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_8
+| ... | ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${8}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_128_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 128
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot
new file mode 100644
index 0000000000..9393bebf30
--- /dev/null
+++ b/tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2024 Intel and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
+| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
+| ... | SCHEDULER | AES_256_GCM | AES | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | TNL_8
+| ... | ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | ipsec_sa
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 IPsec tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUT1, \
+| ... | Eth-IPv4-IPSec on DUT1-TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with multiple IPsec \
+| ... | tunnels between it and TG, run with IPsec async mode and use crypto \
+| ... | sw scheduler engine to schedule crypto work to crypto cores. DUT gets \
+| ... | IPv4 traffic from TG, encrypts it and sends back to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. \
+| ... | TG traffic profile contains one L3 flow-groups (number of flows \
+| ... | per flow-group equals to number of IPSec tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | field is applied to the stream.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so
+| ... | crypto_ipsecmb_plugin.so | crypto_sw_scheduler_plugin.so
+| ... | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${54}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${tun_if1_ip4}= | 100.0.0.1
+| ${tun_if2_ip4}= | 200.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${addr_range}= | ${24}
+| ${n_tunnels}= | ${8}
+| ${dp_cores_count}= | ${1}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_directions}= | ${1}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPSec tunneling AES_256_GCM config. \
+| | ... | Each DUT uses one physical core for data plane workers \
+| | ... | and rest of ${phy_cores} physical core(s) for crypto workers.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Total number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${1}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | # These are enums (not strings) so they cannot be in Variables table.
+| | ${encr_alg}= | Crypto Alg AES GCM 256
+| | ${auth_alg}= | Set Variable | ${NONE}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Enable IPSec Async Mode on all VPP DUTs
+| | And Set Data Plane And Feature Plane Workers for IPsec on all VPP DUTs
+| | And Initialize IPSec in 2-node circular topology
+| | And VPP IPsec Create Tunnel Interfaces
+| | ... | ${nodes} | ${tun_if1_ip4} | ${tun_if2_ip4} | ${DUT1_${int}2}[0]
+| | ... | ${TG_pf2}[0] | ${n_tunnels} | ${encr_alg} | ${auth_alg}
+| | ... | ${laddr_ip4} | ${raddr_ip4} | ${addr_range}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 3C
+| | frame_size=${64} | phy_cores=${3}
+
+| 64B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 3C
+| | frame_size=${1518} | phy_cores=${3}
+
+| 1518B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 3C
+| | frame_size=${9000} | phy_cores=${3}
+
+| 9000B-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-2c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-3c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 3C
+| | frame_size=IMIX_v4_1 | phy_cores=${3}
+
+| IMIX-4c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/crypto/regenerate_testcases.py b/tests/vpp/perf/crypto/regenerate_testcases.py
index bba2711971..e22f6de5c3 100755
--- a/tests/vpp/perf/crypto/regenerate_testcases.py
+++ b/tests/vpp/perf/crypto/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot
new file mode 100644
index 0000000000..862ac91203
--- /dev/null
+++ b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot
@@ -0,0 +1,117 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_TAP
+| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_TRUE
+| ... | ethip4-ip4base-2tap-gso-iperf3
+|
+| Suite Setup | Setup suite topology interfaces | iPerf3
+| Suite Teardown | Tear down suite
+| Test Setup | Setup test
+| Test Teardown | Tear down test | iPerf3 | namespace
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases with TAPv2**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT1 1-node topology without physical \
+| ... | links.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing.
+| ... |
+| ... | - **[Ver] TG verification:** iPerf3 client/server is used for Packet \
+| ... | generation and verification.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | tap
+| ${nic_rxq_size}= | 4096
+| ${nic_txq_size}= | 4096
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+| ${enable_gso}= | ${True}
+| ${smt_used}= | ${False}
+# iPerf3 client settings:
+| ${iperf_client_bind}= | 1.1.1.1
+| ${iperf_client_bind_gw}= | 1.1.1.2
+| ${iperf_client_bind_mask}= | 30
+| ${iperf_client_interface}= | tap0
+| ${iperf_client_namespace}= | tap0_namespace
+| ${iperf_client_udp}= | ${False}
+| ${iperf_client_node}= | DUT1
+| ${iperf_client_affinity} | ${None}
+# iPerf3 server settings:
+| ${iperf_server_bind}= | 2.2.2.2
+| ${iperf_server_bind_gw}= | 2.2.2.1
+| ${iperf_server_bind_mask}= | 30
+| ${iperf_server_interface}= | tap1
+| ${iperf_server_namespace}= | tap1_namespace
+| ${iperf_server_node}= | DUT1
+| ${iperf_server_pf_key}= | ${None}
+# Trial data overwrite:
+| ${trial_duration}= | ${30}
+| ${trial_multiplicity}= | ${10}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT configuration: DUT1 is configured with IPv4 routing.
+| | ... | - **[Ver]** Measure MaxReceivedRate for ${frame_size}B frames \
+| | ... | using burst trials throughput test.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | 1.1.1.2 | 30
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | 2.2.2.1 | 30
+| | Set Test Variable | ${iperf_server_pf_key} | ${DUT1_pf1}[0]
+| | Then Traffic should pass with maximum rate on iPerf3
+
+*** Test Cases ***
+| 128KB-1c-ethip4-ip4base-2tap-gso-iperf3-mrr
+| | [Tags] | 128KB | 1C
+| | frame_size=${128000} | phy_cores=${1}
+
+| 128KB-2c-ethip4-ip4base-2tap-gso-iperf3-mrr
+| | [Tags] | 128KB | 2C
+| | frame_size=${128000} | phy_cores=${2}
+
+| 128KB-4c-ethip4-ip4base-2tap-gso-iperf3-mrr
+| | [Tags] | 128KB | 4C
+| | frame_size=${128000} | phy_cores=${4}
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3.robot
deleted file mode 100644
index 91141ce1fa..0000000000
--- a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3.robot
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
-| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_TAP
-| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_TRUE
-| ... | ethip4-ip4base-2tap-gso
-|
-| Suite Setup | Setup suite topology interfaces
-| Suite Teardown | Tear down suite
-| Test Setup | Setup test
-| Test Teardown | Tear down test | iPerf3 | namespace
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases with TAPv2*
-|
-| ... | *[Top] Network Topologies:* DUT1 1-node topology without physical links.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.
-| ... | *[Ver] TG verification:* iPerf3 client/server is used for Packet\
-| ... | generation and verification.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | ping_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | tap
-| ${nic_rxq_size}= | 4096
-| ${nic_txq_size}= | 4096
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-| ${enable_gso}= | ${True}
-# iPerf3 client settings:
-| ${iperf_client_bind}= | 1.1.1.1
-| ${iperf_client_bind_gw}= | 1.1.1.2
-| ${iperf_client_bind_mask}= | 30
-| ${iperf_client_interface}= | tap0
-| ${iperf_client_namespace}= | tap0_namespace
-| ${iperf_client_udp}= | ${False}
-| ${iperf_client_node}= | DUT1
-| ${iperf_client_affinity} | ${None}
-# iPerf3 server settings:
-| ${iperf_server_bind}= | 2.2.2.2
-| ${iperf_server_bind_gw}= | 2.2.2.1
-| ${iperf_server_bind_mask}= | 30
-| ${iperf_server_interface}= | tap1
-| ${iperf_server_namespace}= | tap1_namespace
-| ${iperf_server_node}= | DUT1
-| ${iperf_server_pf_key}= | ${None}
-# Trial data overwrite:
-| ${trial_duration}= | ${30}
-| ${trial_multiplicity}= | ${4}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.
-| | ... | [Ver] Measure MaxReceivedRate for ${frame_size}B frames\
-| | ... | using burst trials throughput test.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | Set Test Variable | \${rxq_ratio} | ${1}
-| |
-| | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | 1.1.1.2 | 30
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | 2.2.2.1 | 30
-| | Set Test Variable | ${iperf_server_pf_key} | ${DUT1_pf1}[0]
-| | Then Traffic should pass with maximum rate on iPerf3
-
-*** Test Cases ***
-| 128KB-1c-ethip4-ip4base-2tap-gso-iperf3
-| | [Tags] | 128KB | 1C
-| | frame_size=${128000} | phy_cores=${1}
-
-| 128KB-2c-ethip4-ip4base-2tap-gso-iperf3
-| | [Tags] | 128KB | 2C
-| | frame_size=${128000} | phy_cores=${2}
-
-| 128KB-4c-ethip4-ip4base-2tap-gso-iperf3
-| | [Tags] | 128KB | 4C
-| | frame_size=${128000} | phy_cores=${4}
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot
new file mode 100644
index 0000000000..c093208afb
--- /dev/null
+++ b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot
@@ -0,0 +1,117 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_TAP
+| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_FALSE
+| ... | ethip4-ip4base-2tap-iperf3
+|
+| Suite Setup | Setup suite topology interfaces | iPerf3
+| Suite Teardown | Tear down suite
+| Test Setup | Setup test
+| Test Teardown | Tear down test | iPerf3 | namespace
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases with TAPv2**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT1 1-node topology without physical \
+| ... | links.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing.
+| ... |
+| ... | - **[Ver] TG verification:** iPerf3 client/server is used for Packet \
+| ... | generation and verification.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | tap
+| ${nic_rxq_size}= | 4096
+| ${nic_txq_size}= | 4096
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+| ${enable_gso}= | ${False}
+| ${smt_used}= | ${False}
+# iPerf3 client settings:
+| ${iperf_client_bind}= | 1.1.1.1
+| ${iperf_client_bind_gw}= | 1.1.1.2
+| ${iperf_client_bind_mask}= | 30
+| ${iperf_client_interface}= | tap0
+| ${iperf_client_namespace}= | tap0_namespace
+| ${iperf_client_udp}= | ${False}
+| ${iperf_client_node}= | DUT1
+| ${iperf_client_affinity} | ${None}
+# iPerf3 server settings:
+| ${iperf_server_bind}= | 2.2.2.2
+| ${iperf_server_bind_gw}= | 2.2.2.1
+| ${iperf_server_bind_mask}= | 30
+| ${iperf_server_interface}= | tap1
+| ${iperf_server_namespace}= | tap1_namespace
+| ${iperf_server_node}= | DUT1
+| ${iperf_server_pf_key}= | ${None}
+# Trial data overwrite:
+| ${trial_duration}= | ${30}
+| ${trial_multiplicity}= | ${10}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT configuration: DUT1 is configured with IPv4 routing.
+| | ... | - **[Ver]** Measure MaxReceivedRate for ${frame_size}B frames \
+| | ... | using burst trials throughput test.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}1}[0] | 1.1.1.2 | 30
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}2}[0] | 2.2.2.1 | 30
+| | Set Test Variable | ${iperf_server_pf_key} | ${DUT1_pf1}[0]
+| | Then Traffic should pass with maximum rate on iPerf3
+
+*** Test Cases ***
+| 128KB-1c-ethip4-ip4base-2tap-iperf3-mrr
+| | [Tags] | 128KB | 1C
+| | frame_size=${128000} | phy_cores=${1}
+
+| 128KB-2c-ethip4-ip4base-2tap-iperf3-mrr
+| | [Tags] | 128KB | 2C
+| | frame_size=${128000} | phy_cores=${2}
+
+| 128KB-4c-ethip4-ip4base-2tap-iperf3-mrr
+| | [Tags] | 128KB | 4C
+| | frame_size=${128000} | phy_cores=${4}
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3.robot
deleted file mode 100644
index 31ece186ec..0000000000
--- a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3.robot
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
-| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_TAP
-| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_FALSE
-| ... | ethip4-ip4base-2tap
-|
-| Suite Setup | Setup suite topology interfaces
-| Suite Teardown | Tear down suite
-| Test Setup | Setup test
-| Test Teardown | Tear down test | iPerf3 | namespace
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases with TAPv2*
-|
-| ... | *[Top] Network Topologies:* DUT1 1-node topology without physical links.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.
-| ... | *[Ver] TG verification:* iPerf3 client/server is used for Packet\
-| ... | generation and verification.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | ping_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | tap
-| ${nic_rxq_size}= | 4096
-| ${nic_txq_size}= | 4096
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-| ${enable_gso}= | ${False}
-# iPerf3 client settings:
-| ${iperf_client_bind}= | 1.1.1.1
-| ${iperf_client_bind_gw}= | 1.1.1.2
-| ${iperf_client_bind_mask}= | 30
-| ${iperf_client_interface}= | tap0
-| ${iperf_client_namespace}= | tap0_namespace
-| ${iperf_client_udp}= | ${False}
-| ${iperf_client_node}= | DUT1
-| ${iperf_client_affinity} | ${None}
-# iPerf3 server settings:
-| ${iperf_server_bind}= | 2.2.2.2
-| ${iperf_server_bind_gw}= | 2.2.2.1
-| ${iperf_server_bind_mask}= | 30
-| ${iperf_server_interface}= | tap1
-| ${iperf_server_namespace}= | tap1_namespace
-| ${iperf_server_node}= | DUT1
-| ${iperf_server_pf_key}= | ${None}
-# Trial data overwrite:
-| ${trial_duration}= | ${30}
-| ${trial_multiplicity}= | ${4}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.
-| | ... | [Ver] Measure MaxReceivedRate for ${frame_size}B frames\
-| | ... | using burst trials throughput test.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | Set Test Variable | \${rxq_ratio} | ${1}
-| |
-| | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}1}[0] | 1.1.1.2 | 30
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}2}[0] | 2.2.2.1 | 30
-| | Set Test Variable | ${iperf_server_pf_key} | ${DUT1_pf1}[0]
-| | Then Traffic should pass with maximum rate on iPerf3
-
-*** Test Cases ***
-| 128KB-1c-ethip4-ip4base-2tap-iperf3
-| | [Tags] | 128KB | 1C
-| | frame_size=${128000} | phy_cores=${1}
-
-| 128KB-2c-ethip4-ip4base-2tap-iperf3
-| | [Tags] | 128KB | 2C
-| | frame_size=${128000} | phy_cores=${2}
-
-| 128KB-4c-ethip4-ip4base-2tap-iperf3
-| | [Tags] | 128KB | 4C
-| | frame_size=${128000} | phy_cores=${4}
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot
new file mode 100644
index 0000000000..c5c2e494f5
--- /dev/null
+++ b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot
@@ -0,0 +1,126 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_VHOST
+| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_TRUE
+| ... | ethip4-ip4base-2vhost-gso-iperf3
+|
+| Suite Setup | Setup suite topology interfaces | iPerf3
+| Suite Teardown | Tear down suite
+| Test Setup | Setup test
+| Test Teardown | Tear down test | iPerf3 | vhost
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases with VHOST**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT1 1-node topology without physical \
+| ... | links.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing.
+| ... |
+| ... | - **[Ver] TG verification:** iPerf3 client/server is used for Packet \
+| ... | generation and verification.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so | vhost_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vhost
+| ${nic_rxq_size}= | 4096
+| ${nic_txq_size}= | 4096
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+| ${smt_used}= | ${False}
+# Qemu settings:
+| ${enable_gso}= | ${True}
+| ${enable_csum}= | ${True}
+| ${nf_dtcr}= | ${1}
+| ${nf_dtc}= | ${4}
+# iPerf3 client settings:
+| ${iperf_client_bind}= | 1.1.1.1
+| ${iperf_client_bind_gw}= | 1.1.1.2
+| ${iperf_client_bind_mask}= | 30
+| ${iperf_client_interface}= | ens6
+| ${iperf_client_namespace}= | ${None}
+| ${iperf_client_udp}= | ${False}
+| ${iperf_client_node}= | DUT1_2
+| ${iperf_client_affinity} | 1
+# iPerf3 server settings:
+| ${iperf_server_bind}= | 2.2.2.2
+| ${iperf_server_bind_gw}= | 2.2.2.1
+| ${iperf_server_bind_mask}= | 30
+| ${iperf_server_interface}= | ens6
+| ${iperf_server_namespace}= | ${None}
+| ${iperf_server_node}= | DUT1_1
+| ${iperf_server_pf_key}= | ${None}
+# Trial data overwrite:
+| ${trial_duration}= | ${30}
+| ${trial_multiplicity}= | ${10}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT configuration: DUT1 is configured with IPv4 routing.
+| | ... | - **[Ver]** Measure MaxReceivedRate for ${frame_size}B frames \
+| | ... | using burst trials throughput test.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver} | validate=${False}
+| | And Initialize layer interface
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}1}[0]
+| | ... | ${iperf_server_bind_gw} | ${iperf_server_bind_mask}
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}2}[0]
+| | ... | ${iperf_client_bind_gw} | ${iperf_client_bind_mask}
+| | And Configure chains of NFs connected via vhost-user on single node
+| | ... | node=DUT1 | nf_nodes=${2} | vnf=iperf3 | auto_scale=${True}
+| | ... | fixed_auto_scale=${True} | validate=${False}
+| | And Get CPU Info from All Nodes | ${nodes}
+| | Traffic should pass with maximum rate on iPerf3
+
+*** Test Cases ***
+| 128KB-1c-ethip4-ip4base-2vhost-gso-iperf3-mrr
+| | [Tags] | 128KB | 1C
+| | frame_size=${128000} | phy_cores=${1}
+
+| 128KB-2c-ethip4-ip4base-2vhost-gso-iperf3-mrr
+| | [Tags] | 128KB | 2C
+| | frame_size=${128000} | phy_cores=${2}
+
+| 128KB-4c-ethip4-ip4base-2vhost-gso-iperf3-mrr
+| | [Tags] | 128KB | 4C
+| | frame_size=${128000} | phy_cores=${4}
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3.robot
deleted file mode 100644
index 849504050d..0000000000
--- a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3.robot
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
-| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_VHOST
-| ... | RXQ_SIZE_4096 | TXQ_SIZE_4096 | GSO_TRUE
-| ... | ethip4-ip4base-2vhost-gso
-|
-| Suite Setup | Setup suite topology interfaces
-| Suite Teardown | Tear down suite
-| Test Setup | Setup test
-| Test Teardown | Tear down test | iPerf3 | vhost
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases with VHOST*
-|
-| ... | *[Top] Network Topologies:* DUT1 1-node topology without physical links.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.
-| ... | *[Ver] TG verification:* iPerf3 client/server is used for Packet\
-| ... | generation and verification.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | ping_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vhost
-| ${nic_rxq_size}= | 4096
-| ${nic_txq_size}= | 4096
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Qemu settings:
-| ${enable_gso}= | ${True}
-| ${enable_csum}= | ${True}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${4}
-# iPerf3 client settings:
-| ${iperf_client_bind}= | 1.1.1.1
-| ${iperf_client_bind_gw}= | 1.1.1.2
-| ${iperf_client_bind_mask}= | 30
-| ${iperf_client_interface}= | ens6
-| ${iperf_client_namespace}= | ${None}
-| ${iperf_client_udp}= | ${False}
-| ${iperf_client_node}= | DUT1_2
-| ${iperf_client_affinity} | 1
-# iPerf3 server settings:
-| ${iperf_server_bind}= | 2.2.2.2
-| ${iperf_server_bind_gw}= | 2.2.2.1
-| ${iperf_server_bind_mask}= | 30
-| ${iperf_server_interface}= | ens6
-| ${iperf_server_namespace}= | ${None}
-| ${iperf_server_node}= | DUT1_1
-| ${iperf_server_pf_key}= | ${None}
-# Trial data overwrite:
-| ${trial_duration}= | ${30}
-| ${trial_multiplicity}= | ${4}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.
-| | ... | [Ver] Measure MaxReceivedRate for ${frame_size}B frames\
-| | ... | using burst trials throughput test.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | Set Test Variable | \${rxq_ratio} | ${1}
-| |
-| | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver} | validate=${False}
-| | And Initialize layer interface
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}1}[0]
-| | ... | ${iperf_server_bind_gw} | ${iperf_server_bind_mask}
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}2}[0]
-| | ... | ${iperf_client_bind_gw} | ${iperf_client_bind_mask}
-| | And Configure chains of NFs connected via vhost-user on single node
-| | ... | node=DUT1 | nf_nodes=${2} | vnf=iperf3 | auto_scale=${True}
-| | ... | fixed_auto_scale=${True} | validate=${False}
-| | And Get CPU Info from All Nodes | ${nodes}
-| | Traffic should pass with maximum rate on iPerf3
-
-*** Test Cases ***
-| 128KB-1c-ethip4-ip4base-2vhost-gso-iperf3
-| | [Tags] | 128KB | 1C
-| | frame_size=${128000} | phy_cores=${1}
-
-| 128KB-2c-ethip4-ip4base-2vhost-gso-iperf3
-| | [Tags] | 128KB | 2C
-| | frame_size=${128000} | phy_cores=${2}
-
-| 128KB-4c-ethip4-ip4base-2vhost-gso-iperf3
-| | [Tags] | 128KB | 4C
-| | frame_size=${128000} | phy_cores=${4}
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr.robot
new file mode 100644
index 0000000000..f5d6db5b1a
--- /dev/null
+++ b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr.robot
@@ -0,0 +1,126 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
+| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_VHOST
+| ... | RXQ_SIZE_1024 | TXQ_SIZE_1024 | GSO_TRUE
+| ... | ethip4-ip4base-2vhost-iperf3
+|
+| Suite Setup | Setup suite topology interfaces | iPerf3
+| Suite Teardown | Tear down suite
+| Test Setup | Setup test
+| Test Teardown | Tear down test | iPerf3 | vhost
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases with VHOST**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT1 1-node topology without physical \
+| ... | links.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing.
+| ... |
+| ... | - **[Ver] TG verification:** iPerf3 client/server is used for Packet \
+| ... | generation and verification.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so | vhost_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vhost
+| ${nic_rxq_size}= | 1024
+| ${nic_txq_size}= | 1024
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+| ${smt_used}= | ${False}
+# Qemu settings:
+| ${enable_gso}= | ${False}
+| ${enable_csum}= | ${False}
+| ${nf_dtcr}= | ${1}
+| ${nf_dtc}= | ${4}
+# iPerf3 client settings:
+| ${iperf_client_bind}= | 1.1.1.1
+| ${iperf_client_bind_gw}= | 1.1.1.2
+| ${iperf_client_bind_mask}= | 30
+| ${iperf_client_interface}= | ens6
+| ${iperf_client_namespace}= | ${None}
+| ${iperf_client_udp}= | ${False}
+| ${iperf_client_node}= | DUT1_2
+| ${iperf_client_affinity} | 1
+# iPerf3 server settings:
+| ${iperf_server_bind}= | 2.2.2.2
+| ${iperf_server_bind_gw}= | 2.2.2.1
+| ${iperf_server_bind_mask}= | 30
+| ${iperf_server_interface}= | ens6
+| ${iperf_server_namespace}= | ${None}
+| ${iperf_server_node}= | DUT1_1
+| ${iperf_server_pf_key}= | ${None}
+# Trial data overwrite:
+| ${trial_duration}= | ${30}
+| ${trial_multiplicity}= | ${10}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT configuration: DUT1 is configured with IPv4 routing.
+| | ... | - **[Ver]** Measure MaxReceivedRate for ${frame_size}B frames \
+| | ... | using burst trials throughput test.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver} | validate=${False}
+| | And Initialize layer interface
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}1}[0]
+| | ... | ${iperf_server_bind_gw} | ${iperf_server_bind_mask}
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${DUT1_${int}2}[0]
+| | ... | ${iperf_client_bind_gw} | ${iperf_client_bind_mask}
+| | And Configure chains of NFs connected via vhost-user on single node
+| | ... | node=DUT1 | nf_nodes=${2} | vnf=iperf3 | auto_scale=${True}
+| | ... | fixed_auto_scale=${True} | validate=${False}
+| | And Get CPU Info from All Nodes | ${nodes}
+| | Traffic should pass with maximum rate on iPerf3
+
+*** Test Cases ***
+| 128KB-1c-ethip4-ip4base-2vhost-iperf3-mrr
+| | [Tags] | 128KB | 1C
+| | frame_size=${128000} | phy_cores=${1}
+
+| 128KB-2c-ethip4-ip4base-2vhost-iperf3-mrr
+| | [Tags] | 128KB | 2C
+| | frame_size=${128000} | phy_cores=${2}
+
+| 128KB-4c-ethip4-ip4base-2vhost-iperf3-mrr
+| | [Tags] | 128KB | 4C
+| | frame_size=${128000} | phy_cores=${4}
diff --git a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3.robot
deleted file mode 100644
index c31097eb7c..0000000000
--- a/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3.robot
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR
-| ... | NIC_Intel-X710 | IP4FWD | BASE | IP4BASE | DRV_VHOST
-| ... | RXQ_SIZE_1024 | TXQ_SIZE_1024 | GSO_TRUE
-| ... | ethip4-ip4base-2vhost-gso
-|
-| Suite Setup | Setup suite topology interfaces
-| Suite Teardown | Tear down suite
-| Test Setup | Setup test
-| Test Teardown | Tear down test | iPerf3 | vhost
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases with VHOST*
-|
-| ... | *[Top] Network Topologies:* DUT1 1-node topology without physical links.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.
-| ... | *[Ver] TG verification:* iPerf3 client/server is used for Packet\
-| ... | generation and verification.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | ping_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vhost
-| ${nic_rxq_size}= | 1024
-| ${nic_txq_size}= | 1024
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Qemu settings:
-| ${enable_gso}= | ${False}
-| ${enable_csum}= | ${False}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${4}
-# iPerf3 client settings:
-| ${iperf_client_bind}= | 1.1.1.1
-| ${iperf_client_bind_gw}= | 1.1.1.2
-| ${iperf_client_bind_mask}= | 30
-| ${iperf_client_interface}= | ens6
-| ${iperf_client_namespace}= | ${None}
-| ${iperf_client_udp}= | ${False}
-| ${iperf_client_node}= | DUT1_2
-| ${iperf_client_affinity} | 1
-# iPerf3 server settings:
-| ${iperf_server_bind}= | 2.2.2.2
-| ${iperf_server_bind_gw}= | 2.2.2.1
-| ${iperf_server_bind_mask}= | 30
-| ${iperf_server_interface}= | ens6
-| ${iperf_server_namespace}= | ${None}
-| ${iperf_server_node}= | DUT1_1
-| ${iperf_server_pf_key}= | ${None}
-# Trial data overwrite:
-| ${trial_duration}= | ${30}
-| ${trial_multiplicity}= | ${4}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT configuration: DUT1 is configured with IPv4 routing.
-| | ... | [Ver] Measure MaxReceivedRate for ${frame_size}B frames\
-| | ... | using burst trials throughput test.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer. Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | Set Test Variable | \${rxq_ratio} | ${1}
-| |
-| | Given Set Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver} | validate=${False}
-| | And Initialize layer interface
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}1}[0]
-| | ... | ${iperf_server_bind_gw} | ${iperf_server_bind_mask}
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${DUT1_${int}2}[0]
-| | ... | ${iperf_client_bind_gw} | ${iperf_client_bind_mask}
-| | And Configure chains of NFs connected via vhost-user on single node
-| | ... | node=DUT1 | nf_nodes=${2} | vnf=iperf3 | auto_scale=${True}
-| | ... | fixed_auto_scale=${True} | validate=${False}
-| | And Get CPU Info from All Nodes | ${nodes}
-| | Traffic should pass with maximum rate on iPerf3
-
-*** Test Cases ***
-| 128KB-1c-ethip4-ip4base-2vhost-iperf3
-| | [Tags] | 128KB | 1C
-| | frame_size=${128000} | phy_cores=${1}
-
-| 128KB-2c-ethip4-ip4base-2vhost-iperf3
-| | [Tags] | 128KB | 2C
-| | frame_size=${128000} | phy_cores=${2}
-
-| 128KB-4c-ethip4-ip4base-2vhost-iperf3
-| | [Tags] | 128KB | 4C
-| | frame_size=${128000} | phy_cores=${4}
diff --git a/tests/vpp/perf/gso/regenerate_testcases.py b/tests/vpp/perf/gso/regenerate_testcases.py
index 87521e662d..e22f6de5c3 100755
--- a/tests/vpp/perf/gso/regenerate_testcases.py
+++ b/tests/vpp/perf/gso/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot
index a8d7bf0aa0..64b06a2b98 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,23 +22,26 @@
| ... | LDPRELOAD | IPERF3 | 1CLIENT | 1STREAM | 1460B
| ... | eth-ip4tcpbase-ldpreload-iperf3
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
| Suite Teardown | Tear down suite | hoststack
| Test Setup | Setup test
| Test Teardown | Tear down test
|
| Test Template | Local template
|
-| Documentation | *Iperf3 client -> Iperf3 server goodput.
-|
-| ... | *[Top] Network Topologies:* DUT-DUT 2-node topology
+| Documentation | **Iperf3 client -> Iperf3 server goodput.**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT-DUT 2-node topology \
| ... | with single link between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP
-| ... | *[Cfg] DUT configuration:*
-| ... | *[Ref] Applicable standard specifications:*
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
| ${nic_rxq_size}= | 0
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot
index f30c8d6985..a06123a7d9 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,23 +22,26 @@
| ... | NSIM | LDPRELOAD | IPERF3 | 1CLIENT | 1STREAM | 1460B
| ... | eth-ip4tcpbase-nsim-ldpreload-iperf3
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
|
| Test Template | Local template
|
-| Documentation | *Iperf3 client -> Iperf3 server goodput.
-|
-| ... | *[Top] Network Topologies:* DUT-DUT 2-node topology
+| Documentation | **Iperf3 client -> Iperf3 server goodput.**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT-DUT 2-node topology \
| ... | with single link between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP
-| ... | *[Cfg] DUT configuration:*
-| ... | *[Ref] Applicable standard specifications:*
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nsim_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nsim_plugin.so
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
| ${nic_rxq_size}= | 0
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot
index 9b2d0500ef..a0a993a8dd 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,23 +22,26 @@
| ... | LDPRELOAD | IPERF3 | 1CLIENT | 10STREAM | 1460B
| ... | eth-ip4tcpscale1cl10s-ldpreload-iperf3
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
| Suite Teardown | Tear down suite | hoststack
| Test Setup | Setup test
| Test Teardown | Tear down test
|
| Test Template | Local template
|
-| Documentation | *Iperf3 client -> Iperf3 server goodput.
-|
-| ... | *[Top] Network Topologies:* DUT-DUT 2-node topology
+| Documentation | **Iperf3 client -> Iperf3 server goodput.**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT-DUT 2-node topology \
| ... | with single link between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP
-| ... | *[Cfg] DUT configuration:*
-| ... | *[Ref] Applicable standard specifications:*
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
| ${nic_rxq_size}= | 0
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot
index 64144d10e9..9d60b445db 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,23 +22,26 @@
| ... | NSIM | LDPRELOAD | IPERF3 | 1CLIENT | 10STREAM | 1460B
| ... | eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
|
| Test Template | Local template
|
-| Documentation | *Iperf3 client -> Iperf3 server goodput.
-|
-| ... | *[Top] Network Topologies:* DUT-DUT 2-node topology
+| Documentation | **Iperf3 client -> Iperf3 server goodput.**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT-DUT 2-node topology \
| ... | with single link between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP
-| ... | *[Cfg] DUT configuration:*
-| ... | *[Ref] Applicable standard specifications:*
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nsim_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nsim_plugin.so
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
| ${nic_rxq_size}= | 0
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot
new file mode 100644
index 0000000000..a77e25f287
--- /dev/null
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot
@@ -0,0 +1,73 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Library | resources.libraries.python.HoststackUtil
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/hoststack/hoststack.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
+| ... | UDP | NIC_Intel-X710 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | HOSTSTACK
+| ... | LDPRELOAD | IPERF3 | 1CLIENT | 1STREAM | 1460B
+| ... | eth-ip4udpbase-ldpreload-iperf3
+|
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
+| Suite Teardown | Tear down suite | hoststack
+| Test Setup | Setup test
+| Test Teardown | Tear down test
+|
+| Test Template | Local template
+|
+| Documentation | **Iperf3 client -> Iperf3 server goodput.**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT-DUT 2-node topology \
+| ... | with single link between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${frame_size}= | ${9000}
+| ${crypto_type}= | ${None}
+| ${iperf3_packet_length}= | ${1460}
+
+*** Keywords ***
+| Local template
+| | [Arguments] | ${phy_cores}
+| |
+| | Set Test Variable | ${dpdk_no_tx_checksum_offload} | ${False}
+| | Set VPP Hoststack Attributes | phy_cores=${phy_cores}
+| | ${bandwidth} = | Get From Dictionary
+| | ... | ${NIC_NAME_TO_BPS_LIMIT} | ${nic_name}
+| | Set Iperf3 Client Attributes | udp=${True} | bandwidth=${bandwidth}
+| | ... | length=${iperf3_packet_length}
+| | ${defer_fail}= | Get Test Results From Hoststack Iperf3 Test
+| | Run Keyword If | ${defer_fail}==True | FAIL
+| | ... | Defered Failure From Hoststack Iperf3 Test Program
+
+*** Test Cases ***
+| 1460B-1c-eth-ip4udpbase-ldpreload-iperf3-bps
+| | [Tags] | 1C
+| | phy_cores=${1}
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot
index ff0cbb3271..a9da173944 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -21,23 +21,26 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | UDP | QUIC | VPPECHO
| ... | 1CLIENT | 1STREAM | HOSTSTACK | 1280B | eth-ip4udpquicbase-vppecho
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | vppecho
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
|
| Test Template | Local template
|
-| Documentation | *QUIC Unidirectional Echo Client -> Echo Server goodput.
-|
-| ... | *[Top] Network Topologies:* DUT-DUT 2-node topology
+| Documentation | **QUIC Unidirectional Echo Client -> Echo Server goodput.**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT-DUT 2-node topology \
| ... | with single link between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP-QUIC
-| ... | *[Cfg] DUT configuration:*
-| ... | *[Ref] Applicable standard specifications:*
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP-QUIC
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | quic_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | quic_plugin.so | crypto_openssl_plugin.so
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
| ${nic_rxq_size}= | 0
@@ -47,7 +50,7 @@
| ${overhead}= | ${0}
| ${frame_size}= | ${9000}
| ${crypto_type}= | ${None}
-| ${bytes}= | 10G
+| ${bytes}= | 5G
*** Keywords ***
| Local template
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot
index 7cef9aeac1..3c5145087e 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,23 +22,26 @@
| ... | HOSTSTACK | 10CLIENT | 10STREAM | 1280B
| ... | eth-ip4udpquicscale10cl10s-vppecho
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | vppecho
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
|
| Test Template | Local template
|
-| Documentation | *QUIC Unidirectional Echo Client -> Echo Server goodput.
-|
-| ... | *[Top] Network Topologies:* DUT-DUT 2-node topology
+| Documentation | **QUIC Unidirectional Echo Client -> Echo Server goodput.**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT-DUT 2-node topology \
| ... | with single link between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP-QUIC
-| ... | *[Cfg] DUT configuration:*
-| ... | *[Ref] Applicable standard specifications:*
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP-QUIC
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | quic_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | quic_plugin.so | crypto_openssl_plugin.so
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
| ${nic_rxq_size}= | 0
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot
index ad0a7a7619..ece7379f12 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,23 +22,26 @@
| ... | HOSTSTACK | 10CLIENT | 1STREAM | 1280B
| ... | eth-ip4udpquicscale10cl1s-vppecho
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | vppecho
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
|
| Test Template | Local template
|
-| Documentation | *QUIC Unidirectional Echo Client -> Echo Server goodput.
-|
-| ... | *[Top] Network Topologies:* DUT-DUT 2-node topology
+| Documentation | **QUIC Unidirectional Echo Client -> Echo Server goodput.**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT-DUT 2-node topology \
| ... | with single link between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP-QUIC
-| ... | *[Cfg] DUT configuration:*
-| ... | *[Ref] Applicable standard specifications:*
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP-QUIC
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | quic_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | quic_plugin.so | crypto_openssl_plugin.so
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
| ${nic_rxq_size}= | 0
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot
index a3662784b9..dab2f757bf 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,23 +22,26 @@
| ... | HOSTSTACK | 1CLIENT | 10STREAM | 1280B
| ... | eth-ip4udpquicscale1cl10s-vppecho
|
-| Suite Setup | Setup suite topology interfaces with no TG
+| Suite Setup | Setup suite topology interfaces with no TG | vppecho
| Suite Teardown | Tear down suite
| Test Setup | Setup test
| Test Teardown | Tear down test
|
| Test Template | Local template
|
-| Documentation | *QUIC Unidirectional Echo Client -> Echo Server goodput.
-|
-| ... | *[Top] Network Topologies:* DUT-DUT 2-node topology
+| Documentation | **QUIC Unidirectional Echo Client -> Echo Server goodput.**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT-DUT 2-node topology \
| ... | with single link between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP-QUIC
-| ... | *[Cfg] DUT configuration:*
-| ... | *[Ref] Applicable standard specifications:*
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP-QUIC
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | quic_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | quic_plugin.so | crypto_openssl_plugin.so
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
| ${nic_rxq_size}= | 0
diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot
new file mode 100644
index 0000000000..a516acf456
--- /dev/null
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot
@@ -0,0 +1,74 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Library | resources.libraries.python.HoststackUtil
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/hoststack/hoststack.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
+| ... | UDP | NIC_Intel-X710 | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | HOSTSTACK
+| ... | LDPRELOAD | IPERF3 | 1CLIENT | 10STREAM | 1460B
+| ... | eth-ip4udpscale1cl10s-ldpreload-iperf3
+|
+| Suite Setup | Setup suite topology interfaces with no TG | iPerf3
+| Suite Teardown | Tear down suite | hoststack
+| Test Setup | Setup test
+| Test Teardown | Tear down test
+|
+| Test Template | Local template
+|
+| Documentation | **Iperf3 client -> Iperf3 server goodput.**
+| ... |
+| ... | - **[Top] Network Topologies:** DUT-DUT 2-node topology \
+| ... | with single link between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${frame_size}= | ${9000}
+| ${crypto_type}= | ${None}
+| ${streams} | ${10}
+| ${iperf3_packet_length}= | ${1460}
+
+*** Keywords ***
+| Local template
+| | [Arguments] | ${phy_cores}
+| |
+| | Set Test Variable | ${dpdk_no_tx_checksum_offload} | ${False}
+| | Set VPP Hoststack Attributes | phy_cores=${phy_cores}
+| | ${bandwidth} = | Get From Dictionary
+| | ... | ${NIC_NAME_TO_BPS_LIMIT} | ${nic_name}
+| | Set Iperf3 Client Attributes | udp=${True} | bandwidth=${bandwidth}
+| | ... | parallel=${streams} | length=${iperf3_packet_length}
+| | ${defer_fail}= | Get Test Results From Hoststack Iperf3 Test
+| | Run Keyword If | ${defer_fail}==True | FAIL
+| | ... | Defered Failure From Hoststack Iperf3 Test Program
+
+*** Test Cases ***
+| 1460B-1c-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps
+| | [Tags] | 1C
+| | phy_cores=${1}
diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps.robot
new file mode 100644
index 0000000000..d93fe70430
--- /dev/null
+++ b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps.robot
@@ -0,0 +1,128 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/hoststack/hoststack.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
+| ... | HOSTSTACK | LDP_NGINX | TCP | NIC_Intel-X710 | DRV_VFIO_PCI
+| ... | TCP_CPS | eth-ip4tcphttp-ldpreload-nginx-1_21_5
+|
+| Suite Setup | Setup suite topology interfaces | ab | nginx
+| Suite Teardown | Tear down suite | ab
+| Test Setup | Setup test
+| Test Teardown | Tear down test | nginx
+|
+| Test Template | Local Template
+|
+| Documentation | **TCP requests per seconds.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT-TG 2-node topology \
+| ... | with single link between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP-HTTP for TCP
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ver] TG verification:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${nic_name}= | Intel-X710
+| ${crypto_type}= | ${None}
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${ciphers}= | 0
+| ${rps_cps}= | cps
+| ${qat}= | ${0}
+| ${r_total}= | ${1000000}
+| ${c_total}= | ${2000}
+| ${listen_port}= | ${80}
+| ${mode}= | ldp
+| ${tls_tcp}= | tcp
+| ${keep_time}= | 0
+| ${ab_ip_prefix}= | 24
+| @{ab_ip_addrs}= | 192.168.10.2
+| ${dut_ip_prefix}= | 24
+| @{dut_ip_addrs}= | 192.168.10.1
+| ${nginx_version}= | 1.21.5
+| ${sess_evt_q_length}= | 100000
+| ${sess_prealloc_sess}= | 1100000
+| ${v4_sess_tbl_buckets}= | 250000
+| ${v4_sess_tbl_mem}= | 1g
+| ${local_endpts_tbl_buckets}= | 250000
+| ${local_endpts_tbl_mem}= | 1g
+| ${tcp_prealloc_conns}= | 1100000
+| ${tcp_prealloc_ho_conns}= | 1100000
+
+*** Keywords ***
+| Local template
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | Set Test Variable | ${dpdk_no_tx_checksum_offload} | ${False}
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Configure VPP startup configuration for NGINX | ${sess_prealloc_sess}
+| | ... | ${sess_evt_q_length} | ${v4_sess_tbl_buckets} | ${v4_sess_tbl_mem}
+| | ... | ${local_endpts_tbl_buckets} | ${local_endpts_tbl_mem}
+| | ... | ${tcp_prealloc_conns} | ${tcp_prealloc_ho_conns}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set up LDP or VCL Nginx on DUT1 node | ${mode}
+| | ... | ${rps_cps} | ${phy_cores} | ${qat} | ${tls_tcp}
+| | And Additional Suite Setup Action For ab
+| | Then Measure TLS requests or connections per second
+| | ... | ${ciphers} | ${frame_size} | ${tls_tcp} | ${rps_cps}
+
+*** Test Cases ***
+| 0B-1c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 0B | 1C
+| | frame_size=${0} | phy_cores=${1}
+
+| 0B-2c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 0B | 2C
+| | frame_size=${0} | phy_cores=${2}
+
+| 64B-1c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 1024B-1c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 1024B | 1C
+| | frame_size=${1024} | phy_cores=${1}
+
+| 1024B-2c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 1024B | 2C
+| | frame_size=${1024} | phy_cores=${2}
+
+| 2048B-1c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 2048B | 1C
+| | frame_size=${2048} | phy_cores=${1}
+
+| 2048B-2c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 2048B | 2C
+| | frame_size=${2048} | phy_cores=${2}
diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps.robot
new file mode 100644
index 0000000000..3282f6a711
--- /dev/null
+++ b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps.robot
@@ -0,0 +1,128 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/hoststack/hoststack.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
+| ... | HOSTSTACK | LDP_NGINX | TCP | NIC_Intel-X710 | DRV_VFIO_PCI
+| ... | TCP_RPS | eth-ip4tcphttp-ldpreload-nginx-1_21_5
+|
+| Suite Setup | Setup suite topology interfaces | ab | nginx
+| Suite Teardown | Tear down suite | ab
+| Test Setup | Setup test
+| Test Teardown | Tear down test | nginx
+|
+| Test Template | Local Template
+|
+| Documentation | **TCP requests per seconds.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT-TG 2-node topology \
+| ... | with single link between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP-HTTP for TCP
+| ... |
+| ... | - **[Cfg] DUT configuration:**
+| ... |
+| ... | - **[Ver] TG verification:**
+| ... |
+| ... | - **[Ref] Applicable standard specifications:**
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${nic_name}= | Intel-X710
+| ${crypto_type}= | ${None}
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${overhead}= | ${0}
+| ${ciphers}= | 0
+| ${rps_cps}= | rps
+| ${qat}= | ${0}
+| ${r_total}= | ${1000000}
+| ${c_total}= | ${2000}
+| ${listen_port}= | ${80}
+| ${mode}= | ldp
+| ${tls_tcp}= | tcp
+| ${keep_time}= | 300
+| ${ab_ip_prefix}= | 24
+| @{ab_ip_addrs}= | 192.168.10.2
+| ${dut_ip_prefix}= | 24
+| @{dut_ip_addrs}= | 192.168.10.1
+| ${nginx_version}= | 1.21.5
+| ${sess_evt_q_length}= | 100000
+| ${sess_prealloc_sess}= | 1100000
+| ${v4_sess_tbl_buckets}= | 250000
+| ${v4_sess_tbl_mem}= | 1g
+| ${local_endpts_tbl_buckets}= | 250000
+| ${local_endpts_tbl_mem}= | 1g
+| ${tcp_prealloc_conns}= | 1100000
+| ${tcp_prealloc_ho_conns}= | 1100000
+
+*** Keywords ***
+| Local template
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | Set Test Variable | ${dpdk_no_tx_checksum_offload} | ${False}
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Configure VPP startup configuration for NGINX | ${sess_prealloc_sess}
+| | ... | ${sess_evt_q_length} | ${v4_sess_tbl_buckets} | ${v4_sess_tbl_mem}
+| | ... | ${local_endpts_tbl_buckets} | ${local_endpts_tbl_mem}
+| | ... | ${tcp_prealloc_conns} | ${tcp_prealloc_ho_conns}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set up LDP or VCL Nginx on DUT1 node | ${mode}
+| | ... | ${rps_cps} | ${phy_cores} | ${qat} | ${tls_tcp}
+| | And Additional Suite Setup Action For ab
+| | Then Measure TLS requests or connections per second
+| | ... | ${ciphers} | ${frame_size} | ${tls_tcp} | ${rps_cps}
+
+*** Test Cases ***
+| 0B-1c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 0B | 1C
+| | frame_size=${0} | phy_cores=${1}
+
+| 0B-2c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 0B | 2C
+| | frame_size=${0} | phy_cores=${2}
+
+| 64B-1c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 1024B-1c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 1024B | 1C
+| | frame_size=${1024} | phy_cores=${1}
+
+| 1024B-2c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 1024B | 2C
+| | frame_size=${1024} | phy_cores=${2}
+
+| 2048B-1c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 2048B | 1C
+| | frame_size=${2048} | phy_cores=${1}
+
+| 2048B-2c-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 2048B | 2C
+| | frame_size=${2048} | phy_cores=${2}
diff --git a/tests/vpp/perf/hoststack/regenerate_testcases.py b/tests/vpp/perf/hoststack/regenerate_testcases.py
index ec754aa261..e22f6de5c3 100755
--- a/tests/vpp/perf/hoststack/regenerate_testcases.py
+++ b/tests/vpp/perf/hoststack/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-dot1q-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-dot1q-ip4base-ndrpdr.robot
index 6a5f288d6d..406ed94a05 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-dot1q-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-dot1q-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,31 +26,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing with IEEE 802.1Q test\
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing. IEEE 802.1Q\
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and two static IPv4 /30 route entries. DUT1 and DUT2 tested\
-| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUTs. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP\
-| ... | protocol=61 and static payload. MAC addresses are matching MAC\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing with IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing. \
+| ... | IEEE 802.1Q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and two static IPv4 /30 route entries. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUTs. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -66,14 +71,14 @@
| ${tg_if1_net}= | 10.10.10.0
| ${tg_if2_net}= | 20.20.20.0
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs IPv4 routing with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs IPv4 routing with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot
index 64fcc09c73..e4dd791bb8 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,29 +26,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 allowlist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
-| ... | routing, two static IPv4 /24 routes and IPv4 ADL security allowlist
-| ... | ingress /24 filter entries applied on links TG - DUT1 and DUT2 - TG.
-| ... | DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput IPv4 allowlist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4 \
+| ... | routing, two static IPv4 /24 routes and IPv4 ADL security allowlist \
+| ... | ingress /24 filter entries applied on links TG - DUT1 and DUT2 - TG. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | adl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | adl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config. \
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot
index afd4624d55..5b895dd113 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,29 +26,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 iAcl whitelist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
-| ... | routing, two static IPv4 /24 routes and IPv4 iAcl security whitelist
-| ... | ingress /24 filter entries applied on links TG - DUT1 and DUT2 - TG.
-| ... | DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header
-| ... | and generated payload. MAC addresses are matching MAC addresses
+| Documentation | **RFC2544: Pkt throughput IPv4 iAcl whitelist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4 \
+| ... | routing, two static IPv4 /24 routes and IPv4 iAcl security whitelist \
+| ... | ingress /24 filter entries applied on links TG - DUT1 and DUT2 - TG. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | and generated payload. MAC addresses are matching MAC addresses \
| ... | of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot
index 3597eab7d7..8be7f04e68 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 policer test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
-| ... | routing and two static IPv4 /24 route entries and policer with 2R3C
-| ... | color-aware configuration. Policer is applied on links TG - DUT1 and
-| ... | DUT2 - TG. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header
-| ... | and generated payload. MAC addresses are matching MAC addresses
+| Documentation | **RFC2544: Pkt throughput IPv4 policer test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4 \
+| ... | routing and two static IPv4 /24 route entries and policer with 2R3C \
+| ... | color-aware configuration. Policer is applied on links TG - DUT1 and \
+| ... | DUT2 - TG. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | and generated payload. MAC addresses are matching MAC addresses \
| ... | of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC2698.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC2698.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -63,14 +68,14 @@
| ${eir}= | ${150}
| ${dscp}= | AF22
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ndrpdr.robot
index 992a9fd851..cfc4bec5d5 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
-| ... | routing and two static IPv4 /24 route entries. DUT1 and DUT2 tested with
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -58,15 +63,15 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot
new file mode 100644
index 0000000000..95e34e265a
--- /dev/null
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | SCALE | FIB_1M | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4scale1m
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 2x500k static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 500k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${500000}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot
index 1ae46ec4eb..b7c0c6040d 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and 2x100k static IPv4 /32 route entries. DUT1 and DUT2 tested\
-| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 2x100k static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,15 +64,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${100000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot
index fd4ef619a4..3ea9a74e1d 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and 2x100k static IPv4 /32 route entries. DUT1 and DUT2 tested\
-| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 100k\
-| ... | flows per flow-group) with all packets containing Ethernet header,\
-| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 2x100k static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 100k \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,15 +64,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${100000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot
index 3218c986af..a42e23c760 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and 2x10k static IPv4 /32 route entries. DUT1 and DUT2 tested\
-| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 2x10k static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,15 +64,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${10000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot
index 4ae84b0686..11c3d5a2a0 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and 2x10k static IPv4 /32 route entries. DUT1 and DUT2 tested\
-| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 10k\
-| ... | flows per flow-group) with all packets containing Ethernet header,\
-| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 2x10k static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 10k \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,15 +64,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${10000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot
index c2d26a9ac3..1af8be3dfe 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and 2x1M static IPv4 /32 route entries. DUT1 and DUT2 tested\
-| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 2x1M static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,15 +64,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${1000000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot
index 4c7a2887b3..89db882343 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and 2x1M static IPv4 /32 route entries. DUT1 and DUT2 tested\
-| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 1M\
-| ... | flows per flow-group) with all packets containing Ethernet header,\
-| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 2x1M static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 1M \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,15 +64,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${1000000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale600k-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale600k-ndrpdr.robot
new file mode 100644
index 0000000000..a091ee6936
--- /dev/null
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale600k-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | SCALE | FIB_600K | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4scale600k
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 6x100k static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${100000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4-ip4scale600k-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale600k-rnd-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale600k-rnd-ndrpdr.robot
new file mode 100644
index 0000000000..bc01eefb2c
--- /dev/null
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale600k-rnd-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | SCALE | FIB_600K | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4scale600k-rnd
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 6x100k static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 100k \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are \
+| ... | matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${100000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4-ip4scale600k-rnd-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale60k-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale60k-ndrpdr.robot
new file mode 100644
index 0000000000..b1e83b1d9b
--- /dev/null
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale60k-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | SCALE | FIB_60K | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4scale60k
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 6x10k static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${10000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4-ip4scale60k-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale60k-rnd-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale60k-rnd-ndrpdr.robot
new file mode 100644
index 0000000000..e72ba8e1a8
--- /dev/null
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale60k-rnd-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | SCALE | FIB_60k | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | IP4_RND
+| ... | ethip4-ip4scale60k-rnd
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 2x10k static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 10k \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are \
+| ... | matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${10000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4-ip4scale60k-rnd-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale6m-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale6m-ndrpdr.robot
new file mode 100644
index 0000000000..8a17f390c7
--- /dev/null
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale6m-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | SCALE | FIB_6M | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4scale6m
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 2x1M static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${1000000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4-ip4scale6m-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale6m-rnd-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale6m-rnd-ndrpdr.robot
new file mode 100644
index 0000000000..8cd519d499
--- /dev/null
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale6m-rnd-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | SCALE | FIB_6M | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0 | IP4_RND
+| ... | ethip4-ip4scale6m-rnd
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and 2x1M static IPv4 /32 route entries. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 1M \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are \
+| ... | matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${1000000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4-ip4scale6m-rnd-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100flows-ndrpdr.robot
index 75dafd82e1..68434bab56 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdr.robot
index a6f90ee238..11db230a07 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdr.robot
index 45285d48fc..e09352d28e 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100flows-ndrpdr.robot
index 4fbf64b48f..679a6d293f 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdr.robot
index 74b32cf8ec..b9e92662da 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdr.robot
index 002629e772..c8b55941bc 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100flows-ndrpdr.robot
index ddd9b09cf2..99d05de024 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdr.robot
index 386c735d81..de8af776e0 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot
index 41c1c450f7..7313b72ebb 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,15 +80,15 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100flows-ndrpdr.robot
index 8e6bcb7bd4..30ec032775 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdr.robot
index dcf6b1c964..c5160f3ac0 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
index 5a43e41b37..c38819e131 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,15 +80,15 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100flows-ndrpdr.robot
index 8c97b59742..7e7e4886df 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdr.robot
index 443e6c7341..7b94a3f4d3 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot
index 5a08b2bc4d..f28d0b151a 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,15 +80,15 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100flows-ndrpdr.robot
index 2dc5ddeb3c..d66ce1d84b 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdr.robot
index 2068b80b0a..01c07541d2 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot
index 838c5e1108..bdcc74db72 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to input paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,15 +80,15 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100flows-ndrpdr.robot
index 578c93e1b8..cc3bef56ba 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdr.robot
index 64dc87dcdf..8f1aa3fb45 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdr.robot
index d3b65f42ec..66c50649a6 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100flows-ndrpdr.robot
index 4293a3182f..f8088ec8f1 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdr.robot
index 402cbd43e7..ebeec04e41 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdr.robot
index 1ba7cdf821..539db58504 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100flows-ndrpdr.robot
index 7bb8154fef..f31834239a 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdr.robot
index b529c4d1b4..d9fef61eb3 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdr.robot
index 16cc90306c..71ce7ea633 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100flows-ndrpdr.robot
index afc9d49d95..e5b9ac12a4 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdr.robot
index d48b1db27d..558241a277 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdr.robot
index 7f461b4e3f..e920c977f0 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100flows-ndrpdr.robot
index 9600a10370..e4cf645ebc 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdr.robot
index c0b1442ec8..30a1120af0 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot
index 696dc3f756..52167c4d3b 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100flows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100flows-ndrpdr.robot
index a15049c7d1..2abf6c878d 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdr.robot
index f8d51a3aeb..9f2d7a4563 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot
index e3e3414e76..59115c850e 100644
--- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and one static IPv4 /24 route entries. Required ACL rules are\
-| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and one static IPv4 /24 route entries. Required ACL rules are \
+| ... | applied to output paths of both DUT1 intefaces. DUT1 and DUT2 are \
+| ... | tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +80,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-dot1q-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-dot1q-ip4base-ndrpdr.robot
index c70585dbfb..f9a62e2a27 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-dot1q-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-dot1q-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,30 +26,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing with IEEE 802.1Q test\
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing. IEEE 802.1Q\
-| ... | tagging is applied on link between DUT1-if2 and TG-if2.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | two static IPv4 /30 route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUT1. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP\
-| ... | protocol=61 and static payload. MAC addresses are matching MAC\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing with IEEE 802.1Q test \
+| ... | cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing. \
+| ... | IEEE 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and two static IPv4 /30 route entries. DUT1 is tested with \
+| ... | ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUT1. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +71,14 @@
| ${tg_if1_net}= | 10.10.10.0
| ${tg_if2_net}= | 20.20.20.0
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs IPv4 routing with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs IPv4 routing with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot
index a68c79077b..f0ac0984f5 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,29 +26,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 allowlist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput IPv4 allowlist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
-| ... | routing, two static IPv4 /24 routes and IPv4 ADL security allowlist
-| ... | ingress /24 filter entries applied on links TG - DUT1.
-| ... | DUT1 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing, two static IPv4 /24 routes and IPv4 ADL security allowlist \
+| ... | ingress /24 filter entries applied on links TG - DUT1. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | adl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | adl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config. \
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot
index 238913461a..2ce0f748c5 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,29 +26,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 iAcl whitelist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput IPv4 iAcl whitelist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing, two static IPv4 /24 routes and IPv4 iAcl security whitelist
-| ... | ingress /24 filter entries applied on links TG - DUT1.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header
-| ... | and generated payload. MAC addresses are matching MAC addresses
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing, two static IPv4 /24 routes and IPv4 iAcl security whitelist \
+| ... | ingress /24 filter entries applied on links TG - DUT1. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | and generated payload. MAC addresses are matching MAC addresses \
| ... | of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot
index 5ea69a0ab4..5fb43b26e4 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 policer test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput IPv4 policer test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | two IPv4 ARP entries and policer with 2R3C color-aware configuration.\
-| ... | Policer is applied on links TG - DUT1. DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | and generated payload. MAC addresses are matching MAC addresses\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and two IPv4 ARP entries and policer with 2R3C color-aware \
+| ... | configuration. Policer is applied on links TG - DUT1. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | and generated payload. MAC addresses are matching MAC addresses \
| ... | of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC2698.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC2698.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -61,14 +67,14 @@
| ${eir}= | ${150}
| ${dscp}= | AF22
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ndrpdr.robot
index 6b40a2df9f..8eb9393949 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -58,14 +63,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot
new file mode 100644
index 0000000000..44c27a0a47
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | SCALE | FIB_1M | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4-ip4scale1m
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and 2x500k static IPv4 /32 route entries. DUT1 is tested with \
+| ... | ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 500k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${500000}
+# Traffic profile
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4-ip4scale1m-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot
index 4dbfcccba8..5571caed21 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,27 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | 2x100k static IPv4 /32 route entries. DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and 2x100k static IPv4 /32 route entries. DUT1 is tested with \
+| ... | ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -58,15 +64,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${100000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -84,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot
index 93af6bd73f..c708ec1626 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,27 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | 2x100k static IPv4 /32 route entries. DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 100k\
-| ... | flows per flow-group) with all packets containing Ethernet header,\
-| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and 2x100k static IPv4 /32 route entries. DUT1 is tested with \
+| ... | ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 100k \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,15 +65,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${100000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +91,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot
index e27bedc849..3a3d03d2af 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,27 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | 2x10k static IPv4 /32 route entries. DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
-| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and 2x10k static IPv4 /32 route entries. DUT1 is tested with \
+| ... | ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic \
+| ... | profile contains two L3 flow-groups (flow-group per direction, \
+| ... | 10k flows per flow-group) with all packets containing Ethernet header, \
+| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are \
+| ... | matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -58,15 +64,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${10000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -84,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot
index d649a711b4..f1a5535094 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,27 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | 2x10k static IPv4 /32 route entries. DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 10k\
-| ... | flows per flow-group) with all packets containing Ethernet header,\
-| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and 2x10k static IPv4 /32 route entries. DUT1 is tested with \
+| ... | ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 10k \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,15 +65,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${10000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +91,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot
index 2c9419bd5a..1c2af5fab3 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,27 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | 2x1M static IPv4 /32 route entries. DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and 2x1M static IPv4 /32 route entries. DUT1 is tested with \
+| ... | ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -58,15 +64,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${1000000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -84,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot
index 67d5db967f..619191608c 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput IPv4 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | 2x1M static IPv4 /32 route entries. DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 1M\
-| ... | flows per flow-group) with all packets containing Ethernet header,\
-| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and 2x1M static IPv4 /32 route entries. DUT1 is tested with \
+| ... | ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains 2 randomized L3 flow-groups (flow-group per direction, 1M \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IPv4 header with IP protocol=61 and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,15 +65,15 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${1000000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -86,8 +91,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv4 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv4 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot
index 63dcc5aed6..6e7ed5096a 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty TCP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **CPS on empty TCP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with TCP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with TCP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.robot
deleted file mode 100644
index 26bf1604ba..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.robot
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | TCP | TCP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_1024 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-ip4base-h1024-p63-s64512-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight TCP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, TCP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Scale settings
-| ${n_hosts}= | ${1024}
-| ${n_ports}= | ${63}
-| ${packets_per_transaction_and_direction}= | ${11}
-| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
-# Traffic profile:
-| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
-| ${transaction_type}= | tcp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | 192.168.0.0 | 20.0.0.0 | ${22}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr.robot
new file mode 100644
index 0000000000..32f03827f7
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr.robot
@@ -0,0 +1,147 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_1024 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-ip4base-h1024-p63-s64512-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, TCP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${1024}
+| ${n_ports}= | ${63}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | 192.168.0.0 | 20.0.0.0 | ${22}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B-1c-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot
index 93adf5bfef..9445b0ac4a 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty TCP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **CPS on empty TCP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with TCP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with TCP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.robot
deleted file mode 100644
index c0b2193157..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.robot
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | TCP | TCP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_16384 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-ip4base-h16384-p63-s1032192-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight TCP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, TCP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Scale settings
-| ${n_hosts}= | ${16384}
-| ${n_ports}= | ${63}
-| ${packets_per_transaction_and_direction}= | ${11}
-| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
-# Traffic profile:
-| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
-| ${transaction_type}= | tcp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | 192.168.0.0 | 20.0.0.0 | ${18}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr.robot
new file mode 100644
index 0000000000..fd6a71d473
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr.robot
@@ -0,0 +1,147 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_16384 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-ip4base-h16384-p63-s1032192-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, TCP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${16384}
+| ${n_ports}= | ${63}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | 192.168.0.0 | 20.0.0.0 | ${18}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B-1c-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot
index 5892edea9d..0682bc2c6b 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty TCP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **CPS on empty TCP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with TCP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with TCP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.robot
deleted file mode 100644
index 554f4070e7..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.robot
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | TCP | TCP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_262144 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-ip4base-h262144-p63-s16515072-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight TCP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, TCP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Scale settings
-| ${n_hosts}= | ${262144}
-| ${n_ports}= | ${63}
-| ${packets_per_transaction_and_direction}= | ${11}
-| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
-# Traffic profile:
-| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
-| ${transaction_type}= | tcp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | 172.16.0.0 | 20.16.0.0 | ${14}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr.robot
new file mode 100644
index 0000000000..b34a62f424
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr.robot
@@ -0,0 +1,147 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_262144 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-ip4base-h262144-p63-s16515072-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, TCP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${262144}
+| ${n_ports}= | ${63}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | 172.16.0.0 | 20.16.0.0 | ${14}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B-1c-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot
index 96c5bc062f..ad692a1d00 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty TCP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **CPS on empty TCP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with TCP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with TCP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.robot
deleted file mode 100644
index 9fd4c4229e..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.robot
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | TCP | TCP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_4096 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-ip4base-h4096-p63-s258048-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight TCP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, TCP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Scale settings
-| ${n_hosts}= | ${4096}
-| ${n_ports}= | ${63}
-| ${packets_per_transaction_and_direction}= | ${11}
-| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
-# Traffic profile:
-| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
-| ${transaction_type}= | tcp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | 192.168.0.0 | 20.0.0.0 | ${20}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr.robot
new file mode 100644
index 0000000000..e28823de6c
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr.robot
@@ -0,0 +1,147 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_4096 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-ip4base-h4096-p63-s258048-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, TCP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${4096}
+| ${n_ports}= | ${63}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | 192.168.0.0 | 20.0.0.0 | ${20}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B-1c-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot
index ca3d2cfc41..720b382171 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty TCP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **CPS on empty TCP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with TCP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with TCP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.robot
deleted file mode 100644
index 7327b854c8..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.robot
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | TCP | TCP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_65536 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-ip4base-h65536-p63-s4128768-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight TCP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, TCP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Scale settings
-| ${n_hosts}= | ${65536}
-| ${n_ports}= | ${63}
-| ${packets_per_transaction_and_direction}= | ${11}
-| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
-# Traffic profile:
-| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
-| ${transaction_type}= | tcp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | 192.168.0.0 | 20.0.0.0 | ${16}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr.robot
new file mode 100644
index 0000000000..e0f0f287de
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr.robot
@@ -0,0 +1,147 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_65536 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-ip4base-h65536-p63-s4128768-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, TCP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${65536}
+| ${n_ports}= | ${63}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | 192.168.0.0 | 20.0.0.0 | ${16}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B-1c-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot
index a3a3d08db3..a605f805e3 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,30 +29,35 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty TCP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **CPS on empty TCP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /18 route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /18 route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with TCP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with TCP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -96,9 +101,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.robot
deleted file mode 100644
index 3d75d2639b..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.robot
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_1024 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-nat44ed-h1024-p63-s64512-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | nat-ed
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight TCP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, TCP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.0.0.0
-| ${dest_mask}= | ${22}
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${22}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.0
-| ${out_mask}= | ${32}
-# Scale settings
-| ${n_hosts}= | ${1024}
-| ${n_ports}= | ${63}
-| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
-| ${packets_per_transaction_and_direction}= | ${11}
-| ${transaction_scale}= | ${n_sessions}
-# Traffic profile
-| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
-| ${transaction_type}= | tcp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot
new file mode 100644
index 0000000000..1f2c7a1a69
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_1024 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed-h1024-p63-s64512-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, TCP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${22}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${22}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.0
+| ${out_mask}= | ${32}
+# Scale settings
+| ${n_hosts}= | ${1024}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${n_sessions}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${30000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 TCP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 TCP sessions number on DUT1 node
+
+*** Test Cases ***
+| 100B-1c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot
index ee865a9db9..7a7779928d 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,30 +29,35 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty TCP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **CPS on empty TCP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | one static IPv4 /18 route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /18 route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with TCP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with TCP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -96,9 +101,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.robot
deleted file mode 100644
index f82e46871a..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.robot
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_16384 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-nat44ed-h16384-p63-s1032192-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | nat-ed
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight TCP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, TCP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.0.0.0
-| ${dest_mask}= | ${18}
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${18}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.15
-| ${out_mask}= | ${28}
-# Scale settings
-| ${n_hosts}= | ${16384}
-| ${n_ports}= | ${63}
-| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
-| ${packets_per_transaction_and_direction}= | ${11}
-| ${transaction_scale}= | ${n_sessions}
-# Traffic profile
-| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
-| ${transaction_type}= | tcp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot
new file mode 100644
index 0000000000..1f163c4b86
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_16384 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed-h16384-p63-s1032192-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, TCP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${18}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${18}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.15
+| ${out_mask}= | ${28}
+# Scale settings
+| ${n_hosts}= | ${16384}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${n_sessions}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${30000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 TCP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 TCP sessions number on DUT1 node
+
+*** Test Cases ***
+| 100B-1c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot
index 8afdd3d904..318c4fa679 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,30 +29,35 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty TCP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **CPS on empty TCP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | one static IPv4 /18 route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /18 route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with TCP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with TCP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -98,9 +103,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.robot
deleted file mode 100644
index b0e4dfc0c9..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.robot
+++ /dev/null
@@ -1,137 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_262144 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-nat44ed-h262144-p63-s16515072-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | nat-ed
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight TCP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, TCP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.16.0.0
-| ${dest_mask}= | ${14}
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${in_net}= | 172.16.0.0
-| ${in_mask}= | ${14}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.255
-| ${out_mask}= | ${24}
-# Scale settings
-| ${n_hosts}= | ${262144}
-| ${n_ports}= | ${63}
-| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
-| ${packets_per_transaction_and_direction}= | ${11}
-| ${transaction_scale}= | ${n_sessions}
-# Main heap size multiplicator
-| ${heap_size_mult}= | ${7}
-# Traffic profile
-| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
-| ${transaction_type}= | tcp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot
new file mode 100644
index 0000000000..82b6adab22
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot
@@ -0,0 +1,173 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_262144 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed-h262144-p63-s16515072-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, TCP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.16.0.0
+| ${dest_mask}= | ${14}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 172.16.0.0
+| ${in_mask}= | ${14}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.255
+| ${out_mask}= | ${24}
+# Scale settings
+| ${n_hosts}= | ${262144}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${n_sessions}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${7}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${30000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 TCP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 TCP sessions number on DUT1 node
+
+*** Test Cases ***
+| 100B-1c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot
index 58e9ded2bc..64b916f4ae 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,30 +29,35 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty TCP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **CPS on empty TCP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | one static IPv4 /18 route entries.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with TCP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /18 route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with TCP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -96,9 +101,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.robot
deleted file mode 100644
index ecd327fa7d..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.robot
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_4096 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-nat44ed-h4096-p63-s258048-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | nat-ed
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight TCP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, TCP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.0.0.0
-| ${dest_mask}= | ${20}
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${20}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.3
-| ${out_mask}= | ${30}
-# Scale settings
-| ${n_hosts}= | ${4096}
-| ${n_ports}= | ${63}
-| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
-| ${packets_per_transaction_and_direction}= | ${11}
-| ${transaction_scale}= | ${n_sessions}
-# Traffic profile
-| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
-| ${transaction_type}= | tcp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot
new file mode 100644
index 0000000000..f21131ad06
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_4096 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed-h4096-p63-s258048-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, TCP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${20}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${20}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.3
+| ${out_mask}= | ${30}
+# Scale settings
+| ${n_hosts}= | ${4096}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${n_sessions}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${30000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 TCP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 TCP sessions number on DUT1 node
+
+*** Test Cases ***
+| 100B-1c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot
index dc4bf0c308..d6870add90 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,30 +29,35 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty TCP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **CPS on empty TCP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | one static IPv4 /18 route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /18 route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with TCP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional TCP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with TCP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -98,9 +103,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.robot
deleted file mode 100644
index 29eab1e792..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.robot
+++ /dev/null
@@ -1,137 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_65536 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4tcp-nat44ed-h65536-p63-s4128768-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | nat-ed
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight TCP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-TCP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, TCP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.0.0.0
-| ${dest_mask}= | ${16}
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${16}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.63
-| ${out_mask}= | ${26}
-# Scale settings
-| ${n_hosts}= | ${65536}
-| ${n_ports}= | ${63}
-| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
-| ${packets_per_transaction_and_direction}= | ${11}
-| ${transaction_scale}= | ${n_sessions}
-# Main heap size multiplicator
-| ${heap_size_mult}= | ${2}
-# Traffic profile
-| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
-| ${transaction_type}= | tcp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot
new file mode 100644
index 0000000000..7ef60af30d
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot
@@ -0,0 +1,173 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | TCP | TCP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_65536 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight TCP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-TCP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, TCP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${16}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${16}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.63
+| ${out_mask}= | ${26}
+# Scale settings
+| ${n_hosts}= | ${65536}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${4 + ${ASTF_N_DATA_FRAMES}}
+| ${packets_per_transaction_aggregated}= | ${6 + 2 * ${ASTF_N_DATA_FRAMES}}
+| ${transaction_scale}= | ${n_sessions}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${2}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${30000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4tcp-${n_hosts}h-pps
+| ${transaction_type}= | tcp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 TCP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 TCP sessions number on DUT1 node
+
+*** Test Cases ***
+| 100B-1c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot
index 77d3ee210c..c6425b2e49 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty UDP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **CPS on empty UDP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing and two static IPv4 /22 route entries. DUT1 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /22 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -69,9 +74,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.robot
deleted file mode 100644
index d27b1bda85..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.robot
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | UDP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_1024 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-ip4base-h1024-p63-s64512-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight UDP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /22 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, UDP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Scale settings
-| ${n_hosts}= | ${1024}
-| ${n_ports}= | ${63}
-| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
-| ${packets_per_transaction_and_direction}= | ${33}
-# Traffic profile:
-| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
-| ${transaction_type}= | udp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | 192.168.0.0 | 20.0.0.0 | ${22}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr.robot
new file mode 100644
index 0000000000..e1e755cafa
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_1024 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-ip4base-h1024-p63-s64512-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight UDP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /22 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, UDP header and static \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${1024}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | 192.168.0.0 | 20.0.0.0 | ${22}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B-1c-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot
index 74f34b64f7..308126a629 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty UDP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **CPS on empty UDP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing and two static IPv4 /18 route entries. DUT1 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /18 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -69,9 +74,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.robot
deleted file mode 100644
index 3510c84f9c..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.robot
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | UDP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_16384 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-ip4base-h16384-p63-s1032192-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| Documentation | *PPS on lightweight UDP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing and two static IPv4 /18 route entries. DUT1 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
-| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Scale settings
-| ${n_hosts}= | ${16384}
-| ${n_ports}= | ${63}
-| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
-| ${packets_per_transaction_and_direction}= | ${33}
-# Traffic profile:
-| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
-| ${transaction_type}= | udp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | 192.168.0.0 | 20.0.0.0 | ${18}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr.robot
new file mode 100644
index 0000000000..7a7b6f2b13
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_16384 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-ip4base-h16384-p63-s1032192-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **TPUT on lightweight UDP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /18 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${16384}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | 192.168.0.0 | 20.0.0.0 | ${18}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B-1c-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot
index 44b7740f5c..7b95c7ab6c 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty UDP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **CPS on empty UDP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing and two static IPv4 /14 route entries. DUT1 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /14 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -69,9 +74,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.robot
deleted file mode 100644
index 7a80bf07d5..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.robot
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | UDP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_262144 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-ip4base-h262144-p63-s16515072-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| Documentation | *PPS on lightweight UDP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing and two static IPv4 /14 route entries. DUT1 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
-| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Scale settings
-| ${n_hosts}= | ${262144}
-| ${n_ports}= | ${63}
-| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
-| ${packets_per_transaction_and_direction}= | ${33}
-# Traffic profile:
-| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
-| ${transaction_type}= | udp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | 172.16.0.0 | 20.16.0.0 | ${14}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr.robot
new file mode 100644
index 0000000000..75279120ba
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_262144 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-ip4base-h262144-p63-s16515072-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **TPUT on lightweight UDP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /14 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${262144}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | 172.16.0.0 | 20.16.0.0 | ${14}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B-1c-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot
index 4226656f14..56b6363bac 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty UDP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **CPS on empty UDP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing and two static IPv4 /20 route entries. DUT1 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /20 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -69,9 +74,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.robot
deleted file mode 100644
index 314b6fcf48..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.robot
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | UDP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_4096 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-ip4base-h4096-p63-s258048-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| Documentation | *PPS on lightweight UDP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing and two static IPv4 /20 route entries. DUT1 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
-| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Scale settings
-| ${n_hosts}= | ${4096}
-| ${n_ports}= | ${63}
-| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
-| ${packets_per_transaction_and_direction}= | ${33}
-# Traffic profile:
-| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
-| ${transaction_type}= | udp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | 192.168.0.0 | 20.0.0.0 | ${20}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr.robot
new file mode 100644
index 0000000000..a92513cd4e
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_4096 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-ip4base-h4096-p63-s258048-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **TPUT on lightweight UDP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /20 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${4096}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | 192.168.0.0 | 20.0.0.0 | ${20}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B-1c-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot
index 301f7643b1..c6b4de65cf 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty UDP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **CPS on empty UDP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing and two static IPv4 /16 route entries. DUT1 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /16 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -69,9 +74,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.robot
deleted file mode 100644
index 480bbc38e1..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.robot
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | UDP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_65536 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-ip4base-h65536-p63-s4128768-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance
-|
-| Test Template | Local Template
-|
-| Documentation | *PPS on lightweight UDP transactions with IPv4 routing*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
-| ... | routing and two static IPv4 /16 route entries. DUT1 tested with
-| ... | ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
-| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# Scale settings
-| ${n_hosts}= | ${65536}
-| ${n_ports}= | ${63}
-| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
-| ${packets_per_transaction_and_direction}= | ${33}
-# Traffic profile:
-| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
-| ${transaction_type}= | udp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding in circular topology
-| | ... | 192.168.0.0 | 20.0.0.0 | ${16}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr.robot
new file mode 100644
index 0000000000..8f10ed040e
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | IP4BASE | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_65536 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-ip4base-h65536-p63-s4128768-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **TPUT on lightweight UDP transactions with IPv4 routing**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /16 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# Scale settings
+| ${n_hosts}= | ${65536}
+| ${n_ports}= | ${63}
+| ${transaction_scale}= | ${${n_hosts} * ${n_ports}}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Traffic profile:
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding in circular topology
+| | ... | 192.168.0.0 | 20.0.0.0 | ${16}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 100B-1c-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot
index b1e4c301d1..3d4999ac36 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,15 +79,15 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
index c3a379fbfa..77345a260c 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,15 +79,15 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot
index eb5c01401d..26081dea79 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,15 +79,15 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot
index e44edae3ba..3b95a610dc 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,15 +79,15 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot
index dc50eb132a..0c33d29d64 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,15 +79,15 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot
index c74eb51e1c..a516a0ebe8 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | flows per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static payload. MAC addresses are\
-| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} flows per flow-group) with all packets containing \
+| ... | Ethernet header, IPv4 header with IP protocol=61 and static payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,15 +79,15 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1-p1-s1-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1-p1-s1-ndrpdr.robot
index 2081521661..2734b33a6e 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1-p1-s1-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1-p1-s1-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,29 +29,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 deterministic mode performance
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput NAT44 deterministic mode performance
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /18 route entries.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /18 route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | det44_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | det44_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -83,18 +88,18 @@
| ${n_ports}= | ${1}
| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
# Ramp-up settings
-| ${ramp_up_rate}= | ${500000}
-| ${ramp_up_duration}= | ${1}
+| ${ramp_up_rate}= | ${66061.0}
+| ${ramp_up_duration}= | ${2.0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-${n_hosts}u${n_ports}p
+| ${traffic_profile}= | trex-stl-ethip4udp-${n_hosts}u${n_ports}p
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.robot
index 02942194e3..8577c90176 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput NAT44 performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | two static IPv4 /22 and IPv4 /24 route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and two static IPv4 /22 and IPv4 /24 route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with UDP header and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with UDP header and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | det44_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | det44_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -80,8 +85,8 @@
| ${n_ports}= | ${63}
| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
# Ramp-up settings
-| ${ramp_up_rate}= | ${500000}
-| ${ramp_up_duration}= | ${1}
+| ${ramp_up_rate}= | ${66061.0}
+| ${ramp_up_duration}= | ${2.0}
# Traffic profile
| ${traffic_profile}= | trex-stl-ethip4udp-${n_hosts}u${n_ports}p
@@ -89,9 +94,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.robot
index 90a1053c9e..47bb13878d 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput NAT44 performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | two static IPv4 /18 and IPv4 /24 route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and two static IPv4 /18 and IPv4 /24 route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with UDP header and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with UDP header and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | det44_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | det44_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -80,8 +85,8 @@
| ${n_ports}= | ${63}
| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
# Ramp-up settings
-| ${ramp_up_rate}= | ${400000}
-| ${ramp_up_duration}= | ${5.5}
+| ${ramp_up_rate}= | ${66061.0}
+| ${ramp_up_duration}= | ${16.8}
# Traffic profile
| ${traffic_profile}= | trex-stl-ethip4udp-${n_hosts}u${n_ports}p
@@ -89,9 +94,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.robot
index 913f8b353b..457d07ef42 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput NAT44 performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | two static IPv4 /14 and IPv4 /24 route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and two static IPv4 /14 and IPv4 /24 route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with UDP header and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with UDP header and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | det44_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | det44_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -82,8 +87,8 @@
# Main heap size multiplicator
| ${heap_size_mult}= | ${7}
# Ramp-up settings
-| ${ramp_up_rate}= | ${200000}
-| ${ramp_up_duration}= | ${82.8}
+| ${ramp_up_rate}= | ${66061.0}
+| ${ramp_up_duration}= | ${252.3}
# Traffic profile
| ${traffic_profile}= | trex-stl-ethip4udp-${n_hosts}u${n_ports}p
@@ -91,9 +96,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.robot
index 2e11408323..43be7302b7 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput NAT44 performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | two static IPv4 /20 and IPv4 /24 route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and two static IPv4 /20 and IPv4 /24 route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with UDP header and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with UDP header and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | det44_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | det44_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -80,8 +85,8 @@
| ${n_ports}= | ${63}
| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
# Ramp-up settings
-| ${ramp_up_rate}= | ${400000}
-| ${ramp_up_duration}= | ${1.6}
+| ${ramp_up_rate}= | ${66061.0}
+| ${ramp_up_duration}= | ${5.0}
# Traffic profile
| ${traffic_profile}= | trex-stl-ethip4udp-${n_hosts}u${n_ports}p
@@ -89,9 +94,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.robot
index 7a5bb3f271..c795e04b29 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,28 +27,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput NAT44 performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | two static IPv4 /16 and IPv4 /24 route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and two static IPv4 /16 and IPv4 /24 route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with UDP header and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with UDP header and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | det44_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | det44_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -82,8 +87,8 @@
# Main heap size multiplicator
| ${heap_size_mult}= | ${2}
# Ramp-up settings
-| ${ramp_up_rate}= | ${200000}
-| ${ramp_up_duration}= | ${23.5}
+| ${ramp_up_rate}= | ${66061.0}
+| ${ramp_up_duration}= | ${63.9}
# Traffic profile
| ${traffic_profile}= | trex-stl-ethip4udp-${n_hosts}u${n_ports}p
@@ -91,9 +96,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot
index 839b9277a9..73b92739d3 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,30 +29,35 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty UDP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **CPS on empty UDP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /${dest_mask} route entries.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -94,9 +99,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.robot
deleted file mode 100644
index e66ee250b2..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.robot
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_1024 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-nat44ed-h1024-p63-s64512-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | nat-ed
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight UDP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, UDP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.0.0.0
-| ${dest_mask}= | ${22}
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${22}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.0
-| ${out_mask}= | ${32}
-# Scale settings
-| ${n_hosts}= | ${1024}
-| ${n_ports}= | ${63}
-| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
-| ${transaction_scale}= | ${n_sessions}
-| ${packets_per_transaction_and_direction}= | ${33}
-# Traffic profile
-| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
-| ${transaction_type}= | udp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot
new file mode 100644
index 0000000000..e650f1022d
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot
@@ -0,0 +1,169 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_1024 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed-h1024-p63-s64512-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight UDP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, UDP header and static \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${22}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${22}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.0
+| ${out_mask}= | ${32}
+# Scale settings
+| ${n_hosts}= | ${1024}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${transaction_scale}= | ${n_sessions}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${30000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 UDP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 UDP sessions number on DUT1 node
+
+*** Test Cases ***
+| 100B-1c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.robot
index 9866ae2396..836c404759 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 endpoint-dependent mode
-| ... | performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput NAT44 endpoint-dependent mode
+| ... | performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | one static IPv4 /${dest_mask} route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L4 flows (uni-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L4 flows (uni-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,7 +80,7 @@
# NAT settings
| ${nat_mode}= | endpoint-dependent
| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${8}
+| ${in_mask}= | ${22}
| ${out_net}= | 68.142.68.0
| ${out_net_end}= | 68.142.68.0
| ${out_mask}= | ${32}
@@ -94,9 +99,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot
index 8180d891cb..62b8cb90af 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,30 +29,35 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty UDP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **CPS on empty UDP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /${dest_mask} route entries.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -94,9 +99,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.robot
deleted file mode 100644
index d9a652b186..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.robot
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_16384 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-nat44ed-h16384-p63-s1032192-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | nat-ed
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight UDP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, UDP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.0.0.0
-| ${dest_mask}= | ${18}
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${18}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.15
-| ${out_mask}= | ${28}
-# Scale settings
-| ${n_hosts}= | ${16384}
-| ${n_ports}= | ${63}
-| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
-| ${transaction_scale}= | ${n_sessions}
-| ${packets_per_transaction_and_direction}= | ${33}
-# Traffic profile
-| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
-| ${transaction_type}= | udp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot
new file mode 100644
index 0000000000..38205ffa72
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_16384 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed-h16384-p63-s1032192-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight UDP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, UDP header and static \
+| ... | payload. \ \ \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${18}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${18}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.15
+| ${out_mask}= | ${28}
+# Scale settings
+| ${n_hosts}= | ${16384}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${transaction_scale}= | ${n_sessions}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${30000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 UDP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 UDP sessions number on DUT1 node
+
+*** Test Cases ***
+| 100B-1c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.robot
index bd52906c78..db8249365f 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 endpoint-dependent mode
-| ... | performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput NAT44 endpoint-dependent mode
+| ... | performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | one static IPv4 /${dest_mask} route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L4 flows (un-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L4 flows (un-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -94,9 +99,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot
index 4bfff95012..dbc8abe3e0 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,30 +29,35 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty UDP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **CPS on empty UDP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /${dest_mask} route entries.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -96,9 +101,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.robot
deleted file mode 100644
index 4dc9d21358..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.robot
+++ /dev/null
@@ -1,137 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UD | UDP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_262144 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-nat44ed-h262144-p63-s16515072-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | nat-ed
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight UDP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, UDP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.16.0.0
-| ${dest_mask}= | ${14}
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${in_net}= | 172.16.0.0
-| ${in_mask}= | ${14}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.255
-| ${out_mask}= | ${24}
-# Scale settings
-| ${n_hosts}= | ${262144}
-| ${n_ports}= | ${63}
-| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
-| ${transaction_scale}= | ${n_sessions}
-| ${packets_per_transaction_and_direction}= | ${33}
-# Main heap size multiplicator
-| ${heap_size_mult}= | ${7}
-# Traffic profile
-| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
-| ${transaction_type}= | udp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot
new file mode 100644
index 0000000000..9cec21c2db
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot
@@ -0,0 +1,173 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UD | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_262144 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed-h262144-p63-s16515072-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight UDP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, UDP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.16.0.0
+| ${dest_mask}= | ${14}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 172.16.0.0
+| ${in_mask}= | ${14}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.255
+| ${out_mask}= | ${24}
+# Scale settings
+| ${n_hosts}= | ${262144}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${transaction_scale}= | ${n_sessions}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${7}
+# Ramp-up settings
+# This scale needs more than 55 ktps, which is more than current NDR results.
+| ${ramp_up_rate}= | ${30000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 UDP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 UDP sessions number on DUT1 node
+
+*** Test Cases ***
+| 100B-1c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.robot
index 99dcb06301..ebe4718df1 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 endpoint-dependent mode
-| ... | performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput NAT44 endpoint-dependent mode
+| ... | performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | one static IPv4 /${dest_mask} route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L4 flows (uni-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L4 flows (uni-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,7 +80,7 @@
# NAT settings
| ${nat_mode}= | endpoint-dependent
| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${8}
+| ${in_mask}= | ${14}
| ${out_net}= | 68.142.68.0
| ${out_net_end}= | 68.142.68.255
| ${out_mask}= | ${24}
@@ -96,9 +101,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot
index a5346e9d16..492e9619e2 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,30 +29,35 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty UDP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **CPS on empty UDP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /${dest_mask} route entries.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -94,9 +99,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.robot
deleted file mode 100644
index ce94376c73..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.robot
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_4096 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-nat44ed-h4096-p63-s258048-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | nat-ed
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight UDP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, UDP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.0.0.0
-| ${dest_mask}= | ${20}
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${20}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.3
-| ${out_mask}= | ${20}
-# Scale settings
-| ${n_hosts}= | ${4096}
-| ${n_ports}= | ${63}
-| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
-| ${transaction_scale}= | ${n_sessions}
-| ${packets_per_transaction_and_direction}= | ${33}
-# Traffic profile
-| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
-| ${transaction_type}= | udp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot
new file mode 100644
index 0000000000..1829f5d357
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_4096 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed-h4096-p63-s258048-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight UDP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, UDP header and static \
+| ... | payload. \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${20}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${20}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.3
+| ${out_mask}= | ${20}
+# Scale settings
+| ${n_hosts}= | ${4096}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${transaction_scale}= | ${n_sessions}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${30000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 UDP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 UDP sessions number on DUT1 node
+
+*** Test Cases ***
+| 100B-1c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.robot
index 66407ad2df..a05a3d8ec0 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 endpoint-dependent mode
-| ... | performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput NAT44 endpoint-dependent mode
+| ... | performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | one static IPv4 /${dest_mask} route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L4 flows (uni-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L4 flows (uni-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,7 +80,7 @@
# NAT settings
| ${nat_mode}= | endpoint-dependent
| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${8}
+| ${in_mask}= | ${20}
| ${out_net}= | 68.142.68.0
| ${out_net_end}= | 68.142.68.3
| ${out_mask}= | ${30}
@@ -94,9 +99,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot
index 46be534d1a..c82c8b115e 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -29,30 +29,35 @@
|
| Test Template | Local Template
|
-| Documentation | *CPS on empty UDP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **CPS on empty UDP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and
-| ... | one static IPv4 /${dest_mask} route entries.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L7 flows (${cps} bi-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -96,9 +101,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.robot
deleted file mode 100644
index ca319770d7..0000000000
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.robot
+++ /dev/null
@@ -1,137 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_PPS | DRV_VFIO_PCI
-| ... | SCALE | HOSTS_65536 | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4udp-nat44ed-h65536-p63-s4128768-pps
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | nat-ed
-|
-| Test Template | Local Template
-|
-| # TODO CSIT-1765: Unify suite Documentation.
-| Documentation | *PPS on lightweight UDP transactions with NAT44ED*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4\
-| ... | routing and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains client and server ASTF programs, generating packets containing\
-| ... | Ethernet header, IPv4 header, UDP header and static payload.\
-| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 2
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L7
-| ${overhead}= | ${0}
-# IP settings
-| ${tg_if1_ip4}= | 10.0.0.2
-| ${tg_if1_mask}= | ${20}
-| ${tg_if2_ip4}= | 12.0.0.2
-| ${tg_if2_mask}= | ${20}
-| ${dut1_if1_ip4}= | 10.0.0.1
-| ${dut1_if1_mask}= | ${24}
-| ${dut1_if2_ip4}= | 12.0.0.1
-| ${dut1_if2_mask}= | ${24}
-| ${dest_net}= | 20.0.0.0
-| ${dest_mask}= | ${16}
-# NAT settings
-| ${nat_mode}= | endpoint-dependent
-| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${16}
-| ${out_net}= | 68.142.68.0
-| ${out_net_end}= | 68.142.68.63
-| ${out_mask}= | ${26}
-# Scale settings
-| ${n_hosts}= | ${65536}
-| ${n_ports}= | ${63}
-| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
-| ${transaction_scale}= | ${n_sessions}
-| ${packets_per_transaction_and_direction}= | ${33}
-# Main heap size multiplicator
-| ${heap_size_mult}= | ${2}
-# Traffic profile
-| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
-| ${transaction_type}= | udp_pps
-| ${disable_latency}= | ${True}
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | ${pre_stats}= | Create List
-| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
-| | ... | vpp-clear-runtime
-| | Set Test Variable | ${pre_stats}
-| | ${post_stats}= | Create List
-| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
-| | ... | vpp-show-runtime
-| | Set Test Variable | ${post_stats}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize layer interface
-| | And Initialize IPv4 forwarding for NAT44 in circular topology
-| | And Initialize NAT44 endpoint-dependent mode in circular topology
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot
new file mode 100644
index 0000000000..e7c3029064
--- /dev/null
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot
@@ -0,0 +1,171 @@
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP4FWD | NAT44 | UDP | UDP_TPUT | DRV_VFIO_PCI
+| ... | SCALE | HOSTS_65536 | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udp-nat44ed-h65536-p63-s4128768-tput
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance | nat-ed
+|
+| Test Template | Local Template
+|
+| # TODO CSIT-1765: Unify suite Documentation.
+| Documentation | **TPUT on lightweight UDP transactions with NAT44ED**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
+| ... | routing and two static IPv4 /24 route entries. DUT1 is tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains client and server ASTF programs, generating packets \
+| ... | containing Ethernet header, IPv4 header, UDP header and static \
+| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L7
+| ${overhead}= | ${0}
+# IP settings
+| ${tg_if1_ip4}= | 10.0.0.2
+| ${tg_if1_mask}= | ${20}
+| ${tg_if2_ip4}= | 12.0.0.2
+| ${tg_if2_mask}= | ${20}
+| ${dut1_if1_ip4}= | 10.0.0.1
+| ${dut1_if1_mask}= | ${24}
+| ${dut1_if2_ip4}= | 12.0.0.1
+| ${dut1_if2_mask}= | ${24}
+| ${dest_net}= | 20.0.0.0
+| ${dest_mask}= | ${16}
+# NAT settings
+| ${nat_mode}= | endpoint-dependent
+| ${in_net}= | 192.168.0.0
+| ${in_mask}= | ${16}
+| ${out_net}= | 68.142.68.0
+| ${out_net_end}= | 68.142.68.63
+| ${out_mask}= | ${26}
+# Scale settings
+| ${n_hosts}= | ${65536}
+| ${n_ports}= | ${63}
+| ${n_sessions}= | ${${n_hosts} * ${n_ports}}
+| ${transaction_scale}= | ${n_sessions}
+| ${packets_per_transaction_and_direction}= | ${ASTF_N_DATA_FRAMES}
+# Main heap size multiplicator
+| ${heap_size_mult}= | ${2}
+# Ramp-up settings
+| ${ramp_up_rate}= | ${30000}
+# Traffic profile
+| ${traffic_profile}= | trex-astf-ethip4udp-${n_hosts}h-pps
+| ${transaction_type}= | udp_pps
+| ${disable_latency}= | ${True}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| | ${pre_stats}= | Create List
+| | ... | vpp-clear-stats | vpp-enable-packettrace | vpp-enable-elog
+| | ... | vpp-clear-runtime
+| | Set Test Variable | ${pre_stats}
+| | ${post_stats}= | Create List
+| | ... | vpp-show-stats | vpp-show-packettrace | vpp-show-elog
+| | ... | vpp-show-runtime
+| | Set Test Variable | ${post_stats}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv4 forwarding for NAT44 in circular topology
+| | And Initialize NAT44 endpoint-dependent mode in circular topology
+| | Then Send ramp-up traffic
+| | And Verify NAT44 UDP sessions number on DUT1 node
+| | And Find NDR and PDR intervals using optimized search
+| | And Verify NAT44 UDP sessions number on DUT1 node
+
+*** Test Cases ***
+| 100B-1c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 1C
+| | frame_size=${100} | phy_cores=${1}
+
+| 100B-2c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 2C
+| | frame_size=${100} | phy_cores=${2}
+
+| 100B-4c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 100B | 4C
+| | frame_size=${100} | phy_cores=${4}
+
+| 1518B-1c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.robot
index f1c1576848..99d303e15b 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput NAT44 endpoint-dependent mode
-| ... | performance test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput NAT44 endpoint-dependent mode
+| ... | performance test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and\
-| ... | one static IPv4 /${dest_mask} route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | and one static IPv4 /${dest_mask} route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contain L4 flows (uni-directional UDP flows) with all packets\
-| ... | containing Ethernet header, IPv4 header with UDP header and static\
-| ... | payload. MAC addresses are matching MAC addresses of the TG node\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contain L4 flows (uni-directional UDP flows) with all packets \
+| ... | containing Ethernet header, IPv4 header with UDP header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* Benchmarking Methodology\
-| ... | for Network Security Device Performance\
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** Benchmarking \
+| ... | Methodology for Network Security Device Performance \
| ... | (draft-ietf-bmwg-ngfw-performance-03).
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | nat_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | nat_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,7 +80,7 @@
# NAT settings
| ${nat_mode}= | endpoint-dependent
| ${in_net}= | 192.168.0.0
-| ${in_mask}= | ${8}
+| ${in_mask}= | ${16}
| ${out_net}= | 68.142.68.0
| ${out_net_end}= | 68.142.68.63
| ${out_mask}= | ${26}
@@ -96,9 +101,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs NAT44 ${nat_mode} configuration.
+| | ... | - **[Cfg]** DUT runs NAT44 ${nat_mode} configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4/regenerate_testcases.py b/tests/vpp/perf/ip4/regenerate_testcases.py
index ec754aa261..e22f6de5c3 100755
--- a/tests/vpp/perf/ip4/regenerate_testcases.py
+++ b/tests/vpp/perf/ip4/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr.robot
index 6715f40ccc..3fd9b7e26d 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,35 +22,43 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with IEEE 802.1Q and VXLANoIPv4
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-Dot1Q-IPv4 for L2 switching of IPv4\
+| Documentation | **RFC2544: Pkt throughput L2BD with IEEE 802.1Q and \
+| ... | VXLANoIPv4 test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-Dot1Q-IPv4 for L2 switching of \
+| ... | IPv4. \
| ... | on TG-DUTn. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUTs.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with 100 L2\
-| ... | bridge domains. VXLAN tunnels are configured between L2BDs on DUT1 and\
-| ... | DUT2. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, up to 64,5k\
-| ... | flows per flow-group) with all packets containing Ethernet header, IEEE\
-| ... | 802.1Q header, IPv4 header with IP protocol=61 and static payload.\
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with 100 \
+| ... | L2 \
+| ... | bridge domains. VXLAN tunnels are configured between L2BDs on DUT1 and \
+| ... | DUT2. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, up to 64,5k \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IEEE \
+| ... | 802.1Q header, IPv4 header with IP protocol=61 and static payload. \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -61,7 +69,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${50}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-dot1qip4-vlan100ip4src254ip4dst254
+| ${traffic_profile}= | trex-stl-dot1qip4-vlan100ip4src254ip4dst254
# Number of VXLAN tunnels
| ${vxlan_count}= | ${100}
@@ -69,9 +77,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD forwarding config with VLAN and VXLAN and\
-| | ... | uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD forwarding config with VLAN and \
+| | ... | VXLAN and uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan-ndrpdr.robot
index fc6c2a0a2b..16b8c25c3a 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,35 +22,42 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with IEEE 802.1Q and VXLANoIPv4
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-Dot1Q-IPv4 for L2 switching of IPv4\
+| Documentation | **RFC2544: Pkt throughput L2BD with IEEE 802.1Q and \
+| ... | VXLANoIPv4 test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-Dot1Q-IPv4 for L2 switching of \
+| ... | IPv4. \
| ... | on TG-DUTn. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUTs.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with 10 L2\
-| ... | bridge domains. VXLAN tunnels are configured between L2BDs on DUT1 and\
-| ... | DUT2. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, up to 64,5k\
-| ... | flows per flow-group) with all packets containing Ethernet header, IEEE\
-| ... | 802.1Q header, IPv4 header with IP protocol=61 and static payload.\
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with 10 L2 \
+| ... | bridge domains. VXLAN tunnels are configured between L2BDs on DUT1 and \
+| ... | DUT2. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, up to 64,5k \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IEEE \
+| ... | 802.1Q header, IPv4 header with IP protocol=61 and static payload. \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -61,7 +68,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${50}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-dot1qip4-vlan10ip4src254ip4dst254
+| ${traffic_profile}= | trex-stl-dot1qip4-vlan10ip4src254ip4dst254
# Number of VXLAN tunnels
| ${vxlan_count}= | ${10}
@@ -69,9 +76,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD forwarding config with VLAN and VXLAN and\
-| | ... | uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD forwarding config with VLAN and \
+| | ... | VXLAN and uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr.robot
index 9e9fc55066..9844ef31e0 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,35 +22,42 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with IEEE 802.1Q and VXLANoIPv4
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-Dot1Q-IPv4 for L2 switching of IPv4\
+| Documentation | **RFC2544: Pkt throughput L2BD with IEEE 802.1Q and \
+| ... | VXLANoIPv4 test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-Dot1Q-IPv4 for L2 switching of \
+| ... | IPv4. \
| ... | on TG-DUTn. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUTs.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with 1k L2\
-| ... | bridge domains. VXLAN tunnels are configured between L2BDs on DUT1 and\
-| ... | DUT2. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, up to 64,5k\
-| ... | flows per flow-group) with all packets containing Ethernet header, IEEE\
-| ... | 802.1Q header, IPv4 header with IP protocol=61 and static payload.\
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with 1k L2 \
+| ... | bridge domains. VXLAN tunnels are configured between L2BDs on DUT1 and \
+| ... | DUT2. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, up to 64,5k \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IEEE \
+| ... | 802.1Q header, IPv4 header with IP protocol=61 and static payload. \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -61,16 +68,16 @@
| ${osi_layer}= | L2
| ${overhead}= | ${50}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-dot1qip4-vlan1kip4src254ip4dst254
+| ${traffic_profile}= | trex-stl-dot1qip4-vlan1kip4src254ip4dst254
# Number of VXLAN tunnels
| ${vxlan_count}= | ${1000}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD forwarding config with VLAN and VXLAN and\
-| | ... | uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD forwarding config with VLAN and \
+| | ... | VXLAN and uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr.robot
index 3786e2bef9..7382e08566 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,35 +22,42 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with IEEE 802.1Q and VXLANoIPv4
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-Dot1Q-IPv4 for L2 switching of IPv4\
+| Documentation | **RFC2544: Pkt throughput L2BD with IEEE 802.1Q and \
+| ... | VXLANoIPv4 test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-Dot1Q-IPv4 for L2 switching of \
+| ... | IPv4. \
| ... | on TG-DUTn. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUTs.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with 1 L2\
-| ... | bridge domains. VXLAN tunnels are configured between L2BDs on DUT1 and\
-| ... | DUT2. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, up to 64,5k\
-| ... | flows per flow-group) with all packets containing Ethernet header, IEEE\
-| ... | 802.1Q header, IPv4 header with IP protocol=61 and static payload.\
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with 1 L2 \
+| ... | bridge domains. VXLAN tunnels are configured between L2BDs on DUT1 and \
+| ... | DUT2. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, up to 64,5k \
+| ... | flows per flow-group) with all packets containing Ethernet header, \
+| ... | IEEE \
+| ... | 802.1Q header, IPv4 header with IP protocol=61 and static payload. \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -61,16 +68,16 @@
| ${osi_layer}= | L2
| ${overhead}= | ${50}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-dot1qip4-vlan1ip4src254ip4dst254
+| ${traffic_profile}= | trex-stl-dot1qip4-vlan1ip4src254ip4dst254-2
# Number of VXLAN tunnels
| ${vxlan_count}= | ${1}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD forwarding config with VLAN and VXLAN and\
-| | ... | uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD forwarding config with VLAN and \
+| | ... | VXLAN and uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpuhw-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpuhw-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..2dc8e88e14
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpuhw-ip4base-ndrpdr.robot
@@ -0,0 +1,146 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/overlay/gtpu.robot
+
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | IP4FWD | IP4BASE | ENCAP | GTPU | GTPU_HWACCEL
+| ... | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4gtpuhw-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput GTPU test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-GTPU on DUT1-DUT2, \
+| ... | Eth-IPv4 on TG-DUTn for IPv4 routing over GTPU tunnel.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and static routes. GTPU tunnel is configured on each DUT and \
+| ... | enabled GTPU offload RX. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups with all packets containing Ethernet \
+| ... | header, IPv4 header with IP protocol=61 and static payload. MAC \
+| ... | addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | gtpu_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${36}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs GTPU routing config, and Enable GTPU offload \
+| | ... | RX config. Each DUT uses ${phy_cores} physical core(s) for worker \
+| | ... | threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IP4 forwarding with GTPU tunnel in 3-node circular topology
+| | ... | offload=${True}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4gtpuhw-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..e53a267242
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-ndrpdr.robot
@@ -0,0 +1,143 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/overlay/gtpu.robot
+
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | IP4FWD | IP4BASE | ENCAP | GTPU | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4gtpusw-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput GTPU test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-GTPU on DUT1-DUT2, \
+| ... | Eth-IPv4 on TG-DUTn for IPv4 routing over GTPU tunnel.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and static routes. GTPU tunnel is configured between DUT1 \
+| ... | and DUT2. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups with all packets containing Ethernet \
+| ... | header, IPv4 header with IP protocol=61 and static payload. MAC \
+| ... | addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | gtpu_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${36}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs GTPU routing config. Each DUT uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IP4 forwarding with GTPU tunnel in 3-node circular topology
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4gtpusw-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-reassembly-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-reassembly-ndrpdr.robot
new file mode 100644
index 0000000000..e254aba99d
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-reassembly-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/overlay/gtpu.robot
+
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | IP4FWD | IP4BASE | ENCAP | GTPU | DRV_VFIO_PCI
+| ... | REASSEMBLY | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4gtpusw-ip4base-reassembly
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput GTPU test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-GTPU on DUT1-DUT2, \
+| ... | Eth-IPv4 on TG-DUTn for IPv4 routing over GTPU tunnel.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and static routes. GTPU tunnel is configured between DUT1 \
+| ... | and DUT2. DUT1 and DUT2 are tested with ${nic_name}. MTU on DUT-DUT \
+| ... | link is lowered to induce packet fragmentation and reassembly.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups with all packets containing Ethernet \
+| ... | header, IPv4 header with IP protocol=61 and static payload. MAC \
+| ... | addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | gtpu_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${36}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
+
+*** Keywords ***
+| Local Template
+| |
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs GTPU routing config. Each DUT uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Lower DUT1-DUT2 MTU For Fragmentation
+| | And Initialize IP4 forwarding with GTPU tunnel in 3-node circular topology
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4gtpusw-ip4base-reassembly-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip4-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip4-ip4base-ndrpdr.robot
index 9527f7aad7..d3920a0140 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip4-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip4-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -25,34 +25,39 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput Lisp test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-LISP-IPv4 on DUT1-DUT2,\
+| Documentation | **RFC2544: Pkt throughput Lisp test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-LISP-IPv4 on DUT1-DUT2, \
| ... | Eth-IPv4 on TG-DUTn for IPv4 routing over LISPoIPv4 tunnel.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and static routes. LISPoIPv4 tunnel is configured between DUT1\
-| ... | and DUT2. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and static routes. LISPoIPv4 tunnel is configured between DUT1 \
+| ... | and DUT2. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC6830.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC6830.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lisp_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lisp_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -63,15 +68,15 @@
| ${osi_layer}= | L3
| ${overhead}= | ${8}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 LISP remote static mappings and whitelist filters\
-| | ... | config.
+| | ... | - **[Cfg]** DUT runs IPv4 LISP remote static mappings and whitelist \
+| | ... | filters config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip6-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip6-ip4base-ndrpdr.robot
index 35fb3baa56..6e4a2007bd 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip6-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip6-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -25,34 +25,39 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput Lisp test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-LISP-IPv6 on DUT1-DUT2,\
+| Documentation | **RFC2544: Pkt throughput Lisp test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-LISP-IPv6 on DUT1-DUT2, \
| ... | Eth-IPv4 on TG-DUTn for IPv4 routing over LISPoIPv6 tunnel.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4\
-| ... | routing and static routes. LISPoIPv6 tunnel is configured between DUT1\
-| ... | and DUT2. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
+| ... | routing and static routes. LISPoIPv6 tunnel is configured between DUT1 \
+| ... | and DUT2. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC6830.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC6830.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lisp_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lisp_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -63,15 +68,15 @@
| ${osi_layer}= | L3
| ${overhead}= | ${48}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 LISP remote static mappings and whitelist filters\
-| | ... | config.
+| | ... | - **[Cfg]** DUT runs IPv6 LISP remote static mappings and whitelist \
+| | ... | filters config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..bd84cebb14
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | ASYNC | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard1000tnlhwasync-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${1000}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And VPP Enable Wireguard Async Mode on all VPP DUTs
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard1000tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..b3c4ecb830
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr.robot
@@ -0,0 +1,169 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard1000tnlsw-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${1000}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard1000tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..8db420d91b
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_100
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | ASYNC | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard100tnlhwasync-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${100}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And VPP Enable Wireguard Async Mode on all VPP DUTs
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard100tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard100tnlsw-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard100tnlsw-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..f476168555
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard100tnlsw-ip4base-ndrpdr.robot
@@ -0,0 +1,169 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_100
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard100tnlsw-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${100}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard100tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..0f3596b8a6
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | ASYNC | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard1tnlhwasync-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${1}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And VPP Enable Wireguard Async Mode on all VPP DUTs
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard1tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1tnlsw-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1tnlsw-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..54156cda56
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1tnlsw-ip4base-ndrpdr.robot
@@ -0,0 +1,169 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard1tnlsw-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | single WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) \
+| ... | is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${1}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard TUNNEL. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..744f3e9dcc
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_2
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | ASYNC | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard2tnlhwasync-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${2}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And VPP Enable Wireguard Async Mode on all VPP DUTs
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard2tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard2tnlsw-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard2tnlsw-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..de569c7f2a
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard2tnlsw-ip4base-ndrpdr.robot
@@ -0,0 +1,169 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_2
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard2tnlsw-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${2}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard2tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..8a31bcd8c7
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | ASYNC | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard4tnlhwasync-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${4}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And VPP Enable Wireguard Async Mode on all VPP DUTs
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard4tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard4tnlsw-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard4tnlsw-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..3f29a3c12f
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard4tnlsw-ip4base-ndrpdr.robot
@@ -0,0 +1,169 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard4tnlsw-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${4}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard4tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..5c696e2c06
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr.robot
@@ -0,0 +1,170 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_8
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | ASYNC | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard8tnlhwasync-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance | cryptohw
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | HW_DH895xcc
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${8}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And VPP Enable Wireguard Async Mode on all VPP DUTs
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard8tnlhwasync-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard8tnlsw-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard8tnlsw-ip4base-ndrpdr.robot
new file mode 100644
index 0000000000..591823d266
--- /dev/null
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard8tnlsw-ip4base-ndrpdr.robot
@@ -0,0 +1,169 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| Resource | resources/libraries/robot/wireguard/wireguard.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_8
+| ... | IP4FWD | NIC_Intel-X710 | WIREGUARD | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip4udpwireguard8tnlsw-ip4base
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv4 WireGuard tunnel mode.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 on TG-DUTn, \
+| ... | Eth-IPv4-UDP-WireGuard on DUT1-DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with \
+| ... | multiple WireGuard tunnels between them. DUTs get IPv4 traffic from TG, \
+| ... | and send to another DUT, where packets are decrypted and sent back \
+| ... | to TG.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, number of flows per flow-group equals to \
+| ... | number of WireGuard tunnels) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces. Incrementing of IP.src and IP.dst \
+| ... | are applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
+
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
+| ... | wireguard_plugin.so | crypto_openssl_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${60}
+| ${tg_if1_ip4}= | 192.168.10.2
+| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if2_ip4}= | 200.0.0.1
+| ${dut2_if1_ip4}= | 200.0.0.2
+| ${dut2_if2_ip4}= | 192.168.20.1
+| ${tg_if2_ip4}= | 192.168.20.2
+| ${wg_if1_ip4}= | 1.0.0.1
+| ${wg_if2_ip4}= | 1.0.0.2
+| ${raddr_ip4}= | 20.0.0.0
+| ${laddr_ip4}= | 10.0.0.0
+| ${n_tunnels}= | ${8}
+| ${listen_port}= | ${51820}
+| ${keepalive_time}= | ${256}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs wireguard tunnel config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize WireGuard in 3-node circular topology
+| | And VPP WireGuard Create Tunnel Interfaces On DUTs
+| | ... | ${nodes} | ${DUT1_${int}2}[0] | ${DUT2_${int}1}[0]
+| | ... | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${DUT1_${int}2_mac}[0]
+| | ... | ${DUT2_${int}1_mac}[0] | ${wg_if1_ip4} | ${wg_if2_ip4}
+| | ... | ${n_tunnels} | ${listen_port} | ${keepalive_time}
+| | ... | ${laddr_ip4} | ${raddr_ip4}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 64B-1c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 64B-4c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
+| 1518B-1c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip4udpwireguard8tnlsw-ip4base-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-ndrpdr.robot
index 4a0bc51d00..48f3d06f79 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,34 +22,41 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with VXLANoIPv4 test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4 on\
+| Documentation | **RFC2544: Pkt throughput L2BD with VXLANoIPv4 test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4 \
+| ... | on \
| ... | TG-DUTn. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUTs.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge\
-| ... | domain. VXLAN tunnels are configured between L2BDs on DUT1 and DUT2.\
-| ... | DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2
+| ... | bridge-\
+| ... | domain. VXLAN tunnels are configured between L2BDs on DUT1 and DUT2. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,14 +67,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${50}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD forwarding config with VXLAN and uses\
+| | ... | - **[Cfg]** Each DUT runs L2BD forwarding config with VXLAN and uses \
| | ... | ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-ndrpdr.robot
index 9537741850..fcb8d3758b 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -22,34 +22,40 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC with VXLANoIPv4 test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross-connect on TG-DUTn.
-| ... | Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
-| ... | connect. VXLAN tunnels are configured between L2XCs on DUT1 and DUT2.
-| ... | DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
+| Documentation | **RFC2544: Pkt throughput L2XC with VXLANoIPv4 test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross-connect on \
+| ... | TG-DUTn. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between \
+| ... | DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | cross- connect. VXLAN tunnels are configured between L2XCs on DUT1 \
+| ... | and DUT2. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,14 +66,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${50}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config.
+| | ... | - **[Cfg]** DUT runs L2XC forwarding config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1024tun-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1024tun-ip4base-ndrpdr.robot
index 245bc7ebf7..3894c09ede 100644
--- a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1024tun-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1024tun-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,32 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput GENEVE tunnel L3 mode performance
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput GENEVE tunnel L3 mode performance \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 between TG-if1 and DUT1-if1 and\
-| ... | Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 for IPv4\
-| ... | routing over GENEVE tunnels.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing over\
-| ... | ${n_tunnels} GENEVE tunnels and ${${4} * ${n_tunnels}} static IPv4 /24\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 between TG-if1 and \
+| ... | DUT1-if1 and Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 \
+| ... | for IPv4 routing over GENEVE tunnels.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | over ${n_tunnels} GENEVE tunnels and ${${4} * ${n_tunnels}} static \
+| ... | IPv4 /24 \
| ... | route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC791, RFC768,
-| ... | RFC8926.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC791, \
+| ... | RFC768 and RFC8926.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | geneve_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | geneve_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,15 +81,15 @@
| ... | local=1.1.1.2 | remote=1.1.1.1 | vni=${1}
| ... | src_ip=10.128.1.0 | dst_ip=10.0.1.0 | ip_mask=${24} | if_ip=11.0.1.2
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-geneve-${n_tunnels}t
+| ${traffic_profile}= | trex-stl-ethip4-geneve-${n_tunnels}t
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs GENEVE ${gen_mode} mode configuration.
+| | ... | - **[Cfg]** DUT runs GENEVE ${gen_mode} mode configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -94,7 +100,6 @@
| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
| |
| | Set Test Variable | \${frame_size}
-| | Set Test Variable | \${rxq_ratio} | ${1}
| |
| | Given Set Max Rate And Jumbo
| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
diff --git a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr.robot
index 42444211cb..71a2b10a94 100644
--- a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,32 +28,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput GENEVE tunnel L3 mode performance
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput GENEVE tunnel L3 mode performance \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 between TG-if1 and DUT1-if1 and\
-| ... | Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 for IPv4\
-| ... | routing over GENEVE tunnels.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing over\
-| ... | ${n_tunnels} GENEVE tunnels and ${${4} * ${n_tunnels}} static IPv4 /24\
-| ... | route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 between TG-if1 and \
+| ... | DUT1-if1 and Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 \
+| ... | for IPv4 routing over GENEVE tunnels.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | over ${n_tunnels} GENEVE tunnels and ${${4} * ${n_tunnels}} static \
+| ... | IPv4 /24 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC791, RFC768,
-| ... | RFC8926.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC791, \
+| ... | RFC768 and RFC8926.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | geneve_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | geneve_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,15 +80,15 @@
| ... | local=1.1.1.2 | remote=1.1.1.1 | vni=${1}
| ... | src_ip=10.128.1.0 | dst_ip=10.0.1.0 | ip_mask=${24} | if_ip=11.0.1.2
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-geneve-${n_tunnels}t
+| ${traffic_profile}= | trex-stl-ethip4-geneve-${n_tunnels}t
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs GENEVE ${gen_mode} mode configuration.
+| | ... | - **[Cfg]** DUT runs GENEVE ${gen_mode} mode configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -94,7 +99,6 @@
| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
| |
| | Set Test Variable | \${frame_size}
-| | Set Test Variable | \${rxq_ratio} | ${1}
| |
| | Given Set Max Rate And Jumbo
| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
diff --git a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr.robot
index b052db0076..d6faf04f95 100644
--- a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,32 +28,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput GENEVE tunnel L3 mode performance
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput GENEVE tunnel L3 mode performance \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 between TG-if1 and DUT1-if1 and\
-| ... | Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 for IPv4\
-| ... | routing over GENEVE tunnel.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing over\
-| ... | GENEVE tunnel and 4 static IPv4 /24 route entries.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 between TG-if1 and \
+| ... | DUT1-if1 and Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 \
+| ... | for IPv4 routing over GENEVE tunnel.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | over GENEVE tunnel and 4 static IPv4 /24 route entries. \
| ... | DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC791, RFC768,
-| ... | RFC8926.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC791, \
+| ... | RFC768 and RFC8926.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | geneve_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | geneve_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,15 +80,15 @@
| ... | local=1.1.1.2 | remote=1.1.1.1 | vni=${1}
| ... | src_ip=10.128.1.0 | dst_ip=10.0.1.0 | ip_mask=${24} | if_ip=11.0.1.2
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-geneve-${n_tunnels}t
+| ${traffic_profile}= | trex-stl-ethip4-geneve-${n_tunnels}t
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs GENEVE ${gen_mode} mode configuration.
+| | ... | - **[Cfg]** DUT runs GENEVE ${gen_mode} mode configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -94,7 +99,6 @@
| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
| |
| | Set Test Variable | \${frame_size}
-| | Set Test Variable | \${rxq_ratio} | ${1}
| |
| | Given Set Max Rate And Jumbo
| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
diff --git a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr.robot
index 684b893621..d7df74b18b 100644
--- a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,32 +28,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput GENEVE tunnel L3 mode performance
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput GENEVE tunnel L3 mode performance \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 between TG-if1 and DUT1-if1 and\
-| ... | Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 for IPv4\
-| ... | routing over GENEVE tunnels.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing over\
-| ... | ${n_tunnels} GENEVE tunnels and ${${4} * ${n_tunnels}} static IPv4 /24\
-| ... | route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 between TG-if1 and \
+| ... | DUT1-if1 and Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 \
+| ... | for IPv4 routing over GENEVE tunnels.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | over ${n_tunnels} GENEVE tunnels and ${${4} * ${n_tunnels}} static \
+| ... | IPv4 /24 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC791, RFC768,
-| ... | RFC8926.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC791, \
+| ... | RFC768 and RFC8926.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | geneve_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | geneve_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,15 +80,15 @@
| ... | local=1.1.1.2 | remote=1.1.1.1 | vni=${1}
| ... | src_ip=10.128.1.0 | dst_ip=10.0.1.0 | ip_mask=${24} | if_ip=11.0.1.2
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-geneve-${n_tunnels}t
+| ${traffic_profile}= | trex-stl-ethip4-geneve-${n_tunnels}t
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs GENEVE ${gen_mode} mode configuration.
+| | ... | - **[Cfg]** DUT runs GENEVE ${gen_mode} mode configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -94,7 +99,6 @@
| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
| |
| | Set Test Variable | \${frame_size}
-| | Set Test Variable | \${rxq_ratio} | ${1}
| |
| | Given Set Max Rate And Jumbo
| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
diff --git a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr.robot
index 78da203b42..849c5e47da 100644
--- a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,32 +28,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput GENEVE tunnel L3 mode performance
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput GENEVE tunnel L3 mode performance \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 between TG-if1 and DUT1-if1 and\
-| ... | Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 for IPv4\
-| ... | routing over GENEVE tunnels.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing over\
-| ... | ${n_tunnels} GENEVE tunnels and ${${4} * ${n_tunnels}} static IPv4 /24\
-| ... | route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 between TG-if1 and \
+| ... | DUT1-if1 and Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 \
+| ... | for IPv4 routing over GENEVE tunnels.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | over ${n_tunnels} GENEVE tunnels and ${${4} * ${n_tunnels}} static \
+| ... | IPv4 /24 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC791, RFC768,
-| ... | RFC8926.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC791, \
+| ... | RFC768 and RFC8926.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | geneve_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | geneve_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,15 +80,15 @@
| ... | local=1.1.1.2 | remote=1.1.1.1 | vni=${1}
| ... | src_ip=10.128.1.0 | dst_ip=10.0.1.0 | ip_mask=${24} | if_ip=11.0.1.2
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-geneve-${n_tunnels}t
+| ${traffic_profile}= | trex-stl-ethip4-geneve-${n_tunnels}t
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs GENEVE ${gen_mode} mode configuration.
+| | ... | - **[Cfg]** DUT runs GENEVE ${gen_mode} mode configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -94,7 +99,6 @@
| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
| |
| | Set Test Variable | \${frame_size}
-| | Set Test Variable | \${rxq_ratio} | ${1}
| |
| | Given Set Max Rate And Jumbo
| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
diff --git a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr.robot
index 923d26c0fb..9bee1f85c0 100644
--- a/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,32 +28,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput GENEVE tunnel L3 mode performance
-| ... | test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput GENEVE tunnel L3 mode performance \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 between TG-if1 and DUT1-if1 and\
-| ... | Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 for IPv4\
-| ... | routing over GENEVE tunnels.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing over\
-| ... | ${n_tunnels} GENEVE tunnels and ${${4} * ${n_tunnels}} static IPv4 /24\
-| ... | route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 between TG-if1 and \
+| ... | DUT1-if1 and Eth-IPv4-UDP-GENEVE-Eth-IPv4 between DUT1-if2 and TG-if2 \
+| ... | for IPv4 routing over GENEVE tunnels.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing \
+| ... | over ${n_tunnels} GENEVE tunnels and ${${4} * ${n_tunnels}} static \
+| ... | IPv4 /24 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1 flow per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC791, RFC768,
-| ... | RFC8926.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC791, \
+| ... | RFC768 and RFC8926.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | geneve_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | geneve_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,15 +80,15 @@
| ... | local=1.1.1.2 | remote=1.1.1.1 | vni=${1}
| ... | src_ip=10.128.1.0 | dst_ip=10.0.1.0 | ip_mask=${24} | if_ip=11.0.1.2
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-geneve-${n_tunnels}t
+| ${traffic_profile}= | trex-stl-ethip4-geneve-${n_tunnels}t
*** Keywords ***
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs GENEVE ${gen_mode} mode configuration.
+| | ... | - **[Cfg]** DUT runs GENEVE ${gen_mode} mode configuration. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -94,7 +99,6 @@
| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
| |
| | Set Test Variable | \${frame_size}
-| | Set Test Variable | \${rxq_ratio} | ${1}
| |
| | Given Set Max Rate And Jumbo
| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
diff --git a/tests/vpp/perf/ip4_tunnels/regenerate_testcases.py b/tests/vpp/perf/ip4_tunnels/regenerate_testcases.py
index ec754aa261..e22f6de5c3 100755
--- a/tests/vpp/perf/ip4_tunnels/regenerate_testcases.py
+++ b/tests/vpp/perf/ip4_tunnels/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-dot1q-ip6base-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-dot1q-ip6base-ndrpdr.robot
index c2c734fda9..25ef8d21d4 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-dot1q-ip6base-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-dot1q-ip6base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -21,36 +21,41 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing with IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing. IEEE 802.1Q\
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and two static IPv6 /64 route entries. DUT1 and DUT2 are tested\
-| ... | with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUTs. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 253 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv6 header with IP\
-| ... | protocol=61 and static payload. MAC addresses are matching MAC\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing with IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing. \
+| ... | IEEE 802.1Q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and two static IPv6 /64 route entries. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUTs. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 253 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv6 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -66,14 +71,14 @@
| ${tg_if1_net}= | 2001:1::0
| ${tg_if2_net}= | 2001:2::0
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs IPv6 routing with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs IPv6 routing with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot
index b5bd9f2beb..988d8a0b7a 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -21,35 +21,40 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 allowlist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6
-| ... | routing, two static IPv6 /64 routes and IPv6 ADL security allowlist
-| ... | ingress /64 filter entries applied on links TG - DUT1 and DUT2 - TG.
-| ... | DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv6 header and static
-| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| Documentation | **RFC2544: Pkt throughput IPv6 allowlist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing, two static IPv6 /64 routes and IPv6 ADL security allowlist \
+| ... | ingress /64 filter entries applied on links TG - DUT1 and DUT2 - TG. \
+| ... | DUT1 and DUT2 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv6 header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | adl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | adl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,14 +65,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and allowlist filters config with
+| | ... | - **[Cfg]** DUT runs IPv6 routing and allowlist filters config with \
| | ... | ${phy_cores} phy core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot
index 86aa3cbc8c..6a1d3af577 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -21,34 +21,39 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | classify
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 iAcl whitelist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6
-| ... | routing, two static IPv6 /64 routes and IPv6 iAcl security whitelist
-| ... | ingress /64 filter entries applied on links TG - DUT1 and DUT2 - TG.
-| ... | DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv6 header and generated payload. MAC
+| Documentation | **RFC2544: Pkt throughput IPv6 iAcl whitelist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing, two static IPv6 /64 routes and IPv6 iAcl security whitelist \
+| ... | ingress /64 filter entries applied on links TG - DUT1 and DUT2 - TG. \
+| ... | DUT1 and DUT2 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv6 header and generated payload. MAC \
| ... | addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with
+| | ... | - **[Cfg]** DUT runs IPv6 routing and whitelist filters config with \
| | ... | ${phy_cores} phy core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-ndrpdr.robot
index 0538bb4f3e..49a7ae9462 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -21,33 +21,38 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and two static IPv6 /64 route entries. DUT1 and DUT2\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and two static IPv6 /64 route entries. DUT1 and DUT2 \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG. \
+| ... | on links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv6 header and static payload. MAC \
+| ... | addresses are matching MAC addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -58,14 +63,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot
new file mode 100644
index 0000000000..91f516203a
--- /dev/null
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP6FWD | SCALE | FIB_1M | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6scale1m
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 2x500k static IPv6 /64 route entries. DUT1 and DUT2 tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 500k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
+| ... | address) field is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${500000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv6 forwarding with scaling in circular topology
+| | ... | ${rts_per_flow}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 78B-1c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 78B | 1C
+| | frame_size=${78} | phy_cores=${1}
+
+| 78B-2c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 78B | 2C
+| | frame_size=${78} | phy_cores=${2}
+
+| 78B-4c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 78B | 4C
+| | frame_size=${78} | phy_cores=${4}
+
+| 1518B-1c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot
index 2b0f278a3d..c5d69e44b9 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,34 +21,39 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and 2x100k static IPv6 /64 route entries. DUT1 and DUT2 tested\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 2x100k static IPv6 /64 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,14 +65,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${100000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot
index 58bb8fa77f..67fb2e2f3b 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,34 +21,39 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and 2x100k static IPv6 /64 route entries. DUT1 and DUT2 tested\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 2x100k static IPv6 /64 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,14 +65,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${100000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-rnd
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot
index f4347cd955..adc5309b50 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,34 +21,39 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and 2x10k static IPv6 /64 route entries. DUT1 and DUT2 tested\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 2x10k static IPv6 /64 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,14 +65,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${10000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot
index 343fab263e..5d2bcfbcb2 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,34 +21,39 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and 2x10k static IPv6 /64 route entries. DUT1 and DUT2 tested\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 2x10k static IPv6 /64 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,14 +65,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${10000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-rnd
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot
index 21ea1c3439..78a0dea808 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,34 +21,39 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and 2x1M static IPv6 /64 route entries. DUT1 and DUT2 tested\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 2x1M static IPv6 /64 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,14 +65,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${1000000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot
index f6e2e32191..2acc5a3821 100644
--- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,34 +21,39 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and 2x1M static IPv6 /64 route entries. DUT1 and DUT2 tested\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 2x1M static IPv6 /64 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,14 +65,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${1000000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-rnd
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -85,8 +90,8 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale600k-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale600k-ndrpdr.robot
new file mode 100644
index 0000000000..11214cc8d0
--- /dev/null
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale600k-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP6FWD | SCALE | FIB_600K | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6scale600k
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 6x100k static IPv6 /64 route entries. DUT1 and DUT2 tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
+| ... | address) field is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${100000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 78B-1c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | 78B | 1C
+| | frame_size=${78} | phy_cores=${1}
+
+| 78B-2c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | 78B | 2C
+| | frame_size=${78} | phy_cores=${2}
+
+| 78B-4c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | 78B | 4C
+| | frame_size=${78} | phy_cores=${4}
+
+| 1518B-1c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip6-ip6scale600k-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale600k-rnd-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale600k-rnd-ndrpdr.robot
new file mode 100644
index 0000000000..e915d204cd
--- /dev/null
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale600k-rnd-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP6FWD | IP6_RND | SCALE | FIB_600K
+| ... | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6scale600k-rnd
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 6x10k static IPv6 /64 route entries. DUT1 and DUT2 tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination \
+| ... | address) field is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${100000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst-rnd${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 78B-1c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | 78B | 1C
+| | frame_size=${78} | phy_cores=${1}
+
+| 78B-2c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | 78B | 2C
+| | frame_size=${78} | phy_cores=${2}
+
+| 78B-4c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | 78B | 4C
+| | frame_size=${78} | phy_cores=${4}
+
+| 1518B-1c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip6-ip6scale600k-rnd-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale60k-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale60k-ndrpdr.robot
new file mode 100644
index 0000000000..fbb63c8231
--- /dev/null
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale60k-ndrpdr.robot
@@ -0,0 +1,144 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP6FWD | SCALE | FIB_60K | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6scale60k
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 6x10k static IPv6 /64 route entries. DUT1 and DUT2 tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
+| ... | address) field is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${10000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 78B-1c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | 78B | 1C
+| | frame_size=${78} | phy_cores=${1}
+
+| 78B-2c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | 78B | 2C
+| | frame_size=${78} | phy_cores=${2}
+
+| 78B-4c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | 78B | 4C
+| | frame_size=${78} | phy_cores=${4}
+
+| 1518B-1c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip6-ip6scale60k-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale60k-rnd-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale60k-rnd-ndrpdr.robot
new file mode 100644
index 0000000000..e77670df86
--- /dev/null
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale60k-rnd-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP6FWD | IP6_RND | SCALE | FIB_60K
+| ... | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6scale60k-rnd
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 6x10k static IPv6 /64 route entries. DUT1 and DUT2 tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination \
+| ... | address) field is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${10000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst-rnd${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 78B-1c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | 78B | 1C
+| | frame_size=${78} | phy_cores=${1}
+
+| 78B-2c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | 78B | 2C
+| | frame_size=${78} | phy_cores=${2}
+
+| 78B-4c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | 78B | 4C
+| | frame_size=${78} | phy_cores=${4}
+
+| 1518B-1c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip6-ip6scale60k-rnd-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale6m-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale6m-ndrpdr.robot
new file mode 100644
index 0000000000..c8e84a46cc
--- /dev/null
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale6m-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP6FWD | SCALE | FIB_6M | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6scale6m
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 6x100k static IPv6 /64 route entries. DUT1 and DUT2 tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
+| ... | address) field is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${1000000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 78B-1c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | 78B | 1C
+| | frame_size=${78} | phy_cores=${1}
+
+| 78B-2c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | 78B | 2C
+| | frame_size=${78} | phy_cores=${2}
+
+| 78B-4c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | 78B | 4C
+| | frame_size=${78} | phy_cores=${4}
+
+| 1518B-1c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip6-ip6scale6m-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale6m-rnd-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale6m-rnd-ndrpdr.robot
new file mode 100644
index 0000000000..4e4560b00e
--- /dev/null
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale6m-rnd-ndrpdr.robot
@@ -0,0 +1,145 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP6FWD | IP6_RND | SCALE | FIB_6M
+| ... | DRV_VFIO_PCI | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6scale6m-rnd
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and 6x10k static IPv6 /64 route entries. DUT1 and DUT2 tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination \
+| ... | address) field is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${1000000}
+| ${rxq_ratio}= | ${3}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst-rnd${rts_per_flow}-${nic_pfs}p
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 78B-1c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | 78B | 1C
+| | frame_size=${78} | phy_cores=${1}
+
+| 78B-2c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | 78B | 2C
+| | frame_size=${78} | phy_cores=${2}
+
+| 78B-4c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | 78B | 4C
+| | frame_size=${78} | phy_cores=${4}
+
+| 1518B-1c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip6-ip6scale6m-rnd-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-dot1q-ip6base-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-dot1q-ip6base-ndrpdr.robot
index f34bd6d0b3..83e87ef540 100644
--- a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-dot1q-ip6base-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-dot1q-ip6base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -21,35 +21,40 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing with IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing. IEEE 802.1Q\
-| ... | tagging is applied on link between DUT1-if2 and TG-if2.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and\
-| ... | two static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUT1. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 253 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv6 header with IP\
-| ... | protocol=61 and static payload. MAC addresses are matching MAC\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing with IEEE 802.1Q test \
+| ... | cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing. \
+| ... | IEEE 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | two static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUT1. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 253 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv6 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +70,14 @@
| ${tg_if1_net}= | 2001:1::0
| ${tg_if2_net}= | 2001:2::0
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip6asym-ip6src253
+| ${traffic_profile}= | trex-stl-dot1qip6asym-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs IPv6 routing with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs IPv6 routing with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot
index 5c235b87b2..bd48b015a4 100644
--- a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -21,35 +21,40 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 allowlist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput IPv6 allowlist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6
-| ... | routing, two static IPv6 /64 routes and IPv6 ADL security allowlist
-| ... | ingress /64 filter entries applied on links TG - DUT1.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 \
+| ... | routing, two static IPv6 /64 routes and IPv6 ADL security allowlist \
+| ... | ingress /64 filter entries applied on links TG - DUT1. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv6 header and static
-| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv6 header and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | adl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | adl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -60,14 +65,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and allowlist filters config with
+| | ... | - **[Cfg]** DUT runs IPv6 routing and allowlist filters config with \
| | ... | ${phy_cores} phy core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot
index 0fc0aea6e2..b1845018ae 100644
--- a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -21,34 +21,39 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance | classify
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 iAcl whitelist test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput IPv6 iAcl whitelist test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6
-| ... | routing, two static IPv6 /64 routes and IPv6 iAcl security whitelist
-| ... | ingress /64 filter entries applied on links TG - DUT1.
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv6 header and generated payload. MAC
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 \
+| ... | routing, two static IPv6 /64 routes and IPv6 iAcl security whitelist \
+| ... | ingress /64 filter entries applied on links TG - DUT1. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv6 header and generated payload. MAC \
| ... | addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with
+| | ... | - **[Cfg]** DUT runs IPv6 routing and whitelist filters config with \
| | ... | ${phy_cores} phy core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ndrpdr.robot
index 3f9531afc0..197564aaad 100644
--- a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -21,32 +21,37 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *Packet throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **Packet throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and two\
-| ... | static IPv6 /64 route entries. DUT1 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | and two static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -57,14 +62,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot
new file mode 100644
index 0000000000..7af18ae05f
--- /dev/null
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot
@@ -0,0 +1,144 @@
+# Copyright (c) 2023 Intel and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
+# 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.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+|
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
+| ... | NIC_Intel-X710 | ETH | IP6FWD | SCALE | FIB_1M | DRV_VFIO_PCI
+| ... | RXQ_SIZE_0 | TXQ_SIZE_0
+| ... | ethip6-ip6scale1m
+|
+| Suite Setup | Setup suite topology interfaces | performance
+| Suite Teardown | Tear down suite | performance
+| Test Setup | Setup test | performance
+| Test Teardown | Tear down test | performance
+|
+| Test Template | Local Template
+|
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | 2x500k static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 500k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
+| ... | address) field is applied to both streams.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
+| ${crypto_type}= | ${None}
+| ${nic_name}= | Intel-X710
+| ${nic_driver}= | vfio-pci
+| ${nic_rxq_size}= | 0
+| ${nic_txq_size}= | 0
+| ${nic_pfs}= | 2
+| ${nic_vfs}= | 0
+| ${osi_layer}= | L3
+| ${overhead}= | ${0}
+| ${rts_per_flow}= | ${500000}
+# Traffic profile:
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
+| |
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
+| | ... | Type: integer, string
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| |
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| |
+| | Set Test Variable | \${frame_size}
+| |
+| | Given Set Max Rate And Jumbo
+| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
+| | And Pre-initialize layer driver | ${nic_driver}
+| | And Apply startup configuration on all VPP DUTs
+| | When Initialize layer driver | ${nic_driver}
+| | And Initialize layer interface
+| | And Initialize IPv6 forwarding with scaling in circular topology
+| | ... | ${rts_per_flow}
+| | Then Find NDR and PDR intervals using optimized search
+
+*** Test Cases ***
+| 78B-1c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 78B | 1C
+| | frame_size=${78} | phy_cores=${1}
+
+| 78B-2c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 78B | 2C
+| | frame_size=${78} | phy_cores=${2}
+
+| 78B-4c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 78B | 4C
+| | frame_size=${78} | phy_cores=${4}
+
+| 1518B-1c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 1518B | 1C
+| | frame_size=${1518} | phy_cores=${1}
+
+| 1518B-2c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 1518B | 2C
+| | frame_size=${1518} | phy_cores=${2}
+
+| 1518B-4c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
+| 9000B-1c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 9000B | 1C
+| | frame_size=${9000} | phy_cores=${1}
+
+| 9000B-2c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 9000B | 2C
+| | frame_size=${9000} | phy_cores=${2}
+
+| 9000B-4c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
+| IMIX-1c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | IMIX | 1C
+| | frame_size=IMIX_v4_1 | phy_cores=${1}
+
+| IMIX-2c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | IMIX | 2C
+| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-ethip6-ip6scale1m-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot
index 9cf7327cf7..9149dad5ed 100644
--- a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,33 +21,38 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and\
-| ... | 2x100k static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | 2x100k static IPv6 /128 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${100000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -84,8 +89,7 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot
index 1b3b2636e6..2cc8dce84e 100644
--- a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,33 +21,38 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and\
-| ... | 2x100k static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | 2x100k static IPv6 /128 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 100k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${100000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-rnd
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -84,8 +89,7 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot
index 718a9613fc..f5d80bdfd1 100644
--- a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,33 +21,38 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and\
-| ... | 2x10k static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | 2x10k static IPv6 /128 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${10000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -84,8 +89,7 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot
index 3d079cd058..4861ea19cb 100644
--- a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,33 +21,38 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and\
-| ... | 2x10k static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | 2x10k static IPv6 /128 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 10k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${10000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-rnd
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -84,8 +89,7 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot
index 823637c18e..12d5045a41 100644
--- a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,33 +21,38 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and\
-| ... | 2x1M static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | 2x1M static IPv6 /128 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Incrementing of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${1000000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -84,8 +89,7 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot
index 38e2c8f1f7..d2d0512efd 100644
--- a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -21,33 +21,38 @@
|
| Suite Setup | Setup suite topology interfaces | performance
| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance | performance
+| Test Setup | Setup test | performance
| Test Teardown | Tear down test | performance
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv6 routing test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and\
-| ... | 2x1M static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv6 header\
-| ... | with IP and static payload. MAC addresses are matching MAC addresses\
-| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination\
+| Documentation | **RFC2544: Pkt throughput IPv6 routing test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
+| ... | 2x1M static IPv6 /128 route entries. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 1M flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv6 header \
+| ... | with IP and static payload. MAC addresses are matching MAC addresses \
+| ... | of the TG node interfaces. Randomization of IP.dst (IPv6 destination \
| ... | address) field is applied to both streams.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -59,14 +64,14 @@
| ${overhead}= | ${0}
| ${rts_per_flow}= | ${1000000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-rnd
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst-rnd${rts_per_flow}-${nic_pfs}p
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 routing config.\
+| | ... | - **[Cfg]** DUT runs IPv6 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -84,8 +89,7 @@
| | And Apply startup configuration on all VPP DUTs
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
| | Then Find NDR and PDR intervals using optimized search
*** Test Cases ***
diff --git a/tests/vpp/perf/ip6/regenerate_testcases.py b/tests/vpp/perf/ip6/regenerate_testcases.py
index f6bbf0a102..1a151af0f8 100755
--- a/tests/vpp/perf/ip6/regenerate_testcases.py
+++ b/tests/vpp/perf/ip6/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip4-ip6base-ndrpdr.robot b/tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip4-ip6base-ndrpdr.robot
index ca0a23ea0e..77cf67e18f 100644
--- a/tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip4-ip6base-ndrpdr.robot
+++ b/tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip4-ip6base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -30,24 +30,29 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC6830: Pkt throughput Lisp test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.\
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-LISP-IPv4 on DUT1-DUT2,\
-| ... | Eth-IPv6 on TG-DUTn for IPv6 routing over LISPoIPv4 tunnel.\
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and static routes. LISPoIPv4 tunnel is configured between\
-| ... | DUT1 and DUT2. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | *[Ref] Applicable standard specifications:* RFC6830.
+| Documentation | **RFC6830: Pkt throughput Lisp test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes. \
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6-LISP-IPv4 on DUT1-DUT2, \
+| ... | Eth-IPv6 on TG-DUTn for IPv6 routing over LISPoIPv4 tunnel. \
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and static routes. LISPoIPv4 tunnel is configured between \
+| ... | DUT1 and DUT2. DUT1 and DUT2 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC6830.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lisp_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lisp_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -56,17 +61,17 @@
| ${nic_pfs}= | 2
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
-| ${overhead}= | 48
+| ${overhead}= | ${48}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 LISP remote static mappings and whitelist\
-| | ... | filters config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.\
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPv6 LISP remote static mappings and whitelist \
+| | ... | filters config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Frame size in Bytes as integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip6-ip6base-ndrpdr.robot b/tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip6-ip6base-ndrpdr.robot
index b86006155a..488267c1c1 100644
--- a/tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip6-ip6base-ndrpdr.robot
+++ b/tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip6-ip6base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -30,24 +30,29 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC6830: Pkt throughput Lisp test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.\
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-LISP-IPv6 on DUT1-DUT2,\
-| ... | Eth-IPv6 on TG-DUTn for IPv6 routing over LISPoIPv6 tunnel.\
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and static routes. LISPoIPv6 tunnel is configured between\
-| ... | DUT1 and DUT2. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | *[Ref] Applicable standard specifications:* RFC6830.
+| Documentation | **RFC6830: Pkt throughput Lisp test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes. \
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6-LISP-IPv6 on DUT1-DUT2, \
+| ... | Eth-IPv6 on TG-DUTn for IPv6 routing over LISPoIPv6 tunnel. \
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and static routes. LISPoIPv6 tunnel is configured between \
+| ... | DUT1 and DUT2. DUT1 and DUT2 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC6830.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lisp_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lisp_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -56,17 +61,17 @@
| ${nic_pfs}= | 2
| ${nic_vfs}= | 0
| ${osi_layer}= | L3
-| ${overhead}= | 8
+| ${overhead}= | ${8}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv6 LISP remote static mappings and whitelist\
-| | ... | filters config.\
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.\
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs IPv6 LISP remote static mappings and whitelist \
+| | ... | filters config. \
+| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Frame size in Bytes as integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/ip6_tunnels/regenerate_testcases.py b/tests/vpp/perf/ip6_tunnels/regenerate_testcases.py
index f6bbf0a102..1a151af0f8 100755
--- a/tests/vpp/perf/ip6_tunnels/regenerate_testcases.py
+++ b/tests/vpp/perf/ip6_tunnels/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1ad-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1ad-l2xcbase-ndrpdr.robot
index 8a693b6f56..bb8c2f01e7 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-dot1ad-l2xcbase-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-dot1ad-l2xcbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC with 802.1ad test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 xconnect.
-| ... | 802.1ad tagging is applied on link between DUT1 and DUT2 with inner 4B
+| Documentation | **RFC2544: Pkt throughput L2XC with 802.1ad test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 xconnect. \
+| ... | 802.1ad tagging is applied on link between DUT1 and DUT2 with inner 4B \
| ... | vlan tag (id=100) and outer 4B vlan tag (id=200).
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
-| ... | connect. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and
-| ... | static payload. MAC addresses are matching MAC addresses of the TG
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | cross-connect. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and \
+| ... | static payload. MAC addresses are matching MAC addresses of the TG. \
| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -66,14 +71,14 @@
| ${type_subif}= | two_tags
| ${tag_rewrite}= | pop-2
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC forwarding config.
+| | ... | - **[Cfg]** DUT runs L2XC forwarding config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot
index fcdcbfd5fa..87ab3522a4 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,30 +26,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with IEEE 802.1Q test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. IEEE\
-| ... | 802.1Q tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge\
-| ... | domain and MAC learning enabled. DUT1 and DUT2 are tested\
+| Documentation | **RFC2544: Pkt throughput L2BD with IEEE 802.1Q test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | IEEE 802.1Q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 are tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUTs. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUTs. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +71,14 @@
| ${bd_id1}= | 1
| ${bd_id2}= | 2
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD config with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD config with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot
index 6e43dcfe25..dc7c3a6f56 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC with IEEE 802.1Q test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. IEEE\
+| Documentation | **RFC2544: Pkt throughput L2XC with IEEE 802.1Q test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect. IEEE \
| ... | 802.1Q tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-\
-| ... | connect. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUTs. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | cross-connect. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUTs. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -62,14 +67,14 @@
| ${subid}= | 10
| ${tag_rewrite}= | pop-1
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2XC config with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2XC config with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr.robot
index 250c97e62f..95b03526c7 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr.robot
index b1e322e599..b452f31dbd 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr.robot
index faaabf49f7..f65ec313ba 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr.robot
index d2f30dcd0e..cc5ded1eea 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr.robot
index e103f90c58..dfe1df43f4 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr.robot
index 46c634a247..cac8ac3f30 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr.robot
index c3d4b39cd0..37c9fd5bd5 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr.robot
index 468be89791..3a7a356c52 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot
index 296eba2635..879a2f6df4 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs with ${phy_cores} phy \
| | ... | core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr.robot
index 77338181f3..c791792025 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr.robot
index 8900ee1f15..bf0e8e96d9 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot
index 8536a3d9e1..e7390dc978 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs with ${phy_cores} phy \
| | ... | core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr.robot
index d358500dcd..f642d4f3c6 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr.robot
index d5bb12ec7c..9eb02a2ded 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot
index 515737a8ba..a56cad4ea3 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs with ${phy_cores} phy \
| | ... | core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr.robot
index 3764d738e5..d727f99d21 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching \
+| ... | of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr.robot
index d9232df940..ea929e568b 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot
index b3e497594c..3fcdb42013 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs with ${phy_cores} phy \
| | ... | core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr.robot
index 135ceebf4f..6802aecd35 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required MACIP ACL rules are applied to input paths of both DUT1\
-| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\
-| ... | Intel.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required MACIP ACL rules are applied to input paths of both DUT1 \
+| ... | addresses of the TG node interfaces. DUT1 and DUT2 are tested with \
+| ... | 2p10GE NIC X520 Niantic by Intel.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -77,14 +83,14 @@
| ${tg_stream1_subnet}= | 10.0.0.0/24
| ${tg_stream2_subnet}= | 20.0.0.0/24
# traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc100ip4src100
+| ${traffic_profile}= | trex-stl-ethip4-macsrc100ip4src100
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr.robot
index 80e1cdeb77..5f29851245 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required MACIP ACL rules are applied to input paths of both DUT1\
-| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\
-| ... | Intel.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required MACIP ACL rules are applied to input paths of both DUT1 \
+| ... | addresses of the TG node interfaces. DUT1 and DUT2 are tested with \
+| ... | 2p10GE NIC X520 Niantic by Intel.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -77,14 +83,14 @@
| ${tg_stream1_subnet}= | 10.0.0.0/15
| ${tg_stream2_subnet}= | 20.0.0.0/15
# traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc100kip4src100k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc100kip4src100k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr.robot
index 540289cf84..152344c619 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required MACIP ACL rules are applied to input paths of both DUT1\
-| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\
-| ... | Intel.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required MACIP ACL rules are applied to input paths of both DUT1 \
+| ... | addresses of the TG node interfaces. DUT1 and DUT2 are tested with \
+| ... | 2p10GE NIC X520 Niantic by Intel.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -77,14 +83,14 @@
| ${tg_stream1_subnet}= | 10.0.0.0/18
| ${tg_stream2_subnet}= | 20.0.0.0/18
# traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc10kip4src10k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc10kip4src10k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr.robot
index 1fecc12fc6..78adbe9e7f 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required MACIP ACL rules are applied to input paths of both DUT1\
-| ... | interfaces. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. Required MACIP ACL rules are applied to input paths of both \
+| ... | DUT1 addresses of the TG node interfaces. DUT1 and DUT2 are tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -76,14 +82,14 @@
| ${tg_stream1_subnet}= | 10.0.0.0/24
| ${tg_stream2_subnet}= | 20.0.0.0/24
# traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc100ip4src100
+| ${traffic_profile}= | trex-stl-ethip4-macsrc100ip4src100
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr.robot
index ef5b1124b3..c8b79381b7 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required MACIP ACL rules are applied to input paths of both DUT1\
-| ... | interfaces. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. Required MACIP ACL rules are applied to input paths of both \
+| ... | DUT1 addresses of the TG node interfaces. DUT1 and DUT2 are tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -76,14 +82,14 @@
| ${tg_stream1_subnet}= | 10.0.0.0/15
| ${tg_stream2_subnet}= | 20.0.0.0/15
# traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc100kip4src100k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc100kip4src100k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr.robot
index 815ae62430..df64d73746 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required MACIP ACL rules are applied to input paths of both DUT1\
-| ... | interfaces. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. Required MACIP ACL rules are applied to input paths of both \
+| ... | DUT1 addresses of the TG node interfaces. DUT1 and DUT2 are tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -76,14 +82,14 @@
| ${tg_stream1_subnet}= | 10.0.0.0/18
| ${tg_stream2_subnet}= | 20.0.0.0/18
# traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc10kip4src10k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc10kip4src10k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr.robot
index 6038e1e4c2..5e414f23c4 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required MACIP ACL rules are applied to input paths of both DUT1\
-| ... | interfaces. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. Required MACIP ACL rules are applied to input paths of both \
+| ... | DUT1 addresses of the TG node interfaces. DUT1 and DUT2 are tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -76,14 +82,14 @@
| ${tg_stream1_subnet}= | 10.0.0.0/24
| ${tg_stream2_subnet}= | 20.0.0.0/24
# traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc100ip4src100
+| ${traffic_profile}= | trex-stl-ethip4-macsrc100ip4src100
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr.robot
index 0266f48326..a410b3958c 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required MACIP ACL rules are applied to input paths of both DUT1\
-| ... | interfaces. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. Required MACIP ACL rules are applied to input paths of both \
+| ... | DUT1 addresses of the TG node interfaces. DUT1 and DUT2 are tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -76,14 +82,14 @@
| ${tg_stream1_subnet}= | 10.0.0.0/15
| ${tg_stream2_subnet}= | 20.0.0.0/15
# traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc100kip4src100k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc100kip4src100k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot
index fa42e9233b..b10b3c1498 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required MACIP ACL rules are applied to input paths of both DUT1\
-| ... | interfaces. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge-\
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. Required MACIP ACL rules are applied to input paths of both \
+| ... | DUT1 addresses of the TG node interfaces. DUT1 and DUT2 are tested \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -76,14 +82,14 @@
| ${tg_stream1_subnet}= | 10.0.0.0/18
| ${tg_stream2_subnet}= | 20.0.0.0/18
# traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc10kip4src10k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc10kip4src10k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot
index 0180a88497..325d69c0ea 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,27 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
-| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| Documentation | **RFC2544: Pkt throughput L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-domain and MAC learning enabled. DUT1 and DUT2 are tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -57,14 +63,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD switching config and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching config and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr.robot
index b71b11eedb..93d5f8b39e 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr.robot
index a0ef617085..70536d0bd2 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr.robot
index 160c5dc42d..92af4ad4f2 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr.robot
index 801bea58ac..34ee275a0e 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr.robot
index 10847c1ad2..5f9626d636 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr.robot
index ebf8f33280..169ca282c9 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr.robot
index 297d2978db..6f50f6db8c 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr.robot
index 8a683864e7..feb2cf54d0 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching \
+| ... | of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
-| | [Documentation] | FIXME.
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | [Documentation]
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr.robot
index ad9f0cf171..dde7d8e41f 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr.robot
index ffe5675e3d..6963c33220 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr.robot
index 086fc3e206..b8e98e74d3 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 \
+| ... | intefaces. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr.robot
index 98673c4bea..9fc86835a6 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr.robot
index fb33596d66..4e118238be 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr.robot
index 4030d37a0e..6a7ee99f1a 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot
index 639467d9fb..24eba06766 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr.robot
index 64efd479fc..76584e581e 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u10p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u10p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr.robot
index a018cfa9f1..e75d7a1c88 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-100u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-100u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot
index bb1f54c046..3c1c6e4ba3 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. DUT2 is configured with L2 cross-\
+| ... | connects. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +82,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot
index f0e5052495..f89983740e 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput for L2BD test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
-| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 50k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload.\
+| Documentation | **RFC2544: Pkt throughput for L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-domain and MAC learning enabled. DUT1 and DUT2 are tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 50k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. \
| ... | MAC addresses ranges are incremented as follows:
| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -62,14 +68,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc50kdst50k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc50kdst50k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [CFG] Each DUT runs L2BD switching config and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching config and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot
index 70c97870b0..a42b6c4571 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput for L2BD test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
-| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 5k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload.\
+| Documentation | **RFC2544: Pkt throughput for L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-domain and MAC learning enabled. DUT1 and DUT2 are tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 5k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. \
| ... | MAC addresses ranges are incremented as follows:
| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -62,14 +68,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc5kdst5k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc5kdst5k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [CFG] Each DUT runs L2BD switching config and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching config and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot
index 4427e5e0e1..dcebbf8c66 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput for L2BD test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
-| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 500k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload.\
+| Documentation | **RFC2544: Pkt throughput for L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-\
+| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 500k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. \
| ... | MAC addresses ranges are incremented as follows:
| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -62,14 +68,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc500kdst500k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc500kdst500k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD switching config and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching config and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot
index 53afbd9ac3..f547b7cf19 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,27 +26,32 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2patch test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 patch.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 patch\
-| ... | DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv4 header with static payload.\
+| Documentation | **RFC2544: Pkt throughput L2patch test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 patch.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | patch DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all \
+| ... | packets containing Ethernet header, IPv4 header with static payload \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -57,14 +62,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy
+| | ... | - **[Cfg]** DUT runs L2 patch config with ${phy_cores} phy \
| | ... | core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot
index 84d3e0017c..f1c8b3dffe 100644
--- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot
+++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,27 +26,32 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
-| ... | connect. DUT1 and DUT2 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2XC test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | cross-connect. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -57,14 +62,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy
+| | ... | - **[Cfg]** DUT runs L2XC config with ${phy_cores} phy \
| | ... | core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot
index 1b00e06d0e..d98a1679f1 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,31 +26,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with IEEE 802.1Q test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4 for L2 switching of IPv4.\
-| ... | IEEE 802.1Q tagging is applied on both links TG-DUT1 .
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with:\
-| ... | 2 VLAN subinterfaces (VID 100 and 200),\
-| ... | 1 L2 BD with the 2 VLAN subinterfaces,\
-| ... | DUT1 tested with ${nic_name} with VF enabled.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUT1. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| Documentation | **RFC2544: Pkt throughput L2BD with IEEE 802.1Q test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4 for L2 switching \
+| ... | of IPv4. IEEE 802.1Q tagging is applied on both links TG-DUT1.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with: \
+| ... | 2 VLAN subinterfaces (VID 100 and 200), \
+| ... | 1 L2 BD with the 2 VLAN subinterfaces. \
+| ... | DUT1 is tested with ${nic_name} with VF enabled.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUT1. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -66,9 +71,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD with VLAN with ${phy_cores} physical core(s) for\
-| | ... | worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs L2BD with VLAN with ${phy_cores} physical \
+| | ... | core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot
index 3975821e38..4856b4c817 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC with IEEE 802.1Q test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. IEEE\
+| Documentation | **RFC2544: Pkt throughput L2XC with IEEE 802.1Q test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect. IEEE \
| ... | 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross- connect.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUTs. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 cross-\
+| ... | connect. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUTs. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,9 +70,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2XC config with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2XC config with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot
index 5c79af9ca8..9362138b1c 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 1-node circular topology
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 1-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +81,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs with ${phy_cores} phy \
| | ... | core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot
index 9a850043aa..57aaea5c03 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +81,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy
+| | ... | - **[Cfg]** DUT runs L2BD config with ACLs with ${phy_cores} phy \
| | ... | core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot
index 7a0b90965d..3e89550f9c 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled.\
-| ... | Required MACIP ACL rules are applied to input paths of both DUT1\
-| ... | interfaces. DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. \
+| ... | Required MACIP ACL rules are applied to input paths of both DUT1 \
+| ... | addresses of the TG node interfaces. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -76,14 +81,14 @@
| ${tg_stream1_subnet}= | 10.0.0.0/18
| ${tg_stream2_subnet}= | 20.0.0.0/18
# traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-macsrc10kip4src10k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc10kip4src10k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot
index 6ac4f32aa2..d52f0e32be 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,27 +26,32 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain\
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | and MAC learning enabled. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -57,14 +62,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config and uses ${phy_cores} physical\
-| | ... | core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs L2BD switching config and uses ${phy_cores} \
+| | ... | physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot
index bf975521b5..6c24a97ca3 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +81,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot
index 5064cac6a5..b3976f5967 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\
-| ... | and MAC learning enabled.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with UDP header and\
-| ... | static payload. MAC addresses are matching MAC addresses of the TG node\
-| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for L2 switching of \
+| ... | IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge \
+| ... | domain and MAC learning enabled. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with UDP header \
+| ... | and static payload. MAC addresses are matching MAC addresses of the TG \
+| ... | node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,14 +81,14 @@
| ${trex_stream1_subnet}= | 10.10.10.0/24
| ${trex_stream2_subnet}= | 20.20.20.0/24
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-10u1000p-conc
+| ${traffic_profile}= | trex-stl-ethip4udp-10u1000p-conc
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot
index e17bf816e6..c8a4156156 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput for L2BD test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput for L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain\
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 50k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | and MAC learning enabled. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 50k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. \
| ... | MAC addresses ranges are incremented as follows:
| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -62,14 +67,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-macsrc50kdst50k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc50kdst50k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config and uses ${phy_cores} physical\
-| | ... | core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs L2BD switching config and uses ${phy_cores} \
+| | ... | physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot
index 16c732c3e2..89dece00d0 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput for L2BD test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput for L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain\
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 5k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | and MAC learning enabled. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 5k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. \
| ... | MAC addresses ranges are incremented as follows:
| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -62,14 +67,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-macsrc5kdst5k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc5kdst5k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config and uses ${phy_cores} physical\
-| | ... | core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs L2BD switching config and uses ${phy_cores} \
+| | ... | physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot
index 5b4e8c1931..cfd66cb02d 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput for L2BD test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput for L2BD test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain\
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 500k flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=61 and static payload.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | and MAC learning enabled. DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 500k flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. \
| ... | MAC addresses ranges are incremented as follows:
| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,
| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,
| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,
| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -62,14 +67,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-macsrc500kdst500k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc500kdst500k
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config and uses ${phy_cores} physical\
-| | ... | core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** DUT runs L2BD switching config and uses ${phy_cores} \
+| | ... | physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-ndrpdr.robot
index 00cee17787..76cba0e601 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,27 +26,32 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2patch test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput L2patch test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 patch.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 patch\
-| ... | DUT1 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv4 header with static payload.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 patch.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 patch \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all \
+| ... | packets containing Ethernet header, IPv4 header with static payload \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -57,14 +62,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy
+| | ... | - **[Cfg]** DUT runs L2 patch config with ${phy_cores} phy \
| | ... | core(s).
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-ndrpdr.robot
index 58f6ecde7d..921e81d923 100644
--- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-ndrpdr.robot
+++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -26,27 +26,32 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput L2XC test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect.
-| ... | DUT1 tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv4 header with static payload.\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all \
+| ... | packets containing Ethernet header, IPv4 header with static payload \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -57,14 +62,14 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC config.\
+| | ... | - **[Cfg]** DUT runs L2XC config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/l2/regenerate_testcases.py b/tests/vpp/perf/l2/regenerate_testcases.py
index ec754aa261..e22f6de5c3 100755
--- a/tests/vpp/perf/l2/regenerate_testcases.py
+++ b/tests/vpp/perf/l2/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-l3dsr-ndrpdr.robot b/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-l3dsr-ndrpdr.robot
index ec4570a44d..a275c579be 100644
--- a/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-l3dsr-ndrpdr.robot
+++ b/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-l3dsr-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2023 Intel and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput loadbalancer l3dsr test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput loadbalancer l3dsr test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for LoadBalancer l3dsr.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with LoadBalancer\
-| ... | l3dsr and one static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT. TG traffic profile\
-| ... | contains two L4 flow-groups (l3dsr use flow-group is only from TG\
-| ... | to DUT, 6 flows for flow-group) with all packets containing Ethernet\
-| ... | header, IPv4 header with IP protocol=17 and static payload. MAC\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for LoadBalancer l3dsr.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with LoadBalancer \
+| ... | l3dsr and one static IPv4 /24 route entries. DUT1 tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT. TG traffic profile \
+| ... | contains two L4 flow-groups (l3dsr use flow-group is only from TG \
+| ... | to DUT, 6 flows for flow-group) with all packets containing Ethernet \
+| ... | header, IPv4 header with IP protocol=17 and static payload. MAC \
| ... | addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lb_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lb_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -58,15 +63,15 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-lb
+| ${traffic_profile}= | trex-stl-ethip4udp-lb
| ${traffic_directions}= | ${1}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs LoadBalancer l3dsr config.\
+| | ... | - **[Cfg]** DUT runs LoadBalancer l3dsr config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-maglev-ndrpdr.robot b/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-maglev-ndrpdr.robot
index dff2536f20..e602eab269 100644
--- a/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-maglev-ndrpdr.robot
+++ b/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-maglev-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2023 Intel and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput loadbalancer maglev test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput loadbalancer maglev test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for LoadBalancer maglev.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with LoadBalancer\
-| ... | maglev and one static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT. TG traffic profile\
-| ... | contains two L4 flow-groups (maglev use flow-group is only from TG\
-| ... | to DUT, 6 flows for flow-group) with all packets containing Ethernet\
-| ... | header, IPv4 header with IP protocol=17 and static payload. MAC\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for LoadBalancer maglev.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with LoadBalancer \
+| ... | maglev and one static IPv4 /24 route entries. DUT1 tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT. TG traffic profile \
+| ... | contains two L4 flow-groups (maglev use flow-group is only from TG \
+| ... | to DUT, 6 flows for flow-group) with all packets containing Ethernet \
+| ... | header, IPv4 header with IP protocol=17 and static payload. MAC \
| ... | addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lb_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lb_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -58,15 +63,15 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-lb
+| ${traffic_profile}= | trex-stl-ethip4udp-lb
| ${traffic_directions}= | ${1}
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs LoadBalancer maglev config.\
+| | ... | - **[Cfg]** DUT runs LoadBalancer maglev config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-nat4-ndrpdr.robot b/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-nat4-ndrpdr.robot
index 75b30e4fbe..eea9a51b71 100644
--- a/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-nat4-ndrpdr.robot
+++ b/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-nat4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Intel and/or its affiliates.
+# Copyright (c) 2023 Intel and/or its affiliates.
# 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:
@@ -26,28 +26,33 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput loadbalancer nat4 test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Pkt throughput loadbalancer nat4 test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for LoadBalancer nat4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with LoadBalancer\
-| ... | nat4 and two static IPv4 /24 route entries. DUT1 tested with\
-| ... | ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L4 flow-groups (flow-group per direction, 6 flows per\
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header\
-| ... | with IP protocol=17 and static payload. MAC addresses are matching MAC\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for LoadBalancer nat4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with LoadBalancer \
+| ... | nat4 and two static IPv4 /24 route entries. DUT1 tested with \
+| ... | with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L4 flow-groups (flow-group per direction, 6 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=17 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lb_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lb_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -58,14 +63,14 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-lb
+| ${traffic_profile}= | trex-stl-ethip4udp-lb
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs LoadBalancer nat4 config.\
+| | ... | - **[Cfg]** DUT runs LoadBalancer nat4 config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/lb/regenerate_testcases.py b/tests/vpp/perf/lb/regenerate_testcases.py
index 6ff6d4d800..7e2cba12d3 100755
--- a/tests/vpp/perf/lb/regenerate_testcases.py
+++ b/tests/vpp/perf/lb/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Inter and/or its affiliates.
+# Copyright (c) 2023 Inter and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr1t-vppip4-ndrpdr.robot
index 60c12203c5..a969808900 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 10 chains
-| ... | 10 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 10 \
+| ... | chains 10 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr2t-vppip4-ndrpdr.robot
index 9c9268f8a4..8b1e291938 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 10 chains
-| ... | 10 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 10 \
+| ... | chains 10 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-40mif-20dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-40mif-20dcr1t-vppip4-ndrpdr.robot
index 98ece2a27b..6c64450ba6 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-40mif-20dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-40mif-20dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 10 chains
-| ... | 20 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 10 \
+| ... | chains 20 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr.robot
index a8da1c362a..b4e7ef8219 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 6 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 6 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr2t-vppip4-ndrpdr.robot
index fb5ab33751..44994777c6 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 6 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 6 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr1t-vppip4-ndrpdr.robot
index a04d285051..7deb9ad98a 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr2t-vppip4-ndrpdr.robot
index 21d7feaeab..fe3c6e995d 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr1t-vppip4-ndrpdr.robot
index d9dbbfdc88..90367e1b9b 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 10 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 10 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr2t-vppip4-ndrpdr.robot
index 0811c57570..f0d60e3f10 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 10 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 10 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domainsand MAC learning enabled. DUT1 tested with ${nic_name}.
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr1t-vppip4-ndrpdr.robot
index 20d31eb645..cc8510703d 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr2t-vppip4-ndrpdr.robot
index 9a0634664c..ad16cb37b1 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr.robot
index bc80a0916c..85e2383ee7 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr2t-vppip4-ndrpdr.robot
index 0be3a16e5e..e4a08e51ce 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr.robot
index 7da217aa89..a4657a91ea 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr2t-vppip4-ndrpdr.robot
index dc45206c96..be0c224ea3 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr1t-vppip4-ndrpdr.robot
index d5062990bb..3137e99125 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr2t-vppip4-ndrpdr.robot
index 54f91c26fc..d8655e1287 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr1t-vppip4-ndrpdr.robot
index c5f43fb4dc..6c3b6cbafd 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 12 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 12 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr2t-vppip4-ndrpdr.robot
index 84f0eb1c4d..6651af7d89 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 12 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 12 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr1t-vppip4-ndrpdr.robot
index 5605bd42de..bcdcfa4b42 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 16 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 16 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr.robot
index 0fc40be8fb..25aa563ef0 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 16 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 16 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +79,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -111,6 +115,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -119,6 +127,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -127,6 +139,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -134,3 +150,7 @@
| IMIX-2c-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-40mif-20dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-40mif-20dcr1t-vppip4-ndrpdr.robot
index f8811bb963..a293ff74b2 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-40mif-20dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-40mif-20dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 20 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 20 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr.robot
index d152a67138..9f0e34eb78 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr2t-vppip4-ndrpdr.robot
index 85c6c71915..2a802317dc 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr.robot
index a3fd350684..e18afe301a 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr2t-vppip4-ndrpdr.robot
index a6ec9c8449..c3e1d15136 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 2 chains
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 2 chains 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr1t-vppip4-ndrpdr.robot
index ab033af177..96490fe826 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 4 chains
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 4 chains 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr2t-vppip4-ndrpdr.robot
index e360532dac..5749d10793 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 4 chains
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 4 chains 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr1t-vppip4-ndrpdr.robot
index b8b7037f17..59a26c9f04 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 4 chains
-| ... | 16 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 4 chains 16 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr.robot
index 0c342cac27..997bebb88b 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 4 chains
-| ... | 16 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 4 chains 16 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -118,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -126,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -133,3 +149,7 @@
| IMIX-2c-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr.robot
index 4269557f7c..62f1be2c4a 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 4 chains
-| ... | 24 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 4 chains 24 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -118,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -126,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -133,3 +149,7 @@
| IMIX-2c-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr.robot
index cef3f8988f..987e080f4f 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 4 chains
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 4 chains 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr2t-vppip4-ndrpdr.robot
index 18c57e0022..e4a9044662 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 4 chains
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 4 chains 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr.robot
index 5966f203c7..e10260ba5e 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 6 chains
-| ... | 6 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 6 chains 6 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr2t-vppip4-ndrpdr.robot
index 4e4ff76e4a..4a5e57541b 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 6 chains
-| ... | 6 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 6 chains 6 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr1t-vppip4-ndrpdr.robot
index 7253d40177..630b6d2511 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 6 chains
-| ... | 12 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 6 chains 12 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domainsand MAC learning enabled. DUT1 tested with ${nic_name}.
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr2t-vppip4-ndrpdr.robot
index ba8996b4ce..e1dda7c627 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 6 chains
-| ... | 12 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 6 chains 12 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr.robot
index 3ec0e9ed7c..99c3a4465e 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 6 chains
-| ... | 24 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 6 chains 24 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -118,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -126,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -133,3 +149,7 @@
| IMIX-2c-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr1t-vppip4-ndrpdr.robot
index 0d7f86e518..84e3260cf4 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 8 chains
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 8 chains 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr2t-vppip4-ndrpdr.robot
index ad71ade856..5497f993f4 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 8 chains
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 8 chains 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr1t-vppip4-ndrpdr.robot
index c40f605980..7c4be7fea9 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 8 chains
-| ... | 16 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 8 chains 16 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr.robot
index 10e361b245..184322ff58 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 8 chains
-| ... | 16 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif \
+| ... | 8 chains 16 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -118,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -126,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -133,3 +149,7 @@
| IMIX-2c-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain/regenerate_testcases.py b/tests/vpp/perf/nfv_density/dcr_memif/chain/regenerate_testcases.py
index ec754aa261..e22f6de5c3 100755
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain/regenerate_testcases.py
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
index c139e80bcf..31e6a883fd 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 54c60e5463..5c2725bc76 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
index e2a2986c6a..fffc14bd54 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 9398d588ed..abd1672367 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 0f930a253c..1a1299485a 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
index fc8a8f76a4..652f67107b 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 12fef04f9e..711dc47333 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 366f8f2dcc..6d4d7e216f 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 3adf122aca..bd221d568d 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
index bf20589666..2f53bedb19 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 000a2b6ab3..bc4c1658bd 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 0c9fdb83eb..bac98c45ec 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
index ac50781777..1d03e083d6 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 6629ac787f..1af9ae490a 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 614a0ab579..1085be574d 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 63cee14cb8..c4182a51de 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
index e60088cceb..5b3e761112 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 50a01c2e77..b281c82b33 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 891d7432b0..ad46d1621b 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
index aaf2f55d51..99be145c6d 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 12f12b8c26..9d69789004 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
index a849e63e8e..b43345c927 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
index e1d5692020..72c3687835 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 889361d01b..37b29c6b56 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 387c6592c9..b24042340e 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 184aae72c4..015de754c0 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 94dba3a0f0..76c069632a 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 9ebafb8d92..bf9176e579 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 4243882930..fadd854b99 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 7eeb8e8747..ae727765bc 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 470c041cea..0aefd8c3bc 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 10cd5f4835..f2e3a1213c 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 8 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 8 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
index e23d43dbe1..25f1553179 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 49765f2d26..6b4193992e 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 2 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 2 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
index 633634984d..65ccedb256 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,26 +28,30 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain
-| ... | 4 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with memif 1 chain \
+| ... | 4 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ... | crypto_native_plugin.so | crypto_ipsecmb_plugin.so
| ... | crypto_openssl_plugin.so
| ${crypto_type}= | ${None}
@@ -60,10 +64,10 @@
| ${osi_layer}= | L2
| ${overhead}= | ${54}
| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.1
+| ${dut1_if1_ip4}= | 192.168.10.11
| ${dut1_if2_ip4}= | 100.0.0.254
-| ${dut2_if1_ip4}= | 200.0.0.1
-| ${dut2_if2_ip4}= | 192.168.20.1
+| ${dut2_if1_ip4}= | 200.0.0.101
+| ${dut2_if2_ip4}= | 192.168.20.11
| ${tg_if2_ip4}= | 192.168.20.254
| ${raddr_ip4}= | 20.0.0.0
| ${laddr_ip4}= | 10.0.0.0
@@ -73,7 +77,7 @@
| ${nf_dtcr}= | ${1}
| ${nf_dtc}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain_ipsec
@@ -81,10 +85,10 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 runs IPSec tunneling AES_256_GCM config to ${n_instances}.
-| | ... | containers.
+| | ... | - **[Cfg]** DUT1 runs IPSec tunneling AES_256_GCM config to \
+| | ... | ${n_instances} containers. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/regenerate_testcases.py b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/regenerate_testcases.py
index ec754aa261..e22f6de5c3 100755
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/regenerate_testcases.py
+++ b/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr1t-vppip4-ndrpdr.robot
index e6ea710db5..9fdda2e9fd 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 20memif 10
-| ... | pipelines 1 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 20memif 10 \
+| ... | pipelines 1 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr2t-vppip4-ndrpdr.robot
index 31214965c3..2ff59d6b34 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 20memif 10
-| ... | pipelines 1 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 20memif 10 \
+| ... | pipelines 1 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-20dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-20dcr1t-vppip4-ndrpdr.robot
index c9ad2f4d28..cc6062bcb4 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-20dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-20dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 20 memif 10
-| ... | pipelines 20 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 20 memif 10 \
+| ... | pipelines 20 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr1t-vppip4-ndrpdr.robot
index 0d7d766cf2..55c0bd1fbb 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 10 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 10 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr2t-vppip4-ndrpdr.robot
index 19a0af34b6..9ef54a8f3d 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 10 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 10 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr.robot
index 957db35508..c9bc289f2b 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr2t-vppip4-ndrpdr.robot
index 8731d9f11a..e8066d1cc4 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 1 docker container*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 1 docker container**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr.robot
index 56def54571..1e7754d7e8 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 2 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 2 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr2t-vppip4-ndrpdr.robot
index cb7828e453..fb1e42e547 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 2 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 2 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr.robot
index 6a048b9aab..ec54f7caa3 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 4 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 4 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr2t-vppip4-ndrpdr.robot
index 26d257f4f5..583af8c292 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 4 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 4 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr.robot
index e2a2515ec9..7d21c74674 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 6 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 6 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr2t-vppip4-ndrpdr.robot
index f19d364f9c..259c3a0544 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 6 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 6 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr1t-vppip4-ndrpdr.robot
index cb57fee6a3..ea09852ba3 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 8 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 8 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr2t-vppip4-ndrpdr.robot
index 5b30a24c37..ca662a36c3 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1
-| ... | pipeline 8 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 1 \
+| ... | pipeline 8 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr1t-vppip4-ndrpdr.robot
index 60a1b48b0d..5dda0b7610 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2
-| ... | pipelines 12 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 12 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr2t-vppip4-ndrpdr.robot
index 8c907242c1..0877b267a2 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2
-| ... | pipelines 12 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 12 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr1t-vppip4-ndrpdr.robot
index 288ce8b750..4729488731 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2
-| ... | pipelines 16 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 16 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr.robot
index c441196e3b..a71f9463fb 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2
-| ... | pipelines 16 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 16 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -118,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -126,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -133,3 +149,7 @@
| IMIX-2c-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-20dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-20dcr1t-vppip4-ndrpdr.robot
index 810e1b1484..3915419ff5 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-20dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-20dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4 memif 2
-| ... | pipelines 20 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 20 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr.robot
index e8c3346edb..0c8f3fe524 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2
-| ... | pipelines 2 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 2 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr2t-vppip4-ndrpdr.robot
index ecdaae2bbf..938628cd1e 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2
-| ... | pipelines 2 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 2 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr.robot
index d957f983dd..cbfc5e0e22 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 2
-| ... | pipelines 4 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 4 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr2t-vppip4-ndrpdr.robot
index fcb836c69c..be2df47398 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 2memif 2
-| ... | pipelines 4 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 4 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr1t-vppip4-ndrpdr.robot
index 10b5beebda..773a612fea 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2
-| ... | pipelines 8 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 8 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr2t-vppip4-ndrpdr.robot
index 032b36f11c..8cbfc08df2 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2
-| ... | pipelines 8 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 4memif 2 \
+| ... | pipelines 8 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr.robot
index ed28142fa6..6184611fe1 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4
-| ... | pipelines 4 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4 \
+| ... | pipelines 4 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr2t-vppip4-ndrpdr.robot
index 7862f04471..e71b7dffc7 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4
-| ... | pipelines 4 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4 \
+| ... | pipelines 4 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr1t-vppip4-ndrpdr.robot
index f0b77a13bd..77143c41a6 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4
-| ... | pipelines 16 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4 \
+| ... | pipelines 16 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr.robot
index f3caf18b14..2e418d1577 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4
-| ... | pipelines 16 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4 \
+| ... | pipelines 16 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -118,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -126,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -133,3 +149,7 @@
| IMIX-2c-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr.robot
index 973e016a09..fdd9ed6b3e 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8 memif 4
-| ... | pipelines 24 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4 \
+| ... | pipelines 24 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -118,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -126,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -133,3 +149,7 @@
| IMIX-2c-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr1t-vppip4-ndrpdr.robot
index ed559d67a7..e82ed38bab 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4
-| ... | pipelines 8 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4 \
+| ... | pipelines 8 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr2t-vppip4-ndrpdr.robot
index b9b7686af9..e6717abfaf 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4
-| ... | pipelines 8 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 8memif 4 \
+| ... | pipelines 8 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr1t-vppip4-ndrpdr.robot
index 8f4cd6c96d..850b170ec4 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 12memif 6
-| ... | pipelines 12 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 12memif 6 \
+| ... | pipelines 12 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr2t-vppip4-ndrpdr.robot
index a710d05ca0..61c01b0f99 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 12memif 6
-| ... | pipelines 12 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 12memif 6 \
+| ... | pipelines 12 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr.robot
index 14b229bade..84e66e9412 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 12 memif 6
-| ... | pipelines 24 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 12memif 6 \
+| ... | pipelines 24 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -118,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -126,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -133,3 +149,7 @@
| IMIX-2c-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr.robot
index 1518a7c587..6b8c379f12 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 12memif 6
-| ... | pipelines 1 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 12memif 6 \
+| ... | pipelines 1 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr2t-vppip4-ndrpdr.robot
index 1456aab860..4c8b4e10f3 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 12memif 6
-| ... | pipelines 1 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 12memif 6 \
+| ... | pipelines 1 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr1t-vppip4-ndrpdr.robot
index a55dbb7c52..a80ad8e1d4 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 16memif 8
-| ... | pipelines 16 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 16memif 8 \
+| ... | pipelines 16 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr.robot
index 2302bdd8ab..8bad579f89 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 16memif 8
-| ... | pipelines 16 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 16memif 8 \
+| ... | pipelines 16 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -110,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -118,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -126,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -133,3 +149,7 @@
| IMIX-2c-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr1t-vppip4-ndrpdr.robot
index 106da548f8..d4328b0690 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 16memif 8
-| ... | pipelines 8 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 16memif 8 \
+| ... | pipelines 8 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr2t-vppip4-ndrpdr.robot
index 950e6dd71e..5386e38e37 100644
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD test cases with 16memif 8
-| ... | pipelines 8 docker containers*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 bridge domain.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with two L2 bridge domains
-| ... | and MAC learning enabled. DUT1 tested with ${nic_name}.\
-| ... | Container is connected to VPP via Memif interface. Container is running
-| ... | same VPP version as running on DUT. Container is limited via cgroup to
-| ... | use cores allocated from pool of isolated CPUs. There are no memory
-| ... | contraints.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with 16memif 8 \
+| ... | pipelines 8 docker containers**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 bridge domain.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with two L2 bridge \
+| ... | domains and MAC learning enabled. DUT1 is tested with ${nic_name}. \
+| ... | Container is connected to VPP via Memif interface. Container is \
+| ... | running same VPP version as running on DUT. Container is limited via \
+| ... | cgroup to use cores allocated from pool of isolated CPUs. There are \
+| ... | no memory contraints.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/regenerate_testcases.py b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/regenerate_testcases.py
index ec754aa261..e22f6de5c3 100755
--- a/tests/vpp/perf/nfv_density/dcr_memif/pipeline/regenerate_testcases.py
+++ b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm1t-vppip4-ndrpdr.robot
index a79f545068..242b330fc7 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 20 vhost 10 chains 10 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 20 vhost 10 chains \
+| ... | 10 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm2t-vppip4-ndrpdr.robot
index 2eb3af6d44..756a61a819 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 20 vhost 10 chains 10 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 20 vhost 10 chains \
+| ... | 10 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-40vh-20vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-40vh-20vm1t-vppip4-ndrpdr.robot
index 6c048c454f..18d3a22fa0 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-40vh-20vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-40vh-20vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 40 vhost 10 chains 20 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 40 vhost 10 chains \
+| ... | 20 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr.robot
index 95b749e2e5..6042130a57 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 12 vhost 1 chain 6 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 12 vhost 1 chain 6 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm2t-vppip4-ndrpdr.robot
index 100bee4293..6985539fea 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 12 vhost 1 chain 6 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 12 vhost 1 chain 6 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm1t-vppip4-ndrpdr.robot
index 7fd9b3b7d7..de7d5b8ecd 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 16 vhost 1 chain 8 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 16 vhost 1 chain 8 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm2t-vppip4-ndrpdr.robot
index aa07a8304d..faa7db91d7 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 16 vhost 1 chain 8 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 16 vhost 1 chain 8 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm1t-vppip4-ndrpdr.robot
index b35265f368..21d1bcd11f 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 20 vhost 1 chain 10 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 20 vhost 1 chain 10 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm2t-vppip4-ndrpdr.robot
index 3caa0f46ff..5a3601a73a 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 20 vhost 1 chain 10 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 20 vhost 1 chain 10 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr.robot
index 69bc78e26c..adb207c73a 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 2 vhost 1 chain 1 VM*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 2 vhost 1 chain 1 VM**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm2t-vppip4-ndrpdr.robot
index 8ea75d90c7..25d63926db 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 2 vhost 1 chain 1 VM*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 2 vhost 1 chain 1 VM**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr.robot
index 6cf4d81688..0528c77dbe 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 4 vhost 1 chain 2 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 4 vhost 1 chain 2 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm2t-vppip4-ndrpdr.robot
index 3d25c80d72..eafc00715e 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 4 vhost 1 chain 2 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 4 vhost 1 chain 2 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr.robot
index f68b45f751..28137e7d46 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 8 vhost 1 chains 4 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 8 vhost 1 chains 4 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm2t-vppip4-ndrpdr.robot
index cc4c3b731e..ecd105cdba 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 8 vhost 1 chains 4 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 8 vhost 1 chains 4 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm1t-vppip4-ndrpdr.robot
index 9fd2f88a1c..ff6f0f0fa5 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 16 vhost 2 chains 8 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 16 vhost 2 chains 8 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm2t-vppip4-ndrpdr.robot
index 0982a01a73..e18c818ac1 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 16 vhost 2 chains 8 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 16 vhost 2 chains 8 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm1t-vppip4-ndrpdr.robot
index 9908589362..41ac854ff6 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 24 vhost 2 chains 12 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 24 vhost 2 chains \
+| ... | 12 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm2t-vppip4-ndrpdr.robot
index 2f8e26ce98..48281fa90d 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 24 vhost 2 chains 12 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 24 vhost 2 chains \
+| ... | 12 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm1t-vppip4-ndrpdr.robot
index 5f45eaba32..74106b0465 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 32 vhost 2 chains 16 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 32 vhost 2 chains \
+| ... | 16 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr.robot
index f59c70e386..c5ef431c21 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 32 vhost 2 chains 16 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 32 vhost 2 chains \
+| ... | 16 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -108,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -116,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -124,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -131,3 +149,7 @@
| IMIX-2c-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-40vh-20vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-40vh-20vm1t-vppip4-ndrpdr.robot
index a3f0ca11cb..43c3a6ac81 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-40vh-20vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-40vh-20vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 40 vhost 2 chains 20 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 40 vhost 2 chains \
+| ... | 20 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr.robot
index 140a20e59c..ca64b8c0b2 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 4 vhost 2 chains 2 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 4 vhost 2 chains 2 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm2t-vppip4-ndrpdr.robot
index b8224aed3b..3258c3fbe5 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 4 vhost 2 chains 2 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 4 vhost 2 chains 2 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr.robot
index 1ae2e30863..7c421ec773 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 8 vhost 2 chains 4 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 8 vhost 2 chains 4 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm2t-vppip4-ndrpdr.robot
index c5856d4285..5b97bda963 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 8 vhost 2 chains 4 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 8 vhost 2 chains 4 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm1t-vppip4-ndrpdr.robot
index b7469d30d7..cd0a5eb4d3 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 16 vhost 4 chains 8 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 16 vhost 4 chains 8 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm2t-vppip4-ndrpdr.robot
index 77185c9b0a..6da75ccd26 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 16 vhost 4 chains 8 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 16 vhost 4 chains 8 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm1t-vppip4-ndrpdr.robot
index 6045c4982b..92269e7cdd 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 32 vhost 4 chains 16 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 32 vhost 4 chains \
+| ... | 16 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr.robot
index 30b52e73c9..bbee99fbfc 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 32 vhost 4 chains 16 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 32 vhost 4 chains \
+| ... | 16 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -108,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -116,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -124,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -131,3 +149,7 @@
| IMIX-2c-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr.robot
index 979431181e..7fdc0fcbee 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 48 vhost 4 chains 24 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 48 vhost 4 chains \
+| ... | 24 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -108,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -116,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -124,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -131,3 +149,7 @@
| IMIX-2c-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr.robot
index 658b7aaa24..0043f35093 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 8 vhost 4 chains 4 VM*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 8 vhost 4 chains 4 VM**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm2t-vppip4-ndrpdr.robot
index c626e02b1c..8cbbf6cd15 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 8 vhost 4 chains 4 VM*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 8 vhost 4 chains 4 VM**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr.robot
index da2fb95c1a..97e03158f9 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 12 vhost 6 chains 6 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 12 vhost 6 chains 6 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm2t-vppip4-ndrpdr.robot
index 95ab703e10..477509b177 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 12 vhost 6 chains 6 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 12 vhost 6 chains 6 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm1t-vppip4-ndrpdr.robot
index 634532a8f5..1f031c184c 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 24 vhost 6 chains 12 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 24 vhost 6 chains \
+| ... | 12 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm2t-vppip4-ndrpdr.robot
index b0c525cbdd..594365240b 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 24 vhost 6 chains 12 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 24 vhost 6 chains \
+| ... | 12 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr.robot
index 854d47acb2..45c50b0503 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 48 vhost 6 chains 24 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 48 vhost 6 chains \
+| ... | 24 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -108,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -116,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -124,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -131,3 +149,7 @@
| IMIX-2c-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm1t-vppip4-ndrpdr.robot
index 9715bbb2e7..69ac30d6fd 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 16 vhost 8 chains 8 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 16 vhost 8 chains 8 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm2t-vppip4-ndrpdr.robot
index a5567f5b41..3691c96264 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,35 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 16 vhost 8 chains 8 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 16 vhost 8 chains 8 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +76,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm1t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm1t-vppip4-ndrpdr.robot
index 1df17cc3a8..bb4e296ffa 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm1t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm1t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 32 vhost 8 chains 16 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 32 vhost 8 chains \
+| ... | 16 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr.robot
index 254e650230..58fca61c13 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -28,30 +28,36 @@
| Test Template | Local Template
|
| Documentation
-| ... | *RFC2544: Pkt throughput L2BD test cases with 32 vhost 8 chains 16 VMs*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| ... | **RFC2544: Pkt throughput L2BD test cases with 32 vhost 8 chains \
+| ... | 16 VMs**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP IPv4 interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,9 +77,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -108,6 +114,10 @@
| | [Tags] | 64B | 2C
| | frame_size=${64} | phy_cores=${2}
+| 64B-4c-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | 64B | 4C
+| | frame_size=${64} | phy_cores=${4}
+
| 1518B-1c-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | 1518B | 1C
| | frame_size=${1518} | phy_cores=${1}
@@ -116,6 +126,10 @@
| | [Tags] | 1518B | 2C
| | frame_size=${1518} | phy_cores=${2}
+| 1518B-4c-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | 1518B | 4C
+| | frame_size=${1518} | phy_cores=${4}
+
| 9000B-1c-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | 9000B | 1C
| | frame_size=${9000} | phy_cores=${1}
@@ -124,6 +138,10 @@
| | [Tags] | 9000B | 2C
| | frame_size=${9000} | phy_cores=${2}
+| 9000B-4c-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | 9000B | 4C
+| | frame_size=${9000} | phy_cores=${4}
+
| IMIX-1c-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | IMIX | 1C
| | frame_size=IMIX_v4_1 | phy_cores=${1}
@@ -131,3 +149,7 @@
| IMIX-2c-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr
| | [Tags] | IMIX | 2C
| | frame_size=IMIX_v4_1 | phy_cores=${2}
+
+| IMIX-4c-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr
+| | [Tags] | IMIX | 4C
+| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain/regenerate_testcases.py b/tests/vpp/perf/nfv_density/vm_vhost/chain/regenerate_testcases.py
index ec754aa261..e22f6de5c3 100755
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain/regenerate_testcases.py
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf.robot
index eb3abb300c..173325ca19 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm1t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet loss L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm2t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm2t-testpmd-reconf.robot
index 01886d9f67..781784233c 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm2t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm2t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet loss L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm1t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm1t-testpmd-ndrpdr.robot
index 1ca55ea361..36df3550b9 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm1t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm1t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm2t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm2t-testpmd-ndrpdr.robot
index a99fe586aa..5ba318e62a 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm2t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm2t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf.robot
index adf9dbc0f7..850e1d8b22 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet loss L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm2t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm2t-testpmd-reconf.robot
index 7319d68ba4..170e09dff8 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm2t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm2t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet loss L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr.robot
index 3ded22e15f..639a22d307 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm2t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm2t-testpmd-ndrpdr.robot
index 85b502ada3..7756f8fb37 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm2t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm2t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf.robot
index 697e5fecee..cb668f5fbf 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet loss L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm2t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm2t-testpmd-reconf.robot
index fe93ae2b99..4dabec5aaa 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm2t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm2t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet loss L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr.robot
index d101240ef8..f78823ad68 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm2t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm2t-testpmd-ndrpdr.robot
index a8c898249d..6d05b5ec62 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm2t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm2t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf.robot
index fb4ec99418..c0c9ccbd10 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm2t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm2t-testpmd-reconf.robot
index cbcccfc194..ce8612ca12 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm2t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm2t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr.robot
index 7dd950e651..403cd07e42 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm2t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm2t-testpmd-ndrpdr.robot
index 1ddc8250f4..6826637127 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm2t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm2t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr.robot
index c62a4f5676..ddc29e3230 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm2t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm2t-testpmd-ndrpdr.robot
index 9848d01f5d..919d92dc6e 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm2t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm2t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf.robot
index 8d21fee2f0..6b81b4fea9 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet loss L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm2t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm2t-testpmd-reconf.robot
index f907f807a3..62542a295b 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm2t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm2t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet loss L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm1t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm1t-testpmd-ndrpdr.robot
index a00bd2df8c..d3b77be2f1 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm1t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm1t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm2t-testpmd-ndrpdr.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm2t-testpmd-ndrpdr.robot
index a89d47a730..3353225f00 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm2t-testpmd-ndrpdr.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm2t-testpmd-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +80,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf.robot
index 8f82411342..90e5f1458d 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet loss L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm2t-testpmd-reconf.robot b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm2t-testpmd-reconf.robot
index d34c71d5c0..ddb9c88b1a 100644
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm2t-testpmd-reconf.robot
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm2t-testpmd-reconf.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,31 +28,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet loss L2BD test cases with Dot1Q and
-| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet loss L2BD test cases with Dot1Q and
+| ... | VXLANoIPv4 with ${nf_chains} instances, ${nf_nodes} VMs per instance.**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for L2\
-| ... | switching of IPv4. Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is applied on link\
-| ... | between DUT1 and TG.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-\
-| ... | domain and MAC learning enabled. Qemu VNFs are connected\
-| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc\
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is\
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 for \
+| ... | l2 cross-connect switching of IPv4 Dot1q-IPv4-UDP-VXLAN-Eth-IPv4 is \
+| ... | applied on link between DUT1 and TG.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
+| ... | domain and MAC learning enabled. Qemu VNFs are connected \
+| ... | to VPP via vhost-user interfaces. Guest is running testpmd l2xc \
+| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance, then measured loss at this load\
-| ... | while additional chain is configured.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per\
-| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4\
-| ... | header, UPD header, VXLAN header and static payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and throughput NDR (Non Drop \
+| ... | Rate) with zero packet loss tolerance, then measured loss at this load \
+| ... | while additional chain is configured. \
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 256 flows per \
+| ... | flow-group) with all packets containing Ethernet header with .1Q, IPv4 \
+| ... | header, UPD header, VXLAN header and static payload. MAC addresses are \
| ... | matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,9 +78,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs Dot1Q-IP4-Vxlan L2BD switching config.\
+| | ... | - **[Cfg]** DUT runs Dot1Q-IP4-Vxlan L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure packet loss during reconfig at NDR load.\
+| | ... | - **[Ver]** Measure packet loss during reconfig at NDR load.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
@@ -105,8 +109,7 @@
| | And Configure chains of NFs connected via vhost-user
| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
| | ... | use_tuned_cfs=${False} | auto_scale=${False} | vnf=testpmd_io
-| | ${bidirectional_throughput}= | Find Throughput Using MLRsearch
-| | ${unidirectional_throughput}= | Evaluate | ${bidirectional_throughput} / 2.0
+| | ${unidirectional_throughput} = | Find Throughput Using MLRsearch
| | Start Traffic on Background | ${unidirectional_throughput}
| | And Initialize layer dot1q
| | ... | count=${nf_total_chains} | vlan_per_chain=${False}
diff --git a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/regenerate_testcases.py b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/regenerate_testcases.py
index 2754aff34f..842b53b1c7 100755
--- a/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/regenerate_testcases.py
+++ b/tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/srv6/10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr.robot b/tests/vpp/perf/srv6/10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr.robot
index e0968ec960..1b868a80ad 100644
--- a/tests/vpp/perf/srv6/10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,38 @@
|
| Test Template | Local Template
|
-| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
-| ... | one SID (SRH not inserted) test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-IPv6 on DUT1-DUT2, Eth-IPv6 on\
-| ... | TG-DUTn for IPv6 routing over SRv6.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and static route, SR policy and steering policy for one\
-| ... | direction and one SR behaviour (function) - End.DX6 - for other\
-| ... | direction. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 253 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv6 header with static payload.\
+| Documentation | **Packet throughput Segment routing over IPv6 dataplane with \
+| ... | one SID (SRH not inserted) test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6-IPv6 on DUT1-DUT2, \
+| ... | Eth-IPv6 on TG-DUTn for IPv6 routing over SRv6.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and static route, SR policy and steering policy for one \
+| ... | direction and one SR behaviour (function) - End.DX6 - for other \
+| ... | direction. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with \
+| ... | all packets containing Ethernet header,IPv6 header with static \
+| ... | payload. \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -80,16 +86,16 @@
| ${dut2_if2_ip6}= | 2001:2::1
| ${prefix}= | ${64}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 and DUT2 are configured with IPv6\
-| | ... | routing and static route, SR policy and steering policy for one\
-| | ... | direction and one SR behaviour (function) - End - for other direction.
+| | ... | - **[Cfg]** DUT1 and DUT2 are configured with IPv6 routing \
+| | ... | and static route, SR policy and steering policy for one direction \
+| | ... | and one SR behaviour (function) - End - for other direction. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr.robot b/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr.robot
index 9fe9266a77..12a0c4360f 100644
--- a/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,38 @@
|
| Test Template | Local Template
|
-| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
-| ... | two SIDs (SRH inserted) test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-SRH-IPv6 on DUT1-DUT2, Eth-IPv6\
-| ... | on TG-DUTn for IPv6 routing over SRv6.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and static route, SR policy and steering policy for one\
-| ... | direction and two SR behaviours (functions) - End and End.DX6 - for\
-| ... | other direction. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 253 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv6 header with static payload.\
+| Documentation | **Packet throughput Segment routing over IPv6 dataplane with \
+| ... | two SIDs (SRH inserted) test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6-SRH-IPv6 on DUT1-DUT2, \
+| ... | Eth-IPv6 on TG-DUTn for IPv6 routing over SRv6.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and static route, SR policy and steering policy for one \
+| ... | direction and two SR behaviours (functions) - End and End.DX6 - for \
+| ... | other direction. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with \
+| ... | all packets containing Ethernet header,IPv6 header with static \
+| ... | payload. \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -83,17 +89,17 @@
| ${dut2_if2_ip6}= | 2001:2::1
| ${prefix}= | ${64}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 and DUT2 are configured with IPv6\
-| | ... | routing and static route, SR policy and steering policy for one\
-| | ... | direction and two SR behaviours (functions) - End and End.DX6 - for\
-| | ... | other direction.
+| | ... | - **[Cfg]** DUT1 and DUT2 are configured with IPv6 \
+| | ... | routing and static route, SR policy and steering policy for one \
+| | ... | direction and two SR behaviours (functions) - End and End. DX6 - for \
+| | ... | other direction. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr.robot b/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr.robot
index 093528da1e..8e08ae36e8 100644
--- a/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,38 @@
|
| Test Template | Local Template
|
-| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
-| ... | two SIDs (SRH inserted) without decapsulation test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-SRH-IPv6 on DUT1-DUT2 and\
+| Documentation | **Packet throughput Segment routing over IPv6 dataplane with \
+| ... | two SIDs (SRH inserted) without decapsulation test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6-SRH-IPv6 on DUT1-DUT2 and \
| ... | DUTn->TG, Eth-IPv6 on TG->DUTn for IPv6 routing over SRv6.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and static route, SR policy and steering policy for one\
-| ... | direction and one SR behaviour (function) - End - for other direction.\
-| ... | DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 253 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv6 header with static payload.\
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and static route, SR policy and steering policy for one \
+| ... | direction and one SR behaviour (function) - End - for other direction. \
+| ... | DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with \
+| ... | all packets containing Ethernet header,IPv6 header with static \
+| ... | payload. \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -83,16 +89,16 @@
| ${dut2_if2_ip6}= | 2001:2::1
| ${prefix}= | ${64}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 and DUT2 are configured with IPv6\
-| | ... | routing and static route, SR policy and steering policy for one\
-| | ... | direction and one SR behaviour (function) - End - for other direction.
+| | ... | - **[Cfg]** DUT1 and DUT2 are configured with IPv6 routing \
+| | ... | and static route, SR policy and steering policy for one direction \
+| | ... | and one SR behaviour (function) - End - for other direction. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr.robot b/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr.robot
index c3fab92f9d..dbaa5f3282 100644
--- a/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,40 @@
|
| Test Template | Local Template
|
-| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
-| ... | Dynamic SRv6 proxy test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-SRH-IPv6 on DUT1-DUT2 and\
+| Documentation | **Packet throughput Segment routing over IPv6 dataplane with \
+| ... | Dynamic SRv6 proxy test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6-SRH-IPv6 on DUT1-DUT2 and \
| ... | DUTn->TG, Eth-IPv6 on TG->DUTn and DUTn-CNT for IPv6 routing over SRv6.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and static route, SR policy and steering policy for one\
-| ... | direction and one SR behaviour (function) - End.AD - for other\
-| ... | direction. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 253 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv6 header with static payload.\
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and static route, SR policy and steering policy for one \
+| ... | direction and one SR behaviour (function) - End.AD - for other \
+| ... | direction. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with \
+| ... | all packets containing Ethernet header,IPv6 header with static \
+| ... | payload. \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3 and Segment Routing for Service Chaining - internet draft 01.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.and Segment Routing for Service Chaining \
+| ... | - internet draft 01.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so | srv6ad_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ... | srv6ad_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -91,7 +99,7 @@
| ${prefix}= | ${64}
| ${mem_prefix}= | ${128}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain
@@ -99,11 +107,11 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 and DUT2 are configured with IPv6\
-| | ... | routing and static route, SR policy and steering policy for one\
-| | ... | direction and SR behaviour (function) - End.AD - for other direction.
+| | ... | - **[Cfg]** DUT1 and DUT2 are configured with IPv6 routing \
+| | ... | and static route, SR policy and steering policy for one direction \
+| | ... | and SR behaviour (function) - End.AD - for other direction. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr.robot b/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr.robot
index 0eb6090ec1..8692273149 100644
--- a/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,40 @@
|
| Test Template | Local Template
|
-| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
-| ... | Masquerading SRv6 proxy test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-SRH-IPv6 on DUT1-DUT2, DUTn-CNT\
-| ... | and DUTn->TG, Eth-IPv6 on TG->DUTn for IPv6 routing over SRv6.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and static route, SR policy and steering policy for one\
-| ... | direction and one SR behaviour (function) - End.AM - for other\
-| ... | direction. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 253 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv6 header with static payload.\
+| Documentation | **Packet throughput Segment routing over IPv6 dataplane with \
+| ... | Masquerading SRv6 proxy test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6-SRH-IPv6 on DUT1-DUT2, \
+| ... | DUTn-CNT and DUTn->TG, Eth-IPv6 on TG->DUTn for IPv6 routing over SRv6.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and static route, SR policy and steering policy for one \
+| ... | direction and one SR behaviour (function) - End.AM - for other \
+| ... | direction. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with \
+| ... | all packets containing Ethernet header,IPv6 header with static \
+| ... | payload. \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3 and Segment Routing for Service Chaining - internet draft 01.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.and Segment Routing for Service Chaining \
+| ... | - internet draft 01.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so | srv6am_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ... | srv6am_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -91,7 +99,7 @@
| ${prefix}= | ${64}
| ${mem_prefix}= | ${128}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain
@@ -99,11 +107,11 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 and DUT2 are configured with IPv6\
-| | ... | routing and static route, SR policy and steering policy for one\
-| | ... | direction and SR behaviour (function) - End.AM - for other direction.
+| | ... | - **[Cfg]** DUT1 and DUT2 are configured with IPv6 routing \
+| | ... | and static route, SR policy and steering policy for one direction \
+| | ... | and SR behaviour (function) - End.AM - for other direction. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr.robot b/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr.robot
index 63d9751911..718958f370 100644
--- a/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr.robot
+++ b/tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,40 @@
|
| Test Template | Local Template
|
-| Documentation | *Packet throughput Segment routing over IPv6 dataplane with\
-| ... | Static SRv6 proxy test cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-SRH-IPv6 on DUT1-DUT2 and\
+| Documentation | **Packet throughput Segment routing over IPv6 dataplane with \
+| ... | Static SRv6 proxy test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6-SRH-IPv6 on DUT1-DUT2 and \
| ... | DUTn->TG, Eth-IPv6 on TG->DUTn and DUTn-CNT for IPv6 routing over SRv6.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv6\
-| ... | routing and static route, SR policy and steering policy for one\
-| ... | direction and one SR behaviour (function) - End.AS - for other\
-| ... | direction. DUT1 and DUT2 are tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 253 flows per flow-group) with\
-| ... | all packets containing Ethernet header,IPv6 header with static payload.\
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv6 \
+| ... | routing and static route, SR policy and steering policy for one \
+| ... | direction and one SR behaviour (function) - End.AS - for other \
+| ... | direction. DUT1 and DUT2 are tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with \
+| ... | all packets containing Ethernet header,IPv6 header with static \
+| ... | payload. \
| ... | MAC addresses are matching MAC addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* SRv6 Network Programming -\
-| ... | draft 3 and Segment Routing for Service Chaining - internet draft 01.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** SRv6 Network \
+| ... | Programming - draft 3.and Segment Routing for Service Chaining \
+| ... | - internet draft 01.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so | srv6as_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | memif_plugin.so
+| ... | srv6as_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -91,7 +99,7 @@
| ${prefix}= | ${64}
| ${mem_prefix}= | ${128}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
# Container
| ${container_engine}= | Docker
| ${container_chain_topology}= | chain
@@ -99,11 +107,11 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT1 and DUT2 are configured with IPv6\
-| | ... | routing and static route, SR policy and steering policy for one\
-| | ... | direction and SR behaviour (function) - End.AS - for other direction.
+| | ... | - **[Cfg]** DUT1 and DUT2 are configured with IPv6 routing \
+| | ... | and static route, SR policy and steering policy for one direction \
+| | ... | and SR behaviour (function) - End.AS - for other direction. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/srv6/regenerate_testcases.py b/tests/vpp/perf/srv6/regenerate_testcases.py
index f6bbf0a102..1a151af0f8 100755
--- a/tests/vpp/perf/srv6/regenerate_testcases.py
+++ b/tests/vpp/perf/srv6/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
index 8e2adacaad..bfeea9955c 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost and vpp
-| ... | link bonding*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. 802.1q
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with VPP
-| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with vhost and vpp \
+| ... | link bonding**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | 802.1q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with VPP \
+| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and \
| ... | DUT2 and L2 bridge-domain with MAC learning enabled. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lacp_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lacp_plugin.so
+| ... | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -76,14 +82,14 @@
| ${bd_id1}= | 1
| ${bd_id2}= | 2
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index c1750b0273..0a09e4b1a3 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost and vpp
-| ... | link bonding*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. 802.1q
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with VPP
-| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with vhost and vpp \
+| ... | link bonding**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | 802.1q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with VPP \
+| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and \
| ... | DUT2 and L2 bridge-domain with MAC learning enabled. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lacp_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lacp_plugin.so
+| ... | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -76,14 +82,14 @@
| ${bd_id1}= | 1
| ${bd_id2}= | 2
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
index 58a06f9fc3..ed320ca6f6 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost and vpp
-| ... | link bonding*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with VPP
-| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and
+| Documentation | **RFC2544: Pkt throughput L2XC test cases with vhost and vpp \
+| ... | link bonding**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect. \
+| ... | 802.1q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with VPP \
+| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and \
| ... | DUT2 and L2 cross- connect. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lacp_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lacp_plugin.so
+| ... | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,14 +80,14 @@
| ${bond_mode}= | lacp
| ${lb_mode}= | l34
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index bf86b9cebb..aac2c62e02 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -28,33 +28,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost and vpp
-| ... | link bonding*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with VPP
-| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and
+| Documentation | **RFC2544: Pkt throughput L2XC test cases with vhost and vpp \
+| ... | link bonding**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect. \
+| ... | 802.1q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with VPP \
+| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and \
| ... | DUT2 and L2 cross- connect. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lacp_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | lacp_plugin.so
+| ... | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -74,14 +80,14 @@
| ${bond_mode}= | lacp
| ${lb_mode}= | l34
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
deleted file mode 100644
index d5b200db1f..0000000000
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 3_NODE_DOUBLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | DOT1Q | L2BDMACLRN | BASE | VHOST | 1VM
-| ... | VHOST_1024 | LBOND | LBOND_VPP | LBOND_MODE_LACP | LBOND_LB_L34
-| ... | LBOND_2L | VM_TESTPMD | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | vhost
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost and vpp
-| ... | link bonding*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1=DUT2-TG 3-node circular topology
-| ... | with single links between TG and DUT nodes and double link between DUT
-| ... | nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. 802.1q
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with VPP
-| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and
-| ... | DUT2 and L2 bridge-domain with MAC learning enabled. Qemu VNFs are \
-| ... | connected to VPP via vhost-user interfaces. Guest is running testpmd \
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
-| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
-| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lacp_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 4
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L2
-| ${overhead}= | ${4}
-| ${subid}= | 10
-| ${tag_rewrite}= | pop-1
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-| ${nf_chains}= | ${1}
-| ${nf_nodes}= | ${1}
-# Link bonding config
-| ${bond_mode}= | lacp
-| ${lb_mode}= | l34
-| ${bd_id1}= | 1
-| ${bd_id2}= | 2
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | Set Test Variable | ${vlan_strip_off} | ${TRUE}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize L2 bridge domains with Vhost-User and VLAN with VPP link bonding in a 3-node circular topology
-| | ... | ${bd_id1} | ${bd_id2} | ${subid}
-| | ... | ${tag_rewrite} | ${bond_mode} | ${lb_mode}
-| | And Configure chains of NFs connected via vhost-user
-| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
-| | ... | use_tuned_cfs=${False} | auto_scale=${True} | vnf=testpmd_io
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
deleted file mode 100644
index 6728676227..0000000000
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 3_NODE_DOUBLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | DOT1Q | L2BDMACLRN | BASE | VHOST | 1VM
-| ... | VHOST_1024 | LBOND | LBOND_VPP | LBOND_MODE_LACP | LBOND_LB_L34
-| ... | LBOND_2L | NF_VPPL2XC | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | 2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | vhost
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost and vpp
-| ... | link bonding*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1=DUT2-TG 3-node circular topology
-| ... | with single links between TG and DUT nodes and double link between DUT
-| ... | nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. 802.1q
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with VPP
-| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and
-| ... | DUT2 and L2 bridge-domain with MAC learning enabled. Qemu VNFs are \
-| ... | connected to VPP via vhost-user interfaces. Guest is running VPP l2xc \
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
-| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
-| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lacp_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 4
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L2
-| ${overhead}= | ${4}
-| ${subid}= | 10
-| ${tag_rewrite}= | pop-1
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-| ${nf_chains}= | ${1}
-| ${nf_nodes}= | ${1}
-# Link bonding config
-| ${bond_mode}= | lacp
-| ${lb_mode}= | l34
-| ${bd_id1}= | 1
-| ${bd_id2}= | 2
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | Set Test Variable | ${vlan_strip_off} | ${TRUE}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize L2 bridge domains with Vhost-User and VLAN with VPP link bonding in a 3-node circular topology
-| | ... | ${bd_id1} | ${bd_id2} | ${subid}
-| | ... | ${tag_rewrite} | ${bond_mode} | ${lb_mode}
-| | And Configure chains of NFs connected via vhost-user
-| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
-| | ... | use_tuned_cfs=${False} | auto_scale=${True}
-| | ... | vnf=vppl2xc_2vhostvr1024
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
deleted file mode 100644
index 7053484568..0000000000
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ /dev/null
@@ -1,157 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 3_NODE_DOUBLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | DOT1Q | L2XCFWD | BASE | VHOST | 1VM
-| ... | VHOST_1024 | LBOND | LBOND_VPP | LBOND_MODE_LACP | LBOND_LB_L34
-| ... | LBOND_2L | NF_TESTPMD | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | vhost
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost and vpp
-| ... | link bonding*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1=DUT2-TG 3-node circular topology
-| ... | with single links between TG and DUT nodes and double link between DUT
-| ... | nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with VPP
-| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and
-| ... | DUT2 and L2 cross- connect. Qemu VNFs are \
-| ... | connected to VPP via vhost-user interfaces. Guest is running testpmd \
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
-| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
-| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lacp_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 4
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L2
-| ${overhead}= | ${4}
-| ${subid}= | 10
-| ${tag_rewrite}= | pop-1
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-| ${nf_chains}= | ${1}
-| ${nf_nodes}= | ${1}
-# Link bonding config
-| ${bond_mode}= | lacp
-| ${lb_mode}= | l34
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | Set Test Variable | ${vlan_strip_off} | ${TRUE}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize L2 xconnect with Vhost-User and VLAN with VPP link bonding in 3-node circular topology
-| | ... | ${subid} | ${tag_rewrite} | ${bond_mode} | ${lb_mode}
-| | And Configure chains of NFs connected via vhost-user
-| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
-| | ... | use_tuned_cfs=${False} | auto_scale=${True} | vnf=testpmd_io
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
deleted file mode 100644
index c128241e48..0000000000
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ /dev/null
@@ -1,158 +0,0 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
-# 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.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-|
-| Force Tags | 3_NODE_DOUBLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
-| ... | NIC_Intel-X710 | DOT1Q | L2XCFWD | BASE | VHOST |1VM
-| ... | VHOST_1024 | LBOND | LBOND_VPP | LBOND_MODE_LACP | LBOND_LB_L34
-| ... | LBOND_2L | NF_VPPL2XC | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | 2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-|
-| Suite Setup | Setup suite topology interfaces | performance
-| Suite Teardown | Tear down suite | performance
-| Test Setup | Setup test | performance
-| Test Teardown | Tear down test | performance | vhost
-|
-| Test Template | Local Template
-|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost and vpp
-| ... | link bonding*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1=DUT2-TG 3-node circular topology
-| ... | with single links between TG and DUT nodes and double link between DUT
-| ... | nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with VPP
-| ... | link bonding (mode LACP, transmit policy l34) on link between DUT1 and
-| ... | DUT2 and L2 cross- connect. Qemu VNFs are \
-| ... | connected to VPP via vhost-user interfaces. Guest is running VPP l2xc \
-| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
-| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
-| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | lacp_plugin.so
-| ${crypto_type}= | ${None}
-| ${nic_name}= | Intel-X710
-| ${nic_driver}= | vfio-pci
-| ${nic_rxq_size}= | 0
-| ${nic_txq_size}= | 0
-| ${nic_pfs}= | 4
-| ${nic_vfs}= | 0
-| ${osi_layer}= | L2
-| ${overhead}= | ${4}
-| ${subid}= | 10
-| ${tag_rewrite}= | pop-1
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-| ${nf_chains}= | ${1}
-| ${nf_nodes}= | ${1}
-# Link bonding config
-| ${bond_mode}= | lacp
-| ${lb_mode}= | l34
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
-| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
-| |
-| | ... | *Arguments:*
-| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
-| | ... | Type: integer, string
-| | ... | - phy_cores - Number of physical cores. Type: integer
-| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
-| |
-| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
-| |
-| | Set Test Variable | \${frame_size}
-| | Set Test Variable | ${vlan_strip_off} | ${TRUE}
-| |
-| | Given Set Max Rate And Jumbo
-| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
-| | And Pre-initialize layer driver | ${nic_driver}
-| | And Apply startup configuration on all VPP DUTs
-| | When Initialize layer driver | ${nic_driver}
-| | And Initialize L2 xconnect with Vhost-User and VLAN with VPP link bonding in 3-node circular topology
-| | ... | ${subid} | ${tag_rewrite} | ${bond_mode} | ${lb_mode}
-| | And Configure chains of NFs connected via vhost-user
-| | ... | nf_chains=${nf_chains} | nf_nodes=${nf_nodes} | jumbo=${jumbo}
-| | ... | use_tuned_cfs=${False} | auto_scale=${True}
-| | ... | vnf=vppl2xc_2vhostvr1024
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
index cd5ecd3ab2..62c6583579 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,33 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with vhost and IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. IEEE\
-| ... | 802.1Q tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
+| Documentation | **RFC2544: Pkt throughput L2BD with vhost and IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | IEEE 802.1Q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-\
| ... | domain and MAC learning enabled. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUTs. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUTs. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -72,14 +78,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD switching with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index 56d8c257ec..5c67da5b81 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,33 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with vhost abd IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. IEEE\
-| ... | 802.1Q tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\
+| Documentation | **RFC2544: Pkt throughput L2BD with vhost abd IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | IEEE 802.1Q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-\
| ... | domain and MAC learning enabled. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are\
-| ... | generated by TG on links to DUTs. TG traffic profile contains two L3\
-| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with\
-| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\
-| ... | and static payload. MAC addresses are matching MAC addresses of the TG\
-| ... | node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are \
+| ... | generated by TG on links to DUTs. TG traffic profile contains two L3 \
+| ... | flow-groups (flow-group per direction, 254 flows per flow-group) with \
+| ... | all packets containing Ethernet header, IPv4 header with IP \
+| ... | protocol=61 and static payload. MAC addresses are matching MAC \
+| ... | addresses of the TG node interfaces.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -72,14 +78,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD switching with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
index 2f557bc52e..fb60127794 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
-| ... | connect. Qemu VNFs are \
+| Documentation | **RFC2544: Pkt throughput L2XC test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect. \
+| ... | 802.1q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | cross-connect. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -68,14 +73,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index 36109f9501..94bb7386b7 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q
-| ... | tagging is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
-| ... | connect. Qemu VNFs are \
+| Documentation | **RFC2544: Pkt throughput L2XC test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect. \
+| ... | 802.1q tagging is applied on link between DUT1 and DUT2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | cross-connect. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -68,14 +73,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
index cb65245cc0..e917492f17 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-
-| ... | domain and MAC learning enabled. Qemu VNFs are \
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-domain and MAC learning enabled. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
-| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -66,14 +71,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index a0c7dd4f1d..225538c366 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-
-| ... | domain and MAC learning enabled. Qemu VNFs are \
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-domain and MAC learning enabled. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
-| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -66,14 +71,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
index b1e2570dc4..1de12975fa 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
-| ... | connect. Qemu VNFs are \
+| Documentation | **RFC2544: Pkt throughput L2XC test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | cross-connect. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +70,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index b945fc84f9..a5c2496422 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
-| ... | connect. Qemu VNFs are \
+| Documentation | **RFC2544: Pkt throughput L2XC test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | cross-connect. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +70,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot
index 507043d507..cd69cd7f4a 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| Documentation | **RFC2544: Pkt throughput IPv4 test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
| ... | routing and two static IPv4 /24 route entries. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +70,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot
index a1dc929645..c7bde1476c 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4
+| Documentation | **RFC2544: Pkt throughput IPv4 test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with IPv4. \
| ... | routing and two static IPv4 /24 route entries. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running VPP ip4 \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +70,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
index c0c0bfd720..f497cd5bc0 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with VXLANoIPv4
-| ... | and vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with VXLANoIPv4. \
+| ... | and vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
| ... | Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-
-| ... | domain and MAC learning enabled. Qemu VNFs are \
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-domain and MAC learning enabled. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
+| ... | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -69,14 +75,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index 8e9ac75c17..a481705e6f 100644
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with VXLANoIPv4
-| ... | and vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with VXLANoIPv4. \
+| ... | and vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-DUT2-TG 3-node circular \
+| ... | topology with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
| ... | Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUT1 and DUT2.
-| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-
-| ... | domain and MAC learning enabled. Qemu VNFs are \
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2 \
+| ... | bridge-domain and MAC learning enabled. Qemu VNFs are \
| ... | connected to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1/DUT2 is \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
+| ... | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -69,14 +75,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
index d6b3430c63..79c20a92bd 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with vhost and IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. IEEE\
-| ... | 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain and\
-| ... | MAC learning enabled. Qemu VNFs are connected to VPP via\
+| Documentation | **RFC2544: Pkt throughput L2BD with vhost and IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | IEEE 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge-\
+| ... | domain and \
+| ... | MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running testpmd interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,14 +77,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD switching with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index aff917f4fa..ab8c81d797 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with vhost and IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. IEEE\
-| ... | 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain and\
-| ... | MAC learning enabled. Qemu VNFs are connected to VPP via\
+| Documentation | **RFC2544: Pkt throughput L2BD with vhost and IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | IEEE 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge-\
+| ... | domain and \
+| ... | MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP l2xc interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,14 +77,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD switching with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
index 7b96e402c3..38ade9e8a7 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,32 +27,38 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD with vhost and IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. IEEE\
-| ... | 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain and\
-| ... | MAC learning enabled. Qemu VNFs are connected to VPP via\
+| Documentation | **RFC2544: Pkt throughput L2BD with vhost and IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... | IEEE 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge-\
+| ... | domain and \
+| ... | MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP l2xc interconnecting \
| ... | virtio interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on\
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets\
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\
-| ... | payload. MAC addresses are matching MAC addresses of NFs nodes\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of NFs nodes \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -71,14 +77,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2BD switching with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2BD switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
index b87205b04a..9ef9d2933c 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC with vhost abd IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect of IPv4.\
-| ... | IEEE 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross connect and\
-| ... | MAC learning enabled. Qemu VNFs are connected to VPP via\
+| Documentation | **RFC2544: Pkt throughput L2XC with vhost abd IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect \
+| ... | of IPv4. IEEE 802.1Q tagging is applied on link between DUT1-if2 \
+| ... | and TG-if2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 cross-\
+| ... | connect and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running testpmd interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows\
-| ... | per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static\ payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows \
+| ... | per flow-group) with all packets containing Ethernet header, IPv4. \
+| ... | header with IP protocol=61 and static \ payload. MAC addresses are \
| ... | matching MAC addresses of NFs nodes interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -68,14 +74,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2XC switching with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2XC switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index 949873b0cf..ae962ab420 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC with vhost abd IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect of IPv4.\
-| ... | IEEE 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross connect and\
-| ... | MAC learning enabled. Qemu VNFs are connected to VPP via\
+| Documentation | **RFC2544: Pkt throughput L2XC with vhost abd IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect \
+| ... | of IPv4. IEEE 802.1Q tagging is applied on link between DUT1-if2 \
+| ... | and TG-if2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 cross-\
+| ... | connect and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP l2xc interconnecting \
| ... | vhost-user interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows\
-| ... | per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static\ payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows \
+| ... | per flow-group) with all packets containing Ethernet header, IPv4. \
+| ... | header with IP protocol=61 and static \ payload. MAC addresses are \
| ... | matching MAC addresses of NFs nodes interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -68,14 +74,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2XC switching with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2XC switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
index 3dbe0f2d91..fbfc8dc44a 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,37 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC with vhost abd IEEE 802.1Q test
-| ... | cases*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with\
-| ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect of IPv4.\
-| ... | IEEE 802.1Q tagging is applied on link between DUT1-if2 and TG-if2.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross connect and\
-| ... | MAC learning enabled. Qemu VNFs are connected to VPP via\
+| Documentation | **RFC2544: Pkt throughput L2XC with vhost abd IEEE 802.1Q \
+| ... | test cases**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 cross connect \
+| ... | of IPv4. IEEE 802.1Q tagging is applied on link between DUT1-if2 \
+| ... | and TG-if2.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 cross-\
+| ... | connect and MAC learning enabled. Qemu VNFs are connected to VPP via \
| ... | vhost-user interfaces. Guest is running VPP l2xc interconnecting \
| ... | virtio interfaces, rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows\
-| ... | per flow-group) with all packets containing Ethernet header, IPv4\
-| ... | header with IP protocol=61 and static\ payload. MAC addresses are\
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows \
+| ... | per flow-group) with all packets containing Ethernet header, IPv4. \
+| ... | header with IP protocol=61 and static \ payload. MAC addresses are \
| ... | matching MAC addresses of NFs nodes interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -68,14 +74,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] Each DUT runs L2XC switching with VLAN and uses ${phy_cores}\
-| | ... | physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Cfg]** Each DUT runs L2XC switching with VLAN and uses \
+| | ... | ${phy_cores} physical core(s) for worker threads.
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
index f873f23751..9a06a87e6c 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
| ... | domain and MAC learning enabled. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
-| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -66,14 +71,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index 0c2bdee531..245f6b6aff 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
| ... | domain and MAC learning enabled. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
-| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -66,14 +71,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
index 8b6e1d671b..38c5227a2e 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,31 +27,36 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2BD test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput L2BD test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 bridge- \
| ... | domain and MAC learning enabled. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting virtio interfaces, rxd/txd=1024. DUT1 is tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 254 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
-| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 254 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -66,14 +71,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
index 0989313b78..987a1cd8da 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput L2XC test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 cross- \
| ... | connect. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +70,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
index d1bd1a056c..0b3682b6a6 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput L2XC test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 cross- \
| ... | connect. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +70,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
index 2e1988d89a..d626ed0501 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,29 +27,34 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput L2XC test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput L2XC test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-
-| ... | connect. Qemu VNFs are connected to VPP via vhost-user interfaces \
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with L2 cross- \
+| ... | connect. Qemu VNFs are connected to VPP via vhost-user interfaces. \
| ... | Guest is running VPP l2xc interconnecting virtio interfaces, \
| ... | rxd/txd=1024. DUT1 is tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 254 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -64,14 +69,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2XC switching config.
+| | ... | - **[Cfg]** DUT runs L2XC switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot
index 91be50c74c..377c900687 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput IPv4 test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
| ... | routing and two static IPv4 /24 route entries. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running testpmd \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +70,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot
index c1134274a0..728a727fdc 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput IPv4 test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
| ... | routing and two static IPv4 /24 route entries. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running VPP ip4 \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUT1 is tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC \
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +70,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2virtiovr1024-1vm-vppip4-ndrpdr.robot b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2virtiovr1024-1vm-vppip4-ndrpdr.robot
index c21031eabb..72dad7f2c1 100644
--- a/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2virtiovr1024-1vm-vppip4-ndrpdr.robot
+++ b/tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2virtiovr1024-1vm-vppip4-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,30 +27,35 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Pkt throughput IPv4 test cases with vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Pkt throughput IPv4 test cases with vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4. \
| ... | routing and two static IPv4 /24 route entries. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running VPP ip4 \
| ... | interconnecting virtio interfaces, rxd/txd=1024. DUT1 is tested \
| ... | with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
-| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
-| ... | flow-group) with all packets containing Ethernet header, IPv4 header
-| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUTs. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per \
+| ... | flow-group) with all packets containing Ethernet header, IPv4 header \
+| ... | with IP protocol=61 and static payload. MAC addresses are matching MA\C
| ... | addresses of the TG node interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -65,14 +70,14 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
diff --git a/tests/vpp/perf/vm_vhost/regenerate_testcases.py b/tests/vpp/perf/vm_vhost/regenerate_testcases.py
index ec754aa261..e22f6de5c3 100755
--- a/tests/vpp/perf/vm_vhost/regenerate_testcases.py
+++ b/tests/vpp/perf/vm_vhost/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr.robot
index 610bc2ae26..1fde752893 100644
--- a/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermit-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,33 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with VXLANoIPv4
-| ... | and vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Packet throughput L2BD test cases with \
+| ... | VXLANoIPv4 and vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
| ... | Eth-IPv4-VXLAN-Eth-IPv4 is applied on link from/to TG.
-| ... | *[Cfg] DUT configuration:* DUTs are configured with L2 bridge-
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUTs are configured with L2 bridge- \
| ... | domain and MAC learning enabled. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUTs are \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
-| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
+| ... | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +81,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - L2 Frame Size [B]. Type: integer
diff --git a/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr.robot
index e73dceeaa8..ed3af348ed 100644
--- a/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,33 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with VXLANoIPv4
-| ... | and vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Packet throughput L2BD test cases with \
+| ... | VXLANoIPv4 and vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
| ... | Eth-IPv4-VXLAN-Eth-IPv4 is applied on link from/to TG.
-| ... | *[Cfg] DUT configuration:* DUTs are configured with L2 bridge-
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUTs are configured with L2 bridge- \
| ... | domain and MAC learning enabled. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUTs are \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
-| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | acl_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
+| ... | vhost_plugin.so | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +81,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - L2 Frame Size [B]. Type: integer
diff --git a/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr.robot b/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr.robot
index faf85ebb1d..827e79b80c 100644
--- a/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr.robot
+++ b/tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
@@ -27,33 +27,39 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput L2BD test cases with VXLANoIPv4
-| ... | and vhost*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology
+| Documentation | **RFC2544: Packet throughput L2BD test cases with \
+| ... | VXLANoIPv4 and vhost**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4 for L2 switching of IPv4. \
| ... | Eth-IPv4-VXLAN-Eth-IPv4 is applied on link from/to TG.
-| ... | *[Cfg] DUT configuration:* DUTs are configured with L2 bridge-
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUTs are configured with L2 bridge- \
| ... | domain and MAC learning enabled. Qemu VNFs are connected \
| ... | to VPP via vhost-user interfaces. Guest is running VPP l2xc \
| ... | interconnecting vhost-user interfaces, rxd/txd=1024. DUTs are \
| ... | tested with ${nic_name}.
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on
-| ... | links to DUTs. TG traffic profile contains two L3 flow-groups
-| ... | (flow-group per direction, 253 flows per flow-group) with all packets
-| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static
-| ... | payload. MAC addresses are matching MAC addresses of the TG node
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on \
+| ... | links to DUTs. TG traffic profile contains two L3 flow-groups \
+| ... | (flow-group per direction, 253 flows per flow-group) with all packets \
+| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static \
+| ... | payload. MAC addresses are matching MAC addresses of the TG node \
| ... | interfaces.
-| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
+| ... |
+| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
+| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | vhost_plugin.so
+| ... | vxlan_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vfio-pci
@@ -75,9 +81,9 @@
*** Keywords ***
| Local Template
| | [Documentation]
-| | ... | [Cfg] DUT runs L2BD switching config.
+| | ... | - **[Cfg]** DUT runs L2BD switching config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - L2 Frame Size [B]. Type: integer
diff --git a/tests/vpp/perf/vts/regenerate_testcases.py b/tests/vpp/perf/vts/regenerate_testcases.py
index f5467bfe93..4d34792d2e 100755
--- a/tests/vpp/perf/vts/regenerate_testcases.py
+++ b/tests/vpp/perf/vts/regenerate_testcases.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# 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:
diff --git a/topologies/available/2n_hw_testbed1.yaml.example b/topologies/available/2n_hw_testbed1.yaml.example
index dee8f730de..4155f6eb0a 100644
--- a/topologies/available/2n_hw_testbed1.yaml.example
+++ b/topologies/available/2n_hw_testbed1.yaml.example
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/topologies/available/3n_aws.template b/topologies/available/3n_aws.template
index 631b0be63b..2f80a18a67 100644
--- a/topologies/available/3n_aws.template
+++ b/topologies/available/3n_aws.template
@@ -62,11 +62,6 @@ nodes:
username: testuser
password: Csit1234
uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
interfaces:
port1:
# dut2_instance/p1 - 50GE port1 on ENA NIC.
diff --git a/topologies/available/3n_azure.template b/topologies/available/3n_azure.template
index df595fd4b8..0a4dccea9a 100644
--- a/topologies/available/3n_azure.template
+++ b/topologies/available/3n_azure.template
@@ -36,11 +36,6 @@ nodes:
username: testuser
password: Csit1234
uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
interfaces:
port1:
# dut1_instance/p1 - 40GE port1 on Mellanox NIC.
diff --git a/topologies/available/3n_c6gn.template b/topologies/available/3n_c6gn.template
new file mode 100644
index 0000000000..a9245b1b46
--- /dev/null
+++ b/topologies/available/3n_c6gn.template
@@ -0,0 +1,78 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # tg_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
+ DUT1:
+ type: DUT
+ host: "{{ dut1_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ honeycomb:
+ user: admin
+ passwd: admin
+ port: 8183
+ netconf_port: 2831
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: {{ dut1_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-100G
+ port2:
+ # dut1_instance/p2 - 100GE port2 on ENA NIC.
+ mac_address: {{ dut1_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link21
+ model: Amazon-Nitro-100G
+ DUT2:
+ type: DUT
+ host: "{{ dut2_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut2_instance/p1 - 100GE port1 on ENA NIC.
+ mac_address: {{ dut2_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link21
+ model: Amazon-Nitro-100G
+ port2:
+ # dut2_instance/p2 - 100GE port1 on ENA NIC.
+ mac_address: {{ dut2_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-100G
+
diff --git a/topologies/available/3n_c6in.template b/topologies/available/3n_c6in.template
new file mode 100644
index 0000000000..9f289d726a
--- /dev/null
+++ b/topologies/available/3n_c6in.template
@@ -0,0 +1,78 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "{{ tg_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # tg_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: {{ tg_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # tg_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: {{ tg_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-200G
+ DUT1:
+ type: DUT
+ host: "{{ dut1_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ honeycomb:
+ user: admin
+ passwd: admin
+ port: 8183
+ netconf_port: 2831
+ interfaces:
+ port1:
+ # dut1_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: {{ dut1_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link1
+ model: Amazon-Nitro-200G
+ port2:
+ # dut1_instance/p2 - 200GE port2 on ENA NIC.
+ mac_address: {{ dut1_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link21
+ model: Amazon-Nitro-200G
+ DUT2:
+ type: DUT
+ host: "{{ dut2_public_ip }}"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # dut2_instance/p1 - 200GE port1 on ENA NIC.
+ mac_address: {{ dut2_if1_mac }}
+ pci_address: "0000:00:06.0"
+ link: link21
+ model: Amazon-Nitro-200G
+ port2:
+ # dut2_instance/p2 - 200GE port1 on ENA NIC.
+ mac_address: {{ dut2_if2_mac }}
+ pci_address: "0000:00:07.0"
+ link: link2
+ model: Amazon-Nitro-200G
+
diff --git a/topologies/available/3n_hw_testbed1.yaml.example b/topologies/available/3n_hw_testbed1.yaml.example
index e476ae05fb..565b8555ab 100644
--- a/topologies/available/3n_hw_testbed1.yaml.example
+++ b/topologies/available/3n_hw_testbed1.yaml.example
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# 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:
diff --git a/topologies/available/lf_2n_clx_testbed27.yaml b/topologies/available/lf_2n_clx_testbed27.yaml
index dddc8dd7a6..63e16d90e2 100644
--- a/topologies/available/lf_2n_clx_testbed27.yaml
+++ b/topologies/available/lf_2n_clx_testbed27.yaml
@@ -22,7 +22,7 @@ nodes:
pci_address: "0000:18:00.0"
ip4_address: "172.16.10.2"
driver: i40e
- link: link1
+ link: disabled1
model: Intel-X710
port2:
# s34-t27-tg1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
@@ -30,7 +30,7 @@ nodes:
pci_address: "0000:18:00.1"
ip4_address: "172.16.20.2"
driver: i40e
- link: link2
+ link: disabled2
model: Intel-X710
port3:
# s34-t27-tg1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
@@ -76,26 +76,42 @@ nodes:
# s34-t27-tg1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
mac_address: "ec:0d:9a:8c:c6:a7"
pci_address: "0000:5e:00.1"
- ip4_address: "172.16.70.1"
+ ip4_address: "172.16.80.2"
driver: mlx5_core
link: link8
model: Mellanox-CX556A
port9:
- # s34-t27-tg1-c6/p1 - 100GE-port1 Intel E810-CQDA2 2p100GE.
- mac_address: "b4:96:91:a4:24:e8"
+ # s34-t27-tg1-c6/p1 - 100GE-port1 ConnectX5-2p100GE.
+ mac_address: "10:70:fd:15:60:54"
pci_address: "0000:86:00.0"
- ip4_address: "172.16.80.2"
- driver: ice
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
link: link9
- model: Intel-E810CQ
+ model: Mellanox-CX556A
port10:
- # s34-t27-tg1-c6/p2 - 100GE-port1 Intel E810-CQDA2 2p100GE.
- mac_address: "b4:96:91:a4:24:e9"
+ # s34-t27-tg1-c6/p2 - 100GE-port2 ConnectX5-2p100GE.
+ mac_address: "10:70:fd:15:60:55"
pci_address: "0000:86:00.1"
- ip4_address: "172.16.90.1"
- driver: ice
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
link: link10
- model: Intel-E810CQ
+ model: Mellanox-CX556A
+ port11:
+ # s34-t27-tg1-c8/p1 - 100GE-port1 ConnectX5-2p100GE.
+ mac_address: "0c:42:a1:0b:92:1a"
+ pci_address: "0000:af:00.0"
+ ip4_address: "172.16.110.2"
+ driver: mlx5_core
+ link: link11
+ model: Mellanox-CX556A
+ port12:
+ # s34-t27-tg1-c8/p2 - 100GE-port2 ConnectX5-2p100GE.
+ mac_address: "0c:42:a1:0b:92:1b"
+ pci_address: "0000:af:00.1"
+ ip4_address: "172.16.120.2"
+ driver: mlx5_core
+ link: link11
+ model: Mellanox-CX556A
DUT1:
type: DUT
host: "10.32.8.18"
@@ -104,11 +120,6 @@ nodes:
username: testuser
password: Csit1234
uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
interfaces:
port1:
# s33-t27-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
@@ -116,7 +127,7 @@ nodes:
pci_address: "0000:18:00.0"
ip4_address: "172.16.10.1"
driver: i40e
- link: link1
+ link: disabled3
model: Intel-X710
port2:
# s33-t27-sut1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
@@ -124,7 +135,7 @@ nodes:
pci_address: "0000:18:00.1"
ip4_address: "172.16.20.1"
driver: i40e
- link: link2
+ link: disabled4
model: Intel-X710
port3:
# s33-t27-sut1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
@@ -162,15 +173,15 @@ nodes:
# s33-t27-sut1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
mac_address: "ec:0d:9a:8c:c6:96"
pci_address: "0000:5e:00.0"
- ip4_address: "172.16.70.2"
+ ip4_address: "172.16.70.1"
driver: mlx5_core
link: link7
model: Mellanox-CX556A
port8:
# s33-t27-sut1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
- mac_address: "ec:0d:9a:8c:c6:96"
+ mac_address: "ec:0d:9a:8c:c6:97"
pci_address: "0000:5e:00.1"
- ip4_address: "172.16.70.1"
+ ip4_address: "172.16.80.1"
driver: mlx5_core
link: link8
model: Mellanox-CX556A
@@ -178,7 +189,7 @@ nodes:
# s33-t27-sut1-c6/p1 - 100GE-port1 Intel E810-CQDA2 2p100GE.
mac_address: "b4:96:91:a2:fb:d0"
pci_address: "0000:86:00.0"
- ip4_address: "172.16.80.2"
+ ip4_address: "172.16.90.1"
driver: ice
link: link9
model: Intel-E810CQ
@@ -186,7 +197,7 @@ nodes:
# s33-t27-sut1-c6/p2 - 100GE-port1 Intel E810-CQDA2 2p100GE.
mac_address: "b4:96:91:a2:fb:d1"
pci_address: "0000:86:00.1"
- ip4_address: "172.16.90.1"
+ ip4_address: "172.16.100.1"
driver: ice
link: link10
- model: Intel-E810CQ
+ model: Intel-E810CQ \ No newline at end of file
diff --git a/topologies/available/lf_2n_clx_testbed28.yaml b/topologies/available/lf_2n_clx_testbed28.yaml
index ed707dc173..771cb20c52 100644
--- a/topologies/available/lf_2n_clx_testbed28.yaml
+++ b/topologies/available/lf_2n_clx_testbed28.yaml
@@ -22,7 +22,7 @@ nodes:
pci_address: "0000:18:00.0"
ip4_address: "172.16.10.2"
driver: i40e
- link: link1
+ link: disabled1
model: Intel-X710
port2:
# s36-t28-tg1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
@@ -30,7 +30,7 @@ nodes:
pci_address: "0000:18:00.1"
ip4_address: "172.16.20.2"
driver: i40e
- link: link2
+ link: disabled2
model: Intel-X710
port3:
# s36-t28-tg1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
@@ -76,26 +76,42 @@ nodes:
# s36-t28-tg1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
mac_address: "ec:0d:9a:8c:c7:f7"
pci_address: "0000:5e:00.1"
- ip4_address: "172.16.70.1"
+ ip4_address: "172.16.80.2"
driver: mlx5_core
link: link8
model: Mellanox-CX556A
port9:
- # s36-t28-tg1-c6/p1 - 100GE-port1 Intel E810-CQDA2 2p100GE.
- mac_address: "b4:96:91:a4:27:30"
+ # s36-t28-tg1-c6/p1 - 100GE-port1 ConnectX5-2p100GE.
+ mac_address: "10:70:fd:15:5f:b4"
pci_address: "0000:86:00.0"
- ip4_address: "172.16.80.2"
- driver: ice
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
link: link9
- model: Intel-E810CQ
+ model: Mellanox-CX556A
port10:
- # s36-t28-tg1-c6/p2 - 100GE-port1 Intel E810-CQDA2 2p100GE.
- mac_address: "b4:96:91:a4:27:31"
+ # s36-t28-tg1-c6/p2 - 100GE-port2 ConnectX5-2p100GE.
+ mac_address: "10:70:fd:15:5f:b5"
pci_address: "0000:86:00.1"
- ip4_address: "172.16.90.1"
- driver: ice
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
link: link10
- model: Intel-E810CQ
+ model: Mellanox-CX556A
+ port11:
+ # s36-t28-tg1-c8/p1 - 100GE-port1 ConnectX5-2p100GE.
+ mac_address: "0c:42:a1:0b:99:8a"
+ pci_address: "0000:af:00.0"
+ ip4_address: "172.16.110.2"
+ driver: mlx5_core
+ link: link11
+ model: Mellanox-CX556A
+ port12:
+ # s36-t28-tg1-c8/p2 - 100GE-port2 ConnectX5-2p100GE.
+ mac_address: "0c:42:a1:0b:99:8b"
+ pci_address: "0000:af:00.1"
+ ip4_address: "172.16.120.2"
+ driver: mlx5_core
+ link: link11
+ model: Mellanox-CX556A
DUT1:
type: DUT
host: "10.32.8.20"
@@ -104,11 +120,6 @@ nodes:
username: testuser
password: Csit1234
uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
interfaces:
port1:
# s35-t28-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
@@ -116,7 +127,7 @@ nodes:
pci_address: "0000:18:00.0"
ip4_address: "172.16.10.1"
driver: i40e
- link: link1
+ link: disabled3
model: Intel-X710
port2:
# s35-t28-sut1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
@@ -124,7 +135,7 @@ nodes:
pci_address: "0000:18:00.1"
ip4_address: "172.16.20.1"
driver: i40e
- link: link2
+ link: disabled4
model: Intel-X710
port3:
# s35-t28-sut1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
@@ -132,7 +143,7 @@ nodes:
pci_address: "0000:18:00.2"
ip4_address: "172.16.30.1"
driver: i40e
- link: link3
+ link: link4
model: Intel-X710
port4:
# s35-t28-sut1-c2/p4 - 10GE port4 on Intel NIC x710 4p10GE.
@@ -140,7 +151,7 @@ nodes:
pci_address: "0000:18:00.3"
ip4_address: "172.16.40.1"
driver: i40e
- link: link4
+ link: link3
model: Intel-X710
port5:
# s35-t28-sut1-c2/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
@@ -162,7 +173,7 @@ nodes:
# s35-t28-sut1-c9/p1 - 100GE-port1 ConnectX5-2p100GE.
mac_address: "ec:0d:9a:8c:c7:b6"
pci_address: "0000:5e:00.0"
- ip4_address: "172.16.70.2"
+ ip4_address: "172.16.70.1"
driver: mlx5_core
link: link7
model: Mellanox-CX556A
@@ -170,7 +181,7 @@ nodes:
# s35-t28-sut1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
mac_address: "ec:0d:9a:8c:c7:b7"
pci_address: "0000:5e:00.1"
- ip4_address: "172.16.70.1"
+ ip4_address: "172.16.80.1"
driver: mlx5_core
link: link8
model: Mellanox-CX556A
@@ -178,7 +189,7 @@ nodes:
# s35-t28-sut1-c6/p1 - 100GE-port1 Intel E810-CQDA2 2p100GE.
mac_address: "b4:96:91:a4:26:08"
pci_address: "0000:86:00.0"
- ip4_address: "172.16.80.2"
+ ip4_address: "172.16.90.1"
driver: ice
link: link9
model: Intel-E810CQ
@@ -186,7 +197,7 @@ nodes:
# s35-t28-sut1-c6/p2 - 100GE-port1 Intel E810-CQDA2 2p100GE.
mac_address: "b4:96:91:a4:26:09"
pci_address: "0000:86:00.1"
- ip4_address: "172.16.90.1"
+ ip4_address: "172.16.100.1"
driver: ice
link: link10
model: Intel-E810CQ \ No newline at end of file
diff --git a/topologies/available/lf_2n_clx_testbed29.yaml b/topologies/available/lf_2n_clx_testbed29.yaml
index 39d757a015..24cba15af9 100644
--- a/topologies/available/lf_2n_clx_testbed29.yaml
+++ b/topologies/available/lf_2n_clx_testbed29.yaml
@@ -22,7 +22,7 @@ nodes:
pci_address: "0000:18:00.0"
ip4_address: "172.16.10.2"
driver: i40e
- link: link1
+ link: disabled1
model: Intel-X710
port2:
# s38-t29-tg1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
@@ -30,7 +30,7 @@ nodes:
pci_address: "0000:18:00.1"
ip4_address: "172.16.20.2"
driver: i40e
- link: link2
+ link: disabled2
model: Intel-X710
port3:
# s38-t29-tg1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
@@ -76,26 +76,26 @@ nodes:
# s38-t29-tg1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
mac_address: "b8:59:9f:fe:4a:a9"
pci_address: "0000:5e:00.1"
- ip4_address: "172.16.70.2"
+ ip4_address: "172.16.80.2"
driver: mlx5_core
link: link8
model: Mellanox-CX556A
port9:
- # s38-t29-tg1-c6/p1 - 100GE-port1 Intel E810-CQDA2 2p100GE.
- mac_address: "b4:96:91:a4:26:38"
+ # s38-t29-tg1-c6/p1 - 100GE-port1 ConnectX5-2p100GE.
+ mac_address: "10:70:fd:18:44:ec"
pci_address: "0000:86:00.0"
- ip4_address: "172.16.80.2"
- driver: ice
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
link: link9
- model: Intel-E810CQ
+ model: Mellanox-CX556A
port10:
- # s38-t29-tg1-c6/p2 - 100GE-port1 Intel E810-CQDA2 2p100GE.
- mac_address: "b4:96:91:a4:26:39"
+ # s38-t29-tg1-c6/p2 - 100GE-port2 ConnectX5-2p100GE.
+ mac_address: "10:70:fd:18:44:ed"
pci_address: "0000:86:00.1"
- ip4_address: "172.16.90.1"
- driver: ice
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
link: link10
- model: Intel-E810CQ
+ model: Mellanox-CX556A
DUT1:
type: DUT
host: "10.32.8.22"
@@ -104,11 +104,6 @@ nodes:
username: testuser
password: Csit1234
uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
interfaces:
port1:
# s37-t29-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
@@ -116,7 +111,7 @@ nodes:
pci_address: "0000:18:00.0"
ip4_address: "172.16.10.1"
driver: i40e
- link: link1
+ link: disabled3
model: Intel-X710
port2:
# s37-t29-sut1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
@@ -124,7 +119,7 @@ nodes:
pci_address: "0000:18:00.1"
ip4_address: "172.16.20.1"
driver: i40e
- link: link2
+ link: disabled4
model: Intel-X710
port3:
# s37-t29-sut1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
@@ -170,7 +165,7 @@ nodes:
# s37-t29-sut1-c9/p2 - 100GE-port2 ConnectX5-2p100GE.
mac_address: "b8:59:9f:fe:4a:c9"
pci_address: "0000:5e:00.1"
- ip4_address: "172.16.70.1"
+ ip4_address: "172.16.80.1"
driver: mlx5_core
link: link8
model: Mellanox-CX556A
@@ -178,7 +173,7 @@ nodes:
# s37-t29-sut1-c6/p1 - 100GE-port1 Intel E810-CQDA2 2p100GE.
mac_address: "b4:96:91:a4:23:50"
pci_address: "0000:86:00.0"
- ip4_address: "172.16.80.2"
+ ip4_address: "172.16.90.1"
driver: ice
link: link9
model: Intel-E810CQ
@@ -186,7 +181,7 @@ nodes:
# s37-t29-sut1-c6/p2 - 100GE-port1 Intel E810-CQDA2 2p100GE.
mac_address: "b4:96:91:a4:23:51"
pci_address: "0000:86:00.1"
- ip4_address: "172.16.90.1"
+ ip4_address: "172.16.100.1"
driver: ice
link: link10
model: Intel-E810CQ \ No newline at end of file
diff --git a/topologies/available/lf_2n_dnv_testbed26.yaml b/topologies/available/lf_2n_dnv_testbed26.yaml
deleted file mode 100644
index e4dc8ee4a0..0000000000
--- a/topologies/available/lf_2n_dnv_testbed26.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/2_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 2-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.32.8.10"
- arch: x86_64
- port: 6001
- username: root
- password: Csit1234
- interfaces:
- port1:
- mac_address: "b4:96:91:46:b3:d4"
- pci_address: "0000:3b:00.0"
- driver: ixgbe
- link: link1
- model: Intel-X553
- port2:
- mac_address: "b4:96:91:46:b6:48"
- pci_address: "0000:5e:00.0"
- driver: ixgbe
- link: link2
- model: Intel-X553
- DUT1:
- type: DUT
- host: "10.32.8.11"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- interfaces:
- port1:
- mac_address: "ac:1f:6b:57:58:3a"
- pci_address: "0000:08:00.0"
- driver: ixgbe
- link: link1
- model: Intel-X553
- port2:
- mac_address: "ac:1f:6b:57:58:3b"
- pci_address: "0000:08:00.1"
- driver: ixgbe
- link: link2
- model: Intel-X553
-
diff --git a/topologies/available/lf_2n_icx_testbed212.yaml b/topologies/available/lf_2n_icx_testbed212.yaml
new file mode 100644
index 0000000000..5ea3d46772
--- /dev/null
+++ b/topologies/available/lf_2n_icx_testbed212.yaml
@@ -0,0 +1,203 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.82"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s72-t212-tg1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:b2:a0:40"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.2"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s72-t212-tg1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:b2:a0:41"
+ pci_address: "0000:17:00.1"
+ ip4_address: "172.16.20.2"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port3:
+ # s72-t212-tg1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:b4"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s72-t212-tg1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:b5"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port5:
+ # s72-t212-tg1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:b6"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.2"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s72-t212-tg1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:b7"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.2"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s72-t212-tg1-c2/p1 - 25GE port1 Intel NIC xxv710 4p25GE.
+ mac_address: "40:a6:b7:4c:34:48"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.2"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s72-t212-tg1-c2/p2 - 25GE port2 Intel NIC xxv710 4p25GE.
+ mac_address: "40:a6:b7:4c:34:49"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.2"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port9:
+ # s72-t212-tg1-c8/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:18"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX7VEAT
+ port10:
+ # s72-t212-tg1-c8/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:19"
+ pci_address: "0000:b1:00.1"
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port11:
+ # s72-t212-tg1-c6/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:b2:a7:00"
+ pci_address: "0000:ca:00.0"
+ ip4_address: "172.16.110.2"
+ driver: ice
+ link: link11
+ model: Intel-E810CQ
+ port12:
+ # s72-t212-tg1-c6/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:b2:a7:01"
+ pci_address: "0000:ca:00.1"
+ ip4_address: "172.16.120.2"
+ driver: ice
+ link: link11
+ model: Intel-E810CQ
+ DUT1:
+ type: DUT
+ host: "10.30.51.81"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s71-t212-sut1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:b2:a8:48"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.1"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s71-t212-sut1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:b2:a8:49"
+ pci_address: "0000:17:00.1"
+ ip4_address: "172.16.20.1"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port3:
+ # s71-t212-sut1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:79:4c"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s71-t212-sut1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:79:4d"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.1"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port5:
+ # s71-t212-sut1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:79:4e"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.1"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s71-t212-sut1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:79:4f"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.1"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s71-t212-sut1-c2/p1 - 25GE port1 Intel NIC xxv710 2p25GE.
+ mac_address: "40:a6:b7:4c:34:2c"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.1"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s71-t212-sut1-c2/p2 - 25GE port2 Intel NIC xxv710 2p25GE.
+ mac_address: "40:a6:b7:4c:34:2d"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.1"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port9:
+ # s71-t212-sut1-c8/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:80"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.90.1"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port10:
+ # s71-t212-sut1-c8/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:81"
+ pci_address: "0000:b1:00.1"
+ ip4_address: "172.16.100.1"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX7VEAT \ No newline at end of file
diff --git a/topologies/available/lf_2n_icx_testbed213.yaml b/topologies/available/lf_2n_icx_testbed213.yaml
new file mode 100644
index 0000000000..2f7536ce76
--- /dev/null
+++ b/topologies/available/lf_2n_icx_testbed213.yaml
@@ -0,0 +1,203 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.84"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s84-t213-tg1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:2b:fc"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.2"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s84-t213-tg1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:2b:f8"
+ pci_address: "0000:19:00.0"
+ ip4_address: "172.16.20.2"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port3:
+ # s84-t213-tg1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7b:38"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s84-t213-tg1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7b:39"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port5:
+ # s84-t213-tg1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7b:3a"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.2"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s84-t213-tg1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7b:3b"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.2"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s84-t213-tg1-c2/p1 - 25GE port1 Intel NIC xxv710 4p25GE.
+ mac_address: "40:a6:b7:40:86:e0"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.2"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s84-t213-tg1-c2/p2 - 25GE port2 Intel NIC xxv710 4p25GE.
+ mac_address: "40:a6:b7:40:86:e1"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.2"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port9:
+ # s84-t213-tg1-c8/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:78"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port10:
+ # s84-t213-tg1-c8/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:79"
+ pci_address: "0000:b1:00.1"
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX7VEAT
+ port11:
+ # s84-t213-tg1-c6/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:21:78"
+ pci_address: "0000:ca:00.0"
+ ip4_address: "172.16.110.2"
+ driver: ice
+ link: link11
+ model: Intel-E810CQ
+ port12:
+ # s84-t213-tg1-c6/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:21:7c"
+ pci_address: "0000:cc:00.0"
+ ip4_address: "172.16.110.2"
+ driver: ice
+ link: link11
+ model: Intel-E810CQ
+ DUT1:
+ type: DUT
+ host: "10.30.51.83"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s83-t213-sut1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:22:4c"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.1"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s83-t213-sut1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:22:48"
+ pci_address: "0000:19:00.0"
+ ip4_address: "172.16.20.1"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port3:
+ # s83-t213-sut1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7b:d8"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s83-t213-sut1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7b:d9"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.1"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port5:
+ # s83-t213-sut1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7b:da"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.1"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s83-t213-sut1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7b:db"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.1"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s83-t213-sut1-c2/p1 - 25GE port1 Intel NIC xxv710 2p25GE.
+ mac_address: "40:a6:b7:40:86:dc"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.1"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s83-t213-sut1-c2/p2 - 25GE port2 Intel NIC xxv710 2p25GE.
+ mac_address: "40:a6:b7:40:86:dd"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.1"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port9:
+ # s83-t213-sut1-c8/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:40"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.90.1"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port10:
+ # s83-t213-sut1-c8/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:41"
+ pci_address: "0000:b1:00.1"
+ ip4_address: "172.16.100.1"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX7VEAT \ No newline at end of file
diff --git a/topologies/available/lf_2n_icx_testbed214.yaml b/topologies/available/lf_2n_icx_testbed214.yaml
new file mode 100644
index 0000000000..03bb8c22e1
--- /dev/null
+++ b/topologies/available/lf_2n_icx_testbed214.yaml
@@ -0,0 +1,203 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.86"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s86-t214-tg1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:1d:9c"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.2"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s86-t214-tg1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:1d:98"
+ pci_address: "0000:19:00.0"
+ ip4_address: "172.16.20.2"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port3:
+ # s86-t214-tg1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:98"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s86-t214-tg1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:99"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port5:
+ # s86-t214-tg1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:9a"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.2"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s86-t214-tg1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:9b"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.2"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s86-t214-tg1-c2/p1 - 25GE port1 Intel NIC xxv710 4p25GE.
+ mac_address: "40:a6:b7:40:85:98"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.2"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s86-t214-tg1-c2/p2 - 25GE port2 Intel NIC xxv710 4p25GE.
+ mac_address: "40:a6:b7:40:85:99"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.2"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port9:
+ # s86-t214-tg1-c8/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:f9:c3:46"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port10:
+ # s86-t214-tg1-c8/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:f9:c3:47"
+ pci_address: "0000:b1:00.1"
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX7VEAT
+ port11:
+ # s86-t214-tg1-c6/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:26:70"
+ pci_address: "0000:ca:00.0"
+ ip4_address: "172.16.100.2"
+ driver: ice
+ link: link11
+ model: Intel-E810CQ
+ port12:
+ # s86-t214-tg1-c6/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:26:74"
+ pci_address: "0000:cc:00.0"
+ ip4_address: "172.16.110.2"
+ driver: ice
+ link: link11
+ model: Intel-E810CQ
+ DUT1:
+ type: DUT
+ host: "10.30.51.85"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s85-t214-sut1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:19:3c"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.1"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port2:
+ # s85-t214-sut1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:19:38"
+ pci_address: "0000:19:00.0"
+ ip4_address: "172.16.20.1"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port3:
+ # s85-t214-sut1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:77:54"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s85-t214-sut1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:77:55"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.1"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port5:
+ # s85-t214-sut1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:77:56"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.1"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s85-t214-sut1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:77:57"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.1"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s85-t214-sut1-c2/p1 - 25GE port1 Intel NIC xxv710 2p25GE.
+ mac_address: "40:a6:b7:40:85:e0"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.1"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s85-t214-sut1-c2/p2 - 25GE port2 Intel NIC xxv710 2p25GE.
+ mac_address: "40:a6:b7:40:85:e1"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.1"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port9:
+ # s85-t214-sut1-c8/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:38"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.90.1"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port10:
+ # s85-t214-sut1-c8/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:39"
+ pci_address: "0000:b1:00.1"
+ ip4_address: "172.16.100.1"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX7VEAT \ No newline at end of file
diff --git a/topologies/available/lf_2n_icx_testbed215.yaml b/topologies/available/lf_2n_icx_testbed215.yaml
new file mode 100644
index 0000000000..6b0b0dee0c
--- /dev/null
+++ b/topologies/available/lf_2n_icx_testbed215.yaml
@@ -0,0 +1,203 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.88"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s88-t215-tg1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:1c:f4"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.2"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s88-t215-tg1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:1c:f0"
+ pci_address: "0000:19:00.0"
+ ip4_address: "172.16.20.2"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port3:
+ # s88-t215-tg1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7a:24"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s88-t215-tg1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7a:25"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port5:
+ # s88-t215-tg1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7a:26"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.2"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s88-t215-tg1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7a:27"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.2"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s88-t215-tg1-c2/p1 - 25GE port1 Intel NIC xxv710 4p25GE.
+ mac_address: "40:a6:b7:40:87:cc"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.2"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s88-t215-tg1-c2/p2 - 25GE port2 Intel NIC xxv710 4p25GE.
+ mac_address: "40:a6:b7:40:87:cd"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.2"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port9:
+ # s88-t215-tg1-c8/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:f9:c3:4e"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port10:
+ # s88-t215-tg1-c8/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:f9:c3:4f"
+ pci_address: "0000:b1:00.1"
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX7VEAT
+ port11:
+ # s88-t215-tg1-c6/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:17:10"
+ pci_address: "0000:ca:00.0"
+ ip4_address: "172.16.110.2"
+ driver: ice
+ link: link11
+ model: Intel-E810CQ
+ port12:
+ # s88-t215-tg1-c6/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:17:14"
+ pci_address: "0000:cc:00.0"
+ ip4_address: "172.16.120.2"
+ driver: ice
+ link: link11
+ model: Intel-E810CQ
+ DUT1:
+ type: DUT
+ host: "10.30.51.87"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s87-t215-sut1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:2b:ec"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.1"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s87-t215-sut1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:2b:e8"
+ pci_address: "0000:19:00.0"
+ ip4_address: "172.16.20.1"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port3:
+ # s87-t215-sut1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7a:1c"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s87-t215-sut1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7a:1d"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.1"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port5:
+ # s87-t215-sut1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7a:1e"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.1"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s87-t215-sut1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:7a:1f"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.1"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s87-t215-sut1-c2/p1 - 25GE port1 Intel NIC xxv710 2p25GE.
+ mac_address: "40:a6:b7:40:87:90"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.1"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s87-t215-sut1-c2/p2 - 25GE port2 Intel NIC xxv710 2p25GE.
+ mac_address: "40:a6:b7:40:87:91"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.1"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port9:
+ # s87-t215-sut1-c8/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a2:78"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.90.1"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port10:
+ # s87-t215-sut1-c8/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a2:79"
+ pci_address: "0000:b1:00.1"
+ ip4_address: "172.16.100.1"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX7VEAT \ No newline at end of file
diff --git a/topologies/available/lf_2n_skx_testbed21.yaml b/topologies/available/lf_2n_skx_testbed21.yaml
deleted file mode 100644
index 5eba0397e7..0000000000
--- a/topologies/available/lf_2n_skx_testbed21.yaml
+++ /dev/null
@@ -1,160 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/2_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 2-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.30.51.45"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # s4-t21-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:70"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.2"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s4-t21-tg1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:71"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.20.2"
- driver: i40e
- link: link2
- model: Intel-X710
- port3:
- # s4-t21-tg1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:72"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.2"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s4-t21-tg1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:73"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.40.2"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # s4-t21-tg1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:fa:38"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.2"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s4-t21-tg1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:fa:39"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.60.2"
- driver: i40e
- link: link6
- model: Intel-XXV710
- port7:
- # s4-t21-tg1-c10/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:98"
- pci_address: "0000:d8:00.0"
- ip4_address: "172.16.70.2"
- driver: i40e
- link: link7
- model: Intel-X710
- port8:
- # s4-t21-tg1-c10/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:99"
- pci_address: "0000:d8:00.1"
- ip4_address: "172.16.70.1"
- driver: i40e
- link: link7
- model: Intel-X710
- port9:
- # s4-t21-tg1-c10/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:9a"
- pci_address: "0000:d8:00.2"
- ip4_address: "172.16.80.2"
- driver: i40e
- link: link8
- model: Intel-X710
- port10:
- # s4-t21-tg1-c10/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:9b"
- pci_address: "0000:d8:00.3"
- ip4_address: "172.16.80.1"
- driver: i40e
- link: link8
- model: Intel-X710
- DUT1:
- type: DUT
- host: "10.30.51.44"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # s3-t21-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:88"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.1"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s3-t21-sut1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:89"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.20.1"
- driver: i40e
- link: link2
- model: Intel-X710
- port3:
- # s3-t21-sut1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:8a"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.1"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s3-t21-sut1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:8b"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.40.1"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # s3-t21-sut1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:60"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.1"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s3-t21-sut1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:61"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.60.1"
- driver: i40e
- link: link6
- model: Intel-XXV710
diff --git a/topologies/available/lf_2n_skx_testbed22.yaml b/topologies/available/lf_2n_skx_testbed22.yaml
deleted file mode 100644
index f048e52486..0000000000
--- a/topologies/available/lf_2n_skx_testbed22.yaml
+++ /dev/null
@@ -1,160 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/2_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 2-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.30.51.53"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # s6-t22-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:98"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.2"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s6-t22-tg1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:99"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.20.2"
- driver: i40e
- link: link2
- model: Intel-X710
- port3:
- # s6-t22-tg1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:9a"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.2"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s6-t22-tg1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:9b"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.40.2"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # s6-t22-tg1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f8:60"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.2"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s6-t22-tg1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f8:61"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.60.2"
- driver: i40e
- link: link6
- model: Intel-XXV710
- port7:
- # s6-t22-tg1-c10/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:98"
- pci_address: "0000:d8:00.0"
- ip4_address: "172.16.70.2"
- driver: i40e
- link: link7
- model: Intel-X710
- port8:
- # s6-t22-tg1-c10/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:99"
- pci_address: "0000:d8:00.1"
- ip4_address: "172.16.70.1"
- driver: i40e
- link: link7
- model: Intel-X710
- port9:
- # s6-t22-tg1-c10/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:9a"
- pci_address: "0000:d8:00.2"
- ip4_address: "172.16.80.2"
- driver: i40e
- link: link8
- model: Intel-X710
- port10:
- # s6-t22-tg1-c10/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:9b"
- pci_address: "0000:d8:00.3"
- ip4_address: "172.16.80.1"
- driver: i40e
- link: link8
- model: Intel-X710
- DUT1:
- type: DUT
- host: "10.30.51.52"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # s5-t22-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:a8"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.1"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s5-t22-sut1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:a9"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.20.1"
- driver: i40e
- link: link2
- model: Intel-X710
- port3:
- # s5-t22-sut1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:aa"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.1"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s5-t22-sut1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:ab"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.40.1"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # s5-t22-sut1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:54"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.1"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s5-t22-sut1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:55"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.60.1"
- driver: i40e
- link: link6
- model: Intel-XXV710
diff --git a/topologies/available/lf_2n_skx_testbed23.yaml b/topologies/available/lf_2n_skx_testbed23.yaml
deleted file mode 100644
index b62ccc9cf2..0000000000
--- a/topologies/available/lf_2n_skx_testbed23.yaml
+++ /dev/null
@@ -1,160 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/2_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 2-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.30.51.55"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # s8-t23-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:38"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.2"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s8-t23-tg1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:39"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.20.2"
- driver: i40e
- link: link2
- model: Intel-X710
- port3:
- # s8-t23-tg1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:3a"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.2"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s8-t23-tg1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:3b"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.40.2"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # s8-t23-tg1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:88"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.2"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s8-t23-tg1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:89"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.60.2"
- driver: i40e
- link: link6
- model: Intel-XXV710
- port7:
- # s8-t23-tg1-c10/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:20"
- pci_address: "0000:d8:00.0"
- ip4_address: "172.16.70.2"
- driver: i40e
- link: link7
- model: Intel-X710
- port8:
- # s8-t23-tg1-c10/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:21"
- pci_address: "0000:d8:00.1"
- ip4_address: "172.16.70.1"
- driver: i40e
- link: link7
- model: Intel-X710
- port9:
- # s8-t23-tg1-c10/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:22"
- pci_address: "0000:d8:00.2"
- ip4_address: "172.16.80.2"
- driver: i40e
- link: link8
- model: Intel-X710
- port10:
- # s8-t23-tg1-c10/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:23"
- pci_address: "0000:d8:00.3"
- ip4_address: "172.16.80.1"
- driver: i40e
- link: link8
- model: Intel-X710
- DUT1:
- type: DUT
- host: "10.30.51.54"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # s7-t23-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:30"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.1"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s7-t23-sut1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:31"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.20.1"
- driver: i40e
- link: link2
- model: Intel-X710
- port3:
- # s7-t23-sut1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:32"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.1"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s7-t23-sut1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:33"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.40.1"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # s7-t23-sut1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:00"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.1"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s7-t23-sut1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:01"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.60.1"
- driver: i40e
- link: link6
- model: Intel-XXV710
diff --git a/topologies/available/lf_2n_skx_testbed24.yaml b/topologies/available/lf_2n_skx_testbed24.yaml
deleted file mode 100644
index 78483c3676..0000000000
--- a/topologies/available/lf_2n_skx_testbed24.yaml
+++ /dev/null
@@ -1,160 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/2_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 2-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.30.51.57"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # s10-t24-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:88"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.2"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s10-t24-tg1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:89"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.20.2"
- driver: i40e
- link: link2
- model: Intel-X710
- port3:
- # s10-t24-tg1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:8a"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.2"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s10-t24-tg1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:b1:8b"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.40.2"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # s10-t24-tg1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:70"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.2"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s10-t24-tg1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:71"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.60.2"
- driver: i40e
- link: link6
- model: Intel-XXV710
- port7:
- # s10-t24-tg1-c10/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:40"
- pci_address: "0000:d8:00.0"
- ip4_address: "172.16.70.2"
- driver: i40e
- link: link7
- model: Intel-X710
- port8:
- # s10-t24-tg1-c10/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:41"
- pci_address: "0000:d8:00.1"
- ip4_address: "172.16.70.1"
- driver: i40e
- link: link7
- model: Intel-X710
- port9:
- # s10-t24-tg1-c10/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:42"
- pci_address: "0000:d8:00.2"
- ip4_address: "172.16.80.2"
- driver: i40e
- link: link8
- model: Intel-X710
- port10:
- # s10-t24-tg1-c10/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:43"
- pci_address: "0000:d8:00.3"
- ip4_address: "172.16.80.1"
- driver: i40e
- link: link8
- model: Intel-X710
- DUT1:
- type: DUT
- host: "10.30.51.56"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # s9-t24-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:80"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.1"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s9-t24-sut1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:81"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.20.1"
- driver: i40e
- link: link2
- model: Intel-X710
- port3:
- # s9-t24-sut1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:82"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.1"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s9-t24-sut1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:83"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.40.1"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # s9-t24-sut1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:5c"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.1"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s9-t24-sut1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:5d"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.60.1"
- driver: i40e
- link: link6
- model: Intel-XXV710
diff --git a/topologies/available/lf_2n_spr_testbed23.yaml b/topologies/available/lf_2n_spr_testbed23.yaml
new file mode 100644
index 0000000000..d1d0083894
--- /dev/null
+++ b/topologies/available/lf_2n_spr_testbed23.yaml
@@ -0,0 +1,231 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.57"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ bus:
+ device1:
+ pci_address: "0000:75:01.0"
+ driver: idxd
+ model: Intel-DSA
+ device2:
+ pci_address: "0000:f2:01.0"
+ driver: idxd
+ model: Intel-DSA
+ cryptodev:
+ device1:
+ pci_address: "0000:76:00.0"
+ driver: "4xxx"
+ model: "HW_4xxx"
+ module: "qat_4xxx"
+ numvfs: 8
+ #device2:
+ # pci_address: "0000:7a:00.0"
+ # driver: "4xxx"
+ # model: "HW_4xxx"
+ # module: "qat_4xxx"
+ # numvfs: 8
+ interfaces:
+ port1:
+ # s57-t23-tg1-c2/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:28"
+ pci_address: "0000:3d:00.0"
+ ip4_address: "172.16.10.2"
+ driver: mlx5_core
+ link: link1
+ model: Mellanox-CX7VEAT
+ port2:
+ # s57-t23-tg1-c2/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:29"
+ pci_address: "0000:3d:00.1"
+ ip4_address: "172.16.20.2"
+ driver: mlx5_core
+ link: link2
+ model: Mellanox-CX7VEAT
+ port3:
+ # s57-t23-tg1-c4/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e9:a8"
+ pci_address: "0000:2a:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link3
+ model: Intel-E810CQ
+ port4:
+ # s57-t23-tg1-c4/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e9:ac"
+ pci_address: "0000:2c:00.0"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: link4
+ model: Intel-E810CQ
+ port5:
+ # s57-t23-tg1-c10/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:4a:54"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.50.2"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s57-t23-tg1-c10/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:4a:55"
+ pci_address: "0000:17:00.1"
+ ip4_address: "172.16.60.2"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s57-t23-tg1-c10/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:4a:56"
+ pci_address: "0000:17:00.2"
+ ip4_address: "172.16.70.2"
+ driver: ice
+ link: link7
+ model: Intel-E810XXV
+ port8:
+ # s57-t23-tg1-c10/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:4a:57"
+ pci_address: "0000:17:00.3"
+ ip4_address: "172.16.80.2"
+ driver: ice
+ link: link8
+ model: Intel-E810XXV
+ port9:
+ # s57-t23-tg1-c7/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:68"
+ pci_address: "0000:ab:00.0"
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port10:
+ # s57-t23-tg1-c7/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:69"
+ pci_address: "0000:ab:00.1"
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port11:
+ # s57-t23-tg1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e2:20"
+ pci_address: "0000:bd:00.0"
+ ip4_address: "172.16.110.2"
+ driver: ice
+ link: link10
+ model: Intel-E810CQ
+ port12:
+ # s57-t23-tg1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e2:24"
+ pci_address: "0000:bf:00.0"
+ ip4_address: "172.16.120.2"
+ driver: ice
+ link: link10
+ model: Intel-E810CQ
+ DUT1:
+ type: DUT
+ host: "10.30.51.56"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ bus:
+ device1:
+ pci_address: "0000:75:01.0"
+ driver: idxd
+ model: Intel-DSA
+ device2:
+ pci_address: "0000:f2:01.0"
+ driver: idxd
+ model: Intel-DSA
+ cryptodev:
+ device1:
+ pci_address: "0000:76:00.0"
+ driver: "4xxx"
+ model: "HW_4xxx"
+ module: "qat_4xxx"
+ numvfs: 8
+ #device2:
+ # pci_address: "0000:7a:00.0"
+ # driver: "4xxx"
+ # model: "HW_4xxx"
+ # module: "qat_4xxx"
+ # numvfs: 8
+ interfaces:
+ port1:
+ # s56-t23-sut1-c2/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:30"
+ pci_address: "0000:3d:00.0"
+ ip4_address: "172.16.10.1"
+ driver: mlx5_core
+ link: link1
+ model: Mellanox-CX7VEAT
+ port2:
+ # s56-t23-sut1-c2/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:31"
+ pci_address: "0000:3d:00.1"
+ ip4_address: "172.16.20.1"
+ driver: mlx5_core
+ link: link2
+ model: Mellanox-CX7VEAT
+ port3:
+ # s56-t23-sut1-c4/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e2:70"
+ pci_address: "0000:2a:00.0"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link3
+ model: Intel-E810CQ
+ port4:
+ # s56-t23-sut1-c4/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e2:74"
+ pci_address: "0000:2c:00.0"
+ ip4_address: "172.16.40.1"
+ driver: ice
+ link: link4
+ model: Intel-E810CQ
+ port5:
+ # s56-t23-sut1-c10/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:45:70"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.50.1"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s56-t23-sut1-c10/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:45:71"
+ pci_address: "0000:17:00.1"
+ ip4_address: "172.16.60.1"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s56-t23-sut1-c10/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:45:72"
+ pci_address: "0000:17:00.2"
+ ip4_address: "172.16.70.1"
+ driver: ice
+ link: link7
+ model: Intel-E810XXV
+ port8:
+ # s56-t23-sut1-c10/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:45:73"
+ pci_address: "0000:17:00.3"
+ ip4_address: "172.16.80.1"
+ driver: ice
+ link: link8
+ model: Intel-E810XXV
diff --git a/topologies/available/lf_2n_spr_testbed24.yaml b/topologies/available/lf_2n_spr_testbed24.yaml
new file mode 100644
index 0000000000..ef6ac3fe81
--- /dev/null
+++ b/topologies/available/lf_2n_spr_testbed24.yaml
@@ -0,0 +1,231 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/2_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 2-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.59"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ bus:
+ device1:
+ pci_address: "0000:75:01.0"
+ driver: idxd
+ model: Intel-DSA
+ device2:
+ pci_address: "0000:f2:01.0"
+ driver: idxd
+ model: Intel-DSA
+ cryptodev:
+ device1:
+ pci_address: "0000:76:00.0"
+ driver: "4xxx"
+ model: "HW_4xxx"
+ module: "qat_4xxx"
+ numvfs: 8
+ #device2:
+ # pci_address: "0000:7a:00.0"
+ # driver: "4xxx"
+ # model: "HW_4xxx"
+ # module: "qat_4xxx"
+ # numvfs: 8
+ interfaces:
+ port1:
+ # s59-t24-tg1-c2/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:60"
+ pci_address: "0000:3d:00.0"
+ ip4_address: "172.16.10.2"
+ driver: mlx5_core
+ link: link1
+ model: Mellanox-CX7VEAT
+ port2:
+ # s59-t24-tg1-c2/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:61"
+ pci_address: "0000:3d:00.1"
+ ip4_address: "172.16.20.2"
+ driver: mlx5_core
+ link: link2
+ model: Mellanox-CX7VEAT
+ port3:
+ # s59-t24-tg1-c4/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e3:58"
+ pci_address: "0000:2a:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link3
+ model: Intel-E810CQ
+ port4:
+ # s59-t24-tg1-c4/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e3:5c"
+ pci_address: "0000:2c:00.0"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: link4
+ model: Intel-E810CQ
+ port5:
+ # s59-t24-tg1-c10/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:41:a8"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.50.2"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s59-t24-tg1-c10/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:41:a9"
+ pci_address: "0000:17:00.1"
+ ip4_address: "172.16.60.2"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s59-t24-tg1-c10/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:41:aa"
+ pci_address: "0000:17:00.2"
+ ip4_address: "172.16.70.2"
+ driver: ice
+ link: link7
+ model: Intel-E810XXV
+ port8:
+ # s59-t24-tg1-c10/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:41:ab"
+ pci_address: "0000:17:00.3"
+ ip4_address: "172.16.80.2"
+ driver: ice
+ link: link8
+ model: Intel-E810XXV
+ port9:
+ # s59-t24-tg1-c7/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:58"
+ pci_address: "0000:ab:00.0"
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port10:
+ # s59-t24-tg1-c7/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:59"
+ pci_address: "0000:ab:00.1"
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port11:
+ # s59-t24-tg1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:21:48"
+ pci_address: "0000:bd:00.0"
+ ip4_address: "172.16.110.2"
+ driver: ice
+ link: link10
+ model: Intel-E810CQ
+ port12:
+ # s59-t24-tg1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:21:4c"
+ pci_address: "0000:bf:00.0"
+ ip4_address: "172.16.120.2"
+ driver: ice
+ link: link10
+ model: Intel-E810CQ
+ DUT1:
+ type: DUT
+ host: "10.30.51.58"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ bus:
+ device1:
+ pci_address: "0000:75:01.0"
+ driver: idxd
+ model: Intel-DSA
+ device2:
+ pci_address: "0000:f2:01.0"
+ driver: idxd
+ model: Intel-DSA
+ cryptodev:
+ device1:
+ pci_address: "0000:76:00.0"
+ driver: "4xxx"
+ model: "HW_4xxx"
+ module: "qat_4xxx"
+ numvfs: 8
+ #device2:
+ # pci_address: "0000:7a:00.0"
+ # driver: "4xxx"
+ # model: "HW_4xxx"
+ # module: "qat_4xxx"
+ # numvfs: 8
+ interfaces:
+ port1:
+ # s58-t24-sut1-c2/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:d0"
+ pci_address: "0000:3d:00.0"
+ ip4_address: "172.16.10.1"
+ driver: mlx5_core
+ link: link1
+ model: Mellanox-CX7VEAT
+ port2:
+ # s58-t24-sut1-c2/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:d1"
+ pci_address: "0000:3d:00.1"
+ ip4_address: "172.16.20.1"
+ driver: mlx5_core
+ link: link2
+ model: Mellanox-CX7VEAT
+ port3:
+ # s58-t24-sut1-c4/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e9:98"
+ pci_address: "0000:2a:00.0"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link3
+ model: Intel-E810CQ
+ port4:
+ # s58-t24-sut1-c4/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e9:9c"
+ pci_address: "0000:2c:00.0"
+ ip4_address: "172.16.40.1"
+ driver: ice
+ link: link4
+ model: Intel-E810CQ
+ port5:
+ # s58-t24-sut1-c10/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:46:44"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.50.1"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s58-t24-sut1-c10/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:46:45"
+ pci_address: "0000:17:00.1"
+ ip4_address: "172.16.60.1"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s58-t24-sut1-c10/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:46:46"
+ pci_address: "0000:17:00.2"
+ ip4_address: "172.16.70.1"
+ driver: ice
+ link: link7
+ model: Intel-E810XXV
+ port8:
+ # s58-t24-sut1-c10/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:46:47"
+ pci_address: "0000:17:00.3"
+ ip4_address: "172.16.80.1"
+ driver: ice
+ link: link8
+ model: Intel-E810XXV
diff --git a/topologies/available/lf_2n_tx2_testbed34.yaml b/topologies/available/lf_2n_tx2_testbed34.yaml
index 6c08aaf183..cbaefc387a 100644
--- a/topologies/available/lf_2n_tx2_testbed34.yaml
+++ b/topologies/available/lf_2n_tx2_testbed34.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 PANTHEON.tech and/or its affiliates.
+# Copyright (c) 2020-2023 PANTHEON.tech and/or its affiliates.
# 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:
@@ -30,13 +30,13 @@ nodes:
password: Csit1234
interfaces:
port0:
- mac_address: "3c:fd:fe:c3:e0:90"
+ mac_address: "3c:fd:fe:c3:e9:70"
pci_address: "0000:af:00.0"
link: link1
driver: i40e
model: Intel-XL710
port1:
- mac_address: "3c:fd:fe:c3:e0:91"
+ mac_address: "3c:fd:fe:c3:e9:71"
pci_address: "0000:af:00.1"
link: link2
driver: i40e
@@ -51,13 +51,13 @@ nodes:
password: Csit1234
interfaces:
port0:
- mac_address: "3c:fd:fe:c3:e9:70"
+ mac_address: "3c:fd:fe:c3:e0:90"
pci_address: "0000:91:00.0"
link: link1
driver: i40e
model: Intel-XL710
port1:
- mac_address: "3c:fd:fe:c3:e9:71"
+ mac_address: "3c:fd:fe:c3:e0:91"
pci_address: "0000:91:00.1"
link: link2
driver: i40e
diff --git a/topologies/available/lf_3n_alt_testbed34.yaml b/topologies/available/lf_3n_alt_testbed34.yaml
new file mode 100644
index 0000000000..2fa26922e6
--- /dev/null
+++ b/topologies/available/lf_3n_alt_testbed34.yaml
@@ -0,0 +1,132 @@
+---
+metadata:
+ version: 0.1
+ schema: # list of schema files against which to validate
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: 10.30.51.74
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s64-t34-tg1-c4/p1 - 40GE port1 Intel XL710 2p40GE.
+ mac_address: "40:a6:b7:85:e7:80"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.10.2"
+ driver: i40e
+ link: link1
+ model: Intel-XL710
+ port2:
+ # s64-t34-tg1-c4/p2 - 40GE port2 Intel XL710 2p40GE.
+ mac_address: "40:a6:b7:85:e7:81"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.20.2"
+ driver: i40e
+ link: link2
+ model: Intel-XL710
+ port3:
+ # s64-t34-tg1-c8/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:1c:e4"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link4
+ model: Intel-E810CQ
+ port4:
+ # s64-t34-tg1-c8/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:1c:e0"
+ pci_address: "0000:b3:00.0"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: link5
+ model: Intel-E810CQ
+ DUT1:
+ type: DUT
+ host: 10.30.51.72
+ arch: aarch64
+ port: 22
+ uio_driver: vfio-pci
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s62-t34-sut1-c4/p1 - 40GE port1 Intel XL710 2p40GE.
+ mac_address: "40:a6:b7:85:e7:78"
+ pci_address: "0004:04:00.0"
+ ip4_address: "172.16.10.1"
+ driver: i40e
+ link: link3
+ model: Intel-XL710
+ port2:
+ # s62-t34-sut1-c4/p2 - 40GE port2 Intel XL710 2p40GE.
+ mac_address: "40:a6:b7:85:e7:79"
+ pci_address: "0004:04:00.1"
+ ip4_address: "172.16.20.1"
+ driver: i40e
+ link: link2
+ model: Intel-XL710
+ port3:
+ # s62-t34-sut1-c8/p1 - 100GE port1 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:16:07:b8"
+ pci_address: "0007:01:00.0"
+ ip4_address: "172.16.30.1"
+ driver: mlx5_core
+ link: link6
+ model: Mellanox-CX6DX
+ port4:
+ # s62-t34-sut1-c8/p2 - 100GE port2 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:16:07:b9"
+ pci_address: "0007:01:00.1"
+ ip4_address: "172.16.40.1"
+ driver: mlx5_core
+ link: link4
+ model: Mellanox-CX6DX
+ DUT2:
+ type: DUT
+ host: 10.30.51.73
+ arch: aarch64
+ port: 22
+ username: testuser
+ uio_driver: vfio-pci
+ password: Csit1234
+ interfaces:
+ port1:
+ # s63-t34-sut2-c4/p1 - 40GE port1 Intel XL710 2p40GE.
+ mac_address: "3c:fd:fe:c3:e7:a0"
+ pci_address: "0004:04:00.0"
+ ip4_address: "172.16.10.3"
+ driver: i40e
+ link: link1
+ model: Intel-XL710
+ port2:
+ # s63-t34-sut2-c4/p2 - 40GE port2 Intel XL710 2p40GE.
+ mac_address: "3c:fd:fe:c3:e7:a1"
+ pci_address: "0004:04:00.1"
+ ip4_address: "172.16.20.3"
+ driver: i40e
+ link: link3
+ model: Intel-XL710
+ port3:
+ # s63-t34-sut2-c8/p1 - 100GE port1 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:16:07:c4"
+ pci_address: "0007:01:00.0"
+ ip4_address: "172.16.30.3"
+ driver: mlx5_core
+ link: link5
+ model: Mellanox-CX6DX
+ port4:
+ # s63-t34-sut2-c8/p2 - 100GE port2 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:16:07:c5"
+ pci_address: "0007:01:00.1"
+ ip4_address: "172.16.40.3"
+ driver: mlx5_core
+ link: link6
+ model: Mellanox-CX6DX \ No newline at end of file
diff --git a/topologies/available/lf_3n_dnv_testbed35.yaml b/topologies/available/lf_3n_dnv_testbed35.yaml
deleted file mode 100644
index 29a7fccc5d..0000000000
--- a/topologies/available/lf_3n_dnv_testbed35.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/3_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 3-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.32.8.10"
- arch: x86_64
- port: 6002
- username: root
- password: Csit1234
- interfaces:
- port1:
- mac_address: "b4:96:91:46:ae:3c"
- pci_address: "0000:af:00.0"
- driver: ixgbe
- link: link1
- model: Intel-X553
- port2:
- mac_address: "b4:96:91:46:b2:e4"
- pci_address: "0000:d8:00.0"
- driver: ixgbe
- link: link2
- model: Intel-X553
- DUT1:
- type: DUT
- host: "10.32.8.12"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- cryptodev: "0000:01:00.0"
- uio_driver: vfio-pci
- interfaces:
- port1:
- mac_address: "ac:1f:6b:57:56:c6"
- pci_address: "0000:08:00.0"
- driver: ixgbe
- link: link3
- model: Intel-X553
- port2:
- mac_address: "ac:1f:6b:57:56:c7"
- pci_address: "0000:08:00.1"
- driver: ixgbe
- link: link1
- model: Intel-X553
- DUT2:
- type: DUT
- host: "10.32.8.13"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- cryptodev: "0000:01:00.0"
- uio_driver: vfio-pci
- interfaces:
- port1:
- mac_address: "ac:1f:6b:57:57:fe"
- pci_address: "0000:08:00.0"
- driver: ixgbe
- link: link3
- model: Intel-X553
- port2:
- mac_address: "ac:1f:6b:57:57:ff"
- pci_address: "0000:08:00.1"
- driver: ixgbe
- link: link2
- model: Intel-X553
diff --git a/topologies/available/lf_3n_hsw_testbed1.yaml b/topologies/available/lf_3n_hsw_testbed1.yaml
deleted file mode 100644
index 3f7b0e8c76..0000000000
--- a/topologies/available/lf_3n_hsw_testbed1.yaml
+++ /dev/null
@@ -1,304 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/3_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 3-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.30.51.16"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # t1-tg1-c1/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:37:1f:48"
- pci_address: "0000:02:00.0"
- ip4_address: "172.16.10.2"
- driver: i40e
- link: link1
- model: Intel-XL710
- port2:
- # t1-tg1-c1/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:37:1f:4d"
- pci_address: "0000:02:00.1"
- ip4_address: "172.16.20.2"
- driver: i40e
- link: link2
- model: Intel-XL710
- port3:
- # t1-tg1-c3/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:a0"
- pci_address: "0000:05:00.0"
- ip4_address: "172.16.30.2"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # t1-tg1-c3/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:a1"
- pci_address: "0000:05:00.1"
- ip4_address: "172.16.40.2"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # t1-tg1-c2/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ed:50"
- pci_address: "0000:07:00.0"
- ip4_address: "172.16.50.2"
- driver: i40e
- link: link5
- model: Intel-X710
- port6:
- # t1-tg1-c2/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ed:51"
- pci_address: "0000:07:00.1"
- ip4_address: "172.16.60.2"
- driver: i40e
- link: link6
- model: Intel-X710
- port7:
- # t1-tg1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:3a:af:40"
- pci_address: "0000:86:00.0"
- ip4_address: "172.16.70.2"
- driver: i40e
- link: link7
- model: Intel-XL710
- port8:
- # t1-tg1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:3a:af:41"
- pci_address: "0000:86:00.1"
- ip4_address: "172.16.80.2"
- driver: i40e
- link: link8
- model: Intel-XL710
- port9:
- # t1-tg1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:2c"
- pci_address: "0000:88:00.0"
- ip4_address: "172.16.90.2"
- driver: i40e
- link: link9
- model: Intel-X710
- port10:
- # t1-tg1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:2d"
- pci_address: "0000:88:00.1"
- ip4_address: "172.16.100.2"
- driver: i40e
- link: link10
- model: Intel-X710
- port11:
- # t1-tg1-c6/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ed:a4"
- pci_address: "0000:84:00.0"
- ip4_address: "172.16.110.1"
- driver: i40e
- link: link11
- model: Intel-X710
- port12:
- # t1-tg1-c6/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ed:a5"
- pci_address: "0000:84:00.1"
- ip4_address: "172.16.110.2"
- driver: i40e
- link: link11
- model: Intel-X710
- DUT1:
- type: DUT
- host: "10.30.51.17"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- cryptodev: 0000:86:00.0
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # t1-sut1-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:0a:18"
- pci_address: "0000:0a:00.0"
- ip4_address: "172.17.21.1"
- driver: ixgbe
- link: link21
- model: Intel-X520-DA2
- port2:
- # t1-sut1-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:0a:19"
- pci_address: "0000:0a:00.1"
- ip4_address: "172.16.30.1"
- driver: ixgbe
- link: link3
- model: Intel-X520-DA2
- port3:
- # t1-sut1-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- mac_address: "04:62:73:8c:c3:0f"
- pci_address: "0000:13:00.0"
- ip4_address: "172.17.22.1"
- driver: enic
- link: link22
- model: Cisco-VIC-1385
- port4:
- # t1-sut1-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- mac_address: "04:62:73:8c:c3:10"
- pci_address: "0000:14:00.0"
- ip4_address: "172.16.10.1"
- driver: enic
- link: link1
- model: Cisco-VIC-1385
- port5:
- # t1-sut1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:37:20:48"
- pci_address: "0000:88:00.0"
- ip4_address: "172.17.23.1"
- driver: i40e
- link: link23
- model: Intel-XL710
- port6:
- # t1-sut1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:37:20:49"
- pci_address: "0000:88:00.1"
- ip4_address: "172.16.70.1"
- driver: i40e
- link: link7
- model: Intel-XL710
- port7:
- # t1-sut1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:c4"
- pci_address: "0000:8a:00.0"
- ip4_address: "172.17.24.1"
- driver: i40e
- link: link24
- model: Intel-X710
- port8:
- # t1-sut1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:c5"
- pci_address: "0000:8a:00.1"
- ip4_address: "172.16.90.1"
- driver: i40e
- link: link9
- model: Intel-X710
- port9:
- # t1-sut1-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e4:d0:1b"
- pci_address: "0000:06:00.0"
- ip4_address: "172.17.25.1"
- driver: enic
- link: link25
- model: Cisco-VIC-1227
- port10:
- # t1-sut1-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e4:d0:1c"
- pci_address: "0000:07:00.0"
- ip4_address: "172.16.50.1"
- driver: enic
- link: link5
- model: Cisco-VIC-1227
- DUT2:
- type: DUT
- host: "10.30.51.18"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- cryptodev: 0000:86:00.0
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # t1-sut2-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:05:e4"
- pci_address: "0000:0a:00.0"
- ip4_address: "172.16.40.1"
- driver: ixgbe
- link: link4
- model: Intel-X520-DA2
- port2:
- # t1-sut2-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:05:e5"
- pci_address: "0000:0a:00.1"
- ip4_address: "172.17.21.2"
- driver: ixgbe
- link: link21
- model: Intel-X520-DA2
- port3:
- # t1-sut2-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- mac_address: "d8:b1:90:19:41:69"
- pci_address: "0000:13:00.0"
- ip4_address: "172.16.20.1"
- driver: enic
- link: link2
- model: Cisco-VIC-1385
- port4:
- # t1-sut2-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- mac_address: "d8:b1:90:19:41:6a"
- pci_address: "0000:15:00.0"
- ip4_address: "172.17.22.2"
- driver: enic
- link: link22
- model: Cisco-VIC-1385
- port5:
- # t1-sut2-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:78:e8"
- pci_address: "0000:88:00.0"
- ip4_address: "172.16.80.1"
- driver: i40e
- link: link8
- model: Intel-XL710
- port6:
- # t1-sut2-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:78:e9"
- pci_address: "0000:88:00.1"
- ip4_address: "172.17.23.2"
- driver: i40e
- link: link23
- model: Intel-XL710
- port7:
- # t1-sut2-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ef:94"
- pci_address: "0000:8a:00.0"
- ip4_address: "172.16.100.1"
- driver: i40e
- link: link10
- model: Intel-X710
- port8:
- # t1-sut2-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ef:95"
- pci_address: "0000:8a:00.1"
- ip4_address: "172.17.24.2"
- driver: i40e
- link: link24
- model: Intel-X710
- port9:
- # t1-sut2-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e5:44:4c"
- pci_address: "0000:06:00.0"
- ip4_address: "172.16.60.1"
- driver: enic
- link: link6
- model: Cisco-VIC-1227
- port10:
- # t1-sut2-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e5:44:4d"
- pci_address: "0000:07:00.0"
- ip4_address: "172.17.25.2"
- driver: enic
- link: link25
- model: Cisco-VIC-1227
diff --git a/topologies/available/lf_3n_hsw_testbed2.yaml b/topologies/available/lf_3n_hsw_testbed2.yaml
deleted file mode 100644
index 55b00e61b7..0000000000
--- a/topologies/available/lf_3n_hsw_testbed2.yaml
+++ /dev/null
@@ -1,304 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/3_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 3-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.30.51.20"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # t2-tg1-c1/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:76:a8"
- pci_address: "0000:02:00.0"
- ip4_address: "172.16.10.2"
- driver: i40e
- link: link1
- model: Intel-XL710
- port2:
- # t2-tg1-c1/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:76:a9"
- pci_address: "0000:02:00.1"
- ip4_address: "172.16.20.2"
- driver: i40e
- link: link2
- model: Intel-XL710
- port3:
- # t2-tg1-c2/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ed:5c"
- pci_address: "0000:05:00.0"
- ip4_address: "172.16.30.2"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # t2-tg1-c2/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ed:5d"
- pci_address: "0000:05:00.1"
- ip4_address: "172.16.40.2"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # t2-tg1-c3/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:5c"
- pci_address: "0000:07:00.0"
- ip4_address: "172.16.50.2"
- driver: i40e
- link: link5
- model: Intel-X710
- port6:
- # t2-tg1-c3/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:5d"
- pci_address: "0000:07:00.1"
- ip4_address: "172.16.60.2"
- driver: i40e
- link: link6
- model: Intel-X710
- port7:
- # t2-tg1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:37:1f:1c"
- pci_address: "0000:86:00.0"
- ip4_address: "172.16.70.2"
- driver: i40e
- link: link7
- model: Intel-XL710
- port8:
- # t2-tg1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:37:1f:19"
- pci_address: "0000:86:00.1"
- ip4_address: "172.16.80.2"
- driver: i40e
- link: link8
- model: Intel-XL710
- port9:
- # t2-tg1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ed:7c"
- pci_address: "0000:88:00.0"
- ip4_address: "172.16.90.2"
- driver: i40e
- link: link9
- model: Intel-X710
- port10:
- # t2-tg1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ed:7d"
- pci_address: "0000:88:00.1"
- ip4_address: "172.16.100.2"
- driver: i40e
- link: link10
- model: Intel-X710
- port11:
- # t2-tg1-c6/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:58"
- pci_address: "0000:84:00.0"
- ip4_address: "172.16.110.1"
- driver: i40e
- link: link11
- model: Intel-X710
- port12:
- # t2-tg1-c6/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:59"
- pci_address: "0000:84:00.1"
- ip4_address: "172.16.110.2"
- driver: i40e
- link: link11
- model: Intel-X710
- DUT1:
- type: DUT
- host: "10.30.51.21"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- cryptodev: 0000:86:00.0
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # t2-sut1-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:02:b8"
- pci_address: "0000:0a:00.0"
- ip4_address: "172.17.21.1"
- driver: ixgbe
- link: link21
- model: Intel-X520-DA2
- port2:
- # t2-sut1-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:02:b9"
- pci_address: "0000:0a:00.1"
- ip4_address: "172.17.30.1"
- driver: ixgbe
- link: link3
- model: Intel-X520-DA2
- port3:
- # t2-sut1-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- mac_address: "04:62:73:8c:ca:cd"
- pci_address: "0000:13:00.0"
- ip4_address: "172.17.22.1"
- driver: enic
- link: link22
- model: Cisco-VIC-1385
- port4:
- # t2-sut1-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- mac_address: "04:62:73:8c:ca:ce"
- pci_address: "0000:15:00.0"
- ip4_address: "172.16.10.1"
- driver: enic
- link: link1
- model: Cisco-VIC-1385
- port5:
- # t2-sut1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:77:08"
- pci_address: "0000:88:00.0"
- ip4_address: "172.17.23.1"
- driver: i40e
- link: link23
- model: Intel-XL710
- port6:
- # t2-sut1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:77:09"
- pci_address: "0000:88:00.1"
- ip4_address: "172.16.70.1"
- driver: i40e
- link: link7
- model: Intel-XL710
- port7:
- # t2-sut1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:ec"
- pci_address: "0000:8a:00.0"
- ip4_address: "172.17.24.1"
- driver: i40e
- link: link24
- model: Intel-X710
- port8:
- # t2-sut1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:ed"
- pci_address: "0000:8a:00.1"
- ip4_address: "172.16.90.1"
- driver: i40e
- link: link9
- model: Intel-X710
- port9:
- # t2-sut1-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e4:d0:9b"
- pci_address: "0000:06:00.0"
- ip4_address: "172.17.25.1"
- driver: enic
- link: link25
- model: Cisco-VIC-1227
- port10:
- # t2-sut1-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e4:d0:9c"
- pci_address: "0000:07:00.0"
- ip4_address: "172.16.50.1"
- driver: enic
- link: link5
- model: Cisco-VIC-1227
- DUT2:
- type: DUT
- host: "10.30.51.22"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- cryptodev: 0000:86:00.0
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # t2-sut2-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:01:d8"
- pci_address: "0000:0a:00.0"
- ip4_address: "172.16.40.1"
- driver: ixgbe
- link: link4
- model: Intel-X520-DA2
- port2:
- # t2-sut2-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:01:d9"
- pci_address: "0000:0a:00.1"
- ip4_address: "172.17.21.2"
- driver: ixgbe
- link: link21
- model: Intel-X520-DA2
- port3:
- # t2-sut2-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- mac_address: "ec:bd:1d:08:8f:88"
- pci_address: "0000:13:00.0"
- ip4_address: "172.16.20.1"
- driver: enic
- link: link2
- model: Cisco-VIC-1385
- port4:
- # t2-sut2-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- mac_address: "ec:bd:1d:08:8f:89"
- pci_address: "0000:15:00.0"
- ip4_address: "172.17.22.2"
- driver: enic
- link: link22
- model: Cisco-VIC-1385
- port5:
- # t2-sut2-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:76:98"
- pci_address: "0000:88:00.0"
- ip4_address: "172.16.80.1"
- driver: i40e
- link: link8
- model: Intel-XL710
- port6:
- # t2-sut2-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:76:99"
- pci_address: "0000:88:00.1"
- ip4_address: "172.17.23.2"
- driver: i40e
- link: link23
- model: Intel-XL710
- port7:
- # t2-sut2-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:e4"
- pci_address: "0000:8a:00.0"
- ip4_address: "172.16.100.1"
- driver: i40e
- link: link10
- model: Intel-X710
- port8:
- # t2-sut2-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:e5"
- pci_address: "0000:8a:00.1"
- ip4_address: "172.17.24.2"
- driver: i40e
- link: link24
- model: Intel-X710
- port9:
- # t2-sut2-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e4:eb:4b"
- pci_address: "0000:06:00.0"
- ip4_address: "172.16.60.1"
- driver: enic
- link: link6
- model: Cisco-VIC-1227
- port10:
- # t2-sut2-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e4:eb:4c"
- pci_address: "0000:07:00.0"
- ip4_address: "172.17.25.2"
- driver: enic
- link: link25
- model: Cisco-VIC-1227
diff --git a/topologies/available/lf_3n_hsw_testbed3.yaml b/topologies/available/lf_3n_hsw_testbed3.yaml
deleted file mode 100644
index 333a6cd3c3..0000000000
--- a/topologies/available/lf_3n_hsw_testbed3.yaml
+++ /dev/null
@@ -1,304 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/3_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 3-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.30.51.24"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # t3-tg1-c1/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:79:40"
- pci_address: "0000:02:00.0"
- ip4_address: "172.16.10.2"
- driver: i40e
- link: link1
- model: Intel-XL710
- port2:
- # t3-tg1-c1/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:79:41"
- pci_address: "0000:02:00.1"
- ip4_address: "172.16.20.2"
- driver: i40e
- link: link2
- model: Intel-XL710
- port3:
- # t3-tg1-c2/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ef:98"
- pci_address: "0000:05:00.0"
- ip4_address: "172.16.30.2"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # t3-tg1-c2/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ef:99"
- pci_address: "0000:05:00.1"
- ip4_address: "172.16.40.2"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # t3-tg1-c3/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:28"
- pci_address: "0000:07:00.0"
- ip4_address: "172.16.50.2"
- driver: i40e
- link: link5
- model: Intel-X710
- port6:
- # t3-tg1-c3/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:29"
- pci_address: "0000:07:00.1"
- ip4_address: "172.16.60.2"
- driver: i40e
- link: link6
- model: Intel-X710
- port7:
- # t3-tg1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:79:1c"
- pci_address: "0000:86:00.0"
- ip4_address: "172.16.70.2"
- driver: i40e
- link: link7
- model: Intel-XL710
- port8:
- # t3-tg1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:79:19"
- pci_address: "0000:86:00.1"
- ip4_address: "172.16.80.2"
- driver: i40e
- link: link8
- model: Intel-XL710
- port9:
- # t3-tg1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:74"
- pci_address: "0000:88:00.0"
- ip4_address: "172.16.90.2"
- driver: i40e
- link: link9
- model: Intel-X710
- port10:
- # t3-tg1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:75"
- pci_address: "0000:88:00.1"
- ip4_address: "172.16.100.2"
- driver: i40e
- link: link10
- model: Intel-X710
- port11:
- # t3-tg1-c6/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ef:38"
- pci_address: "0000:84:00.0"
- ip4_address: "172.16.110.1"
- driver: i40e
- link: link11
- model: Intel-X710
- port12:
- # t3-tg1-c6/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ef:39"
- pci_address: "0000:84:00.1"
- ip4_address: "172.16.110.2"
- driver: i40e
- link: link11
- model: Intel-X710
- DUT1:
- type: DUT
- host: "10.30.51.25"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- cryptodev: 0000:86:00.0
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # t3-sut1-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:01:dc"
- pci_address: "0000:0a:00.0"
- ip4_address: "172.17.21.1"
- driver: ixgbe
- link: link21
- model: Intel-X520-DA2
- port2:
- # t3-sut1-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:01:dd"
- pci_address: "0000:0a:00.1"
- ip4_address: "172.16.30.1"
- driver: ixgbe
- link: link3
- model: Intel-X520-DA2
- port3:
- # t3-sut1-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- mac_address: "04:62:73:f8:80:c1"
- pci_address: "0000:13:00.0"
- ip4_address: "172.17.22.1"
- driver: enic
- link: link22
- model: Cisco-VIC-1385
- port4:
- # t3-sut1-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- mac_address: "04:62:73:f8:80:c2"
- pci_address: "0000:15:00.0"
- ip4_address: "172.16.10.1"
- driver: enic
- link: link1
- model: Cisco-VIC-1385
- port5:
- # t3-sut1-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:37:25:18"
- pci_address: "0000:88:00.0"
- ip4_address: "172.17.23.1"
- driver: i40e
- link: link23
- model: Intel-XL710
- port6:
- # t3-sut1-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:37:25:19"
- pci_address: "0000:88:00.1"
- ip4_address: "172.16.70.1"
- driver: i40e
- link: link7
- model: Intel-XL710
- port7:
- # t3-sut1-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ef:34"
- pci_address: "0000:8a:00.0"
- ip4_address: "172.17.24.1"
- driver: i40e
- link: link24
- model: Intel-X710
- port8:
- # t3-sut1-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ef:35"
- pci_address: "0000:8a:00.1"
- ip4_address: "172.16.90.1"
- driver: i40e
- link: link9
- model: Intel-X710
- port9:
- # t3-sut1-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e5:46:d0"
- pci_address: "0000:06:00.0"
- ip4_address: "172.17.25.1"
- driver: enic
- link: link25
- model: Cisco-VIC-1227
- port10:
- # t3-sut1-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e5:46:d1"
- pci_address: "0000:07:00.0"
- ip4_address: "172.16.50.1"
- driver: enic
- link: link5
- model: Cisco-VIC-1227
- DUT2:
- type: DUT
- host: "10.30.51.26"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- cryptodev: 0000:86:00.0
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # t3-sut3-c1/p1 - 10GE port1 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:0f:38"
- pci_address: "0000:0a:00.0"
- ip4_address: "172.16.40.1"
- driver: ixgbe
- link: link4
- model: Intel-X520-DA2
- port2:
- # t3-sut3-c1/p2 - 10GE port2 on Intel NIC x520 2p10GE.
- mac_address: "90:e2:ba:b5:0f:39"
- pci_address: "0000:0a:00.1"
- ip4_address: "172.17.21.2"
- driver: ixgbe
- link: link21
- model: Intel-X520-DA2
- port3:
- # t3-sut3-c2/p1 - 40GE port1 on Cisco VIC 1385 2p40GE.
- mac_address: "04:62:73:8c:78:2f"
- pci_address: "0000:13:00.0"
- ip4_address: "172.16.20.1"
- driver: enic
- link: link2
- model: Cisco-VIC-1385
- port4:
- # t3-sut3-c2/p2 - 40GE port2 on Cisco VIC 1385 2p40GE.
- mac_address: "04:62:73:8c:78:30"
- pci_address: "0000:15:00.0"
- ip4_address: "172.17.22.2"
- driver: enic
- link: link22
- model: Cisco-VIC-1385
- port5:
- # t3-sut3-c4/p1 - 40GE port1 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:76:b0"
- pci_address: "0000:88:00.0"
- ip4_address: "172.16.80.1"
- driver: i40e
- link: link8
- model: Intel-XL710
- port6:
- # t3-sut3-c4/p2 - 40GE port2 on Intel NIC xl710 2p40GE.
- mac_address: "68:05:ca:35:76:b1"
- pci_address: "0000:88:00.1"
- ip4_address: "172.17.23.2"
- driver: i40e
- link: link23
- model: Intel-XL710
- port7:
- # t3-sut3-c5/p1 - 10GE port1 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:e0"
- pci_address: "0000:8a:00.0"
- ip4_address: "172.16.100.1"
- driver: i40e
- link: link10
- model: Intel-X710
- port8:
- # t3-sut3-c5/p2 - 10GE port2 on Intel NIC x710 2p10GE.
- mac_address: "3c:fd:fe:9c:ee:e1"
- pci_address: "0000:8a:00.1"
- ip4_address: "172.17.24.2"
- driver: i40e
- link: link24
- model: Intel-X710
- port9:
- # t3-sut3-cm/p1 - 10GE port1 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e5:44:19"
- pci_address: "0000:06:00.0"
- ip4_address: "172.16.60.1"
- driver: enic
- link: link6
- model: Cisco-VIC-1227
- port10:
- # t3-sut3-cm/p2 - 10GE port2 on Cisco VIC 1227 2p10GE.
- mac_address: "00:fe:c8:e5:44:1a"
- pci_address: "0000:07:00.0"
- ip4_address: "172.17.25.2"
- driver: enic
- link: link25
- model: Cisco-VIC-1227
diff --git a/topologies/available/lf_3n_icx_testbed37.yaml b/topologies/available/lf_3n_icx_testbed37.yaml
new file mode 100644
index 0000000000..560da3007e
--- /dev/null
+++ b/topologies/available/lf_3n_icx_testbed37.yaml
@@ -0,0 +1,276 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.77"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s67-t37-tg1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:b2:a1:48"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.1"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s67-t37-tg1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:b2:a1:49"
+ pci_address: "0000:17:00.1"
+ ip4_address: "172.16.20.1"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port3:
+ # s67-t37-tg1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:ec"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s67-t37-tg1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:ed"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.1"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port5:
+ # s67-t37-tg1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:ee"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.1"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s67-t37-tg1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:ef"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.1"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s67-t37-tg1-c2/p1 - 25GE port1 Intel NIC x710 2p25GE.
+ mac_address: "3c:fd:fe:bd:fa:24"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.1"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s67-t37-tg1-c2/p2 - 25GE port2 Intel NIC x710 2p25GE.
+ mac_address: "3c:fd:fe:bd:fa:25"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.1"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port9:
+ # s67-t37-tg1-c10/p1 - 100GE port1 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:0f:a6"
+ pci_address: "0000:e3:00.0"
+ ip4_address: "172.16.90.1"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX6DX
+ port10:
+ # s67-t37-tg1-c10/p2 - 100GE port2 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:0f:a7"
+ pci_address: "0000:e3:00.1"
+ ip4_address: "172.16.100.1"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX6DX
+ DUT1:
+ type: DUT
+ host: "10.30.51.75"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s65-t37-sut1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:b2:a7:b0"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.2"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s65-t37-sut1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:b2:a7:b1"
+ pci_address: "0000:17:00.1"
+ ip4_address: "172.16.20.2"
+ driver: ice
+ link: link22
+ model: Intel-E810CQ
+ port3:
+ # s65-t37-sut1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:77:60"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s65-t37-sut1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:77:61"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: link44
+ model: Intel-E810XXV
+ port5:
+ # s65-t37-sut1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:77:62"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.2"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s65-t37-sut1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:77:63"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.2"
+ driver: ice
+ link: link66
+ model: Intel-E810XXV
+ port7:
+ # s65-t37-sut1-c2/p1 - 25GE port1 Intel NIC xxv710 2p25GE.
+ mac_address: "3c:fd:fe:bd:f8:68"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.2"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s65-t37-sut1-c2/p2 - 25GE port2 Intel NIC xxv710 2p25GE.
+ mac_address: "3c:fd:fe:bd:f8:69"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.2"
+ driver: i40e
+ link: link88
+ model: Intel-XXV710
+ port9:
+ # s67-t37-sut1-c10/p1 - 100GE port1 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:0f:2e"
+ pci_address: "0000:e3:00.0"
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
+ link: link1010
+ model: Mellanox-CX6DX
+ port10:
+ # s67-t37-sut1-c10/p2 - 100GE port2 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:0f:2f"
+ pci_address: "0000:e3:00.1"
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX6DX
+ DUT2:
+ type: DUT
+ host: "10.30.51.76"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s66-t37-sut2-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:27:54"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.10.3"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port2:
+ # s66-t37-sut2-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:27:50"
+ pci_address: "0000:19:00.0"
+ ip4_address: "172.16.20.3"
+ driver: ice
+ link: link22
+ model: Intel-E810CQ
+ port3:
+ # s66-t37-sut2-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:24"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.30.3"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port4:
+ # s66-t37-sut2-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:25"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.40.3"
+ driver: ice
+ link: link44
+ model: Intel-E810XXV
+ port5:
+ # s66-t37-sut2-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:26"
+ pci_address: "0000:31:00.2"
+ ip4_address: "172.16.50.3"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port6:
+ # s66-t37-sut2-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:27"
+ pci_address: "0000:31:00.3"
+ ip4_address: "172.16.60.3"
+ driver: ice
+ link: link66
+ model: Intel-E810XXV
+ port7:
+ # s66-t37-sut2-c2/p1 - 25GE port1 Intel NIC xxv710 2p25GE.
+ mac_address: "3c:fd:fe:bd:f9:f4"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.3"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port8:
+ # s66-t37-sut2-c2/p2 - 25GE port2 Intel NIC xxv710 2p25GE.
+ mac_address: "3c:fd:fe:bd:f9:f5"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.3"
+ driver: i40e
+ link: link88
+ model: Intel-XXV710
+ port9:
+ # s66-t37-sut2-c10/p1 - 100GE port1 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:4b:16"
+ pci_address: "0000:e3:00.0"
+ ip4_address: "172.16.100.3"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX6DX
+ port10:
+ # s66-t37-sut2-c10/p2 - 100GE port2 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:4b:17"
+ pci_address: "0000:e3:00.1"
+ ip4_address: "172.16.90.3"
+ driver: mlx5_core
+ link: link1010
+ model: Mellanox-CX6DX \ No newline at end of file
diff --git a/topologies/available/lf_3n_icx_testbed38.yaml b/topologies/available/lf_3n_icx_testbed38.yaml
new file mode 100644
index 0000000000..8ab57e6d20
--- /dev/null
+++ b/topologies/available/lf_3n_icx_testbed38.yaml
@@ -0,0 +1,276 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.80"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s80-t38-tg1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:22:5c"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.10.1"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s80-t38-tg1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:67:22:58"
+ pci_address: "0000:b3:00.0"
+ ip4_address: "172.16.20.1"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port3:
+ # s80-t38-tg1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:44"
+ pci_address: "0000:ca:00.0"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s80-t38-tg1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:45"
+ pci_address: "0000:ca:00.1"
+ ip4_address: "172.16.40.1"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port5:
+ # s80-t38-tg1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:46"
+ pci_address: "0000:ca:00.2"
+ ip4_address: "172.16.50.1"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s80-t38-tg1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:47"
+ pci_address: "0000:ca:00.3"
+ ip4_address: "172.16.60.1"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port7:
+ # s80-t38-tg1-c2/p1 - 25GE port1 Intel NIC x710 2p25GE.
+ mac_address: "40:a6:b7:40:87:28"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.1"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s80-t38-tg1-c2/p2 - 25GE port2 Intel NIC x710 2p25GE.
+ mac_address: "40:a6:b7:40:87:29"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.1"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port9:
+ # s80-t38-tg1-c10/p1 - 100GE port1 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:0f:ae"
+ pci_address: "0000:e3:00.0"
+ ip4_address: "172.16.90.1"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX6DX
+ port10:
+ # s80-t38-tg1-c10/p2 - 100GE port2 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:0f:af"
+ pci_address: "0000:e3:00.1"
+ ip4_address: "172.16.100.1"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX6DX
+ DUT1:
+ type: DUT
+ host: "10.30.51.78"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s78-t38-sut1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:a4:26:38"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.10.2"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s78-t38-sut1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:a4:26:39"
+ pci_address: "0000:b1:00.1"
+ ip4_address: "172.16.20.2"
+ driver: ice
+ link: link22
+ model: Intel-E810CQ
+ port3:
+ # s78-t38-sut1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:40"
+ pci_address: "0000:ca:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link3
+ model: Intel-E810XXV
+ port4:
+ # s78-t38-sut1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:41"
+ pci_address: "0000:ca:00.1"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: link44
+ model: Intel-E810XXV
+ port5:
+ # s78-t38-sut1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:42"
+ pci_address: "0000:ca:00.2"
+ ip4_address: "172.16.50.2"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ port6:
+ # s78-t38-sut1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:43"
+ pci_address: "0000:ca:00.3"
+ ip4_address: "172.16.60.2"
+ driver: ice
+ link: link66
+ model: Intel-E810XXV
+ port7:
+ # s78-t38-sut1-c2/p1 - 25GE port1 Intel NIC xxv710 2p25GE.
+ mac_address: "3c:fd:fe:bd:f9:70"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.2"
+ driver: i40e
+ link: link7
+ model: Intel-XXV710
+ port8:
+ # s78-t38-sut1-c2/p2 - 25GE port2 Intel NIC xxv710 2p25GE.
+ mac_address: "3c:fd:fe:bd:f9:71"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.2"
+ driver: i40e
+ link: link88
+ model: Intel-XXV710
+ port9:
+ # s78-t38-sut1-c10/p1 - 100GE port1 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:4b:2e"
+ pci_address: "0000:e3:00.0"
+ ip4_address: "172.16.90.2"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX6DX
+ port10:
+ # s78-t38-sut1-c10/p2 - 100GE port2 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:4b:2f"
+ pci_address: "0000:e3:00.1"
+ ip4_address: "172.16.100.2"
+ driver: mlx5_core
+ link: link1010
+ model: Mellanox-CX6DX
+ DUT2:
+ type: DUT
+ host: "10.30.51.79"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s79-t38-sut2-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:a4:27:30"
+ pci_address: "0000:b1:00.0"
+ ip4_address: "172.16.10.3"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port2:
+ # s79-t38-sut2-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "b4:96:91:a4:27:31"
+ pci_address: "0000:b1:00.1"
+ ip4_address: "172.16.20.3"
+ driver: ice
+ link: link22
+ model: Intel-E810CQ
+ port3:
+ # s79-t38-sut2-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:3c"
+ pci_address: "0000:ca:00.0"
+ ip4_address: "172.16.30.3"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port4:
+ # s79-t38-sut2-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:3d"
+ pci_address: "0000:ca:00.1"
+ ip4_address: "172.16.40.3"
+ driver: ice
+ link: link44
+ model: Intel-E810XXV
+ port5:
+ # s79-t38-sut2-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:3e"
+ pci_address: "0000:ca:00.2"
+ ip4_address: "172.16.50.3"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port6:
+ # s79-t38-sut2-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:3f"
+ pci_address: "0000:ca:00.3"
+ ip4_address: "172.16.60.3"
+ driver: ice
+ link: link66
+ model: Intel-E810XXV
+ port7:
+ # s79-t38-sut2-c2/p1 - 25GE port1 Intel NIC xxv710 2p25GE.
+ mac_address: "3c:fd:fe:bd:f9:5c"
+ pci_address: "0000:4b:00.0"
+ ip4_address: "172.16.70.3"
+ driver: i40e
+ link: link8
+ model: Intel-XXV710
+ port8:
+ # s79-t38-sut2-c2/p2 - 25GE port2 Intel NIC xxv710 2p25GE.
+ mac_address: "3c:fd:fe:bd:f9:5d"
+ pci_address: "0000:4b:00.1"
+ ip4_address: "172.16.80.3"
+ driver: i40e
+ link: link88
+ model: Intel-XXV710
+ port9:
+ # s79-t38-sut2-c10/p1 - 100GE port1 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:0f:8a"
+ pci_address: "0000:e3:00.0"
+ ip4_address: "172.16.90.3"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX6DX
+ port10:
+ # s79-t38-sut2-c10/p2 - 100GE port2 Mellanox ConnectX-6 Dx 2p100GE.
+ mac_address: "b8:3f:d2:13:0f:8b"
+ pci_address: "0000:e3:00.1"
+ ip4_address: "172.16.100.3"
+ driver: mlx5_core
+ link: link1010
+ model: Mellanox-CX6DX \ No newline at end of file
diff --git a/topologies/available/lf_3n_icxd_testbed31.yaml b/topologies/available/lf_3n_icxd_testbed31.yaml
new file mode 100644
index 0000000000..3731188081
--- /dev/null
+++ b/topologies/available/lf_3n_icxd_testbed31.yaml
@@ -0,0 +1,98 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.90"
+ arch: x86_64
+ port: 6001
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s90-t31t32-tg1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:b4"
+ pci_address: "0000:31:00.0"
+ ip4_address: "172.16.10.1"
+ driver: ice
+ link: link1
+ model: Intel-E810XXV
+ port2:
+ # s90-t31t32-tg1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:78:b5"
+ pci_address: "0000:31:00.1"
+ ip4_address: "172.16.20.1"
+ driver: ice
+ link: link2
+ model: Intel-E810XXV
+ DUT1:
+ type: DUT
+ host: "10.30.51.32"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ cryptodev:
+ device1:
+ pci_address: "0000:81:00.0"
+ driver: "c4xxx"
+ model: "HW_C4xxx"
+ module: "qat_c4xxx"
+ numvfs: 8
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s32-t31-sut1-c1/p1 - 25GE port1 Intel E823-C 2p25GE.
+ mac_address: "3c:ec:ef:d9:e2:6a"
+ pci_address: "0000:89:00.0"
+ ip4_address: "172.16.10.2"
+ driver: ice
+ link: link3
+ model: Intel-E823C
+ port2:
+ # s32-t31-sut1-c1/p2 - 25GE port2 Intel E823-C 2p25GE.
+ mac_address: "3c:ec:ef:d9:e2:6b"
+ pci_address: "0000:89:00.2"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link1
+ model: Intel-E823C
+ DUT2:
+ type: DUT
+ host: "10.30.51.33"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ cryptodev:
+ device1:
+ pci_address: "0000:81:00.0"
+ driver: "c4xxx"
+ model: "HW_C4xxx"
+ module: "qat_c4xxx"
+ numvfs: 8
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s33-t31-sut2-c1/p1 - 25GE port1 Intel E823-C 2p25GE.
+ mac_address: "3c:ec:ef:d9:e2:c8"
+ pci_address: "0000:89:00.0"
+ ip4_address: "172.16.20.2"
+ driver: ice
+ link: link3
+ model: Intel-E823C
+ port2:
+ # s33-t31-sut2-c1/p2 - 25GE port2 Intel E823-C 2p25GE.
+ mac_address: "3c:ec:ef:d9:e2:c9"
+ pci_address: "0000:89:00.2"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link2
+ model: Intel-E823C
diff --git a/topologies/available/lf_3n_icxd_testbed32.yaml b/topologies/available/lf_3n_icxd_testbed32.yaml
new file mode 100644
index 0000000000..7091a0c5cd
--- /dev/null
+++ b/topologies/available/lf_3n_icxd_testbed32.yaml
@@ -0,0 +1,98 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.90"
+ arch: x86_64
+ port: 6002
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s90-t31t32-tg1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:dc"
+ pci_address: "0000:ca:00.0"
+ ip4_address: "172.16.10.1"
+ driver: ice
+ link: link1
+ model: Intel-E810XXV
+ port2:
+ # s90-t31t32-tg1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:dd"
+ pci_address: "0000:ca:00.1"
+ ip4_address: "172.16.20.1"
+ driver: ice
+ link: link2
+ model: Intel-E810XXV
+ DUT1:
+ type: DUT
+ host: "10.30.51.34"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ cryptodev:
+ device1:
+ pci_address: "0000:81:00.0"
+ driver: "c4xxx"
+ model: "HW_C4xxx"
+ module: "qat_c4xxx"
+ numvfs: 8
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s34-t32-sut1-c1/p1 - 25GE port1 Intel E823-C 2p25GE.
+ mac_address: "3c:ec:ef:d9:e2:70"
+ pci_address: "0000:89:00.0"
+ ip4_address: "172.16.10.2"
+ driver: ice
+ link: link3
+ model: Intel-E823C
+ port2:
+ # s34-t32-sut1-c1/p2 - 25GE port2 Intel E823-C 2p25GE.
+ mac_address: "3c:ec:ef:d9:e2:71"
+ pci_address: "0000:89:00.2"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link1
+ model: Intel-E823C
+ DUT2:
+ type: DUT
+ host: "10.30.51.35"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ cryptodev:
+ device1:
+ pci_address: "0000:81:00.0"
+ driver: "c4xxx"
+ model: "HW_C4xxx"
+ module: "qat_c4xxx"
+ numvfs: 8
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s35-t32-sut2-c1/p1 - 25GE port1 Intel E823-C 4p25GE.
+ mac_address: "3c:ec:ef:d9:e2:aa"
+ pci_address: "0000:89:00.0"
+ ip4_address: "172.16.20.2"
+ driver: ice
+ link: link3
+ model: Intel-E823C
+ port2:
+ # s35-t32-sut2-c1/p2 - 25GE port2 Intel E823-C 4p25GE.
+ mac_address: "3c:ec:ef:d9:e2:ab"
+ pci_address: "0000:89:00.2"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link2
+ model: Intel-E823C
diff --git a/topologies/available/lf_3n_skx_testbed31.yaml b/topologies/available/lf_3n_skx_testbed31.yaml
deleted file mode 100644
index 3706a3baeb..0000000000
--- a/topologies/available/lf_3n_skx_testbed31.yaml
+++ /dev/null
@@ -1,222 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/3_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 3-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.30.51.48"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # s13-t31-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:58"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.2"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s13-t31-tg1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:59"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.20.2"
- driver: i40e
- link: link2
- model: Intel-X710
- port3:
- # s13-t31-tg1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:5a"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.2"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s13-t31-tg1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:5b"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.40.2"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # s13-t31-tg1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:40"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.2"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s13-t31-tg1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:41"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.60.2"
- driver: i40e
- link: link6
- model: Intel-XXV710
- port7:
- # s13-t31-tg1-c10/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:30"
- pci_address: "0000:d8:00.0"
- ip4_address: "172.16.70.2"
- driver: i40e
- link: link7
- model: Intel-X710
- port8:
- # s13-t31-tg1-c10/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:31"
- pci_address: "0000:d8:00.1"
- ip4_address: "172.16.70.1"
- driver: i40e
- link: link7
- model: Intel-X710
- port9:
- # s13-t31-tg1-c10/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:32"
- pci_address: "0000:d8:00.2"
- ip4_address: "172.16.80.2"
- driver: i40e
- link: link8
- model: Intel-X710
- port10:
- # s13-t31-tg1-c10/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ad:33"
- pci_address: "0000:d8:00.3"
- ip4_address: "172.16.80.1"
- driver: i40e
- link: link8
- model: Intel-X710
- DUT1:
- type: DUT
- host: "10.30.51.46"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # s11-t31-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:38"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.1"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s11-t31-sut1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:39"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.120.1"
- driver: i40e
- link: link21
- model: Intel-X710
- port3:
- # s11-t31-sut1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:3a"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.1"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s11-t31-sut1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:3b"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.140.1"
- driver: i40e
- link: link22
- model: Intel-X710
- port5:
- # s11-t31-sut1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:34"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.1"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s11-t31-sut1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:35"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.160.1"
- driver: i40e
- link: link23
- model: Intel-XXV710
- DUT2:
- type: DUT
- host: "10.30.51.47"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # s12-t31-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:aa:a8"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.20.1"
- driver: i40e
- link: link2
- model: Intel-X710
- port2:
- # s12-t31-sut1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:aa:a9"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.120.2"
- driver: i40e
- link: link21
- model: Intel-X710
- port3:
- # s12-t31-sut1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:aa:aa"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.40.1"
- driver: i40e
- link: link4
- model: Intel-X710
- port4:
- # s12-t31-sut1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:aa:ab"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.140.2"
- driver: i40e
- link: link22
- model: Intel-X710
- port5:
- # s12-t31-sut1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:3c"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.60.1"
- driver: i40e
- link: link6
- model: Intel-XXV710
- port6:
- # s12-t31-sut1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:3d"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.160.2"
- driver: i40e
- link: link23
- model: Intel-XXV710
diff --git a/topologies/available/lf_3n_skx_testbed32.yaml b/topologies/available/lf_3n_skx_testbed32.yaml
deleted file mode 100644
index bfb38fa4a2..0000000000
--- a/topologies/available/lf_3n_skx_testbed32.yaml
+++ /dev/null
@@ -1,222 +0,0 @@
----
-metadata:
- version: 0.1
- schema:
- - resources/topology_schemas/3_node_topology.sch.yaml
- - resources/topology_schemas/topology.sch.yaml
- tags: [hw, 3-node]
-
-nodes:
- TG:
- type: TG
- subtype: TREX
- host: "10.30.51.60"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- interfaces:
- port1:
- # s13-t31-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:08"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.2"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s13-t31-tg1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:09"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.20.2"
- driver: i40e
- link: link2
- model: Intel-X710
- port3:
- # s13-t31-tg1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:0a"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.2"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s13-t31-tg1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:af:0b"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.40.2"
- driver: i40e
- link: link4
- model: Intel-X710
- port5:
- # s13-t31-tg1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:fa:1c"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.2"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s13-t31-tg1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:fa:1d"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.60.2"
- driver: i40e
- link: link6
- model: Intel-XXV710
- port7:
- # s13-t31-tg1-c10/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:e0"
- pci_address: "0000:d8:00.0"
- ip4_address: "172.16.70.2"
- driver: i40e
- link: link7
- model: Intel-X710
- port8:
- # s13-t31-tg1-c10/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:e1"
- pci_address: "0000:d8:00.1"
- ip4_address: "172.16.70.1"
- driver: i40e
- link: link7
- model: Intel-X710
- port9:
- # s13-t31-tg1-c10/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:e2"
- pci_address: "0000:d8:00.2"
- ip4_address: "172.16.80.2"
- driver: i40e
- link: link8
- model: Intel-X710
- port10:
- # s13-t31-tg1-c10/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ab:e3"
- pci_address: "0000:d8:00.3"
- ip4_address: "172.16.80.1"
- driver: i40e
- link: link8
- model: Intel-X710
- DUT1:
- type: DUT
- host: "10.30.51.58"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # s14-t32-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:60"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.10.1"
- driver: i40e
- link: link1
- model: Intel-X710
- port2:
- # s14-t32-sut1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:61"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.120.1"
- driver: i40e
- link: link21
- model: Intel-X710
- port3:
- # s14-t32-sut1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:62"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.30.1"
- driver: i40e
- link: link3
- model: Intel-X710
- port4:
- # s14-t32-sut1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:63"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.140.1"
- driver: i40e
- link: link22
- model: Intel-X710
- port5:
- # s14-t32-sut1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:38"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.50.1"
- driver: i40e
- link: link5
- model: Intel-XXV710
- port6:
- # s14-t32-sut1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f9:39"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.160.1"
- driver: i40e
- link: link23
- model: Intel-XXV710
- DUT2:
- type: DUT
- host: "10.30.51.59"
- arch: x86_64
- port: 22
- username: testuser
- password: Csit1234
- uio_driver: vfio-pci
- honeycomb:
- user: admin
- passwd: admin
- port: 8183
- netconf_port: 2831
- interfaces:
- port1:
- # s15-t32-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:c0"
- pci_address: "0000:18:00.0"
- ip4_address: "172.16.20.1"
- driver: i40e
- link: link2
- model: Intel-X710
- port2:
- # s15-t32-sut1-c2/p2 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:c1"
- pci_address: "0000:18:00.1"
- ip4_address: "172.16.120.2"
- driver: i40e
- link: link21
- model: Intel-X710
- port3:
- # s15-t32-sut1-c2/p3 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:c2"
- pci_address: "0000:18:00.2"
- ip4_address: "172.16.40.1"
- driver: i40e
- link: link4
- model: Intel-X710
- port4:
- # s15-t32-sut1-c2/p4 - 10GE port1 on Intel NIC x710 4p10GE.
- mac_address: "3c:fd:fe:a8:ae:c3"
- pci_address: "0000:18:00.3"
- ip4_address: "172.16.140.2"
- driver: i40e
- link: link22
- model: Intel-X710
- port5:
- # s15-t32-sut1-c4/p1 - 25GE port1 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f8:fc"
- pci_address: "0000:3b:00.0"
- ip4_address: "172.16.60.1"
- driver: i40e
- link: link6
- model: Intel-XXV710
- port6:
- # s15-t32-sut1-c4/p2 - 25GE port2 on Intel NIC xxv710 2p25GE.
- mac_address: "3c:fd:fe:bd:f8:fd"
- pci_address: "0000:3b:00.1"
- ip4_address: "172.16.160.2"
- driver: i40e
- link: link23
- model: Intel-XXV710
diff --git a/topologies/available/lf_3n_snr_testbed39.yaml b/topologies/available/lf_3n_snr_testbed39.yaml
new file mode 100644
index 0000000000..d2f1e0df73
--- /dev/null
+++ b/topologies/available/lf_3n_snr_testbed39.yaml
@@ -0,0 +1,146 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.89"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ interfaces:
+ port1:
+ # s89-t39t310-tg1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:08"
+ pci_address: "0000:ca:00.0"
+ ip4_address: "172.16.10.1"
+ driver: ice
+ link: disabled1
+ model: Intel-E810XXV
+ port2:
+ # s89-t39t310-tg1-c4/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:09"
+ pci_address: "0000:ca:00.1"
+ ip4_address: "172.16.20.1"
+ driver: ice
+ link: link2
+ model: Intel-E810XXV
+ port3:
+ # s89-t39t310-tg1-c4/p3 - 25GE port3 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:0a"
+ pci_address: "0000:ca:00.2"
+ ip4_address: "172.16.50.1"
+ driver: ice
+ link: disabled2
+ model: Intel-E810XXV
+ port4:
+ # s89-t39t310-tg1-c4/p4 - 25GE port4 Intel E810-XXVDA4 4p25GE.
+ mac_address: "b4:96:91:a5:22:0b"
+ pci_address: "0000:ca:00.3"
+ ip4_address: "172.16.60.1"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ DUT1:
+ type: DUT
+ host: "10.30.51.93"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ cryptodev:
+ device1:
+ pci_address: "0000:f4:00.0"
+ driver: "c4xxx"
+ model: "HW_C4xxx"
+ module: "qat_c4xxx"
+ numvfs: 8
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s93-t39-sut1-c1/p1 - 25GE port1 Intel E822-CQDA4 4p25GE.
+ mac_address: "00:00:00:01:01:00"
+ pci_address: "0000:ec:00.0"
+ ip4_address: "172.16.10.2"
+ driver: ice
+ link: link2
+ model: Intel-E822CQ
+ port2:
+ # s93-t39-sut1-c1/p2 - 25GE port2 Intel E822-CQDA4 4p25GE.
+ mac_address: "00:00:00:01:01:01"
+ pci_address: "0000:ec:00.1"
+ ip4_address: "172.16.20.2"
+ driver: ice
+ link: disabled3
+ model: Intel-E822CQ
+ port3:
+ # s93-t39-sut1-c1/p3 - 25GE port3 Intel E822-CQDA4 4p25GE.
+ mac_address: "00:00:00:01:01:02"
+ pci_address: "0000:ec:00.2"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link3
+ model: Intel-E822CQ
+ port4:
+ # s93-t39-sut1-c1/p4 - 25GE port4 Intel E822-CQDA4 4p25GE.
+ mac_address: "00:00:00:01:01:03"
+ pci_address: "0000:ec:00.3"
+ ip4_address: "172.16.40.1"
+ driver: ice
+ link: link4
+ model: Intel-E822CQ
+ DUT2:
+ type: DUT
+ host: "10.30.51.94"
+ arch: x86_64
+ port: 22
+ username: testuser
+ password: Csit1234
+ cryptodev:
+ device1:
+ pci_address: "0000:f4:00.0"
+ driver: "c4xxx"
+ model: "HW_C4xxx"
+ module: "qat_c4xxx"
+ numvfs: 8
+ uio_driver: vfio-pci
+ interfaces:
+ port1:
+ # s94-t39-sut2-c1/p1 - 25GE port1 Intel E822-CQDA4 4p25GE.
+ mac_address: "00:00:00:02:01:00"
+ pci_address: "0000:ec:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link5
+ model: Intel-E822CQ
+ port2:
+ # s94-t39-sut2-c1/p2 - 25GE port2 Intel E822-CQDA4 4p25GE.
+ mac_address: "00:00:00:02:01:01"
+ pci_address: "0000:ec:00.1"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: disabled4
+ model: Intel-E822CQ
+ port3:
+ # s94-t39-sut2-c1/p3 - 25GE port3 Intel E822-CQDA4 4p25GE.
+ mac_address: "00:00:00:02:01:02"
+ pci_address: "0000:ec:00.2"
+ ip4_address: "172.16.50.2"
+ driver: ice
+ link: link3
+ model: Intel-E822CQ
+ port4:
+ # s94-t39-sut2-c1/p4 - 25GE port4 Intel E822-CQDA4 4p25GE.
+ mac_address: "00:00:00:02:01:03"
+ pci_address: "0000:ec:00.3"
+ ip4_address: "172.16.60.2"
+ driver: ice
+ link: link4
+ model: Intel-E822CQ
diff --git a/topologies/available/lf_3na_spr_testbed21.yaml b/topologies/available/lf_3na_spr_testbed21.yaml
new file mode 100644
index 0000000000..76613924cf
--- /dev/null
+++ b/topologies/available/lf_3na_spr_testbed21.yaml
@@ -0,0 +1,262 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.53"
+ arch: x86_64
+ port: 6001
+ username: testuser
+ password: Csit1234
+ bus:
+ device1:
+ pci_address: "0000:75:01.0"
+ driver: idxd
+ model: Intel-DSA
+ device2:
+ pci_address: "0000:f2:01.0"
+ driver: idxd
+ model: Intel-DSA
+ cryptodev:
+ device1:
+ pci_address: "0000:76:00.0"
+ driver: "4xxx"
+ model: "HW_4xxx"
+ module: "qat_4xxx"
+ numvfs: 8
+ #device2:
+ # pci_address: "0000:7a:00.0"
+ # driver: "4xxx"
+ # model: "HW_4xxx"
+ # module: "qat_4xxx"
+ # numvfs: 8
+ interfaces:
+ port1:
+ # s53-t21-tg1-c4/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:e8"
+ pci_address: "0000:2a:00.0"
+ ip4_address: "172.16.10.1"
+ driver: mlx5_core
+ link: link3
+ model: Mellanox-CX7VEAT
+ #port2:
+ # # s53-t21-tg1-c4/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ # mac_address: "b8:3f:d2:b7:a0:e9"
+ # pci_address: "0000:2a:00.1"
+ # ip4_address: "172.16.20.1"
+ # driver: mlx5_core
+ # link: none
+ # model: Mellanox-CX7VEAT
+ port3:
+ # s53-t21-tg1-c2/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:58"
+ pci_address: "0000:3d:00.0"
+ ip4_address: "172.16.30.1"
+ driver: mlx5_core
+ link: link5
+ model: Mellanox-CX7VEAT
+ port4:
+ # s53-t21-tg1-c2/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:59"
+ pci_address: "0000:3d:00.1"
+ ip4_address: "172.16.40.1"
+ driver: mlx5_core
+ link: link6
+ model: Mellanox-CX7VEAT
+ port5:
+ # s53-t21-tg1-c9/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:48"
+ pci_address: "0000:ab:00.0"
+ ip4_address: "172.16.50.1"
+ driver: mlx5_core
+ link: link7
+ model: Mellanox-CX7VEAT
+ #port6:
+ # # s53-t21-tg1-c9/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ # mac_address: "b8:3f:d2:b7:a0:49"
+ # pci_address: "0000:ab:00.1"
+ # ip4_address: "172.16.60.1"
+ # driver: mlx5_core
+ # link: none
+ # model: Mellanox-CX7VEAT
+ port7:
+ # s53-t21-tg1-c7/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:f8"
+ pci_address: "0000:bd:00.0"
+ ip4_address: "172.16.70.1"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port8:
+ # s53-t21-tg1-c7/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:f9"
+ pci_address: "0000:bd:00.1"
+ ip4_address: "172.16.80.1"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX7VEAT
+ DUT1:
+ type: DUT
+ host: "10.30.51.52"
+ arch: x86_64
+ port: 6001
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ bus:
+ device1:
+ pci_address: "0000:75:01.0"
+ driver: idxd
+ model: Intel-DSA
+ device2:
+ pci_address: "0000:f2:01.0"
+ driver: idxd
+ model: Intel-DSA
+ cryptodev:
+ device1:
+ pci_address: "0000:76:00.0"
+ driver: "4xxx"
+ model: "HW_4xxx"
+ module: "qat_4xxx"
+ numvfs: 8
+ #device2:
+ # pci_address: "0000:7a:00.0"
+ # driver: "4xxx"
+ # model: "HW_4xxx"
+ # module: "qat_4xxx"
+ # numvfs: 8
+ interfaces:
+ port1:
+ # s52-t21-sut1-c4/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:08"
+ pci_address: "0000:2a:00.0"
+ ip4_address: "172.16.10.2"
+ driver: mlx5_core
+ link: link3
+ model: Mellanox-CX7VEAT
+ port2:
+ # s52-t21-sut1-c4/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:09"
+ pci_address: "0000:2a:00.1"
+ ip4_address: "172.16.20.2"
+ driver: mlx5_core
+ link: link59
+ model: Mellanox-CX7VEAT
+ port3:
+ # s52-t21-sut1-c2/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:50"
+ pci_address: "0000:3d:00.0"
+ ip4_address: "172.16.30.2"
+ driver: mlx5_core
+ link: link5
+ model: Mellanox-CX7VEAT
+ port4:
+ # s52-t21-sut1-c2/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:51"
+ pci_address: "0000:3d:00.1"
+ ip4_address: "172.16.40.2"
+ driver: mlx5_core
+ link: link6
+ model: Mellanox-CX7VEAT
+ port5:
+ # s52-t21-sut1-c10/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:88"
+ pci_address: "0000:17:00.0"
+ ip4_address: "172.16.50.2"
+ driver: mlx5_core
+ link: link610
+ model: Mellanox-CX7VEAT
+ port6:
+ # s52-t21-sut1-c10/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:89"
+ pci_address: "0000:17:00.1"
+ ip4_address: "172.16.60.2"
+ driver: mlx5_core
+ link: link37
+ model: Mellanox-CX7VEAT
+ DUT2:
+ type: DUT
+ host: "10.30.51.52"
+ arch: x86_64
+ port: 6002
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ bus:
+ device1:
+ pci_address: "0000:75:01.0"
+ driver: idxd
+ model: Intel-DSA
+ device2:
+ pci_address: "0000:f2:01.0"
+ driver: idxd
+ model: Intel-DSA
+ cryptodev:
+ device1:
+ pci_address: "0000:f3:00.0"
+ driver: "4xxx"
+ model: "HW_4xxx"
+ module: "qat_4xxx"
+ numvfs: 8
+ #device2:
+ # pci_address: "0000:f7:00.0"
+ # driver: "4xxx"
+ # model: "HW_4xxx"
+ # module: "qat_4xxx"
+ # numvfs: 8
+ interfaces:
+ port1:
+ # s52-t21-sut2-c9/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:20"
+ pci_address: "0000:ab:00.0"
+ ip4_address: "172.16.10.3"
+ driver: mlx5_core
+ link: link7
+ model: Mellanox-CX7VEAT
+ port2:
+ # s52-t21-sut2-c9/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:21"
+ pci_address: "0000:ab:00.1"
+ ip4_address: "172.16.20.3"
+ driver: mlx5_core
+ link: link59
+ model: Mellanox-CX7VEAT
+ port3:
+ # s52-t21-sut2-c7/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:f0"
+ pci_address: "0000:bd:00.0"
+ ip4_address: "172.16.30.3"
+ driver: mlx5_core
+ link: link9
+ model: Mellanox-CX7VEAT
+ port4:
+ # s52-t21-sut2-c7/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a0:f1"
+ pci_address: "0000:bd:00.1"
+ ip4_address: "172.16.40.3"
+ driver: mlx5_core
+ link: link10
+ model: Mellanox-CX7VEAT
+ port5:
+ # s52-t21-sut2-c11/p1 - 200GE port1 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:10"
+ pci_address: "0000:cf:00.0"
+ ip4_address: "172.16.50.3"
+ driver: mlx5_core
+ link: link610
+ model: Mellanox-CX7VEAT
+ port6:
+ # s52-t21-sut2-c11/p2 - 200GE port2 Mellanox ConnectX7-2p200GE.
+ mac_address: "b8:3f:d2:b7:a1:11"
+ pci_address: "0000:cf:00.1"
+ ip4_address: "172.16.60.3"
+ driver: mlx5_core
+ link: link37
+ model: Mellanox-CX7VEAT \ No newline at end of file
diff --git a/topologies/available/lf_3nb_spr_testbed22.yaml b/topologies/available/lf_3nb_spr_testbed22.yaml
new file mode 100644
index 0000000000..0d080e8c4e
--- /dev/null
+++ b/topologies/available/lf_3nb_spr_testbed22.yaml
@@ -0,0 +1,198 @@
+---
+metadata:
+ version: 0.1
+ schema:
+ - resources/topology_schemas/3_node_topology.sch.yaml
+ - resources/topology_schemas/topology.sch.yaml
+ tags: [hw, 3-node]
+
+nodes:
+ TG:
+ type: TG
+ subtype: TREX
+ host: "10.30.51.55"
+ arch: x86_64
+ port: 6001
+ username: testuser
+ password: Csit1234
+ bus:
+ device1:
+ pci_address: "0000:75:01.0"
+ driver: idxd
+ model: Intel-DSA
+ device2:
+ pci_address: "0000:f2:01.0"
+ driver: idxd
+ model: Intel-DSA
+ cryptodev:
+ device1:
+ pci_address: "0000:76:00.0"
+ driver: "4xxx"
+ model: "HW_4xxx"
+ module: "qat_4xxx"
+ numvfs: 8
+ #device2:
+ # pci_address: "0000:7a:00.0"
+ # driver: "4xxx"
+ # model: "HW_4xxx"
+ # module: "qat_4xxx"
+ # numvfs: 8
+ interfaces:
+ port1:
+ # s55-t22-tg1-c4/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e7:00"
+ pci_address: "0000:2a:00.0"
+ ip4_address: "172.16.30.1"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port2:
+ # s55-t22-tg1-c4/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e7:04"
+ pci_address: "0000:2c:00.0"
+ ip4_address: "172.16.40.1"
+ driver: ice
+ link: link3
+ model: Intel-E810CQ
+ port3:
+ # s55-t22-tg1-c2/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:45:50"
+ pci_address: "0000:3d:00.0"
+ ip4_address: "172.16.10.1"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port4:
+ # s55-t22-tg1-c2/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:45:51"
+ pci_address: "0000:3d:00.1"
+ ip4_address: "172.16.20.1"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ DUT1:
+ type: DUT
+ host: "10.30.51.54"
+ arch: x86_64
+ port: 6001
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ bus:
+ device1:
+ pci_address: "0000:75:01.0"
+ driver: idxd
+ model: Intel-DSA
+ device2:
+ pci_address: "0000:f2:01.0"
+ driver: idxd
+ model: Intel-DSA
+ cryptodev:
+ device1:
+ pci_address: "0000:76:00.0"
+ driver: "4xxx"
+ model: "HW_4xxx"
+ module: "qat_4xxx"
+ numvfs: 8
+ #device2:
+ # pci_address: "0000:7a:00.0"
+ # driver: "4xxx"
+ # model: "HW_4xxx"
+ # module: "qat_4xxx"
+ # numvfs: 8
+ interfaces:
+ port1:
+ # s54-t22-sut1-c4/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e5:c0"
+ pci_address: "0000:2a:00.0"
+ ip4_address: "172.16.30.2"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port2:
+ # s54-t22-sut1-c4/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e5:c4"
+ pci_address: "0000:2c:00.0"
+ ip4_address: "172.16.40.2"
+ driver: ice
+ link: link3
+ model: Intel-E810CQ
+ port3:
+ # s54-t22-sut1-c2/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:45:4c"
+ pci_address: "0000:3d:00.0"
+ ip4_address: "172.16.10.2"
+ driver: ice
+ link: link4
+ model: Intel-E810XXV
+ port4:
+ # s54-t22-sut1-c2/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:45:4d"
+ pci_address: "0000:3d:00.1"
+ ip4_address: "172.16.20.2"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV
+ DUT2:
+ type: DUT
+ host: "10.30.51.54"
+ arch: x86_64
+ port: 6002
+ username: testuser
+ password: Csit1234
+ uio_driver: vfio-pci
+ bus:
+ device1:
+ pci_address: "0000:75:01.0"
+ driver: idxd
+ model: Intel-DSA
+ device2:
+ pci_address: "0000:f2:01.0"
+ driver: idxd
+ model: Intel-DSA
+ cryptodev:
+ device1:
+ pci_address: "0000:f3:00.0"
+ driver: "4xxx"
+ model: "HW_4xxx"
+ module: "qat_4xxx"
+ numvfs: 8
+ #device2:
+ # pci_address: "0000:f7:00.0"
+ # driver: "4xxx"
+ # model: "HW_4xxx"
+ # module: "qat_4xxx"
+ # numvfs: 8
+ interfaces:
+ port1:
+ # s54-t22-sut1-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e5:98"
+ pci_address: "0000:ab:00.0"
+ ip4_address: "172.16.30.3"
+ driver: ice
+ link: link2
+ model: Intel-E810CQ
+ port2:
+ # s54-t22-sut1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
+ mac_address: "40:a6:b7:9e:e5:9c"
+ pci_address: "0000:ad:00.0"
+ ip4_address: "172.16.40.3"
+ driver: ice
+ link: link1
+ model: Intel-E810CQ
+ port3:
+ # s54-t22-sut1-c7/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:4a:80"
+ pci_address: "0000:bd:00.0"
+ ip4_address: "172.16.10.3"
+ driver: ice
+ link: link6
+ model: Intel-E810XXV
+ port4:
+ # s54-t22-sut1-c7/p2 - 25GE port2 Intel E810-XXVDA4 4p25GE.
+ mac_address: "50:7c:6f:48:4a:81"
+ pci_address: "0000:bd:00.1"
+ ip4_address: "172.16.20.3"
+ driver: ice
+ link: link5
+ model: Intel-E810XXV \ No newline at end of file
diff --git a/topologies/available/vagrant.yaml b/topologies/available/vagrant.yaml
index b2a444efc9..a9177c799e 100644
--- a/topologies/available/vagrant.yaml
+++ b/topologies/available/vagrant.yaml
@@ -20,31 +20,37 @@ nodes:
pci_address: "0000:00:09.0"
link: link0
driver: e1000
+ model: virtual
port2:
mac_address: ""
pci_address: "0000:00:0a.0"
link: link0
driver: e1000
+ model: virtual
port3:
mac_address: ""
pci_address: "0000:00:10.0"
link: link1
driver: e1000
+ model: virtual
port4:
mac_address: ""
pci_address: "0000:00:11.0"
link: link4
driver: e1000
+ model: virtual
port5:
mac_address: ""
pci_address: "0000:00:12.0"
link: link2
driver: e1000
+ model: virtual
port6:
mac_address: ""
pci_address: "0000:00:13.0"
link: link5
driver: e1000
+ model: virtual
DUT1:
type: DUT
host: "192.168.255.101"
@@ -58,21 +64,25 @@ nodes:
pci_address: "0000:00:09.0"
link: link1
driver: e1000
+ model: virtual
port2:
mac_address: ""
pci_address: "0000:00:0a.0"
link: link4
driver: e1000
+ model: virtual
port3:
mac_address: ""
pci_address: "0000:00:10.0"
link: link3
driver: e1000
+ model: virtual
port4:
mac_address: ""
pci_address: "0000:00:11.0"
link: link6
driver: e1000
+ model: virtual
DUT2:
type: DUT
host: "192.168.255.102"
@@ -86,18 +96,22 @@ nodes:
pci_address: "0000:00:09.0"
link: link2
driver: e1000
+ model: virtual
port2:
mac_address: ""
pci_address: "0000:00:0a.0"
link: link5
driver: e1000
+ model: virtual
port3:
mac_address: ""
pci_address: "0000:00:10.0"
link: link3
driver: e1000
+ model: virtual
port4:
mac_address: ""
pci_address: "0000:00:11.0"
link: link6
driver: e1000
+ model: virtual
diff --git a/topologies/available/vpp_device.template b/topologies/available/vpp_device.template
index 86b0993254..70fbc42cb1 100644
--- a/topologies/available/vpp_device.template
+++ b/topologies/available/vpp_device.template
@@ -8,46 +8,20 @@ metadata:
nodes:
TG:
- type: TG
+ type: "TG"
host: "${CSIT_TG_HOST}"
arch: "${CSIT_TG_ARCH}"
port: ${CSIT_TG_PORT}
- username: root
- password: Csit1234
+ username: "root"
+ password: "Csit1234"
interfaces:
- port1:
- mac_address: "${CSIT_TG_INTERFACES_PORT1_MAC}"
- pci_address: "${CSIT_TG_INTERFACES_PORT1_PCI}"
- link: link1
- model: virtual
- driver: "${CSIT_TG_INTERFACES_PORT1_DRV}"
- vlan: ${CSIT_TG_INTERFACES_PORT1_VLAN}
- port2:
- mac_address: "${CSIT_TG_INTERFACES_PORT2_MAC}"
- pci_address: "${CSIT_TG_INTERFACES_PORT2_PCI}"
- link: link2
- model: virtual
- driver: "${CSIT_TG_INTERFACES_PORT2_DRV}"
- vlan: ${CSIT_TG_INTERFACES_PORT2_VLAN}
+${CSIT_TG_INTERFACES}
DUT1:
- type: DUT
+ type: "DUT"
host: "${CSIT_DUT1_HOST}"
arch: "${CSIT_DUT1_ARCH}"
port: ${CSIT_DUT1_PORT}
- username: root
- password: Csit1234
+ username: "root"
+ password: "Csit1234"
interfaces:
- port1:
- mac_address: "${CSIT_DUT1_INTERFACES_PORT1_MAC}"
- pci_address: "${CSIT_DUT1_INTERFACES_PORT1_PCI}"
- link: link1
- model: virtual
- driver: "${CSIT_DUT1_INTERFACES_PORT1_DRV}"
- vlan: ${CSIT_DUT1_INTERFACES_PORT1_VLAN}
- port2:
- mac_address: "${CSIT_DUT1_INTERFACES_PORT2_MAC}"
- pci_address: "${CSIT_DUT1_INTERFACES_PORT2_PCI}"
- link: link2
- model: virtual
- driver: "${CSIT_DUT1_INTERFACES_PORT2_DRV}"
- vlan: ${CSIT_DUT1_INTERFACES_PORT2_VLAN}
+${CSIT_DUT1_INTERFACES}
diff --git a/tox-requirements.txt b/tox-requirements.txt
index 6f56438bcf..550fc1d3b3 100644
--- a/tox-requirements.txt
+++ b/tox-requirements.txt
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
# 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:
@@ -11,14 +11,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Bump regularly.
-tox==3.7.0
+# Tox dependencies.
+tox==3.25.1
-# Tox dependencies. Consult "pip freeze" after installing
-# bumped tox into an empty virtualenv.
-filelock==3.0.10
-pluggy==0.8.1
-py==1.7.0
-six==1.12.0
-toml==0.10.0
-virtualenv==16.4.0
+# Other PIP freeze dependencies.
+distlib==0.3.4
+filelock==3.7.1
+packaging==21.3
+platformdirs==2.5.2
+pluggy==1.0.0
+pyparsing==3.0.9
+py==1.11.0
+six==1.16.0
+toml==0.10.2
+virtualenv==20.15.1
diff --git a/tox.ini b/tox.ini
index b7573f9358..e0ac85c22a 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# 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:
@@ -20,98 +20,64 @@
# Usage:
# cd to CSIT root (other directories might use different tox.ini)
# $ tox
-# will execute all checks.
+# will execute all default checkers.
# $ tox -e pylint
-# will execute only checks defined in "pylint" tox environment.
+# will execute only checkers (or fixers) defined in "pylint" tox environment.
[tox]
# Fast and brief checkers to front, slow or verbose checkers to back.
-envlist = tc_naming, tc_coverage, copyright_year, gpl_license, new_line_length,
- line_length, autogen, pylint, doc_verify
+envlist = copyright_year, gpl_license, new_line_length, line_length, autogen,
+ pylint
# The following is needed as tox requires setup.py by default.
skipsdist = true
# Just a shorthand to avoid long lines.
-checker_dir = ./resources/libraries/bash/entry/check
-
-# TODO: Tox prints various warnings. Figure them out and fix them.
+script_dir = ./resources/libraries/bash/entry/tox
# Recommended ordering withinn testenv definition:
# + General comments.
# + ignore_outcome for non-voting checkers,
-# + setenv (PYTHONPATH) for Python-using checkers.
+# + setenv (PYTHONPATH) for Python-using checkers and fixers.
# + Other Python stuff (e.g. basepython and deps for pylint).
# + whitelist_externals to enable bash.
-# + commands with a single bash to launch the corresponding checker script.
-
-# Keep testenvs sorted alphabetically, please.
+# + Commands with a single bash to launch the corresponding script.
[testenv:autogen]
setenv = PYTHONPATH = {toxinidir}
-whitelist_externals = /bin/bash
-commands = bash {[tox]checker_dir}/autogen.sh
+whitelist_externals = bash
+commands = bash {[tox]script_dir}/autogen.sh
[testenv:copyright_year]
-whitelist_externals = /bin/bash
-commands = bash {[tox]checker_dir}/copyright_year.sh
+whitelist_externals = bash
+commands = bash {[tox]script_dir}/copyright_year.sh
-[testenv:doc_verify]
-# Fix all documentation error before enabling voting.
-ignore_outcome = true
-whitelist_externals = /bin/bash
-commands = bash {[tox]checker_dir}/doc_verify.sh
+[testenv:fix_copyright_year]
+whitelist_externals = bash
+commands = bash {[tox]script_dir}/fix_copyright_year.sh
[testenv:gpl_license]
-whitelist_externals = /bin/bash
-commands = bash {[tox]checker_dir}/gpl_license.sh
+whitelist_externals = bash
+commands = bash {[tox]script_dir}/gpl_license.sh
[testenv:line_length]
# Fix all transgressions and remove the ignore_outcome flag.
ignore_outcome = true
-whitelist_externals = /bin/bash
-commands = bash {[tox]checker_dir}/line.sh
+whitelist_externals = bash
+commands = bash {[tox]script_dir}/line.sh
[testenv:new_line_length]
# Adding .svg, big .rst tables, .yaml and similar still requires long lines.
# As current implementation is too dumb to filter those out,
# the checker has to remain non-voting.
ignore_outcome = true
-whitelist_externals = /bin/bash
-commands = bash {[tox]checker_dir}/new_line.sh
+whitelist_externals = bash
+commands = bash {[tox]script_dir}/new_line.sh
[testenv:pylint]
# Run pylint, but hide its return value until python warnings are cleared.
ignore_outcome = true
setenv = PYTHONPATH = {toxinidir}
basepython = python3
-deps =
- pylint==2.4.3
- -r ./requirements.txt
-whitelist_externals = /bin/bash
-commands = bash {[tox]checker_dir}/pylint.sh
-
-# TODO: See FIXME in https://gerrit.fd.io/r/16423
-
-[testenv:tc_coverage]
-# Coverage is not needed to be voting.
-ignore_outcome = true
-whitelist_externals = /bin/bash
-commands = bash {[tox]checker_dir}/tc_coverage.sh
-
-[testenv:tc_naming]
-whitelist_externals = /bin/bash
-commands = bash {[tox]checker_dir}/tc_naming.sh
-
-# Keep testenvs sorted alphabetically, please.
-
-# TODO: Add a checker against unresolved merge conflicts.
-# See: https://gerrit.fd.io/r/c/vpp/+/26956
-# TODO: Create voting "pylint violations should not increase" checker.
-# TODO: Create voting checker to reject suites with Force Tags of other suite.
-# TODO: Create voting checker against tags not in tag_documentation.rst file.
-# TODO: Create Robot suite Documentation checker (backslash if not next mark).
-# TODO: Create .yaml specific checker, so people can override long line check.
-# TODO: Create .rst specific checker, if there is one allowing
-# to override line check.
-# TODO: You get the idea, replace line check with something smarter
-# wherever possible.
+deps = -r ./requirements.txt
+whitelist_externals = bash
+commands = bash {[tox]script_dir}/pylint.sh